From 0aa6c7b0c69b6cb381c9eba7dbfef94277556a99 Mon Sep 17 00:00:00 2001 From: "Peter H. Boling" Date: Sun, 19 Jul 2026 10:53:18 -0600 Subject: [PATCH 001/188] docs: link shared fixtures in ruby README --- README.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 8ced3bea3..c4a6f16dd 100644 --- a/README.md +++ b/README.md @@ -275,10 +275,10 @@ Provider and recipe gems: ## Portability -The Ruby gems are developed against the shared StructuredMerge fixtures. Those -fixtures define the cross-language behavior expected from the Go, TypeScript, -Rust, and Ruby implementations. Conformance checks live in gem specs and in the -shared spec/fixture tooling rather than in a static status document. +The Ruby gems are developed against the [shared StructuredMerge fixtures][structuredmerge-fixtures]. +Those fixtures define the cross-language behavior expected from the Go, +TypeScript, Rust, and Ruby implementations. Conformance checks live in gem specs +and in the shared spec/fixture tooling rather than in a static status document. ## Development From ce5c5fdf52d0131544c75a850287b23c79213f86 Mon Sep 17 00:00:00 2001 From: "Peter H. Boling" Date: Sun, 19 Jul 2026 11:31:54 -0600 Subject: [PATCH 002/188] Bootstrap TSLP for templating runs --- .../gemfiles/modular/templating_local.gemfile | 5 +++++ .../gemfiles/modular/templating_local.gemfile | 5 +++++ .../gemfiles/modular/templating_local.gemfile | 5 +++++ .../gemfiles/modular/templating_local.gemfile | 5 +++++ .../gemfiles/modular/templating_local.gemfile | 5 +++++ .../gemfiles/modular/templating_local.gemfile | 5 +++++ .../gemfiles/modular/templating_local.gemfile | 5 +++++ .../gemfiles/modular/templating_local.gemfile | 5 +++++ .../gemfiles/modular/templating_local.gemfile | 5 +++++ .../gemfiles/modular/templating_local.gemfile | 5 +++++ .../gemfiles/modular/templating_local.gemfile | 5 +++++ .../go-merge/gemfiles/modular/templating_local.gemfile | 5 +++++ .../gemfiles/modular/templating_local.gemfile | 5 +++++ gems/kettle-jem/Gemfile.lock | 6 +++--- .../gemfiles/modular/templating_local.gemfile | 5 +++++ gems/kettle-jem/lib/kettle/jem/tasks/prepare_task.rb | 2 +- .../gemfiles/modular/templating_local.gemfile.example | 5 +++++ .../spec/kettle/jem/tasks/prepare_task_spec.rb | 8 +++++--- gems/kettle-jem/spec/thin_slice_spec.rb | 10 +++++++++- .../gemfiles/modular/templating_local.gemfile | 5 +++++ .../gemfiles/modular/templating_local.gemfile | 5 +++++ .../gemfiles/modular/templating_local.gemfile | 5 +++++ .../gemfiles/modular/templating_local.gemfile | 5 +++++ .../gemfiles/modular/templating_local.gemfile | 5 +++++ .../gemfiles/modular/templating_local.gemfile | 5 +++++ .../gemfiles/modular/templating_local.gemfile | 5 +++++ .../gemfiles/modular/templating_local.gemfile | 5 +++++ .../gemfiles/modular/templating_local.gemfile | 5 +++++ .../gemfiles/modular/templating_local.gemfile | 5 +++++ .../smorg-rb/gemfiles/modular/templating_local.gemfile | 5 +++++ .../gemfiles/modular/templating_local.gemfile | 5 +++++ .../gemfiles/modular/templating_local.gemfile | 5 +++++ .../gemfiles/modular/templating_local.gemfile | 5 +++++ .../gemfiles/modular/templating_local.gemfile | 5 +++++ .../gemfiles/modular/templating_local.gemfile | 5 +++++ 35 files changed, 173 insertions(+), 8 deletions(-) diff --git a/gems/ast-crispr-markdown-markly/gemfiles/modular/templating_local.gemfile b/gems/ast-crispr-markdown-markly/gemfiles/modular/templating_local.gemfile index d2e0871f3..c517ce0b1 100644 --- a/gems/ast-crispr-markdown-markly/gemfiles/modular/templating_local.gemfile +++ b/gems/ast-crispr-markdown-markly/gemfiles/modular/templating_local.gemfile @@ -47,6 +47,11 @@ structuredmerge_local_gems_to_eval = structuredmerge_local_gems - %w[ast-crispr- kettle_rb_local_gems_to_eval = kettle_rb_local_gems - %w[ast-crispr-markdown-markly] - declared_gems tslp_dev = ENV.fetch('TSLP_DEV', nil) +if tslp_dev.to_s.empty? && ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false') != 0 + structuredmerge_dev = ENV.fetch('STRUCTUREDMERGE_DEV', nil) + inferred_tslp_dev = File.expand_path('../../vendor/tree-sitter-language-pack/packages/ruby', structuredmerge_dev) + tslp_dev = inferred_tslp_dev if Dir.exist?(inferred_tslp_dev) +end # export VENDORED_GEMS= platform :mri do diff --git a/gems/ast-crispr-ruby-prism/gemfiles/modular/templating_local.gemfile b/gems/ast-crispr-ruby-prism/gemfiles/modular/templating_local.gemfile index b5268538e..cd27b1d37 100644 --- a/gems/ast-crispr-ruby-prism/gemfiles/modular/templating_local.gemfile +++ b/gems/ast-crispr-ruby-prism/gemfiles/modular/templating_local.gemfile @@ -47,6 +47,11 @@ structuredmerge_local_gems_to_eval = structuredmerge_local_gems - %w[ast-crispr- kettle_rb_local_gems_to_eval = kettle_rb_local_gems - %w[ast-crispr-ruby-prism] - declared_gems tslp_dev = ENV.fetch('TSLP_DEV', nil) +if tslp_dev.to_s.empty? && ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false') != 0 + structuredmerge_dev = ENV.fetch('STRUCTUREDMERGE_DEV', nil) + inferred_tslp_dev = File.expand_path('../../vendor/tree-sitter-language-pack/packages/ruby', structuredmerge_dev) + tslp_dev = inferred_tslp_dev if Dir.exist?(inferred_tslp_dev) +end # export VENDORED_GEMS= platform :mri do diff --git a/gems/ast-crispr/gemfiles/modular/templating_local.gemfile b/gems/ast-crispr/gemfiles/modular/templating_local.gemfile index 33f003f01..e97ed40ae 100644 --- a/gems/ast-crispr/gemfiles/modular/templating_local.gemfile +++ b/gems/ast-crispr/gemfiles/modular/templating_local.gemfile @@ -47,6 +47,11 @@ structuredmerge_local_gems_to_eval = structuredmerge_local_gems - %w[ast-crispr] kettle_rb_local_gems_to_eval = kettle_rb_local_gems - %w[ast-crispr] - declared_gems tslp_dev = ENV.fetch('TSLP_DEV', nil) +if tslp_dev.to_s.empty? && ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false') != 0 + structuredmerge_dev = ENV.fetch('STRUCTUREDMERGE_DEV', nil) + inferred_tslp_dev = File.expand_path('../../vendor/tree-sitter-language-pack/packages/ruby', structuredmerge_dev) + tslp_dev = inferred_tslp_dev if Dir.exist?(inferred_tslp_dev) +end # export VENDORED_GEMS= platform :mri do diff --git a/gems/ast-merge-git/gemfiles/modular/templating_local.gemfile b/gems/ast-merge-git/gemfiles/modular/templating_local.gemfile index 62371754c..5787b61fa 100644 --- a/gems/ast-merge-git/gemfiles/modular/templating_local.gemfile +++ b/gems/ast-merge-git/gemfiles/modular/templating_local.gemfile @@ -47,6 +47,11 @@ structuredmerge_local_gems_to_eval = structuredmerge_local_gems - %w[ast-merge-g kettle_rb_local_gems_to_eval = kettle_rb_local_gems - %w[ast-merge-git] - declared_gems tslp_dev = ENV.fetch('TSLP_DEV', nil) +if tslp_dev.to_s.empty? && ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false') != 0 + structuredmerge_dev = ENV.fetch('STRUCTUREDMERGE_DEV', nil) + inferred_tslp_dev = File.expand_path('../../vendor/tree-sitter-language-pack/packages/ruby', structuredmerge_dev) + tslp_dev = inferred_tslp_dev if Dir.exist?(inferred_tslp_dev) +end # export VENDORED_GEMS= platform :mri do diff --git a/gems/ast-merge/gemfiles/modular/templating_local.gemfile b/gems/ast-merge/gemfiles/modular/templating_local.gemfile index bf5147854..556804939 100644 --- a/gems/ast-merge/gemfiles/modular/templating_local.gemfile +++ b/gems/ast-merge/gemfiles/modular/templating_local.gemfile @@ -47,6 +47,11 @@ structuredmerge_local_gems_to_eval = structuredmerge_local_gems - %w[ast-merge] kettle_rb_local_gems_to_eval = kettle_rb_local_gems - %w[ast-merge] - declared_gems tslp_dev = ENV.fetch('TSLP_DEV', nil) +if tslp_dev.to_s.empty? && ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false') != 0 + structuredmerge_dev = ENV.fetch('STRUCTUREDMERGE_DEV', nil) + inferred_tslp_dev = File.expand_path('../../vendor/tree-sitter-language-pack/packages/ruby', structuredmerge_dev) + tslp_dev = inferred_tslp_dev if Dir.exist?(inferred_tslp_dev) +end # export VENDORED_GEMS= platform :mri do diff --git a/gems/ast-template/gemfiles/modular/templating_local.gemfile b/gems/ast-template/gemfiles/modular/templating_local.gemfile index 6eb9ac7ae..9ab4a9ff2 100644 --- a/gems/ast-template/gemfiles/modular/templating_local.gemfile +++ b/gems/ast-template/gemfiles/modular/templating_local.gemfile @@ -47,6 +47,11 @@ structuredmerge_local_gems_to_eval = structuredmerge_local_gems - %w[ast-templat kettle_rb_local_gems_to_eval = kettle_rb_local_gems - %w[ast-template] - declared_gems tslp_dev = ENV.fetch('TSLP_DEV', nil) +if tslp_dev.to_s.empty? && ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false') != 0 + structuredmerge_dev = ENV.fetch('STRUCTUREDMERGE_DEV', nil) + inferred_tslp_dev = File.expand_path('../../vendor/tree-sitter-language-pack/packages/ruby', structuredmerge_dev) + tslp_dev = inferred_tslp_dev if Dir.exist?(inferred_tslp_dev) +end # export VENDORED_GEMS= platform :mri do diff --git a/gems/bash-merge/gemfiles/modular/templating_local.gemfile b/gems/bash-merge/gemfiles/modular/templating_local.gemfile index b0ef57bb2..cc6ac154a 100644 --- a/gems/bash-merge/gemfiles/modular/templating_local.gemfile +++ b/gems/bash-merge/gemfiles/modular/templating_local.gemfile @@ -47,6 +47,11 @@ structuredmerge_local_gems_to_eval = structuredmerge_local_gems - %w[bash-merge] kettle_rb_local_gems_to_eval = kettle_rb_local_gems - %w[bash-merge] - declared_gems tslp_dev = ENV.fetch('TSLP_DEV', nil) +if tslp_dev.to_s.empty? && ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false') != 0 + structuredmerge_dev = ENV.fetch('STRUCTUREDMERGE_DEV', nil) + inferred_tslp_dev = File.expand_path('../../vendor/tree-sitter-language-pack/packages/ruby', structuredmerge_dev) + tslp_dev = inferred_tslp_dev if Dir.exist?(inferred_tslp_dev) +end # export VENDORED_GEMS= platform :mri do diff --git a/gems/binary-merge/gemfiles/modular/templating_local.gemfile b/gems/binary-merge/gemfiles/modular/templating_local.gemfile index 41201dc8a..bc1514d4c 100644 --- a/gems/binary-merge/gemfiles/modular/templating_local.gemfile +++ b/gems/binary-merge/gemfiles/modular/templating_local.gemfile @@ -47,6 +47,11 @@ structuredmerge_local_gems_to_eval = structuredmerge_local_gems - %w[binary-merg kettle_rb_local_gems_to_eval = kettle_rb_local_gems - %w[binary-merge] - declared_gems tslp_dev = ENV.fetch('TSLP_DEV', nil) +if tslp_dev.to_s.empty? && ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false') != 0 + structuredmerge_dev = ENV.fetch('STRUCTUREDMERGE_DEV', nil) + inferred_tslp_dev = File.expand_path('../../vendor/tree-sitter-language-pack/packages/ruby', structuredmerge_dev) + tslp_dev = inferred_tslp_dev if Dir.exist?(inferred_tslp_dev) +end # export VENDORED_GEMS= platform :mri do diff --git a/gems/citrus-toml-merge/gemfiles/modular/templating_local.gemfile b/gems/citrus-toml-merge/gemfiles/modular/templating_local.gemfile index 261a205a9..d826c17a8 100644 --- a/gems/citrus-toml-merge/gemfiles/modular/templating_local.gemfile +++ b/gems/citrus-toml-merge/gemfiles/modular/templating_local.gemfile @@ -47,6 +47,11 @@ structuredmerge_local_gems_to_eval = structuredmerge_local_gems - %w[citrus-toml kettle_rb_local_gems_to_eval = kettle_rb_local_gems - %w[citrus-toml-merge] - declared_gems tslp_dev = ENV.fetch('TSLP_DEV', nil) +if tslp_dev.to_s.empty? && ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false') != 0 + structuredmerge_dev = ENV.fetch('STRUCTUREDMERGE_DEV', nil) + inferred_tslp_dev = File.expand_path('../../vendor/tree-sitter-language-pack/packages/ruby', structuredmerge_dev) + tslp_dev = inferred_tslp_dev if Dir.exist?(inferred_tslp_dev) +end # export VENDORED_GEMS= platform :mri do diff --git a/gems/commonmarker-merge/gemfiles/modular/templating_local.gemfile b/gems/commonmarker-merge/gemfiles/modular/templating_local.gemfile index 6a0007463..76c392c15 100644 --- a/gems/commonmarker-merge/gemfiles/modular/templating_local.gemfile +++ b/gems/commonmarker-merge/gemfiles/modular/templating_local.gemfile @@ -47,6 +47,11 @@ structuredmerge_local_gems_to_eval = structuredmerge_local_gems - %w[commonmarke kettle_rb_local_gems_to_eval = kettle_rb_local_gems - %w[commonmarker-merge] - declared_gems tslp_dev = ENV.fetch('TSLP_DEV', nil) +if tslp_dev.to_s.empty? && ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false') != 0 + structuredmerge_dev = ENV.fetch('STRUCTUREDMERGE_DEV', nil) + inferred_tslp_dev = File.expand_path('../../vendor/tree-sitter-language-pack/packages/ruby', structuredmerge_dev) + tslp_dev = inferred_tslp_dev if Dir.exist?(inferred_tslp_dev) +end # export VENDORED_GEMS= platform :mri do diff --git a/gems/dotenv-merge/gemfiles/modular/templating_local.gemfile b/gems/dotenv-merge/gemfiles/modular/templating_local.gemfile index 926fc36d5..a198c33a5 100644 --- a/gems/dotenv-merge/gemfiles/modular/templating_local.gemfile +++ b/gems/dotenv-merge/gemfiles/modular/templating_local.gemfile @@ -47,6 +47,11 @@ structuredmerge_local_gems_to_eval = structuredmerge_local_gems - %w[dotenv-merg kettle_rb_local_gems_to_eval = kettle_rb_local_gems - %w[dotenv-merge] - declared_gems tslp_dev = ENV.fetch('TSLP_DEV', nil) +if tslp_dev.to_s.empty? && ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false') != 0 + structuredmerge_dev = ENV.fetch('STRUCTUREDMERGE_DEV', nil) + inferred_tslp_dev = File.expand_path('../../vendor/tree-sitter-language-pack/packages/ruby', structuredmerge_dev) + tslp_dev = inferred_tslp_dev if Dir.exist?(inferred_tslp_dev) +end # export VENDORED_GEMS= platform :mri do diff --git a/gems/go-merge/gemfiles/modular/templating_local.gemfile b/gems/go-merge/gemfiles/modular/templating_local.gemfile index 847d5acc2..7ddbae6d6 100644 --- a/gems/go-merge/gemfiles/modular/templating_local.gemfile +++ b/gems/go-merge/gemfiles/modular/templating_local.gemfile @@ -47,6 +47,11 @@ structuredmerge_local_gems_to_eval = structuredmerge_local_gems - %w[go-merge] - kettle_rb_local_gems_to_eval = kettle_rb_local_gems - %w[go-merge] - declared_gems tslp_dev = ENV.fetch('TSLP_DEV', nil) +if tslp_dev.to_s.empty? && ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false') != 0 + structuredmerge_dev = ENV.fetch('STRUCTUREDMERGE_DEV', nil) + inferred_tslp_dev = File.expand_path('../../vendor/tree-sitter-language-pack/packages/ruby', structuredmerge_dev) + tslp_dev = inferred_tslp_dev if Dir.exist?(inferred_tslp_dev) +end # export VENDORED_GEMS= platform :mri do diff --git a/gems/json-merge/gemfiles/modular/templating_local.gemfile b/gems/json-merge/gemfiles/modular/templating_local.gemfile index b9b83f3c0..4a82b1a8b 100644 --- a/gems/json-merge/gemfiles/modular/templating_local.gemfile +++ b/gems/json-merge/gemfiles/modular/templating_local.gemfile @@ -47,6 +47,11 @@ structuredmerge_local_gems_to_eval = structuredmerge_local_gems - %w[json-merge] kettle_rb_local_gems_to_eval = kettle_rb_local_gems - %w[json-merge] - declared_gems tslp_dev = ENV.fetch('TSLP_DEV', nil) +if tslp_dev.to_s.empty? && ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false') != 0 + structuredmerge_dev = ENV.fetch('STRUCTUREDMERGE_DEV', nil) + inferred_tslp_dev = File.expand_path('../../vendor/tree-sitter-language-pack/packages/ruby', structuredmerge_dev) + tslp_dev = inferred_tslp_dev if Dir.exist?(inferred_tslp_dev) +end # export VENDORED_GEMS= platform :mri do diff --git a/gems/kettle-jem/Gemfile.lock b/gems/kettle-jem/Gemfile.lock index bd7918522..e0eceb748 100644 --- a/gems/kettle-jem/Gemfile.lock +++ b/gems/kettle-jem/Gemfile.lock @@ -266,9 +266,9 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /var/home/pboling/src/my/structuredmerge/vendor/tree-sitter-language-pack/packages/ruby + remote: /home/pboling/src/my/structuredmerge/vendor/tree-sitter-language-pack/packages/ruby specs: - tree_sitter_language_pack (1.12.5) + tree_sitter_language_pack (1.13.0) rb_sys (>= 0.9, < 0.9.128) sorbet-runtime (~> 0.5) @@ -871,7 +871,7 @@ CHECKSUMS toml-merge (7.1.0) toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 tree_haver (7.1.0) - tree_sitter_language_pack (1.12.5) + tree_sitter_language_pack (1.13.0) tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 typescript-merge (7.1.0) diff --git a/gems/kettle-jem/gemfiles/modular/templating_local.gemfile b/gems/kettle-jem/gemfiles/modular/templating_local.gemfile index 632a5c17d..0c950faae 100644 --- a/gems/kettle-jem/gemfiles/modular/templating_local.gemfile +++ b/gems/kettle-jem/gemfiles/modular/templating_local.gemfile @@ -69,6 +69,11 @@ structuredmerge_local_gems_to_eval = structuredmerge_local_gems - %w[kettle-jem] kettle_rb_local_gems_to_eval = kettle_rb_local_gems - %w[kettle-jem] - declared_gems tslp_dev = ENV.fetch("TSLP_DEV", nil) +if tslp_dev.to_s.empty? && ENV.fetch("STRUCTUREDMERGE_DEV", "false").casecmp("false") != 0 + structuredmerge_dev = ENV.fetch("STRUCTUREDMERGE_DEV", nil) + inferred_tslp_dev = File.expand_path("../../vendor/tree-sitter-language-pack/packages/ruby", structuredmerge_dev) + tslp_dev = inferred_tslp_dev if Dir.exist?(inferred_tslp_dev) +end # export VENDORED_GEMS= platform :mri do diff --git a/gems/kettle-jem/lib/kettle/jem/tasks/prepare_task.rb b/gems/kettle-jem/lib/kettle/jem/tasks/prepare_task.rb index 758455e03..1634deedd 100644 --- a/gems/kettle-jem/lib/kettle/jem/tasks/prepare_task.rb +++ b/gems/kettle-jem/lib/kettle/jem/tasks/prepare_task.rb @@ -11,7 +11,7 @@ module PrepareTask "gemfiles/modular/templating_local.gemfile", "mise.toml" ].freeze - CRITICAL_TEMPLATING_GEMS = %w[nomono].freeze + CRITICAL_TEMPLATING_GEMS = %w[nomono tree_sitter_language_pack].freeze module_function diff --git a/gems/kettle-jem/lib/kettle/jem/templates/gemfiles/modular/templating_local.gemfile.example b/gems/kettle-jem/lib/kettle/jem/templates/gemfiles/modular/templating_local.gemfile.example index bbf6c8417..82608833d 100644 --- a/gems/kettle-jem/lib/kettle/jem/templates/gemfiles/modular/templating_local.gemfile.example +++ b/gems/kettle-jem/lib/kettle/jem/templates/gemfiles/modular/templating_local.gemfile.example @@ -69,6 +69,11 @@ structuredmerge_local_gems_to_eval = structuredmerge_local_gems - %w[{KJ|PACKAGE kettle_rb_local_gems_to_eval = kettle_rb_local_gems - %w[{KJ|PACKAGE_NAME}] - declared_gems tslp_dev = ENV.fetch("TSLP_DEV", nil) +if tslp_dev.to_s.empty? && ENV.fetch("STRUCTUREDMERGE_DEV", "false").casecmp("false") != 0 + structuredmerge_dev = ENV.fetch("STRUCTUREDMERGE_DEV", nil) + inferred_tslp_dev = File.expand_path("../../vendor/tree-sitter-language-pack/packages/ruby", structuredmerge_dev) + tslp_dev = inferred_tslp_dev if Dir.exist?(inferred_tslp_dev) +end # export VENDORED_GEMS= platform :mri do diff --git a/gems/kettle-jem/spec/kettle/jem/tasks/prepare_task_spec.rb b/gems/kettle-jem/spec/kettle/jem/tasks/prepare_task_spec.rb index 3c60bfb2b..cff78e008 100644 --- a/gems/kettle-jem/spec/kettle/jem/tasks/prepare_task_spec.rb +++ b/gems/kettle-jem/spec/kettle/jem/tasks/prepare_task_spec.rb @@ -34,7 +34,7 @@ def tmp_root allow(Kettle::Jem::Tasks::InstallTask).to receive(:run_command_step) .with( "bundle_update_templating_bootstrap", - %w[bundle update nomono], + %w[bundle update nomono tree_sitter_language_pack], project_root: root, env: setup_env, quiet: false, @@ -78,7 +78,9 @@ def tmp_root end end - it "updates only the lockfile-safe templating bootstrap gem" do - expect(described_class.bundle_update_templating_bootstrap_command).to eq(%w[bundle update nomono]) + it "updates lockfile-safe templating bootstrap gems before the full template run" do + expect(described_class.bundle_update_templating_bootstrap_command).to eq( + %w[bundle update nomono tree_sitter_language_pack] + ) end end diff --git a/gems/kettle-jem/spec/thin_slice_spec.rb b/gems/kettle-jem/spec/thin_slice_spec.rb index 1a4274069..89c1b252b 100644 --- a/gems/kettle-jem/spec/thin_slice_spec.rb +++ b/gems/kettle-jem/spec/thin_slice_spec.rb @@ -8713,6 +8713,12 @@ def gamma ] tslp_dev = ENV.fetch("TSLP_DEV", nil) + if tslp_dev.to_s.empty? && ENV.fetch("STRUCTUREDMERGE_DEV", "false").casecmp("false") != 0 + structuredmerge_dev = ENV.fetch("STRUCTUREDMERGE_DEV", nil) + inferred_tslp_dev = File.expand_path("../../vendor/tree-sitter-language-pack/packages/ruby", structuredmerge_dev) + tslp_dev = inferred_tslp_dev if Dir.exist?(inferred_tslp_dev) + end + unless tslp_dev.to_s.empty? gem "tree_sitter_language_pack", path: tslp_dev end @@ -8732,8 +8738,10 @@ def gamma expect(content).not_to include("rubocop-ruby2_3") expect(content).to include("kettle-jem") expect(content).to include("TSLP_DEV") + expect(content).to include("inferred_tslp_dev") + expect(content).to include("STRUCTUREDMERGE_DEV") expect(content).to include('gem "tree_sitter_language_pack", path: tslp_dev') - expect(content).not_to include("vendor/tree-sitter-language-pack") + expect(content).to include("vendor/tree-sitter-language-pack") expect(File.read(File.join(root, "gemfiles/modular/templating_local.gemfile"))).to eq(content) end end diff --git a/gems/kramdown-merge/gemfiles/modular/templating_local.gemfile b/gems/kramdown-merge/gemfiles/modular/templating_local.gemfile index c6aa2eb79..d6c069d66 100644 --- a/gems/kramdown-merge/gemfiles/modular/templating_local.gemfile +++ b/gems/kramdown-merge/gemfiles/modular/templating_local.gemfile @@ -47,6 +47,11 @@ structuredmerge_local_gems_to_eval = structuredmerge_local_gems - %w[kramdown-me kettle_rb_local_gems_to_eval = kettle_rb_local_gems - %w[kramdown-merge] - declared_gems tslp_dev = ENV.fetch('TSLP_DEV', nil) +if tslp_dev.to_s.empty? && ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false') != 0 + structuredmerge_dev = ENV.fetch('STRUCTUREDMERGE_DEV', nil) + inferred_tslp_dev = File.expand_path('../../vendor/tree-sitter-language-pack/packages/ruby', structuredmerge_dev) + tslp_dev = inferred_tslp_dev if Dir.exist?(inferred_tslp_dev) +end # export VENDORED_GEMS= platform :mri do diff --git a/gems/markdown-merge/gemfiles/modular/templating_local.gemfile b/gems/markdown-merge/gemfiles/modular/templating_local.gemfile index c206a246f..f6091c355 100644 --- a/gems/markdown-merge/gemfiles/modular/templating_local.gemfile +++ b/gems/markdown-merge/gemfiles/modular/templating_local.gemfile @@ -47,6 +47,11 @@ structuredmerge_local_gems_to_eval = structuredmerge_local_gems - %w[markdown-me kettle_rb_local_gems_to_eval = kettle_rb_local_gems - %w[markdown-merge] - declared_gems tslp_dev = ENV.fetch('TSLP_DEV', nil) +if tslp_dev.to_s.empty? && ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false') != 0 + structuredmerge_dev = ENV.fetch('STRUCTUREDMERGE_DEV', nil) + inferred_tslp_dev = File.expand_path('../../vendor/tree-sitter-language-pack/packages/ruby', structuredmerge_dev) + tslp_dev = inferred_tslp_dev if Dir.exist?(inferred_tslp_dev) +end # export VENDORED_GEMS= platform :mri do diff --git a/gems/markly-merge/gemfiles/modular/templating_local.gemfile b/gems/markly-merge/gemfiles/modular/templating_local.gemfile index 697d305f3..3203bff98 100644 --- a/gems/markly-merge/gemfiles/modular/templating_local.gemfile +++ b/gems/markly-merge/gemfiles/modular/templating_local.gemfile @@ -47,6 +47,11 @@ structuredmerge_local_gems_to_eval = structuredmerge_local_gems - %w[markly-merg kettle_rb_local_gems_to_eval = kettle_rb_local_gems - %w[markly-merge] - declared_gems tslp_dev = ENV.fetch('TSLP_DEV', nil) +if tslp_dev.to_s.empty? && ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false') != 0 + structuredmerge_dev = ENV.fetch('STRUCTUREDMERGE_DEV', nil) + inferred_tslp_dev = File.expand_path('../../vendor/tree-sitter-language-pack/packages/ruby', structuredmerge_dev) + tslp_dev = inferred_tslp_dev if Dir.exist?(inferred_tslp_dev) +end # export VENDORED_GEMS= platform :mri do diff --git a/gems/parslet-toml-merge/gemfiles/modular/templating_local.gemfile b/gems/parslet-toml-merge/gemfiles/modular/templating_local.gemfile index 891bb61ba..d8b968fe7 100644 --- a/gems/parslet-toml-merge/gemfiles/modular/templating_local.gemfile +++ b/gems/parslet-toml-merge/gemfiles/modular/templating_local.gemfile @@ -47,6 +47,11 @@ structuredmerge_local_gems_to_eval = structuredmerge_local_gems - %w[parslet-tom kettle_rb_local_gems_to_eval = kettle_rb_local_gems - %w[parslet-toml-merge] - declared_gems tslp_dev = ENV.fetch('TSLP_DEV', nil) +if tslp_dev.to_s.empty? && ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false') != 0 + structuredmerge_dev = ENV.fetch('STRUCTUREDMERGE_DEV', nil) + inferred_tslp_dev = File.expand_path('../../vendor/tree-sitter-language-pack/packages/ruby', structuredmerge_dev) + tslp_dev = inferred_tslp_dev if Dir.exist?(inferred_tslp_dev) +end # export VENDORED_GEMS= platform :mri do diff --git a/gems/plain-merge/gemfiles/modular/templating_local.gemfile b/gems/plain-merge/gemfiles/modular/templating_local.gemfile index f8566b835..194d518ef 100644 --- a/gems/plain-merge/gemfiles/modular/templating_local.gemfile +++ b/gems/plain-merge/gemfiles/modular/templating_local.gemfile @@ -47,6 +47,11 @@ structuredmerge_local_gems_to_eval = structuredmerge_local_gems - %w[plain-merge kettle_rb_local_gems_to_eval = kettle_rb_local_gems - %w[plain-merge] - declared_gems tslp_dev = ENV.fetch('TSLP_DEV', nil) +if tslp_dev.to_s.empty? && ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false') != 0 + structuredmerge_dev = ENV.fetch('STRUCTUREDMERGE_DEV', nil) + inferred_tslp_dev = File.expand_path('../../vendor/tree-sitter-language-pack/packages/ruby', structuredmerge_dev) + tslp_dev = inferred_tslp_dev if Dir.exist?(inferred_tslp_dev) +end # export VENDORED_GEMS= platform :mri do diff --git a/gems/prism-merge/gemfiles/modular/templating_local.gemfile b/gems/prism-merge/gemfiles/modular/templating_local.gemfile index b212bdc16..2af497975 100644 --- a/gems/prism-merge/gemfiles/modular/templating_local.gemfile +++ b/gems/prism-merge/gemfiles/modular/templating_local.gemfile @@ -47,6 +47,11 @@ structuredmerge_local_gems_to_eval = structuredmerge_local_gems - %w[prism-merge kettle_rb_local_gems_to_eval = kettle_rb_local_gems - %w[prism-merge] - declared_gems tslp_dev = ENV.fetch('TSLP_DEV', nil) +if tslp_dev.to_s.empty? && ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false') != 0 + structuredmerge_dev = ENV.fetch('STRUCTUREDMERGE_DEV', nil) + inferred_tslp_dev = File.expand_path('../../vendor/tree-sitter-language-pack/packages/ruby', structuredmerge_dev) + tslp_dev = inferred_tslp_dev if Dir.exist?(inferred_tslp_dev) +end # export VENDORED_GEMS= platform :mri do diff --git a/gems/psych-merge/gemfiles/modular/templating_local.gemfile b/gems/psych-merge/gemfiles/modular/templating_local.gemfile index b1645acac..9f737319e 100644 --- a/gems/psych-merge/gemfiles/modular/templating_local.gemfile +++ b/gems/psych-merge/gemfiles/modular/templating_local.gemfile @@ -47,6 +47,11 @@ structuredmerge_local_gems_to_eval = structuredmerge_local_gems - %w[psych-merge kettle_rb_local_gems_to_eval = kettle_rb_local_gems - %w[psych-merge] - declared_gems tslp_dev = ENV.fetch('TSLP_DEV', nil) +if tslp_dev.to_s.empty? && ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false') != 0 + structuredmerge_dev = ENV.fetch('STRUCTUREDMERGE_DEV', nil) + inferred_tslp_dev = File.expand_path('../../vendor/tree-sitter-language-pack/packages/ruby', structuredmerge_dev) + tslp_dev = inferred_tslp_dev if Dir.exist?(inferred_tslp_dev) +end # export VENDORED_GEMS= platform :mri do diff --git a/gems/rbs-merge/gemfiles/modular/templating_local.gemfile b/gems/rbs-merge/gemfiles/modular/templating_local.gemfile index 05ae1c914..874bb9827 100644 --- a/gems/rbs-merge/gemfiles/modular/templating_local.gemfile +++ b/gems/rbs-merge/gemfiles/modular/templating_local.gemfile @@ -47,6 +47,11 @@ structuredmerge_local_gems_to_eval = structuredmerge_local_gems - %w[rbs-merge] kettle_rb_local_gems_to_eval = kettle_rb_local_gems - %w[rbs-merge] - declared_gems tslp_dev = ENV.fetch('TSLP_DEV', nil) +if tslp_dev.to_s.empty? && ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false') != 0 + structuredmerge_dev = ENV.fetch('STRUCTUREDMERGE_DEV', nil) + inferred_tslp_dev = File.expand_path('../../vendor/tree-sitter-language-pack/packages/ruby', structuredmerge_dev) + tslp_dev = inferred_tslp_dev if Dir.exist?(inferred_tslp_dev) +end # export VENDORED_GEMS= platform :mri do diff --git a/gems/ruby-merge/gemfiles/modular/templating_local.gemfile b/gems/ruby-merge/gemfiles/modular/templating_local.gemfile index a1631fd2e..cffacbb73 100644 --- a/gems/ruby-merge/gemfiles/modular/templating_local.gemfile +++ b/gems/ruby-merge/gemfiles/modular/templating_local.gemfile @@ -47,6 +47,11 @@ structuredmerge_local_gems_to_eval = structuredmerge_local_gems - %w[ruby-merge] kettle_rb_local_gems_to_eval = kettle_rb_local_gems - %w[ruby-merge] - declared_gems tslp_dev = ENV.fetch('TSLP_DEV', nil) +if tslp_dev.to_s.empty? && ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false') != 0 + structuredmerge_dev = ENV.fetch('STRUCTUREDMERGE_DEV', nil) + inferred_tslp_dev = File.expand_path('../../vendor/tree-sitter-language-pack/packages/ruby', structuredmerge_dev) + tslp_dev = inferred_tslp_dev if Dir.exist?(inferred_tslp_dev) +end # export VENDORED_GEMS= platform :mri do diff --git a/gems/rust-merge/gemfiles/modular/templating_local.gemfile b/gems/rust-merge/gemfiles/modular/templating_local.gemfile index 86918cade..835b113f5 100644 --- a/gems/rust-merge/gemfiles/modular/templating_local.gemfile +++ b/gems/rust-merge/gemfiles/modular/templating_local.gemfile @@ -47,6 +47,11 @@ structuredmerge_local_gems_to_eval = structuredmerge_local_gems - %w[rust-merge] kettle_rb_local_gems_to_eval = kettle_rb_local_gems - %w[rust-merge] - declared_gems tslp_dev = ENV.fetch('TSLP_DEV', nil) +if tslp_dev.to_s.empty? && ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false') != 0 + structuredmerge_dev = ENV.fetch('STRUCTUREDMERGE_DEV', nil) + inferred_tslp_dev = File.expand_path('../../vendor/tree-sitter-language-pack/packages/ruby', structuredmerge_dev) + tslp_dev = inferred_tslp_dev if Dir.exist?(inferred_tslp_dev) +end # export VENDORED_GEMS= platform :mri do diff --git a/gems/smorg-rb/gemfiles/modular/templating_local.gemfile b/gems/smorg-rb/gemfiles/modular/templating_local.gemfile index 9b5bc2fd4..7addc8f6a 100644 --- a/gems/smorg-rb/gemfiles/modular/templating_local.gemfile +++ b/gems/smorg-rb/gemfiles/modular/templating_local.gemfile @@ -47,6 +47,11 @@ structuredmerge_local_gems_to_eval = structuredmerge_local_gems - %w[smorg-rb] - kettle_rb_local_gems_to_eval = kettle_rb_local_gems - %w[smorg-rb] - declared_gems tslp_dev = ENV.fetch('TSLP_DEV', nil) +if tslp_dev.to_s.empty? && ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false') != 0 + structuredmerge_dev = ENV.fetch('STRUCTUREDMERGE_DEV', nil) + inferred_tslp_dev = File.expand_path('../../vendor/tree-sitter-language-pack/packages/ruby', structuredmerge_dev) + tslp_dev = inferred_tslp_dev if Dir.exist?(inferred_tslp_dev) +end # export VENDORED_GEMS= platform :mri do diff --git a/gems/toml-merge/gemfiles/modular/templating_local.gemfile b/gems/toml-merge/gemfiles/modular/templating_local.gemfile index c89d7b51c..f51beb6a5 100644 --- a/gems/toml-merge/gemfiles/modular/templating_local.gemfile +++ b/gems/toml-merge/gemfiles/modular/templating_local.gemfile @@ -47,6 +47,11 @@ structuredmerge_local_gems_to_eval = structuredmerge_local_gems - %w[toml-merge] kettle_rb_local_gems_to_eval = kettle_rb_local_gems - %w[toml-merge] - declared_gems tslp_dev = ENV.fetch('TSLP_DEV', nil) +if tslp_dev.to_s.empty? && ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false') != 0 + structuredmerge_dev = ENV.fetch('STRUCTUREDMERGE_DEV', nil) + inferred_tslp_dev = File.expand_path('../../vendor/tree-sitter-language-pack/packages/ruby', structuredmerge_dev) + tslp_dev = inferred_tslp_dev if Dir.exist?(inferred_tslp_dev) +end # export VENDORED_GEMS= platform :mri do diff --git a/gems/tree_haver/gemfiles/modular/templating_local.gemfile b/gems/tree_haver/gemfiles/modular/templating_local.gemfile index e5463da30..b4917aca3 100644 --- a/gems/tree_haver/gemfiles/modular/templating_local.gemfile +++ b/gems/tree_haver/gemfiles/modular/templating_local.gemfile @@ -47,6 +47,11 @@ structuredmerge_local_gems_to_eval = structuredmerge_local_gems - %w[tree_haver] kettle_rb_local_gems_to_eval = kettle_rb_local_gems - %w[tree_haver] - declared_gems tslp_dev = ENV.fetch('TSLP_DEV', nil) +if tslp_dev.to_s.empty? && ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false') != 0 + structuredmerge_dev = ENV.fetch('STRUCTUREDMERGE_DEV', nil) + inferred_tslp_dev = File.expand_path('../../vendor/tree-sitter-language-pack/packages/ruby', structuredmerge_dev) + tslp_dev = inferred_tslp_dev if Dir.exist?(inferred_tslp_dev) +end # export VENDORED_GEMS= platform :mri do diff --git a/gems/typescript-merge/gemfiles/modular/templating_local.gemfile b/gems/typescript-merge/gemfiles/modular/templating_local.gemfile index 3708e23e1..95c2dfa3b 100644 --- a/gems/typescript-merge/gemfiles/modular/templating_local.gemfile +++ b/gems/typescript-merge/gemfiles/modular/templating_local.gemfile @@ -47,6 +47,11 @@ structuredmerge_local_gems_to_eval = structuredmerge_local_gems - %w[typescript- kettle_rb_local_gems_to_eval = kettle_rb_local_gems - %w[typescript-merge] - declared_gems tslp_dev = ENV.fetch('TSLP_DEV', nil) +if tslp_dev.to_s.empty? && ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false') != 0 + structuredmerge_dev = ENV.fetch('STRUCTUREDMERGE_DEV', nil) + inferred_tslp_dev = File.expand_path('../../vendor/tree-sitter-language-pack/packages/ruby', structuredmerge_dev) + tslp_dev = inferred_tslp_dev if Dir.exist?(inferred_tslp_dev) +end # export VENDORED_GEMS= platform :mri do diff --git a/gems/yaml-merge/gemfiles/modular/templating_local.gemfile b/gems/yaml-merge/gemfiles/modular/templating_local.gemfile index 2e5d4ae44..18fe7014a 100644 --- a/gems/yaml-merge/gemfiles/modular/templating_local.gemfile +++ b/gems/yaml-merge/gemfiles/modular/templating_local.gemfile @@ -47,6 +47,11 @@ structuredmerge_local_gems_to_eval = structuredmerge_local_gems - %w[yaml-merge] kettle_rb_local_gems_to_eval = kettle_rb_local_gems - %w[yaml-merge] - declared_gems tslp_dev = ENV.fetch('TSLP_DEV', nil) +if tslp_dev.to_s.empty? && ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false') != 0 + structuredmerge_dev = ENV.fetch('STRUCTUREDMERGE_DEV', nil) + inferred_tslp_dev = File.expand_path('../../vendor/tree-sitter-language-pack/packages/ruby', structuredmerge_dev) + tslp_dev = inferred_tslp_dev if Dir.exist?(inferred_tslp_dev) +end # export VENDORED_GEMS= platform :mri do diff --git a/gems/zip-merge/gemfiles/modular/templating_local.gemfile b/gems/zip-merge/gemfiles/modular/templating_local.gemfile index 48389338d..ca49d2e39 100644 --- a/gems/zip-merge/gemfiles/modular/templating_local.gemfile +++ b/gems/zip-merge/gemfiles/modular/templating_local.gemfile @@ -47,6 +47,11 @@ structuredmerge_local_gems_to_eval = structuredmerge_local_gems - %w[zip-merge] kettle_rb_local_gems_to_eval = kettle_rb_local_gems - %w[zip-merge] - declared_gems tslp_dev = ENV.fetch('TSLP_DEV', nil) +if tslp_dev.to_s.empty? && ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false') != 0 + structuredmerge_dev = ENV.fetch('STRUCTUREDMERGE_DEV', nil) + inferred_tslp_dev = File.expand_path('../../vendor/tree-sitter-language-pack/packages/ruby', structuredmerge_dev) + tslp_dev = inferred_tslp_dev if Dir.exist?(inferred_tslp_dev) +end # export VENDORED_GEMS= platform :mri do From 3984d433e815b3115acfda3fa764b24bd3d6e50e Mon Sep 17 00:00:00 2001 From: "Peter H. Boling" Date: Sun, 19 Jul 2026 11:44:51 -0600 Subject: [PATCH 003/188] Use KETTLE_DEV_DEV for Kettle workspace paths --- .kettle-family.yml | 2 +- Gemfile | 10 +++---- gems/ast-crispr-markdown-markly/Gemfile | 2 +- .../gemfiles/modular/coverage.gemfile | 4 +-- .../gemfiles/modular/coverage_local.gemfile | 8 +++--- .../gemfiles/modular/templating.gemfile | 4 +-- .../gemfiles/modular/templating_local.gemfile | 14 +++++----- gems/ast-crispr-ruby-prism/Gemfile | 2 +- .../gemfiles/modular/coverage.gemfile | 4 +-- .../gemfiles/modular/coverage_local.gemfile | 8 +++--- .../gemfiles/modular/templating.gemfile | 4 +-- .../gemfiles/modular/templating_local.gemfile | 14 +++++----- gems/ast-crispr/Gemfile | 2 +- .../gemfiles/modular/coverage.gemfile | 4 +-- .../gemfiles/modular/coverage_local.gemfile | 8 +++--- .../gemfiles/modular/templating.gemfile | 4 +-- .../gemfiles/modular/templating_local.gemfile | 14 +++++----- gems/ast-merge-git/Gemfile | 2 +- .../gemfiles/modular/coverage.gemfile | 4 +-- .../gemfiles/modular/coverage_local.gemfile | 8 +++--- .../gemfiles/modular/templating.gemfile | 4 +-- .../gemfiles/modular/templating_local.gemfile | 14 +++++----- gems/ast-merge/Gemfile | 2 +- .../gemfiles/modular/coverage.gemfile | 4 +-- .../gemfiles/modular/coverage_local.gemfile | 8 +++--- .../gemfiles/modular/templating.gemfile | 4 +-- .../gemfiles/modular/templating_local.gemfile | 14 +++++----- gems/ast-template/Gemfile | 2 +- .../gemfiles/modular/coverage.gemfile | 4 +-- .../gemfiles/modular/coverage_local.gemfile | 8 +++--- .../gemfiles/modular/templating.gemfile | 4 +-- .../gemfiles/modular/templating_local.gemfile | 14 +++++----- gems/bash-merge/Gemfile | 2 +- .../gemfiles/modular/coverage.gemfile | 4 +-- .../gemfiles/modular/coverage_local.gemfile | 8 +++--- .../gemfiles/modular/templating.gemfile | 4 +-- .../gemfiles/modular/templating_local.gemfile | 14 +++++----- gems/binary-merge/Gemfile | 2 +- .../gemfiles/modular/coverage.gemfile | 4 +-- .../gemfiles/modular/coverage_local.gemfile | 8 +++--- .../gemfiles/modular/templating.gemfile | 4 +-- .../gemfiles/modular/templating_local.gemfile | 14 +++++----- gems/citrus-toml-merge/Gemfile | 2 +- .../gemfiles/modular/coverage.gemfile | 4 +-- .../gemfiles/modular/coverage_local.gemfile | 8 +++--- .../gemfiles/modular/templating.gemfile | 4 +-- .../gemfiles/modular/templating_local.gemfile | 14 +++++----- gems/commonmarker-merge/Gemfile | 2 +- .../gemfiles/modular/coverage.gemfile | 4 +-- .../gemfiles/modular/coverage_local.gemfile | 8 +++--- .../gemfiles/modular/templating.gemfile | 4 +-- .../gemfiles/modular/templating_local.gemfile | 14 +++++----- gems/dotenv-merge/Gemfile | 2 +- .../gemfiles/modular/coverage.gemfile | 4 +-- .../gemfiles/modular/coverage_local.gemfile | 8 +++--- .../gemfiles/modular/templating.gemfile | 4 +-- .../gemfiles/modular/templating_local.gemfile | 14 +++++----- gems/go-merge/Gemfile | 2 +- .../gemfiles/modular/coverage.gemfile | 4 +-- .../gemfiles/modular/coverage_local.gemfile | 8 +++--- .../gemfiles/modular/templating.gemfile | 4 +-- .../gemfiles/modular/templating_local.gemfile | 14 +++++----- gems/json-merge/Gemfile | 2 +- .../gemfiles/modular/coverage.gemfile | 4 +-- .../gemfiles/modular/coverage_local.gemfile | 8 +++--- .../gemfiles/modular/templating.gemfile | 4 +-- .../gemfiles/modular/templating_local.gemfile | 14 +++++----- gems/kettle-jem/CHANGELOG.md | 2 +- gems/kettle-jem/Gemfile | 2 +- gems/kettle-jem/README.md | 2 +- .../gemfiles/modular/coverage.gemfile | 4 +-- .../gemfiles/modular/coverage_local.gemfile | 8 +++--- .../gemfiles/modular/templating.gemfile | 4 +-- .../gemfiles/modular/templating_local.gemfile | 14 +++++----- gems/kettle-jem/lib/kettle/jem.rb | 16 ++++++------ gems/kettle-jem/lib/kettle/jem/cli.rb | 2 +- .../lib/kettle/jem/tasks/install_task.rb | 4 +-- .../lib/kettle/jem/templates/Gemfile.example | 2 +- .../gemfiles/modular/coverage.gemfile.example | 4 +-- .../modular/coverage_local.gemfile.example | 10 +++---- .../modular/templating.gemfile.example | 4 +-- .../modular/templating_local.gemfile.example | 16 ++++++------ gems/kettle-jem/spec/cli_spec.rb | 4 +-- gems/kettle-jem/spec/thin_slice_spec.rb | 26 +++++++++---------- gems/kramdown-merge/Gemfile | 2 +- .../gemfiles/modular/coverage.gemfile | 4 +-- .../gemfiles/modular/coverage_local.gemfile | 8 +++--- .../gemfiles/modular/templating.gemfile | 4 +-- .../gemfiles/modular/templating_local.gemfile | 14 +++++----- gems/markdown-merge/Gemfile | 2 +- .../gemfiles/modular/coverage.gemfile | 4 +-- .../gemfiles/modular/coverage_local.gemfile | 8 +++--- .../gemfiles/modular/templating.gemfile | 4 +-- .../gemfiles/modular/templating_local.gemfile | 14 +++++----- gems/markly-merge/Gemfile | 2 +- .../gemfiles/modular/coverage.gemfile | 4 +-- .../gemfiles/modular/coverage_local.gemfile | 8 +++--- .../gemfiles/modular/templating.gemfile | 4 +-- .../gemfiles/modular/templating_local.gemfile | 14 +++++----- gems/parslet-toml-merge/Gemfile | 2 +- .../gemfiles/modular/coverage.gemfile | 4 +-- .../gemfiles/modular/coverage_local.gemfile | 8 +++--- .../gemfiles/modular/templating.gemfile | 4 +-- .../gemfiles/modular/templating_local.gemfile | 14 +++++----- gems/plain-merge/Gemfile | 2 +- .../gemfiles/modular/coverage.gemfile | 4 +-- .../gemfiles/modular/coverage_local.gemfile | 8 +++--- .../gemfiles/modular/templating.gemfile | 4 +-- .../gemfiles/modular/templating_local.gemfile | 14 +++++----- gems/prism-merge/Gemfile | 2 +- .../gemfiles/modular/coverage.gemfile | 4 +-- .../gemfiles/modular/coverage_local.gemfile | 8 +++--- .../gemfiles/modular/templating.gemfile | 4 +-- .../gemfiles/modular/templating_local.gemfile | 14 +++++----- gems/psych-merge/Gemfile | 2 +- .../gemfiles/modular/coverage.gemfile | 4 +-- .../gemfiles/modular/coverage_local.gemfile | 8 +++--- .../gemfiles/modular/templating.gemfile | 4 +-- .../gemfiles/modular/templating_local.gemfile | 14 +++++----- gems/rbs-merge/Gemfile | 2 +- .../gemfiles/modular/coverage.gemfile | 4 +-- .../gemfiles/modular/coverage_local.gemfile | 8 +++--- .../gemfiles/modular/templating.gemfile | 4 +-- .../gemfiles/modular/templating_local.gemfile | 14 +++++----- gems/ruby-merge/Gemfile | 2 +- .../gemfiles/modular/coverage.gemfile | 4 +-- .../gemfiles/modular/coverage_local.gemfile | 8 +++--- .../gemfiles/modular/templating.gemfile | 4 +-- .../gemfiles/modular/templating_local.gemfile | 14 +++++----- gems/rust-merge/Gemfile | 2 +- .../gemfiles/modular/coverage.gemfile | 4 +-- .../gemfiles/modular/coverage_local.gemfile | 8 +++--- .../gemfiles/modular/templating.gemfile | 4 +-- .../gemfiles/modular/templating_local.gemfile | 14 +++++----- gems/smorg-rb/Gemfile | 2 +- .../gemfiles/modular/coverage.gemfile | 4 +-- .../gemfiles/modular/coverage_local.gemfile | 8 +++--- .../gemfiles/modular/templating.gemfile | 4 +-- .../gemfiles/modular/templating_local.gemfile | 14 +++++----- gems/toml-merge/Gemfile | 2 +- .../gemfiles/modular/coverage.gemfile | 4 +-- .../gemfiles/modular/coverage_local.gemfile | 8 +++--- .../gemfiles/modular/templating.gemfile | 4 +-- .../gemfiles/modular/templating_local.gemfile | 14 +++++----- gems/tree_haver/Gemfile | 2 +- .../gemfiles/modular/coverage.gemfile | 4 +-- .../gemfiles/modular/coverage_local.gemfile | 8 +++--- .../gemfiles/modular/templating.gemfile | 4 +-- .../gemfiles/modular/templating_local.gemfile | 14 +++++----- gems/typescript-merge/Gemfile | 2 +- .../gemfiles/modular/coverage.gemfile | 4 +-- .../gemfiles/modular/coverage_local.gemfile | 8 +++--- .../gemfiles/modular/templating.gemfile | 4 +-- .../gemfiles/modular/templating_local.gemfile | 14 +++++----- gems/yaml-merge/Gemfile | 2 +- .../gemfiles/modular/coverage.gemfile | 4 +-- .../gemfiles/modular/coverage_local.gemfile | 8 +++--- .../gemfiles/modular/templating.gemfile | 4 +-- .../gemfiles/modular/templating_local.gemfile | 14 +++++----- gems/zip-merge/Gemfile | 2 +- .../gemfiles/modular/coverage.gemfile | 4 +-- .../gemfiles/modular/coverage_local.gemfile | 8 +++--- .../gemfiles/modular/templating.gemfile | 4 +-- .../gemfiles/modular/templating_local.gemfile | 14 +++++----- 164 files changed, 532 insertions(+), 532 deletions(-) diff --git a/.kettle-family.yml b/.kettle-family.yml index 398693343..ef5b792f9 100644 --- a/.kettle-family.yml +++ b/.kettle-family.yml @@ -114,7 +114,7 @@ release: publish_command: bundle exec kettle-release env: GALTZO_FLOSS_DEV: false - KETTLE_RB_DEV: false + KETTLE_DEV_DEV: false STRUCTUREDMERGE_DEV: false TSLP_DEV: "" family_changelog: diff --git a/Gemfile b/Gemfile index 26178427d..cdecfbf1f 100644 --- a/Gemfile +++ b/Gemfile @@ -1,4 +1,4 @@ -kettle_rb_dev = ENV.fetch("KETTLE_RB_DEV", "false") +kettle_dev_dev = ENV.fetch("KETTLE_DEV_DEV", "false") source "https://rubygems.org" @@ -14,13 +14,13 @@ else gem "tree_sitter_language_pack", path: tslp_dev end -unless kettle_rb_dev.casecmp("false").zero? +unless kettle_dev_dev.casecmp("false").zero? require "nomono/bundler" eval_nomono_gems( gems: %w[kettle-dev kettle-family kettle-test], - prefix: "KETTLE_RB", - path_env: "KETTLE_RB_DEV", + prefix: "KETTLE_DEV", + path_env: "KETTLE_DEV_DEV", vendored_gems_env: "VENDORED_GEMS", vendor_gem_dir_env: "VENDOR_GEM_DIR", debug_env: "KETTLE_DEV_DEBUG", @@ -79,7 +79,7 @@ gem "appraisal2", "~> 3.1", ">= 3.1.1" gem "bundler-audit", "~> 0.9.3" -if kettle_rb_dev.casecmp("false").zero? +if kettle_dev_dev.casecmp("false").zero? gem "kettle-dev", "~> 2.2", ">= 2.2.25" gem "kettle-family", ">= 1.0.0" diff --git a/gems/ast-crispr-markdown-markly/Gemfile b/gems/ast-crispr-markdown-markly/Gemfile index 86b7488a2..300846c14 100644 --- a/gems/ast-crispr-markdown-markly/Gemfile +++ b/gems/ast-crispr-markdown-markly/Gemfile @@ -415,7 +415,7 @@ eval_gemfile 'gemfiles/modular/templating.gemfile' if ENV.fetch('K_JEM_TEMPLATIN # Debugging eval_gemfile 'gemfiles/modular/debug.gemfile' -# Code Coverage (env-switched: KETTLE_RB_DEV=true for local paths) +# Code Coverage (env-switched: KETTLE_DEV_DEV=true for local paths) eval_gemfile 'gemfiles/modular/coverage.gemfile' # Linting diff --git a/gems/ast-crispr-markdown-markly/gemfiles/modular/coverage.gemfile b/gems/ast-crispr-markdown-markly/gemfiles/modular/coverage.gemfile index c0ab9c066..f96d50954 100644 --- a/gems/ast-crispr-markdown-markly/gemfiles/modular/coverage.gemfile +++ b/gems/ast-crispr-markdown-markly/gemfiles/modular/coverage.gemfile @@ -2,9 +2,9 @@ # We run code coverage on the latest version of Ruby only. -# Set KETTLE_RB_DEV=true for local development with path-based dependencies. +# Set KETTLE_DEV_DEV=true for local development with path-based dependencies. # When false (default / CI), remote released gems are used. -if ENV.fetch('KETTLE_RB_DEV', 'false').casecmp('false').zero? +if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? # Coverage (remote/released) platform :mri do gem 'kettle-soup-cover', '~> 1.0', '>= 1.1.3', require: false diff --git a/gems/ast-crispr-markdown-markly/gemfiles/modular/coverage_local.gemfile b/gems/ast-crispr-markdown-markly/gemfiles/modular/coverage_local.gemfile index b8907c400..41c5f3b55 100644 --- a/gems/ast-crispr-markdown-markly/gemfiles/modular/coverage_local.gemfile +++ b/gems/ast-crispr-markdown-markly/gemfiles/modular/coverage_local.gemfile @@ -1,7 +1,7 @@ # frozen_string_literal: true # Local path overrides for development. -# Loaded by the associated non-local gemfile when KETTLE_RB_DEV != "false". +# Loaded by the associated non-local gemfile when KETTLE_DEV_DEV != "false". require 'nomono/bundler' unless defined?(Nomono) @@ -9,12 +9,12 @@ local_gems = %w[kettle-dev kettle-test kettle-soup-cover kettle-drift] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) local_gems_to_eval = local_gems - %w[ast-crispr-markdown-markly] - declared_gems -# export KETTLE_RB_DEV=/path/to/kettle-rb +# export KETTLE_DEV_DEV=/path/to/kettle-rb platform :mri do eval_nomono_gems( gems: local_gems_to_eval, - prefix: 'KETTLE_RB', - path_env: 'KETTLE_RB_DEV', + prefix: 'KETTLE_DEV', + path_env: 'KETTLE_DEV_DEV', vendored_gems_env: 'VENDORED_GEMS', vendor_gem_dir_env: 'VENDOR_GEM_DIR', debug_env: 'KETTLE_DEV_DEBUG' diff --git a/gems/ast-crispr-markdown-markly/gemfiles/modular/templating.gemfile b/gems/ast-crispr-markdown-markly/gemfiles/modular/templating.gemfile index e3c24e6b7..1ee2a5ea7 100644 --- a/gems/ast-crispr-markdown-markly/gemfiles/modular/templating.gemfile +++ b/gems/ast-crispr-markdown-markly/gemfiles/modular/templating.gemfile @@ -1,7 +1,7 @@ # frozen_string_literal: true structuredmerge_remote = ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false').zero? -kettle_remote = ENV.fetch('KETTLE_RB_DEV', 'false').casecmp('false').zero? +kettle_remote = ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? if structuredmerge_remote # Merge recipes and parser dependencies for released installs. @@ -17,6 +17,6 @@ end # When false (default / CI), released kettle-jem brings merge gems and parser dependencies. # Local path overrides bring the same dependencies from sibling gemspecs. # -# Set KETTLE_RB_DEV=/path/to/kettle-rb for local development with Kettle plugin gems. +# Set KETTLE_DEV_DEV=/path/to/kettle-rb for local development with Kettle plugin gems. # When false (default / CI), released Kettle plugin gems are used. eval_gemfile 'templating_local.gemfile' unless structuredmerge_remote && kettle_remote diff --git a/gems/ast-crispr-markdown-markly/gemfiles/modular/templating_local.gemfile b/gems/ast-crispr-markdown-markly/gemfiles/modular/templating_local.gemfile index c517ce0b1..ea71a8ae6 100644 --- a/gems/ast-crispr-markdown-markly/gemfiles/modular/templating_local.gemfile +++ b/gems/ast-crispr-markdown-markly/gemfiles/modular/templating_local.gemfile @@ -1,7 +1,7 @@ # frozen_string_literal: true # Local path overrides for templating development. -# Loaded by the associated non-local gemfile when STRUCTUREDMERGE_DEV or KETTLE_RB_DEV +# Loaded by the associated non-local gemfile when STRUCTUREDMERGE_DEV or KETTLE_DEV_DEV # is not "false". require 'nomono/bundler' unless defined?(Nomono) @@ -39,12 +39,12 @@ structuredmerge_local_gems = %w[ ast-crispr-ruby-prism ] -kettle_rb_local_gems = %w[ +kettle_dev_local_gems = %w[ kettle-dev kettle-test kettle-soup-cover kettle-drift ] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) structuredmerge_local_gems_to_eval = structuredmerge_local_gems - %w[ast-crispr-markdown-markly] - declared_gems -kettle_rb_local_gems_to_eval = kettle_rb_local_gems - %w[ast-crispr-markdown-markly] - declared_gems +kettle_dev_local_gems_to_eval = kettle_dev_local_gems - %w[ast-crispr-markdown-markly] - declared_gems tslp_dev = ENV.fetch('TSLP_DEV', nil) if tslp_dev.to_s.empty? && ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false') != 0 @@ -68,11 +68,11 @@ platform :mri do ) end - if ENV.fetch('KETTLE_RB_DEV', 'false').casecmp('false') != 0 + if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false') != 0 eval_nomono_gems( - gems: kettle_rb_local_gems_to_eval, - prefix: 'KETTLE_RB', - path_env: 'KETTLE_RB_DEV', + gems: kettle_dev_local_gems_to_eval, + prefix: 'KETTLE_DEV', + path_env: 'KETTLE_DEV_DEV', vendored_gems_env: 'VENDORED_GEMS', vendor_gem_dir_env: 'VENDOR_GEM_DIR', debug_env: 'KETTLE_DEV_DEBUG' diff --git a/gems/ast-crispr-ruby-prism/Gemfile b/gems/ast-crispr-ruby-prism/Gemfile index 43f132f05..443f1d8be 100644 --- a/gems/ast-crispr-ruby-prism/Gemfile +++ b/gems/ast-crispr-ruby-prism/Gemfile @@ -414,7 +414,7 @@ eval_gemfile 'gemfiles/modular/templating.gemfile' if ENV.fetch('K_JEM_TEMPLATIN # Debugging eval_gemfile 'gemfiles/modular/debug.gemfile' -# Code Coverage (env-switched: KETTLE_RB_DEV=true for local paths) +# Code Coverage (env-switched: KETTLE_DEV_DEV=true for local paths) eval_gemfile 'gemfiles/modular/coverage.gemfile' # Linting diff --git a/gems/ast-crispr-ruby-prism/gemfiles/modular/coverage.gemfile b/gems/ast-crispr-ruby-prism/gemfiles/modular/coverage.gemfile index c0ab9c066..f96d50954 100644 --- a/gems/ast-crispr-ruby-prism/gemfiles/modular/coverage.gemfile +++ b/gems/ast-crispr-ruby-prism/gemfiles/modular/coverage.gemfile @@ -2,9 +2,9 @@ # We run code coverage on the latest version of Ruby only. -# Set KETTLE_RB_DEV=true for local development with path-based dependencies. +# Set KETTLE_DEV_DEV=true for local development with path-based dependencies. # When false (default / CI), remote released gems are used. -if ENV.fetch('KETTLE_RB_DEV', 'false').casecmp('false').zero? +if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? # Coverage (remote/released) platform :mri do gem 'kettle-soup-cover', '~> 1.0', '>= 1.1.3', require: false diff --git a/gems/ast-crispr-ruby-prism/gemfiles/modular/coverage_local.gemfile b/gems/ast-crispr-ruby-prism/gemfiles/modular/coverage_local.gemfile index 6863a1b38..2ff3a07e8 100644 --- a/gems/ast-crispr-ruby-prism/gemfiles/modular/coverage_local.gemfile +++ b/gems/ast-crispr-ruby-prism/gemfiles/modular/coverage_local.gemfile @@ -1,7 +1,7 @@ # frozen_string_literal: true # Local path overrides for development. -# Loaded by the associated non-local gemfile when KETTLE_RB_DEV != "false". +# Loaded by the associated non-local gemfile when KETTLE_DEV_DEV != "false". require 'nomono/bundler' unless defined?(Nomono) @@ -9,12 +9,12 @@ local_gems = %w[kettle-dev kettle-test kettle-soup-cover kettle-drift] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) local_gems_to_eval = local_gems - %w[ast-crispr-ruby-prism] - declared_gems -# export KETTLE_RB_DEV=/path/to/kettle-rb +# export KETTLE_DEV_DEV=/path/to/kettle-rb platform :mri do eval_nomono_gems( gems: local_gems_to_eval, - prefix: 'KETTLE_RB', - path_env: 'KETTLE_RB_DEV', + prefix: 'KETTLE_DEV', + path_env: 'KETTLE_DEV_DEV', vendored_gems_env: 'VENDORED_GEMS', vendor_gem_dir_env: 'VENDOR_GEM_DIR', debug_env: 'KETTLE_DEV_DEBUG' diff --git a/gems/ast-crispr-ruby-prism/gemfiles/modular/templating.gemfile b/gems/ast-crispr-ruby-prism/gemfiles/modular/templating.gemfile index e3c24e6b7..1ee2a5ea7 100644 --- a/gems/ast-crispr-ruby-prism/gemfiles/modular/templating.gemfile +++ b/gems/ast-crispr-ruby-prism/gemfiles/modular/templating.gemfile @@ -1,7 +1,7 @@ # frozen_string_literal: true structuredmerge_remote = ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false').zero? -kettle_remote = ENV.fetch('KETTLE_RB_DEV', 'false').casecmp('false').zero? +kettle_remote = ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? if structuredmerge_remote # Merge recipes and parser dependencies for released installs. @@ -17,6 +17,6 @@ end # When false (default / CI), released kettle-jem brings merge gems and parser dependencies. # Local path overrides bring the same dependencies from sibling gemspecs. # -# Set KETTLE_RB_DEV=/path/to/kettle-rb for local development with Kettle plugin gems. +# Set KETTLE_DEV_DEV=/path/to/kettle-rb for local development with Kettle plugin gems. # When false (default / CI), released Kettle plugin gems are used. eval_gemfile 'templating_local.gemfile' unless structuredmerge_remote && kettle_remote diff --git a/gems/ast-crispr-ruby-prism/gemfiles/modular/templating_local.gemfile b/gems/ast-crispr-ruby-prism/gemfiles/modular/templating_local.gemfile index cd27b1d37..2b8a42b00 100644 --- a/gems/ast-crispr-ruby-prism/gemfiles/modular/templating_local.gemfile +++ b/gems/ast-crispr-ruby-prism/gemfiles/modular/templating_local.gemfile @@ -1,7 +1,7 @@ # frozen_string_literal: true # Local path overrides for templating development. -# Loaded by the associated non-local gemfile when STRUCTUREDMERGE_DEV or KETTLE_RB_DEV +# Loaded by the associated non-local gemfile when STRUCTUREDMERGE_DEV or KETTLE_DEV_DEV # is not "false". require 'nomono/bundler' unless defined?(Nomono) @@ -39,12 +39,12 @@ structuredmerge_local_gems = %w[ ast-crispr-ruby-prism ] -kettle_rb_local_gems = %w[ +kettle_dev_local_gems = %w[ kettle-dev kettle-test kettle-soup-cover kettle-drift ] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) structuredmerge_local_gems_to_eval = structuredmerge_local_gems - %w[ast-crispr-ruby-prism] - declared_gems -kettle_rb_local_gems_to_eval = kettle_rb_local_gems - %w[ast-crispr-ruby-prism] - declared_gems +kettle_dev_local_gems_to_eval = kettle_dev_local_gems - %w[ast-crispr-ruby-prism] - declared_gems tslp_dev = ENV.fetch('TSLP_DEV', nil) if tslp_dev.to_s.empty? && ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false') != 0 @@ -68,11 +68,11 @@ platform :mri do ) end - if ENV.fetch('KETTLE_RB_DEV', 'false').casecmp('false') != 0 + if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false') != 0 eval_nomono_gems( - gems: kettle_rb_local_gems_to_eval, - prefix: 'KETTLE_RB', - path_env: 'KETTLE_RB_DEV', + gems: kettle_dev_local_gems_to_eval, + prefix: 'KETTLE_DEV', + path_env: 'KETTLE_DEV_DEV', vendored_gems_env: 'VENDORED_GEMS', vendor_gem_dir_env: 'VENDOR_GEM_DIR', debug_env: 'KETTLE_DEV_DEBUG' diff --git a/gems/ast-crispr/Gemfile b/gems/ast-crispr/Gemfile index 408241295..f7f5c5285 100644 --- a/gems/ast-crispr/Gemfile +++ b/gems/ast-crispr/Gemfile @@ -414,7 +414,7 @@ eval_gemfile 'gemfiles/modular/templating.gemfile' if ENV.fetch('K_JEM_TEMPLATIN # Debugging eval_gemfile 'gemfiles/modular/debug.gemfile' -# Code Coverage (env-switched: KETTLE_RB_DEV=true for local paths) +# Code Coverage (env-switched: KETTLE_DEV_DEV=true for local paths) eval_gemfile 'gemfiles/modular/coverage.gemfile' # Linting diff --git a/gems/ast-crispr/gemfiles/modular/coverage.gemfile b/gems/ast-crispr/gemfiles/modular/coverage.gemfile index c0ab9c066..f96d50954 100644 --- a/gems/ast-crispr/gemfiles/modular/coverage.gemfile +++ b/gems/ast-crispr/gemfiles/modular/coverage.gemfile @@ -2,9 +2,9 @@ # We run code coverage on the latest version of Ruby only. -# Set KETTLE_RB_DEV=true for local development with path-based dependencies. +# Set KETTLE_DEV_DEV=true for local development with path-based dependencies. # When false (default / CI), remote released gems are used. -if ENV.fetch('KETTLE_RB_DEV', 'false').casecmp('false').zero? +if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? # Coverage (remote/released) platform :mri do gem 'kettle-soup-cover', '~> 1.0', '>= 1.1.3', require: false diff --git a/gems/ast-crispr/gemfiles/modular/coverage_local.gemfile b/gems/ast-crispr/gemfiles/modular/coverage_local.gemfile index 8fef2c50e..922a943d9 100644 --- a/gems/ast-crispr/gemfiles/modular/coverage_local.gemfile +++ b/gems/ast-crispr/gemfiles/modular/coverage_local.gemfile @@ -1,7 +1,7 @@ # frozen_string_literal: true # Local path overrides for development. -# Loaded by the associated non-local gemfile when KETTLE_RB_DEV != "false". +# Loaded by the associated non-local gemfile when KETTLE_DEV_DEV != "false". require 'nomono/bundler' unless defined?(Nomono) @@ -9,12 +9,12 @@ local_gems = %w[kettle-dev kettle-test kettle-soup-cover kettle-drift] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) local_gems_to_eval = local_gems - %w[ast-crispr] - declared_gems -# export KETTLE_RB_DEV=/path/to/kettle-rb +# export KETTLE_DEV_DEV=/path/to/kettle-rb platform :mri do eval_nomono_gems( gems: local_gems_to_eval, - prefix: 'KETTLE_RB', - path_env: 'KETTLE_RB_DEV', + prefix: 'KETTLE_DEV', + path_env: 'KETTLE_DEV_DEV', vendored_gems_env: 'VENDORED_GEMS', vendor_gem_dir_env: 'VENDOR_GEM_DIR', debug_env: 'KETTLE_DEV_DEBUG' diff --git a/gems/ast-crispr/gemfiles/modular/templating.gemfile b/gems/ast-crispr/gemfiles/modular/templating.gemfile index e3c24e6b7..1ee2a5ea7 100644 --- a/gems/ast-crispr/gemfiles/modular/templating.gemfile +++ b/gems/ast-crispr/gemfiles/modular/templating.gemfile @@ -1,7 +1,7 @@ # frozen_string_literal: true structuredmerge_remote = ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false').zero? -kettle_remote = ENV.fetch('KETTLE_RB_DEV', 'false').casecmp('false').zero? +kettle_remote = ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? if structuredmerge_remote # Merge recipes and parser dependencies for released installs. @@ -17,6 +17,6 @@ end # When false (default / CI), released kettle-jem brings merge gems and parser dependencies. # Local path overrides bring the same dependencies from sibling gemspecs. # -# Set KETTLE_RB_DEV=/path/to/kettle-rb for local development with Kettle plugin gems. +# Set KETTLE_DEV_DEV=/path/to/kettle-rb for local development with Kettle plugin gems. # When false (default / CI), released Kettle plugin gems are used. eval_gemfile 'templating_local.gemfile' unless structuredmerge_remote && kettle_remote diff --git a/gems/ast-crispr/gemfiles/modular/templating_local.gemfile b/gems/ast-crispr/gemfiles/modular/templating_local.gemfile index e97ed40ae..17302fc89 100644 --- a/gems/ast-crispr/gemfiles/modular/templating_local.gemfile +++ b/gems/ast-crispr/gemfiles/modular/templating_local.gemfile @@ -1,7 +1,7 @@ # frozen_string_literal: true # Local path overrides for templating development. -# Loaded by the associated non-local gemfile when STRUCTUREDMERGE_DEV or KETTLE_RB_DEV +# Loaded by the associated non-local gemfile when STRUCTUREDMERGE_DEV or KETTLE_DEV_DEV # is not "false". require 'nomono/bundler' unless defined?(Nomono) @@ -39,12 +39,12 @@ structuredmerge_local_gems = %w[ ast-crispr-ruby-prism ] -kettle_rb_local_gems = %w[ +kettle_dev_local_gems = %w[ kettle-dev kettle-test kettle-soup-cover kettle-drift ] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) structuredmerge_local_gems_to_eval = structuredmerge_local_gems - %w[ast-crispr] - declared_gems -kettle_rb_local_gems_to_eval = kettle_rb_local_gems - %w[ast-crispr] - declared_gems +kettle_dev_local_gems_to_eval = kettle_dev_local_gems - %w[ast-crispr] - declared_gems tslp_dev = ENV.fetch('TSLP_DEV', nil) if tslp_dev.to_s.empty? && ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false') != 0 @@ -68,11 +68,11 @@ platform :mri do ) end - if ENV.fetch('KETTLE_RB_DEV', 'false').casecmp('false') != 0 + if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false') != 0 eval_nomono_gems( - gems: kettle_rb_local_gems_to_eval, - prefix: 'KETTLE_RB', - path_env: 'KETTLE_RB_DEV', + gems: kettle_dev_local_gems_to_eval, + prefix: 'KETTLE_DEV', + path_env: 'KETTLE_DEV_DEV', vendored_gems_env: 'VENDORED_GEMS', vendor_gem_dir_env: 'VENDOR_GEM_DIR', debug_env: 'KETTLE_DEV_DEBUG' diff --git a/gems/ast-merge-git/Gemfile b/gems/ast-merge-git/Gemfile index d8a97d415..8c7a86f6f 100644 --- a/gems/ast-merge-git/Gemfile +++ b/gems/ast-merge-git/Gemfile @@ -455,7 +455,7 @@ eval_gemfile 'gemfiles/modular/templating.gemfile' if ENV.fetch('K_JEM_TEMPLATIN # Debugging eval_gemfile 'gemfiles/modular/debug.gemfile' -# Code Coverage (env-switched: KETTLE_RB_DEV=true for local paths) +# Code Coverage (env-switched: KETTLE_DEV_DEV=true for local paths) eval_gemfile 'gemfiles/modular/coverage.gemfile' # Linting diff --git a/gems/ast-merge-git/gemfiles/modular/coverage.gemfile b/gems/ast-merge-git/gemfiles/modular/coverage.gemfile index c0ab9c066..f96d50954 100644 --- a/gems/ast-merge-git/gemfiles/modular/coverage.gemfile +++ b/gems/ast-merge-git/gemfiles/modular/coverage.gemfile @@ -2,9 +2,9 @@ # We run code coverage on the latest version of Ruby only. -# Set KETTLE_RB_DEV=true for local development with path-based dependencies. +# Set KETTLE_DEV_DEV=true for local development with path-based dependencies. # When false (default / CI), remote released gems are used. -if ENV.fetch('KETTLE_RB_DEV', 'false').casecmp('false').zero? +if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? # Coverage (remote/released) platform :mri do gem 'kettle-soup-cover', '~> 1.0', '>= 1.1.3', require: false diff --git a/gems/ast-merge-git/gemfiles/modular/coverage_local.gemfile b/gems/ast-merge-git/gemfiles/modular/coverage_local.gemfile index f2d1ad9c2..8b58b7cdb 100644 --- a/gems/ast-merge-git/gemfiles/modular/coverage_local.gemfile +++ b/gems/ast-merge-git/gemfiles/modular/coverage_local.gemfile @@ -1,7 +1,7 @@ # frozen_string_literal: true # Local path overrides for development. -# Loaded by the associated non-local gemfile when KETTLE_RB_DEV != "false". +# Loaded by the associated non-local gemfile when KETTLE_DEV_DEV != "false". require 'nomono/bundler' unless defined?(Nomono) @@ -9,12 +9,12 @@ local_gems = %w[kettle-dev kettle-test kettle-soup-cover kettle-drift] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) local_gems_to_eval = local_gems - %w[ast-merge-git] - declared_gems -# export KETTLE_RB_DEV=/path/to/kettle-rb +# export KETTLE_DEV_DEV=/path/to/kettle-rb platform :mri do eval_nomono_gems( gems: local_gems_to_eval, - prefix: 'KETTLE_RB', - path_env: 'KETTLE_RB_DEV', + prefix: 'KETTLE_DEV', + path_env: 'KETTLE_DEV_DEV', vendored_gems_env: 'VENDORED_GEMS', vendor_gem_dir_env: 'VENDOR_GEM_DIR', debug_env: 'KETTLE_DEV_DEBUG' diff --git a/gems/ast-merge-git/gemfiles/modular/templating.gemfile b/gems/ast-merge-git/gemfiles/modular/templating.gemfile index e3c24e6b7..1ee2a5ea7 100644 --- a/gems/ast-merge-git/gemfiles/modular/templating.gemfile +++ b/gems/ast-merge-git/gemfiles/modular/templating.gemfile @@ -1,7 +1,7 @@ # frozen_string_literal: true structuredmerge_remote = ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false').zero? -kettle_remote = ENV.fetch('KETTLE_RB_DEV', 'false').casecmp('false').zero? +kettle_remote = ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? if structuredmerge_remote # Merge recipes and parser dependencies for released installs. @@ -17,6 +17,6 @@ end # When false (default / CI), released kettle-jem brings merge gems and parser dependencies. # Local path overrides bring the same dependencies from sibling gemspecs. # -# Set KETTLE_RB_DEV=/path/to/kettle-rb for local development with Kettle plugin gems. +# Set KETTLE_DEV_DEV=/path/to/kettle-rb for local development with Kettle plugin gems. # When false (default / CI), released Kettle plugin gems are used. eval_gemfile 'templating_local.gemfile' unless structuredmerge_remote && kettle_remote diff --git a/gems/ast-merge-git/gemfiles/modular/templating_local.gemfile b/gems/ast-merge-git/gemfiles/modular/templating_local.gemfile index 5787b61fa..668b701a7 100644 --- a/gems/ast-merge-git/gemfiles/modular/templating_local.gemfile +++ b/gems/ast-merge-git/gemfiles/modular/templating_local.gemfile @@ -1,7 +1,7 @@ # frozen_string_literal: true # Local path overrides for templating development. -# Loaded by the associated non-local gemfile when STRUCTUREDMERGE_DEV or KETTLE_RB_DEV +# Loaded by the associated non-local gemfile when STRUCTUREDMERGE_DEV or KETTLE_DEV_DEV # is not "false". require 'nomono/bundler' unless defined?(Nomono) @@ -39,12 +39,12 @@ structuredmerge_local_gems = %w[ ast-crispr-ruby-prism ] -kettle_rb_local_gems = %w[ +kettle_dev_local_gems = %w[ kettle-dev kettle-test kettle-soup-cover kettle-drift ] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) structuredmerge_local_gems_to_eval = structuredmerge_local_gems - %w[ast-merge-git] - declared_gems -kettle_rb_local_gems_to_eval = kettle_rb_local_gems - %w[ast-merge-git] - declared_gems +kettle_dev_local_gems_to_eval = kettle_dev_local_gems - %w[ast-merge-git] - declared_gems tslp_dev = ENV.fetch('TSLP_DEV', nil) if tslp_dev.to_s.empty? && ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false') != 0 @@ -68,11 +68,11 @@ platform :mri do ) end - if ENV.fetch('KETTLE_RB_DEV', 'false').casecmp('false') != 0 + if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false') != 0 eval_nomono_gems( - gems: kettle_rb_local_gems_to_eval, - prefix: 'KETTLE_RB', - path_env: 'KETTLE_RB_DEV', + gems: kettle_dev_local_gems_to_eval, + prefix: 'KETTLE_DEV', + path_env: 'KETTLE_DEV_DEV', vendored_gems_env: 'VENDORED_GEMS', vendor_gem_dir_env: 'VENDOR_GEM_DIR', debug_env: 'KETTLE_DEV_DEBUG' diff --git a/gems/ast-merge/Gemfile b/gems/ast-merge/Gemfile index c4d51f141..47ca099dd 100644 --- a/gems/ast-merge/Gemfile +++ b/gems/ast-merge/Gemfile @@ -414,7 +414,7 @@ eval_gemfile 'gemfiles/modular/templating.gemfile' if ENV.fetch('K_JEM_TEMPLATIN # Debugging eval_gemfile 'gemfiles/modular/debug.gemfile' -# Code Coverage (env-switched: KETTLE_RB_DEV=true for local paths) +# Code Coverage (env-switched: KETTLE_DEV_DEV=true for local paths) eval_gemfile 'gemfiles/modular/coverage.gemfile' # Linting diff --git a/gems/ast-merge/gemfiles/modular/coverage.gemfile b/gems/ast-merge/gemfiles/modular/coverage.gemfile index c0ab9c066..f96d50954 100644 --- a/gems/ast-merge/gemfiles/modular/coverage.gemfile +++ b/gems/ast-merge/gemfiles/modular/coverage.gemfile @@ -2,9 +2,9 @@ # We run code coverage on the latest version of Ruby only. -# Set KETTLE_RB_DEV=true for local development with path-based dependencies. +# Set KETTLE_DEV_DEV=true for local development with path-based dependencies. # When false (default / CI), remote released gems are used. -if ENV.fetch('KETTLE_RB_DEV', 'false').casecmp('false').zero? +if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? # Coverage (remote/released) platform :mri do gem 'kettle-soup-cover', '~> 1.0', '>= 1.1.3', require: false diff --git a/gems/ast-merge/gemfiles/modular/coverage_local.gemfile b/gems/ast-merge/gemfiles/modular/coverage_local.gemfile index 073a73f58..ad77cc251 100644 --- a/gems/ast-merge/gemfiles/modular/coverage_local.gemfile +++ b/gems/ast-merge/gemfiles/modular/coverage_local.gemfile @@ -1,7 +1,7 @@ # frozen_string_literal: true # Local path overrides for development. -# Loaded by the associated non-local gemfile when KETTLE_RB_DEV != "false". +# Loaded by the associated non-local gemfile when KETTLE_DEV_DEV != "false". require 'nomono/bundler' unless defined?(Nomono) @@ -9,12 +9,12 @@ local_gems = %w[kettle-dev kettle-test kettle-soup-cover kettle-drift] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) local_gems_to_eval = local_gems - %w[ast-merge] - declared_gems -# export KETTLE_RB_DEV=/path/to/kettle-rb +# export KETTLE_DEV_DEV=/path/to/kettle-rb platform :mri do eval_nomono_gems( gems: local_gems_to_eval, - prefix: 'KETTLE_RB', - path_env: 'KETTLE_RB_DEV', + prefix: 'KETTLE_DEV', + path_env: 'KETTLE_DEV_DEV', vendored_gems_env: 'VENDORED_GEMS', vendor_gem_dir_env: 'VENDOR_GEM_DIR', debug_env: 'KETTLE_DEV_DEBUG' diff --git a/gems/ast-merge/gemfiles/modular/templating.gemfile b/gems/ast-merge/gemfiles/modular/templating.gemfile index e3c24e6b7..1ee2a5ea7 100644 --- a/gems/ast-merge/gemfiles/modular/templating.gemfile +++ b/gems/ast-merge/gemfiles/modular/templating.gemfile @@ -1,7 +1,7 @@ # frozen_string_literal: true structuredmerge_remote = ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false').zero? -kettle_remote = ENV.fetch('KETTLE_RB_DEV', 'false').casecmp('false').zero? +kettle_remote = ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? if structuredmerge_remote # Merge recipes and parser dependencies for released installs. @@ -17,6 +17,6 @@ end # When false (default / CI), released kettle-jem brings merge gems and parser dependencies. # Local path overrides bring the same dependencies from sibling gemspecs. # -# Set KETTLE_RB_DEV=/path/to/kettle-rb for local development with Kettle plugin gems. +# Set KETTLE_DEV_DEV=/path/to/kettle-rb for local development with Kettle plugin gems. # When false (default / CI), released Kettle plugin gems are used. eval_gemfile 'templating_local.gemfile' unless structuredmerge_remote && kettle_remote diff --git a/gems/ast-merge/gemfiles/modular/templating_local.gemfile b/gems/ast-merge/gemfiles/modular/templating_local.gemfile index 556804939..d3881ed74 100644 --- a/gems/ast-merge/gemfiles/modular/templating_local.gemfile +++ b/gems/ast-merge/gemfiles/modular/templating_local.gemfile @@ -1,7 +1,7 @@ # frozen_string_literal: true # Local path overrides for templating development. -# Loaded by the associated non-local gemfile when STRUCTUREDMERGE_DEV or KETTLE_RB_DEV +# Loaded by the associated non-local gemfile when STRUCTUREDMERGE_DEV or KETTLE_DEV_DEV # is not "false". require 'nomono/bundler' unless defined?(Nomono) @@ -39,12 +39,12 @@ structuredmerge_local_gems = %w[ ast-crispr-ruby-prism ] -kettle_rb_local_gems = %w[ +kettle_dev_local_gems = %w[ kettle-dev kettle-test kettle-soup-cover kettle-drift ] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) structuredmerge_local_gems_to_eval = structuredmerge_local_gems - %w[ast-merge] - declared_gems -kettle_rb_local_gems_to_eval = kettle_rb_local_gems - %w[ast-merge] - declared_gems +kettle_dev_local_gems_to_eval = kettle_dev_local_gems - %w[ast-merge] - declared_gems tslp_dev = ENV.fetch('TSLP_DEV', nil) if tslp_dev.to_s.empty? && ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false') != 0 @@ -68,11 +68,11 @@ platform :mri do ) end - if ENV.fetch('KETTLE_RB_DEV', 'false').casecmp('false') != 0 + if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false') != 0 eval_nomono_gems( - gems: kettle_rb_local_gems_to_eval, - prefix: 'KETTLE_RB', - path_env: 'KETTLE_RB_DEV', + gems: kettle_dev_local_gems_to_eval, + prefix: 'KETTLE_DEV', + path_env: 'KETTLE_DEV_DEV', vendored_gems_env: 'VENDORED_GEMS', vendor_gem_dir_env: 'VENDOR_GEM_DIR', debug_env: 'KETTLE_DEV_DEBUG' diff --git a/gems/ast-template/Gemfile b/gems/ast-template/Gemfile index 3c92e5d7c..e72bfc938 100644 --- a/gems/ast-template/Gemfile +++ b/gems/ast-template/Gemfile @@ -414,7 +414,7 @@ eval_gemfile 'gemfiles/modular/templating.gemfile' if ENV.fetch('K_JEM_TEMPLATIN # Debugging eval_gemfile 'gemfiles/modular/debug.gemfile' -# Code Coverage (env-switched: KETTLE_RB_DEV=true for local paths) +# Code Coverage (env-switched: KETTLE_DEV_DEV=true for local paths) eval_gemfile 'gemfiles/modular/coverage.gemfile' # Linting diff --git a/gems/ast-template/gemfiles/modular/coverage.gemfile b/gems/ast-template/gemfiles/modular/coverage.gemfile index c0ab9c066..f96d50954 100644 --- a/gems/ast-template/gemfiles/modular/coverage.gemfile +++ b/gems/ast-template/gemfiles/modular/coverage.gemfile @@ -2,9 +2,9 @@ # We run code coverage on the latest version of Ruby only. -# Set KETTLE_RB_DEV=true for local development with path-based dependencies. +# Set KETTLE_DEV_DEV=true for local development with path-based dependencies. # When false (default / CI), remote released gems are used. -if ENV.fetch('KETTLE_RB_DEV', 'false').casecmp('false').zero? +if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? # Coverage (remote/released) platform :mri do gem 'kettle-soup-cover', '~> 1.0', '>= 1.1.3', require: false diff --git a/gems/ast-template/gemfiles/modular/coverage_local.gemfile b/gems/ast-template/gemfiles/modular/coverage_local.gemfile index 03f58a984..1fa671613 100644 --- a/gems/ast-template/gemfiles/modular/coverage_local.gemfile +++ b/gems/ast-template/gemfiles/modular/coverage_local.gemfile @@ -1,7 +1,7 @@ # frozen_string_literal: true # Local path overrides for development. -# Loaded by the associated non-local gemfile when KETTLE_RB_DEV != "false". +# Loaded by the associated non-local gemfile when KETTLE_DEV_DEV != "false". require 'nomono/bundler' unless defined?(Nomono) @@ -9,12 +9,12 @@ local_gems = %w[kettle-dev kettle-test kettle-soup-cover kettle-drift] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) local_gems_to_eval = local_gems - %w[ast-template] - declared_gems -# export KETTLE_RB_DEV=/path/to/kettle-rb +# export KETTLE_DEV_DEV=/path/to/kettle-rb platform :mri do eval_nomono_gems( gems: local_gems_to_eval, - prefix: 'KETTLE_RB', - path_env: 'KETTLE_RB_DEV', + prefix: 'KETTLE_DEV', + path_env: 'KETTLE_DEV_DEV', vendored_gems_env: 'VENDORED_GEMS', vendor_gem_dir_env: 'VENDOR_GEM_DIR', debug_env: 'KETTLE_DEV_DEBUG' diff --git a/gems/ast-template/gemfiles/modular/templating.gemfile b/gems/ast-template/gemfiles/modular/templating.gemfile index e3c24e6b7..1ee2a5ea7 100644 --- a/gems/ast-template/gemfiles/modular/templating.gemfile +++ b/gems/ast-template/gemfiles/modular/templating.gemfile @@ -1,7 +1,7 @@ # frozen_string_literal: true structuredmerge_remote = ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false').zero? -kettle_remote = ENV.fetch('KETTLE_RB_DEV', 'false').casecmp('false').zero? +kettle_remote = ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? if structuredmerge_remote # Merge recipes and parser dependencies for released installs. @@ -17,6 +17,6 @@ end # When false (default / CI), released kettle-jem brings merge gems and parser dependencies. # Local path overrides bring the same dependencies from sibling gemspecs. # -# Set KETTLE_RB_DEV=/path/to/kettle-rb for local development with Kettle plugin gems. +# Set KETTLE_DEV_DEV=/path/to/kettle-rb for local development with Kettle plugin gems. # When false (default / CI), released Kettle plugin gems are used. eval_gemfile 'templating_local.gemfile' unless structuredmerge_remote && kettle_remote diff --git a/gems/ast-template/gemfiles/modular/templating_local.gemfile b/gems/ast-template/gemfiles/modular/templating_local.gemfile index 9ab4a9ff2..6523bc665 100644 --- a/gems/ast-template/gemfiles/modular/templating_local.gemfile +++ b/gems/ast-template/gemfiles/modular/templating_local.gemfile @@ -1,7 +1,7 @@ # frozen_string_literal: true # Local path overrides for templating development. -# Loaded by the associated non-local gemfile when STRUCTUREDMERGE_DEV or KETTLE_RB_DEV +# Loaded by the associated non-local gemfile when STRUCTUREDMERGE_DEV or KETTLE_DEV_DEV # is not "false". require 'nomono/bundler' unless defined?(Nomono) @@ -39,12 +39,12 @@ structuredmerge_local_gems = %w[ ast-crispr-ruby-prism ] -kettle_rb_local_gems = %w[ +kettle_dev_local_gems = %w[ kettle-dev kettle-test kettle-soup-cover kettle-drift ] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) structuredmerge_local_gems_to_eval = structuredmerge_local_gems - %w[ast-template] - declared_gems -kettle_rb_local_gems_to_eval = kettle_rb_local_gems - %w[ast-template] - declared_gems +kettle_dev_local_gems_to_eval = kettle_dev_local_gems - %w[ast-template] - declared_gems tslp_dev = ENV.fetch('TSLP_DEV', nil) if tslp_dev.to_s.empty? && ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false') != 0 @@ -68,11 +68,11 @@ platform :mri do ) end - if ENV.fetch('KETTLE_RB_DEV', 'false').casecmp('false') != 0 + if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false') != 0 eval_nomono_gems( - gems: kettle_rb_local_gems_to_eval, - prefix: 'KETTLE_RB', - path_env: 'KETTLE_RB_DEV', + gems: kettle_dev_local_gems_to_eval, + prefix: 'KETTLE_DEV', + path_env: 'KETTLE_DEV_DEV', vendored_gems_env: 'VENDORED_GEMS', vendor_gem_dir_env: 'VENDOR_GEM_DIR', debug_env: 'KETTLE_DEV_DEBUG' diff --git a/gems/bash-merge/Gemfile b/gems/bash-merge/Gemfile index 7e465932f..446c65cd1 100644 --- a/gems/bash-merge/Gemfile +++ b/gems/bash-merge/Gemfile @@ -415,7 +415,7 @@ eval_gemfile 'gemfiles/modular/templating.gemfile' if ENV.fetch('K_JEM_TEMPLATIN # Debugging eval_gemfile 'gemfiles/modular/debug.gemfile' -# Code Coverage (env-switched: KETTLE_RB_DEV=true for local paths) +# Code Coverage (env-switched: KETTLE_DEV_DEV=true for local paths) eval_gemfile 'gemfiles/modular/coverage.gemfile' # Linting diff --git a/gems/bash-merge/gemfiles/modular/coverage.gemfile b/gems/bash-merge/gemfiles/modular/coverage.gemfile index c0ab9c066..f96d50954 100644 --- a/gems/bash-merge/gemfiles/modular/coverage.gemfile +++ b/gems/bash-merge/gemfiles/modular/coverage.gemfile @@ -2,9 +2,9 @@ # We run code coverage on the latest version of Ruby only. -# Set KETTLE_RB_DEV=true for local development with path-based dependencies. +# Set KETTLE_DEV_DEV=true for local development with path-based dependencies. # When false (default / CI), remote released gems are used. -if ENV.fetch('KETTLE_RB_DEV', 'false').casecmp('false').zero? +if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? # Coverage (remote/released) platform :mri do gem 'kettle-soup-cover', '~> 1.0', '>= 1.1.3', require: false diff --git a/gems/bash-merge/gemfiles/modular/coverage_local.gemfile b/gems/bash-merge/gemfiles/modular/coverage_local.gemfile index a1b6ce3d2..552281690 100644 --- a/gems/bash-merge/gemfiles/modular/coverage_local.gemfile +++ b/gems/bash-merge/gemfiles/modular/coverage_local.gemfile @@ -1,7 +1,7 @@ # frozen_string_literal: true # Local path overrides for development. -# Loaded by the associated non-local gemfile when KETTLE_RB_DEV != "false". +# Loaded by the associated non-local gemfile when KETTLE_DEV_DEV != "false". require 'nomono/bundler' unless defined?(Nomono) @@ -9,12 +9,12 @@ local_gems = %w[kettle-dev kettle-test kettle-soup-cover kettle-drift] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) local_gems_to_eval = local_gems - %w[bash-merge] - declared_gems -# export KETTLE_RB_DEV=/path/to/kettle-rb +# export KETTLE_DEV_DEV=/path/to/kettle-rb platform :mri do eval_nomono_gems( gems: local_gems_to_eval, - prefix: 'KETTLE_RB', - path_env: 'KETTLE_RB_DEV', + prefix: 'KETTLE_DEV', + path_env: 'KETTLE_DEV_DEV', vendored_gems_env: 'VENDORED_GEMS', vendor_gem_dir_env: 'VENDOR_GEM_DIR', debug_env: 'KETTLE_DEV_DEBUG' diff --git a/gems/bash-merge/gemfiles/modular/templating.gemfile b/gems/bash-merge/gemfiles/modular/templating.gemfile index e3c24e6b7..1ee2a5ea7 100644 --- a/gems/bash-merge/gemfiles/modular/templating.gemfile +++ b/gems/bash-merge/gemfiles/modular/templating.gemfile @@ -1,7 +1,7 @@ # frozen_string_literal: true structuredmerge_remote = ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false').zero? -kettle_remote = ENV.fetch('KETTLE_RB_DEV', 'false').casecmp('false').zero? +kettle_remote = ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? if structuredmerge_remote # Merge recipes and parser dependencies for released installs. @@ -17,6 +17,6 @@ end # When false (default / CI), released kettle-jem brings merge gems and parser dependencies. # Local path overrides bring the same dependencies from sibling gemspecs. # -# Set KETTLE_RB_DEV=/path/to/kettle-rb for local development with Kettle plugin gems. +# Set KETTLE_DEV_DEV=/path/to/kettle-rb for local development with Kettle plugin gems. # When false (default / CI), released Kettle plugin gems are used. eval_gemfile 'templating_local.gemfile' unless structuredmerge_remote && kettle_remote diff --git a/gems/bash-merge/gemfiles/modular/templating_local.gemfile b/gems/bash-merge/gemfiles/modular/templating_local.gemfile index cc6ac154a..85087abe3 100644 --- a/gems/bash-merge/gemfiles/modular/templating_local.gemfile +++ b/gems/bash-merge/gemfiles/modular/templating_local.gemfile @@ -1,7 +1,7 @@ # frozen_string_literal: true # Local path overrides for templating development. -# Loaded by the associated non-local gemfile when STRUCTUREDMERGE_DEV or KETTLE_RB_DEV +# Loaded by the associated non-local gemfile when STRUCTUREDMERGE_DEV or KETTLE_DEV_DEV # is not "false". require 'nomono/bundler' unless defined?(Nomono) @@ -39,12 +39,12 @@ structuredmerge_local_gems = %w[ ast-crispr-ruby-prism ] -kettle_rb_local_gems = %w[ +kettle_dev_local_gems = %w[ kettle-dev kettle-test kettle-soup-cover kettle-drift ] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) structuredmerge_local_gems_to_eval = structuredmerge_local_gems - %w[bash-merge] - declared_gems -kettle_rb_local_gems_to_eval = kettle_rb_local_gems - %w[bash-merge] - declared_gems +kettle_dev_local_gems_to_eval = kettle_dev_local_gems - %w[bash-merge] - declared_gems tslp_dev = ENV.fetch('TSLP_DEV', nil) if tslp_dev.to_s.empty? && ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false') != 0 @@ -68,11 +68,11 @@ platform :mri do ) end - if ENV.fetch('KETTLE_RB_DEV', 'false').casecmp('false') != 0 + if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false') != 0 eval_nomono_gems( - gems: kettle_rb_local_gems_to_eval, - prefix: 'KETTLE_RB', - path_env: 'KETTLE_RB_DEV', + gems: kettle_dev_local_gems_to_eval, + prefix: 'KETTLE_DEV', + path_env: 'KETTLE_DEV_DEV', vendored_gems_env: 'VENDORED_GEMS', vendor_gem_dir_env: 'VENDOR_GEM_DIR', debug_env: 'KETTLE_DEV_DEBUG' diff --git a/gems/binary-merge/Gemfile b/gems/binary-merge/Gemfile index 0a94ca078..14cf289c7 100644 --- a/gems/binary-merge/Gemfile +++ b/gems/binary-merge/Gemfile @@ -454,7 +454,7 @@ eval_gemfile 'gemfiles/modular/templating.gemfile' if ENV.fetch('K_JEM_TEMPLATIN # Debugging eval_gemfile 'gemfiles/modular/debug.gemfile' -# Code Coverage (env-switched: KETTLE_RB_DEV=true for local paths) +# Code Coverage (env-switched: KETTLE_DEV_DEV=true for local paths) eval_gemfile 'gemfiles/modular/coverage.gemfile' # Linting diff --git a/gems/binary-merge/gemfiles/modular/coverage.gemfile b/gems/binary-merge/gemfiles/modular/coverage.gemfile index c0ab9c066..f96d50954 100644 --- a/gems/binary-merge/gemfiles/modular/coverage.gemfile +++ b/gems/binary-merge/gemfiles/modular/coverage.gemfile @@ -2,9 +2,9 @@ # We run code coverage on the latest version of Ruby only. -# Set KETTLE_RB_DEV=true for local development with path-based dependencies. +# Set KETTLE_DEV_DEV=true for local development with path-based dependencies. # When false (default / CI), remote released gems are used. -if ENV.fetch('KETTLE_RB_DEV', 'false').casecmp('false').zero? +if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? # Coverage (remote/released) platform :mri do gem 'kettle-soup-cover', '~> 1.0', '>= 1.1.3', require: false diff --git a/gems/binary-merge/gemfiles/modular/coverage_local.gemfile b/gems/binary-merge/gemfiles/modular/coverage_local.gemfile index ecf9ff9cd..b90265da9 100644 --- a/gems/binary-merge/gemfiles/modular/coverage_local.gemfile +++ b/gems/binary-merge/gemfiles/modular/coverage_local.gemfile @@ -1,7 +1,7 @@ # frozen_string_literal: true # Local path overrides for development. -# Loaded by the associated non-local gemfile when KETTLE_RB_DEV != "false". +# Loaded by the associated non-local gemfile when KETTLE_DEV_DEV != "false". require 'nomono/bundler' unless defined?(Nomono) @@ -9,12 +9,12 @@ local_gems = %w[kettle-dev kettle-test kettle-soup-cover kettle-drift] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) local_gems_to_eval = local_gems - %w[binary-merge] - declared_gems -# export KETTLE_RB_DEV=/path/to/kettle-rb +# export KETTLE_DEV_DEV=/path/to/kettle-rb platform :mri do eval_nomono_gems( gems: local_gems_to_eval, - prefix: 'KETTLE_RB', - path_env: 'KETTLE_RB_DEV', + prefix: 'KETTLE_DEV', + path_env: 'KETTLE_DEV_DEV', vendored_gems_env: 'VENDORED_GEMS', vendor_gem_dir_env: 'VENDOR_GEM_DIR', debug_env: 'KETTLE_DEV_DEBUG' diff --git a/gems/binary-merge/gemfiles/modular/templating.gemfile b/gems/binary-merge/gemfiles/modular/templating.gemfile index e3c24e6b7..1ee2a5ea7 100644 --- a/gems/binary-merge/gemfiles/modular/templating.gemfile +++ b/gems/binary-merge/gemfiles/modular/templating.gemfile @@ -1,7 +1,7 @@ # frozen_string_literal: true structuredmerge_remote = ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false').zero? -kettle_remote = ENV.fetch('KETTLE_RB_DEV', 'false').casecmp('false').zero? +kettle_remote = ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? if structuredmerge_remote # Merge recipes and parser dependencies for released installs. @@ -17,6 +17,6 @@ end # When false (default / CI), released kettle-jem brings merge gems and parser dependencies. # Local path overrides bring the same dependencies from sibling gemspecs. # -# Set KETTLE_RB_DEV=/path/to/kettle-rb for local development with Kettle plugin gems. +# Set KETTLE_DEV_DEV=/path/to/kettle-rb for local development with Kettle plugin gems. # When false (default / CI), released Kettle plugin gems are used. eval_gemfile 'templating_local.gemfile' unless structuredmerge_remote && kettle_remote diff --git a/gems/binary-merge/gemfiles/modular/templating_local.gemfile b/gems/binary-merge/gemfiles/modular/templating_local.gemfile index bc1514d4c..dfa19cd6f 100644 --- a/gems/binary-merge/gemfiles/modular/templating_local.gemfile +++ b/gems/binary-merge/gemfiles/modular/templating_local.gemfile @@ -1,7 +1,7 @@ # frozen_string_literal: true # Local path overrides for templating development. -# Loaded by the associated non-local gemfile when STRUCTUREDMERGE_DEV or KETTLE_RB_DEV +# Loaded by the associated non-local gemfile when STRUCTUREDMERGE_DEV or KETTLE_DEV_DEV # is not "false". require 'nomono/bundler' unless defined?(Nomono) @@ -39,12 +39,12 @@ structuredmerge_local_gems = %w[ ast-crispr-ruby-prism ] -kettle_rb_local_gems = %w[ +kettle_dev_local_gems = %w[ kettle-dev kettle-test kettle-soup-cover kettle-drift ] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) structuredmerge_local_gems_to_eval = structuredmerge_local_gems - %w[binary-merge] - declared_gems -kettle_rb_local_gems_to_eval = kettle_rb_local_gems - %w[binary-merge] - declared_gems +kettle_dev_local_gems_to_eval = kettle_dev_local_gems - %w[binary-merge] - declared_gems tslp_dev = ENV.fetch('TSLP_DEV', nil) if tslp_dev.to_s.empty? && ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false') != 0 @@ -68,11 +68,11 @@ platform :mri do ) end - if ENV.fetch('KETTLE_RB_DEV', 'false').casecmp('false') != 0 + if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false') != 0 eval_nomono_gems( - gems: kettle_rb_local_gems_to_eval, - prefix: 'KETTLE_RB', - path_env: 'KETTLE_RB_DEV', + gems: kettle_dev_local_gems_to_eval, + prefix: 'KETTLE_DEV', + path_env: 'KETTLE_DEV_DEV', vendored_gems_env: 'VENDORED_GEMS', vendor_gem_dir_env: 'VENDOR_GEM_DIR', debug_env: 'KETTLE_DEV_DEBUG' diff --git a/gems/citrus-toml-merge/Gemfile b/gems/citrus-toml-merge/Gemfile index aae6101f4..c18b0d7ab 100644 --- a/gems/citrus-toml-merge/Gemfile +++ b/gems/citrus-toml-merge/Gemfile @@ -414,7 +414,7 @@ eval_gemfile 'gemfiles/modular/templating.gemfile' if ENV.fetch('K_JEM_TEMPLATIN # Debugging eval_gemfile 'gemfiles/modular/debug.gemfile' -# Code Coverage (env-switched: KETTLE_RB_DEV=true for local paths) +# Code Coverage (env-switched: KETTLE_DEV_DEV=true for local paths) eval_gemfile 'gemfiles/modular/coverage.gemfile' # Linting diff --git a/gems/citrus-toml-merge/gemfiles/modular/coverage.gemfile b/gems/citrus-toml-merge/gemfiles/modular/coverage.gemfile index c0ab9c066..f96d50954 100644 --- a/gems/citrus-toml-merge/gemfiles/modular/coverage.gemfile +++ b/gems/citrus-toml-merge/gemfiles/modular/coverage.gemfile @@ -2,9 +2,9 @@ # We run code coverage on the latest version of Ruby only. -# Set KETTLE_RB_DEV=true for local development with path-based dependencies. +# Set KETTLE_DEV_DEV=true for local development with path-based dependencies. # When false (default / CI), remote released gems are used. -if ENV.fetch('KETTLE_RB_DEV', 'false').casecmp('false').zero? +if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? # Coverage (remote/released) platform :mri do gem 'kettle-soup-cover', '~> 1.0', '>= 1.1.3', require: false diff --git a/gems/citrus-toml-merge/gemfiles/modular/coverage_local.gemfile b/gems/citrus-toml-merge/gemfiles/modular/coverage_local.gemfile index 98bc58e61..53a213a49 100644 --- a/gems/citrus-toml-merge/gemfiles/modular/coverage_local.gemfile +++ b/gems/citrus-toml-merge/gemfiles/modular/coverage_local.gemfile @@ -1,7 +1,7 @@ # frozen_string_literal: true # Local path overrides for development. -# Loaded by the associated non-local gemfile when KETTLE_RB_DEV != "false". +# Loaded by the associated non-local gemfile when KETTLE_DEV_DEV != "false". require 'nomono/bundler' unless defined?(Nomono) @@ -9,12 +9,12 @@ local_gems = %w[kettle-dev kettle-test kettle-soup-cover kettle-drift] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) local_gems_to_eval = local_gems - %w[citrus-toml-merge] - declared_gems -# export KETTLE_RB_DEV=/path/to/kettle-rb +# export KETTLE_DEV_DEV=/path/to/kettle-rb platform :mri do eval_nomono_gems( gems: local_gems_to_eval, - prefix: 'KETTLE_RB', - path_env: 'KETTLE_RB_DEV', + prefix: 'KETTLE_DEV', + path_env: 'KETTLE_DEV_DEV', vendored_gems_env: 'VENDORED_GEMS', vendor_gem_dir_env: 'VENDOR_GEM_DIR', debug_env: 'KETTLE_DEV_DEBUG' diff --git a/gems/citrus-toml-merge/gemfiles/modular/templating.gemfile b/gems/citrus-toml-merge/gemfiles/modular/templating.gemfile index e3c24e6b7..1ee2a5ea7 100644 --- a/gems/citrus-toml-merge/gemfiles/modular/templating.gemfile +++ b/gems/citrus-toml-merge/gemfiles/modular/templating.gemfile @@ -1,7 +1,7 @@ # frozen_string_literal: true structuredmerge_remote = ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false').zero? -kettle_remote = ENV.fetch('KETTLE_RB_DEV', 'false').casecmp('false').zero? +kettle_remote = ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? if structuredmerge_remote # Merge recipes and parser dependencies for released installs. @@ -17,6 +17,6 @@ end # When false (default / CI), released kettle-jem brings merge gems and parser dependencies. # Local path overrides bring the same dependencies from sibling gemspecs. # -# Set KETTLE_RB_DEV=/path/to/kettle-rb for local development with Kettle plugin gems. +# Set KETTLE_DEV_DEV=/path/to/kettle-rb for local development with Kettle plugin gems. # When false (default / CI), released Kettle plugin gems are used. eval_gemfile 'templating_local.gemfile' unless structuredmerge_remote && kettle_remote diff --git a/gems/citrus-toml-merge/gemfiles/modular/templating_local.gemfile b/gems/citrus-toml-merge/gemfiles/modular/templating_local.gemfile index d826c17a8..08c941101 100644 --- a/gems/citrus-toml-merge/gemfiles/modular/templating_local.gemfile +++ b/gems/citrus-toml-merge/gemfiles/modular/templating_local.gemfile @@ -1,7 +1,7 @@ # frozen_string_literal: true # Local path overrides for templating development. -# Loaded by the associated non-local gemfile when STRUCTUREDMERGE_DEV or KETTLE_RB_DEV +# Loaded by the associated non-local gemfile when STRUCTUREDMERGE_DEV or KETTLE_DEV_DEV # is not "false". require 'nomono/bundler' unless defined?(Nomono) @@ -39,12 +39,12 @@ structuredmerge_local_gems = %w[ ast-crispr-ruby-prism ] -kettle_rb_local_gems = %w[ +kettle_dev_local_gems = %w[ kettle-dev kettle-test kettle-soup-cover kettle-drift ] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) structuredmerge_local_gems_to_eval = structuredmerge_local_gems - %w[citrus-toml-merge] - declared_gems -kettle_rb_local_gems_to_eval = kettle_rb_local_gems - %w[citrus-toml-merge] - declared_gems +kettle_dev_local_gems_to_eval = kettle_dev_local_gems - %w[citrus-toml-merge] - declared_gems tslp_dev = ENV.fetch('TSLP_DEV', nil) if tslp_dev.to_s.empty? && ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false') != 0 @@ -68,11 +68,11 @@ platform :mri do ) end - if ENV.fetch('KETTLE_RB_DEV', 'false').casecmp('false') != 0 + if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false') != 0 eval_nomono_gems( - gems: kettle_rb_local_gems_to_eval, - prefix: 'KETTLE_RB', - path_env: 'KETTLE_RB_DEV', + gems: kettle_dev_local_gems_to_eval, + prefix: 'KETTLE_DEV', + path_env: 'KETTLE_DEV_DEV', vendored_gems_env: 'VENDORED_GEMS', vendor_gem_dir_env: 'VENDOR_GEM_DIR', debug_env: 'KETTLE_DEV_DEBUG' diff --git a/gems/commonmarker-merge/Gemfile b/gems/commonmarker-merge/Gemfile index f297363e2..e0071b3b6 100644 --- a/gems/commonmarker-merge/Gemfile +++ b/gems/commonmarker-merge/Gemfile @@ -414,7 +414,7 @@ eval_gemfile 'gemfiles/modular/templating.gemfile' if ENV.fetch('K_JEM_TEMPLATIN # Debugging eval_gemfile 'gemfiles/modular/debug.gemfile' -# Code Coverage (env-switched: KETTLE_RB_DEV=true for local paths) +# Code Coverage (env-switched: KETTLE_DEV_DEV=true for local paths) eval_gemfile 'gemfiles/modular/coverage.gemfile' # Linting diff --git a/gems/commonmarker-merge/gemfiles/modular/coverage.gemfile b/gems/commonmarker-merge/gemfiles/modular/coverage.gemfile index c0ab9c066..f96d50954 100644 --- a/gems/commonmarker-merge/gemfiles/modular/coverage.gemfile +++ b/gems/commonmarker-merge/gemfiles/modular/coverage.gemfile @@ -2,9 +2,9 @@ # We run code coverage on the latest version of Ruby only. -# Set KETTLE_RB_DEV=true for local development with path-based dependencies. +# Set KETTLE_DEV_DEV=true for local development with path-based dependencies. # When false (default / CI), remote released gems are used. -if ENV.fetch('KETTLE_RB_DEV', 'false').casecmp('false').zero? +if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? # Coverage (remote/released) platform :mri do gem 'kettle-soup-cover', '~> 1.0', '>= 1.1.3', require: false diff --git a/gems/commonmarker-merge/gemfiles/modular/coverage_local.gemfile b/gems/commonmarker-merge/gemfiles/modular/coverage_local.gemfile index fcf991a8f..69fdff2b1 100644 --- a/gems/commonmarker-merge/gemfiles/modular/coverage_local.gemfile +++ b/gems/commonmarker-merge/gemfiles/modular/coverage_local.gemfile @@ -1,7 +1,7 @@ # frozen_string_literal: true # Local path overrides for development. -# Loaded by the associated non-local gemfile when KETTLE_RB_DEV != "false". +# Loaded by the associated non-local gemfile when KETTLE_DEV_DEV != "false". require 'nomono/bundler' unless defined?(Nomono) @@ -9,12 +9,12 @@ local_gems = %w[kettle-dev kettle-test kettle-soup-cover kettle-drift] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) local_gems_to_eval = local_gems - %w[commonmarker-merge] - declared_gems -# export KETTLE_RB_DEV=/path/to/kettle-rb +# export KETTLE_DEV_DEV=/path/to/kettle-rb platform :mri do eval_nomono_gems( gems: local_gems_to_eval, - prefix: 'KETTLE_RB', - path_env: 'KETTLE_RB_DEV', + prefix: 'KETTLE_DEV', + path_env: 'KETTLE_DEV_DEV', vendored_gems_env: 'VENDORED_GEMS', vendor_gem_dir_env: 'VENDOR_GEM_DIR', debug_env: 'KETTLE_DEV_DEBUG' diff --git a/gems/commonmarker-merge/gemfiles/modular/templating.gemfile b/gems/commonmarker-merge/gemfiles/modular/templating.gemfile index e3c24e6b7..1ee2a5ea7 100644 --- a/gems/commonmarker-merge/gemfiles/modular/templating.gemfile +++ b/gems/commonmarker-merge/gemfiles/modular/templating.gemfile @@ -1,7 +1,7 @@ # frozen_string_literal: true structuredmerge_remote = ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false').zero? -kettle_remote = ENV.fetch('KETTLE_RB_DEV', 'false').casecmp('false').zero? +kettle_remote = ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? if structuredmerge_remote # Merge recipes and parser dependencies for released installs. @@ -17,6 +17,6 @@ end # When false (default / CI), released kettle-jem brings merge gems and parser dependencies. # Local path overrides bring the same dependencies from sibling gemspecs. # -# Set KETTLE_RB_DEV=/path/to/kettle-rb for local development with Kettle plugin gems. +# Set KETTLE_DEV_DEV=/path/to/kettle-rb for local development with Kettle plugin gems. # When false (default / CI), released Kettle plugin gems are used. eval_gemfile 'templating_local.gemfile' unless structuredmerge_remote && kettle_remote diff --git a/gems/commonmarker-merge/gemfiles/modular/templating_local.gemfile b/gems/commonmarker-merge/gemfiles/modular/templating_local.gemfile index 76c392c15..840f83895 100644 --- a/gems/commonmarker-merge/gemfiles/modular/templating_local.gemfile +++ b/gems/commonmarker-merge/gemfiles/modular/templating_local.gemfile @@ -1,7 +1,7 @@ # frozen_string_literal: true # Local path overrides for templating development. -# Loaded by the associated non-local gemfile when STRUCTUREDMERGE_DEV or KETTLE_RB_DEV +# Loaded by the associated non-local gemfile when STRUCTUREDMERGE_DEV or KETTLE_DEV_DEV # is not "false". require 'nomono/bundler' unless defined?(Nomono) @@ -39,12 +39,12 @@ structuredmerge_local_gems = %w[ ast-crispr-ruby-prism ] -kettle_rb_local_gems = %w[ +kettle_dev_local_gems = %w[ kettle-dev kettle-test kettle-soup-cover kettle-drift ] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) structuredmerge_local_gems_to_eval = structuredmerge_local_gems - %w[commonmarker-merge] - declared_gems -kettle_rb_local_gems_to_eval = kettle_rb_local_gems - %w[commonmarker-merge] - declared_gems +kettle_dev_local_gems_to_eval = kettle_dev_local_gems - %w[commonmarker-merge] - declared_gems tslp_dev = ENV.fetch('TSLP_DEV', nil) if tslp_dev.to_s.empty? && ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false') != 0 @@ -68,11 +68,11 @@ platform :mri do ) end - if ENV.fetch('KETTLE_RB_DEV', 'false').casecmp('false') != 0 + if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false') != 0 eval_nomono_gems( - gems: kettle_rb_local_gems_to_eval, - prefix: 'KETTLE_RB', - path_env: 'KETTLE_RB_DEV', + gems: kettle_dev_local_gems_to_eval, + prefix: 'KETTLE_DEV', + path_env: 'KETTLE_DEV_DEV', vendored_gems_env: 'VENDORED_GEMS', vendor_gem_dir_env: 'VENDOR_GEM_DIR', debug_env: 'KETTLE_DEV_DEBUG' diff --git a/gems/dotenv-merge/Gemfile b/gems/dotenv-merge/Gemfile index 65f59a20f..e2ac41b32 100644 --- a/gems/dotenv-merge/Gemfile +++ b/gems/dotenv-merge/Gemfile @@ -415,7 +415,7 @@ eval_gemfile 'gemfiles/modular/templating.gemfile' if ENV.fetch('K_JEM_TEMPLATIN # Debugging eval_gemfile 'gemfiles/modular/debug.gemfile' -# Code Coverage (env-switched: KETTLE_RB_DEV=true for local paths) +# Code Coverage (env-switched: KETTLE_DEV_DEV=true for local paths) eval_gemfile 'gemfiles/modular/coverage.gemfile' # Linting diff --git a/gems/dotenv-merge/gemfiles/modular/coverage.gemfile b/gems/dotenv-merge/gemfiles/modular/coverage.gemfile index c0ab9c066..f96d50954 100644 --- a/gems/dotenv-merge/gemfiles/modular/coverage.gemfile +++ b/gems/dotenv-merge/gemfiles/modular/coverage.gemfile @@ -2,9 +2,9 @@ # We run code coverage on the latest version of Ruby only. -# Set KETTLE_RB_DEV=true for local development with path-based dependencies. +# Set KETTLE_DEV_DEV=true for local development with path-based dependencies. # When false (default / CI), remote released gems are used. -if ENV.fetch('KETTLE_RB_DEV', 'false').casecmp('false').zero? +if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? # Coverage (remote/released) platform :mri do gem 'kettle-soup-cover', '~> 1.0', '>= 1.1.3', require: false diff --git a/gems/dotenv-merge/gemfiles/modular/coverage_local.gemfile b/gems/dotenv-merge/gemfiles/modular/coverage_local.gemfile index 42978107b..11a48eb36 100644 --- a/gems/dotenv-merge/gemfiles/modular/coverage_local.gemfile +++ b/gems/dotenv-merge/gemfiles/modular/coverage_local.gemfile @@ -1,7 +1,7 @@ # frozen_string_literal: true # Local path overrides for development. -# Loaded by the associated non-local gemfile when KETTLE_RB_DEV != "false". +# Loaded by the associated non-local gemfile when KETTLE_DEV_DEV != "false". require 'nomono/bundler' unless defined?(Nomono) @@ -9,12 +9,12 @@ local_gems = %w[kettle-dev kettle-test kettle-soup-cover kettle-drift] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) local_gems_to_eval = local_gems - %w[dotenv-merge] - declared_gems -# export KETTLE_RB_DEV=/path/to/kettle-rb +# export KETTLE_DEV_DEV=/path/to/kettle-rb platform :mri do eval_nomono_gems( gems: local_gems_to_eval, - prefix: 'KETTLE_RB', - path_env: 'KETTLE_RB_DEV', + prefix: 'KETTLE_DEV', + path_env: 'KETTLE_DEV_DEV', vendored_gems_env: 'VENDORED_GEMS', vendor_gem_dir_env: 'VENDOR_GEM_DIR', debug_env: 'KETTLE_DEV_DEBUG' diff --git a/gems/dotenv-merge/gemfiles/modular/templating.gemfile b/gems/dotenv-merge/gemfiles/modular/templating.gemfile index e3c24e6b7..1ee2a5ea7 100644 --- a/gems/dotenv-merge/gemfiles/modular/templating.gemfile +++ b/gems/dotenv-merge/gemfiles/modular/templating.gemfile @@ -1,7 +1,7 @@ # frozen_string_literal: true structuredmerge_remote = ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false').zero? -kettle_remote = ENV.fetch('KETTLE_RB_DEV', 'false').casecmp('false').zero? +kettle_remote = ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? if structuredmerge_remote # Merge recipes and parser dependencies for released installs. @@ -17,6 +17,6 @@ end # When false (default / CI), released kettle-jem brings merge gems and parser dependencies. # Local path overrides bring the same dependencies from sibling gemspecs. # -# Set KETTLE_RB_DEV=/path/to/kettle-rb for local development with Kettle plugin gems. +# Set KETTLE_DEV_DEV=/path/to/kettle-rb for local development with Kettle plugin gems. # When false (default / CI), released Kettle plugin gems are used. eval_gemfile 'templating_local.gemfile' unless structuredmerge_remote && kettle_remote diff --git a/gems/dotenv-merge/gemfiles/modular/templating_local.gemfile b/gems/dotenv-merge/gemfiles/modular/templating_local.gemfile index a198c33a5..27204b67c 100644 --- a/gems/dotenv-merge/gemfiles/modular/templating_local.gemfile +++ b/gems/dotenv-merge/gemfiles/modular/templating_local.gemfile @@ -1,7 +1,7 @@ # frozen_string_literal: true # Local path overrides for templating development. -# Loaded by the associated non-local gemfile when STRUCTUREDMERGE_DEV or KETTLE_RB_DEV +# Loaded by the associated non-local gemfile when STRUCTUREDMERGE_DEV or KETTLE_DEV_DEV # is not "false". require 'nomono/bundler' unless defined?(Nomono) @@ -39,12 +39,12 @@ structuredmerge_local_gems = %w[ ast-crispr-ruby-prism ] -kettle_rb_local_gems = %w[ +kettle_dev_local_gems = %w[ kettle-dev kettle-test kettle-soup-cover kettle-drift ] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) structuredmerge_local_gems_to_eval = structuredmerge_local_gems - %w[dotenv-merge] - declared_gems -kettle_rb_local_gems_to_eval = kettle_rb_local_gems - %w[dotenv-merge] - declared_gems +kettle_dev_local_gems_to_eval = kettle_dev_local_gems - %w[dotenv-merge] - declared_gems tslp_dev = ENV.fetch('TSLP_DEV', nil) if tslp_dev.to_s.empty? && ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false') != 0 @@ -68,11 +68,11 @@ platform :mri do ) end - if ENV.fetch('KETTLE_RB_DEV', 'false').casecmp('false') != 0 + if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false') != 0 eval_nomono_gems( - gems: kettle_rb_local_gems_to_eval, - prefix: 'KETTLE_RB', - path_env: 'KETTLE_RB_DEV', + gems: kettle_dev_local_gems_to_eval, + prefix: 'KETTLE_DEV', + path_env: 'KETTLE_DEV_DEV', vendored_gems_env: 'VENDORED_GEMS', vendor_gem_dir_env: 'VENDOR_GEM_DIR', debug_env: 'KETTLE_DEV_DEBUG' diff --git a/gems/go-merge/Gemfile b/gems/go-merge/Gemfile index 46680094a..9c60fb2c1 100644 --- a/gems/go-merge/Gemfile +++ b/gems/go-merge/Gemfile @@ -415,7 +415,7 @@ eval_gemfile 'gemfiles/modular/templating.gemfile' if ENV.fetch('K_JEM_TEMPLATIN # Debugging eval_gemfile 'gemfiles/modular/debug.gemfile' -# Code Coverage (env-switched: KETTLE_RB_DEV=true for local paths) +# Code Coverage (env-switched: KETTLE_DEV_DEV=true for local paths) eval_gemfile 'gemfiles/modular/coverage.gemfile' # Linting diff --git a/gems/go-merge/gemfiles/modular/coverage.gemfile b/gems/go-merge/gemfiles/modular/coverage.gemfile index c0ab9c066..f96d50954 100644 --- a/gems/go-merge/gemfiles/modular/coverage.gemfile +++ b/gems/go-merge/gemfiles/modular/coverage.gemfile @@ -2,9 +2,9 @@ # We run code coverage on the latest version of Ruby only. -# Set KETTLE_RB_DEV=true for local development with path-based dependencies. +# Set KETTLE_DEV_DEV=true for local development with path-based dependencies. # When false (default / CI), remote released gems are used. -if ENV.fetch('KETTLE_RB_DEV', 'false').casecmp('false').zero? +if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? # Coverage (remote/released) platform :mri do gem 'kettle-soup-cover', '~> 1.0', '>= 1.1.3', require: false diff --git a/gems/go-merge/gemfiles/modular/coverage_local.gemfile b/gems/go-merge/gemfiles/modular/coverage_local.gemfile index 4f8dd92a4..04b7eb9db 100644 --- a/gems/go-merge/gemfiles/modular/coverage_local.gemfile +++ b/gems/go-merge/gemfiles/modular/coverage_local.gemfile @@ -1,7 +1,7 @@ # frozen_string_literal: true # Local path overrides for development. -# Loaded by the associated non-local gemfile when KETTLE_RB_DEV != "false". +# Loaded by the associated non-local gemfile when KETTLE_DEV_DEV != "false". require 'nomono/bundler' unless defined?(Nomono) @@ -9,12 +9,12 @@ local_gems = %w[kettle-dev kettle-test kettle-soup-cover kettle-drift] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) local_gems_to_eval = local_gems - %w[go-merge] - declared_gems -# export KETTLE_RB_DEV=/path/to/kettle-rb +# export KETTLE_DEV_DEV=/path/to/kettle-rb platform :mri do eval_nomono_gems( gems: local_gems_to_eval, - prefix: 'KETTLE_RB', - path_env: 'KETTLE_RB_DEV', + prefix: 'KETTLE_DEV', + path_env: 'KETTLE_DEV_DEV', vendored_gems_env: 'VENDORED_GEMS', vendor_gem_dir_env: 'VENDOR_GEM_DIR', debug_env: 'KETTLE_DEV_DEBUG' diff --git a/gems/go-merge/gemfiles/modular/templating.gemfile b/gems/go-merge/gemfiles/modular/templating.gemfile index e3c24e6b7..1ee2a5ea7 100644 --- a/gems/go-merge/gemfiles/modular/templating.gemfile +++ b/gems/go-merge/gemfiles/modular/templating.gemfile @@ -1,7 +1,7 @@ # frozen_string_literal: true structuredmerge_remote = ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false').zero? -kettle_remote = ENV.fetch('KETTLE_RB_DEV', 'false').casecmp('false').zero? +kettle_remote = ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? if structuredmerge_remote # Merge recipes and parser dependencies for released installs. @@ -17,6 +17,6 @@ end # When false (default / CI), released kettle-jem brings merge gems and parser dependencies. # Local path overrides bring the same dependencies from sibling gemspecs. # -# Set KETTLE_RB_DEV=/path/to/kettle-rb for local development with Kettle plugin gems. +# Set KETTLE_DEV_DEV=/path/to/kettle-rb for local development with Kettle plugin gems. # When false (default / CI), released Kettle plugin gems are used. eval_gemfile 'templating_local.gemfile' unless structuredmerge_remote && kettle_remote diff --git a/gems/go-merge/gemfiles/modular/templating_local.gemfile b/gems/go-merge/gemfiles/modular/templating_local.gemfile index 7ddbae6d6..f63d13c16 100644 --- a/gems/go-merge/gemfiles/modular/templating_local.gemfile +++ b/gems/go-merge/gemfiles/modular/templating_local.gemfile @@ -1,7 +1,7 @@ # frozen_string_literal: true # Local path overrides for templating development. -# Loaded by the associated non-local gemfile when STRUCTUREDMERGE_DEV or KETTLE_RB_DEV +# Loaded by the associated non-local gemfile when STRUCTUREDMERGE_DEV or KETTLE_DEV_DEV # is not "false". require 'nomono/bundler' unless defined?(Nomono) @@ -39,12 +39,12 @@ structuredmerge_local_gems = %w[ ast-crispr-ruby-prism ] -kettle_rb_local_gems = %w[ +kettle_dev_local_gems = %w[ kettle-dev kettle-test kettle-soup-cover kettle-drift ] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) structuredmerge_local_gems_to_eval = structuredmerge_local_gems - %w[go-merge] - declared_gems -kettle_rb_local_gems_to_eval = kettle_rb_local_gems - %w[go-merge] - declared_gems +kettle_dev_local_gems_to_eval = kettle_dev_local_gems - %w[go-merge] - declared_gems tslp_dev = ENV.fetch('TSLP_DEV', nil) if tslp_dev.to_s.empty? && ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false') != 0 @@ -68,11 +68,11 @@ platform :mri do ) end - if ENV.fetch('KETTLE_RB_DEV', 'false').casecmp('false') != 0 + if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false') != 0 eval_nomono_gems( - gems: kettle_rb_local_gems_to_eval, - prefix: 'KETTLE_RB', - path_env: 'KETTLE_RB_DEV', + gems: kettle_dev_local_gems_to_eval, + prefix: 'KETTLE_DEV', + path_env: 'KETTLE_DEV_DEV', vendored_gems_env: 'VENDORED_GEMS', vendor_gem_dir_env: 'VENDOR_GEM_DIR', debug_env: 'KETTLE_DEV_DEBUG' diff --git a/gems/json-merge/Gemfile b/gems/json-merge/Gemfile index 1b8188be8..8208169fe 100644 --- a/gems/json-merge/Gemfile +++ b/gems/json-merge/Gemfile @@ -455,7 +455,7 @@ eval_gemfile 'gemfiles/modular/templating.gemfile' if ENV.fetch('K_JEM_TEMPLATIN # Debugging eval_gemfile 'gemfiles/modular/debug.gemfile' -# Code Coverage (env-switched: KETTLE_RB_DEV=true for local paths) +# Code Coverage (env-switched: KETTLE_DEV_DEV=true for local paths) eval_gemfile 'gemfiles/modular/coverage.gemfile' # Linting diff --git a/gems/json-merge/gemfiles/modular/coverage.gemfile b/gems/json-merge/gemfiles/modular/coverage.gemfile index c0ab9c066..f96d50954 100644 --- a/gems/json-merge/gemfiles/modular/coverage.gemfile +++ b/gems/json-merge/gemfiles/modular/coverage.gemfile @@ -2,9 +2,9 @@ # We run code coverage on the latest version of Ruby only. -# Set KETTLE_RB_DEV=true for local development with path-based dependencies. +# Set KETTLE_DEV_DEV=true for local development with path-based dependencies. # When false (default / CI), remote released gems are used. -if ENV.fetch('KETTLE_RB_DEV', 'false').casecmp('false').zero? +if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? # Coverage (remote/released) platform :mri do gem 'kettle-soup-cover', '~> 1.0', '>= 1.1.3', require: false diff --git a/gems/json-merge/gemfiles/modular/coverage_local.gemfile b/gems/json-merge/gemfiles/modular/coverage_local.gemfile index 0c0150f21..3c2d562aa 100644 --- a/gems/json-merge/gemfiles/modular/coverage_local.gemfile +++ b/gems/json-merge/gemfiles/modular/coverage_local.gemfile @@ -1,7 +1,7 @@ # frozen_string_literal: true # Local path overrides for development. -# Loaded by the associated non-local gemfile when KETTLE_RB_DEV != "false". +# Loaded by the associated non-local gemfile when KETTLE_DEV_DEV != "false". require 'nomono/bundler' unless defined?(Nomono) @@ -9,12 +9,12 @@ local_gems = %w[kettle-dev kettle-test kettle-soup-cover kettle-drift] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) local_gems_to_eval = local_gems - %w[json-merge] - declared_gems -# export KETTLE_RB_DEV=/path/to/kettle-rb +# export KETTLE_DEV_DEV=/path/to/kettle-rb platform :mri do eval_nomono_gems( gems: local_gems_to_eval, - prefix: 'KETTLE_RB', - path_env: 'KETTLE_RB_DEV', + prefix: 'KETTLE_DEV', + path_env: 'KETTLE_DEV_DEV', vendored_gems_env: 'VENDORED_GEMS', vendor_gem_dir_env: 'VENDOR_GEM_DIR', debug_env: 'KETTLE_DEV_DEBUG' diff --git a/gems/json-merge/gemfiles/modular/templating.gemfile b/gems/json-merge/gemfiles/modular/templating.gemfile index e3c24e6b7..1ee2a5ea7 100644 --- a/gems/json-merge/gemfiles/modular/templating.gemfile +++ b/gems/json-merge/gemfiles/modular/templating.gemfile @@ -1,7 +1,7 @@ # frozen_string_literal: true structuredmerge_remote = ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false').zero? -kettle_remote = ENV.fetch('KETTLE_RB_DEV', 'false').casecmp('false').zero? +kettle_remote = ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? if structuredmerge_remote # Merge recipes and parser dependencies for released installs. @@ -17,6 +17,6 @@ end # When false (default / CI), released kettle-jem brings merge gems and parser dependencies. # Local path overrides bring the same dependencies from sibling gemspecs. # -# Set KETTLE_RB_DEV=/path/to/kettle-rb for local development with Kettle plugin gems. +# Set KETTLE_DEV_DEV=/path/to/kettle-rb for local development with Kettle plugin gems. # When false (default / CI), released Kettle plugin gems are used. eval_gemfile 'templating_local.gemfile' unless structuredmerge_remote && kettle_remote diff --git a/gems/json-merge/gemfiles/modular/templating_local.gemfile b/gems/json-merge/gemfiles/modular/templating_local.gemfile index 4a82b1a8b..e7bb00964 100644 --- a/gems/json-merge/gemfiles/modular/templating_local.gemfile +++ b/gems/json-merge/gemfiles/modular/templating_local.gemfile @@ -1,7 +1,7 @@ # frozen_string_literal: true # Local path overrides for templating development. -# Loaded by the associated non-local gemfile when STRUCTUREDMERGE_DEV or KETTLE_RB_DEV +# Loaded by the associated non-local gemfile when STRUCTUREDMERGE_DEV or KETTLE_DEV_DEV # is not "false". require 'nomono/bundler' unless defined?(Nomono) @@ -39,12 +39,12 @@ structuredmerge_local_gems = %w[ ast-crispr-ruby-prism ] -kettle_rb_local_gems = %w[ +kettle_dev_local_gems = %w[ kettle-dev kettle-test kettle-soup-cover kettle-drift ] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) structuredmerge_local_gems_to_eval = structuredmerge_local_gems - %w[json-merge] - declared_gems -kettle_rb_local_gems_to_eval = kettle_rb_local_gems - %w[json-merge] - declared_gems +kettle_dev_local_gems_to_eval = kettle_dev_local_gems - %w[json-merge] - declared_gems tslp_dev = ENV.fetch('TSLP_DEV', nil) if tslp_dev.to_s.empty? && ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false') != 0 @@ -68,11 +68,11 @@ platform :mri do ) end - if ENV.fetch('KETTLE_RB_DEV', 'false').casecmp('false') != 0 + if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false') != 0 eval_nomono_gems( - gems: kettle_rb_local_gems_to_eval, - prefix: 'KETTLE_RB', - path_env: 'KETTLE_RB_DEV', + gems: kettle_dev_local_gems_to_eval, + prefix: 'KETTLE_DEV', + path_env: 'KETTLE_DEV_DEV', vendored_gems_env: 'VENDORED_GEMS', vendor_gem_dir_env: 'VENDOR_GEM_DIR', debug_env: 'KETTLE_DEV_DEBUG' diff --git a/gems/kettle-jem/CHANGELOG.md b/gems/kettle-jem/CHANGELOG.md index d92efeab4..8d070a328 100644 --- a/gems/kettle-jem/CHANGELOG.md +++ b/gems/kettle-jem/CHANGELOG.md @@ -793,7 +793,7 @@ Please file a bug if you notice a violation of semantic versioning. `kettle-drift` binstubs when they already exist from local/plugin installs without requiring unreleased `kettle-drift` in every generated gemspec. - Added `kettle-drift` to generated templating Gemfiles, resolved remotely in - templating mode and via `KETTLE_RB_DEV` locally, separate from the + templating mode and via `KETTLE_DEV_DEV` locally, separate from the `STRUCTUREDMERGE_DEV` StructuredMerge local gem set. - Refreshed generated README metadata blocks after template README merging so version-derived gemspec metadata such as `source_code_uri` does not stay stale. diff --git a/gems/kettle-jem/Gemfile b/gems/kettle-jem/Gemfile index c7b6554af..74076680f 100644 --- a/gems/kettle-jem/Gemfile +++ b/gems/kettle-jem/Gemfile @@ -98,7 +98,7 @@ eval_gemfile "gemfiles/modular/templating.gemfile" if ENV.fetch("K_JEM_TEMPLATIN # Debugging eval_gemfile "gemfiles/modular/debug.gemfile" -# Code Coverage (env-switched: KETTLE_RB_DEV=true for local paths) +# Code Coverage (env-switched: KETTLE_DEV_DEV=true for local paths) eval_gemfile "gemfiles/modular/coverage.gemfile" # Linting diff --git a/gems/kettle-jem/README.md b/gems/kettle-jem/README.md index 2eb923dfa..b52f70a83 100644 --- a/gems/kettle-jem/README.md +++ b/gems/kettle-jem/README.md @@ -462,7 +462,7 @@ fill missing keys during config sync, and act as runtime overrides. | Variable | Description | |----------|-------------| -| `KETTLE_RB_DEV` | Workspace root for local sibling gems. `true` = `~/src/my`; a path = that path; unset/`false` = released gems. | +| `KETTLE_DEV_DEV` | Workspace root for local sibling gems. `true` = `~/src/my`; a path = that path; unset/`false` = released gems. | | `KETTLE_DEV_DEBUG` | Set to `true` for verbose debug output. | | `FUNDING_ORG` | OpenCollective organization handle for FUNDING.yml. Auto-derived from git remote if unset. | | `OPENCOLLECTIVE_HANDLE` | Alternative to `FUNDING_ORG` for personal OpenCollective pages. | diff --git a/gems/kettle-jem/gemfiles/modular/coverage.gemfile b/gems/kettle-jem/gemfiles/modular/coverage.gemfile index ab859db48..fdfe1672f 100644 --- a/gems/kettle-jem/gemfiles/modular/coverage.gemfile +++ b/gems/kettle-jem/gemfiles/modular/coverage.gemfile @@ -2,9 +2,9 @@ # We run code coverage on the latest version of Ruby only. -# Set KETTLE_RB_DEV=true for local development with path-based dependencies. +# Set KETTLE_DEV_DEV=true for local development with path-based dependencies. # When false (default / CI), remote released gems are used. -if ENV.fetch("KETTLE_RB_DEV", "false").casecmp("false").zero? +if ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false").zero? # Coverage (remote/released) platform :mri do gem "kettle-soup-cover", "~> 3.0", ">= 3.0.1", require: false diff --git a/gems/kettle-jem/gemfiles/modular/coverage_local.gemfile b/gems/kettle-jem/gemfiles/modular/coverage_local.gemfile index 458c872ec..44d4e196a 100644 --- a/gems/kettle-jem/gemfiles/modular/coverage_local.gemfile +++ b/gems/kettle-jem/gemfiles/modular/coverage_local.gemfile @@ -1,7 +1,7 @@ # frozen_string_literal: true # Local path overrides for development. -# Loaded by the associated non-local gemfile when KETTLE_RB_DEV != "false". +# Loaded by the associated non-local gemfile when KETTLE_DEV_DEV != "false". # Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. # Bundler records that dependency during Gemfile evaluation, but it does not @@ -31,12 +31,12 @@ local_gems = %w[kettle-dev kettle-test kettle-soup-cover kettle-drift] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) local_gems_to_eval = local_gems - %w[kettle-jem] - declared_gems -# export KETTLE_RB_DEV=/path/to/my +# export KETTLE_DEV_DEV=/path/to/my platform :mri do eval_nomono_gems( gems: local_gems_to_eval, - prefix: "KETTLE_RB", - path_env: "KETTLE_RB_DEV", + prefix: "KETTLE_DEV", + path_env: "KETTLE_DEV_DEV", vendored_gems_env: "VENDORED_GEMS", vendor_gem_dir_env: "VENDOR_GEM_DIR", debug_env: "KETTLE_DEV_DEBUG" diff --git a/gems/kettle-jem/gemfiles/modular/templating.gemfile b/gems/kettle-jem/gemfiles/modular/templating.gemfile index c0dd9c74d..53de88ee5 100644 --- a/gems/kettle-jem/gemfiles/modular/templating.gemfile +++ b/gems/kettle-jem/gemfiles/modular/templating.gemfile @@ -1,7 +1,7 @@ # frozen_string_literal: true structuredmerge_remote = ENV.fetch("STRUCTUREDMERGE_DEV", "false").casecmp("false").zero? -kettle_remote = ENV.fetch("KETTLE_RB_DEV", "false").casecmp("false").zero? +kettle_remote = ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false").zero? if structuredmerge_remote end @@ -15,6 +15,6 @@ end # When false (default / CI), released kettle-jem brings merge gems and parser dependencies. # Local path overrides bring the same dependencies from sibling gemspecs. # -# Set KETTLE_RB_DEV=/path/to/my for local development with Kettle plugin gems. +# Set KETTLE_DEV_DEV=/path/to/my for local development with Kettle plugin gems. # When false (default / CI), released Kettle plugin gems are used. eval_gemfile "templating_local.gemfile" unless structuredmerge_remote && kettle_remote diff --git a/gems/kettle-jem/gemfiles/modular/templating_local.gemfile b/gems/kettle-jem/gemfiles/modular/templating_local.gemfile index 0c950faae..5446cce3a 100644 --- a/gems/kettle-jem/gemfiles/modular/templating_local.gemfile +++ b/gems/kettle-jem/gemfiles/modular/templating_local.gemfile @@ -1,7 +1,7 @@ # frozen_string_literal: true # Local path overrides for templating development. -# Loaded by the associated non-local gemfile when STRUCTUREDMERGE_DEV or KETTLE_RB_DEV +# Loaded by the associated non-local gemfile when STRUCTUREDMERGE_DEV or KETTLE_DEV_DEV # is not "false". # Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. @@ -61,12 +61,12 @@ structuredmerge_local_gems = %w[ ast-crispr-ruby-prism ] -kettle_rb_local_gems = %w[ +kettle_dev_local_gems = %w[ kettle-dev kettle-test kettle-soup-cover kettle-drift ] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) structuredmerge_local_gems_to_eval = structuredmerge_local_gems - %w[kettle-jem] - declared_gems -kettle_rb_local_gems_to_eval = kettle_rb_local_gems - %w[kettle-jem] - declared_gems +kettle_dev_local_gems_to_eval = kettle_dev_local_gems - %w[kettle-jem] - declared_gems tslp_dev = ENV.fetch("TSLP_DEV", nil) if tslp_dev.to_s.empty? && ENV.fetch("STRUCTUREDMERGE_DEV", "false").casecmp("false") != 0 @@ -92,11 +92,11 @@ platform :mri do ) end - if ENV.fetch("KETTLE_RB_DEV", "false").casecmp("false") != 0 + if ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false") != 0 eval_nomono_gems( - gems: kettle_rb_local_gems_to_eval, - prefix: "KETTLE_RB", - path_env: "KETTLE_RB_DEV", + gems: kettle_dev_local_gems_to_eval, + prefix: "KETTLE_DEV", + path_env: "KETTLE_DEV_DEV", vendored_gems_env: "VENDORED_GEMS", vendor_gem_dir_env: "VENDOR_GEM_DIR", debug_env: "KETTLE_DEV_DEBUG" diff --git a/gems/kettle-jem/lib/kettle/jem.rb b/gems/kettle-jem/lib/kettle/jem.rb index 3b91d9832..a2c259fd4 100644 --- a/gems/kettle-jem/lib/kettle/jem.rb +++ b/gems/kettle-jem/lib/kettle/jem.rb @@ -1699,7 +1699,7 @@ def build_entry(name, spec, workspace_root:) end def default_workspace_root - env_root = ENV["KETTLE_RB_DEV"].to_s.strip + env_root = ENV["KETTLE_DEV_DEV"].to_s.strip return if env_root.casecmp("false").zero? repo_root = File.expand_path("../../..", __dir__) @@ -1852,7 +1852,7 @@ def local_workspace_warning_lines(snapshot:, project_root:) [ "WARNING: #{warning}", - "Hint: set KETTLE_RB_DEV=true (or configure it in .env.local) to use sibling workspace gems." + "Hint: set KETTLE_DEV_DEV=true (or configure it in .env.local) to use sibling workspace gems." ] end @@ -1862,7 +1862,7 @@ def local_warning_section(warning) #{warning} - Set `KETTLE_RB_DEV=true` (or configure it in `.env.local`) to use sibling workspace gems instead of the installed release. + Set `KETTLE_DEV_DEV=true` (or configure it in `.env.local`) to use sibling workspace gems instead of the installed release. MARKDOWN end @@ -1883,9 +1883,9 @@ def local_workspace_warning(snapshot:, project_root:) checkout_path = canonical_path(local_checkout) return if loaded_path == checkout_path - env_value = ENV.fetch("KETTLE_RB_DEV", "") + env_value = ENV.fetch("KETTLE_DEV_DEV", "") "Detected sibling workspace checkout at `#{Kettle::Jem.display_path(local_checkout)}`, but this run is using installed `kettle-jem` " \ - "(KETTLE_RB_DEV=#{env_value.inspect})." + "(KETTLE_DEV_DEV=#{env_value.inspect})." end def sibling_workspace_root(project_root) @@ -10687,7 +10687,7 @@ def project_runtime_facts( template_run_date: run_timestamp.strftime("%Y-%m-%d"), template_run_year: run_timestamp.year.to_s, kettle_dev_gem: "kettle-dev", - kettle_rb_local_gems: kettle_rb_local_gems(config), + kettle_dev_local_gems: kettle_dev_local_gems(config), package_name: package_name.to_s, yard_host: yard_host, homepage_uri: project_homepage_uri(config, env, yard_host: yard_host, gemspec_homepage_uri: metadata_value(gemspec_metadata, :homepage_uri)), @@ -11008,7 +11008,7 @@ def project_runtime_template_tokens(project_runtime) "KJ|TEMPLATE_RUN_DATE" => project_runtime[:template_run_date].to_s, "KJ|TEMPLATE_RUN_YEAR" => project_runtime[:template_run_year].to_s, "KJ|KETTLE_DEV_GEM" => project_runtime[:kettle_dev_gem].to_s, - "KJ|KETTLE_RB_LOCAL_GEMS" => project_runtime[:kettle_rb_local_gems].to_s, + "KJ|KETTLE_DEV_LOCAL_GEMS" => project_runtime[:kettle_dev_local_gems].to_s, "KJ|MAIN_GEMFILE_DIRECT_SIBLING_BLOCK" => project_runtime[:main_gemfile_direct_sibling_block].to_s, "KJ|PACKAGE_NAME" => project_runtime[:package_name].to_s, "KJ|YARD_HOST" => project_runtime[:yard_host].to_s, @@ -11023,7 +11023,7 @@ def project_yard_host(config, env, package_name:, author_domain:) preferred_template_token_value(derived, project_runtime_config_value(config, "yard_host"), env, "KJ_YARD_HOST").to_s end - def kettle_rb_local_gems(config) + def kettle_dev_local_gems(config) gems = %w[kettle-dev kettle-test kettle-soup-cover] plugin_names = PluginLoader.normalize_plugin_names(plugin_names_from_config(config)) gems.concat(plugin_names.select { |plugin_name| plugin_name.start_with?("kettle-") }) diff --git a/gems/kettle-jem/lib/kettle/jem/cli.rb b/gems/kettle-jem/lib/kettle/jem/cli.rb index e1f6fe17e..f19c2aa88 100644 --- a/gems/kettle-jem/lib/kettle/jem/cli.rb +++ b/gems/kettle-jem/lib/kettle/jem/cli.rb @@ -269,7 +269,7 @@ def print_debug_snapshot(command, project_root:, env:, err:) err.puts("[kettle-jem] DEBUG: early environment snapshot") err.puts(" command=#{command.inspect}") err.puts(" project_root=#{project_root.inspect}") - %w[DEBUG KETTLE_JEM_DEBUG KETTLE_DEV_DEBUG KETTLE_RB_DEV BUNDLE_GEMFILE BUNDLE_PATH GEM_HOME GEM_PATH RUBYOPT RUBYLIB PWD].each do |key| + %w[DEBUG KETTLE_JEM_DEBUG KETTLE_DEV_DEBUG KETTLE_DEV_DEV BUNDLE_GEMFILE BUNDLE_PATH GEM_HOME GEM_PATH RUBYOPT RUBYLIB PWD].each do |key| err.puts(" #{key}=#{env_value(env, key).inspect}") end end diff --git a/gems/kettle-jem/lib/kettle/jem/tasks/install_task.rb b/gems/kettle-jem/lib/kettle/jem/tasks/install_task.rb index 48e4730a7..0d533195c 100644 --- a/gems/kettle-jem/lib/kettle/jem/tasks/install_task.rb +++ b/gems/kettle-jem/lib/kettle/jem/tasks/install_task.rb @@ -750,7 +750,7 @@ def normal_lockfile_env(project_root, env) command_env = (env || {}).to_h.dup strip_inherited_bundler_activation!(command_env) command_env["K_JEM_TEMPLATING"] = "false" - %w[KETTLE_RB_DEV GALTZO_FLOSS_DEV STRUCTUREDMERGE_DEV].each do |key| + %w[KETTLE_DEV_DEV GALTZO_FLOSS_DEV STRUCTUREDMERGE_DEV].each do |key| command_env[key] = "false" if command_env.key?(key) end gemfile = File.join(project_root.to_s, "Gemfile") @@ -1017,7 +1017,7 @@ def apply_kettle_family_local_install_env!(command_env) end kettle_root = kettle_family_dependency_root(marker) - command_env["KETTLE_RB_DEV"] = kettle_root if kettle_root && local_env_disabled?(command_env["KETTLE_RB_DEV"]) + command_env["KETTLE_DEV_DEV"] = kettle_root if kettle_root && local_env_disabled?(command_env["KETTLE_DEV_DEV"]) end def kettle_family_local_install_marker(command_env) diff --git a/gems/kettle-jem/lib/kettle/jem/templates/Gemfile.example b/gems/kettle-jem/lib/kettle/jem/templates/Gemfile.example index af7d895a2..1e1e7be87 100644 --- a/gems/kettle-jem/lib/kettle/jem/templates/Gemfile.example +++ b/gems/kettle-jem/lib/kettle/jem/templates/Gemfile.example @@ -30,7 +30,7 @@ eval_gemfile "gemfiles/modular/templating.gemfile" if ENV.fetch("K_JEM_TEMPLATIN # Debugging eval_gemfile "gemfiles/modular/debug.gemfile" -# Code Coverage (env-switched: KETTLE_RB_DEV=true for local paths) +# Code Coverage (env-switched: KETTLE_DEV_DEV=true for local paths) eval_gemfile "gemfiles/modular/coverage.gemfile" # Linting diff --git a/gems/kettle-jem/lib/kettle/jem/templates/gemfiles/modular/coverage.gemfile.example b/gems/kettle-jem/lib/kettle/jem/templates/gemfiles/modular/coverage.gemfile.example index ab859db48..fdfe1672f 100755 --- a/gems/kettle-jem/lib/kettle/jem/templates/gemfiles/modular/coverage.gemfile.example +++ b/gems/kettle-jem/lib/kettle/jem/templates/gemfiles/modular/coverage.gemfile.example @@ -2,9 +2,9 @@ # We run code coverage on the latest version of Ruby only. -# Set KETTLE_RB_DEV=true for local development with path-based dependencies. +# Set KETTLE_DEV_DEV=true for local development with path-based dependencies. # When false (default / CI), remote released gems are used. -if ENV.fetch("KETTLE_RB_DEV", "false").casecmp("false").zero? +if ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false").zero? # Coverage (remote/released) platform :mri do gem "kettle-soup-cover", "~> 3.0", ">= 3.0.1", require: false diff --git a/gems/kettle-jem/lib/kettle/jem/templates/gemfiles/modular/coverage_local.gemfile.example b/gems/kettle-jem/lib/kettle/jem/templates/gemfiles/modular/coverage_local.gemfile.example index a055ba51e..2982f0faa 100644 --- a/gems/kettle-jem/lib/kettle/jem/templates/gemfiles/modular/coverage_local.gemfile.example +++ b/gems/kettle-jem/lib/kettle/jem/templates/gemfiles/modular/coverage_local.gemfile.example @@ -1,7 +1,7 @@ # frozen_string_literal: true # Local path overrides for development. -# Loaded by the associated non-local gemfile when KETTLE_RB_DEV != "false". +# Loaded by the associated non-local gemfile when KETTLE_DEV_DEV != "false". # Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. # Bundler records that dependency during Gemfile evaluation, but it does not @@ -27,16 +27,16 @@ end Kernel.send(:gem, "nomono", *nomono_activation_requirements) require "nomono/bundler" -local_gems = %w[{KJ|KETTLE_RB_LOCAL_GEMS}] +local_gems = %w[{KJ|KETTLE_DEV_LOCAL_GEMS}] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) local_gems_to_eval = local_gems - %w[{KJ|PACKAGE_NAME}] - declared_gems -# export KETTLE_RB_DEV=/path/to/my +# export KETTLE_DEV_DEV=/path/to/my platform :mri do eval_nomono_gems( gems: local_gems_to_eval, - prefix: "KETTLE_RB", - path_env: "KETTLE_RB_DEV", + prefix: "KETTLE_DEV", + path_env: "KETTLE_DEV_DEV", vendored_gems_env: "VENDORED_GEMS", vendor_gem_dir_env: "VENDOR_GEM_DIR", debug_env: "KETTLE_DEV_DEBUG" diff --git a/gems/kettle-jem/lib/kettle/jem/templates/gemfiles/modular/templating.gemfile.example b/gems/kettle-jem/lib/kettle/jem/templates/gemfiles/modular/templating.gemfile.example index 990c5d920..4ab3196b7 100644 --- a/gems/kettle-jem/lib/kettle/jem/templates/gemfiles/modular/templating.gemfile.example +++ b/gems/kettle-jem/lib/kettle/jem/templates/gemfiles/modular/templating.gemfile.example @@ -1,7 +1,7 @@ # frozen_string_literal: true structuredmerge_remote = ENV.fetch("STRUCTUREDMERGE_DEV", "false").casecmp("false").zero? -kettle_remote = ENV.fetch("KETTLE_RB_DEV", "false").casecmp("false").zero? +kettle_remote = ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false").zero? if structuredmerge_remote # Merge recipes and parser dependencies for released installs. @@ -17,6 +17,6 @@ end # When false (default / CI), released kettle-jem brings merge gems and parser dependencies. # Local path overrides bring the same dependencies from sibling gemspecs. # -# Set KETTLE_RB_DEV=/path/to/my for local development with Kettle plugin gems. +# Set KETTLE_DEV_DEV=/path/to/my for local development with Kettle plugin gems. # When false (default / CI), released Kettle plugin gems are used. eval_gemfile "templating_local.gemfile" unless structuredmerge_remote && kettle_remote diff --git a/gems/kettle-jem/lib/kettle/jem/templates/gemfiles/modular/templating_local.gemfile.example b/gems/kettle-jem/lib/kettle/jem/templates/gemfiles/modular/templating_local.gemfile.example index 82608833d..c8c4f4eec 100644 --- a/gems/kettle-jem/lib/kettle/jem/templates/gemfiles/modular/templating_local.gemfile.example +++ b/gems/kettle-jem/lib/kettle/jem/templates/gemfiles/modular/templating_local.gemfile.example @@ -1,7 +1,7 @@ # frozen_string_literal: true # Local path overrides for templating development. -# Loaded by the associated non-local gemfile when STRUCTUREDMERGE_DEV or KETTLE_RB_DEV +# Loaded by the associated non-local gemfile when STRUCTUREDMERGE_DEV or KETTLE_DEV_DEV # is not "false". # Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. @@ -61,12 +61,12 @@ structuredmerge_local_gems = %w[ ast-crispr-ruby-prism ] -kettle_rb_local_gems = %w[ - {KJ|KETTLE_RB_LOCAL_GEMS} +kettle_dev_local_gems = %w[ + {KJ|KETTLE_DEV_LOCAL_GEMS} ] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) structuredmerge_local_gems_to_eval = structuredmerge_local_gems - %w[{KJ|PACKAGE_NAME}] - declared_gems -kettle_rb_local_gems_to_eval = kettle_rb_local_gems - %w[{KJ|PACKAGE_NAME}] - declared_gems +kettle_dev_local_gems_to_eval = kettle_dev_local_gems - %w[{KJ|PACKAGE_NAME}] - declared_gems tslp_dev = ENV.fetch("TSLP_DEV", nil) if tslp_dev.to_s.empty? && ENV.fetch("STRUCTUREDMERGE_DEV", "false").casecmp("false") != 0 @@ -92,11 +92,11 @@ platform :mri do ) end - if ENV.fetch("KETTLE_RB_DEV", "false").casecmp("false") != 0 + if ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false") != 0 eval_nomono_gems( - gems: kettle_rb_local_gems_to_eval, - prefix: "KETTLE_RB", - path_env: "KETTLE_RB_DEV", + gems: kettle_dev_local_gems_to_eval, + prefix: "KETTLE_DEV", + path_env: "KETTLE_DEV_DEV", vendored_gems_env: "VENDORED_GEMS", vendor_gem_dir_env: "VENDOR_GEM_DIR", debug_env: "KETTLE_DEV_DEBUG" diff --git a/gems/kettle-jem/spec/cli_spec.rb b/gems/kettle-jem/spec/cli_spec.rb index 5682ae0ec..0c1d47055 100644 --- a/gems/kettle-jem/spec/cli_spec.rb +++ b/gems/kettle-jem/spec/cli_spec.rb @@ -340,14 +340,14 @@ def tmp_root Dir.mktmpdir("kettle-jem-cli", tmp_root) do |root| allow(Kettle::Jem).to receive(:plan_project).and_raise(Kettle::Jem::Error, "debug failure") - status, out, err = run_cli(["plan", root, "--quiet"], env: {"DEBUG" => "true", "KETTLE_RB_DEV" => "true"}) + status, out, err = run_cli(["plan", root, "--quiet"], env: {"DEBUG" => "true", "KETTLE_DEV_DEV" => "true"}) expect(status).to eq(1) expect(out).to eq("") expect(err).to include("[kettle-jem] DEBUG: early environment snapshot") expect(err).to include("command=\"plan\"") expect(err).to include("DEBUG=\"true\"") - expect(err).to include("KETTLE_RB_DEV=\"true\"") + expect(err).to include("KETTLE_DEV_DEV=\"true\"") expect(err).to include("Kettle::Jem::Error: debug failure") expect(err).to include("kettle/jem/cli.rb") end diff --git a/gems/kettle-jem/spec/thin_slice_spec.rb b/gems/kettle-jem/spec/thin_slice_spec.rb index 89c1b252b..eb397924c 100644 --- a/gems/kettle-jem/spec/thin_slice_spec.rb +++ b/gems/kettle-jem/spec/thin_slice_spec.rb @@ -3739,13 +3739,13 @@ module Version "Gemfile" => <<~RUBY source "https://gem.coop" - unless ENV.fetch("KETTLE_RB_DEV", "false").casecmp("false").zero? + unless ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false").zero? require "nomono/bundler" eval_nomono_gems( gems: %w[kettle-dev kettle-test], - prefix: "KETTLE_RB", - path_env: "KETTLE_RB_DEV", + prefix: "KETTLE_DEV", + path_env: "KETTLE_DEV_DEV", vendored_gems_env: "VENDORED_GEMS", vendor_gem_dir_env: "VENDOR_GEM_DIR", debug_env: "KETTLE_DEV_DEBUG", @@ -5063,7 +5063,7 @@ module Version "BUNDLE_GEMFILE" => File.join(root, "Gemfile"), "K_JEM_TEMPLATING" => "true", "STRUCTUREDMERGE_DEV" => marker.fetch("members_root"), - "KETTLE_RB_DEV" => File.join(root, "kettle-dev") + "KETTLE_DEV_DEV" => File.join(root, "kettle-dev") ) end end @@ -5107,7 +5107,7 @@ module Version env = { "KETTLE_JEM_SKIP_COMMIT" => "true", "K_JEM_TEMPLATING" => "true", - "KETTLE_RB_DEV" => "/workspace/my", + "KETTLE_DEV_DEV" => "/workspace/my", "GALTZO_FLOSS_DEV" => "/workspace/galtzo-floss", "STRUCTUREDMERGE_DEV" => "/workspace/smorg-rb" } @@ -5140,7 +5140,7 @@ module Version expect(lock_command.fetch(:env)).to include( "BUNDLE_GEMFILE" => File.join(root, "Gemfile"), "K_JEM_TEMPLATING" => "false", - "KETTLE_RB_DEV" => "false", + "KETTLE_DEV_DEV" => "false", "GALTZO_FLOSS_DEV" => "false", "STRUCTUREDMERGE_DEV" => "false" ) @@ -5215,7 +5215,7 @@ module Version env = { "K_JEM_TEMPLATING" => "true", - "KETTLE_RB_DEV" => "/workspace/my", + "KETTLE_DEV_DEV" => "/workspace/my", "GALTZO_FLOSS_DEV" => "/workspace/galtzo-floss", "STRUCTUREDMERGE_DEV" => "/workspace/smorg-rb", "RUBYOPT" => "-rbundler/setup", @@ -5249,7 +5249,7 @@ module Version expect(lock_command.fetch(:env)).to include( "BUNDLE_GEMFILE" => File.join(root, "Gemfile"), "K_JEM_TEMPLATING" => "false", - "KETTLE_RB_DEV" => "false", + "KETTLE_DEV_DEV" => "false", "GALTZO_FLOSS_DEV" => "false", "STRUCTUREDMERGE_DEV" => "false" ) @@ -6100,7 +6100,7 @@ module Version "mise.toml" => "[tools]\nruby = \"3.4.1\"\n", ".ruby-version" => "3.4.1\n", ".tool-versions" => "ruby 3.4.1\n", - ".env.local.example" => "KETTLE_RB_DEV=false\n", + ".env.local.example" => "KETTLE_DEV_DEV=false\n", ".gitignore" => "tmp/\n" }) command_runner = lambda do |_command, **| @@ -6190,12 +6190,12 @@ module Version YAML "template/.env.local.example" => <<~ENV, # Shared development defaults - KETTLE_RB_DEV=false + KETTLE_DEV_DEV=false DEBUG=false # keep debugging disabled by default ENV ".env.local.example" => <<~ENV # Local documentation must survive - KETTLE_RB_DEV=true + KETTLE_DEV_DEV=true ENV }) @@ -6204,7 +6204,7 @@ module Version expect(report.fetch(:final_content)).to eq(<<~ENV) # Local documentation must survive - KETTLE_RB_DEV=true + KETTLE_DEV_DEV=true DEBUG=false # keep debugging disabled by default ENV end @@ -8760,7 +8760,7 @@ def gamma ) tokens = described_class.send(:project_runtime_template_tokens, runtime) - expect(tokens.fetch("KJ|KETTLE_RB_LOCAL_GEMS")).to eq("kettle-dev kettle-test kettle-soup-cover kettle-drift") + expect(tokens.fetch("KJ|KETTLE_DEV_LOCAL_GEMS")).to eq("kettle-dev kettle-test kettle-soup-cover kettle-drift") expect(tokens.fetch("KJ|PACKAGE_NAME")).to eq("example") end diff --git a/gems/kramdown-merge/Gemfile b/gems/kramdown-merge/Gemfile index 08e351959..ba9d18249 100644 --- a/gems/kramdown-merge/Gemfile +++ b/gems/kramdown-merge/Gemfile @@ -414,7 +414,7 @@ eval_gemfile 'gemfiles/modular/templating.gemfile' if ENV.fetch('K_JEM_TEMPLATIN # Debugging eval_gemfile 'gemfiles/modular/debug.gemfile' -# Code Coverage (env-switched: KETTLE_RB_DEV=true for local paths) +# Code Coverage (env-switched: KETTLE_DEV_DEV=true for local paths) eval_gemfile 'gemfiles/modular/coverage.gemfile' # Linting diff --git a/gems/kramdown-merge/gemfiles/modular/coverage.gemfile b/gems/kramdown-merge/gemfiles/modular/coverage.gemfile index c0ab9c066..f96d50954 100644 --- a/gems/kramdown-merge/gemfiles/modular/coverage.gemfile +++ b/gems/kramdown-merge/gemfiles/modular/coverage.gemfile @@ -2,9 +2,9 @@ # We run code coverage on the latest version of Ruby only. -# Set KETTLE_RB_DEV=true for local development with path-based dependencies. +# Set KETTLE_DEV_DEV=true for local development with path-based dependencies. # When false (default / CI), remote released gems are used. -if ENV.fetch('KETTLE_RB_DEV', 'false').casecmp('false').zero? +if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? # Coverage (remote/released) platform :mri do gem 'kettle-soup-cover', '~> 1.0', '>= 1.1.3', require: false diff --git a/gems/kramdown-merge/gemfiles/modular/coverage_local.gemfile b/gems/kramdown-merge/gemfiles/modular/coverage_local.gemfile index 48f48051e..b1ca6d13a 100644 --- a/gems/kramdown-merge/gemfiles/modular/coverage_local.gemfile +++ b/gems/kramdown-merge/gemfiles/modular/coverage_local.gemfile @@ -1,7 +1,7 @@ # frozen_string_literal: true # Local path overrides for development. -# Loaded by the associated non-local gemfile when KETTLE_RB_DEV != "false". +# Loaded by the associated non-local gemfile when KETTLE_DEV_DEV != "false". require 'nomono/bundler' unless defined?(Nomono) @@ -9,12 +9,12 @@ local_gems = %w[kettle-dev kettle-test kettle-soup-cover kettle-drift] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) local_gems_to_eval = local_gems - %w[kramdown-merge] - declared_gems -# export KETTLE_RB_DEV=/path/to/kettle-rb +# export KETTLE_DEV_DEV=/path/to/kettle-rb platform :mri do eval_nomono_gems( gems: local_gems_to_eval, - prefix: 'KETTLE_RB', - path_env: 'KETTLE_RB_DEV', + prefix: 'KETTLE_DEV', + path_env: 'KETTLE_DEV_DEV', vendored_gems_env: 'VENDORED_GEMS', vendor_gem_dir_env: 'VENDOR_GEM_DIR', debug_env: 'KETTLE_DEV_DEBUG' diff --git a/gems/kramdown-merge/gemfiles/modular/templating.gemfile b/gems/kramdown-merge/gemfiles/modular/templating.gemfile index e3c24e6b7..1ee2a5ea7 100644 --- a/gems/kramdown-merge/gemfiles/modular/templating.gemfile +++ b/gems/kramdown-merge/gemfiles/modular/templating.gemfile @@ -1,7 +1,7 @@ # frozen_string_literal: true structuredmerge_remote = ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false').zero? -kettle_remote = ENV.fetch('KETTLE_RB_DEV', 'false').casecmp('false').zero? +kettle_remote = ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? if structuredmerge_remote # Merge recipes and parser dependencies for released installs. @@ -17,6 +17,6 @@ end # When false (default / CI), released kettle-jem brings merge gems and parser dependencies. # Local path overrides bring the same dependencies from sibling gemspecs. # -# Set KETTLE_RB_DEV=/path/to/kettle-rb for local development with Kettle plugin gems. +# Set KETTLE_DEV_DEV=/path/to/kettle-rb for local development with Kettle plugin gems. # When false (default / CI), released Kettle plugin gems are used. eval_gemfile 'templating_local.gemfile' unless structuredmerge_remote && kettle_remote diff --git a/gems/kramdown-merge/gemfiles/modular/templating_local.gemfile b/gems/kramdown-merge/gemfiles/modular/templating_local.gemfile index d6c069d66..aa05bc7be 100644 --- a/gems/kramdown-merge/gemfiles/modular/templating_local.gemfile +++ b/gems/kramdown-merge/gemfiles/modular/templating_local.gemfile @@ -1,7 +1,7 @@ # frozen_string_literal: true # Local path overrides for templating development. -# Loaded by the associated non-local gemfile when STRUCTUREDMERGE_DEV or KETTLE_RB_DEV +# Loaded by the associated non-local gemfile when STRUCTUREDMERGE_DEV or KETTLE_DEV_DEV # is not "false". require 'nomono/bundler' unless defined?(Nomono) @@ -39,12 +39,12 @@ structuredmerge_local_gems = %w[ ast-crispr-ruby-prism ] -kettle_rb_local_gems = %w[ +kettle_dev_local_gems = %w[ kettle-dev kettle-test kettle-soup-cover kettle-drift ] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) structuredmerge_local_gems_to_eval = structuredmerge_local_gems - %w[kramdown-merge] - declared_gems -kettle_rb_local_gems_to_eval = kettle_rb_local_gems - %w[kramdown-merge] - declared_gems +kettle_dev_local_gems_to_eval = kettle_dev_local_gems - %w[kramdown-merge] - declared_gems tslp_dev = ENV.fetch('TSLP_DEV', nil) if tslp_dev.to_s.empty? && ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false') != 0 @@ -68,11 +68,11 @@ platform :mri do ) end - if ENV.fetch('KETTLE_RB_DEV', 'false').casecmp('false') != 0 + if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false') != 0 eval_nomono_gems( - gems: kettle_rb_local_gems_to_eval, - prefix: 'KETTLE_RB', - path_env: 'KETTLE_RB_DEV', + gems: kettle_dev_local_gems_to_eval, + prefix: 'KETTLE_DEV', + path_env: 'KETTLE_DEV_DEV', vendored_gems_env: 'VENDORED_GEMS', vendor_gem_dir_env: 'VENDOR_GEM_DIR', debug_env: 'KETTLE_DEV_DEBUG' diff --git a/gems/markdown-merge/Gemfile b/gems/markdown-merge/Gemfile index 9f0788f60..3cf606c1b 100644 --- a/gems/markdown-merge/Gemfile +++ b/gems/markdown-merge/Gemfile @@ -415,7 +415,7 @@ eval_gemfile 'gemfiles/modular/templating.gemfile' if ENV.fetch('K_JEM_TEMPLATIN # Debugging eval_gemfile 'gemfiles/modular/debug.gemfile' -# Code Coverage (env-switched: KETTLE_RB_DEV=true for local paths) +# Code Coverage (env-switched: KETTLE_DEV_DEV=true for local paths) eval_gemfile 'gemfiles/modular/coverage.gemfile' # Linting diff --git a/gems/markdown-merge/gemfiles/modular/coverage.gemfile b/gems/markdown-merge/gemfiles/modular/coverage.gemfile index c0ab9c066..f96d50954 100644 --- a/gems/markdown-merge/gemfiles/modular/coverage.gemfile +++ b/gems/markdown-merge/gemfiles/modular/coverage.gemfile @@ -2,9 +2,9 @@ # We run code coverage on the latest version of Ruby only. -# Set KETTLE_RB_DEV=true for local development with path-based dependencies. +# Set KETTLE_DEV_DEV=true for local development with path-based dependencies. # When false (default / CI), remote released gems are used. -if ENV.fetch('KETTLE_RB_DEV', 'false').casecmp('false').zero? +if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? # Coverage (remote/released) platform :mri do gem 'kettle-soup-cover', '~> 1.0', '>= 1.1.3', require: false diff --git a/gems/markdown-merge/gemfiles/modular/coverage_local.gemfile b/gems/markdown-merge/gemfiles/modular/coverage_local.gemfile index 796ed4ffe..77080d72c 100644 --- a/gems/markdown-merge/gemfiles/modular/coverage_local.gemfile +++ b/gems/markdown-merge/gemfiles/modular/coverage_local.gemfile @@ -1,7 +1,7 @@ # frozen_string_literal: true # Local path overrides for development. -# Loaded by the associated non-local gemfile when KETTLE_RB_DEV != "false". +# Loaded by the associated non-local gemfile when KETTLE_DEV_DEV != "false". require 'nomono/bundler' unless defined?(Nomono) @@ -9,12 +9,12 @@ local_gems = %w[kettle-dev kettle-test kettle-soup-cover kettle-drift] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) local_gems_to_eval = local_gems - %w[markdown-merge] - declared_gems -# export KETTLE_RB_DEV=/path/to/kettle-rb +# export KETTLE_DEV_DEV=/path/to/kettle-rb platform :mri do eval_nomono_gems( gems: local_gems_to_eval, - prefix: 'KETTLE_RB', - path_env: 'KETTLE_RB_DEV', + prefix: 'KETTLE_DEV', + path_env: 'KETTLE_DEV_DEV', vendored_gems_env: 'VENDORED_GEMS', vendor_gem_dir_env: 'VENDOR_GEM_DIR', debug_env: 'KETTLE_DEV_DEBUG' diff --git a/gems/markdown-merge/gemfiles/modular/templating.gemfile b/gems/markdown-merge/gemfiles/modular/templating.gemfile index e3c24e6b7..1ee2a5ea7 100644 --- a/gems/markdown-merge/gemfiles/modular/templating.gemfile +++ b/gems/markdown-merge/gemfiles/modular/templating.gemfile @@ -1,7 +1,7 @@ # frozen_string_literal: true structuredmerge_remote = ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false').zero? -kettle_remote = ENV.fetch('KETTLE_RB_DEV', 'false').casecmp('false').zero? +kettle_remote = ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? if structuredmerge_remote # Merge recipes and parser dependencies for released installs. @@ -17,6 +17,6 @@ end # When false (default / CI), released kettle-jem brings merge gems and parser dependencies. # Local path overrides bring the same dependencies from sibling gemspecs. # -# Set KETTLE_RB_DEV=/path/to/kettle-rb for local development with Kettle plugin gems. +# Set KETTLE_DEV_DEV=/path/to/kettle-rb for local development with Kettle plugin gems. # When false (default / CI), released Kettle plugin gems are used. eval_gemfile 'templating_local.gemfile' unless structuredmerge_remote && kettle_remote diff --git a/gems/markdown-merge/gemfiles/modular/templating_local.gemfile b/gems/markdown-merge/gemfiles/modular/templating_local.gemfile index f6091c355..f3b78a01e 100644 --- a/gems/markdown-merge/gemfiles/modular/templating_local.gemfile +++ b/gems/markdown-merge/gemfiles/modular/templating_local.gemfile @@ -1,7 +1,7 @@ # frozen_string_literal: true # Local path overrides for templating development. -# Loaded by the associated non-local gemfile when STRUCTUREDMERGE_DEV or KETTLE_RB_DEV +# Loaded by the associated non-local gemfile when STRUCTUREDMERGE_DEV or KETTLE_DEV_DEV # is not "false". require 'nomono/bundler' unless defined?(Nomono) @@ -39,12 +39,12 @@ structuredmerge_local_gems = %w[ ast-crispr-ruby-prism ] -kettle_rb_local_gems = %w[ +kettle_dev_local_gems = %w[ kettle-dev kettle-test kettle-soup-cover kettle-drift ] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) structuredmerge_local_gems_to_eval = structuredmerge_local_gems - %w[markdown-merge] - declared_gems -kettle_rb_local_gems_to_eval = kettle_rb_local_gems - %w[markdown-merge] - declared_gems +kettle_dev_local_gems_to_eval = kettle_dev_local_gems - %w[markdown-merge] - declared_gems tslp_dev = ENV.fetch('TSLP_DEV', nil) if tslp_dev.to_s.empty? && ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false') != 0 @@ -68,11 +68,11 @@ platform :mri do ) end - if ENV.fetch('KETTLE_RB_DEV', 'false').casecmp('false') != 0 + if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false') != 0 eval_nomono_gems( - gems: kettle_rb_local_gems_to_eval, - prefix: 'KETTLE_RB', - path_env: 'KETTLE_RB_DEV', + gems: kettle_dev_local_gems_to_eval, + prefix: 'KETTLE_DEV', + path_env: 'KETTLE_DEV_DEV', vendored_gems_env: 'VENDORED_GEMS', vendor_gem_dir_env: 'VENDOR_GEM_DIR', debug_env: 'KETTLE_DEV_DEBUG' diff --git a/gems/markly-merge/Gemfile b/gems/markly-merge/Gemfile index 6ba032869..b240665e2 100644 --- a/gems/markly-merge/Gemfile +++ b/gems/markly-merge/Gemfile @@ -414,7 +414,7 @@ eval_gemfile 'gemfiles/modular/templating.gemfile' if ENV.fetch('K_JEM_TEMPLATIN # Debugging eval_gemfile 'gemfiles/modular/debug.gemfile' -# Code Coverage (env-switched: KETTLE_RB_DEV=true for local paths) +# Code Coverage (env-switched: KETTLE_DEV_DEV=true for local paths) eval_gemfile 'gemfiles/modular/coverage.gemfile' # Linting diff --git a/gems/markly-merge/gemfiles/modular/coverage.gemfile b/gems/markly-merge/gemfiles/modular/coverage.gemfile index c0ab9c066..f96d50954 100644 --- a/gems/markly-merge/gemfiles/modular/coverage.gemfile +++ b/gems/markly-merge/gemfiles/modular/coverage.gemfile @@ -2,9 +2,9 @@ # We run code coverage on the latest version of Ruby only. -# Set KETTLE_RB_DEV=true for local development with path-based dependencies. +# Set KETTLE_DEV_DEV=true for local development with path-based dependencies. # When false (default / CI), remote released gems are used. -if ENV.fetch('KETTLE_RB_DEV', 'false').casecmp('false').zero? +if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? # Coverage (remote/released) platform :mri do gem 'kettle-soup-cover', '~> 1.0', '>= 1.1.3', require: false diff --git a/gems/markly-merge/gemfiles/modular/coverage_local.gemfile b/gems/markly-merge/gemfiles/modular/coverage_local.gemfile index f0dcf78b8..1d935f465 100644 --- a/gems/markly-merge/gemfiles/modular/coverage_local.gemfile +++ b/gems/markly-merge/gemfiles/modular/coverage_local.gemfile @@ -1,7 +1,7 @@ # frozen_string_literal: true # Local path overrides for development. -# Loaded by the associated non-local gemfile when KETTLE_RB_DEV != "false". +# Loaded by the associated non-local gemfile when KETTLE_DEV_DEV != "false". require 'nomono/bundler' unless defined?(Nomono) @@ -9,12 +9,12 @@ local_gems = %w[kettle-dev kettle-test kettle-soup-cover kettle-drift] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) local_gems_to_eval = local_gems - %w[markly-merge] - declared_gems -# export KETTLE_RB_DEV=/path/to/kettle-rb +# export KETTLE_DEV_DEV=/path/to/kettle-rb platform :mri do eval_nomono_gems( gems: local_gems_to_eval, - prefix: 'KETTLE_RB', - path_env: 'KETTLE_RB_DEV', + prefix: 'KETTLE_DEV', + path_env: 'KETTLE_DEV_DEV', vendored_gems_env: 'VENDORED_GEMS', vendor_gem_dir_env: 'VENDOR_GEM_DIR', debug_env: 'KETTLE_DEV_DEBUG' diff --git a/gems/markly-merge/gemfiles/modular/templating.gemfile b/gems/markly-merge/gemfiles/modular/templating.gemfile index e3c24e6b7..1ee2a5ea7 100644 --- a/gems/markly-merge/gemfiles/modular/templating.gemfile +++ b/gems/markly-merge/gemfiles/modular/templating.gemfile @@ -1,7 +1,7 @@ # frozen_string_literal: true structuredmerge_remote = ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false').zero? -kettle_remote = ENV.fetch('KETTLE_RB_DEV', 'false').casecmp('false').zero? +kettle_remote = ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? if structuredmerge_remote # Merge recipes and parser dependencies for released installs. @@ -17,6 +17,6 @@ end # When false (default / CI), released kettle-jem brings merge gems and parser dependencies. # Local path overrides bring the same dependencies from sibling gemspecs. # -# Set KETTLE_RB_DEV=/path/to/kettle-rb for local development with Kettle plugin gems. +# Set KETTLE_DEV_DEV=/path/to/kettle-rb for local development with Kettle plugin gems. # When false (default / CI), released Kettle plugin gems are used. eval_gemfile 'templating_local.gemfile' unless structuredmerge_remote && kettle_remote diff --git a/gems/markly-merge/gemfiles/modular/templating_local.gemfile b/gems/markly-merge/gemfiles/modular/templating_local.gemfile index 3203bff98..43dd59a34 100644 --- a/gems/markly-merge/gemfiles/modular/templating_local.gemfile +++ b/gems/markly-merge/gemfiles/modular/templating_local.gemfile @@ -1,7 +1,7 @@ # frozen_string_literal: true # Local path overrides for templating development. -# Loaded by the associated non-local gemfile when STRUCTUREDMERGE_DEV or KETTLE_RB_DEV +# Loaded by the associated non-local gemfile when STRUCTUREDMERGE_DEV or KETTLE_DEV_DEV # is not "false". require 'nomono/bundler' unless defined?(Nomono) @@ -39,12 +39,12 @@ structuredmerge_local_gems = %w[ ast-crispr-ruby-prism ] -kettle_rb_local_gems = %w[ +kettle_dev_local_gems = %w[ kettle-dev kettle-test kettle-soup-cover kettle-drift ] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) structuredmerge_local_gems_to_eval = structuredmerge_local_gems - %w[markly-merge] - declared_gems -kettle_rb_local_gems_to_eval = kettle_rb_local_gems - %w[markly-merge] - declared_gems +kettle_dev_local_gems_to_eval = kettle_dev_local_gems - %w[markly-merge] - declared_gems tslp_dev = ENV.fetch('TSLP_DEV', nil) if tslp_dev.to_s.empty? && ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false') != 0 @@ -68,11 +68,11 @@ platform :mri do ) end - if ENV.fetch('KETTLE_RB_DEV', 'false').casecmp('false') != 0 + if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false') != 0 eval_nomono_gems( - gems: kettle_rb_local_gems_to_eval, - prefix: 'KETTLE_RB', - path_env: 'KETTLE_RB_DEV', + gems: kettle_dev_local_gems_to_eval, + prefix: 'KETTLE_DEV', + path_env: 'KETTLE_DEV_DEV', vendored_gems_env: 'VENDORED_GEMS', vendor_gem_dir_env: 'VENDOR_GEM_DIR', debug_env: 'KETTLE_DEV_DEBUG' diff --git a/gems/parslet-toml-merge/Gemfile b/gems/parslet-toml-merge/Gemfile index 1a6be3792..346fed483 100644 --- a/gems/parslet-toml-merge/Gemfile +++ b/gems/parslet-toml-merge/Gemfile @@ -414,7 +414,7 @@ eval_gemfile 'gemfiles/modular/templating.gemfile' if ENV.fetch('K_JEM_TEMPLATIN # Debugging eval_gemfile 'gemfiles/modular/debug.gemfile' -# Code Coverage (env-switched: KETTLE_RB_DEV=true for local paths) +# Code Coverage (env-switched: KETTLE_DEV_DEV=true for local paths) eval_gemfile 'gemfiles/modular/coverage.gemfile' # Linting diff --git a/gems/parslet-toml-merge/gemfiles/modular/coverage.gemfile b/gems/parslet-toml-merge/gemfiles/modular/coverage.gemfile index c0ab9c066..f96d50954 100644 --- a/gems/parslet-toml-merge/gemfiles/modular/coverage.gemfile +++ b/gems/parslet-toml-merge/gemfiles/modular/coverage.gemfile @@ -2,9 +2,9 @@ # We run code coverage on the latest version of Ruby only. -# Set KETTLE_RB_DEV=true for local development with path-based dependencies. +# Set KETTLE_DEV_DEV=true for local development with path-based dependencies. # When false (default / CI), remote released gems are used. -if ENV.fetch('KETTLE_RB_DEV', 'false').casecmp('false').zero? +if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? # Coverage (remote/released) platform :mri do gem 'kettle-soup-cover', '~> 1.0', '>= 1.1.3', require: false diff --git a/gems/parslet-toml-merge/gemfiles/modular/coverage_local.gemfile b/gems/parslet-toml-merge/gemfiles/modular/coverage_local.gemfile index 4f8322851..946959153 100644 --- a/gems/parslet-toml-merge/gemfiles/modular/coverage_local.gemfile +++ b/gems/parslet-toml-merge/gemfiles/modular/coverage_local.gemfile @@ -1,7 +1,7 @@ # frozen_string_literal: true # Local path overrides for development. -# Loaded by the associated non-local gemfile when KETTLE_RB_DEV != "false". +# Loaded by the associated non-local gemfile when KETTLE_DEV_DEV != "false". require 'nomono/bundler' unless defined?(Nomono) @@ -9,12 +9,12 @@ local_gems = %w[kettle-dev kettle-test kettle-soup-cover kettle-drift] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) local_gems_to_eval = local_gems - %w[parslet-toml-merge] - declared_gems -# export KETTLE_RB_DEV=/path/to/kettle-rb +# export KETTLE_DEV_DEV=/path/to/kettle-rb platform :mri do eval_nomono_gems( gems: local_gems_to_eval, - prefix: 'KETTLE_RB', - path_env: 'KETTLE_RB_DEV', + prefix: 'KETTLE_DEV', + path_env: 'KETTLE_DEV_DEV', vendored_gems_env: 'VENDORED_GEMS', vendor_gem_dir_env: 'VENDOR_GEM_DIR', debug_env: 'KETTLE_DEV_DEBUG' diff --git a/gems/parslet-toml-merge/gemfiles/modular/templating.gemfile b/gems/parslet-toml-merge/gemfiles/modular/templating.gemfile index e3c24e6b7..1ee2a5ea7 100644 --- a/gems/parslet-toml-merge/gemfiles/modular/templating.gemfile +++ b/gems/parslet-toml-merge/gemfiles/modular/templating.gemfile @@ -1,7 +1,7 @@ # frozen_string_literal: true structuredmerge_remote = ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false').zero? -kettle_remote = ENV.fetch('KETTLE_RB_DEV', 'false').casecmp('false').zero? +kettle_remote = ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? if structuredmerge_remote # Merge recipes and parser dependencies for released installs. @@ -17,6 +17,6 @@ end # When false (default / CI), released kettle-jem brings merge gems and parser dependencies. # Local path overrides bring the same dependencies from sibling gemspecs. # -# Set KETTLE_RB_DEV=/path/to/kettle-rb for local development with Kettle plugin gems. +# Set KETTLE_DEV_DEV=/path/to/kettle-rb for local development with Kettle plugin gems. # When false (default / CI), released Kettle plugin gems are used. eval_gemfile 'templating_local.gemfile' unless structuredmerge_remote && kettle_remote diff --git a/gems/parslet-toml-merge/gemfiles/modular/templating_local.gemfile b/gems/parslet-toml-merge/gemfiles/modular/templating_local.gemfile index d8b968fe7..293b47c32 100644 --- a/gems/parslet-toml-merge/gemfiles/modular/templating_local.gemfile +++ b/gems/parslet-toml-merge/gemfiles/modular/templating_local.gemfile @@ -1,7 +1,7 @@ # frozen_string_literal: true # Local path overrides for templating development. -# Loaded by the associated non-local gemfile when STRUCTUREDMERGE_DEV or KETTLE_RB_DEV +# Loaded by the associated non-local gemfile when STRUCTUREDMERGE_DEV or KETTLE_DEV_DEV # is not "false". require 'nomono/bundler' unless defined?(Nomono) @@ -39,12 +39,12 @@ structuredmerge_local_gems = %w[ ast-crispr-ruby-prism ] -kettle_rb_local_gems = %w[ +kettle_dev_local_gems = %w[ kettle-dev kettle-test kettle-soup-cover kettle-drift ] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) structuredmerge_local_gems_to_eval = structuredmerge_local_gems - %w[parslet-toml-merge] - declared_gems -kettle_rb_local_gems_to_eval = kettle_rb_local_gems - %w[parslet-toml-merge] - declared_gems +kettle_dev_local_gems_to_eval = kettle_dev_local_gems - %w[parslet-toml-merge] - declared_gems tslp_dev = ENV.fetch('TSLP_DEV', nil) if tslp_dev.to_s.empty? && ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false') != 0 @@ -68,11 +68,11 @@ platform :mri do ) end - if ENV.fetch('KETTLE_RB_DEV', 'false').casecmp('false') != 0 + if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false') != 0 eval_nomono_gems( - gems: kettle_rb_local_gems_to_eval, - prefix: 'KETTLE_RB', - path_env: 'KETTLE_RB_DEV', + gems: kettle_dev_local_gems_to_eval, + prefix: 'KETTLE_DEV', + path_env: 'KETTLE_DEV_DEV', vendored_gems_env: 'VENDORED_GEMS', vendor_gem_dir_env: 'VENDOR_GEM_DIR', debug_env: 'KETTLE_DEV_DEBUG' diff --git a/gems/plain-merge/Gemfile b/gems/plain-merge/Gemfile index b8cfb745a..b4147f9c2 100644 --- a/gems/plain-merge/Gemfile +++ b/gems/plain-merge/Gemfile @@ -455,7 +455,7 @@ eval_gemfile 'gemfiles/modular/templating.gemfile' if ENV.fetch('K_JEM_TEMPLATIN # Debugging eval_gemfile 'gemfiles/modular/debug.gemfile' -# Code Coverage (env-switched: KETTLE_RB_DEV=true for local paths) +# Code Coverage (env-switched: KETTLE_DEV_DEV=true for local paths) eval_gemfile 'gemfiles/modular/coverage.gemfile' # Linting diff --git a/gems/plain-merge/gemfiles/modular/coverage.gemfile b/gems/plain-merge/gemfiles/modular/coverage.gemfile index c0ab9c066..f96d50954 100644 --- a/gems/plain-merge/gemfiles/modular/coverage.gemfile +++ b/gems/plain-merge/gemfiles/modular/coverage.gemfile @@ -2,9 +2,9 @@ # We run code coverage on the latest version of Ruby only. -# Set KETTLE_RB_DEV=true for local development with path-based dependencies. +# Set KETTLE_DEV_DEV=true for local development with path-based dependencies. # When false (default / CI), remote released gems are used. -if ENV.fetch('KETTLE_RB_DEV', 'false').casecmp('false').zero? +if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? # Coverage (remote/released) platform :mri do gem 'kettle-soup-cover', '~> 1.0', '>= 1.1.3', require: false diff --git a/gems/plain-merge/gemfiles/modular/coverage_local.gemfile b/gems/plain-merge/gemfiles/modular/coverage_local.gemfile index 932b131b3..f7cb16530 100644 --- a/gems/plain-merge/gemfiles/modular/coverage_local.gemfile +++ b/gems/plain-merge/gemfiles/modular/coverage_local.gemfile @@ -1,7 +1,7 @@ # frozen_string_literal: true # Local path overrides for development. -# Loaded by the associated non-local gemfile when KETTLE_RB_DEV != "false". +# Loaded by the associated non-local gemfile when KETTLE_DEV_DEV != "false". require 'nomono/bundler' unless defined?(Nomono) @@ -9,12 +9,12 @@ local_gems = %w[kettle-dev kettle-test kettle-soup-cover kettle-drift] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) local_gems_to_eval = local_gems - %w[plain-merge] - declared_gems -# export KETTLE_RB_DEV=/path/to/kettle-rb +# export KETTLE_DEV_DEV=/path/to/kettle-rb platform :mri do eval_nomono_gems( gems: local_gems_to_eval, - prefix: 'KETTLE_RB', - path_env: 'KETTLE_RB_DEV', + prefix: 'KETTLE_DEV', + path_env: 'KETTLE_DEV_DEV', vendored_gems_env: 'VENDORED_GEMS', vendor_gem_dir_env: 'VENDOR_GEM_DIR', debug_env: 'KETTLE_DEV_DEBUG' diff --git a/gems/plain-merge/gemfiles/modular/templating.gemfile b/gems/plain-merge/gemfiles/modular/templating.gemfile index e3c24e6b7..1ee2a5ea7 100644 --- a/gems/plain-merge/gemfiles/modular/templating.gemfile +++ b/gems/plain-merge/gemfiles/modular/templating.gemfile @@ -1,7 +1,7 @@ # frozen_string_literal: true structuredmerge_remote = ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false').zero? -kettle_remote = ENV.fetch('KETTLE_RB_DEV', 'false').casecmp('false').zero? +kettle_remote = ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? if structuredmerge_remote # Merge recipes and parser dependencies for released installs. @@ -17,6 +17,6 @@ end # When false (default / CI), released kettle-jem brings merge gems and parser dependencies. # Local path overrides bring the same dependencies from sibling gemspecs. # -# Set KETTLE_RB_DEV=/path/to/kettle-rb for local development with Kettle plugin gems. +# Set KETTLE_DEV_DEV=/path/to/kettle-rb for local development with Kettle plugin gems. # When false (default / CI), released Kettle plugin gems are used. eval_gemfile 'templating_local.gemfile' unless structuredmerge_remote && kettle_remote diff --git a/gems/plain-merge/gemfiles/modular/templating_local.gemfile b/gems/plain-merge/gemfiles/modular/templating_local.gemfile index 194d518ef..7a0dbe477 100644 --- a/gems/plain-merge/gemfiles/modular/templating_local.gemfile +++ b/gems/plain-merge/gemfiles/modular/templating_local.gemfile @@ -1,7 +1,7 @@ # frozen_string_literal: true # Local path overrides for templating development. -# Loaded by the associated non-local gemfile when STRUCTUREDMERGE_DEV or KETTLE_RB_DEV +# Loaded by the associated non-local gemfile when STRUCTUREDMERGE_DEV or KETTLE_DEV_DEV # is not "false". require 'nomono/bundler' unless defined?(Nomono) @@ -39,12 +39,12 @@ structuredmerge_local_gems = %w[ ast-crispr-ruby-prism ] -kettle_rb_local_gems = %w[ +kettle_dev_local_gems = %w[ kettle-dev kettle-test kettle-soup-cover kettle-drift ] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) structuredmerge_local_gems_to_eval = structuredmerge_local_gems - %w[plain-merge] - declared_gems -kettle_rb_local_gems_to_eval = kettle_rb_local_gems - %w[plain-merge] - declared_gems +kettle_dev_local_gems_to_eval = kettle_dev_local_gems - %w[plain-merge] - declared_gems tslp_dev = ENV.fetch('TSLP_DEV', nil) if tslp_dev.to_s.empty? && ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false') != 0 @@ -68,11 +68,11 @@ platform :mri do ) end - if ENV.fetch('KETTLE_RB_DEV', 'false').casecmp('false') != 0 + if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false') != 0 eval_nomono_gems( - gems: kettle_rb_local_gems_to_eval, - prefix: 'KETTLE_RB', - path_env: 'KETTLE_RB_DEV', + gems: kettle_dev_local_gems_to_eval, + prefix: 'KETTLE_DEV', + path_env: 'KETTLE_DEV_DEV', vendored_gems_env: 'VENDORED_GEMS', vendor_gem_dir_env: 'VENDOR_GEM_DIR', debug_env: 'KETTLE_DEV_DEBUG' diff --git a/gems/prism-merge/Gemfile b/gems/prism-merge/Gemfile index 3e237a9cc..ca38db79e 100644 --- a/gems/prism-merge/Gemfile +++ b/gems/prism-merge/Gemfile @@ -414,7 +414,7 @@ eval_gemfile 'gemfiles/modular/templating.gemfile' if ENV.fetch('K_JEM_TEMPLATIN # Debugging eval_gemfile 'gemfiles/modular/debug.gemfile' -# Code Coverage (env-switched: KETTLE_RB_DEV=true for local paths) +# Code Coverage (env-switched: KETTLE_DEV_DEV=true for local paths) eval_gemfile 'gemfiles/modular/coverage.gemfile' # Linting diff --git a/gems/prism-merge/gemfiles/modular/coverage.gemfile b/gems/prism-merge/gemfiles/modular/coverage.gemfile index c0ab9c066..f96d50954 100644 --- a/gems/prism-merge/gemfiles/modular/coverage.gemfile +++ b/gems/prism-merge/gemfiles/modular/coverage.gemfile @@ -2,9 +2,9 @@ # We run code coverage on the latest version of Ruby only. -# Set KETTLE_RB_DEV=true for local development with path-based dependencies. +# Set KETTLE_DEV_DEV=true for local development with path-based dependencies. # When false (default / CI), remote released gems are used. -if ENV.fetch('KETTLE_RB_DEV', 'false').casecmp('false').zero? +if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? # Coverage (remote/released) platform :mri do gem 'kettle-soup-cover', '~> 1.0', '>= 1.1.3', require: false diff --git a/gems/prism-merge/gemfiles/modular/coverage_local.gemfile b/gems/prism-merge/gemfiles/modular/coverage_local.gemfile index 9263ef215..520a2d791 100644 --- a/gems/prism-merge/gemfiles/modular/coverage_local.gemfile +++ b/gems/prism-merge/gemfiles/modular/coverage_local.gemfile @@ -1,7 +1,7 @@ # frozen_string_literal: true # Local path overrides for development. -# Loaded by the associated non-local gemfile when KETTLE_RB_DEV != "false". +# Loaded by the associated non-local gemfile when KETTLE_DEV_DEV != "false". require 'nomono/bundler' unless defined?(Nomono) @@ -9,12 +9,12 @@ local_gems = %w[kettle-dev kettle-test kettle-soup-cover kettle-drift] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) local_gems_to_eval = local_gems - %w[prism-merge] - declared_gems -# export KETTLE_RB_DEV=/path/to/kettle-rb +# export KETTLE_DEV_DEV=/path/to/kettle-rb platform :mri do eval_nomono_gems( gems: local_gems_to_eval, - prefix: 'KETTLE_RB', - path_env: 'KETTLE_RB_DEV', + prefix: 'KETTLE_DEV', + path_env: 'KETTLE_DEV_DEV', vendored_gems_env: 'VENDORED_GEMS', vendor_gem_dir_env: 'VENDOR_GEM_DIR', debug_env: 'KETTLE_DEV_DEBUG' diff --git a/gems/prism-merge/gemfiles/modular/templating.gemfile b/gems/prism-merge/gemfiles/modular/templating.gemfile index e3c24e6b7..1ee2a5ea7 100644 --- a/gems/prism-merge/gemfiles/modular/templating.gemfile +++ b/gems/prism-merge/gemfiles/modular/templating.gemfile @@ -1,7 +1,7 @@ # frozen_string_literal: true structuredmerge_remote = ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false').zero? -kettle_remote = ENV.fetch('KETTLE_RB_DEV', 'false').casecmp('false').zero? +kettle_remote = ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? if structuredmerge_remote # Merge recipes and parser dependencies for released installs. @@ -17,6 +17,6 @@ end # When false (default / CI), released kettle-jem brings merge gems and parser dependencies. # Local path overrides bring the same dependencies from sibling gemspecs. # -# Set KETTLE_RB_DEV=/path/to/kettle-rb for local development with Kettle plugin gems. +# Set KETTLE_DEV_DEV=/path/to/kettle-rb for local development with Kettle plugin gems. # When false (default / CI), released Kettle plugin gems are used. eval_gemfile 'templating_local.gemfile' unless structuredmerge_remote && kettle_remote diff --git a/gems/prism-merge/gemfiles/modular/templating_local.gemfile b/gems/prism-merge/gemfiles/modular/templating_local.gemfile index 2af497975..26b657ed7 100644 --- a/gems/prism-merge/gemfiles/modular/templating_local.gemfile +++ b/gems/prism-merge/gemfiles/modular/templating_local.gemfile @@ -1,7 +1,7 @@ # frozen_string_literal: true # Local path overrides for templating development. -# Loaded by the associated non-local gemfile when STRUCTUREDMERGE_DEV or KETTLE_RB_DEV +# Loaded by the associated non-local gemfile when STRUCTUREDMERGE_DEV or KETTLE_DEV_DEV # is not "false". require 'nomono/bundler' unless defined?(Nomono) @@ -39,12 +39,12 @@ structuredmerge_local_gems = %w[ ast-crispr-ruby-prism ] -kettle_rb_local_gems = %w[ +kettle_dev_local_gems = %w[ kettle-dev kettle-test kettle-soup-cover kettle-drift ] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) structuredmerge_local_gems_to_eval = structuredmerge_local_gems - %w[prism-merge] - declared_gems -kettle_rb_local_gems_to_eval = kettle_rb_local_gems - %w[prism-merge] - declared_gems +kettle_dev_local_gems_to_eval = kettle_dev_local_gems - %w[prism-merge] - declared_gems tslp_dev = ENV.fetch('TSLP_DEV', nil) if tslp_dev.to_s.empty? && ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false') != 0 @@ -68,11 +68,11 @@ platform :mri do ) end - if ENV.fetch('KETTLE_RB_DEV', 'false').casecmp('false') != 0 + if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false') != 0 eval_nomono_gems( - gems: kettle_rb_local_gems_to_eval, - prefix: 'KETTLE_RB', - path_env: 'KETTLE_RB_DEV', + gems: kettle_dev_local_gems_to_eval, + prefix: 'KETTLE_DEV', + path_env: 'KETTLE_DEV_DEV', vendored_gems_env: 'VENDORED_GEMS', vendor_gem_dir_env: 'VENDOR_GEM_DIR', debug_env: 'KETTLE_DEV_DEBUG' diff --git a/gems/psych-merge/Gemfile b/gems/psych-merge/Gemfile index b283d8915..cca9adad8 100644 --- a/gems/psych-merge/Gemfile +++ b/gems/psych-merge/Gemfile @@ -456,7 +456,7 @@ eval_gemfile 'gemfiles/modular/templating.gemfile' if ENV.fetch('K_JEM_TEMPLATIN # Debugging eval_gemfile 'gemfiles/modular/debug.gemfile' -# Code Coverage (env-switched: KETTLE_RB_DEV=true for local paths) +# Code Coverage (env-switched: KETTLE_DEV_DEV=true for local paths) eval_gemfile 'gemfiles/modular/coverage.gemfile' # Linting diff --git a/gems/psych-merge/gemfiles/modular/coverage.gemfile b/gems/psych-merge/gemfiles/modular/coverage.gemfile index c0ab9c066..f96d50954 100644 --- a/gems/psych-merge/gemfiles/modular/coverage.gemfile +++ b/gems/psych-merge/gemfiles/modular/coverage.gemfile @@ -2,9 +2,9 @@ # We run code coverage on the latest version of Ruby only. -# Set KETTLE_RB_DEV=true for local development with path-based dependencies. +# Set KETTLE_DEV_DEV=true for local development with path-based dependencies. # When false (default / CI), remote released gems are used. -if ENV.fetch('KETTLE_RB_DEV', 'false').casecmp('false').zero? +if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? # Coverage (remote/released) platform :mri do gem 'kettle-soup-cover', '~> 1.0', '>= 1.1.3', require: false diff --git a/gems/psych-merge/gemfiles/modular/coverage_local.gemfile b/gems/psych-merge/gemfiles/modular/coverage_local.gemfile index f975ccd06..9b052abb5 100644 --- a/gems/psych-merge/gemfiles/modular/coverage_local.gemfile +++ b/gems/psych-merge/gemfiles/modular/coverage_local.gemfile @@ -1,7 +1,7 @@ # frozen_string_literal: true # Local path overrides for development. -# Loaded by the associated non-local gemfile when KETTLE_RB_DEV != "false". +# Loaded by the associated non-local gemfile when KETTLE_DEV_DEV != "false". require 'nomono/bundler' unless defined?(Nomono) @@ -9,12 +9,12 @@ local_gems = %w[kettle-dev kettle-test kettle-soup-cover kettle-drift] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) local_gems_to_eval = local_gems - %w[psych-merge] - declared_gems -# export KETTLE_RB_DEV=/path/to/kettle-rb +# export KETTLE_DEV_DEV=/path/to/kettle-rb platform :mri do eval_nomono_gems( gems: local_gems_to_eval, - prefix: 'KETTLE_RB', - path_env: 'KETTLE_RB_DEV', + prefix: 'KETTLE_DEV', + path_env: 'KETTLE_DEV_DEV', vendored_gems_env: 'VENDORED_GEMS', vendor_gem_dir_env: 'VENDOR_GEM_DIR', debug_env: 'KETTLE_DEV_DEBUG' diff --git a/gems/psych-merge/gemfiles/modular/templating.gemfile b/gems/psych-merge/gemfiles/modular/templating.gemfile index e3c24e6b7..1ee2a5ea7 100644 --- a/gems/psych-merge/gemfiles/modular/templating.gemfile +++ b/gems/psych-merge/gemfiles/modular/templating.gemfile @@ -1,7 +1,7 @@ # frozen_string_literal: true structuredmerge_remote = ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false').zero? -kettle_remote = ENV.fetch('KETTLE_RB_DEV', 'false').casecmp('false').zero? +kettle_remote = ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? if structuredmerge_remote # Merge recipes and parser dependencies for released installs. @@ -17,6 +17,6 @@ end # When false (default / CI), released kettle-jem brings merge gems and parser dependencies. # Local path overrides bring the same dependencies from sibling gemspecs. # -# Set KETTLE_RB_DEV=/path/to/kettle-rb for local development with Kettle plugin gems. +# Set KETTLE_DEV_DEV=/path/to/kettle-rb for local development with Kettle plugin gems. # When false (default / CI), released Kettle plugin gems are used. eval_gemfile 'templating_local.gemfile' unless structuredmerge_remote && kettle_remote diff --git a/gems/psych-merge/gemfiles/modular/templating_local.gemfile b/gems/psych-merge/gemfiles/modular/templating_local.gemfile index 9f737319e..755b5d50e 100644 --- a/gems/psych-merge/gemfiles/modular/templating_local.gemfile +++ b/gems/psych-merge/gemfiles/modular/templating_local.gemfile @@ -1,7 +1,7 @@ # frozen_string_literal: true # Local path overrides for templating development. -# Loaded by the associated non-local gemfile when STRUCTUREDMERGE_DEV or KETTLE_RB_DEV +# Loaded by the associated non-local gemfile when STRUCTUREDMERGE_DEV or KETTLE_DEV_DEV # is not "false". require 'nomono/bundler' unless defined?(Nomono) @@ -39,12 +39,12 @@ structuredmerge_local_gems = %w[ ast-crispr-ruby-prism ] -kettle_rb_local_gems = %w[ +kettle_dev_local_gems = %w[ kettle-dev kettle-test kettle-soup-cover kettle-drift ] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) structuredmerge_local_gems_to_eval = structuredmerge_local_gems - %w[psych-merge] - declared_gems -kettle_rb_local_gems_to_eval = kettle_rb_local_gems - %w[psych-merge] - declared_gems +kettle_dev_local_gems_to_eval = kettle_dev_local_gems - %w[psych-merge] - declared_gems tslp_dev = ENV.fetch('TSLP_DEV', nil) if tslp_dev.to_s.empty? && ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false') != 0 @@ -68,11 +68,11 @@ platform :mri do ) end - if ENV.fetch('KETTLE_RB_DEV', 'false').casecmp('false') != 0 + if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false') != 0 eval_nomono_gems( - gems: kettle_rb_local_gems_to_eval, - prefix: 'KETTLE_RB', - path_env: 'KETTLE_RB_DEV', + gems: kettle_dev_local_gems_to_eval, + prefix: 'KETTLE_DEV', + path_env: 'KETTLE_DEV_DEV', vendored_gems_env: 'VENDORED_GEMS', vendor_gem_dir_env: 'VENDOR_GEM_DIR', debug_env: 'KETTLE_DEV_DEBUG' diff --git a/gems/rbs-merge/Gemfile b/gems/rbs-merge/Gemfile index ca3957a12..a74959dae 100644 --- a/gems/rbs-merge/Gemfile +++ b/gems/rbs-merge/Gemfile @@ -415,7 +415,7 @@ eval_gemfile 'gemfiles/modular/templating.gemfile' if ENV.fetch('K_JEM_TEMPLATIN # Debugging eval_gemfile 'gemfiles/modular/debug.gemfile' -# Code Coverage (env-switched: KETTLE_RB_DEV=true for local paths) +# Code Coverage (env-switched: KETTLE_DEV_DEV=true for local paths) eval_gemfile 'gemfiles/modular/coverage.gemfile' # Linting diff --git a/gems/rbs-merge/gemfiles/modular/coverage.gemfile b/gems/rbs-merge/gemfiles/modular/coverage.gemfile index c0ab9c066..f96d50954 100644 --- a/gems/rbs-merge/gemfiles/modular/coverage.gemfile +++ b/gems/rbs-merge/gemfiles/modular/coverage.gemfile @@ -2,9 +2,9 @@ # We run code coverage on the latest version of Ruby only. -# Set KETTLE_RB_DEV=true for local development with path-based dependencies. +# Set KETTLE_DEV_DEV=true for local development with path-based dependencies. # When false (default / CI), remote released gems are used. -if ENV.fetch('KETTLE_RB_DEV', 'false').casecmp('false').zero? +if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? # Coverage (remote/released) platform :mri do gem 'kettle-soup-cover', '~> 1.0', '>= 1.1.3', require: false diff --git a/gems/rbs-merge/gemfiles/modular/coverage_local.gemfile b/gems/rbs-merge/gemfiles/modular/coverage_local.gemfile index b7626a876..4f675c3df 100644 --- a/gems/rbs-merge/gemfiles/modular/coverage_local.gemfile +++ b/gems/rbs-merge/gemfiles/modular/coverage_local.gemfile @@ -1,7 +1,7 @@ # frozen_string_literal: true # Local path overrides for development. -# Loaded by the associated non-local gemfile when KETTLE_RB_DEV != "false". +# Loaded by the associated non-local gemfile when KETTLE_DEV_DEV != "false". require 'nomono/bundler' unless defined?(Nomono) @@ -9,12 +9,12 @@ local_gems = %w[kettle-dev kettle-test kettle-soup-cover kettle-drift] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) local_gems_to_eval = local_gems - %w[rbs-merge] - declared_gems -# export KETTLE_RB_DEV=/path/to/kettle-rb +# export KETTLE_DEV_DEV=/path/to/kettle-rb platform :mri do eval_nomono_gems( gems: local_gems_to_eval, - prefix: 'KETTLE_RB', - path_env: 'KETTLE_RB_DEV', + prefix: 'KETTLE_DEV', + path_env: 'KETTLE_DEV_DEV', vendored_gems_env: 'VENDORED_GEMS', vendor_gem_dir_env: 'VENDOR_GEM_DIR', debug_env: 'KETTLE_DEV_DEBUG' diff --git a/gems/rbs-merge/gemfiles/modular/templating.gemfile b/gems/rbs-merge/gemfiles/modular/templating.gemfile index e3c24e6b7..1ee2a5ea7 100644 --- a/gems/rbs-merge/gemfiles/modular/templating.gemfile +++ b/gems/rbs-merge/gemfiles/modular/templating.gemfile @@ -1,7 +1,7 @@ # frozen_string_literal: true structuredmerge_remote = ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false').zero? -kettle_remote = ENV.fetch('KETTLE_RB_DEV', 'false').casecmp('false').zero? +kettle_remote = ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? if structuredmerge_remote # Merge recipes and parser dependencies for released installs. @@ -17,6 +17,6 @@ end # When false (default / CI), released kettle-jem brings merge gems and parser dependencies. # Local path overrides bring the same dependencies from sibling gemspecs. # -# Set KETTLE_RB_DEV=/path/to/kettle-rb for local development with Kettle plugin gems. +# Set KETTLE_DEV_DEV=/path/to/kettle-rb for local development with Kettle plugin gems. # When false (default / CI), released Kettle plugin gems are used. eval_gemfile 'templating_local.gemfile' unless structuredmerge_remote && kettle_remote diff --git a/gems/rbs-merge/gemfiles/modular/templating_local.gemfile b/gems/rbs-merge/gemfiles/modular/templating_local.gemfile index 874bb9827..e7543e5fe 100644 --- a/gems/rbs-merge/gemfiles/modular/templating_local.gemfile +++ b/gems/rbs-merge/gemfiles/modular/templating_local.gemfile @@ -1,7 +1,7 @@ # frozen_string_literal: true # Local path overrides for templating development. -# Loaded by the associated non-local gemfile when STRUCTUREDMERGE_DEV or KETTLE_RB_DEV +# Loaded by the associated non-local gemfile when STRUCTUREDMERGE_DEV or KETTLE_DEV_DEV # is not "false". require 'nomono/bundler' unless defined?(Nomono) @@ -39,12 +39,12 @@ structuredmerge_local_gems = %w[ ast-crispr-ruby-prism ] -kettle_rb_local_gems = %w[ +kettle_dev_local_gems = %w[ kettle-dev kettle-test kettle-soup-cover kettle-drift ] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) structuredmerge_local_gems_to_eval = structuredmerge_local_gems - %w[rbs-merge] - declared_gems -kettle_rb_local_gems_to_eval = kettle_rb_local_gems - %w[rbs-merge] - declared_gems +kettle_dev_local_gems_to_eval = kettle_dev_local_gems - %w[rbs-merge] - declared_gems tslp_dev = ENV.fetch('TSLP_DEV', nil) if tslp_dev.to_s.empty? && ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false') != 0 @@ -68,11 +68,11 @@ platform :mri do ) end - if ENV.fetch('KETTLE_RB_DEV', 'false').casecmp('false') != 0 + if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false') != 0 eval_nomono_gems( - gems: kettle_rb_local_gems_to_eval, - prefix: 'KETTLE_RB', - path_env: 'KETTLE_RB_DEV', + gems: kettle_dev_local_gems_to_eval, + prefix: 'KETTLE_DEV', + path_env: 'KETTLE_DEV_DEV', vendored_gems_env: 'VENDORED_GEMS', vendor_gem_dir_env: 'VENDOR_GEM_DIR', debug_env: 'KETTLE_DEV_DEBUG' diff --git a/gems/ruby-merge/Gemfile b/gems/ruby-merge/Gemfile index bad0e66be..9c7bbc97c 100644 --- a/gems/ruby-merge/Gemfile +++ b/gems/ruby-merge/Gemfile @@ -415,7 +415,7 @@ eval_gemfile 'gemfiles/modular/templating.gemfile' if ENV.fetch('K_JEM_TEMPLATIN # Debugging eval_gemfile 'gemfiles/modular/debug.gemfile' -# Code Coverage (env-switched: KETTLE_RB_DEV=true for local paths) +# Code Coverage (env-switched: KETTLE_DEV_DEV=true for local paths) eval_gemfile 'gemfiles/modular/coverage.gemfile' # Linting diff --git a/gems/ruby-merge/gemfiles/modular/coverage.gemfile b/gems/ruby-merge/gemfiles/modular/coverage.gemfile index c0ab9c066..f96d50954 100644 --- a/gems/ruby-merge/gemfiles/modular/coverage.gemfile +++ b/gems/ruby-merge/gemfiles/modular/coverage.gemfile @@ -2,9 +2,9 @@ # We run code coverage on the latest version of Ruby only. -# Set KETTLE_RB_DEV=true for local development with path-based dependencies. +# Set KETTLE_DEV_DEV=true for local development with path-based dependencies. # When false (default / CI), remote released gems are used. -if ENV.fetch('KETTLE_RB_DEV', 'false').casecmp('false').zero? +if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? # Coverage (remote/released) platform :mri do gem 'kettle-soup-cover', '~> 1.0', '>= 1.1.3', require: false diff --git a/gems/ruby-merge/gemfiles/modular/coverage_local.gemfile b/gems/ruby-merge/gemfiles/modular/coverage_local.gemfile index c86236b22..9a786632d 100644 --- a/gems/ruby-merge/gemfiles/modular/coverage_local.gemfile +++ b/gems/ruby-merge/gemfiles/modular/coverage_local.gemfile @@ -1,7 +1,7 @@ # frozen_string_literal: true # Local path overrides for development. -# Loaded by the associated non-local gemfile when KETTLE_RB_DEV != "false". +# Loaded by the associated non-local gemfile when KETTLE_DEV_DEV != "false". require 'nomono/bundler' unless defined?(Nomono) @@ -9,12 +9,12 @@ local_gems = %w[kettle-dev kettle-test kettle-soup-cover kettle-drift] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) local_gems_to_eval = local_gems - %w[ruby-merge] - declared_gems -# export KETTLE_RB_DEV=/path/to/kettle-rb +# export KETTLE_DEV_DEV=/path/to/kettle-rb platform :mri do eval_nomono_gems( gems: local_gems_to_eval, - prefix: 'KETTLE_RB', - path_env: 'KETTLE_RB_DEV', + prefix: 'KETTLE_DEV', + path_env: 'KETTLE_DEV_DEV', vendored_gems_env: 'VENDORED_GEMS', vendor_gem_dir_env: 'VENDOR_GEM_DIR', debug_env: 'KETTLE_DEV_DEBUG' diff --git a/gems/ruby-merge/gemfiles/modular/templating.gemfile b/gems/ruby-merge/gemfiles/modular/templating.gemfile index e3c24e6b7..1ee2a5ea7 100644 --- a/gems/ruby-merge/gemfiles/modular/templating.gemfile +++ b/gems/ruby-merge/gemfiles/modular/templating.gemfile @@ -1,7 +1,7 @@ # frozen_string_literal: true structuredmerge_remote = ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false').zero? -kettle_remote = ENV.fetch('KETTLE_RB_DEV', 'false').casecmp('false').zero? +kettle_remote = ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? if structuredmerge_remote # Merge recipes and parser dependencies for released installs. @@ -17,6 +17,6 @@ end # When false (default / CI), released kettle-jem brings merge gems and parser dependencies. # Local path overrides bring the same dependencies from sibling gemspecs. # -# Set KETTLE_RB_DEV=/path/to/kettle-rb for local development with Kettle plugin gems. +# Set KETTLE_DEV_DEV=/path/to/kettle-rb for local development with Kettle plugin gems. # When false (default / CI), released Kettle plugin gems are used. eval_gemfile 'templating_local.gemfile' unless structuredmerge_remote && kettle_remote diff --git a/gems/ruby-merge/gemfiles/modular/templating_local.gemfile b/gems/ruby-merge/gemfiles/modular/templating_local.gemfile index cffacbb73..89c2233fc 100644 --- a/gems/ruby-merge/gemfiles/modular/templating_local.gemfile +++ b/gems/ruby-merge/gemfiles/modular/templating_local.gemfile @@ -1,7 +1,7 @@ # frozen_string_literal: true # Local path overrides for templating development. -# Loaded by the associated non-local gemfile when STRUCTUREDMERGE_DEV or KETTLE_RB_DEV +# Loaded by the associated non-local gemfile when STRUCTUREDMERGE_DEV or KETTLE_DEV_DEV # is not "false". require 'nomono/bundler' unless defined?(Nomono) @@ -39,12 +39,12 @@ structuredmerge_local_gems = %w[ ast-crispr-ruby-prism ] -kettle_rb_local_gems = %w[ +kettle_dev_local_gems = %w[ kettle-dev kettle-test kettle-soup-cover kettle-drift ] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) structuredmerge_local_gems_to_eval = structuredmerge_local_gems - %w[ruby-merge] - declared_gems -kettle_rb_local_gems_to_eval = kettle_rb_local_gems - %w[ruby-merge] - declared_gems +kettle_dev_local_gems_to_eval = kettle_dev_local_gems - %w[ruby-merge] - declared_gems tslp_dev = ENV.fetch('TSLP_DEV', nil) if tslp_dev.to_s.empty? && ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false') != 0 @@ -68,11 +68,11 @@ platform :mri do ) end - if ENV.fetch('KETTLE_RB_DEV', 'false').casecmp('false') != 0 + if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false') != 0 eval_nomono_gems( - gems: kettle_rb_local_gems_to_eval, - prefix: 'KETTLE_RB', - path_env: 'KETTLE_RB_DEV', + gems: kettle_dev_local_gems_to_eval, + prefix: 'KETTLE_DEV', + path_env: 'KETTLE_DEV_DEV', vendored_gems_env: 'VENDORED_GEMS', vendor_gem_dir_env: 'VENDOR_GEM_DIR', debug_env: 'KETTLE_DEV_DEBUG' diff --git a/gems/rust-merge/Gemfile b/gems/rust-merge/Gemfile index e1d9f1d52..3080b8912 100644 --- a/gems/rust-merge/Gemfile +++ b/gems/rust-merge/Gemfile @@ -415,7 +415,7 @@ eval_gemfile 'gemfiles/modular/templating.gemfile' if ENV.fetch('K_JEM_TEMPLATIN # Debugging eval_gemfile 'gemfiles/modular/debug.gemfile' -# Code Coverage (env-switched: KETTLE_RB_DEV=true for local paths) +# Code Coverage (env-switched: KETTLE_DEV_DEV=true for local paths) eval_gemfile 'gemfiles/modular/coverage.gemfile' # Linting diff --git a/gems/rust-merge/gemfiles/modular/coverage.gemfile b/gems/rust-merge/gemfiles/modular/coverage.gemfile index c0ab9c066..f96d50954 100644 --- a/gems/rust-merge/gemfiles/modular/coverage.gemfile +++ b/gems/rust-merge/gemfiles/modular/coverage.gemfile @@ -2,9 +2,9 @@ # We run code coverage on the latest version of Ruby only. -# Set KETTLE_RB_DEV=true for local development with path-based dependencies. +# Set KETTLE_DEV_DEV=true for local development with path-based dependencies. # When false (default / CI), remote released gems are used. -if ENV.fetch('KETTLE_RB_DEV', 'false').casecmp('false').zero? +if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? # Coverage (remote/released) platform :mri do gem 'kettle-soup-cover', '~> 1.0', '>= 1.1.3', require: false diff --git a/gems/rust-merge/gemfiles/modular/coverage_local.gemfile b/gems/rust-merge/gemfiles/modular/coverage_local.gemfile index 63d887c07..636b23158 100644 --- a/gems/rust-merge/gemfiles/modular/coverage_local.gemfile +++ b/gems/rust-merge/gemfiles/modular/coverage_local.gemfile @@ -1,7 +1,7 @@ # frozen_string_literal: true # Local path overrides for development. -# Loaded by the associated non-local gemfile when KETTLE_RB_DEV != "false". +# Loaded by the associated non-local gemfile when KETTLE_DEV_DEV != "false". require 'nomono/bundler' unless defined?(Nomono) @@ -9,12 +9,12 @@ local_gems = %w[kettle-dev kettle-test kettle-soup-cover kettle-drift] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) local_gems_to_eval = local_gems - %w[rust-merge] - declared_gems -# export KETTLE_RB_DEV=/path/to/kettle-rb +# export KETTLE_DEV_DEV=/path/to/kettle-rb platform :mri do eval_nomono_gems( gems: local_gems_to_eval, - prefix: 'KETTLE_RB', - path_env: 'KETTLE_RB_DEV', + prefix: 'KETTLE_DEV', + path_env: 'KETTLE_DEV_DEV', vendored_gems_env: 'VENDORED_GEMS', vendor_gem_dir_env: 'VENDOR_GEM_DIR', debug_env: 'KETTLE_DEV_DEBUG' diff --git a/gems/rust-merge/gemfiles/modular/templating.gemfile b/gems/rust-merge/gemfiles/modular/templating.gemfile index e3c24e6b7..1ee2a5ea7 100644 --- a/gems/rust-merge/gemfiles/modular/templating.gemfile +++ b/gems/rust-merge/gemfiles/modular/templating.gemfile @@ -1,7 +1,7 @@ # frozen_string_literal: true structuredmerge_remote = ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false').zero? -kettle_remote = ENV.fetch('KETTLE_RB_DEV', 'false').casecmp('false').zero? +kettle_remote = ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? if structuredmerge_remote # Merge recipes and parser dependencies for released installs. @@ -17,6 +17,6 @@ end # When false (default / CI), released kettle-jem brings merge gems and parser dependencies. # Local path overrides bring the same dependencies from sibling gemspecs. # -# Set KETTLE_RB_DEV=/path/to/kettle-rb for local development with Kettle plugin gems. +# Set KETTLE_DEV_DEV=/path/to/kettle-rb for local development with Kettle plugin gems. # When false (default / CI), released Kettle plugin gems are used. eval_gemfile 'templating_local.gemfile' unless structuredmerge_remote && kettle_remote diff --git a/gems/rust-merge/gemfiles/modular/templating_local.gemfile b/gems/rust-merge/gemfiles/modular/templating_local.gemfile index 835b113f5..c24c41902 100644 --- a/gems/rust-merge/gemfiles/modular/templating_local.gemfile +++ b/gems/rust-merge/gemfiles/modular/templating_local.gemfile @@ -1,7 +1,7 @@ # frozen_string_literal: true # Local path overrides for templating development. -# Loaded by the associated non-local gemfile when STRUCTUREDMERGE_DEV or KETTLE_RB_DEV +# Loaded by the associated non-local gemfile when STRUCTUREDMERGE_DEV or KETTLE_DEV_DEV # is not "false". require 'nomono/bundler' unless defined?(Nomono) @@ -39,12 +39,12 @@ structuredmerge_local_gems = %w[ ast-crispr-ruby-prism ] -kettle_rb_local_gems = %w[ +kettle_dev_local_gems = %w[ kettle-dev kettle-test kettle-soup-cover kettle-drift ] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) structuredmerge_local_gems_to_eval = structuredmerge_local_gems - %w[rust-merge] - declared_gems -kettle_rb_local_gems_to_eval = kettle_rb_local_gems - %w[rust-merge] - declared_gems +kettle_dev_local_gems_to_eval = kettle_dev_local_gems - %w[rust-merge] - declared_gems tslp_dev = ENV.fetch('TSLP_DEV', nil) if tslp_dev.to_s.empty? && ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false') != 0 @@ -68,11 +68,11 @@ platform :mri do ) end - if ENV.fetch('KETTLE_RB_DEV', 'false').casecmp('false') != 0 + if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false') != 0 eval_nomono_gems( - gems: kettle_rb_local_gems_to_eval, - prefix: 'KETTLE_RB', - path_env: 'KETTLE_RB_DEV', + gems: kettle_dev_local_gems_to_eval, + prefix: 'KETTLE_DEV', + path_env: 'KETTLE_DEV_DEV', vendored_gems_env: 'VENDORED_GEMS', vendor_gem_dir_env: 'VENDOR_GEM_DIR', debug_env: 'KETTLE_DEV_DEBUG' diff --git a/gems/smorg-rb/Gemfile b/gems/smorg-rb/Gemfile index 17e439642..8acd9386e 100644 --- a/gems/smorg-rb/Gemfile +++ b/gems/smorg-rb/Gemfile @@ -500,7 +500,7 @@ eval_gemfile 'gemfiles/modular/templating.gemfile' if ENV.fetch('K_JEM_TEMPLATIN # Debugging eval_gemfile 'gemfiles/modular/debug.gemfile' -# Code Coverage (env-switched: KETTLE_RB_DEV=true for local paths) +# Code Coverage (env-switched: KETTLE_DEV_DEV=true for local paths) eval_gemfile 'gemfiles/modular/coverage.gemfile' # Linting diff --git a/gems/smorg-rb/gemfiles/modular/coverage.gemfile b/gems/smorg-rb/gemfiles/modular/coverage.gemfile index c0ab9c066..f96d50954 100644 --- a/gems/smorg-rb/gemfiles/modular/coverage.gemfile +++ b/gems/smorg-rb/gemfiles/modular/coverage.gemfile @@ -2,9 +2,9 @@ # We run code coverage on the latest version of Ruby only. -# Set KETTLE_RB_DEV=true for local development with path-based dependencies. +# Set KETTLE_DEV_DEV=true for local development with path-based dependencies. # When false (default / CI), remote released gems are used. -if ENV.fetch('KETTLE_RB_DEV', 'false').casecmp('false').zero? +if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? # Coverage (remote/released) platform :mri do gem 'kettle-soup-cover', '~> 1.0', '>= 1.1.3', require: false diff --git a/gems/smorg-rb/gemfiles/modular/coverage_local.gemfile b/gems/smorg-rb/gemfiles/modular/coverage_local.gemfile index 18c00d216..c687f75ff 100644 --- a/gems/smorg-rb/gemfiles/modular/coverage_local.gemfile +++ b/gems/smorg-rb/gemfiles/modular/coverage_local.gemfile @@ -1,7 +1,7 @@ # frozen_string_literal: true # Local path overrides for development. -# Loaded by the associated non-local gemfile when KETTLE_RB_DEV != "false". +# Loaded by the associated non-local gemfile when KETTLE_DEV_DEV != "false". require 'nomono/bundler' unless defined?(Nomono) @@ -9,12 +9,12 @@ local_gems = %w[kettle-dev kettle-test kettle-soup-cover kettle-drift] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) local_gems_to_eval = local_gems - %w[smorg-rb] - declared_gems -# export KETTLE_RB_DEV=/path/to/kettle-rb +# export KETTLE_DEV_DEV=/path/to/kettle-rb platform :mri do eval_nomono_gems( gems: local_gems_to_eval, - prefix: 'KETTLE_RB', - path_env: 'KETTLE_RB_DEV', + prefix: 'KETTLE_DEV', + path_env: 'KETTLE_DEV_DEV', vendored_gems_env: 'VENDORED_GEMS', vendor_gem_dir_env: 'VENDOR_GEM_DIR', debug_env: 'KETTLE_DEV_DEBUG' diff --git a/gems/smorg-rb/gemfiles/modular/templating.gemfile b/gems/smorg-rb/gemfiles/modular/templating.gemfile index e3c24e6b7..1ee2a5ea7 100644 --- a/gems/smorg-rb/gemfiles/modular/templating.gemfile +++ b/gems/smorg-rb/gemfiles/modular/templating.gemfile @@ -1,7 +1,7 @@ # frozen_string_literal: true structuredmerge_remote = ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false').zero? -kettle_remote = ENV.fetch('KETTLE_RB_DEV', 'false').casecmp('false').zero? +kettle_remote = ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? if structuredmerge_remote # Merge recipes and parser dependencies for released installs. @@ -17,6 +17,6 @@ end # When false (default / CI), released kettle-jem brings merge gems and parser dependencies. # Local path overrides bring the same dependencies from sibling gemspecs. # -# Set KETTLE_RB_DEV=/path/to/kettle-rb for local development with Kettle plugin gems. +# Set KETTLE_DEV_DEV=/path/to/kettle-rb for local development with Kettle plugin gems. # When false (default / CI), released Kettle plugin gems are used. eval_gemfile 'templating_local.gemfile' unless structuredmerge_remote && kettle_remote diff --git a/gems/smorg-rb/gemfiles/modular/templating_local.gemfile b/gems/smorg-rb/gemfiles/modular/templating_local.gemfile index 7addc8f6a..3a0923b34 100644 --- a/gems/smorg-rb/gemfiles/modular/templating_local.gemfile +++ b/gems/smorg-rb/gemfiles/modular/templating_local.gemfile @@ -1,7 +1,7 @@ # frozen_string_literal: true # Local path overrides for templating development. -# Loaded by the associated non-local gemfile when STRUCTUREDMERGE_DEV or KETTLE_RB_DEV +# Loaded by the associated non-local gemfile when STRUCTUREDMERGE_DEV or KETTLE_DEV_DEV # is not "false". require 'nomono/bundler' unless defined?(Nomono) @@ -39,12 +39,12 @@ structuredmerge_local_gems = %w[ ast-crispr-ruby-prism ] -kettle_rb_local_gems = %w[ +kettle_dev_local_gems = %w[ kettle-dev kettle-test kettle-soup-cover kettle-drift ] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) structuredmerge_local_gems_to_eval = structuredmerge_local_gems - %w[smorg-rb] - declared_gems -kettle_rb_local_gems_to_eval = kettle_rb_local_gems - %w[smorg-rb] - declared_gems +kettle_dev_local_gems_to_eval = kettle_dev_local_gems - %w[smorg-rb] - declared_gems tslp_dev = ENV.fetch('TSLP_DEV', nil) if tslp_dev.to_s.empty? && ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false') != 0 @@ -68,11 +68,11 @@ platform :mri do ) end - if ENV.fetch('KETTLE_RB_DEV', 'false').casecmp('false') != 0 + if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false') != 0 eval_nomono_gems( - gems: kettle_rb_local_gems_to_eval, - prefix: 'KETTLE_RB', - path_env: 'KETTLE_RB_DEV', + gems: kettle_dev_local_gems_to_eval, + prefix: 'KETTLE_DEV', + path_env: 'KETTLE_DEV_DEV', vendored_gems_env: 'VENDORED_GEMS', vendor_gem_dir_env: 'VENDOR_GEM_DIR', debug_env: 'KETTLE_DEV_DEBUG' diff --git a/gems/toml-merge/Gemfile b/gems/toml-merge/Gemfile index 0be31f1e5..1212f18b9 100644 --- a/gems/toml-merge/Gemfile +++ b/gems/toml-merge/Gemfile @@ -415,7 +415,7 @@ eval_gemfile 'gemfiles/modular/templating.gemfile' if ENV.fetch('K_JEM_TEMPLATIN # Debugging eval_gemfile 'gemfiles/modular/debug.gemfile' -# Code Coverage (env-switched: KETTLE_RB_DEV=true for local paths) +# Code Coverage (env-switched: KETTLE_DEV_DEV=true for local paths) eval_gemfile 'gemfiles/modular/coverage.gemfile' # Linting diff --git a/gems/toml-merge/gemfiles/modular/coverage.gemfile b/gems/toml-merge/gemfiles/modular/coverage.gemfile index c0ab9c066..f96d50954 100644 --- a/gems/toml-merge/gemfiles/modular/coverage.gemfile +++ b/gems/toml-merge/gemfiles/modular/coverage.gemfile @@ -2,9 +2,9 @@ # We run code coverage on the latest version of Ruby only. -# Set KETTLE_RB_DEV=true for local development with path-based dependencies. +# Set KETTLE_DEV_DEV=true for local development with path-based dependencies. # When false (default / CI), remote released gems are used. -if ENV.fetch('KETTLE_RB_DEV', 'false').casecmp('false').zero? +if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? # Coverage (remote/released) platform :mri do gem 'kettle-soup-cover', '~> 1.0', '>= 1.1.3', require: false diff --git a/gems/toml-merge/gemfiles/modular/coverage_local.gemfile b/gems/toml-merge/gemfiles/modular/coverage_local.gemfile index 0c1110c53..fe9a8a92e 100644 --- a/gems/toml-merge/gemfiles/modular/coverage_local.gemfile +++ b/gems/toml-merge/gemfiles/modular/coverage_local.gemfile @@ -1,7 +1,7 @@ # frozen_string_literal: true # Local path overrides for development. -# Loaded by the associated non-local gemfile when KETTLE_RB_DEV != "false". +# Loaded by the associated non-local gemfile when KETTLE_DEV_DEV != "false". require 'nomono/bundler' unless defined?(Nomono) @@ -9,12 +9,12 @@ local_gems = %w[kettle-dev kettle-test kettle-soup-cover kettle-drift] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) local_gems_to_eval = local_gems - %w[toml-merge] - declared_gems -# export KETTLE_RB_DEV=/path/to/kettle-rb +# export KETTLE_DEV_DEV=/path/to/kettle-rb platform :mri do eval_nomono_gems( gems: local_gems_to_eval, - prefix: 'KETTLE_RB', - path_env: 'KETTLE_RB_DEV', + prefix: 'KETTLE_DEV', + path_env: 'KETTLE_DEV_DEV', vendored_gems_env: 'VENDORED_GEMS', vendor_gem_dir_env: 'VENDOR_GEM_DIR', debug_env: 'KETTLE_DEV_DEBUG' diff --git a/gems/toml-merge/gemfiles/modular/templating.gemfile b/gems/toml-merge/gemfiles/modular/templating.gemfile index e3c24e6b7..1ee2a5ea7 100644 --- a/gems/toml-merge/gemfiles/modular/templating.gemfile +++ b/gems/toml-merge/gemfiles/modular/templating.gemfile @@ -1,7 +1,7 @@ # frozen_string_literal: true structuredmerge_remote = ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false').zero? -kettle_remote = ENV.fetch('KETTLE_RB_DEV', 'false').casecmp('false').zero? +kettle_remote = ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? if structuredmerge_remote # Merge recipes and parser dependencies for released installs. @@ -17,6 +17,6 @@ end # When false (default / CI), released kettle-jem brings merge gems and parser dependencies. # Local path overrides bring the same dependencies from sibling gemspecs. # -# Set KETTLE_RB_DEV=/path/to/kettle-rb for local development with Kettle plugin gems. +# Set KETTLE_DEV_DEV=/path/to/kettle-rb for local development with Kettle plugin gems. # When false (default / CI), released Kettle plugin gems are used. eval_gemfile 'templating_local.gemfile' unless structuredmerge_remote && kettle_remote diff --git a/gems/toml-merge/gemfiles/modular/templating_local.gemfile b/gems/toml-merge/gemfiles/modular/templating_local.gemfile index f51beb6a5..579599acb 100644 --- a/gems/toml-merge/gemfiles/modular/templating_local.gemfile +++ b/gems/toml-merge/gemfiles/modular/templating_local.gemfile @@ -1,7 +1,7 @@ # frozen_string_literal: true # Local path overrides for templating development. -# Loaded by the associated non-local gemfile when STRUCTUREDMERGE_DEV or KETTLE_RB_DEV +# Loaded by the associated non-local gemfile when STRUCTUREDMERGE_DEV or KETTLE_DEV_DEV # is not "false". require 'nomono/bundler' unless defined?(Nomono) @@ -39,12 +39,12 @@ structuredmerge_local_gems = %w[ ast-crispr-ruby-prism ] -kettle_rb_local_gems = %w[ +kettle_dev_local_gems = %w[ kettle-dev kettle-test kettle-soup-cover kettle-drift ] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) structuredmerge_local_gems_to_eval = structuredmerge_local_gems - %w[toml-merge] - declared_gems -kettle_rb_local_gems_to_eval = kettle_rb_local_gems - %w[toml-merge] - declared_gems +kettle_dev_local_gems_to_eval = kettle_dev_local_gems - %w[toml-merge] - declared_gems tslp_dev = ENV.fetch('TSLP_DEV', nil) if tslp_dev.to_s.empty? && ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false') != 0 @@ -68,11 +68,11 @@ platform :mri do ) end - if ENV.fetch('KETTLE_RB_DEV', 'false').casecmp('false') != 0 + if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false') != 0 eval_nomono_gems( - gems: kettle_rb_local_gems_to_eval, - prefix: 'KETTLE_RB', - path_env: 'KETTLE_RB_DEV', + gems: kettle_dev_local_gems_to_eval, + prefix: 'KETTLE_DEV', + path_env: 'KETTLE_DEV_DEV', vendored_gems_env: 'VENDORED_GEMS', vendor_gem_dir_env: 'VENDOR_GEM_DIR', debug_env: 'KETTLE_DEV_DEBUG' diff --git a/gems/tree_haver/Gemfile b/gems/tree_haver/Gemfile index 5209ba280..7aded6b7f 100644 --- a/gems/tree_haver/Gemfile +++ b/gems/tree_haver/Gemfile @@ -34,7 +34,7 @@ eval_gemfile 'gemfiles/modular/templating.gemfile' # Debugging eval_gemfile 'gemfiles/modular/debug.gemfile' -# Code Coverage (env-switched: KETTLE_RB_DEV=true for local paths) +# Code Coverage (env-switched: KETTLE_DEV_DEV=true for local paths) eval_gemfile 'gemfiles/modular/coverage.gemfile' # Linting diff --git a/gems/tree_haver/gemfiles/modular/coverage.gemfile b/gems/tree_haver/gemfiles/modular/coverage.gemfile index c0ab9c066..f96d50954 100644 --- a/gems/tree_haver/gemfiles/modular/coverage.gemfile +++ b/gems/tree_haver/gemfiles/modular/coverage.gemfile @@ -2,9 +2,9 @@ # We run code coverage on the latest version of Ruby only. -# Set KETTLE_RB_DEV=true for local development with path-based dependencies. +# Set KETTLE_DEV_DEV=true for local development with path-based dependencies. # When false (default / CI), remote released gems are used. -if ENV.fetch('KETTLE_RB_DEV', 'false').casecmp('false').zero? +if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? # Coverage (remote/released) platform :mri do gem 'kettle-soup-cover', '~> 1.0', '>= 1.1.3', require: false diff --git a/gems/tree_haver/gemfiles/modular/coverage_local.gemfile b/gems/tree_haver/gemfiles/modular/coverage_local.gemfile index 0300e01a3..b5009f5f0 100644 --- a/gems/tree_haver/gemfiles/modular/coverage_local.gemfile +++ b/gems/tree_haver/gemfiles/modular/coverage_local.gemfile @@ -1,7 +1,7 @@ # frozen_string_literal: true # Local path overrides for development. -# Loaded by the associated non-local gemfile when KETTLE_RB_DEV != "false". +# Loaded by the associated non-local gemfile when KETTLE_DEV_DEV != "false". require 'nomono/bundler' unless defined?(Nomono) @@ -9,12 +9,12 @@ local_gems = %w[kettle-dev kettle-test kettle-soup-cover kettle-drift] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) local_gems_to_eval = local_gems - %w[tree_haver] - declared_gems -# export KETTLE_RB_DEV=/path/to/kettle-rb +# export KETTLE_DEV_DEV=/path/to/kettle-rb platform :mri do eval_nomono_gems( gems: local_gems_to_eval, - prefix: 'KETTLE_RB', - path_env: 'KETTLE_RB_DEV', + prefix: 'KETTLE_DEV', + path_env: 'KETTLE_DEV_DEV', vendored_gems_env: 'VENDORED_GEMS', vendor_gem_dir_env: 'VENDOR_GEM_DIR', debug_env: 'KETTLE_DEV_DEBUG' diff --git a/gems/tree_haver/gemfiles/modular/templating.gemfile b/gems/tree_haver/gemfiles/modular/templating.gemfile index e3c24e6b7..1ee2a5ea7 100644 --- a/gems/tree_haver/gemfiles/modular/templating.gemfile +++ b/gems/tree_haver/gemfiles/modular/templating.gemfile @@ -1,7 +1,7 @@ # frozen_string_literal: true structuredmerge_remote = ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false').zero? -kettle_remote = ENV.fetch('KETTLE_RB_DEV', 'false').casecmp('false').zero? +kettle_remote = ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? if structuredmerge_remote # Merge recipes and parser dependencies for released installs. @@ -17,6 +17,6 @@ end # When false (default / CI), released kettle-jem brings merge gems and parser dependencies. # Local path overrides bring the same dependencies from sibling gemspecs. # -# Set KETTLE_RB_DEV=/path/to/kettle-rb for local development with Kettle plugin gems. +# Set KETTLE_DEV_DEV=/path/to/kettle-rb for local development with Kettle plugin gems. # When false (default / CI), released Kettle plugin gems are used. eval_gemfile 'templating_local.gemfile' unless structuredmerge_remote && kettle_remote diff --git a/gems/tree_haver/gemfiles/modular/templating_local.gemfile b/gems/tree_haver/gemfiles/modular/templating_local.gemfile index b4917aca3..2fb7cb0ab 100644 --- a/gems/tree_haver/gemfiles/modular/templating_local.gemfile +++ b/gems/tree_haver/gemfiles/modular/templating_local.gemfile @@ -1,7 +1,7 @@ # frozen_string_literal: true # Local path overrides for templating development. -# Loaded by the associated non-local gemfile when STRUCTUREDMERGE_DEV or KETTLE_RB_DEV +# Loaded by the associated non-local gemfile when STRUCTUREDMERGE_DEV or KETTLE_DEV_DEV # is not "false". require 'nomono/bundler' unless defined?(Nomono) @@ -39,12 +39,12 @@ structuredmerge_local_gems = %w[ ast-crispr-ruby-prism ] -kettle_rb_local_gems = %w[ +kettle_dev_local_gems = %w[ kettle-dev kettle-test kettle-soup-cover kettle-drift ] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) structuredmerge_local_gems_to_eval = structuredmerge_local_gems - %w[tree_haver] - declared_gems -kettle_rb_local_gems_to_eval = kettle_rb_local_gems - %w[tree_haver] - declared_gems +kettle_dev_local_gems_to_eval = kettle_dev_local_gems - %w[tree_haver] - declared_gems tslp_dev = ENV.fetch('TSLP_DEV', nil) if tslp_dev.to_s.empty? && ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false') != 0 @@ -68,11 +68,11 @@ platform :mri do ) end - if ENV.fetch('KETTLE_RB_DEV', 'false').casecmp('false') != 0 + if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false') != 0 eval_nomono_gems( - gems: kettle_rb_local_gems_to_eval, - prefix: 'KETTLE_RB', - path_env: 'KETTLE_RB_DEV', + gems: kettle_dev_local_gems_to_eval, + prefix: 'KETTLE_DEV', + path_env: 'KETTLE_DEV_DEV', vendored_gems_env: 'VENDORED_GEMS', vendor_gem_dir_env: 'VENDOR_GEM_DIR', debug_env: 'KETTLE_DEV_DEBUG' diff --git a/gems/typescript-merge/Gemfile b/gems/typescript-merge/Gemfile index 8ea5e52eb..65e655eb3 100644 --- a/gems/typescript-merge/Gemfile +++ b/gems/typescript-merge/Gemfile @@ -415,7 +415,7 @@ eval_gemfile 'gemfiles/modular/templating.gemfile' if ENV.fetch('K_JEM_TEMPLATIN # Debugging eval_gemfile 'gemfiles/modular/debug.gemfile' -# Code Coverage (env-switched: KETTLE_RB_DEV=true for local paths) +# Code Coverage (env-switched: KETTLE_DEV_DEV=true for local paths) eval_gemfile 'gemfiles/modular/coverage.gemfile' # Linting diff --git a/gems/typescript-merge/gemfiles/modular/coverage.gemfile b/gems/typescript-merge/gemfiles/modular/coverage.gemfile index c0ab9c066..f96d50954 100644 --- a/gems/typescript-merge/gemfiles/modular/coverage.gemfile +++ b/gems/typescript-merge/gemfiles/modular/coverage.gemfile @@ -2,9 +2,9 @@ # We run code coverage on the latest version of Ruby only. -# Set KETTLE_RB_DEV=true for local development with path-based dependencies. +# Set KETTLE_DEV_DEV=true for local development with path-based dependencies. # When false (default / CI), remote released gems are used. -if ENV.fetch('KETTLE_RB_DEV', 'false').casecmp('false').zero? +if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? # Coverage (remote/released) platform :mri do gem 'kettle-soup-cover', '~> 1.0', '>= 1.1.3', require: false diff --git a/gems/typescript-merge/gemfiles/modular/coverage_local.gemfile b/gems/typescript-merge/gemfiles/modular/coverage_local.gemfile index 2027783ac..d4b3f134b 100644 --- a/gems/typescript-merge/gemfiles/modular/coverage_local.gemfile +++ b/gems/typescript-merge/gemfiles/modular/coverage_local.gemfile @@ -1,7 +1,7 @@ # frozen_string_literal: true # Local path overrides for development. -# Loaded by the associated non-local gemfile when KETTLE_RB_DEV != "false". +# Loaded by the associated non-local gemfile when KETTLE_DEV_DEV != "false". require 'nomono/bundler' unless defined?(Nomono) @@ -9,12 +9,12 @@ local_gems = %w[kettle-dev kettle-test kettle-soup-cover kettle-drift] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) local_gems_to_eval = local_gems - %w[typescript-merge] - declared_gems -# export KETTLE_RB_DEV=/path/to/kettle-rb +# export KETTLE_DEV_DEV=/path/to/kettle-rb platform :mri do eval_nomono_gems( gems: local_gems_to_eval, - prefix: 'KETTLE_RB', - path_env: 'KETTLE_RB_DEV', + prefix: 'KETTLE_DEV', + path_env: 'KETTLE_DEV_DEV', vendored_gems_env: 'VENDORED_GEMS', vendor_gem_dir_env: 'VENDOR_GEM_DIR', debug_env: 'KETTLE_DEV_DEBUG' diff --git a/gems/typescript-merge/gemfiles/modular/templating.gemfile b/gems/typescript-merge/gemfiles/modular/templating.gemfile index e3c24e6b7..1ee2a5ea7 100644 --- a/gems/typescript-merge/gemfiles/modular/templating.gemfile +++ b/gems/typescript-merge/gemfiles/modular/templating.gemfile @@ -1,7 +1,7 @@ # frozen_string_literal: true structuredmerge_remote = ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false').zero? -kettle_remote = ENV.fetch('KETTLE_RB_DEV', 'false').casecmp('false').zero? +kettle_remote = ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? if structuredmerge_remote # Merge recipes and parser dependencies for released installs. @@ -17,6 +17,6 @@ end # When false (default / CI), released kettle-jem brings merge gems and parser dependencies. # Local path overrides bring the same dependencies from sibling gemspecs. # -# Set KETTLE_RB_DEV=/path/to/kettle-rb for local development with Kettle plugin gems. +# Set KETTLE_DEV_DEV=/path/to/kettle-rb for local development with Kettle plugin gems. # When false (default / CI), released Kettle plugin gems are used. eval_gemfile 'templating_local.gemfile' unless structuredmerge_remote && kettle_remote diff --git a/gems/typescript-merge/gemfiles/modular/templating_local.gemfile b/gems/typescript-merge/gemfiles/modular/templating_local.gemfile index 95c2dfa3b..5e16e3e86 100644 --- a/gems/typescript-merge/gemfiles/modular/templating_local.gemfile +++ b/gems/typescript-merge/gemfiles/modular/templating_local.gemfile @@ -1,7 +1,7 @@ # frozen_string_literal: true # Local path overrides for templating development. -# Loaded by the associated non-local gemfile when STRUCTUREDMERGE_DEV or KETTLE_RB_DEV +# Loaded by the associated non-local gemfile when STRUCTUREDMERGE_DEV or KETTLE_DEV_DEV # is not "false". require 'nomono/bundler' unless defined?(Nomono) @@ -39,12 +39,12 @@ structuredmerge_local_gems = %w[ ast-crispr-ruby-prism ] -kettle_rb_local_gems = %w[ +kettle_dev_local_gems = %w[ kettle-dev kettle-test kettle-soup-cover kettle-drift ] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) structuredmerge_local_gems_to_eval = structuredmerge_local_gems - %w[typescript-merge] - declared_gems -kettle_rb_local_gems_to_eval = kettle_rb_local_gems - %w[typescript-merge] - declared_gems +kettle_dev_local_gems_to_eval = kettle_dev_local_gems - %w[typescript-merge] - declared_gems tslp_dev = ENV.fetch('TSLP_DEV', nil) if tslp_dev.to_s.empty? && ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false') != 0 @@ -68,11 +68,11 @@ platform :mri do ) end - if ENV.fetch('KETTLE_RB_DEV', 'false').casecmp('false') != 0 + if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false') != 0 eval_nomono_gems( - gems: kettle_rb_local_gems_to_eval, - prefix: 'KETTLE_RB', - path_env: 'KETTLE_RB_DEV', + gems: kettle_dev_local_gems_to_eval, + prefix: 'KETTLE_DEV', + path_env: 'KETTLE_DEV_DEV', vendored_gems_env: 'VENDORED_GEMS', vendor_gem_dir_env: 'VENDOR_GEM_DIR', debug_env: 'KETTLE_DEV_DEBUG' diff --git a/gems/yaml-merge/Gemfile b/gems/yaml-merge/Gemfile index 4f76f3a3d..ad7649d78 100644 --- a/gems/yaml-merge/Gemfile +++ b/gems/yaml-merge/Gemfile @@ -415,7 +415,7 @@ eval_gemfile 'gemfiles/modular/templating.gemfile' if ENV.fetch('K_JEM_TEMPLATIN # Debugging eval_gemfile 'gemfiles/modular/debug.gemfile' -# Code Coverage (env-switched: KETTLE_RB_DEV=true for local paths) +# Code Coverage (env-switched: KETTLE_DEV_DEV=true for local paths) eval_gemfile 'gemfiles/modular/coverage.gemfile' # Linting diff --git a/gems/yaml-merge/gemfiles/modular/coverage.gemfile b/gems/yaml-merge/gemfiles/modular/coverage.gemfile index c0ab9c066..f96d50954 100644 --- a/gems/yaml-merge/gemfiles/modular/coverage.gemfile +++ b/gems/yaml-merge/gemfiles/modular/coverage.gemfile @@ -2,9 +2,9 @@ # We run code coverage on the latest version of Ruby only. -# Set KETTLE_RB_DEV=true for local development with path-based dependencies. +# Set KETTLE_DEV_DEV=true for local development with path-based dependencies. # When false (default / CI), remote released gems are used. -if ENV.fetch('KETTLE_RB_DEV', 'false').casecmp('false').zero? +if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? # Coverage (remote/released) platform :mri do gem 'kettle-soup-cover', '~> 1.0', '>= 1.1.3', require: false diff --git a/gems/yaml-merge/gemfiles/modular/coverage_local.gemfile b/gems/yaml-merge/gemfiles/modular/coverage_local.gemfile index a2b6e70a4..9113ff615 100644 --- a/gems/yaml-merge/gemfiles/modular/coverage_local.gemfile +++ b/gems/yaml-merge/gemfiles/modular/coverage_local.gemfile @@ -1,7 +1,7 @@ # frozen_string_literal: true # Local path overrides for development. -# Loaded by the associated non-local gemfile when KETTLE_RB_DEV != "false". +# Loaded by the associated non-local gemfile when KETTLE_DEV_DEV != "false". require 'nomono/bundler' unless defined?(Nomono) @@ -9,12 +9,12 @@ local_gems = %w[kettle-dev kettle-test kettle-soup-cover kettle-drift] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) local_gems_to_eval = local_gems - %w[yaml-merge] - declared_gems -# export KETTLE_RB_DEV=/path/to/kettle-rb +# export KETTLE_DEV_DEV=/path/to/kettle-rb platform :mri do eval_nomono_gems( gems: local_gems_to_eval, - prefix: 'KETTLE_RB', - path_env: 'KETTLE_RB_DEV', + prefix: 'KETTLE_DEV', + path_env: 'KETTLE_DEV_DEV', vendored_gems_env: 'VENDORED_GEMS', vendor_gem_dir_env: 'VENDOR_GEM_DIR', debug_env: 'KETTLE_DEV_DEBUG' diff --git a/gems/yaml-merge/gemfiles/modular/templating.gemfile b/gems/yaml-merge/gemfiles/modular/templating.gemfile index e3c24e6b7..1ee2a5ea7 100644 --- a/gems/yaml-merge/gemfiles/modular/templating.gemfile +++ b/gems/yaml-merge/gemfiles/modular/templating.gemfile @@ -1,7 +1,7 @@ # frozen_string_literal: true structuredmerge_remote = ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false').zero? -kettle_remote = ENV.fetch('KETTLE_RB_DEV', 'false').casecmp('false').zero? +kettle_remote = ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? if structuredmerge_remote # Merge recipes and parser dependencies for released installs. @@ -17,6 +17,6 @@ end # When false (default / CI), released kettle-jem brings merge gems and parser dependencies. # Local path overrides bring the same dependencies from sibling gemspecs. # -# Set KETTLE_RB_DEV=/path/to/kettle-rb for local development with Kettle plugin gems. +# Set KETTLE_DEV_DEV=/path/to/kettle-rb for local development with Kettle plugin gems. # When false (default / CI), released Kettle plugin gems are used. eval_gemfile 'templating_local.gemfile' unless structuredmerge_remote && kettle_remote diff --git a/gems/yaml-merge/gemfiles/modular/templating_local.gemfile b/gems/yaml-merge/gemfiles/modular/templating_local.gemfile index 18fe7014a..9a24b52e7 100644 --- a/gems/yaml-merge/gemfiles/modular/templating_local.gemfile +++ b/gems/yaml-merge/gemfiles/modular/templating_local.gemfile @@ -1,7 +1,7 @@ # frozen_string_literal: true # Local path overrides for templating development. -# Loaded by the associated non-local gemfile when STRUCTUREDMERGE_DEV or KETTLE_RB_DEV +# Loaded by the associated non-local gemfile when STRUCTUREDMERGE_DEV or KETTLE_DEV_DEV # is not "false". require 'nomono/bundler' unless defined?(Nomono) @@ -39,12 +39,12 @@ structuredmerge_local_gems = %w[ ast-crispr-ruby-prism ] -kettle_rb_local_gems = %w[ +kettle_dev_local_gems = %w[ kettle-dev kettle-test kettle-soup-cover kettle-drift ] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) structuredmerge_local_gems_to_eval = structuredmerge_local_gems - %w[yaml-merge] - declared_gems -kettle_rb_local_gems_to_eval = kettle_rb_local_gems - %w[yaml-merge] - declared_gems +kettle_dev_local_gems_to_eval = kettle_dev_local_gems - %w[yaml-merge] - declared_gems tslp_dev = ENV.fetch('TSLP_DEV', nil) if tslp_dev.to_s.empty? && ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false') != 0 @@ -68,11 +68,11 @@ platform :mri do ) end - if ENV.fetch('KETTLE_RB_DEV', 'false').casecmp('false') != 0 + if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false') != 0 eval_nomono_gems( - gems: kettle_rb_local_gems_to_eval, - prefix: 'KETTLE_RB', - path_env: 'KETTLE_RB_DEV', + gems: kettle_dev_local_gems_to_eval, + prefix: 'KETTLE_DEV', + path_env: 'KETTLE_DEV_DEV', vendored_gems_env: 'VENDORED_GEMS', vendor_gem_dir_env: 'VENDOR_GEM_DIR', debug_env: 'KETTLE_DEV_DEBUG' diff --git a/gems/zip-merge/Gemfile b/gems/zip-merge/Gemfile index bc1ea8998..115fe7592 100644 --- a/gems/zip-merge/Gemfile +++ b/gems/zip-merge/Gemfile @@ -454,7 +454,7 @@ eval_gemfile 'gemfiles/modular/templating.gemfile' if ENV.fetch('K_JEM_TEMPLATIN # Debugging eval_gemfile 'gemfiles/modular/debug.gemfile' -# Code Coverage (env-switched: KETTLE_RB_DEV=true for local paths) +# Code Coverage (env-switched: KETTLE_DEV_DEV=true for local paths) eval_gemfile 'gemfiles/modular/coverage.gemfile' # Linting diff --git a/gems/zip-merge/gemfiles/modular/coverage.gemfile b/gems/zip-merge/gemfiles/modular/coverage.gemfile index c0ab9c066..f96d50954 100644 --- a/gems/zip-merge/gemfiles/modular/coverage.gemfile +++ b/gems/zip-merge/gemfiles/modular/coverage.gemfile @@ -2,9 +2,9 @@ # We run code coverage on the latest version of Ruby only. -# Set KETTLE_RB_DEV=true for local development with path-based dependencies. +# Set KETTLE_DEV_DEV=true for local development with path-based dependencies. # When false (default / CI), remote released gems are used. -if ENV.fetch('KETTLE_RB_DEV', 'false').casecmp('false').zero? +if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? # Coverage (remote/released) platform :mri do gem 'kettle-soup-cover', '~> 1.0', '>= 1.1.3', require: false diff --git a/gems/zip-merge/gemfiles/modular/coverage_local.gemfile b/gems/zip-merge/gemfiles/modular/coverage_local.gemfile index a5e0e50af..abd7a28f8 100644 --- a/gems/zip-merge/gemfiles/modular/coverage_local.gemfile +++ b/gems/zip-merge/gemfiles/modular/coverage_local.gemfile @@ -1,7 +1,7 @@ # frozen_string_literal: true # Local path overrides for development. -# Loaded by the associated non-local gemfile when KETTLE_RB_DEV != "false". +# Loaded by the associated non-local gemfile when KETTLE_DEV_DEV != "false". require 'nomono/bundler' unless defined?(Nomono) @@ -9,12 +9,12 @@ local_gems = %w[kettle-dev kettle-test kettle-soup-cover kettle-drift] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) local_gems_to_eval = local_gems - %w[zip-merge] - declared_gems -# export KETTLE_RB_DEV=/path/to/kettle-rb +# export KETTLE_DEV_DEV=/path/to/kettle-rb platform :mri do eval_nomono_gems( gems: local_gems_to_eval, - prefix: 'KETTLE_RB', - path_env: 'KETTLE_RB_DEV', + prefix: 'KETTLE_DEV', + path_env: 'KETTLE_DEV_DEV', vendored_gems_env: 'VENDORED_GEMS', vendor_gem_dir_env: 'VENDOR_GEM_DIR', debug_env: 'KETTLE_DEV_DEBUG' diff --git a/gems/zip-merge/gemfiles/modular/templating.gemfile b/gems/zip-merge/gemfiles/modular/templating.gemfile index e3c24e6b7..1ee2a5ea7 100644 --- a/gems/zip-merge/gemfiles/modular/templating.gemfile +++ b/gems/zip-merge/gemfiles/modular/templating.gemfile @@ -1,7 +1,7 @@ # frozen_string_literal: true structuredmerge_remote = ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false').zero? -kettle_remote = ENV.fetch('KETTLE_RB_DEV', 'false').casecmp('false').zero? +kettle_remote = ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? if structuredmerge_remote # Merge recipes and parser dependencies for released installs. @@ -17,6 +17,6 @@ end # When false (default / CI), released kettle-jem brings merge gems and parser dependencies. # Local path overrides bring the same dependencies from sibling gemspecs. # -# Set KETTLE_RB_DEV=/path/to/kettle-rb for local development with Kettle plugin gems. +# Set KETTLE_DEV_DEV=/path/to/kettle-rb for local development with Kettle plugin gems. # When false (default / CI), released Kettle plugin gems are used. eval_gemfile 'templating_local.gemfile' unless structuredmerge_remote && kettle_remote diff --git a/gems/zip-merge/gemfiles/modular/templating_local.gemfile b/gems/zip-merge/gemfiles/modular/templating_local.gemfile index ca49d2e39..20b59fb33 100644 --- a/gems/zip-merge/gemfiles/modular/templating_local.gemfile +++ b/gems/zip-merge/gemfiles/modular/templating_local.gemfile @@ -1,7 +1,7 @@ # frozen_string_literal: true # Local path overrides for templating development. -# Loaded by the associated non-local gemfile when STRUCTUREDMERGE_DEV or KETTLE_RB_DEV +# Loaded by the associated non-local gemfile when STRUCTUREDMERGE_DEV or KETTLE_DEV_DEV # is not "false". require 'nomono/bundler' unless defined?(Nomono) @@ -39,12 +39,12 @@ structuredmerge_local_gems = %w[ ast-crispr-ruby-prism ] -kettle_rb_local_gems = %w[ +kettle_dev_local_gems = %w[ kettle-dev kettle-test kettle-soup-cover kettle-drift ] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) structuredmerge_local_gems_to_eval = structuredmerge_local_gems - %w[zip-merge] - declared_gems -kettle_rb_local_gems_to_eval = kettle_rb_local_gems - %w[zip-merge] - declared_gems +kettle_dev_local_gems_to_eval = kettle_dev_local_gems - %w[zip-merge] - declared_gems tslp_dev = ENV.fetch('TSLP_DEV', nil) if tslp_dev.to_s.empty? && ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false') != 0 @@ -68,11 +68,11 @@ platform :mri do ) end - if ENV.fetch('KETTLE_RB_DEV', 'false').casecmp('false') != 0 + if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false') != 0 eval_nomono_gems( - gems: kettle_rb_local_gems_to_eval, - prefix: 'KETTLE_RB', - path_env: 'KETTLE_RB_DEV', + gems: kettle_dev_local_gems_to_eval, + prefix: 'KETTLE_DEV', + path_env: 'KETTLE_DEV_DEV', vendored_gems_env: 'VENDORED_GEMS', vendor_gem_dir_env: 'VENDOR_GEM_DIR', debug_env: 'KETTLE_DEV_DEBUG' From b52b08693103c993c542357ec6d259a153aa3cc4 Mon Sep 17 00:00:00 2001 From: "Peter H. Boling" Date: Sun, 19 Jul 2026 11:47:31 -0600 Subject: [PATCH 004/188] =?UTF-8?q?=F0=9F=93=9D=20Update=20docs?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gems/kettle-jem/Gemfile.lock | 171 +- gems/kettle-jem/docs/Kettle.html | 6 +- gems/kettle-jem/docs/Kettle/Jem.html | 56244 ++++++++++------ gems/kettle-jem/docs/Kettle/Jem/CLI.html | 361 +- .../docs/Kettle/Jem/DecisionEvaluation.html | 126 +- .../docs/Kettle/Jem/DecisionPolicy.html | 298 +- gems/kettle-jem/docs/Kettle/Jem/Error.html | 6 +- .../docs/Kettle/Jem/GemSpecReader.html | 46 +- .../docs/Kettle/Jem/PluginContext.html | 112 +- .../docs/Kettle/Jem/PluginHelpers.html | 40 +- .../docs/Kettle/Jem/PluginLoader.html | 88 +- .../docs/Kettle/Jem/PluginOutput.html | 30 +- .../docs/Kettle/Jem/PluginRegistrar.html | 48 +- .../docs/Kettle/Jem/PluginRegistry.html | 110 +- .../docs/Kettle/Jem/PluginRegistry/Hook.html | 38 +- .../docs/Kettle/Jem/ReadmePostProcessor.html | 895 +- .../docs/Kettle/Jem/RubyGemsResolver.html | 218 +- gems/kettle-jem/docs/Kettle/Jem/SelfTest.html | 6 +- .../docs/Kettle/Jem/SelfTest/Manifest.html | 78 +- .../docs/Kettle/Jem/SelfTest/Reporter.html | 196 +- gems/kettle-jem/docs/Kettle/Jem/Tasks.html | 6 +- .../docs/Kettle/Jem/Tasks/InstallTask.html | 8113 ++- .../docs/Kettle/Jem/Tasks/PrepareTask.html | 108 +- .../docs/Kettle/Jem/Tasks/SelfTestTask.html | 6 +- .../docs/Kettle/Jem/Tasks/TemplateTask.html | 6 +- .../docs/Kettle/Jem/TemplateChecksums.html | 204 +- .../docs/Kettle/Jem/TemplatingReport.html | 488 +- gems/kettle-jem/docs/Kettle/Jem/Version.html | 8 +- gems/kettle-jem/docs/_index.html | 15 +- gems/kettle-jem/docs/class_list.html | 2 +- gems/kettle-jem/docs/file.AGENTS.html | 16 +- gems/kettle-jem/docs/file.AGPL-3.0-only.html | 6 +- gems/kettle-jem/docs/file.CHANGELOG.html | 475 +- .../kettle-jem/docs/file.CODE_OF_CONDUCT.html | 6 +- gems/kettle-jem/docs/file.CONTRIBUTING.html | 31 +- gems/kettle-jem/docs/file.FUNDING.html | 12 +- gems/kettle-jem/docs/file.IRP.html | 6 +- gems/kettle-jem/docs/file.LICENSE.html | 6 +- .../file.PolyForm-Small-Business-1.0.0.html | 6 +- gems/kettle-jem/docs/file.README.html | 128 +- gems/kettle-jem/docs/file.RRRRrb-Matrix.html | 8 +- gems/kettle-jem/docs/file.RUBOCOP.html | 47 +- gems/kettle-jem/docs/file.SECURITY.html | 8 +- gems/kettle-jem/docs/frames.html | 2 +- gems/kettle-jem/docs/index.html | 128 +- gems/kettle-jem/docs/method_list.html | 3692 +- gems/kettle-jem/docs/top-level-namespace.html | 6 +- gems/tree_haver/Gemfile.lock | 403 +- 48 files changed, 46510 insertions(+), 26549 deletions(-) diff --git a/gems/kettle-jem/Gemfile.lock b/gems/kettle-jem/Gemfile.lock index e0eceb748..93bbd46a2 100644 --- a/gems/kettle-jem/Gemfile.lock +++ b/gems/kettle-jem/Gemfile.lock @@ -28,7 +28,7 @@ PATH yaml-merge (= 7.1.0) PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly specs: ast-crispr-markdown-markly (7.1.0) ast-crispr (= 7.1.0) @@ -36,7 +36,7 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism specs: ast-crispr-ruby-prism (7.1.0) ast-crispr (= 7.1.0) @@ -44,23 +44,7 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr - specs: - ast-crispr (7.1.0) - ast-merge (= 7.1.0) - service_actor (~> 3.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git - specs: - ast-merge-git (7.1.0) - ast-merge (= 7.1.0) - json-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/ast-merge specs: ast-merge (7.1.0) benchmark @@ -69,14 +53,7 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template - specs: - ast-template (7.1.0) - ast-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/bash-merge specs: bash-merge (7.1.0) ast-merge (= 7.1.0) @@ -84,14 +61,7 @@ PATH version_gem (~> 1.1, >= 1.1.14) PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge - specs: - binary-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge specs: citrus-toml-merge (7.1.0) toml-merge (= 7.1.0) @@ -99,7 +69,7 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge specs: commonmarker-merge (7.1.0) commonmarker (~> 2.2) @@ -107,7 +77,7 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge specs: dotenv-merge (7.1.0) ast-merge (= 7.1.0) @@ -115,15 +85,7 @@ PATH version_gem (~> 1.1, >= 1.1.14) PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge - specs: - go-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/json-merge specs: json-merge (7.1.0) ast-merge (= 7.1.0) @@ -131,7 +93,7 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge specs: kramdown-merge (7.1.0) kramdown (~> 2.5) @@ -139,7 +101,7 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge specs: markdown-merge (7.1.0) ast-merge (= 7.1.0) @@ -147,7 +109,7 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/markly-merge specs: markly-merge (7.1.0) markdown-merge (= 7.1.0) @@ -155,23 +117,7 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge - specs: - parslet-toml-merge (7.1.0) - toml (~> 0.3) - toml-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge - specs: - plain-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/prism-merge specs: prism-merge (7.1.0) prism (~> 1.6) @@ -179,7 +125,7 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/psych-merge specs: psych-merge (7.1.0) ast-merge (= 7.1.0) @@ -188,7 +134,7 @@ PATH yaml-merge (= 7.1.0) PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge specs: rbs-merge (7.1.0) ast-merge (= 7.1.0) @@ -197,7 +143,7 @@ PATH version_gem (~> 1.1, >= 1.1.14) PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge specs: ruby-merge (7.1.0) ast-merge (= 7.1.0) @@ -205,28 +151,7 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge - specs: - rust-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb - specs: - smorg-rb (7.1.0) - ast-merge (= 7.1.0) - ast-merge-git (= 7.1.0) - go-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-jem (= 7.1.0) - markly-merge (= 7.1.0) - plain-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/toml-merge specs: toml-merge (7.1.0) ast-merge (= 7.1.0) @@ -234,7 +159,7 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/tree_haver specs: tree_haver (7.1.0) citrus (~> 3.0) @@ -243,35 +168,13 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge - specs: - typescript-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge specs: yaml-merge (7.1.0) ast-merge (= 7.1.0) tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge - specs: - zip-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/vendor/tree-sitter-language-pack/packages/ruby - specs: - tree_sitter_language_pack (1.13.0) - rb_sys (>= 0.9, < 0.9.128) - sorbet-runtime (~> 0.5) - GEM remote: https://gem.coop/ specs: @@ -287,6 +190,10 @@ GEM rubocop (>= 1.0) version_gem (~> 1.1, >= 1.1.14) ast (2.4.3) + ast-crispr (7.1.0) + ast-merge (= 7.1.0) + service_actor (~> 3.9) + version_gem (~> 1.1, >= 1.1.9) backports (3.25.3) benchmark (0.5.0) bigdecimal (4.1.2) @@ -411,9 +318,6 @@ GEM racc (1.8.1) rainbow (3.1.1) rake (13.4.2) - rake-compiler-dock (1.12.0) - rb_sys (0.9.127) - rake-compiler-dock (= 1.12.0) rbs (4.0.3) logger prism (>= 1.6.0) @@ -600,11 +504,11 @@ GEM token-resolver (2.0.4) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.13) - toml (0.3.0) - parslet (>= 1.8.0, < 3.0.0) toml-rb (4.2.0) citrus (~> 3.0, > 3.0) racc (~> 1.7) + tree_sitter_language_pack (1.9.0.pre.rc.40-x86_64-linux) + sorbet-runtime (~> 0.5) tsort (0.2.0) turbo_tests2 (3.2.0) parallel_tests (>= 3.3.0, < 6) @@ -646,15 +550,11 @@ PLATFORMS DEPENDENCIES appraisal2 (~> 3.2, >= 3.2.0) appraisal2-rubocop (~> 1.0, >= 1.0.0) - ast-crispr! ast-crispr-markdown-markly! ast-crispr-ruby-prism! ast-merge! - ast-merge-git! - ast-template! bash-merge! benchmark (~> 0.5, >= 0.5.0) - binary-merge! bundler-audit (~> 0.9.3) cgi (~> 0.5) citrus-toml-merge! @@ -664,7 +564,6 @@ DEPENDENCIES erb (~> 6.0, >= 6.0.5) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.4) - go-merge! irb (~> 1.17) json-merge! kettle-drift (~> 1.0, >= 1.0.5) @@ -678,8 +577,6 @@ DEPENDENCIES markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) - parslet-toml-merge! - plain-merge! prism-merge! psych-merge! rake (~> 13.0) @@ -696,16 +593,12 @@ DEPENDENCIES rubocop-ruby3_2 (~> 3.0, >= 3.0.6) ruby-merge! ruby-progressbar (~> 1.13) - rust-merge! - smorg-rb! standard (~> 1.56, >= 1.56.0) stone_checksums (~> 1.0, >= 1.0.6) stringio (>= 3.0) toml-merge! tree_haver! - tree_sitter_language_pack! turbo_tests2 (~> 3.2, >= 3.2.0) - typescript-merge! webrick (~> 1.9) yaml-converter (~> 0.2, >= 0.2.3) yaml-merge! @@ -715,7 +608,6 @@ DEPENDENCIES yard-relative_markdown_links (~> 0.6) yard-timekeeper (~> 0.2, >= 0.2.4) yard-yaml (~> 0.2, >= 0.2.3) - zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af @@ -727,13 +619,10 @@ CHECKSUMS ast-crispr-markdown-markly (7.1.0) ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) - ast-merge-git (7.1.0) - ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd - binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 @@ -760,7 +649,6 @@ CHECKSUMS gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f - go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 @@ -790,8 +678,6 @@ CHECKSUMS parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 - parslet-toml-merge (7.1.0) - plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 @@ -802,8 +688,6 @@ CHECKSUMS racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 - rake-compiler-dock (1.12.0) - rb_sys (0.9.127) rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 @@ -844,7 +728,6 @@ CHECKSUMS ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 - rust-merge (7.1.0) service_actor (3.9.4) sha256=e63b523630b9a7e62959b2a90113b08d2565b5de9c148557b281ef847c9539ce silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 @@ -852,7 +735,6 @@ CHECKSUMS simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed - smorg-rb (7.1.0) sorbet-runtime (0.6.13342) sha256=dbeb9892597f593ed2b29e38018912787f6c4e0c4b736d8af0d6bd3c63bde3c3 standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b @@ -867,14 +749,12 @@ CHECKSUMS timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.4) sha256=33b926958f504525bba3ed511ab66fbcbf8ef30390815e931436b30f27ffcad0 - toml (0.3.0) toml-merge (7.1.0) toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 tree_haver (7.1.0) - tree_sitter_language_pack (1.13.0) + tree_sitter_language_pack (1.9.0.pre.rc.40-x86_64-linux) tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 - typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 @@ -888,7 +768,6 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 - zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH diff --git a/gems/kettle-jem/docs/Kettle.html b/gems/kettle-jem/docs/Kettle.html index 26e571d62..357baa474 100644 --- a/gems/kettle-jem/docs/Kettle.html +++ b/gems/kettle-jem/docs/Kettle.html @@ -6,7 +6,7 @@ Module: Kettle - — Documentation by YARD 0.9.44 + — Documentation by YARD 0.9.45 @@ -110,9 +110,9 @@

Defined Under Namespace

diff --git a/gems/kettle-jem/docs/Kettle/Jem.html b/gems/kettle-jem/docs/Kettle/Jem.html index 8d1c42517..2ef004983 100644 --- a/gems/kettle-jem/docs/Kettle/Jem.html +++ b/gems/kettle-jem/docs/Kettle/Jem.html @@ -6,7 +6,7 @@ Module: Kettle::Jem - — Documentation by YARD 0.9.44 + — Documentation by YARD 0.9.45 @@ -96,7 +96,7 @@

Defined Under Namespace

- Classes: DecisionEvaluation, DecisionPolicy, Error, GemSpecReader, PluginContext, PluginHelpers, PluginOutput, PluginRegistrar, PluginRegistry, RRRRBMatrixEntry, RubyGemsResolver + Classes: DecisionEvaluation, DecisionPolicy, Error, GemSpecReader, PluginContext, PluginHelpers, PluginOutput, PluginRegistrar, PluginRegistry, RubyGemsResolver

@@ -139,6 +139,13 @@

"# <</kettle-jem:generated>>"
+
GEMSPEC_DEPENDENCY_MINIMUM_REQUIREMENTS = + +
+
{
+  "rspec-stubbed_env" => ">= 1.0.6"
+}.freeze
+
OBSOLETE_GITHUB_WORKFLOWS =
@@ -177,60 +184,10 @@

%w[ruby jruby truffleruby].freeze
-
RRRRB_MATRIX = +
DEFAULT_OPENCOLLECTIVE_ORG =
-
{
-  "ruby-1.8" => RRRRBMatrixEntry.new(ruby: "1.8.7-p374", engine: "ruby", rails: "4.0.x", rubocop_lts: "0.3.0"),
-  "ruby-1.9" => RRRRBMatrixEntry.new(ruby: "1.9.3-p551", engine: "ruby", rubygems: "2.7.11", bundler: "1.17.3", rubocop: "0.41.2", rubocop_lts: "2.3.0", rails: "4.2.11.3"),
-  "jruby-1.7" => RRRRBMatrixEntry.new(ruby: "jruby-1.7.27", engine: "jruby", mri: "1.9", workflow_ruby: "1.9"),
-  "ruby-2.0" => RRRRBMatrixEntry.new(ruby: "2.0.0-p648", engine: "ruby", rubocop: "0.50.0", rubocop_lts: "4.2.0"),
-  "ruby-2.1" => RRRRBMatrixEntry.new(ruby: "2.1.10", engine: "ruby", rubocop: "0.57.2", rubocop_lts: "6.3.0"),
-  "ruby-2.2" => RRRRBMatrixEntry.new(ruby: "2.2.10", engine: "ruby", rubocop: "0.68.1", rubocop_lts: "8.3.0", rails: "5.2.8.1"),
-  "ruby-2.3" => RRRRBMatrixEntry.new(ruby: "2.3.8", engine: "ruby", rubygems: "3.3.27", bundler: "2.3.27", rubocop: "0.81.0", rubocop_lts: "10.3.0"),
-  "jruby-9.1" => RRRRBMatrixEntry.new(ruby: "jruby-9.1.17.0", engine: "jruby", mri: "2.3", workflow_ruby: "2.3", rubygems: "3.3.27", bundler: "2.3.27"),
-  "ruby-2.4" => RRRRBMatrixEntry.new(ruby: "2.4.10", engine: "ruby", rubocop: "1.12.1", rubocop_lts: "12.3.0", rails_appraisals: ["4.2.11.3", "5.2.8.1"]),
-  "ruby-2.5" => RRRRBMatrixEntry.new(ruby: "2.5.9", engine: "ruby", rubocop: "1.28.2", rubocop_lts: "14.3.0", rails: "6.0.6.1"),
-  "jruby-9.2" => RRRRBMatrixEntry.new(ruby: "jruby-9.2.21.0", engine: "jruby", mri: "2.5", workflow_ruby: "2.5", rubygems: "3.3.27", bundler: "2.3.27"),
-  "ruby-2.6" => RRRRBMatrixEntry.new(ruby: "2.6.10", engine: "ruby", rubygems: "3.4.22", bundler: "2.4.22", rubocop: "1.50.2", rubocop_lts: "16.3.0", rails: "6.1.7.10"),
-  "jruby-9.3" => RRRRBMatrixEntry.new(ruby: "jruby-9.3.15.0", engine: "jruby", mri: "2.6", workflow_ruby: "2.6", notes: ["JRuby 9.3 can require jar-dependencies ~> 0.4.1 when psych activates a newer default gem stack."]),
-  "ruby-2.7" => RRRRBMatrixEntry.new(ruby: "2.7.8", engine: "ruby", rubocop: "1.80.x", rubocop_lts: "18.4.0", rails: "7.2.2.2"),
-  "ruby-3.0" => RRRRBMatrixEntry.new(ruby: "3.0.7", engine: "ruby", rubygems: "3.5.23", bundler: "2.5.23", rubocop_lts: "20.4.0"),
-  "truffleruby-22.3" => RRRRBMatrixEntry.new(ruby: "truffleruby-22.3.1", engine: "truffleruby", mri: "3.0", workflow_ruby: "3.0", notes: ["Do not upgrade RubyGems or Bundler on TruffleRuby."]),
-  "ruby-3.1" => RRRRBMatrixEntry.new(ruby: "3.1.7", engine: "ruby", rubygems: "3.6.9", bundler: "2.6.9", rubocop_lts: "22.3.0"),
-  "truffleruby-23.0" => RRRRBMatrixEntry.new(ruby: "truffleruby-23.0.0", engine: "truffleruby", mri: "3.1", workflow_ruby: "3.0", notes: ["Do not upgrade RubyGems or Bundler on TruffleRuby.", "psych < 5.3 is needed while Gem.ruby_version is below 3.3."]),
-  "jruby-9.4" => RRRRBMatrixEntry.new(ruby: "jruby-9.4.12.x", engine: "jruby", mri: "3.1", workflow_ruby: "3.1"),
-  "ruby-3.2" => RRRRBMatrixEntry.new(ruby: "3.2.9", engine: "ruby", rubygems: "3.7.x", bundler: "2.7.x", rubocop_lts: "24.2.0", rails: "8.0.x"),
-  "truffleruby-23.1" => RRRRBMatrixEntry.new(ruby: "truffleruby-23.1.2", engine: "truffleruby", mri: "3.2", workflow_ruby: "3.1", notes: ["Do not upgrade RubyGems or Bundler on TruffleRuby.", "Use the Ruby 3.1/Rails 7.2 appraisal in CI; Rails 8 failed on this engine.", "psych < 5.3 is needed while Gem.ruby_version is below 3.3."]),
-  "ruby-3.3" => RRRRBMatrixEntry.new(ruby: "3.3.9", engine: "ruby"),
-  "truffleruby-24.2" => RRRRBMatrixEntry.new(ruby: "truffleruby-24.2.x", engine: "truffleruby", mri: "3.3", workflow_ruby: "3.3", notes: ["Do not upgrade RubyGems or Bundler on TruffleRuby."]),
-  "truffleruby-25.0" => RRRRBMatrixEntry.new(ruby: "truffleruby-25.0.x", engine: "truffleruby", mri: "3.3", workflow_ruby: "3.3", notes: ["Do not upgrade RubyGems or Bundler on TruffleRuby."]),
-  "ruby-3.4" => RRRRBMatrixEntry.new(ruby: "3.4.7", engine: "ruby")
-}.transform_values(&:freeze).freeze
- -
ENGINE_WORKFLOW_MAP = - -
-
{
-  "jruby" => "jruby",
-  "jruby-9.1" => "jruby",
-  "jruby-9.2" => "jruby",
-  "jruby-9.3" => "jruby",
-  "jruby-9.4" => "jruby",
-  "truffle" => "truffleruby",
-  "truffleruby-22.3" => "truffleruby",
-  "truffleruby-23.0" => "truffleruby",
-  "truffleruby-23.1" => "truffleruby",
-  "truffleruby-24.2" => "truffleruby",
-  "truffleruby-25.0" => "truffleruby"
-}.freeze
- -
ENGINE_WORKFLOW_RUBY_COMPATIBILITY_FLOORS = - -
-
RRRRB_MATRIX.each_with_object({}) do |(name, entry), result|
-  result[name] = entry.workflow_ruby if entry.workflow_ruby
-end.freeze
+
"galtzo-floss"
RETIRED_GEMSPEC_DEVELOPMENT_DEPENDENCIES = @@ -248,6 +205,7 @@

supplied_disabled_opencollective_file_deletion supplied_legacy_destination_file_deletion supplied_obsolete_license_file_deletion + supplied_shim_profile_file_deletion ].freeze
PHASE_ORDER = @@ -272,6 +230,11 @@

File.expand_path("jem/templates", __dir__)
+
TRANSFER_CHANGELOG_TEMPLATE_PATH = + +
+
"CHANGELOG.transfer.md"
+
COPY_ONLY_WHEN_MISSING_TEMPLATE_PATHS =
@@ -302,6 +265,11 @@

MONOREPO_SUBGEM_PACKAGE_TEMPLATE_PROFILE
+
SHIM_TEMPLATE_PROFILE = + +
+
"shim"
+
FULL_TEMPLATE_PROFILE =
@@ -334,6 +302,7 @@

"Rakefile", "SECURITY.md", ".github/FUNDING.yml", + ".gitignore", ".structuredmerge/git-drivers.toml" ].freeze @@ -348,6 +317,7 @@

"PolyForm-Noncommercial-1.0.0.md", "PolyForm-Small-Business-1.0.0.md", "Big-Time-Public-License.md", + "Gemfile", "certs/pboling.pem", "tmp/.gitignore" ].freeze @@ -377,12 +347,75 @@

] + PACKAGED_MODULAR_GEMFILE_TEMPLATE_ENTRIES ).freeze +
SHIM_TEMPLATE_STATIC_ENTRIES = + +
+
[
+  "README.md",
+  "CHANGELOG.md",
+  "Gemfile",
+  "Rakefile",
+  ".gitignore",
+  ".rspec",
+  "gemfiles/modular/templating.gemfile",
+  "gemfiles/modular/templating_local.gemfile",
+  "spec/spec_helper.rb",
+  "spec/shim_spec.rb",
+  ".github/workflows/current.yml",
+  ".structuredmerge/kettle-jem.yml"
+].freeze
+ +
SHIM_TEMPLATE_SOURCE_TARGETS = + +
+
{
+  "README.md" => "shim/README.md",
+  "CHANGELOG.md" => "shim/CHANGELOG.md",
+  "Gemfile" => "shim/Gemfile",
+  "Rakefile" => "shim/Rakefile",
+  ".rspec" => "shim/.rspec",
+  "spec/spec_helper.rb" => "shim/spec/spec_helper.rb",
+  "spec/shim_spec.rb" => "shim/spec/shim_spec.rb",
+  ".github/workflows/current.yml" => "shim/.github/workflows/current.yml",
+  ".structuredmerge/kettle-jem.yml" => "shim/.structuredmerge/kettle-jem.yml"
+}.freeze
+ +
SHIM_PROFILE_CLEANUP_GLOBS = + +
+
[
+  "Appraisal.root.gemfile",
+  "Appraisals",
+  "Guardfile",
+  ".simplecov",
+  ".yardignore",
+  ".yardopts",
+  ".github/FUNDING.yml",
+  ".gitattributes",
+  "bin/*",
+  "gemfiles/**/*.gemfile",
+  "sig/**/*.rbs",
+  "spec/**/*_spec.rb",
+  "spec/support/**/*",
+  ".github/workflows/*.yml",
+  "lib/**/*.rb",
+  "*.gemspec"
+].freeze
+ +
EXECUTABLE_GIT_HOOK_PATHS = + +
+
%w[
+  .git-hooks/commit-msg
+  .git-hooks/prepare-commit-msg
+].freeze
+
VERSION_GEM_TEMPLATE_SOURCES =
[
   "lib/gem/version.rb",
-  "sig/gem/version.rbs"
+  "sig/gem.rbs"
 ].freeze
KETTLE_CONFIG_ENV_SYNC_PATHS = @@ -395,6 +428,8 @@

%w[yard_host] => "KJ_YARD_HOST", %w[homepage_uri] => "KJ_HOMEPAGE_URI", %w[templates profile] => "KETTLE_JEM_TEMPLATE_PROFILE", + %w[shim replacement_gem] => "KETTLE_JEM_SHIMMED_GEM", + %w[shim replacement_require] => "KETTLE_JEM_SHIMMED_REQUIRE", %w[workflows exec_cmd] => "KJ_EXEC_CMD", %w[tokens forge gh_user] => "KJ_GH_USER", %w[tokens forge gl_user] => "KJ_GL_USER", @@ -406,13 +441,11 @@

%w[tokens author email] => "KJ_AUTHOR_EMAIL", %w[tokens author domain] => "KJ_AUTHOR_DOMAIN", %w[tokens author orcid] => "KJ_AUTHOR_ORCID", - %w[tokens funding patreon] => "KJ_FUNDING_PATREON", %w[tokens funding kofi] => "KJ_FUNDING_KOFI", + %w[tokens funding open_collective] => %w[OPENCOLLECTIVE_HANDLE FUNDING_ORG], %w[tokens funding paypal] => "KJ_FUNDING_PAYPAL", %w[tokens funding buymeacoffee] => "KJ_FUNDING_BUYMEACOFFEE", - %w[tokens funding polar] => "KJ_FUNDING_POLAR", %w[tokens funding liberapay] => "KJ_FUNDING_LIBERAPAY", - %w[tokens funding issuehunt] => "KJ_FUNDING_ISSUEHUNT", %w[tokens social mastodon] => "KJ_SOCIAL_MASTODON", %w[tokens social bluesky] => "KJ_SOCIAL_BLUESKY", %w[tokens social linktree] => "KJ_SOCIAL_LINKTREE", @@ -442,6 +475,15 @@

SECURITY ].freeze +
KNOWN_LICENSE_TEMPLATE_BASENAMES = + +
+
Dir.glob(File.join(PACKAGED_TEMPLATE_ROOT, "*.md.example"))
+.map { |path| File.basename(path, ".md.example") }
+.reject { |basename| NON_LICENSE_MD_BASENAMES.include?(basename) }
+.to_set
+.freeze
+
MONOREPO_SUBGEM_README_BLOB_PATHS =
@@ -454,6 +496,52 @@

SECURITY.md ].freeze +
README_DEV_TEST_STACK_GEMS = + +
+
[
+  {
+    name: "appraisal2",
+    repo: "https://github.com/appraisal-rb/appraisal2",
+    role: "multi-dependency Appraisal matrix generation"
+  },
+  {
+    name: "appraisal2-rubocop",
+    repo: "https://github.com/appraisal-rb/appraisal2-rubocop",
+    role: "RuboCop Appraisal generator integration"
+  },
+  {
+    name: "kettle-dev",
+    repo: "https://github.com/kettle-dev/kettle-dev",
+    role: "development, release, and CI workflow tooling"
+  },
+  {
+    name: "kettle-jem",
+    repo: "https://github.com/kettle-dev/kettle-jem",
+    role: "Appraisals & CI workflow templates"
+  },
+  {
+    name: "kettle-soup-cover",
+    repo: "https://github.com/kettle-dev/kettle-soup-cover",
+    role: "SimpleCov coverage policy and reporting"
+  },
+  {
+    name: "kettle-test",
+    repo: "https://github.com/kettle-dev/kettle-test",
+    role: "standard test runner and coverage harness"
+  },
+  {
+    name: "rubocop-lts",
+    repo: "https://github.com/rubocop-lts/rubocop-lts",
+    role: "Ruby-version-aware linting"
+  },
+  {
+    name: "turbo_tests2",
+    repo: "https://github.com/galtzo-floss/turbo_tests2",
+    role: "parallel test execution"
+  }
+].freeze
+
MONOREPO_SUBGEM_THIN_README_KEEP_HEADINGS =
@@ -536,12 +624,10 @@

KJ|AUTHOR:DOMAIN KJ|AUTHOR:NAME KJ|FUNDING:BUYMEACOFFEE - KJ|FUNDING:ISSUEHUNT KJ|FUNDING:KOFI KJ|FUNDING:LIBERAPAY - KJ|FUNDING:PATREON KJ|FUNDING:PAYPAL - KJ|FUNDING:POLAR + KJ|GEMSPEC:PACKAGE_FILE_INCLUDES KJ|GH:USER KJ|GH_ORG KJ|GL:USER @@ -549,6 +635,7 @@

KJ|LICENSE_EYE:DEPENDENCY_LICENSES KJ|LICENSE_EYE:MODE KJ|LICENSE_EYE:PRIMARY_SPDX + KJ|MAIN_GEMFILE_DIRECT_SIBLING_BLOCK KJ|MIN_DIVERGENCE_THRESHOLD KJ|MIN_RUBY KJ|OPENCOLLECTIVE_ORG @@ -557,6 +644,7 @@

KJ|README:LICENSE_BADGE KJ|README:LICENSE_COMPAT_BADGE KJ|README:LICENSE_EYE_WORKFLOW_BADGE + KJ|README:DEV_TEST_STACK_TABLE KJ|README:FOSSA_BADGE KJ|README:FOSSA_REFS KJ|README:H2_SYNOPSIS_LOGO_ROW @@ -564,7 +652,12 @@

KJ|README:LICENSE_REFS KJ|README:TOP_LOGO_REFS KJ|README:TOP_LOGO_ROW + KJ|RUBY_STYLE:TRAILING_ARRAY_COMMA KJ|SH:USER + KJ|SHIMMED_GEM_NAME + KJ|SHIMMED_REQUIRE + KJ|SHIM_COMPAT_REQUIRES + KJ|SHIMMED_GEMFILE_OVERRIDE KJ|SOCIAL:BLUESKY KJ|SOCIAL:DEVTO KJ|SOCIAL:LINKTREE @@ -760,6 +853,11 @@

%w[MIT].freeze
+
SKYWALKING_EYES_INTEGRATION = + +
+
"skywalking-eyes"
+
README_OPEN_COLLECTIVE_FUNDING_BADGES =
@@ -784,7 +882,38 @@

README_INTEGRATIONS =
-
%w[codecov coveralls qlty codeql].freeze
+
%w[codecov coveralls qlty codeql skywalking-eyes].freeze
+ +
README_DISCOVERED_INTEGRATIONS = + +
+
(README_INTEGRATIONS - [SKYWALKING_EYES_INTEGRATION]).freeze
+ +
COVERAGE_INTEGRATIONS = + +
+
%w[codecov coveralls qlty].freeze
+ +
MANAGED_INTEGRATIONS = + +
+
(COVERAGE_INTEGRATIONS + [SKYWALKING_EYES_INTEGRATION]).freeze
+ +
COVERAGE_INTEGRATION_CONFIG_PATHS = + +
+
{
+  "codecov" => %w[.github/.codecov.yml codecov.yml .codecov.yml],
+  "coveralls" => %w[.coveralls.yml],
+  "qlty" => %w[.qlty/qlty.toml .qlty.yml]
+}.freeze
+ +
INTEGRATION_TEMPLATE_PATHS = + +
+
COVERAGE_INTEGRATION_CONFIG_PATHS.merge(
+  SKYWALKING_EYES_INTEGRATION => %w[.licenserc.yaml .github/workflows/license-eye.yml .github/workflows/license-eye.yaml]
+).freeze
README_INTEGRATION_BADGE_PATTERNS = @@ -803,6 +932,9 @@

], "codeql" => [ /\s*\[!\[CodeQL\]\[[^\]]+\]\]\[[^\]]+\]/ + ], + "skywalking-eyes" => [ + /\s*\[!\[Apache SkyWalking Eyes License Compatibility Check\]\[[^\]]+\]\]\[[^\]]+\]/ ] }.freeze @@ -813,7 +945,8 @@

"codecov" => %w[🏀codecov 🏀codecovi 🏀codecov-g], "coveralls" => %w[🏀coveralls 🏀coveralls-img], "qlty" => %w[🏀qlty-mnt 🏀qlty-mnti 🏀qlty-cov 🏀qlty-covi], - "codeql" => %w[🖐codeQL 🖐codeQL-img] + "codeql" => %w[🖐codeQL 🖐codeQL-img], + "skywalking-eyes" => README_LICENSE_EYE_WORKFLOW_LINK_LABELS }.freeze
README_SECTION_ALIASES = @@ -836,25 +969,6 @@

%r{/var/home(?=/|\z)}
-
RUBOCOP_VERSION_MAP = - -
-
[
-  [Gem::Version.new("1.8"), "\"~> 0.3\", \">= 0.3.0\"", "rubocop-ruby1_8", "\"~> 2.0\", \">= 2.0.2\""],
-  [Gem::Version.new("1.9"), "\"~> 2.3\", \">= 2.3.0\"", "rubocop-ruby1_9", "\"~> 3.0\", \">= 3.0.2\""],
-  [Gem::Version.new("2.0"), "\"~> 4.2\", \">= 4.2.0\"", "rubocop-ruby2_0", "\"~> 3.0\", \">= 3.0.2\""],
-  [Gem::Version.new("2.1"), "\"~> 6.3\", \">= 6.3.0\"", "rubocop-ruby2_1", "\"~> 3.0\", \">= 3.0.2\""],
-  [Gem::Version.new("2.2"), "\"~> 8.3\", \">= 8.3.0\"", "rubocop-ruby2_2", "\"~> 3.0\", \">= 3.0.2\""],
-  [Gem::Version.new("2.3"), "\"~> 10.3\", \">= 10.3.0\"", "rubocop-ruby2_3", "\"~> 3.0\", \">= 3.0.2\""],
-  [Gem::Version.new("2.4"), "\"~> 12.3\", \">= 12.3.0\"", "rubocop-ruby2_4", "\"~> 3.0\", \">= 3.0.2\""],
-  [Gem::Version.new("2.5"), "\"~> 14.3\", \">= 14.3.0\"", "rubocop-ruby2_5", "\"~> 3.0\", \">= 3.0.2\""],
-  [Gem::Version.new("2.6"), "\"~> 16.3\", \">= 16.3.0\"", "rubocop-ruby2_6", "\"~> 3.0\", \">= 3.0.2\""],
-  [Gem::Version.new("2.7"), "\"~> 18.4\", \">= 18.4.0\"", "rubocop-ruby2_7", "\"~> 3.0\", \">= 3.0.2\""],
-  [Gem::Version.new("3.0"), "\"~> 20.4\", \">= 20.4.0\"", "rubocop-ruby3_0", "\"~> 3.0\", \">= 3.0.2\""],
-  [Gem::Version.new("3.1"), "\"~> 22.3\", \">= 22.3.0\"", "rubocop-ruby3_1", "\"~> 3.0\", \">= 3.0.2\""],
-  [Gem::Version.new("3.2"), "\"~> 24.2\", \">= 24.2.0\"", "rubocop-ruby3_2", "\"~> 3.0\", \">= 3.0.2\""]
-].freeze
-
FORGE_USER_ENV_KEYS =
@@ -869,13 +983,10 @@

{
-  patreon: "KJ_FUNDING_PATREON",
   kofi: "KJ_FUNDING_KOFI",
   paypal: "KJ_FUNDING_PAYPAL",
   buymeacoffee: "KJ_FUNDING_BUYMEACOFFEE",
-  polar: "KJ_FUNDING_POLAR",
-  liberapay: "KJ_FUNDING_LIBERAPAY",
-  issuehunt: "KJ_FUNDING_ISSUEHUNT"
+  liberapay: "KJ_FUNDING_LIBERAPAY"
 }.freeze
SOCIAL_TOKEN_ENV_KEYS = @@ -1018,6 +1129,29 @@

+
+
+ + + + +
  • + + + .adapter_failure_template_source_error(file_type, recipe) ⇒ Object + + + + + + + + + + + + +
    @@ -1087,6 +1221,52 @@

    +
    +
    + +

  • + + +
  • + + + .add_shim_bootstrap_config(content, shim) ⇒ Object + + + + + + + + + + + + + +
    +
    + +
  • + + +
  • + + + .add_shim_file_overrides(content, gemspec_path) ⇒ Object + + + + + + + + + + + + +
    @@ -1142,7 +1322,7 @@

  • - .append_github_actions_coverage_steps(content) ⇒ Object + .append_github_actions_coverage_steps(content, disabled_integrations: []) ⇒ Object @@ -1225,6 +1405,29 @@

    +
    +
    + +

  • + + +
  • + + + .apply_changelog_transfer_entries(content, entries) ⇒ Object + + + + + + + + + + + + +
    @@ -1593,6 +1796,29 @@

    +
    +
    + +

  • + + +
  • + + + .apply_shim_template_profile(content, gemspec_path) ⇒ Object + + + + + + + + + + + + +
    @@ -3074,7 +3300,7 @@

  • - .changelog_unreleased_end_index(lines, unreleased_index) ⇒ Object + .changelog_transfer_entries(template_root) ⇒ Object @@ -3097,7 +3323,7 @@

  • - .changelog_unreleased_heading?(heading_text) ⇒ Boolean + .changelog_transfer_key(line) ⇒ Object @@ -3120,7 +3346,7 @@

  • - .changelog_unreleased_heading_line?(line) ⇒ Boolean + .changelog_transfer_keys(content) ⇒ Object @@ -3143,7 +3369,7 @@

  • - .changelog_unreleased_items(body_lines) ⇒ Object + .changelog_unreleased_end_index(lines, unreleased_index) ⇒ Object @@ -3166,7 +3392,7 @@

  • - .changelog_unreleased_line_index(lines) ⇒ Object + .changelog_unreleased_heading?(heading_text) ⇒ Boolean @@ -3189,7 +3415,7 @@

  • - .changelog_version_heading_line?(line, version) ⇒ Boolean + .changelog_unreleased_heading_line?(line) ⇒ Boolean @@ -3212,7 +3438,7 @@

  • - .classify_namespace(name) ⇒ Object + .changelog_unreleased_items(body_lines) ⇒ Object @@ -3235,7 +3461,7 @@

  • - .codeberg_repo_url(repository, repo_slug, suffix) ⇒ Object + .changelog_unreleased_line_index(lines) ⇒ Object @@ -3258,7 +3484,7 @@

  • - .collapse_excess_blank_lines(content) ⇒ Object + .changelog_version_heading_line?(line, version) ⇒ Boolean @@ -3281,7 +3507,7 @@

  • - .collect_changelog_list_item(lines, start_index) ⇒ Object + .classify_namespace(name) ⇒ Object @@ -3304,7 +3530,7 @@

  • - .collect_yaml_scalar_path_entries(node, path, entries) ⇒ Object + .codeberg_repo_url(repository, repo_slug, suffix) ⇒ Object @@ -3327,7 +3553,7 @@

  • - .commented_gem_call(comment_source) ⇒ Object + .collapse_excess_blank_lines(content) ⇒ Object @@ -3350,7 +3576,7 @@

  • - .commented_gem_dependency_block_records(content) ⇒ Object + .collapse_nested_templating_guards(content) ⇒ Object @@ -3373,7 +3599,7 @@

  • - .commented_gem_dependency_blocks(content) ⇒ Object + .collect_changelog_list_item(lines, start_index) ⇒ Object @@ -3396,7 +3622,7 @@

  • - .commented_gem_dependency_records(content) ⇒ Object + .collect_yaml_mapping_path_entries(node, path, entries) ⇒ Object @@ -3419,7 +3645,7 @@

  • - .compact_hash(hash) ⇒ Object + .collect_yaml_scalar_path_entries(node, path, entries) ⇒ Object @@ -3442,7 +3668,7 @@

  • - .concrete_github_url(url) ⇒ Object + .commented_gem_call(comment_source) ⇒ Object @@ -3465,7 +3691,7 @@

  • - .config_min_ruby(config) ⇒ Object + .commented_gem_dependency_block_records(content) ⇒ Object @@ -3488,7 +3714,7 @@

  • - .config_test_min_ruby(config, gem_min_ruby = nil) ⇒ Object + .commented_gem_dependency_blocks(content) ⇒ Object @@ -3511,7 +3737,7 @@

  • - .configured_readme_top_logo_entries(config, org:, gem_name:, repository: {}) ⇒ Object + .commented_gem_dependency_records(content) ⇒ Object @@ -3534,7 +3760,7 @@

  • - .content_recipe_execution_report(request:, final_content:, changed:, step_reports:, diagnostics:, metadata: nil) ⇒ Object + .compact_hash(hash) ⇒ Object @@ -3557,7 +3783,7 @@

  • - .content_recipe_execution_report_envelope(report) ⇒ Object + .concrete_github_url(url) ⇒ Object @@ -3580,7 +3806,7 @@

  • - .content_recipe_execution_request(recipe_name:, recipe_version:, relative_path:, provider_family:, template_content:, destination_content:, steps:, provider_backend: nil, runtime_context: nil, metadata: nil) ⇒ Object + .config_min_ruby(config) ⇒ Object @@ -3603,7 +3829,7 @@

  • - .content_recipe_execution_request_envelope(request) ⇒ Object + .config_test_min_ruby(config, gem_min_ruby = nil) ⇒ Object @@ -3626,7 +3852,7 @@

  • - .content_recipe_step(recipe) ⇒ Object + .configured_disabled_integrations(config) ⇒ Object @@ -3649,7 +3875,7 @@

  • - .content_recipe_step_report(recipe:, request:, original:, final:, changed:, deletion: nil) ⇒ Object + .configured_readme_top_logo_entries(config, org:, gem_name:, repository: {}) ⇒ Object @@ -3672,7 +3898,7 @@

  • - .copy_only_when_missing_template_path?(relative_path) ⇒ Boolean + .content_recipe_execution_report(request:, final_content:, changed:, step_reports:, diagnostics:, metadata: nil) ⇒ Object @@ -3695,7 +3921,7 @@

  • - .copyright_author_names(copyright) ⇒ Object + .content_recipe_execution_report_envelope(report) ⇒ Object @@ -3718,7 +3944,7 @@

  • - .copyright_bot_entry?(entry) ⇒ Boolean + .content_recipe_execution_request(recipe_name:, recipe_version:, relative_path:, provider_family:, template_content:, destination_content:, steps:, provider_backend: nil, runtime_context: nil, metadata: nil) ⇒ Object @@ -3741,7 +3967,7 @@

  • - .copyright_facts(project_root, config) ⇒ Object + .content_recipe_execution_request_envelope(request) ⇒ Object @@ -3764,7 +3990,7 @@

  • - .copyright_machine_user_entry?(entry, machine_users) ⇒ Boolean + .content_recipe_step(recipe) ⇒ Object @@ -3787,7 +4013,7 @@

  • - .copyright_machine_users(config) ⇒ Object + .content_recipe_step_report(recipe:, request:, original:, final:, changed:, deletion: nil) ⇒ Object @@ -3810,7 +4036,7 @@

  • - .copyright_name_from_line(line) ⇒ Object + .copy_only_when_missing_template_path?(relative_path) ⇒ Boolean @@ -3833,7 +4059,7 @@

  • - .copyright_notice_lines(copyright_lines, copyright_prefix, author) ⇒ Object + .copyright_author_names(copyright) ⇒ Object @@ -3856,7 +4082,7 @@

  • - .copyright_year_token?(token) ⇒ Boolean + .copyright_bot_entry?(entry) ⇒ Boolean @@ -3879,7 +4105,7 @@

  • - .coverage_thresholds_from_mise(content) ⇒ Object + .copyright_facts(project_root, config) ⇒ Object @@ -3902,7 +4128,7 @@

  • - .coverage_thresholds_from_project_mise(project_root) ⇒ Object + .copyright_machine_user_entry?(entry, machine_users) ⇒ Boolean @@ -3925,7 +4151,7 @@

  • - .coverage_thresholds_from_workflow(project_root) ⇒ Object + .copyright_machine_users(config) ⇒ Object @@ -3948,7 +4174,7 @@

  • - .coverage_thresholds_from_yaml_workflow(content) ⇒ Object + .copyright_name_from_line(line) ⇒ Object @@ -3971,7 +4197,7 @@

  • - .current_changelog_version_section(content, version) ⇒ Object + .copyright_notice_lines(copyright_lines, copyright_prefix, author) ⇒ Object @@ -3994,7 +4220,7 @@

  • - .decision_policy_for(env, run_options) ⇒ Object + .copyright_year_token?(token) ⇒ Boolean @@ -4017,7 +4243,7 @@

  • - .decorative_grapheme?(grapheme) ⇒ Boolean + .coverage_thresholds_from_mise(content) ⇒ Object @@ -4040,7 +4266,7 @@

  • - .deduplicate_readme_top_logo_entries(entries) ⇒ Object + .coverage_thresholds_from_project_mise(project_root) ⇒ Object @@ -4063,7 +4289,7 @@

  • - .deep_dup(value) ⇒ Object + .coverage_thresholds_from_workflow(project_root) ⇒ Object @@ -4086,7 +4312,7 @@

  • - .deep_string_key_hash(value) ⇒ Object + .coverage_thresholds_from_yaml_workflow(content) ⇒ Object @@ -4109,7 +4335,7 @@

  • - .default_framework_matrix_requirement(version) ⇒ Object + .current_changelog_version_section(content, version) ⇒ Object @@ -4132,7 +4358,7 @@

  • - .default_readme_top_logo_credit(type) ⇒ Object + .decision_policy_for(env, run_options) ⇒ Object @@ -4155,7 +4381,7 @@

  • - .default_readme_top_logo_href(type, slug:, org:, gem_name:, repository: {}) ⇒ Object + .decorative_grapheme?(grapheme) ⇒ Boolean @@ -4178,7 +4404,7 @@

  • - .default_readme_top_logo_slug(type, org:, gem_name:, repository: {}) ⇒ Object + .deduplicate_main_gemfile_direct_sibling_blocks(content) ⇒ Object @@ -4201,7 +4427,7 @@

  • - .default_template_config ⇒ Object + .deduplicate_readme_top_logo_entries(entries) ⇒ Object @@ -4224,7 +4450,7 @@

  • - .default_template_strategy_config(template_root, target_path) ⇒ Object + .deep_dup(value) ⇒ Object @@ -4247,7 +4473,7 @@

  • - .delete_file_recipe?(recipe) ⇒ Boolean + .deep_string_key_hash(value) ⇒ Object @@ -4270,7 +4496,7 @@

  • - .delete_line_ranges(content, selectors) ⇒ Object + .default_framework_matrix_requirement(version) ⇒ Object @@ -4293,7 +4519,7 @@

  • - .delete_markdown_with_ast_crispr(content, target) ⇒ Object + .default_readme_top_logo_credit(type) ⇒ Object @@ -4316,7 +4542,7 @@

  • - .delete_rakefile_scaffold(content) ⇒ Object + .default_readme_top_logo_href(type, slug:, org:, gem_name:, repository: {}) ⇒ Object @@ -4339,7 +4565,7 @@

  • - .detected_license_ids(project_root) ⇒ Object + .default_readme_top_logo_slug(type, org:, gem_name:, repository: {}) ⇒ Object @@ -4362,7 +4588,7 @@

  • - .discover_facts(project_root, env: ENV, run_options: {}) ⇒ Object + .default_template_config ⇒ Object @@ -4385,7 +4611,7 @@

  • - .discover_monorepo_root_facts(project_root, kettle_config, env, template_selection) ⇒ Object + .default_template_strategy_config(template_root, target_path) ⇒ Object @@ -4408,7 +4634,7 @@

  • - .display_path(path) ⇒ Object + .delete_file_recipe?(recipe) ⇒ Boolean @@ -4431,7 +4657,7 @@

  • - .display_text(text) ⇒ Object + .delete_line_ranges(content, selectors) ⇒ Object @@ -4454,7 +4680,7 @@

  • - .dotenv_merge_options(recipe) ⇒ Object + .delete_markdown_with_ast_crispr(content, target) ⇒ Object @@ -4477,7 +4703,7 @@

  • - .duplicate_drift_report(project_root:, template_root:, run_options: {}) ⇒ Object + .delete_project_file(project_root, relative_path) ⇒ Object @@ -4500,7 +4726,7 @@

  • - .enabled_ruby_engines(config) ⇒ Object + .delete_rakefile_scaffold(content) ⇒ Object @@ -4523,7 +4749,7 @@

  • - .enforce_git_preflight!(git_preflight, decision_policy:, template_selection:) ⇒ Object + .detected_license_ids(project_root) ⇒ Object @@ -4546,7 +4772,7 @@

  • - .ensure_gemspec_legacy_version_loader_preamble(content, entrypoint_require:, namespace:, min_ruby:) ⇒ Object + .direct_sibling_directory_defines_gem?(sibling_path, gem_name) ⇒ Boolean @@ -4569,7 +4795,7 @@

  • - .ensure_monorepo_root_gemfile_dependencies(content) ⇒ Object + .direct_sibling_runtime_gems(project_root, gemspec_metadata, package_name:, local_modular_eval_paths: {}) ⇒ Object @@ -4592,7 +4818,7 @@

  • - .ensure_trailing_newline(text) ⇒ Object + .direct_sibling_workspace_slug(source_url, project_root) ⇒ Object @@ -4615,7 +4841,7 @@

  • - .ensure_workflow_top_level_section(content, key, section, before:) ⇒ Object + .disabled_coverage_integrations(config) ⇒ Object @@ -4638,7 +4864,7 @@

  • - .env_overridden_gemspec_fields(env) ⇒ Object + .disabled_integration_config_cleanups(project_root, config) ⇒ Object @@ -4661,7 +4887,7 @@

  • - .execute_recipe(project_root:, recipe:, facts:, files:, decision_policy:, env: ENV) ⇒ Object + .disabled_integration_template_path?(target_path, config) ⇒ Boolean @@ -4684,7 +4910,7 @@

  • - .existing_entrypoint_version_namespace(project_root, relative_path) ⇒ Object + .disabled_integrations(config, license: nil) ⇒ Object @@ -4707,7 +4933,7 @@

  • - .existing_version_file_value(project_root, relative_path) ⇒ Object + .discover_facts(project_root, env: ENV, run_options: {}) ⇒ Object @@ -4730,7 +4956,7 @@

  • - .existing_version_namespace(project_root, relative_path) ⇒ Object + .discover_monorepo_root_facts(project_root, kettle_config, env, template_selection) ⇒ Object @@ -4753,7 +4979,7 @@

  • - .expand_framework_gemfile_pattern(pattern, version) ⇒ Object + .display_path(path) ⇒ Object @@ -4767,7 +4993,7 @@

    -
    +

    rubocop:enable ThreadSafety/ClassInstanceVariable.

  • @@ -4776,7 +5002,7 @@

  • - .expand_line_range_through_following_blanks(content, end_line) ⇒ Object + .display_text(text) ⇒ Object @@ -4799,7 +5025,7 @@

  • - .explicit_zero_runtime_floor?(facts) ⇒ Boolean + .dotenv_merge_options(recipe) ⇒ Object @@ -4822,7 +5048,7 @@

  • - .extract_gemspec_development_dependencies(gemspec) ⇒ Object + .duplicate_drift_report(project_root:, template_root:, run_options: {}) ⇒ Object @@ -4845,7 +5071,7 @@

  • - .fallback_adapter_failure_template_source(file_type, recipe, template_content, destination_content, facts) ⇒ Object + .enabled_ruby_engines(config) ⇒ Object @@ -4868,7 +5094,7 @@

  • - .falsey_config?(value) ⇒ Boolean + .enforce_gemspec_dependency_minimum_requirements(source, receiver:) ⇒ Object @@ -4891,7 +5117,7 @@

  • - .filter_recipe_pack(pack, template_selection) ⇒ Object + .enforce_git_preflight!(git_preflight, decision_policy:, template_selection:) ⇒ Object @@ -4914,7 +5140,7 @@

  • - .finalize_accepted_template_source(recipe, content, destination_content, facts:, project_root: nil) ⇒ Object + .ensure_gemspec_legacy_version_loader_preamble(content, entrypoint_require:, namespace:, min_ruby:) ⇒ Object @@ -4937,7 +5163,7 @@

  • - .finalize_gemfile_template_source(recipe, content, destination_content, facts:, template_content:) ⇒ Object + .ensure_main_gemfile_nomono_bootstrap(content, template_content) ⇒ Object @@ -4960,7 +5186,7 @@

  • - .finalize_github_workflow_template(content, facts = nil) ⇒ Object + .ensure_monorepo_root_gemfile_dependencies(content) ⇒ Object @@ -4983,7 +5209,7 @@

  • - .finalize_rubocop_config(content) ⇒ Object + .ensure_runtime_dependencies! ⇒ Object @@ -4997,7 +5223,7 @@

    -
    +

    rubocop:disable ThreadSafety/ClassInstanceVariable.

  • @@ -5006,7 +5232,7 @@

  • - .finalize_template_source_content(recipe, content) ⇒ Object + .ensure_spec_helper_simplecov_config_require(content) ⇒ Object @@ -5029,7 +5255,7 @@

  • - .first_grapheme(text) ⇒ Object + .ensure_spec_helper_simplecov_do_cov_bootstrap(content) ⇒ Object @@ -5052,7 +5278,7 @@

  • - .forge_facts(config, env, derived_github_user: nil) ⇒ Object + .ensure_spec_helper_simplecov_start(content) ⇒ Object @@ -5075,7 +5301,7 @@

  • - .forge_template_tokens(forge) ⇒ Object + .ensure_trailing_newline(text) ⇒ Object @@ -5098,7 +5324,7 @@

  • - .forge_user_value(forge_config, env, key, derived_value: nil) ⇒ Object + .ensure_workflow_top_level_section(content, key, section, before:) ⇒ Object @@ -5121,7 +5347,7 @@

  • - .format_copyright_years(years) ⇒ Object + .ensure_yaml_top_level_sequence_items(content, key, items) ⇒ Object @@ -5144,7 +5370,7 @@

  • - .framework_gemfile_path(gemfile) ⇒ Object + .env_overridden_gemspec_fields(env) ⇒ Object @@ -5167,7 +5393,7 @@

  • - .framework_matrix_appraisal_block(entry) ⇒ Object + .env_sync_value(env, env_key) ⇒ Object @@ -5190,7 +5416,7 @@

  • - .framework_matrix_appraisal_dependency_gemfiles(facts) ⇒ Object + .execute_recipe(project_root:, recipe:, facts:, files:, decision_policy:, env: ENV) ⇒ Object @@ -5213,7 +5439,7 @@

  • - .framework_matrix_appraisal_env_by_name(facts) ⇒ Object + .existing_entrypoint_version_namespace(project_root, relative_path) ⇒ Object @@ -5236,7 +5462,7 @@

  • - .framework_matrix_appraisal_gemfile_path(path) ⇒ Object + .existing_version_file_value(project_root, relative_path) ⇒ Object @@ -5259,7 +5485,7 @@

  • - .framework_matrix_appraisal_gemfiles(raw) ⇒ Object + .existing_version_namespace(project_root, relative_path) ⇒ Object @@ -5282,7 +5508,7 @@

  • - .framework_matrix_appraisal_name(dimension, slug) ⇒ Object + .expand_framework_gemfile_pattern(pattern, version) ⇒ Object @@ -5305,7 +5531,7 @@

  • - .framework_matrix_env(raw) ⇒ Object + .expand_line_range_through_following_blanks(content, end_line) ⇒ Object @@ -5328,7 +5554,7 @@

  • - .framework_matrix_replaced_appraisal_names(dimension, entry, name) ⇒ Object + .explicit_integration_enabled?(config, integration) ⇒ Boolean @@ -5351,7 +5577,7 @@

  • - .framework_matrix_version_entry(raw) ⇒ Object + .explicit_zero_runtime_floor?(facts) ⇒ Boolean @@ -5374,7 +5600,7 @@

  • - .framework_matrix_workflow_enabled?(raw) ⇒ Boolean + .extract_gemspec_development_dependencies(gemspec) ⇒ Object @@ -5397,7 +5623,7 @@

  • - .freeze_marker_blocks(content, freeze_token: nil) ⇒ Object + .fallback_opencollective_org ⇒ Object @@ -5420,7 +5646,7 @@

  • - .funding_platform_token_facts(config, env) ⇒ Object + .falsey_config?(value) ⇒ Boolean @@ -5443,7 +5669,7 @@

  • - .funding_platform_token_value(funding_config, env, key) ⇒ Object + .filter_recipe_pack(pack, template_selection) ⇒ Object @@ -5466,7 +5692,7 @@

  • - .funding_template_tokens(funding) ⇒ Object + .finalize_accepted_template_source(recipe, content, destination_content, facts:, project_root: nil) ⇒ Object @@ -5489,7 +5715,7 @@

  • - .funding_urls(project_root, package_name, funding_uri: nil, opencollective_disabled: false, open_collective_org: nil) ⇒ Object + .finalize_gemfile_template_source(recipe, content, destination_content, facts:, template_content:) ⇒ Object @@ -5512,7 +5738,7 @@

  • - .gem_major_token(version) ⇒ Object + .finalize_github_workflow_template(content, facts = nil) ⇒ Object @@ -5535,7 +5761,7 @@

  • - .gemfile_comment_line?(line) ⇒ Boolean + .finalize_rubocop_config(content) ⇒ Object @@ -5558,7 +5784,7 @@

  • - .gemfile_declares_gem?(content, gem_name) ⇒ Boolean + .finalize_template_source_content(recipe, content) ⇒ Object @@ -5581,7 +5807,7 @@

  • - .gemfile_dependency_insertion_line(content) ⇒ Object + .first_grapheme(text) ⇒ Object @@ -5604,7 +5830,7 @@

  • - .gemfile_dependency_names(content) ⇒ Object + .forge_facts(config, env, derived_github_user: nil) ⇒ Object @@ -5627,7 +5853,7 @@

  • - .gemfile_dependency_statement?(node) ⇒ Boolean + .forge_template_tokens(forge) ⇒ Object @@ -5650,7 +5876,7 @@

  • - .gemfile_eval_bucket_entries(content) ⇒ Object + .forge_user_value(forge_config, env, key, derived_value: nil) ⇒ Object @@ -5673,7 +5899,7 @@

  • - .gemfile_gem_call_records(content) ⇒ Object + .format_copyright_years(years) ⇒ Object @@ -5696,7 +5922,7 @@

  • - .gemfile_paragraphs(content) ⇒ Object + .framework_gemfile_path(gemfile) ⇒ Object @@ -5719,7 +5945,7 @@

  • - .gemfile_percent_w_names(content) ⇒ Object + .framework_matrix_appraisal_block(entry) ⇒ Object @@ -5742,7 +5968,7 @@

  • - .gemfile_policy_operations(template_content, original, final, request) ⇒ Object + .framework_matrix_appraisal_dependency_gemfiles(facts) ⇒ Object @@ -5765,7 +5991,7 @@

  • - .gemspec_assignment_end_line(call) ⇒ Object + .framework_matrix_appraisal_env_by_name(facts) ⇒ Object @@ -5788,7 +6014,7 @@

  • - .gemspec_assignment_field(call) ⇒ Object + .framework_matrix_appraisal_gemfile_path(path) ⇒ Object @@ -5811,7 +6037,7 @@

  • - .gemspec_assignment_records(source, receiver: nil) ⇒ Object + .framework_matrix_appraisal_gemfiles(raw) ⇒ Object @@ -5834,7 +6060,7 @@

  • - .gemspec_assignment_value(call) ⇒ Object + .framework_matrix_appraisal_name(dimension, slug) ⇒ Object @@ -5857,7 +6083,7 @@

  • - .gemspec_block_param(source) ⇒ Object + .framework_matrix_env(raw) ⇒ Object @@ -5880,7 +6106,7 @@

  • - .gemspec_dependency_call_kind(call) ⇒ Object + .framework_matrix_replaced_appraisal_names(dimension, entry, name) ⇒ Object @@ -5903,7 +6129,7 @@

  • - .gemspec_dependency_from_record(record) ⇒ Object + .framework_matrix_version_entry(raw) ⇒ Object @@ -5926,7 +6152,7 @@

  • - .gemspec_dependency_line_index(source, receiver:) ⇒ Object + .framework_matrix_workflow_enabled?(raw) ⇒ Boolean @@ -5949,7 +6175,7 @@

  • - .gemspec_dependency_line_key(line, receiver:) ⇒ Object + .freeze_marker_blocks(content, freeze_token: nil) ⇒ Object @@ -5972,7 +6198,7 @@

  • - .gemspec_dependency_names(source) ⇒ Object + .funding_platform_token_facts(config, env) ⇒ Object @@ -5995,7 +6221,7 @@

  • - .gemspec_dependency_record_key(record) ⇒ Object + .funding_platform_token_value(funding_config, env, key) ⇒ Object @@ -6018,7 +6244,7 @@

  • - .gemspec_dependency_record_version(record) ⇒ Object + .funding_template_tokens(funding) ⇒ Object @@ -6041,7 +6267,7 @@

  • - .gemspec_dependency_records(source, receiver: nil) ⇒ Object + .funding_urls(project_root, package_name, funding_uri: nil, opencollective_disabled: false, open_collective_org: nil) ⇒ Object @@ -6064,7 +6290,7 @@

  • - .gemspec_dependency_sort_key(name) ⇒ Object + .gem_major_token(version) ⇒ Object @@ -6087,7 +6313,7 @@

  • - .gemspec_dependency_source_newer?(candidate_source, current_source, receiver:) ⇒ Boolean + .gemfile_comment_line?(line) ⇒ Boolean @@ -6110,7 +6336,7 @@

  • - .gemspec_end_line(source) ⇒ Object + .gemfile_conditional_node?(node) ⇒ Boolean @@ -6133,7 +6359,7 @@

  • - .gemspec_field_receiver_and_name(field) ⇒ Object + .gemfile_declares_gem?(content, gem_name) ⇒ Boolean @@ -6156,7 +6382,7 @@

  • - .gemspec_legacy_version_loader_block(entrypoint_require:, namespace:, min_ruby:) ⇒ Object + .gemfile_dependency_insertion_line(content) ⇒ Object @@ -6179,7 +6405,7 @@

  • - .gemspec_legacy_version_loader_preamble_line_range(content) ⇒ Object + .gemfile_dependency_names(content) ⇒ Object @@ -6202,7 +6428,7 @@

  • - .gemspec_modern_version_loader_expression(entrypoint_require:, namespace:) ⇒ Object + .gemfile_dependency_statement?(node) ⇒ Boolean @@ -6225,7 +6451,7 @@

  • - .gemspec_new_call(source) ⇒ Object + .gemfile_eval_bucket_entries(content) ⇒ Object @@ -6248,7 +6474,7 @@

  • - .gemspec_path_declares_gem?(path, gem_name) ⇒ Boolean + .gemfile_eval_comment_start_line(lines, start_line) ⇒ Object @@ -6271,7 +6497,7 @@

  • - .gemspec_policy_operations(template_content, original, final, request) ⇒ Object + .gemfile_eval_paths(content) ⇒ Object @@ -6294,7 +6520,7 @@

  • - .gemspec_preserved_assignments(source, receiver:) ⇒ Object + .gemfile_gem_call_records(content) ⇒ Object @@ -6317,7 +6543,7 @@

  • - .gemspec_project_emoji(gemspec_metadata) ⇒ Object + .gemfile_nomono_dependency_names(content) ⇒ Object @@ -6340,7 +6566,7 @@

  • - .gemspec_runtime_floor_token(facts) ⇒ Object + .gemfile_paragraphs(content) ⇒ Object @@ -6363,7 +6589,7 @@

  • - .gemspec_self_dependency_names(request, package_name) ⇒ Object + .gemfile_percent_w_names(content) ⇒ Object @@ -6386,7 +6612,7 @@

  • - .gemspec_top_level_gem_version_node(content) ⇒ Object + .gemfile_policy_operations(template_content, original, final, request) ⇒ Object @@ -6409,7 +6635,7 @@

  • - .gemspec_version_loader_policy_operation(original, final, request) ⇒ Object + .gemfile_workspace_override_node?(node) ⇒ Boolean @@ -6432,7 +6658,7 @@

  • - .generated_blocks_facts(gemspec, facts, run_options) ⇒ Object + .gemspec_assignment_field(call) ⇒ Object @@ -6455,7 +6681,7 @@

  • - .generated_kettle_config_without_templates?(config) ⇒ Boolean + .gemspec_assignment_records(source, receiver: nil) ⇒ Object @@ -6478,7 +6704,7 @@

  • - .generated_or_obsolete_github_workflow?(relative_path) ⇒ Boolean + .gemspec_assignment_value(call) ⇒ Object @@ -6501,7 +6727,7 @@

  • - .generated_version_tree_source_url?(source_url, version) ⇒ Boolean + .gemspec_block_param(source) ⇒ Object @@ -6524,7 +6750,7 @@

  • - .git_capture(project_root, *args) ⇒ Object + .gemspec_dependency_call_kind(call) ⇒ Object @@ -6547,7 +6773,7 @@

  • - .git_copyright_lines(project_root, machine_users) ⇒ Object + .gemspec_dependency_from_record(record) ⇒ Object @@ -6570,7 +6796,7 @@

  • - .git_output(project_root, *args) ⇒ Object + .gemspec_dependency_line_index(source, receiver:) ⇒ Object @@ -6593,7 +6819,7 @@

  • - .git_preflight_report(project_root, template_selection:) ⇒ Object + .gemspec_dependency_line_key(line, receiver:) ⇒ Object @@ -6616,7 +6842,7 @@

  • - .git_remote_source_url(project_root) ⇒ Object + .gemspec_dependency_minimum_requirement_replacement(call, requirement) ⇒ Object @@ -6639,7 +6865,7 @@

  • - .git_success?(project_root, *args) ⇒ Boolean + .gemspec_dependency_names(source) ⇒ Object @@ -6662,7 +6888,7 @@

  • - .git_worktree_prefix(project_root) ⇒ Object + .gemspec_dependency_record_key(record) ⇒ Object @@ -6685,7 +6911,7 @@

  • - .git_worktree_root(project_root) ⇒ Object + .gemspec_dependency_record_version(record) ⇒ Object @@ -6708,7 +6934,7 @@

  • - .github_actions_coverage_config(config, env = ENV) ⇒ Object + .gemspec_dependency_records(source, receiver: nil) ⇒ Object @@ -6731,7 +6957,7 @@

  • - .github_actions_coverage_enabled?(content) ⇒ Boolean + .gemspec_dependency_requirements_satisfy_floor?(requirements, floor_requirement) ⇒ Boolean @@ -6754,7 +6980,7 @@

  • - .github_actions_coverage_steps ⇒ Object + .gemspec_dependency_section_heading_comment?(stripped_line) ⇒ Boolean @@ -6768,7 +6994,7 @@

    -
    +

    Prism does not expose comments as normal AST statements, so dependency-section headings are bounded to single-line comments after the gemspec development note.

  • @@ -6777,7 +7003,7 @@

  • - .github_actions_custom_workflows(project_root, config = {}, opencollective_disabled: false) ⇒ Object + .gemspec_dependency_sort_key(name) ⇒ Object @@ -6800,7 +7026,7 @@

  • - .github_actions_exec_cmd(config, env) ⇒ Object + .gemspec_dependency_source_newer?(candidate_source, current_source, receiver:) ⇒ Boolean @@ -6823,7 +7049,7 @@

  • - .github_actions_framework_matrix(config) ⇒ Object + .gemspec_end_line(source) ⇒ Object @@ -6846,7 +7072,7 @@

  • - .github_actions_obsolete_workflows(project_root) ⇒ Object + .gemspec_field_receiver_and_name(field) ⇒ Object @@ -6869,7 +7095,7 @@

  • - .github_actions_ruby_versions(min_ruby) ⇒ Object + .gemspec_files_array_collection_source(target_parts, groups) ⇒ Object @@ -6892,7 +7118,7 @@

  • - .github_actions_standard_appraisal_gemfiles(config) ⇒ Object + .gemspec_files_child_collection_record(record, value_node) ⇒ Object @@ -6915,7 +7141,7 @@

  • - .github_actions_step_pins ⇒ Object + .gemspec_files_collection_body_source(groups) ⇒ Object @@ -6938,7 +7164,7 @@

  • - .github_funding_platform_urls(platform, values) ⇒ Object + .gemspec_files_collection_element_nodes(value_node) ⇒ Object @@ -6961,7 +7187,7 @@

  • - .github_funding_urls(path, opencollective_disabled: false) ⇒ Object + .gemspec_files_collection_entry_key(node) ⇒ Object @@ -6984,7 +7210,7 @@

  • - .github_org_from_url(url) ⇒ Object + .gemspec_files_collection_entry_node?(node) ⇒ Boolean @@ -7007,7 +7233,7 @@

  • - .github_workflow_template_recipe?(recipe) ⇒ Boolean + .gemspec_files_collection_group_source(group, trailing_comma:) ⇒ Object @@ -7030,7 +7256,7 @@

  • - .github_workflows_include?(project_root, needle) ⇒ Boolean + .gemspec_files_collection_groups(record:, element_nodes:, lines:) ⇒ Object @@ -7053,7 +7279,7 @@

  • - .gitlab_repo_url(repository, repo_slug, suffix) ⇒ Object + .gemspec_files_collection_has_nonliteral_entries?(parts) ⇒ Boolean @@ -7076,7 +7302,7 @@

  • - .html_attribute_escape(value) ⇒ Object + .gemspec_files_collection_has_package_metadata_splat?(parts) ⇒ Boolean @@ -7099,7 +7325,7 @@

  • - .http_url?(value) ⇒ Boolean + .gemspec_files_collection_kind(value_node) ⇒ Object @@ -7122,7 +7348,7 @@

  • - .inactive_packaged_template_cleanup_files(project_root, config = {}) ⇒ Object + .gemspec_files_collection_needs_concat?(target_parts, groups) ⇒ Boolean @@ -7145,7 +7371,7 @@

  • - .inactive_packaged_workflow?(relative_path, config = {}, include_patterns: nil) ⇒ Boolean + .gemspec_files_collection_parts(record) ⇒ Object @@ -7168,7 +7394,7 @@

  • - .inactive_packaged_workflow_cleanup_files(project_root, config = {}, include_patterns: nil) ⇒ Object + .gemspec_files_concat_call_node?(node) ⇒ Boolean @@ -7191,7 +7417,7 @@

  • - .inject_appraisal_gemfiles(block, gemfiles) ⇒ Object + .gemspec_files_concat_collection_parts(record, value_node) ⇒ Object @@ -7214,7 +7440,7 @@

  • - .inject_framework_matrix_workflow_env(content, facts) ⇒ Object + .gemspec_files_concat_collection_source(target_parts, groups) ⇒ Object @@ -7237,7 +7463,7 @@

  • - .inject_standard_appraisal_gemfiles(content, facts) ⇒ Object + .gemspec_files_dir_call_node?(node) ⇒ Boolean @@ -7260,7 +7486,7 @@

  • - .insert_after_line_sequence(content, sequence, insertion, error_message) ⇒ Object + .gemspec_files_dir_collection_source(target_parts, groups, closing: nil) ⇒ Object @@ -7283,7 +7509,7 @@

  • - .insert_gemfile_dependency_blocks(content, blocks) ⇒ Object + .gemspec_files_group_collection_kind(group, parts) ⇒ Object @@ -7306,7 +7532,7 @@

  • - .insert_lines_after(content, line_number, insertion) ⇒ Object + .gemspec_files_single_collection_parts(record, value_node) ⇒ Object @@ -7329,7 +7555,7 @@

  • - .insert_lines_before(content, line_number, insertion) ⇒ Object + .gemspec_files_splat_expression_key(node) ⇒ Object @@ -7352,7 +7578,7 @@

  • - .insert_missing_development_gemspec_dependency_lines(content, missing_lines) ⇒ Object + .gemspec_freeze_block_structurally_managed?(block, receiver:) ⇒ Boolean @@ -7375,7 +7601,7 @@

  • - .insert_missing_runtime_gemspec_dependency_lines(content, missing_lines, receiver:) ⇒ Object + .gemspec_legacy_version_loader_block(entrypoint_require:, namespace:, min_ruby:) ⇒ Object @@ -7398,7 +7624,7 @@

  • - .insert_yaml_scalar_after_path(content, path, key, value) ⇒ Object + .gemspec_legacy_version_loader_preamble_line_range(content) ⇒ Object @@ -7421,7 +7647,7 @@

  • - .install_tasks ⇒ Object + .gemspec_modern_version_loader_expression(entrypoint_require:, namespace:) ⇒ Object @@ -7444,7 +7670,7 @@

  • - .json_merge_options(recipe) ⇒ Object + .gemspec_new_call(source) ⇒ Object @@ -7467,7 +7693,7 @@

  • - .kettle_config_bootstrap_facts(project_root, env, template_selection: {}) ⇒ Object + .gemspec_package_file_includes_token(gemspec) ⇒ Object @@ -7490,7 +7716,7 @@

  • - .kettle_config_bootstrap_recipe(bootstrap) ⇒ Object + .gemspec_path_declares_gem?(path, gem_name) ⇒ Boolean @@ -7513,7 +7739,7 @@

  • - .kettle_config_file_override_lines(path, strategy) ⇒ Object + .gemspec_policy_operations(template_content, original, final, request) ⇒ Object @@ -7536,7 +7762,7 @@

  • - .kettle_config_template_entries_lines(entries) ⇒ Object + .gemspec_preserved_assignment_fields ⇒ Object @@ -7559,7 +7785,7 @@

  • - .kettle_jem_config(project_root) ⇒ Object + .gemspec_preserved_assignments(source, receiver:) ⇒ Object @@ -7582,7 +7808,7 @@

  • - .kettle_jem_config_path(project_root) ⇒ Object + .gemspec_project_emoji(gemspec_metadata) ⇒ Object @@ -7605,7 +7831,7 @@

  • - .kettle_jem_config_relative_path(project_root) ⇒ Object + .gemspec_root_license_files_token(license) ⇒ Object @@ -7628,7 +7854,7 @@

  • - .kettle_rb_local_gems(config) ⇒ Object + .gemspec_runtime_dependency_names(gemspec_metadata) ⇒ Object @@ -7651,7 +7877,7 @@

  • - .known_license_template_basenames ⇒ Object + .gemspec_runtime_floor_token(facts) ⇒ Object @@ -7674,7 +7900,7 @@

  • - .large_business_license_cell(author_email) ⇒ Object + .gemspec_self_dependency_names(request, package_name) ⇒ Object @@ -7697,7 +7923,7 @@

  • - .leading_whitespace(source) ⇒ Object + .gemspec_template_facts(config) ⇒ Object @@ -7720,7 +7946,7 @@

  • - .license_badge(spdx_id, ref: :license_ref) ⇒ Object + .gemspec_template_tokens(gemspec) ⇒ Object @@ -7743,7 +7969,7 @@

  • - .license_badge_img(spdx_id) ⇒ Object + .gemspec_top_level_gem_version_node(content) ⇒ Object @@ -7766,7 +7992,7 @@

  • - .license_badge_ref(spdx_id) ⇒ Object + .gemspec_version_loader_policy_operation(original, final, request) ⇒ Object @@ -7789,7 +8015,7 @@

  • - .license_compat_badge(category) ⇒ Object + .generated_blocks_facts(gemspec, facts, run_options) ⇒ Object @@ -7812,7 +8038,7 @@

  • - .license_compat_category(licenses) ⇒ Object + .generated_gemspec_metadata_file_group?(group, target_parts) ⇒ Boolean @@ -7835,7 +8061,7 @@

  • - .license_compat_img(category) ⇒ Object + .generated_kettle_config_without_templates?(config) ⇒ Boolean @@ -7858,7 +8084,7 @@

  • - .license_compat_ref(category) ⇒ Object + .generated_or_obsolete_github_workflow?(relative_path) ⇒ Boolean @@ -7881,7 +8107,7 @@

  • - .license_contact_line(author_email, context:) ⇒ Object + .generated_version_tree_source_url?(source_url, version) ⇒ Boolean @@ -7904,7 +8130,7 @@

  • - .license_copyright_notice(copyright_lines, copyright_prefix, author) ⇒ Object + .generic_bundler_gemspec_files_assignment?(record) ⇒ Boolean @@ -7927,7 +8153,7 @@

  • - .license_eye_dependency_license_entry(entry) ⇒ Object + .generic_bundler_gemspec_files_command?(node) ⇒ Boolean @@ -7950,7 +8176,7 @@

  • - .license_eye_dependency_licenses(config) ⇒ Object + .git_capture(project_root, *args) ⇒ Object @@ -7973,7 +8199,7 @@

  • - .license_eye_flags(licenses) ⇒ Object + .git_copyright_lines(project_root, machine_users) ⇒ Object @@ -7996,7 +8222,7 @@

  • - .license_eye_mode(licenses) ⇒ Object + .git_hooks_executable_step(project_root) ⇒ Object @@ -8019,7 +8245,7 @@

  • - .license_eye_primary_spdx(licenses, fallback) ⇒ Object + .git_output(project_root, *args) ⇒ Object @@ -8042,7 +8268,7 @@

  • - .license_eye_workflow_badge(licenses) ⇒ Object + .git_preflight_report(project_root, template_selection:) ⇒ Object @@ -8065,7 +8291,7 @@

  • - .license_facts(config, gemspec_licenses, author: {}, author_email: nil, copyright: {}) ⇒ Object + .git_remote_source_url(project_root) ⇒ Object @@ -8088,7 +8314,7 @@

  • - .license_link(spdx_id) ⇒ Object + .git_success?(project_root, *args) ⇒ Boolean @@ -8111,7 +8337,7 @@

  • - .license_md_content(licenses, author_email: nil) ⇒ Object + .git_version_file_value(project_root, relative_path) ⇒ Object @@ -8134,7 +8360,7 @@

  • - .license_template_tokens(license) ⇒ Object + .git_worktree_prefix(project_root) ⇒ Object @@ -8157,7 +8383,7 @@

  • - .license_use_case_guide_table(licenses, author_email: nil) ⇒ Object + .git_worktree_root(project_root) ⇒ Object @@ -8180,7 +8406,7 @@

  • - .license_use_case_rows(licenses, author_email: nil) ⇒ Object + .github_actions_coverage_config(config, env = ENV) ⇒ Object @@ -8203,7 +8429,7 @@

  • - .load_project_gemspec(gemspec_path) ⇒ Object + .github_actions_coverage_enabled?(content) ⇒ Boolean @@ -8226,7 +8452,7 @@

  • - .local_gemfile_template_recipe?(recipe) ⇒ Boolean + .github_actions_coverage_steps(disabled_integrations: []) ⇒ Object @@ -8249,7 +8475,7 @@

  • - .local_gems_assignment(content) ⇒ Object + .github_actions_custom_workflows(project_root, config = {}, opencollective_disabled: false) ⇒ Object @@ -8272,7 +8498,7 @@

  • - .local_gems_assignment_record(content) ⇒ Object + .github_actions_exec_cmd(config, env) ⇒ Object @@ -8295,7 +8521,7 @@

  • - .managed_license_template_basename(target_path) ⇒ Object + .github_actions_framework_matrix(config) ⇒ Object @@ -8318,7 +8544,7 @@

  • - .markdown_heading_has_preserved_readme_ancestor?(heading_sections, index) ⇒ Boolean + .github_actions_obsolete_workflows(project_root) ⇒ Object @@ -8341,7 +8567,7 @@

  • - .markdown_heading_owners(content, source_label: "README.md") ⇒ Object + .github_actions_pin_sync_step(project_root) ⇒ Object @@ -8364,7 +8590,7 @@

  • - .markdown_link_definition_source(owner, url) ⇒ Object + .github_actions_push_branches(content, default_branch:) ⇒ Object @@ -8387,7 +8613,7 @@

  • - .markdown_link_reference_definition_line?(line) ⇒ Boolean + .github_actions_push_branches_yaml(content, default_branch:, indent: " ") ⇒ Object @@ -8410,7 +8636,7 @@

  • - .markdown_managed_block(content, marker) ⇒ Object + .github_actions_rspec_status_cache_step(cache_scope:, key_parts:, indent:, if_condition: "${{!env.ACT}}") ⇒ Object @@ -8433,7 +8659,7 @@

  • - .markdown_sections(content) ⇒ Object + .github_actions_ruby_versions(min_ruby) ⇒ Object @@ -8456,7 +8682,7 @@

  • - .markdown_source_lines(content) ⇒ Object + .github_actions_setup_ruby_steps(indent:) ⇒ Object @@ -8479,7 +8705,7 @@

  • - .merge_appraisal_blocks_with_prism(template_block, destination_block) ⇒ Object + .github_actions_standard_appraisal_gemfiles(config) ⇒ Object @@ -8502,7 +8728,7 @@

  • - .merge_appraisals_template_policy(content, facts:) ⇒ Object + .github_actions_step_pins ⇒ Object @@ -8525,7 +8751,7 @@

  • - .merge_bash_template_source(template_content, destination_content, recipe) ⇒ Object + .github_funding_platform_urls(platform, values) ⇒ Object @@ -8548,7 +8774,7 @@

  • - .merge_changelog_template_source(template_content, destination_content) ⇒ Object + .github_funding_urls(path, opencollective_disabled: false) ⇒ Object @@ -8571,7 +8797,7 @@

  • - .merge_config_template_source(recipe, template_content, destination_content, facts: nil, env: ENV) ⇒ Object + .github_org_from_url(url) ⇒ Object @@ -8594,7 +8820,7 @@

  • - .merge_dotenv_template_source(template_content, destination_content, recipe) ⇒ Object + .github_workflow_action_pin_key(record) ⇒ Object @@ -8617,7 +8843,7 @@

  • - .merge_framework_matrix_appraisals(content, facts) ⇒ Object + .github_workflow_action_pin_line_record(line, line_index) ⇒ Object @@ -8640,7 +8866,7 @@

  • - .merge_gemfile_eval_bucket_entries(template_content, merged_content) ⇒ Object + .github_workflow_action_pin_records(content) ⇒ Object @@ -8663,7 +8889,7 @@

  • - .merge_gemfile_template_policy(content, facts:, template_content: nil, preserve_self_word_entries: false) ⇒ Object + .github_workflow_template_pin_warnings(recipe_reports) ⇒ Object @@ -8686,7 +8912,7 @@

  • - .merge_gemspec_template_source(template_content, destination_content, facts: nil, env: ENV) ⇒ Object + .github_workflow_template_recipe?(recipe) ⇒ Boolean @@ -8709,7 +8935,7 @@

  • - .merge_json_template_source(template_content, destination_content, recipe, file_type) ⇒ Object + .github_workflows_include?(project_root, needle) ⇒ Boolean @@ -8732,7 +8958,7 @@

  • - .merge_local_gem_overrides(content, destination_content, facts:, template_content: nil) ⇒ Object + .gitlab_repo_url(repository, repo_slug, suffix) ⇒ Object @@ -8755,7 +8981,7 @@

  • - .merge_prism_gemfile_template_source(template_content, destination_content) ⇒ Object + .guard_main_gemfile_runtime_workspace_overrides(content) ⇒ Object @@ -8778,7 +9004,7 @@

  • - .merge_rbs_template_source(template_content, destination_content, recipe) ⇒ Object + .html_attribute_escape(value) ⇒ Object @@ -8801,7 +9027,7 @@

  • - .merge_readme_template(template_content:, destination_content:, preserve_config: {}) ⇒ Object + .http_url?(value) ⇒ Boolean @@ -8824,7 +9050,7 @@

  • - .merge_ruby_template_source(file_type, recipe, template_content, destination_content, facts: nil) ⇒ Object + .inactive_packaged_template_cleanup_files(project_root, config = {}) ⇒ Object @@ -8847,7 +9073,7 @@

  • - .merge_template_gemfile_dependency_blocks(template_content, content, removable_gems, preserve_self_word_entries: false) ⇒ Object + .inactive_packaged_workflow?(relative_path, config = {}, include_patterns: nil) ⇒ Boolean @@ -8870,7 +9096,7 @@

  • - .metadata_value(metadata, key) ⇒ Object + .inactive_packaged_workflow_cleanup_files(project_root, config = {}, include_patterns: nil) ⇒ Object @@ -8893,7 +9119,7 @@

  • - .migrate_readme_logo_config(content) ⇒ Object + .indent_source(source, spaces) ⇒ Object @@ -8916,7 +9142,7 @@

  • - .min_ruby_version(requirement) ⇒ Object + .inject_appraisal_gemfiles(block, gemfiles) ⇒ Object @@ -8939,7 +9165,7 @@

  • - .minimum_ruby_token(requirement) ⇒ Object + .inject_framework_matrix_workflow_env(content, facts) ⇒ Object @@ -8962,7 +9188,7 @@

  • - .mit_readme_license_intro ⇒ Object + .inject_main_gemfile_recording_eval(content, facts) ⇒ Object @@ -8985,7 +9211,7 @@

  • - .monorepo_root_file_strategy(entry) ⇒ Object + .inject_standard_appraisal_gemfiles(content, facts) ⇒ Object @@ -9008,7 +9234,7 @@

  • - .monorepo_root_gemfile_dependency_lines ⇒ Object + .insert_after_line_sequence(content, sequence, insertion, error_message) ⇒ Object @@ -9031,7 +9257,7 @@

  • - .monorepo_root_gemfile_dependency_sync_step(project_root, report) ⇒ Object + .insert_gemfile_dependency_blocks(content, blocks) ⇒ Object @@ -9054,7 +9280,7 @@

  • - .monorepo_root_template_profile?(facts) ⇒ Boolean + .insert_lines_after(content, line_number, insertion) ⇒ Object @@ -9077,7 +9303,7 @@

  • - .monorepo_subgem_kettle_config_profile_sync_step(project_root, report) ⇒ Object + .insert_lines_before(content, line_number, insertion) ⇒ Object @@ -9100,7 +9326,7 @@

  • - .monorepo_subgem_template_entries(gemspec_path, profile = MONOREPO_SUBGEM_TEMPLATE_PROFILE) ⇒ Object + .insert_missing_development_gemspec_dependency_lines(content, missing_lines) ⇒ Object @@ -9123,7 +9349,7 @@

  • - .monorepo_subgem_template_entries_for_profile(gemspec_path, profile) ⇒ Object + .insert_missing_gemspec_assignment_sources(content, replacements, receiver:) ⇒ Object @@ -9146,7 +9372,7 @@

  • - .monorepo_subgem_template_profile?(facts) ⇒ Boolean + .insert_missing_gemspec_files_assignment(content, template_content:, template_receiver:) ⇒ Object @@ -9169,7 +9395,7 @@

  • - .monorepo_subgem_template_profile_value?(profile) ⇒ Boolean + .insert_missing_runtime_gemspec_dependency_lines(content, missing_lines, receiver:) ⇒ Object @@ -9192,7 +9418,7 @@

  • - .monorepo_template_profile?(facts) ⇒ Boolean + .insert_yaml_scalar_after_path(content, path, key, value) ⇒ Object @@ -9215,7 +9441,7 @@

  • - .non_mit_licenses?(licenses) ⇒ Boolean + .install_tasks ⇒ Object @@ -9238,7 +9464,7 @@

  • - .normalize_changelog(content, facts) ⇒ Object + .integration_license_spdx(config, license) ⇒ Object @@ -9261,7 +9487,7 @@

  • - .normalize_eval_gemfile_ruby_bucket(path) ⇒ Object + .json_merge_options(recipe) ⇒ Object @@ -9284,7 +9510,7 @@

  • - .normalize_gemspec_project_emoji(line, facts, field:) ⇒ Object + .kettle_config_bootstrap_facts(project_root, env, template_selection: {}) ⇒ Object @@ -9307,7 +9533,7 @@

  • - .normalize_gemspec_receiver(line, from:, to:) ⇒ Object + .kettle_config_bootstrap_recipe(bootstrap) ⇒ Object @@ -9330,7 +9556,7 @@

  • - .normalize_generated_rakefile(content) ⇒ Object + .kettle_config_file_override_lines(path, strategy) ⇒ Object @@ -9353,7 +9579,7 @@

  • - .normalize_git_source_url(url) ⇒ Object + .kettle_config_template_entries_lines(entries) ⇒ Object @@ -9376,7 +9602,7 @@

  • - .normalize_github_actions_exec_cmd(command) ⇒ Object + .kettle_dev_local_gems(config) ⇒ Object @@ -9399,7 +9625,7 @@

  • - .normalize_list_option(value) ⇒ Object + .kettle_jem_config(project_root) ⇒ Object @@ -9422,7 +9648,7 @@

  • - .normalize_rakefile_section_spacing(content) ⇒ Object + .kettle_jem_config_path(project_root) ⇒ Object @@ -9445,7 +9671,7 @@

  • - .normalize_readme_blank_line_runs(content) ⇒ Object + .kettle_jem_config_relative_path(project_root) ⇒ Object @@ -9468,7 +9694,7 @@

  • - .normalize_readme_heading(text) ⇒ Object + .known_license_template_basenames ⇒ Object @@ -9491,7 +9717,7 @@

  • - .normalize_readme_project_heading(content, facts) ⇒ Object + .large_business_license_cell(author_email) ⇒ Object @@ -9514,7 +9740,7 @@

  • - .normalize_readme_section_key(section) ⇒ Object + .leading_space_count(line) ⇒ Object @@ -9537,7 +9763,7 @@

  • - .normalize_readme_synopsis_heading(content, facts) ⇒ Object + .leading_whitespace(source) ⇒ Object @@ -9560,7 +9786,7 @@

  • - .normalize_repository_topology(value) ⇒ Object + .legacy_rbs_consolidation_step(project_root, facts, entrypoint_require:) ⇒ Object @@ -9583,7 +9809,7 @@

  • - .normalize_template_profile(value) ⇒ Object + .legacy_rbs_signature_paths(project_root, entrypoint_require) ⇒ Object @@ -9606,7 +9832,7 @@

  • - .normalized_readme_logo_specs(value) ⇒ Object + .legacy_readme_top_logo_mode_options(value) ⇒ Object @@ -9629,7 +9855,7 @@

  • - .normalized_readme_logo_width(value) ⇒ Object + .license_badge(spdx_id, ref: :license_ref) ⇒ Object @@ -9652,7 +9878,7 @@

  • - .normalized_readme_top_logo_options(value) ⇒ Object + .license_badge_img(spdx_id) ⇒ Object @@ -9675,7 +9901,7 @@

  • - .opencollective_disabled?(config, env: ENV) ⇒ Boolean + .license_badge_ref(spdx_id) ⇒ Object @@ -9698,7 +9924,7 @@

  • - .opencollective_disabled_file?(relative_path) ⇒ Boolean + .license_compat_badge(category) ⇒ Object @@ -9721,7 +9947,7 @@

  • - .opencollective_disabled_files(project_root) ⇒ Object + .license_compat_category(licenses) ⇒ Object @@ -9744,7 +9970,7 @@

  • - .opencollective_falsey_env(env) ⇒ Object + .license_compat_img(category) ⇒ Object @@ -9767,7 +9993,7 @@

  • - .opencollective_org(project_root, config, env, opencollective_disabled: false) ⇒ Object + .license_compat_ref(category) ⇒ Object @@ -9790,7 +10016,7 @@

  • - .opencollective_org_config(config) ⇒ Object + .license_contact_line(author_email, context:) ⇒ Object @@ -9813,7 +10039,7 @@

  • - .opencollective_org_env(env) ⇒ Object + .license_copyright_notice(copyright_lines, copyright_prefix, author) ⇒ Object @@ -9836,7 +10062,7 @@

  • - .opencollective_org_file(project_root) ⇒ Object + .license_eye_compatible_licenses?(licenses) ⇒ Boolean @@ -9859,7 +10085,7 @@

  • - .opencollective_org_github_funding_file(project_root) ⇒ Object + .license_eye_dependency_license_entry(entry) ⇒ Object @@ -9882,7 +10108,7 @@

  • - .opencollective_policy(config, env) ⇒ Object + .license_eye_dependency_licenses(config) ⇒ Object @@ -9905,7 +10131,7 @@

  • - .opt_in_workflow_cleanup_files(project_root, template_selection) ⇒ Object + .license_eye_flags(licenses) ⇒ Object @@ -9928,7 +10154,7 @@

  • - .packaged_gemfile_template_ruby_floor(target_path) ⇒ Object + .license_eye_mode(licenses) ⇒ Object @@ -9951,7 +10177,7 @@

  • - .packaged_template_root ⇒ Object + .license_eye_primary_spdx(licenses, fallback) ⇒ Object @@ -9974,7 +10200,7 @@

  • - .paperclip_ref(name) ⇒ Object + .license_eye_workflow_badge(licenses, config = {}) ⇒ Object @@ -9997,7 +10223,7 @@

  • - .parse_blame_porcelain(output, author_map) ⇒ Object + .license_facts(config, gemspec_licenses, author: {}, author_email: nil, copyright: {}) ⇒ Object @@ -10020,7 +10246,7 @@

  • - .phase_for_recipe(recipe_name, relative_path) ⇒ Object + .license_link(spdx_id) ⇒ Object @@ -10043,7 +10269,7 @@

  • - .phase_reports_for(recipe_reports) ⇒ Object + .license_md_content(licenses, author_email: nil) ⇒ Object @@ -10066,7 +10292,7 @@

  • - .plan_project(project_root, env: ENV, run_options: {}) ⇒ Object + .license_template_tokens(license) ⇒ Object @@ -10089,7 +10315,7 @@

  • - .plan_readme_style(project_root, env: ENV) ⇒ Object + .license_use_case_guide_table(licenses, author_email: nil) ⇒ Object @@ -10112,7 +10338,7 @@

  • - .plugin_lifecycle_diagnostic(plugin_registry, callbacks_run:, active_runner_phases:) ⇒ Object + .license_use_case_rows(licenses, author_email: nil) ⇒ Object @@ -10135,7 +10361,7 @@

  • - .plugin_names_from_config(config) ⇒ Object + .load_project_gemspec(gemspec_path) ⇒ Object @@ -10158,7 +10384,7 @@

  • - .plugin_registry_for_project(project_root) ⇒ Object + .local_gemfile_template_recipe?(recipe) ⇒ Boolean @@ -10181,7 +10407,7 @@

  • - .polyform_licenses?(licenses) ⇒ Boolean + .local_gems_assignment(content) ⇒ Object @@ -10204,7 +10430,7 @@

  • - .post_apply_steps(project_root, report) ⇒ Object + .local_gems_assignment_record(content) ⇒ Object @@ -10227,7 +10453,7 @@

  • - .postprocess_readme_content(content, facts, project_root: nil) ⇒ Object + .local_modular_eval_paths_for_gem(project_root, gem_name) ⇒ Object @@ -10250,7 +10476,7 @@

  • - .preferred_template_source(template_root, configured_source, opencollective_disabled: false) ⇒ Object + .local_modular_runtime_eval_paths(project_root, gemspec_metadata, package_name:) ⇒ Object @@ -10273,7 +10499,7 @@

  • - .preferred_template_token_value(derived_value, config_value, env, env_key) ⇒ Object + .main_gemfile_after_gemspec_line(content) ⇒ Object @@ -10296,7 +10522,7 @@

  • - .preflight_project!(project_root) ⇒ Object + .main_gemfile_direct_sibling_block(gems, source_url:, project_root:, local_modular_eval_paths: []) ⇒ Object @@ -10319,7 +10545,7 @@

  • - .preflight_ruby_syntax!(project_root, path) ⇒ Object + .main_gemfile_direct_sibling_records(content) ⇒ Object @@ -10342,7 +10568,7 @@

  • - .prepare_github_workflow_template(content, recipe, facts) ⇒ Object + .main_gemfile_first_eval_gemfile_line(content) ⇒ Object @@ -10365,7 +10591,7 @@

  • - .prepare_readme_template(content, readme_style) ⇒ Object + .main_gemfile_nomono_bootstrap_source(template_content) ⇒ Object @@ -10388,7 +10614,7 @@

  • - .present_template_token_value?(value) ⇒ Boolean + .main_gemfile_nomono_requirement_records(content) ⇒ Object @@ -10411,7 +10637,7 @@

  • - .preserve_gemspec_dependency_lines(template_content, destination_content, template_receiver:, destination_receiver:) ⇒ Object + .main_gemfile_recording_eval_path ⇒ Object @@ -10434,7 +10660,7 @@

  • - .preserve_gemspec_freeze_blocks(content, destination_content, facts:, receiver:) ⇒ Object + .main_gemfile_recording_insertion_index(content) ⇒ Object @@ -10457,7 +10683,7 @@

  • - .preserve_github_workflow_project_settings(recipe, content, destination_content, project_root:) ⇒ Object + .main_gemfile_templating_eval_line(content) ⇒ Object @@ -10480,7 +10706,7 @@

  • - .preserve_mise_project_settings(recipe, content, destination_content, project_root:) ⇒ Object + .managed_license_template_basename(target_path) ⇒ Object @@ -10503,7 +10729,7 @@

  • - .preserve_readme_front_sections(template_content, destination_content) ⇒ Object + .markdown_heading_has_preserved_readme_ancestor?(heading_sections, index) ⇒ Boolean @@ -10526,7 +10752,7 @@

  • - .preserve_readme_h1(merged_content, destination_content, preserve_config) ⇒ Object + .markdown_heading_owners(content, source_label: "README.md") ⇒ Object @@ -10549,7 +10775,7 @@

  • - .preserve_readme_managed_block(merged_content, destination_content, marker) ⇒ Object + .markdown_link_definition_source(owner, url) ⇒ Object @@ -10572,7 +10798,7 @@

  • - .preserve_readme_sections(template_content, destination_content, preserve_config) ⇒ Object + .markdown_link_reference_definition_line?(line) ⇒ Boolean @@ -10595,7 +10821,7 @@

  • - .previous_nonblank_line_number(content, line_number) ⇒ Object + .markdown_managed_block(content, marker) ⇒ Object @@ -10618,7 +10844,7 @@

  • - .prism_parse_success(content) ⇒ Object + .markdown_sections(content) ⇒ Object @@ -10641,7 +10867,7 @@

  • - .prism_ruby_merge_options(recipe) ⇒ Object + .markdown_source_lines(content) ⇒ Object @@ -10664,7 +10890,7 @@

  • - .process_result_adapter_failure?(merge_result) ⇒ Boolean + .merge_appraisal_blocks_with_prism(template_block, destination_block) ⇒ Object @@ -10687,7 +10913,7 @@

  • - .project_gemspec_declares_version_gem?(project_root) ⇒ Boolean + .merge_appraisals_template_policy(content, facts:) ⇒ Object @@ -10710,7 +10936,7 @@

  • - .project_gemspec_metadata(project_root, gemspec_path, spec: nil) ⇒ Object + .merge_bash_template_source(template_content, destination_content, recipe) ⇒ Object @@ -10733,7 +10959,7 @@

  • - .project_gemspec_version(project_root) ⇒ Object + .merge_changelog_template_source(template_content, destination_content, facts: nil) ⇒ Object @@ -10756,7 +10982,7 @@

  • - .project_homepage_uri(config, env, yard_host:) ⇒ Object + .merge_config_template_source(recipe, template_content, destination_content, facts: nil, env: ENV) ⇒ Object @@ -10779,7 +11005,7 @@

  • - .project_runtime_config_value(config, key) ⇒ Object + .merge_dotenv_template_source(template_content, destination_content, recipe) ⇒ Object @@ -10802,7 +11028,7 @@

  • - .project_runtime_facts(config, env, package_name:, source_url:, author_domain:, min_ruby:, test_min_ruby:, version:) ⇒ Object + .merge_framework_matrix_appraisals(content, facts) ⇒ Object @@ -10825,7 +11051,7 @@

  • - .project_runtime_template_tokens(project_runtime) ⇒ Object + .merge_gemfile_eval_bucket_entries(template_content, merged_content, destination_content: nil) ⇒ Object @@ -10848,7 +11074,7 @@

  • - .project_yard_host(config, env, package_name:, author_domain:) ⇒ Object + .merge_gemfile_template_policy(content, facts:, template_content: nil, preserve_self_word_entries: false) ⇒ Object @@ -10871,7 +11097,7 @@

  • - .prune_appraisals_below_min_ruby(content, min_ruby) ⇒ Object + .merge_gemspec_files_assignment(content, template_content:, destination_content:, template_receiver:, destination_receiver:) ⇒ Object @@ -10894,7 +11120,7 @@

  • - .prune_appraisals_recording_entries(content, facts) ⇒ Object + .merge_gemspec_files_assignment_source(merged_record:, template_record:, destination_record:) ⇒ Object @@ -10917,7 +11143,7 @@

  • - .prune_github_workflow_matrix_by_min_ruby(content, facts) ⇒ Object + .merge_gemspec_files_assignment_with_destination_splats(merged_parts:, destination_parts:) ⇒ Object @@ -10940,7 +11166,7 @@

  • - .prune_legacy_kettle_config_keys(content) ⇒ Object + .merge_gemspec_template_source(template_content, destination_content, facts: nil, env: ENV) ⇒ Object @@ -10963,7 +11189,7 @@

  • - .prune_missing_workflow_link_definitions(content, workflow_paths) ⇒ Object + .merge_json_template_source(template_content, destination_content, recipe, file_type) ⇒ Object @@ -10986,7 +11212,7 @@

  • - .prune_readme_integration_badges(content, readme_style) ⇒ Object + .merge_local_gem_overrides(content, destination_content, facts:, template_content: nil) ⇒ Object @@ -11009,7 +11235,7 @@

  • - .prune_unused_readme_logo_link_definitions(content) ⇒ Object + .merge_prism_gemfile_template_source(template_content, destination_content) ⇒ Object @@ -11032,7 +11258,7 @@

  • - .prune_workflow_matrix_item?(mapping, minimum) ⇒ Boolean + .merge_rbs_signature_sources(template_content, destination_content) ⇒ Object @@ -11055,7 +11281,7 @@

  • - .quality_config_path?(path) ⇒ Boolean + .merge_rbs_template_source(template_content, destination_content, recipe) ⇒ Object @@ -11078,7 +11304,7 @@

  • - .quiet_gemspec_reader_load(project_root) ⇒ Object + .merge_readme_template(template_content:, destination_content:, preserve_config: {}) ⇒ Object @@ -11101,7 +11327,7 @@

  • - .rakefile_default_task_call?(call) ⇒ Boolean + .merge_ruby_template_source(file_type, recipe, template_content, destination_content, facts: nil) ⇒ Object @@ -11124,7 +11350,7 @@

  • - .rakefile_default_task_records(content) ⇒ Object + .merge_template_gemfile_dependency_blocks(template_content, content, removable_gems, preserve_self_word_entries: false) ⇒ Object @@ -11147,7 +11373,7 @@

  • - .rakefile_require_records(content) ⇒ Object + .metadata_value(metadata, key) ⇒ Object @@ -11170,7 +11396,7 @@

  • - .rakefile_scaffold_cleanup(content, facts) ⇒ Object + .migrate_readme_logo_config(content) ⇒ Object @@ -11193,7 +11419,7 @@

  • - .rakefile_scaffold_cleanup_recipe?(recipe) ⇒ Boolean + .min_ruby_version(requirement) ⇒ Object @@ -11216,7 +11442,7 @@

  • - .rakefile_scaffold_delete_selectors(content) ⇒ Object + .minimum_ruby_token(requirement) ⇒ Object @@ -11239,7 +11465,7 @@

  • - .rakefile_selector(selector_id, start_line, end_line, reason) ⇒ Object + .mit_readme_license_intro ⇒ Object @@ -11262,7 +11488,7 @@

  • - .rakefile_task_block_selectors(content) ⇒ Object + .monorepo_root_file_strategy(entry) ⇒ Object @@ -11285,7 +11511,7 @@

  • - .rakefile_task_class_records(content) ⇒ Object + .monorepo_root_gemfile_dependency_lines ⇒ Object @@ -11308,7 +11534,7 @@

  • - .rakefile_template_default_task?(content, record) ⇒ Boolean + .monorepo_root_gemfile_dependency_sync_step(project_root, report) ⇒ Object @@ -11331,7 +11557,7 @@

  • - .rbs_merge_options(recipe) ⇒ Object + .monorepo_root_template_profile?(facts) ⇒ Boolean @@ -11354,7 +11580,7 @@

  • - .read_project_file(project_root, relative_path) ⇒ Object + .monorepo_subgem_kettle_config_profile_sync_step(project_root, report) ⇒ Object @@ -11377,7 +11603,7 @@

  • - .read_project_files(project_root, pack) ⇒ Object + .monorepo_subgem_template_entries(gemspec_path, profile = MONOREPO_SUBGEM_TEMPLATE_PROFILE) ⇒ Object @@ -11400,7 +11626,7 @@

  • - .readme_config_hash(config) ⇒ Object + .monorepo_subgem_template_entries_for_profile(gemspec_path, profile) ⇒ Object @@ -11423,7 +11649,7 @@

  • - .readme_copyright_notice(copyright_lines, copyright_prefix, author) ⇒ Object + .monorepo_subgem_template_profile?(facts) ⇒ Boolean @@ -11446,7 +11672,7 @@

  • - .readme_default_logo_width(entries, one:, two:) ⇒ Object + .monorepo_subgem_template_profile_value?(profile) ⇒ Boolean @@ -11469,7 +11695,7 @@

  • - .readme_destination_front_sections(destination_content) ⇒ Object + .monorepo_template_profile?(facts) ⇒ Boolean @@ -11492,7 +11718,7 @@

  • - .readme_disabled_integrations(readme) ⇒ Object + .namespace_descendant?(namespace, parent) ⇒ Boolean @@ -11515,7 +11741,7 @@

  • - .readme_extra_preserved_sections_by_anchor(destination_sections, template_bases, preserve_targets) ⇒ Object + .nested_templating_guard_records(content) ⇒ Object @@ -11538,7 +11764,7 @@

  • - .readme_family_intro_and_backend_matrix(readme_style = {}) ⇒ Object + .node_enclosed_by_ranges?(node, ranges) ⇒ Boolean @@ -11561,7 +11787,7 @@

  • - .readme_floss_funding_enabled?(license, config_value) ⇒ Boolean + .non_default_version_gem_entrypoint?(project_root, entrypoint_require) ⇒ Boolean @@ -11584,7 +11810,7 @@

  • - .readme_fossa_project(readme, repository) ⇒ Object + .non_mit_licenses?(licenses) ⇒ Boolean @@ -11607,7 +11833,7 @@

  • - .readme_fossa_template_tokens(readme_style) ⇒ Object + .normalize_changelog(content, facts) ⇒ Object @@ -11630,7 +11856,7 @@

  • - .readme_front_section_preserved?(section) ⇒ Boolean + .normalize_conditional_body_indentation(source) ⇒ Object @@ -11653,7 +11879,7 @@

  • - .readme_h2_synopsis_logo_entries(config, org:, gem_name:, repository: {}) ⇒ Object + .normalize_eval_gemfile_ruby_bucket(path) ⇒ Object @@ -11676,7 +11902,7 @@

  • - .readme_h2_synopsis_logo_options(config) ⇒ Object + .normalize_gemspec_dependency_version_requirements(source, receiver:, namespace:) ⇒ Object @@ -11699,7 +11925,7 @@

  • - .readme_h2_synopsis_logo_row(entries) ⇒ Object + .normalize_gemspec_project_emoji(line, facts, field:) ⇒ Object @@ -11722,7 +11948,7 @@

  • - .readme_h2_synopsis_logo_specs(config) ⇒ Object + .normalize_gemspec_receiver(line, from:, to:) ⇒ Object @@ -11745,7 +11971,7 @@

  • - .readme_integration_configured?(project_root, integration) ⇒ Boolean + .normalize_generated_image_url(url) ⇒ Object @@ -11768,7 +11994,7 @@

  • - .readme_integration_project_root(project_root, template_profile, repository) ⇒ Object + .normalize_generated_rakefile(content) ⇒ Object @@ -11791,7 +12017,7 @@

  • - .readme_kloc_from_changelog(project_root, version) ⇒ Object + .normalize_git_source_url(url) ⇒ Object @@ -11814,7 +12040,7 @@

  • - .readme_license_intro(licenses, author_email: nil) ⇒ Object + .normalize_github_actions_exec_cmd(command) ⇒ Object @@ -11837,7 +12063,7 @@

  • - .readme_license_refs(expression, compat_category) ⇒ Object + .normalize_integration_name(name) ⇒ Object @@ -11860,7 +12086,7 @@

  • - .readme_logo_config_value(spec) ⇒ Object + .normalize_kettle_jem_config(config) ⇒ Object @@ -11883,7 +12109,7 @@

  • - .readme_logo_facts(config, package_name:, github_org:, repository: {}) ⇒ Object + .normalize_list_option(value) ⇒ Object @@ -11906,7 +12132,7 @@

  • - .readme_logo_html(entry, align:, width: nil) ⇒ Object + .normalize_main_gemfile_nomono_requirements(content) ⇒ Object @@ -11929,7 +12155,7 @@

  • - .readme_logo_options_from_config(config, primary_key, secondary_key, defaults) ⇒ Object + .normalize_non_default_version_gem_version_spec(project_root, version_spec_path, entrypoint_require) ⇒ Object @@ -11952,7 +12178,7 @@

  • - .readme_logo_specs_from_config(config, primary_key, secondary_key, defaults) ⇒ Object + .normalize_rakefile_section_spacing(content) ⇒ Object @@ -11975,7 +12201,7 @@

  • - .readme_logo_template_tokens(readme_logo) ⇒ Object + .normalize_readme_blank_line_runs(content) ⇒ Object @@ -11998,7 +12224,7 @@

  • - .readme_metadata_block(facts) ⇒ Object + .normalize_readme_heading(text) ⇒ Object @@ -12021,7 +12247,7 @@

  • - .readme_metadata_license_expression(facts) ⇒ Object + .normalize_readme_project_heading(content, facts) ⇒ Object @@ -12044,7 +12270,7 @@

  • - .readme_metadata_table_cell(value) ⇒ Object + .normalize_readme_section_key(section) ⇒ Object @@ -12067,7 +12293,7 @@

  • - .readme_preserve_config(config) ⇒ Object + .normalize_readme_synopsis_heading(content, facts) ⇒ Object @@ -12090,7 +12316,7 @@

  • - .readme_preserve_config_without_partial_sections(preserve_config, partial_sections) ⇒ Object + .normalize_repository_topology(value) ⇒ Object @@ -12113,7 +12339,7 @@

  • - .readme_preserve_targets(template_sections, destination_lookup, preserve_config) ⇒ Object + .normalize_simplecov_template_source(content) ⇒ Object @@ -12136,7 +12362,7 @@

  • - .readme_project_emoji(project_root) ⇒ Object + .normalize_simplecov_track_files_calls(content) ⇒ Object @@ -12159,7 +12385,7 @@

  • - .readme_section_contains_badge_cloud?(section) ⇒ Boolean + .normalize_spec_helper_simplecov_template_source(content) ⇒ Object @@ -12182,7 +12408,7 @@

  • - .readme_section_partials(project_root, config, readme) ⇒ Object + .normalize_template_profile(value) ⇒ Object @@ -12205,7 +12431,7 @@

  • - .readme_section_partials_for_render(readme_style, facts) ⇒ Object + .normalize_templating_guard_indentation(content) ⇒ Object @@ -12228,7 +12454,7 @@

  • - .readme_style_facts(project_root, config, license, template_profile: nil, repository: nil) ⇒ Object + .normalized_readme_logo_specs(value) ⇒ Object @@ -12251,7 +12477,7 @@

  • - .readme_template_tokens(facts) ⇒ Object + .normalized_readme_logo_width(value) ⇒ Object @@ -12274,7 +12500,7 @@

  • - .readme_top_logo_credit_separator(type) ⇒ Object + .normalized_readme_top_logo_options(value) ⇒ Object @@ -12297,7 +12523,7 @@

  • - .readme_top_logo_default_alt(type, slug) ⇒ Object + .opencollective_disabled?(config, env: ENV) ⇒ Boolean @@ -12320,7 +12546,7 @@

  • - .readme_top_logo_entries(config, org:, gem_name:, repository: {}) ⇒ Object + .opencollective_disabled_file?(relative_path) ⇒ Boolean @@ -12343,7 +12569,7 @@

  • - .readme_top_logo_entries_with_asset_size(entries) ⇒ Object + .opencollective_disabled_files(project_root) ⇒ Object @@ -12366,7 +12592,7 @@

  • - .readme_top_logo_entry_from_config(logo, org:, gem_name:, repository: {}) ⇒ Object + .opencollective_fallback_warnings(funding, github_org) ⇒ Object @@ -12389,7 +12615,7 @@

  • - .readme_top_logo_entry_from_option(option, org:, gem_name:, repository: {}) ⇒ Object + .opencollective_falsey_env(env) ⇒ Object @@ -12412,7 +12638,7 @@

  • - .readme_top_logo_options(config) ⇒ Object + .opencollective_org(project_root, config, env, opencollective_disabled: false) ⇒ Object @@ -12435,7 +12661,7 @@

  • - .readme_top_logo_refs(entries) ⇒ Object + .opencollective_org_config(config) ⇒ Object @@ -12458,7 +12684,7 @@

  • - .readme_top_logo_row(entries) ⇒ Object + .opencollective_org_env(env) ⇒ Object @@ -12481,7 +12707,7 @@

  • - .readme_url_template_tokens(repository, package_name, github_org) ⇒ Object + .opencollective_org_file(project_root) ⇒ Object @@ -12504,7 +12730,7 @@

  • - .readme_workflow_path_from_url(url) ⇒ Object + .opencollective_org_github_funding_file(project_root) ⇒ Object @@ -12527,7 +12753,7 @@

  • - .readme_workflow_paths(project_root) ⇒ Object + .opencollective_policy(config, env) ⇒ Object @@ -12550,7 +12776,7 @@

  • - .recipe_decision_category(recipe) ⇒ Object + .opt_in_workflow_cleanup_files(project_root, template_selection) ⇒ Object @@ -12573,7 +12799,7 @@

  • - .recipe_decision_diagnostics(recipe) ⇒ Object + .outdent_line(line, spaces) ⇒ Object @@ -12596,7 +12822,7 @@

  • - .recipe_decision_evaluation(decision_policy:, recipe:, changed:, destination_existed:) ⇒ Object + .outdent_source(source, spaces) ⇒ Object @@ -12619,7 +12845,7 @@

  • - .recipe_default_action(recipe, changed:, destination_existed:) ⇒ Object + .package_runtime_dependency_names(facts) ⇒ Object @@ -12642,7 +12868,7 @@

  • - .recipe_entry(name, target_path, provider_family, primitive, facts:, provider_backend: nil, selectors: []) ⇒ Object + .packaged_gemfile_template_ruby_floor(target_path) ⇒ Object @@ -12665,7 +12891,7 @@

  • - .recipe_filter_patterns(template_selection) ⇒ Object + .packaged_template_root ⇒ Object @@ -12688,7 +12914,7 @@

  • - .recipe_pack(facts) ⇒ Object + .paired_modular_gemfile_path(local_relative_path) ⇒ Object @@ -12711,7 +12937,7 @@

  • - .recipe_report_metadata(recipe) ⇒ Object + .paperclip_ref(name) ⇒ Object @@ -12734,7 +12960,7 @@

  • - .recipe_report_phase(recipe_report) ⇒ Object + .parse_blame_porcelain(output, author_map) ⇒ Object @@ -12757,7 +12983,7 @@

  • - .recipe_run_stats(recipe_reports, diagnostics: []) ⇒ Object + .phase_for_recipe(recipe_name, relative_path) ⇒ Object @@ -12780,7 +13006,7 @@

  • - .recipe_run_stats_summary(stats) ⇒ Object + .phase_reports_for(recipe_reports) ⇒ Object @@ -12803,7 +13029,7 @@

  • - .recipe_runtime_context(recipe, facts, deletion) ⇒ Object + .plan_project(project_root, env: ENV, run_options: {}) ⇒ Object @@ -12826,7 +13052,7 @@

  • - .recipe_template_content(project_root, recipe) ⇒ Object + .plan_readme_style(project_root, env: ENV) ⇒ Object @@ -12849,7 +13075,7 @@

  • - .remove_duplicate_gemspec_assignments(content, receiver:, fields:) ⇒ Object + .plugin_lifecycle_diagnostic(plugin_registry, callbacks_run:, active_runner_phases:) ⇒ Object @@ -12872,7 +13098,7 @@

  • - .remove_gemfile_dependency_blocks(content, gem_names) ⇒ Object + .plugin_names_from_config(config) ⇒ Object @@ -12895,7 +13121,7 @@

  • - .remove_gemfile_dependency_lines(content, gem_names) ⇒ Object + .plugin_registry_for_project(project_root) ⇒ Object @@ -12918,7 +13144,7 @@

  • - .remove_gemfile_percent_w_entries(content, gem_names) ⇒ Object + .polyform_licenses?(licenses) ⇒ Boolean @@ -12941,7 +13167,7 @@

  • - .remove_gemspec_assignment(content, receiver:, field:) ⇒ Object + .post_apply_steps(project_root, report) ⇒ Object @@ -12964,7 +13190,7 @@

  • - .remove_gemspec_dependency_lines(content, receiver:, names:, runtime_only: false) ⇒ Object + .postprocess_readme_content(content, facts, project_root: nil) ⇒ Object @@ -12987,7 +13213,7 @@

  • - .remove_gemspec_development_dependencies_already_runtime(content, receiver:) ⇒ Object + .preferred_template_source(template_root, configured_source, opencollective_disabled: false) ⇒ Object @@ -13010,7 +13236,7 @@

  • - .remove_gemspec_legacy_version_loader_preamble(content) ⇒ Object + .preferred_template_token_value(derived_value, config_value, env, env_key) ⇒ Object @@ -13033,7 +13259,7 @@

  • - .remove_gemspec_self_dependency_lines(content, package_name, receiver:) ⇒ Object + .preflight_project!(project_root) ⇒ Object @@ -13056,7 +13282,7 @@

  • - .remove_gemspec_version_gem_dependency_when_runtime_incompatible(content, facts, receiver:) ⇒ Object + .preflight_ruby_syntax!(project_root, path) ⇒ Object @@ -13079,7 +13305,7 @@

  • - .remove_legacy_version_signature_alias(project_root, signature_path) ⇒ Object + .prepare_github_workflow_template(content, recipe, facts) ⇒ Object @@ -13102,7 +13328,7 @@

  • - .remove_readme_badge_and_refs(content, badge_source, link_labels) ⇒ Object + .prepare_readme_template(content, readme_style) ⇒ Object @@ -13125,7 +13351,7 @@

  • - .remove_readme_sections(content, section_bases) ⇒ Object + .present_template_token_value?(value) ⇒ Boolean @@ -13148,7 +13374,7 @@

  • - .remove_ruby_comment_lines_containing(content, text) ⇒ Object + .preserve_gemspec_dependency_lines(template_content, destination_content, template_receiver:, destination_receiver:, facts: nil) ⇒ Object @@ -13171,7 +13397,7 @@

  • - .remove_top_level_yaml_key_lines(content, key) ⇒ Object + .preserve_gemspec_freeze_blocks(content, destination_content, facts:, receiver:) ⇒ Object @@ -13194,7 +13420,7 @@

  • - .remove_version_gem_entrypoint_references(content) ⇒ Object + .preserve_github_workflow_project_settings(recipe, content, destination_content, project_root:) ⇒ Object @@ -13217,7 +13443,7 @@

  • - .remove_yaml_scalar_path(content, path) ⇒ Object + .preserve_mise_project_settings(recipe, content, destination_content, project_root:) ⇒ Object @@ -13240,7 +13466,7 @@

  • - .render_thin_readme(facts, readme_style, original, preserve_config) ⇒ Object + .preserve_newer_github_workflow_action_pins(content, destination_content) ⇒ Object @@ -13263,7 +13489,7 @@

  • - .replace_existing_markdown_managed_block(content, marker, replacement) ⇒ Object + .preserve_readme_front_sections(template_content, destination_content) ⇒ Object @@ -13286,7 +13512,7 @@

  • - .replace_gemspec_assignment_sources(content, replacements, receiver:) ⇒ Object + .preserve_readme_h1(merged_content, destination_content, preserve_config) ⇒ Object @@ -13309,7 +13535,7 @@

  • - .replace_gemspec_version_assignment(content, receiver:, rhs:) ⇒ Object + .preserve_readme_managed_block(merged_content, destination_content, marker) ⇒ Object @@ -13332,7 +13558,7 @@

  • - .replace_kettle_config_bootstrap_licenses(content, licenses) ⇒ Object + .preserve_readme_sections(template_content, destination_content, preserve_config) ⇒ Object @@ -13355,7 +13581,7 @@

  • - .replace_kettle_config_bootstrap_project_emoji(content, emoji) ⇒ Object + .previous_nonblank_line_number(content, line_number) ⇒ Object @@ -13378,7 +13604,7 @@

  • - .replace_local_gems_assignment(content, gems) ⇒ Object + .prism_call_nodes(node) ⇒ Object @@ -13401,7 +13627,7 @@

  • - .replace_markdown_managed_block(content, marker, replacement) ⇒ Object + .prism_parse_success(content) ⇒ Object @@ -13424,7 +13650,7 @@

  • - .replace_markdown_managed_block_with_crispr(content, open_marker, close_marker, replacement) ⇒ Object + .prism_ruby_merge_options(recipe) ⇒ Object @@ -13447,7 +13673,7 @@

  • - .replace_markdown_with_ast_crispr(content, target, replacement) ⇒ Object + .prism_subtree_contains_call?(node, call_name) ⇒ Boolean @@ -13470,7 +13696,7 @@

  • - .replace_matching_gemspec_dependency_lines(content, destination_dependencies, receiver:) ⇒ Object + .prism_subtree_contains_simplecov_require?(node) ⇒ Boolean @@ -13493,7 +13719,7 @@

  • - .replace_record_ranges(content, records_by_line) ⇒ Object + .prism_subtree_contains_string?(node, string) ⇒ Boolean @@ -13516,7 +13742,7 @@

  • - .replace_ruby_managed_block(content, replacement) ⇒ Object + .process_result_adapter_failure?(merge_result) ⇒ Boolean @@ -13539,7 +13765,7 @@

  • - .replace_ruby_managed_block_with_crispr(content, open_marker, close_marker, replacement) ⇒ Object + .project_appraisals_recording_enabled?(project_root) ⇒ Boolean @@ -13562,7 +13788,7 @@

  • - .replace_source_offsets(content, replacements) ⇒ Object + .project_gemspec_declares_version_gem?(project_root) ⇒ Boolean @@ -13585,7 +13811,7 @@

  • - .replace_source_range_lines(content, start_line, end_line, replacement) ⇒ Object + .project_gemspec_metadata(project_root, gemspec_path, spec: nil) ⇒ Object @@ -13608,7 +13834,7 @@

  • - .replace_text_managed_block(content, replacement) ⇒ Object + .project_gemspec_version(project_root) ⇒ Object @@ -13631,7 +13857,7 @@

  • - .replace_text_managed_block_with_crispr(content, open_marker, close_marker, replacement) ⇒ Object + .project_homepage_uri(config, env, yard_host:, gemspec_homepage_uri: nil) ⇒ Object @@ -13654,7 +13880,7 @@

  • - .replace_toml_string_scalar_line(content, key, value) ⇒ Object + .project_namespace(entrypoint_namespace:, version_namespace:, metadata_namespace:, default_namespace:) ⇒ Object @@ -13677,7 +13903,7 @@

  • - .replace_yaml_node_lines(content, key, replacement) ⇒ Object + .project_recording_enabled?(project_root, config) ⇒ Boolean @@ -13700,7 +13926,7 @@

  • - .replace_yaml_scalar_line(content, key, value) ⇒ Object + .project_relative_path(path, project_root) ⇒ Object @@ -13723,7 +13949,7 @@

  • - .replace_yaml_scalar_path(content, path, value) ⇒ Object + .project_runtime_config_value(config, key) ⇒ Object @@ -13746,7 +13972,7 @@

  • - .repository_facts(project_root, source_url, package_name:, repository_topology:) ⇒ Object + .project_runtime_facts(config, env, package_name:, source_url:, author_domain:, min_ruby:, test_min_ruby:, version:, project_root: nil, gemspec_metadata: {}) ⇒ Object @@ -13769,7 +13995,7 @@

  • - .repository_monorepo_subproject?(repository) ⇒ Boolean + .project_runtime_template_tokens(project_runtime) ⇒ Object @@ -13792,7 +14018,7 @@

  • - .repository_name_from_source_url(source_url) ⇒ Object + .project_yard_host(config, env, package_name:, author_domain:) ⇒ Object @@ -13815,7 +14041,7 @@

  • - .repository_project_logo_href(repository, slug:, org:, gem_name:) ⇒ Object + .prune_appraisals_below_min_ruby(content, min_ruby) ⇒ Object @@ -13838,7 +14064,7 @@

  • - .repository_project_logo_slug(repository, org:, gem_name:) ⇒ Object + .prune_appraisals_recording_entries(content, facts) ⇒ Object @@ -13861,7 +14087,7 @@

  • - .repository_resource_urls(repository) ⇒ Object + .prune_empty_parent_directories(project_root, relative_path) ⇒ Object @@ -13884,7 +14110,7 @@

  • - .repository_root_url(source_url) ⇒ Object + .prune_github_workflow_matrix_by_min_ruby(content, facts) ⇒ Object @@ -13907,7 +14133,7 @@

  • - .repository_topology_for(config, env, template_selection) ⇒ Object + .prune_legacy_kettle_config_keys(content) ⇒ Object @@ -13930,7 +14156,7 @@

  • - .resolve_template_tokens(content, tokens, scan_unresolved: true) ⇒ Object + .prune_missing_workflow_link_definitions(content, workflow_paths) ⇒ Object @@ -13953,7 +14179,7 @@

  • - .resolve_uncommitted_author!(project_root, author_map) ⇒ Object + .prune_readme_integration_badges(content, readme_style) ⇒ Object @@ -13976,7 +14202,7 @@

  • - .resolved_licenses(config, gemspec_licenses) ⇒ Object + .prune_unused_readme_logo_link_definitions(content) ⇒ Object @@ -13999,7 +14225,7 @@

  • - .retired_gemspec_development_dependency_key?(key) ⇒ Boolean + .prune_workflow_matrix_item?(mapping, minimum) ⇒ Boolean @@ -14022,7 +14248,7 @@

  • - .rewrite_gemspec_version_loader(content, facts:) ⇒ Object + .quality_config_path?(path) ⇒ Boolean @@ -14045,7 +14271,7 @@

  • - .rewrite_markdown_reference_links(content, links) ⇒ Object + .quiet_gemspec_reader_load(project_root) ⇒ Object @@ -14068,7 +14294,7 @@

  • - .rubocop_target_ruby_token(min_ruby) ⇒ Object + .rakefile_default_task_call?(call) ⇒ Boolean @@ -14091,7 +14317,7 @@

  • - .rubocop_template_tokens(min_ruby) ⇒ Object + .rakefile_default_task_records(content) ⇒ Object @@ -14114,7 +14340,7 @@

  • - .rubocop_tokens_for(min_ruby) ⇒ Object + .rakefile_require_records(content) ⇒ Object @@ -14137,7 +14363,7 @@

  • - .ruby_appraisal_name_version(name) ⇒ Object + .rakefile_scaffold_cleanup(content, facts) ⇒ Object @@ -14160,7 +14386,7 @@

  • - .ruby_appraisal_names_below(content, min_ruby) ⇒ Object + .rakefile_scaffold_cleanup_recipe?(recipe) ⇒ Boolean @@ -14183,7 +14409,7 @@

  • - .ruby_array_literal(values) ⇒ Object + .rakefile_scaffold_delete_selectors(content) ⇒ Object @@ -14206,7 +14432,7 @@

  • - .ruby_bucket_path_segment?(segment) ⇒ Boolean + .rakefile_selector(selector_id, start_line, end_line, reason) ⇒ Object @@ -14229,7 +14455,7 @@

  • - .ruby_call_records(content, call_name) ⇒ Object + .rakefile_task_block_selectors(content) ⇒ Object @@ -14252,7 +14478,7 @@

  • - .ruby_constant_path_segments(node) ⇒ Object + .rakefile_task_class_records(content) ⇒ Object @@ -14275,7 +14501,7 @@

  • - .ruby_double_quoted_string_body(value) ⇒ Object + .rakefile_template_default_task?(content, record) ⇒ Boolean @@ -14298,7 +14524,7 @@

  • - .ruby_engines_config(config) ⇒ Object + .rbs_merge_options(recipe) ⇒ Object @@ -14321,7 +14547,7 @@

  • - .ruby_first_string_argument(owner) ⇒ Object + .read_project_file(project_root, relative_path) ⇒ Object @@ -14344,7 +14570,7 @@

  • - .ruby_keyword_string_argument(call, key) ⇒ Object + .read_project_files(project_root, pack) ⇒ Object @@ -14367,7 +14593,7 @@

  • - .ruby_merge_options(recipe, merge_template_requires:) ⇒ Object + .readme_config_hash(config) ⇒ Object @@ -14390,7 +14616,7 @@

  • - .ruby_method_move_policy(recipe) ⇒ Object + .readme_copyright_notice(copyright_lines, copyright_prefix, author) ⇒ Object @@ -14413,7 +14639,7 @@

  • - .ruby_multiline_word_array_source(names, indent:) ⇒ Object + .readme_default_logo_width(entries, one:, two:) ⇒ Object @@ -14436,7 +14662,7 @@

  • - .ruby_require_aliases(recipe, facts = nil) ⇒ Object + .readme_destination_front_sections(destination_content) ⇒ Object @@ -14459,7 +14685,7 @@

  • - .ruby_require_call?(owner, method_name, argument) ⇒ Boolean + .readme_dev_test_stack_table(package_name) ⇒ Object @@ -14482,7 +14708,7 @@

  • - .ruby_string_argument(call) ⇒ Object + .readme_disabled_integrations(readme, integration_disabled: []) ⇒ Object @@ -14505,7 +14731,7 @@

  • - .ruby_string_argument_at(call, index) ⇒ Object + .readme_extra_preserved_sections_by_anchor(destination_sections, template_bases, preserve_targets) ⇒ Object @@ -14528,7 +14754,7 @@

  • - .ruby_string_arguments(call) ⇒ Object + .readme_family_intro_and_backend_matrix(readme_style = {}) ⇒ Object @@ -14551,7 +14777,7 @@

  • - .ruby_template_policy_report(recipe:, request:, original:, final:) ⇒ Object + .readme_floss_funding_enabled?(license, config_value) ⇒ Boolean @@ -14574,7 +14800,7 @@

  • - .ruby_top_level_require?(content, method_name, argument) ⇒ Boolean + .readme_fossa_project(readme, repository) ⇒ Object @@ -14597,7 +14823,7 @@

  • - .ruby_top_level_require_records(content) ⇒ Object + .readme_fossa_template_tokens(readme_style) ⇒ Object @@ -14620,7 +14846,7 @@

  • - .ruby_version_class_eval_namespaces(content) ⇒ Object + .readme_front_section_preserved?(section) ⇒ Boolean @@ -14643,7 +14869,7 @@

  • - .ruby_version_constant_value(content) ⇒ Object + .readme_h2_synopsis_logo_entries(config, org:, gem_name:, repository: {}) ⇒ Object @@ -14666,7 +14892,7 @@

  • - .ruby_version_module_namespace(content) ⇒ Object + .readme_h2_synopsis_logo_options(config) ⇒ Object @@ -14689,7 +14915,7 @@

  • - .ruby_version_module_namespace_for(node, namespace) ⇒ Object + .readme_h2_synopsis_logo_row(entries) ⇒ Object @@ -14712,7 +14938,7 @@

  • - .ruby_word_array_names(node) ⇒ Object + .readme_h2_synopsis_logo_specs(config) ⇒ Object @@ -14735,7 +14961,7 @@

  • - .ruby_word_array_node?(node) ⇒ Boolean + .readme_integration_configured?(project_root, integration) ⇒ Boolean @@ -14758,7 +14984,7 @@

  • - .ruby_word_array_nodes(content) ⇒ Object + .readme_integration_project_root(project_root, template_profile, repository) ⇒ Object @@ -14781,7 +15007,7 @@

  • - .ruby_word_array_records(content) ⇒ Object + .readme_kloc_from_changelog(project_root, version) ⇒ Object @@ -14804,7 +15030,7 @@

  • - .run_apply_phases(project_root, report) ⇒ Object + .readme_license_intro(licenses, author_email: nil) ⇒ Object @@ -14827,7 +15053,7 @@

  • - .runtime_context_value(request, *path) ⇒ Object + .readme_license_refs(expression, compat_category) ⇒ Object @@ -14850,7 +15076,7 @@

  • - .runtime_gemspec_dependency_insertion_index(lines, receiver:) ⇒ Object + .readme_logo_config_value(spec) ⇒ Object @@ -14873,7 +15099,7 @@

  • - .security_supported_version_token(version) ⇒ Object + .readme_logo_facts(config, package_name:, github_org:, repository: {}) ⇒ Object @@ -14896,7 +15122,7 @@

  • - .selected_template_path?(relative_path, patterns) ⇒ Boolean + .readme_logo_html(entry, align:, width: nil) ⇒ Object @@ -14919,7 +15145,7 @@

  • - .semantic_readme_heading(text) ⇒ Object + .readme_logo_options_from_config(config, primary_key, secondary_key, defaults) ⇒ Object @@ -14942,7 +15168,7 @@

  • - .setup_execution_context(env, run_options) ⇒ Object + .readme_logo_specs_from_config(config, primary_key, secondary_key, defaults) ⇒ Object @@ -14965,7 +15191,7 @@

  • - .setup_guidance_diagnostic(config_existed:) ⇒ Object + .readme_logo_template_tokens(readme_logo) ⇒ Object @@ -14988,7 +15214,7 @@

  • - .setup_project(project_root, env: ENV, run_options: {}, command_runner: nil) ⇒ Object + .readme_metadata_block(facts) ⇒ Object @@ -15011,7 +15237,7 @@

  • - .shield_token(value) ⇒ Object + .readme_metadata_license_expression(facts) ⇒ Object @@ -15034,7 +15260,7 @@

  • - .shunted_effective_floor(min_ruby) ⇒ Object + .readme_metadata_table_cell(value) ⇒ Object @@ -15057,7 +15283,7 @@

  • - .shunted_gemfile_block(gemspec, facts, run_options) ⇒ Object + .readme_preserve_config(config) ⇒ Object @@ -15080,7 +15306,7 @@

  • - .shunted_gemfile_managed_block(dependencies) ⇒ Object + .readme_preserve_config_without_partial_sections(preserve_config, partial_sections) ⇒ Object @@ -15103,7 +15329,7 @@

  • - .skip_packaged_gemfile_template?(target_path, config) ⇒ Boolean + .readme_preserve_targets(template_sections, destination_lookup, preserve_config) ⇒ Object @@ -15126,7 +15352,7 @@

  • - .skip_packaged_license_template?(target_path, config) ⇒ Boolean + .readme_project_emoji(project_root) ⇒ Object @@ -15149,7 +15375,7 @@

  • - .skip_packaged_workflow_template?(target_path, config, include_patterns: nil) ⇒ Boolean + .readme_section_contains_badge_cloud?(section) ⇒ Boolean @@ -15172,7 +15398,7 @@

  • - .snapshot_changed_files(project_root, changed_files) ⇒ Object + .readme_section_has_preserved_ancestor?(sections, index, preserve_targets) ⇒ Boolean @@ -15195,7 +15421,7 @@

  • - .social_facts(config, env) ⇒ Object + .readme_section_partials(project_root, config, readme) ⇒ Object @@ -15218,7 +15444,7 @@

  • - .social_template_tokens(social) ⇒ Object + .readme_section_partials_for_render(readme_style, facts) ⇒ Object @@ -15241,7 +15467,7 @@

  • - .social_token_value(social_config, env, key) ⇒ Object + .readme_style_facts(project_root, config, license, template_profile: nil, repository: nil) ⇒ Object @@ -15264,7 +15490,7 @@

  • - .sort_runtime_gemspec_dependency_lines(content, receiver:) ⇒ Object + .readme_template_tokens(facts) ⇒ Object @@ -15287,7 +15513,7 @@

  • - .source_blob_url(source_url, path) ⇒ Object + .readme_top_logo_credit_separator(type) ⇒ Object @@ -15310,7 +15536,7 @@

  • - .source_tree_url(source_url, path) ⇒ Object + .readme_top_logo_default_alt(type, slug) ⇒ Object @@ -15333,7 +15559,7 @@

  • - .spdx_basename(spdx_id) ⇒ Object + .readme_top_logo_entries(config, org:, gem_name:, repository: {}) ⇒ Object @@ -15356,7 +15582,7 @@

  • - .spdx_from_basename(basename) ⇒ Object + .readme_top_logo_entries_with_asset_size(entries) ⇒ Object @@ -15379,7 +15605,7 @@

  • - .stale_versioned_engine_workflow?(relative_path) ⇒ Boolean + .readme_top_logo_entry_from_config(logo, org:, gem_name:, repository: {}) ⇒ Object @@ -15402,7 +15628,7 @@

  • - .standard_test_appraisal_names(content) ⇒ Object + .readme_top_logo_entry_from_option(option, org:, gem_name:, repository: {}) ⇒ Object @@ -15425,7 +15651,7 @@

  • - .static_gemspec_metadata_assignment(content, key) ⇒ Object + .readme_top_logo_options(config) ⇒ Object @@ -15448,7 +15674,7 @@

  • - .static_gemspec_metadata_key_assigned?(content, key) ⇒ Boolean + .readme_top_logo_refs(entries) ⇒ Object @@ -15471,7 +15697,7 @@

  • - .static_project_gemspec_metadata(gemspec_path) ⇒ Object + .readme_top_logo_row(entries) ⇒ Object @@ -15494,7 +15720,7 @@

  • - .step_report_metadata(recipe, deletion) ⇒ Object + .readme_url_template_tokens(repository, package_name, github_org) ⇒ Object @@ -15517,7 +15743,7 @@

  • - .stringify_template_tokens(tokens) ⇒ Object + .readme_workflow_path_from_url(url) ⇒ Object @@ -15540,7 +15766,7 @@

  • - .strip_leading_decorative_graphemes(text) ⇒ Object + .readme_workflow_paths(project_root) ⇒ Object @@ -15563,7 +15789,7 @@

  • - .strip_orphaned_rake_task_requires(content) ⇒ Object + .recipe_decision_category(recipe) ⇒ Object @@ -15586,7 +15812,7 @@

  • - .strip_readme_heading_adornment(text) ⇒ Object + .recipe_decision_diagnostics(recipe) ⇒ Object @@ -15609,7 +15835,7 @@

  • - .sync_kettle_config_documentation_comments(content) ⇒ Object + .recipe_decision_evaluation(decision_policy:, recipe:, changed:, destination_existed:) ⇒ Object @@ -15632,7 +15858,7 @@

  • - .sync_kettle_config_env_overrides(content, env) ⇒ Object + .recipe_default_action(recipe, changed:, destination_existed:) ⇒ Object @@ -15655,7 +15881,7 @@

  • - .sync_kettle_config_gemspec_strategy_lines!(lines, gemspec_path, profile) ⇒ Object + .recipe_entry(name, target_path, provider_family, primitive, facts:, provider_backend: nil, selectors: []) ⇒ Object @@ -15678,7 +15904,7 @@

  • - .sync_kettle_config_internal_values(content) ⇒ Object + .recipe_filter_patterns(template_selection) ⇒ Object @@ -15701,7 +15927,7 @@

  • - .sync_kettle_config_monorepo_subgem_profile(content, gemspec_path, profile) ⇒ Object + .recipe_pack(facts) ⇒ Object @@ -15724,7 +15950,7 @@

  • - .sync_readme_top_logos_documentation_comment(content) ⇒ Object + .recipe_report_metadata(recipe) ⇒ Object @@ -15747,7 +15973,7 @@

  • - .synchronize_github_actions_ci(_content, facts) ⇒ Object + .recipe_report_phase(recipe_report) ⇒ Object @@ -15770,7 +15996,7 @@

  • - .synchronize_github_actions_coverage_ci(_content, facts) ⇒ Object + .recipe_run_stats(recipe_reports, diagnostics: []) ⇒ Object @@ -15793,7 +16019,7 @@

  • - .synchronize_github_actions_framework_ci(_content, facts) ⇒ Object + .recipe_run_stats_summary(stats) ⇒ Object @@ -15816,7 +16042,7 @@

  • - .synchronize_github_actions_framework_gemfile(target_path, facts) ⇒ Object + .recipe_runtime_context(recipe, facts, deletion) ⇒ Object @@ -15839,7 +16065,7 @@

  • - .synchronize_github_actions_workflow_snippets(content) ⇒ Object + .recipe_template_content(project_root, recipe) ⇒ Object @@ -15862,7 +16088,7 @@

  • - .synchronize_github_funding_yml(content, facts) ⇒ Object + .redundant_templating_guard_wrapper_node?(node) ⇒ Boolean @@ -15885,7 +16111,7 @@

  • - .synchronize_managed_block(content, facts) ⇒ Object + .remove_duplicate_gemspec_assignments(content, receiver:, fields:) ⇒ Object @@ -15908,7 +16134,7 @@

  • - .synchronize_readme(content, facts, project_root: nil) ⇒ Object + .remove_duplicate_simplecov_do_cov_bootstrap_blocks(content) ⇒ Object @@ -15931,7 +16157,7 @@

  • - .template_activation_config(config) ⇒ Object + .remove_duplicate_simplecov_requires(content) ⇒ Object @@ -15954,7 +16180,7 @@

  • - .template_entries(project_root, root, templates) ⇒ Object + .remove_empty_gemspec_development_dependency_section_headings(content, receiver:) ⇒ Object @@ -15977,7 +16203,7 @@

  • - .template_entry_apply?(entry, apply_templates) ⇒ Boolean + .remove_gemfile_dependency_blocks(content, gem_names) ⇒ Object @@ -16000,7 +16226,7 @@

  • - .template_entry_paths(entry) ⇒ Object + .remove_gemfile_dependency_lines(content, gem_names) ⇒ Object @@ -16023,7 +16249,7 @@

  • - .template_file_strategy_config(config, target_path) ⇒ Object + .remove_gemfile_percent_w_entries(content, gem_names) ⇒ Object @@ -16046,7 +16272,7 @@

  • - .template_file_type(recipe) ⇒ Object + .remove_gemspec_assignment(content, receiver:, field:) ⇒ Object @@ -16069,7 +16295,7 @@

  • - .template_inventory_entries(project_root, template_root_path) ⇒ Object + .remove_gemspec_dependency_lines(content, receiver:, names:, runtime_only: false) ⇒ Object @@ -16092,7 +16318,7 @@

  • - .template_inventory_target_path(project_root, logical_path) ⇒ Object + .remove_gemspec_development_dependencies_already_runtime(content, receiver:) ⇒ Object @@ -16115,7 +16341,7 @@

  • - .template_keep_destination_path?(config, target_path) ⇒ Boolean + .remove_gemspec_legacy_version_loader_preamble(content) ⇒ Object @@ -16138,7 +16364,7 @@

  • - .template_legacy_destination_cleanups(project_root, preferences) ⇒ Object + .remove_gemspec_self_dependency_lines(content, package_name, receiver:) ⇒ Object @@ -16161,7 +16387,7 @@

  • - .template_manifest(project_root: Dir.pwd, template_root: nil, config: nil) ⇒ Object + .remove_gemspec_version_gem_dependency_when_non_default_entrypoint(content, facts, receiver:) ⇒ Object @@ -16184,7 +16410,7 @@

  • - .template_obsolete_license_cleanups(project_root, config, preferences) ⇒ Object + .remove_gemspec_version_gem_dependency_when_runtime_incompatible(content, facts, receiver:) ⇒ Object @@ -16207,7 +16433,7 @@

  • - .template_pattern_strategy_config(config, target_path) ⇒ Object + .remove_obsolete_simplecov_keep_destination_config(content) ⇒ Object @@ -16230,7 +16456,7 @@

  • - .template_root(project_root, templates) ⇒ Object + .remove_readme_badge_and_refs(content, badge_source, link_labels) ⇒ Object @@ -16253,7 +16479,7 @@

  • - .template_root_path(project_root = Dir.pwd, config: nil) ⇒ Object + .remove_readme_sections(content, section_bases) ⇒ Object @@ -16276,7 +16502,7 @@

  • - .template_runtime_config(config, facts, license: {}) ⇒ Object + .remove_ruby_comment_lines_containing(content, text) ⇒ Object @@ -16299,7 +16525,7 @@

  • - .template_selection_for(env, run_options) ⇒ Object + .remove_stale_generated_gemspec_homepage_replacement(replacements, destination_content, facts, receiver:) ⇒ Object @@ -16322,7 +16548,7 @@

  • - .template_source_display_path(template_root, selected_source) ⇒ Object + .remove_stale_main_gemfile_direct_sibling_block(content, template_content) ⇒ Object @@ -16345,7 +16571,7 @@

  • - .template_source_preference(project_root, template_root, entry, config, opencollective_disabled: false, include_patterns: nil, apply_templates: false) ⇒ Object + .remove_top_level_yaml_key_lines(content, key) ⇒ Object @@ -16368,7 +16594,7 @@

  • - .template_source_preferences(project_root, config, opencollective_disabled: false, include_patterns: nil) ⇒ Object + .remove_version_gem_entrypoint_references(content) ⇒ Object @@ -16391,7 +16617,7 @@

  • - .template_source_selection_reason(configured_source, selected_source) ⇒ Object + .remove_yaml_mapping_path(content, path) ⇒ Object @@ -16414,7 +16640,7 @@

  • - .template_strategy_config(config, target_path) ⇒ Object + .remove_yaml_scalar_path(content, path) ⇒ Object @@ -16437,7 +16663,7 @@

  • - .template_strategy_entry(config, path, entry) ⇒ Object + .render_thin_readme(facts, readme_style, original, preserve_config) ⇒ Object @@ -16460,7 +16686,7 @@

  • - .template_tokens(facts, funding) ⇒ Object + .replace_existing_markdown_managed_block(content, marker, replacement) ⇒ Object @@ -16483,7 +16709,7 @@

  • - .template_version_gem_bootstrap_step(project_root, report) ⇒ Object + .replace_gemspec_assignment_sources(content, replacements, receiver:) ⇒ Object @@ -16506,7 +16732,7 @@

  • - .token_config_values(config) ⇒ Object + .replace_gemspec_version_assignment(content, receiver:, rhs:) ⇒ Object @@ -16529,7 +16755,7 @@

  • - .token_placeholder?(value) ⇒ Boolean + .replace_github_workflow_action_pin_sha(line, sha) ⇒ Object @@ -16552,7 +16778,7 @@

  • - .toml_string_scalar_line_value(content, key) ⇒ Object + .replace_kettle_config_bootstrap_licenses(content, licenses) ⇒ Object @@ -16575,7 +16801,7 @@

  • - .top_level_ruby_call_records(content, call_name) ⇒ Object + .replace_kettle_config_bootstrap_project_emoji(content, emoji) ⇒ Object @@ -16598,7 +16824,7 @@

  • - .top_level_yaml_key_line?(line) ⇒ Boolean + .replace_local_gems_assignment(content, gems) ⇒ Object @@ -16621,7 +16847,7 @@

  • - .trim_trailing_blank_lines(content) ⇒ Object + .replace_markdown_managed_block(content, marker, replacement) ⇒ Object @@ -16644,7 +16870,7 @@

  • - .uncomment_ruby_comment_line(comment_source) ⇒ Object + .replace_markdown_managed_block_with_crispr(content, open_marker, close_marker, replacement) ⇒ Object @@ -16667,7 +16893,7 @@

  • - .unresolved_template_scan?(recipe) ⇒ Boolean + .replace_markdown_with_ast_crispr(content, target, replacement) ⇒ Object @@ -16690,7 +16916,7 @@

  • - .update_github_actions_pins(content) ⇒ Object + .replace_matching_gemspec_dependency_lines(content, destination_dependencies, receiver:) ⇒ Object @@ -16713,7 +16939,7 @@

  • - .valid_gem_version?(version) ⇒ Boolean + .replace_record_ranges(content, records_by_line) ⇒ Object @@ -16736,7 +16962,7 @@

  • - .validate_kettle_jem_config!(config) ⇒ Object + .replace_ruby_managed_block(content, replacement) ⇒ Object @@ -16759,7 +16985,7 @@

  • - .version_gem_bootstrap_entrypoint_content(content, namespace:, entrypoint_require:) ⇒ Object + .replace_ruby_managed_block_with_crispr(content, open_marker, close_marker, replacement) ⇒ Object @@ -16782,7 +17008,7 @@

  • - .version_gem_bootstrap_step(project_root, facts) ⇒ Object + .replace_source_byte_range(content, start_offset, end_offset, replacement) ⇒ Object @@ -16805,7 +17031,7 @@

  • - .version_gem_bootstrap_step_for_paths(project_root, facts, manage_version_file: true, manage_signature_file: true) ⇒ Object + .replace_source_offsets(content, replacements) ⇒ Object @@ -16828,7 +17054,7 @@

  • - .version_gem_class_eval_block(namespace) ⇒ Object + .replace_source_range_lines(content, start_line, end_line, replacement) ⇒ Object @@ -16851,7 +17077,7 @@

  • - .version_gem_class_eval_call?(call) ⇒ Boolean + .replace_text_managed_block(content, replacement) ⇒ Object @@ -16874,7 +17100,7 @@

  • - .version_gem_cleanup_step(project_root, facts) ⇒ Object + .replace_text_managed_block_with_crispr(content, open_marker, close_marker, replacement) ⇒ Object @@ -16897,7 +17123,7 @@

  • - .version_gem_entrypoint_file_content(namespace:, entrypoint_require:) ⇒ Object + .replace_toml_string_scalar_line(content, key, value) ⇒ Object @@ -16920,7 +17146,7 @@

  • - .version_gem_free_entrypoint_content(content, entrypoint_require:) ⇒ Object + .replace_yaml_node_lines(content, key, replacement) ⇒ Object @@ -16943,7 +17169,7 @@

  • - .version_gem_require_insertion_index(content, after_version_gem: false) ⇒ Object + .replace_yaml_scalar_line(content, key, value) ⇒ Object @@ -16966,7 +17192,7 @@

  • - .version_gem_runtime_compatible?(facts) ⇒ Boolean + .replace_yaml_scalar_path(content, path, value) ⇒ Object @@ -16989,7 +17215,7 @@

  • - .version_gem_signature_file_content(namespace:) ⇒ Object + .replacement_for_supported_gemspec_files_assignment(template_record:, destination_record:, template_receiver:) ⇒ Object @@ -17012,7 +17238,7 @@

  • - .version_gem_template_entries(gemspec_path) ⇒ Object + .repository_facts(project_root, source_url, package_name:, repository_topology:) ⇒ Object @@ -17035,7 +17261,7 @@

  • - .version_gem_template_target_path(gemspec_path, source) ⇒ Object + .repository_monorepo_subproject?(repository) ⇒ Boolean @@ -17058,7 +17284,7 @@

  • - .version_gem_template_target_path?(target_path) ⇒ Boolean + .repository_name_from_source_url(source_url) ⇒ Object @@ -17081,7 +17307,7 @@

  • - .version_gem_template_target_path_for_project(project_root, gemspec_path, source) ⇒ Object + .repository_project_logo_href(repository, slug:, org:, gem_name:) ⇒ Object @@ -17104,7 +17330,7 @@

  • - .version_gem_template_tokens(facts) ⇒ Object + .repository_project_logo_slug(repository, org:, gem_name:) ⇒ Object @@ -17127,7 +17353,7 @@

  • - .version_gem_version_file_content(existing_version:, namespace:, version:) ⇒ Object + .repository_resource_urls(repository) ⇒ Object @@ -17150,7 +17376,7 @@

  • - .versioned_gem_name_parts(name) ⇒ Object + .repository_root_url(source_url) ⇒ Object @@ -17173,7 +17399,7 @@

  • - .versioned_gem_name_update_candidate?(destination_name, template_name) ⇒ Boolean + .repository_topology_for(config, env, template_selection) ⇒ Object @@ -17196,7 +17422,7 @@

  • - .workflow_job_env_existing_keys(lines, bundle_index, indent_length) ⇒ Object + .required_ruby_version_rubocop_disable(min_ruby) ⇒ Object @@ -17219,7 +17445,7 @@

  • - .workflow_matrix_env_indent(lines, mapping) ⇒ Object + .resolve_template_tokens(content, tokens, scan_unresolved: true) ⇒ Object @@ -17242,7 +17468,7 @@

  • - .workflow_matrix_env_insert_index(lines, mapping) ⇒ Object + .resolve_uncommitted_author!(project_root, author_map) ⇒ Object @@ -17265,7 +17491,7 @@

  • - .workflow_recipe_slug(workflow_path) ⇒ Object + .resolved_licenses(config, gemspec_licenses) ⇒ Object @@ -17288,7 +17514,7 @@

  • - .wrap_ruby_namespace(namespace, body_lines) ⇒ Object + .retired_gemspec_development_dependency_key?(key) ⇒ Boolean @@ -17311,7 +17537,7 @@

  • - .write_if_changed(project_root, relative_path, content) ⇒ Object + .rewrite_gemspec_version_loader(content, facts:) ⇒ Object @@ -17334,7 +17560,7 @@

  • - .yaml_config_scalar_literal(value, path:) ⇒ Object + .rewrite_markdown_reference_links(content, links) ⇒ Object @@ -17357,7 +17583,7 @@

  • - .yaml_contains_key_value?(node, key, value) ⇒ Boolean + .rubocop_target_ruby_token(min_ruby) ⇒ Object @@ -17380,7 +17606,7 @@

  • - .yaml_double_quoted_scalar(value) ⇒ Object + .rubocop_template_tokens(min_ruby, ruby_style: {}) ⇒ Object @@ -17403,7 +17629,7 @@

  • - .yaml_line_comment_suffix(line, key_index) ⇒ Object + .rubocop_tokens_for(min_ruby) ⇒ Object @@ -17426,7 +17652,7 @@

  • - .yaml_mapping_nodes(content) ⇒ Object + .ruby_appraisal_name_version(name) ⇒ Object @@ -17449,7 +17675,7 @@

  • - .yaml_mapping_scalar_value(mapping, key) ⇒ Object + .ruby_appraisal_names_below(content, min_ruby) ⇒ Object @@ -17472,7 +17698,7 @@

  • - .yaml_mapping_value_node(content, key, node_class) ⇒ Object + .ruby_array_literal(values) ⇒ Object @@ -17495,7 +17721,7 @@

  • - .yaml_merge_options(recipe) ⇒ Object + .ruby_bucket_path_segment?(segment) ⇒ Boolean @@ -17518,7 +17744,7 @@

  • - .yaml_process_result_adapter_failure?(merge_result) ⇒ Boolean + .ruby_call_records(content, call_name) ⇒ Object @@ -17541,7 +17767,7 @@

  • - .yaml_scalar_line_value(content, key) ⇒ Object + .ruby_constant_path_segments(node) ⇒ Object @@ -17564,7 +17790,7 @@

  • - .yaml_scalar_pairs(content) ⇒ Object + .ruby_double_quoted_string_body(value) ⇒ Object @@ -17587,7 +17813,7 @@

  • - .yaml_scalar_path_entries(content) ⇒ Object + .ruby_engines_config(config) ⇒ Object @@ -17610,7 +17836,7 @@

  • - .yaml_top_level_key_lines(content) ⇒ Object + .ruby_entrypoint_module_namespace(content) ⇒ Object @@ -17630,476 +17856,15395 @@

  • - +
  • + + + .ruby_entrypoint_module_namespace_for(node, namespace) ⇒ Object - - - - -
    -

    Class Method Details

    -
    -

    + + + + - .active_license_basenames(config) ⇒ Object - - -

    - - - - -
    -
     
    +  
    +    
    +
    + + -10549 -10550 -10551 -10552 -10553 -10554
    -
    -
    # File 'lib/kettle/jem.rb', line 10549
    +      
    +        
  • + + + .ruby_first_simple_quoted_string_node(node) ⇒ Object + -def active_license_basenames(config) - Array(config["resolved_licenses"]) - .map { |license| spdx_basename(license) } - .reject(&:empty?) - .to_set -end
  • -
    -
    -
    -

    + + + + - .actual_changed_files_after_apply(project_root, changed_files, before_apply_files) ⇒ Object - - -

    - - - - -
    -
     
    +  
    +    
    +
    + + -3139 -3140 -3141 -3142 -3143 -3144 -3145 -3146 -3147 -3148 -3149
    -
    -
    # File 'lib/kettle/jem.rb', line 3139
    +      
    +        
  • + + + .ruby_first_string_argument(owner) ⇒ Object + -def actual_changed_files_after_apply(project_root, changed_files, before_apply_files) - changed_files.filter_map do |relative_path| - path = File.join(project_root, relative_path) - original = before_apply_files.fetch(relative_path, nil) - if File.exist?(path) - (File.read(path) == original) ? nil : relative_path - else - original.nil? ? nil : relative_path - end - end.uniq.sort -end
  • -
    -
    -
    -

    + + + + - .add_framework_matrix_job_env(content, keys) ⇒ Object - - -

    - - - - -
    -
    -
    -
    -4991
    -4992
    -4993
    -4994
    -4995
    -4996
    -4997
    -4998
    -4999
    -5000
    -5001
    -5002
    -5003
    -5004
    -5005
    -5006
    -
    -
    # File 'lib/kettle/jem.rb', line 4991
     
    -def add_framework_matrix_job_env(content, keys)
    -  lines = content.lines
    -  bundle_index = lines.index { |line| line.match?(/\A\s+BUNDLE_GEMFILE:/) }
    -  return content unless bundle_index
    +  
    +    
    +
    + + - indent = lines.fetch(bundle_index).match(/\A(\s*)/)[1] - existing = workflow_job_env_existing_keys(lines, bundle_index, indent.length) - additions = keys.map(&:to_s).sort.reject { |key| existing.include?(key) } - return content if additions.empty? + +
  • + + + .ruby_keyword_argument_node(call, key) ⇒ Object + - lines.insert( - bundle_index + 1, - *additions.map { |key| %(#{indent}#{key}: ${{ matrix.#{key} || '' }}\n) } - ) - lines.join -end
  • -
    -
    -
    -

    + + + + - .add_monorepo_root_file_overrides(content) ⇒ Object - - -

    - - - - -
    -
     
    +  
    +    
    +
    + + -6961 -6962 -6963 -6964 -6965 -6966 -6967 -6968 -6969 -6970 -6971
    -
    -
    # File 'lib/kettle/jem.rb', line 6961
    +      
    +        
  • + + + .ruby_keyword_string_argument(call, key) ⇒ Object + -def add_monorepo_root_file_overrides(content) - override_lines = MONOREPO_ROOT_TEMPLATE_ENTRIES.reject { |entry| entry.to_s.include?("/") }.flat_map do |entry| - kettle_config_file_override_lines(entry, monorepo_root_file_strategy(entry)) - end - insert_after_line_sequence( - content, - ["files:"], - override_lines.join("\n"), - "Could not apply monorepo-root file overrides to .kettle-jem.yml bootstrap template" - ) -end
  • -
    -
    -
    -

    + + + + - .add_monorepo_subgem_file_overrides(content, gemspec_path, profile = MONOREPO_SUBGEM_TEMPLATE_PROFILE) ⇒ Object - - -

    - - - - -
    -
     
    +  
    +    
    +
    + + -7049 -7050 -7051 -7052 -7053 -7054 -7055 -7056 -7057 -7058 -7059 -7060 -7061 -7062 -7063 -7064 -7065 -7066 -7067 -7068
    -
    -
    # File 'lib/kettle/jem.rb', line 7049
    +      
    +        
  • + + + .ruby_local_word_array_assignments(root) ⇒ Object + -def add_monorepo_subgem_file_overrides(content, gemspec_path, profile = MONOREPO_SUBGEM_TEMPLATE_PROFILE) - override_lines = [ - " README.md:", - " strategy: merge" - ] - gemspec = gemspec_path.to_s.strip - unless gemspec.empty? - gemspec_strategy = (normalize_template_profile(profile) == MONOREPO_SUBGEM_RELEASE_TEMPLATE_PROFILE) ? "merge" : "keep_destination" - override_lines.concat([ - " #{gemspec}:", - " strategy: #{gemspec_strategy}" - ]) - end - insert_after_line_sequence( - content, - ["files:"], - override_lines.join("\n"), - "Could not apply monorepo-subgem file overrides to .kettle-jem.yml bootstrap template" - ) -end
  • -
    -
    -
    -

    + + + + - .aliased_readme_destination_section(template_base, destination_lookup, preserve_config) ⇒ Object - - -

    - - - - -
    -
     
    +  
    +    
    +
    + + -10148 -10149 -10150 -10151 -10152 -10153 -10154
    -
    -
    # File 'lib/kettle/jem.rb', line 10148
    +      
    +        
  • + + + .ruby_merge_options(recipe, merge_template_requires:) ⇒ Object + -def aliased_readme_destination_section(template_base, destination_lookup, preserve_config) - aliases = preserve_config[:aliases] || README_SECTION_ALIASES - aliases.each do |from, to| - return destination_lookup[from] if to == template_base && destination_lookup.key?(from) - end - nil -end
  • -
    -
    -
    -

    + + + + - .append_gemfile_comment_block(lines, block) ⇒ Object - - -

    - - - - -
    -
     
    +  
    +    
    +
    + + -5266 -5267 -5268 -5269 -5270
    -
    -
    # File 'lib/kettle/jem.rb', line 5266
    +      
    +        
  • + + + .ruby_method_move_policy(recipe) ⇒ Object + -def append_gemfile_comment_block(lines, block) - first_line = block.first - lines.pop while first_line && lines.last == first_line - lines.concat(block) -end
  • -
    -
    -
    -

    + + + + - .append_github_actions_coverage_steps(content) ⇒ Object - - -

    - - - - -
    -
    -
    -
    -11396
    -11397
    -11398
    -11399
    -11400
    -11401
    -11402
    -11403
    -11404
    -11405
    -11406
    -
    -
    # File 'lib/kettle/jem.rb', line 11396
     
    -def append_github_actions_coverage_steps(content)
    -  return content if content.include?("Upload coverage to Coveralls") || content.include?("Upload coverage to CodeCov")
    +  
    +    
    +
    + + - lines = content.lines - steps_sequence = yaml_mapping_value_node(content, "steps", Psych::Nodes::Sequence) - return content unless steps_sequence + +
  • + + + .ruby_multiline_word_array_source(names, indent:) ⇒ Object + - insert_index = steps_sequence.end_line - lines.insert(insert_index, "#{github_actions_coverage_steps}\n") - lines.join -end
  • -
    -
    -
    -

    + + + + + - .append_missing_gemspec_dependency_lines(content, destination_dependencies, receiver:) ⇒ Object - -

    - - - - -
    -
    +    
    +
    + + + +
  • + + + .ruby_node_source_end_line(node) ⇒ Object + -6388 -6389 -6390 -6391 -6392 -6393 -6394 -6395 -6396 -6397 -6398 -6399 -6400 -6401
  • -
    -
    # File 'lib/kettle/jem.rb', line 6388
    +    
    +  
    +  
    +  
    +  
    +  
    +  
    +  
    +  
     
    -def append_missing_gemspec_dependency_lines(content, destination_dependencies, receiver:)
    -  existing_keys = gemspec_dependency_line_index(content, receiver: receiver).keys
    -  missing_lines = destination_dependencies.except(*existing_keys).values
    -  return content if missing_lines.empty?
    +  
    +    
    +
    + + - runtime_lines, development_lines = missing_lines.partition do |line| - key = gemspec_dependency_line_key(line, receiver: receiver) - key && key.first != "add_development_dependency" - end + +
  • + + + .ruby_project_version_constant_path?(node, namespace:) ⇒ Boolean + - merged = content.to_s - merged = insert_missing_runtime_gemspec_dependency_lines(merged, runtime_lines, receiver: receiver) - insert_missing_development_gemspec_dependency_lines(merged, development_lines) -end
  • -
    -
    -
    - - - @@ -22567,62 +37191,29 @@

    -

    - - .changelog_version_heading_line?(line, version) ⇒ Boolean +

    - + .gemspec_modern_version_loader_expression(entrypoint_require:, namespace:) ⇒ Object -

    -
    - - -
    -
    -
    - -

    Returns:

    -
      - -
    • - - - (Boolean) - - - -
    • -
    - -

    -
    +    
    +
    + + + +
  • + + + .ruby_project_version_embedded_statements?(node, namespace:) ⇒ Boolean + -4588 -4589 -4590 -4591 -4592 -4593 -4594 -4595 -4596 -4597 -4598 -4599
  • + + + + + + + + + + + +
    +
    + + + + +
  • + + + .ruby_project_version_interpolated_string_source(node, receiver:, namespace:) ⇒ Object + + + + + + + + + + + + + +
    +
    + +
  • + + +
  • + + + .ruby_require_aliases(recipe, facts = nil) ⇒ Object + + + + + + + + + + + + + +
    +
    + +
  • + + +
  • + + + .ruby_require_call?(owner, method_name, argument) ⇒ Boolean + + + + + + + + + + + + + +
    +
    + +
  • + + +
  • + + + .ruby_simple_quoted_string_node?(node) ⇒ Boolean + + + + + + + + + + + + + +
    +
    + +
  • + + +
  • + + + .ruby_static_interpolated_string_value(node) ⇒ Object + + + + + + + + + + + + + +
    +
    + +
  • + + +
  • + + + .ruby_static_string_array_value(node, local_word_arrays = {}) ⇒ Object + + + + + + + + + + + + + +
    +
    + +
  • + + +
  • + + + .ruby_static_string_call_value(node) ⇒ Object + + + + + + + + + + + + + +
    +
    + +
  • + + +
  • + + + .ruby_static_string_value(node) ⇒ Object + + + + + + + + + + + + + +
    +
    + +
  • + + +
  • + + + .ruby_string_argument(call) ⇒ Object + + + + + + + + + + + + + +
    +
    + +
  • + + +
  • + + + .ruby_string_argument_at(call, index) ⇒ Object + + + + + + + + + + + + + +
    +
    + +
  • + + +
  • + + + .ruby_string_arguments(call) ⇒ Object + + + + + + + + + + + + + +
    +
    + +
  • + + +
  • + + + .ruby_style_facts(project_root) ⇒ Object + + + + + + + + + + + + + +
    +
    + +
  • + + +
  • + + + .ruby_style_template_tokens(ruby_style) ⇒ Object + + + + + + + + + + + + + +
    +
    + +
  • + + +
  • + + + .ruby_template_policy_report(recipe:, request:, original:, final:) ⇒ Object + + + + + + + + + + + + + +
    +
    + +
  • + + +
  • + + + .ruby_top_level_require?(content, method_name, argument) ⇒ Boolean + + + + + + + + + + + + + +
    +
    + +
  • + + +
  • + + + .ruby_top_level_require_records(content) ⇒ Object + + + + + + + + + + + + + +
    +
    + +
  • + + +
  • + + + .ruby_version_class_eval_namespaces(content) ⇒ Object + + + + + + + + + + + + + +
    +
    + +
  • + + +
  • + + + .ruby_version_constant_value(content) ⇒ Object + + + + + + + + + + + + + +
    +
    + +
  • + + +
  • + + + .ruby_version_module_namespace(content) ⇒ Object + + + + + + + + + + + + + +
    +
    + +
  • + + +
  • + + + .ruby_version_module_namespace_for(node, namespace) ⇒ Object + + + + + + + + + + + + + +
    +
    + +
  • + + +
  • + + + .ruby_word_array_names(node) ⇒ Object + + + + + + + + + + + + + +
    +
    + +
  • + + +
  • + + + .ruby_word_array_node?(node) ⇒ Boolean + + + + + + + + + + + + + +
    +
    + +
  • + + +
  • + + + .ruby_word_array_nodes(content) ⇒ Object + + + + + + + + + + + + + +
    +
    + +
  • + + +
  • + + + .ruby_word_array_records(content) ⇒ Object + + + + + + + + + + + + + +
    +
    + +
  • + + +
  • + + + .run_apply_phases(project_root, report) ⇒ Object + + + + + + + + + + + + + +
    +
    + +
  • + + +
  • + + + .runtime_context_value(request, *path) ⇒ Object + + + + + + + + + + + + + +
    +
    + +
  • + + +
  • + + + .runtime_gemspec_dependency_insertion_index(lines, receiver:) ⇒ Object + + + + + + + + + + + + + +
    +
    + +
  • + + +
  • + + + .runtime_workspace_override_records(content) ⇒ Object + + + + + + + + + + + + + +
    +
    + +
  • + + +
  • + + + .security_supported_version_token(version) ⇒ Object + + + + + + + + + + + + + +
    +
    + +
  • + + +
  • + + + .selected_template_path?(relative_path, patterns) ⇒ Boolean + + + + + + + + + + + + + +
    +
    + +
  • + + +
  • + + + .semantic_readme_heading(text) ⇒ Object + + + + + + + + + + + + + +
    +
    + +
  • + + +
  • + + + .set_template_file_strategy!(config, target_path, strategy) ⇒ Object + + + + + + + + + + + + + +
    +
    + +
  • + + +
  • + + + .setup_execution_context(env, run_options) ⇒ Object + + + + + + + + + + + + + +
    +
    + +
  • + + +
  • + + + .setup_guidance_diagnostic(config_existed:) ⇒ Object + + + + + + + + + + + + + +
    +
    + +
  • + + +
  • + + + .setup_project(project_root, env: ENV, run_options: {}, command_runner: nil) ⇒ Object + + + + + + + + + + + + + +
    +
    + +
  • + + +
  • + + + .shield_token(value) ⇒ Object + + + + + + + + + + + + + +
    +
    + +
  • + + +
  • + + + .shim_facts(config, env, run_options, package_name:, entrypoint_require:, template_profile:) ⇒ Object + + + + + + + + + + + + + +
    +
    + +
  • + + +
  • + + + .shim_profile_cleanups(project_root, facts, preferences, template_selection: {}) ⇒ Object + + + + + + + + + + + + + +
    +
    + +
  • + + +
  • + + + .shim_replacement_namespace(replacement_require) ⇒ Object + + + + + + + + + + + + + +
    +
    + +
  • + + +
  • + + + .shim_template_entries(facts, config) ⇒ Object + + + + + + + + + + + + + +
    +
    + +
  • + + +
  • + + + .shim_template_entries_for_config(gemspec_path, config) ⇒ Object + + + + + + + + + + + + + +
    +
    + +
  • + + +
  • + + + .shim_template_profile?(facts) ⇒ Boolean + + + + + + + + + + + + + +
    +
    + +
  • + + +
  • + + + .shim_template_tokens(shim) ⇒ Object + + + + + + + + + + + + + +
    +
    + +
  • + + +
  • + + + .shim_version_file_content(namespace:, replacement_namespace:, replacement_require:) ⇒ Object + + + + + + + + + + + + + +
    +
    + +
  • + + +
  • + + + .shunted_dependency_has_floor_compatible_version?(resolver, dependency, versions, floor) ⇒ Boolean + + + + + + + + + + + + + +
    +
    + +
  • + + +
  • + + + .shunted_dependency_has_modular_override?(project_root, dependency) ⇒ Boolean + + + + + + + + + + + + + +
    +
    + +
  • + + +
  • + + + .shunted_effective_floor(min_ruby) ⇒ Object + + + + + + + + + + + + + +
    +
    + +
  • + + +
  • + + + .shunted_gemfile_block(gemspec, facts, run_options) ⇒ Object + + + + + + + + + + + + + +
    +
    + +
  • + + +
  • + + + .shunted_gemfile_managed_block(dependencies) ⇒ Object + + + + + + + + + + + + + +
    +
    + +
  • + + +
  • + + + .simplecov_config_require_call_node?(node) ⇒ Boolean + + + + + + + + + + + + + +
    +
    + +
  • + + +
  • + + + .simplecov_config_require_call_nodes(content) ⇒ Object + + + + + + + + + + + + + +
    +
    + +
  • + + +
  • + + + .simplecov_config_require_call_records(content) ⇒ Object + + + + + + + + + + + + + +
    +
    + +
  • + + +
  • + + + .simplecov_do_cov_bootstrap_complete_node?(node) ⇒ Boolean + + + + + + + + + + + + + +
    +
    + +
  • + + +
  • + + + .simplecov_do_cov_bootstrap_only_node?(node) ⇒ Boolean + + + + + + + + + + + + + +
    +
    + +
  • + + +
  • + + + .simplecov_do_cov_bootstrap_records(content) ⇒ Object + + + + + + + + + + + + + +
    +
    + +
  • + + +
  • + + + .simplecov_do_cov_predicate_node?(node) ⇒ Boolean + + + + + + + + + + + + + +
    +
    + +
  • + + +
  • + + + .simplecov_kettle_soup_cover_require_call_node?(node) ⇒ Boolean + + + + + + + + + + + + + +
    +
    + +
  • + + +
  • + + + .simplecov_obsolete_call_nodes(content) ⇒ Object + + + + + + + + + + + + + +
    +
    + +
  • + + +
  • + + + .simplecov_require_call_node?(node) ⇒ Boolean + + + + + + + + + + + + + +
    +
    + +
  • + + +
  • + + + .simplecov_require_call_records(content) ⇒ Object + + + + + + + + + + + + + +
    +
    + +
  • + + +
  • + + + .simplecov_start_call_node?(node) ⇒ Boolean + + + + + + + + + + + + + +
    +
    + +
  • + + +
  • + + + .simplecov_start_call_nodes(content) ⇒ Object + + + + + + + + + + + + + +
    +
    + +
  • + + +
  • + + + .simplecov_track_files_call_records(content) ⇒ Object + + + + + + + + + + + + + +
    +
    + +
  • + + +
  • + + + .skip_disabled_integration_template?(target_path, config) ⇒ Boolean + + + + + + + + + + + + + +
    +
    + +
  • + + +
  • + + + .skip_packaged_gemfile_template?(target_path, config) ⇒ Boolean + + + + + + + + + + + + + +
    +
    + +
  • + + +
  • + + + .skip_packaged_license_template?(target_path, config) ⇒ Boolean + + + + + + + + + + + + + +
    +
    + +
  • + + +
  • + + + .skip_packaged_workflow_template?(target_path, config, include_patterns: nil) ⇒ Boolean + + + + + + + + + + + + + +
    +
    + +
  • + + +
  • + + + .skywalking_eyes_disabled_by_default?(config, license, disabled) ⇒ Boolean + + + + + + + + + + + + + +
    +
    + +
  • + + +
  • + + + .snapshot_changed_files(project_root, changed_files) ⇒ Object + + + + + + + + + + + + + +
    +
    + +
  • + + +
  • + + + .social_facts(config, env) ⇒ Object + + + + + + + + + + + + + +
    +
    + +
  • + + +
  • + + + .social_template_tokens(social) ⇒ Object + + + + + + + + + + + + + +
    +
    + +
  • + + +
  • + + + .social_token_value(social_config, env, key) ⇒ Object + + + + + + + + + + + + + +
    +
    + +
  • + + +
  • + + + .sort_runtime_gemspec_dependency_lines(content, receiver:) ⇒ Object + + + + + + + + + + + + + +
    +
    + +
  • + + +
  • + + + .source_blob_url(source_url, path) ⇒ Object + + + + + + + + + + + + + +
    +
    + +
  • + + +
  • + + + .source_tree_url(source_url, path) ⇒ Object + + + + + + + + + + + + + +
    +
    + +
  • + + +
  • + + + .spdx_basename(spdx_id) ⇒ Object + + + + + + + + + + + + + +
    +
    + +
  • + + +
  • + + + .spdx_from_basename(basename) ⇒ Object + + + + + + + + + + + + + +
    +
    + +
  • + + +
  • + + + .spec_helper_simplecov_do_cov_bootstrap_source(indent) ⇒ Object + + + + + + + + + + + + + +
    +
    + +
  • + + +
  • + + + .stale_generated_gemspec_files_group?(group) ⇒ Boolean + + + + + + + + + + + + + +
    +
    + +
  • + + +
  • + + + .stale_generated_gemspec_splat_key?(key) ⇒ Boolean + + + + + + + + + + + + + +
    +
    + +
  • + + +
  • + + + .stale_github_workflow_template_pin_records(relative_path, final_content, destination_content) ⇒ Object + + + + + + + + + + + + + +
    +
    + +
  • + + +
  • + + + .stale_versioned_engine_workflow?(relative_path) ⇒ Boolean + + + + + + + + + + + + + +
    +
    + +
  • + + +
  • + + + .standard_test_appraisal_names(content) ⇒ Object + + + + + + + + + + + + + +
    +
    + +
  • + + +
  • + + + .static_gemspec_metadata_assignment(content, key) ⇒ Object + + + + + + + + + + + + + +
    +
    + +
  • + + +
  • + + + .static_gemspec_metadata_key_assigned?(content, key) ⇒ Boolean + + + + + + + + + + + + + +
    +
    + +
  • + + +
  • + + + .static_project_gemspec_metadata(gemspec_path) ⇒ Object + + + + + + + + + + + + + +
    +
    + +
  • + + +
  • + + + .step_report_metadata(recipe, deletion) ⇒ Object + + + + + + + + + + + + + +
    +
    + +
  • + + +
  • + + + .stringify_template_tokens(tokens) ⇒ Object + + + + + + + + + + + + + +
    +
    + +
  • + + +
  • + + + .strip_leading_decorative_graphemes(text) ⇒ Object + + + + + + + + + + + + + +
    +
    + +
  • + + +
  • + + + .strip_orphaned_rake_task_requires(content) ⇒ Object + + + + + + + + + + + + + +
    +
    + +
  • + + +
  • + + + .strip_readme_heading_adornment(text) ⇒ Object + + + + + + + + + + + + + +
    +
    + +
  • + + +
  • + + + .sync_kettle_config_documentation_comments(content) ⇒ Object + + + + + + + + + + + + + +
    +
    + +
  • + + +
  • + + + .sync_kettle_config_env_overrides(content, env) ⇒ Object + + + + + + + + + + + + + +
    +
    + +
  • + + +
  • + + + .sync_kettle_config_gemspec_strategy_lines!(lines, gemspec_path, profile) ⇒ Object + + + + + + + + + + + + + +
    +
    + +
  • + + +
  • + + + .sync_kettle_config_internal_values(content) ⇒ Object + + + + + + + + + + + + + +
    +
    + +
  • + + +
  • + + + .sync_kettle_config_monorepo_subgem_profile(content, gemspec_path, profile) ⇒ Object + + + + + + + + + + + + + +
    +
    + +
  • + + +
  • + + + .sync_readme_top_logos_documentation_comment(content) ⇒ Object + + + + + + + + + + + + + +
    +
    + +
  • + + +
  • + + + .synchronize_github_actions_ci(content, facts) ⇒ Object + + + + + + + + + + + + + +
    +
    + +
  • + + +
  • + + + .synchronize_github_actions_coverage_ci(content, facts) ⇒ Object + + + + + + + + + + + + + +
    +
    + +
  • + + +
  • + + + .synchronize_github_actions_framework_ci(content, facts) ⇒ Object + + + + + + + + + + + + + +
    +
    + +
  • + + +
  • + + + .synchronize_github_actions_framework_gemfile(target_path, facts) ⇒ Object + + + + + + + + + + + + + +
    +
    + +
  • + + +
  • + + + .synchronize_github_actions_workflow_snippets(content, facts: {}) ⇒ Object + + + + + + + + + + + + + +
    +
    + +
  • + + +
  • + + + .synchronize_github_funding_yml(content, facts) ⇒ Object + + + + + + + + + + + + + +
    +
    + +
  • + + +
  • + + + .synchronize_managed_block(content, facts) ⇒ Object + + + + + + + + + + + + + +
    +
    + +
  • + + +
  • + + + .synchronize_readme(content, facts, project_root: nil) ⇒ Object + + + + + + + + + + + + + +
    +
    + +
  • + + +
  • + + + .template_activation_config(config) ⇒ Object + + + + + + + + + + + + + +
    +
    + +
  • + + +
  • + + + .template_entries(project_root, root, templates) ⇒ Object + + + + + + + + + + + + + +
    +
    + +
  • + + +
  • + + + .template_entry_apply?(entry, apply_templates) ⇒ Boolean + + + + + + + + + + + + + +
    +
    + +
  • + + +
  • + + + .template_entry_paths(entry) ⇒ Object + + + + + + + + + + + + + +
    +
    + +
  • + + +
  • + + + .template_file_strategy_config(config, target_path) ⇒ Object + + + + + + + + + + + + + +
    +
    + +
  • + + +
  • + + + .template_file_type(recipe) ⇒ Object + + + + + + + + + + + + + +
    +
    + +
  • + + +
  • + + + .template_inventory_entries(project_root, template_root_path, templates: {}) ⇒ Object + + + + + + + + + + + + + +
    +
    + +
  • + + +
  • + + + .template_inventory_target_path(project_root, logical_path) ⇒ Object + + + + + + + + + + + + + +
    +
    + +
  • + + +
  • + + + .template_keep_destination_path?(config, target_path) ⇒ Boolean + + + + + + + + + + + + + +
    +
    + +
  • + + +
  • + + + .template_legacy_destination_cleanups(project_root, preferences) ⇒ Object + + + + + + + + + + + + + +
    +
    + +
  • + + +
  • + + + .template_manifest(project_root: Dir.pwd, template_root: nil, config: nil) ⇒ Object + + + + + + + + + + + + + +
    +
    + +
  • + + +
  • + + + .template_obsolete_license_cleanups(project_root, config, preferences) ⇒ Object + + + + + + + + + + + + + +
    +
    + +
  • + + +
  • + + + .template_pattern_strategy_config(config, target_path) ⇒ Object + + + + + + + + + + + + + +
    +
    + +
  • + + +
  • + + + .template_root(project_root, templates) ⇒ Object + + + + + + + + + + + + + +
    +
    + +
  • + + +
  • + + + .template_root_path(project_root = Dir.pwd, config: nil) ⇒ Object + + + + + + + + + + + + + +
    +
    + +
  • + + +
  • + + + .template_runtime_config(config, facts, license: {}) ⇒ Object + + + + + + + + + + + + + +
    +
    + +
  • + + +
  • + + + .template_selection_for(env, run_options) ⇒ Object + + + + + + + + + + + + + +
    +
    + +
  • + + +
  • + + + .template_source_display_path(template_root, selected_source) ⇒ Object + + + + + + + + + + + + + +
    +
    + +
  • + + +
  • + + + .template_source_preference(project_root, template_root, entry, config, opencollective_disabled: false, include_patterns: nil, apply_templates: false) ⇒ Object + + + + + + + + + + + + + +
    +
    + +
  • + + +
  • + + + .template_source_preferences(project_root, config, opencollective_disabled: false, include_patterns: nil) ⇒ Object + + + + + + + + + + + + + +
    +
    + +
  • + + +
  • + + + .template_source_selection_reason(configured_source, selected_source) ⇒ Object + + + + + + + + + + + + + +
    +
    + +
  • + + +
  • + + + .template_strategy_config(config, target_path) ⇒ Object + + + + + + + + + + + + + +
    +
    + +
  • + + +
  • + + + .template_strategy_entry(config, path, entry) ⇒ Object + + + + + + + + + + + + + +
    +
    + +
  • + + +
  • + + + .template_tokens(facts, funding) ⇒ Object + + + + + + + + + + + + + +
    +
    + +
  • + + +
  • + + + .template_version_gem_bootstrap_step(project_root, report) ⇒ Object + + + + + + + + + + + + + +
    +
    + +
  • + + +
  • + + + .templating_guard_records(content) ⇒ Object + + + + + + + + + + + + + +
    +
    + +
  • + + +
  • + + + .token_config_values(config) ⇒ Object + + + + + + + + + + + + + +
    +
    + +
  • + + +
  • + + + .token_placeholder?(value) ⇒ Boolean + + + + + + + + + + + + + +
    +
    + +
  • + + +
  • + + + .toml_string_scalar_line_value(content, key) ⇒ Object + + + + + + + + + + + + + +
    +
    + +
  • + + +
  • + + + .top_level_ruby_call_records(content, call_name) ⇒ Object + + + + + + + + + + + + + +
    +
    + +
  • + + +
  • + + + .top_level_yaml_key_line?(line) ⇒ Boolean + + + + + + + + + + + + + +
    +
    + +
  • + + +
  • + + + .trim_trailing_blank_lines(content) ⇒ Object + + + + + + + + + + + + + +
    +
    + +
  • + + +
  • + + + .truthy_config?(value) ⇒ Boolean + + + + + + + + + + + + + +
    +
    + +
  • + + +
  • + + + .uncomment_ruby_comment_line(comment_source) ⇒ Object + + + + + + + + + + + + + +
    +
    + +
  • + + +
  • + + + .unresolved_template_scan?(recipe) ⇒ Boolean + + + + + + + + + + + + + +
    +
    + +
  • + + +
  • + + + .update_github_actions_pins(content) ⇒ Object + + + + + + + + + + + + + +
    +
    + +
  • + + +
  • + + + .valid_gem_version?(version) ⇒ Boolean + + + + + + + + + + + + + +
    +
    + +
  • + + +
  • + + + .validate_kettle_jem_config!(config) ⇒ Object + + + + + + + + + + + + + +
    +
    + +
  • + + +
  • + + + .version_gem_bootstrap_entrypoint_content(content, namespace:, entrypoint_require:) ⇒ Object + + + + + + + + + + + + + +
    +
    + +
  • + + +
  • + + + .version_gem_bootstrap_step(project_root, facts) ⇒ Object + + + + + + + + + + + + + +
    +
    + +
  • + + +
  • + + + .version_gem_bootstrap_step_for_paths(project_root, facts, manage_version_file: true, manage_signature_file: true) ⇒ Object + + + + + + + + + + + + + +
    +
    + +
  • + + +
  • + + + .version_gem_class_eval_block(namespace) ⇒ Object + + + + + + + + + + + + + +
    +
    + +
  • + + +
  • + + + .version_gem_class_eval_call?(call) ⇒ Boolean + + + + + + + + + + + + + +
    +
    + +
  • + + +
  • + + + .version_gem_cleanup_step(project_root, facts) ⇒ Object + + + + + + + + + + + + + +
    +
    + +
  • + + +
  • + + + .version_gem_entrypoint_file_content(namespace:, entrypoint_require:) ⇒ Object + + + + + + + + + + + + + +
    +
    + +
  • + + +
  • + + + .version_gem_facts_for_project(project_root, entrypoint_require) ⇒ Object + + + + + + + + + + + + + +
    +
    + +
  • + + +
  • + + + .version_gem_free_entrypoint_content(content, entrypoint_require:) ⇒ Object + + + + + + + + + + + + + +
    +
    + +
  • + + +
  • + + + .version_gem_require_insertion_index(content, after_version_gem: false) ⇒ Object + + + + + + + + + + + + + +
    +
    + +
  • + + +
  • + + + .version_gem_runtime_compatible?(facts) ⇒ Boolean + + + + + + + + + + + + + +
    +
    + +
  • + + +
  • + + + .version_gem_signature_file_content(namespace:) ⇒ Object + + + + + + + + + + + + + +
    +
    + +
  • + + +
  • + + + .version_gem_template_entries(gemspec_path) ⇒ Object + + + + + + + + + + + + + +
    +
    + +
  • + + +
  • + + + .version_gem_template_target_path(gemspec_path, source) ⇒ Object + + + + + + + + + + + + + +
    +
    + +
  • + + +
  • + + + .version_gem_template_target_path?(target_path) ⇒ Boolean + + + + + + + + + + + + + +
    +
    + +
  • + + +
  • + + + .version_gem_template_target_path_for_project(project_root, gemspec_path, source) ⇒ Object + + + + + + + + + + + + + +
    +
    + +
  • + + +
  • + + + .version_gem_template_tokens(facts) ⇒ Object + + + + + + + + + + + + + +
    +
    + +
  • + + +
  • + + + .version_gem_version_file_content(existing_version:, namespace:, version:) ⇒ Object + + + + + + + + + + + + + +
    +
    + +
  • + + +
  • + + + .version_spec_require_insertion_index(content) ⇒ Object + + + + + + + + + + + + + +
    +
    + +
  • + + +
  • + + + .versioned_gem_name_parts(name) ⇒ Object + + + + + + + + + + + + + +
    +
    + +
  • + + +
  • + + + .versioned_gem_name_update_candidate?(destination_name, template_name) ⇒ Boolean + + + + + + + + + + + + + +
    +
    + +
  • + + +
  • + + + .workflow_job_env_existing_keys(lines, bundle_index, indent_length) ⇒ Object + + + + + + + + + + + + + +
    +
    + +
  • + + +
  • + + + .workflow_matrix_env_indent(lines, mapping) ⇒ Object + + + + + + + + + + + + + +
    +
    + +
  • + + +
  • + + + .workflow_matrix_env_insert_index(lines, mapping) ⇒ Object + + + + + + + + + + + + + +
    +
    + +
  • + + +
  • + + + .workflow_recipe_slug(workflow_path) ⇒ Object + + + + + + + + + + + + + +
    +
    + +
  • + + +
  • + + + .wrap_ruby_namespace(namespace, body_lines) ⇒ Object + + + + + + + + + + + + + +
    +
    + +
  • + + +
  • + + + .write_consolidated_version_signature(project_root, signature_path, legacy_signature_paths, namespace:) ⇒ Object + + + + + + + + + + + + + +
    +
    + +
  • + + +
  • + + + .write_if_changed(project_root, relative_path, content) ⇒ Object + + + + + + + + + + + + + +
    +
    + +
  • + + +
  • + + + .yaml_config_scalar_literal(value, path:) ⇒ Object + + + + + + + + + + + + + +
    +
    + +
  • + + +
  • + + + .yaml_contains_key_value?(node, key, value) ⇒ Boolean + + + + + + + + + + + + + +
    +
    + +
  • + + +
  • + + + .yaml_double_quoted_scalar(value) ⇒ Object + + + + + + + + + + + + + +
    +
    + +
  • + + +
  • + + + .yaml_line_comment_suffix(line, key_index) ⇒ Object + + + + + + + + + + + + + +
    +
    + +
  • + + +
  • + + + .yaml_mapping_nodes(content) ⇒ Object + + + + + + + + + + + + + +
    +
    + +
  • + + +
  • + + + .yaml_mapping_path_entries(content) ⇒ Object + + + + + + + + + + + + + +
    +
    + +
  • + + +
  • + + + .yaml_mapping_scalar_value(mapping, key) ⇒ Object + + + + + + + + + + + + + +
    +
    + +
  • + + +
  • + + + .yaml_mapping_value_node(content, key, node_class) ⇒ Object + + + + + + + + + + + + + +
    +
    + +
  • + + +
  • + + + .yaml_merge_options(recipe) ⇒ Object + + + + + + + + + + + + + +
    +
    + +
  • + + +
  • + + + .yaml_process_result_adapter_failure?(merge_result) ⇒ Boolean + + + + + + + + + + + + + +
    +
    + +
  • + + +
  • + + + .yaml_scalar_line_value(content, key) ⇒ Object + + + + + + + + + + + + + +
    +
    + +
  • + + +
  • + + + .yaml_scalar_pairs(content) ⇒ Object + + + + + + + + + + + + + +
    +
    + +
  • + + +
  • + + + .yaml_scalar_path_entries(content) ⇒ Object + + + + + + + + + + + + + +
    +
    + +
  • + + +
  • + + + .yaml_scalar_sequence_at_path(content, path) ⇒ Object + + + + + + + + + + + + + +
    +
    + +
  • + + +
  • + + + .yaml_top_level_key_lines(content) ⇒ Object + + + + + + + + + + + + + +
    +
    + +
  • + + + + + + + + +
    +

    Class Method Details

    + + +
    +

    + + .active_license_basenames(config) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +13323
    +13324
    +13325
    +13326
    +13327
    +13328
    +
    +
    # File 'lib/kettle/jem.rb', line 13323
    +
    +def active_license_basenames(config)
    +  Array(config["resolved_licenses"])
    +    .map { |license| spdx_basename(license) }
    +    .reject(&:empty?)
    +    .to_set
    +end
    +
    +
    + +
    +

    + + .actual_changed_files_after_apply(project_root, changed_files, before_apply_files) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +3460
    +3461
    +3462
    +3463
    +3464
    +3465
    +3466
    +3467
    +3468
    +3469
    +3470
    +
    +
    # File 'lib/kettle/jem.rb', line 3460
    +
    +def actual_changed_files_after_apply(project_root, changed_files, before_apply_files)
    +  changed_files.filter_map do |relative_path|
    +    path = File.join(project_root, relative_path)
    +    original = before_apply_files.fetch(relative_path, nil)
    +    if File.exist?(path)
    +      (File.read(path) == original) ? nil : relative_path
    +    else
    +      original.nil? ? nil : relative_path
    +    end
    +  end.uniq.sort
    +end
    +
    +
    + +
    +

    + + .adapter_failure_template_source_error(file_type, recipe) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +6197
    +6198
    +6199
    +
    +
    # File 'lib/kettle/jem.rb', line 6197
    +
    +def adapter_failure_template_source_error(file_type, recipe)
    +  ArgumentError.new("failed to merge #{file_type} template #{recipe.fetch(:target_path)}: provider adapter failure")
    +end
    +
    +
    + +
    +

    + + .add_framework_matrix_job_env(content, keys) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +6100
    +6101
    +6102
    +6103
    +6104
    +6105
    +6106
    +6107
    +6108
    +6109
    +6110
    +6111
    +6112
    +6113
    +6114
    +6115
    +
    +
    # File 'lib/kettle/jem.rb', line 6100
    +
    +def add_framework_matrix_job_env(content, keys)
    +  lines = content.lines
    +  bundle_index = lines.index { |line| line.match?(/\A\s+BUNDLE_GEMFILE:/) }
    +  return content unless bundle_index
    +
    +  indent = lines.fetch(bundle_index).match(/\A(\s*)/)[1]
    +  existing = workflow_job_env_existing_keys(lines, bundle_index, indent.length)
    +  additions = keys.map(&:to_s).sort.reject { |key| existing.include?(key) }
    +  return content if additions.empty?
    +
    +  lines.insert(
    +    bundle_index + 1,
    +    *additions.map { |key| %(#{indent}#{key}: ${{ matrix.#{key} || '' }}\n) }
    +  )
    +  lines.join
    +end
    +
    +
    + +
    +

    + + .add_monorepo_root_file_overrides(content) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +9018
    +9019
    +9020
    +9021
    +9022
    +9023
    +9024
    +9025
    +9026
    +9027
    +9028
    +
    +
    # File 'lib/kettle/jem.rb', line 9018
    +
    +def add_monorepo_root_file_overrides(content)
    +  override_lines = MONOREPO_ROOT_TEMPLATE_ENTRIES.reject { |entry| entry.to_s.include?("/") }.flat_map do |entry|
    +    kettle_config_file_override_lines(entry, monorepo_root_file_strategy(entry))
    +  end
    +  insert_after_line_sequence(
    +    content,
    +    ["files:"],
    +    override_lines.join("\n"),
    +    "Could not apply monorepo-root file overrides to .kettle-jem.yml bootstrap template"
    +  )
    +end
    +
    +
    + +
    +

    + + .add_monorepo_subgem_file_overrides(content, gemspec_path, profile = MONOREPO_SUBGEM_TEMPLATE_PROFILE) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +9106
    +9107
    +9108
    +9109
    +9110
    +9111
    +9112
    +9113
    +9114
    +9115
    +9116
    +9117
    +9118
    +9119
    +9120
    +9121
    +9122
    +9123
    +9124
    +9125
    +
    +
    # File 'lib/kettle/jem.rb', line 9106
    +
    +def add_monorepo_subgem_file_overrides(content, gemspec_path, profile = MONOREPO_SUBGEM_TEMPLATE_PROFILE)
    +  override_lines = [
    +    "  README.md:",
    +    "    strategy: merge"
    +  ]
    +  gemspec = gemspec_path.to_s.strip
    +  unless gemspec.empty?
    +    gemspec_strategy = (normalize_template_profile(profile) == MONOREPO_SUBGEM_RELEASE_TEMPLATE_PROFILE) ? "merge" : "keep_destination"
    +    override_lines.concat([
    +      "  #{gemspec}:",
    +      "    strategy: #{gemspec_strategy}"
    +    ])
    +  end
    +  insert_after_line_sequence(
    +    content,
    +    ["files:"],
    +    override_lines.join("\n"),
    +    "Could not apply monorepo-subgem file overrides to .kettle-jem.yml bootstrap template"
    +  )
    +end
    +
    +
    + +
    +

    + + .add_shim_bootstrap_config(content, shim) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +8933
    +8934
    +8935
    +8936
    +8937
    +8938
    +8939
    +8940
    +8941
    +8942
    +8943
    +8944
    +8945
    +8946
    +8947
    +8948
    +8949
    +8950
    +8951
    +8952
    +8953
    +8954
    +
    +
    # File 'lib/kettle/jem.rb', line 8933
    +
    +def add_shim_bootstrap_config(content, shim)
    +  replacement_gem = shim[:replacement_gem].to_s
    +  replacement_require = shim[:replacement_require].to_s
    +  legacy_requires = Array(shim[:legacy_requires]).map(&:to_s).reject(&:empty?)
    +  block = [
    +    "shim:",
    +    "  replacement_gem: #{replacement_gem}",
    +    "  replacement_require: #{replacement_require}"
    +  ]
    +  unless legacy_requires.empty?
    +    block << "  legacy_requires:"
    +    block.concat(legacy_requires.map { |path| "    - #{path}" })
    +  end
    +  block << "  version:"
    +  block << "    strategy: shim"
    +  insert_after_line_sequence(
    +    content,
    +    ["homepage_uri: \"{KJ|HOMEPAGE_URI}\""],
    +    ["", *block].join("\n"),
    +    "Could not add shim config to .kettle-jem.yml bootstrap template"
    +  )
    +end
    +
    +
    + +
    +

    + + .add_shim_file_overrides(content, gemspec_path) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +9145
    +9146
    +9147
    +9148
    +9149
    +9150
    +9151
    +9152
    +9153
    +9154
    +9155
    +9156
    +9157
    +9158
    +
    +
    # File 'lib/kettle/jem.rb', line 9145
    +
    +def add_shim_file_overrides(content, gemspec_path)
    +  override_lines = shim_template_entries_for_config(gemspec_path, {}).flat_map do |entry|
    +    target = entry.fetch("target")
    +    next [] if target == KETTLE_CONFIG_PATH
    +
    +    kettle_config_file_override_lines(target, "accept_template")
    +  end
    +  insert_after_line_sequence(
    +    content,
    +    ["files:"],
    +    override_lines.join("\n"),
    +    "Could not apply shim file overrides to .kettle-jem.yml bootstrap template"
    +  )
    +end
    +
    +
    + +
    +

    + + .aliased_readme_destination_section(template_base, destination_lookup, preserve_config) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +12859
    +12860
    +12861
    +12862
    +12863
    +12864
    +12865
    +
    +
    # File 'lib/kettle/jem.rb', line 12859
    +
    +def aliased_readme_destination_section(template_base, destination_lookup, preserve_config)
    +  aliases = preserve_config[:aliases] || README_SECTION_ALIASES
    +  aliases.each do |from, to|
    +    return destination_lookup[from] if to == template_base && destination_lookup.key?(from)
    +  end
    +  nil
    +end
    +
    +
    + +
    +

    + + .append_gemfile_comment_block(lines, block) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +6400
    +6401
    +6402
    +6403
    +6404
    +
    +
    # File 'lib/kettle/jem.rb', line 6400
    +
    +def append_gemfile_comment_block(lines, block)
    +  first_line = block.first
    +  lines.pop while first_line && lines.last == first_line
    +  lines.concat(block)
    +end
    +
    +
    + +
    +

    + + .append_github_actions_coverage_steps(content, disabled_integrations: []) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +14276
    +14277
    +14278
    +14279
    +14280
    +14281
    +14282
    +14283
    +14284
    +14285
    +14286
    +14287
    +14288
    +14289
    +
    +
    # File 'lib/kettle/jem.rb', line 14276
    +
    +def append_github_actions_coverage_steps(content, disabled_integrations: [])
    +  return content if content.include?("Upload coverage to Coveralls") ||
    +    content.include?("Upload coverage to QLTY") ||
    +    content.include?("Upload coverage to CodeCov") ||
    +    content.include?("Code Coverage Summary Report")
    +
    +  lines = content.lines
    +  steps_sequence = yaml_mapping_value_node(content, "steps", Psych::Nodes::Sequence)
    +  return content unless steps_sequence
    +
    +  insert_index = steps_sequence.end_line
    +  lines.insert(insert_index, "#{github_actions_coverage_steps(disabled_integrations: disabled_integrations)}\n")
    +  lines.join
    +end
    +
    +
    + +
    +

    + + .append_missing_gemspec_dependency_lines(content, destination_dependencies, receiver:) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +8283
    +8284
    +8285
    +8286
    +8287
    +8288
    +8289
    +8290
    +8291
    +8292
    +8293
    +8294
    +8295
    +8296
    +
    +
    # File 'lib/kettle/jem.rb', line 8283
    +
    +def append_missing_gemspec_dependency_lines(content, destination_dependencies, receiver:)
    +  existing_keys = gemspec_dependency_line_index(content, receiver: receiver).keys
    +  missing_lines = destination_dependencies.except(*existing_keys).values
    +  return content if missing_lines.empty?
    +
    +  runtime_lines, development_lines = missing_lines.partition do |line|
    +    key = gemspec_dependency_line_key(line, receiver: receiver)
    +    key && key.first != "add_development_dependency"
    +  end
    +
    +  merged = content.to_s
    +  merged = insert_missing_runtime_gemspec_dependency_lines(merged, runtime_lines, receiver: receiver)
    +  insert_missing_development_gemspec_dependency_lines(merged, development_lines)
    +end
    +
    +
    + +
    + + + + + +
    +
    +
    +
    +5111
    +5112
    +5113
    +5114
    +5115
    +5116
    +5117
    +5118
    +5119
    +5120
    +5121
    +5122
    +5123
    +
    +
    # File 'lib/kettle/jem.rb', line 5111
    +
    +def append_missing_markdown_link_definitions(content, definitions)
    +  ensure_runtime_dependencies!
    +  existing = Ast::Crispr::Markdown::Markly.document_context(
    +    content: content,
    +    source_label: "README.md"
    +  ).structural_owners(owner_scope: :link_definitions).map { |owner| owner.label.to_s }
    +  missing_sources = definitions.reject { |owner| existing.include?(owner.label.to_s) }.map do |owner|
    +    owner.source.to_s.end_with?("\n") ? owner.source.to_s : "#{owner.source}\n"
    +  end
    +  return content if missing_sources.empty?
    +
    +  [content.to_s.rstrip, "", missing_sources.join.rstrip, ""].join("\n")
    +end
    +
    +
    + +
    + + + + + +
    +
    +
    +
    +5125
    +5126
    +5127
    +5128
    +5129
    +5130
    +5131
    +5132
    +5133
    +5134
    +5135
    +5136
    +5137
    +
    +
    # File 'lib/kettle/jem.rb', line 5125
    +
    +def append_used_markdown_link_definitions(content, definition_source)
    +  existing = ReadmePostProcessor.markdown_link_definition_owners(content).map { |owner| owner.label.to_s }.to_set
    +  referenced = ReadmePostProcessor.markdown_inline_reference_owners(content).flat_map(&:labels).map(&:to_s).to_set
    +  available = ReadmePostProcessor.markdown_link_definition_owners(definition_source).to_h do |owner|
    +    [owner.label.to_s, owner]
    +  end
    +  missing = referenced.filter_map do |label|
    +    next if existing.include?(label)
    +
    +    available[label]
    +  end
    +  append_missing_markdown_link_definitions(content, missing)
    +end
    +
    +
    + +
    +

    + + .apply_changelog_transfer_entries(content, entries) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +4223
    +4224
    +4225
    +4226
    +4227
    +4228
    +4229
    +4230
    +4231
    +4232
    +4233
    +4234
    +4235
    +4236
    +4237
    +4238
    +4239
    +4240
    +4241
    +4242
    +4243
    +4244
    +4245
    +4246
    +4247
    +4248
    +4249
    +4250
    +4251
    +4252
    +
    +
    # File 'lib/kettle/jem.rb', line 4223
    +
    +def apply_changelog_transfer_entries(content, entries)
    +  transfer_entries = Array(entries).select do |entry|
    +    entry.is_a?(Hash) && entry[:key].to_s != "" && Array(entry[:lines]).any?
    +  end
    +  return ensure_trailing_newline(content) if transfer_entries.empty?
    +
    +  normalized = normalize_changelog(content, {})
    +  existing_keys = changelog_transfer_keys(normalized)
    +  missing = transfer_entries.reject { |entry| existing_keys.include?(entry.fetch(:key)) }
    +  return ensure_trailing_newline(normalized) if missing.empty?
    +
    +  lines = markdown_source_lines(normalized)
    +  unreleased = changelog_unreleased_line_index(lines)
    +  return ensure_trailing_newline(normalized) unless unreleased
    +
    +  destination_end = changelog_unreleased_end_index(lines, unreleased)
    +  destination_body = lines[(unreleased + 1)...destination_end] || []
    +  items = changelog_unreleased_items(destination_body)
    +  items["### Changed"] ||= []
    +  items["### Changed"].pop while items["### Changed"].any? && items["### Changed"].last.to_s.strip.empty?
    +  items["### Changed"] << "" if items["### Changed"].any?
    +  missing.each do |entry|
    +    items["### Changed"].concat(Array(entry.fetch(:lines)).map(&:rstrip))
    +  end
    +
    +  merged_lines = lines[0...unreleased] +
    +    build_changelog_unreleased_section(lines.fetch(unreleased), items) +
    +    lines[destination_end..].to_a
    +  ensure_trailing_newline(merged_lines.join("\n").gsub(/\n{3,}/, "\n\n"))
    +end
    +
    +
    + +
    +

    + + .apply_commented_gem_dependency_policy(template_content, content) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +6362
    +6363
    +6364
    +6365
    +6366
    +6367
    +6368
    +6369
    +6370
    +6371
    +6372
    +6373
    +6374
    +6375
    +6376
    +6377
    +6378
    +6379
    +6380
    +6381
    +6382
    +6383
    +6384
    +6385
    +6386
    +6387
    +6388
    +6389
    +6390
    +6391
    +6392
    +6393
    +6394
    +6395
    +6396
    +6397
    +6398
    +
    +
    # File 'lib/kettle/jem.rb', line 6362
    +
    +def apply_commented_gem_dependency_policy(template_content, content)
    +  commented_blocks = commented_gem_dependency_blocks(template_content)
    +  return content if commented_blocks.empty?
    +
    +   = gemfile_gem_call_records(content)
    +    .select { |record| commented_blocks.key?(record.fetch(:name)) }
    +    .to_h { |record| [record.fetch(:start_line), record] }
    +   = commented_gem_dependency_block_records(content)
    +    .select { |record| commented_blocks.key?(record.fetch(:name)) }
    +    .to_h { |record| [record.fetch(:block_start_line), record] }
    +  inserted = Set.new
    +  skip_until = 0
    +  lines = []
    +  content.to_s.lines.each_with_index do |line, index|
    +    line_number = index + 1
    +    next if line_number < skip_until
    +
    +    if (record = [line_number])
    +      gem_name = record.fetch(:name)
    +      append_gemfile_comment_block(lines, commented_blocks.fetch(gem_name)) unless inserted.include?(gem_name)
    +      inserted << gem_name
    +      skip_until = record.fetch(:block_end_line) + 1
    +      next
    +    end
    +
    +    if (record = [line_number])
    +      gem_name = record.fetch(:name)
    +      append_gemfile_comment_block(lines, commented_blocks.fetch(gem_name)) unless inserted.include?(gem_name)
    +      inserted << gem_name
    +      skip_until = record.fetch(:end_line) + 1
    +      next
    +    end
    +
    +    lines << line
    +  end
    +  ensure_trailing_newline(lines.join.gsub(/\n{3,}/, "\n\n"))
    +end
    +
    +
    + +
    +

    + + .apply_configured_gemspec_licenses(content, facts, receiver:) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +7339
    +7340
    +7341
    +7342
    +7343
    +7344
    +7345
    +7346
    +7347
    +7348
    +7349
    +7350
    +7351
    +
    +
    # File 'lib/kettle/jem.rb', line 7339
    +
    +def apply_configured_gemspec_licenses(content, facts, receiver:)
    +  licenses = Array(facts&.dig(:license, :spdx)).map { |license| license.to_s.strip }.reject(&:empty?)
    +  return content if licenses.empty?
    +
    +  replacement = "#{receiver}.licenses = #{licenses.inspect}"
    +  existing = gemspec_assignment_records(content, receiver: receiver).find { |record| record.fetch(:field) == "licenses" }
    +  return replace_source_range_lines(content, existing.fetch(:start_line), existing.fetch(:end_line), "#{leading_whitespace(existing.fetch(:source))}#{replacement}\n") if existing
    +
    +  homepage = gemspec_assignment_records(content, receiver: receiver).find { |record| record.fetch(:field) == "homepage" }
    +  return insert_lines_after(content, homepage.fetch(:end_line), "  #{replacement}\n") if homepage
    +
    +  content
    +end
    +
    +
    + +
    +

    + + .apply_configured_gemspec_required_ruby_version(content, facts, receiver:) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +7353
    +7354
    +7355
    +7356
    +7357
    +7358
    +7359
    +7360
    +7361
    +7362
    +7363
    +7364
    +7365
    +7366
    +7367
    +7368
    +7369
    +7370
    +7371
    +7372
    +
    +
    # File 'lib/kettle/jem.rb', line 7353
    +
    +def apply_configured_gemspec_required_ruby_version(content, facts, receiver:)
    +  return remove_gemspec_assignment(content, receiver: receiver, field: "required_ruby_version") if explicit_zero_runtime_floor?(facts)
    +
    +  min_ruby = minimum_ruby_token(facts.to_h.dig(:rubygems, :min_ruby))
    +  if min_ruby.to_s.empty?
    +    return content
    +  end
    +
    +  replacement = %(#{receiver}.required_ruby_version = ">= #{min_ruby}"#{required_ruby_version_rubocop_disable(min_ruby)})
    +  existing = gemspec_assignment_records(content, receiver: receiver).find { |record| record.fetch(:field) == "required_ruby_version" }
    +  return replace_source_range_lines(content, existing.fetch(:start_line), existing.fetch(:end_line), "#{leading_whitespace(existing.fetch(:source))}#{replacement}\n") if existing
    +
    +  licenses = gemspec_assignment_records(content, receiver: receiver).find { |record| record.fetch(:field) == "licenses" }
    +  return insert_lines_after(content, licenses.fetch(:end_line), "  #{replacement}\n") if licenses
    +
    +  homepage = gemspec_assignment_records(content, receiver: receiver).find { |record| record.fetch(:field) == "homepage" }
    +  return insert_lines_after(content, homepage.fetch(:end_line), "  #{replacement}\n") if homepage
    +
    +  content
    +end
    +
    +
    + +
    +

    + + .apply_kettle_config_bootstrap(project_root, recipe, env: ENV) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +8557
    +8558
    +8559
    +8560
    +8561
    +8562
    +8563
    +8564
    +8565
    +8566
    +8567
    +
    +
    # File 'lib/kettle/jem.rb', line 8557
    +
    +def apply_kettle_config_bootstrap(project_root, recipe, env: ENV)
    +  content = recipe_template_content(project_root, recipe)
    +  tokens = stringify_template_tokens(recipe.fetch(:template_tokens, {}))
    +  content = resolve_template_tokens(content, tokens, scan_unresolved: false)
    +  bootstrap_licenses = Array(recipe[:bootstrap_licenses]).map(&:to_s).reject(&:empty?)
    +  content = replace_kettle_config_bootstrap_licenses(content, bootstrap_licenses) unless bootstrap_licenses.empty?
    +  content = replace_kettle_config_bootstrap_project_emoji(content, recipe[:bootstrap_project_emoji]) unless recipe[:bootstrap_project_emoji].to_s.empty?
    +  content = apply_kettle_config_bootstrap_profile(content, recipe[:bootstrap_template_profile], recipe[:bootstrap_gemspec_path])
    +  content = add_shim_bootstrap_config(content, recipe[:bootstrap_shim]) if recipe[:bootstrap_shim].is_a?(Hash)
    +  sync_kettle_config_env_overrides(content, env)
    +end
    +
    +
    + +
    +

    + + .apply_kettle_config_bootstrap_profile(content, profile, gemspec_path) ⇒ Object + + + + + +

    +
    + + + +
    +
    +
    + +

    Raises:

    +
      + +
    • + + + (Error) + + + +
    • + +
    + +
    + + + + +
    +
    +
    +
    +8895
    +8896
    +8897
    +8898
    +8899
    +8900
    +8901
    +8902
    +8903
    +
    +
    # File 'lib/kettle/jem.rb', line 8895
    +
    +def apply_kettle_config_bootstrap_profile(content, profile, gemspec_path)
    +  return content if profile.to_s.empty?
    +  return replace_yaml_scalar_path(content, %w[templates profile], FULL_TEMPLATE_PROFILE) if profile.to_s == FULL_TEMPLATE_PROFILE
    +  return apply_monorepo_root_template_profile(content) if profile.to_s == MONOREPO_ROOT_TEMPLATE_PROFILE
    +  return apply_monorepo_subgem_template_profile(content, gemspec_path, profile) if monorepo_subgem_template_profile_value?(profile)
    +  return apply_shim_template_profile(content, gemspec_path) if profile.to_s == SHIM_TEMPLATE_PROFILE
    +
    +  raise Error, "Unknown kettle-jem template profile: #{profile}"
    +end
    +
    +
    + +
    +

    + + .apply_markdown_conditional_block(content, name, keep:) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +5021
    +5022
    +5023
    +5024
    +5025
    +5026
    +5027
    +5028
    +5029
    +5030
    +5031
    +5032
    +5033
    +5034
    +5035
    +5036
    +5037
    +5038
    +5039
    +5040
    +5041
    +5042
    +5043
    +5044
    +
    +
    # File 'lib/kettle/jem.rb', line 5021
    +
    +def apply_markdown_conditional_block(content, name, keep:)
    +  ensure_runtime_dependencies!
    +  start_text = "KJ:#{name}:START"
    +  end_text = "KJ:#{name}:END"
    +  if keep
    +    processed = delete_markdown_with_ast_crispr(
    +      content,
    +      Ast::Crispr::Markdown::Markly::Selectors.html_comment(text: start_text, limit: {at_least: 0})
    +    )
    +    delete_markdown_with_ast_crispr(
    +      processed,
    +      Ast::Crispr::Markdown::Markly::Selectors.html_comment(text: end_text, limit: {at_least: 0})
    +    )
    +  else
    +    delete_markdown_with_ast_crispr(
    +      content,
    +      Ast::Crispr::Markdown::Markly::Selectors.html_comment_block(
    +        start_text: start_text,
    +        end_text: end_text,
    +        limit: {at_least: 0}
    +      )
    +    )
    +  end
    +end
    +
    +
    + +
    +

    + + .apply_monorepo_root_template_profile(content) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +8956
    +8957
    +8958
    +8959
    +8960
    +8961
    +8962
    +8963
    +8964
    +8965
    +8966
    +8967
    +8968
    +8969
    +8970
    +8971
    +8972
    +8973
    +8974
    +8975
    +8976
    +8977
    +8978
    +8979
    +
    +
    # File 'lib/kettle/jem.rb', line 8956
    +
    +def apply_monorepo_root_template_profile(content)
    +  entry_lines = MONOREPO_ROOT_TEMPLATE_ENTRIES.map { |entry| "    - #{entry}" }
    +  profiled_content = replace_yaml_scalar_path(content, %w[templates profile], MONOREPO_ROOT_TEMPLATE_PROFILE)
    +  entries_block = ["  entries:", *entry_lines].join("\n")
    +  updated = insert_after_line_sequence(
    +    profiled_content,
    +    ["templates:", "  root: packaged", "  apply: true", "  profile: #{MONOREPO_ROOT_TEMPLATE_PROFILE}"],
    +    entries_block,
    +    nil
    +  )
    +  if updated == profiled_content
    +    updated = insert_after_line_sequence(
    +      profiled_content,
    +      ["templates:", "  root: packaged", "  apply: true"],
    +      entries_block,
    +      "Could not apply monorepo-root template profile to .kettle-jem.yml bootstrap template"
    +    )
    +  end
    +  if updated == profiled_content
    +    raise Error,
    +      "Could not apply monorepo-root template profile to .kettle-jem.yml bootstrap template"
    +  end
    +  add_monorepo_root_file_overrides(updated)
    +end
    +
    +
    + +
    +

    + + .apply_monorepo_subgem_readme_recipe(content, facts) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +5046
    +5047
    +5048
    +5049
    +5050
    +5051
    +5052
    +5053
    +5054
    +5055
    +5056
    +
    +
    # File 'lib/kettle/jem.rb', line 5046
    +
    +def apply_monorepo_subgem_readme_recipe(content, facts)
    +  return content unless monorepo_subgem_template_profile?(facts)
    +
    +  source_url = facts.dig(:package, :source_url).to_s
    +  return content if source_url.empty?
    +
    +  root_doc_links = MONOREPO_SUBGEM_README_BLOB_PATHS.to_h do |path|
    +    [path, source_blob_url(source_url, path)]
    +  end
    +  rewrite_markdown_reference_links(content, root_doc_links)
    +end
    +
    +
    + +
    +

    + + .apply_monorepo_subgem_template_profile(content, gemspec_path, profile = MONOREPO_SUBGEM_TEMPLATE_PROFILE) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +8981
    +8982
    +8983
    +8984
    +8985
    +8986
    +8987
    +8988
    +8989
    +8990
    +8991
    +8992
    +8993
    +8994
    +8995
    +8996
    +8997
    +8998
    +8999
    +9000
    +9001
    +9002
    +9003
    +9004
    +9005
    +9006
    +9007
    +9008
    +9009
    +9010
    +9011
    +9012
    +9013
    +9014
    +9015
    +9016
    +
    +
    # File 'lib/kettle/jem.rb', line 8981
    +
    +def apply_monorepo_subgem_template_profile(content, gemspec_path, profile = MONOREPO_SUBGEM_TEMPLATE_PROFILE)
    +  entries = monorepo_subgem_template_entries(gemspec_path, profile)
    +  entry_lines = entries.flat_map do |entry|
    +    if entry.is_a?(Hash)
    +      [
    +        "    - source: #{entry.fetch("source")}",
    +        "      target: #{entry.fetch("target")}"
    +      ]
    +    else
    +      ["    - #{entry}"]
    +    end
    +  end
    +  normalized_profile = normalize_template_profile(profile)
    +  profiled_content = replace_yaml_scalar_path(content, %w[templates profile], normalized_profile)
    +  entries_block = ["  entries:", *entry_lines].join("\n")
    +  updated = insert_after_line_sequence(
    +    profiled_content,
    +    ["templates:", "  root: packaged", "  apply: true", "  profile: #{normalized_profile}"],
    +    entries_block,
    +    nil
    +  )
    +  if updated == profiled_content
    +    updated = insert_after_line_sequence(
    +      profiled_content,
    +      ["templates:", "  root: packaged", "  apply: true"],
    +      entries_block,
    +      "Could not apply monorepo-subgem template profile to .kettle-jem.yml bootstrap template"
    +    )
    +  end
    +  if updated == profiled_content
    +    raise Error,
    +      "Could not apply #{normalized_profile} template profile to .kettle-jem.yml bootstrap template"
    +  end
    +
    +  add_monorepo_subgem_file_overrides(updated, gemspec_path, normalized_profile)
    +end
    +
    +
    + +
    +

    + + .apply_monorepo_subgem_thin_readme_projection(content, facts) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +5058
    +5059
    +5060
    +5061
    +5062
    +5063
    +5064
    +5065
    +5066
    +5067
    +5068
    +5069
    +5070
    +5071
    +5072
    +5073
    +5074
    +5075
    +5076
    +5077
    +5078
    +5079
    +5080
    +5081
    +
    +
    # File 'lib/kettle/jem.rb', line 5058
    +
    +def apply_monorepo_subgem_thin_readme_projection(content, facts)
    +  ensure_runtime_dependencies!
    +  return content unless monorepo_subgem_template_profile?(facts)
    +
    +  context = Ast::Crispr::Markdown::Markly.document_context(content: content, source_label: "README.md")
    +  link_definitions = context.structural_owners(owner_scope: :link_definitions)
    +  heading_sections = context.structural_owners(owner_scope: :heading_sections)
    +  removable = heading_sections.each_with_index.select do |owner, index|
    +    owner.level.to_i > 1 && !MONOREPO_SUBGEM_THIN_README_KEEP_HEADINGS.include?(owner.base.to_s)
    +  end.reject do |owner, index|
    +    markdown_heading_has_preserved_readme_ancestor?(heading_sections, index)
    +  end.map(&:first)
    +  projected = removable.reverse.reduce(content.to_s) do |processed, owner|
    +    delete_markdown_with_ast_crispr(
    +      processed,
    +      Ast::Crispr::Markdown::Markly::Selectors.heading_section(
    +        heading_text: owner.heading_text,
    +        level: owner.level,
    +        limit: {at_least: 0}
    +      )
    +    )
    +  end
    +  append_missing_markdown_link_definitions(projected, link_definitions)
    +end
    +
    +
    + +
    +

    + + .apply_project(project_root, env: ENV, run_options: {}) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +3433
    +3434
    +3435
    +3436
    +3437
    +3438
    +3439
    +3440
    +3441
    +3442
    +3443
    +3444
    +3445
    +3446
    +3447
    +3448
    +3449
    +3450
    +3451
    +
    +
    # File 'lib/kettle/jem.rb', line 3433
    +
    +def apply_project(project_root, env: ENV, run_options: {})
    +  report = plan_project(project_root, env: env, run_options: run_options).merge(mode: "apply")
    +  before_apply_files = snapshot_changed_files(
    +    project_root,
    +    report.fetch(:recipe_reports).filter_map { |entry| entry[:relative_path] }
    +  )
    +  run_apply_phases(project_root, report)
    +  report[:changed_files] = actual_changed_files_after_apply(project_root, report.fetch(:changed_files), before_apply_files)
    +  report[:post_apply_steps] = post_apply_steps(project_root, report)
    +  report[:changed_files] = (report.fetch(:changed_files, []) + report.fetch(:post_apply_steps).flat_map do |step|
    +    step.fetch(:changed_files, [])
    +  end).uniq.sort
    +  report[:duplicate_drift] = duplicate_drift_report(
    +    project_root: project_root,
    +    template_root: template_root_path(project_root, config: kettle_jem_config(project_root)),
    +    run_options: run_options
    +  )
    +  report
    +end
    +
    +
    + +
    +

    + + .apply_readme_badge_policy(content, facts) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +4987
    +4988
    +4989
    +4990
    +4991
    +4992
    +4993
    +4994
    +4995
    +4996
    +4997
    +4998
    +4999
    +5000
    +5001
    +5002
    +5003
    +5004
    +5005
    +5006
    +5007
    +
    +
    # File 'lib/kettle/jem.rb', line 4987
    +
    +def apply_readme_badge_policy(content, facts)
    +  processed = remove_readme_badge_and_refs(content, README_CODETRIAGE_BADGE, README_CODETRIAGE_LINK_LABELS)
    +  if facts.dig(:readme_style, :fossa_project).to_s.empty?
    +    processed = remove_readme_badge_and_refs(processed, README_FOSSA_BADGE, README_FOSSA_LINK_LABELS)
    +  end
    +  if Array(facts.dig(:readme_style, :disabled_integrations)).map(&:to_s).include?(SKYWALKING_EYES_INTEGRATION)
    +    processed = remove_readme_badge_and_refs(
    +      processed,
    +      README_LICENSE_EYE_WORKFLOW_BADGE,
    +      README_LICENSE_EYE_WORKFLOW_LINK_LABELS
    +    )
    +  end
    +  if facts.dig(:funding, :open_collective_disabled)
    +    processed = remove_readme_badge_and_refs(
    +      processed,
    +      README_OPEN_COLLECTIVE_FUNDING_BADGES,
    +      README_OPEN_COLLECTIVE_LINK_LABELS
    +    )
    +  end
    +  processed
    +end
    +
    +
    + +
    +

    + + .apply_readme_conditional_blocks(content, facts) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +4981
    +4982
    +4983
    +4984
    +4985
    +
    +
    # File 'lib/kettle/jem.rb', line 4981
    +
    +def apply_readme_conditional_blocks(content, facts)
    +  open_collective_enabled = !facts.dig(:funding, :open_collective_disabled)
    +  processed = apply_markdown_conditional_block(content, "OPEN_COLLECTIVE", keep: open_collective_enabled)
    +  apply_markdown_conditional_block(processed, "NO_OPEN_COLLECTIVE", keep: !open_collective_enabled)
    +end
    +
    +
    + +
    +

    + + .apply_readme_kloc_badge(content, facts, project_root) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +4932
    +4933
    +4934
    +4935
    +4936
    +4937
    +4938
    +4939
    +4940
    +
    +
    # File 'lib/kettle/jem.rb', line 4932
    +
    +def apply_readme_kloc_badge(content, facts, project_root)
    +  kloc = readme_kloc_from_changelog(project_root, facts.dig(:project_runtime, :version))
    +  return content if kloc.to_s.empty?
    +
    +  content.to_s.gsub(
    +    /(\[🧮kloc-img\]:\s*https?:\/\/img\.shields\.io\/badge\/KLOC-)(\d+(?:\.\d+)?)(-[^\s]*)/,
    +    "\\1#{kloc}\\3"
    +  )
    +end
    +
    +
    + +
    +

    + + .apply_readme_style(project_root, env: ENV) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +3868
    +3869
    +3870
    +3871
    +3872
    +3873
    +3874
    +3875
    +3876
    +
    +
    # File 'lib/kettle/jem.rb', line 3868
    +
    +def apply_readme_style(project_root, env: ENV)
    +  report = plan_readme_style(project_root, env: env).merge(mode: "apply")
    +  return report unless report.fetch(:changed)
    +
    +  path = File.join(project_root, report.fetch(:readme_path))
    +  FileUtils.mkdir_p(File.dirname(path))
    +  File.write(path, report.fetch(:final_content))
    +  report
    +end
    +
    +
    + +
    +

    + + .apply_recipe_report(project_root, recipe_report) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +9862
    +9863
    +9864
    +9865
    +9866
    +9867
    +9868
    +9869
    +9870
    +9871
    +9872
    +
    +
    # File 'lib/kettle/jem.rb', line 9862
    +
    +def apply_recipe_report(project_root, recipe_report)
    +  return unless recipe_report[:changed]
    +
    +  path = File.join(project_root, recipe_report.fetch(:relative_path))
    +  if recipe_report.dig(:metadata, :delete_file)
    +    FileUtils.rm_f(path)
    +  else
    +    FileUtils.mkdir_p(File.dirname(path))
    +    File.write(path, recipe_report.fetch(:final_content))
    +  end
    +end
    +
    +
    + +
    +

    + + .apply_shim_template_profile(content, gemspec_path) ⇒ Object + + + + + +

    +
    + + + +
    +
    +
    + +

    Raises:

    +
      + +
    • + + + (Error) + + + +
    • + +
    + +
    + + + + +
    +
    +
    +
    +8905
    +8906
    +8907
    +8908
    +8909
    +8910
    +8911
    +8912
    +8913
    +8914
    +8915
    +8916
    +8917
    +8918
    +8919
    +8920
    +8921
    +8922
    +8923
    +8924
    +8925
    +8926
    +8927
    +8928
    +8929
    +8930
    +8931
    +
    +
    # File 'lib/kettle/jem.rb', line 8905
    +
    +def apply_shim_template_profile(content, gemspec_path)
    +  entry_lines = shim_template_entries_for_config(gemspec_path, {}).flat_map do |entry|
    +    [
    +      "    - source: #{entry.fetch("source")}",
    +      "      target: #{entry.fetch("target")}"
    +    ]
    +  end
    +  profiled_content = replace_yaml_scalar_path(content, %w[templates profile], SHIM_TEMPLATE_PROFILE)
    +  entries_block = ["  entries:", *entry_lines].join("\n")
    +  updated = insert_after_line_sequence(
    +    profiled_content,
    +    ["templates:", "  root: packaged", "  apply: true", "  profile: #{SHIM_TEMPLATE_PROFILE}"],
    +    entries_block,
    +    nil
    +  )
    +  if updated == profiled_content
    +    updated = insert_after_line_sequence(
    +      profiled_content,
    +      ["templates:", "  root: packaged", "  apply: true"],
    +      entries_block,
    +      "Could not apply shim template profile to .kettle-jem.yml bootstrap template"
    +    )
    +  end
    +  raise Error, "Could not apply shim template profile to .kettle-jem.yml bootstrap template" if updated == profiled_content
    +
    +  add_shim_file_overrides(updated, gemspec_path)
    +end
    +
    +
    + +
    +

    + + .apply_template_source(project_root, recipe, original, facts: nil, env: ENV) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +4713
    +4714
    +4715
    +4716
    +4717
    +4718
    +4719
    +4720
    +4721
    +4722
    +4723
    +4724
    +4725
    +4726
    +4727
    +4728
    +4729
    +4730
    +4731
    +4732
    +4733
    +4734
    +4735
    +4736
    +4737
    +4738
    +4739
    +4740
    +4741
    +4742
    +4743
    +4744
    +4745
    +4746
    +4747
    +4748
    +4749
    +4750
    +4751
    +4752
    +4753
    +4754
    +4755
    +4756
    +4757
    +4758
    +4759
    +4760
    +4761
    +4762
    +4763
    +4764
    +4765
    +4766
    +4767
    +4768
    +4769
    +4770
    +4771
    +4772
    +4773
    +
    +
    # File 'lib/kettle/jem.rb', line 4713
    +
    +def apply_template_source(project_root, recipe, original, facts: nil, env: ENV)
    +  strategy = recipe.dig(:template_preference, :strategy).to_s
    +  return original if strategy == "keep_destination"
    +
    +  content = recipe_template_content(project_root, recipe)
    +  return finalize_github_workflow_template(content, facts) if strategy == "raw_copy" && github_workflow_template_recipe?(recipe)
    +  return finalize_template_source_content(recipe, content) if strategy == "raw_copy"
    +
    +  resolved = resolve_template_tokens(
    +    content,
    +    recipe.fetch(:template_tokens, {}),
    +    scan_unresolved: unresolved_template_scan?(recipe)
    +  )
    +rescue ArgumentError => e
    +  raise ArgumentError, "#{recipe.fetch(:target_path)}: #{e.message}"
    +else
    +  resolved = prepare_readme_template(resolved, recipe[:readme_style]) if recipe.fetch(:target_path) == "README.md"
    +  resolved = prepare_github_workflow_template(resolved, recipe, facts)
    +  if recipe.fetch(:target_path) == "README.md" && (strategy.empty? || strategy == "merge")
    +    processed = postprocess_readme_content(
    +      merge_readme_template(
    +        template_content: resolved,
    +        destination_content: original,
    +        preserve_config: recipe.dig(:template_preference, :readme_preserve_config) || {}
    +      ),
    +      facts,
    +      project_root: project_root
    +    )
    +    return append_used_markdown_link_definitions(processed, resolved)
    +  end
    +  if strategy.empty? || strategy == "merge"
    +    merged = merge_config_template_source(recipe, resolved, original, facts: facts, env: env)
    +    merged = preserve_mise_project_settings(recipe, merged, original, project_root: project_root) if template_file_type(recipe) == :toml
    +    return sync_kettle_config_env_overrides(merged, env) if recipe.fetch(:target_path) == KETTLE_CONFIG_PATH
    +
    +    if github_workflow_template_recipe?(recipe)
    +      merged = preserve_github_workflow_project_settings(recipe, merged, original, project_root: project_root)
    +      merged = finalize_github_workflow_template(merged, facts)
    +      return preserve_newer_github_workflow_action_pins(merged, original)
    +    end
    +
    +    return finalize_template_source_content(recipe, merged)
    +  end
    +  if strategy == "accept_template"
    +    accepted = finalize_accepted_template_source(recipe, resolved, original, facts: facts, project_root: project_root)
    +    accepted = preserve_github_workflow_project_settings(recipe, accepted, original, project_root: project_root) if github_workflow_template_recipe?(recipe)
    +    accepted = sync_kettle_config_env_overrides(accepted, env) if recipe.fetch(:target_path) == KETTLE_CONFIG_PATH
    +    if github_workflow_template_recipe?(recipe)
    +      accepted = finalize_github_workflow_template(accepted, facts)
    +      accepted = preserve_newer_github_workflow_action_pins(accepted, original)
    +    end
    +    return postprocess_readme_content(accepted, facts, project_root: project_root) if recipe.fetch(:target_path) == "README.md"
    +
    +    return finalize_template_source_content(recipe, accepted)
    +  end
    +
    +  resolved = finalize_github_workflow_template(resolved, facts) if github_workflow_template_recipe?(recipe)
    +  return postprocess_readme_content(resolved, facts, project_root: project_root) if recipe.fetch(:target_path) == "README.md"
    +
    +  finalize_template_source_content(recipe, resolved)
    +end
    +
    +
    + +
    +

    + + .appraisal_all_versions_for(resolver:, gem_name:, mode:, requirements: nil, include_versions: nil, exclude_versions: nil) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +2619
    +2620
    +2621
    +2622
    +2623
    +2624
    +2625
    +2626
    +
    +
    # File 'lib/kettle/jem.rb', line 2619
    +
    +def appraisal_all_versions_for(resolver:, gem_name:, mode:, requirements: nil, include_versions: nil, exclude_versions: nil)
    +  base_versions = if mode.to_s == "patch"
    +    resolver.versions(gem_name, requirements: requirements).map { |entry| entry[:number] || entry["number"] }
    +  else
    +    resolver.minor_versions_by_major(gem_name, requirements: requirements).flat_map { |entry| entry[:minors] || entry["minors"] }
    +  end
    +  appraisal_finalize_versions(base_versions, include_versions: include_versions, exclude_versions: exclude_versions)
    +end
    +
    +
    + +
    +

    + + .appraisal_assign_version_buckets(selected_versions:, seams:, buckets:, bucket_ranges:, all_versions:) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +2388
    +2389
    +2390
    +2391
    +2392
    +2393
    +2394
    +2395
    +2396
    +2397
    +2398
    +2399
    +2400
    +2401
    +2402
    +
    +
    # File 'lib/kettle/jem.rb', line 2388
    +
    +def appraisal_assign_version_buckets(selected_versions:, seams:, buckets:, bucket_ranges:, all_versions:)
    +  return [] if selected_versions.empty? || buckets.empty?
    +
    +  normalized_ranges = appraisal_normalized_bucket_ranges(bucket_ranges)
    +  version_min_rubies = appraisal_version_min_ruby_map(all_versions, seams)
    +  assignments = selected_versions.sort_by { |version| Gem::Version.new(version) }.filter_map do |version|
    +    min_ruby = version_min_rubies[version]
    +    next unless min_ruby
    +
    +    next_seam = appraisal_next_seam_ruby(version, min_ruby, all_versions, version_min_rubies)
    +    bucket = next_seam ? appraisal_bucket_below(next_seam, buckets, normalized_ranges) : buckets.last
    +    {version: version, bucket: bucket} if bucket
    +  end
    +  appraisal_fill_bucket_gaps(assignments, buckets, normalized_ranges, version_min_rubies, all_versions)
    +end
    +
    +
    + +
    +

    + + .appraisal_block_has_matrix_dependency_gemfile?(block, matrix_dependency_gemfiles) ⇒ Boolean + + + + + +

    +
    + + + +
    +
    +
    + +

    Returns:

    +
      + +
    • + + + (Boolean) + + + +
    • + +
    + +
    + + + + +
    +
    +
    +
    +6841
    +6842
    +6843
    +6844
    +6845
    +6846
    +6847
    +6848
    +6849
    +6850
    +
    +
    # File 'lib/kettle/jem.rb', line 6841
    +
    +def appraisal_block_has_matrix_dependency_gemfile?(block, matrix_dependency_gemfiles)
    +  ruby_call_records(block, :eval_gemfile).any? do |call|
    +    path = ruby_string_argument(call).to_s
    +    next true if matrix_dependency_gemfiles.include?(path)
    +
    +    path.start_with?("modular/") &&
    +      path.delete_prefix("modular/").include?("/") &&
    +      !path.start_with?("modular/x_std_libs/")
    +  end
    +end
    +
    +
    + +
    +

    + + .appraisal_blocks(content) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +7088
    +7089
    +7090
    +7091
    +7092
    +7093
    +7094
    +7095
    +7096
    +7097
    +7098
    +7099
    +7100
    +7101
    +7102
    +7103
    +
    +
    # File 'lib/kettle/jem.rb', line 7088
    +
    +def appraisal_blocks(content)
    +  lines = content.to_s.lines
    +  blocks = {}
    +  order = []
    +  records = appraisal_call_records(content)
    +  records.each do |record|
    +    name = record.fetch(:name)
    +    unless blocks.key?(name)
    +      blocks[name] = record.fetch(:source)
    +      order << name
    +    end
    +  end
    +  prelude_end = records.empty? ? lines.length : records.first.fetch(:start_line) - 1
    +  prelude = lines[0...prelude_end].join
    +  {prelude: prelude, blocks: blocks, order: order}
    +end
    +
    +
    + +
    +

    + + .appraisal_bucket_below(ruby_floor, buckets, bucket_ranges) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +2483
    +2484
    +2485
    +2486
    +2487
    +2488
    +2489
    +2490
    +
    +
    # File 'lib/kettle/jem.rb', line 2483
    +
    +def appraisal_bucket_below(ruby_floor, buckets, bucket_ranges)
    +  buckets.filter_map do |bucket|
    +    range = bucket_ranges[bucket]
    +    next unless range && range.fetch(:ceiling) < ruby_floor
    +
    +    [bucket, range.fetch(:ceiling)]
    +  end.max_by(&:last)&.first
    +end
    +
    +
    + +
    +

    + + .appraisal_bucket_sort_key(bucket) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +2443
    +2444
    +2445
    +2446
    +
    +
    # File 'lib/kettle/jem.rb', line 2443
    +
    +def appraisal_bucket_sort_key(bucket)
    +  match = bucket.to_s.match(/\Ar(\d+)(?:\.(\d+))?\z/)
    +  [match[1].to_i, match[2] ? match[2].to_i : 999]
    +end
    +
    +
    + +
    +

    + + .appraisal_call_records(content) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +7122
    +7123
    +7124
    +7125
    +7126
    +7127
    +7128
    +7129
    +7130
    +7131
    +7132
    +7133
    +7134
    +7135
    +
    +
    # File 'lib/kettle/jem.rb', line 7122
    +
    +def appraisal_call_records(content)
    +  lines = content.to_s.lines
    +  ruby_call_records(content, :appraise).filter_map do |call|
    +    name = ruby_string_argument(call)
    +    next unless name
    +
    +    {
    +      name: name,
    +      start_line: call.location.start_line,
    +      end_line: ruby_node_source_end_line(call),
    +      source: (lines[(call.location.start_line - 1)..(ruby_node_source_end_line(call) - 1)] || []).join
    +    }
    +  end
    +end
    +
    +
    + +
    +

    + + .appraisal_compatible_version_for_bucket?(resolver:, gem_name:, version:, ruby_series:, bucket_ranges:) ⇒ Boolean + + + + + +

    +
    + + + +
    +
    +
    + +

    Returns:

    +
      + +
    • + + + (Boolean) + + + +
    • + +
    + +
    + + + + +
    +
    +
    +
    +2636
    +2637
    +2638
    +2639
    +2640
    +2641
    +2642
    +2643
    +2644
    +2645
    +2646
    +
    +
    # File 'lib/kettle/jem.rb', line 2636
    +
    +def appraisal_compatible_version_for_bucket?(resolver:, gem_name:, version:, ruby_series:, bucket_ranges:)
    +  range = bucket_ranges[ruby_series] || bucket_ranges[ruby_series.to_s]
    +  return true unless range
    +
    +  ceiling = Gem::Version.new((range[:ceiling] || range["ceiling"]).to_s)
    +  exact_version = appraisal_latest_minor_patch(resolver: resolver, gem_name: gem_name, version: version)
    +  min_ruby = resolver.min_ruby_version(gem_name, exact_version)
    +  min_ruby.nil? || Gem::Version.new(min_ruby.to_s) <= ceiling
    +rescue
    +  true
    +end
    +
    +
    + +
    +

    + + .appraisal_eval_gemfile_path(path) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +2190
    +2191
    +2192
    +
    +
    # File 'lib/kettle/jem.rb', line 2190
    +
    +def appraisal_eval_gemfile_path(path)
    +  path.to_s.delete_prefix("gemfiles/")
    +end
    +
    +
    + +
    +

    + + .appraisal_extract_runtime_dependencies(gemspec_content) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +2570
    +2571
    +2572
    +2573
    +2574
    +2575
    +
    +
    # File 'lib/kettle/jem.rb', line 2570
    +
    +def appraisal_extract_runtime_dependencies(gemspec_content)
    +  gemspec_dependency_records(gemspec_content)
    +    .reject { |record| record.fetch(:kind) == "add_development_dependency" }
    +    .map { |record| record.fetch(:name) }
    +    .uniq
    +end
    +
    +
    + +
    +

    + + .appraisal_file_content(matrix_entries) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +2170
    +2171
    +2172
    +2173
    +2174
    +2175
    +2176
    +2177
    +2178
    +2179
    +2180
    +2181
    +2182
    +2183
    +2184
    +2185
    +2186
    +2187
    +2188
    +
    +
    # File 'lib/kettle/jem.rb', line 2170
    +
    +def appraisal_file_content(matrix_entries)
    +  lines = [
    +    "# frozen_string_literal: true",
    +    "",
    +    "# Generated by kettle-jem",
    +    "# Do not edit directly; regenerate from Kettle/Jem appraisal matrix metadata.",
    +    ""
    +  ]
    +  matrix_entries.each do |entry|
    +    lines << %(appraise "#{entry.fetch(:name)}" do)
    +    lines << %(  eval_gemfile "#{appraisal_eval_gemfile_path(entry.fetch(:tier1_gemfile))}") if entry[:tier1_gemfile]
    +    lines << %(  eval_gemfile "#{appraisal_eval_gemfile_path(entry.fetch(:tier2_gemfile))}") if entry[:tier2_gemfile]
    +    lines << %(  eval_gemfile "#{appraisal_eval_gemfile_path(entry.fetch(:x_std_libs_gemfile))}") if entry[:x_std_libs_gemfile]
    +    lines << "end"
    +    lines << ""
    +  end
    +  lines.pop while lines.last == ""
    +  ensure_trailing_newline(lines.join("\n"))
    +end
    +
    +
    + +
    +

    + + .appraisal_fill_bucket_gaps(assignments, buckets, bucket_ranges, version_min_rubies, all_versions) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +2492
    +2493
    +2494
    +2495
    +2496
    +2497
    +2498
    +2499
    +2500
    +2501
    +2502
    +2503
    +2504
    +2505
    +2506
    +2507
    +2508
    +2509
    +
    +
    # File 'lib/kettle/jem.rb', line 2492
    +
    +def appraisal_fill_bucket_gaps(assignments, buckets, bucket_ranges, version_min_rubies, all_versions)
    +  covered = assignments.map { |assignment| assignment.fetch(:bucket) }
    +  (buckets - covered).each do |bucket|
    +    range = bucket_ranges[bucket]
    +    next unless range
    +
    +    filler = all_versions.sort_by { |version| Gem::Version.new(version) }.reverse.find do |version|
    +      ruby = version_min_rubies[version]
    +      ruby&.between?(range.fetch(:floor), range.fetch(:ceiling))
    +    end
    +    filler ||= all_versions.sort_by { |version| Gem::Version.new(version) }.reverse.find do |version|
    +      ruby = version_min_rubies[version]
    +      ruby && ruby <= range.fetch(:ceiling)
    +    end
    +    assignments << {version: filler, bucket: bucket, filler: true} if filler
    +  end
    +  assignments.sort_by { |assignment| bucket_ranges.fetch(assignment.fetch(:bucket)).fetch(:floor) }
    +end
    +
    +
    + +
    +

    + + .appraisal_filtered_versions(version_metadata, requirements:) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +2334
    +2335
    +2336
    +2337
    +2338
    +2339
    +2340
    +2341
    +2342
    +2343
    +2344
    +
    +
    # File 'lib/kettle/jem.rb', line 2334
    +
    +def appraisal_filtered_versions(, requirements:)
    +  requirement = requirements ? Gem::Requirement.new(Array(requirements)) : nil
    +  .filter_map do |entry|
    +    number = entry[:number] || entry["number"]
    +    next if number.to_s.empty?
    +    next if entry[:prerelease] || entry["prerelease"]
    +    next if requirement && !requirement.satisfied_by?(Gem::Version.new(number))
    +
    +    number.to_s
    +  end.sort_by { |version| Gem::Version.new(version) }
    +end
    +
    +
    + +
    +

    + + .appraisal_finalize_versions(base_versions, include_versions: nil, exclude_versions: nil) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +2628
    +2629
    +2630
    +2631
    +2632
    +2633
    +2634
    +
    +
    # File 'lib/kettle/jem.rb', line 2628
    +
    +def appraisal_finalize_versions(base_versions, include_versions: nil, exclude_versions: nil)
    +  merged = appraisal_sort_versions(Array(base_versions) + Array(include_versions))
    +  excluded = Array(exclude_versions).map(&:to_s).to_set
    +  return merged if excluded.empty?
    +
    +  appraisal_sort_versions(merged.reject { |version| excluded.include?(version) })
    +end
    +
    +
    + +
    +

    + + .appraisal_find_ruby_seams(version_metadata) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +2362
    +2363
    +2364
    +2365
    +2366
    +2367
    +2368
    +2369
    +2370
    +2371
    +2372
    +2373
    +2374
    +2375
    +
    +
    # File 'lib/kettle/jem.rb', line 2362
    +
    +def appraisal_find_ruby_seams()
    +  minors = appraisal_latest_patch_by_minor()
    +  seams = []
    +  previous = nil
    +  minors.sort_by { |minor, _entry| Gem::Version.new(minor) }.each do |minor, entry|
    +    min_ruby = Gem::Version.new((entry[:min_ruby] || entry["min_ruby"]).to_s)
    +    min_ruby = [min_ruby, DEFAULT_TEST_MINIMUM_RUBY].max
    +    if previous.nil? || min_ruby > previous
    +      seams << {version: minor, min_ruby: min_ruby}
    +    end
    +    previous = min_ruby
    +  end
    +  seams
    +end
    +
    +
    + +
    +

    + + .appraisal_format_version(version) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +2129
    +2130
    +2131
    +
    +
    # File 'lib/kettle/jem.rb', line 2129
    +
    +def appraisal_format_version(version)
    +  version.to_s.tr(".", "-")
    +end
    +
    +
    + +
    +

    + + .appraisal_gem_abbreviation(gem_name) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +2125
    +2126
    +2127
    +
    +
    # File 'lib/kettle/jem.rb', line 2125
    +
    +def appraisal_gem_abbreviation(gem_name)
    +  APPRAISAL_GEM_ABBREVIATIONS.fetch(gem_name.to_s, gem_name.to_s)
    +end
    +
    +
    + +
    +

    + + .appraisal_latest_minor_patch(resolver:, gem_name:, version:) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +2648
    +2649
    +2650
    +2651
    +2652
    +2653
    +2654
    +2655
    +2656
    +2657
    +2658
    +2659
    +
    +
    # File 'lib/kettle/jem.rb', line 2648
    +
    +def appraisal_latest_minor_patch(resolver:, gem_name:, version:)
    +  all_versions = resolver.versions(gem_name)
    +  prefix = "#{version}."
    +  matching = all_versions.select do |entry|
    +    number = (entry[:number] || entry["number"]).to_s
    +    number == version.to_s || number.start_with?(prefix)
    +  end
    +  return version.to_s if matching.empty?
    +
    +  latest = matching.max_by { |entry| Gem::Version.new((entry[:number] || entry["number"]).to_s) }
    +  (latest[:number] || latest["number"]).to_s
    +end
    +
    +
    + +
    +

    + + .appraisal_latest_patch_by_minor(version_metadata) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +2404
    +2405
    +2406
    +2407
    +2408
    +2409
    +2410
    +2411
    +2412
    +2413
    +2414
    +
    +
    # File 'lib/kettle/jem.rb', line 2404
    +
    +def appraisal_latest_patch_by_minor()
    +  .each_with_object({}) do |entry, latest|
    +    number = (entry[:number] || entry["number"]).to_s
    +    next if number.empty?
    +
    +    version = Gem::Version.new(number)
    +    minor = "#{version.segments[0]}.#{version.segments[1] || 0}"
    +    current = latest[minor]
    +    latest[minor] = entry if current.nil? || version > Gem::Version.new((current[:number] || current["number"]).to_s)
    +  end
    +end
    +
    +
    + +
    +

    + + .appraisal_latest_version_matching(version_metadata, requested_version) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +2535
    +2536
    +2537
    +2538
    +2539
    +2540
    +2541
    +
    +
    # File 'lib/kettle/jem.rb', line 2535
    +
    +def appraisal_latest_version_matching(, requested_version)
    +  prefix = "#{requested_version}."
    +  .select do |entry|
    +    number = (entry[:number] || entry["number"]).to_s
    +    number == requested_version.to_s || number.start_with?(prefix)
    +  end.max_by { |entry| Gem::Version.new((entry[:number] || entry["number"]).to_s) }
    +end
    +
    +
    + +
    +

    + + .appraisal_matrix_entries(tier1_gems:, tier2_gems: []) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +2285
    +2286
    +2287
    +2288
    +2289
    +2290
    +2291
    +2292
    +2293
    +2294
    +2295
    +2296
    +2297
    +2298
    +2299
    +2300
    +2301
    +2302
    +2303
    +2304
    +2305
    +2306
    +2307
    +2308
    +2309
    +2310
    +2311
    +2312
    +2313
    +2314
    +2315
    +2316
    +
    +
    # File 'lib/kettle/jem.rb', line 2285
    +
    +def appraisal_matrix_entries(tier1_gems:, tier2_gems: [])
    +  entries = []
    +  tier1_gems.each do |tier1|
    +    tier1_name = tier1[:name] || tier1["name"]
    +    assignments = tier1[:assignments] || tier1["assignments"] || []
    +    assignments.each do |assignment|
    +      tier1_version = assignment[:version] || assignment["version"]
    +      ruby_series = assignment[:bucket] || assignment["bucket"] || assignment[:ruby_series] || assignment["ruby_series"]
    +      if tier2_gems.empty?
    +        entries << appraisal_matrix_entry(
    +          tier1_name: tier1_name,
    +          tier1_version: tier1_version,
    +          ruby_series: ruby_series
    +        )
    +      else
    +        tier2_gems.each do |tier2|
    +          tier2_name = tier2[:name] || tier2["name"]
    +          Array(tier2[:versions] || tier2["versions"]).each do |tier2_version|
    +            entries << appraisal_matrix_entry(
    +              tier1_name: tier1_name,
    +              tier1_version: tier1_version,
    +              ruby_series: ruby_series,
    +              tier2_name: tier2_name,
    +              tier2_version: tier2_version
    +            )
    +          end
    +        end
    +      end
    +    end
    +  end
    +  entries
    +end
    +
    +
    + +
    +

    + + .appraisal_matrix_entry(tier1_name:, tier1_version:, ruby_series:, tier2_name: nil, tier2_version: nil) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +2318
    +2319
    +2320
    +2321
    +2322
    +2323
    +2324
    +2325
    +2326
    +2327
    +2328
    +2329
    +2330
    +2331
    +2332
    +
    +
    # File 'lib/kettle/jem.rb', line 2318
    +
    +def appraisal_matrix_entry(tier1_name:, tier1_version:, ruby_series:, tier2_name: nil, tier2_version: nil)
    +  {
    +    name: appraisal_name(
    +      tier1_gem: tier1_name,
    +      tier1_version: tier1_version,
    +      tier2_gem: tier2_name,
    +      tier2_version: tier2_version,
    +      ruby_series: ruby_series
    +    ),
    +    tier1_gemfile: appraisal_modular_gemfile_path(gem_name: tier1_name, version: tier1_version, ruby_series: ruby_series),
    +    tier2_gemfile: tier2_name ? appraisal_modular_gemfile_path(gem_name: tier2_name, version: tier2_version, ruby_series: ruby_series) : nil,
    +    x_std_libs_gemfile: File.join("gemfiles", "modular", "x_std_libs", ruby_series.to_s, "libs.gemfile"),
    +    ruby_series: ruby_series.to_s
    +  }
    +end
    +
    +
    + +
    +

    + + .appraisal_matrix_fresh?(matrix, now: Time.now.to_i) ⇒ Boolean + + + + + +

    +
    + + + +
    +
    +
    + +

    Returns:

    +
      + +
    • + + + (Boolean) + + + +
    • + +
    + +
    + + + + +
    +
    +
    +
    +2601
    +2602
    +2603
    +2604
    +2605
    +2606
    +2607
    +
    +
    # File 'lib/kettle/jem.rb', line 2601
    +
    +def appraisal_matrix_fresh?(matrix, now: Time.now.to_i)
    +  resolved_at = (matrix || {})[:resolved_at] || (matrix || {})["resolved_at"]
    +  return false unless resolved_at
    +
    +  ttl = (matrix || {})[:freshness_ttl] || (matrix || {})["freshness_ttl"] || APPRAISAL_DEFAULT_FRESHNESS_TTL
    +  (now.to_i - resolved_at.to_i) < ttl.to_i
    +end
    +
    +
    + +
    +

    + + .appraisal_matrix_has_versions?(matrix) ⇒ Boolean + + + + + +

    +
    + + + +
    +
    +
    + +

    Returns:

    +
      + +
    • + + + (Boolean) + + + +
    • + +
    + +
    + + + + +
    +
    +
    +
    +2594
    +2595
    +2596
    +2597
    +2598
    +2599
    +
    +
    # File 'lib/kettle/jem.rb', line 2594
    +
    +def appraisal_matrix_has_versions?(matrix)
    +  gems = deep_string_key_hash(matrix || {}).fetch("gems", {})
    +  %w[tier1 tier2].any? do |tier|
    +    Array(gems[tier]).any? { |gem_config| Array(gem_config["versions"]).any? }
    +  end
    +end
    +
    +
    + +
    +

    + + .appraisal_minor_key(version) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +2438
    +2439
    +2440
    +2441
    +
    +
    # File 'lib/kettle/jem.rb', line 2438
    +
    +def appraisal_minor_key(version)
    +  segments = Gem::Version.new(version.to_s).segments
    +  "#{segments[0]}.#{segments[1] || 0}"
    +end
    +
    +
    + +
    +

    + + .appraisal_minor_versions_by_major(versions) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +2346
    +2347
    +2348
    +2349
    +2350
    +2351
    +2352
    +2353
    +2354
    +2355
    +2356
    +2357
    +2358
    +2359
    +2360
    +
    +
    # File 'lib/kettle/jem.rb', line 2346
    +
    +def appraisal_minor_versions_by_major(versions)
    +  versions.map do |version|
    +    gem_version = Gem::Version.new(version)
    +    segments = gem_version.segments
    +    {
    +      major: segments[0],
    +      minor: "#{segments[0]}.#{segments[1] || 0}"
    +    }
    +  end.uniq.group_by { |entry| entry.fetch(:major) }.map do |major, entries|
    +    {
    +      major: major,
    +      minors: entries.map { |entry| entry.fetch(:minor) }.sort_by { |minor| Gem::Version.new(minor) }
    +    }
    +  end.sort_by { |entry| entry.fetch(:major) }
    +end
    +
    +
    + +
    +

    + + .appraisal_minor_versions_to_buckets(minor_versions) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +2416
    +2417
    +2418
    +2419
    +2420
    +2421
    +2422
    +2423
    +2424
    +2425
    +2426
    +2427
    +2428
    +2429
    +2430
    +2431
    +2432
    +2433
    +2434
    +2435
    +2436
    +
    +
    # File 'lib/kettle/jem.rb', line 2416
    +
    +def appraisal_minor_versions_to_buckets(minor_versions)
    +  by_major = minor_versions.group_by { |minor| minor.split(".").first.to_i }
    +  buckets = []
    +  ranges = {}
    +  by_major.each do |major, minors|
    +    sorted = minors.sort_by { |minor| Gem::Version.new(minor) }
    +    sorted.each_with_index do |minor, index|
    +      bucket = (index == sorted.length - 1) ? "r#{major}" : "r#{major}.#{[sorted[index + 1].split(".").last.to_i - 1, minor.split(".").last.to_i].max}"
    +      next if ranges.key?(bucket)
    +
    +      buckets << bucket
    +      ceiling = if index == sorted.length - 1
    +        "#{major}.99"
    +      else
    +        bucket.split(".").last ? "#{major}.#{bucket.split(".").last}" : "#{major}.99"
    +      end
    +      ranges[bucket] = {floor: Gem::Version.new(minor), ceiling: Gem::Version.new(ceiling)}
    +    end
    +  end
    +  {buckets: buckets.sort_by { |bucket| appraisal_bucket_sort_key(bucket) }, bucket_ranges: ranges}
    +end
    +
    +
    + +
    +

    + + .appraisal_modular_gemfile_content(gem_name:, version:, sub_dependencies: {}) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +2151
    +2152
    +2153
    +2154
    +2155
    +2156
    +2157
    +2158
    +2159
    +2160
    +2161
    +2162
    +2163
    +
    +
    # File 'lib/kettle/jem.rb', line 2151
    +
    +def appraisal_modular_gemfile_content(gem_name:, version:, sub_dependencies: {})
    +  lines = [
    +    "# frozen_string_literal: true",
    +    "",
    +    "# Generated by kettle-jem",
    +    "",
    +    %(gem "#{gem_name}", "#{appraisal_version_requirement(version)}")
    +  ]
    +  sub_dependencies.each do |name, requirement|
    +    lines << %(gem "#{name}", "~> #{requirement}")
    +  end
    +  ensure_trailing_newline(lines.join("\n"))
    +end
    +
    +
    + +
    +

    + + .appraisal_modular_gemfile_path(gem_name:, version:, ruby_series:) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +2147
    +2148
    +2149
    +
    +
    # File 'lib/kettle/jem.rb', line 2147
    +
    +def appraisal_modular_gemfile_path(gem_name:, version:, ruby_series:)
    +  File.join("gemfiles", "modular", gem_name.to_s, ruby_series.to_s, "v#{version}.gemfile")
    +end
    +
    +
    + +
    +

    + + .appraisal_name(tier1_gem:, tier1_version:, ruby_series:, tier2_gem: nil, tier2_version: nil) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +2133
    +2134
    +2135
    +2136
    +2137
    +2138
    +2139
    +2140
    +2141
    +2142
    +2143
    +2144
    +2145
    +
    +
    # File 'lib/kettle/jem.rb', line 2133
    +
    +def appraisal_name(tier1_gem:, tier1_version:, ruby_series:, tier2_gem: nil, tier2_version: nil)
    +  parts = [
    +    APPRAISAL_NAME_PREFIX,
    +    appraisal_gem_abbreviation(tier1_gem),
    +    appraisal_format_version(tier1_version)
    +  ]
    +  unless tier2_gem.to_s.empty?
    +    parts << appraisal_gem_abbreviation(tier2_gem)
    +    parts << appraisal_format_version(tier2_version)
    +  end
    +  parts << ruby_series.to_s
    +  parts.join("-")
    +end
    +
    +
    + +
    +

    + + .appraisal_names(content) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +4646
    +4647
    +4648
    +
    +
    # File 'lib/kettle/jem.rb', line 4646
    +
    +def appraisal_names(content)
    +  appraisal_call_records(content).map { |record| record.fetch(:name) }
    +end
    +
    +
    + +
    +

    + + .appraisal_next_seam_ruby(version, min_ruby, all_versions, version_min_rubies) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +2471
    +2472
    +2473
    +2474
    +2475
    +2476
    +2477
    +2478
    +2479
    +2480
    +2481
    +
    +
    # File 'lib/kettle/jem.rb', line 2471
    +
    +def appraisal_next_seam_ruby(version, min_ruby, all_versions, version_min_rubies)
    +  found = false
    +  all_versions.sort_by { |candidate| Gem::Version.new(candidate) }.each do |candidate|
    +    found ||= Gem::Version.new(candidate) >= Gem::Version.new(version)
    +    next unless found
    +
    +    candidate_ruby = version_min_rubies[candidate]
    +    return candidate_ruby if candidate_ruby && candidate_ruby > min_ruby
    +  end
    +  nil
    +end
    +
    +
    + +
    +

    + + .appraisal_normalized_bucket_ranges(bucket_ranges) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +2448
    +2449
    +2450
    +2451
    +2452
    +2453
    +2454
    +2455
    +
    +
    # File 'lib/kettle/jem.rb', line 2448
    +
    +def appraisal_normalized_bucket_ranges(bucket_ranges)
    +  bucket_ranges.transform_values do |range|
    +    {
    +      floor: Gem::Version.new((range[:floor] || range["floor"]).to_s),
    +      ceiling: Gem::Version.new((range[:ceiling] || range["ceiling"]).to_s)
    +    }
    +  end
    +end
    +
    +
    + +
    +

    + + .appraisal_recording_enabled?(config) ⇒ Boolean + + + + + +

    +
    + + + +
    +
    +
    + +

    Returns:

    +
      + +
    • + + + (Boolean) + + + +
    • + +
    + +
    + + + + +
    +
    +
    +
    +13639
    +13640
    +13641
    +13642
    +13643
    +13644
    +
    +
    # File 'lib/kettle/jem.rb', line 13639
    +
    +def appraisal_recording_enabled?(config)
    +  workflows = config["workflows"]
    +  workflows = {} unless workflows.is_a?(Hash)
    +
    +  DecisionPolicy.value_to_boolean(workflows["recording"]) == true
    +end
    +
    +
    + +
    +

    + + .appraisal_resolve_sub_dependencies(parent_gem:, parent_version:, parent_versions:, dependency_versions:, ruby_min: nil, excluded_gems: []) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +2511
    +2512
    +2513
    +2514
    +2515
    +2516
    +2517
    +2518
    +2519
    +2520
    +2521
    +2522
    +2523
    +2524
    +2525
    +2526
    +2527
    +2528
    +2529
    +2530
    +2531
    +2532
    +2533
    +
    +
    # File 'lib/kettle/jem.rb', line 2511
    +
    +def appraisal_resolve_sub_dependencies(parent_gem:, parent_version:, parent_versions:, dependency_versions:, ruby_min: nil, excluded_gems: [])
    +  parent = appraisal_latest_version_matching(parent_versions, parent_version)
    +  return {} unless parent
    +
    +  ruby_floor = Gem::Version.new(ruby_min.to_s) unless ruby_min.to_s.empty?
    +  excluded = excluded_gems.map(&:to_s)
    +  Array(parent[:runtime_dependencies] || parent["runtime_dependencies"]).each_with_object({}) do |dependency, resolved|
    +    name = (dependency[:name] || dependency["name"]).to_s
    +    next if name.empty? || excluded.include?(name)
    +
    +    requirement = begin
    +      Gem::Requirement.new(dependency[:requirements] || dependency["requirements"] || ">= 0")
    +    rescue ArgumentError
    +      Gem::Requirement.default
    +    end
    +    selected = appraisal_select_dependency_version(
    +      Array(dependency_versions[name] || dependency_versions[name.to_sym]),
    +      requirement: requirement,
    +      ruby_min: ruby_floor
    +    )
    +    resolved[name] = selected if selected
    +  end
    +end
    +
    +
    + +
    +

    + + .appraisal_ruby_series(version_metadata, project_min_ruby: nil) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +2377
    +2378
    +2379
    +2380
    +2381
    +2382
    +2383
    +2384
    +2385
    +2386
    +
    +
    # File 'lib/kettle/jem.rb', line 2377
    +
    +def appraisal_ruby_series(, project_min_ruby: nil)
    +  floors = appraisal_find_ruby_seams().map { |seam| seam.fetch(:min_ruby) }
    +  if project_min_ruby
    +    floor = Gem::Version.new(project_min_ruby.to_s)
    +    floors.reject! { |version| version < floor }
    +    floors << floor unless floors.include?(floor)
    +  end
    +  floors = [Gem::Version.new("3.2")] if floors.empty?
    +  appraisal_minor_versions_to_buckets(floors.map { |version| appraisal_minor_key(version) }.uniq.sort)
    +end
    +
    +
    + +
    +

    + + .appraisal_ruby_version(value) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +6165
    +6166
    +6167
    +6168
    +6169
    +6170
    +6171
    +6172
    +6173
    +6174
    +
    +
    # File 'lib/kettle/jem.rb', line 6165
    +
    +def appraisal_ruby_version(value)
    +  parts = value.to_s.split("-")
    +  return unless parts.length == 3 && parts.first == "ruby"
    +
    +  major = Integer(parts[1], exception: false)
    +  minor = Integer(parts[2], exception: false)
    +  return unless major && minor
    +
    +  "#{major}.#{minor}"
    +end
    +
    +
    + +
    +

    + + .appraisal_scaffold_config(gemspec_content:, existing_config: {}, exclusions: [], default_mode: "semver", freshness_ttl: APPRAISAL_DEFAULT_FRESHNESS_TTL) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +2577
    +2578
    +2579
    +2580
    +2581
    +2582
    +2583
    +2584
    +2585
    +2586
    +2587
    +2588
    +2589
    +2590
    +2591
    +2592
    +
    +
    # File 'lib/kettle/jem.rb', line 2577
    +
    +def appraisal_scaffold_config(gemspec_content:, existing_config: {}, exclusions: [], default_mode: "semver", freshness_ttl: APPRAISAL_DEFAULT_FRESHNESS_TTL)
    +  excluded = exclusions.map(&:to_s).to_set
    +  runtime_dependencies = appraisal_extract_runtime_dependencies(gemspec_content)
    +  tier1 = runtime_dependencies.reject { |name| excluded.include?(name) }.map { |name| {"name" => name} }
    +  config = deep_string_key_hash(existing_config)
    +  matrix = config["appraisal_matrix"] || {}
    +  gems = matrix["gems"] || {}
    +
    +  matrix["mode"] ||= default_mode
    +  matrix["freshness_ttl"] ||= freshness_ttl
    +  gems["tier1"] = tier1
    +  gems["tier2"] ||= []
    +  matrix["gems"] = gems
    +  config["appraisal_matrix"] = matrix
    +  config
    +end
    +
    +
    + +
    +

    + + .appraisal_select_dependency_version(version_metadata, requirement:, ruby_min:) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +2543
    +2544
    +2545
    +2546
    +2547
    +2548
    +2549
    +2550
    +2551
    +2552
    +2553
    +2554
    +2555
    +2556
    +2557
    +2558
    +
    +
    # File 'lib/kettle/jem.rb', line 2543
    +
    +def appraisal_select_dependency_version(, requirement:, ruby_min:)
    +  compatible = .select do |entry|
    +    number = (entry[:number] || entry["number"]).to_s
    +    !number.empty? && requirement.satisfied_by?(Gem::Version.new(number))
    +  end.sort_by { |entry| Gem::Version.new((entry[:number] || entry["number"]).to_s) }
    +  return if compatible.empty?
    +
    +  if ruby_min
    +    selected = compatible.reverse.find do |entry|
    +      min_ruby = entry[:min_ruby] || entry["min_ruby"]
    +      min_ruby.to_s.empty? || Gem::Version.new(min_ruby.to_s) <= ruby_min
    +    end
    +    return (selected || compatible.first).then { |entry| entry[:number] || entry["number"] }
    +  end
    +  compatible.last.then { |entry| entry[:number] || entry["number"] }
    +end
    +
    +
    + +
    +

    + + .appraisal_select_versions(version_metadata, mode:, requirements: nil) ⇒ Object + + + + + +

    +
    + + + +
    +
    +
    + +

    Raises:

    +
      + +
    • + + + (ArgumentError) + + + +
    • + +
    + +
    + + + + +
    +
    +
    +
    +2257
    +2258
    +2259
    +2260
    +2261
    +2262
    +2263
    +2264
    +2265
    +2266
    +2267
    +2268
    +2269
    +2270
    +2271
    +2272
    +2273
    +2274
    +2275
    +2276
    +2277
    +2278
    +2279
    +2280
    +2281
    +2282
    +2283
    +
    +
    # File 'lib/kettle/jem.rb', line 2257
    +
    +def appraisal_select_versions(, mode:, requirements: nil)
    +  mode = mode.to_s
    +  raise ArgumentError, "invalid appraisal version selection mode: #{mode}" unless APPRAISAL_VERSION_SELECTION_MODES.include?(mode)
    +
    +  versions = appraisal_filtered_versions(, requirements: requirements)
    +  return versions if mode == "patch"
    +
    +  by_major = appraisal_minor_versions_by_major(versions)
    +  return [] if by_major.empty?
    +
    +  current_major = by_major.last.fetch(:major)
    +  case mode
    +  when "major"
    +    by_major.map { |entry| entry.fetch(:minors).last }
    +  when "minor"
    +    by_major.flat_map { |entry| entry.fetch(:minors) }
    +  when "minor-minmax"
    +    by_major.flat_map do |entry|
    +      minors = entry.fetch(:minors)
    +      (entry.fetch(:major) < current_major) ? [minors.first, minors.last].uniq : minors
    +    end
    +  when "semver"
    +    by_major.flat_map do |entry|
    +      (entry.fetch(:major) < current_major) ? [entry.fetch(:minors).last] : entry.fetch(:minors)
    +    end
    +  end
    +end
    +
    +
    + +
    +

    + + .appraisal_sort_versions(values) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +2661
    +2662
    +2663
    +
    +
    # File 'lib/kettle/jem.rb', line 2661
    +
    +def appraisal_sort_versions(values)
    +  values.compact.map(&:to_s).reject(&:empty?).uniq.sort_by { |version| Gem::Version.new(version) }
    +end
    +
    +
    + +
    +

    + + .appraisal_stale_gemfile_paths(existing_paths:, current_entries:) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +2560
    +2561
    +2562
    +2563
    +2564
    +2565
    +2566
    +2567
    +2568
    +
    +
    # File 'lib/kettle/jem.rb', line 2560
    +
    +def appraisal_stale_gemfile_paths(existing_paths:, current_entries:)
    +  current_names = current_entries.map { |entry| (entry[:name] || entry["name"]).to_s }.to_set
    +  existing_paths.map(&:to_s).select do |path|
    +    basename = File.basename(path, ".gemfile")
    +    path.start_with?("gemfiles/#{APPRAISAL_NAME_PREFIX}-") &&
    +      path.end_with?(".gemfile") &&
    +      !current_names.include?(basename)
    +  end.sort
    +end
    +
    +
    + +
    +

    + + .appraisal_time_ago(timestamp, now: Time.now.to_i) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +2609
    +2610
    +2611
    +2612
    +2613
    +2614
    +2615
    +2616
    +2617
    +
    +
    # File 'lib/kettle/jem.rb', line 2609
    +
    +def appraisal_time_ago(timestamp, now: Time.now.to_i)
    +  return "unknown" unless timestamp
    +
    +  seconds = now.to_i - timestamp.to_i
    +  return "#{seconds / 60}m" if seconds < 3600
    +  return "#{seconds / 3600}h" if seconds < 86_400
    +
    +  "#{seconds / 86_400}d"
    +end
    +
    +
    + +
    +

    + + .appraisal_version_min_ruby_map(all_versions, seams) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +2457
    +2458
    +2459
    +2460
    +2461
    +2462
    +2463
    +2464
    +2465
    +2466
    +2467
    +2468
    +2469
    +
    +
    # File 'lib/kettle/jem.rb', line 2457
    +
    +def appraisal_version_min_ruby_map(all_versions, seams)
    +  sorted_seams = seams.sort_by { |seam| Gem::Version.new(seam[:version] || seam["version"]) }
    +  seam_index = 0
    +  current = nil
    +  all_versions.sort_by { |version| Gem::Version.new(version) }.each_with_object({}) do |version, map|
    +    while seam_index < sorted_seams.length && Gem::Version.new(sorted_seams[seam_index][:version] || sorted_seams[seam_index]["version"]) <= Gem::Version.new(version)
    +      current = Gem::Version.new((sorted_seams[seam_index][:min_ruby] || sorted_seams[seam_index]["min_ruby"]).to_s)
    +      current = [current, DEFAULT_TEST_MINIMUM_RUBY].max
    +      seam_index += 1
    +    end
    +    map[version] = current if current
    +  end
    +end
    +
    +
    + +
    +

    + + .appraisal_version_requirement(version) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +2165
    +2166
    +2167
    +2168
    +
    +
    # File 'lib/kettle/jem.rb', line 2165
    +
    +def appraisal_version_requirement(version)
    +  segments = version.to_s.split(".")
    +  (segments.length >= 3) ? "~> #{version}" : "~> #{version}.0"
    +end
    +
    +
    + +
    +

    + + .appraisal_workflow_groups(matrix_entries, bucket_ranges:, exec_cmd: "kettle-test") ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +2194
    +2195
    +2196
    +2197
    +2198
    +2199
    +2200
    +2201
    +2202
    +2203
    +2204
    +2205
    +2206
    +2207
    +2208
    +2209
    +2210
    +2211
    +2212
    +2213
    +2214
    +2215
    +2216
    +2217
    +
    +
    # File 'lib/kettle/jem.rb', line 2194
    +
    +def appraisal_workflow_groups(matrix_entries, bucket_ranges:, exec_cmd: "kettle-test")
    +  grouped = Hash.new { |hash, key| hash[key] = [] }
    +  normalized_ranges = bucket_ranges.transform_values do |range|
    +    {
    +      floor: Gem::Version.new((range[:floor] || range["floor"]).to_s),
    +      ceiling: Gem::Version.new((range[:ceiling] || range["ceiling"]).to_s)
    +    }
    +  end
    +  matrix_entries.each do |entry|
    +    ruby_series = entry[:ruby_series] || entry["ruby_series"]
    +    range = normalized_ranges[ruby_series]
    +    next unless range
    +
    +    lifecycle = appraisal_workflow_lifecycle(range.fetch(:floor))
    +    grouped[lifecycle] << {
    +      ruby: appraisal_workflow_ruby(range.fetch(:floor), lifecycle),
    +      appraisal: entry[:name] || entry["name"],
    +      exec_cmd: exec_cmd,
    +      rubygems: "latest",
    +      bundler: "latest"
    +    }
    +  end
    +  grouped.transform_values { |entries| entries.sort_by { |entry| entry.fetch(:appraisal).to_s } }
    +end
    +
    +
    + +
    +

    + + .appraisal_workflow_lifecycle(ruby_floor) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +2233
    +2234
    +2235
    +2236
    +2237
    +2238
    +
    +
    # File 'lib/kettle/jem.rb', line 2233
    +
    +def appraisal_workflow_lifecycle(ruby_floor)
    +  APPRAISAL_WORKFLOW_LIFECYCLE_RANGES.each do |name, range|
    +    return name if ruby_floor.between?(range.fetch(:min), range.fetch(:max))
    +  end
    +  (ruby_floor < APPRAISAL_WORKFLOW_LIFECYCLE_RANGES.fetch("ancient").fetch(:min)) ? "ancient" : "current"
    +end
    +
    +
    + +
    +

    + + .appraisal_workflow_ruby(ruby_floor, lifecycle) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +2240
    +2241
    +2242
    +2243
    +2244
    +2245
    +
    +
    # File 'lib/kettle/jem.rb', line 2240
    +
    +def appraisal_workflow_ruby(ruby_floor, lifecycle)
    +  return "ruby" if lifecycle == "current"
    +
    +  segments = ruby_floor.segments
    +  "#{segments[0]}.#{segments[1] || 0}"
    +end
    +
    +
    + +
    +

    + + .appraisal_workflow_yaml_snippets(matrix_entries, bucket_ranges:, exec_cmd: "kettle-test") ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +2219
    +2220
    +2221
    +2222
    +2223
    +2224
    +2225
    +2226
    +2227
    +2228
    +2229
    +2230
    +2231
    +
    +
    # File 'lib/kettle/jem.rb', line 2219
    +
    +def appraisal_workflow_yaml_snippets(matrix_entries, bucket_ranges:, exec_cmd: "kettle-test")
    +  appraisal_workflow_groups(matrix_entries, bucket_ranges: bucket_ranges, exec_cmd: exec_cmd).transform_values do |entries|
    +    lines = ["strategy:", "  matrix:", "    include:"]
    +    entries.each do |entry|
    +      lines << %(      - ruby: "#{entry.fetch(:ruby)}")
    +      lines << %(        appraisal: "#{entry.fetch(:appraisal)}")
    +      lines << %(        exec_cmd: "#{entry.fetch(:exec_cmd)}")
    +      lines << %(        rubygems: "#{entry.fetch(:rubygems)}")
    +      lines << %(        bundler: "#{entry.fetch(:bundler)}")
    +    end
    +    lines.join("\n")
    +  end
    +end
    +
    +
    + +
    +

    + + .appraisal_x_stdlib_eval_gemfile_call(block) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +6871
    +6872
    +6873
    +6874
    +6875
    +
    +
    # File 'lib/kettle/jem.rb', line 6871
    +
    +def appraisal_x_stdlib_eval_gemfile_call(block)
    +  ruby_call_records(block, :eval_gemfile).find do |call|
    +    ruby_string_argument(call).to_s.start_with?("modular/x_std_libs")
    +  end
    +end
    +
    +
    + +
    +

    + + .appraisal_x_stdlib_exclusions(template_content) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +2247
    +2248
    +2249
    +2250
    +2251
    +2252
    +2253
    +2254
    +2255
    +
    +
    # File 'lib/kettle/jem.rb', line 2247
    +
    +def appraisal_x_stdlib_exclusions(template_content)
    +  gems = ruby_call_records(template_content, :eval_gemfile).filter_map do |call|
    +    path = ruby_string_argument(call).to_s
    +    next unless path.start_with?("../")
    +
    +    path.delete_prefix("../").split("/").first
    +  end
    +  (gems + APPRAISAL_ALWAYS_EXCLUDED_GEMS).uniq.sort
    +end
    +
    +
    + +
    +

    + + .appraisals_policy_operations(template_content, original, final, request) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +4515
    +4516
    +4517
    +4518
    +4519
    +4520
    +4521
    +4522
    +4523
    +4524
    +4525
    +4526
    +4527
    +4528
    +4529
    +4530
    +4531
    +4532
    +4533
    +4534
    +4535
    +
    +
    # File 'lib/kettle/jem.rb', line 4515
    +
    +def appraisals_policy_operations(template_content, original, final, request)
    +  package_name = runtime_context_value(request, :package, :name).to_s
    +  min_ruby = minimum_ruby_token(runtime_context_value(request, :ci, :test_min_ruby) || runtime_context_value(request, :rubygems, :min_ruby))
    +  source = "#{template_content}\n#{original}"
    +  [
    +    {
    +      operation: "merge_appraisal_blocks",
    +      inserted_appraisals: (appraisal_names(template_content) - appraisal_names(original)).sort,
    +      preserved_destination_appraisals: (appraisal_names(original) - appraisal_names(template_content) & appraisal_names(final)).sort
    +    },
    +    {
    +      operation: "delete_self_dependency_declarations",
    +      deleted_dependency_count: [gemfile_dependency_names(source).count(package_name) - gemfile_dependency_names(final).count(package_name), 0].max
    +    },
    +    {
    +      operation: "prune_minimum_ruby_appraisals",
    +      min_ruby: min_ruby,
    +      deleted_appraisals: (ruby_appraisal_names_below(original, min_ruby) - appraisal_names(final)).sort
    +    }
    +  ]
    +end
    +
    +
    + +
    +

    + + .author_facts(config, env, gemspec_metadata: {}, copyright: {}) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +10382
    +10383
    +10384
    +10385
    +10386
    +10387
    +10388
    +10389
    +10390
    +10391
    +10392
    +10393
    +10394
    +10395
    +10396
    +10397
    +10398
    +10399
    +10400
    +10401
    +10402
    +
    +
    # File 'lib/kettle/jem.rb', line 10382
    +
    +def author_facts(config, env, gemspec_metadata: {}, copyright: {})
    +  token_config = token_config_values(config)
    +  author_config = token_config["author"].is_a?(Hash) ? token_config["author"] : {}
    +  derived_name = Array([:authors]).map(&:to_s).find { |value| present_template_token_value?(value) }
    +  derived_email = Array([:email]).map(&:to_s).find { |value| present_template_token_value?(value) }
    +  name = preferred_template_token_value(derived_name, author_config["name"], env, "KJ_AUTHOR_NAME").to_s
    +  email = preferred_template_token_value(derived_email, author_config["email"], env, "KJ_AUTHOR_EMAIL").to_s
    +  given_names = preferred_template_token_value(author_given_names(name), author_config["given_names"], env, "KJ_AUTHOR_GIVEN_NAMES")
    +  family_names = preferred_template_token_value(author_family_names(name), author_config["family_names"], env, "KJ_AUTHOR_FAMILY_NAMES")
    +  domain = preferred_template_token_value(email.split("@", 2)[1], author_config["domain"], env, "KJ_AUTHOR_DOMAIN")
    +  orcid = preferred_template_token_value(nil, author_config["orcid"], env, "KJ_AUTHOR_ORCID")
    +  compact_hash(
    +    name: name,
    +    names: author_names(, copyright, name),
    +    given_names: given_names.to_s,
    +    family_names: family_names.to_s,
    +    email: email,
    +    domain: domain.to_s,
    +    orcid: orcid.to_s
    +  )
    +end
    +
    +
    + +
    +

    + + .author_family_names(name) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +12416
    +12417
    +12418
    +12419
    +12420
    +12421
    +
    +
    # File 'lib/kettle/jem.rb', line 12416
    +
    +def author_family_names(name)
    +  parts = name.to_s.strip.split(/\s+/)
    +  return "" if parts.size < 2
    +
    +  parts[-1]
    +end
    +
    +
    + +
    +

    + + .author_given_names(name) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +12409
    +12410
    +12411
    +12412
    +12413
    +12414
    +
    +
    # File 'lib/kettle/jem.rb', line 12409
    +
    +def author_given_names(name)
    +  parts = name.to_s.strip.split(/\s+/)
    +  return "" if parts.size < 2
    +
    +  parts[0...-1].join(" ")
    +end
    +
    +
    + +
    +

    + + .author_names(gemspec_metadata, copyright, primary_name) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +10443
    +10444
    +10445
    +10446
    +10447
    +10448
    +10449
    +
    +
    # File 'lib/kettle/jem.rb', line 10443
    +
    +def author_names(, copyright, primary_name)
    +  names = Array([:authors]).map(&:to_s)
    +  names = names.select { |name| present_template_token_value?(name) }
    +  names = copyright_author_names(copyright) if names.empty?
    +  names = [primary_name.to_s] if names.empty?
    +  names.map(&:strip).reject(&:empty?).uniq
    +end
    +
    +
    + +
    +

    + + .author_template_tokens(author) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +10429
    +10430
    +10431
    +10432
    +10433
    +10434
    +10435
    +10436
    +10437
    +10438
    +10439
    +10440
    +10441
    +
    +
    # File 'lib/kettle/jem.rb', line 10429
    +
    +def author_template_tokens(author)
    +  names = Array(author[:names]).map(&:to_s).reject(&:empty?)
    +  names = [author[:name].to_s] if names.empty?
    +  {
    +    "KJ|AUTHOR:NAME" => author[:name].to_s,
    +    "KJ|AUTHOR:NAMES" => ruby_array_literal(names),
    +    "KJ|AUTHOR:GIVEN_NAMES" => author[:given_names].to_s,
    +    "KJ|AUTHOR:FAMILY_NAMES" => author[:family_names].to_s,
    +    "KJ|AUTHOR:EMAIL" => author[:email].to_s,
    +    "KJ|AUTHOR:DOMAIN" => author[:domain].to_s,
    +    "KJ|AUTHOR:ORCID" => author[:orcid].to_s
    +  }
    +end
    +
    +
    + +
    +

    + + .bash_merge_options(recipe) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +7036
    +7037
    +7038
    +7039
    +7040
    +7041
    +7042
    +7043
    +7044
    +7045
    +7046
    +7047
    +
    +
    # File 'lib/kettle/jem.rb', line 7036
    +
    +def bash_merge_options(recipe)
    +  options = {
    +    preference: (recipe.dig(:template_preference, :preference) || "destination").to_sym,
    +    add_template_only_nodes: true,
    +    freeze_token: recipe.dig(:template_preference, :freeze_token) || "kettle-jem"
    +  }
    +  if !recipe.dig(:template_preference, :add_template_only_nodes).nil?
    +    configured = DecisionPolicy.value_to_boolean(recipe.dig(:template_preference, :add_template_only_nodes))
    +    options[:add_template_only_nodes] = configured unless configured.nil?
    +  end
    +  options
    +end
    +
    +
    + +
    +

    + + .build_changelog_unreleased_section(heading, items) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +4181
    +4182
    +4183
    +4184
    +4185
    +4186
    +4187
    +4188
    +4189
    +4190
    +4191
    +4192
    +4193
    +
    +
    # File 'lib/kettle/jem.rb', line 4181
    +
    +def build_changelog_unreleased_section(heading, items)
    +  lines = [heading]
    +  CHANGELOG_STANDARD_HEADINGS.each do |standard_heading|
    +    lines << ""
    +    lines << standard_heading
    +    lines << ""
    +    section_items = items[standard_heading].to_a.dup
    +    section_items.pop while section_items.any? && section_items.last.to_s.strip.empty?
    +    lines.concat(section_items) if section_items.any?
    +  end
    +  lines << ""
    +  lines
    +end
    +
    +
    + +
    +

    + + .changed_files_from_recipe_reports(recipe_reports) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +3424
    +3425
    +3426
    +3427
    +3428
    +3429
    +3430
    +3431
    +
    +
    # File 'lib/kettle/jem.rb', line 3424
    +
    +def changed_files_from_recipe_reports(recipe_reports)
    +  latest_by_path = {}
    +  recipe_reports.each do |report|
    +    path = report[:relative_path]
    +    latest_by_path[path] = report if path
    +  end
    +  latest_by_path.values.filter_map { |report| report[:relative_path] if report[:changed] }.uniq.sort
    +end
    +
    +
    + +
    +

    + + .changelog_bullet_line?(line) ⇒ Boolean + + + + + +

    +
    + + + +
    +
    +
    + +

    Returns:

    +
      + +
    • + + + (Boolean) + + + +
    • + +
    + +
    + + + + +
    +
    +
    +
    +4258
    +4259
    +4260
    +4261
    +
    +
    # File 'lib/kettle/jem.rb', line 4258
    +
    +def changelog_bullet_line?(line)
    +  stripped = line.to_s.lstrip
    +  stripped.start_with?("- ", "* ")
    +end
    +
    +
    + +
    +

    + + .changelog_coverage_kloc(section) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +4972
    +4973
    +4974
    +4975
    +4976
    +4977
    +4978
    +4979
    +
    +
    # File 'lib/kettle/jem.rb', line 4972
    +
    +def changelog_coverage_kloc(section)
    +  return if section.to_s.empty?
    +
    +  match = section.to_s.match(/-\s*COVERAGE:\s*.+--\s*\d+\/(\d+)\s+lines/i)
    +  return unless match
    +
    +  format("%.3f", match[1].to_i.to_f / 1000.0)
    +end
    +
    +
    + +
    +

    + + .changelog_template_header(lines, unreleased_index) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +4122
    +4123
    +4124
    +4125
    +4126
    +
    +
    # File 'lib/kettle/jem.rb', line 4122
    +
    +def changelog_template_header(lines, unreleased_index)
    +  header = lines[0...unreleased_index].to_a
    +  header.pop while header.any? && header.last.to_s.strip.empty?
    +  header
    +end
    +
    +
    + +
    +

    + + .changelog_transfer_entries(template_root) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +4195
    +4196
    +4197
    +4198
    +4199
    +4200
    +4201
    +4202
    +4203
    +4204
    +4205
    +4206
    +4207
    +4208
    +4209
    +4210
    +4211
    +4212
    +4213
    +4214
    +4215
    +4216
    +
    +
    # File 'lib/kettle/jem.rb', line 4195
    +
    +def changelog_transfer_entries(template_root)
    +  path = File.join(template_root, TRANSFER_CHANGELOG_TEMPLATE_PATH)
    +  return [] unless File.file?(path)
    +
    +  lines = markdown_source_lines(File.read(path))
    +  entries = []
    +  index = 0
    +  while index < lines.length
    +    line = lines.fetch(index)
    +    unless changelog_bullet_line?(line)
    +      index += 1
    +      next
    +    end
    +
    +    item_lines, index = collect_changelog_list_item(lines, index)
    +    key = changelog_transfer_key(item_lines.first)
    +    next unless key
    +
    +    entries << {key: key, lines: item_lines}
    +  end
    +  entries
    +end
    +
    +
    + +
    +

    + + .changelog_transfer_key(line) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +4218
    +4219
    +4220
    +4221
    +
    +
    # File 'lib/kettle/jem.rb', line 4218
    +
    +def changelog_transfer_key(line)
    +  key = line.to_s.lstrip.delete_prefix("- ").delete_prefix("* ").split(/\s+-\s+/, 2).first.to_s
    +  key.match?(/\Akettle-jem-template-\d{8}-\d{3}\z/) ? key : nil
    +end
    +
    +
    + +
    +

    + + .changelog_transfer_keys(content) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +4254
    +4255
    +4256
    +
    +
    # File 'lib/kettle/jem.rb', line 4254
    +
    +def changelog_transfer_keys(content)
    +  content.to_s.scan(/\bkettle-jem-template-\d{8}-\d{3}\b/).to_set
    +end
    +
    +
    + +
    +

    + + .changelog_unreleased_end_index(lines, unreleased_index) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +4139
    +4140
    +4141
    +4142
    +4143
    +4144
    +4145
    +4146
    +4147
    +4148
    +4149
    +4150
    +
    +
    # File 'lib/kettle/jem.rb', line 4139
    +
    +def changelog_unreleased_end_index(lines, unreleased_index)
    +  index = unreleased_index + 1
    +  while index < lines.length
    +    line = lines.fetch(index)
    +    # Markdown link-reference definitions are footer content, not Unreleased section body.
    +    return index if markdown_link_reference_definition_line?(line)
    +    return index if line.start_with?("# ") || (line.start_with?("## ") && !changelog_unreleased_heading_line?(line))
    +
    +    index += 1
    +  end
    +  lines.length
    +end
    +
    +
    + +
    +

    + + .changelog_unreleased_heading?(heading_text) ⇒ Boolean + + + + + +

    +
    + + + +
    +
    +
    + +

    Returns:

    +
      + +
    • + + + (Boolean) + + + +
    • + +
    + +
    + + + + +
    +
    +
    +
    +4290
    +4291
    +4292
    +4293
    +4294
    +
    +
    # File 'lib/kettle/jem.rb', line 4290
    +
    +def changelog_unreleased_heading?(heading_text)
    +  text = heading_text.to_s.strip
    +  text = text[1...-1] if text.start_with?("[") && text.end_with?("]")
    +  text.casecmp("Unreleased").zero?
    +end
    +
    +
    + +
    +

    + + .changelog_unreleased_heading_line?(line) ⇒ Boolean + + + + + +

    +
    + + + +
    +
    +
    + +

    Returns:

    +
      + +
    • + + + (Boolean) + + + +
    • + +
    + +
    + + + + +
    +
    +
    +
    +4132
    +4133
    +4134
    +4135
    +4136
    +4137
    +
    +
    # File 'lib/kettle/jem.rb', line 4132
    +
    +def changelog_unreleased_heading_line?(line)
    +  text = line.to_s.strip
    +  return false unless text.start_with?("## ")
    +
    +  changelog_unreleased_heading?(text.delete_prefix("## ").strip)
    +end
    +
    +
    + +
    +

    + + .changelog_unreleased_items(body_lines) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +4156
    +4157
    +4158
    +4159
    +4160
    +4161
    +4162
    +4163
    +4164
    +4165
    +4166
    +4167
    +4168
    +4169
    +4170
    +4171
    +4172
    +4173
    +4174
    +4175
    +4176
    +4177
    +4178
    +4179
    +
    +
    # File 'lib/kettle/jem.rb', line 4156
    +
    +def changelog_unreleased_items(body_lines)
    +  items = {}
    +  heading = nil
    +  index = 0
    +  while index < body_lines.length
    +    line = body_lines.fetch(index)
    +    if line.start_with?("### ")
    +      heading = line.strip
    +      items[heading] ||= []
    +      index += 1
    +      next
    +    end
    +
    +    if changelog_bullet_line?(line)
    +      lines, index = collect_changelog_list_item(body_lines, index)
    +      items[heading] ||= []
    +      items[heading].concat(lines)
    +      next
    +    end
    +
    +    index += 1
    +  end
    +  items
    +end
    +
    +
    + +
    +

    + + .changelog_unreleased_line_index(lines) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +4128
    +4129
    +4130
    +
    +
    # File 'lib/kettle/jem.rb', line 4128
    +
    +def changelog_unreleased_line_index(lines)
    +  lines.index { |line| changelog_unreleased_heading_line?(line) }
    +end
    +
    +
    + +
    +

    + + .changelog_version_heading_line?(line, version) ⇒ Boolean + + + + + +

    +
    + + + +
    +
    +
    + +

    Returns:

    +
      + +
    • + + + (Boolean) + + + +
    • + +
    + +
    + + + + +
    +
    +
    +
    +4963
    +4964
    +4965
    +4966
    +4967
    +4968
    +4969
    +4970
    +
    +
    # File 'lib/kettle/jem.rb', line 4963
    +
    +def changelog_version_heading_line?(line, version)
    +  text = line.to_s.strip
    +  return false unless text.start_with?("## ")
    +
    +  heading = text.delete_prefix("## ").strip
    +  heading = heading[1...heading.index("]")] if heading.start_with?("[") && heading.include?("]")
    +  heading == version || heading.start_with?("#{version} ")
    +end
    +
    +
    + +
    +

    + + .classify_namespace(name) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +13689
    +13690
    +13691
    +
    +
    # File 'lib/kettle/jem.rb', line 13689
    +
    +def classify_namespace(name)
    +  name.to_s.split(/[-_]/).map { |part| part[0].to_s.upcase + part[1..].to_s }.join("::")
    +end
    +
    +
    + +
    +

    + + .codeberg_repo_url(repository, repo_slug, suffix) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +11677
    +11678
    +11679
    +11680
    +11681
    +11682
    +11683
    +11684
    +11685
    +
    +
    # File 'lib/kettle/jem.rb', line 11677
    +
    +def codeberg_repo_url(repository, repo_slug, suffix)
    +  resources = repository[:resource_urls] || {}
    +  return resources[:codeberg_issues_url] if suffix == "issues" && resources[:codeberg_issues_url]
    +  return resources[:codeberg_pulls_url] if suffix == "pulls" && resources[:codeberg_pulls_url]
    +
    +  base = repository[:codeberg_url].to_s
    +  base = "https://codeberg.org/#{repo_slug}" if base.empty?
    +  "#{base}/#{suffix}"
    +end
    +
    +
    + +
    +

    + + .collapse_excess_blank_lines(content) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +11357
    +11358
    +11359
    +11360
    +11361
    +11362
    +11363
    +11364
    +11365
    +11366
    +11367
    +11368
    +
    +
    # File 'lib/kettle/jem.rb', line 11357
    +
    +def collapse_excess_blank_lines(content)
    +  blank_count = 0
    +  content.to_s.lines.filter_map do |line|
    +    if line.strip.empty?
    +      blank_count += 1
    +      next if blank_count > 1
    +    else
    +      blank_count = 0
    +    end
    +    line
    +  end.join
    +end
    +
    +
    + +
    +

    + + .collapse_nested_templating_guards(content) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +5538
    +5539
    +5540
    +5541
    +5542
    +5543
    +5544
    +5545
    +5546
    +5547
    +5548
    +5549
    +
    +
    # File 'lib/kettle/jem.rb', line 5538
    +
    +def collapse_nested_templating_guards(content)
    +  records = nested_templating_guard_records(content)
    +  return content if records.empty?
    +
    +  output = content.to_s
    +  records.sort_by { |record| -record.fetch(:outer_start_line) }.each do |record|
    +    inner_source = output.lines[(record.fetch(:inner_start_line) - 1)..(record.fetch(:inner_end_line) - 1)].join
    +    inner_source = outdent_source(inner_source, 2)
    +    output = replace_source_range_lines(output, record.fetch(:outer_start_line), record.fetch(:outer_end_line), inner_source)
    +  end
    +  output
    +end
    +
    +
    + +
    +

    + + .collect_changelog_list_item(lines, start_index) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +4263
    +4264
    +4265
    +4266
    +4267
    +4268
    +4269
    +4270
    +4271
    +4272
    +4273
    +4274
    +4275
    +4276
    +4277
    +4278
    +4279
    +4280
    +4281
    +4282
    +4283
    +4284
    +4285
    +4286
    +4287
    +4288
    +
    +
    # File 'lib/kettle/jem.rb', line 4263
    +
    +def collect_changelog_list_item(lines, start_index)
    +  line = lines.fetch(start_index).to_s
    +  base_indent = line.length - line.lstrip.length
    +  item_lines = [line.rstrip]
    +  index = start_index + 1
    +  in_fence = false
    +  while index < lines.length
    +    current = lines.fetch(index).to_s
    +    current_indent = current.length - current.lstrip.length
    +    break if !in_fence && current.start_with?("### ")
    +    break if !in_fence && changelog_bullet_line?(current) && current_indent <= base_indent
    +
    +    if current.lstrip.start_with?("```")
    +      in_fence = !in_fence
    +      item_lines << current.rstrip
    +      index += 1
    +      next
    +    end
    +
    +    break unless in_fence || current.strip.empty? || current_indent > base_indent
    +
    +    item_lines << current.rstrip
    +    index += 1
    +  end
    +  [item_lines, index]
    +end
    +
    +
    + +
    +

    + + .collect_yaml_mapping_path_entries(node, path, entries) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +14562
    +14563
    +14564
    +14565
    +14566
    +14567
    +14568
    +14569
    +14570
    +14571
    +14572
    +14573
    +14574
    +14575
    +14576
    +14577
    +14578
    +14579
    +14580
    +14581
    +14582
    +14583
    +14584
    +14585
    +14586
    +14587
    +
    +
    # File 'lib/kettle/jem.rb', line 14562
    +
    +def collect_yaml_mapping_path_entries(node, path, entries)
    +  unless node.is_a?(Psych::Nodes::Mapping)
    +    Array(node.respond_to?(:children) ? node.children : nil).each do |child|
    +      collect_yaml_mapping_path_entries(child, path, entries)
    +    end
    +    return
    +  end
    +
    +  node.children.each_slice(2) do |key_node, value_node|
    +    next unless key_node.is_a?(Psych::Nodes::Scalar)
    +
    +    child_path = path + [key_node.value.to_s]
    +    if value_node.is_a?(Psych::Nodes::Mapping)
    +      entries << {
    +        path: child_path,
    +        start_line: key_node.start_line,
    +        end_line: value_node.end_line
    +      }
    +      collect_yaml_mapping_path_entries(value_node, child_path, entries)
    +    else
    +      Array(value_node.respond_to?(:children) ? value_node.children : nil).each do |child|
    +        collect_yaml_mapping_path_entries(child, child_path, entries)
    +      end
    +    end
    +  end
    +end
    +
    +
    + +
    +

    + + .collect_yaml_scalar_path_entries(node, path, entries) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +14544
    +14545
    +14546
    +14547
    +14548
    +14549
    +14550
    +14551
    +14552
    +14553
    +14554
    +14555
    +14556
    +14557
    +14558
    +14559
    +14560
    +
    +
    # File 'lib/kettle/jem.rb', line 14544
    +
    +def collect_yaml_scalar_path_entries(node, path, entries)
    +  unless node.is_a?(Psych::Nodes::Mapping)
    +    node.children.each { |child| collect_yaml_scalar_path_entries(child, path, entries) } if node.respond_to?(:children)
    +    return
    +  end
    +
    +  node.children.each_slice(2) do |key_node, value_node|
    +    next unless key_node.is_a?(Psych::Nodes::Scalar)
    +
    +    child_path = path + [key_node.value.to_s]
    +    if value_node.is_a?(Psych::Nodes::Scalar)
    +      entries << {path: child_path, line: key_node.start_line}
    +    elsif value_node.is_a?(Psych::Nodes::Mapping)
    +      collect_yaml_scalar_path_entries(value_node, child_path, entries)
    +    end
    +  end
    +end
    +
    +
    + +
    +

    + + .commented_gem_call(comment_source) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +6525
    +6526
    +6527
    +6528
    +6529
    +6530
    +6531
    +6532
    +6533
    +
    +
    # File 'lib/kettle/jem.rb', line 6525
    +
    +def commented_gem_call(comment_source)
    +  source = uncomment_ruby_comment_line(comment_source)
    +  return unless source
    +
    +  result = prism_parse_success(source)
    +  body = result&.value&.statements&.body
    +  call = body&.one? ? body.first : nil
    +  call if call.is_a?(::Prism::CallNode) && call.name == :gem
    +end
    +
    +
    + +
    +

    + + .commented_gem_dependency_block_records(content) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +6412
    +6413
    +6414
    +6415
    +6416
    +6417
    +6418
    +6419
    +6420
    +6421
    +6422
    +6423
    +6424
    +6425
    +
    +
    # File 'lib/kettle/jem.rb', line 6412
    +
    +def commented_gem_dependency_block_records(content)
    +  lines = content.to_s.lines
    +  commented_gem_dependency_records(content).map do |record|
    +    start_index = record.fetch(:start_line) - 1
    +    while start_index.positive? && gemfile_comment_line?(lines[start_index - 1])
    +      start_index -= 1
    +    end
    +    record.merge(
    +      block_start_line: start_index + 1,
    +      block_end_line: record.fetch(:end_line),
    +      source_lines: lines[start_index..(record.fetch(:end_line) - 1)] || []
    +    )
    +  end
    +end
    +
    +
    + +
    +

    + + .commented_gem_dependency_blocks(content) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +6406
    +6407
    +6408
    +6409
    +6410
    +
    +
    # File 'lib/kettle/jem.rb', line 6406
    +
    +def commented_gem_dependency_blocks(content)
    +  commented_gem_dependency_block_records(content).to_h do |record|
    +    [record.fetch(:name), record.fetch(:source_lines)]
    +  end
    +end
    +
    +
    + +
    +

    + + .commented_gem_dependency_records(content) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +6508
    +6509
    +6510
    +6511
    +6512
    +6513
    +6514
    +6515
    +6516
    +6517
    +6518
    +6519
    +6520
    +6521
    +6522
    +6523
    +
    +
    # File 'lib/kettle/jem.rb', line 6508
    +
    +def commented_gem_dependency_records(content)
    +  result = prism_parse_success(content)
    +  return [] unless result
    +
    +  result.comments.filter_map do |comment|
    +    call = commented_gem_call(comment.location.slice)
    +    name = ruby_string_argument(call)
    +    next unless name
    +
    +    {
    +      name: name,
    +      start_line: comment.location.start_line,
    +      end_line: comment.location.end_line
    +    }
    +  end
    +end
    +
    +
    + +
    +

    + + .compact_hash(hash) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +14715
    +14716
    +14717
    +
    +
    # File 'lib/kettle/jem.rb', line 14715
    +
    +def compact_hash(hash)
    +  hash.reject { |_key, value| value.nil? || (value.respond_to?(:empty?) && value.empty?) }
    +end
    +
    +
    + +
    +

    + + .concrete_github_url(url) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +11518
    +11519
    +11520
    +
    +
    # File 'lib/kettle/jem.rb', line 11518
    +
    +def concrete_github_url(url)
    +  github_org_from_url(url) ? url.to_s : nil
    +end
    +
    +
    + +
    +

    + + .config_min_ruby(config) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +13403
    +13404
    +13405
    +13406
    +13407
    +
    +
    # File 'lib/kettle/jem.rb', line 13403
    +
    +def config_min_ruby(config)
    +  value = config.dig("rubygems", "min_ruby") || config["min_ruby"]
    +  version = value.to_s[/\d+\.\d+(?:\.\d+)?/]
    +  version && Gem::Version.new(version)
    +end
    +
    +
    + +
    +

    + + .config_test_min_ruby(config, gem_min_ruby = nil) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +13409
    +13410
    +13411
    +13412
    +13413
    +13414
    +13415
    +13416
    +13417
    +13418
    +13419
    +13420
    +13421
    +13422
    +13423
    +13424
    +
    +
    # File 'lib/kettle/jem.rb', line 13409
    +
    +def config_test_min_ruby(config, gem_min_ruby = nil)
    +  config ||= {}
    +  configured = config.dig("ruby", "test_minimum")
    +  configured_version = configured.to_s[/\d+\.\d+(?:\.\d+)?/]
    +  test_minimum = configured_version ? Gem::Version.new(configured_version) : DEFAULT_TEST_MINIMUM_RUBY
    +  test_minimum = [test_minimum, DEFAULT_TEST_MINIMUM_RUBY].max
    +  gem_minimum = if gem_min_ruby
    +    token = minimum_ruby_token(gem_min_ruby)
    +    Gem::Version.new(token) unless token.empty?
    +  else
    +    config_min_ruby(config)
    +  end
    +  gem_minimum ? [test_minimum, gem_minimum].max : test_minimum
    +rescue ArgumentError
    +  DEFAULT_TEST_MINIMUM_RUBY
    +end
    +
    +
    + +
    +

    + + .configured_disabled_integrations(config) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +12567
    +12568
    +12569
    +12570
    +12571
    +12572
    +12573
    +12574
    +12575
    +12576
    +12577
    +12578
    +12579
    +12580
    +12581
    +
    +
    # File 'lib/kettle/jem.rb', line 12567
    +
    +def configured_disabled_integrations(config)
    +  integrations = if config.is_a?(Hash) && config["integrations"].is_a?(Hash)
    +    config["integrations"]
    +  else
    +    {}
    +  end
    +  disabled = Array(integrations["disabled"]).map(&:to_s)
    +  integrations.each do |name, value|
    +    normalized = normalize_integration_name(name)
    +    next if normalized.empty? || normalized == "disabled"
    +
    +    disabled << normalized if falsey_config?(value)
    +  end
    +  disabled.map { |name| normalize_integration_name(name) }.uniq & MANAGED_INTEGRATIONS
    +end
    +
    +
    + +
    +

    + + .configured_readme_top_logo_entries(config, org:, gem_name:, repository: {}) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +11847
    +11848
    +11849
    +11850
    +11851
    +11852
    +11853
    +11854
    +11855
    +11856
    +11857
    +11858
    +11859
    +
    +
    # File 'lib/kettle/jem.rb', line 11847
    +
    +def configured_readme_top_logo_entries(config, org:, gem_name:, repository: {})
    +  readme_config = (config.is_a?(Hash) && config["readme"].is_a?(Hash)) ? config["readme"] : {}
    +  logo_row = readme_config["logo_row"]
    +  return unless logo_row.is_a?(Hash)
    +  return [] if falsey_config?(logo_row["enabled"])
    +
    +  logos = Array(logo_row["logos"]).first(4)
    +  return [] if logos.empty?
    +
    +  logos.filter_map do ||
    +    readme_top_logo_entry_from_config(, org: org, gem_name: gem_name, repository: repository)
    +  end.then { |entries| deduplicate_readme_top_logo_entries(entries) }
    +end
    +
    +
    + +
    +

    + + .content_recipe_execution_report(request:, final_content:, changed:, step_reports:, diagnostics:, metadata: nil) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +3998
    +3999
    +4000
    +4001
    +4002
    +4003
    +4004
    +4005
    +4006
    +4007
    +
    +
    # File 'lib/kettle/jem.rb', line 3998
    +
    +def content_recipe_execution_report(request:, final_content:, changed:, step_reports:, diagnostics:, metadata: nil)
    +  compact_hash(
    +    request: deep_dup(request),
    +    final_content: final_content.to_s,
    +    changed: changed ? true : false,
    +    step_reports: deep_dup(step_reports),
    +    diagnostics: deep_dup(diagnostics),
    +    metadata: deep_dup( || {})
    +  )
    +end
    +
    +
    + +
    +

    + + .content_recipe_execution_report_envelope(report) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +4009
    +4010
    +4011
    +4012
    +4013
    +4014
    +4015
    +
    +
    # File 'lib/kettle/jem.rb', line 4009
    +
    +def content_recipe_execution_report_envelope(report)
    +  {
    +    kind: "content_recipe_execution_report",
    +    version: CONTENT_RECIPE_TRANSPORT_VERSION,
    +    report: deep_dup(report)
    +  }
    +end
    +
    +
    + +
    +

    + + .content_recipe_execution_request(recipe_name:, recipe_version:, relative_path:, provider_family:, template_content:, destination_content:, steps:, provider_backend: nil, runtime_context: nil, metadata: nil) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +3974
    +3975
    +3976
    +3977
    +3978
    +3979
    +3980
    +3981
    +3982
    +3983
    +3984
    +3985
    +3986
    +3987
    +3988
    +
    +
    # File 'lib/kettle/jem.rb', line 3974
    +
    +def content_recipe_execution_request(recipe_name:, recipe_version:, relative_path:, provider_family:,
    +  template_content:, destination_content:, steps:, provider_backend: nil, runtime_context: nil, metadata: nil)
    +  compact_hash(
    +    recipe_name: recipe_name.to_s,
    +    recipe_version: recipe_version.to_s,
    +    relative_path: relative_path.to_s,
    +    provider_family: provider_family.to_s,
    +    provider_backend: provider_backend&.to_s,
    +    template_content: template_content.to_s,
    +    destination_content: destination_content.to_s,
    +    steps: deep_dup(steps),
    +    runtime_context: deep_dup(runtime_context || {}),
    +    metadata: deep_dup( || {})
    +  )
    +end
    +
    +
    + +
    +

    + + .content_recipe_execution_request_envelope(request) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +3990
    +3991
    +3992
    +3993
    +3994
    +3995
    +3996
    +
    +
    # File 'lib/kettle/jem.rb', line 3990
    +
    +def content_recipe_execution_request_envelope(request)
    +  {
    +    kind: "content_recipe_execution_request",
    +    version: CONTENT_RECIPE_TRANSPORT_VERSION,
    +    request: deep_dup(request)
    +  }
    +end
    +
    +
    + +
    +

    + + .content_recipe_step(recipe) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +4424
    +4425
    +4426
    +4427
    +4428
    +4429
    +4430
    +4431
    +4432
    +4433
    +4434
    +4435
    +4436
    +4437
    +4438
    +4439
    +4440
    +4441
    +4442
    +4443
    +4444
    +
    +
    # File 'lib/kettle/jem.rb', line 4424
    +
    +def content_recipe_step(recipe)
    +  step = {
    +    step_id: recipe.fetch(:name),
    +    step_kind: recipe.fetch(:primitive),
    +    name: recipe.fetch(:name),
    +    provider_family: recipe.fetch(:provider_family),
    +    metadata: {target_path: recipe.fetch(:target_path)}
    +  }
    +  step[:provider_backend] = recipe[:provider_backend] if recipe[:provider_backend]
    +  if recipe.fetch(:primitive) == "supplied_source_selector_deletion"
    +    step[:step_kind] = "native_policy"
    +    step[:policy] = {
    +      policy_kind: "delete_supplied_structural_owners",
    +      required_context: "delete_selectors",
    +      operation: "delete",
    +      selector_family: "structural_owner_range",
    +      normalize_blank_lines: true
    +    }
    +  end
    +  step
    +end
    +
    +
    + +
    +

    + + .content_recipe_step_report(recipe:, request:, original:, final:, changed:, deletion: nil) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +4446
    +4447
    +4448
    +4449
    +4450
    +4451
    +4452
    +4453
    +4454
    +4455
    +4456
    +4457
    +4458
    +4459
    +4460
    +4461
    +4462
    +4463
    +4464
    +4465
    +4466
    +4467
    +4468
    +4469
    +4470
    +4471
    +4472
    +4473
    +4474
    +4475
    +4476
    +4477
    +
    +
    # File 'lib/kettle/jem.rb', line 4446
    +
    +def content_recipe_step_report(recipe:, request:, original:, final:, changed:, deletion: nil)
    +  operation_profile = Ast::Merge.structured_edit_operation_profile(
    +    operation_kind: recipe.fetch(:primitive),
    +    known_operation_kind: true,
    +    source_requirement: "destination_content",
    +    destination_requirement: "relative_path",
    +    replacement_source: "runtime_context",
    +    captures_source_text: false,
    +    supports_if_missing: true,
    +    operation_family: "kettle-jem"
    +  )
    +  result = Ast::Merge.structured_edit_result(
    +    operation_kind: recipe.fetch(:primitive),
    +    updated_content: final,
    +    changed: changed,
    +    operation_profile: operation_profile
    +  )
    +  application = Ast::Merge.structured_edit_application(request: request, result: result)
    +  {
    +    step_id: recipe.fetch(:name),
    +    step_kind: recipe.fetch(:primitive),
    +    status: changed ? "applied" : "unchanged",
    +    changed: changed,
    +    input_content: original,
    +    output_content: final,
    +    application: application,
    +    diagnostics: [],
    +    metadata: (recipe, deletion).merge(
    +      ruby_template_policy_report(recipe: recipe, request: request, original: original, final: final)
    +    )
    +  }
    +end
    +
    +
    + +
    +

    + + .copy_only_when_missing_template_path?(relative_path) ⇒ Boolean + + + + + +

    +
    + + + +
    +
    +
    + +

    Returns:

    +
      + +
    • + + + (Boolean) + + + +
    • + +
    + +
    + + + + +
    +
    +
    +
    +13028
    +13029
    +13030
    +
    +
    # File 'lib/kettle/jem.rb', line 13028
    +
    +def copy_only_when_missing_template_path?(relative_path)
    +  COPY_ONLY_WHEN_MISSING_TEMPLATE_PATHS.include?(relative_path.to_s)
    +end
    +
    +
    + +
    + + + + + +
    +
    +
    +
    +10451
    +10452
    +10453
    +10454
    +10455
    +
    +
    # File 'lib/kettle/jem.rb', line 10451
    +
    +def copyright_author_names(copyright)
    +  Array(copyright[:lines]).filter_map do |line|
    +    copyright_name_from_line(line.to_s)
    +  end
    +end
    +
    +
    + +
    +
    +
    + + + +
    +
    +
    + +

    Returns:

    +
      + +
    • + + + (Boolean) + + + +
    • + +
    + +
    + + + + +
    +
    +
    +
    +10559
    +10560
    +10561
    +
    +
    # File 'lib/kettle/jem.rb', line 10559
    +
    +def copyright_bot_entry?(entry)
    +  entry[:name].to_s.match?(BOT_NAME_SUFFIX) || entry[:email].to_s.match?(BOT_EMAIL_PATTERN)
    +end
    +
    +
    + +
    + + + + + +
    +
    +
    +
    +10474
    +10475
    +10476
    +10477
    +
    +
    # File 'lib/kettle/jem.rb', line 10474
    +
    +def copyright_facts(project_root, config)
    +  lines = git_copyright_lines(project_root, copyright_machine_users(config))
    +  compact_hash(lines: lines)
    +end
    +
    +
    + +
    +
    +
    + + + +
    +
    +
    + +

    Returns:

    +
      + +
    • + + + (Boolean) + + + +
    • + +
    + +
    + + + + +
    +
    +
    +
    +10563
    +10564
    +10565
    +10566
    +10567
    +10568
    +
    +
    # File 'lib/kettle/jem.rb', line 10563
    +
    +def copyright_machine_user_entry?(entry, machine_users)
    +  return false if machine_users.empty?
    +
    +  machine_users.include?(entry[:name].to_s.downcase.strip) ||
    +    machine_users.include?(entry[:email].to_s.downcase.strip)
    +end
    +
    +
    + +
    + + + + + +
    +
    +
    +
    +10479
    +10480
    +10481
    +10482
    +
    +
    # File 'lib/kettle/jem.rb', line 10479
    +
    +def copyright_machine_users(config)
    +  copyright = config["copyright"].is_a?(Hash) ? config["copyright"] : {}
    +  (Array(config["machine_users"]) + Array(copyright["machine_users"])).map { |user| user.to_s.downcase.strip }.reject(&:empty?)
    +end
    +
    +
    + +
    + + + + + +
    +
    +
    +
    +10457
    +10458
    +10459
    +10460
    +10461
    +10462
    +10463
    +10464
    +
    +
    # File 'lib/kettle/jem.rb', line 10457
    +
    +def copyright_name_from_line(line)
    +  prefix = "Copyright (c) "
    +  return unless line.start_with?(prefix)
    +
    +  tokens = line[prefix.length..].to_s.split
    +  tokens.shift while tokens.first && copyright_year_token?(tokens.first)
    +  tokens.join(" ").strip.then { |name| name unless name.empty? }
    +end
    +
    +
    + +
    + + + + + +
    +
    +
    +
    +12198
    +12199
    +12200
    +12201
    +12202
    +
    +
    # File 'lib/kettle/jem.rb', line 12198
    +
    +def copyright_notice_lines(copyright_lines, copyright_prefix, author)
    +  lines = Array(copyright_lines)
    +  lines = ["Copyright (c) #{Time.now.utc.year} #{[author[:given_names], author[:family_names]].compact.join(" ").strip}"] if lines.empty?
    +  lines.map { |line| "#{copyright_prefix}#{line}" }
    +end
    +
    +
    + +
    +
    +
    + + + +
    +
    +
    + +

    Returns:

    +
      + +
    • + + + (Boolean) + + + +
    • + +
    + +
    + + + + +
    +
    +
    +
    +10466
    +10467
    +10468
    +
    +
    # File 'lib/kettle/jem.rb', line 10466
    +
    +def copyright_year_token?(token)
    +  token.delete(",-").chars.all? { |char| char.between?("0", "9") }
    +end
    +
    +
    + +
    +

    + + .coverage_thresholds_from_mise(content) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +4815
    +4816
    +4817
    +4818
    +4819
    +4820
    +
    +
    # File 'lib/kettle/jem.rb', line 4815
    +
    +def coverage_thresholds_from_mise(content)
    +  %w[K_SOUP_COV_MIN_BRANCH K_SOUP_COV_MIN_LINE].each_with_object({}) do |key, thresholds|
    +    value = toml_string_scalar_line_value(content, key)
    +    thresholds[key] = value if value
    +  end
    +end
    +
    +
    + +
    +

    + + .coverage_thresholds_from_project_mise(project_root) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +4879
    +4880
    +4881
    +4882
    +4883
    +4884
    +4885
    +4886
    +
    +
    # File 'lib/kettle/jem.rb', line 4879
    +
    +def coverage_thresholds_from_project_mise(project_root)
    +  return {} if project_root.to_s.empty?
    +
    +  path = File.join(project_root.to_s, "mise.toml")
    +  return {} unless File.file?(path)
    +
    +  coverage_thresholds_from_mise(File.read(path))
    +end
    +
    +
    + +
    +

    + + .coverage_thresholds_from_workflow(project_root) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +4822
    +4823
    +4824
    +4825
    +4826
    +4827
    +4828
    +4829
    +4830
    +4831
    +4832
    +4833
    +
    +
    # File 'lib/kettle/jem.rb', line 4822
    +
    +def coverage_thresholds_from_workflow(project_root)
    +  return {} if project_root.to_s.empty?
    +
    +  path = File.join(project_root.to_s, ".github", "workflows", "coverage.yml")
    +  return {} unless File.file?(path)
    +
    +  content = File.read(path)
    +  %w[K_SOUP_COV_MIN_BRANCH K_SOUP_COV_MIN_LINE].each_with_object({}) do |key, thresholds|
    +    value = yaml_scalar_line_value(content, key)
    +    thresholds[key] = value.to_s.delete_prefix("\"").delete_suffix("\"") if value
    +  end
    +end
    +
    +
    + +
    +

    + + .coverage_thresholds_from_yaml_workflow(content) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +4888
    +4889
    +4890
    +4891
    +4892
    +4893
    +
    +
    # File 'lib/kettle/jem.rb', line 4888
    +
    +def coverage_thresholds_from_yaml_workflow(content)
    +  %w[K_SOUP_COV_MIN_BRANCH K_SOUP_COV_MIN_LINE].each_with_object({}) do |key, thresholds|
    +    value = yaml_scalar_line_value(content, key)
    +    thresholds[key] = value if value
    +  end
    +end
    +
    +
    + +
    +

    + + .current_changelog_version_section(content, version) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +4951
    +4952
    +4953
    +4954
    +4955
    +4956
    +4957
    +4958
    +4959
    +4960
    +4961
    +
    +
    # File 'lib/kettle/jem.rb', line 4951
    +
    +def current_changelog_version_section(content, version)
    +  version_text = version.to_s.strip
    +  return if version_text.empty?
    +
    +  lines = content.to_s.lines
    +  start_index = lines.index { |line| changelog_version_heading_line?(line, version_text) }
    +  return unless start_index
    +
    +  end_index = lines[(start_index + 1)..].to_a.index { |line| line.start_with?("## ") }
    +  lines[start_index...(end_index ? start_index + 1 + end_index : lines.length)].join
    +end
    +
    +
    + +
    +

    + + .decision_policy_for(env, run_options) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +9255
    +9256
    +9257
    +
    +
    # File 'lib/kettle/jem.rb', line 9255
    +
    +def decision_policy_for(env, run_options)
    +  DecisionPolicy.from_env(env || {}, **(run_options || {}))
    +end
    +
    +
    + +
    +

    + + .decorative_grapheme?(grapheme) ⇒ Boolean + + + + + +

    +
    + + + +
    +
    +
    + +

    Returns:

    +
      + +
    • + + + (Boolean) + + + +
    • + +
    + +
    + + + + +
    +
    +
    +
    +9222
    +9223
    +9224
    +9225
    +9226
    +9227
    +9228
    +
    +
    # File 'lib/kettle/jem.rb', line 9222
    +
    +def decorative_grapheme?(grapheme)
    +  value = grapheme.to_s
    +  return false if value.empty?
    +  return false if value.ascii_only?
    +
    +  !value.match?(/\A[[:alnum:][:space:]]\z/u)
    +end
    +
    +
    + +
    +

    + + .deduplicate_main_gemfile_direct_sibling_blocks(content) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +5393
    +5394
    +5395
    +5396
    +5397
    +5398
    +5399
    +5400
    +5401
    +5402
    +5403
    +5404
    +5405
    +
    +
    # File 'lib/kettle/jem.rb', line 5393
    +
    +def deduplicate_main_gemfile_direct_sibling_blocks(content)
    +  records = main_gemfile_direct_sibling_records(content)
    +  return content if records.length <= 1
    +
    +  records[0...-1].sort_by { |record| -record.fetch(:start_line) }.reduce(content.to_s) do |output, record|
    +    replace_source_range_lines(
    +      output,
    +      record.fetch(:start_line),
    +      expand_line_range_through_following_blanks(output, record.fetch(:end_line)),
    +      ""
    +    )
    +  end
    +end
    +
    +
    + +
    +

    + + .deduplicate_readme_top_logo_entries(entries) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +11861
    +11862
    +11863
    +11864
    +11865
    +
    +
    # File 'lib/kettle/jem.rb', line 11861
    +
    +def deduplicate_readme_top_logo_entries(entries)
    +  entries.group_by { |entry| entry[:image_url].to_s }.values.map do |group|
    +    group.find { |entry| entry[:type] == "related_org" } || group.first
    +  end
    +end
    +
    +
    + +
    +

    + + .deep_dup(value) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +14719
    +14720
    +14721
    +
    +
    # File 'lib/kettle/jem.rb', line 14719
    +
    +def deep_dup(value)
    +  Marshal.load(Marshal.dump(value))
    +end
    +
    +
    + +
    +

    + + .deep_string_key_hash(value) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +2665
    +2666
    +2667
    +2668
    +2669
    +2670
    +2671
    +2672
    +2673
    +2674
    +2675
    +2676
    +
    +
    # File 'lib/kettle/jem.rb', line 2665
    +
    +def deep_string_key_hash(value)
    +  case value
    +  when Hash
    +    value.each_with_object({}) do |(key, child), converted|
    +      converted[key.to_s] = deep_string_key_hash(child)
    +    end
    +  when Array
    +    value.map { |child| deep_string_key_hash(child) }
    +  else
    +    value
    +  end
    +end
    +
    +
    + +
    +

    + + .default_framework_matrix_requirement(version) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +13601
    +13602
    +13603
    +13604
    +13605
    +
    +
    # File 'lib/kettle/jem.rb', line 13601
    +
    +def default_framework_matrix_requirement(version)
    +  normalized = version.to_s
    +  normalized = "#{normalized}.0" if normalized.match?(/\A\d+\.\d+\z/)
    +  "~> #{normalized}"
    +end
    +
    +
    + +
    +

    + + .default_readme_top_logo_credit(type) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +11943
    +11944
    +11945
    +11946
    +11947
    +11948
    +11949
    +11950
    +
    +
    # File 'lib/kettle/jem.rb', line 11943
    +
    +def default_readme_top_logo_credit(type)
    +  case type
    +  when "ruby"
    +    "Yukihiro Matsumoto, Ruby Visual Identity Team, CC BY-SA 2.5"
    +  else
    +    "Aboling0, CC BY-SA 4.0"
    +  end
    +end
    +
    +
    + +
    +

    + + .default_readme_top_logo_href(type, slug:, org:, gem_name:, repository: {}) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +11928
    +11929
    +11930
    +11931
    +11932
    +11933
    +11934
    +11935
    +11936
    +11937
    +11938
    +11939
    +11940
    +11941
    +
    +
    # File 'lib/kettle/jem.rb', line 11928
    +
    +def default_readme_top_logo_href(type, slug:, org:, gem_name:, repository: {})
    +  case type
    +  when "related_org"
    +    "https://discord.gg/3qme4XHNKN"
    +  when "ruby"
    +    "https://ruby-toolbox.com"
    +  when "org"
    +    org.to_s.empty? ? "#{LOGOS_GALTZO_BASE_URL}/#{slug}/" : "https://github.com/#{org}"
    +  when "project"
    +    repository_project_logo_href(repository, slug: slug, org: org, gem_name: gem_name)
    +  else
    +    "#{LOGOS_GALTZO_BASE_URL}/#{slug}/"
    +  end
    +end
    +
    +
    + +
    +

    + + .default_readme_top_logo_slug(type, org:, gem_name:, repository: {}) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +11897
    +11898
    +11899
    +11900
    +11901
    +11902
    +11903
    +11904
    +11905
    +11906
    +11907
    +11908
    +11909
    +11910
    +
    +
    # File 'lib/kettle/jem.rb', line 11897
    +
    +def default_readme_top_logo_slug(type, org:, gem_name:, repository: {})
    +  case type
    +  when "related_org"
    +    "galtzo-floss"
    +  when "ruby"
    +    "ruby-lang"
    +  when "org"
    +    org.to_s
    +  when "project"
    +    repository_project_logo_slug(repository, org: org, gem_name: gem_name)
    +  else
    +    ""
    +  end
    +end
    +
    +
    + +
    +

    + + .default_template_configObject + + + + + +

    + + + + +
    +
    +
    +
    +13292
    +13293
    +13294
    +13295
    +13296
    +13297
    +
    +
    # File 'lib/kettle/jem.rb', line 13292
    +
    +def default_template_config
    +  {
    +    "root" => "packaged",
    +    "apply" => true
    +  }
    +end
    +
    +
    + +
    +

    + + .default_template_strategy_config(template_root, target_path) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +13032
    +13033
    +13034
    +13035
    +13036
    +13037
    +13038
    +13039
    +13040
    +13041
    +13042
    +
    +
    # File 'lib/kettle/jem.rb', line 13032
    +
    +def default_template_strategy_config(template_root, target_path)
    +  return unless template_root.fetch(:kind) == "packaged"
    +  return {strategy: :merge, preference: :destination, add_template_only_nodes: true} if target_path.to_s == KETTLE_CONFIG_PATH
    +  return {strategy: :accept_template} if target_path.to_s == "CITATION.cff"
    +  return {strategy: :merge, preference: :destination, add_template_only_nodes: true} if target_path.to_s == "Rakefile"
    +  return {strategy: :accept_template} if version_gem_template_target_path?(target_path)
    +  return {strategy: :accept_template} if target_path.to_s.start_with?(".github/workflows/")
    +  return {strategy: :accept_template} if target_path.to_s.start_with?("gemfiles/modular/")
    +
    +  nil
    +end
    +
    +
    + +
    +

    + + .delete_file_recipe?(recipe) ⇒ Boolean + + + + + +

    +
    + + + +
    +
    +
    + +

    Returns:

    +
      + +
    • + + + (Boolean) + + + +
    • + +
    + +
    + + + + +
    +
    +
    +
    +9704
    +9705
    +9706
    +
    +
    # File 'lib/kettle/jem.rb', line 9704
    +
    +def delete_file_recipe?(recipe)
    +  FILE_DELETION_PRIMITIVES.include?(recipe.fetch(:primitive))
    +end
    +
    +
    + +
    +

    + + .delete_line_ranges(content, selectors) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +13903
    +13904
    +13905
    +13906
    +13907
    +13908
    +13909
    +13910
    +13911
    +
    +
    # File 'lib/kettle/jem.rb', line 13903
    +
    +def delete_line_ranges(content, selectors)
    +  lines = content.lines
    +  selectors.sort_by { |selector| -selector.fetch(:start_line) }.each do |selector|
    +    start_index = selector.fetch(:start_line) - 1
    +    end_index = selector.fetch(:end_line) - 1
    +    lines.slice!(start_index..end_index)
    +  end
    +  lines.join.gsub(/\n{3,}/, "\n\n")
    +end
    +
    +
    + +
    +

    + + .delete_markdown_with_ast_crispr(content, target) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +5139
    +5140
    +5141
    +5142
    +
    +
    # File 'lib/kettle/jem.rb', line 5139
    +
    +def delete_markdown_with_ast_crispr(content, target)
    +  ensure_runtime_dependencies!
    +  Ast::Crispr::Delete.call(content: content.to_s, target: target, source_label: "README.md").updated_content
    +end
    +
    +
    + +
    +

    + + .delete_project_file(project_root, relative_path) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +11196
    +11197
    +11198
    +11199
    +11200
    +11201
    +11202
    +11203
    +
    +
    # File 'lib/kettle/jem.rb', line 11196
    +
    +def delete_project_file(project_root, relative_path)
    +  path = File.join(project_root, relative_path)
    +  return unless File.file?(path)
    +
    +  File.delete(path)
    +  prune_empty_parent_directories(project_root, File.dirname(relative_path))
    +  relative_path
    +end
    +
    +
    + +
    +

    + + .delete_rakefile_scaffold(content) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +13765
    +13766
    +13767
    +13768
    +13769
    +13770
    +13771
    +13772
    +13773
    +
    +
    # File 'lib/kettle/jem.rb', line 13765
    +
    +def delete_rakefile_scaffold(content)
    +  selectors = rakefile_scaffold_delete_selectors(content)
    +  return {content: content.to_s, delete_selectors: selectors} if selectors.empty?
    +
    +  {
    +    content: delete_line_ranges(content.to_s, selectors),
    +    delete_selectors: selectors
    +  }
    +end
    +
    +
    + +
    +

    + + .detected_license_ids(project_root) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +3678
    +3679
    +3680
    +3681
    +3682
    +3683
    +
    +
    # File 'lib/kettle/jem.rb', line 3678
    +
    +def detected_license_ids(project_root)
    +  known_license_template_basenames.filter_map do |basename|
    +    path = File.join(project_root.to_s, "#{basename}.md")
    +    File.exist?(path) ? spdx_from_basename(basename) : nil
    +  end.sort
    +end
    +
    +
    + +
    +

    + + .direct_sibling_directory_defines_gem?(sibling_path, gem_name) ⇒ Boolean + + + + + +

    +
    + + + +
    +
    +
    + +

    Returns:

    +
      + +
    • + + + (Boolean) + + + +
    • + +
    + +
    + + + + +
    +
    +
    +
    +10774
    +10775
    +10776
    +10777
    +10778
    +10779
    +10780
    +
    +
    # File 'lib/kettle/jem.rb', line 10774
    +
    +def direct_sibling_directory_defines_gem?(sibling_path, gem_name)
    +  return false unless File.directory?(sibling_path)
    +
    +  Dir.glob(File.join(sibling_path, "*.gemspec")).any? do |gemspec_path|
    +    ((gemspec_path), :gem_name).to_s == gem_name.to_s
    +  end
    +end
    +
    +
    + +
    +

    + + .direct_sibling_runtime_gems(project_root, gemspec_metadata, package_name:, local_modular_eval_paths: {}) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +10710
    +10711
    +10712
    +10713
    +10714
    +10715
    +10716
    +10717
    +10718
    +10719
    +10720
    +10721
    +10722
    +10723
    +10724
    +10725
    +10726
    +
    +
    # File 'lib/kettle/jem.rb', line 10710
    +
    +def direct_sibling_runtime_gems(project_root, , package_name:, local_modular_eval_paths: {})
    +  return [] unless project_root && .is_a?(Hash)
    +
    +  sibling_root = File.expand_path("..", project_root.to_s)
    +  dependencies = Array(
    +    [:runtime_dependencies] || ["runtime_dependencies"]
    +  )
    +  dependencies.each_with_object([]) do |dependency, names|
    +    name = dependency.respond_to?(:name) ? dependency.name.to_s : dependency.to_s
    +    next if name.empty? || name == package_name.to_s
    +    next unless direct_sibling_directory_defines_gem?(File.join(sibling_root, name), name)
    +    next if Array(local_modular_eval_paths[name]).any?
    +    next if names.include?(name)
    +
    +    names << name
    +  end
    +end
    +
    +
    + +
    +

    + + .direct_sibling_workspace_slug(source_url, project_root) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +10872
    +10873
    +10874
    +10875
    +10876
    +10877
    +10878
    +
    +
    # File 'lib/kettle/jem.rb', line 10872
    +
    +def direct_sibling_workspace_slug(source_url, project_root)
    +  slug = github_org_from_url(source_url).to_s
    +  return slug unless slug.empty?
    +  return "" unless project_root
    +
    +  File.basename(File.expand_path("..", project_root.to_s)).to_s
    +end
    +
    +
    + +
    +

    + + .disabled_coverage_integrations(config) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +12563
    +12564
    +12565
    +
    +
    # File 'lib/kettle/jem.rb', line 12563
    +
    +def disabled_coverage_integrations(config)
    +  configured_disabled_integrations(config) & COVERAGE_INTEGRATIONS
    +end
    +
    +
    + +
    +

    + + .disabled_integration_config_cleanups(project_root, config) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +13370
    +13371
    +13372
    +13373
    +13374
    +13375
    +13376
    +13377
    +13378
    +13379
    +
    +
    # File 'lib/kettle/jem.rb', line 13370
    +
    +def disabled_integration_config_cleanups(project_root, config)
    +  disabled_integrations(config).flat_map do |integration|
    +    INTEGRATION_TEMPLATE_PATHS.fetch(integration, []).filter_map do |relative_path|
    +      next if relative_path.start_with?(".github/workflows/")
    +      next unless File.exist?(File.join(project_root, relative_path))
    +
    +      {target_path: relative_path}
    +    end
    +  end
    +end
    +
    +
    + +
    +

    + + .disabled_integration_template_path?(target_path, config) ⇒ Boolean + + + + + +

    +
    + + + +
    +
    +
    + +

    Returns:

    +
      + +
    • + + + (Boolean) + + + +
    • + +
    + +
    + + + + +
    +
    +
    +
    +13381
    +13382
    +13383
    +13384
    +13385
    +13386
    +13387
    +
    +
    # File 'lib/kettle/jem.rb', line 13381
    +
    +def disabled_integration_template_path?(target_path, config)
    +  disabled = disabled_integrations(config)
    +  return false if disabled.empty?
    +
    +  path = target_path.to_s
    +  disabled.any? { |integration| INTEGRATION_TEMPLATE_PATHS.fetch(integration, []).include?(path) }
    +end
    +
    +
    + +
    +

    + + .disabled_integrations(config, license: nil) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +12557
    +12558
    +12559
    +12560
    +12561
    +
    +
    # File 'lib/kettle/jem.rb', line 12557
    +
    +def disabled_integrations(config, license: nil)
    +  disabled = configured_disabled_integrations(config)
    +  disabled << SKYWALKING_EYES_INTEGRATION if skywalking_eyes_disabled_by_default?(config, license, disabled)
    +  disabled.map { |name| normalize_integration_name(name) }.uniq & MANAGED_INTEGRATIONS
    +end
    +
    +
    + +
    +

    + + .discover_facts(project_root, env: ENV, run_options: {}) ⇒ Object + + + + + +

    +
    + + + +
    +
    +
    + +

    Raises:

    +
      + +
    • + + + (ArgumentError) + + + +
    • + +
    + +
    + + + + +
    +
    +
    +
    +2804
    +2805
    +2806
    +2807
    +2808
    +2809
    +2810
    +2811
    +2812
    +2813
    +2814
    +2815
    +2816
    +2817
    +2818
    +2819
    +2820
    +2821
    +2822
    +2823
    +2824
    +2825
    +2826
    +2827
    +2828
    +2829
    +2830
    +2831
    +2832
    +2833
    +2834
    +2835
    +2836
    +2837
    +2838
    +2839
    +2840
    +2841
    +2842
    +2843
    +2844
    +2845
    +2846
    +2847
    +2848
    +2849
    +2850
    +2851
    +2852
    +2853
    +2854
    +2855
    +2856
    +2857
    +2858
    +2859
    +2860
    +2861
    +2862
    +2863
    +2864
    +2865
    +2866
    +2867
    +2868
    +2869
    +2870
    +2871
    +2872
    +2873
    +2874
    +2875
    +2876
    +2877
    +2878
    +2879
    +2880
    +2881
    +2882
    +2883
    +2884
    +2885
    +2886
    +2887
    +2888
    +2889
    +2890
    +2891
    +2892
    +2893
    +2894
    +2895
    +2896
    +2897
    +2898
    +2899
    +2900
    +2901
    +2902
    +2903
    +2904
    +2905
    +2906
    +2907
    +2908
    +2909
    +2910
    +2911
    +2912
    +2913
    +2914
    +2915
    +2916
    +2917
    +2918
    +2919
    +2920
    +2921
    +2922
    +2923
    +2924
    +2925
    +2926
    +2927
    +2928
    +2929
    +2930
    +2931
    +2932
    +2933
    +2934
    +2935
    +2936
    +2937
    +2938
    +2939
    +2940
    +2941
    +2942
    +2943
    +2944
    +2945
    +2946
    +2947
    +2948
    +2949
    +2950
    +2951
    +2952
    +2953
    +2954
    +2955
    +2956
    +2957
    +2958
    +2959
    +2960
    +2961
    +2962
    +2963
    +2964
    +2965
    +2966
    +2967
    +2968
    +2969
    +2970
    +2971
    +2972
    +2973
    +2974
    +2975
    +2976
    +2977
    +2978
    +2979
    +2980
    +2981
    +2982
    +2983
    +2984
    +2985
    +2986
    +2987
    +2988
    +2989
    +2990
    +2991
    +2992
    +2993
    +2994
    +2995
    +2996
    +2997
    +2998
    +2999
    +3000
    +3001
    +3002
    +3003
    +3004
    +3005
    +3006
    +3007
    +3008
    +3009
    +3010
    +3011
    +3012
    +3013
    +3014
    +3015
    +3016
    +3017
    +3018
    +3019
    +3020
    +3021
    +3022
    +3023
    +3024
    +3025
    +3026
    +3027
    +3028
    +3029
    +3030
    +3031
    +3032
    +3033
    +3034
    +3035
    +3036
    +3037
    +3038
    +3039
    +3040
    +3041
    +3042
    +3043
    +3044
    +3045
    +3046
    +3047
    +3048
    +3049
    +3050
    +3051
    +3052
    +3053
    +3054
    +3055
    +3056
    +3057
    +3058
    +3059
    +3060
    +3061
    +3062
    +3063
    +3064
    +3065
    +
    +
    # File 'lib/kettle/jem.rb', line 2804
    +
    +def discover_facts(project_root, env: ENV, run_options: {})
    +  kettle_config = kettle_jem_config(project_root)
    +  template_selection = template_selection_for(env, run_options)
    +  configured_template_profile = normalize_template_profile(kettle_config.dig("templates", "profile"))
    +  if template_selection[:template_profile].to_s.empty? && !configured_template_profile.empty?
    +    template_selection[:template_profile] = configured_template_profile
    +  end
    +  gemspec_path = Dir.glob(File.join(project_root, "*.gemspec")).min
    +  if !gemspec_path && template_selection[:template_profile].to_s == MONOREPO_ROOT_TEMPLATE_PROFILE
    +    return discover_monorepo_root_facts(project_root, kettle_config, env, template_selection)
    +  end
    +  raise ArgumentError, "no gemspec found in #{project_root}" unless gemspec_path
    +
    +  gemspec_spec = load_project_gemspec(gemspec_path)
    +   = (project_root, gemspec_path, spec: gemspec_spec)
    +  rubygems_config = kettle_config["rubygems"].is_a?(Hash) ? kettle_config["rubygems"] : {}
    +  configured_name = rubygems_config["name"].to_s.strip
    +  name = (configured_name.empty? ? nil : configured_name) ||
    +    (, :gem_name) ||
    +    File.basename(gemspec_path, ".gemspec")
    +  homepage_url = (, :homepage)
    +   = (, :source_code_uri)
    +   = nil if generated_version_tree_source_url?(, (, :version))
    +   = concrete_github_url()
    +  homepage_github_url = concrete_github_url(homepage_url)
    +  git_source_url = git_remote_source_url(project_root)
    +  git_github_url = concrete_github_url(git_source_url)
    +  source_url = if template_selection[:template_profile].to_s == SHIM_TEMPLATE_PROFILE
    +    git_github_url || git_source_url ||  || homepage_github_url ||  || homepage_url
    +  else
    +     ||
    +      git_github_url ||
    +      homepage_github_url ||
    +       ||
    +      git_source_url ||
    +      homepage_url
    +  end
    +  if homepage_github_url && git_github_url && homepage_github_url != git_github_url && source_url == git_github_url
    +    homepage_url = git_github_url
    +  end
    +  derived_github_user = (git_github_url && source_url == git_github_url) ? github_org_from_url(git_github_url) : nil
    +  entrypoint_require = rubygems_config["entrypoint_require"].to_s.strip
    +  entrypoint_require = (, :entrypoint_require) if entrypoint_require.empty?
    +  entrypoint_require = name.tr("-", "/") if entrypoint_require.to_s.empty?
    +  version_path = File.join("lib", entrypoint_require, "version.rb")
    +  entrypoint_path = File.join("lib", "#{entrypoint_require}.rb")
    +  configured_namespace = rubygems_config["namespace"].to_s.strip
    +  entrypoint_namespace = existing_entrypoint_version_namespace(project_root, entrypoint_path)
    +  version_namespace = existing_version_namespace(project_root, version_path)
    +   = (, :namespace)
    +  default_namespace = classify_namespace(name)
    +  namespace = configured_namespace.empty? ? nil : configured_namespace
    +  namespace ||= project_namespace(
    +    entrypoint_namespace: entrypoint_namespace,
    +    version_namespace: version_namespace,
    +    metadata_namespace: ,
    +    default_namespace: default_namespace
    +  )
    +  project_version = (, :version)
    +  project_version = existing_version_file_value(project_root, version_path) unless valid_gem_version?(project_version)
    +  project_version = git_version_file_value(project_root, version_path) unless valid_gem_version?(project_version)
    +  configured_min_ruby = rubygems_config["min_ruby"].to_s.strip
    +  min_ruby = (configured_min_ruby.empty? ? nil : configured_min_ruby) ||
    +    (, :required_ruby_version) ||
    +    (, :min_ruby)
    +  gemspec_licenses = Array([:licenses])
    +
    +  copyright = copyright_facts(project_root, kettle_config)
    +  author = author_facts(kettle_config, env, gemspec_metadata: , copyright: copyright)
    +  license = license_facts(
    +    kettle_config,
    +    gemspec_licenses,
    +    author: author,
    +    author_email: author[:email],
    +    copyright: copyright
    +  )
    +  gemspec_license_spdx = gemspec_licenses
    +    .map { |license_id| license_id.to_s.strip }
    +    .reject(&:empty?)
    +  project_runtime = project_runtime_facts(
    +    kettle_config,
    +    env,
    +    package_name: name,
    +    source_url: source_url,
    +    author_domain: author[:domain],
    +    min_ruby: min_ruby,
    +    test_min_ruby: config_test_min_ruby(kettle_config, min_ruby),
    +    version: project_version,
    +    project_root: project_root,
    +    gemspec_metadata: 
    +  )
    +  shim = shim_facts(
    +    kettle_config,
    +    env,
    +    run_options,
    +    package_name: name,
    +    entrypoint_require: entrypoint_require,
    +    template_profile: template_selection[:template_profile]
    +  )
    +  facts = {
    +    package: compact_hash(
    +      ecosystem: "rubygems",
    +      name: name,
    +      slug: name,
    +      summary: (, :summary),
    +      description: (, :description) ||
    +        (, :summary),
    +      homepage_url: homepage_url,
    +      source_url: source_url,
    +      license_expression: license[:expression],
    +      runtime_dependencies: gemspec_runtime_dependency_names()
    +    ),
    +    rubygems: compact_hash(
    +      gemspec_path: File.basename(gemspec_path),
    +      entrypoint_require: entrypoint_require,
    +      namespace: namespace,
    +      min_ruby: min_ruby,
    +      engines: ruby_engines_config(kettle_config)
    +    )
    +  }
    +  version_gem_facts = version_gem_facts_for_project(project_root, entrypoint_require)
    +  facts[:version_gem] = version_gem_facts unless version_gem_facts.empty?
    +  facts[:shim] = shim unless shim.empty?
    +  repository_topology = repository_topology_for(kettle_config, env, template_selection)
    +  repository = repository_facts(
    +    project_root,
    +    source_url,
    +    package_name: name,
    +    repository_topology: repository_topology
    +  )
    +  facts[:repository] = repository unless repository.empty?
    +  generated_blocks = generated_blocks_facts(, facts.merge(project_root: File.expand_path(project_root)), run_options)
    +  facts[:generated_blocks] = generated_blocks unless generated_blocks.empty?
    +  bootstrap = kettle_config_bootstrap_facts(project_root, env, template_selection: template_selection)
    +  if bootstrap
    +    min_ruby_token = minimum_ruby_token(min_ruby)
    +    bootstrap[:licenses] = gemspec_license_spdx unless gemspec_license_spdx.empty?
    +    bootstrap[:gemspec_path] = File.basename(gemspec_path) if gemspec_path
    +    bootstrap[:min_ruby] = min_ruby_token unless min_ruby_token.empty?
    +    bootstrap[:test_min_ruby] = config_test_min_ruby(kettle_config, min_ruby).to_s
    +    bootstrap[:yard_host] = project_runtime[:yard_host].to_s
    +    bootstrap[:homepage_uri] = project_runtime[:homepage_uri].to_s
    +    project_emoji = preferred_template_token_value(nil, nil, env, "KJ_PROJECT_EMOJI")
    +    project_emoji ||= readme_project_emoji(project_root)
    +    project_emoji ||= gemspec_project_emoji()
    +    project_emoji ||= "💎" if monorepo_subgem_template_profile_value?(template_selection[:template_profile])
    +    project_emoji ||= "🪞" if template_selection[:template_profile].to_s == SHIM_TEMPLATE_PROFILE
    +    bootstrap[:project_emoji] = project_emoji
    +    bootstrap[:shim] = shim if shim && !shim.empty?
    +  end
    +  facts[:kettle_config_bootstrap] = bootstrap if bootstrap
    +  facts[:author] = author unless author.empty?
    +  facts[:copyright] = copyright unless copyright.empty?
    +  forge = forge_facts(kettle_config, env, derived_github_user: derived_github_user)
    +  facts[:forge] = forge unless forge.empty?
    +  social = social_facts(kettle_config, env)
    +  facts[:social] = social unless social.empty?
    +  opencollective_policy = opencollective_policy(kettle_config, env)
    +  opencollective_disabled = opencollective_policy.fetch(:disabled)
    +  open_collective_org = opencollective_org(project_root, kettle_config, env, opencollective_disabled: opencollective_disabled)
    +  open_collective_org ||= fallback_opencollective_org unless opencollective_disabled
    +  funding = compact_hash(
    +    urls: funding_urls(
    +      project_root,
    +      name,
    +      funding_uri: (, :funding_uri),
    +      opencollective_disabled: opencollective_disabled,
    +      open_collective_org: open_collective_org && open_collective_org.fetch(:org)
    +    )
    +  )
    +  funding_tokens = funding_platform_token_facts(kettle_config, env)
    +  funding[:platform_tokens] = funding_tokens unless funding_tokens.empty?
    +  funding[:open_collective_disabled] = true if opencollective_disabled
    +  funding[:open_collective_disabled_source] = opencollective_policy[:source] if opencollective_disabled
    +  if open_collective_org
    +    funding[:open_collective_org] = open_collective_org.fetch(:org)
    +    funding[:open_collective_org_source] = open_collective_org.fetch(:source)
    +  end
    +  open_collective_files = opencollective_disabled ? opencollective_disabled_files(project_root) : []
    +  funding[:open_collective_files] = open_collective_files unless open_collective_files.empty?
    +  facts[:funding] = funding unless funding.empty?
    +  warnings = opencollective_fallback_warnings(funding, project_runtime[:github_org].to_s)
    +  facts[:warnings] = warnings unless warnings.empty?
    +  disabled_integrations = disabled_integrations(kettle_config, license: license)
    +  facts[:integrations] = {disabled: disabled_integrations} unless disabled_integrations.empty?
    +  opt_in_workflows = opt_in_workflow_cleanup_files(project_root, template_selection)
    +  facts[:template_profile] = template_selection[:template_profile] unless template_selection[:template_profile].to_s.empty?
    +  template_config = template_runtime_config(kettle_config, facts, license: license)
    +  inactive_workflows = inactive_packaged_workflow_cleanup_files(
    +    project_root,
    +    template_config,
    +    include_patterns: template_selection[:include]
    +  )
    +  inactive_templates = inactive_packaged_template_cleanup_files(project_root, template_config)
    +  facts[:ci] = {
    +    provider: "github_actions",
    +    default_branch: "main",
    +    exec_cmd: github_actions_exec_cmd(kettle_config, env),
    +    recording: project_recording_enabled?(project_root, kettle_config),
    +    ruby_versions: github_actions_ruby_versions(project_runtime.fetch(:test_min_ruby)),
    +    test_min_ruby: project_runtime.fetch(:test_min_ruby).to_s,
    +    obsolete_workflows: github_actions_obsolete_workflows(project_root),
    +    custom_workflows: github_actions_custom_workflows(project_root, template_config, opencollective_disabled: opencollective_disabled)
    +  }
    +  standard_appraisal_gemfiles = github_actions_standard_appraisal_gemfiles(kettle_config)
    +  facts[:ci][:standard_appraisal_gemfiles] = standard_appraisal_gemfiles unless standard_appraisal_gemfiles.empty?
    +  facts[:ci][:opt_in_workflow_cleanups] = opt_in_workflows unless opt_in_workflows.empty?
    +  facts[:ci][:inactive_packaged_workflow_cleanups] = inactive_workflows unless inactive_workflows.empty?
    +  coverage_config = github_actions_coverage_config(kettle_config, env)
    +  facts[:ci][:coverage] = coverage_config unless coverage_config.empty?
    +  framework_matrix = github_actions_framework_matrix(kettle_config)
    +  facts[:ci][:framework_matrix] = framework_matrix unless framework_matrix.empty?
    +  template_facts = {}
    +  template_preferences = template_source_preferences(
    +    project_root,
    +    template_config,
    +    opencollective_disabled: opencollective_disabled,
    +    include_patterns: template_selection[:include]
    +  )
    +  template_facts[:source_preferences] = template_preferences unless template_preferences.empty?
    +  template_facts[:inactive_packaged_template_cleanups] = inactive_templates unless inactive_templates.empty?
    +  shim_cleanups = shim_profile_cleanups(project_root, facts, template_preferences, template_selection: template_selection)
    +  template_facts[:shim_profile_cleanups] = shim_cleanups unless shim_cleanups.empty?
    +  legacy_cleanups = template_legacy_destination_cleanups(project_root, template_preferences)
    +  template_facts[:legacy_destination_cleanups] = legacy_cleanups unless legacy_cleanups.empty?
    +  license_cleanups = template_obsolete_license_cleanups(project_root, template_config, template_preferences)
    +  template_facts[:obsolete_license_cleanups] = license_cleanups unless license_cleanups.empty?
    +  unless template_preferences.empty?
    +    facts[:license] = license unless license.empty?
    +    facts[:project_runtime] = project_runtime unless project_runtime.empty?
    +    readme_github_org = project_runtime[:github_org].to_s
    +    readme_github_org = forge[:gh_user].to_s if readme_github_org.empty?
    +    readme_github_org = facts.fetch(:repository, {})[:slug].to_s.split("/", 2).first.to_s if readme_github_org.empty?
    +     = readme_logo_facts(
    +      kettle_config,
    +      package_name: name,
    +      github_org: readme_github_org,
    +      repository: facts[:repository]
    +    )
    +    facts[:readme_logo] =  unless .empty?
    +    readme_style = readme_style_facts(
    +      project_root,
    +      kettle_config,
    +      license,
    +      template_profile: template_selection[:template_profile],
    +      repository: facts[:repository]
    +    )
    +    facts[:readme_style] = readme_style unless readme_style.empty?
    +    facts[:ruby_style] = ruby_style_facts(project_root)
    +    changelog_transfers = changelog_transfer_entries(PACKAGED_TEMPLATE_ROOT)
    +    facts[:changelog] = {transfer_entries: changelog_transfers} unless changelog_transfers.empty?
    +    gemspec_facts = gemspec_template_facts(kettle_config)
    +    facts[:gemspec] = gemspec_facts unless gemspec_facts.empty?
    +    template_tokens = template_tokens(facts, funding)
    +    template_facts[:tokens] = template_tokens unless template_tokens.empty?
    +  end
    +  if template_facts[:tokens].to_h.empty? && funding[:open_collective_org].to_s != ""
    +    template_facts[:tokens] = {"KJ|OPENCOLLECTIVE_ORG" => funding.fetch(:open_collective_org).to_s}
    +  end
    +  facts[:templates] = template_facts unless template_facts.empty?
    +  facts
    +end
    +
    +
    + +
    +

    + + .discover_monorepo_root_facts(project_root, kettle_config, env, template_selection) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +2701
    +2702
    +2703
    +2704
    +2705
    +2706
    +2707
    +2708
    +2709
    +2710
    +2711
    +2712
    +2713
    +2714
    +2715
    +2716
    +2717
    +2718
    +2719
    +2720
    +2721
    +2722
    +2723
    +2724
    +2725
    +2726
    +2727
    +2728
    +2729
    +2730
    +2731
    +2732
    +2733
    +2734
    +2735
    +2736
    +2737
    +2738
    +2739
    +2740
    +2741
    +2742
    +2743
    +2744
    +2745
    +2746
    +2747
    +2748
    +2749
    +2750
    +2751
    +2752
    +2753
    +2754
    +2755
    +2756
    +2757
    +2758
    +2759
    +2760
    +2761
    +2762
    +2763
    +2764
    +2765
    +2766
    +2767
    +2768
    +2769
    +2770
    +2771
    +2772
    +2773
    +2774
    +2775
    +2776
    +2777
    +2778
    +2779
    +2780
    +2781
    +2782
    +2783
    +2784
    +2785
    +2786
    +2787
    +2788
    +2789
    +2790
    +2791
    +2792
    +2793
    +2794
    +2795
    +2796
    +2797
    +2798
    +2799
    +2800
    +2801
    +2802
    +
    +
    # File 'lib/kettle/jem.rb', line 2701
    +
    +def discover_monorepo_root_facts(project_root, kettle_config, env, template_selection)
    +  source_url = git_remote_source_url(project_root)
    +  package_name = repository_name_from_source_url(source_url)
    +  package_name = File.basename(project_root.to_s) if package_name.empty?
    +  configured_or_detected_licenses = detected_license_ids(project_root)
    +  configured_or_detected_licenses = Array(kettle_config["licenses"]) if configured_or_detected_licenses.empty?
    +  copyright = copyright_facts(project_root, kettle_config)
    +  author = author_facts(kettle_config, env, copyright: copyright)
    +  license = license_facts(kettle_config.merge("licenses" => configured_or_detected_licenses), configured_or_detected_licenses, author: author, author_email: author[:email], copyright: copyright)
    +  test_min_ruby = config_test_min_ruby(kettle_config, nil)
    +  project_runtime = project_runtime_facts(
    +    kettle_config,
    +    env,
    +    package_name: package_name,
    +    source_url: source_url,
    +    author_domain: author[:domain],
    +    min_ruby: nil,
    +    test_min_ruby: test_min_ruby,
    +    version: nil,
    +    project_root: project_root
    +  )
    +  facts = {
    +    package: compact_hash(
    +      ecosystem: "monorepo",
    +      name: package_name,
    +      slug: package_name,
    +      description: "#{package_name} monorepo",
    +      homepage_url: source_url,
    +      source_url: source_url,
    +      license_expression: license[:expression]
    +    ),
    +    rubygems: compact_hash(
    +      namespace: classify_namespace(package_name),
    +      min_ruby: nil,
    +      engines: ruby_engines_config(kettle_config)
    +    ),
    +    template_profile: MONOREPO_ROOT_TEMPLATE_PROFILE
    +  }
    +  bootstrap = kettle_config_bootstrap_facts(project_root, env, template_selection: template_selection)
    +  bootstrap[:licenses] = configured_or_detected_licenses if bootstrap && !configured_or_detected_licenses.empty?
    +  facts[:kettle_config_bootstrap] = bootstrap if bootstrap
    +  facts[:author] = author unless author.empty?
    +  facts[:copyright] = copyright unless copyright.empty?
    +  forge = forge_facts(kettle_config, env, derived_github_user: nil)
    +  social = social_facts(kettle_config, env)
    +  facts[:forge] = forge unless forge.empty?
    +  facts[:social] = social unless social.empty?
    +  facts[:license] = license unless license.empty?
    +  facts[:project_runtime] = project_runtime unless project_runtime.empty?
    +  facts[:ruby_style] = ruby_style_facts(project_root)
    +  opencollective_policy = opencollective_policy(kettle_config, env)
    +  opencollective_disabled = opencollective_policy.fetch(:disabled)
    +  detected_open_collective_org = opencollective_org(project_root, kettle_config, env, opencollective_disabled: opencollective_disabled)
    +  detected_open_collective_org ||= fallback_opencollective_org unless opencollective_disabled
    +  funding = compact_hash(
    +    urls: funding_urls(
    +      project_root,
    +      package_name,
    +      opencollective_disabled: opencollective_disabled,
    +      open_collective_org: detected_open_collective_org && detected_open_collective_org.fetch(:org)
    +    ),
    +    platform_tokens: funding_platform_token_facts(kettle_config, env)
    +  )
    +  funding[:open_collective_disabled] = true if opencollective_disabled
    +  funding[:open_collective_disabled_source] = opencollective_policy[:source] if opencollective_disabled
    +  if detected_open_collective_org
    +    funding[:open_collective_org] = detected_open_collective_org.fetch(:org)
    +    funding[:open_collective_org_source] = detected_open_collective_org.fetch(:source)
    +  end
    +  facts[:funding] = funding unless funding.empty?
    +  repository = repository_facts(
    +    project_root,
    +    source_url,
    +    package_name: package_name,
    +    repository_topology: REPOSITORY_TOPOLOGY_STANDALONE
    +  )
    +  facts[:repository] = repository unless repository.empty?
    +  warnings = opencollective_fallback_warnings(funding, github_org_from_url(source_url).to_s)
    +  facts[:warnings] = warnings unless warnings.empty?
    +   = readme_logo_facts(
    +    kettle_config,
    +    package_name: package_name,
    +    github_org: project_runtime[:github_org],
    +    repository: facts[:repository]
    +  )
    +  facts[:readme_logo] =  unless .empty?
    +  disabled_integrations = disabled_integrations(kettle_config, license: license)
    +  facts[:integrations] = {disabled: disabled_integrations} unless disabled_integrations.empty?
    +  template_facts = {}
    +  template_config = template_runtime_config(kettle_config, facts, license: license)
    +  template_preferences = template_source_preferences(
    +    project_root,
    +    template_config,
    +    opencollective_disabled: opencollective_disabled,
    +    include_patterns: template_selection[:include]
    +  )
    +  template_facts[:source_preferences] = template_preferences unless template_preferences.empty?
    +  template_tokens = template_tokens(facts, funding)
    +  template_facts[:tokens] = template_tokens unless template_tokens.empty?
    +  facts[:templates] = template_facts unless template_facts.empty?
    +  facts
    +end
    +
    +
    + +
    +

    + + .display_path(path) ⇒ Object + + + + + +

    +
    +

    rubocop:enable ThreadSafety/ClassInstanceVariable

    + + +
    +
    +
    + + +
    + + + + +
    +
    +
    +
    +2087
    +2088
    +2089
    +2090
    +2091
    +
    +
    # File 'lib/kettle/jem.rb', line 2087
    +
    +def display_path(path)
    +  return path if path.nil?
    +
    +  path.to_s.sub(VAR_HOME_PREFIX, "/home")
    +end
    +
    +
    + +
    +

    + + .display_text(text) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +2093
    +2094
    +2095
    +2096
    +2097
    +
    +
    # File 'lib/kettle/jem.rb', line 2093
    +
    +def display_text(text)
    +  return text if text.nil?
    +
    +  text.to_s.gsub(VAR_HOME_TEXT, "/home")
    +end
    +
    +
    + +
    +

    + + .dotenv_merge_options(recipe) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +6988
    +6989
    +6990
    +6991
    +6992
    +6993
    +6994
    +6995
    +6996
    +6997
    +6998
    +6999
    +
    +
    # File 'lib/kettle/jem.rb', line 6988
    +
    +def dotenv_merge_options(recipe)
    +  options = {
    +    preference: (recipe.dig(:template_preference, :preference) || "destination").to_sym,
    +    add_template_only_nodes: true,
    +    freeze_token: recipe.dig(:template_preference, :freeze_token) || "kettle-jem"
    +  }
    +  if !recipe.dig(:template_preference, :add_template_only_nodes).nil?
    +    configured = DecisionPolicy.value_to_boolean(recipe.dig(:template_preference, :add_template_only_nodes))
    +    options[:add_template_only_nodes] = configured unless configured.nil?
    +  end
    +  options
    +end
    +
    +
    + +
    +

    + + .duplicate_drift_report(project_root:, template_root:, run_options: {}) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +3772
    +3773
    +3774
    +3775
    +3776
    +3777
    +3778
    +3779
    +3780
    +3781
    +3782
    +3783
    +3784
    +3785
    +3786
    +3787
    +3788
    +3789
    +3790
    +3791
    +3792
    +3793
    +3794
    +3795
    +3796
    +3797
    +3798
    +3799
    +3800
    +3801
    +3802
    +3803
    +3804
    +3805
    +3806
    +3807
    +3808
    +3809
    +
    +
    # File 'lib/kettle/jem.rb', line 3772
    +
    +def duplicate_drift_report(project_root:, template_root:, run_options: {})
    +  runner = run_options[:duplicate_drift_runner] || run_options["duplicate_drift_runner"]
    +  unless runner
    +    begin
    +      require "kettle/drift"
    +      runner = Kettle::Drift
    +    rescue LoadError
    +      return {
    +        available: false,
    +        reason: "kettle-drift is not available"
    +      }
    +    end
    +  end
    +
    +  outcome = if runner.respond_to?(:call)
    +    runner.call(project_root: project_root, template_dir: template_root)
    +  else
    +    runner.run(
    +      project_root: project_root,
    +      template_dir: template_root,
    +      lock_path: File.join(project_root.to_s, ".kettle-drift.lock"),
    +      mode: :force_update,
    +      printer_class: nil
    +    )
    +  end
    +  {
    +    available: true,
    +    warning_count: outcome.respond_to?(:warning_count) ? outcome.warning_count : outcome.fetch(:warning_count),
    +    json_path: outcome.respond_to?(:json_path) ? outcome.json_path : outcome[:json_path],
    +    lock_path: outcome.respond_to?(:lock_path) ? outcome.lock_path : outcome[:lock_path],
    +    exit_code: outcome.respond_to?(:exit_code) ? outcome.exit_code : outcome[:exit_code]
    +  }.compact
    +rescue => error
    +  {
    +    available: false,
    +    reason: "#{error.class}: #{error.message}"
    +  }
    +end
    +
    +
    + +
    +

    + + .enabled_ruby_engines(config) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +13398
    +13399
    +13400
    +13401
    +
    +
    # File 'lib/kettle/jem.rb', line 13398
    +
    +def enabled_ruby_engines(config)
    +  engines = ruby_engines_config(config)
    +  (engines.nil? || engines.empty?) ? DEFAULT_ENGINES : engines
    +end
    +
    +
    + +
    +

    + + .enforce_gemspec_dependency_minimum_requirements(source, receiver:) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +8105
    +8106
    +8107
    +8108
    +8109
    +8110
    +8111
    +8112
    +8113
    +8114
    +8115
    +8116
    +8117
    +8118
    +8119
    +8120
    +
    +
    # File 'lib/kettle/jem.rb', line 8105
    +
    +def enforce_gemspec_dependency_minimum_requirements(source, receiver:)
    +  replacements = ruby_call_records(source, nil).filter_map do |call|
    +    next unless gemspec_dependency_call_kind(call)
    +    next if receiver && call.receiver&.slice != receiver.to_s
    +
    +    name = ruby_string_argument(call)
    +    requirement = GEMSPEC_DEPENDENCY_MINIMUM_REQUIREMENTS[name]
    +    next unless requirement
    +    next if gemspec_dependency_requirements_satisfy_floor?(ruby_string_arguments(call).drop(1), requirement)
    +
    +    gemspec_dependency_minimum_requirement_replacement(call, requirement)
    +  end
    +  return source if replacements.empty?
    +
    +  replace_source_offsets(source, replacements)
    +end
    +
    +
    + +
    +

    + + .enforce_git_preflight!(git_preflight, decision_policy:, template_selection:) ⇒ Object + + + + + +

    +
    + + + +
    +
    +
    + +

    Raises:

    +
      + +
    • + + + (Error) + + + +
    • + +
    + +
    + + + + +
    +
    +
    +
    +9675
    +9676
    +9677
    +9678
    +9679
    +9680
    +
    +
    # File 'lib/kettle/jem.rb', line 9675
    +
    +def enforce_git_preflight!(git_preflight, decision_policy:, template_selection:)
    +  return unless decision_policy.require_clean
    +  return if template_selection.fetch(:skip_commit, false)
    +  raise Error, "Git preflight failed: project is not a git repository" unless git_preflight.fetch(:git_repository)
    +  raise Error, "Git preflight failed: worktree is not clean" unless git_preflight.fetch(:clean_worktree)
    +end
    +
    +
    + +
    +

    + + .ensure_gemspec_legacy_version_loader_preamble(content, entrypoint_require:, namespace:, min_ruby:) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +7308
    +7309
    +7310
    +7311
    +7312
    +7313
    +7314
    +7315
    +7316
    +7317
    +
    +
    # File 'lib/kettle/jem.rb', line 7308
    +
    +def ensure_gemspec_legacy_version_loader_preamble(content, entrypoint_require:, namespace:, min_ruby:)
    +  block = "#{gemspec_legacy_version_loader_block(entrypoint_require: entrypoint_require, namespace: namespace, min_ruby: min_ruby)}\n"
    +  node = gemspec_top_level_gem_version_node(content)
    +  return replace_source_range_lines(content, node.location.start_line, expand_line_range_through_following_blanks(content, node.location.end_line), block) if node
    +
    +  gemspec_call = gemspec_new_call(content)
    +  return content unless gemspec_call
    +
    +  insert_lines_before(content, gemspec_call.location.start_line, block)
    +end
    +
    +
    + +
    +

    + + .ensure_main_gemfile_nomono_bootstrap(content, template_content) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +5450
    +5451
    +5452
    +5453
    +5454
    +5455
    +5456
    +5457
    +5458
    +5459
    +5460
    +5461
    +5462
    +5463
    +
    +
    # File 'lib/kettle/jem.rb', line 5450
    +
    +def ensure_main_gemfile_nomono_bootstrap(content, template_content)
    +  return content if gemfile_declares_gem?(content, "nomono")
    +
    +  bootstrap_source = main_gemfile_nomono_bootstrap_source(template_content)
    +  return content if bootstrap_source.empty?
    +
    +  lines = content.to_s.lines
    +  insert_line = main_gemfile_templating_eval_line(content) ||
    +    main_gemfile_first_eval_gemfile_line(content) ||
    +    main_gemfile_after_gemspec_line(content) ||
    +    (lines.length + 1)
    +  lines.insert(insert_line - 1, bootstrap_source)
    +  ensure_trailing_newline(lines.join.gsub(/\n{3,}/, "\n\n"))
    +end
    +
    +
    + +
    +

    + + .ensure_monorepo_root_gemfile_dependencies(content) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +3632
    +3633
    +3634
    +3635
    +3636
    +3637
    +3638
    +3639
    +3640
    +3641
    +
    +
    # File 'lib/kettle/jem.rb', line 3632
    +
    +def ensure_monorepo_root_gemfile_dependencies(content)
    +  updated = ensure_trailing_newline(content.to_s.empty? ? %(source "https://gem.coop"\n) : content.to_s).dup
    +  monorepo_root_gemfile_dependency_lines.each do |line|
    +    next if gemfile_declares_gem?(updated, line.fetch(:name))
    +
    +    updated << "\n" unless updated.end_with?("\n\n")
    +    updated << line.fetch(:source)
    +  end
    +  ensure_trailing_newline(updated)
    +end
    +
    +
    + +
    +

    + + .ensure_runtime_dependencies!Object + + + + + +

    +
    +

    rubocop:disable ThreadSafety/ClassInstanceVariable

    + + +
    +
    +
    + + +
    + + + + +
    +
    +
    +
    +2069
    +2070
    +2071
    +2072
    +2073
    +2074
    +2075
    +2076
    +2077
    +2078
    +2079
    +2080
    +2081
    +2082
    +2083
    +2084
    +
    +
    # File 'lib/kettle/jem.rb', line 2069
    +
    +def ensure_runtime_dependencies!
    +  return if defined?(@runtime_dependencies_loaded) && @runtime_dependencies_loaded
    +
    +  require "ruby/merge"
    +  require "prism/merge"
    +  require "bash/merge"
    +  require "json/merge"
    +  require "dotenv/merge"
    +  require "rbs"
    +  require "rbs/merge"
    +  require "citrus-toml-merge"
    +  require "psych-merge"
    +  require "ast/crispr/markdown/markly"
    +  require "ast/crispr/ruby/prism"
    +  @runtime_dependencies_loaded = true
    +end
    +
    +
    + +
    +

    + + .ensure_spec_helper_simplecov_config_require(content) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +5769
    +5770
    +5771
    +5772
    +5773
    +5774
    +5775
    +5776
    +5777
    +5778
    +5779
    +5780
    +
    +
    # File 'lib/kettle/jem.rb', line 5769
    +
    +def ensure_spec_helper_simplecov_config_require(content)
    +  return content if simplecov_config_require_call_nodes(content).any?
    +
    +  simplecov_require = simplecov_require_call_records(content).first
    +  return content unless simplecov_require
    +
    +  insert_lines_after(
    +    content,
    +    simplecov_require.fetch(:end_line),
    +    "#{leading_whitespace(simplecov_require.fetch(:source))}require \"kettle/soup/cover/config\"\n"
    +  )
    +end
    +
    +
    + +
    +

    + + .ensure_spec_helper_simplecov_do_cov_bootstrap(content) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +5674
    +5675
    +5676
    +5677
    +5678
    +5679
    +5680
    +5681
    +5682
    +5683
    +5684
    +5685
    +
    +
    # File 'lib/kettle/jem.rb', line 5674
    +
    +def ensure_spec_helper_simplecov_do_cov_bootstrap(content)
    +  record = simplecov_do_cov_bootstrap_records(content).first
    +  return content unless record
    +  return content if record.fetch(:complete)
    +
    +  replace_source_range_lines(
    +    content,
    +    record.fetch(:start_line),
    +    record.fetch(:end_line),
    +    spec_helper_simplecov_do_cov_bootstrap_source(leading_whitespace(record.fetch(:source)))
    +  )
    +end
    +
    +
    + +
    +

    + + .ensure_spec_helper_simplecov_start(content) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +5782
    +5783
    +5784
    +5785
    +5786
    +5787
    +5788
    +5789
    +5790
    +5791
    +5792
    +5793
    +
    +
    # File 'lib/kettle/jem.rb', line 5782
    +
    +def ensure_spec_helper_simplecov_start(content)
    +  return content if simplecov_start_call_nodes(content).any?
    +
    +  config_require = simplecov_config_require_call_records(content).first
    +  return content unless config_require
    +
    +  insert_lines_after(
    +    content,
    +    config_require.fetch(:end_line),
    +    "#{leading_whitespace(config_require.fetch(:source))}SimpleCov.start\n"
    +  )
    +end
    +
    +
    + +
    +

    + + .ensure_trailing_newline(text) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +14709
    +14710
    +14711
    +14712
    +14713
    +
    +
    # File 'lib/kettle/jem.rb', line 14709
    +
    +def ensure_trailing_newline(text)
    +  return "" if text.to_s.empty?
    +
    +  text.end_with?("\n") ? text : "#{text}\n"
    +end
    +
    +
    + +
    +

    + + .ensure_workflow_top_level_section(content, key, section, before:) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +14362
    +14363
    +14364
    +14365
    +14366
    +14367
    +14368
    +14369
    +14370
    +14371
    +14372
    +14373
    +14374
    +14375
    +14376
    +
    +
    # File 'lib/kettle/jem.rb', line 14362
    +
    +def ensure_workflow_top_level_section(content, key, section, before:)
    +  top_level_keys = yaml_top_level_key_lines(content)
    +  return content if top_level_keys.key?(key.to_s)
    +
    +  lines = content.lines
    +  index = top_level_keys[before.to_s]
    +  if index
    +    prepared_section = (index.zero? || lines[index - 1].strip.empty?) ? section : "\n#{section}"
    +    lines.insert(index, prepared_section)
    +  else
    +    lines << "\n" unless lines.empty? || lines.last == "\n"
    +    lines << section
    +  end
    +  lines.join
    +end
    +
    +
    + +
    +

    + + .ensure_yaml_top_level_sequence_items(content, key, items) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +8789
    +8790
    +8791
    +8792
    +8793
    +8794
    +8795
    +8796
    +8797
    +8798
    +8799
    +8800
    +8801
    +8802
    +8803
    +8804
    +8805
    +8806
    +8807
    +8808
    +8809
    +8810
    +8811
    +8812
    +8813
    +8814
    +8815
    +8816
    +8817
    +8818
    +8819
    +8820
    +
    +
    # File 'lib/kettle/jem.rb', line 8789
    +
    +def ensure_yaml_top_level_sequence_items(content, key, items)
    +  document = Psych.parse_stream(content.to_s).children.first
    +  root = document&.root
    +  return content unless root.is_a?(Psych::Nodes::Mapping)
    +
    +  key_node, value_node = root.children.each_slice(2).find do |candidate_key, _candidate_value|
    +    candidate_key.is_a?(Psych::Nodes::Scalar) && candidate_key.value.to_s == key.to_s
    +  end
    +  lines = content.to_s.lines
    +  unless key_node
    +    lines << "\n" unless lines.empty? || lines.last.strip.empty?
    +    lines << "#{key}:\n"
    +    items.each { |item| lines << "  - #{item}\n" }
    +    return lines.join
    +  end
    +  return content unless value_node.is_a?(Psych::Nodes::Sequence)
    +
    +  existing = value_node.children.filter_map do |child|
    +    child.value.to_s if child.is_a?(Psych::Nodes::Scalar)
    +  end
    +  missing = items.map(&:to_s) - existing
    +  return content if missing.empty?
    +
    +  reference_line = value_node.children.last&.start_line || key_node.start_line
    +  reference = lines[reference_line].to_s
    +  indent = reference.start_with?("-") ? "" : reference[/\A\s*/].to_s
    +  insertion_index = value_node.children.last ? value_node.children.last.end_line + 1 : key_node.end_line + 1
    +  lines.insert(insertion_index, *missing.map { |item| "#{indent}- #{item}\n" })
    +  lines.join
    +rescue Psych::Exception
    +  content
    +end
    +
    +
    + +
    +

    + + .env_overridden_gemspec_fields(env) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +7974
    +7975
    +7976
    +7977
    +7978
    +7979
    +
    +
    # File 'lib/kettle/jem.rb', line 7974
    +
    +def env_overridden_gemspec_fields(env)
    +  fields = []
    +  fields << "authors" if present_template_token_value?(env["KJ_AUTHOR_NAME"].to_s)
    +  fields << "email" if present_template_token_value?(env["KJ_AUTHOR_EMAIL"].to_s)
    +  fields
    +end
    +
    +
    + +
    +

    + + .env_sync_value(env, env_key) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +8625
    +8626
    +8627
    +8628
    +8629
    +8630
    +8631
    +
    +
    # File 'lib/kettle/jem.rb', line 8625
    +
    +def env_sync_value(env, env_key)
    +  Array(env_key).each do |candidate|
    +    value = env[candidate].to_s.strip
    +    return value if present_template_token_value?(value)
    +  end
    +  ""
    +end
    +
    +
    + +
    +

    + + .execute_recipe(project_root:, recipe:, facts:, files:, decision_policy:, env: ENV) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +4307
    +4308
    +4309
    +4310
    +4311
    +4312
    +4313
    +4314
    +4315
    +4316
    +4317
    +4318
    +4319
    +4320
    +4321
    +4322
    +4323
    +4324
    +4325
    +4326
    +4327
    +4328
    +4329
    +4330
    +4331
    +4332
    +4333
    +4334
    +4335
    +4336
    +4337
    +4338
    +4339
    +4340
    +4341
    +4342
    +4343
    +4344
    +4345
    +4346
    +4347
    +4348
    +4349
    +4350
    +4351
    +4352
    +4353
    +4354
    +4355
    +4356
    +4357
    +4358
    +4359
    +4360
    +4361
    +4362
    +4363
    +4364
    +4365
    +4366
    +4367
    +4368
    +4369
    +4370
    +4371
    +4372
    +4373
    +4374
    +4375
    +4376
    +4377
    +4378
    +4379
    +4380
    +4381
    +4382
    +4383
    +4384
    +4385
    +4386
    +4387
    +4388
    +4389
    +4390
    +4391
    +4392
    +4393
    +4394
    +4395
    +4396
    +4397
    +4398
    +4399
    +4400
    +4401
    +4402
    +4403
    +4404
    +4405
    +4406
    +4407
    +4408
    +4409
    +4410
    +4411
    +4412
    +
    +
    # File 'lib/kettle/jem.rb', line 4307
    +
    +def execute_recipe(project_root:, recipe:, facts:, files:, decision_policy:, env: ENV)
    +  relative_path = recipe.fetch(:target_path)
    +  destination_existed = File.exist?(File.join(project_root, relative_path))
    +  original = files.fetch(relative_path, "")
    +  deletion = rakefile_scaffold_cleanup_recipe?(recipe) ? rakefile_scaffold_cleanup(original, facts) : nil
    +  final = case recipe.fetch(:name)
    +  when "readme_metadata"
    +    synchronize_readme(original, facts, project_root: project_root)
    +  when "changelog_unreleased"
    +    apply_changelog_transfer_entries(
    +      normalize_changelog(original, facts),
    +      facts.to_h.dig(:changelog, :transfer_entries)
    +    )
    +  when "generated_block_sync"
    +    synchronize_managed_block(original, facts)
    +  when "github_funding_yml"
    +    synchronize_github_funding_yml(original, facts)
    +  when "github_actions_ci"
    +    synchronize_github_actions_ci(original, facts)
    +  when "github_actions_framework_ci"
    +    synchronize_github_actions_framework_ci(original, facts)
    +  when /\Agithub_actions_framework_gemfile_/
    +    synchronize_github_actions_framework_gemfile(recipe.fetch(:target_path), facts)
    +  when "github_actions_coverage_ci"
    +    synchronize_github_actions_coverage_ci(original, facts)
    +  when /\Agithub_actions_obsolete_workflow_cleanup_/
    +    ""
    +  when /\Agithub_actions_opt_in_workflow_cleanup_/
    +    ""
    +  when /\Aopencollective_disabled_file_cleanup_/
    +    ""
    +  when /\Atemplate_legacy_destination_cleanup_/
    +    ""
    +  when /\Atemplate_obsolete_license_cleanup_/
    +    ""
    +  when /\Atemplate_shim_profile_cleanup_/
    +    ""
    +  when /\Agithub_actions_workflow_snippets_/
    +    synchronize_github_actions_workflow_snippets(original, facts: facts)
    +  when "kettle_config_bootstrap"
    +    apply_kettle_config_bootstrap(project_root, recipe, env: env)
    +  when /\Atemplate_source_preference_/
    +    original
    +  when /\Atemplate_source_application_/
    +    apply_template_source(project_root, recipe, original, facts: facts, env: env)
    +  when "rakefile_scaffold_cleanup"
    +    deletion.fetch(:content)
    +  else
    +    original
    +  end
    +  final = normalize_generated_rakefile(final) if relative_path == "Rakefile"
    +  final = ensure_trailing_newline(final) unless delete_file_recipe?(recipe)
    +
    +  template_content = recipe_template_content(project_root, recipe)
    +  request = content_recipe_execution_request(
    +    recipe_name: recipe.fetch(:primitive),
    +    recipe_version: "1",
    +    relative_path: relative_path,
    +    provider_family: recipe.fetch(:provider_family),
    +    provider_backend: recipe[:provider_backend],
    +    template_content: template_content,
    +    destination_content: original,
    +    steps: [content_recipe_step(recipe)],
    +    runtime_context: recipe_runtime_context(recipe, facts, deletion),
    +    metadata: {packaging_recipe: recipe.fetch(:name), project_root: project_root.to_s}
    +  )
    +  changed = delete_file_recipe?(recipe) || final != original
    +   = (recipe).merge(destination_existed: destination_existed)
    +  decision_evaluation = recipe_decision_evaluation(
    +    decision_policy: decision_policy,
    +    recipe: recipe,
    +    changed: changed,
    +    destination_existed: destination_existed
    +  )
    +  if %w[keep skip].include?(decision_evaluation.fetch(:selected_action))
    +    final = original
    +    changed = false
    +    deletion = nil
    +  end
    +  if github_workflow_template_recipe?(recipe)
    +    stale_pins = stale_github_workflow_template_pin_records(relative_path, final, original)
    +    [:stale_github_workflow_template_pins] = stale_pins unless stale_pins.empty?
    +  end
    +  step_report = content_recipe_step_report(recipe: recipe, request: request, original: original, final: final, changed: changed, deletion: deletion)
    +  [:decision_evaluation] = decision_evaluation
    +  report = content_recipe_execution_report(
    +    request: request,
    +    final_content: final,
    +    changed: changed,
    +    step_reports: [step_report],
    +    diagnostics: [],
    +    metadata: 
    +  )
    +
    +  {
    +    recipe_name: recipe.fetch(:name),
    +    relative_path: relative_path,
    +    changed: changed,
    +    request_envelope: content_recipe_execution_request_envelope(request),
    +    report_envelope: content_recipe_execution_report_envelope(report),
    +    final_content: final,
    +    metadata: ,
    +    decision_evaluation: decision_evaluation,
    +    diagnostics: []
    +  }
    +end
    +
    +
    + +
    +

    + + .existing_entrypoint_version_namespace(project_root, relative_path) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +11455
    +11456
    +11457
    +11458
    +
    +
    # File 'lib/kettle/jem.rb', line 11455
    +
    +def existing_entrypoint_version_namespace(project_root, relative_path)
    +  content = read_project_file(project_root, relative_path)
    +  ruby_version_class_eval_namespaces(content).first || ruby_entrypoint_module_namespace(content)
    +end
    +
    +
    + +
    +

    + + .existing_version_file_value(project_root, relative_path) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +11395
    +11396
    +11397
    +
    +
    # File 'lib/kettle/jem.rb', line 11395
    +
    +def existing_version_file_value(project_root, relative_path)
    +  ruby_version_constant_value(read_project_file(project_root, relative_path)).to_s
    +end
    +
    +
    + +
    +

    + + .existing_version_namespace(project_root, relative_path) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +11411
    +11412
    +11413
    +
    +
    # File 'lib/kettle/jem.rb', line 11411
    +
    +def existing_version_namespace(project_root, relative_path)
    +  ruby_version_module_namespace(read_project_file(project_root, relative_path))
    +end
    +
    +
    + +
    +

    + + .expand_framework_gemfile_pattern(pattern, version) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +13676
    +13677
    +13678
    +13679
    +13680
    +13681
    +13682
    +13683
    +
    +
    # File 'lib/kettle/jem.rb', line 13676
    +
    +def expand_framework_gemfile_pattern(pattern, version)
    +  replacement = if pattern.include?("_{version}") || pattern.include?("{version}_")
    +    version.tr(".", "_")
    +  else
    +    version
    +  end
    +  pattern.gsub("{version}", replacement)
    +end
    +
    +
    + +
    +

    + + .expand_line_range_through_following_blanks(content, end_line) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +7332
    +7333
    +7334
    +7335
    +7336
    +7337
    +
    +
    # File 'lib/kettle/jem.rb', line 7332
    +
    +def expand_line_range_through_following_blanks(content, end_line)
    +  lines = content.to_s.lines
    +  line = end_line
    +  line += 1 while lines[line]&.strip == ""
    +  line
    +end
    +
    +
    + +
    +

    + + .explicit_integration_enabled?(config, integration) ⇒ Boolean + + + + + +

    +
    + + + +
    +
    +
    + +

    Returns:

    +
      + +
    • + + + (Boolean) + + + +
    • + +
    + +
    + + + + +
    +
    +
    +
    +12605
    +12606
    +12607
    +12608
    +12609
    +12610
    +12611
    +
    +
    # File 'lib/kettle/jem.rb', line 12605
    +
    +def explicit_integration_enabled?(config, integration)
    +  return false unless config.is_a?(Hash) && config["integrations"].is_a?(Hash)
    +
    +  config["integrations"].any? do |name, value|
    +    normalize_integration_name(name) == integration && truthy_config?(value)
    +  end
    +end
    +
    +
    + +
    +

    + + .explicit_zero_runtime_floor?(facts) ⇒ Boolean + + + + + +

    +
    + + + +
    +
    +
    + +

    Returns:

    +
      + +
    • + + + (Boolean) + + + +
    • + +
    + +
    + + + + +
    +
    +
    +
    +7447
    +7448
    +7449
    +
    +
    # File 'lib/kettle/jem.rb', line 7447
    +
    +def explicit_zero_runtime_floor?(facts)
    +  facts.to_h.dig(:rubygems, :min_ruby).to_s.strip == "0"
    +end
    +
    +
    + +
    +

    + + .extract_gemspec_development_dependencies(gemspec) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +3331
    +3332
    +3333
    +3334
    +3335
    +3336
    +3337
    +3338
    +3339
    +3340
    +3341
    +3342
    +3343
    +3344
    +3345
    +3346
    +3347
    +
    +
    # File 'lib/kettle/jem.rb', line 3331
    +
    +def extract_gemspec_development_dependencies(gemspec)
    +  if gemspec.is_a?(Hash)
    +    return Array(gemspec[:development_dependencies] || gemspec["development_dependencies"]).map do |dependency|
    +      {
    +        name: dependency.name.to_s,
    +        requirement: dependency.requirement.to_s
    +      }
    +    end.reject { |dependency| dependency.fetch(:name).empty? }.uniq { |dependency| dependency.fetch(:name) }
    +  end
    +
    +  Array(gemspec&.development_dependencies).map do |dependency|
    +    {
    +      name: dependency.name.to_s,
    +      requirement: dependency.requirement.to_s
    +    }
    +  end.reject { |dependency| dependency.fetch(:name).empty? }.uniq { |dependency| dependency.fetch(:name) }
    +end
    +
    +
    + +
    +

    + + .fallback_opencollective_orgObject + + + + + +

    + + + + +
    +
    +
    +
    +10018
    +10019
    +10020
    +
    +
    # File 'lib/kettle/jem.rb', line 10018
    +
    +def fallback_opencollective_org
    +  {org: DEFAULT_OPENCOLLECTIVE_ORG, source: "fallback.default"}
    +end
    +
    +
    + +
    +

    + + .falsey_config?(value) ⇒ Boolean + + + + + +

    +
    + + + +
    +
    +
    + +

    Returns:

    +
      + +
    • + + + (Boolean) + + + +
    • + +
    + +
    + + + + +
    +
    +
    +
    +12667
    +12668
    +12669
    +
    +
    # File 'lib/kettle/jem.rb', line 12667
    +
    +def falsey_config?(value)
    +  %w[false no 0].include?(value.to_s.strip.downcase)
    +end
    +
    +
    + +
    +

    + + .filter_recipe_pack(pack, template_selection) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +9316
    +9317
    +9318
    +9319
    +9320
    +9321
    +9322
    +9323
    +
    +
    # File 'lib/kettle/jem.rb', line 9316
    +
    +def filter_recipe_pack(pack, template_selection)
    +  patterns = recipe_filter_patterns(template_selection)
    +  return pack if patterns.empty?
    +
    +  pack.merge(
    +    recipes: pack.fetch(:recipes).select { |recipe| selected_template_path?(recipe.fetch(:target_path), patterns) }
    +  )
    +end
    +
    +
    + +
    +

    + + .finalize_accepted_template_source(recipe, content, destination_content, facts:, project_root: nil) ⇒ Object + + + + + +

    + + @@ -18107,9 +33252,9 @@

    - .append_used_markdown_link_definitions(content, definition_source) ⇒ Object + .finalize_gemfile_template_source(recipe, content, destination_content, facts:, template_content:) ⇒ Object @@ -18121,35 +33266,49 @@

    @@ -18157,9 +33316,9 @@ @@ -18255,9 +33346,9 @@

    -

    +

    - .apply_configured_gemspec_licenses(content, facts, receiver:) ⇒ Object + .finalize_rubocop_config(content) ⇒ Object @@ -18269,35 +33360,17 @@

     
     
    -6084
    -6085
    -6086
    -6087
    -6088
    -6089
    -6090
    -6091
    -6092
    -6093
    -6094
    -6095
    -6096
    +4782 +4783 +4784 +4785

    @@ -18305,9 +33378,9 @@

    -

    +

    - .apply_configured_gemspec_required_ruby_version(content, facts, receiver:) ⇒ Object + .finalize_template_source_content(recipe, content) ⇒ Object @@ -18319,47 +33392,19 @@

    -6098 -6099 -6100 -6101 -6102 -6103 -6104 -6105 -6106 -6107 -6108 -6109 -6110 -6111 -6112 -6113 -6114 -6115 -6116 -6117 +4775 +4776 +4777 +4778 +4779 +4780

    @@ -18413,62 +33444,83 @@

    -

    +

    - .apply_kettle_config_bootstrap_profile(content, profile, gemspec_path) ⇒ Object + .forge_facts(config, env, derived_github_user: nil) ⇒ Object -

    -
    - +

    +
    +
    +
    +4787
    +4788
    +4789
    +4790
    +4791
    +4792
    +4793
    +4794
    +4795
    +4796
    +4797
    +4798
    +4799
    +4800
    +4801
    +4802
    +4803
    -
    # File 'lib/kettle/jem.rb', line 4588
    +      
    # File 'lib/kettle/jem.rb', line 4787
     
    -def append_missing_markdown_link_definitions(content, definitions)
    -  existing = Ast::Crispr::Markdown::Markly.document_context(
    -    content: content,
    -    source_label: "README.md"
    -  ).structural_owners(owner_scope: :link_definitions).map { |owner| owner.label.to_s }
    -  missing_sources = definitions.reject { |owner| existing.include?(owner.label.to_s) }.map do |owner|
    -    owner.source.to_s.end_with?("\n") ? owner.source.to_s : "#{owner.source}\n"
    +def finalize_accepted_template_source(recipe, content, destination_content, facts:, project_root: nil)
    +  case template_file_type(recipe)
    +  when :gemfile
    +    finalize_gemfile_template_source(recipe, content, destination_content, facts: facts, template_content: content)
    +  when :appraisals
    +    merge_appraisals_template_policy(content, facts: facts)
    +  when :gemspec
    +    package_name = facts.dig(:package, :name).to_s if facts
    +    receiver = gemspec_block_param(content) || "spec"
    +    pruned = remove_gemspec_self_dependency_lines(content, package_name, receiver: receiver)
    +    rewrite_gemspec_version_loader(pruned, facts: facts)
    +  when :toml
    +    preserve_mise_project_settings(recipe, content, destination_content, project_root: project_root)
    +  else
    +    content
       end
    -  return content if missing_sources.empty?
    -
    -  [content.to_s.rstrip, "", missing_sources.join.rstrip, ""].join("\n")
     end
    -
    # File 'lib/kettle/jem.rb', line 4601
    +      
    # File 'lib/kettle/jem.rb', line 5356
     
    -def append_used_markdown_link_definitions(content, definition_source)
    -  existing = ReadmePostProcessor.markdown_link_definition_owners(content).map { |owner| owner.label.to_s }.to_set
    -  referenced = ReadmePostProcessor.markdown_inline_reference_owners(content).flat_map(&:labels).map(&:to_s).to_set
    -  available = ReadmePostProcessor.markdown_link_definition_owners(definition_source).to_h do |owner|
    -    [owner.label.to_s, owner]
    +def finalize_gemfile_template_source(recipe, content, destination_content, facts:, template_content:)
    +  output = merge_gemfile_template_policy(
    +    content,
    +    facts: facts,
    +    template_content: template_content,
    +    preserve_self_word_entries: local_gemfile_template_recipe?(recipe)
    +  )
    +  if recipe.fetch(:target_path).to_s == "Gemfile"
    +    output = inject_main_gemfile_recording_eval(output, facts)
    +    output = remove_stale_main_gemfile_direct_sibling_block(output, template_content)
    +    output = deduplicate_main_gemfile_direct_sibling_blocks(output)
    +    output = ensure_main_gemfile_nomono_bootstrap(output, template_content)
    +    output = normalize_main_gemfile_nomono_requirements(output)
    +    output = guard_main_gemfile_runtime_workspace_overrides(output)
       end
    -  missing = referenced.filter_map do |label|
    -    next if existing.include?(label)
    +  return output if recipe.dig(:template_preference, :strategy).to_s == "accept_template"
    +  return output unless local_gemfile_template_recipe?(recipe)
     
    -    available[label]
    -  end
    -  append_missing_markdown_link_definitions(content, missing)
    +  merge_local_gem_overrides(output, destination_content, facts: facts, template_content: template_content)
     end
    -
    # File 'lib/kettle/jem.rb', line 5228
    -
    -def apply_commented_gem_dependency_policy(template_content, content)
    -  commented_blocks = commented_gem_dependency_blocks(template_content)
    -  return content if commented_blocks.empty?
    -
    -   = gemfile_gem_call_records(content)
    -    .select { |record| commented_blocks.key?(record.fetch(:name)) }
    -    .to_h { |record| [record.fetch(:start_line), record] }
    -   = commented_gem_dependency_block_records(content)
    -    .select { |record| commented_blocks.key?(record.fetch(:name)) }
    -    .to_h { |record| [record.fetch(:block_start_line), record] }
    -  inserted = Set.new
    -  skip_until = 0
    -  lines = []
    -  content.to_s.lines.each_with_index do |line, index|
    -    line_number = index + 1
    -    next if line_number < skip_until
    -
    -    if (record = [line_number])
    -      gem_name = record.fetch(:name)
    -      append_gemfile_comment_block(lines, commented_blocks.fetch(gem_name)) unless inserted.include?(gem_name)
    -      inserted << gem_name
    -      skip_until = record.fetch(:block_end_line) + 1
    -      next
    -    end
    -
    -    if (record = [line_number])
    -      gem_name = record.fetch(:name)
    -      append_gemfile_comment_block(lines, commented_blocks.fetch(gem_name)) unless inserted.include?(gem_name)
    -      inserted << gem_name
    -      skip_until = record.fetch(:end_line) + 1
    -      next
    -    end
    +      
    # File 'lib/kettle/jem.rb', line 6037
     
    -    lines << line
    -  end
    -  ensure_trailing_newline(lines.join.gsub(/\n{3,}/, "\n\n"))
    +def finalize_github_workflow_template(content, facts = nil)
    +  inject_framework_matrix_workflow_env(update_github_actions_pins(content), facts)
     end
    -
    # File 'lib/kettle/jem.rb', line 6084
    -
    -def apply_configured_gemspec_licenses(content, facts, receiver:)
    -  licenses = Array(facts&.dig(:license, :spdx)).map { |license| license.to_s.strip }.reject(&:empty?)
    -  return content if licenses.empty?
    -
    -  replacement = "#{receiver}.licenses = #{licenses.inspect}"
    -  existing = gemspec_assignment_records(content, receiver: receiver).find { |record| record.fetch(:field) == "licenses" }
    -  return replace_source_range_lines(content, existing.fetch(:start_line), existing.fetch(:end_line), "#{leading_whitespace(existing.fetch(:source))}#{replacement}\n") if existing
    -
    -  homepage = gemspec_assignment_records(content, receiver: receiver).find { |record| record.fetch(:field) == "homepage" }
    -  return insert_lines_after(content, homepage.fetch(:end_line), "  #{replacement}\n") if homepage
    +      
    # File 'lib/kettle/jem.rb', line 4782
     
    -  content
    +def finalize_rubocop_config(content)
    +  finalized = remove_yaml_scalar_path(content, %w[AllCops TargetRubyVersion])
    +  ensure_yaml_top_level_sequence_items(finalized, "plugins", ["rubocop-rspec"])
     end
    -
    # File 'lib/kettle/jem.rb', line 6098
    -
    -def apply_configured_gemspec_required_ruby_version(content, facts, receiver:)
    -  return remove_gemspec_assignment(content, receiver: receiver, field: "required_ruby_version") if explicit_zero_runtime_floor?(facts)
    -
    -  min_ruby = minimum_ruby_token(facts.to_h.dig(:rubygems, :min_ruby))
    -  if min_ruby.to_s.empty?
    -    return content
    -  end
    -
    -  replacement = %(#{receiver}.required_ruby_version = ">= #{min_ruby}")
    -  existing = gemspec_assignment_records(content, receiver: receiver).find { |record| record.fetch(:field) == "required_ruby_version" }
    -  return replace_source_range_lines(content, existing.fetch(:start_line), existing.fetch(:end_line), "#{leading_whitespace(existing.fetch(:source))}#{replacement}\n") if existing
    -
    -  licenses = gemspec_assignment_records(content, receiver: receiver).find { |record| record.fetch(:field) == "licenses" }
    -  return insert_lines_after(content, licenses.fetch(:end_line), "  #{replacement}\n") if licenses
    +      
    # File 'lib/kettle/jem.rb', line 4775
     
    -  homepage = gemspec_assignment_records(content, receiver: receiver).find { |record| record.fetch(:field) == "homepage" }
    -  return insert_lines_after(content, homepage.fetch(:end_line), "  #{replacement}\n") if homepage
    +def finalize_template_source_content(recipe, content)
    +  return finalize_rubocop_config(content) if recipe.fetch(:target_path).to_s == ".rubocop.yml"
    +  return normalize_spec_helper_simplecov_template_source(content) if recipe.fetch(:target_path).to_s == "spec/spec_helper.rb"
     
       content
     end
    @@ -18369,9 +33414,9 @@

    -

    +

    - .apply_kettle_config_bootstrap(project_root, recipe, env: ENV) ⇒ Object + .first_grapheme(text) ⇒ Object @@ -18383,29 +33428,15 @@

     
     
    -6649
    -6650
    -6651
    -6652
    -6653
    -6654
    -6655
    -6656
    -6657
    -6658
    +9218 +9219 +9220

    -
    # File 'lib/kettle/jem.rb', line 6649
    +      
    # File 'lib/kettle/jem.rb', line 9218
     
    -def apply_kettle_config_bootstrap(project_root, recipe, env: ENV)
    -  content = recipe_template_content(project_root, recipe)
    -  tokens = stringify_template_tokens(recipe.fetch(:template_tokens, {}))
    -  content = resolve_template_tokens(content, tokens, scan_unresolved: false)
    -  bootstrap_licenses = Array(recipe[:bootstrap_licenses]).map(&:to_s).reject(&:empty?)
    -  content = replace_kettle_config_bootstrap_licenses(content, bootstrap_licenses) unless bootstrap_licenses.empty?
    -  content = replace_kettle_config_bootstrap_project_emoji(content, recipe[:bootstrap_project_emoji]) unless recipe[:bootstrap_project_emoji].to_s.empty?
    -  content = apply_kettle_config_bootstrap_profile(content, recipe[:bootstrap_template_profile], recipe[:bootstrap_gemspec_path])
    -  sync_kettle_config_env_overrides(content, env)
    +def first_grapheme(text)
    +  text.to_s.strip[/\A\X/u].to_s
     end
    + + + + +
    +
     
     
    -  
    +10589
    +10590
    +10591
    +10592
    +10593
    +10594
    +10595
    +10596
    +10597
    +10598
    +
    +
    # File 'lib/kettle/jem.rb', line 10589
    +
    +def forge_facts(config, env, derived_github_user: nil)
    +  token_config = token_config_values(config)
    +  forge_config = token_config["forge"].is_a?(Hash) ? token_config["forge"] : {}
    +  compact_hash(
    +    gh_user: forge_user_value(forge_config, env, :gh_user, derived_value: derived_github_user).to_s,
    +    gl_user: forge_user_value(forge_config, env, :gl_user).to_s,
    +    cb_user: forge_user_value(forge_config, env, :cb_user).to_s,
    +    sh_user: forge_user_value(forge_config, env, :sh_user).to_s
    +  )
    +end
    +
    -
    + +
    +

    -

    Raises:

    -
      + .forge_template_tokens(forge) ⇒ Object -
    • - - - (Error) - - - -
    • + -
    -

    + +
    @@ -18476,9 +33528,9 @@

    -

    +

    - .apply_markdown_conditional_block(content, name, keep:) ⇒ Object + .forge_user_value(forge_config, env, key, derived_value: nil) ⇒ Object @@ -18490,55 +33542,15 @@

     
     
    -4501
    -4502
    -4503
    -4504
    -4505
    -4506
    -4507
    -4508
    -4509
    -4510
    -4511
    -4512
    -4513
    -4514
    -4515
    -4516
    -4517
    -4518
    -4519
    -4520
    -4521
    -4522
    -4523
    +10600 +10601 +10602

    @@ -18546,9 +33558,9 @@

    -

    +

     
     
    -6899
    -6900
    -6901
    -6902
    -6903
    -6904
    -6905
    -6906
    -6907
    -6908
    -6909
    -6910
    -6911
    -6912
    -6913
    -6914
    -6915
    -6916
    -6917
    -6918
    -6919
    -6920
    -6921
    -6922
    +10570 +10571 +10572 +10573 +10574 +10575 +10576 +10577 +10578 +10579 +10580 +10581 +10582 +10583 +10584 +10585 +10586 +10587

    @@ -18618,9 +33618,9 @@

    -

    +

    - .apply_monorepo_subgem_readme_recipe(content, facts) ⇒ Object + .framework_gemfile_path(gemfile) ⇒ Object @@ -18632,31 +33632,15 @@

     
     
    -4525
    -4526
    -4527
    -4528
    -4529
    -4530
    -4531
    -4532
    -4533
    -4534
    -4535
    +13685 +13686 +13687

    @@ -18664,9 +33648,9 @@

    -

    +

    - .apply_monorepo_subgem_template_profile(content, gemspec_path, profile = MONOREPO_SUBGEM_TEMPLATE_PROFILE) ⇒ Object + .framework_matrix_appraisal_block(entry) ⇒ Object @@ -18678,18 +33662,6 @@

     
     
    -6924
    -6925
    -6926
    -6927
    -6928
    -6929
    -6930
    -6931
    -6932
    -6933
    -6934
    -6935
     6936
     6937
     6938
    @@ -18699,60 +33671,20 @@ 

    6942 6943 6944 -6945 -6946 -6947 -6948 -6949 -6950 -6951 -6952 -6953 -6954 -6955 -6956 -6957 -6958 -6959

    +6945

    @@ -18760,9 +33692,9 @@

    -

    +

    - .apply_monorepo_subgem_thin_readme_projection(content, facts) ⇒ Object + .framework_matrix_appraisal_dependency_gemfiles(facts) ⇒ Object @@ -18774,55 +33706,23 @@

    -4537 -4538 -4539 -4540 -4541 -4542 -4543 -4544 -4545 -4546 -4547 -4548 -4549 -4550 -4551 -4552 -4553 -4554 -4555 -4556 -4557 -4558 -4559 +6833 +6834 +6835 +6836 +6837 +6838 +6839

    @@ -18830,9 +33730,9 @@

    -

    +

    - .apply_project(project_root, env: ENV, run_options: {}) ⇒ Object + .framework_matrix_appraisal_env_by_name(facts) ⇒ Object @@ -18844,47 +33744,23 @@

     
     
    -3112
    -3113
    -3114
    -3115
    -3116
    -3117
    -3118
    -3119
    -3120
    -3121
    -3122
    -3123
    -3124
    -3125
    -3126
    -3127
    -3128
    -3129
    -3130
    +6072 +6073 +6074 +6075 +6076 +6077 +6078

    @@ -18892,9 +33768,9 @@

    -

    +

    - .apply_readme_badge_policy(content, facts) ⇒ Object + .framework_matrix_appraisal_gemfile_path(path) ⇒ Object @@ -18906,51 +33782,15 @@

     
     
    -4468
    -4469
    -4470
    -4471
    -4472
    -4473
    -4474
    -4475
    -4476
    -4477
    -4478
    -4479
    -4480
    -4481
    -4482
    -4483
    -4484
    -4485
    -4486
    -4487
    -4488
    +13551 +13552 +13553

    @@ -18958,9 +33798,9 @@

    -

    +

    - .apply_readme_conditional_blocks(content, facts) ⇒ Object + .framework_matrix_appraisal_gemfiles(raw) ⇒ Object @@ -18972,19 +33812,21 @@

     
     
    -4462
    -4463
    -4464
    -4465
    -4466
    +13544 +13545 +13546 +13547 +13548 +13549

    @@ -18992,9 +33834,9 @@

    -

    +

    - .apply_readme_kloc_badge(content, facts, project_root) ⇒ Object + .framework_matrix_appraisal_name(dimension, slug) ⇒ Object @@ -19006,27 +33848,15 @@

     
     
    -4413
    -4414
    -4415
    -4416
    -4417
    -4418
    -4419
    -4420
    -4421
    +13555 +13556 +13557

    @@ -19034,9 +33864,9 @@

    -

    +

    - .apply_readme_style(project_root, env: ENV) ⇒ Object + .framework_matrix_env(raw) ⇒ Object @@ -19048,27 +33878,29 @@

     
     
    -3481
    -3482
    -3483
    -3484
    -3485
    -3486
    -3487
    -3488
    -3489
    +13585 +13586 +13587 +13588 +13589 +13590 +13591 +13592 +13593 +13594

    @@ -19076,9 +33908,9 @@

    -

    +

    - .apply_recipe_report(project_root, recipe_report) ⇒ Object + .framework_matrix_replaced_appraisal_names(dimension, entry, name) ⇒ Object @@ -19090,31 +33922,21 @@

     
     
    -7747
    -7748
    -7749
    -7750
    -7751
    -7752
    -7753
    -7754
    -7755
    -7756
    -7757
    +13528 +13529 +13530 +13531 +13532 +13533

    @@ -19122,9 +33944,9 @@

    -

    +

    - .apply_template_source(project_root, recipe, original, facts: nil, env: ENV) ⇒ Object + .framework_matrix_version_entry(raw) ⇒ Object @@ -19136,123 +33958,59 @@

     
     
    -4200
    -4201
    -4202
    -4203
    -4204
    -4205
    -4206
    -4207
    -4208
    -4209
    -4210
    -4211
    -4212
    -4213
    -4214
    -4215
    -4216
    -4217
    -4218
    -4219
    -4220
    -4221
    -4222
    -4223
    -4224
    -4225
    -4226
    -4227
    -4228
    -4229
    -4230
    -4231
    -4232
    -4233
    -4234
    -4235
    -4236
    -4237
    -4238
    -4239
    -4240
    -4241
    -4242
    -4243
    -4244
    -4245
    -4246
    -4247
    -4248
    -4249
    -4250
    -4251
    -4252
    -4253
    -4254
    -4255
    -4256
    +13559 +13560 +13561 +13562 +13563 +13564 +13565 +13566 +13567 +13568 +13569 +13570 +13571 +13572 +13573 +13574 +13575 +13576 +13577 +13578 +13579 +13580 +13581 +13582 +13583

    @@ -19260,39 +34018,62 @@

    -

    +

    - .appraisal_all_versions_for(resolver:, gem_name:, mode:, requirements: nil, include_versions: nil, exclude_versions: nil) ⇒ Object + .framework_matrix_workflow_enabled?(raw) ⇒ Boolean -

     
     
    -6890
    -6891
    -6892
    -6893
    -6894
    -6895
    -6896
    -6897
    +10604 +10605 +10606 +10607 +10608 +10609 +10610 +10611
    -
    # File 'lib/kettle/jem.rb', line 6890
    -
    -def apply_kettle_config_bootstrap_profile(content, profile, gemspec_path)
    -  return content if profile.to_s.empty?
    -  return replace_yaml_scalar_path(content, %w[templates profile], FULL_TEMPLATE_PROFILE) if profile.to_s == FULL_TEMPLATE_PROFILE
    -  return apply_monorepo_root_template_profile(content) if profile.to_s == MONOREPO_ROOT_TEMPLATE_PROFILE
    -  return apply_monorepo_subgem_template_profile(content, gemspec_path, profile) if monorepo_subgem_template_profile_value?(profile)
    +      
    # File 'lib/kettle/jem.rb', line 10604
     
    -  raise Error, "Unknown kettle-jem template profile: #{profile}"
    +def forge_template_tokens(forge)
    +  {
    +    "KJ|GH:USER" => forge[:gh_user].to_s,
    +    "KJ|GL:USER" => forge[:gl_user].to_s,
    +    "KJ|CB:USER" => forge[:cb_user].to_s,
    +    "KJ|SH:USER" => forge[:sh_user].to_s
    +  }
     end
    -
    # File 'lib/kettle/jem.rb', line 4501
    +      
    # File 'lib/kettle/jem.rb', line 10600
     
    -def apply_markdown_conditional_block(content, name, keep:)
    -  start_text = "KJ:#{name}:START"
    -  end_text = "KJ:#{name}:END"
    -  if keep
    -    processed = delete_markdown_with_ast_crispr(
    -      content,
    -      Ast::Crispr::Markdown::Markly::Selectors.html_comment(text: start_text, limit: {at_least: 0})
    -    )
    -    delete_markdown_with_ast_crispr(
    -      processed,
    -      Ast::Crispr::Markdown::Markly::Selectors.html_comment(text: end_text, limit: {at_least: 0})
    -    )
    -  else
    -    delete_markdown_with_ast_crispr(
    -      content,
    -      Ast::Crispr::Markdown::Markly::Selectors.html_comment_block(
    -        start_text: start_text,
    -        end_text: end_text,
    -        limit: {at_least: 0}
    -      )
    -    )
    -  end
    +def forge_user_value(forge_config, env, key, derived_value: nil)
    +  preferred_template_token_value(derived_value, forge_config[key.to_s], env, FORGE_USER_ENV_KEYS.fetch(key))
     end
    -
    # File 'lib/kettle/jem.rb', line 6899
    +      
    # File 'lib/kettle/jem.rb', line 10570
     
    -def apply_monorepo_root_template_profile(content)
    -  entry_lines = MONOREPO_ROOT_TEMPLATE_ENTRIES.map { |entry| "    - #{entry}" }
    -  profiled_content = replace_yaml_scalar_path(content, %w[templates profile], MONOREPO_ROOT_TEMPLATE_PROFILE)
    -  entries_block = ["  entries:", *entry_lines].join("\n")
    -  updated = insert_after_line_sequence(
    -    profiled_content,
    -    ["templates:", "  root: packaged", "  apply: true", "  profile: #{MONOREPO_ROOT_TEMPLATE_PROFILE}"],
    -    entries_block,
    -    nil
    -  )
    -  if updated == profiled_content
    -    updated = insert_after_line_sequence(
    -      profiled_content,
    -      ["templates:", "  root: packaged", "  apply: true"],
    -      entries_block,
    -      "Could not apply monorepo-root template profile to .kettle-jem.yml bootstrap template"
    -    )
    -  end
    -  if updated == profiled_content
    -    raise Error,
    -      "Could not apply monorepo-root template profile to .kettle-jem.yml bootstrap template"
    +def format_copyright_years(years)
    +  sorted = Array(years).map(&:to_i).reject(&:zero?).sort.uniq
    +  return Time.now.utc.year.to_s if sorted.empty?
    +  return sorted.first.to_s if sorted.one?
    +
    +  runs = []
    +  run = [sorted.first]
    +  sorted[1..].to_a.each do |year|
    +    if year == run.last + 1
    +      run << year
    +    else
    +      runs << run
    +      run = [year]
    +    end
       end
    -  add_monorepo_root_file_overrides(updated)
    +  runs << run
    +  runs.map { |span| span.one? ? span.first.to_s : "#{span.first}-#{span.last}" }.join(", ")
     end
    -
    # File 'lib/kettle/jem.rb', line 4525
    -
    -def apply_monorepo_subgem_readme_recipe(content, facts)
    -  return content unless monorepo_subgem_template_profile?(facts)
    -
    -  source_url = facts.dig(:package, :source_url).to_s
    -  return content if source_url.empty?
    +      
    # File 'lib/kettle/jem.rb', line 13685
     
    -  root_doc_links = MONOREPO_SUBGEM_README_BLOB_PATHS.to_h do |path|
    -    [path, source_blob_url(source_url, path)]
    -  end
    -  rewrite_markdown_reference_links(content, root_doc_links)
    +def framework_gemfile_path(gemfile)
    +  gemfile.include?("/") ? gemfile : "gemfiles/#{gemfile}"
     end
    -
    # File 'lib/kettle/jem.rb', line 6924
    +      
    # File 'lib/kettle/jem.rb', line 6936
     
    -def apply_monorepo_subgem_template_profile(content, gemspec_path, profile = MONOREPO_SUBGEM_TEMPLATE_PROFILE)
    -  entries = monorepo_subgem_template_entries(gemspec_path, profile)
    -  entry_lines = entries.flat_map do |entry|
    -    if entry.is_a?(Hash)
    -      [
    -        "    - source: #{entry.fetch("source")}",
    -        "      target: #{entry.fetch("target")}"
    -      ]
    -    else
    -      ["    - #{entry}"]
    -    end
    -  end
    -  normalized_profile = normalize_template_profile(profile)
    -  profiled_content = replace_yaml_scalar_path(content, %w[templates profile], normalized_profile)
    -  entries_block = ["  entries:", *entry_lines].join("\n")
    -  updated = insert_after_line_sequence(
    -    profiled_content,
    -    ["templates:", "  root: packaged", "  apply: true", "  profile: #{normalized_profile}"],
    -    entries_block,
    -    nil
    -  )
    -  if updated == profiled_content
    -    updated = insert_after_line_sequence(
    -      profiled_content,
    -      ["templates:", "  root: packaged", "  apply: true"],
    -      entries_block,
    -      "Could not apply monorepo-subgem template profile to .kettle-jem.yml bootstrap template"
    -    )
    -  end
    -  if updated == profiled_content
    -    raise Error,
    -      "Could not apply #{normalized_profile} template profile to .kettle-jem.yml bootstrap template"
    +def framework_matrix_appraisal_block(entry)
    +  lines = [
    +    %(appraise "#{entry.fetch(:name)}" do)
    +  ]
    +  entry.fetch(:eval_gemfiles).each do |gemfile|
    +    lines << %(  eval_gemfile "#{gemfile}")
       end
    -
    -  add_monorepo_subgem_file_overrides(updated, gemspec_path, normalized_profile)
    +  lines << "end"
    +  lines.join("\n")
     end
    -
    # File 'lib/kettle/jem.rb', line 4537
    -
    -def apply_monorepo_subgem_thin_readme_projection(content, facts)
    -  return content unless monorepo_subgem_template_profile?(facts)
    +      
    # File 'lib/kettle/jem.rb', line 6833
     
    -  context = Ast::Crispr::Markdown::Markly.document_context(content: content, source_label: "README.md")
    -  link_definitions = context.structural_owners(owner_scope: :link_definitions)
    -  heading_sections = context.structural_owners(owner_scope: :heading_sections)
    -  removable = heading_sections.each_with_index.select do |owner, index|
    -    owner.level.to_i > 1 && !MONOREPO_SUBGEM_THIN_README_KEEP_HEADINGS.include?(owner.base.to_s)
    -  end.reject do |owner, index|
    -    markdown_heading_has_preserved_readme_ancestor?(heading_sections, index)
    -  end.map(&:first)
    -  projected = removable.reverse.reduce(content.to_s) do |processed, owner|
    -    delete_markdown_with_ast_crispr(
    -      processed,
    -      Ast::Crispr::Markdown::Markly::Selectors.heading_section(
    -        heading_text: owner.heading_text,
    -        level: owner.level,
    -        limit: {at_least: 0}
    -      )
    -    )
    -  end
    -  append_missing_markdown_link_definitions(projected, link_definitions)
    +def framework_matrix_appraisal_dependency_gemfiles(facts)
    +  framework_matrix = facts.to_h.dig(:ci, :framework_matrix).to_h
    +  [
    +    *framework_matrix.fetch(:appraisals, []).flat_map { |entry| entry.fetch(:eval_gemfiles, []) },
    +    *framework_matrix.fetch(:gemfiles, []).map { |entry| entry.fetch(:path).to_s.delete_prefix("gemfiles/") }
    +  ].map(&:to_s).to_set
     end
    -
    # File 'lib/kettle/jem.rb', line 3112
    +      
    # File 'lib/kettle/jem.rb', line 6072
     
    -def apply_project(project_root, env: ENV, run_options: {})
    -  report = plan_project(project_root, env: env, run_options: run_options).merge(mode: "apply")
    -  before_apply_files = snapshot_changed_files(
    -    project_root,
    -    report.fetch(:recipe_reports).filter_map { |entry| entry[:relative_path] }
    -  )
    -  run_apply_phases(project_root, report)
    -  report[:changed_files] = actual_changed_files_after_apply(project_root, report.fetch(:changed_files), before_apply_files)
    -  report[:post_apply_steps] = post_apply_steps(project_root, report)
    -  report[:changed_files] = (report.fetch(:changed_files, []) + report.fetch(:post_apply_steps).flat_map do |step|
    -    step.fetch(:changed_files, [])
    -  end).uniq.sort
    -  report[:duplicate_drift] = duplicate_drift_report(
    -    project_root: project_root,
    -    template_root: template_root_path(project_root, config: kettle_jem_config(project_root)),
    -    run_options: run_options
    -  )
    -  report
    +def framework_matrix_appraisal_env_by_name(facts)
    +  entries = facts.to_h.dig(:ci, :framework_matrix, :appraisals).to_a
    +  entries.to_h do |entry|
    +    env = {"KJ_FRAMEWORK_MATRIX_GEM" => entry.fetch(:gem).to_s}.merge(entry.fetch(:env, {}).transform_keys(&:to_s))
    +    [entry.fetch(:name).to_s, env.reject { |_key, value| value.to_s.empty? }]
    +  end.reject { |_name, env| env.empty? }
     end
    -
    # File 'lib/kettle/jem.rb', line 4468
    +      
    # File 'lib/kettle/jem.rb', line 13551
     
    -def apply_readme_badge_policy(content, facts)
    -  processed = remove_readme_badge_and_refs(content, README_CODETRIAGE_BADGE, README_CODETRIAGE_LINK_LABELS)
    -  if facts.dig(:readme_style, :fossa_project).to_s.empty?
    -    processed = remove_readme_badge_and_refs(processed, README_FOSSA_BADGE, README_FOSSA_LINK_LABELS)
    -  end
    -  unless Array(facts.dig(:license, :spdx)).map(&:to_s).include?("MIT")
    -    processed = remove_readme_badge_and_refs(
    -      processed,
    -      README_LICENSE_EYE_WORKFLOW_BADGE,
    -      README_LICENSE_EYE_WORKFLOW_LINK_LABELS
    -    )
    -  end
    -  if facts.dig(:funding, :open_collective_disabled)
    -    processed = remove_readme_badge_and_refs(
    -      processed,
    -      README_OPEN_COLLECTIVE_FUNDING_BADGES,
    -      README_OPEN_COLLECTIVE_LINK_LABELS
    -    )
    -  end
    -  processed
    +def framework_matrix_appraisal_gemfile_path(path)
    +  path.to_s.sub(%r{\Agemfiles/}, "")
     end
    -
    # File 'lib/kettle/jem.rb', line 4462
    +      
    # File 'lib/kettle/jem.rb', line 13544
     
    -def apply_readme_conditional_blocks(content, facts)
    -  open_collective_enabled = !facts.dig(:funding, :open_collective_disabled)
    -  processed = apply_markdown_conditional_block(content, "OPEN_COLLECTIVE", keep: open_collective_enabled)
    -  apply_markdown_conditional_block(processed, "NO_OPEN_COLLECTIVE", keep: !open_collective_enabled)
    +def framework_matrix_appraisal_gemfiles(raw)
    +  Array(raw["appraisal_gemfiles"] || raw["appraisal_eval_gemfiles"]).filter_map do |path|
    +    normalized = framework_matrix_appraisal_gemfile_path(path.to_s.strip)
    +    normalized unless normalized.empty?
    +  end
     end
    -
    # File 'lib/kettle/jem.rb', line 4413
    -
    -def apply_readme_kloc_badge(content, facts, project_root)
    -  kloc = readme_kloc_from_changelog(project_root, facts.dig(:project_runtime, :version))
    -  return content if kloc.to_s.empty?
    +      
    # File 'lib/kettle/jem.rb', line 13555
     
    -  content.to_s.gsub(
    -    /(\[🧮kloc-img\]:\s*https?:\/\/img\.shields\.io\/badge\/KLOC-)(\d+(?:\.\d+)?)(-[^\s]*)/,
    -    "\\1#{kloc}\\3"
    -  )
    +def framework_matrix_appraisal_name(dimension, slug)
    +  [dimension, slug].join("-").downcase.gsub(/[^a-z0-9]+/, "-").gsub(/\A-|-+\z/, "")
     end
    -
    # File 'lib/kettle/jem.rb', line 3481
    +      
    # File 'lib/kettle/jem.rb', line 13585
     
    -def apply_readme_style(project_root, env: ENV)
    -  report = plan_readme_style(project_root, env: env).merge(mode: "apply")
    -  return report unless report.fetch(:changed)
    +def framework_matrix_env(raw)
    +  return {} unless raw.is_a?(Hash)
     
    -  path = File.join(project_root, report.fetch(:readme_path))
    -  FileUtils.mkdir_p(File.dirname(path))
    -  File.write(path, report.fetch(:final_content))
    -  report
    +  raw.each_with_object({}) do |(key, value), result|
    +    name = key.to_s.strip
    +    next if name.empty?
    +
    +    result[name] = value.to_s
    +  end
     end
    -
    # File 'lib/kettle/jem.rb', line 7747
    +      
    # File 'lib/kettle/jem.rb', line 13528
     
    -def apply_recipe_report(project_root, recipe_report)
    -  return unless recipe_report[:changed]
    +def framework_matrix_replaced_appraisal_names(dimension, entry, name)
    +  default_name = framework_matrix_appraisal_name(dimension, entry.fetch(:slug))
    +  return [] if default_name == name
     
    -  path = File.join(project_root, recipe_report.fetch(:relative_path))
    -  if recipe_report.dig(:metadata, :delete_file)
    -    FileUtils.rm_f(path)
    -  else
    -    FileUtils.mkdir_p(File.dirname(path))
    -    File.write(path, recipe_report.fetch(:final_content))
    -  end
    +  [default_name]
     end
    -
    # File 'lib/kettle/jem.rb', line 4200
    -
    -def apply_template_source(project_root, recipe, original, facts: nil, env: ENV)
    -  strategy = recipe.dig(:template_preference, :strategy).to_s
    -  return original if strategy == "keep_destination"
    -
    -  content = recipe_template_content(project_root, recipe)
    -  return finalize_github_workflow_template(content, facts) if strategy == "raw_copy" && github_workflow_template_recipe?(recipe)
    -  return finalize_template_source_content(recipe, content) if strategy == "raw_copy"
    -
    -  resolved = resolve_template_tokens(
    -    content,
    -    recipe.fetch(:template_tokens, {}),
    -    scan_unresolved: unresolved_template_scan?(recipe)
    -  )
    -rescue ArgumentError => e
    -  raise ArgumentError, "#{recipe.fetch(:target_path)}: #{e.message}"
    -else
    -  resolved = prepare_readme_template(resolved, recipe[:readme_style]) if recipe.fetch(:target_path) == "README.md"
    -  resolved = prepare_github_workflow_template(resolved, recipe, facts)
    -  if recipe.fetch(:target_path) == "README.md" && (strategy.empty? || strategy == "merge")
    -    processed = postprocess_readme_content(
    -      merge_readme_template(
    -        template_content: resolved,
    -        destination_content: original,
    -        preserve_config: recipe.dig(:template_preference, :readme_preserve_config) || {}
    -      ),
    -      facts,
    -      project_root: project_root
    -    )
    -    return append_used_markdown_link_definitions(processed, resolved)
    -  end
    -  if strategy.empty? || strategy == "merge"
    -    merged = merge_config_template_source(recipe, resolved, original, facts: facts, env: env)
    -    merged = preserve_mise_project_settings(recipe, merged, original, project_root: project_root) if template_file_type(recipe) == :toml
    -    return sync_kettle_config_env_overrides(merged, env) if recipe.fetch(:target_path) == KETTLE_CONFIG_PATH
    -
    -    if github_workflow_template_recipe?(recipe)
    -      merged = preserve_github_workflow_project_settings(recipe, merged, original, project_root: project_root)
    -      return finalize_github_workflow_template(merged, facts)
    -    end
    -
    -    return finalize_template_source_content(recipe, merged)
    -  end
    -  if strategy == "accept_template"
    -    accepted = finalize_accepted_template_source(recipe, resolved, original, facts: facts, project_root: project_root)
    -    accepted = preserve_github_workflow_project_settings(recipe, accepted, original, project_root: project_root) if github_workflow_template_recipe?(recipe)
    -    accepted = sync_kettle_config_env_overrides(accepted, env) if recipe.fetch(:target_path) == KETTLE_CONFIG_PATH
    -    accepted = finalize_github_workflow_template(accepted, facts) if github_workflow_template_recipe?(recipe)
    -    return postprocess_readme_content(accepted, facts, project_root: project_root) if recipe.fetch(:target_path) == "README.md"
    +      
    # File 'lib/kettle/jem.rb', line 13559
     
    -    return finalize_template_source_content(recipe, accepted)
    +def framework_matrix_version_entry(raw)
    +  if raw.is_a?(Hash)
    +    label = raw.fetch("label", raw["version"]).to_s.strip
    +    slug = raw.fetch("slug", label).to_s.strip
    +    requirement = raw.fetch("requirement", default_framework_matrix_requirement(label)).to_s.strip
    +    appraisal_name = (raw["appraisal"] || raw["appraisal_name"] || raw["standard_appraisal"]).to_s.strip
    +    env = framework_matrix_env(raw["env"])
    +  else
    +    label = raw.to_s.strip
    +    slug = label
    +    requirement = default_framework_matrix_requirement(label)
    +    appraisal_name = ""
    +    env = {}
       end
    +  return if label.empty? || slug.empty? || requirement.empty?
     
    -  resolved = finalize_github_workflow_template(resolved, facts) if github_workflow_template_recipe?(recipe)
    -  return postprocess_readme_content(resolved, facts, project_root: project_root) if recipe.fetch(:target_path) == "README.md"
    -
    -  finalize_template_source_content(recipe, resolved)
    +  entry = {
    +    label: label,
    +    slug: slug,
    +    requirement: requirement
    +  }
    +  entry[:appraisal_name] = appraisal_name unless appraisal_name.empty?
    +  entry[:env] = env unless env.empty?
    +  entry
     end
    +
    +
    + + + +
    +
    +
    + +

    Returns:

    +
      + +
    • + + + (Boolean) + + + +
    • + +
    + +
    @@ -19300,9 +34081,9 @@

    -

    +

    - .appraisal_assign_version_buckets(selected_versions:, seams:, buckets:, bucket_ranges:, all_versions:) ⇒ Object + .freeze_marker_blocks(content, freeze_token: nil) ⇒ Object @@ -19314,39 +34095,49 @@

     
     
    -2227
    -2228
    -2229
    -2230
    -2231
    -2232
    -2233
    -2234
    -2235
    -2236
    -2237
    -2238
    -2239
    -2240
    -2241
    - -

    + @@ -19354,66 +34145,43 @@

    -

    - - .appraisal_block_has_matrix_dependency_gemfile?(block, matrix_dependency_gemfiles) ⇒ Boolean +

    - + .funding_platform_token_facts(config, env) ⇒ Object -

    -
    - - -
    -
    -
    - -

    Returns:

    -
      - -
    • - - - (Boolean) - - - -
    • -
    - -

     
     
    -2458
    -2459
    -2460
    -2461
    -2462
    -2463
    -2464
    -2465
    +13535 +13536 +13537 +13538 +13539 +13540 +13541 +13542
    -
    # File 'lib/kettle/jem.rb', line 2458
    +      
    # File 'lib/kettle/jem.rb', line 13535
     
    -def appraisal_all_versions_for(resolver:, gem_name:, mode:, requirements: nil, include_versions: nil, exclude_versions: nil)
    -  base_versions = if mode.to_s == "patch"
    -    resolver.versions(gem_name, requirements: requirements).map { |entry| entry[:number] || entry["number"] }
    -  else
    -    resolver.minor_versions_by_major(gem_name, requirements: requirements).flat_map { |entry| entry[:minors] || entry["minors"] }
    -  end
    -  appraisal_finalize_versions(base_versions, include_versions: include_versions, exclude_versions: exclude_versions)
    +def framework_matrix_workflow_enabled?(raw)
    +  configured = raw["workflow"]
    +  configured = raw["generate_workflow"] if configured.nil?
    +  configured = raw["ci"] if configured.nil?
    +  return true if configured.nil?
    +
    +  DecisionPolicy.value_to_boolean(configured) != false
     end
    -
    # File 'lib/kettle/jem.rb', line 2227
    -
    -def appraisal_assign_version_buckets(selected_versions:, seams:, buckets:, bucket_ranges:, all_versions:)
    -  return [] if selected_versions.empty? || buckets.empty?
    +8058
    +8059
    +8060
    +8061
    +8062
    +8063
    +8064
    +8065
    +8066
    +8067
    +8068
    +8069
    +8070
    +8071
    +8072
    +8073
    +8074
    +8075
    +8076
    +8077
    +
    +
    # File 'lib/kettle/jem.rb', line 8058
     
    -  normalized_ranges = appraisal_normalized_bucket_ranges(bucket_ranges)
    -  version_min_rubies = appraisal_version_min_ruby_map(all_versions, seams)
    -  assignments = selected_versions.sort_by { |version| Gem::Version.new(version) }.filter_map do |version|
    -    min_ruby = version_min_rubies[version]
    -    next unless min_ruby
    +def freeze_marker_blocks(content, freeze_token: nil)
    +  marker = freeze_token.to_s.empty? ? "kettle-jem" : freeze_token.to_s
    +  lines = content.to_s.lines
    +  blocks = []
    +  index = 0
    +  while index < lines.length
    +    unless lines[index].include?("# #{marker}:freeze")
    +      index += 1
    +      next
    +    end
     
    -    next_seam = appraisal_next_seam_ruby(version, min_ruby, all_versions, version_min_rubies)
    -    bucket = next_seam ? appraisal_bucket_below(next_seam, buckets, normalized_ranges) : buckets.last
    -    {version: version, bucket: bucket} if bucket
    +    start_index = index
    +    while index < lines.length
    +      index += 1
    +      break if lines[index - 1].include?("# #{marker}:unfreeze")
    +    end
    +    blocks << lines[start_index...index]
       end
    -  appraisal_fill_bucket_gaps(assignments, buckets, normalized_ranges, version_min_rubies, all_versions)
    +  blocks
     end
    +
    @@ -19421,9 +34189,9 @@

    -

    +

    - .appraisal_blocks(content) ⇒ Object + .funding_platform_token_value(funding_config, env, key) ⇒ Object @@ -19435,41 +34203,15 @@

     
     
    -5872
    -5873
    -5874
    -5875
    -5876
    -5877
    -5878
    -5879
    -5880
    -5881
    -5882
    -5883
    -5884
    -5885
    -5886
    -5887
    +10624 +10625 +10626

    @@ -19477,9 +34219,9 @@

    -

    +

    - .appraisal_bucket_below(ruby_floor, buckets, bucket_ranges) ⇒ Object + .funding_template_tokens(funding) ⇒ Object @@ -19491,25 +34233,27 @@

     
     
    -2322
    -2323
    -2324
    -2325
    -2326
    -2327
    -2328
    -2329
    +10628 +10629 +10630 +10631 +10632 +10633 +10634 +10635 +10636

    @@ -19517,9 +34261,9 @@

    -

    +

    - .appraisal_bucket_sort_key(bucket) ⇒ Object + .funding_urls(project_root, package_name, funding_uri: nil, opencollective_disabled: false, open_collective_org: nil) ⇒ Object @@ -19531,17 +34275,27 @@

     
     
    -2282
    -2283
    -2284
    -2285
    +9523 +9524 +9525 +9526 +9527 +9528 +9529 +9530 +9531

    @@ -19549,9 +34303,9 @@

    -

    +

    - .appraisal_call_records(content) ⇒ Object + .gem_major_token(version) ⇒ Object @@ -19563,37 +34317,19 @@

     
     
    -5906
    -5907
    -5908
    -5909
    -5910
    -5911
    -5912
    -5913
    -5914
    -5915
    -5916
    -5917
    -5918
    -5919
    +10355 +10356 +10357 +10358 +10359

    @@ -19601,9 +34337,9 @@

    -

    +

    - .appraisal_compatible_version_for_bucket?(resolver:, gem_name:, version:, ruby_series:, bucket_ranges:) ⇒ Boolean + .gemfile_comment_line?(line) ⇒ Boolean @@ -19638,31 +34374,15 @@

    -2475 -2476 -2477 -2478 -2479 -2480 -2481 -2482 -2483 -2484 -2485 +6614 +6615 +6616

    @@ -19670,65 +34390,52 @@

    -

    +

    - .appraisal_eval_gemfile_path(path) ⇒ Object + .gemfile_conditional_node?(node) ⇒ Boolean -

     
     
    -5625
    -5626
    -5627
    -5628
    -5629
    -5630
    -5631
    -5632
    -5633
    -5634
    +10613 +10614 +10615 +10616 +10617 +10618 +10619 +10620 +10621 +10622
    -
    # File 'lib/kettle/jem.rb', line 5625
    -
    -def appraisal_block_has_matrix_dependency_gemfile?(block, matrix_dependency_gemfiles)
    -  ruby_call_records(block, :eval_gemfile).any? do |call|
    -    path = ruby_string_argument(call).to_s
    -    next true if matrix_dependency_gemfiles.include?(path)
    +      
    # File 'lib/kettle/jem.rb', line 10613
     
    -    path.start_with?("modular/") &&
    -      path.delete_prefix("modular/").include?("/") &&
    -      !path.start_with?("modular/x_std_libs/")
    -  end
    +def funding_platform_token_facts(config, env)
    +  token_config = token_config_values(config)
    +  funding_config = token_config["funding"].is_a?(Hash) ? token_config["funding"] : {}
    +  compact_hash(
    +    kofi: funding_platform_token_value(funding_config, env, :kofi).to_s,
    +    paypal: funding_platform_token_value(funding_config, env, :paypal).to_s,
    +    buymeacoffee: funding_platform_token_value(funding_config, env, :buymeacoffee).to_s,
    +    liberapay: funding_platform_token_value(funding_config, env, :liberapay).to_s
    +  )
     end
    -
    # File 'lib/kettle/jem.rb', line 5872
    +      
    # File 'lib/kettle/jem.rb', line 10624
     
    -def appraisal_blocks(content)
    -  lines = content.to_s.lines
    -  blocks = {}
    -  order = []
    -  records = appraisal_call_records(content)
    -  records.each do |record|
    -    name = record.fetch(:name)
    -    unless blocks.key?(name)
    -      blocks[name] = record.fetch(:source)
    -      order << name
    -    end
    -  end
    -  prelude_end = records.empty? ? lines.length : records.first.fetch(:start_line) - 1
    -  prelude = lines[0...prelude_end].join
    -  {prelude: prelude, blocks: blocks, order: order}
    +def funding_platform_token_value(funding_config, env, key)
    +  preferred_template_token_value(nil, funding_config[key.to_s], env, FUNDING_TOKEN_ENV_KEYS.fetch(key))
     end
    -
    # File 'lib/kettle/jem.rb', line 2322
    -
    -def appraisal_bucket_below(ruby_floor, buckets, bucket_ranges)
    -  buckets.filter_map do |bucket|
    -    range = bucket_ranges[bucket]
    -    next unless range && range.fetch(:ceiling) < ruby_floor
    +      
    # File 'lib/kettle/jem.rb', line 10628
     
    -    [bucket, range.fetch(:ceiling)]
    -  end.max_by(&:last)&.first
    +def funding_template_tokens(funding)
    +  platform_tokens = funding.fetch(:platform_tokens, {})
    +  {
    +    "KJ|FUNDING:KOFI" => platform_tokens[:kofi].to_s,
    +    "KJ|FUNDING:PAYPAL" => platform_tokens[:paypal].to_s,
    +    "KJ|FUNDING:BUYMEACOFFEE" => platform_tokens[:buymeacoffee].to_s,
    +    "KJ|FUNDING:LIBERAPAY" => platform_tokens[:liberapay].to_s
    +  }
     end
    -
    # File 'lib/kettle/jem.rb', line 2282
    +      
    # File 'lib/kettle/jem.rb', line 9523
     
    -def appraisal_bucket_sort_key(bucket)
    -  match = bucket.to_s.match(/\Ar(\d+)(?:\.(\d+))?\z/)
    -  [match[1].to_i, match[2] ? match[2].to_i : 999]
    +def funding_urls(project_root, package_name, funding_uri: nil, opencollective_disabled: false, open_collective_org: nil)
    +  urls = [funding_uri]
    +  path = File.join(project_root, ".github", "FUNDING.yml")
    +  urls.concat(github_funding_urls(path, opencollective_disabled: opencollective_disabled)) if File.exist?(path)
    +  urls << github_funding_platform_urls("open_collective", [open_collective_org]).first unless opencollective_disabled
    +  urls << github_funding_platform_urls("tidelift", ["rubygems/#{package_name}"]).first
    +
    +  urls.compact.uniq.sort
     end
    -
    # File 'lib/kettle/jem.rb', line 5906
    -
    -def appraisal_call_records(content)
    -  lines = content.to_s.lines
    -  ruby_call_records(content, :appraise).filter_map do |call|
    -    name = ruby_string_argument(call)
    -    next unless name
    +      
    # File 'lib/kettle/jem.rb', line 10355
     
    -    {
    -      name: name,
    -      start_line: call.location.start_line,
    -      end_line: call.location.end_line,
    -      source: (lines[(call.location.start_line - 1)..(call.location.end_line - 1)] || []).join
    -    }
    -  end
    +def gem_major_token(version)
    +  Gem::Version.new(version.to_s).segments.first.to_s
    +rescue ArgumentError
    +  "0"
     end
    -
    # File 'lib/kettle/jem.rb', line 2475
    -
    -def appraisal_compatible_version_for_bucket?(resolver:, gem_name:, version:, ruby_series:, bucket_ranges:)
    -  range = bucket_ranges[ruby_series] || bucket_ranges[ruby_series.to_s]
    -  return true unless range
    +      
    # File 'lib/kettle/jem.rb', line 6614
     
    -  ceiling = Gem::Version.new((range[:ceiling] || range["ceiling"]).to_s)
    -  exact_version = appraisal_latest_minor_patch(resolver: resolver, gem_name: gem_name, version: version)
    -  min_ruby = resolver.min_ruby_version(gem_name, exact_version)
    -  min_ruby.nil? || Gem::Version.new(min_ruby.to_s) <= ceiling
    -rescue
    -  true
    +def gemfile_comment_line?(line)
    +  line.to_s.lstrip.start_with?("#")
     end
    - - - - -
    -
    -
    +
    +
    + -2029 -2030 -2031
    -
    -
    # File 'lib/kettle/jem.rb', line 2029
     
    -def appraisal_eval_gemfile_path(path)
    -  path.to_s.delete_prefix("gemfiles/")
    -end
    -
    +
    - -
    -

    +
    - .appraisal_extract_runtime_dependencies(gemspec_content) ⇒ Object +

    Returns:

    +
      - +
    • + + + (Boolean) + + + +
    • +
    - -

    +
    @@ -19736,121 +34443,74 @@

    -

    +

    - .appraisal_file_content(matrix_entries) ⇒ Object + .gemfile_declares_gem?(content, gem_name) ⇒ Boolean -

     
     
    -2409
    -2410
    -2411
    -2412
    -2413
    -2414
    +5914 +5915 +5916
    -
    # File 'lib/kettle/jem.rb', line 2409
    +      
    # File 'lib/kettle/jem.rb', line 5914
     
    -def appraisal_extract_runtime_dependencies(gemspec_content)
    -  gemspec_dependency_records(gemspec_content)
    -    .reject { |record| record.fetch(:kind) == "add_development_dependency" }
    -    .map { |record| record.fetch(:name) }
    -    .uniq
    +def gemfile_conditional_node?(node)
    +  node.is_a?(::Prism::IfNode) || node.is_a?(::Prism::UnlessNode)
     end
    - - - - -
    -
    -
    +
    +
    + -2009 -2010 -2011 -2012 -2013 -2014 -2015 -2016 -2017 -2018 -2019 -2020 -2021 -2022 -2023 -2024 -2025 -2026 -2027
    -
    -
    # File 'lib/kettle/jem.rb', line 2009
     
    -def appraisal_file_content(matrix_entries)
    -  lines = [
    -    "# frozen_string_literal: true",
    -    "",
    -    "# Generated by kettle-jem",
    -    "# Do not edit directly; regenerate from Kettle/Jem appraisal matrix metadata.",
    -    ""
    -  ]
    -  matrix_entries.each do |entry|
    -    lines << %(appraise "#{entry.fetch(:name)}" do)
    -    lines << %(  eval_gemfile "#{appraisal_eval_gemfile_path(entry.fetch(:tier1_gemfile))}") if entry[:tier1_gemfile]
    -    lines << %(  eval_gemfile "#{appraisal_eval_gemfile_path(entry.fetch(:tier2_gemfile))}") if entry[:tier2_gemfile]
    -    lines << %(  eval_gemfile "#{appraisal_eval_gemfile_path(entry.fetch(:x_std_libs_gemfile))}") if entry[:x_std_libs_gemfile]
    -    lines << "end"
    -    lines << ""
    -  end
    -  lines.pop while lines.last == ""
    -  ensure_trailing_newline(lines.join("\n"))
    -end
    -
    +
    - -
    -

    +
    - .appraisal_fill_bucket_gaps(assignments, buckets, bucket_ranges, version_min_rubies, all_versions) ⇒ Object +

    Returns:

    +
      - +
    • + + + (Boolean) + + + +
    • +
    - -

    +
    @@ -19858,9 +34518,9 @@

    -

    +

    - .appraisal_filtered_versions(version_metadata, requirements:) ⇒ Object + .gemfile_dependency_insertion_line(content) ⇒ Object @@ -19872,31 +34532,27 @@

     
     
    -2173
    -2174
    -2175
    -2176
    -2177
    -2178
    -2179
    -2180
    -2181
    -2182
    -2183
    +6341 +6342 +6343 +6344 +6345 +6346 +6347 +6348 +6349

    @@ -19904,9 +34560,9 @@

    -

    +

    - .appraisal_finalize_versions(base_versions, include_versions: nil, exclude_versions: nil) ⇒ Object + .gemfile_dependency_names(content) ⇒ Object @@ -19918,23 +34574,15 @@

     
     
    -2467
    -2468
    -2469
    -2470
    -2471
    -2472
    -2473
    +4603 +4604 +4605

    @@ -19942,51 +34590,66 @@

    -

    +

    - .appraisal_find_ruby_seams(version_metadata) ⇒ Object + .gemfile_dependency_statement?(node) ⇒ Boolean -

     
     
    -2331
    -2332
    -2333
    -2334
    -2335
    -2336
    -2337
    -2338
    -2339
    -2340
    -2341
    -2342
    -2343
    -2344
    -2345
    -2346
    -2347
    -2348
    +3658 +3659 +3660 +3661 +3662 +3663 +3664 +3665 +3666 +3667 +3668 +3669 +3670 +3671
    -
    # File 'lib/kettle/jem.rb', line 2331
    +      
    # File 'lib/kettle/jem.rb', line 3658
     
    -def appraisal_fill_bucket_gaps(assignments, buckets, bucket_ranges, version_min_rubies, all_versions)
    -  covered = assignments.map { |assignment| assignment.fetch(:bucket) }
    -  (buckets - covered).each do |bucket|
    -    range = bucket_ranges[bucket]
    -    next unless range
    +def gemfile_declares_gem?(content, gem_name)
    +  ruby_call_records(content, nil).any? do |call|
    +    next false unless call.receiver.nil?
     
    -    filler = all_versions.sort_by { |version| Gem::Version.new(version) }.reverse.find do |version|
    -      ruby = version_min_rubies[version]
    -      ruby&.between?(range.fetch(:floor), range.fetch(:ceiling))
    -    end
    -    filler ||= all_versions.sort_by { |version| Gem::Version.new(version) }.reverse.find do |version|
    -      ruby = version_min_rubies[version]
    -      ruby && ruby <= range.fetch(:ceiling)
    +    case call.name
    +    when :gem
    +      ruby_string_argument(call) == gem_name.to_s
    +    when :gemspec
    +      gemspec_path_declares_gem?(ruby_keyword_string_argument(call, :path), gem_name)
    +    else
    +      false
         end
    -    assignments << {version: filler, bucket: bucket, filler: true} if filler
       end
    -  assignments.sort_by { |assignment| bucket_ranges.fetch(assignment.fetch(:bucket)).fetch(:floor) }
     end
    -
    # File 'lib/kettle/jem.rb', line 2173
    +      
    # File 'lib/kettle/jem.rb', line 6341
     
    -def appraisal_filtered_versions(, requirements:)
    -  requirement = requirements ? Gem::Requirement.new(Array(requirements)) : nil
    -  .filter_map do |entry|
    -    number = entry[:number] || entry["number"]
    -    next if number.to_s.empty?
    -    next if entry[:prerelease] || entry["prerelease"]
    -    next if requirement && !requirement.satisfied_by?(Gem::Version.new(number))
    +def gemfile_dependency_insertion_line(content)
    +  body = prism_parse_success(content)&.value&.statements&.body || []
    +  node = body.find do |statement|
    +    gemfile_dependency_statement?(statement)
    +  end
    +  return content.to_s.lines.length unless node
     
    -    number.to_s
    -  end.sort_by { |version| Gem::Version.new(version) }
    +  node.location.start_line - 1
     end
    -
    # File 'lib/kettle/jem.rb', line 2467
    +      
    # File 'lib/kettle/jem.rb', line 4603
     
    -def appraisal_finalize_versions(base_versions, include_versions: nil, exclude_versions: nil)
    -  merged = appraisal_sort_versions(Array(base_versions) + Array(include_versions))
    -  excluded = Array(exclude_versions).map(&:to_s).to_set
    -  return merged if excluded.empty?
    -
    -  appraisal_sort_versions(merged.reject { |version| excluded.include?(version) })
    +def gemfile_dependency_names(content)
    +  gemfile_gem_call_records(content).map { |record| record.fetch(:name) } + gemfile_nomono_dependency_names(content)
     end
    +
    +
    + + + +
    +
    +
    + +

    Returns:

    +
      + +
    • + + + (Boolean) + + + +
    • + +
    + +
    - + @@ -19994,9 +34657,9 @@

    -

    +

    - .appraisal_format_version(version) ⇒ Object + .gemfile_eval_bucket_entries(content) ⇒ Object @@ -20008,15 +34671,53 @@

     
     
    -1968
    -1969
    -1970
    +6743 +6744 +6745 +6746 +6747 +6748 +6749 +6750 +6751 +6752 +6753 +6754 +6755 +6756 +6757 +6758 +6759 +6760 +6761 +6762 +6763 +6764

    @@ -20024,9 +34725,9 @@

    -

    +

    - .appraisal_gem_abbreviation(gem_name) ⇒ Object + .gemfile_eval_comment_start_line(lines, start_line) ⇒ Object @@ -20038,15 +34739,23 @@

     
     
    -1964
    -1965
    -1966
    +6766 +6767 +6768 +6769 +6770 +6771 +6772

    @@ -20054,9 +34763,9 @@

    -

    +

    - .appraisal_latest_minor_patch(resolver:, gem_name:, version:) ⇒ Object + .gemfile_eval_paths(content) ⇒ Object @@ -20068,33 +34777,15 @@

     
     
    -2487
    -2488
    -2489
    -2490
    -2491
    -2492
    -2493
    -2494
    -2495
    -2496
    -2497
    -2498
    +6302 +6303 +6304

    @@ -20102,9 +34793,9 @@

    -

    +

    - .appraisal_latest_patch_by_minor(version_metadata) ⇒ Object + .gemfile_gem_call_records(content) ⇒ Object @@ -20116,30 +34807,32 @@

     
     
    -2243
    -2244
    -2245
    -2246
    -2247
    -2248
    -2249
    -2250
    -2251
    -2252
    -2253
    +6459 +6460 +6461 +6462 +6463 +6464 +6465 +6466 +6467 +6468 +6469 +6470

    @@ -20148,9 +34841,9 @@

    -

    +

    - .appraisal_latest_version_matching(version_metadata, requested_version) ⇒ Object + .gemfile_nomono_dependency_names(content) ⇒ Object @@ -20162,23 +34855,27 @@

     
     
    -2374
    -2375
    -2376
    -2377
    -2378
    -2379
    -2380
    +4607 +4608 +4609 +4610 +4611 +4612 +4613 +4614 +4615

    @@ -20186,9 +34883,9 @@

    -

    +

    - .appraisal_matrix_entries(tier1_gems:, tier2_gems: []) ⇒ Object + .gemfile_paragraphs(content) ⇒ Object @@ -20200,73 +34897,15 @@

     
     
    -2124
    -2125
    -2126
    -2127
    -2128
    -2129
    -2130
    -2131
    -2132
    -2133
    -2134
    -2135
    -2136
    -2137
    -2138
    -2139
    -2140
    -2141
    -2142
    -2143
    -2144
    -2145
    -2146
    -2147
    -2148
    -2149
    -2150
    -2151
    -2152
    -2153
    -2154
    -2155
    +6322 +6323 +6324

    @@ -20274,9 +34913,9 @@

    -

    +

    - .appraisal_matrix_entry(tier1_name:, tier1_version:, ruby_series:, tier2_name: nil, tier2_version: nil) ⇒ Object + .gemfile_percent_w_names(content) ⇒ Object @@ -20288,39 +34927,15 @@

     
     
    -2157
    -2158
    -2159
    -2160
    -2161
    -2162
    -2163
    -2164
    -2165
    -2166
    -2167
    -2168
    -2169
    -2170
    -2171
    +6326 +6327 +6328

    @@ -20328,60 +34943,47 @@

    -

    - - .appraisal_matrix_fresh?(matrix, now: Time.now.to_i) ⇒ Boolean +

    - + .gemfile_policy_operations(template_content, original, final, request) ⇒ Object -

    -
    - - -
    -
    -
    - -

    Returns:

    -
      - -
    • - - - (Boolean) - - - -
    • -
    - -

     
     
    -2201
    -2202
    -2203
    -2204
    -2205
    -2206
    -2207
    -2208
    -2209
    -2210
    -2211
    -2212
    -2213
    -2214
    -
    -
    # File 'lib/kettle/jem.rb', line 2201
    -
    -def appraisal_find_ruby_seams()
    -  minors = appraisal_latest_patch_by_minor()
    -  seams = []
    -  previous = nil
    -  minors.sort_by { |minor, _entry| Gem::Version.new(minor) }.each do |minor, entry|
    -    min_ruby = Gem::Version.new((entry[:min_ruby] || entry["min_ruby"]).to_s)
    -    min_ruby = [min_ruby, DEFAULT_TEST_MINIMUM_RUBY].max
    -    if previous.nil? || min_ruby > previous
    -      seams << {version: minor, min_ruby: min_ruby}
    -    end
    -    previous = min_ruby
    +6351
    +6352
    +6353
    +6354
    +6355
    +6356
    +6357
    +6358
    +6359
    +6360
    +
    +
    # File 'lib/kettle/jem.rb', line 6351
    +
    +def gemfile_dependency_statement?(node)
    +  case node
    +  when ::Prism::CallNode
    +    %i[gem group platforms].include?(node.name)
    +  when ::Prism::IfNode, ::Prism::UnlessNode
    +    true
    +  else
    +    false
       end
    -  seams
     end
    -
    # File 'lib/kettle/jem.rb', line 1968
    +      
    # File 'lib/kettle/jem.rb', line 6743
     
    -def appraisal_format_version(version)
    -  version.to_s.tr(".", "-")
    +def gemfile_eval_bucket_entries(content)
    +  lines = content.to_s.lines
    +  ruby_call_records(content, :eval_gemfile).filter_map do |call|
    +    path = ruby_string_argument(call)
    +    next unless path
    +
    +    key = normalize_eval_gemfile_ruby_bucket(path)
    +    next unless key
    +
    +    start_line = call.location.start_line
    +    end_line = ruby_node_source_end_line(call)
    +    section_start_line = gemfile_eval_comment_start_line(lines, start_line)
    +    {
    +      path: path,
    +      key: key,
    +      line: (lines[(start_line - 1)..(end_line - 1)] || []).join,
    +      section_line: (lines[(section_start_line - 1)..(end_line - 1)] || []).join,
    +      start_line: start_line,
    +      end_line: end_line
    +    }
    +  end
     end
    -
    # File 'lib/kettle/jem.rb', line 1964
    +      
    # File 'lib/kettle/jem.rb', line 6766
     
    -def appraisal_gem_abbreviation(gem_name)
    -  APPRAISAL_GEM_ABBREVIATIONS.fetch(gem_name.to_s, gem_name.to_s)
    +def gemfile_eval_comment_start_line(lines, start_line)
    +  index = start_line.to_i - 2
    +  return start_line if index.negative?
    +
    +  index -= 1 while index >= 0 && lines.fetch(index).lstrip.start_with?("#")
    +  index + 2
     end
    -
    # File 'lib/kettle/jem.rb', line 2487
    -
    -def appraisal_latest_minor_patch(resolver:, gem_name:, version:)
    -  all_versions = resolver.versions(gem_name)
    -  prefix = "#{version}."
    -  matching = all_versions.select do |entry|
    -    number = (entry[:number] || entry["number"]).to_s
    -    number == version.to_s || number.start_with?(prefix)
    -  end
    -  return version.to_s if matching.empty?
    +      
    # File 'lib/kettle/jem.rb', line 6302
     
    -  latest = matching.max_by { |entry| Gem::Version.new((entry[:number] || entry["number"]).to_s) }
    -  (latest[:number] || latest["number"]).to_s
    +def gemfile_eval_paths(content)
    +  ruby_call_records(content, :eval_gemfile).filter_map { |call| ruby_string_argument(call) }
     end
    -
    # File 'lib/kettle/jem.rb', line 2243
    +      
    # File 'lib/kettle/jem.rb', line 6459
     
    -def appraisal_latest_patch_by_minor()
    -  .each_with_object({}) do |entry, latest|
    -    number = (entry[:number] || entry["number"]).to_s
    -    next if number.empty?
    +def gemfile_gem_call_records(content)
    +  ruby_call_records(content, :gem).filter_map do |call|
    +    name = ruby_string_argument(call)
    +    next unless name
     
    -    version = Gem::Version.new(number)
    -    minor = "#{version.segments[0]}.#{version.segments[1] || 0}"
    -    current = latest[minor]
    -    latest[minor] = entry if current.nil? || version > Gem::Version.new((current[:number] || current["number"]).to_s)
    +    {
    +      name: name,
    +      start_line: call.location.start_line,
    +      end_line: ruby_node_source_end_line(call)
    +    }
       end
     end
    -
    # File 'lib/kettle/jem.rb', line 2374
    +      
    # File 'lib/kettle/jem.rb', line 4607
     
    -def appraisal_latest_version_matching(, requested_version)
    -  prefix = "#{requested_version}."
    -  .select do |entry|
    -    number = (entry[:number] || entry["number"]).to_s
    -    number == requested_version.to_s || number.start_with?(prefix)
    -  end.max_by { |entry| Gem::Version.new((entry[:number] || entry["number"]).to_s) }
    +def gemfile_nomono_dependency_names(content)
    +  result = prism_parse_success(content)
    +  return [] unless result
    +
    +  word_arrays_by_local = ruby_local_word_array_assignments(result.value)
    +  ruby_call_records(content, :eval_nomono_gems).flat_map do |call|
    +    ruby_static_string_array_value(ruby_keyword_argument_node(call, :gems), word_arrays_by_local)
    +  end.uniq
     end
    -
    # File 'lib/kettle/jem.rb', line 2124
    +      
    # File 'lib/kettle/jem.rb', line 6322
     
    -def appraisal_matrix_entries(tier1_gems:, tier2_gems: [])
    -  entries = []
    -  tier1_gems.each do |tier1|
    -    tier1_name = tier1[:name] || tier1["name"]
    -    assignments = tier1[:assignments] || tier1["assignments"] || []
    -    assignments.each do |assignment|
    -      tier1_version = assignment[:version] || assignment["version"]
    -      ruby_series = assignment[:bucket] || assignment["bucket"] || assignment[:ruby_series] || assignment["ruby_series"]
    -      if tier2_gems.empty?
    -        entries << appraisal_matrix_entry(
    -          tier1_name: tier1_name,
    -          tier1_version: tier1_version,
    -          ruby_series: ruby_series
    -        )
    -      else
    -        tier2_gems.each do |tier2|
    -          tier2_name = tier2[:name] || tier2["name"]
    -          Array(tier2[:versions] || tier2["versions"]).each do |tier2_version|
    -            entries << appraisal_matrix_entry(
    -              tier1_name: tier1_name,
    -              tier1_version: tier1_version,
    -              ruby_series: ruby_series,
    -              tier2_name: tier2_name,
    -              tier2_version: tier2_version
    -            )
    -          end
    -        end
    -      end
    -    end
    -  end
    -  entries
    +def gemfile_paragraphs(content)
    +  content.to_s.split(/\n{2,}/).map { |paragraph| ensure_trailing_newline(paragraph.strip) }.reject { |paragraph| paragraph.strip.empty? }
     end
    -
    # File 'lib/kettle/jem.rb', line 2157
    +      
    # File 'lib/kettle/jem.rb', line 6326
     
    -def appraisal_matrix_entry(tier1_name:, tier1_version:, ruby_series:, tier2_name: nil, tier2_version: nil)
    -  {
    -    name: appraisal_name(
    -      tier1_gem: tier1_name,
    -      tier1_version: tier1_version,
    -      tier2_gem: tier2_name,
    -      tier2_version: tier2_version,
    -      ruby_series: ruby_series
    -    ),
    -    tier1_gemfile: appraisal_modular_gemfile_path(gem_name: tier1_name, version: tier1_version, ruby_series: ruby_series),
    -    tier2_gemfile: tier2_name ? appraisal_modular_gemfile_path(gem_name: tier2_name, version: tier2_version, ruby_series: ruby_series) : nil,
    -    x_std_libs_gemfile: File.join("gemfiles", "modular", "x_std_libs", ruby_series.to_s, "libs.gemfile"),
    -    ruby_series: ruby_series.to_s
    -  }
    +def gemfile_percent_w_names(content)
    +  ruby_word_array_records(content).flat_map { |record| record.fetch(:names) }.reject(&:empty?)
     end
    +
    @@ -20389,9 +34991,9 @@

    -

    +

    - .appraisal_matrix_has_versions?(matrix) ⇒ Boolean + .gemfile_workspace_override_node?(node) ⇒ Boolean @@ -20426,53 +35028,21 @@

     
     
    -2433
    -2434
    -2435
    -2436
    -2437
    -2438
    - -

    - -
     
     
    -2440
    -2441
    -2442
    -2443
    -2444
    -2445
    -2446
    +4502 +4503 +4504 +4505 +4506 +4507 +4508 +4509 +4510 +4511 +4512 +4513
    -
    # File 'lib/kettle/jem.rb', line 2440
    -
    -def appraisal_matrix_fresh?(matrix, now: Time.now.to_i)
    -  resolved_at = (matrix || {})[:resolved_at] || (matrix || {})["resolved_at"]
    -  return false unless resolved_at
    +      
    # File 'lib/kettle/jem.rb', line 4502
     
    -  ttl = (matrix || {})[:freshness_ttl] || (matrix || {})["freshness_ttl"] || APPRAISAL_DEFAULT_FRESHNESS_TTL
    -  (now.to_i - resolved_at.to_i) < ttl.to_i
    +def gemfile_policy_operations(template_content, original, final, request)
    +  package_name = runtime_context_value(request, :package, :name).to_s
    +  deleted = gemfile_dependency_names("#{template_content}\n#{original}") - gemfile_dependency_names(final)
    +  expected = ["appraisal"]
    +  expected << package_name unless package_name.empty?
    +  [
    +    {
    +      operation: "delete_dependency_declarations",
    +      deleted_gems: (deleted & expected).sort
    +    }
    +  ]
     end
    -
    # File 'lib/kettle/jem.rb', line 2433
    -
    -def appraisal_matrix_has_versions?(matrix)
    -  gems = deep_string_key_hash(matrix || {}).fetch("gems", {})
    -  %w[tier1 tier2].any? do |tier|
    -    Array(gems[tier]).any? { |gem_config| Array(gem_config["versions"]).any? }
    -  end
    -end
    +5907 +5908 +5909 +5910 +5911 +5912
    -
    - -
    -

    - - .appraisal_minor_key(version) ⇒ Object - - - - - -

    - - @@ -20480,9 +35050,9 @@

    -

    +

    - .appraisal_minor_versions_by_major(versions) ⇒ Object + .gemspec_assignment_field(call) ⇒ Object @@ -20494,39 +35064,23 @@

     
     
    -2185
    -2186
    -2187
    -2188
    -2189
    -2190
    -2191
    -2192
    -2193
    -2194
    -2195
    -2196
    -2197
    -2198
    -2199
    +8408 +8409 +8410 +8411 +8412 +8413 +8414

    @@ -20534,9 +35088,9 @@

    -

    +

    - .appraisal_minor_versions_to_buckets(minor_versions) ⇒ Object + .gemspec_assignment_records(source, receiver: nil) ⇒ Object @@ -20548,51 +35102,47 @@

     
     
    -2255
    -2256
    -2257
    -2258
    -2259
    -2260
    -2261
    -2262
    -2263
    -2264
    -2265
    -2266
    -2267
    -2268
    -2269
    -2270
    -2271
    -2272
    -2273
    -2274
    -2275
    +8388 +8389 +8390 +8391 +8392 +8393 +8394 +8395 +8396 +8397 +8398 +8399 +8400 +8401 +8402 +8403 +8404 +8405 +8406

    @@ -20600,9 +35150,9 @@

    -

    +

    - .appraisal_modular_gemfile_content(gem_name:, version:, sub_dependencies: {}) ⇒ Object + .gemspec_assignment_value(call) ⇒ Object @@ -20614,35 +35164,31 @@

     
     
    -1990
    -1991
    -1992
    -1993
    -1994
    -1995
    -1996
    -1997
    -1998
    -1999
    -2000
    -2001
    -2002
    +8416 +8417 +8418 +8419 +8420 +8421 +8422 +8423 +8424 +8425 +8426

    @@ -20650,9 +35196,9 @@

    -

    +

    - .appraisal_modular_gemfile_path(gem_name:, version:, ruby_series:) ⇒ Object + .gemspec_block_param(source) ⇒ Object @@ -20664,15 +35210,19 @@

     
     
    -1986
    -1987
    -1988
    +7475 +7476 +7477 +7478 +7479

    @@ -20680,9 +35230,9 @@

    -

    +

    - .appraisal_name(tier1_gem:, tier1_version:, ruby_series:, tier2_gem: nil, tier2_version: nil) ⇒ Object + .gemspec_dependency_call_kind(call) ⇒ Object @@ -20694,35 +35244,21 @@

     
     
    -1972
    -1973
    -1974
    -1975
    -1976
    -1977
    -1978
    -1979
    -1980
    -1981
    -1982
    -1983
    -1984
    +8517 +8518 +8519 +8520 +8521 +8522

    @@ -20730,9 +35266,9 @@

    -

    +

    - .appraisal_names(content) ⇒ Object + .gemspec_dependency_from_record(record) ⇒ Object @@ -20744,15 +35280,15 @@

     
     
    -4133
    -4134
    -4135
    +10941 +10942 +10943

    @@ -20760,9 +35296,9 @@

    -

    +

    - .appraisal_next_seam_ruby(version, min_ruby, all_versions, version_min_rubies) ⇒ Object + .gemspec_dependency_line_index(source, receiver:) ⇒ Object @@ -20774,31 +35310,21 @@

     
     
    -2310
    -2311
    -2312
    -2313
    -2314
    -2315
    -2316
    -2317
    -2318
    -2319
    -2320
    +8325 +8326 +8327 +8328 +8329 +8330

    @@ -20806,9 +35332,9 @@

    -

    +

    - .appraisal_normalized_bucket_ranges(bucket_ranges) ⇒ Object + .gemspec_dependency_line_key(line, receiver:) ⇒ Object @@ -20820,25 +35346,17 @@

     
     
    -2287
    -2288
    -2289
    -2290
    -2291
    -2292
    -2293
    -2294
    +8357 +8358 +8359 +8360

    @@ -20846,58 +35364,77 @@

    -

    - - .appraisal_recording_enabled?(config) ⇒ Boolean +

    - + .gemspec_dependency_minimum_requirement_replacement(call, requirement) ⇒ Object -

    -
    - - -
    -
    -
    - -

    Returns:

    -
      -
    • - - - (Boolean) - - - -
    • - -
    - -

    -
    -
    +      
    # File 'lib/kettle/jem.rb', line 5907
     
    -2277
    -2278
    -2279
    -2280
    -
    -
    # File 'lib/kettle/jem.rb', line 2277
    +def gemfile_workspace_override_node?(node)
    +  return false unless gemfile_conditional_node?(node)
    +  return false if prism_subtree_contains_string?(node, "K_JEM_TEMPLATING")
     
    -def appraisal_minor_key(version)
    -  segments = Gem::Version.new(version.to_s).segments
    -  "#{segments[0]}.#{segments[1] || 0}"
    +  prism_subtree_contains_call?(node, :eval_nomono_gems)
     end
    -
    # File 'lib/kettle/jem.rb', line 2185
    +      
    # File 'lib/kettle/jem.rb', line 8408
     
    -def appraisal_minor_versions_by_major(versions)
    -  versions.map do |version|
    -    gem_version = Gem::Version.new(version)
    -    segments = gem_version.segments
    -    {
    -      major: segments[0],
    -      minor: "#{segments[0]}.#{segments[1] || 0}"
    -    }
    -  end.uniq.group_by { |entry| entry.fetch(:major) }.map do |major, entries|
    -    {
    -      major: major,
    -      minors: entries.map { |entry| entry.fetch(:minor) }.sort_by { |minor| Gem::Version.new(minor) }
    -    }
    -  end.sort_by { |entry| entry.fetch(:major) }
    +def gemspec_assignment_field(call)
    +  name = call.name.to_s
    +  return unless name.end_with?("=")
    +  return if name == "[]="
    +
    +  name.delete_suffix("=")
     end
    -
    # File 'lib/kettle/jem.rb', line 2255
    +      
    # File 'lib/kettle/jem.rb', line 8388
     
    -def appraisal_minor_versions_to_buckets(minor_versions)
    -  by_major = minor_versions.group_by { |minor| minor.split(".").first.to_i }
    -  buckets = []
    -  ranges = {}
    -  by_major.each do |major, minors|
    -    sorted = minors.sort_by { |minor| Gem::Version.new(minor) }
    -    sorted.each_with_index do |minor, index|
    -      bucket = (index == sorted.length - 1) ? "r#{major}" : "r#{major}.#{[sorted[index + 1].split(".").last.to_i - 1, minor.split(".").last.to_i].max}"
    -      next if ranges.key?(bucket)
    +def gemspec_assignment_records(source, receiver: nil)
    +  lines = source.to_s.lines
    +  ruby_call_records(source, nil).filter_map do |call|
    +    field = gemspec_assignment_field(call)
    +    next unless field
    +    next if receiver && call.receiver&.slice != receiver.to_s
    +    end_line = ruby_node_source_end_line(call)
     
    -      buckets << bucket
    -      ceiling = if index == sorted.length - 1
    -        "#{major}.99"
    -      else
    -        bucket.split(".").last ? "#{major}.#{bucket.split(".").last}" : "#{major}.99"
    -      end
    -      ranges[bucket] = {floor: Gem::Version.new(minor), ceiling: Gem::Version.new(ceiling)}
    -    end
    +    {
    +      field: field,
    +      value: gemspec_assignment_value(call),
    +      value_node: call.arguments&.arguments&.first,
    +      receiver: call.receiver&.slice,
    +      start_line: call.location.start_line,
    +      end_line: end_line,
    +      source: (lines[(call.location.start_line - 1)..(end_line - 1)] || []).join
    +    }
       end
    -  {buckets: buckets.sort_by { |bucket| appraisal_bucket_sort_key(bucket) }, bucket_ranges: ranges}
     end
    -
    # File 'lib/kettle/jem.rb', line 1990
    +      
    # File 'lib/kettle/jem.rb', line 8416
     
    -def appraisal_modular_gemfile_content(gem_name:, version:, sub_dependencies: {})
    -  lines = [
    -    "# frozen_string_literal: true",
    -    "",
    -    "# Generated by kettle-jem",
    -    "",
    -    %(gem "#{gem_name}", "#{appraisal_version_requirement(version)}")
    -  ]
    -  sub_dependencies.each do |name, requirement|
    -    lines << %(gem "#{name}", "~> #{requirement}")
    +def gemspec_assignment_value(call)
    +  argument = call.arguments&.arguments&.first
    +  case argument
    +  when ::Prism::StringNode, ::Prism::InterpolatedStringNode, ::Prism::CallNode
    +    ruby_static_string_value(argument) || argument&.slice
    +  when ::Prism::ArrayNode
    +    argument.elements.filter_map { |element| ruby_static_string_value(element) }
    +  else
    +    argument&.slice
       end
    -  ensure_trailing_newline(lines.join("\n"))
     end
    -
    # File 'lib/kettle/jem.rb', line 1986
    +      
    # File 'lib/kettle/jem.rb', line 7475
     
    -def appraisal_modular_gemfile_path(gem_name:, version:, ruby_series:)
    -  File.join("gemfiles", "modular", gem_name.to_s, ruby_series.to_s, "v#{version}.gemfile")
    +def gemspec_block_param(source)
    +  call = gemspec_new_call(source)
    +  required = call&.block&.parameters&.parameters&.requireds&.first
    +  required&.name&.to_s
     end
    -
    # File 'lib/kettle/jem.rb', line 1972
    +      
    # File 'lib/kettle/jem.rb', line 8517
     
    -def appraisal_name(tier1_gem:, tier1_version:, ruby_series:, tier2_gem: nil, tier2_version: nil)
    -  parts = [
    -    APPRAISAL_NAME_PREFIX,
    -    appraisal_gem_abbreviation(tier1_gem),
    -    appraisal_format_version(tier1_version)
    -  ]
    -  unless tier2_gem.to_s.empty?
    -    parts << appraisal_gem_abbreviation(tier2_gem)
    -    parts << appraisal_format_version(tier2_version)
    +def gemspec_dependency_call_kind(call)
    +  case call.name
    +  when :add_dependency, :add_runtime_dependency, :add_development_dependency
    +    call.name.to_s
       end
    -  parts << ruby_series.to_s
    -  parts.join("-")
     end
    -
    # File 'lib/kettle/jem.rb', line 4133
    +      
    # File 'lib/kettle/jem.rb', line 10941
     
    -def appraisal_names(content)
    -  appraisal_call_records(content).map { |record| record.fetch(:name) }
    +def gemspec_dependency_from_record(record)
    +  Gem::Dependency.new(record.fetch(:name), *record.fetch(:requirements), (record.fetch(:kind) == "add_development_dependency") ? :development : :runtime)
     end
    -
    # File 'lib/kettle/jem.rb', line 2310
    -
    -def appraisal_next_seam_ruby(version, min_ruby, all_versions, version_min_rubies)
    -  found = false
    -  all_versions.sort_by { |candidate| Gem::Version.new(candidate) }.each do |candidate|
    -    found ||= Gem::Version.new(candidate) >= Gem::Version.new(version)
    -    next unless found
    +      
    # File 'lib/kettle/jem.rb', line 8325
     
    -    candidate_ruby = version_min_rubies[candidate]
    -    return candidate_ruby if candidate_ruby && candidate_ruby > min_ruby
    +def gemspec_dependency_line_index(source, receiver:)
    +  gemspec_dependency_records(source, receiver: receiver).each_with_object({}) do |record, dependencies|
    +    key = gemspec_dependency_record_key(record)
    +    dependencies[key] ||= record.fetch(:source)
       end
    -  nil
     end
    -
    # File 'lib/kettle/jem.rb', line 2287
    +      
    # File 'lib/kettle/jem.rb', line 8357
     
    -def appraisal_normalized_bucket_ranges(bucket_ranges)
    -  bucket_ranges.transform_values do |range|
    -    {
    -      floor: Gem::Version.new((range[:floor] || range["floor"]).to_s),
    -      ceiling: Gem::Version.new((range[:ceiling] || range["ceiling"]).to_s)
    -    }
    -  end
    +def gemspec_dependency_line_key(line, receiver:)
    +  record = gemspec_dependency_records(line, receiver: receiver).first
    +  gemspec_dependency_record_key(record) if record
     end
    +
    @@ -20905,9 +35442,9 @@

    -

    +

    - .appraisal_resolve_sub_dependencies(parent_gem:, parent_version:, parent_versions:, dependency_versions:, ruby_min: nil, excluded_gems: []) ⇒ Object + .gemspec_dependency_names(source) ⇒ Object @@ -20919,55 +35456,15 @@

     
     
    -2350
    -2351
    -2352
    -2353
    -2354
    -2355
    -2356
    -2357
    -2358
    -2359
    -2360
    -2361
    -2362
    -2363
    -2364
    -2365
    -2366
    -2367
    -2368
    -2369
    -2370
    -2371
    -2372
    +8332 +8333 +8334

    @@ -20975,9 +35472,9 @@

    -

    +

    - .appraisal_ruby_series(version_metadata, project_min_ruby: nil) ⇒ Object + .gemspec_dependency_record_key(record) ⇒ Object @@ -20989,29 +35486,15 @@

     
     
    -2216
    -2217
    -2218
    -2219
    -2220
    -2221
    -2222
    -2223
    -2224
    -2225
    +8362 +8363 +8364

    @@ -21019,9 +35502,9 @@

    -

    +

    - .appraisal_ruby_version(value) ⇒ Object + .gemspec_dependency_record_version(record) ⇒ Object @@ -21033,29 +35516,25 @@

     
     
    -5056
    -5057
    -5058
    -5059
    -5060
    -5061
    -5062
    -5063
    -5064
    -5065
    +8379 +8380 +8381 +8382 +8383 +8384 +8385 +8386

    @@ -21063,9 +35542,9 @@

    -

    +

    - .appraisal_scaffold_config(gemspec_content:, existing_config: {}, exclusions: [], default_mode: "semver", freshness_ttl: APPRAISAL_DEFAULT_FRESHNESS_TTL) ⇒ Object + .gemspec_dependency_records(source, receiver: nil) ⇒ Object @@ -21077,41 +35556,53 @@

     
     
    -2416
    -2417
    -2418
    -2419
    -2420
    -2421
    -2422
    -2423
    -2424
    -2425
    -2426
    -2427
    -2428
    -2429
    -2430
    -2431
    +8494 +8495 +8496 +8497 +8498 +8499 +8500 +8501 +8502 +8503 +8504 +8505 +8506 +8507 +8508 +8509 +8510 +8511 +8512 +8513 +8514 +8515

    @@ -21119,55 +35610,68 @@

    -

    +

    - .appraisal_select_dependency_version(version_metadata, requirement:, ruby_min:) ⇒ Object + .gemspec_dependency_requirements_satisfy_floor?(requirements, floor_requirement) ⇒ Boolean -

     
     
    -10841
    -10842
    -10843
    -10844
    -10845
    -10846
    +8134 +8135 +8136 +8137 +8138 +8139 +8140 +8141 +8142 +8143 +8144 +8145 +8146 +8147 +8148 +8149 +8150 +8151 +8152 +8153 +8154 +8155 +8156 +8157 +8158 +8159 +8160
    -
    # File 'lib/kettle/jem.rb', line 10841
    +      
    # File 'lib/kettle/jem.rb', line 8134
     
    -def appraisal_recording_enabled?(config)
    -  workflows = config["workflows"]
    -  workflows = {} unless workflows.is_a?(Hash)
    +def gemspec_dependency_minimum_requirement_replacement(call, requirement)
    +  arguments = Array(call.arguments&.arguments)
    +  floor = Gem::Requirement.new(requirement).requirements.first.last
    +  existing_floor = arguments.drop(1).find do |argument|
    +    value = ruby_static_string_value(argument)
    +    next false unless value
     
    -  DecisionPolicy.value_to_boolean(workflows["recording"]) == true
    +    parsed = Gem::Requirement.new(value).requirements
    +    parsed.any? { |operator, version| %w[>= > =].include?(operator.to_s) && version < floor }
    +  rescue ArgumentError
    +    false
    +  end
    +  if existing_floor
    +    {
    +      start_offset: existing_floor.location.start_offset,
    +      end_offset: existing_floor.location.end_offset,
    +      replacement: JSON.generate(requirement)
    +    }
    +  else
    +    insertion_offset = arguments.last.location.end_offset
    +    {
    +      start_offset: insertion_offset,
    +      end_offset: insertion_offset,
    +      replacement: ", #{JSON.generate(requirement)}"
    +    }
    +  end
     end
    -
    # File 'lib/kettle/jem.rb', line 2350
    -
    -def appraisal_resolve_sub_dependencies(parent_gem:, parent_version:, parent_versions:, dependency_versions:, ruby_min: nil, excluded_gems: [])
    -  parent = appraisal_latest_version_matching(parent_versions, parent_version)
    -  return {} unless parent
    -
    -  ruby_floor = Gem::Version.new(ruby_min.to_s) unless ruby_min.to_s.empty?
    -  excluded = excluded_gems.map(&:to_s)
    -  Array(parent[:runtime_dependencies] || parent["runtime_dependencies"]).each_with_object({}) do |dependency, resolved|
    -    name = (dependency[:name] || dependency["name"]).to_s
    -    next if name.empty? || excluded.include?(name)
    +      
    # File 'lib/kettle/jem.rb', line 8332
     
    -    requirement = begin
    -      Gem::Requirement.new(dependency[:requirements] || dependency["requirements"] || ">= 0")
    -    rescue ArgumentError
    -      Gem::Requirement.default
    -    end
    -    selected = appraisal_select_dependency_version(
    -      Array(dependency_versions[name] || dependency_versions[name.to_sym]),
    -      requirement: requirement,
    -      ruby_min: ruby_floor
    -    )
    -    resolved[name] = selected if selected
    -  end
    +def gemspec_dependency_names(source)
    +  gemspec_dependency_records(source).map { |record| record.fetch(:name) }
     end
    -
    # File 'lib/kettle/jem.rb', line 2216
    +      
    # File 'lib/kettle/jem.rb', line 8362
     
    -def appraisal_ruby_series(, project_min_ruby: nil)
    -  floors = appraisal_find_ruby_seams().map { |seam| seam.fetch(:min_ruby) }
    -  if project_min_ruby
    -    floor = Gem::Version.new(project_min_ruby.to_s)
    -    floors.reject! { |version| version < floor }
    -    floors << floor unless floors.include?(floor)
    -  end
    -  floors = [Gem::Version.new("3.2")] if floors.empty?
    -  appraisal_minor_versions_to_buckets(floors.map { |version| appraisal_minor_key(version) }.uniq.sort)
    +def gemspec_dependency_record_key(record)
    +  [record.fetch(:kind), record.fetch(:name)]
     end
    -
    # File 'lib/kettle/jem.rb', line 5056
    -
    -def appraisal_ruby_version(value)
    -  parts = value.to_s.split("-")
    -  return unless parts.length == 3 && parts.first == "ruby"
    -
    -  major = Integer(parts[1], exception: false)
    -  minor = Integer(parts[2], exception: false)
    -  return unless major && minor
    +      
    # File 'lib/kettle/jem.rb', line 8379
     
    -  "#{major}.#{minor}"
    +def gemspec_dependency_record_version(record)
    +  versions = record.fetch(:requirements, []).filter_map do |requirement|
    +    Gem::Requirement.new(requirement.to_s).requirements.map(&:last)
    +  rescue ArgumentError
    +    nil
    +  end.flatten
    +  versions.max || Gem::Version.new("0")
     end
    -
    # File 'lib/kettle/jem.rb', line 2416
    +      
    # File 'lib/kettle/jem.rb', line 8494
     
    -def appraisal_scaffold_config(gemspec_content:, existing_config: {}, exclusions: [], default_mode: "semver", freshness_ttl: APPRAISAL_DEFAULT_FRESHNESS_TTL)
    -  excluded = exclusions.map(&:to_s).to_set
    -  runtime_dependencies = appraisal_extract_runtime_dependencies(gemspec_content)
    -  tier1 = runtime_dependencies.reject { |name| excluded.include?(name) }.map { |name| {"name" => name} }
    -  config = deep_string_key_hash(existing_config)
    -  matrix = config["appraisal_matrix"] || {}
    -  gems = matrix["gems"] || {}
    +def gemspec_dependency_records(source, receiver: nil)
    +  lines = source.to_s.lines
    +  ruby_call_records(source, nil).filter_map do |call|
    +    kind = gemspec_dependency_call_kind(call)
    +    next unless kind
    +    next if receiver && call.receiver&.slice != receiver.to_s
     
    -  matrix["mode"] ||= default_mode
    -  matrix["freshness_ttl"] ||= freshness_ttl
    -  gems["tier1"] = tier1
    -  gems["tier2"] ||= []
    -  matrix["gems"] = gems
    -  config["appraisal_matrix"] = matrix
    -  config
    +    name = ruby_string_argument(call)
    +    next unless name
    +
    +    {
    +      kind: kind,
    +      name: name,
    +      requirement: ruby_string_argument_at(call, 1),
    +      requirements: ruby_string_arguments(call).drop(1),
    +      receiver: call.receiver&.slice,
    +      start_line: call.location.start_line,
    +      end_line: ruby_node_source_end_line(call),
    +      source: (lines[(call.location.start_line - 1)..(ruby_node_source_end_line(call) - 1)] || []).join
    +    }
    +  end
     end
    +
    +
    + + + +
    +
    +
    + +

    Returns:

    +
      + +
    • + + + (Boolean) + + + +
    • + +
    + +
    @@ -21175,9 +35679,9 @@

    -

    +

    - .appraisal_select_versions(version_metadata, mode:, requirements: nil) ⇒ Object + .gemspec_dependency_section_heading_comment?(stripped_line) ⇒ Boolean @@ -21185,20 +35689,21 @@

    - +

    Prism does not expose comments as normal AST statements, so dependency-section
    +headings are bounded to single-line comments after the gemspec development note.

    -

    Raises:

    -
      +

      Returns:

      +
      • - (ArgumentError) + (Boolean) @@ -21212,63 +35717,19 @@

         
         
        -2096
        -2097
        -2098
        -2099
        -2100
        -2101
        -2102
        -2103
        -2104
        -2105
        -2106
        -2107
        -2108
        -2109
        -2110
        -2111
        -2112
        -2113
        -2114
        -2115
        -2116
        -2117
        -2118
        -2119
        -2120
        -2121
        -2122
        +8277 +8278 +8279 +8280 +8281

    @@ -21276,9 +35737,9 @@

    -

    +

    - .appraisal_sort_versions(values) ⇒ Object + .gemspec_dependency_sort_key(name) ⇒ Object @@ -21290,15 +35751,15 @@

     
     
    -2500
    -2501
    -2502
    +8209 +8210 +8211

    @@ -21306,41 +35767,60 @@

    -

    +

    - .appraisal_stale_gemfile_paths(existing_paths:, current_entries:) ⇒ Object + .gemspec_dependency_source_newer?(candidate_source, current_source, receiver:) ⇒ Boolean -

     
     
    -2382
    -2383
    -2384
    -2385
    -2386
    -2387
    -2388
    -2389
    -2390
    -2391
    -2392
    -2393
    -2394
    -2395
    -2396
    -2397
    +8122 +8123 +8124 +8125 +8126 +8127 +8128 +8129 +8130 +8131 +8132
    -
    # File 'lib/kettle/jem.rb', line 2382
    -
    -def appraisal_select_dependency_version(, requirement:, ruby_min:)
    -  compatible = .select do |entry|
    -    number = (entry[:number] || entry["number"]).to_s
    -    !number.empty? && requirement.satisfied_by?(Gem::Version.new(number))
    -  end.sort_by { |entry| Gem::Version.new((entry[:number] || entry["number"]).to_s) }
    -  return if compatible.empty?
    +      
    # File 'lib/kettle/jem.rb', line 8122
     
    -  if ruby_min
    -    selected = compatible.reverse.find do |entry|
    -      min_ruby = entry[:min_ruby] || entry["min_ruby"]
    -      min_ruby.to_s.empty? || Gem::Version.new(min_ruby.to_s) <= ruby_min
    +def gemspec_dependency_requirements_satisfy_floor?(requirements, floor_requirement)
    +  floor = Gem::Requirement.new(floor_requirement).requirements.first.last
    +  requirements.any? do |requirement|
    +    parsed = Gem::Requirement.new(requirement.to_s).requirements
    +    parsed.any? do |operator, version|
    +      %w[>= > =].include?(operator.to_s) && version >= floor
         end
    -    return (selected || compatible.first).then { |entry| entry[:number] || entry["number"] }
    +  rescue ArgumentError
    +    false
       end
    -  compatible.last.then { |entry| entry[:number] || entry["number"] }
     end
    -
    # File 'lib/kettle/jem.rb', line 2096
    -
    -def appraisal_select_versions(, mode:, requirements: nil)
    -  mode = mode.to_s
    -  raise ArgumentError, "invalid appraisal version selection mode: #{mode}" unless APPRAISAL_VERSION_SELECTION_MODES.include?(mode)
    -
    -  versions = appraisal_filtered_versions(, requirements: requirements)
    -  return versions if mode == "patch"
    +      
    # File 'lib/kettle/jem.rb', line 8277
     
    -  by_major = appraisal_minor_versions_by_major(versions)
    -  return [] if by_major.empty?
    -
    -  current_major = by_major.last.fetch(:major)
    -  case mode
    -  when "major"
    -    by_major.map { |entry| entry.fetch(:minors).last }
    -  when "minor"
    -    by_major.flat_map { |entry| entry.fetch(:minors) }
    -  when "minor-minmax"
    -    by_major.flat_map do |entry|
    -      minors = entry.fetch(:minors)
    -      (entry.fetch(:major) < current_major) ? [minors.first, minors.last].uniq : minors
    -    end
    -  when "semver"
    -    by_major.flat_map do |entry|
    -      (entry.fetch(:major) < current_major) ? [entry.fetch(:minors).last] : entry.fetch(:minors)
    -    end
    -  end
    +def gemspec_dependency_section_heading_comment?(stripped_line)
    +  stripped_line.start_with?("# ") &&
    +    !stripped_line.start_with?("# NOTE:") &&
    +    !stripped_line.start_with?("#       ")
     end
    -
    # File 'lib/kettle/jem.rb', line 2500
    +      
    # File 'lib/kettle/jem.rb', line 8209
     
    -def appraisal_sort_versions(values)
    -  values.compact.map(&:to_s).reject(&:empty?).uniq.sort_by { |version| Gem::Version.new(version) }
    +def gemspec_dependency_sort_key(name)
    +  name.to_s.tr("_", "-")
     end
    +
    +
    + + + +
    +
    +
    + +

    Returns:

    +
      + +
    • + + + (Boolean) + + + +
    • + +
    + +
    @@ -21348,9 +35828,9 @@

    -

    +

    - .appraisal_time_ago(timestamp, now: Time.now.to_i) ⇒ Object + .gemspec_end_line(source) ⇒ Object @@ -21362,27 +35842,15 @@

     
     
    -2448
    -2449
    -2450
    -2451
    -2452
    -2453
    -2454
    -2455
    -2456
    +8528 +8529 +8530

    @@ -21390,9 +35858,9 @@

    -

    +

    - .appraisal_version_min_ruby_map(all_versions, seams) ⇒ Object + .gemspec_field_receiver_and_name(field) ⇒ Object @@ -21404,35 +35872,21 @@

     
     
    -2296
    -2297
    -2298
    -2299
    -2300
    -2301
    -2302
    -2303
    -2304
    -2305
    -2306
    -2307
    -2308
    +8448 +8449 +8450 +8451 +8452 +8453

    @@ -21440,9 +35894,9 @@

    -

    +

    - .appraisal_version_requirement(version) ⇒ Object + .gemspec_files_array_collection_source(target_parts, groups) ⇒ Object @@ -21454,17 +35908,23 @@

     
     
    -2004
    -2005
    -2006
    -2007
    +7651 +7652 +7653 +7654 +7655 +7656 +7657

    @@ -21472,9 +35932,9 @@

    -

    +

    - .appraisal_workflow_groups(matrix_entries, bucket_ranges:, exec_cmd: "kettle-test") ⇒ Object + .gemspec_files_child_collection_record(record, value_node) ⇒ Object @@ -21486,57 +35946,39 @@

     
     
    -2033
    -2034
    -2035
    -2036
    -2037
    -2038
    -2039
    -2040
    -2041
    -2042
    -2043
    -2044
    -2045
    -2046
    -2047
    -2048
    -2049
    -2050
    -2051
    -2052
    -2053
    -2054
    -2055
    -2056
    +7788 +7789 +7790 +7791 +7792 +7793 +7794 +7795 +7796 +7797 +7798 +7799 +7800 +7801 +7802

    @@ -21544,9 +35986,9 @@

    -

    +

    - .appraisal_workflow_lifecycle(ruby_floor) ⇒ Object + .gemspec_files_collection_body_source(groups) ⇒ Object @@ -21558,21 +36000,19 @@

     
     
    -2072
    -2073
    -2074
    -2075
    -2076
    -2077
    +7659 +7660 +7661 +7662 +7663

    @@ -21580,9 +36020,9 @@

    -

    +

    - .appraisal_workflow_ruby(ruby_floor, lifecycle) ⇒ Object + .gemspec_files_collection_element_nodes(value_node) ⇒ Object @@ -21594,21 +36034,25 @@

     
     
    -2079
    -2080
    -2081
    -2082
    -2083
    -2084
    +7811 +7812 +7813 +7814 +7815 +7816 +7817 +7818

    @@ -21616,9 +36060,9 @@

    -

    +

    - .appraisal_workflow_yaml_snippets(matrix_entries, bucket_ranges:, exec_cmd: "kettle-test") ⇒ Object + .gemspec_files_collection_entry_key(node) ⇒ Object @@ -21630,35 +36074,21 @@

     
     
    -2058
    -2059
    -2060
    -2061
    -2062
    -2063
    -2064
    -2065
    -2066
    -2067
    -2068
    -2069
    -2070
    +7881 +7882 +7883 +7884 +7885 +7886

    @@ -21666,33 +36096,54 @@

    -

    +

    - .appraisal_x_stdlib_eval_gemfile_call(block) ⇒ Object + .gemspec_files_collection_entry_node?(node) ⇒ Boolean -

     
     
    -2399
    -2400
    -2401
    -2402
    -2403
    -2404
    -2405
    -2406
    -2407
    +8371 +8372 +8373 +8374 +8375 +8376 +8377
    -
    # File 'lib/kettle/jem.rb', line 2399
    +      
    # File 'lib/kettle/jem.rb', line 8371
     
    -def appraisal_stale_gemfile_paths(existing_paths:, current_entries:)
    -  current_names = current_entries.map { |entry| (entry[:name] || entry["name"]).to_s }.to_set
    -  existing_paths.map(&:to_s).select do |path|
    -    basename = File.basename(path, ".gemfile")
    -    path.start_with?("gemfiles/#{APPRAISAL_NAME_PREFIX}-") &&
    -      path.end_with?(".gemfile") &&
    -      !current_names.include?(basename)
    -  end.sort
    +def gemspec_dependency_source_newer?(candidate_source, current_source, receiver:)
    +  candidate = gemspec_dependency_records(candidate_source, receiver: receiver).first
    +  current = gemspec_dependency_records(current_source, receiver: receiver).first
    +  return false unless candidate && current
    +
    +  gemspec_dependency_record_version(candidate) > gemspec_dependency_record_version(current)
     end
    -
    # File 'lib/kettle/jem.rb', line 2448
    -
    -def appraisal_time_ago(timestamp, now: Time.now.to_i)
    -  return "unknown" unless timestamp
    -
    -  seconds = now.to_i - timestamp.to_i
    -  return "#{seconds / 60}m" if seconds < 3600
    -  return "#{seconds / 3600}h" if seconds < 86_400
    +      
    # File 'lib/kettle/jem.rb', line 8528
     
    -  "#{seconds / 86_400}d"
    +def gemspec_end_line(source)
    +  gemspec_new_call(source)&.location&.end_line || source.to_s.lines.length + 1
     end
    -
    # File 'lib/kettle/jem.rb', line 2296
    +      
    # File 'lib/kettle/jem.rb', line 8448
     
    -def appraisal_version_min_ruby_map(all_versions, seams)
    -  sorted_seams = seams.sort_by { |seam| Gem::Version.new(seam[:version] || seam["version"]) }
    -  seam_index = 0
    -  current = nil
    -  all_versions.sort_by { |version| Gem::Version.new(version) }.each_with_object({}) do |version, map|
    -    while seam_index < sorted_seams.length && Gem::Version.new(sorted_seams[seam_index][:version] || sorted_seams[seam_index]["version"]) <= Gem::Version.new(version)
    -      current = Gem::Version.new((sorted_seams[seam_index][:min_ruby] || sorted_seams[seam_index]["min_ruby"]).to_s)
    -      current = [current, DEFAULT_TEST_MINIMUM_RUBY].max
    -      seam_index += 1
    -    end
    -    map[version] = current if current
    -  end
    +def gemspec_field_receiver_and_name(field)
    +  parts = field.to_s.split(".")
    +  return [nil, field.to_s] if parts.length == 1
    +
    +  [parts[0...-1].join("."), parts.last]
     end
    -
    # File 'lib/kettle/jem.rb', line 2004
    +      
    # File 'lib/kettle/jem.rb', line 7651
     
    -def appraisal_version_requirement(version)
    -  segments = version.to_s.split(".")
    -  (segments.length >= 3) ? "~> #{version}" : "~> #{version}.0"
    +def gemspec_files_array_collection_source(target_parts, groups)
    +  [
    +    target_parts.fetch(:opening),
    +    gemspec_files_collection_body_source(groups),
    +    target_parts.fetch(:closing)
    +  ].join
     end
    -
    # File 'lib/kettle/jem.rb', line 2033
    +      
    # File 'lib/kettle/jem.rb', line 7788
     
    -def appraisal_workflow_groups(matrix_entries, bucket_ranges:, exec_cmd: "kettle-test")
    -  grouped = Hash.new { |hash, key| hash[key] = [] }
    -  normalized_ranges = bucket_ranges.transform_values do |range|
    -    {
    -      floor: Gem::Version.new((range[:floor] || range["floor"]).to_s),
    -      ceiling: Gem::Version.new((range[:ceiling] || range["ceiling"]).to_s)
    -    }
    -  end
    -  matrix_entries.each do |entry|
    -    ruby_series = entry[:ruby_series] || entry["ruby_series"]
    -    range = normalized_ranges[ruby_series]
    -    next unless range
    +def gemspec_files_child_collection_record(record, value_node)
    +  source_start_line = record.fetch(:start_line)
    +  lines = record.fetch(:source).lines
    +  start_index = value_node.location.start_line - source_start_line
    +  end_index = value_node.location.end_line - source_start_line
    +  child_lines = lines[start_index..end_index]
    +  return unless child_lines
     
    -    lifecycle = appraisal_workflow_lifecycle(range.fetch(:floor))
    -    grouped[lifecycle] << {
    -      ruby: appraisal_workflow_ruby(range.fetch(:floor), lifecycle),
    -      appraisal: entry[:name] || entry["name"],
    -      exec_cmd: exec_cmd,
    -      rubygems: "latest",
    -      bundler: "latest"
    -    }
    -  end
    -  grouped.transform_values { |entries| entries.sort_by { |entry| entry.fetch(:appraisal).to_s } }
    +  record.merge(
    +    value_node: value_node,
    +    start_line: value_node.location.start_line,
    +    end_line: value_node.location.end_line,
    +    source: child_lines.join
    +  )
     end
    -
    # File 'lib/kettle/jem.rb', line 2072
    +      
    # File 'lib/kettle/jem.rb', line 7659
     
    -def appraisal_workflow_lifecycle(ruby_floor)
    -  APPRAISAL_WORKFLOW_LIFECYCLE_RANGES.each do |name, range|
    -    return name if ruby_floor.between?(range.fetch(:min), range.fetch(:max))
    -  end
    -  (ruby_floor < APPRAISAL_WORKFLOW_LIFECYCLE_RANGES.fetch("ancient").fetch(:min)) ? "ancient" : "current"
    +def gemspec_files_collection_body_source(groups)
    +  groups.each_with_index.map do |group, index|
    +    gemspec_files_collection_group_source(group, trailing_comma: index < groups.length - 1)
    +  end.join
     end
    -
    # File 'lib/kettle/jem.rb', line 2079
    +      
    # File 'lib/kettle/jem.rb', line 7811
     
    -def appraisal_workflow_ruby(ruby_floor, lifecycle)
    -  return "ruby" if lifecycle == "current"
    +def gemspec_files_collection_element_nodes(value_node)
    +  if gemspec_files_dir_call_node?(value_node)
    +    return Array(value_node.arguments&.arguments)
    +  end
    +  return value_node.elements if value_node.is_a?(::Prism::ArrayNode)
     
    -  segments = ruby_floor.segments
    -  "#{segments[0]}.#{segments[1] || 0}"
    +  nil
     end
    -
    # File 'lib/kettle/jem.rb', line 2058
    +      
    # File 'lib/kettle/jem.rb', line 7881
     
    -def appraisal_workflow_yaml_snippets(matrix_entries, bucket_ranges:, exec_cmd: "kettle-test")
    -  appraisal_workflow_groups(matrix_entries, bucket_ranges: bucket_ranges, exec_cmd: exec_cmd).transform_values do |entries|
    -    lines = ["strategy:", "  matrix:", "    include:"]
    -    entries.each do |entry|
    -      lines << %(      - ruby: "#{entry.fetch(:ruby)}")
    -      lines << %(        appraisal: "#{entry.fetch(:appraisal)}")
    -      lines << %(        exec_cmd: "#{entry.fetch(:exec_cmd)}")
    -      lines << %(        rubygems: "#{entry.fetch(:rubygems)}")
    -      lines << %(        bundler: "#{entry.fetch(:bundler)}")
    -    end
    -    lines.join("\n")
    -  end
    +def gemspec_files_collection_entry_key(node)
    +  return [:string, node.unescaped] if node.is_a?(::Prism::StringNode)
    +  return [:splat, gemspec_files_splat_expression_key(node.expression)] if node.is_a?(::Prism::SplatNode)
    +
    +  [:source, node.slice]
     end
    +
    +
    + + + +
    +
    +
    + +

    Returns:

    +
      + +
    • + + + (Boolean) + + + +
    • + +
    + +
    @@ -21700,9 +36151,9 @@

    -

    +

    - .appraisal_x_stdlib_exclusions(template_content) ⇒ Object + .gemspec_files_collection_group_source(group, trailing_comma:) ⇒ Object @@ -21714,27 +36165,37 @@

     
     
    -2086
    -2087
    -2088
    -2089
    -2090
    -2091
    -2092
    -2093
    -2094
    +7665 +7666 +7667 +7668 +7669 +7670 +7671 +7672 +7673 +7674 +7675 +7676 +7677 +7678

    @@ -21742,9 +36203,9 @@

    -

    +

    - .appraisals_policy_operations(template_content, original, final, request) ⇒ Object + .gemspec_files_collection_groups(record:, element_nodes:, lines:) ⇒ Object @@ -21756,51 +36217,81 @@

     
     
    -4041
    -4042
    -4043
    -4044
    -4045
    -4046
    -4047
    -4048
    -4049
    -4050
    -4051
    -4052
    -4053
    -4054
    -4055
    -4056
    -4057
    -4058
    -4059
    -4060
    -4061
    +7839 +7840 +7841 +7842 +7843 +7844 +7845 +7846 +7847 +7848 +7849 +7850 +7851 +7852 +7853 +7854 +7855 +7856 +7857 +7858 +7859 +7860 +7861 +7862 +7863 +7864 +7865 +7866 +7867 +7868 +7869 +7870 +7871 +7872 +7873 +7874

    @@ -21808,65 +36299,58 @@

    -

    +

    - .author_facts(config, env, gemspec_metadata: {}, copyright: {}) ⇒ Object + .gemspec_files_collection_has_nonliteral_entries?(parts) ⇒ Boolean -

     
     
    -5655
    -5656
    -5657
    -5658
    -5659
    +7876 +7877 +7878 +7879
    -
    # File 'lib/kettle/jem.rb', line 5655
    +      
    # File 'lib/kettle/jem.rb', line 7876
     
    -def appraisal_x_stdlib_eval_gemfile_call(block)
    -  ruby_call_records(block, :eval_gemfile).find do |call|
    -    ruby_string_argument(call).to_s.start_with?("modular/x_std_libs")
    -  end
    +def gemspec_files_collection_entry_node?(node)
    +  node.location.start_line == node.location.end_line &&
    +    (node.is_a?(::Prism::StringNode) || node.is_a?(::Prism::SplatNode))
     end
    -
    # File 'lib/kettle/jem.rb', line 2086
    +      
    # File 'lib/kettle/jem.rb', line 7665
     
    -def appraisal_x_stdlib_exclusions(template_content)
    -  gems = ruby_call_records(template_content, :eval_gemfile).filter_map do |call|
    -    path = ruby_string_argument(call).to_s
    -    next unless path.start_with?("../")
    +def gemspec_files_collection_group_source(group, trailing_comma:)
    +  lines = group.fetch(:lines).dup
    +  return lines.join unless trailing_comma
     
    -    path.delete_prefix("../").split("/").first
    -  end
    -  (gems + APPRAISAL_ALWAYS_EXCLUDED_GEMS).uniq.sort
    +  entry_index = lines.rindex { |line| !line.strip.empty? && !line.lstrip.start_with?("#") }
    +  return lines.join unless entry_index
    +
    +  line = lines.fetch(entry_index)
    +  return lines.join if line.rstrip.end_with?(",")
    +
    +  newline = line.end_with?("\n") ? "\n" : ""
    +  lines[entry_index] = "#{line.delete_suffix("\n").rstrip},#{newline}"
    +  lines.join
     end
    -
    # File 'lib/kettle/jem.rb', line 4041
    +      
    # File 'lib/kettle/jem.rb', line 7839
     
    -def appraisals_policy_operations(template_content, original, final, request)
    -  package_name = runtime_context_value(request, :package, :name).to_s
    -  min_ruby = minimum_ruby_token(runtime_context_value(request, :ci, :test_min_ruby) || runtime_context_value(request, :rubygems, :min_ruby))
    -  source = "#{template_content}\n#{original}"
    -  [
    -    {
    -      operation: "merge_appraisal_blocks",
    -      inserted_appraisals: (appraisal_names(template_content) - appraisal_names(original)).sort,
    -      preserved_destination_appraisals: (appraisal_names(original) - appraisal_names(template_content) & appraisal_names(final)).sort
    -    },
    -    {
    -      operation: "delete_self_dependency_declarations",
    -      deleted_dependency_count: [gemfile_dependency_names(source).count(package_name) - gemfile_dependency_names(final).count(package_name), 0].max
    -    },
    -    {
    -      operation: "prune_minimum_ruby_appraisals",
    -      min_ruby: min_ruby,
    -      deleted_appraisals: (ruby_appraisal_names_below(original, min_ruby) - appraisal_names(final)).sort
    -    }
    -  ]
    +def gemspec_files_collection_groups(record:, element_nodes:, lines:)
    +  pending = []
    +  groups = []
    +  body_lines = lines[1...-1]
    +  nodes = element_nodes.dup
    +
    +  body_lines.each_with_index do |line, body_index|
    +    current_entry = nodes.first
    +
    +    if current_entry && current_entry.location.start_line == record.fetch(:start_line) + body_index + 1
    +      unless gemspec_files_collection_entry_node?(current_entry)
    +        groups = nil
    +        break
    +      end
    +
    +      groups << {
    +        key: gemspec_files_collection_entry_key(current_entry),
    +        node: current_entry,
    +        lines: pending + [line]
    +      }
    +      pending = []
    +      nodes.shift
    +      next
    +    end
    +
    +    if line.strip.empty? || line.lstrip.start_with?("#")
    +      pending << line
    +      next
    +    end
    +  end
    +
    +  return unless groups
    +  return if nodes.any?
    +
    +  groups
     end
    +
    +
    + + + +
    +
    +
    + +

    Returns:

    +
      + +
    • + + + (Boolean) + + + +
    • + +
    + +
    @@ -21874,35 +36358,62 @@

    -

    +

    - .author_family_names(name) ⇒ Object + .gemspec_files_collection_has_package_metadata_splat?(parts) ⇒ Boolean -

     
     
    -8167
    -8168
    -8169
    -8170
    -8171
    -8172
    -8173
    -8174
    -8175
    -8176
    -8177
    -8178
    -8179
    -8180
    -8181
    -8182
    -8183
    -8184
    -8185
    -8186
    -8187
    +7954 +7955 +7956 +7957 +7958 +7959
    -
    # File 'lib/kettle/jem.rb', line 8167
    +      
    # File 'lib/kettle/jem.rb', line 7954
     
    -def author_facts(config, env, gemspec_metadata: {}, copyright: {})
    -  token_config = token_config_values(config)
    -  author_config = token_config["author"].is_a?(Hash) ? token_config["author"] : {}
    -  derived_name = Array([:authors]).map(&:to_s).find { |value| present_template_token_value?(value) }
    -  derived_email = Array([:email]).map(&:to_s).find { |value| present_template_token_value?(value) }
    -  name = preferred_template_token_value(derived_name, author_config["name"], env, "KJ_AUTHOR_NAME").to_s
    -  email = preferred_template_token_value(derived_email, author_config["email"], env, "KJ_AUTHOR_EMAIL").to_s
    -  given_names = preferred_template_token_value(author_given_names(name), author_config["given_names"], env, "KJ_AUTHOR_GIVEN_NAMES")
    -  family_names = preferred_template_token_value(author_family_names(name), author_config["family_names"], env, "KJ_AUTHOR_FAMILY_NAMES")
    -  domain = preferred_template_token_value(email.split("@", 2)[1], author_config["domain"], env, "KJ_AUTHOR_DOMAIN")
    -  orcid = preferred_template_token_value(nil, author_config["orcid"], env, "KJ_AUTHOR_ORCID")
    -  compact_hash(
    -    name: name,
    -    names: author_names(, copyright, name),
    -    given_names: given_names.to_s,
    -    family_names: family_names.to_s,
    -    email: email,
    -    domain: domain.to_s,
    -    orcid: orcid.to_s
    -  )
    +def gemspec_files_collection_has_nonliteral_entries?(parts)
    +  parts.fetch(:groups).any? do |group|
    +    node = group.fetch(:node)
    +    !node.is_a?(::Prism::StringNode)
    +  end
     end
    +
    +
    + + + +
    +
    +
    + +

    Returns:

    +
      + +
    • + + + (Boolean) + + + +
    • + +
    + +
    @@ -21910,9 +36421,9 @@

    -

    +

    - .author_given_names(name) ⇒ Object + .gemspec_files_collection_kind(value_node) ⇒ Object @@ -21924,21 +36435,21 @@

     
     
    -9785
    -9786
    -9787
    -9788
    -9789
    -9790
    +7804 +7805 +7806 +7807 +7808 +7809

    @@ -21946,37 +36457,60 @@

    -

    +

    - .author_names(gemspec_metadata, copyright, primary_name) ⇒ Object + .gemspec_files_collection_needs_concat?(target_parts, groups) ⇒ Boolean -

     
     
    -9792
    -9793
    -9794
    -9795
    -9796
    -9797
    +7945 +7946 +7947 +7948 +7949 +7950 +7951 +7952
    -
    # File 'lib/kettle/jem.rb', line 9792
    -
    -def author_family_names(name)
    -  parts = name.to_s.strip.split(/\s+/)
    -  return "" if parts.size < 2
    +      
    # File 'lib/kettle/jem.rb', line 7945
     
    -  parts[-1]
    +def (parts)
    +  parts.fetch(:groups).any? do |group|
    +    key = group.fetch(:key)
    +    key.is_a?(Array) &&
    +      key.first == :splat &&
    +      (key[1] == "package_metadata_files" || key[1] == [:call, nil, :package_metadata_files, []])
    +  end
     end
    -
    # File 'lib/kettle/jem.rb', line 9785
    +      
    # File 'lib/kettle/jem.rb', line 7804
     
    -def author_given_names(name)
    -  parts = name.to_s.strip.split(/\s+/)
    -  return "" if parts.size < 2
    +def gemspec_files_collection_kind(value_node)
    +  return :dir if gemspec_files_dir_call_node?(value_node)
    +  return :array if value_node.is_a?(::Prism::ArrayNode)
     
    -  parts[0...-1].join(" ")
    +  nil
     end
    +
    +
    + + + +
    +
    +
    + +

    Returns:

    +
      + +
    • + + + (Boolean) + + + +
    • + +
    + +
    @@ -21984,9 +36518,9 @@

    -

    +

    - .author_template_tokens(author) ⇒ Object + .gemspec_files_collection_parts(record) ⇒ Object @@ -21998,35 +36532,25 @@

     
     
    -8214
    -8215
    -8216
    -8217
    -8218
    -8219
    -8220
    -8221
    -8222
    -8223
    -8224
    -8225
    -8226
    +7728 +7729 +7730 +7731 +7732 +7733 +7734 +7735

    @@ -22034,47 +36558,60 @@

    -

    +

    + + .gemspec_files_concat_call_node?(node) ⇒ Boolean + + + + + +

    +
    + + + +
    +
    +
    - .bash_merge_options(recipe) ⇒ Object +

    Returns:

    +
      - +
    • + + + (Boolean) + + + +
    • +
    - -

     
     
    -8228
    -8229
    -8230
    -8231
    -8232
    -8233
    -8234
    +7619 +7620 +7621 +7622 +7623 +7624 +7625
    -
    # File 'lib/kettle/jem.rb', line 8228
    +      
    # File 'lib/kettle/jem.rb', line 7619
     
    -def author_names(, copyright, primary_name)
    -  names = Array([:authors]).map(&:to_s)
    -  names = names.select { |name| present_template_token_value?(name) }
    -  names = copyright_author_names(copyright) if names.empty?
    -  names = [primary_name.to_s] if names.empty?
    -  names.map(&:strip).reject(&:empty?).uniq
    +def gemspec_files_collection_needs_concat?(target_parts, groups)
    +  target_parts.fetch(:collection_kind) == :array &&
    +    groups.any? do |group|
    +      group.fetch(:source_collection_kind) == :dir &&
    +        group.fetch(:node).is_a?(::Prism::StringNode)
    +    end
     end
    -
    # File 'lib/kettle/jem.rb', line 8214
    +      
    # File 'lib/kettle/jem.rb', line 7728
     
    -def author_template_tokens(author)
    -  names = Array(author[:names]).map(&:to_s).reject(&:empty?)
    -  names = [author[:name].to_s] if names.empty?
    -  {
    -    "KJ|AUTHOR:NAME" => author[:name].to_s,
    -    "KJ|AUTHOR:NAMES" => ruby_array_literal(names),
    -    "KJ|AUTHOR:GIVEN_NAMES" => author[:given_names].to_s,
    -    "KJ|AUTHOR:FAMILY_NAMES" => author[:family_names].to_s,
    -    "KJ|AUTHOR:EMAIL" => author[:email].to_s,
    -    "KJ|AUTHOR:DOMAIN" => author[:domain].to_s,
    -    "KJ|AUTHOR:ORCID" => author[:orcid].to_s
    -  }
    +def gemspec_files_collection_parts(record)
    +  value_node = record.fetch(:value_node)
    +  if gemspec_files_concat_call_node?(value_node)
    +    return gemspec_files_concat_collection_parts(record, value_node)
    +  end
    +
    +  gemspec_files_single_collection_parts(record, value_node)
     end
    +
    @@ -22082,9 +36619,9 @@

    -

    +

    - .build_changelog_unreleased_section(heading, items) ⇒ Object + .gemspec_files_concat_collection_parts(record, value_node) ⇒ Object @@ -22096,35 +36633,73 @@

     
     
    -3779
    -3780
    -3781
    -3782
    -3783
    -3784
    -3785
    -3786
    -3787
    -3788
    -3789
    -3790
    -3791
    +7755 +7756 +7757 +7758 +7759 +7760 +7761 +7762 +7763 +7764 +7765 +7766 +7767 +7768 +7769 +7770 +7771 +7772 +7773 +7774 +7775 +7776 +7777 +7778 +7779 +7780 +7781 +7782 +7783 +7784 +7785 +7786

    @@ -22132,9 +36707,9 @@

    -

    +

    - .changed_files_from_recipe_reports(recipe_reports) ⇒ Object + .gemspec_files_concat_collection_source(target_parts, groups) ⇒ Object @@ -22146,25 +36721,37 @@

     
     
    -3103
    -3104
    -3105
    -3106
    -3107
    -3108
    -3109
    -3110
    +7627 +7628 +7629 +7630 +7631 +7632 +7633 +7634 +7635 +7636 +7637 +7638 +7639 +7640

    @@ -22172,9 +36759,9 @@

    -

    +

    - .changelog_bullet_line?(line) ⇒ Boolean + .gemspec_files_dir_call_node?(node) ⇒ Boolean @@ -22209,17 +36796,21 @@

     
     
    -3793
    -3794
    -3795
    -3796
    +7832 +7833 +7834 +7835 +7836 +7837

    @@ -22227,9 +36818,9 @@

    -

    +

    - .changelog_coverage_kloc(section) ⇒ Object + .gemspec_files_dir_collection_source(target_parts, groups, closing: nil) ⇒ Object @@ -22241,25 +36832,25 @@

     
     
    -4453
    -4454
    -4455
    -4456
    -4457
    -4458
    -4459
    -4460
    +7642 +7643 +7644 +7645 +7646 +7647 +7648 +7649

    @@ -22267,9 +36858,9 @@

    -

    +

    - .changelog_template_header(lines, unreleased_index) ⇒ Object + .gemspec_files_group_collection_kind(group, parts) ⇒ Object @@ -22281,19 +36872,15 @@

     
     
    -3720
    -3721
    -3722
    -3723
    -3724
    +7820 +7821 +7822

    @@ -22301,9 +36888,9 @@

    -

    +

    - .changelog_unreleased_end_index(lines, unreleased_index) ⇒ Object + .gemspec_files_single_collection_parts(record, value_node) ⇒ Object @@ -22315,33 +36902,43 @@

     
     
    -3737
    -3738
    -3739
    -3740
    -3741
    -3742
    -3743
    -3744
    -3745
    -3746
    -3747
    -3748
    +7737 +7738 +7739 +7740 +7741 +7742 +7743 +7744 +7745 +7746 +7747 +7748 +7749 +7750 +7751 +7752 +7753

    @@ -22349,56 +36946,47 @@

    -

    +

    - .changelog_unreleased_heading?(heading_text) ⇒ Boolean - - + .gemspec_files_splat_expression_key(node) ⇒ Object -

    -
    - - -
    -
    -
    - -

    Returns:

    -
      - -
    • - - - (Boolean) - - - -
    • -
    - -

     
     
    -5820
    -5821
    -5822
    -5823
    -5824
    -5825
    -5826
    -5827
    -5828
    -5829
    -5830
    -5831
    +7824 +7825 +7826 +7827 +7828 +7829 +7830
    -
    # File 'lib/kettle/jem.rb', line 5820
    +      
    # File 'lib/kettle/jem.rb', line 7824
     
    -def bash_merge_options(recipe)
    -  options = {
    -    preference: (recipe.dig(:template_preference, :preference) || "destination").to_sym,
    -    add_template_only_nodes: true,
    -    freeze_token: recipe.dig(:template_preference, :freeze_token) || "kettle-jem"
    -  }
    -  if !recipe.dig(:template_preference, :add_template_only_nodes).nil?
    -    configured = DecisionPolicy.value_to_boolean(recipe.dig(:template_preference, :add_template_only_nodes))
    -    options[:add_template_only_nodes] = configured unless configured.nil?
    -  end
    -  options
    +def gemspec_files_concat_call_node?(node)
    +  node.is_a?(::Prism::CallNode) &&
    +    node.name == :+ &&
    +    node.block.nil? &&
    +    node.receiver &&
    +    Array(node.arguments&.arguments).length == 1
     end
    -
    # File 'lib/kettle/jem.rb', line 3779
    +      
    # File 'lib/kettle/jem.rb', line 7755
     
    -def build_changelog_unreleased_section(heading, items)
    -  lines = [heading]
    -  CHANGELOG_STANDARD_HEADINGS.each do |standard_heading|
    -    lines << ""
    -    lines << standard_heading
    -    lines << ""
    -    section_items = items[standard_heading].to_a.dup
    -    section_items.pop while section_items.any? && section_items.last.to_s.strip.empty?
    -    lines.concat(section_items) if section_items.any?
    +def gemspec_files_concat_collection_parts(record, value_node)
    +  arguments = Array(value_node.arguments&.arguments)
    +  left_record = gemspec_files_child_collection_record(record, value_node.receiver)
    +  right_record = gemspec_files_child_collection_record(record, arguments.first)
    +  return unless left_record && right_record
    +
    +  left_parts = gemspec_files_single_collection_parts(
    +    left_record,
    +    value_node.receiver
    +  )
    +  right_parts = gemspec_files_single_collection_parts(
    +    right_record,
    +    arguments.first
    +  )
    +  return unless left_parts && right_parts
    +
    +  groups = left_parts.fetch(:groups).map do |group|
    +    group.merge(source_collection_kind: left_parts.fetch(:collection_kind))
       end
    -  lines << ""
    -  lines
    +  groups.concat(
    +    right_parts.fetch(:groups).map do |group|
    +      group.merge(source_collection_kind: right_parts.fetch(:collection_kind))
    +    end
    +  )
    +
    +  {
    +    collection_kind: :concat,
    +    opening: left_parts.fetch(:opening),
    +    closing: right_parts.fetch(:closing),
    +    groups: groups
    +  }
     end
    -
    # File 'lib/kettle/jem.rb', line 3103
    +      
    # File 'lib/kettle/jem.rb', line 7627
     
    -def changed_files_from_recipe_reports(recipe_reports)
    -  latest_by_path = {}
    -  recipe_reports.each do |report|
    -    path = report[:relative_path]
    -    latest_by_path[path] = report if path
    +def gemspec_files_concat_collection_source(target_parts, groups)
    +  dir_groups, array_groups = groups.partition do |group|
    +    group.fetch(:source_collection_kind) == :dir &&
    +      group.fetch(:node).is_a?(::Prism::StringNode)
       end
    -  latest_by_path.values.filter_map { |report| report[:relative_path] if report[:changed] }.uniq.sort
    +  return gemspec_files_array_collection_source(target_parts, array_groups) if dir_groups.empty?
    +  return gemspec_files_dir_collection_source(target_parts, dir_groups) if array_groups.empty?
    +
    +  [
    +    gemspec_files_dir_collection_source(target_parts, dir_groups, closing: "] + [\n"),
    +    gemspec_files_collection_body_source(array_groups),
    +    target_parts.fetch(:closing)
    +  ].join
     end
    -
    # File 'lib/kettle/jem.rb', line 3793
    +      
    # File 'lib/kettle/jem.rb', line 7832
     
    -def changelog_bullet_line?(line)
    -  stripped = line.to_s.lstrip
    -  stripped.start_with?("- ", "* ")
    +def gemspec_files_dir_call_node?(node)
    +  node.is_a?(::Prism::CallNode) &&
    +    node.name == :[] &&
    +    node.block.nil? &&
    +    node.receiver&.slice == "Dir"
     end
    -
    # File 'lib/kettle/jem.rb', line 4453
    -
    -def changelog_coverage_kloc(section)
    -  return if section.to_s.empty?
    -
    -  match = section.to_s.match(/-\s*COVERAGE:\s*.+--\s*\d+\/(\d+)\s+lines/i)
    -  return unless match
    +      
    # File 'lib/kettle/jem.rb', line 7642
     
    -  format("%.3f", match[1].to_i.to_f / 1000.0)
    +def gemspec_files_dir_collection_source(target_parts, groups, closing: nil)
    +  opening = target_parts.fetch(:opening).sub("= [", "= Dir[")
    +  [
    +    opening,
    +    gemspec_files_collection_body_source(groups),
    +    closing || target_parts.fetch(:closing)
    +  ].join
     end
    -
    # File 'lib/kettle/jem.rb', line 3720
    +      
    # File 'lib/kettle/jem.rb', line 7820
     
    -def changelog_template_header(lines, unreleased_index)
    -  header = lines[0...unreleased_index].to_a
    -  header.pop while header.any? && header.last.to_s.strip.empty?
    -  header
    +def gemspec_files_group_collection_kind(group, parts)
    +  group.fetch(:source_collection_kind, parts.fetch(:collection_kind))
     end
    -
    # File 'lib/kettle/jem.rb', line 3737
    +      
    # File 'lib/kettle/jem.rb', line 7737
     
    -def changelog_unreleased_end_index(lines, unreleased_index)
    -  index = unreleased_index + 1
    -  while index < lines.length
    -    line = lines.fetch(index)
    -    # Markdown link-reference definitions are footer content, not Unreleased section body.
    -    return index if markdown_link_reference_definition_line?(line)
    -    return index if line.start_with?("# ") || (line.start_with?("## ") && !changelog_unreleased_heading_line?(line))
    +def gemspec_files_single_collection_parts(record, value_node)
    +  element_nodes = gemspec_files_collection_element_nodes(value_node)
    +  return unless element_nodes
     
    -    index += 1
    -  end
    -  lines.length
    +  lines = record.fetch(:source).lines
    +  return if lines.length < 3
    +
    +  groups = gemspec_files_collection_groups(record: record, element_nodes: element_nodes, lines: lines)
    +  return unless groups
    +
    +  {
    +    collection_kind: gemspec_files_collection_kind(value_node),
    +    opening: lines.first,
    +    closing: lines.last,
    +    groups: groups
    +  }
     end
    +
    @@ -22406,9 +36994,9 @@

    -

    +

    - .changelog_unreleased_heading_line?(line) ⇒ Boolean + .gemspec_freeze_block_structurally_managed?(block, receiver:) ⇒ Boolean @@ -22443,21 +37031,19 @@

     
     
    -3730
    -3731
    -3732
    -3733
    -3734
    -3735
    +8052 +8053 +8054 +8055 +8056

    @@ -22465,9 +37051,9 @@

    -

    +

    - .changelog_unreleased_items(body_lines) ⇒ Object + .gemspec_legacy_version_loader_block(entrypoint_require:, namespace:, min_ruby:) ⇒ Object @@ -22479,67 +37065,73 @@

     
     
    -3754
    -3755
    -3756
    -3757
    -3758
    -3759
    -3760
    -3761
    -3762
    -3763
    -3764
    -3765
    -3766
    -3767
    -3768
    -3769
    -3770
    -3771
    -3772
    -3773
    -3774
    -3775
    -3776
    -3777
    +7248 +7249 +7250 +7251 +7252 +7253 +7254 +7255 +7256 +7257 +7258 +7259 +7260 +7261 +7262 +7263 +7264 +7265 +7266 +7267 +7268 +7269 +7270 +7271 +7272 +7273 +7274

     
     
    -3825
    -3826
    -3827
    -3828
    -3829
    +7888 +7889 +7890 +7891 +7892 +7893 +7894 +7895 +7896 +7897 +7898 +7899
    -
    # File 'lib/kettle/jem.rb', line 3825
    +      
    # File 'lib/kettle/jem.rb', line 7888
     
    -def changelog_unreleased_heading?(heading_text)
    -  text = heading_text.to_s.strip
    -  text = text[1...-1] if text.start_with?("[") && text.end_with?("]")
    -  text.casecmp("Unreleased").zero?
    +def gemspec_files_splat_expression_key(node)
    +  if node.is_a?(::Prism::CallNode)
    +    return [
    +      :call,
    +      node.receiver&.slice,
    +      node.name,
    +      Array(node.arguments&.arguments).map { |argument| ruby_static_string_value(argument) || argument.slice }
    +    ]
    +  end
    +
    +  node&.slice
     end
    -
    # File 'lib/kettle/jem.rb', line 3730
    -
    -def changelog_unreleased_heading_line?(line)
    -  text = line.to_s.strip
    -  return false unless text.start_with?("## ")
    +      
    # File 'lib/kettle/jem.rb', line 8052
     
    -  changelog_unreleased_heading?(text.delete_prefix("## ").strip)
    +def gemspec_freeze_block_structurally_managed?(block, receiver:)
    +  gemspec_assignment_records(block.join, receiver: receiver).any? { |record| record.fetch(:field) == "files" }
    +rescue Ast::Crispr::Error, Prism::ParseError
    +  false
     end
    -
    # File 'lib/kettle/jem.rb', line 3754
    -
    -def changelog_unreleased_items(body_lines)
    -  items = {}
    -  heading = nil
    -  index = 0
    -  while index < body_lines.length
    -    line = body_lines.fetch(index)
    -    if line.start_with?("### ")
    -      heading = line.strip
    -      items[heading] ||= []
    -      index += 1
    -      next
    -    end
    +      
    # File 'lib/kettle/jem.rb', line 7248
     
    -    if changelog_bullet_line?(line)
    -      lines, index = collect_changelog_list_item(body_lines, index)
    -      items[heading] ||= []
    -      items[heading].concat(lines)
    -      next
    -    end
    +def gemspec_legacy_version_loader_block(entrypoint_require:, namespace:, min_ruby:)
    +  legacy_require =
    +    if min_ruby >= REQUIRE_RELATIVE_MIN_RUBY
    +      %(require_relative "lib/#{entrypoint_require}/version")
    +    else
    +      <<~RUBY.chomp
    +        # NOTE: Use __FILE__ or __dir__ until removal of Ruby 1.x support
    +        # __dir__ introduced in Ruby 1.9.1
    +        lib = File.expand_path("lib", File.dirname(__FILE__))
    +        $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
    +        require "#{entrypoint_require}/version"
    +      RUBY
    +    end
     
    -    index += 1
    -  end
    -  items
    -end
    + <<~RUBY + gem_version = + if Gem.ruby_version >= Gem::Version.new("3.1") + # Loading Version into an anonymous module allows version.rb to get code coverage from SimpleCov! + # See: https://github.com/simplecov-ruby/simplecov/issues/557#issuecomment-2630782358 + # See: https://github.com/panorama-ed/memo_wise/pull/397 + #{gemspec_modern_version_loader_expression(entrypoint_require: entrypoint_require, namespace: namespace)} + else + #{legacy_require.gsub("\n", "\n ")} + #{namespace}::Version::VERSION + end + RUBY +end
    -

    +

    - .changelog_unreleased_line_index(lines) ⇒ Object + .gemspec_legacy_version_loader_preamble_line_range(content) ⇒ Object @@ -22551,15 +37143,47 @@

     
     
    -3726
    -3727
    -3728
    +7288 +7289 +7290 +7291 +7292 +7293 +7294 +7295 +7296 +7297 +7298 +7299 +7300 +7301 +7302 +7303 +7304 +7305 +7306

    -
    # File 'lib/kettle/jem.rb', line 3726
    +      
    # File 'lib/kettle/jem.rb', line 7288
     
    -def changelog_unreleased_line_index(lines)
    -  lines.index { |line| changelog_unreleased_heading_line?(line) }
    +def gemspec_legacy_version_loader_preamble_line_range(content)
    +  lines = content.to_s.lines
    +  start_index = lines.index do |line|
    +    # Prism has represented this legacy multiline assignment inconsistently across
    +    # parser versions; this fallback is limited to the exact top-level preamble
    +    # shape immediately preceding Gem::Specification.new.
    +    line.match?(/\Agem_version\s*=/)
    +  end
    +  return unless start_index
    +
    +  gemspec_index = lines.each_with_index.find do |line, index|
    +    index > start_index && line.include?("Gem::Specification.new")
    +  end&.last
    +  return unless gemspec_index
    +
    +  end_line = gemspec_index
    +  end_line -= 1 while end_line > start_index && lines[end_line - 1].strip.empty?
    +  {start_line: start_index + 1, end_line: end_line}
     end
    +
    @@ -22630,9 +37221,9 @@

    -

    +

    - .classify_namespace(name) ⇒ Object + .gemspec_new_call(source) ⇒ Object @@ -22644,15 +37235,15 @@

     
     
    -10878
    -10879
    -10880
    +8524 +8525 +8526

    @@ -22660,9 +37251,9 @@

    -

    +

    - .codeberg_repo_url(repository, repo_slug, suffix) ⇒ Object + .gemspec_package_file_includes_token(gemspec) ⇒ Object @@ -22674,27 +37265,43 @@

     
     
    -9112
    -9113
    -9114
    -9115
    -9116
    -9117
    -9118
    -9119
    -9120
    +12078 +12079 +12080 +12081 +12082 +12083 +12084 +12085 +12086 +12087 +12088 +12089 +12090 +12091 +12092 +12093 +12094

    @@ -22702,47 +37309,54 @@

    -

    +

    - .collapse_excess_blank_lines(content) ⇒ Object + .gemspec_path_declares_gem?(path, gem_name) ⇒ Boolean + + + + + +

    +
    + + + +
    +
    +
    + +

    Returns:

    +
      - +
    • + + + (Boolean) + + + +
    • +
    - -

     
     
    -4444
    -4445
    -4446
    -4447
    -4448
    -4449
    -4450
    -4451
    +7244 +7245 +7246
    -
    # File 'lib/kettle/jem.rb', line 4444
    -
    -def changelog_version_heading_line?(line, version)
    -  text = line.to_s.strip
    -  return false unless text.start_with?("## ")
    +      
    # File 'lib/kettle/jem.rb', line 7244
     
    -  heading = text.delete_prefix("## ").strip
    -  heading = heading[1...heading.index("]")] if heading.start_with?("[") && heading.include?("]")
    -  heading == version || heading.start_with?("#{version} ")
    +def gemspec_modern_version_loader_expression(entrypoint_require:, namespace:)
    +  %(Module.new.tap { |mod| Kernel.load("\#{__dir__}/lib/#{entrypoint_require}/version.rb", mod) }::#{namespace}::Version::VERSION)
     end
    -
    # File 'lib/kettle/jem.rb', line 10878
    +      
    # File 'lib/kettle/jem.rb', line 8524
     
    -def classify_namespace(name)
    -  name.to_s.split(/[-_]/).map { |part| part[0].to_s.upcase + part[1..].to_s }.join("::")
    +def gemspec_new_call(source)
    +  ruby_call_records(source, :new).find { |call| call.receiver&.slice == "Gem::Specification" }
     end
    -
    # File 'lib/kettle/jem.rb', line 9112
    +      
    # File 'lib/kettle/jem.rb', line 12078
     
    -def codeberg_repo_url(repository, repo_slug, suffix)
    -  resources = repository[:resource_urls] || {}
    -  return resources[:codeberg_issues_url] if suffix == "issues" && resources[:codeberg_issues_url]
    -  return resources[:codeberg_pulls_url] if suffix == "pulls" && resources[:codeberg_pulls_url]
    +def gemspec_package_file_includes_token(gemspec)
    +  includes = Array(gemspec[:package_file_includes] || gemspec["package_file_includes"])
    +    .map { |path| path.to_s.strip }
    +    .reject(&:empty?)
    +    .uniq
    +  return "" if includes.empty?
     
    -  base = repository[:codeberg_url].to_s
    -  base = "https://codeberg.org/#{repo_slug}" if base.empty?
    -  "#{base}/#{suffix}"
    +  lines = [
    +    "",
    +    "    # Extra package files configured by .structuredmerge/kettle-jem.yml"
    +  ]
    +  includes.each_with_index do |pattern, index|
    +    comma = (index < includes.length - 1) ? "," : ""
    +    lines << %(    *Dir.glob(#{pattern.dump}, File::FNM_DOTMATCH).select { |path| File.file?(path) }#{comma})
    +  end
    +  ",#{lines.join("\n")}"
     end
    +
    @@ -22750,9 +37364,9 @@

    -

    +

    - .collect_changelog_list_item(lines, start_index) ⇒ Object + .gemspec_policy_operations(template_content, original, final, request) ⇒ Object @@ -22764,61 +37378,85 @@

     
     
    -3798
    -3799
    -3800
    -3801
    -3802
    -3803
    -3804
    -3805
    -3806
    -3807
    -3808
    -3809
    -3810
    -3811
    -3812
    -3813
    -3814
    -3815
    -3816
    -3817
    -3818
    -3819
    -3820
    -3821
    -3822
    -3823
    +4537 +4538 +4539 +4540 +4541 +4542 +4543 +4544 +4545 +4546 +4547 +4548 +4549 +4550 +4551 +4552 +4553 +4554 +4555 +4556 +4557 +4558 +4559 +4560 +4561 +4562 +4563 +4564 +4565 +4566 +4567 +4568 +4569 +4570 +4571 +4572 +4573 +4574

    @@ -22826,9 +37464,9 @@

    -

    +

    - .collect_yaml_scalar_path_entries(node, path, entries) ⇒ Object + .gemspec_preserved_assignment_fieldsObject @@ -22840,43 +37478,35 @@

     
     
    -11533
    -11534
    -11535
    -11536
    -11537
    -11538
    -11539
    -11540
    -11541
    -11542
    -11543
    -11544
    -11545
    -11546
    -11547
    -11548
    -11549
    +7519 +7520 +7521 +7522 +7523 +7524 +7525 +7526 +7527 +7528 +7529 +7530 +7531

    @@ -22884,9 +37514,9 @@

    -

    +

    - .commented_gem_call(comment_source) ⇒ Object + .gemspec_preserved_assignments(source, receiver:) ⇒ Object @@ -22898,27 +37528,29 @@

     
     
    -5380
    -5381
    -5382
    -5383
    -5384
    -5385
    -5386
    -5387
    -5388
    +7508 +7509 +7510 +7511 +7512 +7513 +7514 +7515 +7516 +7517

    @@ -22926,9 +37558,9 @@

    -

    +

    - .commented_gem_dependency_block_records(content) ⇒ Object + .gemspec_project_emoji(gemspec_metadata) ⇒ Object @@ -22940,37 +37572,29 @@

     
     
    -5278
    -5279
    -5280
    -5281
    -5282
    -5283
    -5284
    -5285
    -5286
    -5287
    -5288
    -5289
    -5290
    -5291
    +9207 +9208 +9209 +9210 +9211 +9212 +9213 +9214 +9215 +9216

    @@ -22978,9 +37602,9 @@

    -

    +

    - .commented_gem_dependency_blocks(content) ⇒ Object + .gemspec_root_license_files_token(license) ⇒ Object @@ -22992,19 +37616,17 @@

     
     
    -5272
    -5273
    -5274
    -5275
    -5276
    +12174 +12175 +12176 +12177

    @@ -23012,9 +37634,9 @@

    -

    +

    - .commented_gem_dependency_records(content) ⇒ Object + .gemspec_runtime_dependency_names(gemspec_metadata) ⇒ Object @@ -23026,40 +37648,30 @@

     
     
    -5363
    -5364
    -5365
    -5366
    -5367
    -5368
    -5369
    -5370
    -5371
    -5372
    -5373
    -5374
    -5375
    -5376
    -5377
    -5378
    +10782 +10783 +10784 +10785 +10786 +10787 +10788 +10789 +10790 +10791 +10792

    @@ -23068,9 +37680,9 @@

    -

    +

    - .compact_hash(hash) ⇒ Object + .gemspec_runtime_floor_token(facts) ⇒ Object @@ -23082,15 +37694,23 @@

     
     
    -11674
    -11675
    -11676
    +7439 +7440 +7441 +7442 +7443 +7444 +7445

    @@ -23098,9 +37718,9 @@

    -

    +

    - .concrete_github_url(url) ⇒ Object + .gemspec_self_dependency_names(request, package_name) ⇒ Object @@ -23112,15 +37732,21 @@

     
     
    -8953
    -8954
    -8955
    +8336 +8337 +8338 +8339 +8340 +8341

    @@ -23128,9 +37754,9 @@

    -

    +

    - .config_min_ruby(config) ⇒ Object + .gemspec_template_facts(config) ⇒ Object @@ -23142,19 +37768,23 @@

     
     
    -10605
    -10606
    -10607
    -10608
    -10609
    +12064 +12065 +12066 +12067 +12068 +12069 +12070

    @@ -23162,9 +37792,9 @@

    -

    +

    - .config_test_min_ruby(config, gem_min_ruby = nil) ⇒ Object + .gemspec_template_tokens(gemspec) ⇒ Object @@ -23176,41 +37806,19 @@

     
     
    -10611
    -10612
    -10613
    -10614
    -10615
    -10616
    -10617
    -10618
    -10619
    -10620
    -10621
    -10622
    -10623
    -10624
    -10625
    -10626
    +12072 +12073 +12074 +12075 +12076

    @@ -23218,9 +37826,9 @@

    -

    +

    - .configured_readme_top_logo_entries(config, org:, gem_name:, repository: {}) ⇒ Object + .gemspec_top_level_gem_version_node(content) ⇒ Object @@ -23232,35 +37840,33 @@

     
     
    -9282
    -9283
    -9284
    -9285
    -9286
    -9287
    -9288
    -9289
    -9290
    -9291
    -9292
    -9293
    -9294
    +7319 +7320 +7321 +7322 +7323 +7324 +7325 +7326 +7327 +7328 +7329 +7330

    @@ -23268,9 +37874,9 @@

    -

    +

    - .content_recipe_execution_report(request:, final_content:, changed:, step_reports:, diagnostics:, metadata: nil) ⇒ Object + .gemspec_version_loader_policy_operation(original, final, request) ⇒ Object @@ -23282,29 +37888,43 @@

     
     
    -3612
    -3613
    -3614
    -3615
    -3616
    -3617
    -3618
    -3619
    -3620
    -3621
    +4576 +4577 +4578 +4579 +4580 +4581 +4582 +4583 +4584 +4585 +4586 +4587 +4588 +4589 +4590 +4591 +4592

    @@ -23312,9 +37932,9 @@

    -

    +

    - .content_recipe_execution_report_envelope(report) ⇒ Object + .generated_blocks_facts(gemspec, facts, run_options) ⇒ Object @@ -23326,23 +37946,21 @@

    -3623 -3624 -3625 -3626 -3627 -3628 -3629 +3231 +3232 +3233 +3234 +3235 +3236

    @@ -23350,53 +37968,62 @@

    -

    +

    - .content_recipe_execution_request(recipe_name:, recipe_version:, relative_path:, provider_family:, template_content:, destination_content:, steps:, provider_backend: nil, runtime_context: nil, metadata: nil) ⇒ Object + .generated_gemspec_metadata_file_group?(group, target_parts) ⇒ Boolean -

     
     
    -8829
    -8830
    -8831
    -8832
    -8833
    -8834
    -8835
    -8836
    -8837
    -8838
    -8839
    -8840
    +3673 +3674 +3675 +3676
    -
    # File 'lib/kettle/jem.rb', line 8829
    +      
    # File 'lib/kettle/jem.rb', line 3673
     
    -def collapse_excess_blank_lines(content)
    -  blank_count = 0
    -  content.to_s.lines.filter_map do |line|
    -    if line.strip.empty?
    -      blank_count += 1
    -      next if blank_count > 1
    -    else
    -      blank_count = 0
    -    end
    -    line
    -  end.join
    +def gemspec_path_declares_gem?(path, gem_name)
    +  normalized_path = path.to_s.delete_suffix("/")
    +  normalized_path == "gems/#{gem_name}"
     end
    -
    # File 'lib/kettle/jem.rb', line 3798
    -
    -def collect_changelog_list_item(lines, start_index)
    -  line = lines.fetch(start_index).to_s
    -  base_indent = line.length - line.lstrip.length
    -  item_lines = [line.rstrip]
    -  index = start_index + 1
    -  in_fence = false
    -  while index < lines.length
    -    current = lines.fetch(index).to_s
    -    current_indent = current.length - current.lstrip.length
    -    break if !in_fence && current.start_with?("### ")
    -    break if !in_fence && changelog_bullet_line?(current) && current_indent <= base_indent
    -
    -    if current.lstrip.start_with?("```")
    -      in_fence = !in_fence
    -      item_lines << current.rstrip
    -      index += 1
    -      next
    -    end
    -
    -    break unless in_fence || current.strip.empty? || current_indent > base_indent
    +      
    # File 'lib/kettle/jem.rb', line 4537
     
    -    item_lines << current.rstrip
    -    index += 1
    +def gemspec_policy_operations(template_content, original, final, request)
    +  template_receiver = gemspec_block_param(template_content) || "spec"
    +  destination_receiver = gemspec_block_param(original) || "spec"
    +  package_name = runtime_context_value(request, :package, :name).to_s
    +  self_dependency_names = gemspec_self_dependency_names(request, package_name)
    +  operations = [
    +    {
    +      operation: "preserve_project_fields",
    +      preserved_fields: gemspec_preserved_assignments(original, receiver: destination_receiver).keys.select do |field|
    +        final.include?("#{template_receiver}.#{field} =")
    +      end.sort
    +    },
    +    {
    +      operation: "preserve_dependency_declarations",
    +      preserved_dependencies: gemspec_dependency_line_index(original, receiver: destination_receiver).keys.map(&:last).select do |gem_name|
    +        final.include?(%("#{gem_name}"))
    +      end.sort
    +    },
    +    {
    +      operation: "delete_self_dependency_declarations",
    +      deleted_dependency_count: [
    +        gemspec_dependency_names("#{template_content}\n#{original}").count { |name| self_dependency_names.include?(name) } -
    +          gemspec_dependency_names(final).count { |name| self_dependency_names.include?(name) },
    +        0
    +      ].max
    +    }
    +  ]
    +  version_loader_operation = gemspec_version_loader_policy_operation(original, final, request)
    +  operations << version_loader_operation if version_loader_operation
    +  if template_receiver != destination_receiver
    +    operations << {
    +      operation: "normalize_gemspec_receiver",
    +      from: destination_receiver,
    +      to: template_receiver
    +    }
       end
    -  [item_lines, index]
    +  operations
     end
    -
    # File 'lib/kettle/jem.rb', line 11533
    -
    -def collect_yaml_scalar_path_entries(node, path, entries)
    -  unless node.is_a?(Psych::Nodes::Mapping)
    -    node.children.each { |child| collect_yaml_scalar_path_entries(child, path, entries) } if node.respond_to?(:children)
    -    return
    -  end
    -
    -  node.children.each_slice(2) do |key_node, value_node|
    -    next unless key_node.is_a?(Psych::Nodes::Scalar)
    +      
    # File 'lib/kettle/jem.rb', line 7519
     
    -    child_path = path + [key_node.value.to_s]
    -    if value_node.is_a?(Psych::Nodes::Scalar)
    -      entries << {path: child_path, line: key_node.start_line}
    -    elsif value_node.is_a?(Psych::Nodes::Mapping)
    -      collect_yaml_scalar_path_entries(value_node, child_path, entries)
    -    end
    -  end
    +def gemspec_preserved_assignment_fields
    +  %w[
    +    name
    +    authors
    +    email
    +    summary
    +    description
    +    homepage
    +    licenses
    +    required_ruby_version
    +    executables
    +  ]
     end
    -
    # File 'lib/kettle/jem.rb', line 5380
    +      
    # File 'lib/kettle/jem.rb', line 7508
     
    -def commented_gem_call(comment_source)
    -  source = uncomment_ruby_comment_line(comment_source)
    -  return unless source
    +def gemspec_preserved_assignments(source, receiver:)
    +  gemspec_assignment_records(source, receiver: receiver).each_with_object({}) do |record, assignments|
    +    field = record.fetch(:field)
    +    next unless gemspec_preserved_assignment_fields.include?(field)
    +    next if assignments.key?(field)
    +    next if record.fetch(:source).include?("TODO:")
     
    -  result = prism_parse_success(source)
    -  body = result&.value&.statements&.body
    -  call = body&.one? ? body.first : nil
    -  call if call.is_a?(::Prism::CallNode) && call.name == :gem
    +    assignments[field] = record.fetch(:source)
    +  end
     end
    -
    # File 'lib/kettle/jem.rb', line 5278
    +      
    # File 'lib/kettle/jem.rb', line 9207
     
    -def commented_gem_dependency_block_records(content)
    -  lines = content.to_s.lines
    -  commented_gem_dependency_records(content).map do |record|
    -    start_index = record.fetch(:start_line) - 1
    -    while start_index.positive? && gemfile_comment_line?(lines[start_index - 1])
    -      start_index -= 1
    -    end
    -    record.merge(
    -      block_start_line: start_index + 1,
    -      block_end_line: record.fetch(:end_line),
    -      source_lines: lines[start_index..(record.fetch(:end_line) - 1)] || []
    -    )
    +def gemspec_project_emoji()
    +  [
    +    (, :summary),
    +    (, :description)
    +  ].each do |value|
    +    candidate = first_grapheme(value)
    +    return candidate if decorative_grapheme?(candidate)
       end
    +  nil
     end
    -
    # File 'lib/kettle/jem.rb', line 5272
    +      
    # File 'lib/kettle/jem.rb', line 12174
     
    -def commented_gem_dependency_blocks(content)
    -  commented_gem_dependency_block_records(content).to_h do |record|
    -    [record.fetch(:name), record.fetch(:source_lines)]
    -  end
    +def gemspec_root_license_files_token(license)
    +  files = (["LICENSE.md"] + Array(license[:spdx]).map { |spdx_id| "#{spdx_basename(spdx_id)}.md" }).uniq
    +  files.map { |file| "    #{file.dump},\n" }.join
     end
    -
    # File 'lib/kettle/jem.rb', line 5363
    -
    -def commented_gem_dependency_records(content)
    -  result = prism_parse_success(content)
    -  return [] unless result
    +      
    # File 'lib/kettle/jem.rb', line 10782
     
    -  result.comments.filter_map do |comment|
    -    call = commented_gem_call(comment.location.slice)
    -    name = ruby_string_argument(call)
    -    next unless name
    +def gemspec_runtime_dependency_names()
    +  dependencies = Array(
    +    [:runtime_dependencies] || ["runtime_dependencies"]
    +  )
    +  dependencies.each_with_object([]) do |dependency, names|
    +    name = dependency.respond_to?(:name) ? dependency.name.to_s : dependency.to_s
    +    next if name.empty? || names.include?(name)
     
    -    {
    -      name: name,
    -      start_line: comment.location.start_line,
    -      end_line: comment.location.end_line
    -    }
    +    names << name
       end
     end
    -
    # File 'lib/kettle/jem.rb', line 11674
    +      
    # File 'lib/kettle/jem.rb', line 7439
     
    -def compact_hash(hash)
    -  hash.reject { |_key, value| value.nil? || (value.respond_to?(:empty?) && value.empty?) }
    +def gemspec_runtime_floor_token(facts)
    +  raw = facts.to_h.dig(:rubygems, :min_ruby).to_s.strip
    +  token = minimum_ruby_token(raw)
    +  return "0" if token.empty? && raw == "0"
    +
    +  token
     end
    -
    # File 'lib/kettle/jem.rb', line 8953
    +      
    # File 'lib/kettle/jem.rb', line 8336
     
    -def concrete_github_url(url)
    -  github_org_from_url(url) ? url.to_s : nil
    +def gemspec_self_dependency_names(request, package_name)
    +  names = [package_name.to_s]
    +  token_value = runtime_context_value(request, :template_tokens, "KJ|GEM_NAME")
    +  names << "{KJ|GEM_NAME}" if token_value.to_s == package_name.to_s
    +  names.reject(&:empty?).uniq
     end
    -
    # File 'lib/kettle/jem.rb', line 10605
    +      
    # File 'lib/kettle/jem.rb', line 12064
     
    -def config_min_ruby(config)
    -  value = config.dig("rubygems", "min_ruby") || config["min_ruby"]
    -  version = value.to_s[/\d+\.\d+(?:\.\d+)?/]
    -  version && Gem::Version.new(version)
    +def gemspec_template_facts(config)
    +  includes = Array(config.dig("gemspec", "package_files", "include"))
    +    .map { |path| path.to_s.strip }
    +    .reject(&:empty?)
    +    .uniq
    +  includes.empty? ? {} : {package_file_includes: includes}
     end
    -
    # File 'lib/kettle/jem.rb', line 10611
    +      
    # File 'lib/kettle/jem.rb', line 12072
     
    -def config_test_min_ruby(config, gem_min_ruby = nil)
    -  config ||= {}
    -  configured = config.dig("ruby", "test_minimum")
    -  configured_version = configured.to_s[/\d+\.\d+(?:\.\d+)?/]
    -  test_minimum = configured_version ? Gem::Version.new(configured_version) : DEFAULT_TEST_MINIMUM_RUBY
    -  test_minimum = [test_minimum, DEFAULT_TEST_MINIMUM_RUBY].max
    -  gem_minimum = if gem_min_ruby
    -    token = minimum_ruby_token(gem_min_ruby)
    -    Gem::Version.new(token) unless token.empty?
    -  else
    -    config_min_ruby(config)
    -  end
    -  gem_minimum ? [test_minimum, gem_minimum].max : test_minimum
    -rescue ArgumentError
    -  DEFAULT_TEST_MINIMUM_RUBY
    +def gemspec_template_tokens(gemspec)
    +  {
    +    "KJ|GEMSPEC:PACKAGE_FILE_INCLUDES" => gemspec_package_file_includes_token(gemspec)
    +  }
     end
    -
    # File 'lib/kettle/jem.rb', line 9282
    -
    -def configured_readme_top_logo_entries(config, org:, gem_name:, repository: {})
    -  readme_config = (config.is_a?(Hash) && config["readme"].is_a?(Hash)) ? config["readme"] : {}
    -  logo_row = readme_config["logo_row"]
    -  return unless logo_row.is_a?(Hash)
    -  return [] if falsey_config?(logo_row["enabled"])
    +      
    # File 'lib/kettle/jem.rb', line 7319
     
    -  logos = Array(logo_row["logos"]).first(4)
    -  return [] if logos.empty?
    -
    -  logos.filter_map do ||
    -    readme_top_logo_entry_from_config(, org: org, gem_name: gem_name, repository: repository)
    -  end.then { |entries| deduplicate_readme_top_logo_entries(entries) }
    +def gemspec_top_level_gem_version_node(content)
    +  ensure_runtime_dependencies!
    +  context = Ast::Crispr::Ruby::Prism.document_context(content: content.to_s, source_label: "gemspec")
    +  gemspec_call = context.structural_owners(owner_scope: :top_level_statements).find do |owner|
    +    owner.is_a?(::Prism::CallNode) && owner.name == :new && owner.receiver&.slice == "Gem::Specification"
    +  end
    +  context.structural_owners(owner_scope: :top_level_statements).find do |owner|
    +    owner.is_a?(::Prism::LocalVariableWriteNode) &&
    +      owner.name == :gem_version &&
    +      (!gemspec_call || owner.location.start_offset < gemspec_call.location.start_offset)
    +  end
     end
    -
    # File 'lib/kettle/jem.rb', line 3612
    +      
    # File 'lib/kettle/jem.rb', line 4576
     
    -def content_recipe_execution_report(request:, final_content:, changed:, step_reports:, diagnostics:, metadata: nil)
    -  compact_hash(
    -    request: deep_dup(request),
    -    final_content: final_content.to_s,
    -    changed: changed ? true : false,
    -    step_reports: deep_dup(step_reports),
    -    diagnostics: deep_dup(diagnostics),
    -    metadata: deep_dup( || {})
    -  )
    +def gemspec_version_loader_policy_operation(original, final, request)
    +  min_ruby = minimum_ruby_token(runtime_context_value(request, :rubygems, :min_ruby))
    +  return if min_ruby.to_s.empty?
    +
    +  modern = Gem::Version.new(min_ruby) >= MODERN_GEMSPEC_VERSION_LOADER_MIN_RUBY
    +  before_legacy = !gemspec_top_level_gem_version_node(original).nil?
    +  after_legacy = !gemspec_top_level_gem_version_node(final).nil?
    +  {
    +    operation: "rewrite_version_loader",
    +    min_ruby: min_ruby,
    +    mode: modern ? "modern" : "legacy",
    +    legacy_preamble_removed: before_legacy && !after_legacy,
    +    legacy_preamble_present: after_legacy
    +  }
    +rescue ArgumentError, Ast::Crispr::Error
    +  nil
     end
    -
    # File 'lib/kettle/jem.rb', line 3623
    +      
    # File 'lib/kettle/jem.rb', line 3231
     
    -def content_recipe_execution_report_envelope(report)
    -  {
    -    kind: "content_recipe_execution_report",
    -    version: CONTENT_RECIPE_TRANSPORT_VERSION,
    -    report: deep_dup(report)
    -  }
    +def generated_blocks_facts(gemspec, facts, run_options)
    +  return {} if shim_template_profile?(facts)
    +
    +  shunted = shunted_gemfile_block(gemspec, facts, run_options)
    +  shunted ? {shunted_gemfile: shunted} : {}
     end
    +
    +
    + + + +
    +
    +
    + +

    Returns:

    +
      + +
    • + + + (Boolean) + + + +
    • + +
    + +
    @@ -23404,37 +38031,56 @@

    -

    +

    - .content_recipe_execution_request_envelope(request) ⇒ Object + .generated_kettle_config_without_templates?(config) ⇒ Boolean -

     
     
    -3588
    -3589
    -3590
    -3591
    -3592
    -3593
    -3594
    -3595
    -3596
    -3597
    -3598
    -3599
    -3600
    -3601
    -3602
    +7936 +7937 +7938 +7939 +7940 +7941 +7942 +7943
    -
    # File 'lib/kettle/jem.rb', line 3588
    +      
    # File 'lib/kettle/jem.rb', line 7936
     
    -def content_recipe_execution_request(recipe_name:, recipe_version:, relative_path:, provider_family:,
    -  template_content:, destination_content:, steps:, provider_backend: nil, runtime_context: nil, metadata: nil)
    -  compact_hash(
    -    recipe_name: recipe_name.to_s,
    -    recipe_version: recipe_version.to_s,
    -    relative_path: relative_path.to_s,
    -    provider_family: provider_family.to_s,
    -    provider_backend: provider_backend&.to_s,
    -    template_content: template_content.to_s,
    -    destination_content: destination_content.to_s,
    -    steps: deep_dup(steps),
    -    runtime_context: deep_dup(runtime_context || {}),
    -    metadata: deep_dup( || {})
    -  )
    +def (group, target_parts)
    +  return false unless (target_parts)
    +
    +  node = group.fetch(:node)
    +  return false unless node.is_a?(::Prism::StringNode)
    +
    +  %w[CHANGELOG.md LICENSE.md README.md].include?(node.unescaped.to_s)
     end
    +
    +
    + + + +
    +
    +
    + +

    Returns:

    +
      + +
    • + + + (Boolean) + + + +
    • + +
    + +
    @@ -23442,65 +38088,60 @@

    -

    +

    - .content_recipe_step(recipe) ⇒ Object + .generated_or_obsolete_github_workflow?(relative_path) ⇒ Boolean -

     
     
    -3604
    -3605
    -3606
    -3607
    -3608
    -3609
    -3610
    +12954 +12955 +12956 +12957 +12958
    -
    # File 'lib/kettle/jem.rb', line 3604
    +      
    # File 'lib/kettle/jem.rb', line 12954
     
    -def content_recipe_execution_request_envelope(request)
    -  {
    -    kind: "content_recipe_execution_request",
    -    version: CONTENT_RECIPE_TRANSPORT_VERSION,
    -    request: deep_dup(request)
    -  }
    +def generated_kettle_config_without_templates?(config)
    +  return false unless config.is_a?(Hash)
    +
    +  config["tokens"].is_a?(Hash)
     end
    +
    +
    + + + +
    +
    +
    + +

    Returns:

    +
      + +
    • + + + (Boolean) + + + +
    • + +
    + +
    @@ -23508,87 +38149,64 @@

    -

    +

    - .content_recipe_step_report(recipe:, request:, original:, final:, changed:, deletion: nil) ⇒ Object + .generated_version_tree_source_url?(source_url, version) ⇒ Boolean -

     
     
    -3950
    -3951
    -3952
    -3953
    -3954
    -3955
    -3956
    -3957
    -3958
    -3959
    -3960
    -3961
    -3962
    -3963
    -3964
    -3965
    -3966
    -3967
    -3968
    -3969
    -3970
    +9628 +9629 +9630 +9631 +9632 +9633 +9634
    -
    # File 'lib/kettle/jem.rb', line 3950
    +      
    # File 'lib/kettle/jem.rb', line 9628
     
    -def content_recipe_step(recipe)
    -  step = {
    -    step_id: recipe.fetch(:name),
    -    step_kind: recipe.fetch(:primitive),
    -    name: recipe.fetch(:name),
    -    provider_family: recipe.fetch(:provider_family),
    -    metadata: {target_path: recipe.fetch(:target_path)}
    -  }
    -  step[:provider_backend] = recipe[:provider_backend] if recipe[:provider_backend]
    -  if recipe.fetch(:primitive) == "supplied_source_selector_deletion"
    -    step[:step_kind] = "native_policy"
    -    step[:policy] = {
    -      policy_kind: "delete_supplied_structural_owners",
    -      required_context: "delete_selectors",
    -      operation: "delete",
    -      selector_family: "structural_owner_range",
    -      normalize_blank_lines: true
    -    }
    -  end
    -  step
    +def generated_or_obsolete_github_workflow?(relative_path)
    +  return true if preferred_template_source(PACKAGED_TEMPLATE_ROOT, relative_path)
    +  return true if stale_versioned_engine_workflow?(relative_path)
    +  return true if relative_path == ".github/workflows/opencollective.yml"
    +
    +  OBSOLETE_GITHUB_WORKFLOWS.include?(File.basename(relative_path))
     end
    +
    +
    + + + +
    +
    +
    + +

    Returns:

    +
      + +
    • + + + (Boolean) + + + +
    • + +
    + +
    @@ -23596,9 +38214,9 @@

    -

    +

    - .copy_only_when_missing_template_path?(relative_path) ⇒ Boolean + .generic_bundler_gemspec_files_assignment?(record) ⇒ Boolean @@ -23633,15 +38251,23 @@

     
     
    -10277
    -10278
    -10279
    +7961 +7962 +7963 +7964 +7965 +7966 +7967

    @@ -23649,33 +38275,54 @@

    -

    - .copyright_author_names(copyright) ⇒ Object + .generic_bundler_gemspec_files_command?(node) ⇒ Boolean -

     
     
    -3972
    -3973
    -3974
    -3975
    -3976
    -3977
    -3978
    -3979
    -3980
    -3981
    -3982
    -3983
    -3984
    -3985
    -3986
    -3987
    -3988
    -3989
    -3990
    -3991
    -3992
    -3993
    -3994
    -3995
    -3996
    -3997
    -3998
    -3999
    -4000
    -4001
    -4002
    -4003
    +10969 +10970 +10971 +10972 +10973 +10974 +10975 +10976 +10977
    -
    # File 'lib/kettle/jem.rb', line 3972
    +      
    # File 'lib/kettle/jem.rb', line 10969
     
    -def content_recipe_step_report(recipe:, request:, original:, final:, changed:, deletion: nil)
    -  operation_profile = Ast::Merge.structured_edit_operation_profile(
    -    operation_kind: recipe.fetch(:primitive),
    -    known_operation_kind: true,
    -    source_requirement: "destination_content",
    -    destination_requirement: "relative_path",
    -    replacement_source: "runtime_context",
    -    captures_source_text: false,
    -    supports_if_missing: true,
    -    operation_family: "kettle-jem"
    -  )
    -  result = Ast::Merge.structured_edit_result(
    -    operation_kind: recipe.fetch(:primitive),
    -    updated_content: final,
    -    changed: changed,
    -    operation_profile: operation_profile
    -  )
    -  application = Ast::Merge.structured_edit_application(request: request, result: result)
    -  {
    -    step_id: recipe.fetch(:name),
    -    step_kind: recipe.fetch(:primitive),
    -    status: changed ? "applied" : "unchanged",
    -    changed: changed,
    -    input_content: original,
    -    output_content: final,
    -    application: application,
    -    diagnostics: [],
    -    metadata: (recipe, deletion).merge(
    -      ruby_template_policy_report(recipe: recipe, request: request, original: original, final: final)
    -    )
    -  }
    +def generated_version_tree_source_url?(source_url, version)
    +  return false unless present_template_token_value?(source_url) && present_template_token_value?(version)
    +
    +  uri = URI.parse(source_url.to_s)
    +  segments = uri.path.to_s.split("/").reject(&:empty?)
    +  uri.host == "github.com" && segments[2] == "tree" && segments[3] == "v#{version}"
    +rescue URI::InvalidURIError
    +  false
     end
    -
    # File 'lib/kettle/jem.rb', line 10277
    +      
    # File 'lib/kettle/jem.rb', line 7961
     
    -def copy_only_when_missing_template_path?(relative_path)
    -  COPY_ONLY_WHEN_MISSING_TEMPLATE_PATHS.include?(relative_path.to_s)
    +def generic_bundler_gemspec_files_assignment?(record)
    +  node = record.fetch(:value_node)
    +  node.is_a?(::Prism::CallNode) &&
    +    node.name == :popen &&
    +    node.receiver&.slice == "IO" &&
    +    generic_bundler_gemspec_files_command?(node.arguments&.arguments&.first)
     end
    +
    +
    + + + +
    +
    +
    + +

    Returns:

    +
      + +
    • + + + (Boolean) + + + +
    • + +
    + +
    @@ -23683,9 +38330,9 @@ @@ -23736,9 +38389,9 @@ @@ -23768,58 +38457,65 @@
     
     
    -8236
    -8237
    -8238
    -8239
    -8240
    +7969 +7970 +7971 +7972
    -
    # File 'lib/kettle/jem.rb', line 8236
    +      
    # File 'lib/kettle/jem.rb', line 7969
     
    -def copyright_author_names(copyright)
    -  Array(copyright[:lines]).filter_map do |line|
    -    copyright_name_from_line(line.to_s)
    -  end
    +def generic_bundler_gemspec_files_command?(node)
    +  node.is_a?(::Prism::ArrayNode) &&
    +    node.elements.map { |element| ruby_static_string_value(element) } == %w[git ls-files -z]
     end
    -
    # File 'lib/kettle/jem.rb', line 8344
    +      
    # File 'lib/kettle/jem.rb', line 10507
     
    -def copyright_bot_entry?(entry)
    -  entry[:name].to_s.match?(BOT_NAME_SUFFIX) || entry[:email].to_s.match?(BOT_EMAIL_PATTERN)
    +def git_capture(project_root, *args)
    +  output = IO.popen(["git", "-C", project_root.to_s, *args], err: File::NULL, &:read)
    +  raise ArgumentError, "git #{args.join(" ")} failed" unless $CHILD_STATUS&.success?
    +
    +  output.to_s
     end
    -
    # File 'lib/kettle/jem.rb', line 8259
    +      
    # File 'lib/kettle/jem.rb', line 10484
     
    -def copyright_facts(project_root, config)
    -  lines = git_copyright_lines(project_root, copyright_machine_users(config))
    -  compact_hash(lines: lines)
    +def git_copyright_lines(project_root, machine_users)
    +  files = git_capture(project_root, "ls-files", "-z")
    +  return [] if files.to_s.empty?
    +
    +  author_map = Hash.new { |hash, email| hash[email] = {name: nil, years: [], email: email} }
    +  files.split("\0").reject(&:empty?).each do |relative_path|
    +    next unless File.exist?(File.join(project_root, relative_path))
    +
    +    parse_blame_porcelain(git_capture(project_root, "blame", "--porcelain", "--", relative_path), author_map)
    +  rescue ArgumentError
    +    next
    +  end
    +  resolve_uncommitted_author!(project_root, author_map)
    +  author_map.values
    +    .reject { |entry| copyright_bot_entry?(entry) }
    +    .reject { |entry| copyright_machine_user_entry?(entry, machine_users) }
    +    .reject { |entry| entry[:name].to_s.strip.empty? || entry[:years].empty? }
    +    .sort_by { |entry| [entry[:years].map(&:to_i).min, entry[:name].to_s.downcase] }
    +    .map { |entry| "Copyright (c) #{format_copyright_years(entry[:years])} #{entry[:name]}" }
    +rescue ArgumentError
    +  []
     end
    +
    @@ -23827,9 +38523,9 @@ @@ -23859,9 +38555,9 @@ @@ -23899,9 +38601,9 @@ @@ -23933,9 +38635,9 @@ @@ -23986,9 +38690,9 @@ - -
     
     
    -8348
    -8349
    -8350
    -8351
    -8352
    -8353
    +3482 +3483 +3484 +3485 +3486 +3487 +3488 +3489 +3490 +3491 +3492 +3493 +3494 +3495 +3496 +3497 +3498 +3499 +3500 +3501 +3502
    -
    # File 'lib/kettle/jem.rb', line 8348
    +      
    # File 'lib/kettle/jem.rb', line 3482
     
    -def copyright_machine_user_entry?(entry, machine_users)
    -  return false if machine_users.empty?
    +def git_hooks_executable_step(project_root)
    +  existing_paths = EXECUTABLE_GIT_HOOK_PATHS.select do |relative_path|
    +    File.file?(File.join(project_root.to_s, relative_path))
    +  end
    +  return {name: "git_hooks_executable", status: "missing", changed_files: []} if existing_paths.empty?
     
    -  machine_users.include?(entry[:name].to_s.downcase.strip) ||
    -    machine_users.include?(entry[:email].to_s.downcase.strip)
    +  changed_files = existing_paths.filter_map do |relative_path|
    +    path = File.join(project_root.to_s, relative_path)
    +    before = File.stat(path).mode
    +    after = before | 0o111
    +    next if before == after
    +
    +    FileUtils.chmod(after, path)
    +    relative_path
    +  end
    +  {
    +    name: "git_hooks_executable",
    +    status: changed_files.empty? ? "already_executable" : "updated",
    +    changed_files: changed_files
    +  }
     end
    -
    # File 'lib/kettle/jem.rb', line 8264
    +      
    # File 'lib/kettle/jem.rb', line 9687
     
    -def copyright_machine_users(config)
    -  copyright = config["copyright"].is_a?(Hash) ? config["copyright"] : {}
    -  (Array(config["machine_users"]) + Array(copyright["machine_users"])).map { |user| user.to_s.downcase.strip }.reject(&:empty?)
    +def git_output(project_root, *args)
    +  stdout, _stderr, status = Open3.capture3("git", "-C", project_root.to_s, *args)
    +  status.success? ? stdout : ""
     end
    -
    # File 'lib/kettle/jem.rb', line 8242
    -
    -def copyright_name_from_line(line)
    -  prefix = "Copyright (c) "
    -  return unless line.start_with?(prefix)
    +      
    # File 'lib/kettle/jem.rb', line 9663
     
    -  tokens = line[prefix.length..].to_s.split
    -  tokens.shift while tokens.first && copyright_year_token?(tokens.first)
    -  tokens.join(" ").strip.then { |name| name unless name.empty? }
    +def git_preflight_report(project_root, template_selection:)
    +  inside = git_success?(project_root, "rev-parse", "--is-inside-work-tree")
    +  status = inside ? git_output(project_root, "status", "--porcelain") : nil
    +  dirty_entries = status.to_s.lines.map(&:chomp).reject(&:empty?)
    +  {
    +    git_repository: inside,
    +    clean_worktree: inside && dirty_entries.empty?,
    +    dirty_entries: dirty_entries,
    +    skip_commit: template_selection.fetch(:skip_commit, false)
    +  }
     end
    -
    # File 'lib/kettle/jem.rb', line 9576
    +      
    # File 'lib/kettle/jem.rb', line 11687
     
    -def copyright_notice_lines(copyright_lines, copyright_prefix, author)
    -  lines = Array(copyright_lines)
    -  lines = ["Copyright (c) #{Time.now.utc.year} #{[author[:given_names], author[:family_names]].compact.join(" ").strip}"] if lines.empty?
    -  lines.map { |line| "#{copyright_prefix}#{line}" }
    +def git_remote_source_url(project_root)
    +  normalize_git_source_url(git_capture(project_root, "config", "--get", "remote.origin.url").strip)
    +rescue ArgumentError
    +  nil
     end
    -
    # File 'lib/kettle/jem.rb', line 8251
    +      
    # File 'lib/kettle/jem.rb', line 9682
     
    -def copyright_year_token?(token)
    -  token.delete(",-").chars.all? { |char| char.between?("0", "9") }
    +def git_success?(project_root, *args)
    +  _stdout, _stderr, status = Open3.capture3("git", "-C", project_root.to_s, *args)
    +  status.success?
     end
    -
    # File 'lib/kettle/jem.rb', line 4296
    +      
    # File 'lib/kettle/jem.rb', line 11399
     
    -def coverage_thresholds_from_mise(content)
    -  %w[K_SOUP_COV_MIN_BRANCH K_SOUP_COV_MIN_LINE].each_with_object({}) do |key, thresholds|
    -    value = toml_string_scalar_line_value(content, key)
    -    thresholds[key] = value if value
    +def git_version_file_value(project_root, relative_path)
    +  [
    +    git_output(project_root, "show", ":#{relative_path}"),
    +    git_output(project_root, "show", "HEAD:#{relative_path}")
    +  ].each do |content|
    +    version = ruby_version_constant_value(content)
    +    return version.to_s if valid_gem_version?(version)
       end
    -end
    -
    -
    - -
    -

    - - .coverage_thresholds_from_project_mise(project_root) ⇒ Object - - - - - -

    - - - @@ -24062,9 +38736,9 @@

    -

    +

    - .coverage_thresholds_from_workflow(project_root) ⇒ Object + .git_worktree_prefix(project_root) ⇒ Object @@ -24076,33 +38750,19 @@

     
     
    -4303
    -4304
    -4305
    -4306
    -4307
    -4308
    -4309
    -4310
    -4311
    -4312
    -4313
    -4314
    +11659 +11660 +11661 +11662 +11663

    @@ -24110,9 +38770,9 @@

    -

    +

    - .coverage_thresholds_from_yaml_workflow(content) ⇒ Object + .git_worktree_root(project_root) ⇒ Object @@ -24124,21 +38784,21 @@

     
     
    -4369
    -4370
    -4371
    -4372
    -4373
    -4374
    +11652 +11653 +11654 +11655 +11656 +11657

    @@ -24146,9 +38806,9 @@

    -

    +

    - .current_changelog_version_section(content, version) ⇒ Object + .github_actions_coverage_config(config, env = ENV) ⇒ Object @@ -24160,61 +38820,39 @@

     
     
    -4432
    -4433
    -4434
    -4435
    -4436
    -4437
    -4438
    -4439
    -4440
    -4441
    -4442
    - -

    - -
    -
    -
    -
    -4360
    -4361
    -4362
    -4363
    -4364
    -4365
    -4366
    -4367
    -
    -
    # File 'lib/kettle/jem.rb', line 4360
    -
    -def coverage_thresholds_from_project_mise(project_root)
    -  return {} if project_root.to_s.empty?
    -
    -  path = File.join(project_root.to_s, "mise.toml")
    -  return {} unless File.file?(path)
     
    -  coverage_thresholds_from_mise(File.read(path))
    +  ""
     end
    -
    # File 'lib/kettle/jem.rb', line 4303
    -
    -def coverage_thresholds_from_workflow(project_root)
    -  return {} if project_root.to_s.empty?
    +      
    # File 'lib/kettle/jem.rb', line 11659
     
    -  path = File.join(project_root.to_s, ".github", "workflows", "coverage.yml")
    -  return {} unless File.file?(path)
    -
    -  content = File.read(path)
    -  %w[K_SOUP_COV_MIN_BRANCH K_SOUP_COV_MIN_LINE].each_with_object({}) do |key, thresholds|
    -    value = yaml_scalar_line_value(content, key)
    -    thresholds[key] = value.to_s.delete_prefix("\"").delete_suffix("\"") if value
    -  end
    +def git_worktree_prefix(project_root)
    +  git_capture(project_root, "rev-parse", "--show-prefix").strip
    +rescue ArgumentError
    +  ""
     end
    -
    # File 'lib/kettle/jem.rb', line 4369
    +      
    # File 'lib/kettle/jem.rb', line 11652
     
    -def coverage_thresholds_from_yaml_workflow(content)
    -  %w[K_SOUP_COV_MIN_BRANCH K_SOUP_COV_MIN_LINE].each_with_object({}) do |key, thresholds|
    -    value = yaml_scalar_line_value(content, key)
    -    thresholds[key] = value if value
    -  end
    +def git_worktree_root(project_root)
    +  root = git_capture(project_root, "rev-parse", "--show-toplevel").strip
    +  root.empty? ? project_root.to_s : root
    +rescue ArgumentError
    +  project_root.to_s
     end
    -
    # File 'lib/kettle/jem.rb', line 4432
    -
    -def current_changelog_version_section(content, version)
    -  version_text = version.to_s.strip
    -  return if version_text.empty?
    -
    -  lines = content.to_s.lines
    -  start_index = lines.index { |line| changelog_version_heading_line?(line, version_text) }
    -  return unless start_index
    -
    -  end_index = lines[(start_index + 1)..].to_a.index { |line| line.start_with?("## ") }
    -  lines[start_index...(end_index ? start_index + 1 + end_index : lines.length)].join
    -end
    +13607 +13608 +13609 +13610 +13611 +13612 +13613 +13614 +13615 +13616 +13617 +13618 +13619 +13620 +13621
    -
    - -
    -

    - - .decision_policy_for(env, run_options) ⇒ Object - - - - - -

    - - @@ -24222,9 +38860,9 @@

    -

    +

    - .decorative_grapheme?(grapheme) ⇒ Boolean + .github_actions_coverage_enabled?(content) ⇒ Boolean @@ -24259,23 +38897,19 @@

     
     
    -7128
    -7129
    -7130
    -7131
    -7132
    -7133
    -7134
    +14249 +14250 +14251 +14252 +14253

    @@ -24283,33 +38917,163 @@

    -

    - - .deduplicate_readme_top_logo_entries(entries) ⇒ Object - - - - +

    -

    -
    +      
    # File 'lib/kettle/jem.rb', line 13607
     
    +def github_actions_coverage_config(config, env = ENV)
    +  workflows = config["workflows"]
    +  return {} unless workflows.is_a?(Hash)
     
    -7161
    -7162
    -7163
    -
    -
    # File 'lib/kettle/jem.rb', line 7161
    +  raw = workflows["coverage"]
    +  enabled = raw == true || (raw.is_a?(Hash) && raw.fetch("enabled", false) == true)
    +  return {} unless enabled
     
    -def decision_policy_for(env, run_options)
    -  DecisionPolicy.from_env(env || {}, **(run_options || {}))
    +  raw = {} unless raw.is_a?(Hash)
    +  {
    +    enabled: true,
    +    command: raw.fetch("command", github_actions_exec_cmd(config, env)).to_s,
    +    appraisal: raw.fetch("appraisal", "coverage").to_s
    +  }
     end
    -
    # File 'lib/kettle/jem.rb', line 7128
    -
    -def decorative_grapheme?(grapheme)
    -  value = grapheme.to_s
    -  return false if value.empty?
    -  return false if value.ascii_only?
    +      
    # File 'lib/kettle/jem.rb', line 14249
     
    -  !value.match?(/\A[[:alnum:][:space:]]\z/u)
    +def github_actions_coverage_enabled?(content)
    +  yaml_contains_key_value?(YAML.safe_load(content.to_s, aliases: true), "K_SOUP_COV_DO", "true")
    +rescue Psych::Exception
    +  false
     end
    - - - @@ -25765,9 +40315,9 @@

    -

    +

    - .enabled_ruby_engines(config) ⇒ Object + .html_attribute_escape(value) ⇒ Object @@ -25779,17 +40329,15 @@

     
     
    -10600
    -10601
    -10602
    -10603
    +12014 +12015 +12016

    @@ -25797,9 +40345,9 @@

    -

    +

    - .enforce_git_preflight!(git_preflight, decision_policy:, template_selection:) ⇒ Object + .http_url?(value) ⇒ Boolean @@ -25814,13 +40362,13 @@

    -

    Raises:

    -
      +

      Returns:

      +
      • - (Error) + (Boolean) @@ -25834,21 +40382,21 @@

         
         
        -7577
        -7578
        -7579
        -7580
        -7581
        -7582
        +14269 +14270 +14271 +14272 +14273 +14274

    @@ -25856,9 +40404,9 @@

    -

    +

    - .ensure_gemspec_legacy_version_loader_preamble(content, entrypoint_require:, namespace:, min_ruby:) ⇒ Object + .inactive_packaged_template_cleanup_files(project_root, config = {}) ⇒ Object @@ -25870,29 +40418,27 @@

    -6054 -6055 -6056 -6057 -6058 -6059 -6060 -6061 -6062 -6063 +13049 +13050 +13051 +13052 +13053 +13054 +13055 +13056 +13057

    @@ -25900,43 +40446,58 @@

    -

    +

    - .ensure_monorepo_root_gemfile_dependencies(content) ⇒ Object + .inactive_packaged_workflow?(relative_path, config = {}, include_patterns: nil) ⇒ Boolean -

    -
    -
    -
    -9296
    -9297
    -9298
    -9299
    -9300
    -
    -
    # File 'lib/kettle/jem.rb', line 9296
    -
    -def deduplicate_readme_top_logo_entries(entries)
    -  entries.group_by { |entry| entry[:image_url].to_s }.values.map do |group|
    -    group.find { |entry| entry[:type] == "related_org" } || group.first
    -  end
    +    .github_actions_coverage_steps(disabled_integrations: [])  ⇒ Object 
    +  
    +
    +  
    +
    +  
    +
    +  
    +    
    +    
    @@ -24317,9 +39081,9 @@ 

    -

    +

    - .deep_dup(value) ⇒ Object + .github_actions_custom_workflows(project_root, config = {}, opencollective_disabled: false) ⇒ Object @@ -24331,15 +39095,37 @@

     
     
    -11678
    -11679
    -11680
    +9577 +9578 +9579 +9580 +9581 +9582 +9583 +9584 +9585 +9586 +9587 +9588 +9589 +9590

    @@ -24347,9 +39133,9 @@

    -

    +

    - .deep_string_key_hash(value) ⇒ Object + .github_actions_exec_cmd(config, env) ⇒ Object @@ -24361,33 +39147,25 @@

     
     
    -2504
    -2505
    -2506
    -2507
    -2508
    -2509
    -2510
    -2511
    -2512
    -2513
    -2514
    -2515
    +13623 +13624 +13625 +13626 +13627 +13628 +13629 +13630

    @@ -24395,9 +39173,9 @@

    -

    +

    - .default_framework_matrix_requirement(version) ⇒ Object + .github_actions_framework_matrix(config) ⇒ Object @@ -24409,19 +39187,121 @@

     
     
    -10803
    -10804
    -10805
    -10806
    -10807
    - -

    + @@ -24429,9 +39309,9 @@

    -

    +

    - .default_readme_top_logo_credit(type) ⇒ Object + .github_actions_obsolete_workflows(project_root) ⇒ Object @@ -24443,25 +39323,25 @@

     
     
    -9378
    -9379
    -9380
    -9381
    -9382
    -9383
    -9384
    -9385
    +9611 +9612 +9613 +9614 +9615 +9616 +9617 +9618

    @@ -24469,9 +39349,9 @@

    -

    +

    - .default_readme_top_logo_href(type, slug:, org:, gem_name:, repository: {}) ⇒ Object + .github_actions_pin_sync_step(project_root) ⇒ Object @@ -24483,37 +39363,45 @@

     
     
    -9363
    -9364
    -9365
    -9366
    -9367
    -9368
    -9369
    -9370
    -9371
    -9372
    -9373
    -9374
    -9375
    -9376
    - -

    + @@ -24521,9 +39409,9 @@

    -

    +

    - .default_readme_top_logo_slug(type, org:, gem_name:, repository: {}) ⇒ Object + .github_actions_push_branches(content, default_branch:) ⇒ Object @@ -24535,37 +39423,19 @@

     
     
    -9332
    -9333
    -9334
    -9335
    -9336
    -9337
    -9338
    -9339
    -9340
    -9341
    -9342
    -9343
    -9344
    -9345
    +14224 +14225 +14226 +14227 +14228

    @@ -24573,9 +39443,9 @@

    -

    +

    - .default_template_configObject + .github_actions_push_branches_yaml(content, default_branch:, indent: " ") ⇒ Object @@ -24587,21 +39457,19 @@

     
     
    -10515
    -10516
    -10517
    -10518
    -10519
    -10520
    +14218 +14219 +14220 +14221 +14222

    @@ -24609,9 +39477,9 @@

    -

    +

    - .default_template_strategy_config(template_root, target_path) ⇒ Object + .github_actions_rspec_status_cache_step(cache_scope:, key_parts:, indent:, if_condition: "${{!env.ACT}}") ⇒ Object @@ -24623,31 +39491,39 @@

     
     
    -10281
    -10282
    -10283
    -10284
    -10285
    -10286
    -10287
    -10288
    -10289
    -10290
    -10291
    +14071 +14072 +14073 +14074 +14075 +14076 +14077 +14078 +14079 +14080 +14081 +14082 +14083 +14084 +14085

    @@ -24655,52 +39531,35 @@

    -

    - - .delete_file_recipe?(recipe) ⇒ Boolean +

    - + .github_actions_ruby_versions(min_ruby) ⇒ Object -

    -
    - - -
    -
    -
    - -

    Returns:

    -
      - -
    • - - - (Boolean) - - - -
    • -
    - -

    +
    +
    +
    +14291
    +14292
    +14293
    +14294
    +14295
    +14296
    +14297
    +14298
    +14299
    +14300
    +14301
    +14302
    +14303
    +14304
    +14305
    +14306
    +14307
    +14308
    +14309
    +14310
    +14311
    +14312
    +14313
    +14314
    +14315
    +14316
    +14317
    +14318
    +14319
    +14320
    +14321
    +14322
    +14323
    +14324
    +14325
    +14326
    +14327
    +14328
    +14329
    +14330
    +14331
    +14332
    +14333
    +14334
    +14335
    +14336
    +14337
    +14338
    +14339
    +14340
    +14341
    +14342
    +14343
    +14344
    +14345
    +14346
    +14347
    +14348
    +14349
    +14350
    +14351
    +14352
    +14353
    +14354
    +14355
    +14356
    +14357
    +14358
    +14359
    +14360
    +
    +
    # File 'lib/kettle/jem.rb', line 14291
    +
    +def github_actions_coverage_steps(disabled_integrations: [])
    +  disabled = Array(disabled_integrations).map { |name| normalize_integration_name(name) }.to_set
    +  steps = []
    +  unless disabled.include?("coveralls")
    +    steps << <<~YAML
    +      - name: Upload coverage to Coveralls
    +        if: ${{ !env.ACT }}
    +        uses: coverallsapp/github-action@5cbfd81b66ca5d10c19b062c04de0199c215fb6e # v2.3.7
    +        with:
    +          github-token: ${{ secrets.GITHUB_TOKEN }}
    +          file: coverage/lcov.info
    +          format: lcov
    +        continue-on-error: ${{ matrix.experimental || endsWith(matrix.ruby, 'head') }}
    +    YAML
    +  end
    +
    +  unless disabled.include?("qlty")
    +    steps << <<~YAML
    +      - name: Upload coverage to QLTY
    +        if: ${{ !env.ACT }}
    +        uses: qltysh/qlty-action/coverage@08a0a862c159eae9b9003081da6663d96efef637 # v2.3.0
    +        with:
    +          oidc: true
    +          files: coverage/lcov.info
    +          format: lcov
    +          skip-errors: false
    +        continue-on-error: ${{ matrix.experimental || endsWith(matrix.ruby, 'head') }}
    +    YAML
    +  end
    +
    +  unless disabled.include?("codecov")
    +    steps << <<~YAML
    +      - name: Upload coverage to CodeCov
    +        if: ${{ !env.ACT }}
    +        uses: codecov/codecov-action@fb8b3582c8e4def4969c97caa2f19720cb33a72f # v7
    +        with:
    +          use_oidc: true
    +          disable_search: true
    +          fail_ci_if_error: false
    +          files: coverage/lcov.info,coverage/coverage.xml
    +          verbose: true
    +    YAML
    +  end
    +
    +  steps << <<~YAML
    +    - name: Code Coverage Summary Report
    +      if: ${{ !env.ACT && github.event_name == 'pull_request' }}
    +      uses: irongut/CodeCoverageSummary@51cc3a756ddcd398d447c044c02cb6aa83fdae95 # v1.3.0
    +      with:
    +        filename: ./coverage/coverage.xml
    +        badge: true
    +        fail_below_min: true
    +        format: markdown
    +        hide_branch_rate: false
    +        hide_complexity: true
    +        indicators: true
    +        output: both
    +        thresholds: '${{ env.K_SOUP_COV_MIN_LINE }} ${{ env.K_SOUP_COV_MIN_BRANCH }}'
    +      continue-on-error: ${{ matrix.experimental || endsWith(matrix.ruby, 'head') }}
    +
    +    - name: Add Coverage PR Comment
    +      uses: marocchino/sticky-pull-request-comment@5770ad5eb8f42dd2c4f34da00c94c5381e49af88 # v3.0.5
    +      if: ${{ !env.ACT && github.event_name == 'pull_request' }}
    +      with:
    +        recreate: true
    +        path: code-coverage-results.md
    +      continue-on-error: ${{ matrix.experimental || endsWith(matrix.ruby, 'head') }}
    +  YAML
    +  steps.join("\n").lines.map { |line| line.strip.empty? ? line : "      #{line}" }.join.chomp
     end
    -
    # File 'lib/kettle/jem.rb', line 11678
    +      
    # File 'lib/kettle/jem.rb', line 9577
     
    -def deep_dup(value)
    -  Marshal.load(Marshal.dump(value))
    +def github_actions_custom_workflows(project_root, config = {}, opencollective_disabled: false)
    +  workflow_root = File.join(project_root, ".github", "workflows")
    +  return [] unless Dir.exist?(workflow_root)
    +
    +  Dir.glob(File.join(workflow_root, "*.{yml,yaml}")).filter_map do |path|
    +    relative_path = path.delete_prefix("#{project_root}/")
    +    next if opencollective_disabled && opencollective_disabled_file?(relative_path)
    +    next if inactive_packaged_workflow?(relative_path, config)
    +    next if generated_or_obsolete_github_workflow?(relative_path) &&
    +      !skip_packaged_workflow_template?(relative_path, config)
    +
    +    relative_path
    +  end.sort
     end
    -
    # File 'lib/kettle/jem.rb', line 2504
    +      
    # File 'lib/kettle/jem.rb', line 13623
     
    -def deep_string_key_hash(value)
    -  case value
    -  when Hash
    -    value.each_with_object({}) do |(key, child), converted|
    -      converted[key.to_s] = deep_string_key_hash(child)
    -    end
    -  when Array
    -    value.map { |child| deep_string_key_hash(child) }
    -  else
    -    value
    -  end
    +def github_actions_exec_cmd(config, env)
    +  workflows = config["workflows"]
    +  workflows = {} unless workflows.is_a?(Hash)
    +
    +  normalize_github_actions_exec_cmd(
    +    preferred_template_token_value("kettle-test", workflows["exec_cmd"], env, "KJ_EXEC_CMD").to_s
    +  )
     end
    -
    # File 'lib/kettle/jem.rb', line 10803
    +13471
    +13472
    +13473
    +13474
    +13475
    +13476
    +13477
    +13478
    +13479
    +13480
    +13481
    +13482
    +13483
    +13484
    +13485
    +13486
    +13487
    +13488
    +13489
    +13490
    +13491
    +13492
    +13493
    +13494
    +13495
    +13496
    +13497
    +13498
    +13499
    +13500
    +13501
    +13502
    +13503
    +13504
    +13505
    +13506
    +13507
    +13508
    +13509
    +13510
    +13511
    +13512
    +13513
    +13514
    +13515
    +13516
    +13517
    +13518
    +13519
    +13520
    +13521
    +13522
    +13523
    +13524
    +13525
    +13526
    +
    +
    # File 'lib/kettle/jem.rb', line 13471
     
    -def default_framework_matrix_requirement(version)
    -  normalized = version.to_s
    -  normalized = "#{normalized}.0" if normalized.match?(/\A\d+\.\d+\z/)
    -  "~> #{normalized}"
    +def github_actions_framework_matrix(config)
    +  workflows = config["workflows"]
    +  return {} unless workflows.is_a?(Hash) && workflows["preset"].to_s.strip.downcase == "framework"
    +
    +  raw = workflows["framework_matrix"]
    +  return {} unless raw.is_a?(Hash)
    +
    +  dimension = raw["dimension"].to_s.strip
    +  versions = raw["versions"]
    +  pattern = raw["gemfile_pattern"].to_s.strip
    +  return {} unless !dimension.empty? && versions.is_a?(Array) && !versions.empty? && !pattern.empty?
    +
    +  framework_gem = raw.fetch("gem", dimension).to_s.strip
    +  return {} if framework_gem.empty?
    +
    +  version_entries = versions.filter_map { |version| framework_matrix_version_entry(version) }
    +  return {} if version_entries.empty?
    +
    +  appraisal_gemfiles = framework_matrix_appraisal_gemfiles(raw)
    +  gemfiles = version_entries.map do |entry|
    +    gemfile = expand_framework_gemfile_pattern(pattern, entry.fetch(:slug))
    +    {
    +      path: framework_gemfile_path(gemfile),
    +      gem: framework_gem,
    +      requirement: entry.fetch(:requirement),
    +      env: entry.fetch(:env, {})
    +    }
    +  end.uniq { |entry| entry.fetch(:path) }
    +  gemfiles.reject! { |entry| template_keep_destination_path?(config, entry.fetch(:path)) }
    +  {
    +    dimension: dimension,
    +    gem: framework_gem,
    +    workflow: framework_matrix_workflow_enabled?(raw),
    +    versions: version_entries.map { |entry| entry.fetch(:label) },
    +    gemfile_pattern: pattern,
    +    include: version_entries.map do |entry|
    +      {
    +        framework_version: entry.fetch(:label),
    +        appraisal: entry[:appraisal_name] || framework_matrix_appraisal_name(dimension, entry.fetch(:slug))
    +      }
    +    end,
    +    gemfiles: gemfiles,
    +    appraisals: version_entries.map do |entry|
    +      gemfile = framework_gemfile_path(expand_framework_gemfile_pattern(pattern, entry.fetch(:slug)))
    +      name = entry[:appraisal_name] || framework_matrix_appraisal_name(dimension, entry.fetch(:slug))
    +      {
    +        name: name,
    +        framework_version: entry.fetch(:label),
    +        gem: framework_gem,
    +        env: entry.fetch(:env, {}),
    +        eval_gemfiles: [framework_matrix_appraisal_gemfile_path(gemfile), *appraisal_gemfiles].uniq,
    +        replaces: framework_matrix_replaced_appraisal_names(dimension, entry, name)
    +      }
    +    end
    +  }
     end
    -
    # File 'lib/kettle/jem.rb', line 9378
    +      
    # File 'lib/kettle/jem.rb', line 9611
     
    -def default_readme_top_logo_credit(type)
    -  case type
    -  when "ruby"
    -    "Yukihiro Matsumoto, Ruby Visual Identity Team, CC BY-SA 2.5"
    -  else
    -    "Aboling0, CC BY-SA 4.0"
    -  end
    +def github_actions_obsolete_workflows(project_root)
    +  workflow_root = File.join(project_root, ".github", "workflows")
    +  OBSOLETE_GITHUB_WORKFLOWS.filter_map do |workflow|
    +    relative_path = ".github/workflows/#{workflow}"
    +    path = File.join(workflow_root, workflow)
    +    relative_path if File.exist?(path)
    +  end.sort
     end
    -
    # File 'lib/kettle/jem.rb', line 9363
    -
    -def default_readme_top_logo_href(type, slug:, org:, gem_name:, repository: {})
    -  case type
    -  when "related_org"
    -    "https://discord.gg/3qme4XHNKN"
    -  when "ruby"
    -    "https://ruby-toolbox.com"
    -  when "org"
    -    org.to_s.empty? ? "#{LOGOS_GALTZO_BASE_URL}/#{slug}/" : "https://github.com/#{org}"
    -  when "project"
    -    repository_project_logo_href(repository, slug: slug, org: org, gem_name: gem_name)
    -  else
    -    "#{LOGOS_GALTZO_BASE_URL}/#{slug}/"
    +3504
    +3505
    +3506
    +3507
    +3508
    +3509
    +3510
    +3511
    +3512
    +3513
    +3514
    +3515
    +3516
    +3517
    +3518
    +3519
    +3520
    +3521
    +
    +
    # File 'lib/kettle/jem.rb', line 3504
    +
    +def github_actions_pin_sync_step(project_root)
    +  workflow_root = File.join(project_root.to_s, ".github", "workflows")
    +  return unless File.directory?(workflow_root)
    +
    +  changed_files = Dir[File.join(workflow_root, "*.{yml,yaml}")].sort.filter_map do |path|
    +    before = File.read(path)
    +    after = update_github_actions_pins(before)
    +    next if after == before
    +
    +    File.write(path, after)
    +    path.delete_prefix("#{project_root}/")
       end
    +  {
    +    name: "github_actions_pin_sync",
    +    status: changed_files.empty? ? "already_current" : "applied",
    +    changed_files: changed_files
    +  }
     end
    -
    # File 'lib/kettle/jem.rb', line 9332
    +      
    # File 'lib/kettle/jem.rb', line 14224
     
    -def default_readme_top_logo_slug(type, org:, gem_name:, repository: {})
    -  case type
    -  when "related_org"
    -    "galtzo-floss"
    -  when "ruby"
    -    "ruby-lang"
    -  when "org"
    -    org.to_s
    -  when "project"
    -    repository_project_logo_slug(repository, org: org, gem_name: gem_name)
    -  else
    -    ""
    -  end
    +def github_actions_push_branches(content, default_branch:)
    +  managed = [default_branch.to_s, "*-stable"]
    +  existing = yaml_scalar_sequence_at_path(content, %w[on push branches])
    +  (managed + existing).uniq
     end
    -
    # File 'lib/kettle/jem.rb', line 10515
    +      
    # File 'lib/kettle/jem.rb', line 14218
     
    -def default_template_config
    -  {
    -    "root" => "packaged",
    -    "apply" => true
    -  }
    +def github_actions_push_branches_yaml(content, default_branch:, indent: "              ")
    +  github_actions_push_branches(content, default_branch: default_branch).map do |branch|
    +    "#{indent}- #{branch.inspect}"
    +  end.join("\n")
     end
    -
    # File 'lib/kettle/jem.rb', line 10281
    -
    -def default_template_strategy_config(template_root, target_path)
    -  return unless template_root.fetch(:kind) == "packaged"
    -  return {strategy: :merge, preference: :destination, add_template_only_nodes: true} if target_path.to_s == KETTLE_CONFIG_PATH
    -  return {strategy: :accept_template} if target_path.to_s == "CITATION.cff"
    -  return {strategy: :accept_template} if target_path.to_s == "Rakefile"
    -  return {strategy: :accept_template} if version_gem_template_target_path?(target_path)
    -  return {strategy: :accept_template} if target_path.to_s.start_with?(".github/workflows/")
    -  return {strategy: :accept_template} if target_path.to_s.start_with?("gemfiles/modular/")
    +      
    # File 'lib/kettle/jem.rb', line 14071
     
    -  nil
    +def github_actions_rspec_status_cache_step(cache_scope:, key_parts:, indent:, if_condition: "${{!env.ACT}}")
    +  cache_prefix = ["rspec-status", cache_scope, *key_parts].join("-")
    +  yaml = <<~YAML
    +    - name: Restore RSpec status log
    +      if: #{if_condition}
    +      uses: #{github_actions_step_pins.fetch("actions/cache")}
    +      with:
    +        path: .rspec_status
    +        key: #{cache_prefix}-${{hashFiles('**/Gemfile.lock','Appraisal.root.gemfile','gemfiles/**/*.gemfile')}}-${{github.run_id}}-${{github.run_attempt}}
    +        restore-keys: |
    +          #{cache_prefix}-${{hashFiles('**/Gemfile.lock','Appraisal.root.gemfile','gemfiles/**/*.gemfile')}}-
    +          #{cache_prefix}-
    +  YAML
    +  yaml.lines.map { |line| line.strip.empty? ? line : "#{indent}#{line}" }.join.rstrip
     end
    +
    @@ -24708,9 +39567,9 @@

    -

    +

    - .delete_line_ranges(content, selectors) ⇒ Object + .github_actions_setup_ruby_steps(indent:) ⇒ Object @@ -24722,27 +39581,45 @@

     
     
    -11092
    -11093
    -11094
    -11095
    -11096
    -11097
    -11098
    -11099
    -11100
    +14052 +14053 +14054 +14055 +14056 +14057 +14058 +14059 +14060 +14061 +14062 +14063 +14064 +14065 +14066 +14067 +14068 +14069

    @@ -24750,9 +39627,9 @@

    -

    +

    - .delete_markdown_with_ast_crispr(content, target) ⇒ Object + .github_actions_standard_appraisal_gemfiles(config) ⇒ Object @@ -24764,15 +39641,41 @@

     
     
    -4615
    -4616
    -4617
    +13659 +13660 +13661 +13662 +13663 +13664 +13665 +13666 +13667 +13668 +13669 +13670 +13671 +13672 +13673 +13674

    @@ -24780,9 +39683,9 @@

    -

    +

    - .delete_rakefile_scaffold(content) ⇒ Object + .github_actions_step_pinsObject @@ -24794,26 +39697,50 @@

     
     
    -10954
    -10955
    -10956
    -10957
    -10958
    -10959
    -10960
    -10961
    -10962
    +14600 +14601 +14602 +14603 +14604 +14605 +14606 +14607 +14608 +14609 +14610 +14611 +14612 +14613 +14614 +14615 +14616 +14617 +14618 +14619 +14620

    @@ -24822,9 +39749,9 @@

    -

    +

    - .detected_license_ids(project_root) ⇒ Object + .github_funding_platform_urls(platform, values) ⇒ Object @@ -24836,21 +39763,59 @@

     
     
    -3314
    -3315
    -3316
    -3317
    -3318
    -3319
    +9544 +9545 +9546 +9547 +9548 +9549 +9550 +9551 +9552 +9553 +9554 +9555 +9556 +9557 +9558 +9559 +9560 +9561 +9562 +9563 +9564 +9565 +9566 +9567 +9568

    @@ -24858,494 +39823,105 @@

    -

    +

    - .discover_facts(project_root, env: ENV, run_options: {}) ⇒ Object + .github_funding_urls(path, opencollective_disabled: false) ⇒ Object -

    -
    - +

     
     
    -7606
    -7607
    -7608
    +9570 +9571 +9572 +9573 +9574 +9575
    -
    # File 'lib/kettle/jem.rb', line 7606
    +      
    # File 'lib/kettle/jem.rb', line 9570
     
    -def delete_file_recipe?(recipe)
    -  FILE_DELETION_PRIMITIVES.include?(recipe.fetch(:primitive))
    +def github_actions_ruby_versions(min_ruby)
    +  floor = min_ruby.to_s[/\d+\.\d+/] || "3.1"
    +  candidates = %w[3.1 3.2 3.3 3.4]
    +  selected = candidates.select { |version| Gem::Version.new(version) >= Gem::Version.new(floor) }
    +  selected.empty? ? [floor] : selected
     end
    -
    # File 'lib/kettle/jem.rb', line 11092
    +      
    # File 'lib/kettle/jem.rb', line 14052
     
    -def delete_line_ranges(content, selectors)
    -  lines = content.lines
    -  selectors.sort_by { |selector| -selector.fetch(:start_line) }.each do |selector|
    -    start_index = selector.fetch(:start_line) - 1
    -    end_index = selector.fetch(:end_line) - 1
    -    lines.slice!(start_index..end_index)
    -  end
    -  lines.join.gsub(/\n{3,}/, "\n\n")
    +def github_actions_setup_ruby_steps(indent:)
    +  yaml = <<~YAML
    +    - name: Setup Ruby & RubyGems
    +      uses: ruby/setup-ruby@003a5c4d8d6321bd302e38f6f0ec593f77f06600 # v1.319.0
    +      with:
    +        ruby-version: "${{ matrix.ruby }}"
    +        rubygems: "${{ matrix.rubygems }}"
    +        bundler: "${{ matrix.bundler }}"
    +        bundler-cache: ${{ matrix.ruby != 'truffleruby-25.0' && matrix.ruby != 'jruby-9.2' && matrix.ruby != 'jruby-9.3' }}
    +
    +    - name: Bundle install for legacy Ruby engine
    +      if: ${{ matrix.ruby == 'truffleruby-25.0' || matrix.ruby == 'jruby-9.2' || matrix.ruby == 'jruby-9.3' }}
    +      run: |
    +        bundle config set --local path "${RUNNER_TEMP}/bundle"
    +        bundle install --jobs 1
    +  YAML
    +  yaml.lines.map { |line| line.strip.empty? ? line : "#{indent}#{line}" }.join.rstrip
     end
    -
    # File 'lib/kettle/jem.rb', line 4615
    +      
    # File 'lib/kettle/jem.rb', line 13659
     
    -def delete_markdown_with_ast_crispr(content, target)
    -  Ast::Crispr::Delete.call(content: content.to_s, target: target, source_label: "README.md").updated_content
    +def github_actions_standard_appraisal_gemfiles(config)
    +  workflows = config["workflows"]
    +  workflows = {} unless workflows.is_a?(Hash)
    +  appraisal_matrix = config["appraisal_matrix"]
    +  appraisal_matrix = {} unless appraisal_matrix.is_a?(Hash)
    +
    +  raw_paths =
    +    workflows["standard_appraisal_gemfiles"] ||
    +    appraisal_matrix["appraisal_gemfiles"] ||
    +    appraisal_matrix["appraisal_eval_gemfiles"]
    +
    +  Array(raw_paths).filter_map do |path|
    +    normalized = path.to_s.strip.sub(%r{\Agemfiles/}, "")
    +    normalized unless normalized.empty?
    +  end.uniq
     end
    -
    # File 'lib/kettle/jem.rb', line 10954
    -
    -def delete_rakefile_scaffold(content)
    -  selectors = rakefile_scaffold_delete_selectors(content)
    -  return {content: content.to_s, delete_selectors: selectors} if selectors.empty?
    +      
    # File 'lib/kettle/jem.rb', line 14600
     
    +def github_actions_step_pins
       {
    -    content: delete_line_ranges(content.to_s, selectors),
    -    delete_selectors: selectors
    +    "actions/checkout" => "actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0",
    +    "actions/cache" => "actions/cache@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0",
    +    "ruby/setup-ruby" => "ruby/setup-ruby@003a5c4d8d6321bd302e38f6f0ec593f77f06600 # v1.319.0",
    +    "coverallsapp/github-action" => "coverallsapp/github-action@5cbfd81b66ca5d10c19b062c04de0199c215fb6e # v2.3.7",
    +    "qltysh/qlty-action/coverage" => "qltysh/qlty-action/coverage@08a0a862c159eae9b9003081da6663d96efef637 # v2.3.0",
    +    "codecov/codecov-action" => "codecov/codecov-action@fb8b3582c8e4def4969c97caa2f19720cb33a72f # v7",
    +    "irongut/CodeCoverageSummary" => "irongut/CodeCoverageSummary@51cc3a756ddcd398d447c044c02cb6aa83fdae95 # v1.3.0",
    +    "marocchino/sticky-pull-request-comment" => "marocchino/sticky-pull-request-comment@5770ad5eb8f42dd2c4f34da00c94c5381e49af88 # v3.0.5",
    +    "actions/upload-artifact" => "actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1",
    +    "amancevice/setup-code-climate" => "amancevice/setup-code-climate@0daf2985a225e8ac15975b4d233010e94d65b76a # v2",
    +    "actions/dependency-review-action" => "actions/dependency-review-action@a1d282b36b6f3519aa1f3fc636f609c47dddb294 # v5.0.0",
    +    "github/codeql-action/init" => "github/codeql-action/init@7188fc363630916deb702c7fdcf4e481b751f97a # v4.37.1",
    +    "github/codeql-action/autobuild" => "github/codeql-action/autobuild@7188fc363630916deb702c7fdcf4e481b751f97a # v4.37.1",
    +    "github/codeql-action/analyze" => "github/codeql-action/analyze@7188fc363630916deb702c7fdcf4e481b751f97a # v4.37.1",
    +    "pozil/auto-assign-issue" => "pozil/auto-assign-issue@af6beea6bdf1e8eb373f061c5bc168681fc6d011 # v4.0.1",
    +    "apache/skywalking-eyes/dependency" => "apache/skywalking-eyes/dependency@61275cc80d0798a405cb070f7d3a8aaf7cf2c2c1 # v0.8.0",
    +    "sarisia/actions-status-discord" => "sarisia/actions-status-discord@eb045afee445dc055c18d3d90bd0f244fd062708 # v1.16.0"
       }
     end
    -
    # File 'lib/kettle/jem.rb', line 3314
    +      
    # File 'lib/kettle/jem.rb', line 9544
     
    -def detected_license_ids(project_root)
    -  known_license_template_basenames.filter_map do |basename|
    -    path = File.join(project_root.to_s, "#{basename}.md")
    -    File.exist?(path) ? spdx_from_basename(basename) : nil
    -  end.sort
    +def github_funding_platform_urls(platform, values)
    +  values.filter_map do |value|
    +    handle = value.to_s.strip.delete_prefix("@")
    +    next if handle.empty?
    +
    +    case platform
    +    when "buy_me_a_coffee"
    +      "https://www.buymeacoffee.com/#{handle}"
    +    when "custom"
    +      handle if http_url?(handle)
    +    when "github"
    +      "https://github.com/sponsors/#{handle}"
    +    when "ko_fi"
    +      "https://ko-fi.com/#{handle}"
    +    when "liberapay"
    +      "https://liberapay.com/#{handle}/donate"
    +    when "open_collective"
    +      "https://opencollective.com/#{handle}"
    +    when "thanks_dev"
    +      "https://thanks.dev/#{handle}"
    +    when "tidelift"
    +      "https://tidelift.com/funding/github/#{handle}"
    +    end
    +  end
     end
    + + + + +
    +
     
     
    -  
    +9533
    +9534
    +9535
    +9536
    +9537
    +9538
    +9539
    +9540
    +9541
    +9542
    +
    +
    # File 'lib/kettle/jem.rb', line 9533
    +
    +def github_funding_urls(path, opencollective_disabled: false)
    +  funding = YAML.safe_load_file(path, permitted_classes: [], aliases: false) || {}
    +  return [] unless funding.is_a?(Hash)
    +
    +  funding.flat_map do |platform, value|
    +    next [] if opencollective_disabled && platform.to_s == "open_collective"
    +
    +    github_funding_platform_urls(platform.to_s, Array(value).compact)
    +  end
    +end
    +
    -
    + +
    +

    -

    Raises:

    -
      + .github_org_from_url(url) ⇒ Object -
    • - - - (ArgumentError) - - - -
    • + -
    -

    + +
    + +
     
     
    -2604
    -2605
    -2606
    -2607
    -2608
    -2609
    -2610
    -2611
    -2612
    -2613
    -2614
    -2615
    -2616
    -2617
    -2618
    -2619
    -2620
    -2621
    -2622
    -2623
    -2624
    -2625
    -2626
    -2627
    -2628
    -2629
    -2630
    -2631
    -2632
    -2633
    -2634
    -2635
    -2636
    -2637
    -2638
    -2639
    -2640
    -2641
    -2642
    -2643
    -2644
    -2645
    -2646
    -2647
    -2648
    -2649
    -2650
    -2651
    -2652
    -2653
    -2654
    -2655
    -2656
    -2657
    -2658
    -2659
    -2660
    -2661
    -2662
    -2663
    -2664
    -2665
    -2666
    -2667
    -2668
    -2669
    -2670
    -2671
    -2672
    -2673
    -2674
    -2675
    -2676
    -2677
    -2678
    -2679
    -2680
    -2681
    -2682
    -2683
    -2684
    -2685
    -2686
    -2687
    -2688
    -2689
    -2690
    -2691
    -2692
    -2693
    -2694
    -2695
    -2696
    -2697
    -2698
    -2699
    -2700
    -2701
    -2702
    -2703
    -2704
    -2705
    -2706
    -2707
    -2708
    -2709
    -2710
    -2711
    -2712
    -2713
    -2714
    -2715
    -2716
    -2717
    -2718
    -2719
    -2720
    -2721
    -2722
    -2723
    -2724
    -2725
    -2726
    -2727
    -2728
    -2729
    -2730
    -2731
    -2732
    -2733
    -2734
    -2735
    -2736
    -2737
    -2738
    -2739
    -2740
    -2741
    -2742
    -2743
    -2744
    -2745
    -2746
    -2747
    -2748
    -2749
    -2750
    -2751
    -2752
    -2753
    -2754
    -2755
    -2756
    -2757
    -2758
    -2759
    -2760
    -2761
    -2762
    -2763
    -2764
    -2765
    -2766
    -2767
    -2768
    -2769
    -2770
    -2771
    -2772
    -2773
    -2774
    -2775
    -2776
    -2777
    -2778
    -2779
    -2780
    -2781
    -2782
    -2783
    -2784
    -2785
    -2786
    -2787
    -2788
    -2789
    -2790
    -2791
    -2792
    -2793
    -2794
    -2795
    -2796
    -2797
    -2798
    -2799
    -2800
    -2801
    -2802
    -2803
    -2804
    -2805
    -2806
    -2807
    -2808
    -2809
    -2810
    -2811
    -2812
    -2813
    -2814
    -2815
    -2816
    -2817
    -2818
    -2819
    -2820
    -2821
    -2822
    -2823
    -2824
    -2825
    -2826
    -2827
    +11513 +11514 +11515 +11516
    -
    # File 'lib/kettle/jem.rb', line 2604
    +      
    # File 'lib/kettle/jem.rb', line 11513
    +
    +def github_org_from_url(url)
    +  match = url.to_s.match(%r{\Ahttps?://github\.com/([^/]+)/})
    +  match && match[1]
    +end
    +
    +
    + +
    +

    + + .github_workflow_action_pin_key(record) ⇒ Object + + + + + +

    + + + @@ -25353,9 +39929,9 @@

    -

    +

    - .discover_monorepo_root_facts(project_root, kettle_config, env, template_selection) ⇒ Object + .github_workflow_action_pin_line_record(line, line_index) ⇒ Object @@ -25367,181 +39943,47 @@

     
     
    -2517
    -2518
    -2519
    -2520
    -2521
    -2522
    -2523
    -2524
    -2525
    -2526
    -2527
    -2528
    -2529
    -2530
    -2531
    -2532
    -2533
    -2534
    -2535
    -2536
    -2537
    -2538
    -2539
    -2540
    -2541
    -2542
    -2543
    -2544
    -2545
    -2546
    -2547
    -2548
    -2549
    -2550
    -2551
    -2552
    -2553
    -2554
    -2555
    -2556
    -2557
    -2558
    -2559
    -2560
    -2561
    -2562
    -2563
    -2564
    -2565
    -2566
    -2567
    -2568
    -2569
    -2570
    -2571
    -2572
    -2573
    -2574
    -2575
    -2576
    -2577
    -2578
    -2579
    -2580
    -2581
    -2582
    -2583
    -2584
    -2585
    -2586
    -2587
    -2588
    -2589
    -2590
    -2591
    -2592
    -2593
    -2594
    -2595
    -2596
    -2597
    -2598
    -2599
    -2600
    -2601
    -2602
    +14494 +14495 +14496 +14497 +14498 +14499 +14500 +14501 +14502 +14503 +14504 +14505 +14506 +14507 +14508 +14509 +14510 +14511 +14512

    @@ -25549,9 +39991,9 @@

    -

    +

    - .display_path(path) ⇒ Object + .github_workflow_action_pin_records(content) ⇒ Object @@ -25563,19 +40005,31 @@

     
     
    -1926
    -1927
    -1928
    -1929
    -1930
    +14478 +14479 +14480 +14481 +14482 +14483 +14484 +14485 +14486 +14487 +14488

    @@ -25583,9 +40037,9 @@

    -

    +

    - .display_text(text) ⇒ Object + .github_workflow_template_pin_warnings(recipe_reports) ⇒ Object @@ -25597,19 +40051,41 @@

     
     
    -1932
    -1933
    -1934
    -1935
    -1936
    +14461 +14462 +14463 +14464 +14465 +14466 +14467 +14468 +14469 +14470 +14471 +14472 +14473 +14474 +14475 +14476

    @@ -25617,47 +40093,113 @@

    -

    +

    - .dotenv_merge_options(recipe) ⇒ Object + .github_workflow_template_recipe?(recipe) ⇒ Boolean -

    +
     
    -def discover_facts(project_root, env: ENV, run_options: {})
    -  kettle_config = kettle_jem_config(project_root)
    -  template_selection = template_selection_for(env, run_options)
    -  configured_template_profile = normalize_template_profile(kettle_config.dig("templates", "profile"))
    -  if template_selection[:template_profile].to_s.empty? && !configured_template_profile.empty?
    -    template_selection[:template_profile] = configured_template_profile
    -  end
    -  gemspec_path = Dir.glob(File.join(project_root, "*.gemspec")).min
    -  if !gemspec_path && template_selection[:template_profile].to_s == MONOREPO_ROOT_TEMPLATE_PROFILE
    -    return discover_monorepo_root_facts(project_root, kettle_config, env, template_selection)
    -  end
    -  raise ArgumentError, "no gemspec found in #{project_root}" unless gemspec_path
     
    -  gemspec_spec = load_project_gemspec(gemspec_path)
    -   = (project_root, gemspec_path, spec: gemspec_spec)
    -  name = (, :gem_name) ||
    -    File.basename(gemspec_path, ".gemspec")
    -  homepage_url = (, :homepage)
    -   = (, :source_code_uri)
    -  unless (File.read(gemspec_path), "source_code_uri")
    -     = nil if generated_version_tree_source_url?(, (, :version))
    -  end
    -   = concrete_github_url()
    -  homepage_github_url = concrete_github_url(homepage_url)
    -  git_source_url = git_remote_source_url(project_root)
    -  git_github_url = concrete_github_url(git_source_url)
    -  source_url =  ||
    -    homepage_github_url ||
    -    git_github_url ||
    -     ||
    -    homepage_url ||
    -    git_source_url
    -  derived_github_user = (git_github_url && source_url == git_github_url) ? github_org_from_url(git_github_url) : nil
    -  rubygems_config = kettle_config["rubygems"].is_a?(Hash) ? kettle_config["rubygems"] : {}
    -  entrypoint_require = rubygems_config["entrypoint_require"].to_s.strip
    -  entrypoint_require = (, :entrypoint_require) if entrypoint_require.empty?
    -  entrypoint_require = name.tr("-", "/") if entrypoint_require.to_s.empty?
    -  version_path = File.join("lib", entrypoint_require, "version.rb")
    -  entrypoint_path = File.join("lib", "#{entrypoint_require}.rb")
    -  configured_namespace = rubygems_config["namespace"].to_s.strip
    -  namespace = configured_namespace.empty? ? nil : configured_namespace
    -  namespace ||= existing_entrypoint_version_namespace(project_root, entrypoint_path) ||
    -    existing_version_namespace(project_root, version_path) ||
    -    (, :namespace) ||
    -    classify_namespace(name)
    -  project_version = (, :version)
    -  project_version = existing_version_file_value(project_root, version_path) unless valid_gem_version?(project_version)
    -  configured_min_ruby = rubygems_config["min_ruby"].to_s.strip
    -  min_ruby = (configured_min_ruby.empty? ? nil : configured_min_ruby) ||
    -    (, :required_ruby_version) ||
    -    (, :min_ruby)
    -  gemspec_licenses = Array([:licenses])
    +14490
    +14491
    +14492
    +
    +
    # File 'lib/kettle/jem.rb', line 14490
     
    -  copyright = copyright_facts(project_root, kettle_config)
    -  author = author_facts(kettle_config, env, gemspec_metadata: , copyright: copyright)
    -  license = license_facts(
    -    kettle_config,
    -    gemspec_licenses,
    -    author: author,
    -    author_email: author[:email],
    -    copyright: copyright
    -  )
    -  gemspec_license_spdx = gemspec_licenses
    -    .map { |license_id| license_id.to_s.strip }
    -    .reject(&:empty?)
    -  project_runtime = project_runtime_facts(
    -    kettle_config,
    -    env,
    -    package_name: name,
    -    source_url: source_url,
    -    author_domain: author[:domain],
    -    min_ruby: min_ruby,
    -    test_min_ruby: config_test_min_ruby(kettle_config, min_ruby),
    -    version: project_version
    -  )
    -  facts = {
    -    package: compact_hash(
    -      ecosystem: "rubygems",
    -      name: name,
    -      slug: name,
    -      summary: (, :summary),
    -      description: (, :description) ||
    -        (, :summary),
    -      homepage_url: homepage_url,
    -      source_url: source_url,
    -      license_expression: license[:expression]
    -    ),
    -    rubygems: compact_hash(
    -      gemspec_path: File.basename(gemspec_path),
    -      entrypoint_require: entrypoint_require,
    -      namespace: namespace,
    -      min_ruby: min_ruby,
    -      engines: ruby_engines_config(kettle_config)
    -    )
    -  }
    -  repository_topology = repository_topology_for(kettle_config, env, template_selection)
    -  repository = repository_facts(
    -    project_root,
    -    source_url,
    -    package_name: name,
    -    repository_topology: repository_topology
    -  )
    -  facts[:repository] = repository unless repository.empty?
    -  generated_blocks = generated_blocks_facts(, facts, run_options)
    -  facts[:generated_blocks] = generated_blocks unless generated_blocks.empty?
    -  bootstrap = kettle_config_bootstrap_facts(project_root, env, template_selection: template_selection)
    -  if bootstrap
    -    min_ruby_token = minimum_ruby_token(min_ruby)
    -    bootstrap[:licenses] = gemspec_license_spdx unless gemspec_license_spdx.empty?
    -    bootstrap[:gemspec_path] = File.basename(gemspec_path) if gemspec_path
    -    bootstrap[:min_ruby] = min_ruby_token unless min_ruby_token.empty?
    -    bootstrap[:test_min_ruby] = config_test_min_ruby(kettle_config, min_ruby).to_s
    -    project_emoji = preferred_template_token_value(nil, nil, env, "KJ_PROJECT_EMOJI")
    -    project_emoji ||= readme_project_emoji(project_root)
    -    project_emoji ||= gemspec_project_emoji()
    -    project_emoji ||= "💎" if monorepo_subgem_template_profile_value?(template_selection[:template_profile])
    -    bootstrap[:project_emoji] = project_emoji
    -  end
    -  facts[:kettle_config_bootstrap] = bootstrap if bootstrap
    -  facts[:author] = author unless author.empty?
    -  facts[:copyright] = copyright unless copyright.empty?
    -  forge = forge_facts(kettle_config, env, derived_github_user: derived_github_user)
    -  facts[:forge] = forge unless forge.empty?
    -  social = social_facts(kettle_config, env)
    -  facts[:social] = social unless social.empty?
    -  opencollective_policy = opencollective_policy(kettle_config, env)
    -  opencollective_disabled = opencollective_policy.fetch(:disabled)
    -  open_collective_org = opencollective_org(project_root, kettle_config, env, opencollective_disabled: opencollective_disabled)
    -  if !opencollective_disabled && open_collective_org.nil?
    -    opencollective_disabled = true
    -    opencollective_policy = {disabled: true, source: "missing.open_collective_org", value: ""}
    -  end
    -  funding = compact_hash(
    -    urls: funding_urls(
    -      project_root,
    -      name,
    -      funding_uri: (, :funding_uri),
    -      opencollective_disabled: opencollective_disabled,
    -      open_collective_org: open_collective_org && open_collective_org.fetch(:org)
    -    )
    -  )
    -  funding_tokens = funding_platform_token_facts(kettle_config, env)
    -  funding[:platform_tokens] = funding_tokens unless funding_tokens.empty?
    -  funding[:open_collective_disabled] = true if opencollective_disabled
    -  funding[:open_collective_disabled_source] = opencollective_policy[:source] if opencollective_disabled
    -  if open_collective_org
    -    unless open_collective_org.fetch(:source) == ".github/FUNDING.yml"
    -      funding[:open_collective_org] = open_collective_org.fetch(:org)
    -      funding[:open_collective_org_source] = open_collective_org.fetch(:source)
    -    end
    -  end
    -  open_collective_files = opencollective_disabled ? opencollective_disabled_files(project_root) : []
    -  funding[:open_collective_files] = open_collective_files unless open_collective_files.empty?
    -  facts[:funding] = funding unless funding.empty?
    -  opt_in_workflows = opt_in_workflow_cleanup_files(project_root, template_selection)
    -  template_config = template_runtime_config(kettle_config, facts, license: license)
    -  inactive_workflows = inactive_packaged_workflow_cleanup_files(
    -    project_root,
    -    template_config,
    -    include_patterns: template_selection[:include]
    -  )
    -  inactive_templates = inactive_packaged_template_cleanup_files(project_root, template_config)
    -  facts[:template_profile] = template_selection[:template_profile] unless template_selection[:template_profile].to_s.empty?
    -  facts[:ci] = {
    -    provider: "github_actions",
    -    default_branch: "main",
    -    exec_cmd: github_actions_exec_cmd(kettle_config, env),
    -    recording: appraisal_recording_enabled?(kettle_config),
    -    ruby_versions: github_actions_ruby_versions(project_runtime.fetch(:test_min_ruby)),
    -    test_min_ruby: project_runtime.fetch(:test_min_ruby).to_s,
    -    obsolete_workflows: github_actions_obsolete_workflows(project_root),
    -    custom_workflows: github_actions_custom_workflows(project_root, template_config, opencollective_disabled: opencollective_disabled)
    -  }
    -  standard_appraisal_gemfiles = github_actions_standard_appraisal_gemfiles(kettle_config)
    -  facts[:ci][:standard_appraisal_gemfiles] = standard_appraisal_gemfiles unless standard_appraisal_gemfiles.empty?
    -  facts[:ci][:opt_in_workflow_cleanups] = opt_in_workflows unless opt_in_workflows.empty?
    -  facts[:ci][:inactive_packaged_workflow_cleanups] = inactive_workflows unless inactive_workflows.empty?
    -  coverage_config = github_actions_coverage_config(kettle_config, env)
    -  facts[:ci][:coverage] = coverage_config unless coverage_config.empty?
    -  framework_matrix = github_actions_framework_matrix(kettle_config)
    -  facts[:ci][:framework_matrix] = framework_matrix unless framework_matrix.empty?
    -  template_facts = {}
    -  template_preferences = template_source_preferences(
    -    project_root,
    -    template_config,
    -    opencollective_disabled: opencollective_disabled,
    -    include_patterns: template_selection[:include]
    -  )
    -  template_facts[:source_preferences] = template_preferences unless template_preferences.empty?
    -  template_facts[:inactive_packaged_template_cleanups] = inactive_templates unless inactive_templates.empty?
    -  legacy_cleanups = template_legacy_destination_cleanups(project_root, template_preferences)
    -  template_facts[:legacy_destination_cleanups] = legacy_cleanups unless legacy_cleanups.empty?
    -  license_cleanups = template_obsolete_license_cleanups(project_root, template_config, template_preferences)
    -  template_facts[:obsolete_license_cleanups] = license_cleanups unless license_cleanups.empty?
    -  unless template_preferences.empty?
    -    facts[:license] = license unless license.empty?
    -    facts[:project_runtime] = project_runtime unless project_runtime.empty?
    -    readme_github_org = project_runtime[:github_org].to_s
    -    readme_github_org = forge[:gh_user].to_s if readme_github_org.empty?
    -    readme_github_org = facts.fetch(:repository, {})[:slug].to_s.split("/", 2).first.to_s if readme_github_org.empty?
    -     = readme_logo_facts(
    -      kettle_config,
    -      package_name: name,
    -      github_org: readme_github_org,
    -      repository: facts[:repository]
    -    )
    -    facts[:readme_logo] =  unless .empty?
    -    readme_style = readme_style_facts(
    -      project_root,
    -      kettle_config,
    -      license,
    -      template_profile: template_selection[:template_profile],
    -      repository: facts[:repository]
    -    )
    -    facts[:readme_style] = readme_style unless readme_style.empty?
    -    template_tokens = template_tokens(facts, funding)
    -    template_facts[:tokens] = template_tokens unless template_tokens.empty?
    -  end
    -  if template_facts[:tokens].to_h.empty? && funding[:open_collective_org].to_s != ""
    -    template_facts[:tokens] = {"KJ|OPENCOLLECTIVE_ORG" => funding.fetch(:open_collective_org).to_s}
    -  end
    -  facts[:templates] = template_facts unless template_facts.empty?
    -  facts
    +def github_workflow_action_pin_key(record)
    +  [record.fetch(:action), record.fetch(:version)]
     end
    -
    # File 'lib/kettle/jem.rb', line 2517
    +      
    # File 'lib/kettle/jem.rb', line 14494
     
    -def discover_monorepo_root_facts(project_root, kettle_config, env, template_selection)
    -  source_url = git_remote_source_url(project_root)
    -  package_name = repository_name_from_source_url(source_url)
    -  package_name = File.basename(project_root.to_s) if package_name.empty?
    -  configured_or_detected_licenses = detected_license_ids(project_root)
    -  configured_or_detected_licenses = Array(kettle_config["licenses"]) if configured_or_detected_licenses.empty?
    -  copyright = copyright_facts(project_root, kettle_config)
    -  author = author_facts(kettle_config, env, copyright: copyright)
    -  license = license_facts(kettle_config.merge("licenses" => configured_or_detected_licenses), configured_or_detected_licenses, author: author, author_email: author[:email], copyright: copyright)
    -  test_min_ruby = config_test_min_ruby(kettle_config, nil)
    -  project_runtime = project_runtime_facts(
    -    kettle_config,
    -    env,
    -    package_name: package_name,
    -    source_url: source_url,
    -    author_domain: author[:domain],
    -    min_ruby: nil,
    -    test_min_ruby: test_min_ruby,
    -    version: nil
    +def github_workflow_action_pin_line_record(line, line_index)
    +  # Psych intentionally drops comments, but the managed pin contract uses
    +  # the trailing comment as the human version label paired with the SHA.
    +  match = line.to_s.match(
    +    %r{
    +      \A\s*(?:-\s*)?uses:\s*
    +      (?<action>[A-Za-z0-9_.-]+/[A-Za-z0-9_.-]+(?:/[A-Za-z0-9_.-]+)*)
    +      @(?<sha>[a-f0-9]{40})\s+\#\s*(?<version>v?[^#\s]+)
    +    }x
       )
    -  facts = {
    -    package: compact_hash(
    -      ecosystem: "monorepo",
    -      name: package_name,
    -      slug: package_name,
    -      description: "#{package_name} monorepo",
    -      homepage_url: source_url,
    -      source_url: source_url,
    -      license_expression: license[:expression]
    -    ),
    -    rubygems: compact_hash(
    -      namespace: classify_namespace(package_name),
    -      min_ruby: nil,
    -      engines: ruby_engines_config(kettle_config)
    -    ),
    -    template_profile: MONOREPO_ROOT_TEMPLATE_PROFILE
    +  return unless match
    +
    +  {
    +    action: match[:action],
    +    sha: match[:sha],
    +    version: match[:version],
    +    line_index: line_index
       }
    -  bootstrap = kettle_config_bootstrap_facts(project_root, env, template_selection: template_selection)
    -  bootstrap[:licenses] = configured_or_detected_licenses if bootstrap && !configured_or_detected_licenses.empty?
    -  facts[:kettle_config_bootstrap] = bootstrap if bootstrap
    -  facts[:author] = author unless author.empty?
    -  facts[:copyright] = copyright unless copyright.empty?
    -  forge = forge_facts(kettle_config, env, derived_github_user: nil)
    -  social = social_facts(kettle_config, env)
    -  facts[:forge] = forge unless forge.empty?
    -  facts[:social] = social unless social.empty?
    -  facts[:license] = license unless license.empty?
    -  facts[:project_runtime] = project_runtime unless project_runtime.empty?
    -  funding = compact_hash(
    -    urls: funding_urls(project_root, package_name, opencollective_disabled: false),
    -    platform_tokens: funding_platform_token_facts(kettle_config, env)
    -  )
    -  detected_open_collective_org = opencollective_org(project_root, kettle_config, env, opencollective_disabled: false)
    -  if detected_open_collective_org
    -    funding[:open_collective_org] = detected_open_collective_org.fetch(:org)
    -    funding[:open_collective_org_source] = detected_open_collective_org.fetch(:source)
    -  end
    -  facts[:funding] = funding unless funding.empty?
    -  repository = repository_facts(
    -    project_root,
    -    source_url,
    -    package_name: package_name,
    -    repository_topology: REPOSITORY_TOPOLOGY_STANDALONE
    -  )
    -  facts[:repository] = repository unless repository.empty?
    -   = readme_logo_facts(
    -    kettle_config,
    -    package_name: package_name,
    -    github_org: project_runtime[:github_org],
    -    repository: facts[:repository]
    -  )
    -  facts[:readme_logo] =  unless .empty?
    -  template_facts = {}
    -  template_config = template_runtime_config(kettle_config, facts, license: license)
    -  template_preferences = template_source_preferences(
    -    project_root,
    -    template_config,
    -    opencollective_disabled: false,
    -    include_patterns: template_selection[:include]
    -  )
    -  template_facts[:source_preferences] = template_preferences unless template_preferences.empty?
    -  template_tokens = template_tokens(facts, funding)
    -  template_facts[:tokens] = template_tokens unless template_tokens.empty?
    -  facts[:templates] = template_facts unless template_facts.empty?
    -  facts
     end
    -
    # File 'lib/kettle/jem.rb', line 1926
    +      
    # File 'lib/kettle/jem.rb', line 14478
     
    -def display_path(path)
    -  return path if path.nil?
    +def github_workflow_action_pin_records(content)
    +  lines = content.to_s.lines
    +  yaml_scalar_pairs(content).filter_map do |key_node, value_node|
    +    next unless key_node.value.to_s == "uses"
    +    next unless value_node.value.to_s.include?("@")
     
    -  path.to_s.sub(VAR_HOME_PREFIX, "/home")
    +    github_workflow_action_pin_line_record(lines[key_node.start_line], key_node.start_line)
    +  end
    +rescue Psych::Exception
    +  []
     end
    -
    # File 'lib/kettle/jem.rb', line 1932
    +      
    # File 'lib/kettle/jem.rb', line 14461
     
    -def display_text(text)
    -  return text if text.nil?
    +def github_workflow_template_pin_warnings(recipe_reports)
    +  records = recipe_reports.flat_map do |report|
    +    Array(report.dig(:metadata, :stale_github_workflow_template_pins))
    +  end
    +  return [] if records.empty?
     
    -  text.to_s.gsub(VAR_HOME_TEXT, "/home")
    +  grouped = records.group_by { |record| record.fetch(:path) }
    +  grouped.map do |path, path_records|
    +    actions = path_records.map { |record| "#{record.fetch(:action)} #{record.fetch(:version)}" }.uniq.sort.join(", ")
    +    [
    +      "GitHub Actions template pins appear stale for #{path}:",
    +      "preserved existing project pin(s) for #{actions}.",
    +      "Update kettle-jem's workflow template pins."
    +    ].join(" ")
    +  end
     end
    +
    +
    + + + +
    +
    +
    + +

    Returns:

    +
      + +
    • + + + (Boolean) + + + +
    • + +
    + +
    + +
     
     
    -5772
    -5773
    -5774
    -5775
    -5776
    -5777
    -5778
    -5779
    -5780
    -5781
    -5782
    -5783
    +6181 +6182 +6183
    -
    # File 'lib/kettle/jem.rb', line 5772
    +      
    # File 'lib/kettle/jem.rb', line 6181
     
    -def dotenv_merge_options(recipe)
    -  options = {
    -    preference: (recipe.dig(:template_preference, :preference) || "destination").to_sym,
    -    add_template_only_nodes: true,
    -    freeze_token: recipe.dig(:template_preference, :freeze_token) || "kettle-jem"
    -  }
    -  if !recipe.dig(:template_preference, :add_template_only_nodes).nil?
    -    configured = DecisionPolicy.value_to_boolean(recipe.dig(:template_preference, :add_template_only_nodes))
    -    options[:add_template_only_nodes] = configured unless configured.nil?
    +def github_workflow_template_recipe?(recipe)
    +  recipe.fetch(:target_path).to_s.start_with?(".github/workflows/")
    +end
    +
    +
    + +
    +

    + + .github_workflows_include?(project_root, needle) ⇒ Boolean + + + + + +

    +
    + + + +
    +
    +
    + +

    Returns:

    +
      + +
    • + + + (Boolean) + + + +
    • + +
    + +
    + + + @@ -25665,9 +40207,55 @@

    -

    +

    + + .gitlab_repo_url(repository, repo_slug, suffix) ⇒ Object + + + + + +

    +
    +
    +
    +12648
    +12649
    +12650
    +12651
    +12652
    +12653
    +12654
    +
    +
    # File 'lib/kettle/jem.rb', line 12648
    +
    +def github_workflows_include?(project_root, needle)
    +  Dir.glob(File.join(project_root, ".github/workflows/*.{yml,yaml}")).any? do |path|
    +    File.read(path).include?(needle)
    +  rescue Errno::ENOENT
    +    false
       end
    -  options
     end
    + + + + +
    +
    +
    +
    +11665
    +11666
    +11667
    +11668
    +11669
    +11670
    +11671
    +11672
    +11673
    +11674
    +11675
    +
    +
    # File 'lib/kettle/jem.rb', line 11665
    +
    +def gitlab_repo_url(repository, repo_slug, suffix)
    +  resources = repository[:resource_urls] || {}
    +  return resources[:gitlab_issues_url] if suffix == "issues" && resources[:gitlab_issues_url]
    +  return resources[:gitlab_pulls_url] if suffix == "merge_requests" && resources[:gitlab_pulls_url]
    +  return resources[:gitlab_wiki_url] if suffix == "wikis/home" && resources[:gitlab_wiki_url]
    +  return resources[:gitlab_contributors_url] if suffix == "graphs/main" && resources[:gitlab_contributors_url]
    +
    +  base = repository[:gitlab_url].to_s
    +  base = "https://gitlab.com/#{repo_slug}" if base.empty?
    +  "#{base}/-/#{suffix}"
    +end
    +
    +
    + +
    +

    - .duplicate_drift_report(project_root:, template_root:, run_options: {}) ⇒ Object + .guard_main_gemfile_runtime_workspace_overrides(content) ⇒ Object @@ -25679,85 +40267,47 @@

     
     
    -3385
    -3386
    -3387
    -3388
    -3389
    -3390
    -3391
    -3392
    -3393
    -3394
    -3395
    -3396
    -3397
    -3398
    -3399
    -3400
    -3401
    -3402
    -3403
    -3404
    -3405
    -3406
    -3407
    -3408
    -3409
    -3410
    -3411
    -3412
    -3413
    -3414
    -3415
    -3416
    -3417
    -3418
    -3419
    -3420
    -3421
    -3422
    +5430 +5431 +5432 +5433 +5434 +5435 +5436 +5437 +5438 +5439 +5440 +5441 +5442 +5443 +5444 +5445 +5446 +5447 +5448

    -
    # File 'lib/kettle/jem.rb', line 3385
    +      
    # File 'lib/kettle/jem.rb', line 5430
     
    -def duplicate_drift_report(project_root:, template_root:, run_options: {})
    -  runner = run_options[:duplicate_drift_runner] || run_options["duplicate_drift_runner"]
    -  unless runner
    -    begin
    -      require "kettle/drift"
    -      runner = Kettle::Drift
    -    rescue LoadError
    -      return {
    -        available: false,
    -        reason: "kettle-drift is not available"
    -      }
    -    end
    -  end
    +def guard_main_gemfile_runtime_workspace_overrides(content)
    +  content = collapse_nested_templating_guards(content)
    +  content = normalize_templating_guard_indentation(content)
    +  records = runtime_workspace_override_records(content)
    +  return content if records.empty?
     
    -  outcome = if runner.respond_to?(:call)
    -    runner.call(project_root: project_root, template_dir: template_root)
    -  else
    -    runner.run(
    -      project_root: project_root,
    -      template_dir: template_root,
    -      lock_path: File.join(project_root.to_s, ".kettle-drift.lock"),
    -      mode: :force_update,
    -      printer_class: nil
    -    )
    +  output = content.to_s
    +  records.sort_by { |record| -record.fetch(:start_line) }.each do |record|
    +    source = output.lines[(record.fetch(:start_line) - 1)..(record.fetch(:end_line) - 1)].join
    +    guarded = [
    +      %(unless ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero?),
    +      indent_source(source, 2).rstrip,
    +      "end",
    +      ""
    +    ].join("\n")
    +    output = replace_source_range_lines(output, record.fetch(:start_line), record.fetch(:end_line), guarded)
       end
    -  {
    -    available: true,
    -    warning_count: outcome.respond_to?(:warning_count) ? outcome.warning_count : outcome.fetch(:warning_count),
    -    json_path: outcome.respond_to?(:json_path) ? outcome.json_path : outcome[:json_path],
    -    lock_path: outcome.respond_to?(:lock_path) ? outcome.lock_path : outcome[:lock_path],
    -    exit_code: outcome.respond_to?(:exit_code) ? outcome.exit_code : outcome[:exit_code]
    -  }.compact
    -rescue => error
    -  {
    -    available: false,
    -    reason: "#{error.class}: #{error.message}"
    -  }
    +  output
     end
    -
    # File 'lib/kettle/jem.rb', line 10600
    +      
    # File 'lib/kettle/jem.rb', line 12014
     
    -def enabled_ruby_engines(config)
    -  engines = ruby_engines_config(config)
    -  (engines.nil? || engines.empty?) ? DEFAULT_ENGINES : engines
    +def html_attribute_escape(value)
    +  value.to_s.gsub("&", "&amp;").gsub("\"", "&quot;").gsub("<", "&lt;").gsub(">", "&gt;")
     end
    -
    # File 'lib/kettle/jem.rb', line 7577
    +      
    # File 'lib/kettle/jem.rb', line 14269
     
    -def enforce_git_preflight!(git_preflight, decision_policy:, template_selection:)
    -  return unless decision_policy.require_clean
    -  return if template_selection.fetch(:skip_commit, false)
    -  raise Error, "Git preflight failed: project is not a git repository" unless git_preflight.fetch(:git_repository)
    -  raise Error, "Git preflight failed: worktree is not clean" unless git_preflight.fetch(:clean_worktree)
    +def http_url?(value)
    +  uri = URI.parse(value.to_s)
    +  %w[http https].include?(uri.scheme)
    +rescue URI::InvalidURIError
    +  false
     end
    -
    # File 'lib/kettle/jem.rb', line 6054
    -
    -def ensure_gemspec_legacy_version_loader_preamble(content, entrypoint_require:, namespace:, min_ruby:)
    -  block = "#{gemspec_legacy_version_loader_block(entrypoint_require: entrypoint_require, namespace: namespace, min_ruby: min_ruby)}\n"
    -  node = gemspec_top_level_gem_version_node(content)
    -  return replace_source_range_lines(content, node.location.start_line, expand_line_range_through_following_blanks(content, node.location.end_line), block) if node
    +      
    # File 'lib/kettle/jem.rb', line 13049
     
    -  gemspec_call = gemspec_new_call(content)
    -  return content unless gemspec_call
    +def inactive_packaged_template_cleanup_files(project_root, config = {})
    +  gemfile_cleanups = Dir.glob(File.join(project_root, "gemfiles/**/*.gemfile")).filter_map do |path|
    +    relative_path = path.delete_prefix("#{project_root}/")
    +    next unless preferred_template_source(PACKAGED_TEMPLATE_ROOT, relative_path)
     
    -  insert_lines_before(content, gemspec_call.location.start_line, block)
    +    {target_path: relative_path} if skip_packaged_gemfile_template?(relative_path, config)
    +  end
    +  (gemfile_cleanups + disabled_integration_config_cleanups(project_root, config)).sort_by { |cleanup| cleanup.fetch(:target_path) }
     end
    +
    +
    + + + +
    +
    +
    + +

    Returns:

    +
      + +
    • + + + (Boolean) + + + +
    • + +
    + +
    @@ -25944,9 +40505,9 @@

    -

    +

    - .ensure_trailing_newline(text) ⇒ Object + .inactive_packaged_workflow_cleanup_files(project_root, config = {}, include_patterns: nil) ⇒ Object @@ -25958,19 +40519,31 @@

     
     
    -11668
    -11669
    -11670
    -11671
    -11672
    +9592 +9593 +9594 +9595 +9596 +9597 +9598 +9599 +9600 +9601 +9602

    @@ -25978,9 +40551,9 @@

    -

    +

    - .ensure_workflow_top_level_section(content, key, section, before:) ⇒ Object + .indent_source(source, spaces) ⇒ Object @@ -25992,39 +40565,17 @@

     
     
    -11464
    -11465
    -11466
    -11467
    -11468
    -11469
    -11470
    -11471
    -11472
    -11473
    -11474
    -11475
    -11476
    -11477
    -11478
    +5938 +5939 +5940 +5941

    @@ -26032,9 +40583,9 @@

    -

    +

    - .env_overridden_gemspec_fields(env) ⇒ Object + .inject_appraisal_gemfiles(block, gemfiles) ⇒ Object @@ -26046,21 +40597,45 @@

     
     
    -6264
    -6265
    -6266
    -6267
    -6268
    -6269
    +6852 +6853 +6854 +6855 +6856 +6857 +6858 +6859 +6860 +6861 +6862 +6863 +6864 +6865 +6866 +6867 +6868 +6869

    @@ -26068,9 +40643,9 @@

    -

    +

    - .execute_recipe(project_root:, recipe:, facts:, files:, decision_policy:, env: ENV) ⇒ Object + .inject_framework_matrix_workflow_env(content, facts) ⇒ Object @@ -26082,203 +40657,69 @@

     
     
    -3842
    -3843
    -3844
    -3845
    -3846
    -3847
    -3848
    -3849
    -3850
    -3851
    -3852
    -3853
    -3854
    -3855
    -3856
    -3857
    -3858
    -3859
    -3860
    -3861
    -3862
    -3863
    -3864
    -3865
    -3866
    -3867
    -3868
    -3869
    -3870
    -3871
    -3872
    -3873
    -3874
    -3875
    -3876
    -3877
    -3878
    -3879
    -3880
    -3881
    -3882
    -3883
    -3884
    -3885
    -3886
    -3887
    -3888
    -3889
    -3890
    -3891
    -3892
    -3893
    -3894
    -3895
    -3896
    -3897
    -3898
    -3899
    -3900
    -3901
    -3902
    -3903
    -3904
    -3905
    -3906
    -3907
    -3908
    -3909
    -3910
    -3911
    -3912
    -3913
    -3914
    -3915
    -3916
    -3917
    -3918
    -3919
    -3920
    -3921
    -3922
    -3923
    -3924
    -3925
    -3926
    -3927
    -3928
    -3929
    -3930
    -3931
    -3932
    -3933
    -3934
    -3935
    -3936
    -3937
    -3938
    +6041 +6042 +6043 +6044 +6045 +6046 +6047 +6048 +6049 +6050 +6051 +6052 +6053 +6054 +6055 +6056 +6057 +6058 +6059 +6060 +6061 +6062 +6063 +6064 +6065 +6066 +6067 +6068 +6069 +6070

    @@ -26286,9 +40727,9 @@

    -

    +

    - .existing_entrypoint_version_namespace(project_root, relative_path) ⇒ Object + .inject_main_gemfile_recording_eval(content, facts) ⇒ Object @@ -26300,15 +40741,27 @@

     
     
    -8915
    -8916
    -8917
    +6278 +6279 +6280 +6281 +6282 +6283 +6284 +6285 +6286

    @@ -26316,9 +40769,9 @@

    -

    +

    - .existing_version_file_value(project_root, relative_path) ⇒ Object + .inject_standard_appraisal_gemfiles(content, facts) ⇒ Object @@ -26330,15 +40783,47 @@

     
     
    -8867
    -8868
    -8869
    +6803 +6804 +6805 +6806 +6807 +6808 +6809 +6810 +6811 +6812 +6813 +6814 +6815 +6816 +6817 +6818 +6819 +6820 +6821

    @@ -26346,29 +40831,72 @@

    -

    +

    - .existing_version_namespace(project_root, relative_path) ⇒ Object + .insert_after_line_sequence(content, sequence, insertion, error_message) ⇒ Object -

     
     
    -3268
    -3269
    -3270
    -3271
    -3272
    -3273
    -3274
    -3275
    -3276
    -3277
    +9604 +9605 +9606 +9607 +9608 +9609
    -
    # File 'lib/kettle/jem.rb', line 3268
    +      
    # File 'lib/kettle/jem.rb', line 9604
     
    -def ensure_monorepo_root_gemfile_dependencies(content)
    -  updated = ensure_trailing_newline(content.to_s.empty? ? %(source "https://gem.coop"\n) : content.to_s).dup
    -  monorepo_root_gemfile_dependency_lines.each do |line|
    -    next if gemfile_declares_gem?(updated, line.fetch(:name))
    +def inactive_packaged_workflow?(relative_path, config = {}, include_patterns: nil)
    +  return true if stale_versioned_engine_workflow?(relative_path)
     
    -    updated << "\n" unless updated.end_with?("\n\n")
    -    updated << line.fetch(:source)
    -  end
    -  ensure_trailing_newline(updated)
    +  preferred_template_source(PACKAGED_TEMPLATE_ROOT, relative_path) &&
    +    skip_packaged_workflow_template?(relative_path, config, include_patterns: include_patterns)
     end
    -
    # File 'lib/kettle/jem.rb', line 11668
    +      
    # File 'lib/kettle/jem.rb', line 9592
     
    -def ensure_trailing_newline(text)
    -  return "" if text.to_s.empty?
    +def inactive_packaged_workflow_cleanup_files(project_root, config = {}, include_patterns: nil)
    +  workflow_root = File.join(project_root, ".github", "workflows")
    +  return [] unless Dir.exist?(workflow_root)
     
    -  text.end_with?("\n") ? text : "#{text}\n"
    +  Dir.glob(File.join(workflow_root, "*.{yml,yaml}")).filter_map do |path|
    +    relative_path = path.delete_prefix("#{project_root}/")
    +    next if OPT_IN_GITHUB_WORKFLOWS.include?(relative_path)
    +
    +    relative_path if inactive_packaged_workflow?(relative_path, config, include_patterns: include_patterns)
    +  end.sort
     end
    -
    # File 'lib/kettle/jem.rb', line 11464
    +      
    # File 'lib/kettle/jem.rb', line 5938
     
    -def ensure_workflow_top_level_section(content, key, section, before:)
    -  top_level_keys = yaml_top_level_key_lines(content)
    -  return content if top_level_keys.key?(key.to_s)
    -
    -  lines = content.lines
    -  index = top_level_keys[before.to_s]
    -  if index
    -    prepared_section = (index.zero? || lines[index - 1].strip.empty?) ? section : "\n#{section}"
    -    lines.insert(index, prepared_section)
    -  else
    -    lines << "\n" unless lines.empty? || lines.last == "\n"
    -    lines << section
    -  end
    -  lines.join
    +def indent_source(source, spaces)
    +  prefix = " " * spaces
    +  source.to_s.lines.map { |line| line.strip.empty? ? line : "#{prefix}#{line}" }.join
     end
    -
    # File 'lib/kettle/jem.rb', line 6264
    +      
    # File 'lib/kettle/jem.rb', line 6852
     
    -def env_overridden_gemspec_fields(env)
    -  fields = []
    -  fields << "authors" if present_template_token_value?(env["KJ_AUTHOR_NAME"].to_s)
    -  fields << "email" if present_template_token_value?(env["KJ_AUTHOR_EMAIL"].to_s)
    -  fields
    +def inject_appraisal_gemfiles(block, gemfiles)
    +  lines = block.to_s.lines
    +  existing_paths = ruby_call_records(block, :eval_gemfile).filter_map { |call| ruby_string_argument(call) }.to_set
    +  additions = gemfiles.filter_map do |gemfile|
    +    path = gemfile.to_s.delete_prefix("gemfiles/")
    +    line = %(  eval_gemfile "#{path}") + "\n"
    +    line unless existing_paths.include?(path)
    +  end
    +  return block if additions.empty?
    +
    +  insert_line = appraisal_x_stdlib_eval_gemfile_call(block)&.location&.start_line ||
    +    ruby_call_records(block, :appraise).first&.location&.end_line
    +  insert_index = insert_line ? insert_line - 1 : nil
    +  return block unless insert_index
    +
    +  lines.insert(insert_index, *additions)
    +  ensure_trailing_newline(lines.join.gsub(/\n{3,}/, "\n\n"))
     end
    -
    # File 'lib/kettle/jem.rb', line 3842
    -
    -def execute_recipe(project_root:, recipe:, facts:, files:, decision_policy:, env: ENV)
    -  relative_path = recipe.fetch(:target_path)
    -  destination_existed = File.exist?(File.join(project_root, relative_path))
    -  original = files.fetch(relative_path, "")
    -  deletion = rakefile_scaffold_cleanup_recipe?(recipe) ? rakefile_scaffold_cleanup(original, facts) : nil
    -  final = case recipe.fetch(:name)
    -  when "readme_metadata"
    -    synchronize_readme(original, facts, project_root: project_root)
    -  when "changelog_unreleased"
    -    normalize_changelog(original, facts)
    -  when "generated_block_sync"
    -    synchronize_managed_block(original, facts)
    -  when "github_funding_yml"
    -    synchronize_github_funding_yml(original, facts)
    -  when "github_actions_ci"
    -    synchronize_github_actions_ci(original, facts)
    -  when "github_actions_framework_ci"
    -    synchronize_github_actions_framework_ci(original, facts)
    -  when /\Agithub_actions_framework_gemfile_/
    -    synchronize_github_actions_framework_gemfile(recipe.fetch(:target_path), facts)
    -  when "github_actions_coverage_ci"
    -    synchronize_github_actions_coverage_ci(original, facts)
    -  when /\Agithub_actions_obsolete_workflow_cleanup_/
    -    ""
    -  when /\Agithub_actions_opt_in_workflow_cleanup_/
    -    ""
    -  when /\Aopencollective_disabled_file_cleanup_/
    -    ""
    -  when /\Atemplate_legacy_destination_cleanup_/
    -    ""
    -  when /\Atemplate_obsolete_license_cleanup_/
    -    ""
    -  when /\Agithub_actions_workflow_snippets_/
    -    synchronize_github_actions_workflow_snippets(original)
    -  when "kettle_config_bootstrap"
    -    apply_kettle_config_bootstrap(project_root, recipe, env: env)
    -  when /\Atemplate_source_preference_/
    -    original
    -  when /\Atemplate_source_application_/
    -    apply_template_source(project_root, recipe, original, facts: facts, env: env)
    -  when "rakefile_scaffold_cleanup"
    -    deletion.fetch(:content)
    -  else
    -    original
    -  end
    -  final = normalize_generated_rakefile(final) if relative_path == "Rakefile"
    -  final = ensure_trailing_newline(final) unless delete_file_recipe?(recipe)
    -
    -  template_content = recipe_template_content(project_root, recipe)
    -  request = content_recipe_execution_request(
    -    recipe_name: recipe.fetch(:primitive),
    -    recipe_version: "1",
    -    relative_path: relative_path,
    -    provider_family: recipe.fetch(:provider_family),
    -    provider_backend: recipe[:provider_backend],
    -    template_content: template_content,
    -    destination_content: original,
    -    steps: [content_recipe_step(recipe)],
    -    runtime_context: recipe_runtime_context(recipe, facts, deletion),
    -    metadata: {packaging_recipe: recipe.fetch(:name), project_root: project_root.to_s}
    -  )
    -  changed = delete_file_recipe?(recipe) || final != original
    -   = (recipe).merge(destination_existed: destination_existed)
    -  decision_evaluation = recipe_decision_evaluation(
    -    decision_policy: decision_policy,
    -    recipe: recipe,
    -    changed: changed,
    -    destination_existed: destination_existed
    -  )
    -  if %w[keep skip].include?(decision_evaluation.fetch(:selected_action))
    -    final = original
    -    changed = false
    -    deletion = nil
    +      
    # File 'lib/kettle/jem.rb', line 6041
    +
    +def inject_framework_matrix_workflow_env(content, facts)
    +  env_by_appraisal = framework_matrix_appraisal_env_by_name(facts)
    +  return content if env_by_appraisal.empty?
    +
    +  lines = content.to_s.lines
    +  inserted_keys = Set.new
    +  inserted_locations = Set.new
    +  yaml_mapping_nodes(content).sort_by { |mapping| -mapping.start_line }.each do |mapping|
    +    appraisal = yaml_mapping_scalar_value(mapping, "appraisal")
    +    matrix_env = env_by_appraisal[appraisal]
    +    next unless matrix_env
    +
    +    insert_index = workflow_matrix_env_insert_index(lines, mapping)
    +    next unless insert_index
    +
    +    indent = workflow_matrix_env_indent(lines, mapping)
    +    additions = matrix_env.reject { |key, _value| yaml_mapping_scalar_value(mapping, key) }
    +    additions.reject! { |key, _value| inserted_locations.include?([insert_index, key.to_s]) }
    +    next if additions.empty?
    +
    +    additions.each_key { |key| inserted_keys << key }
    +    additions.each_key { |key| inserted_locations << [insert_index, key.to_s] }
    +    lines.insert(insert_index, *additions.map { |key, value| %(#{indent}#{key}: #{yaml_double_quoted_scalar(value)}\n) })
       end
    -  step_report = content_recipe_step_report(recipe: recipe, request: request, original: original, final: final, changed: changed, deletion: deletion)
    -  [:decision_evaluation] = decision_evaluation
    -  report = content_recipe_execution_report(
    -    request: request,
    -    final_content: final,
    -    changed: changed,
    -    step_reports: [step_report],
    -    diagnostics: [],
    -    metadata: 
    -  )
    +  return content if inserted_keys.empty?
     
    -  {
    -    recipe_name: recipe.fetch(:name),
    -    relative_path: relative_path,
    -    changed: changed,
    -    request_envelope: content_recipe_execution_request_envelope(request),
    -    report_envelope: content_recipe_execution_report_envelope(report),
    -    final_content: final,
    -    metadata: ,
    -    decision_evaluation: decision_evaluation,
    -    diagnostics: []
    -  }
    +  add_framework_matrix_job_env(lines.join, inserted_keys)
    +rescue
    +  content
     end
    -
    # File 'lib/kettle/jem.rb', line 8915
    +      
    # File 'lib/kettle/jem.rb', line 6278
     
    -def existing_entrypoint_version_namespace(project_root, relative_path)
    -  ruby_version_class_eval_namespaces(read_project_file(project_root, relative_path)).first
    +def inject_main_gemfile_recording_eval(content, facts)
    +  return content unless facts.to_h.dig(:ci, :recording)
    +  return content if gemfile_eval_paths(content).any? { |path| path.to_s.include?("gemfiles/modular/recording/") }
    +
    +  lines = content.to_s.lines
    +  insert_at = main_gemfile_recording_insertion_index(content) || lines.length
    +  lines.insert(insert_at, "# Test HTTP Interaction Recording\n", %(eval_gemfile "#{main_gemfile_recording_eval_path}"\n), "\n")
    +  ensure_trailing_newline(lines.join.gsub(/\n{3,}/, "\n\n"))
     end
    -
    # File 'lib/kettle/jem.rb', line 8867
    +      
    # File 'lib/kettle/jem.rb', line 6803
     
    -def existing_version_file_value(project_root, relative_path)
    -  ruby_version_constant_value(read_project_file(project_root, relative_path)).to_s
    +def inject_standard_appraisal_gemfiles(content, facts)
    +  gemfiles = facts.to_h.dig(:ci, :standard_appraisal_gemfiles).to_a
    +  return content if gemfiles.empty?
    +
    +  standard_names = standard_test_appraisal_names(content)
    +  return content if standard_names.empty?
    +
    +  matrix_dependency_gemfiles = framework_matrix_appraisal_dependency_gemfiles(facts)
    +  parsed = appraisal_blocks(content)
    +  blocks = parsed.fetch(:order).map do |name|
    +    block = parsed.fetch(:blocks).fetch(name)
    +    if standard_names.include?(name) && !appraisal_block_has_matrix_dependency_gemfile?(block, matrix_dependency_gemfiles)
    +      inject_appraisal_gemfiles(block, gemfiles)
    +    else
    +      block
    +    end
    +  end
    +  ensure_trailing_newline(([parsed.fetch(:prelude).to_s.rstrip] + blocks.map(&:rstrip)).reject(&:empty?).join("\n\n"))
     end
    +
    +
    + + + +
    +
    +
    + +

    Raises:

    +
      + +
    • + + + (Error) + + + +
    • + +
    + +
    @@ -26376,9 +40904,9 @@

    -

    +

    - .expand_framework_gemfile_pattern(pattern, version) ⇒ Object + .insert_gemfile_dependency_blocks(content, blocks) ⇒ Object @@ -26390,25 +40918,29 @@

     
     
    -10865
    -10866
    -10867
    -10868
    -10869
    -10870
    -10871
    -10872
    +6330 +6331 +6332 +6333 +6334 +6335 +6336 +6337 +6338 +6339

    @@ -26416,9 +40948,9 @@

    -

    +

    - .expand_line_range_through_following_blanks(content, end_line) ⇒ Object + .insert_lines_after(content, line_number, insertion) ⇒ Object @@ -26430,21 +40962,19 @@

    -6077 -6078 -6079 -6080 -6081 -6082 +8483 +8484 +8485 +8486 +8487

    @@ -26452,52 +40982,33 @@

    -

    - - .explicit_zero_runtime_floor?(facts) ⇒ Boolean +

    - + .insert_lines_before(content, line_number, insertion) ⇒ Object -

    -
    - - -
    -
    -
    - -

    Returns:

    -
      -
    • - - - (Boolean) - - - -
    • - -
    - -
     
     
    -8871
    -8872
    -8873
    +9160 +9161 +9162 +9163 +9164 +9165 +9166 +9167 +9168 +9169 +9170 +9171 +9172
    -
    # File 'lib/kettle/jem.rb', line 8871
    +      
    # File 'lib/kettle/jem.rb', line 9160
     
    -def existing_version_namespace(project_root, relative_path)
    -  ruby_version_module_namespace(read_project_file(project_root, relative_path))
    +def insert_after_line_sequence(content, sequence, insertion, error_message)
    +  lines = content.to_s.lines(chomp: true)
    +  index = (0..(lines.length - sequence.length)).find do |candidate|
    +    lines[candidate, sequence.length] == sequence
    +  end
    +  return content if !index && error_message.nil?
    +  raise Error, error_message unless index
    +
    +  insertion_lines = insertion.to_s.lines(chomp: true)
    +  updated = lines.dup
    +  updated.insert(index + sequence.length, *insertion_lines)
    +  "#{updated.join("\n")}\n"
     end
    -
    # File 'lib/kettle/jem.rb', line 10865
    +      
    # File 'lib/kettle/jem.rb', line 6330
     
    -def expand_framework_gemfile_pattern(pattern, version)
    -  replacement = if pattern.include?("_{version}") || pattern.include?("{version}_")
    -    version.tr(".", "_")
    -  else
    -    version
    +def insert_gemfile_dependency_blocks(content, blocks)
    +  lines = content.to_s.lines
    +  insert_at = gemfile_dependency_insertion_line(content)
    +  while insert_at.positive? && lines[insert_at - 1].strip.empty?
    +    insert_at -= 1
       end
    -  pattern.gsub("{version}", replacement)
    +  insertion = blocks.map { |block| block.strip }.join("\n\n")
    +  lines.insert(insert_at, "#{insertion}\n\n")
    +  ensure_trailing_newline(lines.join.gsub(/\n{3,}/, "\n\n"))
     end
    -
    # File 'lib/kettle/jem.rb', line 6077
    +      
    # File 'lib/kettle/jem.rb', line 8483
     
    -def expand_line_range_through_following_blanks(content, end_line)
    +def insert_lines_after(content, line_number, insertion)
       lines = content.to_s.lines
    -  line = end_line
    -  line += 1 while lines[line]&.strip == ""
    -  line
    +  lines.insert(line_number, insertion)
    +  lines.join
     end
    +
    @@ -26505,9 +41016,9 @@

    -

    +

    - .extract_gemspec_development_dependencies(gemspec) ⇒ Object + .insert_missing_development_gemspec_dependency_lines(content, missing_lines) ⇒ Object @@ -26519,43 +41030,19 @@

    -3014 -3015 -3016 -3017 -3018 -3019 -3020 -3021 -3022 -3023 -3024 -3025 -3026 -3027 -3028 -3029 -3030 +8307 +8308 +8309 +8310 +8311

    @@ -26563,9 +41050,9 @@

    -

    +

    - .fallback_adapter_failure_template_source(file_type, recipe, template_content, destination_content, facts) ⇒ Object + .insert_missing_gemspec_assignment_sources(content, replacements, receiver:) ⇒ Object @@ -26577,33 +41064,39 @@

    -5088 -5089 -5090 -5091 -5092 -5093 -5094 -5095 -5096 -5097 -5098 -5099 +7993 +7994 +7995 +7996 +7997 +7998 +7999 +8000 +8001 +8002 +8003 +8004 +8005 +8006 +8007

    @@ -26611,52 +41104,57 @@

    -

    - - .falsey_config?(value) ⇒ Boolean +

    - + .insert_missing_gemspec_files_assignment(content, template_content:, template_receiver:) ⇒ Object -

    -
    - - -
    -
    -
    - -

    Returns:

    -
      - -
    • - - - (Boolean) - - - -
    • -
    - -
     
     
    -6177
    -6178
    -6179
    +8477 +8478 +8479 +8480 +8481
    -
    # File 'lib/kettle/jem.rb', line 6177
    +      
    # File 'lib/kettle/jem.rb', line 8477
     
    -def explicit_zero_runtime_floor?(facts)
    -  facts.to_h.dig(:rubygems, :min_ruby).to_s.strip == "0"
    +def insert_lines_before(content, line_number, insertion)
    +  lines = content.to_s.lines
    +  lines.insert([line_number - 1, 0].max, insertion)
    +  lines.join
     end
    -
    # File 'lib/kettle/jem.rb', line 3014
    +      
    # File 'lib/kettle/jem.rb', line 8307
     
    -def extract_gemspec_development_dependencies(gemspec)
    -  if gemspec.is_a?(Hash)
    -    return Array(gemspec[:development_dependencies] || gemspec["development_dependencies"]).map do |dependency|
    -      {
    -        name: dependency.name.to_s,
    -        requirement: dependency.requirement.to_s
    -      }
    -    end.reject { |dependency| dependency.fetch(:name).empty? }.uniq { |dependency| dependency.fetch(:name) }
    -  end
    +def insert_missing_development_gemspec_dependency_lines(content, missing_lines)
    +  return content if missing_lines.empty?
     
    -  Array(gemspec&.development_dependencies).map do |dependency|
    -    {
    -      name: dependency.name.to_s,
    -      requirement: dependency.requirement.to_s
    -    }
    -  end.reject { |dependency| dependency.fetch(:name).empty? }.uniq { |dependency| dependency.fetch(:name) }
    +  insert_lines_before(content, gemspec_end_line(content), missing_lines.join)
     end
    -
    # File 'lib/kettle/jem.rb', line 5088
    +      
    # File 'lib/kettle/jem.rb', line 7993
     
    -def fallback_adapter_failure_template_source(file_type, recipe, template_content, destination_content, facts)
    -  case file_type
    -  when :gemfile
    -    finalize_gemfile_template_source(recipe, template_content, destination_content, facts: facts, template_content: template_content)
    -  when :appraisals
    -    merge_appraisals_template_policy(template_content, facts: facts)
    -  when :yaml
    -    raise ArgumentError, "failed to merge yaml template #{recipe.fetch(:target_path)}: provider adapter failure"
    -  else
    -    template_content
    +def insert_missing_gemspec_assignment_sources(content, replacements, receiver:)
    +  return content if replacements.empty?
    +
    +  present_fields = gemspec_assignment_records(content, receiver: receiver).map { |record| record.fetch(:field) }.to_set
    +  missing_sources = gemspec_preserved_assignment_fields.filter_map do |field|
    +    next if present_fields.include?(field)
    +
    +    source = replacements[field]
    +    "#{source}\n" if source
       end
    +  return content if missing_sources.empty?
    +
    +  first_dependency_line = gemspec_dependency_records(content, receiver: receiver).map { |record| record.fetch(:start_line) }.min
    +  insert_lines_before(content, first_dependency_line || gemspec_end_line(content), missing_sources.join)
     end
    +
    @@ -26664,9 +41162,9 @@

    -

    +

    - .filter_recipe_pack(pack, template_selection) ⇒ Object + .insert_missing_runtime_gemspec_dependency_lines(content, missing_lines, receiver:) ⇒ Object @@ -26678,25 +41176,25 @@

     
     
    -7219
    -7220
    -7221
    -7222
    -7223
    -7224
    -7225
    -7226
    +8298 +8299 +8300 +8301 +8302 +8303 +8304 +8305

    @@ -26704,9 +41202,9 @@

    -

    +

    - .finalize_accepted_template_source(recipe, content, destination_content, facts:, project_root: nil) ⇒ Object + .insert_yaml_scalar_after_path(content, path, key, value) ⇒ Object @@ -26718,43 +41216,43 @@

     
     
    -4268
    -4269
    -4270
    -4271
    -4272
    -4273
    -4274
    -4275
    -4276
    -4277
    -4278
    -4279
    -4280
    -4281
    -4282
    -4283
    -4284
    +8743 +8744 +8745 +8746 +8747 +8748 +8749 +8750 +8751 +8752 +8753 +8754 +8755 +8756 +8757 +8758 +8759

    @@ -26762,9 +41260,9 @@

    -

    +

    - .finalize_gemfile_template_source(recipe, content, destination_content, facts:, template_content:) ⇒ Object + .install_tasksObject @@ -26776,33 +41274,17 @@

     
     
    -4826
    -4827
    -4828
    -4829
    -4830
    -4831
    -4832
    -4833
    -4834
    -4835
    -4836
    -4837
    +2120 +2121 +2122 +2123

    @@ -26810,9 +41292,9 @@

    -

    +

    - .finalize_github_workflow_template(content, facts = nil) ⇒ Object + .integration_license_spdx(config, license) ⇒ Object @@ -26824,15 +41306,27 @@

     
     
    -4928
    -4929
    -4930
    +12591 +12592 +12593 +12594 +12595 +12596 +12597 +12598 +12599

    @@ -26840,9 +41334,9 @@

    -

    +

    - .finalize_rubocop_config(content) ⇒ Object + .json_merge_options(recipe) ⇒ Object @@ -26854,15 +41348,33 @@

     
     
    -4264
    -4265
    -4266
    +6964 +6965 +6966 +6967 +6968 +6969 +6970 +6971 +6972 +6973 +6974 +6975

    @@ -26870,9 +41382,9 @@

    -

    +

    - .finalize_template_source_content(recipe, content) ⇒ Object + .kettle_config_bootstrap_facts(project_root, env, template_selection: {}) ⇒ Object @@ -26884,19 +41396,53 @@

     
     
    -4258
    -4259
    -4260
    -4261
    -4262
    +13078 +13079 +13080 +13081 +13082 +13083 +13084 +13085 +13086 +13087 +13088 +13089 +13090 +13091 +13092 +13093 +13094 +13095 +13096 +13097 +13098 +13099

    @@ -26904,9 +41450,9 @@

    -

    +

    - .first_grapheme(text) ⇒ Object + .kettle_config_bootstrap_recipe(bootstrap) ⇒ Object @@ -26918,15 +41464,55 @@

     
     
    -7124
    -7125
    -7126
    +13101 +13102 +13103 +13104 +13105 +13106 +13107 +13108 +13109 +13110 +13111 +13112 +13113 +13114 +13115 +13116 +13117 +13118 +13119 +13120 +13121 +13122 +13123

    @@ -26934,9 +41520,9 @@

    -

    +

    - .forge_facts(config, env, derived_github_user: nil) ⇒ Object + .kettle_config_file_override_lines(path, strategy) ⇒ Object @@ -26948,29 +41534,31 @@

     
     
    -8374
    -8375
    -8376
    -8377
    -8378
    -8379
    -8380
    -8381
    -8382
    -8383
    +9038 +9039 +9040 +9041 +9042 +9043 +9044 +9045 +9046 +9047 +9048

    @@ -26978,9 +41566,9 @@

    -

    +

    - .forge_template_tokens(forge) ⇒ Object + .kettle_config_template_entries_lines(entries) ⇒ Object @@ -26992,25 +41580,33 @@

     
     
    -8389
    -8390
    -8391
    -8392
    -8393
    -8394
    -8395
    -8396
    +3603 +3604 +3605 +3606 +3607 +3608 +3609 +3610 +3611 +3612 +3613 +3614

    @@ -27018,9 +41614,9 @@

    -

    +

    - .forge_user_value(forge_config, env, key, derived_value: nil) ⇒ Object + .kettle_dev_local_gems(config) ⇒ Object @@ -27032,15 +41628,21 @@

     
     
    -8385
    -8386
    -8387
    +11026 +11027 +11028 +11029 +11030 +11031

    @@ -27048,9 +41650,9 @@

    -

    - .format_copyright_years(years) ⇒ Object + .kettle_jem_config(project_root) ⇒ Object @@ -27062,45 +41664,31 @@

    @@ -27108,9 +41696,9 @@ @@ -27138,9 +41732,9 @@

    -

    +

    - .framework_matrix_appraisal_block(entry) ⇒ Object + .kettle_jem_config_relative_path(project_root) ⇒ Object @@ -27152,29 +41746,17 @@

     
     
    -5720
    -5721
    -5722
    -5723
    -5724
    -5725
    -5726
    -5727
    -5728
    -5729
    +9747 +9748 +9749 +9750

    @@ -27182,9 +41764,9 @@

    -

    +

    - .framework_matrix_appraisal_dependency_gemfiles(facts) ⇒ Object + .known_license_template_basenamesObject @@ -27196,23 +41778,15 @@

    -5617 -5618 -5619 -5620 -5621 -5622 -5623 +13319 +13320 +13321

    @@ -27220,9 +41794,9 @@

    -

    +

    - .framework_matrix_appraisal_env_by_name(facts) ⇒ Object + .large_business_license_cell(author_email) ⇒ Object @@ -27234,23 +41808,25 @@

     
     
    -4963
    -4964
    -4965
    -4966
    -4967
    -4968
    -4969
    +12389 +12390 +12391 +12392 +12393 +12394 +12395 +12396

    @@ -27258,9 +41834,9 @@

    -

    +

    - .framework_matrix_appraisal_gemfile_path(path) ⇒ Object + .leading_space_count(line) ⇒ Object @@ -27272,15 +41848,15 @@

    -10753 -10754 -10755 +5848 +5849 +5850

    @@ -27288,9 +41864,9 @@

    -

    +

    - .framework_matrix_appraisal_gemfiles(raw) ⇒ Object + .leading_whitespace(source) ⇒ Object @@ -27302,21 +41878,17 @@

     
     
    -10746
    -10747
    -10748
    -10749
    -10750
    -10751
    +8489 +8490 +8491 +8492

    @@ -27324,9 +41896,9 @@

    -

    +

    - .framework_matrix_appraisal_name(dimension, slug) ⇒ Object + .legacy_rbs_consolidation_step(project_root, facts, entrypoint_require:) ⇒ Object @@ -27338,15 +41910,47 @@

     
     
    -10757
    -10758
    -10759
    +3712 +3713 +3714 +3715 +3716 +3717 +3718 +3719 +3720 +3721 +3722 +3723 +3724 +3725 +3726 +3727 +3728 +3729 +3730

    @@ -27354,9 +41958,9 @@

    -

    +

    - .framework_matrix_env(raw) ⇒ Object + .legacy_rbs_signature_paths(project_root, entrypoint_require) ⇒ Object @@ -27368,28 +41972,24 @@

     
     
    -10787
    -10788
    -10789
    -10790
    -10791
    -10792
    -10793
    -10794
    -10795
    -10796
    +11160 +11161 +11162 +11163 +11164 +11165 +11166 +11167

    @@ -27398,9 +41998,9 @@

    -

    +

    - .framework_matrix_replaced_appraisal_names(dimension, entry, name) ⇒ Object + .legacy_readme_top_logo_mode_options(value) ⇒ Object @@ -27412,21 +42012,35 @@

    -10730 -10731 -10732 -10733 -10734 -10735 +8691 +8692 +8693 +8694 +8695 +8696 +8697 +8698 +8699 +8700 +8701 +8702 +8703

    @@ -27434,9 +42048,9 @@

    -

    +

    - .framework_matrix_version_entry(raw) ⇒ Object + .license_badge(spdx_id, ref: :license_ref) ⇒ Object @@ -27448,59 +42062,17 @@

     
     
    -10761
    -10762
    -10763
    -10764
    -10765
    -10766
    -10767
    -10768
    -10769
    -10770
    -10771
    -10772
    -10773
    -10774
    -10775
    -10776
    -10777
    -10778
    -10779
    -10780
    -10781
    -10782
    -10783
    -10784
    -10785
    +12268 +12269 +12270 +12271

    @@ -27508,62 +42080,31 @@

    -

    - - .framework_matrix_workflow_enabled?(raw) ⇒ Boolean +

    - + .license_badge_img(spdx_id) ⇒ Object -

    -
    - - -
    -
    -
    - -

    Returns:

    -
      - -
    • - - - (Boolean) - - - -
    • -
    - -

     
     
    -9973
    -9974
    -9975
    +7556 +7557 +7558 +7559 +7560 +7561 +7562 +7563 +7564 +7565 +7566 +7567 +7568 +7569 +7570 +7571 +7572
    -
    # File 'lib/kettle/jem.rb', line 9973
    +      
    # File 'lib/kettle/jem.rb', line 7556
     
    -def falsey_config?(value)
    -  %w[false no 0].include?(value.to_s.strip.downcase)
    +def insert_missing_gemspec_files_assignment(content, template_content:, template_receiver:)
    +  return content if gemspec_assignment_records(content, receiver: template_receiver).any? { |record| record.fetch(:field) == "files" }
    +
    +  template_record = gemspec_assignment_records(template_content, receiver: template_receiver).find { |record| record.fetch(:field) == "files" }
    +  return content unless template_record
    +
    +  insertion = "#{normalize_gemspec_receiver(template_record.fetch(:source).rstrip, from: template_receiver, to: template_receiver)}\n"
    +  extra_rdoc = gemspec_assignment_records(content, receiver: template_receiver).find { |record| record.fetch(:field) == "extra_rdoc_files" }
    +  return insert_lines_before(content, extra_rdoc.fetch(:start_line), "\n#{insertion}") if extra_rdoc
    +
    +  anchor = %w[required_ruby_version licenses homepage description summary name].filter_map do |field|
    +    gemspec_assignment_records(content, receiver: template_receiver).find { |record| record.fetch(:field) == field }
    +  end.first
    +  return insert_lines_after(content, anchor.fetch(:end_line), "\n#{insertion}") if anchor
    +
    +  content
     end
    -
    # File 'lib/kettle/jem.rb', line 7219
    +      
    # File 'lib/kettle/jem.rb', line 8298
     
    -def filter_recipe_pack(pack, template_selection)
    -  patterns = recipe_filter_patterns(template_selection)
    -  return pack if patterns.empty?
    +def insert_missing_runtime_gemspec_dependency_lines(content, missing_lines, receiver:)
    +  return content if missing_lines.empty?
     
    -  pack.merge(
    -    recipes: pack.fetch(:recipes).select { |recipe| selected_template_path?(recipe.fetch(:target_path), patterns) }
    -  )
    +  lines = content.to_s.lines
    +  insertion_index = runtime_gemspec_dependency_insertion_index(lines, receiver: receiver)
    +  lines.insert(insertion_index, *missing_lines)
    +  lines.join
     end
    -
    # File 'lib/kettle/jem.rb', line 4268
    +      
    # File 'lib/kettle/jem.rb', line 8743
     
    -def finalize_accepted_template_source(recipe, content, destination_content, facts:, project_root: nil)
    -  case template_file_type(recipe)
    -  when :gemfile
    -    finalize_gemfile_template_source(recipe, content, destination_content, facts: facts, template_content: content)
    -  when :appraisals
    -    merge_appraisals_template_policy(content, facts: facts)
    -  when :gemspec
    -    package_name = facts.dig(:package, :name).to_s if facts
    -    receiver = gemspec_block_param(content) || "spec"
    -    pruned = remove_gemspec_self_dependency_lines(content, package_name, receiver: receiver)
    -    rewrite_gemspec_version_loader(pruned, facts: facts)
    -  when :toml
    -    preserve_mise_project_settings(recipe, content, destination_content, project_root: project_root)
    -  else
    -    content
    +def insert_yaml_scalar_after_path(content, path, key, value)
    +  lines = content.to_s.lines
    +  scalar_entry = yaml_scalar_path_entries(content).find { |candidate| candidate.fetch(:path) == path }
    +  mapping_entry = yaml_mapping_path_entries(content).find { |candidate| candidate.fetch(:path) == path }
    +  entry = scalar_entry || mapping_entry
    +  return content unless entry
    +
    +  line_index = entry.key?(:line) ? entry.fetch(:line) : entry.fetch(:start_line)
    +  indent = lines[line_index].to_s[/\A\s*/].to_s
    +  scalar_path = path[0...-1] + [key]
    +  if mapping_entry && !scalar_entry
    +    indent = "#{indent}  "
    +    scalar_path = path + [key]
       end
    +  lines.insert(line_index + 1, "#{indent}#{key}: #{yaml_config_scalar_literal(value, path: scalar_path)}\n")
    +  lines.join
     end
    -
    # File 'lib/kettle/jem.rb', line 4826
    -
    -def finalize_gemfile_template_source(recipe, content, destination_content, facts:, template_content:)
    -  output = merge_gemfile_template_policy(
    -    content,
    -    facts: facts,
    -    template_content: template_content,
    -    preserve_self_word_entries: local_gemfile_template_recipe?(recipe)
    -  )
    -  return output if recipe.dig(:template_preference, :strategy).to_s == "accept_template"
    -  return output unless local_gemfile_template_recipe?(recipe)
    +      
    # File 'lib/kettle/jem.rb', line 2120
     
    -  merge_local_gem_overrides(output, destination_content, facts: facts, template_content: template_content)
    +def install_tasks
    +  require "rake"
    +  load(File.expand_path("jem/tasks.rb", __dir__))
     end
    -
    # File 'lib/kettle/jem.rb', line 4928
    +      
    # File 'lib/kettle/jem.rb', line 12591
     
    -def finalize_github_workflow_template(content, facts = nil)
    -  inject_framework_matrix_workflow_env(update_github_actions_pins(content), facts)
    +def integration_license_spdx(config, license)
    +  configured = if license.is_a?(Hash)
    +    license[:spdx] || license["spdx"]
    +  else
    +    []
    +  end
    +  configured = config["resolved_licenses"] if Array(configured).empty? && config.is_a?(Hash)
    +  Array(configured).map(&:to_s)
     end
    -
    # File 'lib/kettle/jem.rb', line 4264
    +      
    # File 'lib/kettle/jem.rb', line 6964
     
    -def finalize_rubocop_config(content)
    -  remove_yaml_scalar_path(content, %w[AllCops TargetRubyVersion])
    +def json_merge_options(recipe)
    +  options = {
    +    preference: (recipe.dig(:template_preference, :preference) || "destination").to_sym,
    +    add_template_only_nodes: true,
    +    freeze_token: recipe.dig(:template_preference, :freeze_token) || "kettle-jem"
    +  }
    +  if !recipe.dig(:template_preference, :add_template_only_nodes).nil?
    +    configured = DecisionPolicy.value_to_boolean(recipe.dig(:template_preference, :add_template_only_nodes))
    +    options[:add_template_only_nodes] = configured unless configured.nil?
    +  end
    +  options
     end
    -
    # File 'lib/kettle/jem.rb', line 4258
    +      
    # File 'lib/kettle/jem.rb', line 13078
     
    -def finalize_template_source_content(recipe, content)
    -  return finalize_rubocop_config(content) if recipe.fetch(:target_path).to_s == ".rubocop.yml"
    +def kettle_config_bootstrap_facts(project_root, env, template_selection: {})
    +  return if File.exist?(File.join(project_root, KETTLE_CONFIG_PATH))
    +  return if File.exist?(File.join(project_root, LEGACY_KETTLE_CONFIG_PATH))
     
    -  content
    +  selected_source = preferred_template_source(PACKAGED_TEMPLATE_ROOT, KETTLE_CONFIG_PATH)
    +  return unless selected_source
    +
    +  {
    +    template_preference: {
    +      target_path: KETTLE_CONFIG_PATH,
    +      configured_source: KETTLE_CONFIG_PATH,
    +      selected_source: selected_source,
    +      source_relative_path: selected_source,
    +      source_root: "packaged",
    +      source_root_path: PACKAGED_TEMPLATE_ROOT,
    +      selection_reason: template_source_selection_reason(KETTLE_CONFIG_PATH, selected_source),
    +      apply: true
    +    },
    +    min_divergence_threshold: preferred_template_token_value(nil, nil, env, "KJ_MIN_DIVERGENCE_THRESHOLD").to_s,
    +    template_profile: template_selection[:template_profile].to_s
    +  }.compact
     end
    -
    # File 'lib/kettle/jem.rb', line 7124
    +      
    # File 'lib/kettle/jem.rb', line 13101
     
    -def first_grapheme(text)
    -  text.to_s.strip[/\A\X/u].to_s
    +def kettle_config_bootstrap_recipe(bootstrap)
    +  recipe = recipe_entry(
    +    "kettle_config_bootstrap",
    +    KETTLE_CONFIG_PATH,
    +    "yaml",
    +    "supplied_kettle_config_bootstrap",
    +    facts: %w[kettle_config_bootstrap]
    +  )
    +  recipe[:template_preference] = bootstrap.fetch(:template_preference)
    +  recipe[:template_tokens] = {
    +    "KJ|MIN_DIVERGENCE_THRESHOLD" => bootstrap.fetch(:min_divergence_threshold).to_s,
    +    "KJ|MIN_RUBY" => bootstrap[:min_ruby].to_s,
    +    "KJ|MIN_TEST_RUBY" => bootstrap[:test_min_ruby].to_s,
    +    "KJ|YARD_HOST" => bootstrap[:yard_host].to_s,
    +    "KJ|HOMEPAGE_URI" => bootstrap[:homepage_uri].to_s
    +  }
    +  recipe[:bootstrap_licenses] = Array(bootstrap[:licenses]).map(&:to_s).reject(&:empty?)
    +  recipe[:bootstrap_template_profile] = bootstrap[:template_profile].to_s unless bootstrap[:template_profile].to_s.empty?
    +  recipe[:bootstrap_gemspec_path] = bootstrap[:gemspec_path].to_s unless bootstrap[:gemspec_path].to_s.empty?
    +  recipe[:bootstrap_project_emoji] = bootstrap[:project_emoji].to_s unless bootstrap[:project_emoji].to_s.empty?
    +  recipe[:bootstrap_shim] = bootstrap[:shim] if bootstrap[:shim].is_a?(Hash)
    +  recipe
     end
    -
    # File 'lib/kettle/jem.rb', line 8374
    +      
    # File 'lib/kettle/jem.rb', line 9038
     
    -def forge_facts(config, env, derived_github_user: nil)
    -  token_config = token_config_values(config)
    -  forge_config = token_config["forge"].is_a?(Hash) ? token_config["forge"] : {}
    -  compact_hash(
    -    gh_user: forge_user_value(forge_config, env, :gh_user, derived_value: derived_github_user).to_s,
    -    gl_user: forge_user_value(forge_config, env, :gl_user).to_s,
    -    cb_user: forge_user_value(forge_config, env, :cb_user).to_s,
    -    sh_user: forge_user_value(forge_config, env, :sh_user).to_s
    -  )
    +def kettle_config_file_override_lines(path, strategy)
    +  parts = path.to_s.split("/")
    +  parts.each_with_index.flat_map do |part, index|
    +    indent = "  " * (index + 1)
    +    if index == parts.length - 1
    +      ["#{indent}#{part}:", "#{"  " * (index + 2)}strategy: #{strategy}"]
    +    else
    +      ["#{indent}#{part}:"]
    +    end
    +  end
     end
    -
    # File 'lib/kettle/jem.rb', line 8389
    +      
    # File 'lib/kettle/jem.rb', line 3603
     
    -def forge_template_tokens(forge)
    -  {
    -    "KJ|GH:USER" => forge[:gh_user].to_s,
    -    "KJ|GL:USER" => forge[:gl_user].to_s,
    -    "KJ|CB:USER" => forge[:cb_user].to_s,
    -    "KJ|SH:USER" => forge[:sh_user].to_s
    -  }
    +def kettle_config_template_entries_lines(entries)
    +  ["  entries:", *entries.flat_map do |entry|
    +    if entry.is_a?(Hash)
    +      [
    +        "    - source: #{entry.fetch("source")}",
    +        "      target: #{entry.fetch("target")}"
    +      ]
    +    else
    +      ["    - #{entry}"]
    +    end
    +  end]
     end
    -
    # File 'lib/kettle/jem.rb', line 8385
    +      
    # File 'lib/kettle/jem.rb', line 11026
     
    -def forge_user_value(forge_config, env, key, derived_value: nil)
    -  preferred_template_token_value(derived_value, forge_config[key.to_s], env, FORGE_USER_ENV_KEYS.fetch(key))
    +def kettle_dev_local_gems(config)
    +  gems = %w[kettle-dev kettle-test kettle-soup-cover]
    +  plugin_names = PluginLoader.normalize_plugin_names(plugin_names_from_config(config))
    +  gems.concat(plugin_names.select { |plugin_name| plugin_name.start_with?("kettle-") })
    +  gems.uniq.join(" ")
     end
    -
    # File 'lib/kettle/jem.rb', line 8355
    +      
    # File 'lib/kettle/jem.rb', line 9712
     
    -def format_copyright_years(years)
    -  sorted = Array(years).map(&:to_i).reject(&:zero?).sort.uniq
    -  return Time.now.utc.year.to_s if sorted.empty?
    -  return sorted.first.to_s if sorted.one?
    +def kettle_jem_config(project_root)
    +  path = kettle_jem_config_path(project_root)
    +  return {} unless File.exist?(path)
     
    -  runs = []
    -  run = [sorted.first]
    -  sorted[1..].to_a.each do |year|
    -    if year == run.last + 1
    -      run << year
    -    else
    -      runs << run
    -      run = [year]
    -    end
    -  end
    -  runs << run
    -  runs.map { |span| span.one? ? span.first.to_s : "#{span.first}-#{span.last}" }.join(", ")
    +  config = YAML.safe_load_file(path, permitted_classes: [], aliases: false) || {}
    +  config = normalize_kettle_jem_config(config)
    +  validate_kettle_jem_config!(config)
    +  config
    +rescue Psych::SyntaxError => error
    +  raise Error, "Invalid #{kettle_jem_config_relative_path(project_root)}: #{error.message}"
     end
    -
    # File 'lib/kettle/jem.rb', line 10874
    +      
    # File 'lib/kettle/jem.rb', line 9740
     
    -def framework_gemfile_path(gemfile)
    -  gemfile.include?("/") ? gemfile : "gemfiles/#{gemfile}"
    +def kettle_jem_config_path(project_root)
    +  canonical = File.join(project_root, KETTLE_CONFIG_PATH)
    +  return canonical if File.exist?(canonical)
    +
    +  File.join(project_root, LEGACY_KETTLE_CONFIG_PATH)
     end
    -
    # File 'lib/kettle/jem.rb', line 5720
    +      
    # File 'lib/kettle/jem.rb', line 9747
     
    -def framework_matrix_appraisal_block(entry)
    -  lines = [
    -    %(appraise "#{entry.fetch(:name)}" do)
    -  ]
    -  entry.fetch(:eval_gemfiles).each do |gemfile|
    -    lines << %(  eval_gemfile "#{gemfile}")
    -  end
    -  lines << "end"
    -  lines.join("\n")
    +def kettle_jem_config_relative_path(project_root)
    +  path = kettle_jem_config_path(project_root)
    +  File.expand_path(path).delete_prefix("#{File.expand_path(project_root.to_s)}/")
     end
    -
    # File 'lib/kettle/jem.rb', line 5617
    +      
    # File 'lib/kettle/jem.rb', line 13319
     
    -def framework_matrix_appraisal_dependency_gemfiles(facts)
    -  framework_matrix = facts.to_h.dig(:ci, :framework_matrix).to_h
    -  [
    -    *framework_matrix.fetch(:appraisals, []).flat_map { |entry| entry.fetch(:eval_gemfiles, []) },
    -    *framework_matrix.fetch(:gemfiles, []).map { |entry| entry.fetch(:path).to_s.delete_prefix("gemfiles/") }
    -  ].map(&:to_s).to_set
    +def known_license_template_basenames
    +  KNOWN_LICENSE_TEMPLATE_BASENAMES
     end
    -
    # File 'lib/kettle/jem.rb', line 4963
    +      
    # File 'lib/kettle/jem.rb', line 12389
     
    -def framework_matrix_appraisal_env_by_name(facts)
    -  entries = facts.to_h.dig(:ci, :framework_matrix, :appraisals).to_a
    -  entries.to_h do |entry|
    -    env = {"KJ_FRAMEWORK_MATRIX_GEM" => entry.fetch(:gem).to_s}.merge(entry.fetch(:env, {}).transform_keys(&:to_s))
    -    [entry.fetch(:name).to_s, env.reject { |_key, value| value.to_s.empty? }]
    -  end.reject { |_name, env| env.empty? }
    +def large_business_license_cell(author_email)
    +  cell = license_link("LicenseRef-Big-Time-Public-License")
    +  if author_email.to_s.empty?
    +    "#{cell} or contact us for a custom license"
    +  else
    +    "#{cell} or [contact us](mailto:#{author_email}) for a custom license"
    +  end
     end
    -
    # File 'lib/kettle/jem.rb', line 10753
    +      
    # File 'lib/kettle/jem.rb', line 5848
     
    -def framework_matrix_appraisal_gemfile_path(path)
    -  path.to_s.sub(%r{\Agemfiles/}, "")
    +def leading_space_count(line)
    +  line.to_s.each_char.take_while { |char| char == " " }.count
     end
    -
    # File 'lib/kettle/jem.rb', line 10746
    +      
    # File 'lib/kettle/jem.rb', line 8489
     
    -def framework_matrix_appraisal_gemfiles(raw)
    -  Array(raw["appraisal_gemfiles"] || raw["appraisal_eval_gemfiles"]).filter_map do |path|
    -    normalized = framework_matrix_appraisal_gemfile_path(path.to_s.strip)
    -    normalized unless normalized.empty?
    -  end
    +def leading_whitespace(source)
    +  text = source.to_s
    +  text[0...(text.length - text.lstrip.length)]
     end
    -
    # File 'lib/kettle/jem.rb', line 10757
    +      
    # File 'lib/kettle/jem.rb', line 3712
     
    -def framework_matrix_appraisal_name(dimension, slug)
    -  [dimension, slug].join("-").downcase.gsub(/[^a-z0-9]+/, "-").gsub(/\A-|-+\z/, "")
    +def legacy_rbs_consolidation_step(project_root, facts, entrypoint_require:)
    +  legacy_signature_paths = legacy_rbs_signature_paths(project_root, entrypoint_require)
    +  return if legacy_signature_paths.empty?
    +
    +  namespace = facts.dig(:rubygems, :namespace).to_s
    +  signature_path = File.join("sig", "#{entrypoint_require}.rbs")
    +  changes = write_consolidated_version_signature(
    +    project_root,
    +    signature_path,
    +    legacy_signature_paths,
    +    namespace: namespace
    +  ).compact
    +  {
    +    name: "legacy_rbs_consolidation",
    +    status: changes.empty? ? "already_current" : "applied",
    +    changed_files: changes,
    +    signature_path: signature_path
    +  }
     end
    -
    # File 'lib/kettle/jem.rb', line 10787
    -
    -def framework_matrix_env(raw)
    -  return {} unless raw.is_a?(Hash)
    +      
    # File 'lib/kettle/jem.rb', line 11160
     
    -  raw.each_with_object({}) do |(key, value), result|
    -    name = key.to_s.strip
    -    next if name.empty?
    +def legacy_rbs_signature_paths(project_root, entrypoint_require)
    +  legacy_root = File.join(project_root, "sig", entrypoint_require.to_s)
    +  return [] unless Dir.exist?(legacy_root)
     
    -    result[name] = value.to_s
    +  Dir.glob(File.join(legacy_root, "**", "*.rbs")).sort.map do |path|
    +    path.delete_prefix("#{project_root}/")
       end
     end
    -
    # File 'lib/kettle/jem.rb', line 10730
    +      
    # File 'lib/kettle/jem.rb', line 8691
     
    -def framework_matrix_replaced_appraisal_names(dimension, entry, name)
    -  default_name = framework_matrix_appraisal_name(dimension, entry.fetch(:slug))
    -  return [] if default_name == name
    +def legacy_readme_top_logo_mode_options(value)
    +  raw = value.to_s.strip
    +  return [] if raw.empty?
     
    -  [default_name]
    +  normalized = raw.downcase.tr("-", "_").gsub(/\s*,\s*/, ",").tr(" ", "_")
    +  mapped = README_TOP_LOGO_LEGACY_MODE_MAP[normalized]
    +  return mapped if mapped
    +
    +  normalized.split(",").filter_map do |option|
    +    option = option.strip
    +    README_TOP_LOGO_OPTIONS.include?(option) ? option : nil
    +  end
     end
    -
    # File 'lib/kettle/jem.rb', line 10761
    -
    -def framework_matrix_version_entry(raw)
    -  if raw.is_a?(Hash)
    -    label = raw.fetch("label", raw["version"]).to_s.strip
    -    slug = raw.fetch("slug", label).to_s.strip
    -    requirement = raw.fetch("requirement", default_framework_matrix_requirement(label)).to_s.strip
    -    appraisal_name = (raw["appraisal"] || raw["appraisal_name"] || raw["standard_appraisal"]).to_s.strip
    -    env = framework_matrix_env(raw["env"])
    -  else
    -    label = raw.to_s.strip
    -    slug = label
    -    requirement = default_framework_matrix_requirement(label)
    -    appraisal_name = ""
    -    env = {}
    -  end
    -  return if label.empty? || slug.empty? || requirement.empty?
    +      
    # File 'lib/kettle/jem.rb', line 12268
     
    -  entry = {
    -    label: label,
    -    slug: slug,
    -    requirement: requirement
    -  }
    -  entry[:appraisal_name] = appraisal_name unless appraisal_name.empty?
    -  entry[:env] = env unless env.empty?
    -  entry
    +def license_badge(spdx_id, ref: :license_ref)
    +  base = spdx_basename(spdx_id)
    +  "[![License: #{base}][#{paperclip_ref(:license_img)}]][#{paperclip_ref(ref)}]"
     end
    +
    @@ -27571,9 +42112,9 @@

    -

    +

    - .freeze_marker_blocks(content, freeze_token: nil) ⇒ Object + .license_badge_ref(spdx_id) ⇒ Object @@ -27585,49 +42126,17 @@

     
     
    -6322
    -6323
    -6324
    -6325
    -6326
    -6327
    -6328
    -6329
    -6330
    -6331
    -6332
    -6333
    -6334
    -6335
    -6336
    -6337
    -6338
    -6339
    -6340
    -6341
    +12273 +12274 +12275 +12276 -

    @@ -27635,9 +42144,9 @@

    -

    +

    - .funding_platform_token_facts(config, env) ⇒ Object + .license_compat_badge(category) ⇒ Object @@ -27649,35 +42158,17 @@

     
     
    -8398
    -8399
    -8400
    -8401
    -8402
    -8403
    -8404
    -8405
    -8406
    -8407
    -8408
    -8409
    -8410
    +12292 +12293 +12294 +12295

    @@ -27685,9 +42176,9 @@

    -

    +

    - .funding_platform_token_value(funding_config, env, key) ⇒ Object + .license_compat_category(licenses) ⇒ Object @@ -27699,15 +42190,25 @@

     
     
    -8412
    -8413
    -8414
    +12283 +12284 +12285 +12286 +12287 +12288 +12289 +12290

    @@ -27715,9 +42216,9 @@

    -

    +

    - .funding_template_tokens(funding) ⇒ Object + .license_compat_img(category) ⇒ Object @@ -27729,33 +42230,21 @@

     
     
    -8416
    -8417
    -8418
    -8419
    -8420
    -8421
    -8422
    -8423
    -8424
    -8425
    -8426
    -8427
    +12345 +12346 +12347 +12348 +12349 +12350

    @@ -27763,9 +42252,9 @@

    -

    +

    - .funding_urls(project_root, package_name, funding_uri: nil, opencollective_disabled: false, open_collective_org: nil) ⇒ Object + .license_compat_ref(category) ⇒ Object @@ -27777,27 +42266,15 @@

     
     
    -7419
    -7420
    -7421
    -7422
    -7423
    -7424
    -7425
    -7426
    -7427
    +12341 +12342 +12343

    @@ -27805,9 +42282,9 @@

    -

    +

    - .gem_major_token(version) ⇒ Object + .license_contact_line(author_email, context:) ⇒ Object @@ -27819,19 +42296,31 @@

     
     
    -8140
    -8141
    -8142
    -8143
    -8144
    +12236 +12237 +12238 +12239 +12240 +12241 +12242 +12243 +12244 +12245 +12246

    @@ -27839,52 +42328,31 @@

    -

    - - .gemfile_comment_line?(line) ⇒ Boolean +

    -
    - - -
    -
    -
    -

    Returns:

    -
      - -
    • - - - (Boolean) - - - -
    • - -
    - -

     
     
    -10737
    -10738
    -10739
    -10740
    -10741
    -10742
    -10743
    -10744
    +12278 +12279 +12280 +12281
    -
    # File 'lib/kettle/jem.rb', line 10737
    -
    -def framework_matrix_workflow_enabled?(raw)
    -  configured = raw["workflow"]
    -  configured = raw["generate_workflow"] if configured.nil?
    -  configured = raw["ci"] if configured.nil?
    -  return true if configured.nil?
    +      
    # File 'lib/kettle/jem.rb', line 12278
     
    -  DecisionPolicy.value_to_boolean(configured) != false
    +def license_badge_img(spdx_id)
    +  base = spdx_basename(spdx_id).gsub("-", "--").gsub("_", "__").tr(" ", "_")
    +  "https://img.shields.io/badge/License-#{base}-259D6C.svg"
     end
    -
    # File 'lib/kettle/jem.rb', line 6322
    -
    -def freeze_marker_blocks(content, freeze_token: nil)
    -  marker = freeze_token.to_s.empty? ? "kettle-jem" : freeze_token.to_s
    -  lines = content.to_s.lines
    -  blocks = []
    -  index = 0
    -  while index < lines.length
    -    unless lines[index].include?("# #{marker}:freeze")
    -      index += 1
    -      next
    -    end
    -
    -    start_index = index
    -    while index < lines.length
    -      index += 1
    -      break if lines[index - 1].include?("# #{marker}:unfreeze")
    -    end
    -    blocks << lines[start_index...index]
    -  end
    -  blocks
    +    
    +
    # File 'lib/kettle/jem.rb', line 12273
    +
    +def license_badge_ref(spdx_id)
    +  base = spdx_basename(spdx_id)
    +  base.include?(" OR ") ? "LICENSE.md" : "#{base}.md"
     end
    -
    # File 'lib/kettle/jem.rb', line 8398
    +      
    # File 'lib/kettle/jem.rb', line 12292
     
    -def funding_platform_token_facts(config, env)
    -  token_config = token_config_values(config)
    -  funding_config = token_config["funding"].is_a?(Hash) ? token_config["funding"] : {}
    -  compact_hash(
    -    patreon: funding_platform_token_value(funding_config, env, :patreon).to_s,
    -    kofi: funding_platform_token_value(funding_config, env, :kofi).to_s,
    -    paypal: funding_platform_token_value(funding_config, env, :paypal).to_s,
    -    buymeacoffee: funding_platform_token_value(funding_config, env, :buymeacoffee).to_s,
    -    polar: funding_platform_token_value(funding_config, env, :polar).to_s,
    -    liberapay: funding_platform_token_value(funding_config, env, :liberapay).to_s,
    -    issuehunt: funding_platform_token_value(funding_config, env, :issuehunt).to_s
    -  )
    +def license_compat_badge(category)
    +  data = APACHE_LICENSE_COMPAT_BADGE_DATA.fetch(category)
    +  "[![#{data.fetch(:alt)}][#{paperclip_ref(:license_compat_img)}]][#{paperclip_ref(:license_compat)}]"
     end
    -
    # File 'lib/kettle/jem.rb', line 8412
    +      
    # File 'lib/kettle/jem.rb', line 12283
     
    -def funding_platform_token_value(funding_config, env, key)
    -  preferred_template_token_value(nil, funding_config[key.to_s], env, FUNDING_TOKEN_ENV_KEYS.fetch(key))
    +def license_compat_category(licenses)
    +  categories = Array(licenses).filter_map { |license| APACHE_LICENSE_COMPAT_CATEGORIES[license.to_s] }.uniq
    +  return :a if categories.include?(:a)
    +  return :b if categories.include?(:b)
    +  return :x if categories.any? && categories.all?(:x)
    +
    +  :unknown
     end
    -
    # File 'lib/kettle/jem.rb', line 8416
    +      
    # File 'lib/kettle/jem.rb', line 12345
     
    -def funding_template_tokens(funding)
    -  platform_tokens = funding.fetch(:platform_tokens, {})
    -  {
    -    "KJ|FUNDING:PATREON" => platform_tokens[:patreon].to_s,
    -    "KJ|FUNDING:KOFI" => platform_tokens[:kofi].to_s,
    -    "KJ|FUNDING:PAYPAL" => platform_tokens[:paypal].to_s,
    -    "KJ|FUNDING:BUYMEACOFFEE" => platform_tokens[:buymeacoffee].to_s,
    -    "KJ|FUNDING:POLAR" => platform_tokens[:polar].to_s,
    -    "KJ|FUNDING:LIBERAPAY" => platform_tokens[:liberapay].to_s,
    -    "KJ|FUNDING:ISSUEHUNT" => platform_tokens[:issuehunt].to_s
    -  }
    +def license_compat_img(category)
    +  data = APACHE_LICENSE_COMPAT_BADGE_DATA.fetch(category)
    +  normalize_generated_image_url(
    +    "https://img.shields.io/badge/#{data.fetch(:label)}-#{data.fetch(:message)}-#{data.fetch(:color)}.svg?style=flat&logo=Apache"
    +  )
     end
    -
    # File 'lib/kettle/jem.rb', line 7419
    -
    -def funding_urls(project_root, package_name, funding_uri: nil, opencollective_disabled: false, open_collective_org: nil)
    -  urls = [funding_uri]
    -  path = File.join(project_root, ".github", "FUNDING.yml")
    -  urls.concat(github_funding_urls(path, opencollective_disabled: opencollective_disabled)) if File.exist?(path)
    -  urls << github_funding_platform_urls("open_collective", [open_collective_org]).first unless opencollective_disabled
    -  urls << github_funding_platform_urls("tidelift", ["rubygems/#{package_name}"]).first
    +      
    # File 'lib/kettle/jem.rb', line 12341
     
    -  urls.compact.uniq.sort
    +def license_compat_ref(category)
    +  APACHE_LICENSE_COMPAT_BADGE_DATA.fetch(category).fetch(:ref)
     end
    -
    # File 'lib/kettle/jem.rb', line 8140
    +      
    # File 'lib/kettle/jem.rb', line 12236
     
    -def gem_major_token(version)
    -  Gem::Version.new(version.to_s).segments.first.to_s
    -rescue ArgumentError
    -  "0"
    +def license_contact_line(author_email, context:)
    +  if author_email.to_s.empty?
    +    return "If none of the above licenses fit your use case, please contact the project maintainer to discuss a custom commercial license." if context == :license_md
    +
    +    "If none of the available licenses suit your use case, please contact the project maintainer to discuss a custom commercial license."
    +  elsif context == :license_md
    +    "If none of the above licenses fit your use case, please [contact us](mailto:#{author_email}) to discuss a custom commercial license."
    +  else
    +    "If none of the available licenses suit your use case, please [contact us](mailto:#{author_email}) to discuss a custom commercial license."
    +  end
     end
    +
    @@ -27892,9 +42360,9 @@

    -

    +

    - .gemfile_declares_gem?(content, gem_name) ⇒ Boolean + .license_eye_compatible_licenses?(licenses) ⇒ Boolean @@ -27929,37 +42397,15 @@

     
     
    -3294
    -3295
    -3296
    -3297
    -3298
    -3299
    -3300
    -3301
    -3302
    -3303
    -3304
    -3305
    -3306
    -3307
    +12601 +12602 +12603

    @@ -27967,9 +42413,9 @@

    -

    +

    - .gemfile_dependency_insertion_line(content) ⇒ Object + .license_eye_dependency_license_entry(entry) ⇒ Object @@ -27981,27 +42427,45 @@

     
     
    -5207
    -5208
    -5209
    -5210
    -5211
    -5212
    -5213
    -5214
    -5215
    +12322 +12323 +12324 +12325 +12326 +12327 +12328 +12329 +12330 +12331 +12332 +12333 +12334 +12335 +12336 +12337 +12338 +12339

    @@ -28009,9 +42473,9 @@

    -

    +

    - .gemfile_dependency_names(content) ⇒ Object + .license_eye_dependency_licenses(config) ⇒ Object @@ -28023,15 +42487,25 @@

     
     
    -4129
    -4130
    -4131
    +12313 +12314 +12315 +12316 +12317 +12318 +12319 +12320

    @@ -28039,66 +42513,59 @@

    -

    +

    - .gemfile_dependency_statement?(node) ⇒ Boolean + .license_eye_flags(licenses) ⇒ Object -

    -
    - +

     
     
    -5428
    -5429
    -5430
    +12179 +12180 +12181 +12182
    -
    # File 'lib/kettle/jem.rb', line 5428
    +      
    # File 'lib/kettle/jem.rb', line 12179
     
    -def gemfile_comment_line?(line)
    -  line.to_s.lstrip.start_with?("#")
    +def license_copyright_notice(copyright_lines, copyright_prefix, author)
    +  lines = copyright_notice_lines(copyright_lines, copyright_prefix, author).map { |line| "- #{line}" }
    +  "## Copyright Notice\n\n#{lines.join("\n")}"
     end
    -
    # File 'lib/kettle/jem.rb', line 3294
    -
    -def gemfile_declares_gem?(content, gem_name)
    -  ruby_call_records(content, nil).any? do |call|
    -    next false unless call.receiver.nil?
    +      
    # File 'lib/kettle/jem.rb', line 12601
     
    -    case call.name
    -    when :gem
    -      ruby_string_argument(call) == gem_name.to_s
    -    when :gemspec
    -      gemspec_path_declares_gem?(ruby_keyword_string_argument(call, :path), gem_name)
    -    else
    -      false
    -    end
    -  end
    +def license_eye_compatible_licenses?(licenses)
    +  Array(licenses).map(&:to_s).any? { |license_id| LICENSE_EYE_COMPATIBILITY_LICENSES.include?(license_id) }
     end
    -
    # File 'lib/kettle/jem.rb', line 5207
    +      
    # File 'lib/kettle/jem.rb', line 12322
     
    -def gemfile_dependency_insertion_line(content)
    -  body = prism_parse_success(content)&.value&.statements&.body || []
    -  node = body.find do |statement|
    -    gemfile_dependency_statement?(statement)
    +def license_eye_dependency_license_entry(entry)
    +  data = if entry.is_a?(Hash)
    +    entry
    +  else
    +    {}
       end
    -  return content.to_s.lines.length unless node
    +  name = data["name"] || data[:name]
    +  license = data["license"] || data[:license]
    +  version = data["version"] || data[:version]
    +  return if name.to_s.strip.empty? || license.to_s.strip.empty?
     
    -  node.location.start_line - 1
    +  lines = [
    +    "    - name: #{JSON.generate(name.to_s.strip)}",
    +    "      license: #{JSON.generate(license.to_s.strip)}"
    +  ]
    +  lines.insert(1, "      version: #{JSON.generate(version.to_s.strip)}") unless version.to_s.strip.empty?
    +  lines
     end
    -
    # File 'lib/kettle/jem.rb', line 4129
    +      
    # File 'lib/kettle/jem.rb', line 12313
     
    -def gemfile_dependency_names(content)
    -  gemfile_gem_call_records(content).map { |record| record.fetch(:name) }
    +def license_eye_dependency_licenses(config)
    +  entries = Array(config.dig("license_eye", "dependency_licenses")).filter_map do |entry|
    +    license_eye_dependency_license_entry(entry)
    +  end
    +  return "" if entries.empty?
    +
    +  ["  licenses:", *entries].join("\n")
     end
    + + + + +
    +
     
     
    -  
    +12309
    +12310
    +12311
    +
    +
    # File 'lib/kettle/jem.rb', line 12309
    +
    +def license_eye_flags(licenses)
    +  (license_eye_mode(licenses) == "check") ? "--weak-compatible" : ""
    +end
    +
    -
    + +
    +

    -

    Returns:

    -
      + .license_eye_mode(licenses) ⇒ Object -
    • - - - (Boolean) - - - -
    • + -
    -

    + +
    @@ -28106,9 +42573,9 @@

    -

    +

    - .gemfile_eval_bucket_entries(content) ⇒ Object + .license_eye_primary_spdx(licenses, fallback) ⇒ Object @@ -28120,45 +42587,15 @@

     
     
    -5539
    -5540
    -5541
    -5542
    -5543
    -5544
    -5545
    -5546
    -5547
    -5548
    -5549
    -5550
    -5551
    -5552
    -5553
    -5554
    -5555
    -5556
    +12301 +12302 +12303

    @@ -28166,9 +42603,9 @@

    -

    +

    - .gemfile_gem_call_records(content) ⇒ Object + .license_eye_workflow_badge(licenses, config = {}) ⇒ Object @@ -28180,33 +42617,15 @@

     
     
    -5325
    -5326
    -5327
    -5328
    -5329
    -5330
    -5331
    -5332
    -5333
    -5334
    -5335
    -5336
    +12297 +12298 +12299

    @@ -28214,9 +42633,9 @@

    -

    +

    - .gemfile_paragraphs(content) ⇒ Object + .license_facts(config, gemspec_licenses, author: {}, author_email: nil, copyright: {}) ⇒ Object @@ -28228,15 +42647,59 @@

     
     
    -5188
    -5189
    -5190
    +12119 +12120 +12121 +12122 +12123 +12124 +12125 +12126 +12127 +12128 +12129 +12130 +12131 +12132 +12133 +12134 +12135 +12136 +12137 +12138 +12139 +12140 +12141 +12142 +12143

    @@ -28244,9 +42707,9 @@

    -

    +

     
     
    -5192
    -5193
    -5194
    +12263 +12264 +12265 +12266

    @@ -28274,9 +42739,9 @@

    -

    +

    - .gemfile_policy_operations(template_content, original, final, request) ⇒ Object + .license_md_content(licenses, author_email: nil) ⇒ Object @@ -28288,33 +42753,37 @@

     
     
    -4028
    -4029
    -4030
    -4031
    -4032
    -4033
    -4034
    -4035
    -4036
    -4037
    -4038
    -4039
    +12204 +12205 +12206 +12207 +12208 +12209 +12210 +12211 +12212 +12213 +12214 +12215 +12216 +12217

    @@ -28322,9 +42791,9 @@

    -

    +

    - .gemspec_assignment_end_line(call) ⇒ Object + .license_template_tokens(license) ⇒ Object @@ -28336,21 +42805,47 @@

     
     
    -6513
    -6514
    -6515
    -6516
    -6517
    -6518
    +12154 +12155 +12156 +12157 +12158 +12159 +12160 +12161 +12162 +12163 +12164 +12165 +12166 +12167 +12168 +12169 +12170 +12171 +12172

    @@ -28358,9 +42853,9 @@

    -

    +

    - .gemspec_assignment_field(call) ⇒ Object + .license_use_case_guide_table(licenses, author_email: nil) ⇒ Object @@ -28372,23 +42867,33 @@

     
     
    -6520
    -6521
    -6522
    -6523
    -6524
    -6525
    -6526
    +12360 +12361 +12362 +12363 +12364 +12365 +12366 +12367 +12368 +12369 +12370 +12371

    @@ -28396,9 +42901,9 @@

    -

    +

    - .gemspec_assignment_records(source, receiver: nil) ⇒ Object + .license_use_case_rows(licenses, author_email: nil) ⇒ Object @@ -28410,45 +42915,39 @@

     
     
    -6494
    -6495
    -6496
    -6497
    -6498
    -6499
    -6500
    -6501
    -6502
    -6503
    -6504
    -6505
    -6506
    -6507
    -6508
    -6509
    -6510
    -6511
    +12373 +12374 +12375 +12376 +12377 +12378 +12379 +12380 +12381 +12382 +12383 +12384 +12385 +12386 +12387

    @@ -28456,9 +42955,9 @@

    -

    +

    - .gemspec_assignment_value(call) ⇒ Object + .load_project_gemspec(gemspec_path) ⇒ Object @@ -28470,31 +42969,19 @@

     
     
    -6528
    -6529
    -6530
    -6531
    -6532
    -6533
    -6534
    -6535
    -6536
    -6537
    -6538
    +10998 +10999 +11000 +11001 +11002

    @@ -28502,33 +42989,52 @@

    -

    +

    - .gemspec_block_param(source) ⇒ Object + .local_gemfile_template_recipe?(recipe) ⇒ Boolean -

     
     
    -5217
    -5218
    -5219
    -5220
    -5221
    -5222
    -5223
    -5224
    -5225
    -5226
    +12305 +12306 +12307
    -
    # File 'lib/kettle/jem.rb', line 5217
    +      
    # File 'lib/kettle/jem.rb', line 12305
     
    -def gemfile_dependency_statement?(node)
    -  case node
    -  when ::Prism::CallNode
    -    %i[gem group platforms].include?(node.name)
    -  when ::Prism::IfNode, ::Prism::UnlessNode
    -    true
    -  else
    -    false
    -  end
    +def license_eye_mode(licenses)
    +  (Array(licenses).map(&:to_s).any? { |license| LICENSE_EYE_COMPATIBILITY_LICENSES.include?(license) }) ? "check" : "resolve"
     end
    -
    # File 'lib/kettle/jem.rb', line 5539
    -
    -def gemfile_eval_bucket_entries(content)
    -  lines = content.to_s.lines
    -  ruby_call_records(content, :eval_gemfile).filter_map do |call|
    -    path = ruby_string_argument(call)
    -    next unless path
    -
    -    key = normalize_eval_gemfile_ruby_bucket(path)
    -    next unless key
    +      
    # File 'lib/kettle/jem.rb', line 12301
     
    -    {
    -      path: path,
    -      key: key,
    -      line: (lines[(call.location.start_line - 1)..(call.location.end_line - 1)] || []).join,
    -      start_line: call.location.start_line,
    -      end_line: call.location.end_line
    -    }
    -  end
    +def license_eye_primary_spdx(licenses, fallback)
    +  Array(licenses).map(&:to_s).find { |license| LICENSE_EYE_COMPATIBILITY_LICENSES.include?(license) } || fallback
     end
    -
    # File 'lib/kettle/jem.rb', line 5325
    -
    -def gemfile_gem_call_records(content)
    -  ruby_call_records(content, :gem).filter_map do |call|
    -    name = ruby_string_argument(call)
    -    next unless name
    +      
    # File 'lib/kettle/jem.rb', line 12297
     
    -    {
    -      name: name,
    -      start_line: call.location.start_line,
    -      end_line: call.location.end_line
    -    }
    -  end
    +def license_eye_workflow_badge(licenses, config = {})
    +  disabled_integrations(config, license: {spdx: licenses}).include?(SKYWALKING_EYES_INTEGRATION) ? "" : README_LICENSE_EYE_WORKFLOW_BADGE
     end
    -
    # File 'lib/kettle/jem.rb', line 5188
    +      
    # File 'lib/kettle/jem.rb', line 12119
     
    -def gemfile_paragraphs(content)
    -  content.to_s.split(/\n{2,}/).map { |paragraph| ensure_trailing_newline(paragraph.strip) }.reject { |paragraph| paragraph.strip.empty? }
    +def license_facts(config, gemspec_licenses, author: {}, author_email: nil, copyright: {})
    +  licenses = resolved_licenses(config, gemspec_licenses)
    +  primary = licenses.first
    +  compat_category = license_compat_category(licenses)
    +  copyright_prefix = polyform_licenses?(licenses) ? "Required Notice: " : ""
    +  copyright_lines = Array(copyright[:lines])
    +  compact_hash(
    +    spdx: licenses,
    +    expression: licenses.join(" OR "),
    +    primary_spdx: primary,
    +    license_md_content: license_md_content(licenses, author_email: author_email),
    +    readme_license_intro: readme_license_intro(licenses, author_email: author_email),
    +    readme_license_badge: license_badge(licenses.join(" OR "), ref: :license),
    +    readme_license_compat_badge: license_compat_badge(compat_category),
    +    readme_license_eye_workflow_badge: license_eye_workflow_badge(licenses, config),
    +    readme_license_refs: readme_license_refs(licenses.join(" OR "), compat_category),
    +    license_eye_primary_spdx: license_eye_primary_spdx(licenses, primary),
    +    license_eye_mode: license_eye_mode(licenses),
    +    license_eye_flags: license_eye_flags(licenses),
    +    license_eye_dependency_licenses: license_eye_dependency_licenses(config),
    +    license_copyright_notice: license_copyright_notice(copyright_lines, copyright_prefix, author),
    +    readme_copyright_notice: readme_copyright_notice(copyright_lines, copyright_prefix, author),
    +    copyright_prefix: copyright_prefix
    +  )
     end
    -
    # File 'lib/kettle/jem.rb', line 5192
    +      
    # File 'lib/kettle/jem.rb', line 12263
     
    -def gemfile_percent_w_names(content)
    -  ruby_word_array_records(content).flat_map { |record| record.fetch(:names) }.reject(&:empty?)
    +def license_link(spdx_id)
    +  base = spdx_basename(spdx_id)
    +  "[#{base}](#{base}.md)"
     end
    -
    # File 'lib/kettle/jem.rb', line 4028
    +      
    # File 'lib/kettle/jem.rb', line 12204
     
    -def gemfile_policy_operations(template_content, original, final, request)
    -  package_name = runtime_context_value(request, :package, :name).to_s
    -  deleted = gemfile_dependency_names("#{template_content}\n#{original}") - gemfile_dependency_names(final)
    -  expected = ["appraisal"]
    -  expected << package_name unless package_name.empty?
    -  [
    -    {
    -      operation: "delete_dependency_declarations",
    -      deleted_gems: (deleted & expected).sort
    -    }
    -  ]
    +def license_md_content(licenses, author_email: nil)
    +  content = <<~MARKDOWN.chomp
    +    # License
    +
    +    This project is made available under the following license#{"s" if licenses.size > 1}.
    +    Choose the option that best fits your use case:
    +
    +    #{licenses.map { |license| "- #{license_link(license)}" }.join("\n")}
    +  MARKDOWN
    +  guide_table = license_use_case_guide_table(licenses, author_email: author_email)
    +  content += "\n\n## Use-case guide\n\n#{guide_table}" if guide_table
    +  content += "\n\n#{license_contact_line(author_email, context: :license_md)}" if non_mit_licenses?(licenses)
    +  content
     end
    -
    # File 'lib/kettle/jem.rb', line 6513
    +      
    # File 'lib/kettle/jem.rb', line 12154
     
    -def gemspec_assignment_end_line(call)
    -  argument = call.arguments&.arguments&.first
    -  closing_line = argument.respond_to?(:closing_loc) && argument.closing_loc&.end_line
    -  closing_line = nil unless closing_line.is_a?(Integer)
    -  [call.location.end_line, closing_line].compact.max
    +def license_template_tokens(license)
    +  {
    +    "KJ|LICENSE_MD_CONTENT" => license[:license_md_content].to_s,
    +    "KJ|GEMSPEC:ROOT_LICENSE_FILES" => gemspec_root_license_files_token(license),
    +    "KJ|README:LICENSE_INTRO" => license[:readme_license_intro].to_s,
    +    "KJ|LICENSE:PRIMARY_SPDX" => license[:primary_spdx].to_s,
    +    "KJ|LICENSE_EYE:PRIMARY_SPDX" => license[:license_eye_primary_spdx].to_s,
    +    "KJ|LICENSE_EYE:MODE" => license[:license_eye_mode].to_s,
    +    "KJ|LICENSE_EYE:FLAGS" => license[:license_eye_flags].to_s,
    +    "KJ|LICENSE_EYE:DEPENDENCY_LICENSES" => license[:license_eye_dependency_licenses].to_s,
    +    "KJ|README:LICENSE_BADGE" => license[:readme_license_badge].to_s,
    +    "KJ|README:LICENSE_COMPAT_BADGE" => license[:readme_license_compat_badge].to_s,
    +    "KJ|README:LICENSE_EYE_WORKFLOW_BADGE" => license[:readme_license_eye_workflow_badge].to_s,
    +    "KJ|README:LICENSE_REFS" => license[:readme_license_refs].to_s,
    +    "KJ|LICENSE_COPYRIGHT_NOTICE" => license[:license_copyright_notice].to_s,
    +    "KJ|README:COPYRIGHT_NOTICE" => license[:readme_copyright_notice].to_s,
    +    "KJ|COPYRIGHT_PREFIX" => license[:copyright_prefix].to_s
    +  }
     end
    -
    # File 'lib/kettle/jem.rb', line 6520
    +      
    # File 'lib/kettle/jem.rb', line 12360
     
    -def gemspec_assignment_field(call)
    -  name = call.name.to_s
    -  return unless name.end_with?("=")
    -  return if name == "[]="
    +def license_use_case_guide_table(licenses, author_email: nil)
    +  has_floss_oss = licenses.include?("MIT") || licenses.include?("AGPL-3.0-only")
    +  has_polyform = licenses.include?("PolyForm-Noncommercial-1.0.0") || licenses.include?("PolyForm-Small-Business-1.0.0")
    +  has_big_time = licenses.include?("LicenseRef-Big-Time-Public-License")
    +  return unless has_floss_oss && has_polyform && has_big_time
     
    -  name.delete_suffix("=")
    +  rows = license_use_case_rows(licenses, author_email: author_email)
    +  return if rows.empty?
    +
    +  "| Use case | License |\n|---|---|\n" +
    +    rows.map { |use_case, license| "| #{use_case} | #{license} |" }.join("\n")
     end
    -
    # File 'lib/kettle/jem.rb', line 6494
    -
    -def gemspec_assignment_records(source, receiver: nil)
    -  lines = source.to_s.lines
    -  ruby_call_records(source, nil).filter_map do |call|
    -    field = gemspec_assignment_field(call)
    -    next unless field
    -    next if receiver && call.receiver&.slice != receiver.to_s
    -    end_line = gemspec_assignment_end_line(call)
    +      
    # File 'lib/kettle/jem.rb', line 12373
     
    -    {
    -      field: field,
    -      value: gemspec_assignment_value(call),
    -      receiver: call.receiver&.slice,
    -      start_line: call.location.start_line,
    -      end_line: end_line,
    -      source: (lines[(call.location.start_line - 1)..(end_line - 1)] || []).join
    -    }
    -  end
    +def license_use_case_rows(licenses, author_email: nil)
    +  rows = []
    +  rows << ["FLOSS (free and open source)", license_link("MIT")] if licenses.include?("MIT")
    +  rows << ["Copy-left open source", license_link("AGPL-3.0-only")] if licenses.include?("AGPL-3.0-only")
    +  noncommercial_links = %w[PolyForm-Noncommercial-1.0.0 PolyForm-Small-Business-1.0.0 LicenseRef-Big-Time-Public-License]
    +    .select { |license| licenses.include?(license) }
    +    .map { |license| license_link(license) }
    +  rows << ["Non-commercial (research, education, personal use)", noncommercial_links.join(" or ")] unless noncommercial_links.empty?
    +  small_business_links = %w[PolyForm-Small-Business-1.0.0 LicenseRef-Big-Time-Public-License]
    +    .select { |license| licenses.include?(license) }
    +    .map { |license| license_link(license) }
    +  rows << ["Small business commercial", small_business_links.join(" or ")] unless small_business_links.empty?
    +  rows << ["Larger business commercial", large_business_license_cell(author_email)] if licenses.include?("LicenseRef-Big-Time-Public-License")
    +  rows
     end
    -
    # File 'lib/kettle/jem.rb', line 6528
    +      
    # File 'lib/kettle/jem.rb', line 10998
     
    -def gemspec_assignment_value(call)
    -  argument = call.arguments&.arguments&.first
    -  case argument
    -  when ::Prism::StringNode
    -    argument.unescaped
    -  when ::Prism::ArrayNode
    -    argument.elements.filter_map { |element| element.unescaped if element.is_a?(::Prism::StringNode) }
    -  else
    -    argument&.slice
    -  end
    +def load_project_gemspec(gemspec_path)
    +  Gem::Specification.load(gemspec_path)
    +rescue LoadError, StandardError
    +  nil
     end
    +
    +
    + + + +
    +
    +
    + +

    Returns:

    +
      + +
    • + + + (Boolean) + + + +
    • + +
    + +
    @@ -28536,9 +43042,9 @@

    -

    +

    - .gemspec_dependency_call_kind(call) ⇒ Object + .local_gems_assignment(content) ⇒ Object @@ -28550,21 +43056,15 @@

     
     
    -6609
    -6610
    -6611
    -6612
    -6613
    -6614
    +5985 +5986 +5987

    @@ -28572,9 +43072,9 @@

    -

    +

    - .gemspec_dependency_from_record(record) ⇒ Object + .local_gems_assignment_record(content) ⇒ Object @@ -28586,15 +43086,41 @@

     
     
    -8535
    -8536
    -8537
    +6000 +6001 +6002 +6003 +6004 +6005 +6006 +6007 +6008 +6009 +6010 +6011 +6012 +6013 +6014 +6015

    @@ -28602,9 +43128,9 @@

    -

    +

    - .gemspec_dependency_line_index(source, receiver:) ⇒ Object + .local_modular_eval_paths_for_gem(project_root, gem_name) ⇒ Object @@ -28616,21 +43142,41 @@

     
     
    -6430
    -6431
    -6432
    -6433
    -6434
    -6435
    +10740 +10741 +10742 +10743 +10744 +10745 +10746 +10747 +10748 +10749 +10750 +10751 +10752 +10753 +10754 +10755

    @@ -28638,9 +43184,9 @@

    -

    +

    - .gemspec_dependency_line_key(line, receiver:) ⇒ Object + .local_modular_runtime_eval_paths(project_root, gemspec_metadata, package_name:) ⇒ Object @@ -28652,17 +43198,31 @@

     
     
    -6462
    -6463
    -6464
    -6465
    +10728 +10729 +10730 +10731 +10732 +10733 +10734 +10735 +10736 +10737 +10738

    @@ -28670,9 +43230,9 @@

    -

    +

    - .gemspec_dependency_names(source) ⇒ Object + .main_gemfile_after_gemspec_line(content) ⇒ Object @@ -28684,15 +43244,15 @@

     
     
    -6437
    -6438
    -6439
    +5490 +5491 +5492

    @@ -28700,9 +43260,9 @@

    -

    +

    - .gemspec_dependency_record_key(record) ⇒ Object + .main_gemfile_direct_sibling_block(gems, source_url:, project_root:, local_modular_eval_paths: []) ⇒ Object @@ -28714,15 +43274,163 @@

     
     
    -6467
    -6468
    -6469
    +10794 +10795 +10796 +10797 +10798 +10799 +10800 +10801 +10802 +10803 +10804 +10805 +10806 +10807 +10808 +10809 +10810 +10811 +10812 +10813 +10814 +10815 +10816 +10817 +10818 +10819 +10820 +10821 +10822 +10823 +10824 +10825 +10826 +10827 +10828 +10829 +10830 +10831 +10832 +10833 +10834 +10835 +10836 +10837 +10838 +10839 +10840 +10841 +10842 +10843 +10844 +10845 +10846 +10847 +10848 +10849 +10850 +10851 +10852 +10853 +10854 +10855 +10856 +10857 +10858 +10859 +10860 +10861 +10862 +10863 +10864 +10865 +10866 +10867 +10868 +10869 +10870

    @@ -28730,9 +43438,9 @@

    -

    +

    - .gemspec_dependency_record_version(record) ⇒ Object + .main_gemfile_direct_sibling_records(content) ⇒ Object @@ -28744,27 +43452,53 @@

     
     
    -6484
    -6485
    -6486
    -6487
    -6488
    -6489
    -6490
    -6491
    -6492
    +5407 +5408 +5409 +5410 +5411 +5412 +5413 +5414 +5415 +5416 +5417 +5418 +5419 +5420 +5421 +5422 +5423 +5424 +5425 +5426 +5427 +5428

    @@ -28772,9 +43506,9 @@

    -

    +

    - .gemspec_dependency_records(source, receiver: nil) ⇒ Object + .main_gemfile_first_eval_gemfile_line(content) ⇒ Object @@ -28786,53 +43520,15 @@

     
     
    -6586
    -6587
    -6588
    -6589
    -6590
    -6591
    -6592
    -6593
    -6594
    -6595
    -6596
    -6597
    -6598
    -6599
    -6600
    -6601
    -6602
    -6603
    -6604
    -6605
    -6606
    -6607
    +5486 +5487 +5488

    @@ -28840,9 +43536,9 @@

    -

    +

    - .gemspec_dependency_sort_key(name) ⇒ Object + .main_gemfile_nomono_bootstrap_source(template_content) ⇒ Object @@ -28854,15 +43550,33 @@

     
     
    -6364
    -6365
    -6366
    +5465 +5466 +5467 +5468 +5469 +5470 +5471 +5472 +5473 +5474 +5475 +5476

    @@ -28870,60 +43584,95 @@

    -

    +

    - .gemspec_dependency_source_newer?(candidate_source, current_source, receiver:) ⇒ Boolean + .main_gemfile_nomono_requirement_records(content) ⇒ Object -

    -
    - +

     
     
    -6205
    -6206
    -6207
    -6208
    -6209
    +5948 +5949 +5950
    -
    # File 'lib/kettle/jem.rb', line 6205
    +      
    # File 'lib/kettle/jem.rb', line 5948
     
    -def gemspec_block_param(source)
    -  call = gemspec_new_call(source)
    -  required = call&.block&.parameters&.parameters&.requireds&.first
    -  required&.name&.to_s
    +def local_gemfile_template_recipe?(recipe)
    +  recipe.fetch(:target_path).to_s.end_with?("_local.gemfile")
     end
    -
    # File 'lib/kettle/jem.rb', line 6609
    +      
    # File 'lib/kettle/jem.rb', line 5985
     
    -def gemspec_dependency_call_kind(call)
    -  case call.name
    -  when :add_dependency, :add_runtime_dependency, :add_development_dependency
    -    call.name.to_s
    -  end
    +def local_gems_assignment(content)
    +  local_gems_assignment_record(content)&.fetch(:names) || []
     end
    -
    # File 'lib/kettle/jem.rb', line 8535
    +      
    # File 'lib/kettle/jem.rb', line 6000
     
    -def gemspec_dependency_from_record(record)
    -  Gem::Dependency.new(record.fetch(:name), *record.fetch(:requirements), (record.fetch(:kind) == "add_development_dependency") ? :development : :runtime)
    +def local_gems_assignment_record(content)
    +  result = prism_parse_success(content)
    +  return unless result
    +
    +  result.value.breadth_first_search_all do |node|
    +    node.is_a?(::Prism::LocalVariableWriteNode) &&
    +      node.name == :local_gems &&
    +      ruby_word_array_node?(node.value)
    +  end.first&.then do |node|
    +    {
    +      names: ruby_word_array_names(node.value),
    +      start_line: node.location.start_line,
    +      end_line: node.location.end_line
    +    }
    +  end
     end
    -
    # File 'lib/kettle/jem.rb', line 6430
    +      
    # File 'lib/kettle/jem.rb', line 10740
     
    -def gemspec_dependency_line_index(source, receiver:)
    -  gemspec_dependency_records(source, receiver: receiver).each_with_object({}) do |record, dependencies|
    -    key = gemspec_dependency_record_key(record)
    -    dependencies[key] ||= record.fetch(:source)
    +def local_modular_eval_paths_for_gem(project_root, gem_name)
    +  Dir.glob(File.join(project_root.to_s, "gemfiles", "modular", "**", "*_local.gemfile")).filter_map do |path|
    +    next unless gemfile_dependency_names(File.read(path)).include?(gem_name.to_s)
    +
    +    local_relative = project_relative_path(path, project_root)
    +    paired_relative = paired_modular_gemfile_path(local_relative)
    +    next unless paired_relative
    +    next unless File.file?(File.join(project_root.to_s, paired_relative))
    +
    +    paired_relative
    +  rescue Errno::ENOENT
    +    nil
       end
    +    .uniq
    +    .sort
     end
    -
    # File 'lib/kettle/jem.rb', line 6462
    +      
    # File 'lib/kettle/jem.rb', line 10728
     
    -def gemspec_dependency_line_key(line, receiver:)
    -  record = gemspec_dependency_records(line, receiver: receiver).first
    -  gemspec_dependency_record_key(record) if record
    +def local_modular_runtime_eval_paths(project_root, , package_name:)
    +  return {} unless project_root && .is_a?(Hash)
    +
    +  runtime_names = gemspec_runtime_dependency_names() - [package_name.to_s]
    +  return {} if runtime_names.empty?
    +
    +  runtime_names.each_with_object({}) do |gem_name, paths_by_gem|
    +    paths = local_modular_eval_paths_for_gem(project_root, gem_name)
    +    paths_by_gem[gem_name] = paths if paths.any?
    +  end
     end
    -
    # File 'lib/kettle/jem.rb', line 6437
    +      
    # File 'lib/kettle/jem.rb', line 5490
     
    -def gemspec_dependency_names(source)
    -  gemspec_dependency_records(source).map { |record| record.fetch(:name) }
    +def main_gemfile_after_gemspec_line(content)
    +  ruby_call_records(content, :gemspec).map { |call| ruby_node_source_end_line(call) + 1 }.min
     end
    -
    # File 'lib/kettle/jem.rb', line 6467
    +      
    # File 'lib/kettle/jem.rb', line 10794
     
    -def gemspec_dependency_record_key(record)
    -  [record.fetch(:kind), record.fetch(:name)]
    +def main_gemfile_direct_sibling_block(gems, source_url:, project_root:, local_modular_eval_paths: [])
    +  names = Array(gems).map(&:to_s).reject(&:empty?).uniq
    +  eval_paths = Array(local_modular_eval_paths).map(&:to_s).reject(&:empty?).uniq.sort
    +  return "" if names.empty? && eval_paths.empty?
    +
    +  blocks = []
    +  if eval_paths.any?
    +    blocks << [
    +      "# Modular sibling dependencies (env-switched inside each modular Gemfile)",
    +      *eval_paths.map { |path| %(eval_gemfile "#{path}") }
    +    ].join("\n")
    +  end
    +  return blocks.join("\n\n") if names.empty?
    +
    +  workspace_slug = direct_sibling_workspace_slug(source_url, project_root)
    +  prefix = workspace_slug.to_s.upcase.tr("-", "_")
    +  prefix = "LOCAL" if prefix.empty?
    +  dev_env = "#{prefix}_DEV"
    +  root_literal = ruby_array_literal(["src", "my", workspace_slug].reject(&:empty?))
    +  word_array = names.map { |name| "  #{name}" }.join("\n")
    +
    +  blocks << <<~RUBY.rstrip
    +    # Direct sibling dependencies (env-switched via #{dev_env})
    +    direct_sibling_gems = %w[
    +    #{word_array}
    +    ]
    +    direct_sibling_dev = ENV.fetch("#{dev_env}", "")
    +    direct_sibling_local =
    +      !direct_sibling_dev.empty? && !%w[false 0 no off].include?(direct_sibling_dev.downcase)
    +    direct_sibling_templating = ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero?
    +
    +    if direct_sibling_gems.any? &&
    +        (direct_sibling_local ||
    +          ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero?)
    +      direct_sibling_dev_was_set = ENV.key?("#{dev_env}")
    +      direct_sibling_dev_original = ENV.fetch("#{dev_env}", nil)
    +      begin
    +        nomono_activation_requirements = nomono_requirements
    +        nomono_lockfile = File.expand_path("Gemfile.lock", __dir__)
    +        if File.file?(nomono_lockfile)
    +          nomono_locked_spec = Bundler::LockfileParser
    +            .new(Bundler.read_file(nomono_lockfile))
    +            .specs
    +            .find { |spec| spec.name == "nomono" }
    +          nomono_locked = nomono_locked_spec &&
    +            Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version)
    +          if nomono_locked
    +            nomono_activation_requirements = ["= \#{nomono_locked_spec.version}"]
    +          end
    +        end
    +        Kernel.send(:gem, "nomono", *nomono_activation_requirements)
    +        require "nomono/bundler"
    +        if direct_sibling_templating && !direct_sibling_local
    +          ENV["#{dev_env}"] = File.expand_path("..", __dir__)
    +        end
    +
    +        eval_nomono_gems(
    +          gems: direct_sibling_gems,
    +          prefix: "#{prefix}",
    +          path_env: "#{dev_env}",
    +          root: #{root_literal}
    +        )
    +      rescue LoadError
    +        warn "Install nomono to enable #{dev_env} local sibling-gem dependencies."
    +      ensure
    +        if direct_sibling_templating && !direct_sibling_local
    +          if direct_sibling_dev_was_set
    +            ENV["#{dev_env}"] = direct_sibling_dev_original
    +          else
    +            ENV.delete("#{dev_env}")
    +          end
    +        end
    +      end
    +    end
    +  RUBY
    +  blocks.join("\n\n")
     end
    -
    # File 'lib/kettle/jem.rb', line 6484
    +      
    # File 'lib/kettle/jem.rb', line 5407
     
    -def gemspec_dependency_record_version(record)
    -  versions = record.fetch(:requirements, []).filter_map do |requirement|
    -    version_text = requirement.to_s[/\d+(?:[._-]?[A-Za-z0-9]+)*/]
    -    Gem::Version.new(version_text.tr("_", ".")) if version_text
    -  rescue ArgumentError
    -    nil
    +def main_gemfile_direct_sibling_records(content)
    +  body = prism_parse_success(content)&.value&.statements&.body || []
    +  assignments = body.select do |node|
    +    node.is_a?(::Prism::LocalVariableWriteNode) && node.name == :direct_sibling_gems
    +  end
    +  return [] if assignments.empty?
    +
    +  lines = content.to_s.lines
    +  assignments.filter_map do |assignment|
    +    block_if = body.find do |node|
    +      node.is_a?(::Prism::IfNode) &&
    +        node.location.start_line > assignment.location.end_line &&
    +        prism_subtree_contains_call?(node, :eval_nomono_gems)
    +    end
    +    next unless block_if
    +
    +    start_line = assignment.location.start_line
    +    previous = lines[start_line - 2].to_s
    +    start_line -= 1 if previous.strip.start_with?("# Direct sibling dependencies")
    +    {start_line: start_line, end_line: block_if.location.end_line}
       end
    -  versions.max || Gem::Version.new("0")
     end
    -
    # File 'lib/kettle/jem.rb', line 6586
    -
    -def gemspec_dependency_records(source, receiver: nil)
    -  lines = source.to_s.lines
    -  ruby_call_records(source, nil).filter_map do |call|
    -    kind = gemspec_dependency_call_kind(call)
    -    next unless kind
    -    next if receiver && call.receiver&.slice != receiver.to_s
    -
    -    name = ruby_string_argument(call)
    -    next unless name
    +      
    # File 'lib/kettle/jem.rb', line 5486
     
    -    {
    -      kind: kind,
    -      name: name,
    -      requirement: ruby_string_argument_at(call, 1),
    -      requirements: ruby_string_arguments(call).drop(1),
    -      receiver: call.receiver&.slice,
    -      start_line: call.location.start_line,
    -      end_line: call.location.end_line,
    -      source: (lines[(call.location.start_line - 1)..(call.location.end_line - 1)] || []).join
    -    }
    -  end
    +def main_gemfile_first_eval_gemfile_line(content)
    +  ruby_call_records(content, :eval_gemfile).map { |call| call.location.start_line }.min
     end
    -
    # File 'lib/kettle/jem.rb', line 6364
    +      
    # File 'lib/kettle/jem.rb', line 5465
     
    -def gemspec_dependency_sort_key(name)
    -  name.to_s.tr("_", "-")
    +def main_gemfile_nomono_bootstrap_source(template_content)
    +  records = main_gemfile_nomono_requirement_records(template_content)
    +  assignment = records.fetch(:assignments).first
    +  call = records.fetch(:calls).first
    +  return "" unless assignment && call
    +
    +  lines = template_content.to_s.lines
    +  start_line = assignment.fetch(:start_line)
    +  previous = lines[start_line - 2].to_s
    +  start_line -= 1 if previous.strip.start_with?("# Local workspace dependency wiring")
    +  lines[(start_line - 1)..(call.fetch(:end_line) - 1)].join.rstrip + "\n\n"
     end
    + + + + +
    +
     
     
    -  
    +5516
    +5517
    +5518
    +5519
    +5520
    +5521
    +5522
    +5523
    +5524
    +5525
    +5526
    +5527
    +5528
    +5529
    +5530
    +5531
    +5532
    +5533
    +5534
    +5535
    +5536
    +
    +
    # File 'lib/kettle/jem.rb', line 5516
    +
    +def main_gemfile_nomono_requirement_records(content)
    +  body = prism_parse_success(content)&.value&.statements&.body || []
    +  assignments = body.filter_map do |node|
    +    next unless node.is_a?(::Prism::LocalVariableWriteNode) && node.name == :nomono_requirements
    +
    +    {
    +      start_line: node.location.start_line,
    +      end_line: ruby_node_source_end_line(node),
    +      source: node.location.slice
    +    }
    +  end
    +  calls = ruby_call_records(content, :gem).filter_map do |call|
    +    next unless ruby_string_argument(call) == "nomono"
    +
    +    {
    +      start_line: call.location.start_line,
    +      end_line: ruby_node_source_end_line(call)
    +    }
    +  end
    +  {assignments: assignments, calls: calls.sort_by { |record| record.fetch(:start_line) }}
    +end
    +
    -
    + +
    +

    -

    Returns:

    -
      + .main_gemfile_recording_eval_pathObject -
    • - - - (Boolean) - - - -
    • + -
    -

    + +
    @@ -28931,9 +43680,9 @@

    -

    +

    - .gemspec_end_line(source) ⇒ Object + .main_gemfile_recording_insertion_index(content) ⇒ Object @@ -28945,15 +43694,27 @@

     
     
    -6620
    -6621
    -6622
    +6288 +6289 +6290 +6291 +6292 +6293 +6294 +6295 +6296

    @@ -28961,9 +43722,9 @@

    -

    +

    - .gemspec_field_receiver_and_name(field) ⇒ Object + .main_gemfile_templating_eval_line(content) ⇒ Object @@ -28975,21 +43736,23 @@

     
     
    -6540
    -6541
    -6542
    -6543
    -6544
    -6545
    +5478 +5479 +5480 +5481 +5482 +5483 +5484

    @@ -28997,9 +43760,9 @@

    -

    +

    - .gemspec_legacy_version_loader_block(entrypoint_require:, namespace:, min_ruby:) ⇒ Object + .managed_license_template_basename(target_path) ⇒ Object @@ -29011,125 +43774,98 @@

     
     
    -5994
    -5995
    -5996
    -5997
    -5998
    -5999
    -6000
    -6001
    -6002
    -6003
    -6004
    -6005
    -6006
    -6007
    -6008
    -6009
    -6010
    -6011
    -6012
    -6013
    -6014
    -6015
    -6016
    -6017
    -6018
    -6019
    -6020
    +13309 +13310 +13311 +13312 +13313 +13314 +13315 +13316 +13317

     
     
    -6476
    -6477
    -6478
    -6479
    -6480
    -6481
    -6482
    +6298 +6299 +6300
    -
    # File 'lib/kettle/jem.rb', line 6476
    -
    -def gemspec_dependency_source_newer?(candidate_source, current_source, receiver:)
    -  candidate = gemspec_dependency_records(candidate_source, receiver: receiver).first
    -  current = gemspec_dependency_records(current_source, receiver: receiver).first
    -  return false unless candidate && current
    +      
    # File 'lib/kettle/jem.rb', line 6298
     
    -  gemspec_dependency_record_version(candidate) > gemspec_dependency_record_version(current)
    +def main_gemfile_recording_eval_path
    +  "gemfiles/modular/recording/r4/recording.gemfile"
     end
    -
    # File 'lib/kettle/jem.rb', line 6620
    +      
    # File 'lib/kettle/jem.rb', line 6288
     
    -def gemspec_end_line(source)
    -  gemspec_new_call(source)&.location&.end_line || source.to_s.lines.length + 1
    +def main_gemfile_recording_insertion_index(content)
    +  lines = content.to_s.lines
    +  call = ruby_call_records(content, :eval_gemfile).find do |candidate|
    +    ruby_string_argument(candidate).to_s == "gemfiles/modular/style.gemfile"
    +  end
    +  return unless call
    +
    +  gemfile_eval_comment_start_line(lines, call.location.start_line) - 1
     end
    -
    # File 'lib/kettle/jem.rb', line 6540
    +      
    # File 'lib/kettle/jem.rb', line 5478
     
    -def gemspec_field_receiver_and_name(field)
    -  parts = field.to_s.split(".")
    -  return [nil, field.to_s] if parts.length == 1
    +def main_gemfile_templating_eval_line(content)
    +  ruby_call_records(content, :eval_gemfile).filter_map do |call|
    +    next unless ruby_string_argument(call) == "gemfiles/modular/templating.gemfile"
     
    -  [parts[0...-1].join("."), parts.last]
    +    call.location.start_line
    +  end.min
     end
    -
    # File 'lib/kettle/jem.rb', line 5994
    -
    -def gemspec_legacy_version_loader_block(entrypoint_require:, namespace:, min_ruby:)
    -  legacy_require =
    -    if min_ruby >= REQUIRE_RELATIVE_MIN_RUBY
    -      %(require_relative "lib/#{entrypoint_require}/version")
    -    else
    -      <<~RUBY.chomp
    -        # NOTE: Use __FILE__ or __dir__ until removal of Ruby 1.x support
    -        # __dir__ introduced in Ruby 1.9.1
    -        lib = File.expand_path("lib", File.dirname(__FILE__))
    -        $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
    -        require "#{entrypoint_require}/version"
    -      RUBY
    -    end
    +      
    # File 'lib/kettle/jem.rb', line 13309
     
    -  <<~RUBY
    -    gem_version =
    -      if Gem.ruby_version >= Gem::Version.new("3.1")
    -        # Loading Version into an anonymous module allows version.rb to get code coverage from SimpleCov!
    -        # See: https://github.com/simplecov-ruby/simplecov/issues/557#issuecomment-2630782358
    -        # See: https://github.com/panorama-ed/memo_wise/pull/397
    -        #{gemspec_modern_version_loader_expression(entrypoint_require: entrypoint_require, namespace: namespace)}
    -      else
    -        #{legacy_require.gsub("\n", "\n    ")}
    -        #{namespace}::Version::VERSION
    -      end
    -  RUBY
    -end
    +def managed_license_template_basename(target_path) + path = target_path.to_s + return unless path.end_with?(".md") + + basename = File.basename(path, ".md") + return if NON_LICENSE_MD_BASENAMES.include?(basename) + + known_license_template_basenames.include?(basename) ? basename : nil +end
    -

    +

    - .gemspec_legacy_version_loader_preamble_line_range(content) ⇒ Object + .markdown_heading_has_preserved_readme_ancestor?(heading_sections, index) ⇒ Boolean -

    +
    +
    + + + +
    +
    +
    + +

    Returns:

    +
      + +
    • + + + (Boolean) + + + +
    • + +
    + +
    @@ -29137,9 +43873,9 @@

    -

    +

    - .gemspec_modern_version_loader_expression(entrypoint_require:, namespace:) ⇒ Object + .markdown_heading_owners(content, source_label: "README.md") ⇒ Object @@ -29151,15 +43887,23 @@

    -5990 -5991 -5992 +5202 +5203 +5204 +5205 +5206 +5207 +5208

    @@ -29167,9 +43911,9 @@

    -

    +

     
     
    -6616
    -6617
    -6618
    +5154 +5155 +5156 +5157 +5158

    @@ -29197,9 +43945,9 @@

    -

    +

     
     
    -3309
    -3310
    -3311
    -3312
    +4152 +4153 +4154

    @@ -29252,9 +43998,9 @@

    -

    +

    - .gemspec_policy_operations(template_content, original, final, request) ⇒ Object + .markdown_managed_block(content, marker) ⇒ Object @@ -29266,85 +44012,35 @@

     
     
    -4063
    -4064
    -4065
    -4066
    -4067
    -4068
    -4069
    -4070
    -4071
    -4072
    -4073
    -4074
    -4075
    -4076
    -4077
    -4078
    -4079
    -4080
    -4081
    -4082
    -4083
    -4084
    -4085
    -4086
    -4087
    -4088
    -4089
    -4090
    -4091
    -4092
    -4093
    -4094
    -4095
    -4096
    -4097
    -4098
    -4099
    -4100
    +12804 +12805 +12806 +12807 +12808 +12809 +12810 +12811 +12812 +12813 +12814 +12815 +12816

    @@ -29352,9 +44048,9 @@

    -

    +

    - .gemspec_preserved_assignments(source, receiver:) ⇒ Object + .markdown_sections(content) ⇒ Object @@ -29366,50 +44062,42 @@

     
     
    -6242
    -6243
    -6244
    -6245
    -6246
    -6247
    -6248
    -6249
    -6250
    -6251
    -6252
    -6253
    -6254
    -6255
    -6256
    -6257
    -6258
    -6259
    -6260
    -6261
    -6262
    +12818 +12819 +12820 +12821 +12822 +12823 +12824 +12825 +12826 +12827 +12828 +12829 +12830 +12831 +12832 +12833 +12834

    @@ -29418,9 +44106,9 @@

    -

    +

    - .gemspec_project_emoji(gemspec_metadata) ⇒ Object + .markdown_source_lines(content) ⇒ Object @@ -29432,29 +44120,15 @@

     
     
    -7113
    -7114
    -7115
    -7116
    -7117
    -7118
    -7119
    -7120
    -7121
    -7122
    +4118 +4119 +4120

    @@ -29462,9 +44136,9 @@

    -

    +

    - .gemspec_runtime_floor_token(facts) ⇒ Object + .merge_appraisal_blocks_with_prism(template_block, destination_block) ⇒ Object @@ -29476,23 +44150,37 @@

     
     
    -6169
    -6170
    -6171
    -6172
    -6173
    -6174
    -6175
    +7073 +7074 +7075 +7076 +7077 +7078 +7079 +7080 +7081 +7082 +7083 +7084 +7085 +7086

    @@ -29500,9 +44188,9 @@

    -

    +

    - .gemspec_self_dependency_names(request, package_name) ⇒ Object + .merge_appraisals_template_policy(content, facts:) ⇒ Object @@ -29514,21 +44202,29 @@

     
     
    -6441
    -6442
    -6443
    -6444
    -6445
    -6446
    +6792 +6793 +6794 +6795 +6796 +6797 +6798 +6799 +6800 +6801

    @@ -29536,9 +44232,9 @@

    -

    +

    - .gemspec_top_level_gem_version_node(content) ⇒ Object + .merge_bash_template_source(template_content, destination_content, recipe) ⇒ Object @@ -29550,31 +44246,55 @@

     
     
    -6065
    -6066
    -6067
    -6068
    -6069
    -6070
    -6071
    -6072
    -6073
    -6074
    -6075
    +7049 +7050 +7051 +7052 +7053 +7054 +7055 +7056 +7057 +7058 +7059 +7060 +7061 +7062 +7063 +7064 +7065 +7066 +7067 +7068 +7069 +7070 +7071

    @@ -29582,9 +44302,9 @@

    -

    +

    - .gemspec_version_loader_policy_operation(original, final, request) ⇒ Object + .merge_changelog_template_source(template_content, destination_content, facts: nil) ⇒ Object @@ -29596,6 +44316,35 @@

    +4073 +4074 +4075 +4076 +4077 +4078 +4079 +4080 +4081 +4082 +4083 +4084 +4085 +4086 +4087 +4088 +4089 +4090 +4091 +4092 +4093 +4094 +4095 +4096 +4097 +4098 +4099 +4100 +4101 4102 4103 4104 @@ -29610,61 +44359,54 @@

    +4116

    - -
     
     
    -6034
    -6035
    -6036
    -6037
    -6038
    -6039
    -6040
    -6041
    -6042
    -6043
    -6044
    -6045
    -6046
    -6047
    -6048
    -6049
    -6050
    -6051
    -6052
    +5083 +5084 +5085 +5086 +5087 +5088 +5089 +5090 +5091 +5092 +5093 +5094
    -
    # File 'lib/kettle/jem.rb', line 6034
    +      
    # File 'lib/kettle/jem.rb', line 5083
     
    -def gemspec_legacy_version_loader_preamble_line_range(content)
    -  lines = content.to_s.lines
    -  start_index = lines.index do |line|
    -    # Prism has represented this legacy multiline assignment inconsistently across
    -    # parser versions; this fallback is limited to the exact top-level preamble
    -    # shape immediately preceding Gem::Specification.new.
    -    line.match?(/\Agem_version\s*=/)
    -  end
    -  return unless start_index
    +def markdown_heading_has_preserved_readme_ancestor?(heading_sections, index)
    +  owner = heading_sections.fetch(index)
    +  ancestor_level = owner.level.to_i
    +  heading_sections[0...index].reverse_each do |candidate|
    +    next unless candidate.level.to_i < ancestor_level
     
    -  gemspec_index = lines.each_with_index.find do |line, index|
    -    index > start_index && line.include?("Gem::Specification.new")
    -  end&.last
    -  return unless gemspec_index
    +    return true if README_DEFAULT_PRESERVE_SECTIONS.include?(candidate.base.to_s)
     
    -  end_line = gemspec_index
    -  end_line -= 1 while end_line > start_index && lines[end_line - 1].strip.empty?
    -  {start_line: start_index + 1, end_line: end_line}
    +    ancestor_level = candidate.level.to_i
    +  end
    +  false
     end
    -
    # File 'lib/kettle/jem.rb', line 5990
    +      
    # File 'lib/kettle/jem.rb', line 5202
     
    -def gemspec_modern_version_loader_expression(entrypoint_require:, namespace:)
    -  %(Module.new.tap { |mod| Kernel.load("\#{__dir__}/lib/#{entrypoint_require}/version.rb", mod) }::#{namespace}::Version::VERSION)
    +def markdown_heading_owners(content, source_label: "README.md")
    +  ensure_runtime_dependencies!
    +  context = Ast::Crispr::Markdown::Markly.document_context(content: content.to_s, source_label: source_label)
    +  context.structural_owners(owner_scope: :heading_sections)
    +rescue Ast::Crispr::Error
    +  []
     end
    -
    # File 'lib/kettle/jem.rb', line 6616
    +      
    # File 'lib/kettle/jem.rb', line 5154
     
    -def gemspec_new_call(source)
    -  ruby_call_records(source, :new).find { |call| call.receiver&.slice == "Gem::Specification" }
    +def markdown_link_definition_source(owner, url)
    +  source = "[#{owner.label}]: #{url}"
    +  source = "#{source} #{owner.title.dump}" if owner.title
    +  "#{source}\n"
     end
    -
    # File 'lib/kettle/jem.rb', line 3309
    +      
    # File 'lib/kettle/jem.rb', line 4152
     
    -def gemspec_path_declares_gem?(path, gem_name)
    -  normalized_path = path.to_s.delete_suffix("/")
    -  normalized_path == "gems/#{gem_name}"
    +def markdown_link_reference_definition_line?(line)
    +  line.to_s.lstrip.start_with?("[") && line.to_s.include?("]:")
     end
    -
    # File 'lib/kettle/jem.rb', line 4063
    +      
    # File 'lib/kettle/jem.rb', line 12804
     
    -def gemspec_policy_operations(template_content, original, final, request)
    -  template_receiver = gemspec_block_param(template_content) || "spec"
    -  destination_receiver = gemspec_block_param(original) || "spec"
    -  package_name = runtime_context_value(request, :package, :name).to_s
    -  self_dependency_names = gemspec_self_dependency_names(request, package_name)
    -  operations = [
    -    {
    -      operation: "preserve_project_fields",
    -      preserved_fields: gemspec_preserved_assignments(original, receiver: destination_receiver).keys.select do |field|
    -        final.include?("#{template_receiver}.#{field} =")
    -      end.sort
    -    },
    -    {
    -      operation: "preserve_dependency_declarations",
    -      preserved_dependencies: gemspec_dependency_line_index(original, receiver: destination_receiver).keys.map(&:last).select do |gem_name|
    -        final.include?(%("#{gem_name}"))
    -      end.sort
    -    },
    -    {
    -      operation: "delete_self_dependency_declarations",
    -      deleted_dependency_count: [
    -        gemspec_dependency_names("#{template_content}\n#{original}").count { |name| self_dependency_names.include?(name) } -
    -          gemspec_dependency_names(final).count { |name| self_dependency_names.include?(name) },
    -        0
    -      ].max
    -    }
    -  ]
    -  version_loader_operation = gemspec_version_loader_policy_operation(original, final, request)
    -  operations << version_loader_operation if version_loader_operation
    -  if template_receiver != destination_receiver
    -    operations << {
    -      operation: "normalize_gemspec_receiver",
    -      from: destination_receiver,
    -      to: template_receiver
    -    }
    -  end
    -  operations
    +def markdown_managed_block(content, marker)
    +  ensure_runtime_dependencies!
    +  open = "<!-- #{marker}:start -->"
    +  close = "<!-- #{marker}:end -->"
    +  context = Ast::Crispr::Markdown::Markly.document_context(content: content.to_s, source_label: "managed markdown block")
    +  target = Ast::Crispr::Markdown::Markly::Selectors.html_comment_block(
    +    start_text: open.delete_prefix("<!-- ").delete_suffix(" -->"),
    +    end_text: close.delete_prefix("<!-- ").delete_suffix(" -->"),
    +    span: :outermost,
    +    limit: {none_or_one: true}
    +  )
    +  target.locate_matches(context).first&.slice_from(content.to_s)
     end
    -
    # File 'lib/kettle/jem.rb', line 6242
    -
    -def gemspec_preserved_assignments(source, receiver:)
    -  preserved_fields = %w[
    -    name
    -    authors
    -    email
    -    summary
    -    description
    -    homepage
    -    licenses
    -    required_ruby_version
    -    executables
    -  ]
    -  gemspec_assignment_records(source, receiver: receiver).each_with_object({}) do |record, assignments|
    -    field = record.fetch(:field)
    -    next unless preserved_fields.include?(field)
    -    next if assignments.key?(field)
    -    next if record.fetch(:source).include?("TODO:")
    +      
    # File 'lib/kettle/jem.rb', line 12818
     
    -    assignments[field] = record.fetch(:source)
    +def markdown_sections(content)
    +  lines = content.to_s.split("\n", -1)
    +  markdown_heading_owners(content, source_label: "README.md").map do |owner|
    +    start = owner.location.start_line - 1
    +    branch_end = owner.location.end_line - 1
    +    body = (lines[(start + 1)..branch_end] || []).join("\n")
    +    {
    +      start: start,
    +      level: owner.level,
    +      heading: owner.heading_source,
    +      heading_text: owner.heading_text,
    +      base: owner.base,
    +      end: branch_end,
    +      body: body
    +    }
       end
     end
    -
    # File 'lib/kettle/jem.rb', line 7113
    +      
    # File 'lib/kettle/jem.rb', line 4118
     
    -def gemspec_project_emoji()
    -  [
    -    (, :summary),
    -    (, :description)
    -  ].each do |value|
    -    candidate = first_grapheme(value)
    -    return candidate if decorative_grapheme?(candidate)
    -  end
    -  nil
    +def markdown_source_lines(content)
    +  content.to_s.split("\n")
     end
    -
    # File 'lib/kettle/jem.rb', line 6169
    -
    -def gemspec_runtime_floor_token(facts)
    -  raw = facts.to_h.dig(:rubygems, :min_ruby).to_s.strip
    -  token = minimum_ruby_token(raw)
    -  return "0" if token.empty? && raw == "0"
    +      
    # File 'lib/kettle/jem.rb', line 7073
     
    -  token
    +def merge_appraisal_blocks_with_prism(template_block, destination_block)
    +  result = Prism::Merge.merge_ruby(
    +    template_block,
    +    destination_block,
    +    "ruby",
    +    preference: :destination,
    +    add_template_only_nodes: true,
    +    signature_generator: Prism::Merge.ruby_dsl_signature_generator,
    +    method_move_policy: ruby_method_move_policy({}),
    +    merge_template_requires: true,
    +    template_only_placement: :after_anchor
    +  )
    +  result[:ok] ? result.fetch(:output) : template_block
     end
    -
    # File 'lib/kettle/jem.rb', line 6441
    +      
    # File 'lib/kettle/jem.rb', line 6792
     
    -def gemspec_self_dependency_names(request, package_name)
    -  names = [package_name.to_s]
    -  token_value = runtime_context_value(request, :template_tokens, "KJ|GEM_NAME")
    -  names << "{KJ|GEM_NAME}" if token_value.to_s == package_name.to_s
    -  names.reject(&:empty?).uniq
    +def merge_appraisals_template_policy(content, facts:)
    +  package_name = facts.dig(:package, :name).to_s if facts
    +  min_ruby = minimum_ruby_token(facts.dig(:ci, :test_min_ruby) || facts.dig(:rubygems, :min_ruby)) if facts
    +  with_framework_appraisals = merge_framework_matrix_appraisals(content, facts)
    +  with_standard_appraisal_gemfiles = inject_standard_appraisal_gemfiles(with_framework_appraisals, facts)
    +  pruned = prune_appraisals_recording_entries(with_standard_appraisal_gemfiles, facts)
    +  pruned = prune_appraisals_below_min_ruby(pruned, min_ruby)
    +  pruned = remove_gemfile_dependency_lines(pruned, [package_name])
    +  remove_gemfile_percent_w_entries(pruned, [package_name])
     end
    -
    # File 'lib/kettle/jem.rb', line 6065
    +      
    # File 'lib/kettle/jem.rb', line 7049
     
    -def gemspec_top_level_gem_version_node(content)
    -  context = Ast::Crispr::Ruby::Prism.document_context(content: content.to_s, source_label: "gemspec")
    -  gemspec_call = context.structural_owners(owner_scope: :top_level_statements).find do |owner|
    -    owner.is_a?(::Prism::CallNode) && owner.name == :new && owner.receiver&.slice == "Gem::Specification"
    -  end
    -  context.structural_owners(owner_scope: :top_level_statements).find do |owner|
    -    owner.is_a?(::Prism::LocalVariableWriteNode) &&
    -      owner.name == :gem_version &&
    -      (!gemspec_call || owner.location.start_offset < gemspec_call.location.start_offset)
    +def merge_bash_template_source(template_content, destination_content, recipe)
    +  availability = Bash::Merge.availability(source: template_content.to_s)
    +  unless availability.available?
    +    return {
    +      ok: false,
    +      output: destination_content,
    +      diagnostics: [{
    +        kind: "bash_merge_unavailable",
    +        message: "bash structural merge is unavailable because TreeHaver node parser support for Bash is not available",
    +        details: availability.diagnostics
    +      }]
    +    }
       end
    +
    +  output = Bash::Merge::SmartMerger.new(
    +    template_content,
    +    destination_content,
    +    **bash_merge_options(recipe)
    +  ).merge
    +  {ok: true, output: output, diagnostics: []}
    +rescue Bash::Merge::Error => e
    +  {ok: false, output: destination_content, diagnostics: [{kind: "bash_merge_failed", message: e.message}]}
     end
    -
    # File 'lib/kettle/jem.rb', line 4102
    -
    -def gemspec_version_loader_policy_operation(original, final, request)
    -  min_ruby = minimum_ruby_token(runtime_context_value(request, :rubygems, :min_ruby))
    -  return if min_ruby.to_s.empty?
    -
    -  modern = Gem::Version.new(min_ruby) >= MODERN_GEMSPEC_VERSION_LOADER_MIN_RUBY
    -  before_legacy = !gemspec_top_level_gem_version_node(original).nil?
    -  after_legacy = !gemspec_top_level_gem_version_node(final).nil?
    -  {
    -    operation: "rewrite_version_loader",
    -    min_ruby: min_ruby,
    -    mode: modern ? "modern" : "legacy",
    -    legacy_preamble_removed: before_legacy && !after_legacy,
    -    legacy_preamble_present: after_legacy
    -  }
    -rescue ArgumentError, Ast::Crispr::Error
    -  nil
    -end
    -
    -
    - -
    -

    - - .generated_blocks_facts(gemspec, facts, run_options) ⇒ Object - - - +
    # File 'lib/kettle/jem.rb', line 4073
     
    -  
    -

    - - - @@ -29672,9 +44414,9 @@

    -

    +

    - .generated_kettle_config_without_templates?(config) ⇒ Boolean + .merge_config_template_source(recipe, template_content, destination_content, facts: nil, env: ENV) ⇒ Object @@ -29689,13 +44431,13 @@

    -

    Returns:

    -
      +

      Raises:

      +
      • - (Boolean) + (ArgumentError) @@ -29709,19 +44451,147 @@

        -10223 -10224 -10225 -10226 -10227 +5286 +5287 +5288 +5289 +5290 +5291 +5292 +5293 +5294 +5295 +5296 +5297 +5298 +5299 +5300 +5301 +5302 +5303 +5304 +5305 +5306 +5307 +5308 +5309 +5310 +5311 +5312 +5313 +5314 +5315 +5316 +5317 +5318 +5319 +5320 +5321 +5322 +5323 +5324 +5325 +5326 +5327 +5328 +5329 +5330 +5331 +5332 +5333 +5334 +5335 +5336 +5337 +5338 +5339 +5340 +5341 +5342 +5343 +5344 +5345 +5346 +5347 +5348 +5349 +5350 +5351 +5352 +5353 +5354

    @@ -29729,60 +44599,121 @@

    -

    +

    - .generated_or_obsolete_github_workflow?(relative_path) ⇒ Boolean + .merge_dotenv_template_source(template_content, destination_content, recipe) ⇒ Object -

    -
    - +
    -
    +def merge_changelog_template_source(template_content, destination_content, facts: nil)
    +  destination = destination_content.to_s
    +  if destination.strip.empty?
    +    return apply_changelog_transfer_entries(
    +      ensure_trailing_newline(template_content.to_s),
    +      facts.to_h.dig(:changelog, :transfer_entries)
    +    )
    +  end
     
    +  template_lines = markdown_source_lines(template_content)
    +  template_unreleased = changelog_unreleased_line_index(template_lines)
    +  unless template_unreleased
    +    return apply_changelog_transfer_entries(
    +      ensure_trailing_newline(template_content.to_s),
    +      facts.to_h.dig(:changelog, :transfer_entries)
    +    )
    +  end
     
    -2982
    -2983
    -2984
    -2985
    -
    -
    # File 'lib/kettle/jem.rb', line 2982
    +  destination_lines = markdown_source_lines(destination)
    +  destination_unreleased = changelog_unreleased_line_index(destination_lines)
    +  unless destination_unreleased
    +    header = changelog_template_header(template_lines, template_unreleased).join("\n")
    +    return apply_changelog_transfer_entries(
    +      ensure_trailing_newline("#{header}\n\n#{destination}"),
    +      facts.to_h.dig(:changelog, :transfer_entries)
    +    )
    +  end
     
    -def generated_blocks_facts(gemspec, facts, run_options)
    -  shunted = shunted_gemfile_block(gemspec, facts, run_options)
    -  shunted ? {shunted_gemfile: shunted} : {}
    +  destination_end = changelog_unreleased_end_index(destination_lines, destination_unreleased)
    +  destination_body = destination_lines[(destination_unreleased + 1)...destination_end] || []
    +  canonical = build_changelog_unreleased_section(
    +    template_lines.fetch(template_unreleased),
    +    changelog_unreleased_items(destination_body)
    +  )
    +  header = changelog_template_header(template_lines, template_unreleased)
    +  merged_lines = header +
    +    (header.empty? ? [] : [""]) +
    +    canonical +
    +    destination_lines[destination_end..].to_a
    +  apply_changelog_transfer_entries(
    +    ensure_trailing_newline(merged_lines.join("\n").gsub(/\n{3,}/, "\n\n")),
    +    facts.to_h.dig(:changelog, :transfer_entries)
    +  )
     end
    -
    # File 'lib/kettle/jem.rb', line 10223
    +      
    # File 'lib/kettle/jem.rb', line 5286
     
    -def generated_kettle_config_without_templates?(config)
    -  return false unless config.is_a?(Hash)
    +def merge_config_template_source(recipe, template_content, destination_content, facts: nil, env: ENV)
    +  file_type = template_file_type(recipe)
    +  if destination_content.to_s.strip.empty?
    +    if file_type == :gemfile
    +      return finalize_gemfile_template_source(recipe, template_content, destination_content, facts: facts, template_content: template_content)
    +    end
    +    return merge_appraisals_template_policy(template_content, facts: facts) if file_type == :appraisals
    +    return finalize_github_workflow_template(prune_github_workflow_matrix_by_min_ruby(template_content, facts), facts) if github_workflow_template_recipe?(recipe)
     
    -  config["tokens"].is_a?(Hash)
    +    return template_content
    +  end
    +  if destination_content == template_content
    +    if file_type == :gemfile
    +      return finalize_gemfile_template_source(recipe, destination_content, destination_content, facts: facts, template_content: template_content)
    +    end
    +    return merge_appraisals_template_policy(destination_content, facts: facts) if file_type == :appraisals
    +
    +    return destination_content
    +  end
    +
    +  case file_type
    +  when :gemspec
    +    return merge_gemspec_template_source(template_content, destination_content, facts: facts, env: env)
    +  when :ruby, :gemfile, :rakefile, :appraisals
    +    merge_result = merge_ruby_template_source(file_type, recipe, template_content, destination_content, facts: facts)
    +  when :yaml
    +    merge_result = Psych::Merge.merge_yaml(
    +      template_content,
    +      destination_content,
    +      "yaml",
    +      **yaml_merge_options(recipe)
    +    )
    +  when :toml
    +    merge_result = Citrus::Toml::Merge.merge_toml(template_content, destination_content, "toml")
    +  when :json, :jsonc
    +    merge_result = merge_json_template_source(template_content, destination_content, recipe, file_type)
    +  when :markdown
    +    return merge_changelog_template_source(template_content, destination_content, facts: facts) if recipe.fetch(:target_path) == "CHANGELOG.md"
    +
    +    return template_content
    +  when :dotenv
    +    merge_result = merge_dotenv_template_source(template_content, destination_content, recipe)
    +  when :rbs
    +    merge_result = merge_rbs_template_source(template_content, destination_content, recipe)
    +  when :bash
    +    merge_result = merge_bash_template_source(template_content, destination_content, recipe)
    +  else
    +    return template_content
    +  end
    +  if merge_result[:ok]
    +    output = merge_result.fetch(:output)
    +    if file_type == :gemfile
    +      output = merge_gemfile_eval_bucket_entries(template_content, output, destination_content: destination_content)
    +      return finalize_gemfile_template_source(recipe, output, destination_content, facts: facts, template_content: template_content)
    +    end
    +    return merge_appraisals_template_policy(output, facts: facts) if file_type == :appraisals
    +
    +    output = finalize_github_workflow_template(prune_github_workflow_matrix_by_min_ruby(output, facts), facts) if github_workflow_template_recipe?(recipe)
    +    output = normalize_simplecov_template_source(output) if recipe.fetch(:target_path).to_s == ".simplecov"
    +    return output
    +  end
    +
    +  raise adapter_failure_template_source_error(file_type, recipe) if process_result_adapter_failure?(merge_result)
    +  return template_content if github_workflow_template_recipe?(recipe)
    +
    +  diagnostics = merge_result.fetch(:diagnostics, [])
    +  message = diagnostics.map { |diagnostic| diagnostic[:message] || diagnostic["message"] }.compact.join("; ")
    +  raise ArgumentError, "failed to merge #{file_type} template #{recipe.fetch(:target_path)}: #{message}"
     end
    + + + + +
    +
     
     
    -  
    +7001
    +7002
    +7003
    +7004
    +7005
    +7006
    +7007
    +7008
    +7009
    +7010
    +
    +
    # File 'lib/kettle/jem.rb', line 7001
    +
    +def merge_dotenv_template_source(template_content, destination_content, recipe)
    +  output = Dotenv::Merge::SmartMerger.new(
    +    template_content,
    +    destination_content,
    +    **dotenv_merge_options(recipe)
    +  ).merge
    +  {ok: true, output: output, diagnostics: []}
    +rescue Dotenv::Merge::Error => e
    +  {ok: false, output: destination_content, diagnostics: [{kind: "dotenv_merge_failed", message: e.message}]}
    +end
    +
    -
    + +
    +

    -

    Returns:

    -
      + .merge_framework_matrix_appraisals(content, facts) ⇒ Object -
    • - - - (Boolean) - - - -
    • + -
    -

    + +
    @@ -29790,64 +44721,111 @@

    -

    - - .generated_version_tree_source_url?(source_url, version) ⇒ Boolean +

    - + .merge_gemfile_eval_bucket_entries(template_content, merged_content, destination_content: nil) ⇒ Object -

    -
    - - -
    -
    -
    - -

    Returns:

    -
      - -
    • - - - (Boolean) - - - -
    • -
    - -

     
     
    -7530
    -7531
    -7532
    -7533
    -7534
    -7535
    -7536
    +6908 +6909 +6910 +6911 +6912 +6913 +6914 +6915 +6916 +6917 +6918 +6919 +6920 +6921 +6922 +6923 +6924 +6925 +6926 +6927 +6928 +6929 +6930 +6931 +6932 +6933 +6934
    -
    # File 'lib/kettle/jem.rb', line 7530
    +      
    # File 'lib/kettle/jem.rb', line 6908
     
    -def generated_or_obsolete_github_workflow?(relative_path)
    -  return true if preferred_template_source(PACKAGED_TEMPLATE_ROOT, relative_path)
    -  return true if stale_versioned_engine_workflow?(relative_path)
    -  return true if relative_path == ".github/workflows/opencollective.yml"
    +def merge_framework_matrix_appraisals(content, facts)
    +  entries = facts.to_h.dig(:ci, :framework_matrix, :appraisals).to_a
    +  return content if entries.empty?
     
    -  OBSOLETE_GITHUB_WORKFLOWS.include?(File.basename(relative_path))
    +  generated = entries.to_h do |entry|
    +    [entry.fetch(:name).to_s, framework_matrix_appraisal_block(entry)]
    +  end
    +  replaced = entries.flat_map { |entry| entry.fetch(:replaces, []) }.map(&:to_s).to_set
    +  parsed = appraisal_blocks(content)
    +  emitted = Set.new
    +  blocks = parsed.fetch(:order).map do |name|
    +    next if replaced.include?(name) && !generated.key?(name)
    +
    +    emitted << name
    +    parsed_block = parsed.fetch(:blocks).fetch(name).rstrip
    +    generated_block = generated[name]
    +    generated_block ? merge_appraisal_blocks_with_prism(generated_block, parsed_block) : parsed_block
    +  end.compact
    +  entries.each do |entry|
    +    name = entry.fetch(:name).to_s
    +    next if emitted.include?(name)
    +
    +    blocks << generated.fetch(name)
    +  end
    +
    +  ensure_trailing_newline(([parsed.fetch(:prelude).to_s.rstrip] + blocks).reject(&:empty?).join("\n\n"))
     end
    +
    @@ -29855,58 +44833,55 @@

    -

    - - .git_capture(project_root, *args) ⇒ Object +

    - + .merge_gemfile_template_policy(content, facts:, template_content: nil, preserve_self_word_entries: false) ⇒ Object -

    -
    - - -
    -
    -
    - -

    Raises:

    -
      - -
    • - - - (ArgumentError) - - - -
    • -
    - -

     
     
    -8563
    -8564
    -8565
    -8566
    -8567
    -8568
    -8569
    -8570
    -8571
    +6698 +6699 +6700 +6701 +6702 +6703 +6704 +6705 +6706 +6707 +6708 +6709 +6710 +6711 +6712 +6713 +6714 +6715 +6716 +6717 +6718 +6719 +6720 +6721 +6722 +6723 +6724 +6725 +6726 +6727 +6728 +6729 +6730 +6731 +6732 +6733 +6734 +6735 +6736 +6737 +6738 +6739 +6740 +6741
    -
    # File 'lib/kettle/jem.rb', line 8563
    +      
    # File 'lib/kettle/jem.rb', line 6698
     
    -def generated_version_tree_source_url?(source_url, version)
    -  return false unless present_template_token_value?(source_url) && present_template_token_value?(version)
    +def merge_gemfile_eval_bucket_entries(template_content, merged_content, destination_content: nil)
    +  template_entries = gemfile_eval_bucket_entries(template_content)
    +  template_by_key = template_entries.to_h { |entry| [entry.fetch(:key), entry] }
    +  destination_entries = gemfile_eval_bucket_entries(destination_content)
    +  destination_only_entries = destination_entries.reject { |entry| template_by_key.key?(entry.fetch(:key)) }
    +  return merged_content if template_entries.empty? && destination_only_entries.empty?
     
    -  uri = URI.parse(source_url.to_s)
    -  segments = uri.path.to_s.split("/").reject(&:empty?)
    -  uri.host == "github.com" && segments[2] == "tree" && segments[3] == "v#{version}"
    -rescue URI::InvalidURIError
    -  false
    +  emitted_paths = Set.new
    +  insert_at = nil
    +  lines = []
    +  merged_lines = merged_content.to_s.lines
    +   = gemfile_eval_bucket_entries(merged_content).to_h { |entry| [entry.fetch(:start_line), entry] }
    +  skip_until = 0
    +  merged_lines.each_with_index do |line, index|
    +    line_number = index + 1
    +    next if line_number < skip_until
    +
    +    entry = [line_number]
    +    unless entry && template_by_key.key?(entry.fetch(:key))
    +      lines << line
    +      next
    +    end
    +
    +    template_entry = template_by_key.fetch(entry.fetch(:key))
    +    if entry.fetch(:path) == template_entry.fetch(:path)
    +      lines << entry.fetch(:line) unless emitted_paths.include?(entry.fetch(:path))
    +      emitted_paths << entry.fetch(:path)
    +    else
    +      insert_at ||= lines.length
    +    end
    +    skip_until = entry.fetch(:end_line) + 1
    +  end
    +
    +  existing_paths = gemfile_eval_bucket_entries(lines.join).map { |entry| entry.fetch(:path) }.to_set
    +  wanted_entries = template_entries + destination_only_entries
    +  missing_lines = wanted_entries
    +    .reject { |entry| emitted_paths.include?(entry.fetch(:path)) || existing_paths.include?(entry.fetch(:path)) }
    +    .map { |entry| entry.fetch(:section_line) }
    +  return ensure_trailing_newline(lines.join) if missing_lines.empty?
    +
    +  insert_at ||= lines.length
    +  lines[insert_at, 0] = missing_lines
    +  ensure_trailing_newline(lines.join.gsub(/\n{3,}/, "\n\n"))
     end
    +
    @@ -29914,9 +44889,9 @@

    -

    - .git_copyright_lines(project_root, machine_users) ⇒ Object + .merge_gemspec_files_assignment(content, template_content:, destination_content:, template_receiver:, destination_receiver:) ⇒ Object @@ -29928,53 +44903,53 @@

    @@ -29982,9 +44957,9 @@
     
     
    -8292
    -8293
    -8294
    -8295
    -8296
    -8297
    +6256 +6257 +6258 +6259 +6260 +6261 +6262 +6263 +6264 +6265 +6266 +6267 +6268 +6269 +6270 +6271
    -
    # File 'lib/kettle/jem.rb', line 8292
    -
    -def git_capture(project_root, *args)
    -  output = IO.popen(["git", "-C", project_root.to_s, *args], err: File::NULL, &:read)
    -  raise ArgumentError, "git #{args.join(" ")} failed" unless $CHILD_STATUS&.success?
    +      
    # File 'lib/kettle/jem.rb', line 6256
     
    -  output.to_s
    +def merge_gemfile_template_policy(content, facts:, template_content: nil, preserve_self_word_entries: false)
    +  package_name = facts.dig(:package, :name).to_s if facts
    +  removable_gems = ["appraisal"]
    +  removable_gems << package_name unless package_name.to_s.empty?
    +  removable_gems.concat(package_runtime_dependency_names(facts))
    +  removable_gems << "version_gem" unless version_gem_runtime_compatible?(facts)
    +  pruned = remove_gemfile_dependency_blocks(content, removable_gems)
    +  pruned = remove_gemfile_percent_w_entries(pruned, [package_name]) unless preserve_self_word_entries
    +  pruned = merge_template_gemfile_dependency_blocks(
    +    template_content,
    +    pruned,
    +    removable_gems,
    +    preserve_self_word_entries: preserve_self_word_entries
    +  )
    +  apply_commented_gem_dependency_policy(template_content, pruned)
     end
    -
    # File 'lib/kettle/jem.rb', line 8269
    +      
    # File 'lib/kettle/jem.rb', line 7533
     
    -def git_copyright_lines(project_root, machine_users)
    -  files = git_capture(project_root, "ls-files", "-z")
    -  return [] if files.to_s.empty?
    -
    -  author_map = Hash.new { |hash, email| hash[email] = {name: nil, years: [], email: email} }
    -  files.split("\0").reject(&:empty?).each do |relative_path|
    -    next unless File.exist?(File.join(project_root, relative_path))
    +def merge_gemspec_files_assignment(content, template_content:, destination_content:, template_receiver:, destination_receiver:)
    +  merged_record = gemspec_assignment_records(content, receiver: template_receiver).find { |record| record.fetch(:field) == "files" }
    +  template_record = gemspec_assignment_records(template_content, receiver: template_receiver).find { |record| record.fetch(:field) == "files" }
    +  destination_record = gemspec_assignment_records(destination_content, receiver: destination_receiver).find { |record| record.fetch(:field) == "files" }
    +  return content unless merged_record && template_record && destination_record
     
    -    parse_blame_porcelain(git_capture(project_root, "blame", "--porcelain", "--", relative_path), author_map)
    -  rescue ArgumentError
    -    next
    +  replacement = merge_gemspec_files_assignment_source(
    +    merged_record: merged_record,
    +    template_record: template_record,
    +    destination_record: destination_record
    +  )
    +  replacement ||= replacement_for_supported_gemspec_files_assignment(
    +    template_record: template_record,
    +    destination_record: destination_record,
    +    template_receiver: template_receiver
    +  )
    +  unless replacement
    +    raise Error, "Unsupported gemspec spec.files assignment; kettle-jem requires an AST-mergeable Array, Dir[], or known Bundler git-ls-files assignment"
       end
    -  resolve_uncommitted_author!(project_root, author_map)
    -  author_map.values
    -    .reject { |entry| copyright_bot_entry?(entry) }
    -    .reject { |entry| copyright_machine_user_entry?(entry, machine_users) }
    -    .reject { |entry| entry[:name].to_s.strip.empty? || entry[:years].empty? }
    -    .sort_by { |entry| [entry[:years].map(&:to_i).min, entry[:name].to_s.downcase] }
    -    .map { |entry| "Copyright (c) #{format_copyright_years(entry[:years])} #{entry[:name]}" }
    -rescue ArgumentError
    -  []
    +
    +  replace_source_range_lines(content, merged_record.fetch(:start_line), merged_record.fetch(:end_line), replacement)
     end
    + - @@ -30014,9 +45069,9 @@

    -

    +

    - .git_preflight_report(project_root, template_selection:) ⇒ Object + .merge_gemspec_files_assignment_with_destination_splats(merged_parts:, destination_parts:) ⇒ Object @@ -30028,65 +45083,83 @@

     
     
    -7565
    -7566
    -7567
    -7568
    -7569
    -7570
    -7571
    -7572
    -7573
    -7574
    -7575
    +7690 +7691 +7692 +7693 +7694 +7695 +7696 +7697 +7698 +7699 +7700 +7701 +7702 +7703 +7704 +7705 +7706 +7707 +7708 +7709 +7710 +7711 +7712 +7713 +7714 +7715 +7716 +7717 +7718 +7719 +7720 +7721 +7722 +7723 +7724 +7725 +7726

    - -
    -
    +      
    +
    +
    +7574
    +7575
    +7576
    +7577
    +7578
    +7579
    +7580
    +7581
    +7582
    +7583
    +7584
    +7585
    +7586
    +7587
    +7588
    +7589
    +7590
    +7591
    +7592
    +7593
    +7594
    +7595
    +7596
    +7597
    +7598
    +7599
    +7600
    +7601
    +7602
    +7603
    +7604
    +7605
    +7606
    +7607
    +7608
    +7609
    +7610
    +7611
    +7612
    +7613
    +7614
    +7615
    +7616
    +7617
    +
    +
    # File 'lib/kettle/jem.rb', line 7574
     
    +def merge_gemspec_files_assignment_source(merged_record:, template_record:, destination_record:)
    +  merged_parts = gemspec_files_collection_parts(merged_record)
    +  template_parts = gemspec_files_collection_parts(template_record)
    +  destination_parts = gemspec_files_collection_parts(destination_record)
    +  return unless merged_parts && template_parts && destination_parts
     
    -7589
    -7590
    -7591
    -7592
    -
    -
    # File 'lib/kettle/jem.rb', line 7589
    +  if gemspec_files_collection_has_nonliteral_entries?(destination_parts)
    +    return merge_gemspec_files_assignment_with_destination_splats(
    +      merged_parts: merged_parts,
    +      destination_parts: destination_parts
    +    )
    +  end
     
    -def git_output(project_root, *args)
    -  stdout, _stderr, status = Open3.capture3("git", "-C", project_root.to_s, *args)
    -  status.success? ? stdout : ""
    +  combined_groups = []
    +  seen = {}
    +  destination_groups = destination_parts.fetch(:groups).reject do |group|
    +    stale_generated_gemspec_files_group?(group) ||
    +      (group, template_parts)
    +  end
    +  merged_groups = merged_parts.fetch(:groups).reject do |group|
    +    (group, merged_parts)
    +  end
    +
    +  [
    +    [destination_parts, destination_groups],
    +    [merged_parts, merged_groups],
    +    [template_parts, template_parts.fetch(:groups)]
    +  ].each do |parts, groups|
    +    groups.each do |group|
    +      next if seen[group.fetch(:key)]
    +
    +      combined_groups << group.merge(source_collection_kind: gemspec_files_group_collection_kind(group, parts))
    +      seen[group.fetch(:key)] = true
    +    end
    +  end
    +  if gemspec_files_collection_needs_concat?(merged_parts, combined_groups)
    +    return gemspec_files_concat_collection_source(merged_parts, combined_groups)
    +  end
    +
    +  body = combined_groups.each_with_index.map do |group, index|
    +    gemspec_files_collection_group_source(group, trailing_comma: index < combined_groups.length - 1)
    +  end.join
    +  merged_parts.fetch(:opening) + body + merged_parts.fetch(:closing)
     end
    -
    # File 'lib/kettle/jem.rb', line 7565
    +      
    # File 'lib/kettle/jem.rb', line 7690
     
    -def git_preflight_report(project_root, template_selection:)
    -  inside = git_success?(project_root, "rev-parse", "--is-inside-work-tree")
    -  status = inside ? git_output(project_root, "status", "--porcelain") : nil
    -  dirty_entries = status.to_s.lines.map(&:chomp).reject(&:empty?)
    -  {
    -    git_repository: inside,
    -    clean_worktree: inside && dirty_entries.empty?,
    -    dirty_entries: dirty_entries,
    -    skip_commit: template_selection.fetch(:skip_commit, false)
    -  }
    -end
    -
    -
    - -
    -

    - - .git_remote_source_url(project_root) ⇒ Object - +def merge_gemspec_files_assignment_with_destination_splats(merged_parts:, destination_parts:) + return unless %i[array concat].include?(destination_parts.fetch(:collection_kind)) - + merged_keys = merged_parts.fetch(:groups).map { |group| group.fetch(:key) }.to_set + destination_groups = destination_parts.fetch(:groups).reject do |group| + stale_generated_gemspec_files_group?(group) || + (group, merged_parts) + end + destination_only_nonliteral = destination_groups.any? do |group| + !group.fetch(:node).is_a?(::Prism::StringNode) && !merged_keys.include?(group.fetch(:key)) + end + return if destination_only_nonliteral - -

    - - - @@ -30094,54 +45167,123 @@

    -

    - - .git_success?(project_root, *args) ⇒ Boolean +

    - + .merge_gemspec_template_source(template_content, destination_content, facts: nil, env: ENV) ⇒ Object -

    -
    - - -
    -
    -
    - -

    Returns:

    -
      - -
    • - - - (Boolean) - - - -
    • -
    - -

    -
    +  destination_groups_by_key = destination_groups.to_h do |group|
    +    [group.fetch(:key), group.merge(source_collection_kind: gemspec_files_group_collection_kind(group, destination_parts))]
    +  end
    +  seen = Set.new
    +  merged_groups = merged_parts.fetch(:groups).reject do |group|
    +    (group, merged_parts)
    +  end
    +  groups = merged_groups.map do |group|
    +    key = group.fetch(:key)
    +    seen << key
    +    destination_groups_by_key.fetch(key, group.merge(source_collection_kind: gemspec_files_group_collection_kind(group, merged_parts)))
    +  end
    +  destination_groups.each do |group|
    +    next if seen.include?(group.fetch(:key))
     
    +    groups << group.merge(source_collection_kind: gemspec_files_group_collection_kind(group, destination_parts))
    +  end
     
    -9122
    -9123
    -9124
    -9125
    -9126
    -
    -
    # File 'lib/kettle/jem.rb', line 9122
    +  if gemspec_files_collection_needs_concat?(merged_parts, groups)
    +    return gemspec_files_concat_collection_source(merged_parts, groups)
    +  end
     
    -def git_remote_source_url(project_root)
    -  normalize_git_source_url(git_capture(project_root, "config", "--get", "remote.origin.url").strip)
    -rescue ArgumentError
    -  nil
    +  gemspec_files_array_collection_source(merged_parts, groups)
     end
    +
    @@ -30149,9 +45291,9 @@

    -

    +

    - .git_worktree_prefix(project_root) ⇒ Object + .merge_json_template_source(template_content, destination_content, recipe, file_type) ⇒ Object @@ -30163,19 +45305,29 @@

     
     
    -9094
    -9095
    -9096
    -9097
    -9098
    +6977 +6978 +6979 +6980 +6981 +6982 +6983 +6984 +6985 +6986

    @@ -30183,9 +45335,9 @@

    -

    +

    - .git_worktree_root(project_root) ⇒ Object + .merge_local_gem_overrides(content, destination_content, facts:, template_content: nil) ⇒ Object @@ -30197,21 +45349,33 @@

     
     
    -9087
    -9088
    -9089
    -9090
    -9091
    -9092
    +5952 +5953 +5954 +5955 +5956 +5957 +5958 +5959 +5960 +5961 +5962 +5963

    @@ -30219,9 +45383,9 @@

    -

    +

    - .github_actions_coverage_config(config, env = ENV) ⇒ Object + .merge_prism_gemfile_template_source(template_content, destination_content) ⇒ Object @@ -30233,39 +45397,29 @@

     
     
    -10809
    -10810
    -10811
    -10812
    -10813
    -10814
    -10815
    -10816
    -10817
    -10818
    -10819
    -10820
    -10821
    -10822
    -10823
    +6224 +6225 +6226 +6227 +6228 +6229 +6230 +6231 +6232 +6233

    @@ -30273,56 +45427,43 @@

    -

    - - .github_actions_coverage_enabled?(content) ⇒ Boolean +

    - + .merge_rbs_signature_sources(template_content, destination_content) ⇒ Object -

    -
    - - -
    -
    -
    - -

    Returns:

    -
      - -
    • - - - (Boolean) - - - -
    • -
    - -

     
     
    -7584
    -7585
    -7586
    -7587
    +7148 +7149 +7150 +7151 +7152 +7153 +7154 +7155 +7156 +7157 +7158 +7159 +7160 +7161 +7162 +7163 +7164 +7165 +7166 +7167 +7168 +7169 +7170 +7171 +7172 +7173 +7174 +7175 +7176 +7177 +7178 +7179 +7180 +7181 +7182 +7183 +7184 +7185 +7186 +7187 +7188 +7189 +7190 +7191 +7192 +7193 +7194 +7195 +7196 +7197
    -
    # File 'lib/kettle/jem.rb', line 7584
    +      
    # File 'lib/kettle/jem.rb', line 7148
     
    -def git_success?(project_root, *args)
    -  _stdout, _stderr, status = Open3.capture3("git", "-C", project_root.to_s, *args)
    -  status.success?
    +def merge_gemspec_template_source(template_content, destination_content, facts: nil, env: ENV)
    +  template_receiver = gemspec_block_param(template_content) || "spec"
    +  destination_receiver = gemspec_block_param(destination_content) || "spec"
    +  package_name = facts.dig(:package, :name).to_s if facts
    +  replacements = gemspec_preserved_assignments(destination_content, receiver: destination_receiver)
    +    .except(*env_overridden_gemspec_fields(env))
    +  replacements = remove_stale_generated_gemspec_homepage_replacement(
    +    replacements,
    +    destination_content,
    +    facts,
    +    receiver: destination_receiver
    +  )
    +  normalized_replacements = replacements.to_h do |field, source|
    +    replacement = normalize_gemspec_receiver(source.rstrip, from: destination_receiver, to: template_receiver)
    +    [field, normalize_gemspec_project_emoji(replacement, facts, field: field)]
    +  end
    +  merged = replace_gemspec_assignment_sources(template_content, normalized_replacements, receiver: template_receiver)
    +  merged = insert_missing_gemspec_assignment_sources(merged, normalized_replacements, receiver: template_receiver)
    +  merged = merge_gemspec_files_assignment(
    +    merged,
    +    template_content: template_content,
    +    destination_content: destination_content,
    +    template_receiver: template_receiver,
    +    destination_receiver: destination_receiver
    +  )
    +  merged = insert_missing_gemspec_files_assignment(
    +    merged,
    +    template_content: template_content,
    +    template_receiver: template_receiver
    +  )
    +  merged = remove_gemspec_assignment(merged, receiver: template_receiver, field: "extra_rdoc_files")
    +  merged = preserve_gemspec_dependency_lines(
    +    merged,
    +    destination_content,
    +    template_receiver: template_receiver,
    +    destination_receiver: destination_receiver,
    +    facts: facts
    +  )
    +  merged = preserve_gemspec_freeze_blocks(merged, destination_content, facts: facts, receiver: template_receiver)
    +  merged = apply_configured_gemspec_licenses(merged, facts, receiver: template_receiver)
    +  merged = apply_configured_gemspec_required_ruby_version(merged, facts, receiver: template_receiver)
    +  merged = remove_duplicate_gemspec_assignments(merged, receiver: template_receiver, fields: %w[homepage])
    +  merged = remove_gemspec_self_dependency_lines(merged, package_name, receiver: template_receiver)
    +  merged = remove_gemspec_version_gem_dependency_when_runtime_incompatible(merged, facts, receiver: template_receiver)
    +  merged = remove_gemspec_version_gem_dependency_when_non_default_entrypoint(merged, facts, receiver: template_receiver)
    +  merged = remove_gemspec_development_dependencies_already_runtime(merged, receiver: template_receiver)
    +  merged = remove_empty_gemspec_development_dependency_section_headings(merged, receiver: template_receiver)
    +  merged = sort_runtime_gemspec_dependency_lines(merged, receiver: template_receiver)
    +  rewrite_gemspec_version_loader(merged, facts: facts)
     end
    -
    # File 'lib/kettle/jem.rb', line 9094
    +      
    # File 'lib/kettle/jem.rb', line 6977
     
    -def git_worktree_prefix(project_root)
    -  git_capture(project_root, "rev-parse", "--show-prefix").strip
    -rescue ArgumentError
    -  ""
    +def merge_json_template_source(template_content, destination_content, recipe, file_type)
    +  output = Json::Merge::SmartMerger.new(
    +    template_content,
    +    destination_content,
    +    **json_merge_options(recipe)
    +  ).merge
    +  {ok: true, output: output, diagnostics: []}
    +rescue Json::Merge::Error => e
    +  {ok: false, output: destination_content, diagnostics: [{kind: "#{file_type}_merge_failed", message: e.message}]}
     end
    -
    # File 'lib/kettle/jem.rb', line 9087
    +      
    # File 'lib/kettle/jem.rb', line 5952
     
    -def git_worktree_root(project_root)
    -  root = git_capture(project_root, "rev-parse", "--show-toplevel").strip
    -  root.empty? ? project_root.to_s : root
    -rescue ArgumentError
    -  project_root.to_s
    +def merge_local_gem_overrides(content, destination_content, facts:, template_content: nil)
    +  template_gems = local_gems_assignment(content)
    +  template_gems = local_gems_assignment(template_content) if template_gems.empty?
    +  destination_gems = local_gems_assignment(destination_content)
    +  return content if template_gems.empty? && destination_gems.empty?
    +
    +  destination_gems = destination_gems.reject do |destination_gem|
    +    template_gems.any? { |template_gem| versioned_gem_name_update_candidate?(destination_gem, template_gem) }
    +  end
    +  gems = (template_gems + destination_gems).map(&:to_s).reject(&:empty?).uniq
    +  replace_local_gems_assignment(content, gems)
     end
    -
    # File 'lib/kettle/jem.rb', line 10809
    -
    -def github_actions_coverage_config(config, env = ENV)
    -  workflows = config["workflows"]
    -  return {} unless workflows.is_a?(Hash)
    -
    -  raw = workflows["coverage"]
    -  enabled = raw == true || (raw.is_a?(Hash) && raw.fetch("enabled", false) == true)
    -  return {} unless enabled
    +      
    # File 'lib/kettle/jem.rb', line 6224
     
    -  raw = {} unless raw.is_a?(Hash)
    -  {
    -    enabled: true,
    -    command: raw.fetch("command", github_actions_exec_cmd(config, env)).to_s,
    -    appraisal: raw.fetch("appraisal", "coverage").to_s
    -  }
    +def merge_prism_gemfile_template_source(template_content, destination_content)
    +  Prism::Merge.merge_ruby(
    +    template_content,
    +    destination_content,
    +    "ruby",
    +    preference: :template,
    +    add_template_only_nodes: true,
    +    signature_generator: Prism::Merge.ruby_dsl_signature_generator
    +  )
     end
    +
    @@ -30330,9 +45471,9 @@

    -

    +

    - .github_actions_coverage_stepsObject + .merge_rbs_template_source(template_content, destination_content, recipe) ⇒ Object @@ -30344,129 +45485,39 @@

     
     
    -11408
    -11409
    -11410
    -11411
    -11412
    -11413
    -11414
    -11415
    -11416
    -11417
    -11418
    -11419
    -11420
    -11421
    -11422
    -11423
    -11424
    -11425
    -11426
    -11427
    -11428
    -11429
    -11430
    -11431
    -11432
    -11433
    -11434
    -11435
    -11436
    -11437
    -11438
    -11439
    -11440
    -11441
    -11442
    -11443
    -11444
    -11445
    -11446
    -11447
    -11448
    -11449
    -11450
    -11451
    -11452
    -11453
    -11454
    -11455
    -11456
    -11457
    -11458
    -11459
    -11460
    -11461
    -11462
    +7025 +7026 +7027 +7028 +7029 +7030 +7031 +7032 +7033 +7034

     
     
    -11369
    -11370
    -11371
    -11372
    -11373
    +11185 +11186 +11187 +11188 +11189 +11190 +11191 +11192 +11193 +11194
    -
    # File 'lib/kettle/jem.rb', line 11369
    +      
    # File 'lib/kettle/jem.rb', line 11185
     
    -def github_actions_coverage_enabled?(content)
    -  yaml_contains_key_value?(YAML.safe_load(content.to_s, aliases: true), "K_SOUP_COV_DO", "true")
    -rescue Psych::Exception
    -  false
    +def merge_rbs_signature_sources(template_content, destination_content)
    +  return ensure_trailing_newline(template_content) if destination_content.to_s.strip.empty?
    +
    +  result = merge_rbs_template_source(
    +    ensure_trailing_newline(template_content),
    +    ensure_trailing_newline(destination_content),
    +    {template_preference: {preference: "destination"}}
    +  )
    +  result.fetch(:ok) ? result.fetch(:output) : ensure_trailing_newline(destination_content)
     end
    -
    # File 'lib/kettle/jem.rb', line 11408
    +      
    # File 'lib/kettle/jem.rb', line 7025
     
    -def github_actions_coverage_steps
    -  <<~YAML.lines.map { |line| line.strip.empty? ? line : "      #{line}" }.join.chomp
    -    - name: Upload coverage to Coveralls
    -      if: ${{ !env.ACT }}
    -      uses: coverallsapp/github-action@5cbfd81b66ca5d10c19b062c04de0199c215fb6e # v2.3.7
    -      with:
    -        github-token: ${{ secrets.GITHUB_TOKEN }}
    -        file: coverage/lcov.info
    -        format: lcov
    -      continue-on-error: ${{ matrix.experimental || endsWith(matrix.ruby, 'head') }}
    -
    -    - name: Upload coverage to QLTY
    -      if: ${{ !env.ACT }}
    -      uses: qltysh/qlty-action/coverage@fd52dc852530a708d68c3b7342f8d33d1df4cd55 # v2.2.1
    -      with:
    -        oidc: true
    -        files: coverage/lcov.info
    -        format: lcov
    -        skip-errors: false
    -      continue-on-error: ${{ matrix.experimental || endsWith(matrix.ruby, 'head') }}
    -
    -    - name: Upload coverage to CodeCov
    -      if: ${{ !env.ACT }}
    -      uses: codecov/codecov-action@fb8b3582c8e4def4969c97caa2f19720cb33a72f # v7
    -      with:
    -        use_oidc: true
    -        disable_search: true
    -        fail_ci_if_error: false
    -        files: coverage/lcov.info,coverage/coverage.xml
    -        verbose: true
    -
    -    - name: Code Coverage Summary Report
    -      if: ${{ !env.ACT && github.event_name == 'pull_request' }}
    -      uses: irongut/CodeCoverageSummary@51cc3a756ddcd398d447c044c02cb6aa83fdae95 # v1.3.0
    -      with:
    -        filename: ./coverage/coverage.xml
    -        badge: true
    -        fail_below_min: true
    -        format: markdown
    -        hide_branch_rate: false
    -        hide_complexity: true
    -        indicators: true
    -        output: both
    -        thresholds: '${{ env.K_SOUP_COV_MIN_LINE }} ${{ env.K_SOUP_COV_MIN_BRANCH }}'
    -      continue-on-error: ${{ matrix.experimental || endsWith(matrix.ruby, 'head') }}
    -
    -    - name: Add Coverage PR Comment
    -      uses: marocchino/sticky-pull-request-comment@0ea0beb66eb9baf113663a64ec522f60e49231c0 # v3.0.4
    -      if: ${{ !env.ACT && github.event_name == 'pull_request' }}
    -      with:
    -        recreate: true
    -        path: code-coverage-results.md
    -      continue-on-error: ${{ matrix.experimental || endsWith(matrix.ruby, 'head') }}
    -  YAML
    -end
    +def merge_rbs_template_source(template_content, destination_content, recipe) + output = Rbs::Merge::SmartMerger.new( + template_content, + destination_content, + **rbs_merge_options(recipe) + ).merge + {ok: true, output: output, diagnostics: []} +rescue Rbs::Merge::Error => e + {ok: false, output: destination_content, diagnostics: [{kind: "rbs_merge_failed", message: e.message}]} +end
    -

    +

    - .github_actions_custom_workflows(project_root, config = {}, opencollective_disabled: false) ⇒ Object + .merge_readme_template(template_content:, destination_content:, preserve_config: {}) ⇒ Object @@ -30478,37 +45529,25 @@

     
     
    -7479
    -7480
    -7481
    -7482
    -7483
    -7484
    -7485
    -7486
    -7487
    -7488
    -7489
    -7490
    -7491
    -7492
    +12675 +12676 +12677 +12678 +12679 +12680 +12681 +12682 -
    # File 'lib/kettle/jem.rb', line 7479
    -
    -def github_actions_custom_workflows(project_root, config = {}, opencollective_disabled: false)
    -  workflow_root = File.join(project_root, ".github", "workflows")
    -  return [] unless Dir.exist?(workflow_root)
    +      
    # File 'lib/kettle/jem.rb', line 12675
     
    -  Dir.glob(File.join(workflow_root, "*.{yml,yaml}")).filter_map do |path|
    -    relative_path = path.delete_prefix("#{project_root}/")
    -    next if opencollective_disabled && opencollective_disabled_file?(relative_path)
    -    next if inactive_packaged_workflow?(relative_path, config)
    -    next if generated_or_obsolete_github_workflow?(relative_path) &&
    -      !skip_packaged_workflow_template?(relative_path, config)
    +def merge_readme_template(template_content:, destination_content:, preserve_config: {})
    +  return template_content if destination_content.to_s.strip.empty?
     
    -    relative_path
    -  end.sort
    +  with_front_sections = preserve_readme_front_sections(template_content, destination_content)
    +  preserved = preserve_readme_sections(with_front_sections, destination_content, preserve_config)
    +  with_h1 = preserve_readme_h1(preserved, destination_content, preserve_config)
    +  preserve_readme_managed_block(with_h1, destination_content, "kettle-jem:metadata")
     end
    @@ -30516,38 +45555,48 @@

    -

    +

    - .github_actions_exec_cmd(config, env) ⇒ Object + .merge_ruby_template_source(file_type, recipe, template_content, destination_content, facts: nil) ⇒ Object

    - - + @@ -30556,9 +45605,9 @@

    -

    +

    - .github_actions_framework_matrix(config) ⇒ Object + .merge_template_gemfile_dependency_blocks(template_content, content, removable_gems, preserve_self_word_entries: false) ⇒ Object @@ -30570,121 +45619,39 @@

     
     
    -10673
    -10674
    -10675
    -10676
    -10677
    -10678
    -10679
    -10680
    -10681
    -10682
    -10683
    -10684
    -10685
    -10686
    -10687
    -10688
    -10689
    -10690
    -10691
    -10692
    -10693
    -10694
    -10695
    -10696
    -10697
    -10698
    -10699
    -10700
    -10701
    -10702
    -10703
    -10704
    -10705
    -10706
    -10707
    -10708
    -10709
    -10710
    -10711
    -10712
    -10713
    -10714
    -10715
    -10716
    -10717
    -10718
    -10719
    -10720
    -10721
    -10722
    -10723
    -10724
    -10725
    -10726
    -10727
    -10728
    +6306 +6307 +6308 +6309 +6310 +6311 +6312 +6313 +6314 +6315 +6316 +6317 +6318 +6319 +6320

    @@ -30692,9 +45659,9 @@

    -

    +

    - .github_actions_obsolete_workflows(project_root) ⇒ Object + .metadata_value(metadata, key) ⇒ Object @@ -30706,25 +45673,23 @@

     
     
    -7513
    -7514
    -7515
    -7516
    -7517
    -7518
    -7519
    -7520
    +10990 +10991 +10992 +10993 +10994 +10995 +10996

    @@ -30732,9 +45697,9 @@

    -

    +

    - .github_actions_ruby_versions(min_ruby) ⇒ Object + .migrate_readme_logo_config(content) ⇒ Object @@ -30746,21 +45711,79 @@

     
     
    -7472
    -7473
    -7474
    -7475
    -7476
    -7477
    +8655 +8656 +8657 +8658 +8659 +8660 +8661 +8662 +8663 +8664 +8665 +8666 +8667 +8668 +8669 +8670 +8671 +8672 +8673 +8674 +8675 +8676 +8677 +8678 +8679 +8680 +8681 +8682 +8683 +8684 +8685 +8686 +8687 +8688 +8689

    @@ -30768,9 +45791,9 @@

    -

    +

    - .github_actions_standard_appraisal_gemfiles(config) ⇒ Object + .min_ruby_version(requirement) ⇒ Object @@ -30782,41 +45805,25 @@

    -10848 -10849 -10850 -10851 -10852 -10853 -10854 -10855 -10856 -10857 -10858 -10859 -10860 -10861 -10862 -10863 +12110 +12111 +12112 +12113 +12114 +12115 +12116 +12117

    @@ -30824,9 +45831,9 @@

    -

    +

    - .github_actions_step_pinsObject + .minimum_ruby_token(requirement) ⇒ Object @@ -30838,51 +45845,21 @@

     
     
    -11562
    -11563
    -11564
    -11565
    -11566
    -11567
    -11568
    -11569
    -11570
    -11571
    -11572
    -11573
    -11574
    -11575
    -11576
    -11577
    -11578
    -11579
    -11580
    -11581
    -11582
    +10348 +10349 +10350 +10351 +10352 +10353

    @@ -30890,9 +45867,9 @@

    -

    +

    - .github_funding_platform_urls(platform, values) ⇒ Object + .mit_readme_license_introObject @@ -30904,71 +45881,17 @@

     
     
    -7440
    -7441
    -7442
    -7443
    -7444
    -7445
    -7446
    -7447
    -7448
    -7449
    -7450
    -7451
    -7452
    -7453
    -7454
    -7455
    -7456
    -7457
    -7458
    -7459
    -7460
    -7461
    -7462
    -7463
    -7464
    -7465
    -7466
    -7467
    -7468
    -7469
    -7470
    +12231 +12232 +12233 +12234

    @@ -30976,9 +45899,9 @@

    -

    +

    - .github_funding_urls(path, opencollective_disabled: false) ⇒ Object + .monorepo_root_file_strategy(entry) ⇒ Object @@ -30990,28 +45913,22 @@

     
     
    -7429
    -7430
    -7431
    -7432
    -7433
    -7434
    -7435
    -7436
    -7437
    -7438
    +9030 +9031 +9032 +9033 +9034 +9035 +9036

    @@ -31020,9 +45937,9 @@

    -

    +

    - .github_org_from_url(url) ⇒ Object + .monorepo_root_gemfile_dependency_linesObject @@ -31034,17 +45951,37 @@

     
     
    -8948
    -8949
    -8950
    -8951
    +3643 +3644 +3645 +3646 +3647 +3648 +3649 +3650 +3651 +3652 +3653 +3654 +3655 +3656

    @@ -31052,52 +45989,53 @@

    -

    - - .github_workflow_template_recipe?(recipe) ⇒ Boolean +

    - + .monorepo_root_gemfile_dependency_sync_step(project_root, report) ⇒ Object -

    -
    - - -
    -
    -
    - -

    Returns:

    -
      - -
    • - - - (Boolean) - - - -
    • -
    - -

    -
    -
    -
    -10825
    -10826
    -10827
    -10828
    -10829
    -10830
    -10831
    -10832
    +
    +
    +
    +
    +6210
    +6211
    +6212
    +6213
    +6214
    +6215
    +6216
    +6217
    +6218
    +6219
    +6220
    +6221
    +6222
    -
    # File 'lib/kettle/jem.rb', line 10825
    +      
    # File 'lib/kettle/jem.rb', line 6210
     
    -def github_actions_exec_cmd(config, env)
    -  workflows = config["workflows"]
    -  workflows = {} unless workflows.is_a?(Hash)
    +def merge_ruby_template_source(file_type, recipe, template_content, destination_content, facts: nil)
    +  return merge_prism_gemfile_template_source(template_content, destination_content) if file_type == :gemfile
     
    -  normalize_github_actions_exec_cmd(
    -    preferred_template_token_value("kettle-test", workflows["exec_cmd"], env, "KJ_EXEC_CMD").to_s
    +  Prism::Merge.merge_ruby(
    +    template_content,
    +    destination_content,
    +    "ruby",
    +    preference: :destination,
    +    add_template_only_nodes: true,
    +    signature_generator: Prism::Merge.ruby_dsl_signature_generator(require_aliases: ruby_require_aliases(recipe, facts)),
    +    **prism_ruby_merge_options(recipe)
       )
     end
    -
    # File 'lib/kettle/jem.rb', line 10673
    -
    -def github_actions_framework_matrix(config)
    -  workflows = config["workflows"]
    -  return {} unless workflows.is_a?(Hash) && workflows["preset"].to_s.strip.downcase == "framework"
    -
    -  raw = workflows["framework_matrix"]
    -  return {} unless raw.is_a?(Hash)
    -
    -  dimension = raw["dimension"].to_s.strip
    -  versions = raw["versions"]
    -  pattern = raw["gemfile_pattern"].to_s.strip
    -  return {} unless !dimension.empty? && versions.is_a?(Array) && !versions.empty? && !pattern.empty?
    +      
    # File 'lib/kettle/jem.rb', line 6306
     
    -  framework_gem = raw.fetch("gem", dimension).to_s.strip
    -  return {} if framework_gem.empty?
    +def merge_template_gemfile_dependency_blocks(template_content, content, removable_gems, preserve_self_word_entries: false)
    +  template = remove_gemfile_dependency_blocks(template_content, removable_gems)
    +  template = remove_gemfile_percent_w_entries(template, removable_gems) unless preserve_self_word_entries
    +  existing = gemfile_dependency_names(content) + gemfile_percent_w_names(content)
    +  additions = gemfile_paragraphs(template).filter_map do |paragraph|
    +    names = gemfile_dependency_names(paragraph) + gemfile_percent_w_names(paragraph)
    +    next if names.empty?
    +    next if (names - existing).empty?
     
    -  version_entries = versions.filter_map { |version| framework_matrix_version_entry(version) }
    -  return {} if version_entries.empty?
    +    paragraph
    +  end
    +  return content if additions.empty?
     
    -  appraisal_gemfiles = framework_matrix_appraisal_gemfiles(raw)
    -  gemfiles = version_entries.map do |entry|
    -    gemfile = expand_framework_gemfile_pattern(pattern, entry.fetch(:slug))
    -    {
    -      path: framework_gemfile_path(gemfile),
    -      gem: framework_gem,
    -      requirement: entry.fetch(:requirement),
    -      env: entry.fetch(:env, {})
    -    }
    -  end.uniq { |entry| entry.fetch(:path) }
    -  gemfiles.reject! { |entry| template_keep_destination_path?(config, entry.fetch(:path)) }
    -  {
    -    dimension: dimension,
    -    gem: framework_gem,
    -    workflow: framework_matrix_workflow_enabled?(raw),
    -    versions: version_entries.map { |entry| entry.fetch(:label) },
    -    gemfile_pattern: pattern,
    -    include: version_entries.map do |entry|
    -      {
    -        framework_version: entry.fetch(:label),
    -        appraisal: entry[:appraisal_name] || framework_matrix_appraisal_name(dimension, entry.fetch(:slug))
    -      }
    -    end,
    -    gemfiles: gemfiles,
    -    appraisals: version_entries.map do |entry|
    -      gemfile = framework_gemfile_path(expand_framework_gemfile_pattern(pattern, entry.fetch(:slug)))
    -      name = entry[:appraisal_name] || framework_matrix_appraisal_name(dimension, entry.fetch(:slug))
    -      {
    -        name: name,
    -        framework_version: entry.fetch(:label),
    -        gem: framework_gem,
    -        env: entry.fetch(:env, {}),
    -        eval_gemfiles: [framework_matrix_appraisal_gemfile_path(gemfile), *appraisal_gemfiles].uniq,
    -        replaces: framework_matrix_replaced_appraisal_names(dimension, entry, name)
    -      }
    -    end
    -  }
    +  insert_gemfile_dependency_blocks(content, additions)
     end
    -
    # File 'lib/kettle/jem.rb', line 7513
    +      
    # File 'lib/kettle/jem.rb', line 10990
     
    -def github_actions_obsolete_workflows(project_root)
    -  workflow_root = File.join(project_root, ".github", "workflows")
    -  OBSOLETE_GITHUB_WORKFLOWS.filter_map do |workflow|
    -    relative_path = ".github/workflows/#{workflow}"
    -    path = File.join(workflow_root, workflow)
    -    relative_path if File.exist?(path)
    -  end.sort
    +def (, key)
    +  value = [key]
    +  return if value.nil?
    +
    +  text = value.to_s.strip
    +  text unless text.empty?
     end
    -
    # File 'lib/kettle/jem.rb', line 7472
    +      
    # File 'lib/kettle/jem.rb', line 8655
     
    -def github_actions_ruby_versions(min_ruby)
    -  floor = min_ruby.to_s[/\d+\.\d+/] || "3.1"
    -  candidates = %w[3.1 3.2 3.3 3.4]
    -  selected = candidates.select { |version| Gem::Version.new(version) >= Gem::Version.new(floor) }
    -  selected.empty? ? [floor] : selected
    +def migrate_readme_logo_config(content)
    +  config = YAML.safe_load(content.to_s, permitted_classes: [], aliases: true) || {}
    +  readme_config = config["readme"]
    +  return content unless readme_config.is_a?(Hash)
    +
    +  configured_specs = normalized_readme_logo_specs(readme_config["top_logos"] || readme_config["top_logo_options"])
    +  legacy_mode_migrated = configured_specs.empty?
    +  if legacy_mode_migrated
    +    legacy_options = legacy_readme_top_logo_mode_options(readme_config["top_logo_mode"])
    +    configured_specs = legacy_options.map { |option| {type: option, width: nil} }
    +  end
    +  configured = configured_specs.map { |spec| spec.fetch(:type) }
    +  return content if configured.empty?
    +
    +  top_logo_specs = configured_specs.select { |spec| README_TOP_LOGO_DEFAULTS.include?(spec.fetch(:type)) }
    +  h2_synopsis_logo_specs = normalized_readme_logo_specs(readme_config["h2_synopsis_logos"])
    +  h2_synopsis_logo_specs = configured_specs.select { |spec| README_H2_SYNOPSIS_LOGO_DEFAULTS.include?(spec.fetch(:type)) } if h2_synopsis_logo_specs.empty?
    +  if legacy_mode_migrated && h2_synopsis_logo_specs.empty?
    +    h2_synopsis_logo_specs = README_H2_SYNOPSIS_LOGO_DEFAULTS.map { |option| {type: option, width: nil} }
    +  end
    +  top_logos = top_logo_specs.map { |spec| readme_logo_config_value(spec) }
    +  h2_synopsis_logos = h2_synopsis_logo_specs.map { |spec| readme_logo_config_value(spec) }
    +  return content if h2_synopsis_logos.empty? && top_logos == configured
    +
    +  migrated = if readme_config.key?("top_logos")
    +    replace_yaml_scalar_path(content, %w[readme top_logos], top_logos.join(","))
    +  else
    +    insert_yaml_scalar_after_path(content, %w[readme], "top_logos", top_logos.join(","))
    +  end
    +  return replace_yaml_scalar_path(migrated, %w[readme h2_synopsis_logos], h2_synopsis_logos.join(",")) if readme_config.key?("h2_synopsis_logos")
    +
    +  insert_yaml_scalar_after_path(migrated, %w[readme top_logos], "h2_synopsis_logos", h2_synopsis_logos.join(","))
    +rescue Psych::Exception
    +  content
     end
    -
    # File 'lib/kettle/jem.rb', line 10848
    -
    -def github_actions_standard_appraisal_gemfiles(config)
    -  workflows = config["workflows"]
    -  workflows = {} unless workflows.is_a?(Hash)
    -  appraisal_matrix = config["appraisal_matrix"]
    -  appraisal_matrix = {} unless appraisal_matrix.is_a?(Hash)
    +      
    # File 'lib/kettle/jem.rb', line 12110
     
    -  raw_paths =
    -    workflows["standard_appraisal_gemfiles"] ||
    -    appraisal_matrix["appraisal_gemfiles"] ||
    -    appraisal_matrix["appraisal_eval_gemfiles"]
    +def min_ruby_version(requirement)
    +  token = minimum_ruby_token(requirement)
    +  return if token.empty?
     
    -  Array(raw_paths).filter_map do |path|
    -    normalized = path.to_s.strip.sub(%r{\Agemfiles/}, "")
    -    normalized unless normalized.empty?
    -  end.uniq
    +  Gem::Version.new(token)
    +rescue ArgumentError
    +  nil
     end
    -
    # File 'lib/kettle/jem.rb', line 11562
    +      
    # File 'lib/kettle/jem.rb', line 10348
     
    -def github_actions_step_pins
    -  {
    -    "actions/checkout" => "actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3",
    -    "ruby/setup-ruby" => "ruby/setup-ruby@89f90524b88a01fe6e0b732220432cc6142926af # v1.313.0",
    -    "coverallsapp/github-action" => "coverallsapp/github-action@5cbfd81b66ca5d10c19b062c04de0199c215fb6e # v2.3.7",
    -    "qltysh/qlty-action/coverage" => "qltysh/qlty-action/coverage@fd52dc852530a708d68c3b7342f8d33d1df4cd55 # v2.2.1",
    -    "codecov/codecov-action" => "codecov/codecov-action@fb8b3582c8e4def4969c97caa2f19720cb33a72f # v7",
    -    "irongut/CodeCoverageSummary" => "irongut/CodeCoverageSummary@51cc3a756ddcd398d447c044c02cb6aa83fdae95 # v1.3.0",
    -    "marocchino/sticky-pull-request-comment" => "marocchino/sticky-pull-request-comment@0ea0beb66eb9baf113663a64ec522f60e49231c0 # v3.0.4",
    -    "actions/upload-artifact" => "actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1",
    -    "amancevice/setup-code-climate" => "amancevice/setup-code-climate@0daf2985a225e8ac15975b4d233010e94d65b76a # v2",
    -    "actions/dependency-review-action" => "actions/dependency-review-action@a1d282b36b6f3519aa1f3fc636f609c47dddb294 # v5.0.0",
    -    "github/codeql-action/init" => "github/codeql-action/init@8aad20d150bbac5944a9f9d289da16a4b0d87c1e # v4.36.2",
    -    "github/codeql-action/autobuild" => "github/codeql-action/autobuild@8aad20d150bbac5944a9f9d289da16a4b0d87c1e # v4.36.2",
    -    "github/codeql-action/analyze" => "github/codeql-action/analyze@8aad20d150bbac5944a9f9d289da16a4b0d87c1e # v4.36.2",
    -    "pozil/auto-assign-issue" => "pozil/auto-assign-issue@af6beea6bdf1e8eb373f061c5bc168681fc6d011 # v4.0.1",
    -    "apache/skywalking-eyes/dependency" => "apache/skywalking-eyes/dependency@61275cc80d0798a405cb070f7d3a8aaf7cf2c2c1 # v0.8.0",
    -    "kettle-rb/ts-grammar-action" => "kettle-rb/ts-grammar-action@4b0c04d11ed5b85c67c0c60c6ecb590e81748ccb # v1.0.1",
    -    "sarisia/actions-status-discord" => "sarisia/actions-status-discord@eb045afee445dc055c18d3d90bd0f244fd062708 # v1.16.0"
    -  }
    +def minimum_ruby_token(requirement)
    +  text = requirement.to_s.strip
    +  return "0" if text == "0"
    +
    +  requirement.to_s[/\d+(?:\.\d+){1,2}/].to_s
     end
    -
    # File 'lib/kettle/jem.rb', line 7440
    -
    -def github_funding_platform_urls(platform, values)
    -  values.filter_map do |value|
    -    handle = value.to_s.strip.delete_prefix("@")
    -    next if handle.empty?
    +      
    # File 'lib/kettle/jem.rb', line 12231
     
    -    case platform
    -    when "buy_me_a_coffee"
    -      "https://www.buymeacoffee.com/#{handle}"
    -    when "custom"
    -      handle if http_url?(handle)
    -    when "github"
    -      "https://github.com/sponsors/#{handle}"
    -    when "issuehunt"
    -      "https://issuehunt.io/u/#{handle}"
    -    when "ko_fi"
    -      "https://ko-fi.com/#{handle}"
    -    when "liberapay"
    -      "https://liberapay.com/#{handle}/donate"
    -    when "open_collective"
    -      "https://opencollective.com/#{handle}"
    -    when "patreon"
    -      "https://patreon.com/#{handle}"
    -    when "polar"
    -      "https://polar.sh/#{handle}"
    -    when "thanks_dev"
    -      "https://thanks.dev/#{handle}"
    -    when "tidelift"
    -      "https://tidelift.com/funding/github/#{handle}"
    -    end
    -  end
    +def mit_readme_license_intro
    +  "The gem is available as open source under the terms of\n" \
    +    "the #{license_link("MIT")} #{license_badge("MIT")}."
     end
    -
    # File 'lib/kettle/jem.rb', line 7429
    -
    -def github_funding_urls(path, opencollective_disabled: false)
    -  funding = YAML.safe_load_file(path, permitted_classes: [], aliases: false) || {}
    -  return [] unless funding.is_a?(Hash)
    -
    -  funding.flat_map do |platform, value|
    -    next [] if opencollective_disabled && platform.to_s == "open_collective"
    +      
    # File 'lib/kettle/jem.rb', line 9030
     
    -    github_funding_platform_urls(platform.to_s, Array(value).compact)
    +def monorepo_root_file_strategy(entry)
    +  if entry.to_s == "CHANGELOG.md"
    +    "keep_destination"
    +  else
    +    "accept_template"
       end
     end
    -
    # File 'lib/kettle/jem.rb', line 8948
    +      
    # File 'lib/kettle/jem.rb', line 3643
     
    -def github_org_from_url(url)
    -  match = url.to_s.match(%r{\Ahttps?://github\.com/([^/]+)/})
    -  match && match[1]
    +def monorepo_root_gemfile_dependency_lines
    +  [
    +    {name: "appraisal2", source: %(gem "appraisal2", "~> 3.2", ">= 3.2.0"\n)},
    +    {name: "bundler-audit", source: %(gem "bundler-audit", "~> 0.9.3"\n)},
    +    {name: "kettle-dev", source: %(gem "kettle-dev", "~> 2.3", ">= 2.3.7"\n)},
    +    {name: "kettle-drift", source: %(gem "kettle-drift", "~> 1.0", ">= 1.0.5"\n)},
    +    {name: "kettle-jem", source: %(gem "kettle-jem", "~> 7.0", ">= 7.0.0"\n)},
    +    {name: "kettle-test", source: %(gem "kettle-test", "~> 2.0", ">= 2.0.11"\n)},
    +    {name: "rake", source: %(gem "rake", "~> 13.0"\n)},
    +    {name: "rspec", source: %(gem "rspec", "~> 3.0"\n)},
    +    {name: "stone_checksums", source: %(gem "stone_checksums", "~> 1.0", ">= 1.0.6"\n)},
    +    {name: "turbo_tests2", source: %(gem "turbo_tests2", "~> 3.2", ">= 3.2.0"\n)}
    +  ].freeze
     end
    +
    @@ -31105,9 +46043,9 @@

    -

    +

    - .github_workflows_include?(project_root, needle) ⇒ Boolean + .monorepo_root_template_profile?(facts) ⇒ Boolean @@ -31142,23 +46080,15 @@

     
     
    -9954
    -9955
    -9956
    -9957
    -9958
    -9959
    -9960
    +9178 +9179 +9180

    @@ -31166,9 +46096,9 @@

    -

    +

    - .gitlab_repo_url(repository, repo_slug, suffix) ⇒ Object + .monorepo_subgem_kettle_config_profile_sync_step(project_root, report) ⇒ Object @@ -31180,31 +46110,47 @@

     
     
    -9100
    -9101
    -9102
    -9103
    -9104
    -9105
    -9106
    -9107
    -9108
    -9109
    -9110
    +3523 +3524 +3525 +3526 +3527 +3528 +3529 +3530 +3531 +3532 +3533 +3534 +3535 +3536 +3537 +3538 +3539 +3540 +3541

    @@ -31212,9 +46158,9 @@

    -

    +

    - .html_attribute_escape(value) ⇒ Object + .monorepo_subgem_template_entries(gemspec_path, profile = MONOREPO_SUBGEM_TEMPLATE_PROFILE) ⇒ Object @@ -31226,15 +46172,27 @@

     
     
    -9449
    -9450
    -9451
    +9050 +9051 +9052 +9053 +9054 +9055 +9056 +9057 +9058

    @@ -31242,9 +46200,55 @@

    -

    +

    - .http_url?(value) ⇒ Boolean + .monorepo_subgem_template_entries_for_profile(gemspec_path, profile) ⇒ Object + + + + + +

     
     
    -5072
    -5073
    -5074
    +3616 +3617 +3618 +3619 +3620 +3621 +3622 +3623 +3624 +3625 +3626 +3627 +3628 +3629 +3630
    -
    # File 'lib/kettle/jem.rb', line 5072
    +      
    # File 'lib/kettle/jem.rb', line 3616
     
    -def github_workflow_template_recipe?(recipe)
    -  recipe.fetch(:target_path).to_s.start_with?(".github/workflows/")
    +def monorepo_root_gemfile_dependency_sync_step(project_root, report)
    +  facts = report.fetch(:facts)
    +  return unless monorepo_root_template_profile?(facts)
    +
    +  path = File.join(project_root.to_s, "Gemfile")
    +  before = File.exist?(path) ? File.read(path) : %(source "https://gem.coop"\n)
    +  after = ensure_monorepo_root_gemfile_dependencies(before)
    +  File.write(path, after) if after != before
    +  {
    +    name: "monorepo_root_gemfile_dependency_sync",
    +    path: "Gemfile",
    +    status: (after == before) ? "already_current" : "applied",
    +    changed_files: (after == before) ? [] : ["Gemfile"]
    +  }
     end
    -
    # File 'lib/kettle/jem.rb', line 9954
    +      
    # File 'lib/kettle/jem.rb', line 9178
     
    -def github_workflows_include?(project_root, needle)
    -  Dir.glob(File.join(project_root, ".github/workflows/*.{yml,yaml}")).any? do |path|
    -    File.read(path).include?(needle)
    -  rescue Errno::ENOENT
    -    false
    -  end
    +def monorepo_root_template_profile?(facts)
    +  facts[:template_profile].to_s == MONOREPO_ROOT_TEMPLATE_PROFILE
     end
    -
    # File 'lib/kettle/jem.rb', line 9100
    +      
    # File 'lib/kettle/jem.rb', line 3523
     
    -def gitlab_repo_url(repository, repo_slug, suffix)
    -  resources = repository[:resource_urls] || {}
    -  return resources[:gitlab_issues_url] if suffix == "issues" && resources[:gitlab_issues_url]
    -  return resources[:gitlab_pulls_url] if suffix == "merge_requests" && resources[:gitlab_pulls_url]
    -  return resources[:gitlab_wiki_url] if suffix == "wikis/home" && resources[:gitlab_wiki_url]
    -  return resources[:gitlab_contributors_url] if suffix == "graphs/main" && resources[:gitlab_contributors_url]
    +def monorepo_subgem_kettle_config_profile_sync_step(project_root, report)
    +  facts = report.fetch(:facts)
    +  return unless monorepo_subgem_template_profile?(facts)
     
    -  base = repository[:gitlab_url].to_s
    -  base = "https://gitlab.com/#{repo_slug}" if base.empty?
    -  "#{base}/-/#{suffix}"
    +  profile = normalize_template_profile(facts[:template_profile])
    +  path = File.join(project_root.to_s, KETTLE_CONFIG_PATH)
    +  return unless File.file?(path)
    +
    +  gemspec = facts.dig(:rubygems, :gemspec_path).to_s
    +  before = File.read(path)
    +  after = sync_kettle_config_monorepo_subgem_profile(before, gemspec, profile)
    +  File.write(path, after) if after != before
    +  {
    +    name: "monorepo_subgem_kettle_config_profile_sync",
    +    path: KETTLE_CONFIG_PATH,
    +    status: (after == before) ? "already_current" : "applied",
    +    changed_files: (after == before) ? [] : [KETTLE_CONFIG_PATH]
    +  }
     end
    -
    # File 'lib/kettle/jem.rb', line 9449
    +      
    # File 'lib/kettle/jem.rb', line 9050
     
    -def html_attribute_escape(value)
    -  value.to_s.gsub("&", "&amp;").gsub("\"", "&quot;").gsub("<", "&lt;").gsub(">", "&gt;")
    +def monorepo_subgem_template_entries(gemspec_path, profile = MONOREPO_SUBGEM_TEMPLATE_PROFILE)
    +  entries = monorepo_subgem_template_entries_for_profile(gemspec_path, profile)
    +  gemspec = gemspec_path.to_s.strip
    +  return entries if gemspec.empty?
    +
    +  entries.insert(1, {"source" => "gem.gemspec", "target" => gemspec})
    +  entries.concat(version_gem_template_entries(gemspec))
    +  entries
     end
    + + + + +
    +
    +
    +
    +9060
    +9061
    +9062
    +9063
    +9064
    +9065
    +9066
    +9067
    +9068
    +9069
    +9070
    +
    +
    # File 'lib/kettle/jem.rb', line 9060
    +
    +def monorepo_subgem_template_entries_for_profile(gemspec_path, profile)
    +  case normalize_template_profile(profile)
    +  when MONOREPO_SUBGEM_RELEASE_TEMPLATE_PROFILE
    +    MONOREPO_SUBGEM_RELEASE_TEMPLATE_ENTRIES.dup
    +  when MONOREPO_SUBGEM_FULL_TEMPLATE_PROFILE
    +    project_root = File.dirname(File.expand_path(gemspec_path.to_s))
    +    template_inventory_entries(project_root, PACKAGED_TEMPLATE_ROOT).dup
    +  else
    +    MONOREPO_SUBGEM_TEMPLATE_ENTRIES.dup
    +  end
    +end
    +
    +
    + +
    +

    + + .monorepo_subgem_template_profile?(facts) ⇒ Boolean @@ -31279,21 +46283,15 @@

     
     
    -11389
    -11390
    -11391
    -11392
    -11393
    -11394
    +9174 +9175 +9176 -
    # File 'lib/kettle/jem.rb', line 11389
    +      
    # File 'lib/kettle/jem.rb', line 9174
     
    -def http_url?(value)
    -  uri = URI.parse(value.to_s)
    -  %w[http https].include?(uri.scheme)
    -rescue URI::InvalidURIError
    -  false
    +def monorepo_subgem_template_profile?(facts)
    +  monorepo_subgem_template_profile_value?(facts[:template_profile])
     end
    @@ -31301,39 +46299,60 @@

    -

    +

    - .inactive_packaged_template_cleanup_files(project_root, config = {}) ⇒ Object + .monorepo_subgem_template_profile_value?(profile) ⇒ Boolean -

    +
    +
    + + + +
    +
    +
    + +

    Returns:

    +
      + +
    • + + + (Boolean) + + + +
    • + +
    + +
    @@ -31341,9 +46360,9 @@

    -

    +

    - .inactive_packaged_workflow?(relative_path, config = {}, include_patterns: nil) ⇒ Boolean + .monorepo_template_profile?(facts) ⇒ Boolean @@ -31378,21 +46397,15 @@

     
     
    -7506
    -7507
    -7508
    -7509
    -7510
    -7511
    +9182 +9183 +9184

    @@ -31400,189 +46413,60 @@

    -

    +

    - .inactive_packaged_workflow_cleanup_files(project_root, config = {}, include_patterns: nil) ⇒ Object + .namespace_descendant?(namespace, parent) ⇒ Boolean -

     
     
    -10298
    -10299
    -10300
    -10301
    -10302
    -10303
    -10304
    -10305
    +9190 +9191 +9192 +9193 +9194 +9195 +9196
    -
    # File 'lib/kettle/jem.rb', line 10298
    -
    -def inactive_packaged_template_cleanup_files(project_root, config = {})
    -  Dir.glob(File.join(project_root, "gemfiles/**/*.gemfile")).filter_map do |path|
    -    relative_path = path.delete_prefix("#{project_root}/")
    -    next unless preferred_template_source(PACKAGED_TEMPLATE_ROOT, relative_path)
    +      
    # File 'lib/kettle/jem.rb', line 9190
     
    -    {target_path: relative_path} if skip_packaged_gemfile_template?(relative_path, config)
    -  end.sort_by { |cleanup| cleanup.fetch(:target_path) }
    +def monorepo_subgem_template_profile_value?(profile)
    +  [
    +    MONOREPO_SUBGEM_PACKAGE_TEMPLATE_PROFILE,
    +    MONOREPO_SUBGEM_RELEASE_TEMPLATE_PROFILE,
    +    MONOREPO_SUBGEM_FULL_TEMPLATE_PROFILE
    +  ].include?(normalize_template_profile(profile))
     end
    -
    # File 'lib/kettle/jem.rb', line 7506
    -
    -def inactive_packaged_workflow?(relative_path, config = {}, include_patterns: nil)
    -  return true if stale_versioned_engine_workflow?(relative_path)
    +      
    # File 'lib/kettle/jem.rb', line 9182
     
    -  preferred_template_source(PACKAGED_TEMPLATE_ROOT, relative_path) &&
    -    skip_packaged_workflow_template?(relative_path, config, include_patterns: include_patterns)
    +def monorepo_template_profile?(facts)
    +  monorepo_root_template_profile?(facts) || monorepo_subgem_template_profile?(facts)
     end
    - - - - -
    -
    -
    -
    -7494
    -7495
    -7496
    -7497
    -7498
    -7499
    -7500
    -7501
    -7502
    -7503
    -7504
    -
    -
    # File 'lib/kettle/jem.rb', line 7494
    -
    -def inactive_packaged_workflow_cleanup_files(project_root, config = {}, include_patterns: nil)
    -  workflow_root = File.join(project_root, ".github", "workflows")
    -  return [] unless Dir.exist?(workflow_root)
    -
    -  Dir.glob(File.join(workflow_root, "*.{yml,yaml}")).filter_map do |path|
    -    relative_path = path.delete_prefix("#{project_root}/")
    -    next if OPT_IN_GITHUB_WORKFLOWS.include?(relative_path)
    -
    -    relative_path if inactive_packaged_workflow?(relative_path, config, include_patterns: include_patterns)
    -  end.sort
    -end
    -
    -
    +
  • +
    -
    -

    - - .inject_appraisal_gemfiles(block, gemfiles) ⇒ Object - - - - - -

    - - - - -
    -
    -
    -
    -5636
    -5637
    -5638
    -5639
    -5640
    -5641
    -5642
    -5643
    -5644
    -5645
    -5646
    -5647
    -5648
    -5649
    -5650
    -5651
    -5652
    -5653
    -
    -
    # File 'lib/kettle/jem.rb', line 5636
    -
    -def inject_appraisal_gemfiles(block, gemfiles)
    -  lines = block.to_s.lines
    -  existing_paths = ruby_call_records(block, :eval_gemfile).filter_map { |call| ruby_string_argument(call) }.to_set
    -  additions = gemfiles.filter_map do |gemfile|
    -    path = gemfile.to_s.delete_prefix("gemfiles/")
    -    line = %(  eval_gemfile "#{path}") + "\n"
    -    line unless existing_paths.include?(path)
    -  end
    -  return block if additions.empty?
     
    -  insert_line = appraisal_x_stdlib_eval_gemfile_call(block)&.location&.start_line ||
    -    ruby_call_records(block, :appraise).first&.location&.end_line
    -  insert_index = insert_line ? insert_line - 1 : nil
    -  return block unless insert_index
     
    -  lines.insert(insert_index, *additions)
    -  ensure_trailing_newline(lines.join.gsub(/\n{3,}/, "\n\n"))
    -end
    -
    +
    - -
    -

    +
    - .inject_framework_matrix_workflow_env(content, facts) ⇒ Object +

    Returns:

    +
      - +
    • + + + (Boolean) + + + +
    • +
    - -

    +
    @@ -31590,9 +46474,9 @@

    -

    +

    - .inject_standard_appraisal_gemfiles(content, facts) ⇒ Object + .nested_templating_guard_records(content) ⇒ Object @@ -31604,47 +46488,41 @@

     
     
    -5587
    -5588
    -5589
    -5590
    -5591
    -5592
    -5593
    -5594
    -5595
    -5596
    -5597
    -5598
    -5599
    -5600
    -5601
    -5602
    -5603
    -5604
    -5605
    +5858 +5859 +5860 +5861 +5862 +5863 +5864 +5865 +5866 +5867 +5868 +5869 +5870 +5871 +5872 +5873

    @@ -31652,9 +46530,9 @@

    -

    +

    - .insert_after_line_sequence(content, sequence, insertion, error_message) ⇒ Object + .node_enclosed_by_ranges?(node, ranges) ⇒ Boolean @@ -31669,13 +46547,13 @@

    -

    Raises:

    -
      +

      Returns:

      +
      • - (Error) + (Boolean) @@ -31689,35 +46567,23 @@

         
         
        -7070
        -7071
        -7072
        -7073
        -7074
        -7075
        -7076
        -7077
        -7078
        -7079
        -7080
        -7081
        -7082
        +5918 +5919 +5920 +5921 +5922 +5923 +5924

    @@ -31725,43 +46591,54 @@

    -

    +

    - .insert_gemfile_dependency_blocks(content, blocks) ⇒ Object + .non_default_version_gem_entrypoint?(project_root, entrypoint_require) ⇒ Boolean -

     
     
    -4932
    -4933
    -4934
    -4935
    -4936
    -4937
    -4938
    -4939
    -4940
    -4941
    -4942
    -4943
    -4944
    -4945
    -4946
    -4947
    -4948
    -4949
    -4950
    -4951
    -4952
    -4953
    -4954
    -4955
    -4956
    -4957
    -4958
    -4959
    -4960
    -4961
    +11140 +11141 +11142 +11143 +11144 +11145 +11146
    -
    # File 'lib/kettle/jem.rb', line 4932
    -
    -def inject_framework_matrix_workflow_env(content, facts)
    -  env_by_appraisal = framework_matrix_appraisal_env_by_name(facts)
    -  return content if env_by_appraisal.empty?
    -
    -  lines = content.to_s.lines
    -  inserted_keys = Set.new
    -  inserted_locations = Set.new
    -  yaml_mapping_nodes(content).sort_by { |mapping| -mapping.start_line }.each do |mapping|
    -    appraisal = yaml_mapping_scalar_value(mapping, "appraisal")
    -    matrix_env = env_by_appraisal[appraisal]
    -    next unless matrix_env
    -
    -    insert_index = workflow_matrix_env_insert_index(lines, mapping)
    -    next unless insert_index
    -
    -    indent = workflow_matrix_env_indent(lines, mapping)
    -    additions = matrix_env.reject { |key, _value| yaml_mapping_scalar_value(mapping, key) }
    -    additions.reject! { |key, _value| inserted_locations.include?([insert_index, key.to_s]) }
    -    next if additions.empty?
    +      
    # File 'lib/kettle/jem.rb', line 11140
     
    -    additions.each_key { |key| inserted_keys << key }
    -    additions.each_key { |key| inserted_locations << [insert_index, key.to_s] }
    -    lines.insert(insert_index, *additions.map { |key, value| %(#{indent}#{key}: #{yaml_double_quoted_scalar(value)}\n) })
    -  end
    -  return content if inserted_keys.empty?
    +def namespace_descendant?(namespace, parent)
    +  namespace = namespace.to_s
    +  parent = parent.to_s
    +  return false if namespace.empty? || parent.empty? || namespace == parent
     
    -  add_framework_matrix_job_env(lines.join, inserted_keys)
    -rescue
    -  content
    +  namespace.start_with?("#{parent}::")
     end
    -
    # File 'lib/kettle/jem.rb', line 5587
    -
    -def inject_standard_appraisal_gemfiles(content, facts)
    -  gemfiles = facts.to_h.dig(:ci, :standard_appraisal_gemfiles).to_a
    -  return content if gemfiles.empty?
    +      
    # File 'lib/kettle/jem.rb', line 5858
     
    -  standard_names = standard_test_appraisal_names(content)
    -  return content if standard_names.empty?
    +def nested_templating_guard_records(content)
    +  result = prism_parse_success(content)
    +  return [] unless result
     
    -  matrix_dependency_gemfiles = framework_matrix_appraisal_dependency_gemfiles(facts)
    -  parsed = appraisal_blocks(content)
    -  blocks = parsed.fetch(:order).map do |name|
    -    block = parsed.fetch(:blocks).fetch(name)
    -    if standard_names.include?(name) && !appraisal_block_has_matrix_dependency_gemfile?(block, matrix_dependency_gemfiles)
    -      inject_appraisal_gemfiles(block, gemfiles)
    -    else
    -      block
    -    end
    +  result.value.breadth_first_search_all do |node|
    +    redundant_templating_guard_wrapper_node?(node)
    +  end.map do |node|
    +    inner = node.statements.body.first
    +    {
    +      outer_start_line: node.location.start_line,
    +      outer_end_line: node.location.end_line,
    +      inner_start_line: inner.location.start_line,
    +      inner_end_line: inner.location.end_line
    +    }
       end
    -  ensure_trailing_newline(([parsed.fetch(:prelude).to_s.rstrip] + blocks.map(&:rstrip)).reject(&:empty?).join("\n\n"))
     end
    -
    # File 'lib/kettle/jem.rb', line 7070
    +      
    # File 'lib/kettle/jem.rb', line 5918
     
    -def insert_after_line_sequence(content, sequence, insertion, error_message)
    -  lines = content.to_s.lines(chomp: true)
    -  index = (0..(lines.length - sequence.length)).find do |candidate|
    -    lines[candidate, sequence.length] == sequence
    +def node_enclosed_by_ranges?(node, ranges)
    +  start_line = node.location.start_line
    +  end_line = node.location.end_line
    +  ranges.any? do |range|
    +    range.fetch(:start_line) < start_line && range.fetch(:end_line) > end_line
       end
    -  return content if !index && error_message.nil?
    -  raise Error, error_message unless index
    -
    -  insertion_lines = insertion.to_s.lines(chomp: true)
    -  updated = lines.dup
    -  updated.insert(index + sequence.length, *insertion_lines)
    -  "#{updated.join("\n")}\n"
     end
    +
    +
    + + + +
    +
    +
    + +

    Returns:

    +
      + +
    • + + + (Boolean) + + + +
    • + +
    + +
    @@ -31769,33 +46646,52 @@

    -

    +

    - .insert_lines_after(content, line_number, insertion) ⇒ Object + .non_mit_licenses?(licenses) ⇒ Boolean -

    -
    -
    -5196
    -5197
    -5198
    -5199
    -5200
    -5201
    -5202
    -5203
    -5204
    -5205
    + + +11116 +11117 +11118 +11119
    -
    # File 'lib/kettle/jem.rb', line 5196
    +      
    # File 'lib/kettle/jem.rb', line 11116
     
    -def insert_gemfile_dependency_blocks(content, blocks)
    -  lines = content.to_s.lines
    -  insert_at = gemfile_dependency_insertion_line(content)
    -  while insert_at.positive? && lines[insert_at - 1].strip.empty?
    -    insert_at -= 1
    -  end
    -  insertion = blocks.map { |block| block.strip }.join("\n\n")
    -  lines.insert(insert_at, "#{insertion}\n\n")
    -  ensure_trailing_newline(lines.join.gsub(/\n{3,}/, "\n\n"))
    +def non_default_version_gem_entrypoint?(project_root, entrypoint_require)
    +  version_gem_path = File.join("lib", entrypoint_require.to_s, "version_gem.rb")
    +  File.file?(File.join(project_root, version_gem_path))
     end
    +
    +
    + + + +
    +
    +
    + +

    Returns:

    +
      + +
    • + + + (Boolean) + + + +
    • + +
    + +
    @@ -31803,9 +46699,9 @@

    -

    +

    - .insert_lines_before(content, line_number, insertion) ⇒ Object + .normalize_changelog(content, facts) ⇒ Object @@ -31817,19 +46713,71 @@

     
     
    -6569
    -6570
    -6571
    -6572
    -6573
    +4032 +4033 +4034 +4035 +4036 +4037 +4038 +4039 +4040 +4041 +4042 +4043 +4044 +4045 +4046 +4047 +4048 +4049 +4050 +4051 +4052 +4053 +4054 +4055 +4056 +4057 +4058 +4059 +4060 +4061 +4062

    @@ -31837,9 +46785,9 @@

    -

    +

    - .insert_missing_development_gemspec_dependency_lines(content, missing_lines) ⇒ Object + .normalize_conditional_body_indentation(source) ⇒ Object @@ -31851,19 +46799,35 @@

    -6412 -6413 -6414 -6415 -6416 +5577 +5578 +5579 +5580 +5581 +5582 +5583 +5584 +5585 +5586 +5587 +5588 +5589

    @@ -31871,9 +46835,9 @@

    -

    +

    - .insert_missing_runtime_gemspec_dependency_lines(content, missing_lines, receiver:) ⇒ Object + .normalize_eval_gemfile_ruby_bucket(path) ⇒ Object @@ -31885,25 +46849,25 @@

    -6403 -6404 -6405 -6406 -6407 -6408 -6409 -6410 +6774 +6775 +6776 +6777 +6778 +6779 +6780 +6781

    @@ -31911,9 +46875,9 @@

    -

    +

    - .insert_yaml_scalar_after_path(content, path, key, value) ⇒ Object + .normalize_gemspec_dependency_version_requirements(source, receiver:, namespace:) ⇒ Object @@ -31925,29 +46889,43 @@

     
     
    -6790
    -6791
    -6792
    -6793
    -6794
    -6795
    -6796
    -6797
    -6798
    -6799
    +8087 +8088 +8089 +8090 +8091 +8092 +8093 +8094 +8095 +8096 +8097 +8098 +8099 +8100 +8101 +8102 +8103

    @@ -31955,9 +46933,9 @@

    -

    +

    - .install_tasksObject + .normalize_gemspec_project_emoji(line, facts, field:) ⇒ Object @@ -31969,17 +46947,41 @@

     
     
    -1959
    -1960
    -1961
    -1962
    +7491 +7492 +7493 +7494 +7495 +7496 +7497 +7498 +7499 +7500 +7501 +7502 +7503 +7504 +7505 +7506

    @@ -31987,9 +46989,9 @@

    -

    +

    - .json_merge_options(recipe) ⇒ Object + .normalize_gemspec_receiver(line, from:, to:) ⇒ Object @@ -32001,33 +47003,27 @@

     
     
    -5748
    -5749
    -5750
    -5751
    -5752
    -5753
    -5754
    -5755
    -5756
    -5757
    -5758
    -5759
    +7481 +7482 +7483 +7484 +7485 +7486 +7487 +7488 +7489

    @@ -32035,9 +47031,9 @@

    -

    +

    - .kettle_config_bootstrap_facts(project_root, env, template_selection: {}) ⇒ Object + .normalize_generated_image_url(url) ⇒ Object @@ -32049,53 +47045,15 @@

     
     
    -10307
    -10308
    -10309
    -10310
    -10311
    -10312
    -10313
    -10314
    -10315
    -10316
    -10317
    -10318
    -10319
    -10320
    -10321
    -10322
    -10323
    -10324
    -10325
    -10326
    -10327
    -10328
    +11509 +11510 +11511

    @@ -32103,9 +47061,9 @@

    -

    +

    - .kettle_config_bootstrap_recipe(bootstrap) ⇒ Object + .normalize_generated_rakefile(content) ⇒ Object @@ -32117,49 +47075,23 @@

     
     
    -10330
    -10331
    -10332
    -10333
    -10334
    -10335
    -10336
    -10337
    -10338
    -10339
    -10340
    -10341
    -10342
    -10343
    -10344
    -10345
    -10346
    -10347
    -10348
    -10349
    +4685 +4686 +4687 +4688 +4689 +4690 +4691

    @@ -32167,9 +47099,9 @@

    -

    +

    - .kettle_config_file_override_lines(path, strategy) ⇒ Object + .normalize_git_source_url(url) ⇒ Object @@ -32181,31 +47113,47 @@

     
     
    -6981
    -6982
    -6983
    -6984
    -6985
    -6986
    -6987
    -6988
    -6989
    -6990
    -6991
    +11693 +11694 +11695 +11696 +11697 +11698 +11699 +11700 +11701 +11702 +11703 +11704 +11705 +11706 +11707 +11708 +11709 +11710 +11711

    @@ -32213,9 +47161,9 @@

    -

    +

    - .kettle_config_template_entries_lines(entries) ⇒ Object + .normalize_github_actions_exec_cmd(command) ⇒ Object @@ -32227,33 +47175,21 @@

     
     
    -3239
    -3240
    -3241
    -3242
    -3243
    -3244
    -3245
    -3246
    -3247
    -3248
    -3249
    -3250
    +13632 +13633 +13634 +13635 +13636 +13637

    @@ -32261,9 +47197,9 @@

    -

    +

    - .kettle_jem_config(project_root) ⇒ Object + .normalize_integration_name(name) ⇒ Object @@ -32275,29 +47211,25 @@

     
     
    -7614
    -7615
    -7616
    -7617
    -7618
    -7619
    -7620
    -7621
    -7622
    -7623
    +12613 +12614 +12615 +12616 +12617 +12618 +12619 +12620

    @@ -32305,9 +47237,9 @@

    -

    +

    - .kettle_jem_config_path(project_root) ⇒ Object + .normalize_kettle_jem_config(config) ⇒ Object @@ -32319,21 +47251,39 @@

     
     
    -7625
    -7626
    -7627
    -7628
    -7629
    -7630
    +9724 +9725 +9726 +9727 +9728 +9729 +9730 +9731 +9732 +9733 +9734 +9735 +9736 +9737 +9738

    @@ -32341,9 +47291,9 @@

    -

    +

    - .kettle_jem_config_relative_path(project_root) ⇒ Object + .normalize_list_option(value) ⇒ Object @@ -32355,17 +47305,17 @@

     
     
    -7632
    -7633
    -7634
    -7635
    +9280 +9281 +9282 +9283

    @@ -32373,9 +47323,9 @@

    -

    +

    - .kettle_rb_local_gems(config) ⇒ Object + .normalize_main_gemfile_nomono_requirements(content) ⇒ Object @@ -32387,21 +47337,51 @@

     
     
    -8619
    -8620
    -8621
    -8622
    -8623
    -8624
    +5494 +5495 +5496 +5497 +5498 +5499 +5500 +5501 +5502 +5503 +5504 +5505 +5506 +5507 +5508 +5509 +5510 +5511 +5512 +5513 +5514

    @@ -32409,9 +47389,9 @@

    -

    +

    - .known_license_template_basenamesObject + .normalize_non_default_version_gem_version_spec(project_root, version_spec_path, entrypoint_require) ⇒ Object @@ -32423,21 +47403,31 @@

     
     
    -10542
    -10543
    -10544
    -10545
    -10546
    -10547
    +11148 +11149 +11150 +11151 +11152 +11153 +11154 +11155 +11156 +11157 +11158

    @@ -32445,9 +47435,9 @@

    -

    +

    - .large_business_license_cell(author_email) ⇒ Object + .normalize_rakefile_section_spacing(content) ⇒ Object @@ -32459,25 +47449,25 @@

     
     
    -9765
    -9766
    -9767
    -9768
    -9769
    -9770
    -9771
    -9772
    +4693 +4694 +4695 +4696 +4697 +4698 +4699 +4700

    @@ -32485,9 +47475,9 @@

    -

    +

    - .leading_whitespace(source) ⇒ Object + .normalize_readme_blank_line_runs(content) ⇒ Object @@ -32499,17 +47489,19 @@

     
     
    -6581
    -6582
    -6583
    -6584
    +4915 +4916 +4917 +4918 +4919

    @@ -32517,9 +47509,9 @@

    -

    +

    - .license_badge(spdx_id, ref: :license_ref) ⇒ Object + .normalize_readme_heading(text) ⇒ Object @@ -32531,17 +47523,15 @@

     
     
    -9646
    -9647
    -9648
    -9649
    +12883 +12884 +12885

    @@ -32549,9 +47539,9 @@

    -

    +

    - .license_badge_img(spdx_id) ⇒ Object + .normalize_readme_project_heading(content, facts) ⇒ Object @@ -32563,17 +47553,35 @@

     
     
    -9656
    -9657
    -9658
    -9659
    +5173 +5174 +5175 +5176 +5177 +5178 +5179 +5180 +5181 +5182 +5183 +5184 +5185

    @@ -32581,9 +47589,9 @@

    -

    +

    - .license_badge_ref(spdx_id) ⇒ Object + .normalize_readme_section_key(section) ⇒ Object @@ -32595,17 +47603,15 @@

     
     
    -9651
    -9652
    -9653
    -9654
    +12534 +12535 +12536

    @@ -32613,9 +47619,9 @@

    -

    +

    - .license_compat_badge(category) ⇒ Object + .normalize_readme_synopsis_heading(content, facts) ⇒ Object @@ -32627,17 +47633,37 @@

     
     
    -9670
    -9671
    -9672
    -9673
    +5187 +5188 +5189 +5190 +5191 +5192 +5193 +5194 +5195 +5196 +5197 +5198 +5199 +5200

    @@ -32645,9 +47671,9 @@

    -

    +

    - .license_compat_category(licenses) ⇒ Object + .normalize_repository_topology(value) ⇒ Object @@ -32659,25 +47685,25 @@

     
     
    -9661
    -9662
    -9663
    -9664
    -9665
    -9666
    -9667
    -9668
    +9307 +9308 +9309 +9310 +9311 +9312 +9313 +9314

    @@ -32685,9 +47711,9 @@

    -

    +

    - .license_compat_img(category) ⇒ Object + .normalize_simplecov_template_source(content) ⇒ Object @@ -32699,17 +47725,23 @@

     
     
    -9723
    -9724
    -9725
    -9726
    +5591 +5592 +5593 +5594 +5595 +5596 +5597

    @@ -32717,9 +47749,9 @@

    -

    +

    - .license_compat_ref(category) ⇒ Object + .normalize_simplecov_track_files_calls(content) ⇒ Object @@ -32731,15 +47763,29 @@

     
     
    -9719
    -9720
    -9721
    +5628 +5629 +5630 +5631 +5632 +5633 +5634 +5635 +5636 +5637

    @@ -32747,9 +47793,9 @@

    -

    +

    - .license_contact_line(author_email, context:) ⇒ Object + .normalize_spec_helper_simplecov_template_source(content) ⇒ Object @@ -32761,31 +47807,23 @@

     
     
    -9614
    -9615
    -9616
    -9617
    -9618
    -9619
    -9620
    -9621
    -9622
    -9623
    -9624
    +5657 +5658 +5659 +5660 +5661 +5662 +5663

    @@ -32793,9 +47831,9 @@

    -

    - .license_copyright_notice(copyright_lines, copyright_prefix, author) ⇒ Object + .normalize_template_profile(value) ⇒ Object @@ -32807,17 +47845,33 @@

    @@ -32825,9 +47879,9 @@ @@ -32885,9 +47931,9 @@

    -

    +

    - .license_eye_dependency_licenses(config) ⇒ Object + .normalized_readme_logo_specs(value) ⇒ Object @@ -32899,25 +47945,43 @@

     
     
    -9691
    -9692
    -9693
    -9694
    -9695
    -9696
    -9697
    -9698
    +11796 +11797 +11798 +11799 +11800 +11801 +11802 +11803 +11804 +11805 +11806 +11807 +11808 +11809 +11810 +11811 +11812

    @@ -32925,9 +47989,9 @@

    -

    +

    - .license_eye_flags(licenses) ⇒ Object + .normalized_readme_logo_width(value) ⇒ Object @@ -32939,15 +48003,21 @@

     
     
    -9687
    -9688
    -9689
    +11814 +11815 +11816 +11817 +11818 +11819

    @@ -32955,9 +48025,9 @@

    -

    +

    - .license_eye_mode(licenses) ⇒ Object + .normalized_readme_top_logo_options(value) ⇒ Object @@ -32969,15 +48039,15 @@

     
     
    -9683
    -9684
    -9685
    +11792 +11793 +11794

    @@ -32985,29 +48055,52 @@

    -

    +

    - .license_eye_primary_spdx(licenses, fallback) ⇒ Object + .opencollective_disabled?(config, env: ENV) ⇒ Boolean -

     
     
    -6575
    -6576
    -6577
    -6578
    -6579
    +12356 +12357 +12358
    -
    # File 'lib/kettle/jem.rb', line 6575
    +      
    # File 'lib/kettle/jem.rb', line 12356
     
    -def insert_lines_after(content, line_number, insertion)
    -  lines = content.to_s.lines
    -  lines.insert(line_number, insertion)
    -  lines.join
    +def non_mit_licenses?(licenses)
    +  licenses.any? { |license| license != "MIT" }
     end
    -
    # File 'lib/kettle/jem.rb', line 6569
    +      
    # File 'lib/kettle/jem.rb', line 4032
     
    -def insert_lines_before(content, line_number, insertion)
    -  lines = content.to_s.lines
    -  lines.insert([line_number - 1, 0].max, insertion)
    -  lines.join
    +def normalize_changelog(content, facts)
    +  text = content.to_s
    +  title = "# Changelog"
    +  headings = markdown_heading_owners(text, source_label: "CHANGELOG.md")
    +  unless headings.any? { |heading| heading.level == 1 }
    +    text = "#{title}\n\n#{text}"
    +    headings = markdown_heading_owners(text, source_label: "CHANGELOG.md")
    +  end
    +  return ensure_trailing_newline(text) if headings.any? { |heading| heading.level == 2 && changelog_unreleased_heading?(heading.heading_text) }
    +
    +  lines = text.split("\n", -1)
    +  insert_at = headings.find { |heading| heading.level == 2 }&.location&.start_line&.-(1) || lines.length
    +  section = [
    +    "## [Unreleased]",
    +    "",
    +    "### Added",
    +    "",
    +    "### Changed",
    +    "",
    +    "### Deprecated",
    +    "",
    +    "### Removed",
    +    "",
    +    "### Fixed",
    +    "",
    +    "### Security",
    +    ""
    +  ]
    +  lines.insert(insert_at, *section)
    +  ensure_trailing_newline(lines.join("\n").gsub(/\n{3,}/, "\n\n"))
     end
    -
    # File 'lib/kettle/jem.rb', line 6412
    +      
    # File 'lib/kettle/jem.rb', line 5577
     
    -def insert_missing_development_gemspec_dependency_lines(content, missing_lines)
    -  return content if missing_lines.empty?
    +def normalize_conditional_body_indentation(source)
    +  lines = source.to_s.lines
    +  return source if lines.length < 3
     
    -  insert_lines_before(content, gemspec_end_line(content), missing_lines.join)
    +  outer_indent = leading_space_count(lines.first)
    +  desired_body_indent = outer_indent + 2
    +  body = lines[1...-1]
    +  min_body_indent = body.reject { |line| line.strip.empty? }.map { |line| leading_space_count(line) }.min
    +  return source unless min_body_indent && min_body_indent > desired_body_indent
    +
    +  remove_spaces = min_body_indent - desired_body_indent
    +  ([lines.first] + body.map { |line| outdent_line(line, remove_spaces) } + [lines.last]).join
     end
    -
    # File 'lib/kettle/jem.rb', line 6403
    +      
    # File 'lib/kettle/jem.rb', line 6774
     
    -def insert_missing_runtime_gemspec_dependency_lines(content, missing_lines, receiver:)
    -  return content if missing_lines.empty?
    +def normalize_eval_gemfile_ruby_bucket(path)
    +  segments = path.to_s.split("/", -1)
    +  bucket_index = segments.index { |segment| ruby_bucket_path_segment?(segment) }
    +  return unless bucket_index
     
    -  lines = content.to_s.lines
    -  insertion_index = runtime_gemspec_dependency_insertion_index(lines, receiver: receiver)
    -  lines.insert(insertion_index, *missing_lines)
    -  lines.join
    +  segments[bucket_index] = "{ruby}"
    +  segments.join("/")
     end
    -
    # File 'lib/kettle/jem.rb', line 6790
    +      
    # File 'lib/kettle/jem.rb', line 8087
     
    -def insert_yaml_scalar_after_path(content, path, key, value)
    -  lines = content.to_s.lines
    -  entry = yaml_scalar_path_entries(content).find { |candidate| candidate.fetch(:path) == path }
    -  return content unless entry
    +def normalize_gemspec_dependency_version_requirements(source, receiver:, namespace:)
    +  return source if namespace.to_s.empty?
     
    -  line_index = entry.fetch(:line)
    -  indent = lines[line_index].to_s[/\A\s*/].to_s
    -  lines.insert(line_index + 1, "#{indent}#{key}: #{yaml_config_scalar_literal(value, path: path[0...-1] + [key])}\n")
    -  lines.join
    +  replacements = ruby_call_records(source, nil).flat_map do |call|
    +    next [] unless gemspec_dependency_call_kind(call)
    +
    +    Array(call.arguments&.arguments).drop(1).filter_map do |argument|
    +      replacement = ruby_project_version_interpolated_string_source(argument, receiver: receiver, namespace: namespace)
    +      next unless replacement
    +
    +      {start_offset: argument.location.start_offset, end_offset: argument.location.end_offset, replacement: replacement}
    +    end
    +  end
    +  return source if replacements.empty?
    +
    +  replace_source_offsets(source, replacements)
     end
    -
    # File 'lib/kettle/jem.rb', line 1959
    +      
    # File 'lib/kettle/jem.rb', line 7491
     
    -def install_tasks
    -  require "rake"
    -  load(File.expand_path("jem/tasks.rb", __dir__))
    +def normalize_gemspec_project_emoji(line, facts, field:)
    +  return line unless %w[summary description].include?(field.to_s)
    +  return line unless facts&.dig(:project_runtime, :project_emoji_configured)
    +
    +  project_emoji = facts&.dig(:project_runtime, :project_emoji).to_s
    +  return line if project_emoji.empty?
    +
    +  record = gemspec_assignment_records(line).find { |candidate| candidate.fetch(:field) == field.to_s }
    +  value = record&.fetch(:value)
    +  return line unless value.is_a?(String)
    +  string_node = ruby_first_simple_quoted_string_node(record[:value_node])
    +  return line unless string_node
    +
    +  first_value = string_node.unescaped.to_s
    +  line.sub(first_value, "#{project_emoji} #{strip_leading_decorative_graphemes(first_value)}")
     end
    -
    # File 'lib/kettle/jem.rb', line 5748
    +      
    # File 'lib/kettle/jem.rb', line 7481
     
    -def json_merge_options(recipe)
    -  options = {
    -    preference: (recipe.dig(:template_preference, :preference) || "destination").to_sym,
    -    add_template_only_nodes: true,
    -    freeze_token: recipe.dig(:template_preference, :freeze_token) || "kettle-jem"
    -  }
    -  if !recipe.dig(:template_preference, :add_template_only_nodes).nil?
    -    configured = DecisionPolicy.value_to_boolean(recipe.dig(:template_preference, :add_template_only_nodes))
    -    options[:add_template_only_nodes] = configured unless configured.nil?
    -  end
    -  options
    +def normalize_gemspec_receiver(line, from:, to:)
    +  return line if from.to_s.empty? || to.to_s.empty? || from == to
    +
    +  leading = line.to_s.length - line.to_s.lstrip.length
    +  stripped = line.to_s[leading..].to_s
    +  return line unless stripped.start_with?("#{from}.")
    +
    +  "#{line.to_s[0...leading]}#{to}#{stripped[from.to_s.length..]}"
     end
    -
    # File 'lib/kettle/jem.rb', line 10307
    -
    -def kettle_config_bootstrap_facts(project_root, env, template_selection: {})
    -  return if File.exist?(File.join(project_root, KETTLE_CONFIG_PATH))
    -  return if File.exist?(File.join(project_root, LEGACY_KETTLE_CONFIG_PATH))
    -
    -  selected_source = preferred_template_source(PACKAGED_TEMPLATE_ROOT, KETTLE_CONFIG_PATH)
    -  return unless selected_source
    +      
    # File 'lib/kettle/jem.rb', line 11509
     
    -  {
    -    template_preference: {
    -      target_path: KETTLE_CONFIG_PATH,
    -      configured_source: KETTLE_CONFIG_PATH,
    -      selected_source: selected_source,
    -      source_relative_path: selected_source,
    -      source_root: "packaged",
    -      source_root_path: PACKAGED_TEMPLATE_ROOT,
    -      selection_reason: template_source_selection_reason(KETTLE_CONFIG_PATH, selected_source),
    -      apply: true
    -    },
    -    min_divergence_threshold: preferred_template_token_value(nil, nil, env, "KJ_MIN_DIVERGENCE_THRESHOLD").to_s,
    -    template_profile: template_selection[:template_profile].to_s
    -  }.compact
    +def normalize_generated_image_url(url)
    +  Addressable::URI.parse(url.to_s).normalize.to_s
     end
    -
    # File 'lib/kettle/jem.rb', line 10330
    +      
    # File 'lib/kettle/jem.rb', line 4685
     
    -def kettle_config_bootstrap_recipe(bootstrap)
    -  recipe = recipe_entry(
    -    "kettle_config_bootstrap",
    -    KETTLE_CONFIG_PATH,
    -    "yaml",
    -    "supplied_kettle_config_bootstrap",
    -    facts: %w[kettle_config_bootstrap]
    -  )
    -  recipe[:template_preference] = bootstrap.fetch(:template_preference)
    -  recipe[:template_tokens] = {
    -    "KJ|MIN_DIVERGENCE_THRESHOLD" => bootstrap.fetch(:min_divergence_threshold).to_s,
    -    "KJ|MIN_RUBY" => bootstrap[:min_ruby].to_s,
    -    "KJ|MIN_TEST_RUBY" => bootstrap[:test_min_ruby].to_s
    -  }
    -  recipe[:bootstrap_licenses] = Array(bootstrap[:licenses]).map(&:to_s).reject(&:empty?)
    -  recipe[:bootstrap_template_profile] = bootstrap[:template_profile].to_s unless bootstrap[:template_profile].to_s.empty?
    -  recipe[:bootstrap_gemspec_path] = bootstrap[:gemspec_path].to_s unless bootstrap[:gemspec_path].to_s.empty?
    -  recipe[:bootstrap_project_emoji] = bootstrap[:project_emoji].to_s unless bootstrap[:project_emoji].to_s.empty?
    -  recipe
    +def normalize_generated_rakefile(content)
    +  return "" if content.to_s.empty?
    +
    +  stripped = strip_orphaned_rake_task_requires(content.to_s)
    +  spaced = normalize_rakefile_section_spacing(stripped)
    +  ensure_trailing_newline(spaced.rstrip)
     end
    -
    # File 'lib/kettle/jem.rb', line 6981
    +      
    # File 'lib/kettle/jem.rb', line 11693
     
    -def kettle_config_file_override_lines(path, strategy)
    -  parts = path.to_s.split("/")
    -  parts.each_with_index.flat_map do |part, index|
    -    indent = "  " * (index + 1)
    -    if index == parts.length - 1
    -      ["#{indent}#{part}:", "#{"  " * (index + 2)}strategy: #{strategy}"]
    -    else
    -      ["#{indent}#{part}:"]
    -    end
    +def normalize_git_source_url(url)
    +  value = url.to_s.strip
    +  return if value.empty?
    +
    +  if value.start_with?("git@github.com:")
    +    slug = value.split(":", 2).last.to_s.delete_suffix(".git")
    +    return "https://github.com/#{slug}" if slug.split("/").length >= 2
    +  end
    +
    +  uri = URI.parse(value)
    +  if %w[http https].include?(uri.scheme) && uri.host == "github.com"
    +    slug = uri.path.to_s.delete_prefix("/").delete_suffix(".git")
    +    return "https://github.com/#{slug}" if slug.split("/").length >= 2
       end
    +
    +  value
    +rescue URI::InvalidURIError
    +  value
     end
    -
    # File 'lib/kettle/jem.rb', line 3239
    +      
    # File 'lib/kettle/jem.rb', line 13632
     
    -def kettle_config_template_entries_lines(entries)
    -  ["  entries:", *entries.flat_map do |entry|
    -    if entry.is_a?(Hash)
    -      [
    -        "    - source: #{entry.fetch("source")}",
    -        "      target: #{entry.fetch("target")}"
    -      ]
    -    else
    -      ["    - #{entry}"]
    -    end
    -  end]
    +def normalize_github_actions_exec_cmd(command)
    +  normalized = command.to_s.strip
    +  return "kettle-test" if OBSOLETE_APPRAISAL_SPEC_EXEC_CMDS.include?(normalized)
    +
    +  normalized
     end
    -
    # File 'lib/kettle/jem.rb', line 7614
    +      
    # File 'lib/kettle/jem.rb', line 12613
     
    -def kettle_jem_config(project_root)
    -  path = kettle_jem_config_path(project_root)
    -  return {} unless File.exist?(path)
    +def normalize_integration_name(name)
    +  normalized = name.to_s.tr("_", "-").downcase
    +  return "codecov" if normalized == "code-cov"
    +  return "codeql" if normalized == "code-ql"
    +  return SKYWALKING_EYES_INTEGRATION if %w[license-eye license-eyes skywalking-eye skywalking-eyes apache-skywalking-eyes].include?(normalized)
     
    -  config = YAML.safe_load_file(path, permitted_classes: [], aliases: false) || {}
    -  validate_kettle_jem_config!(config)
    -  config
    -rescue Psych::SyntaxError => error
    -  raise Error, "Invalid #{kettle_jem_config_relative_path(project_root)}: #{error.message}"
    +  normalized
     end
    -
    # File 'lib/kettle/jem.rb', line 7625
    +      
    # File 'lib/kettle/jem.rb', line 9724
     
    -def kettle_jem_config_path(project_root)
    -  canonical = File.join(project_root, KETTLE_CONFIG_PATH)
    -  return canonical if File.exist?(canonical)
    +def normalize_kettle_jem_config(config)
    +  return config unless config.is_a?(Hash)
     
    -  File.join(project_root, LEGACY_KETTLE_CONFIG_PATH)
    +  files = config["files"]
    +  return config unless files.is_a?(Hash)
    +
    +  simplecov_config = files[".simplecov"]
    +  return config unless simplecov_config.is_a?(Hash)
    +  return config unless simplecov_config.keys == ["strategy"] && simplecov_config["strategy"].to_s == "keep_destination"
    +
    +  normalized = config.dup
    +  normalized["files"] = files.dup
    +  normalized["files"].delete(".simplecov")
    +  normalized
     end
    -
    # File 'lib/kettle/jem.rb', line 7632
    +      
    # File 'lib/kettle/jem.rb', line 9280
     
    -def kettle_jem_config_relative_path(project_root)
    -  path = kettle_jem_config_path(project_root)
    -  File.expand_path(path).delete_prefix("#{File.expand_path(project_root.to_s)}/")
    +def normalize_list_option(value)
    +  values = Array(value).flat_map { |entry| entry.to_s.split(",") }.map(&:strip).reject(&:empty?)
    +  values.empty? ? nil : values
     end
    -
    # File 'lib/kettle/jem.rb', line 8619
    +      
    # File 'lib/kettle/jem.rb', line 5494
    +
    +def normalize_main_gemfile_nomono_requirements(content)
    +  records = main_gemfile_nomono_requirement_records(content)
    +  return content if records.fetch(:calls).empty? || records.fetch(:assignments).empty?
     
    -def kettle_rb_local_gems(config)
    -  gems = %w[kettle-dev kettle-test kettle-soup-cover]
    -  plugin_names = PluginLoader.normalize_plugin_names(plugin_names_from_config(config))
    -  gems.concat(plugin_names.select { |plugin_name| plugin_name.start_with?("kettle-") })
    -  gems.uniq.join(" ")
    +  assignment_source = records.fetch(:assignments).first.fetch(:source).strip
    +  output = records.fetch(:assignments).sort_by { |record| -record.fetch(:start_line) }.reduce(content.to_s) do |memo, record|
    +    replace_source_range_lines(
    +      memo,
    +      record.fetch(:start_line),
    +      expand_line_range_through_following_blanks(memo, record.fetch(:end_line)),
    +      ""
    +    )
    +  end
    +  call = main_gemfile_nomono_requirement_records(output).fetch(:calls).first
    +  return output unless call
    +
    +  lines = output.lines
    +  insert_at = call.fetch(:start_line) - 1
    +  lines.insert(insert_at, "#{assignment_source}\n")
    +  ensure_trailing_newline(lines.join.gsub(/\n{3,}/, "\n\n"))
     end
    -
    # File 'lib/kettle/jem.rb', line 10542
    +      
    # File 'lib/kettle/jem.rb', line 11148
     
    -def known_license_template_basenames
    -  @known_license_template_basenames ||= Dir.glob(File.join(PACKAGED_TEMPLATE_ROOT, "*.md.example"))
    -    .map { |path| File.basename(path, ".md.example") }
    -    .reject { |basename| NON_LICENSE_MD_BASENAMES.include?(basename) }
    -    .to_set
    +def normalize_non_default_version_gem_version_spec(project_root, version_spec_path, entrypoint_require)
    +  current = read_project_file(project_root, version_spec_path)
    +  return if current.empty?
    +
    +  require_path = File.join(entrypoint_require.to_s, "version_gem")
    +  return if ruby_top_level_require?(current, "require", require_path)
    +
    +  lines = current.lines
    +  lines.insert(version_spec_require_insertion_index(current), %(require "#{require_path}"\n))
    +  write_if_changed(project_root, version_spec_path, collapse_excess_blank_lines(lines.join))
     end
    -
    # File 'lib/kettle/jem.rb', line 9765
    +      
    # File 'lib/kettle/jem.rb', line 4693
     
    -def large_business_license_cell(author_email)
    -  cell = license_link("LicenseRef-Big-Time-Public-License")
    -  if author_email.to_s.empty?
    -    "#{cell} or contact us for a custom license"
    -  else
    -    "#{cell} or [contact us](mailto:#{author_email}) for a custom license"
    -  end
    +def normalize_rakefile_section_spacing(content)
    +  content.to_s.lines.each_with_object([]) do |line, normalized|
    +    if line.start_with?("### ")
    +      normalized.pop while normalized.length > 1 && normalized[-1].strip.empty? && normalized[-2].strip.empty?
    +    end
    +    normalized << line
    +  end.join
     end
    -
    # File 'lib/kettle/jem.rb', line 6581
    +      
    # File 'lib/kettle/jem.rb', line 4915
     
    -def leading_whitespace(source)
    -  text = source.to_s
    -  text[0...(text.length - text.lstrip.length)]
    +def normalize_readme_blank_line_runs(content)
    +  return Ast::Merge.normalize_blank_line_runs(content) if Ast::Merge.respond_to?(:normalize_blank_line_runs)
    +
    +  collapse_excess_blank_lines(content)
     end
    -
    # File 'lib/kettle/jem.rb', line 9646
    +      
    # File 'lib/kettle/jem.rb', line 12883
     
    -def license_badge(spdx_id, ref: :license_ref)
    -  base = spdx_basename(spdx_id)
    -  "[![License: #{base}][#{paperclip_ref(:license_img)}]][#{paperclip_ref(ref)}]"
    +def normalize_readme_heading(text)
    +  strip_readme_heading_adornment(text).strip.downcase
     end
    -
    # File 'lib/kettle/jem.rb', line 9656
    +      
    # File 'lib/kettle/jem.rb', line 5173
     
    -def license_badge_img(spdx_id)
    -  base = spdx_basename(spdx_id).gsub("-", "--").gsub("_", "__").tr(" ", "_")
    -  "https://img.shields.io/badge/License-#{base}-259D6C.svg"
    +def normalize_readme_project_heading(content, facts)
    +  namespace = facts.dig(:rubygems, :namespace).to_s
    +  emoji = facts.dig(:project_runtime, :project_emoji).to_s
    +  return content if namespace.empty? || emoji.empty?
    +
    +  lines = content.to_s.split("\n", -1)
    +  h1 = markdown_heading_owners(content, source_label: "README.md").find { |owner| owner.level == 1 }
    +  return content unless h1
    +
    +  index = h1.location.start_line - 1
    +  lines[index] = "# #{emoji} #{namespace}"
    +  lines.join("\n")
     end
    -
    # File 'lib/kettle/jem.rb', line 9651
    +      
    # File 'lib/kettle/jem.rb', line 12534
     
    -def license_badge_ref(spdx_id)
    -  base = spdx_basename(spdx_id)
    -  base.include?(" OR ") ? "LICENSE.md" : "#{base}.md"
    +def normalize_readme_section_key(section)
    +  normalize_readme_heading(section.to_s.tr("_-", " "))
     end
    -
    # File 'lib/kettle/jem.rb', line 9670
    +      
    # File 'lib/kettle/jem.rb', line 5187
     
    -def license_compat_badge(category)
    -  data = APACHE_LICENSE_COMPAT_BADGE_DATA.fetch(category)
    -  "[![#{data.fetch(:alt)}][#{paperclip_ref(:license_compat_img)}]][#{paperclip_ref(:license_compat)}]"
    +def normalize_readme_synopsis_heading(content, facts)
    +  logo_row = facts.dig(:readme_logo, :h2_synopsis_logo_row).to_s
    +  return content if logo_row.empty?
    +
    +  lines = content.to_s.split("\n", -1)
    +  h2 = markdown_heading_owners(content, source_label: "README.md").find do |owner|
    +    owner.level == 2 && owner.base.to_s == "synopsis"
    +  end
    +  return content unless h2
    +
    +  index = h2.location.start_line - 1
    +  lines[index] = "## 🌻 Synopsis #{logo_row}"
    +  lines.join("\n")
     end
    -
    # File 'lib/kettle/jem.rb', line 9661
    +      
    # File 'lib/kettle/jem.rb', line 9307
     
    -def license_compat_category(licenses)
    -  categories = Array(licenses).filter_map { |license| APACHE_LICENSE_COMPAT_CATEGORIES[license.to_s] }.uniq
    -  return :a if categories.include?(:a)
    -  return :b if categories.include?(:b)
    -  return :x if categories.any? && categories.all?(:x)
    +def normalize_repository_topology(value)
    +  topology = value.to_s.strip.downcase.tr("_", "-")
    +  return "" if topology.empty?
    +  return REPOSITORY_TOPOLOGY_MONOREPO_SUBPROJECT if %w[monorepo-subproject monorepo-subgem monorepo-package subproject subgem].include?(topology)
    +  return REPOSITORY_TOPOLOGY_STANDALONE if %w[standalone single-repo repo].include?(topology)
     
    -  :unknown
    +  topology
     end
    -
    # File 'lib/kettle/jem.rb', line 9723
    +      
    # File 'lib/kettle/jem.rb', line 5591
     
    -def license_compat_img(category)
    -  data = APACHE_LICENSE_COMPAT_BADGE_DATA.fetch(category)
    -  "https://img.shields.io/badge/#{data.fetch(:label)}-#{data.fetch(:message)}-#{data.fetch(:color)}.svg?style=flat&logo=Apache"
    +def normalize_simplecov_template_source(content)
    +  nodes = simplecov_obsolete_call_nodes(content)
    +  output = nodes.sort_by { |node| -node.location.start_line }.reduce(content.to_s) do |output, node|
    +    replace_source_range_lines(output, node.location.start_line, expand_line_range_through_following_blanks(output, node.location.end_line), "")
    +  end
    +  normalize_simplecov_track_files_calls(output)
     end
    -
    # File 'lib/kettle/jem.rb', line 9719
    +      
    # File 'lib/kettle/jem.rb', line 5628
     
    -def license_compat_ref(category)
    -  APACHE_LICENSE_COMPAT_BADGE_DATA.fetch(category).fetch(:ref)
    +def normalize_simplecov_track_files_calls(content)
    +  records = simplecov_track_files_call_records(content)
    +  return content if records.empty?
    +
    +  records.sort_by { |record| -record.fetch(:start_line) }.reduce(content.to_s) do |output, record|
    +    indent = leading_whitespace(record.fetch(:source))
    +    replacement = "#{indent}cover #{record.fetch(:arguments_source)}\n"
    +    replace_source_range_lines(output, record.fetch(:start_line), record.fetch(:end_line), replacement)
    +  end
     end
    -
    # File 'lib/kettle/jem.rb', line 9614
    -
    -def license_contact_line(author_email, context:)
    -  if author_email.to_s.empty?
    -    return "If none of the above licenses fit your use case, please contact the project maintainer to discuss a custom commercial license." if context == :license_md
    +      
    # File 'lib/kettle/jem.rb', line 5657
     
    -    "If none of the available licenses suit your use case, please contact the project maintainer to discuss a custom commercial license."
    -  elsif context == :license_md
    -    "If none of the above licenses fit your use case, please [contact us](mailto:#{author_email}) to discuss a custom commercial license."
    -  else
    -    "If none of the available licenses suit your use case, please [contact us](mailto:#{author_email}) to discuss a custom commercial license."
    -  end
    +def normalize_spec_helper_simplecov_template_source(content)
    +  output = remove_duplicate_simplecov_do_cov_bootstrap_blocks(content)
    +  output = ensure_spec_helper_simplecov_do_cov_bootstrap(output)
    +  output = remove_duplicate_simplecov_requires(output)
    +  output = ensure_spec_helper_simplecov_config_require(output)
    +  ensure_spec_helper_simplecov_start(output)
     end
    -
    # File 'lib/kettle/jem.rb', line 9557
    +      
    # File 'lib/kettle/jem.rb', line 9285
     
    -def license_copyright_notice(copyright_lines, copyright_prefix, author)
    -  lines = copyright_notice_lines(copyright_lines, copyright_prefix, author).map { |line| "- #{line}" }
    -  "## Copyright Notice\n\n#{lines.join("\n")}"
    +def normalize_template_profile(value)
    +  profile = value.to_s.strip.downcase.tr("_", "-")
    +  return "" if profile.empty?
    +  return FULL_TEMPLATE_PROFILE if %w[full large default standalone].include?(profile)
    +  return MONOREPO_SUBGEM_PACKAGE_TEMPLATE_PROFILE if %w[monorepo-subgem monorepo-subproject monorepo-package monorepo-subgem-package small thin package].include?(profile)
    +  return MONOREPO_SUBGEM_RELEASE_TEMPLATE_PROFILE if %w[monorepo-subgem-release monorepo-release release].include?(profile)
    +  return MONOREPO_SUBGEM_FULL_TEMPLATE_PROFILE if %w[monorepo-subgem-full monorepo-full subgem-full].include?(profile)
    +  return MONOREPO_ROOT_TEMPLATE_PROFILE if profile == MONOREPO_ROOT_TEMPLATE_PROFILE
    +  return SHIM_TEMPLATE_PROFILE if %w[shim shim-gem compatibility-shim compat-shim].include?(profile)
    +
    +  profile
     end
    -
    # File 'lib/kettle/jem.rb', line 9700
    +      
    # File 'lib/kettle/jem.rb', line 5551
     
    -def license_eye_dependency_license_entry(entry)
    -  data = if entry.is_a?(Hash)
    -    entry
    -  else
    -    {}
    -  end
    -  name = data["name"] || data[:name]
    -  license = data["license"] || data[:license]
    -  version = data["version"] || data[:version]
    -  return if name.to_s.strip.empty? || license.to_s.strip.empty?
    +def normalize_templating_guard_indentation(content)
    +  records = templating_guard_records(content)
    +  return content if records.empty?
     
    -  lines = [
    -    "    - name: #{JSON.generate(name.to_s.strip)}",
    -    "      license: #{JSON.generate(license.to_s.strip)}"
    -  ]
    -  lines.insert(1, "      version: #{JSON.generate(version.to_s.strip)}") unless version.to_s.strip.empty?
    -  lines
    +  output = content.to_s
    +  records.sort_by { |record| -record.fetch(:start_line) }.each do |record|
    +    source = output.lines[(record.fetch(:start_line) - 1)..(record.fetch(:end_line) - 1)].join
    +    normalized = normalize_conditional_body_indentation(source)
    +    next if normalized == source
    +
    +    output = replace_source_range_lines(output, record.fetch(:start_line), record.fetch(:end_line), normalized)
    +  end
    +  output
     end
    -
    # File 'lib/kettle/jem.rb', line 9691
    +      
    # File 'lib/kettle/jem.rb', line 11796
     
    -def license_eye_dependency_licenses(config)
    -  entries = Array(config.dig("license_eye", "dependency_licenses")).filter_map do |entry|
    -    license_eye_dependency_license_entry(entry)
    +def normalized_readme_logo_specs(value)
    +  raw_values = case value
    +  when String
    +    value.split(",")
    +  when Array
    +    value
    +  else
    +    []
       end
    -  return "" if entries.empty?
    +  raw_values.filter_map do |raw_value|
    +    raw_type, raw_width = raw_value.to_s.split("|", 2)
    +    normalized = raw_type.to_s.strip.downcase.tr("-", "_")
    +    next unless README_TOP_LOGO_OPTIONS.include?(normalized)
     
    -  ["  licenses:", *entries].join("\n")
    +    {type: normalized, width: normalized_readme_logo_width(raw_width)}
    +  end.uniq
     end
    -
    # File 'lib/kettle/jem.rb', line 9687
    +      
    # File 'lib/kettle/jem.rb', line 11814
     
    -def license_eye_flags(licenses)
    -  (license_eye_mode(licenses) == "check") ? "--weak-compatible" : ""
    +def normalized_readme_logo_width(value)
    +  clean = value.to_s.strip
    +  return nil if clean.empty?
    +
    +  clean
     end
    -
    # File 'lib/kettle/jem.rb', line 9683
    +      
    # File 'lib/kettle/jem.rb', line 11792
     
    -def license_eye_mode(licenses)
    -  (Array(licenses).map(&:to_s).any? { |license| LICENSE_EYE_COMPATIBILITY_LICENSES.include?(license) }) ? "check" : "resolve"
    +def normalized_readme_top_logo_options(value)
    +  normalized_readme_logo_specs(value).map { |spec| spec.fetch(:type) }
     end
    +
    +
    + + + +
    +
    +
    + +

    Returns:

    +
      + +
    • + + + (Boolean) + + + +
    • + +
    + +
    @@ -33015,29 +48108,52 @@

    -

    +

    - .license_eye_workflow_badge(licenses) ⇒ Object + .opencollective_disabled_file?(relative_path) ⇒ Boolean -

     
     
    -9679
    -9680
    -9681
    +9969 +9970 +9971
    -
    # File 'lib/kettle/jem.rb', line 9679
    +      
    # File 'lib/kettle/jem.rb', line 9969
     
    -def license_eye_primary_spdx(licenses, fallback)
    -  Array(licenses).map(&:to_s).find { |license| LICENSE_EYE_COMPATIBILITY_LICENSES.include?(license) } || fallback
    +def opencollective_disabled?(config, env: ENV)
    +  opencollective_policy(config, env).fetch(:disabled)
     end
    +
    +
    + + + +
    +
    +
    + +

    Returns:

    +
      + +
    • + + + (Boolean) + + + +
    • + +
    + +
    @@ -33045,73 +48161,33 @@

    -

    - - .license_facts(config, gemspec_licenses, author: {}, author_email: nil, copyright: {}) ⇒ Object +

    - + .opencollective_disabled_files(project_root) ⇒ Object -

     
     
    -9675
    -9676
    -9677
    +9652 +9653 +9654
    -
    # File 'lib/kettle/jem.rb', line 9675
    +      
    # File 'lib/kettle/jem.rb', line 9652
     
    -def license_eye_workflow_badge(licenses)
    -  Array(licenses).map(&:to_s).include?("MIT") ? README_LICENSE_EYE_WORKFLOW_BADGE : ""
    +def opencollective_disabled_file?(relative_path)
    +  OPENCOLLECTIVE_DISABLED_FILES.include?(relative_path.to_s)
     end
    - - - @@ -36752,9 +52147,9 @@

    -

    +

    - .opencollective_disabled_files(project_root) ⇒ Object + .rakefile_default_task_records(content) ⇒ Object @@ -36766,18 +52161,28 @@

     
     
    -7548
    -7549
    -7550
    -7551
    -7552
    +13847 +13848 +13849 +13850 +13851 +13852 +13853 +13854 +13855 +13856

    @@ -36786,9 +52191,9 @@

    -

    +

    - .opencollective_falsey_env(env) ⇒ Object + .rakefile_require_records(content) ⇒ Object @@ -36800,23 +52205,33 @@

     
     
    -7879
    -7880
    -7881
    -7882
    -7883
    -7884
    -7885
    +13808 +13809 +13810 +13811 +13812 +13813 +13814 +13815 +13816 +13817 +13818 +13819

    @@ -36824,9 +52239,9 @@

    -

    +

    - .opencollective_org(project_root, config, env, opencollective_disabled: false) ⇒ Object + .rakefile_scaffold_cleanup(content, facts) ⇒ Object @@ -36838,37 +52253,19 @@

     
     
    -7887
    -7888
    -7889
    -7890
    -7891
    -7892
    -7893
    -7894
    -7895
    -7896
    -7897
    -7898
    -7899
    -7900
    +4418 +4419 +4420 +4421 +4422

    @@ -36876,47 +52273,52 @@

    -

    +

    - .opencollective_org_config(config) ⇒ Object + .rakefile_scaffold_cleanup_recipe?(recipe) ⇒ Boolean -

    -
    -
    -
    -9503
    -9504
    -9505
    -9506
    -9507
    -9508
    -9509
    -9510
    -9511
    -9512
    -9513
    -9514
    -9515
    -9516
    -9517
    -9518
    -9519
    -9520
    -9521
    -9522
    -9523
    -9524
    -9525
    -9526
    -9527
    -
    -
    # File 'lib/kettle/jem.rb', line 9503
    -
    -def license_facts(config, gemspec_licenses, author: {}, author_email: nil, copyright: {})
    -  licenses = resolved_licenses(config, gemspec_licenses)
    -  primary = licenses.first
    -  compat_category = license_compat_category(licenses)
    -  copyright_prefix = polyform_licenses?(licenses) ? "Required Notice: " : ""
    -  copyright_lines = Array(copyright[:lines])
    -  compact_hash(
    -    spdx: licenses,
    -    expression: licenses.join(" OR "),
    -    primary_spdx: primary,
    -    license_md_content: license_md_content(licenses, author_email: author_email),
    -    readme_license_intro: readme_license_intro(licenses, author_email: author_email),
    -    readme_license_badge: license_badge(licenses.join(" OR "), ref: :license),
    -    readme_license_compat_badge: license_compat_badge(compat_category),
    -    readme_license_eye_workflow_badge: license_eye_workflow_badge(licenses),
    -    readme_license_refs: readme_license_refs(licenses.join(" OR "), compat_category),
    -    license_eye_primary_spdx: license_eye_primary_spdx(licenses, primary),
    -    license_eye_mode: license_eye_mode(licenses),
    -    license_eye_flags: license_eye_flags(licenses),
    -    license_eye_dependency_licenses: license_eye_dependency_licenses(config),
    -    license_copyright_notice: license_copyright_notice(copyright_lines, copyright_prefix, author),
    -    readme_copyright_notice: readme_copyright_notice(copyright_lines, copyright_prefix, author),
    -    copyright_prefix: copyright_prefix
    -  )
    +
    +  
    +
    +  
    +    
    +    
    @@ -33119,9 +48195,9 @@ 

    -

    - .license_link(spdx_id) ⇒ Object + .opencollective_fallback_warnings(funding, github_org) ⇒ Object @@ -33133,17 +48209,29 @@

    @@ -33151,9 +48239,9 @@ @@ -33203,9 +48277,9 @@

    -

    +

    - .license_template_tokens(license) ⇒ Object + .opencollective_org(project_root, config, env, opencollective_disabled: false) ⇒ Object @@ -33217,45 +48291,37 @@

     
     
    -9538
    -9539
    -9540
    -9541
    -9542
    -9543
    -9544
    -9545
    -9546
    -9547
    -9548
    -9549
    -9550
    -9551
    -9552
    -9553
    -9554
    -9555
    +10003 +10004 +10005 +10006 +10007 +10008 +10009 +10010 +10011 +10012 +10013 +10014 +10015 +10016

    @@ -33263,9 +48329,9 @@

    -

    +

    - .license_use_case_guide_table(licenses, author_email: nil) ⇒ Object + .opencollective_org_config(config) ⇒ Object @@ -33277,33 +48343,33 @@

     
     
    -9736
    -9737
    -9738
    -9739
    -9740
    -9741
    -9742
    -9743
    -9744
    -9745
    -9746
    -9747
    +10033 +10034 +10035 +10036 +10037 +10038 +10039 +10040 +10041 +10042 +10043 +10044

    @@ -33311,9 +48377,9 @@

    -

    +

    - .license_use_case_rows(licenses, author_email: nil) ⇒ Object + .opencollective_org_env(env) ⇒ Object @@ -33325,39 +48391,27 @@

     
     
    -9749
    -9750
    -9751
    -9752
    -9753
    -9754
    -9755
    -9756
    -9757
    -9758
    -9759
    -9760
    -9761
    -9762
    -9763
    +10046 +10047 +10048 +10049 +10050 +10051 +10052 +10053 +10054

    @@ -33365,9 +48419,9 @@

    -

    +

    - .load_project_gemspec(gemspec_path) ⇒ Object + .opencollective_org_file(project_root) ⇒ Object @@ -33379,19 +48433,33 @@

     
     
    -8592
    -8593
    -8594
    -8595
    -8596
    +10056 +10057 +10058 +10059 +10060 +10061 +10062 +10063 +10064 +10065 +10066 +10067

    @@ -33399,52 +48467,113 @@

    -

    +

    - .local_gemfile_template_recipe?(recipe) ⇒ Boolean + .opencollective_org_github_funding_file(project_root) ⇒ Object -

    -
    - +

    +
    +
    +
    +9646
    +9647
    +9648
    +9649
    +9650
    +
    +
    # File 'lib/kettle/jem.rb', line 9646
    +
    +def opencollective_disabled_files(project_root)
    +  OPENCOLLECTIVE_DISABLED_FILES.select do |relative_path|
    +    File.exist?(File.join(project_root, relative_path))
    +  end
     end
    -
    # File 'lib/kettle/jem.rb', line 9641
    +      
    # File 'lib/kettle/jem.rb', line 10022
     
    -def license_link(spdx_id)
    -  base = spdx_basename(spdx_id)
    -  "[#{base}](#{base}.md)"
    +def opencollective_fallback_warnings(funding, github_org)
    +  return [] unless funding[:open_collective_org_source].to_s == "fallback.default"
    +
    +  clean_github_org = github_org.to_s.strip
    +  return [] if clean_github_org.empty? || clean_github_org == DEFAULT_OPENCOLLECTIVE_ORG
    +
    +  [
    +    "OpenCollective funding org defaulted to #{DEFAULT_OPENCOLLECTIVE_ORG.inspect}, but the GitHub org is #{clean_github_org.inspect}. Configure funding.open_collective or FUNDING_ORG if this is not intended."
    +  ]
     end
    -
    # File 'lib/kettle/jem.rb', line 9582
    +      
    # File 'lib/kettle/jem.rb', line 9995
     
    -def license_md_content(licenses, author_email: nil)
    -  content = <<~MARKDOWN.chomp
    -    # License
    -
    -    This project is made available under the following license#{"s" if licenses.size > 1}.
    -    Choose the option that best fits your use case:
    -
    -    #{licenses.map { |license| "- #{license_link(license)}" }.join("\n")}
    -  MARKDOWN
    -  guide_table = license_use_case_guide_table(licenses, author_email: author_email)
    -  content += "\n\n## Use-case guide\n\n#{guide_table}" if guide_table
    -  content += "\n\n#{license_contact_line(author_email, context: :license_md)}" if non_mit_licenses?(licenses)
    -  content
    +def opencollective_falsey_env(env)
    +  %w[OPENCOLLECTIVE_HANDLE FUNDING_ORG].each do |key|
    +    value = env[key]
    +    return {key: key, value: value} if falsey_config?(value)
    +  end
    +  nil
     end
    -
    # File 'lib/kettle/jem.rb', line 9538
    +      
    # File 'lib/kettle/jem.rb', line 10003
     
    -def license_template_tokens(license)
    -  {
    -    "KJ|LICENSE_MD_CONTENT" => license[:license_md_content].to_s,
    -    "KJ|README:LICENSE_INTRO" => license[:readme_license_intro].to_s,
    -    "KJ|LICENSE:PRIMARY_SPDX" => license[:primary_spdx].to_s,
    -    "KJ|LICENSE_EYE:PRIMARY_SPDX" => license[:license_eye_primary_spdx].to_s,
    -    "KJ|LICENSE_EYE:MODE" => license[:license_eye_mode].to_s,
    -    "KJ|LICENSE_EYE:FLAGS" => license[:license_eye_flags].to_s,
    -    "KJ|LICENSE_EYE:DEPENDENCY_LICENSES" => license[:license_eye_dependency_licenses].to_s,
    -    "KJ|README:LICENSE_BADGE" => license[:readme_license_badge].to_s,
    -    "KJ|README:LICENSE_COMPAT_BADGE" => license[:readme_license_compat_badge].to_s,
    -    "KJ|README:LICENSE_EYE_WORKFLOW_BADGE" => license[:readme_license_eye_workflow_badge].to_s,
    -    "KJ|README:LICENSE_REFS" => license[:readme_license_refs].to_s,
    -    "KJ|LICENSE_COPYRIGHT_NOTICE" => license[:license_copyright_notice].to_s,
    -    "KJ|README:COPYRIGHT_NOTICE" => license[:readme_copyright_notice].to_s,
    -    "KJ|COPYRIGHT_PREFIX" => license[:copyright_prefix].to_s
    -  }
    +def opencollective_org(project_root, config, env, opencollective_disabled: false)
    +  return if opencollective_disabled
    +
    +  env_org = opencollective_org_env(env)
    +  return env_org if env_org
    +
    +  config_org = opencollective_org_config(config)
    +  return config_org if config_org
    +
    +  funding_org = opencollective_org_github_funding_file(project_root)
    +  return funding_org if funding_org
    +
    +  opencollective_org_file(project_root)
     end
    -
    # File 'lib/kettle/jem.rb', line 9736
    +      
    # File 'lib/kettle/jem.rb', line 10033
     
    -def license_use_case_guide_table(licenses, author_email: nil)
    -  has_floss_oss = licenses.include?("MIT") || licenses.include?("AGPL-3.0-only")
    -  has_polyform = licenses.include?("PolyForm-Noncommercial-1.0.0") || licenses.include?("PolyForm-Small-Business-1.0.0")
    -  has_big_time = licenses.include?("LicenseRef-Big-Time-Public-License")
    -  return unless has_floss_oss && has_polyform && has_big_time
    +def opencollective_org_config(config)
    +  funding = config["funding"]
    +  return unless funding.is_a?(Hash) && funding.key?("open_collective")
     
    -  rows = license_use_case_rows(licenses, author_email: author_email)
    -  return if rows.empty?
    +  value = funding["open_collective"]
    +  return if value == true || falsey_config?(value)
     
    -  "| Use case | License |\n|---|---|\n" +
    -    rows.map { |use_case, license| "| #{use_case} | #{license} |" }.join("\n")
    +  org = value.to_s.strip
    +  return if org.empty?
    +
    +  {org: org, source: "config.funding.open_collective"}
     end
    -
    # File 'lib/kettle/jem.rb', line 9749
    +      
    # File 'lib/kettle/jem.rb', line 10046
     
    -def license_use_case_rows(licenses, author_email: nil)
    -  rows = []
    -  rows << ["FLOSS (free and open source)", license_link("MIT")] if licenses.include?("MIT")
    -  rows << ["Copy-left open source", license_link("AGPL-3.0-only")] if licenses.include?("AGPL-3.0-only")
    -  noncommercial_links = %w[PolyForm-Noncommercial-1.0.0 PolyForm-Small-Business-1.0.0 LicenseRef-Big-Time-Public-License]
    -    .select { |license| licenses.include?(license) }
    -    .map { |license| license_link(license) }
    -  rows << ["Non-commercial (research, education, personal use)", noncommercial_links.join(" or ")] unless noncommercial_links.empty?
    -  small_business_links = %w[PolyForm-Small-Business-1.0.0 LicenseRef-Big-Time-Public-License]
    -    .select { |license| licenses.include?(license) }
    -    .map { |license| license_link(license) }
    -  rows << ["Small business commercial", small_business_links.join(" or ")] unless small_business_links.empty?
    -  rows << ["Larger business commercial", large_business_license_cell(author_email)] if licenses.include?("LicenseRef-Big-Time-Public-License")
    -  rows
    +def opencollective_org_env(env)
    +  %w[OPENCOLLECTIVE_HANDLE FUNDING_ORG].each do |key|
    +    value = env[key].to_s.strip
    +    next if value.empty? || falsey_config?(value)
    +
    +    return {org: value, source: "env.#{key}"}
    +  end
    +  nil
     end
    -
    # File 'lib/kettle/jem.rb', line 8592
    +      
    # File 'lib/kettle/jem.rb', line 10056
     
    -def load_project_gemspec(gemspec_path)
    -  Gem::Specification.load(gemspec_path)
    -rescue LoadError, StandardError
    -  nil
    +def opencollective_org_file(project_root)
    +  path = File.join(project_root, ".opencollective.yml")
    +  return unless File.exist?(path)
    +
    +  config = YAML.safe_load_file(path, permitted_classes: [], aliases: false) || {}
    +  return unless config.is_a?(Hash)
    +
    +  org = config.fetch("collective", config["org"]).to_s.strip
    +  return if org.empty?
    +
    +  {org: org, source: ".opencollective.yml"}
     end
    + + + + +
    +
     
     
    -  
    +10069
    +10070
    +10071
    +10072
    +10073
    +10074
    +10075
    +10076
    +10077
    +10078
    +10079
    +10080
    +
    +
    # File 'lib/kettle/jem.rb', line 10069
    +
    +def opencollective_org_github_funding_file(project_root)
    +  path = File.join(project_root, ".github", "FUNDING.yml")
    +  return unless File.exist?(path)
    +
    +  funding = YAML.safe_load_file(path, permitted_classes: [], aliases: false) || {}
    +  return unless funding.is_a?(Hash)
    +
    +  org = Array(funding["open_collective"]).map(&:to_s).map(&:strip).reject(&:empty?).first
    +  return unless org
    +
    +  {org: org.delete_prefix("@"), source: ".github/FUNDING.yml"}
    +end
    +
    -
    + +
    +

    -

    Returns:

    -
      + .opencollective_policy(config, env) ⇒ Object -
    • - - - (Boolean) - - - -
    • + -
    -

    + +
    @@ -33452,9 +48581,9 @@

    -

    +

    - .local_gems_assignment(content) ⇒ Object + .opt_in_workflow_cleanup_files(project_root, template_selection) ⇒ Object @@ -33466,15 +48595,23 @@

     
     
    -4876
    -4877
    -4878
    +9620 +9621 +9622 +9623 +9624 +9625 +9626

    @@ -33482,9 +48619,9 @@

    -

    +

    - .local_gems_assignment_record(content) ⇒ Object + .outdent_line(line, spaces) ⇒ Object @@ -33496,41 +48633,19 @@

     
     
    -4891
    -4892
    -4893
    -4894
    -4895
    -4896
    -4897
    -4898
    -4899
    -4900
    -4901
    -4902
    -4903
    -4904
    -4905
    -4906
    +5852 +5853 +5854 +5855 +5856

    @@ -33538,9 +48653,9 @@

    -

    +

    - .managed_license_template_basename(target_path) ⇒ Object + .outdent_source(source, spaces) ⇒ Object @@ -33552,27 +48667,17 @@

     
     
    -10532
    -10533
    -10534
    -10535
    -10536
    -10537
    -10538
    -10539
    -10540
    +5943 +5944 +5945 +5946

    @@ -33580,70 +48685,71 @@

    -

    +

    - .markdown_heading_has_preserved_readme_ancestor?(heading_sections, index) ⇒ Boolean + .package_runtime_dependency_names(facts) ⇒ Object -

    -
    - +

     
     
    -4839
    -4840
    -4841
    +9973 +9974 +9975 +9976 +9977 +9978 +9979 +9980 +9981 +9982 +9983 +9984 +9985 +9986 +9987 +9988 +9989 +9990 +9991 +9992 +9993
    -
    # File 'lib/kettle/jem.rb', line 4839
    +      
    # File 'lib/kettle/jem.rb', line 9973
     
    -def local_gemfile_template_recipe?(recipe)
    -  recipe.fetch(:target_path).to_s.end_with?("_local.gemfile")
    +def opencollective_policy(config, env)
    +  funding = config["funding"]
    +  if funding.is_a?(Hash) && funding.key?("open_collective")
    +    config_value = funding["open_collective"]
    +    return {
    +      disabled: falsey_config?(config_value),
    +      source: "config.funding.open_collective",
    +      value: config_value.to_s
    +    }
    +  end
    +
    +  env_falsey = opencollective_falsey_env(env)
    +  return {disabled: true, source: "env.#{env_falsey.fetch(:key)}", value: env_falsey.fetch(:value).to_s} if env_falsey
    +
    +  template_profile = config.dig("templates", "profile").to_s
    +  if [MONOREPO_SUBGEM_TEMPLATE_PROFILE, "monorepo-subgem"].include?(template_profile)
    +    return {disabled: true, source: "config.templates.profile", value: template_profile}
    +  end
    +
    +  {disabled: false}
     end
    -
    # File 'lib/kettle/jem.rb', line 4876
    +      
    # File 'lib/kettle/jem.rb', line 9620
     
    -def local_gems_assignment(content)
    -  local_gems_assignment_record(content)&.fetch(:names) || []
    +def opt_in_workflow_cleanup_files(project_root, template_selection)
    +  include_patterns = Array(template_selection[:include])
    +  OPT_IN_GITHUB_WORKFLOWS.select do |relative_path|
    +    File.exist?(File.join(project_root, relative_path)) &&
    +      !selected_template_path?(relative_path, include_patterns)
    +  end
     end
    -
    # File 'lib/kettle/jem.rb', line 4891
    +      
    # File 'lib/kettle/jem.rb', line 5852
     
    -def local_gems_assignment_record(content)
    -  result = prism_parse_success(content)
    -  return unless result
    +def outdent_line(line, spaces)
    +  return line if line.strip.empty?
     
    -  result.value.breadth_first_search_all do |node|
    -    node.is_a?(::Prism::LocalVariableWriteNode) &&
    -      node.name == :local_gems &&
    -      ruby_word_array_node?(node.value)
    -  end.first&.then do |node|
    -    {
    -      names: ruby_word_array_names(node.value),
    -      start_line: node.location.start_line,
    -      end_line: node.location.end_line
    -    }
    -  end
    +  line.delete_prefix(" " * spaces)
     end
    -
    # File 'lib/kettle/jem.rb', line 10532
    -
    -def managed_license_template_basename(target_path)
    -  path = target_path.to_s
    -  return unless path.end_with?(".md")
    +      
    # File 'lib/kettle/jem.rb', line 5943
     
    -  basename = File.basename(path, ".md")
    -  return if NON_LICENSE_MD_BASENAMES.include?(basename)
    -
    -  known_license_template_basenames.include?(basename) ? basename : nil
    +def outdent_source(source, spaces)
    +  prefix = " " * spaces
    +  source.to_s.lines.map { |line| line.start_with?(prefix) ? line.delete_prefix(prefix) : line }.join
     end
    + + + + +
    +
     
     
    -  
    +6273
    +6274
    +6275
    +6276
    +
    +
    # File 'lib/kettle/jem.rb', line 6273
    +
    +def package_runtime_dependency_names(facts)
    +  dependencies = facts.to_h.dig(:package, :runtime_dependencies)
    +  Array(dependencies).map(&:to_s).reject(&:empty?).uniq
    +end
    +
    -
    + +
    +

    -

    Returns:

    -
      + .packaged_gemfile_template_ruby_floor(target_path) ⇒ Object -
    • - - - (Boolean) - - - -
    • + -
    -

    + +
    @@ -33651,9 +48757,9 @@

    -

    +

    - .markdown_heading_owners(content, source_label: "README.md") ⇒ Object + .packaged_template_rootObject @@ -33665,21 +48771,15 @@

     
     
    -4676
    -4677
    -4678
    -4679
    -4680
    -4681
    +2099 +2100 +2101

    @@ -33687,9 +48787,9 @@

    -

    - .markdown_link_definition_source(owner, url) ⇒ Object + .paired_modular_gemfile_path(local_relative_path) ⇒ Object @@ -33701,19 +48801,23 @@

    @@ -33721,52 +48825,127 @@
     
     
    -4561
    -4562
    -4563
    -4564
    -4565
    -4566
    -4567
    -4568
    -4569
    -4570
    -4571
    -4572
    +13389 +13390 +13391 +13392 +13393 +13394 +13395 +13396
    -
    # File 'lib/kettle/jem.rb', line 4561
    -
    -def markdown_heading_has_preserved_readme_ancestor?(heading_sections, index)
    -  owner = heading_sections.fetch(index)
    -  ancestor_level = owner.level.to_i
    -  heading_sections[0...index].reverse_each do |candidate|
    -    next unless candidate.level.to_i < ancestor_level
    -
    -    return true if README_DEFAULT_PRESERVE_SECTIONS.include?(candidate.base.to_s)
    +      
    # File 'lib/kettle/jem.rb', line 13389
     
    -    ancestor_level = candidate.level.to_i
    +def packaged_gemfile_template_ruby_floor(target_path)
    +  path = target_path.to_s
    +  if (match = path.match(%r{\Agemfiles/ruby_(\d+)_(\d+)\.gemfile\z}))
    +    return "#{match[1]}.#{match[2]}"
       end
    -  false
    +
    +  path[%r{(?:\A|/)r(\d+\.\d+)(?:/|\z)}, 1]
     end
    -
    # File 'lib/kettle/jem.rb', line 4676
    +      
    # File 'lib/kettle/jem.rb', line 2099
     
    -def markdown_heading_owners(content, source_label: "README.md")
    -  context = Ast::Crispr::Markdown::Markly.document_context(content: content.to_s, source_label: source_label)
    -  context.structural_owners(owner_scope: :heading_sections)
    -rescue Ast::Crispr::Error
    -  []
    +def packaged_template_root
    +  PACKAGED_TEMPLATE_ROOT
     end
    -
    # File 'lib/kettle/jem.rb', line 4628
    +      
    # File 'lib/kettle/jem.rb', line 10757
     
    -def markdown_link_definition_source(owner, url)
    -  source = "[#{owner.label}]: #{url}"
    -  source = "#{source} #{owner.title.dump}" if owner.title
    -  "#{source}\n"
    +def paired_modular_gemfile_path(local_relative_path)
    +  suffix = "_local.gemfile"
    +  path = local_relative_path.to_s
    +  return unless path.end_with?(suffix)
    +
    +  "#{path[0...-suffix.length]}.gemfile"
     end
    + + + + +
    +
     
     
    -  
    +12398
    +12399
    +12400
    +12401
    +12402
    +12403
    +12404
    +12405
    +12406
    +12407
    +
    +
    # File 'lib/kettle/jem.rb', line 12398
    +
    +def paperclip_ref(name)
    +  {
    +    copyright_notice_explainer: "\u{1F4C4}copyright-notice-explainer",
    +    license: "\u{1F4C4}license",
    +    license_ref: "\u{1F4C4}license-ref",
    +    license_img: "\u{1F4C4}license-img",
    +    license_compat: "\u{1F4C4}license-compat",
    +    license_compat_img: "\u{1F4C4}license-compat-img"
    +  }.fetch(name)
    +end
    +
    -
    + +
    +

    -

    Returns:

    -
      + .parse_blame_porcelain(output, author_map) ⇒ Object -
    • - - - (Boolean) - - - -
    • + -
    -

    + +
    @@ -33774,9 +48953,9 @@

    +

    - .markdown_managed_block(content, marker) ⇒ Object + .phase_for_recipe(recipe_name, relative_path) ⇒ Object @@ -33788,33 +48967,41 @@

     
     
    -10094
    -10095
    -10096
    -10097
    -10098
    -10099
    -10100
    -10101
    -10102
    -10103
    -10104
    -10105
    +9895 +9896 +9897 +9898 +9899 +9900 +9901 +9902 +9903 +9904 +9905 +9906 +9907 +9908 +9909 +9910

    @@ -33822,9 +49009,9 @@

    -

    +

    - .markdown_sections(content) ⇒ Object + .phase_reports_for(recipe_reports) ⇒ Object @@ -33836,41 +49023,39 @@

     
     
    -10107
    -10108
    -10109
    -10110
    -10111
    -10112
    -10113
    -10114
    -10115
    -10116
    -10117
    -10118
    -10119
    -10120
    -10121
    -10122
    -10123
    +9874 +9875 +9876 +9877 +9878 +9879 +9880 +9881 +9882 +9883 +9884 +9885 +9886 +9887 +9888 +9889

    @@ -33910,9 +49187,9 @@

    -

    +

    - .merge_appraisal_blocks_with_prism(template_block, destination_block) ⇒ Object + .plan_readme_style(project_root, env: ENV) ⇒ Object @@ -33924,37 +49201,57 @@

     
     
    -5857
    -5858
    -5859
    -5860
    -5861
    -5862
    -5863
    -5864
    -5865
    -5866
    -5867
    -5868
    -5869
    -5870
    +3843 +3844 +3845 +3846 +3847 +3848 +3849 +3850 +3851 +3852 +3853 +3854 +3855 +3856 +3857 +3858 +3859 +3860 +3861 +3862 +3863 +3864 +3865 +3866

    @@ -33962,9 +49259,9 @@

    -

    +

    - .merge_appraisals_template_policy(content, facts:) ⇒ Object + .plugin_lifecycle_diagnostic(plugin_registry, callbacks_run:, active_runner_phases:) ⇒ Object @@ -33976,29 +49273,43 @@

     
     
    -5576
    -5577
    -5578
    -5579
    -5580
    -5581
    -5582
    -5583
    -5584
    -5585
    +9792 +9793 +9794 +9795 +9796 +9797 +9798 +9799 +9800 +9801 +9802 +9803 +9804 +9805 +9806 +9807 +9808

    @@ -34006,9 +49317,9 @@

    -

    +

    - .merge_bash_template_source(template_content, destination_content, recipe) ⇒ Object + .plugin_names_from_config(config) ⇒ Object @@ -34020,55 +49331,31 @@

     
     
    -5833
    -5834
    -5835
    -5836
    -5837
    -5838
    -5839
    -5840
    -5841
    -5842
    -5843
    -5844
    -5845
    -5846
    -5847
    -5848
    -5849
    -5850
    -5851
    -5852
    -5853
    -5854
    -5855
    +9780 +9781 +9782 +9783 +9784 +9785 +9786 +9787 +9788 +9789 +9790

    @@ -34076,9 +49363,9 @@

    -

    +

    - .merge_changelog_template_source(template_content, destination_content) ⇒ Object + .plugin_registry_for_project(project_root) ⇒ Object @@ -34090,65 +49377,37 @@

     
     
    -3687
    -3688
    -3689
    -3690
    -3691
    -3692
    -3693
    -3694
    -3695
    -3696
    -3697
    -3698
    -3699
    -3700
    -3701
    -3702
    -3703
    -3704
    -3705
    -3706
    -3707
    -3708
    -3709
    -3710
    -3711
    -3712
    -3713
    -3714
    +9765 +9766 +9767 +9768 +9769 +9770 +9771 +9772 +9773 +9774 +9775 +9776 +9777 +9778

    @@ -34156,9 +49415,9 @@

    -

    +

    - .merge_config_template_source(recipe, template_content, destination_content, facts: nil, env: ENV) ⇒ Object + .polyform_licenses?(licenses) ⇒ Boolean @@ -34173,13 +49432,13 @@

    -

    Raises:

    -
      +

      Returns:

      +
      • - (ArgumentError) + (Boolean) @@ -34193,145 +49452,57 @@

         
         
        -4757
        -4758
        -4759
        -4760
        -4761
        -4762
        -4763
        -4764
        -4765
        -4766
        -4767
        -4768
        -4769
        -4770
        -4771
        -4772
        -4773
        -4774
        -4775
        -4776
        -4777
        -4778
        -4779
        -4780
        -4781
        -4782
        -4783
        -4784
        -4785
        -4786
        -4787
        -4788
        -4789
        -4790
        -4791
        -4792
        -4793
        -4794
        -4795
        -4796
        -4797
        -4798
        -4799
        -4800
        -4801
        -4802
        -4803
        -4804
        -4805
        -4806
        -4807
        -4808
        -4809
        -4810
        -4811
        -4812
        -4813
        -4814
        -4815
        -4816
        -4817
        -4818
        -4819
        -4820
        -4821
        -4822
        -4823
        -4824
        +12352 +12353 +12354

    + +
     
     
    -3750
    -3751
    -3752
    +10514 +10515 +10516 +10517 +10518 +10519 +10520 +10521 +10522 +10523 +10524 +10525 +10526 +10527 +10528 +10529 +10530 +10531 +10532 +10533 +10534 +10535 +10536 +10537 +10538 +10539 +10540 +10541 +10542 +10543
    -
    # File 'lib/kettle/jem.rb', line 3750
    +      
    # File 'lib/kettle/jem.rb', line 10514
     
    -def markdown_link_reference_definition_line?(line)
    -  line.to_s.lstrip.start_with?("[") && line.to_s.include?("]:")
    +def parse_blame_porcelain(output, author_map)
    +  commit_meta = {}
    +  current_sha = nil
    +  current_name = nil
    +  current_email = nil
    +  current_time = nil
    +  output.to_s.each_line do |raw_line|
    +    line = raw_line.chomp
    +    if line.match?(/\A[0-9a-f]{40}\s/)
    +      current_sha = line[0, 40]
    +      meta = commit_meta[current_sha]
    +      current_name = meta && meta[:name]
    +      current_email = meta && meta[:email]
    +      current_time = meta && meta[:time]
    +    elsif line.start_with?("author ") && !commit_meta.key?(current_sha.to_s)
    +      current_name = line[7..].strip
    +    elsif line.start_with?("author-mail ") && !commit_meta.key?(current_sha.to_s)
    +      current_email = line[12..].strip.gsub(/[<>]/, "")
    +    elsif line.start_with?("author-time ") && !commit_meta.key?(current_sha.to_s)
    +      current_time = line[12..].strip.to_i
    +    elsif line.start_with?("filename ")
    +      next unless current_sha && current_email
    +
    +      commit_meta[current_sha] ||= {name: current_name, email: current_email, time: current_time}
    +      year = current_time&.positive? ? Time.at(current_time).utc.year.to_s : Time.now.utc.year.to_s
    +      author_map[current_email][:name] ||= current_name
    +      author_map[current_email][:years] << year
    +    end
    +  end
     end
    -
    # File 'lib/kettle/jem.rb', line 10094
    +      
    # File 'lib/kettle/jem.rb', line 9895
     
    -def markdown_managed_block(content, marker)
    -  open = "<!-- #{marker}:start -->"
    -  close = "<!-- #{marker}:end -->"
    -  context = Ast::Crispr::Markdown::Markly.document_context(content: content.to_s, source_label: "managed markdown block")
    -  target = Ast::Crispr::Markdown::Markly::Selectors.html_comment_block(
    -    start_text: open.delete_prefix("<!-- ").delete_suffix(" -->"),
    -    end_text: close.delete_prefix("<!-- ").delete_suffix(" -->"),
    -    span: :outermost,
    -    limit: {none_or_one: true}
    -  )
    -  target.locate_matches(context).first&.slice_from(content.to_s)
    +def phase_for_recipe(recipe_name, relative_path)
    +  path = relative_path.to_s
    +  name = recipe_name.to_s
    +  return :config_sync if path == KETTLE_CONFIG_PATH || path == LEGACY_KETTLE_CONFIG_PATH || name.include?("kettle_config")
    +  return :dev_container if path.start_with?(".devcontainer/")
    +  return :github_workflows if path.start_with?(".github/workflows/") || path == ".github/FUNDING.yml"
    +  return :modular_gemfiles if path.start_with?("gemfiles/modular/")
    +  return :spec_helper if path == "spec/spec_helper.rb" || path.start_with?("spec/support/")
    +  return :environment_templates if path.start_with?(".env") || path.end_with?(".env")
    +  return :git_hooks if path.start_with?(".git/hooks/", "git-hooks/")
    +  return :license_files if path.start_with?("LICENSE", "NOTICE") || managed_license_template_basename(path)
    +  return :duplicate_check if name.include?("duplicate")
    +  return :quality_config if quality_config_path?(path)
    +
    +  :remaining_files
     end
    -
    # File 'lib/kettle/jem.rb', line 10107
    +      
    # File 'lib/kettle/jem.rb', line 9874
     
    -def markdown_sections(content)
    -  lines = content.to_s.split("\n", -1)
    -  markdown_heading_owners(content, source_label: "README.md").map do |owner|
    -    start = owner.location.start_line - 1
    -    branch_end = owner.location.end_line - 1
    -    body = (lines[(start + 1)..branch_end] || []).join("\n")
    +def phase_reports_for(recipe_reports)
    +  reports_by_phase = recipe_reports.group_by { |recipe_report| recipe_report_phase(recipe_report) }
    +  PHASE_ORDER.map do |phase|
    +    reports = reports_by_phase.fetch(phase, [])
    +    changed_reports = reports.select { |recipe_report| recipe_report[:changed] }
         {
    -      start: start,
    -      level: owner.level,
    -      heading: owner.heading_source,
    -      heading_text: owner.heading_text,
    -      base: owner.base,
    -      end: branch_end,
    -      body: body
    +      phase: phase.to_s,
    +      recipes: reports.map { |recipe_report| recipe_report[:recipe_name] }.compact,
    +      changed_files: changed_reports.map { |recipe_report| recipe_report[:relative_path] }.compact.uniq.sort,
    +      stats: {
    +        recipe_count: reports.length,
    +        changed_count: changed_reports.length
    +      }
         }
       end
     end
    @@ -33880,9 +49065,9 @@

    -

    +

    - .markdown_source_lines(content) ⇒ Object + .plan_project(project_root, env: ENV, run_options: {}) ⇒ Object @@ -33894,15 +49079,107 @@

     
     
    -3716
    -3717
    -3718
    +3374 +3375 +3376 +3377 +3378 +3379 +3380 +3381 +3382 +3383 +3384 +3385 +3386 +3387 +3388 +3389 +3390 +3391 +3392 +3393 +3394 +3395 +3396 +3397 +3398 +3399 +3400 +3401 +3402 +3403 +3404 +3405 +3406 +3407 +3408 +3409 +3410 +3411 +3412 +3413 +3414 +3415 +3416 +3417 +3418 +3419 +3420 +3421 +3422

    -
    # File 'lib/kettle/jem.rb', line 3716
    +      
    # File 'lib/kettle/jem.rb', line 3374
     
    -def markdown_source_lines(content)
    -  content.to_s.split("\n")
    +def plan_project(project_root, env: ENV, run_options: {})
    +  ensure_runtime_dependencies!
    +  preflight_project!(project_root)
    +  template_selection = template_selection_for(env, run_options)
    +  decision_policy = decision_policy_for(env, run_options)
    +  git_preflight = git_preflight_report(project_root, template_selection: template_selection)
    +  enforce_git_preflight!(git_preflight, decision_policy: decision_policy, template_selection: template_selection)
    +  facts = discover_facts(project_root, env: env, run_options: run_options)
    +  pack = recipe_pack(facts)
    +  pack = filter_recipe_pack(pack, template_selection)
    +  files = read_project_files(project_root, pack)
    +  recipe_reports = pack.fetch(:recipes).map do |recipe|
    +    execute_recipe(project_root: project_root, recipe: recipe, facts: facts, files: files, decision_policy: decision_policy, env: env)
    +  end
    +  plugin_registry = plugin_registry_for_project(project_root)
    +  changed_files = changed_files_from_recipe_reports(recipe_reports)
    +  diagnostics = recipe_reports.flat_map { |report| report[:diagnostics] }
    +  phase_reports = phase_reports_for(recipe_reports)
    +  decision_evaluations = recipe_reports.map { |report| report.fetch(:decision_evaluation) }
    +  prompt_requests = decision_evaluations.filter_map { |decision| decision[:prompt] if decision[:prompt_required] }
    +  unless plugin_registry.configured_plugins.empty?
    +    diagnostics << plugin_lifecycle_diagnostic(
    +      plugin_registry,
    +      callbacks_run: false,
    +      active_runner_phases: []
    +    )
    +  end
    +  run_stats = recipe_run_stats(recipe_reports, diagnostics: diagnostics)
    +  warnings = Array(facts[:warnings]).map(&:to_s).reject(&:empty?)
    +  warnings.concat(github_workflow_template_pin_warnings(recipe_reports))
    +
    +  {
    +    mode: "plan",
    +    ready: true,
    +    facts: facts,
    +    recipe_pack: pack,
    +    recipe_reports: recipe_reports,
    +    phase_reports: phase_reports,
    +    decision_policy: decision_policy.to_h,
    +    template_selection: template_selection,
    +    git_preflight: git_preflight,
    +    decision_evaluations: decision_evaluations,
    +    prompt_requests: prompt_requests,
    +    changed_files: changed_files,
    +    warnings: warnings.uniq,
    +    diagnostics: diagnostics,
    +    run_stats: run_stats
    +  }
     end
    -
    # File 'lib/kettle/jem.rb', line 5857
    +      
    # File 'lib/kettle/jem.rb', line 3843
     
    -def merge_appraisal_blocks_with_prism(template_block, destination_block)
    -  result = Prism::Merge.merge_ruby(
    -    template_block,
    -    destination_block,
    -    "ruby",
    -    preference: :destination,
    -    add_template_only_nodes: true,
    -    signature_generator: Prism::Merge.ruby_dsl_signature_generator,
    -    method_move_policy: ruby_method_move_policy({}),
    -    merge_template_requires: true,
    -    template_only_placement: :after_anchor
    -  )
    -  result[:ok] ? result.fetch(:output) : template_block
    +def plan_readme_style(project_root, env: ENV)
    +  facts = discover_facts(project_root, env: env)
    +  config = kettle_jem_config(project_root)
    +  readme_style = facts[:readme_style] ||
    +    readme_style_facts(
    +      project_root,
    +      config,
    +      facts.fetch(:license, {}),
    +      template_profile: facts[:template_profile],
    +      repository: facts[:repository]
    +    )
    +  original_path = File.join(project_root, "README.md")
    +  original = File.exist?(original_path) ? File.read(original_path) : ""
    +  final_content = render_thin_readme(facts, readme_style, original, readme_preserve_config(config))
    +
    +  {
    +    mode: "plan",
    +    readme_path: "README.md",
    +    changed: final_content != original,
    +    readme_style: readme_style,
    +    final_content: final_content,
    +    diagnostics: []
    +  }
     end
    -
    # File 'lib/kettle/jem.rb', line 5576
    +      
    # File 'lib/kettle/jem.rb', line 9792
     
    -def merge_appraisals_template_policy(content, facts:)
    -  package_name = facts.dig(:package, :name).to_s if facts
    -  min_ruby = minimum_ruby_token(facts.dig(:ci, :test_min_ruby) || facts.dig(:rubygems, :min_ruby)) if facts
    -  with_framework_appraisals = merge_framework_matrix_appraisals(content, facts)
    -  with_standard_appraisal_gemfiles = inject_standard_appraisal_gemfiles(with_framework_appraisals, facts)
    -  pruned = prune_appraisals_recording_entries(with_standard_appraisal_gemfiles, facts)
    -  pruned = prune_appraisals_below_min_ruby(pruned, min_ruby)
    -  pruned = remove_gemfile_dependency_lines(pruned, [package_name])
    -  remove_gemfile_percent_w_entries(pruned, [package_name])
    +def plugin_lifecycle_diagnostic(plugin_registry, callbacks_run:, active_runner_phases:)
    +  {
    +    kind: "plugin_lifecycle",
    +    configured_plugins: plugin_registry.configured_plugins,
    +    loaded_plugins: plugin_registry.loaded_plugins,
    +    load_errors: plugin_registry.load_errors,
    +    registered_hooks: plugin_registry.hooks.map do |hook|
    +      {
    +        plugin_name: hook.plugin_name,
    +        phase: hook.phase.to_s,
    +        timing: hook.timing.to_s
    +      }
    +    end,
    +    callbacks_run: callbacks_run,
    +    active_runner_phases: active_runner_phases.map(&:to_s)
    +  }
     end
    -
    # File 'lib/kettle/jem.rb', line 5833
    -
    -def merge_bash_template_source(template_content, destination_content, recipe)
    -  availability = Bash::Merge.availability(source: template_content.to_s)
    -  unless availability.available?
    -    return {
    -      ok: false,
    -      output: destination_content,
    -      diagnostics: [{
    -        kind: "bash_merge_unavailable",
    -        message: "bash structural merge is unavailable because TreeHaver node parser support for Bash is not available",
    -        details: availability.diagnostics
    -      }]
    -    }
    -  end
    +      
    # File 'lib/kettle/jem.rb', line 9780
     
    -  output = Bash::Merge::SmartMerger.new(
    -    template_content,
    -    destination_content,
    -    **bash_merge_options(recipe)
    -  ).merge
    -  {ok: true, output: output, diagnostics: []}
    -rescue Bash::Merge::Error => e
    -  {ok: false, output: destination_content, diagnostics: [{kind: "bash_merge_failed", message: e.message}]}
    +def plugin_names_from_config(config)
    +  raw = config.is_a?(Hash) ? config["plugins"] : nil
    +  case raw
    +  when Hash
    +    raw.each_with_object([]) do |(name, enabled), names|
    +      names << name unless falsey_config?(enabled)
    +    end
    +  else
    +    raw
    +  end
     end
    -
    # File 'lib/kettle/jem.rb', line 3687
    -
    -def merge_changelog_template_source(template_content, destination_content)
    -  destination = destination_content.to_s
    -  return ensure_trailing_newline(template_content.to_s) if destination.strip.empty?
    -
    -  template_lines = markdown_source_lines(template_content)
    -  template_unreleased = changelog_unreleased_line_index(template_lines)
    -  return ensure_trailing_newline(template_content.to_s) unless template_unreleased
    +      
    # File 'lib/kettle/jem.rb', line 9765
     
    -  destination_lines = markdown_source_lines(destination)
    -  destination_unreleased = changelog_unreleased_line_index(destination_lines)
    -  unless destination_unreleased
    -    header = changelog_template_header(template_lines, template_unreleased).join("\n")
    -    return ensure_trailing_newline("#{header}\n\n#{destination}")
    +def plugin_registry_for_project(project_root)
    +  plugin_names = PluginLoader.normalize_plugin_names(plugin_names_from_config(kettle_jem_config(project_root)))
    +  registry = PluginRegistry.new(configured_plugins: plugin_names)
    +  plugin_names.each do |plugin_name|
    +    PluginLoader.load_plugin!(plugin_name, registry: registry)
    +    registry.loaded_plugins << plugin_name
    +  rescue Error => e
    +    registry.load_errors << {
    +      plugin_name: plugin_name,
    +      message: e.message
    +    }
       end
    -
    -  destination_end = changelog_unreleased_end_index(destination_lines, destination_unreleased)
    -  destination_body = destination_lines[(destination_unreleased + 1)...destination_end] || []
    -  canonical = build_changelog_unreleased_section(
    -    template_lines.fetch(template_unreleased),
    -    changelog_unreleased_items(destination_body)
    -  )
    -  header = changelog_template_header(template_lines, template_unreleased)
    -  merged_lines = header +
    -    (header.empty? ? [] : [""]) +
    -    canonical +
    -    destination_lines[destination_end..].to_a
    -  ensure_trailing_newline(merged_lines.join("\n").gsub(/\n{3,}/, "\n\n"))
    +  registry
     end
    -
    # File 'lib/kettle/jem.rb', line 4757
    -
    -def merge_config_template_source(recipe, template_content, destination_content, facts: nil, env: ENV)
    -  file_type = template_file_type(recipe)
    -  if destination_content.to_s.strip.empty?
    -    if file_type == :gemfile
    -      return finalize_gemfile_template_source(recipe, template_content, destination_content, facts: facts, template_content: template_content)
    -    end
    -    return merge_appraisals_template_policy(template_content, facts: facts) if file_type == :appraisals
    -    return finalize_github_workflow_template(prune_github_workflow_matrix_by_min_ruby(template_content, facts), facts) if github_workflow_template_recipe?(recipe)
    -
    -    return template_content
    -  end
    -  if destination_content == template_content
    -    if file_type == :gemfile
    -      return finalize_gemfile_template_source(recipe, destination_content, destination_content, facts: facts, template_content: template_content)
    -    end
    -    return merge_appraisals_template_policy(destination_content, facts: facts) if file_type == :appraisals
    +      
    # File 'lib/kettle/jem.rb', line 12352
     
    -    return destination_content
    -  end
    +def polyform_licenses?(licenses)
    +  licenses.any? { |license| license.to_s.start_with?("PolyForm-") }
    +end
    +
    +
    + +
    +

    + + .post_apply_steps(project_root, report) ⇒ Object + - case file_type - when :gemspec - return merge_gemspec_template_source(template_content, destination_content, facts: facts, env: env) - when :ruby, :gemfile, :rakefile, :appraisals - merge_result = merge_ruby_template_source(file_type, recipe, template_content, destination_content, facts: facts) - when :yaml - merge_result = Psych::Merge.merge_yaml( - template_content, - destination_content, - "yaml", - **yaml_merge_options(recipe) - ) - when :toml - merge_result = Toml::Merge.merge_toml(template_content, destination_content, "toml") - when :json, :jsonc - merge_result = merge_json_template_source(template_content, destination_content, recipe, file_type) - when :markdown - return merge_changelog_template_source(template_content, destination_content) if recipe.fetch(:target_path) == "CHANGELOG.md" + - return template_content - when :dotenv - merge_result = merge_dotenv_template_source(template_content, destination_content, recipe) - when :rbs - merge_result = merge_rbs_template_source(template_content, destination_content, recipe) - when :bash - merge_result = merge_bash_template_source(template_content, destination_content, recipe) - else - return template_content - end - if merge_result[:ok] - output = merge_result.fetch(:output) - if file_type == :gemfile - output = merge_gemfile_eval_bucket_entries(template_content, output) - return finalize_gemfile_template_source(recipe, output, destination_content, facts: facts, template_content: template_content) - end - return merge_appraisals_template_policy(output, facts: facts) if file_type == :appraisals + +

    + + + @@ -34339,9 +49510,9 @@

    -

    +

    - .merge_dotenv_template_source(template_content, destination_content, recipe) ⇒ Object + .postprocess_readme_content(content, facts, project_root: nil) ⇒ Object @@ -34353,29 +49524,47 @@

     
     
    -5785
    -5786
    -5787
    -5788
    -5789
    -5790
    -5791
    -5792
    -5793
    -5794
    +4895 +4896 +4897 +4898 +4899 +4900 +4901 +4902 +4903 +4904 +4905 +4906 +4907 +4908 +4909 +4910 +4911 +4912 +4913

    @@ -34383,9 +49572,9 @@

    -

    +

    - .merge_framework_matrix_appraisals(content, facts) ⇒ Object + .preferred_template_source(template_root, configured_source, opencollective_disabled: false) ⇒ Object @@ -34397,63 +49586,25 @@

     
     
    -5692
    -5693
    -5694
    -5695
    -5696
    -5697
    -5698
    -5699
    -5700
    -5701
    -5702
    -5703
    -5704
    -5705
    -5706
    -5707
    -5708
    -5709
    -5710
    -5711
    -5712
    -5713
    -5714
    -5715
    -5716
    -5717
    -5718
    +13450 +13451 +13452 +13453 +13454 +13455 +13456 +13457

    @@ -34461,9 +49612,9 @@

    -

    +

    - .merge_gemfile_eval_bucket_entries(template_content, merged_content) ⇒ Object + .preferred_template_token_value(derived_value, config_value, env, env_key) ⇒ Object @@ -34475,85 +49626,29 @@

     
     
    -5500
    -5501
    -5502
    -5503
    -5504
    -5505
    -5506
    -5507
    -5508
    -5509
    -5510
    -5511
    -5512
    -5513
    -5514
    -5515
    -5516
    -5517
    -5518
    -5519
    -5520
    -5521
    -5522
    -5523
    -5524
    -5525
    -5526
    -5527
    -5528
    -5529
    -5530
    -5531
    -5532
    -5533
    -5534
    -5535
    -5536
    -5537
    +10409 +10410 +10411 +10412 +10413 +10414 +10415 +10416 +10417 +10418

    @@ -34561,9 +49656,9 @@

    -

    +

    - .merge_gemfile_template_policy(content, facts:, template_content: nil, preserve_self_word_entries: false) ⇒ Object + .preflight_project!(project_root) ⇒ Object @@ -34575,39 +49670,21 @@

     
     
    -5156
    -5157
    -5158
    -5159
    -5160
    -5161
    -5162
    -5163
    -5164
    -5165
    -5166
    -5167
    -5168
    -5169
    -5170
    +9656 +9657 +9658 +9659 +9660 +9661

    @@ -34615,9 +49692,9 @@

    -

    +

    - .merge_gemspec_template_source(template_content, destination_content, facts: nil, env: ENV) ⇒ Object + .preflight_ruby_syntax!(project_root, path) ⇒ Object @@ -34629,63 +49706,31 @@

     
     
    -5932
    -5933
    -5934
    -5935
    -5936
    -5937
    -5938
    -5939
    -5940
    -5941
    -5942
    -5943
    -5944
    -5945
    -5946
    -5947
    -5948
    -5949
    -5950
    -5951
    -5952
    -5953
    -5954
    -5955
    -5956
    -5957
    -5958
    +9692 +9693 +9694 +9695 +9696 +9697 +9698 +9699 +9700 +9701 +9702

    @@ -34693,9 +49738,9 @@

    -

    +

    - .merge_json_template_source(template_content, destination_content, recipe, file_type) ⇒ Object + .prepare_github_workflow_template(content, recipe, facts) ⇒ Object @@ -34707,29 +49752,21 @@

     
     
    -5761
    -5762
    -5763
    -5764
    -5765
    -5766
    -5767
    -5768
    -5769
    -5770
    +4860 +4861 +4862 +4863 +4864 +4865

    @@ -34737,9 +49774,9 @@

    -

    +

    - .merge_local_gem_overrides(content, destination_content, facts:, template_content: nil) ⇒ Object + .prepare_readme_template(content, readme_style) ⇒ Object @@ -34751,33 +49788,43 @@

     
     
    -4843
    -4844
    -4845
    -4846
    -4847
    -4848
    -4849
    -4850
    -4851
    -4852
    -4853
    -4854
    +5210 +5211 +5212 +5213 +5214 +5215 +5216 +5217 +5218 +5219 +5220 +5221 +5222 +5223 +5224 +5225 +5226

    @@ -34785,43 +49832,54 @@

    -

    +

    - .merge_prism_gemfile_template_source(template_content, destination_content) ⇒ Object + .present_template_token_value?(value) ⇒ Boolean -

    +
     
    -    output = finalize_github_workflow_template(prune_github_workflow_matrix_by_min_ruby(output, facts), facts) if github_workflow_template_recipe?(recipe)
    -    return output
    -  end
     
    -  return fallback_adapter_failure_template_source(file_type, recipe, template_content, destination_content, facts) if process_result_adapter_failure?(merge_result)
    -  return template_content if github_workflow_template_recipe?(recipe)
    +3472
    +3473
    +3474
    +3475
    +3476
    +3477
    +3478
    +3479
    +3480
    +
    +
    # File 'lib/kettle/jem.rb', line 3472
     
    -  diagnostics = merge_result.fetch(:diagnostics, [])
    -  message = diagnostics.map { |diagnostic| diagnostic[:message] || diagnostic["message"] }.compact.join("; ")
    -  raise ArgumentError, "failed to merge #{file_type} template #{recipe.fetch(:target_path)}: #{message}"
    +def post_apply_steps(project_root, report)
    +  [
    +    template_version_gem_bootstrap_step(project_root, report),
    +    monorepo_root_gemfile_dependency_sync_step(project_root, report),
    +    git_hooks_executable_step(project_root),
    +    github_actions_pin_sync_step(project_root),
    +    monorepo_subgem_kettle_config_profile_sync_step(project_root, report)
    +  ].compact
     end
    -
    # File 'lib/kettle/jem.rb', line 5785
    +      
    # File 'lib/kettle/jem.rb', line 4895
     
    -def merge_dotenv_template_source(template_content, destination_content, recipe)
    -  output = Dotenv::Merge::SmartMerger.new(
    -    template_content,
    -    destination_content,
    -    **dotenv_merge_options(recipe)
    -  ).merge
    -  {ok: true, output: output, diagnostics: []}
    -rescue Dotenv::Merge::Error => e
    -  {ok: false, output: destination_content, diagnostics: [{kind: "dotenv_merge_failed", message: e.message}]}
    +def postprocess_readme_content(content, facts, project_root: nil)
    +  return content unless facts
    +
    +  processed = ReadmePostProcessor.process(
    +    content: content,
    +    min_ruby: minimum_ruby_token(facts.dig(:rubygems, :min_ruby)),
    +    engines: facts.dig(:rubygems, :engines)
    +  )
    +  processed = normalize_readme_project_heading(processed, facts)
    +  processed = normalize_readme_synopsis_heading(processed, facts)
    +  processed = apply_readme_conditional_blocks(processed, facts)
    +  processed = apply_readme_badge_policy(processed, facts)
    +  processed = prune_unused_readme_logo_link_definitions(processed)
    +  processed = apply_readme_kloc_badge(processed, facts, project_root)
    +  processed = apply_monorepo_subgem_thin_readme_projection(processed, facts)
    +  processed = apply_monorepo_subgem_readme_recipe(processed, facts)
    +  processed = replace_existing_markdown_managed_block(processed, "kettle-jem:metadata", (facts))
    +  normalize_readme_blank_line_runs(processed)
     end
    -
    # File 'lib/kettle/jem.rb', line 5692
    -
    -def merge_framework_matrix_appraisals(content, facts)
    -  entries = facts.to_h.dig(:ci, :framework_matrix, :appraisals).to_a
    -  return content if entries.empty?
    -
    -  generated = entries.to_h do |entry|
    -    [entry.fetch(:name).to_s, framework_matrix_appraisal_block(entry)]
    -  end
    -  replaced = entries.flat_map { |entry| entry.fetch(:replaces, []) }.map(&:to_s).to_set
    -  parsed = appraisal_blocks(content)
    -  emitted = Set.new
    -  blocks = parsed.fetch(:order).map do |name|
    -    next if replaced.include?(name) && !generated.key?(name)
    -
    -    emitted << name
    -    parsed_block = parsed.fetch(:blocks).fetch(name).rstrip
    -    generated_block = generated[name]
    -    generated_block ? merge_appraisal_blocks_with_prism(generated_block, parsed_block) : parsed_block
    -  end.compact
    -  entries.each do |entry|
    -    name = entry.fetch(:name).to_s
    -    next if emitted.include?(name)
    +      
    # File 'lib/kettle/jem.rb', line 13450
     
    -    blocks << generated.fetch(name)
    -  end
    -
    -  ensure_trailing_newline(([parsed.fetch(:prelude).to_s.rstrip] + blocks).reject(&:empty?).join("\n\n"))
    +def preferred_template_source(template_root, configured_source, opencollective_disabled: false)
    +  base = configured_source.sub(/\.example\z/, "")
    +  candidates = []
    +  candidates << "#{base}.no-osc.example" if opencollective_disabled && base != "README.md"
    +  candidates << "#{base}.example"
    +  candidates << configured_source
    +  candidates.find { |relative_path| File.exist?(File.join(template_root, relative_path)) }
     end
    -
    # File 'lib/kettle/jem.rb', line 5500
    -
    -def merge_gemfile_eval_bucket_entries(template_content, merged_content)
    -  template_entries = gemfile_eval_bucket_entries(template_content)
    -  return merged_content if template_entries.empty?
    -
    -  template_by_key = template_entries.to_h { |entry| [entry.fetch(:key), entry] }
    -  emitted_paths = Set.new
    -  insert_at = nil
    -  lines = []
    -  merged_lines = merged_content.to_s.lines
    -   = gemfile_eval_bucket_entries(merged_content).to_h { |entry| [entry.fetch(:start_line), entry] }
    -  skip_until = 0
    -  merged_lines.each_with_index do |line, index|
    -    line_number = index + 1
    -    next if line_number < skip_until
    -
    -    entry = [line_number]
    -    unless entry && template_by_key.key?(entry.fetch(:key))
    -      lines << line
    -      next
    -    end
    +      
    # File 'lib/kettle/jem.rb', line 10409
     
    -    template_entry = template_by_key.fetch(entry.fetch(:key))
    -    if entry.fetch(:path) == template_entry.fetch(:path)
    -      lines << entry.fetch(:line) unless emitted_paths.include?(entry.fetch(:path))
    -      emitted_paths << entry.fetch(:path)
    -    else
    -      insert_at ||= lines.length
    -    end
    -    skip_until = entry.fetch(:end_line) + 1
    -  end
    +def preferred_template_token_value(derived_value, config_value, env, env_key)
    +  env_clean = env[env_key].to_s.strip
    +  return env_clean if present_template_token_value?(env_clean)
     
    -  missing_lines = template_entries.reject { |entry| emitted_paths.include?(entry.fetch(:path)) }.map { |entry| entry.fetch(:line) }
    -  return ensure_trailing_newline(lines.join) if missing_lines.empty?
    +  config_clean = config_value.to_s.strip
    +  return config_clean if present_template_token_value?(config_clean)
    +  return unless present_template_token_value?(derived_value)
     
    -  insert_at ||= lines.length
    -  lines[insert_at, 0] = missing_lines
    -  ensure_trailing_newline(lines.join.gsub(/\n{3,}/, "\n\n"))
    +  derived_value.to_s.strip
     end
    -
    # File 'lib/kettle/jem.rb', line 5156
    +      
    # File 'lib/kettle/jem.rb', line 9656
     
    -def merge_gemfile_template_policy(content, facts:, template_content: nil, preserve_self_word_entries: false)
    -  package_name = facts.dig(:package, :name).to_s if facts
    -  removable_gems = ["appraisal"]
    -  removable_gems << package_name unless package_name.to_s.empty?
    -  removable_gems << "version_gem" unless version_gem_runtime_compatible?(facts)
    -  pruned = remove_gemfile_dependency_blocks(content, removable_gems)
    -  pruned = remove_gemfile_percent_w_entries(pruned, [package_name]) unless preserve_self_word_entries
    -  pruned = merge_template_gemfile_dependency_blocks(
    -    template_content,
    -    pruned,
    -    removable_gems,
    -    preserve_self_word_entries: preserve_self_word_entries
    -  )
    -  apply_commented_gem_dependency_policy(template_content, pruned)
    +def preflight_project!(project_root)
    +  paths = Dir.glob(File.join(project_root, "*.gemspec")).sort
    +  gemfile_path = File.join(project_root, "Gemfile")
    +  paths << gemfile_path if File.exist?(gemfile_path)
    +  paths.each { |path| preflight_ruby_syntax!(project_root, path) }
     end
    -
    # File 'lib/kettle/jem.rb', line 5932
    +      
    # File 'lib/kettle/jem.rb', line 9692
     
    -def merge_gemspec_template_source(template_content, destination_content, facts: nil, env: ENV)
    -  template_receiver = gemspec_block_param(template_content) || "spec"
    -  destination_receiver = gemspec_block_param(destination_content) || "spec"
    -  package_name = facts.dig(:package, :name).to_s if facts
    -  replacements = gemspec_preserved_assignments(destination_content, receiver: destination_receiver)
    -    .except(*env_overridden_gemspec_fields(env))
    -  normalized_replacements = replacements.to_h do |field, source|
    -    replacement = normalize_gemspec_receiver(source.rstrip, from: destination_receiver, to: template_receiver)
    -    [field, normalize_gemspec_project_emoji(replacement, facts, field: field)]
    +def preflight_ruby_syntax!(project_root, path)
    +  if defined?(RubyVM::InstructionSequence)
    +    RubyVM::InstructionSequence.compile_file(path)
    +  else
    +    _stdout, stderr, status = Open3.capture3(RbConfig.ruby, "-c", path)
    +    raise SyntaxError, stderr unless status.success?
       end
    -  merged = replace_gemspec_assignment_sources(template_content, normalized_replacements, receiver: template_receiver)
    -  merged = preserve_gemspec_dependency_lines(
    -    merged,
    -    destination_content,
    -    template_receiver: template_receiver,
    -    destination_receiver: destination_receiver
    -  )
    -  merged = preserve_gemspec_freeze_blocks(merged, destination_content, facts: facts, receiver: template_receiver)
    -  merged = apply_configured_gemspec_licenses(merged, facts, receiver: template_receiver)
    -  merged = apply_configured_gemspec_required_ruby_version(merged, facts, receiver: template_receiver)
    -  merged = remove_duplicate_gemspec_assignments(merged, receiver: template_receiver, fields: %w[homepage])
    -  merged = remove_gemspec_self_dependency_lines(merged, package_name, receiver: template_receiver)
    -  merged = remove_gemspec_version_gem_dependency_when_runtime_incompatible(merged, facts, receiver: template_receiver)
    -  merged = remove_gemspec_development_dependencies_already_runtime(merged, receiver: template_receiver)
    -  merged = sort_runtime_gemspec_dependency_lines(merged, receiver: template_receiver)
    -  rewrite_gemspec_version_loader(merged, facts: facts)
    +rescue SyntaxError => e
    +  relative_path = path.delete_prefix("#{project_root}/")
    +  raise Error, "Preflight failed for #{relative_path}: #{e.message}"
     end
    -
    # File 'lib/kettle/jem.rb', line 5761
    +      
    # File 'lib/kettle/jem.rb', line 4860
     
    -def merge_json_template_source(template_content, destination_content, recipe, file_type)
    -  output = Json::Merge::SmartMerger.new(
    -    template_content,
    -    destination_content,
    -    **json_merge_options(recipe)
    -  ).merge
    -  {ok: true, output: output, diagnostics: []}
    -rescue Json::Merge::Error => e
    -  {ok: false, output: destination_content, diagnostics: [{kind: "#{file_type}_merge_failed", message: e.message}]}
    +def prepare_github_workflow_template(content, recipe, facts)
    +  return content unless recipe.fetch(:target_path).to_s == ".github/workflows/framework-ci.yml"
    +  return content if facts.to_h.dig(:ci, :framework_matrix).to_h.empty?
    +
    +  synchronize_github_actions_framework_ci(content, facts)
     end
    -
    # File 'lib/kettle/jem.rb', line 4843
    -
    -def merge_local_gem_overrides(content, destination_content, facts:, template_content: nil)
    -  template_gems = local_gems_assignment(content)
    -  template_gems = local_gems_assignment(template_content) if template_gems.empty?
    -  destination_gems = local_gems_assignment(destination_content)
    -  return content if template_gems.empty? && destination_gems.empty?
    +      
    # File 'lib/kettle/jem.rb', line 5210
     
    -  destination_gems = destination_gems.reject do |destination_gem|
    -    template_gems.any? { |template_gem| versioned_gem_name_update_candidate?(destination_gem, template_gem) }
    +def prepare_readme_template(content, readme_style)
    +  style = readme_style || {}
    +  prepared = prune_readme_integration_badges(content, style)
    +  if style[:workflow_paths]
    +    prepared = ReadmePostProcessor.process(
    +      content: prepared,
    +      min_ruby: "0",
    +      workflow_paths: style[:workflow_paths]
    +    )
       end
    -  gems = (template_gems + destination_gems).map(&:to_s).reject(&:empty?).uniq
    -  replace_local_gems_assignment(content, gems)
    +  prepared = prune_missing_workflow_link_definitions(prepared, style[:workflow_paths]) if style[:workflow_paths]
    +  prepared = ReadmePostProcessor.prune_orphaned_workflow_inline_references(prepared) if style[:workflow_paths]
    +  omitted_sections = Array(style[:omitted_sections]).map(&:to_s)
    +  omitted_sections << "security" if style.key?(:security_enabled) && !style[:security_enabled]
    +  omitted_sections << "floss_funding" if style.key?(:floss_funding_enabled) && !style[:floss_funding_enabled]
    +  remove_readme_sections(prepared, omitted_sections.map { |section| section.tr("_", " ") })
     end
    +
    +
    + + + +
    +
    +
    + +

    Returns:

    +
      + +
    • + + + (Boolean) + + + +
    • + +
    + +
    @@ -34829,9 +49887,9 @@

    -

    +

    - .merge_rbs_template_source(template_content, destination_content, recipe) ⇒ Object + .preserve_gemspec_dependency_lines(template_content, destination_content, template_receiver:, destination_receiver:, facts: nil) ⇒ Object @@ -34843,29 +49901,53 @@

     
     
    -5809
    -5810
    -5811
    -5812
    -5813
    -5814
    -5815
    -5816
    -5817
    -5818
    +8009 +8010 +8011 +8012 +8013 +8014 +8015 +8016 +8017 +8018 +8019 +8020 +8021 +8022 +8023 +8024 +8025 +8026 +8027 +8028 +8029 +8030

    @@ -34873,9 +49955,9 @@

    -

    +

    - .merge_readme_template(template_content:, destination_content:, preserve_config: {}) ⇒ Object + .preserve_gemspec_freeze_blocks(content, destination_content, facts:, receiver:) ⇒ Object @@ -34887,25 +49969,47 @@

     
     
    -9977
    -9978
    -9979
    -9980
    -9981
    -9982
    -9983
    -9984
    +8032 +8033 +8034 +8035 +8036 +8037 +8038 +8039 +8040 +8041 +8042 +8043 +8044 +8045 +8046 +8047 +8048 +8049 +8050

    @@ -34913,9 +50017,9 @@

    -

    +

    - .merge_ruby_template_source(file_type, recipe, template_content, destination_content, facts: nil) ⇒ Object + .preserve_github_workflow_project_settings(recipe, content, destination_content, project_root:) ⇒ Object @@ -34927,35 +50031,31 @@

     
     
    -5110
    -5111
    -5112
    -5113
    -5114
    -5115
    -5116
    -5117
    -5118
    -5119
    -5120
    -5121
    -5122
    +4867 +4868 +4869 +4870 +4871 +4872 +4873 +4874 +4875 +4876 +4877

    @@ -34963,9 +50063,9 @@

    -

    +

    - .merge_template_gemfile_dependency_blocks(template_content, content, removable_gems, preserve_self_word_entries: false) ⇒ Object + .preserve_mise_project_settings(recipe, content, destination_content, project_root:) ⇒ Object @@ -34977,39 +50077,27 @@

    -5172 -5173 -5174 -5175 -5176 -5177 -5178 -5179 -5180 -5181 -5182 -5183 -5184 -5185 -5186 +4805 +4806 +4807 +4808 +4809 +4810 +4811 +4812 +4813

    @@ -35017,9 +50105,9 @@

    -

    +

    - .metadata_value(metadata, key) ⇒ Object + .preserve_newer_github_workflow_action_pins(content, destination_content) ⇒ Object @@ -35031,23 +50119,45 @@

     
     
    -8584
    -8585
    -8586
    -8587
    -8588
    -8589
    -8590
    +14414 +14415 +14416 +14417 +14418 +14419 +14420 +14421 +14422 +14423 +14424 +14425 +14426 +14427 +14428 +14429 +14430 +14431

    @@ -35055,9 +50165,9 @@

    -

    +

    - .migrate_readme_logo_config(content) ⇒ Object + .preserve_readme_front_sections(template_content, destination_content) ⇒ Object @@ -35069,55 +50179,87 @@

     
     
    -6728
    -6729
    -6730
    -6731
    -6732
    -6733
    -6734
    -6735
    -6736
    -6737
    -6738
    -6739
    -6740
    -6741
    -6742
    -6743
    -6744
    -6745
    -6746
    -6747
    -6748
    -6749
    -6750
    +12684 +12685 +12686 +12687 +12688 +12689 +12690 +12691 +12692 +12693 +12694 +12695 +12696 +12697 +12698 +12699

    + +
     
     
    -5124
    -5125
    -5126
    -5127
    -5128
    -5129
    -5130
    -5131
    -5132
    -5133
    +10420 +10421 +10422 +10423
    -
    # File 'lib/kettle/jem.rb', line 5124
    +      
    # File 'lib/kettle/jem.rb', line 10420
     
    -def merge_prism_gemfile_template_source(template_content, destination_content)
    -  Prism::Merge.merge_ruby(
    -    template_content,
    -    destination_content,
    -    "ruby",
    -    preference: :template,
    -    add_template_only_nodes: true,
    -    signature_generator: Prism::Merge.ruby_dsl_signature_generator
    -  )
    +def present_template_token_value?(value)
    +  clean = value.to_s.strip
    +  !clean.empty? && !token_placeholder?(clean)
     end
    -
    # File 'lib/kettle/jem.rb', line 5809
    +      
    # File 'lib/kettle/jem.rb', line 8009
     
    -def merge_rbs_template_source(template_content, destination_content, recipe)
    -  output = Rbs::Merge::SmartMerger.new(
    -    template_content,
    -    destination_content,
    -    **rbs_merge_options(recipe)
    -  ).merge
    -  {ok: true, output: output, diagnostics: []}
    -rescue Rbs::Merge::Error => e
    -  {ok: false, output: destination_content, diagnostics: [{kind: "rbs_merge_failed", message: e.message}]}
    +def preserve_gemspec_dependency_lines(template_content, destination_content, template_receiver:, destination_receiver:, facts: nil)
    +  namespace = facts.to_h.dig(:rubygems, :namespace).to_s
    +  template_dependencies = gemspec_dependency_line_index(template_content, receiver: template_receiver)
    +  destination_dependencies = gemspec_dependency_line_index(destination_content, receiver: destination_receiver)
    +    .transform_values do |source|
    +      normalized = normalize_gemspec_receiver(source, from: destination_receiver, to: template_receiver)
    +      normalized = normalize_gemspec_dependency_version_requirements(normalized, receiver: template_receiver, namespace: namespace)
    +      enforce_gemspec_dependency_minimum_requirements(normalized, receiver: template_receiver)
    +    end
    +  destination_dependencies = destination_dependencies.reject do |key, _source|
    +    retired_gemspec_development_dependency_key?(key)
    +  end
    +  return template_content if destination_dependencies.empty?
    +
    +  replacements, additions = destination_dependencies.partition do |key, source|
    +    template_dependencies.key?(key) &&
    +      gemspec_dependency_source_newer?(source, template_dependencies.fetch(key), receiver: template_receiver)
    +  end.map(&:to_h)
    +
    +  merged = replace_matching_gemspec_dependency_lines(template_content, replacements, receiver: template_receiver)
    +  append_missing_gemspec_dependency_lines(merged, additions, receiver: template_receiver)
     end
    -
    # File 'lib/kettle/jem.rb', line 9977
    +      
    # File 'lib/kettle/jem.rb', line 8032
     
    -def merge_readme_template(template_content:, destination_content:, preserve_config: {})
    -  return template_content if destination_content.to_s.strip.empty?
    +def preserve_gemspec_freeze_blocks(content, destination_content, facts:, receiver:)
    +  blocks = freeze_marker_blocks(destination_content, freeze_token: facts.to_h.dig(:project_runtime, :freeze_token))
    +  return content if blocks.empty?
     
    -  with_front_sections = preserve_readme_front_sections(template_content, destination_content)
    -  preserved = preserve_readme_sections(with_front_sections, destination_content, preserve_config)
    -  with_h1 = preserve_readme_h1(preserved, destination_content, preserve_config)
    -  preserve_readme_managed_block(with_h1, destination_content, "kettle-jem:metadata")
    +  merged = content.to_s
    +  blocks.each do |block|
    +    next if gemspec_freeze_block_structurally_managed?(block, receiver: receiver)
    +    next if merged.include?(block.join)
    +
    +    insertion = "\n#{block.join}\n"
    +    require_paths = gemspec_assignment_records(merged, receiver: receiver).find { |record| record.fetch(:field) == "require_paths" }
    +    merged = if require_paths
    +      insert_lines_before(merged, require_paths.fetch(:start_line), insertion)
    +    else
    +      insert_lines_before(merged, gemspec_end_line(merged), insertion)
    +    end
    +  end
    +  ensure_trailing_newline(merged.gsub(/\n{3,}/, "\n\n"))
     end
    -
    # File 'lib/kettle/jem.rb', line 5110
    +      
    # File 'lib/kettle/jem.rb', line 4867
     
    -def merge_ruby_template_source(file_type, recipe, template_content, destination_content, facts: nil)
    -  return merge_prism_gemfile_template_source(template_content, destination_content) if file_type == :gemfile
    +def preserve_github_workflow_project_settings(recipe, content, destination_content, project_root:)
    +  return content unless recipe.fetch(:target_path).to_s == ".github/workflows/coverage.yml"
     
    -  Prism::Merge.merge_ruby(
    -    template_content,
    -    destination_content,
    -    "ruby",
    -    preference: :destination,
    -    add_template_only_nodes: true,
    -    signature_generator: Prism::Merge.ruby_dsl_signature_generator(require_aliases: ruby_require_aliases(recipe, facts)),
    -    **prism_ruby_merge_options(recipe)
    -  )
    +  thresholds = coverage_thresholds_from_project_mise(project_root)
    +  thresholds = coverage_thresholds_from_yaml_workflow(destination_content) if thresholds.empty?
    +  preserved = content
    +  thresholds.each do |key, value|
    +    preserved = replace_yaml_scalar_line(preserved, key, value)
    +  end
    +  preserved
     end
    -
    # File 'lib/kettle/jem.rb', line 5172
    +      
    # File 'lib/kettle/jem.rb', line 4805
     
    -def merge_template_gemfile_dependency_blocks(template_content, content, removable_gems, preserve_self_word_entries: false)
    -  template = remove_gemfile_dependency_blocks(template_content, removable_gems)
    -  template = remove_gemfile_percent_w_entries(template, removable_gems) unless preserve_self_word_entries
    -  existing = gemfile_dependency_names(content) + gemfile_percent_w_names(content)
    -  additions = gemfile_paragraphs(template).filter_map do |paragraph|
    -    names = gemfile_dependency_names(paragraph) + gemfile_percent_w_names(paragraph)
    -    next if names.empty?
    -    next if (names - existing).empty?
    +def preserve_mise_project_settings(recipe, content, destination_content, project_root:)
    +  return content unless recipe.fetch(:target_path).to_s == "mise.toml"
     
    -    paragraph
    +  thresholds = coverage_thresholds_from_mise(destination_content)
    +  thresholds = coverage_thresholds_from_workflow(project_root) if thresholds.empty?
    +  thresholds.reduce(content.to_s) do |preserved, (key, value)|
    +    replace_toml_string_scalar_line(preserved, key, value)
       end
    -  return content if additions.empty?
    -
    -  insert_gemfile_dependency_blocks(content, additions)
     end
    -
    # File 'lib/kettle/jem.rb', line 8584
    +      
    # File 'lib/kettle/jem.rb', line 14414
     
    -def (, key)
    -  value = [key]
    -  return if value.nil?
    +def preserve_newer_github_workflow_action_pins(content, destination_content)
    +  destination_records = github_workflow_action_pin_records(destination_content)
    +  return content if destination_records.empty?
     
    -  text = value.to_s.strip
    -  text unless text.empty?
    +  destination_by_key = destination_records.to_h { |record| [github_workflow_action_pin_key(record), record] }
    +  lines = content.to_s.lines
    +  github_workflow_action_pin_records(content).each do |record|
    +    destination = destination_by_key[github_workflow_action_pin_key(record)]
    +    next unless destination
    +    next if destination.fetch(:sha) == record.fetch(:sha)
    +
    +    lines[record.fetch(:line_index)] = replace_github_workflow_action_pin_sha(
    +      lines.fetch(record.fetch(:line_index)),
    +      destination.fetch(:sha)
    +    )
    +  end
    +  lines.join
     end
    -
    # File 'lib/kettle/jem.rb', line 6728
    +      
    # File 'lib/kettle/jem.rb', line 12684
     
    -def migrate_readme_logo_config(content)
    -  config = YAML.safe_load(content.to_s, permitted_classes: [], aliases: true) || {}
    -  readme_config = config["readme"]
    -  return content unless readme_config.is_a?(Hash)
    +def preserve_readme_front_sections(template_content, destination_content)
    +  front_sections = readme_destination_front_sections(destination_content)
    +  return template_content if front_sections.empty?
     
    -  configured_specs = normalized_readme_logo_specs(readme_config["top_logos"] || readme_config["top_logo_options"])
    -  configured = configured_specs.map { |spec| spec.fetch(:type) }
    -  return content if configured.empty?
    +  template_sections = markdown_sections(template_content)
    +  template_h1 = template_sections.find { |section| section.fetch(:level) == 1 }
    +  insert_before = template_sections.find do |section|
    +    section.fetch(:level) == 2 && section.fetch(:start) > template_h1.to_h.fetch(:start, -1)
    +  end
    +  return template_content unless insert_before
     
    -  top_logo_specs = configured_specs.select { |spec| README_TOP_LOGO_DEFAULTS.include?(spec.fetch(:type)) }
    -  h2_synopsis_logo_specs = normalized_readme_logo_specs(readme_config["h2_synopsis_logos"])
    -  h2_synopsis_logo_specs = configured_specs.select { |spec| README_H2_SYNOPSIS_LOGO_DEFAULTS.include?(spec.fetch(:type)) } if h2_synopsis_logo_specs.empty?
    -  top_logos = top_logo_specs.map { |spec| readme_logo_config_value(spec) }
    -  h2_synopsis_logos = h2_synopsis_logo_specs.map { |spec| readme_logo_config_value(spec) }
    -  return content if h2_synopsis_logos.empty? && top_logos == configured
    +  lines = template_content.split("\n", -1)
    +  inserted = front_sections.map { |section| "#{section.fetch(:heading)}\n#{section.fetch(:body).rstrip}" }.join("\n\n")
    +  lines[(template_h1.fetch(:start) + 1)...insert_before.fetch(:start)] = ["", *inserted.split("\n"), ""]
    +  lines.join("\n")
    +end
    +
    +
    + +
    +

    + + .preserve_readme_h1(merged_content, destination_content, preserve_config) ⇒ Object + - migrated = replace_yaml_scalar_path(content, %w[readme top_logos], top_logos.join(",")) - return replace_yaml_scalar_path(migrated, %w[readme h2_synopsis_logos], h2_synopsis_logos.join(",")) if readme_config.key?("h2_synopsis_logos") + - insert_yaml_scalar_after_path(migrated, %w[readme top_logos], "h2_synopsis_logos", h2_synopsis_logos.join(",")) -rescue Psych::Exception - content + +

    + + + @@ -35125,9 +50267,9 @@

    -

    +

    - .min_ruby_version(requirement) ⇒ Object + .preserve_readme_managed_block(merged_content, destination_content, marker) ⇒ Object @@ -35139,25 +50281,21 @@

     
     
    -9494
    -9495
    -9496
    -9497
    -9498
    -9499
    -9500
    -9501
    +12797 +12798 +12799 +12800 +12801 +12802

    @@ -35165,9 +50303,9 @@

    -

    +

    - .minimum_ruby_token(requirement) ⇒ Object + .preserve_readme_sections(template_content, destination_content, preserve_config) ⇒ Object @@ -35179,21 +50317,75 @@

     
     
    -8133
    -8134
    -8135
    -8136
    -8137
    -8138
    +12723 +12724 +12725 +12726 +12727 +12728 +12729 +12730 +12731 +12732 +12733 +12734 +12735 +12736 +12737 +12738 +12739 +12740 +12741 +12742 +12743 +12744 +12745 +12746 +12747 +12748 +12749 +12750 +12751 +12752 +12753 +12754 +12755

    @@ -35201,9 +50393,9 @@

    -

    +

    - .mit_readme_license_introObject + .previous_nonblank_line_number(content, line_number) ⇒ Object @@ -35215,17 +50407,21 @@

     
     
    -9609
    -9610
    -9611
    -9612
    +13886 +13887 +13888 +13889 +13890 +13891

    @@ -35233,9 +50429,9 @@

    -

    +

    - .monorepo_root_file_strategy(entry) ⇒ Object + .prism_call_nodes(node) ⇒ Object @@ -35247,23 +50443,33 @@

     
     
    -6973
    -6974
    -6975
    -6976
    -6977
    -6978
    -6979
    +5747 +5748 +5749 +5750 +5751 +5752 +5753 +5754 +5755 +5756 +5757 +5758

    @@ -35271,9 +50477,9 @@

    -

    +

    - .monorepo_root_gemfile_dependency_linesObject + .prism_parse_success(content) ⇒ Object @@ -35285,37 +50491,19 @@

     
     
    -3279
    -3280
    -3281
    -3282
    -3283
    -3284
    -3285
    -3286
    -3287
    -3288
    -3289
    -3290
    -3291
    -3292
    +6608 +6609 +6610 +6611 +6612

    @@ -35323,9 +50511,9 @@

    -

    +

    - .monorepo_root_gemfile_dependency_sync_step(project_root, report) ⇒ Object + .prism_ruby_merge_options(recipe) ⇒ Object @@ -35337,38 +50525,22 @@

    -3252 -3253 -3254 -3255 -3256 -3257 -3258 -3259 -3260 -3261 -3262 -3263 -3264 -3265 -3266 +6235 +6236 +6237 +6238 +6239 +6240 +6241

    @@ -35377,9 +50549,9 @@

    -

    +

    - .monorepo_root_template_profile?(facts) ⇒ Boolean + .prism_subtree_contains_call?(node, call_name) ⇒ Boolean @@ -35414,15 +50586,19 @@

     
     
    -7088
    -7089
    -7090
    +5926 +5927 +5928 +5929 +5930

    @@ -35430,148 +50606,55 @@

    -

    +

    - .monorepo_subgem_kettle_config_profile_sync_step(project_root, report) ⇒ Object + .prism_subtree_contains_simplecov_require?(node) ⇒ Boolean -

    +
    +
    +
    +12785
    +12786
    +12787
    +12788
    +12789
    +12790
    +12791
    +12792
    +12793
    +12794
    +12795
    +
    +
    # File 'lib/kettle/jem.rb', line 12785
    +
    +def preserve_readme_h1(merged_content, destination_content, preserve_config)
    +  return merged_content if preserve_config.empty?
    +
    +  merged_h1 = markdown_sections(merged_content).find { |section| section.fetch(:level) == 1 }
    +  destination_h1 = markdown_sections(destination_content).find { |section| section.fetch(:level) == 1 }
    +  return merged_content unless merged_h1 && destination_h1
    +
    +  lines = merged_content.split("\n", -1)
    +  lines[merged_h1.fetch(:start)] = destination_h1.fetch(:heading)
    +  lines.join("\n")
     end
    -
    # File 'lib/kettle/jem.rb', line 9494
    +      
    # File 'lib/kettle/jem.rb', line 12797
     
    -def min_ruby_version(requirement)
    -  token = minimum_ruby_token(requirement)
    -  return if token.empty?
    +def preserve_readme_managed_block(merged_content, destination_content, marker)
    +  destination_block = markdown_managed_block(destination_content, marker)
    +  return merged_content unless destination_block
     
    -  Gem::Version.new(token)
    -rescue ArgumentError
    -  nil
    +  replace_markdown_managed_block(merged_content, marker, destination_block)
     end
    -
    # File 'lib/kettle/jem.rb', line 8133
    +      
    # File 'lib/kettle/jem.rb', line 12723
     
    -def minimum_ruby_token(requirement)
    -  text = requirement.to_s.strip
    -  return "0" if text == "0"
    +def preserve_readme_sections(template_content, destination_content, preserve_config)
    +  template_sections = markdown_sections(template_content)
    +  destination_sections = markdown_sections(destination_content)
    +  destination_lookup = destination_sections.to_h { |section| [section.fetch(:base), section] }
    +  preserve_targets = readme_preserve_targets(template_sections, destination_lookup, preserve_config)
    +  return template_content if preserve_targets.empty?
     
    -  requirement.to_s[/\d+(?:\.\d+){1,2}/].to_s
    +  template_bases = template_sections.map { |section| section.fetch(:base) }.to_set
    +  extra_sections_by_anchor = readme_extra_preserved_sections_by_anchor(
    +    destination_sections,
    +    template_bases,
    +    preserve_targets
    +  )
    +  lines = template_content.split("\n", -1)
    +  template_sections.reverse_each do |section|
    +    base = section.fetch(:base)
    +    extra_sections = extra_sections_by_anchor[base].to_a
    +    next if !preserve_targets.include?(base) && extra_sections.empty?
    +
    +    replacement = if preserve_targets.include?(base)
    +      destination_section = destination_lookup[base] ||
    +        aliased_readme_destination_section(base, destination_lookup, preserve_config)
    +      next unless destination_section
    +
    +      "#{section.fetch(:heading)}\n#{destination_section.fetch(:body)}"
    +    else
    +      lines[section.fetch(:start)..section.fetch(:end)].join("\n")
    +    end
    +    replacement = ([replacement] + extra_sections.map { |extra| "#{extra.fetch(:heading)}\n#{extra.fetch(:body)}" }).join("\n")
    +    lines[section.fetch(:start)..section.fetch(:end)] = replacement
    +  end
    +  lines.join("\n")
     end
    -
    # File 'lib/kettle/jem.rb', line 9609
    +      
    # File 'lib/kettle/jem.rb', line 13886
     
    -def mit_readme_license_intro
    -  "The gem is available as open source under the terms of\n" \
    -    "the #{license_link("MIT")} #{license_badge("MIT")}."
    +def previous_nonblank_line_number(content, line_number)
    +  lines = content.to_s.lines
    +  cursor = line_number - 2
    +  cursor -= 1 while cursor >= 0 && lines[cursor].strip.empty?
    +  (cursor >= 0) ? cursor + 1 : nil
     end
    -
    # File 'lib/kettle/jem.rb', line 6973
    +      
    # File 'lib/kettle/jem.rb', line 5747
     
    -def monorepo_root_file_strategy(entry)
    -  if %w[CHANGELOG.md Gemfile].include?(entry.to_s)
    -    "keep_destination"
    -  else
    -    "accept_template"
    +def prism_call_nodes(node)
    +  return [] unless node
    +
    +  nodes = []
    +  stack = [node]
    +  until stack.empty?
    +    current = stack.pop
    +    nodes << current if current.is_a?(::Prism::CallNode)
    +    stack.concat(current.compact_child_nodes)
       end
    +  nodes
     end
    -
    # File 'lib/kettle/jem.rb', line 3279
    +      
    # File 'lib/kettle/jem.rb', line 6608
     
    -def monorepo_root_gemfile_dependency_lines
    -  [
    -    {name: "appraisal2", source: %(gem "appraisal2", "~> 3.1", ">= 3.1.2"\n)},
    -    {name: "bundler-audit", source: %(gem "bundler-audit", "~> 0.9.3"\n)},
    -    {name: "kettle-dev", source: %(gem "kettle-dev", "~> 2.2", ">= 2.2.8"\n)},
    -    {name: "kettle-drift", source: %(gem "kettle-drift", "~> 1.0", ">= 1.0.3"\n)},
    -    {name: "kettle-jem", source: %(gem "kettle-jem", "~> 7.0", ">= 7.0.0"\n)},
    -    {name: "kettle-test", source: %(gem "kettle-test", "~> 2.0", ">= 2.0.5"\n)},
    -    {name: "rake", source: %(gem "rake", "~> 13.0"\n)},
    -    {name: "rspec", source: %(gem "rspec", "~> 3.0"\n)},
    -    {name: "stone_checksums", source: %(gem "stone_checksums", "~> 1.0", ">= 1.0.3"\n)},
    -    {name: "turbo_tests2", source: %(gem "turbo_tests2", "~> 3.1", ">= 3.1.3"\n)}
    -  ].freeze
    +def prism_parse_success(content)
    +  ensure_runtime_dependencies!
    +  result = ::Prism.parse(content.to_s)
    +  result if result.success?
     end
    -
    # File 'lib/kettle/jem.rb', line 3252
    -
    -def monorepo_root_gemfile_dependency_sync_step(project_root, report)
    -  facts = report.fetch(:facts)
    -  return unless monorepo_root_template_profile?(facts)
    +      
    # File 'lib/kettle/jem.rb', line 6235
     
    -  path = File.join(project_root.to_s, "Gemfile")
    -  before = File.exist?(path) ? File.read(path) : %(source "https://gem.coop"\n)
    -  after = ensure_monorepo_root_gemfile_dependencies(before)
    -  File.write(path, after) if after != before
    +def prism_ruby_merge_options(recipe)
       {
    -    name: "monorepo_root_gemfile_dependency_sync",
    -    path: "Gemfile",
    -    status: (after == before) ? "already_current" : "applied",
    -    changed_files: (after == before) ? [] : ["Gemfile"]
    +    method_move_policy: ruby_method_move_policy(recipe),
    +    merge_template_requires: true,
    +    template_only_placement: :after_anchor
       }
     end
    -
    # File 'lib/kettle/jem.rb', line 7088
    +      
    # File 'lib/kettle/jem.rb', line 5926
     
    -def monorepo_root_template_profile?(facts)
    -  facts[:template_profile].to_s == MONOREPO_ROOT_TEMPLATE_PROFILE
    +def prism_subtree_contains_call?(node, call_name)
    +  node.breadth_first_search_all do |child|
    +    child.is_a?(::Prism::CallNode) && child.name == call_name
    +  end.any?
     end
    - - - - -
    -
    -
    -
    -3159
    -3160
    -3161
    -3162
    -3163
    -3164
    -3165
    -3166
    -3167
    -3168
    -3169
    -3170
    -3171
    -3172
    -3173
    -3174
    -3175
    -3176
    -3177
    -
    -
    # File 'lib/kettle/jem.rb', line 3159
    -
    -def monorepo_subgem_kettle_config_profile_sync_step(project_root, report)
    -  facts = report.fetch(:facts)
    -  return unless monorepo_subgem_template_profile?(facts)
    -
    -  profile = normalize_template_profile(facts[:template_profile])
    -  path = File.join(project_root.to_s, KETTLE_CONFIG_PATH)
    -  return unless File.file?(path)
    -
    -  gemspec = facts.dig(:rubygems, :gemspec_path).to_s
    -  before = File.read(path)
    -  after = sync_kettle_config_monorepo_subgem_profile(before, gemspec, profile)
    -  File.write(path, after) if after != before
    -  {
    -    name: "monorepo_subgem_kettle_config_profile_sync",
    -    path: KETTLE_CONFIG_PATH,
    -    status: (after == before) ? "already_current" : "applied",
    -    changed_files: (after == before) ? [] : [KETTLE_CONFIG_PATH]
    -  }
    -end
    -
    -
    +
    +
    -
    -

    - - .monorepo_subgem_template_entries(gemspec_path, profile = MONOREPO_SUBGEM_TEMPLATE_PROFILE) ⇒ Object - - - - - -

    - - - - -
    -
    -
    -
    -6993
    -6994
    -6995
    -6996
    -6997
    -6998
    -6999
    -7000
    -7001
    -
    -
    # File 'lib/kettle/jem.rb', line 6993
     
    -def monorepo_subgem_template_entries(gemspec_path, profile = MONOREPO_SUBGEM_TEMPLATE_PROFILE)
    -  entries = monorepo_subgem_template_entries_for_profile(gemspec_path, profile)
    -  gemspec = gemspec_path.to_s.strip
    -  return entries if gemspec.empty?
     
    -  entries.insert(1, {"source" => "gem.gemspec", "target" => gemspec})
    -  entries.concat(version_gem_template_entries(gemspec))
    -  entries
    -end
    -
    +
    - -
    -

    +
    - .monorepo_subgem_template_entries_for_profile(gemspec_path, profile) ⇒ Object +

    Returns:

    +
      - +
    • + + + (Boolean) + + + +
    • +
    - -

    +
    @@ -35580,9 +50663,9 @@

    -

    +

    - .monorepo_subgem_template_profile?(facts) ⇒ Boolean + .prism_subtree_contains_string?(node, string) ⇒ Boolean @@ -35617,15 +50700,19 @@

     
     
    -7084
    -7085
    -7086
    +5932 +5933 +5934 +5935 +5936

    @@ -35633,9 +50720,9 @@

    -

    +

    - .monorepo_subgem_template_profile_value?(profile) ⇒ Boolean + .process_result_adapter_failure?(merge_result) ⇒ Boolean @@ -35670,23 +50757,23 @@

    -7096 -7097 -7098 -7099 -7100 -7101 -7102 +6189 +6190 +6191 +6192 +6193 +6194 +6195

    @@ -35694,9 +50781,9 @@

    -

    +

    - .monorepo_template_profile?(facts) ⇒ Boolean + .project_appraisals_recording_enabled?(project_root) ⇒ Boolean @@ -35731,15 +50818,21 @@

     
     
    -7092
    -7093
    -7094
    +13652 +13653 +13654 +13655 +13656 +13657

    @@ -35747,9 +50840,9 @@

    -

    +

    - .non_mit_licenses?(licenses) ⇒ Boolean + .project_gemspec_declares_version_gem?(project_root) ⇒ Boolean @@ -35784,15 +50877,33 @@

     
     
    -9732
    -9733
    -9734
    +3759 +3760 +3761 +3762 +3763 +3764 +3765 +3766 +3767 +3768 +3769 +3770

    @@ -35800,9 +50911,9 @@

    -

    +

    - .normalize_changelog(content, facts) ⇒ Object + .project_gemspec_metadata(project_root, gemspec_path, spec: nil) ⇒ Object @@ -35814,71 +50925,73 @@

     
     
    -3646
    -3647
    -3648
    -3649
    -3650
    -3651
    -3652
    -3653
    -3654
    -3655
    -3656
    -3657
    -3658
    -3659
    -3660
    -3661
    -3662
    -3663
    -3664
    -3665
    -3666
    -3667
    -3668
    -3669
    -3670
    -3671
    -3672
    -3673
    -3674
    -3675
    -3676
    +10880 +10881 +10882 +10883 +10884 +10885 +10886 +10887 +10888 +10889 +10890 +10891 +10892 +10893 +10894 +10895 +10896 +10897 +10898 +10899 +10900 +10901 +10902 +10903 +10904 +10905 +10906 +10907 +10908 +10909 +10910 +10911

    @@ -35886,9 +50999,9 @@

    -

    +

    - .normalize_eval_gemfile_ruby_bucket(path) ⇒ Object + .project_gemspec_version(project_root) ⇒ Object @@ -35900,25 +51013,21 @@

     
     
    -5558
    -5559
    -5560
    -5561
    -5562
    -5563
    -5564
    -5565
    +3752 +3753 +3754 +3755 +3756 +3757

    @@ -35926,9 +51035,9 @@

    -

    +

    - .normalize_gemspec_project_emoji(line, facts, field:) ⇒ Object + .project_homepage_uri(config, env, yard_host:, gemspec_homepage_uri: nil) ⇒ Object @@ -35940,49 +51049,25 @@

     
     
    -6221
    -6222
    -6223
    -6224
    -6225
    -6226
    -6227
    -6228
    -6229
    -6230
    -6231
    -6232
    -6233
    -6234
    -6235
    -6236
    -6237
    -6238
    -6239
    -6240
    +11033 +11034 +11035 +11036 +11037 +11038 +11039 +11040

    @@ -35990,9 +51075,9 @@

    -

    +

    - .normalize_gemspec_receiver(line, from:, to:) ⇒ Object + .project_namespace(entrypoint_namespace:, version_namespace:, metadata_namespace:, default_namespace:) ⇒ Object @@ -36004,27 +51089,31 @@

     
     
    -6211
    -6212
    -6213
    -6214
    -6215
    -6216
    -6217
    -6218
    -6219
    +11128 +11129 +11130 +11131 +11132 +11133 +11134 +11135 +11136 +11137 +11138

    @@ -36032,37 +51121,56 @@

    -

    +

    - .normalize_generated_rakefile(content) ⇒ Object + .project_recording_enabled?(project_root, config) ⇒ Boolean -

     
     
    -7003
    -7004
    -7005
    -7006
    -7007
    -7008
    -7009
    -7010
    -7011
    -7012
    -7013
    +5723 +5724 +5725 +5726 +5727
    -
    # File 'lib/kettle/jem.rb', line 7003
    +      
    # File 'lib/kettle/jem.rb', line 5723
     
    -def monorepo_subgem_template_entries_for_profile(gemspec_path, profile)
    -  case normalize_template_profile(profile)
    -  when MONOREPO_SUBGEM_RELEASE_TEMPLATE_PROFILE
    -    MONOREPO_SUBGEM_RELEASE_TEMPLATE_ENTRIES.dup
    -  when MONOREPO_SUBGEM_FULL_TEMPLATE_PROFILE
    -    project_root = File.dirname(File.expand_path(gemspec_path.to_s))
    -    template_inventory_entries(project_root, PACKAGED_TEMPLATE_ROOT).dup
    -  else
    -    MONOREPO_SUBGEM_TEMPLATE_ENTRIES.dup
    +def prism_subtree_contains_simplecov_require?(node)
    +  node.compact_child_nodes.any? do |child|
    +    simplecov_require_call_node?(child) || prism_subtree_contains_simplecov_require?(child)
       end
     end
    -
    # File 'lib/kettle/jem.rb', line 7084
    +      
    # File 'lib/kettle/jem.rb', line 5932
     
    -def monorepo_subgem_template_profile?(facts)
    -  monorepo_subgem_template_profile_value?(facts[:template_profile])
    +def prism_subtree_contains_string?(node, string)
    +  node.breadth_first_search_all do |child|
    +    child.is_a?(::Prism::StringNode) && child.unescaped == string
    +  end.any?
     end
    -
    # File 'lib/kettle/jem.rb', line 7096
    +      
    # File 'lib/kettle/jem.rb', line 6189
     
    -def monorepo_subgem_template_profile_value?(profile)
    -  [
    -    MONOREPO_SUBGEM_PACKAGE_TEMPLATE_PROFILE,
    -    MONOREPO_SUBGEM_RELEASE_TEMPLATE_PROFILE,
    -    MONOREPO_SUBGEM_FULL_TEMPLATE_PROFILE
    -  ].include?(normalize_template_profile(profile))
    +def process_result_adapter_failure?(merge_result)
    +  diagnostics = merge_result.respond_to?(:fetch) ? merge_result.fetch(:diagnostics, []) : []
    +  diagnostics.any? do |diagnostic|
    +    message = diagnostic[:message] || diagnostic["message"]
    +    message.to_s.include?("TreeSitterLanguagePack::ProcessResult") && message.to_s.include?("undefined method")
    +  end
     end
    -
    # File 'lib/kettle/jem.rb', line 7092
    +      
    # File 'lib/kettle/jem.rb', line 13652
     
    -def monorepo_template_profile?(facts)
    -  monorepo_root_template_profile?(facts) || monorepo_subgem_template_profile?(facts)
    +def project_appraisals_recording_enabled?(project_root)
    +  appraisals_path = File.join(project_root.to_s, "Appraisals")
    +  return false unless File.file?(appraisals_path)
    +
    +  gemfile_eval_paths(File.read(appraisals_path)).any? { |path| path.to_s.include?("modular/recording/") }
     end
    -
    # File 'lib/kettle/jem.rb', line 9732
    +      
    # File 'lib/kettle/jem.rb', line 3759
     
    -def non_mit_licenses?(licenses)
    -  licenses.any? { |license| license != "MIT" }
    +def project_gemspec_declares_version_gem?(project_root)
    +  path = Dir.glob(File.join(project_root, "*.gemspec")).min
    +  return false unless path
    +
    +   = (path)
    +  dependencies = Array([:runtime_dependencies] || ["runtime_dependencies"])
    +  if dependencies.empty?
    +    spec = load_project_gemspec(path)
    +    dependencies = Array(spec&.runtime_dependencies)
    +  end
    +  dependencies.any? { |dependency| dependency.name == "version_gem" }
     end
    -
    # File 'lib/kettle/jem.rb', line 3646
    +      
    # File 'lib/kettle/jem.rb', line 10880
     
    -def normalize_changelog(content, facts)
    -  text = content.to_s
    -  title = "# Changelog"
    -  headings = markdown_heading_owners(text, source_label: "CHANGELOG.md")
    -  unless headings.any? { |heading| heading.level == 1 }
    -    text = "#{title}\n\n#{text}"
    -    headings = markdown_heading_owners(text, source_label: "CHANGELOG.md")
    +def (project_root, gemspec_path, spec: nil)
    +   = quiet_gemspec_reader_load(project_root)
    +  spec ||= load_project_gemspec(gemspec_path)
    +   = {} unless .is_a?(Hash)
    +   = .dup
    +
    +  if spec
    +    [:gemspec_path] ||= gemspec_path
    +    [:gem_name] = spec.name.to_s if (, :gem_name).nil?
    +    [:version] = spec.version.to_s if (, :version).nil?
    +    [:min_ruby] = min_ruby_version(spec.required_ruby_version) if [:min_ruby].nil?
    +    [:homepage] = spec.homepage.to_s if (, :homepage).nil?
    +    [:homepage_uri] = spec..fetch("homepage_uri", nil) if (, :homepage_uri).nil?
    +    [:source_code_uri] = spec..fetch("source_code_uri", nil) if (, :source_code_uri).nil?
    +    [:funding_uri] = spec..fetch("funding_uri", nil) if (, :funding_uri).nil?
    +    [:authors] = Array(spec.authors).compact.uniq if Array([:authors]).empty?
    +    [:email] = Array(spec.email).compact.uniq if Array([:email]).empty?
    +    [:summary] = spec.summary.to_s if (, :summary).nil?
    +    [:description] = spec.description.to_s if (, :description).nil?
    +    [:licenses] = Array(spec.licenses) if Array([:licenses]).empty?
    +    [:required_ruby_version] = spec.required_ruby_version if [:required_ruby_version].nil?
    +    [:require_paths] = Array(spec.require_paths) if Array([:require_paths]).empty?
    +    [:bindir] = spec.bindir.to_s if (, :bindir).nil?
    +    [:executables] = Array(spec.executables) if Array([:executables]).empty?
       end
    -  return ensure_trailing_newline(text) if headings.any? { |heading| heading.level == 2 && changelog_unreleased_heading?(heading.heading_text) }
     
    -  lines = text.split("\n", -1)
    -  insert_at = headings.find { |heading| heading.level == 2 }&.location&.start_line&.-(1) || lines.length
    -  section = [
    -    "## [Unreleased]",
    -    "",
    -    "### Added",
    -    "",
    -    "### Changed",
    -    "",
    -    "### Deprecated",
    -    "",
    -    "### Removed",
    -    "",
    -    "### Fixed",
    -    "",
    -    "### Security",
    -    ""
    -  ]
    -  lines.insert(insert_at, *section)
    -  ensure_trailing_newline(lines.join("\n").gsub(/\n{3,}/, "\n\n"))
    +  return {} unless present_template_token_value?([:gem_name])
    +
    +  
    +rescue LoadError, StandardError
    +  (gemspec_path)
     end
    -
    # File 'lib/kettle/jem.rb', line 5558
    +      
    # File 'lib/kettle/jem.rb', line 3752
     
    -def normalize_eval_gemfile_ruby_bucket(path)
    -  segments = path.to_s.split("/", -1)
    -  bucket_index = segments.index { |segment| ruby_bucket_path_segment?(segment) }
    -  return unless bucket_index
    +def project_gemspec_version(project_root)
    +  path = Dir.glob(File.join(project_root, "*.gemspec")).min
    +  return "" unless path
     
    -  segments[bucket_index] = "{ruby}"
    -  segments.join("/")
    +  load_project_gemspec(path)&.version.to_s
     end
    -
    # File 'lib/kettle/jem.rb', line 6221
    -
    -def normalize_gemspec_project_emoji(line, facts, field:)
    -  return line unless %w[summary description].include?(field.to_s)
    -  return line unless facts&.dig(:project_runtime, :project_emoji_configured)
    -
    -  project_emoji = facts&.dig(:project_runtime, :project_emoji).to_s
    -  return line if project_emoji.empty?
    -
    -  record = gemspec_assignment_records(line).find { |candidate| candidate.fetch(:field) == field.to_s }
    -  value = record&.fetch(:value)
    -  return line unless value.is_a?(String)
    -  return line if value.lstrip.start_with?("<<")
    +      
    # File 'lib/kettle/jem.rb', line 11033
     
    -  if value.start_with?('"', "'")
    -    quote = value[0]
    -    value_body = value[1..].to_s
    -    line.sub(value, "#{quote}#{project_emoji} #{strip_leading_decorative_graphemes(value_body)}")
    -  else
    -    line.sub(value, "#{project_emoji} #{strip_leading_decorative_graphemes(value)}")
    +def project_homepage_uri(config, env, yard_host:, gemspec_homepage_uri: nil)
    +  derived = if present_template_token_value?(gemspec_homepage_uri)
    +    gemspec_homepage_uri
    +  elsif present_template_token_value?(yard_host)
    +    "https://#{yard_host}"
       end
    +  preferred_template_token_value(derived, project_runtime_config_value(config, "homepage_uri"), env, "KJ_HOMEPAGE_URI").to_s
     end
    -
    # File 'lib/kettle/jem.rb', line 6211
    +      
    # File 'lib/kettle/jem.rb', line 11128
     
    -def normalize_gemspec_receiver(line, from:, to:)
    -  return line if from.to_s.empty? || to.to_s.empty? || from == to
    +def project_namespace(entrypoint_namespace:, version_namespace:, metadata_namespace:, default_namespace:)
    +  if namespace_descendant?(entrypoint_namespace, version_namespace)
    +    return version_namespace
    +  end
     
    -  leading = line.to_s.length - line.to_s.lstrip.length
    -  stripped = line.to_s[leading..].to_s
    -  return line unless stripped.start_with?("#{from}.")
    +  if namespace_descendant?(version_namespace, default_namespace) || namespace_descendant?(entrypoint_namespace, default_namespace)
    +    return default_namespace
    +  end
     
    -  "#{line.to_s[0...leading]}#{to}#{stripped[from.to_s.length..]}"
    +  entrypoint_namespace || version_namespace ||  || default_namespace
     end
    +
    +
    + + + +
    +
    +
    + +

    Returns:

    +
      + +
    • + + + (Boolean) + + + +
    • + +
    + +
    @@ -36070,9 +51178,9 @@

    -

    +

    - .normalize_git_source_url(url) ⇒ Object + .project_relative_path(path, project_root) ⇒ Object @@ -36084,47 +51192,25 @@

     
     
    -9128
    -9129
    -9130
    -9131
    -9132
    -9133
    -9134
    -9135
    -9136
    -9137
    -9138
    -9139
    -9140
    -9141
    -9142
    -9143
    -9144
    -9145
    -9146
    +10765 +10766 +10767 +10768 +10769 +10770 +10771 +10772

    @@ -36132,9 +51218,9 @@

    -

    +

    - .normalize_github_actions_exec_cmd(command) ⇒ Object + .project_runtime_config_value(config, key) ⇒ Object @@ -36146,21 +51232,25 @@

     
     
    -10834
    -10835
    -10836
    -10837
    -10838
    -10839
    +11042 +11043 +11044 +11045 +11046 +11047 +11048 +11049

    @@ -36168,9 +51258,9 @@

    -

    +

    - .normalize_list_option(value) ⇒ Object + .project_runtime_facts(config, env, package_name:, source_url:, author_domain:, min_ruby:, test_min_ruby:, version:, project_root: nil, gemspec_metadata: {}) ⇒ Object @@ -36182,17 +51272,103 @@

     
     
    -7184
    -7185
    -7186
    -7187
    - -

    + @@ -36200,9 +51376,9 @@

    -

    +

    - .normalize_rakefile_section_spacing(content) ⇒ Object + .project_runtime_template_tokens(project_runtime) ⇒ Object @@ -36214,25 +51390,41 @@

     
     
    -4180
    -4181
    -4182
    -4183
    -4184
    -4185
    -4186
    -4187
    +11004 +11005 +11006 +11007 +11008 +11009 +11010 +11011 +11012 +11013 +11014 +11015 +11016 +11017 +11018 +11019

    @@ -36240,9 +51432,9 @@

    -

    +

    - .normalize_readme_blank_line_runs(content) ⇒ Object + .project_yard_host(config, env, package_name:, author_domain:) ⇒ Object @@ -36254,19 +51446,17 @@

     
     
    -4396
    -4397
    -4398
    -4399
    -4400
    +11021 +11022 +11023 +11024

    @@ -36274,9 +51464,9 @@

    -

    +

    - .normalize_readme_heading(text) ⇒ Object + .prune_appraisals_below_min_ruby(content, min_ruby) ⇒ Object @@ -36288,15 +51478,41 @@

     
     
    -10172
    -10173
    -10174
    +7105 +7106 +7107 +7108 +7109 +7110 +7111 +7112 +7113 +7114 +7115 +7116 +7117 +7118 +7119 +7120

    @@ -36304,9 +51520,9 @@

    -

    +

    - .normalize_readme_project_heading(content, facts) ⇒ Object + .prune_appraisals_recording_entries(content, facts) ⇒ Object @@ -36318,35 +51534,69 @@

     
     
    -4647
    -4648
    -4649
    -4650
    -4651
    -4652
    -4653
    -4654
    -4655
    -4656
    -4657
    -4658
    -4659
    +6877 +6878 +6879 +6880 +6881 +6882 +6883 +6884 +6885 +6886 +6887 +6888 +6889 +6890 +6891 +6892 +6893 +6894 +6895 +6896 +6897 +6898 +6899 +6900 +6901 +6902 +6903 +6904 +6905 +6906

    @@ -36354,9 +51604,9 @@

    -

    +

    - .normalize_readme_section_key(section) ⇒ Object + .prune_empty_parent_directories(project_root, relative_path) ⇒ Object @@ -36368,15 +51618,33 @@

     
     
    -9910
    -9911
    -9912
    +11205 +11206 +11207 +11208 +11209 +11210 +11211 +11212 +11213 +11214 +11215 +11216

    @@ -36384,9 +51652,9 @@

    -

    +

    - .normalize_readme_synopsis_heading(content, facts) ⇒ Object + .prune_github_workflow_matrix_by_min_ruby(content, facts) ⇒ Object @@ -36398,37 +51666,47 @@

     
     
    -4661
    -4662
    -4663
    -4664
    -4665
    -4666
    -4667
    -4668
    -4669
    -4670
    -4671
    -4672
    -4673
    -4674
    +6017 +6018 +6019 +6020 +6021 +6022 +6023 +6024 +6025 +6026 +6027 +6028 +6029 +6030 +6031 +6032 +6033 +6034 +6035

    @@ -36436,9 +51714,9 @@

    -

    +

    - .normalize_repository_topology(value) ⇒ Object + .prune_legacy_kettle_config_keys(content) ⇒ Object @@ -36450,25 +51728,21 @@

     
     
    -7210
    -7211
    -7212
    -7213
    -7214
    -7215
    -7216
    -7217
    +8639 +8640 +8641 +8642 +8643 +8644

    @@ -36476,9 +51750,9 @@

    -

    +

     
     
    -7189
    -7190
    -7191
    -7192
    -7193
    -7194
    -7195
    -7196
    -7197
    -7198
    -7199
    +5244 +5245 +5246 +5247 +5248 +5249 +5250 +5251 +5252 +5253 +5254 +5255 +5256 +5257 +5258

    @@ -36522,9 +51804,9 @@

    -

    +

    - .normalized_readme_logo_specs(value) ⇒ Object + .prune_readme_integration_badges(content, readme_style) ⇒ Object @@ -36536,43 +51818,39 @@

     
     
    -9231
    -9232
    -9233
    -9234
    -9235
    -9236
    -9237
    -9238
    -9239
    -9240
    -9241
    -9242
    -9243
    -9244
    -9245
    -9246
    -9247
    +5228 +5229 +5230 +5231 +5232 +5233 +5234 +5235 +5236 +5237 +5238 +5239 +5240 +5241 +5242

    @@ -36580,9 +51858,9 @@

    -

    +

     
     
    -9249
    -9250
    -9251
    -9252
    -9253
    -9254
    +4921 +4922 +4923 +4924 +4925 +4926 +4927 +4928 +4929 +4930

    @@ -36616,29 +51902,64 @@

    -

    +

    - .normalized_readme_top_logo_options(value) ⇒ Object + .prune_workflow_matrix_item?(mapping, minimum) ⇒ Boolean -

     
     
    -4172
    -4173
    -4174
    -4175
    -4176
    -4177
    -4178
    +13646 +13647 +13648 +13649 +13650
    -
    # File 'lib/kettle/jem.rb', line 4172
    +      
    # File 'lib/kettle/jem.rb', line 13646
     
    -def normalize_generated_rakefile(content)
    -  return "" if content.to_s.empty?
    +def project_recording_enabled?(project_root, config)
    +  return true if appraisal_recording_enabled?(config)
     
    -  stripped = strip_orphaned_rake_task_requires(content.to_s)
    -  spaced = normalize_rakefile_section_spacing(stripped)
    -  ensure_trailing_newline(spaced.rstrip)
    +  project_appraisals_recording_enabled?(project_root)
     end
    -
    # File 'lib/kettle/jem.rb', line 9128
    -
    -def normalize_git_source_url(url)
    -  value = url.to_s.strip
    -  return if value.empty?
    -
    -  if value.start_with?("git@github.com:")
    -    slug = value.split(":", 2).last.to_s.delete_suffix(".git")
    -    return "https://github.com/#{slug}" if slug.split("/").length >= 2
    -  end
    +      
    # File 'lib/kettle/jem.rb', line 10765
     
    -  uri = URI.parse(value)
    -  if %w[http https].include?(uri.scheme) && uri.host == "github.com"
    -    slug = uri.path.to_s.delete_prefix("/").delete_suffix(".git")
    -    return "https://github.com/#{slug}" if slug.split("/").length >= 2
    -  end
    +def project_relative_path(path, project_root)
    +  expanded_root = File.expand_path(project_root.to_s)
    +  expanded_path = File.expand_path(path.to_s)
    +  prefix = "#{expanded_root}#{File::SEPARATOR}"
    +  return expanded_path unless expanded_path.start_with?(prefix)
     
    -  value
    -rescue URI::InvalidURIError
    -  value
    +  expanded_path[prefix.length..].to_s
     end
    -
    # File 'lib/kettle/jem.rb', line 10834
    +      
    # File 'lib/kettle/jem.rb', line 11042
     
    -def normalize_github_actions_exec_cmd(command)
    -  normalized = command.to_s.strip
    -  return "kettle-test" if OBSOLETE_APPRAISAL_SPEC_EXEC_CMDS.include?(normalized)
    +def project_runtime_config_value(config, key)
    +  token_config = token_config_values(config)
    +  runtime_config = token_config["project_runtime"].is_a?(Hash) ? token_config["project_runtime"] : {}
    +  top_level_value = config[key]
    +  return top_level_value if present_template_token_value?(top_level_value)
     
    -  normalized
    +  runtime_config[key]
     end
    -
    # File 'lib/kettle/jem.rb', line 7184
    -
    -def normalize_list_option(value)
    -  values = Array(value).flat_map { |entry| entry.to_s.split(",") }.map(&:strip).reject(&:empty?)
    -  values.empty? ? nil : values
    +10662
    +10663
    +10664
    +10665
    +10666
    +10667
    +10668
    +10669
    +10670
    +10671
    +10672
    +10673
    +10674
    +10675
    +10676
    +10677
    +10678
    +10679
    +10680
    +10681
    +10682
    +10683
    +10684
    +10685
    +10686
    +10687
    +10688
    +10689
    +10690
    +10691
    +10692
    +10693
    +10694
    +10695
    +10696
    +10697
    +10698
    +10699
    +10700
    +10701
    +10702
    +10703
    +10704
    +10705
    +10706
    +10707
    +10708
    +
    +
    # File 'lib/kettle/jem.rb', line 10662
    +
    +def project_runtime_facts(
    +  config,
    +  env,
    +  package_name:,
    +  source_url:,
    +  author_domain:,
    +  min_ruby:,
    +  test_min_ruby:,
    +  version:,
    +  project_root: nil,
    +  gemspec_metadata: {}
    +)
    +  run_timestamp = Time.now
    +  configured_project_emoji = preferred_template_token_value(nil, config["project_emoji"], env, "KJ_PROJECT_EMOJI")
    +  yard_host = project_yard_host(config, env, package_name: package_name, author_domain: author_domain)
    +  local_modular_eval_paths = local_modular_runtime_eval_paths(project_root, , package_name: package_name)
    +  direct_sibling_gems = direct_sibling_runtime_gems(
    +    project_root,
    +    ,
    +    package_name: package_name,
    +    local_modular_eval_paths: local_modular_eval_paths
    +  )
    +  compact_hash(
    +    freeze_token: config.dig("defaults", "freeze_token").to_s.empty? ? "kettle-jem" : config.dig("defaults", "freeze_token").to_s,
    +    kettle_jem_version: VERSION,
    +    template_run_date: run_timestamp.strftime("%Y-%m-%d"),
    +    template_run_year: run_timestamp.year.to_s,
    +    kettle_dev_gem: "kettle-dev",
    +    kettle_dev_local_gems: kettle_dev_local_gems(config),
    +    package_name: package_name.to_s,
    +    yard_host: yard_host,
    +    homepage_uri: project_homepage_uri(config, env, yard_host: yard_host, gemspec_homepage_uri: (, :homepage_uri)),
    +    project_emoji: preferred_template_token_value("💎", config["project_emoji"], env, "KJ_PROJECT_EMOJI").to_s,
    +    project_emoji_configured: !configured_project_emoji.to_s.empty?,
    +    min_divergence_threshold: preferred_template_token_value(nil, config["min_divergence_threshold"], env, "KJ_MIN_DIVERGENCE_THRESHOLD").to_s,
    +    min_dev_ruby: test_min_ruby.to_s,
    +    test_min_ruby: test_min_ruby.to_s,
    +    version: version.to_s,
    +    github_org: github_org_from_url(source_url).to_s,
    +    main_gemfile_direct_sibling_block: main_gemfile_direct_sibling_block(
    +      direct_sibling_gems,
    +      source_url: source_url,
    +      project_root: project_root,
    +      local_modular_eval_paths: local_modular_eval_paths.values.flatten
    +    )
    +  )
     end
    -
    # File 'lib/kettle/jem.rb', line 4180
    +      
    # File 'lib/kettle/jem.rb', line 11004
     
    -def normalize_rakefile_section_spacing(content)
    -  content.to_s.lines.each_with_object([]) do |line, normalized|
    -    if line.start_with?("### ")
    -      normalized.pop while normalized.length > 1 && normalized[-1].strip.empty? && normalized[-2].strip.empty?
    -    end
    -    normalized << line
    -  end.join
    +def project_runtime_template_tokens(project_runtime)
    +  {
    +    "KJ|FREEZE_TOKEN" => project_runtime[:freeze_token].to_s,
    +    "KJ|KETTLE_JEM_VERSION" => project_runtime[:kettle_jem_version].to_s,
    +    "KJ|TEMPLATE_RUN_DATE" => project_runtime[:template_run_date].to_s,
    +    "KJ|TEMPLATE_RUN_YEAR" => project_runtime[:template_run_year].to_s,
    +    "KJ|KETTLE_DEV_GEM" => project_runtime[:kettle_dev_gem].to_s,
    +    "KJ|KETTLE_DEV_LOCAL_GEMS" => project_runtime[:kettle_dev_local_gems].to_s,
    +    "KJ|MAIN_GEMFILE_DIRECT_SIBLING_BLOCK" => project_runtime[:main_gemfile_direct_sibling_block].to_s,
    +    "KJ|PACKAGE_NAME" => project_runtime[:package_name].to_s,
    +    "KJ|YARD_HOST" => project_runtime[:yard_host].to_s,
    +    "KJ|HOMEPAGE_URI" => project_runtime[:homepage_uri].to_s,
    +    "KJ|PROJECT_EMOJI" => project_runtime[:project_emoji].to_s,
    +    "KJ|MIN_DIVERGENCE_THRESHOLD" => project_runtime[:min_divergence_threshold].to_s
    +  }
     end
    -
    # File 'lib/kettle/jem.rb', line 4396
    -
    -def normalize_readme_blank_line_runs(content)
    -  return Ast::Merge.normalize_blank_line_runs(content) if Ast::Merge.respond_to?(:normalize_blank_line_runs)
    +      
    # File 'lib/kettle/jem.rb', line 11021
     
    -  collapse_excess_blank_lines(content)
    +def project_yard_host(config, env, package_name:, author_domain:)
    +  derived = "#{package_name.to_s.tr("_", "-")}.#{author_domain.to_s.empty? ? "example.com" : author_domain}"
    +  preferred_template_token_value(derived, project_runtime_config_value(config, "yard_host"), env, "KJ_YARD_HOST").to_s
     end
    -
    # File 'lib/kettle/jem.rb', line 10172
    +      
    # File 'lib/kettle/jem.rb', line 7105
     
    -def normalize_readme_heading(text)
    -  strip_readme_heading_adornment(text).strip.downcase
    +def prune_appraisals_below_min_ruby(content, min_ruby)
    +  return content if min_ruby.to_s.empty?
    +
    +  minimum = Gem::Version.new(min_ruby.to_s)
    +  remove_indexes = Set.new
    +  appraisal_call_records(content).each do |record|
    +    version = ruby_appraisal_name_version(record.fetch(:name))
    +    next unless version && version < minimum
    +
    +    (record.fetch(:start_line)..record.fetch(:end_line)).each { |line_number| remove_indexes << (line_number - 1) }
    +  end
    +  kept = content.to_s.lines.each_with_index.reject { |_line, index| remove_indexes.include?(index) }.map(&:first)
    +  ensure_trailing_newline(kept.join.gsub(/\n{3,}/, "\n\n"))
    +rescue ArgumentError
    +  content
     end
    -
    # File 'lib/kettle/jem.rb', line 4647
    +      
    # File 'lib/kettle/jem.rb', line 6877
     
    -def normalize_readme_project_heading(content, facts)
    -  namespace = facts.dig(:rubygems, :namespace).to_s
    -  emoji = facts.dig(:project_runtime, :project_emoji).to_s
    -  return content if namespace.empty? || emoji.empty?
    +def prune_appraisals_recording_entries(content, facts)
    +  remove_indexes = Set.new
    +  lines = content.to_s.lines
    +  unless facts.to_h.dig(:ci, :recording)
    +    ruby_call_records(content, :eval_gemfile).each do |call|
    +      path = ruby_string_argument(call)
    +      next unless path.to_s.include?("modular/recording/")
     
    -  lines = content.to_s.split("\n", -1)
    -  h1 = markdown_heading_owners(content, source_label: "README.md").find { |owner| owner.level == 1 }
    -  return content unless h1
    +      (call.location.start_line..ruby_node_source_end_line(call)).each { |line_number| remove_indexes << (line_number - 1) }
    +    end
    +  end
    +  head_appraisal = appraisal_call_records(content).find { |record| record.fetch(:name) == "head" }
    +  if head_appraisal
    +    gemfile_gem_call_records(content).each do |record|
    +      next unless record.fetch(:name) == "cgi"
    +      next unless record.fetch(:start_line) >= head_appraisal.fetch(:start_line)
    +      next unless record.fetch(:end_line) <= head_appraisal.fetch(:end_line)
     
    -  index = h1.location.start_line - 1
    -  lines[index] = "# #{emoji} #{namespace}"
    -  lines.join("\n")
    +      start_index = record.fetch(:start_line) - 1
    +      while start_index.positive? && gemfile_comment_line?(lines[start_index - 1])
    +        start_index -= 1
    +      end
    +      (start_index..(record.fetch(:end_line) - 1)).each { |index| remove_indexes << index }
    +    end
    +  end
    +  return content if remove_indexes.empty?
    +
    +  kept = lines.each_with_index.reject { |_line, index| remove_indexes.include?(index) }.map(&:first)
    +  ensure_trailing_newline(kept.join.gsub(/\n{3,}/, "\n\n"))
     end
    -
    # File 'lib/kettle/jem.rb', line 9910
    +      
    # File 'lib/kettle/jem.rb', line 11205
     
    -def normalize_readme_section_key(section)
    -  normalize_readme_heading(section.to_s.tr("_-", " "))
    +def prune_empty_parent_directories(project_root, relative_path)
    +  current = relative_path.to_s
    +  while !current.empty? && current != "."
    +    path = File.join(project_root, current)
    +    begin
    +      Dir.rmdir(path)
    +    rescue SystemCallError
    +      break
    +    end
    +    current = File.dirname(current)
    +  end
     end
    -
    # File 'lib/kettle/jem.rb', line 4661
    +      
    # File 'lib/kettle/jem.rb', line 6017
     
    -def normalize_readme_synopsis_heading(content, facts)
    -  logo_row = facts.dig(:readme_logo, :h2_synopsis_logo_row).to_s
    -  return content if logo_row.empty?
    +def prune_github_workflow_matrix_by_min_ruby(content, facts)
    +  min_ruby = minimum_ruby_token(facts.to_h.dig(:ci, :test_min_ruby) || facts.to_h.dig(:rubygems, :min_ruby))
    +  return content if min_ruby.to_s.empty?
     
    -  lines = content.to_s.split("\n", -1)
    -  h2 = markdown_heading_owners(content, source_label: "README.md").find do |owner|
    -    owner.level == 2 && owner.base.to_s == "synopsis"
    +  minimum = Gem::Version.new(min_ruby)
    +  lines = content.to_s.lines
    +  remove_indexes = Set.new
    +  yaml_mapping_nodes(content).each do |mapping|
    +    next unless prune_workflow_matrix_item?(mapping, minimum)
    +
    +    (mapping.start_line...mapping.end_line).each { |line_index| remove_indexes << line_index }
       end
    -  return content unless h2
     
    -  index = h2.location.start_line - 1
    -  lines[index] = "## 🌻 Synopsis #{logo_row}"
    -  lines.join("\n")
    +  return content if remove_indexes.empty?
    +
    +  ensure_trailing_newline(lines.each_with_index.reject { |_line, line_index| remove_indexes.include?(line_index) }.map(&:first).join.gsub(/\n{3,}/, "\n\n"))
    +rescue
    +  content
     end
    -
    # File 'lib/kettle/jem.rb', line 7210
    -
    -def normalize_repository_topology(value)
    -  topology = value.to_s.strip.downcase.tr("_", "-")
    -  return "" if topology.empty?
    -  return REPOSITORY_TOPOLOGY_MONOREPO_SUBPROJECT if %w[monorepo-subproject monorepo-subgem monorepo-package subproject subgem].include?(topology)
    -  return REPOSITORY_TOPOLOGY_STANDALONE if %w[standalone single-repo repo].include?(topology)
    +      
    # File 'lib/kettle/jem.rb', line 8639
     
    -  topology
    +def prune_legacy_kettle_config_keys(content)
    +  pruned = KETTLE_CONFIG_LEGACY_KEY_PATHS.reduce(content.to_s) do |updated, legacy_key|
    +    remove_yaml_scalar_path(updated, legacy_key.fetch(:path))
    +  end
    +  remove_obsolete_simplecov_keep_destination_config(pruned)
     end
    -
    # File 'lib/kettle/jem.rb', line 7189
    +      
    # File 'lib/kettle/jem.rb', line 5244
     
    -def normalize_template_profile(value)
    -  profile = value.to_s.strip.downcase.tr("_", "-")
    -  return "" if profile.empty?
    -  return FULL_TEMPLATE_PROFILE if %w[full large default standalone].include?(profile)
    -  return MONOREPO_SUBGEM_PACKAGE_TEMPLATE_PROFILE if %w[monorepo-subgem monorepo-subproject monorepo-package monorepo-subgem-package small thin package].include?(profile)
    -  return MONOREPO_SUBGEM_RELEASE_TEMPLATE_PROFILE if %w[monorepo-subgem-release monorepo-release release].include?(profile)
    -  return MONOREPO_SUBGEM_FULL_TEMPLATE_PROFILE if %w[monorepo-subgem-full monorepo-full subgem-full].include?(profile)
    -  return MONOREPO_ROOT_TEMPLATE_PROFILE if profile == MONOREPO_ROOT_TEMPLATE_PROFILE
    +def prune_missing_workflow_link_definitions(content, workflow_paths)
    +  ensure_runtime_dependencies!
    +  existing = Array(workflow_paths).map { |path| path.to_s.delete_prefix("./") }.to_set
    +  Ast::Crispr::Markdown::Markly.document_context(content: content.to_s, source_label: "README.md")
    +    .structural_owners(owner_scope: :link_definitions)
    +    .reduce(content.to_s) do |processed, owner|
    +      workflow_path = readme_workflow_path_from_url(owner.url)
    +      next processed if workflow_path.empty? || existing.include?(workflow_path)
     
    -  profile
    +      delete_markdown_with_ast_crispr(
    +        processed,
    +        Ast::Crispr::Markdown::Markly::Selectors.link_definition(label: owner.label, limit: {at_least: 0})
    +      )
    +    end
     end
    -
    # File 'lib/kettle/jem.rb', line 9231
    -
    -def normalized_readme_logo_specs(value)
    -  raw_values = case value
    -  when String
    -    value.split(",")
    -  when Array
    -    value
    -  else
    -    []
    -  end
    -  raw_values.filter_map do |raw_value|
    -    raw_type, raw_width = raw_value.to_s.split("|", 2)
    -    normalized = raw_type.to_s.strip.downcase.tr("-", "_")
    -    next unless README_TOP_LOGO_OPTIONS.include?(normalized)
    +      
    # File 'lib/kettle/jem.rb', line 5228
     
    -    {type: normalized, width: normalized_readme_logo_width(raw_width)}
    -  end.uniq
    +def prune_readme_integration_badges(content, readme_style)
    +  ensure_runtime_dependencies!
    +  integrations = Array(readme_style[:missing_integrations]) + Array(readme_style[:disabled_integrations])
    +  integrations.uniq.reduce(content.to_s) do |result, integration|
    +    pruned_badges = README_INTEGRATION_BADGE_PATTERNS.fetch(integration.to_s, []).reduce(result) do |memo, pattern|
    +      memo.gsub(pattern, "")
    +    end
    +    README_INTEGRATION_LINK_LABELS.fetch(integration.to_s, []).reduce(pruned_badges) do |memo, label|
    +      delete_markdown_with_ast_crispr(
    +        memo,
    +        Ast::Crispr::Markdown::Markly::Selectors.link_definition(label: label, limit: {at_least: 0})
    +      )
    +    end
    +  end.gsub(/[ \t]{2,}/, " ")
     end
    -
    # File 'lib/kettle/jem.rb', line 9249
    +      
    # File 'lib/kettle/jem.rb', line 4921
     
    -def normalized_readme_logo_width(value)
    -  clean = value.to_s.strip
    -  return nil if clean.empty?
    +def prune_unused_readme_logo_link_definitions(content)
    +  referenced = ReadmePostProcessor.markdown_inline_reference_owners(content).flat_map(&:labels).map(&:to_s).to_set
    +  labels = ReadmePostProcessor.markdown_link_definition_owners(content).filter_map do |owner|
    +    label = owner.label.to_s
    +    label if label.start_with?("🖼️") && !referenced.include?(label)
    +  end
    +  return content if labels.empty?
     
    -  clean
    +  ReadmePostProcessor.delete_markdown_link_definitions(content, labels)
     end
    +
    +
    + + + +
    +
    +
    + +

    Returns:

    +
      + +
    • + + + (Boolean) + + + +
    • + +
    + +
    @@ -36646,9 +51967,9 @@

    -

    +

    - .opencollective_disabled?(config, env: ENV) ⇒ Boolean + .quality_config_path?(path) ⇒ Boolean @@ -36683,15 +52004,29 @@

     
     
    -7854
    -7855
    -7856
    +9912 +9913 +9914 +9915 +9916 +9917 +9918 +9919 +9920 +9921

    @@ -36699,9 +52034,53 @@

    -

    +

    - .opencollective_disabled_file?(relative_path) ⇒ Boolean + .quiet_gemspec_reader_load(project_root) ⇒ Object + + + + + +

     
     
    -9227
    -9228
    -9229
    +6145 +6146 +6147 +6148 +6149 +6150 +6151 +6152 +6153
    -
    # File 'lib/kettle/jem.rb', line 9227
    +      
    # File 'lib/kettle/jem.rb', line 6145
     
    -def normalized_readme_top_logo_options(value)
    -  normalized_readme_logo_specs(value).map { |spec| spec.fetch(:type) }
    +def prune_workflow_matrix_item?(mapping, minimum)
    +  ruby = yaml_mapping_scalar_value(mapping, "ruby")
    +  return true if ruby && Gem::Version.new(ruby) < minimum
    +
    +  appraisal_ruby_version = appraisal_ruby_version(yaml_mapping_scalar_value(mapping, "appraisal"))
    +  appraisal_ruby_version && Gem::Version.new(appraisal_ruby_version) < minimum
    +rescue ArgumentError
    +  false
     end
    -
    # File 'lib/kettle/jem.rb', line 7854
    +      
    # File 'lib/kettle/jem.rb', line 9912
     
    -def opencollective_disabled?(config, env: ENV)
    -  opencollective_policy(config, env).fetch(:disabled)
    +def quality_config_path?(path)
    +  %w[
    +    .rubocop.yml
    +    .reek.yml
    +    .standard.yml
    +    .simplecov
    +    .yardopts
    +    Rakefile
    +  ].include?(path)
     end
    + + + + +
    +
    +
    +
    +10979
    +10980
    +10981
    +10982
    +10983
    +10984
    +10985
    +10986
    +10987
    +10988
    +
    +
    # File 'lib/kettle/jem.rb', line 10979
    +
    +def quiet_gemspec_reader_load(project_root)
    +  original_stderr = $stderr
    +  original_stdout = $stdout
    +  $stderr = StringIO.new
    +  $stdout = StringIO.new
    +  GemSpecReader.load(project_root)
    +ensure
    +  $stderr = original_stderr
    +  $stdout = original_stdout
    +end
    +
    +
    + +
    +

    + + .rakefile_default_task_call?(call) ⇒ Boolean @@ -36736,15 +52115,31 @@

     
     
    -7554
    -7555
    -7556
    +13858 +13859 +13860 +13861 +13862 +13863 +13864 +13865 +13866 +13867 +13868

    -
    # File 'lib/kettle/jem.rb', line 7554
    +      
    # File 'lib/kettle/jem.rb', line 13858
     
    -def opencollective_disabled_file?(relative_path)
    -  OPENCOLLECTIVE_DISABLED_FILES.include?(relative_path.to_s)
    +def rakefile_default_task_call?(call)
    +  argument = call.arguments&.arguments&.first
    +  case argument
    +  when ::Prism::SymbolNode
    +    argument.unescaped.to_s == "default"
    +  when ::Prism::KeywordHashNode
    +    argument.elements.any? { |element| element.key.is_a?(::Prism::SymbolNode) && element.key.unescaped.to_s == "default" }
    +  else
    +    false
    +  end
     end
    -
    # File 'lib/kettle/jem.rb', line 7548
    +      
    # File 'lib/kettle/jem.rb', line 13847
     
    -def opencollective_disabled_files(project_root)
    -  OPENCOLLECTIVE_DISABLED_FILES.select do |relative_path|
    -    File.exist?(File.join(project_root, relative_path))
    +def rakefile_default_task_records(content)
    +  top_level_ruby_call_records(content, :task).filter_map do |call|
    +    next unless rakefile_default_task_call?(call)
    +
    +    {
    +      start_line: call.location.start_line,
    +      end_line: ruby_node_source_end_line(call)
    +    }
       end
     end
    -
    # File 'lib/kettle/jem.rb', line 7879
    +      
    # File 'lib/kettle/jem.rb', line 13808
     
    -def opencollective_falsey_env(env)
    -  %w[OPENCOLLECTIVE_HANDLE FUNDING_ORG].each do |key|
    -    value = env[key]
    -    return {key: key, value: value} if falsey_config?(value)
    +def rakefile_require_records(content)
    +  top_level_ruby_call_records(content, :require).filter_map do |call|
    +    name = ruby_string_argument(call)
    +    next unless name
    +
    +    {
    +      name: name,
    +      start_line: call.location.start_line,
    +      end_line: ruby_node_source_end_line(call)
    +    }
       end
    -  nil
     end
    -
    # File 'lib/kettle/jem.rb', line 7887
    -
    -def opencollective_org(project_root, config, env, opencollective_disabled: false)
    -  return if opencollective_disabled
    -
    -  env_org = opencollective_org_env(env)
    -  return env_org if env_org
    +      
    # File 'lib/kettle/jem.rb', line 4418
     
    -  config_org = opencollective_org_config(config)
    -  return config_org if config_org
    -
    -  funding_org = opencollective_org_github_funding_file(project_root)
    -  return funding_org if funding_org
    +def rakefile_scaffold_cleanup(content, facts)
    +  return {content: content.to_s, delete_selectors: []} if facts[:template_profile].to_s == MONOREPO_ROOT_TEMPLATE_PROFILE
     
    -  opencollective_org_file(project_root)
    +  delete_rakefile_scaffold(content)
     end
    +
    +
    + + + +
    +
    +
    + +

    Returns:

    +
      + +
    • + + + (Boolean) + + + +
    • + +
    + +
    @@ -36924,9 +52326,9 @@

    -

    +

    - .opencollective_org_env(env) ⇒ Object + .rakefile_scaffold_delete_selectors(content) ⇒ Object @@ -36938,27 +52340,73 @@

     
     
    -7915
    -7916
    -7917
    -7918
    -7919
    -7920
    -7921
    -7922
    -7923
    +13775 +13776 +13777 +13778 +13779 +13780 +13781 +13782 +13783 +13784 +13785 +13786 +13787 +13788 +13789 +13790 +13791 +13792 +13793 +13794 +13795 +13796 +13797 +13798 +13799 +13800 +13801 +13802 +13803 +13804 +13805 +13806

    @@ -36966,9 +52414,9 @@

    -

    +

    - .opencollective_org_file(project_root) ⇒ Object + .rakefile_selector(selector_id, start_line, end_line, reason) ⇒ Object @@ -36980,33 +52428,27 @@

     
     
    -7925
    -7926
    -7927
    -7928
    -7929
    -7930
    -7931
    -7932
    -7933
    -7934
    -7935
    -7936
    +13893 +13894 +13895 +13896 +13897 +13898 +13899 +13900 +13901

    @@ -37014,9 +52456,9 @@

    -

    +

    - .opencollective_org_github_funding_file(project_root) ⇒ Object + .rakefile_task_block_selectors(content) ⇒ Object @@ -37028,33 +52470,33 @@

     
     
    -7938
    -7939
    -7940
    -7941
    -7942
    -7943
    -7944
    -7945
    -7946
    -7947
    -7948
    -7949
    +13834 +13835 +13836 +13837 +13838 +13839 +13840 +13841 +13842 +13843 +13844 +13845

    @@ -37062,9 +52504,9 @@

    -

    +

    - .opencollective_policy(config, env) ⇒ Object + .rakefile_task_class_records(content) ⇒ Object @@ -37076,49 +52518,33 @@

     
     
    -7858
    -7859
    -7860
    -7861
    -7862
    -7863
    -7864
    -7865
    -7866
    -7867
    -7868
    -7869
    -7870
    -7871
    -7872
    -7873
    -7874
    -7875
    -7876
    -7877
    +13821 +13822 +13823 +13824 +13825 +13826 +13827 +13828 +13829 +13830 +13831 +13832

    @@ -37126,37 +52552,62 @@

    -

    +

    + + .rakefile_template_default_task?(content, record) ⇒ Boolean + + + + + +

    +
    + + + +
    +
    +
    - .opt_in_workflow_cleanup_files(project_root, template_selection) ⇒ Object +

    Returns:

    +
      - +
    • + + + (Boolean) + + + +
    • +
    - -

     
     
    -7902
    -7903
    -7904
    -7905
    -7906
    -7907
    -7908
    -7909
    -7910
    -7911
    -7912
    -7913
    +4414 +4415 +4416
    -
    # File 'lib/kettle/jem.rb', line 7902
    -
    -def opencollective_org_config(config)
    -  funding = config["funding"]
    -  return unless funding.is_a?(Hash) && funding.key?("open_collective")
    -
    -  value = funding["open_collective"]
    -  return if value == true || falsey_config?(value)
    -
    -  org = value.to_s.strip
    -  return if org.empty?
    +      
    # File 'lib/kettle/jem.rb', line 4414
     
    -  {org: org, source: "config.funding.open_collective"}
    +def rakefile_scaffold_cleanup_recipe?(recipe)
    +  recipe.fetch(:name) == "rakefile_scaffold_cleanup"
     end
    -
    # File 'lib/kettle/jem.rb', line 7915
    +      
    # File 'lib/kettle/jem.rb', line 13775
     
    -def opencollective_org_env(env)
    -  %w[OPENCOLLECTIVE_HANDLE FUNDING_ORG].each do |key|
    -    value = env[key].to_s.strip
    -    next if value.empty? || falsey_config?(value)
    +def rakefile_scaffold_delete_selectors(content)
    +  selectors = []
     
    -    return {org: value, source: "env.#{key}"}
    +  rakefile_require_records(content).each do |record|
    +    selector_id = case record.fetch(:name)
    +    when "bundler/gem_tasks"
    +      "rakefile_scaffold_require_bundler_gem_tasks"
    +    when "rspec/core/rake_task"
    +      "rakefile_scaffold_require_rspec_core_rake_task"
    +    when "rubocop/rake_task"
    +      "rakefile_scaffold_require_rubocop_rake_task"
    +    end
    +    next unless selector_id
    +
    +    selectors << rakefile_selector(selector_id, record.fetch(:start_line), record.fetch(:end_line), "wrapper_selected_scaffold_require")
       end
    -  nil
    +
    +  rakefile_task_class_records(content).each do |record|
    +    selector_id = case record.fetch(:receiver)
    +    when "RSpec::Core::RakeTask"
    +      "rakefile_scaffold_rspec_task"
    +    when "RuboCop::RakeTask"
    +      "rakefile_scaffold_rubocop_task"
    +    end
    +    next unless selector_id
    +
    +    selectors << rakefile_selector(selector_id, record.fetch(:start_line), record.fetch(:end_line), "wrapper_selected_scaffold_task")
    +  end
    +
    +  selectors.concat(rakefile_task_block_selectors(content))
    +  selectors.sort_by { |selector| [selector.fetch(:start_line), selector.fetch(:end_line)] }
     end
    -
    # File 'lib/kettle/jem.rb', line 7925
    -
    -def opencollective_org_file(project_root)
    -  path = File.join(project_root, ".opencollective.yml")
    -  return unless File.exist?(path)
    -
    -  config = YAML.safe_load_file(path, permitted_classes: [], aliases: false) || {}
    -  return unless config.is_a?(Hash)
    -
    -  org = config.fetch("collective", config["org"]).to_s.strip
    -  return if org.empty?
    +      
    # File 'lib/kettle/jem.rb', line 13893
     
    -  {org: org, source: ".opencollective.yml"}
    +def rakefile_selector(selector_id, start_line, end_line, reason)
    +  {
    +    selector_id: selector_id,
    +    selector_family: "structural_owner_range",
    +    start_line: start_line,
    +    end_line: end_line,
    +    reason: reason
    +  }
     end
    -
    # File 'lib/kettle/jem.rb', line 7938
    -
    -def opencollective_org_github_funding_file(project_root)
    -  path = File.join(project_root, ".github", "FUNDING.yml")
    -  return unless File.exist?(path)
    -
    -  funding = YAML.safe_load_file(path, permitted_classes: [], aliases: false) || {}
    -  return unless funding.is_a?(Hash)
    +      
    # File 'lib/kettle/jem.rb', line 13834
     
    -  org = Array(funding["open_collective"]).map(&:to_s).map(&:strip).reject(&:empty?).first
    -  return unless org
    +def rakefile_task_block_selectors(content)
    +  rakefile_default_task_records(content).filter_map do |record|
    +    next if rakefile_template_default_task?(content, record)
     
    -  {org: org.delete_prefix("@"), source: ".github/FUNDING.yml"}
    +    rakefile_selector(
    +      "rakefile_scaffold_task_default",
    +      record.fetch(:start_line),
    +      record.fetch(:end_line),
    +      "wrapper_selected_scaffold_task"
    +    )
    +  end
     end
    -
    # File 'lib/kettle/jem.rb', line 7858
    -
    -def opencollective_policy(config, env)
    -  funding = config["funding"]
    -  if funding.is_a?(Hash) && funding.key?("open_collective")
    -    config_value = funding["open_collective"]
    -    return {
    -      disabled: falsey_config?(config_value),
    -      source: "config.funding.open_collective",
    -      value: config_value.to_s
    -    }
    -  end
    +      
    # File 'lib/kettle/jem.rb', line 13821
     
    -  env_falsey = opencollective_falsey_env(env)
    -  return {disabled: true, source: "env.#{env_falsey.fetch(:key)}", value: env_falsey.fetch(:value).to_s} if env_falsey
    +def rakefile_task_class_records(content)
    +  top_level_ruby_call_records(content, :new).filter_map do |call|
    +    receiver = call.receiver&.slice
    +    next unless %w[RSpec::Core::RakeTask RuboCop::RakeTask].include?(receiver)
     
    -  if config.dig("templates", "profile").to_s == MONOREPO_SUBGEM_TEMPLATE_PROFILE
    -    return {disabled: true, source: "config.templates.profile", value: MONOREPO_SUBGEM_TEMPLATE_PROFILE}
    +    {
    +      receiver: receiver,
    +      start_line: call.location.start_line,
    +      end_line: ruby_node_source_end_line(call)
    +    }
       end
    -
    -  {disabled: false}
     end
    +
    @@ -37164,9 +52615,9 @@

    -

    +

    - .packaged_gemfile_template_ruby_floor(target_path) ⇒ Object + .rbs_merge_options(recipe) ⇒ Object @@ -37178,25 +52629,33 @@

     
     
    -10591
    -10592
    -10593
    -10594
    -10595
    -10596
    -10597
    -10598
    +7012 +7013 +7014 +7015 +7016 +7017 +7018 +7019 +7020 +7021 +7022 +7023

    @@ -37204,9 +52663,9 @@

    -

    +

    - .packaged_template_rootObject + .read_project_file(project_root, relative_path) ⇒ Object @@ -37218,15 +52677,17 @@

     
     
    -1938
    -1939
    -1940
    +11490 +11491 +11492 +11493

    @@ -37234,9 +52695,9 @@

    -

    +

    - .paperclip_ref(name) ⇒ Object + .read_project_files(project_root, pack) ⇒ Object @@ -37248,29 +52709,23 @@

     
     
    -9774
    -9775
    -9776
    -9777
    -9778
    -9779
    -9780
    -9781
    -9782
    -9783
    +4662 +4663 +4664 +4665 +4666 +4667 +4668

    @@ -37278,9 +52733,9 @@

    -

    +

    - .parse_blame_porcelain(output, author_map) ⇒ Object + .readme_config_hash(config) ⇒ Object @@ -37292,69 +52747,17 @@

     
     
    -8299
    -8300
    -8301
    -8302
    -8303
    -8304
    -8305
    -8306
    -8307
    -8308
    -8309
    -8310
    -8311
    -8312
    -8313
    -8314
    -8315
    -8316
    -8317
    -8318
    -8319
    -8320
    -8321
    -8322
    -8323
    -8324
    -8325
    -8326
    -8327
    -8328
    +11787 +11788 +11789 +11790

    @@ -37362,9 +52765,9 @@

    -

    +

     
     
    -7780
    -7781
    -7782
    -7783
    -7784
    -7785
    -7786
    -7787
    -7788
    -7789
    -7790
    -7791
    -7792
    -7793
    -7794
    -7795
    +12184 +12185 +12186 +12187 +12188 +12189 +12190 +12191 +12192 +12193 +12194 +12195 +12196

     
     
    -7522
    -7523
    -7524
    -7525
    -7526
    -7527
    -7528
    +13870 +13871 +13872 +13873 +13874 +13875 +13876 +13877
    -
    # File 'lib/kettle/jem.rb', line 7522
    +      
    # File 'lib/kettle/jem.rb', line 13870
     
    -def opt_in_workflow_cleanup_files(project_root, template_selection)
    -  include_patterns = Array(template_selection[:include])
    -  OPT_IN_GITHUB_WORKFLOWS.select do |relative_path|
    -    File.exist?(File.join(project_root, relative_path)) &&
    -      !selected_template_path?(relative_path, include_patterns)
    +def rakefile_template_default_task?(content, record)
    +  desc_lines = top_level_ruby_call_records(content, :desc).filter_map do |call|
    +    next unless ruby_string_argument(call) == "Default tasks aggregator"
    +
    +    call.location.start_line
       end
    +  desc_lines.include?(previous_nonblank_line_number(content, record.fetch(:start_line)))
     end
    -
    # File 'lib/kettle/jem.rb', line 10591
    +      
    # File 'lib/kettle/jem.rb', line 7012
     
    -def packaged_gemfile_template_ruby_floor(target_path)
    -  path = target_path.to_s
    -  if (match = path.match(%r{\Agemfiles/ruby_(\d+)_(\d+)\.gemfile\z}))
    -    return "#{match[1]}.#{match[2]}"
    +def rbs_merge_options(recipe)
    +  options = {
    +    preference: (recipe.dig(:template_preference, :preference) || "destination").to_sym,
    +    add_template_only_nodes: true,
    +    freeze_token: recipe.dig(:template_preference, :freeze_token) || "kettle-jem"
    +  }
    +  if !recipe.dig(:template_preference, :add_template_only_nodes).nil?
    +    configured = DecisionPolicy.value_to_boolean(recipe.dig(:template_preference, :add_template_only_nodes))
    +    options[:add_template_only_nodes] = configured unless configured.nil?
       end
    -
    -  path[%r{(?:\A|/)r(\d+\.\d+)(?:/|\z)}, 1]
    +  options
     end
    -
    # File 'lib/kettle/jem.rb', line 1938
    +      
    # File 'lib/kettle/jem.rb', line 11490
     
    -def packaged_template_root
    -  PACKAGED_TEMPLATE_ROOT
    +def read_project_file(project_root, relative_path)
    +  path = File.join(project_root, relative_path)
    +  File.file?(path) ? File.read(path) : ""
     end
    -
    # File 'lib/kettle/jem.rb', line 9774
    +      
    # File 'lib/kettle/jem.rb', line 4662
     
    -def paperclip_ref(name)
    -  {
    -    copyright_notice_explainer: "\u{1F4C4}copyright-notice-explainer",
    -    license: "\u{1F4C4}license",
    -    license_ref: "\u{1F4C4}license-ref",
    -    license_img: "\u{1F4C4}license-img",
    -    license_compat: "\u{1F4C4}license-compat",
    -    license_compat_img: "\u{1F4C4}license-compat-img"
    -  }.fetch(name)
    +def read_project_files(project_root, pack)
    +  pack.fetch(:recipes).to_h do |recipe|
    +    relative_path = recipe.fetch(:target_path)
    +    path = File.join(project_root, relative_path)
    +    [relative_path, File.exist?(path) ? File.read(path) : ""]
    +  end
     end
    -
    # File 'lib/kettle/jem.rb', line 8299
    -
    -def parse_blame_porcelain(output, author_map)
    -  commit_meta = {}
    -  current_sha = nil
    -  current_name = nil
    -  current_email = nil
    -  current_time = nil
    -  output.to_s.each_line do |raw_line|
    -    line = raw_line.chomp
    -    if line.match?(/\A[0-9a-f]{40}\s/)
    -      current_sha = line[0, 40]
    -      meta = commit_meta[current_sha]
    -      current_name = meta && meta[:name]
    -      current_email = meta && meta[:email]
    -      current_time = meta && meta[:time]
    -    elsif line.start_with?("author ") && !commit_meta.key?(current_sha.to_s)
    -      current_name = line[7..].strip
    -    elsif line.start_with?("author-mail ") && !commit_meta.key?(current_sha.to_s)
    -      current_email = line[12..].strip.gsub(/[<>]/, "")
    -    elsif line.start_with?("author-time ") && !commit_meta.key?(current_sha.to_s)
    -      current_time = line[12..].strip.to_i
    -    elsif line.start_with?("filename ")
    -      next unless current_sha && current_email
    +      
    # File 'lib/kettle/jem.rb', line 11787
     
    -      commit_meta[current_sha] ||= {name: current_name, email: current_email, time: current_time}
    -      year = current_time&.positive? ? Time.at(current_time).utc.year.to_s : Time.now.utc.year.to_s
    -      author_map[current_email][:name] ||= current_name
    -      author_map[current_email][:years] << year
    -    end
    -  end
    +def readme_config_hash(config)
    +  raw_config = config.is_a?(Hash) ? config["readme"] : nil
    +  raw_config.is_a?(Hash) ? raw_config : {}
     end
    -
    # File 'lib/kettle/jem.rb', line 7780
    -
    -def phase_for_recipe(recipe_name, relative_path)
    -  path = relative_path.to_s
    -  name = recipe_name.to_s
    -  return :config_sync if path == KETTLE_CONFIG_PATH || path == LEGACY_KETTLE_CONFIG_PATH || name.include?("kettle_config")
    -  return :dev_container if path.start_with?(".devcontainer/")
    -  return :github_workflows if path.start_with?(".github/workflows/") || path == ".github/FUNDING.yml"
    -  return :modular_gemfiles if path.start_with?("gemfiles/modular/")
    -  return :spec_helper if path == "spec/spec_helper.rb" || path.start_with?("spec/support/")
    -  return :environment_templates if path.start_with?(".env") || path.end_with?(".env")
    -  return :git_hooks if path.start_with?(".git/hooks/", "git-hooks/")
    -  return :license_files if path.start_with?("LICENSE", "NOTICE") || managed_license_template_basename(path)
    -  return :duplicate_check if name.include?("duplicate")
    -  return :quality_config if quality_config_path?(path)
    +      
    # File 'lib/kettle/jem.rb', line 12184
     
    -  :remaining_files
    -end
    +def readme_copyright_notice(copyright_lines, copyright_prefix, author) + lines = copyright_notice_lines(copyright_lines, copyright_prefix, author).map { |line| "- #{line}" } + <<~MARKDOWN.chomp + See [LICENSE.md][#{paperclip_ref(:license)}] for the official copyright notice. + + <details markdown="1"> + <summary>Copyright holders</summary> + + #{lines.join("\n")} + + </details> + MARKDOWN +end
    -

    +

    - .phase_reports_for(recipe_reports) ⇒ Object + .readme_default_logo_width(entries, one:, two:) ⇒ Object @@ -37432,40 +52829,24 @@

     
     
    -7759
    -7760
    -7761
    -7762
    -7763
    -7764
    -7765
    -7766
    -7767
    -7768
    -7769
    -7770
    -7771
    -7772
    -7773
    -7774
    +11991 +11992 +11993 +11994 +11995 +11996 +11997 +11998 -
    # File 'lib/kettle/jem.rb', line 7759
    +      
    # File 'lib/kettle/jem.rb', line 11991
     
    -def phase_reports_for(recipe_reports)
    -  reports_by_phase = recipe_reports.group_by { |recipe_report| recipe_report_phase(recipe_report) }
    -  PHASE_ORDER.map do |phase|
    -    reports = reports_by_phase.fetch(phase, [])
    -    changed_reports = reports.select { |recipe_report| recipe_report[:changed] }
    -    {
    -      phase: phase.to_s,
    -      recipes: reports.map { |recipe_report| recipe_report[:recipe_name] }.compact,
    -      changed_files: changed_reports.map { |recipe_report| recipe_report[:relative_path] }.compact.uniq.sort,
    -      stats: {
    -        recipe_count: reports.length,
    -        changed_count: changed_reports.length
    -      }
    -    }
    +def readme_default_logo_width(entries, one:, two:)
    +  case entries.length
    +  when 1
    +    one
    +  when 2
    +    two
       end
     end
    @@ -37474,9 +52855,9 @@

    -

    +

    - .plan_project(project_root, env: ENV, run_options: {}) ⇒ Object + .readme_destination_front_sections(destination_content) ⇒ Object @@ -37488,99 +52869,35 @@

     
     
    -3057
    -3058
    -3059
    -3060
    -3061
    -3062
    -3063
    -3064
    -3065
    -3066
    -3067
    -3068
    -3069
    -3070
    -3071
    -3072
    -3073
    -3074
    -3075
    -3076
    -3077
    -3078
    -3079
    -3080
    -3081
    -3082
    -3083
    -3084
    -3085
    -3086
    -3087
    -3088
    -3089
    -3090
    -3091
    -3092
    -3093
    -3094
    -3095
    -3096
    -3097
    -3098
    -3099
    -3100
    -3101
    +12701 +12702 +12703 +12704 +12705 +12706 +12707 +12708 +12709 +12710 +12711 +12712 +12713 -
    # File 'lib/kettle/jem.rb', line 3057
    +      
    # File 'lib/kettle/jem.rb', line 12701
     
    -def plan_project(project_root, env: ENV, run_options: {})
    -  preflight_project!(project_root)
    -  template_selection = template_selection_for(env, run_options)
    -  decision_policy = decision_policy_for(env, run_options)
    -  git_preflight = git_preflight_report(project_root, template_selection: template_selection)
    -  enforce_git_preflight!(git_preflight, decision_policy: decision_policy, template_selection: template_selection)
    -  facts = discover_facts(project_root, env: env, run_options: run_options)
    -  pack = recipe_pack(facts)
    -  pack = filter_recipe_pack(pack, template_selection)
    -  files = read_project_files(project_root, pack)
    -  recipe_reports = pack.fetch(:recipes).map do |recipe|
    -    execute_recipe(project_root: project_root, recipe: recipe, facts: facts, files: files, decision_policy: decision_policy, env: env)
    -  end
    -  plugin_registry = plugin_registry_for_project(project_root)
    -  changed_files = changed_files_from_recipe_reports(recipe_reports)
    -  diagnostics = recipe_reports.flat_map { |report| report[:diagnostics] }
    -  phase_reports = phase_reports_for(recipe_reports)
    -  decision_evaluations = recipe_reports.map { |report| report.fetch(:decision_evaluation) }
    -  prompt_requests = decision_evaluations.filter_map { |decision| decision[:prompt] if decision[:prompt_required] }
    -  unless plugin_registry.configured_plugins.empty?
    -    diagnostics << plugin_lifecycle_diagnostic(
    -      plugin_registry,
    -      callbacks_run: false,
    -      active_runner_phases: []
    -    )
    -  end
    -  run_stats = recipe_run_stats(recipe_reports, diagnostics: diagnostics)
    +def readme_destination_front_sections(destination_content)
    +  sections = markdown_sections(destination_content)
    +  h1 = sections.find { |section| section.fetch(:level) == 1 }
    +  synopsis = sections.find { |section| section.fetch(:level) == 2 && section.fetch(:base) == "synopsis" }
    +  return [] unless h1 && synopsis
     
    -  {
    -    mode: "plan",
    -    ready: true,
    -    facts: facts,
    -    recipe_pack: pack,
    -    recipe_reports: recipe_reports,
    -    phase_reports: phase_reports,
    -    decision_policy: decision_policy.to_h,
    -    template_selection: template_selection,
    -    git_preflight: git_preflight,
    -    decision_evaluations: decision_evaluations,
    -    prompt_requests: prompt_requests,
    -    changed_files: changed_files,
    -    diagnostics: diagnostics,
    -    run_stats: run_stats
    -  }
    +  sections.select do |section|
    +    section.fetch(:level) == 2 &&
    +      section.fetch(:start) > h1.fetch(:start) &&
    +      section.fetch(:end) < synopsis.fetch(:start) &&
    +      readme_front_section_preserved?(section)
    +  end
     end
    @@ -37588,9 +52905,9 @@

    -

    +

    - .plan_readme_style(project_root, env: ENV) ⇒ Object + .readme_dev_test_stack_table(package_name) ⇒ Object @@ -37602,57 +52919,57 @@

     
     
    -3456
    -3457
    -3458
    -3459
    -3460
    -3461
    -3462
    -3463
    -3464
    -3465
    -3466
    -3467
    -3468
    -3469
    -3470
    -3471
    -3472
    -3473
    -3474
    -3475
    -3476
    -3477
    -3478
    -3479
    +10141 +10142 +10143 +10144 +10145 +10146 +10147 +10148 +10149 +10150 +10151 +10152 +10153 +10154 +10155 +10156 +10157 +10158 +10159 +10160 +10161 +10162 +10163 +10164 -
    # File 'lib/kettle/jem.rb', line 3456
    +      
    # File 'lib/kettle/jem.rb', line 10141
     
    -def plan_readme_style(project_root, env: ENV)
    -  facts = discover_facts(project_root, env: env)
    -  config = kettle_jem_config(project_root)
    -  readme_style = facts[:readme_style] ||
    -    readme_style_facts(
    -      project_root,
    -      config,
    -      facts.fetch(:license, {}),
    -      template_profile: facts[:template_profile],
    -      repository: facts[:repository]
    -    )
    -  original_path = File.join(project_root, "README.md")
    -  original = File.exist?(original_path) ? File.read(original_path) : ""
    -  final_content = render_thin_readme(facts, readme_style, original, readme_preserve_config(config))
    +def readme_dev_test_stack_table(package_name)
    +  rows = README_DEV_TEST_STACK_GEMS.reject { |gem| gem.fetch(:name) == package_name.to_s }.map do |gem|
    +    name = gem.fetch(:name)
    +    bestgems_url = "https://bestgems.org/gems/#{name}"
    +    badge_url = "https://img.shields.io/gem/rd/#{name}.svg?style=flat-square"
    +    [
    +      "| [#{name}](#{bestgems_url})",
    +      "[GitHub](#{gem.fetch(:repo)})",
    +      gem.fetch(:role),
    +      "[![Daily download rank for #{name}](#{badge_url})](#{bestgems_url}) |"
    +    ].join(" | ")
    +  end
     
    -  {
    -    mode: "plan",
    -    readme_path: "README.md",
    -    changed: final_content != original,
    -    readme_style: readme_style,
    -    final_content: final_content,
    -    diagnostics: []
    -  }
    +  [
    +    '<details markdown="1">',
    +    "<summary>How kettle-dev manages complexity in tests</summary>",
    +    "",
    +    "| Gem | Source | Role | Daily download rank |",
    +    "|-----|--------|------|---------------------|",
    +    *rows,
    +    "",
    +    "</details>"
    +  ].join("\n")
     end
    @@ -37660,9 +52977,9 @@

    -

    +

    - .plugin_lifecycle_diagnostic(plugin_registry, callbacks_run:, active_runner_phases:) ⇒ Object + .readme_disabled_integrations(readme, integration_disabled: []) ⇒ Object @@ -37674,43 +52991,31 @@

     
     
    -7677
    -7678
    -7679
    -7680
    -7681
    -7682
    -7683
    -7684
    -7685
    -7686
    -7687
    -7688
    -7689
    -7690
    -7691
    -7692
    -7693
    +12545 +12546 +12547 +12548 +12549 +12550 +12551 +12552 +12553 +12554 +12555 -
    # File 'lib/kettle/jem.rb', line 7677
    +      
    # File 'lib/kettle/jem.rb', line 12545
     
    -def plugin_lifecycle_diagnostic(plugin_registry, callbacks_run:, active_runner_phases:)
    -  {
    -    kind: "plugin_lifecycle",
    -    configured_plugins: plugin_registry.configured_plugins,
    -    loaded_plugins: plugin_registry.loaded_plugins,
    -    load_errors: plugin_registry.load_errors,
    -    registered_hooks: plugin_registry.hooks.map do |hook|
    -      {
    -        plugin_name: hook.plugin_name,
    -        phase: hook.phase.to_s,
    -        timing: hook.timing.to_s
    -      }
    -    end,
    -    callbacks_run: callbacks_run,
    -    active_runner_phases: active_runner_phases.map(&:to_s)
    -  }
    +def readme_disabled_integrations(readme, integration_disabled: [])
    +  disabled = []
    +  disabled.concat(Array(integration_disabled).map(&:to_s))
    +  integrations = readme["integrations"].is_a?(Hash) ? readme["integrations"] : {}
    +  badges = readme["badges"].is_a?(Hash) ? readme["badges"] : {}
    +  integrations.each do |name, value|
    +    disabled << name.to_s if falsey_config?(value)
    +  end
    +  disabled.concat(Array(badges["disabled"]).map(&:to_s))
    +  disabled.map { |name| normalize_integration_name(name) }.uniq & README_INTEGRATIONS
     end
    @@ -37718,9 +53023,9 @@

    -

    +

    - .plugin_names_from_config(config) ⇒ Object + .readme_extra_preserved_sections_by_anchor(destination_sections, template_bases, preserve_targets) ⇒ Object @@ -37732,30 +53037,40 @@

     
     
    -7665
    -7666
    -7667
    -7668
    -7669
    -7670
    -7671
    -7672
    -7673
    -7674
    -7675
    +12757 +12758 +12759 +12760 +12761 +12762 +12763 +12764 +12765 +12766 +12767 +12768 +12769 +12770 +12771 +12772 -
    # File 'lib/kettle/jem.rb', line 7665
    +      
    # File 'lib/kettle/jem.rb', line 12757
     
    -def plugin_names_from_config(config)
    -  raw = config.is_a?(Hash) ? config["plugins"] : nil
    -  case raw
    -  when Hash
    -    raw.each_with_object([]) do |(name, enabled), names|
    -      names << name unless falsey_config?(enabled)
    +def readme_extra_preserved_sections_by_anchor(destination_sections, template_bases, preserve_targets)
    +  destination_sections.each_with_index.each_with_object({}) do |(section, index), result|
    +    base = section.fetch(:base)
    +    next if template_bases.include?(base)
    +    next unless preserve_targets.include?(base)
    +    next if readme_section_has_preserved_ancestor?(destination_sections, index, preserve_targets)
    +
    +    anchor = destination_sections[0...index].reverse.find do |candidate|
    +      template_bases.include?(candidate.fetch(:base))
         end
    -  else
    -    raw
    +    next unless anchor
    +
    +    result[anchor.fetch(:base)] ||= []
    +    result[anchor.fetch(:base)] << section
       end
     end
    @@ -37764,9 +53079,9 @@

    -

    +

    - .plugin_registry_for_project(project_root) ⇒ Object + .readme_family_intro_and_backend_matrix(readme_style = {}) ⇒ Object @@ -37775,40 +53090,54 @@

    @@ -37816,9 +53145,9 @@

    -

    +

    - .polyform_licenses?(licenses) ⇒ Boolean + .readme_floss_funding_enabled?(license, config_value) ⇒ Boolean @@ -37853,15 +53182,21 @@

     
     
    -9728
    -9729
    -9730
    +12538 +12539 +12540 +12541 +12542 +12543

    @@ -37869,9 +53204,9 @@

    -

    +

    - .post_apply_steps(project_root, report) ⇒ Object + .readme_fossa_project(readme, repository) ⇒ Object @@ -37883,23 +53218,51 @@

     
     
    -3151
    -3152
    -3153
    -3154
    -3155
    -3156
    -3157
    +12467 +12468 +12469 +12470 +12471 +12472 +12473 +12474 +12475 +12476 +12477 +12478 +12479 +12480 +12481 +12482 +12483 +12484 +12485 +12486 +12487

    @@ -37907,9 +53270,9 @@

    -

    +

    - .postprocess_readme_content(content, facts, project_root: nil) ⇒ Object + .readme_fossa_template_tokens(readme_style) ⇒ Object @@ -37921,47 +53284,35 @@

     
     
    -4376
    -4377
    -4378
    -4379
    -4380
    -4381
    -4382
    -4383
    -4384
    -4385
    -4386
    -4387
    -4388
    -4389
    -4390
    -4391
    -4392
    -4393
    -4394
    +10176 +10177 +10178 +10179 +10180 +10181 +10182 +10183 +10184 +10185 +10186 +10187 +10188

    @@ -37969,83 +53320,52 @@

    -

    +

    - .preferred_template_source(template_root, configured_source, opencollective_disabled: false) ⇒ Object + .readme_front_section_preserved?(section) ⇒ Boolean -

    -
    -
    -
    -7650
    -7651
    -7652
    -7653
    -7654
    -7655
    -7656
    -7657
    -7658
    -7659
    -7660
    -7661
    -7662
    -7663
    +
    +
    +
    +10326
    +10327
    +10328
    +10329
    +10330
    +10331
    +10332
    +10333
    +10334
    +10335
    +10336
    +10337
    +10338
    +10339
    +10340
    +10341
    +10342
    +10343
    +10344
    +10345
    +10346
    -
    # File 'lib/kettle/jem.rb', line 7650
    +      
    # File 'lib/kettle/jem.rb', line 10326
     
    -def plugin_registry_for_project(project_root)
    -  plugin_names = PluginLoader.normalize_plugin_names(plugin_names_from_config(kettle_jem_config(project_root)))
    -  registry = PluginRegistry.new(configured_plugins: plugin_names)
    -  plugin_names.each do |plugin_name|
    -    PluginLoader.load_plugin!(plugin_name, registry: registry)
    -    registry.loaded_plugins << plugin_name
    -  rescue Error => e
    -    registry.load_errors << {
    -      plugin_name: plugin_name,
    -      message: e.message
    -    }
    -  end
    -  registry
    +def readme_family_intro_and_backend_matrix(readme_style = {})
    +  return "" unless readme_style.is_a?(Hash) && readme_style[:package_family].to_s == "structuredmerge"
    +
    +  [
    +    "<details markdown=\"1\">",
    +    "<summary>StructuredMerge package family</summary>",
    +    "",
    +    "This gem is part of the StructuredMerge Ruby package family. The implementation inventory, layering model, and backend notes live in the [root package-family guide][sm-family-guide]. Shared behavior is defined by the [StructuredMerge fixtures][sm-family-fixtures] and implemented by the [Go][sm-family-go], [Ruby][sm-family-ruby], [Rust][sm-family-rust], and [TypeScript][sm-family-typescript] repositories.",
    +    "",
    +    "Merge analysis must enter parsing through `tree_haver`. Parser-specific gems register concrete TreeHaver backends; substrate gems register grammar mappings and keep shared format or language merge behavior in one place. Missing backends fail closed instead of falling back to direct parser-library calls.",
    +    "",
    +    "</details>",
    +    "",
    +    "[sm-family-guide]: https://github.com/structuredmerge/structuredmerge-ruby#package-family",
    +    "[sm-family-fixtures]: https://github.com/structuredmerge/structuredmerge-fixtures",
    +    "[sm-family-go]: https://github.com/structuredmerge/structuredmerge-go",
    +    "[sm-family-ruby]: https://github.com/structuredmerge/structuredmerge-ruby",
    +    "[sm-family-rust]: https://github.com/structuredmerge/structuredmerge-rust",
    +    "[sm-family-typescript]: https://github.com/structuredmerge/structuredmerge-typescript"
    +  ].join("\n")
     end
    -
    # File 'lib/kettle/jem.rb', line 9728
    +      
    # File 'lib/kettle/jem.rb', line 12538
     
    -def polyform_licenses?(licenses)
    -  licenses.any? { |license| license.to_s.start_with?("PolyForm-") }
    +def readme_floss_funding_enabled?(license, config_value)
    +  return false if falsey_config?(config_value)
    +  return true if %w[true yes 1 always enabled].include?(config_value.to_s.strip.downcase)
    +
    +  Array(license[:spdx]).map(&:to_s).include?("MIT")
     end
    -
    # File 'lib/kettle/jem.rb', line 3151
    +      
    # File 'lib/kettle/jem.rb', line 12467
     
    -def post_apply_steps(project_root, report)
    -  [
    -    template_version_gem_bootstrap_step(project_root, report),
    -    monorepo_root_gemfile_dependency_sync_step(project_root, report),
    -    monorepo_subgem_kettle_config_profile_sync_step(project_root, report)
    -  ].compact
    +def readme_fossa_project(readme, repository)
    +  badges = readme["badges"].is_a?(Hash) ? readme["badges"] : {}
    +  return "" unless badges.key?("fossa")
    +
    +  value = badges["fossa"]
    +  return "" if falsey_config?(value)
    +
    +  project = case value
    +  when Hash
    +    return "" if falsey_config?(value["enabled"])
    +
    +    value["project"] || value["project_id"] || value["slug"]
    +  else
    +    value
    +  end
    +  normalized = project.to_s.strip
    +  return normalized unless normalized.empty? || %w[true yes 1 on enabled].include?(normalized.downcase)
    +
    +  slug = repository.is_a?(Hash) ? repository[:slug].to_s : ""
    +  slug.empty? ? "" : "git+github.com/#{slug}"
     end
    -
    # File 'lib/kettle/jem.rb', line 4376
    +      
    # File 'lib/kettle/jem.rb', line 10176
     
    -def postprocess_readme_content(content, facts, project_root: nil)
    -  return content unless facts
    +def readme_fossa_template_tokens(readme_style)
    +  project = readme_style.fetch(:fossa_project, "").to_s
    +  return {"KJ|README:FOSSA_BADGE" => "", "KJ|README:FOSSA_REFS" => ""} if project.empty?
     
    -  processed = ReadmePostProcessor.process(
    -    content: content,
    -    min_ruby: minimum_ruby_token(facts.dig(:rubygems, :min_ruby)),
    -    engines: facts.dig(:rubygems, :engines)
    -  )
    -  processed = normalize_readme_project_heading(processed, facts)
    -  processed = normalize_readme_synopsis_heading(processed, facts)
    -  processed = apply_readme_conditional_blocks(processed, facts)
    -  processed = apply_readme_badge_policy(processed, facts)
    -  processed = prune_unused_readme_logo_link_definitions(processed)
    -  processed = apply_readme_kloc_badge(processed, facts, project_root)
    -  processed = apply_monorepo_subgem_thin_readme_projection(processed, facts)
    -  processed = apply_monorepo_subgem_readme_recipe(processed, facts)
    -  processed = replace_existing_markdown_managed_block(processed, "kettle-jem:metadata", (facts))
    -  normalize_readme_blank_line_runs(processed)
    +  encoded_project = URI.encode_www_form_component(project)
    +  {
    +    "KJ|README:FOSSA_BADGE" => README_FOSSA_BADGE,
    +    "KJ|README:FOSSA_REFS" => [
    +      "[🧪fossa]: https://app.fossa.com/projects/#{encoded_project}?ref=badge_shield",
    +      "[🧪fossa-img]: https://app.fossa.com/api/projects/#{encoded_project}.svg?type=shield"
    +    ].join("\n")
    +  }
     end
    - - - - -
    -
    -
    +
    +
    + -10652 -10653 -10654 -10655 -10656 -10657 -10658 -10659
    -
    -
    # File 'lib/kettle/jem.rb', line 10652
     
    -def preferred_template_source(template_root, configured_source, opencollective_disabled: false)
    -  base = configured_source.sub(/\.example\z/, "")
    -  candidates = []
    -  candidates << "#{base}.no-osc.example" if opencollective_disabled && base != "README.md"
    -  candidates << "#{base}.example"
    -  candidates << configured_source
    -  candidates.find { |relative_path| File.exist?(File.join(template_root, relative_path)) }
    -end
    -
    +
    - -
    -

    +
    - .preferred_template_token_value(derived_value, config_value, env, env_key) ⇒ Object +

    Returns:

    +
      - +
    • + + + (Boolean) + + + +
    • +
    - -

    +
    @@ -38053,9 +53373,9 @@

    -

    +

    - .preflight_project!(project_root) ⇒ Object + .readme_h2_synopsis_logo_entries(config, org:, gem_name:, repository: {}) ⇒ Object @@ -38067,21 +53387,23 @@

     
     
    -7558
    -7559
    -7560
    -7561
    -7562
    -7563
    +11832 +11833 +11834 +11835 +11836 +11837 +11838

    @@ -38089,9 +53411,9 @@

    -

    +

    - .preflight_ruby_syntax!(project_root, path) ⇒ Object + .readme_h2_synopsis_logo_options(config) ⇒ Object @@ -38103,31 +53425,15 @@

     
     
    -7594
    -7595
    -7596
    -7597
    -7598
    -7599
    -7600
    -7601
    -7602
    -7603
    -7604
    +11740 +11741 +11742

    @@ -38135,9 +53441,9 @@

    -

    +

    - .prepare_github_workflow_template(content, recipe, facts) ⇒ Object + .readme_h2_synopsis_logo_row(entries) ⇒ Object @@ -38149,21 +53455,21 @@

     
     
    -4341
    -4342
    -4343
    -4344
    -4345
    -4346
    +11984 +11985 +11986 +11987 +11988 +11989

    @@ -38171,9 +53477,9 @@

    -

    +

    - .prepare_readme_template(content, readme_style) ⇒ Object + .readme_h2_synopsis_logo_specs(config) ⇒ Object @@ -38185,43 +53491,49 @@

     
     
    -4683
    -4684
    -4685
    -4686
    -4687
    -4688
    -4689
    -4690
    -4691
    -4692
    -4693
    -4694
    -4695
    -4696
    -4697
    -4698
    -4699
    +11744 +11745 +11746 +11747 +11748 +11749 +11750 +11751 +11752 +11753 +11754 +11755 +11756 +11757 +11758 +11759 +11760 +11761 +11762 +11763

    @@ -38229,9 +53541,9 @@

    -

    +

    - .present_template_token_value?(value) ⇒ Boolean + .readme_integration_configured?(project_root, integration) ⇒ Boolean @@ -38266,79 +53578,59 @@

     
     
    -8205
    -8206
    -8207
    -8208
    - -

    - -
     
     
    -8194
    -8195
    -8196
    -8197
    -8198
    -8199
    -8200
    -8201
    -8202
    -8203
    +12715 +12716 +12717
    -
    # File 'lib/kettle/jem.rb', line 8194
    -
    -def preferred_template_token_value(derived_value, config_value, env, env_key)
    -  env_clean = env[env_key].to_s.strip
    -  return env_clean if present_template_token_value?(env_clean)
    +      
    # File 'lib/kettle/jem.rb', line 12715
     
    -  config_clean = config_value.to_s.strip
    -  return config_clean if present_template_token_value?(config_clean)
    -  return unless present_template_token_value?(derived_value)
    -
    -  derived_value.to_s.strip
    +def readme_front_section_preserved?(section)
    +  section.fetch(:base) == "important" || readme_section_contains_badge_cloud?(section)
     end
    -
    # File 'lib/kettle/jem.rb', line 7558
    +      
    # File 'lib/kettle/jem.rb', line 11832
     
    -def preflight_project!(project_root)
    -  paths = Dir.glob(File.join(project_root, "*.gemspec")).sort
    -  gemfile_path = File.join(project_root, "Gemfile")
    -  paths << gemfile_path if File.exist?(gemfile_path)
    -  paths.each { |path| preflight_ruby_syntax!(project_root, path) }
    +def readme_h2_synopsis_logo_entries(config, org:, gem_name:, repository: {})
    +  entries = readme_h2_synopsis_logo_specs(config).filter_map do |spec|
    +    readme_top_logo_entry_from_option(spec.fetch(:type), org: org, gem_name: gem_name, repository: repository)&.merge(width: spec[:width])
    +  end
    +  entries = deduplicate_readme_top_logo_entries(entries)
    +  readme_top_logo_entries_with_asset_size(entries)
     end
    -
    # File 'lib/kettle/jem.rb', line 7594
    +      
    # File 'lib/kettle/jem.rb', line 11740
     
    -def preflight_ruby_syntax!(project_root, path)
    -  if defined?(RubyVM::InstructionSequence)
    -    RubyVM::InstructionSequence.compile_file(path)
    -  else
    -    _stdout, stderr, status = Open3.capture3(RbConfig.ruby, "-c", path)
    -    raise SyntaxError, stderr unless status.success?
    -  end
    -rescue SyntaxError => e
    -  relative_path = path.delete_prefix("#{project_root}/")
    -  raise Error, "Preflight failed for #{relative_path}: #{e.message}"
    +def readme_h2_synopsis_logo_options(config)
    +  readme_h2_synopsis_logo_specs(config).map { |spec| spec.fetch(:type) }
     end
    -
    # File 'lib/kettle/jem.rb', line 4341
    -
    -def prepare_github_workflow_template(content, recipe, facts)
    -  return content unless recipe.fetch(:target_path).to_s == ".github/workflows/framework-ci.yml"
    -  return content if facts.to_h.dig(:ci, :framework_matrix).to_h.empty?
    +      
    # File 'lib/kettle/jem.rb', line 11984
     
    -  synchronize_github_actions_framework_ci(content, facts)
    +def readme_h2_synopsis_logo_row(entries)
    +  default_width = readme_default_logo_width(entries, one: "10%", two: "8%")
    +  entries.map do |entry|
    +    readme_logo_html(entry, align: "right", width: entry[:width] || default_width)
    +  end.join(" ")
     end
    -
    # File 'lib/kettle/jem.rb', line 4683
    +      
    # File 'lib/kettle/jem.rb', line 11744
     
    -def prepare_readme_template(content, readme_style)
    -  style = readme_style || {}
    -  prepared = prune_readme_integration_badges(content, style)
    -  if style[:workflow_paths]
    -    prepared = ReadmePostProcessor.process(
    -      content: prepared,
    -      min_ruby: "0",
    -      workflow_paths: style[:workflow_paths]
    -    )
    +def readme_h2_synopsis_logo_specs(config)
    +  readme_config = readme_config_hash(config)
    +  h2_synopsis_logos = readme_config["h2_synopsis_logos"]
    +  normalized = normalized_readme_logo_specs(h2_synopsis_logos)
    +  return normalized unless normalized.empty?
    +
    +  raw_top_logos = readme_config["top_logos"] || readme_config["top_logo_options"]
    +  normalized_top_logos = normalized_readme_logo_specs(raw_top_logos)
    +  synopsis_from_top_logos = normalized_top_logos.select { |spec| README_H2_SYNOPSIS_LOGO_DEFAULTS.include?(spec.fetch(:type)) }
    +  return synopsis_from_top_logos unless synopsis_from_top_logos.empty?
    +
    +  legacy_mode = readme_config["top_logo_mode"].to_s.strip.downcase.tr("-", "_")
    +  legacy_options = README_TOP_LOGO_LEGACY_MODE_MAP[legacy_mode]
    +  synopsis_from_legacy = Array(legacy_options).filter_map do |option|
    +    {type: option, width: nil} if README_H2_SYNOPSIS_LOGO_DEFAULTS.include?(option)
       end
    -  prepared = prune_missing_workflow_link_definitions(prepared, style[:workflow_paths]) if style[:workflow_paths]
    -  prepared = ReadmePostProcessor.prune_orphaned_workflow_inline_references(prepared) if style[:workflow_paths]
    -  omitted_sections = Array(style[:omitted_sections]).map(&:to_s)
    -  omitted_sections << "security" if style.key?(:security_enabled) && !style[:security_enabled]
    -  omitted_sections << "floss_funding" if style.key?(:floss_funding_enabled) && !style[:floss_funding_enabled]
    -  remove_readme_sections(prepared, omitted_sections.map { |section| section.tr("_", " ") })
    +  return synopsis_from_legacy unless synopsis_from_legacy.empty?
    +
    +  raw_top_logos ? [] : README_H2_SYNOPSIS_LOGO_DEFAULTS.map { |option| {type: option, width: nil} }
     end
    -
    # File 'lib/kettle/jem.rb', line 8205
    -
    -def present_template_token_value?(value)
    -  clean = value.to_s.strip
    -  !clean.empty? && !token_placeholder?(clean)
    -end
    -
    -
    - -
    -

    - - .preserve_gemspec_dependency_lines(template_content, destination_content, template_receiver:, destination_receiver:) ⇒ Object - - - - - -

    - - @@ -38346,9 +53638,9 @@

    -

    +

    - .preserve_gemspec_freeze_blocks(content, destination_content, facts:, receiver:) ⇒ Object + .readme_integration_project_root(project_root, template_profile, repository) ⇒ Object @@ -38360,45 +53652,19 @@

     
     
    -6303
    -6304
    -6305
    -6306
    -6307
    -6308
    -6309
    -6310
    -6311
    -6312
    -6313
    -6314
    -6315
    -6316
    -6317
    -6318
    -6319
    -6320
    +12489 +12490 +12491 +12492 +12493

    @@ -38406,9 +53672,9 @@

    -

    +

    - .preserve_github_workflow_project_settings(recipe, content, destination_content, project_root:) ⇒ Object + .readme_kloc_from_changelog(project_root, version) ⇒ Object @@ -38420,31 +53686,25 @@

    -4348 -4349 -4350 -4351 -4352 -4353 -4354 -4355 -4356 -4357 -4358 +4942 +4943 +4944 +4945 +4946 +4947 +4948 +4949

    @@ -38452,9 +53712,9 @@

    -

    +

    - .preserve_mise_project_settings(recipe, content, destination_content, project_root:) ⇒ Object + .readme_license_intro(licenses, author_email: nil) ⇒ Object @@ -38466,27 +53726,31 @@

     
     
    -4286
    -4287
    -4288
    -4289
    -4290
    -4291
    -4292
    -4293
    -4294
    +12219 +12220 +12221 +12222 +12223 +12224 +12225 +12226 +12227 +12228 +12229

    @@ -38494,9 +53758,9 @@

    -

    +

    - .preserve_readme_front_sections(template_content, destination_content) ⇒ Object + .readme_license_refs(expression, compat_category) ⇒ Object @@ -38508,41 +53772,29 @@

     
     
    -9986
    -9987
    -9988
    -9989
    -9990
    -9991
    -9992
    -9993
    -9994
    -9995
    -9996
    -9997
    -9998
    -9999
    -10000
    -10001
    +12248 +12249 +12250 +12251 +12252 +12253 +12254 +12255 +12256 +12257

    @@ -38550,9 +53802,9 @@

    -

    +

    - .preserve_readme_h1(merged_content, destination_content, preserve_config) ⇒ Object + .readme_logo_config_value(spec) ⇒ Object @@ -38564,31 +53816,17 @@

     
     
    -10075
    -10076
    -10077
    -10078
    -10079
    -10080
    -10081
    -10082
    -10083
    -10084
    -10085
    +8705 +8706 +8707 +8708

    @@ -38596,9 +53834,9 @@

    -

    +

    - .preserve_readme_managed_block(merged_content, destination_content, marker) ⇒ Object + .readme_logo_facts(config, package_name:, github_org:, repository: {}) ⇒ Object @@ -38610,21 +53848,53 @@

     
     
    -10087
    -10088
    -10089
    -10090
    -10091
    -10092
    +11713 +11714 +11715 +11716 +11717 +11718 +11719 +11720 +11721 +11722 +11723 +11724 +11725 +11726 +11727 +11728 +11729 +11730 +11731 +11732 +11733 +11734

    @@ -38632,9 +53902,9 @@

    -

    +

    - .preserve_readme_sections(template_content, destination_content, preserve_config) ⇒ Object + .readme_logo_html(entry, align:, width: nil) ⇒ Object @@ -38646,75 +53916,27 @@

     
     
    -10025
    -10026
    -10027
    -10028
    -10029
    -10030
    -10031
    -10032
    -10033
    -10034
    -10035
    -10036
    -10037
    -10038
    -10039
    -10040
    -10041
    -10042
    -10043
    -10044
    -10045
    -10046
    -10047
    -10048
    -10049
    -10050
    -10051
    -10052
    -10053
    -10054
    -10055
    -10056
    -10057
    +12004 +12005 +12006 +12007 +12008 +12009 +12010 +12011 +12012

    @@ -38722,9 +53944,9 @@

    -

    +

    - .previous_nonblank_line_number(content, line_number) ⇒ Object + .readme_logo_options_from_config(config, primary_key, secondary_key, defaults) ⇒ Object @@ -38736,21 +53958,15 @@

     
     
    -11075
    -11076
    -11077
    -11078
    -11079
    -11080
    +11765 +11766 +11767

    @@ -38758,9 +53974,9 @@

    -

    +

    - .prism_parse_success(content) ⇒ Object + .readme_logo_specs_from_config(config, primary_key, secondary_key, defaults) ⇒ Object @@ -38772,17 +53988,43 @@

     
     
    -5423
    -5424
    -5425
    -5426
    +11769 +11770 +11771 +11772 +11773 +11774 +11775 +11776 +11777 +11778 +11779 +11780 +11781 +11782 +11783 +11784 +11785

    @@ -38790,9 +54032,9 @@

    -

    +

    - .prism_ruby_merge_options(recipe) ⇒ Object + .readme_logo_template_tokens(readme_logo) ⇒ Object @@ -38804,22 +54046,22 @@

     
     
    -5135
    -5136
    -5137
    -5138
    -5139
    -5140
    -5141
    +12018 +12019 +12020 +12021 +12022 +12023 +12024

    @@ -38828,60 +54070,67 @@

    -

    - - .process_result_adapter_failure?(merge_result) ⇒ Boolean +

    - + .readme_metadata_block(facts) ⇒ Object -

    -
    - - -
    -
    -
    - -

    Returns:

    -
      - -
    • - - - (Boolean) - - - -
    • -
    - -

    -
    -
    -
    -6283
    -6284
    -6285
    -6286
    -6287
    -6288
    -6289
    -6290
    -6291
    -6292
    -6293
    -6294
    -6295
    -6296
    -6297
    -6298
    -6299
    -6300
    -6301
    +12622 +12623 +12624 +12625 +12626 +12627 +12628 +12629 +12630 +12631 +12632 +12633 +12634 +12635 +12636 +12637 +12638 +12639 +12640 +12641 +12642 +12643 +12644 +12645 +12646
    -
    # File 'lib/kettle/jem.rb', line 6283
    +      
    # File 'lib/kettle/jem.rb', line 12622
     
    -def preserve_gemspec_dependency_lines(template_content, destination_content, template_receiver:, destination_receiver:)
    -  template_dependencies = gemspec_dependency_line_index(template_content, receiver: template_receiver)
    -  destination_dependencies = gemspec_dependency_line_index(destination_content, receiver: destination_receiver)
    -    .transform_values do |source|
    -      normalize_gemspec_receiver(source, from: destination_receiver, to: template_receiver)
    -    end
    -  destination_dependencies = destination_dependencies.reject do |key, _source|
    -    retired_gemspec_development_dependency_key?(key)
    +def readme_integration_configured?(project_root, integration)
    +  case integration
    +  when "codecov"
    +    File.exist?(File.join(project_root, ".codecov.yml")) ||
    +      File.exist?(File.join(project_root, "codecov.yml")) ||
    +      github_workflows_include?(project_root, "codecov/codecov-action")
    +  when "coveralls"
    +    File.exist?(File.join(project_root, ".coveralls.yml")) ||
    +      github_workflows_include?(project_root, "coverallsapp/github-action")
    +  when "qlty"
    +    File.exist?(File.join(project_root, ".qlty/qlty.toml")) ||
    +      File.exist?(File.join(project_root, ".qlty.yml")) ||
    +      github_workflows_include?(project_root, "qltysh/qlty-action")
    +  when "codeql"
    +    File.exist?(File.join(project_root, ".github/workflows/codeql.yml")) ||
    +      File.exist?(File.join(project_root, ".github/workflows/codeql-analysis.yml")) ||
    +      github_workflows_include?(project_root, "github/codeql-action")
    +  when "skywalking-eyes"
    +    File.exist?(File.join(project_root, ".github/workflows/license-eye.yml")) ||
    +      File.exist?(File.join(project_root, ".github/workflows/license-eye.yaml")) ||
    +      github_workflows_include?(project_root, "apache/skywalking-eyes/dependency")
    +  else
    +    false
       end
    -  return template_content if destination_dependencies.empty?
    -
    -  replacements, additions = destination_dependencies.partition do |key, source|
    -    template_dependencies.key?(key) &&
    -      gemspec_dependency_source_newer?(source, template_dependencies.fetch(key), receiver: template_receiver)
    -  end.map(&:to_h)
    -
    -  merged = replace_matching_gemspec_dependency_lines(template_content, replacements, receiver: template_receiver)
    -  append_missing_gemspec_dependency_lines(merged, additions, receiver: template_receiver)
     end
    -
    # File 'lib/kettle/jem.rb', line 6303
    -
    -def preserve_gemspec_freeze_blocks(content, destination_content, facts:, receiver:)
    -  blocks = freeze_marker_blocks(destination_content, freeze_token: facts.to_h.dig(:project_runtime, :freeze_token))
    -  return content if blocks.empty?
    +      
    # File 'lib/kettle/jem.rb', line 12489
     
    -  merged = content.to_s
    -  blocks.each do |block|
    -    next if merged.include?(block.join)
    +def readme_integration_project_root(project_root, template_profile, repository)
    +  return project_root unless repository_monorepo_subproject?(repository)
     
    -    insertion = "\n#{block.join}\n"
    -    require_paths = gemspec_assignment_records(merged, receiver: receiver).find { |record| record.fetch(:field) == "require_paths" }
    -    merged = if require_paths
    -      insert_lines_before(merged, require_paths.fetch(:start_line), insertion)
    -    else
    -      insert_lines_before(merged, gemspec_end_line(merged), insertion)
    -    end
    -  end
    -  ensure_trailing_newline(merged.gsub(/\n{3,}/, "\n\n"))
    +  Array(repository && repository[:local_root]).find { |path| !path.to_s.empty? } || project_root
     end
    -
    # File 'lib/kettle/jem.rb', line 4348
    +      
    # File 'lib/kettle/jem.rb', line 4942
     
    -def preserve_github_workflow_project_settings(recipe, content, destination_content, project_root:)
    -  return content unless recipe.fetch(:target_path).to_s == ".github/workflows/coverage.yml"
    +def readme_kloc_from_changelog(project_root, version)
    +  return if project_root.to_s.empty? || version.to_s.empty?
     
    -  thresholds = coverage_thresholds_from_project_mise(project_root)
    -  thresholds = coverage_thresholds_from_yaml_workflow(destination_content) if thresholds.empty?
    -  preserved = content
    -  thresholds.each do |key, value|
    -    preserved = replace_yaml_scalar_line(preserved, key, value)
    -  end
    -  preserved
    +  changelog_path = File.join(project_root, "CHANGELOG.md")
    +  return unless File.file?(changelog_path)
    +
    +  changelog_coverage_kloc(current_changelog_version_section(File.read(changelog_path), version))
     end
    -
    # File 'lib/kettle/jem.rb', line 4286
    +      
    # File 'lib/kettle/jem.rb', line 12219
     
    -def preserve_mise_project_settings(recipe, content, destination_content, project_root:)
    -  return content unless recipe.fetch(:target_path).to_s == "mise.toml"
    +def readme_license_intro(licenses, author_email: nil)
    +  return mit_readme_license_intro if licenses == ["MIT"]
     
    -  thresholds = coverage_thresholds_from_mise(destination_content)
    -  thresholds = coverage_thresholds_from_workflow(project_root) if thresholds.empty?
    -  thresholds.reduce(content.to_s) do |preserved, (key, value)|
    -    replace_toml_string_scalar_line(preserved, key, value)
    -  end
    +  intro = "The gem is available under the following license#{"s" if licenses.size > 1}: " \
    +    "#{licenses.map { |license| license_link(license) }.join(", ")}.\n" \
    +    "See [LICENSE.md][#{paperclip_ref(:license)}] for details."
    +  intro += "\n\n#{license_contact_line(author_email, context: :readme)}" if non_mit_licenses?(licenses)
    +  guide_table = license_use_case_guide_table(licenses, author_email: author_email)
    +  intro += "\n\n### License use-case guide\n\n#{guide_table}" if guide_table
    +  intro
     end
    -
    # File 'lib/kettle/jem.rb', line 9986
    +      
    # File 'lib/kettle/jem.rb', line 12248
     
    -def preserve_readme_front_sections(template_content, destination_content)
    -  front_sections = readme_destination_front_sections(destination_content)
    -  return template_content if front_sections.empty?
    -
    -  template_sections = markdown_sections(template_content)
    -  template_h1 = template_sections.find { |section| section.fetch(:level) == 1 }
    -  insert_before = template_sections.find do |section|
    -    section.fetch(:level) == 2 && section.fetch(:start) > template_h1.to_h.fetch(:start, -1)
    -  end
    -  return template_content unless insert_before
    -
    -  lines = template_content.split("\n", -1)
    -  inserted = front_sections.map { |section| "#{section.fetch(:heading)}\n#{section.fetch(:body).rstrip}" }.join("\n\n")
    -  lines[(template_h1.fetch(:start) + 1)...insert_before.fetch(:start)] = ["", *inserted.split("\n"), ""]
    -  lines.join("\n")
    +def readme_license_refs(expression, compat_category)
    +  [
    +    "[#{paperclip_ref(:copyright_notice_explainer)}]: https://opensource.stackexchange.com/questions/5778/why-do-licenses-such-as-the-mit-license-specify-a-single-year",
    +    "[#{paperclip_ref(:license)}]: LICENSE.md",
    +    "[#{paperclip_ref(:license_ref)}]: #{license_badge_ref(expression)}",
    +    "[#{paperclip_ref(:license_img)}]: #{license_badge_img(expression)}",
    +    "[#{paperclip_ref(:license_compat)}]: #{license_compat_ref(compat_category)}",
    +    "[#{paperclip_ref(:license_compat_img)}]: #{license_compat_img(compat_category)}"
    +  ].join("\n")
     end
    -
    # File 'lib/kettle/jem.rb', line 10075
    -
    -def preserve_readme_h1(merged_content, destination_content, preserve_config)
    -  return merged_content if preserve_config.empty?
    -
    -  merged_h1 = markdown_sections(merged_content).find { |section| section.fetch(:level) == 1 }
    -  destination_h1 = markdown_sections(destination_content).find { |section| section.fetch(:level) == 1 }
    -  return merged_content unless merged_h1 && destination_h1
    +      
    # File 'lib/kettle/jem.rb', line 8705
     
    -  lines = merged_content.split("\n", -1)
    -  lines[merged_h1.fetch(:start)] = destination_h1.fetch(:heading)
    -  lines.join("\n")
    +def readme_logo_config_value(spec)
    +  width = spec[:width].to_s
    +  width.empty? ? spec.fetch(:type).tr("_", "-") : "#{spec.fetch(:type).tr("_", "-")}|#{width}"
     end
    -
    # File 'lib/kettle/jem.rb', line 10087
    -
    -def preserve_readme_managed_block(merged_content, destination_content, marker)
    -  destination_block = markdown_managed_block(destination_content, marker)
    -  return merged_content unless destination_block
    +      
    # File 'lib/kettle/jem.rb', line 11713
     
    -  replace_markdown_managed_block(merged_content, marker, destination_block)
    +def readme_logo_facts(config, package_name:, github_org:, repository: {})
    +  top_entries = readme_top_logo_entries(
    +    config,
    +    org: github_org.to_s,
    +    gem_name: package_name.to_s,
    +    repository: repository || {}
    +  )
    +  h2_synopsis_entries = readme_h2_synopsis_logo_entries(
    +    config,
    +    org: github_org.to_s,
    +    gem_name: package_name.to_s,
    +    repository: repository || {}
    +  )
    +  all_entries = deduplicate_readme_top_logo_entries(top_entries + h2_synopsis_entries)
    +  compact_hash(
    +    top_logos: readme_top_logo_options(config).join(","),
    +    h2_synopsis_logos: readme_h2_synopsis_logo_options(config).join(","),
    +    top_logo_row: readme_top_logo_row(top_entries),
    +    h2_synopsis_logo_row: readme_h2_synopsis_logo_row(h2_synopsis_entries),
    +    top_logo_refs: readme_top_logo_refs(all_entries)
    +  )
     end
    -
    # File 'lib/kettle/jem.rb', line 10025
    -
    -def preserve_readme_sections(template_content, destination_content, preserve_config)
    -  template_sections = markdown_sections(template_content)
    -  destination_sections = markdown_sections(destination_content)
    -  destination_lookup = destination_sections.to_h { |section| [section.fetch(:base), section] }
    -  preserve_targets = readme_preserve_targets(template_sections, destination_lookup, preserve_config)
    -  return template_content if preserve_targets.empty?
    -
    -  template_bases = template_sections.map { |section| section.fetch(:base) }.to_set
    -  extra_sections_by_anchor = readme_extra_preserved_sections_by_anchor(
    -    destination_sections,
    -    template_bases,
    -    preserve_targets
    -  )
    -  lines = template_content.split("\n", -1)
    -  template_sections.reverse_each do |section|
    -    base = section.fetch(:base)
    -    extra_sections = extra_sections_by_anchor[base].to_a
    -    next if !preserve_targets.include?(base) && extra_sections.empty?
    +      
    # File 'lib/kettle/jem.rb', line 12004
     
    -    replacement = if preserve_targets.include?(base)
    -      destination_section = destination_lookup[base] ||
    -        aliased_readme_destination_section(base, destination_lookup, preserve_config)
    -      next unless destination_section
    -
    -      "#{section.fetch(:heading)}\n#{destination_section.fetch(:body)}"
    -    else
    -      lines[section.fetch(:start)..section.fetch(:end)].join("\n")
    -    end
    -    replacement = ([replacement] + extra_sections.map { |extra| "#{extra.fetch(:heading)}\n#{extra.fetch(:body)}" }).join("\n")
    -    lines[section.fetch(:start)..section.fetch(:end)] = replacement
    -  end
    -  lines.join("\n")
    +def readme_logo_html(entry, align:, width: nil)
    +  attributes = [
    +    %(alt="#{html_attribute_escape("#{entry[:label]} Logo#{entry[:credit_separator]}#{entry[:credit]}")}"),
    +    %(src="#{html_attribute_escape(entry[:image_url])}")
    +  ]
    +  attributes << %(width="#{html_attribute_escape(width)}") if width
    +  attributes << %(align="#{html_attribute_escape(align)}")
    +  %(<a href="#{html_attribute_escape(entry[:href])}"><img #{attributes.join(" ")}/></a>)
     end
    -
    # File 'lib/kettle/jem.rb', line 11075
    +      
    # File 'lib/kettle/jem.rb', line 11765
     
    -def previous_nonblank_line_number(content, line_number)
    -  lines = content.to_s.lines
    -  cursor = line_number - 2
    -  cursor -= 1 while cursor >= 0 && lines[cursor].strip.empty?
    -  (cursor >= 0) ? cursor + 1 : nil
    +def readme_logo_options_from_config(config, primary_key, secondary_key, defaults)
    +  readme_logo_specs_from_config(config, primary_key, secondary_key, defaults).map { |spec| spec.fetch(:type) }
     end
    -
    # File 'lib/kettle/jem.rb', line 5423
    +      
    # File 'lib/kettle/jem.rb', line 11769
     
    -def prism_parse_success(content)
    -  result = ::Prism.parse(content.to_s)
    -  result if result.success?
    +def readme_logo_specs_from_config(config, primary_key, secondary_key, defaults)
    +  readme_config = readme_config_hash(config)
    +  raw_logos = readme_config[primary_key] || readme_config[secondary_key]
    +  normalized = normalized_readme_logo_specs(raw_logos)
    +  selected = normalized.select { |spec| defaults.include?(spec.fetch(:type)) }
    +  return selected unless selected.empty?
    +  return [] if raw_logos
    +
    +  legacy_mode = readme_config["top_logo_mode"].to_s.strip.downcase.tr("-", "_")
    +  legacy_options = README_TOP_LOGO_LEGACY_MODE_MAP[legacy_mode]
    +  selected_legacy = Array(legacy_options).filter_map do |option|
    +    {type: option, width: nil} if defaults.include?(option)
    +  end
    +  return selected_legacy unless selected_legacy.empty?
    +
    +  defaults.map { |option| {type: option, width: nil} }
     end
    -
    # File 'lib/kettle/jem.rb', line 5135
    +      
    # File 'lib/kettle/jem.rb', line 12018
     
    -def prism_ruby_merge_options(recipe)
    +def readme_logo_template_tokens()
       {
    -    method_move_policy: ruby_method_move_policy(recipe),
    -    merge_template_requires: true,
    -    template_only_placement: :after_anchor
    +    "KJ|README:H2_SYNOPSIS_LOGO_ROW" => [:h2_synopsis_logo_row].to_s,
    +    "KJ|README:TOP_LOGO_ROW" => [:top_logo_row].to_s,
    +    "KJ|README:TOP_LOGO_REFS" => [:top_logo_refs].to_s
       }
     end
    +
    @@ -38889,70 +54138,43 @@

    -

    - - .project_gemspec_declares_version_gem?(project_root) ⇒ Boolean +

    - + .readme_metadata_license_expression(facts) ⇒ Object -

    -
    - - -
    -
    -
    -

    Returns:

    -
      - -
    • - - - (Boolean) - - - -
    • - -
    - -

     
     
    -5080
    -5081
    -5082
    -5083
    -5084
    -5085
    -5086
    +13693 +13694 +13695 +13696 +13697 +13698 +13699 +13700 +13701 +13702 +13703 +13704 +13705 +13706 +13707 +13708 +13709 +13710 +13711 +13712 +13713 +13714
    -
    # File 'lib/kettle/jem.rb', line 5080
    +      
    # File 'lib/kettle/jem.rb', line 13693
     
    -def process_result_adapter_failure?(merge_result)
    -  diagnostics = merge_result.respond_to?(:fetch) ? merge_result.fetch(:diagnostics, []) : []
    -  diagnostics.any? do |diagnostic|
    -    message = diagnostic[:message] || diagnostic["message"]
    -    message.to_s.include?("TreeSitterLanguagePack::ProcessResult") && message.to_s.include?("undefined method")
    -  end
    +def (facts)
    +  package = facts.fetch(:package)
    +  funding_urls = facts.fetch(:funding, {}).fetch(:urls, [])
    +  rows = [
    +    ["Package", package[:name]],
    +    ["Description", package[:description]],
    +    ["Homepage", package[:homepage_url]],
    +    ["Source", package[:source_url]],
    +    ["License", (facts)],
    +    ["Funding", funding_urls.join(", ")]
    +  ].reject { |(_, value)| value.to_s.empty? }
    +
    +  [
    +    "<!-- kettle-jem:metadata:start -->",
    +    "| Field | Value |",
    +    "|---|---|",
    +    *rows.map do |field, value|
    +      "| #{(field)} | #{(value)} |"
    +    end,
    +    "<!-- kettle-jem:metadata:end -->"
    +  ].join("\n")
     end
    +
    @@ -38960,9 +54182,9 @@

    -

    +

    - .project_gemspec_metadata(project_root, gemspec_path, spec: nil) ⇒ Object + .readme_metadata_table_cell(value) ⇒ Object @@ -38974,71 +54196,15 @@

     
     
    -8477
    -8478
    -8479
    -8480
    -8481
    -8482
    -8483
    -8484
    -8485
    -8486
    -8487
    -8488
    -8489
    -8490
    -8491
    -8492
    -8493
    -8494
    -8495
    -8496
    -8497
    -8498
    -8499
    -8500
    -8501
    -8502
    -8503
    -8504
    -8505
    -8506
    -8507
    +13716 +13717 +13718

    @@ -39046,9 +54212,9 @@

    -

    +

    - .project_gemspec_version(project_root) ⇒ Object + .readme_preserve_config(config) ⇒ Object @@ -39060,21 +54226,39 @@

     
     
    -3365
    -3366
    -3367
    -3368
    -3369
    -3370
    +12867 +12868 +12869 +12870 +12871 +12872 +12873 +12874 +12875 +12876 +12877 +12878 +12879 +12880 +12881

    @@ -39082,9 +54266,9 @@

    -

    +

    - .project_homepage_uri(config, env, yard_host:) ⇒ Object + .readme_preserve_config_without_partial_sections(preserve_config, partial_sections) ⇒ Object @@ -39096,17 +54280,35 @@

     
     
    -8626
    -8627
    -8628
    -8629
    +3930 +3931 +3932 +3933 +3934 +3935 +3936 +3937 +3938 +3939 +3940 +3941 +3942

    @@ -39114,9 +54316,9 @@

    -

    +

    - .project_runtime_config_value(config, key) ⇒ Object + .readme_preserve_targets(template_sections, destination_lookup, preserve_config) ⇒ Object @@ -39128,25 +54330,53 @@

     
     
    -8631
    -8632
    -8633
    -8634
    -8635
    -8636
    -8637
    -8638
    +12836 +12837 +12838 +12839 +12840 +12841 +12842 +12843 +12844 +12845 +12846 +12847 +12848 +12849 +12850 +12851 +12852 +12853 +12854 +12855 +12856 +12857

    @@ -39154,9 +54384,9 @@

    -

    +

    - .project_runtime_facts(config, env, package_name:, source_url:, author_domain:, min_ruby:, test_min_ruby:, version:) ⇒ Object + .readme_project_emoji(project_root) ⇒ Object @@ -39168,55 +54398,25 @@

     
     
    -8453
    -8454
    -8455
    -8456
    -8457
    -8458
    -8459
    -8460
    -8461
    -8462
    -8463
    -8464
    -8465
    -8466
    -8467
    -8468
    -8469
    -8470
    -8471
    -8472
    -8473
    -8474
    -8475
    +9198 +9199 +9200 +9201 +9202 +9203 +9204 +9205

    @@ -39224,85 +54424,52 @@

    -

    +

    - .project_runtime_template_tokens(project_runtime) ⇒ Object + .readme_section_contains_badge_cloud?(section) ⇒ Boolean -

     
     
    -3372
    -3373
    -3374
    -3375
    -3376
    -3377
    -3378
    -3379
    -3380
    -3381
    -3382
    -3383
    +13720 +13721 +13722 +13723 +13724 +13725 +13726 +13727 +13728 +13729
    -
    # File 'lib/kettle/jem.rb', line 3372
    +      
    # File 'lib/kettle/jem.rb', line 13720
     
    -def project_gemspec_declares_version_gem?(project_root)
    -  path = Dir.glob(File.join(project_root, "*.gemspec")).min
    -  return false unless path
    +def (facts)
    +  package = facts.fetch(:package)
    +  expression = package[:license_expression].to_s
    +  spdx_ids = Array(facts.dig(:license, :spdx)).map(&:to_s).reject(&:empty?)
    +  return expression if expression.empty? || spdx_ids.empty?
     
    -   = (path)
    -  dependencies = Array([:runtime_dependencies] || ["runtime_dependencies"])
    -  if dependencies.empty?
    -    spec = load_project_gemspec(path)
    -    dependencies = Array(spec&.runtime_dependencies)
    +  spdx_ids.sort_by { |spdx_id| -spdx_id.length }.reduce(expression) do |formatted, spdx_id|
    +    formatted.gsub(/\b#{Regexp.escape(spdx_id)}\b/, "`#{spdx_id}`")
       end
    -  dependencies.any? { |dependency| dependency.name == "version_gem" }
     end
    -
    # File 'lib/kettle/jem.rb', line 8477
    -
    -def (project_root, gemspec_path, spec: nil)
    -   = quiet_gemspec_reader_load(project_root)
    -  spec ||= load_project_gemspec(gemspec_path)
    -   = {} unless .is_a?(Hash)
    -   = .dup
    -
    -  if spec
    -    [:gemspec_path] ||= gemspec_path
    -    [:gem_name] = spec.name.to_s if (, :gem_name).nil?
    -    [:version] = spec.version.to_s if (, :version).nil?
    -    [:min_ruby] = min_ruby_version(spec.required_ruby_version) if [:min_ruby].nil?
    -    [:homepage] = spec.homepage.to_s if (, :homepage).nil?
    -    [:source_code_uri] = spec..fetch("source_code_uri", nil) if (, :source_code_uri).nil?
    -    [:funding_uri] = spec..fetch("funding_uri", nil) if (, :funding_uri).nil?
    -    [:authors] = Array(spec.authors).compact.uniq if Array([:authors]).empty?
    -    [:email] = Array(spec.email).compact.uniq if Array([:email]).empty?
    -    [:summary] = spec.summary.to_s if (, :summary).nil?
    -    [:description] = spec.description.to_s if (, :description).nil?
    -    [:licenses] = Array(spec.licenses) if Array([:licenses]).empty?
    -    [:required_ruby_version] = spec.required_ruby_version if [:required_ruby_version].nil?
    -    [:require_paths] = Array(spec.require_paths) if Array([:require_paths]).empty?
    -    [:bindir] = spec.bindir.to_s if (, :bindir).nil?
    -    [:executables] = Array(spec.executables) if Array([:executables]).empty?
    -  end
    -
    -  return {} unless present_template_token_value?([:gem_name])
    +      
    # File 'lib/kettle/jem.rb', line 13716
     
    -  
    -rescue LoadError, StandardError
    -  (gemspec_path)
    +def (value)
    +  value.to_s.split(/\r\n?|\n/).map(&:strip).join("<br>").gsub("|", "\\|")
     end
    -
    # File 'lib/kettle/jem.rb', line 3365
    +      
    # File 'lib/kettle/jem.rb', line 12867
     
    -def project_gemspec_version(project_root)
    -  path = Dir.glob(File.join(project_root, "*.gemspec")).min
    -  return "" unless path
    +def readme_preserve_config(config)
    +  readme = config["readme"]
    +  return {} unless readme.is_a?(Hash)
     
    -  load_project_gemspec(path)&.version.to_s
    +  result = {}
    +  result[:sections] = Array(readme["preserve_sections"]) if readme.key?("preserve_sections")
    +  result[:patterns] = Array(readme["preserve_patterns"]) if readme.key?("preserve_patterns")
    +  if readme["section_aliases"].is_a?(Hash)
    +    result[:aliases] = README_SECTION_ALIASES.merge(
    +      readme["section_aliases"].transform_keys { |key| normalize_readme_heading(key) }
    +                               .transform_values { |value| normalize_readme_heading(value) }
    +    )
    +  end
    +  result
     end
    -
    # File 'lib/kettle/jem.rb', line 8626
    +      
    # File 'lib/kettle/jem.rb', line 3930
     
    -def project_homepage_uri(config, env, yard_host:)
    -  derived = "https://#{yard_host}" if present_template_token_value?(yard_host)
    -  preferred_template_token_value(derived, project_runtime_config_value(config, "homepage_uri"), env, "KJ_HOMEPAGE_URI").to_s
    +def readme_preserve_config_without_partial_sections(preserve_config, partial_sections)
    +  normalized_partials = partial_sections.map { |section| normalize_readme_section_key(section) }
    +  return preserve_config if normalized_partials.empty?
    +
    +  config = (preserve_config || {}).dup
    +  sections = if config.key?(:sections)
    +    Array(config[:sections]).map { |section| normalize_readme_section_key(section) }
    +  else
    +    README_DEFAULT_PRESERVE_SECTIONS.dup
    +  end
    +  config[:sections] = sections.reject { |section| normalized_partials.include?(section) }
    +  config
     end
    -
    # File 'lib/kettle/jem.rb', line 8631
    -
    -def project_runtime_config_value(config, key)
    -  token_config = token_config_values(config)
    -  runtime_config = token_config["project_runtime"].is_a?(Hash) ? token_config["project_runtime"] : {}
    -  top_level_value = config[key]
    -  return top_level_value if present_template_token_value?(top_level_value)
    +      
    # File 'lib/kettle/jem.rb', line 12836
     
    -  runtime_config[key]
    +def readme_preserve_targets(template_sections, destination_lookup, preserve_config)
    +  sections = if preserve_config.key?(:sections)
    +    Array(preserve_config[:sections]).map { |section| normalize_readme_heading(section) }
    +  else
    +    README_DEFAULT_PRESERVE_SECTIONS.dup
    +  end
    +  patterns = if preserve_config.key?(:patterns)
    +    Array(preserve_config[:patterns]).map { |pattern| pattern.to_s.strip.downcase }
    +  else
    +    README_DEFAULT_PRESERVE_PATTERNS.dup
    +  end
    +  aliases = preserve_config[:aliases] || README_SECTION_ALIASES
    +  targets = sections.dup
    +  template_sections.each do |section|
    +    base = section.fetch(:base)
    +    targets << base if patterns.any? { |pattern| File.fnmatch?(pattern, base, File::FNM_PATHNAME) }
    +  end
    +  aliases.each do |from, to|
    +    targets << to if destination_lookup.key?(from) && targets.include?(to)
    +  end
    +  targets.uniq
     end
    -
    # File 'lib/kettle/jem.rb', line 8453
    +      
    # File 'lib/kettle/jem.rb', line 9198
     
    -def project_runtime_facts(config, env, package_name:, source_url:, author_domain:, min_ruby:, test_min_ruby:, version:)
    -  run_timestamp = Time.now
    -  configured_project_emoji = preferred_template_token_value(nil, config["project_emoji"], env, "KJ_PROJECT_EMOJI")
    -  yard_host = project_yard_host(config, env, package_name: package_name, author_domain: author_domain)
    -  compact_hash(
    -    freeze_token: config.dig("defaults", "freeze_token").to_s.empty? ? "kettle-jem" : config.dig("defaults", "freeze_token").to_s,
    -    kettle_jem_version: VERSION,
    -    template_run_date: run_timestamp.strftime("%Y-%m-%d"),
    -    template_run_year: run_timestamp.year.to_s,
    -    kettle_dev_gem: "kettle-dev",
    -    kettle_rb_local_gems: kettle_rb_local_gems(config),
    -    package_name: package_name.to_s,
    -    yard_host: yard_host,
    -    homepage_uri: project_homepage_uri(config, env, yard_host: yard_host),
    -    project_emoji: preferred_template_token_value("💎", config["project_emoji"], env, "KJ_PROJECT_EMOJI").to_s,
    -    project_emoji_configured: !configured_project_emoji.to_s.empty?,
    -    min_divergence_threshold: preferred_template_token_value(nil, config["min_divergence_threshold"], env, "KJ_MIN_DIVERGENCE_THRESHOLD").to_s,
    -    min_dev_ruby: test_min_ruby.to_s,
    -    test_min_ruby: test_min_ruby.to_s,
    -    version: version.to_s,
    -    github_org: github_org_from_url(source_url).to_s
    -  )
    +def readme_project_emoji(project_root)
    +  readme_path = File.join(project_root, "README.md")
    +  return unless File.exist?(readme_path)
    +
    +  h1 = markdown_heading_owners(File.read(readme_path), source_label: "README.md").find { |owner| owner.level == 1 }
    +  candidate = first_grapheme(h1&.heading_text)
    +  decorative_grapheme?(candidate) ? candidate : nil
     end
    - - - - -
    -
    -
    +
    +
    + -8598 -8599 -8600 -8601 -8602 -8603 -8604 -8605 -8606 -8607 -8608 -8609 -8610 -8611 -8612
    -
    -
    # File 'lib/kettle/jem.rb', line 8598
     
    -def project_runtime_template_tokens(project_runtime)
    -  {
    -    "KJ|FREEZE_TOKEN" => project_runtime[:freeze_token].to_s,
    -    "KJ|KETTLE_JEM_VERSION" => project_runtime[:kettle_jem_version].to_s,
    -    "KJ|TEMPLATE_RUN_DATE" => project_runtime[:template_run_date].to_s,
    -    "KJ|TEMPLATE_RUN_YEAR" => project_runtime[:template_run_year].to_s,
    -    "KJ|KETTLE_DEV_GEM" => project_runtime[:kettle_dev_gem].to_s,
    -    "KJ|KETTLE_RB_LOCAL_GEMS" => project_runtime[:kettle_rb_local_gems].to_s,
    -    "KJ|PACKAGE_NAME" => project_runtime[:package_name].to_s,
    -    "KJ|YARD_HOST" => project_runtime[:yard_host].to_s,
    -    "KJ|HOMEPAGE_URI" => project_runtime[:homepage_uri].to_s,
    -    "KJ|PROJECT_EMOJI" => project_runtime[:project_emoji].to_s,
    -    "KJ|MIN_DIVERGENCE_THRESHOLD" => project_runtime[:min_divergence_threshold].to_s
    -  }
    -end
    -
    +
    - -
    -

    +
    - .project_yard_host(config, env, package_name:, author_domain:) ⇒ Object +

    Returns:

    +
      - +
    • + + + (Boolean) + + + +
    • +
    - -

    +
    @@ -39310,55 +54477,66 @@

    -

    +

    - .prune_appraisals_below_min_ruby(content, min_ruby) ⇒ Object + .readme_section_has_preserved_ancestor?(sections, index, preserve_targets) ⇒ Boolean -

     
     
    -8614
    -8615
    -8616
    -8617
    +12719 +12720 +12721
    -
    # File 'lib/kettle/jem.rb', line 8614
    +      
    # File 'lib/kettle/jem.rb', line 12719
     
    -def project_yard_host(config, env, package_name:, author_domain:)
    -  derived = "#{package_name.to_s.tr("_", "-")}.#{author_domain.to_s.empty? ? "example.com" : author_domain}"
    -  preferred_template_token_value(derived, project_runtime_config_value(config, "yard_host"), env, "KJ_YARD_HOST").to_s
    +def readme_section_contains_badge_cloud?(section)
    +  section.fetch(:body).to_s.lines.any? { |line| line.include?("[![") }
     end
    +
    +
    + + + +
    +
    +
    + +

    Returns:

    +
      + +
    • + + + (Boolean) + + + +
    • + +
    + +
    @@ -39366,9 +54544,9 @@

    -

    +

    - .prune_appraisals_recording_entries(content, facts) ⇒ Object + .readme_section_partials(project_root, config, readme) ⇒ Object @@ -39380,69 +54558,57 @@

     
     
    -5661
    -5662
    -5663
    -5664
    -5665
    -5666
    -5667
    -5668
    -5669
    -5670
    -5671
    -5672
    -5673
    -5674
    -5675
    -5676
    -5677
    -5678
    -5679
    -5680
    -5681
    -5682
    -5683
    -5684
    -5685
    -5686
    -5687
    -5688
    -5689
    -5690
    +12509 +12510 +12511 +12512 +12513 +12514 +12515 +12516 +12517 +12518 +12519 +12520 +12521 +12522 +12523 +12524 +12525 +12526 +12527 +12528 +12529 +12530 +12531 +12532

    @@ -39450,9 +54616,9 @@

    -

    +

    - .prune_github_workflow_matrix_by_min_ruby(content, facts) ⇒ Object + .readme_section_partials_for_render(readme_style, facts) ⇒ Object @@ -39464,47 +54630,33 @@

    -4908 -4909 -4910 -4911 -4912 -4913 -4914 -4915 -4916 -4917 -4918 -4919 -4920 -4921 -4922 -4923 -4924 -4925 -4926 +3917 +3918 +3919 +3920 +3921 +3922 +3923 +3924 +3925 +3926 +3927 +3928

    @@ -39512,9 +54664,9 @@

    -

    +

    - .prune_legacy_kettle_config_keys(content) ⇒ Object + .readme_style_facts(project_root, config, license, template_profile: nil, repository: nil) ⇒ Object @@ -39526,19 +54678,71 @@

     
     
    -6722
    -6723
    -6724
    -6725
    -6726
    +12435 +12436 +12437 +12438 +12439 +12440 +12441 +12442 +12443 +12444 +12445 +12446 +12447 +12448 +12449 +12450 +12451 +12452 +12453 +12454 +12455 +12456 +12457 +12458 +12459 +12460 +12461 +12462 +12463 +12464 +12465

    @@ -39546,9 +54750,9 @@

    -

    - .prune_missing_workflow_link_definitions(content, workflow_paths) ⇒ Object + .readme_template_tokens(facts) ⇒ Object @@ -39560,37 +54764,67 @@

    @@ -39598,9 +54832,9 @@ @@ -39650,9 +54862,9 @@

    -

    - .prune_unused_readme_logo_link_definitions(content) ⇒ Object + .readme_top_logo_default_alt(type, slug) ⇒ Object @@ -39664,29 +54876,39 @@

    @@ -39694,64 +54916,43 @@

    - - .prune_workflow_matrix_item?(mapping, minimum) ⇒ Boolean - - - - - -

    -
    - - - -
    -
    -
    - -

    Returns:

    -
      +

      -
    • - - - (Boolean) - - - -
    • + .readme_top_logo_entries(config, org:, gem_name:, repository: {}) ⇒ Object -

    -
     
     
    -5889
    -5890
    -5891
    -5892
    -5893
    -5894
    -5895
    -5896
    -5897
    -5898
    -5899
    -5900
    -5901
    -5902
    -5903
    -5904
    +12774 +12775 +12776 +12777 +12778 +12779 +12780 +12781 +12782 +12783
    -
    # File 'lib/kettle/jem.rb', line 5889
    +      
    # File 'lib/kettle/jem.rb', line 12774
     
    -def prune_appraisals_below_min_ruby(content, min_ruby)
    -  return content if min_ruby.to_s.empty?
    -
    -  minimum = Gem::Version.new(min_ruby.to_s)
    -  remove_indexes = Set.new
    -  appraisal_call_records(content).each do |record|
    -    version = ruby_appraisal_name_version(record.fetch(:name))
    -    next unless version && version < minimum
    +def readme_section_has_preserved_ancestor?(sections, index, preserve_targets)
    +  section = sections.fetch(index)
    +  section_level = section.fetch(:level).to_i
    +  sections[0...index].reverse_each do |candidate|
    +    next unless candidate.fetch(:level).to_i < section_level
     
    -    (record.fetch(:start_line)..record.fetch(:end_line)).each { |line_number| remove_indexes << (line_number - 1) }
    +    return preserve_targets.include?(candidate.fetch(:base))
       end
    -  kept = content.to_s.lines.each_with_index.reject { |_line, index| remove_indexes.include?(index) }.map(&:first)
    -  ensure_trailing_newline(kept.join.gsub(/\n{3,}/, "\n\n"))
    -rescue ArgumentError
    -  content
    +  false
     end
    -
    # File 'lib/kettle/jem.rb', line 5661
    +      
    # File 'lib/kettle/jem.rb', line 12509
     
    -def prune_appraisals_recording_entries(content, facts)
    -  remove_indexes = Set.new
    -  lines = content.to_s.lines
    -  unless facts.to_h.dig(:ci, :recording)
    -    ruby_call_records(content, :eval_gemfile).each do |call|
    -      path = ruby_string_argument(call)
    -      next unless path.to_s.include?("modular/recording/")
    +def readme_section_partials(project_root, config, readme)
    +  configured = readme["section_partials"]
    +  return {} unless configured.is_a?(Hash)
     
    -      (call.location.start_line..call.location.end_line).each { |line_number| remove_indexes << (line_number - 1) }
    -    end
    -  end
    -  head_appraisal = appraisal_call_records(content).find { |record| record.fetch(:name) == "head" }
    -  if head_appraisal
    -    gemfile_gem_call_records(content).each do |record|
    -      next unless record.fetch(:name) == "cgi"
    -      next unless record.fetch(:start_line) >= head_appraisal.fetch(:start_line)
    -      next unless record.fetch(:end_line) <= head_appraisal.fetch(:end_line)
    +  root = template_root(project_root, config["templates"].is_a?(Hash) ? config["templates"] : {})
    +  configured.each_with_object({}) do |(section, source), result|
    +    normalized = normalize_readme_section_key(section)
    +    next if normalized.empty?
     
    -      start_index = record.fetch(:start_line) - 1
    -      while start_index.positive? && gemfile_comment_line?(lines[start_index - 1])
    -        start_index -= 1
    -      end
    -      (start_index..(record.fetch(:end_line) - 1)).each { |index| remove_indexes << index }
    -    end
    -  end
    -  return content if remove_indexes.empty?
    +    source_path = source.to_s
    +    next if source_path.empty?
     
    -  kept = lines.each_with_index.reject { |_line, index| remove_indexes.include?(index) }.map(&:first)
    -  ensure_trailing_newline(kept.join.gsub(/\n{3,}/, "\n\n"))
    +    selected = preferred_template_source(root.fetch(:path), source_path)
    +    next unless selected
    +
    +    result[normalized] = {
    +      configured_source: source_path,
    +      selected_source: template_source_display_path(root, selected),
    +      source_relative_path: selected,
    +      source_root: root.fetch(:kind),
    +      content: File.read(File.join(root.fetch(:path), selected))
    +    }
    +  end
     end
    -
    # File 'lib/kettle/jem.rb', line 4908
    +      
    # File 'lib/kettle/jem.rb', line 3917
     
    -def prune_github_workflow_matrix_by_min_ruby(content, facts)
    -  min_ruby = minimum_ruby_token(facts.to_h.dig(:ci, :test_min_ruby) || facts.to_h.dig(:rubygems, :min_ruby))
    -  return content if min_ruby.to_s.empty?
    +def readme_section_partials_for_render(readme_style, facts)
    +  partials = readme_style[:section_partials]
    +  return {} unless partials.is_a?(Hash)
     
    -  minimum = Gem::Version.new(min_ruby)
    -  lines = content.to_s.lines
    -  remove_indexes = Set.new
    -  yaml_mapping_nodes(content).each do |mapping|
    -    next unless prune_workflow_matrix_item?(mapping, minimum)
    +  tokens = readme_template_tokens(facts)
    +  partials.each_with_object({}) do |(section, partial), result|
    +    content = partial.is_a?(Hash) ? partial[:content].to_s : partial.to_s
    +    next if content.strip.empty?
     
    -    (mapping.start_line...mapping.end_line).each { |line_index| remove_indexes << line_index }
    +    result[normalize_readme_section_key(section)] = resolve_template_tokens(content, tokens)
       end
    -
    -  return content if remove_indexes.empty?
    -
    -  ensure_trailing_newline(lines.each_with_index.reject { |_line, line_index| remove_indexes.include?(line_index) }.map(&:first).join.gsub(/\n{3,}/, "\n\n"))
    -rescue
    -  content
     end
    -
    # File 'lib/kettle/jem.rb', line 6722
    +      
    # File 'lib/kettle/jem.rb', line 12435
     
    -def prune_legacy_kettle_config_keys(content)
    -  KETTLE_CONFIG_LEGACY_KEY_PATHS.reduce(content.to_s) do |updated, legacy_key|
    -    remove_yaml_scalar_path(updated, legacy_key.fetch(:path))
    +def readme_style_facts(project_root, config, license, template_profile: nil, repository: nil)
    +  readme = config["readme"].is_a?(Hash) ? config["readme"] : {}
    +  conditional = readme["conditional_sections"].is_a?(Hash) ? readme["conditional_sections"] : {}
    +  disabled_integrations = readme_disabled_integrations(readme, integration_disabled: disabled_integrations(config, license: license))
    +  integration_root = readme_integration_project_root(project_root, template_profile, repository)
    +  missing_integrations = README_DISCOVERED_INTEGRATIONS.reject do |integration|
    +    disabled_integrations.include?(integration) || readme_integration_configured?(integration_root, integration)
       end
    +  workflow_paths = readme_workflow_paths(integration_root)
    +  omitted_sections = []
    +  security_enabled = repository_monorepo_subproject?(repository) ||
    +    File.exist?(File.join(project_root, "SECURITY.md"))
    +  floss_funding_enabled = readme_floss_funding_enabled?(license, conditional["floss_funding"])
    +  omitted_sections << "security" unless security_enabled
    +  omitted_sections << "floss_funding" unless floss_funding_enabled
    +  section_partials = readme_section_partials(project_root, config, readme)
    +  package_family = readme["package_family"].to_s.strip.downcase
    +  fossa_project = readme_fossa_project(readme, repository)
    +  compact_hash(
    +    profile: "slice-740-kettle-readme-style-profile",
    +    security_enabled: security_enabled,
    +    floss_funding_enabled: floss_funding_enabled,
    +    package_family: package_family,
    +    fossa_project: fossa_project,
    +    omitted_sections: omitted_sections,
    +    disabled_integrations: disabled_integrations,
    +    missing_integrations: missing_integrations,
    +    workflow_paths: workflow_paths,
    +    section_partials: section_partials
    +  )
     end
    -
    # File 'lib/kettle/jem.rb', line 4716
    -
    -def prune_missing_workflow_link_definitions(content, workflow_paths)
    -  existing = Array(workflow_paths).map { |path| path.to_s.delete_prefix("./") }.to_set
    -  Ast::Crispr::Markdown::Markly.document_context(content: content.to_s, source_label: "README.md")
    -    .structural_owners(owner_scope: :link_definitions)
    -    .reduce(content.to_s) do |processed, owner|
    -      workflow_path = readme_workflow_path_from_url(owner.url)
    -      next processed if workflow_path.empty? || existing.include?(workflow_path)
    +      
    # File 'lib/kettle/jem.rb', line 3944
     
    -      delete_markdown_with_ast_crispr(
    -        processed,
    -        Ast::Crispr::Markdown::Markly::Selectors.link_definition(label: owner.label, limit: {at_least: 0})
    -      )
    -    end
    +def readme_template_tokens(facts)
    +  {
    +    "KJ|CB:USER" => "",
    +    "KJ|FUNDING:BUYMEACOFFEE" => "",
    +    "KJ|FUNDING:KOFI" => "",
    +    "KJ|FUNDING:LIBERAPAY" => "",
    +    "KJ|FUNDING:PAYPAL" => "",
    +    "KJ|GH:USER" => "",
    +    "KJ|GH_ORG" => github_org_from_url(facts.dig(:package, :source_url)).to_s,
    +    "KJ|GL:USER" => "",
    +    "KJ|PROJECT_EMOJI" => "💎",
    +    "KJ|README:COPYRIGHT_NOTICE" => "",
    +    "KJ|README:LICENSE_BADGE" => "",
    +    "KJ|README:LICENSE_COMPAT_BADGE" => "",
    +    "KJ|README:DEV_TEST_STACK_TABLE" => "",
    +    "KJ|README:LICENSE_INTRO" => "",
    +    "KJ|README:LICENSE_REFS" => "",
    +    "KJ|README:H2_SYNOPSIS_LOGO_ROW" => "",
    +    "KJ|README:TOP_LOGO_REFS" => "",
    +    "KJ|README:TOP_LOGO_ROW" => "",
    +    "KJ|SH:USER" => "",
    +    "KJ|SOCIAL:BLUESKY" => "",
    +    "KJ|SOCIAL:DEVTO" => "",
    +    "KJ|SOCIAL:LINKTREE" => "",
    +    "KJ|SOCIAL:MASTODON" => "",
    +    "KJ|HOMEPAGE_URI" => "https://rubydoc.info",
    +    "KJ|YARD_HOST" => "rubydoc.info"
    +  }.merge(template_tokens(facts, facts.fetch(:funding, {})))
     end
    -
    # File 'lib/kettle/jem.rb', line 4701
    +      
    # File 'lib/kettle/jem.rb', line 11952
     
    -def prune_readme_integration_badges(content, readme_style)
    -  integrations = Array(readme_style[:missing_integrations]) + Array(readme_style[:disabled_integrations])
    -  integrations.uniq.reduce(content.to_s) do |result, integration|
    -    pruned_badges = README_INTEGRATION_BADGE_PATTERNS.fetch(integration.to_s, []).reduce(result) do |memo, pattern|
    -      memo.gsub(pattern, "")
    -    end
    -    README_INTEGRATION_LINK_LABELS.fetch(integration.to_s, []).reduce(pruned_badges) do |memo, label|
    -      delete_markdown_with_ast_crispr(
    -        memo,
    -        Ast::Crispr::Markdown::Markly::Selectors.link_definition(label: label, limit: {at_least: 0})
    -      )
    -    end
    -  end.gsub(/[ \t]{2,}/, " ")
    +def readme_top_logo_credit_separator(type)
    +  (type == "ruby") ? ", " : " by "
     end
    -
    # File 'lib/kettle/jem.rb', line 4402
    +      
    # File 'lib/kettle/jem.rb', line 11912
     
    -def prune_unused_readme_logo_link_definitions(content)
    -  referenced = ReadmePostProcessor.markdown_inline_reference_owners(content).flat_map(&:labels).map(&:to_s).to_set
    -  labels = ReadmePostProcessor.markdown_link_definition_owners(content).filter_map do |owner|
    -    label = owner.label.to_s
    -    label if label.start_with?("🖼️") && !referenced.include?(label)
    +def readme_top_logo_default_alt(type, slug)
    +  label = slug.split("/").last.to_s
    +  case type
    +  when "related_org"
    +    "Galtzo FLOSS"
    +  when "ruby"
    +    "ruby-lang"
    +  when "org"
    +    label
    +  when "project"
    +    label
    +  else
    +    "#{label} affiliated project"
       end
    -  return content if labels.empty?
    -
    -  ReadmePostProcessor.delete_markdown_link_definitions(content, labels)
     end
    + + + +
    @@ -39759,66 +54960,35 @@

    -

    - - .quality_config_path?(path) ⇒ Boolean +

    - + .readme_top_logo_entries_with_asset_size(entries) ⇒ Object -

    -
    - - -
    -
    -
    - -

    Returns:

    -
      - -
    • - - - (Boolean) - - - -
    • -
    - -

     
     
    -5036
    -5037
    -5038
    -5039
    -5040
    -5041
    -5042
    -5043
    -5044
    +11821 +11822 +11823 +11824 +11825 +11826 +11827 +11828 +11829 +11830
    -
    # File 'lib/kettle/jem.rb', line 5036
    +      
    # File 'lib/kettle/jem.rb', line 11821
     
    -def prune_workflow_matrix_item?(mapping, minimum)
    -  ruby = yaml_mapping_scalar_value(mapping, "ruby")
    -  return true if ruby && Gem::Version.new(ruby) < minimum
    +def readme_top_logo_entries(config, org:, gem_name:, repository: {})
    +  configured = configured_readme_top_logo_entries(config, org: org, gem_name: gem_name, repository: repository)
    +  return readme_top_logo_entries_with_asset_size(configured) if configured
     
    -  appraisal_ruby_version = appraisal_ruby_version(yaml_mapping_scalar_value(mapping, "appraisal"))
    -  appraisal_ruby_version && Gem::Version.new(appraisal_ruby_version) < minimum
    -rescue ArgumentError
    -  false
    +  entries = readme_logo_specs_from_config(config, "top_logos", "top_logo_options", README_TOP_LOGO_DEFAULTS).filter_map do |spec|
    +    readme_top_logo_entry_from_option(spec.fetch(:type), org: org, gem_name: gem_name, repository: repository)&.merge(width: spec[:width])
    +  end
    +  entries = deduplicate_readme_top_logo_entries(entries)
    +  readme_top_logo_entries_with_asset_size(entries)
     end
    +
    @@ -39826,9 +54996,9 @@

    -

    +

    - .quiet_gemspec_reader_load(project_root) ⇒ Object + .readme_top_logo_entry_from_config(logo, org:, gem_name:, repository: {}) ⇒ Object @@ -39840,29 +55010,67 @@

     
     
    -8573
    -8574
    -8575
    -8576
    -8577
    -8578
    -8579
    -8580
    -8581
    -8582
    +11867 +11868 +11869 +11870 +11871 +11872 +11873 +11874 +11875 +11876 +11877 +11878 +11879 +11880 +11881 +11882 +11883 +11884 +11885 +11886 +11887 +11888 +11889 +11890 +11891 +11892 +11893 +11894 +11895

    @@ -39870,68 +55078,65 @@

    -

    +

    - .rakefile_default_task_call?(call) ⇒ Boolean + .readme_top_logo_entry_from_option(option, org:, gem_name:, repository: {}) ⇒ Object -

    -
    - +

     
     
    -7797
    -7798
    -7799
    -7800
    -7801
    -7802
    -7803
    -7804
    -7805
    -7806
    +11840 +11841 +11842 +11843 +11844 +11845
    -
    # File 'lib/kettle/jem.rb', line 7797
    +      
    # File 'lib/kettle/jem.rb', line 11840
     
    -def quality_config_path?(path)
    -  %w[
    -    .rubocop.yml
    -    .reek.yml
    -    .standard.yml
    -    .simplecov
    -    .yardopts
    -    Rakefile
    -  ].include?(path)
    +def readme_top_logo_entries_with_asset_size(entries)
    +  entries.map do |entry|
    +    image_url = entry.fetch(:image_url).to_s.sub(%r{/avatar-\d+px\.svg\z}, "/avatar-128px.svg")
    +    entry.merge(image_url: image_url)
    +  end
     end
    -
    # File 'lib/kettle/jem.rb', line 8573
    +      
    # File 'lib/kettle/jem.rb', line 11867
     
    -def quiet_gemspec_reader_load(project_root)
    -  original_stderr = $stderr
    -  original_stdout = $stdout
    -  $stderr = StringIO.new
    -  $stdout = StringIO.new
    -  GemSpecReader.load(project_root)
    -ensure
    -  $stderr = original_stderr
    -  $stdout = original_stdout
    +def readme_top_logo_entry_from_config(, org:, gem_name:, repository: {})
    +  return unless .is_a?(Hash)
    +
    +  type = ["type"].to_s.strip.downcase.tr("-", "_")
    +  return unless README_TOP_LOGO_TYPES.include?(type)
    +  type = "ruby" if type == "language"
    +
    +  slug = ["slug"].to_s.strip
    +  slug = default_readme_top_logo_slug(type, org: org, gem_name: gem_name, repository: repository) if slug.empty?
    +  return if slug.empty?
    +
    +  alt = ["alt"].to_s.strip
    +  alt = readme_top_logo_default_alt(type, slug) if alt.empty?
    +  href = ["href"].to_s.strip
    +  href = default_readme_top_logo_href(type, slug: slug, org: org, gem_name: gem_name, repository: repository) if href.empty?
    +  credit = ["credit"].to_s.strip
    +  credit = default_readme_top_logo_credit(type) if credit.empty?
    +  ref_slug = slug.tr("/", "-")
    +  {
    +    type: type,
    +    label: alt.sub(/\s+logo\z/i, ""),
    +    credit: credit,
    +    credit_separator: readme_top_logo_credit_separator(type),
    +    image_ref: "#{ref_slug}-i",
    +    link_ref: ref_slug,
    +    image_url: "#{LOGOS_GALTZO_BASE_URL}/#{slug}/avatar-192px.svg",
    +    href: href
    +  }
     end
    + + + + +
    +
     
     
    -  
    +11970
    +11971
    +11972
    +11973
    +11974
    +11975
    +
    +
    # File 'lib/kettle/jem.rb', line 11970
    +
    +def readme_top_logo_entry_from_option(option, org:, gem_name:, repository: {})
    +  return if option == "org" && org.to_s.empty?
    +  return if option == "project" && (org.to_s.empty? || gem_name.to_s.empty?)
    +
    +  readme_top_logo_entry_from_config({"type" => option}, org: org, gem_name: gem_name, repository: repository)
    +end
    +
    -
    + +
    +

    -

    Returns:

    -
      + .readme_top_logo_options(config) ⇒ Object -
    • - - - (Boolean) - - - -
    • + -
    -

    + +
    @@ -39939,9 +55144,9 @@

    -

    +

    - .rakefile_default_task_records(content) ⇒ Object + .readme_top_logo_refs(entries) ⇒ Object @@ -39953,29 +55158,15 @@

     
     
    -11036
    -11037
    -11038
    -11039
    -11040
    -11041
    -11042
    -11043
    -11044
    -11045
    +12000 +12001 +12002

    @@ -39983,9 +55174,9 @@

    -

    +

    - .rakefile_require_records(content) ⇒ Object + .readme_top_logo_row(entries) ⇒ Object @@ -39997,33 +55188,21 @@

     
     
    -10997
    -10998
    -10999
    -11000
    -11001
    -11002
    -11003
    -11004
    -11005
    -11006
    -11007
    -11008
    +11977 +11978 +11979 +11980 +11981 +11982

    @@ -40031,9 +55210,9 @@

    -

    +

    - .rakefile_scaffold_cleanup(content, facts) ⇒ Object + .readme_url_template_tokens(repository, package_name, github_org) ⇒ Object @@ -40045,19 +55224,171 @@

     
     
    -3944
    -3945
    -3946
    -3947
    -3948
    +10190 +10191 +10192 +10193 +10194 +10195 +10196 +10197 +10198 +10199 +10200 +10201 +10202 +10203 +10204 +10205 +10206 +10207 +10208 +10209 +10210 +10211 +10212 +10213 +10214 +10215 +10216 +10217 +10218 +10219 +10220 +10221 +10222 +10223 +10224 +10225 +10226 +10227 +10228 +10229 +10230 +10231 +10232 +10233 +10234 +10235 +10236 +10237 +10238 +10239 +10240 +10241 +10242 +10243 +10244 +10245 +10246 +10247 +10248 +10249 +10250 +10251 +10252 +10253 +10254 +10255 +10256 +10257 +10258 +10259 +10260 +10261 +10262 +10263 +10264 +10265 +10266 +10267 +10268 +10269 +10270

    @@ -40065,52 +55396,45 @@

    -

    - - .rakefile_scaffold_cleanup_recipe?(recipe) ⇒ Boolean +

    - + .readme_workflow_path_from_url(url) ⇒ Object -

    -
    - - -
    -
    -
    - -

    Returns:

    -
      - -
    • - - - (Boolean) - - - -
    • -
    - -

     
     
    -11047
    -11048
    -11049
    -11050
    -11051
    -11052
    -11053
    -11054
    -11055
    -11056
    -11057
    +11736 +11737 +11738
    -
    # File 'lib/kettle/jem.rb', line 11047
    +      
    # File 'lib/kettle/jem.rb', line 11736
     
    -def rakefile_default_task_call?(call)
    -  argument = call.arguments&.arguments&.first
    -  case argument
    -  when ::Prism::SymbolNode
    -    argument.unescaped.to_s == "default"
    -  when ::Prism::KeywordHashNode
    -    argument.elements.any? { |element| element.key.is_a?(::Prism::SymbolNode) && element.key.unescaped.to_s == "default" }
    -  else
    -    false
    -  end
    +def readme_top_logo_options(config)
    +  readme_logo_options_from_config(config, "top_logos", "top_logo_options", README_TOP_LOGO_DEFAULTS)
     end
    -
    # File 'lib/kettle/jem.rb', line 11036
    -
    -def rakefile_default_task_records(content)
    -  top_level_ruby_call_records(content, :task).filter_map do |call|
    -    next unless rakefile_default_task_call?(call)
    +      
    # File 'lib/kettle/jem.rb', line 12000
     
    -    {
    -      start_line: call.location.start_line,
    -      end_line: call.location.end_line
    -    }
    -  end
    +def readme_top_logo_refs(entries)
    +  ""
     end
    -
    # File 'lib/kettle/jem.rb', line 10997
    -
    -def rakefile_require_records(content)
    -  top_level_ruby_call_records(content, :require).filter_map do |call|
    -    name = ruby_string_argument(call)
    -    next unless name
    +      
    # File 'lib/kettle/jem.rb', line 11977
     
    -    {
    -      name: name,
    -      start_line: call.location.start_line,
    -      end_line: call.location.end_line
    -    }
    -  end
    +def readme_top_logo_row(entries)
    +  default_width = readme_default_logo_width(entries, one: "14%", two: "12%")
    +  entries.map do |entry|
    +    readme_logo_html(entry, align: "right", width: entry[:width] || default_width)
    +  end.join(" ")
     end
    -
    # File 'lib/kettle/jem.rb', line 3944
    +      
    # File 'lib/kettle/jem.rb', line 10190
     
    -def rakefile_scaffold_cleanup(content, facts)
    -  return {content: content.to_s, delete_selectors: []} if facts[:template_profile].to_s == MONOREPO_ROOT_TEMPLATE_PROFILE
    +def readme_url_template_tokens(repository, package_name, github_org)
    +  repo_url = repository[:url].to_s
    +  repo_name = repository[:name].to_s
    +  repo_slug = repository[:slug].to_s
    +  package_path = repository[:package_path].to_s
    +  package_source_url = repository[:package_source_url].to_s
    +  repo_url = "https://github.com/#{github_org}/#{package_name}" if repo_url.empty?
    +  repo_name = package_name if repo_name.empty?
    +  repo_slug = "#{github_org}/#{repo_name}" if repo_slug.empty?
    +  package_source_url = repo_url if package_source_url.empty?
     
    -  delete_rakefile_scaffold(content)
    +  repository = repository.merge(
    +    url: repo_url,
    +    name: repo_name,
    +    slug: repo_slug,
    +    package_path: package_path,
    +    package_source_url: package_source_url
    +  )
    +  resources = repository[:resource_urls].is_a?(Hash) ? repository[:resource_urls] : repository_resource_urls(repository)
    +  resource_url = lambda do |key, fallback|
    +    value = resources[key].to_s
    +    value.empty? ? fallback : value
    +  end
    +
    +  gitlab_source = repository[:gitlab_package_source_url].to_s
    +  codeberg_source = repository[:codeberg_package_source_url].to_s
    +  gitlab_source = "https://gitlab.com/#{repo_slug}/" if gitlab_source.empty?
    +  codeberg_source = "https://codeberg.org/#{repo_slug}" if codeberg_source.empty?
    +  checksums_url = repository[:checksums_url].to_s
    +  checksums_url = "https://gitlab.com/#{repo_slug}/-/tree/main/checksums" if checksums_url.empty?
    +
    +  {
    +    "KJ|README:REPO_SLUG" => repo_slug,
    +    "KJ|README:REPO_NAME" => repo_name,
    +    "KJ|README:PACKAGE_PATH" => package_path,
    +    "KJ|README:GH_REPOSITORY_URL" => resource_url.call(:github_repository_url, repo_url),
    +    "KJ|README:GH_PACKAGE_SOURCE_URL" => resource_url.call(:github_package_source_url, package_source_url),
    +    "KJ|README:GH_RELEASES_URL" => resource_url.call(:github_releases_url, "#{repo_url}/releases"),
    +    "KJ|README:GH_TAG_BADGE_REPO" => repo_slug,
    +    "KJ|README:GH_ACTIONS_URL" => resource_url.call(:github_actions_url, "#{repo_url}/actions"),
    +    "KJ|README:GH_DISCUSSIONS_URL" => resource_url.call(:github_discussions_url, "#{repo_url}/discussions"),
    +    "KJ|README:GH_ISSUES_URL" => resource_url.call(:github_issues_url, "#{repo_url}/issues"),
    +    "KJ|README:GH_PULLS_URL" => resource_url.call(:github_pulls_url, "#{repo_url}/pulls"),
    +    "KJ|README:GH_WIKI_URL" => resource_url.call(:github_wiki_url, "#{repo_url}/wiki"),
    +    "KJ|README:GH_CODEQL_URL" => resource_url.call(:github_codeql_url, "#{repo_url}/security/code-scanning"),
    +    "KJ|README:GH_CONTRIBUTORS_URL" => resource_url.call(:github_contributors_url, "#{repo_url}/graphs/contributors"),
    +    "KJ|README:GH_CONTRIBUTING_URL" => resource_url.call(:github_contributing_url, source_blob_url(repo_url, "CONTRIBUTING.md")),
    +    "KJ|README:GH_CHANGELOG_URL" => resource_url.call(:github_changelog_url, source_blob_url(repo_url, "CHANGELOG.md")),
    +    "KJ|README:GH_SECURITY_URL" => resource_url.call(:github_security_url, source_blob_url(repo_url, "SECURITY.md")),
    +    "KJ|README:GH_CODE_OF_CONDUCT_URL" => resource_url.call(:github_code_of_conduct_url, source_blob_url(repo_url, "CODE_OF_CONDUCT.md")),
    +    "KJ|README:GH_RUBOCOP_URL" => resource_url.call(:github_rubocop_url, source_blob_url(repo_url, "RUBOCOP.md")),
    +    "KJ|README:GH_IRP_URL" => resource_url.call(:github_irp_url, source_blob_url(repo_url, "IRP.md")),
    +    "KJ|README:GL_REPOSITORY_URL" => resource_url.call(:gitlab_repository_url, "https://gitlab.com/#{repo_slug}"),
    +    "KJ|README:GL_PACKAGE_SOURCE_URL" => resource_url.call(:gitlab_package_source_url, gitlab_source),
    +    "KJ|README:GL_ISSUES_URL" => resource_url.call(:gitlab_issues_url, gitlab_repo_url(repository, repo_slug, "issues")),
    +    "KJ|README:GL_PULLS_URL" => resource_url.call(:gitlab_pulls_url, gitlab_repo_url(repository, repo_slug, "merge_requests")),
    +    "KJ|README:GL_WIKI_URL" => resource_url.call(:gitlab_wiki_url, gitlab_repo_url(repository, repo_slug, "wikis/home")),
    +    "KJ|README:GL_CONTRIBUTORS_URL" => resource_url.call(:gitlab_contributors_url, gitlab_repo_url(repository, repo_slug, "graphs/main")),
    +    "KJ|README:GL_CONTRIBUTING_URL" => resource_url.call(:gitlab_contributing_url, source_blob_url("https://gitlab.com/#{repo_slug}", "CONTRIBUTING.md")),
    +    "KJ|README:GL_CHANGELOG_URL" => resource_url.call(:gitlab_changelog_url, source_blob_url("https://gitlab.com/#{repo_slug}", "CHANGELOG.md")),
    +    "KJ|README:GL_CODE_OF_CONDUCT_URL" => resource_url.call(:gitlab_code_of_conduct_url, source_blob_url("https://gitlab.com/#{repo_slug}", "CODE_OF_CONDUCT.md")),
    +    "KJ|README:CB_REPOSITORY_URL" => resource_url.call(:codeberg_repository_url, "https://codeberg.org/#{repo_slug}"),
    +    "KJ|README:CB_PACKAGE_SOURCE_URL" => resource_url.call(:codeberg_package_source_url, codeberg_source),
    +    "KJ|README:CB_ISSUES_URL" => resource_url.call(:codeberg_issues_url, codeberg_repo_url(repository, repo_slug, "issues")),
    +    "KJ|README:CB_PULLS_URL" => resource_url.call(:codeberg_pulls_url, codeberg_repo_url(repository, repo_slug, "pulls")),
    +    "KJ|README:CODECOV_URL" => resource_url.call(:codecov_url, "https://codecov.io/gh/#{repo_slug}"),
    +    "KJ|README:CODECOV_BADGE_URL" => resource_url.call(:codecov_badge_url, "https://codecov.io/gh/#{repo_slug}/graph/badge.svg"),
    +    "KJ|README:CODECOV_GRAPH_URL" => resource_url.call(:codecov_graph_url, "https://codecov.io/gh/#{repo_slug}/graph/badge.svg"),
    +    "KJ|README:COVERALLS_URL" => resource_url.call(:coveralls_url, "https://coveralls.io/github/#{repo_slug}?branch=main"),
    +    "KJ|README:COVERALLS_BADGE_URL" => resource_url.call(:coveralls_badge_url, "https://coveralls.io/repos/github/#{repo_slug}/badge.svg?branch=main"),
    +    "KJ|README:QLTY_PROJECT_URL" => resource_url.call(:qlty_project_url, "https://qlty.sh/gh/#{github_org}/projects/#{repo_name}"),
    +    "KJ|README:QLTY_MAINTAINABILITY_URL" => resource_url.call(:qlty_maintainability_url, "https://qlty.sh/gh/#{github_org}/projects/#{repo_name}/maintainability.svg"),
    +    "KJ|README:QLTY_COVERAGE_URL" => resource_url.call(:qlty_coverage_url, "https://qlty.sh/gh/#{github_org}/projects/#{repo_name}/metrics/code?sort=coverageRating"),
    +    "KJ|README:QLTY_COVERAGE_BADGE_URL" => resource_url.call(:qlty_coverage_badge_url, "https://qlty.sh/gh/#{github_org}/projects/#{repo_name}/coverage.svg"),
    +    "KJ|CHANGELOG:GL_COMPARE_URL" => resource_url.call(:gitlab_compare_url, "https://gitlab.com/#{repo_slug}/-/compare"),
    +    "KJ|CHANGELOG:GL_TAGS_URL" => resource_url.call(:gitlab_tags_url, "https://gitlab.com/#{repo_slug}/-/tags"),
    +    "KJ|README:CONTRIBUTORS_IMAGE_REPO" => repo_slug,
    +    "KJ|README:STAR_HISTORY_REPO" => repo_slug,
    +    "KJ|README:SHA_CHECKSUMS_URL" => resource_url.call(:checksums_url, checksums_url)
    +  }
     end
    +
    @@ -40118,9 +55442,9 @@

    -

    +

    - .rakefile_scaffold_delete_selectors(content) ⇒ Object + .readme_workflow_paths(project_root) ⇒ Object @@ -40132,73 +55456,19 @@

     
     
    -10964
    -10965
    -10966
    -10967
    -10968
    -10969
    -10970
    -10971
    -10972
    -10973
    -10974
    -10975
    -10976
    -10977
    -10978
    -10979
    -10980
    -10981
    -10982
    -10983
    -10984
    -10985
    -10986
    -10987
    -10988
    -10989
    -10990
    -10991
    -10992
    -10993
    -10994
    -10995
    - -

    + @@ -40206,9 +55476,9 @@

    -

    +

    - .rakefile_selector(selector_id, start_line, end_line, reason) ⇒ Object + .recipe_decision_category(recipe) ⇒ Object @@ -40220,27 +55490,25 @@

     
     
    -11082
    -11083
    -11084
    -11085
    -11086
    -11087
    -11088
    -11089
    -11090
    +9352 +9353 +9354 +9355 +9356 +9357 +9358 +9359

    @@ -40248,9 +55516,9 @@

    -

    +

    - .rakefile_task_block_selectors(content) ⇒ Object + .recipe_decision_diagnostics(recipe) ⇒ Object @@ -40262,33 +55530,29 @@

     
     
    -11023
    -11024
    -11025
    -11026
    -11027
    -11028
    -11029
    -11030
    -11031
    -11032
    -11033
    -11034
    +9370 +9371 +9372 +9373 +9374 +9375 +9376 +9377 +9378 +9379

    @@ -40296,9 +55560,9 @@

    -

    +

    - .rakefile_task_class_records(content) ⇒ Object + .recipe_decision_evaluation(decision_policy:, recipe:, changed:, destination_existed:) ⇒ Object @@ -40310,33 +55574,29 @@

     
     
    -11010
    -11011
    -11012
    -11013
    -11014
    -11015
    -11016
    -11017
    -11018
    -11019
    -11020
    -11021
    +9341 +9342 +9343 +9344 +9345 +9346 +9347 +9348 +9349 +9350

    @@ -40344,62 +55604,85 @@

    -

    +

    - .rakefile_template_default_task?(content, record) ⇒ Boolean + .recipe_default_action(recipe, changed:, destination_existed:) ⇒ Object -

    -
    - +

     
     
    -3940
    -3941
    -3942
    +5260 +5261 +5262 +5263 +5264 +5265 +5266 +5267 +5268 +5269 +5270
    -
    # File 'lib/kettle/jem.rb', line 3940
    +      
    # File 'lib/kettle/jem.rb', line 5260
     
    -def rakefile_scaffold_cleanup_recipe?(recipe)
    -  recipe.fetch(:name) == "rakefile_scaffold_cleanup"
    +def readme_workflow_path_from_url(url)
    +  marker = "/actions/workflows/"
    +  path = URI.parse(url.to_s).path.to_s
    +  marker_index = path.index(marker)
    +  return "" unless marker_index
    +
    +  workflow = path[(marker_index + marker.length)..].to_s.split("/").first.to_s
    +  workflow.empty? ? "" : ".github/workflows/#{workflow}"
    +rescue URI::InvalidURIError
    +  ""
     end
    -
    # File 'lib/kettle/jem.rb', line 10964
    -
    -def rakefile_scaffold_delete_selectors(content)
    -  selectors = []
    -
    -  rakefile_require_records(content).each do |record|
    -    selector_id = case record.fetch(:name)
    -    when "bundler/gem_tasks"
    -      "rakefile_scaffold_require_bundler_gem_tasks"
    -    when "rspec/core/rake_task"
    -      "rakefile_scaffold_require_rspec_core_rake_task"
    -    when "rubocop/rake_task"
    -      "rakefile_scaffold_require_rubocop_rake_task"
    -    end
    -    next unless selector_id
    -
    -    selectors << rakefile_selector(selector_id, record.fetch(:start_line), record.fetch(:end_line), "wrapper_selected_scaffold_require")
    -  end
    -
    -  rakefile_task_class_records(content).each do |record|
    -    selector_id = case record.fetch(:receiver)
    -    when "RSpec::Core::RakeTask"
    -      "rakefile_scaffold_rspec_task"
    -    when "RuboCop::RakeTask"
    -      "rakefile_scaffold_rubocop_task"
    -    end
    -    next unless selector_id
    -
    -    selectors << rakefile_selector(selector_id, record.fetch(:start_line), record.fetch(:end_line), "wrapper_selected_scaffold_task")
    -  end
    +12503
    +12504
    +12505
    +12506
    +12507
    +
    +
    # File 'lib/kettle/jem.rb', line 12503
     
    -  selectors.concat(rakefile_task_block_selectors(content))
    -  selectors.sort_by { |selector| [selector.fetch(:start_line), selector.fetch(:end_line)] }
    +def readme_workflow_paths(project_root)
    +  Dir.glob(File.join(project_root.to_s, ".github/workflows/*.{yml,yaml}")).map do |path|
    +    ".github/workflows/#{File.basename(path)}"
    +  end.sort
     end
    -
    # File 'lib/kettle/jem.rb', line 11082
    +      
    # File 'lib/kettle/jem.rb', line 9352
     
    -def rakefile_selector(selector_id, start_line, end_line, reason)
    -  {
    -    selector_id: selector_id,
    -    selector_family: "structural_owner_range",
    -    start_line: start_line,
    -    end_line: end_line,
    -    reason: reason
    -  }
    +def recipe_decision_category(recipe)
    +  return "delete_file" if delete_file_recipe?(recipe)
    +  return "select_template_source" if recipe.fetch(:primitive) == "supplied_template_source_preference"
    +  return "bootstrap_config" if recipe.fetch(:primitive) == "supplied_kettle_config_bootstrap"
    +  return "apply_template_source" if recipe.fetch(:primitive) == "supplied_template_source_application"
    +
    +  "merge_valid_document"
     end
    -
    # File 'lib/kettle/jem.rb', line 11023
    -
    -def rakefile_task_block_selectors(content)
    -  rakefile_default_task_records(content).filter_map do |record|
    -    next if rakefile_template_default_task?(content, record)
    +      
    # File 'lib/kettle/jem.rb', line 9370
     
    -    rakefile_selector(
    -      "rakefile_scaffold_task_default",
    -      record.fetch(:start_line),
    -      record.fetch(:end_line),
    -      "wrapper_selected_scaffold_task"
    -    )
    +def recipe_decision_diagnostics(recipe)
    +  diagnostics = []
    +  if recipe.fetch(:primitive) == "supplied_template_source_application"
    +    diagnostics << "Non-interactive runs apply the configured template source default and report the decision."
    +  end
    +  if delete_file_recipe?(recipe)
    +    diagnostics << "Deletion is allowed only for explicit Kettle/Jem cleanup primitives."
       end
    +  diagnostics
     end
    -
    # File 'lib/kettle/jem.rb', line 11010
    -
    -def rakefile_task_class_records(content)
    -  top_level_ruby_call_records(content, :new).filter_map do |call|
    -    receiver = call.receiver&.slice
    -    next unless %w[RSpec::Core::RakeTask RuboCop::RakeTask].include?(receiver)
    +      
    # File 'lib/kettle/jem.rb', line 9341
     
    -    {
    -      receiver: receiver,
    -      start_line: call.location.start_line,
    -      end_line: call.location.end_line
    -    }
    -  end
    +def recipe_decision_evaluation(decision_policy:, recipe:, changed:, destination_existed:)
    +  decision_policy.resolve(
    +    id: "recipe:#{recipe.fetch(:name)}",
    +    category: recipe_decision_category(recipe),
    +    file: recipe.fetch(:target_path),
    +    default_action: recipe_default_action(recipe, changed: changed, destination_existed: destination_existed),
    +    severity: :advisory,
    +    diagnostics: recipe_decision_diagnostics(recipe)
    +  ).to_h
     end
    + + + + +
    +
     
     
    -  
    +9361
    +9362
    +9363
    +9364
    +9365
    +9366
    +9367
    +9368
    +
    +
    # File 'lib/kettle/jem.rb', line 9361
    +
    +def recipe_default_action(recipe, changed:, destination_existed:)
    +  return "delete" if delete_file_recipe?(recipe)
    +  return "keep" unless changed
    +  return "create" unless destination_existed
    +  return "replace" if recipe.fetch(:primitive) == "supplied_template_source_application"
    +
    +  "merge"
    +end
    +
    -
    + +
    +

    -

    Returns:

    -
      + .recipe_entry(name, target_path, provider_family, primitive, facts:, provider_backend: nil, selectors: []) ⇒ Object -
    • - - - (Boolean) - - - -
    • + -
    -

    + +
    @@ -40407,9 +55690,9 @@

    -

    +

    - .rbs_merge_options(recipe) ⇒ Object + .recipe_filter_patterns(template_selection) ⇒ Object @@ -40421,33 +55704,19 @@

     
     
    -5796
    -5797
    -5798
    -5799
    -5800
    -5801
    -5802
    -5803
    -5804
    -5805
    -5806
    -5807
    +9325 +9326 +9327 +9328 +9329

    @@ -40455,9 +55724,9 @@

    -

    +

    - .read_project_file(project_root, relative_path) ⇒ Object + .recipe_pack(facts) ⇒ Object @@ -40469,17 +55738,335 @@

     
     
    -8929
    -8930
    -8931
    -8932
    +3067 +3068 +3069 +3070 +3071 +3072 +3073 +3074 +3075 +3076 +3077 +3078 +3079 +3080 +3081 +3082 +3083 +3084 +3085 +3086 +3087 +3088 +3089 +3090 +3091 +3092 +3093 +3094 +3095 +3096 +3097 +3098 +3099 +3100 +3101 +3102 +3103 +3104 +3105 +3106 +3107 +3108 +3109 +3110 +3111 +3112 +3113 +3114 +3115 +3116 +3117 +3118 +3119 +3120 +3121 +3122 +3123 +3124 +3125 +3126 +3127 +3128 +3129 +3130 +3131 +3132 +3133 +3134 +3135 +3136 +3137 +3138 +3139 +3140 +3141 +3142 +3143 +3144 +3145 +3146 +3147 +3148 +3149 +3150 +3151 +3152 +3153 +3154 +3155 +3156 +3157 +3158 +3159 +3160 +3161 +3162 +3163 +3164 +3165 +3166 +3167 +3168 +3169 +3170 +3171 +3172 +3173 +3174 +3175 +3176 +3177 +3178 +3179 +3180 +3181 +3182 +3183 +3184 +3185 +3186 +3187 +3188 +3189 +3190 +3191 +3192 +3193 +3194 +3195 +3196 +3197 +3198 +3199 +3200 +3201 +3202 +3203 +3204 +3205 +3206 +3207 +3208 +3209 +3210 +3211 +3212 +3213 +3214 +3215 +3216 +3217 +3218 +3219 +3220 +3221 +3222 +3223 +3224 +3225 +3226 +3227 +3228 +3229

    @@ -40487,9 +56074,9 @@

    -

    +

    - .read_project_files(project_root, pack) ⇒ Object + .recipe_report_metadata(recipe) ⇒ Object @@ -40501,23 +56088,27 @@

     
     
    -4149
    -4150
    -4151
    -4152
    -4153
    -4154
    -4155
    +9245 +9246 +9247 +9248 +9249 +9250 +9251 +9252 +9253

    @@ -40525,9 +56116,9 @@

    -

    +

    - .readme_config_hash(config) ⇒ Object + .recipe_report_phase(recipe_report) ⇒ Object @@ -40539,17 +56130,15 @@

     
     
    -9222
    -9223
    -9224
    -9225
    +9891 +9892 +9893

    @@ -40557,9 +56146,9 @@

    -

    - .readme_copyright_notice(copyright_lines, copyright_prefix, author) ⇒ Object + .recipe_run_stats(recipe_reports, diagnostics: []) ⇒ Object @@ -40571,125 +56160,75 @@

    - -
     
     
    -11059
    -11060
    -11061
    -11062
    -11063
    -11064
    -11065
    -11066
    +9403 +9404 +9405 +9406 +9407 +9408 +9409 +9410 +9411 +9412 +9413
    -
    # File 'lib/kettle/jem.rb', line 11059
    -
    -def rakefile_template_default_task?(content, record)
    -  desc_lines = top_level_ruby_call_records(content, :desc).filter_map do |call|
    -    next unless ruby_string_argument(call) == "Default tasks aggregator"
    +      
    # File 'lib/kettle/jem.rb', line 9403
     
    -    call.location.start_line
    -  end
    -  desc_lines.include?(previous_nonblank_line_number(content, record.fetch(:start_line)))
    +def recipe_entry(name, target_path, provider_family, primitive, facts:, provider_backend: nil, selectors: [])
    +  {
    +    name: name,
    +    target_path: target_path,
    +    provider_family: provider_family,
    +    provider_backend: provider_backend,
    +    primitive: primitive,
    +    facts: facts,
    +    selectors: selectors
    +  }
     end
    -
    # File 'lib/kettle/jem.rb', line 5796
    +      
    # File 'lib/kettle/jem.rb', line 9325
     
    -def rbs_merge_options(recipe)
    -  options = {
    -    preference: (recipe.dig(:template_preference, :preference) || "destination").to_sym,
    -    add_template_only_nodes: true,
    -    freeze_token: recipe.dig(:template_preference, :freeze_token) || "kettle-jem"
    -  }
    -  if !recipe.dig(:template_preference, :add_template_only_nodes).nil?
    -    configured = DecisionPolicy.value_to_boolean(recipe.dig(:template_preference, :add_template_only_nodes))
    -    options[:add_template_only_nodes] = configured unless configured.nil?
    -  end
    -  options
    +def recipe_filter_patterns(template_selection)
    +  only = Array(template_selection[:only]).compact
    +  include = Array(template_selection[:include]).compact
    +  only.empty? ? [] : (only + include)
     end
    -
    # File 'lib/kettle/jem.rb', line 8929
    +      
    # File 'lib/kettle/jem.rb', line 3067
    +
    +def recipe_pack(facts)
    +  recipes = if monorepo_template_profile?(facts) || shim_template_profile?(facts)
    +    []
    +  else
    +    [
    +      recipe_entry("readme_metadata", "README.md", "markdown", "supplied_readme_metadata_synchronization", facts: %w[package funding readme]),
    +      recipe_entry("changelog_unreleased", "CHANGELOG.md", "markdown", "changelog_unreleased_normalization", facts: %w[package changelog]),
    +      recipe_entry(
    +        "generated_block_sync",
    +        "gemfiles/modular/shunted.gemfile",
    +        "ruby",
    +        "supplied_managed_text_block_replacement",
    +        facts: %w[package generated_blocks],
    +        provider_backend: "ast-crispr-ruby-prism"
    +      ),
    +      recipe_entry(
    +        "github_funding_yml",
    +        ".github/FUNDING.yml",
    +        "yaml",
    +        "supplied_github_funding_yaml_synchronization",
    +        facts: %w[package funding]
    +      )
    +    ]
    +  end
    +  if facts[:kettle_config_bootstrap]
    +    recipes.unshift(kettle_config_bootstrap_recipe(facts.fetch(:kettle_config_bootstrap)))
    +  end
    +  unless monorepo_template_profile?(facts) || shim_template_profile?(facts)
    +    facts.dig(:ci, :framework_matrix, :gemfiles).to_a.each do |gemfile|
    +      recipes << recipe_entry(
    +        "github_actions_framework_gemfile_#{workflow_recipe_slug(gemfile.fetch(:path))}",
    +        gemfile.fetch(:path),
    +        "ruby",
    +        "supplied_framework_matrix_gemfile_generation",
    +        facts: %w[ci]
    +      )
    +    end
    +    facts.dig(:ci, :obsolete_workflows).to_a.each do |workflow_path|
    +      recipes << recipe_entry(
    +        "github_actions_obsolete_workflow_cleanup_#{workflow_recipe_slug(workflow_path)}",
    +        workflow_path,
    +        "file",
    +        "supplied_obsolete_file_deletion",
    +        facts: %w[ci]
    +      )
    +    end
    +    facts.dig(:ci, :opt_in_workflow_cleanups).to_a.each do |workflow_path|
    +      recipes << recipe_entry(
    +        "github_actions_opt_in_workflow_cleanup_#{workflow_recipe_slug(workflow_path)}",
    +        workflow_path,
    +        "file",
    +        "supplied_opt_in_workflow_deletion",
    +        facts: %w[ci]
    +      )
    +    end
    +    facts.dig(:ci, :inactive_packaged_workflow_cleanups).to_a.each do |workflow_path|
    +      recipes << recipe_entry(
    +        "github_actions_inactive_packaged_workflow_cleanup_#{workflow_recipe_slug(workflow_path)}",
    +        workflow_path,
    +        "file",
    +        "supplied_inactive_packaged_workflow_deletion",
    +        facts: %w[ci]
    +      )
    +    end
    +    facts.dig(:funding, :open_collective_files).to_a.each do |relative_path|
    +      recipes << recipe_entry(
    +        "opencollective_disabled_file_cleanup_#{workflow_recipe_slug(relative_path)}",
    +        relative_path,
    +        "file",
    +        "supplied_disabled_opencollective_file_deletion",
    +        facts: %w[funding]
    +      )
    +    end
    +    facts.dig(:ci, :custom_workflows).to_a.each do |workflow_path|
    +      recipes << recipe_entry(
    +        "github_actions_workflow_snippets_#{workflow_recipe_slug(workflow_path)}",
    +        workflow_path,
    +        "yaml",
    +        "supplied_github_actions_workflow_snippet_merge",
    +        facts: %w[ci]
    +      )
    +    end
    +  end
    +  if monorepo_template_profile?(facts)
    +    facts.dig(:ci, :inactive_packaged_workflow_cleanups).to_a.each do |workflow_path|
    +      recipes << recipe_entry(
    +        "github_actions_inactive_packaged_workflow_cleanup_#{workflow_recipe_slug(workflow_path)}",
    +        workflow_path,
    +        "file",
    +        "supplied_inactive_packaged_workflow_deletion",
    +        facts: %w[ci]
    +      )
    +    end
    +  end
    +  facts.dig(:templates, :source_preferences).to_a.each do |preference|
    +    apply_template = preference.fetch(:apply, false)
    +    recipe = recipe_entry(
    +      "#{apply_template ? "template_source_application" : "template_source_preference"}_#{workflow_recipe_slug(preference.fetch(:target_path))}",
    +      preference.fetch(:target_path),
    +      "file",
    +      apply_template ? "supplied_template_source_application" : "supplied_template_source_preference",
    +      facts: %w[templates funding]
    +    )
    +    recipe[:template_preference] = preference
    +    recipe[:template_tokens] = facts.dig(:templates, :tokens) if facts.dig(:templates, :tokens)
    +    recipe[:readme_style] = facts[:readme_style] if preference.fetch(:target_path) == "README.md" && facts[:readme_style]
    +    recipes << recipe
    +  end
    +  facts.dig(:templates, :inactive_packaged_template_cleanups).to_a.each do |cleanup|
    +    recipes << recipe_entry(
    +      "template_inactive_packaged_cleanup_#{workflow_recipe_slug(cleanup.fetch(:target_path))}",
    +      cleanup.fetch(:target_path),
    +      "file",
    +      "supplied_inactive_packaged_template_deletion",
    +      facts: %w[templates]
    +    )
    +  end
    +  facts.dig(:templates, :legacy_destination_cleanups).to_a.each do |cleanup|
    +    recipes << recipe_entry(
    +      "template_legacy_destination_cleanup_#{workflow_recipe_slug(cleanup.fetch(:legacy_path))}",
    +      cleanup.fetch(:legacy_path),
    +      "file",
    +      "supplied_legacy_destination_file_deletion",
    +      facts: %w[templates]
    +    )
    +  end
    +  facts.dig(:templates, :obsolete_license_cleanups).to_a.each do |cleanup|
    +    recipes << recipe_entry(
    +      "template_obsolete_license_cleanup_#{workflow_recipe_slug(cleanup.fetch(:license_path))}",
    +      cleanup.fetch(:license_path),
    +      "file",
    +      "supplied_obsolete_license_file_deletion",
    +      facts: %w[templates license]
    +    )
    +  end
    +  facts.dig(:templates, :shim_profile_cleanups).to_a.each do |cleanup|
    +    recipes << recipe_entry(
    +      "template_shim_profile_cleanup_#{workflow_recipe_slug(cleanup.fetch(:target_path))}",
    +      cleanup.fetch(:target_path),
    +      "file",
    +      "supplied_shim_profile_file_deletion",
    +      facts: %w[templates shim]
    +    )
    +  end
    +  unless shim_template_profile?(facts)
    +    recipes << recipe_entry(
    +      "rakefile_scaffold_cleanup",
    +      "Rakefile",
    +      "generic_ast",
    +      "supplied_source_selector_deletion",
    +      provider_backend: "generic_structural_owners",
    +      facts: %w[rubygems rakefile],
    +      selectors: %w[rakefile_scaffold]
    +    )
    +  end
     
    -def read_project_file(project_root, relative_path)
    -  path = File.join(project_root, relative_path)
    -  File.file?(path) ? File.read(path) : ""
    +  {
    +    name: "kettle-jem-core",
    +    version: 1,
    +    ecosystem: "rubygems",
    +    recipes: recipes
    +  }
     end
    -
    # File 'lib/kettle/jem.rb', line 4149
    +      
    # File 'lib/kettle/jem.rb', line 9245
     
    -def read_project_files(project_root, pack)
    -  pack.fetch(:recipes).to_h do |recipe|
    -    relative_path = recipe.fetch(:target_path)
    -    path = File.join(project_root, relative_path)
    -    [relative_path, File.exist?(path) ? File.read(path) : ""]
    -  end
    +def (recipe)
    +   = {packaging_recipe: recipe.fetch(:name)}
    +  [:delete_file] = true if delete_file_recipe?(recipe)
    +  [:template_source_preference] = deep_dup(recipe[:template_preference]) if recipe[:template_preference]
    +  [:template_tokens] = deep_dup(recipe[:template_tokens]) if recipe[:template_tokens]
    +  [:readme_style] = deep_dup(recipe[:readme_style]) if recipe[:readme_style]
    +  [:bootstrap_file] = true if recipe.fetch(:primitive) == "supplied_kettle_config_bootstrap"
    +  
     end
    -
    # File 'lib/kettle/jem.rb', line 9222
    +      
    # File 'lib/kettle/jem.rb', line 9891
     
    -def readme_config_hash(config)
    -  raw_config = config.is_a?(Hash) ? config["readme"] : nil
    -  raw_config.is_a?(Hash) ? raw_config : {}
    +def recipe_report_phase(recipe_report)
    +  phase_for_recipe(recipe_report[:recipe_name], recipe_report[:relative_path])
     end
    -
    # File 'lib/kettle/jem.rb', line 9562
    -
    -def readme_copyright_notice(copyright_lines, copyright_prefix, author)
    -  lines = copyright_notice_lines(copyright_lines, copyright_prefix, author).map { |line| "- #{line}" }
    -  <<~MARKDOWN.chomp
    -    See [LICENSE.md][#{paperclip_ref(:license)}] for the official copyright notice.
    -
    -    <details markdown="1">
    -    <summary>Copyright holders</summary>
    -
    -    #{lines.join("\n")}
    -
    -    </details>
    -  MARKDOWN
    -end
    +9923 +9924 +9925 +9926 +9927 +9928 +9929 +9930 +9931 +9932 +9933 +9934 +9935 +9936 +9937 +9938 +9939 +9940 +9941 +9942 +9943 +9944 +9945 +9946 +9947 +9948 +9949 +9950 +9951 +9952 +9953 +9954 +9955
    -
    - -
    -

    - - .readme_default_logo_width(entries, one:, two:) ⇒ Object - - - - - -

    - - - -
    -
    +      
    # File 'lib/kettle/jem.rb', line 9923
     
    +def recipe_run_stats(recipe_reports, diagnostics: [])
    +  stats = {
    +    recipes: recipe_reports.length,
    +    created: 0,
    +    pre_existing: 0,
    +    identical: 0,
    +    changed: 0,
    +    deleted: 0,
    +    plugin_file_changes: diagnostics.count { |diagnostic| diagnostic[:kind] == "plugin_file_change" }
    +  }
     
    -9426
    -9427
    -9428
    -9429
    -9430
    -9431
    -9432
    -9433
    -
    -
    # File 'lib/kettle/jem.rb', line 9426
    +  recipe_reports.each do |report|
    +     = report.fetch(:metadata, {})
    +    if [:delete_file]
    +      stats[:deleted] += 1 if report[:changed]
    +      next
    +    end
     
    -def readme_default_logo_width(entries, one:, two:)
    -  case entries.length
    -  when 1
    -    one
    -  when 2
    -    two
    +    if [:destination_existed]
    +      stats[:pre_existing] += 1
    +      if report[:changed]
    +        stats[:changed] += 1
    +      else
    +        stats[:identical] += 1
    +      end
    +    elsif report[:changed]
    +      stats[:created] += 1
    +    end
       end
    -end
    -
    -
    - -
    -

    - - .readme_destination_front_sections(destination_content) ⇒ Object - - - - -

    - - - @@ -40697,9 +56236,9 @@

    -

    +

    - .readme_disabled_integrations(readme) ⇒ Object + .recipe_run_stats_summary(stats) ⇒ Object @@ -40711,29 +56250,31 @@

     
     
    -9921
    -9922
    -9923
    -9924
    -9925
    -9926
    -9927
    -9928
    -9929
    -9930
    +9957 +9958 +9959 +9960 +9961 +9962 +9963 +9964 +9965 +9966 +9967

    @@ -40741,9 +56282,9 @@

    -

    +

    - .readme_extra_preserved_sections_by_anchor(destination_sections, template_bases, preserve_targets) ⇒ Object + .recipe_runtime_context(recipe, facts, deletion) ⇒ Object @@ -40755,39 +56296,29 @@

    -10059 -10060 -10061 -10062 -10063 -10064 -10065 -10066 -10067 -10068 -10069 -10070 -10071 -10072 -10073 +9415 +9416 +9417 +9418 +9419 +9420 +9421 +9422 +9423 +9424

    @@ -40795,9 +56326,9 @@

    -

    +

    - .readme_family_intro_and_backend_matrix(readme_style = {}) ⇒ Object + .recipe_template_content(project_root, recipe) ⇒ Object @@ -40809,47 +56340,37 @@

     
     
    -8113
    -8114
    -8115
    -8116
    -8117
    -8118
    -8119
    -8120
    -8121
    -8122
    -8123
    -8124
    -8125
    -8126
    -8127
    -8128
    -8129
    -8130
    -8131
    +4670 +4671 +4672 +4673 +4674 +4675 +4676 +4677 +4678 +4679 +4680 +4681 +4682 +4683

    @@ -40857,9 +56378,9 @@

    -

    +

    - .readme_floss_funding_enabled?(license, config_value) ⇒ Boolean + .redundant_templating_guard_wrapper_node?(node) ⇒ Boolean @@ -40894,21 +56415,31 @@

     
     
    -9914
    -9915
    -9916
    -9917
    -9918
    -9919
    +5875 +5876 +5877 +5878 +5879 +5880 +5881 +5882 +5883 +5884 +5885

    @@ -40916,9 +56447,9 @@

    -

    +

    - .readme_fossa_project(readme, repository) ⇒ Object + .remove_duplicate_gemspec_assignments(content, receiver:, fields:) ⇒ Object @@ -40930,101 +56461,55 @@

     
     
    -9843
    -9844
    -9845
    -9846
    -9847
    -9848
    -9849
    -9850
    -9851
    -9852
    -9853
    -9854
    -9855
    -9856
    -9857
    -9858
    -9859
    -9860
    -9861
    -9862
    -9863
    +7451 +7452 +7453 +7454 +7455 +7456 +7457 +7458 +7459 +7460 +7461 +7462 +7463 +7464 +7465 +7466 +7467 +7468 +7469 +7470 +7471 +7472 +7473

    - -
    -
    -
    -
    -10003
    -10004
    -10005
    -10006
    -10007
    -10008
    -10009
    -10010
    -10011
    -10012
    -10013
    -10014
    -10015
    -
    -
    # File 'lib/kettle/jem.rb', line 10003
    -
    -def readme_destination_front_sections(destination_content)
    -  sections = markdown_sections(destination_content)
    -  h1 = sections.find { |section| section.fetch(:level) == 1 }
    -  synopsis = sections.find { |section| section.fetch(:level) == 2 && section.fetch(:base) == "synopsis" }
    -  return [] unless h1 && synopsis
    -
    -  sections.select do |section|
    -    section.fetch(:level) == 2 &&
    -      section.fetch(:start) > h1.fetch(:start) &&
    -      section.fetch(:end) < synopsis.fetch(:start) &&
    -      readme_front_section_preserved?(section)
    -  end
    +  stats[:summary] = recipe_run_stats_summary(stats)
    +  stats
     end
    -
    # File 'lib/kettle/jem.rb', line 9921
    +      
    # File 'lib/kettle/jem.rb', line 9957
     
    -def readme_disabled_integrations(readme)
    -  disabled = []
    -  integrations = readme["integrations"].is_a?(Hash) ? readme["integrations"] : {}
    -  badges = readme["badges"].is_a?(Hash) ? readme["badges"] : {}
    -  integrations.each do |name, value|
    -    disabled << name.to_s if falsey_config?(value)
    -  end
    -  disabled.concat(Array(badges["disabled"]).map(&:to_s))
    -  disabled.map { |name| name.tr("_", "-").downcase }.map { |name| (name == "code-ql") ? "codeql" : name }.uniq & README_INTEGRATIONS
    +def recipe_run_stats_summary(stats)
    +  [
    +    "recipes #{stats.fetch(:recipes)}",
    +    "created #{stats.fetch(:created)}",
    +    "pre_existing #{stats.fetch(:pre_existing)}",
    +    "identical #{stats.fetch(:identical)}",
    +    "changed #{stats.fetch(:changed)}",
    +    "deleted #{stats.fetch(:deleted)}",
    +    "plugin_file_changes #{stats.fetch(:plugin_file_changes)}"
    +  ].join(" ")
     end
    -
    # File 'lib/kettle/jem.rb', line 10059
    -
    -def readme_extra_preserved_sections_by_anchor(destination_sections, template_bases, preserve_targets)
    -  destination_sections.each_with_object({}) do |section, result|
    -    base = section.fetch(:base)
    -    next if template_bases.include?(base)
    -    next unless preserve_targets.include?(base)
    -
    -    anchor = destination_sections[0...destination_sections.index(section)].reverse.find do |candidate|
    -      template_bases.include?(candidate.fetch(:base))
    -    end
    -    next unless anchor
    +      
    # File 'lib/kettle/jem.rb', line 9415
     
    -    result[anchor.fetch(:base)] ||= []
    -    result[anchor.fetch(:base)] << section
    +def recipe_runtime_context(recipe, facts, deletion)
    +  context = deep_dup(facts)
    +  if recipe.fetch(:primitive) == "supplied_source_selector_deletion" && deletion
    +    context[:delete_selectors] = deletion.fetch(:delete_selectors)
       end
    +  context[:template_source_preference] = deep_dup(recipe[:template_preference]) if recipe[:template_preference]
    +  context[:template_tokens] = deep_dup(recipe[:template_tokens]) if recipe[:template_tokens]
    +  context[:readme_style] = deep_dup(recipe[:readme_style]) if recipe[:readme_style]
    +  context
     end
    -
    # File 'lib/kettle/jem.rb', line 8113
    +      
    # File 'lib/kettle/jem.rb', line 4670
     
    -def readme_family_intro_and_backend_matrix(readme_style = {})
    -  return "" unless readme_style.is_a?(Hash) && readme_style[:package_family].to_s == "structuredmerge"
    +def recipe_template_content(project_root, recipe)
    +  return "" unless %w[
    +    supplied_kettle_config_bootstrap
    +    supplied_template_source_preference
    +    supplied_template_source_application
    +  ].include?(recipe.fetch(:primitive))
     
    -  [
    -    "<details markdown=\"1\">",
    -    "<summary>StructuredMerge package family</summary>",
    -    "",
    -    "This gem is part of the StructuredMerge Ruby package family. The implementation inventory, layering model, and backend notes live in the [root package-family guide][sm-family-guide]. Shared behavior is defined by the [StructuredMerge fixtures][sm-family-fixtures] and implemented by the [Go][sm-family-go], [Ruby][sm-family-ruby], [Rust][sm-family-rust], and [TypeScript][sm-family-typescript] repositories.",
    -    "",
    -    "</details>",
    -    "",
    -    "[sm-family-guide]: https://github.com/structuredmerge/structuredmerge-ruby#package-family",
    -    "[sm-family-fixtures]: https://github.com/structuredmerge/structuredmerge-fixtures",
    -    "[sm-family-go]: https://github.com/structuredmerge/structuredmerge-go",
    -    "[sm-family-ruby]: https://github.com/structuredmerge/structuredmerge-ruby",
    -    "[sm-family-rust]: https://github.com/structuredmerge/structuredmerge-rust",
    -    "[sm-family-typescript]: https://github.com/structuredmerge/structuredmerge-typescript"
    -  ].join("\n")
    +  preference = recipe.fetch(:template_preference)
    +  path = File.join(
    +    preference.fetch(:source_root_path, project_root),
    +    preference.fetch(:source_relative_path, preference.fetch(:selected_source))
    +  )
    +  File.read(path)
     end
    -
    # File 'lib/kettle/jem.rb', line 9914
    +      
    # File 'lib/kettle/jem.rb', line 5875
     
    -def readme_floss_funding_enabled?(license, config_value)
    -  return false if falsey_config?(config_value)
    -  return true if %w[true yes 1 always enabled].include?(config_value.to_s.strip.downcase)
    +def redundant_templating_guard_wrapper_node?(node)
    +  return false unless gemfile_conditional_node?(node)
    +  return false unless prism_subtree_contains_string?(node.predicate, "K_JEM_TEMPLATING")
     
    -  Array(license[:spdx]).map(&:to_s).include?("MIT")
    +  body = node.statements&.body.to_a
    +  return false unless body.length == 1
    +
    +  inner = body.first
    +  gemfile_conditional_node?(inner) &&
    +    prism_subtree_contains_string?(inner.predicate, "K_JEM_TEMPLATING")
     end
    -
    # File 'lib/kettle/jem.rb', line 9843
    -
    -def readme_fossa_project(readme, repository)
    -  badges = readme["badges"].is_a?(Hash) ? readme["badges"] : {}
    -  return "" unless badges.key?("fossa")
    -
    -  value = badges["fossa"]
    -  return "" if falsey_config?(value)
    +      
    # File 'lib/kettle/jem.rb', line 7451
     
    -  project = case value
    -  when Hash
    -    return "" if falsey_config?(value["enabled"])
    +def remove_duplicate_gemspec_assignments(content, receiver:, fields:)
    +  wanted = fields.map(&:to_s).to_set
    +  seen = Set.new
    +  duplicate_ranges = []
    +  gemspec_assignment_records(content, receiver: receiver).each do |record|
    +    field = record.fetch(:field).to_s
    +    next unless wanted.include?(field)
     
    -    value["project"] || value["project_id"] || value["slug"]
    -  else
    -    value
    +    key = [record.fetch(:receiver).to_s, field, record.fetch(:value)]
    +    if seen.include?(key)
    +      duplicate_ranges << [record.fetch(:start_line), record.fetch(:end_line)]
    +    else
    +      seen << key
    +    end
       end
    -  normalized = project.to_s.strip
    -  return normalized unless normalized.empty? || %w[true yes 1 on enabled].include?(normalized.downcase)
    -
    -  slug = repository.is_a?(Hash) ? repository[:slug].to_s : ""
    -  slug.empty? ? "" : "git+github.com/#{slug}"
    -end
    -
    -
    - -
    -

    - - .readme_fossa_template_tokens(readme_style) ⇒ Object - - - - - -

    - - - @@ -41032,52 +56517,79 @@

    -

    +

    - .readme_front_section_preserved?(section) ⇒ Boolean + .remove_duplicate_simplecov_do_cov_bootstrap_blocks(content) ⇒ Object -

    -
    - +

    -
    -
    -
    -8005
    -8006
    -8007
    -8008
    -8009
    -8010
    -8011
    -8012
    -8013
    -8014
    -8015
    -8016
    -8017
    -
    -
    # File 'lib/kettle/jem.rb', line 8005
    -
    -def readme_fossa_template_tokens(readme_style)
    -  project = readme_style.fetch(:fossa_project, "").to_s
    -  return {"KJ|README:FOSSA_BADGE" => "", "KJ|README:FOSSA_REFS" => ""} if project.empty?
    +  return content if duplicate_ranges.empty?
     
    -  encoded_project = URI.encode_www_form_component(project)
    -  {
    -    "KJ|README:FOSSA_BADGE" => README_FOSSA_BADGE,
    -    "KJ|README:FOSSA_REFS" => [
    -      "[🧪fossa]: https://app.fossa.com/projects/#{encoded_project}?ref=badge_shield",
    -      "[🧪fossa-img]: https://app.fossa.com/api/projects/#{encoded_project}.svg?type=shield"
    -    ].join("\n")
    -  }
    +  lines = content.to_s.lines
    +  duplicate_ranges.reverse_each do |start_line, end_line|
    +    lines.slice!(start_line - 1, end_line - start_line + 1)
    +  end
    +  ensure_trailing_newline(lines.join)
     end
    + + + + +
    +
     
     
    -  
    +5665
    +5666
    +5667
    +5668
    +5669
    +5670
    +5671
    +5672
    +
    +
    # File 'lib/kettle/jem.rb', line 5665
    +
    +def remove_duplicate_simplecov_do_cov_bootstrap_blocks(content)
    +  records = simplecov_do_cov_bootstrap_records(content)
    +  return content if records.length <= 1
    +
    +  records.drop(1).select { |record| record.fetch(:bootstrap_only) }.sort_by { |record| -record.fetch(:start_line) }.reduce(content.to_s) do |output, record|
    +    replace_source_range_lines(output, record.fetch(:start_line), expand_line_range_through_following_blanks(output, record.fetch(:end_line)), "")
    +  end
    +end
    +
    -
    + +
    +

    -

    Returns:

    -
      + .remove_duplicate_simplecov_requires(content) ⇒ Object -
    • - - - (Boolean) - - - -
    • + -
    -

    + +
    @@ -41085,9 +56597,9 @@

    -

    +

    - .readme_h2_synopsis_logo_entries(config, org:, gem_name:, repository: {}) ⇒ Object + .remove_empty_gemspec_development_dependency_section_headings(content, receiver:) ⇒ Object @@ -41099,23 +56611,91 @@

     
     
    -9267
    -9268
    -9269
    -9270
    -9271
    -9272
    -9273
    +8233 +8234 +8235 +8236 +8237 +8238 +8239 +8240 +8241 +8242 +8243 +8244 +8245 +8246 +8247 +8248 +8249 +8250 +8251 +8252 +8253 +8254 +8255 +8256 +8257 +8258 +8259 +8260 +8261 +8262 +8263 +8264 +8265 +8266 +8267 +8268 +8269 +8270 +8271 +8272 +8273

    @@ -41123,9 +56703,9 @@

    -

    +

    - .readme_h2_synopsis_logo_options(config) ⇒ Object + .remove_gemfile_dependency_blocks(content, gem_names) ⇒ Object @@ -41137,15 +56717,43 @@

     
     
    -9175
    -9176
    -9177
    +6441 +6442 +6443 +6444 +6445 +6446 +6447 +6448 +6449 +6450 +6451 +6452 +6453 +6454 +6455 +6456 +6457

    @@ -41153,9 +56761,9 @@

    -

    +

    - .readme_h2_synopsis_logo_row(entries) ⇒ Object + .remove_gemfile_dependency_lines(content, gem_names) ⇒ Object @@ -41167,21 +56775,35 @@

     
     
    -9419
    -9420
    -9421
    -9422
    -9423
    -9424
    +6427 +6428 +6429 +6430 +6431 +6432 +6433 +6434 +6435 +6436 +6437 +6438 +6439

    @@ -41189,9 +56811,9 @@

    -

    +

    - .readme_h2_synopsis_logo_specs(config) ⇒ Object + .remove_gemfile_percent_w_entries(content, gem_names) ⇒ Object @@ -41203,49 +56825,49 @@

     
     
    -9179
    -9180
    -9181
    -9182
    -9183
    -9184
    -9185
    -9186
    -9187
    -9188
    -9189
    -9190
    -9191
    -9192
    -9193
    -9194
    -9195
    -9196
    -9197
    -9198
    +6618 +6619 +6620 +6621 +6622 +6623 +6624 +6625 +6626 +6627 +6628 +6629 +6630 +6631 +6632 +6633 +6634 +6635 +6636 +6637

    @@ -41253,88 +56875,83 @@

    -

    +

    - .readme_integration_configured?(project_root, integration) ⇒ Boolean + .remove_gemspec_assignment(content, receiver:, field:) ⇒ Object -

    -
    - +

     
     
    -10017
    -10018
    -10019
    +5760 +5761 +5762 +5763 +5764 +5765 +5766 +5767
    -
    # File 'lib/kettle/jem.rb', line 10017
    +      
    # File 'lib/kettle/jem.rb', line 5760
     
    -def readme_front_section_preserved?(section)
    -  section.fetch(:base) == "important" || readme_section_contains_badge_cloud?(section)
    +def remove_duplicate_simplecov_requires(content)
    +  records = simplecov_require_call_records(content)
    +  return content if records.length <= 1
    +
    +  records.drop(1).sort_by { |record| -record.fetch(:start_line) }.reduce(content.to_s) do |output, record|
    +    replace_source_range_lines(output, record.fetch(:start_line), expand_line_range_through_following_blanks(output, record.fetch(:end_line)), "")
    +  end
     end
    -
    # File 'lib/kettle/jem.rb', line 9267
    +      
    # File 'lib/kettle/jem.rb', line 8233
     
    -def readme_h2_synopsis_logo_entries(config, org:, gem_name:, repository: {})
    -  entries = readme_h2_synopsis_logo_specs(config).filter_map do |spec|
    -    readme_top_logo_entry_from_option(spec.fetch(:type), org: org, gem_name: gem_name, repository: repository)&.merge(width: spec[:width])
    +def remove_empty_gemspec_development_dependency_section_headings(content, receiver:)
    +  lines = content.to_s.lines
    +  note_index = lines.find_index { |line| line.lstrip.start_with?("# NOTE: It is preferable to list development dependencies") }
    +  return content unless note_index
    +
    +  dependency_line_indexes = gemspec_dependency_records(content, receiver: receiver).map { |record| record.fetch(:start_line) - 1 }.to_set
    +  remove_indexes = Set.new
    +  index = note_index + 1
    +  while index < lines.length
    +    stripped = lines[index].lstrip
    +    unless gemspec_dependency_section_heading_comment?(stripped)
    +      index += 1
    +      next
    +    end
    +
    +    remove_heading = true
    +    cursor = index + 1
    +    while cursor < lines.length
    +      cursor_line = lines[cursor]
    +      cursor_stripped = cursor_line.lstrip
    +      break if cursor_line.strip == "end" || gemspec_dependency_section_heading_comment?(cursor_stripped)
    +
    +      if dependency_line_indexes.include?(cursor)
    +        remove_heading = false
    +        break
    +      end
    +
    +      cursor += 1
    +    end
    +
    +    if remove_heading
    +      remove_indexes << index
    +      remove_indexes << (index + 1) if lines[index + 1]&.strip == ""
    +    end
    +    index += 1
       end
    -  entries = deduplicate_readme_top_logo_entries(entries)
    -  readme_top_logo_entries_with_asset_size(entries)
    +
    +  return content if remove_indexes.empty?
    +
    +  ensure_trailing_newline(lines.each_with_index.reject { |_line, line_index| remove_indexes.include?(line_index) }.map(&:first).join.gsub(/\n{3,}/, "\n\n"))
     end
    -
    # File 'lib/kettle/jem.rb', line 9175
    +      
    # File 'lib/kettle/jem.rb', line 6441
     
    -def readme_h2_synopsis_logo_options(config)
    -  readme_h2_synopsis_logo_specs(config).map { |spec| spec.fetch(:type) }
    +def remove_gemfile_dependency_blocks(content, gem_names)
    +  names = gem_names.map(&:to_s).reject(&:empty?).uniq
    +  return content if names.empty?
    +
    +  lines = content.to_s.lines
    +  remove_indexes = Set.new
    +  gemfile_gem_call_records(content).each do |record|
    +    next unless names.include?(record.fetch(:name))
    +
    +    start_index = record.fetch(:start_line) - 1
    +    start_index -= 1 while start_index.positive? && gemfile_comment_line?(lines[start_index - 1])
    +    (start_index..(record.fetch(:end_line) - 1)).each { |index| remove_indexes << index }
    +  end
    +  return content if remove_indexes.empty?
    +
    +  ensure_trailing_newline(lines.each_with_index.reject { |_line, index| remove_indexes.include?(index) }.map(&:first).join.gsub(/\n{3,}/, "\n\n"))
     end
    -
    # File 'lib/kettle/jem.rb', line 9419
    +      
    # File 'lib/kettle/jem.rb', line 6427
     
    -def readme_h2_synopsis_logo_row(entries)
    -  default_width = readme_default_logo_width(entries, one: "10%", two: "8%")
    -  entries.map do |entry|
    -    readme_logo_html(entry, align: "right", width: entry[:width] || default_width)
    -  end.join(" ")
    +def remove_gemfile_dependency_lines(content, gem_names)
    +  names = gem_names.map(&:to_s).reject(&:empty?).uniq
    +  return content if names.empty?
    +
    +  remove_indexes = Set.new
    +  gemfile_gem_call_records(content).each do |record|
    +    next unless names.include?(record.fetch(:name))
    +
    +    (record.fetch(:start_line)..record.fetch(:end_line)).each { |line_number| remove_indexes << (line_number - 1) }
    +  end
    +  lines = content.to_s.lines.each_with_index.reject { |_line, index| remove_indexes.include?(index) }.map(&:first)
    +  ensure_trailing_newline(lines.join.gsub(/\n{3,}/, "\n\n"))
     end
    -
    # File 'lib/kettle/jem.rb', line 9179
    +      
    # File 'lib/kettle/jem.rb', line 6618
     
    -def readme_h2_synopsis_logo_specs(config)
    -  readme_config = readme_config_hash(config)
    -  h2_synopsis_logos = readme_config["h2_synopsis_logos"]
    -  normalized = normalized_readme_logo_specs(h2_synopsis_logos)
    -  return normalized unless normalized.empty?
    +def remove_gemfile_percent_w_entries(content, gem_names)
    +  names = gem_names.map(&:to_s).reject(&:empty?).uniq
    +  return content if names.empty?
     
    -  raw_top_logos = readme_config["top_logos"] || readme_config["top_logo_options"]
    -  normalized_top_logos = normalized_readme_logo_specs(raw_top_logos)
    -  synopsis_from_top_logos = normalized_top_logos.select { |spec| README_H2_SYNOPSIS_LOGO_DEFAULTS.include?(spec.fetch(:type)) }
    -  return synopsis_from_top_logos unless synopsis_from_top_logos.empty?
    +  replacements = ruby_word_array_records(content).filter_map do |record|
    +    kept = record.fetch(:names).reject { |word| names.include?(word) }
    +    next if kept == record.fetch(:names)
     
    -  legacy_mode = readme_config["top_logo_mode"].to_s.strip.downcase.tr("-", "_")
    -  legacy_options = README_TOP_LOGO_LEGACY_MODE_MAP[legacy_mode]
    -  synopsis_from_legacy = Array(legacy_options).filter_map do |option|
    -    {type: option, width: nil} if README_H2_SYNOPSIS_LOGO_DEFAULTS.include?(option)
    +    replacement = if record.fetch(:source).lines.one?
    +      "%w[#{kept.join(" ")}]"
    +    else
    +      ruby_multiline_word_array_source(kept, indent: record.fetch(:start_column))
    +    end
    +    {start_offset: record.fetch(:start_offset), end_offset: record.fetch(:end_offset), replacement: replacement}
       end
    -  return synopsis_from_legacy unless synopsis_from_legacy.empty?
    +  return content if replacements.empty?
     
    -  raw_top_logos ? [] : README_H2_SYNOPSIS_LOGO_DEFAULTS.map { |option| {type: option, width: nil} }
    +  replaced = replace_source_offsets(content, replacements)
    +  ensure_trailing_newline(replaced.gsub(/\n{3,}/, "\n\n"))
     end
    + + + + +
    +
     
     
    -  
    +7396
    +7397
    +7398
    +7399
    +7400
    +7401
    +7402
    +7403
    +
    +
    # File 'lib/kettle/jem.rb', line 7396
    +
    +def remove_gemspec_assignment(content, receiver:, field:)
    +   = gemspec_assignment_records(content, receiver: receiver)
    +    .select { |record| record.fetch(:field) == field.to_s }
    +    .to_h { |record| [record.fetch(:start_line), record.merge(replacement: "")] }
    +  return content if .empty?
    +
    +  ensure_trailing_newline(replace_record_ranges(content, ).gsub(/\n{3,}/, "\n\n"))
    +end
    +
    -
    + +
    +

    -

    Returns:

    -
      + .remove_gemspec_dependency_lines(content, receiver:, names:, runtime_only: false) ⇒ Object -
    • - - - (Boolean) - - - -
    • + -
    -

    + +
    @@ -41342,9 +56959,9 @@

    -

    +

    - .readme_integration_project_root(project_root, template_profile, repository) ⇒ Object + .remove_gemspec_development_dependencies_already_runtime(content, receiver:) ⇒ Object @@ -41356,19 +56973,47 @@

     
     
    -9865
    -9866
    -9867
    -9868
    -9869
    +8213 +8214 +8215 +8216 +8217 +8218 +8219 +8220 +8221 +8222 +8223 +8224 +8225 +8226 +8227 +8228 +8229 +8230 +8231

    @@ -41376,9 +57021,9 @@

    -

    +

    - .readme_kloc_from_changelog(project_root, version) ⇒ Object + .remove_gemspec_legacy_version_loader_preamble(content) ⇒ Object @@ -41390,25 +57035,31 @@

     
     
    -4423
    -4424
    -4425
    -4426
    -4427
    -4428
    -4429
    -4430
    +7276 +7277 +7278 +7279 +7280 +7281 +7282 +7283 +7284 +7285 +7286

    @@ -41416,9 +57067,9 @@

    -

    +

    - .readme_license_intro(licenses, author_email: nil) ⇒ Object + .remove_gemspec_self_dependency_lines(content, package_name, receiver:) ⇒ Object @@ -41430,31 +57081,35 @@

     
     
    -9597
    -9598
    -9599
    -9600
    -9601
    -9602
    -9603
    -9604
    -9605
    -9606
    -9607
    +8343 +8344 +8345 +8346 +8347 +8348 +8349 +8350 +8351 +8352 +8353 +8354 +8355

    @@ -41462,9 +57117,9 @@

    -

    +

    - .readme_license_refs(expression, compat_category) ⇒ Object + .remove_gemspec_version_gem_dependency_when_non_default_entrypoint(content, facts, receiver:) ⇒ Object @@ -41476,29 +57131,21 @@

     
     
    -9626
    -9627
    -9628
    -9629
    -9630
    -9631
    -9632
    -9633
    -9634
    -9635
    +7389 +7390 +7391 +7392 +7393 +7394

    @@ -41506,9 +57153,9 @@

    -

    +

    - .readme_logo_config_value(spec) ⇒ Object + .remove_gemspec_version_gem_dependency_when_runtime_incompatible(content, facts, receiver:) ⇒ Object @@ -41520,17 +57167,21 @@

     
     
    -6752
    -6753
    -6754
    -6755
    +7382 +7383 +7384 +7385 +7386 +7387

    @@ -41538,9 +57189,9 @@

    -

    +

    - .readme_logo_facts(config, package_name:, github_org:, repository: {}) ⇒ Object + .remove_obsolete_simplecov_keep_destination_config(content) ⇒ Object @@ -41552,53 +57203,25 @@

     
     
    -9148
    -9149
    -9150
    -9151
    -9152
    -9153
    -9154
    -9155
    -9156
    -9157
    -9158
    -9159
    -9160
    -9161
    -9162
    -9163
    -9164
    -9165
    -9166
    -9167
    -9168
    -9169
    +8646 +8647 +8648 +8649 +8650 +8651 +8652 +8653

    @@ -41606,9 +57229,9 @@

    -

    +

    - .readme_logo_html(entry, align:, width: nil) ⇒ Object + .remove_readme_badge_and_refs(content, badge_source, link_labels) ⇒ Object @@ -41620,27 +57243,31 @@

     
     
    -9439
    -9440
    -9441
    -9442
    -9443
    -9444
    -9445
    -9446
    -9447
    +5009 +5010 +5011 +5012 +5013 +5014 +5015 +5016 +5017 +5018 +5019

    @@ -41648,9 +57275,9 @@

    -

    +

    - .readme_logo_options_from_config(config, primary_key, secondary_key, defaults) ⇒ Object + .remove_readme_sections(content, section_bases) ⇒ Object @@ -41662,15 +57289,35 @@

     
     
    -9200
    -9201
    -9202
    +5272 +5273 +5274 +5275 +5276 +5277 +5278 +5279 +5280 +5281 +5282 +5283 +5284

    @@ -41678,9 +57325,9 @@

    -

    +

    - .readme_logo_specs_from_config(config, primary_key, secondary_key, defaults) ⇒ Object + .remove_ruby_comment_lines_containing(content, text) ⇒ Object @@ -41692,43 +57339,35 @@

     
     
    -9204
    -9205
    -9206
    -9207
    -9208
    -9209
    -9210
    -9211
    -9212
    -9213
    -9214
    -9215
    -9216
    -9217
    -9218
    -9219
    -9220
    +7416 +7417 +7418 +7419 +7420 +7421 +7422 +7423 +7424 +7425 +7426 +7427 +7428

    @@ -41736,9 +57375,9 @@

    -

    +

    - .readme_logo_template_tokens(readme_logo) ⇒ Object + .remove_stale_generated_gemspec_homepage_replacement(replacements, destination_content, facts, receiver:) ⇒ Object @@ -41750,23 +57389,33 @@

     
     
    -9453
    -9454
    -9455
    -9456
    -9457
    -9458
    -9459
    +7199 +7200 +7201 +7202 +7203 +7204 +7205 +7206 +7207 +7208 +7209 +7210

    @@ -41774,9 +57423,9 @@

    -

    +

    - .readme_metadata_block(facts) ⇒ Object + .remove_stale_main_gemfile_direct_sibling_block(content, template_content) ⇒ Object @@ -41788,53 +57437,39 @@

     
     
    -10882
    -10883
    -10884
    -10885
    -10886
    -10887
    -10888
    -10889
    -10890
    -10891
    -10892
    -10893
    -10894
    -10895
    -10896
    -10897
    -10898
    -10899
    -10900
    -10901
    -10902
    -10903
    +5377 +5378 +5379 +5380 +5381 +5382 +5383 +5384 +5385 +5386 +5387 +5388 +5389 +5390 +5391

    @@ -41842,9 +57477,9 @@

    -

    +

    - .readme_metadata_license_expression(facts) ⇒ Object + .remove_top_level_yaml_key_lines(content, key) ⇒ Object @@ -41856,29 +57491,49 @@

     
     
    -10909
    -10910
    -10911
    -10912
    -10913
    -10914
    -10915
    -10916
    -10917
    -10918
    +13744 +13745 +13746 +13747 +13748 +13749 +13750 +13751 +13752 +13753 +13754 +13755 +13756 +13757 +13758 +13759 +13760 +13761 +13762 +13763

    @@ -41886,9 +57541,9 @@

    -

    +

    - .readme_metadata_table_cell(value) ⇒ Object + .remove_version_gem_entrypoint_references(content) ⇒ Object @@ -41900,15 +57555,41 @@

     
     
    -10905
    -10906
    -10907
    +11298 +11299 +11300 +11301 +11302 +11303 +11304 +11305 +11306 +11307 +11308 +11309 +11310 +11311 +11312 +11313

    @@ -41916,9 +57597,9 @@

    -

    +

    - .readme_preserve_config(config) ⇒ Object + .remove_yaml_mapping_path(content, path) ⇒ Object @@ -41930,39 +57611,31 @@

     
     
    -10156
    -10157
    -10158
    -10159
    -10160
    -10161
    -10162
    -10163
    -10164
    -10165
    -10166
    -10167
    -10168
    -10169
    -10170
    +8822 +8823 +8824 +8825 +8826 +8827 +8828 +8829 +8830 +8831 +8832

    @@ -41970,9 +57643,9 @@

    -

    +

    - .readme_preserve_config_without_partial_sections(preserve_config, partial_sections) ⇒ Object + .remove_yaml_scalar_path(content, path) ⇒ Object @@ -41984,35 +57657,29 @@

    -3543 -3544 -3545 -3546 -3547 -3548 -3549 -3550 -3551 -3552 -3553 -3554 -3555 +8778 +8779 +8780 +8781 +8782 +8783 +8784 +8785 +8786 +8787

    @@ -42020,9 +57687,9 @@

    -

    +

    - .readme_preserve_targets(template_sections, destination_lookup, preserve_config) ⇒ Object + .render_thin_readme(facts, readme_style, original, preserve_config) ⇒ Object @@ -42034,53 +57701,85 @@

     
     
    -10125
    -10126
    -10127
    -10128
    -10129
    -10130
    -10131
    -10132
    -10133
    -10134
    -10135
    -10136
    -10137
    -10138
    -10139
    -10140
    -10141
    -10142
    -10143
    -10144
    -10145
    -10146
    +3878 +3879 +3880 +3881 +3882 +3883 +3884 +3885 +3886 +3887 +3888 +3889 +3890 +3891 +3892 +3893 +3894 +3895 +3896 +3897 +3898 +3899 +3900 +3901 +3902 +3903 +3904 +3905 +3906 +3907 +3908 +3909 +3910 +3911 +3912 +3913 +3914 +3915

    @@ -42088,9 +57787,9 @@

    -

    +

    - .readme_project_emoji(project_root) ⇒ Object + .replace_existing_markdown_managed_block(content, marker, replacement) ⇒ Object @@ -42102,25 +57801,23 @@

     
     
    -7104
    -7105
    -7106
    -7107
    -7108
    -7109
    -7110
    -7111
    +14630 +14631 +14632 +14633 +14634 +14635 +14636

    @@ -42128,52 +57825,45 @@

    -

    - - .readme_section_contains_badge_cloud?(section) ⇒ Boolean +

    - + .replace_gemspec_assignment_sources(content, replacements, receiver:) ⇒ Object -

    -
    - - -
    -
    -
    - -

    Returns:

    -
      - -
    • - - - (Boolean) - - - -
    • -
    - -

     
     
    -9932
    -9933
    -9934
    -9935
    -9936
    -9937
    -9938
    -9939
    -9940
    -9941
    -9942
    -9943
    -9944
    -9945
    -9946
    -9947
    -9948
    -9949
    -9950
    -9951
    -9952
    +7405 +7406 +7407 +7408 +7409 +7410 +7411 +7412 +7413 +7414
    -
    # File 'lib/kettle/jem.rb', line 9932
    +      
    # File 'lib/kettle/jem.rb', line 7405
     
    -def readme_integration_configured?(project_root, integration)
    -  case integration
    -  when "codecov"
    -    File.exist?(File.join(project_root, ".codecov.yml")) ||
    -      File.exist?(File.join(project_root, "codecov.yml")) ||
    -      github_workflows_include?(project_root, "codecov/codecov-action")
    -  when "coveralls"
    -    File.exist?(File.join(project_root, ".coveralls.yml")) ||
    -      github_workflows_include?(project_root, "coverallsapp/github-action")
    -  when "qlty"
    -    File.exist?(File.join(project_root, ".qlty/qlty.toml")) ||
    -      File.exist?(File.join(project_root, ".qlty.yml")) ||
    -      github_workflows_include?(project_root, "qltysh/qlty-action")
    -  when "codeql"
    -    File.exist?(File.join(project_root, ".github/workflows/codeql.yml")) ||
    -      File.exist?(File.join(project_root, ".github/workflows/codeql-analysis.yml")) ||
    -      github_workflows_include?(project_root, "github/codeql-action")
    -  else
    -    false
    -  end
    +def remove_gemspec_dependency_lines(content, receiver:, names:, runtime_only: false)
    +  wanted = names.map(&:to_s).to_set
    +   = gemspec_dependency_records(content, receiver: receiver)
    +    .select { |record| wanted.include?(record.fetch(:name)) }
    +    .select { |record| !runtime_only || record.fetch(:kind) != "add_development_dependency" }
    +    .to_h { |record| [record.fetch(:start_line), record.merge(replacement: "")] }
    +  return content if .empty?
    +
    +  ensure_trailing_newline(replace_record_ranges(content, ).gsub(/\n{3,}/, "\n\n"))
     end
    -
    # File 'lib/kettle/jem.rb', line 9865
    +      
    # File 'lib/kettle/jem.rb', line 8213
     
    -def readme_integration_project_root(project_root, template_profile, repository)
    -  return project_root unless repository_monorepo_subproject?(repository)
    +def remove_gemspec_development_dependencies_already_runtime(content, receiver:)
    +  records = gemspec_dependency_records(content, receiver: receiver)
    +  runtime_names = records.each_with_object(Set.new) do |record, names|
    +    next if record.fetch(:kind) == "add_development_dependency"
     
    -  Array(repository && repository[:local_root]).find { |path| !path.to_s.empty? } || project_root
    +    names << record.fetch(:name)
    +  end
    +  return content if runtime_names.empty?
    +
    +  duplicate_development_records = records.select do |record|
    +    record.fetch(:kind) == "add_development_dependency" && runtime_names.include?(record.fetch(:name))
    +  end
    +  return content if duplicate_development_records.empty?
    +
    +   = duplicate_development_records.to_h do |record|
    +    [record.fetch(:start_line), record.merge(replacement: "")]
    +  end
    +  replace_record_ranges(content, )
     end
    -
    # File 'lib/kettle/jem.rb', line 4423
    +      
    # File 'lib/kettle/jem.rb', line 7276
     
    -def readme_kloc_from_changelog(project_root, version)
    -  return if project_root.to_s.empty? || version.to_s.empty?
    +def remove_gemspec_legacy_version_loader_preamble(content)
    +  node = gemspec_top_level_gem_version_node(content)
    +  unless node
    +    fallback_range = gemspec_legacy_version_loader_preamble_line_range(content)
    +    return content unless fallback_range
     
    -  changelog_path = File.join(project_root, "CHANGELOG.md")
    -  return unless File.file?(changelog_path)
    +    return replace_source_range_lines(content, fallback_range.fetch(:start_line), fallback_range.fetch(:end_line), "")
    +  end
     
    -  changelog_coverage_kloc(current_changelog_version_section(File.read(changelog_path), version))
    +  replace_source_range_lines(content, node.location.start_line, expand_line_range_through_following_blanks(content, node.location.end_line), "")
     end
    -
    # File 'lib/kettle/jem.rb', line 9597
    +      
    # File 'lib/kettle/jem.rb', line 8343
     
    -def readme_license_intro(licenses, author_email: nil)
    -  return mit_readme_license_intro if licenses == ["MIT"]
    +def remove_gemspec_self_dependency_lines(content, package_name, receiver:)
    +  name = package_name.to_s
    +  return content if name.empty?
     
    -  intro = "The gem is available under the following license#{"s" if licenses.size > 1}: " \
    -    "#{licenses.map { |license| license_link(license) }.join(", ")}.\n" \
    -    "See [LICENSE.md][#{paperclip_ref(:license)}] for details."
    -  intro += "\n\n#{license_contact_line(author_email, context: :readme)}" if non_mit_licenses?(licenses)
    -  guide_table = license_use_case_guide_table(licenses, author_email: author_email)
    -  intro += "\n\n### License use-case guide\n\n#{guide_table}" if guide_table
    -  intro
    +  remove_indexes = Set.new
    +  gemspec_dependency_records(content, receiver: receiver).each do |record|
    +    next unless record.fetch(:name) == name
    +
    +    (record.fetch(:start_line)..record.fetch(:end_line)).each { |line_number| remove_indexes << (line_number - 1) }
    +  end
    +  lines = content.to_s.lines.each_with_index.reject { |_line, index| remove_indexes.include?(index) }.map(&:first)
    +  ensure_trailing_newline(lines.join.gsub(/\n{3,}/, "\n\n"))
     end
    -
    # File 'lib/kettle/jem.rb', line 9626
    +      
    # File 'lib/kettle/jem.rb', line 7389
     
    -def readme_license_refs(expression, compat_category)
    -  [
    -    "[#{paperclip_ref(:copyright_notice_explainer)}]: https://opensource.stackexchange.com/questions/5778/why-do-licenses-such-as-the-mit-license-specify-a-single-year",
    -    "[#{paperclip_ref(:license)}]: LICENSE.md",
    -    "[#{paperclip_ref(:license_ref)}]: #{license_badge_ref(expression)}",
    -    "[#{paperclip_ref(:license_img)}]: #{license_badge_img(expression)}",
    -    "[#{paperclip_ref(:license_compat)}]: #{license_compat_ref(compat_category)}",
    -    "[#{paperclip_ref(:license_compat_img)}]: #{license_compat_img(compat_category)}"
    -  ].join("\n")
    +def remove_gemspec_version_gem_dependency_when_non_default_entrypoint(content, facts, receiver:)
    +  return content unless facts.to_h.dig(:version_gem, :non_default_entrypoint)
    +
    +  cleaned = remove_gemspec_dependency_lines(content, receiver: receiver, names: ["version_gem"], runtime_only: true)
    +  remove_ruby_comment_lines_containing(cleaned, "version_gem")
     end
    -
    # File 'lib/kettle/jem.rb', line 6752
    +      
    # File 'lib/kettle/jem.rb', line 7382
     
    -def readme_logo_config_value(spec)
    -  width = spec[:width].to_s
    -  width.empty? ? spec.fetch(:type).tr("_", "-") : "#{spec.fetch(:type).tr("_", "-")}|#{width}"
    +def remove_gemspec_version_gem_dependency_when_runtime_incompatible(content, facts, receiver:)
    +  return content if version_gem_runtime_compatible?(facts)
    +
    +  cleaned = remove_gemspec_dependency_lines(content, receiver: receiver, names: ["version_gem"], runtime_only: true)
    +  remove_ruby_comment_lines_containing(cleaned, "version_gem")
     end
    -
    # File 'lib/kettle/jem.rb', line 9148
    +      
    # File 'lib/kettle/jem.rb', line 8646
     
    -def readme_logo_facts(config, package_name:, github_org:, repository: {})
    -  top_entries = readme_top_logo_entries(
    -    config,
    -    org: github_org.to_s,
    -    gem_name: package_name.to_s,
    -    repository: repository || {}
    -  )
    -  h2_synopsis_entries = readme_h2_synopsis_logo_entries(
    -    config,
    -    org: github_org.to_s,
    -    gem_name: package_name.to_s,
    -    repository: repository || {}
    -  )
    -  all_entries = deduplicate_readme_top_logo_entries(top_entries + h2_synopsis_entries)
    -  compact_hash(
    -    top_logos: readme_top_logo_options(config).join(","),
    -    h2_synopsis_logos: readme_h2_synopsis_logo_options(config).join(","),
    -    top_logo_row: readme_top_logo_row(top_entries),
    -    h2_synopsis_logo_row: readme_h2_synopsis_logo_row(h2_synopsis_entries),
    -    top_logo_refs: readme_top_logo_refs(all_entries)
    -  )
    +def remove_obsolete_simplecov_keep_destination_config(content)
    +  config = YAML.safe_load(content.to_s, permitted_classes: [], aliases: true) || {}
    +  simplecov_config = config.dig("files", ".simplecov")
    +  return content unless simplecov_config.is_a?(Hash)
    +  return content unless simplecov_config.keys == ["strategy"] && simplecov_config["strategy"].to_s == "keep_destination"
    +
    +  remove_yaml_mapping_path(content, %w[files .simplecov])
     end
    -
    # File 'lib/kettle/jem.rb', line 9439
    +      
    # File 'lib/kettle/jem.rb', line 5009
     
    -def readme_logo_html(entry, align:, width: nil)
    -  attributes = [
    -    %(alt="#{html_attribute_escape("#{entry[:label]} Logo#{entry[:credit_separator]}#{entry[:credit]}")}"),
    -    %(src="#{html_attribute_escape(entry[:image_url])}")
    -  ]
    -  attributes << %(width="#{html_attribute_escape(width)}") if width
    -  attributes << %(align="#{html_attribute_escape(align)}")
    -  %(<a href="#{html_attribute_escape(entry[:href])}"><img #{attributes.join(" ")}/></a>)
    +def remove_readme_badge_and_refs(content, badge_source, link_labels)
    +  ensure_runtime_dependencies!
    +  processed = content.to_s.gsub(badge_source, "").lines.map(&:rstrip).join("\n")
    +  processed = "#{processed}\n" if content.to_s.end_with?("\n")
    +  Array(link_labels).reduce(processed) do |memo, label|
    +    delete_markdown_with_ast_crispr(
    +      memo,
    +      Ast::Crispr::Markdown::Markly::Selectors.link_definition(label: label, limit: {at_least: 0})
    +    )
    +  end
     end
    -
    # File 'lib/kettle/jem.rb', line 9200
    +      
    # File 'lib/kettle/jem.rb', line 5272
     
    -def readme_logo_options_from_config(config, primary_key, secondary_key, defaults)
    -  readme_logo_specs_from_config(config, primary_key, secondary_key, defaults).map { |spec| spec.fetch(:type) }
    +def remove_readme_sections(content, section_bases)
    +  bases = section_bases.map { |section| normalize_readme_heading(section) }.uniq
    +  return content if bases.empty?
    +
    +  sections = markdown_sections(content).select { |section| bases.include?(section.fetch(:base)) }
    +  return content if sections.empty?
    +
    +  lines = content.to_s.split("\n", -1)
    +  sections.reverse_each do |section|
    +    lines[section.fetch(:start)..section.fetch(:end)] = []
    +  end
    +  ensure_trailing_newline(lines.join("\n").gsub(/\n{3,}/, "\n\n").strip)
     end
    -
    # File 'lib/kettle/jem.rb', line 9204
    +      
    # File 'lib/kettle/jem.rb', line 7416
     
    -def readme_logo_specs_from_config(config, primary_key, secondary_key, defaults)
    -  readme_config = readme_config_hash(config)
    -  raw_logos = readme_config[primary_key] || readme_config[secondary_key]
    -  normalized = normalized_readme_logo_specs(raw_logos)
    -  selected = normalized.select { |spec| defaults.include?(spec.fetch(:type)) }
    -  return selected unless selected.empty?
    -  return [] if raw_logos
    +def remove_ruby_comment_lines_containing(content, text)
    +  result = prism_parse_success(content)
    +  return content unless result
     
    -  legacy_mode = readme_config["top_logo_mode"].to_s.strip.downcase.tr("-", "_")
    -  legacy_options = README_TOP_LOGO_LEGACY_MODE_MAP[legacy_mode]
    -  selected_legacy = Array(legacy_options).filter_map do |option|
    -    {type: option, width: nil} if defaults.include?(option)
    +  selectors = result.comments.filter_map do |comment|
    +    next unless comment.location.slice.include?(text.to_s)
    +
    +    {start_line: comment.location.start_line, end_line: comment.location.end_line}
       end
    -  return selected_legacy unless selected_legacy.empty?
    +  return content if selectors.empty?
     
    -  defaults.map { |option| {type: option, width: nil} }
    +  ensure_trailing_newline(delete_line_ranges(content.to_s, selectors))
     end
    -
    # File 'lib/kettle/jem.rb', line 9453
    +      
    # File 'lib/kettle/jem.rb', line 7199
     
    -def readme_logo_template_tokens()
    -  {
    -    "KJ|README:H2_SYNOPSIS_LOGO_ROW" => [:h2_synopsis_logo_row].to_s,
    -    "KJ|README:TOP_LOGO_ROW" => [:top_logo_row].to_s,
    -    "KJ|README:TOP_LOGO_REFS" => [:top_logo_refs].to_s
    -  }
    +def remove_stale_generated_gemspec_homepage_replacement(replacements, destination_content, facts, receiver:)
    +  desired_homepage = facts.to_h.dig(:package, :homepage_url).to_s
    +  return replacements if desired_homepage.empty? || !github_org_from_url(desired_homepage)
    +  return replacements unless replacements.key?("homepage")
    +
    +  existing = gemspec_assignment_records(destination_content, receiver: receiver).find { |record| record.fetch(:field) == "homepage" }
    +  existing_homepage = existing && existing.fetch(:value).to_s
    +  return replacements if existing_homepage.empty? || existing_homepage == desired_homepage
    +  return replacements unless github_org_from_url(existing_homepage)
    +
    +  replacements.except("homepage")
     end
    -
    # File 'lib/kettle/jem.rb', line 10882
    +      
    # File 'lib/kettle/jem.rb', line 5377
     
    -def (facts)
    -  package = facts.fetch(:package)
    -  funding_urls = facts.fetch(:funding, {}).fetch(:urls, [])
    -  rows = [
    -    ["Package", package[:name]],
    -    ["Description", package[:description]],
    -    ["Homepage", package[:homepage_url]],
    -    ["Source", package[:source_url]],
    -    ["License", (facts)],
    -    ["Funding", funding_urls.join(", ")]
    -  ].reject { |(_, value)| value.to_s.empty? }
    +def remove_stale_main_gemfile_direct_sibling_block(content, template_content)
    +  return content if template_content.to_s.include?("direct_sibling_gems = %w[")
     
    -  [
    -    "<!-- kettle-jem:metadata:start -->",
    -    "| Field | Value |",
    -    "|---|---|",
    -    *rows.map do |field, value|
    -      "| #{(field)} | #{(value)} |"
    -    end,
    -    "<!-- kettle-jem:metadata:end -->"
    -  ].join("\n")
    +  records = main_gemfile_direct_sibling_records(content)
    +  return content if records.empty?
    +
    +  records.sort_by { |record| -record.fetch(:start_line) }.reduce(content.to_s) do |output, record|
    +    replace_source_range_lines(
    +      output,
    +      record.fetch(:start_line),
    +      expand_line_range_through_following_blanks(output, record.fetch(:end_line)),
    +      ""
    +    )
    +  end
     end
    -
    # File 'lib/kettle/jem.rb', line 10909
    +      
    # File 'lib/kettle/jem.rb', line 13744
     
    -def (facts)
    -  package = facts.fetch(:package)
    -  expression = package[:license_expression].to_s
    -  spdx_ids = Array(facts.dig(:license, :spdx)).map(&:to_s).reject(&:empty?)
    -  return expression if expression.empty? || spdx_ids.empty?
    +def remove_top_level_yaml_key_lines(content, key)
    +  lines = content.to_s.lines
    +  document = Psych.parse_stream(content.to_s).children.first
    +  root = document&.root
    +  return content unless root.is_a?(Psych::Nodes::Mapping)
     
    -  spdx_ids.sort_by { |spdx_id| -spdx_id.length }.reduce(expression) do |formatted, spdx_id|
    -    formatted.gsub(/\b#{Regexp.escape(spdx_id)}\b/, "`#{spdx_id}`")
    +  pairs = root.children.each_slice(2).to_a
    +  pairs.each_with_index do |(key_node, value_node), index|
    +    next unless key_node.is_a?(Psych::Nodes::Scalar) && key_node.value.to_s == key.to_s
    +
    +    next_key = pairs[index + 1]&.first
    +    end_line = next_key&.start_line || value_node.end_line
    +    end_line += 1 if end_line <= key_node.start_line
    +    return [*lines[0...key_node.start_line], *lines[end_line..].to_a].join
       end
    +
    +  content
    +rescue Psych::Exception
    +  content
     end
    -
    # File 'lib/kettle/jem.rb', line 10905
    +      
    # File 'lib/kettle/jem.rb', line 11298
     
    -def (value)
    -  value.to_s.split(/\r\n?|\n/).map(&:strip).join("<br>").gsub("|", "\\|")
    +def remove_version_gem_entrypoint_references(content)
    +  selectors = []
    +  top_level_ruby_call_records(content, :require).each do |call|
    +    next unless ruby_string_argument(call) == "version_gem"
    +
    +    selectors << {start_line: call.location.start_line, end_line: ruby_node_source_end_line(call)}
    +  end
    +  top_level_ruby_call_records(content, :class_eval).each do |call|
    +    next unless version_gem_class_eval_call?(call)
    +
    +    selectors << {start_line: call.location.start_line, end_line: ruby_node_source_end_line(call)}
    +  end
    +  return content.to_s if selectors.empty?
    +
    +  collapse_excess_blank_lines(delete_line_ranges(content.to_s, selectors))
     end
    -
    # File 'lib/kettle/jem.rb', line 10156
    +      
    # File 'lib/kettle/jem.rb', line 8822
     
    -def readme_preserve_config(config)
    -  readme = config["readme"]
    -  return {} unless readme.is_a?(Hash)
    +def remove_yaml_mapping_path(content, path)
    +  lines = content.to_s.lines
    +  yaml_mapping_path_entries(content).each do |entry|
    +    next unless entry.fetch(:path) == path
     
    -  result = {}
    -  result[:sections] = Array(readme["preserve_sections"]) if readme.key?("preserve_sections")
    -  result[:patterns] = Array(readme["preserve_patterns"]) if readme.key?("preserve_patterns")
    -  if readme["section_aliases"].is_a?(Hash)
    -    result[:aliases] = README_SECTION_ALIASES.merge(
    -      readme["section_aliases"].transform_keys { |key| normalize_readme_heading(key) }
    -                               .transform_values { |value| normalize_readme_heading(value) }
    -    )
    +    start_line = entry.fetch(:start_line)
    +    end_line = entry.fetch(:end_line)
    +    return ensure_trailing_newline([*lines[0...start_line], *lines[end_line..].to_a].join)
       end
    -  result
    +  content
     end
    -
    # File 'lib/kettle/jem.rb', line 3543
    +      
    # File 'lib/kettle/jem.rb', line 8778
     
    -def readme_preserve_config_without_partial_sections(preserve_config, partial_sections)
    -  normalized_partials = partial_sections.map { |section| normalize_readme_section_key(section) }
    -  return preserve_config if normalized_partials.empty?
    +def remove_yaml_scalar_path(content, path)
    +  lines = content.to_s.lines
    +  yaml_scalar_path_entries(content).each do |entry|
    +    next unless entry.fetch(:path) == path
     
    -  config = (preserve_config || {}).dup
    -  sections = if config.key?(:sections)
    -    Array(config[:sections]).map { |section| normalize_readme_section_key(section) }
    -  else
    -    README_DEFAULT_PRESERVE_SECTIONS.dup
    +    line_index = entry.fetch(:line)
    +    return ensure_trailing_newline(lines.each_with_index.reject { |_line, index| index == line_index }.map(&:first).join)
       end
    -  config[:sections] = sections.reject { |section| normalized_partials.include?(section) }
    -  config
    +  content
     end
    -
    # File 'lib/kettle/jem.rb', line 10125
    +      
    # File 'lib/kettle/jem.rb', line 3878
     
    -def readme_preserve_targets(template_sections, destination_lookup, preserve_config)
    -  sections = if preserve_config.key?(:sections)
    -    Array(preserve_config[:sections]).map { |section| normalize_readme_heading(section) }
    -  else
    -    README_DEFAULT_PRESERVE_SECTIONS.dup
    -  end
    -  patterns = if preserve_config.key?(:patterns)
    -    Array(preserve_config[:patterns]).map { |pattern| pattern.to_s.strip.downcase }
    -  else
    -    README_DEFAULT_PRESERVE_PATTERNS.dup
    -  end
    -  aliases = preserve_config[:aliases] || README_SECTION_ALIASES
    -  targets = sections.dup
    -  template_sections.each do |section|
    -    base = section.fetch(:base)
    -    targets << base if patterns.any? { |pattern| File.fnmatch?(pattern, base, File::FNM_PATHNAME) }
    -  end
    -  aliases.each do |from, to|
    -    targets << to if destination_lookup.key?(from) && targets.include?(to)
    -  end
    -  targets.uniq
    +def render_thin_readme(facts, readme_style, original, preserve_config)
    +  package = facts.fetch(:package)
    +  rubygems = facts.fetch(:rubygems)
    +  license_expression = package[:license_expression].to_s
    +  min_ruby = minimum_ruby_token(rubygems[:min_ruby])
    +  title = classify_namespace(package.fetch(:name))
    +  badges = [
    +    package[:source_url] && "[![Source](https://img.shields.io/badge/source-github-238636.svg)](#{package[:source_url]})",
    +    license_expression.empty? ? nil : "![License](https://img.shields.io/badge/license-#{shield_token(license_expression)}-259D6C.svg)"
    +  ].compact.join(" ")
    +  funding_enabled = readme_style.fetch(:floss_funding_enabled, false)
    +  security_enabled = readme_style.fetch(:security_enabled, false)
    +  section_partials = readme_section_partials_for_render(readme_style, facts)
    +  rendered = [
    +    "# 💎 #{title}",
    +    badges,
    +    "## 🌻 Synopsis\n\n#{section_partials.fetch("synopsis", "")}",
    +    "## 💡 Info you can shake a stick at\n\nCompatible with MRI Ruby #{min_ruby}+.\n\n#{readme_family_intro_and_backend_matrix(readme_style)}",
    +    "## ✨ Installation\n\n```console\ngem install #{package.fetch(:name)}\n```",
    +    "## ⚙️ Configuration\n\n#{section_partials.fetch("configuration", "")}",
    +    "## 🔧 Basic Usage\n\n#{section_partials.fetch("basic usage", "")}"
    +  ]
    +  rendered << "## 🦷 FLOSS Funding\n\nThis free software project accepts funding support when configured by the package maintainer." if funding_enabled
    +  rendered << "## 🔐 Security\n\nSee [SECURITY.md](SECURITY.md)." if security_enabled
    +  rendered.concat([
    +    "## 🤝 Contributing\n\nContributions are welcome. Missing optional service integrations are reported by the generator instead of rendered as broken badges.",
    +    "## 📌 Versioning\n\nThis project follows semantic versioning for its public API where practical.",
    +    "## 📄 License\n\nThis project is made available under the following license expression: #{license_expression.empty? ? "unspecified" : license_expression}.",
    +    "## 🤑 A request for help\n\nPlease support the project by using it, reporting issues, and contributing improvements."
    +  ])
    +  template_content = rendered.reject(&:empty?).join("\n\n") + "\n"
    +
    +  merge_readme_template(
    +    template_content: template_content,
    +    destination_content: original,
    +    preserve_config: readme_preserve_config_without_partial_sections(preserve_config, section_partials.keys)
    +  )
     end
    -
    # File 'lib/kettle/jem.rb', line 7104
    -
    -def readme_project_emoji(project_root)
    -  readme_path = File.join(project_root, "README.md")
    -  return unless File.exist?(readme_path)
    +      
    # File 'lib/kettle/jem.rb', line 14630
     
    -  h1 = markdown_heading_owners(File.read(readme_path), source_label: "README.md").find { |owner| owner.level == 1 }
    -  candidate = first_grapheme(h1&.heading_text)
    -  decorative_grapheme?(candidate) ? candidate : nil
    +def replace_existing_markdown_managed_block(content, marker, replacement)
    +  open = "<!-- #{marker}:start -->"
    +  close = "<!-- #{marker}:end -->"
    +  replace_markdown_managed_block_with_crispr(content, open, close, replacement) do
    +    content
    +  end
     end
    +
    @@ -42181,9 +57871,9 @@

    -

    +

    - .readme_section_partials(project_root, config, readme) ⇒ Object + .replace_gemspec_version_assignment(content, receiver:, rhs:) ⇒ Object @@ -42195,57 +57885,29 @@

     
     
    -9885
    -9886
    -9887
    -9888
    -9889
    -9890
    -9891
    -9892
    -9893
    -9894
    -9895
    -9896
    -9897
    -9898
    -9899
    -9900
    -9901
    -9902
    -9903
    -9904
    -9905
    -9906
    -9907
    -9908
    +7233 +7234 +7235 +7236 +7237 +7238 +7239 +7240 +7241 +7242

    @@ -42253,9 +57915,9 @@

    -

    +

    - .readme_section_partials_for_render(readme_style, facts) ⇒ Object + .replace_github_workflow_action_pin_sha(line, sha) ⇒ Object @@ -42267,33 +57929,15 @@

     
     
    -3530
    -3531
    -3532
    -3533
    -3534
    -3535
    -3536
    -3537
    -3538
    -3539
    -3540
    -3541
    +14514 +14515 +14516

    @@ -42301,85 +57945,60 @@

    -

    +

    - .readme_style_facts(project_root, config, license, template_profile: nil, repository: nil) ⇒ Object + .replace_kettle_config_bootstrap_licenses(content, licenses) ⇒ Object -

     
     
    -10021
    -10022
    -10023
    +7981 +7982 +7983 +7984 +7985 +7986 +7987 +7988 +7989 +7990 +7991
    -
    # File 'lib/kettle/jem.rb', line 10021
    +      
    # File 'lib/kettle/jem.rb', line 7981
     
    -def readme_section_contains_badge_cloud?(section)
    -  section.fetch(:body).to_s.lines.any? { |line| line.include?("[![") }
    +def replace_gemspec_assignment_sources(content, replacements, receiver:)
    +  return content if replacements.empty?
    +
    +   = gemspec_assignment_records(content, receiver: receiver).each_with_object({}) do |record, index|
    +    field = record.fetch(:field)
    +    next unless replacements.key?(field)
    +
    +    index[record.fetch(:start_line)] = record.merge(replacement: "#{replacements.fetch(field)}\n")
    +  end
    +  replace_record_ranges(content, )
     end
    -
    # File 'lib/kettle/jem.rb', line 9885
    -
    -def readme_section_partials(project_root, config, readme)
    -  configured = readme["section_partials"]
    -  return {} unless configured.is_a?(Hash)
    -
    -  root = template_root(project_root, config["templates"].is_a?(Hash) ? config["templates"] : {})
    -  configured.each_with_object({}) do |(section, source), result|
    -    normalized = normalize_readme_section_key(section)
    -    next if normalized.empty?
    +      
    # File 'lib/kettle/jem.rb', line 7233
     
    -    source_path = source.to_s
    -    next if source_path.empty?
    +def replace_gemspec_version_assignment(content, receiver:, rhs:)
    +  replacement = "#{receiver}.version = #{rhs}"
    +  record = gemspec_assignment_records(content, receiver: receiver).find { |candidate| candidate.fetch(:field) == "version" }
    +  return replace_source_range_lines(content, record.fetch(:start_line), record.fetch(:end_line), "#{leading_whitespace(record.fetch(:source))}#{replacement}\n") if record
     
    -    selected = preferred_template_source(root.fetch(:path), source_path)
    -    next unless selected
    +  name = gemspec_assignment_records(content, receiver: receiver).find { |candidate| candidate.fetch(:field) == "name" }
    +  return insert_lines_after(content, name.fetch(:end_line), "  #{replacement}\n") if name
     
    -    result[normalized] = {
    -      configured_source: source_path,
    -      selected_source: template_source_display_path(root, selected),
    -      source_relative_path: selected,
    -      source_root: root.fetch(:kind),
    -      content: File.read(File.join(root.fetch(:path), selected))
    -    }
    -  end
    +  insert_lines_after(content, gemspec_new_call(content)&.location&.start_line || 1, "  #{replacement}\n")
     end
    -
    # File 'lib/kettle/jem.rb', line 3530
    -
    -def readme_section_partials_for_render(readme_style, facts)
    -  partials = readme_style[:section_partials]
    -  return {} unless partials.is_a?(Hash)
    -
    -  tokens = readme_template_tokens(facts)
    -  partials.each_with_object({}) do |(section, partial), result|
    -    content = partial.is_a?(Hash) ? partial[:content].to_s : partial.to_s
    -    next if content.strip.empty?
    +      
    # File 'lib/kettle/jem.rb', line 14514
     
    -    result[normalize_readme_section_key(section)] = resolve_template_tokens(content, tokens)
    -  end
    +def replace_github_workflow_action_pin_sha(line, sha)
    +  line.to_s.sub(/@[a-f0-9]{40}/, "@#{sha}")
     end
    +
    +
    + + + +
    +
    +
    + +

    Raises:

    +
      + +
    • + + + (Error) + + + +
    • + +
    + +
    @@ -42387,83 +58006,58 @@

    -

    +

    - .readme_template_tokens(facts) ⇒ Object + .replace_kettle_config_bootstrap_project_emoji(content, emoji) ⇒ Object -

     
     
    -9811
    -9812
    -9813
    -9814
    -9815
    -9816
    -9817
    -9818
    -9819
    -9820
    -9821
    -9822
    -9823
    -9824
    -9825
    -9826
    -9827
    -9828
    -9829
    -9830
    -9831
    -9832
    -9833
    -9834
    -9835
    -9836
    -9837
    -9838
    -9839
    -9840
    -9841
    +8576 +8577 +8578 +8579 +8580 +8581 +8582
    -
    # File 'lib/kettle/jem.rb', line 9811
    +      
    # File 'lib/kettle/jem.rb', line 8576
     
    -def readme_style_facts(project_root, config, license, template_profile: nil, repository: nil)
    -  readme = config["readme"].is_a?(Hash) ? config["readme"] : {}
    -  conditional = readme["conditional_sections"].is_a?(Hash) ? readme["conditional_sections"] : {}
    -  disabled_integrations = readme_disabled_integrations(readme)
    -  integration_root = readme_integration_project_root(project_root, template_profile, repository)
    -  missing_integrations = README_INTEGRATIONS.reject do |integration|
    -    disabled_integrations.include?(integration) || readme_integration_configured?(integration_root, integration)
    -  end
    -  workflow_paths = readme_workflow_paths(integration_root)
    -  omitted_sections = []
    -  security_enabled = repository_monorepo_subproject?(repository) ||
    -    File.exist?(File.join(project_root, "SECURITY.md"))
    -  floss_funding_enabled = readme_floss_funding_enabled?(license, conditional["floss_funding"])
    -  omitted_sections << "security" unless security_enabled
    -  omitted_sections << "floss_funding" unless floss_funding_enabled
    -  section_partials = readme_section_partials(project_root, config, readme)
    -  package_family = readme["package_family"].to_s.strip.downcase
    -  fossa_project = readme_fossa_project(readme, repository)
    -  compact_hash(
    -    profile: "slice-740-kettle-readme-style-profile",
    -    security_enabled: security_enabled,
    -    floss_funding_enabled: floss_funding_enabled,
    -    package_family: package_family,
    -    fossa_project: fossa_project,
    -    omitted_sections: omitted_sections,
    -    disabled_integrations: disabled_integrations,
    -    missing_integrations: missing_integrations,
    -    workflow_paths: workflow_paths,
    -    section_partials: section_partials
    -  )
    +def replace_kettle_config_bootstrap_licenses(content, licenses)
    +  license_block = ["licenses:", *licenses.map { |license_id| "  - #{license_id}" }].join("\n")
    +  updated = replace_yaml_node_lines(content, "licenses", "#{license_block}\n")
    +  return updated unless updated == content
    +
    +  raise Error, "Could not replace licenses block in .kettle-jem.yml bootstrap template"
     end
    +
    +
    + + + +
    +
    +
    + +

    Raises:

    +
      + +
    • + + + (Error) + + + +
    • + +
    + +
    @@ -42471,9 +58065,9 @@

    -

    +

    - .readme_top_logo_credit_separator(type) ⇒ Object + .replace_local_gems_assignment(content, gems) ⇒ Object @@ -42485,15 +58079,29 @@

     
     
    -9387
    -9388
    -9389
    +5989 +5990 +5991 +5992 +5993 +5994 +5995 +5996 +5997 +5998

    @@ -42501,9 +58109,9 @@

    -

    +

    - .readme_top_logo_default_alt(type, slug) ⇒ Object + .replace_markdown_managed_block(content, marker, replacement) ⇒ Object @@ -42515,38 +58123,22 @@

     
     
    -9347
    -9348
    -9349
    -9350
    -9351
    -9352
    -9353
    -9354
    -9355
    -9356
    -9357
    -9358
    -9359
    -9360
    -9361
    +14622 +14623 +14624 +14625 +14626 +14627 +14628

    @@ -42555,9 +58147,9 @@

    -

    +

    - .readme_top_logo_entries(config, org:, gem_name:, repository: {}) ⇒ Object + .replace_markdown_managed_block_with_crispr(content, open_marker, close_marker, replacement) ⇒ Object @@ -42569,29 +58161,47 @@

     
     
    -9256
    -9257
    -9258
    -9259
    -9260
    -9261
    -9262
    -9263
    -9264
    -9265
    +14650 +14651 +14652 +14653 +14654 +14655 +14656 +14657 +14658 +14659 +14660 +14661 +14662 +14663 +14664 +14665 +14666 +14667 +14668

    @@ -42599,9 +58209,9 @@

    -

    +

    - .readme_top_logo_entries_with_asset_size(entries) ⇒ Object + .replace_markdown_with_ast_crispr(content, target, replacement) ⇒ Object @@ -42613,21 +58223,27 @@

    -9275 -9276 -9277 -9278 -9279 -9280 +5144 +5145 +5146 +5147 +5148 +5149 +5150 +5151 +5152

    @@ -42635,81 +58251,37 @@

    -

    - - .readme_top_logo_entry_from_config(logo, org:, gem_name:, repository: {}) ⇒ Object - - +

    - + .replace_matching_gemspec_dependency_lines(content, destination_dependencies, receiver:) ⇒ Object -

     
     
    -3557
    -3558
    -3559
    -3560
    -3561
    -3562
    -3563
    -3564
    -3565
    -3566
    -3567
    -3568
    -3569
    -3570
    -3571
    -3572
    -3573
    -3574
    -3575
    -3576
    -3577
    -3578
    -3579
    -3580
    -3581
    -3582
    -3583
    -3584
    -3585
    -3586
    +8569 +8570 +8571 +8572 +8573 +8574
    -
    # File 'lib/kettle/jem.rb', line 3557
    +      
    # File 'lib/kettle/jem.rb', line 8569
     
    -def readme_template_tokens(facts)
    -  {
    -    "KJ|CB:USER" => "",
    -    "KJ|FUNDING:BUYMEACOFFEE" => "",
    -    "KJ|FUNDING:KOFI" => "",
    -    "KJ|FUNDING:LIBERAPAY" => "",
    -    "KJ|FUNDING:PATREON" => "",
    -    "KJ|FUNDING:PAYPAL" => "",
    -    "KJ|FUNDING:POLAR" => "",
    -    "KJ|GH:USER" => "",
    -    "KJ|GH_ORG" => github_org_from_url(facts.dig(:package, :source_url)).to_s,
    -    "KJ|GL:USER" => "",
    -    "KJ|PROJECT_EMOJI" => "💎",
    -    "KJ|README:COPYRIGHT_NOTICE" => "",
    -    "KJ|README:LICENSE_BADGE" => "",
    -    "KJ|README:LICENSE_COMPAT_BADGE" => "",
    -    "KJ|README:LICENSE_INTRO" => "",
    -    "KJ|README:LICENSE_REFS" => "",
    -    "KJ|README:H2_SYNOPSIS_LOGO_ROW" => "",
    -    "KJ|README:TOP_LOGO_REFS" => "",
    -    "KJ|README:TOP_LOGO_ROW" => "",
    -    "KJ|SH:USER" => "",
    -    "KJ|SOCIAL:BLUESKY" => "",
    -    "KJ|SOCIAL:DEVTO" => "",
    -    "KJ|SOCIAL:LINKTREE" => "",
    -    "KJ|SOCIAL:MASTODON" => "",
    -    "KJ|HOMEPAGE_URI" => "https://rubydoc.info",
    -    "KJ|YARD_HOST" => "rubydoc.info"
    -  }.merge(template_tokens(facts, facts.fetch(:funding, {})))
    +def replace_kettle_config_bootstrap_project_emoji(content, emoji)
    +  updated = replace_yaml_scalar_line(content, "project_emoji", emoji.to_s)
    +  return updated unless updated == content
    +
    +  raise Error, "Could not replace project_emoji in .kettle-jem.yml bootstrap template"
     end
    -
    # File 'lib/kettle/jem.rb', line 9387
    +      
    # File 'lib/kettle/jem.rb', line 5989
     
    -def readme_top_logo_credit_separator(type)
    -  (type == "ruby") ? ", " : " by "
    +def replace_local_gems_assignment(content, gems)
    +  replacement = ["local_gems = %w["]
    +  gems.each { |gem_name| replacement << "  #{gem_name}" }
    +  replacement << "]"
    +  if (record = local_gems_assignment_record(content))
    +    replace_source_range_lines(content, record.fetch(:start_line), record.fetch(:end_line), ensure_trailing_newline(replacement.join("\n")))
    +  else
    +    ensure_trailing_newline([content.to_s.rstrip, replacement.join("\n")].reject(&:empty?).join("\n\n"))
    +  end
     end
    -
    # File 'lib/kettle/jem.rb', line 9347
    +      
    # File 'lib/kettle/jem.rb', line 14622
     
    -def readme_top_logo_default_alt(type, slug)
    -  label = slug.split("/").last.to_s
    -  case type
    -  when "related_org"
    -    "Galtzo FLOSS"
    -  when "ruby"
    -    "ruby-lang"
    -  when "org"
    -    label
    -  when "project"
    -    label
    -  else
    -    "#{label} affiliated project"
    +def replace_markdown_managed_block(content, marker, replacement)
    +  open = "<!-- #{marker}:start -->"
    +  close = "<!-- #{marker}:end -->"
    +  replace_markdown_managed_block_with_crispr(content, open, close, replacement) do
    +    ensure_trailing_newline([content.rstrip, "", replacement.to_s.rstrip].join("\n"))
       end
     end
    -
    # File 'lib/kettle/jem.rb', line 9256
    +      
    # File 'lib/kettle/jem.rb', line 14650
     
    -def readme_top_logo_entries(config, org:, gem_name:, repository: {})
    -  configured = configured_readme_top_logo_entries(config, org: org, gem_name: gem_name, repository: repository)
    -  return readme_top_logo_entries_with_asset_size(configured) if configured
    +def replace_markdown_managed_block_with_crispr(content, open_marker, close_marker, replacement)
    +  ensure_runtime_dependencies!
    +  prepared_replacement = ensure_trailing_newline(replacement.to_s)
    +  actor = Ast::Crispr::Replace.call(
    +    content: content.to_s,
    +    target: Ast::Crispr::Markdown::Markly::Selectors.html_comment_block(
    +      start_text: open_marker.delete_prefix("<!-- ").delete_suffix(" -->"),
    +      end_text: close_marker.delete_prefix("<!-- ").delete_suffix(" -->"),
    +      span: :outermost,
    +      include_trailing_gap: true,
    +      limit: {none_or_one: true}
    +    ),
    +    replacement: prepared_replacement,
    +    source_label: "managed markdown block"
    +  )
    +  return actor.updated_content if actor.match_count.positive?
     
    -  entries = readme_logo_specs_from_config(config, "top_logos", "top_logo_options", README_TOP_LOGO_DEFAULTS).filter_map do |spec|
    -    readme_top_logo_entry_from_option(spec.fetch(:type), org: org, gem_name: gem_name, repository: repository)&.merge(width: spec[:width])
    -  end
    -  entries = deduplicate_readme_top_logo_entries(entries)
    -  readme_top_logo_entries_with_asset_size(entries)
    +  yield
     end
    -
    # File 'lib/kettle/jem.rb', line 9275
    +      
    # File 'lib/kettle/jem.rb', line 5144
     
    -def readme_top_logo_entries_with_asset_size(entries)
    -  entries.map do |entry|
    -    image_url = entry.fetch(:image_url).to_s.sub(%r{/avatar-\d+px\.svg\z}, "/avatar-128px.svg")
    -    entry.merge(image_url: image_url)
    -  end
    +def replace_markdown_with_ast_crispr(content, target, replacement)
    +  ensure_runtime_dependencies!
    +  Ast::Crispr::Replace.call(
    +    content: content.to_s,
    +    target: target,
    +    replacement: replacement,
    +    source_label: "README.md"
    +  ).updated_content
     end
    - - -
    -
     
    +  
     
    -9302
    -9303
    -9304
    -9305
    -9306
    -9307
    -9308
    -9309
    -9310
    -9311
    -9312
    -9313
    -9314
    -9315
    -9316
    -9317
    -9318
    -9319
    -9320
    -9321
    -9322
    -9323
    -9324
    -9325
    -9326
    -9327
    -9328
    -9329
    -9330
    -
    -
    # File 'lib/kettle/jem.rb', line 9302
    -
    -def readme_top_logo_entry_from_config(, org:, gem_name:, repository: {})
    -  return unless .is_a?(Hash)
    +  
    +
    +  
    +    
    +    
    @@ -42717,9 +58289,9 @@ 

    -

    +

    - .readme_top_logo_entry_from_option(option, org:, gem_name:, repository: {}) ⇒ Object + .replace_record_ranges(content, records_by_line) ⇒ Object @@ -42731,21 +58303,43 @@

     
     
    -9405
    -9406
    -9407
    -9408
    -9409
    -9410
    +8455 +8456 +8457 +8458 +8459 +8460 +8461 +8462 +8463 +8464 +8465 +8466 +8467 +8468 +8469 +8470 +8471

    @@ -42753,9 +58347,9 @@

    -

    +

    - .readme_top_logo_options(config) ⇒ Object + .replace_ruby_managed_block(content, replacement) ⇒ Object @@ -42767,15 +58361,19 @@

     
     
    -9171
    -9172
    -9173
    +14644 +14645 +14646 +14647 +14648

    @@ -42783,9 +58381,9 @@

    -

    +

    - .readme_top_logo_refs(entries) ⇒ Object + .replace_ruby_managed_block_with_crispr(content, open_marker, close_marker, replacement) ⇒ Object @@ -42797,15 +58395,47 @@

     
     
    -9435
    -9436
    -9437
    +14689 +14690 +14691 +14692 +14693 +14694 +14695 +14696 +14697 +14698 +14699 +14700 +14701 +14702 +14703 +14704 +14705 +14706 +14707

    @@ -42813,9 +58443,9 @@

    -

    +

    - .readme_top_logo_row(entries) ⇒ Object + .replace_source_byte_range(content, start_offset, end_offset, replacement) ⇒ Object @@ -42827,21 +58457,21 @@

     
     
    -9412
    -9413
    -9414
    -9415
    -9416
    -9417
    +6691 +6692 +6693 +6694 +6695 +6696

    @@ -42849,9 +58479,9 @@

    -

    +

    - .readme_url_template_tokens(repository, package_name, github_org) ⇒ Object + .replace_source_offsets(content, replacements) ⇒ Object @@ -42863,171 +58493,33 @@

     
     
    -8019
    -8020
    -8021
    -8022
    -8023
    -8024
    -8025
    -8026
    -8027
    -8028
    -8029
    -8030
    -8031
    -8032
    -8033
    -8034
    -8035
    -8036
    -8037
    -8038
    -8039
    -8040
    -8041
    -8042
    -8043
    -8044
    -8045
    -8046
    -8047
    -8048
    -8049
    -8050
    -8051
    -8052
    -8053
    -8054
    -8055
    -8056
    -8057
    -8058
    -8059
    -8060
    -8061
    -8062
    -8063
    -8064
    -8065
    -8066
    -8067
    -8068
    -8069
    -8070
    -8071
    -8072
    -8073
    -8074
    -8075
    -8076
    -8077
    -8078
    -8079
    -8080
    -8081
    -8082
    -8083
    -8084
    -8085
    -8086
    -8087
    -8088
    -8089
    -8090
    -8091
    -8092
    -8093
    -8094
    -8095
    -8096
    -8097
    -8098
    -8099
    +6678 +6679 +6680 +6681 +6682 +6683 +6684 +6685 +6686 +6687 +6688 +6689

    @@ -43035,9 +58527,9 @@

    -

    +

    - .readme_workflow_path_from_url(url) ⇒ Object + .replace_source_range_lines(content, start_line, end_line, replacement) ⇒ Object @@ -43049,31 +58541,15 @@

     
     
    -4731
    -4732
    -4733
    -4734
    -4735
    -4736
    -4737
    -4738
    -4739
    -4740
    -4741
    +8473 +8474 +8475

    @@ -43081,9 +58557,9 @@

    -

    +

    - .readme_workflow_paths(project_root) ⇒ Object + .replace_text_managed_block(content, replacement) ⇒ Object @@ -43095,19 +58571,19 @@

     
     
    -9879
    -9880
    -9881
    -9882
    -9883
    +14638 +14639 +14640 +14641 +14642

    @@ -43115,9 +58591,9 @@

    -

    +

    - .recipe_decision_category(recipe) ⇒ Object + .replace_text_managed_block_with_crispr(content, open_marker, close_marker, replacement) ⇒ Object @@ -43129,25 +58605,45 @@

     
     
    -7255
    -7256
    -7257
    -7258
    -7259
    -7260
    -7261
    -7262
    +14670 +14671 +14672 +14673 +14674 +14675 +14676 +14677 +14678 +14679 +14680 +14681 +14682 +14683 +14684 +14685 +14686 +14687

    @@ -43155,9 +58651,9 @@

    -

    +

    - .recipe_decision_diagnostics(recipe) ⇒ Object + .replace_toml_string_scalar_line(content, key, value) ⇒ Object @@ -43169,29 +58665,31 @@

     
     
    -7273
    -7274
    -7275
    -7276
    -7277
    -7278
    -7279
    -7280
    -7281
    -7282
    +4848 +4849 +4850 +4851 +4852 +4853 +4854 +4855 +4856 +4857 +4858

    @@ -43199,9 +58697,9 @@

    -

    +

    - .recipe_decision_evaluation(decision_policy:, recipe:, changed:, destination_existed:) ⇒ Object + .replace_yaml_node_lines(content, key, replacement) ⇒ Object @@ -43213,29 +58711,35 @@

     
     
    -7244
    -7245
    -7246
    -7247
    -7248
    -7249
    -7250
    -7251
    -7252
    -7253
    +8881 +8882 +8883 +8884 +8885 +8886 +8887 +8888 +8889 +8890 +8891 +8892 +8893

    @@ -43243,9 +58747,9 @@

    -

    +

    - .recipe_default_action(recipe, changed:, destination_existed:) ⇒ Object + .replace_yaml_scalar_line(content, key, value) ⇒ Object @@ -43257,25 +58761,39 @@

     
     
    -7264
    -7265
    -7266
    -7267
    -7268
    -7269
    -7270
    -7271
    +8584 +8585 +8586 +8587 +8588 +8589 +8590 +8591 +8592 +8593 +8594 +8595 +8596 +8597 +8598

    @@ -43283,9 +58801,9 @@

    -

    +

    - .recipe_entry(name, target_path, provider_family, primitive, facts:, provider_backend: nil, selectors: []) ⇒ Object + .replace_yaml_scalar_path(content, path, value) ⇒ Object @@ -43297,31 +58815,41 @@

     
     
    -7306
    -7307
    -7308
    -7309
    -7310
    -7311
    -7312
    -7313
    -7314
    -7315
    -7316
    +8761 +8762 +8763 +8764 +8765 +8766 +8767 +8768 +8769 +8770 +8771 +8772 +8773 +8774 +8775 +8776

    @@ -43329,9 +58857,9 @@

    -

    +

    - .recipe_filter_patterns(template_selection) ⇒ Object + .replacement_for_supported_gemspec_files_assignment(template_record:, destination_record:, template_receiver:) ⇒ Object @@ -43343,19 +58871,27 @@

     
     
    -7228
    -7229
    -7230
    -7231
    -7232
    +7680 +7681 +7682 +7683 +7684 +7685 +7686 +7687 +7688

    @@ -43363,9 +58899,9 @@

    -

    +

    - .recipe_pack(facts) ⇒ Object + .repository_facts(project_root, source_url, package_name:, repository_topology:) ⇒ Object @@ -43377,313 +58913,77 @@

     
     
    -2829
    -2830
    -2831
    -2832
    -2833
    -2834
    -2835
    -2836
    -2837
    -2838
    -2839
    -2840
    -2841
    -2842
    -2843
    -2844
    -2845
    -2846
    -2847
    -2848
    -2849
    -2850
    -2851
    -2852
    -2853
    -2854
    -2855
    -2856
    -2857
    -2858
    -2859
    -2860
    -2861
    -2862
    -2863
    -2864
    -2865
    -2866
    -2867
    -2868
    -2869
    -2870
    -2871
    -2872
    -2873
    -2874
    -2875
    -2876
    -2877
    -2878
    -2879
    -2880
    -2881
    -2882
    -2883
    -2884
    -2885
    -2886
    -2887
    -2888
    -2889
    -2890
    -2891
    -2892
    -2893
    -2894
    -2895
    -2896
    -2897
    -2898
    -2899
    -2900
    -2901
    -2902
    -2903
    -2904
    -2905
    -2906
    -2907
    -2908
    -2909
    -2910
    -2911
    -2912
    -2913
    -2914
    -2915
    -2916
    -2917
    -2918
    -2919
    -2920
    -2921
    -2922
    -2923
    -2924
    -2925
    -2926
    -2927
    -2928
    -2929
    -2930
    -2931
    -2932
    -2933
    -2934
    -2935
    -2936
    -2937
    -2938
    -2939
    -2940
    -2941
    -2942
    -2943
    -2944
    -2945
    -2946
    -2947
    -2948
    -2949
    -2950
    -2951
    -2952
    -2953
    -2954
    -2955
    -2956
    -2957
    -2958
    -2959
    -2960
    -2961
    -2962
    -2963
    -2964
    -2965
    -2966
    -2967
    -2968
    -2969
    -2970
    -2971
    -2972
    -2973
    -2974
    -2975
    -2976
    -2977
    -2978
    -2979
    -2980
    +11529 +11530 +11531 +11532 +11533 +11534 +11535 +11536 +11537 +11538 +11539 +11540 +11541 +11542 +11543 +11544 +11545 +11546 +11547 +11548 +11549 +11550 +11551 +11552 +11553 +11554 +11555 +11556 +11557 +11558 +11559 +11560 +11561 +11562

    @@ -43691,41 +58991,60 @@

    -

    +

    - .recipe_report_metadata(recipe) ⇒ Object + .repository_monorepo_subproject?(repository) ⇒ Boolean -

    +
     
    -  type = ["type"].to_s.strip.downcase.tr("-", "_")
    -  return unless README_TOP_LOGO_TYPES.include?(type)
    -  type = "ruby" if type == "language"
     
    -  slug = ["slug"].to_s.strip
    -  slug = default_readme_top_logo_slug(type, org: org, gem_name: gem_name, repository: repository) if slug.empty?
    -  return if slug.empty?
    +8079
    +8080
    +8081
    +8082
    +8083
    +8084
    +8085
    +
    +
    # File 'lib/kettle/jem.rb', line 8079
     
    -  alt = ["alt"].to_s.strip
    -  alt = readme_top_logo_default_alt(type, slug) if alt.empty?
    -  href = ["href"].to_s.strip
    -  href = default_readme_top_logo_href(type, slug: slug, org: org, gem_name: gem_name, repository: repository) if href.empty?
    -  credit = ["credit"].to_s.strip
    -  credit = default_readme_top_logo_credit(type) if credit.empty?
    -  ref_slug = slug.tr("/", "-")
    -  {
    -    type: type,
    -    label: alt.sub(/\s+logo\z/i, ""),
    -    credit: credit,
    -    credit_separator: readme_top_logo_credit_separator(type),
    -    image_ref: "#{ref_slug}-i",
    -    link_ref: ref_slug,
    -    image_url: "#{LOGOS_GALTZO_BASE_URL}/#{slug}/avatar-192px.svg",
    -    href: href
    -  }
    +def replace_matching_gemspec_dependency_lines(content, destination_dependencies, receiver:)
    +   = gemspec_dependency_records(content, receiver: receiver).each_with_object({}) do |record, index|
    +    replacement = destination_dependencies[gemspec_dependency_record_key(record)]
    +    index[record.fetch(:start_line)] = record.merge(replacement: replacement) if replacement
    +  end
    +  replace_record_ranges(content, )
     end
    -
    # File 'lib/kettle/jem.rb', line 9405
    +      
    # File 'lib/kettle/jem.rb', line 8455
     
    -def readme_top_logo_entry_from_option(option, org:, gem_name:, repository: {})
    -  return if option == "org" && org.to_s.empty?
    -  return if option == "project" && (org.to_s.empty? || gem_name.to_s.empty?)
    +def replace_record_ranges(content, )
    +  return content if .empty?
     
    -  readme_top_logo_entry_from_config({"type" => option}, org: org, gem_name: gem_name, repository: repository)
    +  skip_until = 0
    +  content.to_s.lines.each_with_index.flat_map do |line, index|
    +    line_number = index + 1
    +    next [] if line_number < skip_until
    +
    +    record = [line_number]
    +    if record
    +      skip_until = record.fetch(:end_line) + 1
    +      record.fetch(:replacement)
    +    else
    +      line
    +    end
    +  end.join
     end
    -
    # File 'lib/kettle/jem.rb', line 9171
    +      
    # File 'lib/kettle/jem.rb', line 14644
     
    -def readme_top_logo_options(config)
    -  readme_logo_options_from_config(config, "top_logos", "top_logo_options", README_TOP_LOGO_DEFAULTS)
    +def replace_ruby_managed_block(content, replacement)
    +  replace_ruby_managed_block_with_crispr(content, MANAGED_BLOCK_OPEN, MANAGED_BLOCK_CLOSE, replacement) do
    +    ensure_trailing_newline([content.rstrip, replacement.to_s.rstrip].reject(&:empty?).join("\n"))
    +  end
     end
    -
    # File 'lib/kettle/jem.rb', line 9435
    +      
    # File 'lib/kettle/jem.rb', line 14689
     
    -def readme_top_logo_refs(entries)
    -  ""
    +def replace_ruby_managed_block_with_crispr(content, open_marker, close_marker, replacement)
    +  ensure_runtime_dependencies!
    +  prepared_replacement = ensure_trailing_newline(replacement.to_s)
    +  actor = Ast::Crispr::Replace.call(
    +    content: content.to_s,
    +    target: Ast::Crispr::Ruby::Prism::Selectors.comment_line_block(
    +      start_text: open_marker,
    +      end_text: close_marker,
    +      span: :outermost,
    +      include_trailing_gap: true,
    +      limit: {none_or_one: true}
    +    ),
    +    replacement: prepared_replacement,
    +    source_label: "managed Ruby block"
    +  )
    +  return actor.updated_content if actor.match_count.positive?
    +
    +  yield
     end
    -
    # File 'lib/kettle/jem.rb', line 9412
    +      
    # File 'lib/kettle/jem.rb', line 6691
     
    -def readme_top_logo_row(entries)
    -  default_width = readme_default_logo_width(entries, one: "14%", two: "12%")
    -  entries.map do |entry|
    -    readme_logo_html(entry, align: "right", width: entry[:width] || default_width)
    -  end.join(" ")
    +def replace_source_byte_range(content, start_offset, end_offset, replacement)
    +  source = content.to_s
    +  before = source.byteslice(0, start_offset) || +""
    +  after = source.byteslice(end_offset, source.bytesize - end_offset) || +""
    +  "#{before}#{replacement}#{after}"
     end
    -
    # File 'lib/kettle/jem.rb', line 8019
    -
    -def readme_url_template_tokens(repository, package_name, github_org)
    -  repo_url = repository[:url].to_s
    -  repo_name = repository[:name].to_s
    -  repo_slug = repository[:slug].to_s
    -  package_path = repository[:package_path].to_s
    -  package_source_url = repository[:package_source_url].to_s
    -  repo_url = "https://github.com/#{github_org}/#{package_name}" if repo_url.empty?
    -  repo_name = package_name if repo_name.empty?
    -  repo_slug = "#{github_org}/#{repo_name}" if repo_slug.empty?
    -  package_source_url = repo_url if package_source_url.empty?
    +      
    # File 'lib/kettle/jem.rb', line 6678
     
    -  repository = repository.merge(
    -    url: repo_url,
    -    name: repo_name,
    -    slug: repo_slug,
    -    package_path: package_path,
    -    package_source_url: package_source_url
    -  )
    -  resources = repository[:resource_urls].is_a?(Hash) ? repository[:resource_urls] : repository_resource_urls(repository)
    -  resource_url = lambda do |key, fallback|
    -    value = resources[key].to_s
    -    value.empty? ? fallback : value
    +def replace_source_offsets(content, replacements)
    +  output = content.to_s.dup
    +  replacements.sort_by { |replacement| -replacement.fetch(:start_offset) }.each do |replacement|
    +    output = replace_source_byte_range(
    +      output,
    +      replacement.fetch(:start_offset),
    +      replacement.fetch(:end_offset),
    +      replacement.fetch(:replacement)
    +    )
       end
    -
    -  gitlab_source = repository[:gitlab_package_source_url].to_s
    -  codeberg_source = repository[:codeberg_package_source_url].to_s
    -  gitlab_source = "https://gitlab.com/#{repo_slug}/" if gitlab_source.empty?
    -  codeberg_source = "https://codeberg.org/#{repo_slug}" if codeberg_source.empty?
    -  checksums_url = repository[:checksums_url].to_s
    -  checksums_url = "https://gitlab.com/#{repo_slug}/-/tree/main/checksums" if checksums_url.empty?
    -
    -  {
    -    "KJ|README:REPO_SLUG" => repo_slug,
    -    "KJ|README:REPO_NAME" => repo_name,
    -    "KJ|README:PACKAGE_PATH" => package_path,
    -    "KJ|README:GH_REPOSITORY_URL" => resource_url.call(:github_repository_url, repo_url),
    -    "KJ|README:GH_PACKAGE_SOURCE_URL" => resource_url.call(:github_package_source_url, package_source_url),
    -    "KJ|README:GH_RELEASES_URL" => resource_url.call(:github_releases_url, "#{repo_url}/releases"),
    -    "KJ|README:GH_TAG_BADGE_REPO" => repo_slug,
    -    "KJ|README:GH_ACTIONS_URL" => resource_url.call(:github_actions_url, "#{repo_url}/actions"),
    -    "KJ|README:GH_DISCUSSIONS_URL" => resource_url.call(:github_discussions_url, "#{repo_url}/discussions"),
    -    "KJ|README:GH_ISSUES_URL" => resource_url.call(:github_issues_url, "#{repo_url}/issues"),
    -    "KJ|README:GH_PULLS_URL" => resource_url.call(:github_pulls_url, "#{repo_url}/pulls"),
    -    "KJ|README:GH_WIKI_URL" => resource_url.call(:github_wiki_url, "#{repo_url}/wiki"),
    -    "KJ|README:GH_CODEQL_URL" => resource_url.call(:github_codeql_url, "#{repo_url}/security/code-scanning"),
    -    "KJ|README:GH_CONTRIBUTORS_URL" => resource_url.call(:github_contributors_url, "#{repo_url}/graphs/contributors"),
    -    "KJ|README:GH_CONTRIBUTING_URL" => resource_url.call(:github_contributing_url, source_blob_url(repo_url, "CONTRIBUTING.md")),
    -    "KJ|README:GH_CHANGELOG_URL" => resource_url.call(:github_changelog_url, source_blob_url(repo_url, "CHANGELOG.md")),
    -    "KJ|README:GH_SECURITY_URL" => resource_url.call(:github_security_url, source_blob_url(repo_url, "SECURITY.md")),
    -    "KJ|README:GH_CODE_OF_CONDUCT_URL" => resource_url.call(:github_code_of_conduct_url, source_blob_url(repo_url, "CODE_OF_CONDUCT.md")),
    -    "KJ|README:GH_RUBOCOP_URL" => resource_url.call(:github_rubocop_url, source_blob_url(repo_url, "RUBOCOP.md")),
    -    "KJ|README:GH_IRP_URL" => resource_url.call(:github_irp_url, source_blob_url(repo_url, "IRP.md")),
    -    "KJ|README:GL_REPOSITORY_URL" => resource_url.call(:gitlab_repository_url, "https://gitlab.com/#{repo_slug}"),
    -    "KJ|README:GL_PACKAGE_SOURCE_URL" => resource_url.call(:gitlab_package_source_url, gitlab_source),
    -    "KJ|README:GL_ISSUES_URL" => resource_url.call(:gitlab_issues_url, gitlab_repo_url(repository, repo_slug, "issues")),
    -    "KJ|README:GL_PULLS_URL" => resource_url.call(:gitlab_pulls_url, gitlab_repo_url(repository, repo_slug, "merge_requests")),
    -    "KJ|README:GL_WIKI_URL" => resource_url.call(:gitlab_wiki_url, gitlab_repo_url(repository, repo_slug, "wikis/home")),
    -    "KJ|README:GL_CONTRIBUTORS_URL" => resource_url.call(:gitlab_contributors_url, gitlab_repo_url(repository, repo_slug, "graphs/main")),
    -    "KJ|README:GL_CONTRIBUTING_URL" => resource_url.call(:gitlab_contributing_url, source_blob_url("https://gitlab.com/#{repo_slug}", "CONTRIBUTING.md")),
    -    "KJ|README:GL_CHANGELOG_URL" => resource_url.call(:gitlab_changelog_url, source_blob_url("https://gitlab.com/#{repo_slug}", "CHANGELOG.md")),
    -    "KJ|README:GL_CODE_OF_CONDUCT_URL" => resource_url.call(:gitlab_code_of_conduct_url, source_blob_url("https://gitlab.com/#{repo_slug}", "CODE_OF_CONDUCT.md")),
    -    "KJ|README:CB_REPOSITORY_URL" => resource_url.call(:codeberg_repository_url, "https://codeberg.org/#{repo_slug}"),
    -    "KJ|README:CB_PACKAGE_SOURCE_URL" => resource_url.call(:codeberg_package_source_url, codeberg_source),
    -    "KJ|README:CB_ISSUES_URL" => resource_url.call(:codeberg_issues_url, codeberg_repo_url(repository, repo_slug, "issues")),
    -    "KJ|README:CB_PULLS_URL" => resource_url.call(:codeberg_pulls_url, codeberg_repo_url(repository, repo_slug, "pulls")),
    -    "KJ|README:CODECOV_URL" => resource_url.call(:codecov_url, "https://codecov.io/gh/#{repo_slug}"),
    -    "KJ|README:CODECOV_BADGE_URL" => resource_url.call(:codecov_badge_url, "https://codecov.io/gh/#{repo_slug}/graph/badge.svg"),
    -    "KJ|README:CODECOV_GRAPH_URL" => resource_url.call(:codecov_graph_url, "https://codecov.io/gh/#{repo_slug}/graph/badge.svg"),
    -    "KJ|README:COVERALLS_URL" => resource_url.call(:coveralls_url, "https://coveralls.io/github/#{repo_slug}?branch=main"),
    -    "KJ|README:COVERALLS_BADGE_URL" => resource_url.call(:coveralls_badge_url, "https://coveralls.io/repos/github/#{repo_slug}/badge.svg?branch=main"),
    -    "KJ|README:QLTY_PROJECT_URL" => resource_url.call(:qlty_project_url, "https://qlty.sh/gh/#{github_org}/projects/#{repo_name}"),
    -    "KJ|README:QLTY_MAINTAINABILITY_URL" => resource_url.call(:qlty_maintainability_url, "https://qlty.sh/gh/#{github_org}/projects/#{repo_name}/maintainability.svg"),
    -    "KJ|README:QLTY_COVERAGE_URL" => resource_url.call(:qlty_coverage_url, "https://qlty.sh/gh/#{github_org}/projects/#{repo_name}/metrics/code?sort=coverageRating"),
    -    "KJ|README:QLTY_COVERAGE_BADGE_URL" => resource_url.call(:qlty_coverage_badge_url, "https://qlty.sh/gh/#{github_org}/projects/#{repo_name}/coverage.svg"),
    -    "KJ|CHANGELOG:GL_COMPARE_URL" => resource_url.call(:gitlab_compare_url, "https://gitlab.com/#{repo_slug}/-/compare"),
    -    "KJ|CHANGELOG:GL_TAGS_URL" => resource_url.call(:gitlab_tags_url, "https://gitlab.com/#{repo_slug}/-/tags"),
    -    "KJ|README:CONTRIBUTORS_IMAGE_REPO" => repo_slug,
    -    "KJ|README:STAR_HISTORY_REPO" => repo_slug,
    -    "KJ|README:SHA_CHECKSUMS_URL" => resource_url.call(:checksums_url, checksums_url)
    -  }
    +  output
     end
    -
    # File 'lib/kettle/jem.rb', line 4731
    +      
    # File 'lib/kettle/jem.rb', line 8473
     
    -def readme_workflow_path_from_url(url)
    -  marker = "/actions/workflows/"
    -  path = URI.parse(url.to_s).path.to_s
    -  marker_index = path.index(marker)
    -  return "" unless marker_index
    -
    -  workflow = path[(marker_index + marker.length)..].to_s.split("/").first.to_s
    -  workflow.empty? ? "" : ".github/workflows/#{workflow}"
    -rescue URI::InvalidURIError
    -  ""
    +def replace_source_range_lines(content, start_line, end_line, replacement)
    +  replace_record_ranges(content, {start_line => {end_line: end_line, replacement: replacement}})
     end
    -
    # File 'lib/kettle/jem.rb', line 9879
    +      
    # File 'lib/kettle/jem.rb', line 14638
     
    -def readme_workflow_paths(project_root)
    -  Dir.glob(File.join(project_root.to_s, ".github/workflows/*.{yml,yaml}")).map do |path|
    -    ".github/workflows/#{File.basename(path)}"
    -  end.sort
    +def replace_text_managed_block(content, replacement)
    +  replace_text_managed_block_with_crispr(content, MANAGED_BLOCK_OPEN, MANAGED_BLOCK_CLOSE, replacement) do
    +    ensure_trailing_newline([content.rstrip, replacement.to_s.rstrip].reject(&:empty?).join("\n"))
    +  end
     end
    -
    # File 'lib/kettle/jem.rb', line 7255
    +      
    # File 'lib/kettle/jem.rb', line 14670
     
    -def recipe_decision_category(recipe)
    -  return "delete_file" if delete_file_recipe?(recipe)
    -  return "select_template_source" if recipe.fetch(:primitive) == "supplied_template_source_preference"
    -  return "bootstrap_config" if recipe.fetch(:primitive) == "supplied_kettle_config_bootstrap"
    -  return "apply_template_source" if recipe.fetch(:primitive) == "supplied_template_source_application"
    +def replace_text_managed_block_with_crispr(content, open_marker, close_marker, replacement)
    +  ensure_runtime_dependencies!
    +  prepared_replacement = ensure_trailing_newline(replacement.to_s)
    +  actor = Ast::Crispr::Replace.call(
    +    content: content.to_s,
    +    target: Ast::Crispr::Selectors.line_block(
    +      start_line_text: open_marker,
    +      end_line_text: close_marker,
    +      include_trailing_gap: true,
    +      limit: {none_or_one: true}
    +    ),
    +    replacement: prepared_replacement,
    +    source_label: "managed text block"
    +  )
    +  return actor.updated_content if actor.match_count.positive?
     
    -  "merge_valid_document"
    +  yield
     end
    -
    # File 'lib/kettle/jem.rb', line 7273
    +      
    # File 'lib/kettle/jem.rb', line 4848
     
    -def recipe_decision_diagnostics(recipe)
    -  diagnostics = []
    -  if recipe.fetch(:primitive) == "supplied_template_source_application"
    -    diagnostics << "Non-interactive runs apply the configured template source default and report the decision."
    -  end
    -  if delete_file_recipe?(recipe)
    -    diagnostics << "Deletion is allowed only for explicit Kettle/Jem cleanup primitives."
    +def replace_toml_string_scalar_line(content, key, value)
    +  lines = content.to_s.lines
    +  lines.each_with_index do |line, index|
    +    next unless line.strip.start_with?("#{key} ")
    +
    +    indent = line[/\A\s*/]
    +    lines[index] = "#{indent}#{key} = #{JSON.generate(value.to_s)}\n"
    +    return lines.join
       end
    -  diagnostics
    +  content
     end
    -
    # File 'lib/kettle/jem.rb', line 7244
    +      
    # File 'lib/kettle/jem.rb', line 8881
     
    -def recipe_decision_evaluation(decision_policy:, recipe:, changed:, destination_existed:)
    -  decision_policy.resolve(
    -    id: "recipe:#{recipe.fetch(:name)}",
    -    category: recipe_decision_category(recipe),
    -    file: recipe.fetch(:target_path),
    -    default_action: recipe_default_action(recipe, changed: changed, destination_existed: destination_existed),
    -    severity: :advisory,
    -    diagnostics: recipe_decision_diagnostics(recipe)
    -  ).to_h
    +def replace_yaml_node_lines(content, key, replacement)
    +  lines = content.to_s.lines
    +  yaml_mapping_nodes(content).each do |mapping|
    +    mapping.children.each_slice(2) do |key_node, value_node|
    +      next unless key_node.is_a?(Psych::Nodes::Scalar) && key_node.value.to_s == key.to_s
    +
    +      start_line = key_node.start_line
    +      end_line = value_node.end_line
    +      return [*lines[0...start_line], replacement, *lines[end_line..].to_a].join
    +    end
    +  end
    +  content
     end
    -
    # File 'lib/kettle/jem.rb', line 7264
    +      
    # File 'lib/kettle/jem.rb', line 8584
     
    -def recipe_default_action(recipe, changed:, destination_existed:)
    -  return "delete" if delete_file_recipe?(recipe)
    -  return "keep" unless changed
    -  return "create" unless destination_existed
    -  return "replace" if recipe.fetch(:primitive) == "supplied_template_source_application"
    +def replace_yaml_scalar_line(content, key, value)
    +  lines = content.to_s.lines
    +  yaml_scalar_pairs(content).each do |key_node, value_node|
    +    next unless key_node.value.to_s == key.to_s
     
    -  "merge"
    +    line_index = key_node.start_line
    +    line = lines[line_index].to_s
    +    key_index = line.index("#{key}:")
    +    next unless key_index
    +
    +    lines[line_index] = "#{line[0...key_index]}#{key}: #{value}\n"
    +    return lines.join
    +  end
    +  content
     end
    -
    # File 'lib/kettle/jem.rb', line 7306
    +      
    # File 'lib/kettle/jem.rb', line 8761
     
    -def recipe_entry(name, target_path, provider_family, primitive, facts:, provider_backend: nil, selectors: [])
    -  {
    -    name: name,
    -    target_path: target_path,
    -    provider_family: provider_family,
    -    provider_backend: provider_backend,
    -    primitive: primitive,
    -    facts: facts,
    -    selectors: selectors
    -  }
    +def replace_yaml_scalar_path(content, path, value)
    +  lines = content.to_s.lines
    +  yaml_scalar_path_entries(content).each do |entry|
    +    next unless entry.fetch(:path) == path
    +
    +    line_index = entry.fetch(:line)
    +    line = lines[line_index].to_s
    +    key = path.last.to_s
    +    key_index = line.index("#{key}:")
    +    next unless key_index
    +
    +    lines[line_index] = "#{line[0...key_index]}#{key}: #{value}#{yaml_line_comment_suffix(line, key_index)}\n"
    +    return lines.join
    +  end
    +  content
     end
    -
    # File 'lib/kettle/jem.rb', line 7228
    +      
    # File 'lib/kettle/jem.rb', line 7680
     
    -def recipe_filter_patterns(template_selection)
    -  only = Array(template_selection[:only]).compact
    -  include = Array(template_selection[:include]).compact
    -  only.empty? ? [] : (only + include)
    +def replacement_for_supported_gemspec_files_assignment(template_record:, destination_record:, template_receiver:)
    +  if generic_bundler_gemspec_files_assignment?(destination_record)
    +    normalize_gemspec_receiver(
    +      template_record.fetch(:source),
    +      from: template_receiver,
    +      to: template_receiver
    +    )
    +  end
     end
    -
    # File 'lib/kettle/jem.rb', line 2829
    +      
    # File 'lib/kettle/jem.rb', line 11529
     
    -def recipe_pack(facts)
    -  recipes = if monorepo_template_profile?(facts)
    -    []
    +def repository_facts(project_root, source_url, package_name:, repository_topology:)
    +  topology = normalize_repository_topology(repository_topology)
    +  monorepo_subproject = topology == REPOSITORY_TOPOLOGY_MONOREPO_SUBPROJECT
    +  local_root = monorepo_subproject ? git_worktree_root(project_root) : nil
    +  repo_url = if monorepo_subproject
    +    repository_root_url(git_remote_source_url(local_root || project_root) || source_url)
       else
    -    [
    -      recipe_entry("readme_metadata", "README.md", "markdown", "supplied_readme_metadata_synchronization", facts: %w[package funding readme]),
    -      recipe_entry("changelog_unreleased", "CHANGELOG.md", "markdown", "changelog_unreleased_normalization", facts: %w[package changelog]),
    -      recipe_entry(
    -        "generated_block_sync",
    -        "gemfiles/modular/shunted.gemfile",
    -        "ruby",
    -        "supplied_managed_text_block_replacement",
    -        facts: %w[package generated_blocks],
    -        provider_backend: "ast-crispr-ruby-prism"
    -      ),
    -      recipe_entry(
    -        "github_funding_yml",
    -        ".github/FUNDING.yml",
    -        "yaml",
    -        "supplied_github_funding_yaml_synchronization",
    -        facts: %w[package funding]
    -      )
    -    ]
    -  end
    -  if facts[:kettle_config_bootstrap]
    -    recipes.unshift(kettle_config_bootstrap_recipe(facts.fetch(:kettle_config_bootstrap)))
    -  end
    -  unless monorepo_template_profile?(facts)
    -    facts.dig(:ci, :framework_matrix, :gemfiles).to_a.each do |gemfile|
    -      recipes << recipe_entry(
    -        "github_actions_framework_gemfile_#{workflow_recipe_slug(gemfile.fetch(:path))}",
    -        gemfile.fetch(:path),
    -        "ruby",
    -        "supplied_framework_matrix_gemfile_generation",
    -        facts: %w[ci]
    -      )
    -    end
    -    facts.dig(:ci, :obsolete_workflows).to_a.each do |workflow_path|
    -      recipes << recipe_entry(
    -        "github_actions_obsolete_workflow_cleanup_#{workflow_recipe_slug(workflow_path)}",
    -        workflow_path,
    -        "file",
    -        "supplied_obsolete_file_deletion",
    -        facts: %w[ci]
    -      )
    -    end
    -    facts.dig(:ci, :opt_in_workflow_cleanups).to_a.each do |workflow_path|
    -      recipes << recipe_entry(
    -        "github_actions_opt_in_workflow_cleanup_#{workflow_recipe_slug(workflow_path)}",
    -        workflow_path,
    -        "file",
    -        "supplied_opt_in_workflow_deletion",
    -        facts: %w[ci]
    -      )
    -    end
    -    facts.dig(:ci, :inactive_packaged_workflow_cleanups).to_a.each do |workflow_path|
    -      recipes << recipe_entry(
    -        "github_actions_inactive_packaged_workflow_cleanup_#{workflow_recipe_slug(workflow_path)}",
    -        workflow_path,
    -        "file",
    -        "supplied_inactive_packaged_workflow_deletion",
    -        facts: %w[ci]
    -      )
    -    end
    -    facts.dig(:funding, :open_collective_files).to_a.each do |relative_path|
    -      recipes << recipe_entry(
    -        "opencollective_disabled_file_cleanup_#{workflow_recipe_slug(relative_path)}",
    -        relative_path,
    -        "file",
    -        "supplied_disabled_opencollective_file_deletion",
    -        facts: %w[funding]
    -      )
    -    end
    -    facts.dig(:ci, :custom_workflows).to_a.each do |workflow_path|
    -      recipes << recipe_entry(
    -        "github_actions_workflow_snippets_#{workflow_recipe_slug(workflow_path)}",
    -        workflow_path,
    -        "yaml",
    -        "supplied_github_actions_workflow_snippet_merge",
    -        facts: %w[ci]
    -      )
    -    end
    -  end
    -  if monorepo_template_profile?(facts)
    -    facts.dig(:ci, :inactive_packaged_workflow_cleanups).to_a.each do |workflow_path|
    -      recipes << recipe_entry(
    -        "github_actions_inactive_packaged_workflow_cleanup_#{workflow_recipe_slug(workflow_path)}",
    -        workflow_path,
    -        "file",
    -        "supplied_inactive_packaged_workflow_deletion",
    -        facts: %w[ci]
    -      )
    -    end
    -  end
    -  facts.dig(:templates, :source_preferences).to_a.each do |preference|
    -    apply_template = preference.fetch(:apply, false)
    -    recipe = recipe_entry(
    -      "#{apply_template ? "template_source_application" : "template_source_preference"}_#{workflow_recipe_slug(preference.fetch(:target_path))}",
    -      preference.fetch(:target_path),
    -      "file",
    -      apply_template ? "supplied_template_source_application" : "supplied_template_source_preference",
    -      facts: %w[templates funding]
    -    )
    -    recipe[:template_preference] = preference
    -    recipe[:template_tokens] = facts.dig(:templates, :tokens) if facts.dig(:templates, :tokens)
    -    recipe[:readme_style] = facts[:readme_style] if preference.fetch(:target_path) == "README.md" && facts[:readme_style]
    -    recipes << recipe
    -  end
    -  facts.dig(:templates, :inactive_packaged_template_cleanups).to_a.each do |cleanup|
    -    recipes << recipe_entry(
    -      "template_inactive_packaged_cleanup_#{workflow_recipe_slug(cleanup.fetch(:target_path))}",
    -      cleanup.fetch(:target_path),
    -      "file",
    -      "supplied_inactive_packaged_template_deletion",
    -      facts: %w[templates]
    -    )
    -  end
    -  facts.dig(:templates, :legacy_destination_cleanups).to_a.each do |cleanup|
    -    recipes << recipe_entry(
    -      "template_legacy_destination_cleanup_#{workflow_recipe_slug(cleanup.fetch(:legacy_path))}",
    -      cleanup.fetch(:legacy_path),
    -      "file",
    -      "supplied_legacy_destination_file_deletion",
    -      facts: %w[templates]
    -    )
    -  end
    -  facts.dig(:templates, :obsolete_license_cleanups).to_a.each do |cleanup|
    -    recipes << recipe_entry(
    -      "template_obsolete_license_cleanup_#{workflow_recipe_slug(cleanup.fetch(:license_path))}",
    -      cleanup.fetch(:license_path),
    -      "file",
    -      "supplied_obsolete_license_file_deletion",
    -      facts: %w[templates license]
    -    )
    +    repository_root_url(source_url)
       end
    -  recipes << recipe_entry(
    -    "rakefile_scaffold_cleanup",
    -    "Rakefile",
    -    "generic_ast",
    -    "supplied_source_selector_deletion",
    -    provider_backend: "generic_structural_owners",
    -    facts: %w[rubygems rakefile],
    -    selectors: %w[rakefile_scaffold]
    +  repo_name = repository_name_from_source_url(repo_url)
    +  org = github_org_from_url(repo_url).to_s
    +  slug = [org, repo_name].reject(&:empty?).join("/")
    +  facts = compact_hash(
    +    mode: monorepo_subproject ? "monorepo_subproject" : "standalone",
    +    topology: topology,
    +    url: repo_url,
    +    name: repo_name,
    +    slug: slug
       )
    +  return facts unless monorepo_subproject
     
    -  {
    -    name: "kettle-jem-core",
    -    version: 1,
    -    ecosystem: "rubygems",
    -    recipes: recipes
    -  }
    +  package_path = git_worktree_prefix(project_root)
    +  package_path = package_path[0...-1] while package_path.end_with?("/")
    +  return facts.merge(local_root: local_root) if package_path.empty?
    +
    +  facts.merge(
    +    local_root: local_root,
    +    package_path: package_path,
    +    package_source_url: source_tree_url(repo_url, package_path),
    +    gitlab_package_source_url: source_tree_url("https://gitlab.com/#{slug}", package_path),
    +    codeberg_package_source_url: source_tree_url("https://codeberg.org/#{slug}", package_path),
    +    checksums_url: source_tree_url("https://gitlab.com/#{slug}", "checksums")
    +  )
     end
    +
    +
    + + + +
    +
    +
    + +

    Returns:

    +
      + +
    • + + + (Boolean) + + + +
    • + +
    + +
    @@ -43733,9 +59052,9 @@

    -

    +

    - .recipe_report_phase(recipe_report) ⇒ Object + .repository_name_from_source_url(source_url) ⇒ Object @@ -43747,15 +59066,21 @@

     
     
    -7776
    -7777
    -7778
    +11522 +11523 +11524 +11525 +11526 +11527

    @@ -43763,9 +59088,9 @@

    -

    +

    - .recipe_run_stats(recipe_reports, diagnostics: []) ⇒ Object + .repository_project_logo_href(repository, slug:, org:, gem_name:) ⇒ Object @@ -43774,78 +59099,24 @@

     
     
    -7151
    -7152
    -7153
    -7154
    -7155
    -7156
    -7157
    -7158
    -7159
    +12495 +12496 +12497 +12498 +12499 +12500 +12501
    -
    # File 'lib/kettle/jem.rb', line 7151
    +      
    # File 'lib/kettle/jem.rb', line 12495
     
    -def (recipe)
    -   = {packaging_recipe: recipe.fetch(:name)}
    -  [:delete_file] = true if delete_file_recipe?(recipe)
    -  [:template_source_preference] = deep_dup(recipe[:template_preference]) if recipe[:template_preference]
    -  [:template_tokens] = deep_dup(recipe[:template_tokens]) if recipe[:template_tokens]
    -  [:readme_style] = deep_dup(recipe[:readme_style]) if recipe[:readme_style]
    -  [:bootstrap_file] = true if recipe.fetch(:primitive) == "supplied_kettle_config_bootstrap"
    -  
    +def repository_monorepo_subproject?(repository)
    +  return false unless repository.is_a?(Hash)
    +
    +  repository[:topology].to_s == REPOSITORY_TOPOLOGY_MONOREPO_SUBPROJECT ||
    +    repository[:mode].to_s == "monorepo_subproject" ||
    +    repository[:mode].to_s == "monorepo_subgem"
     end
    -
    # File 'lib/kettle/jem.rb', line 7776
    +      
    # File 'lib/kettle/jem.rb', line 11522
     
    -def recipe_report_phase(recipe_report)
    -  phase_for_recipe(recipe_report[:recipe_name], recipe_report[:relative_path])
    +def repository_name_from_source_url(source_url)
    +  base = source_url.to_s.split("?", 2).first.to_s.split("#", 2).first.to_s
    +  base = base[0...-1] while base.end_with?("/")
    +  name = base.split("/").last.to_s
    +  name.end_with?(".git") ? name[0...-4] : name
     end
    - + @@ -43853,9 +59124,9 @@

    -

    +

    - .recipe_run_stats_summary(stats) ⇒ Object + .repository_project_logo_slug(repository, org:, gem_name:) ⇒ Object @@ -43867,31 +59138,21 @@

     
     
    -7842
    -7843
    -7844
    -7845
    -7846
    -7847
    -7848
    -7849
    -7850
    -7851
    -7852
    +11956 +11957 +11958 +11959 +11960 +11961

    @@ -43899,9 +59160,9 @@

    -

    +

    - .recipe_runtime_context(recipe, facts, deletion) ⇒ Object + .repository_resource_urls(repository) ⇒ Object @@ -43913,29 +59174,133 @@

     
     
    -7318
    -7319
    -7320
    -7321
    -7322
    -7323
    -7324
    -7325
    -7326
    -7327
    +11564 +11565 +11566 +11567 +11568 +11569 +11570 +11571 +11572 +11573 +11574 +11575 +11576 +11577 +11578 +11579 +11580 +11581 +11582 +11583 +11584 +11585 +11586 +11587 +11588 +11589 +11590 +11591 +11592 +11593 +11594 +11595 +11596 +11597 +11598 +11599 +11600 +11601 +11602 +11603 +11604 +11605 +11606 +11607 +11608 +11609 +11610 +11611 +11612 +11613 +11614 +11615 +11616 +11617 +11618 +11619 +11620 +11621 +11622 +11623 +11624 +11625

    @@ -43943,9 +59308,9 @@

    -

    +

    - .recipe_template_content(project_root, recipe) ⇒ Object + .repository_root_url(source_url) ⇒ Object @@ -43957,37 +59322,31 @@

     
     
    -4157
    -4158
    -4159
    -4160
    -4161
    -4162
    -4163
    -4164
    -4165
    -4166
    -4167
    -4168
    -4169
    -4170
    +11627 +11628 +11629 +11630 +11631 +11632 +11633 +11634 +11635 +11636 +11637

    @@ -43995,9 +59354,9 @@

    -

    +

    - .remove_duplicate_gemspec_assignments(content, receiver:, fields:) ⇒ Object + .repository_topology_for(config, env, template_selection) ⇒ Object @@ -44009,55 +59368,25 @@

     
     
    -6181
    -6182
    -6183
    -6184
    -6185
    -6186
    -6187
    -6188
    -6189
    -6190
    -6191
    -6192
    -6193
    -6194
    -6195
    -6196
    -6197
    -6198
    -6199
    -6200
    -6201
    -6202
    -6203
    +9298 +9299 +9300 +9301 +9302 +9303 +9304 +9305

    @@ -44065,9 +59394,9 @@

    -

    +

    - .remove_gemfile_dependency_blocks(content, gem_names) ⇒ Object + .required_ruby_version_rubocop_disable(min_ruby) ⇒ Object @@ -44079,43 +59408,23 @@

     
     
    -5307
    -5308
    -5309
    -5310
    -5311
    -5312
    -5313
    -5314
    -5315
    -5316
    -5317
    -5318
    -5319
    -5320
    -5321
    -5322
    -5323
    +7374 +7375 +7376 +7377 +7378 +7379 +7380

    @@ -44123,49 +59432,68 @@

    -

    +

    - .remove_gemfile_dependency_lines(content, gem_names) ⇒ Object + .resolve_template_tokens(content, tokens, scan_unresolved: true) ⇒ Object -

    -
    -
    -
    -7808
    -7809
    -7810
    -7811
    -7812
    -7813
    -7814
    -7815
    -7816
    -7817
    -7818
    -7819
    -7820
    -7821
    -7822
    -7823
    -7824
    -7825
    -7826
    -7827
    -7828
    -7829
    -7830
    -7831
    -7832
    -7833
    -7834
    -7835
    -7836
    -7837
    -7838
    -7839
    -7840
    -
    -
    # File 'lib/kettle/jem.rb', line 7808
    +      
     
    -def recipe_run_stats(recipe_reports, diagnostics: [])
    -  stats = {
    -    recipes: recipe_reports.length,
    -    created: 0,
    -    pre_existing: 0,
    -    identical: 0,
    -    changed: 0,
    -    deleted: 0,
    -    plugin_file_changes: diagnostics.count { |diagnostic| diagnostic[:kind] == "plugin_file_change" }
    -  }
     
    -  recipe_reports.each do |report|
    -     = report.fetch(:metadata, {})
    -    if [:delete_file]
    -      stats[:deleted] += 1 if report[:changed]
    -      next
    -    end
    +11963
    +11964
    +11965
    +11966
    +11967
    +11968
    +
    +
    # File 'lib/kettle/jem.rb', line 11963
     
    -    if [:destination_existed]
    -      stats[:pre_existing] += 1
    -      if report[:changed]
    -        stats[:changed] += 1
    -      else
    -        stats[:identical] += 1
    -      end
    -    elsif report[:changed]
    -      stats[:created] += 1
    -    end
    -  end
    +def repository_project_logo_href(repository, slug:, org:, gem_name:)
    +  package_source_url = repository.is_a?(Hash) ? repository[:package_source_url].to_s : ""
    +  return package_source_url unless package_source_url.empty?
     
    -  stats[:summary] = recipe_run_stats_summary(stats)
    -  stats
    +  (org.to_s.empty? || gem_name.to_s.empty?) ? "#{LOGOS_GALTZO_BASE_URL}/#{slug}/" : "https://github.com/#{org}/#{gem_name}"
     end
    -
    # File 'lib/kettle/jem.rb', line 7842
    +      
    # File 'lib/kettle/jem.rb', line 11956
     
    -def recipe_run_stats_summary(stats)
    -  [
    -    "recipes #{stats.fetch(:recipes)}",
    -    "created #{stats.fetch(:created)}",
    -    "pre_existing #{stats.fetch(:pre_existing)}",
    -    "identical #{stats.fetch(:identical)}",
    -    "changed #{stats.fetch(:changed)}",
    -    "deleted #{stats.fetch(:deleted)}",
    -    "plugin_file_changes #{stats.fetch(:plugin_file_changes)}"
    -  ].join(" ")
    +def repository_project_logo_slug(repository, org:, gem_name:)
    +  package_path = repository.is_a?(Hash) ? repository[:package_path].to_s : ""
    +  return [org, repository[:name].to_s, File.basename(package_path)].reject(&:empty?).join("/") if repository.is_a?(Hash) && !package_path.empty?
    +
    +  [org.to_s, gem_name.to_s].reject(&:empty?).join("/")
     end
    -
    # File 'lib/kettle/jem.rb', line 7318
    +      
    # File 'lib/kettle/jem.rb', line 11564
     
    -def recipe_runtime_context(recipe, facts, deletion)
    -  context = deep_dup(facts)
    -  if recipe.fetch(:primitive) == "supplied_source_selector_deletion" && deletion
    -    context[:delete_selectors] = deletion.fetch(:delete_selectors)
    -  end
    -  context[:template_source_preference] = deep_dup(recipe[:template_preference]) if recipe[:template_preference]
    -  context[:template_tokens] = deep_dup(recipe[:template_tokens]) if recipe[:template_tokens]
    -  context[:readme_style] = deep_dup(recipe[:readme_style]) if recipe[:readme_style]
    -  context
    +def repository_resource_urls(repository)
    +  repo_url = repository[:url].to_s
    +  repo_slug = repository[:slug].to_s
    +  github_org = repo_slug.split("/", 2).first.to_s
    +  repo_name = repository[:name].to_s
    +  gitlab_url = repository[:gitlab_url].to_s
    +  gitlab_url = "https://gitlab.com/#{repo_slug}" if gitlab_url.empty?
    +  codeberg_url = repository[:codeberg_url].to_s
    +  codeberg_url = "https://codeberg.org/#{repo_slug}" if codeberg_url.empty?
    +  package_source_url = repository[:package_source_url].to_s
    +  package_source_url = repo_url if package_source_url.empty?
    +  gitlab_package_source_url = repository[:gitlab_package_source_url].to_s
    +  gitlab_package_source_url = gitlab_url if gitlab_package_source_url.empty?
    +  codeberg_package_source_url = repository[:codeberg_package_source_url].to_s
    +  codeberg_package_source_url = codeberg_url if codeberg_package_source_url.empty?
    +  checksums_url = repository[:checksums_url].to_s
    +  checksums_url = source_tree_url(gitlab_url, "checksums") if checksums_url.empty?
    +
    +  {
    +    github_repository_url: repo_url,
    +    github_package_source_url: package_source_url,
    +    github_releases_url: "#{repo_url}/releases",
    +    github_actions_url: "#{repo_url}/actions",
    +    github_discussions_url: "#{repo_url}/discussions",
    +    github_issues_url: "#{repo_url}/issues",
    +    github_pulls_url: "#{repo_url}/pulls",
    +    github_wiki_url: "#{repo_url}/wiki",
    +    github_codeql_url: "#{repo_url}/security/code-scanning",
    +    github_contributors_url: "#{repo_url}/graphs/contributors",
    +    github_contributing_url: source_blob_url(repo_url, "CONTRIBUTING.md"),
    +    github_changelog_url: source_blob_url(repo_url, "CHANGELOG.md"),
    +    github_security_url: source_blob_url(repo_url, "SECURITY.md"),
    +    github_code_of_conduct_url: source_blob_url(repo_url, "CODE_OF_CONDUCT.md"),
    +    github_rubocop_url: source_blob_url(repo_url, "RUBOCOP.md"),
    +    github_irp_url: source_blob_url(repo_url, "IRP.md"),
    +    gitlab_repository_url: gitlab_url,
    +    gitlab_package_source_url: gitlab_package_source_url,
    +    gitlab_issues_url: "#{gitlab_url}/-/issues",
    +    gitlab_pulls_url: "#{gitlab_url}/-/merge_requests",
    +    gitlab_wiki_url: "#{gitlab_url}/-/wikis/home",
    +    gitlab_contributors_url: "#{gitlab_url}/-/graphs/main",
    +    gitlab_contributing_url: source_blob_url(gitlab_url, "CONTRIBUTING.md"),
    +    gitlab_changelog_url: source_blob_url(gitlab_url, "CHANGELOG.md"),
    +    gitlab_code_of_conduct_url: source_blob_url(gitlab_url, "CODE_OF_CONDUCT.md"),
    +    gitlab_compare_url: "#{gitlab_url}/-/compare",
    +    gitlab_tags_url: "#{gitlab_url}/-/tags",
    +    codeberg_repository_url: codeberg_url,
    +    codeberg_package_source_url: codeberg_package_source_url,
    +    codeberg_issues_url: "#{codeberg_url}/issues",
    +    codeberg_pulls_url: "#{codeberg_url}/pulls",
    +    codecov_url: "https://codecov.io/gh/#{repo_slug}",
    +    codecov_badge_url: "https://codecov.io/gh/#{repo_slug}/graph/badge.svg",
    +    codecov_graph_url: "https://codecov.io/gh/#{repo_slug}/graph/badge.svg",
    +    coveralls_url: "https://coveralls.io/github/#{repo_slug}?branch=main",
    +    coveralls_badge_url: "https://coveralls.io/repos/github/#{repo_slug}/badge.svg?branch=main",
    +    qlty_project_url: "https://qlty.sh/gh/#{github_org}/projects/#{repo_name}",
    +    qlty_maintainability_url: "https://qlty.sh/gh/#{github_org}/projects/#{repo_name}/maintainability.svg",
    +    qlty_coverage_url: "https://qlty.sh/gh/#{github_org}/projects/#{repo_name}/metrics/code?sort=coverageRating",
    +    qlty_coverage_badge_url: "https://qlty.sh/gh/#{github_org}/projects/#{repo_name}/coverage.svg",
    +    checksums_url: checksums_url
    +  }
     end
    -
    # File 'lib/kettle/jem.rb', line 4157
    +      
    # File 'lib/kettle/jem.rb', line 11627
     
    -def recipe_template_content(project_root, recipe)
    -  return "" unless %w[
    -    supplied_kettle_config_bootstrap
    -    supplied_template_source_preference
    -    supplied_template_source_application
    -  ].include?(recipe.fetch(:primitive))
    +def repository_root_url(source_url)
    +  uri = URI.parse(source_url.to_s)
    +  return source_url.to_s unless uri.host == "github.com"
     
    -  preference = recipe.fetch(:template_preference)
    -  path = File.join(
    -    preference.fetch(:source_root_path, project_root),
    -    preference.fetch(:source_relative_path, preference.fetch(:selected_source))
    -  )
    -  File.read(path)
    +  segments = uri.path.to_s.split("/").reject(&:empty?)
    +  return source_url.to_s if segments.length < 2
    +
    +  "#{uri.scheme}://#{uri.host}/#{segments[0]}/#{segments[1].delete_suffix(".git")}"
    +rescue URI::InvalidURIError
    +  source_url.to_s
     end
    -
    # File 'lib/kettle/jem.rb', line 6181
    -
    -def remove_duplicate_gemspec_assignments(content, receiver:, fields:)
    -  wanted = fields.map(&:to_s).to_set
    -  seen = Set.new
    -  duplicate_ranges = []
    -  gemspec_assignment_records(content, receiver: receiver).each do |record|
    -    field = record.fetch(:field).to_s
    -    next unless wanted.include?(field)
    +      
    # File 'lib/kettle/jem.rb', line 9298
     
    -    key = [record.fetch(:receiver).to_s, field, record.fetch(:value)]
    -    if seen.include?(key)
    -      duplicate_ranges << [record.fetch(:start_line), record.fetch(:end_line)]
    -    else
    -      seen << key
    -    end
    -  end
    -  return content if duplicate_ranges.empty?
    +def repository_topology_for(config, env, template_selection)
    +  repository_config = config["repository"].is_a?(Hash) ? config["repository"] : {}
    +  topology = preferred_template_token_value(nil, repository_config["topology"], env, "KJ_REPOSITORY_TOPOLOGY")
    +  normalized = normalize_repository_topology(topology)
    +  return normalized unless normalized.empty?
     
    -  lines = content.to_s.lines
    -  duplicate_ranges.reverse_each do |start_line, end_line|
    -    lines.slice!(start_line - 1, end_line - start_line + 1)
    -  end
    -  ensure_trailing_newline(lines.join)
    +  monorepo_subgem_template_profile_value?(template_selection[:template_profile]) ? REPOSITORY_TOPOLOGY_MONOREPO_SUBPROJECT : REPOSITORY_TOPOLOGY_STANDALONE
     end
    -
    # File 'lib/kettle/jem.rb', line 5307
    -
    -def remove_gemfile_dependency_blocks(content, gem_names)
    -  names = gem_names.map(&:to_s).reject(&:empty?).uniq
    -  return content if names.empty?
    -
    -  lines = content.to_s.lines
    -  remove_indexes = Set.new
    -  gemfile_gem_call_records(content).each do |record|
    -    next unless names.include?(record.fetch(:name))
    +      
    # File 'lib/kettle/jem.rb', line 7374
     
    -    start_index = record.fetch(:start_line) - 1
    -    start_index -= 1 while start_index.positive? && gemfile_comment_line?(lines[start_index - 1])
    -    (start_index..(record.fetch(:end_line) - 1)).each { |index| remove_indexes << index }
    -  end
    -  return content if remove_indexes.empty?
    +def required_ruby_version_rubocop_disable(min_ruby)
    +  return "" unless Gem::Version.new(min_ruby) < Gem::Version.new("2.0")
     
    -  ensure_trailing_newline(lines.each_with_index.reject { |_line, index| remove_indexes.include?(index) }.map(&:first).join.gsub(/\n{3,}/, "\n\n"))
    +  " # rubocop:disable Gemspec/RequiredRubyVersion"
    +rescue ArgumentError
    +  ""
     end
    +
    +
    + + + +
    +
    +
    + +

    Raises:

    +
      + +
    • + + + (ArgumentError) + + + +
    • + +
    + +
    @@ -44173,9 +59501,9 @@

    -

    +

    - .remove_gemfile_percent_w_entries(content, gem_names) ⇒ Object + .resolve_uncommitted_author!(project_root, author_map) ⇒ Object @@ -44187,49 +59515,35 @@

     
     
    -5432
    -5433
    -5434
    -5435
    -5436
    -5437
    -5438
    -5439
    -5440
    -5441
    -5442
    -5443
    -5444
    -5445
    -5446
    -5447
    -5448
    -5449
    -5450
    -5451
    +10545 +10546 +10547 +10548 +10549 +10550 +10551 +10552 +10553 +10554 +10555 +10556 +10557

    @@ -44237,9 +59551,9 @@

    -

    +

    - .remove_gemspec_assignment(content, receiver:, field:) ⇒ Object + .resolved_licenses(config, gemspec_licenses) ⇒ Object @@ -44251,25 +59565,25 @@

     
     
    -6126
    -6127
    -6128
    -6129
    -6130
    -6131
    -6132
    -6133
    +12145 +12146 +12147 +12148 +12149 +12150 +12151 +12152

    @@ -44277,43 +59591,54 @@

    -

    +

    - .remove_gemspec_dependency_lines(content, receiver:, names:, runtime_only: false) ⇒ Object + .retired_gemspec_development_dependency_key?(key) ⇒ Boolean -

     
     
    -5293
    -5294
    -5295
    -5296
    -5297
    -5298
    -5299
    -5300
    -5301
    -5302
    -5303
    -5304
    -5305
    +12423 +12424 +12425 +12426 +12427 +12428 +12429 +12430 +12431 +12432 +12433
    -
    # File 'lib/kettle/jem.rb', line 5293
    +      
    # File 'lib/kettle/jem.rb', line 12423
     
    -def remove_gemfile_dependency_lines(content, gem_names)
    -  names = gem_names.map(&:to_s).reject(&:empty?).uniq
    -  return content if names.empty?
    +def resolve_template_tokens(content, tokens, scan_unresolved: true)
    +  resolver = Token::Resolver::Resolve.new(on_missing: :keep)
    +  document = Token::Resolver::Document.new(content.to_s, config: TEMPLATE_TOKEN_CONFIG)
    +  resolved = resolver.resolve(document, stringify_template_tokens(tokens))
    +  return resolved unless scan_unresolved
     
    -  remove_indexes = Set.new
    -  gemfile_gem_call_records(content).each do |record|
    -    next unless names.include?(record.fetch(:name))
    +  unresolved = Token::Resolver::Document.new(resolved, config: TEMPLATE_TOKEN_CONFIG).token_keys.grep(/\AKJ\|/).sort
    +  return resolved if unresolved.empty?
     
    -    (record.fetch(:start_line)..record.fetch(:end_line)).each { |line_number| remove_indexes << (line_number - 1) }
    -  end
    -  lines = content.to_s.lines.each_with_index.reject { |_line, index| remove_indexes.include?(index) }.map(&:first)
    -  ensure_trailing_newline(lines.join.gsub(/\n{3,}/, "\n\n"))
    +  raise ArgumentError, "unresolved kettle-jem template tokens: #{unresolved.map { |token| "{#{token}}" }.join(", ")}"
     end
    -
    # File 'lib/kettle/jem.rb', line 5432
    +      
    # File 'lib/kettle/jem.rb', line 10545
     
    -def remove_gemfile_percent_w_entries(content, gem_names)
    -  names = gem_names.map(&:to_s).reject(&:empty?).uniq
    -  return content if names.empty?
    -
    -  replacements = ruby_word_array_records(content).filter_map do |record|
    -    kept = record.fetch(:names).reject { |word| names.include?(word) }
    -    next if kept == record.fetch(:names)
    +def resolve_uncommitted_author!(project_root, author_map)
    +  uncommitted = author_map.delete(NOT_COMMITTED_EMAIL)
    +  return unless uncommitted && !uncommitted[:years].empty?
     
    -    replacement = if record.fetch(:source).lines.one?
    -      "%w[#{kept.join(" ")}]"
    -    else
    -      ruby_multiline_word_array_source(kept, indent: record.fetch(:start_column))
    -    end
    -    {start_offset: record.fetch(:start_offset), end_offset: record.fetch(:end_offset), replacement: replacement}
    -  end
    -  return content if replacements.empty?
    +  name = git_capture(project_root, "config", "user.name").strip
    +  email = git_capture(project_root, "config", "user.email").strip
    +  return if email.empty?
     
    -  replaced = replace_source_offsets(content, replacements)
    -  ensure_trailing_newline(replaced.gsub(/\n{3,}/, "\n\n"))
    +  author_map[email][:name] ||= name
    +  author_map[email][:years].concat(uncommitted[:years])
    +rescue ArgumentError
    +  nil
     end
    -
    # File 'lib/kettle/jem.rb', line 6126
    +      
    # File 'lib/kettle/jem.rb', line 12145
     
    -def remove_gemspec_assignment(content, receiver:, field:)
    -   = gemspec_assignment_records(content, receiver: receiver)
    -    .select { |record| record.fetch(:field) == field.to_s }
    -    .to_h { |record| [record.fetch(:start_line), record.merge(replacement: "")] }
    -  return content if .empty?
    +def resolved_licenses(config, gemspec_licenses)
    +  config_licenses = config.is_a?(Hash) ? config["licenses"] : nil
    +  licenses = Array(config_licenses).map { |license| license.to_s.strip }.reject(&:empty?)
    +  return licenses unless licenses.empty?
     
    -  ensure_trailing_newline(replace_record_ranges(content, ).gsub(/\n{3,}/, "\n\n"))
    +  licenses = Array(gemspec_licenses).map { |license| license.to_s.strip }.reject(&:empty?)
    +  licenses.empty? ? ["MIT"] : licenses
     end
    +
    +
    + + + +
    +
    +
    + +

    Returns:

    +
      + +
    • + + + (Boolean) + + + +
    • + +
    + +
    @@ -44321,9 +59646,9 @@

    -

    +

    - .remove_gemspec_development_dependencies_already_runtime(content, receiver:) ⇒ Object + .rewrite_gemspec_version_loader(content, facts:) ⇒ Object @@ -44335,47 +59660,49 @@

    -6368 -6369 -6370 -6371 -6372 -6373 -6374 -6375 -6376 -6377 -6378 -6379 -6380 -6381 -6382 -6383 -6384 -6385 -6386 +7212 +7213 +7214 +7215 +7216 +7217 +7218 +7219 +7220 +7221 +7222 +7223 +7224 +7225 +7226 +7227 +7228 +7229 +7230 +7231

    @@ -44383,9 +59710,9 @@

    -

    +

    -6022 -6023 -6024 -6025 -6026 -6027 -6028 -6029 -6030 -6031 -6032 +5096 +5097 +5098 +5099 +5100 +5101 +5102 +5103 +5104 +5105 +5106 +5107 +5108 +5109

    @@ -44429,9 +59762,9 @@

    -

    +

    - .remove_gemspec_self_dependency_lines(content, package_name, receiver:) ⇒ Object + .rubocop_target_ruby_token(min_ruby) ⇒ Object @@ -44443,35 +59776,27 @@

     
     
    -6448
    -6449
    -6450
    -6451
    -6452
    -6453
    -6454
    -6455
    -6456
    -6457
    -6458
    -6459
    -6460
    +12096 +12097 +12098 +12099 +12100 +12101 +12102 +12103 +12104

    @@ -44479,9 +59804,9 @@

    -

    +

    - .remove_gemspec_version_gem_dependency_when_runtime_incompatible(content, facts, receiver:) ⇒ Object + .rubocop_template_tokens(min_ruby, ruby_style: {}) ⇒ Object @@ -44493,21 +59818,31 @@

    -6119 -6120 -6121 -6122 -6123 -6124 +12026 +12027 +12028 +12029 +12030 +12031 +12032 +12033 +12034 +12035 +12036

    @@ -44515,9 +59850,9 @@

    -

    +

    - .remove_legacy_version_signature_alias(project_root, signature_path) ⇒ Object + .rubocop_tokens_for(min_ruby) ⇒ Object @@ -44529,27 +59864,15 @@

     
     
    -8692
    -8693
    -8694
    -8695
    -8696
    -8697
    -8698
    -8699
    -8700
    +12106 +12107 +12108

    @@ -44557,9 +59880,9 @@

    -

    +

    - .remove_readme_badge_and_refs(content, badge_source, link_labels) ⇒ Object + .ruby_appraisal_name_version(name) ⇒ Object @@ -44571,29 +59894,29 @@

     
     
    -4490
    -4491
    -4492
    -4493
    -4494
    -4495
    -4496
    -4497
    -4498
    -4499
    +7137 +7138 +7139 +7140 +7141 +7142 +7143 +7144 +7145 +7146

    @@ -44601,9 +59924,9 @@

    -

    +

    - .remove_readme_sections(content, section_bases) ⇒ Object + .ruby_appraisal_names_below(content, min_ruby) ⇒ Object @@ -44615,35 +59938,31 @@

     
     
    -4743
    -4744
    -4745
    -4746
    -4747
    -4748
    -4749
    -4750
    -4751
    -4752
    -4753
    -4754
    -4755
    +4650 +4651 +4652 +4653 +4654 +4655 +4656 +4657 +4658 +4659 +4660

    @@ -44651,9 +59970,9 @@

    -

    +

    - .remove_ruby_comment_lines_containing(content, text) ⇒ Object + .ruby_array_literal(values) ⇒ Object @@ -44665,35 +59984,15 @@

     
     
    -6146
    -6147
    -6148
    -6149
    -6150
    -6151
    -6152
    -6153
    -6154
    -6155
    -6156
    -6157
    -6158
    +10470 +10471 +10472

    @@ -44701,63 +60000,62 @@

    -

    +

    - .remove_top_level_yaml_key_lines(content, key) ⇒ Object + .ruby_bucket_path_segment?(segment) ⇒ Boolean -

     
     
    -6135
    -6136
    -6137
    -6138
    -6139
    -6140
    -6141
    -6142
    -6143
    -6144
    +8366 +8367 +8368 +8369
    -
    # File 'lib/kettle/jem.rb', line 6135
    +      
    # File 'lib/kettle/jem.rb', line 8366
     
    -def remove_gemspec_dependency_lines(content, receiver:, names:, runtime_only: false)
    -  wanted = names.map(&:to_s).to_set
    -   = gemspec_dependency_records(content, receiver: receiver)
    -    .select { |record| wanted.include?(record.fetch(:name)) }
    -    .select { |record| !runtime_only || record.fetch(:kind) != "add_development_dependency" }
    -    .to_h { |record| [record.fetch(:start_line), record.merge(replacement: "")] }
    -  return content if .empty?
    -
    -  ensure_trailing_newline(replace_record_ranges(content, ).gsub(/\n{3,}/, "\n\n"))
    +def retired_gemspec_development_dependency_key?(key)
    +  key.first == "add_development_dependency" &&
    +    RETIRED_GEMSPEC_DEVELOPMENT_DEPENDENCIES.include?(key.last)
     end
    -
    # File 'lib/kettle/jem.rb', line 6368
    +      
    # File 'lib/kettle/jem.rb', line 7212
     
    -def remove_gemspec_development_dependencies_already_runtime(content, receiver:)
    -  records = gemspec_dependency_records(content, receiver: receiver)
    -  runtime_names = records.each_with_object(Set.new) do |record, names|
    -    next if record.fetch(:kind) == "add_development_dependency"
    +def rewrite_gemspec_version_loader(content, facts:)
    +  return content if shim_template_profile?(facts)
     
    -    names << record.fetch(:name)
    -  end
    -  return content if runtime_names.empty?
    +  min_ruby = gemspec_runtime_floor_token(facts)
    +  return content if min_ruby.to_s.empty?
     
    -  duplicate_development_records = records.select do |record|
    -    record.fetch(:kind) == "add_development_dependency" && runtime_names.include?(record.fetch(:name))
    -  end
    -  return content if duplicate_development_records.empty?
    +  namespace = facts.to_h.dig(:rubygems, :namespace).to_s
    +  entrypoint_require = facts.to_h.dig(:rubygems, :entrypoint_require).to_s
    +  entrypoint_require = facts.to_h.dig(:package, :name).to_s.tr("-", "/") if entrypoint_require.empty?
    +  return content if namespace.empty? || entrypoint_require.empty?
     
    -   = duplicate_development_records.to_h do |record|
    -    [record.fetch(:start_line), record.merge(replacement: "")]
    -  end
    -  replace_record_ranges(content, )
    +  receiver = gemspec_block_param(content) || "spec"
    +  min_ruby_version = Gem::Version.new(min_ruby)
    +  modern = min_ruby_version >= MODERN_GEMSPEC_VERSION_LOADER_MIN_RUBY
    +  rhs = modern ? gemspec_modern_version_loader_expression(entrypoint_require: entrypoint_require, namespace: namespace) : "gem_version"
    +  rewritten = replace_gemspec_version_assignment(content, receiver: receiver, rhs: rhs)
    +  modern ? remove_gemspec_legacy_version_loader_preamble(rewritten) : ensure_gemspec_legacy_version_loader_preamble(rewritten, entrypoint_require: entrypoint_require, namespace: namespace, min_ruby: min_ruby_version)
    +rescue ArgumentError, Ast::Crispr::Error
    +  content
     end
    -
    # File 'lib/kettle/jem.rb', line 6022
    +      
    # File 'lib/kettle/jem.rb', line 5096
     
    -def remove_gemspec_legacy_version_loader_preamble(content)
    -  node = gemspec_top_level_gem_version_node(content)
    -  unless node
    -    fallback_range = gemspec_legacy_version_loader_preamble_line_range(content)
    -    return content unless fallback_range
    +def rewrite_markdown_reference_links(content, links)
    +  ensure_runtime_dependencies!
    +  context = Ast::Crispr::Markdown::Markly.document_context(content: content, source_label: "README.md")
    +  context.structural_owners(owner_scope: :link_definitions).reduce(content.to_s) do |processed, owner|
    +    replacement = links[owner.url.to_s]
    +    next processed unless replacement
     
    -    return replace_source_range_lines(content, fallback_range.fetch(:start_line), fallback_range.fetch(:end_line), "")
    +    replace_markdown_with_ast_crispr(
    +      processed,
    +      Ast::Crispr::Markdown::Markly::Selectors.link_definition(label: owner.label, limit: {exactly: 1}),
    +      markdown_link_definition_source(owner, replacement)
    +    )
       end
    -
    -  replace_source_range_lines(content, node.location.start_line, expand_line_range_through_following_blanks(content, node.location.end_line), "")
     end
    -
    # File 'lib/kettle/jem.rb', line 6448
    -
    -def remove_gemspec_self_dependency_lines(content, package_name, receiver:)
    -  name = package_name.to_s
    -  return content if name.empty?
    +      
    # File 'lib/kettle/jem.rb', line 12096
     
    -  remove_indexes = Set.new
    -  gemspec_dependency_records(content, receiver: receiver).each do |record|
    -    next unless record.fetch(:name) == name
    +def rubocop_target_ruby_token(min_ruby)
    +  token = minimum_ruby_token(min_ruby)
    +  return "0" if token == "0"
     
    -    (record.fetch(:start_line)..record.fetch(:end_line)).each { |line_number| remove_indexes << (line_number - 1) }
    -  end
    -  lines = content.to_s.lines.each_with_index.reject { |_line, index| remove_indexes.include?(index) }.map(&:first)
    -  ensure_trailing_newline(lines.join.gsub(/\n{3,}/, "\n\n"))
    +  segments = Gem::Version.new(token).segments
    +  segments.first(2).join(".")
    +rescue ArgumentError
    +  ""
     end
    -
    # File 'lib/kettle/jem.rb', line 6119
    -
    -def remove_gemspec_version_gem_dependency_when_runtime_incompatible(content, facts, receiver:)
    -  return content if version_gem_runtime_compatible?(facts)
    +      
    # File 'lib/kettle/jem.rb', line 12026
     
    -  cleaned = remove_gemspec_dependency_lines(content, receiver: receiver, names: ["version_gem"], runtime_only: true)
    -  remove_ruby_comment_lines_containing(cleaned, "version_gem")
    +def rubocop_template_tokens(min_ruby, ruby_style: {})
    +  constraint, gem_name, gem_constraint = rubocop_tokens_for(min_ruby_version(min_ruby))
    +  {
    +    "KJ|RUBOCOP_TARGET_RUBY" => rubocop_target_ruby_token(min_ruby),
    +    "KJ|RUBOCOP_LTS_CONSTRAINT" => constraint,
    +    "KJ|RUBOCOP_RUBY_GEM" => gem_name,
    +    "KJ|RUBOCOP_RUBY_CONSTRAINT" => gem_constraint
    +  }.merge(
    +    ruby_style_template_tokens(ruby_style)
    +  )
     end
    -
    # File 'lib/kettle/jem.rb', line 8692
    +      
    # File 'lib/kettle/jem.rb', line 12106
     
    -def remove_legacy_version_signature_alias(project_root, signature_path)
    -  current = read_project_file(project_root, signature_path)
    -  return nil if current.empty?
    -
    -  cleaned = current.lines.reject { |line| line.strip == "VERSION: String" }.join
    -  return nil if cleaned == current
    -
    -  write_if_changed(project_root, signature_path, cleaned)
    +def rubocop_tokens_for(min_ruby)
    +  Kettle::Rb::CompatMatrix.rubocop_template_tokens(min_ruby)
     end
    -
    # File 'lib/kettle/jem.rb', line 4490
    +      
    # File 'lib/kettle/jem.rb', line 7137
     
    -def remove_readme_badge_and_refs(content, badge_source, link_labels)
    -  processed = content.to_s.gsub(badge_source, "").lines.map(&:rstrip).join("\n")
    -  processed = "#{processed}\n" if content.to_s.end_with?("\n")
    -  Array(link_labels).reduce(processed) do |memo, label|
    -    delete_markdown_with_ast_crispr(
    -      memo,
    -      Ast::Crispr::Markdown::Markly::Selectors.link_definition(label: label, limit: {at_least: 0})
    -    )
    -  end
    +def ruby_appraisal_name_version(name)
    +  text = name.to_s
    +  return unless text.start_with?("ruby-")
    +
    +  major, minor, extra = text.delete_prefix("ruby-").split("-", -1)
    +  return if extra || major.to_s.empty? || minor.to_s.empty?
    +  return unless [major, minor].all? { |part| part.each_char.all? { |char| char.between?("0", "9") } }
    +
    +  Gem::Version.new("#{major}.#{minor}")
     end
    -
    # File 'lib/kettle/jem.rb', line 4743
    -
    -def remove_readme_sections(content, section_bases)
    -  bases = section_bases.map { |section| normalize_readme_heading(section) }.uniq
    -  return content if bases.empty?
    +      
    # File 'lib/kettle/jem.rb', line 4650
     
    -  sections = markdown_sections(content).select { |section| bases.include?(section.fetch(:base)) }
    -  return content if sections.empty?
    +def ruby_appraisal_names_below(content, min_ruby)
    +  return [] if min_ruby.to_s.empty?
     
    -  lines = content.to_s.split("\n", -1)
    -  sections.reverse_each do |section|
    -    lines[section.fetch(:start)..section.fetch(:end)] = []
    +  minimum = Gem::Version.new(min_ruby.to_s)
    +  appraisal_names(content).select do |name|
    +    version = ruby_appraisal_name_version(name)
    +    version && version < minimum
       end
    -  ensure_trailing_newline(lines.join("\n").gsub(/\n{3,}/, "\n\n").strip)
    +rescue ArgumentError
    +  []
     end
    -
    # File 'lib/kettle/jem.rb', line 6146
    -
    -def remove_ruby_comment_lines_containing(content, text)
    -  result = prism_parse_success(content)
    -  return content unless result
    -
    -  selectors = result.comments.filter_map do |comment|
    -    next unless comment.location.slice.include?(text.to_s)
    -
    -    {start_line: comment.location.start_line, end_line: comment.location.end_line}
    -  end
    -  return content if selectors.empty?
    +      
    # File 'lib/kettle/jem.rb', line 10470
     
    -  ensure_trailing_newline(delete_line_ranges(content.to_s, selectors))
    +def ruby_array_literal(values)
    +  "[#{Array(values).map { |value| %("#{ruby_double_quoted_string_body(value.to_s)}") }.join(", ")}]"
     end
    +
    +
    + + + +
    +
    +
    + +

    Returns:

    +
      + +
    • + + + (Boolean) + + + +
    • + +
    + +
    @@ -44765,9 +60063,9 @@

    -

    +

    - .remove_version_gem_entrypoint_references(content) ⇒ Object + .ruby_call_records(content, call_name) ⇒ Object @@ -44779,41 +60077,25 @@

    -8772 -8773 -8774 -8775 -8776 -8777 -8778 -8779 -8780 -8781 -8782 -8783 -8784 -8785 -8786 -8787 +6488 +6489 +6490 +6491 +6492 +6493 +6494 +6495

    @@ -44821,9 +60103,9 @@

    -

    +

    - .remove_yaml_scalar_path(content, path) ⇒ Object + .ruby_constant_path_segments(node) ⇒ Object @@ -44835,29 +60117,15 @@

     
     
    -6818
    -6819
    -6820
    -6821
    -6822
    -6823
    -6824
    -6825
    -6826
    -6827
    +11451 +11452 +11453

    @@ -44865,99 +60133,29 @@

    -

    - - .render_thin_readme(facts, readme_style, original, preserve_config) ⇒ Object +

    - + .ruby_double_quoted_string_body(value) ⇒ Object -

     
     
    -10933
    -10934
    -10935
    -10936
    -10937
    -10938
    -10939
    -10940
    -10941
    -10942
    -10943
    -10944
    -10945
    -10946
    -10947
    -10948
    -10949
    -10950
    -10951
    -10952
    +6783 +6784 +6785 +6786 +6787 +6788 +6789 +6790
    -
    # File 'lib/kettle/jem.rb', line 10933
    -
    -def remove_top_level_yaml_key_lines(content, key)
    -  lines = content.to_s.lines
    -  document = Psych.parse_stream(content.to_s).children.first
    -  root = document&.root
    -  return content unless root.is_a?(Psych::Nodes::Mapping)
    +      
    # File 'lib/kettle/jem.rb', line 6783
     
    -  pairs = root.children.each_slice(2).to_a
    -  pairs.each_with_index do |(key_node, value_node), index|
    -    next unless key_node.is_a?(Psych::Nodes::Scalar) && key_node.value.to_s == key.to_s
    +def ruby_bucket_path_segment?(segment)
    +  return false unless segment.to_s.start_with?("r")
     
    -    next_key = pairs[index + 1]&.first
    -    end_line = next_key&.start_line || value_node.end_line
    -    end_line += 1 if end_line <= key_node.start_line
    -    return [*lines[0...key_node.start_line], *lines[end_line..].to_a].join
    -  end
    +  version = segment.to_s[1..].to_s
    +  return false if version.empty?
     
    -  content
    -rescue Psych::Exception
    -  content
    +  version.split(".", -1).all? { |part| !part.empty? && part.each_char.all? { |char| char.between?("0", "9") } }
     end
    -
    # File 'lib/kettle/jem.rb', line 8772
    -
    -def remove_version_gem_entrypoint_references(content)
    -  selectors = []
    -  top_level_ruby_call_records(content, :require).each do |call|
    -    next unless ruby_string_argument(call) == "version_gem"
    +      
    # File 'lib/kettle/jem.rb', line 6488
     
    -    selectors << {start_line: call.location.start_line, end_line: call.location.end_line}
    -  end
    -  top_level_ruby_call_records(content, :class_eval).each do |call|
    -    next unless version_gem_class_eval_call?(call)
    +def ruby_call_records(content, call_name)
    +  result = prism_parse_success(content)
    +  return [] unless result
     
    -    selectors << {start_line: call.location.start_line, end_line: call.location.end_line}
    +  result.value.breadth_first_search_all do |node|
    +    node.is_a?(::Prism::CallNode) && (call_name.nil? || node.name == call_name)
       end
    -  return content.to_s if selectors.empty?
    -
    -  collapse_excess_blank_lines(delete_line_ranges(content.to_s, selectors))
     end
    -
    # File 'lib/kettle/jem.rb', line 6818
    -
    -def remove_yaml_scalar_path(content, path)
    -  lines = content.to_s.lines
    -  yaml_scalar_path_entries(content).each do |entry|
    -    next unless entry.fetch(:path) == path
    +      
    # File 'lib/kettle/jem.rb', line 11451
     
    -    line_index = entry.fetch(:line)
    -    return ensure_trailing_newline(lines.each_with_index.reject { |_line, index| index == line_index }.map(&:first).join)
    -  end
    -  content
    +def ruby_constant_path_segments(node)
    +  node&.slice.to_s.split("::").reject(&:empty?)
     end
    - - - @@ -47727,95 +63134,64 @@

    -

    +

    - .ruby_top_level_require_records(content) ⇒ Object + .shunted_dependency_has_modular_override?(project_root, dependency) ⇒ Boolean -

    -
    -
    -
    -3491
    -3492
    -3493
    -3494
    -3495
    -3496
    -3497
    -3498
    -3499
    -3500
    -3501
    -3502
    -3503
    -3504
    -3505
    -3506
    -3507
    -3508
    -3509
    -3510
    -3511
    -3512
    -3513
    -3514
    -3515
    -3516
    -3517
    -3518
    -3519
    -3520
    -3521
    -3522
    -3523
    -3524
    -3525
    -3526
    -3527
    -3528
    -
    -
    # File 'lib/kettle/jem.rb', line 3491
     
    -def render_thin_readme(facts, readme_style, original, preserve_config)
    -  package = facts.fetch(:package)
    -  rubygems = facts.fetch(:rubygems)
    -  license_expression = package[:license_expression].to_s
    -  min_ruby = minimum_ruby_token(rubygems[:min_ruby])
    -  title = classify_namespace(package.fetch(:name))
    -  badges = [
    -    package[:source_url] && "[![Source](https://img.shields.io/badge/source-github-238636.svg)](#{package[:source_url]})",
    -    license_expression.empty? ? nil : "![License](https://img.shields.io/badge/license-#{shield_token(license_expression)}-259D6C.svg)"
    -  ].compact.join(" ")
    -  funding_enabled = readme_style.fetch(:floss_funding_enabled, false)
    -  security_enabled = readme_style.fetch(:security_enabled, false)
    -  section_partials = readme_section_partials_for_render(readme_style, facts)
    -  rendered = [
    -    "# 💎 #{title}",
    -    badges,
    -    "## 🌻 Synopsis\n\n#{section_partials.fetch("synopsis", "")}",
    -    "## 💡 Info you can shake a stick at\n\nCompatible with MRI Ruby #{min_ruby}+.\n\n#{readme_family_intro_and_backend_matrix(readme_style)}",
    -    "## ✨ Installation\n\n```console\ngem install #{package.fetch(:name)}\n```",
    -    "## ⚙️ Configuration\n\n#{section_partials.fetch("configuration", "")}",
    -    "## 🔧 Basic Usage\n\n#{section_partials.fetch("basic usage", "")}"
    -  ]
    -  rendered << "## 🦷 FLOSS Funding\n\nThis free software project accepts funding support when configured by the package maintainer." if funding_enabled
    -  rendered << "## 🔐 Security\n\nSee [SECURITY.md](SECURITY.md)." if security_enabled
    -  rendered.concat([
    -    "## 🤝 Contributing\n\nContributions are welcome. Missing optional service integrations are reported by the generator instead of rendered as broken badges.",
    -    "## 📌 Versioning\n\nThis project follows semantic versioning for its public API where practical.",
    -    "## 📄 License\n\nThis project is made available under the following license expression: #{license_expression.empty? ? "unspecified" : license_expression}.",
    -    "## 🤑 A request for help\n\nPlease support the project by using it, reporting issues, and contributing improvements."
    -  ])
    -  template_content = rendered.reject(&:empty?).join("\n\n") + "\n"
    +  
    +
    +  
    +    
    +    
    @@ -44965,9 +60163,9 @@ 

    -

    +

    - .replace_existing_markdown_managed_block(content, marker, replacement) ⇒ Object + .ruby_engines_config(config) ⇒ Object @@ -44979,23 +60177,21 @@

    -11592 -11593 -11594 -11595 -11596 -11597 -11598 +9516 +9517 +9518 +9519 +9520 +9521

    @@ -45003,9 +60199,9 @@

    -

    +

    - .replace_gemspec_assignment_sources(content, replacements, receiver:) ⇒ Object + .ruby_entrypoint_module_namespace(content) ⇒ Object @@ -45017,31 +60213,25 @@

     
     
    -6271
    -6272
    -6273
    -6274
    -6275
    -6276
    -6277
    -6278
    -6279
    -6280
    -6281
    +11470 +11471 +11472 +11473 +11474 +11475 +11476 +11477

    @@ -45049,9 +60239,9 @@

    -

    +

    - .replace_gemspec_version_assignment(content, receiver:, rhs:) ⇒ Object + .ruby_entrypoint_module_namespace_for(node, namespace) ⇒ Object @@ -45063,29 +60253,29 @@

     
     
    -5979
    -5980
    -5981
    -5982
    -5983
    -5984
    -5985
    -5986
    -5987
    -5988
    +11479 +11480 +11481 +11482 +11483 +11484 +11485 +11486 +11487 +11488

    @@ -45093,60 +60283,83 @@

    -

    +

    - .replace_kettle_config_bootstrap_licenses(content, licenses) ⇒ Object + .ruby_first_simple_quoted_string_node(node) ⇒ Object -

    -
    - +

    +
     
    -  merge_readme_template(
    -    template_content: template_content,
    -    destination_content: original,
    -    preserve_config: readme_preserve_config_without_partial_sections(preserve_config, section_partials.keys)
    -  )
    +
    +9241
    +9242
    +9243
    +
    +
    # File 'lib/kettle/jem.rb', line 9241
    +
    +def ruby_double_quoted_string_body(value)
    +  value.to_s.gsub("\\", "\\\\\\").gsub('"', '\"')
     end
    -
    # File 'lib/kettle/jem.rb', line 11592
    +      
    # File 'lib/kettle/jem.rb', line 9516
     
    -def replace_existing_markdown_managed_block(content, marker, replacement)
    -  open = "<!-- #{marker}:start -->"
    -  close = "<!-- #{marker}:end -->"
    -  replace_markdown_managed_block_with_crispr(content, open, close, replacement) do
    -    content
    -  end
    +def ruby_engines_config(config)
    +  engines = config["engines"]
    +  return unless engines.is_a?(Array)
    +
    +  engines.map { |engine| engine.to_s.strip.downcase }.reject(&:empty?).uniq
     end
    -
    # File 'lib/kettle/jem.rb', line 6271
    -
    -def replace_gemspec_assignment_sources(content, replacements, receiver:)
    -  return content if replacements.empty?
    -
    -   = gemspec_assignment_records(content, receiver: receiver).each_with_object({}) do |record, index|
    -    field = record.fetch(:field)
    -    next unless replacements.key?(field)
    +      
    # File 'lib/kettle/jem.rb', line 11470
     
    -    index[record.fetch(:start_line)] = record.merge(replacement: "#{replacements.fetch(field)}\n")
    +def ruby_entrypoint_module_namespace(content)
    +  body = prism_parse_success(content)&.value&.statements&.body || []
    +  body.each do |node|
    +    namespace = ruby_entrypoint_module_namespace_for(node, [])
    +    return namespace if namespace
       end
    -  replace_record_ranges(content, )
    +  nil
     end
    -
    # File 'lib/kettle/jem.rb', line 5979
    +      
    # File 'lib/kettle/jem.rb', line 11479
     
    -def replace_gemspec_version_assignment(content, receiver:, rhs:)
    -  replacement = "#{receiver}.version = #{rhs}"
    -  record = gemspec_assignment_records(content, receiver: receiver).find { |candidate| candidate.fetch(:field) == "version" }
    -  return replace_source_range_lines(content, record.fetch(:start_line), record.fetch(:end_line), "#{leading_whitespace(record.fetch(:source))}#{replacement}\n") if record
    -
    -  name = gemspec_assignment_records(content, receiver: receiver).find { |candidate| candidate.fetch(:field) == "name" }
    -  return insert_lines_after(content, name.fetch(:end_line), "  #{replacement}\n") if name
    +def ruby_entrypoint_module_namespace_for(node, namespace)
    +  return unless node.is_a?(::Prism::ModuleNode)
     
    -  insert_lines_after(content, gemspec_new_call(content)&.location&.start_line || 1, "  #{replacement}\n")
    +  current = namespace + ruby_constant_path_segments(node.constant_path)
    +  node.body&.body&.each do |child|
    +    child_namespace = ruby_entrypoint_module_namespace_for(child, current)
    +    return child_namespace if child_namespace
    +  end
    +  current.join("::") unless current.empty?
     end
    + + + + +
    +
     
     
    -  
    +8428
    +8429
    +8430
    +8431
    +8432
    +8433
    +8434
    +8435
    +8436
    +8437
    +8438
    +8439
    +8440
    +8441
    +
    +
    # File 'lib/kettle/jem.rb', line 8428
    +
    +def ruby_first_simple_quoted_string_node(node)
    +  case node
    +  when ::Prism::StringNode
    +    node if ruby_simple_quoted_string_node?(node)
    +  when ::Prism::InterpolatedStringNode
    +    node.compact_child_nodes.each do |child|
    +      string_node = ruby_first_simple_quoted_string_node(child)
    +      return string_node if string_node
    +    end
    +    nil
    +  when ::Prism::CallNode
    +    ruby_first_simple_quoted_string_node(node.receiver)
    +  end
    +end
    +
    -
    + +
    +

    -

    Raises:

    -
      + .ruby_first_string_argument(owner) ⇒ Object -
    • - - - (Error) - - - -
    • + -
    -

    + +
    @@ -45154,58 +60367,77 @@

    -

    +

    - .replace_kettle_config_bootstrap_project_emoji(content, emoji) ⇒ Object + .ruby_keyword_argument_node(call, key) ⇒ Object -

    -
    - +
     
     
    -6667
    -6668
    -6669
    -6670
    -6671
    -6672
    -6673
    +11352 +11353 +11354 +11355
    -
    # File 'lib/kettle/jem.rb', line 6667
    -
    -def replace_kettle_config_bootstrap_licenses(content, licenses)
    -  license_block = ["licenses:", *licenses.map { |license_id| "  - #{license_id}" }].join("\n")
    -  updated = replace_yaml_node_lines(content, "licenses", "#{license_block}\n")
    -  return updated unless updated == content
    +      
    # File 'lib/kettle/jem.rb', line 11352
     
    -  raise Error, "Could not replace licenses block in .kettle-jem.yml bootstrap template"
    +def ruby_first_string_argument(owner)
    +  argument = owner.arguments&.arguments&.first
    +  argument.respond_to?(:unescaped) ? argument.unescaped : nil
     end
    + + + + +
    +
     
     
    -  
    +4638
    +4639
    +4640
    +4641
    +4642
    +4643
    +4644
    +
    +
    # File 'lib/kettle/jem.rb', line 4638
    +
    +def ruby_keyword_argument_node(call, key)
    +  keyword_hash = Array(call&.arguments&.arguments).find { |argument| argument.is_a?(::Prism::KeywordHashNode) }
    +  assoc = keyword_hash&.elements&.find do |element|
    +    element.respond_to?(:key) && element.key.respond_to?(:unescaped) && element.key.unescaped == key.to_s
    +  end
    +  assoc&.value
    +end
    +
    -
    + +
    +

    -

    Raises:

    -
      + .ruby_keyword_string_argument(call, key) ⇒ Object -
    • - - - (Error) - - - -
    • + -
    -

    + +
    @@ -45213,9 +60445,9 @@

    -

    +

    - .replace_local_gems_assignment(content, gems) ⇒ Object + .ruby_local_word_array_assignments(root) ⇒ Object @@ -45227,28 +60459,22 @@

     
     
    -4880
    -4881
    -4882
    -4883
    -4884
    -4885
    -4886
    -4887
    -4888
    -4889
    +4617 +4618 +4619 +4620 +4621 +4622 +4623

    @@ -45257,9 +60483,9 @@

    -

    +

    - .replace_markdown_managed_block(content, marker, replacement) ⇒ Object + .ruby_merge_options(recipe, merge_template_requires:) ⇒ Object @@ -45271,23 +60497,25 @@

     
     
    -11584
    -11585
    -11586
    -11587
    -11588
    -11589
    -11590
    +6201 +6202 +6203 +6204 +6205 +6206 +6207 +6208

    @@ -45295,9 +60523,9 @@

    -

    +

    - .replace_markdown_managed_block_with_crispr(content, open_marker, close_marker, replacement) ⇒ Object + .ruby_method_move_policy(recipe) ⇒ Object @@ -45309,45 +60537,17 @@

    -11612 -11613 -11614 -11615 -11616 -11617 -11618 -11619 -11620 -11621 -11622 -11623 -11624 -11625 -11626 -11627 -11628 -11629 +6176 +6177 +6178 +6179

    @@ -45355,9 +60555,9 @@

    -

    +

    - .replace_markdown_with_ast_crispr(content, target, replacement) ⇒ Object + .ruby_multiline_word_array_source(names, indent:) ⇒ Object @@ -45369,25 +60569,19 @@

     
     
    -4619
    -4620
    -4621
    -4622
    -4623
    -4624
    -4625
    -4626
    +6672 +6673 +6674 +6675 +6676

    @@ -45395,9 +60589,9 @@

    -

    +

    - .replace_matching_gemspec_dependency_lines(content, destination_dependencies, receiver:) ⇒ Object + .ruby_node_source_end_line(node) ⇒ Object @@ -45409,23 +60603,29 @@

    -6343 -6344 -6345 -6346 -6347 -6348 -6349 +6497 +6498 +6499 +6500 +6501 +6502 +6503 +6504 +6505 +6506

    @@ -45433,57 +60633,62 @@

    -

    +

    - .replace_record_ranges(content, records_by_line) ⇒ Object + .ruby_project_version_constant_path?(node, namespace:) ⇒ Boolean -

     
     
    -6660
    -6661
    -6662
    -6663
    -6664
    -6665
    +6559 +6560 +6561 +6562 +6563 +6564 +6565 +6566
    -
    # File 'lib/kettle/jem.rb', line 6660
    -
    -def replace_kettle_config_bootstrap_project_emoji(content, emoji)
    -  updated = replace_yaml_scalar_line(content, "project_emoji", emoji.to_s)
    -  return updated unless updated == content
    +      
    # File 'lib/kettle/jem.rb', line 6559
     
    -  raise Error, "Could not replace project_emoji in .kettle-jem.yml bootstrap template"
    +def ruby_keyword_string_argument(call, key)
    +  keyword_hash = Array(call&.arguments&.arguments).find { |argument| argument.is_a?(::Prism::KeywordHashNode) }
    +  assoc = keyword_hash&.elements&.find do |element|
    +    element.respond_to?(:key) && element.key.respond_to?(:unescaped) && element.key.unescaped == key.to_s
    +  end
    +  value = assoc&.value
    +  ruby_static_string_value(value)
     end
    -
    # File 'lib/kettle/jem.rb', line 4880
    +      
    # File 'lib/kettle/jem.rb', line 4617
     
    -def replace_local_gems_assignment(content, gems)
    -  replacement = ["local_gems = %w["]
    -  gems.each { |gem_name| replacement << "  #{gem_name}" }
    -  replacement << "]"
    -  if (record = local_gems_assignment_record(content))
    -    replace_source_range_lines(content, record.fetch(:start_line), record.fetch(:end_line), ensure_trailing_newline(replacement.join("\n")))
    -  else
    -    ensure_trailing_newline([content.to_s.rstrip, replacement.join("\n")].reject(&:empty?).join("\n\n"))
    +def ruby_local_word_array_assignments(root)
    +  root.breadth_first_search_all do |node|
    +    node.is_a?(::Prism::LocalVariableWriteNode) && ruby_word_array_node?(node.value)
    +  end.to_h do |node|
    +    [node.name.to_s, ruby_word_array_names(node.value)]
       end
     end
    -
    # File 'lib/kettle/jem.rb', line 11584
    +      
    # File 'lib/kettle/jem.rb', line 6201
     
    -def replace_markdown_managed_block(content, marker, replacement)
    -  open = "<!-- #{marker}:start -->"
    -  close = "<!-- #{marker}:end -->"
    -  replace_markdown_managed_block_with_crispr(content, open, close, replacement) do
    -    ensure_trailing_newline([content.rstrip, "", replacement.to_s.rstrip].join("\n"))
    +def ruby_merge_options(recipe, merge_template_requires:)
    +  options = {merge_template_requires: merge_template_requires}
    +  parameters = Ruby::Merge.method(:merge_ruby).parameters
    +  if parameters.include?([:key, :method_move_policy]) || parameters.any? { |kind, _name| kind == :keyrest }
    +    options[:method_move_policy] = ruby_method_move_policy(recipe)
       end
    +  options
     end
    -
    # File 'lib/kettle/jem.rb', line 11612
    -
    -def replace_markdown_managed_block_with_crispr(content, open_marker, close_marker, replacement)
    -  prepared_replacement = ensure_trailing_newline(replacement.to_s)
    -  actor = Ast::Crispr::Replace.call(
    -    content: content.to_s,
    -    target: Ast::Crispr::Markdown::Markly::Selectors.html_comment_block(
    -      start_text: open_marker.delete_prefix("<!-- ").delete_suffix(" -->"),
    -      end_text: close_marker.delete_prefix("<!-- ").delete_suffix(" -->"),
    -      span: :outermost,
    -      include_trailing_gap: true,
    -      limit: {none_or_one: true}
    -    ),
    -    replacement: prepared_replacement,
    -    source_label: "managed markdown block"
    -  )
    -  return actor.updated_content if actor.match_count.positive?
    +      
    # File 'lib/kettle/jem.rb', line 6176
     
    -  yield
    +def ruby_method_move_policy(recipe)
    +  recipe.dig(:template_preference, :method_move_policy) ||
    +    (Ruby::Merge.const_defined?(:DEFAULT_METHOD_MOVE_POLICY) ? Ruby::Merge::DEFAULT_METHOD_MOVE_POLICY : DEFAULT_RUBY_METHOD_MOVE_POLICY)
     end
    -
    # File 'lib/kettle/jem.rb', line 4619
    +      
    # File 'lib/kettle/jem.rb', line 6672
     
    -def replace_markdown_with_ast_crispr(content, target, replacement)
    -  Ast::Crispr::Replace.call(
    -    content: content.to_s,
    -    target: target,
    -    replacement: replacement,
    -    source_label: "README.md"
    -  ).updated_content
    +def ruby_multiline_word_array_source(names, indent:)
    +  prefix = " " * indent.to_i
    +  element_prefix = "#{prefix}  "
    +  (["#{prefix}%w["] + names.map { |name| "#{element_prefix}#{name}" } + ["#{prefix}]"]).join("\n")
     end
    -
    # File 'lib/kettle/jem.rb', line 6343
    +      
    # File 'lib/kettle/jem.rb', line 6497
     
    -def replace_matching_gemspec_dependency_lines(content, destination_dependencies, receiver:)
    -   = gemspec_dependency_records(content, receiver: receiver).each_with_object({}) do |record, index|
    -    replacement = destination_dependencies[gemspec_dependency_record_key(record)]
    -    index[record.fetch(:start_line)] = record.merge(replacement: replacement) if replacement
    +def ruby_node_source_end_line(node)
    +  return 0 unless node
    +
    +  lines = [node.location&.end_line]
    +  lines << node.closing_loc&.start_line if node.respond_to?(:closing_loc)
    +  node.compact_child_nodes.each do |child|
    +    lines << ruby_node_source_end_line(child)
       end
    -  replace_record_ranges(content, )
    +  lines.compact.max.to_i
     end
    +
    +
    + + + +
    +
    +
    + +

    Returns:

    +
      + +
    • + + + (Boolean) + + + +
    • + +
    + +
    @@ -45491,33 +60696,58 @@

    -

    +

    - .replace_ruby_managed_block(content, replacement) ⇒ Object + .ruby_project_version_embedded_statements?(node, namespace:) ⇒ Boolean -

     
     
    -6547
    -6548
    -6549
    -6550
    -6551
    -6552
    -6553
    -6554
    -6555
    -6556
    -6557
    -6558
    -6559
    -6560
    -6561
    -6562
    -6563
    +8187 +8188 +8189 +8190 +8191 +8192 +8193 +8194
    -
    # File 'lib/kettle/jem.rb', line 6547
    +      
    # File 'lib/kettle/jem.rb', line 8187
     
    -def replace_record_ranges(content, )
    -  return content if .empty?
    -
    -  skip_until = 0
    -  content.to_s.lines.each_with_index.flat_map do |line, index|
    -    line_number = index + 1
    -    next [] if line_number < skip_until
    +def ruby_project_version_constant_path?(node, namespace:)
    +  return false unless node.is_a?(::Prism::ConstantPathNode)
     
    -    record = [line_number]
    -    if record
    -      skip_until = record.fetch(:end_line) + 1
    -      record.fetch(:replacement)
    -    else
    -      line
    -    end
    -  end.join
    +  segments = ruby_constant_path_segments(node)
    +  namespace_segments = namespace.to_s.split("::").reject(&:empty?)
    +  segments == namespace_segments + ["VERSION"] ||
    +    segments == namespace_segments + ["Version", "VERSION"]
     end
    +
    +
    + + + +
    +
    +
    + +

    Returns:

    +
      + +
    • + + + (Boolean) + + + +
    • + +
    + +
    @@ -45525,9 +60755,9 @@

    -

    +

    - .replace_ruby_managed_block_with_crispr(content, open_marker, close_marker, replacement) ⇒ Object + .ruby_project_version_interpolated_string_source(node, receiver:, namespace:) ⇒ Object @@ -45539,45 +60769,43 @@

     
     
    -11649
    -11650
    -11651
    -11652
    -11653
    -11654
    -11655
    -11656
    -11657
    -11658
    -11659
    -11660
    -11661
    -11662
    -11663
    -11664
    -11665
    -11666
    +8162 +8163 +8164 +8165 +8166 +8167 +8168 +8169 +8170 +8171 +8172 +8173 +8174 +8175 +8176 +8177 +8178

    @@ -45585,9 +60813,9 @@

    -

    +

    - .replace_source_offsets(content, replacements) ⇒ Object + .ruby_require_aliases(recipe, facts = nil) ⇒ Object @@ -45599,23 +60827,33 @@

     
     
    -5492
    -5493
    -5494
    -5495
    -5496
    -5497
    -5498
    +6243 +6244 +6245 +6246 +6247 +6248 +6249 +6250 +6251 +6252 +6253 +6254

    @@ -45623,29 +60861,56 @@

    -

    +

    - .replace_source_range_lines(content, start_line, end_line, replacement) ⇒ Object + .ruby_require_call?(owner, method_name, argument) ⇒ Boolean -

     
     
    -11606
    -11607
    -11608
    -11609
    -11610
    +8180 +8181 +8182 +8183 +8184 +8185
    -
    # File 'lib/kettle/jem.rb', line 11606
    +      
    # File 'lib/kettle/jem.rb', line 8180
     
    -def replace_ruby_managed_block(content, replacement)
    -  replace_ruby_managed_block_with_crispr(content, MANAGED_BLOCK_OPEN, MANAGED_BLOCK_CLOSE, replacement) do
    -    ensure_trailing_newline([content.rstrip, replacement.to_s.rstrip].reject(&:empty?).join("\n"))
    -  end
    +def ruby_project_version_embedded_statements?(node, namespace:)
    +  body = node.statements&.body.to_a
    +  return false unless body.length == 1
    +
    +  ruby_project_version_constant_path?(body.first, namespace: namespace)
     end
    -
    # File 'lib/kettle/jem.rb', line 11649
    +      
    # File 'lib/kettle/jem.rb', line 8162
     
    -def replace_ruby_managed_block_with_crispr(content, open_marker, close_marker, replacement)
    -  prepared_replacement = ensure_trailing_newline(replacement.to_s)
    -  actor = Ast::Crispr::Replace.call(
    -    content: content.to_s,
    -    target: Ast::Crispr::Ruby::Prism::Selectors.comment_line_block(
    -      start_text: open_marker,
    -      end_text: close_marker,
    -      span: :outermost,
    -      include_trailing_gap: true,
    -      limit: {none_or_one: true}
    -    ),
    -    replacement: prepared_replacement,
    -    source_label: "managed Ruby block"
    -  )
    -  return actor.updated_content if actor.match_count.positive?
    +def ruby_project_version_interpolated_string_source(node, receiver:, namespace:)
    +  return unless node.is_a?(::Prism::InterpolatedStringNode)
    +
    +  parts = node.parts.map do |part|
    +    case part
    +    when ::Prism::StringNode
    +      ruby_double_quoted_string_body(part.unescaped.to_s)
    +    when ::Prism::EmbeddedStatementsNode
    +      next unless ruby_project_version_embedded_statements?(part, namespace: namespace)
    +
    +      "\#{#{receiver}.version}"
    +    end
    +  end
    +  return if parts.any?(&:nil?)
     
    -  yield
    +  %("#{parts.join}")
     end
    -
    # File 'lib/kettle/jem.rb', line 5492
    +      
    # File 'lib/kettle/jem.rb', line 6243
     
    -def replace_source_offsets(content, replacements)
    -  output = content.to_s.dup
    -  replacements.sort_by { |replacement| -replacement.fetch(:start_offset) }.each do |replacement|
    -    output[replacement.fetch(:start_offset)...replacement.fetch(:end_offset)] = replacement.fetch(:replacement)
    -  end
    -  output
    +def ruby_require_aliases(recipe, facts = nil)
    +  facts ||= recipe[:facts] || recipe["facts"]
    +  return [] unless facts.is_a?(Hash)
    +
    +  package = facts[:package] || facts["package"] || {}
    +  rubygems = facts[:rubygems] || facts["rubygems"] || {}
    +  package_name = (package[:name] || package["name"]).to_s.strip
    +  entrypoint = (rubygems[:entrypoint_require] || rubygems["entrypoint_require"]).to_s.strip
    +  return [] if package_name.empty? || entrypoint.empty? || package_name == entrypoint
    +
    +  [[package_name, entrypoint]]
     end
    +
    +
    + + + +
    +
    +
    + +

    Returns:

    +
      + +
    • + + + (Boolean) + + + +
    • + +
    + +
    @@ -45653,33 +60918,54 @@

    -

    +

    - .replace_text_managed_block(content, replacement) ⇒ Object + .ruby_simple_quoted_string_node?(node) ⇒ Boolean -

     
     
    -6565
    -6566
    -6567
    +11346 +11347 +11348 +11349 +11350
    -
    # File 'lib/kettle/jem.rb', line 6565
    +      
    # File 'lib/kettle/jem.rb', line 11346
     
    -def replace_source_range_lines(content, start_line, end_line, replacement)
    -  replace_record_ranges(content, {start_line => {end_line: end_line, replacement: replacement}})
    +def ruby_require_call?(owner, method_name, argument)
    +  owner.is_a?(::Prism::CallNode) &&
    +    owner.name.to_s == method_name.to_s &&
    +    ruby_first_string_argument(owner).to_s == argument.to_s
     end
    +
    +
    + + + +
    +
    +
    + +

    Returns:

    +
      + +
    • + + + (Boolean) + + + +
    • + +
    + +
    @@ -45687,9 +60973,9 @@

    -

    +

    - .replace_text_managed_block_with_crispr(content, open_marker, close_marker, replacement) ⇒ Object + .ruby_static_interpolated_string_value(node) ⇒ Object @@ -45701,43 +60987,21 @@

     
     
    -11631
    -11632
    -11633
    -11634
    -11635
    -11636
    -11637
    -11638
    -11639
    -11640
    -11641
    -11642
    -11643
    -11644
    -11645
    -11646
    -11647
    +6579 +6580 +6581 +6582 +6583 +6584

    @@ -45745,9 +61009,9 @@

    -

    +

    - .replace_toml_string_scalar_line(content, key, value) ⇒ Object + .ruby_static_string_array_value(node, local_word_arrays = {}) ⇒ Object @@ -45759,31 +61023,33 @@

     
     
    -4329
    -4330
    -4331
    -4332
    -4333
    -4334
    -4335
    -4336
    -4337
    -4338
    -4339
    +4625 +4626 +4627 +4628 +4629 +4630 +4631 +4632 +4633 +4634 +4635 +4636

    @@ -45791,9 +61057,9 @@

    -

    +

    - .replace_yaml_node_lines(content, key, replacement) ⇒ Object + .ruby_static_string_call_value(node) ⇒ Object @@ -45805,35 +61071,51 @@

     
     
    -6876
    -6877
    -6878
    -6879
    -6880
    -6881
    -6882
    -6883
    -6884
    -6885
    -6886
    -6887
    -6888
    +6586 +6587 +6588 +6589 +6590 +6591 +6592 +6593 +6594 +6595 +6596 +6597 +6598 +6599 +6600 +6601 +6602 +6603 +6604 +6605 +6606

    @@ -45841,9 +61123,9 @@

    -

    +

    - .replace_yaml_scalar_line(content, key, value) ⇒ Object + .ruby_static_string_value(node) ⇒ Object @@ -45855,39 +61137,29 @@

     
     
    -6675
    -6676
    -6677
    -6678
    -6679
    -6680
    -6681
    -6682
    -6683
    -6684
    -6685
    -6686
    -6687
    -6688
    -6689
    +6568 +6569 +6570 +6571 +6572 +6573 +6574 +6575 +6576 +6577

    @@ -45895,9 +61167,9 @@

    -

    +

    - .replace_yaml_scalar_path(content, path, value) ⇒ Object + .ruby_string_argument(call) ⇒ Object @@ -45909,41 +61181,15 @@

     
     
    -6801
    -6802
    -6803
    -6804
    -6805
    -6806
    -6807
    -6808
    -6809
    -6810
    -6811
    -6812
    -6813
    -6814
    -6815
    -6816
    +6544 +6545 +6546

    @@ -45951,9 +61197,9 @@

    -

    +

    - .repository_facts(project_root, source_url, package_name:, repository_topology:) ⇒ Object + .ruby_string_argument_at(call, index) ⇒ Object @@ -45965,77 +61211,17 @@

     
     
    -8964
    -8965
    -8966
    -8967
    -8968
    -8969
    -8970
    -8971
    -8972
    -8973
    -8974
    -8975
    -8976
    -8977
    -8978
    -8979
    -8980
    -8981
    -8982
    -8983
    -8984
    -8985
    -8986
    -8987
    -8988
    -8989
    -8990
    -8991
    -8992
    -8993
    -8994
    -8995
    -8996
    -8997
    +6548 +6549 +6550 +6551

    @@ -46043,60 +61229,101 @@

    -

    +

    - .repository_monorepo_subproject?(repository) ⇒ Boolean + .ruby_string_arguments(call) ⇒ Object -

    -
    - +

     
     
    -11600
    -11601
    -11602
    -11603
    -11604
    +8443 +8444 +8445 +8446
    -
    # File 'lib/kettle/jem.rb', line 11600
    +      
    # File 'lib/kettle/jem.rb', line 8443
     
    -def replace_text_managed_block(content, replacement)
    -  replace_text_managed_block_with_crispr(content, MANAGED_BLOCK_OPEN, MANAGED_BLOCK_CLOSE, replacement) do
    -    ensure_trailing_newline([content.rstrip, replacement.to_s.rstrip].reject(&:empty?).join("\n"))
    -  end
    +def ruby_simple_quoted_string_node?(node)
    +  opening = node.opening_loc&.slice
    +  opening == '"' || opening == "'"
     end
    -
    # File 'lib/kettle/jem.rb', line 11631
    +      
    # File 'lib/kettle/jem.rb', line 6579
     
    -def replace_text_managed_block_with_crispr(content, open_marker, close_marker, replacement)
    -  prepared_replacement = ensure_trailing_newline(replacement.to_s)
    -  actor = Ast::Crispr::Replace.call(
    -    content: content.to_s,
    -    target: Ast::Crispr::Selectors.line_block(
    -      start_line_text: open_marker,
    -      end_line_text: close_marker,
    -      include_trailing_gap: true,
    -      limit: {none_or_one: true}
    -    ),
    -    replacement: prepared_replacement,
    -    source_label: "managed text block"
    -  )
    -  return actor.updated_content if actor.match_count.positive?
    +def ruby_static_interpolated_string_value(node)
    +  parts = node.compact_child_nodes.map { |child| ruby_static_string_value(child) }
    +  return if parts.any?(&:nil?)
     
    -  yield
    +  parts.join
     end
    -
    # File 'lib/kettle/jem.rb', line 4329
    +      
    # File 'lib/kettle/jem.rb', line 4625
     
    -def replace_toml_string_scalar_line(content, key, value)
    -  lines = content.to_s.lines
    -  lines.each_with_index do |line, index|
    -    next unless line.strip.start_with?("#{key} ")
    +def ruby_static_string_array_value(node, local_word_arrays = {})
    +  case node
    +  when ::Prism::ArrayNode
    +    return ruby_word_array_names(node) if ruby_word_array_node?(node)
     
    -    indent = line[/\A\s*/]
    -    lines[index] = "#{indent}#{key} = #{JSON.generate(value.to_s)}\n"
    -    return lines.join
    -  end
    -  content
    +    node.elements.map { |element| ruby_static_string_value(element) }
    +  when ::Prism::LocalVariableReadNode
    +    local_word_arrays.fetch(node.name.to_s, [])
    +  else
    +    []
    +  end.compact
     end
    -
    # File 'lib/kettle/jem.rb', line 6876
    +      
    # File 'lib/kettle/jem.rb', line 6586
     
    -def replace_yaml_node_lines(content, key, replacement)
    -  lines = content.to_s.lines
    -  yaml_mapping_nodes(content).each do |mapping|
    -    mapping.children.each_slice(2) do |key_node, value_node|
    -      next unless key_node.is_a?(Psych::Nodes::Scalar) && key_node.value.to_s == key.to_s
    +def ruby_static_string_call_value(node)
    +  return unless node.receiver && node.arguments.nil?
     
    -      start_line = key_node.start_line
    -      end_line = value_node.end_line
    -      return [*lines[0...start_line], replacement, *lines[end_line..].to_a].join
    -    end
    +  value = ruby_static_string_value(node.receiver)
    +  return if value.nil?
    +
    +  case node.name
    +  when :to_s
    +    value.to_s
    +  when :strip
    +    value.strip
    +  when :lstrip
    +    value.lstrip
    +  when :rstrip
    +    value.rstrip
    +  when :chomp
    +    value.chomp
    +  when :chop
    +    value.chop
       end
    -  content
     end
    -
    # File 'lib/kettle/jem.rb', line 6675
    -
    -def replace_yaml_scalar_line(content, key, value)
    -  lines = content.to_s.lines
    -  yaml_scalar_pairs(content).each do |key_node, value_node|
    -    next unless key_node.value.to_s == key.to_s
    +      
    # File 'lib/kettle/jem.rb', line 6568
     
    -    line_index = key_node.start_line
    -    line = lines[line_index].to_s
    -    key_index = line.index("#{key}:")
    -    next unless key_index
    -
    -    lines[line_index] = "#{line[0...key_index]}#{key}: #{value}\n"
    -    return lines.join
    +def ruby_static_string_value(node)
    +  case node
    +  when ::Prism::StringNode
    +    node.unescaped
    +  when ::Prism::InterpolatedStringNode
    +    ruby_static_interpolated_string_value(node)
    +  when ::Prism::CallNode
    +    ruby_static_string_call_value(node)
       end
    -  content
     end
    -
    # File 'lib/kettle/jem.rb', line 6801
    -
    -def replace_yaml_scalar_path(content, path, value)
    -  lines = content.to_s.lines
    -  yaml_scalar_path_entries(content).each do |entry|
    -    next unless entry.fetch(:path) == path
    -
    -    line_index = entry.fetch(:line)
    -    line = lines[line_index].to_s
    -    key = path.last.to_s
    -    key_index = line.index("#{key}:")
    -    next unless key_index
    +      
    # File 'lib/kettle/jem.rb', line 6544
     
    -    lines[line_index] = "#{line[0...key_index]}#{key}: #{value}#{yaml_line_comment_suffix(line, key_index)}\n"
    -    return lines.join
    -  end
    -  content
    +def ruby_string_argument(call)
    +  ruby_string_argument_at(call, 0)
     end
    -
    # File 'lib/kettle/jem.rb', line 8964
    -
    -def repository_facts(project_root, source_url, package_name:, repository_topology:)
    -  topology = normalize_repository_topology(repository_topology)
    -  monorepo_subproject = topology == REPOSITORY_TOPOLOGY_MONOREPO_SUBPROJECT
    -  local_root = monorepo_subproject ? git_worktree_root(project_root) : nil
    -  repo_url = if monorepo_subproject
    -    repository_root_url(git_remote_source_url(local_root || project_root) || source_url)
    -  else
    -    repository_root_url(source_url)
    -  end
    -  repo_name = repository_name_from_source_url(repo_url)
    -  org = github_org_from_url(repo_url).to_s
    -  slug = [org, repo_name].reject(&:empty?).join("/")
    -  facts = compact_hash(
    -    mode: monorepo_subproject ? "monorepo_subproject" : "standalone",
    -    topology: topology,
    -    url: repo_url,
    -    name: repo_name,
    -    slug: slug
    -  )
    -  return facts unless monorepo_subproject
    -
    -  package_path = git_worktree_prefix(project_root)
    -  package_path = package_path[0...-1] while package_path.end_with?("/")
    -  return facts.merge(local_root: local_root) if package_path.empty?
    +      
    # File 'lib/kettle/jem.rb', line 6548
     
    -  facts.merge(
    -    local_root: local_root,
    -    package_path: package_path,
    -    package_source_url: source_tree_url(repo_url, package_path),
    -    gitlab_package_source_url: source_tree_url("https://gitlab.com/#{slug}", package_path),
    -    codeberg_package_source_url: source_tree_url("https://codeberg.org/#{slug}", package_path),
    -    checksums_url: source_tree_url("https://gitlab.com/#{slug}", "checksums")
    -  )
    +def ruby_string_argument_at(call, index)
    +  argument = call&.arguments&.arguments&.[](index)
    +  ruby_static_string_value(argument)
     end
    + + + + +
    +
     
     
    -  
    +6553
    +6554
    +6555
    +6556
    +6557
    +
    +
    # File 'lib/kettle/jem.rb', line 6553
    +
    +def ruby_string_arguments(call)
    +  Array(call&.arguments&.arguments).filter_map do |argument|
    +    ruby_static_string_value(argument)
    +  end
    +end
    +
    -
    + +
    +

    -

    Returns:

    -
      + .ruby_style_facts(project_root) ⇒ Object -
    • - - - (Boolean) - - - -
    • + -
    -

    + +
    @@ -46104,9 +61331,9 @@

    -

    +

    - .repository_name_from_source_url(source_url) ⇒ Object + .ruby_style_template_tokens(ruby_style) ⇒ Object @@ -46118,21 +61345,59 @@

     
     
    -8957
    -8958
    -8959
    -8960
    -8961
    -8962
    +12038 +12039 +12040 +12041 +12042 +12043 +12044 +12045 +12046 +12047 +12048 +12049 +12050 +12051 +12052 +12053 +12054 +12055 +12056 +12057 +12058 +12059 +12060 +12061 +12062

    @@ -46140,9 +61405,9 @@

    -

    +

    - .repository_project_logo_href(repository, slug:, org:, gem_name:) ⇒ Object + .ruby_template_policy_report(recipe:, request:, original:, final:) ⇒ Object @@ -46154,21 +61419,53 @@

     
     
    -9398
    -9399
    -9400
    -9401
    -9402
    -9403
    +4479 +4480 +4481 +4482 +4483 +4484 +4485 +4486 +4487 +4488 +4489 +4490 +4491 +4492 +4493 +4494 +4495 +4496 +4497 +4498 +4499 +4500

    @@ -46176,35 +61473,60 @@

    -

    +

    - .repository_project_logo_slug(repository, org:, gem_name:) ⇒ Object + .ruby_top_level_require?(content, method_name, argument) ⇒ Boolean -

     
     
    -9871
    -9872
    -9873
    -9874
    -9875
    -9876
    -9877
    +2678 +2679 +2680 +2681 +2682 +2683 +2684 +2685 +2686 +2687 +2688 +2689 +2690 +2691 +2692 +2693 +2694 +2695 +2696 +2697 +2698 +2699
    -
    # File 'lib/kettle/jem.rb', line 9871
    +      
    # File 'lib/kettle/jem.rb', line 2678
     
    -def repository_monorepo_subproject?(repository)
    -  return false unless repository.is_a?(Hash)
    +def ruby_style_facts(project_root)
    +  config_path = File.join(project_root.to_s, ".rubocop.yml")
    +  config = if File.file?(config_path)
    +    YAML.safe_load_file(config_path, permitted_classes: [], aliases: true) || {}
    +  else
    +    {}
    +  end
    +  config = {} unless config.is_a?(Hash)
    +  dot_position = config.dig("Layout/DotPosition", "EnforcedStyle").to_s
    +  dot_position = if dot_position == "trailing"
    +    "trailing"
    +  else
    +    "leading"
    +  end
     
    -  repository[:topology].to_s == REPOSITORY_TOPOLOGY_MONOREPO_SUBPROJECT ||
    -    repository[:mode].to_s == "monorepo_subproject" ||
    -    repository[:mode].to_s == "monorepo_subgem"
    +  {
    +    dot_position: dot_position,
    +    trailing_array_comma: config.dig("Style/TrailingCommaInArrayLiteral", "EnforcedStyleForMultiline").to_s == "comma"
    +  }
    +rescue Psych::Exception
    +  {dot_position: "leading", trailing_array_comma: false}
     end
    -
    # File 'lib/kettle/jem.rb', line 8957
    +      
    # File 'lib/kettle/jem.rb', line 12038
     
    -def repository_name_from_source_url(source_url)
    -  base = source_url.to_s.split("?", 2).first.to_s.split("#", 2).first.to_s
    -  base = base[0...-1] while base.end_with?("/")
    -  name = base.split("/").last.to_s
    -  name.end_with?(".git") ? name[0...-4] : name
    +def ruby_style_template_tokens(ruby_style)
    +  style = ruby_style.is_a?(Hash) ? ruby_style : {}
    +  trailing_dot = style.fetch(:dot_position, style["dot_position"]).to_s == "trailing"
    +  trailing_array_comma = style.fetch(:trailing_array_comma, style["trailing_array_comma"]) == true
    +  family_gem_dirs_enumeration = if trailing_dot
    +    <<~RUBY.chomp
    +      Dir.glob(File.join(__dir__, "gems", "*", "*.gemspec")).
    +        map { |path| File.dirname(path) }.
    +        uniq.
    +        sort_by { |path| File.basename(path) }
    +    RUBY
    +  else
    +    <<~RUBY.chomp
    +      Dir.glob(File.join(__dir__, "gems", "*", "*.gemspec"))
    +        .map { |path| File.dirname(path) }
    +        .uniq
    +        .sort_by { |path| File.basename(path) }
    +    RUBY
    +  end
    +
    +  {
    +    "KJ|RAKE:FAMILY_GEM_DIRS_ENUMERATION" => family_gem_dirs_enumeration.lines.map { |line| "    #{line}" }.join.chomp,
    +    "KJ|RUBY_STYLE:TRAILING_ARRAY_COMMA" => trailing_array_comma ? "," : ""
    +  }
     end
    -
    # File 'lib/kettle/jem.rb', line 9398
    +      
    # File 'lib/kettle/jem.rb', line 4479
     
    -def repository_project_logo_href(repository, slug:, org:, gem_name:)
    -  package_source_url = repository.is_a?(Hash) ? repository[:package_source_url].to_s : ""
    -  return package_source_url unless package_source_url.empty?
    +def ruby_template_policy_report(recipe:, request:, original:, final:)
    +  return {} unless recipe.fetch(:primitive) == "supplied_template_source_application"
     
    -  (org.to_s.empty? || gem_name.to_s.empty?) ? "#{LOGOS_GALTZO_BASE_URL}/#{slug}/" : "https://github.com/#{org}/#{gem_name}"
    +  file_type = template_file_type(recipe)
    +  return {} unless %i[gemfile gemspec appraisals].include?(file_type)
    +
    +  template_content = request.fetch(:template_content, "")
    +  report = {
    +    policy_kind: "kettle_jem_ruby_template_policy",
    +    file_type: file_type.to_s
    +  }
    +  operations = case file_type
    +  when :gemfile
    +    gemfile_policy_operations(template_content, original, final, request)
    +  when :gemspec
    +    gemspec_policy_operations(template_content, original, final, request)
    +  when :appraisals
    +    appraisals_policy_operations(template_content, original, final, request)
    +  end
    +  report[:operations] = operations
    +  {ruby_template_policy: report}
     end
    +
    +
    + + + +
    +
    +
    + +

    Returns:

    +
      + +
    • + + + (Boolean) + + + +
    • + +
    + +
    @@ -46212,9 +61534,9 @@

    -

    +

    - .repository_resource_urls(repository) ⇒ Object + .ruby_top_level_require_records(content) ⇒ Object @@ -46226,133 +61548,39 @@

     
     
    -8999
    -9000
    -9001
    -9002
    -9003
    -9004
    -9005
    -9006
    -9007
    -9008
    -9009
    -9010
    -9011
    -9012
    -9013
    -9014
    -9015
    -9016
    -9017
    -9018
    -9019
    -9020
    -9021
    -9022
    -9023
    -9024
    -9025
    -9026
    -9027
    -9028
    -9029
    -9030
    -9031
    -9032
    -9033
    -9034
    -9035
    -9036
    -9037
    -9038
    -9039
    -9040
    -9041
    -9042
    -9043
    -9044
    -9045
    -9046
    -9047
    -9048
    -9049
    -9050
    -9051
    -9052
    -9053
    -9054
    -9055
    -9056
    -9057
    -9058
    -9059
    -9060
    +6472 +6473 +6474 +6475 +6476 +6477 +6478 +6479 +6480 +6481 +6482 +6483 +6484 +6485 +6486

    @@ -46360,9 +61588,9 @@

    -

    +

    - .repository_root_url(source_url) ⇒ Object + .ruby_version_class_eval_namespaces(content) ⇒ Object @@ -46374,31 +61602,27 @@

     
     
    -9062
    -9063
    -9064
    -9065
    -9066
    -9067
    -9068
    -9069
    -9070
    -9071
    -9072
    +11460 +11461 +11462 +11463 +11464 +11465 +11466 +11467 +11468

    @@ -46406,9 +61630,9 @@

    -

    +

    - .repository_topology_for(config, env, template_selection) ⇒ Object + .ruby_version_constant_value(content) ⇒ Object @@ -46420,25 +61644,31 @@

     
     
    -7201
    -7202
    -7203
    -7204
    -7205
    -7206
    -7207
    -7208
    +11415 +11416 +11417 +11418 +11419 +11420 +11421 +11422 +11423 +11424 +11425

    @@ -46446,68 +61676,39 @@

    -

    - - .resolve_template_tokens(content, tokens, scan_unresolved: true) ⇒ Object +

    - + .ruby_version_module_namespace(content) ⇒ Object -

    -
    - - -
    -
    -
    - -

    Raises:

    -
      - -
    • - - - (ArgumentError) - - - -
    • -
    - -

     
     
    -9391
    -9392
    -9393
    -9394
    -9395
    -9396
    +11338 +11339 +11340 +11341 +11342 +11343 +11344
    -
    # File 'lib/kettle/jem.rb', line 9391
    +      
    # File 'lib/kettle/jem.rb', line 11338
     
    -def repository_project_logo_slug(repository, org:, gem_name:)
    -  package_path = repository.is_a?(Hash) ? repository[:package_path].to_s : ""
    -  return [org, repository[:name].to_s, File.basename(package_path)].reject(&:empty?).join("/") if repository.is_a?(Hash) && !package_path.empty?
    -
    -  [org.to_s, gem_name.to_s].reject(&:empty?).join("/")
    +def ruby_top_level_require?(content, method_name, argument)
    +  ensure_runtime_dependencies!
    +  context = Ast::Crispr::Ruby::Prism.document_context(content: content.to_s, source_label: "entrypoint.rb")
    +  context.structural_owners(owner_scope: :top_level_statements).any? do |owner|
    +    ruby_require_call?(owner, method_name, argument)
    +  end
     end
    -
    # File 'lib/kettle/jem.rb', line 8999
    +      
    # File 'lib/kettle/jem.rb', line 6472
     
    -def repository_resource_urls(repository)
    -  repo_url = repository[:url].to_s
    -  repo_slug = repository[:slug].to_s
    -  github_org = repo_slug.split("/", 2).first.to_s
    -  repo_name = repository[:name].to_s
    -  gitlab_url = repository[:gitlab_url].to_s
    -  gitlab_url = "https://gitlab.com/#{repo_slug}" if gitlab_url.empty?
    -  codeberg_url = repository[:codeberg_url].to_s
    -  codeberg_url = "https://codeberg.org/#{repo_slug}" if codeberg_url.empty?
    -  package_source_url = repository[:package_source_url].to_s
    -  package_source_url = repo_url if package_source_url.empty?
    -  gitlab_package_source_url = repository[:gitlab_package_source_url].to_s
    -  gitlab_package_source_url = gitlab_url if gitlab_package_source_url.empty?
    -  codeberg_package_source_url = repository[:codeberg_package_source_url].to_s
    -  codeberg_package_source_url = codeberg_url if codeberg_package_source_url.empty?
    -  checksums_url = repository[:checksums_url].to_s
    -  checksums_url = source_tree_url(gitlab_url, "checksums") if checksums_url.empty?
    +def ruby_top_level_require_records(content)
    +  body = prism_parse_success(content)&.value&.statements&.body || []
    +  body.filter_map do |node|
    +    next unless node.is_a?(::Prism::CallNode) && node.name == :require
     
    -  {
    -    github_repository_url: repo_url,
    -    github_package_source_url: package_source_url,
    -    github_releases_url: "#{repo_url}/releases",
    -    github_actions_url: "#{repo_url}/actions",
    -    github_discussions_url: "#{repo_url}/discussions",
    -    github_issues_url: "#{repo_url}/issues",
    -    github_pulls_url: "#{repo_url}/pulls",
    -    github_wiki_url: "#{repo_url}/wiki",
    -    github_codeql_url: "#{repo_url}/security/code-scanning",
    -    github_contributors_url: "#{repo_url}/graphs/contributors",
    -    github_contributing_url: source_blob_url(repo_url, "CONTRIBUTING.md"),
    -    github_changelog_url: source_blob_url(repo_url, "CHANGELOG.md"),
    -    github_security_url: source_blob_url(repo_url, "SECURITY.md"),
    -    github_code_of_conduct_url: source_blob_url(repo_url, "CODE_OF_CONDUCT.md"),
    -    github_rubocop_url: source_blob_url(repo_url, "RUBOCOP.md"),
    -    github_irp_url: source_blob_url(repo_url, "IRP.md"),
    -    gitlab_repository_url: gitlab_url,
    -    gitlab_package_source_url: gitlab_package_source_url,
    -    gitlab_issues_url: "#{gitlab_url}/-/issues",
    -    gitlab_pulls_url: "#{gitlab_url}/-/merge_requests",
    -    gitlab_wiki_url: "#{gitlab_url}/-/wikis/home",
    -    gitlab_contributors_url: "#{gitlab_url}/-/graphs/main",
    -    gitlab_contributing_url: source_blob_url(gitlab_url, "CONTRIBUTING.md"),
    -    gitlab_changelog_url: source_blob_url(gitlab_url, "CHANGELOG.md"),
    -    gitlab_code_of_conduct_url: source_blob_url(gitlab_url, "CODE_OF_CONDUCT.md"),
    -    gitlab_compare_url: "#{gitlab_url}/-/compare",
    -    gitlab_tags_url: "#{gitlab_url}/-/tags",
    -    codeberg_repository_url: codeberg_url,
    -    codeberg_package_source_url: codeberg_package_source_url,
    -    codeberg_issues_url: "#{codeberg_url}/issues",
    -    codeberg_pulls_url: "#{codeberg_url}/pulls",
    -    codecov_url: "https://codecov.io/gh/#{repo_slug}",
    -    codecov_badge_url: "https://codecov.io/gh/#{repo_slug}/graph/badge.svg",
    -    codecov_graph_url: "https://codecov.io/gh/#{repo_slug}/graph/badge.svg",
    -    coveralls_url: "https://coveralls.io/github/#{repo_slug}?branch=main",
    -    coveralls_badge_url: "https://coveralls.io/repos/github/#{repo_slug}/badge.svg?branch=main",
    -    qlty_project_url: "https://qlty.sh/gh/#{github_org}/projects/#{repo_name}",
    -    qlty_maintainability_url: "https://qlty.sh/gh/#{github_org}/projects/#{repo_name}/maintainability.svg",
    -    qlty_coverage_url: "https://qlty.sh/gh/#{github_org}/projects/#{repo_name}/metrics/code?sort=coverageRating",
    -    qlty_coverage_badge_url: "https://qlty.sh/gh/#{github_org}/projects/#{repo_name}/coverage.svg",
    -    checksums_url: checksums_url
    -  }
    +    name = ruby_string_argument(node)
    +    next unless name
    +
    +    {
    +      name: name,
    +      start_line: node.location.start_line,
    +      end_line: ruby_node_source_end_line(node)
    +    }
    +  end
     end
    -
    # File 'lib/kettle/jem.rb', line 9062
    -
    -def repository_root_url(source_url)
    -  uri = URI.parse(source_url.to_s)
    -  return source_url.to_s unless uri.host == "github.com"
    +      
    # File 'lib/kettle/jem.rb', line 11460
     
    -  segments = uri.path.to_s.split("/").reject(&:empty?)
    -  return source_url.to_s if segments.length < 2
    +def ruby_version_class_eval_namespaces(content)
    +  ruby_call_records(content, :class_eval).filter_map do |call|
    +    receiver = call.receiver&.slice.to_s
    +    next unless receiver.end_with?("::Version")
    +    next unless call.block
     
    -  "#{uri.scheme}://#{uri.host}/#{segments[0]}/#{segments[1].delete_suffix(".git")}"
    -rescue URI::InvalidURIError
    -  source_url.to_s
    +    receiver.delete_suffix("::Version")
    +  end
     end
    -
    # File 'lib/kettle/jem.rb', line 7201
    +      
    # File 'lib/kettle/jem.rb', line 11415
     
    -def repository_topology_for(config, env, template_selection)
    -  repository_config = config["repository"].is_a?(Hash) ? config["repository"] : {}
    -  topology = preferred_template_token_value(nil, repository_config["topology"], env, "KJ_REPOSITORY_TOPOLOGY")
    -  normalized = normalize_repository_topology(topology)
    -  return normalized unless normalized.empty?
    +def ruby_version_constant_value(content)
    +  result = prism_parse_success(content)
    +  return unless result
     
    -  monorepo_subgem_template_profile_value?(template_selection[:template_profile]) ? REPOSITORY_TOPOLOGY_MONOREPO_SUBPROJECT : REPOSITORY_TOPOLOGY_STANDALONE
    +  node = result.value.breadth_first_search_all do |candidate|
    +    candidate.is_a?(::Prism::ConstantWriteNode) &&
    +      candidate.name == :VERSION &&
    +      candidate.value.is_a?(::Prism::StringNode)
    +  end.first
    +  node&.value&.unescaped
     end
    +
    @@ -46515,9 +61716,9 @@

    -

    +

    - .resolve_uncommitted_author!(project_root, author_map) ⇒ Object + .ruby_version_module_namespace_for(node, namespace) ⇒ Object @@ -46529,34 +61730,36 @@

     
     
    -8330
    -8331
    -8332
    -8333
    -8334
    -8335
    -8336
    -8337
    -8338
    -8339
    -8340
    -8341
    -8342
    +11436 +11437 +11438 +11439 +11440 +11441 +11442 +11443 +11444 +11445 +11446 +11447 +11448 +11449

    @@ -46565,9 +61768,9 @@

    -

    +

    - .resolved_licenses(config, gemspec_licenses) ⇒ Object + .ruby_word_array_names(node) ⇒ Object @@ -46579,25 +61782,19 @@

     
     
    -9529
    -9530
    -9531
    -9532
    -9533
    -9534
    -9535
    -9536
    +6666 +6667 +6668 +6669 +6670

    @@ -46605,9 +61802,9 @@

    -

    +

    - .retired_gemspec_development_dependency_key?(key) ⇒ Boolean + .ruby_word_array_node?(node) ⇒ Boolean @@ -46642,77 +61839,15 @@

    -6471 -6472 -6473 -6474 - -

    - -
     
     
    -9799
    -9800
    -9801
    -9802
    -9803
    -9804
    -9805
    -9806
    -9807
    -9808
    -9809
    +11427 +11428 +11429 +11430 +11431 +11432 +11433 +11434
    -
    # File 'lib/kettle/jem.rb', line 9799
    -
    -def resolve_template_tokens(content, tokens, scan_unresolved: true)
    -  resolver = Token::Resolver::Resolve.new(on_missing: :keep)
    -  document = Token::Resolver::Document.new(content.to_s, config: TEMPLATE_TOKEN_CONFIG)
    -  resolved = resolver.resolve(document, stringify_template_tokens(tokens))
    -  return resolved unless scan_unresolved
    +      
    # File 'lib/kettle/jem.rb', line 11427
     
    -  unresolved = Token::Resolver::Document.new(resolved, config: TEMPLATE_TOKEN_CONFIG).token_keys.grep(/\AKJ\|/).sort
    -  return resolved if unresolved.empty?
    -
    -  raise ArgumentError, "unresolved kettle-jem template tokens: #{unresolved.map { |token| "{#{token}}" }.join(", ")}"
    +def ruby_version_module_namespace(content)
    +  body = prism_parse_success(content)&.value&.statements&.body || []
    +  body.each do |node|
    +    namespace = ruby_version_module_namespace_for(node, [])
    +    return namespace if namespace
    +  end
    +  nil
     end
    -
    # File 'lib/kettle/jem.rb', line 8330
    +      
    # File 'lib/kettle/jem.rb', line 11436
     
    -def resolve_uncommitted_author!(project_root, author_map)
    -  uncommitted = author_map.delete(NOT_COMMITTED_EMAIL)
    -  return unless uncommitted && !uncommitted[:years].empty?
    +def ruby_version_module_namespace_for(node, namespace)
    +  return unless node.is_a?(::Prism::ModuleNode)
     
    -  name = git_capture(project_root, "config", "user.name").strip
    -  email = git_capture(project_root, "config", "user.email").strip
    -  return if email.empty?
    +  current = namespace + ruby_constant_path_segments(node.constant_path)
    +  if current.last == "Version" && current.length > 1
    +    return current[0...-1].join("::")
    +  end
     
    -  author_map[email][:name] ||= name
    -  author_map[email][:years].concat(uncommitted[:years])
    -rescue ArgumentError
    +  node.body&.body&.each do |child|
    +    child_namespace = ruby_version_module_namespace_for(child, current)
    +    return child_namespace if child_namespace
    +  end
       nil
     end
    -
    # File 'lib/kettle/jem.rb', line 9529
    -
    -def resolved_licenses(config, gemspec_licenses)
    -  config_licenses = config.is_a?(Hash) ? config["licenses"] : nil
    -  licenses = Array(config_licenses).map { |license| license.to_s.strip }.reject(&:empty?)
    -  return licenses unless licenses.empty?
    +      
    # File 'lib/kettle/jem.rb', line 6666
     
    -  licenses = Array(gemspec_licenses).map { |license| license.to_s.strip }.reject(&:empty?)
    -  licenses.empty? ? ["MIT"] : licenses
    +def ruby_word_array_names(node)
    +  node.elements.filter_map do |element|
    +    element.unescaped if element.is_a?(::Prism::StringNode)
    +  end
     end
    -
    # File 'lib/kettle/jem.rb', line 6471
    -
    -def retired_gemspec_development_dependency_key?(key)
    -  key.first == "add_development_dependency" &&
    -    RETIRED_GEMSPEC_DEVELOPMENT_DEPENDENCIES.include?(key.last)
    -end
    -
    -
    - -
    -

    - - .rewrite_gemspec_version_loader(content, facts:) ⇒ Object - - - - - -

    - - @@ -46720,9 +61855,9 @@

    -

    - .rewrite_markdown_reference_links(content, links) ⇒ Object + .ruby_word_array_nodes(content) ⇒ Object @@ -46734,34 +61869,24 @@

    @@ -46770,9 +61895,9 @@ @@ -46812,9 +61945,9 @@

    -

    +

    - .rubocop_template_tokens(min_ruby) ⇒ Object + .run_apply_phases(project_root, report) ⇒ Object @@ -46826,27 +61959,111 @@

     
     
    -9461
    -9462
    -9463
    -9464
    -9465
    -9466
    -9467
    -9468
    -9469
    +9810 +9811 +9812 +9813 +9814 +9815 +9816 +9817 +9818 +9819 +9820 +9821 +9822 +9823 +9824 +9825 +9826 +9827 +9828 +9829 +9830 +9831 +9832 +9833 +9834 +9835 +9836 +9837 +9838 +9839 +9840 +9841 +9842 +9843 +9844 +9845 +9846 +9847 +9848 +9849 +9850 +9851 +9852 +9853 +9854 +9855 +9856 +9857 +9858 +9859 +9860

    @@ -46854,9 +62071,9 @@

    -

    +

    - .rubocop_tokens_for(min_ruby) ⇒ Object + .runtime_context_value(request, *path) ⇒ Object @@ -46868,33 +62085,25 @@

     
     
    -9481
    -9482
    -9483
    -9484
    -9485
    -9486
    -9487
    -9488
    -9489
    -9490
    -9491
    -9492
    +4594 +4595 +4596 +4597 +4598 +4599 +4600 +4601

    @@ -46902,9 +62111,9 @@

    -

    +

    - .ruby_appraisal_name_version(name) ⇒ Object + .runtime_gemspec_dependency_insertion_index(lines, receiver:) ⇒ Object @@ -46916,29 +62125,31 @@

     
     
    -5921
    -5922
    -5923
    -5924
    -5925
    -5926
    -5927
    -5928
    -5929
    -5930
    +8313 +8314 +8315 +8316 +8317 +8318 +8319 +8320 +8321 +8322 +8323

    @@ -46946,9 +62157,9 @@

    -

    +

    - .ruby_appraisal_names_below(content, min_ruby) ⇒ Object + .runtime_workspace_override_records(content) ⇒ Object @@ -46960,31 +62171,47 @@

     
     
    -4137
    -4138
    -4139
    -4140
    -4141
    -4142
    -4143
    -4144
    -4145
    -4146
    -4147
    +5887 +5888 +5889 +5890 +5891 +5892 +5893 +5894 +5895 +5896 +5897 +5898 +5899 +5900 +5901 +5902 +5903 +5904 +5905

    @@ -46992,9 +62219,9 @@

    -

    +

    - .ruby_array_literal(values) ⇒ Object + .security_supported_version_token(version) ⇒ Object @@ -47006,15 +62233,29 @@

     
     
    -8255
    -8256
    -8257
    +10361 +10362 +10363 +10364 +10365 +10366 +10367 +10368 +10369 +10370

    @@ -47022,9 +62263,9 @@

    -

    +

    - .ruby_bucket_path_segment?(segment) ⇒ Boolean + .selected_template_path?(relative_path, patterns) ⇒ Boolean @@ -47059,25 +62300,57 @@

     
     
    -5567
    -5568
    -5569
    -5570
    -5571
    -5572
    -5573
    -5574
    +9331 +9332 +9333 +9334 +9335 +9336 +9337 +9338 +9339

    + +
    -
    -
    -
    -5960
    -5961
    -5962
    -5963
    -5964
    -5965
    -5966
    -5967
    -5968
    -5969
    -5970
    -5971
    -5972
    -5973
    -5974
    -5975
    -5976
    -5977
    +6662 +6663 +6664
    -
    # File 'lib/kettle/jem.rb', line 5960
    -
    -def rewrite_gemspec_version_loader(content, facts:)
    -  min_ruby = gemspec_runtime_floor_token(facts)
    -  return content if min_ruby.to_s.empty?
    -
    -  namespace = facts.to_h.dig(:rubygems, :namespace).to_s
    -  entrypoint_require = facts.to_h.dig(:rubygems, :entrypoint_require).to_s
    -  entrypoint_require = facts.to_h.dig(:package, :name).to_s.tr("-", "/") if entrypoint_require.empty?
    -  return content if namespace.empty? || entrypoint_require.empty?
    +      
    # File 'lib/kettle/jem.rb', line 6662
     
    -  receiver = gemspec_block_param(content) || "spec"
    -  min_ruby_version = Gem::Version.new(min_ruby)
    -  modern = min_ruby_version >= MODERN_GEMSPEC_VERSION_LOADER_MIN_RUBY
    -  rhs = modern ? gemspec_modern_version_loader_expression(entrypoint_require: entrypoint_require, namespace: namespace) : "gem_version"
    -  rewritten = replace_gemspec_version_assignment(content, receiver: receiver, rhs: rhs)
    -  modern ? remove_gemspec_legacy_version_loader_preamble(rewritten) : ensure_gemspec_legacy_version_loader_preamble(rewritten, entrypoint_require: entrypoint_require, namespace: namespace, min_ruby: min_ruby_version)
    -rescue ArgumentError, Ast::Crispr::Error
    -  content
    +def ruby_word_array_node?(node)
    +  node.is_a?(::Prism::ArrayNode) && node.opening_loc&.slice.to_s.start_with?("%w[")
     end
    -
    # File 'lib/kettle/jem.rb', line 4574
    +      
    # File 'lib/kettle/jem.rb', line 6653
     
    -def rewrite_markdown_reference_links(content, links)
    -  context = Ast::Crispr::Markdown::Markly.document_context(content: content, source_label: "README.md")
    -  context.structural_owners(owner_scope: :link_definitions).reduce(content.to_s) do |processed, owner|
    -    replacement = links[owner.url.to_s]
    -    next processed unless replacement
    +def ruby_word_array_nodes(content)
    +  result = prism_parse_success(content)
    +  return [] unless result
     
    -    replace_markdown_with_ast_crispr(
    -      processed,
    -      Ast::Crispr::Markdown::Markly::Selectors.link_definition(label: owner.label, limit: {exactly: 1}),
    -      markdown_link_definition_source(owner, replacement)
    -    )
    +  result.value.breadth_first_search_all do |node|
    +    ruby_word_array_node?(node)
       end
     end
    -
    # File 'lib/kettle/jem.rb', line 9471
    -
    -def rubocop_target_ruby_token(min_ruby)
    -  token = minimum_ruby_token(min_ruby)
    -  return "0" if token == "0"
    +      
    # File 'lib/kettle/jem.rb', line 6639
     
    -  segments = Gem::Version.new(token).segments
    -  segments.first(2).join(".")
    -rescue ArgumentError
    -  ""
    +def ruby_word_array_records(content)
    +  ruby_word_array_nodes(content).map do |node|
    +    {
    +      names: ruby_word_array_names(node),
    +      source: node.location.slice,
    +      start_line: node.location.start_line,
    +      end_line: node.location.end_line,
    +      start_column: node.location.start_column,
    +      start_offset: node.location.start_offset,
    +      end_offset: node.location.end_offset
    +    }
    +  end
     end
    -
    # File 'lib/kettle/jem.rb', line 9461
    +      
    # File 'lib/kettle/jem.rb', line 9810
     
    -def rubocop_template_tokens(min_ruby)
    -  constraint, gem_name, gem_constraint = rubocop_tokens_for(min_ruby_version(min_ruby))
    -  {
    -    "KJ|RUBOCOP_TARGET_RUBY" => rubocop_target_ruby_token(min_ruby),
    -    "KJ|RUBOCOP_LTS_CONSTRAINT" => constraint,
    -    "KJ|RUBOCOP_RUBY_GEM" => gem_name,
    -    "KJ|RUBOCOP_RUBY_CONSTRAINT" => gem_constraint
    -  }
    +def run_apply_phases(project_root, report)
    +  plugin_registry = plugin_registry_for_project(project_root)
    +  changed_files = report.fetch(:changed_files)
    +  diagnostics = report.fetch(:diagnostics)
    +  context = PluginContext.new(
    +    project_root: project_root,
    +    mode: "apply",
    +    facts: report.fetch(:facts),
    +    recipe_pack: report.fetch(:recipe_pack),
    +    recipe_reports: report.fetch(:recipe_reports),
    +    phase_reports: report.fetch(:phase_reports),
    +    changed_files: changed_files,
    +    diagnostics: diagnostics
    +  )
    +  reports_by_phase = report.fetch(:recipe_reports).group_by { |recipe_report| recipe_report_phase(recipe_report) }
    +  active_runner_phases = report.fetch(:phase_reports).map { |phase_report| phase_report.fetch(:phase).to_sym }
    +  active_runner_phases.each do |phase|
    +    phase_report = report.fetch(:phase_reports).find { |entry| entry.fetch(:phase).to_sym == phase }
    +    phase_stats = phase_report.fetch(:stats)
    +    unless plugin_registry.empty?
    +      plugin_registry.run(
    +        timing: :before,
    +        phase: phase,
    +        context: context,
    +        actor: self,
    +        phase_stats: phase_stats
    +      )
    +    end
    +    reports_by_phase.fetch(phase, []).each do |recipe_report|
    +      apply_recipe_report(project_root, recipe_report)
    +    end
    +    unless plugin_registry.empty?
    +      plugin_registry.run(
    +        timing: :after,
    +        phase: phase,
    +        context: context,
    +        actor: self,
    +        phase_stats: phase_stats
    +      )
    +    end
    +  end
    +  unless plugin_registry.configured_plugins.empty?
    +    diagnostics << plugin_lifecycle_diagnostic(
    +      plugin_registry,
    +      callbacks_run: true,
    +      active_runner_phases: active_runner_phases
    +    )
    +  end
    +  changed_files.sort!
    +  report[:run_stats] = recipe_run_stats(report.fetch(:recipe_reports), diagnostics: diagnostics)
     end
    -
    # File 'lib/kettle/jem.rb', line 9481
    +      
    # File 'lib/kettle/jem.rb', line 4594
     
    -def rubocop_tokens_for(min_ruby)
    -  fallback = RUBOCOP_VERSION_MAP.first
    -  selected = nil
    -  RUBOCOP_VERSION_MAP.reverse_each do |minimum, lts_constraint, ruby_gem, ruby_constraint|
    -    next unless min_ruby && min_ruby >= minimum
    +def runtime_context_value(request, *path)
    +  context = request[:runtime_context] || request["runtime_context"] || {}
    +  path.reduce(context) do |value, key|
    +    break nil unless value.respond_to?(:[])
     
    -    selected = [minimum, lts_constraint, ruby_gem, ruby_constraint]
    -    break
    +    value[key] || value[key.to_s]
       end
    -  selected ||= fallback
    -  [selected[1], selected[2], selected[3]]
     end
    -
    # File 'lib/kettle/jem.rb', line 5921
    +      
    # File 'lib/kettle/jem.rb', line 8313
     
    -def ruby_appraisal_name_version(name)
    -  text = name.to_s
    -  return unless text.start_with?("ruby-")
    +def runtime_gemspec_dependency_insertion_index(lines, receiver:)
    +  note_index = lines.find_index { |line| line.lstrip.start_with?("# NOTE: It is preferable to list development dependencies") }
    +  return note_index - 1 if note_index&.positive? && lines[note_index - 1].strip.empty?
    +  return note_index if note_index
     
    -  major, minor, extra = text.delete_prefix("ruby-").split("-", -1)
    -  return if extra || major.to_s.empty? || minor.to_s.empty?
    -  return unless [major, minor].all? { |part| part.each_char.all? { |char| char.between?("0", "9") } }
    +  development_line = gemspec_dependency_records(lines.join, receiver: receiver).find { |record| record.fetch(:kind) == "add_development_dependency" }&.fetch(:start_line)
    +  development_index = development_line && development_line - 1
    +  return development_index if development_index
     
    -  Gem::Version.new("#{major}.#{minor}")
    +  gemspec_end_line(lines.join) - 1
     end
    -
    # File 'lib/kettle/jem.rb', line 4137
    +      
    # File 'lib/kettle/jem.rb', line 5887
     
    -def ruby_appraisal_names_below(content, min_ruby)
    -  return [] if min_ruby.to_s.empty?
    +def runtime_workspace_override_records(content)
    +  result = prism_parse_success(content)
    +  return [] unless result
     
    -  minimum = Gem::Version.new(min_ruby.to_s)
    -  appraisal_names(content).select do |name|
    -    version = ruby_appraisal_name_version(name)
    -    version && version < minimum
    +  conditional_nodes = result.value.breadth_first_search_all do |node|
    +    gemfile_conditional_node?(node)
    +  end
    +  templating_guard_ranges = conditional_nodes.filter_map do |node|
    +    next unless prism_subtree_contains_string?(node, "K_JEM_TEMPLATING")
    +
    +    {start_line: node.location.start_line, end_line: node.location.end_line}
    +  end
    +  conditional_nodes.select do |node|
    +    gemfile_workspace_override_node?(node) &&
    +      !node_enclosed_by_ranges?(node, templating_guard_ranges)
    +  end.map do |node|
    +    {start_line: node.location.start_line, end_line: node.location.end_line}
       end
    -rescue ArgumentError
    -  []
     end
    -
    # File 'lib/kettle/jem.rb', line 8255
    +      
    # File 'lib/kettle/jem.rb', line 10361
     
    -def ruby_array_literal(values)
    -  "[#{Array(values).map { |value| %("#{ruby_double_quoted_string_body(value.to_s)}") }.join(", ")}]"
    +def security_supported_version_token(version)
    +  parsed = Gem::Version.new(version.to_s)
    +  major = parsed.segments.fetch(0, 0).to_i
    +  return "0.latest" if major.zero?
    +
    +  minor = parsed.segments.fetch(1, 0).to_i
    +  "#{major}.#{minor}.latest"
    +rescue ArgumentError
    +  "0.latest"
     end
    -
    # File 'lib/kettle/jem.rb', line 5567
    +      
    # File 'lib/kettle/jem.rb', line 9331
     
    -def ruby_bucket_path_segment?(segment)
    -  return false unless segment.to_s.start_with?("r")
    +def selected_template_path?(relative_path, patterns)
    +  path = relative_path.to_s.delete_prefix("./")
    +  patterns.any? do |pattern|
    +    normalized = pattern.to_s.delete_prefix("./")
    +    path == normalized ||
    +      File.fnmatch?(normalized, path, File::FNM_PATHNAME | File::FNM_DOTMATCH | File::FNM_EXTGLOB) ||
    +      (normalized.end_with?("/**") && path.start_with?(normalized.delete_suffix("/**") + "/"))
    +  end
    +end
    +
    +
    + +
    +

    + + .semantic_readme_heading(text) ⇒ Object + - version = segment.to_s[1..].to_s - return false if version.empty? + - version.split(".", -1).all? { |part| !part.empty? && part.each_char.all? { |char| char.between?("0", "9") } } + +

    + + + @@ -47085,9 +62358,9 @@

    -

    +

    - .ruby_call_records(content, call_name) ⇒ Object + .set_template_file_strategy!(config, target_path, strategy) ⇒ Object @@ -47099,25 +62372,27 @@

     
     
    -5354
    -5355
    -5356
    -5357
    -5358
    -5359
    -5360
    -5361
    +12937 +12938 +12939 +12940 +12941 +12942 +12943 +12944 +12945

    @@ -47125,9 +62400,9 @@

    -

    +

    - .ruby_constant_path_segments(node) ⇒ Object + .setup_execution_context(env, run_options) ⇒ Object @@ -47139,15 +62414,29 @@

     
     
    -8911
    -8912
    -8913
    +9392 +9393 +9394 +9395 +9396 +9397 +9398 +9399 +9400 +9401

    @@ -47155,9 +62444,9 @@

    -

    +

    - .ruby_double_quoted_string_body(value) ⇒ Object + .setup_guidance_diagnostic(config_existed:) ⇒ Object @@ -47169,15 +62458,29 @@

     
     
    -7147
    -7148
    -7149
    +9381 +9382 +9383 +9384 +9385 +9386 +9387 +9388 +9389 +9390

    @@ -47185,9 +62488,9 @@

    -

    +

    - .ruby_engines_config(config) ⇒ Object + .setup_project(project_root, env: ENV, run_options: {}, command_runner: nil) ⇒ Object @@ -47199,21 +62502,71 @@

     
     
    -7412
    -7413
    -7414
    -7415
    -7416
    -7417
    +3811 +3812 +3813 +3814 +3815 +3816 +3817 +3818 +3819 +3820 +3821 +3822 +3823 +3824 +3825 +3826 +3827 +3828 +3829 +3830 +3831 +3832 +3833 +3834 +3835 +3836 +3837 +3838 +3839 +3840 +3841

    @@ -47221,9 +62574,9 @@

    -

    +

    - .ruby_first_string_argument(owner) ⇒ Object + .shield_token(value) ⇒ Object @@ -47235,17 +62588,115 @@

     
     
    -8824
    -8825
    -8826
    -8827
    +11505 +11506 +11507

    + +
    +
    +
    +
    +12887
    +12888
    +12889
    +
    +
    # File 'lib/kettle/jem.rb', line 12887
    +
    +def semantic_readme_heading(text)
    +  normalize_readme_heading(text)
     end
    -
    # File 'lib/kettle/jem.rb', line 5354
    +      
    # File 'lib/kettle/jem.rb', line 12937
     
    -def ruby_call_records(content, call_name)
    -  result = prism_parse_success(content)
    -  return [] unless result
    -
    -  result.value.breadth_first_search_all do |node|
    -    node.is_a?(::Prism::CallNode) && (call_name.nil? || node.name == call_name)
    +def set_template_file_strategy!(config, target_path, strategy)
    +  config["files"] = {} unless config["files"].is_a?(Hash)
    +  current = config["files"]
    +  target_path.to_s.split("/").each do |part|
    +    current[part] = {} unless current[part].is_a?(Hash)
    +    current = current[part]
       end
    +  current["strategy"] = strategy
     end
    -
    # File 'lib/kettle/jem.rb', line 8911
    +      
    # File 'lib/kettle/jem.rb', line 9392
     
    -def ruby_constant_path_segments(node)
    -  node&.slice.to_s.split("::").reject(&:empty?)
    +def setup_execution_context(env, run_options)
    +  return {bundled: false, source: "bootstrap_mode", bundle_gemfile: nil} if DecisionPolicy.value_to_boolean((run_options || {})[:bootstrap_mode])
    +
    +  bundle_gemfile = (env || {})["BUNDLE_GEMFILE"].to_s.strip
    +  {
    +    bundled: !bundle_gemfile.empty?,
    +    source: bundle_gemfile.empty? ? "process" : "BUNDLE_GEMFILE",
    +    bundle_gemfile: bundle_gemfile.empty? ? nil : bundle_gemfile
    +  }
     end
    -
    # File 'lib/kettle/jem.rb', line 7147
    +      
    # File 'lib/kettle/jem.rb', line 9381
     
    -def ruby_double_quoted_string_body(value)
    -  value.to_s.gsub("\\", "\\\\\\").gsub('"', '\"')
    +def setup_guidance_diagnostic(config_existed:)
    +  {
    +    severity: "advisory",
    +    message: if config_existed
    +               "Kettle/Jem setup bootstrap mode found existing #{KETTLE_CONFIG_PATH}; run kettle-jem apply to template the project."
    +             else
    +               "Created #{KETTLE_CONFIG_PATH}. Review it, then run kettle-jem --accept-config to continue setup."
    +             end
    +  }
     end
    -
    # File 'lib/kettle/jem.rb', line 7412
    +      
    # File 'lib/kettle/jem.rb', line 3811
     
    -def ruby_engines_config(config)
    -  engines = config["engines"]
    -  return unless engines.is_a?(Array)
    +def setup_project(project_root, env: ENV, run_options: {}, command_runner: nil)
    +  root = File.expand_path(project_root.to_s)
    +  config_path = kettle_jem_config_path(root)
    +  config_existed = File.exist?(config_path)
    +  execution_context = setup_execution_context(env, run_options)
    +  plan = plan_project(root, env: env, run_options: run_options)
    +  selection = plan.fetch(:template_selection)
    +  bootstrap_only = selection[:bootstrap_mode] || (!config_existed && !selection[:accept_config])
     
    -  engines.map { |engine| engine.to_s.strip.downcase }.reject(&:empty?).uniq
    +  if bootstrap_only
    +    bootstrap_report = plan.fetch(:recipe_reports).find { |report| report.fetch(:relative_path) == KETTLE_CONFIG_PATH }
    +    apply_recipe_report(root, bootstrap_report) if bootstrap_report&.fetch(:changed, false)
    +    changed_files = bootstrap_report&.fetch(:changed, false) ? [KETTLE_CONFIG_PATH] : []
    +    return plan.merge(
    +      mode: "setup",
    +      setup_status: config_existed ? "bootstrap_config_already_present" : "bootstrap_config_written",
    +      setup_execution_context: execution_context,
    +      ready: config_existed,
    +      changed_files: changed_files,
    +      diagnostics: plan.fetch(:diagnostics) + [setup_guidance_diagnostic(config_existed: config_existed)]
    +    )
    +  end
    +
    +  install_kwargs = {project_root: root, env: env, run_options: run_options}
    +  install_kwargs[:command_runner] = command_runner if command_runner
    +  Tasks::InstallTask.run(**install_kwargs).merge(
    +    mode: "setup",
    +    setup_execution_context: execution_context,
    +    setup_status: config_existed ? "configured_project_applied" : "accepted_config_applied"
    +  )
     end
    -
    # File 'lib/kettle/jem.rb', line 8824
    +      
    # File 'lib/kettle/jem.rb', line 11505
     
    -def ruby_first_string_argument(owner)
    -  argument = owner.arguments&.arguments&.first
    -  argument.respond_to?(:unescaped) ? argument.unescaped : nil
    +def shield_token(value)
    +  value.to_s.gsub("-", "--").gsub("_", "__").tr(" ", "_")
    +end
    +
    +
    + +
    +

    + + .shim_facts(config, env, run_options, package_name:, entrypoint_require:, template_profile:) ⇒ Object + + + + + +

    + + + @@ -47253,9 +62704,9 @@

    -

    +

    - .ruby_keyword_string_argument(call, key) ⇒ Object + .shim_profile_cleanups(project_root, facts, preferences, template_selection: {}) ⇒ Object @@ -47267,65 +62718,45 @@

     
     
    -5414
    -5415
    -5416
    -5417
    -5418
    -5419
    -5420
    -5421
    +13059 +13060 +13061 +13062 +13063 +13064 +13065 +13066 +13067 +13068 +13069 +13070 +13071 +13072 +13073 +13074 +13075 +13076

    - -
    +
    +
    +
    +3238
    +3239
    +3240
    +3241
    +3242
    +3243
    +3244
    +3245
    +3246
    +3247
    +3248
    +3249
    +3250
    +3251
    +3252
    +3253
    +3254
    +3255
    +3256
    +3257
    +3258
    +3259
    +3260
    +3261
    +3262
    +3263
    +3264
    +3265
    +3266
    +3267
    +3268
    +3269
    +3270
    +3271
    +3272
    +3273
    +3274
    +3275
    +
    +
    # File 'lib/kettle/jem.rb', line 3238
    +
    +def shim_facts(config, env, run_options, package_name:, entrypoint_require:, template_profile:)
    +  shim_config = config["shim"].is_a?(Hash) ? config["shim"] : {}
    +  selection = run_options || {}
    +  replacement_gem = selection[:shimmed_gem].to_s.strip
    +  replacement_gem = selection["shimmed_gem"].to_s.strip if replacement_gem.empty?
    +  replacement_gem = env["KETTLE_JEM_SHIMMED_GEM"].to_s.strip if replacement_gem.empty?
    +  replacement_gem = shim_config["replacement_gem"].to_s.strip if replacement_gem.empty?
    +
    +  replacement_require = selection[:shimmed_require].to_s.strip
    +  replacement_require = selection["shimmed_require"].to_s.strip if replacement_require.empty?
    +  replacement_require = env["KETTLE_JEM_SHIMMED_REQUIRE"].to_s.strip if replacement_require.empty?
    +  replacement_require = shim_config["replacement_require"].to_s.strip if replacement_require.empty?
    +  replacement_require = replacement_gem if replacement_require.empty?
    +  replacement_git = env["KETTLE_JEM_SHIMMED_GIT"].to_s.strip
    +  replacement_git = shim_config["replacement_git"].to_s.strip if replacement_git.empty?
    +
    +  legacy_requires = Array(shim_config["legacy_requires"]).flat_map { |entry| entry.to_s.split(",") }
    +  env_legacy_requires = env["KETTLE_JEM_SHIM_LEGACY_REQUIRES"].to_s
    +  legacy_requires.concat(env_legacy_requires.split(",")) unless env_legacy_requires.empty?
    +  legacy_requires << entrypoint_require
    +  legacy_requires = legacy_requires.map(&:strip).reject(&:empty?).uniq
    +
    +  return {} if replacement_gem.empty? && template_profile.to_s != SHIM_TEMPLATE_PROFILE
    +  if replacement_gem.empty?
    +    raise ArgumentError,
    +      "shim template profile requires shim.replacement_gem, KETTLE_JEM_SHIMMED_GEM, or --shimmed-gem"
    +  end
    +
    +  {
    +    replacement_gem: replacement_gem,
    +    replacement_require: replacement_require,
    +    replacement_git: replacement_git,
    +    legacy_requires: legacy_requires,
    +    primary_require: entrypoint_require.to_s,
    +    package_name: package_name.to_s,
    +    version_strategy: shim_config.dig("version", "strategy").to_s.empty? ? "shim" : shim_config.dig("version", "strategy").to_s
    +  }
     end
    -
    # File 'lib/kettle/jem.rb', line 5414
    -
    -def ruby_keyword_string_argument(call, key)
    -  keyword_hash = Array(call&.arguments&.arguments).find { |argument| argument.is_a?(::Prism::KeywordHashNode) }
    -  assoc = keyword_hash&.elements&.find do |element|
    -    element.respond_to?(:key) && element.key.respond_to?(:unescaped) && element.key.unescaped == key.to_s
    -  end
    -  value = assoc&.value
    -  value.unescaped if value.is_a?(::Prism::StringNode)
    -end
    -
    -
    - -
    -

    - - .ruby_merge_options(recipe, merge_template_requires:) ⇒ Object - - - +
    # File 'lib/kettle/jem.rb', line 13059
     
    -  
    -

    - - - @@ -47333,9 +62764,9 @@

    -

    +

    - .ruby_method_move_policy(recipe) ⇒ Object + .shim_replacement_namespace(replacement_require) ⇒ Object @@ -47347,17 +62778,23 @@

     
     
    -5067
    -5068
    -5069
    -5070
    +10303 +10304 +10305 +10306 +10307 +10308 +10309

    @@ -47365,9 +62802,9 @@

    -

    +

    - .ruby_multiline_word_array_source(names, indent:) ⇒ Object + .shim_template_entries(facts, config) ⇒ Object @@ -47379,19 +62816,41 @@

     
     
    -5486
    -5487
    -5488
    -5489
    -5490
    +12967 +12968 +12969 +12970 +12971 +12972 +12973 +12974 +12975 +12976 +12977 +12978 +12979 +12980 +12981 +12982

    @@ -47399,9 +62858,9 @@

    -

    +

    - .ruby_require_aliases(recipe, facts = nil) ⇒ Object + .shim_template_entries_for_config(gemspec_path, config) ⇒ Object @@ -47413,33 +62872,43 @@

     
     
    -5143
    -5144
    -5145
    -5146
    -5147
    -5148
    -5149
    -5150
    -5151
    -5152
    -5153
    -5154
    +9127 +9128 +9129 +9130 +9131 +9132 +9133 +9134 +9135 +9136 +9137 +9138 +9139 +9140 +9141 +9142 +9143

    @@ -47447,9 +62916,9 @@

    -

    +

    - .ruby_require_call?(owner, method_name, argument) ⇒ Boolean + .shim_template_profile?(facts) ⇒ Boolean @@ -47484,49 +62953,15 @@

     
     
    -8818
    -8819
    -8820
    -8821
    -8822
    - -

    - -
    -
    +def shim_profile_cleanups(project_root, facts, preferences, template_selection: {})
    +  return [] unless facts[:template_profile].to_s == SHIM_TEMPLATE_PROFILE
    +  return [] unless Array(template_selection[:only]).empty?
     
    +  retained_paths = preferences.map { |preference| preference.fetch(:target_path).to_s }.to_set
    +  retained_paths << KETTLE_CONFIG_PATH
    +  SHIM_PROFILE_CLEANUP_GLOBS.flat_map do |pattern|
    +    Dir.glob(File.join(project_root, pattern), File::FNM_DOTMATCH).filter_map do |path|
    +      next unless File.file?(path)
     
    -5101
    -5102
    -5103
    -5104
    -5105
    -5106
    -5107
    -5108
    -
    -
    # File 'lib/kettle/jem.rb', line 5101
    +      relative_path = path.delete_prefix("#{project_root}/")
    +      next if retained_paths.include?(relative_path)
    +      next if relative_path.start_with?(".git/")
     
    -def ruby_merge_options(recipe, merge_template_requires:)
    -  options = {merge_template_requires: merge_template_requires}
    -  parameters = Ruby::Merge.method(:merge_ruby).parameters
    -  if parameters.include?([:key, :method_move_policy]) || parameters.any? { |kind, _name| kind == :keyrest }
    -    options[:method_move_policy] = ruby_method_move_policy(recipe)
    -  end
    -  options
    +      {target_path: relative_path}
    +    end
    +  end.uniq { |cleanup| cleanup.fetch(:target_path) }.sort_by { |cleanup| cleanup.fetch(:target_path) }
     end
    -
    # File 'lib/kettle/jem.rb', line 5067
    +      
    # File 'lib/kettle/jem.rb', line 10303
     
    -def ruby_method_move_policy(recipe)
    -  recipe.dig(:template_preference, :method_move_policy) ||
    -    (Ruby::Merge.const_defined?(:DEFAULT_METHOD_MOVE_POLICY) ? Ruby::Merge::DEFAULT_METHOD_MOVE_POLICY : DEFAULT_RUBY_METHOD_MOVE_POLICY)
    +def shim_replacement_namespace(replacement_require)
    +  replacement_require.to_s.tr("-", "/").split("/").reject(&:empty?).map do |segment|
    +    SHIM_REPLACEMENT_NAMESPACE_ACRONYMS.fetch(segment) do
    +      segment.split("_").map { |part| "#{part[0].to_s.upcase}#{part[1..]}" }.join
    +    end
    +  end.join("::")
     end
    -
    # File 'lib/kettle/jem.rb', line 5486
    +      
    # File 'lib/kettle/jem.rb', line 12967
     
    -def ruby_multiline_word_array_source(names, indent:)
    -  prefix = " " * indent.to_i
    -  element_prefix = "#{prefix}  "
    -  (["#{prefix}%w["] + names.map { |name| "#{element_prefix}#{name}" } + ["#{prefix}]"]).join("\n")
    +def shim_template_entries(facts, config)
    +  package_name = facts.dig(:package, :name).to_s
    +  entrypoint_require = facts.dig(:rubygems, :entrypoint_require).to_s
    +  shim = facts.fetch(:shim)
    +  targets = SHIM_TEMPLATE_STATIC_ENTRIES.map do |target|
    +    source = SHIM_TEMPLATE_SOURCE_TARGETS.fetch(target, target)
    +    {"source" => source, "target" => target}
    +  end
    +  targets << {"source" => "shim/gem.gemspec", "target" => "#{package_name}.gemspec"}
    +  targets << {"source" => "shim/lib/version.rb", "target" => File.join("lib", entrypoint_require, "version.rb")}
    +  targets << {"source" => "shim/lib/entrypoint.rb", "target" => File.join("lib", "#{entrypoint_require}.rb")}
    +  Array(shim[:legacy_requires]).map(&:to_s).reject { |path| path == entrypoint_require }.each do |require_path|
    +    targets << {"source" => "shim/lib/compat_require.rb", "target" => File.join("lib", "#{require_path}.rb")}
    +  end
    +  targets.uniq { |entry| entry.fetch("target") }
     end
    -
    # File 'lib/kettle/jem.rb', line 5143
    -
    -def ruby_require_aliases(recipe, facts = nil)
    -  facts ||= recipe[:facts] || recipe["facts"]
    -  return [] unless facts.is_a?(Hash)
    -
    -  package = facts[:package] || facts["package"] || {}
    -  rubygems = facts[:rubygems] || facts["rubygems"] || {}
    -  package_name = (package[:name] || package["name"]).to_s.strip
    -  entrypoint = (rubygems[:entrypoint_require] || rubygems["entrypoint_require"]).to_s.strip
    -  return [] if package_name.empty? || entrypoint.empty? || package_name == entrypoint
    +      
    # File 'lib/kettle/jem.rb', line 9127
     
    -  [[package_name, entrypoint]]
    +def shim_template_entries_for_config(gemspec_path, config)
    +  package_name = config.dig("rubygems", "name").to_s.strip
    +  package_name = File.basename(gemspec_path.to_s, ".gemspec") if package_name.empty?
    +  entrypoint_require = config.dig("rubygems", "entrypoint_require").to_s.strip
    +  entrypoint_require = package_name.tr("-", "/") if entrypoint_require.empty?
    +  legacy_requires = Array(config.dig("shim", "legacy_requires")).map(&:to_s)
    +  legacy_requires << entrypoint_require
    +  shim = {legacy_requires: legacy_requires.uniq}
    +  shim_template_entries(
    +    {
    +      package: {name: package_name},
    +      rubygems: {entrypoint_require: entrypoint_require},
    +      shim: shim
    +    },
    +    config
    +  )
     end
    -
    # File 'lib/kettle/jem.rb', line 8818
    -
    -def ruby_require_call?(owner, method_name, argument)
    -  owner.is_a?(::Prism::CallNode) &&
    -    owner.name.to_s == method_name.to_s &&
    -    ruby_first_string_argument(owner).to_s == argument.to_s
    -end
    -
    -
    - -
    -

    - - .ruby_string_argument(call) ⇒ Object - - - - - -

    - - @@ -47534,9 +62969,9 @@

    -

    +

    - .ruby_string_argument_at(call, index) ⇒ Object + .shim_template_tokens(shim) ⇒ Object @@ -47548,51 +62983,27 @@

     
     
    -5403
    -5404
    -5405
    -5406
    - -

    - -
    -
    -
    -
    -5399
    -5400
    -5401
    +9186 +9187 +9188
    -
    # File 'lib/kettle/jem.rb', line 5399
    +      
    # File 'lib/kettle/jem.rb', line 9186
     
    -def ruby_string_argument(call)
    -  ruby_string_argument_at(call, 0)
    +def shim_template_profile?(facts)
    +  facts[:template_profile].to_s == SHIM_TEMPLATE_PROFILE
     end
    -
    # File 'lib/kettle/jem.rb', line 5403
    -
    -def ruby_string_argument_at(call, index)
    -  argument = call&.arguments&.arguments&.[](index)
    -  argument.unescaped if argument.is_a?(::Prism::StringNode)
    -end
    +10166 +10167 +10168 +10169 +10170 +10171 +10172 +10173 +10174
    -
    - -
    -

    - - .ruby_string_arguments(call) ⇒ Object - - - - - -

    - - @@ -47600,9 +63011,9 @@

    -

    +

    - .ruby_template_policy_report(recipe:, request:, original:, final:) ⇒ Object + .shim_version_file_content(namespace:, replacement_namespace:, replacement_require:) ⇒ Object @@ -47614,63 +63025,47 @@

     
     
    -4005
    -4006
    -4007
    -4008
    -4009
    -4010
    -4011
    -4012
    -4013
    -4014
    -4015
    -4016
    -4017
    -4018
    -4019
    -4020
    -4021
    -4022
    -4023
    -4024
    -4025
    -4026
    +10311 +10312 +10313 +10314 +10315 +10316 +10317 +10318 +10319 +10320 +10321 +10322 +10323 +10324

    -
    +      
    # File 'lib/kettle/jem.rb', line 10166
     
    +def shim_template_tokens(shim)
    +  return {} unless shim.is_a?(Hash) && !shim.empty?
     
    -5408
    -5409
    -5410
    -5411
    -5412
    -
    -
    # File 'lib/kettle/jem.rb', line 5408
    -
    -def ruby_string_arguments(call)
    -  Array(call&.arguments&.arguments).filter_map do |argument|
    -    argument.unescaped if argument.is_a?(::Prism::StringNode)
    -  end
    +  {
    +    "KJ|SHIMMED_GEM_NAME" => shim[:replacement_gem].to_s,
    +    "KJ|SHIMMED_REQUIRE" => shim[:replacement_require].to_s,
    +    "KJ|SHIM_COMPAT_REQUIRES" => Array(shim[:legacy_requires]).join(", ")
    +  }
     end
    -
    # File 'lib/kettle/jem.rb', line 4005
    +      
    # File 'lib/kettle/jem.rb', line 10311
     
    -def ruby_template_policy_report(recipe:, request:, original:, final:)
    -  return {} unless recipe.fetch(:primitive) == "supplied_template_source_application"
    -
    -  file_type = template_file_type(recipe)
    -  return {} unless %i[gemfile gemspec appraisals].include?(file_type)
    +def shim_version_file_content(namespace:, replacement_namespace:, replacement_require:)
    +  body = [
    +    "Version = #{replacement_namespace}::Version unless const_defined?(:Version, false)",
    +    "VERSION = #{replacement_namespace}::VERSION unless const_defined?(:VERSION, false)"
    +  ]
     
    -  template_content = request.fetch(:template_content, "")
    -  report = {
    -    policy_kind: "kettle_jem_ruby_template_policy",
    -    file_type: file_type.to_s
    -  }
    -  operations = case file_type
    -  when :gemfile
    -    gemfile_policy_operations(template_content, original, final, request)
    -  when :gemspec
    -    gemspec_policy_operations(template_content, original, final, request)
    -  when :appraisals
    -    appraisals_policy_operations(template_content, original, final, request)
    -  end
    -  report[:operations] = operations
    -  {ruby_template_policy: report}
    -end
    + <<~RUBY + # frozen_string_literal: true + + require #{replacement_require.to_s.dump} + + #{wrap_ruby_namespace(namespace, body).join("\n")} + RUBY +end
    -

    +

    - .ruby_top_level_require?(content, method_name, argument) ⇒ Boolean + .shunted_dependency_has_floor_compatible_version?(resolver, dependency, versions, floor) ⇒ Boolean @@ -47705,20 +63100,32 @@

     
     
    -8811
    -8812
    -8813
    -8814
    -8815
    -8816
    +3318 +3319 +3320 +3321 +3322 +3323 +3324 +3325 +3326 +3327 +3328 +3329

    -
    # File 'lib/kettle/jem.rb', line 8811
    +      
    # File 'lib/kettle/jem.rb', line 3318
     
    -def ruby_top_level_require?(content, method_name, argument)
    -  context = Ast::Crispr::Ruby::Prism.document_context(content: content.to_s, source_label: "entrypoint.rb")
    -  context.structural_owners(owner_scope: :top_level_statements).any? do |owner|
    -    ruby_require_call?(owner, method_name, argument)
    +def shunted_dependency_has_floor_compatible_version?(resolver, dependency, versions, floor)
    +  versions.any? do |entry|
    +    number = (entry[:number] || entry["number"]).to_s
    +    next false if number.empty?
    +
    +    min_ruby = resolver.min_ruby_version(dependency.fetch(:name), number) ||
    +      resolver.parse_min_ruby(entry[:ruby_version] || entry["ruby_version"])
    +    min_ruby.nil? || Gem::Version.new(min_ruby.to_s) <= floor
    +  rescue
    +    false
       end
     end
    - - - - -
    -
    -
    -
    -5338
    -5339
    -5340
    -5341
    -5342
    -5343
    -5344
    -5345
    -5346
    -5347
    -5348
    -5349
    -5350
    -5351
    -5352
    -
    -
    # File 'lib/kettle/jem.rb', line 5338
    -
    -def ruby_top_level_require_records(content)
    -  body = prism_parse_success(content)&.value&.statements&.body || []
    -  body.filter_map do |node|
    -    next unless node.is_a?(::Prism::CallNode) && node.name == :require
    +
    +
    + - name = ruby_string_argument(node) - next unless name - { - name: name, - start_line: node.location.start_line, - end_line: node.location.end_line - } - end -end
    -
    + - -
    -

    +
    - .ruby_version_class_eval_namespaces(content) ⇒ Object +

    Returns:

    +
      - +
    • + + + (Boolean) + + + +
    • +
    - -

    +
    @@ -47823,9 +63199,9 @@

    -

    +

    - .ruby_version_constant_value(content) ⇒ Object + .shunted_effective_floor(min_ruby) ⇒ Object @@ -47837,31 +63213,25 @@

     
     
    -8875
    -8876
    -8877
    -8878
    -8879
    -8880
    -8881
    -8882
    -8883
    -8884
    -8885
    +3349 +3350 +3351 +3352 +3353 +3354 +3355 +3356

    @@ -47869,9 +63239,9 @@

    -

    +

    - .ruby_version_module_namespace(content) ⇒ Object + .shunted_gemfile_block(gemspec, facts, run_options) ⇒ Object @@ -47883,76 +63253,68 @@

     
     
    -8887
    -8888
    -8889
    -8890
    -8891
    -8892
    -8893
    -8894
    - -

    - -
     
     
    -8919
    -8920
    -8921
    -8922
    -8923
    -8924
    -8925
    -8926
    -8927
    +3308 +3309 +3310 +3311 +3312 +3313 +3314 +3315 +3316
    -
    # File 'lib/kettle/jem.rb', line 8919
    +      
    # File 'lib/kettle/jem.rb', line 3308
     
    -def ruby_version_class_eval_namespaces(content)
    -  ruby_call_records(content, :class_eval).filter_map do |call|
    -    receiver = call.receiver&.slice.to_s
    -    next unless receiver.end_with?("::Version")
    -    next unless call.block
    +def shunted_dependency_has_modular_override?(project_root, dependency)
    +  root = project_root.to_s
    +  return false if root.empty?
     
    -    receiver.delete_suffix("::Version")
    -  end
    +  name = dependency.fetch(:name).to_s
    +  return false if name.empty? || name.include?("/") || name.include?("\\")
    +
    +  File.directory?(File.join(root, "gemfiles", "modular", name))
     end
    -
    # File 'lib/kettle/jem.rb', line 8875
    -
    -def ruby_version_constant_value(content)
    -  result = prism_parse_success(content)
    -  return unless result
    +      
    # File 'lib/kettle/jem.rb', line 3349
     
    -  node = result.value.breadth_first_search_all do |candidate|
    -    candidate.is_a?(::Prism::ConstantWriteNode) &&
    -      candidate.name == :VERSION &&
    -      candidate.value.is_a?(::Prism::StringNode)
    -  end.first
    -  node&.value&.unescaped
    +def shunted_effective_floor(min_ruby)
    +  floor = minimum_ruby_token(min_ruby)
    +  versions = [Gem::Version.new("2.3")]
    +  versions << Gem::Version.new(floor) unless floor.to_s.empty?
    +  versions.max
    +rescue ArgumentError
    +  Gem::Version.new("2.3")
     end
    -
    # File 'lib/kettle/jem.rb', line 8887
    -
    -def ruby_version_module_namespace(content)
    -  body = prism_parse_success(content)&.value&.statements&.body || []
    -  body.each do |node|
    -    namespace = ruby_version_module_namespace_for(node, [])
    -    return namespace if namespace
    -  end
    -  nil
    -end
    +3277 +3278 +3279 +3280 +3281 +3282 +3283 +3284 +3285 +3286 +3287 +3288 +3289 +3290 +3291 +3292 +3293 +3294 +3295 +3296 +3297 +3298 +3299 +3300 +3301 +3302 +3303 +3304 +3305 +3306
    -
    - -
    -

    - - .ruby_version_module_namespace_for(node, namespace) ⇒ Object - - - - - -

    - - @@ -47961,9 +63323,9 @@

    -

    +

    - .ruby_word_array_names(node) ⇒ Object + .shunted_gemfile_managed_block(dependencies) ⇒ Object @@ -47975,19 +63337,39 @@

     
     
    -5480
    -5481
    -5482
    -5483
    -5484
    +3358 +3359 +3360 +3361 +3362 +3363 +3364 +3365 +3366 +3367 +3368 +3369 +3370 +3371 +3372

    @@ -47995,9 +63377,9 @@

    -

    +

    - .ruby_word_array_node?(node) ⇒ Boolean + .simplecov_config_require_call_node?(node) ⇒ Boolean @@ -48032,15 +63414,21 @@

     
     
    -5476
    -5477
    -5478
    +5614 +5615 +5616 +5617 +5618 +5619

    @@ -48048,9 +63436,9 @@

    -

    +

    - .ruby_word_array_nodes(content) ⇒ Object + .simplecov_config_require_call_nodes(content) ⇒ Object @@ -48062,24 +63450,24 @@

     
     
    -5467
    -5468
    -5469
    -5470
    -5471
    -5472
    -5473
    -5474
    +5830 +5831 +5832 +5833 +5834 +5835 +5836 +5837

    @@ -48088,9 +63476,9 @@

    -

    +

    - .ruby_word_array_records(content) ⇒ Object + .simplecov_config_require_call_records(content) ⇒ Object @@ -48102,35 +63490,35 @@

     
     
    -5453
    -5454
    -5455
    -5456
    -5457
    -5458
    -5459
    -5460
    -5461
    -5462
    -5463
    -5464
    -5465
    +5816 +5817 +5818 +5819 +5820 +5821 +5822 +5823 +5824 +5825 +5826 +5827 +5828

    @@ -48138,165 +63526,58 @@

    -

    +

    - .run_apply_phases(project_root, report) ⇒ Object + .simplecov_do_cov_bootstrap_complete_node?(node) ⇒ Boolean -

    -
    +      
    # File 'lib/kettle/jem.rb', line 3277
     
    +def shunted_gemfile_block(gemspec, facts, run_options)
    +  resolver = run_options[:rubygems_resolver] || run_options["rubygems_resolver"] || RubyGemsResolver.new
    +  dependencies = extract_gemspec_development_dependencies(gemspec)
    +  return if dependencies.empty?
     
    -8896
    -8897
    -8898
    -8899
    -8900
    -8901
    -8902
    -8903
    -8904
    -8905
    -8906
    -8907
    -8908
    -8909
    -
    -
    # File 'lib/kettle/jem.rb', line 8896
    +  floor = shunted_effective_floor(facts.dig(:rubygems, :min_ruby))
    +  project_root = facts[:project_root] || facts["project_root"] || run_options[:project_root] || run_options["project_root"]
    +  shunted = dependencies.filter_map do |dependency|
    +    next if shunted_dependency_has_modular_override?(project_root, dependency)
     
    -def ruby_version_module_namespace_for(node, namespace)
    -  return unless node.is_a?(::Prism::ModuleNode)
    +    versions = resolver.versions(dependency.fetch(:name), requirements: dependency[:requirement])
    +    version = versions.max_by { |entry| Gem::Version.new((entry[:number] || entry["number"]).to_s) }
    +    next unless version
     
    -  current = namespace + ruby_constant_path_segments(node.constant_path)
    -  if current.last == "Version" && current.length > 1
    -    return current[0...-1].join("::")
    -  end
    +    number = (version[:number] || version["number"]).to_s
    +    min_ruby = resolver.min_ruby_version(dependency.fetch(:name), number) ||
    +      resolver.parse_min_ruby(version[:ruby_version] || version["ruby_version"])
    +    next unless min_ruby && Gem::Version.new(min_ruby.to_s) > floor
    +    next if shunted_dependency_has_floor_compatible_version?(resolver, dependency, versions, floor)
     
    -  node.body&.body&.each do |child|
    -    child_namespace = ruby_version_module_namespace_for(child, current)
    -    return child_namespace if child_namespace
    +    dependency.merge(version: number, min_ruby: min_ruby.to_s)
    +  rescue
    +    nil
       end
    +  return if shunted.empty?
    +
    +  shunted_gemfile_managed_block(shunted)
    +rescue
       nil
     end
    -
    # File 'lib/kettle/jem.rb', line 5480
    +      
    # File 'lib/kettle/jem.rb', line 3358
     
    -def ruby_word_array_names(node)
    -  node.elements.filter_map do |element|
    -    element.unescaped if element.is_a?(::Prism::StringNode)
    +def shunted_gemfile_managed_block(dependencies)
    +  lines = [
    +    MANAGED_BLOCK_OPEN
    +  ]
    +  if dependencies.empty?
    +    lines << "# (no shunted dependencies)"
    +  else
    +    dependencies.sort_by { |dependency| dependency.fetch(:name) }.each do |dependency|
    +      requirement = dependency[:requirement].to_s.empty? ? "" : %(, "#{dependency.fetch(:requirement)}")
    +      lines << %(gem "#{dependency.fetch(:name)}"#{requirement} # ruby >= #{dependency.fetch(:min_ruby)})
    +    end
       end
    +  lines << MANAGED_BLOCK_CLOSE
    +  ensure_trailing_newline(lines.join("\n"))
     end
    -
    # File 'lib/kettle/jem.rb', line 5476
    +      
    # File 'lib/kettle/jem.rb', line 5614
     
    -def ruby_word_array_node?(node)
    -  node.is_a?(::Prism::ArrayNode) && node.opening_loc&.slice.to_s.start_with?("%w[")
    +def simplecov_config_require_call_node?(node)
    +  node.is_a?(::Prism::CallNode) &&
    +    node.name == :require &&
    +    node.receiver.nil? &&
    +    ruby_string_argument(node) == "kettle/soup/cover/config"
     end
    -
    # File 'lib/kettle/jem.rb', line 5467
    +      
    # File 'lib/kettle/jem.rb', line 5830
     
    -def ruby_word_array_nodes(content)
    +def simplecov_config_require_call_nodes(content)
       result = prism_parse_success(content)
       return [] unless result
     
       result.value.breadth_first_search_all do |node|
    -    ruby_word_array_node?(node)
    +    simplecov_config_require_call_node?(node)
       end
     end
    -
    # File 'lib/kettle/jem.rb', line 5453
    +      
    # File 'lib/kettle/jem.rb', line 5816
     
    -def ruby_word_array_records(content)
    -  ruby_word_array_nodes(content).map do |node|
    +def simplecov_config_require_call_records(content)
    +  lines = content.to_s.lines
    +  ruby_call_records(content, :require).filter_map do |call|
    +    next unless simplecov_config_require_call_node?(call)
    +
    +    end_line = ruby_node_source_end_line(call)
         {
    -      names: ruby_word_array_names(node),
    -      source: node.location.slice,
    -      start_line: node.location.start_line,
    -      end_line: node.location.end_line,
    -      start_column: node.location.start_column,
    -      start_offset: node.location.start_offset,
    -      end_offset: node.location.end_offset
    +      start_line: call.location.start_line,
    +      end_line: end_line,
    +      source: (lines[(call.location.start_line - 1)..(end_line - 1)] || []).join
         }
    -  end
    +  end.sort_by { |record| record.fetch(:start_line) }
     end
    - - - - -
    -
    -
    +
    +
    + -7695 -7696 -7697 -7698 -7699 -7700 -7701 -7702 -7703 -7704 -7705 -7706 -7707 -7708 -7709 -7710 -7711 -7712 -7713 -7714 -7715 -7716 -7717 -7718 -7719 -7720 -7721 -7722 -7723 -7724 -7725 -7726 -7727 -7728 -7729 -7730 -7731 -7732 -7733 -7734 -7735 -7736 -7737 -7738 -7739 -7740 -7741 -7742 -7743 -7744 -7745
    -
    -
    # File 'lib/kettle/jem.rb', line 7695
     
    -def run_apply_phases(project_root, report)
    -  plugin_registry = plugin_registry_for_project(project_root)
    -  changed_files = report.fetch(:changed_files)
    -  diagnostics = report.fetch(:diagnostics)
    -  context = PluginContext.new(
    -    project_root: project_root,
    -    mode: "apply",
    -    facts: report.fetch(:facts),
    -    recipe_pack: report.fetch(:recipe_pack),
    -    recipe_reports: report.fetch(:recipe_reports),
    -    phase_reports: report.fetch(:phase_reports),
    -    changed_files: changed_files,
    -    diagnostics: diagnostics
    -  )
    -  reports_by_phase = report.fetch(:recipe_reports).group_by { |recipe_report| recipe_report_phase(recipe_report) }
    -  active_runner_phases = report.fetch(:phase_reports).map { |phase_report| phase_report.fetch(:phase).to_sym }
    -  active_runner_phases.each do |phase|
    -    phase_report = report.fetch(:phase_reports).find { |entry| entry.fetch(:phase).to_sym == phase }
    -    phase_stats = phase_report.fetch(:stats)
    -    unless plugin_registry.empty?
    -      plugin_registry.run(
    -        timing: :before,
    -        phase: phase,
    -        context: context,
    -        actor: self,
    -        phase_stats: phase_stats
    -      )
    -    end
    -    reports_by_phase.fetch(phase, []).each do |recipe_report|
    -      apply_recipe_report(project_root, recipe_report)
    -    end
    -    unless plugin_registry.empty?
    -      plugin_registry.run(
    -        timing: :after,
    -        phase: phase,
    -        context: context,
    -        actor: self,
    -        phase_stats: phase_stats
    -      )
    -    end
    -  end
    -  unless plugin_registry.configured_plugins.empty?
    -    diagnostics << plugin_lifecycle_diagnostic(
    -      plugin_registry,
    -      callbacks_run: true,
    -      active_runner_phases: active_runner_phases
    -    )
    -  end
    -  changed_files.sort!
    -  report[:run_stats] = recipe_run_stats(report.fetch(:recipe_reports), diagnostics: diagnostics)
    -end
    -
    +
    - -
    -

    +
    - .runtime_context_value(request, *path) ⇒ Object +

    Returns:

    +
      - +
    • + + + (Boolean) + + + +
    • +
    - -

    +
    @@ -48304,45 +63585,66 @@

    -

    +

    - .runtime_gemspec_dependency_insertion_index(lines, receiver:) ⇒ Object + .simplecov_do_cov_bootstrap_only_node?(node) ⇒ Boolean -

     
     
    -4120
    -4121
    -4122
    -4123
    -4124
    -4125
    -4126
    -4127
    +5729 +5730 +5731 +5732 +5733 +5734
    -
    # File 'lib/kettle/jem.rb', line 4120
    -
    -def runtime_context_value(request, *path)
    -  context = request[:runtime_context] || request["runtime_context"] || {}
    -  path.reduce(context) do |value, key|
    -    break nil unless value.respond_to?(:[])
    +      
    # File 'lib/kettle/jem.rb', line 5729
     
    -    value[key] || value[key.to_s]
    -  end
    +def simplecov_do_cov_bootstrap_complete_node?(node)
    +  subtree = prism_call_nodes(node)
    +  subtree.any? { |child| simplecov_require_call_node?(child) } &&
    +    subtree.any? { |child| simplecov_config_require_call_node?(child) } &&
    +    subtree.any? { |child| simplecov_start_call_node?(child) }
     end
    +
    +
    + + + +
    +
    +
    + +

    Returns:

    +
      + +
    • + + + (Boolean) + + + +
    • + +
    + +
    @@ -48350,9 +63652,9 @@

    -

    +

    - .security_supported_version_token(version) ⇒ Object + .simplecov_do_cov_bootstrap_records(content) ⇒ Object @@ -48364,29 +63666,51 @@

     
     
    -8146
    -8147
    -8148
    -8149
    -8150
    -8151
    -8152
    -8153
    -8154
    -8155
    +5697 +5698 +5699 +5700 +5701 +5702 +5703 +5704 +5705 +5706 +5707 +5708 +5709 +5710 +5711 +5712 +5713 +5714 +5715 +5716 +5717

    @@ -48394,9 +63718,9 @@

    -

    +

    - .selected_template_path?(relative_path, patterns) ⇒ Boolean + .simplecov_do_cov_predicate_node?(node) ⇒ Boolean @@ -48431,27 +63755,15 @@

     
     
    -7234
    -7235
    -7236
    -7237
    -7238
    -7239
    -7240
    -7241
    -7242
    +5719 +5720 +5721

    @@ -48459,29 +63771,58 @@

    -

    +

    - .semantic_readme_heading(text) ⇒ Object + .simplecov_kettle_soup_cover_require_call_node?(node) ⇒ Boolean -

     
     
    -6418
    -6419
    -6420
    -6421
    -6422
    -6423
    -6424
    -6425
    -6426
    -6427
    -6428
    +5736 +5737 +5738 +5739 +5740 +5741 +5742 +5743 +5744 +5745
    -
    # File 'lib/kettle/jem.rb', line 6418
    -
    -def runtime_gemspec_dependency_insertion_index(lines, receiver:)
    -  note_index = lines.find_index { |line| line.lstrip.start_with?("# NOTE: It is preferable to list development dependencies") }
    -  return note_index - 1 if note_index&.positive? && lines[note_index - 1].strip.empty?
    -  return note_index if note_index
    +      
    # File 'lib/kettle/jem.rb', line 5736
     
    -  development_line = gemspec_dependency_records(lines.join, receiver: receiver).find { |record| record.fetch(:kind) == "add_development_dependency" }&.fetch(:start_line)
    -  development_index = development_line && development_line - 1
    -  return development_index if development_index
    +def simplecov_do_cov_bootstrap_only_node?(node)
    +  calls = prism_call_nodes(node)
    +  return false if calls.empty?
     
    -  gemspec_end_line(lines.join) - 1
    +  calls.all? do |call|
    +    simplecov_require_call_node?(call) ||
    +      simplecov_config_require_call_node?(call) ||
    +      simplecov_start_call_node?(call)
    +  end
     end
    -
    # File 'lib/kettle/jem.rb', line 8146
    +      
    # File 'lib/kettle/jem.rb', line 5697
     
    -def security_supported_version_token(version)
    -  parsed = Gem::Version.new(version.to_s)
    -  major = parsed.segments.fetch(0, 0).to_i
    -  return "0.latest" if major.zero?
    +def simplecov_do_cov_bootstrap_records(content)
    +  result = prism_parse_success(content)
    +  return [] unless result
     
    -  minor = parsed.segments.fetch(1, 0).to_i
    -  "#{major}.#{minor}.latest"
    -rescue ArgumentError
    -  "0.latest"
    +  lines = content.to_s.lines
    +  result.value.breadth_first_search_all do |node|
    +    node.is_a?(::Prism::IfNode) &&
    +      simplecov_do_cov_predicate_node?(node.predicate) &&
    +      prism_subtree_contains_simplecov_require?(node)
    +  end.map do |node|
    +    end_line = ruby_node_source_end_line(node)
    +    source = (lines[(node.location.start_line - 1)..(end_line - 1)] || []).join
    +    {
    +      start_line: node.location.start_line,
    +      end_line: end_line,
    +      source: source,
    +      bootstrap_only: simplecov_do_cov_bootstrap_only_node?(node),
    +      complete: simplecov_do_cov_bootstrap_complete_node?(node)
    +    }
    +  end.sort_by { |record| record.fetch(:start_line) }
     end
    -
    # File 'lib/kettle/jem.rb', line 7234
    +      
    # File 'lib/kettle/jem.rb', line 5719
     
    -def selected_template_path?(relative_path, patterns)
    -  path = relative_path.to_s.delete_prefix("./")
    -  patterns.any? do |pattern|
    -    normalized = pattern.to_s.delete_prefix("./")
    -    path == normalized ||
    -      File.fnmatch?(normalized, path, File::FNM_PATHNAME | File::FNM_DOTMATCH | File::FNM_EXTGLOB) ||
    -      (normalized.end_with?("/**") && path.start_with?(normalized.delete_suffix("/**") + "/"))
    -  end
    +def simplecov_do_cov_predicate_node?(node)
    +  node&.location&.slice.to_s == "Kettle::Soup::Cover::DO_COV"
     end
    +
    +
    + + + +
    +
    +
    + +

    Returns:

    +
      + +
    • + + + (Boolean) + + + +
    • + +
    + +
    @@ -48489,9 +63830,9 @@

    -

    +

    - .setup_execution_context(env, run_options) ⇒ Object + .simplecov_obsolete_call_nodes(content) ⇒ Object @@ -48503,29 +63844,25 @@

     
     
    -7295
    -7296
    -7297
    -7298
    -7299
    -7300
    -7301
    -7302
    -7303
    -7304
    +5599 +5600 +5601 +5602 +5603 +5604 +5605 +5606

    @@ -48533,43 +63870,58 @@

    -

    +

    - .setup_guidance_diagnostic(config_existed:) ⇒ Object + .simplecov_require_call_node?(node) ⇒ Boolean -

     
     
    -10176
    -10177
    -10178
    +5621 +5622 +5623 +5624 +5625 +5626
    -
    # File 'lib/kettle/jem.rb', line 10176
    +      
    # File 'lib/kettle/jem.rb', line 5621
     
    -def semantic_readme_heading(text)
    -  normalize_readme_heading(text)
    +def simplecov_kettle_soup_cover_require_call_node?(node)
    +  node.is_a?(::Prism::CallNode) &&
    +    node.name == :require &&
    +    node.receiver.nil? &&
    +    ruby_string_argument(node) == "kettle-soup-cover"
     end
    -
    # File 'lib/kettle/jem.rb', line 7295
    +      
    # File 'lib/kettle/jem.rb', line 5599
     
    -def setup_execution_context(env, run_options)
    -  return {bundled: false, source: "bootstrap_mode", bundle_gemfile: nil} if DecisionPolicy.value_to_boolean((run_options || {})[:bootstrap_mode])
    +def simplecov_obsolete_call_nodes(content)
    +  result = prism_parse_success(content)
    +  return [] unless result
     
    -  bundle_gemfile = (env || {})["BUNDLE_GEMFILE"].to_s.strip
    -  {
    -    bundled: !bundle_gemfile.empty?,
    -    source: bundle_gemfile.empty? ? "process" : "BUNDLE_GEMFILE",
    -    bundle_gemfile: bundle_gemfile.empty? ? nil : bundle_gemfile
    -  }
    +  result.value.breadth_first_search_all do |node|
    +    simplecov_start_call_node?(node) || simplecov_config_require_call_node?(node) || simplecov_kettle_soup_cover_require_call_node?(node)
    +  end
     end
    +
    +
    + + + +
    +
    +
    + +

    Returns:

    +
      + +
    • + + + (Boolean) + + + +
    • + +
    + +
    @@ -48577,85 +63929,49 @@

    -

    +

    - .setup_project(project_root, env: ENV, run_options: {}, command_runner: nil) ⇒ Object + .simplecov_require_call_records(content) ⇒ Object -

     
     
    -7284
    -7285
    -7286
    -7287
    -7288
    -7289
    -7290
    -7291
    -7292
    -7293
    +5795 +5796 +5797 +5798 +5799 +5800
    -
    # File 'lib/kettle/jem.rb', line 7284
    +      
    # File 'lib/kettle/jem.rb', line 5795
     
    -def setup_guidance_diagnostic(config_existed:)
    -  {
    -    severity: "advisory",
    -    message: if config_existed
    -               "Kettle/Jem setup bootstrap mode found existing #{KETTLE_CONFIG_PATH}; run kettle-jem apply to template the project."
    -             else
    -               "Created #{KETTLE_CONFIG_PATH}. Review it, then run kettle-jem --accept-config to continue setup."
    -             end
    -  }
    +def simplecov_require_call_node?(node)
    +  node.is_a?(::Prism::CallNode) &&
    +    node.name == :require &&
    +    node.receiver.nil? &&
    +    ruby_string_argument(node) == "simplecov"
     end
    - - +
    -
    -
    -
    -3424
    -3425
    -3426
    -3427
    -3428
    -3429
    -3430
    -3431
    -3432
    -3433
    -3434
    -3435
    -3436
    -3437
    -3438
    -3439
    -3440
    -3441
    -3442
    -3443
    -3444
    -3445
    -3446
    -3447
    -3448
    -3449
    -3450
    -3451
    -3452
    -3453
    -3454
    -
    + + @@ -48663,29 +63979,56 @@

    -

    +

    - .shield_token(value) ⇒ Object + .simplecov_start_call_node?(node) ⇒ Boolean -

    -
    # File 'lib/kettle/jem.rb', line 3424
    +      
     
    -def setup_project(project_root, env: ENV, run_options: {}, command_runner: nil)
    -  root = File.expand_path(project_root.to_s)
    -  config_path = kettle_jem_config_path(root)
    -  config_existed = File.exist?(config_path)
    -  execution_context = setup_execution_context(env, run_options)
    -  plan = plan_project(root, env: env, run_options: run_options)
    -  selection = plan.fetch(:template_selection)
    -  bootstrap_only = selection[:bootstrap_mode] || (!config_existed && !selection[:accept_config])
     
    -  if bootstrap_only
    -    bootstrap_report = plan.fetch(:recipe_reports).find { |report| report.fetch(:relative_path) == KETTLE_CONFIG_PATH }
    -    apply_recipe_report(root, bootstrap_report) if bootstrap_report&.fetch(:changed, false)
    -    changed_files = bootstrap_report&.fetch(:changed, false) ? [KETTLE_CONFIG_PATH] : []
    -    return plan.merge(
    -      mode: "setup",
    -      setup_status: config_existed ? "bootstrap_config_already_present" : "bootstrap_config_written",
    -      setup_execution_context: execution_context,
    -      ready: config_existed,
    -      changed_files: changed_files,
    -      diagnostics: plan.fetch(:diagnostics) + [setup_guidance_diagnostic(config_existed: config_existed)]
    -    )
    -  end
    +5802
    +5803
    +5804
    +5805
    +5806
    +5807
    +5808
    +5809
    +5810
    +5811
    +5812
    +5813
    +5814
    +
    +
    # File 'lib/kettle/jem.rb', line 5802
     
    -  install_kwargs = {project_root: root, env: env, run_options: run_options}
    -  install_kwargs[:command_runner] = command_runner if command_runner
    -  Tasks::InstallTask.run(**install_kwargs).merge(
    -    mode: "setup",
    -    setup_execution_context: execution_context,
    -    setup_status: config_existed ? "configured_project_applied" : "accepted_config_applied"
    -  )
    +def simplecov_require_call_records(content)
    +  lines = content.to_s.lines
    +  ruby_call_records(content, :require).filter_map do |call|
    +    next unless simplecov_require_call_node?(call)
    +
    +    end_line = ruby_node_source_end_line(call)
    +    {
    +      start_line: call.location.start_line,
    +      end_line: end_line,
    +      source: (lines[(call.location.start_line - 1)..(end_line - 1)] || []).join
    +    }
    +  end.sort_by { |record| record.fetch(:start_line) }
     end
    +
    +
    + + + +
    +
    +
    + +

    Returns:

    +
      + +
    • + + + (Boolean) + + + +
    • + +
    + +
    @@ -48693,9 +64036,9 @@

    -

    +

    - .shunted_effective_floor(min_ruby) ⇒ Object + .simplecov_start_call_nodes(content) ⇒ Object @@ -48707,25 +64050,25 @@

     
     
    -3032
    -3033
    -3034
    -3035
    -3036
    -3037
    -3038
    -3039
    +5839 +5840 +5841 +5842 +5843 +5844 +5845 +5846

    @@ -48733,9 +64076,9 @@

    -

    +

    - .shunted_gemfile_block(gemspec, facts, run_options) ⇒ Object + .simplecov_track_files_call_records(content) ⇒ Object @@ -48747,61 +64090,43 @@

     
     
    -2987
    -2988
    -2989
    -2990
    -2991
    -2992
    -2993
    -2994
    -2995
    -2996
    -2997
    -2998
    -2999
    -3000
    -3001
    -3002
    -3003
    -3004
    -3005
    -3006
    -3007
    -3008
    -3009
    -3010
    -3011
    -3012
    +5639 +5640 +5641 +5642 +5643 +5644 +5645 +5646 +5647 +5648 +5649 +5650 +5651 +5652 +5653 +5654 +5655

    @@ -48809,53 +64134,52 @@

    -

    +

    - .shunted_gemfile_managed_block(dependencies) ⇒ Object + .skip_disabled_integration_template?(target_path, config) ⇒ Boolean -

     
     
    -8944
    -8945
    -8946
    +5608 +5609 +5610 +5611 +5612
    -
    # File 'lib/kettle/jem.rb', line 8944
    +      
    # File 'lib/kettle/jem.rb', line 5608
     
    -def shield_token(value)
    -  value.to_s.gsub("-", "--").gsub("_", "__").gsub("::", "%3A%3A").tr(" ", "_")
    +def simplecov_start_call_node?(node)
    +  node.is_a?(::Prism::CallNode) &&
    +    node.name == :start &&
    +    node.receiver&.slice == "SimpleCov"
     end
    -
    # File 'lib/kettle/jem.rb', line 3032
    +      
    # File 'lib/kettle/jem.rb', line 5839
     
    -def shunted_effective_floor(min_ruby)
    -  floor = minimum_ruby_token(min_ruby)
    -  versions = [Gem::Version.new("2.3")]
    -  versions << Gem::Version.new(floor) unless floor.to_s.empty?
    -  versions.max
    -rescue ArgumentError
    -  Gem::Version.new("2.3")
    +def simplecov_start_call_nodes(content)
    +  result = prism_parse_success(content)
    +  return [] unless result
    +
    +  result.value.breadth_first_search_all do |node|
    +    simplecov_start_call_node?(node)
    +  end
     end
    -
    # File 'lib/kettle/jem.rb', line 2987
    -
    -def shunted_gemfile_block(gemspec, facts, run_options)
    -  resolver = run_options[:rubygems_resolver] || run_options["rubygems_resolver"] || RubyGemsResolver.new
    -  dependencies = extract_gemspec_development_dependencies(gemspec)
    -  return if dependencies.empty?
    +      
    # File 'lib/kettle/jem.rb', line 5639
     
    -  floor = shunted_effective_floor(facts.dig(:rubygems, :min_ruby))
    -  shunted = dependencies.filter_map do |dependency|
    -    versions = resolver.versions(dependency.fetch(:name), requirements: dependency[:requirement])
    -    version = versions.max_by { |entry| Gem::Version.new((entry[:number] || entry["number"]).to_s) }
    -    next unless version
    +def simplecov_track_files_call_records(content)
    +  lines = content.to_s.lines
    +  ruby_call_records(content, :track_files).filter_map do |call|
    +    next unless call.receiver.nil?
     
    -    number = (version[:number] || version["number"]).to_s
    -    min_ruby = resolver.min_ruby_version(dependency.fetch(:name), number) ||
    -      resolver.parse_min_ruby(version[:ruby_version] || version["ruby_version"])
    -    next unless min_ruby && Gem::Version.new(min_ruby.to_s) > floor
    +    arguments = call.arguments&.location&.slice.to_s
    +    next if arguments.empty?
     
    -    dependency.merge(version: number, min_ruby: min_ruby.to_s)
    -  rescue
    -    nil
    +    end_line = ruby_node_source_end_line(call)
    +    {
    +      start_line: call.location.start_line,
    +      end_line: end_line,
    +      source: (lines[(call.location.start_line - 1)..(end_line - 1)] || []).join,
    +      arguments_source: arguments
    +    }
       end
    -  return if shunted.empty?
    -
    -  shunted_gemfile_managed_block(shunted)
    -rescue
    -  nil
     end
    +
    +
    + + + +
    +
    +
    + +

    Returns:

    +
      + +
    • + + + (Boolean) + + + +
    • + +
    + +
    @@ -48900,20 +64224,20 @@

     
     
    -10579
    -10580
    -10581
    -10582
    -10583
    -10584
    -10585
    -10586
    -10587
    -10588
    -10589
    +13354 +13355 +13356 +13357 +13358 +13359 +13360 +13361 +13362 +13363 +13364

     
     
    -3041
    -3042
    -3043
    -3044
    -3045
    -3046
    -3047
    -3048
    -3049
    -3050
    -3051
    -3052
    -3053
    -3054
    -3055
    +13366 +13367 +13368
    -
    # File 'lib/kettle/jem.rb', line 3041
    +      
    # File 'lib/kettle/jem.rb', line 13366
     
    -def shunted_gemfile_managed_block(dependencies)
    -  lines = [
    -    MANAGED_BLOCK_OPEN
    -  ]
    -  if dependencies.empty?
    -    lines << "# (no shunted dependencies)"
    -  else
    -    dependencies.sort_by { |dependency| dependency.fetch(:name) }.each do |dependency|
    -      requirement = dependency[:requirement].to_s.empty? ? "" : %(, "#{dependency.fetch(:requirement)}")
    -      lines << %(gem "#{dependency.fetch(:name)}"#{requirement} # ruby >= #{dependency.fetch(:min_ruby)})
    -    end
    -  end
    -  lines << MANAGED_BLOCK_CLOSE
    -  ensure_trailing_newline(lines.join("\n"))
    +def skip_disabled_integration_template?(target_path, config)
    +  disabled_integration_template_path?(target_path, config)
     end
    -
    # File 'lib/kettle/jem.rb', line 10579
    +      
    # File 'lib/kettle/jem.rb', line 13354
     
     def skip_packaged_gemfile_template?(target_path, config)
       return true if target_path.to_s.include?("gemfiles/modular/recording/") && !appraisal_recording_enabled?(config)
    @@ -48969,18 +64293,18 @@ 

     
     
    -10522
    -10523
    -10524
    -10525
    -10526
    -10527
    -10528
    -10529
    -10530
    +13299 +13300 +13301 +13302 +13303 +13304 +13305 +13306 +13307

    -
    # File 'lib/kettle/jem.rb', line 10522
    +      
    # File 'lib/kettle/jem.rb', line 13299
     
     def skip_packaged_license_template?(target_path, config)
       basename = managed_license_template_basename(target_path)
    @@ -49034,35 +64358,37 @@ 

     
     
    -10556
    -10557
    -10558
    -10559
    -10560
    -10561
    -10562
    -10563
    -10564
    -10565
    -10566
    -10567
    -10568
    -10569
    -10570
    -10571
    -10572
    -10573
    -10574
    -10575
    -10576
    -10577
    +13330 +13331 +13332 +13333 +13334 +13335 +13336 +13337 +13338 +13339 +13340 +13341 +13342 +13343 +13344 +13345 +13346 +13347 +13348 +13349 +13350 +13351 +13352

    -
    # File 'lib/kettle/jem.rb', line 10556
    +      
    # File 'lib/kettle/jem.rb', line 13330
     
     def skip_packaged_workflow_template?(target_path, config, include_patterns: nil)
       path = target_path.to_s
       return false unless path.start_with?(".github/workflows/")
    +  return true if disabled_integration_template_path?(path, config)
       return true if OPT_IN_GITHUB_WORKFLOWS.include?(path) && !selected_template_path?(path, Array(include_patterns))
     
       basename = File.basename(path, ".yml")
    @@ -49072,10 +64398,10 @@ 

    end min_ruby = config_test_min_ruby(config) - workflow_floor = ENGINE_WORKFLOW_RUBY_COMPATIBILITY_FLOORS[basename] + workflow_floor = Kettle::Rb::CompatMatrix.workflow_ruby_floor(basename) return true if workflow_floor && min_ruby && Gem::Version.new(workflow_floor) < min_ruby - engine = ENGINE_WORKFLOW_MAP[basename] + engine = Kettle::Rb::CompatMatrix.engine_workflow(basename) return true if engine && !enabled_ruby_engines(config).include?(engine) version = basename[/\Aruby-(\d+\.\d+)\z/, 1] @@ -49085,6 +64411,67 @@

    +
    + +
    +

    + + .skywalking_eyes_disabled_by_default?(config, license, disabled) ⇒ Boolean + + + + + +

    +
    + + + +
    +
    +
    + +

    Returns:

    +
      + +
    • + + + (Boolean) + + + +
    • + +
    + +
    + + + + +
    +
    +
    +
    +12583
    +12584
    +12585
    +12586
    +12587
    +12588
    +12589
    +
    +
    # File 'lib/kettle/jem.rb', line 12583
    +
    +def skywalking_eyes_disabled_by_default?(config, license, disabled)
    +  return false if disabled.include?(SKYWALKING_EYES_INTEGRATION)
    +  return false if explicit_integration_enabled?(config, SKYWALKING_EYES_INTEGRATION)
    +
    +  licenses = integration_license_spdx(config, license)
    +  !license_eye_compatible_licenses?(licenses)
    +end
    +
    @@ -49102,15 +64489,15 @@

     
     
    -3132
    -3133
    -3134
    -3135
    -3136
    -3137
    +3453 +3454 +3455 +3456 +3457 +3458

    -
    # File 'lib/kettle/jem.rb', line 3132
    +      
    # File 'lib/kettle/jem.rb', line 3453
     
     def snapshot_changed_files(project_root, changed_files)
       changed_files.to_h do |relative_path|
    @@ -49138,19 +64525,19 @@ 

     
     
    -8429
    -8430
    -8431
    -8432
    -8433
    -8434
    -8435
    -8436
    -8437
    -8438
    +10638 +10639 +10640 +10641 +10642 +10643 +10644 +10645 +10646 +10647

    -
    # File 'lib/kettle/jem.rb', line 8429
    +      
    # File 'lib/kettle/jem.rb', line 10638
     
     def social_facts(config, env)
       token_config = token_config_values(config)
    @@ -49182,17 +64569,17 @@ 

     
     
    -8444
    -8445
    -8446
    -8447
    -8448
    -8449
    -8450
    -8451
    +10653 +10654 +10655 +10656 +10657 +10658 +10659 +10660

    -
    # File 'lib/kettle/jem.rb', line 8444
    +      
    # File 'lib/kettle/jem.rb', line 10653
     
     def social_template_tokens(social)
       {
    @@ -49222,12 +64609,12 @@ 

     
     
    -8440
    -8441
    -8442
    +10649 +10650 +10651

    -
    # File 'lib/kettle/jem.rb', line 8440
    +      
    # File 'lib/kettle/jem.rb', line 10649
     
     def social_token_value(social_config, env, key)
       preferred_template_token_value(nil, social_config[key.to_s], env, SOCIAL_TOKEN_ENV_KEYS.fetch(key))
    @@ -49252,21 +64639,21 @@ 

     
     
    -6351
    -6352
    -6353
    -6354
    -6355
    -6356
    -6357
    -6358
    -6359
    -6360
    -6361
    -6362
    +8196 +8197 +8198 +8199 +8200 +8201 +8202 +8203 +8204 +8205 +8206 +8207

    -
    # File 'lib/kettle/jem.rb', line 6351
    +      
    # File 'lib/kettle/jem.rb', line 8196
     
     def sort_runtime_gemspec_dependency_lines(content, receiver:)
       records = gemspec_dependency_records(content, receiver: receiver).select do |record|
    @@ -49300,21 +64687,21 @@ 

     
     
    -4634
    -4635
    -4636
    -4637
    -4638
    -4639
    -4640
    -4641
    -4642
    -4643
    -4644
    -4645
    +5160 +5161 +5162 +5163 +5164 +5165 +5166 +5167 +5168 +5169 +5170 +5171

    -
    # File 'lib/kettle/jem.rb', line 4634
    +      
    # File 'lib/kettle/jem.rb', line 5160
     
     def source_blob_url(source_url, path)
       base = source_url.to_s.dup
    @@ -49334,47 +64721,248 @@ 

    -

    +

    + + .source_tree_url(source_url, path) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +11639
    +11640
    +11641
    +11642
    +11643
    +11644
    +11645
    +11646
    +11647
    +11648
    +11649
    +11650
    +
    +
    # File 'lib/kettle/jem.rb', line 11639
    +
    +def source_tree_url(source_url, path)
    +  base = source_url.to_s.dup
    +  base = base[0...-1] while base.end_with?("/")
    +  escaped_path = path.to_s.split("/").map { |segment| segment.split(" ").join("%20") }.join("/")
    +  if base.start_with?("https://gitlab.com/", "http://gitlab.com/")
    +    "#{base}/-/tree/main/#{escaped_path}"
    +  elsif base.start_with?("https://codeberg.org/", "http://codeberg.org/")
    +    "#{base}/src/branch/main/#{escaped_path}"
    +  else
    +    "#{base}/tree/main/#{escaped_path}"
    +  end
    +end
    +
    +
    + +
    +

    + + .spdx_basename(spdx_id) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +12259
    +12260
    +12261
    +
    +
    # File 'lib/kettle/jem.rb', line 12259
    +
    +def spdx_basename(spdx_id)
    +  spdx_id.to_s.sub(/\ALicenseRef-/, "")
    +end
    +
    +
    + +
    +

    + + .spdx_from_basename(basename) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +3685
    +3686
    +3687
    +3688
    +3689
    +
    +
    # File 'lib/kettle/jem.rb', line 3685
    +
    +def spdx_from_basename(basename)
    +  return "LicenseRef-Big-Time-Public-License" if basename.to_s == "Big-Time-Public-License"
    +
    +  basename.to_s
    +end
    +
    +
    + +
    +

    + + .spec_helper_simplecov_do_cov_bootstrap_source(indent) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +5687
    +5688
    +5689
    +5690
    +5691
    +5692
    +5693
    +5694
    +5695
    +
    +
    # File 'lib/kettle/jem.rb', line 5687
    +
    +def spec_helper_simplecov_do_cov_bootstrap_source(indent)
    +  [
    +    "#{indent}if Kettle::Soup::Cover::DO_COV\n",
    +    "#{indent}  require \"simplecov\" # Loads project-local .simplecov.\n",
    +    "#{indent}  require \"kettle/soup/cover/config\"\n",
    +    "#{indent}  SimpleCov.start\n",
    +    "#{indent}end\n"
    +  ].join
    +end
    +
    +
    + +
    +

    - .source_tree_url(source_url, path) ⇒ Object + .stale_generated_gemspec_files_group?(group) ⇒ Boolean -

    +
    +
    + + + +
    +
    +
    + +

    Returns:

    +
      + +
    • + + + (Boolean) + + + +
    • + +
    + +
    - + @@ -49382,29 +64970,64 @@

    -

    +

    - .spdx_basename(spdx_id) ⇒ Object + .stale_generated_gemspec_splat_key?(key) ⇒ Boolean -

     
     
    -9074
    -9075
    -9076
    -9077
    -9078
    -9079
    -9080
    -9081
    -9082
    -9083
    -9084
    -9085
    -
    -
    # File 'lib/kettle/jem.rb', line 9074
    -
    -def source_tree_url(source_url, path)
    -  base = source_url.to_s.dup
    -  base = base[0...-1] while base.end_with?("/")
    -  escaped_path = path.to_s.split("/").map { |segment| segment.split(" ").join("%20") }.join("/")
    -  if base.start_with?("https://gitlab.com/", "http://gitlab.com/")
    -    "#{base}/-/tree/main/#{escaped_path}"
    -  elsif base.start_with?("https://codeberg.org/", "http://codeberg.org/")
    -    "#{base}/src/branch/main/#{escaped_path}"
    -  else
    -    "#{base}/tree/main/#{escaped_path}"
    +7901
    +7902
    +7903
    +7904
    +7905
    +7906
    +7907
    +7908
    +7909
    +7910
    +7911
    +7912
    +7913
    +7914
    +7915
    +7916
    +7917
    +7918
    +7919
    +7920
    +7921
    +7922
    +7923
    +7924
    +
    +
    # File 'lib/kettle/jem.rb', line 7901
    +
    +def stale_generated_gemspec_files_group?(group)
    +  node = group.fetch(:node)
    +  if node.is_a?(::Prism::StringNode)
    +    path = node.unescaped.to_s
    +    basename = File.basename(path, ".md")
    +    return true if %w[
    +      CITATION.md
    +      CITATION.cff
    +      CODE_OF_CONDUCT.md
    +      CONTRIBUTING.md
    +      FUNDING.md
    +      RUBOCOP.md
    +      SECURITY.md
    +    ].include?(path)
    +    return true if path.end_with?(".md") && basename != "LICENSE" && known_license_template_basenames.include?(basename)
    +
    +    return false
       end
    +
    +  key = group.fetch(:key)
    +  return false unless key.is_a?(Array) && key.first == :splat
    +
    +  stale_generated_gemspec_splat_key?(key[1])
     end
    +
    +
    + + + +
    +
    +
    + +

    Returns:

    +
      + +
    • + + + (Boolean) + + + +
    • + +
    + +
    @@ -49412,9 +65035,9 @@

    -

    +

    - .spdx_from_basename(basename) ⇒ Object + .stale_github_workflow_template_pin_records(relative_path, final_content, destination_content) ⇒ Object @@ -49426,19 +65049,63 @@

     
     
    -3321
    -3322
    -3323
    -3324
    -3325
    +14433 +14434 +14435 +14436 +14437 +14438 +14439 +14440 +14441 +14442 +14443 +14444 +14445 +14446 +14447 +14448 +14449 +14450 +14451 +14452 +14453 +14454 +14455 +14456 +14457 +14458 +14459

    @@ -49483,18 +65150,18 @@

     
     
    -7538
    -7539
    -7540
    -7541
    -7542
    -7543
    -7544
    -7545
    -7546
    +9636 +9637 +9638 +9639 +9640 +9641 +9642 +9643 +9644

    @@ -49756,91 +65427,98 @@

     
     
    -7329
    -7330
    -7331
    -7332
    -7333
    -7334
    -7335
    -7336
    -7337
    -7338
    -7339
    -7340
    -7341
    -7342
    -7343
    -7344
    -7345
    -7346
    -7347
    -7348
    -7349
    -7350
    -7351
    -7352
    -7353
    -7354
    -7355
    -7356
    -7357
    -7358
    -7359
    -7360
    -7361
    -7362
    -7363
    -7364
    -7365
    -7366
    -7367
    -7368
    -7369
    -7370
    -7371
    -7372
    -7373
    -7374
    -7375
    -7376
    -7377
    -7378
    -7379
    -7380
    -7381
    -7382
    -7383
    -7384
    -7385
    -7386
    -7387
    -7388
    -7389
    -7390
    -7391
    -7392
    -7393
    -7394
    -7395
    -7396
    -7397
    -7398
    -7399
    -7400
    -7401
    -7402
    -7403
    -7404
    -7405
    -7406
    -7407
    -7408
    -7409
    -7410
    +9426 +9427 +9428 +9429 +9430 +9431 +9432 +9433 +9434 +9435 +9436 +9437 +9438 +9439 +9440 +9441 +9442 +9443 +9444 +9445 +9446 +9447 +9448 +9449 +9450 +9451 +9452 +9453 +9454 +9455 +9456 +9457 +9458 +9459 +9460 +9461 +9462 +9463 +9464 +9465 +9466 +9467 +9468 +9469 +9470 +9471 +9472 +9473 +9474 +9475 +9476 +9477 +9478 +9479 +9480 +9481 +9482 +9483 +9484 +9485 +9486 +9487 +9488 +9489 +9490 +9491 +9492 +9493 +9494 +9495 +9496 +9497 +9498 +9499 +9500 +9501 +9502 +9503 +9504 +9505 +9506 +9507 +9508 +9509 +9510 +9511 +9512 +9513 +9514

     
     
    -9637
    -9638
    -9639
    +7926 +7927 +7928 +7929 +7930 +7931 +7932 +7933 +7934
    -
    # File 'lib/kettle/jem.rb', line 9637
    +      
    # File 'lib/kettle/jem.rb', line 7926
     
    -def spdx_basename(spdx_id)
    -  spdx_id.to_s.sub(/\ALicenseRef-/, "")
    +def stale_generated_gemspec_splat_key?(key)
    +  return false unless key.is_a?(Array) && key.first == :call
    +
    +  receiver, method_name, arguments = key[1], key[2], Array(key[3])
    +  return true if receiver == "enumerate_package_files" && method_name == :call && %w[certs sig].include?(arguments.first.to_s)
    +  return true if receiver == "Dir" && method_name == :[] && arguments.first.to_s == "sig/**/*.rbs"
    +
    +  false
     end
    -
    # File 'lib/kettle/jem.rb', line 3321
    +      
    # File 'lib/kettle/jem.rb', line 14433
     
    -def spdx_from_basename(basename)
    -  return "LicenseRef-Big-Time-Public-License" if basename.to_s == "Big-Time-Public-License"
    +def stale_github_workflow_template_pin_records(relative_path, final_content, destination_content)
    +  destination_records = github_workflow_action_pin_records(destination_content)
    +  final_records = github_workflow_action_pin_records(final_content)
    +  canonical_records = github_actions_step_pins.values.flat_map do |pin|
    +    github_workflow_action_pin_records("uses: #{pin}\n")
    +  end
    +  return [] if destination_records.empty? || final_records.empty? || canonical_records.empty?
    +
    +  destination_by_key = destination_records.to_h { |record| [github_workflow_action_pin_key(record), record] }
    +  canonical_by_key = canonical_records.to_h { |record| [github_workflow_action_pin_key(record), record] }
    +  final_records.filter_map do |record|
    +    key = github_workflow_action_pin_key(record)
    +    destination = destination_by_key[key]
    +    canonical = canonical_by_key[key]
    +    next unless destination && canonical
    +    next unless destination.fetch(:sha) == record.fetch(:sha)
    +    next if canonical.fetch(:sha) == record.fetch(:sha)
     
    -  basename.to_s
    +    {
    +      path: relative_path.to_s,
    +      action: record.fetch(:action),
    +      version: record.fetch(:version),
    +      preserved_sha: record.fetch(:sha),
    +      template_sha: canonical.fetch(:sha)
    +    }
    +  end
     end
    -
    # File 'lib/kettle/jem.rb', line 7538
    +      
    # File 'lib/kettle/jem.rb', line 9636
     
     def stale_versioned_engine_workflow?(relative_path)
       return false if preferred_template_source(PACKAGED_TEMPLATE_ROOT, relative_path)
    @@ -49525,18 +65192,18 @@ 

     
     
    -5607
    -5608
    -5609
    -5610
    -5611
    -5612
    -5613
    -5614
    -5615
    +6823 +6824 +6825 +6826 +6827 +6828 +6829 +6830 +6831

    -
    # File 'lib/kettle/jem.rb', line 5607
    +      
    # File 'lib/kettle/jem.rb', line 6823
     
     def standard_test_appraisal_names(content)
       appraisal_call_records(content).filter_map do |record|
    @@ -49567,21 +65234,21 @@ 

     
     
    -8539
    -8540
    -8541
    -8542
    -8543
    -8544
    -8545
    -8546
    -8547
    -8548
    -8549
    -8550
    +10945 +10946 +10947 +10948 +10949 +10950 +10951 +10952 +10953 +10954 +10955 +10956

    -
    # File 'lib/kettle/jem.rb', line 8539
    +      
    # File 'lib/kettle/jem.rb', line 10945
     
     def (content, key)
       ruby_call_records(content, :[]=).each do |call|
    @@ -49638,19 +65305,19 @@ 

     
     
    -8552
    -8553
    -8554
    -8555
    -8556
    -8557
    -8558
    -8559
    -8560
    -8561
    +10958 +10959 +10960 +10961 +10962 +10963 +10964 +10965 +10966 +10967

    -
    # File 'lib/kettle/jem.rb', line 8552
    +      
    # File 'lib/kettle/jem.rb', line 10958
     
     def (content, key)
       ruby_call_records(content, :[]=).any? do |call|
    @@ -49682,34 +65349,36 @@ 

     
     
    -8509
    -8510
    -8511
    -8512
    -8513
    -8514
    -8515
    -8516
    -8517
    -8518
    -8519
    -8520
    -8521
    -8522
    -8523
    -8524
    -8525
    -8526
    -8527
    -8528
    -8529
    -8530
    -8531
    -8532
    -8533
    +10913 +10914 +10915 +10916 +10917 +10918 +10919 +10920 +10921 +10922 +10923 +10924 +10925 +10926 +10927 +10928 +10929 +10930 +10931 +10932 +10933 +10934 +10935 +10936 +10937 +10938 +10939

    -
    # File 'lib/kettle/jem.rb', line 8509
    +      
    # File 'lib/kettle/jem.rb', line 10913
     
     def (gemspec_path)
       return {} unless gemspec_path && File.file?(gemspec_path)
    @@ -49734,6 +65403,8 @@ 

    } static_source_code_uri = (content, "source_code_uri") [:source_code_uri] = static_source_code_uri if static_source_code_uri + static_homepage_uri = (content, "homepage_uri") + [:homepage_uri] = static_homepage_uri if static_homepage_uri end

    -
    # File 'lib/kettle/jem.rb', line 7329
    +      
    # File 'lib/kettle/jem.rb', line 9426
     
     def (recipe, deletion)
        = {
    @@ -49889,6 +65567,13 @@ 

    deleted_file: recipe.fetch(:target_path) ) end + if recipe.fetch(:primitive) == "supplied_shim_profile_file_deletion" + .merge!( + policy_kind: "delete_shim_profile_file", + operation: "delete", + deleted_file: recipe.fetch(:target_path) + ) + end if recipe.fetch(:primitive) == "supplied_template_source_preference" .merge!( policy_kind: "select_template_source", @@ -49944,12 +65629,12 @@

     
     
    -9969
    -9970
    -9971
    +12663 +12664 +12665

    -
    # File 'lib/kettle/jem.rb', line 9969
    +      
    # File 'lib/kettle/jem.rb', line 12663
     
     def stringify_template_tokens(tokens)
       tokens.to_h.transform_keys(&:to_s).transform_values(&:to_s)
    @@ -49974,19 +65659,19 @@ 

     
     
    -7136
    -7137
    -7138
    -7139
    -7140
    -7141
    -7142
    -7143
    -7144
    -7145
    +9230 +9231 +9232 +9233 +9234 +9235 +9236 +9237 +9238 +9239

    -
    # File 'lib/kettle/jem.rb', line 7136
    +      
    # File 'lib/kettle/jem.rb', line 9230
     
     def strip_leading_decorative_graphemes(text)
       remaining = text.to_s.sub(/\A\s+/, "")
    @@ -50018,19 +65703,19 @@ 

     
     
    -4189
    -4190
    -4191
    -4192
    -4193
    -4194
    -4195
    -4196
    -4197
    -4198
    +4702 +4703 +4704 +4705 +4706 +4707 +4708 +4709 +4710 +4711

    -
    # File 'lib/kettle/jem.rb', line 4189
    +      
    # File 'lib/kettle/jem.rb', line 4702
     
     def strip_orphaned_rake_task_requires(content)
       guarded_requires = %w[kettle/dev kettle/jem stone_checksums]
    @@ -50062,12 +65747,12 @@ 

     
     
    -10180
    -10181
    -10182
    +12891 +12892 +12893

    -
    # File 'lib/kettle/jem.rb', line 10180
    +      
    # File 'lib/kettle/jem.rb', line 12891
     
     def strip_readme_heading_adornment(text)
       text.to_s.sub(/\A(?:\d\uFE0F?\u20E3|[^[:alnum:][:space:]])+[ \t]*/u, "")
    @@ -50092,12 +65777,12 @@ 

    -6757 -6758 -6759

    +8710 +8711 +8712
    -
    # File 'lib/kettle/jem.rb', line 6757
    +      
    # File 'lib/kettle/jem.rb', line 8710
     
     def sync_kettle_config_documentation_comments(content)
       sync_readme_top_logos_documentation_comment(content)
    @@ -50122,25 +65807,25 @@ 

     
     
    -6703
    -6704
    -6705
    -6706
    -6707
    -6708
    -6709
    -6710
    -6711
    -6712
    -6713
    -6714
    +8612 +8613 +8614 +8615 +8616 +8617 +8618 +8619 +8620 +8621 +8622 +8623

    -
    # File 'lib/kettle/jem.rb', line 6703
    +      
    # File 'lib/kettle/jem.rb', line 8612
     
     def sync_kettle_config_env_overrides(content, env)
       synced = KETTLE_CONFIG_ENV_SYNC_PATHS.reduce(content.to_s) do |updated, (path, env_key)|
    -    value = env[env_key].to_s.strip
    +    value = env_sync_value(env, env_key)
         next updated unless present_template_token_value?(value)
     
         replace_yaml_scalar_path(updated, path, yaml_config_scalar_literal(value, path: path))
    @@ -50170,27 +65855,27 @@ 

    -3214 -3215 -3216 -3217 -3218 -3219 -3220 -3221 -3222 -3223 -3224 -3225 -3226 -3227 -3228 -3229 -3230 -3231

    +3578 +3579 +3580 +3581 +3582 +3583 +3584 +3585 +3586 +3587 +3588 +3589 +3590 +3591 +3592 +3593 +3594 +3595
    -
    # File 'lib/kettle/jem.rb', line 3214
    +      
    # File 'lib/kettle/jem.rb', line 3578
     
     def sync_kettle_config_gemspec_strategy_lines!(lines, gemspec_path, profile)
       gemspec = gemspec_path.to_s
    @@ -50230,14 +65915,14 @@ 

     
     
    -6716
    -6717
    -6718
    -6719
    -6720
    +8633 +8634 +8635 +8636 +8637

    -
    # File 'lib/kettle/jem.rb', line 6716
    +      
    # File 'lib/kettle/jem.rb', line 8633
     
     def sync_kettle_config_internal_values(content)
       KETTLE_CONFIG_INTERNAL_SYNC_PATHS.reduce(content.to_s) do |updated, (path, value_provider)|
    @@ -50250,57 +65935,57 @@ 

    -

    - - .sync_kettle_config_monorepo_subgem_profile(content, gemspec_path, profile) ⇒ Object - - - - - -

    - -
    -
    -
    -
    -3179
    -3180
    -3181
    -3182
    -3183
    -3184
    -3185
    -3186
    -3187
    -3188
    -3189
    -3190
    -3191
    -3192
    -3193
    -3194
    -3195
    -3196
    -3197
    -3198
    -3199
    -3200
    -3201
    -3202
    -3203
    -3204
    -3205
    -3206
    -3207
    -3208
    -3209
    -3210
    -3211
    -3212
    +

    + + .sync_kettle_config_monorepo_subgem_profile(content, gemspec_path, profile) ⇒ Object + + + + + +

    + +
    +
    +
    +
    +3543
    +3544
    +3545
    +3546
    +3547
    +3548
    +3549
    +3550
    +3551
    +3552
    +3553
    +3554
    +3555
    +3556
    +3557
    +3558
    +3559
    +3560
    +3561
    +3562
    +3563
    +3564
    +3565
    +3566
    +3567
    +3568
    +3569
    +3570
    +3571
    +3572
    +3573
    +3574
    +3575
    +3576
    -
    # File 'lib/kettle/jem.rb', line 3179
    +      
    # File 'lib/kettle/jem.rb', line 3543
     
     def sync_kettle_config_monorepo_subgem_profile(content, gemspec_path, profile)
       normalized_profile = normalize_template_profile(profile)
    @@ -50356,37 +66041,37 @@ 

    -6761 -6762 -6763 -6764 -6765 -6766 -6767 -6768 -6769 -6770 -6771 -6772 -6773 -6774 -6775 -6776 -6777 -6778 -6779 -6780 -6781 -6782 -6783 -6784 -6785 -6786 -6787 -6788

    +8714 +8715 +8716 +8717 +8718 +8719 +8720 +8721 +8722 +8723 +8724 +8725 +8726 +8727 +8728 +8729 +8730 +8731 +8732 +8733 +8734 +8735 +8736 +8737 +8738 +8739 +8740 +8741
    -
    # File 'lib/kettle/jem.rb', line 6761
    +      
    # File 'lib/kettle/jem.rb', line 8714
     
     def sync_readme_top_logos_documentation_comment(content)
       lines = content.to_s.lines
    @@ -50424,142 +66109,138 @@ 

    - .synchronize_github_actions_ci(_content, facts) ⇒ Object - - - - - -

    - - -
    -
    -
    -
    -11102
    -11103
    -11104
    -11105
    -11106
    -11107
    -11108
    -11109
    -11110
    -11111
    -11112
    -11113
    -11114
    -11115
    -11116
    -11117
    -11118
    -11119
    -11120
    -11121
    -11122
    -11123
    -11124
    -11125
    -11126
    -11127
    -11128
    -11129
    -11130
    -11131
    -11132
    -11133
    -11134
    -11135
    -11136
    -11137
    -11138
    -11139
    -11140
    -11141
    -11142
    -11143
    -11144
    -11145
    -11146
    -11147
    -11148
    -11149
    -11150
    -11151
    -11152
    -11153
    -11154
    -11155
    -11156
    -11157
    -11158
    -11159
    -11160
    -11161
    -
    -
    # File 'lib/kettle/jem.rb', line 11102
    -
    -def synchronize_github_actions_ci(_content, facts)
    +    .synchronize_github_actions_ci(content, facts)  ⇒ Object 
    +  
    +
    +  
    +
    +  
    +
    +  
    +    
    +    
    +
    +
    +
    +13913
    +13914
    +13915
    +13916
    +13917
    +13918
    +13919
    +13920
    +13921
    +13922
    +13923
    +13924
    +13925
    +13926
    +13927
    +13928
    +13929
    +13930
    +13931
    +13932
    +13933
    +13934
    +13935
    +13936
    +13937
    +13938
    +13939
    +13940
    +13941
    +13942
    +13943
    +13944
    +13945
    +13946
    +13947
    +13948
    +13949
    +13950
    +13951
    +13952
    +13953
    +13954
    +13955
    +13956
    +13957
    +13958
    +13959
    +13960
    +13961
    +13962
    +13963
    +13964
    +13965
    +13966
    +13967
    +13968
    +13969
    +13970
    +
    +
    # File 'lib/kettle/jem.rb', line 13913
    +
    +def synchronize_github_actions_ci(content, facts)
       package = facts.fetch(:package)
       ci = facts.fetch(:ci)
       ruby_versions = ci.fetch(:ruby_versions)
    -  ruby_matrix = ruby_versions.map { |version| "          - \"#{version}\"" }.join("\n")
    -
    -  <<~YAML
    -    name: CI
    -
    -    permissions:
    -      contents: read
    -
    -    on:
    -      push:
    -        branches:
    -          - "#{ci.fetch(:default_branch)}"
    -          - "*-stable"
    -        tags:
    -          - "!*" # Do not execute on tags
    -      pull_request:
    -        branches:
    -          - "*"
    -      workflow_dispatch:
    -
    -    concurrency:
    -      group: "${{ github.workflow }}-${{ github.ref }}"
    -      cancel-in-progress: true
    -
    -    jobs:
    -      test:
    -        if: "!contains(github.event.commits[0].message, '[ci skip]') && !contains(github.event.commits[0].message, '[skip ci]')"
    -        name: Specs ${{ matrix.ruby }}
    -        runs-on: ubuntu-latest
    -        continue-on-error: ${{ endsWith(matrix.ruby, 'head') }}
    -        strategy:
    -          fail-fast: false
    -          matrix:
    -            ruby:
    -    #{ruby_matrix}
    -            rubygems:
    -              - default
    -            bundler:
    -              - default
    -
    -        steps:
    -          - name: Checkout #{package.fetch(:name)}
    -            uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
    -
    -          - name: Setup Ruby & RubyGems
    -            uses: ruby/setup-ruby@89f90524b88a01fe6e0b732220432cc6142926af # v1.313.0
    -            with:
    -              ruby-version: "${{ matrix.ruby }}"
    -              rubygems: "${{ matrix.rubygems }}"
    -              bundler: "${{ matrix.bundler }}"
    -              bundler-cache: true
    -
    -          - name: Tests
    -            run: bundle exec #{ci.fetch(:exec_cmd)}
    -  YAML
    -end
    + lines = [ + "name: CI", + "", + "permissions:", + " contents: read", + "", + "on:", + " push:", + " branches:", + *github_actions_push_branches_yaml(content, default_branch: ci.fetch(:default_branch), indent: " ").lines(chomp: true), + " tags:", + " - \"!*\" # Do not execute on tags", + " pull_request:", + " branches:", + " - \"*\"", + " workflow_dispatch:", + "", + "concurrency:", + " group: \"${{ github.workflow }}-${{ github.ref }}\"", + " cancel-in-progress: true", + "", + "jobs:", + " test:", + " if: \"!contains(github.event.commits[0].message, '[ci skip]') && !contains(github.event.commits[0].message, '[skip ci]')\"", + " name: Specs ${{ matrix.ruby }}", + " runs-on: ubuntu-latest", + " continue-on-error: ${{ endsWith(matrix.ruby, 'head') }}", + " strategy:", + " fail-fast: false", + " matrix:", + " ruby:", + *ruby_versions.map { |version| " - \"#{version}\"" }, + " rubygems:", + " - default", + " bundler:", + " - default", + "", + " steps:", + " - name: Checkout #{package.fetch(:name)}", + " uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0", + "", + *github_actions_setup_ruby_steps(indent: " ").lines(chomp: true), + "", + *github_actions_rspec_status_cache_step( + cache_scope: "ci", + key_parts: ["${{matrix.ruby}}"], + indent: " " + ).lines(chomp: true), + "", + " - name: Tests", + " run: bundle exec #{ci.fetch(:exec_cmd)}" + ] + "#{lines.join("\n")}\n" +end
    @@ -50568,194 +66249,208 @@

    - .synchronize_github_actions_coverage_ci(_content, facts) ⇒ Object - - - - - -

    - - -
    -
    -
    -
    -11265
    -11266
    -11267
    -11268
    -11269
    -11270
    -11271
    -11272
    -11273
    -11274
    -11275
    -11276
    -11277
    -11278
    -11279
    -11280
    -11281
    -11282
    -11283
    -11284
    -11285
    -11286
    -11287
    -11288
    -11289
    -11290
    -11291
    -11292
    -11293
    -11294
    -11295
    -11296
    -11297
    -11298
    -11299
    -11300
    -11301
    -11302
    -11303
    -11304
    -11305
    -11306
    -11307
    -11308
    -11309
    -11310
    -11311
    -11312
    -11313
    -11314
    -11315
    -11316
    -11317
    -11318
    -11319
    -11320
    -11321
    -11322
    -11323
    -11324
    -11325
    -11326
    -11327
    -11328
    -11329
    -11330
    -11331
    -11332
    -11333
    -11334
    -11335
    -11336
    -11337
    -11338
    -11339
    -11340
    -11341
    -11342
    -11343
    -11344
    -11345
    -11346
    -11347
    -11348
    -11349
    -11350
    -
    -
    # File 'lib/kettle/jem.rb', line 11265
    -
    -def synchronize_github_actions_coverage_ci(_content, facts)
    +    .synchronize_github_actions_coverage_ci(content, facts)  ⇒ Object 
    +  
    +
    +  
    +
    +  
    +
    +  
    +    
    +    
    +
    +
    +
    +14107
    +14108
    +14109
    +14110
    +14111
    +14112
    +14113
    +14114
    +14115
    +14116
    +14117
    +14118
    +14119
    +14120
    +14121
    +14122
    +14123
    +14124
    +14125
    +14126
    +14127
    +14128
    +14129
    +14130
    +14131
    +14132
    +14133
    +14134
    +14135
    +14136
    +14137
    +14138
    +14139
    +14140
    +14141
    +14142
    +14143
    +14144
    +14145
    +14146
    +14147
    +14148
    +14149
    +14150
    +14151
    +14152
    +14153
    +14154
    +14155
    +14156
    +14157
    +14158
    +14159
    +14160
    +14161
    +14162
    +14163
    +14164
    +14165
    +14166
    +14167
    +14168
    +14169
    +14170
    +14171
    +14172
    +14173
    +14174
    +14175
    +14176
    +14177
    +14178
    +14179
    +14180
    +14181
    +14182
    +14183
    +14184
    +14185
    +14186
    +14187
    +14188
    +14189
    +14190
    +14191
    +14192
    +14193
    +14194
    +14195
    +14196
    +14197
    +14198
    +14199
    +
    +
    # File 'lib/kettle/jem.rb', line 14107
    +
    +def synchronize_github_actions_coverage_ci(content, facts)
       ci = facts.fetch(:ci)
       coverage = ci.fetch(:coverage)
    -  <<~YAML
    -    name: Test Coverage
    -
    -    permissions:
    -      contents: read
    -      pull-requests: write
    -      id-token: write
    -
    -    env:
    -      K_SOUP_COV_MIN_BRANCH: 100
    -      K_SOUP_COV_MIN_LINE: 100
    -      K_SOUP_COV_MIN_HARD: true
    -      K_SOUP_COV_FORMATTERS: "xml,rcov,lcov,tty"
    -      K_SOUP_COV_DO: true
    -      K_SOUP_COV_MULTI_FORMATTERS: true
    -      K_SOUP_COV_COMMAND_NAME: "Test Coverage"
    -
    -    on:
    -      push:
    -        branches:
    -          - "#{ci.fetch(:default_branch)}"
    -          - "*-stable"
    -        tags:
    -          - "!*" # Do not execute on tags
    -      pull_request:
    -        branches:
    -          - "*"
    -      workflow_dispatch:
    -
    -    concurrency:
    -      group: "${{ github.workflow }}-${{ github.ref }}"
    -      cancel-in-progress: true
    -
    -    jobs:
    -      coverage:
    -        if: "!contains(github.event.commits[0].message, '[ci skip]') && !contains(github.event.commits[0].message, '[skip ci]')"
    -        name: Code Coverage on ${{ matrix.ruby }}@current
    -        runs-on: ubuntu-latest
    -        continue-on-error: ${{ matrix.experimental || endsWith(matrix.ruby, 'head') }}
    -        env:
    -          BUNDLE_GEMFILE: ${{ github.workspace }}/Appraisal.root.gemfile
    -        strategy:
    -          fail-fast: false
    -          matrix:
    -            include:
    -              - ruby: "ruby"
    -                appraisal: "#{coverage.fetch(:appraisal)}"
    -                exec_cmd: "#{coverage.fetch(:command)}"
    -                rubygems: latest
    -                bundler: latest
    -
    -        steps:
    -          - name: Checkout
    -            uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
    -
    -          - name: Setup Ruby & RubyGems
    -            uses: ruby/setup-ruby@89f90524b88a01fe6e0b732220432cc6142926af # v1.313.0
    -            with:
    -              ruby-version: "${{ matrix.ruby }}"
    -              rubygems: "${{ matrix.rubygems }}"
    -              bundler: "${{ matrix.bundler }}"
    -              bundler-cache: true
    -
    -          - name: "[Attempt 1] Appraisal for ${{ matrix.ruby }}@${{ matrix.appraisal }}"
    -            id: bundleAppraisalAttempt1
    -            run: bundle exec appraisal ${{ matrix.appraisal }} install
    -            continue-on-error: true
    -
    -          - name: "[Attempt 2] Appraisal for ${{ matrix.ruby }}@${{ matrix.appraisal }}"
    -            id: bundleAppraisalAttempt2
    -            if: ${{ steps.bundleAppraisalAttempt1.outcome == 'failure' }}
    -            run: bundle exec appraisal ${{ matrix.appraisal }} install
    -
    -          - name: Tests for ${{ matrix.ruby }}@current via ${{ matrix.exec_cmd }}
    -            run: bundle exec appraisal ${{ matrix.appraisal }} bundle exec ${{ matrix.exec_cmd }}
    -
    -          - name: Verify coverage reports
    -            run: |
    -              test -s coverage/lcov.info
    -              test -s coverage/coverage.xml
    -    #{github_actions_coverage_steps}
    -  YAML
    -end
    + coverage_steps = github_actions_coverage_steps(disabled_integrations: facts.dig(:integrations, :disabled)) + lines = [ + "name: Test Coverage", + "", + "permissions:", + " contents: read", + " pull-requests: write", + " id-token: write", + "", + "env:", + " K_SOUP_COV_MIN_BRANCH: 100", + " K_SOUP_COV_MIN_LINE: 100", + " K_SOUP_COV_MIN_HARD: true", + " K_SOUP_COV_FORMATTERS: \"xml,rcov,lcov,tty\"", + " K_SOUP_COV_DO: true", + " K_SOUP_COV_MULTI_FORMATTERS: true", + " K_SOUP_COV_COMMAND_NAME: \"Test Coverage\"", + "", + "on:", + " push:", + " branches:", + *github_actions_push_branches_yaml(content, default_branch: ci.fetch(:default_branch), indent: " ").lines(chomp: true), + " tags:", + " - \"!*\" # Do not execute on tags", + " pull_request:", + " branches:", + " - \"*\"", + " workflow_dispatch:", + "", + "concurrency:", + " group: \"${{ github.workflow }}-${{ github.ref }}\"", + " cancel-in-progress: true", + "", + "jobs:", + " coverage:", + " if: \"!contains(github.event.commits[0].message, '[ci skip]') && !contains(github.event.commits[0].message, '[skip ci]')\"", + " name: Code Coverage on ${{ matrix.ruby }}@current", + " runs-on: ubuntu-latest", + " continue-on-error: ${{ matrix.experimental || endsWith(matrix.ruby, 'head') }}", + " env:", + " BUNDLE_GEMFILE: ${{ github.workspace }}/Appraisal.root.gemfile", + " strategy:", + " fail-fast: false", + " matrix:", + " include:", + " - ruby: \"ruby\"", + " appraisal: \"#{coverage.fetch(:appraisal)}\"", + " exec_cmd: \"#{coverage.fetch(:command)}\"", + " rubygems: latest", + " bundler: latest", + "", + " steps:", + " - name: Checkout", + " uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0", + "", + " - name: Setup Ruby & RubyGems", + " uses: ruby/setup-ruby@003a5c4d8d6321bd302e38f6f0ec593f77f06600 # v1.319.0", + " with:", + " ruby-version: \"${{ matrix.ruby }}\"", + " rubygems: \"${{ matrix.rubygems }}\"", + " bundler: \"${{ matrix.bundler }}\"", + " bundler-cache: true", + "", + " - name: \"[Attempt 1] Appraisal for ${{ matrix.ruby }}@${{ matrix.appraisal }}\"", + " id: bundleAppraisalAttempt1", + " run: bundle exec appraisal ${{ matrix.appraisal }} install", + " continue-on-error: true", + "", + " - name: \"[Attempt 2] Appraisal for ${{ matrix.ruby }}@${{ matrix.appraisal }}\"", + " id: bundleAppraisalAttempt2", + " if: ${{ steps.bundleAppraisalAttempt1.outcome == 'failure' }}", + " run: bundle exec appraisal ${{ matrix.appraisal }} install", + "", + *github_actions_rspec_status_cache_step( + cache_scope: "coverage", + key_parts: ["${{matrix.ruby}}", "${{matrix.appraisal}}"], + indent: " " + ).lines(chomp: true), + "", + " - name: Tests for ${{ matrix.ruby }}@current via ${{ matrix.exec_cmd }}", + " run: bundle exec appraisal ${{ matrix.appraisal }} bundle exec ${{ matrix.exec_cmd }}", + "", + " - name: Verify coverage reports", + " run: |", + " test -s coverage/lcov.info", + " test -s coverage/coverage.xml", + *coverage_steps.lines(chomp: true).map { |line| line.empty? ? line : " #{line}" } + ] + "#{lines.join("\n")}\n" +end
    @@ -50764,184 +66459,180 @@

    - .synchronize_github_actions_framework_ci(_content, facts) ⇒ Object - - - - - -

    - - - @@ -51342,14 +67033,14 @@

     
     
    -10646
    -10647
    -10648
    -10649
    -10650
    +13444 +13445 +13446 +13447 +13448

    @@ -52049,27 +67770,29 @@

     
     
    -7165
    -7166
    -7167
    -7168
    -7169
    -7170
    -7171
    -7172
    -7173
    -7174
    -7175
    -7176
    -7177
    -7178
    -7179
    -7180
    -7181
    -7182
    +9259 +9260 +9261 +9262 +9263 +9264 +9265 +9266 +9267 +9268 +9269 +9270 +9271 +9272 +9273 +9274 +9275 +9276 +9277 +9278

    - + - +
    -
    -
    -
    -11163
    -11164
    -11165
    -11166
    -11167
    -11168
    -11169
    -11170
    -11171
    -11172
    -11173
    -11174
    -11175
    -11176
    -11177
    -11178
    -11179
    -11180
    -11181
    -11182
    -11183
    -11184
    -11185
    -11186
    -11187
    -11188
    -11189
    -11190
    -11191
    -11192
    -11193
    -11194
    -11195
    -11196
    -11197
    -11198
    -11199
    -11200
    -11201
    -11202
    -11203
    -11204
    -11205
    -11206
    -11207
    -11208
    -11209
    -11210
    -11211
    -11212
    -11213
    -11214
    -11215
    -11216
    -11217
    -11218
    -11219
    -11220
    -11221
    -11222
    -11223
    -11224
    -11225
    -11226
    -11227
    -11228
    -11229
    -11230
    -11231
    -11232
    -11233
    -11234
    -11235
    -11236
    -11237
    -11238
    -11239
    -11240
    -11241
    -11242
    -11243
    -
    -
    # File 'lib/kettle/jem.rb', line 11163
    -
    -def synchronize_github_actions_framework_ci(_content, facts)
    +    .synchronize_github_actions_framework_ci(content, facts)  ⇒ Object 
    +  
    +
    +  
    +
    +  
    +
    +  
    +    
    +    
    +
    +
    +
    +13972
    +13973
    +13974
    +13975
    +13976
    +13977
    +13978
    +13979
    +13980
    +13981
    +13982
    +13983
    +13984
    +13985
    +13986
    +13987
    +13988
    +13989
    +13990
    +13991
    +13992
    +13993
    +13994
    +13995
    +13996
    +13997
    +13998
    +13999
    +14000
    +14001
    +14002
    +14003
    +14004
    +14005
    +14006
    +14007
    +14008
    +14009
    +14010
    +14011
    +14012
    +14013
    +14014
    +14015
    +14016
    +14017
    +14018
    +14019
    +14020
    +14021
    +14022
    +14023
    +14024
    +14025
    +14026
    +14027
    +14028
    +14029
    +14030
    +14031
    +14032
    +14033
    +14034
    +14035
    +14036
    +14037
    +14038
    +14039
    +14040
    +14041
    +14042
    +14043
    +14044
    +14045
    +14046
    +14047
    +14048
    +14049
    +14050
    +
    +
    # File 'lib/kettle/jem.rb', line 13972
    +
    +def synchronize_github_actions_framework_ci(content, facts)
       ci = facts.fetch(:ci)
       framework_matrix = ci.fetch(:framework_matrix)
    -  ruby_matrix = ci.fetch(:ruby_versions).map { |version| "          - \"#{version}\"" }.join("\n")
    -  framework_axis = framework_matrix.fetch(:include).map do |entry|
    +  dimension = framework_matrix.fetch(:dimension)
    +  label = dimension.split(/[-_]/).map { |part| part[0].to_s.upcase + part[1..].to_s }.join(" ")
    +  framework_axis = framework_matrix.fetch(:include).flat_map do |entry|
         [
           "          - framework_version: \"#{entry.fetch(:framework_version)}\"",
           "            appraisal: \"#{entry.fetch(:appraisal)}\""
    -    ].join("\n")
    -  end.join("\n")
    -  dimension = framework_matrix.fetch(:dimension)
    -  label = dimension.split(/[-_]/).map { |part| part[0].to_s.upcase + part[1..].to_s }.join(" ")
    -
    -  <<~YAML
    -    name: #{label} CI
    -
    -    permissions:
    -      contents: read
    -
    -    on:
    -      push:
    -        branches:
    -          - "#{ci.fetch(:default_branch)}"
    -          - "*-stable"
    -        tags:
    -          - "!*" # Do not execute on tags
    -      pull_request:
    -        branches:
    -          - "*"
    -      workflow_dispatch:
    -
    -    concurrency:
    -      group: "${{ github.workflow }}-${{ github.ref }}"
    -      cancel-in-progress: true
    -
    -    jobs:
    -      test:
    -        if: "!contains(github.event.commits[0].message, '[ci skip]') && !contains(github.event.commits[0].message, '[skip ci]')"
    -        name: Specs ${{ matrix.ruby }}@${{ matrix.framework.framework_version }}
    -        runs-on: ubuntu-latest
    -        continue-on-error: ${{ endsWith(matrix.ruby, 'head') }}
    -        env:
    -          BUNDLE_GEMFILE: ${{ github.workspace }}/Appraisal.root.gemfile
    -        strategy:
    -          fail-fast: false
    -          matrix:
    -            ruby:
    -    #{ruby_matrix}
    -            rubygems:
    -              - default
    -            bundler:
    -              - default
    -            framework:
    -    #{framework_axis}
    -
    -        steps:
    -          - name: Checkout
    -            uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
    -
    -          - name: Setup Ruby & RubyGems
    -            uses: ruby/setup-ruby@89f90524b88a01fe6e0b732220432cc6142926af # v1.313.0
    -            with:
    -              ruby-version: "${{ matrix.ruby }}"
    -              rubygems: "${{ matrix.rubygems }}"
    -              bundler: "${{ matrix.bundler }}"
    -              bundler-cache: true
    -
    -          - name: "[Attempt 1] Appraisal for ${{ matrix.ruby }}@${{ matrix.framework.framework_version }}"
    -            id: bundleAppraisalAttempt1
    -            run: bundle exec appraisal ${{ matrix.framework.appraisal }} install
    -            continue-on-error: true
    -
    -          - name: "[Attempt 2] Appraisal for ${{ matrix.ruby }}@${{ matrix.framework.framework_version }}"
    -            id: bundleAppraisalAttempt2
    -            if: ${{ steps.bundleAppraisalAttempt1.outcome == 'failure' }}
    -            run: bundle exec appraisal ${{ matrix.framework.appraisal }} install
    -
    -          - name: Tests for ${{ matrix.ruby }}@${{ matrix.framework.framework_version }}
    -            run: bundle exec appraisal ${{ matrix.framework.appraisal }} bundle exec #{ci.fetch(:exec_cmd)}
    -  YAML
    -end
    + ] + end + lines = [ + "name: #{label} CI", + "", + "permissions:", + " contents: read", + "", + "on:", + " push:", + " branches:", + *github_actions_push_branches_yaml(content, default_branch: ci.fetch(:default_branch), indent: " ").lines(chomp: true), + " tags:", + " - \"!*\" # Do not execute on tags", + " pull_request:", + " branches:", + " - \"*\"", + " workflow_dispatch:", + "", + "concurrency:", + " group: \"${{ github.workflow }}-${{ github.ref }}\"", + " cancel-in-progress: true", + "", + "jobs:", + " test:", + " if: \"!contains(github.event.commits[0].message, '[ci skip]') && !contains(github.event.commits[0].message, '[skip ci]')\"", + " name: Specs ${{ matrix.ruby }}@${{ matrix.framework.framework_version }}", + " runs-on: ubuntu-latest", + " continue-on-error: ${{ endsWith(matrix.ruby, 'head') }}", + " env:", + " BUNDLE_GEMFILE: ${{ github.workspace }}/Appraisal.root.gemfile", + " strategy:", + " fail-fast: false", + " matrix:", + " ruby:", + *ci.fetch(:ruby_versions).map { |version| " - \"#{version}\"" }, + " rubygems:", + " - default", + " bundler:", + " - default", + " framework:", + *framework_axis, + "", + " steps:", + " - name: Checkout", + " uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0", + "", + *github_actions_setup_ruby_steps(indent: " ").lines(chomp: true), + "", + " - name: \"[Attempt 1] Appraisal for ${{ matrix.ruby }}@${{ matrix.framework.framework_version }}\"", + " id: bundleAppraisalAttempt1", + " run: bundle exec appraisal ${{ matrix.framework.appraisal }} install", + " continue-on-error: true", + "", + " - name: \"[Attempt 2] Appraisal for ${{ matrix.ruby }}@${{ matrix.framework.framework_version }}\"", + " id: bundleAppraisalAttempt2", + " if: ${{ steps.bundleAppraisalAttempt1.outcome == 'failure' }}", + " run: bundle exec appraisal ${{ matrix.framework.appraisal }} install", + "", + *github_actions_rspec_status_cache_step( + cache_scope: "framework-ci", + key_parts: ["${{matrix.ruby}}", "${{matrix.framework.appraisal}}"], + indent: " " + ).lines(chomp: true), + "", + " - name: Tests for ${{ matrix.ruby }}@${{ matrix.framework.framework_version }}", + " run: bundle exec appraisal ${{ matrix.framework.appraisal }} bundle exec #{ci.fetch(:exec_cmd)}" + ] + "#{lines.join("\n")}\n" +end
    @@ -50985,28 +66676,28 @@

    -11245 -11246 -11247 -11248 -11249 -11250 -11251 -11252 -11253 -11254 -11255 -11256 -11257 -11258 -11259 -11260 -11261 -11262 -11263

    +14087 +14088 +14089 +14090 +14091 +14092 +14093 +14094 +14095 +14096 +14097 +14098 +14099 +14100 +14101 +14102 +14103 +14104 +14105
    -
    # File 'lib/kettle/jem.rb', line 11245
    +      
    # File 'lib/kettle/jem.rb', line 14087
     
     def synchronize_github_actions_framework_gemfile(target_path, facts)
       gemfile = facts.dig(:ci, :framework_matrix, :gemfiles).to_a.find do |entry|
    @@ -51035,7 +66726,7 @@ 

    - .synchronize_github_actions_workflow_snippets(content) ⇒ Object + .synchronize_github_actions_workflow_snippets(content, facts: {}) ⇒ Object @@ -51047,27 +66738,27 @@

    -11352 -11353 -11354 -11355 -11356 -11357 -11358 -11359 -11360 -11361 -11362 -11363 -11364 -11365 -11366 -11367

    +14201 +14202 +14203 +14204 +14205 +14206 +14207 +14208 +14209 +14210 +14211 +14212 +14213 +14214 +14215 +14216
    -
    # File 'lib/kettle/jem.rb', line 11352
    +      
    # File 'lib/kettle/jem.rb', line 14201
     
    -def synchronize_github_actions_workflow_snippets(content)
    +def synchronize_github_actions_workflow_snippets(content, facts: {})
       updated = ensure_workflow_top_level_section(
         content.to_s,
         "permissions",
    @@ -51080,7 +66771,7 @@ 

     
     
    -10920
    -10921
    -10922
    -10923
    -10924
    -10925
    -10926
    -10927
    -10928
    -10929
    -10930
    -10931
    +13731 +13732 +13733 +13734 +13735 +13736 +13737 +13738 +13739 +13740 +13741 +13742

    -
    # File 'lib/kettle/jem.rb', line 10920
    +      
    # File 'lib/kettle/jem.rb', line 13731
     
     def synchronize_github_funding_yml(content, facts)
       output = content.to_s
    @@ -51151,19 +66842,19 @@ 

     
     
    -3831
    -3832
    -3833
    -3834
    -3835
    -3836
    -3837
    -3838
    -3839
    -3840
    +4296 +4297 +4298 +4299 +4300 +4301 +4302 +4303 +4304 +4305

    -
    # File 'lib/kettle/jem.rb', line 3831
    +      
    # File 'lib/kettle/jem.rb', line 4296
     
     def synchronize_managed_block(content, facts)
       replacement = facts.dig(:generated_blocks, :shunted_gemfile) || [
    @@ -51195,23 +66886,23 @@ 

     
     
    -3631
    -3632
    -3633
    -3634
    -3635
    -3636
    -3637
    -3638
    -3639
    -3640
    -3641
    -3642
    -3643
    -3644
    +4017 +4018 +4019 +4020 +4021 +4022 +4023 +4024 +4025 +4026 +4027 +4028 +4029 +4030

    -
    # File 'lib/kettle/jem.rb', line 3631
    +      
    # File 'lib/kettle/jem.rb', line 4017
     
     def synchronize_readme(content, facts, project_root: nil)
       package = facts.fetch(:package)
    @@ -51247,15 +66938,15 @@ 

     
     
    -10216
    -10217
    -10218
    -10219
    -10220
    -10221
    +12947 +12948 +12949 +12950 +12951 +12952

    -
    # File 'lib/kettle/jem.rb', line 10216
    +      
    # File 'lib/kettle/jem.rb', line 12947
     
     def template_activation_config(config)
       return config["templates"] if config["templates"].is_a?(Hash)
    @@ -51283,21 +66974,21 @@ 

     
     
    -10229
    -10230
    -10231
    -10232
    -10233
    -10234
    +12960 +12961 +12962 +12963 +12964 +12965

    -
    # File 'lib/kettle/jem.rb', line 10229
    +      
    # File 'lib/kettle/jem.rb', line 12960
     
     def template_entries(project_root, root, templates)
       return templates["entries"] if templates["entries"].is_a?(Array)
       return [] if templates.key?("entries")
     
    -  template_inventory_entries(project_root, root.fetch(:path))
    +  template_inventory_entries(project_root, root.fetch(:path), templates: templates)
     end
    -
    # File 'lib/kettle/jem.rb', line 10646
    +      
    # File 'lib/kettle/jem.rb', line 13444
     
     def template_entry_apply?(entry, apply_templates)
       return entry["apply"] == true if entry.is_a?(Hash) && entry.key?("apply")
    @@ -51376,19 +67067,19 @@ 

     
     
    -10635
    -10636
    -10637
    -10638
    -10639
    -10640
    -10641
    -10642
    -10643
    -10644
    +13433 +13434 +13435 +13436 +13437 +13438 +13439 +13440 +13441 +13442

    -
    # File 'lib/kettle/jem.rb', line 10635
    +      
    # File 'lib/kettle/jem.rb', line 13433
     
     def template_entry_paths(entry)
       if entry.is_a?(Hash)
    @@ -51420,30 +67111,34 @@ 

     
     
    -10435
    -10436
    -10437
    -10438
    -10439
    -10440
    -10441
    -10442
    -10443
    -10444
    -10445
    -10446
    -10447
    -10448
    +13210 +13211 +13212 +13213 +13214 +13215 +13216 +13217 +13218 +13219 +13220 +13221 +13222 +13223 +13224 +13225

    -
    # File 'lib/kettle/jem.rb', line 10435
    +      
    # File 'lib/kettle/jem.rb', line 13210
     
     def template_file_strategy_config(config, target_path)
       files = config["files"]
       return unless files.is_a?(Hash)
     
       current = files
    -  target_path.to_s.delete_prefix("./").split("/").each do |part|
    +  parts = target_path.to_s.delete_prefix("./").split("/")
    +  until parts.empty?
    +    part = parts.shift
         return unless current.is_a?(Hash) && current.key?(part)
     
         current = current[part]
    @@ -51472,33 +67167,33 @@ 

     
     
    -6624
    -6625
    -6626
    -6627
    -6628
    -6629
    -6630
    -6631
    -6632
    -6633
    -6634
    -6635
    -6636
    -6637
    -6638
    -6639
    -6640
    -6641
    -6642
    -6643
    -6644
    -6645
    -6646
    -6647
    +8532 +8533 +8534 +8535 +8536 +8537 +8538 +8539 +8540 +8541 +8542 +8543 +8544 +8545 +8546 +8547 +8548 +8549 +8550 +8551 +8552 +8553 +8554 +8555

    -
    # File 'lib/kettle/jem.rb', line 6624
    +      
    # File 'lib/kettle/jem.rb', line 8532
     
     def template_file_type(recipe)
       configured = recipe.dig(:template_preference, :file_type).to_s
    @@ -51532,7 +67227,7 @@ 

    - .template_inventory_entries(project_root, template_root_path) ⇒ Object + .template_inventory_entries(project_root, template_root_path, templates: {}) ⇒ Object @@ -51544,36 +67239,40 @@

     
     
    -10236
    -10237
    -10238
    -10239
    -10240
    -10241
    -10242
    -10243
    -10244
    -10245
    -10246
    -10247
    -10248
    -10249
    -10250
    -10251
    -10252
    -10253
    -10254
    -10255
    -10256
    -10257
    -10258
    -10259
    +12984 +12985 +12986 +12987 +12988 +12989 +12990 +12991 +12992 +12993 +12994 +12995 +12996 +12997 +12998 +12999 +13000 +13001 +13002 +13003 +13004 +13005 +13006 +13007 +13008 +13009 +13010

    -
    # File 'lib/kettle/jem.rb', line 10236
    +      
    # File 'lib/kettle/jem.rb', line 12984
     
    -def template_inventory_entries(project_root, template_root_path)
    +def template_inventory_entries(project_root, template_root_path, templates: {})
       logical_paths = []
    +  include_shim_templates = normalize_template_profile(templates["profile"]) == SHIM_TEMPLATE_PROFILE
       Find.find(template_root_path) do |path|
         next if File.directory?(path)
     
    @@ -51582,7 +67281,9 @@ 

    .sub(/\.no-osc\.example\z/, "") .sub(/\.example\z/, "") next if logical_path.start_with?("readme/partials/") + next if logical_path.start_with?("shim/") && !include_shim_templates next if logical_path == "gemfiles/modular/shunted.gemfile" + next if logical_path == TRANSFER_CHANGELOG_TEMPLATE_PATH logical_paths << logical_path unless logical_path.empty? end @@ -51616,24 +67317,24 @@

     
     
    -10261
    -10262
    -10263
    -10264
    -10265
    -10266
    -10267
    -10268
    -10269
    -10270
    -10271
    -10272
    -10273
    -10274
    -10275
    +13012 +13013 +13014 +13015 +13016 +13017 +13018 +13019 +13020 +13021 +13022 +13023 +13024 +13025 +13026

    -
    # File 'lib/kettle/jem.rb', line 10261
    +      
    # File 'lib/kettle/jem.rb', line 13012
     
     def template_inventory_target_path(project_root, logical_path)
       return ".env.local.example" if logical_path == ".env.local"
    @@ -51693,13 +67394,13 @@ 

     
     
    -10798
    -10799
    -10800
    -10801
    +13596 +13597 +13598 +13599

    -
    # File 'lib/kettle/jem.rb', line 10798
    +      
    # File 'lib/kettle/jem.rb', line 13596
     
     def template_keep_destination_path?(config, target_path)
       strategy = template_file_strategy_config(config, target_path) || template_pattern_strategy_config(config, target_path)
    @@ -51725,23 +67426,23 @@ 

     
     
    -10401
    -10402
    -10403
    -10404
    -10405
    -10406
    -10407
    -10408
    -10409
    -10410
    -10411
    -10412
    -10413
    -10414
    +13176 +13177 +13178 +13179 +13180 +13181 +13182 +13183 +13184 +13185 +13186 +13187 +13188 +13189

    -
    # File 'lib/kettle/jem.rb', line 10401
    +      
    # File 'lib/kettle/jem.rb', line 13176
     
     def template_legacy_destination_cleanups(project_root, preferences)
       preferences.filter_map do |preference|
    @@ -51777,18 +67478,18 @@ 

     
     
    -1949
    -1950
    -1951
    -1952
    -1953
    -1954
    -1955
    -1956
    -1957
    +2110 +2111 +2112 +2113 +2114 +2115 +2116 +2117 +2118

    -
    # File 'lib/kettle/jem.rb', line 1949
    +      
    # File 'lib/kettle/jem.rb', line 2110
     
     def template_manifest(project_root: Dir.pwd, template_root: nil, config: nil)
       root = template_root || template_root_path(project_root, config: config)
    @@ -51819,23 +67520,23 @@ 

     
     
    -10416
    -10417
    -10418
    -10419
    -10420
    -10421
    -10422
    -10423
    -10424
    -10425
    -10426
    -10427
    -10428
    -10429
    +13191 +13192 +13193 +13194 +13195 +13196 +13197 +13198 +13199 +13200 +13201 +13202 +13203 +13204

    -
    # File 'lib/kettle/jem.rb', line 10416
    +      
    # File 'lib/kettle/jem.rb', line 13191
     
     def template_obsolete_license_cleanups(project_root, config, preferences)
       active_basenames = active_license_basenames(config)
    @@ -51871,21 +67572,21 @@ 

     
     
    -10450
    -10451
    -10452
    -10453
    -10454
    -10455
    -10456
    -10457
    -10458
    -10459
    -10460
    -10461
    +13227 +13228 +13229 +13230 +13231 +13232 +13233 +13234 +13235 +13236 +13237 +13238

    -
    # File 'lib/kettle/jem.rb', line 10450
    +      
    # File 'lib/kettle/jem.rb', line 13227
     
     def template_pattern_strategy_config(config, target_path)
       patterns = config["patterns"]
    @@ -51919,23 +67620,23 @@ 

     
     
    -10500
    -10501
    -10502
    -10503
    -10504
    -10505
    -10506
    -10507
    -10508
    -10509
    -10510
    -10511
    -10512
    -10513
    +13277 +13278 +13279 +13280 +13281 +13282 +13283 +13284 +13285 +13286 +13287 +13288 +13289 +13290

    -
    # File 'lib/kettle/jem.rb', line 10500
    +      
    # File 'lib/kettle/jem.rb', line 13277
     
     def template_root(project_root, templates)
       configured_root = templates["root"].to_s
    @@ -51971,15 +67672,15 @@ 

     
     
    -1942
    -1943
    -1944
    -1945
    -1946
    -1947
    +2103 +2104 +2105 +2106 +2107 +2108

    -
    # File 'lib/kettle/jem.rb', line 1942
    +      
    # File 'lib/kettle/jem.rb', line 2103
     
     def template_root_path(project_root = Dir.pwd, config: nil)
       root = File.expand_path(project_root.to_s)
    @@ -52007,18 +67708,28 @@ 

     
     
    -10206
    -10207
    -10208
    -10209
    -10210
    -10211
    -10212
    -10213
    -10214
    +12917 +12918 +12919 +12920 +12921 +12922 +12923 +12924 +12925 +12926 +12927 +12928 +12929 +12930 +12931 +12932 +12933 +12934 +12935

    -
    # File 'lib/kettle/jem.rb', line 10206
    +      
    # File 'lib/kettle/jem.rb', line 12917
     
     def template_runtime_config(config, facts, license: {})
       result = deep_dup(config)
    @@ -52027,6 +67738,16 @@ 

    result["ruby"] = {} unless result["ruby"].is_a?(Hash) result["ruby"]["test_minimum"] = config_test_min_ruby(result, facts.dig(:rubygems, :min_ruby)).to_s result["resolved_licenses"] = license[:spdx] + if facts[:template_profile].to_s == SHIM_TEMPLATE_PROFILE + result["templates"] = default_template_config.merge(result["templates"].is_a?(Hash) ? result["templates"] : {}) + result["templates"]["profile"] = SHIM_TEMPLATE_PROFILE + result["templates"]["entries"] = shim_template_entries(facts, result) + result["templates"]["entries"].each do |entry| + target = entry.fetch("target").to_s + + set_template_file_strategy!(result, target, "accept_template") + end + end result end

    -
    # File 'lib/kettle/jem.rb', line 7165
    +      
    # File 'lib/kettle/jem.rb', line 9259
     
     def template_selection_for(env, run_options)
       env_hash = env || {}
    @@ -52081,6 +67804,8 @@ 

    only: normalize_list_option(option_hash.fetch(:only, env_hash["only"])), include: normalize_list_option(option_hash.fetch(:include, env_hash["include"])), template_profile: normalize_template_profile(option_hash.fetch(:template_profile, env_hash["KETTLE_JEM_TEMPLATE_PROFILE"])), + shimmed_gem: option_hash.fetch(:shimmed_gem, env_hash["KETTLE_JEM_SHIMMED_GEM"]), + shimmed_require: option_hash.fetch(:shimmed_require, env_hash["KETTLE_JEM_SHIMMED_REQUIRE"]), skip_commit: DecisionPolicy.value_to_boolean(option_hash.fetch(:skip_commit, env_hash["KETTLE_JEM_SKIP_COMMIT"])), dry_run: DecisionPolicy.value_to_boolean(option_hash.fetch(:dry_run, env_hash["KETTLE_JEM_DRY_RUN"])), accept_config: DecisionPolicy.value_to_boolean(option_hash.fetch(:accept_config, env_hash["KETTLE_JEM_ACCEPT_CONFIG"])), @@ -52109,15 +67834,15 @@

     
     
    -10628
    -10629
    -10630
    -10631
    -10632
    -10633
    +13426 +13427 +13428 +13429 +13430 +13431

    -
    # File 'lib/kettle/jem.rb', line 10628
    +      
    # File 'lib/kettle/jem.rb', line 13426
     
     def template_source_display_path(template_root, selected_source)
       prefix = template_root[:display_prefix].to_s
    @@ -52145,58 +67870,59 @@ 

     
     
    -10351
    -10352
    -10353
    -10354
    -10355
    -10356
    -10357
    -10358
    -10359
    -10360
    -10361
    -10362
    -10363
    -10364
    -10365
    -10366
    -10367
    -10368
    -10369
    -10370
    -10371
    -10372
    -10373
    -10374
    -10375
    -10376
    -10377
    -10378
    -10379
    -10380
    -10381
    -10382
    -10383
    -10384
    -10385
    -10386
    -10387
    -10388
    -10389
    -10390
    -10391
    -10392
    -10393
    -10394
    -10395
    -10396
    -10397
    -10398
    -10399
    -

    -
    # File 'lib/kettle/jem.rb', line 10351
    +13125
    +13126
    +13127
    +13128
    +13129
    +13130
    +13131
    +13132
    +13133
    +13134
    +13135
    +13136
    +13137
    +13138
    +13139
    +13140
    +13141
    +13142
    +13143
    +13144
    +13145
    +13146
    +13147
    +13148
    +13149
    +13150
    +13151
    +13152
    +13153
    +13154
    +13155
    +13156
    +13157
    +13158
    +13159
    +13160
    +13161
    +13162
    +13163
    +13164
    +13165
    +13166
    +13167
    +13168
    +13169
    +13170
    +13171
    +13172
    +13173
    +13174
    +
    +
    # File 'lib/kettle/jem.rb', line 13125
     
     def template_source_preference(project_root, template_root, entry, config, opencollective_disabled: false, include_patterns: nil, apply_templates: false)
       source_path, target_path = template_entry_paths(entry)
    @@ -52206,6 +67932,7 @@ 

    end return if source_path.to_s.empty? || target_path.to_s.empty? return if skip_packaged_workflow_template?(target_path, config, include_patterns: include_patterns) + return if skip_disabled_integration_template?(target_path, config) return if skip_packaged_gemfile_template?(target_path, config) return if skip_packaged_license_template?(target_path, config) return if template_root.fetch(:kind) == "packaged" && opencollective_disabled && opencollective_disabled_file?(target_path) @@ -52267,30 +67994,30 @@

     
     
    -10184
    -10185
    -10186
    -10187
    -10188
    -10189
    -10190
    -10191
    -10192
    -10193
    -10194
    -10195
    -10196
    -10197
    -10198
    -10199
    -10200
    -10201
    -10202
    -10203
    -10204
    +12895 +12896 +12897 +12898 +12899 +12900 +12901 +12902 +12903 +12904 +12905 +12906 +12907 +12908 +12909 +12910 +12911 +12912 +12913 +12914 +12915

    -
    # File 'lib/kettle/jem.rb', line 10184
    +      
    # File 'lib/kettle/jem.rb', line 12895
     
     def template_source_preferences(project_root, config, opencollective_disabled: false, include_patterns: nil)
       templates = template_activation_config(config)
    @@ -52333,20 +68060,20 @@ 

     
     
    -10661
    -10662
    -10663
    -10664
    -10665
    -10666
    -10667
    -10668
    -10669
    -10670
    -10671
    +13459 +13460 +13461 +13462 +13463 +13464 +13465 +13466 +13467 +13468 +13469

    -
    # File 'lib/kettle/jem.rb', line 10661
    +      
    # File 'lib/kettle/jem.rb', line 13459
     
     def template_source_selection_reason(configured_source, selected_source)
       if selected_source.end_with?(".no-osc.example")
    @@ -52379,12 +68106,12 @@ 

     
     
    -10431
    -10432
    -10433
    +13206 +13207 +13208

    -
    # File 'lib/kettle/jem.rb', line 10431
    +      
    # File 'lib/kettle/jem.rb', line 13206
     
     def template_strategy_config(config, target_path)
       template_file_strategy_config(config, target_path) || template_pattern_strategy_config(config, target_path)
    @@ -52432,45 +68159,45 @@ 

     
     
    -10463
    -10464
    -10465
    -10466
    -10467
    -10468
    -10469
    -10470
    -10471
    -10472
    -10473
    -10474
    -10475
    -10476
    -10477
    -10478
    -10479
    -10480
    -10481
    -10482
    -10483
    -10484
    -10485
    -10486
    -10487
    -10488
    -10489
    -10490
    -10491
    -10492
    -10493
    -10494
    -10495
    -10496
    -10497
    -10498
    -

    -
    # File 'lib/kettle/jem.rb', line 10463
    +13240
    +13241
    +13242
    +13243
    +13244
    +13245
    +13246
    +13247
    +13248
    +13249
    +13250
    +13251
    +13252
    +13253
    +13254
    +13255
    +13256
    +13257
    +13258
    +13259
    +13260
    +13261
    +13262
    +13263
    +13264
    +13265
    +13266
    +13267
    +13268
    +13269
    +13270
    +13271
    +13272
    +13273
    +13274
    +13275
    +
    +
    # File 'lib/kettle/jem.rb', line 13240
     
     def template_strategy_entry(config, path, entry)
       strategy = entry["strategy"].to_s.strip.downcase.to_sym
    @@ -52528,62 +68255,67 @@ 

     
     
    -7951
    -7952
    -7953
    -7954
    -7955
    -7956
    -7957
    -7958
    -7959
    -7960
    -7961
    -7962
    -7963
    -7964
    -7965
    -7966
    -7967
    -7968
    -7969
    -7970
    -7971
    -7972
    -7973
    -7974
    -7975
    -7976
    -7977
    -7978
    -7979
    -7980
    -7981
    -7982
    -7983
    -7984
    -7985
    -7986
    -7987
    -7988
    -7989
    -7990
    -7991
    -7992
    -7993
    -7994
    -7995
    -7996
    -7997
    -7998
    -7999
    -8000
    -8001
    -8002
    -8003
    +10082 +10083 +10084 +10085 +10086 +10087 +10088 +10089 +10090 +10091 +10092 +10093 +10094 +10095 +10096 +10097 +10098 +10099 +10100 +10101 +10102 +10103 +10104 +10105 +10106 +10107 +10108 +10109 +10110 +10111 +10112 +10113 +10114 +10115 +10116 +10117 +10118 +10119 +10120 +10121 +10122 +10123 +10124 +10125 +10126 +10127 +10128 +10129 +10130 +10131 +10132 +10133 +10134 +10135 +10136 +10137 +10138 +10139

    -
    # File 'lib/kettle/jem.rb', line 7951
    +      
    # File 'lib/kettle/jem.rb', line 10082
     
     def template_tokens(facts, funding)
       package = facts.fetch(:package)
    @@ -52600,6 +68332,7 @@ 

    "KJ|GEM_NAME_PATH" => package.fetch(:name).to_s.tr("-", "/"), "KJ|ENTRYPOINT_REQUIRE" => rubygems.fetch(:entrypoint_require, package.fetch(:name).to_s.tr("-", "/")).to_s, "KJ|GEM_SHIELD" => shield_token(package.fetch(:name).to_s), + "KJ|GEM_VERSION" => facts.dig(:project_runtime, :version).to_s, "KJ|GEM_MAJOR" => gem_major_token(facts.fetch(:project_runtime, {})[:version]), "KJ|SECURITY:SUPPORTED_VERSION" => security_supported_version_token(facts.fetch(:project_runtime, {})[:version]), "KJ|GH_ORG" => github_org, @@ -52609,9 +68342,9 @@

    "KJ|MIN_DEV_RUBY" => facts.dig(:project_runtime, :test_min_ruby).to_s, "KJ|MIN_TEST_RUBY" => facts.dig(:project_runtime, :test_min_ruby).to_s, "KJ|CI:EXEC_CMD" => facts.dig(:ci, :exec_cmd).to_s, - "KJ|GITHUB_ACTIONS:COVERAGE_UPLOAD_STEPS" => github_actions_coverage_steps + "KJ|GITHUB_ACTIONS:COVERAGE_UPLOAD_STEPS" => github_actions_coverage_steps(disabled_integrations: facts.dig(:integrations, :disabled)) }.merge( - rubocop_template_tokens(rubygems[:min_ruby]) + rubocop_template_tokens(rubygems[:min_ruby], ruby_style: facts.fetch(:ruby_style, {})) ).merge( author_template_tokens(facts.fetch(:author, {})) ).merge( @@ -52622,6 +68355,8 @@

    social_template_tokens(facts.fetch(:social, {})) ).merge( license_template_tokens(facts.fetch(:license, {})) + ).merge( + gemspec_template_tokens(facts.fetch(:gemspec, {})) ).merge( project_runtime_template_tokens(facts.fetch(:project_runtime, {})) ).merge( @@ -52633,8 +68368,10 @@

    tokens["KJ|OPENCOLLECTIVE_ORG"] = org tokens["KJ|README:FAMILY_INTRO_BACKEND_MATRIX"] = readme_family_intro_and_backend_matrix(facts.fetch(:readme_style, {})) + tokens["KJ|README:DEV_TEST_STACK_TABLE"] = readme_dev_test_stack_table(package.fetch(:name).to_s) tokens.merge!(readme_fossa_template_tokens(facts.fetch(:readme_style, {}))) tokens.merge!(version_gem_template_tokens(facts)) + tokens.merge!(shim_template_tokens(facts.fetch(:shim, {}))) tokens.reject { |key, value| value.empty? && !EMPTY_TEMPLATE_TOKENS.include?(key) } end

    @@ -52658,37 +68395,43 @@

     
     
    -3327
    -3328
    -3329
    -3330
    -3331
    -3332
    -3333
    -3334
    -3335
    -3336
    -3337
    -3338
    -3339
    -3340
    -3341
    -3342
    -3343
    +3691 +3692 +3693 +3694 +3695 +3696 +3697 +3698 +3699 +3700 +3701 +3702 +3703 +3704 +3705 +3706 +3707 +3708 +3709 +3710

    -
    # File 'lib/kettle/jem.rb', line 3327
    +      
    # File 'lib/kettle/jem.rb', line 3691
     
     def template_version_gem_bootstrap_step(project_root, report)
       facts = report.fetch(:facts)
    -  return version_gem_cleanup_step(project_root, facts) unless version_gem_runtime_compatible?(facts)
    -  return unless project_gemspec_declares_version_gem?(project_root)
    -
       entrypoint_require = facts.dig(:rubygems, :entrypoint_require).to_s
       entrypoint_require = facts.dig(:package, :name).to_s.tr("-", "/") if entrypoint_require.empty?
    +  unless project_gemspec_declares_version_gem?(project_root)
    +    return legacy_rbs_consolidation_step(project_root, facts, entrypoint_require: entrypoint_require)
    +  end
    +
    +  return version_gem_cleanup_step(project_root, facts) unless version_gem_runtime_compatible?(facts)
    +
       templated_paths = report.fetch(:recipe_reports, []).map { |recipe_report| recipe_report.fetch(:relative_path, "") }
       version_path = File.join("lib", entrypoint_require, "version.rb")
    -  signature_path = File.join("sig", entrypoint_require, "version.rbs")
    +  signature_path = File.join("sig", "#{entrypoint_require}.rbs")
       version_gem_bootstrap_step_for_paths(
         project_root,
         facts,
    @@ -52699,6 +68442,50 @@ 

    +
    + +
    +

    + + .templating_guard_records(content) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +5566
    +5567
    +5568
    +5569
    +5570
    +5571
    +5572
    +5573
    +5574
    +5575
    +
    +
    # File 'lib/kettle/jem.rb', line 5566
    +
    +def templating_guard_records(content)
    +  result = prism_parse_success(content)
    +  return [] unless result
    +
    +  result.value.breadth_first_search_all do |node|
    +    gemfile_conditional_node?(node) && prism_subtree_contains_string?(node.predicate, "K_JEM_TEMPLATING")
    +  end.map do |node|
    +    {start_line: node.location.start_line, end_line: node.location.end_line}
    +  end
    +end
    +
    @@ -52716,13 +68503,13 @@

     
     
    -8189
    -8190
    -8191
    -8192
    +10404 +10405 +10406 +10407

    -
    # File 'lib/kettle/jem.rb', line 8189
    +      
    # File 'lib/kettle/jem.rb', line 10404
     
     def token_config_values(config)
       raw = config.is_a?(Hash) ? config["tokens"] : nil
    @@ -52771,12 +68558,12 @@ 

     
     
    -8210
    -8211
    -8212
    +10425 +10426 +10427

    -
    # File 'lib/kettle/jem.rb', line 8210
    +      
    # File 'lib/kettle/jem.rb', line 10425
     
     def token_placeholder?(value)
       value.to_s.strip.match?(%r{\A\{KJ\|[A-Z][A-Z0-9_:]*\}\z})
    @@ -52801,21 +68588,21 @@ 

     
     
    -4316
    -4317
    -4318
    -4319
    -4320
    -4321
    -4322
    -4323
    -4324
    -4325
    -4326
    -4327
    +4835 +4836 +4837 +4838 +4839 +4840 +4841 +4842 +4843 +4844 +4845 +4846

    -
    # File 'lib/kettle/jem.rb', line 4316
    +      
    # File 'lib/kettle/jem.rb', line 4835
     
     def toml_string_scalar_line_value(content, key)
       content.to_s.lines.each do |line|
    @@ -52849,15 +68636,15 @@ 

     
     
    -11068
    -11069
    -11070
    -11071
    -11072
    -11073
    +13879 +13880 +13881 +13882 +13883 +13884

    -
    # File 'lib/kettle/jem.rb', line 11068
    +      
    # File 'lib/kettle/jem.rb', line 13879
     
     def top_level_ruby_call_records(content, call_name)
       result = prism_parse_success(content)
    @@ -52908,14 +68695,14 @@ 

     
     
    -3233
    -3234
    -3235
    -3236
    -3237
    +3597 +3598 +3599 +3600 +3601

    -
    # File 'lib/kettle/jem.rb', line 3233
    +      
    # File 'lib/kettle/jem.rb', line 3597
     
     def top_level_yaml_key_line?(line)
       return false if line.to_s.empty? || line.start_with?("#") || line.start_with?(" ")
    @@ -52942,14 +68729,14 @@ 

     
     
    -8842
    -8843
    -8844
    -8845
    -8846
    +11370 +11371 +11372 +11373 +11374

    -
    # File 'lib/kettle/jem.rb', line 8842
    +      
    # File 'lib/kettle/jem.rb', line 11370
     
     def trim_trailing_blank_lines(content)
       lines = content.to_s.lines
    @@ -52959,6 +68746,59 @@ 

    +
    + +
    +

    + + .truthy_config?(value) ⇒ Boolean + + + + + +

    +
    + + + +
    +
    +
    + +

    Returns:

    +
      + +
    • + + + (Boolean) + + + +
    • + +
    + +
    + + + + +
    +
    +
    +
    +12671
    +12672
    +12673
    +
    +
    # File 'lib/kettle/jem.rb', line 12671
    +
    +def truthy_config?(value)
    +  %w[true yes 1 on enabled].include?(value.to_s.strip.downcase)
    +end
    +
    @@ -52976,17 +68816,17 @@

     
     
    -5390
    -5391
    -5392
    -5393
    -5394
    -5395
    -5396
    -5397
    +6535 +6536 +6537 +6538 +6539 +6540 +6541 +6542

    -
    # File 'lib/kettle/jem.rb', line 5390
    +      
    # File 'lib/kettle/jem.rb', line 6535
     
     def uncomment_ruby_comment_line(comment_source)
       text = comment_source.to_s
    @@ -53039,15 +68879,15 @@ 

     
     
    -9962
    -9963
    -9964
    -9965
    -9966
    -9967
    +12656 +12657 +12658 +12659 +12660 +12661

    -
    # File 'lib/kettle/jem.rb', line 9962
    +      
    # File 'lib/kettle/jem.rb', line 12656
     
     def unresolved_template_scan?(recipe)
       return false if recipe.fetch(:target_path).to_s == KETTLE_CONFIG_PATH
    @@ -53075,30 +68915,30 @@ 

     
     
    -11494
    -11495
    -11496
    -11497
    -11498
    -11499
    -11500
    -11501
    -11502
    -11503
    -11504
    -11505
    -11506
    -11507
    -11508
    -11509
    -11510
    -11511
    -11512
    -11513
    -11514
    +14392 +14393 +14394 +14395 +14396 +14397 +14398 +14399 +14400 +14401 +14402 +14403 +14404 +14405 +14406 +14407 +14408 +14409 +14410 +14411 +14412

    -
    # File 'lib/kettle/jem.rb', line 11494
    +      
    # File 'lib/kettle/jem.rb', line 14392
     
     def update_github_actions_pins(content)
       lines = content.to_s.lines
    @@ -53164,18 +69004,18 @@ 

     
     
    -8157
    -8158
    -8159
    -8160
    -8161
    -8162
    -8163
    -8164
    -8165
    +10372 +10373 +10374 +10375 +10376 +10377 +10378 +10379 +10380

    -
    # File 'lib/kettle/jem.rb', line 8157
    +      
    # File 'lib/kettle/jem.rb', line 10372
     
     def valid_gem_version?(version)
       text = version.to_s
    @@ -53229,21 +69069,21 @@ 

     
     
    -7637
    -7638
    -7639
    -7640
    -7641
    -7642
    -7643
    -7644
    -7645
    -7646
    -7647
    -7648
    +9752 +9753 +9754 +9755 +9756 +9757 +9758 +9759 +9760 +9761 +9762 +9763

    -
    # File 'lib/kettle/jem.rb', line 7637
    +      
    # File 'lib/kettle/jem.rb', line 9752
     
     def validate_kettle_jem_config!(config)
       raise Error, "Invalid kettle-jem config: root must be a mapping" unless config.is_a?(Hash)
    @@ -53277,30 +69117,30 @@ 

    -8740 -8741 -8742 -8743 -8744 -8745 -8746 -8747 -8748 -8749 -8750 -8751 -8752 -8753 -8754 -8755 -8756 -8757 -8758 -8759 -8760

    +11266 +11267 +11268 +11269 +11270 +11271 +11272 +11273 +11274 +11275 +11276 +11277 +11278 +11279 +11280 +11281 +11282 +11283 +11284 +11285 +11286
    -
    # File 'lib/kettle/jem.rb', line 8740
    +      
    # File 'lib/kettle/jem.rb', line 11266
     
     def version_gem_bootstrap_entrypoint_content(content, namespace:, entrypoint_require:)
       current = content.to_s
    @@ -53343,12 +69183,12 @@ 

     
     
    -8640
    -8641
    -8642
    +11051 +11052 +11053

    -
    # File 'lib/kettle/jem.rb', line 8640
    +      
    # File 'lib/kettle/jem.rb', line 11051
     
     def version_gem_bootstrap_step(project_root, facts)
       version_gem_bootstrap_step_for_paths(project_root, facts)
    @@ -53373,56 +69213,69 @@ 

     
     
    -8644
    -8645
    -8646
    -8647
    -8648
    -8649
    -8650
    -8651
    -8652
    -8653
    -8654
    -8655
    -8656
    -8657
    -8658
    -8659
    -8660
    -8661
    -8662
    -8663
    -8664
    -8665
    -8666
    -8667
    -8668
    -8669
    -8670
    -8671
    -8672
    -8673
    -8674
    -8675
    -8676
    -8677
    -8678
    -8679
    -8680
    -8681
    -8682
    -8683
    -8684
    -8685
    -8686
    -8687
    -8688
    -8689
    -8690
    +11055 +11056 +11057 +11058 +11059 +11060 +11061 +11062 +11063 +11064 +11065 +11066 +11067 +11068 +11069 +11070 +11071 +11072 +11073 +11074 +11075 +11076 +11077 +11078 +11079 +11080 +11081 +11082 +11083 +11084 +11085 +11086 +11087 +11088 +11089 +11090 +11091 +11092 +11093 +11094 +11095 +11096 +11097 +11098 +11099 +11100 +11101 +11102 +11103 +11104 +11105 +11106 +11107 +11108 +11109 +11110 +11111 +11112 +11113 +11114

    -
    # File 'lib/kettle/jem.rb', line 8644
    +      
    # File 'lib/kettle/jem.rb', line 11055
     
     def version_gem_bootstrap_step_for_paths(project_root, facts, manage_version_file: true, manage_signature_file: true)
       package_name = facts.dig(:package, :name).to_s
    @@ -53432,8 +69285,9 @@ 

    entrypoint_require = package_name.tr("-", "/") if entrypoint_require.empty? version_path = File.join("lib", entrypoint_require, "version.rb") entrypoint_path = File.join("lib", "#{entrypoint_require}.rb") - signature_path = File.join("sig", entrypoint_require, "version.rbs") - root_signature_path = File.join("sig", "#{entrypoint_require}.rbs") + version_spec_path = File.join("spec", entrypoint_require, "version_spec.rb") + signature_path = File.join("sig", "#{entrypoint_require}.rbs") + legacy_signature_paths = legacy_rbs_signature_paths(project_root, entrypoint_require) namespace = facts.dig(:rubygems, :namespace).to_s namespace = existing_entrypoint_version_namespace(project_root, entrypoint_path) if namespace.empty? namespace = existing_version_namespace(project_root, version_path) if namespace.empty? @@ -53452,14 +69306,26 @@

    ) end current_entrypoint = read_project_file(project_root, entrypoint_path) - entrypoint_content = if current_entrypoint.empty? + non_default_version_gem = non_default_version_gem_entrypoint?(project_root, entrypoint_require) + entrypoint_content = if non_default_version_gem + version_gem_free_entrypoint_content(current_entrypoint, entrypoint_require: entrypoint_require) + elsif current_entrypoint.empty? version_gem_entrypoint_file_content(namespace: namespace, entrypoint_require: entrypoint_require) else version_gem_bootstrap_entrypoint_content(current_entrypoint, namespace: namespace, entrypoint_require: entrypoint_require) end changes << write_if_changed(project_root, entrypoint_path, entrypoint_content) - changes << write_if_changed(project_root, signature_path, version_gem_signature_file_content(namespace: namespace)) if manage_signature_file - changes << remove_legacy_version_signature_alias(project_root, root_signature_path) + changes << normalize_non_default_version_gem_version_spec(project_root, version_spec_path, entrypoint_require) if non_default_version_gem + if manage_signature_file || !legacy_signature_paths.empty? + changes.concat( + write_consolidated_version_signature( + project_root, + signature_path, + legacy_signature_paths, + namespace: namespace + ) + ) + end changed_files = changes.compact { @@ -53491,16 +69357,16 @@

     
     
    -8848
    -8849
    -8850
    -8851
    -8852
    -8853
    -8854
    +11376 +11377 +11378 +11379 +11380 +11381 +11382

    -
    # File 'lib/kettle/jem.rb', line 8848
    +      
    # File 'lib/kettle/jem.rb', line 11376
     
     def version_gem_class_eval_block(namespace)
       <<~RUBY
    @@ -53552,18 +69418,18 @@ 

     
     
    -8789
    -8790
    -8791
    -8792
    -8793
    -8794
    -8795
    -8796
    -8797
    +11315 +11316 +11317 +11318 +11319 +11320 +11321 +11322 +11323

    -
    # File 'lib/kettle/jem.rb', line 8789
    +      
    # File 'lib/kettle/jem.rb', line 11315
     
     def version_gem_class_eval_call?(call)
       call.receiver&.slice.to_s.end_with?("::Version") &&
    @@ -53594,28 +69460,28 @@ 

     
     
    -3345
    -3346
    -3347
    -3348
    -3349
    -3350
    -3351
    -3352
    -3353
    -3354
    -3355
    -3356
    -3357
    -3358
    -3359
    -3360
    -3361
    -3362
    -3363
    +3732 +3733 +3734 +3735 +3736 +3737 +3738 +3739 +3740 +3741 +3742 +3743 +3744 +3745 +3746 +3747 +3748 +3749 +3750

    -
    # File 'lib/kettle/jem.rb', line 3345
    +      
    # File 'lib/kettle/jem.rb', line 3732
     
     def version_gem_cleanup_step(project_root, facts)
       package_name = facts.dig(:package, :name).to_s
    @@ -53656,19 +69522,19 @@ 

     
     
    -8718
    -8719
    -8720
    -8721
    -8722
    -8723
    -8724
    -8725
    -8726
    -8727
    +11244 +11245 +11246 +11247 +11248 +11249 +11250 +11251 +11252 +11253

    -
    # File 'lib/kettle/jem.rb', line 8718
    +      
    # File 'lib/kettle/jem.rb', line 11244
     
     def version_gem_entrypoint_file_content(namespace:, entrypoint_require:)
       sections = ["# frozen_string_literal: true"]
    @@ -53683,6 +69549,42 @@ 

    + + +
    +

    + + .version_gem_facts_for_project(project_root, entrypoint_require) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +11121
    +11122
    +11123
    +11124
    +11125
    +11126
    +
    +
    # File 'lib/kettle/jem.rb', line 11121
    +
    +def version_gem_facts_for_project(project_root, entrypoint_require)
    +  version_gem_path = File.join("lib", entrypoint_require.to_s, "version_gem.rb")
    +  return {} unless File.file?(File.join(project_root, version_gem_path))
    +
    +  {non_default_entrypoint: true, entrypoint_path: version_gem_path}
    +end
    +
    @@ -53700,18 +69602,18 @@

     
     
    -8762
    -8763
    -8764
    -8765
    -8766
    -8767
    -8768
    -8769
    -8770
    +11288 +11289 +11290 +11291 +11292 +11293 +11294 +11295 +11296

    -
    # File 'lib/kettle/jem.rb', line 8762
    +      
    # File 'lib/kettle/jem.rb', line 11288
     
     def version_gem_free_entrypoint_content(content, entrypoint_require:)
       current = remove_version_gem_entrypoint_references(content)
    @@ -53742,22 +69644,24 @@ 

     
     
    -8799
    -8800
    -8801
    -8802
    -8803
    -8804
    -8805
    -8806
    -8807
    -8808
    -8809
    +11325 +11326 +11327 +11328 +11329 +11330 +11331 +11332 +11333 +11334 +11335 +11336

    -
    # File 'lib/kettle/jem.rb', line 8799
    +      
    # File 'lib/kettle/jem.rb', line 11325
     
     def version_gem_require_insertion_index(content, after_version_gem: false)
    +  ensure_runtime_dependencies!
       context = Ast::Crispr::Ruby::Prism.document_context(content: content.to_s, source_label: "entrypoint.rb")
       owners = context.structural_owners(owner_scope: :top_level_statements)
       if after_version_gem
    @@ -53811,17 +69715,17 @@ 

     
     
    -6160
    -6161
    -6162
    -6163
    -6164
    -6165
    -6166
    -6167
    +7430 +7431 +7432 +7433 +7434 +7435 +7436 +7437

    -
    # File 'lib/kettle/jem.rb', line 6160
    +      
    # File 'lib/kettle/jem.rb', line 7430
     
     def version_gem_runtime_compatible?(facts)
       min_ruby = gemspec_runtime_floor_token(facts)
    @@ -53851,19 +69755,19 @@ 

     
     
    -8729
    -8730
    -8731
    -8732
    -8733
    -8734
    -8735
    -8736
    -8737
    -8738
    +11255 +11256 +11257 +11258 +11259 +11260 +11261 +11262 +11263 +11264

    -
    # File 'lib/kettle/jem.rb', line 8729
    +      
    # File 'lib/kettle/jem.rb', line 11255
     
     def version_gem_signature_file_content(namespace:)
       body = [
    @@ -53895,14 +69799,14 @@ 

     
     
    -7015
    -7016
    -7017
    -7018
    -7019
    +9072 +9073 +9074 +9075 +9076

    -
    # File 'lib/kettle/jem.rb', line 7015
    +      
    # File 'lib/kettle/jem.rb', line 9072
     
     def version_gem_template_entries(gemspec_path)
       VERSION_GEM_TEMPLATE_SOURCES.map do |source|
    @@ -53929,21 +69833,21 @@ 

     
     
    -7021
    -7022
    -7023
    -7024
    -7025
    -7026
    -7027
    -7028
    -7029
    -7030
    -7031
    -7032
    +9078 +9079 +9080 +9081 +9082 +9083 +9084 +9085 +9086 +9087 +9088 +9089

    -
    # File 'lib/kettle/jem.rb', line 7021
    +      
    # File 'lib/kettle/jem.rb', line 9078
     
     def version_gem_template_target_path(gemspec_path, source)
       package_name = File.basename(gemspec_path.to_s, ".gemspec")
    @@ -53951,8 +69855,8 @@ 

    case source when "lib/gem/version.rb" File.join("lib", entrypoint_require, "version.rb") - when "sig/gem/version.rbs" - File.join("sig", entrypoint_require, "version.rbs") + when "sig/gem.rbs" + File.join("sig", "#{entrypoint_require}.rbs") else source end @@ -54000,13 +69904,13 @@

     
     
    -10293
    -10294
    -10295
    -10296
    +13044 +13045 +13046 +13047

    -
    # File 'lib/kettle/jem.rb', line 10293
    +      
    # File 'lib/kettle/jem.rb', line 13044
     
     def version_gem_template_target_path?(target_path)
       target = target_path.to_s
    @@ -54032,23 +69936,23 @@ 

    -7034 -7035 -7036 -7037 -7038 -7039 -7040 -7041 -7042 -7043 -7044 -7045 -7046 -7047

    +9091 +9092 +9093 +9094 +9095 +9096 +9097 +9098 +9099 +9100 +9101 +9102 +9103 +9104
    -
    # File 'lib/kettle/jem.rb', line 7034
    +      
    # File 'lib/kettle/jem.rb', line 9091
     
     def version_gem_template_target_path_for_project(project_root, gemspec_path, source)
       config = kettle_jem_config(project_root)
    @@ -54058,8 +69962,8 @@ 

     
     
    -8101
    -8102
    -8103
    -8104
    -8105
    -8106
    -8107
    -8108
    -8109
    -8110
    -8111
    +10272 +10273 +10274 +10275 +10276 +10277 +10278 +10279 +10280 +10281 +10282 +10283 +10284 +10285 +10286 +10287 +10288 +10289 +10290 +10291 +10292 +10293

    -
    # File 'lib/kettle/jem.rb', line 8101
    +      
    # File 'lib/kettle/jem.rb', line 10272
     
     def version_gem_template_tokens(facts)
       namespace = facts.dig(:rubygems, :namespace).to_s
    @@ -54105,8 +70020,19 @@ 

    version = "0.0.1.pre" if version.empty? return {} if namespace.empty? + version_rb = if facts.dig(:shim, :version_strategy).to_s == "shim" + shim_version_file_content( + namespace: namespace, + replacement_namespace: shim_replacement_namespace(facts.dig(:shim, :replacement_require)), + replacement_require: facts.dig(:shim, :replacement_require) + ) + else + version_gem_version_file_content(existing_version: "", namespace: namespace, version: version) + end + { - "KJ|VERSION_GEM:VERSION_RB" => version_gem_version_file_content(existing_version: "", namespace: namespace, version: version).chomp, + "KJ|GEM_VERSION" => version, + "KJ|VERSION_GEM:VERSION_RB" => version_rb.chomp, "KJ|VERSION_GEM:VERSION_RBS" => version_gem_signature_file_content(namespace: namespace).chomp } end

    @@ -54130,24 +70056,24 @@

     
     
    -8702
    -8703
    -8704
    -8705
    -8706
    -8707
    -8708
    -8709
    -8710
    -8711
    -8712
    -8713
    -8714
    -8715
    -8716
    +11228 +11229 +11230 +11231 +11232 +11233 +11234 +11235 +11236 +11237 +11238 +11239 +11240 +11241 +11242

    -
    # File 'lib/kettle/jem.rb', line 8702
    +      
    # File 'lib/kettle/jem.rb', line 11228
     
     def version_gem_version_file_content(existing_version:, namespace:, version:)
       resolved_version = existing_version.to_s.empty? ? version.to_s : existing_version.to_s
    @@ -54167,6 +70093,48 @@ 

    + + +
    +

    + + .version_spec_require_insertion_index(content) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +11218
    +11219
    +11220
    +11221
    +11222
    +11223
    +11224
    +11225
    +11226
    +
    +
    # File 'lib/kettle/jem.rb', line 11218
    +
    +def version_spec_require_insertion_index(content)
    +  ensure_runtime_dependencies!
    +  context = Ast::Crispr::Ruby::Prism.document_context(content: content.to_s, source_label: "version_spec.rb")
    +  owners = context.structural_owners(owner_scope: :top_level_statements)
    +  requires = owners.select { |owner| owner.is_a?(::Prism::CallNode) && owner.name == :require }
    +  return requires.last.location.end_line if requires.any?
    +
    +  version_gem_require_insertion_index(content)
    +end
    +
    @@ -54184,18 +70152,18 @@

     
     
    -4866
    -4867
    -4868
    -4869
    -4870
    -4871
    -4872
    -4873
    -4874
    +5975 +5976 +5977 +5978 +5979 +5980 +5981 +5982 +5983

    -
    # File 'lib/kettle/jem.rb', line 4866
    +      
    # File 'lib/kettle/jem.rb', line 5975
     
     def versioned_gem_name_parts(name)
       match = name.to_s.match(/\A(.+?)(\d+(?:[_-]\d+)*)\z/)
    @@ -54249,18 +70217,18 @@ 

     
     
    -4856
    -4857
    -4858
    -4859
    -4860
    -4861
    -4862
    -4863
    -4864
    +5965 +5966 +5967 +5968 +5969 +5970 +5971 +5972 +5973

    -
    # File 'lib/kettle/jem.rb', line 4856
    +      
    # File 'lib/kettle/jem.rb', line 5965
     
     def versioned_gem_name_update_candidate?(destination_name, template_name)
       destination = versioned_gem_name_parts(destination_name)
    @@ -54291,24 +70259,24 @@ 

     
     
    -5008
    -5009
    -5010
    -5011
    -5012
    -5013
    -5014
    -5015
    -5016
    -5017
    -5018
    -5019
    -5020
    -5021
    -5022
    +6117 +6118 +6119 +6120 +6121 +6122 +6123 +6124 +6125 +6126 +6127 +6128 +6129 +6130 +6131

    -
    # File 'lib/kettle/jem.rb', line 5008
    +      
    # File 'lib/kettle/jem.rb', line 6117
     
     def workflow_job_env_existing_keys(lines, bundle_index, indent_length)
       existing = Set.new
    @@ -54345,17 +70313,17 @@ 

     
     
    -4978
    -4979
    -4980
    -4981
    -4982
    -4983
    -4984
    -4985
    +6087 +6088 +6089 +6090 +6091 +6092 +6093 +6094

    -
    # File 'lib/kettle/jem.rb', line 4978
    +      
    # File 'lib/kettle/jem.rb', line 6087
     
     def workflow_matrix_env_indent(lines, mapping)
       ((mapping.start_line - 1)...mapping.end_line).each do |index|
    @@ -54385,15 +70353,15 @@ 

     
     
    -4971
    -4972
    -4973
    -4974
    -4975
    -4976
    +6080 +6081 +6082 +6083 +6084 +6085

    -
    # File 'lib/kettle/jem.rb', line 4971
    +      
    # File 'lib/kettle/jem.rb', line 6080
     
     def workflow_matrix_env_insert_index(lines, mapping)
       ((mapping.start_line - 1)...mapping.end_line).each do |index|
    @@ -54421,12 +70389,12 @@ 

     
     
    -7610
    -7611
    -7612
    +9708 +9709 +9710

    -
    # File 'lib/kettle/jem.rb', line 7610
    +      
    # File 'lib/kettle/jem.rb', line 9708
     
     def workflow_recipe_slug(workflow_path)
       workflow_path.gsub(/[^a-zA-Z0-9]+/, "_").gsub(/\A_+|_+\z/, "")
    @@ -54451,19 +70419,19 @@ 

     
     
    -8856
    -8857
    -8858
    -8859
    -8860
    -8861
    -8862
    -8863
    -8864
    -8865
    +11384 +11385 +11386 +11387 +11388 +11389 +11390 +11391 +11392 +11393

    -
    # File 'lib/kettle/jem.rb', line 8856
    +      
    # File 'lib/kettle/jem.rb', line 11384
     
     def wrap_ruby_namespace(namespace, body_lines)
       segments = namespace.to_s.split("::").reject(&:empty?)
    @@ -54478,6 +70446,60 @@ 

    +
    + +
    +

    + + .write_consolidated_version_signature(project_root, signature_path, legacy_signature_paths, namespace:) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +11169
    +11170
    +11171
    +11172
    +11173
    +11174
    +11175
    +11176
    +11177
    +11178
    +11179
    +11180
    +11181
    +11182
    +11183
    +
    +
    # File 'lib/kettle/jem.rb', line 11169
    +
    +def write_consolidated_version_signature(project_root, signature_path, legacy_signature_paths, namespace:)
    +  template = version_gem_signature_file_content(namespace: namespace)
    +  current = read_project_file(project_root, signature_path)
    +  merged = current
    +  legacy_signature_paths.each do |legacy_signature_path|
    +    legacy = read_project_file(project_root, legacy_signature_path)
    +    merged = merge_rbs_signature_sources(legacy, merged) unless legacy.empty?
    +  end
    +  merged = merge_rbs_signature_sources(template, merged)
    +
    +  [
    +    write_if_changed(project_root, signature_path, merged),
    +    legacy_signature_paths.map { |legacy_signature_path| delete_project_file(project_root, legacy_signature_path) }
    +  ].flatten.compact
    +end
    +
    @@ -54495,18 +70517,18 @@

     
     
    -8934
    -8935
    -8936
    -8937
    -8938
    -8939
    -8940
    -8941
    -8942
    +11495 +11496 +11497 +11498 +11499 +11500 +11501 +11502 +11503

    -
    # File 'lib/kettle/jem.rb', line 8934
    +      
    # File 'lib/kettle/jem.rb', line 11495
     
     def write_if_changed(project_root, relative_path, content)
       path = File.join(project_root, relative_path)
    @@ -54537,16 +70559,16 @@ 

     
     
    -6868
    -6869
    -6870
    -6871
    -6872
    -6873
    -6874
    +8873 +8874 +8875 +8876 +8877 +8878 +8879

    -
    # File 'lib/kettle/jem.rb', line 6868
    +      
    # File 'lib/kettle/jem.rb', line 8873
     
     def yaml_config_scalar_literal(value, path:)
       clean = value.to_s.strip
    @@ -54598,22 +70620,22 @@ 

     
     
    -11375
    -11376
    -11377
    -11378
    -11379
    -11380
    -11381
    -11382
    -11383
    -11384
    -11385
    -11386
    -11387
    +14255 +14256 +14257 +14258 +14259 +14260 +14261 +14262 +14263 +14264 +14265 +14266 +14267

    -
    # File 'lib/kettle/jem.rb', line 11375
    +      
    # File 'lib/kettle/jem.rb', line 14255
     
     def yaml_contains_key_value?(node, key, value)
       case node
    @@ -54648,12 +70670,12 @@ 

     
     
    -4987
    -4988
    -4989
    +6096 +6097 +6098

    -
    # File 'lib/kettle/jem.rb', line 4987
    +      
    # File 'lib/kettle/jem.rb', line 6096
     
     def yaml_double_quoted_scalar(value)
       %("#{value.to_s.gsub("\\", "\\\\\\").gsub('"', '\"')}")
    @@ -54678,47 +70700,47 @@ 

     
     
    -6829
    -6830
    -6831
    -6832
    -6833
    -6834
    -6835
    -6836
    -6837
    -6838
    -6839
    -6840
    -6841
    -6842
    -6843
    -6844
    -6845
    -6846
    -6847
    -6848
    -6849
    -6850
    -6851
    -6852
    -6853
    -6854
    -6855
    -6856
    -6857
    -6858
    -6859
    -6860
    -6861
    -6862
    -6863
    -6864
    -6865
    -6866
    +8834 +8835 +8836 +8837 +8838 +8839 +8840 +8841 +8842 +8843 +8844 +8845 +8846 +8847 +8848 +8849 +8850 +8851 +8852 +8853 +8854 +8855 +8856 +8857 +8858 +8859 +8860 +8861 +8862 +8863 +8864 +8865 +8866 +8867 +8868 +8869 +8870 +8871

    -
    # File 'lib/kettle/jem.rb', line 6829
    +      
    # File 'lib/kettle/jem.rb', line 8834
     
     def yaml_line_comment_suffix(line, key_index)
       value_start = line.to_s.index(":", key_index).to_i + 1
    @@ -54778,20 +70800,20 @@ 

     
     
    -5024
    -5025
    -5026
    -5027
    -5028
    -5029
    -5030
    -5031
    -5032
    -5033
    -5034
    +6133 +6134 +6135 +6136 +6137 +6138 +6139 +6140 +6141 +6142 +6143

    -
    # File 'lib/kettle/jem.rb', line 5024
    +      
    # File 'lib/kettle/jem.rb', line 6133
     
     def yaml_mapping_nodes(content)
       root = Psych.parse_stream(content.to_s)
    @@ -54807,6 +70829,46 @@ 

    +
    + +
    +

    + + .yaml_mapping_path_entries(content) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +14535
    +14536
    +14537
    +14538
    +14539
    +14540
    +14541
    +14542
    +
    +
    # File 'lib/kettle/jem.rb', line 14535
    +
    +def yaml_mapping_path_entries(content)
    +  document = Psych.parse_stream(content.to_s)
    +  entries = []
    +  document.children.each { |node| collect_yaml_mapping_path_entries(node, [], entries) }
    +  entries
    +rescue Psych::Exception
    +  []
    +end
    +
    @@ -54824,18 +70886,18 @@

     
     
    -5046
    -5047
    -5048
    -5049
    -5050
    -5051
    -5052
    -5053
    -5054
    +6155 +6156 +6157 +6158 +6159 +6160 +6161 +6162 +6163

    -
    # File 'lib/kettle/jem.rb', line 5046
    +      
    # File 'lib/kettle/jem.rb', line 6155
     
     def yaml_mapping_scalar_value(mapping, key)
       mapping.children.each_slice(2) do |key_node, value_node|
    @@ -54866,19 +70928,19 @@ 

     
     
    -11551
    -11552
    -11553
    -11554
    -11555
    -11556
    -11557
    -11558
    -11559
    -11560
    +14589 +14590 +14591 +14592 +14593 +14594 +14595 +14596 +14597 +14598

    -
    # File 'lib/kettle/jem.rb', line 11551
    +      
    # File 'lib/kettle/jem.rb', line 14589
     
     def yaml_mapping_value_node(content, key, node_class)
       yaml_mapping_nodes(content).each do |mapping|
    @@ -54910,25 +70972,25 @@ 

     
     
    -5731
    -5732
    -5733
    -5734
    -5735
    -5736
    -5737
    -5738
    -5739
    -5740
    -5741
    -5742
    -5743
    -5744
    -5745
    -5746
    +6947 +6948 +6949 +6950 +6951 +6952 +6953 +6954 +6955 +6956 +6957 +6958 +6959 +6960 +6961 +6962

    -
    # File 'lib/kettle/jem.rb', line 5731
    +      
    # File 'lib/kettle/jem.rb', line 6947
     
     def yaml_merge_options(recipe)
       options = {
    @@ -54989,12 +71051,12 @@ 

     
     
    -5076
    -5077
    -5078
    +6185 +6186 +6187

    -
    # File 'lib/kettle/jem.rb', line 5076
    +      
    # File 'lib/kettle/jem.rb', line 6185
     
     def yaml_process_result_adapter_failure?(merge_result)
       process_result_adapter_failure?(merge_result)
    @@ -55019,20 +71081,20 @@ 

     
     
    -6691
    -6692
    -6693
    -6694
    -6695
    -6696
    -6697
    -6698
    -6699
    -6700
    -6701
    +8600 +8601 +8602 +8603 +8604 +8605 +8606 +8607 +8608 +8609 +8610

    -
    # File 'lib/kettle/jem.rb', line 6691
    +      
    # File 'lib/kettle/jem.rb', line 8600
     
     def yaml_scalar_line_value(content, key)
       lines = content.to_s.lines
    @@ -55065,16 +71127,16 @@ 

     
     
    -11516
    -11517
    -11518
    -11519
    -11520
    -11521
    -11522
    +14518 +14519 +14520 +14521 +14522 +14523 +14524

    -
    # File 'lib/kettle/jem.rb', line 11516
    +      
    # File 'lib/kettle/jem.rb', line 14518
     
     def yaml_scalar_pairs(content)
       yaml_mapping_nodes(content).flat_map do |mapping|
    @@ -55103,17 +71165,17 @@ 

     
     
    -11524
    -11525
    -11526
    -11527
    -11528
    -11529
    -11530
    -11531
    +14526 +14527 +14528 +14529 +14530 +14531 +14532 +14533

    -
    # File 'lib/kettle/jem.rb', line 11524
    +      
    # File 'lib/kettle/jem.rb', line 14526
     
     def yaml_scalar_path_entries(content)
       document = Psych.parse_stream(content.to_s)
    @@ -55126,6 +71188,66 @@ 

    +
    + +
    +

    + + .yaml_scalar_sequence_at_path(content, path) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +14230
    +14231
    +14232
    +14233
    +14234
    +14235
    +14236
    +14237
    +14238
    +14239
    +14240
    +14241
    +14242
    +14243
    +14244
    +14245
    +14246
    +14247
    +
    +
    # File 'lib/kettle/jem.rb', line 14230
    +
    +def yaml_scalar_sequence_at_path(content, path)
    +  document = Psych.parse_stream(content.to_s).children.first
    +  node = path.reduce(document&.root) do |current, key|
    +    break nil unless current.is_a?(Psych::Nodes::Mapping)
    +
    +    pair = current.children.each_slice(2).find do |key_node, _value_node|
    +      key_node.is_a?(Psych::Nodes::Scalar) && key_node.value.to_s == key.to_s
    +    end
    +    pair&.last
    +  end
    +  return [] unless node.is_a?(Psych::Nodes::Sequence)
    +
    +  node.children.filter_map do |child|
    +    child.value.to_s if child.is_a?(Psych::Nodes::Scalar)
    +  end
    +rescue Psych::Exception
    +  []
    +end
    +
    @@ -55143,22 +71265,22 @@

     
     
    -11480
    -11481
    -11482
    -11483
    -11484
    -11485
    -11486
    -11487
    -11488
    -11489
    -11490
    -11491
    -11492
    +14378 +14379 +14380 +14381 +14382 +14383 +14384 +14385 +14386 +14387 +14388 +14389 +14390 -
    # File 'lib/kettle/jem.rb', line 11480
    +      
    # File 'lib/kettle/jem.rb', line 14378
     
     def yaml_top_level_key_lines(content)
       document = Psych.parse_stream(content.to_s).children.first
    @@ -55183,9 +71305,9 @@ 

    diff --git a/gems/kettle-jem/docs/Kettle/Jem/CLI.html b/gems/kettle-jem/docs/Kettle/Jem/CLI.html index ba118ad5a..4163251c8 100644 --- a/gems/kettle-jem/docs/Kettle/Jem/CLI.html +++ b/gems/kettle-jem/docs/Kettle/Jem/CLI.html @@ -6,7 +6,7 @@ Module: Kettle::Jem::CLI - — Documentation by YARD 0.9.44 + — Documentation by YARD 0.9.45 @@ -132,6 +132,29 @@

  • + .canonical_path(path) ⇒ Object + + + + + + + + + + + + + +
    +
    + +
  • + + +
  • + + .command_allowed?(command) ⇒ Boolean @@ -169,6 +192,29 @@

    +
    +
    + +

  • + + +
  • + + + .ensure_not_running_from_own_context!(command, project_root) ⇒ Object + + + + + + + + + + + + +
    @@ -462,7 +508,41 @@

    Class Method Details

    -

    +

    + + .canonical_path(path) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +221
    +222
    +223
    +224
    +225
    +
    +
    # File 'lib/kettle/jem/cli.rb', line 221
    +
    +def canonical_path(path)
    +  File.realpath(path)
    +rescue Errno::ENOENT
    +  File.expand_path(path)
    +end
    +
    +
    + +
    +

    .command_allowed?(command) ⇒ Boolean @@ -499,12 +579,12 @@

     
     
    -64
     65
    -66
    +66 +67 -
    # File 'lib/kettle/jem/cli.rb', line 64
    +      
    # File 'lib/kettle/jem/cli.rb', line 65
     
     def command_allowed?(command)
       %w[setup prepare plan apply template install manifest selftest help version].include?(command)
    @@ -552,12 +632,12 @@ 

     
     
    -248
    -249
    -250
    +277 +278 +279

    -
    # File 'lib/kettle/jem/cli.rb', line 248
    +      
    # File 'lib/kettle/jem/cli.rb', line 277
     
     def debug_enabled?(env)
       %w[DEBUG KETTLE_JEM_DEBUG KETTLE_DEV_DEBUG].any? { |key| env_true?(env_value(env, key)) }
    @@ -565,6 +645,77 @@ 

    +

    + +
    +

    + + .ensure_not_running_from_own_context!(command, project_root) ⇒ Object + + + + + +

    +
    + + + +
    +
    +
    + +

    Raises:

    +
      + +
    • + + + (ArgumentError) + + + +
    • + +
    + +
    + + + + +
    +
    +
    +
    +208
    +209
    +210
    +211
    +212
    +213
    +214
    +215
    +216
    +217
    +218
    +219
    +
    +
    # File 'lib/kettle/jem/cli.rb', line 208
    +
    +def ensure_not_running_from_own_context!(command, project_root)
    +  return if %w[help version].include?(command)
    +
    +  current_root = canonical_path(Dir.pwd)
    +  own_root = canonical_path(File.expand_path("../../..", __dir__))
    +  target_root = canonical_path(project_root)
    +  return unless current_root == own_root && target_root != own_root
    +
    +  raise ArgumentError,
    +    "Refusing to run kettle-jem from its own project root against #{project_root}; " \
    +    "run from the destination repository so its environment is loaded, or target kettle-jem itself."
    +end
    +
    @@ -605,12 +756,12 @@

     
     
    -252
    -253
    -254
    +281 +282 +283 -
    # File 'lib/kettle/jem/cli.rb', line 252
    +      
    # File 'lib/kettle/jem/cli.rb', line 281
     
     def env_true?(value)
       /\A(?:true|t|yes|y|on|1)\z/i.match?(value.to_s.strip)
    @@ -635,14 +786,14 @@ 

     
     
    -256
    -257
    -258
    -259
    -260
    +285 +286 +287 +288 +289

    -
    # File 'lib/kettle/jem/cli.rb', line 256
    +      
    # File 'lib/kettle/jem/cli.rb', line 285
     
     def env_value(env, key)
       env.fetch(key, nil)
    @@ -669,13 +820,6 @@ 

     
     
    -162
    -163
    -164
    -165
    -166
    -167
    -168
     169
     170
     171
    @@ -701,10 +845,17 @@ 

    191 192 193 -194

    +194 +195 +196 +197 +198 +199 +200 +201

    -
    # File 'lib/kettle/jem/cli.rb', line 162
    +      
    # File 'lib/kettle/jem/cli.rb', line 169
     
     def execute(command, project_root:, env:, options:)
       case command
    @@ -782,7 +933,6 @@ 

     
     
    -48
     49
     50
     51
    @@ -796,10 +946,11 @@ 

    59 60 61 -62

    +62 +63

    -
    # File 'lib/kettle/jem/cli.rb', line 48
    +      
    # File 'lib/kettle/jem/cli.rb', line 49
     
     def normalize_command(argv)
       args = Array(argv).dup
    @@ -859,7 +1010,6 @@ 

     
     
    -68
     69
     70
     71
    @@ -951,10 +1101,17 @@ 

    157 158 159 -160

    +160 +161 +162 +163 +164 +165 +166 +167

    -
    # File 'lib/kettle/jem/cli.rb', line 68
    +      
    # File 'lib/kettle/jem/cli.rb', line 69
     
     def parse_options(args)
       options = {
    @@ -1030,6 +1187,12 @@ 

    opts.on("--template-profile PROFILE", "Use a packaged template profile.") do |value| options[:run_options][:template_profile] = value end + opts.on("--shimmed-gem GEM", "Runtime gem required by the shim profile.") do |value| + options[:run_options][:shimmed_gem] = value + end + opts.on("--shimmed-require REQUIRE", "Require path loaded by the shim profile.") do |value| + options[:run_options][:shimmed_require] = value + end opts.on("--destination PATH", "Selftest destination root.") do |path| options[:destination_root] = path end @@ -1069,23 +1232,23 @@

    -
    # File 'lib/kettle/jem/cli.rb', line 239
    +      
    # File 'lib/kettle/jem/cli.rb', line 268
     
     def print_debug_snapshot(command, project_root:, env:, err:)
       err.puts("[kettle-jem] DEBUG: early environment snapshot")
       err.puts("  command=#{command.inspect}")
       err.puts("  project_root=#{project_root.inspect}")
    -  %w[DEBUG KETTLE_JEM_DEBUG KETTLE_DEV_DEBUG KETTLE_RB_DEV BUNDLE_GEMFILE BUNDLE_PATH GEM_HOME GEM_PATH RUBYOPT RUBYLIB PWD].each do |key|
    +  %w[DEBUG KETTLE_JEM_DEBUG KETTLE_DEV_DEBUG KETTLE_DEV_DEV BUNDLE_GEMFILE BUNDLE_PATH GEM_HOME GEM_PATH RUBYOPT RUBYLIB PWD].each do |key|
         err.puts("  #{key}=#{env_value(env, key).inspect}")
       end
     end
    @@ -1109,13 +1272,13 @@
    -
    # File 'lib/kettle/jem/cli.rb', line 262
    +      
    # File 'lib/kettle/jem/cli.rb', line 291
     
     def print_help(out)
       out.puts(USAGE)
    @@ -1141,41 +1304,44 @@ 
    -
    # File 'lib/kettle/jem/cli.rb', line 201
    +      
    # File 'lib/kettle/jem/cli.rb', line 227
     
     def print_result(command, result, options:, out:)
       return if options.fetch(:run_options, {})[:quiet] && !options[:json]
    @@ -1207,6 +1373,9 @@ 
    @@ -1229,13 +1398,13 @@
    -
    # File 'lib/kettle/jem/cli.rb', line 267
    +      
    # File 'lib/kettle/jem/cli.rb', line 296
     
     def print_version(out)
       out.puts(Kettle::Jem::Version::VERSION)
    @@ -1281,7 +1450,8 @@ 

    43 44 45 -46

    +46 +47
    # File 'lib/kettle/jem/cli.rb', line 26
    @@ -1293,6 +1463,7 @@ 

    options = parse_options(args) project_root = File.expand_path(options.fetch(:project_root) || Dir.pwd) + ensure_not_running_from_own_context!(command, project_root) print_debug_snapshot(command, project_root: project_root, env: env, err: err) if debug_enabled?(env) result = execute(command, project_root: project_root, env: env, options: options) write_report(options[:report_path], result) if options[:report_path] @@ -1350,13 +1521,13 @@

     
     
    -196
    -197
    -198
    -199
    +203 +204 +205 +206

    -
    # File 'lib/kettle/jem/cli.rb', line 196
    +      
    # File 'lib/kettle/jem/cli.rb', line 203
     
     def scoped_template_run?(run_options)
       run_options = run_options.to_h
    @@ -1382,13 +1553,13 @@ 

     
     
    -234
    -235
    -236
    -237
    +263 +264 +265 +266

    -
    # File 'lib/kettle/jem/cli.rb', line 234
    +      
    # File 'lib/kettle/jem/cli.rb', line 263
     
     def write_report(path, result)
       FileUtils.mkdir_p(File.dirname(File.expand_path(path)))
    @@ -1404,9 +1575,9 @@ 

    diff --git a/gems/kettle-jem/docs/Kettle/Jem/DecisionEvaluation.html b/gems/kettle-jem/docs/Kettle/Jem/DecisionEvaluation.html index 4066377bd..3c5e280f6 100644 --- a/gems/kettle-jem/docs/Kettle/Jem/DecisionEvaluation.html +++ b/gems/kettle-jem/docs/Kettle/Jem/DecisionEvaluation.html @@ -6,7 +6,7 @@ Class: Kettle::Jem::DecisionEvaluation - — Documentation by YARD 0.9.44 + — Documentation by YARD 0.9.45 @@ -486,12 +486,12 @@

     
     
    -372
    -373
    -374
    +414 +415 +416 -
    # File 'lib/kettle/jem.rb', line 372
    +      
    # File 'lib/kettle/jem.rb', line 414
     
     def blocking
       @blocking
    @@ -545,12 +545,12 @@ 

     
     
    -372
    -373
    -374
    +414 +415 +416

    -
    # File 'lib/kettle/jem.rb', line 372
    +      
    # File 'lib/kettle/jem.rb', line 414
     
     def category
       @category
    @@ -604,12 +604,12 @@ 

     
     
    -372
    -373
    -374
    +414 +415 +416

    -
    # File 'lib/kettle/jem.rb', line 372
    +      
    # File 'lib/kettle/jem.rb', line 414
     
     def default_action
       @default_action
    @@ -663,12 +663,12 @@ 

     
     
    -372
    -373
    -374
    +414 +415 +416

    -
    # File 'lib/kettle/jem.rb', line 372
    +      
    # File 'lib/kettle/jem.rb', line 414
     
     def diagnostics
       @diagnostics
    @@ -722,12 +722,12 @@ 

     
     
    -372
    -373
    -374
    +414 +415 +416

    -
    # File 'lib/kettle/jem.rb', line 372
    +      
    # File 'lib/kettle/jem.rb', line 414
     
     def file
       @file
    @@ -781,12 +781,12 @@ 

     
     
    -372
    -373
    -374
    +414 +415 +416

    -
    # File 'lib/kettle/jem.rb', line 372
    +      
    # File 'lib/kettle/jem.rb', line 414
     
     def id
       @id
    @@ -840,12 +840,12 @@ 

     
     
    -372
    -373
    -374
    +414 +415 +416

    -
    # File 'lib/kettle/jem.rb', line 372
    +      
    # File 'lib/kettle/jem.rb', line 414
     
     def prompt
       @prompt
    @@ -899,12 +899,12 @@ 

     
     
    -372
    -373
    -374
    +414 +415 +416

    -
    # File 'lib/kettle/jem.rb', line 372
    +      
    # File 'lib/kettle/jem.rb', line 414
     
     def prompt_required
       @prompt_required
    @@ -958,12 +958,12 @@ 

     
     
    -372
    -373
    -374
    +414 +415 +416

    -
    # File 'lib/kettle/jem.rb', line 372
    +      
    # File 'lib/kettle/jem.rb', line 414
     
     def selected_action
       @selected_action
    @@ -1017,12 +1017,12 @@ 

     
     
    -372
    -373
    -374
    +414 +415 +416

    -
    # File 'lib/kettle/jem.rb', line 372
    +      
    # File 'lib/kettle/jem.rb', line 414
     
     def severity
       @severity
    @@ -1076,12 +1076,12 @@ 

     
     
    -372
    -373
    -374
    +414 +415 +416

    -
    # File 'lib/kettle/jem.rb', line 372
    +      
    # File 'lib/kettle/jem.rb', line 414
     
     def source
       @source
    @@ -1113,24 +1113,24 @@ 

     
     
    -385
    -386
    -387
    -388
    -389
    -390
    -391
    -392
    -393
    -394
    -395
    -396
    -397
    -398
    -399
    +427 +428 +429 +430 +431 +432 +433 +434 +435 +436 +437 +438 +439 +440 +441

    -
    # File 'lib/kettle/jem.rb', line 385
    +      
    # File 'lib/kettle/jem.rb', line 427
     
     def to_h
       {
    @@ -1157,9 +1157,9 @@ 

    diff --git a/gems/kettle-jem/docs/Kettle/Jem/DecisionPolicy.html b/gems/kettle-jem/docs/Kettle/Jem/DecisionPolicy.html index cc3cd043e..f83ee2a01 100644 --- a/gems/kettle-jem/docs/Kettle/Jem/DecisionPolicy.html +++ b/gems/kettle-jem/docs/Kettle/Jem/DecisionPolicy.html @@ -6,7 +6,7 @@ Class: Kettle::Jem::DecisionPolicy - — Documentation by YARD 0.9.44 + — Documentation by YARD 0.9.45 @@ -603,16 +603,16 @@

     
     
    -457
    -458
    -459
    -460
    -461
    -462
    -463
    +499 +500 +501 +502 +503 +504 +505

    -
    # File 'lib/kettle/jem.rb', line 457
    +      
    # File 'lib/kettle/jem.rb', line 499
     
     def initialize(mode: :accept, failure_mode: "error", require_clean: nil, input_source: "default", prompt_answers: {})
       @mode = normalize_mode(mode)
    @@ -658,12 +658,12 @@ 

     
     
    -406
    -407
    -408
    +448 +449 +450

    -
    # File 'lib/kettle/jem.rb', line 406
    +      
    # File 'lib/kettle/jem.rb', line 448
     
     def failure_mode
       @failure_mode
    @@ -700,12 +700,12 @@ 

     
     
    -406
    -407
    -408
    +448 +449 +450

    -
    # File 'lib/kettle/jem.rb', line 406
    +      
    # File 'lib/kettle/jem.rb', line 448
     
     def input_source
       @input_source
    @@ -742,12 +742,12 @@ 

     
     
    -406
    -407
    -408
    +448 +449 +450

    -
    # File 'lib/kettle/jem.rb', line 406
    +      
    # File 'lib/kettle/jem.rb', line 448
     
     def mode
       @mode
    @@ -784,12 +784,12 @@ 

     
     
    -406
    -407
    -408
    +448 +449 +450

    -
    # File 'lib/kettle/jem.rb', line 406
    +      
    # File 'lib/kettle/jem.rb', line 448
     
     def prompt_answers
       @prompt_answers
    @@ -826,12 +826,12 @@ 

     
     
    -406
    -407
    -408
    +448 +449 +450

    -
    # File 'lib/kettle/jem.rb', line 406
    +      
    # File 'lib/kettle/jem.rb', line 448
     
     def require_clean
       @require_clean
    @@ -886,12 +886,12 @@ 

     
     
    -433
    -434
    -435
    +475 +476 +477

    -
    # File 'lib/kettle/jem.rb', line 433
    +      
    # File 'lib/kettle/jem.rb', line 475
     
     def self.falsey?(value)
       FALSE_VALUES.include?(value.to_s.strip.downcase)
    @@ -916,25 +916,25 @@ 

     
     
    -408
    -409
    -410
    -411
    -412
    -413
    -414
    -415
    -416
    -417
    -418
    -419
    -420
    -421
    -422
    -423
    +450 +451 +452 +453 +454 +455 +456 +457 +458 +459 +460 +461 +462 +463 +464 +465

    -
    # File 'lib/kettle/jem.rb', line 408
    +      
    # File 'lib/kettle/jem.rb', line 450
     
     def self.from_env(env = {}, **options)
       env_hash = env || {}
    @@ -972,19 +972,19 @@ 

     
     
    -446
    -447
    -448
    -449
    -450
    -451
    -452
    -453
    -454
    -455
    +488 +489 +490 +491 +492 +493 +494 +495 +496 +497

    -
    # File 'lib/kettle/jem.rb', line 446
    +      
    # File 'lib/kettle/jem.rb', line 488
     
     def self.parse_prompt_answers(value)
       return {} if value.nil? || value.to_s.strip.empty?
    @@ -1016,12 +1016,12 @@ 

     
     
    -425
    -426
    -427
    +467 +468 +469

    -
    # File 'lib/kettle/jem.rb', line 425
    +      
    # File 'lib/kettle/jem.rb', line 467
     
     def self.symbolize_keys(hash)
       hash.each_with_object({}) { |(key, value), acc| acc[key.to_sym] = value }
    @@ -1069,12 +1069,12 @@ 

     
     
    -429
    -430
    -431
    +471 +472 +473

    -
    # File 'lib/kettle/jem.rb', line 429
    +      
    # File 'lib/kettle/jem.rb', line 471
     
     def self.truthy?(value)
       TRUE_VALUES.include?(value.to_s.strip.downcase)
    @@ -1099,17 +1099,17 @@ 

     
     
    -437
    -438
    -439
    -440
    -441
    -442
    -443
    -444
    +479 +480 +481 +482 +483 +484 +485 +486

    -
    # File 'lib/kettle/jem.rb', line 437
    +      
    # File 'lib/kettle/jem.rb', line 479
     
     def self.value_to_boolean(value)
       return true if value == true
    @@ -1168,12 +1168,12 @@ 

     
     
    -465
    -466
    -467
    +507 +508 +509

    -
    # File 'lib/kettle/jem.rb', line 465
    +      
    # File 'lib/kettle/jem.rb', line 507
     
     def accept?
       mode == :accept
    @@ -1221,12 +1221,12 @@ 

     
     
    -469
    -470
    -471
    +511 +512 +513

    -
    # File 'lib/kettle/jem.rb', line 469
    +      
    # File 'lib/kettle/jem.rb', line 511
     
     def interactive?
       mode == :interactive
    @@ -1274,12 +1274,12 @@ 

     
     
    -473
    -474
    -475
    +515 +516 +517

    -
    # File 'lib/kettle/jem.rb', line 473
    +      
    # File 'lib/kettle/jem.rb', line 515
     
     def non_interactive?
       !interactive?
    @@ -1327,55 +1327,55 @@ 

     
     
    -477
    -478
    -479
    -480
    -481
    -482
    -483
    -484
    -485
    -486
    -487
    -488
    -489
    -490
    -491
    -492
    -493
    -494
    -495
    -496
    -497
    -498
    -499
    -500
    -501
    -502
    -503
    -504
    -505
    -506
    -507
    -508
    -509
    -510
    -511
    -512
    -513
    -514
    -515
    -516
    -517
    -518
     519
     520
     521
    -522
    +522 +523 +524 +525 +526 +527 +528 +529 +530 +531 +532 +533 +534 +535 +536 +537 +538 +539 +540 +541 +542 +543 +544 +545 +546 +547 +548 +549 +550 +551 +552 +553 +554 +555 +556 +557 +558 +559 +560 +561 +562 +563 +564

    -
    # File 'lib/kettle/jem.rb', line 477
    +      
    # File 'lib/kettle/jem.rb', line 519
     
     def resolve(id:, category:, default_action:, file: nil, severity: :advisory, diagnostics: [])
       action = normalize_action(default_action)
    @@ -1443,21 +1443,21 @@ 

     
     
    -524
    -525
    -526
    -527
    -528
    -529
    -530
    -531
    -532
    -533
    -534
    -535
    +566 +567 +568 +569 +570 +571 +572 +573 +574 +575 +576 +577

    -
    # File 'lib/kettle/jem.rb', line 524
    +      
    # File 'lib/kettle/jem.rb', line 566
     
     def to_h
       {
    @@ -1481,9 +1481,9 @@ 

    diff --git a/gems/kettle-jem/docs/Kettle/Jem/Error.html b/gems/kettle-jem/docs/Kettle/Jem/Error.html index d2d83d12b..65b753df6 100644 --- a/gems/kettle-jem/docs/Kettle/Jem/Error.html +++ b/gems/kettle-jem/docs/Kettle/Jem/Error.html @@ -6,7 +6,7 @@ Exception: Kettle::Jem::Error - — Documentation by YARD 0.9.44 + — Documentation by YARD 0.9.45 @@ -117,9 +117,9 @@ diff --git a/gems/kettle-jem/docs/Kettle/Jem/GemSpecReader.html b/gems/kettle-jem/docs/Kettle/Jem/GemSpecReader.html index 596ef9b07..5309cee4d 100644 --- a/gems/kettle-jem/docs/Kettle/Jem/GemSpecReader.html +++ b/gems/kettle-jem/docs/Kettle/Jem/GemSpecReader.html @@ -6,7 +6,7 @@ Class: Kettle::Jem::GemSpecReader - — Documentation by YARD 0.9.44 + — Documentation by YARD 0.9.45 @@ -204,12 +204,12 @@

     
     
    -973
    -974
    -975
    +1112 +1113 +1114

    -
    # File 'lib/kettle/jem.rb', line 973
    +      
    # File 'lib/kettle/jem.rb', line 1112
     
     def clear_cache!
       CACHE.mutex.synchronize { CACHE.entries.clear }
    @@ -234,24 +234,24 @@ 

     
     
    -957
    -958
    -959
    -960
    -961
    -962
    -963
    -964
    -965
    -966
    -967
    -968
    -969
    -970
    -971
    +1096 +1097 +1098 +1099 +1100 +1101 +1102 +1103 +1104 +1105 +1106 +1107 +1108 +1109 +1110

    -
    # File 'lib/kettle/jem.rb', line 957
    +      
    # File 'lib/kettle/jem.rb', line 1096
     
     def load(root)
       cache_key = File.expand_path(root.to_s)
    @@ -278,9 +278,9 @@ 

    diff --git a/gems/kettle-jem/docs/Kettle/Jem/PluginContext.html b/gems/kettle-jem/docs/Kettle/Jem/PluginContext.html index 80115abfb..05ee628ab 100644 --- a/gems/kettle-jem/docs/Kettle/Jem/PluginContext.html +++ b/gems/kettle-jem/docs/Kettle/Jem/PluginContext.html @@ -6,7 +6,7 @@ Class: Kettle::Jem::PluginContext - — Documentation by YARD 0.9.44 + — Documentation by YARD 0.9.45 @@ -459,21 +459,21 @@

     
     
    -1349
    -1350
    -1351
    -1352
    -1353
    -1354
    -1355
    -1356
    -1357
    -1358
    -1359
    -1360
    +1491 +1492 +1493 +1494 +1495 +1496 +1497 +1498 +1499 +1500 +1501 +1502

    -
    # File 'lib/kettle/jem.rb', line 1349
    +      
    # File 'lib/kettle/jem.rb', line 1491
     
     def initialize(project_root:, mode:, facts:, recipe_pack:, recipe_reports:, changed_files:, diagnostics:, phase_reports: [])
       @project_root = project_root
    @@ -524,12 +524,12 @@ 

     
     
    -1338
    -1339
    -1340
    +1480 +1481 +1482

    -
    # File 'lib/kettle/jem.rb', line 1338
    +      
    # File 'lib/kettle/jem.rb', line 1480
     
     def changed_files
       @changed_files
    @@ -566,12 +566,12 @@ 

     
     
    -1338
    -1339
    -1340
    +1480 +1481 +1482

    -
    # File 'lib/kettle/jem.rb', line 1338
    +      
    # File 'lib/kettle/jem.rb', line 1480
     
     def diagnostics
       @diagnostics
    @@ -608,12 +608,12 @@ 

     
     
    -1338
    -1339
    -1340
    +1480 +1481 +1482

    -
    # File 'lib/kettle/jem.rb', line 1338
    +      
    # File 'lib/kettle/jem.rb', line 1480
     
     def facts
       @facts
    @@ -650,12 +650,12 @@ 

     
     
    -1338
    -1339
    -1340
    +1480 +1481 +1482

    -
    # File 'lib/kettle/jem.rb', line 1338
    +      
    # File 'lib/kettle/jem.rb', line 1480
     
     def helpers
       @helpers
    @@ -692,12 +692,12 @@ 

     
     
    -1338
    -1339
    -1340
    +1480 +1481 +1482

    -
    # File 'lib/kettle/jem.rb', line 1338
    +      
    # File 'lib/kettle/jem.rb', line 1480
     
     def mode
       @mode
    @@ -734,12 +734,12 @@ 

     
     
    -1338
    -1339
    -1340
    +1480 +1481 +1482

    -
    # File 'lib/kettle/jem.rb', line 1338
    +      
    # File 'lib/kettle/jem.rb', line 1480
     
     def out
       @out
    @@ -776,12 +776,12 @@ 

     
     
    -1338
    -1339
    -1340
    +1480 +1481 +1482

    -
    # File 'lib/kettle/jem.rb', line 1338
    +      
    # File 'lib/kettle/jem.rb', line 1480
     
     def phase_reports
       @phase_reports
    @@ -818,12 +818,12 @@ 

     
     
    -1338
    -1339
    -1340
    +1480 +1481 +1482

    -
    # File 'lib/kettle/jem.rb', line 1338
    +      
    # File 'lib/kettle/jem.rb', line 1480
     
     def project_root
       @project_root
    @@ -860,12 +860,12 @@ 

     
     
    -1338
    -1339
    -1340
    +1480 +1481 +1482

    -
    # File 'lib/kettle/jem.rb', line 1338
    +      
    # File 'lib/kettle/jem.rb', line 1480
     
     def recipe_pack
       @recipe_pack
    @@ -902,12 +902,12 @@ 

     
     
    -1338
    -1339
    -1340
    +1480 +1481 +1482

    -
    # File 'lib/kettle/jem.rb', line 1338
    +      
    # File 'lib/kettle/jem.rb', line 1480
     
     def recipe_reports
       @recipe_reports
    @@ -923,9 +923,9 @@ 

    diff --git a/gems/kettle-jem/docs/Kettle/Jem/PluginHelpers.html b/gems/kettle-jem/docs/Kettle/Jem/PluginHelpers.html index d3d45d5df..85def55d1 100644 --- a/gems/kettle-jem/docs/Kettle/Jem/PluginHelpers.html +++ b/gems/kettle-jem/docs/Kettle/Jem/PluginHelpers.html @@ -6,7 +6,7 @@ Class: Kettle::Jem::PluginHelpers - — Documentation by YARD 0.9.44 + — Documentation by YARD 0.9.45 @@ -197,14 +197,14 @@

     
     
    -1364
    -1365
    -1366
    -1367
    -1368
    +1506 +1507 +1508 +1509 +1510

    -
    # File 'lib/kettle/jem.rb', line 1364
    +      
    # File 'lib/kettle/jem.rb', line 1506
     
     def initialize(project_root:, changed_files:, diagnostics:)
       @project_root = project_root
    @@ -238,19 +238,19 @@ 

     
     
    -1370
    -1371
    -1372
    -1373
    -1374
    -1375
    -1376
    -1377
    -1378
    -1379
    +1512 +1513 +1514 +1515 +1516 +1517 +1518 +1519 +1520 +1521

    -
    # File 'lib/kettle/jem.rb', line 1370
    +      
    # File 'lib/kettle/jem.rb', line 1512
     
     def record_template_result(path, action)
       relative_path = relative_project_path(path)
    @@ -272,9 +272,9 @@ 

    diff --git a/gems/kettle-jem/docs/Kettle/Jem/PluginLoader.html b/gems/kettle-jem/docs/Kettle/Jem/PluginLoader.html index ec3be4a00..2674d06c8 100644 --- a/gems/kettle-jem/docs/Kettle/Jem/PluginLoader.html +++ b/gems/kettle-jem/docs/Kettle/Jem/PluginLoader.html @@ -6,7 +6,7 @@ Module: Kettle::Jem::PluginLoader - — Documentation by YARD 0.9.44 + — Documentation by YARD 0.9.45 @@ -280,12 +280,12 @@

     
     
    -1332
    -1333
    -1334
    +1474 +1475 +1476

    -
    # File 'lib/kettle/jem.rb', line 1332
    +      
    # File 'lib/kettle/jem.rb', line 1474
     
     def camelize(value)
       value.to_s.split("_").map(&:capitalize).join
    @@ -310,15 +310,15 @@ 

     
     
    -1295
    -1296
    -1297
    -1298
    -1299
    -1300
    +1437 +1438 +1439 +1440 +1441 +1442

    -
    # File 'lib/kettle/jem.rb', line 1295
    +      
    # File 'lib/kettle/jem.rb', line 1437
     
     def load!(plugin_names:)
       names = normalize_plugin_names(plugin_names)
    @@ -346,23 +346,23 @@ 

     
     
    -1302
    -1303
    -1304
    -1305
    -1306
    -1307
    -1308
    -1309
    -1310
    -1311
    -1312
    -1313
    -1314
    -1315
    +1444 +1445 +1446 +1447 +1448 +1449 +1450 +1451 +1452 +1453 +1454 +1455 +1456 +1457

    -
    # File 'lib/kettle/jem.rb', line 1302
    +      
    # File 'lib/kettle/jem.rb', line 1444
     
     def load_plugin!(plugin_name, registry:)
       require(plugin_require_path(plugin_name))
    @@ -398,12 +398,12 @@ 

     
     
    -1317
    -1318
    -1319
    +1459 +1460 +1461

    -
    # File 'lib/kettle/jem.rb', line 1317
    +      
    # File 'lib/kettle/jem.rb', line 1459
     
     def normalize_plugin_names(plugin_names)
       Array(plugin_names).flatten.map { |name| name.to_s.strip }.reject(&:empty?).uniq
    @@ -428,15 +428,15 @@ 

     
     
    -1325
    -1326
    -1327
    -1328
    -1329
    -1330
    +1467 +1468 +1469 +1470 +1471 +1472

    -
    # File 'lib/kettle/jem.rb', line 1325
    +      
    # File 'lib/kettle/jem.rb', line 1467
     
     def plugin_handle(plugin_name)
       constant_name = plugin_name.to_s.split("-").map { |part| camelize(part) }.join("::")
    @@ -464,12 +464,12 @@ 

     
     
    -1321
    -1322
    -1323
    +1463 +1464 +1465

    -
    # File 'lib/kettle/jem.rb', line 1321
    +      
    # File 'lib/kettle/jem.rb', line 1463
     
     def plugin_require_path(plugin_name)
       plugin_name.to_s.tr("-", "/")
    @@ -484,9 +484,9 @@ 

    diff --git a/gems/kettle-jem/docs/Kettle/Jem/PluginOutput.html b/gems/kettle-jem/docs/Kettle/Jem/PluginOutput.html index d299bd55d..a08da4e0e 100644 --- a/gems/kettle-jem/docs/Kettle/Jem/PluginOutput.html +++ b/gems/kettle-jem/docs/Kettle/Jem/PluginOutput.html @@ -6,7 +6,7 @@ Class: Kettle::Jem::PluginOutput - — Documentation by YARD 0.9.44 + — Documentation by YARD 0.9.45 @@ -220,12 +220,12 @@

     
     
    -1402
    -1403
    -1404
    +1544 +1545 +1546

    -
    # File 'lib/kettle/jem.rb', line 1402
    +      
    # File 'lib/kettle/jem.rb', line 1544
     
     def initialize(diagnostics:)
       @diagnostics = diagnostics
    @@ -257,12 +257,12 @@ 

     
     
    -1406
    -1407
    -1408
    +1548 +1549 +1550

    -
    # File 'lib/kettle/jem.rb', line 1406
    +      
    # File 'lib/kettle/jem.rb', line 1548
     
     def report_detail(message)
       @diagnostics << {kind: "plugin_detail", message: message.to_s}
    @@ -287,12 +287,12 @@ 

     
     
    -1410
    -1411
    -1412
    +1552 +1553 +1554

    -
    # File 'lib/kettle/jem.rb', line 1410
    +      
    # File 'lib/kettle/jem.rb', line 1552
     
     def warning(message)
       @diagnostics << {kind: "plugin_warning", message: message.to_s}
    @@ -307,9 +307,9 @@ 

    diff --git a/gems/kettle-jem/docs/Kettle/Jem/PluginRegistrar.html b/gems/kettle-jem/docs/Kettle/Jem/PluginRegistrar.html index 9eedb58ab..81ab8be67 100644 --- a/gems/kettle-jem/docs/Kettle/Jem/PluginRegistrar.html +++ b/gems/kettle-jem/docs/Kettle/Jem/PluginRegistrar.html @@ -6,7 +6,7 @@ Class: Kettle::Jem::PluginRegistrar - — Documentation by YARD 0.9.44 + — Documentation by YARD 0.9.45 @@ -276,13 +276,13 @@

     
     
    -1272
    -1273
    -1274
    -1275
    +1414 +1415 +1416 +1417

    -
    # File 'lib/kettle/jem.rb', line 1272
    +      
    # File 'lib/kettle/jem.rb', line 1414
     
     def initialize(plugin_name:, registry:)
       @plugin_name = plugin_name.to_s
    @@ -325,12 +325,12 @@ 

     
     
    -1270
    -1271
    -1272
    +1412 +1413 +1414

    -
    # File 'lib/kettle/jem.rb', line 1270
    +      
    # File 'lib/kettle/jem.rb', line 1412
     
     def plugin_name
       @plugin_name
    @@ -362,12 +362,12 @@ 

     
     
    -1285
    -1286
    -1287
    +1427 +1428 +1429

    -
    # File 'lib/kettle/jem.rb', line 1285
    +      
    # File 'lib/kettle/jem.rb', line 1427
     
     def after_phase(phase, &block)
       on_phase(phase, timing: :after, &block)
    @@ -392,12 +392,12 @@ 

     
     
    -1281
    -1282
    -1283
    +1423 +1424 +1425

    -
    # File 'lib/kettle/jem.rb', line 1281
    +      
    # File 'lib/kettle/jem.rb', line 1423
     
     def before_phase(phase, &block)
       on_phase(phase, timing: :before, &block)
    @@ -422,12 +422,12 @@ 

     
     
    -1277
    -1278
    -1279
    +1419 +1420 +1421

    -
    # File 'lib/kettle/jem.rb', line 1277
    +      
    # File 'lib/kettle/jem.rb', line 1419
     
     def on_phase(phase, timing: :after, &block)
       @registry.register(plugin_name: plugin_name, phase: phase, timing: timing, &block)
    @@ -442,9 +442,9 @@ 

    diff --git a/gems/kettle-jem/docs/Kettle/Jem/PluginRegistry.html b/gems/kettle-jem/docs/Kettle/Jem/PluginRegistry.html index 94f2cce2f..d66e04ce2 100644 --- a/gems/kettle-jem/docs/Kettle/Jem/PluginRegistry.html +++ b/gems/kettle-jem/docs/Kettle/Jem/PluginRegistry.html @@ -6,7 +6,7 @@ Class: Kettle::Jem::PluginRegistry - — Documentation by YARD 0.9.44 + — Documentation by YARD 0.9.45 @@ -386,15 +386,15 @@

     
     
    -1212
    -1213
    -1214
    -1215
    -1216
    -1217
    +1354 +1355 +1356 +1357 +1358 +1359

    -
    # File 'lib/kettle/jem.rb', line 1212
    +      
    # File 'lib/kettle/jem.rb', line 1354
     
     def initialize(configured_plugins: [], loaded_plugins: [])
       @hooks = []
    @@ -439,12 +439,12 @@ 

     
     
    -1210
    -1211
    -1212
    +1352 +1353 +1354

    -
    # File 'lib/kettle/jem.rb', line 1210
    +      
    # File 'lib/kettle/jem.rb', line 1352
     
     def configured_plugins
       @configured_plugins
    @@ -481,12 +481,12 @@ 

     
     
    -1210
    -1211
    -1212
    +1352 +1353 +1354

    -
    # File 'lib/kettle/jem.rb', line 1210
    +      
    # File 'lib/kettle/jem.rb', line 1352
     
     def hooks
       @hooks
    @@ -523,12 +523,12 @@ 

     
     
    -1210
    -1211
    -1212
    +1352 +1353 +1354

    -
    # File 'lib/kettle/jem.rb', line 1210
    +      
    # File 'lib/kettle/jem.rb', line 1352
     
     def load_errors
       @load_errors
    @@ -565,12 +565,12 @@ 

     
     
    -1210
    -1211
    -1212
    +1352 +1353 +1354

    -
    # File 'lib/kettle/jem.rb', line 1210
    +      
    # File 'lib/kettle/jem.rb', line 1352
     
     def loaded_plugins
       @loaded_plugins
    @@ -625,12 +625,12 @@ 

     
     
    -1244
    -1245
    -1246
    +1386 +1387 +1388

    -
    # File 'lib/kettle/jem.rb', line 1244
    +      
    # File 'lib/kettle/jem.rb', line 1386
     
     def empty?
       @hooks.empty?
    @@ -678,19 +678,19 @@ 

     
     
    -1219
    -1220
    -1221
    -1222
    -1223
    -1224
    -1225
    -1226
    -1227
    -1228
    +1361 +1362 +1363 +1364 +1365 +1366 +1367 +1368 +1369 +1370

    -
    # File 'lib/kettle/jem.rb', line 1219
    +      
    # File 'lib/kettle/jem.rb', line 1361
     
     def register(plugin_name:, phase:, timing:, &callback)
       raise ArgumentError, "Plugin callbacks require a block" unless callback
    @@ -722,22 +722,22 @@ 

     
     
    -1230
    -1231
    -1232
    -1233
    -1234
    -1235
    -1236
    -1237
    -1238
    -1239
    -1240
    -1241
    -1242
    +1372 +1373 +1374 +1375 +1376 +1377 +1378 +1379 +1380 +1381 +1382 +1383 +1384

    -
    # File 'lib/kettle/jem.rb', line 1230
    +      
    # File 'lib/kettle/jem.rb', line 1372
     
     def run(timing:, phase:, context:, actor:, phase_stats:)
       normalized_phase = normalize_phase(phase)
    @@ -762,9 +762,9 @@ 

    diff --git a/gems/kettle-jem/docs/Kettle/Jem/PluginRegistry/Hook.html b/gems/kettle-jem/docs/Kettle/Jem/PluginRegistry/Hook.html index 6308371fd..59d85d98b 100644 --- a/gems/kettle-jem/docs/Kettle/Jem/PluginRegistry/Hook.html +++ b/gems/kettle-jem/docs/Kettle/Jem/PluginRegistry/Hook.html @@ -6,7 +6,7 @@ Class: Kettle::Jem::PluginRegistry::Hook - — Documentation by YARD 0.9.44 + — Documentation by YARD 0.9.45 @@ -269,12 +269,12 @@

     
     
    -1207
    -1208
    -1209
    +1349 +1350 +1351

    -
    # File 'lib/kettle/jem.rb', line 1207
    +      
    # File 'lib/kettle/jem.rb', line 1349
     
     def callback
       @callback
    @@ -328,12 +328,12 @@ 

     
     
    -1207
    -1208
    -1209
    +1349 +1350 +1351

    -
    # File 'lib/kettle/jem.rb', line 1207
    +      
    # File 'lib/kettle/jem.rb', line 1349
     
     def phase
       @phase
    @@ -387,12 +387,12 @@ 

     
     
    -1207
    -1208
    -1209
    +1349 +1350 +1351

    -
    # File 'lib/kettle/jem.rb', line 1207
    +      
    # File 'lib/kettle/jem.rb', line 1349
     
     def plugin_name
       @plugin_name
    @@ -446,12 +446,12 @@ 

     
     
    -1207
    -1208
    -1209
    +1349 +1350 +1351

    -
    # File 'lib/kettle/jem.rb', line 1207
    +      
    # File 'lib/kettle/jem.rb', line 1349
     
     def timing
       @timing
    @@ -467,9 +467,9 @@ 

    diff --git a/gems/kettle-jem/docs/Kettle/Jem/ReadmePostProcessor.html b/gems/kettle-jem/docs/Kettle/Jem/ReadmePostProcessor.html index a64950abf..e773940b5 100644 --- a/gems/kettle-jem/docs/Kettle/Jem/ReadmePostProcessor.html +++ b/gems/kettle-jem/docs/Kettle/Jem/ReadmePostProcessor.html @@ -6,7 +6,7 @@ Module: Kettle::Jem::ReadmePostProcessor - — Documentation by YARD 0.9.44 + — Documentation by YARD 0.9.45 @@ -137,6 +137,36 @@

    }.freeze }.freeze

    +
    VERSIONED_ENGINE_COMPATIBILITY_BADGES = + +
    +
    [
    +  {
    +    engine: "jruby",
    +    version: "10.0",
    +    workflow_path: ".github/workflows/jruby-10.0.yml",
    +    workflow_file: "jruby-10.0.yml",
    +    row_prefix: "| Works with JRuby",
    +    badge_label: "💎jruby-10.0i",
    +    workflow_label: "🚎jruby-10.0-wf",
    +    inline: "[![JRuby 10.0 Compat][💎jruby-10.0i]][🚎jruby-10.0-wf]",
    +    insert_before: "💎jruby-c-i",
    +    badge_definition: "[💎jruby-10.0i]: https://img.shields.io/badge/JRuby-10.0-FBE742?style=for-the-badge&logo=ruby&logoColor=red"
    +  }.freeze,
    +  {
    +    engine: "truby",
    +    version: "33.0",
    +    workflow_path: ".github/workflows/truffleruby-33.0.yml",
    +    workflow_file: "truffleruby-33.0.yml",
    +    row_prefix: "| Works with Truffle Ruby",
    +    badge_label: "💎truby-33.0i",
    +    workflow_label: "🚎truby-33.0-wf",
    +    inline: "[![Truffle Ruby 33.0 Compat][💎truby-33.0i]][🚎truby-33.0-wf]",
    +    insert_before: "💎truby-c-i",
    +    badge_definition: "[💎truby-33.0i]: https://img.shields.io/badge/Truffle_Ruby-33.0-34BCB1?style=for-the-badge&logo=ruby&logoColor=pink"
    +  }.freeze
    +].freeze
    + @@ -157,6 +187,75 @@

  • + .add_supported_versioned_engine_badges(content, min_ruby, workflow_paths) ⇒ Object + + + + + + + + + + + + + +
    +
    + +
  • + + +
  • + + + .add_versioned_engine_badge_definitions(content, badge) ⇒ Object + + + + + + + + + + + + + +
    +
    + +
  • + + +
  • + + + .add_versioned_engine_badge_to_row(content, badge) ⇒ Object + + + + + + + + + + + + + +
    +
    + +
  • + + +
  • + + .compatibility_badge_min_mri(label) ⇒ Object @@ -217,6 +316,29 @@

    +
    +
    + +

  • + + +
  • + + + .ensure_markdown_link_definition(content, definition) ⇒ Object + + + + + + + + + + + + +
    @@ -585,6 +707,52 @@

    +
    +
    + +

  • + + +
  • + + + .versioned_engine_badge_compatible?(badge, min_ruby) ⇒ Boolean + + + + + + + + + + + + + +
    +
    + +
  • + + +
  • + + + .workflow_definition_base_url(content) ⇒ Object + + + + + + + + + + + + +
    @@ -625,7 +793,161 @@

    Class Method Details

    -

    +

    + + .add_supported_versioned_engine_badges(content, min_ruby, workflow_paths) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +739
    +740
    +741
    +742
    +743
    +744
    +745
    +746
    +747
    +748
    +749
    +750
    +751
    +
    +
    # File 'lib/kettle/jem.rb', line 739
    +
    +def add_supported_versioned_engine_badges(content, min_ruby, workflow_paths)
    +  existing_workflows = Array(workflow_paths).map { |path| path.to_s.delete_prefix("./") }.to_set
    +  VERSIONED_ENGINE_COMPATIBILITY_BADGES.reduce(content.to_s) do |processed, badge|
    +    next processed unless existing_workflows.include?(badge.fetch(:workflow_path))
    +    next processed if processed.include?("[#{badge.fetch(:badge_label)}]:")
    +    next processed unless versioned_engine_badge_compatible?(badge, min_ruby)
    +
    +    with_inline = add_versioned_engine_badge_to_row(processed, badge)
    +    next processed if with_inline == processed
    +
    +    add_versioned_engine_badge_definitions(with_inline, badge)
    +  end
    +end
    +
    +
    + +
    +

    + + .add_versioned_engine_badge_definitions(content, badge) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +775
    +776
    +777
    +778
    +779
    +780
    +781
    +782
    +783
    +784
    +785
    +786
    +
    +
    # File 'lib/kettle/jem.rb', line 775
    +
    +def add_versioned_engine_badge_definitions(content, badge)
    +  processed = ensure_markdown_link_definition(content, badge.fetch(:badge_definition))
    +  return processed if processed.include?("[#{badge.fetch(:workflow_label)}]:")
    +
    +  workflow_base = workflow_definition_base_url(processed)
    +  return processed unless workflow_base
    +
    +  ensure_markdown_link_definition(
    +    processed,
    +    "[#{badge.fetch(:workflow_label)}]: #{workflow_base}/actions/workflows/#{badge.fetch(:workflow_file)}"
    +  )
    +end
    +
    +
    + +
    +

    + + .add_versioned_engine_badge_to_row(content, badge) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +758
    +759
    +760
    +761
    +762
    +763
    +764
    +765
    +766
    +767
    +768
    +769
    +770
    +771
    +772
    +773
    +
    +
    # File 'lib/kettle/jem.rb', line 758
    +
    +def add_versioned_engine_badge_to_row(content, badge)
    +  lines = content.lines
    +  row_index = lines.index { |line| line.lstrip.start_with?(badge.fetch(:row_prefix)) }
    +  return content unless row_index
    +  return content if lines.fetch(row_index).include?(badge.fetch(:badge_label))
    +
    +  line = lines.fetch(row_index)
    +  insert_before = badge.fetch(:insert_before)
    +  inline = badge.fetch(:inline)
    +  lines[row_index] = if line.include?("[#{insert_before}]")
    +    line.sub(/(?=\[!\[[^\]]+\]\[#{Regexp.escape(insert_before)}\])/, "#{inline} ")
    +  else
    +    line.sub(/\s*\|\s*$/, " #{inline}|")
    +  end
    +  lines.join
    +end
    +
    +
    + +
    +

    .compatibility_badge_min_mri(label) ⇒ Object @@ -639,18 +961,18 @@

     
     
    -679
    -680
    -681
    -682
    -683
    -684
    -685
    -686
    -687
    +814 +815 +816 +817 +818 +819 +820 +821 +822

  • -
    # File 'lib/kettle/jem.rb', line 679
    +      
    # File 'lib/kettle/jem.rb', line 814
     
     def compatibility_badge_min_mri(label)
       if (match = label.match(/\A💎ruby-(?<version>\d+\.\d+)i\z/))
    @@ -704,13 +1026,13 @@ 

     
     
    -769
    -770
    -771
    -772
    +907 +908 +909 +910

    -
    # File 'lib/kettle/jem.rb', line 769
    +      
    # File 'lib/kettle/jem.rb', line 907
     
     def compatibility_row?(line)
       text = line.to_s.lstrip
    @@ -736,20 +1058,22 @@ 
    -
    # File 'lib/kettle/jem.rb', line 774
    +      
    # File 'lib/kettle/jem.rb', line 912
     
     def delete_markdown_link_definitions(content, labels)
    +  Kettle::Jem.ensure_runtime_dependencies!
       labels.uniq.reduce(content.to_s) do |processed, label|
         Ast::Crispr::Delete.call(
           content: processed,
    @@ -761,6 +1085,44 @@ 
    -
    # File 'lib/kettle/jem.rb', line 755
    +      
    # File 'lib/kettle/jem.rb', line 891
     
     def markdown_inline_reference_owners(content)
    +  Kettle::Jem.ensure_runtime_dependencies!
       context = Ast::Crispr::Markdown::Markly.document_context(content: content.to_s, source_label: "README.md")
       context.structural_owners(owner_scope: :inline_references)
     rescue Ast::Crispr::Error
    @@ -814,17 +1178,19 @@ 
    -
    # File 'lib/kettle/jem.rb', line 748
    +      
    # File 'lib/kettle/jem.rb', line 883
     
     def markdown_link_definition_owners(content)
    +  Kettle::Jem.ensure_runtime_dependencies!
       context = Ast::Crispr::Markdown::Markly.document_context(content: content.to_s, source_label: "README.md")
       context.structural_owners(owner_scope: :link_definitions)
     rescue Ast::Crispr::Error
    @@ -850,17 +1216,19 @@ 

     
     
    -762
    -763
    -764
    -765
    -766
    -767
    +899 +900 +901 +902 +903 +904 +905

    -
    # File 'lib/kettle/jem.rb', line 762
    +      
    # File 'lib/kettle/jem.rb', line 899
     
     def markdown_table_row_owners(content)
    +  Kettle::Jem.ensure_runtime_dependencies!
       context = Ast::Crispr::Markdown::Markly.document_context(content: content.to_s, source_label: "README.md")
       context.structural_owners(owner_scope: :table_rows)
     rescue Ast::Crispr::Error
    @@ -886,18 +1254,18 @@ 

     
     
    -717
    -718
    -719
    -720
    -721
    -722
    -723
    -724
    -725
    +852 +853 +854 +855 +856 +857 +858 +859 +860

    -
    # File 'lib/kettle/jem.rb', line 717
    +      
    # File 'lib/kettle/jem.rb', line 852
     
     def normalize_compatibility_badge_cell(cell)
       cell.to_s
    @@ -928,27 +1296,27 @@ 

     
     
    -698
    -699
    -700
    -701
    -702
    -703
    -704
    -705
    -706
    -707
    -708
    -709
    -710
    -711
    -712
    -713
    -714
    -715
    +833 +834 +835 +836 +837 +838 +839 +840 +841 +842 +843 +844 +845 +846 +847 +848 +849 +850

    -
    # File 'lib/kettle/jem.rb', line 698
    +      
    # File 'lib/kettle/jem.rb', line 833
     
     def normalize_compatibility_rows(content)
       lines = content.lines
    @@ -988,27 +1356,33 @@ 

     
     
    -604
    -605
    -606
    -607
    -608
    -609
    -610
    -611
    -612
    -613
    +672 +673 +674 +675 +676 +677 +678 +679 +680 +681 +682 +683 +684

    -
    # File 'lib/kettle/jem.rb', line 604
    +      
    # File 'lib/kettle/jem.rb', line 672
     
     def process(content:, min_ruby:, engines: nil, workflow_paths: nil)
    +  Kettle::Jem.ensure_runtime_dependencies!
       processed = content.to_s
       processed = remove_disabled_engine_content(processed, engines) if engines
       processed = remove_missing_workflow_badges(processed, workflow_paths) if workflow_paths
       return processed if min_ruby.to_s.empty?
     
    -  processed = remove_incompatible_compatibility_badges(processed, Gem::Version.new(min_ruby.to_s))
    +  min_ruby_version = Gem::Version.new(min_ruby.to_s)
    +  processed = add_supported_versioned_engine_badges(processed, min_ruby_version, workflow_paths) if workflow_paths
    +  processed = remove_incompatible_compatibility_badges(processed, min_ruby_version)
       processed = normalize_compatibility_rows(processed)
       prune_unused_compatibility_reference_definitions(processed)
     end
    @@ -1032,19 +1406,19 @@

    -737 -738 -739 -740 -741 -742 -743 -744 -745 -746

    +872 +873 +874 +875 +876 +877 +878 +879 +880 +881
    -
    # File 'lib/kettle/jem.rb', line 737
    +      
    # File 'lib/kettle/jem.rb', line 872
     
     def prune_orphaned_workflow_inline_references(content)
       defined_labels = markdown_link_definition_owners(content).map { |owner| owner.label.to_s }.to_set
    @@ -1076,18 +1450,18 @@ 

    -727 -728 -729 -730 -731 -732 -733 -734 -735

    +862 +863 +864 +865 +866 +867 +868 +869 +870
    -
    # File 'lib/kettle/jem.rb', line 727
    +      
    # File 'lib/kettle/jem.rb', line 862
     
     def prune_unused_compatibility_reference_definitions(content)
       referenced_labels = markdown_inline_reference_owners(content).flat_map(&:labels).to_h { |label| [label, true] }
    @@ -1118,12 +1492,12 @@ 

     
     
    -694
    -695
    -696
    +829 +830 +831

    -
    # File 'lib/kettle/jem.rb', line 694
    +      
    # File 'lib/kettle/jem.rb', line 829
     
     def remove_badge_occurrences(content, label)
       remove_markdown_inline_references(content, label)
    @@ -1148,34 +1522,34 @@ 

     
     
    -615
    -616
    -617
    -618
    -619
    -620
    -621
    -622
    -623
    -624
    -625
    -626
    -627
    -628
    -629
    -630
    -631
    -632
    -633
    -634
    -635
    -636
    -637
    -638
    -639
    +686 +687 +688 +689 +690 +691 +692 +693 +694 +695 +696 +697 +698 +699 +700 +701 +702 +703 +704 +705 +706 +707 +708 +709 +710

    -
    # File 'lib/kettle/jem.rb', line 615
    +      
    # File 'lib/kettle/jem.rb', line 686
     
     def remove_disabled_engine_content(content, engines)
       enabled = Array(engines).map { |engine| engine.to_s.strip.downcase }
    @@ -1222,19 +1596,19 @@ 

    -668 -669 -670 -671 -672 -673 -674 -675 -676 -677

    +803 +804 +805 +806 +807 +808 +809 +810 +811 +812
    -
    # File 'lib/kettle/jem.rb', line 668
    +      
    # File 'lib/kettle/jem.rb', line 803
     
     def remove_incompatible_compatibility_badges(content, min_ruby)
       markdown_inline_reference_owners(content).flat_map(&:labels).uniq.each do |label|
    @@ -1266,30 +1640,30 @@ 

     
     
    -784
    -785
    -786
    -787
    -788
    -789
    -790
    -791
    -792
    -793
    -794
    -795
    -796
    -797
    -798
    -799
    -800
    -801
    -802
    -803
    -804
    +923 +924 +925 +926 +927 +928 +929 +930 +931 +932 +933 +934 +935 +936 +937 +938 +939 +940 +941 +942 +943

    -
    # File 'lib/kettle/jem.rb', line 784
    +      
    # File 'lib/kettle/jem.rb', line 923
     
     def remove_markdown_inline_references(content, label)
       lines = content.to_s.lines
    @@ -1332,16 +1706,16 @@ 

     
     
    -806
    -807
    -808
    -809
    -810
    -811
    -812
    +945 +946 +947 +948 +949 +950 +951

    -
    # File 'lib/kettle/jem.rb', line 806
    +      
    # File 'lib/kettle/jem.rb', line 945
     
     def remove_markdown_table_rows(content)
       lines = content.to_s.lines
    @@ -1370,19 +1744,19 @@ 

     
     
    -641
    -642
    -643
    -644
    -645
    -646
    -647
    -648
    -649
    -650
    +712 +713 +714 +715 +716 +717 +718 +719 +720 +721

    -
    # File 'lib/kettle/jem.rb', line 641
    +      
    # File 'lib/kettle/jem.rb', line 712
     
     def remove_missing_workflow_badges(content, workflow_paths)
       existing = Array(workflow_paths).map { |path| path.to_s.delete_prefix("./") }.to_set
    @@ -1414,12 +1788,12 @@ 

     
     
    -664
    -665
    -666
    +735 +736 +737

    -
    # File 'lib/kettle/jem.rb', line 664
    +      
    # File 'lib/kettle/jem.rb', line 735
     
     def remove_workflow_badge_occurrences(content, workflow_label)
       remove_markdown_inline_references(content, workflow_label)
    @@ -1444,13 +1818,13 @@ 

     
     
    -689
    -690
    -691
    -692
    +824 +825 +826 +827

    -
    # File 'lib/kettle/jem.rb', line 689
    +      
    # File 'lib/kettle/jem.rb', line 824
     
     def ruby_minor_version(version)
       segments = version.segments
    @@ -1459,6 +1833,97 @@ 

    + + +
    +

    + + .versioned_engine_badge_compatible?(badge, min_ruby) ⇒ Boolean + + + + + +

    +
    + + + +
    +
    +
    + +

    Returns:

    +
      + +
    • + + + (Boolean) + + + +
    • + +
    + +
    + + + + +
    +
    +
    +
    +753
    +754
    +755
    +756
    +
    +
    # File 'lib/kettle/jem.rb', line 753
    +
    +def versioned_engine_badge_compatible?(badge, min_ruby)
    +  badge_min_mri = ENGINE_COMPATIBILITY_MRI_VERSION.dig(badge.fetch(:engine), badge.fetch(:version))
    +  badge_min_mri && ruby_minor_version(badge_min_mri) >= ruby_minor_version(min_ruby)
    +end
    +
    +
    + +
    +

    + + .workflow_definition_base_url(content) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +796
    +797
    +798
    +799
    +800
    +801
    +
    +
    # File 'lib/kettle/jem.rb', line 796
    +
    +def workflow_definition_base_url(content)
    +  markdown_link_definition_owners(content).filter_map do |owner|
    +    url = owner.url.to_s
    +    url.split("/actions/workflows/", 2).first if url.include?("/actions/workflows/")
    +  end.first
    +end
    +
    @@ -1476,20 +1941,20 @@

     
     
    -652
    -653
    -654
    -655
    -656
    -657
    -658
    -659
    -660
    -661
    -662
    +723 +724 +725 +726 +727 +728 +729 +730 +731 +732 +733

    -
    # File 'lib/kettle/jem.rb', line 652
    +      
    # File 'lib/kettle/jem.rb', line 723
     
     def workflow_references(content)
       markdown_link_definition_owners(content).each_with_object({}) do |owner, references|
    @@ -1512,9 +1977,9 @@ 

    diff --git a/gems/kettle-jem/docs/Kettle/Jem/RubyGemsResolver.html b/gems/kettle-jem/docs/Kettle/Jem/RubyGemsResolver.html index 4a70966d6..a536e6e39 100644 --- a/gems/kettle-jem/docs/Kettle/Jem/RubyGemsResolver.html +++ b/gems/kettle-jem/docs/Kettle/Jem/RubyGemsResolver.html @@ -6,7 +6,7 @@ Class: Kettle::Jem::RubyGemsResolver - — Documentation by YARD 0.9.44 + — Documentation by YARD 0.9.45 @@ -389,15 +389,15 @@

     
     
    -821
    -822
    -823
    -824
    -825
    -826
    +960 +961 +962 +963 +964 +965

    -
    # File 'lib/kettle/jem.rb', line 821
    +      
    # File 'lib/kettle/jem.rb', line 960
     
     def initialize(cache: {}, http_get: nil, v1_api_base: RUBYGEMS_V1_API_BASE, v2_api_base: RUBYGEMS_V2_API_BASE)
       @cache = cache
    @@ -442,12 +442,12 @@ 

     
     
    -819
    -820
    -821
    +958 +959 +960

    -
    # File 'lib/kettle/jem.rb', line 819
    +      
    # File 'lib/kettle/jem.rb', line 958
     
     def cache
       @cache
    @@ -479,19 +479,19 @@ 

     
     
    -897
    -898
    -899
    -900
    -901
    -902
    -903
    -904
    -905
    -906
    +1036 +1037 +1038 +1039 +1040 +1041 +1042 +1043 +1044 +1045

    -
    # File 'lib/kettle/jem.rb', line 897
    +      
    # File 'lib/kettle/jem.rb', line 1036
     
     def fetch_gem_info(gem_name, version)
       cache_key = "info:#{gem_name}:#{version}"
    @@ -546,19 +546,19 @@ 

     
     
    -886
    -887
    -888
    -889
    -890
    -891
    -892
    -893
    -894
    -895
    +1025 +1026 +1027 +1028 +1029 +1030 +1031 +1032 +1033 +1034

    -
    # File 'lib/kettle/jem.rb', line 886
    +      
    # File 'lib/kettle/jem.rb', line 1025
     
     def fetch_versions(gem_name)
       cache_key = "versions:#{gem_name}"
    @@ -590,13 +590,13 @@ 

     
     
    -863
    -864
    -865
    -866
    +1002 +1003 +1004 +1005

    -
    # File 'lib/kettle/jem.rb', line 863
    +      
    # File 'lib/kettle/jem.rb', line 1002
     
     def min_ruby_version(gem_name, version)
       entry = fetch_versions(gem_name).find { |candidate| candidate["number"].to_s == version.to_s }
    @@ -622,26 +622,26 @@ 

     
     
    -868
    -869
    -870
    -871
    -872
    -873
    -874
    -875
    -876
    -877
    -878
    -879
    -880
    -881
    -882
    -883
    -884
    +1007 +1008 +1009 +1010 +1011 +1012 +1013 +1014 +1015 +1016 +1017 +1018 +1019 +1020 +1021 +1022 +1023

    -
    # File 'lib/kettle/jem.rb', line 868
    +      
    # File 'lib/kettle/jem.rb', line 1007
     
     def minor_versions_by_major(gem_name, requirements: nil)
       versions(gem_name, requirements: requirements).each_with_object({}) do |entry, grouped|
    @@ -680,23 +680,23 @@ 

     
     
    -908
    -909
    -910
    -911
    -912
    -913
    -914
    -915
    -916
    -917
    -918
    -919
    -920
    -921
    +1047 +1048 +1049 +1050 +1051 +1052 +1053 +1054 +1055 +1056 +1057 +1058 +1059 +1060

    -
    # File 'lib/kettle/jem.rb', line 908
    +      
    # File 'lib/kettle/jem.rb', line 1047
     
     def parse_min_ruby(requirement)
       return if requirement.to_s.strip.empty?
    @@ -732,26 +732,26 @@ 

     
     
    -845
    -846
    -847
    -848
    -849
    -850
    -851
    -852
    -853
    -854
    -855
    -856
    -857
    -858
    -859
    -860
    -861
    +984 +985 +986 +987 +988 +989 +990 +991 +992 +993 +994 +995 +996 +997 +998 +999 +1000

    -
    # File 'lib/kettle/jem.rb', line 845
    +      
    # File 'lib/kettle/jem.rb', line 984
     
     def version_info(gem_name, version)
       data = fetch_gem_info(gem_name, version)
    @@ -790,25 +790,25 @@ 

     
     
    -828
    -829
    -830
    -831
    -832
    -833
    -834
    -835
    -836
    -837
    -838
    -839
    -840
    -841
    -842
    -843
    +967 +968 +969 +970 +971 +972 +973 +974 +975 +976 +977 +978 +979 +980 +981 +982

    -
    # File 'lib/kettle/jem.rb', line 828
    +      
    # File 'lib/kettle/jem.rb', line 967
     
     def versions(gem_name, include_prerelease: false, requirements: nil)
       requirement = normalize_requirements(requirements)
    @@ -836,9 +836,9 @@ 

    diff --git a/gems/kettle-jem/docs/Kettle/Jem/SelfTest.html b/gems/kettle-jem/docs/Kettle/Jem/SelfTest.html index 57525d67a..313178e2a 100644 --- a/gems/kettle-jem/docs/Kettle/Jem/SelfTest.html +++ b/gems/kettle-jem/docs/Kettle/Jem/SelfTest.html @@ -6,7 +6,7 @@ Module: Kettle::Jem::SelfTest - — Documentation by YARD 0.9.44 + — Documentation by YARD 0.9.45 @@ -108,9 +108,9 @@

    Defined Under Namespace

    diff --git a/gems/kettle-jem/docs/Kettle/Jem/SelfTest/Manifest.html b/gems/kettle-jem/docs/Kettle/Jem/SelfTest/Manifest.html index 14e70d3b7..25f942da2 100644 --- a/gems/kettle-jem/docs/Kettle/Jem/SelfTest/Manifest.html +++ b/gems/kettle-jem/docs/Kettle/Jem/SelfTest/Manifest.html @@ -6,7 +6,7 @@ Module: Kettle::Jem::SelfTest::Manifest - — Documentation by YARD 0.9.44 + — Documentation by YARD 0.9.45 @@ -172,27 +172,27 @@

     
     
    -1798
    -1799
    -1800
    -1801
    -1802
    -1803
    -1804
    -1805
    -1806
    -1807
    -1808
    -1809
    -1810
    -1811
    -1812
    -1813
    -1814
    -1815
    +1940 +1941 +1942 +1943 +1944 +1945 +1946 +1947 +1948 +1949 +1950 +1951 +1952 +1953 +1954 +1955 +1956 +1957

    -
    # File 'lib/kettle/jem.rb', line 1798
    +      
    # File 'lib/kettle/jem.rb', line 1940
     
     def compare(before, after)
       all_keys = (before.keys | after.keys).sort
    @@ -232,25 +232,25 @@ 

     
     
    -1781
    -1782
    -1783
    -1784
    -1785
    -1786
    -1787
    -1788
    -1789
    -1790
    -1791
    -1792
    -1793
    -1794
    -1795
    -1796
    +1923 +1924 +1925 +1926 +1927 +1928 +1929 +1930 +1931 +1932 +1933 +1934 +1935 +1936 +1937 +1938

    -
    # File 'lib/kettle/jem.rb', line 1781
    +      
    # File 'lib/kettle/jem.rb', line 1923
     
     def generate(dir)
       result = {}
    @@ -278,9 +278,9 @@ 

    diff --git a/gems/kettle-jem/docs/Kettle/Jem/SelfTest/Reporter.html b/gems/kettle-jem/docs/Kettle/Jem/SelfTest/Reporter.html index 64979ee0c..00345cfd9 100644 --- a/gems/kettle-jem/docs/Kettle/Jem/SelfTest/Reporter.html +++ b/gems/kettle-jem/docs/Kettle/Jem/SelfTest/Reporter.html @@ -6,7 +6,7 @@ Module: Kettle::Jem::SelfTest::Reporter - — Documentation by YARD 0.9.44 + — Documentation by YARD 0.9.45 @@ -218,25 +218,25 @@

     
     
    -1882
    -1883
    -1884
    -1885
    -1886
    -1887
    -1888
    -1889
    -1890
    -1891
    -1892
    -1893
    -1894
    -1895
    -1896
    -1897
    +2024 +2025 +2026 +2027 +2028 +2029 +2030 +2031 +2032 +2033 +2034 +2035 +2036 +2037 +2038 +2039

    -
    # File 'lib/kettle/jem.rb', line 1882
    +      
    # File 'lib/kettle/jem.rb', line 2024
     
     def append_self_test_table(lines, title, paths, status = nil)
       return if paths.empty?
    @@ -274,30 +274,30 @@ 

     
     
    -1899
    -1900
    -1901
    -1902
    -1903
    -1904
    -1905
    -1906
    -1907
    -1908
    -1909
    -1910
    -1911
    -1912
    -1913
    +2041 +2042 +2043 +2044 +2045 +2046 +2047 +2048 +2049 +2050 +2051 +2052 +2053 +2054 +2055

    -
    # File 'lib/kettle/jem.rb', line 1899
    +      
    # File 'lib/kettle/jem.rb', line 2041
     
     def append_skipped_files(lines, skipped)
       return if skipped.empty?
     
       lines << ""
    -  lines << "<details>"
    +  lines << '<details markdown="1">'
       lines << "<summary>Not Templated (#{skipped.size} files) - source-only files not produced by the template task</summary>"
       lines << ""
       lines << "These files are part of the gem source and are not expected to appear in the template output."
    @@ -328,21 +328,21 @@ 

     
     
    -1821
    -1822
    -1823
    -1824
    -1825
    -1826
    -1827
    -1828
    -1829
    -1830
    -1831
    -1832
    +1963 +1964 +1965 +1966 +1967 +1968 +1969 +1970 +1971 +1972 +1973 +1974

    -
    # File 'lib/kettle/jem.rb', line 1821
    +      
    # File 'lib/kettle/jem.rb', line 1963
     
     def diff(file_a, file_b)
       a = File.exist?(file_a.to_s) ? file_a.to_s : File::NULL
    @@ -376,56 +376,56 @@ 

     
     
    -1834
    -1835
    -1836
    -1837
    -1838
    -1839
    -1840
    -1841
    -1842
    -1843
    -1844
    -1845
    -1846
    -1847
    -1848
    -1849
    -1850
    -1851
    -1852
    -1853
    -1854
    -1855
    -1856
    -1857
    -1858
    -1859
    -1860
    -1861
    -1862
    -1863
    -1864
    -1865
    -1866
    -1867
    -1868
    -1869
    -1870
    -1871
    -1872
    -1873
    -1874
    -1875
    -1876
    -1877
    -1878
    -1879
    -1880
    +1976 +1977 +1978 +1979 +1980 +1981 +1982 +1983 +1984 +1985 +1986 +1987 +1988 +1989 +1990 +1991 +1992 +1993 +1994 +1995 +1996 +1997 +1998 +1999 +2000 +2001 +2002 +2003 +2004 +2005 +2006 +2007 +2008 +2009 +2010 +2011 +2012 +2013 +2014 +2015 +2016 +2017 +2018 +2019 +2020 +2021 +2022

    -
    # File 'lib/kettle/jem.rb', line 1834
    +      
    # File 'lib/kettle/jem.rb', line 1976
     
     def summary(comparison, output_dir:, templating_environment: nil, diff_count: nil, now: Time.now)
       matched = comparison.fetch(:matched, [])
    @@ -484,9 +484,9 @@ 

    diff --git a/gems/kettle-jem/docs/Kettle/Jem/Tasks.html b/gems/kettle-jem/docs/Kettle/Jem/Tasks.html index f9e5541ae..03985750c 100644 --- a/gems/kettle-jem/docs/Kettle/Jem/Tasks.html +++ b/gems/kettle-jem/docs/Kettle/Jem/Tasks.html @@ -6,7 +6,7 @@ Module: Kettle::Jem::Tasks - — Documentation by YARD 0.9.44 + — Documentation by YARD 0.9.45 @@ -110,9 +110,9 @@

    Defined Under Namespace

    diff --git a/gems/kettle-jem/docs/Kettle/Jem/Tasks/InstallTask.html b/gems/kettle-jem/docs/Kettle/Jem/Tasks/InstallTask.html index e0fdd8a19..530331a4e 100644 --- a/gems/kettle-jem/docs/Kettle/Jem/Tasks/InstallTask.html +++ b/gems/kettle-jem/docs/Kettle/Jem/Tasks/InstallTask.html @@ -5,9 +5,9 @@ Module: Kettle::Jem::Tasks::InstallTask - - — Documentation by YARD 0.9.44 - + + — Documentation by YARD 0.9.45 + @@ -37,16 +37,16 @@

    Module: Kettle::Jem::Tasks::InstallTask - - - + + +

    + + + + + + + - - - - - - - - +
    Defined in:
    lib/kettle/jem/tasks/install_task.rb
    - +
    - +

    Constant Summary collapse

    - +
    CURATED_BINSTUB_GEMS = - +
    %w[appraisal2 rake rbs rspec-core yard kettle-dev kettle-test kettle-soup-cover stone_checksums].freeze
    - +
    CURATED_BINSTUB_DISCRETE_EXECUTABLES = - +
    %w[
       kettle-drift
       yard
     ].freeze
    - +
    DEFAULT_GIT_DRIVER_DEFINITIONS = - +
    [
       {
         language: "ruby",
         pattern: "*.rb",
    -    diff: "smorg-ruby",
    -    merge: "smorg-ruby",
    -    diff_command: "smorg-ruby diff-driver",
    -    merge_command: "smorg-ruby merge-driver %O %A %B %P"
    +    diff: "smorg-rb",
    +    merge: "smorg-rb",
    +    diff_command: "smorg-rb diff-driver",
    +    merge_command: "smorg-rb merge-driver %O %A %B %P"
       },
       {
         language: "go",
    @@ -137,22 +137,23 @@ 

    merge_command: "smorg-rs merge-driver %O %A %B %P" } ].freeze

    - +
    GIT_DRIVER_LANGUAGE_REGISTRY = - +
    DEFAULT_GIT_DRIVER_DEFINITIONS.to_h { |definition| [definition.fetch(:language), definition] }.freeze
    - +
    BUILTIN_GIT_DIFF_ATTRIBUTES = - +
    [
       {path: ".gitattributes", pattern: "*.rb", attributes: {"diff" => "ruby"}},
       {path: ".gitattributes", pattern: "*.go", attributes: {"diff" => "golang"}},
       {path: ".gitattributes", pattern: "*.rs", attributes: {"diff" => "rust"}}
     ].freeze
    - +
    + @@ -160,2325 +161,2812 @@

    - - +

    Class Method Summary collapse

    + + +
    +

    Class Method Details

    + +
    +

    + + .apply_direct_sibling_lockfile_env!(project_root, command_env) ⇒ Object + + + +

    + + + + +
    +
     
     
    -    
    -
    - - - - - - - +769 +770 +771 +772 +773 +774 +775 +776 +777 +778 +779 +780 +781 +782 +783 +784 +785 +786 +787 +788 +789 +790
    +
    +
    # File 'lib/kettle/jem/tasks/install_task.rb', line 769
     
    +def apply_direct_sibling_lockfile_env!(project_root, command_env)
    +  gemspec_path = Dir.glob(File.join(project_root.to_s, "*.gemspec")).min
    +  return unless gemspec_path
    +
    +   = Kettle::Jem.send(:project_gemspec_metadata, project_root, gemspec_path)
    +  package_name = [:gem_name] || ["gem_name"] || File.basename(gemspec_path, ".gemspec")
    +  direct_sibling_gems = Kettle::Jem.send(
    +    :direct_sibling_runtime_gems,
    +    project_root,
    +    ,
    +    package_name: package_name
    +  )
    +  return if direct_sibling_gems.empty?
    +
    +  source_url = [:source_code_uri] || ["source_code_uri"] ||
    +    [:homepage] || ["homepage"]
    +  workspace_slug = Kettle::Jem.send(:direct_sibling_workspace_slug, source_url, project_root)
    +  prefix = workspace_slug.to_s.upcase.tr("-", "_")
    +  prefix = "LOCAL" if prefix.empty?
    +  dev_env = "#{prefix}_DEV"
    +  command_env[dev_env] = File.expand_path("..", project_root.to_s) if local_env_disabled?(command_env[dev_env])
    +end
    +
    +
    + +
    +

    + + .apply_kettle_family_local_install_env!(command_env) ⇒ Object + + -
    -

    Class Method Details

    + +

    + + + + +
    +
     
     
    -      
    -

    +1008 +1009 +1010 +1011 +1012 +1013 +1014 +1015 +1016 +1017 +1018 +1019 +1020 +1021

    +
    +
    # File 'lib/kettle/jem/tasks/install_task.rb', line 1008
     
    -    .bin_setup_command(project_root, quiet:)  ⇒ Object
    +def apply_kettle_family_local_install_env!(command_env)
    +  return unless command_env.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero?
     
    +  marker = kettle_family_local_install_marker(command_env)
    +  return unless Array(marker["installed_members"]).include?("kettle-jem")
     
    +  members_root = marker["members_root"].to_s
    +  if local_env_disabled?(command_env["STRUCTUREDMERGE_DEV"]) && Dir.exist?(File.join(members_root, "kettle-jem"))
    +    command_env["STRUCTUREDMERGE_DEV"] = members_root
    +  end
     
    +  kettle_root = kettle_family_dependency_root(marker)
    +  command_env["KETTLE_DEV_DEV"] = kettle_root if kettle_root && local_env_disabled?(command_env["KETTLE_DEV_DEV"])
    +end
    +
    +
    + +
    +

    + + .bin_setup_command(project_root, quiet:) ⇒ Object + + +

     
     
    -1376
    -1377
    -1378
    -1379
    -1380
    +1562 +1563 +1564 +1565 +1566
    -
    # File 'lib/kettle/jem/tasks/install_task.rb', line 1376
    +      
    # File 'lib/kettle/jem/tasks/install_task.rb', line 1562
     
     def bin_setup_command(project_root, quiet:)
       command = [File.join("bin", "setup")]
    @@ -2489,38 +2977,38 @@ 

    - +

    + + .binstub_files(bin_dir) ⇒ Object + - .binstub_files(bin_dir) ⇒ Object - - - - + +

     
     
    -782
    -783
    -784
    -785
    -786
    -787
    -788
    -789
    -790
    -791
    -792
    -793
    -794
    +912 +913 +914 +915 +916 +917 +918 +919 +920 +921 +922 +923 +924
    -
    # File 'lib/kettle/jem/tasks/install_task.rb', line 782
    +      
    # File 'lib/kettle/jem/tasks/install_task.rb', line 912
     
     def binstub_files(bin_dir)
       return [] unless File.directory?(bin_dir)
    @@ -2539,62 +3027,62 @@ 

    - +

    + + .bootstrap_commit_step(project_root, run_options:) ⇒ Object + - .bootstrap_commit_step(project_root, run_options:) ⇒ Object - - - - + +

     
     
    -1299
    -1300
    -1301
    -1302
    -1303
    -1304
    -1305
    -1306
    -1307
    -1308
    -1309
    -1310
    -1311
    -1312
    -1313
    -1314
    -1315
    -1316
    -1317
    -1318
    -1319
    -1320
    -1321
    -1322
    -1323
    -1324
    -1325
    -1326
    -1327
    -1328
    -1329
    -1330
    -1331
    -1332
    -1333
    -1334
    -1335
    +1474 +1475 +1476 +1477 +1478 +1479 +1480 +1481 +1482 +1483 +1484 +1485 +1486 +1487 +1488 +1489 +1490 +1491 +1492 +1493 +1494 +1495 +1496 +1497 +1498 +1499 +1500 +1501 +1502 +1503 +1504 +1505 +1506 +1507 +1508 +1509 +1510
    -
    # File 'lib/kettle/jem/tasks/install_task.rb', line 1299
    +      
    # File 'lib/kettle/jem/tasks/install_task.rb', line 1474
     
     def bootstrap_commit_step(project_root, run_options:)
       if Kettle::Jem::DecisionPolicy.value_to_boolean((run_options || {})[:skip_commit])
    @@ -2637,81 +3125,192 @@ 

    - +

    + + .bundle_binstubs_command(project_root = Dir.pwd, env: ENV) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +613
    +614
    +615
    +
    +
    # File 'lib/kettle/jem/tasks/install_task.rb', line 613
    +
    +def bundle_binstubs_command(project_root = Dir.pwd, env: ENV)
    +  %w[bundle binstubs] + curated_binstub_gems_in_bundle(project_root, env: env)
    +end
    +
    +
    + +
    +

    + + .bundle_includes_gem?(project_root, gem_name, env: ENV) ⇒ Boolean + + + + + +

    +
    + - .bundle_binstubs_commandObject +
    +
    +
    + +

    Returns:

    +
      + +
    • + + + (Boolean) + + + +
    • + +
    + +
    + + + + +
    +
    +
    +
    +625
    +626
    +627
    +628
    +629
    +630
    +
    +
    # File 'lib/kettle/jem/tasks/install_task.rb', line 625
     
    +def bundle_includes_gem?(project_root, gem_name, env: ENV)
    +  stdout, _stderr, status = Open3.capture3(env.to_h, "bundle", "list", "--name-only", chdir: project_root.to_s)
    +  return true unless status.success?
     
    +  stdout.lines.map(&:strip).include?(gem_name.to_s)
    +end
    +
    +
    + +
    +

    + + .bundled_handoff_command(run_options) ⇒ Object + + +

     
     
    -606
    -607
    -608
    +1542 +1543 +1544 +1545 +1546 +1547 +1548 +1549 +1550 +1551
    -
    # File 'lib/kettle/jem/tasks/install_task.rb', line 606
    +      
    # File 'lib/kettle/jem/tasks/install_task.rb', line 1542
     
    -def bundle_binstubs_command
    -  %w[bundle binstubs] + CURATED_BINSTUB_GEMS
    +def bundled_handoff_command(run_options)
    +  [
    +    "bundle",
    +    "exec",
    +    "ruby",
    +    "-e",
    +    %(load Gem.bin_path("kettle-jem", "kettle-jem")),
    +    "--"
    +  ] + handoff_argv(run_options)
     end
    - +

    + + .bundled_handoff_step(project_root:, env:, run_options:) ⇒ Object + - .bundled_handoff_step(project_root:, env:, run_options:) ⇒ Object - - - - + +

     
     
    -1272
    -1273
    -1274
    -1275
    -1276
    -1277
    -1278
    -1279
    -1280
    -1281
    -1282
    -1283
    -1284
    -1285
    -1286
    -1287
    -1288
    -1289
    -1290
    -1291
    -1292
    -1293
    -1294
    -1295
    -1296
    -1297
    +1439 +1440 +1441 +1442 +1443 +1444 +1445 +1446 +1447 +1448 +1449 +1450 +1451 +1452 +1453 +1454 +1455 +1456 +1457 +1458 +1459 +1460 +1461 +1462 +1463 +1464 +1465 +1466 +1467 +1468 +1469 +1470 +1471 +1472
    -
    # File 'lib/kettle/jem/tasks/install_task.rb', line 1272
    +      
    # File 'lib/kettle/jem/tasks/install_task.rb', line 1439
     
     def bundled_handoff_step(project_root:, env:, run_options:)
       if Kettle::Jem::DecisionPolicy.value_to_boolean((run_options || {})[:bootstrap_mode])
    @@ -2732,9 +3331,17 @@ 

    } end + unless bundle_includes_gem?(project_root, "kettle-jem", env: setup_command_env(project_root, env)) + return { + name: "bundled_handoff", + status: "skipped", + reason: "kettle_jem_not_in_bundle" + } + end + { name: "bundled_handoff", - command: ["bundle", "exec", "kettle-jem"] + handoff_argv(run_options), + command: bundled_handoff_command(run_options), status: "ready", reason: "ready_for_orchestration" } @@ -2743,40 +3350,40 @@

    - +

    + + .bundler_binstub_gem_name(path) ⇒ Object + - .bundler_binstub_gem_name(path) ⇒ Object - - - - + +

     
     
    -810
    -811
    -812
    -813
    -814
    -815
    -816
    -817
    -818
    -819
    -820
    -821
    -822
    -823
    -824
    +940 +941 +942 +943 +944 +945 +946 +947 +948 +949 +950 +951 +952 +953 +954
    -
    # File 'lib/kettle/jem/tasks/install_task.rb', line 810
    +      
    # File 'lib/kettle/jem/tasks/install_task.rb', line 940
     
     def bundler_binstub_gem_name(path)
       content = File.read(path)
    @@ -2797,37 +3404,37 @@ 

    - +

    + + .bundler_generated_binstub?(path) ⇒ Boolean + - .bundler_generated_binstub?(path) ⇒ Boolean - - - - + +

    - +
    - +

    Returns:

      - +
    • - - + + (Boolean) - - - + + +
    • - +
    @@ -2836,14 +3443,14 @@

     
     
    -804
    -805
    -806
    -807
    -808
    +934 +935 +936 +937 +938

    -
    # File 'lib/kettle/jem/tasks/install_task.rb', line 804
    +      
    # File 'lib/kettle/jem/tasks/install_task.rb', line 934
     
     def bundler_generated_binstub?(path)
       File.read(path, 512).include?("This file was generated by Bundler")
    @@ -2854,29 +3461,22 @@ 

    - +

    + + .cleanup_legacy_ruby_version_files(project_root) ⇒ Object + - .cleanup_legacy_ruby_version_files(project_root) ⇒ Object - - - - + +

     
     
    -265
    -266
    -267
    -268
    -269
    -270
    -271
     272
     273
     274
    @@ -2885,10 +3485,17 @@ 

    277 278 279 -280

    +280 +281 +282 +283 +284 +285 +286 +287
    -
    # File 'lib/kettle/jem/tasks/install_task.rb', line 265
    +      
    # File 'lib/kettle/jem/tasks/install_task.rb', line 272
     
     def cleanup_legacy_ruby_version_files(project_root)
       return nil unless File.file?(File.join(project_root.to_s, "mise.toml"))
    @@ -2910,37 +3517,37 @@ 

    - +

    + + .config_bootstrap_changed?(report) ⇒ Boolean + - .config_bootstrap_changed?(report) ⇒ Boolean - - - - + +

    - +
    - +

    Returns:

      - +
    • - - + + (Boolean) - - - + + +
    • - +
    @@ -2949,16 +3556,16 @@

     
     
    -73
    -74
    -75
    -76
    -77
     78
    -79
    +79 +80 +81 +82 +83 +84

    -
    # File 'lib/kettle/jem/tasks/install_task.rb', line 73
    +      
    # File 'lib/kettle/jem/tasks/install_task.rb', line 78
     
     def config_bootstrap_changed?(report)
       report.fetch(:recipe_reports, []).any? do |recipe_report|
    @@ -2971,38 +3578,38 @@ 

    - +

    + + .configured_project_grapheme(project_root, env) ⇒ Object + - .configured_project_grapheme(project_root, env) ⇒ Object - - - - + +

     
     
    -360
    -361
    -362
    -363
    -364
    -365
    -366
     367
     368
     369
     370
     371
    -372
    +372 +373 +374 +375 +376 +377 +378 +379
    -
    # File 'lib/kettle/jem/tasks/install_task.rb', line 360
    +      
    # File 'lib/kettle/jem/tasks/install_task.rb', line 367
     
     def configured_project_grapheme(project_root, env)
       env_value = (env || {})["KJ_PROJECT_EMOJI"].to_s.strip
    @@ -3021,41 +3628,41 @@ 

    - +

    + + .conflicting_git_attribute_diagnostics(content, updates, managed_block:) ⇒ Object + - .conflicting_git_attribute_diagnostics(content, updates, managed_block:) ⇒ Object - - - - + +

     
     
    -1243
    -1244
    -1245
    -1246
    -1247
    -1248
    -1249
    -1250
    -1251
    -1252
    -1253
    -1254
    -1255
    -1256
    -1257
    -1258
    +1410 +1411 +1412 +1413 +1414 +1415 +1416 +1417 +1418 +1419 +1420 +1421 +1422 +1423 +1424 +1425
    -
    # File 'lib/kettle/jem/tasks/install_task.rb', line 1243
    +      
    # File 'lib/kettle/jem/tasks/install_task.rb', line 1410
     
     def conflicting_git_attribute_diagnostics(content, updates, managed_block:)
       lines = remove_git_attribute_managed_block(content, managed_block: managed_block).fetch(:lines)
    @@ -3077,37 +3684,37 @@ 

    - +

    + + .curated_binstub?(path) ⇒ Boolean + - .curated_binstub?(path) ⇒ Boolean - - - - + +

    - +
    - +

    Returns:

      - +
    • - - + + (Boolean) - - - + + +
    • - +
    @@ -3116,16 +3723,16 @@

     
     
    -796
    -797
    -798
    -799
    -800
    -801
    -802
    +926 +927 +928 +929 +930 +931 +932

    -
    # File 'lib/kettle/jem/tasks/install_task.rb', line 796
    +      
    # File 'lib/kettle/jem/tasks/install_task.rb', line 926
     
     def curated_binstub?(path)
       basename = File.basename(path)
    @@ -3138,37 +3745,111 @@ 

    + +
    +

    + + .curated_binstub_gems_in_bundle(project_root = Dir.pwd, env: ENV) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +617
    +618
    +619
    +620
    +621
    +622
    +623
    +
    +
    # File 'lib/kettle/jem/tasks/install_task.rb', line 617
    +
    +def curated_binstub_gems_in_bundle(project_root = Dir.pwd, env: ENV)
    +  stdout, _stderr, status = Open3.capture3(env.to_h, "bundle", "list", "--name-only", chdir: project_root.to_s)
    +  return CURATED_BINSTUB_GEMS unless status.success?
     
    +  bundled = stdout.lines.map(&:strip).reject(&:empty?)
    +  CURATED_BINSTUB_GEMS & bundled
    +end
    +
    +
    +
    -

    +

    + + .current_git_branch(path) ⇒ Object + - .decorative_grapheme?(grapheme) ⇒ Boolean + + +

    + + + + +
    +
    +
    +
    +742
    +743
    +744
    +745
    +746
    +747
    +
    +
    # File 'lib/kettle/jem/tasks/install_task.rb', line 742
     
    +def current_git_branch(path)
    +  stdout, _stderr, status = Open3.capture3("git", "-C", path.to_s, "branch", "--show-current")
    +  return "" unless status.success?
     
    +  stdout.to_s.strip
    +end
    +
    +
    + +
    +

    + + .decorative_grapheme?(grapheme) ⇒ Boolean + + +

    - +
    - +

    Returns:

      - -
    • - - + +
    • + + (Boolean) - - - + + +
    • - +
    @@ -3177,15 +3858,15 @@

     
     
    -441
    -442
    -443
    -444
    -445
    -446
    +448 +449 +450 +451 +452 +453

    -
    # File 'lib/kettle/jem/tasks/install_task.rb', line 441
    +      
    # File 'lib/kettle/jem/tasks/install_task.rb', line 448
     
     def decorative_grapheme?(grapheme)
       value = grapheme.to_s
    @@ -3197,34 +3878,34 @@ 

    - +

    + + .default_git_driver_global_commandsObject + - .default_git_driver_global_commandsObject - - - - + +

     
     
    -1121
    -1122
    -1123
    -1124
    -1125
    -1126
    -1127
    -1128
    -1129
    +1288 +1289 +1290 +1291 +1292 +1293 +1294 +1295 +1296
    -
    # File 'lib/kettle/jem/tasks/install_task.rb', line 1121
    +      
    # File 'lib/kettle/jem/tasks/install_task.rb', line 1288
     
     def default_git_driver_global_commands
       DEFAULT_GIT_DRIVER_DEFINITIONS.flat_map do |definition|
    @@ -3239,31 +3920,31 @@ 

    - +

    + + .development_dependency_names(content) ⇒ Object + - .development_dependency_names(content) ⇒ Object - - - - + +

     
     
    -148
    -149
    -150
    -151
    -152
    -153
    +153 +154 +155 +156 +157 +158
    -
    # File 'lib/kettle/jem/tasks/install_task.rb', line 148
    +      
    # File 'lib/kettle/jem/tasks/install_task.rb', line 153
     
     def development_dependency_names(content)
       Kettle::Jem.gemspec_dependency_records(content)
    @@ -3275,37 +3956,37 @@ 

    - +

    + + .dirty_git_attribute_managed_block?(content, managed_block) ⇒ Boolean + - .dirty_git_attribute_managed_block?(content, managed_block) ⇒ Boolean - - - - + +

    - +
    - +

    Returns:

      - +
    • - - + + (Boolean) - - - + + +
    • - +
    @@ -3314,15 +3995,15 @@

     
     
    -1236
    -1237
    -1238
    -1239
    -1240
    -1241
    +1403 +1404 +1405 +1406 +1407 +1408

    -
    # File 'lib/kettle/jem/tasks/install_task.rb', line 1236
    +      
    # File 'lib/kettle/jem/tasks/install_task.rb', line 1403
     
     def dirty_git_attribute_managed_block?(content, managed_block)
       start_line = git_attribute_block_start(managed_block)
    @@ -3334,38 +4015,38 @@ 

    - +

    + + .ensure_bin_setup_executable(project_root) ⇒ Object + - .ensure_bin_setup_executable(project_root) ⇒ Object - - - - + +

     
     
    -205
    -206
    -207
    -208
    -209
    -210
    -211
     212
     213
     214
     215
     216
    -217
    +217 +218 +219 +220 +221 +222 +223 +224
    -
    # File 'lib/kettle/jem/tasks/install_task.rb', line 205
    +      
    # File 'lib/kettle/jem/tasks/install_task.rb', line 212
     
     def ensure_bin_setup_executable(project_root)
       path = File.join(project_root, "bin", "setup")
    @@ -3384,43 +4065,43 @@ 

    - +

    + + .ensure_curated_binstubs_executable(project_root) ⇒ Object + - .ensure_curated_binstubs_executable(project_root) ⇒ Object - - - - + +

     
     
    -744
    -745
    -746
    -747
    -748
    -749
    -750
    -751
    -752
    -753
    -754
    -755
    -756
    -757
    -758
    -759
    -760
    -761
    +874 +875 +876 +877 +878 +879 +880 +881 +882 +883 +884 +885 +886 +887 +888 +889 +890 +891
    -
    # File 'lib/kettle/jem/tasks/install_task.rb', line 744
    +      
    # File 'lib/kettle/jem/tasks/install_task.rb', line 874
     
     def ensure_curated_binstubs_executable(project_root)
       bin_dir = File.join(project_root.to_s, "bin")
    @@ -3444,29 +4125,22 @@ 

    - +

    + + .ensure_env_local_gitignore(project_root) ⇒ Object + - .ensure_env_local_gitignore(project_root) ⇒ Object - - - - + +

     
     
    -549
    -550
    -551
    -552
    -553
    -554
    -555
     556
     557
     558
    @@ -3486,10 +4160,17 @@ 

    572 573 574 -575

    +575 +576 +577 +578 +579 +580 +581 +582
    -
    # File 'lib/kettle/jem/tasks/install_task.rb', line 549
    +      
    # File 'lib/kettle/jem/tasks/install_task.rb', line 556
     
     def ensure_env_local_gitignore(project_root)
       return nil unless File.file?(File.join(project_root.to_s, ".env.local.example"))
    @@ -3522,37 +4203,37 @@ 

    - +

    + + .execute_git_drivers_check_step(step, project_root:, env:, quiet:, command_runner:) ⇒ Object + - .execute_git_drivers_check_step(step, project_root:, env:, quiet:, command_runner:) ⇒ Object - - - - + +

    - +
    - +

    Raises:

    @@ -3561,29 +4242,29 @@

     
     
    -1510
    -1511
    -1512
    -1513
    -1514
    -1515
    -1516
    -1517
    -1518
    -1519
    -1520
    -1521
    -1522
    -1523
    -1524
    -1525
    -1526
    -1527
    -1528
    -1529
    - -

    +
    -
    # File 'lib/kettle/jem/tasks/install_task.rb', line 1510
    +1707
    +1708
    +1709
    +1710
    +1711
    +1712
    +1713
    +1714
    +1715
    +1716
    +1717
    +1718
    +1719
    +1720
    +1721
    +1722
    +1723
    +1724
    +1725
    +1726
    +
    +
    # File 'lib/kettle/jem/tasks/install_task.rb', line 1707
     
     def execute_git_drivers_check_step(step, project_root:, env:, quiet:, command_runner:)
       missing = []
    @@ -3609,73 +4290,73 @@ 

    - +

    + + .execute_git_drivers_step(step, project_root:, env:, quiet:, command_runner:) ⇒ Object + - .execute_git_drivers_step(step, project_root:, env:, quiet:, command_runner:) ⇒ Object - - - - + +

    - +
     
     
    -1461
    -1462
    -1463
    -1464
    -1465
    -1466
    -1467
    -1468
    -1469
    -1470
    -1471
    -1472
    -1473
    -1474
    -1475
    -1476
    -1477
    -1478
    -1479
    -1480
    -1481
    -1482
    -1483
    -1484
    -1485
    -1486
    -1487
    -1488
    -1489
    -1490
    -1491
    -1492
    -1493
    -1494
    -1495
    -1496
    -1497
    -1498
    -1499
    -1500
    -1501
    -1502
    -1503
    -1504
    -1505
    -1506
    -1507
    -1508
    -
    -
    # File 'lib/kettle/jem/tasks/install_task.rb', line 1461
    +1658
    +1659
    +1660
    +1661
    +1662
    +1663
    +1664
    +1665
    +1666
    +1667
    +1668
    +1669
    +1670
    +1671
    +1672
    +1673
    +1674
    +1675
    +1676
    +1677
    +1678
    +1679
    +1680
    +1681
    +1682
    +1683
    +1684
    +1685
    +1686
    +1687
    +1688
    +1689
    +1690
    +1691
    +1692
    +1693
    +1694
    +1695
    +1696
    +1697
    +1698
    +1699
    +1700
    +1701
    +1702
    +1703
    +1704
    +1705
    +
    +
    # File 'lib/kettle/jem/tasks/install_task.rb', line 1658
     
     def execute_git_drivers_step(step, project_root:, env:, quiet:, command_runner:)
       return step unless step.fetch(:status) == "ready"
    @@ -3729,42 +4410,42 @@ 

    - +

    + + .execute_hook_templates_step(step, project_root:, env:, quiet:, command_runner:) ⇒ Object + - .execute_hook_templates_step(step, project_root:, env:, quiet:, command_runner:) ⇒ Object - - - - + +

     
     
    -1443
    -1444
    -1445
    -1446
    -1447
    -1448
    -1449
    -1450
    -1451
    -1452
    -1453
    -1454
    -1455
    -1456
    -1457
    -1458
    -1459
    +1640 +1641 +1642 +1643 +1644 +1645 +1646 +1647 +1648 +1649 +1650 +1651 +1652 +1653 +1654 +1655 +1656
    -
    # File 'lib/kettle/jem/tasks/install_task.rb', line 1443
    +      
    # File 'lib/kettle/jem/tasks/install_task.rb', line 1640
     
     def execute_hook_templates_step(step, project_root:, env:, quiet:, command_runner:)
       return step unless step.fetch(:status) == "ready"
    @@ -3787,46 +4468,50 @@ 

    - +

    + + .execute_orchestration_steps(install_steps, project_root:, env:, run_options:, command_runner:) ⇒ Object + - .execute_orchestration_steps(install_steps, project_root:, env:, run_options:, command_runner:) ⇒ Object - - - - + +

     
     
    -840
    -841
    -842
    -843
    -844
    -845
    -846
    -847
    -848
    -849
    -850
    -851
    -852
    -853
    -854
    -855
    -856
    -857
    -858
    -859
    -860
    +970 +971 +972 +973 +974 +975 +976 +977 +978 +979 +980 +981 +982 +983 +984 +985 +986 +987 +988 +989 +990 +991 +992 +993 +994
    -
    # File 'lib/kettle/jem/tasks/install_task.rb', line 840
    +      
    # File 'lib/kettle/jem/tasks/install_task.rb', line 970
     
     def execute_orchestration_steps(install_steps, project_root:, env:, run_options:, command_runner:)
       quiet = Kettle::Jem::DecisionPolicy.value_to_boolean(run_options[:quiet])
    @@ -3838,6 +4523,10 @@ 

    execute_ready_command_step(step, project_root: project_root, env: env, quiet: quiet, command_runner: command_runner) when "bundle_lock_normalization" execute_ready_command_step(step, project_root: project_root, env: env, quiet: quiet, command_runner: command_runner) + when "rubocop_lts_local_branch" + execute_ready_command_step(step, project_root: project_root, env: env, quiet: quiet, command_runner: command_runner) + when "rubocop_gradual_autocorrect" + execute_ready_command_step(step, project_root: project_root, env: env, quiet: quiet, command_runner: command_runner) when "hook_templates" execute_hook_templates_step(step, project_root: project_root, env: env, quiet: quiet, command_runner: command_runner) when "git_drivers" @@ -3853,37 +4542,37 @@

    - +

    + + .execute_ready_command_step(step, project_root:, env:, quiet:, command_runner:) ⇒ Object + - .execute_ready_command_step(step, project_root:, env:, quiet:, command_runner:) ⇒ Object - - - - + +

    - +
    - +

    Raises:

    @@ -3892,24 +4581,24 @@

     
     
    -1406
    -1407
    -1408
    -1409
    -1410
    -1411
    -1412
    -1413
    -1414
    -1415
    -1416
    -1417
    -1418
    -1419
    -1420
    - -

    +
    -
    # File 'lib/kettle/jem/tasks/install_task.rb', line 1406
    +1592
    +1593
    +1594
    +1595
    +1596
    +1597
    +1598
    +1599
    +1600
    +1601
    +1602
    +1603
    +1604
    +1605
    +1606
    +
    +
    # File 'lib/kettle/jem/tasks/install_task.rb', line 1592
     
     def execute_ready_command_step(step, project_root:, env:, quiet:, command_runner:)
       return step unless step.fetch(:status) == "ready"
    @@ -3930,49 +4619,71 @@ 

    - +

    + + .execute_ready_commands_step(step, project_root:, env:, quiet:, command_runner:) ⇒ Object + - .execute_ready_commands_step(step, project_root:, env:, quiet:, command_runner:) ⇒ Object - - - - + +

    - +
     
     
    -1422
    -1423
    -1424
    -1425
    -1426
    -1427
    -1428
    -1429
    -1430
    -1431
    -1432
    -1433
    -1434
    -1435
    -1436
    -1437
    -1438
    -1439
    -1440
    -1441
    -
    -
    # File 'lib/kettle/jem/tasks/install_task.rb', line 1422
    +1608
    +1609
    +1610
    +1611
    +1612
    +1613
    +1614
    +1615
    +1616
    +1617
    +1618
    +1619
    +1620
    +1621
    +1622
    +1623
    +1624
    +1625
    +1626
    +1627
    +1628
    +1629
    +1630
    +1631
    +1632
    +1633
    +1634
    +1635
    +1636
    +1637
    +1638
    +
    +
    # File 'lib/kettle/jem/tasks/install_task.rb', line 1608
     
     def execute_ready_commands_step(step, project_root:, env:, quiet:, command_runner:)
       return step unless step.fetch(:status) == "ready"
     
    +  if step.fetch(:name) == "bootstrap_commit"
    +    dirty_entries = git_output(project_root, "status", "--porcelain").lines.map(&:chomp).reject(&:empty?)
    +    if dirty_entries.empty?
    +      return step.merge(
    +        status: "clean_noop",
    +        dirty_entries: [],
    +        reason: "clean_before_execution"
    +      )
    +    end
    +  end
    +
       command_env = step.fetch(:env, env)
       results = step.fetch(:commands).map do |command|
         result = command_runner.call(command, chdir: project_root, env: command_env, quiet: quiet)
    @@ -3994,28 +4705,28 @@ 

    - +

    + + .first_grapheme(text) ⇒ Object + - .first_grapheme(text) ⇒ Object - - - - + +

     
     
    -437
    -438
    -439
    +444 +445 +446
    -
    # File 'lib/kettle/jem/tasks/install_task.rb', line 437
    +      
    # File 'lib/kettle/jem/tasks/install_task.rb', line 444
     
     def first_grapheme(text)
       text.to_s.strip[/\A\X/u].to_s
    @@ -4024,36 +4735,36 @@ 

    - +

    + + .followup_apply_after_config_bootstrap(project_root, env:, run_options:, report:) ⇒ Object + - .followup_apply_after_config_bootstrap(project_root, env:, run_options:, report:) ⇒ Object - - - - + +

     
     
    -61
    -62
    -63
    -64
    -65
     66
     67
     68
     69
     70
    -71
    +71 +72 +73 +74 +75 +76
    -
    # File 'lib/kettle/jem/tasks/install_task.rb', line 61
    +      
    # File 'lib/kettle/jem/tasks/install_task.rb', line 66
     
     def followup_apply_after_config_bootstrap(project_root, env:, run_options:, report:)
       return report unless config_bootstrap_changed?(report)
    @@ -4070,27 +4781,22 @@ 

    - +

    + + .gemspec_dependency_sync_step(report) ⇒ Object + - .gemspec_dependency_sync_step(report) ⇒ Object - - - - + +

     
     
    -128
    -129
    -130
    -131
    -132
     133
     134
     135
    @@ -4104,10 +4810,15 @@ 

    143 144 145 -146

    +146 +147 +148 +149 +150 +151
    -
    # File 'lib/kettle/jem/tasks/install_task.rb', line 128
    +      
    # File 'lib/kettle/jem/tasks/install_task.rb', line 133
     
     def gemspec_dependency_sync_step(report)
       gemspec_report = report.fetch(:recipe_reports, []).find do |recipe_report|
    @@ -4132,29 +4843,22 @@ 

    - +

    + + .gemspec_grapheme_assignment_replacements(content, grapheme) ⇒ Object + - .gemspec_grapheme_assignment_replacements(content, grapheme) ⇒ Object - - - - + +

    - - + + @@ -924,10 +968,6 @@

    Workspace & Funding

    - - - - @@ -940,18 +980,10 @@

    Workspace & Funding

    - - - - - - - - @@ -1033,15 +1065,15 @@

    🌈 Contributors

    Also see GitLab Contributors: https://gitlab.com/structuredmerge/structuredmerge-ruby/-/graphs/main

    - ⭐️ Star History + ⭐️ Star History - - +

    + Star History Chart - +

    </a>

    @@ -1107,7 +1139,7 @@

    🤑 A request for help

    To say “thanks!” ☝️ Join the Discord or 👇️ send money.

    -

    Sponsor me on GitHub Sponsors 💌 Sponsor me on Liberapay 💌 Donate on PayPal

    +

    Sponsor galtzo-floss/kettle-jem on Open Source Collective 💌 Sponsor me on GitHub Sponsors 💌 Sponsor me on Liberapay 💌 Donate on PayPal

    Please give the project a star ⭐ ♥.

    @@ -1121,16 +1153,16 @@

    Please give the project a star ⭐ ♥ | Package | kettle-jem |
    | Description | 🔮 Kettle::Jem provides gem scaffolding, templating, and setup automation using the *-merge gem family for AST-based file merging and token-resolver for template token resolution. Includes MergerConfig presets, YAML recipes, and a complete gem template scaffold. |
    | Homepage | https://github.com/structuredmerge/structuredmerge-ruby |
    -| Source | https://github.com/structuredmerge/structuredmerge-ruby/tree/v7.0.0 |
    +| Source | https://github.com/structuredmerge/structuredmerge-ruby |
    | License | AGPL-3.0-only OR PolyForm-Small-Business-1.0.0 |
    -| Funding | https://github.com/sponsors/pboling, https://issuehunt.io/u/pboling, https://ko-fi.com/pboling, https://liberapay.com/pboling/donate, https://patreon.com/galtzo, https://polar.sh/pboling, https://thanks.dev/u/gh/pboling, https://tidelift.com/funding/github/rubygems/kettle-jem, https://www.buymeacoffee.com/pboling |
    +| Funding | https://github.com/sponsors/pboling, https://ko-fi.com/pboling, https://liberapay.com/pboling/donate, https://opencollective.com/galtzo-floss, https://thanks.dev/u/gh/pboling, https://tidelift.com/funding/github/rubygems/kettle-jem, https://www.buymeacoffee.com/pboling |

    diff --git a/gems/kettle-jem/docs/file.RRRRrb-Matrix.html b/gems/kettle-jem/docs/file.RRRRrb-Matrix.html index 250d511fc..e5074b35f 100644 --- a/gems/kettle-jem/docs/file.RRRRrb-Matrix.html +++ b/gems/kettle-jem/docs/file.RRRRrb-Matrix.html @@ -6,7 +6,7 @@ File: RRRRrb-Matrix - — Documentation by YARD 0.9.44 + — Documentation by YARD 0.9.45 @@ -397,10 +397,10 @@

    Support & Funding Info

    Buy me a coffeeDonate at ko-fi.com - +
     
     
    -398
    -399
    -400
    -401
    -402
    -403
    -404
     405
     406
     407
    @@ -4163,10 +4867,17 @@ 

    # File 'lib/kettle/jem/tasks/install_task.rb', line 398 +
    # File 'lib/kettle/jem/tasks/install_task.rb', line 405
     
     def gemspec_grapheme_assignment_replacements(content, grapheme)
       Kettle::Jem.ruby_call_records(content, nil).filter_map do |call|
    @@ -4188,31 +4899,31 @@ 

    + + .gemspec_name(content, gemspec_path) ⇒ Object + - .gemspec_name(content, gemspec_path) ⇒ Object - - - - + +

     
     
    -542
    -543
    -544
    -545
    -546
    -547
    +549 +550 +551 +552 +553 +554
    -
    # File 'lib/kettle/jem/tasks/install_task.rb', line 542
    +      
    # File 'lib/kettle/jem/tasks/install_task.rb', line 549
     
     def gemspec_name(content, gemspec_path)
       Kettle::Jem.gemspec_assignment_records(content, receiver: "spec")
    @@ -4224,28 +4935,28 @@ 

    - +

    + + .git_attribute_block_end(managed_block) ⇒ Object + - .git_attribute_block_end(managed_block) ⇒ Object - - - - + +

     
     
    -1581
    -1582
    -1583
    +1778 +1779 +1780
    -
    # File 'lib/kettle/jem/tasks/install_task.rb', line 1581
    +      
    # File 'lib/kettle/jem/tasks/install_task.rb', line 1778
     
     def git_attribute_block_end(managed_block)
       "# <</#{managed_block}>>"
    @@ -4254,28 +4965,28 @@ 

    - +

    + + .git_attribute_block_start(managed_block) ⇒ Object + - .git_attribute_block_start(managed_block) ⇒ Object - - - - + +

     
     
    -1577
    -1578
    -1579
    +1774 +1775 +1776
    -
    # File 'lib/kettle/jem/tasks/install_task.rb', line 1577
    +      
    # File 'lib/kettle/jem/tasks/install_task.rb', line 1774
     
     def git_attribute_block_start(managed_block)
       "# <<#{managed_block}>> do not edit below this line"
    @@ -4284,37 +4995,37 @@ 

    - +

    + + .git_attribute_line_conflicts?(line, update) ⇒ Boolean + - .git_attribute_line_conflicts?(line, update) ⇒ Boolean - - - - + +

    - +
    - +

    Returns:

      - +
    • - - + + (Boolean) - - - + + +
    • - +
    @@ -4323,20 +5034,20 @@

     
     
    -1260
    -1261
    -1262
    -1263
    -1264
    -1265
    -1266
    -1267
    -1268
    -1269
    -1270
    +1427 +1428 +1429 +1430 +1431 +1432 +1433 +1434 +1435 +1436 +1437

    -
    # File 'lib/kettle/jem/tasks/install_task.rb', line 1260
    +      
    # File 'lib/kettle/jem/tasks/install_task.rb', line 1427
     
     def git_attribute_line_conflicts?(line, update)
       parts = line.to_s.strip.split
    @@ -4353,43 +5064,43 @@ 

    - +

    + + .git_driver_attribute_diagnostics(project_root, updates, managed_block:) ⇒ Object + - .git_driver_attribute_diagnostics(project_root, updates, managed_block:) ⇒ Object - - - - + +

     
     
    -1217
    -1218
    -1219
    -1220
    -1221
    -1222
    -1223
    -1224
    -1225
    -1226
    -1227
    -1228
    -1229
    -1230
    -1231
    -1232
    -1233
    -1234
    +1384 +1385 +1386 +1387 +1388 +1389 +1390 +1391 +1392 +1393 +1394 +1395 +1396 +1397 +1398 +1399 +1400 +1401
    -
    # File 'lib/kettle/jem/tasks/install_task.rb', line 1217
    +      
    # File 'lib/kettle/jem/tasks/install_task.rb', line 1384
     
     def git_driver_attribute_diagnostics(project_root, updates, managed_block:)
       path = File.join(project_root.to_s, ".gitattributes")
    @@ -4413,31 +5124,31 @@ 

    - +

    + + .git_driver_attribute_reason(diagnostics, dry_run:, ready:) ⇒ Object + - .git_driver_attribute_reason(diagnostics, dry_run:, ready:) ⇒ Object - - - - + +

     
     
    -1210
    -1211
    -1212
    -1213
    -1214
    -1215
    +1377 +1378 +1379 +1380 +1381 +1382
    -
    # File 'lib/kettle/jem/tasks/install_task.rb', line 1210
    +      
    # File 'lib/kettle/jem/tasks/install_task.rb', line 1377
     
     def git_driver_attribute_reason(diagnostics, dry_run:, ready:)
       return "git_driver_attribute_conflict" if diagnostics.any? { |diagnostic| diagnostic.fetch(:key) == "conflicting_attributes" }
    @@ -4449,30 +5160,30 @@ 

    - +

    + + .git_driver_attribute_status(diagnostics, dry_run:) ⇒ Object + - .git_driver_attribute_status(diagnostics, dry_run:) ⇒ Object - - - - + +

     
     
    -1204
    -1205
    -1206
    -1207
    -1208
    +1371 +1372 +1373 +1374 +1375
    -
    # File 'lib/kettle/jem/tasks/install_task.rb', line 1204
    +      
    # File 'lib/kettle/jem/tasks/install_task.rb', line 1371
     
     def git_driver_attribute_status(diagnostics, dry_run:)
       return "blocked" if diagnostics.any? { |diagnostic| diagnostic.fetch(:blocking, false) }
    @@ -4482,36 +5193,36 @@ 

    -
    - -
    -

    - - .git_driver_attribute_updates(manifest, profile) ⇒ Object - - - +

    + +
    +

    + + .git_driver_attribute_updates(manifest, profile) ⇒ Object + + +

     
     
    -1095
    -1096
    -1097
    -1098
    -1099
    -1100
    -1101
    -1102
    -1103
    -1104
    +1262 +1263 +1264 +1265 +1266 +1267 +1268 +1269 +1270 +1271
    -
    # File 'lib/kettle/jem/tasks/install_task.rb', line 1095
    +      
    # File 'lib/kettle/jem/tasks/install_task.rb', line 1262
     
     def git_driver_attribute_updates(manifest, profile)
       profile_hash = git_driver_manifest_profile(manifest, profile)
    @@ -4527,33 +5238,33 @@ 

    - +

    + + .git_driver_forge_warning_diagnosticObject + - .git_driver_forge_warning_diagnosticObject - - - - + +

     
     
    -1086
    -1087
    -1088
    -1089
    -1090
    -1091
    -1092
    -1093
    +1253 +1254 +1255 +1256 +1257 +1258 +1259 +1260
    -
    # File 'lib/kettle/jem/tasks/install_task.rb', line 1086
    +      
    # File 'lib/kettle/jem/tasks/install_task.rb', line 1253
     
     def git_driver_forge_warning_diagnostic
       {
    @@ -4567,33 +5278,33 @@ 

    - +

    + + .git_driver_global_commands(manifest = nil, profile = "semantic-diff") ⇒ Object + - .git_driver_global_commands(manifest = nil, profile = "semantic-diff") ⇒ Object - - - - + +

     
     
    -1106
    -1107
    -1108
    -1109
    -1110
    -1111
    -1112
    -1113
    +1273 +1274 +1275 +1276 +1277 +1278 +1279 +1280
    -
    # File 'lib/kettle/jem/tasks/install_task.rb', line 1106
    +      
    # File 'lib/kettle/jem/tasks/install_task.rb', line 1273
     
     def git_driver_global_commands(manifest = nil, profile = "semantic-diff")
       profile_hash = git_driver_manifest_profile(manifest, profile)
    @@ -4607,30 +5318,30 @@ 

    - +

    + + .git_driver_global_config_checks(manifest = nil, profile = "semantic-diff") ⇒ Object + - .git_driver_global_config_checks(manifest = nil, profile = "semantic-diff") ⇒ Object - - - - + +

     
     
    -1141
    -1142
    -1143
    -1144
    -1145
    +1308 +1309 +1310 +1311 +1312
    -
    # File 'lib/kettle/jem/tasks/install_task.rb', line 1141
    +      
    # File 'lib/kettle/jem/tasks/install_task.rb', line 1308
     
     def git_driver_global_config_checks(manifest = nil, profile = "semantic-diff")
       git_driver_global_commands(manifest, profile).map do |command|
    @@ -4641,41 +5352,41 @@ 

    - +

    + + .git_driver_global_unset_commandsObject + - .git_driver_global_unset_commandsObject - - - - + +

     
     
    -1131
    -1132
    -1133
    -1134
    -1135
    -1136
    -1137
    -1138
    -1139
    +1298 +1299 +1300 +1301 +1302 +1303 +1304 +1305 +1306
    -
    # File 'lib/kettle/jem/tasks/install_task.rb', line 1131
    +      
    # File 'lib/kettle/jem/tasks/install_task.rb', line 1298
     
     def git_driver_global_unset_commands
       DEFAULT_GIT_DRIVER_DEFINITIONS.flat_map do |definition|
         [
    -      ["git", "config", "--global", "--unset", "diff.#{definition.fetch(:diff)}.command"],
    -      ["git", "config", "--global", "--unset", "merge.#{definition.fetch(:merge)}.driver"],
    -      ["git", "config", "--global", "--unset", "merge.#{definition.fetch(:merge)}.name"]
    +      ["git", "config", "--global", "--unset-all", "diff.#{definition.fetch(:diff)}.command"],
    +      ["git", "config", "--global", "--unset-all", "merge.#{definition.fetch(:merge)}.driver"],
    +      ["git", "config", "--global", "--unset-all", "merge.#{definition.fetch(:merge)}.name"]
         ]
       end
     end
    @@ -4683,30 +5394,30 @@

    - +

    + + .git_driver_local_commands(manifest = nil, profile = "semantic-diff") ⇒ Object + - .git_driver_local_commands(manifest = nil, profile = "semantic-diff") ⇒ Object - - - - + +

     
     
    -1115
    -1116
    -1117
    -1118
    -1119
    +1282 +1283 +1284 +1285 +1286
    -
    # File 'lib/kettle/jem/tasks/install_task.rb', line 1115
    +      
    # File 'lib/kettle/jem/tasks/install_task.rb', line 1282
     
     def git_driver_local_commands(manifest = nil, profile = "semantic-diff")
       git_driver_global_commands(manifest, profile).map do |command|
    @@ -4717,30 +5428,30 @@ 

    - +

    + + .git_driver_local_config_checks(manifest = nil, profile = "semantic-diff") ⇒ Object + - .git_driver_local_config_checks(manifest = nil, profile = "semantic-diff") ⇒ Object - - - - + +

     
     
    -1147
    -1148
    -1149
    -1150
    -1151
    +1314 +1315 +1316 +1317 +1318
    -
    # File 'lib/kettle/jem/tasks/install_task.rb', line 1147
    +      
    # File 'lib/kettle/jem/tasks/install_task.rb', line 1314
     
     def git_driver_local_config_checks(manifest = nil, profile = "semantic-diff")
       git_driver_local_commands(manifest, profile).map do |command|
    @@ -4751,198 +5462,198 @@ 

    - +

    - - .git_driver_manifest(project_root) ⇒ Object - - - - - -

    - - - - -
    -
    -
    -
    -1153
    -1154
    -1155
    -1156
    -1157
    -1158
    -1159
    -1160
    -1161
    -1162
    -
    -
    # File 'lib/kettle/jem/tasks/install_task.rb', line 1153
    -
    -def git_driver_manifest(project_root)
    -  path = File.join(project_root.to_s, ".structuredmerge", "git-drivers.toml")
    -  return nil unless File.file?(path)
    -
    -  manifest = TomlRB.parse(File.read(path))
    -  validate_git_driver_manifest!(manifest)
    -  manifest
    -rescue TomlRB::ParseError => error
    -  raise Kettle::Jem::Error, "Invalid .structuredmerge/git-drivers.toml: #{error.message}"
    -end
    -
    -
    - -
    -

    - - .git_driver_manifest_profile(manifest, profile) ⇒ Object - - - - - -

    - - - - -
    -
    -
    -
    -1164
    -1165
    -1166
    -1167
    -1168
    -
    -
    # File 'lib/kettle/jem/tasks/install_task.rb', line 1164
    -
    -def git_driver_manifest_profile(manifest, profile)
    -  return nil unless manifest
    -
    -  manifest.fetch("profiles").fetch(profile)
    -end
    -
    -
    - -
    -

    - - .git_drivers_step(project_root, run_options) ⇒ Object - - - - - -

    - - @@ -826,30 +826,30 @@

     
     
    -1727
    -1728
    -1729
    -1730
    -1731
    -1732
    -1733
    -1734
    -1735
    -1736
    -1737
    -1738
    -1739
    -1740
    -1741
    -1742
    -1743
    -1744
    -1745
    -1746
    -1747
    +1869 +1870 +1871 +1872 +1873 +1874 +1875 +1876 +1877 +1878 +1879 +1880 +1881 +1882 +1883 +1884 +1885 +1886 +1887 +1888 +1889

    @@ -892,18 +892,18 @@

     
     
    -1707
    -1708
    -1709
    -1710
    -1711
    -1712
    -1713
    -1714
    -1715
    +1849 +1850 +1851 +1852 +1853 +1854 +1855 +1856 +1857

    @@ -934,30 +934,30 @@

     
     
    -1608
    -1609
    -1610
    -1611
    -1612
    -1613
    -1614
    -1615
    -1616
    -1617
    -1618
    -1619
    -1620
    -1621
    -1622
    -1623
    -1624
    -1625
    -1626
    -1627
    -1628
    +1750 +1751 +1752 +1753 +1754 +1755 +1756 +1757 +1758 +1759 +1760 +1761 +1762 +1763 +1764 +1765 +1766 +1767 +1768 +1769 +1770

    - + @@ -188,20 +186,69 @@

    Compatibility

    may be higher than the gem’s runtime compatibility floor when legacy Rubies are
    not practical for the current toolchain.

    -
    -
    -
    -
    -966
    -967
    -968
    -969
    -970
    -971
    -972
    -973
    -974
    -975
    -976
    -977
    -978
    -979
    -980
    -981
    -982
    -983
    -984
    -985
    -986
    -987
    -988
    -989
    -990
    -991
    -992
    -993
    -994
    -995
    -996
    -997
    -998
    -999
    -1000
    -1001
    -1002
    -1003
    -1004
    -1005
    -1006
    -1007
    -1008
    -1009
    -1010
    -1011
    -1012
    -1013
    -1014
    -1015
    -1016
    -1017
    -1018
    -1019
    -1020
    -1021
    -1022
    -1023
    -1024
    -1025
    -1026
    -1027
    -1028
    -1029
    -1030
    -1031
    -1032
    -1033
    -1034
    -1035
    -1036
    -1037
    -1038
    -1039
    -1040
    -1041
    -1042
    -1043
    -1044
    -1045
    -1046
    -1047
    -1048
    -1049
    -1050
    -1051
    -1052
    -1053
    -1054
    -1055
    -1056
    -1057
    -1058
    -1059
    -1060
    + + .git_driver_manifest(project_root) ⇒ Object + + + + + + + + + + +
    +
    +
    +
    +1320
    +1321
    +1322
    +1323
    +1324
    +1325
    +1326
    +1327
    +1328
    +1329
    +
    +
    # File 'lib/kettle/jem/tasks/install_task.rb', line 1320
    +
    +def git_driver_manifest(project_root)
    +  path = File.join(project_root.to_s, ".structuredmerge", "git-drivers.toml")
    +  return nil unless File.file?(path)
    +
    +  manifest = TomlRB.parse(File.read(path))
    +  validate_git_driver_manifest!(manifest)
    +  manifest
    +rescue TomlRB::ParseError => error
    +  raise Kettle::Jem::Error, "Invalid .structuredmerge/git-drivers.toml: #{error.message}"
    +end
    +
    + + +
    +

    + + .git_driver_manifest_profile(manifest, profile) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +1331
    +1332
    +1333
    +1334
    +1335
    +
    +
    # File 'lib/kettle/jem/tasks/install_task.rb', line 1331
    +
    +def git_driver_manifest_profile(manifest, profile)
    +  return nil unless manifest
    +
    +  manifest.fetch("profiles").fetch(profile)
    +end
    +
    +
    + +
    +

    + + .git_drivers_step(project_root, run_options) ⇒ Object + + + + + +

    + +
    +
    +
    +
    +1133
    +1134
    +1135
    +1136
    +1137
    +1138
    +1139
    +1140
    +1141
    +1142
    +1143
    +1144
    +1145
    +1146
    +1147
    +1148
    +1149
    +1150
    +1151
    +1152
    +1153
    +1154
    +1155
    +1156
    +1157
    +1158
    +1159
    +1160
    +1161
    +1162
    +1163
    +1164
    +1165
    +1166
    +1167
    +1168
    +1169
    +1170
    +1171
    +1172
    +1173
    +1174
    +1175
    +1176
    +1177
    +1178
    +1179
    +1180
    +1181
    +1182
    +1183
    +1184
    +1185
    +1186
    +1187
    +1188
    +1189
    +1190
    +1191
    +1192
    +1193
    +1194
    +1195
    +1196
    +1197
    +1198
    +1199
    +1200
    +1201
    +1202
    +1203
    +1204
    +1205
    +1206
    +1207
    +1208
    +1209
    +1210
    +1211
    +1212
    +1213
    +1214
    +1215
    +1216
    +1217
    +1218
    +1219
    +1220
    +1221
    +1222
    +1223
    +1224
    +1225
    +1226
    +1227
    -
    # File 'lib/kettle/jem/tasks/install_task.rb', line 966
    +      
    # File 'lib/kettle/jem/tasks/install_task.rb', line 1133
     
     def git_drivers_step(project_root, run_options)
       mode = normalize_git_drivers_mode((run_options || {})[:git_drivers])
    @@ -5043,29 +5754,29 @@ 

    - +

    + + .git_output(project_root, *args) ⇒ Object + - .git_output(project_root, *args) ⇒ Object - - - - + +

     
     
    -1342
    -1343
    -1344
    -1345
    +1517 +1518 +1519 +1520
    -
    # File 'lib/kettle/jem/tasks/install_task.rb', line 1342
    +      
    # File 'lib/kettle/jem/tasks/install_task.rb', line 1517
     
     def git_output(project_root, *args)
       stdout, _stderr, status = Open3.capture3("git", "-C", project_root.to_s, *args)
    @@ -5075,37 +5786,37 @@ 

    - +

    + + .git_success?(project_root, *args) ⇒ Boolean + - .git_success?(project_root, *args) ⇒ Boolean - - - - + +

    - +
    - +

    Returns:

      - +
    • - - + + (Boolean) - - - + + +
    • - +
    @@ -5114,13 +5825,13 @@

     
     
    -1337
    -1338
    -1339
    -1340
    +1512 +1513 +1514 +1515

    -
    # File 'lib/kettle/jem/tasks/install_task.rb', line 1337
    +      
    # File 'lib/kettle/jem/tasks/install_task.rb', line 1512
     
     def git_success?(project_root, *args)
       _stdout, _stderr, status = Open3.capture3("git", "-C", project_root.to_s, *args)
    @@ -5130,29 +5841,29 @@ 

    - +

    + + .git_toplevel(project_root) ⇒ Object + - .git_toplevel(project_root) ⇒ Object - - - - + +

     
     
    -826
    -827
    -828
    -829
    +956 +957 +958 +959
    -
    # File 'lib/kettle/jem/tasks/install_task.rb', line 826
    +      
    # File 'lib/kettle/jem/tasks/install_task.rb', line 956
     
     def git_toplevel(project_root)
       stdout, _stderr, status = Open3.capture3("git", "-C", project_root.to_s, "rev-parse", "--show-toplevel")
    @@ -5162,32 +5873,32 @@ 

    - +

    + + .github_org_from_env(env) ⇒ Object + - .github_org_from_env(env) ⇒ Object - - - - + +

     
     
    -516
    -517
    -518
    -519
    -520
    -521
    -522
    +523 +524 +525 +526 +527 +528 +529
    -
    # File 'lib/kettle/jem/tasks/install_task.rb', line 516
    +      
    # File 'lib/kettle/jem/tasks/install_task.rb', line 523
     
     def github_org_from_env(env)
       %w[FORGE_ORG KJ_GH_USER GITHUB_ORG].each do |key|
    @@ -5200,29 +5911,22 @@ 

    - +

    + + .github_org_from_origin(project_root) ⇒ Object + - .github_org_from_origin(project_root) ⇒ Object - - - - + +

     
     
    -524
    -525
    -526
    -527
    -528
    -529
    -530
     531
     532
     533
    @@ -5232,10 +5936,17 @@ 

    537 538 539 -540

    +540 +541 +542 +543 +544 +545 +546 +547
    -
    # File 'lib/kettle/jem/tasks/install_task.rb', line 524
    +      
    # File 'lib/kettle/jem/tasks/install_task.rb', line 531
     
     def github_org_from_origin(project_root)
       stdout, _stderr, status = Open3.capture3("git", "-C", project_root.to_s, "remote", "get-url", "origin")
    @@ -5258,33 +5969,33 @@ 

    - +

    + + .github_workflow_paths(project_root) ⇒ Object + - .github_workflow_paths(project_root) ⇒ Object - - - - + +

     
     
    -317
    -318
    -319
    -320
    -321
    -322
    -323
    -324
    +324 +325 +326 +327 +328 +329 +330 +331
    -
    # File 'lib/kettle/jem/tasks/install_task.rb', line 317
    +      
    # File 'lib/kettle/jem/tasks/install_task.rb', line 324
     
     def github_workflow_paths(project_root)
       workflow_root = File.join(project_root.to_s, ".github", "workflows")
    @@ -5298,44 +6009,44 @@ 

    - +

    + + .handoff_argv(run_options) ⇒ Object + - .handoff_argv(run_options) ⇒ Object - - - - + +

    -
    -
    -
    -1347
    -1348
    -1349
    -1350
    -1351
    -1352
    -1353
    -1354
    -1355
    -1356
    -1357
    -1358
    -1359
    -1360
    -1361
    -1362
    -1363
    -1364
    -1365
    +
    +
    +
    +1522
    +1523
    +1524
    +1525
    +1526
    +1527
    +1528
    +1529
    +1530
    +1531
    +1532
    +1533
    +1534
    +1535
    +1536
    +1537
    +1538
    +1539
    +1540
    -
    # File 'lib/kettle/jem/tasks/install_task.rb', line 1347
    +      
    # File 'lib/kettle/jem/tasks/install_task.rb', line 1522
     
     def handoff_argv(run_options)
       options = run_options || {}
    @@ -5360,63 +6071,63 @@ 

    - +

    + + .hook_templates_step(project_root, run_options) ⇒ Object + - .hook_templates_step(project_root, run_options) ⇒ Object - - - - + +

     
     
    -883
    -884
    -885
    -886
    -887
    -888
    -889
    -890
    -891
    -892
    -893
    -894
    -895
    -896
    -897
    -898
    -899
    -900
    -901
    -902
    -903
    -904
    -905
    -906
    -907
    -908
    -909
    -910
    -911
    -912
    -913
    -914
    -915
    -916
    -917
    -918
    -919
    -920
    +1050 +1051 +1052 +1053 +1054 +1055 +1056 +1057 +1058 +1059 +1060 +1061 +1062 +1063 +1064 +1065 +1066 +1067 +1068 +1069 +1070 +1071 +1072 +1073 +1074 +1075 +1076 +1077 +1078 +1079 +1080 +1081 +1082 +1083 +1084 +1085 +1086 +1087
    -
    # File 'lib/kettle/jem/tasks/install_task.rb', line 883
    +      
    # File 'lib/kettle/jem/tasks/install_task.rb', line 1050
     
     def hook_templates_step(project_root, run_options)
       mode = normalize_hook_templates_mode((run_options || {})[:hook_templates])
    @@ -5460,27 +6171,22 @@ 

    - +

    + + .install_phase_reports(install_steps) ⇒ Object + - .install_phase_reports(install_steps) ⇒ Object - - - - + +

     
     
    -160
    -161
    -162
    -163
    -164
     165
     166
     167
    @@ -5508,10 +6214,17 @@ 

    189 190 191 -192

    +192 +193 +194 +195 +196 +197 +198 +199
    -
    # File 'lib/kettle/jem/tasks/install_task.rb', line 160
    +      
    # File 'lib/kettle/jem/tasks/install_task.rb', line 165
     
     def install_phase_reports(install_steps)
       phases = {
    @@ -5533,6 +6246,8 @@ 

    curated_binstubs_executable bundle_binstub_pruning bundle_binstub_location_validation + rubocop_lts_local_branch + rubocop_gradual_autocorrect bundle_lock_normalization ], "orchestration" => %w[bundled_handoff bootstrap_commit] @@ -5550,28 +6265,28 @@

    - +

    + + .install_run_options(env, run_options) ⇒ Object + - .install_run_options(env, run_options) ⇒ Object - - - - + +

     
     
    -57
    -58
    -59
    +62 +63 +64
    -
    # File 'lib/kettle/jem/tasks/install_task.rb', line 57
    +      
    # File 'lib/kettle/jem/tasks/install_task.rb', line 62
     
     def install_run_options(env, run_options)
       Kettle::Jem::Tasks::TemplateTask.env_run_options(env || {}).merge(run_options || {})
    @@ -5580,35 +6295,35 @@ 

    - +

    + + .install_step_summary(install_steps) ⇒ Object + - .install_step_summary(install_steps) ⇒ Object - - - - + +

     
     
    -194
    -195
    -196
    -197
    -198
    -199
    -200
     201
     202
    -203
    +203 +204 +205 +206 +207 +208 +209 +210
    -
    # File 'lib/kettle/jem/tasks/install_task.rb', line 194
    +      
    # File 'lib/kettle/jem/tasks/install_task.rb', line 201
     
     def install_step_summary(install_steps)
       statuses = install_steps.each_with_object(Hash.new(0)) do |step, counts|
    @@ -5624,27 +6339,22 @@ 

    - +

    + + .kettle_config_migration_step(project_root) ⇒ Object + - .kettle_config_migration_step(project_root) ⇒ Object - - - - + +

     
     
    -92
    -93
    -94
    -95
    -96
     97
     98
     99
    @@ -5674,10 +6384,15 @@ 

    123 124 125 -126

    +126 +127 +128 +129 +130 +131
    -
    # File 'lib/kettle/jem/tasks/install_task.rb', line 92
    +      
    # File 'lib/kettle/jem/tasks/install_task.rb', line 97
     
     def kettle_config_migration_step(project_root)
       canonical_relative = Kettle::Jem::KETTLE_CONFIG_PATH
    @@ -5718,29 +6433,107 @@ 

    + +
    +

    + + .kettle_family_dependency_root(marker) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +1033
    +1034
    +1035
    +1036
    +1037
    +1038
    +
    +
    # File 'lib/kettle/jem/tasks/install_task.rb', line 1033
     
    +def kettle_family_dependency_root(marker)
    +  Array(marker["local_dependencies"]).map(&:to_s).each do |path|
    +    return File.dirname(path) if File.basename(path) == "kettle-dev"
    +  end
    +  nil
    +end
    +
    +
    +
    -

    +

    + + .kettle_family_local_install_marker(command_env) ⇒ Object + + + + + +

    + + + + +
    +
     
    -    .list_arg(flag, value)  ⇒ Object
     
    +1023
    +1024
    +1025
    +1026
    +1027
    +1028
    +1029
    +1030
    +1031
    +
    +
    # File 'lib/kettle/jem/tasks/install_task.rb', line 1023
     
    +def kettle_family_local_install_marker(command_env)
    +  path = command_env["KETTLE_FAMILY_LOCAL_INSTALL_MARKER"].to_s
    +  path = File.join(Dir.home, ".kettle-family", "local-install.json") if path.empty?
    +  return {} unless File.file?(path)
     
    +  JSON.parse(File.read(path))
    +rescue JSON::ParserError
    +  {}
    +end
    +
    +
    + +
    +

    + + .list_arg(flag, value) ⇒ Object + + +

     
     
    -1371
    -1372
    -1373
    -1374
    +1557 +1558 +1559 +1560
    -
    # File 'lib/kettle/jem/tasks/install_task.rb', line 1371
    +      
    # File 'lib/kettle/jem/tasks/install_task.rb', line 1557
     
     def list_arg(flag, value)
       values = Array(value).flat_map { |entry| entry.to_s.split(",") }.map(&:strip).reject(&:empty?)
    @@ -5750,37 +6543,37 @@ 

    - +

    + + .literal_github_homepage?(assigned) ⇒ Boolean + - .literal_github_homepage?(assigned) ⇒ Boolean - - - - + +

    - +
    - +

    Returns:

      - +
    • - - + + (Boolean) - - - + + +
    • - +
    @@ -5789,62 +6582,115 @@

     
     
    -502
    -503
    -504
    -505
    -506
    -507
    -508
     509
     510
     511
     512
     513
    -514
    +514 +515 +516 +517 +518 +519 +520 +521

    + +
    -
    # File 'lib/kettle/jem/tasks/install_task.rb', line 502
    +      
    # File 'lib/kettle/jem/tasks/install_task.rb', line 509
     
     def literal_github_homepage?(assigned)
       value = assigned.to_s.strip
       return false if value.include?('#{')
     
    -  if (value.start_with?('"') && value.end_with?('"')) || (value.start_with?("'") && value.end_with?("'"))
    -    value = value[1..-2]
    -  end
    -  uri = URI.parse(value)
    -  segments = uri.path.to_s.split("/").reject(&:empty?)
    -  %w[http https].include?(uri.scheme) && uri.host == "github.com" && segments.length == 2
    -rescue URI::InvalidURIError
    -  false
    +  if (value.start_with?('"') && value.end_with?('"')) || (value.start_with?("'") && value.end_with?("'"))
    +    value = value[1..-2]
    +  end
    +  uri = URI.parse(value)
    +  segments = uri.path.to_s.split("/").reject(&:empty?)
    +  %w[http https].include?(uri.scheme) && uri.host == "github.com" && segments.length == 2
    +rescue URI::InvalidURIError
    +  false
    +end
    +
    +
    + +
    +

    + + .local_env_disabled?(value) ⇒ Boolean + + + + + +

    +
    + + + +
    +
    +
    + +

    Returns:

    +
      + +
    • + + + (Boolean) + + + +
    • + +
    + +
    + + +
    +
    +
    +
    +1040
    +1041
    +1042
    +
    +
    # File 'lib/kettle/jem/tasks/install_task.rb', line 1040
    +
    +def local_env_disabled?(value)
    +  value.to_s.empty? || value.to_s.casecmp("false").zero?
     end
    - +

    + + .lockfile_normalization_commandObject + - .lockfile_normalization_commandObject - - - - + +

     
     
    -636
    -637
    -638
    +658 +659 +660
    -
    # File 'lib/kettle/jem/tasks/install_task.rb', line 636
    +      
    # File 'lib/kettle/jem/tasks/install_task.rb', line 658
     
     def lockfile_normalization_command
       %w[bundle update]
    @@ -5853,35 +6699,35 @@ 

    - +

    + + .merge_apply_reports(initial, followup) ⇒ Object + - .merge_apply_reports(initial, followup) ⇒ Object - - - - + +

     
     
    -81
    -82
    -83
    -84
    -85
     86
     87
     88
     89
    -90
    +90 +91 +92 +93 +94 +95
    -
    # File 'lib/kettle/jem/tasks/install_task.rb', line 81
    +      
    # File 'lib/kettle/jem/tasks/install_task.rb', line 86
     
     def merge_apply_reports(initial, followup)
       merged = followup.merge(
    @@ -5897,37 +6743,37 @@ 

    - +

    + + .mise_installed?(env) ⇒ Boolean + - .mise_installed?(env) ⇒ Boolean - - - - + +

    - +
    - +

    Returns:

      - +
    • - - + + (Boolean) - - - + + +
    • - +
    @@ -5936,17 +6782,17 @@

     
     
    -246
    -247
    -248
    -249
    -250
    -251
    -252
    -253
    +253 +254 +255 +256 +257 +258 +259 +260

    -
    # File 'lib/kettle/jem/tasks/install_task.rb', line 246
    +      
    # File 'lib/kettle/jem/tasks/install_task.rb', line 253
     
     def mise_installed?(env)
       path = (env || {})["PATH"].to_s
    @@ -5960,29 +6806,22 @@ 

    - +

    + + .mise_trust_step(project_root, report, env:) ⇒ Object + - .mise_trust_step(project_root, report, env:) ⇒ Object - - - - + +

     
     
    -219
    -220
    -221
    -222
    -223
    -224
    -225
     226
     227
     228
    @@ -6001,10 +6840,17 @@ 

    241 242 243 -244

    +244 +245 +246 +247 +248 +249 +250 +251
    -
    # File 'lib/kettle/jem/tasks/install_task.rb', line 219
    +      
    # File 'lib/kettle/jem/tasks/install_task.rb', line 226
     
     def mise_trust_step(project_root, report, env:)
       mise_report = report.fetch(:recipe_reports, []).find do |recipe_report|
    @@ -6036,63 +6882,59 @@ 

    - +

    + + .normal_lockfile_env(project_root, env) ⇒ Object + - .normal_lockfile_env(env) ⇒ Object - - - - + +

     
     
    -640
    -641
    -642
    -643
    -644
    -645
    -646
    -647
    -648
    -649
    -650
    -651
    -652
    -653
    -654
    -655
    -656
    -657
    -658
    -659
    -660
    +749 +750 +751 +752 +753 +754 +755 +756 +757 +758 +759 +760 +761 +762 +763 +764 +765 +766 +767
    -
    # File 'lib/kettle/jem/tasks/install_task.rb', line 640
    +      
    # File 'lib/kettle/jem/tasks/install_task.rb', line 749
     
    -def normal_lockfile_env(env)
    +def normal_lockfile_env(project_root, env)
       command_env = (env || {}).to_h.dup
    +  strip_inherited_bundler_activation!(command_env)
       command_env["K_JEM_TEMPLATING"] = "false"
    -  %w[KETTLE_RB_DEV GALTZO_FLOSS_DEV STRUCTUREDMERGE_DEV].each do |key|
    +  %w[KETTLE_DEV_DEV GALTZO_FLOSS_DEV STRUCTUREDMERGE_DEV].each do |key|
         command_env[key] = "false" if command_env.key?(key)
       end
    +  gemfile = File.join(project_root.to_s, "Gemfile")
    +  command_env["BUNDLE_GEMFILE"] = gemfile if File.file?(gemfile)
    +  apply_direct_sibling_lockfile_env!(project_root, command_env)
       %w[
    -    BUNDLE_BIN_PATH
    -    BUNDLE_LOCKFILE
    -    BUNDLER_VERSION
    -    BUNDLER_SETUP
         BUNDLE_PATH
         BUNDLE_WITH
         BUNDLE_WITHOUT
    -    RUBYLIB
    -    RUBYOPT
       ].each do |key|
         command_env[key] = nil
       end
    @@ -6102,29 +6944,29 @@ 

    - +

    + + .normalize_gemspec_grapheme(content, grapheme) ⇒ Object + - .normalize_gemspec_grapheme(content, grapheme) ⇒ Object - - - - + +

     
     
    -393
    -394
    -395
    -396
    +400 +401 +402 +403
    -
    # File 'lib/kettle/jem/tasks/install_task.rb', line 393
    +      
    # File 'lib/kettle/jem/tasks/install_task.rb', line 400
     
     def normalize_gemspec_grapheme(content, grapheme)
       replacements = gemspec_grapheme_assignment_replacements(content, grapheme)
    @@ -6134,38 +6976,38 @@ 

    - +

    + + .normalize_git_drivers_mode(value) ⇒ Object + - .normalize_git_drivers_mode(value) ⇒ Object - - - - + +

     
     
    -1062
    -1063
    -1064
    -1065
    -1066
    -1067
    -1068
    -1069
    -1070
    -1071
    -1072
    -1073
    -1074
    +1229 +1230 +1231 +1232 +1233 +1234 +1235 +1236 +1237 +1238 +1239 +1240 +1241
    -
    # File 'lib/kettle/jem/tasks/install_task.rb', line 1062
    +      
    # File 'lib/kettle/jem/tasks/install_task.rb', line 1229
     
     def normalize_git_drivers_mode(value)
       normalized = value.to_s.strip.downcase.tr("_", "-")
    @@ -6184,34 +7026,34 @@ 

    - +

    + + .normalize_hook_templates_mode(value) ⇒ Object + - .normalize_hook_templates_mode(value) ⇒ Object - - - - + +

     
     
    -922
    -923
    -924
    -925
    -926
    -927
    -928
    -929
    -930
    +1089 +1090 +1091 +1092 +1093 +1094 +1095 +1096 +1097
    -
    # File 'lib/kettle/jem/tasks/install_task.rb', line 922
    +      
    # File 'lib/kettle/jem/tasks/install_task.rb', line 1089
     
     def normalize_hook_templates_mode(value)
       normalized = value.to_s.strip.downcase
    @@ -6226,50 +7068,50 @@ 

    - +

    + + .normalize_lockfile_step(project_root, env:, run_options: {}) ⇒ Object + - .normalize_lockfile_step(project_root, env:, run_options: {}) ⇒ Object - - - - + +

     
     
    -610
    -611
    -612
    -613
    -614
    -615
    -616
    -617
    -618
    -619
    -620
    -621
    -622
    -623
    -624
    -625
    -626
    -627
    -628
    -629
    -630
    -631
     632
     633
    -634
    +634 +635 +636 +637 +638 +639 +640 +641 +642 +643 +644 +645 +646 +647 +648 +649 +650 +651 +652 +653 +654 +655 +656
    -
    # File 'lib/kettle/jem/tasks/install_task.rb', line 610
    +      
    # File 'lib/kettle/jem/tasks/install_task.rb', line 632
     
     def normalize_lockfile_step(project_root, env:, run_options: {})
       if Kettle::Jem::DecisionPolicy.value_to_boolean((run_options || {})[:skip_lock_normalization])
    @@ -6292,7 +7134,7 @@ 

    name: "bundle_lock_normalization", command: lockfile_normalization_command, status: "ready", - env: normal_lockfile_env(env), + env: normal_lockfile_env(project_root, env), reason: "bundle_update_without_templating_overrides" } end

    @@ -6300,35 +7142,35 @@

    - +

    + + .normalize_readme_h1_grapheme(content, grapheme) ⇒ Object + - .normalize_readme_h1_grapheme(content, grapheme) ⇒ Object - - - - + +

     
     
    -382
    -383
    -384
    -385
    -386
    -387
    -388
     389
     390
    -391
    +391 +392 +393 +394 +395 +396 +397 +398
    -
    # File 'lib/kettle/jem/tasks/install_task.rb', line 382
    +      
    # File 'lib/kettle/jem/tasks/install_task.rb', line 389
     
     def normalize_readme_h1_grapheme(content, grapheme)
       lines = content.to_s.split("\n", -1)
    @@ -6344,34 +7186,34 @@ 

    - +

    + + .post_template_project_fix_steps(project_root, report, env:) ⇒ Object + - .post_template_project_fix_steps(project_root, report, env:) ⇒ Object - - - - + +

     
     
    -255
    -256
    -257
    -258
    -259
    -260
    -261
     262
    -263
    +263 +264 +265 +266 +267 +268 +269 +270
    -
    # File 'lib/kettle/jem/tasks/install_task.rb', line 255
    +      
    # File 'lib/kettle/jem/tasks/install_task.rb', line 262
     
     def post_template_project_fix_steps(project_root, report, env:)
       [
    @@ -6386,43 +7228,43 @@ 

    - +

    + + .prune_unwanted_bundler_binstubs(project_root) ⇒ Object + - .prune_unwanted_bundler_binstubs(project_root) ⇒ Object - - - - + +

     
     
    -763
    -764
    -765
    -766
    -767
    -768
    -769
    -770
    -771
    -772
    -773
    -774
    -775
    -776
    -777
    -778
    -779
    -780
    +893 +894 +895 +896 +897 +898 +899 +900 +901 +902 +903 +904 +905 +906 +907 +908 +909 +910
    -
    # File 'lib/kettle/jem/tasks/install_task.rb', line 763
    +      
    # File 'lib/kettle/jem/tasks/install_task.rb', line 893
     
     def prune_unwanted_bundler_binstubs(project_root)
       bin_dir = File.join(project_root.to_s, "bin")
    @@ -6446,32 +7288,124 @@ 

    + +
    +

    + + .quiet_command(command, quiet:) ⇒ Object + + + + +

    + + + + +
    +
    +
    +
    +1795
    +1796
    +1797
    +1798
    +1799
    +1800
    +1801
    +1802
    +1803
    +1804
    +1805
    +
    +
    # File 'lib/kettle/jem/tasks/install_task.rb', line 1795
    +
    +def quiet_command(command, quiet:)
    +  argv = command.map(&:to_s)
    +  return argv unless quiet
    +  return argv unless argv.first == "bundle"
    +  return argv if argv.include?("--quiet")
    +
    +  subcommand = argv[1]
    +  return [*argv, "--quiet"] if %w[install update].include?(subcommand)
    +
    +  argv
    +end
    +
    +
    +
    -

    +

    + + .quiet_command_env(env) ⇒ Object + - .readme_h1_grapheme(content) ⇒ Object + + +

    + + + + +
    +
     
     
    +1807
    +1808
    +1809
    +1810
    +1811
    +1812
    +1813
    +1814
    +1815
    +1816
    +1817
    +
    +
    # File 'lib/kettle/jem/tasks/install_task.rb', line 1807
    +
    +def quiet_command_env(env)
    +  (env || {}).to_h.merge(
    +    "DEBUG" => "false",
    +    "KETTLE_JEM_DEBUG" => "false",
    +    "KETTLE_DEV_DEBUG" => "false",
    +    "BUNDLE_IGNORE_MESSAGES" => "true",
    +    "BUNDLE_SILENCE_DEPRECATIONS" => "true",
    +    "BUNDLE_SILENCE_ROOT_WARNING" => "true",
    +    "BUNDLE_VERBOSE" => "false"
    +  )
    +end
    +
    +
    + +
    +

    + + .readme_h1_grapheme(content) ⇒ Object + + +

     
     
    -374
    -375
    -376
    -377
    -378
    -379
    -380
    +381 +382 +383 +384 +385 +386 +387
    -
    # File 'lib/kettle/jem/tasks/install_task.rb', line 374
    +      
    # File 'lib/kettle/jem/tasks/install_task.rb', line 381
     
     def readme_h1_grapheme(content)
       h1 = Kettle::Jem.markdown_heading_owners(content, source_label: "README.md").find { |owner| owner.level == 1 }
    @@ -6484,33 +7418,33 @@ 

    - +

    + + .relative_or_absolute_path(path, project_root) ⇒ Object + - .relative_or_absolute_path(path, project_root) ⇒ Object - - - - + +

     
     
    -831
    -832
    -833
    -834
    -835
    -836
    -837
    -838
    +961 +962 +963 +964 +965 +966 +967 +968
    -
    # File 'lib/kettle/jem/tasks/install_task.rb', line 831
    +      
    # File 'lib/kettle/jem/tasks/install_task.rb', line 961
     
     def relative_or_absolute_path(path, project_root)
       expanded_path = File.expand_path(path.to_s)
    @@ -6524,45 +7458,45 @@ 

    - +

    + + .remove_git_attribute_managed_block(content, managed_block:) ⇒ Object + - .remove_git_attribute_managed_block(content, managed_block:) ⇒ Object - - - - + +

    - +
     
     
    -1551
    -1552
    -1553
    -1554
    -1555
    -1556
    -1557
    -1558
    -1559
    -1560
    -1561
    -1562
    -1563
    -1564
    -1565
    -1566
    -1567
    -1568
    -1569
    -1570
    -
    -
    # File 'lib/kettle/jem/tasks/install_task.rb', line 1551
    +1748
    +1749
    +1750
    +1751
    +1752
    +1753
    +1754
    +1755
    +1756
    +1757
    +1758
    +1759
    +1760
    +1761
    +1762
    +1763
    +1764
    +1765
    +1766
    +1767
    +
    +
    # File 'lib/kettle/jem/tasks/install_task.rb', line 1748
     
     def remove_git_attribute_managed_block(content, managed_block:)
       start_line = git_attribute_block_start(managed_block)
    @@ -6588,29 +7522,29 @@ 

    - +

    + + .render_git_attribute_line(update) ⇒ Object + - .render_git_attribute_line(update) ⇒ Object - - - - + +

     
     
    -1572
    -1573
    -1574
    -1575
    +1769 +1770 +1771 +1772
    -
    # File 'lib/kettle/jem/tasks/install_task.rb', line 1572
    +      
    # File 'lib/kettle/jem/tasks/install_task.rb', line 1769
     
     def render_git_attribute_line(update)
       attributes = update.fetch(:attributes).map { |key, value| "#{key}=#{value}" }.join(" ")
    @@ -6620,33 +7554,33 @@ 

    - +

    + + .render_git_attributes(content, updates, managed_block:) ⇒ Object + - .render_git_attributes(content, updates, managed_block:) ⇒ Object - - - - + +

     
     
    -1542
    -1543
    -1544
    -1545
    -1546
    -1547
    -1548
    -1549
    +1739 +1740 +1741 +1742 +1743 +1744 +1745 +1746
    -
    # File 'lib/kettle/jem/tasks/install_task.rb', line 1542
    +      
    # File 'lib/kettle/jem/tasks/install_task.rb', line 1739
     
     def render_git_attributes(content, updates, managed_block:)
       unmanaged_lines = remove_git_attribute_managed_block(content, managed_block: managed_block).fetch(:lines)
    @@ -6660,35 +7594,35 @@ 

    - +

    + + .render_git_driver_include_config(config_entries) ⇒ Object + - .render_git_driver_include_config(config_entries) ⇒ Object - - - - + +

     
     
    -1531
    -1532
    -1533
    -1534
    -1535
    -1536
    -1537
    -1538
    -1539
    -1540
    +1728 +1729 +1730 +1731 +1732 +1733 +1734 +1735 +1736 +1737
    -
    # File 'lib/kettle/jem/tasks/install_task.rb', line 1531
    +      
    # File 'lib/kettle/jem/tasks/install_task.rb', line 1728
     
     def render_git_driver_include_config(config_entries)
       lines = ["# Generated by kettle-jem; do not commit this file."]
    @@ -6704,29 +7638,22 @@ 

    - +

    + + .repair_gemspec_homepage(project_root, env) ⇒ Object + - .repair_gemspec_homepage(project_root, env) ⇒ Object - - - - + +

     
     
    -448
    -449
    -450
    -451
    -452
    -453
    -454
     455
     456
     457
    @@ -6772,10 +7699,17 @@ 

    497 498 499 -500

    +500 +501 +502 +503 +504 +505 +506 +507
    -
    # File 'lib/kettle/jem/tasks/install_task.rb', line 448
    +      
    # File 'lib/kettle/jem/tasks/install_task.rb', line 455
     
     def repair_gemspec_homepage(project_root, env)
       gemspec_path = Dir.glob(File.join(project_root.to_s, "*.gemspec")).min
    @@ -6834,56 +7768,239 @@ 

    - +

    + + .replace_character_ranges(content, replacements) ⇒ Object + + + - .replace_character_ranges(content, replacements) ⇒ Object + +

    + + + + +
    +
     
     
    +427
    +428
    +429
    +430
    +431
    +
    +
    # File 'lib/kettle/jem/tasks/install_task.rb', line 427
     
    +def replace_character_ranges(content, replacements)
    +  replacements.sort_by(&:first).reverse.reduce(content.to_s) do |updated, (start_character_offset, end_character_offset, replacement)|
    +    "#{updated[0...start_character_offset]}#{replacement}#{updated[end_character_offset..]}"
    +  end
    +end
    +
    +
    + +
    +

    + + .rewrite_yard_binstub(project_root) ⇒ Object + + +

    + + +
     
     
    -420
    -421
    -422
    -423
    -424
    +822 +823 +824 +825 +826 +827 +828 +829 +830 +831 +832 +833 +834 +835 +836 +837 +838 +839 +840 +841 +842 +843 +844 +845 +846 +847 +848 +849 +850 +851 +852 +
    +
    # File 'lib/kettle/jem/tasks/install_task.rb', line 822
    +
    +def rewrite_yard_binstub(project_root)
    +  yard_binstub = File.join(project_root.to_s, "bin", "yard")
    +  unless File.file?(yard_binstub)
    +    return {
    +      name: "yard_binstub_rake_handoff",
    +      status: "skipped",
    +      reason: "missing_yard_binstub",
    +      path: "bin/yard"
    +    }
    +  end
    +
    +  content = yard_binstub_rake_handoff_content
    +  if File.read(yard_binstub) == content
    +    return {
    +      name: "yard_binstub_rake_handoff",
    +      status: "already_current",
    +      reason: "yard_binstub_already_runs_rake_yard",
    +      path: "bin/yard"
    +    }
    +  end
    +
    +  executable = File.executable?(yard_binstub)
    +  File.write(yard_binstub, content)
    +  FileUtils.chmod("+x", yard_binstub) if executable
    +  {
    +    name: "yard_binstub_rake_handoff",
    +    status: "updated",
    +    reason: "yard_plugins_require_rake_yard_postprocess_hooks",
    +    path: "bin/yard"
    +  }
    +end
    +
    +
    + +
    +

    + + .rubocop_gradual_autocorrect_commandObject + + + + + +

    + + + + +
    +
    +
    +
    +681
    +682
    +683
    +
    +
    # File 'lib/kettle/jem/tasks/install_task.rb', line 681
    +
    +def rubocop_gradual_autocorrect_command
    +  ["sh", "-c", "rm -f .rubocop_gradual.lock && bin/rake rubocop_gradual:autocorrect"]
    +end
    +
    +
    + +
    +

    + + .rubocop_gradual_autocorrect_step(project_root) ⇒ Object + + + + + +

    + +
    +
    +
    +
    +662
    +663
    +664
    +665
    +666
    +667
    +668
    +669
    +670
    +671
    +672
    +673
    +674
    +675
    +676
    +677
    +678
    +679
    -
    # File 'lib/kettle/jem/tasks/install_task.rb', line 420
    +      
    # File 'lib/kettle/jem/tasks/install_task.rb', line 662
     
    -def replace_character_ranges(content, replacements)
    -  replacements.sort_by(&:first).reverse.reduce(content.to_s) do |updated, (start_offset, end_offset, replacement)|
    -    "#{updated[0...start_offset]}#{replacement}#{updated[end_offset..]}"
    +def rubocop_gradual_autocorrect_step(project_root)
    +  rakefile = File.join(project_root.to_s, "Rakefile")
    +  bin_rake = File.join(project_root.to_s, "bin", "rake")
    +  unless File.file?(rakefile) && File.file?(bin_rake)
    +    return {
    +      name: "rubocop_gradual_autocorrect",
    +      status: "skipped",
    +      reason: "missing_rake_entrypoint"
    +    }
       end
    +
    +  {
    +    name: "rubocop_gradual_autocorrect",
    +    command: rubocop_gradual_autocorrect_command,
    +    status: "ready",
    +    reason: "post_template_style_normalization"
    +  }
     end
    - +
    -

    - - .rewrite_yard_binstub(project_root) ⇒ Object - - - +

    + + .rubocop_lts_local_branch_step(report, env:, project_root: nil) ⇒ Object + + +

     
     
    +685
    +686
    +687
    +688
    +689
    +690
    +691
     692
     693
     694
    @@ -6914,69 +8031,122 @@ 

    719 720 721 -722

    +722 +723 +724 +725
    -
    # File 'lib/kettle/jem/tasks/install_task.rb', line 692
    +      
    # File 'lib/kettle/jem/tasks/install_task.rb', line 685
     
    -def rewrite_yard_binstub(project_root)
    -  yard_binstub = File.join(project_root.to_s, "bin", "yard")
    -  unless File.file?(yard_binstub)
    +def rubocop_lts_local_branch_step(report, env:, project_root: nil)
    +  local_root = rubocop_lts_local_root(env)
    +  return nil unless local_root
    +
    +  ruby_gem = report.dig(:facts, :templates, :tokens, "KJ|RUBOCOP_RUBY_GEM").to_s
    +  branch = Kettle::Rb::CompatMatrix.rubocop_lts_branch_for_gem(ruby_gem)
    +  unless branch
    +    raise Kettle::Jem::Error, "Cannot select RUBOCOP_LTS_LOCAL branch for #{ruby_gem.inspect}"
    +  end
    +
    +  checkout = File.join(local_root, "rubocop-lts")
    +  if project_root && same_path?(project_root, checkout)
         return {
    -      name: "yard_binstub_rake_handoff",
    +      name: "rubocop_lts_local_branch",
           status: "skipped",
    -      reason: "missing_yard_binstub",
    -      path: "bin/yard"
    +      path: checkout,
    +      branch: branch,
    +      reason: "destination_is_rubocop_lts_checkout"
         }
       end
     
    -  content = yard_binstub_rake_handoff_content
    -  if File.read(yard_binstub) == content
    +  current = current_git_branch(checkout)
    +  if current == branch
         return {
    -      name: "yard_binstub_rake_handoff",
    +      name: "rubocop_lts_local_branch",
           status: "already_current",
    -      reason: "yard_binstub_already_runs_rake_yard",
    -      path: "bin/yard"
    +      path: checkout,
    +      branch: branch
         }
       end
     
    -  executable = File.executable?(yard_binstub)
    -  File.write(yard_binstub, content)
    -  FileUtils.chmod("+x", yard_binstub) if executable
       {
    -    name: "yard_binstub_rake_handoff",
    -    status: "updated",
    -    reason: "yard_plugins_require_rake_yard_postprocess_hooks",
    -    path: "bin/yard"
    +    name: "rubocop_lts_local_branch",
    +    command: %W[git -C #{checkout} switch #{branch}],
    +    status: "ready",
    +    path: checkout,
    +    current_branch: current,
    +    branch: branch,
    +    reason: "rubocop_lts_local_branch_matrix"
       }
     end
    - +
    -

    +

    + + .rubocop_lts_local_root(env) ⇒ Object + + + + + +

    + + + + +
    +
     
    -    .ruby_string_literal_content(value, quote)  ⇒ Object
     
    +733
    +734
    +735
    +736
    +737
    +738
    +739
    +740
    +
    +
    # File 'lib/kettle/jem/tasks/install_task.rb', line 733
     
    +def rubocop_lts_local_root(env)
    +  value = (env || {})["RUBOCOP_LTS_LOCAL"].to_s.strip
    +  return nil if value.empty? || Kettle::Jem::DecisionPolicy.falsey?(value)
    +  return File.join((env || {})["HOME"].to_s.empty? ? Dir.home : (env || {})["HOME"].to_s, "src", "rubocop-lts") if value.casecmp("true").zero? || value == "1" || value.casecmp("yes").zero? || value.casecmp("on").zero?
    +  return value if value.start_with?("/")
     
    +  File.join((env || {})["HOME"].to_s.empty? ? Dir.home : (env || {})["HOME"].to_s, value)
    +end
    +
    +
    + +
    +

    + + .ruby_string_literal_content(value, quote) ⇒ Object + + +

     
     
    -415
    -416
    -417
    -418
    +422 +423 +424 +425
    -
    # File 'lib/kettle/jem/tasks/install_task.rb', line 415
    +      
    # File 'lib/kettle/jem/tasks/install_task.rb', line 422
     
     def ruby_string_literal_content(value, quote)
       escaped = value.to_s.gsub("\\", "\\\\\\\\")
    @@ -6986,24 +8156,22 @@ 

    - +

    + + .run(project_root: Dir.pwd, env: ENV, run_options: {}, command_runner: method(:run_system_command)) ⇒ Object + - .run(project_root: Dir.pwd, env: ENV, run_options: {}, command_runner: method(:run_system_command)) ⇒ Object - - - - + +

     
     
    -21
    -22
     23
     24
     25
    @@ -7036,10 +8204,15 @@ 

    52 53 54 -55

    +55 +56 +57 +58 +59 +60
    -
    # File 'lib/kettle/jem/tasks/install_task.rb', line 21
    +      
    # File 'lib/kettle/jem/tasks/install_task.rb', line 23
     
     def run(project_root: Dir.pwd, env: ENV, run_options: {}, command_runner: method(:run_system_command))
       effective_run_options = install_run_options(env, run_options)
    @@ -7058,7 +8231,10 @@ 

    install_steps << git_drivers_step(project_root, effective_run_options) install_steps << ensure_bin_setup_executable(project_root) setup_env = setup_command_env(project_root, env) + rubocop_lts_branch_step = rubocop_lts_local_branch_step(report, env: setup_env, project_root: project_root) + install_steps << rubocop_lts_branch_step if rubocop_lts_branch_step install_steps.concat(run_bundle_setup_commands(project_root, env: setup_env, run_options: effective_run_options, command_runner: command_runner)) + install_steps << rubocop_gradual_autocorrect_step(project_root) install_steps << normalize_lockfile_step(project_root, env: setup_env, run_options: effective_run_options) install_steps << bundled_handoff_step(project_root: project_root, env: env, run_options: effective_run_options) install_steps << bootstrap_commit_step(project_root, run_options: effective_run_options) @@ -7080,29 +8256,22 @@

    - +

    + + .run_bundle_setup_commands(project_root, env:, run_options:, command_runner:) ⇒ Object + - .run_bundle_setup_commands(project_root, env:, run_options:, command_runner:) ⇒ Object - - - - + +

     
     
    -577
    -578
    -579
    -580
    -581
    -582
    -583
     584
     585
     586
    @@ -7123,10 +8292,17 @@ 

    601 602 603 -604

    +604 +605 +606 +607 +608 +609 +610 +611
    -
    # File 'lib/kettle/jem/tasks/install_task.rb', line 577
    +      
    # File 'lib/kettle/jem/tasks/install_task.rb', line 584
     
     def run_bundle_setup_commands(project_root, env:, run_options:, command_runner:)
       quiet = Kettle::Jem::DecisionPolicy.value_to_boolean(run_options[:quiet])
    @@ -7141,7 +8317,7 @@ 

    ), run_command_step( "bundle_binstubs", - bundle_binstubs_command, + bundle_binstubs_command(project_root, env: env), project_root: project_root, env: env, quiet: quiet, @@ -7160,37 +8336,37 @@

    - +

    + + .run_command_step(name, command, project_root:, env:, quiet:, command_runner:) ⇒ Object + - .run_command_step(name, command, project_root:, env:, quiet:, command_runner:) ⇒ Object - - - - + +

    - +
    - +

    Raises:

    @@ -7199,32 +8375,32 @@

     
     
    -1382
    -1383
    -1384
    -1385
    -1386
    -1387
    -1388
    -1389
    -1390
    -1391
    -1392
    -1393
    -1394
    -1395
    -1396
    -1397
    -1398
    -1399
    -1400
    -1401
    -1402
    -1403
    -1404
    +1568 +1569 +1570 +1571 +1572 +1573 +1574 +1575 +1576 +1577 +1578 +1579 +1580 +1581 +1582 +1583 +1584 +1585 +1586 +1587 +1588 +1589 +1590

    -
    # File 'lib/kettle/jem/tasks/install_task.rb', line 1382
    +      
    # File 'lib/kettle/jem/tasks/install_task.rb', line 1568
     
     def run_command_step(name, command, project_root:, env:, quiet:, command_runner:)
       if command.first == File.join("bin", "setup") && !File.exist?(File.join(project_root, "bin", "setup"))
    @@ -7253,39 +8429,41 @@ 

    - +

    + + .run_system_command(command, chdir:, env:, quiet:) ⇒ Object + - .run_system_command(command, chdir:, env:, quiet:) ⇒ Object - - - - + +

     
     
    -1585
    -1586
    -1587
    -1588
    -1589
    -1590
    -1591
    -1592
    -1593
    -1594
    -1595
    +1782 +1783 +1784 +1785 +1786 +1787 +1788 +1789 +1790 +1791 +1792 +1793
    -
    # File 'lib/kettle/jem/tasks/install_task.rb', line 1585
    +      
    # File 'lib/kettle/jem/tasks/install_task.rb', line 1782
     
     def run_system_command(command, chdir:, env:, quiet:)
    -  stdout, stderr, status = Open3.capture3(env || {}, *command, chdir: chdir)
    +  command_env = quiet ? quiet_command_env(env) : (env || {})
    +  stdout, stderr, status = Open3.capture3(command_env, *quiet_command(command, quiet: quiet), chdir: chdir)
       $stdout.print(stdout) if !quiet && !stdout.empty?
       $stderr.print(stderr) if !quiet && !stderr.empty?
       {
    @@ -7299,34 +8477,91 @@ 

    - +
    -

    +

    + + .same_path?(left, right) ⇒ Boolean + + + + + +

    +
    + + + +
    +
    +
    + +

    Returns:

    +
      + +
    • + + + (Boolean) + + + +
    • + +
    - .semantic_git_driver_attribute_updatesObject +
    + + + + +
    +
     
     
    +727
    +728
    +729
    +730
    +731
    +
    +
    # File 'lib/kettle/jem/tasks/install_task.rb', line 727
     
    +def same_path?(left, right)
    +  File.realpath(left.to_s) == File.realpath(right.to_s)
    +rescue Errno::ENOENT
    +  File.expand_path(left.to_s) == File.expand_path(right.to_s)
    +end
    +
    +
    + +
    +

    + + .semantic_git_driver_attribute_updatesObject + + +

     
     
    -1076
    -1077
    -1078
    -1079
    -1080
    -1081
    -1082
    -1083
    -1084
    +1243 +1244 +1245 +1246 +1247 +1248 +1249 +1250 +1251
    -
    # File 'lib/kettle/jem/tasks/install_task.rb', line 1076
    +      
    # File 'lib/kettle/jem/tasks/install_task.rb', line 1243
     
     def semantic_git_driver_attribute_updates
       GIT_DRIVER_LANGUAGE_REGISTRY.values.map do |definition|
    @@ -7341,121 +8576,115 @@ 

    - +

    + + .setup_command_env(project_root, env) ⇒ Object + - .setup_command_env(project_root, env) ⇒ Object - - - - + +

     
     
    -862
    -863
    -864
    -865
    -866
    -867
    -868
    +996 +997 +998 +999 +1000 +1001 +1002 +1003 +1004 +1005 +1006
    -
    # File 'lib/kettle/jem/tasks/install_task.rb', line 862
    +      
    # File 'lib/kettle/jem/tasks/install_task.rb', line 996
     
     def setup_command_env(project_root, env)
       command_env = (env || {}).to_h.dup
    -  gemfile = File.join(project_root.to_s, "Gemfile")
    -  command_env["BUNDLE_GEMFILE"] = gemfile if File.file?(gemfile)
    +  requested_gemfile = command_env["BUNDLE_GEMFILE"].to_s
       strip_inherited_bundler_activation!(command_env)
    +  gemfile = File.join(project_root.to_s, "Gemfile")
    +  if File.file?(gemfile) || (!requested_gemfile.empty? && same_path?(requested_gemfile, gemfile))
    +    command_env["BUNDLE_GEMFILE"] = gemfile
    +  end
    +  apply_kettle_family_local_install_env!(command_env)
       command_env
     end
    - +

    + + .strip_inherited_bundler_activation!(command_env) ⇒ Object + - .strip_inherited_bundler_activation!(command_env) ⇒ Object - - - - + +

     
    -
    -870
    -871
    -872
    -873
    -874
    -875
    -876
    -877
    -878
    -879
    -880
    -881
    + +1044 +1045 +1046 +1047 +1048
    -
    # File 'lib/kettle/jem/tasks/install_task.rb', line 870
    +      
    # File 'lib/kettle/jem/tasks/install_task.rb', line 1044
     
     def strip_inherited_bundler_activation!(command_env)
    -  %w[
    -    BUNDLE_BIN_PATH
    -    BUNDLE_LOCKFILE
    -    BUNDLER_SETUP
    -    BUNDLER_VERSION
    -    RUBYLIB
    -    RUBYOPT
    -  ].each do |key|
    -    command_env[key] = nil if command_env.key?(key)
    -  end
    +  (ENV.keys + command_env.keys).grep(/\ABUNDLE_/).each { |key| command_env[key] = nil }
    +  (ENV.keys + command_env.keys).grep(/\ABUNDLER_/).each { |key| command_env[key] = nil }
    +  %w[RUBYLIB RUBYOPT].each { |key| command_env[key] = nil }
     end
    - +

    + + .strip_leading_decorative_graphemes(text) ⇒ Object + - .strip_leading_decorative_graphemes(text) ⇒ Object - - - - + +

     
     
    -426
    -427
    -428
    -429
    -430
    -431
    -432
     433
     434
    -435
    +435 +436 +437 +438 +439 +440 +441 +442
    -
    # File 'lib/kettle/jem/tasks/install_task.rb', line 426
    +      
    # File 'lib/kettle/jem/tasks/install_task.rb', line 433
     
     def strip_leading_decorative_graphemes(text)
       remaining = text.to_s.sub(/\A\s+/, "")
    @@ -7471,29 +8700,22 @@ 

    - +

    + + .sync_readme_gemspec_grapheme(project_root, env) ⇒ Object + - .sync_readme_gemspec_grapheme(project_root, env) ⇒ Object - - - - + +

     
     
    -326
    -327
    -328
    -329
    -330
    -331
    -332
     333
     334
     335
    @@ -7519,10 +8741,17 @@ 

    355 356 357 -358

    +358 +359 +360 +361 +362 +363 +364 +365
    -
    # File 'lib/kettle/jem/tasks/install_task.rb', line 326
    +      
    # File 'lib/kettle/jem/tasks/install_task.rb', line 333
     
     def sync_readme_gemspec_grapheme(project_root, env)
       readme_path = File.join(project_root.to_s, "README.md")
    @@ -7561,29 +8790,22 @@ 

    - +

    + + .trim_readme_compatibility_badges(project_root, report) ⇒ Object + - .trim_readme_compatibility_badges(project_root, report) ⇒ Object - - - - + +

     
     
    -282
    -283
    -284
    -285
    -286
    -287
    -288
     289
     290
     291
    @@ -7610,10 +8832,17 @@ 

    312 313 314 -315

    +315 +316 +317 +318 +319 +320 +321 +322
    -
    # File 'lib/kettle/jem/tasks/install_task.rb', line 282
    +      
    # File 'lib/kettle/jem/tasks/install_task.rb', line 289
     
     def trim_readme_compatibility_badges(project_root, report)
       readme_path = File.join(project_root.to_s, "README.md")
    @@ -7653,37 +8882,37 @@ 

    - +

    + + .unsafe_git_driver_command_value?(value) ⇒ Boolean + - .unsafe_git_driver_command_value?(value) ⇒ Boolean - - - - + +

    - +
    - +

    Returns:

      - +
    • - - + + (Boolean) - - - + + +
    • - +
    @@ -7692,12 +8921,12 @@

     
     
    -1200
    -1201
    -1202
    +1367 +1368 +1369

    -
    # File 'lib/kettle/jem/tasks/install_task.rb', line 1200
    +      
    # File 'lib/kettle/jem/tasks/install_task.rb', line 1367
     
     def unsafe_git_driver_command_value?(value)
       value.include?("$(") || value.include?("${") || value.include?("`")
    @@ -7706,54 +8935,54 @@ 

    - +

    + + .validate_bundle_binstub_location(project_root) ⇒ Object + - .validate_bundle_binstub_location(project_root) ⇒ Object - - - - + +

     
     
    -662
    -663
    -664
    -665
    -666
    -667
    -668
    -669
    -670
    -671
    -672
    -673
    -674
    -675
    -676
    -677
    -678
    -679
    -680
    -681
    -682
    -683
    -684
    -685
    -686
    -687
    -688
    -689
    -690
    +792 +793 +794 +795 +796 +797 +798 +799 +800 +801 +802 +803 +804 +805 +806 +807 +808 +809 +810 +811 +812 +813 +814 +815 +816 +817 +818 +819 +820
    -
    # File 'lib/kettle/jem/tasks/install_task.rb', line 662
    +      
    # File 'lib/kettle/jem/tasks/install_task.rb', line 792
     
     def validate_bundle_binstub_location(project_root)
       destination_bin = File.join(project_root.to_s, "bin")
    @@ -7788,37 +9017,37 @@ 

    - +

    + + .validate_git_driver_manifest!(manifest) ⇒ Object + - .validate_git_driver_manifest!(manifest) ⇒ Object - - - - + +

    - +
    - +

    Raises:

    @@ -7827,20 +9056,20 @@

     
     
    -1170
    -1171
    -1172
    -1173
    -1174
    -1175
    -1176
    -1177
    -1178
    -1179
    -1180
    +1337 +1338 +1339 +1340 +1341 +1342 +1343 +1344 +1345 +1346 +1347

    -
    # File 'lib/kettle/jem/tasks/install_task.rb', line 1170
    +      
    # File 'lib/kettle/jem/tasks/install_task.rb', line 1337
     
     def validate_git_driver_manifest!(manifest)
       raise Kettle::Jem::Error, "Invalid .structuredmerge/git-drivers.toml: root must be a mapping" unless manifest.is_a?(Hash)
    @@ -7857,37 +9086,37 @@ 

    - +

    + + .validate_git_driver_profile!(profile_name, profile) ⇒ Object + - .validate_git_driver_profile!(profile_name, profile) ⇒ Object - - - - + +

    - +
    - +

    Raises:

    @@ -7896,26 +9125,26 @@

     
     
    -1182
    -1183
    -1184
    -1185
    -1186
    -1187
    -1188
    -1189
    -1190
    -1191
    -1192
    -1193
    -1194
    -1195
    -1196
    -1197
    -1198
    +1349 +1350 +1351 +1352 +1353 +1354 +1355 +1356 +1357 +1358 +1359 +1360 +1361 +1362 +1363 +1364 +1365

    -
    # File 'lib/kettle/jem/tasks/install_task.rb', line 1182
    +      
    # File 'lib/kettle/jem/tasks/install_task.rb', line 1349
     
     def validate_git_driver_profile!(profile_name, profile)
       raise Kettle::Jem::Error, "Invalid .structuredmerge/git-drivers.toml: profile name is required" if profile_name.to_s.empty?
    @@ -7938,28 +9167,28 @@ 

    - +

    + + .value_arg(flag, value) ⇒ Object + - .value_arg(flag, value) ⇒ Object - - - - + +

     
     
    -1367
    -1368
    -1369
    +1553 +1554 +1555
    -
    # File 'lib/kettle/jem/tasks/install_task.rb', line 1367
    +      
    # File 'lib/kettle/jem/tasks/install_task.rb', line 1553
     
     def value_arg(flag, value)
       value.to_s.strip.empty? ? [] : [flag, value.to_s]
    @@ -7968,29 +9197,29 @@ 

    - +

    + + .version_gem_bootstrap_step(project_root, report) ⇒ Object + - .version_gem_bootstrap_step(project_root, report) ⇒ Object - - - - + +

     
     
    -155
    -156
    -157
    -158
    +160 +161 +162 +163
    -
    # File 'lib/kettle/jem/tasks/install_task.rb', line 155
    +      
    # File 'lib/kettle/jem/tasks/install_task.rb', line 160
     
     def version_gem_bootstrap_step(project_root, report)
       report.fetch(:post_apply_steps, []).find { |step| step.fetch(:name, nil) == "version_gem_bootstrap" } ||
    @@ -8000,44 +9229,44 @@ 

    - +

    + + .yard_binstub_rake_handoff_contentObject + - .yard_binstub_rake_handoff_contentObject - - - - + +

     
     
    -724
    -725
    -726
    -727
    -728
    -729
    -730
    -731
    -732
    -733
    -734
    -735
    -736
    -737
    -738
    -739
    -740
    -741
    -742
    +854 +855 +856 +857 +858 +859 +860 +861 +862 +863 +864 +865 +866 +867 +868 +869 +870 +871 +872
    -
    # File 'lib/kettle/jem/tasks/install_task.rb', line 724
    +      
    # File 'lib/kettle/jem/tasks/install_task.rb', line 854
     
     def yard_binstub_rake_handoff_content
       <<~RUBY
    @@ -8062,15 +9291,15 @@ 

    - + diff --git a/gems/kettle-jem/docs/Kettle/Jem/Tasks/PrepareTask.html b/gems/kettle-jem/docs/Kettle/Jem/Tasks/PrepareTask.html index 6e0e34ccf..3abc01d75 100644 --- a/gems/kettle-jem/docs/Kettle/Jem/Tasks/PrepareTask.html +++ b/gems/kettle-jem/docs/Kettle/Jem/Tasks/PrepareTask.html @@ -6,7 +6,7 @@ Module: Kettle::Jem::Tasks::PrepareTask - — Documentation by YARD 0.9.44 + — Documentation by YARD 0.9.45 @@ -106,6 +106,11 @@

    "mise.toml" ].freeze +
    CRITICAL_TEMPLATING_GEMS = + +
    +
    %w[nomono tree_sitter_language_pack].freeze
    + @@ -126,6 +131,29 @@

  • + .bundle_update_templating_bootstrap_command ⇒ Object + + + + + + + + + + + + + +
    +
    + +
  • + + +
  • + + .run(project_root: Dir.pwd, env: ENV, run_options: {}, command_runner: Kettle::Jem::Tasks::InstallTask.method(:run_system_command)) ⇒ Object @@ -157,7 +185,37 @@

    Class Method Details

    -

    +

    + + .bundle_update_templating_bootstrap_commandObject + + + + + +

    + + + + +
    +
    +
    +
    +62
    +63
    +64
    +
    +
    # File 'lib/kettle/jem/tasks/prepare_task.rb', line 62
    +
    +def bundle_update_templating_bootstrap_command
    +  %w[bundle update] + CRITICAL_TEMPLATING_GEMS
    +end
    +
    +
    + +
    +

    .run(project_root: Dir.pwd, env: ENV, run_options: {}, command_runner: Kettle::Jem::Tasks::InstallTask.method(:run_system_command)) ⇒ Object @@ -171,7 +229,6 @@

     
     
    -17
     18
     19
     20
    @@ -199,10 +256,25 @@ 

    42 43 44 -45

    +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60

  • -
    # File 'lib/kettle/jem/tasks/prepare_task.rb', line 17
    +      
    # File 'lib/kettle/jem/tasks/prepare_task.rb', line 18
     
     def run(project_root: Dir.pwd, env: ENV, run_options: {}, command_runner: Kettle::Jem::Tasks::InstallTask.method(:run_system_command))
       effective_run_options = Kettle::Jem::Tasks::TemplateTask.env_run_options(env || {}).merge(run_options || {})
    @@ -212,6 +284,14 @@ 

    ) report = Kettle::Jem.apply_project(project_root, env: env, run_options: prepare_run_options) setup_env = Kettle::Jem::Tasks::InstallTask.setup_command_env(project_root, env) + update_step = Kettle::Jem::Tasks::InstallTask.run_command_step( + "bundle_update_templating_bootstrap", + bundle_update_templating_bootstrap_command, + project_root: project_root, + env: setup_env, + quiet: Kettle::Jem::DecisionPolicy.value_to_boolean(effective_run_options[:quiet]), + command_runner: command_runner + ) bundle_step = Kettle::Jem::Tasks::InstallTask.run_command_step( "bundle_install", %w[bundle install], @@ -223,13 +303,19 @@

    report.merge( mode: "prepare", - prepared: bundle_step.fetch(:status) == "succeeded", + prepared: update_step.fetch(:status) == "succeeded" && + bundle_step.fetch(:status) == "succeeded", prepare_only: PREPARE_ONLY_PATHS, - prepare_steps: [bundle_step], - changed_files: (report.fetch(:changed_files, []) + bundle_step.fetch(:changed_files, [])).uniq.sort, + prepare_steps: [update_step, bundle_step], + changed_files: ( + report.fetch(:changed_files, []) + + update_step.fetch(:changed_files, []) + + bundle_step.fetch(:changed_files, []) + ).uniq.sort, diagnostics: report.fetch(:diagnostics, []) + [{ severity: "advisory", - message: "kettle:jem:prepare applied the templating dependency bootstrap payload and ran bundle install." + message: "kettle:jem:prepare applied the templating dependency bootstrap payload, " \ + "updated critical templating gems, and ran bundle install." }] ) end

    @@ -243,9 +329,9 @@

    diff --git a/gems/kettle-jem/docs/Kettle/Jem/Tasks/SelfTestTask.html b/gems/kettle-jem/docs/Kettle/Jem/Tasks/SelfTestTask.html index 7e156c53c..e0a7b121f 100644 --- a/gems/kettle-jem/docs/Kettle/Jem/Tasks/SelfTestTask.html +++ b/gems/kettle-jem/docs/Kettle/Jem/Tasks/SelfTestTask.html @@ -6,7 +6,7 @@ Module: Kettle::Jem::Tasks::SelfTestTask - — Documentation by YARD 0.9.44 + — Documentation by YARD 0.9.45 @@ -1332,9 +1332,9 @@

    diff --git a/gems/kettle-jem/docs/Kettle/Jem/Tasks/TemplateTask.html b/gems/kettle-jem/docs/Kettle/Jem/Tasks/TemplateTask.html index f712b19eb..7873e5fa0 100644 --- a/gems/kettle-jem/docs/Kettle/Jem/Tasks/TemplateTask.html +++ b/gems/kettle-jem/docs/Kettle/Jem/Tasks/TemplateTask.html @@ -6,7 +6,7 @@ Module: Kettle::Jem::Tasks::TemplateTask - — Documentation by YARD 0.9.44 + — Documentation by YARD 0.9.45 @@ -532,9 +532,9 @@

    diff --git a/gems/kettle-jem/docs/Kettle/Jem/TemplateChecksums.html b/gems/kettle-jem/docs/Kettle/Jem/TemplateChecksums.html index 8a02d495b..061dc69cf 100644 --- a/gems/kettle-jem/docs/Kettle/Jem/TemplateChecksums.html +++ b/gems/kettle-jem/docs/Kettle/Jem/TemplateChecksums.html @@ -6,7 +6,7 @@ Module: Kettle::Jem::TemplateChecksums - — Documentation by YARD 0.9.44 + — Documentation by YARD 0.9.45 @@ -359,19 +359,19 @@

     
     
    -1479
    -1480
    -1481
    -1482
    -1483
    -1484
    -1485
    -1486
    -1487
    -1488
    +1621 +1622 +1623 +1624 +1625 +1626 +1627 +1628 +1629 +1630

    -
    # File 'lib/kettle/jem.rb', line 1479
    +      
    # File 'lib/kettle/jem.rb', line 1621
     
     def build_yaml_block(checksums:, version: nil)
       lines = [YAML_KEY]
    @@ -403,20 +403,20 @@ 

     
     
    -1422
    -1423
    -1424
    -1425
    -1426
    -1427
    -1428
    -1429
    -1430
    -1431
    -1432
    +1564 +1565 +1566 +1567 +1568 +1569 +1570 +1571 +1572 +1573 +1574

    -
    # File 'lib/kettle/jem.rb', line 1422
    +      
    # File 'lib/kettle/jem.rb', line 1564
     
     def compute(template_root:)
       root = template_root.to_s.chomp("/")
    @@ -449,16 +449,16 @@ 

     
     
    -1471
    -1472
    -1473
    -1474
    -1475
    -1476
    -1477
    +1613 +1614 +1615 +1616 +1617 +1618 +1619

    -
    # File 'lib/kettle/jem.rb', line 1471
    +      
    # File 'lib/kettle/jem.rb', line 1613
     
     def detail_lines(diff)
       [
    @@ -487,19 +487,19 @@ 

     
     
    -1445
    -1446
    -1447
    -1448
    -1449
    -1450
    -1451
    -1452
    -1453
    -1454
    +1587 +1588 +1589 +1590 +1591 +1592 +1593 +1594 +1595 +1596

    -
    # File 'lib/kettle/jem.rb', line 1445
    +      
    # File 'lib/kettle/jem.rb', line 1587
     
     def diff(current:, stored:)
       current_keys = current.keys.to_set
    @@ -531,12 +531,12 @@ 

     
     
    -1456
    -1457
    -1458
    +1598 +1599 +1600

    -
    # File 'lib/kettle/jem.rb', line 1456
    +      
    # File 'lib/kettle/jem.rb', line 1598
     
     def diff_count(diff)
       diff.fetch(:added, []).size + diff.fetch(:changed, []).size + diff.fetch(:removed, []).size
    @@ -561,19 +561,19 @@ 

     
     
    -1434
    -1435
    -1436
    -1437
    -1438
    -1439
    -1440
    -1441
    -1442
    -1443
    +1576 +1577 +1578 +1579 +1580 +1581 +1582 +1583 +1584 +1585

    -
    # File 'lib/kettle/jem.rb', line 1434
    +      
    # File 'lib/kettle/jem.rb', line 1576
     
     def load_stored(config_path:)
       return {} unless File.exist?(config_path.to_s)
    @@ -605,29 +605,29 @@ 

     
     
    -1500
    -1501
    -1502
    -1503
    -1504
    -1505
    -1506
    -1507
    -1508
    -1509
    -1510
    -1511
    -1512
    -1513
    -1514
    -1515
    -1516
    -1517
    -1518
    -1519
    +1642 +1643 +1644 +1645 +1646 +1647 +1648 +1649 +1650 +1651 +1652 +1653 +1654 +1655 +1656 +1657 +1658 +1659 +1660 +1661

    -
    # File 'lib/kettle/jem.rb', line 1500
    +      
    # File 'lib/kettle/jem.rb', line 1642
     
     def replace_top_level_yaml_block(content, key, replacement)
       lines = content.to_s.lines
    @@ -669,19 +669,19 @@ 

     
     
    -1460
    -1461
    -1462
    -1463
    -1464
    -1465
    -1466
    -1467
    -1468
    -1469
    +1602 +1603 +1604 +1605 +1606 +1607 +1608 +1609 +1610 +1611

    -
    # File 'lib/kettle/jem.rb', line 1460
    +      
    # File 'lib/kettle/jem.rb', line 1602
     
     def summary(diff)
       count = diff_count(diff)
    @@ -713,18 +713,18 @@ 

     
     
    -1490
    -1491
    -1492
    -1493
    -1494
    -1495
    -1496
    -1497
    -1498
    +1632 +1633 +1634 +1635 +1636 +1637 +1638 +1639 +1640

    -
    # File 'lib/kettle/jem.rb', line 1490
    +      
    # File 'lib/kettle/jem.rb', line 1632
     
     def write_to_config(config_path:, checksums:, version: nil)
       return unless File.exist?(config_path.to_s)
    @@ -745,9 +745,9 @@ 

    diff --git a/gems/kettle-jem/docs/Kettle/Jem/TemplatingReport.html b/gems/kettle-jem/docs/Kettle/Jem/TemplatingReport.html index 5b5541008..a20c795c8 100644 --- a/gems/kettle-jem/docs/Kettle/Jem/TemplatingReport.html +++ b/gems/kettle-jem/docs/Kettle/Jem/TemplatingReport.html @@ -6,7 +6,7 @@ Module: Kettle::Jem::TemplatingReport - — Documentation by YARD 0.9.44 + — Documentation by YARD 0.9.45 @@ -531,19 +531,19 @@

     
     
    -1548
    -1549
    -1550
    -1551
    -1552
    -1553
    -1554
    -1555
    -1556
    -1557
    +1690 +1691 +1692 +1693 +1694 +1695 +1696 +1697 +1698 +1699

    -
    # File 'lib/kettle/jem.rb', line 1548
    +      
    # File 'lib/kettle/jem.rb', line 1690
     
     def build_entry(name, spec, workspace_root:)
       path = spec&.full_gem_path.to_s
    @@ -575,14 +575,14 @@ 

     
     
    -1581
    -1582
    -1583
    -1584
    -1585
    +1723 +1724 +1725 +1726 +1727

    -
    # File 'lib/kettle/jem.rb', line 1581
    +      
    # File 'lib/kettle/jem.rb', line 1723
     
     def canonical_path(path)
       File.realpath(path)
    @@ -609,29 +609,29 @@ 

     
     
    -1587
    -1588
    -1589
    -1590
    -1591
    -1592
    -1593
    -1594
    -1595
    -1596
    -1597
    -1598
    -1599
    -1600
    -1601
    -1602
    -1603
    -1604
    -1605
    -1606
    +1729 +1730 +1731 +1732 +1733 +1734 +1735 +1736 +1737 +1738 +1739 +1740 +1741 +1742 +1743 +1744 +1745 +1746 +1747 +1748

    -
    # File 'lib/kettle/jem.rb', line 1587
    +      
    # File 'lib/kettle/jem.rb', line 1729
     
     def console_lines(snapshot: nil, project_root: nil)
       snapshot ||= self.snapshot
    @@ -673,25 +673,25 @@ 

     
     
    -1559
    -1560
    -1561
    -1562
    -1563
    -1564
    -1565
    -1566
    -1567
    -1568
    -1569
    -1570
    -1571
    +1701 +1702 +1703 +1704 +1705 +1706 +1707 +1708 +1709 +1710 +1711 +1712 +1713

    -
    # File 'lib/kettle/jem.rb', line 1559
    +      
    # File 'lib/kettle/jem.rb', line 1701
     
     def default_workspace_root
    -  env_root = ENV["KETTLE_RB_DEV"].to_s.strip
    +  env_root = ENV["KETTLE_DEV_DEV"].to_s.strip
       return if env_root.casecmp("false").zero?
     
       repo_root = File.expand_path("../../..", __dir__)
    @@ -746,16 +746,16 @@ 

     
     
    -1573
    -1574
    -1575
    -1576
    -1577
    -1578
    -1579
    +1715 +1716 +1717 +1718 +1719 +1720 +1721

    -
    # File 'lib/kettle/jem.rb', line 1573
    +      
    # File 'lib/kettle/jem.rb', line 1715
     
     def local_path?(path, workspace_root: default_workspace_root)
       return false if workspace_root.to_s.strip.empty?
    @@ -784,18 +784,18 @@ 

     
     
    -1717
    -1718
    -1719
    -1720
    -1721
    -1722
    -1723
    -1724
    -1725
    +1859 +1860 +1861 +1862 +1863 +1864 +1865 +1866 +1867

    -
    # File 'lib/kettle/jem.rb', line 1717
    +      
    # File 'lib/kettle/jem.rb', line 1859
     
     def local_warning_section(warning)
       <<~MARKDOWN.chomp
    @@ -803,7 +803,7 @@ 

    #{warning} - Set `KETTLE_RB_DEV=true` (or configure it in `.env.local`) to use sibling workspace gems instead of the installed release. + Set `KETTLE_DEV_DEV=true` (or configure it in `.env.local`) to use sibling workspace gems instead of the installed release. MARKDOWN end

    -
    # File 'lib/kettle/jem.rb', line 1727
    +      
    # File 'lib/kettle/jem.rb', line 1869
     
     def local_workspace_warning(snapshot:, project_root:)
       return if project_root.to_s.strip.empty?
    @@ -868,9 +868,9 @@ 

    checkout_path = canonical_path(local_checkout) return if loaded_path == checkout_path - env_value = ENV.fetch("KETTLE_RB_DEV", "<unset>") + env_value = ENV.fetch("KETTLE_DEV_DEV", "<unset>") "Detected sibling workspace checkout at `#{Kettle::Jem.display_path(local_checkout)}`, but this run is using installed `kettle-jem` " \ - "(KETTLE_RB_DEV=#{env_value.inspect})." + "(KETTLE_DEV_DEV=#{env_value.inspect})." end

    -
    # File 'lib/kettle/jem.rb', line 1707
    +      
    # File 'lib/kettle/jem.rb', line 1849
     
     def local_workspace_warning_lines(snapshot:, project_root:)
       warning = local_workspace_warning(snapshot: snapshot, project_root: project_root)
    @@ -911,7 +911,7 @@ 

    [ "WARNING: #{warning}", - "Hint: set KETTLE_RB_DEV=true (or configure it in .env.local) to use sibling workspace gems." + "Hint: set KETTLE_DEV_DEV=true (or configure it in .env.local) to use sibling workspace gems." ] end

    -
    # File 'lib/kettle/jem.rb', line 1608
    +      
    # File 'lib/kettle/jem.rb', line 1750
     
     def markdown_section(snapshot: nil)
       snapshot ||= self.snapshot
    @@ -1000,49 +1000,49 @@ 

     
     
    -1630
    -1631
    -1632
    -1633
    -1634
    -1635
    -1636
    -1637
    -1638
    -1639
    -1640
    -1641
    -1642
    -1643
    -1644
    -1645
    -1646
    -1647
    -1648
    -1649
    -1650
    -1651
    -1652
    -1653
    -1654
    -1655
    -1656
    -1657
    -1658
    -1659
    -1660
    -1661
    -1662
    -1663
    -1664
    -1665
    -1666
    -1667
    -1668
    -1669
    +1772 +1773 +1774 +1775 +1776 +1777 +1778 +1779 +1780 +1781 +1782 +1783 +1784 +1785 +1786 +1787 +1788 +1789 +1790 +1791 +1792 +1793 +1794 +1795 +1796 +1797 +1798 +1799 +1800 +1801 +1802 +1803 +1804 +1805 +1806 +1807 +1808 +1809 +1810 +1811

    -
    # File 'lib/kettle/jem.rb', line 1630
    +      
    # File 'lib/kettle/jem.rb', line 1772
     
     def render_markdown(project_root:, output_dir: nil, snapshot: nil, run_started_at: Time.now, finished_at: nil,
       status: nil, warnings: [], error: nil, template_diff: nil, template_commit_sha: nil)
    @@ -1104,14 +1104,14 @@ 

     
     
    -1671
    -1672
    -1673
    -1674
    -1675
    +1813 +1814 +1815 +1816 +1817

    -
    # File 'lib/kettle/jem.rb', line 1671
    +      
    # File 'lib/kettle/jem.rb', line 1813
     
     def report_path(project_root:, output_dir: nil, run_started_at: Time.now, pid: Process.pid)
       target_root = output_dir || project_root
    @@ -1138,15 +1138,15 @@ 

     
     
    -1749
    -1750
    -1751
    -1752
    -1753
    -1754
    +1891 +1892 +1893 +1894 +1895 +1896

    -
    # File 'lib/kettle/jem.rb', line 1749
    +      
    # File 'lib/kettle/jem.rb', line 1891
     
     def sibling_workspace_root(project_root)
       candidate = canonical_path(File.expand_path("..", project_root))
    @@ -1174,16 +1174,16 @@ 

     
     
    -1540
    -1541
    -1542
    -1543
    -1544
    -1545
    -1546
    +1682 +1683 +1684 +1685 +1686 +1687 +1688

    -
    # File 'lib/kettle/jem.rb', line 1540
    +      
    # File 'lib/kettle/jem.rb', line 1682
     
     def snapshot(loaded_specs: Gem.loaded_specs, workspace_root: default_workspace_root)
       {
    @@ -1212,15 +1212,15 @@ 

     
     
    -1700
    -1701
    -1702
    -1703
    -1704
    -1705
    +1842 +1843 +1844 +1845 +1846 +1847

    -
    # File 'lib/kettle/jem.rb', line 1700
    +      
    # File 'lib/kettle/jem.rb', line 1842
     
     def source_label(entry)
       return "not loaded" unless entry[:loaded]
    @@ -1248,28 +1248,28 @@ 

     
     
    -1756
    -1757
    -1758
    -1759
    -1760
    -1761
    -1762
    -1763
    -1764
    -1765
    -1766
    -1767
    -1768
    -1769
    -1770
    -1771
    -1772
    -1773
    -1774
    +1898 +1899 +1900 +1901 +1902 +1903 +1904 +1905 +1906 +1907 +1908 +1909 +1910 +1911 +1912 +1913 +1914 +1915 +1916

    -
    # File 'lib/kettle/jem.rb', line 1756
    +      
    # File 'lib/kettle/jem.rb', line 1898
     
     def template_diff_section(diff)
       lines = ["## Template File Changes", ""]
    @@ -1310,31 +1310,31 @@ 

     
     
    -1677
    -1678
    -1679
    -1680
    -1681
    -1682
    -1683
    -1684
    -1685
    -1686
    -1687
    -1688
    -1689
    -1690
    -1691
    -1692
    -1693
    -1694
    -1695
    -1696
    -1697
    -1698
    +1819 +1820 +1821 +1822 +1823 +1824 +1825 +1826 +1827 +1828 +1829 +1830 +1831 +1832 +1833 +1834 +1835 +1836 +1837 +1838 +1839 +1840

    -
    # File 'lib/kettle/jem.rb', line 1677
    +      
    # File 'lib/kettle/jem.rb', line 1819
     
     def write(project_root:, output_dir: nil, snapshot: nil, report_path: nil, run_started_at: Time.now,
       finished_at: nil, status: nil, warnings: [], error: nil, template_diff: nil, template_commit_sha: nil)
    @@ -1368,9 +1368,9 @@ 

    diff --git a/gems/kettle-jem/docs/Kettle/Jem/Version.html b/gems/kettle-jem/docs/Kettle/Jem/Version.html index 40a5ca58a..dd369c616 100644 --- a/gems/kettle-jem/docs/Kettle/Jem/Version.html +++ b/gems/kettle-jem/docs/Kettle/Jem/Version.html @@ -6,7 +6,7 @@ Module: Kettle::Jem::Version - — Documentation by YARD 0.9.44 + — Documentation by YARD 0.9.45 @@ -98,7 +98,7 @@

    VERSION =
    -
    "7.0.0"
    +
    "7.1.0"
    @@ -114,9 +114,9 @@

    diff --git a/gems/kettle-jem/docs/_index.html b/gems/kettle-jem/docs/_index.html index 4120d0ae0..f1051be7f 100644 --- a/gems/kettle-jem/docs/_index.html +++ b/gems/kettle-jem/docs/_index.html @@ -4,7 +4,7 @@ - Documentation by YARD 0.9.44 + Documentation by YARD 0.9.45 @@ -54,7 +54,7 @@
    -

    Documentation by YARD 0.9.44

    +

    Documentation by YARD 0.9.45

    Alphabetic Index

    @@ -318,13 +318,6 @@

    Namespace Listing A-Z

  • R
  • diff --git a/gems/kettle-jem/docs/class_list.html b/gems/kettle-jem/docs/class_list.html index 53ef1f5f4..24582edb8 100644 --- a/gems/kettle-jem/docs/class_list.html +++ b/gems/kettle-jem/docs/class_list.html @@ -46,7 +46,7 @@

    Class List

    diff --git a/gems/kettle-jem/docs/file.AGENTS.html b/gems/kettle-jem/docs/file.AGENTS.html index 84581aff2..50ac46fb7 100644 --- a/gems/kettle-jem/docs/file.AGENTS.html +++ b/gems/kettle-jem/docs/file.AGENTS.html @@ -6,7 +6,7 @@ File: AGENTS - — Documentation by YARD 0.9.44 + — Documentation by YARD 0.9.45 @@ -244,7 +244,7 @@

    🔧 Development Workflows

    Running Commands

    -

    Always make commands self-contained. Use mise exec -C /home/pboling/src/kettle-rb/prism-merge -- ... so the command gets the project environment in the same invocation.
    +

    Always make commands self-contained. Use mise exec -C /home/pboling/src/my/prism-merge -- ... so the command gets the project environment in the same invocation.
    If the command is complicated write a script in local tmp/ and then run the script.

    Running Tests

    @@ -270,16 +270,16 @@

    Template Management (kettle-jem)

    and regenerate local finishing artifacts such as binstubs:

    # Standard run (quiet, non-interactive — the default)
    -mise exec -C /path/to/project -- env K_JEM_TEMPLATING=true bundle exec kettle-jem install
    +mise exec -C /path/to/project -- env K_JEM_TEMPLATING=true kettle-jem install
     
     # Verbose output (see per-file detail)
    -mise exec -C /path/to/project -- env K_JEM_TEMPLATING=true KETTLE_JEM_VERBOSE=true bundle exec kettle-jem install
    +mise exec -C /path/to/project -- env K_JEM_TEMPLATING=true KETTLE_JEM_VERBOSE=true kettle-jem install
     
     # Interactive mode (prompt before each change)
    -mise exec -C /path/to/project -- env K_JEM_TEMPLATING=true bundle exec kettle-jem install --interactive
    +mise exec -C /path/to/project -- env K_JEM_TEMPLATING=true kettle-jem install --interactive
     
     # Scoped file update only; skips install finishing steps
    -mise exec -C /path/to/project -- env K_JEM_TEMPLATING=true bundle exec kettle-jem template --only README.md
    +mise exec -C /path/to/project -- env K_JEM_TEMPLATING=true kettle-jem template --only README.md
     

    Use the kettle-jem executable as the public entrypoint. The
    @@ -410,9 +410,9 @@

    🚫 Common Pitfalls

    diff --git a/gems/kettle-jem/docs/file.AGPL-3.0-only.html b/gems/kettle-jem/docs/file.AGPL-3.0-only.html index 0f1f53d64..f2d8189e2 100644 --- a/gems/kettle-jem/docs/file.AGPL-3.0-only.html +++ b/gems/kettle-jem/docs/file.AGPL-3.0-only.html @@ -6,7 +6,7 @@ File: AGPL-3.0-only - — Documentation by YARD 0.9.44 + — Documentation by YARD 0.9.45 @@ -342,9 +342,9 @@ diff --git a/gems/kettle-jem/docs/file.CHANGELOG.html b/gems/kettle-jem/docs/file.CHANGELOG.html index 029c954cf..c8d1ec91b 100644 --- a/gems/kettle-jem/docs/file.CHANGELOG.html +++ b/gems/kettle-jem/docs/file.CHANGELOG.html @@ -5,9 +5,9 @@ File: CHANGELOG - - — Documentation by YARD 0.9.44 - + + — Documentation by YARD 0.9.45 + @@ -37,14 +37,14 @@
    @@ -75,9 +75,28 @@

    Added

      +
    • Generated CI workflow templates now cache .rspec_status with explicit
      +per-workflow keys so kettle-test / turbo_tests2 can reuse timing data
      +across MRI, JRuby, TruffleRuby, coverage, heads, dep-heads, and framework
      +matrix runs.
    • +
    • JRuby 9.2 workflow templates now use the legacy-engine bundle install path
      +instead of ruby/setup-ruby bundler caching so old Bundler does not fail
      +setup against gem servers without the full legacy index.
    • +
    • Gemspec templating now structurally merges destination spec.files
      +collection entries with template package entries so project-specific
      +packaged files are not lost when the template rewrites the generated gemspec
      +structure.
    • +
    • Gemspec templating now restores additional legacy Prism policy behavior for
      +destination-only metadata fields, Bundler git ls-files package declarations,
      +and empty development-dependency section cleanup after runtime dependency
      +promotion.
    • Added the repo-local bin/kettle-jem-workflow-pins maintenance script to
      update the GitHub Actions SHA pin index used by generated workflow templates
      via kettle-gha-sha-pins.
    • +
    • Generated local Gemfile templates now document why nomono is explicitly
      +activated before requiring nomono/bundler.
    • +
    • Added the repo-local bin/kettle-jem-deps-floor maintenance script to scan
      +dependency-bearing kettle-jem templates and update their dependency floors.
    • kettle-jem install now generates a curated bin/appraisal binstub for the
      appraisal2 executable.
    • @@ -85,25 +104,312 @@

      Added

      README badges.
    • Added explicit ruby.test_minimum template configuration, defaulting to
      Ruby 2.4, for generated CI workflow and Appraisal floors.
    • +
    • Added top-level integrations configuration for disabling coverage
      +integrations (codecov, coveralls, qlty) and the SkyWalking Eyes license
      +check integration across README badges, upload/check workflow steps, packaged
      +config/workflow templates, and cleanup of existing config files or workflows.
    • kettle-jem’s own mise environment now enables templating dependencies so
      templating-only floors are validated in the normal gem bundle.
    • Restored kettle-jem prepare as a pre-flight dependency bootstrap mode for
      applying the minimal templating Gemfile payload before full templating.
    • +
    • Gem templates and generated root Gemfiles now require kettle-dev >= 2.2.24.
    • Version-gem bootstrapping now removes stale top-level RBS VERSION
      declarations and generated style workflows load the RBS environment so
      duplicate declarations fail in CI.
    • +
    • Version-gem bootstrapping now removes literal bundle gem scaffold RBS
      +VERSION declarations before writing the managed version.rbs signature.
    • +
    • Added a destructive shim template profile for compatibility wrapper gems.
      +Shim templating accepts the replacement gem via --shimmed-gem or
      +KETTLE_JEM_SHIMMED_GEM, generates only the shim runtime/docs/specs/CI, and
      +deletes obsolete implementation code, behavior specs, workflows, and gemfiles.

    Changed

      +
    • Generated gemspec templates now require kettle-dev >= 2.3.7.
    • +
    • kettle-jem now requires kettle-rb >= 0.1.4.
    • +
    • Refreshed generated GitHub Actions workflow pins for ruby/setup-ruby and
      +CodeQL actions.
    • +
    • Gemfile and Appraisals template merge adapter failures now fail closed instead
      +of silently accepting template content.
    • +
    • Generated pull request engine workflows now keep JRuby and TruffleRuby
      +coverage available via branch opt-in prefixes: jruby/* runs JRuby
      +workflows, truffleruby/* runs TruffleRuby workflows, and engines/* runs
      +all engine workflows. Other pull request branches continue to run MRI checks
      +without the alternate engine jobs.
    • +
    • Generated CONTRIBUTING docs now explain the jruby/*, truffleruby/*, and
      +engines/* branch prefixes that opt pull requests into alternate Ruby engine
      +workflows.
    • +
    • Generated workflow templates now evaluate skip-CI commit messages only for
      +push events, and mixed head/dependency-head templates gate JRuby and
      +TruffleRuby jobs before runner provisioning on pull requests.
    • +
    • Generated standalone JRuby and TruffleRuby workflow templates now group their
      +push skip checks before their pull request branch guards so ordinary pull
      +request branches do not run alternate engine jobs.
    • +
    • Template apply now restores executable bits on generated Git hook scripts.
    • +
    • +require "kettle/jem" now defers parser-backed template runtime dependencies
      +until template execution so Rake task installation does not load
      +tree_sitter_language_pack before RuboCop loads parser.
    • +
    • +require "kettle/jem" no longer directly loads version_gem by default;
      +require kettle/jem/version_gem for the optional VersionGem::Basic
      +extension.
    • +
    • Ruby, engine, Rails, RuboCop, and RuboCop LTS compatibility choices now come
      +from Kettle::Rb::CompatMatrix in kettle-rb.
    • +
    • Generated mise.toml files no longer export RUBOCOP_LTS_LOCAL=false;
      +local RuboCop-LTS mode is now controlled by setting the variable only when a
      +local checkout should be used.
    • +
    • Generated style Gemfiles now require rubocop-lts-rspec >= 1.0.4.
    • +
    • kettle-jem now declares and loads the direct rbs runtime dependency used
      +by its RBS signature cleanup logic.
    • +
    • Version-gem bootstrapping now preserves projects that load version_gem
      +through a dedicated lib/<entrypoint>/version_gem.rb file instead of forcing
      +it back into the default entrypoint.
    • +
    • Version-gem bootstrapping now updates existing generated version specs to
      +require a dedicated lib/<entrypoint>/version_gem.rb entrypoint when present.
    • +
    • Gem templates and generated root Gemfiles now require kettle-dev >= 2.3.5.
    • +
    • Gem templates and generated root Gemfiles now require kettle-test >= 2.0.11.
    • +
    • Gem templates and generated root Gemfiles now require turbo_tests2 >= 3.1.14.
    • +
    • Generated gemspecs and optional Gemfiles now require stone_checksums >= 1.0.6.
    • +
    • Shim gemspec templates now include LICENSE.md, matching the generated
      +license template filename, instead of the nonexistent LICENSE.txt.
    • +
    • Monorepo subgem package templating now includes the main Gemfile so existing
      +generated gems receive the nomono bootstrap required by local modular
      +Gemfiles during templating-mode CI.
    • +
    • Templating now applies transferable kettle-jem changelog entries to destination
      +CHANGELOG.md files using stable kettle-jem-template-YYYYMMDD-NNN IDs.
    • +
    • Generated gemspecs now support explicit extra package-file globs via
      +gemspec.package_files.include in .structuredmerge/kettle-jem.yml.
    • +
    • Version-gem templates now generate one package-level RBS file at
      +sig/<entrypoint>.rbs and migrate legacy nested
      +sig/<entrypoint>/version.rbs files into it.
    • +
    • Generated gemspec package manifests now omit repository-only governance docs,
      +signing certs, recursive signature directories, split license files, and
      +spec.extra_rdoc_files by default.
    • +
    • Generated templates now require the released floors for kettle-dev 2.3.0,
      +kettle-drift 1.0.5, kettle-test 2.0.9, nomono 1.0.8, and
      +token-resolver 2.0.4.
    • +
    • Generated gemspecs now require appraisal2 >= 3.1.4.
    • +
    • +

      Generated style Gemfiles now require appraisal2-rubocop >= 1.0.0.

      +
    • +
    • +

      Generated optional Gemfiles no longer duplicate the gemspec’s direct
      +stone_checksums development dependency.

      +
    • +
    • Quiet templating orchestration now passes quiet flags and debug-suppressing
      +environment to Bundler commands.
    • +
    • Generated Appraisal guidance now defaults to bin/rake appraisal:generate,
      +reserving appraisal:update for intentional lock refreshes.
    • +
    • Gemspec templating now raises preserved rspec-stubbed_env dependencies to
      +>= 1.0.6.
    • +
    • Generated documentation Gemfiles now require yard-fence >= 0.9.6,
      +yard-timekeeper >= 0.2.3, and yard-yaml >= 0.2.3.
    • +
    • +

      kettle-jem now requires kettle-rb >= 0.1.2.

      +
    • +
    • kettle-jem-template-20260716-001 - Shim gemspec manifests now include
      +LICENSE.md instead of nonexistent LICENSE.txt.
    • +
    • kettle-jem-template-20260716-002 - Generated gemspec manifests now ship fewer
      +repository-only files by default to reduce downstream distro packaging churn.
    • +
    + +

    Deprecated

    + +

    Removed

    + +

    Fixed

    + +
      +
    • Workflow template pin maintenance now compares and updates complete pinned
      +action strings in source files, so bin/kettle-jem-workflow-pins --check
      +fails when template files drift from github_actions_step_pins even if the
      +action name is already covered by the pin index.
    • +
    • kettle-jem’s own gemspec now includes public signing certs in packaged files.
    • +
    • Generated CI workflow synchronization now emits valid YAML for matrix and
      +setup-ruby sections instead of misindenting multi-line template fragments.
    • +
    • Open Collective badge/funding detection now respects disabled funding policy
      +without falling back to the default organization.
    • +
    • Version-gem RBS consolidation now migrates all legacy nested
      +sig/<entrypoint>/**/*.rbs content into the package-level signature and
      +removes the nested files, including when the package-level signature is
      +managed by a template entry.
    • +
    • Generated dep-heads workflows now run current TruffleRuby directly from the
      +generated gemfiles/dep_heads.gemfile, avoiding Appraisal.root.gemfile
      +bootstrap failures with TruffleRuby’s bundled RubyGems/Bundler and gem.coop.
    • +
    • Packaged Rakefile templating now merges destination Rakefiles by default
      +instead of replacing them wholesale, preserving project-specific rake tasks
      +such as release or adapter test helpers.
    • +
    • Version-gem namespace discovery no longer treats nested implementation
      +namespaces in the public entrypoint, such as Kettle::Dev::Tasks, as the gem
      +namespace when the existing version namespace is more specific.
    • +
    • Gemfile and gemspec templating byte-offset rewrites now splice source with
      +byte-aware slicing so non-ASCII content before an edited AST node does not
      +corrupt generated Ruby.
    • +
    • Generated legacy-engine CI workflows now install Bundler gems under
      +${RUNNER_TEMP}/bundle instead of vendor/bundle, preventing Appraisal
      +installs from creating nested gemfiles/vendor bundles.
    • +
    • +

      Generated RuboCop configs now exclude **/vendor/**/* so nested vendored
      +dependency trees are not linted.

      +
    • +
    • Fixed bin/kettle-jem-workflow-pins so its default project root resolves to
      +the kettle-jem gem root relative to the script instead of the caller’s working
      +directory.
    • +
    • Generated GitHub Actions workflows now preserve existing push branch filters
      +from destination workflows.
    • +
    • GitHub Actions workflow templating now preserves existing destination SHA
      +pins for the same action/version when accepted templates are stale, and emits
      +a final warning telling maintainers to update the workflow template pins.
    • +
    • SimpleCov templating now removes legacy kettle-soup-cover startup requires
      +from .simplecov and upgrades modifier-form spec_helper coverage bootstraps
      +to the full kettle-soup-cover SimpleCov.start block.
    • +
    • Root Gemfile templating now keeps nomono_requirements before existing
      +gem "nomono", *nomono_requirements calls when merging legacy local sibling
      +wiring.
    • +
    • Root Gemfile templating no longer adds generic direct-sibling path wiring for
      +runtime dependencies already handled by project-specific local modular
      +Gemfiles.
    • +
    • Root Gemfile templating now evaluates the paired modular Gemfile for direct
      +runtime dependencies handled by *_local.gemfile overrides, preserving
      +released-vs-local switching after accept_template Gemfile rewrites.
    • +
    • Root Gemfile templating now recognizes eval_nomono_gems(gems: local_gems)
      +declarations in *_local.gemfile files before deciding whether a runtime
      +dependency is already handled by paired modular local wiring.
    • +
    • Local GitHub remotes now override generated gemspec source_code_uri tag URLs
      +when deriving repository owner tokens, preventing stale homepage metadata from
      +corrupting README logos and local sibling workspace env names.
    • +
    • Bootstrap configs now seed runtime URI values, OpenCollective ENV overrides,
      +and Gemfile template ownership so first-time full templating does not leave
      +raw URI tokens or merge legacy Gemfile dependency sets into the generated
      +bundle.
    • +
    • Generated Gemfiles now activate the Bundler-locked nomono before loading
      +nomono/bundler, avoiding global gem activation conflicts during
      +templating.
    • +
    • Generated Gemfiles now scope templating-only direct sibling local-path
      +environment overrides to the direct dependency block so later modular
      +Gemfiles do not accidentally enter local sibling mode.
    • +
    • Generated style Gemfiles now skip released RuboCop-LTS gems that were already
      +declared by earlier Gemfile evaluation, avoiding duplicate path/version
      +declarations during templating.
    • +
    • Generated documentation local Gemfiles now skip the current package and
      +already declared gems before adding local family path overrides.
    • +
    • Gem templates now require appraisal2 >= 3.1.3.
    • +
    • Generated style Gemfiles now require appraisal2-rubocop >= 0.2.2.
    • +
    • Generated main Gemfiles now require nomono >= 1.0.6.
    • +
    • Generated templating local Gemfiles now only use TSLP_DEV for local
      +tree_sitter_language_pack path overrides and no longer derive that path
      +from STRUCTUREDMERGE_DEV.
    • +
    • Generated gemspecs now require version_gem >= 1.1.14.
    • +
    • Generated gemspecs now require gitmoji-regex >= 2.0.4.
    • +
    • Generated documentation Gemfiles now require yaml-converter >= 0.2.3.
    • +
    • Generated documentation Gemfiles now require yard-fence >= 0.9.5.
    • +
    • Generated documentation Gemfiles now require yard-timekeeper >= 0.2.2.
    • +
    • Generated documentation Gemfiles now require yard-yaml >= 0.2.2.
    • +
    • Gemfile, gemspec, Appraisal, and Rakefile template merging now derives Ruby
      +call source ranges and static string values from Prism nodes so heredoc
      +string arguments are preserved transparently.
    • +
    • Gemspec dependency preservation now rewrites project-version constant
      +interpolation in dependency requirements to spec.version so preserved
      +dependencies remain loadable after anonymous-module version loading.
    • +
    • Removed retired funding links and template tokens from generated kettle-jem
      +funding and README templates.
    • +
    • Retemplated generated project metadata, support documentation, CI workflows,
      +binstubs, and development dependency floors with kettle-jem v7.0.0.
    • +
    • Generated README and workflow templates now treat Ruby 4.0 as MRI current,
      +add discrete JRuby 10.0 and TruffleRuby 33.0 workflows/badges, and include a
      +TruffleRuby HEAD badge pointing at the shared heads workflow.
    • +
    • Generated CI workflows now disable ruby/setup-ruby Bundler caching for
      +TruffleRuby 25.0 and JRuby 9.3 and run a serial Bundler install to avoid
      +legacy engine setup failures.
    • +
    • +kettle-jem install now runs rubocop_gradual:autocorrect after templating
      +and before the bootstrap commit when the destination project provides
      +bin/rake, so project-local Ruby syntax floors can normalize generated
      +files.
    • +
    • +RUBOCOP_LTS_LOCAL templating now switches the local rubocop-lts/rubocop-lts
      +checkout to the branch matching the selected rubocop-rubyN_N wrapper before
      +running setup and RuboCop Gradual normalization.
    • +
    • Generated RuboCop-LTS local style Gemfiles now exclude the current project
      +package and already-declared gems before adding local family path overrides.
    • +
    • Generated funding templates now default missing OpenCollective orgs to
      +galtzo-floss and warn when that fallback differs from the GitHub org.
    • +
    • Shim gemspec templates now include the kettle-dev release/test harness
      +dependencies required by kettle-changelog, kettle-test, and release tasks.
    • +
    • Shim gemspec templates now resolve the generated gem version token instead of
      +leaving {KJ|GEM_VERSION} unresolved.
    • +
    • Shim and monorepo-root template profiles now include generated .gitignore
      +files so local .env.local configuration is ignored consistently.
    • +
    • Shim Gemfile templates now include nomono and the generated templating
      +Gemfiles so K_JEM_TEMPLATING=true bundle exec kettle-jem install works.
    • +
    • Shim Gemfile templates no longer add a Git-sourced replacement gem fallback;
      +the released replacement gem is already declared by the generated gemspec.
    • +
    • Shim Gemfile templates now use https://gem.coop, matching the full template
      +and allowing released replacement gems to resolve without Git sources.
    • +
    • Generated README compatibility sections now use prose for the test-matrix
      +credit and render all generated details blocks with Markdown enabled.
    • +
    • Generated README compatibility sections now pair the test-matrix credit with
      +the kettle-dev logo and use a kettle-dev-specific details summary.
    • +
    • The generated README dev/test stack table now includes kettle-jem with its
      +Appraisals and CI workflow template role.
    • +
    • The generated README dev/test stack table now includes kettle-dev and keeps
      +stack gems in A-Z order while preserving self-exclusion.
    • +
    • Gem templates and generated root Gemfiles now require kettle-dev >= 2.2.22.
    • +
    • Generated SimpleCov setup now keeps .simplecov configuration-only and
      +starts coverage explicitly from spec/spec_helper.rb for SimpleCov v1.
    • +
    • +.simplecov templating now removes obsolete SimpleCov.start blocks with a
      +Prism AST cleanup pass while preserving destination-local configuration.
    • +
    • +.simplecov templating now removes the obsolete kettle-soup-cover config
      +require with the same Prism AST cleanup pass so SimpleCov finishes loading
      +before formatter configuration is required.
    • +
    • +.simplecov templating now migrates old generated keep_destination
      +overrides and converts preserved track_files calls to cover calls.
    • +
    • Generated spec helper templating now normalizes stale SimpleCov bootstrap
      +blocks by deduplicating SimpleCov requires and restoring the formatter config
      +require before SimpleCov.start.
    • +
    • Generated spec helpers now document that requiring SimpleCov loads the
      +configuration-only .simplecov before coverage starts.
    • +
    • Generated coverage Gemfiles no longer pin SimpleCov to the pre-release-only
      +kettle-dev/simplecov fix-final-parallel-worker-formatting branch.
    • +
    • Generated workspace path examples now use the renamed my local workspace
      +instead of the old kettle-rb checkout path.
    • +
    • Generated coverage Gemfiles now require kettle-soup-cover >= 3.0.0.
    • +
    • Generated Rakefiles now use # simplecov:disable / # simplecov:enable
      +blocks instead of deprecated legacy coverage markers.
    • +
    • +kettle-jem install now uses the latest kettle-family install marker to
      +activate locally installed template-stack source roots during templating
      +setup.
    • +
    • Generated Gemfiles now guard preserved runtime eval_nomono_gems workspace
      +overrides during K_JEM_TEMPLATING=true, keeping templating bundles isolated
      +from target runtime sibling path dependencies.
    • +
    • Generated main Gemfiles now add templating-aware nomono wiring for direct
      +runtime dependencies that exist as sibling gems in the same local family
      +workspace.
    • +
    • Install lockfile normalization now keeps direct sibling runtime dependencies
      +available through the generated family *_DEV environment while still
      +disabling templating-only path overrides.
    • +
    • Generated kettle-jem usage instructions now use the kettle-jem executable as
      +the bootstrap entrypoint instead of starting from bundle exec kettle-jem.
    • +
    • Generated templating Gemfiles now resolve the local tree-sitter language pack
      +workspace fork from structuredmerge/vendor.
    • +
    • Generated Appraisals now use modern keyword hash syntax for the
      +appraisal2-rubocop plugin declaration.
    • Refreshed the generated codecov/codecov-action workflow pin and made
      workflow-pin specs validate immutable pin shape instead of exact live SHAs.
    • -
    • Gem templates and generated templating Gemfiles now require kettle-dev >= 2.2.8.
    • -
    • The packaged gemspec template now uses the same kettle-dev 2.2.8 floor as
      +
    • Refreshed generated workflow templates to pin actions/checkout to the
      +v7.0.0 release.
    • +
    • Gem templates and generated templating Gemfiles now require kettle-dev >= 2.2.12.
    • +
    • The packaged gemspec template now uses the same kettle-dev 2.2.12 floor as
      generated Gemfile tooling.
    • -
    • Generated templating Gemfiles now require kettle-drift >= 1.0.3.
    • -
    • Gem templates now require kettle-test >= 2.0.5.
    • +
    • Generated templating Gemfiles now require kettle-drift >= 1.0.4.
    • +
    • Gem templates now require kettle-test >= 2.0.8.
    • Generated coverage Gemfiles now require kettle-soup-cover >= 2.0.2.
    • Generated style Gemfiles now require rubocop-gradual >= 0.4.0.
    • Generated style Gemfiles now require appraisal2-rubocop >= 0.2.1.
    • @@ -112,9 +418,15 @@

      Changed

      instead of replacing it with the primary author token.
    • Retemplating now removes legacy .github/workflows/tests.yml files as
      obsolete workflows.
    • -
    • Runtime dependency token-resolver now requires 2.0.2 or newer.
    • -
    • Gem templates now require turbo_tests2 >= 3.1.3 for the default
      +
    • Runtime dependency token-resolver now requires 2.0.3 or newer.
    • +
    • Gem templates now require turbo_tests2 >= 3.1.6 for the default
      kettle-test runner dependency.
    • +
    • The README template now links kettle-readme-backers to the generated
      +bin/ binstub instead of a non-existent exe/ path.
    • +
    • The README template’s test matrix credit now highlights the Kettle dev/test
      +stack with BestGems, GitHub, and daily download rank links, excluding the
      +current gem from its own stack table.
    • +
    • The README dev/test stack table now includes kettle-soup-cover.
    • Documentation templates now require yard-yaml >= 0.2.1.
    • Gemfile and gemspec source checks now prefer Prism-backed call records instead
      of regex/string fallback matching for dependency and project-name decisions.
    • @@ -131,19 +443,26 @@

      Changed

      the peeled commit SHA for v6.0.3 and qltysh/qlty-action/coverage to the
      immutable SHA for v2.2.1.
    • Generated GitHub Actions workflow templates now refresh pins for
      -coverallsapp/github-action, codecov/codecov-action, and
      -kettle-rb/ts-grammar-action.
    • +coverallsapp/github-action and codecov/codecov-action. +
    • Generated templating and unlocked dependency workflows no longer install the
      +legacy tree-sitter action and rely on the packaged
      +tree_sitter_language_pack runtime instead.
    • +
    • Generated templating workflows and kettle-jem prepare now update nomono
      +before install/selftest commands run, so stale locks do not activate old
      +local-workspace wiring code.
    • Generated GitHub Actions workflow templates now refresh pins for
      github/codeql-action sub-actions to v4.36.2.
    • -
    • Generated workflow templates now pin coverallsapp/github-action,
      -codecov/codecov-action, and kettle-rb/ts-grammar-action to resolvable
      -release SHAs instead of stripped SemVer strings.
    • +
    • Generated workflow templates now pin coverallsapp/github-action and
      +codecov/codecov-action to resolvable release SHAs instead of stripped
      +SemVer strings.
    • +
    • Generated README badge URLs now use the same URI-normalized form as
      +kettle-pre-release, avoiding churn between encoded namespace separators
      +and Unicode badge messages.
    • Generated GitHub Actions workflow templates now refresh ruby/setup-ruby to
      the immutable SHA for v1.312.0 and codecov/codecov-action to the latest
      v7.0.0 release comment.
    • Generated GitHub Actions workflow templates now refresh ruby/setup-ruby,
      -coverallsapp/github-action, pozil/auto-assign-issue, and
      -kettle-rb/ts-grammar-action pins.
    • +coverallsapp/github-action, and pozil/auto-assign-issue pins.
    • Generated coverage workflows now publish QLTY coverage with GitHub OIDC so
      repositories do not require QLTY_COVERAGE_TOKEN to be configured.
    • Generated README and FUNDING OpenCollective links now use the configured
      @@ -199,12 +518,11 @@

      Changed

    • Documented rubygems.min_ruby in the generated .kettle-jem.yml so projects
      can make the published runtime Ruby floor explicit.
    • Documentation templates now require yard-yaml >= 0.2.0.
    • -
    • Documentation templates now require yard-fence >= 0.9.3.
    • +
    • Documentation templates now require yard-fence >= 0.9.4.
    • Documentation templates now require yard-timekeeper >= 0.2.1.
    • Gem templates and generated templating Gemfiles now require kettle-dev >= 2.1.1.
    • Gem templates now require kettle-test >= 2.0.3.
    • Gem templates now require appraisal2 >= 3.1.1.
    • -
    • Gem templates now require version_gem >= 1.1.11.
    • Generated templating Gemfiles now require kettle-drift >= 1.0.1.
    • Runtime dependency token-resolver now requires the released 2.x line.
    • Development lockfile generation now uses Bundler 4.0.12.
    • @@ -230,9 +548,9 @@

      Changed

      command config as well as managed .gitattributes, so local git diff
      can actually invoke StructuredMerge drivers after templating.
    • Runtime dependency token-resolver now requires 2.0.1 or newer.
    • -
    • Generated gemspecs now require version_gem >= 1.1.11 while allowing the
      +
    • Generated gemspecs now require version_gem >= 1.1.12 while allowing the
      released 1.1 line.
    • -
    • Gem templates now require gitmoji-regex >= 2.0.1.
    • +
    • Gem templates now require gitmoji-regex >= 2.0.2.
    • Gem templates now require turbo_tests2 >= 3.1.1 for the default
      kettle-test runner.
    • Generated style Gemfiles now use the latest released rubocop-ruby*
      @@ -241,21 +559,104 @@

      Changed

      constraints for every supported Ruby floor.
    • Generated style Gemfiles now treat style dependency floors as latest-Ruby
      task dependencies, independent from the gemspec runtime Ruby floor.
    • +
    • kettle-jem now requires kettle-rb >= 0.1.1.
    • Generated coverage Gemfiles now require kettle-soup-cover >= 2.0.1.
    • -
    - -

    Deprecated

    - -

    Removed

    - -

    Fixed

    - -
      +
    • +

      Generated documentation Gemfiles now require yaml-converter >= 0.2.1
      +while allowing the released 0.2 line.

      +
    • +
    • Generated root Gemfiles no longer path-wire direct sibling dependencies from
      +stale sibling directories whose gemspec defines a different gem name.
    • +
    • Generated root Gemfiles now remove previously generated direct sibling wiring
      +when the current sibling directory no longer defines the dependency gem.
    • +
    • Generated RuboCop configs now activate the rubocop-rspec plugin for the
      +packaged RSpec RuboCop overlay.
    • +
    • Gemspec spec.files merging now supports the generated Dir[...] + [...]
      +assignment shape on subsequent template runs instead of rejecting it as
      +unsupported.
    • +
    • Generated modular Gemfiles no longer redeclare runtime dependencies that are
      +already supplied by the project gemspec.
    • +
    • Existing generated gemspecs with splat-based spec.files assignments now
      +retain configured root license files from the template instead of preserving
      +the old splat-only assignment wholesale.
    • +
    • Gemspec spec.files templating now fails hard for unsupported package-list
      +shapes instead of silently preserving destination content.
    • +
    • Generated gemspecs now package active root license files declared by the
      +project license configuration.
    • +
    • Gemspec templating no longer preserves frozen spec.files override blocks;
      +spec.files is structurally merged so stale frozen package lists cannot
      +replace the merged package payload.
    • +
    • README template merging no longer duplicates preserved destination-only
      +subsections when they are already inside another preserved destination
      +section.
    • +
    • Generated gemspecs now add an inline Gemspec/RequiredRubyVersion RuboCop
      +disable when the published runtime Ruby floor is below 2.0.
    • +
    • +kettle-jem install no longer tries to switch the local RuboCop-LTS checkout
      +while templating the RuboCop-LTS checkout itself.
    • +
    • Generated style Gemfiles now require rubocop-ruby3_2 >= 3.0.6 so
      +Appraisal/RuboCop tasks do not select damaged packages missing
      +packaged RuboCop-LTS configuration files.
    • +
    • Gemspec spec.files merging now preserves Dir[...] glob expansion when
      +merging destination glob entries into an array-based template assignment by
      +generating concatenated Dir[...] + [...] package file expressions.
    • +
    • Quiet templating orchestration no longer passes unsupported --quiet
      +switches to Bundler subcommands such as bundle binstubs or bundle lock;
      +only Bundler subcommands documented with --quiet receive that flag.
    • +
    • Gemspec spec.files merging now inserts missing trailing commas when moving
      +existing collection entries before appended template entries, preventing
      +invalid Ruby when a destination’s former last entry had no comma.
    • +
    • Gemfile templating now preserves destination-only Ruby-bucket
      +eval_gemfile entries, preventing configured recording Gemfiles from being
      +dropped when the main Gemfile template is reapplied, and restores the main
      +recording Gemfile eval when existing Appraisals show recording is configured.
    • +
    • Generated templating Gemfiles no longer duplicate appraisal2-rubocop; the
      +Appraisal generator formatter is provided by the style Gemfile loaded from
      +Appraisal.root.gemfile.
    • +
    • Generated local Gemfile overrides now load nomono/bundler without activating
      +nomono’s runtime dependencies during Bundler Gemfile evaluation, and bundled
      +handoff no longer runs through the RubyGems kettle-jem wrapper.
    • +
    • Gemspec template merging now preserves chained squiggly heredoc assignments
      +such as spec.description = <<~DESC.strip instead of replacing only the
      +opener line.
    • +
    • Generated README post-processing now adds missing compatible JRuby 10.0 and
      +TruffleRuby 33.0 compatibility badges when the matching workflow files exist.
    • +
    • Shunted Gemfile generation no longer duplicates broad gemspec development
      +dependencies that already have explicit modular Gemfile compatibility
      +overrides, such as old-Ruby fork handling.
    • +
    • +kettle-jem install no longer fails a stale outer bootstrap commit step when
      +the bundled handoff already committed the generated changes.
    • +
    • Shim template discovery now recovers the package version from the git index
      +or HEAD when a previous failed run already replaced the working-tree
      +version file with replacement-gem aliases.
    • +
    • Shim profile version files now alias the replacement gem version constants
      +and compute the replacement version require path relative to the generated
      +shim version file, fixing nested require paths such as omniauth/jwt
      +shimming omniauth/jwt2.
    • +
    • +kettle-jem install now skips its bundled handoff when the destination bundle
      +does not include kettle-jem, allowing shim-only gems to finish templating.
    • +
    • Namespace discovery now detects nested module declarations in the public
      +entrypoint before falling back to a stale generated version namespace, and the
      +README namespace badge now uses the shield-safe namespace token.
    • +
    • OpenCollective template tokens now use .github/FUNDING.yml as a valid org
      +source, preventing empty https://opencollective.com//... README and
      +FUNDING links when destination env variables are not loaded.
    • +
    • Monorepo-root templating now uses the no-OpenCollective funding templates
      +when no OpenCollective slug is configured, preventing empty generated
      +OpenCollective badge URLs in root FUNDING.md files.
    • +
    • The kettle-jem CLI now refuses to run from the kettle-jem project root
      +against a different destination, so templating cannot silently use
      +kettle-jem’s own environment instead of the target repo’s environment.
    • Fixed bin/kettle-jem-workflow-pins so its synthetic workflow is valid YAML
      and child command failures include stdout diagnostics.
    • Fixed bin/kettle-jem-workflow-pins so sub-action updates reported under the
      parent action repository, such as github/codeql-action, update the full
      pinned action path instead of being silently counted as zero updates.
    • +
    • Fixed bin/kettle-jem-workflow-pins to default to the same broad upgrade
      +strategy used by family workflow pin maintenance, so minor action releases
      +such as ruby/setup-ruby are not missed by template pin refreshes.
    • README compatibility badge pruning now compares Ruby minor series so patch
      floors like >= 1.8.7 and >= 2.2.2 keep their matching minor badges.
    • Gemspec template summary and description tokens now strip an already-present
      @@ -474,7 +875,7 @@

      Fixed

      kettle-drift binstubs when they already exist from local/plugin installs
      without requiring unreleased kettle-drift in every generated gemspec.
    • Added kettle-drift to generated templating Gemfiles, resolved remotely in
      -templating mode and via KETTLE_RB_DEV locally, separate from the
      +templating mode and via KETTLE_DEV_DEV locally, separate from the
      STRUCTUREDMERGE_DEV StructuredMerge local gem set.
    • Refreshed generated README metadata blocks after template README merging so
      version-derived gemspec metadata such as source_code_uri does not stay stale.
    • @@ -543,9 +944,9 @@

      Added

    diff --git a/gems/kettle-jem/docs/file.CODE_OF_CONDUCT.html b/gems/kettle-jem/docs/file.CODE_OF_CONDUCT.html index 7c13f4c6d..87704b74d 100644 --- a/gems/kettle-jem/docs/file.CODE_OF_CONDUCT.html +++ b/gems/kettle-jem/docs/file.CODE_OF_CONDUCT.html @@ -6,7 +6,7 @@ File: CODE_OF_CONDUCT - — Documentation by YARD 0.9.44 + — Documentation by YARD 0.9.45 @@ -193,9 +193,9 @@

    Attribution

    diff --git a/gems/kettle-jem/docs/file.CONTRIBUTING.html b/gems/kettle-jem/docs/file.CONTRIBUTING.html index 54de481eb..391151e60 100644 --- a/gems/kettle-jem/docs/file.CONTRIBUTING.html +++ b/gems/kettle-jem/docs/file.CONTRIBUTING.html @@ -6,7 +6,7 @@ File: CONTRIBUTING - — Documentation by YARD 0.9.44 + — Documentation by YARD 0.9.45 @@ -94,6 +94,22 @@

    Help out!

  • Announce it in the channel for this org in the Discord!
  • +

    Ruby engine CI branches

    + +

    Pull requests run MRI workflows by default. JRuby and TruffleRuby workflows are
    +available by branch naming convention so ordinary PRs do not spend CI time on
    +alternate Ruby engines.

    + +
      +
    • Use a branch named jruby/* to run JRuby workflows for a pull request.
    • +
    • Use a branch named truffleruby/* to run TruffleRuby workflows for a pull
      +request.
    • +
    • Use a branch named engines/* to run both JRuby and TruffleRuby workflows for
      +a pull request.
    • +
    + +

    Pushes to the default branch continue to run the configured engine workflows.

    +

    Executables vs Rake tasks

    Executables shipped by dependencies, such as kettle-dev, and stone_checksums, are available
    @@ -187,7 +203,7 @@

    Environment Variables for L
  • Git hosting forges generally ignore external diff drivers, so pull request views may still show raw textual diffs even when local git diff uses semantic drivers.
  • -
    K_JEM_TEMPLATING=true bundle exec kettle-jem install
    +
    K_JEM_TEMPLATING=true kettle-jem install
     

    Troubleshooting Git diffs

    @@ -195,7 +211,7 @@

    Environment Variables for L
  • Use git diff --no-ext-diff to compare against Git’s built-in diff output.
  • Use git diff --no-textconv when a textconv projection obscures the raw file bytes you need to inspect.
  • If Git reports a missing smorg-* executable, rerun bundle install and the setup command above, then check git config --local --get-regexp '^diff\.smorg-'.
  • -
  • To remove managed local entries, run K_JEM_TEMPLATING=true bundle exec kettle-jem install --undo; remove global command registrations with git config --global --unset-all diff.smorg-ruby.command.
  • +
  • To remove managed local entries, run K_JEM_TEMPLATING=true kettle-jem install --undo; remove global command registrations with git config --global --unset-all diff.smorg-rb.command, git config --global --unset-all merge.smorg-rb.driver, and git config --global --unset-all merge.smorg-rb.name.
  • For a quick starting point, this repository’s mise.toml defines the shared defaults, and .env.local can override them locally. Copy .env.local.example to .env.local, use KEY=value lines, and either activate mise in your shell or run commands through mise exec -C /path/to/project -- ....

    @@ -210,9 +226,12 @@

    Appraisals

    They are created and updated with the commands:

    -
    bin/rake appraisal:update
    +
    bin/rake appraisal:generate
     
    +

    Use bin/rake appraisal:update when you intentionally need to resolve fresh
    +appraisal locks.

    +

    If you need to reset all gemfiles/*.gemfile.lock files:

    bin/rake appraisal:reset
    @@ -357,9 +376,9 @@ 

    Manual process

    diff --git a/gems/kettle-jem/docs/file.FUNDING.html b/gems/kettle-jem/docs/file.FUNDING.html index ae82430b8..7d6f1e0df 100644 --- a/gems/kettle-jem/docs/file.FUNDING.html +++ b/gems/kettle-jem/docs/file.FUNDING.html @@ -6,7 +6,7 @@ File: FUNDING - — Documentation by YARD 0.9.44 + — Documentation by YARD 0.9.45 @@ -65,9 +65,9 @@

    Many paths lead to being a sponsor or a backer of this project. Are you on such a path?

    -

    Sponsor Me on Github Liberapay Goal Progress Donate on PayPal

    +

    OpenCollective Backers OpenCollective Sponsors Sponsor Me on Github Liberapay Goal Progress Donate on PayPal

    -

    Buy me a coffee Donate on Polar Donate to my FLOSS efforts at ko-fi.com Donate to my FLOSS efforts using Patreon

    +

    Buy me a coffee Donate to my FLOSS efforts at ko-fi.com

    @@ -86,7 +86,7 @@

    🤑 A request for help

    To say “thanks!” ☝️ Join the Discord or 👇️ send money.

    -

    Sponsor me on GitHub Sponsors 💌 Sponsor me on Liberapay 💌 Donate on PayPal

    +

    Sponsor galtzo-floss/kettle-jem on Open Source Collective 💌 Sponsor me on GitHub Sponsors 💌 Sponsor me on Liberapay 💌 Donate on PayPal

    Another Way to Support Open Source Software

    @@ -101,9 +101,9 @@

    Another Way to Support Open diff --git a/gems/kettle-jem/docs/file.IRP.html b/gems/kettle-jem/docs/file.IRP.html index 76d4f8561..11a9fabf4 100644 --- a/gems/kettle-jem/docs/file.IRP.html +++ b/gems/kettle-jem/docs/file.IRP.html @@ -6,7 +6,7 @@ File: IRP - — Documentation by YARD 0.9.44 + — Documentation by YARD 0.9.45 @@ -98,9 +98,9 @@

    Follow-up

    diff --git a/gems/kettle-jem/docs/file.LICENSE.html b/gems/kettle-jem/docs/file.LICENSE.html index 3e6abfc3d..64cd093d8 100644 --- a/gems/kettle-jem/docs/file.LICENSE.html +++ b/gems/kettle-jem/docs/file.LICENSE.html @@ -6,7 +6,7 @@ File: LICENSE - — Documentation by YARD 0.9.44 + — Documentation by YARD 0.9.45 @@ -79,9 +79,9 @@ diff --git a/gems/kettle-jem/docs/file.PolyForm-Small-Business-1.0.0.html b/gems/kettle-jem/docs/file.PolyForm-Small-Business-1.0.0.html index 9b7d22744..2b4fbc833 100644 --- a/gems/kettle-jem/docs/file.PolyForm-Small-Business-1.0.0.html +++ b/gems/kettle-jem/docs/file.PolyForm-Small-Business-1.0.0.html @@ -6,7 +6,7 @@ File: PolyForm-Small-Business-1.0.0 - — Documentation by YARD 0.9.44 + — Documentation by YARD 0.9.45 @@ -185,9 +185,9 @@

    Definitions

    diff --git a/gems/kettle-jem/docs/file.README.html b/gems/kettle-jem/docs/file.README.html index 84e307286..34e883500 100644 --- a/gems/kettle-jem/docs/file.README.html +++ b/gems/kettle-jem/docs/file.README.html @@ -6,7 +6,7 @@ File: README - — Documentation by YARD 0.9.44 + — Documentation by YARD 0.9.45 @@ -71,12 +71,12 @@

    🔮 Kettle::Jem

    if ci_badges.map(&:color).all? { it == "green"} 👇️ send money so I can do more of this. FLOSS maintenance is now my full-time job.

    -

    Sponsor Me on Github Liberapay Goal Progress Donate on PayPal Buy me a coffee Donate on Polar Donate at ko-fi.com

    +

    OpenCollective Backers OpenCollective Sponsors Sponsor Me on Github Liberapay Goal Progress Donate on PayPal Buy me a coffee Donate at ko-fi.com

    - 👣 How will this project approach the September 2025 hostile takeover of RubyGems? 🚑️ + 👣 How will this project approach the September 2025 hostile takeover of RubyGems? 🚑️ -I've summarized my thoughts in [this blog post](https://dev.to/galtzo/hostile-takeover-of-rubygems-my-thoughts-5hlo). +

    I’ve summarized my thoughts in this blog post.

    @@ -130,9 +130,7 @@

    💡 Info you can shake a stick at

    Works with MRI Ruby 4 -Ruby 4.0 Compat Ruby current Compat -Ruby current Compat
    Support & Community
    - - - - - - - - - - - - -
    🚚 Amazing test matrix was brought to you by🔎 appraisal2 🔎 and the color 💚 green 💚
    👟 Check it out!github.com/appraisal-rb/appraisal2
    +

    kettle-dev Logo by Aboling0, CC BY-SA 4.0

    + +

    The amazing test matrix is powered by the kettle-dev stack.

    + +
    + How kettle-dev manages complexity in tests + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    GemSourceRoleDaily download rank
    appraisal2GitHubmulti-dependency Appraisal matrix generationDaily download rank for appraisal2
    appraisal2-rubocopGitHubRuboCop Appraisal generator integrationDaily download rank for appraisal2-rubocop
    kettle-devGitHubdevelopment, release, and CI workflow toolingDaily download rank for kettle-dev
    kettle-soup-coverGitHubSimpleCov coverage policy and reportingDaily download rank for kettle-soup-cover
    kettle-testGitHubstandard test runner and coverage harnessDaily download rank for kettle-test
    rubocop-ltsGitHubRuby-version-aware lintingDaily download rank for rubocop-lts
    turbo_tests2GitHubparallel test executionDaily download rank for turbo_tests2
    + +
    StructuredMerge package family @@ -381,13 +428,10 @@

    Full Configuration Reference

    domain: "example.com" # ENV override: KJ_AUTHOR_DOMAIN orcid: "0000-0000-0000-0000" # ENV override: KJ_AUTHOR_ORCID funding: - patreon: "username" # ENV override: KJ_FUNDING_PATREON kofi: "username" # ENV override: KJ_FUNDING_KOFI paypal: "username" # ENV override: KJ_FUNDING_PAYPAL buymeacoffee: "username" # ENV override: KJ_FUNDING_BUYMEACOFFEE - polar: "username" # ENV override: KJ_FUNDING_POLAR liberapay: "username" # ENV override: KJ_FUNDING_LIBERAPAY - issuehunt: "username" # ENV override: KJ_FUNDING_ISSUEHUNT social: mastodon: "username" # ENV override: KJ_SOCIAL_MASTODON bluesky: "user.bsky.social" # ENV override: KJ_SOCIAL_BLUESKY @@ -730,7 +774,7 @@

    Workflow-Specific Options

    (SHA-pinned action references) while destination wins for job configuration:

    # Template updates this SHA automatically:
    -uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10
    +uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0
     
     # Your matrix customizations are preserved:
     matrix:
    @@ -909,8 +953,8 @@ 

    Workspace & Funding

    KETTLE_RB_DEVWorkspace root for local sibling gems. true = ~/src/kettle-rb; a path = that path; unset/false = released gems.KETTLE_DEV_DEVWorkspace root for local sibling gems. true = ~/src/my; a path = that path; unset/false = released gems.
    KETTLE_DEV_DEBUG OPENCOLLECTIVE_HANDLE Alternative to FUNDING_ORG for personal OpenCollective pages.
    KJ_FUNDING_PATREONPatreon handle for FUNDING.yml
    KJ_FUNDING_KOFI Ko-fi handle for FUNDING.yml KJ_FUNDING_BUYMEACOFFEE Buy Me a Coffee handle for funding links
    KJ_FUNDING_POLARPolar handle for funding links
    KJ_FUNDING_LIBERAPAY Liberapay handle for funding links
    KJ_FUNDING_ISSUEHUNTIssueHunt handle for funding links
    KJ_SOCIAL_MASTODON Mastodon handle for social/profile links Donate on PayPalDonate on Polar Sponsor Me on Github Liberapay Goal Progress  
    @@ -411,9 +411,9 @@

    Support & Funding Info

    diff --git a/gems/kettle-jem/docs/file.RUBOCOP.html b/gems/kettle-jem/docs/file.RUBOCOP.html index f3e16de87..6851a6bd8 100644 --- a/gems/kettle-jem/docs/file.RUBOCOP.html +++ b/gems/kettle-jem/docs/file.RUBOCOP.html @@ -6,7 +6,7 @@ File: RUBOCOP - — Documentation by YARD 0.9.44 + — Documentation by YARD 0.9.45 @@ -89,12 +89,14 @@

    Checking RuboCop Violations

    Understanding the Lock File

    -

    The .rubocop_gradual.lock file tracks all current RuboCop violations in the project. This allows the team to:

    +

    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.

    + +

    This allows the team to:

      -
    1. Prevent new violations while gradually fixing existing ones
    2. +
    3. Prevent new violations while existing issues are handled deliberately
    4. Track progress on code style improvements
    5. -
    6. Ensure CI builds don’t fail due to pre-existing violations
    7. +
    8. Distinguish temporary work items from intentional project style exceptions

    Common Commands

    @@ -126,29 +128,30 @@

    Workflow

    1. Before submitting a PR, run bundle exec rake rubocop_gradual:autocorrect
      a. or just the default bundle exec rake, as autocorrection is a pre-requisite of the default task.
    2. -
    3. If there are new violations, either: +
    4. If there are violations, either:
      • Fix them in your code
      • -
      • Run bundle exec rake rubocop_gradual:force_update to update the lock file (only for violations you can’t fix immediately)
      • +
      • Normalize intentional deviations with an explicit config or inline exception
      • +
      • Run bundle exec rake rubocop_gradual:force_update only for temporary work items you cannot fix immediately
    5. Commit the updated .rubocop_gradual.lock file along with your changes
    -

    Never add inline RuboCop disables

    +

    Explicit Style Exceptions

    -

    Do not add inline rubocop:disable / rubocop:enable comments anywhere in the codebase (including specs, except when following the few existing rubocop:disable patterns for a rule already being disabled elsewhere in the code). We handle exceptions in two supported ways:

    +

    Do not treat .rubocop_gradual.lock as a baseline. Treat it as a list of work that must be fixed or normalized into the styleguide.

    -
      -
    • Permanent/structural exceptions: prefer adjusting the RuboCop configuration (e.g., in .rubocop.yml) to exclude a rule for a path or file pattern when it makes sense project-wide.
    • -
    • Temporary exceptions while improving code: record the current violations in .rubocop_gradual.lock via the gradual workflow: -
        -
      • -bundle exec rake rubocop_gradual:autocorrect (preferred; will autocorrect what it can and update the lock only if no new violations were introduced)
      • -
      • If needed, bundle exec rake rubocop_gradual:force_update (as a last resort when you cannot fix the newly reported violations immediately)
      • -
      -
    • -
    +

    Prefer this order:

    + +
      +
    1. Fix the code so it follows the configured styleguide.
    2. +
    3. For intentional project conventions, add the narrowest useful override in .rubocop.yml or .rubocop_rspec.yml.
    4. +
    5. For local intentional deviations, add a tightly scoped inline rubocop:disable / rubocop:enable around the exact line or block.
    6. +
    7. Keep an entry in .rubocop_gradual.lock only as temporary work to be resolved later.
    8. +
    + +

    Use configuration overrides when a deviation is structural, generated, path-specific, or applies consistently to a small set of files. Use inline disables when the exception is local and the reason is clearer at the code site than in global config.

    In general, treat the rules as guidance to follow; fix violations rather than ignore them. For example, RSpec conventions in this project expect described_class to be used in specs that target a specific class under test.

    @@ -156,16 +159,16 @@

    Benefits of rubocop_gradual

    • Allows incremental adoption of code style rules
    • -
    • Prevents CI failures due to pre-existing violations
    • -
    • Provides a clear record of code style debt
    • +
    • Prevents CI failures due to temporary pre-existing violations
    • +
    • Provides a clear work list of code style debt
    • Enables focused efforts on improving code quality over time
    diff --git a/gems/kettle-jem/docs/file.SECURITY.html b/gems/kettle-jem/docs/file.SECURITY.html index 7bebcdc30..2457979a7 100644 --- a/gems/kettle-jem/docs/file.SECURITY.html +++ b/gems/kettle-jem/docs/file.SECURITY.html @@ -6,7 +6,7 @@ File: SECURITY - — Documentation by YARD 0.9.44 + — Documentation by YARD 0.9.45 @@ -72,7 +72,7 @@

    Supported Versions

    - 7.0.latest + 7.1.latest ✅ @@ -93,9 +93,9 @@

    Additional Support

    diff --git a/gems/kettle-jem/docs/frames.html b/gems/kettle-jem/docs/frames.html index 3223dddda..4a6186cad 100644 --- a/gems/kettle-jem/docs/frames.html +++ b/gems/kettle-jem/docs/frames.html @@ -2,7 +2,7 @@ - Documentation by YARD 0.9.44 + Documentation by YARD 0.9.45 + + + + + + + + + + + + + +
    + + +

    Class: Kettle::Jem::EventStream + + + +

    +
    + +
    +
    Inherits:
    +
    + Object + +
      +
    • Object
    • + + + +
    + show all + +
    +
    + + + + + + + + + + + +
    +
    Defined in:
    +
    lib/kettle/jem.rb +
    +
    + +
    + + + + + + + + + +

    + Instance Method Summary + collapse +

    + + + + + +
    +

    Constructor Details

    + +
    +

    + + #initialize(io, types:) ⇒ EventStream + + + + + +

    +
    +

    Returns a new instance of EventStream.

    + + +
    +
    +
    + + +
    + + + + +
    +
    +
    +
    +3628
    +3629
    +3630
    +3631
    +
    +
    # File 'lib/kettle/jem.rb', line 3628
    +
    +def initialize(io, types:)
    +  @io = io
    +  @types = types
    +end
    +
    +
    + +
    + + +
    +

    Instance Method Details

    + + +
    +

    + + #emit(payload) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +3633
    +3634
    +3635
    +3636
    +3637
    +3638
    +
    +
    # File 'lib/kettle/jem.rb', line 3633
    +
    +def emit(payload)
    +  return unless @types.include?(payload.fetch(:type).to_s)
    +
    +  @io.puts(JSON.generate(payload.compact))
    +  @io.flush if @io.respond_to?(:flush)
    +end
    +
    +
    + +
    + +
    + + + +
    + + diff --git a/gems/kettle-jem/docs/Kettle/Jem/GemSpecReader.html b/gems/kettle-jem/docs/Kettle/Jem/GemSpecReader.html index 5309cee4d..17be50780 100644 --- a/gems/kettle-jem/docs/Kettle/Jem/GemSpecReader.html +++ b/gems/kettle-jem/docs/Kettle/Jem/GemSpecReader.html @@ -204,12 +204,12 @@

     
     
    -1112
    -1113
    -1114
    +1129 +1130 +1131

    -
    # File 'lib/kettle/jem.rb', line 1112
    +      
    # File 'lib/kettle/jem.rb', line 1129
     
     def clear_cache!
       CACHE.mutex.synchronize { CACHE.entries.clear }
    @@ -234,24 +234,24 @@ 

     
     
    -1096
    -1097
    -1098
    -1099
    -1100
    -1101
    -1102
    -1103
    -1104
    -1105
    -1106
    -1107
    -1108
    -1109
    -1110
    +1113 +1114 +1115 +1116 +1117 +1118 +1119 +1120 +1121 +1122 +1123 +1124 +1125 +1126 +1127

    -
    # File 'lib/kettle/jem.rb', line 1096
    +      
    # File 'lib/kettle/jem.rb', line 1113
     
     def load(root)
       cache_key = File.expand_path(root.to_s)
    @@ -278,7 +278,7 @@ 

    diff --git a/gems/kettle-jem/docs/Kettle/Jem/PluginContext.html b/gems/kettle-jem/docs/Kettle/Jem/PluginContext.html index 05ee628ab..c291fb984 100644 --- a/gems/kettle-jem/docs/Kettle/Jem/PluginContext.html +++ b/gems/kettle-jem/docs/Kettle/Jem/PluginContext.html @@ -459,21 +459,21 @@

     
     
    -1491
    -1492
    -1493
    -1494
    -1495
    -1496
    -1497
    -1498
    -1499
    -1500
    -1501
    -1502
    +1508 +1509 +1510 +1511 +1512 +1513 +1514 +1515 +1516 +1517 +1518 +1519

    -
    # File 'lib/kettle/jem.rb', line 1491
    +      
    # File 'lib/kettle/jem.rb', line 1508
     
     def initialize(project_root:, mode:, facts:, recipe_pack:, recipe_reports:, changed_files:, diagnostics:, phase_reports: [])
       @project_root = project_root
    @@ -524,12 +524,12 @@ 

     
     
    -1480
    -1481
    -1482
    +1497 +1498 +1499

    -
    # File 'lib/kettle/jem.rb', line 1480
    +      
    # File 'lib/kettle/jem.rb', line 1497
     
     def changed_files
       @changed_files
    @@ -566,12 +566,12 @@ 

     
     
    -1480
    -1481
    -1482
    +1497 +1498 +1499

    -
    # File 'lib/kettle/jem.rb', line 1480
    +      
    # File 'lib/kettle/jem.rb', line 1497
     
     def diagnostics
       @diagnostics
    @@ -608,12 +608,12 @@ 

     
     
    -1480
    -1481
    -1482
    +1497 +1498 +1499

    -
    # File 'lib/kettle/jem.rb', line 1480
    +      
    # File 'lib/kettle/jem.rb', line 1497
     
     def facts
       @facts
    @@ -650,12 +650,12 @@ 

     
     
    -1480
    -1481
    -1482
    +1497 +1498 +1499

    -
    # File 'lib/kettle/jem.rb', line 1480
    +      
    # File 'lib/kettle/jem.rb', line 1497
     
     def helpers
       @helpers
    @@ -692,12 +692,12 @@ 

     
     
    -1480
    -1481
    -1482
    +1497 +1498 +1499

    -
    # File 'lib/kettle/jem.rb', line 1480
    +      
    # File 'lib/kettle/jem.rb', line 1497
     
     def mode
       @mode
    @@ -734,12 +734,12 @@ 

     
     
    -1480
    -1481
    -1482
    +1497 +1498 +1499

    -
    # File 'lib/kettle/jem.rb', line 1480
    +      
    # File 'lib/kettle/jem.rb', line 1497
     
     def out
       @out
    @@ -776,12 +776,12 @@ 

     
     
    -1480
    -1481
    -1482
    +1497 +1498 +1499

    -
    # File 'lib/kettle/jem.rb', line 1480
    +      
    # File 'lib/kettle/jem.rb', line 1497
     
     def phase_reports
       @phase_reports
    @@ -818,12 +818,12 @@ 

     
     
    -1480
    -1481
    -1482
    +1497 +1498 +1499

    -
    # File 'lib/kettle/jem.rb', line 1480
    +      
    # File 'lib/kettle/jem.rb', line 1497
     
     def project_root
       @project_root
    @@ -860,12 +860,12 @@ 

     
     
    -1480
    -1481
    -1482
    +1497 +1498 +1499

    -
    # File 'lib/kettle/jem.rb', line 1480
    +      
    # File 'lib/kettle/jem.rb', line 1497
     
     def recipe_pack
       @recipe_pack
    @@ -902,12 +902,12 @@ 

     
     
    -1480
    -1481
    -1482
    +1497 +1498 +1499

    -
    # File 'lib/kettle/jem.rb', line 1480
    +      
    # File 'lib/kettle/jem.rb', line 1497
     
     def recipe_reports
       @recipe_reports
    @@ -923,7 +923,7 @@ 

    diff --git a/gems/kettle-jem/docs/Kettle/Jem/PluginHelpers.html b/gems/kettle-jem/docs/Kettle/Jem/PluginHelpers.html index 85def55d1..64557fd61 100644 --- a/gems/kettle-jem/docs/Kettle/Jem/PluginHelpers.html +++ b/gems/kettle-jem/docs/Kettle/Jem/PluginHelpers.html @@ -197,14 +197,14 @@

     
     
    -1506
    -1507
    -1508
    -1509
    -1510
    +1523 +1524 +1525 +1526 +1527

    -
    # File 'lib/kettle/jem.rb', line 1506
    +      
    # File 'lib/kettle/jem.rb', line 1523
     
     def initialize(project_root:, changed_files:, diagnostics:)
       @project_root = project_root
    @@ -238,19 +238,19 @@ 

     
     
    -1512
    -1513
    -1514
    -1515
    -1516
    -1517
    -1518
    -1519
    -1520
    -1521
    +1529 +1530 +1531 +1532 +1533 +1534 +1535 +1536 +1537 +1538

    -
    # File 'lib/kettle/jem.rb', line 1512
    +      
    # File 'lib/kettle/jem.rb', line 1529
     
     def record_template_result(path, action)
       relative_path = relative_project_path(path)
    @@ -272,7 +272,7 @@ 

    diff --git a/gems/kettle-jem/docs/Kettle/Jem/PluginLoader.html b/gems/kettle-jem/docs/Kettle/Jem/PluginLoader.html index 2674d06c8..bc4041f38 100644 --- a/gems/kettle-jem/docs/Kettle/Jem/PluginLoader.html +++ b/gems/kettle-jem/docs/Kettle/Jem/PluginLoader.html @@ -280,12 +280,12 @@

     
     
    -1474
    -1475
    -1476
    +1491 +1492 +1493

    -
    # File 'lib/kettle/jem.rb', line 1474
    +      
    # File 'lib/kettle/jem.rb', line 1491
     
     def camelize(value)
       value.to_s.split("_").map(&:capitalize).join
    @@ -310,15 +310,15 @@ 

     
     
    -1437
    -1438
    -1439
    -1440
    -1441
    -1442
    +1454 +1455 +1456 +1457 +1458 +1459

    -
    # File 'lib/kettle/jem.rb', line 1437
    +      
    # File 'lib/kettle/jem.rb', line 1454
     
     def load!(plugin_names:)
       names = normalize_plugin_names(plugin_names)
    @@ -346,23 +346,23 @@ 

     
     
    -1444
    -1445
    -1446
    -1447
    -1448
    -1449
    -1450
    -1451
    -1452
    -1453
    -1454
    -1455
    -1456
    -1457
    +1461 +1462 +1463 +1464 +1465 +1466 +1467 +1468 +1469 +1470 +1471 +1472 +1473 +1474

    -
    # File 'lib/kettle/jem.rb', line 1444
    +      
    # File 'lib/kettle/jem.rb', line 1461
     
     def load_plugin!(plugin_name, registry:)
       require(plugin_require_path(plugin_name))
    @@ -398,12 +398,12 @@ 

     
     
    -1459
    -1460
    -1461
    +1476 +1477 +1478

    -
    # File 'lib/kettle/jem.rb', line 1459
    +      
    # File 'lib/kettle/jem.rb', line 1476
     
     def normalize_plugin_names(plugin_names)
       Array(plugin_names).flatten.map { |name| name.to_s.strip }.reject(&:empty?).uniq
    @@ -428,15 +428,15 @@ 

     
     
    -1467
    -1468
    -1469
    -1470
    -1471
    -1472
    +1484 +1485 +1486 +1487 +1488 +1489

    -
    # File 'lib/kettle/jem.rb', line 1467
    +      
    # File 'lib/kettle/jem.rb', line 1484
     
     def plugin_handle(plugin_name)
       constant_name = plugin_name.to_s.split("-").map { |part| camelize(part) }.join("::")
    @@ -464,12 +464,12 @@ 

     
     
    -1463
    -1464
    -1465
    +1480 +1481 +1482

    -
    # File 'lib/kettle/jem.rb', line 1463
    +      
    # File 'lib/kettle/jem.rb', line 1480
     
     def plugin_require_path(plugin_name)
       plugin_name.to_s.tr("-", "/")
    @@ -484,7 +484,7 @@ 

    diff --git a/gems/kettle-jem/docs/Kettle/Jem/PluginOutput.html b/gems/kettle-jem/docs/Kettle/Jem/PluginOutput.html index a08da4e0e..9275783f6 100644 --- a/gems/kettle-jem/docs/Kettle/Jem/PluginOutput.html +++ b/gems/kettle-jem/docs/Kettle/Jem/PluginOutput.html @@ -220,12 +220,12 @@

     
     
    -1544
    -1545
    -1546
    +1561 +1562 +1563

    -
    # File 'lib/kettle/jem.rb', line 1544
    +      
    # File 'lib/kettle/jem.rb', line 1561
     
     def initialize(diagnostics:)
       @diagnostics = diagnostics
    @@ -257,12 +257,12 @@ 

     
     
    -1548
    -1549
    -1550
    +1565 +1566 +1567

    -
    # File 'lib/kettle/jem.rb', line 1548
    +      
    # File 'lib/kettle/jem.rb', line 1565
     
     def report_detail(message)
       @diagnostics << {kind: "plugin_detail", message: message.to_s}
    @@ -287,12 +287,12 @@ 

     
     
    -1552
    -1553
    -1554
    +1569 +1570 +1571

    -
    # File 'lib/kettle/jem.rb', line 1552
    +      
    # File 'lib/kettle/jem.rb', line 1569
     
     def warning(message)
       @diagnostics << {kind: "plugin_warning", message: message.to_s}
    @@ -307,7 +307,7 @@ 

    diff --git a/gems/kettle-jem/docs/Kettle/Jem/PluginRegistrar.html b/gems/kettle-jem/docs/Kettle/Jem/PluginRegistrar.html index 81ab8be67..ba3e36dca 100644 --- a/gems/kettle-jem/docs/Kettle/Jem/PluginRegistrar.html +++ b/gems/kettle-jem/docs/Kettle/Jem/PluginRegistrar.html @@ -276,13 +276,13 @@

     
     
    -1414
    -1415
    -1416
    -1417
    +1431 +1432 +1433 +1434

    -
    # File 'lib/kettle/jem.rb', line 1414
    +      
    # File 'lib/kettle/jem.rb', line 1431
     
     def initialize(plugin_name:, registry:)
       @plugin_name = plugin_name.to_s
    @@ -325,12 +325,12 @@ 

     
     
    -1412
    -1413
    -1414
    +1429 +1430 +1431

    -
    # File 'lib/kettle/jem.rb', line 1412
    +      
    # File 'lib/kettle/jem.rb', line 1429
     
     def plugin_name
       @plugin_name
    @@ -362,12 +362,12 @@ 

     
     
    -1427
    -1428
    -1429
    +1444 +1445 +1446

    -
    # File 'lib/kettle/jem.rb', line 1427
    +      
    # File 'lib/kettle/jem.rb', line 1444
     
     def after_phase(phase, &block)
       on_phase(phase, timing: :after, &block)
    @@ -392,12 +392,12 @@ 

     
     
    -1423
    -1424
    -1425
    +1440 +1441 +1442

    -
    # File 'lib/kettle/jem.rb', line 1423
    +      
    # File 'lib/kettle/jem.rb', line 1440
     
     def before_phase(phase, &block)
       on_phase(phase, timing: :before, &block)
    @@ -422,12 +422,12 @@ 

     
     
    -1419
    -1420
    -1421
    +1436 +1437 +1438

    -
    # File 'lib/kettle/jem.rb', line 1419
    +      
    # File 'lib/kettle/jem.rb', line 1436
     
     def on_phase(phase, timing: :after, &block)
       @registry.register(plugin_name: plugin_name, phase: phase, timing: timing, &block)
    @@ -442,7 +442,7 @@ 

    diff --git a/gems/kettle-jem/docs/Kettle/Jem/PluginRegistry.html b/gems/kettle-jem/docs/Kettle/Jem/PluginRegistry.html index d66e04ce2..1b70040a2 100644 --- a/gems/kettle-jem/docs/Kettle/Jem/PluginRegistry.html +++ b/gems/kettle-jem/docs/Kettle/Jem/PluginRegistry.html @@ -386,15 +386,15 @@

     
     
    -1354
    -1355
    -1356
    -1357
    -1358
    -1359
    +1371 +1372 +1373 +1374 +1375 +1376

    -
    # File 'lib/kettle/jem.rb', line 1354
    +      
    # File 'lib/kettle/jem.rb', line 1371
     
     def initialize(configured_plugins: [], loaded_plugins: [])
       @hooks = []
    @@ -439,12 +439,12 @@ 

     
     
    -1352
    -1353
    -1354
    +1369 +1370 +1371

    -
    # File 'lib/kettle/jem.rb', line 1352
    +      
    # File 'lib/kettle/jem.rb', line 1369
     
     def configured_plugins
       @configured_plugins
    @@ -481,12 +481,12 @@ 

     
     
    -1352
    -1353
    -1354
    +1369 +1370 +1371

    -
    # File 'lib/kettle/jem.rb', line 1352
    +      
    # File 'lib/kettle/jem.rb', line 1369
     
     def hooks
       @hooks
    @@ -523,12 +523,12 @@ 

     
     
    -1352
    -1353
    -1354
    +1369 +1370 +1371

    -
    # File 'lib/kettle/jem.rb', line 1352
    +      
    # File 'lib/kettle/jem.rb', line 1369
     
     def load_errors
       @load_errors
    @@ -565,12 +565,12 @@ 

     
     
    -1352
    -1353
    -1354
    +1369 +1370 +1371

    -
    # File 'lib/kettle/jem.rb', line 1352
    +      
    # File 'lib/kettle/jem.rb', line 1369
     
     def loaded_plugins
       @loaded_plugins
    @@ -625,12 +625,12 @@ 

     
     
    -1386
    -1387
    -1388
    +1403 +1404 +1405

    -
    # File 'lib/kettle/jem.rb', line 1386
    +      
    # File 'lib/kettle/jem.rb', line 1403
     
     def empty?
       @hooks.empty?
    @@ -678,19 +678,19 @@ 

     
     
    -1361
    -1362
    -1363
    -1364
    -1365
    -1366
    -1367
    -1368
    -1369
    -1370
    +1378 +1379 +1380 +1381 +1382 +1383 +1384 +1385 +1386 +1387

    -
    # File 'lib/kettle/jem.rb', line 1361
    +      
    # File 'lib/kettle/jem.rb', line 1378
     
     def register(plugin_name:, phase:, timing:, &callback)
       raise ArgumentError, "Plugin callbacks require a block" unless callback
    @@ -722,22 +722,22 @@ 

     
     
    -1372
    -1373
    -1374
    -1375
    -1376
    -1377
    -1378
    -1379
    -1380
    -1381
    -1382
    -1383
    -1384
    +1389 +1390 +1391 +1392 +1393 +1394 +1395 +1396 +1397 +1398 +1399 +1400 +1401

    -
    # File 'lib/kettle/jem.rb', line 1372
    +      
    # File 'lib/kettle/jem.rb', line 1389
     
     def run(timing:, phase:, context:, actor:, phase_stats:)
       normalized_phase = normalize_phase(phase)
    @@ -762,7 +762,7 @@ 

    diff --git a/gems/kettle-jem/docs/Kettle/Jem/PluginRegistry/Hook.html b/gems/kettle-jem/docs/Kettle/Jem/PluginRegistry/Hook.html index 59d85d98b..064072d72 100644 --- a/gems/kettle-jem/docs/Kettle/Jem/PluginRegistry/Hook.html +++ b/gems/kettle-jem/docs/Kettle/Jem/PluginRegistry/Hook.html @@ -269,12 +269,12 @@

     
     
    -1349
    -1350
    -1351
    +1366 +1367 +1368

    -
    # File 'lib/kettle/jem.rb', line 1349
    +      
    # File 'lib/kettle/jem.rb', line 1366
     
     def callback
       @callback
    @@ -328,12 +328,12 @@ 

     
     
    -1349
    -1350
    -1351
    +1366 +1367 +1368

    -
    # File 'lib/kettle/jem.rb', line 1349
    +      
    # File 'lib/kettle/jem.rb', line 1366
     
     def phase
       @phase
    @@ -387,12 +387,12 @@ 

     
     
    -1349
    -1350
    -1351
    +1366 +1367 +1368

    -
    # File 'lib/kettle/jem.rb', line 1349
    +      
    # File 'lib/kettle/jem.rb', line 1366
     
     def plugin_name
       @plugin_name
    @@ -446,12 +446,12 @@ 

     
     
    -1349
    -1350
    -1351
    +1366 +1367 +1368

    -
    # File 'lib/kettle/jem.rb', line 1349
    +      
    # File 'lib/kettle/jem.rb', line 1366
     
     def timing
       @timing
    @@ -467,7 +467,7 @@ 

    diff --git a/gems/kettle-jem/docs/Kettle/Jem/ReadmePostProcessor.html b/gems/kettle-jem/docs/Kettle/Jem/ReadmePostProcessor.html index e773940b5..3147d5c5f 100644 --- a/gems/kettle-jem/docs/Kettle/Jem/ReadmePostProcessor.html +++ b/gems/kettle-jem/docs/Kettle/Jem/ReadmePostProcessor.html @@ -807,22 +807,22 @@

    -739 -740 -741 -742 -743 -744 -745 -746 -747 -748 -749 -750 -751

    +756 +757 +758 +759 +760 +761 +762 +763 +764 +765 +766 +767 +768
    -
    # File 'lib/kettle/jem.rb', line 739
    +      
    # File 'lib/kettle/jem.rb', line 756
     
     def add_supported_versioned_engine_badges(content, min_ruby, workflow_paths)
       existing_workflows = Array(workflow_paths).map { |path| path.to_s.delete_prefix("./") }.to_set
    @@ -857,21 +857,21 @@ 

     
     
    -775
    -776
    -777
    -778
    -779
    -780
    -781
    -782
    -783
    -784
    -785
    -786
    +792 +793 +794 +795 +796 +797 +798 +799 +800 +801 +802 +803

    -
    # File 'lib/kettle/jem.rb', line 775
    +      
    # File 'lib/kettle/jem.rb', line 792
     
     def add_versioned_engine_badge_definitions(content, badge)
       processed = ensure_markdown_link_definition(content, badge.fetch(:badge_definition))
    @@ -905,25 +905,25 @@ 

     
     
    -758
    -759
    -760
    -761
    -762
    -763
    -764
    -765
    -766
    -767
    -768
    -769
    -770
    -771
    -772
    -773
    +775 +776 +777 +778 +779 +780 +781 +782 +783 +784 +785 +786 +787 +788 +789 +790

    -
    # File 'lib/kettle/jem.rb', line 758
    +      
    # File 'lib/kettle/jem.rb', line 775
     
     def add_versioned_engine_badge_to_row(content, badge)
       lines = content.lines
    @@ -961,18 +961,18 @@ 

     
     
    -814
    -815
    -816
    -817
    -818
    -819
    -820
    -821
    -822
    +831 +832 +833 +834 +835 +836 +837 +838 +839

    -
    # File 'lib/kettle/jem.rb', line 814
    +      
    # File 'lib/kettle/jem.rb', line 831
     
     def compatibility_badge_min_mri(label)
       if (match = label.match(/\A💎ruby-(?<version>\d+\.\d+)i\z/))
    @@ -1026,13 +1026,13 @@ 

     
     
    -907
    -908
    -909
    -910
    +924 +925 +926 +927

    -
    # File 'lib/kettle/jem.rb', line 907
    +      
    # File 'lib/kettle/jem.rb', line 924
     
     def compatibility_row?(line)
       text = line.to_s.lstrip
    @@ -1058,19 +1058,19 @@ 
    -
    # File 'lib/kettle/jem.rb', line 912
    +      
    # File 'lib/kettle/jem.rb', line 929
     
     def delete_markdown_link_definitions(content, labels)
       Kettle::Jem.ensure_runtime_dependencies!
    @@ -1102,16 +1102,16 @@ 
    -
    # File 'lib/kettle/jem.rb', line 788
    +      
    # File 'lib/kettle/jem.rb', line 805
     
     def ensure_markdown_link_definition(content, definition)
       label = definition[/\A(\[[^\]]+\]):/, 1]
    @@ -1140,16 +1140,16 @@ 

     
     
    -891
    -892
    -893
    -894
    -895
    -896
    -897
    +908 +909 +910 +911 +912 +913 +914

    -
    # File 'lib/kettle/jem.rb', line 891
    +      
    # File 'lib/kettle/jem.rb', line 908
     
     def markdown_inline_reference_owners(content)
       Kettle::Jem.ensure_runtime_dependencies!
    @@ -1178,16 +1178,16 @@ 
    -
    # File 'lib/kettle/jem.rb', line 883
    +      
    # File 'lib/kettle/jem.rb', line 900
     
     def markdown_link_definition_owners(content)
       Kettle::Jem.ensure_runtime_dependencies!
    @@ -1216,16 +1216,16 @@ 

     
     
    -899
    -900
    -901
    -902
    -903
    -904
    -905
    +916 +917 +918 +919 +920 +921 +922

    -
    # File 'lib/kettle/jem.rb', line 899
    +      
    # File 'lib/kettle/jem.rb', line 916
     
     def markdown_table_row_owners(content)
       Kettle::Jem.ensure_runtime_dependencies!
    @@ -1254,18 +1254,18 @@ 

     
     
    -852
    -853
    -854
    -855
    -856
    -857
    -858
    -859
    -860
    +869 +870 +871 +872 +873 +874 +875 +876 +877

    -
    # File 'lib/kettle/jem.rb', line 852
    +      
    # File 'lib/kettle/jem.rb', line 869
     
     def normalize_compatibility_badge_cell(cell)
       cell.to_s
    @@ -1296,27 +1296,27 @@ 

     
     
    -833
    -834
    -835
    -836
    -837
    -838
    -839
    -840
    -841
    -842
    -843
    -844
    -845
    -846
    -847
    -848
    -849
    -850
    +850 +851 +852 +853 +854 +855 +856 +857 +858 +859 +860 +861 +862 +863 +864 +865 +866 +867

    -
    # File 'lib/kettle/jem.rb', line 833
    +      
    # File 'lib/kettle/jem.rb', line 850
     
     def normalize_compatibility_rows(content)
       lines = content.lines
    @@ -1356,22 +1356,22 @@ 

     
     
    -672
    -673
    -674
    -675
    -676
    -677
    -678
    -679
    -680
    -681
    -682
    -683
    -684
    +689 +690 +691 +692 +693 +694 +695 +696 +697 +698 +699 +700 +701

    -
    # File 'lib/kettle/jem.rb', line 672
    +      
    # File 'lib/kettle/jem.rb', line 689
     
     def process(content:, min_ruby:, engines: nil, workflow_paths: nil)
       Kettle::Jem.ensure_runtime_dependencies!
    @@ -1406,19 +1406,19 @@ 

    -872 -873 -874 -875 -876 -877 -878 -879 -880 -881

    +889 +890 +891 +892 +893 +894 +895 +896 +897 +898
    -
    # File 'lib/kettle/jem.rb', line 872
    +      
    # File 'lib/kettle/jem.rb', line 889
     
     def prune_orphaned_workflow_inline_references(content)
       defined_labels = markdown_link_definition_owners(content).map { |owner| owner.label.to_s }.to_set
    @@ -1450,18 +1450,18 @@ 

    -862 -863 -864 -865 -866 -867 -868 -869 -870

    +879 +880 +881 +882 +883 +884 +885 +886 +887
    -
    # File 'lib/kettle/jem.rb', line 862
    +      
    # File 'lib/kettle/jem.rb', line 879
     
     def prune_unused_compatibility_reference_definitions(content)
       referenced_labels = markdown_inline_reference_owners(content).flat_map(&:labels).to_h { |label| [label, true] }
    @@ -1492,12 +1492,12 @@ 

     
     
    -829
    -830
    -831
    +846 +847 +848

    -
    # File 'lib/kettle/jem.rb', line 829
    +      
    # File 'lib/kettle/jem.rb', line 846
     
     def remove_badge_occurrences(content, label)
       remove_markdown_inline_references(content, label)
    @@ -1522,23 +1522,6 @@ 

     
     
    -686
    -687
    -688
    -689
    -690
    -691
    -692
    -693
    -694
    -695
    -696
    -697
    -698
    -699
    -700
    -701
    -702
     703
     704
     705
    @@ -1546,10 +1529,27 @@ 

    707 708 709 -710

    +710 +711 +712 +713 +714 +715 +716 +717 +718 +719 +720 +721 +722 +723 +724 +725 +726 +727

    -
    # File 'lib/kettle/jem.rb', line 686
    +      
    # File 'lib/kettle/jem.rb', line 703
     
     def remove_disabled_engine_content(content, engines)
       enabled = Array(engines).map { |engine| engine.to_s.strip.downcase }
    @@ -1596,19 +1596,19 @@ 

    -803 -804 -805 -806 -807 -808 -809 -810 -811 -812

    +820 +821 +822 +823 +824 +825 +826 +827 +828 +829
    -
    # File 'lib/kettle/jem.rb', line 803
    +      
    # File 'lib/kettle/jem.rb', line 820
     
     def remove_incompatible_compatibility_badges(content, min_ruby)
       markdown_inline_reference_owners(content).flat_map(&:labels).uniq.each do |label|
    @@ -1640,30 +1640,30 @@ 

     
     
    -923
    -924
    -925
    -926
    -927
    -928
    -929
    -930
    -931
    -932
    -933
    -934
    -935
    -936
    -937
    -938
    -939
     940
     941
     942
    -943
    +943 +944 +945 +946 +947 +948 +949 +950 +951 +952 +953 +954 +955 +956 +957 +958 +959 +960

    -
    # File 'lib/kettle/jem.rb', line 923
    +      
    # File 'lib/kettle/jem.rb', line 940
     
     def remove_markdown_inline_references(content, label)
       lines = content.to_s.lines
    @@ -1706,16 +1706,16 @@ 

     
     
    -945
    -946
    -947
    -948
    -949
    -950
    -951
    +962 +963 +964 +965 +966 +967 +968

    -
    # File 'lib/kettle/jem.rb', line 945
    +      
    # File 'lib/kettle/jem.rb', line 962
     
     def remove_markdown_table_rows(content)
       lines = content.to_s.lines
    @@ -1744,19 +1744,19 @@ 

     
     
    -712
    -713
    -714
    -715
    -716
    -717
    -718
    -719
    -720
    -721
    +729 +730 +731 +732 +733 +734 +735 +736 +737 +738

    -
    # File 'lib/kettle/jem.rb', line 712
    +      
    # File 'lib/kettle/jem.rb', line 729
     
     def remove_missing_workflow_badges(content, workflow_paths)
       existing = Array(workflow_paths).map { |path| path.to_s.delete_prefix("./") }.to_set
    @@ -1788,12 +1788,12 @@ 

     
     
    -735
    -736
    -737
    +752 +753 +754

    -
    # File 'lib/kettle/jem.rb', line 735
    +      
    # File 'lib/kettle/jem.rb', line 752
     
     def remove_workflow_badge_occurrences(content, workflow_label)
       remove_markdown_inline_references(content, workflow_label)
    @@ -1818,13 +1818,13 @@ 

     
     
    -824
    -825
    -826
    -827
    +841 +842 +843 +844

    -
    # File 'lib/kettle/jem.rb', line 824
    +      
    # File 'lib/kettle/jem.rb', line 841
     
     def ruby_minor_version(version)
       segments = version.segments
    @@ -1873,13 +1873,13 @@ 

     
     
    -753
    -754
    -755
    -756
    +770 +771 +772 +773

    -
    # File 'lib/kettle/jem.rb', line 753
    +      
    # File 'lib/kettle/jem.rb', line 770
     
     def versioned_engine_badge_compatible?(badge, min_ruby)
       badge_min_mri = ENGINE_COMPATIBILITY_MRI_VERSION.dig(badge.fetch(:engine), badge.fetch(:version))
    @@ -1905,15 +1905,15 @@ 

     
     
    -796
    -797
    -798
    -799
    -800
    -801
    +813 +814 +815 +816 +817 +818

    -
    # File 'lib/kettle/jem.rb', line 796
    +      
    # File 'lib/kettle/jem.rb', line 813
     
     def workflow_definition_base_url(content)
       markdown_link_definition_owners(content).filter_map do |owner|
    @@ -1941,20 +1941,20 @@ 

     
     
    -723
    -724
    -725
    -726
    -727
    -728
    -729
    -730
    -731
    -732
    -733
    +740 +741 +742 +743 +744 +745 +746 +747 +748 +749 +750

    -
    # File 'lib/kettle/jem.rb', line 723
    +      
    # File 'lib/kettle/jem.rb', line 740
     
     def workflow_references(content)
       markdown_link_definition_owners(content).each_with_object({}) do |owner, references|
    @@ -1977,7 +1977,7 @@ 

    diff --git a/gems/kettle-jem/docs/Kettle/Jem/RubyGemsResolver.html b/gems/kettle-jem/docs/Kettle/Jem/RubyGemsResolver.html index a536e6e39..ec6b612f3 100644 --- a/gems/kettle-jem/docs/Kettle/Jem/RubyGemsResolver.html +++ b/gems/kettle-jem/docs/Kettle/Jem/RubyGemsResolver.html @@ -389,15 +389,15 @@

     
     
    -960
    -961
    -962
    -963
    -964
    -965
    +977 +978 +979 +980 +981 +982

    -
    # File 'lib/kettle/jem.rb', line 960
    +      
    # File 'lib/kettle/jem.rb', line 977
     
     def initialize(cache: {}, http_get: nil, v1_api_base: RUBYGEMS_V1_API_BASE, v2_api_base: RUBYGEMS_V2_API_BASE)
       @cache = cache
    @@ -442,12 +442,12 @@ 

     
     
    -958
    -959
    -960
    +975 +976 +977

    -
    # File 'lib/kettle/jem.rb', line 958
    +      
    # File 'lib/kettle/jem.rb', line 975
     
     def cache
       @cache
    @@ -479,19 +479,19 @@ 

     
     
    -1036
    -1037
    -1038
    -1039
    -1040
    -1041
    -1042
    -1043
    -1044
    -1045
    +1053 +1054 +1055 +1056 +1057 +1058 +1059 +1060 +1061 +1062

    -
    # File 'lib/kettle/jem.rb', line 1036
    +      
    # File 'lib/kettle/jem.rb', line 1053
     
     def fetch_gem_info(gem_name, version)
       cache_key = "info:#{gem_name}:#{version}"
    @@ -546,19 +546,19 @@ 

     
     
    -1025
    -1026
    -1027
    -1028
    -1029
    -1030
    -1031
    -1032
    -1033
    -1034
    +1042 +1043 +1044 +1045 +1046 +1047 +1048 +1049 +1050 +1051

    -
    # File 'lib/kettle/jem.rb', line 1025
    +      
    # File 'lib/kettle/jem.rb', line 1042
     
     def fetch_versions(gem_name)
       cache_key = "versions:#{gem_name}"
    @@ -590,13 +590,13 @@ 

     
     
    -1002
    -1003
    -1004
    -1005
    +1019 +1020 +1021 +1022

    -
    # File 'lib/kettle/jem.rb', line 1002
    +      
    # File 'lib/kettle/jem.rb', line 1019
     
     def min_ruby_version(gem_name, version)
       entry = fetch_versions(gem_name).find { |candidate| candidate["number"].to_s == version.to_s }
    @@ -622,26 +622,26 @@ 

     
     
    -1007
    -1008
    -1009
    -1010
    -1011
    -1012
    -1013
    -1014
    -1015
    -1016
    -1017
    -1018
    -1019
    -1020
    -1021
    -1022
    -1023
    +1024 +1025 +1026 +1027 +1028 +1029 +1030 +1031 +1032 +1033 +1034 +1035 +1036 +1037 +1038 +1039 +1040

    -
    # File 'lib/kettle/jem.rb', line 1007
    +      
    # File 'lib/kettle/jem.rb', line 1024
     
     def minor_versions_by_major(gem_name, requirements: nil)
       versions(gem_name, requirements: requirements).each_with_object({}) do |entry, grouped|
    @@ -680,23 +680,23 @@ 

     
     
    -1047
    -1048
    -1049
    -1050
    -1051
    -1052
    -1053
    -1054
    -1055
    -1056
    -1057
    -1058
    -1059
    -1060
    +1064 +1065 +1066 +1067 +1068 +1069 +1070 +1071 +1072 +1073 +1074 +1075 +1076 +1077

    -
    # File 'lib/kettle/jem.rb', line 1047
    +      
    # File 'lib/kettle/jem.rb', line 1064
     
     def parse_min_ruby(requirement)
       return if requirement.to_s.strip.empty?
    @@ -732,26 +732,26 @@ 

     
     
    -984
    -985
    -986
    -987
    -988
    -989
    -990
    -991
    -992
    -993
    -994
    -995
    -996
    -997
    -998
    -999
    -1000
    +1001 +1002 +1003 +1004 +1005 +1006 +1007 +1008 +1009 +1010 +1011 +1012 +1013 +1014 +1015 +1016 +1017

    -
    # File 'lib/kettle/jem.rb', line 984
    +      
    # File 'lib/kettle/jem.rb', line 1001
     
     def version_info(gem_name, version)
       data = fetch_gem_info(gem_name, version)
    @@ -790,25 +790,25 @@ 

     
     
    -967
    -968
    -969
    -970
    -971
    -972
    -973
    -974
    -975
    -976
    -977
    -978
    -979
    -980
    -981
    -982
    +984 +985 +986 +987 +988 +989 +990 +991 +992 +993 +994 +995 +996 +997 +998 +999

    -
    # File 'lib/kettle/jem.rb', line 967
    +      
    # File 'lib/kettle/jem.rb', line 984
     
     def versions(gem_name, include_prerelease: false, requirements: nil)
       requirement = normalize_requirements(requirements)
    @@ -836,7 +836,7 @@ 

    diff --git a/gems/kettle-jem/docs/Kettle/Jem/SelfTest.html b/gems/kettle-jem/docs/Kettle/Jem/SelfTest.html index 313178e2a..42f227bd7 100644 --- a/gems/kettle-jem/docs/Kettle/Jem/SelfTest.html +++ b/gems/kettle-jem/docs/Kettle/Jem/SelfTest.html @@ -108,7 +108,7 @@

    Defined Under Namespace

    diff --git a/gems/kettle-jem/docs/Kettle/Jem/SelfTest/Manifest.html b/gems/kettle-jem/docs/Kettle/Jem/SelfTest/Manifest.html index 25f942da2..31b2f25e2 100644 --- a/gems/kettle-jem/docs/Kettle/Jem/SelfTest/Manifest.html +++ b/gems/kettle-jem/docs/Kettle/Jem/SelfTest/Manifest.html @@ -172,27 +172,27 @@

     
     
    -1940
    -1941
    -1942
    -1943
    -1944
    -1945
    -1946
    -1947
    -1948
    -1949
    -1950
    -1951
    -1952
    -1953
    -1954
    -1955
    -1956
    -1957
    +1957 +1958 +1959 +1960 +1961 +1962 +1963 +1964 +1965 +1966 +1967 +1968 +1969 +1970 +1971 +1972 +1973 +1974

    -
    # File 'lib/kettle/jem.rb', line 1940
    +      
    # File 'lib/kettle/jem.rb', line 1957
     
     def compare(before, after)
       all_keys = (before.keys | after.keys).sort
    @@ -232,25 +232,25 @@ 

     
     
    -1923
    -1924
    -1925
    -1926
    -1927
    -1928
    -1929
    -1930
    -1931
    -1932
    -1933
    -1934
    -1935
    -1936
    -1937
    -1938
    +1940 +1941 +1942 +1943 +1944 +1945 +1946 +1947 +1948 +1949 +1950 +1951 +1952 +1953 +1954 +1955

    -
    # File 'lib/kettle/jem.rb', line 1923
    +      
    # File 'lib/kettle/jem.rb', line 1940
     
     def generate(dir)
       result = {}
    @@ -278,7 +278,7 @@ 

    diff --git a/gems/kettle-jem/docs/Kettle/Jem/SelfTest/Reporter.html b/gems/kettle-jem/docs/Kettle/Jem/SelfTest/Reporter.html index 00345cfd9..29857e77d 100644 --- a/gems/kettle-jem/docs/Kettle/Jem/SelfTest/Reporter.html +++ b/gems/kettle-jem/docs/Kettle/Jem/SelfTest/Reporter.html @@ -218,25 +218,25 @@

     
     
    -2024
    -2025
    -2026
    -2027
    -2028
    -2029
    -2030
    -2031
    -2032
    -2033
    -2034
    -2035
    -2036
    -2037
    -2038
    -2039
    +2041 +2042 +2043 +2044 +2045 +2046 +2047 +2048 +2049 +2050 +2051 +2052 +2053 +2054 +2055 +2056

    -
    # File 'lib/kettle/jem.rb', line 2024
    +      
    # File 'lib/kettle/jem.rb', line 2041
     
     def append_self_test_table(lines, title, paths, status = nil)
       return if paths.empty?
    @@ -274,24 +274,24 @@ 

     
     
    -2041
    -2042
    -2043
    -2044
    -2045
    -2046
    -2047
    -2048
    -2049
    -2050
    -2051
    -2052
    -2053
    -2054
    -2055
    +2058 +2059 +2060 +2061 +2062 +2063 +2064 +2065 +2066 +2067 +2068 +2069 +2070 +2071 +2072

    -
    # File 'lib/kettle/jem.rb', line 2041
    +      
    # File 'lib/kettle/jem.rb', line 2058
     
     def append_skipped_files(lines, skipped)
       return if skipped.empty?
    @@ -328,21 +328,21 @@ 

     
     
    -1963
    -1964
    -1965
    -1966
    -1967
    -1968
    -1969
    -1970
    -1971
    -1972
    -1973
    -1974
    +1980 +1981 +1982 +1983 +1984 +1985 +1986 +1987 +1988 +1989 +1990 +1991

    -
    # File 'lib/kettle/jem.rb', line 1963
    +      
    # File 'lib/kettle/jem.rb', line 1980
     
     def diff(file_a, file_b)
       a = File.exist?(file_a.to_s) ? file_a.to_s : File::NULL
    @@ -376,23 +376,6 @@ 

     
     
    -1976
    -1977
    -1978
    -1979
    -1980
    -1981
    -1982
    -1983
    -1984
    -1985
    -1986
    -1987
    -1988
    -1989
    -1990
    -1991
    -1992
     1993
     1994
     1995
    @@ -422,10 +405,27 @@ 

    2019 2020 2021 -2022

    +2022 +2023 +2024 +2025 +2026 +2027 +2028 +2029 +2030 +2031 +2032 +2033 +2034 +2035 +2036 +2037 +2038 +2039

    -
    # File 'lib/kettle/jem.rb', line 1976
    +      
    # File 'lib/kettle/jem.rb', line 1993
     
     def summary(comparison, output_dir:, templating_environment: nil, diff_count: nil, now: Time.now)
       matched = comparison.fetch(:matched, [])
    @@ -484,7 +484,7 @@ 

    diff --git a/gems/kettle-jem/docs/Kettle/Jem/Tasks.html b/gems/kettle-jem/docs/Kettle/Jem/Tasks.html index 03985750c..4968e455e 100644 --- a/gems/kettle-jem/docs/Kettle/Jem/Tasks.html +++ b/gems/kettle-jem/docs/Kettle/Jem/Tasks.html @@ -110,7 +110,7 @@

    Defined Under Namespace

    diff --git a/gems/kettle-jem/docs/Kettle/Jem/Tasks/InstallTask.html b/gems/kettle-jem/docs/Kettle/Jem/Tasks/InstallTask.html index 530331a4e..da9b6115b 100644 --- a/gems/kettle-jem/docs/Kettle/Jem/Tasks/InstallTask.html +++ b/gems/kettle-jem/docs/Kettle/Jem/Tasks/InstallTask.html @@ -816,7 +816,7 @@

  • - .execute_orchestration_steps(install_steps, project_root:, env:, run_options:, command_runner:) ⇒ Object + .execute_orchestration_steps(install_steps, project_root:, env:, run_options:, command_runner:, event_phase: "install") ⇒ Object @@ -2072,6 +2072,29 @@

    +
    +
    + +

  • + + +
  • + + + .rake_task_available?(project_root, task_name) ⇒ Boolean + + + + + + + + + + + + +
    @@ -2839,20 +2862,6 @@

    -769 -770 -771 -772 -773 -774 -775 -776 -777 -778 -779 -780 -781 -782 783 784 785 @@ -2860,10 +2869,24 @@

    +790 +791 +792 +793 +794 +795 +796 +797 +798 +799 +800 +801 +802 +803 +804

  • -
    # File 'lib/kettle/jem/tasks/install_task.rb', line 769
    +      
    # File 'lib/kettle/jem/tasks/install_task.rb', line 783
     
     def apply_direct_sibling_lockfile_env!(project_root, command_env)
       gemspec_path = Dir.glob(File.join(project_root.to_s, "*.gemspec")).min
    @@ -2907,23 +2930,23 @@ 

     
     
    -1008
    -1009
    -1010
    -1011
    -1012
    -1013
    -1014
    -1015
    -1016
    -1017
    -1018
    -1019
    -1020
    -1021
    +1032 +1033 +1034 +1035 +1036 +1037 +1038 +1039 +1040 +1041 +1042 +1043 +1044 +1045

    -
    # File 'lib/kettle/jem/tasks/install_task.rb', line 1008
    +      
    # File 'lib/kettle/jem/tasks/install_task.rb', line 1032
     
     def apply_kettle_family_local_install_env!(command_env)
       return unless command_env.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero?
    @@ -2932,12 +2955,12 @@ 

    return unless Array(marker["installed_members"]).include?("kettle-jem") members_root = marker["members_root"].to_s - if local_env_disabled?(command_env["STRUCTUREDMERGE_DEV"]) && Dir.exist?(File.join(members_root, "kettle-jem")) + if !command_env.key?("STRUCTUREDMERGE_DEV") && Dir.exist?(File.join(members_root, "kettle-jem")) command_env["STRUCTUREDMERGE_DEV"] = members_root end kettle_root = kettle_family_dependency_root(marker) - command_env["KETTLE_DEV_DEV"] = kettle_root if kettle_root && local_env_disabled?(command_env["KETTLE_DEV_DEV"]) + command_env["KETTLE_DEV_DEV"] = kettle_root if kettle_root && !command_env.key?("KETTLE_DEV_DEV") end

    @@ -2959,14 +2982,14 @@

     
     
    -1562
    -1563
    -1564
    -1565
    -1566
    +1586 +1587 +1588 +1589 +1590

    -
    # File 'lib/kettle/jem/tasks/install_task.rb', line 1562
    +      
    # File 'lib/kettle/jem/tasks/install_task.rb', line 1586
     
     def bin_setup_command(project_root, quiet:)
       command = [File.join("bin", "setup")]
    @@ -2993,22 +3016,22 @@ 

     
     
    -912
    -913
    -914
    -915
    -916
    -917
    -918
    -919
    -920
    -921
    -922
    -923
    -924
    +926 +927 +928 +929 +930 +931 +932 +933 +934 +935 +936 +937 +938

    -
    # File 'lib/kettle/jem/tasks/install_task.rb', line 912
    +      
    # File 'lib/kettle/jem/tasks/install_task.rb', line 926
     
     def binstub_files(bin_dir)
       return [] unless File.directory?(bin_dir)
    @@ -3043,30 +3066,6 @@ 

     
     
    -1474
    -1475
    -1476
    -1477
    -1478
    -1479
    -1480
    -1481
    -1482
    -1483
    -1484
    -1485
    -1486
    -1487
    -1488
    -1489
    -1490
    -1491
    -1492
    -1493
    -1494
    -1495
    -1496
    -1497
     1498
     1499
     1500
    @@ -3079,10 +3078,34 @@ 

    1507 1508 1509 -1510

    +1510 +1511 +1512 +1513 +1514 +1515 +1516 +1517 +1518 +1519 +1520 +1521 +1522 +1523 +1524 +1525 +1526 +1527 +1528 +1529 +1530 +1531 +1532 +1533 +1534

    -
    # File 'lib/kettle/jem/tasks/install_task.rb', line 1474
    +      
    # File 'lib/kettle/jem/tasks/install_task.rb', line 1498
     
     def bootstrap_commit_step(project_root, run_options:)
       if Kettle::Jem::DecisionPolicy.value_to_boolean((run_options || {})[:skip_commit])
    @@ -3230,19 +3253,19 @@ 

     
     
    -1542
    -1543
    -1544
    -1545
    -1546
    -1547
    -1548
    -1549
    -1550
    -1551
    +1566 +1567 +1568 +1569 +1570 +1571 +1572 +1573 +1574 +1575

    -
    # File 'lib/kettle/jem/tasks/install_task.rb', line 1542
    +      
    # File 'lib/kettle/jem/tasks/install_task.rb', line 1566
     
     def bundled_handoff_command(run_options)
       [
    @@ -3274,30 +3297,6 @@ 

     
     
    -1439
    -1440
    -1441
    -1442
    -1443
    -1444
    -1445
    -1446
    -1447
    -1448
    -1449
    -1450
    -1451
    -1452
    -1453
    -1454
    -1455
    -1456
    -1457
    -1458
    -1459
    -1460
    -1461
    -1462
     1463
     1464
     1465
    @@ -3307,10 +3306,34 @@ 

    1469 1470 1471 -1472

    +1472 +1473 +1474 +1475 +1476 +1477 +1478 +1479 +1480 +1481 +1482 +1483 +1484 +1485 +1486 +1487 +1488 +1489 +1490 +1491 +1492 +1493 +1494 +1495 +1496

    -
    # File 'lib/kettle/jem/tasks/install_task.rb', line 1439
    +      
    # File 'lib/kettle/jem/tasks/install_task.rb', line 1463
     
     def bundled_handoff_step(project_root:, env:, run_options:)
       if Kettle::Jem::DecisionPolicy.value_to_boolean((run_options || {})[:bootstrap_mode])
    @@ -3366,24 +3389,24 @@ 

     
     
    -940
    -941
    -942
    -943
    -944
    -945
    -946
    -947
    -948
    -949
    -950
    -951
    -952
    -953
    -954
    +954 +955 +956 +957 +958 +959 +960 +961 +962 +963 +964 +965 +966 +967 +968

    -
    # File 'lib/kettle/jem/tasks/install_task.rb', line 940
    +      
    # File 'lib/kettle/jem/tasks/install_task.rb', line 954
     
     def bundler_binstub_gem_name(path)
       content = File.read(path)
    @@ -3443,14 +3466,14 @@ 

     
     
    -934
    -935
    -936
    -937
    -938
    +948 +949 +950 +951 +952

    -
    # File 'lib/kettle/jem/tasks/install_task.rb', line 934
    +      
    # File 'lib/kettle/jem/tasks/install_task.rb', line 948
     
     def bundler_generated_binstub?(path)
       File.read(path, 512).include?("This file was generated by Bundler")
    @@ -3556,8 +3579,6 @@ 

     
     
    -78
    -79
     80
     81
     82
    @@ -3565,13 +3586,11 @@ 

    84

    -
    # File 'lib/kettle/jem/tasks/install_task.rb', line 78
    +      
    # File 'lib/kettle/jem/tasks/install_task.rb', line 80
     
     def config_bootstrap_changed?(report)
       report.fetch(:recipe_reports, []).any? do |recipe_report|
    -    recipe_report.fetch(:relative_path, nil) == Kettle::Jem::KETTLE_CONFIG_PATH &&
    -      recipe_report.fetch(:recipe_name, nil) == "kettle_config_bootstrap" &&
    -      recipe_report.fetch(:changed, false)
    +    recipe_report.fetch(:relative_path, nil) == Kettle::Jem::KETTLE_CONFIG_PATH && recipe_report.fetch(:changed, false)
       end
     end
    @@ -3644,25 +3663,25 @@

     
     
    -1410
    -1411
    -1412
    -1413
    -1414
    -1415
    -1416
    -1417
    -1418
    -1419
    -1420
    -1421
    -1422
    -1423
    -1424
    -1425
    +1434 +1435 +1436 +1437 +1438 +1439 +1440 +1441 +1442 +1443 +1444 +1445 +1446 +1447 +1448 +1449

    -
    # File 'lib/kettle/jem/tasks/install_task.rb', line 1410
    +      
    # File 'lib/kettle/jem/tasks/install_task.rb', line 1434
     
     def conflicting_git_attribute_diagnostics(content, updates, managed_block:)
       lines = remove_git_attribute_managed_block(content, managed_block: managed_block).fetch(:lines)
    @@ -3723,16 +3742,16 @@ 

     
     
    -926
    -927
    -928
    -929
    -930
    -931
    -932
    +940 +941 +942 +943 +944 +945 +946

    -
    # File 'lib/kettle/jem/tasks/install_task.rb', line 926
    +      
    # File 'lib/kettle/jem/tasks/install_task.rb', line 940
     
     def curated_binstub?(path)
       basename = File.basename(path)
    @@ -3799,15 +3818,15 @@ 

     
     
    -742
    -743
    -744
    -745
    -746
    -747
    +756 +757 +758 +759 +760 +761

    -
    # File 'lib/kettle/jem/tasks/install_task.rb', line 742
    +      
    # File 'lib/kettle/jem/tasks/install_task.rb', line 756
     
     def current_git_branch(path)
       stdout, _stderr, status = Open3.capture3("git", "-C", path.to_s, "branch", "--show-current")
    @@ -3894,18 +3913,18 @@ 

     
     
    -1288
    -1289
    -1290
    -1291
    -1292
    -1293
    -1294
    -1295
    -1296
    +1312 +1313 +1314 +1315 +1316 +1317 +1318 +1319 +1320

    -
    # File 'lib/kettle/jem/tasks/install_task.rb', line 1288
    +      
    # File 'lib/kettle/jem/tasks/install_task.rb', line 1312
     
     def default_git_driver_global_commands
       DEFAULT_GIT_DRIVER_DEFINITIONS.flat_map do |definition|
    @@ -3995,15 +4014,15 @@ 

     
     
    -1403
    -1404
    -1405
    -1406
    -1407
    -1408
    +1427 +1428 +1429 +1430 +1431 +1432

    -
    # File 'lib/kettle/jem/tasks/install_task.rb', line 1403
    +      
    # File 'lib/kettle/jem/tasks/install_task.rb', line 1427
     
     def dirty_git_attribute_managed_block?(content, managed_block)
       start_line = git_attribute_block_start(managed_block)
    @@ -4081,27 +4100,27 @@ 

     
     
    -874
    -875
    -876
    -877
    -878
    -879
    -880
    -881
    -882
    -883
    -884
    -885
    -886
    -887
     888
     889
     890
    -891
    +891 +892 +893 +894 +895 +896 +897 +898 +899 +900 +901 +902 +903 +904 +905

    -
    # File 'lib/kettle/jem/tasks/install_task.rb', line 874
    +      
    # File 'lib/kettle/jem/tasks/install_task.rb', line 888
     
     def ensure_curated_binstubs_executable(project_root)
       bin_dir = File.join(project_root.to_s, "bin")
    @@ -4242,29 +4261,29 @@ 

     
     
    -1707
    -1708
    -1709
    -1710
    -1711
    -1712
    -1713
    -1714
    -1715
    -1716
    -1717
    -1718
    -1719
    -1720
    -1721
    -1722
    -1723
    -1724
    -1725
    -1726
    +1731 +1732 +1733 +1734 +1735 +1736 +1737 +1738 +1739 +1740 +1741 +1742 +1743 +1744 +1745 +1746 +1747 +1748 +1749 +1750

    -
    # File 'lib/kettle/jem/tasks/install_task.rb', line 1707
    +      
    # File 'lib/kettle/jem/tasks/install_task.rb', line 1731
     
     def execute_git_drivers_check_step(step, project_root:, env:, quiet:, command_runner:)
       missing = []
    @@ -4306,30 +4325,6 @@ 

     
     
    -1658
    -1659
    -1660
    -1661
    -1662
    -1663
    -1664
    -1665
    -1666
    -1667
    -1668
    -1669
    -1670
    -1671
    -1672
    -1673
    -1674
    -1675
    -1676
    -1677
    -1678
    -1679
    -1680
    -1681
     1682
     1683
     1684
    @@ -4353,10 +4348,34 @@ 

    1702 1703 1704 -1705

    +1705 +1706 +1707 +1708 +1709 +1710 +1711 +1712 +1713 +1714 +1715 +1716 +1717 +1718 +1719 +1720 +1721 +1722 +1723 +1724 +1725 +1726 +1727 +1728 +1729

    -
    # File 'lib/kettle/jem/tasks/install_task.rb', line 1658
    +      
    # File 'lib/kettle/jem/tasks/install_task.rb', line 1682
     
     def execute_git_drivers_step(step, project_root:, env:, quiet:, command_runner:)
       return step unless step.fetch(:status) == "ready"
    @@ -4426,26 +4445,26 @@ 

     
     
    -1640
    -1641
    -1642
    -1643
    -1644
    -1645
    -1646
    -1647
    -1648
    -1649
    -1650
    -1651
    -1652
    -1653
    -1654
    -1655
    -1656
    +1664 +1665 +1666 +1667 +1668 +1669 +1670 +1671 +1672 +1673 +1674 +1675 +1676 +1677 +1678 +1679 +1680

    -
    # File 'lib/kettle/jem/tasks/install_task.rb', line 1640
    +      
    # File 'lib/kettle/jem/tasks/install_task.rb', line 1664
     
     def execute_hook_templates_step(step, project_root:, env:, quiet:, command_runner:)
       return step unless step.fetch(:status) == "ready"
    @@ -4472,7 +4491,7 @@ 

    - .execute_orchestration_steps(install_steps, project_root:, env:, run_options:, command_runner:) ⇒ Object + .execute_orchestration_steps(install_steps, project_root:, env:, run_options:, command_runner:, event_phase: "install") ⇒ Object @@ -4484,20 +4503,6 @@

     
     
    -970
    -971
    -972
    -973
    -974
    -975
    -976
    -977
    -978
    -979
    -980
    -981
    -982
    -983
     984
     985
     986
    @@ -4508,15 +4513,45 @@ 

    991 992 993 -994

    +994 +995 +996 +997 +998 +999 +1000 +1001 +1002 +1003 +1004 +1005 +1006 +1007 +1008 +1009 +1010 +1011 +1012 +1013 +1014 +1015 +1016 +1017

    -
    # File 'lib/kettle/jem/tasks/install_task.rb', line 970
    +      
    # File 'lib/kettle/jem/tasks/install_task.rb', line 984
     
    -def execute_orchestration_steps(install_steps, project_root:, env:, run_options:, command_runner:)
    +def execute_orchestration_steps(install_steps, project_root:, env:, run_options:, command_runner:, event_phase: "install")
       quiet = Kettle::Jem::DecisionPolicy.value_to_boolean(run_options[:quiet])
    +  events = Kettle::Jem.event_stream_from_options(run_options)
       install_steps.map do |step|
    -    case step.fetch(:name)
    +    Kettle::Jem.emit_step_event(
    +      events,
    +      "command_step",
    +      step.merge(status: "started"),
    +      phase: event_phase
    +    )
    +    result = case step.fetch(:name)
         when "mise_trust"
           execute_ready_command_step(step, project_root: project_root, env: env, quiet: quiet, command_runner: command_runner)
         when "bundled_handoff"
    @@ -4536,6 +4571,8 @@ 

    else step end + Kettle::Jem.emit_step_event(events, "command_step", result, phase: event_phase) + result end end

    @@ -4581,24 +4618,24 @@

     
     
    -1592
    -1593
    -1594
    -1595
    -1596
    -1597
    -1598
    -1599
    -1600
    -1601
    -1602
    -1603
    -1604
    -1605
    -1606
    +1616 +1617 +1618 +1619 +1620 +1621 +1622 +1623 +1624 +1625 +1626 +1627 +1628 +1629 +1630

    -
    # File 'lib/kettle/jem/tasks/install_task.rb', line 1592
    +      
    # File 'lib/kettle/jem/tasks/install_task.rb', line 1616
     
     def execute_ready_command_step(step, project_root:, env:, quiet:, command_runner:)
       return step unless step.fetch(:status) == "ready"
    @@ -4635,40 +4672,40 @@ 

     
     
    -1608
    -1609
    -1610
    -1611
    -1612
    -1613
    -1614
    -1615
    -1616
    -1617
    -1618
    -1619
    -1620
    -1621
    -1622
    -1623
    -1624
    -1625
    -1626
    -1627
    -1628
    -1629
    -1630
    -1631
     1632
     1633
     1634
     1635
     1636
     1637
    -1638
    +1638 +1639 +1640 +1641 +1642 +1643 +1644 +1645 +1646 +1647 +1648 +1649 +1650 +1651 +1652 +1653 +1654 +1655 +1656 +1657 +1658 +1659 +1660 +1661 +1662

    -
    # File 'lib/kettle/jem/tasks/install_task.rb', line 1608
    +      
    # File 'lib/kettle/jem/tasks/install_task.rb', line 1632
     
     def execute_ready_commands_step(step, project_root:, env:, quiet:, command_runner:)
       return step unless step.fetch(:status) == "ready"
    @@ -4751,8 +4788,6 @@ 

     
     
    -66
    -67
     68
     69
     70
    @@ -4761,10 +4796,12 @@ 

    73 74 75 -76

    +76 +77 +78

    -
    # File 'lib/kettle/jem/tasks/install_task.rb', line 66
    +      
    # File 'lib/kettle/jem/tasks/install_task.rb', line 68
     
     def followup_apply_after_config_bootstrap(project_root, env:, run_options:, report:)
       return report unless config_bootstrap_changed?(report)
    @@ -4951,12 +4988,12 @@ 

     
     
    -1778
    -1779
    -1780
    +1802 +1803 +1804

    -
    # File 'lib/kettle/jem/tasks/install_task.rb', line 1778
    +      
    # File 'lib/kettle/jem/tasks/install_task.rb', line 1802
     
     def git_attribute_block_end(managed_block)
       "# <</#{managed_block}>>"
    @@ -4981,12 +5018,12 @@ 

     
     
    -1774
    -1775
    -1776
    +1798 +1799 +1800

    -
    # File 'lib/kettle/jem/tasks/install_task.rb', line 1774
    +      
    # File 'lib/kettle/jem/tasks/install_task.rb', line 1798
     
     def git_attribute_block_start(managed_block)
       "# <<#{managed_block}>> do not edit below this line"
    @@ -5034,20 +5071,20 @@ 

     
     
    -1427
    -1428
    -1429
    -1430
    -1431
    -1432
    -1433
    -1434
    -1435
    -1436
    -1437
    +1451 +1452 +1453 +1454 +1455 +1456 +1457 +1458 +1459 +1460 +1461

    -
    # File 'lib/kettle/jem/tasks/install_task.rb', line 1427
    +      
    # File 'lib/kettle/jem/tasks/install_task.rb', line 1451
     
     def git_attribute_line_conflicts?(line, update)
       parts = line.to_s.strip.split
    @@ -5080,27 +5117,27 @@ 

     
     
    -1384
    -1385
    -1386
    -1387
    -1388
    -1389
    -1390
    -1391
    -1392
    -1393
    -1394
    -1395
    -1396
    -1397
    -1398
    -1399
    -1400
    -1401
    +1408 +1409 +1410 +1411 +1412 +1413 +1414 +1415 +1416 +1417 +1418 +1419 +1420 +1421 +1422 +1423 +1424 +1425

    -
    # File 'lib/kettle/jem/tasks/install_task.rb', line 1384
    +      
    # File 'lib/kettle/jem/tasks/install_task.rb', line 1408
     
     def git_driver_attribute_diagnostics(project_root, updates, managed_block:)
       path = File.join(project_root.to_s, ".gitattributes")
    @@ -5140,15 +5177,15 @@ 

     
     
    -1377
    -1378
    -1379
    -1380
    -1381
    -1382
    +1401 +1402 +1403 +1404 +1405 +1406

    -
    # File 'lib/kettle/jem/tasks/install_task.rb', line 1377
    +      
    # File 'lib/kettle/jem/tasks/install_task.rb', line 1401
     
     def git_driver_attribute_reason(diagnostics, dry_run:, ready:)
       return "git_driver_attribute_conflict" if diagnostics.any? { |diagnostic| diagnostic.fetch(:key) == "conflicting_attributes" }
    @@ -5176,14 +5213,14 @@ 

     
     
    -1371
    -1372
    -1373
    -1374
    -1375
    +1395 +1396 +1397 +1398 +1399

    -
    # File 'lib/kettle/jem/tasks/install_task.rb', line 1371
    +      
    # File 'lib/kettle/jem/tasks/install_task.rb', line 1395
     
     def git_driver_attribute_status(diagnostics, dry_run:)
       return "blocked" if diagnostics.any? { |diagnostic| diagnostic.fetch(:blocking, false) }
    @@ -5210,19 +5247,19 @@ 

     
     
    -1262
    -1263
    -1264
    -1265
    -1266
    -1267
    -1268
    -1269
    -1270
    -1271
    +1286 +1287 +1288 +1289 +1290 +1291 +1292 +1293 +1294 +1295

    -
    # File 'lib/kettle/jem/tasks/install_task.rb', line 1262
    +      
    # File 'lib/kettle/jem/tasks/install_task.rb', line 1286
     
     def git_driver_attribute_updates(manifest, profile)
       profile_hash = git_driver_manifest_profile(manifest, profile)
    @@ -5254,17 +5291,17 @@ 

     
     
    -1253
    -1254
    -1255
    -1256
    -1257
    -1258
    -1259
    -1260
    +1277 +1278 +1279 +1280 +1281 +1282 +1283 +1284

    -
    # File 'lib/kettle/jem/tasks/install_task.rb', line 1253
    +      
    # File 'lib/kettle/jem/tasks/install_task.rb', line 1277
     
     def git_driver_forge_warning_diagnostic
       {
    @@ -5294,17 +5331,17 @@ 

     
     
    -1273
    -1274
    -1275
    -1276
    -1277
    -1278
    -1279
    -1280
    +1297 +1298 +1299 +1300 +1301 +1302 +1303 +1304

    -
    # File 'lib/kettle/jem/tasks/install_task.rb', line 1273
    +      
    # File 'lib/kettle/jem/tasks/install_task.rb', line 1297
     
     def git_driver_global_commands(manifest = nil, profile = "semantic-diff")
       profile_hash = git_driver_manifest_profile(manifest, profile)
    @@ -5334,14 +5371,14 @@ 

     
     
    -1308
    -1309
    -1310
    -1311
    -1312
    +1332 +1333 +1334 +1335 +1336

    -
    # File 'lib/kettle/jem/tasks/install_task.rb', line 1308
    +      
    # File 'lib/kettle/jem/tasks/install_task.rb', line 1332
     
     def git_driver_global_config_checks(manifest = nil, profile = "semantic-diff")
       git_driver_global_commands(manifest, profile).map do |command|
    @@ -5368,18 +5405,18 @@ 

     
     
    -1298
    -1299
    -1300
    -1301
    -1302
    -1303
    -1304
    -1305
    -1306
    +1322 +1323 +1324 +1325 +1326 +1327 +1328 +1329 +1330

    -
    # File 'lib/kettle/jem/tasks/install_task.rb', line 1298
    +      
    # File 'lib/kettle/jem/tasks/install_task.rb', line 1322
     
     def git_driver_global_unset_commands
       DEFAULT_GIT_DRIVER_DEFINITIONS.flat_map do |definition|
    @@ -5410,14 +5447,14 @@ 

     
     
    -1282
    -1283
    -1284
    -1285
    -1286
    +1306 +1307 +1308 +1309 +1310

    -
    # File 'lib/kettle/jem/tasks/install_task.rb', line 1282
    +      
    # File 'lib/kettle/jem/tasks/install_task.rb', line 1306
     
     def git_driver_local_commands(manifest = nil, profile = "semantic-diff")
       git_driver_global_commands(manifest, profile).map do |command|
    @@ -5444,14 +5481,14 @@ 

     
     
    -1314
    -1315
    -1316
    -1317
    -1318
    +1338 +1339 +1340 +1341 +1342

    -
    # File 'lib/kettle/jem/tasks/install_task.rb', line 1314
    +      
    # File 'lib/kettle/jem/tasks/install_task.rb', line 1338
     
     def git_driver_local_config_checks(manifest = nil, profile = "semantic-diff")
       git_driver_local_commands(manifest, profile).map do |command|
    @@ -5478,19 +5515,19 @@ 

     
     
    -1320
    -1321
    -1322
    -1323
    -1324
    -1325
    -1326
    -1327
    -1328
    -1329
    +1344 +1345 +1346 +1347 +1348 +1349 +1350 +1351 +1352 +1353

    -
    # File 'lib/kettle/jem/tasks/install_task.rb', line 1320
    +      
    # File 'lib/kettle/jem/tasks/install_task.rb', line 1344
     
     def git_driver_manifest(project_root)
       path = File.join(project_root.to_s, ".structuredmerge", "git-drivers.toml")
    @@ -5522,14 +5559,14 @@ 

     
     
    -1331
    -1332
    -1333
    -1334
    -1335
    +1355 +1356 +1357 +1358 +1359

    -
    # File 'lib/kettle/jem/tasks/install_task.rb', line 1331
    +      
    # File 'lib/kettle/jem/tasks/install_task.rb', line 1355
     
     def git_driver_manifest_profile(manifest, profile)
       return nil unless manifest
    @@ -5556,30 +5593,6 @@ 

     
     
    -1133
    -1134
    -1135
    -1136
    -1137
    -1138
    -1139
    -1140
    -1141
    -1142
    -1143
    -1144
    -1145
    -1146
    -1147
    -1148
    -1149
    -1150
    -1151
    -1152
    -1153
    -1154
    -1155
    -1156
     1157
     1158
     1159
    @@ -5650,10 +5663,34 @@ 

    1224 1225 1226 -1227

    +1227 +1228 +1229 +1230 +1231 +1232 +1233 +1234 +1235 +1236 +1237 +1238 +1239 +1240 +1241 +1242 +1243 +1244 +1245 +1246 +1247 +1248 +1249 +1250 +1251

    -
    # File 'lib/kettle/jem/tasks/install_task.rb', line 1133
    +      
    # File 'lib/kettle/jem/tasks/install_task.rb', line 1157
     
     def git_drivers_step(project_root, run_options)
       mode = normalize_git_drivers_mode((run_options || {})[:git_drivers])
    @@ -5770,13 +5807,13 @@ 

     
     
    -1517
    -1518
    -1519
    -1520
    +1541 +1542 +1543 +1544

    -
    # File 'lib/kettle/jem/tasks/install_task.rb', line 1517
    +      
    # File 'lib/kettle/jem/tasks/install_task.rb', line 1541
     
     def git_output(project_root, *args)
       stdout, _stderr, status = Open3.capture3("git", "-C", project_root.to_s, *args)
    @@ -5825,13 +5862,13 @@ 

     
     
    -1512
    -1513
    -1514
    -1515
    +1536 +1537 +1538 +1539

    -
    # File 'lib/kettle/jem/tasks/install_task.rb', line 1512
    +      
    # File 'lib/kettle/jem/tasks/install_task.rb', line 1536
     
     def git_success?(project_root, *args)
       _stdout, _stderr, status = Open3.capture3("git", "-C", project_root.to_s, *args)
    @@ -5857,13 +5894,13 @@ 

     
     
    -956
    -957
    -958
    -959
    +970 +971 +972 +973

    -
    # File 'lib/kettle/jem/tasks/install_task.rb', line 956
    +      
    # File 'lib/kettle/jem/tasks/install_task.rb', line 970
     
     def git_toplevel(project_root)
       stdout, _stderr, status = Open3.capture3("git", "-C", project_root.to_s, "rev-parse", "--show-toplevel")
    @@ -6025,28 +6062,28 @@ 

     
     
    -1522
    -1523
    -1524
    -1525
    -1526
    -1527
    -1528
    -1529
    -1530
    -1531
    -1532
    -1533
    -1534
    -1535
    -1536
    -1537
    -1538
    -1539
    -1540
    +1546 +1547 +1548 +1549 +1550 +1551 +1552 +1553 +1554 +1555 +1556 +1557 +1558 +1559 +1560 +1561 +1562 +1563 +1564

    -
    # File 'lib/kettle/jem/tasks/install_task.rb', line 1522
    +      
    # File 'lib/kettle/jem/tasks/install_task.rb', line 1546
     
     def handoff_argv(run_options)
       options = run_options || {}
    @@ -6087,30 +6124,6 @@ 

     
     
    -1050
    -1051
    -1052
    -1053
    -1054
    -1055
    -1056
    -1057
    -1058
    -1059
    -1060
    -1061
    -1062
    -1063
    -1064
    -1065
    -1066
    -1067
    -1068
    -1069
    -1070
    -1071
    -1072
    -1073
     1074
     1075
     1076
    @@ -6124,10 +6137,34 @@ 

    1084 1085 1086 -1087

    - - -
    # File 'lib/kettle/jem/tasks/install_task.rb', line 1050
    +1087
    +1088
    +1089
    +1090
    +1091
    +1092
    +1093
    +1094
    +1095
    +1096
    +1097
    +1098
    +1099
    +1100
    +1101
    +1102
    +1103
    +1104
    +1105
    +1106
    +1107
    +1108
    +1109
    +1110
    +1111
    + + +
    # File 'lib/kettle/jem/tasks/install_task.rb', line 1074
     
     def hook_templates_step(project_root, run_options)
       mode = normalize_hook_templates_mode((run_options || {})[:hook_templates])
    @@ -6281,12 +6318,12 @@ 

     
     
    -62
    -63
    -64
    +64 +65 +66

    -
    # File 'lib/kettle/jem/tasks/install_task.rb', line 62
    +      
    # File 'lib/kettle/jem/tasks/install_task.rb', line 64
     
     def install_run_options(env, run_options)
       Kettle::Jem::Tasks::TemplateTask.env_run_options(env || {}).merge(run_options || {})
    @@ -6449,15 +6486,15 @@ 

     
     
    -1033
    -1034
    -1035
    -1036
    -1037
    -1038
    +1057 +1058 +1059 +1060 +1061 +1062

    -
    # File 'lib/kettle/jem/tasks/install_task.rb', line 1033
    +      
    # File 'lib/kettle/jem/tasks/install_task.rb', line 1057
     
     def kettle_family_dependency_root(marker)
       Array(marker["local_dependencies"]).map(&:to_s).each do |path|
    @@ -6479,24 +6516,24 @@ 

    -

    - -
    -
    -
    -
    -1023
    -1024
    -1025
    -1026
    -1027
    -1028
    -1029
    -1030
    -1031
    + + +
    +
    +
    +
    +1047
    +1048
    +1049
    +1050
    +1051
    +1052
    +1053
    +1054
    +1055
    -
    # File 'lib/kettle/jem/tasks/install_task.rb', line 1023
    +      
    # File 'lib/kettle/jem/tasks/install_task.rb', line 1047
     
     def kettle_family_local_install_marker(command_env)
       path = command_env["KETTLE_FAMILY_LOCAL_INSTALL_MARKER"].to_s
    @@ -6527,13 +6564,13 @@ 

     
     
    -1557
    -1558
    -1559
    -1560
    +1581 +1582 +1583 +1584

    -
    # File 'lib/kettle/jem/tasks/install_task.rb', line 1557
    +      
    # File 'lib/kettle/jem/tasks/install_task.rb', line 1581
     
     def list_arg(flag, value)
       values = Array(value).flat_map { |entry| entry.to_s.split(",") }.map(&:strip).reject(&:empty?)
    @@ -6655,12 +6692,12 @@ 

     
     
    -1040
    -1041
    -1042
    +1064 +1065 +1066

    -
    # File 'lib/kettle/jem/tasks/install_task.rb', line 1040
    +      
    # File 'lib/kettle/jem/tasks/install_task.rb', line 1064
     
     def local_env_disabled?(value)
       value.to_s.empty? || value.to_s.casecmp("false").zero?
    @@ -6898,28 +6935,28 @@ 

     
     
    -749
    -750
    -751
    -752
    -753
    -754
    -755
    -756
    -757
    -758
    -759
    -760
    -761
    -762
     763
     764
     765
     766
    -767
    +767 +768 +769 +770 +771 +772 +773 +774 +775 +776 +777 +778 +779 +780 +781

    -
    # File 'lib/kettle/jem/tasks/install_task.rb', line 749
    +      
    # File 'lib/kettle/jem/tasks/install_task.rb', line 763
     
     def normal_lockfile_env(project_root, env)
       command_env = (env || {}).to_h.dup
    @@ -6992,22 +7029,22 @@ 

     
     
    -1229
    -1230
    -1231
    -1232
    -1233
    -1234
    -1235
    -1236
    -1237
    -1238
    -1239
    -1240
    -1241
    +1253 +1254 +1255 +1256 +1257 +1258 +1259 +1260 +1261 +1262 +1263 +1264 +1265

    -
    # File 'lib/kettle/jem/tasks/install_task.rb', line 1229
    +      
    # File 'lib/kettle/jem/tasks/install_task.rb', line 1253
     
     def normalize_git_drivers_mode(value)
       normalized = value.to_s.strip.downcase.tr("_", "-")
    @@ -7042,18 +7079,18 @@ 

     
     
    -1089
    -1090
    -1091
    -1092
    -1093
    -1094
    -1095
    -1096
    -1097
    +1113 +1114 +1115 +1116 +1117 +1118 +1119 +1120 +1121

    -
    # File 'lib/kettle/jem/tasks/install_task.rb', line 1089
    +      
    # File 'lib/kettle/jem/tasks/install_task.rb', line 1113
     
     def normalize_hook_templates_mode(value)
       normalized = value.to_s.strip.downcase
    @@ -7244,27 +7281,27 @@ 

     
     
    -893
    -894
    -895
    -896
    -897
    -898
    -899
    -900
    -901
    -902
    -903
    -904
    -905
    -906
     907
     908
     909
    -910
    +910 +911 +912 +913 +914 +915 +916 +917 +918 +919 +920 +921 +922 +923 +924

    -
    # File 'lib/kettle/jem/tasks/install_task.rb', line 893
    +      
    # File 'lib/kettle/jem/tasks/install_task.rb', line 907
     
     def prune_unwanted_bundler_binstubs(project_root)
       bin_dir = File.join(project_root.to_s, "bin")
    @@ -7304,20 +7341,20 @@ 

     
     
    -1795
    -1796
    -1797
    -1798
    -1799
    -1800
    -1801
    -1802
    -1803
    -1804
    -1805
    +1819 +1820 +1821 +1822 +1823 +1824 +1825 +1826 +1827 +1828 +1829

    -
    # File 'lib/kettle/jem/tasks/install_task.rb', line 1795
    +      
    # File 'lib/kettle/jem/tasks/install_task.rb', line 1819
     
     def quiet_command(command, quiet:)
       argv = command.map(&:to_s)
    @@ -7350,20 +7387,20 @@ 

     
     
    -1807
    -1808
    -1809
    -1810
    -1811
    -1812
    -1813
    -1814
    -1815
    -1816
    -1817
    +1831 +1832 +1833 +1834 +1835 +1836 +1837 +1838 +1839 +1840 +1841

    -
    # File 'lib/kettle/jem/tasks/install_task.rb', line 1807
    +      
    # File 'lib/kettle/jem/tasks/install_task.rb', line 1831
     
     def quiet_command_env(env)
       (env || {}).to_h.merge(
    @@ -7379,6 +7416,65 @@ 

    + + +
    +

    + + .rake_task_available?(project_root, task_name) ⇒ Boolean + + + + + +

    +
    + + + +
    +
    +
    + +

    Returns:

    +
      + +
    • + + + (Boolean) + + + +
    • + +
    + +
    + + + + +
    +
    +
    +
    +692
    +693
    +694
    +695
    +696
    +697
    +
    +
    # File 'lib/kettle/jem/tasks/install_task.rb', line 692
    +
    +def rake_task_available?(project_root, task_name)
    +  stdout, _stderr, status = Open3.capture3("bin/rake", "--tasks", chdir: project_root.to_s)
    +  status.success? && stdout.lines.any? { |line| line.include?(task_name.to_s) }
    +rescue Errno::EACCES, Errno::ENOENT
    +  false
    +end
    +
    @@ -7434,17 +7530,17 @@

     
     
    -961
    -962
    -963
    -964
    -965
    -966
    -967
    -968
    +975 +976 +977 +978 +979 +980 +981 +982

    -
    # File 'lib/kettle/jem/tasks/install_task.rb', line 961
    +      
    # File 'lib/kettle/jem/tasks/install_task.rb', line 975
     
     def relative_or_absolute_path(path, project_root)
       expanded_path = File.expand_path(path.to_s)
    @@ -7474,29 +7570,29 @@ 

     
     
    -1748
    -1749
    -1750
    -1751
    -1752
    -1753
    -1754
    -1755
    -1756
    -1757
    -1758
    -1759
    -1760
    -1761
    -1762
    -1763
    -1764
    -1765
    -1766
    -1767
    +1772 +1773 +1774 +1775 +1776 +1777 +1778 +1779 +1780 +1781 +1782 +1783 +1784 +1785 +1786 +1787 +1788 +1789 +1790 +1791

    -
    # File 'lib/kettle/jem/tasks/install_task.rb', line 1748
    +      
    # File 'lib/kettle/jem/tasks/install_task.rb', line 1772
     
     def remove_git_attribute_managed_block(content, managed_block:)
       start_line = git_attribute_block_start(managed_block)
    @@ -7538,13 +7634,13 @@ 

     
     
    -1769
    -1770
    -1771
    -1772
    +1793 +1794 +1795 +1796

    -
    # File 'lib/kettle/jem/tasks/install_task.rb', line 1769
    +      
    # File 'lib/kettle/jem/tasks/install_task.rb', line 1793
     
     def render_git_attribute_line(update)
       attributes = update.fetch(:attributes).map { |key, value| "#{key}=#{value}" }.join(" ")
    @@ -7570,17 +7666,17 @@ 

     
     
    -1739
    -1740
    -1741
    -1742
    -1743
    -1744
    -1745
    -1746
    +1763 +1764 +1765 +1766 +1767 +1768 +1769 +1770

    -
    # File 'lib/kettle/jem/tasks/install_task.rb', line 1739
    +      
    # File 'lib/kettle/jem/tasks/install_task.rb', line 1763
     
     def render_git_attributes(content, updates, managed_block:)
       unmanaged_lines = remove_git_attribute_managed_block(content, managed_block: managed_block).fetch(:lines)
    @@ -7610,19 +7706,19 @@ 

     
     
    -1728
    -1729
    -1730
    -1731
    -1732
    -1733
    -1734
    -1735
    -1736
    -1737
    +1752 +1753 +1754 +1755 +1756 +1757 +1758 +1759 +1760 +1761

    -
    # File 'lib/kettle/jem/tasks/install_task.rb', line 1728
    +      
    # File 'lib/kettle/jem/tasks/install_task.rb', line 1752
     
     def render_git_driver_include_config(config_entries)
       lines = ["# Generated by kettle-jem; do not commit this file."]
    @@ -7814,24 +7910,10 @@ 

    - @@ -8375,32 +8489,32 @@

     
     
    -1568
    -1569
    -1570
    -1571
    -1572
    -1573
    -1574
    -1575
    -1576
    -1577
    -1578
    -1579
    -1580
    -1581
    -1582
    -1583
    -1584
    -1585
    -1586
    -1587
    -1588
    -1589
    -1590
    +1592 +1593 +1594 +1595 +1596 +1597 +1598 +1599 +1600 +1601 +1602 +1603 +1604 +1605 +1606 +1607 +1608 +1609 +1610 +1611 +1612 +1613 +1614

    + +
    -
    -
    -
    -822
    -823
    -824
    -825
    -826
    -827
    -828
    -829
    -830
    -831
    -832
    -833
    -834
    -835
    +    
    +
    +
    +
     836
     837
     838
    @@ -7848,10 +7930,24 @@ 

    849 850 851 -852

    +852 +853 +854 +855 +856 +857 +858 +859 +860 +861 +862 +863 +864 +865 +866
    -
    # File 'lib/kettle/jem/tasks/install_task.rb', line 822
    +      
    # File 'lib/kettle/jem/tasks/install_task.rb', line 836
     
     def rewrite_yard_binstub(project_root)
       yard_binstub = File.join(project_root.to_s, "bin", "yard")
    @@ -7904,12 +8000,12 @@ 

     
     
    -681
    -682
    -683
    +688 +689 +690

    -
    # File 'lib/kettle/jem/tasks/install_task.rb', line 681
    +      
    # File 'lib/kettle/jem/tasks/install_task.rb', line 688
     
     def rubocop_gradual_autocorrect_command
       ["sh", "-c", "rm -f .rubocop_gradual.lock && bin/rake rubocop_gradual:autocorrect"]
    @@ -7951,7 +8047,14 @@ 

    676 677 678 -679

    +679 +680 +681 +682 +683 +684 +685 +686
    # File 'lib/kettle/jem/tasks/install_task.rb', line 662
    @@ -7966,6 +8069,13 @@ 

    reason: "missing_rake_entrypoint" } end + unless rake_task_available?(project_root, "rubocop_gradual:autocorrect") + return { + name: "rubocop_gradual_autocorrect", + status: "skipped", + reason: "missing_rubocop_gradual_task" + } + end { name: "rubocop_gradual_autocorrect", @@ -7994,20 +8104,6 @@

     
     
    -685
    -686
    -687
    -688
    -689
    -690
    -691
    -692
    -693
    -694
    -695
    -696
    -697
    -698
     699
     700
     701
    @@ -8034,10 +8130,24 @@ 

    722 723 724 -725

    +725 +726 +727 +728 +729 +730 +731 +732 +733 +734 +735 +736 +737 +738 +739

    -
    # File 'lib/kettle/jem/tasks/install_task.rb', line 685
    +      
    # File 'lib/kettle/jem/tasks/install_task.rb', line 699
     
     def rubocop_lts_local_branch_step(report, env:, project_root: nil)
       local_root = rubocop_lts_local_root(env)
    @@ -8100,17 +8210,17 @@ 

     
     
    -733
    -734
    -735
    -736
    -737
    -738
    -739
    -740
    +747 +748 +749 +750 +751 +752 +753 +754

    -
    # File 'lib/kettle/jem/tasks/install_task.rb', line 733
    +      
    # File 'lib/kettle/jem/tasks/install_task.rb', line 747
     
     def rubocop_lts_local_root(env)
       value = (env || {})["RUBOCOP_LTS_LOCAL"].to_s.strip
    @@ -8209,7 +8319,9 @@ 

    57 58 59 -60

    +60 +61 +62
    # File 'lib/kettle/jem/tasks/install_task.rb', line 23
    @@ -8240,7 +8352,7 @@ 

    install_steps << bootstrap_commit_step(project_root, run_options: effective_run_options) install_steps = execute_orchestration_steps(install_steps, project_root: project_root, env: setup_env, run_options: effective_run_options, command_runner: command_runner) - report.merge( + final_report = report.merge( mode: "install", installed: true, install_steps: install_steps, @@ -8251,6 +8363,8 @@

    message: "kettle:jem:install applied templates, completed local post-template checks, and executed available orchestration steps." }] ) + Kettle::Jem.emit_summary_event(Kettle::Jem.event_stream_from_options(effective_run_options), final_report) + final_report end

    -
    # File 'lib/kettle/jem/tasks/install_task.rb', line 1568
    +      
    # File 'lib/kettle/jem/tasks/install_task.rb', line 1592
     
     def run_command_step(name, command, project_root:, env:, quiet:, command_runner:)
       if command.first == File.join("bin", "setup") && !File.exist?(File.join(project_root, "bin", "setup"))
    @@ -8445,21 +8559,21 @@ 

     
     
    -1782
    -1783
    -1784
    -1785
    -1786
    -1787
    -1788
    -1789
    -1790
    -1791
    -1792
    -1793
    +1806 +1807 +1808 +1809 +1810 +1811 +1812 +1813 +1814 +1815 +1816 +1817

    -
    # File 'lib/kettle/jem/tasks/install_task.rb', line 1782
    +      
    # File 'lib/kettle/jem/tasks/install_task.rb', line 1806
     
     def run_system_command(command, chdir:, env:, quiet:)
       command_env = quiet ? quiet_command_env(env) : (env || {})
    @@ -8516,14 +8630,14 @@ 

     
     
    -727
    -728
    -729
    -730
    -731
    +741 +742 +743 +744 +745

    -
    # File 'lib/kettle/jem/tasks/install_task.rb', line 727
    +      
    # File 'lib/kettle/jem/tasks/install_task.rb', line 741
     
     def same_path?(left, right)
       File.realpath(left.to_s) == File.realpath(right.to_s)
    @@ -8550,18 +8664,18 @@ 

     
     
    -1243
    -1244
    -1245
    -1246
    -1247
    -1248
    -1249
    -1250
    -1251
    +1267 +1268 +1269 +1270 +1271 +1272 +1273 +1274 +1275

    -
    # File 'lib/kettle/jem/tasks/install_task.rb', line 1243
    +      
    # File 'lib/kettle/jem/tasks/install_task.rb', line 1267
     
     def semantic_git_driver_attribute_updates
       GIT_DRIVER_LANGUAGE_REGISTRY.values.map do |definition|
    @@ -8592,20 +8706,21 @@ 

     
     
    -996
    -997
    -998
    -999
    -1000
    -1001
    -1002
    -1003
    -1004
    -1005
    -1006
    +1019 +1020 +1021 +1022 +1023 +1024 +1025 +1026 +1027 +1028 +1029 +1030

    -
    # File 'lib/kettle/jem/tasks/install_task.rb', line 996
    +      
    # File 'lib/kettle/jem/tasks/install_task.rb', line 1019
     
     def setup_command_env(project_root, env)
       command_env = (env || {}).to_h.dup
    @@ -8615,6 +8730,7 @@ 

    if File.file?(gemfile) || (!requested_gemfile.empty? && same_path?(requested_gemfile, gemfile)) command_env["BUNDLE_GEMFILE"] = gemfile end + command_env["K_JEM_TEMPLATING"] = "false" apply_kettle_family_local_install_env!(command_env) command_env end

    @@ -8638,14 +8754,14 @@

     
     
    -1044
    -1045
    -1046
    -1047
    -1048
    +1068 +1069 +1070 +1071 +1072

    -
    # File 'lib/kettle/jem/tasks/install_task.rb', line 1044
    +      
    # File 'lib/kettle/jem/tasks/install_task.rb', line 1068
     
     def strip_inherited_bundler_activation!(command_env)
       (ENV.keys + command_env.keys).grep(/\ABUNDLE_/).each { |key| command_env[key] = nil }
    @@ -8921,12 +9037,12 @@ 

     
     
    -1367
    -1368
    -1369
    +1391 +1392 +1393

    -
    # File 'lib/kettle/jem/tasks/install_task.rb', line 1367
    +      
    # File 'lib/kettle/jem/tasks/install_task.rb', line 1391
     
     def unsafe_git_driver_command_value?(value)
       value.include?("$(") || value.include?("${") || value.include?("`")
    @@ -8951,20 +9067,6 @@ 

     
     
    -792
    -793
    -794
    -795
    -796
    -797
    -798
    -799
    -800
    -801
    -802
    -803
    -804
    -805
     806
     807
     808
    @@ -8979,10 +9081,24 @@ 

    817 818 819 -820

    +820 +821 +822 +823 +824 +825 +826 +827 +828 +829 +830 +831 +832 +833 +834

    -
    # File 'lib/kettle/jem/tasks/install_task.rb', line 792
    +      
    # File 'lib/kettle/jem/tasks/install_task.rb', line 806
     
     def validate_bundle_binstub_location(project_root)
       destination_bin = File.join(project_root.to_s, "bin")
    @@ -9056,20 +9172,20 @@ 

     
     
    -1337
    -1338
    -1339
    -1340
    -1341
    -1342
    -1343
    -1344
    -1345
    -1346
    -1347
    +1361 +1362 +1363 +1364 +1365 +1366 +1367 +1368 +1369 +1370 +1371

    -
    # File 'lib/kettle/jem/tasks/install_task.rb', line 1337
    +      
    # File 'lib/kettle/jem/tasks/install_task.rb', line 1361
     
     def validate_git_driver_manifest!(manifest)
       raise Kettle::Jem::Error, "Invalid .structuredmerge/git-drivers.toml: root must be a mapping" unless manifest.is_a?(Hash)
    @@ -9125,26 +9241,26 @@ 

     
     
    -1349
    -1350
    -1351
    -1352
    -1353
    -1354
    -1355
    -1356
    -1357
    -1358
    -1359
    -1360
    -1361
    -1362
    -1363
    -1364
    -1365
    +1373 +1374 +1375 +1376 +1377 +1378 +1379 +1380 +1381 +1382 +1383 +1384 +1385 +1386 +1387 +1388 +1389

    -
    # File 'lib/kettle/jem/tasks/install_task.rb', line 1349
    +      
    # File 'lib/kettle/jem/tasks/install_task.rb', line 1373
     
     def validate_git_driver_profile!(profile_name, profile)
       raise Kettle::Jem::Error, "Invalid .structuredmerge/git-drivers.toml: profile name is required" if profile_name.to_s.empty?
    @@ -9183,12 +9299,12 @@ 

     
     
    -1553
    -1554
    -1555
    +1577 +1578 +1579

    -
    # File 'lib/kettle/jem/tasks/install_task.rb', line 1553
    +      
    # File 'lib/kettle/jem/tasks/install_task.rb', line 1577
     
     def value_arg(flag, value)
       value.to_s.strip.empty? ? [] : [flag, value.to_s]
    @@ -9245,28 +9361,28 @@ 

     
     
    -854
    -855
    -856
    -857
    -858
    -859
    -860
    -861
    -862
    -863
    -864
    -865
    -866
    -867
     868
     869
     870
     871
    -872
    +872 +873 +874 +875 +876 +877 +878 +879 +880 +881 +882 +883 +884 +885 +886

    -
    # File 'lib/kettle/jem/tasks/install_task.rb', line 854
    +      
    # File 'lib/kettle/jem/tasks/install_task.rb', line 868
     
     def yard_binstub_rake_handoff_content
       <<~RUBY
    @@ -9297,7 +9413,7 @@ 

    diff --git a/gems/kettle-jem/docs/Kettle/Jem/Tasks/PrepareTask.html b/gems/kettle-jem/docs/Kettle/Jem/Tasks/PrepareTask.html index 3abc01d75..43ac51029 100644 --- a/gems/kettle-jem/docs/Kettle/Jem/Tasks/PrepareTask.html +++ b/gems/kettle-jem/docs/Kettle/Jem/Tasks/PrepareTask.html @@ -109,7 +109,12 @@

    CRITICAL_TEMPLATING_GEMS =
    -
    %w[nomono tree_sitter_language_pack].freeze
    +
    %w[nomono].freeze
    + +
    LOCKED_TEMPLATING_GEMS = + +
    +
    %w[tree_sitter_language_pack].freeze
    @@ -131,7 +136,30 @@

  • - .bundle_update_templating_bootstrap_command ⇒ Object + .bundle_update_templating_bootstrap_command(project_root = Dir.pwd) ⇒ Object + + + + + + + + + + + + + +
    +
    + +
  • + + +
  • + + + .locked_templating_gems(project_root) ⇒ Object @@ -187,7 +215,7 @@

    Class Method Details

    - .bundle_update_templating_bootstrap_commandObject + .bundle_update_templating_bootstrap_command(project_root = Dir.pwd) ⇒ Object @@ -199,15 +227,53 @@

    -62 -63 -64

  • +82 +83 +84
    -
    # File 'lib/kettle/jem/tasks/prepare_task.rb', line 62
    +      
    # File 'lib/kettle/jem/tasks/prepare_task.rb', line 82
     
    -def bundle_update_templating_bootstrap_command
    -  %w[bundle update] + CRITICAL_TEMPLATING_GEMS
    +def bundle_update_templating_bootstrap_command(project_root = Dir.pwd)
    +  %w[bundle update] + CRITICAL_TEMPLATING_GEMS + locked_templating_gems(project_root)
    +end
    +
    + + +
    +

    + + .locked_templating_gems(project_root) ⇒ Object + + + + + +

    + + + @@ -229,9 +295,6 @@

     
     
    -18
    -19
    -20
     21
     22
     23
    @@ -271,10 +334,30 @@ 

    57 58 59 -60

    +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76 +77 +78 +79 +80

    @@ -329,7 +429,7 @@

    diff --git a/gems/kettle-jem/docs/Kettle/Jem/Tasks/SelfTestTask.html b/gems/kettle-jem/docs/Kettle/Jem/Tasks/SelfTestTask.html index e0a7b121f..8006ab2ab 100644 --- a/gems/kettle-jem/docs/Kettle/Jem/Tasks/SelfTestTask.html +++ b/gems/kettle-jem/docs/Kettle/Jem/Tasks/SelfTestTask.html @@ -1332,7 +1332,7 @@

    diff --git a/gems/kettle-jem/docs/Kettle/Jem/Tasks/TemplateTask.html b/gems/kettle-jem/docs/Kettle/Jem/Tasks/TemplateTask.html index 7873e5fa0..cad840c7b 100644 --- a/gems/kettle-jem/docs/Kettle/Jem/Tasks/TemplateTask.html +++ b/gems/kettle-jem/docs/Kettle/Jem/Tasks/TemplateTask.html @@ -241,9 +241,6 @@

     
     
    -34
    -35
    -36
     37
     38
     39
    @@ -261,10 +258,13 @@ 

    51 52 53 -54

    +54 +55 +56 +57

    @@ -512,12 +518,12 @@

     
     
    -56
    -57
    -58
    +59 +60 +61

    +
    +
    +
    +86
    +87
    +88
    +89
    +90
    +91
    +92
    +
    +
    # File 'lib/kettle/jem/tasks/prepare_task.rb', line 86
    +
    +def locked_templating_gems(project_root)
    +  lock_path = File.join(project_root.to_s, "Gemfile.lock")
    +  return [] unless File.file?(lock_path)
    +
    +  locked_names = Bundler::LockfileParser.new(Bundler.read_file(lock_path)).specs.map(&:name)
    +  LOCKED_TEMPLATING_GEMS & locked_names
     end
    -
    # File 'lib/kettle/jem/tasks/prepare_task.rb', line 18
    +      
    # File 'lib/kettle/jem/tasks/prepare_task.rb', line 21
     
     def run(project_root: Dir.pwd, env: ENV, run_options: {}, command_runner: Kettle::Jem::Tasks::InstallTask.method(:run_system_command))
       effective_run_options = Kettle::Jem::Tasks::TemplateTask.env_run_options(env || {}).merge(run_options || {})
    @@ -284,14 +367,28 @@ 

    ) report = Kettle::Jem.apply_project(project_root, env: env, run_options: prepare_run_options) setup_env = Kettle::Jem::Tasks::InstallTask.setup_command_env(project_root, env) + events = Kettle::Jem.event_stream_from_options(effective_run_options) + Kettle::Jem.emit_step_event( + events, + "command_step", + {name: "bundle_update_templating_bootstrap", status: "started", command: bundle_update_templating_bootstrap_command(project_root)}, + phase: "prepare" + ) update_step = Kettle::Jem::Tasks::InstallTask.run_command_step( "bundle_update_templating_bootstrap", - bundle_update_templating_bootstrap_command, + bundle_update_templating_bootstrap_command(project_root), project_root: project_root, env: setup_env, quiet: Kettle::Jem::DecisionPolicy.value_to_boolean(effective_run_options[:quiet]), command_runner: command_runner ) + Kettle::Jem.emit_step_event(events, "command_step", update_step, phase: "prepare") + Kettle::Jem.emit_step_event( + events, + "command_step", + {name: "bundle_install", status: "started", command: %w[bundle install]}, + phase: "prepare" + ) bundle_step = Kettle::Jem::Tasks::InstallTask.run_command_step( "bundle_install", %w[bundle install], @@ -300,8 +397,9 @@

    quiet: Kettle::Jem::DecisionPolicy.value_to_boolean(effective_run_options[:quiet]), command_runner: command_runner ) + Kettle::Jem.emit_step_event(events, "command_step", bundle_step, phase: "prepare") - report.merge( + final_report = report.merge( mode: "prepare", prepared: update_step.fetch(:status) == "succeeded" && bundle_step.fetch(:status) == "succeeded", @@ -318,6 +416,8 @@

    "updated critical templating gems, and ran bundle install." }] ) + Kettle::Jem.emit_summary_event(events, final_report) + final_report end

    -
    # File 'lib/kettle/jem/tasks/template_task.rb', line 34
    +      
    # File 'lib/kettle/jem/tasks/template_task.rb', line 37
     
     def env_run_options(env)
       {
    @@ -330,12 +330,12 @@ 

     
     
    -60
    -61
    -62
    +63 +64 +65

    -
    # File 'lib/kettle/jem/tasks/template_task.rb', line 60
    +      
    # File 'lib/kettle/jem/tasks/template_task.rb', line 63
     
     def falsey?(value)
       Kettle::Jem::DecisionPolicy.falsey?(value)
    @@ -383,14 +383,14 @@ 

     
     
    -64
    -65
    -66
     67
    -68
    +68 +69 +70 +71

    -
    # File 'lib/kettle/jem/tasks/template_task.rb', line 64
    +      
    # File 'lib/kettle/jem/tasks/template_task.rb', line 67
     
     def monorepo_root_profile?(project_root, env, run_options)
       profile = (run_options || {})[:template_profile] || (run_options || {})["template_profile"] || (env || {})["KETTLE_JEM_TEMPLATE_PROFILE"]
    @@ -440,7 +440,10 @@ 

    29 30 31 -32

    +32 +33 +34 +35
    # File 'lib/kettle/jem/tasks/template_task.rb', line 9
    @@ -465,9 +468,12 @@ 

    project_root: project_root, env: setup_env, run_options: run_options, - command_runner: command_runner + command_runner: command_runner, + event_phase: "template" ) - report.merge(template_steps: template_steps) + final_report = report.merge(mode: "template", template_steps: template_steps) + Kettle::Jem.emit_summary_event(Kettle::Jem.event_stream_from_options(run_options), final_report) + final_report end

    -
    # File 'lib/kettle/jem/tasks/template_task.rb', line 56
    +      
    # File 'lib/kettle/jem/tasks/template_task.rb', line 59
     
     def truthy?(value)
       Kettle::Jem::DecisionPolicy.truthy?(value)
    @@ -532,7 +538,7 @@ 

    diff --git a/gems/kettle-jem/docs/Kettle/Jem/TemplateChecksums.html b/gems/kettle-jem/docs/Kettle/Jem/TemplateChecksums.html index 061dc69cf..c77f483fd 100644 --- a/gems/kettle-jem/docs/Kettle/Jem/TemplateChecksums.html +++ b/gems/kettle-jem/docs/Kettle/Jem/TemplateChecksums.html @@ -359,19 +359,19 @@

     
     
    -1621
    -1622
    -1623
    -1624
    -1625
    -1626
    -1627
    -1628
    -1629
    -1630
    +1638 +1639 +1640 +1641 +1642 +1643 +1644 +1645 +1646 +1647

    -
    # File 'lib/kettle/jem.rb', line 1621
    +      
    # File 'lib/kettle/jem.rb', line 1638
     
     def build_yaml_block(checksums:, version: nil)
       lines = [YAML_KEY]
    @@ -403,20 +403,20 @@ 

     
     
    -1564
    -1565
    -1566
    -1567
    -1568
    -1569
    -1570
    -1571
    -1572
    -1573
    -1574
    +1581 +1582 +1583 +1584 +1585 +1586 +1587 +1588 +1589 +1590 +1591

    -
    # File 'lib/kettle/jem.rb', line 1564
    +      
    # File 'lib/kettle/jem.rb', line 1581
     
     def compute(template_root:)
       root = template_root.to_s.chomp("/")
    @@ -449,16 +449,16 @@ 

     
     
    -1613
    -1614
    -1615
    -1616
    -1617
    -1618
    -1619
    +1630 +1631 +1632 +1633 +1634 +1635 +1636

    -
    # File 'lib/kettle/jem.rb', line 1613
    +      
    # File 'lib/kettle/jem.rb', line 1630
     
     def detail_lines(diff)
       [
    @@ -487,19 +487,19 @@ 

     
     
    -1587
    -1588
    -1589
    -1590
    -1591
    -1592
    -1593
    -1594
    -1595
    -1596
    +1604 +1605 +1606 +1607 +1608 +1609 +1610 +1611 +1612 +1613

    -
    # File 'lib/kettle/jem.rb', line 1587
    +      
    # File 'lib/kettle/jem.rb', line 1604
     
     def diff(current:, stored:)
       current_keys = current.keys.to_set
    @@ -531,12 +531,12 @@ 

     
     
    -1598
    -1599
    -1600
    +1615 +1616 +1617

    -
    # File 'lib/kettle/jem.rb', line 1598
    +      
    # File 'lib/kettle/jem.rb', line 1615
     
     def diff_count(diff)
       diff.fetch(:added, []).size + diff.fetch(:changed, []).size + diff.fetch(:removed, []).size
    @@ -561,19 +561,19 @@ 

     
     
    -1576
    -1577
    -1578
    -1579
    -1580
    -1581
    -1582
    -1583
    -1584
    -1585
    +1593 +1594 +1595 +1596 +1597 +1598 +1599 +1600 +1601 +1602

    -
    # File 'lib/kettle/jem.rb', line 1576
    +      
    # File 'lib/kettle/jem.rb', line 1593
     
     def load_stored(config_path:)
       return {} unless File.exist?(config_path.to_s)
    @@ -605,29 +605,29 @@ 

     
     
    -1642
    -1643
    -1644
    -1645
    -1646
    -1647
    -1648
    -1649
    -1650
    -1651
    -1652
    -1653
    -1654
    -1655
    -1656
    -1657
    -1658
     1659
     1660
    -1661
    +1661 +1662 +1663 +1664 +1665 +1666 +1667 +1668 +1669 +1670 +1671 +1672 +1673 +1674 +1675 +1676 +1677 +1678

    -
    # File 'lib/kettle/jem.rb', line 1642
    +      
    # File 'lib/kettle/jem.rb', line 1659
     
     def replace_top_level_yaml_block(content, key, replacement)
       lines = content.to_s.lines
    @@ -669,19 +669,19 @@ 

     
     
    -1602
    -1603
    -1604
    -1605
    -1606
    -1607
    -1608
    -1609
    -1610
    -1611
    +1619 +1620 +1621 +1622 +1623 +1624 +1625 +1626 +1627 +1628

    -
    # File 'lib/kettle/jem.rb', line 1602
    +      
    # File 'lib/kettle/jem.rb', line 1619
     
     def summary(diff)
       count = diff_count(diff)
    @@ -713,18 +713,18 @@ 

     
     
    -1632
    -1633
    -1634
    -1635
    -1636
    -1637
    -1638
    -1639
    -1640
    +1649 +1650 +1651 +1652 +1653 +1654 +1655 +1656 +1657

    -
    # File 'lib/kettle/jem.rb', line 1632
    +      
    # File 'lib/kettle/jem.rb', line 1649
     
     def write_to_config(config_path:, checksums:, version: nil)
       return unless File.exist?(config_path.to_s)
    @@ -745,7 +745,7 @@ 

    diff --git a/gems/kettle-jem/docs/Kettle/Jem/TemplatingReport.html b/gems/kettle-jem/docs/Kettle/Jem/TemplatingReport.html index a20c795c8..6a4952f06 100644 --- a/gems/kettle-jem/docs/Kettle/Jem/TemplatingReport.html +++ b/gems/kettle-jem/docs/Kettle/Jem/TemplatingReport.html @@ -531,19 +531,19 @@

     
     
    -1690
    -1691
    -1692
    -1693
    -1694
    -1695
    -1696
    -1697
    -1698
    -1699
    +1707 +1708 +1709 +1710 +1711 +1712 +1713 +1714 +1715 +1716

    -
    # File 'lib/kettle/jem.rb', line 1690
    +      
    # File 'lib/kettle/jem.rb', line 1707
     
     def build_entry(name, spec, workspace_root:)
       path = spec&.full_gem_path.to_s
    @@ -575,14 +575,14 @@ 

     
     
    -1723
    -1724
    -1725
    -1726
    -1727
    +1740 +1741 +1742 +1743 +1744

    -
    # File 'lib/kettle/jem.rb', line 1723
    +      
    # File 'lib/kettle/jem.rb', line 1740
     
     def canonical_path(path)
       File.realpath(path)
    @@ -609,29 +609,29 @@ 

     
     
    -1729
    -1730
    -1731
    -1732
    -1733
    -1734
    -1735
    -1736
    -1737
    -1738
    -1739
    -1740
    -1741
    -1742
    -1743
    -1744
    -1745
     1746
     1747
    -1748
    +1748 +1749 +1750 +1751 +1752 +1753 +1754 +1755 +1756 +1757 +1758 +1759 +1760 +1761 +1762 +1763 +1764 +1765

    -
    # File 'lib/kettle/jem.rb', line 1729
    +      
    # File 'lib/kettle/jem.rb', line 1746
     
     def console_lines(snapshot: nil, project_root: nil)
       snapshot ||= self.snapshot
    @@ -673,22 +673,22 @@ 

     
     
    -1701
    -1702
    -1703
    -1704
    -1705
    -1706
    -1707
    -1708
    -1709
    -1710
    -1711
    -1712
    -1713
    +1718 +1719 +1720 +1721 +1722 +1723 +1724 +1725 +1726 +1727 +1728 +1729 +1730

    -
    # File 'lib/kettle/jem.rb', line 1701
    +      
    # File 'lib/kettle/jem.rb', line 1718
     
     def default_workspace_root
       env_root = ENV["KETTLE_DEV_DEV"].to_s.strip
    @@ -746,16 +746,16 @@ 

     
     
    -1715
    -1716
    -1717
    -1718
    -1719
    -1720
    -1721
    +1732 +1733 +1734 +1735 +1736 +1737 +1738

    -
    # File 'lib/kettle/jem.rb', line 1715
    +      
    # File 'lib/kettle/jem.rb', line 1732
     
     def local_path?(path, workspace_root: default_workspace_root)
       return false if workspace_root.to_s.strip.empty?
    @@ -784,18 +784,18 @@ 

     
     
    -1859
    -1860
    -1861
    -1862
    -1863
    -1864
    -1865
    -1866
    -1867
    +1876 +1877 +1878 +1879 +1880 +1881 +1882 +1883 +1884

    -
    # File 'lib/kettle/jem.rb', line 1859
    +      
    # File 'lib/kettle/jem.rb', line 1876
     
     def local_warning_section(warning)
       <<~MARKDOWN.chomp
    @@ -826,30 +826,30 @@ 

     
     
    -1869
    -1870
    -1871
    -1872
    -1873
    -1874
    -1875
    -1876
    -1877
    -1878
    -1879
    -1880
    -1881
    -1882
    -1883
    -1884
    -1885
     1886
     1887
     1888
    -1889
    +1889 +1890 +1891 +1892 +1893 +1894 +1895 +1896 +1897 +1898 +1899 +1900 +1901 +1902 +1903 +1904 +1905 +1906

    -
    # File 'lib/kettle/jem.rb', line 1869
    +      
    # File 'lib/kettle/jem.rb', line 1886
     
     def local_workspace_warning(snapshot:, project_root:)
       return if project_root.to_s.strip.empty?
    @@ -892,18 +892,18 @@ 

     
     
    -1849
    -1850
    -1851
    -1852
    -1853
    -1854
    -1855
    -1856
    -1857
    +1866 +1867 +1868 +1869 +1870 +1871 +1872 +1873 +1874

    -
    # File 'lib/kettle/jem.rb', line 1849
    +      
    # File 'lib/kettle/jem.rb', line 1866
     
     def local_workspace_warning_lines(snapshot:, project_root:)
       warning = local_workspace_warning(snapshot: snapshot, project_root: project_root)
    @@ -934,30 +934,30 @@ 

     
     
    -1750
    -1751
    -1752
    -1753
    -1754
    -1755
    -1756
    -1757
    -1758
    -1759
    -1760
    -1761
    -1762
    -1763
    -1764
    -1765
    -1766
     1767
     1768
     1769
    -1770
    +1770 +1771 +1772 +1773 +1774 +1775 +1776 +1777 +1778 +1779 +1780 +1781 +1782 +1783 +1784 +1785 +1786 +1787

    -
    # File 'lib/kettle/jem.rb', line 1750
    +      
    # File 'lib/kettle/jem.rb', line 1767
     
     def markdown_section(snapshot: nil)
       snapshot ||= self.snapshot
    @@ -1000,23 +1000,6 @@ 

     
     
    -1772
    -1773
    -1774
    -1775
    -1776
    -1777
    -1778
    -1779
    -1780
    -1781
    -1782
    -1783
    -1784
    -1785
    -1786
    -1787
    -1788
     1789
     1790
     1791
    @@ -1039,10 +1022,27 @@ 

    1808 1809 1810 -1811

    +1811 +1812 +1813 +1814 +1815 +1816 +1817 +1818 +1819 +1820 +1821 +1822 +1823 +1824 +1825 +1826 +1827 +1828

    -
    # File 'lib/kettle/jem.rb', line 1772
    +      
    # File 'lib/kettle/jem.rb', line 1789
     
     def render_markdown(project_root:, output_dir: nil, snapshot: nil, run_started_at: Time.now, finished_at: nil,
       status: nil, warnings: [], error: nil, template_diff: nil, template_commit_sha: nil)
    @@ -1104,14 +1104,14 @@ 

     
     
    -1813
    -1814
    -1815
    -1816
    -1817
    +1830 +1831 +1832 +1833 +1834

    -
    # File 'lib/kettle/jem.rb', line 1813
    +      
    # File 'lib/kettle/jem.rb', line 1830
     
     def report_path(project_root:, output_dir: nil, run_started_at: Time.now, pid: Process.pid)
       target_root = output_dir || project_root
    @@ -1138,15 +1138,15 @@ 

     
     
    -1891
    -1892
    -1893
    -1894
    -1895
    -1896
    +1908 +1909 +1910 +1911 +1912 +1913

    -
    # File 'lib/kettle/jem.rb', line 1891
    +      
    # File 'lib/kettle/jem.rb', line 1908
     
     def sibling_workspace_root(project_root)
       candidate = canonical_path(File.expand_path("..", project_root))
    @@ -1174,16 +1174,16 @@ 

     
     
    -1682
    -1683
    -1684
    -1685
    -1686
    -1687
    -1688
    +1699 +1700 +1701 +1702 +1703 +1704 +1705

    -
    # File 'lib/kettle/jem.rb', line 1682
    +      
    # File 'lib/kettle/jem.rb', line 1699
     
     def snapshot(loaded_specs: Gem.loaded_specs, workspace_root: default_workspace_root)
       {
    @@ -1212,15 +1212,15 @@ 

     
     
    -1842
    -1843
    -1844
    -1845
    -1846
    -1847
    +1859 +1860 +1861 +1862 +1863 +1864

    -
    # File 'lib/kettle/jem.rb', line 1842
    +      
    # File 'lib/kettle/jem.rb', line 1859
     
     def source_label(entry)
       return "not loaded" unless entry[:loaded]
    @@ -1248,28 +1248,28 @@ 

     
     
    -1898
    -1899
    -1900
    -1901
    -1902
    -1903
    -1904
    -1905
    -1906
    -1907
    -1908
    -1909
    -1910
    -1911
    -1912
    -1913
    -1914
     1915
    -1916
    +1916 +1917 +1918 +1919 +1920 +1921 +1922 +1923 +1924 +1925 +1926 +1927 +1928 +1929 +1930 +1931 +1932 +1933

    -
    # File 'lib/kettle/jem.rb', line 1898
    +      
    # File 'lib/kettle/jem.rb', line 1915
     
     def template_diff_section(diff)
       lines = ["## Template File Changes", ""]
    @@ -1310,31 +1310,31 @@ 

     
     
    -1819
    -1820
    -1821
    -1822
    -1823
    -1824
    -1825
    -1826
    -1827
    -1828
    -1829
    -1830
    -1831
    -1832
    -1833
    -1834
    -1835
     1836
     1837
     1838
     1839
    -1840
    +1840 +1841 +1842 +1843 +1844 +1845 +1846 +1847 +1848 +1849 +1850 +1851 +1852 +1853 +1854 +1855 +1856 +1857

    -
    # File 'lib/kettle/jem.rb', line 1819
    +      
    # File 'lib/kettle/jem.rb', line 1836
     
     def write(project_root:, output_dir: nil, snapshot: nil, report_path: nil, run_started_at: Time.now,
       finished_at: nil, status: nil, warnings: [], error: nil, template_diff: nil, template_commit_sha: nil)
    @@ -1368,7 +1368,7 @@ 

    diff --git a/gems/kettle-jem/docs/Kettle/Jem/Version.html b/gems/kettle-jem/docs/Kettle/Jem/Version.html index dd369c616..0a97635a4 100644 --- a/gems/kettle-jem/docs/Kettle/Jem/Version.html +++ b/gems/kettle-jem/docs/Kettle/Jem/Version.html @@ -114,7 +114,7 @@

    diff --git a/gems/kettle-jem/docs/_index.html b/gems/kettle-jem/docs/_index.html index f1051be7f..0f22ab506 100644 --- a/gems/kettle-jem/docs/_index.html +++ b/gems/kettle-jem/docs/_index.html @@ -162,6 +162,13 @@

    Namespace Listing A-Z

    +
  • + EventStream + + (Kettle::Jem) + +
  • + @@ -424,7 +431,7 @@

    Namespace Listing A-Z

    diff --git a/gems/kettle-jem/docs/class_list.html b/gems/kettle-jem/docs/class_list.html index 24582edb8..49a73561d 100644 --- a/gems/kettle-jem/docs/class_list.html +++ b/gems/kettle-jem/docs/class_list.html @@ -46,7 +46,7 @@

    Class List

    diff --git a/gems/kettle-jem/docs/file.AGENTS.html b/gems/kettle-jem/docs/file.AGENTS.html index 50ac46fb7..0ae40a514 100644 --- a/gems/kettle-jem/docs/file.AGENTS.html +++ b/gems/kettle-jem/docs/file.AGENTS.html @@ -410,7 +410,7 @@

    🚫 Common Pitfalls

    diff --git a/gems/kettle-jem/docs/file.AGPL-3.0-only.html b/gems/kettle-jem/docs/file.AGPL-3.0-only.html index f2d8189e2..8f20e7144 100644 --- a/gems/kettle-jem/docs/file.AGPL-3.0-only.html +++ b/gems/kettle-jem/docs/file.AGPL-3.0-only.html @@ -342,7 +342,7 @@ diff --git a/gems/kettle-jem/docs/file.CHANGELOG.html b/gems/kettle-jem/docs/file.CHANGELOG.html index c8d1ec91b..554926d49 100644 --- a/gems/kettle-jem/docs/file.CHANGELOG.html +++ b/gems/kettle-jem/docs/file.CHANGELOG.html @@ -72,13 +72,40 @@

    Unreleased

    +

    Fixed

    + +
      +
    • +kettle-jem’s default development bundle now pins
      +tree_sitter_language_pack to the StructuredMerge fork branch that exposes
      +the Ruby parser API, while still allowing templating runs to override it with
      +VENDORED_GEMS.
    • +
    • Gemspec templating now deletes empty generated development-dependency comment
      +sections through Prism-backed CRISPR structural edits, preventing blank-line
      +churn before the closing Gem::Specification end.
    • +
    • Fixed the kettle-jem package manifest so runtime template assets are
      +included even when the gemspec is loaded from the monorepo root.
    • +
    • Generated local templating Gemfiles can now route
      +tree_sitter_language_pack through nomono’s VENDORED_GEMS /
      +VENDOR_GEM_DIR support instead of using a one-off inferred local path.
    • +
    +

    Added

      +
    • +kettle-jem now supports --events for newline-delimited JSON progress
      +events, including named event type filters via comma-separated
      +--events=TYPE,... values, phase events, per-recipe template progress,
      +post-apply and command-step events, diagnostics, and summary events for family
      +orchestration consumers.
    • Generated CI workflow templates now cache .rspec_status with explicit
      per-workflow keys so kettle-test / turbo_tests2 can reuse timing data
      across MRI, JRuby, TruffleRuby, coverage, heads, dep-heads, and framework
      matrix runs.
    • +
    • Generated dep-heads workflows now document why TruffleRuby runs directly from
      +gemfiles/dep_heads.gemfile, making that generated Appraisal file required
      +checked-in output for the workflow.
    • JRuby 9.2 workflow templates now use the legacy-engine bundle install path
      instead of ruby/setup-ruby bundler caching so old Bundler does not fail
      setup against gem servers without the full legacy index.
    • @@ -220,9 +247,21 @@

      Deprecated

      Removed

      -

      Fixed

      +

      Fixed

        +
      • Templating setup now respects explicit STRUCTUREDMERGE_DEV=false and
        +KETTLE_DEV_DEV=false values when reading the kettle-family local install
        +marker, preventing prepare-mode bundle updates from re-enabling stale local
        +Gemfile wiring.
      • +
      • Generated root Gemfiles no longer add a separate gem "nomono" bootstrap
        +line when templating the nomono gem itself, avoiding duplicate dependency
        +declarations against the package gemspec.
      • +
      • +kettle-jem prepare no longer explicitly asks Bundler to update parser gems
        +before they exist in a member lockfile, allowing cold-start templating
        +bootstraps to introduce vendored parser path dependencies during
        +bundle install.
      • Workflow template pin maintenance now compares and updates complete pinned
        action strings in source files, so bin/kettle-jem-workflow-pins --check
        fails when template files drift from github_actions_step_pins even if the
        @@ -944,7 +983,7 @@

        Added

        diff --git a/gems/kettle-jem/docs/file.CODE_OF_CONDUCT.html b/gems/kettle-jem/docs/file.CODE_OF_CONDUCT.html index 87704b74d..b62cd772d 100644 --- a/gems/kettle-jem/docs/file.CODE_OF_CONDUCT.html +++ b/gems/kettle-jem/docs/file.CODE_OF_CONDUCT.html @@ -193,7 +193,7 @@

        Attribution

        diff --git a/gems/kettle-jem/docs/file.CONTRIBUTING.html b/gems/kettle-jem/docs/file.CONTRIBUTING.html index 391151e60..0b586f32e 100644 --- a/gems/kettle-jem/docs/file.CONTRIBUTING.html +++ b/gems/kettle-jem/docs/file.CONTRIBUTING.html @@ -376,7 +376,7 @@

        Manual process

        diff --git a/gems/kettle-jem/docs/file.FUNDING.html b/gems/kettle-jem/docs/file.FUNDING.html index 7d6f1e0df..3ba9c344b 100644 --- a/gems/kettle-jem/docs/file.FUNDING.html +++ b/gems/kettle-jem/docs/file.FUNDING.html @@ -101,7 +101,7 @@

        Another Way to Support Open diff --git a/gems/kettle-jem/docs/file.IRP.html b/gems/kettle-jem/docs/file.IRP.html index 11a9fabf4..752242a14 100644 --- a/gems/kettle-jem/docs/file.IRP.html +++ b/gems/kettle-jem/docs/file.IRP.html @@ -98,7 +98,7 @@

        Follow-up

        diff --git a/gems/kettle-jem/docs/file.LICENSE.html b/gems/kettle-jem/docs/file.LICENSE.html index 64cd093d8..e76e70211 100644 --- a/gems/kettle-jem/docs/file.LICENSE.html +++ b/gems/kettle-jem/docs/file.LICENSE.html @@ -79,7 +79,7 @@ diff --git a/gems/kettle-jem/docs/file.PolyForm-Small-Business-1.0.0.html b/gems/kettle-jem/docs/file.PolyForm-Small-Business-1.0.0.html index 2b4fbc833..2069edc65 100644 --- a/gems/kettle-jem/docs/file.PolyForm-Small-Business-1.0.0.html +++ b/gems/kettle-jem/docs/file.PolyForm-Small-Business-1.0.0.html @@ -185,7 +185,7 @@

        Definitions

        diff --git a/gems/kettle-jem/docs/file.README.html b/gems/kettle-jem/docs/file.README.html index 34e883500..02c30f4bd 100644 --- a/gems/kettle-jem/docs/file.README.html +++ b/gems/kettle-jem/docs/file.README.html @@ -1160,7 +1160,7 @@

        Please give the project a star ⭐ ♥ diff --git a/gems/kettle-jem/docs/file.RRRRrb-Matrix.html b/gems/kettle-jem/docs/file.RRRRrb-Matrix.html index e5074b35f..4e2a1b5d8 100644 --- a/gems/kettle-jem/docs/file.RRRRrb-Matrix.html +++ b/gems/kettle-jem/docs/file.RRRRrb-Matrix.html @@ -411,7 +411,7 @@

        Support & Funding Info

        diff --git a/gems/kettle-jem/docs/file.RUBOCOP.html b/gems/kettle-jem/docs/file.RUBOCOP.html index 6851a6bd8..f338cfca2 100644 --- a/gems/kettle-jem/docs/file.RUBOCOP.html +++ b/gems/kettle-jem/docs/file.RUBOCOP.html @@ -166,7 +166,7 @@

        Benefits of rubocop_gradual

        diff --git a/gems/kettle-jem/docs/file.SECURITY.html b/gems/kettle-jem/docs/file.SECURITY.html index 2457979a7..cbcda8f97 100644 --- a/gems/kettle-jem/docs/file.SECURITY.html +++ b/gems/kettle-jem/docs/file.SECURITY.html @@ -93,7 +93,7 @@

        Additional Support

        diff --git a/gems/kettle-jem/docs/index.html b/gems/kettle-jem/docs/index.html index 3e3247aa5..f27fa192a 100644 --- a/gems/kettle-jem/docs/index.html +++ b/gems/kettle-jem/docs/index.html @@ -1160,7 +1160,7 @@

        Please give the project a star ⭐ ♥ diff --git a/gems/kettle-jem/docs/method_list.html b/gems/kettle-jem/docs/method_list.html index 7f6e80c37..7c7c6095a 100644 --- a/gems/kettle-jem/docs/method_list.html +++ b/gems/kettle-jem/docs/method_list.html @@ -1935,6 +1935,70 @@

        Method List

      • +
      • +
        + #emit + Kettle::Jem::EventStream +
        +
      • + + +
      • +
        + emit_diagnostic_events + Kettle::Jem +
        +
      • + + +
      • +
        + emit_event + Kettle::Jem +
        +
      • + + +
      • +
        + emit_phase_event + Kettle::Jem +
        +
      • + + +
      • +
        + emit_recipe_event + Kettle::Jem +
        +
      • + + +
      • +
        + emit_step_event + Kettle::Jem +
        +
      • + + +
      • +
        + emit_step_events + Kettle::Jem +
        +
      • + + +
      • +
        + emit_summary_event + Kettle::Jem +
        +
      • + +
      • #empty? @@ -1943,6 +2007,22 @@

        Method List

      • +
      • + +
      • + + +
      • + +
      • + +
      • enabled_ruby_engines @@ -2128,6 +2208,30 @@

        Method List

      • +
        + event_payload_value + Kettle::Jem +
        +
      • + + +
      • +
        + event_stream + Kettle::Jem +
        +
      • + + +
      • +
        + event_stream_from_options + Kettle::Jem +
        +
      • + + +
      • execute Kettle::Jem::CLI @@ -2135,7 +2239,7 @@

        Method List

      • -
      • +
      • execute_git_drivers_check_step Kettle::Jem::Tasks::InstallTask @@ -2143,7 +2247,7 @@

        Method List

      • -
      • +
      • execute_git_drivers_step Kettle::Jem::Tasks::InstallTask @@ -2151,7 +2255,7 @@

        Method List

      • -
      • +
      • execute_hook_templates_step Kettle::Jem::Tasks::InstallTask @@ -2159,7 +2263,7 @@

        Method List

      • -
      • +
      • execute_orchestration_steps Kettle::Jem::Tasks::InstallTask @@ -2167,7 +2271,7 @@

        Method List

      • -
      • +
      • execute_ready_command_step Kettle::Jem::Tasks::InstallTask @@ -2175,7 +2279,7 @@

        Method List

      • -
      • +
      • execute_ready_commands_step Kettle::Jem::Tasks::InstallTask @@ -2183,7 +2287,7 @@

        Method List

      • -
      • +
      • execute_recipe Kettle::Jem @@ -2191,7 +2295,7 @@

        Method List

      • -
      • +
      • existing_entrypoint_version_namespace Kettle::Jem @@ -2199,7 +2303,7 @@

        Method List

      • -
      • +
      • existing_version_file_value Kettle::Jem @@ -2207,7 +2311,7 @@

        Method List

      • -
      • +
      • existing_version_namespace Kettle::Jem @@ -2215,7 +2319,7 @@

        Method List

      • -
      • +
      • expand_framework_gemfile_pattern Kettle::Jem @@ -2223,7 +2327,7 @@

        Method List

      • -
      • +
      • expand_line_range_through_following_blanks Kettle::Jem @@ -2231,7 +2335,7 @@

        Method List

      • -
      • +
      • expected_non_templated_path? Kettle::Jem::Tasks::SelfTestTask @@ -2239,7 +2343,7 @@

        Method List

      • -
      • +
      • explicit_integration_enabled? Kettle::Jem @@ -2247,7 +2351,7 @@

        Method List

      • -
      • +
      • explicit_zero_runtime_floor? Kettle::Jem @@ -2255,7 +2359,7 @@

        Method List

      • -
      • +
      • extract_gemspec_development_dependencies Kettle::Jem @@ -2263,7 +2367,7 @@

        Method List

      • -
      • +
      • #facts Kettle::Jem::PluginContext @@ -2271,7 +2375,7 @@

        Method List

      • -
      • +
      • #failure_mode Kettle::Jem::DecisionPolicy @@ -2279,7 +2383,7 @@

        Method List

      • -
      • +
      • fallback_opencollective_org Kettle::Jem @@ -2287,7 +2391,7 @@

        Method List

      • -
      • +
      • falsey? Kettle::Jem::DecisionPolicy @@ -2295,7 +2399,7 @@

        Method List

      • -
      • +
      • falsey? Kettle::Jem::Tasks::TemplateTask @@ -2303,7 +2407,7 @@

        Method List

      • -
      • +
      • falsey_config? Kettle::Jem @@ -2311,7 +2415,7 @@

        Method List

      • -
      • +
      • #fetch_gem_info Kettle::Jem::RubyGemsResolver @@ -2319,7 +2423,7 @@

        Method List

      • -
      • +
      • #fetch_versions Kettle::Jem::RubyGemsResolver @@ -2327,7 +2431,7 @@

        Method List

      • -
      • +
      • #file Kettle::Jem::DecisionEvaluation @@ -2335,7 +2439,7 @@

        Method List

      • -
      • +
      • filter_recipe_pack Kettle::Jem @@ -2343,7 +2447,7 @@

        Method List

      • -
      • +
      • finalize_accepted_template_source Kettle::Jem @@ -2351,7 +2455,7 @@

        Method List

      • -
      • +
      • finalize_gemfile_template_source Kettle::Jem @@ -2359,7 +2463,7 @@

        Method List

      • -
      • +
      • finalize_github_workflow_template Kettle::Jem @@ -2367,7 +2471,7 @@

        Method List

      • -
      • +
      • finalize_rubocop_config Kettle::Jem @@ -2375,7 +2479,7 @@

        Method List

      • -
      • +
      • finalize_template_source_content Kettle::Jem @@ -2383,7 +2487,7 @@

        Method List

      • -
      • +
      • first_grapheme Kettle::Jem @@ -2391,7 +2495,7 @@

        Method List

      • -
      • +
      • first_grapheme Kettle::Jem::Tasks::InstallTask @@ -2399,7 +2503,7 @@

        Method List

      • -
      • +
      • followup_apply_after_config_bootstrap Kettle::Jem::Tasks::InstallTask @@ -2407,7 +2511,7 @@

        Method List

      • -
      • +
      • forge_facts Kettle::Jem @@ -2415,7 +2519,7 @@

        Method List

      • -
      • +
      • forge_template_tokens Kettle::Jem @@ -2423,7 +2527,7 @@

        Method List

      • -
      • +
      • forge_user_value Kettle::Jem @@ -2431,7 +2535,7 @@

        Method List

      • -
      • +
      • format_copyright_years Kettle::Jem @@ -2439,7 +2543,7 @@

        Method List

      • -
      • +
      • framework_gemfile_path Kettle::Jem @@ -2447,7 +2551,7 @@

        Method List

      • -
      • +
      • framework_matrix_appraisal_block Kettle::Jem @@ -2455,7 +2559,7 @@

        Method List

      • -
      • +
      • framework_matrix_appraisal_dependency_gemfiles Kettle::Jem @@ -2463,7 +2567,7 @@

        Method List

      • -
      • +
      • framework_matrix_appraisal_env_by_name Kettle::Jem @@ -2471,7 +2575,7 @@

        Method List

      • -
      • +
      • framework_matrix_appraisal_gemfile_path Kettle::Jem @@ -2479,7 +2583,7 @@

        Method List

      • -
      • +
      • framework_matrix_appraisal_gemfiles Kettle::Jem @@ -2487,7 +2591,7 @@

        Method List

      • -
      • +
      • framework_matrix_appraisal_name Kettle::Jem @@ -2495,7 +2599,7 @@

        Method List

      • -
      • +
      • framework_matrix_env Kettle::Jem @@ -2503,7 +2607,7 @@

        Method List

      • -
      • +
      • framework_matrix_replaced_appraisal_names Kettle::Jem @@ -2511,7 +2615,7 @@

        Method List

      • -
      • +
      • framework_matrix_version_entry Kettle::Jem @@ -2519,7 +2623,7 @@

        Method List

      • -
      • +
      • framework_matrix_workflow_enabled? Kettle::Jem @@ -2527,7 +2631,7 @@

        Method List

      • -
      • +
      • freeze_marker_blocks Kettle::Jem @@ -2535,7 +2639,7 @@

        Method List

      • -
      • +
      • from_env Kettle::Jem::DecisionPolicy @@ -2543,7 +2647,7 @@

        Method List

      • -
      • +
      • funding_platform_token_facts Kettle::Jem @@ -2551,7 +2655,7 @@

        Method List

      • -
      • +
      • funding_platform_token_value Kettle::Jem @@ -2559,7 +2663,7 @@

        Method List

      • -
      • +
      • funding_template_tokens Kettle::Jem @@ -2567,7 +2671,7 @@

        Method List

      • -
      • +
      • funding_urls Kettle::Jem @@ -2575,7 +2679,7 @@

        Method List

      • -
      • +
      • gem_major_token Kettle::Jem @@ -2583,7 +2687,7 @@

        Method List

      • -
      • +
      • gemfile_comment_line? Kettle::Jem @@ -2591,7 +2695,7 @@

        Method List

      • -
      • +
      • gemfile_conditional_node? Kettle::Jem @@ -2599,7 +2703,7 @@

        Method List

      • -
      • +
      • gemfile_declares_gem? Kettle::Jem @@ -2607,7 +2711,7 @@

        Method List

      • -
      • +
      • gemfile_dependency_insertion_line Kettle::Jem @@ -2615,7 +2719,7 @@

        Method List

      • -
      • +
      • gemfile_dependency_names Kettle::Jem @@ -2623,7 +2727,7 @@

        Method List

      • -
      • +
      • gemfile_dependency_statement? Kettle::Jem @@ -2631,7 +2735,7 @@

        Method List

      • -
      • +
      • gemfile_eval_bucket_entries Kettle::Jem @@ -2639,7 +2743,7 @@

        Method List

      • -
      • +
      • gemfile_eval_comment_start_line Kettle::Jem @@ -2647,7 +2751,7 @@

        Method List

      • -
      • +
      • gemfile_eval_paths Kettle::Jem @@ -2655,7 +2759,7 @@

        Method List

      • -
      • +
      • gemfile_gem_call_records Kettle::Jem @@ -2663,7 +2767,7 @@

        Method List

      • -
      • +
      • gemfile_nomono_dependency_names Kettle::Jem @@ -2671,7 +2775,7 @@

        Method List

      • -
      • +
      • gemfile_paragraphs Kettle::Jem @@ -2679,7 +2783,7 @@

        Method List

      • -
      • +
      • gemfile_percent_w_names Kettle::Jem @@ -2687,7 +2791,7 @@

        Method List

      • -
      • +
      • gemfile_policy_operations Kettle::Jem @@ -2695,7 +2799,7 @@

        Method List

      • -
      • +
      • gemfile_workspace_override_node? Kettle::Jem @@ -2703,7 +2807,7 @@

        Method List

      • -
      • +
      • gemspec_assignment_field Kettle::Jem @@ -2711,7 +2815,7 @@

        Method List

      • -
      • +
      • gemspec_assignment_records Kettle::Jem @@ -2719,7 +2823,7 @@

        Method List

      • -
      • +
      • gemspec_assignment_value Kettle::Jem @@ -2727,7 +2831,7 @@

        Method List

      • -
      • +
      • gemspec_block_param Kettle::Jem @@ -2735,7 +2839,7 @@

        Method List

      • -
      • +
      • gemspec_dependency_call_kind Kettle::Jem @@ -2743,7 +2847,7 @@

        Method List

      • -
      • +
      • gemspec_dependency_from_record Kettle::Jem @@ -2751,7 +2855,7 @@

        Method List

      • -
      • +
      • gemspec_dependency_line_index Kettle::Jem @@ -2759,7 +2863,7 @@

        Method List

      • -
      • +
      • gemspec_dependency_line_key Kettle::Jem @@ -2767,7 +2871,7 @@

        Method List

      • -
      • +
      • gemspec_dependency_minimum_requirement_replacement Kettle::Jem @@ -2775,7 +2879,7 @@

        Method List

      • -
      • +
      • gemspec_dependency_names Kettle::Jem @@ -2783,7 +2887,7 @@

        Method List

      • -
      • +
      • gemspec_dependency_record_key Kettle::Jem @@ -2791,7 +2895,7 @@

        Method List

      • -
      • +
      • gemspec_dependency_record_version Kettle::Jem @@ -2799,7 +2903,7 @@

        Method List

      • -
      • +
      • gemspec_dependency_records Kettle::Jem @@ -2807,7 +2911,7 @@

        Method List

      • -
      • +
      • gemspec_dependency_requirements_satisfy_floor? Kettle::Jem @@ -2815,7 +2919,7 @@

        Method List

      • -
      • +
      • gemspec_dependency_section_heading_comment? Kettle::Jem @@ -2823,7 +2927,7 @@

        Method List

      • -
      • +
      • gemspec_dependency_sort_key Kettle::Jem @@ -2831,7 +2935,7 @@

        Method List

      • -
      • +
      • gemspec_dependency_source_newer? Kettle::Jem @@ -2839,7 +2943,7 @@

        Method List

      • -
      • +
      • gemspec_dependency_sync_step Kettle::Jem::Tasks::InstallTask @@ -2847,7 +2951,7 @@

        Method List

      • -
      • +
      • gemspec_end_line Kettle::Jem @@ -2855,7 +2959,7 @@

        Method List

      • -
      • +
      • gemspec_field_receiver_and_name Kettle::Jem @@ -2863,7 +2967,7 @@

        Method List

      • -
      • +
      • gemspec_files_array_collection_source Kettle::Jem @@ -2871,7 +2975,7 @@

        Method List

      • -
      • +
      • gemspec_files_child_collection_record Kettle::Jem @@ -2879,7 +2983,7 @@

        Method List

      • -
      • +
      • gemspec_files_collection_body_source Kettle::Jem @@ -2887,7 +2991,7 @@

        Method List

      • -
      • +
      • gemspec_files_collection_element_nodes Kettle::Jem @@ -2895,7 +2999,7 @@

        Method List

      • -
      • +
      • gemspec_files_collection_entry_key Kettle::Jem @@ -2903,7 +3007,7 @@

        Method List

      • -
      • +
      • gemspec_files_collection_entry_node? Kettle::Jem @@ -2911,7 +3015,7 @@

        Method List

      • -
      • +
      • gemspec_files_collection_group_source Kettle::Jem @@ -2919,7 +3023,7 @@

        Method List

      • -
      • +
      • gemspec_files_collection_groups Kettle::Jem @@ -2927,7 +3031,7 @@

        Method List

      • -
      • +
      • gemspec_files_collection_has_nonliteral_entries? Kettle::Jem @@ -2935,7 +3039,7 @@

        Method List

      • -
      • +
      • gemspec_files_collection_has_package_metadata_splat? Kettle::Jem @@ -2943,7 +3047,7 @@

        Method List

      • -
      • +
      • gemspec_files_collection_kind Kettle::Jem @@ -2951,7 +3055,7 @@

        Method List

      • -
      • +
      • gemspec_files_collection_needs_concat? Kettle::Jem @@ -2959,7 +3063,7 @@

        Method List

      • -
      • +
      • gemspec_files_collection_parts Kettle::Jem @@ -2967,7 +3071,7 @@

        Method List

      • -
      • +
      • gemspec_files_concat_call_node? Kettle::Jem @@ -2975,7 +3079,7 @@

        Method List

      • -
      • +
      • gemspec_files_concat_collection_parts Kettle::Jem @@ -2983,7 +3087,7 @@

        Method List

      • -
      • +
      • gemspec_files_concat_collection_source Kettle::Jem @@ -2991,7 +3095,7 @@

        Method List

      • -
      • +
      • gemspec_files_dir_call_node? Kettle::Jem @@ -2999,7 +3103,7 @@

        Method List

      • -
      • +
      • gemspec_files_dir_collection_source Kettle::Jem @@ -3007,7 +3111,7 @@

        Method List

      • -
      • +
      • gemspec_files_group_collection_kind Kettle::Jem @@ -3015,7 +3119,7 @@

        Method List

      • -
      • +
      • gemspec_files_single_collection_parts Kettle::Jem @@ -3023,7 +3127,7 @@

        Method List

      • -
      • +
      • gemspec_files_splat_expression_key Kettle::Jem @@ -3031,7 +3135,7 @@

        Method List

      • -
      • +
      • gemspec_freeze_block_structurally_managed? Kettle::Jem @@ -3039,7 +3143,7 @@

        Method List

      • -
      • +
      • gemspec_grapheme_assignment_replacements Kettle::Jem::Tasks::InstallTask @@ -3047,7 +3151,7 @@

        Method List

      • -
      • +
      • gemspec_legacy_version_loader_block Kettle::Jem @@ -3055,7 +3159,7 @@

        Method List

      • -
      • +
      • gemspec_legacy_version_loader_preamble_line_range Kettle::Jem @@ -3063,7 +3167,7 @@

        Method List

      • -
      • +
      • gemspec_modern_version_loader_expression Kettle::Jem @@ -3071,7 +3175,7 @@

        Method List

      • -
      • +
      • gemspec_name Kettle::Jem::Tasks::InstallTask @@ -3079,7 +3183,7 @@

        Method List

      • -
      • +
      • gemspec_new_call Kettle::Jem @@ -3087,7 +3191,7 @@

        Method List

      • -
      • +
      • gemspec_package_file_includes_token Kettle::Jem @@ -3095,7 +3199,7 @@

        Method List

      • -
      • +
      • gemspec_path_declares_gem? Kettle::Jem @@ -3103,7 +3207,7 @@

        Method List

      • -
      • +
      • gemspec_policy_operations Kettle::Jem @@ -3111,7 +3215,7 @@

        Method List

      • -
      • +
      • gemspec_preserved_assignment_fields Kettle::Jem @@ -3119,7 +3223,7 @@

        Method List

      • -
      • +
      • gemspec_preserved_assignments Kettle::Jem @@ -3127,7 +3231,7 @@

        Method List

      • -
      • +
      • gemspec_project_emoji Kettle::Jem @@ -3135,7 +3239,7 @@

        Method List

      • -
      • +
      • gemspec_root_license_files_token Kettle::Jem @@ -3143,7 +3247,7 @@

        Method List

      • -
      • +
      • gemspec_runtime_dependency_names Kettle::Jem @@ -3151,7 +3255,7 @@

        Method List

      • -
      • +
      • gemspec_runtime_floor_token Kettle::Jem @@ -3159,7 +3263,7 @@

        Method List

      • -
      • +
      • gemspec_self_dependency_names Kettle::Jem @@ -3167,7 +3271,7 @@

        Method List

      • -
      • +
      • gemspec_template_facts Kettle::Jem @@ -3175,7 +3279,7 @@

        Method List

      • -
      • +
      • gemspec_template_tokens Kettle::Jem @@ -3183,7 +3287,7 @@

        Method List

      • -
      • +
      • gemspec_top_level_gem_version_node Kettle::Jem @@ -3191,7 +3295,7 @@

        Method List

      • -
      • +
      • gemspec_version_loader_policy_operation Kettle::Jem @@ -3199,7 +3303,7 @@

        Method List

      • -
      • +
      • generate Kettle::Jem::SelfTest::Manifest @@ -3207,7 +3311,7 @@

        Method List

      • -
      • +
      • generated_blocks_facts Kettle::Jem @@ -3215,7 +3319,7 @@

        Method List

      • -
      • +
      • generated_gemspec_metadata_file_group? Kettle::Jem @@ -3223,7 +3327,7 @@

        Method List

      • -
      • +
      • generated_kettle_config_without_templates? Kettle::Jem @@ -3231,7 +3335,7 @@

        Method List

      • -
      • +
      • generated_or_obsolete_github_workflow? Kettle::Jem @@ -3239,7 +3343,7 @@

        Method List

      • -
      • +
      • generated_runtime_artifact? Kettle::Jem::Tasks::SelfTestTask @@ -3247,7 +3351,7 @@

        Method List

      • -
      • +
      • generated_version_tree_source_url? Kettle::Jem @@ -3255,7 +3359,7 @@

        Method List

      • -
      • +
      • generic_bundler_gemspec_files_assignment? Kettle::Jem @@ -3263,7 +3367,7 @@

        Method List

      • -
      • +
      • generic_bundler_gemspec_files_command? Kettle::Jem @@ -3271,7 +3375,7 @@

        Method List

      • -
      • +
      • git_attribute_block_end Kettle::Jem::Tasks::InstallTask @@ -3279,7 +3383,7 @@

        Method List

      • -
      • +
      • git_attribute_block_start Kettle::Jem::Tasks::InstallTask @@ -3287,7 +3391,7 @@

        Method List

      • -
      • +
      • git_attribute_line_conflicts? Kettle::Jem::Tasks::InstallTask @@ -3295,7 +3399,7 @@

        Method List

      • -
      • +
      • git_capture Kettle::Jem @@ -3303,7 +3407,7 @@

        Method List

      • -
      • +
      • git_copyright_lines Kettle::Jem @@ -3311,7 +3415,7 @@

        Method List

      • -
      • +
      • git_driver_attribute_diagnostics Kettle::Jem::Tasks::InstallTask @@ -3319,7 +3423,7 @@

        Method List

      • -
      • +
      • git_driver_attribute_reason Kettle::Jem::Tasks::InstallTask @@ -3327,7 +3431,7 @@

        Method List

      • -
      • +
      • git_driver_attribute_status Kettle::Jem::Tasks::InstallTask @@ -3335,7 +3439,7 @@

        Method List

      • -
      • +
      • git_driver_attribute_updates Kettle::Jem::Tasks::InstallTask @@ -3343,7 +3447,7 @@

        Method List

      • -
      • +
      • git_driver_forge_warning_diagnostic Kettle::Jem::Tasks::InstallTask @@ -3351,7 +3455,7 @@

        Method List

      • -
      • +
      • git_driver_global_commands Kettle::Jem::Tasks::InstallTask @@ -3359,7 +3463,7 @@

        Method List

      • -
      • +
      • git_driver_global_config_checks Kettle::Jem::Tasks::InstallTask @@ -3367,7 +3471,7 @@

        Method List

      • -
      • +
      • git_driver_global_unset_commands Kettle::Jem::Tasks::InstallTask @@ -3375,7 +3479,7 @@

        Method List

      • -
      • +
      • git_driver_local_commands Kettle::Jem::Tasks::InstallTask @@ -3383,7 +3487,7 @@

        Method List

      • -
      • +
      • git_driver_local_config_checks Kettle::Jem::Tasks::InstallTask @@ -3391,7 +3495,7 @@

        Method List

      • -
      • +
      • git_driver_manifest Kettle::Jem::Tasks::InstallTask @@ -3399,7 +3503,7 @@

        Method List

      • -
      • +
      • git_driver_manifest_profile Kettle::Jem::Tasks::InstallTask @@ -3407,7 +3511,7 @@

        Method List

      • -
      • +
      • git_drivers_step Kettle::Jem::Tasks::InstallTask @@ -3415,7 +3519,7 @@

        Method List

      • -
      • +
      • git_hooks_executable_step Kettle::Jem @@ -3423,7 +3527,7 @@

        Method List

      • -
      • +
      • git_output Kettle::Jem @@ -3431,7 +3535,7 @@

        Method List

      • -
      • +
      • git_output Kettle::Jem::Tasks::InstallTask @@ -3439,7 +3543,7 @@

        Method List

      • -
      • +
      • git_preflight_report Kettle::Jem @@ -3447,7 +3551,7 @@

        Method List

      • -
      • +
      • git_remote_source_url Kettle::Jem @@ -3455,7 +3559,7 @@

        Method List

      • -
      • +
      • git_success? Kettle::Jem @@ -3463,7 +3567,7 @@

        Method List

      • -
      • +
      • git_success? Kettle::Jem::Tasks::InstallTask @@ -3471,7 +3575,7 @@

        Method List

      • -
      • +
      • git_toplevel Kettle::Jem::Tasks::InstallTask @@ -3479,7 +3583,7 @@

        Method List

      • -
      • +
      • git_version_file_value Kettle::Jem @@ -3487,7 +3591,7 @@

        Method List

      • -
      • +
      • git_worktree_prefix Kettle::Jem @@ -3495,7 +3599,7 @@

        Method List

      • -
      • +
      • git_worktree_root Kettle::Jem @@ -3503,7 +3607,7 @@

        Method List

      • -
      • +
      • github_actions_coverage_config Kettle::Jem @@ -3511,7 +3615,7 @@

        Method List

      • -
      • +
      • github_actions_coverage_enabled? Kettle::Jem @@ -3519,7 +3623,7 @@

        Method List

      • -
      • +
      • github_actions_coverage_steps Kettle::Jem @@ -3527,7 +3631,7 @@

        Method List

      • -
      • +
      • github_actions_custom_workflows Kettle::Jem @@ -3535,7 +3639,7 @@

        Method List

      • -
      • +
      • github_actions_exec_cmd Kettle::Jem @@ -3543,7 +3647,7 @@

        Method List

      • -
      • +
      • github_actions_framework_matrix Kettle::Jem @@ -3551,7 +3655,7 @@

        Method List

      • -
      • +
      • github_actions_obsolete_workflows Kettle::Jem @@ -3559,7 +3663,7 @@

        Method List

      • -
      • +
      • github_actions_pin_sync_step Kettle::Jem @@ -3567,7 +3671,7 @@

        Method List

      • -
      • +
      • github_actions_push_branches Kettle::Jem @@ -3575,7 +3679,7 @@

        Method List

      • -
      • +
      • github_actions_push_branches_yaml Kettle::Jem @@ -3583,7 +3687,7 @@

        Method List

      • -
      • +
      • github_actions_rspec_status_cache_step Kettle::Jem @@ -3591,7 +3695,7 @@

        Method List

      • -
      • +
      • github_actions_ruby_versions Kettle::Jem @@ -3599,7 +3703,7 @@

        Method List

      • -
      • +
      • github_actions_setup_ruby_steps Kettle::Jem @@ -3607,7 +3711,7 @@

        Method List

      • -
      • +
      • github_actions_standard_appraisal_gemfiles Kettle::Jem @@ -3615,7 +3719,7 @@

        Method List

      • -
      • +
      • github_actions_step_pins Kettle::Jem @@ -3623,7 +3727,7 @@

        Method List

      • -
      • +
      • github_funding_platform_urls Kettle::Jem @@ -3631,7 +3735,7 @@

        Method List

      • -
      • +
      • github_funding_urls Kettle::Jem @@ -3639,7 +3743,7 @@

        Method List

      • -
      • +
      • github_org_from_env Kettle::Jem::Tasks::InstallTask @@ -3647,7 +3751,7 @@

        Method List

      • -
      • +
      • github_org_from_origin Kettle::Jem::Tasks::InstallTask @@ -3655,7 +3759,7 @@

        Method List

      • -
      • +
      • github_org_from_url Kettle::Jem @@ -3663,7 +3767,7 @@

        Method List

      • -
      • +
      • github_workflow_action_pin_key Kettle::Jem @@ -3671,7 +3775,7 @@

        Method List

      • -
      • +
      • github_workflow_action_pin_line_record Kettle::Jem @@ -3679,7 +3783,7 @@

        Method List

      • -
      • +
      • github_workflow_action_pin_records Kettle::Jem @@ -3687,7 +3791,7 @@

        Method List

      • -
      • +
      • github_workflow_paths Kettle::Jem::Tasks::InstallTask @@ -3695,7 +3799,7 @@

        Method List

      • -
      • +
      • github_workflow_template_pin_warnings Kettle::Jem @@ -3703,7 +3807,7 @@

        Method List

      • -
      • +
      • github_workflow_template_recipe? Kettle::Jem @@ -3711,7 +3815,7 @@

        Method List

      • -
      • +
      • github_workflows_include? Kettle::Jem @@ -3719,7 +3823,7 @@

        Method List

      • -
      • +
      • gitlab_repo_url Kettle::Jem @@ -3727,7 +3831,7 @@

        Method List

      • -
      • +
      • guard_main_gemfile_runtime_workspace_overrides Kettle::Jem @@ -3735,7 +3839,7 @@

        Method List

      • -
      • +
      • handoff_argv Kettle::Jem::Tasks::InstallTask @@ -3743,7 +3847,7 @@

        Method List

      • -
      • +
      • #helpers Kettle::Jem::PluginContext @@ -3751,7 +3855,7 @@

        Method List

      • -
      • +
      • hook_templates_step Kettle::Jem::Tasks::InstallTask @@ -3759,7 +3863,7 @@

        Method List

      • -
      • +
      • #hooks Kettle::Jem::PluginRegistry @@ -3767,7 +3871,7 @@

        Method List

      • -
      • +
      • html_attribute_escape Kettle::Jem @@ -3775,7 +3879,7 @@

        Method List

      • -
      • +
      • http_url? Kettle::Jem @@ -3783,7 +3887,7 @@

        Method List

      • -
      • +
      • #id Kettle::Jem::DecisionEvaluation @@ -3791,7 +3895,7 @@

        Method List

      • -
      • +
      • ignored_selftest_artifact? Kettle::Jem::Tasks::SelfTestTask @@ -3799,7 +3903,7 @@

        Method List

      • -
      • +
      • ignored_tree_entry? Kettle::Jem::Tasks::SelfTestTask @@ -3807,7 +3911,7 @@

        Method List

      • -
      • +
      • inactive_packaged_template_cleanup_files Kettle::Jem @@ -3815,7 +3919,7 @@

        Method List

      • -
      • +
      • inactive_packaged_workflow? Kettle::Jem @@ -3823,7 +3927,7 @@

        Method List

      • -
      • +
      • inactive_packaged_workflow_cleanup_files Kettle::Jem @@ -3831,7 +3935,7 @@

        Method List

      • -
      • +
      • indent_source Kettle::Jem @@ -3839,7 +3943,7 @@

        Method List

      • -
      • +
      • #initialize Kettle::Jem::DecisionPolicy @@ -3847,7 +3951,7 @@

        Method List

      • -
      • +
      • #initialize Kettle::Jem::RubyGemsResolver @@ -3855,7 +3959,7 @@

        Method List

      • -
      • +
      • #initialize Kettle::Jem::PluginRegistry @@ -3863,7 +3967,7 @@

        Method List

      • -
      • +
      • #initialize Kettle::Jem::PluginRegistrar @@ -3871,7 +3975,7 @@

        Method List

      • -
      • +
      • #initialize Kettle::Jem::PluginContext @@ -3879,7 +3983,7 @@

        Method List

      • -
      • +
      • #initialize Kettle::Jem::PluginHelpers @@ -3887,7 +3991,7 @@

        Method List

      • -
      • +
      • #initialize Kettle::Jem::PluginOutput @@ -3895,6 +3999,14 @@

        Method List

      • +
      • +
        + #initialize + Kettle::Jem::EventStream +
        +
      • + +
      • inject_appraisal_gemfiles @@ -4536,6 +4648,14 @@

        Method List

      • +
        + locked_templating_gems + Kettle::Jem::Tasks::PrepareTask +
        +
      • + + +
      • lockfile_normalization_command Kettle::Jem::Tasks::InstallTask @@ -4543,7 +4663,7 @@

        Method List

      • -
      • +
      • main_gemfile_after_gemspec_line Kettle::Jem @@ -4551,7 +4671,7 @@

        Method List

      • -
      • +
      • main_gemfile_direct_sibling_block Kettle::Jem @@ -4559,7 +4679,7 @@

        Method List

      • -
      • +
      • main_gemfile_direct_sibling_records Kettle::Jem @@ -4567,7 +4687,7 @@

        Method List

      • -
      • +
      • main_gemfile_first_eval_gemfile_line Kettle::Jem @@ -4575,6 +4695,14 @@

        Method List

      • +
      • +
        + main_gemfile_nomono_bootstrap + Kettle::Jem +
        +
      • + +
      • main_gemfile_nomono_bootstrap_source @@ -5608,6 +5736,14 @@

        Method List

      • +
        + parse_event_types + Kettle::Jem +
        +
      • + + +
      • #parse_min_ruby Kettle::Jem::RubyGemsResolver @@ -5615,7 +5751,7 @@

        Method List

      • -
      • +
      • parse_options Kettle::Jem::CLI @@ -5623,7 +5759,7 @@

        Method List

      • -
      • +
      • parse_prompt_answers Kettle::Jem::DecisionPolicy @@ -5631,7 +5767,7 @@

        Method List

      • -
      • +
      • #phase Kettle::Jem::PluginRegistry::Hook @@ -5639,7 +5775,7 @@

        Method List

      • -
      • +
      • phase_for_recipe Kettle::Jem @@ -5647,7 +5783,7 @@

        Method List

      • -
      • +
      • #phase_reports Kettle::Jem::PluginContext @@ -5655,7 +5791,7 @@

        Method List

      • -
      • +
      • phase_reports_for Kettle::Jem @@ -5663,7 +5799,7 @@

        Method List

      • -
      • +
      • plan_project Kettle::Jem @@ -5671,7 +5807,7 @@

        Method List

      • -
      • +
      • plan_readme_style Kettle::Jem @@ -5679,7 +5815,7 @@

        Method List

      • -
      • +
      • plugin_handle Kettle::Jem::PluginLoader @@ -5687,7 +5823,7 @@

        Method List

      • -
      • +
      • plugin_lifecycle_diagnostic Kettle::Jem @@ -5695,7 +5831,7 @@

        Method List

      • -
      • +
      • #plugin_name Kettle::Jem::PluginRegistry::Hook @@ -5703,7 +5839,7 @@

        Method List

      • -
      • +
      • #plugin_name Kettle::Jem::PluginRegistrar @@ -5711,7 +5847,7 @@

        Method List

      • -
      • +
      • plugin_names_from_config Kettle::Jem @@ -5719,7 +5855,7 @@

        Method List

      • -
      • +
      • plugin_registry_for_project Kettle::Jem @@ -5727,7 +5863,7 @@

        Method List

      • -
      • +
      • plugin_require_path Kettle::Jem::PluginLoader @@ -5735,7 +5871,7 @@

        Method List

      • -
      • +
      • polyform_licenses? Kettle::Jem @@ -5743,7 +5879,7 @@

        Method List

      • -
      • +
      • post_apply_steps Kettle::Jem @@ -5751,7 +5887,7 @@

        Method List

      • -
      • +
      • post_template_project_fix_steps Kettle::Jem::Tasks::InstallTask @@ -5759,7 +5895,7 @@

        Method List

      • -
      • +
      • postprocess_readme_content Kettle::Jem @@ -5767,7 +5903,7 @@

        Method List

      • -
      • +
      • preferred_template_source Kettle::Jem @@ -5775,7 +5911,7 @@

        Method List

      • -
      • +
      • preferred_template_token_value Kettle::Jem @@ -5783,7 +5919,7 @@

        Method List

      • -
      • +
      • preflight_project! Kettle::Jem @@ -5791,7 +5927,7 @@

        Method List

      • -
      • +
      • preflight_ruby_syntax! Kettle::Jem @@ -5799,7 +5935,7 @@

        Method List

      • -
      • +
      • prepare_github_workflow_template Kettle::Jem @@ -5807,7 +5943,7 @@

        Method List

      • -
      • +
      • prepare_readme_template Kettle::Jem @@ -5815,7 +5951,7 @@

        Method List

      • -
      • +
      • present_template_token_value? Kettle::Jem @@ -5823,7 +5959,7 @@

        Method List

      • -
      • +
      • preserve_gemspec_dependency_lines Kettle::Jem @@ -5831,7 +5967,7 @@

        Method List

      • -
      • +
      • preserve_gemspec_freeze_blocks Kettle::Jem @@ -5839,7 +5975,7 @@

        Method List

      • -
      • +
      • preserve_github_workflow_project_settings Kettle::Jem @@ -5847,7 +5983,7 @@

        Method List

      • -
      • +
      • preserve_mise_project_settings Kettle::Jem @@ -5855,7 +5991,7 @@

        Method List

      • -
      • +
      • preserve_newer_github_workflow_action_pins Kettle::Jem @@ -5863,7 +5999,7 @@

        Method List

      • -
      • +
      • preserve_readme_front_sections Kettle::Jem @@ -5871,7 +6007,7 @@

        Method List

      • -
      • +
      • preserve_readme_h1 Kettle::Jem @@ -5879,7 +6015,7 @@

        Method List

      • -
      • +
      • preserve_readme_managed_block Kettle::Jem @@ -5887,7 +6023,7 @@

        Method List

      • -
      • +
      • preserve_readme_sections Kettle::Jem @@ -5895,7 +6031,7 @@

        Method List

      • -
      • +
      • previous_nonblank_line_number Kettle::Jem @@ -5903,7 +6039,7 @@

        Method List

      • -
      • +
      • print_debug_snapshot Kettle::Jem::CLI @@ -5911,7 +6047,7 @@

        Method List

      • -
      • +
      • print_help Kettle::Jem::CLI @@ -5919,7 +6055,7 @@

        Method List

      • -
      • +
      • print_result Kettle::Jem::CLI @@ -5927,7 +6063,7 @@

        Method List

      • -
      • +
      • print_version Kettle::Jem::CLI @@ -5935,7 +6071,7 @@

        Method List

      • -
      • +
      • prism_call_nodes Kettle::Jem @@ -5943,7 +6079,7 @@

        Method List

      • -
      • +
      • prism_parse_success Kettle::Jem @@ -5951,7 +6087,7 @@

        Method List

      • -
      • +
      • prism_ruby_merge_options Kettle::Jem @@ -5959,7 +6095,7 @@

        Method List

      • -
      • +
      • prism_subtree_contains_call? Kettle::Jem @@ -5967,7 +6103,7 @@

        Method List

      • -
      • +
      • prism_subtree_contains_simplecov_require? Kettle::Jem @@ -5975,7 +6111,7 @@

        Method List

      • -
      • +
      • prism_subtree_contains_string? Kettle::Jem @@ -5983,7 +6119,7 @@

        Method List

      • -
      • +
      • process Kettle::Jem::ReadmePostProcessor @@ -5991,7 +6127,7 @@

        Method List

      • -
      • +
      • process_result_adapter_failure? Kettle::Jem @@ -5999,7 +6135,7 @@

        Method List

      • -
      • +
      • project_appraisals_recording_enabled? Kettle::Jem @@ -6007,7 +6143,7 @@

        Method List

      • -
      • +
      • project_gemspec_declares_version_gem? Kettle::Jem @@ -6015,7 +6151,7 @@

        Method List

      • -
      • +
      • project_gemspec_metadata Kettle::Jem @@ -6023,7 +6159,7 @@

        Method List

      • -
      • +
      • project_gemspec_version Kettle::Jem @@ -6031,7 +6167,7 @@

        Method List

      • -
      • +
      • project_homepage_uri Kettle::Jem @@ -6039,7 +6175,7 @@

        Method List

      • -
      • +
      • project_namespace Kettle::Jem @@ -6047,7 +6183,7 @@

        Method List

      • -
      • +
      • project_recording_enabled? Kettle::Jem @@ -6055,7 +6191,7 @@

        Method List

      • -
      • +
      • project_relative_path Kettle::Jem @@ -6063,7 +6199,7 @@

        Method List

      • -
      • +
      • #project_root Kettle::Jem::PluginContext @@ -6071,7 +6207,7 @@

        Method List

      • -
      • +
      • project_runtime_config_value Kettle::Jem @@ -6079,7 +6215,7 @@

        Method List

      • -
      • +
      • project_runtime_facts Kettle::Jem @@ -6087,7 +6223,7 @@

        Method List

      • -
      • +
      • project_runtime_template_tokens Kettle::Jem @@ -6095,7 +6231,7 @@

        Method List

      • -
      • +
      • project_yard_host Kettle::Jem @@ -6103,7 +6239,7 @@

        Method List

      • -
      • +
      • #prompt Kettle::Jem::DecisionEvaluation @@ -6111,7 +6247,7 @@

        Method List

      • -
      • +
      • #prompt_answers Kettle::Jem::DecisionPolicy @@ -6119,7 +6255,7 @@

        Method List

      • -
      • +
      • #prompt_required Kettle::Jem::DecisionEvaluation @@ -6127,7 +6263,7 @@

        Method List

      • -
      • +
      • prune_appraisals_below_min_ruby Kettle::Jem @@ -6135,7 +6271,7 @@

        Method List

      • -
      • +
      • prune_appraisals_recording_entries Kettle::Jem @@ -6143,7 +6279,7 @@

        Method List

      • -
      • +
      • prune_empty_parent_directories Kettle::Jem @@ -6151,7 +6287,7 @@

        Method List

      • -
      • +
      • prune_github_workflow_matrix_by_min_ruby Kettle::Jem @@ -6159,7 +6295,7 @@

        Method List

      • -
      • +
      • prune_legacy_kettle_config_keys Kettle::Jem @@ -6167,7 +6303,7 @@

        Method List

      • -
      • +
      • prune_missing_workflow_link_definitions Kettle::Jem @@ -6175,7 +6311,7 @@

        Method List

      • -
      • +
      • prune_orphaned_workflow_inline_references Kettle::Jem::ReadmePostProcessor @@ -6183,7 +6319,7 @@

        Method List

      • -
      • +
      • prune_readme_integration_badges Kettle::Jem @@ -6191,7 +6327,7 @@

        Method List

      • -
      • +
      • prune_unused_compatibility_reference_definitions Kettle::Jem::ReadmePostProcessor @@ -6199,7 +6335,7 @@

        Method List

      • -
      • +
      • prune_unused_readme_logo_link_definitions Kettle::Jem @@ -6207,7 +6343,7 @@

        Method List

      • -
      • +
      • prune_unwanted_bundler_binstubs Kettle::Jem::Tasks::InstallTask @@ -6215,7 +6351,7 @@

        Method List

      • -
      • +
      • prune_workflow_matrix_item? Kettle::Jem @@ -6223,7 +6359,7 @@

        Method List

      • -
      • +
      • quality_config_path? Kettle::Jem @@ -6231,7 +6367,7 @@

        Method List

      • -
      • +
      • quiet_command Kettle::Jem::Tasks::InstallTask @@ -6239,7 +6375,7 @@

        Method List

      • -
      • +
      • quiet_command_env Kettle::Jem::Tasks::InstallTask @@ -6247,7 +6383,7 @@

        Method List

      • -
      • +
      • quiet_gemspec_reader_load Kettle::Jem @@ -6255,6 +6391,14 @@

        Method List

      • +
      • +
        + rake_task_available? + Kettle::Jem::Tasks::InstallTask +
        +
      • + +
      • rakefile_default_task_call? @@ -8705,7 +8849,7 @@

        Method List

      • @@ -8713,13 +8857,21 @@

        Method List

      • +
        + stringify_template_tokens + Kettle::Jem +
        +
      • + + +
      • strip_inherited_bundler_activation! Kettle::Jem::Tasks::InstallTask @@ -8727,7 +8879,7 @@

        Method List

      • -
      • +
      • strip_leading_decorative_graphemes Kettle::Jem @@ -8735,7 +8887,7 @@

        Method List

      • -
      • +
      • strip_leading_decorative_graphemes Kettle::Jem::Tasks::InstallTask @@ -8743,7 +8895,7 @@

        Method List

      • -
      • +
      • strip_orphaned_rake_task_requires Kettle::Jem @@ -8751,7 +8903,7 @@

        Method List

      • -
      • +
      • strip_readme_heading_adornment Kettle::Jem @@ -8759,7 +8911,7 @@

        Method List

      • -
      • +
      • summary Kettle::Jem::TemplateChecksums @@ -8767,7 +8919,7 @@

        Method List

      • -
      • +
      • summary Kettle::Jem::SelfTest::Reporter @@ -8775,7 +8927,7 @@

        Method List

      • -
      • +
      • symbolize_keys Kettle::Jem::DecisionPolicy @@ -8783,7 +8935,7 @@

        Method List

      • -
      • +
      • sync_kettle_config_documentation_comments Kettle::Jem @@ -8791,7 +8943,7 @@

        Method List

      • -
      • +
      • sync_kettle_config_env_overrides Kettle::Jem @@ -8799,7 +8951,7 @@

        Method List

      • -
      • +
      • sync_kettle_config_gemspec_strategy_lines! Kettle::Jem @@ -8807,7 +8959,7 @@

        Method List

      • -
      • +
      • sync_kettle_config_internal_values Kettle::Jem @@ -8815,7 +8967,7 @@

        Method List

      • -
      • +
      • sync_kettle_config_monorepo_subgem_profile Kettle::Jem @@ -8823,7 +8975,7 @@

        Method List

      • -
      • +
      • sync_readme_gemspec_grapheme Kettle::Jem::Tasks::InstallTask @@ -8831,7 +8983,7 @@

        Method List

      • -
      • +
      • sync_readme_top_logos_documentation_comment Kettle::Jem @@ -8839,7 +8991,7 @@

        Method List

      • -
      • +
      • synchronize_github_actions_ci Kettle::Jem @@ -8847,7 +8999,7 @@

        Method List

      • -
      • +
      • synchronize_github_actions_coverage_ci Kettle::Jem @@ -8855,7 +9007,7 @@

        Method List

      • -
      • +
      • synchronize_github_actions_framework_ci Kettle::Jem @@ -8863,7 +9015,7 @@

        Method List

      • -
      • +
      • synchronize_github_actions_framework_gemfile Kettle::Jem @@ -8871,7 +9023,7 @@

        Method List

      • -
      • +
      • synchronize_github_actions_workflow_snippets Kettle::Jem @@ -8879,7 +9031,7 @@

        Method List

      • -
      • +
      • synchronize_github_funding_yml Kettle::Jem @@ -8887,7 +9039,7 @@

        Method List

      • -
      • +
      • synchronize_managed_block Kettle::Jem @@ -8895,7 +9047,7 @@

        Method List

      • -
      • +
      • synchronize_readme Kettle::Jem @@ -8903,7 +9055,7 @@

        Method List

      • -
      • +
      • template_activation_config Kettle::Jem @@ -8911,7 +9063,7 @@

        Method List

      • -
      • +
      • template_diff_section Kettle::Jem::TemplatingReport @@ -8919,7 +9071,7 @@

        Method List

      • -
      • +
      • template_entries Kettle::Jem @@ -8927,7 +9079,7 @@

        Method List

      • -
      • +
      • template_entry_apply? Kettle::Jem @@ -8935,7 +9087,7 @@

        Method List

      • -
      • +
      • template_entry_paths Kettle::Jem @@ -8943,7 +9095,7 @@

        Method List

      • -
      • +
      • template_file_strategy_config Kettle::Jem @@ -8951,7 +9103,7 @@

        Method List

      • -
      • +
      • template_file_type Kettle::Jem @@ -8959,7 +9111,7 @@

        Method List

      • -
      • +
      • template_inventory_entries Kettle::Jem @@ -8967,7 +9119,7 @@

        Method List

      • -
      • +
      • template_inventory_target_path Kettle::Jem @@ -8975,7 +9127,7 @@

        Method List

      • -
      • +
      • template_keep_destination_path? Kettle::Jem @@ -8983,7 +9135,7 @@

        Method List

      • -
      • +
      • template_legacy_destination_cleanups Kettle::Jem @@ -8991,7 +9143,7 @@

        Method List

      • -
      • +
      • template_manifest Kettle::Jem @@ -8999,7 +9151,7 @@

        Method List

      • -
      • +
      • template_obsolete_license_cleanups Kettle::Jem @@ -9007,7 +9159,7 @@

        Method List

      • -
      • +
      • template_pattern_strategy_config Kettle::Jem @@ -9015,7 +9167,7 @@

        Method List

      • -
      • +
      • template_root Kettle::Jem @@ -9023,7 +9175,7 @@

        Method List

      • -
      • +
      • template_root_path Kettle::Jem @@ -9031,7 +9183,7 @@

        Method List

      • -
      • +
      • template_runtime_config Kettle::Jem @@ -9039,7 +9191,7 @@

        Method List

      • -
      • +
      • template_selection_for Kettle::Jem @@ -9047,7 +9199,7 @@

        Method List

      • -
      • +
      • template_source_display_path Kettle::Jem @@ -9055,7 +9207,7 @@

        Method List

      • -
      • +
      • template_source_preference Kettle::Jem @@ -9063,7 +9215,7 @@

        Method List

      • -
      • +
      • template_source_preferences Kettle::Jem @@ -9071,7 +9223,7 @@

        Method List

      • -
      • +
      • template_source_selection_reason Kettle::Jem @@ -9079,7 +9231,7 @@

        Method List

      • -
      • +
      • template_strategy_config Kettle::Jem @@ -9087,7 +9239,7 @@

        Method List

      • -
      • +
      • template_strategy_entry Kettle::Jem @@ -9095,7 +9247,7 @@

        Method List

      • -
      • +
      • template_tokens Kettle::Jem @@ -9103,7 +9255,7 @@

        Method List

      • -
      • +
      • template_version_gem_bootstrap_step Kettle::Jem @@ -9111,7 +9263,7 @@

        Method List

      • -
      • +
      • templating_guard_records Kettle::Jem @@ -9119,7 +9271,7 @@

        Method List

      • -
      • +
      • #timing Kettle::Jem::PluginRegistry::Hook @@ -9127,7 +9279,7 @@

        Method List

      • -
      • +
      • #to_h Kettle::Jem::DecisionEvaluation @@ -9135,7 +9287,7 @@

        Method List

      • -
      • +
      • #to_h Kettle::Jem::DecisionPolicy @@ -9143,7 +9295,7 @@

        Method List

      • -
      • +
      • token_config_values Kettle::Jem @@ -9151,7 +9303,7 @@

        Method List

      • -
      • +
      • token_placeholder? Kettle::Jem @@ -9159,7 +9311,7 @@

        Method List

      • -
      • +
      • toml_string_scalar_line_value Kettle::Jem @@ -9167,7 +9319,7 @@

        Method List

      • -
      • +
      • top_level_ruby_call_records Kettle::Jem @@ -9175,7 +9327,7 @@

        Method List

      • -
      • +
      • top_level_yaml_key_line? Kettle::Jem @@ -9183,7 +9335,7 @@

        Method List

      • -
      • +
      • trim_readme_compatibility_badges Kettle::Jem::Tasks::InstallTask @@ -9191,7 +9343,7 @@

        Method List

      • -
      • +
      • trim_trailing_blank_lines Kettle::Jem @@ -9199,7 +9351,7 @@

        Method List

      • -
      • +
      • truthy? Kettle::Jem::DecisionPolicy @@ -9207,7 +9359,7 @@

        Method List

      • -
      • +
      • truthy? Kettle::Jem::Tasks::TemplateTask @@ -9215,7 +9367,7 @@

        Method List

      • -
      • +
      • truthy_config? Kettle::Jem @@ -9223,7 +9375,7 @@

        Method List

      • -
      • +
      • uncomment_ruby_comment_line Kettle::Jem @@ -9231,7 +9383,7 @@

        Method List

      • -
      • +
      • unresolved_template_scan? Kettle::Jem @@ -9239,7 +9391,7 @@

        Method List

      • -
      • +
      • unsafe_git_driver_command_value? Kettle::Jem::Tasks::InstallTask @@ -9247,7 +9399,7 @@

        Method List

      • -
      • +
      • update_github_actions_pins Kettle::Jem @@ -9255,7 +9407,7 @@

        Method List

      • -
      • +
      • upsert_template_root_override Kettle::Jem::Tasks::SelfTestTask @@ -9263,7 +9415,7 @@

        Method List

      • -
      • +
      • valid_gem_version? Kettle::Jem @@ -9271,7 +9423,7 @@

        Method List

      • -
      • +
      • validate_bundle_binstub_location Kettle::Jem::Tasks::InstallTask @@ -9279,7 +9431,7 @@

        Method List

      • -
      • +
      • validate_git_driver_manifest! Kettle::Jem::Tasks::InstallTask @@ -9287,7 +9439,7 @@

        Method List

      • -
      • +
      • validate_git_driver_profile! Kettle::Jem::Tasks::InstallTask @@ -9295,7 +9447,7 @@

        Method List

      • -
      • +
      • validate_kettle_jem_config! Kettle::Jem @@ -9303,7 +9455,7 @@

        Method List

      • -
      • +
      • value_arg Kettle::Jem::Tasks::InstallTask @@ -9311,7 +9463,7 @@

        Method List

      • -
      • +
      • value_to_boolean Kettle::Jem::DecisionPolicy @@ -9319,7 +9471,7 @@

        Method List

      • -
      • +
      • version_gem_bootstrap_entrypoint_content Kettle::Jem @@ -9327,7 +9479,7 @@

        Method List

      • -
      • +
      • version_gem_bootstrap_step Kettle::Jem @@ -9335,7 +9487,7 @@

        Method List

      • -
      • +
      • version_gem_bootstrap_step Kettle::Jem::Tasks::InstallTask @@ -9343,7 +9495,7 @@

        Method List

      • -
      • +
      • version_gem_bootstrap_step_for_paths Kettle::Jem @@ -9351,7 +9503,7 @@

        Method List

      • -
      • +
      • version_gem_class_eval_block Kettle::Jem @@ -9359,7 +9511,7 @@

        Method List

      • -
      • +
      • version_gem_class_eval_call? Kettle::Jem @@ -9367,7 +9519,7 @@

        Method List

      • -
      • +
      • version_gem_cleanup_step Kettle::Jem @@ -9375,7 +9527,7 @@

        Method List

      • -
      • +
      • version_gem_entrypoint_file_content Kettle::Jem @@ -9383,7 +9535,7 @@

        Method List

      • -
      • +
      • version_gem_facts_for_project Kettle::Jem @@ -9391,7 +9543,7 @@

        Method List

      • -
      • +
      • version_gem_free_entrypoint_content Kettle::Jem @@ -9399,7 +9551,7 @@

        Method List

      • -
      • +
      • version_gem_require_insertion_index Kettle::Jem @@ -9407,7 +9559,7 @@

        Method List

      • -
      • +
      • version_gem_runtime_compatible? Kettle::Jem @@ -9415,7 +9567,7 @@

        Method List

      • -
      • +
      • version_gem_signature_file_content Kettle::Jem @@ -9423,7 +9575,7 @@

        Method List

      • -
      • +
      • version_gem_template_entries Kettle::Jem @@ -9431,7 +9583,7 @@

        Method List

      • -
      • +
      • version_gem_template_target_path Kettle::Jem @@ -9439,7 +9591,7 @@

        Method List

      • -
      • +
      • version_gem_template_target_path? Kettle::Jem @@ -9447,7 +9599,7 @@

        Method List

      • -
      • +
      • version_gem_template_target_path_for_project Kettle::Jem @@ -9455,7 +9607,7 @@

        Method List

      • -
      • +
      • version_gem_template_tokens Kettle::Jem @@ -9463,7 +9615,7 @@

        Method List

      • -
      • +
      • version_gem_version_file_content Kettle::Jem @@ -9471,7 +9623,7 @@

        Method List

      • -
      • +
      • #version_info Kettle::Jem::RubyGemsResolver @@ -9479,7 +9631,7 @@

        Method List

      • -
      • +
      • version_spec_require_insertion_index Kettle::Jem @@ -9487,7 +9639,7 @@

        Method List

      • -
      • +
      • versioned_engine_badge_compatible? Kettle::Jem::ReadmePostProcessor @@ -9495,7 +9647,7 @@

        Method List

      • -
      • +
      • versioned_gem_name_parts Kettle::Jem @@ -9503,7 +9655,7 @@

        Method List

      • -
      • +
      • versioned_gem_name_update_candidate? Kettle::Jem @@ -9511,7 +9663,7 @@

        Method List

      • -
      • +
      • #versions Kettle::Jem::RubyGemsResolver @@ -9519,7 +9671,7 @@

        Method List

      • -
      • +
      • #warning Kettle::Jem::PluginOutput @@ -9527,6 +9679,14 @@

        Method List

      • +
      • +
        + with_event_phase + Kettle::Jem +
        +
      • + +
      • workflow_definition_base_url diff --git a/gems/kettle-jem/docs/top-level-namespace.html b/gems/kettle-jem/docs/top-level-namespace.html index 108e4316a..a0264fc3f 100644 --- a/gems/kettle-jem/docs/top-level-namespace.html +++ b/gems/kettle-jem/docs/top-level-namespace.html @@ -102,7 +102,7 @@

        Defined Under Namespace

        diff --git a/gems/kettle-jem/lib/kettle/jem.rb b/gems/kettle-jem/lib/kettle/jem.rb index 316393113..65410332c 100644 --- a/gems/kettle-jem/lib/kettle/jem.rb +++ b/gems/kettle-jem/lib/kettle/jem.rb @@ -3534,7 +3534,7 @@ def with_event_phase(events, phase, payload = {}) end def emit_phase_event(events, phase, status:, **payload) - event_type = status == "started" ? "phase_start" : "phase_finish" + event_type = (status == "started") ? "phase_start" : "phase_finish" emit_event(events, event_type, payload.merge(phase: phase.to_s, status: status)) end @@ -9290,7 +9290,7 @@ def monorepo_subgem_template_entries_for_profile(gemspec_path, profile) project_root = File.dirname(File.expand_path(gemspec_path.to_s)) template_inventory_entries(project_root, PACKAGED_TEMPLATE_ROOT).dup else - MONOREPO_SUBGEM_TEMPLATE_ENTRIES.dup + (MONOREPO_SUBGEM_TEMPLATE_ENTRIES + PACKAGED_MODULAR_GEMFILE_TEMPLATE_ENTRIES).uniq end end diff --git a/gems/kettle-jem/lib/kettle/jem/tasks/install_task.rb b/gems/kettle-jem/lib/kettle/jem/tasks/install_task.rb index 8ad2543f9..33e07886a 100644 --- a/gems/kettle-jem/lib/kettle/jem/tasks/install_task.rb +++ b/gems/kettle-jem/lib/kettle/jem/tasks/install_task.rb @@ -79,9 +79,7 @@ def followup_apply_after_config_bootstrap(project_root, env:, run_options:, repo def config_bootstrap_changed?(report) report.fetch(:recipe_reports, []).any? do |recipe_report| - recipe_report.fetch(:relative_path, nil) == Kettle::Jem::KETTLE_CONFIG_PATH && - recipe_report.fetch(:recipe_name, nil) == "kettle_config_bootstrap" && - recipe_report.fetch(:changed, false) + recipe_report.fetch(:relative_path, nil) == Kettle::Jem::KETTLE_CONFIG_PATH && recipe_report.fetch(:changed, false) end end @@ -671,6 +669,13 @@ def rubocop_gradual_autocorrect_step(project_root) reason: "missing_rake_entrypoint" } end + unless rake_task_available?(project_root, "rubocop_gradual:autocorrect") + return { + name: "rubocop_gradual_autocorrect", + status: "skipped", + reason: "missing_rubocop_gradual_task" + } + end { name: "rubocop_gradual_autocorrect", @@ -684,6 +689,13 @@ def rubocop_gradual_autocorrect_command ["sh", "-c", "rm -f .rubocop_gradual.lock && bin/rake rubocop_gradual:autocorrect"] end + def rake_task_available?(project_root, task_name) + stdout, _stderr, status = Open3.capture3("bin/rake", "--tasks", chdir: project_root.to_s) + status.success? && stdout.lines.any? { |line| line.include?(task_name.to_s) } + rescue Errno::EACCES, Errno::ENOENT + false + end + def rubocop_lts_local_branch_step(report, env:, project_root: nil) local_root = rubocop_lts_local_root(env) return nil unless local_root @@ -1012,6 +1024,7 @@ def setup_command_env(project_root, env) if File.file?(gemfile) || (!requested_gemfile.empty? && same_path?(requested_gemfile, gemfile)) command_env["BUNDLE_GEMFILE"] = gemfile end + command_env["K_JEM_TEMPLATING"] = "false" apply_kettle_family_local_install_env!(command_env) command_env end diff --git a/gems/kettle-jem/spec/thin_slice_spec.rb b/gems/kettle-jem/spec/thin_slice_spec.rb index 9c1a9d12e..882e793ce 100644 --- a/gems/kettle-jem/spec/thin_slice_spec.rb +++ b/gems/kettle-jem/spec/thin_slice_spec.rb @@ -3186,7 +3186,7 @@ module Version end end - it "bootstraps a monorepo subgem template profile with package-owned entries only" do + it "bootstraps a monorepo subgem template profile with package-owned entries and Gemfile support files" do tmp_root = File.join(__dir__, "tmp") FileUtils.mkdir_p(tmp_root) Dir.mktmpdir("kettle-jem-config-bootstrap-monorepo-subgem", tmp_root) do |root| @@ -3219,7 +3219,15 @@ module Version "README.md", {"source" => "gem.gemspec", "target" => "tree_haver.gemspec"}, "LICENSE.md", - "Gemfile" + "Gemfile", + "gemfiles/modular/coverage.gemfile", + "gemfiles/modular/debug.gemfile", + "gemfiles/modular/documentation.gemfile", + "gemfiles/modular/optional.gemfile", + "gemfiles/modular/style.gemfile", + "gemfiles/modular/templating.gemfile", + "gemfiles/modular/templating_local.gemfile", + "gemfiles/modular/x_std_libs.gemfile" ) expect(config).to include( " - source: lib/gem/version.rb\n " \ @@ -4570,10 +4578,8 @@ module Version ) expect(install.fetch(:install_steps)).to include( name: "rubocop_gradual_autocorrect", - command: ["sh", "-c", "rm -f .rubocop_gradual.lock && bin/rake rubocop_gradual:autocorrect"], - status: "succeeded", - exitstatus: 0, - reason: "executed" + status: "skipped", + reason: "missing_rubocop_gradual_task" ) expect(install.fetch(:install_steps)).to include( name: "bundled_handoff", @@ -4594,7 +4600,7 @@ module Version "bin_setup_executable" => "updated", "bin_setup" => "succeeded", "bundle_binstubs" => "succeeded", - "rubocop_gradual_autocorrect" => "succeeded", + "rubocop_gradual_autocorrect" => "skipped", "bundle_binstub_pruning" => "already_current" ) )) @@ -4612,10 +4618,9 @@ module Version expect(command_names).to include( ["bin/setup", "--quiet"], curated_binstubs, - autocorrect_command, handoff_command ) - expect(command_names.index(autocorrect_command)).to be < command_names.index(handoff_command) + expect(command_names).not_to include(autocorrect_command) expect(commands).to all(include(chdir: root, quiet: true)) expect(commands.map { |entry| entry.fetch(:env) }).to all(include( "BUNDLE_GEMFILE" => nil, @@ -5064,9 +5069,7 @@ module Version expect(Kettle::Jem::Tasks::InstallTask.setup_command_env(root, env)).to include( "BUNDLE_GEMFILE" => File.join(root, "Gemfile"), - "K_JEM_TEMPLATING" => "true", - "STRUCTUREDMERGE_DEV" => marker.fetch("members_root"), - "KETTLE_DEV_DEV" => File.join(root, "kettle-dev") + "K_JEM_TEMPLATING" => "false" ) disabled_env = env.merge( @@ -5075,13 +5078,48 @@ module Version ) expect(Kettle::Jem::Tasks::InstallTask.setup_command_env(root, disabled_env)).to include( "BUNDLE_GEMFILE" => File.join(root, "Gemfile"), - "K_JEM_TEMPLATING" => "true", + "K_JEM_TEMPLATING" => "false", "STRUCTUREDMERGE_DEV" => "false", "KETTLE_DEV_DEV" => "false" ) end end + it "runs install follow-up templating whenever the canonical config changes" do + report = { + recipe_reports: [ + { + relative_path: Kettle::Jem::KETTLE_CONFIG_PATH, + recipe_name: "template_source_application_structuredmerge_kettle_jem_yml", + changed: true + } + ] + } + + expect(Kettle::Jem::Tasks::InstallTask.config_bootstrap_changed?(report)).to be(true) + end + + it "skips rubocop gradual autocorrect when the destination Rakefile does not define the task" do + tmp_root = File.join(__dir__, "tmp") + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-install-missing-rubocop-gradual-task", tmp_root) do |root| + write_tree(root, { + "Rakefile" => "task default: []\n", + "bin/rake" => <<~SH + #!/usr/bin/env sh + echo "rake default" + SH + }) + FileUtils.chmod("+x", File.join(root, "bin", "rake")) + + expect(Kettle::Jem::Tasks::InstallTask.rubocop_gradual_autocorrect_step(root)).to eq( + name: "rubocop_gradual_autocorrect", + status: "skipped", + reason: "missing_rubocop_gradual_task" + ) + end + end + it "honors install ENV skip-commit and normalizes lockfiles without templating env overrides" do tmp_root = File.join(__dir__, "tmp") FileUtils.mkdir_p(tmp_root) From f0764af9e9b9810160e5f1551078d06f82026bc8 Mon Sep 17 00:00:00 2001 From: "Peter H. Boling" Date: Mon, 20 Jul 2026 01:24:28 -0600 Subject: [PATCH 063/188] Prune disabled engine jobs from workflow templates Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- gems/kettle-jem/CHANGELOG.md | 3 + gems/kettle-jem/lib/kettle/jem.rb | 61 ++++++++++++++++++- .../.github/workflows/dep-heads.yml.example | 3 +- gems/kettle-jem/spec/thin_slice_spec.rb | 40 ++++++++++++ 4 files changed, 102 insertions(+), 5 deletions(-) diff --git a/gems/kettle-jem/CHANGELOG.md b/gems/kettle-jem/CHANGELOG.md index 57a7507e4..cda6130ac 100644 --- a/gems/kettle-jem/CHANGELOG.md +++ b/gems/kettle-jem/CHANGELOG.md @@ -20,6 +20,9 @@ Please file a bug if you notice a violation of semantic versioning. ### Fixed +- Generated multi-engine workflow files, including `heads.yml` and + `dep-heads.yml`, now omit JRuby and TruffleRuby jobs when the project config + declares an MRI-only `engines` list. - `kettle-jem`'s default development bundle now pins `tree_sitter_language_pack` to the StructuredMerge fork branch that exposes the Ruby parser API, while still allowing templating runs to override it with diff --git a/gems/kettle-jem/lib/kettle/jem.rb b/gems/kettle-jem/lib/kettle/jem.rb index 65410332c..1cbecc5d6 100644 --- a/gems/kettle-jem/lib/kettle/jem.rb +++ b/gems/kettle-jem/lib/kettle/jem.rb @@ -5046,10 +5046,65 @@ def replace_toml_string_scalar_line(content, key, value) end def prepare_github_workflow_template(content, recipe, facts) - return content unless recipe.fetch(:target_path).to_s == ".github/workflows/framework-ci.yml" - return content if facts.to_h.dig(:ci, :framework_matrix).to_h.empty? + processed = prune_disabled_github_workflow_engine_jobs(content, facts) + return processed unless recipe.fetch(:target_path).to_s == ".github/workflows/framework-ci.yml" + return processed if facts.to_h.dig(:ci, :framework_matrix).to_h.empty? - synchronize_github_actions_framework_ci(content, facts) + synchronize_github_actions_framework_ci(processed, facts) + end + + def prune_disabled_github_workflow_engine_jobs(content, facts) + engines = facts.to_h.dig(:rubygems, :engines) + return content if engines.nil? + + enabled = Array(engines).map { |engine| engine.to_s.strip.downcase }.reject(&:empty?).to_set + return content if enabled.empty? + + disabled_job_keys = { + "jruby" => "jruby", + "truffleruby" => "truffleruby" + }.except(*enabled).values + return content if disabled_job_keys.empty? + + delete_yaml_top_level_mapping_entries( + content, + parent_key: "jobs", + child_keys: disabled_job_keys + ) + rescue Psych::Exception + content + end + + def delete_yaml_top_level_mapping_entries(content, parent_key:, child_keys:) + document = Psych.parse(content.to_s) + root = document&.root + return content unless root.is_a?(Psych::Nodes::Mapping) + + parent = yaml_mapping_value(root, parent_key) + return content unless parent.is_a?(Psych::Nodes::Mapping) + + child_key_set = Array(child_keys).map(&:to_s).to_set + ranges = parent.children.each_slice(2).filter_map do |key_node, value_node| + next unless child_key_set.include?(key_node.value.to_s) + + key_node.start_line..value_node.end_line + end + return content if ranges.empty? + + remove_line_ranges(content, ranges) + end + + def yaml_mapping_value(mapping, key) + mapping.children.each_slice(2) do |key_node, value_node| + return value_node if key_node.value.to_s == key.to_s + end + + nil + end + + def remove_line_ranges(content, ranges) + delete_lines = ranges.flat_map(&:to_a).to_set + content.to_s.lines.each_with_index.reject { |_line, index| delete_lines.include?(index) }.map(&:first).join end def preserve_github_workflow_project_settings(recipe, content, destination_content, project_root:) diff --git a/gems/kettle-jem/lib/kettle/jem/templates/.github/workflows/dep-heads.yml.example b/gems/kettle-jem/lib/kettle/jem/templates/.github/workflows/dep-heads.yml.example index 4d33cf505..359bea30a 100644 --- a/gems/kettle-jem/lib/kettle/jem/templates/.github/workflows/dep-heads.yml.example +++ b/gems/kettle-jem/lib/kettle/jem/templates/.github/workflows/dep-heads.yml.example @@ -1,5 +1,4 @@ -# Targets the evergreen latest release of ruby, truffleruby, and jruby -# and tests against the HEAD of runtime dependencies +# Targets enabled evergreen Ruby engines and tests against the HEAD of runtime dependencies name: Runtime Deps @ HEAD permissions: diff --git a/gems/kettle-jem/spec/thin_slice_spec.rb b/gems/kettle-jem/spec/thin_slice_spec.rb index 882e793ce..505912a54 100644 --- a/gems/kettle-jem/spec/thin_slice_spec.rb +++ b/gems/kettle-jem/spec/thin_slice_spec.rb @@ -1345,6 +1345,46 @@ end end + it "prunes disabled engine jobs from packaged multi-engine workflows" do + tmp_root = File.join(__dir__, "tmp") + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-workflow-job-prune-slice", tmp_root) do |root| + write_tree(root, { + "example.gemspec" => <<~RUBY, + Gem::Specification.new do |spec| + spec.name = "example" + spec.summary = "Example gem" + spec.required_ruby_version = ">= 4.0.0" + end + RUBY + ".kettle-jem.yml" => <<~YAML + engines: + - ruby + templates: + root: packaged + apply: true + entries: + - .github/workflows/heads.yml + - .github/workflows/dep-heads.yml + YAML + }) + + plan = described_class.plan_project(root, env: {}) + reports = plan.fetch(:recipe_reports).each_with_object({}) do |report, index| + index[report.fetch(:relative_path)] = report + end + + %w[.github/workflows/heads.yml .github/workflows/dep-heads.yml].each do |path| + content = reports.fetch(path).fetch(:final_content) + workflow = YAML.safe_load(content, permitted_classes: [], aliases: true) + + expect(workflow.fetch("jobs").keys).to eq(["ruby"]) + expect(content).not_to include(" truffleruby:") + expect(content).not_to include(" jruby:") + end + end + end + it "prunes versioned engine workflows below minimum Ruby compatibility" do tmp_root = File.join(__dir__, "tmp") FileUtils.mkdir_p(tmp_root) From 1ffbe35a2eb49772d901eef06c7bcc65f06c24f4 Mon Sep 17 00:00:00 2001 From: "Peter H. Boling" Date: Mon, 20 Jul 2026 01:46:40 -0600 Subject: [PATCH 064/188] Normalize Ruby Git diff driver naming Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- gems/kettle-jem/CHANGELOG.md | 2 ++ .../jem/templates/.structuredmerge/git-drivers.toml.example | 6 +++--- gems/kettle-jem/spec/thin_slice_spec.rb | 6 +++--- 3 files changed, 8 insertions(+), 6 deletions(-) diff --git a/gems/kettle-jem/CHANGELOG.md b/gems/kettle-jem/CHANGELOG.md index cda6130ac..dd1fae098 100644 --- a/gems/kettle-jem/CHANGELOG.md +++ b/gems/kettle-jem/CHANGELOG.md @@ -20,6 +20,8 @@ Please file a bug if you notice a violation of semantic versioning. ### Fixed +- Generated semantic diff Git driver configuration now consistently uses the + installed `smorg-rb` executable and Git diff driver name for Ruby diffs. - Generated multi-engine workflow files, including `heads.yml` and `dep-heads.yml`, now omit JRuby and TruffleRuby jobs when the project config declares an MRI-only `engines` list. diff --git a/gems/kettle-jem/lib/kettle/jem/templates/.structuredmerge/git-drivers.toml.example b/gems/kettle-jem/lib/kettle/jem/templates/.structuredmerge/git-drivers.toml.example index e0dec6b32..07ef3a40f 100644 --- a/gems/kettle-jem/lib/kettle/jem/templates/.structuredmerge/git-drivers.toml.example +++ b/gems/kettle-jem/lib/kettle/jem/templates/.structuredmerge/git-drivers.toml.example @@ -13,12 +13,12 @@ description = "Use StructuredMerge external diff drivers for local CLI diffs." [[profiles.semantic-diff.attributes]] pattern = "*.rb" -diff = "smorg-ruby" +diff = "smorg-rb" [[profiles.semantic-diff.git_config]] scope = "global" -key = "diff.smorg-ruby.command" -value = "smorg-ruby diff-driver" +key = "diff.smorg-rb.command" +value = "smorg-rb diff-driver" [profiles.textconv-normalized] description = "Use one-way normalized text projections for package/config review." diff --git a/gems/kettle-jem/spec/thin_slice_spec.rb b/gems/kettle-jem/spec/thin_slice_spec.rb index 505912a54..340646119 100644 --- a/gems/kettle-jem/spec/thin_slice_spec.rb +++ b/gems/kettle-jem/spec/thin_slice_spec.rb @@ -7507,12 +7507,12 @@ module Example [[profiles.semantic-diff.attributes]] pattern = "*.rb" - diff = "smorg-ruby" + diff = "smorg-rb" [[profiles.semantic-diff.git_config]] scope = "global" - key = "diff.smorg-ruby.command" - value = "smorg-ruby diff-driver" + key = "diff.smorg-rb.command" + value = "smorg-rb diff-driver" [profiles.textconv-normalized] description = "Template-only profile" From 9e478f41225ee1e33218b04a538f9f16596ecf95 Mon Sep 17 00:00:00 2001 From: "Peter H. Boling" Date: Mon, 20 Jul 2026 01:54:30 -0600 Subject: [PATCH 065/188] Normalize smorg-rb git driver naming Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- CONTRIBUTING.md | 2 +- gems/citrus-toml-merge/spec/fixtures_integration_spec.rb | 4 ++-- gems/kettle-jem/spec/thin_slice_spec.rb | 4 ++-- gems/parslet-toml-merge/spec/fixtures_integration_spec.rb | 4 ++-- gems/toml-merge/spec/fixtures_integration_spec.rb | 4 ++-- 5 files changed, 9 insertions(+), 9 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 581f09b2f..1c039b23f 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -116,7 +116,7 @@ Troubleshooting Git diffs - Use `git diff --no-ext-diff` to compare against Git's built-in diff output. - Use `git diff --no-textconv` when a textconv projection obscures the raw file bytes you need to inspect. - If Git reports a missing `smorg-*` executable, rerun `bundle install` and the setup command above, then check `git config --local --get-regexp '^diff\.smorg-'`. -- To remove managed local entries, run `K_JEM_TEMPLATING=true kettle-jem install --undo`; remove global command registrations with `git config --global --unset-all diff.smorg-ruby.command`. +- To remove managed local entries, run `K_JEM_TEMPLATING=true kettle-jem install --undo`; remove global command registrations with `git config --global --unset-all diff.smorg-rb.command`. For a quick starting point, this repository’s `mise.toml` defines the shared defaults, and `.env.local` can override them locally. Copy `.env.local.example` to `.env.local`, use `KEY=value` lines, and either activate `mise` in your shell or run commands through `mise exec -C /path/to/project -- ...`. diff --git a/gems/citrus-toml-merge/spec/fixtures_integration_spec.rb b/gems/citrus-toml-merge/spec/fixtures_integration_spec.rb index 845508dae..5871a51a9 100644 --- a/gems/citrus-toml-merge/spec/fixtures_integration_spec.rb +++ b/gems/citrus-toml-merge/spec/fixtures_integration_spec.rb @@ -124,7 +124,7 @@ def json_ready(value) [[profiles.semantic-diff.attributes]] pattern = "*.rb" - diff = "smorg-ruby" + diff = "smorg-rb" [profiles.textconv-normalized] description = "Template-only profile" @@ -150,7 +150,7 @@ def json_ready(value) expect(result.fetch(:output)).to include('diff = "smorg-rb"') expect(result.fetch(:output)).to include('description = "Destination driver"') expect(result.fetch(:output)).to include('[[profiles.textconv-normalized.attributes]]') - expect(result.fetch(:output)).not_to include('smorg-ruby') + expect(result.fetch(:output)).not_to include('smorg-rb') end it 'conforms to the provider named-suite plan and manifest-report fixtures' do diff --git a/gems/kettle-jem/spec/thin_slice_spec.rb b/gems/kettle-jem/spec/thin_slice_spec.rb index 340646119..fc4e41bf4 100644 --- a/gems/kettle-jem/spec/thin_slice_spec.rb +++ b/gems/kettle-jem/spec/thin_slice_spec.rb @@ -5863,7 +5863,7 @@ module Version expect(content).to include('diff = "smorg-rb"') expect(content).to include('key = "diff.smorg-rb.command"') expect(content).to include('value = "smorg-rb diff-driver"') - expect(content).not_to include("smorg-ruby") + expect(content).not_to include("smorg-rb") end end @@ -7533,7 +7533,7 @@ module Example expect(content).to include('key = "diff.smorg-rb.command"') expect(content).to include('value = "smorg-rb diff-driver"') expect(content).to include("[profiles.textconv-normalized]") - expect(content).not_to include("smorg-ruby") + expect(content).not_to include("smorg-rb") end end diff --git a/gems/parslet-toml-merge/spec/fixtures_integration_spec.rb b/gems/parslet-toml-merge/spec/fixtures_integration_spec.rb index 693b7ce24..e0a99c459 100644 --- a/gems/parslet-toml-merge/spec/fixtures_integration_spec.rb +++ b/gems/parslet-toml-merge/spec/fixtures_integration_spec.rb @@ -124,7 +124,7 @@ def json_ready(value) [[profiles.semantic-diff.attributes]] pattern = "*.rb" - diff = "smorg-ruby" + diff = "smorg-rb" [profiles.textconv-normalized] description = "Template-only profile" @@ -150,7 +150,7 @@ def json_ready(value) expect(result.fetch(:output)).to include('diff = "smorg-rb"') expect(result.fetch(:output)).to include('description = "Destination driver"') expect(result.fetch(:output)).to include('[[profiles.textconv-normalized.attributes]]') - expect(result.fetch(:output)).not_to include('smorg-ruby') + expect(result.fetch(:output)).not_to include('smorg-rb') end it 'conforms to the provider named-suite plan and manifest-report fixtures' do diff --git a/gems/toml-merge/spec/fixtures_integration_spec.rb b/gems/toml-merge/spec/fixtures_integration_spec.rb index d9956c039..8810f3bbe 100644 --- a/gems/toml-merge/spec/fixtures_integration_spec.rb +++ b/gems/toml-merge/spec/fixtures_integration_spec.rb @@ -239,7 +239,7 @@ def json_ready(value) [[profiles.semantic-diff.attributes]] pattern = "*.rb" - diff = "smorg-ruby" + diff = "smorg-rb" [profiles.textconv-normalized] description = "Template-only profile" @@ -265,7 +265,7 @@ def json_ready(value) expect(result.fetch(:output)).to include('diff = "smorg-rb"') expect(result.fetch(:output)).to include('description = "Destination driver"') expect(result.fetch(:output)).to include('[[profiles.textconv-normalized.attributes]]') - expect(result.fetch(:output)).not_to include('smorg-ruby') + expect(result.fetch(:output)).not_to include('smorg-rb') end it 'exposes non-overlapping effective table ranges and source fragments through the TOML substrate' do From 9ba1772cd548708abb73a60e1f4101b8362db3eb Mon Sep 17 00:00:00 2001 From: "Peter H. Boling" Date: Mon, 20 Jul 2026 02:33:15 -0600 Subject: [PATCH 066/188] Bundle distinct install environments Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- gems/kettle-jem/CHANGELOG.md | 3 + .../lib/kettle/jem/tasks/install_task.rb | 55 +++++++++++++++++-- gems/kettle-jem/spec/thin_slice_spec.rb | 37 +++++++++++++ 3 files changed, 90 insertions(+), 5 deletions(-) diff --git a/gems/kettle-jem/CHANGELOG.md b/gems/kettle-jem/CHANGELOG.md index dd1fae098..29aa13949 100644 --- a/gems/kettle-jem/CHANGELOG.md +++ b/gems/kettle-jem/CHANGELOG.md @@ -20,6 +20,9 @@ Please file a bug if you notice a violation of semantic versioning. ### Fixed +- Install orchestration now bundles each distinct Bundler environment it will + execute under, and probes RuboCop Gradual tasks with the same environment used + for the eventual command. - Generated semantic diff Git driver configuration now consistently uses the installed `smorg-rb` executable and Git diff driver name for Ruby diffs. - Generated multi-engine workflow files, including `heads.yml` and diff --git a/gems/kettle-jem/lib/kettle/jem/tasks/install_task.rb b/gems/kettle-jem/lib/kettle/jem/tasks/install_task.rb index 33e07886a..ea34db570 100644 --- a/gems/kettle-jem/lib/kettle/jem/tasks/install_task.rb +++ b/gems/kettle-jem/lib/kettle/jem/tasks/install_task.rb @@ -40,7 +40,8 @@ def run(project_root: Dir.pwd, env: ENV, run_options: {}, command_runner: method rubocop_lts_branch_step = rubocop_lts_local_branch_step(report, env: setup_env, project_root: project_root) install_steps << rubocop_lts_branch_step if rubocop_lts_branch_step install_steps.concat(run_bundle_setup_commands(project_root, env: setup_env, run_options: effective_run_options, command_runner: command_runner)) - install_steps << rubocop_gradual_autocorrect_step(project_root) + install_steps << distinct_bundle_install_step(project_root, env: env, setup_env: setup_env) + install_steps << rubocop_gradual_autocorrect_step(project_root, env: setup_env) install_steps << normalize_lockfile_step(project_root, env: setup_env, run_options: effective_run_options) install_steps << bundled_handoff_step(project_root: project_root, env: env, run_options: effective_run_options) install_steps << bootstrap_commit_step(project_root, run_options: effective_run_options) @@ -183,6 +184,7 @@ def install_phase_reports(install_steps) bundle_binstub_pruning bundle_binstub_location_validation rubocop_lts_local_branch + bundle_install_requested_env rubocop_gradual_autocorrect bundle_lock_normalization ], @@ -659,7 +661,26 @@ def lockfile_normalization_command %w[bundle update] end - def rubocop_gradual_autocorrect_step(project_root) + def distinct_bundle_install_step(project_root, env:, setup_env:) + bundle_env = bundler_command_env(project_root, env) + if same_bundle_env?(bundle_env, setup_env) + return { + name: "bundle_install_requested_env", + status: "skipped", + reason: "same_as_setup_bundle_env" + } + end + + { + name: "bundle_install_requested_env", + command: %w[bundle install], + status: "ready", + env: bundle_env, + reason: "distinct_bundle_env" + } + end + + def rubocop_gradual_autocorrect_step(project_root, env: nil) rakefile = File.join(project_root.to_s, "Rakefile") bin_rake = File.join(project_root.to_s, "bin", "rake") unless File.file?(rakefile) && File.file?(bin_rake) @@ -669,7 +690,7 @@ def rubocop_gradual_autocorrect_step(project_root) reason: "missing_rake_entrypoint" } end - unless rake_task_available?(project_root, "rubocop_gradual:autocorrect") + unless rake_task_available?(project_root, "rubocop_gradual:autocorrect", env: env) return { name: "rubocop_gradual_autocorrect", status: "skipped", @@ -689,8 +710,8 @@ def rubocop_gradual_autocorrect_command ["sh", "-c", "rm -f .rubocop_gradual.lock && bin/rake rubocop_gradual:autocorrect"] end - def rake_task_available?(project_root, task_name) - stdout, _stderr, status = Open3.capture3("bin/rake", "--tasks", chdir: project_root.to_s) + def rake_task_available?(project_root, task_name, env: nil) + stdout, _stderr, status = Open3.capture3((env || {}).to_h, "bin/rake", "--tasks", chdir: project_root.to_s) status.success? && stdout.lines.any? { |line| line.include?(task_name.to_s) } rescue Errno::EACCES, Errno::ENOENT false @@ -1000,6 +1021,8 @@ def execute_orchestration_steps(install_steps, project_root:, env:, run_options: execute_ready_command_step(step, project_root: project_root, env: env, quiet: quiet, command_runner: command_runner) when "rubocop_lts_local_branch" execute_ready_command_step(step, project_root: project_root, env: env, quiet: quiet, command_runner: command_runner) + when "bundle_install_requested_env" + execute_ready_command_step(step, project_root: project_root, env: env, quiet: quiet, command_runner: command_runner) when "rubocop_gradual_autocorrect" execute_ready_command_step(step, project_root: project_root, env: env, quiet: quiet, command_runner: command_runner) when "hook_templates" @@ -1029,6 +1052,28 @@ def setup_command_env(project_root, env) command_env end + def bundler_command_env(project_root, env) + command_env = (env || {}).to_h.dup + strip_inherited_bundler_activation!(command_env) + gemfile = File.join(project_root.to_s, "Gemfile") + command_env["BUNDLE_GEMFILE"] = gemfile if File.file?(gemfile) + command_env["K_JEM_TEMPLATING"] = "false" unless command_env.key?("K_JEM_TEMPLATING") + apply_kettle_family_local_install_env!(command_env) + command_env + end + + def same_bundle_env?(left, right) + bundle_env_fingerprint(left) == bundle_env_fingerprint(right) + end + + def bundle_env_fingerprint(env) + env.to_h.transform_values { |value| value.nil? ? nil : value.to_s }.reject { |key, _value| ignored_bundle_env_key?(key) } + end + + def ignored_bundle_env_key?(key) + key.to_s.match?(/\A(?:BUNDLE_BIN_PATH|BUNDLE_LOCKFILE|BUNDLER_SETUP|BUNDLER_VERSION|RUBYLIB|RUBYOPT)\z/) + end + def apply_kettle_family_local_install_env!(command_env) return unless command_env.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? diff --git a/gems/kettle-jem/spec/thin_slice_spec.rb b/gems/kettle-jem/spec/thin_slice_spec.rb index fc4e41bf4..af818d0e7 100644 --- a/gems/kettle-jem/spec/thin_slice_spec.rb +++ b/gems/kettle-jem/spec/thin_slice_spec.rb @@ -5125,6 +5125,28 @@ module Version end end + it "detects rake tasks using the same bundle environment as command execution" do + tmp_root = File.join(__dir__, "tmp") + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-rake-task-env", tmp_root) do |root| + write_tree(root, { + "Rakefile" => "task default: []\n", + "bin/rake" => <<~RUBY + #!/usr/bin/env ruby + puts "rake rubocop_gradual:autocorrect" if ENV.fetch("K_JEM_TEMPLATING", "false") == "true" + RUBY + }) + FileUtils.chmod("+x", File.join(root, "bin", "rake")) + + expect(Kettle::Jem::Tasks::InstallTask.rake_task_available?(root, "rubocop_gradual:autocorrect", env: {"K_JEM_TEMPLATING" => "false"})).to be(false) + expect(Kettle::Jem::Tasks::InstallTask.rake_task_available?(root, "rubocop_gradual:autocorrect", env: {"K_JEM_TEMPLATING" => "true"})).to be(true) + expect(Kettle::Jem::Tasks::InstallTask.rubocop_gradual_autocorrect_step(root, env: {"K_JEM_TEMPLATING" => "true"})).to include( + name: "rubocop_gradual_autocorrect", + status: "ready" + ) + end + end + it "runs install follow-up templating whenever the canonical config changes" do report = { recipe_reports: [ @@ -5221,6 +5243,12 @@ module Version status: "skipped", reason: "skip_commit" ) + expect(install.fetch(:install_steps)).to include(hash_including( + name: "bundle_install_requested_env", + command: %w[bundle install], + status: "succeeded", + reason: "executed" + )) expect(install.fetch(:install_steps)).to include(hash_including( name: "bundle_lock_normalization", command: %w[bundle update], @@ -5229,6 +5257,15 @@ module Version )) lock_command = commands.find { |entry| entry.fetch(:command) == %w[bundle update] } expect(lock_command).not_to be_nil + requested_bundle_install = commands.find { |entry| entry.fetch(:command) == %w[bundle install] } + expect(requested_bundle_install).not_to be_nil + expect(requested_bundle_install.fetch(:env)).to include( + "BUNDLE_GEMFILE" => File.join(root, "Gemfile"), + "K_JEM_TEMPLATING" => "true", + "KETTLE_DEV_DEV" => "/workspace/my", + "GALTZO_FLOSS_DEV" => "/workspace/galtzo-floss", + "STRUCTUREDMERGE_DEV" => "/workspace/smorg-rb" + ) expect(lock_command.fetch(:env)).to include( "BUNDLE_GEMFILE" => File.join(root, "Gemfile"), "K_JEM_TEMPLATING" => "false", From f1ff17b3083ad91e1b22f28254c53e7ed348d4ed Mon Sep 17 00:00:00 2001 From: "Peter H. Boling" Date: Mon, 20 Jul 2026 02:35:42 -0600 Subject: [PATCH 067/188] Remove duplicated Gemfile sibling blocks Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- gems/ast-crispr-markdown-markly/Gemfile | 360 ------------------- gems/ast-crispr-ruby-prism/Gemfile | 360 ------------------- gems/ast-crispr/Gemfile | 360 ------------------- gems/ast-merge-git/Gemfile | 400 --------------------- gems/ast-merge/Gemfile | 400 --------------------- gems/ast-template/Gemfile | 320 ----------------- gems/bash-merge/Gemfile | 360 ------------------- gems/binary-merge/Gemfile | 360 ------------------- gems/citrus-toml-merge/Gemfile | 320 ----------------- gems/commonmarker-merge/Gemfile | 320 ----------------- gems/dotenv-merge/Gemfile | 360 ------------------- gems/go-merge/Gemfile | 320 ----------------- gems/json-merge/Gemfile | 400 --------------------- gems/kramdown-merge/Gemfile | 320 ----------------- gems/markdown-merge/Gemfile | 360 ------------------- gems/markly-merge/Gemfile | 360 ------------------- gems/parslet-toml-merge/Gemfile | 320 ----------------- gems/plain-merge/Gemfile | 440 ------------------------ gems/prism-merge/Gemfile | 360 ------------------- gems/psych-merge/Gemfile | 360 ------------------- gems/rbs-merge/Gemfile | 320 ----------------- gems/ruby-merge/Gemfile | 360 ------------------- gems/rust-merge/Gemfile | 320 ----------------- gems/smorg-rb/Gemfile | 400 --------------------- gems/toml-merge/Gemfile | 320 ----------------- gems/typescript-merge/Gemfile | 320 ----------------- gems/yaml-merge/Gemfile | 320 ----------------- gems/zip-merge/Gemfile | 360 ------------------- 28 files changed, 9880 deletions(-) diff --git a/gems/ast-crispr-markdown-markly/Gemfile b/gems/ast-crispr-markdown-markly/Gemfile index 70a6937b9..f4a997f6e 100644 --- a/gems/ast-crispr-markdown-markly/Gemfile +++ b/gems/ast-crispr-markdown-markly/Gemfile @@ -72,366 +72,6 @@ if direct_sibling_gems.any? && end end -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - # Use the StructuredMerge TSLP branch until upstream ships parser API bindings. vendored_gems = ENV.fetch('VENDORED_GEMS', '').split(',').map(&:strip) tslp_declared_by_templating = diff --git a/gems/ast-crispr-ruby-prism/Gemfile b/gems/ast-crispr-ruby-prism/Gemfile index 7361e891b..d62dd14a6 100644 --- a/gems/ast-crispr-ruby-prism/Gemfile +++ b/gems/ast-crispr-ruby-prism/Gemfile @@ -72,366 +72,6 @@ if direct_sibling_gems.any? && end end -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - # Use the StructuredMerge TSLP branch until upstream ships parser API bindings. vendored_gems = ENV.fetch('VENDORED_GEMS', '').split(',').map(&:strip) tslp_declared_by_templating = diff --git a/gems/ast-crispr/Gemfile b/gems/ast-crispr/Gemfile index 1536993bb..533a76555 100644 --- a/gems/ast-crispr/Gemfile +++ b/gems/ast-crispr/Gemfile @@ -71,366 +71,6 @@ if direct_sibling_gems.any? && end end -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - # Use the StructuredMerge TSLP branch until upstream ships parser API bindings. vendored_gems = ENV.fetch('VENDORED_GEMS', '').split(',').map(&:strip) tslp_declared_by_templating = diff --git a/gems/ast-merge-git/Gemfile b/gems/ast-merge-git/Gemfile index 6ae85b557..dcc54268a 100644 --- a/gems/ast-merge-git/Gemfile +++ b/gems/ast-merge-git/Gemfile @@ -72,406 +72,6 @@ if direct_sibling_gems.any? && end end -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - # Use the StructuredMerge TSLP branch until upstream ships parser API bindings. vendored_gems = ENV.fetch('VENDORED_GEMS', '').split(',').map(&:strip) tslp_declared_by_templating = diff --git a/gems/ast-merge/Gemfile b/gems/ast-merge/Gemfile index 419a778f5..90020b246 100644 --- a/gems/ast-merge/Gemfile +++ b/gems/ast-merge/Gemfile @@ -71,406 +71,6 @@ if direct_sibling_gems.any? && end end -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - # Use the StructuredMerge TSLP branch until upstream ships parser API bindings. vendored_gems = ENV.fetch('VENDORED_GEMS', '').split(',').map(&:strip) tslp_declared_by_templating = diff --git a/gems/ast-template/Gemfile b/gems/ast-template/Gemfile index 1a75ccf19..b6f2f63ff 100644 --- a/gems/ast-template/Gemfile +++ b/gems/ast-template/Gemfile @@ -71,326 +71,6 @@ if direct_sibling_gems.any? && end end -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - # Use the StructuredMerge TSLP branch until upstream ships parser API bindings. vendored_gems = ENV.fetch('VENDORED_GEMS', '').split(',').map(&:strip) tslp_declared_by_templating = diff --git a/gems/bash-merge/Gemfile b/gems/bash-merge/Gemfile index 94aa89088..1d417c46e 100644 --- a/gems/bash-merge/Gemfile +++ b/gems/bash-merge/Gemfile @@ -72,366 +72,6 @@ if direct_sibling_gems.any? && end end -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - # Use the StructuredMerge TSLP branch until upstream ships parser API bindings. vendored_gems = ENV.fetch('VENDORED_GEMS', '').split(',').map(&:strip) tslp_declared_by_templating = diff --git a/gems/binary-merge/Gemfile b/gems/binary-merge/Gemfile index cb86996f2..470706659 100644 --- a/gems/binary-merge/Gemfile +++ b/gems/binary-merge/Gemfile @@ -71,366 +71,6 @@ if direct_sibling_gems.any? && end end -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - # Use the StructuredMerge TSLP branch until upstream ships parser API bindings. vendored_gems = ENV.fetch('VENDORED_GEMS', '').split(',').map(&:strip) tslp_declared_by_templating = diff --git a/gems/citrus-toml-merge/Gemfile b/gems/citrus-toml-merge/Gemfile index 730275192..e413eec9e 100644 --- a/gems/citrus-toml-merge/Gemfile +++ b/gems/citrus-toml-merge/Gemfile @@ -71,326 +71,6 @@ if direct_sibling_gems.any? && end end -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - # Use the StructuredMerge TSLP branch until upstream ships parser API bindings. vendored_gems = ENV.fetch('VENDORED_GEMS', '').split(',').map(&:strip) tslp_declared_by_templating = diff --git a/gems/commonmarker-merge/Gemfile b/gems/commonmarker-merge/Gemfile index 8bd62a3fa..4752786b9 100644 --- a/gems/commonmarker-merge/Gemfile +++ b/gems/commonmarker-merge/Gemfile @@ -71,326 +71,6 @@ if direct_sibling_gems.any? && end end -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - # Use the StructuredMerge TSLP branch until upstream ships parser API bindings. vendored_gems = ENV.fetch('VENDORED_GEMS', '').split(',').map(&:strip) tslp_declared_by_templating = diff --git a/gems/dotenv-merge/Gemfile b/gems/dotenv-merge/Gemfile index 8c1541437..61e3cb17e 100644 --- a/gems/dotenv-merge/Gemfile +++ b/gems/dotenv-merge/Gemfile @@ -72,366 +72,6 @@ if direct_sibling_gems.any? && end end -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - # Use the StructuredMerge TSLP branch until upstream ships parser API bindings. vendored_gems = ENV.fetch('VENDORED_GEMS', '').split(',').map(&:strip) tslp_declared_by_templating = diff --git a/gems/go-merge/Gemfile b/gems/go-merge/Gemfile index 8f086be68..e0b466400 100644 --- a/gems/go-merge/Gemfile +++ b/gems/go-merge/Gemfile @@ -72,326 +72,6 @@ if direct_sibling_gems.any? && end end -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - # Use the StructuredMerge TSLP branch until upstream ships parser API bindings. vendored_gems = ENV.fetch('VENDORED_GEMS', '').split(',').map(&:strip) tslp_declared_by_templating = diff --git a/gems/json-merge/Gemfile b/gems/json-merge/Gemfile index 4ddd3a20c..4446e7369 100644 --- a/gems/json-merge/Gemfile +++ b/gems/json-merge/Gemfile @@ -72,406 +72,6 @@ if direct_sibling_gems.any? && end end -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - # Use the StructuredMerge TSLP branch until upstream ships parser API bindings. vendored_gems = ENV.fetch('VENDORED_GEMS', '').split(',').map(&:strip) tslp_declared_by_templating = diff --git a/gems/kramdown-merge/Gemfile b/gems/kramdown-merge/Gemfile index 18563e927..2090855d6 100644 --- a/gems/kramdown-merge/Gemfile +++ b/gems/kramdown-merge/Gemfile @@ -71,326 +71,6 @@ if direct_sibling_gems.any? && end end -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - # Use the StructuredMerge TSLP branch until upstream ships parser API bindings. vendored_gems = ENV.fetch('VENDORED_GEMS', '').split(',').map(&:strip) tslp_declared_by_templating = diff --git a/gems/markdown-merge/Gemfile b/gems/markdown-merge/Gemfile index 4a0367611..d2b15df1f 100644 --- a/gems/markdown-merge/Gemfile +++ b/gems/markdown-merge/Gemfile @@ -72,366 +72,6 @@ if direct_sibling_gems.any? && end end -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - # Use the StructuredMerge TSLP branch until upstream ships parser API bindings. vendored_gems = ENV.fetch('VENDORED_GEMS', '').split(',').map(&:strip) tslp_declared_by_templating = diff --git a/gems/markly-merge/Gemfile b/gems/markly-merge/Gemfile index 3d1934d71..db76b8b9f 100644 --- a/gems/markly-merge/Gemfile +++ b/gems/markly-merge/Gemfile @@ -71,366 +71,6 @@ if direct_sibling_gems.any? && end end -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - # Use the StructuredMerge TSLP branch until upstream ships parser API bindings. vendored_gems = ENV.fetch('VENDORED_GEMS', '').split(',').map(&:strip) tslp_declared_by_templating = diff --git a/gems/parslet-toml-merge/Gemfile b/gems/parslet-toml-merge/Gemfile index 298bf7529..210b6b610 100644 --- a/gems/parslet-toml-merge/Gemfile +++ b/gems/parslet-toml-merge/Gemfile @@ -71,326 +71,6 @@ if direct_sibling_gems.any? && end end -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - # Use the StructuredMerge TSLP branch until upstream ships parser API bindings. vendored_gems = ENV.fetch('VENDORED_GEMS', '').split(',').map(&:strip) tslp_declared_by_templating = diff --git a/gems/plain-merge/Gemfile b/gems/plain-merge/Gemfile index 24e16229d..11de70310 100644 --- a/gems/plain-merge/Gemfile +++ b/gems/plain-merge/Gemfile @@ -72,446 +72,6 @@ if direct_sibling_gems.any? && end end -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - # Use the StructuredMerge TSLP branch until upstream ships parser API bindings. vendored_gems = ENV.fetch('VENDORED_GEMS', '').split(',').map(&:strip) tslp_declared_by_templating = diff --git a/gems/prism-merge/Gemfile b/gems/prism-merge/Gemfile index b1b479ad2..fe9294106 100644 --- a/gems/prism-merge/Gemfile +++ b/gems/prism-merge/Gemfile @@ -71,366 +71,6 @@ if direct_sibling_gems.any? && end end -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - # Use the StructuredMerge TSLP branch until upstream ships parser API bindings. vendored_gems = ENV.fetch('VENDORED_GEMS', '').split(',').map(&:strip) tslp_declared_by_templating = diff --git a/gems/psych-merge/Gemfile b/gems/psych-merge/Gemfile index 5624b49cf..8a960f7a3 100644 --- a/gems/psych-merge/Gemfile +++ b/gems/psych-merge/Gemfile @@ -73,366 +73,6 @@ if direct_sibling_gems.any? && end end -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - # Use the StructuredMerge TSLP branch until upstream ships parser API bindings. vendored_gems = ENV.fetch('VENDORED_GEMS', '').split(',').map(&:strip) tslp_declared_by_templating = diff --git a/gems/rbs-merge/Gemfile b/gems/rbs-merge/Gemfile index 4bd6021c7..d576d176b 100644 --- a/gems/rbs-merge/Gemfile +++ b/gems/rbs-merge/Gemfile @@ -72,326 +72,6 @@ if direct_sibling_gems.any? && end end -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - # Use the StructuredMerge TSLP branch until upstream ships parser API bindings. vendored_gems = ENV.fetch('VENDORED_GEMS', '').split(',').map(&:strip) tslp_declared_by_templating = diff --git a/gems/ruby-merge/Gemfile b/gems/ruby-merge/Gemfile index 3d6a2fe69..64beeed8d 100644 --- a/gems/ruby-merge/Gemfile +++ b/gems/ruby-merge/Gemfile @@ -72,366 +72,6 @@ if direct_sibling_gems.any? && end end -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - # Use the StructuredMerge TSLP branch until upstream ships parser API bindings. vendored_gems = ENV.fetch('VENDORED_GEMS', '').split(',').map(&:strip) tslp_declared_by_templating = diff --git a/gems/rust-merge/Gemfile b/gems/rust-merge/Gemfile index dcd1e0dab..77d466406 100644 --- a/gems/rust-merge/Gemfile +++ b/gems/rust-merge/Gemfile @@ -72,326 +72,6 @@ if direct_sibling_gems.any? && end end -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - # Use the StructuredMerge TSLP branch until upstream ships parser API bindings. vendored_gems = ENV.fetch('VENDORED_GEMS', '').split(',').map(&:strip) tslp_declared_by_templating = diff --git a/gems/smorg-rb/Gemfile b/gems/smorg-rb/Gemfile index 90c704d3c..88673fe14 100644 --- a/gems/smorg-rb/Gemfile +++ b/gems/smorg-rb/Gemfile @@ -77,406 +77,6 @@ if direct_sibling_gems.any? && end end -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - # Use the StructuredMerge TSLP branch until upstream ships parser API bindings. vendored_gems = ENV.fetch('VENDORED_GEMS', '').split(',').map(&:strip) tslp_declared_by_templating = diff --git a/gems/toml-merge/Gemfile b/gems/toml-merge/Gemfile index 9c48fd1e8..b96eb1f39 100644 --- a/gems/toml-merge/Gemfile +++ b/gems/toml-merge/Gemfile @@ -72,326 +72,6 @@ if direct_sibling_gems.any? && end end -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - # Use the StructuredMerge TSLP branch until upstream ships parser API bindings. vendored_gems = ENV.fetch('VENDORED_GEMS', '').split(',').map(&:strip) tslp_declared_by_templating = diff --git a/gems/typescript-merge/Gemfile b/gems/typescript-merge/Gemfile index 6812b468b..1eea09b8c 100644 --- a/gems/typescript-merge/Gemfile +++ b/gems/typescript-merge/Gemfile @@ -72,326 +72,6 @@ if direct_sibling_gems.any? && end end -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - # Use the StructuredMerge TSLP branch until upstream ships parser API bindings. vendored_gems = ENV.fetch('VENDORED_GEMS', '').split(',').map(&:strip) tslp_declared_by_templating = diff --git a/gems/yaml-merge/Gemfile b/gems/yaml-merge/Gemfile index 976819343..c248811c4 100644 --- a/gems/yaml-merge/Gemfile +++ b/gems/yaml-merge/Gemfile @@ -72,326 +72,6 @@ if direct_sibling_gems.any? && end end -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - # Use the StructuredMerge TSLP branch until upstream ships parser API bindings. vendored_gems = ENV.fetch('VENDORED_GEMS', '').split(',').map(&:strip) tslp_declared_by_templating = diff --git a/gems/zip-merge/Gemfile b/gems/zip-merge/Gemfile index 3649aefae..8dc2fa4d9 100644 --- a/gems/zip-merge/Gemfile +++ b/gems/zip-merge/Gemfile @@ -71,366 +71,6 @@ if direct_sibling_gems.any? && end end -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - # Use the StructuredMerge TSLP branch until upstream ships parser API bindings. vendored_gems = ENV.fetch('VENDORED_GEMS', '').split(',').map(&:strip) tslp_declared_by_templating = From 9c55a11481ce43456f8bf505a810918a2bf43b58 Mon Sep 17 00:00:00 2001 From: "Peter H. Boling" Date: Mon, 20 Jul 2026 02:53:27 -0600 Subject: [PATCH 068/188] Fix templating bundle graph setup Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- CHANGELOG.md | 3 +++ .../lib/json/merge/file_analysis.rb | 3 +-- .../spec/fixtures_integration_spec.rb | 11 +++++----- gems/kettle-jem/CHANGELOG.md | 3 +++ .../lib/kettle/jem/tasks/install_task.rb | 20 ++++++++++++++++--- gems/kettle-jem/spec/thin_slice_spec.rb | 10 +++++++++- 6 files changed, 38 insertions(+), 12 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6291b98d0..418e23bfd 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -81,6 +81,9 @@ Please file a bug if you notice a violation of semantic versioning. ### Fixed +- `json-merge` file analysis now registers its TreeHaver JSON backend before + direct parsing, preventing templating from failing with `No parser registered + for json` when JSON smart merges instantiate file analysis directly. - RBS recursive member merges no longer duplicate destination-owned comments before matched nested declarations across repeated templating runs. - RBS merges now preserve retained declaration and nested member blank-line diff --git a/gems/json-merge/lib/json/merge/file_analysis.rb b/gems/json-merge/lib/json/merge/file_analysis.rb index 6b5429fd5..0156c4083 100644 --- a/gems/json-merge/lib/json/merge/file_analysis.rb +++ b/gems/json-merge/lib/json/merge/file_analysis.rb @@ -200,8 +200,7 @@ def root_merge_node end def parse_json - # TreeHaver handles backend selection against the grammar Json::Merge - # has already registered during bootstrap. + Json::Merge.register_backend! parser = TreeHaver.parser_for(:json, backend_type: :tree_sitter) @ast = parser.parse(@source) diff --git a/gems/json-merge/spec/fixtures_integration_spec.rb b/gems/json-merge/spec/fixtures_integration_spec.rb index f17bce414..768fb98e5 100644 --- a/gems/json-merge/spec/fixtures_integration_spec.rb +++ b/gems/json-merge/spec/fixtures_integration_spec.rb @@ -87,24 +87,23 @@ def json_ready(value) expect(string_result[:ok]).to be(true) end - it 'fails closed for JSONC analysis when no TreeHaver JSON backend is available' do + it 'self-registers the JSON backend for direct file analysis' do source = <<~JSON { - // devcontainer files commonly use JSONC comments. "name": "Ruby", "customizations": { "jetbrains": { "backend": "RubyMine" } - }, + } } JSON analysis = described_class::FileAnalysis.new(source) - expect(analysis).not_to be_valid - expect(analysis.root_object).to be_nil - expect(analysis.errors).not_to be_empty + expect(analysis).to be_valid + expect(analysis.root_object).not_to be_nil + expect(analysis.errors).to be_empty end it 'conforms to the structure fixtures' do diff --git a/gems/kettle-jem/CHANGELOG.md b/gems/kettle-jem/CHANGELOG.md index 29aa13949..60d2d8e21 100644 --- a/gems/kettle-jem/CHANGELOG.md +++ b/gems/kettle-jem/CHANGELOG.md @@ -23,6 +23,9 @@ Please file a bug if you notice a violation of semantic versioning. - Install orchestration now bundles each distinct Bundler environment it will execute under, and probes RuboCop Gradual tasks with the same environment used for the eventual command. +- Bundler child commands now strip inherited command-line Git configuration, so + parent `safe.bareRepository=explicit` settings do not break Bundler Git source + caches during templating. - Generated semantic diff Git driver configuration now consistently uses the installed `smorg-rb` executable and Git diff driver name for Ruby diffs. - Generated multi-engine workflow files, including `heads.yml` and diff --git a/gems/kettle-jem/lib/kettle/jem/tasks/install_task.rb b/gems/kettle-jem/lib/kettle/jem/tasks/install_task.rb index ea34db570..b9cd1c49c 100644 --- a/gems/kettle-jem/lib/kettle/jem/tasks/install_task.rb +++ b/gems/kettle-jem/lib/kettle/jem/tasks/install_task.rb @@ -39,8 +39,8 @@ def run(project_root: Dir.pwd, env: ENV, run_options: {}, command_runner: method setup_env = setup_command_env(project_root, env) rubocop_lts_branch_step = rubocop_lts_local_branch_step(report, env: setup_env, project_root: project_root) install_steps << rubocop_lts_branch_step if rubocop_lts_branch_step + install_steps << run_distinct_bundle_install_step(project_root, env: env, setup_env: setup_env, run_options: effective_run_options, command_runner: command_runner) install_steps.concat(run_bundle_setup_commands(project_root, env: setup_env, run_options: effective_run_options, command_runner: command_runner)) - install_steps << distinct_bundle_install_step(project_root, env: env, setup_env: setup_env) install_steps << rubocop_gradual_autocorrect_step(project_root, env: setup_env) install_steps << normalize_lockfile_step(project_root, env: setup_env, run_options: effective_run_options) install_steps << bundled_handoff_step(project_root: project_root, env: env, run_options: effective_run_options) @@ -177,14 +177,14 @@ def install_phase_reports(install_steps) env_local_gitignore hook_templates git_drivers + rubocop_lts_local_branch + bundle_install_requested_env bin_setup_executable bin_setup bundle_binstubs curated_binstubs_executable bundle_binstub_pruning bundle_binstub_location_validation - rubocop_lts_local_branch - bundle_install_requested_env rubocop_gradual_autocorrect bundle_lock_normalization ], @@ -680,6 +680,19 @@ def distinct_bundle_install_step(project_root, env:, setup_env:) } end + def run_distinct_bundle_install_step(project_root, env:, setup_env:, run_options:, command_runner:) + step = distinct_bundle_install_step(project_root, env: env, setup_env: setup_env) + return step unless step.fetch(:status) == "ready" + + execute_ready_command_step( + step, + project_root: project_root, + env: setup_env, + quiet: Kettle::Jem::DecisionPolicy.value_to_boolean(run_options[:quiet]), + command_runner: command_runner + ) + end + def rubocop_gradual_autocorrect_step(project_root, env: nil) rakefile = File.join(project_root.to_s, "Rakefile") bin_rake = File.join(project_root.to_s, "bin", "rake") @@ -1113,6 +1126,7 @@ def local_env_disabled?(value) def strip_inherited_bundler_activation!(command_env) (ENV.keys + command_env.keys).grep(/\ABUNDLE_/).each { |key| command_env[key] = nil } (ENV.keys + command_env.keys).grep(/\ABUNDLER_/).each { |key| command_env[key] = nil } + (ENV.keys + command_env.keys).grep(/\AGIT_CONFIG_(?:COUNT|KEY_\d+|VALUE_\d+)\z/).each { |key| command_env[key] = nil } %w[RUBYLIB RUBYOPT].each { |key| command_env[key] = nil } end diff --git a/gems/kettle-jem/spec/thin_slice_spec.rb b/gems/kettle-jem/spec/thin_slice_spec.rb index af818d0e7..261bb86aa 100644 --- a/gems/kettle-jem/spec/thin_slice_spec.rb +++ b/gems/kettle-jem/spec/thin_slice_spec.rb @@ -5054,6 +5054,9 @@ module Version "BUNDLE_LOCKFILE" => "/workspace/kettle-jem/Gemfile.lock", "BUNDLER_SETUP" => "/workspace/kettle-jem/bundler/setup", "BUNDLER_VERSION" => "4.0.12", + "GIT_CONFIG_COUNT" => "1", + "GIT_CONFIG_KEY_0" => "safe.bareRepository", + "GIT_CONFIG_VALUE_0" => "explicit", "RUBYLIB" => "/workspace/kettle-jem/lib", "RUBYOPT" => "-rbundler/setup" } @@ -5079,6 +5082,9 @@ module Version "BUNDLE_LOCKFILE" => nil, "BUNDLER_SETUP" => nil, "BUNDLER_VERSION" => nil, + "GIT_CONFIG_COUNT" => nil, + "GIT_CONFIG_KEY_0" => nil, + "GIT_CONFIG_VALUE_0" => nil, "RUBYLIB" => nil, "RUBYOPT" => nil )) @@ -5259,6 +5265,8 @@ module Version expect(lock_command).not_to be_nil requested_bundle_install = commands.find { |entry| entry.fetch(:command) == %w[bundle install] } expect(requested_bundle_install).not_to be_nil + command_names = commands.map { |entry| entry.fetch(:command) } + expect(command_names.index(%w[bundle install])).to be < command_names.index(["bin/setup"]) expect(requested_bundle_install.fetch(:env)).to include( "BUNDLE_GEMFILE" => File.join(root, "Gemfile"), "K_JEM_TEMPLATING" => "true", @@ -5273,7 +5281,7 @@ module Version "GALTZO_FLOSS_DEV" => "false", "STRUCTUREDMERGE_DEV" => "false" ) - expect(commands.map { |entry| entry.fetch(:command) }).not_to include(%w[git add -A]) + expect(command_names).not_to include(%w[git add -A]) end end From e2269e449641de65a4be95422162d6d674f83c58 Mon Sep 17 00:00:00 2001 From: "Peter H. Boling" Date: Mon, 20 Jul 2026 10:00:57 -0600 Subject: [PATCH 069/188] Use released tree-sitter language pack Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- Gemfile | 8 ++------ gems/ast-crispr-markdown-markly/Gemfile | 9 ++------- gems/ast-crispr-ruby-prism/Gemfile | 9 ++------- gems/ast-crispr/Gemfile | 9 ++------- gems/ast-merge-git/Gemfile | 9 ++------- gems/ast-merge/Gemfile | 9 ++------- gems/ast-template/Gemfile | 9 ++------- gems/bash-merge/Gemfile | 9 ++------- gems/binary-merge/Gemfile | 9 ++------- gems/citrus-toml-merge/Gemfile | 9 ++------- gems/commonmarker-merge/Gemfile | 9 ++------- gems/dotenv-merge/Gemfile | 9 ++------- gems/go-merge/Gemfile | 9 ++------- gems/html-merge/Gemfile | 9 ++------- gems/json-merge/Gemfile | 9 ++------- gems/kettle-jem/CHANGELOG.md | 7 +++---- gems/kettle-jem/Gemfile | 11 +++-------- .../lib/kettle/jem/templates/Gemfile.example | 9 ++------- gems/kettle-jem/spec/thin_slice_spec.rb | 8 ++++---- gems/kramdown-merge/Gemfile | 9 ++------- gems/markdown-merge/Gemfile | 9 ++------- gems/markly-merge/Gemfile | 9 ++------- gems/parslet-toml-merge/Gemfile | 9 ++------- gems/plain-merge/Gemfile | 9 ++------- gems/prism-merge/Gemfile | 9 ++------- gems/psych-merge/Gemfile | 9 ++------- gems/rbs-merge/Gemfile | 9 ++------- gems/ruby-merge/Gemfile | 9 ++------- gems/rust-merge/Gemfile | 9 ++------- gems/smorg-rb/Gemfile | 9 ++------- gems/toml-merge/Gemfile | 9 ++------- gems/tree_haver/Gemfile | 3 ++- gems/typescript-merge/Gemfile | 9 ++------- gems/yaml-merge/Gemfile | 9 ++------- gems/zip-merge/Gemfile | 9 ++------- 35 files changed, 74 insertions(+), 233 deletions(-) diff --git a/Gemfile b/Gemfile index 7409bdcd7..bc6041fd9 100644 --- a/Gemfile +++ b/Gemfile @@ -2,17 +2,13 @@ kettle_dev_dev = ENV.fetch("KETTLE_DEV_DEV", "false") source "https://rubygems.org" +# Use the released TSLP gem by default; templating can override it via VENDORED_GEMS. vendored_gems = ENV.fetch("VENDORED_GEMS", "").split(",").map(&:strip) tslp_declared_by_templating = ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? && vendored_gems.include?("tree_sitter_language_pack") unless tslp_declared_by_templating - gem( - "tree_sitter_language_pack", - git: "https://github.com/structuredmerge/tree-sitter-language-pack.git", - branch: "fix/ruby-parser-api-methods", - glob: "packages/ruby/*.gemspec", - ) + gem "tree_sitter_language_pack", ">= 1.13.2", "< 2.0" end unless kettle_dev_dev.casecmp("false").zero? diff --git a/gems/ast-crispr-markdown-markly/Gemfile b/gems/ast-crispr-markdown-markly/Gemfile index f4a997f6e..4d3c0608d 100644 --- a/gems/ast-crispr-markdown-markly/Gemfile +++ b/gems/ast-crispr-markdown-markly/Gemfile @@ -72,18 +72,13 @@ if direct_sibling_gems.any? && end end -# Use the StructuredMerge TSLP branch until upstream ships parser API bindings. +# Use the released TSLP gem by default; templating can override it via VENDORED_GEMS. vendored_gems = ENV.fetch('VENDORED_GEMS', '').split(',').map(&:strip) tslp_declared_by_templating = ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? && vendored_gems.include?('tree_sitter_language_pack') unless tslp_declared_by_templating - gem( - 'tree_sitter_language_pack', - git: 'https://github.com/structuredmerge/tree-sitter-language-pack.git', - branch: 'fix/ruby-parser-api-methods', - glob: 'packages/ruby/*.gemspec' - ) + gem 'tree_sitter_language_pack', '>= 1.13.2', '< 2.0' end # Templating (env-switched: STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local paths) diff --git a/gems/ast-crispr-ruby-prism/Gemfile b/gems/ast-crispr-ruby-prism/Gemfile index d62dd14a6..c7603e65d 100644 --- a/gems/ast-crispr-ruby-prism/Gemfile +++ b/gems/ast-crispr-ruby-prism/Gemfile @@ -72,18 +72,13 @@ if direct_sibling_gems.any? && end end -# Use the StructuredMerge TSLP branch until upstream ships parser API bindings. +# Use the released TSLP gem by default; templating can override it via VENDORED_GEMS. vendored_gems = ENV.fetch('VENDORED_GEMS', '').split(',').map(&:strip) tslp_declared_by_templating = ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? && vendored_gems.include?('tree_sitter_language_pack') unless tslp_declared_by_templating - gem( - 'tree_sitter_language_pack', - git: 'https://github.com/structuredmerge/tree-sitter-language-pack.git', - branch: 'fix/ruby-parser-api-methods', - glob: 'packages/ruby/*.gemspec' - ) + gem 'tree_sitter_language_pack', '>= 1.13.2', '< 2.0' end # Templating (env-switched: STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local paths) diff --git a/gems/ast-crispr/Gemfile b/gems/ast-crispr/Gemfile index 533a76555..fa7d9b939 100644 --- a/gems/ast-crispr/Gemfile +++ b/gems/ast-crispr/Gemfile @@ -71,18 +71,13 @@ if direct_sibling_gems.any? && end end -# Use the StructuredMerge TSLP branch until upstream ships parser API bindings. +# Use the released TSLP gem by default; templating can override it via VENDORED_GEMS. vendored_gems = ENV.fetch('VENDORED_GEMS', '').split(',').map(&:strip) tslp_declared_by_templating = ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? && vendored_gems.include?('tree_sitter_language_pack') unless tslp_declared_by_templating - gem( - 'tree_sitter_language_pack', - git: 'https://github.com/structuredmerge/tree-sitter-language-pack.git', - branch: 'fix/ruby-parser-api-methods', - glob: 'packages/ruby/*.gemspec' - ) + gem 'tree_sitter_language_pack', '>= 1.13.2', '< 2.0' end # Templating (env-switched: STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local paths) diff --git a/gems/ast-merge-git/Gemfile b/gems/ast-merge-git/Gemfile index dcc54268a..16b62fe2e 100644 --- a/gems/ast-merge-git/Gemfile +++ b/gems/ast-merge-git/Gemfile @@ -72,18 +72,13 @@ if direct_sibling_gems.any? && end end -# Use the StructuredMerge TSLP branch until upstream ships parser API bindings. +# Use the released TSLP gem by default; templating can override it via VENDORED_GEMS. vendored_gems = ENV.fetch('VENDORED_GEMS', '').split(',').map(&:strip) tslp_declared_by_templating = ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? && vendored_gems.include?('tree_sitter_language_pack') unless tslp_declared_by_templating - gem( - 'tree_sitter_language_pack', - git: 'https://github.com/structuredmerge/tree-sitter-language-pack.git', - branch: 'fix/ruby-parser-api-methods', - glob: 'packages/ruby/*.gemspec' - ) + gem 'tree_sitter_language_pack', '>= 1.13.2', '< 2.0' end # Templating (env-switched: STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local paths) diff --git a/gems/ast-merge/Gemfile b/gems/ast-merge/Gemfile index 90020b246..70be20521 100644 --- a/gems/ast-merge/Gemfile +++ b/gems/ast-merge/Gemfile @@ -71,18 +71,13 @@ if direct_sibling_gems.any? && end end -# Use the StructuredMerge TSLP branch until upstream ships parser API bindings. +# Use the released TSLP gem by default; templating can override it via VENDORED_GEMS. vendored_gems = ENV.fetch('VENDORED_GEMS', '').split(',').map(&:strip) tslp_declared_by_templating = ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? && vendored_gems.include?('tree_sitter_language_pack') unless tslp_declared_by_templating - gem( - 'tree_sitter_language_pack', - git: 'https://github.com/structuredmerge/tree-sitter-language-pack.git', - branch: 'fix/ruby-parser-api-methods', - glob: 'packages/ruby/*.gemspec' - ) + gem 'tree_sitter_language_pack', '>= 1.13.2', '< 2.0' end # Templating (env-switched: STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local paths) diff --git a/gems/ast-template/Gemfile b/gems/ast-template/Gemfile index b6f2f63ff..7a65388b6 100644 --- a/gems/ast-template/Gemfile +++ b/gems/ast-template/Gemfile @@ -71,18 +71,13 @@ if direct_sibling_gems.any? && end end -# Use the StructuredMerge TSLP branch until upstream ships parser API bindings. +# Use the released TSLP gem by default; templating can override it via VENDORED_GEMS. vendored_gems = ENV.fetch('VENDORED_GEMS', '').split(',').map(&:strip) tslp_declared_by_templating = ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? && vendored_gems.include?('tree_sitter_language_pack') unless tslp_declared_by_templating - gem( - 'tree_sitter_language_pack', - git: 'https://github.com/structuredmerge/tree-sitter-language-pack.git', - branch: 'fix/ruby-parser-api-methods', - glob: 'packages/ruby/*.gemspec' - ) + gem 'tree_sitter_language_pack', '>= 1.13.2', '< 2.0' end # Templating (env-switched: STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local paths) diff --git a/gems/bash-merge/Gemfile b/gems/bash-merge/Gemfile index 1d417c46e..59fdb22b6 100644 --- a/gems/bash-merge/Gemfile +++ b/gems/bash-merge/Gemfile @@ -72,18 +72,13 @@ if direct_sibling_gems.any? && end end -# Use the StructuredMerge TSLP branch until upstream ships parser API bindings. +# Use the released TSLP gem by default; templating can override it via VENDORED_GEMS. vendored_gems = ENV.fetch('VENDORED_GEMS', '').split(',').map(&:strip) tslp_declared_by_templating = ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? && vendored_gems.include?('tree_sitter_language_pack') unless tslp_declared_by_templating - gem( - 'tree_sitter_language_pack', - git: 'https://github.com/structuredmerge/tree-sitter-language-pack.git', - branch: 'fix/ruby-parser-api-methods', - glob: 'packages/ruby/*.gemspec' - ) + gem 'tree_sitter_language_pack', '>= 1.13.2', '< 2.0' end # Templating (env-switched: STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local paths) diff --git a/gems/binary-merge/Gemfile b/gems/binary-merge/Gemfile index 470706659..0180260a7 100644 --- a/gems/binary-merge/Gemfile +++ b/gems/binary-merge/Gemfile @@ -71,18 +71,13 @@ if direct_sibling_gems.any? && end end -# Use the StructuredMerge TSLP branch until upstream ships parser API bindings. +# Use the released TSLP gem by default; templating can override it via VENDORED_GEMS. vendored_gems = ENV.fetch('VENDORED_GEMS', '').split(',').map(&:strip) tslp_declared_by_templating = ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? && vendored_gems.include?('tree_sitter_language_pack') unless tslp_declared_by_templating - gem( - 'tree_sitter_language_pack', - git: 'https://github.com/structuredmerge/tree-sitter-language-pack.git', - branch: 'fix/ruby-parser-api-methods', - glob: 'packages/ruby/*.gemspec' - ) + gem 'tree_sitter_language_pack', '>= 1.13.2', '< 2.0' end # Templating (env-switched: STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local paths) diff --git a/gems/citrus-toml-merge/Gemfile b/gems/citrus-toml-merge/Gemfile index e413eec9e..2f39a8ac7 100644 --- a/gems/citrus-toml-merge/Gemfile +++ b/gems/citrus-toml-merge/Gemfile @@ -71,18 +71,13 @@ if direct_sibling_gems.any? && end end -# Use the StructuredMerge TSLP branch until upstream ships parser API bindings. +# Use the released TSLP gem by default; templating can override it via VENDORED_GEMS. vendored_gems = ENV.fetch('VENDORED_GEMS', '').split(',').map(&:strip) tslp_declared_by_templating = ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? && vendored_gems.include?('tree_sitter_language_pack') unless tslp_declared_by_templating - gem( - 'tree_sitter_language_pack', - git: 'https://github.com/structuredmerge/tree-sitter-language-pack.git', - branch: 'fix/ruby-parser-api-methods', - glob: 'packages/ruby/*.gemspec' - ) + gem 'tree_sitter_language_pack', '>= 1.13.2', '< 2.0' end # Templating (env-switched: STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local paths) diff --git a/gems/commonmarker-merge/Gemfile b/gems/commonmarker-merge/Gemfile index 4752786b9..c85609d70 100644 --- a/gems/commonmarker-merge/Gemfile +++ b/gems/commonmarker-merge/Gemfile @@ -71,18 +71,13 @@ if direct_sibling_gems.any? && end end -# Use the StructuredMerge TSLP branch until upstream ships parser API bindings. +# Use the released TSLP gem by default; templating can override it via VENDORED_GEMS. vendored_gems = ENV.fetch('VENDORED_GEMS', '').split(',').map(&:strip) tslp_declared_by_templating = ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? && vendored_gems.include?('tree_sitter_language_pack') unless tslp_declared_by_templating - gem( - 'tree_sitter_language_pack', - git: 'https://github.com/structuredmerge/tree-sitter-language-pack.git', - branch: 'fix/ruby-parser-api-methods', - glob: 'packages/ruby/*.gemspec' - ) + gem 'tree_sitter_language_pack', '>= 1.13.2', '< 2.0' end # Templating (env-switched: STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local paths) diff --git a/gems/dotenv-merge/Gemfile b/gems/dotenv-merge/Gemfile index 61e3cb17e..53ea939e9 100644 --- a/gems/dotenv-merge/Gemfile +++ b/gems/dotenv-merge/Gemfile @@ -72,18 +72,13 @@ if direct_sibling_gems.any? && end end -# Use the StructuredMerge TSLP branch until upstream ships parser API bindings. +# Use the released TSLP gem by default; templating can override it via VENDORED_GEMS. vendored_gems = ENV.fetch('VENDORED_GEMS', '').split(',').map(&:strip) tslp_declared_by_templating = ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? && vendored_gems.include?('tree_sitter_language_pack') unless tslp_declared_by_templating - gem( - 'tree_sitter_language_pack', - git: 'https://github.com/structuredmerge/tree-sitter-language-pack.git', - branch: 'fix/ruby-parser-api-methods', - glob: 'packages/ruby/*.gemspec' - ) + gem 'tree_sitter_language_pack', '>= 1.13.2', '< 2.0' end # Templating (env-switched: STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local paths) diff --git a/gems/go-merge/Gemfile b/gems/go-merge/Gemfile index e0b466400..6a1615787 100644 --- a/gems/go-merge/Gemfile +++ b/gems/go-merge/Gemfile @@ -72,18 +72,13 @@ if direct_sibling_gems.any? && end end -# Use the StructuredMerge TSLP branch until upstream ships parser API bindings. +# Use the released TSLP gem by default; templating can override it via VENDORED_GEMS. vendored_gems = ENV.fetch('VENDORED_GEMS', '').split(',').map(&:strip) tslp_declared_by_templating = ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? && vendored_gems.include?('tree_sitter_language_pack') unless tslp_declared_by_templating - gem( - 'tree_sitter_language_pack', - git: 'https://github.com/structuredmerge/tree-sitter-language-pack.git', - branch: 'fix/ruby-parser-api-methods', - glob: 'packages/ruby/*.gemspec' - ) + gem 'tree_sitter_language_pack', '>= 1.13.2', '< 2.0' end # Templating (env-switched: STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local paths) diff --git a/gems/html-merge/Gemfile b/gems/html-merge/Gemfile index fbb9bb09f..7234e20f6 100644 --- a/gems/html-merge/Gemfile +++ b/gems/html-merge/Gemfile @@ -22,18 +22,13 @@ gemspec nomono_requirements = ["~> 1.0", ">= 1.0.8"] gem "nomono", *nomono_requirements, require: false # ruby >= 2.2 -# Use the StructuredMerge TSLP branch until upstream ships parser API bindings. +# Use the released TSLP gem by default; templating can override it via VENDORED_GEMS. vendored_gems = ENV.fetch("VENDORED_GEMS", "").split(",").map(&:strip) tslp_declared_by_templating = ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? && vendored_gems.include?("tree_sitter_language_pack") unless tslp_declared_by_templating - gem( - "tree_sitter_language_pack", - git: "https://github.com/structuredmerge/tree-sitter-language-pack.git", - branch: "fix/ruby-parser-api-methods", - glob: "packages/ruby/*.gemspec" - ) + gem "tree_sitter_language_pack", ">= 1.13.2", "< 2.0" end # Templating (env-switched: STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local paths) diff --git a/gems/json-merge/Gemfile b/gems/json-merge/Gemfile index 4446e7369..946f9fba1 100644 --- a/gems/json-merge/Gemfile +++ b/gems/json-merge/Gemfile @@ -72,18 +72,13 @@ if direct_sibling_gems.any? && end end -# Use the StructuredMerge TSLP branch until upstream ships parser API bindings. +# Use the released TSLP gem by default; templating can override it via VENDORED_GEMS. vendored_gems = ENV.fetch('VENDORED_GEMS', '').split(',').map(&:strip) tslp_declared_by_templating = ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? && vendored_gems.include?('tree_sitter_language_pack') unless tslp_declared_by_templating - gem( - 'tree_sitter_language_pack', - git: 'https://github.com/structuredmerge/tree-sitter-language-pack.git', - branch: 'fix/ruby-parser-api-methods', - glob: 'packages/ruby/*.gemspec' - ) + gem 'tree_sitter_language_pack', '>= 1.13.2', '< 2.0' end # Templating (env-switched: STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local paths) diff --git a/gems/kettle-jem/CHANGELOG.md b/gems/kettle-jem/CHANGELOG.md index 60d2d8e21..edb37e556 100644 --- a/gems/kettle-jem/CHANGELOG.md +++ b/gems/kettle-jem/CHANGELOG.md @@ -31,10 +31,9 @@ Please file a bug if you notice a violation of semantic versioning. - Generated multi-engine workflow files, including `heads.yml` and `dep-heads.yml`, now omit JRuby and TruffleRuby jobs when the project config declares an MRI-only `engines` list. -- `kettle-jem`'s default development bundle now pins - `tree_sitter_language_pack` to the StructuredMerge fork branch that exposes - the Ruby parser API, while still allowing templating runs to override it with - `VENDORED_GEMS`. +- `kettle-jem`'s generated development Gemfiles now depend on released + `tree_sitter_language_pack` 1.13.2 or newer by default, while still allowing + templating runs to override it with `VENDORED_GEMS`. - Gemspec templating now deletes empty generated development-dependency comment sections through Prism-backed CRISPR structural edits, preventing blank-line churn before the closing `Gem::Specification` `end`. diff --git a/gems/kettle-jem/Gemfile b/gems/kettle-jem/Gemfile index b40fefe04..53510009b 100644 --- a/gems/kettle-jem/Gemfile +++ b/gems/kettle-jem/Gemfile @@ -92,18 +92,13 @@ if direct_sibling_gems.any? && end end -# Use the StructuredMerge TSLP branch until upstream ships parser API bindings. +# Use the released TSLP gem by default; templating can override it via VENDORED_GEMS. vendored_gems = ENV.fetch("VENDORED_GEMS", "").split(",").map(&:strip) tslp_declared_by_templating = ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? && - vendored_gems.include?("tree_sitter_language_pack") + vendored_gems.include?("tree_sitter_language_pack") unless tslp_declared_by_templating - gem( - "tree_sitter_language_pack", - git: "https://github.com/structuredmerge/tree-sitter-language-pack.git", - branch: "fix/ruby-parser-api-methods", - glob: "packages/ruby/*.gemspec" - ) + gem "tree_sitter_language_pack", ">= 1.13.2", "< 2.0" end # Templating (env-switched: STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local paths) diff --git a/gems/kettle-jem/lib/kettle/jem/templates/Gemfile.example b/gems/kettle-jem/lib/kettle/jem/templates/Gemfile.example index e8954c051..349d651f3 100644 --- a/gems/kettle-jem/lib/kettle/jem/templates/Gemfile.example +++ b/gems/kettle-jem/lib/kettle/jem/templates/Gemfile.example @@ -22,18 +22,13 @@ gemspec {KJ|MAIN_GEMFILE_DIRECT_SIBLING_BLOCK} -# Use the StructuredMerge TSLP branch until upstream ships parser API bindings. +# Use the released TSLP gem by default; templating can override it via VENDORED_GEMS. vendored_gems = ENV.fetch("VENDORED_GEMS", "").split(",").map(&:strip) tslp_declared_by_templating = ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? && vendored_gems.include?("tree_sitter_language_pack") unless tslp_declared_by_templating - gem( - "tree_sitter_language_pack", - git: "https://github.com/structuredmerge/tree-sitter-language-pack.git", - branch: "fix/ruby-parser-api-methods", - glob: "packages/ruby/*.gemspec" - ) + gem "tree_sitter_language_pack", ">= 1.13.2", "< 2.0" end # Templating (env-switched: STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local paths) diff --git a/gems/kettle-jem/spec/thin_slice_spec.rb b/gems/kettle-jem/spec/thin_slice_spec.rb index 261bb86aa..1f20541e1 100644 --- a/gems/kettle-jem/spec/thin_slice_spec.rb +++ b/gems/kettle-jem/spec/thin_slice_spec.rb @@ -14565,10 +14565,10 @@ def register_kettle_jem_plugin(registrar) expect(direct_block).to include('prefix: "RUBYTHEMS"') expect(direct_block).to include('path_env: "RUBYTHEMS_DEV"') expect(direct_block).to include('root: ["src", "my", "rubythems"]') - expect(gemfile).to include("Use the StructuredMerge TSLP branch") - expect(gemfile).to include("https://github.com/structuredmerge/tree-sitter-language-pack.git") - expect(gemfile).to include('branch: "fix/ruby-parser-api-methods"') - expect(gemfile).to include('glob: "packages/ruby/*.gemspec"') + expect(gemfile).to include("Use the released TSLP gem by default") + expect(gemfile).to include('gem "tree_sitter_language_pack", ">= 1.13.2", "< 2.0"') + expect(gemfile).not_to include("https://github.com/structuredmerge/tree-sitter-language-pack.git") + expect(gemfile).not_to include('branch: "fix/ruby-parser-api-methods"') expect(File.read(File.join(root, "Gemfile"))).to eq(gemfile) end end diff --git a/gems/kramdown-merge/Gemfile b/gems/kramdown-merge/Gemfile index 2090855d6..7a90fd32b 100644 --- a/gems/kramdown-merge/Gemfile +++ b/gems/kramdown-merge/Gemfile @@ -71,18 +71,13 @@ if direct_sibling_gems.any? && end end -# Use the StructuredMerge TSLP branch until upstream ships parser API bindings. +# Use the released TSLP gem by default; templating can override it via VENDORED_GEMS. vendored_gems = ENV.fetch('VENDORED_GEMS', '').split(',').map(&:strip) tslp_declared_by_templating = ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? && vendored_gems.include?('tree_sitter_language_pack') unless tslp_declared_by_templating - gem( - 'tree_sitter_language_pack', - git: 'https://github.com/structuredmerge/tree-sitter-language-pack.git', - branch: 'fix/ruby-parser-api-methods', - glob: 'packages/ruby/*.gemspec' - ) + gem 'tree_sitter_language_pack', '>= 1.13.2', '< 2.0' end # Templating (env-switched: STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local paths) diff --git a/gems/markdown-merge/Gemfile b/gems/markdown-merge/Gemfile index d2b15df1f..839663323 100644 --- a/gems/markdown-merge/Gemfile +++ b/gems/markdown-merge/Gemfile @@ -72,18 +72,13 @@ if direct_sibling_gems.any? && end end -# Use the StructuredMerge TSLP branch until upstream ships parser API bindings. +# Use the released TSLP gem by default; templating can override it via VENDORED_GEMS. vendored_gems = ENV.fetch('VENDORED_GEMS', '').split(',').map(&:strip) tslp_declared_by_templating = ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? && vendored_gems.include?('tree_sitter_language_pack') unless tslp_declared_by_templating - gem( - 'tree_sitter_language_pack', - git: 'https://github.com/structuredmerge/tree-sitter-language-pack.git', - branch: 'fix/ruby-parser-api-methods', - glob: 'packages/ruby/*.gemspec' - ) + gem 'tree_sitter_language_pack', '>= 1.13.2', '< 2.0' end # Templating (env-switched: STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local paths) diff --git a/gems/markly-merge/Gemfile b/gems/markly-merge/Gemfile index db76b8b9f..9f68e39b0 100644 --- a/gems/markly-merge/Gemfile +++ b/gems/markly-merge/Gemfile @@ -71,18 +71,13 @@ if direct_sibling_gems.any? && end end -# Use the StructuredMerge TSLP branch until upstream ships parser API bindings. +# Use the released TSLP gem by default; templating can override it via VENDORED_GEMS. vendored_gems = ENV.fetch('VENDORED_GEMS', '').split(',').map(&:strip) tslp_declared_by_templating = ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? && vendored_gems.include?('tree_sitter_language_pack') unless tslp_declared_by_templating - gem( - 'tree_sitter_language_pack', - git: 'https://github.com/structuredmerge/tree-sitter-language-pack.git', - branch: 'fix/ruby-parser-api-methods', - glob: 'packages/ruby/*.gemspec' - ) + gem 'tree_sitter_language_pack', '>= 1.13.2', '< 2.0' end # Templating (env-switched: STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local paths) diff --git a/gems/parslet-toml-merge/Gemfile b/gems/parslet-toml-merge/Gemfile index 210b6b610..40b47e113 100644 --- a/gems/parslet-toml-merge/Gemfile +++ b/gems/parslet-toml-merge/Gemfile @@ -71,18 +71,13 @@ if direct_sibling_gems.any? && end end -# Use the StructuredMerge TSLP branch until upstream ships parser API bindings. +# Use the released TSLP gem by default; templating can override it via VENDORED_GEMS. vendored_gems = ENV.fetch('VENDORED_GEMS', '').split(',').map(&:strip) tslp_declared_by_templating = ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? && vendored_gems.include?('tree_sitter_language_pack') unless tslp_declared_by_templating - gem( - 'tree_sitter_language_pack', - git: 'https://github.com/structuredmerge/tree-sitter-language-pack.git', - branch: 'fix/ruby-parser-api-methods', - glob: 'packages/ruby/*.gemspec' - ) + gem 'tree_sitter_language_pack', '>= 1.13.2', '< 2.0' end # Templating (env-switched: STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local paths) diff --git a/gems/plain-merge/Gemfile b/gems/plain-merge/Gemfile index 11de70310..b7ff6a13b 100644 --- a/gems/plain-merge/Gemfile +++ b/gems/plain-merge/Gemfile @@ -72,18 +72,13 @@ if direct_sibling_gems.any? && end end -# Use the StructuredMerge TSLP branch until upstream ships parser API bindings. +# Use the released TSLP gem by default; templating can override it via VENDORED_GEMS. vendored_gems = ENV.fetch('VENDORED_GEMS', '').split(',').map(&:strip) tslp_declared_by_templating = ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? && vendored_gems.include?('tree_sitter_language_pack') unless tslp_declared_by_templating - gem( - 'tree_sitter_language_pack', - git: 'https://github.com/structuredmerge/tree-sitter-language-pack.git', - branch: 'fix/ruby-parser-api-methods', - glob: 'packages/ruby/*.gemspec' - ) + gem 'tree_sitter_language_pack', '>= 1.13.2', '< 2.0' end # Templating (env-switched: STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local paths) diff --git a/gems/prism-merge/Gemfile b/gems/prism-merge/Gemfile index fe9294106..ffeccbf5b 100644 --- a/gems/prism-merge/Gemfile +++ b/gems/prism-merge/Gemfile @@ -71,18 +71,13 @@ if direct_sibling_gems.any? && end end -# Use the StructuredMerge TSLP branch until upstream ships parser API bindings. +# Use the released TSLP gem by default; templating can override it via VENDORED_GEMS. vendored_gems = ENV.fetch('VENDORED_GEMS', '').split(',').map(&:strip) tslp_declared_by_templating = ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? && vendored_gems.include?('tree_sitter_language_pack') unless tslp_declared_by_templating - gem( - 'tree_sitter_language_pack', - git: 'https://github.com/structuredmerge/tree-sitter-language-pack.git', - branch: 'fix/ruby-parser-api-methods', - glob: 'packages/ruby/*.gemspec' - ) + gem 'tree_sitter_language_pack', '>= 1.13.2', '< 2.0' end # Templating (env-switched: STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local paths) diff --git a/gems/psych-merge/Gemfile b/gems/psych-merge/Gemfile index 8a960f7a3..c77ca2716 100644 --- a/gems/psych-merge/Gemfile +++ b/gems/psych-merge/Gemfile @@ -73,18 +73,13 @@ if direct_sibling_gems.any? && end end -# Use the StructuredMerge TSLP branch until upstream ships parser API bindings. +# Use the released TSLP gem by default; templating can override it via VENDORED_GEMS. vendored_gems = ENV.fetch('VENDORED_GEMS', '').split(',').map(&:strip) tslp_declared_by_templating = ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? && vendored_gems.include?('tree_sitter_language_pack') unless tslp_declared_by_templating - gem( - 'tree_sitter_language_pack', - git: 'https://github.com/structuredmerge/tree-sitter-language-pack.git', - branch: 'fix/ruby-parser-api-methods', - glob: 'packages/ruby/*.gemspec' - ) + gem 'tree_sitter_language_pack', '>= 1.13.2', '< 2.0' end # Templating (env-switched: STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local paths) diff --git a/gems/rbs-merge/Gemfile b/gems/rbs-merge/Gemfile index d576d176b..774e863cd 100644 --- a/gems/rbs-merge/Gemfile +++ b/gems/rbs-merge/Gemfile @@ -72,18 +72,13 @@ if direct_sibling_gems.any? && end end -# Use the StructuredMerge TSLP branch until upstream ships parser API bindings. +# Use the released TSLP gem by default; templating can override it via VENDORED_GEMS. vendored_gems = ENV.fetch('VENDORED_GEMS', '').split(',').map(&:strip) tslp_declared_by_templating = ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? && vendored_gems.include?('tree_sitter_language_pack') unless tslp_declared_by_templating - gem( - 'tree_sitter_language_pack', - git: 'https://github.com/structuredmerge/tree-sitter-language-pack.git', - branch: 'fix/ruby-parser-api-methods', - glob: 'packages/ruby/*.gemspec' - ) + gem 'tree_sitter_language_pack', '>= 1.13.2', '< 2.0' end # Templating (env-switched: STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local paths) diff --git a/gems/ruby-merge/Gemfile b/gems/ruby-merge/Gemfile index 64beeed8d..30f805ab6 100644 --- a/gems/ruby-merge/Gemfile +++ b/gems/ruby-merge/Gemfile @@ -72,18 +72,13 @@ if direct_sibling_gems.any? && end end -# Use the StructuredMerge TSLP branch until upstream ships parser API bindings. +# Use the released TSLP gem by default; templating can override it via VENDORED_GEMS. vendored_gems = ENV.fetch('VENDORED_GEMS', '').split(',').map(&:strip) tslp_declared_by_templating = ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? && vendored_gems.include?('tree_sitter_language_pack') unless tslp_declared_by_templating - gem( - 'tree_sitter_language_pack', - git: 'https://github.com/structuredmerge/tree-sitter-language-pack.git', - branch: 'fix/ruby-parser-api-methods', - glob: 'packages/ruby/*.gemspec' - ) + gem 'tree_sitter_language_pack', '>= 1.13.2', '< 2.0' end # Templating (env-switched: STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local paths) diff --git a/gems/rust-merge/Gemfile b/gems/rust-merge/Gemfile index 77d466406..20138097e 100644 --- a/gems/rust-merge/Gemfile +++ b/gems/rust-merge/Gemfile @@ -72,18 +72,13 @@ if direct_sibling_gems.any? && end end -# Use the StructuredMerge TSLP branch until upstream ships parser API bindings. +# Use the released TSLP gem by default; templating can override it via VENDORED_GEMS. vendored_gems = ENV.fetch('VENDORED_GEMS', '').split(',').map(&:strip) tslp_declared_by_templating = ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? && vendored_gems.include?('tree_sitter_language_pack') unless tslp_declared_by_templating - gem( - 'tree_sitter_language_pack', - git: 'https://github.com/structuredmerge/tree-sitter-language-pack.git', - branch: 'fix/ruby-parser-api-methods', - glob: 'packages/ruby/*.gemspec' - ) + gem 'tree_sitter_language_pack', '>= 1.13.2', '< 2.0' end # Templating (env-switched: STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local paths) diff --git a/gems/smorg-rb/Gemfile b/gems/smorg-rb/Gemfile index 88673fe14..288bb92f2 100644 --- a/gems/smorg-rb/Gemfile +++ b/gems/smorg-rb/Gemfile @@ -77,18 +77,13 @@ if direct_sibling_gems.any? && end end -# Use the StructuredMerge TSLP branch until upstream ships parser API bindings. +# Use the released TSLP gem by default; templating can override it via VENDORED_GEMS. vendored_gems = ENV.fetch('VENDORED_GEMS', '').split(',').map(&:strip) tslp_declared_by_templating = ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? && vendored_gems.include?('tree_sitter_language_pack') unless tslp_declared_by_templating - gem( - 'tree_sitter_language_pack', - git: 'https://github.com/structuredmerge/tree-sitter-language-pack.git', - branch: 'fix/ruby-parser-api-methods', - glob: 'packages/ruby/*.gemspec' - ) + gem 'tree_sitter_language_pack', '>= 1.13.2', '< 2.0' end # Templating (env-switched: STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local paths) diff --git a/gems/toml-merge/Gemfile b/gems/toml-merge/Gemfile index b96eb1f39..768ddfd04 100644 --- a/gems/toml-merge/Gemfile +++ b/gems/toml-merge/Gemfile @@ -72,18 +72,13 @@ if direct_sibling_gems.any? && end end -# Use the StructuredMerge TSLP branch until upstream ships parser API bindings. +# Use the released TSLP gem by default; templating can override it via VENDORED_GEMS. vendored_gems = ENV.fetch('VENDORED_GEMS', '').split(',').map(&:strip) tslp_declared_by_templating = ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? && vendored_gems.include?('tree_sitter_language_pack') unless tslp_declared_by_templating - gem( - 'tree_sitter_language_pack', - git: 'https://github.com/structuredmerge/tree-sitter-language-pack.git', - branch: 'fix/ruby-parser-api-methods', - glob: 'packages/ruby/*.gemspec' - ) + gem 'tree_sitter_language_pack', '>= 1.13.2', '< 2.0' end # Templating (env-switched: STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local paths) diff --git a/gems/tree_haver/Gemfile b/gems/tree_haver/Gemfile index 068feaa84..aee2f90f3 100644 --- a/gems/tree_haver/Gemfile +++ b/gems/tree_haver/Gemfile @@ -21,12 +21,13 @@ gemspec # Local workspace dependency wiring for *_local.gemfile overrides nomono_requirements = ['~> 1.0', '>= 1.0.8'] gem 'nomono', *nomono_requirements, require: false # ruby >= 2.2 -# Use the StructuredMerge TSLP branch until upstream ships parser API bindings. +# Use the released TSLP gem by default; templating can override it via VENDORED_GEMS. vendored_gems = ENV.fetch('VENDORED_GEMS', '').split(',').map(&:strip) tslp_declared_by_templating = ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? && vendored_gems.include?('tree_sitter_language_pack') unless tslp_declared_by_templating + gem 'tree_sitter_language_pack', '>= 1.13.2', '< 2.0' end # Templating (env-switched: STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local paths) diff --git a/gems/typescript-merge/Gemfile b/gems/typescript-merge/Gemfile index 1eea09b8c..916f2ed51 100644 --- a/gems/typescript-merge/Gemfile +++ b/gems/typescript-merge/Gemfile @@ -72,18 +72,13 @@ if direct_sibling_gems.any? && end end -# Use the StructuredMerge TSLP branch until upstream ships parser API bindings. +# Use the released TSLP gem by default; templating can override it via VENDORED_GEMS. vendored_gems = ENV.fetch('VENDORED_GEMS', '').split(',').map(&:strip) tslp_declared_by_templating = ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? && vendored_gems.include?('tree_sitter_language_pack') unless tslp_declared_by_templating - gem( - 'tree_sitter_language_pack', - git: 'https://github.com/structuredmerge/tree-sitter-language-pack.git', - branch: 'fix/ruby-parser-api-methods', - glob: 'packages/ruby/*.gemspec' - ) + gem 'tree_sitter_language_pack', '>= 1.13.2', '< 2.0' end # Templating (env-switched: STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local paths) diff --git a/gems/yaml-merge/Gemfile b/gems/yaml-merge/Gemfile index c248811c4..7c2f421f7 100644 --- a/gems/yaml-merge/Gemfile +++ b/gems/yaml-merge/Gemfile @@ -72,18 +72,13 @@ if direct_sibling_gems.any? && end end -# Use the StructuredMerge TSLP branch until upstream ships parser API bindings. +# Use the released TSLP gem by default; templating can override it via VENDORED_GEMS. vendored_gems = ENV.fetch('VENDORED_GEMS', '').split(',').map(&:strip) tslp_declared_by_templating = ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? && vendored_gems.include?('tree_sitter_language_pack') unless tslp_declared_by_templating - gem( - 'tree_sitter_language_pack', - git: 'https://github.com/structuredmerge/tree-sitter-language-pack.git', - branch: 'fix/ruby-parser-api-methods', - glob: 'packages/ruby/*.gemspec' - ) + gem 'tree_sitter_language_pack', '>= 1.13.2', '< 2.0' end # Templating (env-switched: STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local paths) diff --git a/gems/zip-merge/Gemfile b/gems/zip-merge/Gemfile index 8dc2fa4d9..9b7772c5b 100644 --- a/gems/zip-merge/Gemfile +++ b/gems/zip-merge/Gemfile @@ -71,18 +71,13 @@ if direct_sibling_gems.any? && end end -# Use the StructuredMerge TSLP branch until upstream ships parser API bindings. +# Use the released TSLP gem by default; templating can override it via VENDORED_GEMS. vendored_gems = ENV.fetch('VENDORED_GEMS', '').split(',').map(&:strip) tslp_declared_by_templating = ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? && vendored_gems.include?('tree_sitter_language_pack') unless tslp_declared_by_templating - gem( - 'tree_sitter_language_pack', - git: 'https://github.com/structuredmerge/tree-sitter-language-pack.git', - branch: 'fix/ruby-parser-api-methods', - glob: 'packages/ruby/*.gemspec' - ) + gem 'tree_sitter_language_pack', '>= 1.13.2', '< 2.0' end # Templating (env-switched: STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local paths) From c10bb514f88e96613ae769415248586d89a39a04 Mon Sep 17 00:00:00 2001 From: "Peter H. Boling" Date: Mon, 20 Jul 2026 11:17:08 -0600 Subject: [PATCH 070/188] Add corporate sponsor README template support Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- gems/kettle-jem/CHANGELOG.md | 2 + gems/kettle-jem/lib/kettle/jem.rb | 84 +++++++++++++++ .../.structuredmerge/kettle-jem.yml.example | 9 ++ .../kettle/jem/templates/README.md.example | 1 + gems/kettle-jem/spec/thin_slice_spec.rb | 100 ++++++++++++++++++ 5 files changed, 196 insertions(+) diff --git a/gems/kettle-jem/CHANGELOG.md b/gems/kettle-jem/CHANGELOG.md index edb37e556..1de55fc38 100644 --- a/gems/kettle-jem/CHANGELOG.md +++ b/gems/kettle-jem/CHANGELOG.md @@ -45,6 +45,8 @@ Please file a bug if you notice a violation of semantic versioning. ### Added +- Generated READMEs can now render template-managed corporate sponsor logos + from `readme.corporate_sponsors` config or family-provided sponsorship data. - `kettle-jem` now supports `--events` for newline-delimited JSON progress events, including named event type filters via comma-separated `--events=TYPE,...` values, phase events, per-recipe template progress, diff --git a/gems/kettle-jem/lib/kettle/jem.rb b/gems/kettle-jem/lib/kettle/jem.rb index 1cbecc5d6..3717103b1 100644 --- a/gems/kettle-jem/lib/kettle/jem.rb +++ b/gems/kettle-jem/lib/kettle/jem.rb @@ -348,6 +348,7 @@ class Error < StandardError; end KJ|MIN_RUBY KJ|OPENCOLLECTIVE_ORG KJ|README:COPYRIGHT_NOTICE + KJ|README:CORPORATE_SPONSORS KJ|README:FAMILY_INTRO_BACKEND_MATRIX KJ|README:LICENSE_BADGE KJ|README:LICENSE_COMPAT_BADGE @@ -2801,6 +2802,8 @@ def discover_monorepo_root_facts(project_root, kettle_config, env, template_sele repository: facts[:repository] ) facts[:readme_logo] = readme_logo unless readme_logo.empty? + readme_sponsors = readme_corporate_sponsors_facts(kettle_config, env) + facts[:readme_sponsors] = readme_sponsors unless readme_sponsors.empty? disabled_integrations = disabled_integrations(kettle_config, license: license) facts[:integrations] = {disabled: disabled_integrations} unless disabled_integrations.empty? template_facts = {} @@ -3058,6 +3061,8 @@ def discover_facts(project_root, env: ENV, run_options: {}) repository: facts[:repository] ) facts[:readme_logo] = readme_logo unless readme_logo.empty? + readme_sponsors = readme_corporate_sponsors_facts(kettle_config, env) + facts[:readme_sponsors] = readme_sponsors unless readme_sponsors.empty? readme_style = readme_style_facts( project_root, kettle_config, @@ -4141,6 +4146,7 @@ def readme_template_tokens(facts) "KJ|GL:USER" => "", "KJ|PROJECT_EMOJI" => "💎", "KJ|README:COPYRIGHT_NOTICE" => "", + "KJ|README:CORPORATE_SPONSORS" => "", "KJ|README:LICENSE_BADGE" => "", "KJ|README:LICENSE_COMPAT_BADGE" => "", "KJ|README:DEV_TEST_STACK_TABLE" => "", @@ -10405,6 +10411,8 @@ def template_tokens(facts, funding) readme_url_template_tokens(facts.fetch(:repository, {}), package.fetch(:name).to_s, github_org) ).merge( readme_logo_template_tokens(facts.fetch(:readme_logo, {})) + ).merge( + readme_corporate_sponsor_template_tokens(facts.fetch(:readme_sponsors, {})) ) org = funding[:open_collective_org].to_s tokens["KJ|OPENCOLLECTIVE_ORG"] = org @@ -12025,6 +12033,76 @@ def readme_logo_facts(config, package_name:, github_org:, repository: {}) ) end + def readme_corporate_sponsors_facts(config, env) + sponsors = readme_corporate_sponsors(config, env) + compact_hash( + entries: sponsors, + row: readme_corporate_sponsors_row(sponsors) + ) + end + + def readme_corporate_sponsors(config, env) + readme_config = readme_config_hash(config) + configured = normalize_readme_corporate_sponsors( + readme_config["corporate_sponsors"] || readme_config["sponsors"] + ) + inherited = normalize_readme_corporate_sponsors_json(env["KETTLE_JEM_CORPORATE_SPONSORS_JSON"]) + deduplicate_readme_corporate_sponsors(configured + inherited) + end + + def normalize_readme_corporate_sponsors_json(value) + clean = value.to_s.strip + return [] if clean.empty? + + parsed = JSON.parse(clean) + normalize_readme_corporate_sponsors(parsed) + rescue JSON::ParserError + raise ArgumentError, "invalid KETTLE_JEM_CORPORATE_SPONSORS_JSON" + end + + def normalize_readme_corporate_sponsors(value) + Array(value).filter_map do |entry| + unless entry.is_a?(Hash) + raise ArgumentError, "corporate sponsor entries must be mappings with name, url, and img_src" + end + + name = entry["name"].to_s.strip + url = entry["url"].to_s.strip + img_src = entry["img_src"].to_s.strip + if name.empty? || url.empty? || img_src.empty? + raise ArgumentError, "corporate sponsor entries require name, url, and img_src" + end + + { + name: name, + url: url, + img_src: img_src + } + end + end + + def deduplicate_readme_corporate_sponsors(sponsors) + sponsors + .group_by { |sponsor| [sponsor[:name], sponsor[:url], sponsor[:img_src]] } + .values + .map(&:first) + end + + def readme_corporate_sponsors_row(sponsors) + return "" if sponsors.empty? + + label = sponsors.one? ? "Corporate sponsor:" : "Corporate sponsors:" + logos = sponsors.map do |sponsor| + [ + %(), + %(#{html_attribute_escape(sponsor.fetch(:name))}), + "" + ].join + end.join(" ") + %(

        #{label} #{logos} Become a sponsor

        ) + end + def readme_top_logo_options(config) readme_logo_options_from_config(config, "top_logos", "top_logo_options", README_TOP_LOGO_DEFAULTS) end @@ -12315,6 +12393,12 @@ def readme_logo_template_tokens(readme_logo) } end + def readme_corporate_sponsor_template_tokens(readme_sponsors) + { + "KJ|README:CORPORATE_SPONSORS" => readme_sponsors[:row].to_s + } + end + def rubocop_template_tokens(min_ruby, ruby_style: {}) constraint, gem_name, gem_constraint = rubocop_tokens_for(min_ruby_version(min_ruby)) { diff --git a/gems/kettle-jem/lib/kettle/jem/templates/.structuredmerge/kettle-jem.yml.example b/gems/kettle-jem/lib/kettle/jem/templates/.structuredmerge/kettle-jem.yml.example index b39288366..2c3313a22 100644 --- a/gems/kettle-jem/lib/kettle/jem/templates/.structuredmerge/kettle-jem.yml.example +++ b/gems/kettle-jem/lib/kettle/jem/templates/.structuredmerge/kettle-jem.yml.example @@ -212,6 +212,15 @@ workflows: readme: top_logos: org h2_synopsis_logos: related-org,ruby + # Optional corporate sponsor logos shown near the top of the generated README. + # These entries are template-managed and render a compact logo row that links + # down to the generated FLOSS Funding section. Configure project-specific + # sponsors here; configure family-wide sponsors in kettle-family's config. + # + # corporate_sponsors: + # - name: Example Corp + # url: https://example.com + # img_src: https://example.com/logo.svg # Optional package-family README block. # Supported values: structuredmerge # Leave unset for standalone kettle-rb gems and most projects. diff --git a/gems/kettle-jem/lib/kettle/jem/templates/README.md.example b/gems/kettle-jem/lib/kettle/jem/templates/README.md.example index c5a6f580c..52d9e3cc7 100644 --- a/gems/kettle-jem/lib/kettle/jem/templates/README.md.example +++ b/gems/kettle-jem/lib/kettle/jem/templates/README.md.example @@ -18,6 +18,7 @@ [![Sponsor Me on Github][🖇sponsor-img]][🖇sponsor] [![Liberapay Goal Progress][⛳liberapay-img]][⛳liberapay] [![Donate on PayPal][🖇paypal-img]][🖇paypal] [![Buy me a coffee][🖇buyme-small-img]][🖇buyme] [![Donate at ko-fi.com][🖇kofi-img]][🖇kofi] +{KJ|README:CORPORATE_SPONSORS}
        👣 How will this project approach the September 2025 hostile takeover of RubyGems? 🚑️ diff --git a/gems/kettle-jem/spec/thin_slice_spec.rb b/gems/kettle-jem/spec/thin_slice_spec.rb index 1f20541e1..a5ac1ac94 100644 --- a/gems/kettle-jem/spec/thin_slice_spec.rb +++ b/gems/kettle-jem/spec/thin_slice_spec.rb @@ -13556,6 +13556,106 @@ module Example end end + it "renders configured corporate sponsor logos near the top of README" do + tmp_root = File.join(__dir__, "tmp") + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-readme-sponsor-token-slice", tmp_root) do |root| + write_tree(root, { + "example-gem.gemspec" => <<~RUBY, + Gem::Specification.new do |spec| + spec.name = "example-gem" + spec.summary = "Example gem" + spec.metadata["source_code_uri"] = "https://github.com/acme/example-gem" + end + RUBY + ".kettle-jem.yml" => <<~YAML, + readme: + corporate_sponsors: + - name: Example & Sons + url: https://example.com/sponsor?from=kettle&level=gold + img_src: https://example.com/logo.svg?badge=1&size=small + templates: + root: template + apply: true + entries: + - README.md + YAML + "template/README.md.example" => <<~MARKDOWN + Top funding row. + {KJ|README:CORPORATE_SPONSORS} + + ## 🦷 FLOSS Funding + MARKDOWN + }) + + plan = described_class.plan_project(root, env: {}) + template_report = plan[:recipe_reports].find do |report| + report.fetch(:recipe_name) == "template_source_application_README_md" + end + final_content = template_report.fetch(:final_content) + expected_sponsor_row = [ + %(

        Corporate sponsor: ), + %(Example & Sons), + %( Become a sponsor

        ) + ].join + + expect(final_content).to include(expected_sponsor_row) + expect(template_report.dig(:metadata, :template_tokens)).to include( + "KJ|README:CORPORATE_SPONSORS" => a_string_including("Corporate sponsor:") + ) + end + end + + it "renders corporate sponsors inherited from kettle-family environment" do + tmp_root = File.join(__dir__, "tmp") + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-readme-family-sponsor-token-slice", tmp_root) do |root| + sponsors_json = JSON.generate([ + { + "name" => "Family Sponsor", + "url" => "https://family.example", + "img_src" => "https://family.example/logo.svg" + } + ]) + write_tree(root, { + "example-gem.gemspec" => <<~RUBY, + Gem::Specification.new do |spec| + spec.name = "example-gem" + spec.summary = "Example gem" + spec.metadata["source_code_uri"] = "https://github.com/acme/example-gem" + end + RUBY + ".kettle-jem.yml" => <<~YAML, + templates: + root: template + apply: true + entries: + - README.md + YAML + "template/README.md.example" => "{KJ|README:CORPORATE_SPONSORS}\n" + }) + + plan = described_class.plan_project( + root, + env: {"KETTLE_JEM_CORPORATE_SPONSORS_JSON" => sponsors_json} + ) + template_report = plan[:recipe_reports].find do |report| + report.fetch(:recipe_name) == "template_source_application_README_md" + end + + expect(template_report.fetch(:final_content)).to include( + %(Family Sponsor) + ) + expect(plan.dig(:facts, :readme_sponsors, :entries)).to eq([ + { + name: "Family Sponsor", + url: "https://family.example", + img_src: "https://family.example/logo.svg" + } + ]) + end + end + it "keeps generated Synopsis H2 logo HTML when normalizing existing README headings and prunes stale logo refs" do tmp_root = File.join(__dir__, "tmp") FileUtils.mkdir_p(tmp_root) From 8a0456d7cef387e5a0122d76c93b1f4300d0c918 Mon Sep 17 00:00:00 2001 From: "Peter H. Boling" Date: Mon, 20 Jul 2026 11:32:04 -0600 Subject: [PATCH 071/188] Document sponsor template transfer entry Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- gems/kettle-jem/AGENTS.md | 6 ++++++ .../lib/kettle/jem/templates/CHANGELOG.transfer.md | 2 ++ 2 files changed, 8 insertions(+) diff --git a/gems/kettle-jem/AGENTS.md b/gems/kettle-jem/AGENTS.md index d5b41ba19..577725d3e 100644 --- a/gems/kettle-jem/AGENTS.md +++ b/gems/kettle-jem/AGENTS.md @@ -179,6 +179,12 @@ Use the `kettle-jem` executable as the public entrypoint. The `kettle:jem:*` rake tasks are internal orchestration targets that the executable may call after it has prepared the templating environment. +User-facing template output changes must also add an entry to +`lib/kettle/jem/templates/CHANGELOG.transfer.md`. This transfer changelog is +promoted into destination projects, so README, workflow, gemspec, config, +documentation, and other generated-template behavior changes need a concise +transfer entry in addition to the normal project changelog. + **Current defaults** (no flags needed): - **quiet=true** — only phase summary lines shown; use `--verbose` or `KETTLE_JEM_VERBOSE=true` to opt out - **force=true** — non-interactive; use `--interactive` to opt out diff --git a/gems/kettle-jem/lib/kettle/jem/templates/CHANGELOG.transfer.md b/gems/kettle-jem/lib/kettle/jem/templates/CHANGELOG.transfer.md index b12062e9e..2ac5cdd18 100644 --- a/gems/kettle-jem/lib/kettle/jem/templates/CHANGELOG.transfer.md +++ b/gems/kettle-jem/lib/kettle/jem/templates/CHANGELOG.transfer.md @@ -4,3 +4,5 @@ `LICENSE.md` instead of nonexistent `LICENSE.txt`. - kettle-jem-template-20260716-002 - Generated gemspec manifests now ship fewer repository-only files by default to reduce downstream distro packaging churn. +- kettle-jem-template-20260720-001 - Generated READMEs can now render + template-managed corporate sponsor logos from project or family config. From 593dd89d912a4842af5ecadfb586be3ab75aafa1 Mon Sep 17 00:00:00 2001 From: "Peter H. Boling" Date: Mon, 20 Jul 2026 11:33:04 -0600 Subject: [PATCH 072/188] Add missed template transfer changelog entries Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- .../lib/kettle/jem/templates/CHANGELOG.transfer.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/gems/kettle-jem/lib/kettle/jem/templates/CHANGELOG.transfer.md b/gems/kettle-jem/lib/kettle/jem/templates/CHANGELOG.transfer.md index 2ac5cdd18..6b96f551d 100644 --- a/gems/kettle-jem/lib/kettle/jem/templates/CHANGELOG.transfer.md +++ b/gems/kettle-jem/lib/kettle/jem/templates/CHANGELOG.transfer.md @@ -6,3 +6,10 @@ repository-only files by default to reduce downstream distro packaging churn. - kettle-jem-template-20260720-001 - Generated READMEs can now render template-managed corporate sponsor logos from project or family config. +- kettle-jem-template-20260720-002 - Generated development Gemfiles now use the + released `tree_sitter_language_pack` gem by default while preserving + templating-time local/vendored overrides. +- kettle-jem-template-20260720-003 - Generated StructuredMerge Git diff driver + config now uses the installed `smorg-rb` Ruby driver name. +- kettle-jem-template-20260720-004 - Generated multi-engine workflow files now + omit JRuby and TruffleRuby jobs when project config declares MRI-only engines. From 32f68eb8bce31951d8502cf9a1e135ba32ff32c5 Mon Sep 17 00:00:00 2001 From: "Peter H. Boling" Date: Mon, 20 Jul 2026 11:41:40 -0600 Subject: [PATCH 073/188] Add RubyForum README support badge Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- gems/kettle-jem/CHANGELOG.md | 1 + .../lib/kettle/jem/templates/CHANGELOG.transfer.md | 2 ++ .../lib/kettle/jem/templates/README.md.example | 4 +++- .../kettle-jem/spec/kettle/jem_style_template_spec.rb | 11 +++++++++++ 4 files changed, 17 insertions(+), 1 deletion(-) diff --git a/gems/kettle-jem/CHANGELOG.md b/gems/kettle-jem/CHANGELOG.md index 1de55fc38..9bead9e88 100644 --- a/gems/kettle-jem/CHANGELOG.md +++ b/gems/kettle-jem/CHANGELOG.md @@ -45,6 +45,7 @@ Please file a bug if you notice a violation of semantic versioning. ### Added +- Generated README Support & Community rows now include a RubyForum help badge. - Generated READMEs can now render template-managed corporate sponsor logos from `readme.corporate_sponsors` config or family-provided sponsorship data. - `kettle-jem` now supports `--events` for newline-delimited JSON progress diff --git a/gems/kettle-jem/lib/kettle/jem/templates/CHANGELOG.transfer.md b/gems/kettle-jem/lib/kettle/jem/templates/CHANGELOG.transfer.md index 6b96f551d..0e9926608 100644 --- a/gems/kettle-jem/lib/kettle/jem/templates/CHANGELOG.transfer.md +++ b/gems/kettle-jem/lib/kettle/jem/templates/CHANGELOG.transfer.md @@ -13,3 +13,5 @@ config now uses the installed `smorg-rb` Ruby driver name. - kettle-jem-template-20260720-004 - Generated multi-engine workflow files now omit JRuby and TruffleRuby jobs when project config declares MRI-only engines. +- kettle-jem-template-20260720-005 - Generated README Support & Community rows + now include a RubyForum help badge. diff --git a/gems/kettle-jem/lib/kettle/jem/templates/README.md.example b/gems/kettle-jem/lib/kettle/jem/templates/README.md.example index 52d9e3cc7..e012c9a1e 100644 --- a/gems/kettle-jem/lib/kettle/jem/templates/README.md.example +++ b/gems/kettle-jem/lib/kettle/jem/templates/README.md.example @@ -40,7 +40,7 @@ I've summarized my thoughts in [this blog post](https://dev.to/galtzo/hostile-ta | Works with MRI Ruby 3 | [![Ruby 3.0 Compat][💎ruby-3.0i]][🚎ruby-3.0-wf] [![Ruby 3.1 Compat][💎ruby-3.1i]][🚎ruby-3.1-wf] [![Ruby 3.2 Compat][💎ruby-3.2i]][🚎ruby-3.2-wf] [![Ruby 3.3 Compat][💎ruby-3.3i]][🚎ruby-3.3-wf] [![Ruby 3.4 Compat][💎ruby-3.4i]][🚎ruby-3.4-wf] | | Works with MRI Ruby 2 | ![Ruby 2.0 Compat][💎ruby-2.0i] ![Ruby 2.1 Compat][💎ruby-2.1i] ![Ruby 2.2 Compat][💎ruby-2.2i] ![Ruby 2.3 Compat][💎ruby-2.3i]
        [![Ruby 2.4 Compat][💎ruby-2.4i]][🚎ruby-2.4-wf] [![Ruby 2.5 Compat][💎ruby-2.5i]][🚎ruby-2.5-wf] [![Ruby 2.6 Compat][💎ruby-2.6i]][🚎ruby-2.6-wf] [![Ruby 2.7 Compat][💎ruby-2.7i]][🚎ruby-2.7-wf] | | Works with MRI Ruby 1 | ![Ruby 1.8 Compat][💎ruby-1.8i] ![Ruby 1.9 Compat][💎ruby-1.9i] | -| Support & Community | [![Join Me on Daily.dev's RubyFriends][✉️ruby-friends-img]][✉️ruby-friends] [![Live Chat on Discord][✉️discord-invite-img-ftb]][✉️discord-invite] [![Get help from me on Upwork][👨🏼‍🏫expsup-upwork-img]][👨🏼‍🏫expsup-upwork] [![Get help from me on Codementor][👨🏼‍🏫expsup-codementor-img]][👨🏼‍🏫expsup-codementor] | +| Support & Community | [![Join Me on Daily.dev's RubyFriends][✉️ruby-friends-img]][✉️ruby-friends] [![Get help from RubyForum][✉️ruby-forum-img]][✉️ruby-forum] [![Live Chat on Discord][✉️discord-invite-img-ftb]][✉️discord-invite] [![Get help from me on Upwork][👨🏼‍🏫expsup-upwork-img]][👨🏼‍🏫expsup-upwork] [![Get help from me on Codementor][👨🏼‍🏫expsup-codementor-img]][👨🏼‍🏫expsup-codementor] | | Source | [![Source on GitLab.com][📜src-gl-img]][📜src-gl] [![Source on CodeBerg.org][📜src-cb-img]][📜src-cb] [![Source on Github.com][📜src-gh-img]][📜src-gh] [![The best SHA: dQw4w9WgXcQ!][🧮kloc-img]][🧮kloc] | | Documentation | [![Current release on RubyDoc.info][📜docs-cr-rd-img]][🚎yard-current] [![YARD on Galtzo.com][📜docs-head-rd-img]][🚎yard-head] [![Maintainer Blog][🚂maint-blog-img]][🚂maint-blog] [![GitLab Wiki][📜gl-wiki-img]][📜gl-wiki] [![GitHub Wiki][📜gh-wiki-img]][📜gh-wiki] | | Compliance | {KJ|README:LICENSE_BADGE} {KJ|README:LICENSE_COMPAT_BADGE} [![📄ilo-declaration-img]][📄ilo-declaration] [![Security Policy][🔐security-img]][🔐security] [![Contributor Covenant 2.1][🪇conduct-img]][🪇conduct] [![SemVer 2.0.0][📌semver-img]][📌semver] | @@ -341,6 +341,8 @@ Thanks for RTFM. ☺️ [✉️discord-invite-img-ftb]: https://img.shields.io/discord/1373797679469170758?style=for-the-badge&logo=discord [✉️ruby-friends-img]: https://img.shields.io/badge/daily.dev-%F0%9F%92%8E_Ruby_Friends-0A0A0A?style=for-the-badge&logo=dailydotdev&logoColor=white [✉️ruby-friends]: https://app.daily.dev/squads/rubyfriends +[✉️ruby-forum-img]: https://img.shields.io/badge/RubyForum-Help-CC342D?style=for-the-badge&logo=ruby&logoColor=white +[✉️ruby-forum]: https://www.rubyforum.org/c/help/8 [✇bundle-group-pattern]: https://gist.github.com/pboling/4564780 [⛳️gem-namespace]: {KJ|README:GH_PACKAGE_SOURCE_URL} diff --git a/gems/kettle-jem/spec/kettle/jem_style_template_spec.rb b/gems/kettle-jem/spec/kettle/jem_style_template_spec.rb index 8ec1d9781..ab9af71fb 100644 --- a/gems/kettle-jem/spec/kettle/jem_style_template_spec.rb +++ b/gems/kettle-jem/spec/kettle/jem_style_template_spec.rb @@ -11,6 +11,17 @@ expect(File.read(File.join(template_root, "README.md.example"))).not_to include("### Secure Installation") end + it "includes RubyForum in the packaged README support row" do + template_root = described_class::PACKAGED_TEMPLATE_ROOT + readme_template = File.read(File.join(template_root, "README.md.example")) + + expect(readme_template).to include("[![Get help from RubyForum][✉️ruby-forum-img]][✉️ruby-forum]") + expect(readme_template).to include("[✉️ruby-forum]: https://www.rubyforum.org/c/help/8") + expect(readme_template).to include( + "[✉️ruby-forum-img]: https://img.shields.io/badge/RubyForum-Help-CC342D" + ) + end + it "projects RuboCop LTS template tokens from minimum Ruby" do tmp_root = File.join(__dir__, "../tmp") FileUtils.mkdir_p(tmp_root) From 75b17ecdbf560096826c317d8fa9c5d53c3a46a5 Mon Sep 17 00:00:00 2001 From: "Peter H. Boling" Date: Mon, 20 Jul 2026 12:12:11 -0600 Subject: [PATCH 074/188] Prepare kettle-jem recipe planning for Ractors Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- gems/kettle-jem/CHANGELOG.md | 3 + gems/kettle-jem/lib/kettle/jem.rb | 145 +++++++++++------- .../lib/kettle/jem/tasks/install_task.rb | 10 +- gems/kettle-jem/spec/thin_slice_spec.rb | 75 ++++++++- 4 files changed, 168 insertions(+), 65 deletions(-) diff --git a/gems/kettle-jem/CHANGELOG.md b/gems/kettle-jem/CHANGELOG.md index 9bead9e88..e2790c63e 100644 --- a/gems/kettle-jem/CHANGELOG.md +++ b/gems/kettle-jem/CHANGELOG.md @@ -45,6 +45,9 @@ Please file a bug if you notice a violation of semantic versioning. ### Added +- Templating plan reports now include per-recipe duration metadata, and + template planning deduplicates destination and template-source file reads in + preparation for Ractor-based recipe planning. - Generated README Support & Community rows now include a RubyForum help badge. - Generated READMEs can now render template-managed corporate sponsor logos from `readme.corporate_sponsors` config or family-provided sponsorship data. diff --git a/gems/kettle-jem/lib/kettle/jem.rb b/gems/kettle-jem/lib/kettle/jem.rb index 3717103b1..f1b9b7aca 100644 --- a/gems/kettle-jem/lib/kettle/jem.rb +++ b/gems/kettle-jem/lib/kettle/jem.rb @@ -8,7 +8,6 @@ require "net/http" require "open3" require "rbconfig" -require "stringio" require "time" require "uri" require "addressable/uri" @@ -184,7 +183,7 @@ class Error < StandardError; end "lib/gem/version.rb", "sig/gem.rbs" ].freeze - KETTLE_CONFIG_ENV_SYNC_PATHS = { + KETTLE_CONFIG_ENV_SYNC_PATHS = Ractor.make_shareable({ %w[project_emoji] => "KJ_PROJECT_EMOJI", %w[repository topology] => "KJ_REPOSITORY_TOPOLOGY", %w[min_divergence_threshold] => "KJ_MIN_DIVERGENCE_THRESHOLD", @@ -213,10 +212,10 @@ class Error < StandardError; end %w[tokens social bluesky] => "KJ_SOCIAL_BLUESKY", %w[tokens social linktree] => "KJ_SOCIAL_LINKTREE", %w[tokens social devto] => "KJ_SOCIAL_DEVTO" - }.freeze - KETTLE_CONFIG_INTERNAL_SYNC_PATHS = { - %w[kettle-jem version] => -> { VERSION } - }.freeze + }) + KETTLE_CONFIG_INTERNAL_SYNC_PATHS = Ractor.make_shareable({ + %w[kettle-jem version] => :version + }) NON_LICENSE_MD_BASENAMES = %w[ AGENTS CHANGELOG @@ -242,7 +241,7 @@ class Error < StandardError; end RUBOCOP.md SECURITY.md ].freeze - README_DEV_TEST_STACK_GEMS = [ + README_DEV_TEST_STACK_GEMS = Ractor.make_shareable([ { name: "appraisal2", repo: "https://github.com/appraisal-rb/appraisal2", @@ -283,7 +282,7 @@ class Error < StandardError; end repo: "https://github.com/galtzo-floss/turbo_tests2", role: "parallel test execution" } - ].freeze + ]) MONOREPO_SUBGEM_THIN_README_KEEP_HEADINGS = [ "synopsis", "info you can shake a stick at", @@ -380,19 +379,19 @@ class Error < StandardError; end README_TOP_LOGO_DEFAULTS = %w[org project].freeze README_H2_SYNOPSIS_LOGO_DEFAULTS = %w[related_org ruby].freeze README_TOP_LOGO_OPTIONS = %w[related_org ruby org project].freeze - README_TOP_LOGO_LEGACY_MODE_MAP = { + README_TOP_LOGO_LEGACY_MODE_MAP = Ractor.make_shareable({ "org" => %w[related_org ruby org], "project" => %w[related_org ruby project], "org_and_project" => %w[related_org ruby org project] - }.freeze - KETTLE_CONFIG_LEGACY_KEY_PATHS = [ + }) + KETTLE_CONFIG_LEGACY_KEY_PATHS = Ractor.make_shareable([ { path: %w[readme top_logo_mode], replacement_path: %w[readme top_logos], added_in: "7.0.0", prune_after: "8.0.0" } - ].freeze + ]) README_TOP_LOGO_TYPES = %w[related_org ruby language org project affiliated_project].freeze APPRAISAL_NAME_PREFIX = "kja" APPRAISAL_GEM_ABBREVIATIONS = { @@ -413,13 +412,13 @@ class Error < StandardError; end "rom" => "rom", "rom-sql" => "rsql" }.freeze - APPRAISAL_WORKFLOW_LIFECYCLE_RANGES = { + APPRAISAL_WORKFLOW_LIFECYCLE_RANGES = Ractor.make_shareable({ "current" => {min: Gem::Version.new("3.4"), max: Gem::Version.new("3.99")}, "supported" => {min: Gem::Version.new("3.2"), max: Gem::Version.new("3.3")}, "legacy" => {min: Gem::Version.new("3.0"), max: Gem::Version.new("3.1")}, "unsupported" => {min: Gem::Version.new("2.6"), max: Gem::Version.new("2.7")}, "ancient" => {min: Gem::Version.new("2.3"), max: Gem::Version.new("2.5")} - }.freeze + }) APPRAISAL_ALWAYS_EXCLUDED_GEMS = %w[version_gem].freeze APPRAISAL_VERSION_SELECTION_MODES = %w[major minor patch minor-minmax semver].freeze DEFAULT_TEST_MINIMUM_RUBY = Gem::Version.new("2.4") @@ -648,7 +647,7 @@ module ReadmePostProcessor }.freeze }.freeze COMPATIBILITY_REFERENCE_LABEL_RE = /\A(?:💎(?:ruby|jruby|truby)-|🚎)/ - ENGINE_ROW_PATTERNS = { + ENGINE_ROW_PATTERNS = Ractor.make_shareable({ "jruby" => { row_prefix: "| Works with JRuby", badge_prefixes: %w[💎jruby-], @@ -659,7 +658,7 @@ module ReadmePostProcessor badge_prefixes: %w[💎truby-], ref_prefixes: [/\A🚎truby-/, /\A🚎\d+-t-/] }.freeze - }.freeze + }) VERSIONED_ENGINE_COMPATIBILITY_BADGES = [ { engine: "jruby", @@ -1264,15 +1263,15 @@ def camelize(value) README_DISCOVERED_INTEGRATIONS = (README_INTEGRATIONS - [SKYWALKING_EYES_INTEGRATION]).freeze COVERAGE_INTEGRATIONS = %w[codecov coveralls qlty].freeze MANAGED_INTEGRATIONS = (COVERAGE_INTEGRATIONS + [SKYWALKING_EYES_INTEGRATION]).freeze - COVERAGE_INTEGRATION_CONFIG_PATHS = { + COVERAGE_INTEGRATION_CONFIG_PATHS = Ractor.make_shareable({ "codecov" => %w[.github/.codecov.yml codecov.yml .codecov.yml], "coveralls" => %w[.coveralls.yml], "qlty" => %w[.qlty/qlty.toml .qlty.yml] - }.freeze + }) INTEGRATION_TEMPLATE_PATHS = COVERAGE_INTEGRATION_CONFIG_PATHS.merge( SKYWALKING_EYES_INTEGRATION => %w[.licenserc.yaml .github/workflows/license-eye.yml .github/workflows/license-eye.yaml] ).freeze - README_INTEGRATION_BADGE_PATTERNS = { + README_INTEGRATION_BADGE_PATTERNS = Ractor.make_shareable({ "codecov" => [ /\s*\[!\[CodeCov Test Coverage\]\[[^\]]+\]\]\[[^\]]+\]/, /\n\[!\[Coverage Graph\]\[[^\]]+\]\]\[[^\]]+\]\n/ @@ -1290,7 +1289,7 @@ def camelize(value) "skywalking-eyes" => [ /\s*\[!\[Apache SkyWalking Eyes License Compatibility Check\]\[[^\]]+\]\]\[[^\]]+\]/ ] - }.freeze + }) README_INTEGRATION_LINK_LABELS = { "codecov" => %w[🏀codecov 🏀codecovi 🏀codecov-g], "coveralls" => %w[🏀coveralls 🏀coveralls-img], @@ -1332,7 +1331,7 @@ def camelize(value) "PolyForm-Small-Business-1.0.0" => :x, "LicenseRef-Big-Time-Public-License" => :x }.freeze - APACHE_LICENSE_COMPAT_BADGE_DATA = { + APACHE_LICENSE_COMPAT_BADGE_DATA = Ractor.make_shareable({ a: { alt: "Apache license compatibility: Category A", label: "Apache_Compatible:_Category_A", @@ -1361,7 +1360,7 @@ def camelize(value) color: "6C757D", ref: "https://www.apache.org/legal/resolved.html" } - }.freeze + }) class PluginRegistry Hook = Struct.new(:plugin_name, :phase, :timing, :callback) @@ -3410,10 +3409,21 @@ def plan_project(project_root, env: ENV, run_options: {}) pack = with_event_phase(events, "recipe_pack") { recipe_pack(facts) } pack = with_event_phase(events, "recipe_filter") { filter_recipe_pack(pack, template_selection) } files = with_event_phase(events, "read_project_files") { read_project_files(project_root, pack) } + template_contents = with_event_phase(events, "read_template_files") { read_template_source_files(project_root, pack) } recipes = pack.fetch(:recipes) recipe_reports = with_event_phase(events, "recipes", total: recipes.length) do recipes.each_with_index.map do |recipe, index| - report = execute_recipe(project_root: project_root, recipe: recipe, facts: facts, files: files, decision_policy: decision_policy, env: env) + report = timed_recipe_report do + execute_recipe( + project_root: project_root, + recipe: recipe, + facts: facts, + files: files, + template_contents: template_contents, + decision_policy: decision_policy, + env: env + ) + end emit_recipe_event(events, report, index: index, total: recipes.length) report end @@ -3544,9 +3554,7 @@ def emit_phase_event(events, phase, status:, **payload) end def emit_recipe_event(events, report, index:, total:) - emit_event( - events, - "recipe", + payload = { phase: "template", index: index + 1, total: total, @@ -3555,7 +3563,19 @@ def emit_recipe_event(events, report, index:, total:) changed: report.fetch(:changed, false), status: "ok", mark: report.fetch(:changed, false) ? "*" : "." - ) + } + duration_ms = report.dig(:metadata, :duration_ms) + payload[:duration_ms] = duration_ms if duration_ms + emit_event(events, "recipe", payload) + end + + def timed_recipe_report + started_at = Process.clock_gettime(Process::CLOCK_MONOTONIC) + report = yield + duration_ms = ((Process.clock_gettime(Process::CLOCK_MONOTONIC) - started_at) * 1000).round(3) + report[:metadata] = report.fetch(:metadata, {}).merge(duration_ms: duration_ms) + report.dig(:report_envelope, :report, :metadata)&.[]=(:duration_ms, duration_ms) + report end def emit_step_events(events, event_type, steps, phase:) @@ -4498,7 +4518,7 @@ def synchronize_managed_block(content, facts) replace_ruby_managed_block(content.to_s, replacement) end - def execute_recipe(project_root:, recipe:, facts:, files:, decision_policy:, env: ENV) + def execute_recipe(project_root:, recipe:, facts:, files:, decision_policy:, env: ENV, template_contents: nil) relative_path = recipe.fetch(:target_path) destination_existed = File.exist?(File.join(project_root, relative_path)) original = files.fetch(relative_path, "") @@ -4538,11 +4558,11 @@ def execute_recipe(project_root:, recipe:, facts:, files:, decision_policy:, env when /\Agithub_actions_workflow_snippets_/ synchronize_github_actions_workflow_snippets(original, facts: facts) when "kettle_config_bootstrap" - apply_kettle_config_bootstrap(project_root, recipe, env: env) + apply_kettle_config_bootstrap(project_root, recipe, env: env, template_contents: template_contents) when /\Atemplate_source_preference_/ original when /\Atemplate_source_application_/ - apply_template_source(project_root, recipe, original, facts: facts, env: env) + apply_template_source(project_root, recipe, original, facts: facts, env: env, template_contents: template_contents) when "rakefile_scaffold_cleanup" deletion.fetch(:content) else @@ -4551,7 +4571,7 @@ def execute_recipe(project_root:, recipe:, facts:, files:, decision_policy:, env final = normalize_generated_rakefile(final) if relative_path == "Rakefile" final = ensure_trailing_newline(final) unless delete_file_recipe?(recipe) - template_content = recipe_template_content(project_root, recipe) + template_content = recipe_template_content(project_root, recipe, template_contents: template_contents) request = content_recipe_execution_request( recipe_name: recipe.fetch(:primitive), recipe_version: "1", @@ -4854,26 +4874,39 @@ def ruby_appraisal_names_below(content, min_ruby) end def read_project_files(project_root, pack) - pack.fetch(:recipes).to_h do |recipe| - relative_path = recipe.fetch(:target_path) + pack.fetch(:recipes).map { |recipe| recipe.fetch(:target_path) }.uniq.to_h do |relative_path| path = File.join(project_root, relative_path) [relative_path, File.exist?(path) ? File.read(path) : ""] end end - def recipe_template_content(project_root, recipe) - return "" unless %w[ + def read_template_source_files(project_root, pack) + pack.fetch(:recipes).filter_map { |recipe| recipe_template_content_path(project_root, recipe) }.uniq.to_h do |path| + [path, File.read(path)] + end + end + + def recipe_template_content(project_root, recipe, template_contents: nil) + path = recipe_template_content_path(project_root, recipe) + return "" unless path + + return template_contents.fetch(path) if template_contents&.key?(path) + + File.read(path) + end + + def recipe_template_content_path(project_root, recipe) + return unless %w[ supplied_kettle_config_bootstrap supplied_template_source_preference supplied_template_source_application ].include?(recipe.fetch(:primitive)) preference = recipe.fetch(:template_preference) - path = File.join( + File.join( preference.fetch(:source_root_path, project_root), preference.fetch(:source_relative_path, preference.fetch(:selected_source)) ) - File.read(path) end def normalize_generated_rakefile(content) @@ -4904,11 +4937,11 @@ def strip_orphaned_rake_task_requires(content) content.to_s.lines.each_with_index.reject { |_line, index| remove_indexes.include?(index) }.map(&:first).join end - def apply_template_source(project_root, recipe, original, facts: nil, env: ENV) + def apply_template_source(project_root, recipe, original, facts: nil, env: ENV, template_contents: nil) strategy = recipe.dig(:template_preference, :strategy).to_s return original if strategy == "keep_destination" - content = recipe_template_content(project_root, recipe) + content = recipe_template_content(project_root, recipe, template_contents: template_contents) return finalize_github_workflow_template(content, facts) if strategy == "raw_copy" && github_workflow_template_recipe?(recipe) return finalize_template_source_content(recipe, content) if strategy == "raw_copy" @@ -8840,8 +8873,8 @@ def template_file_type(recipe) :text end - def apply_kettle_config_bootstrap(project_root, recipe, env: ENV) - content = recipe_template_content(project_root, recipe) + def apply_kettle_config_bootstrap(project_root, recipe, env: ENV, template_contents: nil) + content = recipe_template_content(project_root, recipe, template_contents: template_contents) tokens = stringify_template_tokens(recipe.fetch(:template_tokens, {})) content = resolve_template_tokens(content, tokens, scan_unresolved: false) bootstrap_licenses = Array(recipe[:bootstrap_licenses]).map(&:to_s).reject(&:empty?) @@ -8918,7 +8951,16 @@ def env_sync_value(env, env_key) def sync_kettle_config_internal_values(content) KETTLE_CONFIG_INTERNAL_SYNC_PATHS.reduce(content.to_s) do |updated, (path, value_provider)| - replace_yaml_scalar_path(updated, path, yaml_config_scalar_literal(value_provider.call, path: path)) + replace_yaml_scalar_path(updated, path, yaml_config_scalar_literal(kettle_config_internal_value(value_provider), path: path)) + end + end + + def kettle_config_internal_value(value_provider) + case value_provider + when :version + VERSION + else + raise ArgumentError, "Unsupported kettle-jem internal config value provider: #{value_provider.inspect}" end end @@ -10793,8 +10835,8 @@ def git_copyright_lines(project_root, machine_users) end def git_capture(project_root, *args) - output = IO.popen(["git", "-C", project_root.to_s, *args], err: File::NULL, &:read) - raise ArgumentError, "git #{args.join(" ")} failed" unless $CHILD_STATUS&.success? + output, status = Open3.capture2("git", "-C", project_root.to_s, *args, err: File::NULL) + raise ArgumentError, "git #{args.join(" ")} failed" unless status.success? output.to_s end @@ -11167,7 +11209,7 @@ def direct_sibling_workspace_slug(source_url, project_root) end def project_gemspec_metadata(project_root, gemspec_path, spec: nil) - metadata = quiet_gemspec_reader_load(project_root) + metadata = GemSpecReader.load(project_root) spec ||= load_project_gemspec(gemspec_path) metadata = {} unless metadata.is_a?(Hash) metadata = metadata.dup @@ -11265,17 +11307,6 @@ def generated_version_tree_source_url?(source_url, version) false end - def quiet_gemspec_reader_load(project_root) - original_stderr = $stderr - original_stdout = $stdout - $stderr = StringIO.new - $stdout = StringIO.new - GemSpecReader.load(project_root) - ensure - $stderr = original_stderr - $stdout = original_stdout - end - def metadata_value(metadata, key) value = metadata[key] return if value.nil? @@ -15098,6 +15129,6 @@ def deep_dup(value) end end -if File.basename($PROGRAM_NAME).match?(/\Arake(?:\z|\.)/) || defined?(Rake.application) +if File.basename(Process.argv0).match?(/\Arake(?:\z|\.)/) || defined?(Rake.application) Kettle::Jem.install_tasks end diff --git a/gems/kettle-jem/lib/kettle/jem/tasks/install_task.rb b/gems/kettle-jem/lib/kettle/jem/tasks/install_task.rb index b9cd1c49c..0f567dd1f 100644 --- a/gems/kettle-jem/lib/kettle/jem/tasks/install_task.rb +++ b/gems/kettle-jem/lib/kettle/jem/tasks/install_task.rb @@ -1179,7 +1179,7 @@ def normalize_hook_templates_mode(value) normalized end - DEFAULT_GIT_DRIVER_DEFINITIONS = [ + DEFAULT_GIT_DRIVER_DEFINITIONS = Ractor.make_shareable([ { language: "ruby", pattern: "*.rb", @@ -1204,14 +1204,14 @@ def normalize_hook_templates_mode(value) diff_command: "smorg-rs diff-driver", merge_command: "smorg-rs merge-driver %O %A %B %P" } - ].freeze - GIT_DRIVER_LANGUAGE_REGISTRY = DEFAULT_GIT_DRIVER_DEFINITIONS.to_h { |definition| [definition.fetch(:language), definition] }.freeze + ]) + GIT_DRIVER_LANGUAGE_REGISTRY = Ractor.make_shareable(DEFAULT_GIT_DRIVER_DEFINITIONS.to_h { |definition| [definition.fetch(:language), definition] }) - BUILTIN_GIT_DIFF_ATTRIBUTES = [ + BUILTIN_GIT_DIFF_ATTRIBUTES = Ractor.make_shareable([ {path: ".gitattributes", pattern: "*.rb", attributes: {"diff" => "ruby"}}, {path: ".gitattributes", pattern: "*.go", attributes: {"diff" => "golang"}}, {path: ".gitattributes", pattern: "*.rs", attributes: {"diff" => "rust"}} - ].freeze + ]) def git_drivers_step(project_root, run_options) mode = normalize_git_drivers_mode((run_options || {})[:git_drivers]) diff --git a/gems/kettle-jem/spec/thin_slice_spec.rb b/gems/kettle-jem/spec/thin_slice_spec.rb index a5ac1ac94..9841c5a82 100644 --- a/gems/kettle-jem/spec/thin_slice_spec.rb +++ b/gems/kettle-jem/spec/thin_slice_spec.rb @@ -16,6 +16,76 @@ let(:old_spec_contract_path) { Pathname(__dir__).join("fixtures/old_spec_migration_contract.json").expand_path } let(:old_spec_contract) { JSON.parse(old_spec_contract_path.read, symbolize_names: true) } + it "deduplicates destination file reads while planning recipes" do + tmp_root = File.join(__dir__, "tmp") + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-file-cache", tmp_root) do |root| + write_tree(root, {"README.md" => "# Example\n"}) + pack = { + recipes: [ + {target_path: "README.md"}, + {target_path: "README.md"}, + {target_path: "CHANGELOG.md"} + ] + } + readme_path = File.join(root, "README.md") + + allow(File).to receive(:read).and_call_original + + files = described_class.send(:read_project_files, root, pack) + + expect(files).to eq("README.md" => "# Example\n", "CHANGELOG.md" => "") + expect(File).to have_received(:read).with(readme_path).once + end + end + + it "deduplicates template source reads while planning recipes" do + tmp_root = File.join(__dir__, "tmp") + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-template-cache", tmp_root) do |root| + write_tree(root, {"templates/README.md.example" => "# {KJ|GEM_NAME}\n"}) + template_path = File.join(root, "templates/README.md.example") + template_preference = { + source_root_path: root, + source_relative_path: "templates/README.md.example", + selected_source: "templates/README.md.example" + } + pack = { + recipes: [ + {primitive: "supplied_template_source_application", target_path: "README.md", template_preference: template_preference}, + {primitive: "supplied_template_source_application", target_path: "README.md", template_preference: template_preference}, + {primitive: "supplied_managed_text_block_replacement", target_path: "gemfiles/modular/shunted.gemfile"} + ] + } + + allow(File).to receive(:read).and_call_original + + contents = described_class.send(:read_template_source_files, root, pack) + + expect(contents).to eq(template_path => "# {KJ|GEM_NAME}\n") + expect(File).to have_received(:read).with(template_path).once + expect( + described_class.send(:recipe_template_content, root, pack.fetch(:recipes).first, template_contents: contents) + ).to eq("# {KJ|GEM_NAME}\n") + end + end + + it "records recipe timing metadata in top-level and envelope reports" do + report = described_class.send(:timed_recipe_report) do + { + metadata: {packaging_recipe: "example"}, + report_envelope: { + report: { + metadata: {packaging_recipe: "example"} + } + } + } + end + + expect(report.dig(:metadata, :duration_ms)).to be >= 0 + expect(report.dig(:report_envelope, :report, :metadata, :duration_ms)).to eq(report.dig(:metadata, :duration_ms)) + end + it "normalizes GitHub remote source URLs structurally" do expect(described_class.normalize_git_source_url("git@github.com:rubythems/them-server.git")).to eq( "https://github.com/rubythems/them-server" @@ -5908,7 +5978,7 @@ module Version expect(content).to include('diff = "smorg-rb"') expect(content).to include('key = "diff.smorg-rb.command"') expect(content).to include('value = "smorg-rb diff-driver"') - expect(content).not_to include("smorg-rb") + expect(content).not_to include("smorg-ruby") end end @@ -7067,7 +7137,6 @@ module Example command_runner = lambda do |_command, chdir:, env:, quiet:| expect(chdir).to eq(root) expect(env).to include( - "BUNDLE_GEMFILE" => File.join(root, "Gemfile"), "BUNDLE_LOCKFILE" => nil, "RUBYLIB" => nil, "RUBYOPT" => nil @@ -7578,7 +7647,7 @@ module Example expect(content).to include('key = "diff.smorg-rb.command"') expect(content).to include('value = "smorg-rb diff-driver"') expect(content).to include("[profiles.textconv-normalized]") - expect(content).not_to include("smorg-rb") + expect(content).not_to include("smorg-ruby") end end From 03eb79f9affd41d684c1d7ba8ae4bfc288f85610 Mon Sep 17 00:00:00 2001 From: "Peter H. Boling" Date: Mon, 20 Jul 2026 12:42:54 -0600 Subject: [PATCH 075/188] Clarify kettle-jem runtime loading boundaries Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- gems/kettle-jem/CHANGELOG.md | 7 +-- gems/kettle-jem/lib/kettle/jem.rb | 44 +++++++++++-------- .../lib/kettle/jem/tasks/self_test_task.rb | 4 +- 3 files changed, 31 insertions(+), 24 deletions(-) diff --git a/gems/kettle-jem/CHANGELOG.md b/gems/kettle-jem/CHANGELOG.md index e2790c63e..45df36f17 100644 --- a/gems/kettle-jem/CHANGELOG.md +++ b/gems/kettle-jem/CHANGELOG.md @@ -45,9 +45,10 @@ Please file a bug if you notice a violation of semantic versioning. ### Added -- Templating plan reports now include per-recipe duration metadata, and - template planning deduplicates destination and template-source file reads in - preparation for Ractor-based recipe planning. +- Templating plan reports now include per-recipe duration metadata, template + planning deduplicates destination and template-source file reads, and runtime + loading is reduced to explicit main-Ractor extension points in preparation for + Ractor-based recipe planning. - Generated README Support & Community rows now include a RubyForum help badge. - Generated READMEs can now render template-managed corporate sponsor logos from `readme.corporate_sponsors` config or family-provided sponsorship data. diff --git a/gems/kettle-jem/lib/kettle/jem.rb b/gems/kettle-jem/lib/kettle/jem.rb index f1b9b7aca..06126e6ea 100644 --- a/gems/kettle-jem/lib/kettle/jem.rb +++ b/gems/kettle-jem/lib/kettle/jem.rb @@ -14,10 +14,27 @@ require "token/resolver" require "yaml" require "ast/merge" +require "ruby/merge" +require "prism/merge" +require "bash/merge" +require "json/merge" +require "dotenv/merge" +require "rbs" +require "rbs/merge" +require "citrus-toml-merge" +require "psych-merge" +require "ast/crispr/markdown/markly" +require "ast/crispr/ruby/prism" require "kettle/dev" require "kettle/rb/compat_matrix" require_relative "jem/version" +begin + require "kettle/drift" +rescue LoadError + # kettle-drift is optional; duplicate drift reports stay unavailable when absent. +end + module Kettle module Jem class Error < StandardError; end @@ -1459,6 +1476,7 @@ def load!(plugin_names:) end def load_plugin!(plugin_name, registry:) + # Plugins are apply-time main-Ractor extensions; workers receive reports, not plugin callbacks. require(plugin_require_path(plugin_name)) handle = plugin_handle(plugin_name) unless handle.respond_to?(REGISTRATION_METHOD) @@ -2074,10 +2092,6 @@ def append_skipped_files(lines, skipped) end module Tasks - autoload :InstallTask, "kettle/jem/tasks/install_task" - autoload :PrepareTask, "kettle/jem/tasks/prepare_task" - autoload :SelfTestTask, "kettle/jem/tasks/self_test_task" - autoload :TemplateTask, "kettle/jem/tasks/template_task" end module_function @@ -2086,17 +2100,6 @@ module Tasks def ensure_runtime_dependencies! return if defined?(@runtime_dependencies_loaded) && @runtime_dependencies_loaded - require "ruby/merge" - require "prism/merge" - require "bash/merge" - require "json/merge" - require "dotenv/merge" - require "rbs" - require "rbs/merge" - require "citrus-toml-merge" - require "psych-merge" - require "ast/crispr/markdown/markly" - require "ast/crispr/ruby/prism" @runtime_dependencies_loaded = true end # rubocop:enable ThreadSafety/ClassInstanceVariable @@ -2135,6 +2138,7 @@ def template_manifest(project_root: Dir.pwd, template_root: nil, config: nil) end def install_tasks + # Rake task files must be reloaded for each active Rake.application. require "rake" load(File.expand_path("jem/tasks.rb", __dir__)) end @@ -3985,10 +3989,9 @@ def project_gemspec_declares_version_gem?(project_root) def duplicate_drift_report(project_root:, template_root:, run_options: {}) runner = run_options[:duplicate_drift_runner] || run_options["duplicate_drift_runner"] unless runner - begin - require "kettle/drift" + if defined?(Kettle::Drift) runner = Kettle::Drift - rescue LoadError + else return { available: false, reason: "kettle-drift is not available" @@ -15129,6 +15132,11 @@ def deep_dup(value) end end +require_relative "jem/tasks/install_task" +require_relative "jem/tasks/template_task" +require_relative "jem/tasks/prepare_task" +require_relative "jem/tasks/self_test_task" + if File.basename(Process.argv0).match?(/\Arake(?:\z|\.)/) || defined?(Rake.application) Kettle::Jem.install_tasks end diff --git a/gems/kettle-jem/lib/kettle/jem/tasks/self_test_task.rb b/gems/kettle-jem/lib/kettle/jem/tasks/self_test_task.rb index a519bf4f1..8a37a469a 100644 --- a/gems/kettle-jem/lib/kettle/jem/tasks/self_test_task.rb +++ b/gems/kettle-jem/lib/kettle/jem/tasks/self_test_task.rb @@ -209,9 +209,7 @@ def upsert_template_root_override(content, template_root) end def drift_report(after_dir:, template_root:) - begin - require "kettle/drift" - rescue LoadError + unless defined?(Kettle::Drift) return { available: false, reason: "kettle-drift is not available" From 10c16978e02be304bc1245b094e4fd0c7a897baf Mon Sep 17 00:00:00 2001 From: "Peter H. Boling" Date: Mon, 20 Jul 2026 12:53:26 -0600 Subject: [PATCH 076/188] Add classified kettle-jem recipe planning Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- gems/kettle-jem/CHANGELOG.md | 5 +- gems/kettle-jem/lib/kettle/jem.rb | 139 +++++++++++++++++++++--- gems/kettle-jem/spec/thin_slice_spec.rb | 85 +++++++++++++++ 3 files changed, 212 insertions(+), 17 deletions(-) diff --git a/gems/kettle-jem/CHANGELOG.md b/gems/kettle-jem/CHANGELOG.md index 45df36f17..8a1c5f5c2 100644 --- a/gems/kettle-jem/CHANGELOG.md +++ b/gems/kettle-jem/CHANGELOG.md @@ -47,8 +47,9 @@ Please file a bug if you notice a violation of semantic versioning. - Templating plan reports now include per-recipe duration metadata, template planning deduplicates destination and template-source file reads, and runtime - loading is reduced to explicit main-Ractor extension points in preparation for - Ractor-based recipe planning. + loading is reduced to explicit main-Ractor extension points. A disabled + classified planning strategy now identifies worker-safe recipes and preserves + sequential report parity in preparation for Ractor-based recipe planning. - Generated README Support & Community rows now include a RubyForum help badge. - Generated READMEs can now render template-managed corporate sponsor logos from `readme.corporate_sponsors` config or family-provided sponsorship data. diff --git a/gems/kettle-jem/lib/kettle/jem.rb b/gems/kettle-jem/lib/kettle/jem.rb index 06126e6ea..5983a21f2 100644 --- a/gems/kettle-jem/lib/kettle/jem.rb +++ b/gems/kettle-jem/lib/kettle/jem.rb @@ -337,6 +337,17 @@ class Error < StandardError; end "default" => DEFAULT_EVENT_TYPES, "progress" => %w[run_start phase_start phase_finish recipe post_apply_step command_step summary] }.freeze + RECIPE_PLANNING_STRATEGIES = %w[sequential classified].freeze + WORKER_SAFE_RECIPE_NAME_PATTERNS = [ + /\Agithub_actions_framework_gemfile_/, + /\Agithub_actions_obsolete_workflow_cleanup_/, + /\Agithub_actions_opt_in_workflow_cleanup_/, + /\Agithub_actions_inactive_packaged_workflow_cleanup_/, + /\Aopencollective_disabled_file_cleanup_/, + /\Atemplate_legacy_destination_cleanup_/, + /\Atemplate_obsolete_license_cleanup_/, + /\Atemplate_shim_profile_cleanup_/ + ].freeze RUBY_TEMPLATE_BASENAMES = %w[Gemfile Rakefile Appraisals Appraisal.root.gemfile .simplecov].freeze RUBY_TEMPLATE_SUFFIXES = %w[.gemspec .gemfile].freeze RUBY_TEMPLATE_EXTENSIONS = %w[.rb .rake].freeze @@ -3415,22 +3426,19 @@ def plan_project(project_root, env: ENV, run_options: {}) files = with_event_phase(events, "read_project_files") { read_project_files(project_root, pack) } template_contents = with_event_phase(events, "read_template_files") { read_template_source_files(project_root, pack) } recipes = pack.fetch(:recipes) + recipe_planning_strategy = with_event_phase(events, "recipe_planning_strategy") { recipe_planning_strategy_for(env, run_options) } recipe_reports = with_event_phase(events, "recipes", total: recipes.length) do - recipes.each_with_index.map do |recipe, index| - report = timed_recipe_report do - execute_recipe( - project_root: project_root, - recipe: recipe, - facts: facts, - files: files, - template_contents: template_contents, - decision_policy: decision_policy, - env: env - ) - end - emit_recipe_event(events, report, index: index, total: recipes.length) - report - end + execute_recipe_reports( + project_root: project_root, + recipes: recipes, + facts: facts, + files: files, + template_contents: template_contents, + decision_policy: decision_policy, + env: env, + events: events, + strategy: recipe_planning_strategy + ) end plugin_registry = with_event_phase(events, "plugins") { plugin_registry_for_project(project_root) } changed_files = changed_files_from_recipe_reports(recipe_reports) @@ -3458,6 +3466,7 @@ def plan_project(project_root, env: ENV, run_options: {}) recipe_pack: pack, recipe_reports: recipe_reports, phase_reports: phase_reports, + recipe_planning_strategy: recipe_planning_strategy, decision_policy: decision_policy.to_h, template_selection: template_selection, git_preflight: git_preflight, @@ -3482,6 +3491,106 @@ def changed_files_from_recipe_reports(recipe_reports) latest_by_path.values.filter_map { |report| report[:relative_path] if report[:changed] }.uniq.sort end + def recipe_planning_strategy_for(env, run_options) + value = (run_options || {})[:recipe_planning_strategy] || + (run_options || {})["recipe_planning_strategy"] || + (env || {})["KETTLE_JEM_RECIPE_PLANNING_STRATEGY"] + strategy = value.to_s.strip + strategy = "sequential" if strategy.empty? + strategy = strategy.tr("_", "-") + strategy = "sequential" if %w[0 false no off none sequential].include?(strategy) + strategy = "classified" if %w[1 true yes on classified classify].include?(strategy) + raise ArgumentError, "Unsupported kettle-jem recipe planning strategy #{value.inspect}" unless RECIPE_PLANNING_STRATEGIES.include?(strategy) + + strategy + end + + def execute_recipe_reports(project_root:, recipes:, facts:, files:, template_contents:, decision_policy:, env:, events:, strategy:) + case strategy.to_s + when "sequential" + execute_recipe_reports_sequential( + project_root: project_root, + recipes: recipes, + facts: facts, + files: files, + template_contents: template_contents, + decision_policy: decision_policy, + env: env, + events: events + ) + when "classified" + execute_recipe_reports_classified( + project_root: project_root, + recipes: recipes, + facts: facts, + files: files, + template_contents: template_contents, + decision_policy: decision_policy, + env: env, + events: events + ) + else + raise ArgumentError, "Unsupported kettle-jem recipe planning strategy #{strategy.inspect}" + end + end + + def execute_recipe_reports_sequential(project_root:, recipes:, facts:, files:, template_contents:, decision_policy:, env:, events:) + recipes.each_with_index.map do |recipe, index| + report = execute_timed_recipe( + project_root: project_root, + recipe: recipe, + facts: facts, + files: files, + template_contents: template_contents, + decision_policy: decision_policy, + env: env + ) + emit_recipe_event(events, report, index: index, total: recipes.length) + report + end + end + + def execute_recipe_reports_classified(project_root:, recipes:, facts:, files:, template_contents:, decision_policy:, env:, events:) + indexed_recipes = recipes.each_with_index.to_a + reports_by_index = {} + worker_safe, main_only = indexed_recipes.partition { |recipe, _index| worker_safe_recipe?(recipe) } + (worker_safe + main_only).each do |recipe, index| + reports_by_index[index] = execute_timed_recipe( + project_root: project_root, + recipe: recipe, + facts: facts, + files: files, + template_contents: template_contents, + decision_policy: decision_policy, + env: env + ) + end + recipes.each_index.map do |index| + report = reports_by_index.fetch(index) + emit_recipe_event(events, report, index: index, total: recipes.length) + report + end + end + + def execute_timed_recipe(project_root:, recipe:, facts:, files:, template_contents:, decision_policy:, env:) + timed_recipe_report do + execute_recipe( + project_root: project_root, + recipe: recipe, + facts: facts, + files: files, + template_contents: template_contents, + decision_policy: decision_policy, + env: env + ) + end + end + + def worker_safe_recipe?(recipe) + name = recipe.fetch(:name).to_s + WORKER_SAFE_RECIPE_NAME_PATTERNS.any? { |pattern| pattern.match?(name) } + end + def apply_project(project_root, env: ENV, run_options: {}) events = event_stream_from_options(run_options) report = plan_project(project_root, env: env, run_options: run_options).merge(mode: "apply") diff --git a/gems/kettle-jem/spec/thin_slice_spec.rb b/gems/kettle-jem/spec/thin_slice_spec.rb index 9841c5a82..d861f7fff 100644 --- a/gems/kettle-jem/spec/thin_slice_spec.rb +++ b/gems/kettle-jem/spec/thin_slice_spec.rb @@ -86,6 +86,91 @@ expect(report.dig(:report_envelope, :report, :metadata, :duration_ms)).to eq(report.dig(:metadata, :duration_ms)) end + it "parses recipe planning strategies from options and env" do + expect(described_class.send(:recipe_planning_strategy_for, {}, {})).to eq("sequential") + expect(described_class.send(:recipe_planning_strategy_for, {"KETTLE_JEM_RECIPE_PLANNING_STRATEGY" => "classified"}, {})).to eq("classified") + expect(described_class.send(:recipe_planning_strategy_for, {}, {recipe_planning_strategy: "true"})).to eq("classified") + expect(described_class.send(:recipe_planning_strategy_for, {"KETTLE_JEM_RECIPE_PLANNING_STRATEGY" => "classified"}, {recipe_planning_strategy: "sequential"})).to eq("sequential") + + expect do + described_class.send(:recipe_planning_strategy_for, {}, {recipe_planning_strategy: "ractor"}) + end.to raise_error(ArgumentError, /Unsupported kettle-jem recipe planning strategy/) + end + + it "classifies only side-effect-free cleanup and generated recipes as worker-safe for now" do + safe_recipe = { + name: "github_actions_obsolete_workflow_cleanup_old", + target_path: ".github/workflows/old.yml", + provider_family: "file", + primitive: "supplied_obsolete_file_deletion", + facts: [] + } + main_only_recipe = { + name: "template_source_application_readme", + target_path: "README.md", + provider_family: "markdown", + primitive: "supplied_template_source_application", + facts: [] + } + + expect(described_class.send(:worker_safe_recipe?, safe_recipe)).to be(true) + expect(described_class.send(:worker_safe_recipe?, main_only_recipe)).to be(false) + end + + it "keeps classified recipe planning report output equivalent to sequential planning" do + tmp_root = File.join(__dir__, "tmp") + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-classified-planning", tmp_root) do |root| + write_tree(root, { + ".github/workflows/old.yml" => "name: old\n", + "README.md" => "# Example\n" + }) + recipes = [ + { + name: "noop_main_only", + target_path: "README.md", + provider_family: "markdown", + primitive: "noop", + facts: [] + }, + { + name: "github_actions_obsolete_workflow_cleanup_old", + target_path: ".github/workflows/old.yml", + provider_family: "file", + primitive: "supplied_obsolete_file_deletion", + facts: [] + } + ] + files = { + "README.md" => "# Example\n", + ".github/workflows/old.yml" => "name: old\n" + } + policy = described_class::DecisionPolicy.from_env({"force" => "true"}) + common = { + project_root: root, + recipes: recipes, + facts: {}, + files: files, + template_contents: {}, + decision_policy: policy, + env: {}, + events: nil + } + + sequential = described_class.send(:execute_recipe_reports, **common.merge(strategy: "sequential")) + classified = described_class.send(:execute_recipe_reports, **common.merge(strategy: "classified")) + normalize = lambda do |reports| + Marshal.load(Marshal.dump(reports)).each do |report| + report.dig(:metadata)&.delete(:duration_ms) + report.dig(:report_envelope, :report, :metadata)&.delete(:duration_ms) + end + end + + expect(normalize.call(classified)).to eq(normalize.call(sequential)) + expect(classified.map { |report| report.fetch(:recipe_name) }).to eq(%w[noop_main_only github_actions_obsolete_workflow_cleanup_old]) + end + end + it "normalizes GitHub remote source URLs structurally" do expect(described_class.normalize_git_source_url("git@github.com:rubythems/them-server.git")).to eq( "https://github.com/rubythems/them-server" From fab58f1d93b12aef5855bc6615267f683a6be7e0 Mon Sep 17 00:00:00 2001 From: "Peter H. Boling" Date: Mon, 20 Jul 2026 13:16:55 -0600 Subject: [PATCH 077/188] Add experimental kettle-jem Ractor planning workers Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- gems/kettle-jem/CHANGELOG.md | 3 +- gems/kettle-jem/lib/kettle/jem.rb | 118 ++++++++++++++++++++++-- gems/kettle-jem/spec/thin_slice_spec.rb | 82 ++++++++++++++++ 3 files changed, 192 insertions(+), 11 deletions(-) diff --git a/gems/kettle-jem/CHANGELOG.md b/gems/kettle-jem/CHANGELOG.md index 8a1c5f5c2..bf66789ed 100644 --- a/gems/kettle-jem/CHANGELOG.md +++ b/gems/kettle-jem/CHANGELOG.md @@ -48,7 +48,8 @@ Please file a bug if you notice a violation of semantic versioning. - Templating plan reports now include per-recipe duration metadata, template planning deduplicates destination and template-source file reads, and runtime loading is reduced to explicit main-Ractor extension points. A disabled - classified planning strategy now identifies worker-safe recipes and preserves + classified planning strategy now identifies worker-safe recipes, can opt into + experimental Ractor workers with `KETTLE_JEM_RACTOR_WORKERS`, and preserves sequential report parity in preparation for Ractor-based recipe planning. - Generated README Support & Community rows now include a RubyForum help badge. - Generated READMEs can now render template-managed corporate sponsor logos diff --git a/gems/kettle-jem/lib/kettle/jem.rb b/gems/kettle-jem/lib/kettle/jem.rb index 5983a21f2..228d69749 100644 --- a/gems/kettle-jem/lib/kettle/jem.rb +++ b/gems/kettle-jem/lib/kettle/jem.rb @@ -3427,6 +3427,7 @@ def plan_project(project_root, env: ENV, run_options: {}) template_contents = with_event_phase(events, "read_template_files") { read_template_source_files(project_root, pack) } recipes = pack.fetch(:recipes) recipe_planning_strategy = with_event_phase(events, "recipe_planning_strategy") { recipe_planning_strategy_for(env, run_options) } + recipe_planning_workers = with_event_phase(events, "recipe_planning_workers") { recipe_planning_workers_for(env, run_options) } recipe_reports = with_event_phase(events, "recipes", total: recipes.length) do execute_recipe_reports( project_root: project_root, @@ -3437,7 +3438,8 @@ def plan_project(project_root, env: ENV, run_options: {}) decision_policy: decision_policy, env: env, events: events, - strategy: recipe_planning_strategy + strategy: recipe_planning_strategy, + workers: recipe_planning_workers ) end plugin_registry = with_event_phase(events, "plugins") { plugin_registry_for_project(project_root) } @@ -3467,6 +3469,7 @@ def plan_project(project_root, env: ENV, run_options: {}) recipe_reports: recipe_reports, phase_reports: phase_reports, recipe_planning_strategy: recipe_planning_strategy, + recipe_planning_workers: recipe_planning_workers, decision_policy: decision_policy.to_h, template_selection: template_selection, git_preflight: git_preflight, @@ -3505,7 +3508,23 @@ def recipe_planning_strategy_for(env, run_options) strategy end - def execute_recipe_reports(project_root:, recipes:, facts:, files:, template_contents:, decision_policy:, env:, events:, strategy:) + def recipe_planning_workers_for(env, run_options) + value = (run_options || {})[:ractor_workers] || + (run_options || {})["ractor_workers"] || + (run_options || {})[:recipe_planning_workers] || + (run_options || {})["recipe_planning_workers"] || + (env || {})["KETTLE_JEM_RACTOR_WORKERS"] + return 0 if value.nil? || value.to_s.strip.empty? + + workers = Integer(value) + raise ArgumentError, "KETTLE_JEM_RACTOR_WORKERS must be >= 0" if workers.negative? + + workers + rescue ArgumentError + raise ArgumentError, "KETTLE_JEM_RACTOR_WORKERS must be a non-negative integer" + end + + def execute_recipe_reports(project_root:, recipes:, facts:, files:, template_contents:, decision_policy:, env:, events:, strategy:, workers: 0) case strategy.to_s when "sequential" execute_recipe_reports_sequential( @@ -3527,7 +3546,8 @@ def execute_recipe_reports(project_root:, recipes:, facts:, files:, template_con template_contents: template_contents, decision_policy: decision_policy, env: env, - events: events + events: events, + workers: workers ) else raise ArgumentError, "Unsupported kettle-jem recipe planning strategy #{strategy.inspect}" @@ -3550,21 +3570,45 @@ def execute_recipe_reports_sequential(project_root:, recipes:, facts:, files:, t end end - def execute_recipe_reports_classified(project_root:, recipes:, facts:, files:, template_contents:, decision_policy:, env:, events:) + def execute_recipe_reports_classified(project_root:, recipes:, facts:, files:, template_contents:, decision_policy:, env:, events:, workers: 0) indexed_recipes = recipes.each_with_index.to_a reports_by_index = {} worker_safe, main_only = indexed_recipes.partition { |recipe, _index| worker_safe_recipe?(recipe) } - (worker_safe + main_only).each do |recipe, index| - reports_by_index[index] = execute_timed_recipe( + reports_by_index.merge!( + if workers.to_i.positive? && worker_safe.any? + execute_worker_safe_recipe_reports_ractor( + project_root: project_root, + indexed_recipes: worker_safe, + facts: facts, + files: files, + template_contents: template_contents, + decision_policy: decision_policy, + env: env, + workers: workers.to_i + ) + else + execute_indexed_recipe_reports( + project_root: project_root, + indexed_recipes: worker_safe, + facts: facts, + files: files, + template_contents: template_contents, + decision_policy: decision_policy, + env: env + ) + end + ) + reports_by_index.merge!( + execute_indexed_recipe_reports( project_root: project_root, - recipe: recipe, + indexed_recipes: main_only, facts: facts, files: files, template_contents: template_contents, decision_policy: decision_policy, env: env ) - end + ) recipes.each_index.map do |index| report = reports_by_index.fetch(index) emit_recipe_event(events, report, index: index, total: recipes.length) @@ -3572,6 +3616,49 @@ def execute_recipe_reports_classified(project_root:, recipes:, facts:, files:, t end end + def execute_indexed_recipe_reports(project_root:, indexed_recipes:, facts:, files:, template_contents:, decision_policy:, env:) + indexed_recipes.to_h do |recipe, index| + [ + index, + execute_timed_recipe( + project_root: project_root, + recipe: recipe, + facts: facts, + files: files, + template_contents: template_contents, + decision_policy: decision_policy, + env: env + ) + ] + end + end + + def execute_worker_safe_recipe_reports_ractor(project_root:, indexed_recipes:, facts:, files:, template_contents:, decision_policy:, env:, workers:) + indexed_recipes.each_slice(workers).each_with_object({}) do |slice, reports| + slice.map do |recipe, index| + started_at = monotonic_time + payload = Ractor.make_shareable({ + project_root: project_root, + recipe: recipe, + facts: facts, + files: files, + template_contents: template_contents, + decision_policy: decision_policy, + env: env + }) + [ + index, + started_at, + Ractor.new(payload) do |worker_payload| + Kettle::Jem.execute_recipe(**worker_payload) + end + ] + end.each do |index, started_at, worker| + reports[index] = report_with_duration(worker.value, duration_ms_since(started_at)) + end + end + end + def execute_timed_recipe(project_root:, recipe:, facts:, files:, template_contents:, decision_policy:, env:) timed_recipe_report do execute_recipe( @@ -3683,9 +3770,20 @@ def emit_recipe_event(events, report, index:, total:) end def timed_recipe_report - started_at = Process.clock_gettime(Process::CLOCK_MONOTONIC) + started_at = monotonic_time report = yield - duration_ms = ((Process.clock_gettime(Process::CLOCK_MONOTONIC) - started_at) * 1000).round(3) + report_with_duration(report, duration_ms_since(started_at)) + end + + def monotonic_time + Process.clock_gettime(Process::CLOCK_MONOTONIC) + end + + def duration_ms_since(started_at) + ((monotonic_time - started_at) * 1000).round(3) + end + + def report_with_duration(report, duration_ms) report[:metadata] = report.fetch(:metadata, {}).merge(duration_ms: duration_ms) report.dig(:report_envelope, :report, :metadata)&.[]=(:duration_ms, duration_ms) report diff --git a/gems/kettle-jem/spec/thin_slice_spec.rb b/gems/kettle-jem/spec/thin_slice_spec.rb index d861f7fff..6532125a6 100644 --- a/gems/kettle-jem/spec/thin_slice_spec.rb +++ b/gems/kettle-jem/spec/thin_slice_spec.rb @@ -97,6 +97,20 @@ end.to raise_error(ArgumentError, /Unsupported kettle-jem recipe planning strategy/) end + it "parses Ractor recipe planning workers from options and env" do + expect(described_class.send(:recipe_planning_workers_for, {}, {})).to eq(0) + expect(described_class.send(:recipe_planning_workers_for, {"KETTLE_JEM_RACTOR_WORKERS" => "2"}, {})).to eq(2) + expect(described_class.send(:recipe_planning_workers_for, {"KETTLE_JEM_RACTOR_WORKERS" => "2"}, {recipe_planning_workers: "1"})).to eq(1) + expect(described_class.send(:recipe_planning_workers_for, {}, {ractor_workers: "3"})).to eq(3) + + expect do + described_class.send(:recipe_planning_workers_for, {}, {recipe_planning_workers: "-1"}) + end.to raise_error(ArgumentError, /non-negative integer/) + expect do + described_class.send(:recipe_planning_workers_for, {"KETTLE_JEM_RACTOR_WORKERS" => "many"}, {}) + end.to raise_error(ArgumentError, /non-negative integer/) + end + it "classifies only side-effect-free cleanup and generated recipes as worker-safe for now" do safe_recipe = { name: "github_actions_obsolete_workflow_cleanup_old", @@ -171,6 +185,74 @@ end end + it "keeps Ractor-backed classified recipe planning equivalent to main-Ractor classified planning" do + tmp_root = File.join(__dir__, "tmp") + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-ractor-planning", tmp_root) do |root| + write_tree(root, { + ".github/workflows/old.yml" => "name: old\n", + ".github/workflows/stale.yml" => "name: stale\n", + "README.md" => "# Example\n" + }) + recipes = [ + { + name: "github_actions_obsolete_workflow_cleanup_old", + target_path: ".github/workflows/old.yml", + provider_family: "file", + primitive: "supplied_obsolete_file_deletion", + facts: [] + }, + { + name: "noop_main_only", + target_path: "README.md", + provider_family: "markdown", + primitive: "noop", + facts: [] + }, + { + name: "github_actions_obsolete_workflow_cleanup_stale", + target_path: ".github/workflows/stale.yml", + provider_family: "file", + primitive: "supplied_obsolete_file_deletion", + facts: [] + } + ] + files = { + ".github/workflows/old.yml" => "name: old\n", + ".github/workflows/stale.yml" => "name: stale\n", + "README.md" => "# Example\n" + } + policy = described_class::DecisionPolicy.from_env({"force" => "true"}) + common = { + project_root: root, + recipes: recipes, + facts: {}, + files: files, + template_contents: {}, + decision_policy: policy, + env: {}, + events: nil, + strategy: "classified" + } + normalize = lambda do |reports| + Marshal.load(Marshal.dump(reports)).each do |report| + report.dig(:metadata)&.delete(:duration_ms) + report.dig(:report_envelope, :report, :metadata)&.delete(:duration_ms) + end + end + + main_ractor = described_class.send(:execute_recipe_reports, **common.merge(workers: 0)) + workers = described_class.send(:execute_recipe_reports, **common.merge(workers: 2)) + + expect(normalize.call(workers)).to eq(normalize.call(main_ractor)) + expect(workers.map { |report| report.fetch(:recipe_name) }).to eq(%w[ + github_actions_obsolete_workflow_cleanup_old + noop_main_only + github_actions_obsolete_workflow_cleanup_stale + ]) + end + end + it "normalizes GitHub remote source URLs structurally" do expect(described_class.normalize_git_source_url("git@github.com:rubythems/them-server.git")).to eq( "https://github.com/rubythems/them-server" From 4807d1e99d4e26f13862be359f522d484c086dd1 Mon Sep 17 00:00:00 2001 From: "Peter H. Boling" Date: Mon, 20 Jul 2026 13:23:52 -0600 Subject: [PATCH 078/188] Add kettle-jem Ractor planning benchmarks Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- gems/kettle-jem/CHANGELOG.md | 2 + gems/kettle-jem/benchmarks/README.md | 31 +++ .../benchmarks/fixtures/skeleton/.gitignore | 8 + .../benchmarks/fixtures/skeleton/Gemfile | 9 + .../benchmarks/fixtures/skeleton/README.md | 35 ++++ .../benchmarks/fixtures/skeleton/Rakefile | 4 + .../benchmarks/fixtures/skeleton/bin/console | 11 ++ .../benchmarks/fixtures/skeleton/bin/setup | 8 + .../fixtures/skeleton/lib/skeleton.rb | 8 + .../fixtures/skeleton/lib/skeleton/version.rb | 5 + .../fixtures/skeleton/sig/skeleton.rbs | 4 + .../fixtures/skeleton/skeleton.gemspec | 43 +++++ .../benchmarks/kettle_jem_ractor_planning.rb | 176 ++++++++++++++++++ 13 files changed, 344 insertions(+) create mode 100644 gems/kettle-jem/benchmarks/README.md create mode 100644 gems/kettle-jem/benchmarks/fixtures/skeleton/.gitignore create mode 100644 gems/kettle-jem/benchmarks/fixtures/skeleton/Gemfile create mode 100644 gems/kettle-jem/benchmarks/fixtures/skeleton/README.md create mode 100644 gems/kettle-jem/benchmarks/fixtures/skeleton/Rakefile create mode 100755 gems/kettle-jem/benchmarks/fixtures/skeleton/bin/console create mode 100755 gems/kettle-jem/benchmarks/fixtures/skeleton/bin/setup create mode 100644 gems/kettle-jem/benchmarks/fixtures/skeleton/lib/skeleton.rb create mode 100644 gems/kettle-jem/benchmarks/fixtures/skeleton/lib/skeleton/version.rb create mode 100644 gems/kettle-jem/benchmarks/fixtures/skeleton/sig/skeleton.rbs create mode 100644 gems/kettle-jem/benchmarks/fixtures/skeleton/skeleton.gemspec create mode 100755 gems/kettle-jem/benchmarks/kettle_jem_ractor_planning.rb diff --git a/gems/kettle-jem/CHANGELOG.md b/gems/kettle-jem/CHANGELOG.md index bf66789ed..89c95bd9a 100644 --- a/gems/kettle-jem/CHANGELOG.md +++ b/gems/kettle-jem/CHANGELOG.md @@ -51,6 +51,8 @@ Please file a bug if you notice a violation of semantic versioning. classified planning strategy now identifies worker-safe recipes, can opt into experimental Ractor workers with `KETTLE_JEM_RACTOR_WORKERS`, and preserves sequential report parity in preparation for Ractor-based recipe planning. +- Added a `benchmarks/` harness that templates a reset Bundler gem skeleton and + compares classified planning with and without opt-in Ractor workers. - Generated README Support & Community rows now include a RubyForum help badge. - Generated READMEs can now render template-managed corporate sponsor logos from `readme.corporate_sponsors` config or family-provided sponsorship data. diff --git a/gems/kettle-jem/benchmarks/README.md b/gems/kettle-jem/benchmarks/README.md new file mode 100644 index 000000000..794ac39bb --- /dev/null +++ b/gems/kettle-jem/benchmarks/README.md @@ -0,0 +1,31 @@ +# kettle-jem benchmarks + +This directory contains a repeatable benchmark harness for comparing +`kettle-jem` recipe planning with and without opt-in Ractor workers. + +The fixture at `fixtures/skeleton/` is generated from a standard +`bundle gem skeleton --git` run, with the generated `.git/` directory removed +so the skeleton can be committed as project data. Benchmark runs never mutate +that fixture directly. Each measured run copies it into `tmp/benchmarks/work/`, +runs one-shot templating from that copied gem root, writes reports under +`tmp/benchmarks/reports/`, and resets the copied skeleton before and after the +run. + +Run the benchmark from the `kettle-jem` project root: + +```bash +mise exec -C /path/to/kettle-jem -- ruby benchmarks/kettle_jem_ractor_planning.rb +``` + +Useful environment variables: + +| Variable | Default | Purpose | +| --- | --- | --- | +| `KETTLE_JEM_BENCHMARK_RUNS` | `3` | Number of measured runs for each variant. | +| `KETTLE_JEM_BENCHMARK_WORKERS` | `min(2, Etc.nprocessors)` | Worker count for the Ractor variant. | +| `KETTLE_JEM_BENCHMARK_COMMAND` | `apply` | Public `kettle-jem` command to benchmark: `plan`, `apply`, or `template`. | + +The default benchmark compares the `classified` planning strategy with +`KETTLE_JEM_RACTOR_WORKERS=0` against the same strategy with Ractor workers +enabled. The harness sets the first-run `kettle-jem` config values through +environment variables so the copied skeleton can be templated non-interactively. diff --git a/gems/kettle-jem/benchmarks/fixtures/skeleton/.gitignore b/gems/kettle-jem/benchmarks/fixtures/skeleton/.gitignore new file mode 100644 index 000000000..9106b2a34 --- /dev/null +++ b/gems/kettle-jem/benchmarks/fixtures/skeleton/.gitignore @@ -0,0 +1,8 @@ +/.bundle/ +/.yardoc +/_yardoc/ +/coverage/ +/doc/ +/pkg/ +/spec/reports/ +/tmp/ diff --git a/gems/kettle-jem/benchmarks/fixtures/skeleton/Gemfile b/gems/kettle-jem/benchmarks/fixtures/skeleton/Gemfile new file mode 100644 index 000000000..dd67942d4 --- /dev/null +++ b/gems/kettle-jem/benchmarks/fixtures/skeleton/Gemfile @@ -0,0 +1,9 @@ +# frozen_string_literal: true + +source "https://rubygems.org" + +# Specify your gem's dependencies in skeleton.gemspec +gemspec + +gem "irb" +gem "rake", "~> 13.0" diff --git a/gems/kettle-jem/benchmarks/fixtures/skeleton/README.md b/gems/kettle-jem/benchmarks/fixtures/skeleton/README.md new file mode 100644 index 000000000..ac3a148ad --- /dev/null +++ b/gems/kettle-jem/benchmarks/fixtures/skeleton/README.md @@ -0,0 +1,35 @@ +# Skeleton + +TODO: Delete this and the text below, and describe your gem + +Welcome to your new gem! In this directory, you'll find the files you need to be able to package up your Ruby library into a gem. Put your Ruby code in the file `lib/skeleton`. To experiment with that code, run `bin/console` for an interactive prompt. + +## Installation + +TODO: Replace `UPDATE_WITH_YOUR_GEM_NAME_IMMEDIATELY_AFTER_RELEASE_TO_RUBYGEMS_ORG` with your gem name right after releasing it to RubyGems.org. Please do not do it earlier due to security reasons. Alternatively, replace this section with instructions to install your gem from git if you don't plan to release to RubyGems.org. + +Install the gem and add to the application's Gemfile by executing: + +```bash +bundle add UPDATE_WITH_YOUR_GEM_NAME_IMMEDIATELY_AFTER_RELEASE_TO_RUBYGEMS_ORG +``` + +If bundler is not being used to manage dependencies, install the gem by executing: + +```bash +gem install UPDATE_WITH_YOUR_GEM_NAME_IMMEDIATELY_AFTER_RELEASE_TO_RUBYGEMS_ORG +``` + +## Usage + +TODO: Write usage instructions here + +## Development + +After checking out the repo, run `bin/setup` to install dependencies. You can also run `bin/console` for an interactive prompt that will allow you to experiment. + +To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and the created tag, and push the `.gem` file to [rubygems.org](https://rubygems.org). + +## Contributing + +Bug reports and pull requests are welcome on GitHub at https://github.com/[USERNAME]/skeleton. diff --git a/gems/kettle-jem/benchmarks/fixtures/skeleton/Rakefile b/gems/kettle-jem/benchmarks/fixtures/skeleton/Rakefile new file mode 100644 index 000000000..cd510a029 --- /dev/null +++ b/gems/kettle-jem/benchmarks/fixtures/skeleton/Rakefile @@ -0,0 +1,4 @@ +# frozen_string_literal: true + +require "bundler/gem_tasks" +task default: %i[] diff --git a/gems/kettle-jem/benchmarks/fixtures/skeleton/bin/console b/gems/kettle-jem/benchmarks/fixtures/skeleton/bin/console new file mode 100755 index 000000000..db1f39cec --- /dev/null +++ b/gems/kettle-jem/benchmarks/fixtures/skeleton/bin/console @@ -0,0 +1,11 @@ +#!/usr/bin/env ruby +# frozen_string_literal: true + +require "bundler/setup" +require "skeleton" + +# You can add fixtures and/or initialization code here to make experimenting +# with your gem easier. You can also use a different console, if you like. + +require "irb" +IRB.start(__FILE__) diff --git a/gems/kettle-jem/benchmarks/fixtures/skeleton/bin/setup b/gems/kettle-jem/benchmarks/fixtures/skeleton/bin/setup new file mode 100755 index 000000000..dce67d860 --- /dev/null +++ b/gems/kettle-jem/benchmarks/fixtures/skeleton/bin/setup @@ -0,0 +1,8 @@ +#!/usr/bin/env bash +set -euo pipefail +IFS=$'\n\t' +set -vx + +bundle install + +# Do any other automated setup that you need to do here diff --git a/gems/kettle-jem/benchmarks/fixtures/skeleton/lib/skeleton.rb b/gems/kettle-jem/benchmarks/fixtures/skeleton/lib/skeleton.rb new file mode 100644 index 000000000..c8a8e6842 --- /dev/null +++ b/gems/kettle-jem/benchmarks/fixtures/skeleton/lib/skeleton.rb @@ -0,0 +1,8 @@ +# frozen_string_literal: true + +require_relative "skeleton/version" + +module Skeleton + class Error < StandardError; end + # Your code goes here... +end diff --git a/gems/kettle-jem/benchmarks/fixtures/skeleton/lib/skeleton/version.rb b/gems/kettle-jem/benchmarks/fixtures/skeleton/lib/skeleton/version.rb new file mode 100644 index 000000000..7f8c5cf27 --- /dev/null +++ b/gems/kettle-jem/benchmarks/fixtures/skeleton/lib/skeleton/version.rb @@ -0,0 +1,5 @@ +# frozen_string_literal: true + +module Skeleton + VERSION = "0.1.0" +end diff --git a/gems/kettle-jem/benchmarks/fixtures/skeleton/sig/skeleton.rbs b/gems/kettle-jem/benchmarks/fixtures/skeleton/sig/skeleton.rbs new file mode 100644 index 000000000..3e1127be8 --- /dev/null +++ b/gems/kettle-jem/benchmarks/fixtures/skeleton/sig/skeleton.rbs @@ -0,0 +1,4 @@ +module Skeleton + VERSION: String + # See the writing guide of rbs: https://github.com/ruby/rbs#guides +end diff --git a/gems/kettle-jem/benchmarks/fixtures/skeleton/skeleton.gemspec b/gems/kettle-jem/benchmarks/fixtures/skeleton/skeleton.gemspec new file mode 100644 index 000000000..c1fd0d516 --- /dev/null +++ b/gems/kettle-jem/benchmarks/fixtures/skeleton/skeleton.gemspec @@ -0,0 +1,43 @@ +# frozen_string_literal: true + +require_relative "lib/skeleton/version" + +Gem::Specification.new do |spec| + spec.name = "skeleton" + spec.version = Skeleton::VERSION + spec.authors = ["Peter H. Boling"] + spec.email = ["peter.boling@gmail.com"] + + spec.summary = "TODO: Write a short summary, because RubyGems requires one." + spec.description = "TODO: Write a longer description or delete this line." + spec.homepage = "TODO: Put your gem's website or public repo URL here." + spec.required_ruby_version = ">= 3.2.0" + spec.metadata["allowed_push_host"] = "TODO: Set to your gem server 'https://example.com'" + spec.metadata["homepage_uri"] = spec.homepage + spec.metadata["source_code_uri"] = "TODO: Put your gem's public repo URL here." + + # Uncomment the line below to require MFA for gem pushes. + # This helps protect your gem from supply chain attacks by ensuring + # no one can publish a new version without multi-factor authentication. + # See: https://guides.rubygems.org/mfa-requirement-opt-in/ + # spec.metadata["rubygems_mfa_required"] = "true" + + # Specify which files should be added to the gem when it is released. + # The `git ls-files -z` loads the files in the RubyGem that have been added into git. + gemspec = File.basename(__FILE__) + spec.files = IO.popen(%w[git ls-files -z], chdir: __dir__, err: IO::NULL) do |ls| + ls.readlines("\x0", chomp: true).reject do |f| + (f == gemspec) || + f.start_with?(*%w[bin/ Gemfile .gitignore]) + end + end + spec.bindir = "exe" + spec.executables = spec.files.grep(%r{\Aexe/}) { |f| File.basename(f) } + spec.require_paths = ["lib"] + + # Uncomment to register a new dependency of your gem + # spec.add_dependency "example-gem", "~> 1.0" + + # For more information and examples about making a new gem, check out our + # guide at: https://guides.rubygems.org/make-your-own-gem/ +end diff --git a/gems/kettle-jem/benchmarks/kettle_jem_ractor_planning.rb b/gems/kettle-jem/benchmarks/kettle_jem_ractor_planning.rb new file mode 100755 index 000000000..96b8b0ffa --- /dev/null +++ b/gems/kettle-jem/benchmarks/kettle_jem_ractor_planning.rb @@ -0,0 +1,176 @@ +#!/usr/bin/env ruby +# frozen_string_literal: true + +require "etc" +require "fileutils" +require "json" +require "open3" +require "rbconfig" + +BENCHMARK_ROOT = File.expand_path(__dir__) +PROJECT_ROOT = File.expand_path("..", BENCHMARK_ROOT) +FIXTURE_ROOT = File.join(BENCHMARK_ROOT, "fixtures", "skeleton") +WORK_PARENT = File.join(PROJECT_ROOT, "tmp", "benchmarks", "work") +WORKTREE = File.join(WORK_PARENT, "skeleton") +REPORT_ROOT = File.join(PROJECT_ROOT, "tmp", "benchmarks", "reports") +KETTLE_JEM_EXE = File.join(PROJECT_ROOT, "exe", "kettle-jem") + +RUNS = Integer(ENV.fetch("KETTLE_JEM_BENCHMARK_RUNS", "3")) +WORKERS = Integer( + ENV.fetch("KETTLE_JEM_BENCHMARK_WORKERS", [2, Etc.nprocessors].min.to_s) +) +COMMAND = ENV.fetch("KETTLE_JEM_BENCHMARK_COMMAND", "apply") + +raise "KETTLE_JEM_BENCHMARK_RUNS must be positive" unless RUNS.positive? +raise "KETTLE_JEM_BENCHMARK_WORKERS must be positive" unless WORKERS.positive? +raise "Missing fixture skeleton at #{FIXTURE_ROOT}" unless Dir.exist?(FIXTURE_ROOT) +unless %w[plan apply template].include?(COMMAND) + raise "Unsupported benchmark command #{COMMAND.inspect}" +end + +BASE_ENV = { + "K_JEM_TEMPLATING" => "true", + "KETTLE_JEM_ACCEPT_CONFIG" => "true", + "KETTLE_JEM_SKIP_COMMIT" => "true", + "KETTLE_JEM_SKIP_LOCK_NORMALIZATION" => "true", + "KETTLE_JEM_TEMPLATE_PROFILE" => "full", + "KJ_REPOSITORY_TOPOLOGY" => "standalone", + "KJ_AUTHOR_NAME" => "Benchmark Author", + "KJ_AUTHOR_EMAIL" => "benchmark@example.com", + "KJ_AUTHOR_DOMAIN" => "example.com", + "KJ_GH_USER" => "benchmark", + "KJ_HOMEPAGE_URI" => "https://example.com/skeleton", + "allowed" => "true", + "force" => "true", + "git_drivers" => "false", + "hook_templates" => "false" +}.freeze + +VARIANTS = [ + { + name: "classified-main-ractor", + env: { + "KETTLE_JEM_RECIPE_PLANNING_STRATEGY" => "classified", + "KETTLE_JEM_RACTOR_WORKERS" => "0" + } + }, + { + name: "classified-ractor-#{WORKERS}", + env: { + "KETTLE_JEM_RECIPE_PLANNING_STRATEGY" => "classified", + "KETTLE_JEM_RACTOR_WORKERS" => WORKERS.to_s + } + } +].freeze + +def reset_worktree + FileUtils.rm_rf(WORKTREE) + FileUtils.mkdir_p(WORK_PARENT) + FileUtils.cp_r(FIXTURE_ROOT, WORK_PARENT) +end + +def percentile(values, fraction) + sorted = values.sort + sorted.fetch([(sorted.length - 1) * fraction, 0].max.round) +end + +def summarize(times) + { + min: times.min, + median: percentile(times, 0.5), + max: times.max, + mean: times.sum / times.length + } +end + +def report_snapshot(path) + report = JSON.parse(File.read(path)) + { + strategy: report["recipe_planning_strategy"], + workers: report["recipe_planning_workers"], + recipes: Array(report["recipe_reports"]).length, + changed: Array(report["changed_files"]).length + } +end + +def run_variant(variant, index) + report_path = File.join(REPORT_ROOT, "#{variant.fetch(:name)}-#{index}.json") + env = ENV.to_h.merge(BASE_ENV).merge(variant.fetch(:env)) + command = [ + RbConfig.ruby, + KETTLE_JEM_EXE, + COMMAND, + "--force", + "--quiet", + "--accept-config", + "--skip-commit", + "--report", + report_path + ] + + reset_worktree + started_at = Process.clock_gettime(Process::CLOCK_MONOTONIC) + stdout, stderr, status = Open3.capture3(env, *command, chdir: WORKTREE) + elapsed = Process.clock_gettime(Process::CLOCK_MONOTONIC) - started_at + raise <<~MESSAGE unless status.success? + Benchmark variant #{variant.fetch(:name)} run #{index} failed with status + #{status.exitstatus}. + Command: #{command.join(" ")} + STDOUT: + #{stdout} + STDERR: + #{stderr} + MESSAGE + + [elapsed, report_snapshot(report_path)] +ensure + reset_worktree +end + +FileUtils.rm_rf(REPORT_ROOT) +FileUtils.mkdir_p(REPORT_ROOT) +reset_worktree + +results = VARIANTS.to_h do |variant| + times = [] + snapshots = [] + RUNS.times do |index| + elapsed, snapshot = run_variant(variant, index + 1) + times << elapsed + snapshots << snapshot + end + [variant.fetch(:name), {times: times, summary: summarize(times), snapshot: snapshots.last}] +end + +puts "kettle-jem Ractor planning benchmark" +puts "fixture: #{FIXTURE_ROOT}" +puts "command: kettle-jem #{COMMAND}" +puts "runs: #{RUNS}" +puts +puts format( + "%-26s %8s %8s %8s %8s %7s %7s", + "variant", + "min", + "median", + "mean", + "max", + "recipes", + "changed" +) +results.each do |name, result| + summary = result.fetch(:summary) + snapshot = result.fetch(:snapshot) + puts format( + "%-26s %8.3fs %8.3fs %8.3fs %8.3fs %7d %7d", + name, + summary.fetch(:min), + summary.fetch(:median), + summary.fetch(:mean), + summary.fetch(:max), + snapshot.fetch(:recipes), + snapshot.fetch(:changed) + ) +end + +puts +puts "reports: #{REPORT_ROOT}" From 95f7b234f159922eba4a81cd9d4642d12b73a8c7 Mon Sep 17 00:00:00 2001 From: "Peter H. Boling" Date: Mon, 20 Jul 2026 13:49:16 -0600 Subject: [PATCH 079/188] Introduce kettle-jem write intents Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- gems/kettle-jem/CHANGELOG.md | 3 ++ gems/kettle-jem/lib/kettle/jem.rb | 58 ++++++++++++++++++++--- gems/kettle-jem/spec/thin_slice_spec.rb | 62 +++++++++++++++++++++++++ 3 files changed, 117 insertions(+), 6 deletions(-) diff --git a/gems/kettle-jem/CHANGELOG.md b/gems/kettle-jem/CHANGELOG.md index 89c95bd9a..0e76a8976 100644 --- a/gems/kettle-jem/CHANGELOG.md +++ b/gems/kettle-jem/CHANGELOG.md @@ -53,6 +53,9 @@ Please file a bug if you notice a violation of semantic versioning. sequential report parity in preparation for Ractor-based recipe planning. - Added a `benchmarks/` harness that templates a reset Bundler gem skeleton and compares classified planning with and without opt-in Ractor workers. +- Apply now routes recipe report mutations through explicit write intents before + committing them sequentially, preparing the file-processing path for future + actor/Ractor execution without changing write order. - Generated README Support & Community rows now include a RubyForum help badge. - Generated READMEs can now render template-managed corporate sponsor logos from `readme.corporate_sponsors` config or family-provided sponsorship data. diff --git a/gems/kettle-jem/lib/kettle/jem.rb b/gems/kettle-jem/lib/kettle/jem.rb index 228d69749..ea989b0d0 100644 --- a/gems/kettle-jem/lib/kettle/jem.rb +++ b/gems/kettle-jem/lib/kettle/jem.rb @@ -1600,6 +1600,27 @@ def warning(message) end end + class WriteIntent + attr_reader :relative_path, :absolute_path, :action, :content, :recipe_name, :metadata + + def initialize(relative_path:, absolute_path:, action:, content: nil, recipe_name: nil, metadata: {}) + @relative_path = relative_path.to_s + @absolute_path = absolute_path.to_s + @action = action.to_sym + @content = content + @recipe_name = recipe_name + @metadata = metadata || {} + end + + def delete? + action == :delete + end + + def write? + action == :write + end + end + module TemplateChecksums YAML_KEY = "kettle-jem" CHECKSUMS_SUBKEY = "checksums" @@ -10373,8 +10394,8 @@ def run_apply_phases(project_root, report) phase_stats: phase_stats ) end - reports_by_phase.fetch(phase, []).each do |recipe_report| - apply_recipe_report(project_root, recipe_report) + write_intents_for_phase(project_root, reports_by_phase.fetch(phase, [])).each do |write_intent| + commit_write_intent(write_intent) end unless plugin_registry.empty? plugin_registry.run( @@ -10398,14 +10419,39 @@ def run_apply_phases(project_root, report) end def apply_recipe_report(project_root, recipe_report) + intent = write_intent_from_recipe_report(project_root, recipe_report) + commit_write_intent(intent) if intent + end + + def write_intents_for_phase(project_root, recipe_reports) + recipe_reports.filter_map { |recipe_report| write_intent_from_recipe_report(project_root, recipe_report) } + end + + def write_intent_from_recipe_report(project_root, recipe_report) return unless recipe_report[:changed] - path = File.join(project_root, recipe_report.fetch(:relative_path)) - if recipe_report.dig(:metadata, :delete_file) + relative_path = recipe_report.fetch(:relative_path) + action = recipe_report.dig(:metadata, :delete_file) ? :delete : :write + content = action == :write ? recipe_report.fetch(:final_content) : nil + WriteIntent.new( + relative_path: relative_path, + absolute_path: File.join(project_root, relative_path), + action: action, + content: content, + recipe_name: recipe_report[:recipe_name], + metadata: recipe_report.fetch(:metadata, {}) + ) + end + + def commit_write_intent(write_intent) + path = write_intent.absolute_path + if write_intent.delete? FileUtils.rm_f(path) - else + elsif write_intent.write? FileUtils.mkdir_p(File.dirname(path)) - File.write(path, recipe_report.fetch(:final_content)) + File.write(path, write_intent.content) + else + raise ArgumentError, "Unsupported write intent action #{write_intent.action.inspect}" end end diff --git a/gems/kettle-jem/spec/thin_slice_spec.rb b/gems/kettle-jem/spec/thin_slice_spec.rb index 6532125a6..247dbaadf 100644 --- a/gems/kettle-jem/spec/thin_slice_spec.rb +++ b/gems/kettle-jem/spec/thin_slice_spec.rb @@ -253,6 +253,68 @@ end end + it "turns changed recipe reports into deterministic write intents" do + tmp_root = File.join(__dir__, "tmp") + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-write-intents", tmp_root) do |root| + write_report = { + changed: true, + relative_path: "lib/example.rb", + recipe_name: "generated_lib_file", + final_content: "# generated\n", + metadata: {destination_existed: false} + } + delete_report = { + changed: true, + relative_path: ".github/workflows/old.yml", + recipe_name: "github_actions_obsolete_workflow_cleanup_old", + metadata: {delete_file: true} + } + unchanged_report = write_report.merge(changed: false) + + write_intent = described_class.send(:write_intent_from_recipe_report, root, write_report) + delete_intent = described_class.send(:write_intent_from_recipe_report, root, delete_report) + + expect(write_intent.action).to eq(:write) + expect(write_intent.relative_path).to eq("lib/example.rb") + expect(write_intent.absolute_path).to eq(File.join(root, "lib/example.rb")) + expect(write_intent.content).to eq("# generated\n") + expect(write_intent.recipe_name).to eq("generated_lib_file") + expect(write_intent.metadata).to eq(destination_existed: false) + expect(delete_intent.action).to eq(:delete) + expect(delete_intent.content).to be_nil + expect(described_class.send(:write_intent_from_recipe_report, root, unchanged_report)).to be_nil + end + end + + it "commits write intents sequentially while preserving current apply behavior" do + tmp_root = File.join(__dir__, "tmp") + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-write-intent-commit", tmp_root) do |root| + FileUtils.mkdir_p(File.join(root, "obsolete")) + File.write(File.join(root, "obsolete/file.txt"), "old\n") + write_intent = described_class::WriteIntent.new( + relative_path: "lib/example.rb", + absolute_path: File.join(root, "lib/example.rb"), + action: :write, + content: "# generated\n", + recipe_name: "generated_lib_file" + ) + delete_intent = described_class::WriteIntent.new( + relative_path: "obsolete/file.txt", + absolute_path: File.join(root, "obsolete/file.txt"), + action: :delete, + recipe_name: "obsolete_file_cleanup" + ) + + described_class.send(:commit_write_intent, write_intent) + described_class.send(:commit_write_intent, delete_intent) + + expect(File.read(File.join(root, "lib/example.rb"))).to eq("# generated\n") + expect(File).not_to exist(File.join(root, "obsolete/file.txt")) + end + end + it "normalizes GitHub remote source URLs structurally" do expect(described_class.normalize_git_source_url("git@github.com:rubythems/them-server.git")).to eq( "https://github.com/rubythems/them-server" From c33a2eaed18797f08ccc4994ce1347036f0a977e Mon Sep 17 00:00:00 2001 From: "Peter H. Boling" Date: Mon, 20 Jul 2026 14:05:17 -0600 Subject: [PATCH 080/188] Split kettle-jem integration specs Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- gems/kettle-jem/CHANGELOG.md | 3 + gems/kettle-jem/lib/kettle/jem.rb | 20 +- .../spec/bin/kettle_jem_deps_floor_spec.rb | 2 - .../spec/bin/kettle_jem_workflow_pins_spec.rb | 1 - gems/kettle-jem/spec/byte_offset_edit_spec.rb | 2 - gems/kettle-jem/spec/cli_spec.rb | 1 - .../e2e/rubygems_thin_vertical_slice_spec.rb | 75 + .../appraisal_helper_and_token_spec.rb | 1712 ++ .../appraisals_and_gemfile_template_spec.rb | 1584 ++ .../config_metadata_template_spec.rb | 2461 +++ .../integration/coverage_template_spec.rb | 193 + .../spec/integration/gemspec_template_spec.rb | 1550 ++ .../github_workflow_template_spec.rb | 1173 ++ .../readme_changelog_template_spec.rb | 1344 ++ .../spec/integration/recipe_planning_spec.rb | 328 + .../spec/integration/shim_profile_spec.rb | 135 + .../structural_merge_template_spec.rb | 1606 ++ .../integration/template_bootstrap_spec.rb | 1444 ++ .../kettle/jem/tasks/prepare_task_spec.rb | 2 - .../spec/kettle/jem_style_template_spec.rb | 2 - .../jem_style_workflow_template_spec.rb | 2 - .../spec/old_public_spec_audit_spec.rb | 2 - gems/kettle-jem/spec/rake_tasks_spec.rb | 1 - .../kettle-jem/spec/release_packaging_spec.rb | 1 - gems/kettle-jem/spec/self_test_task_spec.rb | 2 - .../spec/support/kettle_jem_spec_helpers.rb | 13 + .../spec/system/bundle_gem_scaffold_spec.rb | 1 - .../spec/system/install_orchestration_spec.rb | 2101 +++ .../template_version_gem_bootstrap_spec.rb | 11 +- gems/kettle-jem/spec/thin_slice_spec.rb | 15343 ---------------- 30 files changed, 15734 insertions(+), 15381 deletions(-) create mode 100644 gems/kettle-jem/spec/e2e/rubygems_thin_vertical_slice_spec.rb create mode 100644 gems/kettle-jem/spec/integration/appraisal_helper_and_token_spec.rb create mode 100644 gems/kettle-jem/spec/integration/appraisals_and_gemfile_template_spec.rb create mode 100644 gems/kettle-jem/spec/integration/config_metadata_template_spec.rb create mode 100644 gems/kettle-jem/spec/integration/coverage_template_spec.rb create mode 100644 gems/kettle-jem/spec/integration/gemspec_template_spec.rb create mode 100644 gems/kettle-jem/spec/integration/github_workflow_template_spec.rb create mode 100644 gems/kettle-jem/spec/integration/readme_changelog_template_spec.rb create mode 100644 gems/kettle-jem/spec/integration/recipe_planning_spec.rb create mode 100644 gems/kettle-jem/spec/integration/shim_profile_spec.rb create mode 100644 gems/kettle-jem/spec/integration/structural_merge_template_spec.rb create mode 100644 gems/kettle-jem/spec/integration/template_bootstrap_spec.rb create mode 100644 gems/kettle-jem/spec/system/install_orchestration_spec.rb delete mode 100644 gems/kettle-jem/spec/thin_slice_spec.rb diff --git a/gems/kettle-jem/CHANGELOG.md b/gems/kettle-jem/CHANGELOG.md index 0e76a8976..12b2314d3 100644 --- a/gems/kettle-jem/CHANGELOG.md +++ b/gems/kettle-jem/CHANGELOG.md @@ -56,6 +56,9 @@ Please file a bug if you notice a violation of semantic versioning. - Apply now routes recipe report mutations through explicit write intents before committing them sequentially, preparing the file-processing path for future actor/Ractor execution without changing write order. +- The former monolithic thin-slice spec has been split into behavior-named + integration, system, and end-to-end specs so the project test harness can + parallelize templating coverage more effectively. - Generated README Support & Community rows now include a RubyForum help badge. - Generated READMEs can now render template-managed corporate sponsor logos from `readme.corporate_sponsors` config or family-provided sponsorship data. diff --git a/gems/kettle-jem/lib/kettle/jem.rb b/gems/kettle-jem/lib/kettle/jem.rb index ea989b0d0..1a5b23da9 100644 --- a/gems/kettle-jem/lib/kettle/jem.rb +++ b/gems/kettle-jem/lib/kettle/jem.rb @@ -14,17 +14,7 @@ require "token/resolver" require "yaml" require "ast/merge" -require "ruby/merge" -require "prism/merge" -require "bash/merge" -require "json/merge" -require "dotenv/merge" require "rbs" -require "rbs/merge" -require "citrus-toml-merge" -require "psych-merge" -require "ast/crispr/markdown/markly" -require "ast/crispr/ruby/prism" require "kettle/dev" require "kettle/rb/compat_matrix" require_relative "jem/version" @@ -2132,6 +2122,16 @@ module Tasks def ensure_runtime_dependencies! return if defined?(@runtime_dependencies_loaded) && @runtime_dependencies_loaded + require "ruby/merge" + require "prism/merge" + require "bash/merge" + require "json/merge" + require "dotenv/merge" + require "rbs/merge" + require "citrus-toml-merge" + require "psych-merge" + require "ast/crispr/markdown/markly" + require "ast/crispr/ruby/prism" @runtime_dependencies_loaded = true end # rubocop:enable ThreadSafety/ClassInstanceVariable diff --git a/gems/kettle-jem/spec/bin/kettle_jem_deps_floor_spec.rb b/gems/kettle-jem/spec/bin/kettle_jem_deps_floor_spec.rb index 0c3620b32..23d4b5273 100644 --- a/gems/kettle-jem/spec/bin/kettle_jem_deps_floor_spec.rb +++ b/gems/kettle-jem/spec/bin/kettle_jem_deps_floor_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require "spec_helper" - load File.expand_path("../../bin/kettle-jem-deps-floor", __dir__) RSpec.describe KettleJemDepsFloor do diff --git a/gems/kettle-jem/spec/bin/kettle_jem_workflow_pins_spec.rb b/gems/kettle-jem/spec/bin/kettle_jem_workflow_pins_spec.rb index 5a11fc24b..bedfa70ff 100644 --- a/gems/kettle-jem/spec/bin/kettle_jem_workflow_pins_spec.rb +++ b/gems/kettle-jem/spec/bin/kettle_jem_workflow_pins_spec.rb @@ -1,6 +1,5 @@ # frozen_string_literal: true -require "spec_helper" require "psych" load File.expand_path("../../bin/kettle-jem-workflow-pins", __dir__) diff --git a/gems/kettle-jem/spec/byte_offset_edit_spec.rb b/gems/kettle-jem/spec/byte_offset_edit_spec.rb index 33e7da23b..3e8a1b3dd 100644 --- a/gems/kettle-jem/spec/byte_offset_edit_spec.rb +++ b/gems/kettle-jem/spec/byte_offset_edit_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require_relative "spec_helper" - RSpec.describe Kettle::Jem do describe ".replace_source_offsets" do it "applies Prism byte offsets after non-ASCII content" do diff --git a/gems/kettle-jem/spec/cli_spec.rb b/gems/kettle-jem/spec/cli_spec.rb index ed1c4b327..b89cacbe8 100644 --- a/gems/kettle-jem/spec/cli_spec.rb +++ b/gems/kettle-jem/spec/cli_spec.rb @@ -1,6 +1,5 @@ # frozen_string_literal: true -require_relative "spec_helper" require "kettle/jem/cli" require "stringio" diff --git a/gems/kettle-jem/spec/e2e/rubygems_thin_vertical_slice_spec.rb b/gems/kettle-jem/spec/e2e/rubygems_thin_vertical_slice_spec.rb new file mode 100644 index 000000000..8580fc8d4 --- /dev/null +++ b/gems/kettle-jem/spec/e2e/rubygems_thin_vertical_slice_spec.rb @@ -0,0 +1,75 @@ +# frozen_string_literal: true + +RSpec.describe Kettle::Jem, "RubyGems thin vertical slice" do + include_context "with isolated kettle-jem environment" + include_context "with kettle-jem fixture contracts" + + it "plans and applies the RubyGems thin vertical slice" do + expected_recipe_names = contract.fetch(:canonical_recipes).map { |recipe| recipe.fetch(:name).to_s } + expect(contract.fetch(:validated_ecosystems)).to include(fixture.fetch(:ecosystem)) + expect(fixture.fetch(:expected).fetch(:facts).keys).to include( + *contract.fetch(:required_fact_groups).map(&:to_sym), + contract.fetch(:ecosystem_fact_groups).fetch(:rubygems).to_sym + ) + + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-thin-slice", tmp_root) do |root| + write_tree(root, fixture.fetch(:inputs).fetch(:files)) + + plan = described_class.plan_project(root, env: {}) + expect(json_ready(plan[:facts])).to eq(json_ready(fixture.fetch(:expected).fetch(:facts))) + recipe_names = plan[:recipe_pack][:recipes].map { |recipe| recipe[:name] } + expect(recipe_names.take(expected_recipe_names.length)).to eq(expected_recipe_names) + expect(recipe_names).to include("github_funding_yml") + expect(recipe_names).not_to include("github_actions_ci") + expect(recipe_names).not_to include("github_actions_framework_ci") + expect(recipe_names).to include(a_string_starting_with("github_actions_obsolete_workflow_cleanup_")) + expect(recipe_names).to include("rakefile_scaffold_cleanup") + expect(recipe_names).to include(a_string_starting_with("github_actions_workflow_snippets_")) + expect(plan[:changed_files]).to eq(fixture.fetch(:expected).fetch(:changed_files)) + expect(plan[:recipe_reports].map { |report| report[:request_envelope][:kind] }.uniq).to eq( + [contract.fetch(:report_contract).fetch(:request_envelope_kind)] + ) + expect(plan[:recipe_reports].map { |report| report[:report_envelope][:kind] }.uniq).to eq( + [contract.fetch(:report_contract).fetch(:report_envelope_kind)] + ) + rakefile_report = plan[:recipe_reports].find { |report| report.fetch(:recipe_name) == "rakefile_scaffold_cleanup" } + expect(rakefile_report.dig(:request_envelope, :request, :runtime_context, :delete_selectors).length).to eq(4) + expect(rakefile_report.dig(:report_envelope, :report, :step_reports, 0, :metadata, :deleted_ranges)).to eq(4) + expect(rakefile_report.fetch(:final_content)).to include("task :custom") + expect(rakefile_report.fetch(:final_content)).not_to include("bundler/gem_tasks") + expect(rakefile_report.fetch(:final_content)).not_to include("RSpec::Core::RakeTask") + funding_yml_report = plan[:recipe_reports].find { |report| report.fetch(:recipe_name) == "github_funding_yml" } + expect(funding_yml_report.fetch(:final_content)).to include("tidelift: rubygems/example") + expect(funding_yml_report.fetch(:final_content)).to include("open_collective: example") + custom_ci_report = plan[:recipe_reports].find do |report| + report.fetch(:relative_path) == ".github/workflows/custom-ci.yml" + end + expect(custom_ci_report.fetch(:final_content)).to include("permissions:") + expect(custom_ci_report.fetch(:final_content)).to include("concurrency:") + expect_pinned_action(custom_ci_report.fetch(:final_content), "actions/checkout") + expect_pinned_action(custom_ci_report.fetch(:final_content), "ruby/setup-ruby") + expect(custom_ci_report.fetch(:final_content)).to include("Upload coverage to Coveralls") + expect_pinned_action(custom_ci_report.fetch(:final_content), "qltysh/qlty-action/coverage") + expect(custom_ci_report.fetch(:final_content)).to include("oidc: true") + expect(custom_ci_report.fetch(:final_content)).not_to include("QLTY_COVERAGE_TOKEN") + expect(custom_ci_report.fetch(:final_content)).to include("Code Coverage Summary Report") + expect(custom_ci_report.fetch(:final_content)).to include("ruby: [\"3.2\", \"3.3\"]") + obsolete_workflow_report = plan[:recipe_reports].find do |report| + report.fetch(:relative_path) == ".github/workflows/ancient.yml" + end + expect(obsolete_workflow_report.fetch(:metadata).fetch(:delete_file)).to be(true) + expect(obsolete_workflow_report.dig(:report_envelope, :report, :step_reports, 0, :metadata, :deleted_file)).to eq( + ".github/workflows/ancient.yml" + ) + + apply = described_class.apply_project(root, env: {}) + expect(apply[:changed_files]).to eq(fixture.fetch(:expected).fetch(:changed_files)) + expect(normalize_workflow_pins_for_spec(project_files(root, fixture.fetch(:expected).fetch(:files).keys.map(&:to_s)))).to eq( + normalize_workflow_pins_for_spec(fixture.fetch(:expected).fetch(:files)) + ) + end + end + +end diff --git a/gems/kettle-jem/spec/integration/appraisal_helper_and_token_spec.rb b/gems/kettle-jem/spec/integration/appraisal_helper_and_token_spec.rb new file mode 100644 index 000000000..9866dd234 --- /dev/null +++ b/gems/kettle-jem/spec/integration/appraisal_helper_and_token_spec.rb @@ -0,0 +1,1712 @@ +# frozen_string_literal: true + +RSpec.describe Kettle::Jem, "appraisal helpers and template tokens" do + include_context "with isolated kettle-jem environment" + include_context "with kettle-jem fixture contracts" + + it "renders deterministic appraisal helper outputs" do + matrix_entries = [ + { + name: described_class.appraisal_name( + tier1_gem: "activerecord", + tier1_version: "7.1", + tier2_gem: "omniauth", + tier2_version: "2.1", + ruby_series: "r3" + ), + ruby_series: "r3", + tier1_gemfile: "gemfiles/modular/activerecord/r3/v7.1.gemfile", + tier2_gemfile: "gemfiles/modular/omniauth/r3/v2.1.gemfile", + x_std_libs_gemfile: "gemfiles/modular/x_std_libs/r3/libs.gemfile" + }, + { + name: described_class.appraisal_name( + tier1_gem: "mail", + tier1_version: "2.8", + ruby_series: "r2" + ), + ruby_series: "r2", + tier1_gemfile: "gemfiles/modular/mail/r2/v2.8.gemfile", + x_std_libs_gemfile: "gemfiles/modular/x_std_libs/r2/libs.gemfile" + } + ] + bucket_ranges = { + "r2" => {floor: "2.7", ceiling: "2.99"}, + "r3" => {floor: "3.2", ceiling: "3.99"} + } + + expect(described_class.appraisal_gem_abbreviation("activerecord")).to eq("ar") + expect(described_class.appraisal_gem_abbreviation("unknown")).to eq("unknown") + expect(described_class.appraisal_format_version("7.1.5")).to eq("7-1-5") + expect(matrix_entries.map { |entry| entry.fetch(:name) }).to eq(["kja-ar-7-1-oa-2-1-r3", "kja-mail-2-8-r2"]) + expect(described_class.appraisal_modular_gemfile_path(gem_name: "activerecord", version: "7.1", ruby_series: "r3")).to eq( + "gemfiles/modular/activerecord/r3/v7.1.gemfile" + ) + expect(described_class.appraisal_modular_gemfile_content( + gem_name: "activerecord", + version: "7.1", + sub_dependencies: {"sqlite3" => "1.6.9"} + )).to eq(<<~RUBY) + # frozen_string_literal: true + + # Generated by kettle-jem + + gem "activerecord", "~> 7.1.0" + gem "sqlite3", "~> 1.6.9" + RUBY + + appraisals = described_class.appraisal_file_content(matrix_entries) + expect(appraisals).to include('appraise "kja-ar-7-1-oa-2-1-r3" do') + expect(appraisals).to include('eval_gemfile "modular/activerecord/r3/v7.1.gemfile"') + expect(appraisals).not_to include('eval_gemfile "gemfiles/') + expect(appraisals).to include('appraise "kja-mail-2-8-r2" do') + expect(appraisals).not_to end_with("\n\n") + + groups = described_class.appraisal_workflow_groups(matrix_entries, bucket_ranges: bucket_ranges) + expect(groups).to eq( + "supported" => [ + { + ruby: "3.2", + appraisal: "kja-ar-7-1-oa-2-1-r3", + exec_cmd: "kettle-test", + rubygems: "latest", + bundler: "latest" + } + ], + "unsupported" => [ + { + ruby: "2.7", + appraisal: "kja-mail-2-8-r2", + exec_cmd: "kettle-test", + rubygems: "latest", + bundler: "latest" + } + ] + ) + expect(described_class.appraisal_workflow_yaml_snippets(matrix_entries, bucket_ranges: bucket_ranges).fetch("supported")).to include( + 'appraisal: "kja-ar-7-1-oa-2-1-r3"' + ) + expect(described_class.appraisal_x_stdlib_exclusions(<<~RUBY)).to eq(["erb", "mutex_m", "version_gem"]) + eval_gemfile "../erb/vHEAD.gemfile" + eval_gemfile "../mutex_m/vHEAD.gemfile" + RUBY + end + + + it "plans deterministic appraisal matrices from supplied version metadata" do + versions = %w[5.0.0 5.1.0 5.2.0 6.0.0 6.1.0 7.0.0 7.1.0 7.2.0].map do |number| + {number: number} + end + + expect(described_class.appraisal_select_versions(versions, mode: "major")).to eq(["5.2", "6.1", "7.2"]) + expect(described_class.appraisal_select_versions(versions, mode: "minor")).to eq( + ["5.0", "5.1", "5.2", "6.0", "6.1", "7.0", "7.1", "7.2"] + ) + expect(described_class.appraisal_select_versions(versions, mode: "patch")).to eq( + ["5.0.0", "5.1.0", "5.2.0", "6.0.0", "6.1.0", "7.0.0", "7.1.0", "7.2.0"] + ) + expect(described_class.appraisal_select_versions(versions, mode: "minor-minmax")).to eq( + ["5.0", "5.2", "6.0", "6.1", "7.0", "7.1", "7.2"] + ) + expect(described_class.appraisal_select_versions(versions, mode: "semver")).to eq(["5.2", "6.1", "7.0", "7.1", "7.2"]) + expect(described_class.appraisal_select_versions(versions, mode: "minor", requirements: [">= 6.0", "< 7.0"])).to eq(["6.0", "6.1"]) + + entries = described_class.appraisal_matrix_entries( + tier1_gems: [ + { + name: "activerecord", + assignments: [ + {version: "6.1", bucket: "r2"}, + {version: "7.2", bucket: "r3"} + ] + } + ], + tier2_gems: [ + {name: "omniauth", versions: ["2.1"]} + ] + ) + + expect(entries).to eq( + [ + { + name: "kja-ar-6-1-oa-2-1-r2", + tier1_gemfile: "gemfiles/modular/activerecord/r2/v6.1.gemfile", + tier2_gemfile: "gemfiles/modular/omniauth/r2/v2.1.gemfile", + x_std_libs_gemfile: "gemfiles/modular/x_std_libs/r2/libs.gemfile", + ruby_series: "r2" + }, + { + name: "kja-ar-7-2-oa-2-1-r3", + tier1_gemfile: "gemfiles/modular/activerecord/r3/v7.2.gemfile", + tier2_gemfile: "gemfiles/modular/omniauth/r3/v2.1.gemfile", + x_std_libs_gemfile: "gemfiles/modular/x_std_libs/r3/libs.gemfile", + ruby_series: "r3" + } + ] + ) + end + + + it "detects appraisal Ruby seams and assigns selected versions to buckets" do + versions = [ + {number: "5.2.8", min_ruby: "2.3"}, + {number: "6.0.6", min_ruby: "2.5"}, + {number: "6.1.7", min_ruby: "2.5"}, + {number: "7.0.8", min_ruby: "2.7"}, + {number: "7.1.5", min_ruby: "2.7"}, + {number: "7.2.2", min_ruby: "3.1"} + ] + + seams = described_class.appraisal_find_ruby_seams(versions) + expect(seams).to eq( + [ + {version: "5.2", min_ruby: Gem::Version.new("2.4")}, + {version: "6.0", min_ruby: Gem::Version.new("2.5")}, + {version: "7.0", min_ruby: Gem::Version.new("2.7")}, + {version: "7.2", min_ruby: Gem::Version.new("3.1")} + ] + ) + + series = described_class.appraisal_ruby_series(versions) + expect(series.fetch(:buckets)).to eq(["r2.4", "r2.6", "r2", "r3"]) + + assignments = described_class.appraisal_assign_version_buckets( + selected_versions: ["5.2", "6.1", "7.2"], + seams: seams, + buckets: series.fetch(:buckets), + bucket_ranges: series.fetch(:bucket_ranges), + all_versions: ["5.2", "6.0", "6.1", "7.0", "7.1", "7.2"] + ) + expect(assignments).to eq( + [ + {version: "5.2", bucket: "r2.4"}, + {version: "6.1", bucket: "r2.6"}, + {version: "7.1", bucket: "r2", filler: true}, + {version: "7.2", bucket: "r3"} + ] + ) + end + + + it "resolves appraisal sub-dependencies from supplied metadata" do + resolved = described_class.appraisal_resolve_sub_dependencies( + parent_gem: "activerecord", + parent_version: "7.1", + ruby_min: "3.0", + excluded_gems: ["erb", "version_gem"], + parent_versions: [ + { + number: "7.1.3", + runtime_dependencies: [ + {name: "sqlite3", requirements: "~> 1.6"}, + {name: "erb", requirements: ">= 0"} + ] + } + ], + dependency_versions: { + "sqlite3" => [ + {number: "1.6.8", min_ruby: "2.7"}, + {number: "1.6.9", min_ruby: "3.0"}, + {number: "1.7.0", min_ruby: "3.2"} + ] + } + ) + + expect(resolved).to eq("sqlite3" => "1.6.9") + end + + + it "resolves RubyGems version metadata through a cacheable Kettle/Jem resolver" do + response = Struct.new(:code, :body) + calls = [] + http_get = lambda do |uri| + calls << uri.to_s + case uri.to_s + when "https://example.test/api/v1/versions/active+record.json" + response.new("200", JSON.dump([ + {"number" => "7.1.0.beta1", "ruby_version" => ">= 3.0", "prerelease" => true, "created_at" => "2024-01-01"}, + {"number" => "6.1.7", "ruby_version" => ">= 2.5", "prerelease" => false, "created_at" => "2023-01-01"}, + {"number" => "7.1.3", "ruby_version" => ">= 2.7", "prerelease" => false, "created_at" => "2024-02-01"} + ])) + when "https://example.test/api/v2/rubygems/active+record/versions/7.1.3.json" + response.new("200", JSON.dump({ + "number" => "7.1.3", + "ruby_version" => ">= 2.7", + "dependencies" => { + "runtime" => [ + {"name" => "sqlite3", "requirements" => "~> 1.6"} + ] + } + })) + else + response.new("404", "{}") + end + end + + resolver = described_class::RubyGemsResolver.new( + http_get: http_get, + v1_api_base: "https://example.test/api/v1", + v2_api_base: "https://example.test/api/v2/rubygems" + ) + + expect(resolver.versions("active record", requirements: ">= 7.0")).to eq( + [ + {number: "7.1.3", ruby_version: ">= 2.7", created_at: "2024-02-01", prerelease: false} + ] + ) + expect(resolver.versions("active record", include_prerelease: true).map { |entry| entry.fetch(:number) }).to eq( + ["6.1.7", "7.1.0.beta1", "7.1.3"] + ) + expect(resolver.min_ruby_version("active record", "7.1.3")).to eq(Gem::Version.new("2.7")) + expect(resolver.minor_versions_by_major("active record")).to eq( + [ + {major: 6, minors: ["6.1"]}, + {major: 7, minors: ["7.1"]} + ] + ) + expect(resolver.version_info("active record", "7.1.3")).to eq( + { + number: "7.1.3", + ruby_version: ">= 2.7", + runtime_dependencies: [ + {name: "sqlite3", requirements: "~> 1.6"} + ] + } + ) + expect(resolver.version_info("active record", "7.1.3")).to be_a(Hash) + expect(calls.tally).to eq( + "https://example.test/api/v1/versions/active+record.json" => 1, + "https://example.test/api/v2/rubygems/active+record/versions/7.1.3.json" => 1 + ) + end + + + it "loads gemspec metadata through Kettle/Jem GemSpecReader" do + Dir.mktmpdir do |project_root| + write_tree( + project_root, + { + "demo_tool.gemspec" => <<~RUBY, + Gem::Specification.new do |spec| + spec.name = "demo_tool" + spec.version = "0.1.0" + spec.authors = ["Demo Author"] + spec.email = ["demo@example.com"] + spec.summary = "Demo" + spec.homepage = "https://github.com/example/demo_tool" + spec.required_ruby_version = ">= 3.2" + spec.add_dependency "runtime_dep", ">= 1" + spec.add_development_dependency "dev_dep", ">= 1" + end + RUBY + "lib/demo_tool/version.rb" => "module DemoTool; VERSION = '0.1.0'; end\n" + } + ) + + described_class::GemSpecReader.clear_cache! + + metadata = described_class::GemSpecReader.load(project_root) + + expect(metadata).to include( + gem_name: "demo_tool", + version: "0.1.0", + min_ruby: Gem::Version.new("3.2"), + homepage: "https://github.com/example/demo_tool", + gh_org: "example", + gh_repo: "demo_tool", + namespace: "DemoTool", + entrypoint_require: "demo_tool" + ) + expect(metadata.fetch(:runtime_dependencies).map(&:name)).to eq(["runtime_dep"]) + expect(metadata.fetch(:development_dependencies).map(&:name)).to eq(["dev_dep"]) + end + ensure + described_class::GemSpecReader.clear_cache! + end + + + it "ports appraisal CLI config orchestration helpers into Kettle/Jem" do + gemspec_content = <<~RUBY + Gem::Specification.new do |spec| + spec.add_dependency "activerecord", "~> 7.1" + spec.add_runtime_dependency("erb", ">= 0") + # spec.add_dependency "ignored" + spec.add_runtime_dependency "sequel", ">= 5.0" + spec.add_development_dependency "dev_only", ">= 0" + end + RUBY + + scaffold = described_class.appraisal_scaffold_config( + gemspec_content: gemspec_content, + existing_config: { + appraisal_matrix: { + gems: { + tier2: [ + {name: "omniauth"} + ] + } + } + }, + exclusions: ["erb"], + freshness_ttl: 86_400 + ) + + expect(scaffold.fetch("appraisal_matrix")).to include( + "mode" => "semver", + "freshness_ttl" => 86_400 + ) + expect(scaffold.dig("appraisal_matrix", "gems", "tier1")).to eq( + [ + {"name" => "activerecord"}, + {"name" => "sequel"} + ] + ) + expect(scaffold.dig("appraisal_matrix", "gems", "tier2")).to eq([{"name" => "omniauth"}]) + + expect(described_class.appraisal_matrix_has_versions?( + "gems" => { + "tier1" => [{"name" => "activerecord", "versions" => []}], + "tier2" => [{"name" => "omniauth", "versions" => ["2.1"]}] + } + )).to be true + expect(described_class.appraisal_matrix_fresh?({"resolved_at" => 100, "freshness_ttl" => 50}, now: 149)).to be true + expect(described_class.appraisal_matrix_fresh?({"resolved_at" => 100, "freshness_ttl" => 50}, now: 150)).to be false + expect(described_class.appraisal_time_ago(0, now: 90_000)).to eq("1d") + expect(described_class.appraisal_finalize_versions(%w[7.1.0 7.1.1], include_versions: ["6.0.9"], exclude_versions: ["7.1.0"])).to eq( + %w[6.0.9 7.1.1] + ) + + resolver = Class.new do + def versions(gem_name, requirements: nil) + case [gem_name, requirements] + when ["activerecord", [">= 7.1", "< 7.2"]] + [{number: "7.1.0"}, {number: "7.1.1"}] + when ["omniauth", nil] + [{number: "2.0.0"}, {number: "2.1.3"}] + else + [] + end + end + + def minor_versions_by_major(gem_name, requirements: nil) + case [gem_name, requirements] + when ["sequel", nil] + [{major: 5, minors: ["5.0", "5.9"]}] + else + [] + end + end + + def min_ruby_version(gem_name, version) + return Gem::Version.new("3.2") if gem_name == "omniauth" && version == "2.1.3" + + Gem::Version.new("2.7") + end + end.new + + expect(described_class.appraisal_all_versions_for( + resolver: resolver, + gem_name: "activerecord", + mode: "patch", + requirements: [">= 7.1", "< 7.2"], + include_versions: ["6.0.9"], + exclude_versions: ["7.1.0"] + )).to eq(%w[6.0.9 7.1.1]) + expect(described_class.appraisal_all_versions_for(resolver: resolver, gem_name: "sequel", mode: "major")).to eq(%w[5.0 5.9]) + expect(described_class.appraisal_compatible_version_for_bucket?( + resolver: resolver, + gem_name: "omniauth", + version: "2.1", + ruby_series: "r3.1", + bucket_ranges: {"r3.1" => {floor: "3.0", ceiling: "3.1"}} + )).to be false + end + + + it "plans stale flat appraisal gemfile cleanup paths" do + stale_paths = described_class.appraisal_stale_gemfile_paths( + existing_paths: [ + "gemfiles/kja-ar-7-1-r3.gemfile", + "gemfiles/kja-ar-6-1-r2.gemfile", + "gemfiles/manual.gemfile", + "gemfiles/modular/activerecord/r3/v7.1.gemfile" + ], + current_entries: [ + {name: "kja-ar-7-1-r3"} + ] + ) + + expect(stale_paths).to eq(["gemfiles/kja-ar-6-1-r2.gemfile"]) + end + + + it "honors author template token config and environment overrides" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-author-token-override-slice", tmp_root) do |root| + write_tree(root, { + "example.gemspec" => <<~RUBY, + Gem::Specification.new do |spec| + spec.name = "example" + spec.summary = "Example gem" + spec.authors = ["Jane Q Public"] + spec.email = ["jane@example.test"] + end + RUBY + ".kettle-jem.yml" => <<~YAML, + tokens: + author: + name: Config Person + given_names: Config + family_names: Person + email: config@example.test + domain: config.example.test + orcid: "{KJ|AUTHOR:ORCID}" + templates: + root: template + apply: true + entries: + - README.md + YAML + "template/README.md.example" => <<~MARKDOWN + Author: {KJ|AUTHOR:NAME} + Given: {KJ|AUTHOR:GIVEN_NAMES} + Family: {KJ|AUTHOR:FAMILY_NAMES} + Email: {KJ|AUTHOR:EMAIL} + Domain: {KJ|AUTHOR:DOMAIN} + ORCID: {KJ|AUTHOR:ORCID} + MARKDOWN + }) + + plan = described_class.plan_project( + root, + env: { + "KJ_AUTHOR_NAME" => "Env A Writer", + "KJ_AUTHOR_EMAIL" => "env@example.test", + "KJ_AUTHOR_DOMAIN" => "env.example.test", + "KJ_AUTHOR_ORCID" => "0000-0002-1825-0097" + } + ) + template_report = plan[:recipe_reports].find do |report| + report.fetch(:recipe_name) == "template_source_application_README_md" + end + expect(template_report.fetch(:final_content)).to eq(<<~MARKDOWN) + Author: Env A Writer + Given: Config + Family: Person + Email: env@example.test + Domain: env.example.test + ORCID: 0000-0002-1825-0097 + MARKDOWN + expect(template_report.dig(:metadata, :template_tokens)).to include( + "KJ|AUTHOR:DOMAIN" => "env.example.test", + "KJ|AUTHOR:EMAIL" => "env@example.test", + "KJ|AUTHOR:FAMILY_NAMES" => "Person", + "KJ|AUTHOR:GIVEN_NAMES" => "Config", + "KJ|AUTHOR:NAME" => "Env A Writer", + "KJ|AUTHOR:ORCID" => "0000-0002-1825-0097" + ) + end + end + + + it "applies author email environment overrides to gemspec and destination config" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-author-email-env-sync-slice", tmp_root) do |root| + write_tree(root, { + "example.gemspec" => <<~RUBY, + Gem::Specification.new do |spec| + spec.name = "example" + spec.summary = "Example gem" + spec.authors = ["Jane Q Public"] + spec.email = ["old@example.test"] + end + RUBY + ".structuredmerge/kettle-jem.yml" => <<~YAML, + tokens: + author: + name: Jane Q Public + email: old@example.test + templates: + root: template + apply: true + entries: + - .structuredmerge/kettle-jem.yml + - source: gem.gemspec + target: example.gemspec + YAML + "template/.structuredmerge/kettle-jem.yml.example" => <<~YAML, + tokens: + author: + name: Jane Q Public + email: old@example.test + templates: + root: template + apply: true + entries: + - .structuredmerge/kettle-jem.yml + - source: gem.gemspec + target: example.gemspec + YAML + "template/gem.gemspec.example" => <<~RUBY + Gem::Specification.new do |spec| + spec.name = "{KJ|GEM_NAME}" + spec.summary = "Example gem" + spec.authors = ["{KJ|AUTHOR:NAME}"] + spec.email = ["{KJ|AUTHOR:EMAIL}"] + end + RUBY + }) + + apply = described_class.apply_project( + root, + env: {"KJ_AUTHOR_EMAIL" => "env@example.test"}, + run_options: {accept: true} + ) + gemspec_report = apply.fetch(:recipe_reports).find { |report| report.fetch(:relative_path) == "example.gemspec" } + config_report = apply.fetch(:recipe_reports).find { |report| report.fetch(:relative_path) == ".structuredmerge/kettle-jem.yml" } + + expect(gemspec_report.fetch(:final_content)).to include('spec.email = ["env@example.test"]') + expect(YAML.safe_load(config_report.fetch(:final_content)).dig("tokens", "author", "email")).to eq("env@example.test") + expect(File.read(File.join(root, "example.gemspec"))).to include('spec.email = ["env@example.test"]') + expect(YAML.safe_load_file(File.join(root, ".structuredmerge/kettle-jem.yml")).dig("tokens", "author", "email")).to eq("env@example.test") + end + end + + + it "preserves existing multi-author gemspec metadata in packaged gemspec templates" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-gemspec-multi-authors-slice", tmp_root) do |root| + write_tree(root, { + "example.gemspec" => <<~RUBY, + Gem::Specification.new do |spec| + spec.name = "example" + spec.summary = "Example gem" + spec.description = "Example gem" + spec.authors = ["First Author", "Second Author"] + spec.email = ["authors@example.test"] + spec.metadata["source_code_uri"] = "https://github.com/acme/example" + end + RUBY + ".kettle-jem.yml" => <<~YAML + templates: + root: packaged + apply: true + entries: + - source: gem.gemspec + target: example.gemspec + YAML + }) + + apply = described_class.apply_project(root, env: {}, run_options: {accept: true}) + gemspec_report = apply.fetch(:recipe_reports).find { |report| report.fetch(:relative_path) == "example.gemspec" } + + expect(gemspec_report.fetch(:final_content)).to include('spec.authors = ["First Author", "Second Author"]') + expect(gemspec_report.dig(:metadata, :template_tokens)).to include( + "KJ|AUTHOR:NAME" => "First Author", + "KJ|AUTHOR:NAMES" => '["First Author", "Second Author"]' + ) + expect(File.read(File.join(root, "example.gemspec"))).to include('spec.authors = ["First Author", "Second Author"]') + end + end + + + it "derives author names from copyright holders when gemspec authors are absent" do + author = described_class.send( + :author_facts, + {}, + {}, + copyright: { + lines: [ + "Copyright (c) 2020 Ada Lovelace", + "Copyright (c) 2021, 2023-2024 Grace Hopper" + ] + } + ) + + expect(described_class.send(:author_template_tokens, author)).to include( + "KJ|AUTHOR:NAMES" => '["Ada Lovelace", "Grace Hopper"]' + ) + end + + + it "honors forge user template token config and environment overrides" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-forge-token-slice", tmp_root) do |root| + write_tree(root, { + "example.gemspec" => <<~RUBY, + Gem::Specification.new do |spec| + spec.name = "example" + spec.summary = "Example gem" + end + RUBY + ".kettle-jem.yml" => <<~YAML, + tokens: + forge: + gh_user: config-gh + gl_user: config-gl + cb_user: "{KJ|CB:USER}" + sh_user: config-sh + templates: + root: template + apply: true + entries: + - README.md + YAML + "template/README.md.example" => <<~MARKDOWN + GitHub: {KJ|GH:USER} + GitLab: {KJ|GL:USER} + Codeberg: {KJ|CB:USER} + SourceHut: {KJ|SH:USER} + MARKDOWN + }) + + plan = described_class.plan_project( + root, + env: { + "KJ_GH_USER" => "env-gh", + "KJ_CB_USER" => "env-cb" + } + ) + template_report = plan[:recipe_reports].find do |report| + report.fetch(:recipe_name) == "template_source_application_README_md" + end + expect(template_report.fetch(:final_content)).to eq(<<~MARKDOWN) + GitHub: env-gh + GitLab: config-gl + Codeberg: env-cb + SourceHut: config-sh + MARKDOWN + expect(template_report.dig(:metadata, :template_tokens)).to include( + "KJ|CB:USER" => "env-cb", + "KJ|GH:USER" => "env-gh", + "KJ|GL:USER" => "config-gl", + "KJ|SH:USER" => "config-sh" + ) + end + end + + + it "honors supported funding platform template token config and environment overrides" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-funding-token-slice", tmp_root) do |root| + write_tree(root, { + "example.gemspec" => <<~RUBY, + Gem::Specification.new do |spec| + spec.name = "example" + spec.summary = "Example gem" + end + RUBY + ".kettle-jem.yml" => <<~YAML, + tokens: + funding: + kofi: config-kofi + paypal: "{KJ|FUNDING:PAYPAL}" + buymeacoffee: config-bmac + liberapay: config-liberapay + templates: + root: template + apply: true + entries: + - README.md + YAML + "template/README.md.example" => <<~MARKDOWN + Ko-fi: {KJ|FUNDING:KOFI} + PayPal: {KJ|FUNDING:PAYPAL} + BuyMeACoffee: {KJ|FUNDING:BUYMEACOFFEE} + Liberapay: {KJ|FUNDING:LIBERAPAY} + MARKDOWN + }) + + plan = described_class.plan_project( + root, + env: { + "KJ_FUNDING_PAYPAL" => "env-paypal" + } + ) + template_report = plan[:recipe_reports].find do |report| + report.fetch(:recipe_name) == "template_source_application_README_md" + end + expect(template_report.fetch(:final_content)).to eq(<<~MARKDOWN) + Ko-fi: config-kofi + PayPal: env-paypal + BuyMeACoffee: config-bmac + Liberapay: config-liberapay + MARKDOWN + expect(template_report.dig(:metadata, :template_tokens)).to include( + "KJ|FUNDING:BUYMEACOFFEE" => "config-bmac", + "KJ|FUNDING:KOFI" => "config-kofi", + "KJ|FUNDING:LIBERAPAY" => "config-liberapay", + "KJ|FUNDING:PAYPAL" => "env-paypal" + ) + end + end + + + it "normalizes SECURITY.md supported version token from the gem version" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + + { + "0.2.0" => "0.latest", + "2.5.7" => "2.5.latest" + }.each do |gem_version, supported_version| + Dir.mktmpdir("kettle-jem-security-version-token-slice", tmp_root) do |root| + write_tree(root, { + "example.gemspec" => <<~RUBY, + Gem::Specification.new do |spec| + spec.name = "example" + spec.summary = "Example gem" + spec.version = "#{gem_version}" + end + RUBY + ".kettle-jem.yml" => <<~YAML, + templates: + root: template + apply: true + entries: + - SECURITY.md + YAML + "template/SECURITY.md.example" => <<~MARKDOWN + | Version | Supported | + |----------|-----------| + | {KJ|SECURITY:SUPPORTED_VERSION} | ✅ | + MARKDOWN + }) + + plan = described_class.plan_project(root, env: {}) + template_report = plan[:recipe_reports].find do |report| + report.fetch(:recipe_name).start_with?("template_source_") && + report.fetch(:recipe_name).end_with?("_SECURITY_md") + end + expect(template_report.fetch(:final_content)).to include("| #{supported_version} | ✅") + expect(template_report.dig(:metadata, :template_tokens)).to include( + "KJ|SECURITY:SUPPORTED_VERSION" => supported_version + ) + end + end + end + + + it "honors social template token config and environment overrides" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-social-token-slice", tmp_root) do |root| + write_tree(root, { + "example.gemspec" => <<~RUBY, + Gem::Specification.new do |spec| + spec.name = "example" + spec.summary = "Example gem" + end + RUBY + ".kettle-jem.yml" => <<~YAML, + tokens: + social: + mastodon: config-mastodon + bluesky: config-bluesky + linktree: "{KJ|SOCIAL:LINKTREE}" + devto: config-devto + templates: + root: template + apply: true + entries: + - README.md + YAML + "template/README.md.example" => <<~MARKDOWN + Mastodon: {KJ|SOCIAL:MASTODON} + Bluesky: {KJ|SOCIAL:BLUESKY} + Linktree: {KJ|SOCIAL:LINKTREE} + Dev.to: {KJ|SOCIAL:DEVTO} + MARKDOWN + }) + + plan = described_class.plan_project( + root, + env: { + "KJ_SOCIAL_MASTODON" => "env-mastodon", + "KJ_SOCIAL_LINKTREE" => "env-linktree" + } + ) + template_report = plan[:recipe_reports].find do |report| + report.fetch(:recipe_name) == "template_source_application_README_md" + end + expect(template_report.fetch(:final_content)).to eq(<<~MARKDOWN) + Mastodon: env-mastodon + Bluesky: config-bluesky + Linktree: env-linktree + Dev.to: config-devto + MARKDOWN + expect(template_report.dig(:metadata, :template_tokens)).to include( + "KJ|SOCIAL:BLUESKY" => "config-bluesky", + "KJ|SOCIAL:DEVTO" => "config-devto", + "KJ|SOCIAL:LINKTREE" => "env-linktree", + "KJ|SOCIAL:MASTODON" => "env-mastodon" + ) + end + end + + + it "projects license template tokens from configured licenses" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-license-token-slice", tmp_root) do |root| + write_tree(root, { + "example.gemspec" => <<~RUBY, + Gem::Specification.new do |spec| + spec.name = "example" + spec.summary = "Example gem" + spec.authors = ["Jane Q Public"] + spec.email = ["jane@example.test"] + spec.licenses = ["MIT"] + end + RUBY + ".kettle-jem.yml" => <<~YAML + licenses: + - AGPL-3.0-only + - PolyForm-Small-Business-1.0.0 + - LicenseRef-Big-Time-Public-License + readme: + package_family: structuredmerge + templates: + root: packaged + apply: true + entries: + - LICENSE.md + YAML + }) + + plan = described_class.plan_project(root, env: {}) + template_report = plan[:recipe_reports].find do |report| + report.fetch(:recipe_name) == "template_source_application_LICENSE_md" + end + final_content = template_report.fetch(:final_content) + expect(plan.dig(:facts, :license, :spdx)).to eq( + ["AGPL-3.0-only", "PolyForm-Small-Business-1.0.0", "LicenseRef-Big-Time-Public-License"] + ) + expect(plan.dig(:facts, :package, :license_expression)).to eq( + "AGPL-3.0-only OR PolyForm-Small-Business-1.0.0 OR LicenseRef-Big-Time-Public-License" + ) + expect(final_content).to include("[AGPL-3.0-only](AGPL-3.0-only.md)") + expect(final_content).to include("[PolyForm-Small-Business-1.0.0](PolyForm-Small-Business-1.0.0.md)") + expect(final_content).to include("[Big-Time-Public-License](Big-Time-Public-License.md)") + expect(final_content).to include("## Use-case guide") + expect(final_content).to include("- Required Notice: Copyright") + expect(final_content).to include("Jane Q Public") + expect(template_report.dig(:metadata, :template_tokens)).to include( + "KJ|COPYRIGHT_PREFIX" => "Required Notice: ", + "KJ|LICENSE:PRIMARY_SPDX" => "AGPL-3.0-only", + "KJ|LICENSE_EYE:PRIMARY_SPDX" => "AGPL-3.0-only", + "KJ|LICENSE_EYE:MODE" => "resolve", + "KJ|LICENSE_EYE:FLAGS" => "" + ) + expect(template_report.dig(:metadata, :template_tokens, "KJ|LICENSE_MD_CONTENT")).to include( + "This project is made available under the following licenses." + ) + expect(template_report.dig(:metadata, :template_tokens, "KJ|README:LICENSE_BADGE")).to eq( + "[![License: AGPL-3.0-only OR PolyForm-Small-Business-1.0.0 OR LicenseRef-Big-Time-Public-License][📄license-img]][📄license]" + ) + expect(template_report.dig(:metadata, :template_tokens, "KJ|README:LICENSE_REFS")).to include( + "[📄license-ref]: LICENSE.md" + ) + expect(template_report.dig(:metadata, :template_tokens, "KJ|README:LICENSE_REFS")).to include( + "License-AGPL--3.0--only_OR_PolyForm--Small--Business--1.0.0_OR_LicenseRef--Big--Time--Public--License" + ) + expect(template_report.dig(:metadata, :template_tokens, "KJ|README:FAMILY_INTRO_BACKEND_MATRIX")).to include( + "https://github.com/structuredmerge/structuredmerge-ruby#package-family" + ) + expect(template_report.dig(:metadata, :template_tokens, "KJ|README:FAMILY_INTRO_BACKEND_MATRIX")).to include( + "StructuredMerge Ruby package family" + ) + expect(template_report.dig(:metadata, :template_tokens, "KJ|README:FAMILY_INTRO_BACKEND_MATRIX")).to include( + "Merge analysis must enter parsing through `tree_haver`" + ) + end + end + + + it "uses MIT as the License-Eye compatibility license when MIT is configured" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-license-eye-token-slice", tmp_root) do |root| + write_tree(root, { + "example.gemspec" => <<~RUBY, + Gem::Specification.new do |spec| + spec.name = "example" + spec.summary = "Example gem" + spec.authors = ["Jane Q Public"] + spec.email = ["jane@example.test"] + spec.licenses = ["AGPL-3.0-only"] + end + RUBY + ".kettle-jem.yml" => <<~YAML + licenses: + - AGPL-3.0-only + - MIT + license_eye: + dependency_licenses: + - name: simplecov-rcov + version: 0.3.7 + license: MIT + templates: + root: packaged + apply: true + entries: + - .licenserc.yaml + - .github/workflows/license-eye.yml + YAML + }) + + plan = described_class.plan_project(root, env: {}) + licenserc_report = plan[:recipe_reports].find do |report| + report.fetch(:relative_path) == ".licenserc.yaml" + end + workflow_report = plan[:recipe_reports].find do |report| + report.fetch(:relative_path) == ".github/workflows/license-eye.yml" + end + + expect(licenserc_report.fetch(:final_content)).to include('spdx-id: "MIT"') + expect(licenserc_report.fetch(:final_content)).to include(" licenses:\n - name: \"simplecov-rcov\"\n version: \"0.3.7\"\n license: \"MIT\"") + expect(workflow_report.fetch(:final_content)).to include('mode: "check"') + expect(workflow_report.fetch(:final_content)).to include('flags: "--weak-compatible"') + end + end + + + it "formats README metadata SPDX license identifiers as code spans" do + block = described_class.readme_metadata_block( + package: { + name: "example", + description: "Example gem", + homepage_url: "https://example.test", + source_url: "https://example.test/source", + license_expression: "AGPL-3.0-only OR PolyForm-Small-Business-1.0.0" + }, + license: { + spdx: ["AGPL-3.0-only", "PolyForm-Small-Business-1.0.0"] + }, + funding: { + urls: [] + } + ) + + expect(block).to include("| License | `AGPL-3.0-only` OR `PolyForm-Small-Business-1.0.0` |") + end + + + it "formats README metadata values as Markdown table cells" do + block = described_class.readme_metadata_block( + package: { + name: "example", + description: "First line\n Second | line\r\nThird line", + homepage_url: "https://example.test", + source_url: "https://example.test/source", + license_expression: "MIT" + }, + license: { + spdx: ["MIT"] + }, + funding: { + urls: [] + } + ) + + expect(block).to include("| Description | First line
        Second \\| line
        Third line |") + expect(block).not_to include("First line\n") + end + + + it "renders optional FOSSA README badge tokens from configuration" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-fossa-readme-badge", tmp_root) do |root| + disabled_style = described_class.readme_style_facts( + root, + {"readme" => {"badges" => {"fossa" => false}}}, + {spdx: ["MIT"]}, + repository: {slug: "galtzo-floss/example"} + ) + enabled_style = described_class.readme_style_facts( + root, + {"readme" => {"badges" => {"fossa" => "git+github.com/pboling/flag_shih_tzu"}}}, + {spdx: ["MIT"]}, + repository: {slug: "galtzo-floss/flag_shih_tzu"} + ) + + expect(disabled_style[:fossa_project]).to be_nil + tokens = described_class.readme_fossa_template_tokens(enabled_style) + expect(tokens.fetch("KJ|README:FOSSA_BADGE")).to eq("[![FOSSA Status][🧪fossa-img]][🧪fossa]") + expect(tokens.fetch("KJ|README:FOSSA_REFS")).to include("git%2Bgithub.com%2Fpboling%2Fflag_shih_tzu.svg?type=shield") + expect(tokens.fetch("KJ|README:FOSSA_REFS")).to include("git%2Bgithub.com%2Fpboling%2Fflag_shih_tzu?ref=badge_shield") + end + end + + + it "disables coverage integrations across README badges, upload steps, templates, and config cleanup" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-disabled-coverage-integrations", tmp_root) do |root| + FileUtils.mkdir_p(File.join(root, ".github")) + FileUtils.mkdir_p(File.join(root, ".qlty")) + File.write(File.join(root, ".github/.codecov.yml"), "codecov:\n") + File.write(File.join(root, ".coveralls.yml"), "service_name: github\n") + File.write(File.join(root, ".qlty/qlty.toml"), "# qlty\n") + + config = { + "integrations" => { + "qlty" => false, + "disabled" => %w[codecov coveralls] + }, + "templates" => { + "root" => "packaged", + "apply" => true + } + } + + readme_style = described_class.readme_style_facts( + root, + config, + {spdx: ["MIT"]}, + repository: {slug: "omniauth/omniauth-jwt2"} + ) + expect(readme_style.fetch(:disabled_integrations)).to contain_exactly("codecov", "coveralls", "qlty") + + upload_steps = described_class.github_actions_coverage_steps(disabled_integrations: readme_style.fetch(:disabled_integrations)) + expect(upload_steps).not_to include("Upload coverage to Coveralls") + expect(upload_steps).not_to include("Upload coverage to QLTY") + expect(upload_steps).not_to include("Upload coverage to CodeCov") + expect(upload_steps).to include("Code Coverage Summary Report") + + template_paths = described_class.template_source_preferences(root, config).map { |preference| preference.fetch(:target_path) } + expect(template_paths).not_to include(".github/.codecov.yml", ".qlty/qlty.toml") + + cleanup_paths = described_class.inactive_packaged_template_cleanup_files(root, config).map { |cleanup| cleanup.fetch(:target_path) } + expect(cleanup_paths).to include(".github/.codecov.yml", ".coveralls.yml", ".qlty/qlty.toml") + end + end + + + it "keeps coverage integrations active when only README badges are disabled" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-readme-only-coverage-badge-disable", tmp_root) do |root| + config = { + "readme" => { + "badges" => { + "disabled" => %w[qlty] + } + }, + "templates" => { + "root" => "packaged", + "apply" => true + } + } + + expect(described_class.disabled_coverage_integrations(config)).to be_empty + + readme_style = described_class.readme_style_facts( + root, + config, + {spdx: ["MIT"]}, + repository: {slug: "omniauth/omniauth-jwt2"} + ) + expect(readme_style.fetch(:disabled_integrations)).to contain_exactly("qlty") + + upload_steps = described_class.github_actions_coverage_steps(disabled_integrations: described_class.disabled_coverage_integrations(config)) + expect(upload_steps).to include("Upload coverage to Coveralls") + expect(upload_steps).to include("Upload coverage to QLTY") + expect(upload_steps).to include("Upload coverage to CodeCov") + + template_paths = described_class.template_source_preferences(root, config).map { |preference| preference.fetch(:target_path) } + expect(template_paths).to include(".github/.codecov.yml", ".qlty/qlty.toml") + expect(described_class.inactive_packaged_template_cleanup_files(root, config)).to be_empty + end + end + + + it "supports partial coverage integration disablement" do + config = { + "integrations" => { + "code_cov" => false, + "qlty" => true, + "coveralls" => "false" + } + } + + expect(described_class.disabled_coverage_integrations(config)).to contain_exactly("codecov", "coveralls") + + upload_steps = described_class.github_actions_coverage_steps(disabled_integrations: described_class.disabled_coverage_integrations(config)) + expect(upload_steps).not_to include("Upload coverage to Coveralls") + expect(upload_steps).not_to include("Upload coverage to CodeCov") + expect(upload_steps).to include("Upload coverage to QLTY") + + workflow = <<~YAML + jobs: + coverage: + steps: + - name: Existing + run: true + YAML + updated = described_class.append_github_actions_coverage_steps(workflow, disabled_integrations: described_class.disabled_coverage_integrations(config)) + expect(updated).to include("Upload coverage to QLTY") + expect(updated).not_to include("Upload coverage to Coveralls") + expect(described_class.append_github_actions_coverage_steps(updated, disabled_integrations: [])).to eq(updated) + + workflow_without_steps = <<~YAML + jobs: + coverage: + runs-on: ubuntu-latest + YAML + expect(described_class.append_github_actions_coverage_steps(workflow_without_steps, disabled_integrations: [])).to eq(workflow_without_steps) + end + + + it "disables SkyWalking Eyes from boolean keys and disabled lists" do + expect(described_class.disabled_integrations( + { + "integrations" => { + "skywalking_eyes" => false + } + }, + license: {spdx: ["MIT"]} + )).to include("skywalking-eyes") + + expect(described_class.disabled_integrations( + { + "integrations" => { + "disabled" => %w[license-eye] + } + }, + license: {spdx: ["MIT"]} + )).to include("skywalking-eyes") + end + + + it "defaults SkyWalking Eyes off unless a compatible license is configured" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-skywalking-eyes-default-disable", tmp_root) do |root| + FileUtils.mkdir_p(File.join(root, ".github/workflows")) + File.write(File.join(root, ".licenserc.yaml"), "dependency:\n") + File.write(File.join(root, ".github/workflows/license-eye.yml"), "name: Apache SkyWalking Eyes\n") + config = { + "licenses" => %w[AGPL-3.0-only], + "templates" => { + "root" => "packaged", + "apply" => true + } + } + license = {spdx: ["AGPL-3.0-only"]} + template_config = described_class.template_runtime_config(config, {}, license: license) + + expect(described_class.disabled_integrations(config, license: license)).to include("skywalking-eyes") + + readme_style = described_class.readme_style_facts( + root, + config, + license, + repository: {slug: "example/example"} + ) + expect(readme_style.fetch(:disabled_integrations)).to include("skywalking-eyes") + + template_paths = described_class.template_source_preferences(root, template_config).map { |preference| preference.fetch(:target_path) } + expect(template_paths).not_to include(".licenserc.yaml", ".github/workflows/license-eye.yml") + + cleanup_paths = described_class.inactive_packaged_template_cleanup_files(root, template_config).map { |cleanup| cleanup.fetch(:target_path) } + expect(cleanup_paths).to include(".licenserc.yaml") + + workflow_cleanup_paths = described_class.inactive_packaged_workflow_cleanup_files(root, template_config) + expect(workflow_cleanup_paths).to include(".github/workflows/license-eye.yml") + end + end + + + it "keeps SkyWalking Eyes enabled for MIT licenses and explicit opt-in" do + mit_config = { + "templates" => { + "root" => "packaged", + "apply" => true + } + } + non_mit_opt_in_config = { + "licenses" => %w[AGPL-3.0-only], + "integrations" => { + "skywalking-eyes" => true + }, + "templates" => { + "root" => "packaged", + "apply" => true + } + } + + expect(described_class.disabled_integrations(mit_config, license: {spdx: ["MIT"]})).not_to include("skywalking-eyes") + expect(described_class.disabled_integrations(non_mit_opt_in_config, license: {spdx: ["AGPL-3.0-only"]})).not_to include("skywalking-eyes") + expect(described_class.license_eye_workflow_badge(["AGPL-3.0-only"], non_mit_opt_in_config)).to include( + "Apache SkyWalking Eyes License Compatibility Check" + ) + end + + + it "applies configured licenses to merged gemspec output" do + template = <<~RUBY + Gem::Specification.new do |spec| + spec.name = "example" + spec.homepage = "https://example.test" + spec.licenses = ["MIT"] + end + RUBY + destination = <<~RUBY + Gem::Specification.new do |spec| + spec.name = "example" + spec.homepage = "https://example.test" + spec.licenses = ["AGPL-3.0-only"] + end + RUBY + facts = { + package: {name: "example"}, + license: {spdx: ["AGPL-3.0-only", "PolyForm-Small-Business-1.0.0"]} + } + + output = described_class.merge_gemspec_template_source(template, destination, facts: facts) + + expect(output).to include('spec.licenses = ["AGPL-3.0-only", "PolyForm-Small-Business-1.0.0"]') + end + + + it "escapes and de-duplicates emoji in gemspec summary and description tokens" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-gemspec-description-token", tmp_root) do |root| + write_tree(root, { + "example.gemspec" => <<~RUBY, + Gem::Specification.new do |spec| + spec.name = "example" + spec.summary = "🔍️ Find out what your Ruby gems are worth" + spec.description = '🔍️ Example uses repeatable scenarios called "appraisals."' + spec.homepage = "https://github.com/example/example" + spec.required_ruby_version = ">= 2.3.0" + end + RUBY + ".kettle-jem.yml" => <<~YAML, + project_emoji: 🔍️ + files: + example.gemspec: + strategy: accept_template + templates: + root: template + apply: true + entries: + - example.gemspec + YAML + "template/example.gemspec.example" => <<~RUBY + Gem::Specification.new do |spec| + spec.name = "example" + spec.summary = "{KJ|PROJECT_EMOJI} {KJ|GEMSPEC_PACKAGE_SUMMARY}" + spec.description = "{KJ|PROJECT_EMOJI} {KJ|GEMSPEC_PACKAGE_DESCRIPTION}" + spec.homepage = "https://github.com/example/example" + end + RUBY + }) + + described_class.apply_project(root, env: {}) + gemspec_path = File.join(root, "example.gemspec") + gemspec = File.read(gemspec_path) + + expect(gemspec).to include('spec.summary = "🔍️ Find out what your Ruby gems are worth"') + expect(gemspec).to include('spec.description = "🔍️ Example uses repeatable scenarios called \"appraisals.\""') + expect(gemspec).not_to include("🔍️ 🔍️") + expect(Gem::Specification.load(gemspec_path)).not_to be_nil + end + end + + + it "refreshes README metadata during template-source README application" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-readme-metadata-order", tmp_root) do |root| + metadata_block = described_class.readme_metadata_block( + package: { + name: "example", + description: "Example gem", + homepage_url: "https://example.test", + source_url: "https://github.com/structuredmerge/structuredmerge-ruby", + license_expression: "MIT" + }, + license: {spdx: ["MIT"]}, + funding: {urls: ["https://tidelift.com/funding/github/rubygems/example"]} + ) + write_tree(root, { + "example.gemspec" => <<~RUBY, + Gem::Specification.new do |spec| + spec.name = "example" + spec.summary = "Example gem" + spec.homepage = "https://example.test" + spec.metadata["source_code_uri"] = "https://github.com/acme/example/tree/v1.2.3" + spec.license = "MIT" + end + RUBY + ".kettle-jem.yml" => <<~YAML, + templates: + root: template + apply: true + entries: + - README.md + YAML + "README.md" => <<~MARKDOWN, + # Example + + Destination body. + + #{metadata_block} + MARKDOWN + "template/README.md.example" => "# {KJ|NAMESPACE}\n\nTemplate body.\n" + }) + + described_class.apply_project(root, env: {}, run_options: {accept: true, force: true}) + first_readme = File.read(File.join(root, "README.md")) + described_class.apply_project(root, env: {}, run_options: {accept: true, force: true}) + + expect(first_readme).to include("") + expect(first_readme).to include("| Package | example |") + expect(first_readme).to include("| Source | https://github.com/acme/example/tree/v1.2.3 |") + expect(first_readme).not_to include("https://github.com/structuredmerge/structuredmerge-ruby") + expect(File.read(File.join(root, "README.md"))).to eq(first_readme) + end + end + + + it "applies and prunes root license files from configured licenses" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-license-file-prune-slice", tmp_root) do |root| + write_tree(root, { + "example.gemspec" => <<~RUBY, + Gem::Specification.new do |spec| + spec.name = "example" + spec.summary = "Example gem" + spec.licenses = ["MIT"] + end + RUBY + ".kettle-jem.yml" => <<~YAML, + licenses: + - AGPL-3.0-only + - PolyForm-Small-Business-1.0.0 + templates: + root: packaged + apply: true + entries: + - LICENSE.md + - AGPL-3.0-only.md + - MIT.md + - PolyForm-Noncommercial-1.0.0.md + - PolyForm-Small-Business-1.0.0.md + - Big-Time-Public-License.md + YAML + "MIT.md" => "obsolete MIT license\n", + "PolyForm-Noncommercial-1.0.0.md" => "obsolete PolyForm NC license\n", + "Big-Time-Public-License.md" => "obsolete Big Time license\n" + }) + + apply = described_class.apply_project(root, env: {}) + recipe_names = apply[:recipe_reports].map { |report| report.fetch(:recipe_name) } + + expect(apply.dig(:facts, :license, :spdx)).to eq(["AGPL-3.0-only", "PolyForm-Small-Business-1.0.0"]) + expect(recipe_names).to include("template_source_application_AGPL_3_0_only_md") + expect(recipe_names).to include("template_source_application_PolyForm_Small_Business_1_0_0_md") + expect(recipe_names).not_to include("template_source_application_MIT_md") + expect(recipe_names).not_to include("template_source_application_PolyForm_Noncommercial_1_0_0_md") + expect(recipe_names).not_to include("template_source_application_Big_Time_Public_License_md") + expect(apply[:changed_files]).to include( + "MIT.md", + "PolyForm-Noncommercial-1.0.0.md", + "Big-Time-Public-License.md", + "AGPL-3.0-only.md", + "PolyForm-Small-Business-1.0.0.md" + ) + expect(File).to exist(File.join(root, "AGPL-3.0-only.md")) + expect(File).to exist(File.join(root, "PolyForm-Small-Business-1.0.0.md")) + expect(File).not_to exist(File.join(root, "MIT.md")) + expect(File).not_to exist(File.join(root, "PolyForm-Noncommercial-1.0.0.md")) + expect(File).not_to exist(File.join(root, "Big-Time-Public-License.md")) + end + end + + + it "does not package configured named license files in the generated gemspec by default" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-configured-license-entry-slice", tmp_root) do |root| + write_tree(root, { + "example.gemspec" => <<~RUBY, + Gem::Specification.new do |spec| + spec.name = "example" + spec.summary = "Example gem" + spec.authors = ["Jane Q Public"] + spec.email = ["jane@example.test"] + spec.licenses = ["MIT"] + end + RUBY + ".kettle-jem.yml" => <<~YAML + licenses: + - MIT + tokens: + author: + orcid: "0000-0000-0000-0000" + templates: + root: packaged + apply: true + YAML + }) + + apply = described_class.apply_project(root, env: {}) + recipe_names = apply[:recipe_reports].map { |report| report.fetch(:recipe_name) } + + expect(recipe_names).to include("template_source_application_example_gemspec") + expect(apply[:changed_files]).to include("example.gemspec") + gemspec = File.read(File.join(root, "example.gemspec")) + expect(gemspec).to include("LICENSE.md") + expect(gemspec).not_to include("MIT.md") + end + end + + + it "renders configured extra package files in the generated gemspec" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-configured-package-files-slice", tmp_root) do |root| + write_tree(root, { + "example.gemspec" => <<~RUBY, + Gem::Specification.new do |spec| + spec.name = "example" + spec.summary = "Example gem" + spec.authors = ["Jane Q Public"] + spec.email = ["jane@example.test"] + spec.licenses = ["MIT"] + end + RUBY + ".kettle-jem.yml" => <<~YAML + gemspec: + package_files: + include: + - data/**/*.json + - config/runtime.yml + tokens: + author: + orcid: "0000-0000-0000-0000" + templates: + root: packaged + apply: true + YAML + }) + + apply = described_class.apply_project(root, env: {}) + gemspec = File.read(File.join(root, "example.gemspec")) + + expect(apply.dig(:facts, :gemspec, :package_file_includes)).to eq(["data/**/*.json", "config/runtime.yml"]) + expect(gemspec).to include("# Extra package files configured by .structuredmerge/kettle-jem.yml") + expect(gemspec).to include('*Dir.glob("data/**/*.json", File::FNM_DOTMATCH).select { |path| File.file?(path) }') + expect(gemspec).to include('*Dir.glob("config/runtime.yml", File::FNM_DOTMATCH).select { |path| File.file?(path) }') + expect { RubyVM::InstructionSequence.compile(gemspec) }.not_to raise_error + end + end + + + it "does not package multiple configured named license files in the generated gemspec by default" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-configured-multi-license-entry-slice", tmp_root) do |root| + write_tree(root, { + "example.gemspec" => <<~RUBY, + Gem::Specification.new do |spec| + spec.name = "example" + spec.summary = "Example gem" + spec.authors = ["Jane Q Public"] + spec.email = ["jane@example.test"] + spec.licenses = ["MIT"] + end + RUBY + ".kettle-jem.yml" => <<~YAML + licenses: + - AGPL-3.0-only + - LicenseRef-Big-Time-Public-License + tokens: + author: + orcid: "0000-0000-0000-0000" + templates: + root: packaged + apply: true + YAML + }) + + apply = described_class.apply_project(root, env: {}) + recipe_names = apply[:recipe_reports].map { |report| report.fetch(:recipe_name) } + + expect(recipe_names).to include("template_source_application_example_gemspec") + expect(apply[:changed_files]).to include("example.gemspec") + gemspec = File.read(File.join(root, "example.gemspec")) + expect(gemspec).to include("LICENSE.md") + expect(gemspec).not_to include("AGPL-3.0-only.md") + expect(gemspec).not_to include("Big-Time-Public-License.md") + end + end + + + it "projects copyright holders from git blame into license templates" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-copyright-slice", tmp_root) do |root| + write_tree(root, { + "example.gemspec" => <<~RUBY, + Gem::Specification.new do |spec| + spec.name = "example" + spec.summary = "Example gem" + spec.authors = ["Fallback Author"] + spec.email = ["fallback@example.test"] + spec.licenses = ["MIT"] + spec.required_ruby_version = ">= 3.2" + end + RUBY + "lib/example.rb" => <<~RUBY, + module Example + VERSION = "0.1.0" + end + RUBY + ".kettle-jem.yml" => <<~YAML, + templates: + root: templates + apply: true + entries: + - LICENSE.md + - README.md + YAML + "templates/LICENSE.md.example" => <<~MARKDOWN, + {KJ|LICENSE_MD_CONTENT} + + {KJ|LICENSE_COPYRIGHT_NOTICE} + MARKDOWN + "templates/README.md.example" => <<~MARKDOWN, + # 💎 Example + + ## 🌻 Synopsis + + Template synopsis. + + ## 📄 License + + {KJ|README:LICENSE_INTRO} + + ### © Copyright + + {KJ|README:COPYRIGHT_NOTICE} + + ## ⚙️ Configuration + + Template configuration. + + ## 🔧 Basic Usage + + Template usage. + MARKDOWN + "README.md" => <<~MARKDOWN + # 💎 Example + + ## 🌻 Synopsis + + Project synopsis. + + ## ⚙️ Configuration + + Project configuration. + + ## 🔧 Basic Usage + + Project usage. + MARKDOWN + }) + expect(system("git", "-C", root, "init", "-q")).to be(true) + expect(system("git", "-C", root, "config", "user.name", "Jane Contributor")).to be(true) + expect(system("git", "-C", root, "config", "user.email", "jane@example.test")).to be(true) + expect(system("git", "-C", root, "add", ".")).to be(true) + commit_env = { + "GIT_AUTHOR_NAME" => "Jane Contributor", + "GIT_AUTHOR_EMAIL" => "jane@example.test", + "GIT_AUTHOR_DATE" => "#{Time.now.utc.year}-01-02T00:00:00Z", + "GIT_COMMITTER_NAME" => "Jane Contributor", + "GIT_COMMITTER_EMAIL" => "jane@example.test", + "GIT_COMMITTER_DATE" => "#{Time.now.utc.year}-01-02T00:00:00Z" + } + tree = IO.popen(["git", "-C", root, "write-tree"], &:read).strip + commit = IO.popen(commit_env, ["git", "-C", root, "commit-tree", tree, "-m", "initial"], &:read).strip + expect(commit).to match(/\A[0-9a-f]{40}\z/) + expect(system("git", "-C", root, "update-ref", "refs/heads/main", commit)).to be(true) + expect(system("git", "-C", root, "symbolic-ref", "HEAD", "refs/heads/main")).to be(true) + + plan = described_class.plan_project(root, env: {}) + license_report = plan[:recipe_reports].find { |report| report.fetch(:recipe_name) == "template_source_application_LICENSE_md" } + readme_report = plan[:recipe_reports].find { |report| report.fetch(:recipe_name) == "template_source_application_README_md" } + expected_line = "Copyright (c) #{Time.now.utc.year} Jane Contributor" + expect(plan.dig(:facts, :copyright, :lines)).to eq([expected_line]) + expect(license_report.fetch(:final_content)).to include("## Copyright Notice") + expect(license_report.fetch(:final_content)).to include("- #{expected_line}") + expect(readme_report.fetch(:final_content)).to include("Copyright holders") + expect(readme_report.fetch(:final_content)).to include("- #{expected_line}") + expect(license_report.dig(:metadata, :template_tokens, "KJ|LICENSE_COPYRIGHT_NOTICE")).to include("- #{expected_line}") + end + end + + + it "falls back to configured author copyright sections when git blame is unavailable" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-copyright-author-fallback", tmp_root) do |root| + write_tree(root, { + "example.gemspec" => <<~RUBY, + Gem::Specification.new do |spec| + spec.name = "example" + spec.summary = "Example gem" + spec.authors = ["Peter H. Boling"] + spec.email = ["floss@galtzo.com"] + spec.licenses = ["AGPL-3.0-only"] + end + RUBY + ".kettle-jem.yml" => <<~YAML, + licenses: + - AGPL-3.0-only + - PolyForm-Small-Business-1.0.0 + tokens: + author: + given_names: Peter H. + family_names: Boling + email: floss@galtzo.com + templates: + root: template + apply: true + entries: + - LICENSE.md + - README.md + files: + README.md: + strategy: accept_template + YAML + "README.md" => "# Example\n", + "template/LICENSE.md.example" => "{KJ|LICENSE_MD_CONTENT}\n\n{KJ|LICENSE_COPYRIGHT_NOTICE}\n", + "template/README.md.example" => "# Example\n\n## 📄 License\n\n{KJ|README:COPYRIGHT_NOTICE}\n" + }) + + plan = described_class.plan_project(root, env: {}) + license_report = plan[:recipe_reports].find { |report| report.fetch(:relative_path) == "LICENSE.md" } + readme_report = plan[:recipe_reports].find { |report| report.fetch(:recipe_name) == "template_source_application_README_md" } + expected_line = "Required Notice: Copyright (c) #{Time.now.utc.year} Peter H. Boling" + + expect(plan.fetch(:facts)).not_to have_key(:copyright) + expect(license_report.fetch(:final_content)).to include("## Copyright Notice") + expect(license_report.fetch(:final_content)).to include("- #{expected_line}") + expect(readme_report.fetch(:final_content)).to include("Copyright holders") + expect(readme_report.fetch(:final_content)).to include("- #{expected_line}") + end + end + +end diff --git a/gems/kettle-jem/spec/integration/appraisals_and_gemfile_template_spec.rb b/gems/kettle-jem/spec/integration/appraisals_and_gemfile_template_spec.rb new file mode 100644 index 000000000..ee18f495e --- /dev/null +++ b/gems/kettle-jem/spec/integration/appraisals_and_gemfile_template_spec.rb @@ -0,0 +1,1584 @@ +# frozen_string_literal: true + +RSpec.describe Kettle::Jem, "Appraisals and Gemfile templating" do + include_context "with isolated kettle-jem environment" + include_context "with kettle-jem fixture contracts" + + it "applies Appraisals template policy with self-dependency and minimum Ruby pruning" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-appraisals-policy-slice", tmp_root) do |root| + write_tree(root, { + "example.gemspec" => <<~RUBY, + Gem::Specification.new do |spec| + spec.name = "example" + spec.required_ruby_version = ">= 3.2" + end + RUBY + ".kettle-jem.yml" => <<~YAML, + templates: + root: template + apply: true + entries: + - Appraisals + YAML + "Appraisals" => <<~RUBY, + # frozen_string_literal: true + + appraise "ruby-2-7" do + gem "example" + eval_gemfile "gemfiles/modular/x_std_libs/r2/libs.gemfile" + end + + appraise "ruby-3-2" do + gem "example", path: "../example" + eval_gemfile "gemfiles/modular/x_std_libs/r3/libs.gemfile" + end + + appraise "coverage" do + gem "simplecov" + end + RUBY + "template/Appraisals.example" => <<~RUBY + # frozen_string_literal: true + + appraise "ruby-3-2" do + eval_gemfile "gemfiles/modular/x_std_libs/r3/libs.gemfile" + end + + appraise "head" do + eval_gemfile "gemfiles/modular/recording/r4/recording.gemfile" + end + + appraise "path-gems" do + %w[ + example + support-gem + ].each do |gem_name| + gem gem_name, path: "../\#{gem_name}" + end + end + + appraise "style" do + eval_gemfile "gemfiles/modular/style.gemfile" + end + RUBY + }) + + apply = described_class.apply_project(root, env: {}) + appraisals_report = apply.fetch(:recipe_reports).find do |report| + report.fetch(:recipe_name) == "template_source_application_Appraisals" + end + appraisals_content = appraisals_report.fetch(:final_content) + + expect(appraisals_content).not_to include('appraise "ruby-2-7"') + expect(appraisals_content).not_to include('gem "example"') + expect(appraisals_content).to include('appraise "ruby-3-2"') + expect(appraisals_content).to include('eval_gemfile "gemfiles/modular/x_std_libs/r3/libs.gemfile"') + expect(appraisals_content).to include('appraise "head"') + expect(appraisals_content).not_to include('gem "cgi"') + expect(appraisals_content).not_to include("modular/recording/") + expect(appraisals_content).to include('appraise "coverage"') + expect(appraisals_content).to include('gem "simplecov"') + expect(appraisals_content).to include('appraise "path-gems"') + expect(appraisals_content).to include("support-gem") + expect(appraisals_content).not_to match(/^\s+example$/) + expect(appraisals_content).to include('appraise "style"') + expect(appraisals_report.dig(:report_envelope, :report, :step_reports, 0, :metadata, :ruby_template_policy)).to include( + file_type: "appraisals", + operations: include( + include(operation: "merge_appraisal_blocks", inserted_appraisals: include("style")), + include(operation: "delete_self_dependency_declarations", deleted_dependency_count: 2), + include(operation: "prune_minimum_ruby_appraisals", deleted_appraisals: include("ruby-2-7")) + ) + ) + expect(File.read(File.join(root, "Appraisals"))).to eq(appraisals_content) + end + end + + + it "keeps Appraisals recording gemfiles only when configured" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-appraisals-recording-slice", tmp_root) do |root| + write_tree(root, { + "example.gemspec" => <<~RUBY, + Gem::Specification.new do |spec| + spec.name = "example" + spec.required_ruby_version = ">= 3.2" + end + RUBY + ".kettle-jem.yml" => <<~YAML, + workflows: + recording: true + templates: + root: template + apply: true + entries: + - Appraisals + YAML + "template/Appraisals.example" => <<~RUBY + # frozen_string_literal: true + + appraise "head" do + gem "cgi", ">= 0.5" + eval_gemfile "gemfiles/modular/recording/r4/recording.gemfile" + end + RUBY + }) + + apply = described_class.apply_project(root, env: {}) + appraisals_report = apply.fetch(:recipe_reports).find do |report| + report.fetch(:recipe_name) == "template_source_application_Appraisals" + end + appraisals_content = appraisals_report.fetch(:final_content) + + expect(appraisals_content).not_to include('gem "cgi"') + expect(appraisals_content).to include('eval_gemfile "gemfiles/modular/recording/r4/recording.gemfile"') + end + end + + + it "ports old Appraisals template behavior without losing custom destination blocks" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + contract_case = old_spec_contract.fetch(:cases).fetch(:appraisals_custom_blocks) + + Dir.mktmpdir("kettle-jem-old-appraisals-policy", tmp_root) do |root| + write_tree(root, { + "demo.gemspec" => <<~RUBY, + Gem::Specification.new do |spec| + spec.name = "demo" + spec.version = "0.1.0" + spec.summary = "test gem" + spec.required_ruby_version = ">= 4.0" + end + RUBY + ".kettle-jem.yml" => <<~YAML, + templates: + root: template + apply: true + entries: + - Appraisals + YAML + "Appraisals" => <<~RUBY, + appraise "#{contract_case.fetch(:destination_appraisal)}" do + gem "local-only" + end + RUBY + "template/Appraisals.example" => <<~RUBY + appraise "#{contract_case.fetch(:template_appraisal)}" do + gemfile "gemfiles/ruby_4.0.gemfile" + end + RUBY + }) + + apply = described_class.apply_project(root, env: {}, run_options: {accept: true}) + report = apply.fetch(:recipe_reports).find { |candidate| candidate.fetch(:relative_path) == "Appraisals" } + appraisals_content = report.fetch(:final_content) + + expect(appraisals_content).to include(%(appraise "#{contract_case.fetch(:template_appraisal)}")) + expect(appraisals_content).to include(%(appraise "#{contract_case.fetch(:destination_appraisal)}")) + expect(appraisals_content).to include('gem "local-only"') + expect(report.dig(:report_envelope, :report, :step_reports, 0, :metadata, :ruby_template_policy, :operations)).to include( + include( + operation: "merge_appraisal_blocks", + inserted_appraisals: include(contract_case.fetch(:template_appraisal)), + preserved_destination_appraisals: include(contract_case.fetch(:destination_appraisal)) + ) + ) + end + end + + + it "preserves destination additions inside same-named Appraisal blocks" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-appraisals-same-name-merge", tmp_root) do |root| + write_tree(root, { + "demo.gemspec" => <<~RUBY, + Gem::Specification.new do |spec| + spec.name = "demo" + spec.version = "0.1.0" + spec.summary = "test gem" + spec.required_ruby_version = ">= 3.2" + end + RUBY + ".kettle-jem.yml" => <<~YAML, + templates: + root: template + apply: true + entries: + - Appraisals + YAML + "Appraisals" => <<~RUBY, + appraise "ruby-3-2" do + eval_gemfile "modular/activerecord/r3/v8.0.gemfile" + eval_gemfile("modular/x_std_libs/r3/libs.gemfile") + end + RUBY + "template/Appraisals.example" => <<~RUBY + appraise "ruby-3-2" do + eval_gemfile "modular/style.gemfile" + eval_gemfile "modular/x_std_libs/r3/libs.gemfile" + end + RUBY + }) + + apply = described_class.apply_project(root, env: {}, run_options: {accept: true}) + report = apply.fetch(:recipe_reports).find { |candidate| candidate.fetch(:relative_path) == "Appraisals" } + appraisals_content = report.fetch(:final_content) + + expect(appraisals_eval_gemfile_paths(appraisals_content, "ruby-3-2")).to contain_exactly( + "modular/style.gemfile", + "modular/activerecord/r3/v8.0.gemfile", + "modular/x_std_libs/r3/libs.gemfile" + ) + end + end + + + it "collapses framework appraisals onto standard appraisals without overwriting kept framework gemfiles" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-framework-collapse-kept-gemfiles", tmp_root) do |root| + write_tree(root, { + "demo.gemspec" => <<~RUBY, + Gem::Specification.new do |spec| + spec.name = "demo" + spec.version = "0.1.0" + spec.summary = "test gem" + spec.required_ruby_version = ">= 3.2" + end + RUBY + ".kettle-jem.yml" => <<~YAML, + workflows: + preset: framework + framework_matrix: + dimension: rails + gem: rails + gemfile_pattern: "rails_{version}.gemfile" + workflow: false + versions: + - label: "7.2" + slug: "7_2" + requirement: "~> 7.2.2" + standard_appraisal: ruby-3-2 + env: + RAILS_MAJOR_MINOR: "7.2" + patterns: + - path: "gemfiles/rails_*.gemfile" + strategy: keep_destination + templates: + root: template + apply: true + entries: + - Appraisals + - gemfiles/rails_7_2.gemfile + - .github/workflows/framework-ci.yml + - .github/workflows/ruby-3.2.yml + YAML + "Appraisals" => <<~RUBY, + appraise "ruby-3-2" do + eval_gemfile "modular/x_std_libs/r3/libs.gemfile" + end + + appraise "rails-7-2" do + gem "combustion", "~> 1.5" + gem "actionmailer", "~> 7.2.2" + gem "railties", "~> 7.2.2" + end + RUBY + "gemfiles/rails_7_2.gemfile" => <<~RUBY, + # This file was generated by Appraisal + gem "combustion", "~> 1.5" + gem "actionmailer", "~> 7.2.2" + gem "railties", "~> 7.2.2" + RUBY + "template/Appraisals.example" => <<~RUBY, + appraise "ruby-3-2" do + eval_gemfile "modular/x_std_libs/r3/libs.gemfile" + end + RUBY + "template/.github/workflows/framework-ci.yml.example" => "name: Framework CI\n", + "template/.github/workflows/ruby-3.2.yml.example" => <<~YAML, + name: Ruby 3.2 + + jobs: + test: + env: + BUNDLE_GEMFILE: ${{ github.workspace }}/Appraisal.root.gemfile + strategy: + matrix: + include: + - ruby: "ruby-3.2" + appraisal: "ruby-3-2" + exec_cmd: "kettle-test" + YAML + "template/gemfiles/rails_7_2.gemfile.example" => "gem \"rails\", \"~> 7.2.2\"\n" + }) + + apply = described_class.apply_project(root, env: {}, run_options: {accept: true}) + appraisals_report = apply.fetch(:recipe_reports).find { |candidate| candidate.fetch(:relative_path) == "Appraisals" } + appraisals_content = appraisals_report.fetch(:final_content) + workflow_report = apply.fetch(:recipe_reports).find { |candidate| candidate.fetch(:relative_path) == ".github/workflows/ruby-3.2.yml" } + workflow_content = workflow_report.fetch(:final_content) + + expect(appraisals_content).not_to include("ENV[") + expect(appraisals_content).to include('eval_gemfile "rails_7_2.gemfile"') + expect(appraisals_content).not_to include('appraise "rails-7-2"') + expect(workflow_content).to include("KJ_FRAMEWORK_MATRIX_GEM: ${{ matrix.KJ_FRAMEWORK_MATRIX_GEM || '' }}") + expect(workflow_content).to include("RAILS_MAJOR_MINOR: ${{ matrix.RAILS_MAJOR_MINOR || '' }}") + expect(workflow_content).to include('KJ_FRAMEWORK_MATRIX_GEM: "rails"') + expect(workflow_content.scan('KJ_FRAMEWORK_MATRIX_GEM: "rails"').size).to eq(1) + expect(workflow_content).to include('RAILS_MAJOR_MINOR: "7.2"') + expect(File.read(File.join(root, "gemfiles/rails_7_2.gemfile"))).to include('gem "combustion", "~> 1.5"') + expect(File).not_to exist(File.join(root, ".github/workflows/framework-ci.yml")) + end + end + + + it "adds configured support gemfiles to standard test Appraisal blocks" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-standard-appraisal-gemfiles", tmp_root) do |root| + write_tree(root, { + "demo.gemspec" => <<~RUBY, + Gem::Specification.new do |spec| + spec.name = "demo" + spec.version = "0.1.0" + spec.summary = "test gem" + spec.required_ruby_version = ">= 3.2" + end + RUBY + ".kettle-jem.yml" => <<~YAML, + appraisal_matrix: + appraisal_gemfiles: + - gemfiles/modular/activerecord_support.gemfile + templates: + root: template + apply: true + entries: + - Appraisals + YAML + "template/Appraisals.example" => <<~RUBY + appraise "current" do + eval_gemfile "modular/x_std_libs.gemfile" + end + + appraise "ruby-3-2" do + eval_gemfile "modular/x_std_libs/r3/libs.gemfile" + end + + appraise "style" do + eval_gemfile "modular/style.gemfile" + eval_gemfile "modular/x_std_libs.gemfile" + end + RUBY + }) + + apply = described_class.apply_project(root, env: {}, run_options: {accept: true}) + report = apply.fetch(:recipe_reports).find { |candidate| candidate.fetch(:relative_path) == "Appraisals" } + appraisals_content = report.fetch(:final_content) + + expect(appraisals_content).to include(<<~RUBY.strip) + appraise "current" do + eval_gemfile "modular/activerecord_support.gemfile" + eval_gemfile "modular/x_std_libs.gemfile" + end + RUBY + expect(appraisals_content).to include(<<~RUBY.strip) + appraise "ruby-3-2" do + eval_gemfile "modular/activerecord_support.gemfile" + eval_gemfile "modular/x_std_libs/r3/libs.gemfile" + end + RUBY + expect(appraisals_content).not_to include(<<~RUBY.strip) + appraise "style" do + eval_gemfile "modular/style.gemfile" + eval_gemfile "modular/activerecord_support.gemfile" + eval_gemfile "modular/x_std_libs.gemfile" + end + RUBY + end + end + + + it "does not add broad standard support gemfiles to collapsed framework appraisals" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-standard-appraisal-collapse-skip", tmp_root) do |root| + write_tree(root, { + "demo.gemspec" => <<~RUBY, + Gem::Specification.new do |spec| + spec.name = "demo" + spec.version = "0.1.0" + spec.summary = "test gem" + spec.required_ruby_version = ">= 3.2" + end + RUBY + ".kettle-jem.yml" => <<~YAML, + workflows: + standard_appraisal_gemfiles: + - modular/activerecord_runtime.gemfile + - modular/activerecord_support.gemfile + templates: + root: template + apply: true + entries: + - Appraisals + YAML + "template/Appraisals.example" => <<~RUBY + appraise "current" do + eval_gemfile "modular/x_std_libs.gemfile" + end + + appraise "ruby-3-2" do + eval_gemfile "modular/activerecord/r3/v8.0.gemfile" + eval_gemfile "modular/activerecord_support.gemfile" + eval_gemfile "modular/x_std_libs/r3/libs.gemfile" + end + RUBY + }) + + apply = described_class.apply_project(root, env: {}, run_options: {accept: true}) + report = apply.fetch(:recipe_reports).find { |candidate| candidate.fetch(:relative_path) == "Appraisals" } + appraisals_content = report.fetch(:final_content) + + expect(appraisals_content).to include(<<~RUBY.strip) + appraise "current" do + eval_gemfile "modular/activerecord_runtime.gemfile" + eval_gemfile "modular/activerecord_support.gemfile" + eval_gemfile "modular/x_std_libs.gemfile" + end + RUBY + expect(appraisals_content).to include(<<~RUBY.strip) + appraise "ruby-3-2" do + eval_gemfile "modular/activerecord/r3/v8.0.gemfile" + eval_gemfile "modular/activerecord_support.gemfile" + eval_gemfile "modular/x_std_libs/r3/libs.gemfile" + end + RUBY + expect(appraisals_content).not_to include('eval_gemfile "modular/activerecord_runtime.gemfile"' \ + "\n eval_gemfile \"modular/activerecord/r3/v8.0.gemfile\"") + end + end + + + it "adds standard gemfiles beside ordinary support gemfiles while respecting framework fragments" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-standard-appraisal-framework-fragments", tmp_root) do |root| + write_tree(root, { + "demo.gemspec" => <<~RUBY, + Gem::Specification.new do |spec| + spec.name = "demo" + spec.version = "0.1.0" + spec.summary = "test gem" + spec.required_ruby_version = ">= 3.1" + end + RUBY + ".kettle-jem.yml" => <<~YAML, + workflows: + preset: framework + standard_appraisal_gemfiles: + - rails_7_2.gemfile + framework_matrix: + dimension: rails + gem: rails + gemfile_pattern: "rails_{version}.gemfile" + versions: + - label: "7.2" + slug: "7_2" + requirement: "~> 7.2.0" + standard_appraisal: "ruby-3-1" + - label: "8.0" + slug: "8_0" + requirement: "~> 8.0.0" + standard_appraisal: "ruby-3-2" + templates: + root: template + apply: true + entries: + - Appraisals + YAML + "template/Appraisals.example" => <<~RUBY + appraise "coverage" do + eval_gemfile "modular/coverage.gemfile" + eval_gemfile "modular/x_std_libs.gemfile" + end + + appraise "ruby-3-2" do + eval_gemfile "modular/x_std_libs/r3/libs.gemfile" + end + RUBY + }) + + apply = described_class.apply_project(root, env: {}, run_options: {accept: true}) + report = apply.fetch(:recipe_reports).find { |candidate| candidate.fetch(:relative_path) == "Appraisals" } + appraisals_content = report.fetch(:final_content) + + expect(appraisals_eval_gemfile_paths(appraisals_content, "coverage")).to contain_exactly( + "modular/coverage.gemfile", + "rails_7_2.gemfile", + "modular/x_std_libs.gemfile" + ) + expect(appraisals_eval_gemfile_paths(appraisals_content, "ruby-3-2")).to contain_exactly( + "modular/x_std_libs/r3/libs.gemfile", + "rails_8_0.gemfile" + ) + expect(appraisals_eval_gemfile_paths(appraisals_content, "ruby-3-1")).to contain_exactly("rails_7_2.gemfile") + end + end + + + it "prunes GitHub workflow appraisal matrix entries below minimum Ruby" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-appraisal-workflow-prune", tmp_root) do |root| + write_tree(root, { + "example.gemspec" => <<~RUBY, + Gem::Specification.new do |spec| + spec.name = "example" + spec.required_ruby_version = ">= 3.2" + end + RUBY + ".kettle-jem.yml" => <<~YAML, + templates: + root: template + apply: true + entries: + - .github/workflows/appraisals.yml + YAML + "template/.github/workflows/appraisals.yml.example" => <<~YAML + name: Appraisals + on: + pull_request: + jobs: + test: + strategy: + matrix: + include: + - ruby: "2.7" + appraisal: "ruby-2-7" + exec_cmd: "rake spec" + - ruby: "3.2" + appraisal: "ruby-3-2" + exec_cmd: "rake spec" + steps: + - run: bundle exec appraisal ${{ matrix.appraisal }} bundle exec ${{ matrix.exec_cmd }} + YAML + }) + + apply = described_class.apply_project(root, env: {}) + workflow_report = apply.fetch(:recipe_reports).find do |candidate| + candidate.fetch(:relative_path) == ".github/workflows/appraisals.yml" + end + workflow_content = workflow_report.fetch(:final_content) + + expect(workflow_content).not_to include('ruby: "2.7"') + expect(workflow_content).not_to include('appraisal: "ruby-2-7"') + expect(workflow_content).to include('ruby: "3.2"') + expect(workflow_content).to include('appraisal: "ruby-3-2"') + end + end + + + it "runs TruffleRuby dep-heads directly from the generated appraisal gemfile" do + template = File.read(project_root.join("lib/kettle/jem/templates/.github/workflows/dep-heads.yml.example")) + + expect(template).to include("truffleruby:") + expect(template).to include("BUNDLE_GEMFILE: ${{ github.workspace }}/${{ matrix.bundle_gemfile || 'Appraisal.root.gemfile' }}") + expect(template).to include('bundle_gemfile: "gemfiles/dep_heads.gemfile"') + expect(template).to include("direct_bundle: true") + expect(template).to include("run: bundle exec appraisal ${{ matrix.appraisal }} bundle exec ${{ matrix.exec_cmd }}") + expect(template).to include("run: bundle exec ${{ matrix.exec_cmd }}") + end + + + it "serializes legacy engine setup-ruby workaround in generated CI workflows" do + ci = { + default_branch: "main", + exec_cmd: "kettle-test", + ruby_versions: ["truffleruby-25.0", "jruby-9.2", "jruby-9.3"] + } + workflows = [ + described_class.send(:synchronize_github_actions_ci, "", {package: {name: "example"}, ci: ci}), + described_class.send(:synchronize_github_actions_framework_ci, "", { + ci: ci.merge( + framework_matrix: { + dimension: "rails", + include: [{framework_version: "7.2", appraisal: "rails_7_2"}] + } + ) + }) + ] + coverage_workflow = described_class.send(:synchronize_github_actions_coverage_ci, "", { + ci: ci.merge(coverage: {appraisal: "ruby_3_2", command: "kettle-test"}) + }) + existing_workflow = <<~YAML + name: Existing + on: + push: + branches: + - "main" + - "*-stable" + - "r*_*-*-v*" + YAML + preserved_workflows = [ + described_class.send(:synchronize_github_actions_ci, existing_workflow, {package: {name: "example"}, ci: ci}), + described_class.send(:synchronize_github_actions_framework_ci, existing_workflow, { + ci: ci.merge( + framework_matrix: { + dimension: "rails", + include: [{framework_version: "7.2", appraisal: "rails_7_2"}] + } + ) + }), + described_class.send(:synchronize_github_actions_coverage_ci, existing_workflow, { + ci: ci.merge(coverage: {appraisal: "ruby_3_2", command: "kettle-test"}) + }) + ] + + expect(workflows + [coverage_workflow]).not_to include(include(' - "r*_*-*-v*"')) + expect(preserved_workflows).to all(include(' - "r*_*-*-v*"')) + expect(workflows).to all(include("bundler-cache: ${{ matrix.ruby != 'truffleruby-25.0' && matrix.ruby != 'jruby-9.2' && matrix.ruby != 'jruby-9.3' }}")) + expect(workflows).to all(include(" - name: Bundle install for legacy Ruby engine")) + expect(workflows).to all(include(" if: ${{ matrix.ruby == 'truffleruby-25.0' || matrix.ruby == 'jruby-9.2' || matrix.ruby == 'jruby-9.3' }}")) + expect(workflows).to all(include(' bundle config set --local path "${RUNNER_TEMP}/bundle"')) + expect(workflows).to all(include(" bundle install --jobs 1")) + + packaged_rubocop = File.read(project_root.join("lib/kettle/jem/templates/.rubocop.yml.example")) + expect(packaged_rubocop).to include(' - "**/vendor/**/*"') + + packaged_workflow = File.read(project_root.join("lib/kettle/jem/templates/.github/workflows/truffleruby-25.0.yml.example")) + expect(packaged_workflow).to include("bundler-cache: false") + expect(packaged_workflow).to include(" - name: Bundle install for TruffleRuby 25.0") + expect(packaged_workflow).to include(' bundle config set --local path "${RUNNER_TEMP}/bundle"') + expect(packaged_workflow).to include(" bundle install --jobs 1") + + packaged_workflow = File.read(project_root.join("lib/kettle/jem/templates/.github/workflows/jruby-9.2.yml.example")) + expect(packaged_workflow).to include("bundler-cache: false") + expect(packaged_workflow).to include(" - name: Bundle install for JRuby 9.2") + expect(packaged_workflow).to include(' bundle config set --local path "${RUNNER_TEMP}/bundle"') + expect(packaged_workflow).to include(" bundle install --jobs 1") + + packaged_workflow = File.read(project_root.join("lib/kettle/jem/templates/.github/workflows/jruby-9.3.yml.example")) + expect(packaged_workflow).to include("bundler-cache: false") + expect(packaged_workflow).to include(" - name: Bundle install for JRuby 9.3") + expect(packaged_workflow).to include(' bundle config set --local path "${RUNNER_TEMP}/bundle"') + expect(packaged_workflow).to include(" bundle install --jobs 1") + end + + + it "serializes RSpec status cache steps in generated CI workflows" do + ci = { + default_branch: "main", + exec_cmd: "kettle-test", + ruby_versions: ["ruby", "jruby", "truffleruby-25.0"] + } + workflows = [ + described_class.send(:synchronize_github_actions_ci, "", {package: {name: "example"}, ci: ci}), + described_class.send(:synchronize_github_actions_framework_ci, "", { + ci: ci.merge( + framework_matrix: { + dimension: "rails", + include: [{framework_version: "7.2", appraisal: "rails_7_2"}] + } + ) + }), + described_class.send(:synchronize_github_actions_coverage_ci, "", { + ci: ci.merge(coverage: {appraisal: "ruby_3_2", command: "kettle-test"}) + }) + ] + + expect(workflows).to all(include(" - name: Restore RSpec status log")) + expect(workflows).to all(include(" uses: actions/cache@")) + expect(workflows).to all(include(" path: .rspec_status")) + expect(workflows).to all(include("${{hashFiles('**/Gemfile.lock','Appraisal.root.gemfile','gemfiles/**/*.gemfile')}}")) + expect(workflows).to all(include("${{github.run_id}}-${{github.run_attempt}}")) + + current_workflow = File.read(project_root.join("lib/kettle/jem/templates/.github/workflows/current.yml.example")) + jruby_workflow = File.read(project_root.join("lib/kettle/jem/templates/.github/workflows/jruby.yml.example")) + truffleruby_workflow = File.read(project_root.join("lib/kettle/jem/templates/.github/workflows/truffleruby-25.0.yml.example")) + framework_workflow = File.read(project_root.join("lib/kettle/jem/templates/.github/workflows/framework-ci.yml.example")) + + expect(current_workflow).to include("rspec-status-current-${{matrix.ruby}}-${{matrix.appraisal}}-") + expect(jruby_workflow).to include("rspec-status-jruby-${{matrix.ruby}}-${{matrix.appraisal}}-") + expect(jruby_workflow).to include("startsWith(github.head_ref, 'jruby/')") + expect(truffleruby_workflow).to include("rspec-status-truffleruby-25.0-${{matrix.ruby}}-${{matrix.appraisal}}-") + expect(truffleruby_workflow).to include("startsWith(github.head_ref, 'truffleruby/')") + expect(framework_workflow).to include( + "rspec-status-framework-ci-${{matrix.ruby}}-${{matrix.framework_version}}-${{matrix.gemfile}}-" + ) + end + + + it "ports old modular Gemfile ruby-bucket eval_gemfile replacement" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + contract_case = old_spec_contract.fetch(:cases).fetch(:modular_gemfile_ruby_bucket) + relative_path = contract_case.fetch(:path) + + Dir.mktmpdir("kettle-jem-old-modular-gemfile-policy", tmp_root) do |root| + write_tree(root, { + "example.gemspec" => <<~RUBY, + Gem::Specification.new do |spec| + spec.name = "example" + spec.summary = "Example" + spec.required_ruby_version = ">= 4.0" + end + RUBY + ".kettle-jem.yml" => <<~YAML, + templates: + root: template + apply: true + entries: + - #{relative_path} + YAML + relative_path => contract_case.fetch(:obsolete_eval_paths).map { |path| %(eval_gemfile "#{path}") }.join("\n") + + "\n" + %(eval_gemfile "../../benchmark/r4/v0.5.gemfile"\n), + "template/#{relative_path}.example" => contract_case.fetch(:template_eval_paths).map do |path| + %(eval_gemfile "#{path}") + end.join("\n") + "\n" + }) + + apply = described_class.apply_project(root, env: {}, run_options: {accept: true}) + report = apply.fetch(:recipe_reports).find { |candidate| candidate.fetch(:relative_path) == relative_path } + content = report.fetch(:final_content) + + contract_case.fetch(:template_eval_paths).each do |path| + expect(content.scan(%(eval_gemfile "#{path}")).size).to eq(1) + end + contract_case.fetch(:obsolete_eval_paths).each do |path| + expect(content).not_to include(%(eval_gemfile "#{path}")) + end + expect(File.read(File.join(root, relative_path))).to eq(content) + end + end + + + it "preserves destination-only main Gemfile ruby-bucket eval_gemfile entries" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-main-gemfile-destination-evals", tmp_root) do |root| + write_tree(root, { + "example.gemspec" => <<~RUBY, + Gem::Specification.new do |spec| + spec.name = "example" + spec.summary = "Example" + spec.required_ruby_version = ">= 3.0" + end + RUBY + ".kettle-jem.yml" => <<~YAML, + templates: + root: template + apply: true + entries: + - Gemfile + YAML + "Gemfile" => <<~RUBY, + # frozen_string_literal: true + + source "https://gem.coop" + + # Code Coverage + eval_gemfile "gemfiles/modular/coverage.gemfile" + + # Test HTTP Interaction Recording + eval_gemfile "gemfiles/modular/recording/r3/recording.gemfile" + + # Linting + eval_gemfile "gemfiles/modular/style.gemfile" + RUBY + "template/Gemfile.example" => <<~RUBY + # frozen_string_literal: true + + source "https://gem.coop" + + # Code Coverage + eval_gemfile "gemfiles/modular/coverage.gemfile" + + # Linting + eval_gemfile "gemfiles/modular/style.gemfile" + RUBY + }) + + apply = described_class.apply_project(root, env: {}) + report = apply.fetch(:recipe_reports).find { |candidate| candidate.fetch(:relative_path) == "Gemfile" } + content = report.fetch(:final_content) + + expect(content).to include("# Test HTTP Interaction Recording") + expect(content.scan('eval_gemfile "gemfiles/modular/recording/r3/recording.gemfile"').size).to eq(1) + expect(File.read(File.join(root, "Gemfile"))).to eq(content) + end + end + + + it "repairs missing main Gemfile recording evals from configured Appraisals" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-main-gemfile-recording-repair", tmp_root) do |root| + write_tree(root, { + "example.gemspec" => <<~RUBY, + Gem::Specification.new do |spec| + spec.name = "example" + spec.summary = "Example" + spec.required_ruby_version = ">= 3.0" + end + RUBY + ".kettle-jem.yml" => <<~YAML, + templates: + root: template + apply: true + entries: + - Gemfile + YAML + "Appraisals" => <<~RUBY, + appraise "current" do + eval_gemfile "modular/recording/r4/recording.gemfile" + eval_gemfile "modular/x_std_libs.gemfile" + end + RUBY + "Gemfile" => <<~RUBY, + # frozen_string_literal: true + + source "https://gem.coop" + + # Code Coverage + eval_gemfile "gemfiles/modular/coverage.gemfile" + + # Linting + eval_gemfile "gemfiles/modular/style.gemfile" + RUBY + "template/Gemfile.example" => <<~RUBY + # frozen_string_literal: true + + source "https://gem.coop" + + # Code Coverage + eval_gemfile "gemfiles/modular/coverage.gemfile" + + # Linting + eval_gemfile "gemfiles/modular/style.gemfile" + RUBY + }) + + apply = described_class.apply_project(root, env: {}) + report = apply.fetch(:recipe_reports).find { |candidate| candidate.fetch(:relative_path) == "Gemfile" } + content = report.fetch(:final_content) + + expect(content).to include("# Test HTTP Interaction Recording") + expect(content.scan('eval_gemfile "gemfiles/modular/recording/r4/recording.gemfile"').size).to eq(1) + expect(content.index("# Test HTTP Interaction Recording")).to be < content.index("# Linting") + expect(File.read(File.join(root, "Gemfile"))).to eq(content) + end + end + + + it "removes the destination package from the main Gemfile" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-main-gemfile-self-dependency", tmp_root) do |root| + write_tree(root, { + "example-gem.gemspec" => <<~RUBY, + Gem::Specification.new do |spec| + spec.name = "example-gem" + spec.summary = "Example Gem" + end + RUBY + ".kettle-jem.yml" => <<~YAML, + templates: + root: template + apply: true + entries: + - Gemfile + YAML + "Gemfile" => <<~RUBY, + # frozen_string_literal: true + + source "https://gem.coop" + gem "example-gem" + gem "destination-only" + RUBY + "template/Gemfile.example" => <<~RUBY + # frozen_string_literal: true + + source "https://gem.coop" + + dependency_root = ENV["DEPENDENCY_ROOT"].to_s.strip + + if !dependency_root.empty? + %w[ + example-gem + helper-gem + ].each do |gem_name| + gem gem_name, path: File.join(dependency_root, gem_name) + end + else + gem "example-gem", ">= 1.0" + end + + gem "shared-tool" + RUBY + }) + + apply = described_class.apply_project(root, env: {}) + report = apply.fetch(:recipe_reports).find { |candidate| candidate.fetch(:relative_path) == "Gemfile" } + content = report.fetch(:final_content) + + expect(content).to include("helper-gem") + expect(content).to include('gem "shared-tool"') + expect(content).not_to match(/^\s+example-gem$/) + expect(content).not_to match(/^\s*gem\s+["']example-gem["']/) + expect(File.read(File.join(root, "Gemfile"))).to eq(content) + end + end + + + it "merges modular local Gemfile dependency lists while preserving the destination package" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-local-gemfile-policy", tmp_root) do |root| + write_tree(root, { + "kettle-jem.gemspec" => <<~RUBY, + Gem::Specification.new do |spec| + spec.name = "kettle-jem" + spec.summary = "Kettle Jem" + end + RUBY + ".kettle-jem.yml" => <<~YAML, + templates: + root: template + apply: true + entries: + - gemfiles/modular/templating_local.gemfile + YAML + "gemfiles/modular/templating_local.gemfile" => <<~RUBY, + # frozen_string_literal: true + + local_gems = %w[ + local-only + rubocop-ruby2_3 + kettle-jem + ] + RUBY + "template/gemfiles/modular/templating_local.gemfile.example" => <<~RUBY + # frozen_string_literal: true + + local_gems = %w[ + tree_sitter_language_pack + tree_haver + ast-merge + rubocop-ruby2_4 + kettle-jem + ] + RUBY + }) + + apply = described_class.apply_project(root, env: {}) + report = apply.fetch(:recipe_reports).find do |candidate| + candidate.fetch(:relative_path) == "gemfiles/modular/templating_local.gemfile" + end + content = report.fetch(:final_content) + + expect(content).to include("tree_haver") + expect(content).to include("ast-merge") + expect(content).to include("rubocop-ruby2_4") + expect(content).to include("local-only") + expect(content).not_to include("rubocop-ruby2_3") + expect(content).to include("kettle-jem") + expect(content).to include("tree_sitter_language_pack") + expect(File.read(File.join(root, "gemfiles/modular/templating_local.gemfile"))).to eq(content) + end + end + + + it "adds configured kettle plugins to the kettle-rb local Gemfile overrides" do + runtime = described_class.send( + :project_runtime_facts, + {"plugins" => ["kettle-drift", "example-plugin"]}, + {}, + package_name: "example", + source_url: "https://github.com/example/example", + author_domain: "example.test", + min_ruby: ">= 3.2", + test_min_ruby: Gem::Version.new("3.2"), + version: "0.1.0" + ) + tokens = described_class.send(:project_runtime_template_tokens, runtime) + + expect(tokens.fetch("KJ|KETTLE_DEV_LOCAL_GEMS")).to eq("kettle-dev kettle-test kettle-soup-cover kettle-drift") + expect(tokens.fetch("KJ|MAIN_GEMFILE_NOMONO_BOOTSTRAP")).to include('gem "nomono"') + expect(tokens.fetch("KJ|PACKAGE_NAME")).to eq("example") + end + + + it "exposes package summary and description tokens for generated metadata" do + tokens = described_class.send( + :template_tokens, + { + package: { + name: "example", + summary: "Example summary", + description: "Example description" + }, + rubygems: {}, + project_runtime: {} + }, + {} + ) + + expect(tokens.fetch("KJ|PACKAGE_SUMMARY")).to eq("Example summary") + expect(tokens.fetch("KJ|PACKAGE_DESCRIPTION")).to eq("Example description") + end + + + it "templates spec helper coverage bootstrap before loading the library" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + + Dir.mktmpdir("kettle-jem-spec-helper-coverage", tmp_root) do |root| + write_tree(root, { + "example-gem.gemspec" => <<~RUBY, + Gem::Specification.new do |spec| + spec.name = "example-gem" + spec.summary = "Example gem" + spec.required_ruby_version = ">= 3.2" + end + RUBY + ".kettle-jem.yml" => <<~YAML, + project_emoji: 🧪 + rubygems: + entrypoint_require: "example/gem" + namespace: "Example::Custom" + templates: + root: packaged + apply: true + entries: + - spec/spec_helper.rb + YAML + "spec/spec_helper.rb" => <<~RUBY + # frozen_string_literal: true + + require "example/custom" + + RSpec.configure do |config| + config.example_status_persistence_file_path = ".rspec_status" + end + RUBY + }) + + apply = described_class.apply_project(root, env: {}, run_options: {accept: true}) + report = apply.fetch(:recipe_reports).find do |candidate| + candidate.fetch(:relative_path) == "spec/spec_helper.rb" + end + content = report.fetch(:final_content) + + expect(content.index('require "kettle-soup-cover"')).to be < content.index('require "example/custom"') + expect(content).to include("if Kettle::Soup::Cover::DO_COV") + expect(content).to include('require "simplecov"') + expect(content.index('require "simplecov"')).to be < content.index('require "kettle/soup/cover/config"') + expect(content.index('require "kettle/soup/cover/config"')).to be < content.index("SimpleCov.start") + expect(content).to include("SimpleCov.start") + expect(content).to include('require "kettle/test/rspec"') + expect(content.scan('require "example/custom"').size).to eq(1) + end + end + + + it "preserves destination spec helper support wiring while adding template bootstrap" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + + Dir.mktmpdir("kettle-jem-spec-helper-custom-wiring", tmp_root) do |root| + write_tree(root, { + "example.gemspec" => <<~RUBY, + Gem::Specification.new do |spec| + spec.name = "example" + spec.summary = "Example gem" + spec.required_ruby_version = ">= 3.2" + end + RUBY + ".kettle-jem.yml" => <<~YAML, + project_emoji: 🧪 + rubygems: + entrypoint_require: "example/custom" + namespace: "Example::Custom" + templates: + root: packaged + apply: true + entries: + - spec/spec_helper.rb + YAML + "spec/spec_helper.rb" => <<~RUBY + # frozen_string_literal: true + + # Internal ENV config + require_relative "config/debug" + require_relative "config/vcr" + + require "kettle/test/rspec" + require "example-gem" + + # Internal RSpec & related config + require_relative "support/shared_contexts/with_rake" + require_relative "support/shared_contexts/with_mocked_git_adapter" + + RSpec.configure do |config| + config.include_context "with mocked git adapter" + end + RUBY + }) + + apply = described_class.apply_project(root, env: {}, run_options: {accept: true}) + report = apply.fetch(:recipe_reports).find do |candidate| + candidate.fetch(:relative_path) == "spec/spec_helper.rb" + end + content = report.fetch(:final_content) + + expect(content).to include('require "kettle-soup-cover"') + expect(content.index('require "kettle-soup-cover"')).to be < content.index('require "example-gem"') + expect(content).to include("if Kettle::Soup::Cover::DO_COV") + expect(content).to include('require "simplecov"') + expect(content.index('require "simplecov"')).to be < content.index('require "kettle/soup/cover/config"') + expect(content.index('require "kettle/soup/cover/config"')).to be < content.index("SimpleCov.start") + expect(content).to include("SimpleCov.start") + expect(content.scan('require "kettle/test/rspec"').size).to eq(1) + expect(content.scan('require "example-gem"').size).to eq(1) + expect(content).not_to include('require "example/gem"') + expect(content).not_to include("require \"kettle/test/rspec\"\n\n\n# Internal ENV config") + expect(content).to include('require_relative "config/debug"') + expect(content).to include('require_relative "config/vcr"') + expect(content).to include('require_relative "support/shared_contexts/with_rake"') + expect(content).to include('require_relative "support/shared_contexts/with_mocked_git_adapter"') + expect(content).to include('config.include_context "with mocked git adapter"') + end + end + + + it "treats packaged local Gemfiles as template-owned by default" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-packaged-local-gemfile-default-strategy", tmp_root) do |root| + write_tree(root, { + "example.gemspec" => <<~RUBY, + Gem::Specification.new do |spec| + spec.name = "example" + spec.summary = "Example" + end + RUBY + ".kettle-jem.yml" => <<~YAML, + templates: + root: packaged + apply: true + entries: + - gemfiles/modular/style_local.gemfile + YAML + "gemfiles/modular/style_local.gemfile" => <<~RUBY + # frozen_string_literal: true + + local_gems = %w[ + local-only + rubocop-ruby2_3 + ] + RUBY + }) + + plan = described_class.plan_project(root, env: {}) + report = plan.fetch(:recipe_reports).find do |candidate| + candidate.fetch(:relative_path) == "gemfiles/modular/style_local.gemfile" + end + content = report.fetch(:final_content) + + expect(report.dig(:metadata, :template_source_preference)).to include(strategy: "accept_template") + expect(content).to include("rubocop-ruby") + expect(content).to include("declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name)") + expect(content).to include("local_gems_to_eval = local_gems - %w[example] - declared_gems") + expect(content).to include("gems: local_gems_to_eval") + expect(content).not_to include("local-only") + expect(content).not_to include("rubocop-ruby2_3") + end + end + + + it "excludes the current gem and already declared gems from documentation local path overrides" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-documentation-local-gemfile-self-exclusion", tmp_root) do |root| + write_tree(root, { + "yard-yaml.gemspec" => <<~RUBY, + Gem::Specification.new do |spec| + spec.name = "yard-yaml" + spec.summary = "YARD YAML" + end + RUBY + ".kettle-jem.yml" => <<~YAML + templates: + root: packaged + apply: true + entries: + - gemfiles/modular/documentation_local.gemfile + YAML + }) + + plan = described_class.plan_project(root, env: {}) + report = plan.fetch(:recipe_reports).find do |candidate| + candidate.fetch(:relative_path) == "gemfiles/modular/documentation_local.gemfile" + end + content = report.fetch(:final_content) + + expect(content).to include("local_gems = %w[yard-fence yard-timekeeper yard-yaml]") + expect(content).to include("declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name)") + expect(content).to include("local_gems_to_eval = local_gems - %w[yard-yaml] - declared_gems") + expect(content).to include("gems: local_gems_to_eval") + end + end + + + it "generates nomono in the main Gemfile before local workspace overrides need it" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-main-gemfile-nomono", tmp_root) do |root| + write_tree(root, { + "example.gemspec" => <<~RUBY, + Gem::Specification.new do |spec| + spec.name = "example" + spec.summary = "Example" + end + RUBY + ".kettle-jem.yml" => <<~YAML + templates: + root: packaged + apply: true + entries: + - Gemfile + YAML + }) + + apply = described_class.apply_project(root, env: {}) + report = apply.fetch(:recipe_reports).find do |candidate| + candidate.fetch(:relative_path) == "Gemfile" + end + content = report.fetch(:final_content) + + expect(content).to include('nomono_requirements = ["~> 1.0", ">= 1.0.8"]') + expect(content).to include('gem "nomono", *nomono_requirements, require: false') + expect(content.index('gem "nomono"')).to be < content.index('eval_gemfile "gemfiles/modular/templating.gemfile"') + expect(File.read(File.join(root, "Gemfile"))).to eq(content) + end + end + + + it "does not generate a duplicate nomono dependency in nomono's own main Gemfile" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-main-gemfile-nomono-self", tmp_root) do |root| + write_tree(root, { + "nomono.gemspec" => <<~RUBY, + Gem::Specification.new do |spec| + spec.name = "nomono" + spec.summary = "Nomono" + end + RUBY + ".kettle-jem.yml" => <<~YAML + templates: + root: packaged + apply: true + entries: + - Gemfile + YAML + }) + + apply = described_class.apply_project(root, env: {}) + content = apply.fetch(:recipe_reports).find { |candidate| candidate.fetch(:relative_path) == "Gemfile" }.fetch(:final_content) + + expect(content).not_to include('gem "nomono", *nomono_requirements') + expect(content).not_to include("nomono_requirements =") + expect(File.read(File.join(root, "Gemfile"))).to eq(content) + end + end + + + it "adds nomono bootstrap to existing main Gemfiles before templating local overrides" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-main-gemfile-existing-nomono", tmp_root) do |root| + write_tree(root, { + "example.gemspec" => <<~RUBY, + Gem::Specification.new do |spec| + spec.name = "example" + spec.summary = "Example" + end + RUBY + "Gemfile" => <<~RUBY, + # frozen_string_literal: true + + source "https://gem.coop" + + gemspec + + eval_gemfile "gemfiles/modular/templating.gemfile" if ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? + RUBY + ".kettle-jem.yml" => <<~YAML + templates: + root: packaged + apply: true + entries: + - Gemfile + YAML + }) + + apply = described_class.apply_project(root, env: {}) + gemfile = File.read(File.join(root, "Gemfile")) + + expect(apply.fetch(:changed_files)).to include("Gemfile") + expect(gemfile).to include('nomono_requirements = ["~> 1.0", ">= 1.0.8"]') + expect(gemfile).to include('gem "nomono", *nomono_requirements, require: false') + expect(gemfile.index('gem "nomono"')).to be < gemfile.index('eval_gemfile "gemfiles/modular/templating.gemfile"') + end + end + + + it "treats packaged CITATION.cff as template-owned metadata by default" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-packaged-citation-default-strategy", tmp_root) do |root| + write_tree(root, { + "example.gemspec" => <<~RUBY, + Gem::Specification.new do |spec| + spec.name = "example" + spec.summary = "Example" + spec.authors = ["Ada Lovelace"] + spec.email = ["ada@example.com"] + spec.metadata["source_code_uri"] = "https://github.com/acme/example" + end + RUBY + ".kettle-jem.yml" => <<~YAML, + repository: + topology: standalone + templates: + root: packaged + apply: true + entries: + - CITATION.cff + tokens: + author: + orcid: 0000-0001-2345-6789 + YAML + "CITATION.cff" => <<~YAML + cff-version: 1.2.0 + title: "example" + identifiers: + - type: url + value: 'https://github.com/acme/example/tree/main/gems/example' + repository-code: 'https://github.com/acme/example/tree/main/gems/example' + YAML + }) + + plan = described_class.plan_project(root, env: {}) + report = plan.fetch(:recipe_reports).find do |candidate| + candidate.fetch(:relative_path) == "CITATION.cff" + end + content = report.fetch(:final_content) + + expect(report.dig(:metadata, :template_source_preference)).to include(strategy: "accept_template") + expect(content).to include("repository-code: 'https://github.com/acme/example'") + expect(content).not_to include("/gems/example") + end + end + + + it "removes the destination package from arbitrary modular Gemfile dependency lists" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-modular-gemfile-self-dependency", tmp_root) do |root| + write_tree(root, { + "example-gem.gemspec" => <<~RUBY, + Gem::Specification.new do |spec| + spec.name = "example-gem" + spec.summary = "Example Gem" + end + RUBY + ".kettle-jem.yml" => <<~YAML, + templates: + root: template + apply: true + entries: + - gemfiles/modular/debug.gemfile + files: + gemfiles: + modular: + debug.gemfile: + strategy: accept_template + YAML + "gemfiles/modular/debug.gemfile" => <<~RUBY, + # frozen_string_literal: true + + gem "existing" + RUBY + "template/gemfiles/modular/debug.gemfile.example" => <<~RUBY + # frozen_string_literal: true + + dependency_root = ENV["DEPENDENCY_ROOT"].to_s.strip + + if !dependency_root.empty? + %w[ + debug + example-gem + ].each do |gem_name| + gem gem_name, path: File.join(dependency_root, gem_name) + end + else + gem "example-gem", ">= 1.0" + end + RUBY + }) + + apply = described_class.apply_project(root, env: {}) + report = apply.fetch(:recipe_reports).find do |candidate| + candidate.fetch(:relative_path) == "gemfiles/modular/debug.gemfile" + end + content = report.fetch(:final_content) + + expect(content).to include("debug") + expect(content).not_to match(/^\s+example-gem$/) + expect(content).not_to match(/^\s*gem\s+["']example-gem["']/) + expect(File.read(File.join(root, "gemfiles/modular/debug.gemfile"))).to eq(content) + end + end + + + it "removes gemspec runtime dependencies from modular Gemfile dependency lists" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-modular-gemfile-runtime-dependency", tmp_root) do |root| + write_tree(root, { + "yard-yaml.gemspec" => <<~RUBY, + Gem::Specification.new do |spec| + spec.name = "yard-yaml" + spec.summary = "YARD YAML" + spec.add_dependency("yaml-converter", "~> 0.2") + end + RUBY + ".kettle-jem.yml" => <<~YAML, + templates: + root: template + apply: true + entries: + - gemfiles/modular/documentation.gemfile + files: + gemfiles: + modular: + documentation.gemfile: + strategy: accept_template + YAML + "template/gemfiles/modular/documentation.gemfile.example" => <<~RUBY + # frozen_string_literal: true + + # Documentation + gem "kramdown", "~> 2.5", ">= 2.5.1", require: false + gem "yaml-converter", "~> 0.2", ">= 0.2.3", require: false + gem "yard", "~> 0.9", ">= 0.9.44", require: false + RUBY + }) + + apply = described_class.apply_project(root, env: {}) + report = apply.fetch(:recipe_reports).find do |candidate| + candidate.fetch(:relative_path) == "gemfiles/modular/documentation.gemfile" + end + content = report.fetch(:final_content) + + expect(content).to include('gem "kramdown"') + expect(content).to include('gem "yard"') + expect(content).not_to include('gem "yaml-converter"') + expect(File.read(File.join(root, "gemfiles/modular/documentation.gemfile"))).to eq(content) + end + end + + + it "generates shunted.gemfile entries from resolved development dependency Ruby floors" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + resolver = Class.new do + def versions(gem_name, requirements: nil) + case gem_name + when "debug" + [{number: "1.9.2", ruby_version: ">= 3.3"}] + when "rack-session" + [ + {number: "1.0.1", ruby_version: ">= 2.3"}, + {number: "2.1.2", ruby_version: ">= 2.5"} + ] + when "rake" + [{number: "13.2.1", ruby_version: ">= 2.6"}] + else + [] + end + end + + def min_ruby_version(gem_name, version) + case gem_name + when "debug" + Gem::Version.new("3.3") + when "rack-session" + (version == "1.0.1") ? Gem::Version.new("2.3") : Gem::Version.new("2.5") + else + Gem::Version.new("2.6") + end + end + + def parse_min_ruby(requirement) + Kettle::Jem::RubyGemsResolver.new.parse_min_ruby(requirement) + end + end.new + + Dir.mktmpdir("kettle-jem-shunted-gemfile", tmp_root) do |root| + write_tree(root, { + "example.gemspec" => <<~RUBY, + Gem::Specification.new do |spec| + spec.name = "example" + spec.summary = "Example" + spec.required_ruby_version = ">= 3.2" + spec.add_development_dependency "debug", "~> 1.9" + spec.add_development_dependency "rack-session", ">= 0" + spec.add_development_dependency "rake", "~> 13.0" + end + RUBY + "gemfiles/modular/shunted.gemfile" => <<~RUBY, + # frozen_string_literal: true + + # local notes remain outside the generated block + RUBY + "gemfiles/modular/rack-session/r2.4/v2.0.gemfile" => <<~RUBY + gem "rack-session", "< 2", github: "pboling/rack-session", branch: "fix-missing-rack-session" + RUBY + }) + + apply = described_class.apply_project(root, env: {}, run_options: {rubygems_resolver: resolver}) + report = apply.fetch(:recipe_reports).find do |candidate| + candidate.fetch(:relative_path) == "gemfiles/modular/shunted.gemfile" + end + content = report.fetch(:final_content) + + expect(report.fetch(:request_envelope).fetch(:request).fetch(:provider_family)).to eq("ruby") + expect(report.fetch(:request_envelope).fetch(:request).fetch(:provider_backend)).to eq("ast-crispr-ruby-prism") + expect(report.fetch(:report_envelope).fetch(:report).fetch(:step_reports).first.fetch(:metadata).fetch(:provider_family)).to eq("ruby") + expect(content).to include("# local notes remain outside the generated block") + expect_gem_dependency_declared(content, "debug") + expect(content).not_to include('gem "rack-session"') + expect(content).not_to include('gem "rake"') + expect(File.read(File.join(root, "gemfiles/modular/shunted.gemfile"))).to eq(content) + + described_class.apply_project(root, env: {}, run_options: {rubygems_resolver: resolver}) + reapplied = File.read(File.join(root, "gemfiles/modular/shunted.gemfile")) + expect(reapplied.lines.count { |line| line.include?(Kettle::Jem::MANAGED_BLOCK_OPEN) }).to be <= 1 + expect(reapplied.lines.count { |line| line.include?(Kettle::Jem::MANAGED_BLOCK_CLOSE) }).to be <= 1 + expect(reapplied).to include("# local notes remain outside the generated block") + + described_class.apply_project(root, env: {}, run_options: {rubygems_resolver: resolver}) + expect(File.read(File.join(root, "gemfiles/modular/shunted.gemfile"))).to eq(reapplied) + end + end + +end diff --git a/gems/kettle-jem/spec/integration/config_metadata_template_spec.rb b/gems/kettle-jem/spec/integration/config_metadata_template_spec.rb new file mode 100644 index 000000000..20b9c6120 --- /dev/null +++ b/gems/kettle-jem/spec/integration/config_metadata_template_spec.rb @@ -0,0 +1,2461 @@ +# frozen_string_literal: true + +RSpec.describe Kettle::Jem, "configuration and metadata templating" do + include_context "with isolated kettle-jem environment" + include_context "with kettle-jem fixture contracts" + + it "projects project runtime template tokens" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-project-runtime-token-slice", tmp_root) do |root| + write_tree(root, { + "example-gem.gemspec" => <<~RUBY, + Gem::Specification.new do |spec| + spec.name = "example-gem" + spec.version = "2.4.6" + spec.summary = "Example gem" + spec.authors = ["Jane Q Public"] + spec.email = ["jane@example.test"] + spec.required_ruby_version = ">= 3.2" + spec.metadata["source_code_uri"] = "https://github.com/acme/example-gem" + end + RUBY + ".kettle-jem.yml" => <<~YAML, + project_emoji: "🫖" + min_divergence_threshold: "{KJ|MIN_DIVERGENCE_THRESHOLD}" + defaults: + freeze_token: custom-freeze + templates: + root: template + apply: true + entries: + - README.md + YAML + "template/README.md.example" => <<~MARKDOWN + Gem shield: {KJ|GEM_SHIELD} + Major: {KJ|GEM_MAJOR} + GitHub org: {KJ|GH_ORG} + Namespace shield: {KJ|NAMESPACE_SHIELD} + Namespace badge: https://img.shields.io/badge/namespace-{KJ|NAMESPACE_SHIELD}-3C2D2D.svg + Min dev Ruby: {KJ|MIN_DEV_RUBY} + Freeze: {KJ|FREEZE_TOKEN} + Version: {KJ|KETTLE_JEM_VERSION} + Date: {KJ|TEMPLATE_RUN_DATE} + Year: {KJ|TEMPLATE_RUN_YEAR} + Dev gem: {KJ|KETTLE_DEV_GEM} + YARD: {KJ|YARD_HOST} + Homepage URI: {KJ|HOMEPAGE_URI} + Emoji: {KJ|PROJECT_EMOJI} + Divergence: {KJ|MIN_DIVERGENCE_THRESHOLD} + MARKDOWN + }) + + plan = described_class.plan_project( + root, + env: { + "KJ_MIN_DIVERGENCE_THRESHOLD" => "12", + "KJ_YARD_HOST" => "docs.example.test", + "KJ_HOMEPAGE_URI" => "https://homepage.example.test" + } + ) + template_report = plan[:recipe_reports].find do |report| + report.fetch(:recipe_name) == "template_source_application_README_md" + end + final_content = template_report.fetch(:final_content) + expect(final_content).to include("Gem shield: example--gem") + expect(final_content).to include("Major: 2") + expect(final_content).to include("GitHub org: acme") + expect(final_content).to include("Namespace shield: Example::Gem") + expect(final_content).to include("Namespace badge: https://img.shields.io/badge/namespace-Example::Gem-3C2D2D.svg") + expect(final_content).to include("Min dev Ruby: 3.2") + expect(final_content).to include("Freeze: custom-freeze") + expect(final_content).to include("Version: #{Kettle::Jem::VERSION}") + expect(final_content).to include("Date: #{Time.now.strftime("%Y-%m-%d")}") + expect(final_content).to include("Year: #{Time.now.year}") + expect(final_content).to include("Dev gem: kettle-dev") + expect(final_content).to include("YARD: docs.example.test") + expect(final_content).to include("Homepage URI: https://homepage.example.test") + expect(final_content).to include("Emoji: 🫖") + expect(final_content).to include("Divergence: 12") + expect(template_report.dig(:metadata, :template_tokens)).to include( + "KJ|FREEZE_TOKEN" => "custom-freeze", + "KJ|GEM_MAJOR" => "2", + "KJ|GEM_SHIELD" => "example--gem", + "KJ|GH_ORG" => "acme", + "KJ|MIN_DEV_RUBY" => "3.2", + "KJ|MIN_DIVERGENCE_THRESHOLD" => "12", + "KJ|NAMESPACE_SHIELD" => "Example::Gem", + "KJ|PROJECT_EMOJI" => "🫖", + "KJ|HOMEPAGE_URI" => "https://homepage.example.test", + "KJ|YARD_HOST" => "docs.example.test" + ) + end + end + + + it "honors configured project runtime URI tokens when ENV is absent" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-project-runtime-uri-slice", tmp_root) do |root| + write_tree(root, { + "example-gem.gemspec" => <<~RUBY, + Gem::Specification.new do |spec| + spec.name = "example-gem" + spec.summary = "Example gem" + spec.authors = ["Jane Q Public"] + spec.email = ["jane@example.test"] + spec.metadata["source_code_uri"] = "https://github.com/acme/example-gem" + end + RUBY + ".kettle-jem.yml" => <<~YAML, + project_emoji: "🫖" + yard_host: docs.config.test + homepage_uri: https://homepage.config.test + templates: + root: template + apply: true + entries: + - README.md + YAML + "template/README.md.example" => "YARD: {KJ|YARD_HOST}\nHomepage URI: {KJ|HOMEPAGE_URI}\n" + }) + + plan = described_class.plan_project(root, env: {}) + template_report = plan[:recipe_reports].find do |report| + report.fetch(:recipe_name) == "template_source_application_README_md" + end + + expect(template_report.fetch(:final_content)).to eq("YARD: docs.config.test\nHomepage URI: https://homepage.config.test\n") + expect(template_report.dig(:metadata, :template_tokens)).to include( + "KJ|HOMEPAGE_URI" => "https://homepage.config.test", + "KJ|YARD_HOST" => "docs.config.test" + ) + end + end + + + it "syncs ENV-backed values back into kettle config during templating" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-env-config-sync", tmp_root) do |root| + write_tree(root, { + "example-gem.gemspec" => <<~RUBY, + Gem::Specification.new do |spec| + spec.name = "example-gem" + spec.summary = "Example gem" + spec.authors = ["Jane Q Public"] + spec.email = ["jane@example.test"] + spec.metadata["source_code_uri"] = "https://github.com/acme/example-gem" + end + RUBY + ".structuredmerge/kettle-jem.yml" => <<~YAML + project_emoji: "🫖" + min_divergence_threshold: 5 # ENV override: KJ_MIN_DIVERGENCE_THRESHOLD + yard_host: docs.config.test # ENV override: KJ_YARD_HOST + homepage_uri: https://homepage.config.test # ENV override: KJ_HOMEPAGE_URI + kettle-jem: + version: "1.0.0" + tokens: + forge: + gh_user: config-user # GitHub username only. ENV: KJ_GH_USER + templates: + root: packaged + apply: true + entries: + - .structuredmerge/kettle-jem.yml + YAML + }) + + apply = described_class.apply_project( + root, + env: { + "KJ_MIN_DIVERGENCE_THRESHOLD" => "12", + "KJ_YARD_HOST" => "docs.env.test", + "KJ_HOMEPAGE_URI" => "https://homepage.env.test", + "KJ_GH_USER" => "env-user" + }, + run_options: {skip_commit: true} + ) + report = apply.fetch(:recipe_reports).find { |candidate| candidate.fetch(:relative_path) == described_class::KETTLE_CONFIG_PATH } + config = YAML.safe_load(report.fetch(:final_content)) + + expect(config.fetch("min_divergence_threshold")).to eq(12) + expect(config.fetch("yard_host")).to eq("docs.env.test") + expect(config.fetch("homepage_uri")).to eq("https://homepage.env.test") + expect(config.dig("kettle-jem", "version")).to eq(Kettle::Jem::Version::VERSION) + expect(config.dig("tokens", "forge", "gh_user")).to eq("env-user") + expect(report.fetch(:final_content)).to include("min_divergence_threshold: 12 # ENV override: KJ_MIN_DIVERGENCE_THRESHOLD") + expect(report.fetch(:final_content)).to include('yard_host: "docs.env.test" # ENV override: KJ_YARD_HOST') + expect(report.fetch(:final_content)).to include('homepage_uri: "https://homepage.env.test" # ENV override: KJ_HOMEPAGE_URI') + expect(report.fetch(:final_content)).to include(%(version: "#{Kettle::Jem::Version::VERSION}")) + expect(report.fetch(:final_content)).to include('gh_user: "env-user" # GitHub username only. ENV: KJ_GH_USER') + expect(File.read(File.join(root, described_class::KETTLE_CONFIG_PATH))).to eq(report.fetch(:final_content)) + end + end + + + it "prunes legacy kettle config keys after their replacement exists" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-legacy-config-key-cleanup", tmp_root) do |root| + write_tree(root, { + "example-gem.gemspec" => <<~RUBY, + Gem::Specification.new do |spec| + spec.name = "example-gem" + spec.summary = "Example gem" + spec.authors = ["Jane Q Public"] + spec.email = ["jane@example.test"] + end + RUBY + ".kettle-jem.yml" => <<~YAML + project_emoji: "🫖" + # README top logo mode. + # Controls whether the generated README header includes the GitHub org logo, + # the project logo, or both after the shared Galtzo and ruby-lang logos. + # Supported values: org, project, org_and_project + # Default (when key is absent): org_and_project + readme: + top_logos: related-org,ruby,org + top_logo_mode: org_and_project + templates: + root: packaged + apply: true + entries: + - .structuredmerge/kettle-jem.yml + YAML + }) + + apply = described_class.apply_project(root, env: {}, run_options: {skip_commit: true}) + report = apply.fetch(:recipe_reports).find { |candidate| candidate.fetch(:relative_path) == ".structuredmerge/kettle-jem.yml" } + config = YAML.safe_load(report.fetch(:final_content)) + + expect(config.dig("readme", "top_logos")).to eq("org") + expect(config.dig("readme", "h2_synopsis_logos")).to eq("related-org,ruby") + expect(config.fetch("readme")).not_to have_key("top_logo_mode") + expect(report.fetch(:final_content)).not_to include("top_logo_mode:") + expect(report.fetch(:final_content)).to include("# README top logos.") + expect(report.fetch(:final_content)).to include("# top_logos render above the title; h2_synopsis_logos render inline with the Synopsis H2.") + expect(report.fetch(:final_content)).to include("# Supported values: related-org, ruby, org, project") + expect(File.read(File.join(root, ".structuredmerge/kettle-jem.yml"))).to eq(report.fetch(:final_content)) + end + end + + + it "migrates legacy-only README top logo mode config" do + content = <<~YAML + readme: + top_logo_mode: org + YAML + + migrated = described_class.send(:sync_kettle_config_env_overrides, content, {}) + config = YAML.safe_load(migrated) + + expect(config.dig("readme", "top_logos")).to eq("org") + expect(config.dig("readme", "h2_synopsis_logos")).to eq("related-org,ruby") + expect(config.fetch("readme")).not_to have_key("top_logo_mode") + end + + + it "migrates comma-separated legacy README top logo mode config" do + content = <<~YAML + readme: + top_logo_mode: org, project + YAML + + migrated = described_class.send(:sync_kettle_config_env_overrides, content, {}) + config = YAML.safe_load(migrated) + + expect(config.dig("readme", "top_logos")).to eq("org,project") + expect(config.dig("readme", "h2_synopsis_logos")).to eq("related-org,ruby") + expect(config.fetch("readme")).not_to have_key("top_logo_mode") + end + + + it "preserves explicit kettle config values while refreshing the config template" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-config-destination-values", tmp_root) do |root| + write_tree(root, { + "example-gem.gemspec" => <<~RUBY, + Gem::Specification.new do |spec| + spec.name = "example-gem" + spec.summary = "Example gem" + spec.authors = ["Jane Q Public"] + spec.email = ["jane@example.test"] + end + RUBY + ".structuredmerge/kettle-jem.yml" => <<~YAML + defaults: + preference: destination + add_template_only_nodes: true + project_emoji: "🫖" + repository: + topology: standalone + readme: + top_logos: org,project + h2_synopsis_logos: related-org,ruby + templates: + root: packaged + apply: true + entries: + - .structuredmerge/kettle-jem.yml + YAML + }) + + apply = described_class.apply_project(root, env: {}, run_options: {skip_commit: true}) + report = apply.fetch(:recipe_reports).find { |candidate| candidate.fetch(:relative_path) == ".structuredmerge/kettle-jem.yml" } + config = YAML.safe_load(report.fetch(:final_content)) + + expect(config.fetch("project_emoji")).to eq("🫖") + expect(config.dig("repository", "topology")).to eq("standalone") + expect(config.dig("readme", "top_logos")).to eq("org,project") + expect(config.dig("readme", "h2_synopsis_logos")).to eq("related-org,ruby") + expect(File.read(File.join(root, ".structuredmerge/kettle-jem.yml"))).to eq(report.fetch(:final_content)) + end + end + + + it "normalizes combined top logo config when Synopsis H2 logos already exist" do + content = <<~YAML + readme: + top_logos: related-org,ruby,org + h2_synopsis_logos: related-org,ruby + YAML + + migrated = described_class.send(:sync_kettle_config_env_overrides, content, {}) + config = YAML.safe_load(migrated) + + expect(config.dig("readme", "top_logos")).to eq("org") + expect(config.dig("readme", "h2_synopsis_logos")).to eq("related-org,ruby") + end + + + it "derives source and forge tokens from git origin when gemspec metadata is absent" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-git-origin-token-slice", tmp_root) do |root| + write_tree(root, { + "example.gemspec" => <<~RUBY, + Gem::Specification.new do |spec| + spec.name = "example" + spec.summary = "Example gem" + end + RUBY + ".kettle-jem.yml" => <<~YAML, + templates: + root: template + apply: true + entries: + - README.md + YAML + "template/README.md.example" => <<~MARKDOWN + Source: {KJ|GH_ORG} + GitHub user: {KJ|GH:USER} + MARKDOWN + }) + expect(system("git", "-C", root, "init", "-q")).to be(true) + expect(system("git", "-C", root, "remote", "add", "origin", "git@github.com:acme/example.git")).to be(true) + + plan = described_class.plan_project(root, env: {}) + template_report = plan[:recipe_reports].find do |report| + report.fetch(:recipe_name) == "template_source_application_README_md" + end + expect(plan.dig(:facts, :package, :source_url)).to eq("https://github.com/acme/example") + expect(template_report.fetch(:final_content)).to include("Source: acme") + expect(template_report.fetch(:final_content)).to include("GitHub user: acme") + expect(template_report.dig(:metadata, :template_tokens)).to include( + "KJ|GH_ORG" => "acme", + "KJ|GH:USER" => "acme" + ) + end + end + + + it "prefers git origin over stale generated gemspec homepage metadata" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-stale-homepage-token-slice", tmp_root) do |root| + write_tree(root, { + "example.gemspec" => <<~RUBY, + Gem::Specification.new do |spec| + spec.name = "example" + spec.version = "1.2.3" + spec.summary = "Example gem" + spec.homepage = "https://github.com/pboling/example" + spec.metadata["source_code_uri"] = "\#{spec.homepage}/tree/v\#{spec.version}" + end + RUBY + ".kettle-jem.yml" => <<~YAML, + templates: + root: template + apply: true + entries: + - example.gemspec + - README.md + YAML + "template/example.gemspec.example" => <<~RUBY, + Gem::Specification.new do |spec| + spec.name = "example" + spec.summary = "Example gem" + spec.homepage = "{KJ|README:GH_REPOSITORY_URL}" + end + RUBY + "template/README.md.example" => <<~MARKDOWN + Source: {KJ|GH_ORG} + GitHub user: {KJ|GH:USER} + Repository: {KJ|README:GH_REPOSITORY_URL} + MARKDOWN + }) + expect(system("git", "-C", root, "init", "-q")).to be(true) + expect(system("git", "-C", root, "remote", "add", "origin", "git@github.com:rubocop-lts/example.git")).to be(true) + + plan = described_class.plan_project(root, env: {}) + template_report = plan[:recipe_reports].find do |report| + report.fetch(:recipe_name) == "template_source_application_README_md" + end + + expect(plan.dig(:facts, :package, :source_url)).to eq("https://github.com/rubocop-lts/example") + expect(plan.dig(:facts, :package, :homepage_url)).to eq("https://github.com/rubocop-lts/example") + expect(template_report.fetch(:final_content)).to include("Source: rubocop-lts") + expect(template_report.fetch(:final_content)).to include("GitHub user: rubocop-lts") + expect(template_report.fetch(:final_content)).to include("Repository: https://github.com/rubocop-lts/example") + + apply = described_class.apply_project(root, env: {}) + expect(apply[:changed_files]).to include("example.gemspec") + expect(File.read(File.join(root, "example.gemspec"))).to include('spec.homepage = "https://github.com/rubocop-lts/example"') + end + end + + + it "merges destination gemspec files entries into the template files assignment" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-gemspec-files-preserve", tmp_root) do |root| + write_tree(root, { + "example.gemspec" => <<~RUBY, + Gem::Specification.new do |spec| + spec.name = "example" + spec.summary = "Example gem" + spec.files = Dir[ + "lib/**/*.rb", + "rubocop-lts/**/*.yml", + "README.md" + ] + end + RUBY + ".kettle-jem.yml" => <<~YAML, + templates: + root: template + apply: true + entries: + - example.gemspec + YAML + "template/example.gemspec.example" => <<~RUBY + Gem::Specification.new do |spec| + enumerate_package_files = lambda do |root| + Dir.glob(File.join(root, "**", "*"), File::FNM_DOTMATCH).select do |path| + File.file?(path) && ![".", ".."].include?(File.basename(path)) + end + end + + spec.name = "example" + spec.summary = "Template summary" + spec.files = [ + *enumerate_package_files.call("lib"), + *enumerate_package_files.call("exe"), + *enumerate_package_files.call("certs"), + *enumerate_package_files.call("sig") + ] + end + RUBY + }) + + plan = described_class.plan_project(root, env: {}) + template_report = plan[:recipe_reports].find do |report| + report.fetch(:recipe_name) == "template_source_application_example_gemspec" + end + final_content = template_report.fetch(:final_content) + + expect(Prism.parse(final_content)).to be_success + expect(final_content).to include("spec.files = Dir[") + expect(final_content).to include("] + [") + expect(final_content).to include('"rubocop-lts/**/*.yml"') + expect(final_content).to include('*enumerate_package_files.call("exe")') + expect(final_content.index('"rubocop-lts/**/*.yml"')).to be < final_content.index("] + [") + expect(final_content.index("] + [")).to be < final_content.index('*enumerate_package_files.call("lib")') + expect(final_content.scan(/^\s*"lib\/\*\*\/\*\.rb",/).size).to eq(1) + end + end + + + it "replaces old broad generated gemspec manifests with the minimal package manifest" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-gemspec-files-minimal-package", tmp_root) do |root| + write_tree(root, { + "example.gemspec" => <<~RUBY, + Gem::Specification.new do |spec| + spec.name = "example" + spec.summary = "Example gem" + spec.authors = ["Jane Q Public"] + spec.email = ["jane@example.test"] + spec.licenses = ["MIT"] + + enumerate_package_files = lambda do |root| + Dir.glob(File.join(root, "**", "*"), File::FNM_DOTMATCH).select do |path| + File.file?(path) && ![".", ".."].include?(File.basename(path)) + end + end + + # Specify which files are part of the released package. + spec.files = [ + "LICENSE.md", + "MIT.md", + "CITATION.cff", + "CODE_OF_CONDUCT.md", + "CONTRIBUTING.md", + "FUNDING.md", + "README.md", + "RUBOCOP.md", + "SECURITY.md", + "config/runtime.yml", + *enumerate_package_files.call("lib"), + *enumerate_package_files.call("exe"), + *enumerate_package_files.call("certs"), + *enumerate_package_files.call("sig") + ] + + spec.extra_rdoc_files = Dir[ + "CHANGELOG.md", + "CITATION.cff", + "CODE_OF_CONDUCT.md", + "CONTRIBUTING.md", + "FUNDING.md", + "LICENSE.md", + "README.md", + "RUBOCOP.md", + "SECURITY.md" + ] + end + RUBY + ".kettle-jem.yml" => <<~YAML + tokens: + author: + orcid: "0000-0000-0000-0000" + templates: + root: packaged + apply: true + YAML + }) + + apply = described_class.apply_project(root, env: {}) + gemspec = File.read(File.join(root, "example.gemspec")) + files_assignment = described_class.gemspec_assignment_records(gemspec, receiver: "spec").find do |record| + record.fetch(:field) == "files" + end.fetch(:source) + + expect(apply[:changed_files]).to include("example.gemspec") + expect(Prism.parse(gemspec)).to be_success + expect(gemspec).to include("CHANGELOG.md") + expect(gemspec).to include("LICENSE.md") + expect(gemspec).to include("README.md") + expect(gemspec).to include("sig/example.rbs") + expect(files_assignment).to include("*package_metadata_files") + expect(files_assignment).to include('"config/runtime.yml"') + expect(files_assignment).to include('*enumerate_package_files.call("lib")') + expect(files_assignment).to include('*enumerate_package_files.call("exe")') + expect(files_assignment).not_to include('"LICENSE.md"') + expect(files_assignment).not_to include('"README.md"') + expect(files_assignment).not_to include("MIT.md") + expect(files_assignment).not_to include("CITATION.cff") + expect(files_assignment).not_to include("CODE_OF_CONDUCT.md") + expect(files_assignment).not_to include("CONTRIBUTING.md") + expect(files_assignment).not_to include("FUNDING.md") + expect(files_assignment).not_to include("RUBOCOP.md") + expect(files_assignment).not_to include("SECURITY.md") + expect(files_assignment).not_to include('*enumerate_package_files.call("certs")') + expect(files_assignment).not_to include('*enumerate_package_files.call("sig")') + expect(gemspec).not_to include("spec.extra_rdoc_files") + end + end + + + it "merges recursive config package files without preserving stale frozen files overrides" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-gemspec-files-recursive-config", tmp_root) do |root| + write_tree(root, { + "standard-rubocop-lts.gemspec" => <<~RUBY, + Gem::Specification.new do |spec| + spec.name = "standard-rubocop-lts" + spec.files = Dir[ + "config/**/*.yml", + "lib/**/*.rb", + "README.md" + ] + + # kettle-jem:freeze + spec.files = Dir[ + "config/*.yml", + "lib/**/*.rb", + "README.md" + ] + # kettle-jem:unfreeze + end + RUBY + ".kettle-jem.yml" => <<~YAML, + templates: + root: template + apply: true + entries: + - standard-rubocop-lts.gemspec + YAML + "template/standard-rubocop-lts.gemspec.example" => <<~RUBY + Gem::Specification.new do |spec| + enumerate_package_files = lambda do |root| + Dir.glob(File.join(root, "**", "*"), File::FNM_DOTMATCH).select do |path| + File.file?(path) && ![".", ".."].include?(File.basename(path)) + end + end + + spec.name = "standard-rubocop-lts" + spec.files = [ + *enumerate_package_files.call("lib"), + *enumerate_package_files.call("exe"), + *enumerate_package_files.call("certs"), + *enumerate_package_files.call("sig") + ] + end + RUBY + }) + + plan = described_class.plan_project(root, env: {}) + template_report = plan[:recipe_reports].find do |report| + report.fetch(:recipe_name) == "template_source_application_standard_rubocop_lts_gemspec" + end + final_content = template_report.fetch(:final_content) + + expect(Prism.parse(final_content)).to be_success + expect(final_content.scan(/^\s*spec\.files\s*=/).size).to eq(1) + expect(final_content).to include('"config/**/*.yml"') + expect(final_content).to include('*enumerate_package_files.call("lib")') + expect(final_content).not_to include("# kettle-jem:freeze") + expect(final_content).not_to include('"config/*.yml"') + end + end + + + it "unions literal Dir gemspec files assignments from destination and template" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-gemspec-files-dir-union", tmp_root) do |root| + write_tree(root, { + "example.gemspec" => <<~RUBY, + Gem::Specification.new do |spec| + spec.name = "example" + spec.files = Dir[ + "sig/**/*.rbs", + "rubocop-lts/**/*.yml", + ] + end + RUBY + ".kettle-jem.yml" => <<~YAML, + templates: + root: template + apply: true + entries: + - example.gemspec + YAML + "template/example.gemspec.example" => <<~RUBY + Gem::Specification.new do |spec| + spec.name = "example" + spec.files = Dir[ + "lib/**/*.rb", + "sig/**/*.rbs", + "README.md", + ] + end + RUBY + }) + + plan = described_class.plan_project(root, env: {}) + template_report = plan[:recipe_reports].find do |report| + report.fetch(:recipe_name) == "template_source_application_example_gemspec" + end + final_content = template_report.fetch(:final_content) + + expect(Prism.parse(final_content)).to be_success + expect(final_content).to include("spec.files = Dir[") + expect(final_content.index('"rubocop-lts/**/*.yml"')).to be < final_content.index('"lib/**/*.rb"') + expect(final_content.scan('"sig/**/*.rbs"').size).to eq(1) + expect(final_content).to include('"README.md"') + end + end + + + it "fails hard on unsupported custom nonliteral destination gemspec files assignments" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-gemspec-files-custom", tmp_root) do |root| + write_tree(root, { + "example.gemspec" => <<~RUBY, + Gem::Specification.new do |spec| + spec.name = "example" + enumerate_package_files = lambda do |root| + Dir.glob(File.join(root, "**", "*"), File::FNM_DOTMATCH).select do |path| + File.file?(path) && ![".", ".."].include?(File.basename(path)) + end + end + spec.files = [ + *Dir["lib/**/*.rb"], + *enumerate_package_files.call("template"), + *Dir["sig/**/*.rbs"], + ] + end + RUBY + ".kettle-jem.yml" => <<~YAML, + templates: + root: template + apply: true + entries: + - example.gemspec + YAML + "template/example.gemspec.example" => <<~RUBY + Gem::Specification.new do |spec| + spec.name = "example" + spec.files = Dir[ + "lib/**/*.rb", + "sig/**/*.rbs", + ] + end + RUBY + }) + + expect do + described_class.plan_project(root, env: {}) + end.to raise_error(Kettle::Jem::Error, /Unsupported gemspec spec\.files assignment/) + end + end + + + it "preserves destination splat files assignments without appending duplicate template splats" do + template = <<~RUBY + Gem::Specification.new do |spec| + spec.name = "example" + # Specify which files are part of the released package. + spec.files = [ + # Root license files + "LICENSE.md", + "MIT.md", + # Code / tasks / data (NOTE: exe/ is specified via spec.bindir and spec.executables below) + *enumerate_package_files.call("lib"), + # Executables and executable support scripts + *enumerate_package_files.call("exe"), + # Public certs for gem signing + *enumerate_package_files.call("certs"), + # Signatures + *enumerate_package_files.call("sig") + ] + end + RUBY + destination = <<~RUBY + Gem::Specification.new do |spec| + spec.name = "example" + enumerate_package_files = lambda do |root| + Dir.glob(File.join(root, "**", "*"), File::FNM_DOTMATCH).select do |path| + File.file?(path) && ![".", ".."].include?(File.basename(path)) + end + end + + # Specify which files are part of the released package. + spec.files = [ + # Code / tasks / data (NOTE: exe/ is specified via spec.bindir and spec.executables below) + *enumerate_package_files.call('lib'), + # Executables and executable support scripts + *enumerate_package_files.call('exe'), + # Public certs for gem signing + *enumerate_package_files.call('certs'), + # Signatures + *enumerate_package_files.call('sig') + ] + end + RUBY + + merged = described_class.merge_gemspec_template_source(template, destination, facts: {package: {name: "example"}}) + + expect(Prism.parse(merged)).to be_success + expect(merged.scan(/^\s*spec\.files\s*=/).size).to eq(1) + expect(merged).to include('"LICENSE.md"') + expect(merged).to include('"MIT.md"') + lib_splat_index = merged =~ /\*enumerate_package_files\.call\(["']lib["']\)/ + expect(lib_splat_index).not_to be_nil + expect(merged.index('"MIT.md"')).to be < lib_splat_index + expect(merged).to match(/^\s*\*enumerate_package_files\.call\(["']sig["']\)\n/) + expect(merged.scan(/\*enumerate_package_files\.call\(["']lib["']\)/).size).to eq(1) + end + + + it "supports the generated Dir plus Array gemspec files assignment shape" do + template = <<~RUBY + Gem::Specification.new do |spec| + spec.name = "example" + # Specify which files are part of the released package. + spec.files = [ + # Root license files + "LICENSE.md", + "MIT.md", + # Code / tasks / data (NOTE: exe/ is specified via spec.bindir and spec.executables below) + *enumerate_package_files.call("lib"), + # Executables and executable support scripts + *enumerate_package_files.call("exe"), + # Public certs for gem signing + *enumerate_package_files.call("certs"), + # Signatures + *enumerate_package_files.call("sig") + ] + end + RUBY + destination = <<~RUBY + Gem::Specification.new do |spec| + spec.name = "example" + enumerate_package_files = lambda do |root| + Dir.glob(File.join(root, "**", "*"), File::FNM_DOTMATCH).select do |path| + File.file?(path) && ![".", ".."].include?(File.basename(path)) + end + end + + # Specify which files are part of the released package. + spec.files = Dir[ + # Splats (alphabetical) + "lib/**/*.rb" + ] + [ + # Code / tasks / data (NOTE: exe/ is specified via spec.bindir and spec.executables below) + *enumerate_package_files.call("lib"), + # Executables and executable support scripts + *enumerate_package_files.call("exe"), + # Public certs for gem signing + *enumerate_package_files.call("certs"), + # Signatures + *enumerate_package_files.call("sig") + ] + end + RUBY + + merged = described_class.merge_gemspec_template_source(template, destination, facts: {package: {name: "example"}}) + + expect(Prism.parse(merged)).to be_success + expect(merged).to include("spec.files = Dir[") + expect(merged).to include("] + [") + expect(merged).to include('"lib/**/*.rb"') + expect(merged).to include('"MIT.md"') + expect(merged.index('"lib/**/*.rb"')).to be < merged.index("] + [") + expect(merged.index('"MIT.md"')).to be > merged.index("] + [") + expect(merged.scan('*enumerate_package_files.call("lib")').size).to eq(1) + expect(merged.scan("spec.files =").size).to eq(1) + end + + + it "projects README top logo template tokens" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-readme-logo-token-slice", tmp_root) do |root| + write_tree(root, { + "example-gem.gemspec" => <<~RUBY, + Gem::Specification.new do |spec| + spec.name = "example-gem" + spec.summary = "Example gem" + spec.metadata["source_code_uri"] = "https://github.com/acme/example-gem" + end + RUBY + ".kettle-jem.yml" => <<~YAML, + templates: + root: template + apply: true + entries: + - README.md + YAML + "template/README.md.example" => <<~MARKDOWN + Row: + {KJ|README:TOP_LOGO_ROW} + Synopsis: + {KJ|README:H2_SYNOPSIS_LOGO_ROW} + Refs: + {KJ|README:TOP_LOGO_REFS} + MARKDOWN + }) + + plan = described_class.plan_project(root, env: {}) + template_report = plan[:recipe_reports].find do |report| + report.fetch(:recipe_name) == "template_source_application_README_md" + end + final_content = template_report.fetch(:final_content) + expect(final_content).to include("Galtzo FLOSS Logo") + expect(final_content).to include("ruby-lang Logo") + expect(final_content).to include(%(acme Logo by Aboling0, CC BY-SA 4.0)) + expect(final_content).to include(%(example-gem Logo by Aboling0, CC BY-SA 4.0)) + expect(final_content).to include(%(Galtzo FLOSS Logo by Aboling0, CC BY-SA 4.0)) + expect(final_content).to include(%(ruby-lang Logo, Yukihiro Matsumoto, Ruby Visual Identity Team, CC BY-SA 2.5)) + expect(final_content).not_to include("[🖼️acme-example-gem]:") + expect(template_report.dig(:metadata, :template_tokens)).to include( + "KJ|README:TOP_LOGO_REFS" => "", + "KJ|README:TOP_LOGO_ROW" => a_string_including("example-gem Logo by Aboling0"), + "KJ|README:H2_SYNOPSIS_LOGO_ROW" => a_string_including("ruby-lang Logo") + ) + end + end + + + it "allows README logo options to override rendered widths" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-readme-logo-width-token-slice", tmp_root) do |root| + write_tree(root, { + "example-gem.gemspec" => <<~RUBY, + Gem::Specification.new do |spec| + spec.name = "example-gem" + spec.summary = "Example gem" + spec.metadata["source_code_uri"] = "https://github.com/acme/example-gem" + end + RUBY + ".kettle-jem.yml" => <<~YAML, + readme: + top_logos: org|96px + h2_synopsis_logos: ruby|12% + templates: + root: template + apply: true + entries: + - README.md + YAML + "template/README.md.example" => <<~MARKDOWN + Row: + {KJ|README:TOP_LOGO_ROW} + Synopsis: + {KJ|README:H2_SYNOPSIS_LOGO_ROW} + MARKDOWN + }) + + plan = described_class.plan_project(root, env: {}) + template_report = plan[:recipe_reports].find do |report| + report.fetch(:recipe_name) == "template_source_application_README_md" + end + final_content = template_report.fetch(:final_content) + + expect(final_content).to include(%(acme Logo by Aboling0, CC BY-SA 4.0)) + expect(final_content).to include(%(ruby-lang Logo, Yukihiro Matsumoto, Ruby Visual Identity Team, CC BY-SA 2.5)) + end + end + + + it "renders configured corporate sponsor logos near the top of README" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-readme-sponsor-token-slice", tmp_root) do |root| + write_tree(root, { + "example-gem.gemspec" => <<~RUBY, + Gem::Specification.new do |spec| + spec.name = "example-gem" + spec.summary = "Example gem" + spec.metadata["source_code_uri"] = "https://github.com/acme/example-gem" + end + RUBY + ".kettle-jem.yml" => <<~YAML, + readme: + corporate_sponsors: + - name: Example & Sons + url: https://example.com/sponsor?from=kettle&level=gold + img_src: https://example.com/logo.svg?badge=1&size=small + templates: + root: template + apply: true + entries: + - README.md + YAML + "template/README.md.example" => <<~MARKDOWN + Top funding row. + {KJ|README:CORPORATE_SPONSORS} + + ## 🦷 FLOSS Funding + MARKDOWN + }) + + plan = described_class.plan_project(root, env: {}) + template_report = plan[:recipe_reports].find do |report| + report.fetch(:recipe_name) == "template_source_application_README_md" + end + final_content = template_report.fetch(:final_content) + expected_sponsor_row = [ + %(

        Corporate sponsor: ), + %(Example & Sons), + %( Become a sponsor

        ) + ].join + + expect(final_content).to include(expected_sponsor_row) + expect(template_report.dig(:metadata, :template_tokens)).to include( + "KJ|README:CORPORATE_SPONSORS" => a_string_including("Corporate sponsor:") + ) + end + end + + + it "renders corporate sponsors inherited from kettle-family environment" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-readme-family-sponsor-token-slice", tmp_root) do |root| + sponsors_json = JSON.generate([ + { + "name" => "Family Sponsor", + "url" => "https://family.example", + "img_src" => "https://family.example/logo.svg" + } + ]) + write_tree(root, { + "example-gem.gemspec" => <<~RUBY, + Gem::Specification.new do |spec| + spec.name = "example-gem" + spec.summary = "Example gem" + spec.metadata["source_code_uri"] = "https://github.com/acme/example-gem" + end + RUBY + ".kettle-jem.yml" => <<~YAML, + templates: + root: template + apply: true + entries: + - README.md + YAML + "template/README.md.example" => "{KJ|README:CORPORATE_SPONSORS}\n" + }) + + plan = described_class.plan_project( + root, + env: {"KETTLE_JEM_CORPORATE_SPONSORS_JSON" => sponsors_json} + ) + template_report = plan[:recipe_reports].find do |report| + report.fetch(:recipe_name) == "template_source_application_README_md" + end + + expect(template_report.fetch(:final_content)).to include( + %(Family Sponsor) + ) + expect(plan.dig(:facts, :readme_sponsors, :entries)).to eq([ + { + name: "Family Sponsor", + url: "https://family.example", + img_src: "https://family.example/logo.svg" + } + ]) + end + end + + + it "keeps generated Synopsis H2 logo HTML when normalizing existing README headings and prunes stale logo refs" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-readme-synopsis-logo-merge-slice", tmp_root) do |root| + write_tree(root, { + "example-gem.gemspec" => <<~RUBY, + Gem::Specification.new do |spec| + spec.name = "example-gem" + spec.summary = "Example gem" + spec.metadata["source_code_uri"] = "https://github.com/acme/example-gem" + end + RUBY + ".kettle-jem.yml" => <<~YAML, + project_emoji: "🫖" + readme: + top_logos: org + h2_synopsis_logos: related-org,ruby + templates: + root: template + apply: true + entries: + - README.md + YAML + "README.md" => <<~MARKDOWN, + [🖼️galtzo-floss]: https://discord.gg/3qme4XHNKN + [🖼️ruby-lang]: https://ruby-toolbox.com + + # Old Title + + ## 🌻 Synopsis + + Existing synopsis. + MARKDOWN + "template/README.md.example" => <<~MARKDOWN + {KJ|README:TOP_LOGO_ROW} + + {KJ|README:TOP_LOGO_REFS} + + # {KJ|PROJECT_EMOJI} {KJ|NAMESPACE} + + ## 🌻 Synopsis {KJ|README:H2_SYNOPSIS_LOGO_ROW} + MARKDOWN + }) + + apply = described_class.apply_project(root, env: {}, run_options: {skip_commit: true}) + report = apply.fetch(:recipe_reports).find { |candidate| candidate.fetch(:relative_path) == "README.md" } + final_content = report.fetch(:final_content) + + expect(final_content).to include("# 🫖 Example::Gem\n") + expect(final_content).to include("## 🌻 Synopsis ruby-lang Logo,))
+      expect(final_content).not_to include( <<~RUBY, + Gem::Specification.new do |spec| + spec.name = "kettle-jem" + spec.summary = "Kettle gem templater" + spec.metadata["source_code_uri"] = "https://github.com/structuredmerge/kettle-jem" + end + RUBY + ".kettle-jem.yml" => <<~YAML, + readme: + top_logos: project + templates: + root: template + apply: true + entries: + - README.md + YAML + "template/README.md.example" => <<~MARKDOWN + Row: + {KJ|README:TOP_LOGO_ROW} + Refs: + {KJ|README:TOP_LOGO_REFS} + MARKDOWN + }) + expect(system("git", "-C", root, "init", "-q")).to be(true) + expect(system("git", "-C", root, "remote", "add", "origin", "git@github.com:structuredmerge/structuredmerge-ruby.git")).to be(true) + + plan = described_class.plan_project( + gem_root, + env: { + "KETTLE_JEM_TEMPLATE_PROFILE" => "full", + "KJ_REPOSITORY_TOPOLOGY" => "monorepo-subproject" + } + ) + expect(plan.dig(:facts, :template_profile)).to eq("full") + expect(plan.dig(:facts, :repository, :mode)).to eq("monorepo_subproject") + expect(plan.dig(:facts, :readme_logo, :top_logo_row)).to include("structuredmerge/structuredmerge-ruby/kettle-jem/avatar-128px.svg") + expect(plan.dig(:facts, :readme_logo, :top_logo_refs).to_s).to eq("") + end + end + + + it "does not invent a gems path for a monorepo topology when the project is the git root" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-readme-root-monorepo-topology-slice", tmp_root) do |root| + write_tree(root, { + "nomono.gemspec" => <<~RUBY, + Gem::Specification.new do |spec| + spec.name = "nomono" + spec.summary = "Bundler path helper" + spec.metadata["source_code_uri"] = "https://github.com/kettle-dev/nomono" + end + RUBY + ".kettle-jem.yml" => <<~YAML + repository: + topology: monorepo-subproject + templates: + root: template + apply: true + profile: full + entries: + - README.md + YAML + }) + expect(system("git", "-C", root, "init", "-q")).to be(true) + expect(system("git", "-C", root, "remote", "add", "origin", "git@github.com:kettle-dev/nomono.git")).to be(true) + + repository = described_class.send( + :repository_facts, + root, + "https://github.com/kettle-dev/nomono", + package_name: "nomono", + repository_topology: "monorepo-subproject" + ) + tokens = described_class.send(:readme_url_template_tokens, repository, "nomono", "kettle-rb") + + expect(repository[:mode]).to eq("monorepo_subproject") + expect(repository).not_to have_key(:package_path) + expect(tokens.fetch("KJ|README:GL_PACKAGE_SOURCE_URL")).to eq("https://gitlab.com/kettle-dev/nomono") + expect(tokens.fetch("KJ|README:CB_PACKAGE_SOURCE_URL")).to eq("https://codeberg.org/kettle-dev/nomono") + expect(tokens.fetch("KJ|README:GH_PACKAGE_SOURCE_URL")).to eq("https://github.com/kettle-dev/nomono") + expect(tokens.values_at( + "KJ|README:GL_PACKAGE_SOURCE_URL", + "KJ|README:CB_PACKAGE_SOURCE_URL", + "KJ|README:GH_PACKAGE_SOURCE_URL" + ).join("\n")).not_to include("/gems/nomono") + end + end + + + it "projects README logo row entries from named logo options" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-readme-named-logo-options-slice", tmp_root) do |root| + write_tree(root, { + "example-gem.gemspec" => <<~RUBY, + Gem::Specification.new do |spec| + spec.name = "example-gem" + spec.summary = "Example gem" + spec.metadata["source_code_uri"] = "https://github.com/acme/example-gem" + end + RUBY + ".kettle-jem.yml" => <<~YAML, + readme: + top_logos: related-org,ruby,org,project,unknown + templates: + root: template + apply: true + entries: + - README.md + YAML + "template/README.md.example" => <<~MARKDOWN + Row: + {KJ|README:TOP_LOGO_ROW} + Synopsis: + {KJ|README:H2_SYNOPSIS_LOGO_ROW} + Refs: + {KJ|README:TOP_LOGO_REFS} + MARKDOWN + }) + + plan = described_class.plan_project(root, env: {}) + template_report = plan[:recipe_reports].find do |report| + report.fetch(:recipe_name) == "template_source_application_README_md" + end + final_content = template_report.fetch(:final_content) + expect(final_content).to include(%(Galtzo FLOSS Logo by Aboling0, CC BY-SA 4.0)) + expect(final_content).to include(%(ruby-lang Logo, Yukihiro Matsumoto, Ruby Visual Identity Team, CC BY-SA 2.5)) + expect(final_content).to include(%(acme Logo by Aboling0, CC BY-SA 4.0)) + expect(final_content).to include(%(example-gem Logo by Aboling0, CC BY-SA 4.0)) + expect(final_content).not_to include("[🖼️galtzo-floss]:") + expect(final_content).not_to include("[🖼️acme-example-gem]:") + expect(final_content).not_to include("unknown") + end + end + + + it "deduplicates README logos by asset while preserving the related-org link" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-readme-duplicate-logo-assets-slice", tmp_root) do |root| + write_tree(root, { + "turbo_tests2.gemspec" => <<~RUBY, + Gem::Specification.new do |spec| + spec.name = "turbo_tests2" + spec.summary = "Turbo tests" + spec.metadata["source_code_uri"] = "https://github.com/galtzo-floss/turbo_tests2" + end + RUBY + ".kettle-jem.yml" => <<~YAML, + readme: + top_logos: related-org,ruby,org,project + templates: + root: template + apply: true + entries: + - README.md + YAML + "template/README.md.example" => <<~MARKDOWN + Row: + {KJ|README:TOP_LOGO_ROW} + Synopsis: + {KJ|README:H2_SYNOPSIS_LOGO_ROW} + Refs: + {KJ|README:TOP_LOGO_REFS} + MARKDOWN + }) + + plan = described_class.plan_project(root, env: {}) + template_report = plan[:recipe_reports].find do |report| + report.fetch(:recipe_name) == "template_source_application_README_md" + end + final_content = template_report.fetch(:final_content) + expect(final_content).not_to include("[🖼️galtzo-floss]:") + expect(final_content).not_to include("[🖼️galtzo-floss]: https://github.com/galtzo-floss") + expect(final_content.scan("galtzo-floss/avatar-128px.svg").length).to eq(2) + expect(final_content).to include(%(turbo_tests2 Logo by Aboling0, CC BY-SA 4.0)) + end + end + + + it "maps legacy README top logo modes to named logo options" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-readme-legacy-logo-mode-slice", tmp_root) do |root| + write_tree(root, { + "example-gem.gemspec" => <<~RUBY, + Gem::Specification.new do |spec| + spec.name = "example-gem" + spec.summary = "Example gem" + spec.metadata["source_code_uri"] = "https://github.com/acme/example-gem" + end + RUBY + ".kettle-jem.yml" => <<~YAML, + readme: + top_logo_mode: org + templates: + root: template + apply: true + entries: + - README.md + YAML + "template/README.md.example" => <<~MARKDOWN + Row: + {KJ|README:TOP_LOGO_ROW} + Synopsis: + {KJ|README:H2_SYNOPSIS_LOGO_ROW} + MARKDOWN + }) + + plan = described_class.plan_project(root, env: {}) + template_report = plan[:recipe_reports].find do |report| + report.fetch(:recipe_name) == "template_source_application_README_md" + end + final_content = template_report.fetch(:final_content) + expect(final_content).to include("Galtzo FLOSS Logo") + expect(final_content).to include("ruby-lang Logo") + expect(final_content).to include("acme Logo") + expect(final_content).not_to include("example-gem Logo") + end + end + + + it "projects configured README logo row entries by normalized logo type" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-readme-typed-logo-slice", tmp_root) do |root| + write_tree(root, { + "example-gem.gemspec" => <<~RUBY, + Gem::Specification.new do |spec| + spec.name = "example-gem" + spec.summary = "Example gem" + spec.metadata["source_code_uri"] = "https://github.com/acme/example-gem" + end + RUBY + ".kettle-jem.yml" => <<~YAML, + readme: + logo_row: + enabled: true + logos: + - type: language + slug: ruby-lang + alt: Ruby language logo + - type: org + slug: acme + alt: Acme org logo + - type: affiliated_project + slug: tree-sitter/tree-sitter + alt: Tree-sitter project logo + - type: project + slug: acme/ignored + alt: Ignored fourth logo + templates: + root: template + apply: true + entries: + - README.md + YAML + "template/README.md.example" => <<~MARKDOWN + Row: + {KJ|README:TOP_LOGO_ROW} + Refs: + {KJ|README:TOP_LOGO_REFS} + MARKDOWN + }) + + plan = described_class.plan_project(root, env: {}) + template_report = plan[:recipe_reports].find do |report| + report.fetch(:recipe_name) == "template_source_application_README_md" + end + final_content = template_report.fetch(:final_content) + expect(final_content).to include(%(Ruby language Logo, Yukihiro Matsumoto, Ruby Visual Identity Team, CC BY-SA 2.5)) + expect(final_content).to include(%(Acme org Logo by Aboling0, CC BY-SA 4.0)) + expect(final_content).to include(%(Tree-sitter project Logo by Aboling0, CC BY-SA 4.0)) + expect(final_content).to include(%(Ignored fourth Logo by Aboling0, CC BY-SA 4.0)) + end + end + + + it "fails fast when template application leaves unresolved tokens" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-template-unresolved-slice", tmp_root) do |root| + write_tree(root, { + "example.gemspec" => <<~RUBY, + Gem::Specification.new do |spec| + spec.name = "example" + spec.summary = "Example gem" + end + RUBY + ".kettle-jem.yml" => <<~YAML, + templates: + root: template + apply: true + entries: + - README.md + YAML + "template/README.md.example" => <<~MARKDOWN + # {KJ|UNKNOWN} + MARKDOWN + }) + + expect do + described_class.plan_project(root, env: {}) + end.to raise_error(ArgumentError, /unresolved kettle-jem template tokens: \{KJ\|UNKNOWN\}/) + end + end + + + it "reports template checksum drift" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-checksum-drift-slice", tmp_root) do |root| + write_tree(root, { + "templates/README.md.example" => "# Example\n", + "templates/.github/FUNDING.yml.example" => "github: [example]\n", + ".kettle-jem.yml" => <<~YAML + project: example + + kettle-jem: + version: "0.1.0" + checksums: + "README.md.example": "old" + "removed.md.example": "gone" + YAML + }) + + current = described_class::TemplateChecksums.compute(template_root: File.join(root, "templates")) + stored = described_class::TemplateChecksums.load_stored(config_path: File.join(root, ".kettle-jem.yml")) + drift = described_class::TemplateChecksums.diff(current: current, stored: stored) + + expect(current.keys).to eq([".github/FUNDING.yml.example", "README.md.example"]) + expect(drift).to eq( + added: [".github/FUNDING.yml.example"], + changed: ["README.md.example"], + removed: ["removed.md.example"] + ) + expect(described_class::TemplateChecksums.diff_count(drift)).to eq(3) + expect(described_class::TemplateChecksums.summary(drift)).to eq( + "3 template file(s) since last run: 1 added, 1 changed, 1 removed" + ) + expect(described_class::TemplateChecksums.detail_lines(drift)).to eq([ + " + .github/FUNDING.yml.example", + " ~ README.md.example", + " - removed.md.example" + ]) + + described_class::TemplateChecksums.write_to_config( + config_path: File.join(root, ".kettle-jem.yml"), + checksums: current, + version: "1.2.3" + ) + rewritten = YAML.safe_load_file(File.join(root, ".kettle-jem.yml")) + expect(rewritten.fetch("kettle-jem").fetch("version")).to eq("1.2.3") + expect(rewritten.fetch("kettle-jem").fetch("checksums")).to eq(current) + end + end + + + it "reports duplicate drift during template apply runs" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-duplicate-drift-apply", tmp_root) do |root| + write_tree(root, { + "example.gemspec" => <<~RUBY, + Gem::Specification.new do |spec| + spec.name = "example" + spec.summary = "Example" + end + RUBY + ".kettle-jem.yml" => <<~YAML, + templates: + root: template + apply: true + entries: + - README.md + YAML + "template/README.md.example" => "# Example\n" + }) + calls = [] + runner = lambda do |project_root:, template_dir:| + calls << {project_root: project_root, template_dir: template_dir} + { + warning_count: 1, + json_path: File.join(project_root, "tmp", "kettle-jem", "dup-check.json"), + lock_path: File.join(project_root, ".kettle-drift.lock"), + exit_code: 1 + } + end + + apply = described_class.apply_project(root, env: {}, run_options: {duplicate_drift_runner: runner}) + + expect(calls).to eq([{project_root: root, template_dir: File.join(root, "template")}]) + expect(apply.fetch(:duplicate_drift)).to include( + available: true, + warning_count: 1, + json_path: File.join(root, "tmp", "kettle-jem", "dup-check.json"), + lock_path: File.join(root, ".kettle-drift.lock"), + exit_code: 1 + ) + end + end + + + it "exposes template root and manifest metadata for adjacent tools" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-template-manifest", tmp_root) do |root| + write_tree(root, { + "template/README.md.example" => "# Example\n", + "example.gemspec" => <<~RUBY + Gem::Specification.new do |spec| + spec.name = "example" + spec.summary = "Example gem" + end + RUBY + }) + + expect(described_class.packaged_template_root).to eq(described_class::PACKAGED_TEMPLATE_ROOT) + expect(described_class.template_root_path(root)).to eq(File.join(root, "template")) + + manifest = described_class.template_manifest(project_root: root) + expect(manifest).to include( + kind: "kettle_jem_template_manifest", + version: 1, + template_root: File.join(root, "template") + ) + expect(manifest.fetch(:checksums).keys).to eq(["README.md.example"]) + end + end + + + it "renders self-test and templating diagnostics reports" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-self-test-report-slice", tmp_root) do |root| + before = File.join(root, "before") + after = File.join(root, "after") + write_tree(before, { + "same.txt" => "same\n", + "changed.txt" => "before\n", + "removed.txt" => "removed\n" + }) + write_tree(after, { + "same.txt" => "same\n", + "changed.txt" => "after\n", + "added.txt" => "added\n" + }) + + comparison = described_class::SelfTest::Manifest.compare( + described_class::SelfTest::Manifest.generate(before), + described_class::SelfTest::Manifest.generate(after) + ).merge(skipped: ["lib/internal.rb"]) + expect(comparison).to include( + matched: ["same.txt"], + changed: ["changed.txt"], + added: ["added.txt"], + removed: ["removed.txt"], + skipped: ["lib/internal.rb"] + ) + + snapshot = { + workspace_root: root, + kettle_jem: { + name: "kettle-jem", + version: "1.2.3", + path: File.join(root, "installed", "kettle-jem"), + local_path: false, + loaded: true + }, + merge_gems: [ + { + name: "ast-merge", + version: "2.0.0", + path: File.join(root, "ast-merge"), + local_path: true, + loaded: true + }, + { + name: "json-merge", + version: nil, + path: nil, + local_path: false, + loaded: false + } + ] + } + + self_test_report = described_class::SelfTest::Reporter.summary( + comparison, + output_dir: File.join(root, "output"), + templating_environment: snapshot, + diff_count: 1, + now: Time.utc(2026, 5, 14, 12, 0, 0) + ) + expect(self_test_report).to include("**Score**: 25.0% (1/4 files unchanged)") + expect(self_test_report).to include("**Divergence**: 75.0% (3/4 files changed, added, or missing)") + expect(self_test_report).to include("## Changed Files (1)") + expect(self_test_report).to include("## New Files (1)") + expect(self_test_report).to include("## Not Templated - Unexpected (1)") + expect(self_test_report).to include("Not Templated (1 files) - source-only files not produced by the template task") + expect(self_test_report).to include("| ast-merge | 2.0.0 | local path |") + expect(self_test_report).to include("| json-merge | _not loaded_ | not loaded |") + + run_report = described_class::TemplatingReport.render_markdown( + project_root: root, + snapshot: snapshot, + run_started_at: Time.utc(2026, 5, 14, 12, 0, 0), + finished_at: Time.utc(2026, 5, 14, 12, 1, 0), + status: "failed", + warnings: ["missing service", "missing service"], + error: RuntimeError.new("boom"), + template_diff: {added: ["new.md"], changed: ["README.md"], removed: ["old.md"]}, + template_commit_sha: "abc123" + ) + expect(run_report).to include("# kettle-jem Templating Run Report") + expect(run_report).to include("**Status**: `failed`") + expect(run_report).to include("**Template commit**: `abc123`") + expect(run_report.scan("- missing service").length).to eq(1) + expect(run_report).to include("## Template File Changes") + expect(run_report).to include("3 template file(s) since last run: 1 added, 1 changed, 1 removed") + expect(run_report).to include("RuntimeError: boom") + end + end + + + it "derives run stats from recipe reports" do + stats = described_class.recipe_run_stats( + [ + {changed: true, metadata: {destination_existed: false}}, + {changed: true, metadata: {destination_existed: true}}, + {changed: false, metadata: {destination_existed: true}}, + {changed: true, metadata: {delete_file: true, destination_existed: true}} + ], + diagnostics: [ + {kind: "plugin_file_change", path: "PLUGIN.md", action: "replace"} + ] + ) + + expect(stats).to eq( + recipes: 4, + created: 1, + pre_existing: 2, + identical: 1, + changed: 1, + deleted: 1, + plugin_file_changes: 1, + summary: "recipes 4 created 1 pre_existing 2 identical 1 changed 1 deleted 1 plugin_file_changes 1" + ) + end + + + it "reports the Kettle/Jem non-interactive decision policy and recipe defaults" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-decision-policy", tmp_root) do |root| + write_tree(root, { + "example.gemspec" => <<~RUBY, + Gem::Specification.new do |spec| + spec.name = "example" + spec.summary = "Example gem" + spec.required_ruby_version = ">= 3.2" + end + RUBY + ".kettle-jem.yml" => <<~YAML, + templates: + root: templates + apply: true + entries: + - README.md + YAML + "templates/README.md.example" => "# Example\n\nTemplate README.\n", + "README.md" => "# Example\n\nDestination README.\n" + }) + + plan = described_class.plan_project(root, env: {"force" => "true"}) + expect(plan.fetch(:decision_policy)).to include( + mode: "accept", + non_interactive: true, + accept: true, + interactive: false, + failure_mode: "error" + ) + readme_decision = plan.fetch(:decision_evaluations).find do |decision| + decision.fetch(:id) == "recipe:template_source_application_README_md" + end + expect(readme_decision).to include( + category: "apply_template_source", + file: "README.md", + default_action: "replace", + selected_action: "replace", + source: "default", + severity: "advisory", + blocking: false + ) + expect(readme_decision.fetch(:diagnostics)).to include( + "Non-interactive runs apply the configured template source default and report the decision." + ) + + apply = described_class.apply_project(root, env: {"force" => "false"}) + expect(apply.fetch(:decision_policy)).to include( + mode: "interactive", + non_interactive: false, + accept: false, + interactive: true + ) + expect(apply.fetch(:decision_evaluations).map { |decision| decision.fetch(:selected_action) }).to include("replace") + interactive_readme_decision = apply.fetch(:decision_evaluations).find do |decision| + decision.fetch(:id) == "recipe:template_source_application_README_md" + end + expect(interactive_readme_decision).to include( + source: "interactive_default", + prompt_required: true + ) + expect(interactive_readme_decision.fetch(:prompt)).to include( + id: "recipe:template_source_application_README_md", + category: "apply_template_source", + file: "README.md", + default_action: "replace", + choices: include("create", "replace", "keep", "skip") + ) + expect(apply.fetch(:prompt_requests)).to include(interactive_readme_decision.fetch(:prompt)) + expect(interactive_readme_decision.fetch(:diagnostics)).to include( + "Interactive prompt transport is active; selected the configured default pending an external response." + ) + + File.write(File.join(root, "README.md"), "# Example\n\nDestination README.\n") + answered_apply = described_class.apply_project( + root, + env: {}, + run_options: { + interactive: true, + prompt_answers: { + "recipe:readme_metadata" => "keep", + "recipe:template_source_application_README_md" => "keep" + } + } + ) + answered_decision = answered_apply.fetch(:decision_evaluations).find do |decision| + decision.fetch(:id) == "recipe:template_source_application_README_md" + end + expect(answered_apply.fetch(:decision_policy)).to include( + mode: "interactive", + prompt_answers: { + "recipe:readme_metadata" => "keep", + "recipe:template_source_application_README_md" => "keep" + } + ) + expect(answered_decision).to include( + selected_action: "keep", + source: "interactive_answer", + prompt_required: true + ) + expect(answered_decision.fetch(:diagnostics)).to include( + "Interactive prompt answer supplied through the shared decision policy input contract." + ) + expect(answered_apply.fetch(:changed_files)).not_to include("README.md") + expect(File.read(File.join(root, "README.md"))).to eq("# Example\n\nDestination README.\n") + end + end + + + it "hard-fails decision evaluation only when no fatal default is available" do + policy = described_class::DecisionPolicy.from_env({"force" => "true"}) + expect do + policy.resolve( + id: "parser:README.md", + category: "parse", + file: "README.md", + default_action: nil, + severity: :fatal + ) + end.to raise_error(Kettle::Jem::Error, /No safe default decision/) + end + + + it "reports git preflight state and lets skip-commit bypass clean-worktree enforcement" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-git-preflight", tmp_root) do |root| + write_tree(root, { + "example.gemspec" => <<~RUBY + Gem::Specification.new do |spec| + spec.name = "example" + spec.summary = "Example gem" + spec.required_ruby_version = ">= 4.0" + end + RUBY + }) + expect(system("git", "-C", root, "init", "-q")).to be(true) + + expect do + described_class.plan_project(root, env: {"KETTLE_JEM_REQUIRE_CLEAN" => "true"}) + end.to raise_error(Kettle::Jem::Error, /worktree is not clean/) + + plan = described_class.plan_project(root, env: { + "KETTLE_JEM_REQUIRE_CLEAN" => "true", + "KETTLE_JEM_SKIP_COMMIT" => "true" + }) + expect(plan.fetch(:template_selection)).to include(skip_commit: true) + expect(plan.fetch(:git_preflight)).to include( + git_repository: true, + clean_worktree: false, + skip_commit: true + ) + expect(plan.fetch(:git_preflight).fetch(:dirty_entries)).not_to be_empty + end + end + + + it "loads configured plugins and runs apply-time phase hooks" do + plugin_module = Module.new do + class << self + def register_kettle_jem_plugin(registrar) + registrar.before_phase(:github_workflows) do |context:, phase:, **| + path = File.join(context.project_root, ".github/FUNDING.yml") + context.out.report_detail("before #{phase}: funding exists=#{File.exist?(path)}") + end + + registrar.after_phase(:github_workflows) do |context:, phase:, **| + path = File.join(context.project_root, ".github/FUNDING.yml") + context.out.report_detail("after #{phase}: funding exists=#{File.exist?(path)}") + end + + registrar.after_phase(:remaining_files) do |context:, phase:, phase_stats:, plugin_name:, **| + path = File.join(context.project_root, "PLUGIN.md") + File.write(path, "plugin=#{plugin_name}; phase=#{phase}; recipes=#{phase_stats.fetch(:recipe_count)}\n") + context.helpers.record_template_result(path, :replace) + context.out.report_detail("plugin hook ran") + end + end + end + end + stub_const("Example::Plugin", plugin_module) + allow(described_class::PluginLoader).to receive(:require).with("example/plugin").and_return(true) + + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-plugin-lifecycle", tmp_root) do |root| + write_tree(root, { + "example.gemspec" => <<~RUBY, + Gem::Specification.new do |spec| + spec.name = "example" + spec.summary = "Example gem" + spec.required_ruby_version = ">= 3.2" + end + RUBY + ".kettle-jem.yml" => <<~YAML + plugins: + - example-plugin + YAML + }) + + plan = described_class.plan_project(root, env: {}) + expect(File.exist?(File.join(root, "PLUGIN.md"))).to be(false) + plan_lifecycle = plan.fetch(:diagnostics).find { |diagnostic| diagnostic[:kind] == "plugin_lifecycle" } + expect(plan_lifecycle).to include( + loaded_plugins: ["example-plugin"], + callbacks_run: false + ) + expect(plan_lifecycle.fetch(:active_runner_phases)).to be_empty + expect(plan.fetch(:phase_reports).map { |phase_report| phase_report.fetch(:phase) }).to include( + "github_workflows", + "remaining_files" + ) + github_phase = plan.fetch(:phase_reports).find { |phase_report| phase_report.fetch(:phase) == "github_workflows" } + expect(github_phase.fetch(:changed_files)).to include(".github/FUNDING.yml") + expect(plan.fetch(:run_stats).fetch(:plugin_file_changes)).to eq(0) + + apply = described_class.apply_project(root, env: {}) + expect(apply.fetch(:diagnostics)).to include( + kind: "plugin_detail", + message: "before github_workflows: funding exists=false" + ) + expect(apply.fetch(:diagnostics)).to include( + kind: "plugin_detail", + message: "after github_workflows: funding exists=true" + ) + expect(File.read(File.join(root, "PLUGIN.md"))).to include("plugin=example-plugin; phase=remaining_files; recipes=") + expect(apply.fetch(:changed_files)).to include("PLUGIN.md") + expect(apply.fetch(:run_stats).fetch(:plugin_file_changes)).to eq(1) + expect(apply.fetch(:diagnostics)).to include( + kind: "plugin_file_change", + path: "PLUGIN.md", + action: "replace" + ) + expect(apply.fetch(:diagnostics)).to include( + kind: "plugin_detail", + message: "plugin hook ran" + ) + apply_lifecycle = apply.fetch(:diagnostics).reverse.find { |diagnostic| diagnostic[:kind] == "plugin_lifecycle" } + expect(apply_lifecycle).to include( + loaded_plugins: ["example-plugin"], + callbacks_run: true + ) + expect(apply_lifecycle.fetch(:active_runner_phases)).to eq(described_class::PHASE_ORDER.map(&:to_s)) + expect(apply_lifecycle.fetch(:registered_hooks)).to contain_exactly( + { + plugin_name: "example-plugin", + phase: "github_workflows", + timing: "before" + }, + { + plugin_name: "example-plugin", + phase: "github_workflows", + timing: "after" + }, + { + plugin_name: "example-plugin", + phase: "remaining_files", + timing: "after" + } + ) + end + end + + + it "keeps direct sibling runtime dependencies available during lockfile normalization" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-install-direct-sibling-lock-env", tmp_root) do |workspace| + root = File.join(workspace, "adapter") + sibling = File.join(workspace, "shared-core") + FileUtils.mkdir_p([root, sibling]) + write_tree(sibling, { + "shared-core.gemspec" => <<~RUBY + Gem::Specification.new do |spec| + spec.name = "shared-core" + spec.version = "0.1.0" + spec.summary = "Shared core" + end + RUBY + }) + write_tree(root, { + "Gemfile" => "source \"https://gem.coop\"\n", + "Gemfile.lock" => <<~LOCK, + GEM + remote: https://gem.coop/ + specs: + + PLATFORMS + ruby + + DEPENDENCIES + + BUNDLED WITH + 4.0.10 + LOCK + "adapter.gemspec" => <<~RUBY, + Gem::Specification.new do |spec| + spec.name = "adapter" + spec.version = "0.1.0" + spec.summary = "Adapter" + spec.homepage = "https://github.com/rubythems/adapter" + spec.metadata["source_code_uri"] = "https://github.com/rubythems/adapter" + spec.add_dependency "shared-core", "= 0.1.0" + end + RUBY + ".kettle-jem.yml" => <<~YAML + templates: + root: packaged + apply: true + entries: + - bin/setup + YAML + }) + + commands = [] + command_runner = lambda do |command, chdir:, env:, quiet:| + commands << {command: command, chdir: chdir, env: env, quiet: quiet} + {success: true, exitstatus: 0, stdout: "", stderr: ""} + end + + Kettle::Jem::Tasks::InstallTask.run( + project_root: root, + env: {"K_JEM_TEMPLATING" => "true"}, + run_options: {only: "bin/setup", skip_commit: true}, + command_runner: command_runner + ) + + lock_command = commands.find { |entry| entry.fetch(:command) == %w[bundle update] } + expect(lock_command).not_to be_nil + expect(lock_command.fetch(:env)).to include( + "K_JEM_TEMPLATING" => "false", + "RUBYTHEMS_DEV" => workspace + ) + end + end + + + it "generates templating-aware main Gemfile nomono wiring for direct sibling runtime dependencies" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-main-gemfile-direct-sibling-wiring", tmp_root) do |workspace| + root = File.join(workspace, "adapter") + sibling = File.join(workspace, "shared-core") + FileUtils.mkdir_p([root, sibling]) + write_tree(sibling, { + "shared-core.gemspec" => <<~RUBY + Gem::Specification.new do |spec| + spec.name = "shared-core" + spec.version = "0.1.0" + spec.summary = "Shared core" + end + RUBY + }) + write_tree(root, { + "adapter.gemspec" => <<~RUBY, + Gem::Specification.new do |spec| + spec.name = "adapter" + spec.version = "0.1.0" + spec.summary = "Adapter" + spec.homepage = "https://github.com/rubythems/adapter" + spec.metadata["source_code_uri"] = "https://github.com/rubythems/adapter" + spec.add_dependency "shared-core", "= 0.1.0" + spec.add_dependency "version_gem", ">= 1" + end + RUBY + ".kettle-jem.yml" => <<~YAML + project_emoji: "💎" + templates: + root: packaged + apply: true + entries: + - Gemfile + YAML + }) + + report = described_class.apply_project( + root, + env: {}, + run_options: {accept: true, force: true, skip_commit: true} + ) + gemfile = File.read(File.join(root, "Gemfile")) + direct_block = gemfile + .split("# Direct sibling dependencies", 2).last.to_s + .split("# Templating", 2).first.to_s + + expect(report.fetch(:changed_files)).to include("Gemfile") + expect(direct_block).to include("direct_sibling_gems = %w[") + expect(direct_block).to include("shared-core") + expect(direct_block).not_to include("version_gem") + expect(direct_block).to include( + 'direct_sibling_templating = ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero?' + ) + expect(gemfile).to include('nomono_requirements = ["~> 1.0", ">= 1.0.8"]') + expect(direct_block).to include("nomono_activation_requirements = nomono_requirements") + expect(direct_block).to include('nomono_lockfile = File.expand_path("Gemfile.lock", __dir__)') + expect(direct_block).to include("Bundler::LockfileParser") + expect(direct_block).to include('Kernel.send(:gem, "nomono", *nomono_activation_requirements)') + expect(direct_block).to include('require "nomono/bundler"') + expect(direct_block).not_to include('Gem::Specification.find_all_by_name("nomono")') + expect(direct_block).not_to include( + 'unless ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero?' + ) + expect(direct_block).to include('direct_sibling_dev_was_set = ENV.key?("RUBYTHEMS_DEV")') + expect(direct_block).to include('direct_sibling_dev_original = ENV.fetch("RUBYTHEMS_DEV", nil)') + expect(direct_block).to include('ENV["RUBYTHEMS_DEV"] = File.expand_path("..", __dir__)') + expect(direct_block).to include('ENV["RUBYTHEMS_DEV"] = direct_sibling_dev_original') + expect(direct_block).to include('ENV.delete("RUBYTHEMS_DEV")') + expect(direct_block).to include('prefix: "RUBYTHEMS"') + expect(direct_block).to include('path_env: "RUBYTHEMS_DEV"') + expect(direct_block).to include('root: ["src", "my", "rubythems"]') + expect(gemfile).to include("Use the released TSLP gem by default") + expect(gemfile).to include('gem "tree_sitter_language_pack", ">= 1.13.2", "< 2.0"') + expect(gemfile).not_to include("https://github.com/structuredmerge/tree-sitter-language-pack.git") + expect(gemfile).not_to include('branch: "fix/ruby-parser-api-methods"') + expect(File.read(File.join(root, "Gemfile"))).to eq(gemfile) + end + end + + + it "collapses repeated direct sibling runtime dependency wiring in the main Gemfile" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-main-gemfile-direct-sibling-dedupe", tmp_root) do |workspace| + root = File.join(workspace, "adapter") + sibling = File.join(workspace, "shared-core") + FileUtils.mkdir_p([root, sibling]) + write_tree(sibling, { + "shared-core.gemspec" => <<~RUBY + Gem::Specification.new do |spec| + spec.name = "shared-core" + spec.version = "0.1.0" + spec.summary = "Shared core" + end + RUBY + }) + write_tree(root, { + "adapter.gemspec" => <<~RUBY, + Gem::Specification.new do |spec| + spec.name = "adapter" + spec.version = "0.1.0" + spec.summary = "Adapter" + spec.homepage = "https://github.com/rubythems/adapter" + spec.metadata["source_code_uri"] = "https://github.com/rubythems/adapter" + spec.add_dependency "shared-core", "= 0.1.0" + end + RUBY + "Gemfile" => <<~RUBY, + source "https://gem.coop" + + gemspec + + nomono_requirements = ["~> 1.0", ">= 1.0.8"] + gem "nomono", *nomono_requirements, require: false + + # Direct sibling dependencies (env-switched via RUBYTHEMS_DEV) + direct_sibling_gems = %w[ + stale-core + ] + direct_sibling_dev = ENV.fetch("RUBYTHEMS_DEV", "") + direct_sibling_local = + !direct_sibling_dev.empty? && !%w[false 0 no off].include?(direct_sibling_dev.downcase) + direct_sibling_templating = ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? + + if direct_sibling_gems.any? && + (direct_sibling_local || + ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero?) + require "nomono/bundler" + eval_nomono_gems( + gems: direct_sibling_gems, + prefix: "RUBYTHEMS", + path_env: "RUBYTHEMS_DEV", + root: ["src", "my", "rubythems"] + ) + end + + # Direct sibling dependencies (env-switched via RUBYTHEMS_DEV) + direct_sibling_gems = %w[ + shared-core + ] + direct_sibling_dev = ENV.fetch("RUBYTHEMS_DEV", "") + direct_sibling_local = + !direct_sibling_dev.empty? && !%w[false 0 no off].include?(direct_sibling_dev.downcase) + direct_sibling_templating = ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? + + if direct_sibling_gems.any? && + (direct_sibling_local || + ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero?) + require "nomono/bundler" + eval_nomono_gems( + gems: direct_sibling_gems, + prefix: "RUBYTHEMS", + path_env: "RUBYTHEMS_DEV", + root: ["src", "my", "rubythems"] + ) + end + + # Templating (env-switched: STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local paths) + eval_gemfile "gemfiles/modular/templating.gemfile" if ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? + RUBY + ".kettle-jem.yml" => <<~YAML + project_emoji: "💎" + templates: + root: packaged + apply: true + entries: + - Gemfile + YAML + }) + + described_class.apply_project( + root, + env: {}, + run_options: {accept: true, force: true, skip_commit: true} + ) + gemfile = File.read(File.join(root, "Gemfile")) + + expect(gemfile.scan("# Direct sibling dependencies").length).to eq(1) + expect(gemfile).to include("shared-core") + expect(gemfile).not_to include("stale-core") + end + end + + + it "does not path-wire direct sibling dependencies when the sibling directory has a different gemspec name" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-main-gemfile-direct-sibling-name-mismatch", tmp_root) do |workspace| + root = File.join(workspace, "omniauth-openid") + stale_sibling = File.join(workspace, "rack-openid") + FileUtils.mkdir_p([root, stale_sibling]) + write_tree(stale_sibling, { + "rack-openid2.gemspec" => <<~RUBY + Gem::Specification.new do |spec| + spec.name = "rack-openid2" + spec.version = "2.0.3" + spec.summary = "Rack OpenID 2" + end + RUBY + }) + write_tree(root, { + "omniauth-openid.gemspec" => <<~RUBY, + Gem::Specification.new do |spec| + spec.name = "omniauth-openid" + spec.version = "2.0.2" + spec.summary = "OpenID strategy" + spec.homepage = "https://github.com/ruby-openid/omniauth-openid" + spec.metadata["source_code_uri"] = "https://github.com/ruby-openid/omniauth-openid" + spec.add_dependency "rack-openid", "~> 1.4" + spec.add_dependency "version_gem", ">= 1" + end + RUBY + "Gemfile" => <<~RUBY, + source "https://gem.coop" + + gemspec + + nomono_requirements = ["~> 1.0", ">= 1.0.8"] + gem "nomono", *nomono_requirements, require: false + + # Direct sibling dependencies (env-switched via RUBY_OPENID_DEV) + direct_sibling_gems = %w[ + rack-openid + ] + direct_sibling_dev = ENV.fetch("RUBY_OPENID_DEV", "") + direct_sibling_local = + !direct_sibling_dev.empty? && !%w[false 0 no off].include?(direct_sibling_dev.downcase) + direct_sibling_templating = ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? + + if direct_sibling_gems.any? && + (direct_sibling_local || + ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero?) + require "nomono/bundler" + eval_nomono_gems( + gems: direct_sibling_gems, + prefix: "RUBY_OPENID", + path_env: "RUBY_OPENID_DEV", + root: ["src", "my", "ruby-openid"] + ) + end + + # Templating (env-switched: STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local paths) + eval_gemfile "gemfiles/modular/templating.gemfile" if ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? + RUBY + ".kettle-jem.yml" => <<~YAML + project_emoji: "💎" + templates: + root: packaged + apply: true + entries: + - Gemfile + YAML + }) + + described_class.apply_project( + root, + env: {}, + run_options: {accept: true, force: true, skip_commit: true} + ) + gemfile = File.read(File.join(root, "Gemfile")) + + expect(gemfile).not_to include("# Direct sibling dependencies") + expect(gemfile).not_to include("direct_sibling_gems") + expect(gemfile).not_to include("rack-openid") + end + end + + + it "keeps the nomono requirements assignment before an existing nomono gem call" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-main-gemfile-nomono-order", tmp_root) do |root| + write_tree(root, { + "adapter.gemspec" => <<~RUBY, + Gem::Specification.new do |spec| + spec.name = "adapter" + spec.version = "0.1.0" + spec.summary = "Adapter" + spec.homepage = "https://github.com/ur-brain/adapter" + spec.metadata["source_code_uri"] = "https://github.com/ur-brain/adapter" + spec.add_dependency "version_gem", ">= 1" + end + RUBY + "Gemfile" => <<~RUBY, + source "https://gem.coop" + + # Local workspace dependency wiring for *_local.gemfile overrides + gem "nomono", *nomono_requirements, require: false # ruby >= 2.2 + gem "progress_bar" + + require "nomono/bundler" + + eval_nomono_gems( + gems: %w[ur_brain], + prefix: "UR_BRAIN", + path_env: "UR_BRAIN_DEV", + root: ["src", "my", "ur-brain"] + ) + + gemspec + + nomono_requirements = ["~> 1.0", ">= 1.0.8"] + RUBY + ".kettle-jem.yml" => <<~YAML + project_emoji: "💎" + templates: + root: packaged + apply: true + entries: + - Gemfile + YAML + }) + + described_class.apply_project( + root, + env: {}, + run_options: {accept: true, force: true, skip_commit: true} + ) + gemfile = File.read(File.join(root, "Gemfile")) + requirement_line = gemfile.lines.index { |line| line.include?("nomono_requirements =") } + gem_line = gemfile.lines.index { |line| line.include?('gem "nomono", *nomono_requirements') } + + expect(requirement_line).not_to be_nil + expect(gem_line).not_to be_nil + expect(requirement_line).to be < gem_line + end + end + + + it "does not add generic direct sibling wiring for gems already handled by local modular Gemfiles" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-main-gemfile-local-modular-sibling", tmp_root) do |workspace| + root = File.join(workspace, "ur_brain-claude-code") + sibling = File.join(workspace, "ur_brain-adapters-ruby") + FileUtils.mkdir_p([root, sibling]) + write_tree(sibling, { + "ur_brain-adapters-ruby.gemspec" => <<~RUBY + Gem::Specification.new do |spec| + spec.name = "ur_brain-adapters-ruby" + spec.version = "0.1.0" + spec.summary = "UR Brain adapters" + end + RUBY + }) + write_tree(root, { + "ur_brain-claude-code.gemspec" => <<~RUBY, + Gem::Specification.new do |spec| + spec.name = "ur_brain-claude-code" + spec.version = "0.1.0" + spec.summary = "Claude Code adapter" + spec.homepage = "https://github.com/ur-brain/ur_brain-claude-code" + spec.metadata["source_code_uri"] = "https://github.com/ur-brain/ur_brain-claude-code" + spec.add_dependency "ur_brain-adapters-ruby", "~> 0.1" + end + RUBY + "gemfiles/modular/ur_brain_local.gemfile" => <<~RUBY, + workspace_root = File.expand_path("../..", __dir__) + gem "ur_brain-adapters-ruby", + path: File.join(workspace_root, "ur_brain-adapters-ruby") + RUBY + "gemfiles/modular/ur_brain.gemfile" => <<~RUBY, + if ENV.fetch("UR_BRAIN_DEV", "false").casecmp("false").zero? + gem "ur_brain-adapters-ruby", "~> 0.1" + else + eval_gemfile "ur_brain_local.gemfile" + end + RUBY + ".kettle-jem.yml" => <<~YAML + project_emoji: "💎" + templates: + root: packaged + apply: true + entries: + - Gemfile + YAML + }) + + described_class.apply_project( + root, + env: {}, + run_options: {accept: true, force: true, skip_commit: true} + ) + gemfile = File.read(File.join(root, "Gemfile")) + + expect(gemfile).not_to include("# Direct sibling dependencies") + expect(gemfile).not_to include("direct_sibling_gems") + expect(gemfile).to include(%(eval_gemfile "gemfiles/modular/ur_brain.gemfile")) + end + end + + + it "preserves local modular runtime wiring declared through nomono local gem lists" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-main-gemfile-nomono-local-modular-sibling", tmp_root) do |workspace| + root = File.join(workspace, "ur_brain-mcp") + FileUtils.mkdir_p(root) + write_tree(root, { + "ur_brain-mcp.gemspec" => <<~RUBY, + Gem::Specification.new do |spec| + spec.name = "ur_brain-mcp" + spec.version = "0.1.0" + spec.summary = "MCP adapter" + spec.homepage = "https://github.com/ur-brain/ur_brain-adapters-ruby" + spec.metadata["source_code_uri"] = "https://github.com/ur-brain/ur_brain-adapters-ruby" + spec.add_dependency "ur_brain", "~> 0.1" + end + RUBY + "gemfiles/modular/ur_brain_local.gemfile" => <<~RUBY, + require "nomono/bundler" unless defined?(Nomono) + + local_gems = %w[ur_brain] + + eval_nomono_gems( + gems: local_gems, + prefix: "UR_BRAIN", + path_env: "UR_BRAIN_DEV", + vendored_gems_env: "VENDORED_GEMS", + vendor_gem_dir_env: "VENDOR_GEM_DIR", + debug_env: "KETTLE_DEV_DEBUG", + root: %w[src my ur-brain] + ) + RUBY + "gemfiles/modular/ur_brain.gemfile" => <<~RUBY, + if ENV.fetch("UR_BRAIN_DEV", "false").casecmp("false").zero? + gem "ur_brain", "~> 0.1" + else + eval_gemfile "ur_brain_local.gemfile" + end + RUBY + ".kettle-jem.yml" => <<~YAML + project_emoji: "💎" + templates: + root: packaged + apply: true + entries: + - Gemfile + YAML + }) + + described_class.apply_project( + root, + env: {}, + run_options: {accept: true, force: true, skip_commit: true} + ) + gemfile = File.read(File.join(root, "Gemfile")) + + expect(gemfile).not_to include("# Direct sibling dependencies") + expect(gemfile).not_to include("direct_sibling_gems") + expect(gemfile).to include(%(eval_gemfile "gemfiles/modular/ur_brain.gemfile")) + end + end +end diff --git a/gems/kettle-jem/spec/integration/coverage_template_spec.rb b/gems/kettle-jem/spec/integration/coverage_template_spec.rb new file mode 100644 index 000000000..a0a5db9df --- /dev/null +++ b/gems/kettle-jem/spec/integration/coverage_template_spec.rb @@ -0,0 +1,193 @@ +# frozen_string_literal: true + +RSpec.describe Kettle::Jem, "coverage bootstrap template behavior" do + include_context "with isolated kettle-jem environment" + include_context "with kettle-jem fixture contracts" + + it "removes obsolete SimpleCov setup calls from .simplecov while preserving local config" do + content = <<~RUBY + # kettle-jem:freeze + # local coverage note + # kettle-jem:unfreeze + require "kettle-soup-cover" + require "kettle/soup/cover/config" + + SimpleCov.configure do + track_files "lib/**/*.rb" + custom_setting "kept" + end + + SimpleCov.start do + track_files "lib/**/*.rb" + track_files "exe/*.rb" + end + + custom_after_config + RUBY + + output = described_class.send(:normalize_simplecov_template_source, content) + + expect(output).to include("# local coverage note") + expect(output).to include("SimpleCov.configure do") + expect(output).to include('cover "lib/**/*.rb"') + expect(output).to include('custom_setting "kept"') + expect(output).to include("custom_after_config") + expect(output).not_to include('require "kettle-soup-cover"') + expect(output).not_to include('require "kettle/soup/cover/config"') + expect(output).not_to include("SimpleCov.start") + expect(output).not_to include("track_files") + end + + + it "removes obsolete .simplecov keep_destination config during config sync" do + content = <<~YAML + defaults: + preference: "template" + files: + AGENTS.md: + strategy: accept_template + .simplecov: + strategy: keep_destination + Rakefile: + strategy: accept_template + YAML + + output = described_class.send(:sync_kettle_config_env_overrides, content, {}) + + expect(output).to include("AGENTS.md:") + expect(output).to include("Rakefile:") + expect(output).not_to include(".simplecov:") + end + + + it "normalizes stale spec helper SimpleCov bootstrap without dropping local wiring" do + content = <<~RUBY + # frozen_string_literal: true + + require_relative "support/local" + + begin + require "kettle-soup-cover" + if Kettle::Soup::Cover::DO_COV + require "simplecov" + SimpleCov.start + end + require "simplecov" if Kettle::Soup::Cover::DO_COV # `.simplecov` is run here! + rescue LoadError => error + raise error unless error.message.include?("kettle") + end + + require "kettle/test/rspec" + require "example" + RUBY + + output = described_class.send(:normalize_spec_helper_simplecov_template_source, content) + + expect(output).to include('require_relative "support/local"') + expect(output.scan('require "simplecov"').size).to eq(1) + expect(output.index('require "simplecov"')).to be < output.index('require "kettle/soup/cover/config"') + expect(output.index('require "kettle/soup/cover/config"')).to be < output.index("SimpleCov.start") + expect(output).not_to include("`.simplecov` is run here") + end + + + it "upgrades modifier-form spec helper SimpleCov bootstrap to the kettle-soup-cover startup block" do + content = <<~RUBY + # frozen_string_literal: true + + # For code coverage, must be required before all application / gem / library code. + begin + require "kettle-soup-cover" + require "simplecov" if Kettle::Soup::Cover::DO_COV # `.simplecov` is run here! + rescue LoadError => error + raise error unless error.message.include?("kettle") + end + + require "active_record" + require "example" + RUBY + + output = described_class.send(:normalize_spec_helper_simplecov_template_source, content) + + expect(output).to include('require "kettle-soup-cover"') + expect(output).to include("if Kettle::Soup::Cover::DO_COV") + expect(output).to include('require "simplecov" # Loads project-local .simplecov.') + expect(output).to include('require "kettle/soup/cover/config"') + expect(output).to include("SimpleCov.start") + expect(output.index('require "kettle/soup/cover/config"')).to be < output.index("SimpleCov.start") + expect(output.index("SimpleCov.start")).to be < output.index('require "active_record"') + expect(output).not_to include("`.simplecov` is run here") + end + + + it "updates old generated SimpleCov files in the same templating pass that removes keep_destination" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-simplecov-migration", tmp_root) do |root| + write_tree(root, { + "example.gemspec" => <<~RUBY, + Gem::Specification.new do |spec| + spec.name = "example" + spec.summary = "Example gem" + spec.required_ruby_version = ">= 3.2" + end + RUBY + ".structuredmerge/kettle-jem.yml" => <<~YAML, + project_emoji: 🧪 + templates: + root: packaged + apply: true + entries: + - .structuredmerge/kettle-jem.yml + - .simplecov + - spec/spec_helper.rb + rubygems: + entrypoint_require: "example" + namespace: "Example" + files: + .simplecov: + strategy: keep_destination + YAML + ".simplecov" => <<~RUBY, + require "kettle-soup-cover" + require "kettle/soup/cover/config" + + SimpleCov.start do + track_files "lib/**/*.rb" + end + RUBY + "spec/spec_helper.rb" => <<~RUBY + # frozen_string_literal: true + + begin + require "kettle-soup-cover" + if Kettle::Soup::Cover::DO_COV + require "simplecov" + SimpleCov.start + end + require "simplecov" if Kettle::Soup::Cover::DO_COV # `.simplecov` is run here! + rescue LoadError => error + raise error unless error.message.include?("kettle") + end + + require "example" + RUBY + }) + + apply = described_class.apply_project(root, env: {}, run_options: {accept: true}) + simplecov = apply.fetch(:recipe_reports).find { |candidate| candidate.fetch(:relative_path) == ".simplecov" } + spec_helper = apply.fetch(:recipe_reports).find { |candidate| candidate.fetch(:relative_path) == "spec/spec_helper.rb" } + kettle_config = apply.fetch(:recipe_reports).find { |candidate| candidate.fetch(:relative_path) == ".structuredmerge/kettle-jem.yml" } + + expect(simplecov.fetch(:final_content)).to include('cover "lib/**/*.rb"') + expect(simplecov.fetch(:final_content)).not_to include("SimpleCov.start") + expect(simplecov.fetch(:final_content)).not_to include('require "kettle-soup-cover"') + expect(simplecov.fetch(:final_content)).not_to include('require "kettle/soup/cover/config"') + expect(spec_helper.fetch(:final_content).scan('require "simplecov"').size).to eq(1) + expect(spec_helper.fetch(:final_content)).to include('require "kettle/soup/cover/config"') + expect(spec_helper.fetch(:final_content)).to include("SimpleCov.start") + expect(kettle_config.fetch(:final_content)).not_to include(".simplecov:") + end + end + +end diff --git a/gems/kettle-jem/spec/integration/gemspec_template_spec.rb b/gems/kettle-jem/spec/integration/gemspec_template_spec.rb new file mode 100644 index 000000000..92efa3b34 --- /dev/null +++ b/gems/kettle-jem/spec/integration/gemspec_template_spec.rb @@ -0,0 +1,1550 @@ +# frozen_string_literal: true + +RSpec.describe Kettle::Jem, "gemspec templating" do + include_context "with isolated kettle-jem environment" + include_context "with kettle-jem fixture contracts" + + it "ports old Gemfile comment preservation, token resolution, and commented dependency policy" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + contract_case = old_spec_contract.fetch(:cases).fetch(:gemfile_comment_and_token_policy) + important_block = <<~COMMENT + #### IMPORTANT ####################################################### + # #{contract_case.fetch(:important_phrase)}; Gemfile is NOT loaded in CI # + ####################################################### IMPORTANT #### + COMMENT + + Dir.mktmpdir("kettle-jem-old-gemfile-comment-policy", tmp_root) do |root| + write_tree(root, { + "example.gemspec" => <<~RUBY, + Gem::Specification.new do |spec| + spec.name = "#{contract_case.fetch(:resolved_gem_name)}" + spec.summary = "Example gem" + end + RUBY + ".kettle-jem.yml" => <<~YAML, + templates: + root: template + apply: true + entries: + - Gemfile + - gemfiles/modular/debug.gemfile + YAML + "Gemfile" => <<~RUBY, + # frozen_string_literal: true + + source "https://gem.coop" + + #{important_block} + # Include dependencies from #{contract_case.fetch(:resolved_gem_name)}.gemspec + gemspec + RUBY + "gemfiles/modular/debug.gemfile" => <<~RUBY, + # frozen_string_literal: true + + # Ex-Standard Library gems + gem "#{contract_case.fetch(:commented_dependency)}", "~> 1.15", ">= 1.15.2" # removed from stdlib in 3.5 + + platform :mri do + gem "#{contract_case.fetch(:active_dependency)}", ">= 1.1" + end + RUBY + "template/Gemfile.example" => <<~RUBY, + # frozen_string_literal: true + + source "https://gem.coop" + + #{important_block} + # Include dependencies from #{contract_case.fetch(:token)}.gemspec + gemspec + RUBY + "template/gemfiles/modular/debug.gemfile.example" => <<~RUBY + # frozen_string_literal: true + + # Ex-Standard Library gems + # #{contract_case.fetch(:commented_dependency)} is included in main Gemfile (and unlocked_deps Appraisal), so it can't be included here. + # gem "#{contract_case.fetch(:commented_dependency)}", "~> 1.15", ">= 1.15.2" # removed from stdlib in 3.5 + + platform :mri do + gem "#{contract_case.fetch(:active_dependency)}", ">= 1.1" + end + RUBY + }) + + first_apply = described_class.apply_project(root, env: {}) + second_apply = described_class.apply_project(root, env: {}) + gemfile_report = first_apply.fetch(:recipe_reports).find { |report| report.fetch(:relative_path) == "Gemfile" } + debug_report = first_apply.fetch(:recipe_reports).find do |report| + report.fetch(:relative_path) == "gemfiles/modular/debug.gemfile" + end + gemfile_content = gemfile_report.fetch(:final_content) + debug_content = debug_report.fetch(:final_content) + + expect(gemfile_content).to include(contract_case.fetch(:important_phrase)) + expect(gemfile_content).to include("dependencies from #{contract_case.fetch(:resolved_gem_name)}.gemspec") + expect(gemfile_content).not_to include(contract_case.fetch(:token)) + expect(debug_content).to include("#{contract_case.fetch(:commented_dependency)} is included in main Gemfile") + expect(debug_content).to include(%(# gem "#{contract_case.fetch(:commented_dependency)}", "~> 1.15", ">= 1.15.2")) + expect(debug_content).not_to match(/^gem "#{Regexp.escape(contract_case.fetch(:commented_dependency))}"/) + expect(debug_content.scan(/^\s*# gem "#{Regexp.escape(contract_case.fetch(:commented_dependency))}"/).count).to eq(1) + expect(debug_content.scan(/^\s*gem "#{Regexp.escape(contract_case.fetch(:active_dependency))}"/).count).to eq(1) + expect(File.read(File.join(root, "Gemfile"))).to eq(gemfile_content) + expect(File.read(File.join(root, "gemfiles/modular/debug.gemfile"))).to eq(debug_content) + expect(second_apply.fetch(:changed_files)).not_to include("Gemfile", "gemfiles/modular/debug.gemfile") + end + end + + + it "normalizes preserved gemspec lines to the template block receiver" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-gemspec-receiver-slice", tmp_root) do |root| + write_tree(root, { + "example.gemspec" => <<~RUBY, + Gem::Specification.new do |gem| + gem.name = "example" + gem.summary = "Real summary" + gem.required_ruby_version = ">= 3.2" + gem.add_runtime_dependency "json", ">= 2.7" + gem.add_development_dependency "rubocop", "~> 1.70" + end + RUBY + ".kettle-jem.yml" => <<~YAML, + templates: + root: template + apply: true + entries: + - example.gemspec + YAML + "template/example.gemspec.example" => <<~RUBY + Gem::Specification.new do |spec| + spec.name = "example" + spec.summary = "TODO: Write a short summary" + spec.required_ruby_version = ">= 3.1" + spec.add_runtime_dependency "json", ">= 2.0" + spec.add_development_dependency "rspec", "~> 3.13" + end + RUBY + }) + + apply = described_class.apply_project(root, env: {}) + gemspec_report = apply.fetch(:recipe_reports).find do |report| + report.fetch(:recipe_name) == "template_source_application_example_gemspec" + end + gemspec_content = gemspec_report.fetch(:final_content) + + expect(gemspec_content).to include('spec.summary = "Real summary"') + expect(gemspec_content).to include('spec.required_ruby_version = ">= 3.2"') + expect(gemspec_content).to include('spec.add_runtime_dependency "json", ">= 2.7"') + expect(gemspec_content).to include('spec.add_development_dependency "rubocop", "~> 1.70"') + expect(gemspec_content).not_to include("gem.summary") + expect(gemspec_content).not_to include("gem.add_runtime_dependency") + expect(gemspec_report.dig(:report_envelope, :report, :step_reports, 0, :metadata, :ruby_template_policy)).to include( + file_type: "gemspec", + operations: include( + include(operation: "preserve_project_fields", preserved_fields: include("required_ruby_version", "summary")), + include(operation: "preserve_dependency_declarations", preserved_dependencies: include("json", "rubocop")), + include(operation: "normalize_gemspec_receiver", from: "gem", to: "spec") + ) + ) + expect(File.read(File.join(root, "example.gemspec"))).to eq(gemspec_content) + end + end + + + it "lets configured rubygems minimum Ruby override preserved gemspec Ruby floor" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-gemspec-min-ruby-config-slice", tmp_root) do |root| + write_tree(root, { + "example.gemspec" => <<~RUBY, + Gem::Specification.new do |gem| + gem.name = "example" + gem.required_ruby_version = ">= 1.9.3" + end + RUBY + ".kettle-jem.yml" => <<~YAML, + rubygems: + min_ruby: "2.4" + templates: + root: template + apply: true + entries: + - example.gemspec + YAML + "template/example.gemspec.example" => <<~RUBY + Gem::Specification.new do |spec| + spec.name = "example" + spec.required_ruby_version = ">= 3.1" + end + RUBY + }) + + apply = described_class.apply_project(root, env: {}) + gemspec_report = apply.fetch(:recipe_reports).find do |report| + report.fetch(:recipe_name) == "template_source_application_example_gemspec" + end + gemspec_content = gemspec_report.fetch(:final_content) + + expect(gemspec_content).to include('spec.required_ruby_version = ">= 2.4"') + expect(gemspec_content).not_to include('gem.required_ruby_version = ">= 1.9.3"') + expect(File.read(File.join(root, "example.gemspec"))).to eq(gemspec_content) + end + end + + + it "inlines gemspec version loading when minimum Ruby is at least 3.1" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-gemspec-modern-version-loader-slice", tmp_root) do |root| + write_tree(root, { + "my-gem.gemspec" => <<~RUBY, + # coding: utf-8 + # frozen_string_literal: true + + gem_version = + if Gem.ruby_version >= Gem::Version.new("3.1") + Module.new.tap { |mod| Kernel.load("\#{__dir__}/lib/my/gem/version.rb", mod) }::My::Gem::Version::VERSION + else + lib = File.expand_path("lib", __dir__) + $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib) + require "my/gem/version" + My::Gem::Version::VERSION + end + + Gem::Specification.new do |gem| + gem.name = "my-gem" + gem.version = gem_version + gem.summary = "Modern loader" + gem.required_ruby_version = ">= 3.2" + gem.homepage = "https://github.com/acme/my-gem" + end + RUBY + ".kettle-jem.yml" => <<~YAML, + templates: + root: template + apply: true + entries: + - my-gem.gemspec + YAML + "template/my-gem.gemspec.example" => <<~RUBY + # coding: utf-8 + # frozen_string_literal: true + + gem_version = + if Gem.ruby_version >= Gem::Version.new("3.1") + Module.new.tap { |mod| Kernel.load("\#{__dir__}/lib/{KJ|GEM_NAME_PATH}/version.rb", mod) }::{KJ|NAMESPACE}::Version::VERSION + else + require_relative "lib/{KJ|GEM_NAME_PATH}/version" + {KJ|NAMESPACE}::Version::VERSION + end + + Gem::Specification.new do |spec| + spec.name = "{KJ|GEM_NAME}" + spec.version = gem_version + spec.summary = "Template summary" + spec.required_ruby_version = ">= 2.3.0" + end + RUBY + }) + + apply = described_class.apply_project(root, env: {}) + gemspec_report = apply.fetch(:recipe_reports).find { |report| report.fetch(:recipe_name) == "template_source_application_my_gem_gemspec" } + gemspec_content = gemspec_report.fetch(:final_content) + + expect(gemspec_content).not_to include("gem_version =") + expect(gemspec_content).not_to include('if RUBY_VERSION >= "3.1"') + expect(gemspec_content).not_to include("Gemspec/RubyVersionGlobalsUsage") + expect(gemspec_content).not_to include("$LOAD_PATH.unshift(lib)") + expect(gemspec_content).not_to include('require "my/gem/version"') + expect(gemspec_content).to include("spec.version = Module.new.tap { |mod| Kernel.load(\"\#{__dir__}/lib/my/gem/version.rb\", mod) }::My::Gem::Version::VERSION") + version_loader_operation = gemspec_report.dig( + :report_envelope, + :report, + :step_reports, + 0, + :metadata, + :ruby_template_policy, + :operations + ).find { |operation| operation[:operation] == "rewrite_version_loader" } + expect(version_loader_operation).to include(mode: "modern", legacy_preamble_removed: true) + expect(Gem::Version.new(version_loader_operation.fetch(:min_ruby))).to be >= Gem::Version.new("3.1") + expect(File.read(File.join(root, "my-gem.gemspec"))).to eq(gemspec_content) + end + end + + + it "rewrites preserved dependency requirements that interpolate the project version constant" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-gemspec-version-dependency-slice", tmp_root) do |root| + write_tree(root, { + "gemserver-gem_coop.gemspec" => <<~RUBY, + # frozen_string_literal: true + + require_relative "lib/gemserver/gem_coop/version" + + Gem::Specification.new do |spec| + spec.name = "gemserver-gem_coop" + spec.version = Gemserver::GemCoop::VERSION + spec.summary = "Gem coop preset" + spec.required_ruby_version = ">= 3.2" + spec.add_dependency "gemserver-purl", "= \#{Gemserver::GemCoop::VERSION}" + end + RUBY + "lib/gemserver/gem_coop/version.rb" => <<~RUBY, + # frozen_string_literal: true + + module Gemserver + module GemCoop + module Version + VERSION = "0.1.0" + end + VERSION = Version::VERSION + end + end + RUBY + ".kettle-jem.yml" => <<~YAML, + rubygems: + min_ruby: "3.2" + entrypoint_require: "gemserver/gem_coop" + namespace: "Gemserver::GemCoop" + templates: + root: template + apply: true + entries: + - gemserver-gem_coop.gemspec + YAML + "template/gemserver-gem_coop.gemspec.example" => <<~RUBY + # frozen_string_literal: true + + Gem::Specification.new do |spec| + spec.name = "{KJ|GEM_NAME}" + spec.version = "0.0.0" + spec.summary = "Template summary" + spec.required_ruby_version = ">= 2.3.0" + spec.add_dependency("version_gem", "~> 1.1", ">= 1.1.14") + end + RUBY + }) + + apply = described_class.apply_project(root, env: {}) + gemspec_report = apply.fetch(:recipe_reports).find { |report| report.fetch(:recipe_name) == "template_source_application_gemserver_gem_coop_gemspec" } + gemspec_content = gemspec_report.fetch(:final_content) + + expect(gemspec_content).not_to include('require_relative "lib/gemserver/gem_coop/version"') + expect(gemspec_content).to include("spec.version = Module.new.tap { |mod| Kernel.load(\"\#{__dir__}/lib/gemserver/gem_coop/version.rb\", mod) }::Gemserver::GemCoop::Version::VERSION") + expect(gemspec_content).to include(%(spec.add_dependency "gemserver-purl", "= \#{spec.version}")) + expect(gemspec_content).not_to include("Gemserver::GemCoop::VERSION}") + expect { load File.join(root, "gemserver-gem_coop.gemspec") }.not_to raise_error + expect(File.read(File.join(root, "gemserver-gem_coop.gemspec"))).to eq(gemspec_content) + end + end + + + it "keeps gemspec legacy version loading with require_relative when minimum Ruby is below 3.1 and at least 2.2" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-gemspec-legacy-version-loader-slice", tmp_root) do |root| + write_tree(root, { + "my-gem.gemspec" => <<~RUBY, + Gem::Specification.new do |gem| + gem.name = "my-gem" + gem.version = "0.1.0" + gem.summary = "Legacy loader" + gem.required_ruby_version = ">= 3.0" + gem.homepage = "https://github.com/acme/my-gem" + end + RUBY + ".kettle-jem.yml" => <<~YAML, + templates: + root: template + apply: true + entries: + - my-gem.gemspec + YAML + "template/my-gem.gemspec.example" => <<~RUBY + Gem::Specification.new do |spec| + spec.name = "{KJ|GEM_NAME}" + spec.version = "0.0.0" + spec.summary = "Template summary" + spec.required_ruby_version = ">= 2.3.0" + end + RUBY + }) + + apply = described_class.apply_project(root, env: {}) + gemspec_report = apply.fetch(:recipe_reports).find { |report| report.fetch(:recipe_name) == "template_source_application_my_gem_gemspec" } + gemspec_content = gemspec_report.fetch(:final_content) + + expect(gemspec_content).to include("gem_version =") + expect(gemspec_content).to include('if Gem.ruby_version >= Gem::Version.new("3.1")') + expect(gemspec_content).not_to include("Gemspec/RubyVersionGlobalsUsage") + expect(gemspec_content).to include('require_relative "lib/my/gem/version"') + expect(gemspec_content).not_to include("$LOAD_PATH.unshift(lib)") + expect(gemspec_content).not_to include('require "my/gem/version"') + expect(gemspec_content).to include("My::Gem::Version::VERSION") + expect(gemspec_content).to include("spec.version = gem_version") + expect(gemspec_report.dig(:report_envelope, :report, :step_reports, 0, :metadata, :ruby_template_policy, :operations)).to include( + include(operation: "rewrite_version_loader", min_ruby: "3.0", mode: "legacy", legacy_preamble_present: true) + ) + expect(File.read(File.join(root, "my-gem.gemspec"))).to eq(gemspec_content) + end + end + + + it "keeps load-path gemspec legacy version loading only when minimum Ruby is below 2.2" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-gemspec-pre-require-relative-version-loader-slice", tmp_root) do |root| + write_tree(root, { + "my-gem.gemspec" => <<~RUBY, + Gem::Specification.new do |gem| + gem.name = "my-gem" + gem.version = "0.1.0" + gem.summary = "Pre require_relative loader" + gem.required_ruby_version = ">= 2.1" + gem.homepage = "https://github.com/acme/my-gem" + end + RUBY + ".kettle-jem.yml" => <<~YAML, + templates: + root: template + apply: true + entries: + - my-gem.gemspec + YAML + "template/my-gem.gemspec.example" => <<~RUBY + Gem::Specification.new do |spec| + spec.name = "{KJ|GEM_NAME}" + spec.version = "0.0.0" + spec.summary = "Template summary" + spec.required_ruby_version = ">= 2.3.0" + end + RUBY + }) + + apply = described_class.apply_project(root, env: {}) + gemspec_report = apply.fetch(:recipe_reports).find { |report| report.fetch(:recipe_name) == "template_source_application_my_gem_gemspec" } + gemspec_content = gemspec_report.fetch(:final_content) + + expect(gemspec_content).to include("gem_version =") + expect(gemspec_content).to include("$LOAD_PATH.unshift(lib)") + expect(gemspec_content).to include('lib = File.expand_path("lib", File.dirname(__FILE__))') + expect(gemspec_content).to include('require "my/gem/version"') + expect(gemspec_content).not_to include('require_relative "lib/my/gem/version"') + expect(gemspec_content).to include("spec.version = gem_version") + expect(gemspec_report.dig(:report_envelope, :report, :step_reports, 0, :metadata, :ruby_template_policy, :operations)).to include( + include(operation: "rewrite_version_loader", min_ruby: "2.1", mode: "legacy", legacy_preamble_present: true) + ) + expect(File.read(File.join(root, "my-gem.gemspec"))).to eq(gemspec_content) + end + end + + + it "keeps explicit zero runtime gemspec floor dependency-free for Ruby 1.x compatibility" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-gemspec-zero-runtime-floor-slice", tmp_root) do |root| + write_tree(root, { + "my-gem.gemspec" => <<~RUBY, + Gem::Specification.new do |gem| + gem.name = "my-gem" + gem.version = "0.1.0" + gem.summary = "Zero floor loader" + gem.homepage = "https://github.com/acme/my-gem" + end + RUBY + ".kettle-jem.yml" => <<~YAML, + rubygems: + min_ruby: "0" + entrypoint_require: "my/gem" + namespace: "My::Gem" + templates: + root: template + apply: true + entries: + - my-gem.gemspec + YAML + "template/my-gem.gemspec.example" => <<~RUBY + Gem::Specification.new do |spec| + spec.name = "{KJ|GEM_NAME}" + spec.version = "0.0.0" + spec.summary = "Template summary" + spec.required_ruby_version = ">= 2.3.0" + spec.add_dependency("version_gem", "~> 1.1", ">= 1.1.14") + end + RUBY + }) + + apply = described_class.apply_project(root, env: {}) + gemspec_report = apply.fetch(:recipe_reports).find { |report| report.fetch(:recipe_name) == "template_source_application_my_gem_gemspec" } + gemspec_content = gemspec_report.fetch(:final_content) + + expect(gemspec_content).to include("gem_version =") + expect(gemspec_content).to include('if Gem.ruby_version >= Gem::Version.new("3.1")') + expect(gemspec_content).to include('lib = File.expand_path("lib", File.dirname(__FILE__))') + expect(gemspec_content).to include('require "my/gem/version"') + expect(gemspec_content).not_to include("required_ruby_version") + expect(gemspec_content).not_to include("version_gem") + expect(gemspec_content).not_to include("require_relative") + expect(gemspec_content).to include("spec.version = gem_version") + expect(File.read(File.join(root, "my-gem.gemspec"))).to eq(gemspec_content) + end + end + + + it "removes version_gem dependency and entrypoint references under an old Ruby floor" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-remove-version-gem-runtime", tmp_root) do |root| + write_tree(root, { + "legacy.gemspec" => <<~RUBY, + Gem::Specification.new do |gem| + gem.name = "legacy" + gem.version = "0.1.0" + gem.summary = "Legacy gem" + gem.homepage = "https://github.com/acme/legacy" + gem.required_ruby_version = ">= 1.8.7" + gem.add_dependency("version_gem", "~> 1.1", ">= 1.1.10") + end + RUBY + "lib/legacy.rb" => <<~RUBY, + # frozen_string_literal: true + + require "version_gem" + require_relative "legacy/version" + + module Legacy + end + + Legacy::Version.class_eval do + extend VersionGem::Basic + end + RUBY + "lib/legacy/version.rb" => <<~RUBY, + # frozen_string_literal: true + + module Legacy + module Version + VERSION = "0.1.0" + end + VERSION = Version::VERSION # Traditional Constant Location + end + RUBY + "gemfiles/modular/runtime_heads.gemfile" => <<~RUBY, + # frozen_string_literal: true + + # Test against HEAD of runtime dependencies so we can proactively file bugs + + # Ruby >= 2.2 + gem "version_gem", github: "ruby-oauth/version_gem", branch: "main" + + eval_gemfile("x_std_libs/vHEAD.gemfile") + RUBY + ".kettle-jem.yml" => <<~YAML, + rubygems: + min_ruby: "1.8.7" + entrypoint_require: "legacy" + namespace: "Legacy" + templates: + root: template + apply: true + entries: + - legacy.gemspec + - gemfiles/modular/runtime_heads.gemfile + YAML + "template/legacy.gemspec.example" => <<~RUBY, + Gem::Specification.new do |spec| + spec.name = "{KJ|GEM_NAME}" + spec.version = "0.0.0" + spec.summary = "Template summary" + spec.required_ruby_version = ">= 2.3.0" + # Ref: https://gitlab.com/ruby-oauth/version_gem/-/issues/3 + spec.add_dependency("version_gem", "~> 1.1", ">= 1.1.14") + end + RUBY + "template/gemfiles/modular/runtime_heads.gemfile.example" => <<~RUBY + # frozen_string_literal: true + + # Test against HEAD of runtime dependencies so we can proactively file bugs + + # Ruby >= 2.2 + gem "version_gem", github: "ruby-oauth/version_gem", branch: "main" + + eval_gemfile("x_std_libs/vHEAD.gemfile") + RUBY + }) + + apply = described_class.apply_project(root, env: {}) + gemspec_report = apply.fetch(:recipe_reports).find { |report| report.fetch(:recipe_name) == "template_source_application_legacy_gemspec" } + gemspec_content = gemspec_report.fetch(:final_content) + entrypoint_content = File.read(File.join(root, "lib", "legacy.rb")) + version_content = File.read(File.join(root, "lib", "legacy", "version.rb")) + runtime_heads_content = File.read(File.join(root, "gemfiles", "modular", "runtime_heads.gemfile")) + + expect(gemspec_content).not_to include("version_gem") + expect(gemspec_content).to include('spec.required_ruby_version = ">= 1.8.7" # rubocop:disable Gemspec/RequiredRubyVersion') + expect(apply.fetch(:post_apply_steps)).to include(hash_including( + name: "version_gem_cleanup", + status: "applied", + changed_files: ["lib/legacy.rb"] + )) + expect(entrypoint_content).not_to include("version_gem") + expect(entrypoint_content).not_to include("VersionGem") + expect(entrypoint_content).to include('require_relative "legacy/version"') + expect(entrypoint_content).not_to end_with("\n\n") + expect(version_content).to include("module Version") + expect(version_content).to include('VERSION = "0.1.0"') + expect(version_content).to include("VERSION = Version::VERSION # Traditional Constant Location") + expect(runtime_heads_content).not_to include("version_gem") + expect(runtime_heads_content).to include('eval_gemfile("x_std_libs/vHEAD.gemfile")') + expect(File.read(File.join(root, "legacy.gemspec"))).to eq(gemspec_content) + end + end + + + it "does not add the RequiredRubyVersion RuboCop disable for Ruby 2+ runtime floors" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-required-ruby-version-rubocop-disable", tmp_root) do |root| + write_tree(root, { + "modern.gemspec" => <<~RUBY, + Gem::Specification.new do |spec| + spec.name = "modern" + spec.version = "0.1.0" + spec.summary = "Modern gem" + spec.homepage = "https://github.com/acme/modern" + spec.required_ruby_version = ">= 1.8.7" + end + RUBY + ".kettle-jem.yml" => <<~YAML, + rubygems: + min_ruby: "2.0" + templates: + root: template + apply: true + entries: + - modern.gemspec + YAML + "template/modern.gemspec.example" => <<~RUBY + Gem::Specification.new do |spec| + spec.name = "{KJ|GEM_NAME}" + spec.version = "0.0.0" + spec.summary = "Template summary" + spec.required_ruby_version = ">= 2.3.0" + end + RUBY + }) + + apply = described_class.apply_project(root, env: {}) + gemspec_report = apply.fetch(:recipe_reports).find { |report| report.fetch(:recipe_name) == "template_source_application_modern_gemspec" } + gemspec_content = gemspec_report.fetch(:final_content) + + expect(gemspec_content).to include('spec.required_ruby_version = ">= 2.0"') + expect(gemspec_content).not_to include("Gemspec/RequiredRubyVersion") + end + end + + + it "preserves missing runtime gemspec dependencies above the development dependency separator" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + + Dir.mktmpdir("kettle-jem-gemspec-runtime-dependency-slice", tmp_root) do |root| + write_tree(root, { + "example.gemspec" => <<~RUBY, + Gem::Specification.new do |gem| + gem.name = "example" + gem.summary = "Real summary" + gem.required_ruby_version = ">= 4.0" + gem.add_dependency("json", "~> 2.10") + gem.add_development_dependency("rubocop", "~> 1.70") + end + RUBY + ".kettle-jem.yml" => <<~YAML, + templates: + root: template + apply: true + entries: + - example.gemspec + YAML + "template/example.gemspec.example" => <<~RUBY + Gem::Specification.new do |spec| + spec.name = "example" + spec.summary = "TODO: Write a short summary" + spec.required_ruby_version = ">= 4.0" + spec.add_dependency("version_gem", "~> 1.1", ">= 1.1.14") + + # NOTE: It is preferable to list development dependencies in the gemspec due to increased + # visibility and discoverability. + + spec.add_development_dependency("rake", "~> 13.0") + end + RUBY + }) + + apply = described_class.apply_project(root, env: {}) + gemspec_report = apply.fetch(:recipe_reports).find do |report| + report.fetch(:recipe_name) == "template_source_application_example_gemspec" + end + gemspec_content = gemspec_report.fetch(:final_content) + runtime_index = gemspec_content.index(%(spec.add_dependency("json", "~> 2.10"))) + separator_index = gemspec_content.index("# NOTE: It is preferable") + development_index = gemspec_content.index(%(spec.add_development_dependency("rubocop", "~> 1.70"))) + + expect(gemspec_content).to include(%(spec.add_dependency("json", "~> 2.10"))) + expect(gemspec_content).to include(%(spec.add_development_dependency("rubocop", "~> 1.70"))) + expect(runtime_index).to be < separator_index + expect(development_index).to be > separator_index + expect(File.read(File.join(root, "example.gemspec"))).to eq(gemspec_content) + end + end + + + it "keeps the greater version requirement for template-managed gemspec dependencies" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + + Dir.mktmpdir("kettle-jem-gemspec-template-managed-dependencies", tmp_root) do |root| + write_tree(root, { + "example.gemspec" => <<~RUBY, + Gem::Specification.new do |gem| + gem.name = "example" + gem.summary = "Real summary" + gem.required_ruby_version = ">= 3.2" + gem.add_dependency("json", "~> 2.10") + gem.add_development_dependency("kettle-dev", "~> 2.0") + gem.add_development_dependency("rake", "~> 13.1") + gem.add_development_dependency("custom-dev", ">= 1") + end + RUBY + ".kettle-jem.yml" => <<~YAML, + templates: + root: template + apply: true + entries: + - example.gemspec + YAML + "template/example.gemspec.example" => <<~RUBY + Gem::Specification.new do |spec| + spec.name = "example" + spec.summary = "TODO: Write a short summary" + spec.required_ruby_version = ">= 3.2" + spec.add_dependency("version_gem", "~> 1.1", ">= 1.1.14") + + # NOTE: It is preferable to list development dependencies in the gemspec due to increased + # visibility and discoverability. + + spec.add_development_dependency("kettle-dev", "~> 2.3", ">= 2.3.7") + spec.add_development_dependency("rake", "~> 13.0") + end + RUBY + }) + + apply = described_class.apply_project(root, env: {}) + gemspec_report = apply.fetch(:recipe_reports).find do |report| + report.fetch(:recipe_name) == "template_source_application_example_gemspec" + end + gemspec_content = gemspec_report.fetch(:final_content) + + expect(gemspec_content).to include(%(spec.add_dependency("json", "~> 2.10"))) + expect(gemspec_content).to include(%(spec.add_development_dependency("custom-dev", ">= 1"))) + expect_gemspec_dependency_declared(gemspec_content, "kettle-dev", kind: :add_development_dependency) + expect(gemspec_content).to include(%(spec.add_development_dependency("rake", "~> 13.1"))) + expect(gemspec_content).not_to include(%(spec.add_development_dependency("kettle-dev", "~> 2.0")\n)) + expect(gemspec_content).not_to include(%(spec.add_development_dependency("rake", "~> 13.0"))) + expect(File.read(File.join(root, "example.gemspec"))).to eq(gemspec_content) + end + end + + + it "does not duplicate runtime gemspec dependencies as development dependencies" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + + Dir.mktmpdir("kettle-jem-gemspec-runtime-dev-dedup-slice", tmp_root) do |root| + write_tree(root, { + "example.gemspec" => <<~RUBY, + Gem::Specification.new do |gem| + gem.name = "example" + gem.summary = "Real summary" + gem.required_ruby_version = ">= 2.4" + gem.add_dependency("kettle-test", "~> 2.0", ">= 2.0.11") + end + RUBY + ".kettle-jem.yml" => <<~YAML, + templates: + root: template + apply: true + entries: + - example.gemspec + YAML + "template/example.gemspec.example" => <<~RUBY + Gem::Specification.new do |spec| + spec.name = "example" + spec.summary = "TODO: Write a short summary" + spec.required_ruby_version = ">= 2.4" + spec.add_dependency("version_gem", "~> 1.1", ">= 1.1.14") + + # NOTE: It is preferable to list development dependencies in the gemspec due to increased + # visibility and discoverability. + + spec.add_development_dependency("kettle-test", "~> 2.0", ">= 2.0.11") + spec.add_development_dependency("rake", "~> 13.0") + end + RUBY + }) + + apply = described_class.apply_project(root, env: {}) + gemspec_report = apply.fetch(:recipe_reports).find do |report| + report.fetch(:recipe_name) == "template_source_application_example_gemspec" + end + gemspec_content = gemspec_report.fetch(:final_content) + + expect(gemspec_content.scan('add_dependency("kettle-test"').size).to eq(1) + expect(gemspec_content).not_to include(%(add_development_dependency("kettle-test"))) + expect(gemspec_content).to include(%(spec.add_development_dependency("rake", "~> 13.0"))) + expect(File.read(File.join(root, "example.gemspec"))).to eq(gemspec_content) + end + end + + + it "keeps old runtime dependency customizations above the development dependency note block" do + template = <<~RUBY + Gem::Specification.new do |spec| + spec.name = "demo" + spec.version = "1.0.0" + spec.add_dependency("version_gem", "~> 1.1", ">= 1.1.9") # ruby >= 2.2.0 + + # NOTE: It is preferable to list development dependencies in the gemspec due to increased + # visibility and discoverability. + + # Dev, Test, & Release Tasks + spec.add_development_dependency("kettle-dev", "~> 2.3", ">= 2.3.7") # ruby >= 2.4.0 + + # Security + spec.add_development_dependency("bundler-audit", "~> 0.9.3") # ruby >= 2.0.0 + end + RUBY + destination = <<~RUBY + Gem::Specification.new do |gem| + gem.name = "demo" + gem.version = "1.0.0" + gem.add_dependency("version_gem", "~> 1.1", ">= 1.1.9") # ruby >= 2.2.0 + # Dev tooling (runtime dep -- kettle-jem extends kettle-dev's functionality) + gem.add_dependency("kettle-dev", "~> 2.2", ">= 2.2.10") # ruby >= 2.4.0 + + # NOTE: It is preferable to list development dependencies in the gemspec due to increased + # visibility and discoverability. + + # Security + gem.add_development_dependency("bundler-audit", "~> 0.9.3") # ruby >= 2.0.0 + end + RUBY + + merged = described_class.merge_gemspec_template_source(template, destination, facts: {package: {name: "demo"}}) + + expect { RubyVM::InstructionSequence.compile(merged) }.not_to raise_error + expect_gemspec_dependency_declared(merged, "kettle-dev", kind: :add_dependency) + expect(merged).not_to include('spec.add_development_dependency("kettle-dev"') + expect(merged).to include("# visibility and discoverability.\n\n # Security") + expect(merged).not_to include("# visibility and discoverability.\n\n\n # Security") + + runtime_index = merged.index('spec.add_dependency("kettle-dev"') + note_index = merged.index("# NOTE: It is preferable to list development dependencies in the gemspec due to increased") + bundler_audit_index = merged.index('spec.add_development_dependency("bundler-audit", "~> 0.9.3")') + + expect(runtime_index).to be < note_index + expect(note_index).to be < bundler_audit_index + end + + + it "does not accumulate duplicate blank section separators across repeated gemspec merges" do + template = <<~RUBY + Gem::Specification.new do |spec| + spec.name = "demo" + spec.version = "1.0.0" + spec.required_ruby_version = ">= 3.2.0" + spec.metadata["rubygems_mfa_required"] = "true" + + # Specify which files are part of the released package. + spec.files = Dir[ + "lib/**/*.rb", + ] + spec.require_paths = ["lib"] + + # Utilities + spec.add_dependency("version_gem", "~> 1.1") + + # NOTE: It is preferable to list development dependencies in the gemspec due to increased + # visibility and discoverability. + + # Dev, Test, & Release Tasks + spec.add_development_dependency("kettle-dev", "~> 2.3", ">= 2.3.7") + + # Security + spec.add_development_dependency("bundler-audit", "~> 0.9.3") + + # Tasks + spec.add_development_dependency("rake", "~> 13.0") + end + RUBY + destination = <<~RUBY + Gem::Specification.new do |spec| + spec.name = "demo" + spec.version = "1.0.0" + spec.required_ruby_version = ">= 3.2.0" + spec.metadata["allowed_push_host"] = "https://rubygems.org" + spec.metadata["rubygems_mfa_required"] = "true" + + # Specify which files should be added to the gem when it is released. + gemspec = File.basename(__FILE__) + spec.files = IO.popen(%w[git ls-files -z], chdir: __dir__, err: IO::NULL) do |ls| + ls.readlines("\\x0", chomp: true) + end + spec.require_paths = ["lib"] + + # Utilities + spec.add_dependency("version_gem", "~> 1.1") + + # NOTE: It is preferable to list development dependencies in the gemspec due to increased + # visibility and discoverability. + + # Dev, Test, & Release Tasks + spec.add_development_dependency("kettle-dev", "~> 2.0") + + # Security + spec.add_development_dependency("bundler-audit", "~> 0.9.3") + + # Tasks + spec.add_development_dependency("rake", "~> 13.0") + end + RUBY + facts = {package: {name: "demo"}} + + once = described_class.merge_gemspec_template_source(template, destination, facts: facts) + twice = described_class.merge_gemspec_template_source(template, once, facts: facts) + + expect { RubyVM::InstructionSequence.compile(once) }.not_to raise_error + expect(once).to include("spec.metadata[\"rubygems_mfa_required\"] = \"true\"\n\n # Specify which files") + expect(once).not_to include("spec.metadata[\"rubygems_mfa_required\"] = \"true\"\n\n\n # Specify which files") + expect(once).to include("spec.require_paths = [\"lib\"]\n\n # Utilities") + expect(once).not_to include("spec.require_paths = [\"lib\"]\n\n\n # Utilities") + expect_gemspec_dependency_declared(once, "kettle-dev", kind: :add_development_dependency) + expect(once).to match(/spec\.add_development_dependency\("kettle-dev".*\n\n # Security/) + expect(once).not_to match(/spec\.add_development_dependency\("kettle-dev".*\n\n\n # Security/) + expect(once).to include("spec.add_development_dependency(\"bundler-audit\", \"~> 0.9.3\")\n\n # Tasks") + expect(once).not_to include("spec.add_development_dependency(\"bundler-audit\", \"~> 0.9.3\")\n\n\n # Tasks") + expect(twice).to eq(once) + end + + + it "replaces executable destination gemspec files assignments with template package collections" do + template = <<~RUBY + Gem::Specification.new do |spec| + spec.name = "demo" + spec.version = "1.0.0" + + # Specify which files are part of the released package. + spec.files = Dir[ + "lib/**/*.rb", + "sig/**/*.rbs", + ] + end + RUBY + destination = <<~RUBY + Gem::Specification.new do |spec| + spec.name = "demo" + spec.version = "1.0.0" + + # Specify which files should be added to the gem when it is released. + # The `git ls-files -z` loads the files in the RubyGem that have been added into git. + gemspec = File.basename(__FILE__) + spec.files = IO.popen(%w[git ls-files -z], chdir: __dir__, err: IO::NULL) do |ls| + ls.readlines("\\x0", chomp: true).reject do |f| + (f == gemspec) || + f.start_with?(*%w[bin/ Gemfile .gitignore .rspec spec/ .github/ .rubocop.yml]) + end + end + end + RUBY + + merged = described_class.merge_gemspec_template_source(template, destination, facts: {package: {name: "demo"}}) + + expect { RubyVM::InstructionSequence.compile(merged) }.not_to raise_error + expect(merged).to include("# Specify which files are part of the released package.") + expect(merged).to include("spec.files = Dir[") + expect(merged).to include('"lib/**/*.rb"') + expect(merged).to include('"sig/**/*.rbs"') + expect(merged).not_to include("IO.popen(%w[git ls-files -z], chdir: __dir__, err: IO::NULL)") + end + + + it "normalizes destination gemspec receiver names while preserving destination-only fields" do + template = <<~RUBY + Gem::Specification.new do |spec| + spec.name = "example" + spec.version = "1.0.0" + spec.summary = "Template summary" + spec.add_dependency("foo", "~> 1.0") + end + RUBY + destination = <<~RUBY + Gem::Specification.new do |gem| + gem.name = "example" + gem.version = "2.0.0" + gem.summary = "Destination summary" + gem.authors = ["Someone"] + end + RUBY + + merged = described_class.merge_gemspec_template_source(template, destination, facts: {package: {name: "example"}}) + + expect { RubyVM::InstructionSequence.compile(merged) }.not_to raise_error + expect(merged).not_to match(/\bgem\./) + expect(merged).to include('spec.summary = "Destination summary"') + expect(merged).to include('spec.authors = ["Someone"]') + expect(merged).to include('spec.add_dependency("foo", "~> 1.0")') + end + + + it "preserves zero-byte template outputs" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + + Dir.mktmpdir("kettle-jem-zero-byte-template-slice", tmp_root) do |root| + write_tree(root, { + "example.gemspec" => <<~RUBY, + Gem::Specification.new do |spec| + spec.name = "example" + spec.summary = "Example" + spec.required_ruby_version = ">= 3.2" + end + RUBY + ".kettle-jem.yml" => <<~YAML, + templates: + root: template + apply: true + entries: + - REEK + YAML + "template/REEK" => "", + "REEK" => "" + }) + + apply = described_class.apply_project(root, env: {}) + reek_report = apply.fetch(:recipe_reports).find do |report| + report.fetch(:relative_path) == "REEK" + end + + expect(reek_report.fetch(:final_content)).to eq("") + expect(File.binread(File.join(root, "REEK"))).to eq("") + end + end + + + it "sorts runtime gemspec dependencies with RuboCop-compatible gem name ordering" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + + Dir.mktmpdir("kettle-jem-gemspec-rubocop-order-slice", tmp_root) do |root| + write_tree(root, { + "example.gemspec" => <<~RUBY, + Gem::Specification.new do |gem| + gem.name = "example" + gem.summary = "Real summary" + gem.required_ruby_version = ">= 4.0" + gem.add_dependency("rspec", "~> 3.0") + gem.add_dependency("rspec-block_is_expected", "~> 1.0") + gem.add_dependency("rspec-pending_for", "~> 0.1") + gem.add_dependency("rspec-stubbed_env", "~> 1.0", ">= 1.0.5") + gem.add_dependency("rspec_junit_formatter", "~> 0.6") + gem.add_dependency("silent_stream", "~> 1.0") + end + RUBY + ".kettle-jem.yml" => <<~YAML, + templates: + root: template + apply: true + entries: + - example.gemspec + YAML + "template/example.gemspec.example" => <<~RUBY + Gem::Specification.new do |spec| + spec.name = "example" + spec.summary = "TODO: Write a short summary" + spec.required_ruby_version = ">= 4.0" + spec.add_dependency("rspec", "~> 3.0") + spec.add_dependency("rspec-block_is_expected", "~> 1.0") + spec.add_dependency("rspec-pending_for", "~> 0.1") + spec.add_dependency("rspec-stubbed_env", "~> 1.0") + spec.add_dependency("rspec_junit_formatter", "~> 0.6") + spec.add_dependency("silent_stream", "~> 1.0") + end + RUBY + }) + + apply = described_class.apply_project(root, env: {}) + gemspec_report = apply.fetch(:recipe_reports).find do |report| + report.fetch(:recipe_name) == "template_source_application_example_gemspec" + end + gemspec_content = gemspec_report.fetch(:final_content) + junit_index = gemspec_content.index(%(spec.add_dependency("rspec_junit_formatter", "~> 0.6"))) + pending_index = gemspec_content.index(%(spec.add_dependency("rspec-pending_for", "~> 0.1"))) + stubbed_index = gemspec_content.index(%(spec.add_dependency("rspec-stubbed_env", "~> 1.0", ">= 1.0.6"))) + + expect(junit_index).to be < pending_index + expect(pending_index).to be < stubbed_index + expect(gemspec_content).not_to include(%(rspec-stubbed_env", "~> 1.0", ">= 1.0.5")) + expect(File.read(File.join(root, "example.gemspec"))).to eq(gemspec_content) + end + end + + + it "ports old gemspec emoji field replacement without duplicating the Gem::Specification block" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + contract_case = old_spec_contract.fetch(:cases).fetch(:gemspec_emoji_block_integrity) + package_name = contract_case.fetch(:package_name) + + Dir.mktmpdir("kettle-jem-old-gemspec-emoji-policy", tmp_root) do |root| + write_tree(root, { + "#{package_name}.gemspec" => <<~RUBY, + # coding: utf-8 + # frozen_string_literal: true + + Gem::Specification.new do |spec| + spec.name = "#{package_name}" + spec.version = "2.0.0" + spec.authors = ["Kettle Maintainer"] + spec.email = ["maintainer@example.com"] + spec.summary = "#{contract_case.fetch(:summary)}" + spec.description = "#{contract_case.fetch(:description)}" + spec.homepage = "https://github.com/structuredmerge/#{package_name}" + spec.licenses = ["MIT"] + spec.required_ruby_version = ">= 4.0" + spec.require_paths = ["lib"] + spec.bindir = "exe" + spec.executables = ["#{contract_case.fetch(:executable)}"] + spec.add_development_dependency("gitmoji-regex", "~> 2.0", ">= 2.0.4") + end + RUBY + ".kettle-jem.yml" => <<~YAML, + templates: + root: template + apply: true + entries: + - source: gem.gemspec + target: #{package_name}.gemspec + YAML + "template/gem.gemspec.example" => <<~RUBY + # coding: utf-8 + # frozen_string_literal: true + + Gem::Specification.new do |spec| + spec.name = "{KJ|GEM_NAME}" + spec.version = "1.0.0" + spec.authors = ["Template Author"] + spec.email = ["template@example.com"] + spec.summary = "🍲 " + spec.description = "🍲 " + spec.homepage = "https://github.com/structuredmerge/{KJ|GEM_NAME}" + spec.licenses = ["MIT"] + spec.required_ruby_version = ">= 2.3.0" + spec.require_paths = ["lib"] + spec.bindir = "exe" + spec.executables = [] + spec.add_development_dependency("{KJ|GEM_NAME}", "~> 1.0") + spec.add_development_dependency("rake", "~> 13.0") + end + RUBY + }) + + apply = described_class.apply_project(root, env: {}, run_options: {accept: true}) + report = apply.fetch(:recipe_reports).find { |candidate| candidate.fetch(:relative_path) == "#{package_name}.gemspec" } + gemspec_content = report.fetch(:final_content) + + expect { RubyVM::InstructionSequence.compile(gemspec_content) }.not_to raise_error + expect(gemspec_content.scan(/Gem::Specification\.new\s+do/).count).to eq(1) + expect(gemspec_content.scan(/^\s*spec\.name\s*=/).count).to eq(1) + expect(gemspec_content).not_to match(/^spec\./) + expect(gemspec_content).to include(contract_case.fetch(:summary)) + expect(gemspec_content).to include(contract_case.fetch(:description)) + expect(gemspec_content).to include(%(spec.executables = ["#{contract_case.fetch(:executable)}"])) + expect_gemspec_dependency_declared(gemspec_content, "gitmoji-regex", kind: :add_development_dependency) + expect(gemspec_content).not_to include("# Hence.") + expect(gemspec_content).not_to include("add_development_dependency(\"#{package_name}\"") + expect(File.read(File.join(root, "#{package_name}.gemspec"))).to eq(gemspec_content) + end + end + + + it "preserves multiline heredoc gemspec assignments as whole fields" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + + Dir.mktmpdir("kettle-jem-gemspec-heredoc-policy", tmp_root) do |root| + write_tree(root, { + "example.gemspec" => <<~RUBY, + # frozen_string_literal: true + + Gem::Specification.new do |gem| + gem.name = "example" + gem.version = "1.0.0" + gem.summary = "Existing summary" + gem.description = <<-DESC + First line + Second line + DESC + gem.homepage = "https://github.com/acme/example" + gem.licenses = ["MIT"] + gem.required_ruby_version = ">= 2.3" + gem.add_development_dependency("test-unit", ">= 3") + end + RUBY + ".kettle-jem.yml" => <<~YAML, + project_emoji: "🧪" + templates: + root: template + apply: true + entries: + - source: gem.gemspec + target: example.gemspec + YAML + "template/gem.gemspec.example" => <<~RUBY + # frozen_string_literal: true + + Gem::Specification.new do |spec| + spec.name = "{KJ|GEM_NAME}" + spec.version = "0.0.0" + spec.summary = "Template summary" + spec.description = "Template description" + spec.homepage = "https://github.com/acme/{KJ|GEM_NAME}" + spec.licenses = ["MIT"] + spec.required_ruby_version = ">= 2.3" + spec.add_development_dependency("rake", "~> 13.0") + end + RUBY + }) + + apply = described_class.apply_project(root, env: {}, run_options: {accept: true}) + report = apply.fetch(:recipe_reports).find { |candidate| candidate.fetch(:relative_path) == "example.gemspec" } + gemspec_content = report.fetch(:final_content) + + expect { RubyVM::InstructionSequence.compile(gemspec_content) }.not_to raise_error + expect(gemspec_content).to include("spec.description = <<-DESC") + expect(gemspec_content).not_to include("spec.description = 🧪") + expect(gemspec_content).to include("First line") + expect(gemspec_content).to include("Second line") + expect(gemspec_content).to include(" DESC") + expect(gemspec_content).to include('spec.homepage = "https://github.com/acme/example"') + expect_gemspec_dependency_declared(gemspec_content, "test-unit", kind: :add_development_dependency) + expect(gemspec_content).not_to match(/^spec\./) + end + end + + + it "ports old gemspec freeze block location preservation" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + contract_case = old_spec_contract.fetch(:cases).fetch(:freeze_block_location) + package_name = contract_case.fetch(:package_name) + + Dir.mktmpdir("kettle-jem-old-gemspec-freeze-block-policy", tmp_root) do |root| + write_tree(root, { + "#{package_name}.gemspec" => <<~RUBY, + # frozen_string_literal: true + + gem_version = "1.0.0" + + Gem::Specification.new do |spec| + spec.name = "#{package_name}" + spec.version = gem_version + spec.summary = "Freeze gem" + spec.bindir = "exe" + + #{contract_case.fetch(:open_marker)} + # Custom dependencies + # spec.add_dependency("#{contract_case.fetch(:custom_dependency)}") + #{contract_case.fetch(:close_marker)} + + spec.require_paths = ["lib"] + end + RUBY + ".kettle-jem.yml" => <<~YAML, + templates: + root: template + apply: true + entries: + - source: gem.gemspec + target: #{package_name}.gemspec + YAML + "template/gem.gemspec.example" => <<~RUBY + # frozen_string_literal: true + + Gem::Specification.new do |spec| + spec.name = "{KJ|GEM_NAME}" + spec.version = "2.0.0" + spec.summary = "Template summary" + spec.bindir = "exe" + spec.executables = [] + spec.require_paths = ["lib"] + end + RUBY + }) + + apply = described_class.apply_project(root, env: {}, run_options: {accept: true}) + report = apply.fetch(:recipe_reports).find { |candidate| candidate.fetch(:relative_path) == "#{package_name}.gemspec" } + gemspec_content = report.fetch(:final_content) + lines = gemspec_content.lines + gemspec_line = lines.find_index { |line| line.include?("Gem::Specification.new") } + freeze_line = lines.find_index { |line| line.include?(contract_case.fetch(:open_marker)) } + close_line = lines.find_index { |line| line.include?(contract_case.fetch(:close_marker)) } + block_end_line = lines.each_index.to_a.reverse.find { |index| lines[index].strip == "end" } + + expect { RubyVM::InstructionSequence.compile(gemspec_content) }.not_to raise_error + expect(freeze_line).to be > gemspec_line + expect(close_line).to be > freeze_line + expect(close_line).to be < block_end_line + expect(gemspec_content).to include(%(# spec.add_dependency("#{contract_case.fetch(:custom_dependency)}"))) + expect(gemspec_content).not_to include("To retain during kettle-jem templating") + expect(File.read(File.join(root, "#{package_name}.gemspec"))).to eq(gemspec_content) + end + end + + + it "preserves gemspec freeze blocks with configured custom freeze tokens" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-custom-gemspec-freeze-block-policy", tmp_root) do |root| + write_tree(root, { + "example.gemspec" => <<~RUBY, + # frozen_string_literal: true + + Gem::Specification.new do |spec| + spec.name = "example" + spec.version = "1.0.0" + spec.summary = "Freeze gem" + + # custom-freeze:freeze + # Custom dependencies + # spec.add_dependency("custom_dep") + # custom-freeze:unfreeze + + spec.require_paths = ["lib"] + end + RUBY + ".kettle-jem.yml" => <<~YAML, + defaults: + freeze_token: custom-freeze + templates: + root: template + apply: true + entries: + - source: gem.gemspec + target: example.gemspec + YAML + "template/gem.gemspec.example" => <<~RUBY + # frozen_string_literal: true + + Gem::Specification.new do |spec| + spec.name = "{KJ|GEM_NAME}" + spec.version = "2.0.0" + spec.summary = "Template summary" + spec.require_paths = ["lib"] + end + RUBY + }) + + apply = described_class.apply_project(root, env: {}, run_options: {accept: true}) + report = apply.fetch(:recipe_reports).find { |candidate| candidate.fetch(:relative_path) == "example.gemspec" } + gemspec_content = report.fetch(:final_content) + + expect { RubyVM::InstructionSequence.compile(gemspec_content) }.not_to raise_error + expect(gemspec_content).to include("# custom-freeze:freeze") + expect(gemspec_content).to include('# spec.add_dependency("custom_dep")') + expect(gemspec_content).to include("# custom-freeze:unfreeze") + expect(gemspec_content).not_to include("# kettle-jem:freeze") + expect(File.read(File.join(root, "example.gemspec"))).to eq(gemspec_content) + end + end + + + it "ports old gemspec self-dependency removal while preserving project fields" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + contract_case = old_spec_contract.fetch(:cases).fetch(:gemspec_self_dependency) + package_name = contract_case.fetch(:package_name) + + Dir.mktmpdir("kettle-jem-old-gemspec-policy", tmp_root) do |root| + write_tree(root, { + "#{package_name}.gemspec" => <<~RUBY, + Gem::Specification.new do |spec| + spec.name = "#{package_name}" + spec.summary = "Destination summary" + spec.description = "🧪 Destination description" + spec.homepage = "https://github.com/acme/#{package_name}" + spec.required_ruby_version = ">= 4.0" + end + RUBY + ".kettle-jem.yml" => <<~YAML, + project_emoji: "🧬" + templates: + root: template + apply: true + entries: + - source: gem.gemspec + target: #{package_name}.gemspec + YAML + "template/gem.gemspec.example" => <<~RUBY + Gem::Specification.new do |spec| + spec.name = "{KJ|GEM_NAME}" + spec.summary = "Template summary" + spec.description = "Template description" + spec.homepage = "https://template.example" + spec.required_ruby_version = ">= 3.2" + spec.add_dependency("{KJ|GEM_NAME}", "~> 1.0") + spec.add_dependency '{KJ|GEM_NAME}' + spec.add_development_dependency("{KJ|GEM_NAME}") + spec.add_development_dependency '{KJ|GEM_NAME}', ">= 0" + spec.add_dependency("#{contract_case.fetch(:preserved_dependency)}", ">= 2.8", "< 3") + end + RUBY + }) + + apply = described_class.apply_project(root, env: {}, run_options: {accept: true}) + report = apply.fetch(:recipe_reports).find do |candidate| + candidate.fetch(:relative_path) == "#{package_name}.gemspec" + end + gemspec_content = report.fetch(:final_content) + + expect(gemspec_content).to include(%(spec.name = "#{package_name}")) + expect(gemspec_content).to include('spec.summary = "🧬 Destination summary"') + expect(gemspec_content).to include('spec.description = "🧬 Destination description"') + expect(gemspec_content).to include(%(spec.homepage = "https://github.com/acme/#{package_name}")) + expect(gemspec_content).to include('spec.required_ruby_version = ">= 4.0"') + expect(gemspec_content).to include(%(spec.add_dependency("#{contract_case.fetch(:preserved_dependency)}", ">= 2.8", "< 3"))) + expect(gemspec_content).not_to match( + /add_(?:development_)?dependency\s*\(?\s*["']#{Regexp.escape(contract_case.fetch(:removed_dependency))}["']/ + ) + expect(report.dig(:report_envelope, :report, :step_reports, 0, :metadata, :ruby_template_policy, :operations)).to include( + include(operation: "delete_self_dependency_declarations", deleted_dependency_count: 4) + ) + end + end + + + it "keeps multiline gemspec descriptions valid when adding the project emoji" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + package_name = "oauth2-mcp" + + Dir.mktmpdir("kettle-jem-gemspec-emoji", tmp_root) do |root| + write_tree(root, { + "#{package_name}.gemspec" => <<~RUBY, + Gem::Specification.new do |spec| + spec.name = "#{package_name}" + spec.summary = "OAuth 2.1 resource-server helpers for MCP servers." + spec.description = "oauth2-mcp provides Ruby helpers for securing HTTP Model Context Protocol servers " \\ + "with OAuth protected-resource metadata, bearer challenges, and scoped authorization." + spec.homepage = "https://github.com/ruby-oauth/oauth2-mcp" + spec.required_ruby_version = ">= 3.2" + end + RUBY + ".kettle-jem.yml" => <<~YAML, + project_emoji: "🔮" + templates: + root: template + apply: true + entries: + - source: gem.gemspec + target: #{package_name}.gemspec + YAML + "template/gem.gemspec.example" => <<~RUBY + Gem::Specification.new do |spec| + spec.name = "{KJ|GEM_NAME}" + spec.summary = "{KJ|PROJECT_EMOJI} " + spec.description = "{KJ|PROJECT_EMOJI} " + spec.homepage = "https://template.example" + spec.required_ruby_version = ">= 3.2" + end + RUBY + }) + + apply = described_class.apply_project(root, env: {}, run_options: {accept: true}) + report = apply.fetch(:recipe_reports).find do |candidate| + candidate.fetch(:relative_path) == "#{package_name}.gemspec" + end + gemspec_content = report.fetch(:final_content) + + expect { RubyVM::InstructionSequence.compile(gemspec_content) }.not_to raise_error + expect(gemspec_content).to include('spec.summary = "🔮 OAuth 2.1 resource-server helpers for MCP servers."') + expect(gemspec_content).to include('spec.description = "🔮 oauth2-mcp provides Ruby helpers') + expect(gemspec_content).not_to include("spec.description = 🔮") + end + end + + + it "keeps squiggly heredoc gemspec descriptions valid when adding the project emoji" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + package_name = "sanitize_email" + + Dir.mktmpdir("kettle-jem-gemspec-emoji-squiggly-heredoc", tmp_root) do |root| + write_tree(root, { + "#{package_name}.gemspec" => <<~RUBY, + Gem::Specification.new do |spec| + spec.name = "#{package_name}" + spec.summary = "Email Condom for your Ruby Server" + spec.description = <<~DESCRIPTION.strip + Email Condom for your Ruby Server. + In Rails, Sinatra, et al. + DESCRIPTION + spec.homepage = "https://github.com/pboling/sanitize_email" + spec.required_ruby_version = ">= 2.3" + spec.add_dependency(<<~GEM.strip, <<~REQ.strip) + rake + GEM + ~> 13.0 + REQ + end + RUBY + ".kettle-jem.yml" => <<~YAML, + project_emoji: "📧" + templates: + root: template + apply: true + entries: + - source: gem.gemspec + target: #{package_name}.gemspec + YAML + "template/gem.gemspec.example" => <<~RUBY + Gem::Specification.new do |spec| + spec.name = "{KJ|GEM_NAME}" + spec.summary = "{KJ|PROJECT_EMOJI} " + spec.description = "{KJ|PROJECT_EMOJI} " + spec.homepage = "https://template.example" + spec.required_ruby_version = ">= 2.3" + end + RUBY + }) + + apply = described_class.apply_project(root, env: {}, run_options: {accept: true}) + report = apply.fetch(:recipe_reports).find do |candidate| + candidate.fetch(:relative_path) == "#{package_name}.gemspec" + end + gemspec_content = report.fetch(:final_content) + + expect { RubyVM::InstructionSequence.compile(gemspec_content) }.not_to raise_error + expect(gemspec_content).to include("spec.description = <<~DESCRIPTION.strip") + expect(gemspec_content).to include("Email Condom for your Ruby Server.") + expect(gemspec_content).to include("DESCRIPTION") + expect(gemspec_content).to include("spec.add_dependency(<<~GEM.strip, <<~REQ.strip)") + expect(gemspec_content).to include("rake") + expect(gemspec_content).to include("REQ") + expect(gemspec_content).not_to include("spec.description = 📧") + end + end + +end diff --git a/gems/kettle-jem/spec/integration/github_workflow_template_spec.rb b/gems/kettle-jem/spec/integration/github_workflow_template_spec.rb new file mode 100644 index 000000000..64d9ec9a0 --- /dev/null +++ b/gems/kettle-jem/spec/integration/github_workflow_template_spec.rb @@ -0,0 +1,1173 @@ +# frozen_string_literal: true + +RSpec.describe Kettle::Jem, "GitHub workflow templating" do + include_context "with isolated kettle-jem environment" + include_context "with kettle-jem fixture contracts" + + it "does not synthesize a standalone coverage workflow outside the packaged template inventory" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-coverage-slice", tmp_root) do |root| + write_tree(root, { + "example.gemspec" => <<~RUBY, + Gem::Specification.new do |spec| + spec.name = "example" + spec.summary = "Example gem" + spec.required_ruby_version = ">= 3.2" + end + RUBY + ".kettle-jem.yml" => <<~YAML + workflows: + coverage: + enabled: true + appraisal: coverage + command: rake test + YAML + }) + + plan = described_class.plan_project(root, env: {}) + recipe_names = plan[:recipe_reports].map { |report| report.fetch(:recipe_name) } + expect(recipe_names).not_to include("github_actions_coverage_ci") + expect(plan[:changed_files]).not_to include(".github/workflows/coverage.yml") + end + end + + + it "removes legacy tests workflow files as obsolete GitHub Actions workflows" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-obsolete-tests-workflow-slice", tmp_root) do |root| + write_tree(root, { + "example.gemspec" => <<~RUBY, + Gem::Specification.new do |spec| + spec.name = "example" + spec.summary = "Example gem" + end + RUBY + ".kettle-jem.yml" => [ + "templates:", + " root: packaged", + " apply: true", + " entries: []", + "" + ].join("\n"), + ".github/workflows/tests.yml" => <<~YAML + name: Tests + on: + pull_request: + branches: + - '!*' + YAML + }) + + apply = described_class.apply_project(root, env: {}) + report = apply.fetch(:recipe_reports).find { |candidate| candidate.fetch(:relative_path) == ".github/workflows/tests.yml" } + + expect(report.fetch(:recipe_name)).to eq("github_actions_obsolete_workflow_cleanup_github_workflows_tests_yml") + expect(report.fetch(:metadata).fetch(:delete_file)).to be(true) + expect(File).not_to exist(File.join(root, ".github/workflows/tests.yml")) + end + end + + + it "projects configured workflow exec_cmd into GitHub workflow templates" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-workflow-exec-cmd-slice", tmp_root) do |root| + write_tree(root, { + "example.gemspec" => <<~RUBY, + Gem::Specification.new do |spec| + spec.name = "example" + spec.summary = "Example gem" + spec.required_ruby_version = ">= 3.2" + end + RUBY + ".kettle-jem.yml" => [ + "workflows:", + " exec_cmd: rake spec", + "templates:", + " root: template", + " apply: true", + " entries:", + " - .github/workflows/current.yml", + "" + ].join("\n"), + "template/.github/workflows/current.yml.example" => <<~YAML + name: Current + jobs: + test: + strategy: + matrix: + include: + - ruby: "3.2" + exec_cmd: "{KJ|CI:EXEC_CMD}" + steps: + - run: bundle exec ${{ matrix.exec_cmd }} + YAML + }) + + apply = described_class.apply_project(root, env: {"KJ_EXEC_CMD" => "kettle-test"}) + workflow_report = apply.fetch(:recipe_reports).find do |candidate| + candidate.fetch(:relative_path) == ".github/workflows/current.yml" + end + + expect(workflow_report.fetch(:final_content)).to include('exec_cmd: "kettle-test"') + end + end + + + it "normalizes obsolete Appraisal-relative workflow exec_cmd values" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-workflow-obsolete-exec-cmd-slice", tmp_root) do |root| + write_tree(root, { + "example.gemspec" => <<~RUBY, + Gem::Specification.new do |spec| + spec.name = "example" + spec.summary = "Example gem" + spec.required_ruby_version = ">= 3.2" + end + RUBY + ".kettle-jem.yml" => <<~YAML, + workflows: + exec_cmd: env KETTLE_TEST_RUNNER=rspec kettle-test -I ../spec --options ../.rspec ../spec + templates: + root: template + apply: true + entries: + - .github/workflows/current.yml + YAML + "template/.github/workflows/current.yml.example" => <<~YAML + name: Current + jobs: + test: + strategy: + matrix: + include: + - ruby: "3.2" + exec_cmd: "{KJ|CI:EXEC_CMD}" + steps: + - run: bundle exec ${{ matrix.exec_cmd }} + YAML + }) + + apply = described_class.apply_project(root, env: {}) + workflow_report = apply.fetch(:recipe_reports).find do |candidate| + candidate.fetch(:relative_path) == ".github/workflows/current.yml" + end + + expect(workflow_report.fetch(:final_content)).to include('exec_cmd: "kettle-test"') + end + end + + + it "fails closed for GitHub YAML template merges when the YAML provider reports a ProcessResult adapter failure" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-github-yaml-provider-regression", tmp_root) do |root| + write_tree(root, { + "example.gemspec" => <<~RUBY, + Gem::Specification.new do |spec| + spec.name = "example" + spec.summary = "Example gem" + end + RUBY + ".kettle-jem.yml" => <<~YAML, + project: destination + templates: + root: template + apply: true + entries: + - .github/FUNDING.yml + - .kettle-jem.yml + YAML + ".github/FUNDING.yml" => <<~YAML, + github: [destination] + custom: + - https://destination.example/fund + YAML + "template/.github/FUNDING.yml.example" => <<~YAML, + github: [template] + tidelift: rubygems/example + YAML + "template/.kettle-jem.yml.example" => <<~YAML + project: template + generated: true + YAML + }) + allow(Psych::Merge).to receive(:merge_yaml).and_return( + ok: false, + diagnostics: [{ + severity: "error", + category: "unsupported_feature", + message: "undefined method '[]' for an instance of TreeSitterLanguagePack::ProcessResult" + }], + policies: [] + ) + + expect do + described_class.plan_project(root, env: {}) + end.to raise_error(ArgumentError, /failed to merge yaml template \.github\/FUNDING\.yml: provider adapter failure/) + end + end + + + it "fails closed for Gemfile template merges when Prism cannot merge the Ruby DSL" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-gemfile-provider-regression", tmp_root) do |root| + write_tree(root, { + "example.gemspec" => <<~RUBY, + Gem::Specification.new do |spec| + spec.name = "example" + spec.summary = "Example gem" + end + RUBY + ".kettle-jem.yml" => <<~YAML, + templates: + root: template + apply: true + entries: + - Gemfile + files: + Gemfile: + strategy: merge + YAML + "Gemfile" => <<~RUBY, + source "https://gem.coop" + gem "example", path: "." + RUBY + "template/Gemfile.example" => <<~RUBY + source "https://gem.coop" + gemspec + gem "beta-tool" + RUBY + }) + allow(Prism::Merge).to receive(:merge_ruby).and_return( + ok: false, + diagnostics: [{ + severity: "error", + category: "unsupported_feature", + message: "undefined method '[]' for an instance of TreeSitterLanguagePack::ProcessResult" + }], + policies: [] + ) + + expect do + described_class.plan_project(root, env: {}) + end.to raise_error(ArgumentError, /failed to merge gemfile template Gemfile: provider adapter failure/) + end + end + + + it "strictly merges arbitrary top-level Gemfile dependencies from a template directory" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-gemfile-arbitrary-dependency-merge", tmp_root) do |root| + write_tree(root, { + "example.gemspec" => <<~RUBY, + Gem::Specification.new do |spec| + spec.name = "example" + spec.summary = "Example gem" + end + RUBY + ".kettle-jem.yml" => <<~YAML, + templates: + root: template + apply: true + entries: + - gemfiles/modular/custom.gemfile + YAML + "gemfiles/modular/custom.gemfile" => <<~RUBY, + source "https://example.invalid" + + gem "alpha-tool", ">= 0.alpha" + RUBY + "template/gemfiles/modular/custom.gemfile.example" => <<~RUBY + source "https://example.invalid" + + gem "alpha-tool", ">= 0.template" + gem "beta-tool", "~> 0.beta", require: false + RUBY + }) + + report = described_class.apply_project(root, env: {}).fetch(:recipe_reports).find do |candidate| + candidate.fetch(:recipe_name) == "template_source_application_gemfiles_modular_custom_gemfile" + end + + expect(report.fetch(:final_content)).to eq(<<~RUBY) + source "https://example.invalid" + + gem "alpha-tool", ">= 0.template" + gem "beta-tool", "~> 0.beta", require: false + RUBY + end + end + + + it "strictly merges arbitrary Gemfile dependency blocks and comments from a template directory" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-gemfile-arbitrary-block-merge", tmp_root) do |root| + write_tree(root, { + "example.gemspec" => <<~RUBY, + Gem::Specification.new do |spec| + spec.name = "example" + spec.summary = "Example gem" + end + RUBY + ".kettle-jem.yml" => <<~YAML, + templates: + root: template + apply: true + entries: + - gemfiles/modular/custom.gemfile + YAML + "gemfiles/modular/custom.gemfile" => <<~RUBY, + source "https://example.invalid" + + # destination alpha comment + gem "alpha-tool", ">= 0.alpha" + + group :test do + gem "alpha-test", ">= 0.alpha-test" + end + RUBY + "template/gemfiles/modular/custom.gemfile.example" => <<~RUBY + source "https://example.invalid" + + # template beta comment + gem "beta-tool", "~> 0.beta", require: false + + group :test do + gem "alpha-test", ">= 0.template-test" + gem "beta-test", "~> 0.beta-test" + end + + platforms :ruby do + gem "beta-runtime", ">= 0.beta-runtime" + end + RUBY + }) + + report = described_class.apply_project(root, env: {}).fetch(:recipe_reports).find do |candidate| + candidate.fetch(:recipe_name) == "template_source_application_gemfiles_modular_custom_gemfile" + end + + expect(report.fetch(:final_content)).to eq(<<~RUBY) + source "https://example.invalid" + + # template beta comment + gem "beta-tool", "~> 0.beta", require: false + + # destination alpha comment + gem "alpha-tool", ">= 0.alpha" + + group :test do + gem "alpha-test", ">= 0.template-test" + gem "beta-test", "~> 0.beta-test" + end + + platforms :ruby do + gem "beta-runtime", ">= 0.beta-runtime" + end + RUBY + end + end + + + it "merges custom workflow YAML snippets without replacing destination jobs" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-custom-workflow-yaml-slice", tmp_root) do |root| + write_tree(root, { + "example.gemspec" => <<~RUBY, + Gem::Specification.new do |spec| + spec.name = "example" + spec.summary = "Example gem" + end + RUBY + ".github/workflows/custom-ci.yml" => <<~YAML + name: Custom CI + on: + pull_request: + jobs: + spec: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: ruby/setup-ruby@v1 + - uses: actions/upload-artifact@v4 + - uses: codecov/codecov-action@v6 + - uses: coverallsapp/github-action@main + - uses: actions/dependency-review-action@v4 + - uses: github/codeql-action/init@v4 + - uses: github/codeql-action/autobuild@v4 + - uses: github/codeql-action/analyze@v4 + - uses: pozil/auto-assign-issue@v2 + - uses: apache/skywalking-eyes/dependency@v0.8.0 + - uses: sarisia/actions-status-discord@v1 + - name: Project-specific check + run: bundle exec rake custom + YAML + }) + + plan = described_class.plan_project(root, env: {}) + report = plan.fetch(:recipe_reports).find do |candidate| + candidate.fetch(:relative_path) == ".github/workflows/custom-ci.yml" + end + content = report.fetch(:final_content) + + expect(report.fetch(:recipe_name)).to start_with("github_actions_workflow_snippets_") + expect(content).to include("permissions:\n contents: read") + expect(content).to include("concurrency:\n group: \"${{ github.workflow }}-${{ github.ref }}\"") + expect_pinned_action(content, "actions/checkout") + expect_pinned_action(content, "ruby/setup-ruby") + expect_pinned_action(content, "actions/upload-artifact") + expect_pinned_action(content, "codecov/codecov-action") + expect_pinned_action(content, "coverallsapp/github-action") + expect_pinned_action(content, "actions/dependency-review-action") + expect_pinned_action(content, "github/codeql-action/init") + expect_pinned_action(content, "github/codeql-action/autobuild") + expect_pinned_action(content, "github/codeql-action/analyze") + expect_pinned_action(content, "pozil/auto-assign-issue") + expect_pinned_action(content, "apache/skywalking-eyes/dependency") + expect_pinned_action(content, "sarisia/actions-status-discord") + expect(content).to include("Project-specific check") + expect(content).to include("bundle exec rake custom") + expect(content).to end_with("\n") + end + end + + + it "normalizes GitHub Action refs when merging packaged workflow templates" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-packaged-workflow-action-pin-slice", tmp_root) do |root| + write_tree(root, { + "example.gemspec" => <<~RUBY, + Gem::Specification.new do |spec| + spec.name = "example" + spec.summary = "Example gem" + spec.required_ruby_version = ">= 2.4" + end + RUBY + ".kettle-jem.yml" => <<~YAML, + ruby: + test_minimum: "2.4" + templates: + root: packaged + apply: true + entries: + - .github/workflows/ruby-2.4.yml + YAML + ".github/workflows/ruby-2.4.yml" => <<~YAML + name: Ruby 2.4 + jobs: + test: + runs-on: ubuntu-22.04 + steps: + - name: Checkout + uses: actions/checkout@v6 + - name: Setup Ruby & RubyGems + uses: ruby/setup-ruby@v1 + YAML + }) + + plan = described_class.plan_project(root, env: {}) + report = plan.fetch(:recipe_reports).find do |candidate| + candidate.fetch(:relative_path) == ".github/workflows/ruby-2.4.yml" + end + content = report.fetch(:final_content) + + expect(report.fetch(:recipe_name)).to start_with("template_source_application_") + expect_pinned_action(content, "actions/checkout") + expect_pinned_action(content, "ruby/setup-ruby") + expect(content).not_to include("actions/checkout@v6") + expect(content).not_to include("ruby/setup-ruby@v1") + end + end + + + it "preserves newer destination GitHub Action SHA pins when accepting workflow templates" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-workflow-action-pin-preserve-slice", tmp_root) do |root| + newer_checkout_sha = "1111111111111111111111111111111111111111" + template_checkout_sha = "9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0" + destination_setup_ruby_sha = "2222222222222222222222222222222222222222" + write_tree(root, { + "example.gemspec" => <<~RUBY, + Gem::Specification.new do |spec| + spec.name = "example" + spec.summary = "Example gem" + spec.required_ruby_version = ">= 3.2" + end + RUBY + ".kettle-jem.yml" => <<~YAML, + templates: + root: template + apply: true + entries: + - .github/workflows/current.yml + patterns: + - path: ".github/workflows/**" + strategy: accept_template + YAML + ".github/workflows/current.yml" => <<~YAML, + name: Current + jobs: + test: + steps: + - uses: actions/checkout@#{newer_checkout_sha} # v7.0.0 + - uses: ruby/setup-ruby@#{destination_setup_ruby_sha} # v1.0.0 + YAML + "template/.github/workflows/current.yml.example" => <<~YAML + name: Current + jobs: + test: + steps: + - uses: actions/checkout@#{template_checkout_sha} # v7.0.0 + - uses: ruby/setup-ruby@v1 + YAML + }) + + plan = described_class.plan_project(root, env: {}) + report = plan.fetch(:recipe_reports).find do |candidate| + candidate.fetch(:relative_path) == ".github/workflows/current.yml" + end + content = report.fetch(:final_content) + + expect(report.dig(:metadata, :template_source_preference)).to include(strategy: "accept_template") + expect(content).to include("actions/checkout@#{newer_checkout_sha} # v7.0.0") + expect(content).not_to include("actions/checkout@#{template_checkout_sha} # v7.0.0") + expect_pinned_action(content, "ruby/setup-ruby") + expect(content).not_to include("ruby/setup-ruby@v1") + expect(report.dig(:metadata, :stale_github_workflow_template_pins)).to contain_exactly( + include( + path: ".github/workflows/current.yml", + action: "actions/checkout", + version: "v7.0.0", + preserved_sha: newer_checkout_sha, + template_sha: template_checkout_sha + ) + ) + expect(plan.fetch(:warnings)).to contain_exactly( + include("GitHub Actions template pins appear stale for .github/workflows/current.yml") + ) + end + end + + + it "normalizes GitHub Action refs in existing workflows outside the active recipe set" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-unmanaged-workflow-action-pin-slice", tmp_root) do |root| + write_tree(root, { + "example.gemspec" => <<~RUBY, + Gem::Specification.new do |spec| + spec.name = "example" + spec.summary = "Example gem" + spec.required_ruby_version = ">= 2.4" + end + RUBY + ".kettle-jem.yml" => <<~YAML, + repository: + topology: monorepo-subproject + YAML + ".github/workflows/current.yml" => <<~YAML + name: Current MRI + jobs: + test: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v6 + - name: Setup Ruby + uses: ruby/setup-ruby@v1 + YAML + }) + + apply = described_class.apply_project(root, env: {}, run_options: {accept: true}) + content = File.read(File.join(root, ".github/workflows/current.yml")) + post_step = apply.fetch(:post_apply_steps).find { |step| step.fetch(:name) == "github_actions_pin_sync" } + + expect(post_step).to include( + status: "applied", + changed_files: [".github/workflows/current.yml"] + ) + expect_pinned_action(content, "actions/checkout") + expect_pinned_action(content, "ruby/setup-ruby") + expect(content).not_to include("actions/checkout@v6") + expect(content).not_to include("ruby/setup-ruby@v1") + end + end + + + it "deletes skipped packaged workflows that already exist" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-skipped-workflow-action-pin-slice", tmp_root) do |root| + write_tree(root, { + "example.gemspec" => <<~RUBY, + Gem::Specification.new do |spec| + spec.name = "example" + spec.summary = "Example gem" + spec.required_ruby_version = ">= 2.4" + end + RUBY + ".kettle-jem.yml" => <<~YAML, + ruby: + test_minimum: "2.3" + templates: + root: packaged + apply: true + entries: + - .github/workflows/ruby-2.3.yml + YAML + ".github/workflows/ruby-2.3.yml" => <<~YAML + name: Ruby 2.3 + jobs: + test: + runs-on: ubuntu-22.04 + steps: + - uses: actions/checkout@v6 + - uses: ruby/setup-ruby@v1 + YAML + }) + + plan = described_class.plan_project(root, env: {}) + report = plan.fetch(:recipe_reports).find do |candidate| + candidate.fetch(:relative_path) == ".github/workflows/ruby-2.3.yml" + end + + expect(report.fetch(:recipe_name)).to start_with("github_actions_inactive_packaged_workflow_cleanup_") + expect(report.fetch(:metadata)).to include(delete_file: true) + end + end + + + it "deletes legacy dashed Ruby workflow files when dotted packaged workflows replace them" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-legacy-dashed-ruby-workflow-slice", tmp_root) do |root| + write_tree(root, { + "example.gemspec" => <<~RUBY, + Gem::Specification.new do |spec| + spec.name = "example" + spec.summary = "Example gem" + spec.required_ruby_version = ">= 2.4" + end + RUBY + ".kettle-jem.yml" => <<~YAML, + ruby: + test_minimum: "2.4" + templates: + root: packaged + apply: true + entries: + - .github/workflows/ruby-2.4.yml + YAML + ".github/workflows/ruby-2-4.yml" => <<~YAML + name: MRI 2.4 + jobs: + test: + runs-on: ubuntu-22.04 + steps: + - uses: actions/checkout@v6 + YAML + }) + + plan = described_class.plan_project(root, env: {}) + report = plan.fetch(:recipe_reports).find do |candidate| + candidate.fetch(:relative_path) == ".github/workflows/ruby-2-4.yml" + end + + expect(report.fetch(:recipe_name)).to start_with("github_actions_inactive_packaged_workflow_cleanup_") + expect(report.fetch(:metadata)).to include(delete_file: true) + end + end + + + it "does not allow generated CI Ruby floor below 2.4" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-ci-floor-minimum-slice", tmp_root) do |root| + write_tree(root, { + "example.gemspec" => <<~RUBY, + Gem::Specification.new do |spec| + spec.name = "example" + spec.summary = "Example gem" + spec.required_ruby_version = ">= 2.3" + end + RUBY + ".kettle-jem.yml" => <<~YAML, + ruby: + test_minimum: "2.3" + templates: + root: packaged + apply: true + entries: + - .github/workflows/ruby-2.3.yml + YAML + ".github/workflows/ruby-2.3.yml" => <<~YAML + name: Ruby 2.3 + jobs: + test: + runs-on: ubuntu-22.04 + steps: + - uses: actions/checkout@v6 + - uses: ruby/setup-ruby@v1 + YAML + }) + + plan = described_class.plan_project(root, env: {}) + expect(plan.dig(:facts, :ci, :test_min_ruby)).to eq("2.4") + report = plan.fetch(:recipe_reports).find do |candidate| + candidate.fetch(:relative_path) == ".github/workflows/ruby-2.3.yml" + end + + expect(report.fetch(:recipe_name)).to start_with("github_actions_inactive_packaged_workflow_cleanup_") + expect(report.fetch(:metadata)).to include(delete_file: true) + end + end + + + it "deletes skipped packaged workflows for monorepo subgem profiles" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-subgem-skipped-workflow-slice", tmp_root) do |root| + write_tree(root, { + "example.gemspec" => <<~RUBY, + Gem::Specification.new do |spec| + spec.name = "example" + spec.summary = "Example gem" + spec.required_ruby_version = ">= 2.4" + end + RUBY + ".kettle-jem.yml" => <<~YAML, + templates: + profile: monorepo-subgem + root: packaged + apply: true + entries: + - .github/workflows/ruby-2.3.yml + YAML + ".github/workflows/ruby-2.3.yml" => <<~YAML + name: Ruby 2.3 + jobs: + test: + runs-on: ubuntu-22.04 + steps: + - uses: actions/checkout@v6 + - uses: ruby/setup-ruby@v1 + YAML + }) + + plan = described_class.plan_project(root, env: {}) + report = plan.fetch(:recipe_reports).find do |candidate| + candidate.fetch(:relative_path) == ".github/workflows/ruby-2.3.yml" + end + + expect(report.fetch(:recipe_name)).to start_with("github_actions_inactive_packaged_workflow_cleanup_") + expect(report.fetch(:metadata)).to include(delete_file: true) + end + end + + + it "keeps the packaged Discord notifier workflow opt-in via include" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-discord-workflow-opt-in-slice", tmp_root) do |root| + write_tree(root, { + "example.gemspec" => <<~RUBY, + Gem::Specification.new do |spec| + spec.name = "example" + spec.summary = "Example gem" + spec.required_ruby_version = ">= 3.2" + end + RUBY + ".kettle-jem.yml" => <<~YAML, + templates: + root: packaged + apply: true + entries: + - .github/workflows/discord-notifier.yml + YAML + ".github/workflows/discord-notifier.yml" => "name: stale notifier\n" + }) + + default_plan = described_class.plan_project(root, env: {}) + default_report = default_plan.fetch(:recipe_reports).find do |report| + report.fetch(:relative_path) == ".github/workflows/discord-notifier.yml" + end + expect(default_report.fetch(:recipe_name)).to start_with("github_actions_opt_in_workflow_cleanup_") + expect(default_report.fetch(:metadata)).to include(delete_file: true) + expect(default_plan.fetch(:changed_files)).to include(".github/workflows/discord-notifier.yml") + + included_plan = described_class.plan_project( + root, + env: {}, + run_options: {include: ".github/workflows/discord-notifier.yml"} + ) + expect(included_plan.fetch(:changed_files)).to include(".github/workflows/discord-notifier.yml") + included_report = included_plan.fetch(:recipe_reports).find do |report| + report.fetch(:relative_path) == ".github/workflows/discord-notifier.yml" + end + expect(included_report.fetch(:recipe_name)).to start_with("template_source_application_") + expect(included_report.fetch(:metadata)).not_to include(delete_file: true) + end + end + + + it "generates packaged framework workflow matrices only when configured" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-framework-workflow-slice", tmp_root) do |root| + write_tree(root, { + "example.gemspec" => <<~RUBY, + Gem::Specification.new do |spec| + spec.name = "example" + spec.summary = "Example gem" + spec.required_ruby_version = ">= 3.2" + end + RUBY + ".kettle-jem.yml" => <<~YAML, + templates: + root: packaged + apply: true + entries: + - .github/workflows/framework-ci.yml + YAML + ".github/workflows/framework-ci.yml" => "name: stale framework\n" + }) + + unconfigured_plan = described_class.plan_project(root, env: {}) + unconfigured_report = unconfigured_plan.fetch(:recipe_reports).find do |candidate| + candidate.fetch(:relative_path) == ".github/workflows/framework-ci.yml" + end + expect(unconfigured_plan.fetch(:changed_files)).to include(".github/workflows/framework-ci.yml") + expect(unconfigured_report.fetch(:recipe_name)).to start_with("github_actions_inactive_packaged_workflow_cleanup_") + expect(unconfigured_report.fetch(:metadata)).to include(delete_file: true) + + FileUtils.rm_f(File.join(root, ".github/workflows/framework-ci.yml")) + missing_unconfigured_plan = described_class.plan_project(root, env: {}) + expect(missing_unconfigured_plan.fetch(:changed_files)).not_to include(".github/workflows/framework-ci.yml") + + File.write(File.join(root, ".kettle-jem.yml"), <<~YAML) + workflows: + preset: framework + framework_matrix: + dimension: rails + gem: rails + versions: + - "7.0" + - label: "7.1+" + slug: "7_1" + requirement: ">= 7.1" + appraisal: ruby-3-2 + gemfile_pattern: rails_{version} + templates: + root: packaged + apply: true + entries: + - Appraisals + - .github/workflows/framework-ci.yml + YAML + + configured_plan = described_class.plan_project(root, env: {}) + report = configured_plan.fetch(:recipe_reports).find do |candidate| + candidate.fetch(:relative_path) == ".github/workflows/framework-ci.yml" + end + content = report.fetch(:final_content) + + expect(configured_plan.fetch(:changed_files)).to include(".github/workflows/framework-ci.yml") + expect(content).to include("name: Rails CI") + expect(content).to include(' - "3.2"') + expect(content).to include(" framework:") + expect(content).to include(' - framework_version: "7.0"') + expect(content).to include(' appraisal: "rails-7-0"') + expect(content).to include(' - framework_version: "7.1+"') + expect(content).to include(' appraisal: "ruby-3-2"') + expect(YAML.safe_load(content)).to be_a(Hash) + expect(content).to include("Appraisal.root.gemfile") + expect(content).to include("framework:") + + appraisals_report = configured_plan.fetch(:recipe_reports).find do |candidate| + candidate.fetch(:relative_path) == "Appraisals" + end + appraisals_content = appraisals_report.fetch(:final_content) + expect(appraisals_content).to include('appraise "ruby-3-2" do') + expect(appraisals_content).to include('eval_gemfile "rails_7_1"') + expect(content).to include("bundle exec appraisal ${{ matrix.framework.appraisal }} install") + expect(content).not_to include("framework_version: []") + expect(content).not_to include("gemfile: []") + + gemfile_report = configured_plan.fetch(:recipe_reports).find do |candidate| + candidate.fetch(:relative_path) == "gemfiles/rails_7_1" + end + expect(gemfile_report.fetch(:final_content)).not_to include("eval_gemfile") + expect(gemfile_report.fetch(:final_content)).to include('gem "rails", ">= 7.1"') + + default_requirement_report = configured_plan.fetch(:recipe_reports).find do |candidate| + candidate.fetch(:relative_path) == "gemfiles/rails_7_0" + end + expect(default_requirement_report.fetch(:final_content)).to include('gem "rails", "~> 7.0.0"') + + appraisals_report = configured_plan.fetch(:recipe_reports).find do |candidate| + candidate.fetch(:relative_path) == "Appraisals" + end + expect(appraisals_report.fetch(:final_content)).to include('appraise "ruby-3-2" do') + expect(appraisals_report.fetch(:final_content)).to include('eval_gemfile "rails_7_1"') + end + end + + + it "prunes packaged workflow files by configured engines and minimum Ruby" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-workflow-prune-slice", tmp_root) do |root| + write_tree(root, { + "example.gemspec" => <<~RUBY, + Gem::Specification.new do |spec| + spec.name = "example" + spec.summary = "Example gem" + spec.required_ruby_version = ">= 3.2" + end + RUBY + ".kettle-jem.yml" => <<~YAML + engines: + - ruby + templates: + root: packaged + apply: true + entries: + - .github/workflows/ruby-2.7.yml + - .github/workflows/ruby-3.2.yml + - .github/workflows/jruby.yml + - .github/workflows/truffle.yml + YAML + }) + + plan = described_class.plan_project(root, env: {}) + paths = plan.fetch(:recipe_reports).map { |report| report.fetch(:relative_path) } + + expect(paths).to include(".github/workflows/ruby-3.2.yml") + expect(paths).not_to include(".github/workflows/ruby-2.7.yml") + expect(paths).not_to include(".github/workflows/jruby.yml") + expect(paths).not_to include(".github/workflows/truffle.yml") + expect(plan.fetch(:changed_files)).to include(".github/workflows/ruby-3.2.yml") + expect(plan.fetch(:changed_files)).not_to include(".github/workflows/ruby-2.7.yml") + end + end + + + it "prunes disabled engine jobs from packaged multi-engine workflows" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-workflow-job-prune-slice", tmp_root) do |root| + write_tree(root, { + "example.gemspec" => <<~RUBY, + Gem::Specification.new do |spec| + spec.name = "example" + spec.summary = "Example gem" + spec.required_ruby_version = ">= 4.0.0" + end + RUBY + ".kettle-jem.yml" => <<~YAML + engines: + - ruby + templates: + root: packaged + apply: true + entries: + - .github/workflows/heads.yml + - .github/workflows/dep-heads.yml + YAML + }) + + plan = described_class.plan_project(root, env: {}) + reports = plan.fetch(:recipe_reports).each_with_object({}) do |report, index| + index[report.fetch(:relative_path)] = report + end + + %w[.github/workflows/heads.yml .github/workflows/dep-heads.yml].each do |path| + content = reports.fetch(path).fetch(:final_content) + workflow = YAML.safe_load(content, permitted_classes: [], aliases: true) + + expect(workflow.fetch("jobs").keys).to eq(["ruby"]) + expect(content).not_to include(" truffleruby:") + expect(content).not_to include(" jruby:") + end + end + end + + + it "prunes versioned engine workflows below minimum Ruby compatibility" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-engine-workflow-floor-slice", tmp_root) do |root| + write_tree(root, { + "example.gemspec" => <<~RUBY, + Gem::Specification.new do |spec| + spec.name = "example" + spec.summary = "Example gem" + spec.required_ruby_version = ">= 3.2" + end + RUBY + ".kettle-jem.yml" => <<~YAML, + engines: + - ruby + - jruby + - truffleruby + templates: + root: packaged + apply: true + entries: + - .github/workflows/jruby-9.1.yml + - .github/workflows/jruby-9.4.yml + - .github/workflows/jruby-10.0.yml + - .github/workflows/truffleruby-23.0.yml + - .github/workflows/truffleruby-23.1.yml + - .github/workflows/truffleruby-33.0.yml + YAML + ".github/workflows/truffleruby-23.2.yml" => <<~YAML + name: TruffleRuby 23.2 + jobs: + test: + strategy: + matrix: + include: + - ruby: "truffleruby-23.2" + YAML + }) + + plan = described_class.plan_project(root, env: {}) + paths = plan.fetch(:recipe_reports).map { |report| report.fetch(:relative_path) } + stale_report = plan.fetch(:recipe_reports).find do |report| + report.fetch(:relative_path) == ".github/workflows/truffleruby-23.2.yml" + end + + expect(paths).not_to include(".github/workflows/jruby-9.1.yml") + expect(paths).not_to include(".github/workflows/jruby-9.4.yml") + expect(paths).to include(".github/workflows/jruby-10.0.yml") + expect(paths).not_to include(".github/workflows/truffleruby-23.0.yml") + expect(paths).not_to include(".github/workflows/truffleruby-23.1.yml") + expect(paths).to include(".github/workflows/truffleruby-33.0.yml") + expect(stale_report).to include( + recipe_name: "github_actions_inactive_packaged_workflow_cleanup_github_workflows_truffleruby_23_2_yml", + changed: true + ) + expect(stale_report.dig(:metadata, :delete_file)).to be(true) + end + end + + + it "prunes packaged gemfile templates below minimum Ruby" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-gemfile-floor-slice", tmp_root) do |root| + write_tree(root, { + "example.gemspec" => <<~RUBY, + Gem::Specification.new do |spec| + spec.name = "example" + spec.summary = "Example gem" + spec.required_ruby_version = ">= 2.4" + end + RUBY + ".kettle-jem.yml" => <<~YAML, + templates: + root: packaged + apply: true + entries: + - gemfiles/modular/x_std_libs/r2.3/libs.gemfile + - gemfiles/modular/x_std_libs/r2.4/libs.gemfile + YAML + "gemfiles/modular/x_std_libs/r2.3/libs.gemfile" => "stale ruby 2.3 gemfile\n" + }) + + plan = described_class.plan_project(root, env: {}) + r23_report = plan.fetch(:recipe_reports).find do |candidate| + candidate.fetch(:relative_path) == "gemfiles/modular/x_std_libs/r2.3/libs.gemfile" + end + paths = plan.fetch(:recipe_reports).map { |report| report.fetch(:relative_path) } + + expect(paths).to include("gemfiles/modular/x_std_libs/r2.4/libs.gemfile") + expect(r23_report.fetch(:recipe_name)).to start_with("template_inactive_packaged_cleanup_") + expect(r23_report.fetch(:metadata)).to include(delete_file: true) + end + end + + + it "prunes packaged recording gemfile templates unless recording is configured" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-recording-gemfile-slice", tmp_root) do |root| + recording_path = "gemfiles/modular/recording/r4/recording.gemfile" + write_tree(root, { + "example.gemspec" => <<~RUBY, + Gem::Specification.new do |spec| + spec.name = "example" + spec.summary = "Example gem" + spec.required_ruby_version = ">= 3.2" + end + RUBY + ".kettle-jem.yml" => <<~YAML, + templates: + root: packaged + apply: true + entries: + - #{recording_path} + YAML + recording_path => "stale recording gemfile\n" + }) + + plan = described_class.plan_project(root, env: {}) + cleanup_report = plan.fetch(:recipe_reports).find do |candidate| + candidate.fetch(:relative_path) == recording_path + end + expect(cleanup_report.fetch(:recipe_name)).to start_with("template_inactive_packaged_cleanup_") + expect(cleanup_report.fetch(:metadata)).to include(delete_file: true) + + write_tree(root, { + ".kettle-jem.yml" => <<~YAML + workflows: + recording: true + templates: + root: packaged + apply: true + entries: + - #{recording_path} + YAML + }) + + opted_in = described_class.plan_project(root, env: {}) + paths = opted_in.fetch(:recipe_reports).map { |report| report.fetch(:relative_path) } + expect(paths).to include(recording_path) + expect(opted_in.fetch(:recipe_reports).find { |report| report.fetch(:relative_path) == recording_path }.fetch(:recipe_name)).not_to start_with("template_inactive_packaged_cleanup_") + end + end + + + it "disables checkout credential persistence in packaged GitHub workflows" do + workflow_templates = Dir[File.join(described_class::PACKAGED_TEMPLATE_ROOT, ".github/workflows/*.{yml,yaml}.example")] + checkout_templates = workflow_templates.select { |path| File.read(path).include?("uses: actions/checkout@") } + + expect(checkout_templates).not_to be_empty + checkout_templates.each do |path| + expect(File.read(path)).to include("persist-credentials: false"), path + end + end + + + it "updates root templating bootstrap dependencies before generated templating workflow commands run" do + workflow = File.read(File.join(described_class::PACKAGED_TEMPLATE_ROOT, ".github/workflows/templating.yml.example")) + + expect(workflow).to include("- name: Update templating bootstrap dependencies") + expect(workflow).to include("BUNDLE_GEMFILE: ${{ github.workspace }}/Gemfile") + expect(workflow).to include("K_JEM_TEMPLATING: \"true\"") + expect(workflow).to include("run: bundle update nomono") + expect(workflow.index("Update templating bootstrap dependencies")).to be < workflow.index("[Attempt 1] Appraisal") + end + +end diff --git a/gems/kettle-jem/spec/integration/readme_changelog_template_spec.rb b/gems/kettle-jem/spec/integration/readme_changelog_template_spec.rb new file mode 100644 index 000000000..8c41ec123 --- /dev/null +++ b/gems/kettle-jem/spec/integration/readme_changelog_template_spec.rb @@ -0,0 +1,1344 @@ +# frozen_string_literal: true + +RSpec.describe Kettle::Jem, "README and changelog templating" do + include_context "with isolated kettle-jem environment" + include_context "with kettle-jem fixture contracts" + + it "applies README style conditionals and reports missing integrations" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-readme-style-slice", tmp_root) do |root| + write_tree(root, { + "example.gemspec" => <<~RUBY, + Gem::Specification.new do |spec| + spec.name = "example" + spec.summary = "Example gem" + spec.licenses = ["PolyForm-Noncommercial-1.0.0"] + spec.required_ruby_version = ">= 3.2" + end + RUBY + ".kettle-jem.yml" => <<~YAML, + templates: + root: templates + apply: true + entries: + - README.md + readme: + integrations: + coveralls: false + YAML + "templates/README.md.example" => <<~MARKDOWN, + # 💎 Example + + [![CodeCov Test Coverage][🏀codecovi]][🏀codecov] [![Coveralls Test Coverage][🏀coveralls-img]][🏀coveralls] [![QLTY Test Coverage][🏀qlty-covi]][🏀qlty-cov] [![QLTY Maintainability][🏀qlty-mnti]][🏀qlty-mnt] [![CodeQL][🖐codeQL-img]][🖐codeQL] + + ## 🌻 Synopsis + + Template synopsis. + + ## 🦷 FLOSS Funding + + Funding template text. + + ## 🔐 Security + + Security template text. + + ## ⚙️ Configuration + + Template configuration. + + ## 🔧 Basic Usage + + Template usage. + MARKDOWN + "README.md" => <<~MARKDOWN + # 💎 Example + + ## 🌻 Synopsis + + Project synopsis. + + ## ⚙️ Configuration + + Project configuration. + + ## 🔧 Basic Usage + + Project usage. + MARKDOWN + }) + + plan = described_class.plan_project(root, env: {}) + report = plan[:recipe_reports].find { |candidate| candidate.fetch(:recipe_name) == "template_source_application_README_md" } + expect(report.fetch(:final_content)).to include("Project synopsis.") + expect(report.fetch(:final_content)).to include("Project configuration.") + expect(report.fetch(:final_content)).to include("Project usage.") + expect(report.fetch(:final_content)).not_to include("## 🦷 FLOSS Funding") + expect(report.fetch(:final_content)).not_to include("## 🔐 Security") + expect(report.fetch(:final_content)).not_to include("CodeCov Test Coverage") + expect(report.fetch(:final_content)).not_to include("Coveralls Test Coverage") + expect(report.fetch(:final_content)).not_to include("QLTY Test Coverage") + expect(report.fetch(:final_content)).not_to include("CodeQL") + expect(report.dig(:metadata, :readme_style, :floss_funding_enabled)).to be(false) + expect(report.dig(:metadata, :readme_style, :security_enabled)).to be(false) + expect(report.dig(:metadata, :readme_style, :disabled_integrations)).to contain_exactly("coveralls", "skywalking-eyes") + expect(report.dig(:metadata, :readme_style, :missing_integrations)).to contain_exactly("codecov", "qlty", "codeql") + end + end + + + it "creates a package README through the packaged README style API" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-readme-style-api-slice", tmp_root) do |root| + write_tree(root, { + "example.gemspec" => <<~RUBY + Gem::Specification.new do |spec| + spec.name = "example" + spec.summary = "Example gem" + spec.homepage = "https://github.com/structuredmerge/example" + spec.licenses = ["MIT"] + spec.required_ruby_version = ">= 3.2" + end + RUBY + }) + + plan = described_class.plan_readme_style(root, env: {}) + expect(plan.fetch(:changed)).to be(true) + expect(plan.fetch(:final_content)).to include("# 💎 Example") + expect(plan.fetch(:final_content)).to include("## 🌻 Synopsis") + expect(plan.fetch(:final_content)).not_to include("root package-family guide") + expect(plan.fetch(:final_content)).not_to include("Tokens to Remember") + + apply = described_class.apply_readme_style(root, env: {}) + expect(apply.fetch(:changed)).to be(true) + expect(File.read(File.join(root, "README.md"))).to eq(apply.fetch(:final_content)) + expect(described_class.plan_readme_style(root, env: {}).fetch(:changed)).to be(false) + end + end + + + it "merges CHANGELOG templates without replacing release history" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-changelog-template-merge-slice", tmp_root) do |root| + write_tree(root, { + "example.gemspec" => <<~RUBY, + Gem::Specification.new do |spec| + spec.name = "example" + spec.summary = "Example gem" + spec.homepage = "https://github.com/structuredmerge/example" + spec.licenses = ["MIT"] + spec.required_ruby_version = ">= 3.2" + end + RUBY + ".kettle-jem.yml" => <<~YAML, + templates: + root: templates + apply: true + entries: + - CHANGELOG.md + YAML + "templates/CHANGELOG.md.example" => <<~MARKDOWN, + # Changelog + + Template intro. + + ## [Unreleased] + + ### Added + + ### Changed + + ### Deprecated + + ### Removed + + ### Fixed + + ### Security + + [Unreleased]: https://example.com/template/compare/HEAD + MARKDOWN + "CHANGELOG.md" => <<~MARKDOWN + # Changelog + + Project intro. + + ## [Unreleased] + + ### Added + - Keep project pending feature. + - Keep nested detail. + + ### Fixed + - Keep project pending fix. + + ## [2.0.0] - 2026-01-02 + + - Existing release must survive. + + [Unreleased]: https://github.com/acme/example/compare/v2.0.0...HEAD + [2.0.0]: https://github.com/acme/example/compare/v1.0.0...v2.0.0 + MARKDOWN + }) + + plan = described_class.plan_project(root, env: {}) + report = plan[:recipe_reports].find { |candidate| candidate.fetch(:recipe_name) == "template_source_application_CHANGELOG_md" } + changelog = report.fetch(:final_content) + + expect(changelog).to include("Template intro.") + expect(changelog).not_to include("Project intro.") + expect(changelog).to include("Template intro.\n\n## [Unreleased]") + expect(changelog).to include("### Deprecated") + expect(changelog).to include("### Removed") + expect(changelog).to include("### Security") + expect(changelog).to include("[Unreleased]\n\n### Added\n\n- Keep project pending feature.") + expect(changelog).to include("### Fixed\n\n- Keep project pending fix.") + expect(changelog).to include("- Keep project pending feature.") + expect(changelog).to include(" - Keep nested detail.") + expect(changelog).to include("- Keep project pending fix.") + expect(changelog).to include("## [2.0.0] - 2026-01-02") + expect(changelog).to include("[2.0.0]: https://github.com/acme/example/compare/v1.0.0...v2.0.0") + expect(changelog).not_to include("[Unreleased]: https://example.com/template/compare/HEAD") + end + end + + + it "applies transferable changelog entries once while preserving project entries" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-changelog-transfer-slice", tmp_root) do |root| + write_tree(root, { + "example.gemspec" => <<~RUBY, + Gem::Specification.new do |spec| + spec.name = "example" + spec.summary = "Example gem" + spec.homepage = "https://github.com/structuredmerge/example" + spec.licenses = ["MIT"] + spec.required_ruby_version = ">= 3.2" + end + RUBY + ".kettle-jem.yml" => <<~YAML, + templates: + root: packaged + apply: false + entries: + - README.md + YAML + "CHANGELOG.md" => <<~MARKDOWN + # Changelog + + ## [Unreleased] + + ### Added + + - Project-authored item. + + ### Changed + + - kettle-jem-template-20260716-001 - Shim gemspec manifests now include + `LICENSE.md` instead of nonexistent `LICENSE.txt`. + + ### Fixed + + - Existing fix. + MARKDOWN + }) + + plan = described_class.plan_project(root, env: {}) + report = plan[:recipe_reports].find { |candidate| candidate.fetch(:recipe_name) == "changelog_unreleased" } + changelog = report.fetch(:final_content) + + expect(changelog.scan("kettle-jem-template-20260716-001").size).to eq(1) + expect(changelog).to include("- Project-authored item.") + expect(changelog).to include("- Existing fix.") + end + end + + + it "applies multiple missed transferable changelog entries without duplicating existing keys" do + changelog = <<~MARKDOWN + # Changelog + + ## [Unreleased] + + ### Changed + + - kettle-jem-template-20260716-001 - Already applied. + MARKDOWN + entries = [ + { + key: "kettle-jem-template-20260716-001", + lines: ["- kettle-jem-template-20260716-001 - Already applied."] + }, + { + key: "kettle-jem-template-20260716-002", + lines: [ + "- kettle-jem-template-20260716-002 - First missed transfer.", + " Continued detail." + ] + }, + { + key: "kettle-jem-template-20260716-003", + lines: ["- kettle-jem-template-20260716-003 - Second missed transfer."] + } + ] + + result = described_class.send(:apply_changelog_transfer_entries, changelog, entries) + + expect(result.scan("kettle-jem-template-20260716-001").size).to eq(1) + expect(result).to include("- kettle-jem-template-20260716-002 - First missed transfer.\n Continued detail.") + expect(result).to include("- kettle-jem-template-20260716-003 - Second missed transfer.") + end + + + it "keeps the real CHANGELOG template in canonical Unreleased form" do + template = File.read(project_root.join("lib/kettle/jem/templates/CHANGELOG.md.example")) + + expect(template).to include(<<~MARKDOWN) + ## [Unreleased] + + ### Added + + ### Changed + + ### Deprecated + + ### Removed + + ### Fixed + + ### Security + MARKDOWN + end + + + it "fills configured README section partials while preserving unconfigured manual sections" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-readme-partials-slice", tmp_root) do |root| + write_tree(root, { + "example.gemspec" => <<~RUBY, + Gem::Specification.new do |spec| + spec.name = "example" + spec.summary = "Example gem" + spec.homepage = "https://github.com/structuredmerge/example" + spec.licenses = ["MIT"] + spec.required_ruby_version = ">= 3.2" + end + RUBY + ".kettle-jem.yml" => <<~YAML, + templates: + root: templates + readme: + section_partials: + synopsis: readme/partials/synopsis.md + configuration: readme/partials/configuration.md + basic_usage: readme/partials/basic_usage.md + YAML + "templates/readme/partials/synopsis.md.example" => "Generated synopsis for {KJ|GEM_NAME}.\\n", + "templates/readme/partials/configuration.md.example" => "Generated configuration.\\n", + "templates/readme/partials/basic_usage.md.example" => "Generated usage.\\n", + "README.md" => <<~MARKDOWN + # 💎 Example + + ## 🌻 Synopsis + + Old synopsis. + + ## ⚙️ Configuration + + Old configuration. + + ## 🔧 Basic Usage + + Old usage. + MARKDOWN + }) + + plan = described_class.plan_readme_style(root, env: {}) + expect(plan.fetch(:final_content)).to include("Generated synopsis for example.") + expect(plan.fetch(:final_content)).to include("Generated configuration.") + expect(plan.fetch(:final_content)).to include("Generated usage.") + expect(plan.fetch(:final_content)).not_to include("Old synopsis.") + expect(plan.fetch(:final_content)).not_to include("Old configuration.") + expect(plan.fetch(:final_content)).not_to include("Old usage.") + expect(plan.dig(:readme_style, :section_partials, "synopsis", :selected_source)).to eq( + "templates/readme/partials/synopsis.md.example" + ) + end + end + + + it "loads packaged README section partials" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-packaged-readme-partials-slice", tmp_root) do |root| + write_tree(root, { + "kettle-jem.gemspec" => <<~RUBY, + Gem::Specification.new do |spec| + spec.name = "kettle-jem" + spec.summary = "Kettle Jem" + spec.homepage = "https://github.com/structuredmerge/kettle-jem" + spec.licenses = ["MIT"] + spec.required_ruby_version = ">= 3.2" + end + RUBY + ".kettle-jem.yml" => <<~YAML + templates: + root: packaged + readme: + section_partials: + synopsis: readme/partials/synopsis.md + configuration: readme/partials/configuration.md + basic_usage: readme/partials/basic_usage.md + YAML + }) + + plan = described_class.plan_readme_style(root, env: {}) + expect(plan.fetch(:final_content)).to include("Kettle template tool") + expect(plan.fetch(:final_content)).to include("Configuration shape") + expect(plan.fetch(:final_content)).to include("K_JEM_TEMPLATING=true kettle-jem install") + expect(plan.dig(:readme_style, :section_partials, "configuration", :source_root)).to eq("packaged") + end + end + + + it "removes Open Collective funding when disabled" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-opencollective-slice", tmp_root) do |root| + write_tree(root, { + "example.gemspec" => <<~RUBY, + Gem::Specification.new do |spec| + spec.name = "example" + spec.summary = "Example gem" + spec.required_ruby_version = ">= 3.2" + end + RUBY + ".kettle-jem.yml" => <<~YAML, + funding: + open_collective: false + templates: + root: packaged + entries: + - README.md + - source: FUNDING.md.example + target: FUNDING.md + YAML + ".github/FUNDING.yml" => <<~YAML, + github: [example] + open_collective: example + YAML + ".opencollective.yml" => <<~YAML, + collective: example + YAML + ".github/workflows/opencollective.yml" => <<~YAML + name: Open Collective + on: + workflow_dispatch: + jobs: + test: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + YAML + }) + + plan = described_class.plan_project(root, env: {}) + expect(plan.dig(:facts, :funding, :open_collective_disabled)).to be(true) + expect(plan.dig(:facts, :funding, :open_collective_disabled_source)).to eq("config.funding.open_collective") + expect(plan.dig(:facts, :funding, :open_collective_files)).to eq( + [".opencollective.yml", ".github/workflows/opencollective.yml"] + ) + expect(plan.dig(:facts, :funding, :urls)).not_to include("https://opencollective.com/example") + recipe_names = plan[:recipe_pack][:recipes].map { |recipe| recipe.fetch(:name) } + expect(recipe_names).to include("opencollective_disabled_file_cleanup_opencollective_yml") + expect(recipe_names).to include("opencollective_disabled_file_cleanup_github_workflows_opencollective_yml") + expect(recipe_names).not_to include("github_actions_workflow_snippets_github_workflows_opencollective_yml") + expect(plan.dig(:facts, :templates, :source_preferences)).to contain_exactly( + a_hash_including( + target_path: "README.md", + configured_source: "README.md", + selected_source: "README.md.example", + source_relative_path: "README.md.example", + source_root: "packaged", + selection_reason: "default_example_variant", + apply: false + ), + a_hash_including( + target_path: "FUNDING.md", + configured_source: "FUNDING.md.example", + selected_source: "FUNDING.md.no-osc.example", + source_relative_path: "FUNDING.md.no-osc.example", + source_root: "packaged", + selection_reason: "opencollective_disabled_no_osc_variant", + apply: false + ) + ) + template_report = plan[:recipe_reports].find do |report| + report.fetch(:recipe_name) == "template_source_preference_README_md" + end + expect(template_report.fetch(:changed)).to be(false) + expect(template_report.dig(:metadata, :template_source_preference, :selected_source)).to eq( + "README.md.example" + ) + expect(template_report.dig(:request_envelope, :request, :runtime_context, :template_source_preference, :selection_reason)).to eq( + "default_example_variant" + ) + funding_report = plan[:recipe_reports].find { |report| report.fetch(:recipe_name) == "github_funding_yml" } + expect(funding_report.fetch(:final_content)).not_to include("open_collective") + expect(funding_report.fetch(:final_content)).to include("tidelift: rubygems/example") + open_collective_reports = plan[:recipe_reports].select do |report| + report.fetch(:recipe_name).start_with?("opencollective_disabled_file_cleanup_") + end + expect(open_collective_reports.map { |report| report.fetch(:relative_path) }).to eq( + [".opencollective.yml", ".github/workflows/opencollective.yml"] + ) + expect(open_collective_reports).to all(satisfy { |report| report.fetch(:metadata).fetch(:delete_file) == true }) + + apply = described_class.apply_project(root, env: {}) + expect(apply[:changed_files]).to include(".opencollective.yml", ".github/workflows/opencollective.yml") + expect(File).not_to exist(File.join(root, ".opencollective.yml")) + expect(File).not_to exist(File.join(root, ".github/workflows/opencollective.yml")) + end + end + + + it "applies the packaged README Open Collective recipe from the canonical template" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-packaged-readme-no-opencollective", tmp_root) do |root| + write_tree(root, { + "example.gemspec" => <<~RUBY, + Gem::Specification.new do |spec| + spec.name = "example" + spec.summary = "Example gem" + spec.homepage = "https://github.com/acme/example" + spec.licenses = ["MIT"] + spec.required_ruby_version = ">= 3.2" + end + RUBY + ".kettle-jem.yml" => <<~YAML + funding: + open_collective: false + templates: + root: packaged + apply: true + entries: + - README.md + files: + README.md: + strategy: accept_template + YAML + }) + + apply = described_class.apply_project(root, env: {}, run_options: {skip_commit: true}) + readme_report = apply.fetch(:recipe_reports).find do |report| + report.fetch(:recipe_name) == "template_source_application_README_md" + end + readme = readme_report.fetch(:final_content) + + expect(readme_report.dig(:metadata, :template_source_preference, :selected_source)).to eq("README.md.example") + expect(readme).not_to include("KJ:OPEN_COLLECTIVE") + expect(readme).not_to include("KJ:NO_OPEN_COLLECTIVE") + expect(readme).not_to include("opencollective") + expect(readme).not_to include("Open Collective") + expect(readme).not_to include("kettle-readme-backers") + expect(readme).not_to include("Open Source Helpers") + expect(readme).not_to include("codetriage") + expect(readme).to include("Apache SkyWalking Eyes License Compatibility Check") + expect(readme).to include("[![Sponsor Me on Github][🖇sponsor-img]][🖇sponsor]") + expect(File.read(File.join(root, "README.md"))).to eq(readme) + end + end + + + it "updates the README KLOC badge from the current changelog release coverage" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-readme-kloc-slice", tmp_root) do |root| + write_tree(root, { + "example.gemspec" => <<~RUBY, + gem_version = Module.new.tap { |mod| Kernel.load("\#{__dir__}/lib/example/version.rb", mod) }::Example::Version::VERSION + + Gem::Specification.new do |spec| + spec.name = "example" + spec.summary = "Example gem" + spec.version = gem_version + spec.required_ruby_version = ">= 3.2" + end + RUBY + "lib/example/version.rb" => <<~RUBY, + module Example + module Version + VERSION = "1.2.3" + end + end + RUBY + ".kettle-jem.yml" => <<~YAML, + templates: + root: template + profile: full + apply: true + entries: + - README.md + files: + README.md: + strategy: accept_template + YAML + "CHANGELOG.md" => <<~MARKDOWN, + # Changelog + + ## [1.2.3] - 2026-05-23 + + ### Fixed + + - COVERAGE: 91.09% -- 3644/4000 lines in 80 files + MARKDOWN + "template/README.md.example" => <<~MARKDOWN + # {KJ|GEM_NAME} + + spec.add_dependency("{KJ|GEM_NAME}", "~> {KJ|GEM_MAJOR}.0") + + [🧮kloc-img]: https://img.shields.io/badge/KLOC-5.053-FFDD67.svg?style=for-the-badge&logo=YouTube&logoColor=blue + MARKDOWN + }) + + apply = described_class.apply_project(root, env: {}, run_options: {skip_commit: true}) + readme = apply.fetch(:recipe_reports).find do |report| + report.fetch(:recipe_name) == "template_source_application_README_md" + end.fetch(:final_content) + + expect(readme).to include("KLOC-4.000-FFDD67.svg") + expect(readme).to include('spec.add_dependency("example", "~> 1.0")') + expect(File.read(File.join(root, "README.md"))).to eq(readme) + end + end + + + it "keeps shim-only template files out of full profile inventory" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-template-inventory-profile-slice", tmp_root) do |root| + template_root = File.join(root, "template") + write_tree(template_root, { + "README.md.example" => "readme", + "shim/.structuredmerge/kettle-jem.yml.example" => "{KJ|SHIMMED_GEM_NAME}" + }) + + full_entries = described_class.send( + :template_inventory_entries, + root, + template_root, + templates: {"profile" => "full"} + ) + shim_entries = described_class.send( + :template_inventory_entries, + root, + template_root, + templates: {"profile" => "shim"} + ) + + expect(full_entries).to include("README.md") + expect(full_entries).not_to include("shim/.structuredmerge/kettle-jem.yml") + expect(shim_entries).to include("shim/.structuredmerge/kettle-jem.yml") + end + end + + + it "applies packaged monorepo subgem README badge policy" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-monorepo-subgem-readme-badge-policy", tmp_root) do |root| + write_tree(root, { + "ast-merge.gemspec" => <<~RUBY, + Gem::Specification.new do |spec| + spec.name = "ast-merge" + spec.summary = "Example gem" + spec.homepage = "https://github.com/structuredmerge/structuredmerge-ruby" + spec.licenses = ["AGPL-3.0-only", "PolyForm-Small-Business-1.0.0"] + spec.required_ruby_version = ">= 4.0" + end + RUBY + ".kettle-jem.yml" => <<~YAML, + project_emoji: "☯️" + readme: + package_family: structuredmerge + templates: + root: packaged + apply: true + profile: monorepo-subgem + entries: + - README.md + - FUNDING.md + files: + README.md: + strategy: accept_template + YAML + ".github/workflows/current.yml" => "name: Current\n" + }) + + apply = described_class.apply_project(root, env: {}, run_options: {skip_commit: true}) + readme = apply.fetch(:recipe_reports).find do |candidate| + candidate.fetch(:recipe_name) == "template_source_application_README_md" + end.fetch(:final_content) + funding = apply.fetch(:recipe_reports).find do |candidate| + candidate.fetch(:recipe_name) == "template_source_application_FUNDING_md" + end.fetch(:final_content) + + expect(readme).not_to include("Open Source Helpers") + expect(readme).not_to include("codetriage") + expect(readme).not_to include("OpenCollective Backers") + expect(readme).not_to include("OpenCollective Sponsors") + expect(readme).not_to include("opencollective") + expect(funding).not_to include("OpenCollective Backers") + expect(funding).not_to include("OpenCollective Sponsors") + expect(funding).not_to include("opencollective") + expect(readme).not_to include("Apache SkyWalking Eyes License Compatibility Check") + expect(readme).to include("https://github.com/structuredmerge/structuredmerge-ruby#package-family") + expect(readme).to include("root package-family guide") + expect(readme).to include("https://github.com/structuredmerge/structuredmerge-ruby/actions/workflows/current.yml") + expect(readme).not_to include("https://github.com/structuredmerge/ast-merge/actions/workflows/current.yml") + expect(readme).not_to include("actions/workflows/heads.yml") + expect(readme).to include("https://img.shields.io/badge/wiki-gitlab-943CD2.svg") + expect(readme).to include("https://img.shields.io/badge/wiki-github-943CD2.svg") + expect(readme).not_to include("https://img.shields.io/badge/wiki-examples-943CD2.svg") + end + end + + + it "honors falsey Open Collective environment variables when config is absent" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-opencollective-env-slice", tmp_root) do |root| + write_tree(root, { + "example.gemspec" => <<~RUBY, + Gem::Specification.new do |spec| + spec.name = "example" + spec.summary = "Example gem" + spec.required_ruby_version = ">= 3.2" + end + RUBY + ".github/FUNDING.yml" => <<~YAML, + github: [example] + open_collective: example + YAML + ".opencollective.yml" => <<~YAML + collective: example + YAML + }) + + plan = described_class.plan_project(root, env: {"OPENCOLLECTIVE_HANDLE" => "NO"}) + expect(plan.dig(:facts, :funding, :open_collective_disabled)).to be(true) + expect(plan.dig(:facts, :funding, :open_collective_disabled_source)).to eq("env.OPENCOLLECTIVE_HANDLE") + expect(plan.dig(:facts, :funding, :open_collective_org)).to be_nil + expect(plan.dig(:facts, :funding, :urls)).not_to include("https://opencollective.com/example") + expect(plan[:changed_files]).to include(".opencollective.yml") + end + end + + + it "lets explicit Open Collective config override falsey environment variables" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-opencollective-config-slice", tmp_root) do |root| + write_tree(root, { + "example.gemspec" => <<~RUBY, + Gem::Specification.new do |spec| + spec.name = "example" + spec.summary = "Example gem" + end + RUBY + ".kettle-jem.yml" => <<~YAML, + funding: + open_collective: true + YAML + ".github/FUNDING.yml" => <<~YAML + github: [example] + open_collective: example + YAML + }) + + plan = described_class.plan_project(root, env: {"FUNDING_ORG" => "0"}) + expect(plan.dig(:facts, :funding, :open_collective_disabled)).to be_nil + expect(plan.dig(:facts, :funding, :urls)).to include("https://opencollective.com/example") + end + end + + + it "uses explicit Open Collective config as the template token source" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-opencollective-config-org-slice", tmp_root) do |root| + write_tree(root, { + "example.gemspec" => <<~RUBY, + Gem::Specification.new do |spec| + spec.name = "example" + spec.summary = "Example gem" + end + RUBY + ".kettle-jem.yml" => <<~YAML + funding: + open_collective: config-org + YAML + }) + + plan = described_class.plan_project(root, env: {}) + expect(plan.dig(:facts, :funding, :open_collective_org)).to eq("config-org") + expect(plan.dig(:facts, :funding, :open_collective_org_source)).to eq("config.funding.open_collective") + expect(plan.dig(:facts, :funding, :urls)).to include("https://opencollective.com/config-org") + expect(plan.dig(:facts, :templates, :tokens)).to include("KJ|OPENCOLLECTIVE_ORG" => "config-org") + end + end + + + it "uses GitHub funding Open Collective config as the template token source" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-opencollective-github-funding-org-slice", tmp_root) do |root| + write_tree(root, { + "example.gemspec" => <<~RUBY, + Gem::Specification.new do |spec| + spec.name = "example" + spec.summary = "Example gem" + end + RUBY + ".github/FUNDING.yml" => <<~YAML, + open_collective: "github-funding-org" + YAML + ".kettle-jem.yml" => <<~YAML + templates: + root: packaged + YAML + }) + + plan = described_class.plan_project(root, env: {}) + expect(plan.dig(:facts, :funding, :open_collective_org)).to eq("github-funding-org") + expect(plan.dig(:facts, :funding, :open_collective_org_source)).to eq(".github/FUNDING.yml") + expect(plan.dig(:facts, :funding, :urls)).to include("https://opencollective.com/github-funding-org") + expect(plan.dig(:facts, :templates, :tokens)).to include( + "KJ|OPENCOLLECTIVE_ORG" => "github-funding-org" + ) + end + end + + + it "defaults Open Collective template content to galtzo-floss when no org can be resolved" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-opencollective-default-org-slice", tmp_root) do |root| + write_tree(root, { + "example.gemspec" => <<~RUBY, + Gem::Specification.new do |spec| + spec.name = "example" + spec.summary = "Example gem" + end + RUBY + ".kettle-jem.yml" => <<~YAML + templates: + root: packaged + entries: + - .opencollective.yml + YAML + }) + + plan = described_class.plan_project(root, env: {}) + expect(plan.dig(:facts, :funding, :open_collective_disabled)).to be_nil + expect(plan.dig(:facts, :funding, :open_collective_org)).to eq("galtzo-floss") + expect(plan.dig(:facts, :funding, :open_collective_org_source)).to eq("fallback.default") + expect(plan.dig(:facts, :funding, :urls)).to include("https://opencollective.com/galtzo-floss") + expect(plan.dig(:facts, :templates, :tokens)).to include("KJ|OPENCOLLECTIVE_ORG" => "galtzo-floss") + expect(plan.fetch(:warnings)).to be_empty + end + end + + + it "warns when the default Open Collective org differs from the GitHub org" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-opencollective-default-org-warning-slice", tmp_root) do |root| + write_tree(root, { + "example.gemspec" => <<~RUBY + Gem::Specification.new do |spec| + spec.name = "example" + spec.summary = "Example gem" + spec.homepage = "https://github.com/example-org/example" + spec.metadata["source_code_uri"] = "https://github.com/example-org/example" + end + RUBY + }) + + plan = described_class.plan_project(root, env: {}) + expect(plan.dig(:facts, :funding, :open_collective_org)).to eq("galtzo-floss") + expect(plan.dig(:facts, :funding, :open_collective_org_source)).to eq("fallback.default") + expect(plan.fetch(:warnings)).to contain_exactly( + 'OpenCollective funding org defaulted to "galtzo-floss", but the GitHub org is "example-org". Configure funding.open_collective or FUNDING_ORG if this is not intended.' + ) + end + end + + + it "discovers Open Collective org from environment before .opencollective.yml" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-opencollective-env-org-slice", tmp_root) do |root| + write_tree(root, { + "example.gemspec" => <<~RUBY, + Gem::Specification.new do |spec| + spec.name = "example" + spec.summary = "Example gem" + end + RUBY + ".kettle-jem.yml" => <<~YAML, + templates: + root: template + entries: + - README.md + YAML + ".opencollective.yml" => <<~YAML, + collective: yaml-org + YAML + "template/README.md.example" => <<~MARKDOWN + # {KJ|OPENCOLLECTIVE_ORG} + MARKDOWN + }) + + plan = described_class.plan_project(root, env: {"FUNDING_ORG" => "env-org"}) + expect(plan.dig(:facts, :funding, :open_collective_org)).to eq("env-org") + expect(plan.dig(:facts, :funding, :open_collective_org_source)).to eq("env.FUNDING_ORG") + expect(plan.dig(:facts, :funding, :urls)).to include("https://opencollective.com/env-org") + expect(plan.dig(:facts, :templates, :tokens)).to include( + "KJ|GEM_NAME" => "example", + "KJ|GEM_NAME_PATH" => "example", + "KJ|NAMESPACE" => "Example", + "KJ|OPENCOLLECTIVE_ORG" => "env-org" + ) + template_report = plan[:recipe_reports].find do |report| + report.fetch(:recipe_name) == "template_source_preference_README_md" + end + expect(template_report.dig(:metadata, :template_tokens)).to include("KJ|OPENCOLLECTIVE_ORG" => "env-org") + expect(template_report.dig(:request_envelope, :request, :runtime_context, :template_tokens)).to include( + "KJ|OPENCOLLECTIVE_ORG" => "env-org" + ) + end + end + + + it "discovers Open Collective org from .opencollective.yml when env is absent" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-opencollective-yaml-org-slice", tmp_root) do |root| + write_tree(root, { + "example.gemspec" => <<~RUBY, + Gem::Specification.new do |spec| + spec.name = "example" + spec.summary = "Example gem" + end + RUBY + ".opencollective.yml" => <<~YAML + org: yaml-org + YAML + }) + + plan = described_class.plan_project(root, env: {}) + expect(plan.dig(:facts, :funding, :open_collective_org)).to eq("yaml-org") + expect(plan.dig(:facts, :funding, :open_collective_org_source)).to eq(".opencollective.yml") + expect(plan.dig(:facts, :funding, :urls)).to include("https://opencollective.com/yaml-org") + end + end + + + it "applies selected template content with projected tokens when configured" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-template-application-slice", tmp_root) do |root| + write_tree(root, { + "example.gemspec" => <<~RUBY, + Gem::Specification.new do |spec| + spec.name = "example" + spec.summary = "Example gem" + spec.authors = ["Jane Q Public"] + spec.email = ["jane@example.test"] + spec.required_ruby_version = ">= 3.2" + end + RUBY + ".kettle-jem.yml" => <<~YAML, + files: + README.md: + strategy: accept_template + templates: + root: template + apply: true + entries: + - README.md + YAML + "README.md" => "# old\n", + ".opencollective.yml" => <<~YAML, + collective: yaml-org + YAML + "template/README.md.example" => <<~MARKDOWN + # {KJ|GEM_NAME} + + Namespace: {KJ|NAMESPACE} + Path: {KJ|GEM_NAME_PATH} + Ruby: {KJ|MIN_RUBY} + Author: {KJ|AUTHOR:NAME} + Given: {KJ|AUTHOR:GIVEN_NAMES} + Family: {KJ|AUTHOR:FAMILY_NAMES} + Email: {KJ|AUTHOR:EMAIL} + Domain: {KJ|AUTHOR:DOMAIN} + Funding: {KJ|OPENCOLLECTIVE_ORG} + MARKDOWN + }) + + plan = described_class.plan_project(root, env: {}) + template_report = plan[:recipe_reports].find do |report| + report.fetch(:recipe_name) == "template_source_application_README_md" + end + expect(template_report.fetch(:changed)).to be(true) + expect(template_report.dig(:request_envelope, :request, :template_content)).to include("{KJ|GEM_NAME}") + expect(template_report.fetch(:final_content)).to eq(<<~MARKDOWN) + # 💎 Example + + Namespace: Example + Path: example + Ruby: 3.2 + Author: Jane Q Public + Given: Jane Q + Family: Public + Email: jane@example.test + Domain: example.test + Funding: yaml-org + MARKDOWN + expect(template_report.dig(:metadata, :template_tokens)).to include( + "KJ|AUTHOR:DOMAIN" => "example.test", + "KJ|AUTHOR:EMAIL" => "jane@example.test", + "KJ|AUTHOR:FAMILY_NAMES" => "Public", + "KJ|AUTHOR:GIVEN_NAMES" => "Jane Q", + "KJ|AUTHOR:NAME" => "Jane Q Public", + "KJ|GEM_NAME" => "example", + "KJ|GEM_NAME_PATH" => "example", + "KJ|MIN_RUBY" => "3.2", + "KJ|NAMESPACE" => "Example", + "KJ|OPENCOLLECTIVE_ORG" => "yaml-org" + ) + + described_class.apply_project(root, env: {}) + expect(File.read(File.join(root, "README.md"))).to eq(template_report.fetch(:final_content)) + end + end + + + it "applies packaged template files when no project template root exists" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-packaged-template-slice", tmp_root) do |root| + write_tree(root, { + "example.gemspec" => <<~RUBY, + Gem::Specification.new do |spec| + spec.name = "example" + spec.summary = "Example gem" + spec.required_ruby_version = ">= 3.2" + spec.metadata["source_code_uri"] = "https://github.com/acme/example" + end + RUBY + ".kettle-jem.yml" => <<~YAML + project_emoji: "💎" + funding: + open_collective: collective-acme + tokens: + forge: + gh_user: acme + gl_user: acme + cb_user: acme + sh_user: acme + funding: + kofi: acme + paypal: acme + buymeacoffee: acme + liberapay: acme + social: + mastodon: "@acme@example.social" + bluesky: acme.example + linktree: acme + devto: acme + templates: + apply: true + entries: + - README.md + - FUNDING.md + YAML + }) + + plan = described_class.plan_project(root, env: {}) + template_report = plan[:recipe_reports].find do |report| + report.fetch(:recipe_name) == "template_source_application_README_md" + end + expect(template_report.dig(:metadata, :template_source_preference)).to include( + selected_source: "README.md.example", + source_relative_path: "README.md.example", + source_root: "packaged" + ) + expect(template_report.dig(:metadata, :template_source_preference, :source_root_path)).to end_with( + "lib/kettle/jem/templates" + ) + expect(template_report.dig(:request_envelope, :request, :template_content)).to include("# {KJ|PROJECT_EMOJI} {KJ|NAMESPACE}") + expect(template_report.fetch(:final_content)).to include("# 💎 Example") + expect(template_report.fetch(:final_content)).to include("Compatible with MRI Ruby 3.2+") + expect(template_report.fetch(:final_content)).to include("https://github.com/acme/example") + expect(template_report.fetch(:final_content)).to include("Sponsor collective-acme/example on Open Source Collective") + expect(template_report.fetch(:final_content)).to include("https://opencollective.com/collective-acme") + expect(template_report.fetch(:final_content)).not_to include("https://opencollective.com/acme") + + described_class.apply_project(root, env: {}) + expect(File.read(File.join(root, "README.md"))).to eq(template_report.fetch(:final_content)) + expect(File.read(File.join(root, "FUNDING.md"))).to include( + "Sponsor collective-acme/example on Open Source Collective" + ) + end + end + + + it "trims README compatibility badges from minimum Ruby and engine config" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-readme-compatibility-badge-slice", tmp_root) do |root| + write_tree(root, { + "example.gemspec" => <<~RUBY, + Gem::Specification.new do |spec| + spec.name = "example" + spec.summary = "Example gem" + spec.required_ruby_version = ">= 3.2" + end + RUBY + ".kettle-jem.yml" => <<~YAML, + engines: + - ruby + files: + README.md: + strategy: accept_template + templates: + root: template + apply: true + entries: + - README.md + YAML + "template/README.md.example" => <<~MARKDOWN + # Example + + | Works with MRI Ruby 3 | [![Ruby 3.0 Compat][💎ruby-3.0i]][🚎4-lg-wf] [![Ruby 3.2 Compat][💎ruby-3.2i]][🚎6-s-wf] [![Ruby current Compat][💎ruby-c-i]][🚎11-c-wf] | + | Works with JRuby | [![JRuby 10.0 Compat][💎jruby-10.0i]][🚎11-j-wf] | + + [💎ruby-3.0i]: https://example/ruby-30 + [💎ruby-3.2i]: https://example/ruby-32 + [💎ruby-c-i]: https://example/ruby-current + [💎jruby-10.0i]: https://example/jruby-100 + [🚎4-lg-wf]: https://example/legacy + [🚎6-s-wf]: https://example/supported + [🚎11-c-wf]: https://example/current + [🚎11-j-wf]: https://example/jruby + MARKDOWN + }) + + apply = described_class.apply_project(root, env: {}) + report = apply.fetch(:recipe_reports).find do |candidate| + candidate.fetch(:recipe_name) == "template_source_application_README_md" + end + final_content = report.fetch(:final_content) + mri_line = final_content.lines.find { |line| line.start_with?("| Works with MRI Ruby 3") } + + expect(mri_line).not_to include("ruby-3.0i") + expect(mri_line).to include("ruby-3.2i") + expect(mri_line).to include("ruby-c-i") + expect(final_content).not_to include("Works with JRuby") + expect(final_content).not_to match(/^\[💎ruby-3\.0i\]:/) + expect(final_content).not_to match(/^\[💎jruby-10\.0i\]:/) + expect(final_content).not_to match(/^\[🚎4-lg-wf\]:/) + expect(final_content).not_to match(/^\[🚎11-j-wf\]:/) + expect(final_content).to match(/^\[💎ruby-3\.2i\]:/) + expect(final_content).to match(/^\[🚎6-s-wf\]:/) + expect(final_content).to match(/^\[🚎11-c-wf\]:/) + end + end + + + it "keeps Ruby 2.3 in the untested README support badge set" do + template = File.read(project_root.join("lib/kettle/jem/templates/README.md.example")) + ruby_2_line = template.lines.find { |line| line.start_with?("| Works with MRI Ruby 2") } + + expect(ruby_2_line).to include("![Ruby 2.2 Compat][💎ruby-2.2i] ![Ruby 2.3 Compat][💎ruby-2.3i]
        ") + expect(ruby_2_line).not_to include("[![Ruby 2.3 Compat][💎ruby-2.3i]][🚎ruby-2.3-wf]") + expect(template).to include("[💎ruby-2.3i]: https://img.shields.io/badge/Ruby-2.3_(%F0%9F%9A%ABCI)-AABBCC") + expect(template).not_to include("[🚎ruby-2.3-wf]:") + expect(template).not_to include("[🚎ruby-2.3-wfi]:") + end + + + it "keeps current runtime badges distinct from prior-current engine badges" do + template = File.read(project_root.join("lib/kettle/jem/templates/README.md.example")) + ruby_4_line = template.lines.find { |line| line.start_with?("| Works with MRI Ruby 4") } + jruby_line = template.lines.find { |line| line.start_with?("| Works with JRuby") } + truffleruby_line = template.lines.find { |line| line.start_with?("| Works with Truffle Ruby") } + + expect(ruby_4_line).to include("[![Ruby current Compat][💎ruby-c-i]][🚎11-c-wf]") + expect(ruby_4_line).not_to include("Ruby 4.0 Compat") + expect(jruby_line).to include("[![JRuby 10.0 Compat][💎jruby-10.0i]][🚎jruby-10.0-wf]") + expect(jruby_line).to include("[![JRuby current Compat][💎jruby-c-i]][🚎10-j-wf]") + expect(truffleruby_line).to include("[![Truffle Ruby 33.0 Compat][💎truby-33.0i]][🚎truby-33.0-wf]") + expect(truffleruby_line).to include("[![Truffle Ruby current Compat][💎truby-c-i]][🚎9-t-wf]") + expect(truffleruby_line).to include("[![Truffle Ruby HEAD Compat][💎truby-headi]][🚎3-hd-wf]") + end + + + it "adds missing compatible versioned engine README badges when workflows exist" do + readme = <<~MARKDOWN + # Example + + | Works with JRuby | [![JRuby current Compat][💎jruby-c-i]][🚎10-j-wf] [![JRuby HEAD Compat][💎jruby-headi]][🚎3-hd-wf]| + | Works with Truffle Ruby | [![Truffle Ruby 24.2 Compat][💎truby-24.2i]][🚎truby-24.2-wf] [![Truffle Ruby 25.0 Compat][💎truby-25.0i]][🚎truby-25.0-wf] [![Truffle Ruby current Compat][💎truby-c-i]][🚎9-t-wf] [![Truffle Ruby HEAD Compat][💎truby-headi]][🚎3-hd-wf]| + + [🚎10-j-wf]: https://github.com/acme/example/actions/workflows/jruby.yml + [🚎3-hd-wf]: https://github.com/acme/example/actions/workflows/heads.yml + [🚎9-t-wf]: https://github.com/acme/example/actions/workflows/truffle.yml + [🚎truby-24.2-wf]: https://github.com/acme/example/actions/workflows/truffleruby-24.2.yml + [🚎truby-25.0-wf]: https://github.com/acme/example/actions/workflows/truffleruby-25.0.yml + [💎jruby-c-i]: https://img.shields.io/badge/JRuby-current-FBE742 + [💎jruby-headi]: https://img.shields.io/badge/JRuby-HEAD-FBE742 + [💎truby-24.2i]: https://img.shields.io/badge/Truffle_Ruby-24.2-34BCB1 + [💎truby-25.0i]: https://img.shields.io/badge/Truffle_Ruby-25.0-34BCB1 + [💎truby-c-i]: https://img.shields.io/badge/Truffle_Ruby-current-34BCB1 + [💎truby-headi]: https://img.shields.io/badge/Truffle_Ruby-HEAD-34BCB1 + MARKDOWN + + processed = described_class::ReadmePostProcessor.process( + content: readme, + min_ruby: Gem::Version.new("3.2"), + engines: %w[ruby jruby truffleruby], + workflow_paths: %w[ + .github/workflows/jruby.yml + .github/workflows/jruby-10.0.yml + .github/workflows/truffle.yml + .github/workflows/truffleruby-24.2.yml + .github/workflows/truffleruby-25.0.yml + .github/workflows/truffleruby-33.0.yml + .github/workflows/heads.yml + ] + ) + + expect(processed).to include("[![JRuby 10.0 Compat][💎jruby-10.0i]][🚎jruby-10.0-wf]") + expect(processed).to include("| Works with Truffle Ruby |") + expect(processed).to include("[🚎jruby-10.0-wf]: https://github.com/acme/example/actions/workflows/jruby-10.0.yml") + expect(processed).not_to include("[🚎truby-33.0-wf]: https://github.com/acme/example/actions/workflows/truffleruby-33.0.yml") + expect(processed).to include("[💎jruby-10.0i]: https://img.shields.io/badge/JRuby-10.0-FBE742") + expect(processed).not_to include("[💎truby-33.0i]: https://img.shields.io/badge/Truffle_Ruby-33.0-34BCB1") + end + + + it "keeps same-minor Ruby compatibility badges for patch-level runtime floors" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-readme-patch-floor-badge-slice", tmp_root) do |root| + write_tree(root, { + "example.gemspec" => <<~RUBY, + Gem::Specification.new do |spec| + spec.name = "example" + spec.summary = "Example gem" + spec.required_ruby_version = ">= 2.2.2" + end + RUBY + ".kettle-jem.yml" => <<~YAML, + engines: + - ruby + files: + README.md: + strategy: accept_template + templates: + root: template + apply: true + entries: + - README.md + YAML + "template/README.md.example" => <<~MARKDOWN + # Example + + | Works with MRI Ruby 1 | ![Ruby 1.8 Compat][💎ruby-1.8i] ![Ruby 1.9 Compat][💎ruby-1.9i] | + | Works with MRI Ruby 2 | ![Ruby 2.1 Compat][💎ruby-2.1i] ![Ruby 2.2 Compat][💎ruby-2.2i] ![Ruby 2.3 Compat][💎ruby-2.3i] | + + [💎ruby-1.8i]: https://example/ruby-18 + [💎ruby-1.9i]: https://example/ruby-19 + [💎ruby-2.1i]: https://example/ruby-21 + [💎ruby-2.2i]: https://example/ruby-22 + [💎ruby-2.3i]: https://example/ruby-23 + MARKDOWN + }) + + apply = described_class.apply_project(root, env: {}) + report = apply.fetch(:recipe_reports).find do |candidate| + candidate.fetch(:recipe_name) == "template_source_application_README_md" + end + final_content = report.fetch(:final_content) + ruby_2_line = final_content.lines.find { |line| line.start_with?("| Works with MRI Ruby 2") } + + expect(final_content).not_to include("Works with MRI Ruby 1") + expect(ruby_2_line).not_to include("ruby-2.1i") + expect(ruby_2_line).to include("ruby-2.2i") + expect(ruby_2_line).to include("ruby-2.3i") + expect(final_content).not_to match(/^\[💎ruby-2\.1i\]:/) + expect(final_content).to match(/^\[💎ruby-2\.2i\]:/) + expect(final_content).to match(/^\[💎ruby-2\.3i\]:/) + end + end + + + it "keeps the Ruby 1.8 compatibility badge for a Ruby 1.8.7 runtime floor" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-readme-ruby-18-badge-slice", tmp_root) do |root| + write_tree(root, { + "example.gemspec" => <<~RUBY, + Gem::Specification.new do |spec| + spec.name = "example" + spec.summary = "Example gem" + spec.required_ruby_version = ">= 1.8.7" + end + RUBY + ".kettle-jem.yml" => <<~YAML, + engines: + - ruby + files: + README.md: + strategy: accept_template + templates: + root: template + apply: true + entries: + - README.md + YAML + "template/README.md.example" => <<~MARKDOWN + # Example + + | Works with MRI Ruby 1 | ![Ruby 1.8 Compat][💎ruby-1.8i] ![Ruby 1.9 Compat][💎ruby-1.9i] | + + [💎ruby-1.8i]: https://example/ruby-18 + [💎ruby-1.9i]: https://example/ruby-19 + MARKDOWN + }) + + apply = described_class.apply_project(root, env: {}) + report = apply.fetch(:recipe_reports).find do |candidate| + candidate.fetch(:recipe_name) == "template_source_application_README_md" + end + final_content = report.fetch(:final_content) + mri_line = final_content.lines.find { |line| line.start_with?("| Works with MRI Ruby 1") } + + expect(mri_line).to include("ruby-1.8i") + expect(mri_line).to include("ruby-1.9i") + expect(final_content).to match(/^\[💎ruby-1\.8i\]:/) + expect(final_content).to match(/^\[💎ruby-1\.9i\]:/) + end + end + +end diff --git a/gems/kettle-jem/spec/integration/recipe_planning_spec.rb b/gems/kettle-jem/spec/integration/recipe_planning_spec.rb new file mode 100644 index 000000000..3abadae37 --- /dev/null +++ b/gems/kettle-jem/spec/integration/recipe_planning_spec.rb @@ -0,0 +1,328 @@ +# frozen_string_literal: true + +RSpec.describe Kettle::Jem, "recipe planning and write-intent behavior" do + include_context "with isolated kettle-jem environment" + include_context "with kettle-jem fixture contracts" + + it "deduplicates destination file reads while planning recipes" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-file-cache", tmp_root) do |root| + write_tree(root, {"README.md" => "# Example\n"}) + pack = { + recipes: [ + {target_path: "README.md"}, + {target_path: "README.md"}, + {target_path: "CHANGELOG.md"} + ] + } + readme_path = File.join(root, "README.md") + + allow(File).to receive(:read).and_call_original + + files = described_class.send(:read_project_files, root, pack) + + expect(files).to eq("README.md" => "# Example\n", "CHANGELOG.md" => "") + expect(File).to have_received(:read).with(readme_path).once + end + end + + + it "deduplicates template source reads while planning recipes" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-template-cache", tmp_root) do |root| + write_tree(root, {"templates/README.md.example" => "# {KJ|GEM_NAME}\n"}) + template_path = File.join(root, "templates/README.md.example") + template_preference = { + source_root_path: root, + source_relative_path: "templates/README.md.example", + selected_source: "templates/README.md.example" + } + pack = { + recipes: [ + {primitive: "supplied_template_source_application", target_path: "README.md", template_preference: template_preference}, + {primitive: "supplied_template_source_application", target_path: "README.md", template_preference: template_preference}, + {primitive: "supplied_managed_text_block_replacement", target_path: "gemfiles/modular/shunted.gemfile"} + ] + } + + allow(File).to receive(:read).and_call_original + + contents = described_class.send(:read_template_source_files, root, pack) + + expect(contents).to eq(template_path => "# {KJ|GEM_NAME}\n") + expect(File).to have_received(:read).with(template_path).once + expect( + described_class.send(:recipe_template_content, root, pack.fetch(:recipes).first, template_contents: contents) + ).to eq("# {KJ|GEM_NAME}\n") + end + end + + + it "records recipe timing metadata in top-level and envelope reports" do + report = described_class.send(:timed_recipe_report) do + { + metadata: {packaging_recipe: "example"}, + report_envelope: { + report: { + metadata: {packaging_recipe: "example"} + } + } + } + end + + expect(report.dig(:metadata, :duration_ms)).to be >= 0 + expect(report.dig(:report_envelope, :report, :metadata, :duration_ms)).to eq(report.dig(:metadata, :duration_ms)) + end + + + it "parses recipe planning strategies from options and env" do + expect(described_class.send(:recipe_planning_strategy_for, {}, {})).to eq("sequential") + expect(described_class.send(:recipe_planning_strategy_for, {"KETTLE_JEM_RECIPE_PLANNING_STRATEGY" => "classified"}, {})).to eq("classified") + expect(described_class.send(:recipe_planning_strategy_for, {}, {recipe_planning_strategy: "true"})).to eq("classified") + expect(described_class.send(:recipe_planning_strategy_for, {"KETTLE_JEM_RECIPE_PLANNING_STRATEGY" => "classified"}, {recipe_planning_strategy: "sequential"})).to eq("sequential") + + expect do + described_class.send(:recipe_planning_strategy_for, {}, {recipe_planning_strategy: "ractor"}) + end.to raise_error(ArgumentError, /Unsupported kettle-jem recipe planning strategy/) + end + + + it "parses Ractor recipe planning workers from options and env" do + expect(described_class.send(:recipe_planning_workers_for, {}, {})).to eq(0) + expect(described_class.send(:recipe_planning_workers_for, {"KETTLE_JEM_RACTOR_WORKERS" => "2"}, {})).to eq(2) + expect(described_class.send(:recipe_planning_workers_for, {"KETTLE_JEM_RACTOR_WORKERS" => "2"}, {recipe_planning_workers: "1"})).to eq(1) + expect(described_class.send(:recipe_planning_workers_for, {}, {ractor_workers: "3"})).to eq(3) + + expect do + described_class.send(:recipe_planning_workers_for, {}, {recipe_planning_workers: "-1"}) + end.to raise_error(ArgumentError, /non-negative integer/) + expect do + described_class.send(:recipe_planning_workers_for, {"KETTLE_JEM_RACTOR_WORKERS" => "many"}, {}) + end.to raise_error(ArgumentError, /non-negative integer/) + end + + + it "classifies only side-effect-free cleanup and generated recipes as worker-safe for now" do + safe_recipe = { + name: "github_actions_obsolete_workflow_cleanup_old", + target_path: ".github/workflows/old.yml", + provider_family: "file", + primitive: "supplied_obsolete_file_deletion", + facts: [] + } + main_only_recipe = { + name: "template_source_application_readme", + target_path: "README.md", + provider_family: "markdown", + primitive: "supplied_template_source_application", + facts: [] + } + + expect(described_class.send(:worker_safe_recipe?, safe_recipe)).to be(true) + expect(described_class.send(:worker_safe_recipe?, main_only_recipe)).to be(false) + end + + + it "keeps classified recipe planning report output equivalent to sequential planning" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-classified-planning", tmp_root) do |root| + write_tree(root, { + ".github/workflows/old.yml" => "name: old\n", + "README.md" => "# Example\n" + }) + recipes = [ + { + name: "noop_main_only", + target_path: "README.md", + provider_family: "markdown", + primitive: "noop", + facts: [] + }, + { + name: "github_actions_obsolete_workflow_cleanup_old", + target_path: ".github/workflows/old.yml", + provider_family: "file", + primitive: "supplied_obsolete_file_deletion", + facts: [] + } + ] + files = { + "README.md" => "# Example\n", + ".github/workflows/old.yml" => "name: old\n" + } + policy = described_class::DecisionPolicy.from_env({"force" => "true"}) + common = { + project_root: root, + recipes: recipes, + facts: {}, + files: files, + template_contents: {}, + decision_policy: policy, + env: {}, + events: nil + } + + sequential = described_class.send(:execute_recipe_reports, **common.merge(strategy: "sequential")) + classified = described_class.send(:execute_recipe_reports, **common.merge(strategy: "classified")) + normalize = lambda do |reports| + Marshal.load(Marshal.dump(reports)).each do |report| + report.dig(:metadata)&.delete(:duration_ms) + report.dig(:report_envelope, :report, :metadata)&.delete(:duration_ms) + end + end + + expect(normalize.call(classified)).to eq(normalize.call(sequential)) + expect(classified.map { |report| report.fetch(:recipe_name) }).to eq(%w[noop_main_only github_actions_obsolete_workflow_cleanup_old]) + end + end + + + it "keeps Ractor-backed classified recipe planning equivalent to main-Ractor classified planning" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-ractor-planning", tmp_root) do |root| + write_tree(root, { + ".github/workflows/old.yml" => "name: old\n", + ".github/workflows/stale.yml" => "name: stale\n", + "README.md" => "# Example\n" + }) + recipes = [ + { + name: "github_actions_obsolete_workflow_cleanup_old", + target_path: ".github/workflows/old.yml", + provider_family: "file", + primitive: "supplied_obsolete_file_deletion", + facts: [] + }, + { + name: "noop_main_only", + target_path: "README.md", + provider_family: "markdown", + primitive: "noop", + facts: [] + }, + { + name: "github_actions_obsolete_workflow_cleanup_stale", + target_path: ".github/workflows/stale.yml", + provider_family: "file", + primitive: "supplied_obsolete_file_deletion", + facts: [] + } + ] + files = { + ".github/workflows/old.yml" => "name: old\n", + ".github/workflows/stale.yml" => "name: stale\n", + "README.md" => "# Example\n" + } + policy = described_class::DecisionPolicy.from_env({"force" => "true"}) + common = { + project_root: root, + recipes: recipes, + facts: {}, + files: files, + template_contents: {}, + decision_policy: policy, + env: {}, + events: nil, + strategy: "classified" + } + normalize = lambda do |reports| + Marshal.load(Marshal.dump(reports)).each do |report| + report.dig(:metadata)&.delete(:duration_ms) + report.dig(:report_envelope, :report, :metadata)&.delete(:duration_ms) + end + end + + main_ractor = described_class.send(:execute_recipe_reports, **common.merge(workers: 0)) + workers = described_class.send(:execute_recipe_reports, **common.merge(workers: 2)) + + expect(normalize.call(workers)).to eq(normalize.call(main_ractor)) + expect(workers.map { |report| report.fetch(:recipe_name) }).to eq(%w[ + github_actions_obsolete_workflow_cleanup_old + noop_main_only + github_actions_obsolete_workflow_cleanup_stale + ]) + end + end + + + it "turns changed recipe reports into deterministic write intents" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-write-intents", tmp_root) do |root| + write_report = { + changed: true, + relative_path: "lib/example.rb", + recipe_name: "generated_lib_file", + final_content: "# generated\n", + metadata: {destination_existed: false} + } + delete_report = { + changed: true, + relative_path: ".github/workflows/old.yml", + recipe_name: "github_actions_obsolete_workflow_cleanup_old", + metadata: {delete_file: true} + } + unchanged_report = write_report.merge(changed: false) + + write_intent = described_class.send(:write_intent_from_recipe_report, root, write_report) + delete_intent = described_class.send(:write_intent_from_recipe_report, root, delete_report) + + expect(write_intent.action).to eq(:write) + expect(write_intent.relative_path).to eq("lib/example.rb") + expect(write_intent.absolute_path).to eq(File.join(root, "lib/example.rb")) + expect(write_intent.content).to eq("# generated\n") + expect(write_intent.recipe_name).to eq("generated_lib_file") + expect(write_intent.metadata).to eq(destination_existed: false) + expect(delete_intent.action).to eq(:delete) + expect(delete_intent.content).to be_nil + expect(described_class.send(:write_intent_from_recipe_report, root, unchanged_report)).to be_nil + end + end + + + it "commits write intents sequentially while preserving current apply behavior" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-write-intent-commit", tmp_root) do |root| + FileUtils.mkdir_p(File.join(root, "obsolete")) + File.write(File.join(root, "obsolete/file.txt"), "old\n") + write_intent = described_class::WriteIntent.new( + relative_path: "lib/example.rb", + absolute_path: File.join(root, "lib/example.rb"), + action: :write, + content: "# generated\n", + recipe_name: "generated_lib_file" + ) + delete_intent = described_class::WriteIntent.new( + relative_path: "obsolete/file.txt", + absolute_path: File.join(root, "obsolete/file.txt"), + action: :delete, + recipe_name: "obsolete_file_cleanup" + ) + + described_class.send(:commit_write_intent, write_intent) + described_class.send(:commit_write_intent, delete_intent) + + expect(File.read(File.join(root, "lib/example.rb"))).to eq("# generated\n") + expect(File).not_to exist(File.join(root, "obsolete/file.txt")) + end + end + + + it "normalizes GitHub remote source URLs structurally" do + expect(described_class.normalize_git_source_url("git@github.com:rubythems/them-server.git")).to eq( + "https://github.com/rubythems/them-server" + ) + expect(described_class.normalize_git_source_url("https://github.com/rubythems/them-server.git")).to eq( + "https://github.com/rubythems/them-server" + ) + expect(described_class.normalize_git_source_url("https://gitlab.com/rubythems/them-server.git")).to eq( + "https://gitlab.com/rubythems/them-server.git" + ) + end + +end diff --git a/gems/kettle-jem/spec/integration/shim_profile_spec.rb b/gems/kettle-jem/spec/integration/shim_profile_spec.rb new file mode 100644 index 000000000..8d03991ae --- /dev/null +++ b/gems/kettle-jem/spec/integration/shim_profile_spec.rb @@ -0,0 +1,135 @@ +# frozen_string_literal: true + +RSpec.describe Kettle::Jem, "shim profile templating" do + include_context "with isolated kettle-jem environment" + include_context "with kettle-jem fixture contracts" + + it "converts an implementation-shaped gem into a shim profile gem" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-shim-slice", tmp_root) do |root| + write_tree( + root, + { + ".structuredmerge/kettle-jem.yml" => <<~YAML, + project_emoji: "*" + + rubygems: + name: legacy-shim + entrypoint_require: legacy/shim + namespace: Legacy::Shim + min_ruby: "2.2" + + shim: + replacement_gem: legacy-shim2 + replacement_require: legacy-shim2 + legacy_requires: + - legacy/strategies/shim + + templates: + root: packaged + apply: true + profile: shim + + tokens: + author: + name: Ada Lovelace + email: ada@example.com + YAML + "legacy-shim.gemspec" => <<~RUBY, + Gem::Specification.new do |spec| + spec.name = "legacy-shim" + spec.version = "0.1.0" + spec.authors = ["Ada Lovelace"] + spec.email = ["ada@example.com"] + spec.summary = "Legacy implementation" + spec.description = "Legacy implementation" + spec.homepage = "https://github.com/example/legacy-shim" + spec.licenses = ["MIT"] + spec.required_ruby_version = ">= 2.2" + spec.add_dependency "old-implementation" + end + RUBY + "README.md" => "# Old implementation README\n", + "Gemfile" => "source \"https://rubygems.org\"\n", + "Rakefile" => "task :old\n", + "lib/legacy/shim.rb" => "require \"old-implementation\"\n", + "lib/legacy/shim/version.rb" => "module Legacy; module Shim; VERSION = \"0.1.0\"; end; end\n", + "lib/legacy/strategies/shim.rb" => "class OldStrategy; end\n", + "spec/lib/legacy/strategies/shim_spec.rb" => "RSpec.describe OldStrategy\n", + "spec/support/helper.rb" => "# old helper\n", + "gemfiles/legacy.gemfile" => "gem \"old-implementation\"\n", + ".github/workflows/coverage.yml" => "name: Coverage\n" + } + ) + system("git", "-C", root, "init", "--quiet") + system("git", "-C", root, "add", "legacy-shim.gemspec", "lib/legacy/shim/version.rb") + + plan = described_class.plan_project(root, env: {}) + expect(plan.dig(:facts, :shim, :replacement_gem)).to eq("legacy-shim2") + recipe_names = plan[:recipe_pack][:recipes].map { |recipe| recipe[:name] } + expect(recipe_names).to include("template_source_application_legacy_shim_gemspec") + expect(recipe_names).to include("template_shim_profile_cleanup_gemfiles_legacy_gemfile") + expect(recipe_names).to include("template_shim_profile_cleanup_spec_lib_legacy_strategies_shim_spec_rb") + + described_class.apply_project(root, env: {}) + + generated = project_files( + root, + [ + "legacy-shim.gemspec", + "lib/legacy/shim.rb", + "lib/legacy/shim/version.rb", + "lib/legacy/strategies/shim.rb", + "spec/shim_spec.rb", + "README.md", + "Gemfile", + "gemfiles/modular/templating.gemfile", + "gemfiles/modular/templating_local.gemfile", + "gemfiles/legacy.gemfile", + "spec/lib/legacy/strategies/shim_spec.rb", + ".github/workflows/coverage.yml" + ] + ) + expect(generated[:"legacy-shim.gemspec"]).to include(%(spec.version = "0.1.0")) + expect(generated[:"legacy-shim.gemspec"]).not_to include(%(load "lib/legacy/shim/version.rb")) + expect(generated[:"legacy-shim.gemspec"]).to include("LICENSE.md") + expect(generated[:"legacy-shim.gemspec"]).not_to include("LICENSE.txt") + expect(generated[:"legacy-shim.gemspec"]).to include(%(spec.add_dependency "legacy-shim2")) + expect_gemspec_dependency_declared(generated[:"legacy-shim.gemspec"], "kettle-dev", kind: :add_development_dependency) + expect_gemspec_dependency_declared(generated[:"legacy-shim.gemspec"], "kettle-test", kind: :add_development_dependency) + expect_gemspec_dependency_declared(generated[:"legacy-shim.gemspec"], "stone_checksums", kind: :add_development_dependency) + expect(generated[:Gemfile]).to include(%(source "https://gem.coop")) + expect_gem_dependency_declared(generated[:Gemfile], "nomono") + expect(generated[:Gemfile]).to include(%(eval_gemfile "gemfiles/modular/templating.gemfile")) + expect(generated[:Gemfile]).not_to include("git:") + expect_gem_dependency_declared(generated[:"gemfiles/modular/templating.gemfile"], "kettle-jem") + expect(generated[:"gemfiles/modular/templating_local.gemfile"]).to include(%(structuredmerge_local_gems = %w[)) + expect(generated[:"legacy-shim.gemspec"]).not_to include("old-implementation") + expect(generated[:"lib/legacy/shim.rb"]).to include(%(require "legacy-shim2")) + expect(generated[:"lib/legacy/strategies/shim.rb"]).to include(%(require "legacy/shim")) + expect(generated[:"spec/shim_spec.rb"]).to include(%(require("legacy-shim2"))) + expect(generated[:"README.md"]).to include("compatibility shim for `legacy-shim2`") + expect(generated[:"gemfiles/legacy.gemfile"]).to be_nil + expect(generated[:"spec/lib/legacy/strategies/shim_spec.rb"]).to be_nil + expect(generated[:".github/workflows/coverage.yml"]).to be_nil + + File.write(File.join(root, "legacy-shim.gemspec"), <<~RUBY) + Gem::Specification.new do |spec| + load "lib/legacy/shim/version.rb" + spec.name = "legacy-shim" + spec.version = Legacy::Shim::Version::VERSION + spec.authors = ["Ada Lovelace"] + spec.email = ["ada@example.com"] + spec.summary = "Legacy implementation" + spec.description = "Legacy implementation" + spec.homepage = "https://github.com/example/legacy-shim" + spec.licenses = ["MIT"] + spec.required_ruby_version = ">= 2.2" + end + RUBY + expect { described_class.plan_project(root, env: {}) }.not_to raise_error + end + end + +end diff --git a/gems/kettle-jem/spec/integration/structural_merge_template_spec.rb b/gems/kettle-jem/spec/integration/structural_merge_template_spec.rb new file mode 100644 index 000000000..18e7abdb4 --- /dev/null +++ b/gems/kettle-jem/spec/integration/structural_merge_template_spec.rb @@ -0,0 +1,1606 @@ +# frozen_string_literal: true + +RSpec.describe Kettle::Jem, "structural merge template behavior" do + include_context "with isolated kettle-jem environment" + include_context "with kettle-jem fixture contracts" + + it "uses dotenv structural merge for environment template files" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-dotenv-template-merge", tmp_root) do |root| + write_tree(root, { + "example.gemspec" => <<~RUBY, + Gem::Specification.new do |spec| + spec.name = "example" + spec.summary = "Example gem" + end + RUBY + ".kettle-jem.yml" => <<~YAML, + templates: + root: template + apply: true + entries: + - source: .env.local + target: .env.local.example + YAML + "template/.env.local.example" => <<~ENV, + # Shared development defaults + KETTLE_DEV_DEV=false + DEBUG=false # keep debugging disabled by default + ENV + ".env.local.example" => <<~ENV + # Local documentation must survive + KETTLE_DEV_DEV=true + ENV + }) + + plan = described_class.plan_project(root, env: {}) + report = plan.fetch(:recipe_reports).find { |entry| entry.fetch(:relative_path) == ".env.local.example" } + + expect(report.fetch(:final_content)).to eq(<<~ENV) + # Local documentation must survive + KETTLE_DEV_DEV=true + DEBUG=false # keep debugging disabled by default + ENV + end + end + + + it "uses JSON structural merge for JSON template files" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-json-template-merge", tmp_root) do |root| + write_tree(root, { + "example.gemspec" => <<~RUBY, + Gem::Specification.new do |spec| + spec.name = "example" + spec.summary = "Example gem" + end + RUBY + ".kettle-jem.yml" => <<~YAML, + templates: + root: template + apply: true + entries: + - source: devcontainer.json + target: .devcontainer/devcontainer.json + YAML + "template/devcontainer.json.example" => <<~JSON, + { + "name": "template", + "features": { + "ghcr.io/devcontainers/features/git:1": {} + } + } + JSON + ".devcontainer/devcontainer.json" => <<~JSON + { + "name": "destination" + } + JSON + }) + + plan = described_class.plan_project(root, env: {}) + report = plan.fetch(:recipe_reports).find { |entry| entry.fetch(:relative_path) == ".devcontainer/devcontainer.json" } + + expect(report.fetch(:final_content)).to include('"name": "destination"') + expect(report.fetch(:final_content)).to include('"ghcr.io/devcontainers/features/git:1": {}') + end + end + + + it "uses JSONC structural merge for JSONC template files" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-jsonc-template-merge", tmp_root) do |root| + write_tree(root, { + "example.gemspec" => <<~RUBY, + Gem::Specification.new do |spec| + spec.name = "example" + spec.summary = "Example gem" + end + RUBY + ".kettle-jem.yml" => <<~YAML, + templates: + root: template + apply: true + entries: + - source: settings.jsonc + target: .vscode/settings.jsonc + YAML + "template/settings.jsonc.example" => <<~JSONC, + { + // Shared editor defaults + "editor.tabSize": 2, + "files.trimTrailingWhitespace": true + } + JSONC + ".vscode/settings.jsonc" => <<~JSONC + { + // Local documentation must survive + "editor.tabSize": 4 + } + JSONC + }) + + plan = described_class.plan_project(root, env: {}) + report = plan.fetch(:recipe_reports).find { |entry| entry.fetch(:relative_path) == ".vscode/settings.jsonc" } + + expect(report.fetch(:final_content)).to eq(<<~JSONC) + { + // Local documentation must survive + "editor.tabSize": 4, + "files.trimTrailingWhitespace": true + } + JSONC + end + end + + + it "uses RBS structural merge for RBS template files" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-rbs-template-merge", tmp_root) do |root| + write_tree(root, { + "example.gemspec" => <<~RUBY, + Gem::Specification.new do |spec| + spec.name = "example" + spec.summary = "Example gem" + end + RUBY + ".kettle-jem.yml" => <<~YAML, + templates: + root: template + apply: true + entries: + - source: sig/example/version.rbs + target: sig/example/version.rbs + YAML + "template/sig/example/version.rbs.example" => <<~RBS, + module Example + module Version + VERSION: String + end + + VERSION: String + end + RBS + "sig/example/version.rbs" => <<~RBS + module Example + module Version + VERSION: "1.2.3" + end + end + RBS + }) + + plan = described_class.plan_project(root, env: {}) + report = plan.fetch(:recipe_reports).find { |entry| entry.fetch(:relative_path) == "sig/example/version.rbs" } + + expect(report.fetch(:final_content)).to include('VERSION: "1.2.3"') + expect(report.fetch(:final_content)).to include("VERSION: String") + end + end + + + it "loudly rejects explicit Bash structural routing when the node parser is unavailable" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-bash-template-gate", tmp_root) do |root| + write_tree(root, { + "example.gemspec" => <<~RUBY, + Gem::Specification.new do |spec| + spec.name = "example" + spec.summary = "Example gem" + end + RUBY + ".kettle-jem.yml" => <<~YAML, + files: + scripts: + setup: + strategy: merge + file_type: bash + templates: + root: template + apply: true + entries: + - source: setup + target: scripts/setup + YAML + "template/setup.example" => <<~BASH, + #!/usr/bin/env bash + bundle install + BASH + "scripts/setup" => <<~BASH + #!/usr/bin/env bash + bundle check || bundle install + BASH + }) + availability = Bash::Merge::Availability.new( + grammar_path: nil, + node_parser: false, + diagnostics: [{kind: "bash_node_parser_unavailable", message: "missing node adapter"}] + ) + allow(Bash::Merge).to receive(:availability).and_return(availability) + + expect do + described_class.plan_project(root, env: {}) + end.to raise_error(ArgumentError, /failed to merge bash template scripts\/setup: bash structural merge is unavailable/) + end + end + + + it "refreshes mise trust after templating mise.toml when mise is available" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-install-mise-trust", tmp_root) do |root| + fake_bin = File.join(root, "fake-bin") + FileUtils.mkdir_p(fake_bin) + fake_mise = File.join(fake_bin, "mise") + File.write(fake_mise, "#!/usr/bin/env sh\nexit 0\n") + FileUtils.chmod(0o755, fake_mise) + write_tree(root, { + "example.gemspec" => <<~RUBY, + Gem::Specification.new do |spec| + spec.name = "example" + spec.summary = "Example gem" + end + RUBY + ".kettle-jem.yml" => <<~YAML, + templates: + root: template + apply: true + entries: + - mise.toml + YAML + "template/mise.toml.example" => <<~TOML + [tools] + ruby = "3.4.1" + TOML + }) + + commands = [] + command_runner = lambda do |command, **| + commands << command + {success: true, exitstatus: 0, stdout: "", stderr: ""} + end + env = {"PATH" => "#{fake_bin}#{File::PATH_SEPARATOR}#{ENV.fetch("PATH", "")}"} + + install = Kettle::Jem::Tasks::InstallTask.run( + project_root: root, + env: env, + run_options: {only: "mise.toml", bootstrap_mode: true, skip_commit: true}, + command_runner: command_runner + ) + + expect(install.fetch(:install_steps)).to include( + name: "mise_trust", + path: "mise.toml", + command: ["mise", "trust", "-C", root], + status: "succeeded", + reason: "executed", + exitstatus: 0 + ) + expect(install.fetch(:install_phase_reports)).to include(hash_including( + phase: "post_template", + statuses: hash_including("mise_trust" => "succeeded") + )) + expect(commands).to include(["mise", "trust", "-C", root]) + end + end + + + it "preserves coverage thresholds from an existing coverage workflow in generated mise.toml" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-mise-coverage-thresholds", tmp_root) do |root| + write_tree(root, { + "example.gemspec" => <<~RUBY, + Gem::Specification.new do |spec| + spec.name = "example" + spec.summary = "Example gem" + end + RUBY + ".github/workflows/coverage.yml" => <<~YAML, + env: + K_SOUP_COV_MIN_BRANCH: 64 + K_SOUP_COV_MIN_LINE: 90 + YAML + ".kettle-jem.yml" => <<~YAML, + templates: + root: template + apply: true + entries: + - mise.toml + YAML + "template/mise.toml.example" => <<~TOML + [env] + K_SOUP_COV_MIN_BRANCH = "76" + K_SOUP_COV_MIN_LINE = "92" + + [tools] + ruby = "4.0.6" + TOML + }) + + apply = described_class.apply_project(root, env: {}, run_options: {only: "mise.toml", skip_commit: true}) + mise = File.read(File.join(root, "mise.toml")) + + expect(apply.fetch(:changed_files)).to include("mise.toml") + expect(mise).to include('K_SOUP_COV_MIN_BRANCH = "64"') + expect(mise).to include('K_SOUP_COV_MIN_LINE = "90"') + end + end + + + it "preserves coverage thresholds from mise.toml in generated coverage workflow" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-workflow-coverage-thresholds", tmp_root) do |root| + write_tree(root, { + "example.gemspec" => <<~RUBY, + Gem::Specification.new do |spec| + spec.name = "example" + spec.summary = "Example gem" + end + RUBY + "mise.toml" => <<~TOML, + [env] + K_SOUP_COV_MIN_BRANCH = "76" + K_SOUP_COV_MIN_LINE = "100" + TOML + ".kettle-jem.yml" => <<~YAML, + templates: + root: template + apply: true + entries: + - source: .github/workflows/coverage.yml + target: .github/workflows/coverage.yml + YAML + "template/.github/workflows/coverage.yml" => <<~YAML + name: Test Coverage + + env: + K_SOUP_COV_MIN_BRANCH: 100 + K_SOUP_COV_MIN_LINE: 100 + YAML + }) + + apply = described_class.apply_project(root, env: {}, run_options: {only: ".github/workflows/coverage.yml", skip_commit: true}) + workflow = File.read(File.join(root, ".github", "workflows", "coverage.yml")) + + expect(apply.fetch(:changed_files)).to include(".github/workflows/coverage.yml") + expect(workflow).to include("K_SOUP_COV_MIN_BRANCH: 76") + expect(workflow).to include("K_SOUP_COV_MIN_LINE: 100") + end + end + + + it "generates QLTY coverage uploads with OIDC in the packaged coverage workflow" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-workflow-coverage-qlty-oidc", tmp_root) do |root| + write_tree(root, { + "example.gemspec" => <<~RUBY, + Gem::Specification.new do |spec| + spec.name = "example" + spec.summary = "Example gem" + end + RUBY + ".kettle-jem.yml" => <<~YAML + templates: + apply: true + entries: + - source: .github/workflows/coverage.yml + target: .github/workflows/coverage.yml + YAML + }) + + apply = described_class.apply_project(root, env: {}, run_options: {only: ".github/workflows/coverage.yml", skip_commit: true}) + workflow = File.read(File.join(root, ".github", "workflows", "coverage.yml")) + + expect(apply.fetch(:changed_files)).to include(".github/workflows/coverage.yml") + expect_pinned_action(workflow, "qltysh/qlty-action/coverage") + expect(workflow).to include("oidc: true") + expect(workflow).not_to include("QLTY_COVERAGE_TOKEN") + expect(workflow).not_to include("KJ|GITHUB_ACTIONS:COVERAGE_UPLOAD_STEPS") + end + end + + + it "bootstraps version_gem touchpoints before bundled setup" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-version-gem-bootstrap", tmp_root) do |root| + write_tree(root, { + "example-gem.gemspec" => <<~RUBY, + Gem::Specification.new do |spec| + spec.name = "example-gem" + spec.version = "1.2.3" + spec.summary = "Example gem" + end + RUBY + ".kettle-jem.yml" => <<~YAML, + templates: + root: template + apply: true + entries: + - source: example-gem.gemspec + target: example-gem.gemspec + YAML + "template/example-gem.gemspec.example" => <<~RUBY + Gem::Specification.new do |spec| + spec.name = "example-gem" + spec.version = "1.2.3" + spec.summary = "Example gem" + spec.add_dependency "version_gem", "~> 1.1", ">= 1.1.14" + end + RUBY + }) + commands = [] + command_runner = lambda do |command, **| + commands << command + {success: true, exitstatus: 0, stdout: "", stderr: ""} + end + + install = Kettle::Jem::Tasks::InstallTask.run( + project_root: root, + env: {}, + run_options: {only: "example-gem.gemspec", skip_commit: true}, + command_runner: command_runner + ) + version_path = File.join(root, "lib", "example/gem/version.rb") + entrypoint_path = File.join(root, "lib", "example/gem.rb") + + expect(install.fetch(:install_steps)).to include( + name: "version_gem_bootstrap", + status: "applied", + changed_files: ["lib/example/gem/version.rb", "lib/example/gem.rb", "sig/example/gem.rbs"], + version_path: "lib/example/gem/version.rb", + entrypoint_path: "lib/example/gem.rb", + signature_path: "sig/example/gem.rbs" + ) + expect(install.fetch(:install_phase_reports)).to include(hash_including( + phase: "post_template", + statuses: hash_including("version_gem_bootstrap" => "applied") + )) + expect(File.read(version_path)).to include("module Example") + expect(File.read(version_path)).to include("module Gem") + expect(File.read(version_path)).to include('VERSION = "1.2.3"') + expect(File.read(entrypoint_path)).to include('require "version_gem"') + expect(File.read(entrypoint_path)).to include('require_relative "gem/version"') + expect(File.read(entrypoint_path)).to include("Example::Gem::Version.class_eval do") + signature = File.read(File.join(root, "sig", "example", "gem.rbs")) + expect(signature).to include("module Example") + expect(signature).to include("module Gem") + expect(signature).to include("module Version") + expect(signature).to include("VERSION: String") + expect(commands).to include( + %w[bundle binstubs appraisal2 rake rbs rspec-core yard kettle-dev kettle-test kettle-soup-cover stone_checksums], + kettle_jem_handoff_command("--skip-commit", "--only", "example-gem.gemspec") + ) + end + end + + + it "uses configured version_gem namespace before stale entrypoint inference" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + + Dir.mktmpdir("kettle-jem-version-gem-configured-namespace", tmp_root) do |root| + write_tree(root, { + "lib/oauth2/mcp.rb" => <<~RUBY, + # frozen_string_literal: true + + module OAuth2 + module MCP + end + end + + Oauth2::Mcp::Version.class_eval do + extend VersionGem::Basic + end + RUBY + "lib/oauth2/mcp/version.rb" => <<~RUBY + # frozen_string_literal: true + + module OAuth2 + module MCP + VERSION = "0.1.0" + end + end + RUBY + }) + facts = { + package: {name: "oauth2-mcp"}, + rubygems: {entrypoint_require: "oauth2/mcp", namespace: "OAuth2::MCP"}, + project_runtime: {version: "0.1.0"} + } + + step = described_class.send(:version_gem_bootstrap_step, root, facts) + version_file = File.read(File.join(root, "lib", "oauth2", "mcp", "version.rb")) + signature = File.read(File.join(root, "sig", "oauth2", "mcp.rbs")) + + expect(step.fetch(:status)).to eq("applied") + expect(version_file).to include("module OAuth2") + expect(version_file).to include("module MCP") + expect(version_file).not_to include("module Oauth2") + expect(signature).to include("module OAuth2") + expect(signature).to include("module MCP") + expect(signature).not_to include("module Oauth2") + end + end + + + it "discovers public entrypoint version namespace before stale gemspec metadata" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + + Dir.mktmpdir("kettle-jem-version-gem-public-entrypoint-namespace", tmp_root) do |root| + write_tree(root, { + "oauth2.gemspec" => <<~RUBY, + Gem::Specification.new do |spec| + spec.name = "oauth2" + spec.version = Module.new.tap { |mod| Kernel.load("\#{__dir__}/lib/oauth2/version.rb", mod) }::Oauth2::Version::VERSION + spec.summary = "OAuth2" + spec.required_ruby_version = ">= 2.2.0" + end + RUBY + "lib/oauth2.rb" => <<~RUBY, + # frozen_string_literal: true + + require_relative "oauth2/version" + + module OAuth2 + end + + OAuth2::Version.class_eval do + extend VersionGem::Basic + end + + Oauth2::Version.class_eval do + extend VersionGem::Basic + end + RUBY + "lib/oauth2/version.rb" => <<~RUBY, + # frozen_string_literal: true + + module OAuth2 + module Version + VERSION = "2.0.20" + end + VERSION = Version::VERSION + end + RUBY + ".kettle-jem.yml" => <<~YAML + project_emoji: "🔐" + rubygems: + min_ruby: "2.2.0" + YAML + }) + + facts = described_class.send(:discover_facts, root, env: {}, run_options: {skip_commit: true}) + + expect(facts.dig(:rubygems, :namespace)).to eq("OAuth2") + expect(facts.dig(:rubygems, :namespace)).not_to eq("Oauth2") + end + end + + + it "discovers nested public entrypoint namespace before stale generated version namespace" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + + Dir.mktmpdir("kettle-jem-nested-entrypoint-namespace", tmp_root) do |root| + write_tree(root, { + "warden_oauth.gemspec" => <<~RUBY, + Gem::Specification.new do |spec| + spec.name = "warden_oauth" + spec.version = Module.new.tap { |mod| Kernel.load("\#{__dir__}/lib/warden_oauth/version.rb", mod) }::WardenOauth::Version::VERSION + spec.summary = "Warden OAuth" + spec.required_ruby_version = ">= 1.8" + end + RUBY + "lib/warden_oauth.rb" => <<~RUBY, + # frozen_string_literal: true + + require_relative "warden_oauth/version" + + module Warden + module OAuth + autoload :Strategy, "warden_oauth/strategy" + end + end + RUBY + "lib/warden_oauth/version.rb" => <<~RUBY, + # frozen_string_literal: true + + module WardenOauth + module Version + VERSION = "0.1.1" + end + VERSION = Version::VERSION + end + RUBY + ".kettle-jem.yml" => <<~YAML + project_emoji: "🛡️" + rubygems: + min_ruby: "1.8" + YAML + }) + + facts = described_class.send(:discover_facts, root, env: {}, run_options: {skip_commit: true}) + tokens = described_class.send(:template_tokens, facts, {}) + + expect(facts.dig(:rubygems, :namespace)).to eq("Warden::OAuth") + expect(facts.dig(:rubygems, :namespace)).not_to eq("WardenOauth") + expect(tokens.fetch("KJ|NAMESPACE_SHIELD")).to eq("Warden::OAuth") + end + end + + + it "does not infer nested implementation namespaces from the public entrypoint" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + + Dir.mktmpdir("kettle-jem-entrypoint-implementation-namespace", tmp_root) do |root| + write_tree(root, { + "kettle-dev.gemspec" => <<~RUBY, + Gem::Specification.new do |spec| + spec.name = "kettle-dev" + spec.version = Module.new.tap { |mod| Kernel.load("\#{__dir__}/lib/kettle/dev/version.rb", mod) }::Kettle::Dev::Version::VERSION + spec.summary = "Kettle Dev" + spec.required_ruby_version = ">= 2.4.0" + end + RUBY + "lib/kettle/dev.rb" => <<~RUBY, + # frozen_string_literal: true + + require_relative "dev/version" + + module Kettle + module Dev + autoload :ReleaseCLI, "kettle/dev/release_cli" + + module Tasks + autoload :CITask, "kettle/dev/tasks/ci_task" + end + end + end + RUBY + "lib/kettle/dev/version.rb" => <<~RUBY, + # frozen_string_literal: true + + module Kettle + module Dev + module Version + VERSION = "2.3.fixture.rc1" + end + VERSION = Version::VERSION + end + end + RUBY + ".kettle-jem.yml" => <<~YAML + rubygems: + min_ruby: "2.4.0" + YAML + }) + + facts = described_class.send(:discover_facts, root, env: {}, run_options: {skip_commit: true}) + + expect(facts.dig(:rubygems, :namespace)).to eq("Kettle::Dev") + expect(facts.dig(:rubygems, :namespace)).not_to eq("Kettle::Dev::Tasks") + end + end + + + it "normalizes generated README badge image URLs consistently with pre-release checks" do + expect(described_class.send(:shield_token, "Example::Gem")).to eq("Example::Gem") + expect(described_class.send(:license_compat_img, :a)).to include( + "Apache_Compatible:_Category_A-%E2%9C%93-259D6C.svg" + ) + end + + + it "places version_gem entrypoint requires from top-level Ruby structure" do + content = <<~RUBY + # frozen_string_literal: true + + def setup + require "version_gem" + end + RUBY + + updated = described_class.send( + :version_gem_bootstrap_entrypoint_content, + content, + namespace: "Example::Gem", + entrypoint_require: "example/gem" + ) + + expect(updated).to start_with(<<~RUBY) + # frozen_string_literal: true + + require "version_gem" + require_relative "gem/version" + + def setup + require "version_gem" + end + RUBY + expect(updated).to include("Example::Gem::Version.class_eval do") + end + + + it "anchors version_gem relative entrypoint requires after an existing top-level version_gem require" do + content = <<~RUBY + # frozen_string_literal: true + + require "version_gem" + + module Example + module Gem + end + end + RUBY + + updated = described_class.send( + :version_gem_bootstrap_entrypoint_content, + content, + namespace: "Example::Gem", + entrypoint_require: "example/gem" + ) + + expect(updated).to include(<<~RUBY) + require "version_gem" + require_relative "gem/version" + + module Example + RUBY + end + + + it "reports setup execution context without load-path inspection" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-setup-context-slice", tmp_root) do |root| + write_tree(root, { + "example.gemspec" => <<~RUBY, + Gem::Specification.new do |spec| + spec.name = "example" + spec.summary = "Example gem" + end + RUBY + ".kettle-jem.yml" => <<~YAML + templates: + root: packaged + apply: true + entries: + - bin/setup + YAML + }) + command_runner = lambda do |_command, chdir:, env:, quiet:| + expect(chdir).to eq(root) + expect(env).to include( + "BUNDLE_LOCKFILE" => nil, + "RUBYLIB" => nil, + "RUBYOPT" => nil + ) + expect(quiet).to be(true) + {success: true, exitstatus: 0, stdout: "", stderr: ""} + end + + bundled = described_class.setup_project( + root, + env: {"BUNDLE_GEMFILE" => File.join(root, "Gemfile")}, + run_options: {only: "bin/setup", quiet: true}, + command_runner: command_runner + ) + expect(bundled.fetch(:setup_execution_context)).to eq( + bundled: true, + source: "BUNDLE_GEMFILE", + bundle_gemfile: File.join(root, "Gemfile") + ) + expect(bundled.fetch(:install_steps)).to include( + name: "bundled_handoff", + status: "already_bundled", + bundle_gemfile: File.join(root, "Gemfile") + ) + + bootstrap = described_class.setup_project( + root, + env: {"BUNDLE_GEMFILE" => File.join(root, "Gemfile")}, + run_options: {only: "bin/setup", bootstrap_mode: true} + ) + expect(bootstrap.fetch(:setup_execution_context)).to eq( + bundled: false, + source: "bootstrap_mode", + bundle_gemfile: nil + ) + end + end + + + it "preserves configured README sections during merge template application" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-readme-merge-slice", tmp_root) do |root| + write_tree(root, { + "example.gemspec" => <<~RUBY, + Gem::Specification.new do |spec| + spec.name = "example" + spec.summary = "Example gem" + end + RUBY + ".kettle-jem.yml" => <<~YAML, + readme: + preserve_sections: + - synopsis + - basic usage + - custom section + - authors + preserve_patterns: + - "note:*" + section_aliases: + usage: basic usage + templates: + root: template + apply: true + entries: + - README.md + YAML + "README.md" => <<~MARKDOWN, + # 1️⃣ Example + + ## Synopsis + + Destination synopsis. + + ### Details + + Destination nested detail. + + ```console + # DANGER: keep this code comment inside the Synopsis branch. + K_JEM_TEMPLATING=true bundle exec kettle-jem template + ``` + + ## Usage + + Destination usage. + + ## Custom Section + + Destination custom. + + ## Note: Local + + Destination note. + + ## Authors + + Destination authors. + + ## Installation + + Old install. + MARKDOWN + "template/README.md.example" => <<~MARKDOWN + # 💎 Example + + ## 🌻 Synopsis + + Template synopsis. + + ## 🔧 Basic Usage + + Template usage. + + ## Custom Section + + Template custom. + + ## Note: Local + + Template note. + + ## Installation + + Template install. + MARKDOWN + }) + + apply = described_class.apply_project(root, env: {}) + readme_report = apply.fetch(:recipe_reports).find do |report| + report.fetch(:recipe_name) == "template_source_application_README_md" + end + final_content = readme_report.fetch(:final_content) + expect(final_content).to include("# 💎 Example") + expect(final_content).to match(/## 🌻 Synopsis(?: <<~RUBY, + Gem::Specification.new do |spec| + spec.name = "example" + spec.summary = "Example gem" + end + RUBY + ".kettle-jem.yml" => <<~YAML, + templates: + root: template + apply: true + entries: + - README.md + YAML + "README.md" => <<~MARKDOWN, + # 💎 Example + + ## Important + + Keep this local warning. + + [![Version][version-img]][version] [![CI][ci-img]][ci] + + ## Synopsis + + Destination synopsis. + MARKDOWN + "template/README.md.example" => <<~MARKDOWN + # 💎 Example + + [![Version][version-img]][version] [![CI][ci-img]][ci] + + ## 🌻 Synopsis + + Template synopsis. + + ## ✨ Installation + + Template install. + MARKDOWN + }) + + apply = described_class.apply_project(root, env: {}) + readme = apply.fetch(:recipe_reports).find do |report| + report.fetch(:recipe_name) == "template_source_application_README_md" + end.fetch(:final_content) + + expect(readme).to include("## Important\n\nKeep this local warning.") + expect(readme).to match(/\A# 💎 Example\n\n## Important/m) + expect(readme).to match(/## Important.*\[!\[Version\]\[version-img\]\]\[version\].*## 🌻 Synopsis/m) + expect(readme).to match(/## 🌻 Synopsis(?: <<~RUBY, + Gem::Specification.new do |spec| + spec.name = "example" + spec.summary = "Example gem" + end + RUBY + ".kettle-jem.yml" => <<~YAML, + files: + config: + explicit.yml: + strategy: merge + file_type: yaml + templates: + root: template + apply: true + entries: + - .github/dependabot.yml + - config/settings.yml + - config/tool.toml + - config/explicit.yml + YAML + ".github/dependabot.yml" => <<~YAML, + updates: + - package-ecosystem: bundler + directory: / + version: 1 + YAML + "config/settings.yml" => <<~YAML, + engines: + - ruby + nested: + value: destination + version: 1 + YAML + "config/tool.toml" => <<~TOML, + title = "destination" + + [settings] + retries = 1 + TOML + "config/explicit.yml" => <<~YAML, + destination_only: keep + nested: + value: destination + YAML + "template/.github/dependabot.yml.example" => <<~YAML, + schedule: + interval: weekly + updates: + - package-ecosystem: github-actions + directory: / + version: 2 + YAML + "template/config/settings.yml.example" => <<~YAML, + engines: + - ruby + - jruby + nested: + template_only: true + value: template + version: 2 + YAML + "template/config/tool.toml.example" => <<~TOML, + title = "template" + + [settings] + retries = 3 + timeout = 30 + TOML + "template/config/explicit.yml.example" => <<~YAML + nested: + value: template + template_only: true + template_only: added + YAML + }) + + apply = described_class.apply_project(root, env: {}) + dependabot_report = apply.fetch(:recipe_reports).find do |report| + report.fetch(:recipe_name) == "template_source_application_github_dependabot_yml" + end + yaml_report = apply.fetch(:recipe_reports).find do |report| + report.fetch(:recipe_name) == "template_source_application_config_settings_yml" + end + toml_report = apply.fetch(:recipe_reports).find do |report| + report.fetch(:recipe_name) == "template_source_application_config_tool_toml" + end + explicit_report = apply.fetch(:recipe_reports).find do |report| + report.fetch(:recipe_name) == "template_source_application_config_explicit_yml" + end + + expect(YAML.safe_load(dependabot_report.fetch(:final_content))).to eq( + "schedule" => {"interval" => "weekly"}, + "updates" => [ + { + "directory" => "/", + "package-ecosystem" => "bundler" + } + ], + "version" => 1 + ) + expect(YAML.safe_load(yaml_report.fetch(:final_content))).to eq( + "engines" => ["ruby"], + "nested" => { + "template_only" => true, + "value" => "destination" + }, + "version" => 1 + ) + expect(toml_report.fetch(:final_content)).to eq(<<~TOML) + title = "destination" + + [settings] + retries = 1 + timeout = 30 + TOML + expect(YAML.safe_load(explicit_report.fetch(:final_content))).to eq( + "destination_only" => "keep", + "nested" => { + "template_only" => true, + "value" => "destination" + }, + "template_only" => "added" + ) + expect(explicit_report.dig(:metadata, :template_source_preference)).to include(file_type: "yaml") + end + end + + + it "merges Git driver TOML manifests with destination driver values" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-git-driver-toml-merge", tmp_root) do |root| + write_tree(root, { + "example.gemspec" => <<~RUBY, + Gem::Specification.new do |spec| + spec.name = "example" + spec.summary = "Example gem" + end + RUBY + ".kettle-jem.yml" => <<~YAML, + templates: + root: template + apply: true + entries: + - .structuredmerge/git-drivers.toml + YAML + ".structuredmerge/git-drivers.toml" => <<~TOML, + version = 1 + driver_namespace = "smorg" + + [profiles.semantic-diff] + description = "Destination driver" + + [[profiles.semantic-diff.attributes]] + pattern = "*.rb" + diff = "smorg-rb" + + [[profiles.semantic-diff.git_config]] + scope = "global" + key = "diff.smorg-rb.command" + value = "smorg-rb diff-driver" + TOML + "template/.structuredmerge/git-drivers.toml.example" => <<~TOML + version = 1 + driver_namespace = "smorg" + + [profiles.semantic-diff] + description = "Template driver" + + [[profiles.semantic-diff.attributes]] + pattern = "*.rb" + diff = "smorg-rb" + + [[profiles.semantic-diff.git_config]] + scope = "global" + key = "diff.smorg-rb.command" + value = "smorg-rb diff-driver" + + [profiles.textconv-normalized] + description = "Template-only profile" + + [[profiles.textconv-normalized.attributes]] + pattern = "*.json" + diff = "smorg-json-textconv" + TOML + }) + + apply = described_class.apply_project(root, env: {}) + report = apply.fetch(:recipe_reports).find do |candidate| + candidate.fetch(:relative_path) == ".structuredmerge/git-drivers.toml" + end + content = report.fetch(:final_content) + + expect(content).to include('diff = "smorg-rb"') + expect(content).to include('key = "diff.smorg-rb.command"') + expect(content).to include('value = "smorg-rb diff-driver"') + expect(content).to include("[profiles.textconv-normalized]") + expect(content).not_to include("smorg-ruby") + end + end + + + it "restores documentation comments from YAML templates when destination config stripped them" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-yaml-template-comment-restore", tmp_root) do |root| + write_tree(root, { + "example.gemspec" => <<~RUBY, + Gem::Specification.new do |spec| + spec.name = "example" + spec.summary = "Example gem" + end + RUBY + ".kettle-jem.yml" => <<~YAML, + templates: + root: template + apply: true + entries: + - .kettle-jem.yml + YAML + "template/.kettle-jem.yml.example" => <<~YAML + # kettle-jem configuration file + templates: + # Template root directory. + root: template + # Apply templates during setup. + apply: true + # Template entries to apply. + entries: + - .kettle-jem.yml + YAML + }) + + apply = described_class.apply_project(root, env: {}) + report = apply.fetch(:recipe_reports).find do |candidate| + candidate.fetch(:recipe_name) == "template_source_application_kettle_jem_yml" + end + final_content = report.fetch(:final_content) + + expect(final_content).to include("# kettle-jem configuration file") + expect(final_content).to include("# Template root directory.") + expect(final_content).to include("# Apply templates during setup.") + expect(final_content).to include("# Template entries to apply.") + expect(File.read(File.join(root, ".kettle-jem.yml"))).to eq(final_content) + end + end + + + it "allows YAML template recipes to keep git-style destination comment policy" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-yaml-template-comment-policy", tmp_root) do |root| + write_tree(root, { + "example.gemspec" => <<~RUBY, + Gem::Specification.new do |spec| + spec.name = "example" + spec.summary = "Example gem" + end + RUBY + ".kettle-jem.yml" => <<~YAML, + templates: + root: template + apply: true + entries: + - config/settings.yml + files: + config: + settings.yml: + strategy: merge + file_type: yaml + comment_merge_policy: preserve_destination + YAML + "config/settings.yml" => <<~YAML, + project: + name: example + YAML + "template/config/settings.yml.example" => <<~YAML + # project settings + project: + # Project display name. + name: example + YAML + }) + + apply = described_class.apply_project(root, env: {}) + report = apply.fetch(:recipe_reports).find do |candidate| + candidate.fetch(:recipe_name) == "template_source_application_config_settings_yml" + end + final_content = report.fetch(:final_content) + + expect(final_content).not_to include("# project settings") + expect(final_content).not_to include("# Project display name.") + expect(final_content).to include("project:") + expect(final_content).to include(" name: example") + end + end + + + it "merges Ruby-family template applications with destination declarations and DSL calls" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-ruby-merge-slice", tmp_root) do |root| + write_tree(root, { + "example.gemspec" => <<~RUBY, + Gem::Specification.new do |spec| + spec.name = "example" + spec.summary = "Example gem" + end + RUBY + ".kettle-jem.yml" => <<~YAML, + templates: + root: template + apply: true + entries: + - Gemfile + - Rakefile + - lib/example.rb + YAML + "Gemfile" => <<~RUBY, + source "https://gem.coop" + gem "rspec" + gem "example", path: "../example" + eval_gemfile "gemfiles/modular/style.gemfile" + RUBY + "Rakefile" => <<~RUBY, + desc "Default" + task :default do + puts "destination" + end + RUBY + "lib/example.rb" => <<~RUBY, + require "set" + + class Existing + def keep + :destination + end + end + RUBY + "template/Gemfile.example" => <<~RUBY, + source "https://gem.coop" + gemspec + eval_gemfile "gemfiles/modular/style.gemfile" if ENV.fetch("K_JEM_STYLE", "false").casecmp("true").zero? + gem "appraisal" + gem "example", path: "." + gem "rake" + RUBY + "template/Rakefile.example" => <<~RUBY, + desc "Default" + task :default do + puts "template" + end + + desc "CI" + task :ci do + sh "bundle exec rspec" + end + RUBY + "template/lib/example.rb.example" => <<~RUBY + require "json" + + class Existing + def keep + :template + end + end + + class Added + def call + :template_only + end + end + RUBY + }) + + apply = described_class.apply_project(root, env: {}) + ruby_report = apply.fetch(:recipe_reports).find do |report| + report.fetch(:recipe_name) == "template_source_application_lib_example_rb" + end + gemfile_report = apply.fetch(:recipe_reports).find do |report| + report.fetch(:recipe_name) == "template_source_application_Gemfile" + end + rakefile_report = apply.fetch(:recipe_reports).find do |report| + report.fetch(:recipe_name) == "template_source_application_Rakefile" + end + final_content = ruby_report.fetch(:final_content) + + expect(final_content).to include('require "set"') + expect(final_content).to include('require "json"') + expect(final_content).to include("def keep\n :destination\n end") + expect(final_content).to include("class Added") + expect(final_content).to include(":template_only") + expect(File.read(File.join(root, "lib/example.rb"))).to eq(final_content) + + gemfile_content = gemfile_report.fetch(:final_content) + expect(gemfile_content).to include('source "https://gem.coop"') + expect(gemfile_content).to include("gemspec") + expect(gemfile_content).to include('eval_gemfile "gemfiles/modular/style.gemfile" if ENV.fetch("K_JEM_STYLE", "false").casecmp("true").zero?') + expect(gemfile_content).to include('gem "rspec"') + expect(gemfile_content).to include('gem "rake"') + expect(gemfile_content).not_to include('gem "appraisal"') + expect(gemfile_content).not_to include('gem "example"') + expect(gemfile_report.dig(:report_envelope, :report, :step_reports, 0, :metadata, :ruby_template_policy)).to include( + file_type: "gemfile", + operations: include( + include(operation: "delete_dependency_declarations", deleted_gems: contain_exactly("appraisal", "example")) + ) + ) + + rakefile_content = rakefile_report.fetch(:final_content) + expect(rakefile_content.scan(/task\s+:default/).size).to eq(1) + expect(rakefile_content).to include('puts "destination"') + expect(rakefile_content).to include("task :ci") + end + end + + + it "normalizes generated Rakefile section spacing after merge" do + rakefile = described_class.send(:normalize_generated_rakefile, <<~RAKE) + task :custom do + puts "custom" + end + + + ### TEMPLATING TASKS + task "kettle:jem:selftest" + RAKE + + expect(rakefile).to include("\n\n### TEMPLATING TASKS\n") + expect(rakefile).not_to include("\n\n\n### TEMPLATING TASKS") + end + + + it "passes Ruby method move policy through per-file template strategy config" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-ruby-method-move-policy-slice", tmp_root) do |root| + write_tree(root, { + "example.gemspec" => <<~RUBY, + Gem::Specification.new do |spec| + spec.name = "example" + spec.summary = "Example gem" + end + RUBY + ".kettle-jem.yml" => <<~YAML, + files: + lib: + example.rb: + strategy: merge + file_type: ruby + method_move_policy: destination_order + templates: + root: template + apply: true + entries: + - lib/example.rb + YAML + "lib/example.rb" => <<~RUBY, + class Greeter + def beta + :beta + end + + def alpha + :alpha + end + end + RUBY + "template/lib/example.rb.example" => <<~RUBY + class Greeter + def alpha + :template_alpha + end + + def beta + :template_beta + end + + def gamma + :gamma + end + end + RUBY + }) + + apply = described_class.apply_project(root, env: {}) + report = apply.fetch(:recipe_reports).find do |entry| + entry.fetch(:recipe_name) == "template_source_application_lib_example_rb" + end + final_content = report.fetch(:final_content) + + expect(final_content.index("def beta")).to be < final_content.index("def alpha") + expect(final_content.scan("def alpha").size).to eq(1) + expect(final_content.scan("def beta").size).to eq(1) + expect(final_content.scan("def gamma").size).to eq(1) + expect(report.dig(:metadata, :template_source_preference)).to include( + file_type: "ruby", + method_move_policy: "destination_order" + ) + end + end + +end diff --git a/gems/kettle-jem/spec/integration/template_bootstrap_spec.rb b/gems/kettle-jem/spec/integration/template_bootstrap_spec.rb new file mode 100644 index 000000000..e61be6572 --- /dev/null +++ b/gems/kettle-jem/spec/integration/template_bootstrap_spec.rb @@ -0,0 +1,1444 @@ +# frozen_string_literal: true + +RSpec.describe Kettle::Jem, "template selection and bootstrap behavior" do + include_context "with isolated kettle-jem environment" + include_context "with kettle-jem fixture contracts" + + it "filters template recipes with old only/include semantics" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-only-filter-slice", tmp_root) do |root| + write_tree(root, { + "example.gemspec" => <<~RUBY, + Gem::Specification.new do |spec| + spec.name = "example" + spec.summary = "Example gem" + spec.required_ruby_version = ">= 3.2" + spec.metadata["source_code_uri"] = "https://github.com/acme/example" + end + RUBY + ".kettle-jem.yml" => <<~YAML, + project_emoji: "💎" + templates: + root: template + apply: true + entries: + - README.md + YAML + "template/README.md.example" => "# Example\n" + }) + + plan = described_class.plan_project(root, env: {}, run_options: {only: "README.md"}) + paths = plan.fetch(:recipe_reports).map { |report| report.fetch(:relative_path) } + expect(paths.uniq).to eq(["README.md"]) + + apply = described_class.apply_project(root, env: {}, run_options: {only: "README.md"}) + expect(apply.fetch(:changed_files)).to eq(["README.md"]) + expect(File).to exist(File.join(root, "README.md")) + expect(File).not_to exist(File.join(root, ".github", "FUNDING.yml")) + + expanded = described_class.plan_project(root, env: {}, run_options: {only: "README.md", include: ".github/**"}) + expect(expanded.fetch(:recipe_reports).map { |report| report.fetch(:relative_path) }).to include( + "README.md", + ".github/FUNDING.yml" + ) + end + end + + + it "bootstraps kettle config from packaged reference template when missing" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-config-bootstrap-slice", tmp_root) do |root| + write_tree(root, { + "example.gemspec" => <<~RUBY + Gem::Specification.new do |spec| + spec.name = "example" + spec.summary = "Example gem" + end + RUBY + }) + + plan = described_class.plan_project(root, env: {"KJ_MIN_DIVERGENCE_THRESHOLD" => "7"}) + bootstrap_report = plan[:recipe_reports].find do |report| + report.fetch(:recipe_name) == "kettle_config_bootstrap" + end + expect(bootstrap_report.fetch(:changed)).to be(true) + expect(bootstrap_report.fetch(:relative_path)).to eq(".structuredmerge/kettle-jem.yml") + expect(bootstrap_report.dig(:metadata, :bootstrap_file)).to be(true) + expect(bootstrap_report.dig(:metadata, :template_source_preference)).to include( + selected_source: ".structuredmerge/kettle-jem.yml.example", + source_relative_path: ".structuredmerge/kettle-jem.yml.example", + source_root: "packaged" + ) + expect(bootstrap_report.fetch(:final_content)).to include("# kettle-jem configuration file") + expect(bootstrap_report.fetch(:final_content)).to include("min_divergence_threshold: 7") + expect(bootstrap_report.fetch(:final_content)).to include("# tokens - values for {KJ|...} placeholders used across template files") + + described_class.apply_project(root, env: {"KJ_MIN_DIVERGENCE_THRESHOLD" => "7"}) + expect(File.read(File.join(root, ".structuredmerge/kettle-jem.yml"))).to eq(bootstrap_report.fetch(:final_content)) + end + end + + + it "removes explicit RuboCop TargetRubyVersion when templating rubocop-lts config" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-rubocop-target-ruby-version-cleanup", tmp_root) do |root| + write_tree(root, { + "example.gemspec" => <<~RUBY, + Gem::Specification.new do |spec| + spec.name = "example" + spec.summary = "Example gem" + end + RUBY + ".kettle-jem.yml" => <<~YAML, + templates: + root: template + apply: true + entries: + - .rubocop.yml + YAML + ".rubocop.yml" => <<~YAML, + inherit_gem: + rubocop-lts: config/rubygem_rspec.yml + AllCops: + Exclude: + - tmp/**/* + TargetRubyVersion: 3.2 + Style/StringLiterals: + EnforcedStyle: double_quotes + YAML + "template/.rubocop.yml.example" => <<~YAML + inherit_gem: + rubocop-lts: config/rubygem_rspec.yml + AllCops: + Exclude: + - vendor/**/* + - "**/vendor/**/*" + RBS: + Enabled: true + YAML + }) + + apply = described_class.apply_project(root, env: {}, run_options: {skip_commit: true}) + report = apply.fetch(:recipe_reports).find { |candidate| candidate.fetch(:relative_path) == ".rubocop.yml" } + config = YAML.safe_load(report.fetch(:final_content)) + + expect(report.fetch(:changed)).to be(true) + expect(config.fetch("AllCops")).not_to have_key("TargetRubyVersion") + expect(config.dig("AllCops", "Exclude")).to eq(["tmp/**/*"]) + expect(config.dig("Style/StringLiterals", "EnforcedStyle")).to eq("double_quotes") + expect(config.dig("RBS", "Enabled")).to be(true) + expect(report.fetch(:final_content)).not_to include("TargetRubyVersion") + expect(File.read(File.join(root, ".rubocop.yml"))).to eq(report.fetch(:final_content)) + end + end + + + it "activates the RSpec RuboCop plugin when templating the RSpec RuboCop overlay" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-rubocop-rspec-plugin", tmp_root) do |root| + write_tree(root, { + "example.gemspec" => <<~RUBY, + Gem::Specification.new do |spec| + spec.name = "example" + spec.summary = "Example gem" + end + RUBY + ".kettle-jem.yml" => <<~YAML, + templates: + root: packaged + apply: true + entries: + - .rubocop.yml + YAML + ".rubocop.yml" => <<~YAML + inherit_gem: + rubocop-lts: config/rubygem_rspec.yml + plugins: + - rubocop-on-rbs + - rubocop-packaging + YAML + }) + + apply = described_class.apply_project(root, env: {}, run_options: {skip_commit: true}) + report = apply.fetch(:recipe_reports).find { |candidate| candidate.fetch(:relative_path) == ".rubocop.yml" } + config = YAML.safe_load(report.fetch(:final_content)) + + expect(config.fetch("plugins")).to include("rubocop-rspec", "rubocop-on-rbs", "rubocop-packaging") + expect(File.read(File.join(root, ".rubocop.yml"))).to eq(report.fetch(:final_content)) + end + end + + + it "seeds bootstrap config licenses from the gemspec" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-config-bootstrap-licenses", tmp_root) do |root| + write_tree(root, { + "example.gemspec" => <<~RUBY + Gem::Specification.new do |spec| + spec.name = "example" + spec.summary = "Example gem" + spec.licenses = ["AGPL-3.0-only", "PolyForm-Small-Business-1.0.0"] + end + RUBY + }) + + plan = described_class.plan_project(root, env: {}) + bootstrap_report = plan.fetch(:recipe_reports).find do |report| + report.fetch(:recipe_name) == "kettle_config_bootstrap" + end + + expect(bootstrap_report.fetch(:final_content)).to include(<<~YAML) + licenses: + - AGPL-3.0-only + - PolyForm-Small-Business-1.0.0 + YAML + expect(bootstrap_report.fetch(:final_content)).not_to include(<<~YAML) + licenses: + - MIT + YAML + expect(bootstrap_report.fetch(:final_content)).to include(<<~YAML) + license_eye: + dependency_licenses: + - name: simplecov-rcov + version: 0.3.7 + license: MIT + YAML + end + end + + + it "seeds bootstrap config minimum Ruby from the gemspec" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-config-bootstrap-min-ruby", tmp_root) do |root| + write_tree(root, { + "example.gemspec" => <<~RUBY + Gem::Specification.new do |spec| + spec.name = "example" + spec.summary = "Example gem" + spec.required_ruby_version = ">= 3.2.0" + end + RUBY + }) + + plan = described_class.plan_project(root, env: {}) + bootstrap_report = plan.fetch(:recipe_reports).find do |report| + report.fetch(:recipe_name) == "kettle_config_bootstrap" + end + content = bootstrap_report.fetch(:final_content) + + expect(content).to include(<<~YAML) + ruby: + # Lowest MRI Ruby version for generated CI workflows, Appraisals, and + # test/development dependency assumptions. This is intentionally separate + # from the gemspec required_ruby_version, which describes the published + # runtime contract. Effective CI minimum is max(gemspec minimum, this value). + test_minimum: "3.2.0" + YAML + expect(content).to include(<<~YAML) + rubygems: + # Published runtime Ruby floor used for generated gemspec metadata and README + # compatibility text. Omit this to derive the value from the gemspec. + min_ruby: "3.2.0" + YAML + expect(content).not_to include('min_ruby: "2.4"') + end + end + + + it "seeds bootstrap config runtime URI values from gemspec metadata" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-config-bootstrap-runtime-uris", tmp_root) do |root| + write_tree(root, { + "example.gemspec" => <<~RUBY + Gem::Specification.new do |spec| + spec.name = "example" + spec.summary = "Example gem" + spec.email = ["maintainer@example.test"] + spec.metadata["homepage_uri"] = "https://docs.example.test" + end + RUBY + }) + + reader_metadata = described_class::GemSpecReader.load(root) + expect(reader_metadata[:homepage_uri]).to eq("https://docs.example.test") + + plan = described_class.plan_project(root, env: {}) + bootstrap_report = plan.fetch(:recipe_reports).find do |report| + report.fetch(:recipe_name) == "kettle_config_bootstrap" + end + content = bootstrap_report.fetch(:final_content) + + expect(content).to include('yard_host: "example.example.test"') + expect(content).to include('homepage_uri: "https://docs.example.test"') + expect(content).not_to include("{KJ|YARD_HOST}") + expect(content).not_to include("{KJ|HOMEPAGE_URI}") + end + end + + + it "syncs OpenCollective ENV into bootstrap config funding tokens" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-config-bootstrap-open-collective", tmp_root) do |root| + write_tree(root, { + "example.gemspec" => <<~RUBY + Gem::Specification.new do |spec| + spec.name = "example" + spec.summary = "Example gem" + end + RUBY + }) + + plan = described_class.plan_project(root, env: {"OPENCOLLECTIVE_HANDLE" => "example-org"}) + bootstrap_report = plan.fetch(:recipe_reports).find do |report| + report.fetch(:recipe_name) == "kettle_config_bootstrap" + end + content = bootstrap_report.fetch(:final_content) + config = YAML.safe_load(content) + + expect(config.dig("tokens", "funding", "open_collective")).to eq("example-org") + expect(content).to include('open_collective: "example-org"') + expect(content).not_to include('open_collective: "galtzo-floss"') + end + end + + + it "syncs FUNDING_ORG ENV into bootstrap config OpenCollective tokens" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-config-bootstrap-funding-org", tmp_root) do |root| + write_tree(root, { + "example.gemspec" => <<~RUBY + Gem::Specification.new do |spec| + spec.name = "example" + spec.summary = "Example gem" + end + RUBY + }) + + plan = described_class.plan_project(root, env: {"FUNDING_ORG" => "funding-org"}) + bootstrap_report = plan.fetch(:recipe_reports).find do |report| + report.fetch(:recipe_name) == "kettle_config_bootstrap" + end + config = YAML.safe_load(bootstrap_report.fetch(:final_content)) + + expect(config.dig("tokens", "funding", "open_collective")).to eq("funding-org") + end + end + + + it "bootstraps full-template Gemfile ownership to avoid merging legacy Gemfile dependency sets" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-config-bootstrap-gemfile-owner", tmp_root) do |root| + write_tree(root, { + "example.gemspec" => <<~RUBY + Gem::Specification.new do |spec| + spec.name = "example" + spec.summary = "Example gem" + end + RUBY + }) + + plan = described_class.plan_project(root, env: {}) + bootstrap_report = plan.fetch(:recipe_reports).find do |report| + report.fetch(:recipe_name) == "kettle_config_bootstrap" + end + config = YAML.safe_load(bootstrap_report.fetch(:final_content)) + + expect(config.dig("files", "Gemfile", "strategy")).to eq("accept_template") + end + end + + + it "seeds bootstrap config CI minimum Ruby no lower than 2.4" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-config-bootstrap-ci-min-ruby", tmp_root) do |root| + write_tree(root, { + "example.gemspec" => <<~RUBY + Gem::Specification.new do |spec| + spec.name = "example" + spec.summary = "Example gem" + spec.required_ruby_version = ">= 2.3" + end + RUBY + }) + + plan = described_class.plan_project(root, env: {}) + bootstrap_report = plan.fetch(:recipe_reports).find do |report| + report.fetch(:recipe_name) == "kettle_config_bootstrap" + end + content = bootstrap_report.fetch(:final_content) + + expect(content).to include('test_minimum: "2.4"') + expect(content).to include('min_ruby: "2.3"') + end + end + + + it "bootstraps a monorepo subgem template profile with package-owned entries and Gemfile support files" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-config-bootstrap-monorepo-subgem", tmp_root) do |root| + write_tree(root, { + "tree_haver.gemspec" => <<~RUBY, + Gem::Specification.new do |spec| + spec.name = "tree_haver" + spec.summary = "Example gem" + spec.licenses = ["AGPL-3.0-only", "PolyForm-Small-Business-1.0.0"] + spec.required_ruby_version = ">= 3.2" + end + RUBY + "README.md" => "# 💎 Tree::Haver\n\nExisting README.\n" + }) + + setup = described_class.setup_project( + root, + env: {}, + run_options: {bootstrap_mode: true, template_profile: "monorepo-subgem", skip_commit: true} + ) + config = File.read(File.join(root, ".structuredmerge", "kettle-jem.yml")) + config_yaml = YAML.safe_load(config) + + expect(setup.fetch(:changed_files)).to include(".structuredmerge/kettle-jem.yml") + expect(config).to include("project_emoji: 💎\n") + expect(config_yaml.dig("templates", "root")).to eq("packaged") + expect(config_yaml.dig("templates", "apply")).to be(true) + expect(config_yaml.dig("templates", "profile")).to eq("monorepo-subgem-package") + expect(config_yaml.dig("templates", "entries")).to include( + "README.md", + {"source" => "gem.gemspec", "target" => "tree_haver.gemspec"}, + "LICENSE.md", + "Gemfile", + "gemfiles/modular/coverage.gemfile", + "gemfiles/modular/debug.gemfile", + "gemfiles/modular/documentation.gemfile", + "gemfiles/modular/optional.gemfile", + "gemfiles/modular/style.gemfile", + "gemfiles/modular/templating.gemfile", + "gemfiles/modular/templating_local.gemfile", + "gemfiles/modular/x_std_libs.gemfile" + ) + expect(config).to include( + " - source: lib/gem/version.rb\n " \ + "target: lib/tree_haver/version.rb\n " \ + "- source: sig/gem.rbs\n " \ + "target: sig/tree_haver.rbs\n" + ) + expect(config).to include(" - certs/pboling.pem\n") + expect(config).to include(" - tmp/.gitignore\n") + expect(config).not_to include(" - .github/workflows/current.yml\n") + expect(config).to include(<<~YAML) + files: + README.md: + strategy: merge + tree_haver.gemspec: + strategy: keep_destination + YAML + + apply = described_class.apply_project(root, env: {}, run_options: {accept: true, skip_commit: true}) + expect(apply.fetch(:changed_files)).to include("LICENSE.md") + expect(apply.fetch(:changed_files)).to include("README.md") + expect(apply.fetch(:changed_files)).to include("Gemfile") + expect(apply.fetch(:changed_files)).not_to include("tree_haver.gemspec") + expect(File).not_to exist(File.join(root, ".github")) + expect(File.read(File.join(root, "Gemfile"))).to include('gem "nomono", *nomono_requirements, require: false') + expect(File).not_to exist(File.join(root, "Rakefile")) + end + end + + + it "bootstraps a monorepo subgem release profile with per-gem harness entries" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-config-bootstrap-monorepo-subgem-release", tmp_root) do |root| + write_tree(root, { + "tree_haver.gemspec" => <<~RUBY + Gem::Specification.new do |spec| + spec.name = "tree_haver" + spec.summary = "Example gem" + spec.licenses = ["MIT"] + spec.required_ruby_version = ">= 3.2" + end + RUBY + }) + + setup = described_class.setup_project( + root, + env: {}, + run_options: {bootstrap_mode: true, template_profile: "monorepo-subgem-release", skip_commit: true} + ) + config = File.read(File.join(root, ".structuredmerge", "kettle-jem.yml")) + config_yaml = YAML.safe_load(config) + + expect(setup.fetch(:changed_files)).to include(".structuredmerge/kettle-jem.yml") + expect(config_yaml.dig("templates", "profile")).to eq("monorepo-subgem-release") + expect(config_yaml.dig("templates", "entries")).to include( + "Gemfile", + "Rakefile", + ".rspec", + ".simplecov", + ".yardopts", + ".yardignore", + "bin/setup", + "spec/spec_helper.rb", + "gemfiles/modular/documentation.gemfile" + ) + expect(config_yaml.dig("files", "tree_haver.gemspec", "strategy")).to eq("merge") + + apply = described_class.apply_project(root, env: {}, run_options: {accept: true, skip_commit: true}) + expect(apply.fetch(:changed_files)).to include("Gemfile", ".yardopts", ".yardignore", "bin/setup") + expect(File).to exist(File.join(root, "Rakefile")) + expect(File).to exist(File.join(root, "Gemfile")) + expect(File).to exist(File.join(root, ".yardopts")) + updated_config = YAML.safe_load_file(File.join(root, ".structuredmerge", "kettle-jem.yml")) + expect(updated_config.dig("templates", "profile")).to eq("monorepo-subgem-release") + expect(updated_config.dig("templates", "entries")).to include("Rakefile", ".yardopts") + end + end + + + it "renders version_gem Ruby and RBS files from packaged templates" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-version-gem-template-files", tmp_root) do |root| + write_tree(root, { + "example-gem.gemspec" => <<~RUBY, + Gem::Specification.new do |spec| + spec.name = "example-gem" + spec.version = "1.2.3" + spec.summary = "Example gem" + spec.add_dependency "version_gem", "~> 1.1", ">= 1.1.14" + end + RUBY + ".kettle-jem.yml" => <<~YAML + project_emoji: "💎" + templates: + root: packaged + apply: true + entries: + - source: lib/gem/version.rb + target: lib/example/gem/version.rb + - source: sig/gem.rbs + target: sig/example/gem.rbs + YAML + }) + + apply = described_class.apply_project(root, env: {}, run_options: {skip_commit: true, accept: true}) + + expect(apply.fetch(:changed_files)).to include("lib/example/gem/version.rb", "sig/example/gem.rbs") + version_rb = File.read(File.join(root, "lib", "example", "gem", "version.rb")) + expect(version_rb).to include("module Example") + expect(version_rb).to include("module Gem") + expect(version_rb).to include('VERSION = "1.2.3"') + expect(version_rb).not_to end_with("\n\n") + version_rbs = File.read(File.join(root, "sig", "example", "gem.rbs")) + expect(version_rbs).to include("module Example") + expect(version_rbs).to include("module Gem") + expect(version_rbs).to include("VERSION: String") + expect(version_rbs).not_to end_with("\n\n") + post_step = apply.fetch(:post_apply_steps).find { |step| step.fetch(:name) == "version_gem_bootstrap" } + expect(post_step.fetch(:changed_files)).to eq(["lib/example/gem.rb"]) + end + end + + + it "replaces legacy version files with the packaged version_gem template" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-version-gem-accept-template", tmp_root) do |root| + write_tree(root, { + "example-gem.gemspec" => <<~RUBY, + Gem::Specification.new do |spec| + spec.name = "example-gem" + spec.version = "1.2.3" + spec.summary = "Example gem" + spec.add_dependency "version_gem", "~> 1.1", ">= 1.1.14" + end + RUBY + "lib/example/gem/version.rb" => <<~RUBY, + module Example + module Gem + VERSION = "1.2.3" + end + end + RUBY + ".kettle-jem.yml" => <<~YAML + project_emoji: "💎" + templates: + root: packaged + apply: true + entries: + - source: lib/gem/version.rb + target: lib/example/gem/version.rb + YAML + }) + + apply = described_class.apply_project(root, env: {}, run_options: {skip_commit: true, accept: true}) + + expect(apply.fetch(:changed_files)).to include("lib/example/gem/version.rb") + version_rb = File.read(File.join(root, "lib", "example", "gem", "version.rb")) + expect(version_rb).to include("# frozen_string_literal: true") + expect(version_rb).to include("module Version") + expect(version_rb).to include('VERSION = "1.2.3"') + expect(version_rb).to include("VERSION = Version::VERSION # Traditional Constant Location") + expect(version_rb).not_to include("module Gem\n VERSION") + expect(version_rb).not_to end_with("\n\n") + end + end + + + it "uses configured RubyGems entrypoint and namespace for version_gem files" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-version-gem-configured-entrypoint", tmp_root) do |root| + write_tree(root, { + "turbo_tests2.gemspec" => <<~RUBY, + Gem::Specification.new do |spec| + spec.name = "turbo_tests2" + spec.version = "3.0.0" + spec.summary = "Turbo tests" + spec.add_dependency "version_gem", "~> 1.1", ">= 1.1.14" + end + RUBY + ".kettle-jem.yml" => <<~YAML + project_emoji: "🚀" + rubygems: + entrypoint_require: "turbo_tests" + namespace: "TurboTests" + templates: + root: packaged + apply: true + entries: + - source: lib/gem/version.rb + - source: sig/gem.rbs + YAML + }) + + apply = described_class.apply_project(root, env: {}, run_options: {skip_commit: true, accept: true}) + + expect(apply.fetch(:changed_files)).to include("lib/turbo_tests/version.rb", "sig/turbo_tests.rbs") + expect(apply.fetch(:changed_files)).not_to include("lib/turbo_tests2/version.rb") + version_rb = File.read(File.join(root, "lib", "turbo_tests", "version.rb")) + expect(version_rb).to include("module TurboTests") + version_rbs = File.read(File.join(root, "sig", "turbo_tests.rbs")) + expect(version_rbs).to include("module TurboTests") + post_step = apply.fetch(:post_apply_steps).find { |step| step.fetch(:name) == "version_gem_bootstrap" } + expect(post_step.fetch(:changed_files)).to include("lib/turbo_tests.rb") + expect(post_step.fetch(:changed_files)).not_to include("lib/turbo_tests2.rb") + end + end + + + it "migrates all legacy nested RBS files into the package-level signature" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-rbs-consolidation", tmp_root) do |root| + write_tree(root, { + "example-gem.gemspec" => <<~RUBY, + Gem::Specification.new do |spec| + spec.name = "example-gem" + spec.version = "1.2.3" + spec.summary = "Example gem" + spec.add_dependency "version_gem", "~> 1.1", ">= 1.1.14" + end + RUBY + "sig/example/gem/version.rbs" => <<~RBS, + module Example + module Gem + module Version + VERSION: String + end + + VERSION: String + end + end + RBS + "sig/example/gem/client.rbs" => <<~RBS, + module Example + module Gem + class Client + end + end + end + RBS + "sig/example/gem/nested/tool.rbs" => <<~RBS + module Example + module Gem + module Nested + class Tool + end + end + end + end + RBS + }) + + step = described_class.send( + :version_gem_bootstrap_step, + root, + { + package: {name: "example-gem"}, + rubygems: {entrypoint_require: "example/gem", namespace: "Example::Gem"}, + project_runtime: {version: "1.2.3"} + } + ) + + expect(step.fetch(:changed_files)).to include( + "sig/example/gem.rbs", + "sig/example/gem/client.rbs", + "sig/example/gem/nested/tool.rbs", + "sig/example/gem/version.rbs" + ) + expect(step.fetch(:signature_path)).to eq("sig/example/gem.rbs") + expect(File).to exist(File.join(root, "sig", "example", "gem.rbs")) + expect(File).not_to exist(File.join(root, "sig", "example", "gem", "version.rbs")) + expect(File).not_to exist(File.join(root, "sig", "example", "gem", "client.rbs")) + expect(File).not_to exist(File.join(root, "sig", "example", "gem", "nested", "tool.rbs")) + signature = File.read(File.join(root, "sig", "example", "gem.rbs")) + expect(signature).to include("module Example") + expect(signature).to include("module Gem") + expect(signature).to include("module Version") + expect(signature).to include("class Client") + expect(signature).to include("module Nested") + expect(signature).to include("class Tool") + expect(signature.scan("VERSION: String").size).to eq(2) + end + end + + + it "migrates all legacy nested RBS files when the package-level signature is templated" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-templated-rbs-consolidation", tmp_root) do |root| + write_tree(root, { + "example-gem.gemspec" => <<~RUBY, + Gem::Specification.new do |spec| + spec.name = "example-gem" + spec.version = "1.2.3" + spec.summary = "Example gem" + spec.add_dependency "version_gem", "~> 1.1", ">= 1.1.14" + end + RUBY + ".kettle-jem.yml" => <<~YAML, + rubygems: + entrypoint_require: "example/gem" + namespace: "Example::Gem" + templates: + root: template + apply: true + entries: + - source: sig/example/gem.rbs + YAML + "template/sig/example/gem.rbs.example" => <<~RBS, + module Example + module Gem + VERSION: String + end + end + RBS + "sig/example/gem/version.rbs" => <<~RBS, + module Example + module Gem + module Version + BUILD: String + end + end + end + RBS + "sig/example/gem/client.rbs" => <<~RBS + module Example + module Gem + class Client + end + end + end + RBS + }) + + apply = described_class.apply_project(root, env: {}, run_options: {skip_commit: true, accept: true}) + post_step = apply.fetch(:post_apply_steps).find { |step| step.fetch(:name) == "version_gem_bootstrap" } + + expect(post_step.fetch(:changed_files)).to include("sig/example/gem.rbs", "sig/example/gem/client.rbs", "sig/example/gem/version.rbs") + expect(File).not_to exist(File.join(root, "sig", "example", "gem", "version.rbs")) + expect(File).not_to exist(File.join(root, "sig", "example", "gem", "client.rbs")) + signature = File.read(File.join(root, "sig", "example", "gem.rbs")) + expect(signature).to include("VERSION: String") + expect(signature).to include("module Version") + expect(signature).to include("BUILD: String") + expect(signature).to include("class Client") + end + end + + + it "migrates legacy nested RBS files without requiring a version_gem dependency" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-rbs-consolidation-without-version-gem", tmp_root) do |root| + write_tree(root, { + "kettle-family.gemspec" => <<~RUBY, + Gem::Specification.new do |spec| + spec.name = "kettle-family" + spec.version = "1.2.3" + spec.summary = "Kettle family" + end + RUBY + ".kettle-jem.yml" => <<~YAML, + rubygems: + min_ruby: "2.1" + namespace: "Kettle::Family" + templates: + root: template + apply: true + entries: + - source: sig/kettle/family.rbs + YAML + "template/sig/kettle/family.rbs.example" => <<~RBS, + module Kettle + module Family + VERSION: String + end + end + RBS + "sig/kettle/family/version.rbs" => <<~RBS + module Kettle + module Family + module Version + VERSION: String + end + end + end + RBS + }) + + apply = described_class.apply_project(root, env: {}, run_options: {skip_commit: true, accept: true}) + post_step = apply.fetch(:post_apply_steps).find { |step| step.fetch(:name) == "legacy_rbs_consolidation" } + + expect(post_step.fetch(:changed_files)).to include("sig/kettle/family.rbs", "sig/kettle/family/version.rbs") + expect(File).not_to exist(File.join(root, "sig", "kettle", "family", "version.rbs")) + signature = File.read(File.join(root, "sig", "kettle", "family.rbs")) + expect(signature).to include("module Version") + expect(signature.scan("VERSION: String").size).to eq(2) + end + end + + + it "bootstraps a monorepo root template profile with shared documentation entries" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-config-bootstrap-monorepo-root", tmp_root) do |root| + setup = described_class.setup_project( + root, + env: {}, + run_options: {bootstrap_mode: true, template_profile: "monorepo-root", skip_commit: true} + ) + config = File.read(File.join(root, ".structuredmerge", "kettle-jem.yml")) + config_yaml = YAML.safe_load(config) + + expect(setup.fetch(:changed_files)).to include(".structuredmerge/kettle-jem.yml") + expect(config_yaml.dig("templates", "root")).to eq("packaged") + expect(config_yaml.dig("templates", "apply")).to be(true) + expect(config_yaml.dig("templates", "profile")).to eq("monorepo-root") + expect(config_yaml.dig("templates", "entries")).to include( + "CHANGELOG.md", + "CODE_OF_CONDUCT.md", + "CONTRIBUTING.md", + "FUNDING.md", + "Gemfile", + "IRP.md", + "LICENSE.md", + "AGPL-3.0-only.md", + "PolyForm-Small-Business-1.0.0.md", + "RUBOCOP.md", + "Rakefile", + "SECURITY.md", + ".github/FUNDING.yml", + ".structuredmerge/git-drivers.toml" + ) + expect(config_yaml.dig("files", "CHANGELOG.md", "strategy")).to eq("keep_destination") + expect(config_yaml.dig("files", "Gemfile", "strategy")).to eq("accept_template") + expect(described_class.send(:monorepo_root_file_strategy, "Gemfile")).to eq("accept_template") + expect(config.lines.count { |line| line == " .github:\n" }).to eq(1) + end + end + + + it "templates a monorepo root without a gemspec and syncs root Gemfile tooling dependencies" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-monorepo-root-apply", tmp_root) do |root| + write_tree(root, { + "AGPL-3.0-only.md" => "AGPL\n", + "PolyForm-Small-Business-1.0.0.md" => "PolyForm\n", + ".kettle-jem.yml" => <<~YAML, + project_emoji: "🍲" + licenses: + - MIT + templates: + root: packaged + apply: true + profile: monorepo-root + entries: + - Gemfile + - Rakefile + - LICENSE.md + - AGPL-3.0-only.md + - PolyForm-Small-Business-1.0.0.md + files: + Gemfile: + strategy: keep_destination + Rakefile: + strategy: accept_template + YAML + "Gemfile" => <<~RUBY + source "https://gem.coop" + + # gem "kettle-dev" + warn "kettle-test" if false + gemspec path: "gems/kettle-jem" + gem "rake" + RUBY + }) + + report = described_class.apply_project( + root, + env: {}, + run_options: {accept: true, force: true, template_profile: "monorepo-root", skip_commit: true} + ) + gemfile = File.read(File.join(root, "Gemfile")) + rakefile = File.read(File.join(root, "Rakefile")) + + expect(report.fetch(:changed_files)).to include("Gemfile", "LICENSE.md") + expect(report.fetch(:facts).dig(:license, :spdx)).to eq(["AGPL-3.0-only", "PolyForm-Small-Business-1.0.0"]) + expect(gemfile).to include('gemspec path: "gems/kettle-jem"') + expect(gemfile).not_to include('gem "kettle-jem", "~> 7.0"') + expect_gem_dependency_declared(gemfile, "kettle-dev") + expect_gem_dependency_declared(gemfile, "kettle-test") + expect(gemfile.lines.count { |line| line.start_with?('gem "kettle-dev"') }).to eq(1) + expect(gemfile.lines.count { |line| line.start_with?('gem "kettle-test"') }).to eq(1) + expect_gem_dependency_declared(gemfile, "turbo_tests2") + expect(rakefile).to include('require "kettle/dev"') + expect(rakefile).to include("Kettle::Dev.install_tasks") + expect(rakefile).to include("namespace :family do") + expect(rakefile).to include('run_kettle_family("check")') + end + end + + + it "adds released root Gemfile tooling even when local nomono overrides are present" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-monorepo-root-gemfile-released-tooling", tmp_root) do |root| + write_tree(root, { + ".kettle-jem.yml" => <<~YAML, + project_emoji: "🍲" + licenses: + - MIT + templates: + root: packaged + apply: true + profile: monorepo-root + entries: + - Gemfile + files: + Gemfile: + strategy: keep_destination + YAML + "Gemfile" => <<~RUBY + source "https://gem.coop" + + unless ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false").zero? + require "nomono/bundler" + + eval_nomono_gems( + gems: %w[kettle-dev kettle-test], + prefix: "KETTLE_DEV", + path_env: "KETTLE_DEV_DEV", + vendored_gems_env: "VENDORED_GEMS", + vendor_gem_dir_env: "VENDOR_GEM_DIR", + debug_env: "KETTLE_DEV_DEBUG", + ) + end + RUBY + }) + + report = described_class.apply_project( + root, + env: {}, + run_options: {accept: true, force: true, template_profile: "monorepo-root", skip_commit: true} + ) + gemfile = File.read(File.join(root, "Gemfile")) + + expect(report.fetch(:changed_files)).to include("Gemfile") + expect_gem_dependency_declared(gemfile, "kettle-dev") + expect_gem_dependency_declared(gemfile, "kettle-test") + expect_gem_dependency_declared(gemfile, "turbo_tests2") + end + end + + + it "guards preserved main Gemfile local workspace overrides during templating" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-gemfile-templating-local-guard", tmp_root) do |root| + write_tree(root, { + "demo.gemspec" => <<~RUBY, + Gem::Specification.new do |spec| + spec.name = "demo" + spec.version = "0.1.0" + spec.summary = "Demo" + spec.required_ruby_version = ">= 3.2" + end + RUBY + ".kettle-jem.yml" => <<~YAML, + project_emoji: "💎" + templates: + root: packaged + apply: true + entries: + - Gemfile + YAML + "Gemfile" => <<~RUBY + source "https://gem.coop" + + gemspec + + unless %w[false 0 no off].include?(ENV.fetch("RUBY_OAUTH_DEV", "false").downcase) + require "nomono/bundler" + + eval_nomono_gems( + gems: %w[auth-sanitizer oauth-tty snaky_hash version_gem], + prefix: "RUBY_OAUTH", + path_env: "RUBY_OAUTH_DEV", + root: %w[code src ruby-oauth], + debug_env: "RUBY_OAUTH_DEBUG" + ) + end + RUBY + }) + + report = described_class.apply_project(root, env: {}, run_options: {accept: true, force: true, skip_commit: true}) + gemfile = File.read(File.join(root, "Gemfile")) + + expect(report.fetch(:changed_files)).to include("Gemfile") + expect(gemfile).to include('eval_gemfile "gemfiles/modular/templating.gemfile" if ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero?') + expect(gemfile).to include(<<~RUBY.rstrip) + unless ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? + unless %w[false 0 no off].include?(ENV.fetch("RUBY_OAUTH_DEV", "false").downcase) + require "nomono/bundler" + + eval_nomono_gems( + RUBY + described_class.apply_project(root, env: {}, run_options: {accept: true, force: true, skip_commit: true}) + reapplied_gemfile = File.read(File.join(root, "Gemfile")) + guard_line = %(unless ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero?\n) + expect(reapplied_gemfile.lines.count(guard_line)).to eq(1) + end + end + + + it "collapses duplicate templating guards around main Gemfile local workspace overrides" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-gemfile-templating-local-guard-collapse", tmp_root) do |root| + write_tree(root, { + "demo.gemspec" => <<~RUBY, + Gem::Specification.new do |spec| + spec.name = "demo" + spec.version = "0.1.0" + spec.summary = "Demo" + spec.required_ruby_version = ">= 3.2" + end + RUBY + ".kettle-jem.yml" => <<~YAML, + project_emoji: "💎" + templates: + root: packaged + apply: true + entries: + - Gemfile + YAML + "Gemfile" => <<~RUBY + source "https://gem.coop" + + gemspec + + unless ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? + unless ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? + unless %w[false 0 no off].include?(ENV.fetch("RUBY_OAUTH_DEV", "false").downcase) + require "nomono/bundler" + + eval_nomono_gems( + gems: %w[version_gem], + prefix: "RUBY_OAUTH", + path_env: "RUBY_OAUTH_DEV" + ) + end + end + end + RUBY + }) + + described_class.apply_project(root, env: {}, run_options: {accept: true, force: true, skip_commit: true}) + gemfile = File.read(File.join(root, "Gemfile")) + guard_line = %(unless ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero?\n) + expect(gemfile.lines.count(guard_line)).to eq(1) + expect(gemfile).to include(<<~RUBY.rstrip) + unless ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? + unless %w[false 0 no off].include?(ENV.fetch("RUBY_OAUTH_DEV", "false").downcase) + require "nomono/bundler" + RUBY + end + end + + + it "preserves monorepo root Rakefile tasks during scaffold cleanup" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-monorepo-root-rakefile", tmp_root) do |root| + write_tree(root, { + ".kettle-jem.yml" => <<~YAML, + project_emoji: "🍲" + templates: + root: packaged + apply: true + profile: monorepo-root + entries: [] + YAML + "Rakefile" => <<~RUBY + require "rake/testtask" + require "rspec/core/rake_task" + + RSpec::Core::RakeTask.new(:spec) + + task default: :spec + RUBY + }) + + report = described_class.apply_project( + root, + env: {}, + run_options: {accept: true, force: true, template_profile: "monorepo-root", skip_commit: true} + ) + rakefile_report = report.fetch(:recipe_reports).find { |recipe| recipe.fetch(:recipe_name) == "rakefile_scaffold_cleanup" } + + expect(rakefile_report.dig(:request_envelope, :request, :runtime_context, :delete_selectors)).to be_empty + expect(File.read(File.join(root, "Rakefile"))).to include("RSpec::Core::RakeTask.new(:spec)") + expect(File.read(File.join(root, "Rakefile"))).to include("task default: :spec") + end + end + + + it "rewrites monorepo subgem README policy document references to source-hosted URLs" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-monorepo-subgem-readme-links", tmp_root) do |root| + write_tree(root, { + "ast-merge.gemspec" => <<~RUBY, + Gem::Specification.new do |spec| + spec.name = "ast-merge" + spec.summary = "Example gem" + spec.homepage = "https://github.com/structuredmerge/structuredmerge-ruby" + spec.licenses = ["AGPL-3.0-only"] + spec.required_ruby_version = ">= 4.0" + end + RUBY + ".kettle-jem.yml" => <<~YAML, + project_emoji: "☯️" + templates: + root: template + apply: true + profile: monorepo-subgem + entries: + - README.md + files: + README.md: + strategy: accept_template + YAML + "template/README.md.example" => <<~MARKDOWN + # {KJ|PROJECT_EMOJI} {KJ|NAMESPACE} + + ## 🤝 Contributing + + See [CONTRIBUTING.md][🤝contributing]. + + ## 🔐 Security + + See [SECURITY.md][🔐security]. + + ## 📌 Versioning + + See [CHANGELOG.md][📌changelog]. + + [🤝contributing]: CONTRIBUTING.md + [🪇conduct]: CODE_OF_CONDUCT.md + [📌changelog]: CHANGELOG.md + [🧹rubocop]: RUBOCOP.md + [🚨irp]: IRP.md + [🔐security]: SECURITY.md + MARKDOWN + }) + + apply = described_class.apply_project(root, env: {}, run_options: {skip_commit: true}) + report = apply.fetch(:recipe_reports).find { |candidate| candidate.fetch(:relative_path) == "README.md" } + readme = report.fetch(:final_content) + source_root = "https://github.com/structuredmerge/structuredmerge-ruby/blob/main" + + expect(readme).to include("[🤝contributing]: #{source_root}/CONTRIBUTING.md") + expect(readme).to include("[🪇conduct]: #{source_root}/CODE_OF_CONDUCT.md") + expect(readme).to include("[📌changelog]: #{source_root}/CHANGELOG.md") + expect(readme).to include("[🧹rubocop]: #{source_root}/RUBOCOP.md") + expect(readme).to include("[🚨irp]: #{source_root}/IRP.md") + expect(readme).to include("[🔐security]: #{source_root}/SECURITY.md") + expect(File.read(File.join(root, "README.md"))).to eq(readme) + end + end + + + it "exposes canonical repository URL tokens for monorepo subgem templates" do + repository = { + url: "https://github.com/structuredmerge/structuredmerge-ruby", + name: "structuredmerge-ruby", + slug: "structuredmerge/structuredmerge-ruby", + package_path: "gems/ast-merge", + package_source_url: "https://github.com/structuredmerge/structuredmerge-ruby/tree/main/gems/ast-merge", + gitlab_package_source_url: "https://gitlab.com/structuredmerge/structuredmerge-ruby/-/tree/main/gems/ast-merge", + codeberg_package_source_url: "https://codeberg.org/structuredmerge/structuredmerge-ruby/src/branch/main/gems/ast-merge", + checksums_url: "https://gitlab.com/structuredmerge/structuredmerge-ruby/-/tree/main/checksums" + } + tokens = described_class.send(:readme_url_template_tokens, repository, "ast-merge", "structuredmerge") + + expect(tokens.fetch("KJ|README:GH_REPOSITORY_URL")).to eq("https://github.com/structuredmerge/structuredmerge-ruby") + expect(tokens.fetch("KJ|README:GH_PACKAGE_SOURCE_URL")).to eq( + "https://github.com/structuredmerge/structuredmerge-ruby/tree/main/gems/ast-merge" + ) + expect(tokens.fetch("KJ|README:GH_CONTRIBUTING_URL")).to eq( + "https://github.com/structuredmerge/structuredmerge-ruby/blob/main/CONTRIBUTING.md" + ) + expect(tokens.fetch("KJ|README:GL_PACKAGE_SOURCE_URL")).to eq( + "https://gitlab.com/structuredmerge/structuredmerge-ruby/-/tree/main/gems/ast-merge" + ) + expect(tokens.fetch("KJ|CHANGELOG:GL_COMPARE_URL")).to eq( + "https://gitlab.com/structuredmerge/structuredmerge-ruby/-/compare" + ) + expect(tokens.fetch("KJ|CHANGELOG:GL_TAGS_URL")).to eq("https://gitlab.com/structuredmerge/structuredmerge-ruby/-/tags") + end + + + it "projects monorepo subgem README output to thin form while preserving destination-owned sections" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-monorepo-subgem-thin-readme", tmp_root) do |root| + write_tree(root, { + "ast-merge.gemspec" => <<~RUBY, + Gem::Specification.new do |spec| + spec.name = "ast-merge" + spec.summary = "Example gem" + spec.homepage = "https://github.com/structuredmerge/structuredmerge-ruby" + spec.licenses = ["AGPL-3.0-only"] + spec.required_ruby_version = ">= 4.0" + end + RUBY + ".kettle-jem.yml" => <<~YAML, + project_emoji: "☯️" + templates: + root: template + apply: true + profile: monorepo-subgem + entries: + - README.md + files: + README.md: + strategy: merge + YAML + "README.md" => <<~MARKDOWN, + # Existing + + ## 🌻 Synopsis + + Destination synopsis. + + ## ⚙️ Configuration + + Destination configuration. + + ## 🔧 Basic Usage + + Destination usage. + MARKDOWN + "template/README.md.example" => <<~MARKDOWN + # {KJ|PROJECT_EMOJI} {KJ|NAMESPACE} + + ## 🌻 Synopsis + + Template synopsis. + + ## 💡 Info you can shake a stick at + + Info. + + ### Compatibility + + Compatible. + + ### Enterprise Support + + Heavy support content. + + ## ✨ Installation + + Install. + + ## ⚙️ Configuration + + Template configuration. + + ## 🔧 Basic Usage + + Template usage. + + ## 🦷 FLOSS Funding + + Funding. + + ## 🔐 Security + + See [SECURITY.md][🔐security]. + + ## 🤝 Contributing + + Contributions. + + ### Code Coverage + + Coverage. + + ## 🌈 Contributors + + Contributors. + + ## 📌 Versioning + + Versioning. + + ## 📄 License + + License. + + ## 🤑 A request for help + + Request. + + [🔐security]: SECURITY.md + MARKDOWN + }) + + apply = described_class.apply_project(root, env: {}, run_options: {skip_commit: true}) + readme = apply.fetch(:recipe_reports).find { |candidate| candidate.fetch(:relative_path) == "README.md" }.fetch(:final_content) + + expect(readme).to match(/## 🌻 Synopsis(?: <<~RUBY + Gem::Specification.new do |spec| + spec.name = "ast-crispr" + spec.summary = "Example gem" + spec.licenses = ["AGPL-3.0-only", "PolyForm-Small-Business-1.0.0"] + end + RUBY + }) + + described_class.setup_project( + root, + env: {}, + run_options: {bootstrap_mode: true, template_profile: "monorepo-subgem", skip_commit: true} + ) + + expect(File.read(File.join(root, described_class::KETTLE_CONFIG_PATH))).to include("project_emoji: 💎\n") + end + end + + + it "seeds project emoji from KJ_PROJECT_EMOJI before README or defaults" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-config-bootstrap-env-emoji", tmp_root) do |root| + write_tree(root, { + "json-merge.gemspec" => <<~RUBY, + Gem::Specification.new do |spec| + spec.name = "json-merge" + spec.summary = "Example gem" + spec.licenses = ["AGPL-3.0-only", "PolyForm-Small-Business-1.0.0"] + end + RUBY + "README.md" => "# 💎 Json::Merge\n\nExisting README.\n" + }) + + described_class.setup_project( + root, + env: {"KJ_PROJECT_EMOJI" => "☯️"}, + run_options: {bootstrap_mode: true, template_profile: "monorepo-subgem", skip_commit: true} + ) + + expect(File.read(File.join(root, described_class::KETTLE_CONFIG_PATH))).to include("project_emoji: ☯️\n") + end + end + + + it "seeds project emoji from gemspec summary when README has no leading H1" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-config-bootstrap-gemspec-emoji", tmp_root) do |root| + write_tree(root, { + "yaml-converter.gemspec" => <<~RUBY, + Gem::Specification.new do |spec| + spec.name = "yaml-converter" + spec.summary = "🥨 Convert annotated YAML blueprints into readable documentation." + spec.licenses = ["MIT"] + end + RUBY + "README.md" => <<~MARKDOWN + | 📍 NOTE | + |---------| + | Existing preface. | + + # Yaml::Converter + MARKDOWN + }) + + described_class.setup_project( + root, + env: {}, + run_options: {bootstrap_mode: true, skip_commit: true} + ) + + expect(File.read(File.join(root, ".structuredmerge", "kettle-jem.yml"))).to include("project_emoji: 🥨\n") + end + end + +end diff --git a/gems/kettle-jem/spec/kettle/jem/tasks/prepare_task_spec.rb b/gems/kettle-jem/spec/kettle/jem/tasks/prepare_task_spec.rb index 6833293e9..255c89177 100644 --- a/gems/kettle-jem/spec/kettle/jem/tasks/prepare_task_spec.rb +++ b/gems/kettle-jem/spec/kettle/jem/tasks/prepare_task_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require_relative "../../../spec_helper" - RSpec.describe Kettle::Jem::Tasks::PrepareTask do def tmp_root File.expand_path("../../../../tmp", __dir__).tap { |path| FileUtils.mkdir_p(path) } diff --git a/gems/kettle-jem/spec/kettle/jem_style_template_spec.rb b/gems/kettle-jem/spec/kettle/jem_style_template_spec.rb index ab9af71fb..4364f6063 100644 --- a/gems/kettle-jem/spec/kettle/jem_style_template_spec.rb +++ b/gems/kettle-jem/spec/kettle/jem_style_template_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require_relative "../spec_helper" - RSpec.describe Kettle::Jem do include_context "with isolated kettle-jem environment" diff --git a/gems/kettle-jem/spec/kettle/jem_style_workflow_template_spec.rb b/gems/kettle-jem/spec/kettle/jem_style_workflow_template_spec.rb index 1e337266b..1710f8f6c 100644 --- a/gems/kettle-jem/spec/kettle/jem_style_workflow_template_spec.rb +++ b/gems/kettle-jem/spec/kettle/jem_style_workflow_template_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require_relative "../spec_helper" - RSpec.describe Kettle::Jem do it "loads the RBS environment instead of only parsing signatures" do workflow = File.read(File.join(__dir__, "../../lib/kettle/jem/templates/.github/workflows/style.yml.example")) diff --git a/gems/kettle-jem/spec/old_public_spec_audit_spec.rb b/gems/kettle-jem/spec/old_public_spec_audit_spec.rb index b125077f1..8f9f4771d 100644 --- a/gems/kettle-jem/spec/old_public_spec_audit_spec.rb +++ b/gems/kettle-jem/spec/old_public_spec_audit_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require_relative "spec_helper" - RSpec.describe Kettle::Jem do it "records migration decisions for every old executable and task spec family" do audit = JSON.parse( diff --git a/gems/kettle-jem/spec/rake_tasks_spec.rb b/gems/kettle-jem/spec/rake_tasks_spec.rb index db8955b45..9dd9f6058 100644 --- a/gems/kettle-jem/spec/rake_tasks_spec.rb +++ b/gems/kettle-jem/spec/rake_tasks_spec.rb @@ -1,6 +1,5 @@ # frozen_string_literal: true -require_relative "spec_helper" require "rake" RSpec.describe Kettle::Jem do diff --git a/gems/kettle-jem/spec/release_packaging_spec.rb b/gems/kettle-jem/spec/release_packaging_spec.rb index 57f48e524..2cedb076d 100644 --- a/gems/kettle-jem/spec/release_packaging_spec.rb +++ b/gems/kettle-jem/spec/release_packaging_spec.rb @@ -1,6 +1,5 @@ # frozen_string_literal: true -require_relative "spec_helper" require "open3" require "rubygems/package" diff --git a/gems/kettle-jem/spec/self_test_task_spec.rb b/gems/kettle-jem/spec/self_test_task_spec.rb index 9cbf24436..cbf71e335 100644 --- a/gems/kettle-jem/spec/self_test_task_spec.rb +++ b/gems/kettle-jem/spec/self_test_task_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require_relative "spec_helper" - RSpec.describe Kettle::Jem::Tasks::SelfTestTask do def write_file(root, relative_path, content) path = File.join(root, relative_path) diff --git a/gems/kettle-jem/spec/support/kettle_jem_spec_helpers.rb b/gems/kettle-jem/spec/support/kettle_jem_spec_helpers.rb index 637afe17a..d51d9be8c 100644 --- a/gems/kettle-jem/spec/support/kettle_jem_spec_helpers.rb +++ b/gems/kettle-jem/spec/support/kettle_jem_spec_helpers.rb @@ -116,3 +116,16 @@ def appraisals_eval_gemfile_paths(content, appraisal_name) isolate_kettle_jem_env { example.run } end end + +RSpec.shared_context "with kettle-jem fixture contracts" do + let(:spec_root) { Pathname(__dir__).join("..").expand_path } + let(:project_root) { spec_root.join("..").expand_path } + let(:fixture_path) { spec_root.join("fixtures/thin_slice.json") } + let(:fixture) { JSON.parse(fixture_path.read, symbolize_names: true) } + let(:contract_path) { spec_root.join("../../../../fixtures/packaging/thin-slice-contract.json").expand_path } + let(:contract) { JSON.parse(contract_path.read, symbolize_names: true) } + let(:bootstrap_contract_path) { spec_root.join("fixtures/bootstrap_contract.json").expand_path } + let(:bootstrap_contract) { JSON.parse(bootstrap_contract_path.read, symbolize_names: true) } + let(:old_spec_contract_path) { spec_root.join("fixtures/old_spec_migration_contract.json").expand_path } + let(:old_spec_contract) { JSON.parse(old_spec_contract_path.read, symbolize_names: true) } +end diff --git a/gems/kettle-jem/spec/system/bundle_gem_scaffold_spec.rb b/gems/kettle-jem/spec/system/bundle_gem_scaffold_spec.rb index c0e0a1fba..5ab24f090 100644 --- a/gems/kettle-jem/spec/system/bundle_gem_scaffold_spec.rb +++ b/gems/kettle-jem/spec/system/bundle_gem_scaffold_spec.rb @@ -1,6 +1,5 @@ # frozen_string_literal: true -require_relative "../spec_helper" require "open3" require "pathname" require "rake" diff --git a/gems/kettle-jem/spec/system/install_orchestration_spec.rb b/gems/kettle-jem/spec/system/install_orchestration_spec.rb new file mode 100644 index 000000000..8687c94b6 --- /dev/null +++ b/gems/kettle-jem/spec/system/install_orchestration_spec.rb @@ -0,0 +1,2101 @@ +# frozen_string_literal: true + +RSpec.describe Kettle::Jem, "install and local orchestration behavior" do + include_context "with isolated kettle-jem environment" + include_context "with kettle-jem fixture contracts" + + it "applies bootstrap with non-interactive defaults and converges on the next run" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-bootstrap-contract", tmp_root) do |root| + write_tree(root, { + "example.gemspec" => <<~RUBY + Gem::Specification.new do |spec| + spec.name = "example" + spec.summary = "Example gem" + spec.required_ruby_version = ">= 4.0" + end + RUBY + }) + + apply = described_class.apply_project(root, env: {}, run_options: {accept: true}) + bootstrap_target = bootstrap_contract.fetch(:expected).fetch(:bootstrap_target) + + expect(apply.fetch(:decision_policy).fetch(:mode)).to eq( + bootstrap_contract.fetch(:expected).fetch(:non_interactive_mode) + ) + expect(apply.fetch(:changed_files)).to include(bootstrap_target) + expect(File).to exist(File.join(root, bootstrap_target)) + + described_class.apply_project(root, env: {}, run_options: {accept: true}) + selected = bootstrap_contract.fetch(:expected).fetch(:idempotent_selected_paths).to_h do |relative_path| + [relative_path, File.exist?(File.join(root, relative_path)) ? File.read(File.join(root, relative_path)) : nil] + end + third_apply = described_class.apply_project(root, env: {}, run_options: {accept: true}) + + expect(third_apply.fetch(:decision_policy).fetch(:mode)).to eq( + bootstrap_contract.fetch(:expected).fetch(:non_interactive_mode) + ) + expect(bootstrap_contract.fetch(:expected).fetch(:idempotent_selected_paths).to_h { |relative_path| + [relative_path, File.exist?(File.join(root, relative_path)) ? File.read(File.join(root, relative_path)) : nil] + }).to eq(selected) + expect(third_apply.fetch(:changed_files)).not_to include( + *bootstrap_contract.fetch(:expected).fetch(:idempotent_selected_paths) + ) + end + end + + + it "hard-fails malformed Ruby project entrypoints during preflight" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + parser_error_paths = bootstrap_contract.fetch(:expected).fetch(:parser_error_paths) + + parser_error_paths.each do |relative_path| + Dir.mktmpdir("kettle-jem-bootstrap-preflight", tmp_root) do |root| + files = { + "example.gemspec" => <<~RUBY + Gem::Specification.new do |spec| + spec.name = "example" + spec.summary = "Example gem" + spec.required_ruby_version = ">= 4.0" + end + RUBY + } + files["Gemfile"] = "source \"https://gem.coop\"\n" if relative_path == "example.gemspec" + files[relative_path] = "if true\n" + write_tree(root, files) + + expect { + described_class.plan_project(root, env: {}, run_options: {accept: true}) + }.to raise_error(Kettle::Jem::Error, /Preflight failed for #{Regexp.escape(relative_path)}/) + end + end + end + + + it "hard-fails invalid kettle config shape before later discovery" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + { + "root_scalar" => ["true\n", /root must be a mapping/], + "templates_scalar" => ["templates: packaged\n", /templates must be a mapping/], + "entries_scalar" => ["templates:\n entries: README.md\n", /templates\.entries must be a list/] + }.each do |case_name, (config, message)| + Dir.mktmpdir("kettle-jem-config-validation-#{case_name}", tmp_root) do |root| + write_tree(root, { + "example.gemspec" => <<~RUBY, + Gem::Specification.new do |spec| + spec.name = "example" + spec.summary = "Example gem" + end + RUBY + ".kettle-jem.yml" => config + }) + + expect { + described_class.plan_project(root, env: {}) + }.to raise_error(Kettle::Jem::Error, message) + end + end + end + + + it "classifies template entries with files and patterns strategy config" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-template-strategy-slice", tmp_root) do |root| + write_tree(root, { + "example.gemspec" => <<~RUBY, + Gem::Specification.new do |spec| + spec.name = "example" + spec.summary = "Example gem" + end + RUBY + ".kettle-jem.yml" => <<~YAML, + patterns: + - path: "certs/**" + strategy: raw_copy + files: + README.md: + strategy: keep_destination + templates: + root: packaged + apply: true + entries: + - README.md + - source: certs/pboling.pem.example + target: certs/pboling.pem + YAML + "README.md" => "# destination\n" + }) + + packaged_cert = File.read(project_root.join("lib/kettle/jem/templates/certs/pboling.pem.example")) + plan = described_class.plan_project(root, env: {}) + readme_report = plan[:recipe_reports].find do |report| + report.fetch(:recipe_name) == "template_source_application_README_md" + end + cert_report = plan[:recipe_reports].find do |report| + report.fetch(:recipe_name) == "template_source_application_certs_pboling_pem" + end + expect(readme_report.fetch(:changed)).to be(false) + expect(readme_report.fetch(:final_content)).to eq("# destination\n") + expect(readme_report.dig(:metadata, :template_source_preference)).to include(strategy: "keep_destination") + expect(cert_report.fetch(:changed)).to be(true) + expect(cert_report.fetch(:final_content)).to eq(packaged_cert) + expect(cert_report.dig(:metadata, :template_source_preference)).to include(strategy: "raw_copy") + end + end + + + it "projects full per-file merge options into recipe metadata and runtime context" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-template-merge-option-slice", tmp_root) do |root| + write_tree(root, { + "example.gemspec" => <<~RUBY, + Gem::Specification.new do |spec| + spec.name = "example" + spec.summary = "Example gem" + end + RUBY + ".kettle-jem.yml" => <<~YAML, + defaults: + preference: template + add_template_only_nodes: true + freeze_token: kettle-jem + max_recursion_depth: 7 + files: + config: + settings.yml: + strategy: merge + file_type: yaml + freeze_token: destination-token + skip_unresolved_scan: true + templates: + root: template + apply: true + entries: + - config/settings.yml + YAML + "config/settings.yml" => <<~YAML, + enabled: false + YAML + "template/config/settings.yml.example" => <<~YAML + enabled: true + YAML + }) + + plan = described_class.plan_project(root, env: {}) + report = plan.fetch(:recipe_reports).find do |candidate| + candidate.fetch(:recipe_name) == "template_source_application_config_settings_yml" + end + expected_policy = { + strategy: "merge", + file_type: "yaml", + preference: "template", + add_template_only_nodes: true, + freeze_token: "destination-token", + skip_unresolved_scan: true, + max_recursion_depth: "7" + } + + expect(report.dig(:metadata, :template_source_preference)).to include(expected_policy) + expect(report.dig(:request_envelope, :request, :runtime_context, :template_source_preference)).to include(expected_policy) + end + end + + + it "plans packaged template inventory when entries are omitted" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-template-inventory-slice", tmp_root) do |root| + write_tree(root, { + "example.gemspec" => <<~RUBY, + Gem::Specification.new do |spec| + spec.name = "example" + spec.summary = "Example gem" + end + RUBY + ".kettle-jem.yml" => <<~YAML + funding: + open_collective: false + patterns: + - path: "certs/**" + strategy: raw_copy + files: + AGENTS.md: + strategy: accept_template + templates: + root: packaged + YAML + }) + + plan = described_class.plan_project(root, env: {}) + preferences = plan.dig(:facts, :templates, :source_preferences) + expect(preferences.size).to be > 100 + + agents = preferences.find { |preference| preference.fetch(:target_path) == "AGENTS.md" } + cert = preferences.find { |preference| preference.fetch(:target_path) == "certs/pboling.pem" } + envrc = preferences.find { |preference| preference.fetch(:target_path) == ".envrc" } + env_local = preferences.find { |preference| preference.fetch(:target_path) == ".env.local.example" } + gemspec = preferences.find { |preference| preference.fetch(:target_path) == "example.gemspec" } + + expect(agents).to include(selected_source: "AGENTS.md.example", strategy: "accept_template") + expect(cert).to include(selected_source: "certs/pboling.pem.example", strategy: "raw_copy") + expect(envrc).to include(selected_source: ".envrc.no-osc.example") + expect(env_local).to include(configured_source: ".env.local", selected_source: ".env.local.example") + expect(gemspec).to include(configured_source: "gem.gemspec", selected_source: "gem.gemspec.example") + end + end + + + it "applies remaining-files copy-only and legacy destination policies" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-remaining-files-policy-slice", tmp_root) do |root| + write_tree(root, { + "example.gemspec" => <<~RUBY, + Gem::Specification.new do |spec| + spec.name = "example" + spec.summary = "Example gem" + end + RUBY + ".kettle-jem.yml" => <<~YAML, + templates: + root: packaged + apply: true + entries: + - bin/setup + - .github/copilot_instructions.md + YAML + "bin/setup" => "custom setup\n", + ".github/COPILOT_INSTRUCTIONS.md" => "legacy copilot instructions\n" + }) + + plan = described_class.plan_project(root, env: {}) + setup_preference = plan.dig(:facts, :templates, :source_preferences).find do |preference| + preference.fetch(:target_path) == "bin/setup" + end + setup_report = plan.fetch(:recipe_reports).find do |report| + report.fetch(:recipe_name) == "template_source_application_bin_setup" + end + legacy_cleanup = plan.fetch(:recipe_reports).find do |report| + report.fetch(:recipe_name) == "template_legacy_destination_cleanup_github_COPILOT_INSTRUCTIONS_md" + end + + expect(setup_preference).to include( + strategy: "keep_destination", + policy: "copy_only_when_missing" + ) + expect(setup_report.fetch(:changed)).to be(false) + expect(setup_report.fetch(:final_content)).to eq("custom setup\n") + expect(legacy_cleanup.dig(:metadata, :delete_file)).to be(true) + expect(legacy_cleanup.dig(:report_envelope, :report, :step_reports, 0, :metadata)).to include( + policy_kind: "delete_legacy_destination_file", + deleted_file: ".github/COPILOT_INSTRUCTIONS.md" + ) + + apply = described_class.apply_project(root, env: {}) + expect(File.read(File.join(root, "bin/setup"))).to eq("custom setup\n") + expect(File.exist?(File.join(root, ".github/copilot_instructions.md"))).to be(true) + expect(File.exist?(File.join(root, ".github/COPILOT_INSTRUCTIONS.md"))).to be(false) + expect(apply.fetch(:changed_files)).to include(".github/COPILOT_INSTRUCTIONS.md") + end + end + + + it "runs install as active apply plus local post-template checks" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + curated_binstubs = %w[bundle binstubs appraisal2 rake rbs rspec-core yard kettle-dev kettle-test kettle-soup-cover stone_checksums] + Dir.mktmpdir("kettle-jem-install-post-template-slice", tmp_root) do |root| + write_tree(root, { + "example.gemspec" => <<~RUBY, + Gem::Specification.new do |spec| + spec.name = "example" + spec.summary = "Example gem" + end + RUBY + ".kettle-jem.yml" => [ + "templates:", + " root: packaged", + " apply: true", + " entries:", + " - bin/setup", + "" + ].join("\n"), + "Rakefile" => "task :default\n", + "bin/rake" => "#!/usr/bin/env ruby\n" + }) + + commands = [] + command_runner = lambda do |command, chdir:, env:, quiet:| + commands << {command: command, chdir: chdir, env: env, quiet: quiet} + {success: true, exitstatus: 0, stdout: "", stderr: ""} + end + + install = Kettle::Jem::Tasks::InstallTask.run( + project_root: root, + env: {}, + run_options: {only: "bin/setup", quiet: true, skip_commit: true}, + command_runner: command_runner + ) + setup_path = File.join(root, "bin", "setup") + + expect(install.fetch(:mode)).to eq("install") + expect(install.fetch(:installed)).to be(true) + expect(install.fetch(:changed_files)).to eq(["bin/setup"]) + expect(install.fetch(:install_steps)).to include( + name: "bin_setup_executable", + path: "bin/setup", + status: "updated" + ) + expect(install.fetch(:install_steps)).to include( + name: "bin_setup", + command: ["bin/setup", "--quiet"], + status: "succeeded", + exitstatus: 0 + ) + expect(install.fetch(:install_steps)).to include( + name: "bundle_binstubs", + command: curated_binstubs, + status: "succeeded", + exitstatus: 0 + ) + expect(install.fetch(:install_steps)).to include( + name: "rubocop_gradual_autocorrect", + status: "skipped", + reason: "missing_rubocop_gradual_task" + ) + expect(install.fetch(:install_steps)).to include( + name: "bundled_handoff", + command: kettle_jem_handoff_command("--skip-commit", "--quiet", "--only", "bin/setup"), + status: "succeeded", + exitstatus: 0, + reason: "executed" + ) + expect(install.fetch(:install_steps)).to include( + name: "bootstrap_commit", + status: "skipped", + reason: "skip_commit" + ) + expect(install.fetch(:install_phase_reports)).to include(hash_including( + phase: "post_template", + steps: include("bin_setup_executable", "bin_setup", "bundle_binstubs", "rubocop_gradual_autocorrect"), + statuses: hash_including( + "bin_setup_executable" => "updated", + "bin_setup" => "succeeded", + "bundle_binstubs" => "succeeded", + "rubocop_gradual_autocorrect" => "skipped", + "bundle_binstub_pruning" => "already_current" + ) + )) + expect(install.fetch(:install_phase_reports)).to include( + phase: "orchestration", + steps: %w[bundled_handoff bootstrap_commit], + statuses: { + "bundled_handoff" => "succeeded", + "bootstrap_commit" => "skipped" + } + ) + autocorrect_command = ["sh", "-c", "rm -f .rubocop_gradual.lock && bin/rake rubocop_gradual:autocorrect"] + handoff_command = kettle_jem_handoff_command("--skip-commit", "--quiet", "--only", "bin/setup") + command_names = commands.map { |entry| entry.fetch(:command) } + expect(command_names).to include( + ["bin/setup", "--quiet"], + curated_binstubs, + handoff_command + ) + expect(command_names).not_to include(autocorrect_command) + expect(commands).to all(include(chdir: root, quiet: true)) + expect(commands.map { |entry| entry.fetch(:env) }).to all(include( + "BUNDLE_GEMFILE" => nil, + "BUNDLE_LOCKFILE" => nil, + "RUBYLIB" => nil, + "RUBYOPT" => nil + )) + expect(File).to exist(setup_path) + expect(File.executable?(setup_path)).to be(true) + + commands.clear + second = Kettle::Jem::Tasks::InstallTask.run( + project_root: root, + env: {}, + run_options: {only: "bin/setup", quiet: true}, + command_runner: command_runner + ) + expect(second.fetch(:changed_files)).to be_empty + expect(second.fetch(:install_steps)).to include( + name: "bin_setup_executable", + path: "bin/setup", + status: "already_executable" + ) + expect(second.fetch(:install_steps)).to include( + name: "bundled_handoff", + command: kettle_jem_handoff_command("--quiet", "--only", "bin/setup"), + status: "succeeded", + exitstatus: 0, + reason: "executed" + ) + second_commit_step = second.fetch(:install_steps).find { |step| step.fetch(:name) == "bootstrap_commit" } + expect(second_commit_step.fetch(:status)).to eq("unavailable") + expect(second_commit_step.fetch(:reason)).to eq("not_git_repository") + expect(commands.map { |entry| entry.fetch(:command) }).to include( + ["bin/setup", "--quiet"], + curated_binstubs, + kettle_jem_handoff_command("--quiet", "--only", "bin/setup") + ) + + bootstrap_install = Kettle::Jem::Tasks::InstallTask.run( + project_root: root, + env: {}, + run_options: {only: "bin/setup", bootstrap_mode: true}, + command_runner: command_runner + ) + expect(bootstrap_install.fetch(:install_steps)).to include( + name: "bundled_handoff", + status: "skipped", + reason: "bootstrap_mode" + ) + + expect(system("git", "init", root, out: File::NULL, err: File::NULL)).to be(true) + git_ready = Kettle::Jem::Tasks::InstallTask.run( + project_root: root, + env: {}, + run_options: {only: "bin/setup"}, + command_runner: command_runner + ) + expect(git_ready.fetch(:install_steps)).to include(hash_including( + name: "bootstrap_commit", + status: "succeeded", + commands: [ + %w[git add -A], + ["git", "commit", "-m", "🎨 Template bootstrap by kettle-jem v#{Kettle::Jem::Version::VERSION}"] + ], + command_results: [ + {command: %w[git add -A], exitstatus: 0}, + {command: ["git", "commit", "-m", "🎨 Template bootstrap by kettle-jem v#{Kettle::Jem::Version::VERSION}"], exitstatus: 0} + ], + reason: "executed" + )) + expect(git_ready.fetch(:install_steps).find { |step| step.fetch(:name) == "bootstrap_commit" }.fetch(:dirty_entries)).not_to be_empty + + Dir.mktmpdir("kettle-jem-clean-bootstrap", tmp_root) do |clean_root| + expect(system("git", "init", clean_root, out: File::NULL, err: File::NULL)).to be(true) + stale_commit_step = Kettle::Jem::Tasks::InstallTask.send( + :execute_ready_commands_step, + { + name: "bootstrap_commit", + status: "ready", + dirty_entries: [" M bin/setup"], + commands: [%w[git add -A], ["git", "commit", "-m", "stale"]] + }, + project_root: clean_root, + env: {}, + quiet: false, + command_runner: command_runner + ) + expect(stale_commit_step.fetch(:status)).to eq("clean_noop") + expect(stale_commit_step.fetch(:reason)).to eq("clean_before_execution") + end + + Dir.mktmpdir("kettle-jem-install-monorepo", tmp_root) do |repo_root| + expect(system("git", "init", repo_root, out: File::NULL, err: File::NULL)).to be(true) + gem_root = File.join(repo_root, "gems", "example") + write_tree(gem_root, { + "Gemfile" => <<~RUBY, + source "https://gem.coop" + gemspec + RUBY + "example.gemspec" => <<~RUBY, + Gem::Specification.new do |spec| + spec.name = "example" + spec.summary = "Example gem" + end + RUBY + ".kettle-jem.yml" => <<~YAML + templates: + root: packaged + apply: true + entries: + - bin/setup + YAML + }) + + commands.clear + inherited_env = {"BUNDLE_GEMFILE" => File.join(repo_root, "Gemfile")} + monorepo_install = Kettle::Jem::Tasks::InstallTask.run( + project_root: gem_root, + env: inherited_env, + run_options: {only: "bin/setup"}, + command_runner: command_runner + ) + expect(monorepo_install.fetch(:git_preflight)).to include(git_repository: true) + expect(monorepo_install.fetch(:install_steps)).to include(hash_including( + name: "bootstrap_commit", + status: "succeeded", + reason: "executed" + )) + expect(commands.map { |entry| entry.fetch(:env).fetch("BUNDLE_GEMFILE") }.uniq).to eq([File.join(gem_root, "Gemfile")]) + expect(monorepo_install.fetch(:install_steps)).to include(hash_including( + name: "bundled_handoff", + status: satisfy { |status| %w[succeeded already_bundled].include?(status) } + )) + + commands.clear + bundler_binstub = lambda do |gem_name, executable| + <<~RUBY + #!/usr/bin/env ruby + # frozen_string_literal: true + + # + # This file was generated by Bundler. + # + load Gem.bin_path("#{gem_name}", "#{executable}") + RUBY + end + binstub_runner = lambda do |command, chdir:, env:, quiet:| + commands << {command: command, chdir: chdir, env: env, quiet: quiet} + if command == curated_binstubs + FileUtils.mkdir_p(File.join(chdir, "bin")) + File.write(File.join(chdir, "bin", "appraisal"), bundler_binstub.call("appraisal2", "appraisal")) + File.write(File.join(chdir, "bin", "kettle-bump"), bundler_binstub.call("kettle-dev", "kettle-bump")) + File.write(File.join(chdir, "bin", "rake"), bundler_binstub.call("rake", "rake")) + File.write(File.join(chdir, "bin", "yard"), bundler_binstub.call("yard", "yard")) + File.write(File.join(chdir, "bin", "reek"), bundler_binstub.call("reek", "reek")) + FileUtils.chmod("+x", File.join(chdir, "bin", "appraisal")) + FileUtils.chmod("+x", File.join(chdir, "bin", "reek")) + end + {success: true, exitstatus: 0, stdout: "", stderr: ""} + end + validated_install = Kettle::Jem::Tasks::InstallTask.run( + project_root: gem_root, + env: inherited_env, + run_options: {only: "bin/setup", skip_commit: true}, + command_runner: binstub_runner + ) + expect(validated_install.fetch(:install_steps)).to include(hash_including( + name: "bundle_binstub_location_validation", + status: "succeeded", + reason: "destination_bin_has_binstubs", + destination_bin: "bin", + destination_binstubs: include("appraisal", "rake") + )) + expect(validated_install.fetch(:install_steps)).to include(hash_including( + name: "yard_binstub_rake_handoff", + status: "updated", + reason: "yard_plugins_require_rake_yard_postprocess_hooks", + path: "bin/yard" + )) + expect(validated_install.fetch(:install_steps)).to include(hash_including( + name: "curated_binstubs_executable", + status: "updated", + path: "bin", + updated_binstubs: %w[kettle-bump rake yard] + )) + expect(validated_install.fetch(:install_steps)).to include(hash_including( + name: "bundle_binstub_pruning", + status: "pruned", + reason: "removed_unwanted_bundler_binstubs", + removed_binstubs: ["reek"] + )) + expect(File.read(File.join(gem_root, "bin", "yard"))).to include('exec("bundle", "exec", "rake", "yard")') + expect(File).to exist(File.join(gem_root, "bin", "appraisal")) + expect(File).to exist(File.join(gem_root, "bin", "kettle-bump")) + expect(File.executable?(File.join(gem_root, "bin", "kettle-bump"))).to be(true) + expect(File.executable?(File.join(gem_root, "bin", "yard"))).to be(true) + expect(File).not_to exist(File.join(gem_root, "bin", "reek")) + expect(commands.find { |entry| entry.fetch(:command) == curated_binstubs }).to include( + chdir: gem_root, + env: include("BUNDLE_GEMFILE" => File.join(gem_root, "Gemfile")) + ) + end + end + end + + + it "applies full templates after accepting a newly bootstrapped config before bundled handoff" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + curated_binstubs = %w[bundle binstubs appraisal2 rake rbs rspec-core yard kettle-dev kettle-test kettle-soup-cover stone_checksums] + Dir.mktmpdir("kettle-jem-install-bootstrap-followup", tmp_root) do |root| + write_tree(root, { + "Gemfile" => <<~RUBY, + source "https://gem.coop" + gemspec + RUBY + "example.gemspec" => <<~RUBY + Gem::Specification.new do |spec| + spec.name = "example" + spec.summary = "💎 Example gem" + spec.authors = ["Peter H. Boling"] + spec.email = ["floss@galtzo.com"] + spec.required_ruby_version = ">= 3.2" + end + RUBY + }) + + commands = [] + command_runner = lambda do |command, chdir:, env:, quiet:| + commands << {command: command, chdir: chdir, env: env, quiet: quiet} + {success: true, exitstatus: 0, stdout: "", stderr: ""} + end + + install = Kettle::Jem::Tasks::InstallTask.run( + project_root: root, + env: {"K_JEM_TEMPLATING" => "true"}, + run_options: {accept_config: true, force: true, skip_commit: true}, + command_runner: command_runner + ) + + expect(install.fetch(:bootstrap_followup_apply)).to eq( + status: "applied", + reason: "canonical_config_bootstrapped" + ) + expect(install.fetch(:changed_files)).to include( + ".structuredmerge/kettle-jem.yml", + "Gemfile", + "gemfiles/modular/templating.gemfile", + "gemfiles/modular/templating_local.gemfile" + ) + expect(File.read(File.join(root, "Gemfile"))).to include( + 'eval_gemfile "gemfiles/modular/templating.gemfile" if ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero?' + ) + expect_gem_dependency_declared(File.read(File.join(root, "gemfiles", "modular", "templating.gemfile")), "kettle-jem") + expect(install.fetch(:install_steps)).to include(hash_including( + name: "bundled_handoff", + command: kettle_jem_handoff_command("--accept-config", "--skip-commit", "--force"), + status: "succeeded" + )) + expect(commands.map { |entry| entry.fetch(:command) }).to include( + ["bin/setup"], + curated_binstubs, + kettle_jem_handoff_command("--accept-config", "--skip-commit", "--force") + ) + end + end + + + it "silences Bundler and debug environment for quiet orchestration commands" do + expect(Kettle::Jem::Tasks::InstallTask.quiet_command(%w[bundle install], quiet: true)).to eq(%w[bundle install --quiet]) + expect(Kettle::Jem::Tasks::InstallTask.quiet_command(%w[bundle install --quiet], quiet: true)).to eq(%w[bundle install --quiet]) + expect(Kettle::Jem::Tasks::InstallTask.quiet_command(%w[bundle update], quiet: true)).to eq(%w[bundle update --quiet]) + expect(Kettle::Jem::Tasks::InstallTask.quiet_command(%w[bundle binstubs rake], quiet: true)).to eq(%w[bundle binstubs rake]) + expect(Kettle::Jem::Tasks::InstallTask.quiet_command(%w[bundle lock], quiet: true)).to eq(%w[bundle lock]) + expect(Kettle::Jem::Tasks::InstallTask.quiet_command(%w[bin/setup --quiet], quiet: true)).to eq(%w[bin/setup --quiet]) + expect(Kettle::Jem::Tasks::InstallTask.quiet_command_env("DEBUG" => "true")).to include( + "DEBUG" => "false", + "KETTLE_JEM_DEBUG" => "false", + "KETTLE_DEV_DEBUG" => "false", + "BUNDLE_IGNORE_MESSAGES" => "true", + "BUNDLE_SILENCE_DEPRECATIONS" => "true", + "BUNDLE_SILENCE_ROOT_WARNING" => "true", + "BUNDLE_VERBOSE" => "false" + ) + end + + + it "generates only curated documented binstubs" do + status = instance_double(Process::Status, success?: false) + allow(Open3).to receive(:capture3).and_return(["", "", status]) + + expect(Kettle::Jem::Tasks::InstallTask.bundle_binstubs_command).to eq( + %w[bundle binstubs appraisal2 rake rbs rspec-core yard kettle-dev kettle-test kettle-soup-cover stone_checksums] + ) + end + + + it "omits curated binstubs for gems missing from the destination bundle" do + status = instance_double(Process::Status, success?: true) + allow(Open3).to receive(:capture3).and_return([ + "appraisal2\nrake\nrbs\nrspec-core\nkettle-dev\nkettle-test\nkettle-soup-cover\nstone_checksums\n", + "", + status + ]) + + expect(Kettle::Jem::Tasks::InstallTask.bundle_binstubs_command("/example", env: {})).to eq( + %w[bundle binstubs appraisal2 rake rbs rspec-core kettle-dev kettle-test kettle-soup-cover stone_checksums] + ) + end + + + it "skips bundled handoff when kettle-jem is absent from the destination bundle" do + status = instance_double(Process::Status, success?: true) + allow(Open3).to receive(:capture3).and_return([ + "rake\nrspec-core\n", + "", + status + ]) + + expect(Kettle::Jem::Tasks::InstallTask.bundled_handoff_step(project_root: "/example", env: {}, run_options: {})).to eq( + name: "bundled_handoff", + status: "skipped", + reason: "kettle_jem_not_in_bundle" + ) + end + + + it "runs setup commands when the caller passes Ruby ENV" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-install-env-slice", tmp_root) do |root| + write_tree(root, { + "example.gemspec" => <<~RUBY, + Gem::Specification.new do |spec| + spec.name = "example" + spec.summary = "Example gem" + end + RUBY + "Gemfile" => "source \"https://gem.coop\"\n", + ".kettle-jem.yml" => <<~YAML + templates: + root: packaged + apply: true + entries: + - bin/setup + YAML + }) + + command_envs = [] + command_runner = lambda do |_command, chdir:, env:, quiet:| + expect(chdir).to eq(root) + expect(quiet).to be(true) + command_envs << env + {success: true, exitstatus: 0, stdout: "", stderr: ""} + end + + expect { + Kettle::Jem::Tasks::InstallTask.run( + project_root: root, + env: ENV, + run_options: {only: "bin/setup", quiet: true, skip_commit: true}, + command_runner: command_runner + ) + }.not_to raise_error + + expect(command_envs).not_to be_empty + expect(command_envs).to all(be_a(Hash)) + expect(command_envs).to all(include("BUNDLE_GEMFILE" => File.join(root, "Gemfile"))) + end + end + + + it "runs setup commands without inherited Bundler activation" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-install-env-bundler-strip", tmp_root) do |root| + write_tree(root, { + "Gemfile" => "source \"https://gem.coop\"\n", + "example.gemspec" => <<~RUBY, + Gem::Specification.new do |spec| + spec.name = "example" + spec.summary = "Example gem" + end + RUBY + ".kettle-jem.yml" => <<~YAML + templates: + root: packaged + apply: true + entries: + - bin/setup + YAML + }) + + inherited_env = { + "BUNDLE_GEMFILE" => "/workspace/kettle-jem/Gemfile", + "BUNDLE_BIN_PATH" => "/workspace/kettle-jem/bin/bundle", + "BUNDLE_LOCKFILE" => "/workspace/kettle-jem/Gemfile.lock", + "BUNDLER_SETUP" => "/workspace/kettle-jem/bundler/setup", + "BUNDLER_VERSION" => "4.0.12", + "GIT_CONFIG_COUNT" => "1", + "GIT_CONFIG_KEY_0" => "safe.bareRepository", + "GIT_CONFIG_VALUE_0" => "explicit", + "RUBYLIB" => "/workspace/kettle-jem/lib", + "RUBYOPT" => "-rbundler/setup" + } + command_envs = [] + command_runner = lambda do |_command, chdir:, env:, quiet:| + expect(chdir).to eq(root) + expect(quiet).to be(true) + command_envs << env + {success: true, exitstatus: 0, stdout: "", stderr: ""} + end + + Kettle::Jem::Tasks::InstallTask.run( + project_root: root, + env: inherited_env, + run_options: {only: "bin/setup", quiet: true, skip_commit: true}, + command_runner: command_runner + ) + + expect(command_envs).not_to be_empty + expect(command_envs).to all(include("BUNDLE_GEMFILE" => File.join(root, "Gemfile"))) + expect(command_envs).to all(include( + "BUNDLE_BIN_PATH" => nil, + "BUNDLE_LOCKFILE" => nil, + "BUNDLER_SETUP" => nil, + "BUNDLER_VERSION" => nil, + "GIT_CONFIG_COUNT" => nil, + "GIT_CONFIG_KEY_0" => nil, + "GIT_CONFIG_VALUE_0" => nil, + "RUBYLIB" => nil, + "RUBYOPT" => nil + )) + end + end + + + it "uses kettle-family local install roots for templating setup" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-install-family-marker", tmp_root) do |root| + marker_path = File.join(root, "local-install.json") + marker = { + "members_root" => File.join(root, "structuredmerge", "ruby", "gems"), + "local_dependencies" => [ + File.join(root, "kettle-dev", "nomono"), + File.join(root, "kettle-dev", "kettle-dev") + ], + "installed_members" => ["nomono", "kettle-dev", "kettle-jem"] + } + FileUtils.mkdir_p(File.join(marker.fetch("members_root"), "kettle-jem")) + File.write(marker_path, JSON.pretty_generate(marker)) + File.write(File.join(root, "Gemfile"), "source \"https://gem.coop\"\n") + + env = { + "K_JEM_TEMPLATING" => "true", + "KETTLE_FAMILY_LOCAL_INSTALL_MARKER" => marker_path + } + + expect(Kettle::Jem::Tasks::InstallTask.setup_command_env(root, env)).to include( + "BUNDLE_GEMFILE" => File.join(root, "Gemfile"), + "K_JEM_TEMPLATING" => "false" + ) + + disabled_env = env.merge( + "STRUCTUREDMERGE_DEV" => "false", + "KETTLE_DEV_DEV" => "false" + ) + expect(Kettle::Jem::Tasks::InstallTask.setup_command_env(root, disabled_env)).to include( + "BUNDLE_GEMFILE" => File.join(root, "Gemfile"), + "K_JEM_TEMPLATING" => "false", + "STRUCTUREDMERGE_DEV" => "false", + "KETTLE_DEV_DEV" => "false" + ) + end + end + + + it "detects rake tasks using the same bundle environment as command execution" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-rake-task-env", tmp_root) do |root| + write_tree(root, { + "Rakefile" => "task default: []\n", + "bin/rake" => <<~RUBY + #!/usr/bin/env ruby + puts "rake rubocop_gradual:autocorrect" if ENV.fetch("K_JEM_TEMPLATING", "false") == "true" + RUBY + }) + FileUtils.chmod("+x", File.join(root, "bin", "rake")) + + expect(Kettle::Jem::Tasks::InstallTask.rake_task_available?(root, "rubocop_gradual:autocorrect", env: {"K_JEM_TEMPLATING" => "false"})).to be(false) + expect(Kettle::Jem::Tasks::InstallTask.rake_task_available?(root, "rubocop_gradual:autocorrect", env: {"K_JEM_TEMPLATING" => "true"})).to be(true) + expect(Kettle::Jem::Tasks::InstallTask.rubocop_gradual_autocorrect_step(root, env: {"K_JEM_TEMPLATING" => "true"})).to include( + name: "rubocop_gradual_autocorrect", + status: "ready" + ) + end + end + + + it "runs install follow-up templating whenever the canonical config changes" do + report = { + recipe_reports: [ + { + relative_path: Kettle::Jem::KETTLE_CONFIG_PATH, + recipe_name: "template_source_application_structuredmerge_kettle_jem_yml", + changed: true + } + ] + } + + expect(Kettle::Jem::Tasks::InstallTask.config_bootstrap_changed?(report)).to be(true) + end + + + it "skips rubocop gradual autocorrect when the destination Rakefile does not define the task" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-install-missing-rubocop-gradual-task", tmp_root) do |root| + write_tree(root, { + "Rakefile" => "task default: []\n", + "bin/rake" => <<~SH + #!/usr/bin/env sh + echo "rake default" + SH + }) + FileUtils.chmod("+x", File.join(root, "bin", "rake")) + + expect(Kettle::Jem::Tasks::InstallTask.rubocop_gradual_autocorrect_step(root)).to eq( + name: "rubocop_gradual_autocorrect", + status: "skipped", + reason: "missing_rubocop_gradual_task" + ) + end + end + + + it "honors install ENV skip-commit and normalizes lockfiles without templating env overrides" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-install-env-skip-lock", tmp_root) do |root| + write_tree(root, { + "Gemfile" => "source \"https://gem.coop\"\n", + "Gemfile.lock" => <<~LOCK, + GEM + remote: https://gem.coop/ + specs: + + PLATFORMS + arm64-darwin + ruby + x86_64-darwin + + DEPENDENCIES + + BUNDLED WITH + 4.0.10 + LOCK + "example.gemspec" => <<~RUBY, + Gem::Specification.new do |spec| + spec.name = "example" + spec.summary = "Example gem" + end + RUBY + ".kettle-jem.yml" => <<~YAML + templates: + root: packaged + apply: true + entries: + - bin/setup + YAML + }) + + env = { + "KETTLE_JEM_SKIP_COMMIT" => "true", + "K_JEM_TEMPLATING" => "true", + "KETTLE_DEV_DEV" => "/workspace/my", + "GALTZO_FLOSS_DEV" => "/workspace/galtzo-floss", + "STRUCTUREDMERGE_DEV" => "/workspace/smorg-rb" + } + commands = [] + command_runner = lambda do |command, chdir:, env:, quiet:| + commands << {command: command, chdir: chdir, env: env, quiet: quiet} + {success: true, exitstatus: 0, stdout: "", stderr: ""} + end + + install = Kettle::Jem::Tasks::InstallTask.run( + project_root: root, + env: env, + run_options: {only: "bin/setup"}, + command_runner: command_runner + ) + + expect(install.fetch(:install_steps)).to include( + name: "bootstrap_commit", + status: "skipped", + reason: "skip_commit" + ) + expect(install.fetch(:install_steps)).to include(hash_including( + name: "bundle_install_requested_env", + command: %w[bundle install], + status: "succeeded", + reason: "executed" + )) + expect(install.fetch(:install_steps)).to include(hash_including( + name: "bundle_lock_normalization", + command: %w[bundle update], + status: "succeeded", + reason: "executed" + )) + lock_command = commands.find { |entry| entry.fetch(:command) == %w[bundle update] } + expect(lock_command).not_to be_nil + requested_bundle_install = commands.find { |entry| entry.fetch(:command) == %w[bundle install] } + expect(requested_bundle_install).not_to be_nil + command_names = commands.map { |entry| entry.fetch(:command) } + expect(command_names.index(%w[bundle install])).to be < command_names.index(["bin/setup"]) + expect(requested_bundle_install.fetch(:env)).to include( + "BUNDLE_GEMFILE" => File.join(root, "Gemfile"), + "K_JEM_TEMPLATING" => "true", + "KETTLE_DEV_DEV" => "/workspace/my", + "GALTZO_FLOSS_DEV" => "/workspace/galtzo-floss", + "STRUCTUREDMERGE_DEV" => "/workspace/smorg-rb" + ) + expect(lock_command.fetch(:env)).to include( + "BUNDLE_GEMFILE" => File.join(root, "Gemfile"), + "K_JEM_TEMPLATING" => "false", + "KETTLE_DEV_DEV" => "false", + "GALTZO_FLOSS_DEV" => "false", + "STRUCTUREDMERGE_DEV" => "false" + ) + expect(command_names).not_to include(%w[git add -A]) + end + end + + + it "can skip install lockfile normalization from ENV" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-install-skip-lock-normalization", tmp_root) do |root| + write_tree(root, { + "Gemfile" => "source \"https://gem.coop\"\n", + "Gemfile.lock" => "GEM\n remote: https://gem.coop/\n specs:\n", + "example.gemspec" => <<~RUBY + Gem::Specification.new do |spec| + spec.name = "example" + spec.summary = "Example gem" + end + RUBY + }) + + install = Kettle::Jem::Tasks::InstallTask.run( + project_root: root, + env: {"KETTLE_JEM_SKIP_LOCK_NORMALIZATION" => "true"}, + run_options: {only: "example.gemspec", skip_commit: true}, + command_runner: lambda { |_command, chdir:, env:, quiet:| {success: true, exitstatus: 0, stdout: "", stderr: ""} } + ) + + expect(install.fetch(:install_steps)).to include( + name: "bundle_lock_normalization", + status: "skipped", + reason: "skip_lock_normalization" + ) + end + end + + + it "normalizes lockfiles from the template task without templating env overrides" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-template-lock-normalization", tmp_root) do |root| + write_tree(root, { + "Gemfile" => "source \"https://gem.coop\"\n", + "Gemfile.lock" => <<~LOCK, + GEM + remote: https://gem.coop/ + specs: + + PLATFORMS + arm64-darwin + ruby + x86_64-darwin + + DEPENDENCIES + + BUNDLED WITH + 4.0.10 + LOCK + "example.gemspec" => <<~RUBY, + Gem::Specification.new do |spec| + spec.name = "example" + spec.summary = "Example gem" + end + RUBY + ".kettle-jem.yml" => <<~YAML + templates: + root: packaged + apply: true + entries: [] + YAML + }) + + env = { + "K_JEM_TEMPLATING" => "true", + "KETTLE_DEV_DEV" => "/workspace/my", + "GALTZO_FLOSS_DEV" => "/workspace/galtzo-floss", + "STRUCTUREDMERGE_DEV" => "/workspace/smorg-rb", + "RUBYOPT" => "-rbundler/setup", + "RUBYLIB" => "/workspace/kettle-jem/lib", + "BUNDLE_BIN_PATH" => "/workspace/kettle-jem/bin/bundle", + "BUNDLE_LOCKFILE" => "/workspace/kettle-jem/Gemfile.lock", + "BUNDLER_SETUP" => "/workspace/kettle-jem/bundler/setup", + "BUNDLER_VERSION" => "4.0.12" + } + commands = [] + command_runner = lambda do |command, chdir:, env:, quiet:| + commands << {command: command, chdir: chdir, env: env, quiet: quiet} + {success: true, exitstatus: 0, stdout: "", stderr: ""} + end + + report = Kettle::Jem::Tasks::TemplateTask.run( + project_root: root, + env: env, + run_options: {quiet: true}, + command_runner: command_runner + ) + + expect(report.fetch(:template_steps)).to include(hash_including( + name: "bundle_lock_normalization", + command: %w[bundle update], + status: "succeeded", + reason: "executed" + )) + lock_command = commands.find { |entry| entry.fetch(:command) == %w[bundle update] } + expect(lock_command).not_to be_nil + expect(lock_command.fetch(:env)).to include( + "BUNDLE_GEMFILE" => File.join(root, "Gemfile"), + "K_JEM_TEMPLATING" => "false", + "KETTLE_DEV_DEV" => "false", + "GALTZO_FLOSS_DEV" => "false", + "STRUCTUREDMERGE_DEV" => "false" + ) + expect(lock_command.fetch(:env)).to include( + "RUBYOPT" => nil, + "RUBYLIB" => nil, + "BUNDLE_BIN_PATH" => nil, + "BUNDLE_LOCKFILE" => nil, + "BUNDLER_SETUP" => nil, + "BUNDLER_VERSION" => nil + ) + end + end + + + it "activates local git hooks when requested by the template task" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-template-hook-activation", tmp_root) do |root| + write_tree(root, { + "Gemfile" => "source \"https://gem.coop\"\n", + "Gemfile.lock" => <<~LOCK, + GEM + remote: https://gem.coop/ + specs: + + PLATFORMS + ruby + + DEPENDENCIES + + BUNDLED WITH + 4.0.10 + LOCK + ".kettle-jem.yml" => <<~YAML, + templates: + root: packaged + apply: true + entries: [] + YAML + ".git-hooks/commit-msg" => "#!/bin/sh\n", + ".git-hooks/prepare-commit-msg" => "#!/bin/sh\n" + }) + + commands = [] + command_runner = lambda do |command, chdir:, env:, quiet:| + commands << {command: command, chdir: chdir, env: env, quiet: quiet} + {success: true, exitstatus: 0, stdout: "", stderr: ""} + end + + report = Kettle::Jem::Tasks::TemplateTask.run( + project_root: root, + env: {"K_JEM_TEMPLATING" => "true"}, + run_options: {hook_templates: "l", quiet: true}, + command_runner: command_runner + ) + + expect(report.fetch(:template_steps)).to include(hash_including( + name: "hook_templates", + command: %w[git config core.hooksPath .git-hooks], + status: "succeeded", + reason: "executed" + )) + expect(commands.map { |entry| entry.fetch(:command) }).to include(%w[git config core.hooksPath .git-hooks]) + expect(File.stat(File.join(root, ".git-hooks", "commit-msg")).mode & 0o111).not_to eq(0) + expect(File.stat(File.join(root, ".git-hooks", "prepare-commit-msg")).mode & 0o111).not_to eq(0) + end + end + + + it "makes generated git hook scripts executable during template apply" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-template-hook-mode", tmp_root) do |root| + write_tree(root, { + "demo.gemspec" => <<~RUBY, + Gem::Specification.new do |spec| + spec.name = "demo" + spec.version = "1.0.0" + spec.summary = "Demo" + end + RUBY + ".kettle-jem.yml" => <<~YAML, + templates: + root: packaged + apply: true + entries: [] + YAML + ".git-hooks/commit-msg" => "#!/bin/sh\n", + ".git-hooks/prepare-commit-msg" => "#!/bin/sh\n" + }) + FileUtils.chmod(0o644, File.join(root, ".git-hooks", "commit-msg")) + FileUtils.chmod(0o644, File.join(root, ".git-hooks", "prepare-commit-msg")) + + apply = described_class.apply_project(root, env: {}, run_options: {skip_commit: true}) + + expect(apply.fetch(:post_apply_steps)).to include(hash_including( + name: "git_hooks_executable", + status: "updated", + changed_files: contain_exactly(".git-hooks/commit-msg", ".git-hooks/prepare-commit-msg") + )) + expect(File.executable?(File.join(root, ".git-hooks", "commit-msg"))).to be(true) + expect(File.executable?(File.join(root, ".git-hooks", "prepare-commit-msg"))).to be(true) + end + end + + + it "plans local semantic Git driver setup by default" do + step = Kettle::Jem::Tasks::InstallTask.git_drivers_step("/example", {}) + + expect(step).to include( + name: "git_drivers", + status: "ready", + mode: "local", + profile: "semantic-diff", + scope: "local", + reason: "ready_for_local_git_drivers" + ) + expect(step.fetch(:attribute_updates)).to include(hash_including( + pattern: "*.rb", + attributes: {"diff" => "smorg-rb"} + )) + expect(step.fetch(:commands)).to include( + ["git", "config", "--local", "diff.smorg-rb.command", "smorg-rb diff-driver"], + ["git", "config", "--local", "merge.smorg-rb.driver", "smorg-rb merge-driver %O %A %B %P"] + ) + end + + + it "plans builtin Git diff attributes when requested" do + step = Kettle::Jem::Tasks::InstallTask.git_drivers_step("/example", {git_drivers: "builtin-diff"}) + + expect(step).to include( + name: "git_drivers", + status: "ready", + mode: "builtin-diff", + profile: "builtin-diff", + scope: "local" + ) + expect(step.fetch(:attribute_updates)).to include(hash_including( + pattern: "*.rb", + attributes: {"diff" => "ruby"} + )) + end + + + it "normalizes Git driver mode aliases" do + expect(Kettle::Jem::Tasks::InstallTask.normalize_git_drivers_mode(nil)).to eq("local") + expect(Kettle::Jem::Tasks::InstallTask.normalize_git_drivers_mode("off")).to eq("none") + expect(Kettle::Jem::Tasks::InstallTask.normalize_git_drivers_mode("yes")).to eq("local") + expect(Kettle::Jem::Tasks::InstallTask.normalize_git_drivers_mode("g")).to eq("global") + expect(Kettle::Jem::Tasks::InstallTask.normalize_git_drivers_mode("include")).to eq("include-file") + expect(Kettle::Jem::Tasks::InstallTask.normalize_git_drivers_mode("b")).to eq("builtin-diff") + expect(Kettle::Jem::Tasks::InstallTask.normalize_git_drivers_mode("check")).to eq("check") + expect(Kettle::Jem::Tasks::InstallTask.normalize_git_drivers_mode("undo")).to eq("undo") + expect(Kettle::Jem::Tasks::InstallTask.normalize_git_drivers_mode("custom")).to eq("custom") + end + + + it "plans a RuboCop-LTS branch switch for local RuboCop-LTS templating" do + report = { + facts: { + templates: { + tokens: { + "KJ|RUBOCOP_RUBY_GEM" => "rubocop-ruby2_4" + } + } + } + } + + allow(Kettle::Jem::Tasks::InstallTask).to receive(:current_git_branch).and_return("r1_8-even-v0") + + step = Kettle::Jem::Tasks::InstallTask.rubocop_lts_local_branch_step( + report, + env: {"RUBOCOP_LTS_LOCAL" => "/workspace/rubocop-lts"} + ) + + expect(step).to include( + name: "rubocop_lts_local_branch", + command: ["git", "-C", "/workspace/rubocop-lts/rubocop-lts", "switch", "r2_4-even-v12"], + status: "ready", + path: "/workspace/rubocop-lts/rubocop-lts", + current_branch: "r1_8-even-v0", + branch: "r2_4-even-v12", + reason: "rubocop_lts_local_branch_matrix" + ) + end + + + it "skips the RuboCop-LTS branch switch when the local checkout is already on the matrix branch" do + report = { + facts: { + templates: { + tokens: { + "KJ|RUBOCOP_RUBY_GEM" => "rubocop-ruby2_4" + } + } + } + } + + allow(Kettle::Jem::Tasks::InstallTask).to receive(:current_git_branch).and_return("r2_4-even-v12") + + step = Kettle::Jem::Tasks::InstallTask.rubocop_lts_local_branch_step( + report, + env: {"RUBOCOP_LTS_LOCAL" => "/workspace/rubocop-lts"} + ) + + expect(step).to include( + name: "rubocop_lts_local_branch", + status: "already_current", + path: "/workspace/rubocop-lts/rubocop-lts", + branch: "r2_4-even-v12" + ) + end + + + it "skips the RuboCop-LTS branch switch when templating the RuboCop-LTS checkout itself" do + report = { + facts: { + templates: { + tokens: { + "KJ|RUBOCOP_RUBY_GEM" => "rubocop-ruby3_2" + } + } + } + } + + step = Kettle::Jem::Tasks::InstallTask.rubocop_lts_local_branch_step( + report, + env: {"RUBOCOP_LTS_LOCAL" => "/workspace/rubocop-lts"}, + project_root: "/workspace/rubocop-lts/rubocop-lts" + ) + + expect(step).to include( + name: "rubocop_lts_local_branch", + status: "skipped", + path: "/workspace/rubocop-lts/rubocop-lts", + branch: "r3_2-even-v24", + reason: "destination_is_rubocop_lts_checkout" + ) + end + + + it "skips the RuboCop-LTS branch switch when the checkout paths differ only by realpath" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-rubocop-lts-realpath", tmp_root) do |root| + local_root = File.join(root, "rubocop-lts") + checkout = File.join(local_root, "rubocop-lts") + FileUtils.mkdir_p(checkout) + alias_path = File.join(root, "rubocop-lts-alias") + File.symlink(local_root, alias_path) + + report = { + facts: { + templates: { + tokens: { + "KJ|RUBOCOP_RUBY_GEM" => "rubocop-ruby3_2" + } + } + } + } + + step = Kettle::Jem::Tasks::InstallTask.rubocop_lts_local_branch_step( + report, + env: {"RUBOCOP_LTS_LOCAL" => alias_path}, + project_root: checkout + ) + + expect(step).to include( + name: "rubocop_lts_local_branch", + status: "skipped", + path: File.join(alias_path, "rubocop-lts"), + branch: "r3_2-even-v24", + reason: "destination_is_rubocop_lts_checkout" + ) + end + end + + + it "does not plan a RuboCop-LTS branch switch when local RuboCop-LTS is disabled" do + report = { + facts: { + templates: { + tokens: { + "KJ|RUBOCOP_RUBY_GEM" => "rubocop-ruby2_4" + } + } + } + } + + expect(Kettle::Jem::Tasks::InstallTask.rubocop_lts_local_branch_step( + report, + env: {"RUBOCOP_LTS_LOCAL" => "off"} + )).to be_nil + end + + + it "fails local RuboCop-LTS branch planning when the selected wrapper is unknown" do + report = { + facts: { + templates: { + tokens: { + "KJ|RUBOCOP_RUBY_GEM" => "rubocop-ruby9_9" + } + } + } + } + + expect { + Kettle::Jem::Tasks::InstallTask.rubocop_lts_local_branch_step( + report, + env: {"RUBOCOP_LTS_LOCAL" => "/workspace/rubocop-lts"} + ) + }.to raise_error(Kettle::Jem::Error, /Cannot select RUBOCOP_LTS_LOCAL branch/) + end + + + it "executes the RuboCop-LTS branch switch before later orchestration commands" do + commands = [] + command_runner = lambda do |command, **| + commands << command + {success: true, exitstatus: 0, stdout: "", stderr: ""} + end + + result = Kettle::Jem::Tasks::InstallTask.execute_orchestration_steps( + [ + { + name: "rubocop_lts_local_branch", + command: ["git", "-C", "/workspace/rubocop-lts/rubocop-lts", "switch", "r2_4-even-v12"], + status: "ready" + }, + { + name: "rubocop_gradual_autocorrect", + command: ["sh", "-c", "rm -f .rubocop_gradual.lock && bin/rake rubocop_gradual:autocorrect"], + status: "ready" + } + ], + project_root: "/project", + env: {}, + run_options: {}, + command_runner: command_runner + ) + + expect(result).to include( + hash_including(name: "rubocop_lts_local_branch", status: "succeeded"), + hash_including(name: "rubocop_gradual_autocorrect", status: "succeeded") + ) + expect(commands).to eq([ + ["git", "-C", "/workspace/rubocop-lts/rubocop-lts", "switch", "r2_4-even-v12"], + ["sh", "-c", "rm -f .rubocop_gradual.lock && bin/rake rubocop_gradual:autocorrect"] + ]) + end + + + it "writes managed .gitattributes and local config for local semantic Git driver setup" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-git-drivers", tmp_root) do |root| + write_tree(root, {".gitattributes" => "*.md diff=markdown\n"}) + step = Kettle::Jem::Tasks::InstallTask.git_drivers_step(root, {}) + commands = [] + command_runner = lambda do |command, **| + commands << command + {success: true, exitstatus: 0, stdout: "", stderr: ""} + end + + result = Kettle::Jem::Tasks::InstallTask.execute_orchestration_steps( + [step], + project_root: root, + env: {}, + run_options: {}, + command_runner: command_runner + ).first + + expect(result).to include(status: "succeeded", changed_files: [".gitattributes"]) + expect(File.read(File.join(root, ".gitattributes"))).to eq(<<~ATTRIBUTES) + *.md diff=markdown + # <> do not edit below this line + *.rb diff=smorg-rb + *.go diff=smorg-go + *.rs diff=smorg-rs + # <> + ATTRIBUTES + expect(commands).to include( + ["git", "config", "--local", "diff.smorg-rb.command", "smorg-rb diff-driver"], + ["git", "config", "--local", "merge.smorg-rb.driver", "smorg-rb merge-driver %O %A %B %P"] + ) + end + end + + + it "reports conflicting unmanaged .gitattributes entries" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-git-driver-conflict", tmp_root) do |root| + write_tree(root, {".gitattributes" => "*.rb diff=ruby\n"}) + + step = Kettle::Jem::Tasks::InstallTask.git_drivers_step(root, {}) + + expect(step).to include( + status: "blocked", + reason: "git_driver_attribute_conflict" + ) + expect(step.fetch(:diagnostics)).to include(hash_including( + key: "conflicting_attributes", + path: ".gitattributes", + pattern: "*.rb", + blocking: true + )) + end + end + + + it "plans local Git driver setup without writing attributes in dry-run mode" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-git-driver-dry-run", tmp_root) do |root| + step = Kettle::Jem::Tasks::InstallTask.git_drivers_step(root, {dry_run: true}) + + expect(step).to include( + status: "planned", + reason: "dry_run_git_driver_attributes" + ) + end + end + + + it "plans global Git driver command registration when requested" do + step = Kettle::Jem::Tasks::InstallTask.git_drivers_step("/example", {git_drivers: "global"}) + + expect(step).to include( + name: "git_drivers", + status: "ready", + mode: "global", + profile: "semantic-diff", + scope: "global", + reason: "ready_for_global_git_drivers" + ) + expect(step.fetch(:commands)).to include( + ["git", "config", "--global", "diff.smorg-rb.command", "smorg-rb diff-driver"], + ["git", "config", "--global", "merge.smorg-rb.driver", "smorg-rb merge-driver %O %A %B %P"] + ) + expect(step.fetch(:diagnostics)).to include(hash_including(key: "forge_ignores_external_diff_drivers")) + end + + + it "plans global Git driver command removal with unset-all when requested" do + step = Kettle::Jem::Tasks::InstallTask.git_drivers_step("/example", {git_drivers: "undo"}) + + expect(step).to include( + name: "git_drivers", + status: "ready", + mode: "undo", + profile: "all", + scope: "local", + reason: "ready_for_git_driver_undo" + ) + expect(step.fetch(:commands)).to include( + ["git", "config", "--global", "--unset-all", "diff.smorg-rb.command"], + ["git", "config", "--global", "--unset-all", "merge.smorg-rb.driver"], + ["git", "config", "--global", "--unset-all", "merge.smorg-rb.name"] + ) + end + + + it "writes include-file Git driver configuration when requested" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-git-driver-include", tmp_root) do |root| + step = Kettle::Jem::Tasks::InstallTask.git_drivers_step(root, {git_drivers: "include-file"}) + commands = [] + command_runner = lambda do |command, **| + commands << command + {success: true, exitstatus: 0, stdout: "", stderr: ""} + end + + result = Kettle::Jem::Tasks::InstallTask.execute_orchestration_steps( + [step], + project_root: root, + env: {}, + run_options: {}, + command_runner: command_runner + ).first + + expect(result).to include(status: "succeeded", changed_files: [".git/smorg/config"]) + expect(commands).to include(["git", "config", "--local", "include.path", ".git/smorg/config"]) + expect(File.read(File.join(root, ".git", "smorg", "config"))).to include("[diff \"smorg-rb\"]") + end + end + + + it "loads project Git driver manifests for attribute and command planning" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-git-driver-manifest", tmp_root) do |root| + write_tree(root, { + ".structuredmerge/git-drivers.toml" => <<~TOML + version = 1 + driver_namespace = "smorg" + + [profiles.semantic-diff] + description = "Custom Ruby driver" + + [[profiles.semantic-diff.attributes]] + pattern = "*.rake" + diff = "smorg-rb" + + [[profiles.semantic-diff.git_config]] + scope = "global" + key = "diff.smorg-rb.command" + value = "bundle exec smorg-rb diff-driver" + TOML + }) + + local = Kettle::Jem::Tasks::InstallTask.git_drivers_step(root, {}) + global = Kettle::Jem::Tasks::InstallTask.git_drivers_step(root, {git_drivers: "global"}) + + expect(local.fetch(:attribute_updates)).to eq([ + {path: ".gitattributes", pattern: "*.rake", attributes: {"diff" => "smorg-rb"}} + ]) + expect(global.fetch(:commands)).to eq([ + ["git", "config", "--global", "diff.smorg-rb.command", "bundle exec smorg-rb diff-driver"] + ]) + end + end + + + it "keeps committed Git driver manifests on the smorg-rb executable name" do + repo_root = project_root.join("../..").expand_path + manifest_paths = [ + repo_root.join(".structuredmerge/git-drivers.toml"), + project_root.join(".structuredmerge/git-drivers.toml") + ] + + manifest_paths.each do |path| + content = File.read(path) + + expect(content).to include('diff = "smorg-rb"') + expect(content).to include('key = "diff.smorg-rb.command"') + expect(content).to include('value = "smorg-rb diff-driver"') + expect(content).not_to include("smorg-ruby") + end + end + + + it "rejects unsafe interpolation in committed Git driver manifests" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-git-driver-unsafe-manifest", tmp_root) do |root| + write_tree(root, { + ".structuredmerge/git-drivers.toml" => <<~TOML + version = 1 + + [profiles.semantic-diff] + + [[profiles.semantic-diff.git_config]] + scope = "global" + key = "diff.smorg-rb.command" + value = "smorg-rb $(danger)" + TOML + }) + + expect do + Kettle::Jem::Tasks::InstallTask.git_drivers_step(root, {}) + end.to raise_error(Kettle::Jem::Error, /unsafe command interpolation/) + end + end + + + it "rejects cachetextconv outside explicit textconv profiles" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-git-driver-cachetextconv", tmp_root) do |root| + write_tree(root, { + ".structuredmerge/git-drivers.toml" => <<~TOML + version = 1 + + [profiles.semantic-diff] + + [[profiles.semantic-diff.git_config]] + scope = "global" + key = "diff.smorg-rb.cachetextconv" + value = "true" + TOML + }) + + expect do + Kettle::Jem::Tasks::InstallTask.git_drivers_step(root, {}) + end.to raise_error(Kettle::Jem::Error, /cachetextconv requires an explicit textconv profile/) + end + end + + + it "keeps semantic diff commands separate from textconv projections" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-git-driver-textconv-separation", tmp_root) do |root| + write_tree(root, { + ".structuredmerge/git-drivers.toml" => <<~TOML + version = 1 + + [profiles.semantic-diff] + + [[profiles.semantic-diff.git_config]] + scope = "global" + key = "diff.smorg-rb.command" + value = "smorg-rb diff-driver" + + [profiles.textconv-normalized] + + [[profiles.textconv-normalized.git_config]] + scope = "global" + key = "diff.smorg-json-textconv.textconv" + value = "smorg-rb textconv --format json" + + [[profiles.textconv-normalized.git_config]] + scope = "global" + key = "diff.smorg-json-textconv.cachetextconv" + value = "true" + TOML + }) + + manifest = Kettle::Jem::Tasks::InstallTask.git_driver_manifest(root) + semantic_commands = Kettle::Jem::Tasks::InstallTask.git_driver_global_commands(manifest, "semantic-diff") + semantic_local_commands = Kettle::Jem::Tasks::InstallTask.git_driver_local_commands(manifest, "semantic-diff") + textconv_commands = Kettle::Jem::Tasks::InstallTask.git_driver_global_commands(manifest, "textconv-normalized") + + expect(semantic_commands).to eq([ + ["git", "config", "--global", "diff.smorg-rb.command", "smorg-rb diff-driver"] + ]) + expect(semantic_local_commands).to eq([ + ["git", "config", "--local", "diff.smorg-rb.command", "smorg-rb diff-driver"] + ]) + expect(textconv_commands).to contain_exactly( + ["git", "config", "--global", "diff.smorg-json-textconv.textconv", "smorg-rb textconv --format json"], + ["git", "config", "--global", "diff.smorg-json-textconv.cachetextconv", "true"] + ) + end + end + + + it "keeps textconv projections display-only and out of merge inputs" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-git-driver-textconv-display-only", tmp_root) do |root| + write_tree(root, { + ".structuredmerge/git-drivers.toml" => <<~TOML + version = 1 + + [profiles.textconv-normalized] + + [[profiles.textconv-normalized.attributes]] + pattern = "*.json" + diff = "smorg-json-textconv" + + [[profiles.textconv-normalized.git_config]] + scope = "global" + key = "diff.smorg-json-textconv.textconv" + value = "smorg-rb textconv --format json" + TOML + }) + + manifest = Kettle::Jem::Tasks::InstallTask.git_driver_manifest(root) + attributes = Kettle::Jem::Tasks::InstallTask.git_driver_attribute_updates(manifest, "textconv-normalized") + commands = Kettle::Jem::Tasks::InstallTask.git_driver_global_commands(manifest, "textconv-normalized") + + expect(attributes).to eq([ + {path: ".gitattributes", pattern: "*.json", attributes: {"diff" => "smorg-json-textconv"}} + ]) + expect(attributes.flat_map { |update| update.fetch(:attributes).keys }).not_to include("merge") + expect(commands.map { |command| command[3] }).to contain_exactly("diff.smorg-json-textconv.textconv") + expect(commands.map { |command| command[3] }).not_to include(a_string_matching(/\Amerge\./)) + end + end + + + it "skips Git driver setup when explicitly disabled" do + step = Kettle::Jem::Tasks::InstallTask.git_drivers_step("/example", {git_drivers: "none"}) + + expect(step).to include( + name: "git_drivers", + status: "skipped", + reason: "not_requested", + mode: "none" + ) + end + + + it "loads canonical structuredmerge kettle-jem config before legacy root config" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-config-discovery", tmp_root) do |root| + write_tree(root, { + ".kettle-jem.yml" => "templates:\n root: legacy\n", + ".structuredmerge/kettle-jem.yml" => "templates:\n root: canonical\n" + }) + + expect(described_class.kettle_jem_config(root).fetch("templates").fetch("root")).to eq("canonical") + end + end + + + it "migrates legacy kettle-jem config to the structuredmerge directory" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-config-migration", tmp_root) do |root| + write_tree(root, { + ".kettle-jem.yml" => "templates:\n root: packaged\n" + }) + + step = Kettle::Jem::Tasks::InstallTask.kettle_config_migration_step(root) + + expect(step).to include( + name: "kettle_config_migration", + status: "migrated", + reason: "legacy_kettle_config_migrated", + canonical_path: ".structuredmerge/kettle-jem.yml", + legacy_path: ".kettle-jem.yml" + ) + expect(File).not_to exist(File.join(root, ".kettle-jem.yml")) + expect(File.read(File.join(root, ".structuredmerge", "kettle-jem.yml"))).to eq("templates:\n root: packaged\n") + end + end + + + it "reports a conflict when canonical and legacy kettle-jem configs both exist" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-config-migration-conflict", tmp_root) do |root| + write_tree(root, { + ".kettle-jem.yml" => "templates:\n root: legacy\n", + ".structuredmerge/kettle-jem.yml" => "templates:\n root: canonical\n" + }) + + step = Kettle::Jem::Tasks::InstallTask.kettle_config_migration_step(root) + + expect(step).to include( + name: "kettle_config_migration", + status: "blocked", + reason: "legacy_kettle_config_conflict" + ) + expect(step.fetch(:diagnostics)).to include(hash_including( + key: "legacy_kettle_config_conflict", + path: ".kettle-jem.yml", + canonical_path: ".structuredmerge/kettle-jem.yml" + )) + end + end + + + it "reports gemspec dependency sync through the install task" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-install-gemspec-sync", tmp_root) do |root| + write_tree(root, { + "example.gemspec" => <<~RUBY, + Gem::Specification.new do |spec| + spec.name = "example" + spec.summary = "Example gem" + end + RUBY + ".kettle-jem.yml" => <<~YAML, + templates: + root: template + apply: true + entries: + - source: example.gemspec + target: example.gemspec + YAML + "template/example.gemspec.example" => <<~RUBY + Gem::Specification.new do |spec| + spec.name = "template" + spec.summary = "Template gem" + spec.add_development_dependency "rake", "~> 13.0" + end + RUBY + }) + command_runner = lambda do |_command, **| + {success: true, exitstatus: 0, stdout: "", stderr: ""} + end + + install = Kettle::Jem::Tasks::InstallTask.run( + project_root: root, + env: {}, + run_options: {only: "example.gemspec", skip_commit: true}, + command_runner: command_runner + ) + + expect(install.fetch(:install_steps)).to include( + name: "gemspec_dependency_sync", + path: "example.gemspec", + status: "applied", + development_dependencies: ["rake"] + ) + expect(File.read(File.join(root, "example.gemspec"))).to include('spec.add_development_dependency "rake", "~> 13.0"') + end + end + + + it "drops retired kettle-drift gemspec development dependencies during gemspec sync" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-retired-gemspec-dev-dependency", tmp_root) do |root| + write_tree(root, { + "example.gemspec" => <<~RUBY, + Gem::Specification.new do |spec| + spec.name = "example" + spec.summary = "Example gem" + spec.add_development_dependency "kettle-drift" + spec.add_development_dependency "rake", "~> 13.0" + end + RUBY + ".kettle-jem.yml" => <<~YAML, + templates: + root: template + apply: true + entries: + - source: example.gemspec + target: example.gemspec + YAML + "template/example.gemspec.example" => <<~RUBY + Gem::Specification.new do |spec| + spec.name = "template" + spec.summary = "Template gem" + end + RUBY + }) + + plan = described_class.plan_project(root, env: {}, run_options: {only: "example.gemspec"}) + report = plan.fetch(:recipe_reports).find do |candidate| + candidate.fetch(:relative_path) == "example.gemspec" + end + content = report.fetch(:final_content) + + expect(content).not_to include("kettle-drift") + expect(content).to include('spec.add_development_dependency "rake", "~> 13.0"') + end + end + + + it "ports old install post-template project cleanup and safety checks" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-install-post-processing", tmp_root) do |root| + write_tree(root, { + "example.gemspec" => <<~RUBY, + Gem::Specification.new do |spec| + spec.name = "example" + spec.summary = "🥘 Example gem" + spec.description = "Example description" + spec.homepage = "\#{homepage}" + spec.required_ruby_version = ">= 3.2" + end + RUBY + ".kettle-jem.yml" => <<~YAML, + project_emoji: "🔧" + templates: + root: packaged + apply: true + entries: + - README.md + YAML + "README.md" => <<~MARKDOWN, + # 🍲 Example + + | Runtime | Works | + | --- | --- | + | Works with MRI Ruby | [![ruby-2.7][💎ruby-2.7i]][🚎2.7]
        [![ruby-3.2][💎ruby-3.2i]][🚎3.2]
        [![ruby-current][💎ruby-c-i]][🚎current] | + + [💎ruby-2.7i]: https://img.shields.io/badge/Ruby-2.7-red.svg + [💎ruby-3.2i]: https://img.shields.io/badge/Ruby-3.2-red.svg + [💎ruby-c-i]: https://img.shields.io/badge/Ruby-current-red.svg + [🚎2.7]: https://github.com/example-org/example/actions/workflows/ruby-2.7.yml + [🚎3.2]: https://github.com/example-org/example/actions/workflows/ruby-3.2.yml + [🚎current]: https://github.com/example-org/example/actions/workflows/current.yml + MARKDOWN + ".github/workflows/ruby-3.2.yml" => "name: Ruby 3.2\n", + "mise.toml" => "[tools]\nruby = \"3.4.1\"\n", + ".ruby-version" => "3.4.1\n", + ".tool-versions" => "ruby 3.4.1\n", + ".env.local.example" => "KETTLE_DEV_DEV=false\n", + ".gitignore" => "tmp/\n" + }) + command_runner = lambda do |_command, **| + {success: true, exitstatus: 0, stdout: "", stderr: ""} + end + + install = Kettle::Jem::Tasks::InstallTask.run( + project_root: root, + env: {"FORGE_ORG" => "example-org"}, + run_options: {only: "README.md", skip_commit: true}, + command_runner: command_runner + ) + + expect(install.fetch(:install_steps)).to include( + name: "legacy_ruby_version_file_cleanup", + status: "applied", + removed_files: [".ruby-version", ".tool-versions"] + ) + expect(install.fetch(:install_steps)).to include( + name: "gemspec_homepage_literal", + path: "example.gemspec", + status: "applied", + homepage: "https://github.com/example-org/example" + ) + expect(install.fetch(:install_steps)).to include( + name: "env_local_gitignore", + path: ".gitignore", + status: "applied" + ) + expect(install.fetch(:install_steps)).to include(hash_including( + name: "readme_gemspec_grapheme_sync", + paths: ["README.md", "example.gemspec"], + status: "applied", + grapheme: "🔧" + )) + expect(File).not_to exist(File.join(root, ".ruby-version")) + expect(File).not_to exist(File.join(root, ".tool-versions")) + gemspec = File.read(File.join(root, "example.gemspec")) + expect(gemspec).to include('spec.homepage = "https://github.com/example-org/example"') + expect(gemspec.scan('spec.homepage = "https://github.com/example-org/example"').size).to eq(1) + expect(gemspec).to include('spec.summary = "🔧 Example gem"') + expect(gemspec).to include('spec.description = "🔧 Example description"') + expect(File.read(File.join(root, ".gitignore"))).to include(".env.local") + readme = File.read(File.join(root, "README.md")) + expect(readme).to include("# 🔧 Example") + expect(readme).not_to include("ruby-2.7") + expect(readme).to include("ruby-3.2") + expect(readme).not_to include("ruby-current") + expect(readme).not_to include("[🚎current]:") + expect(readme).to include("[🚎ruby-3.2-wf]:") + expect(install.fetch(:install_phase_reports)).to include(hash_including( + phase: "post_template", + statuses: hash_including( + "legacy_ruby_version_file_cleanup" => "applied", + "readme_compatibility_badges" => satisfy { |status| %w[applied already_current].include?(status) }, + "readme_gemspec_grapheme_sync" => "applied", + "gemspec_homepage_literal" => "applied", + "env_local_gitignore" => "applied" + ) + )) + expect(install.fetch(:install_summary)).to include( + steps: install.fetch(:install_steps).length, + statuses: include("applied" => be >= 4), + summary: include("install steps") + ) + end + end + +end diff --git a/gems/kettle-jem/spec/template_version_gem_bootstrap_spec.rb b/gems/kettle-jem/spec/template_version_gem_bootstrap_spec.rb index 7d7270f9b..81e84c40b 100644 --- a/gems/kettle-jem/spec/template_version_gem_bootstrap_spec.rb +++ b/gems/kettle-jem/spec/template_version_gem_bootstrap_spec.rb @@ -1,6 +1,5 @@ # frozen_string_literal: true -require_relative "spec_helper" require "pathname" require "rbs" @@ -289,8 +288,6 @@ module Version write_file(root, "spec/nomono/version_spec.rb", <<~RUBY) # frozen_string_literal: true - require "spec_helper" - RSpec.describe Nomono::Version do it_behaves_like "a Version module", described_class end @@ -314,12 +311,8 @@ module Version expect(gemspec).not_to include("version_gem") expect(File.read(File.join(root, "lib/nomono/version_gem.rb"))).to eq(dedicated_entrypoint) version_spec = File.read(File.join(root, "spec/nomono/version_spec.rb")) - expect(version_spec).to include(<<~RUBY) - require "spec_helper" - require "nomono/version_gem" - - RSpec.describe Nomono::Version do - RUBY + expect(version_spec).to include('require "nomono/version_gem"') + expect(version_spec).to include("RSpec.describe Nomono::Version do") end end end diff --git a/gems/kettle-jem/spec/thin_slice_spec.rb b/gems/kettle-jem/spec/thin_slice_spec.rb deleted file mode 100644 index 247dbaadf..000000000 --- a/gems/kettle-jem/spec/thin_slice_spec.rb +++ /dev/null @@ -1,15343 +0,0 @@ -# frozen_string_literal: true - -require_relative "spec_helper" - -RSpec.describe Kettle::Jem do - include_context "with isolated kettle-jem environment" - - let(:fixture_path) { Pathname(__dir__).join("fixtures/thin_slice.json") } - let(:fixture) { JSON.parse(fixture_path.read, symbolize_names: true) } - let(:contract_path) do - Pathname(__dir__).join("../../../../fixtures/packaging/thin-slice-contract.json").expand_path - end - let(:contract) { JSON.parse(contract_path.read, symbolize_names: true) } - let(:bootstrap_contract_path) { Pathname(__dir__).join("fixtures/bootstrap_contract.json").expand_path } - let(:bootstrap_contract) { JSON.parse(bootstrap_contract_path.read, symbolize_names: true) } - let(:old_spec_contract_path) { Pathname(__dir__).join("fixtures/old_spec_migration_contract.json").expand_path } - let(:old_spec_contract) { JSON.parse(old_spec_contract_path.read, symbolize_names: true) } - - it "deduplicates destination file reads while planning recipes" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-file-cache", tmp_root) do |root| - write_tree(root, {"README.md" => "# Example\n"}) - pack = { - recipes: [ - {target_path: "README.md"}, - {target_path: "README.md"}, - {target_path: "CHANGELOG.md"} - ] - } - readme_path = File.join(root, "README.md") - - allow(File).to receive(:read).and_call_original - - files = described_class.send(:read_project_files, root, pack) - - expect(files).to eq("README.md" => "# Example\n", "CHANGELOG.md" => "") - expect(File).to have_received(:read).with(readme_path).once - end - end - - it "deduplicates template source reads while planning recipes" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-template-cache", tmp_root) do |root| - write_tree(root, {"templates/README.md.example" => "# {KJ|GEM_NAME}\n"}) - template_path = File.join(root, "templates/README.md.example") - template_preference = { - source_root_path: root, - source_relative_path: "templates/README.md.example", - selected_source: "templates/README.md.example" - } - pack = { - recipes: [ - {primitive: "supplied_template_source_application", target_path: "README.md", template_preference: template_preference}, - {primitive: "supplied_template_source_application", target_path: "README.md", template_preference: template_preference}, - {primitive: "supplied_managed_text_block_replacement", target_path: "gemfiles/modular/shunted.gemfile"} - ] - } - - allow(File).to receive(:read).and_call_original - - contents = described_class.send(:read_template_source_files, root, pack) - - expect(contents).to eq(template_path => "# {KJ|GEM_NAME}\n") - expect(File).to have_received(:read).with(template_path).once - expect( - described_class.send(:recipe_template_content, root, pack.fetch(:recipes).first, template_contents: contents) - ).to eq("# {KJ|GEM_NAME}\n") - end - end - - it "records recipe timing metadata in top-level and envelope reports" do - report = described_class.send(:timed_recipe_report) do - { - metadata: {packaging_recipe: "example"}, - report_envelope: { - report: { - metadata: {packaging_recipe: "example"} - } - } - } - end - - expect(report.dig(:metadata, :duration_ms)).to be >= 0 - expect(report.dig(:report_envelope, :report, :metadata, :duration_ms)).to eq(report.dig(:metadata, :duration_ms)) - end - - it "parses recipe planning strategies from options and env" do - expect(described_class.send(:recipe_planning_strategy_for, {}, {})).to eq("sequential") - expect(described_class.send(:recipe_planning_strategy_for, {"KETTLE_JEM_RECIPE_PLANNING_STRATEGY" => "classified"}, {})).to eq("classified") - expect(described_class.send(:recipe_planning_strategy_for, {}, {recipe_planning_strategy: "true"})).to eq("classified") - expect(described_class.send(:recipe_planning_strategy_for, {"KETTLE_JEM_RECIPE_PLANNING_STRATEGY" => "classified"}, {recipe_planning_strategy: "sequential"})).to eq("sequential") - - expect do - described_class.send(:recipe_planning_strategy_for, {}, {recipe_planning_strategy: "ractor"}) - end.to raise_error(ArgumentError, /Unsupported kettle-jem recipe planning strategy/) - end - - it "parses Ractor recipe planning workers from options and env" do - expect(described_class.send(:recipe_planning_workers_for, {}, {})).to eq(0) - expect(described_class.send(:recipe_planning_workers_for, {"KETTLE_JEM_RACTOR_WORKERS" => "2"}, {})).to eq(2) - expect(described_class.send(:recipe_planning_workers_for, {"KETTLE_JEM_RACTOR_WORKERS" => "2"}, {recipe_planning_workers: "1"})).to eq(1) - expect(described_class.send(:recipe_planning_workers_for, {}, {ractor_workers: "3"})).to eq(3) - - expect do - described_class.send(:recipe_planning_workers_for, {}, {recipe_planning_workers: "-1"}) - end.to raise_error(ArgumentError, /non-negative integer/) - expect do - described_class.send(:recipe_planning_workers_for, {"KETTLE_JEM_RACTOR_WORKERS" => "many"}, {}) - end.to raise_error(ArgumentError, /non-negative integer/) - end - - it "classifies only side-effect-free cleanup and generated recipes as worker-safe for now" do - safe_recipe = { - name: "github_actions_obsolete_workflow_cleanup_old", - target_path: ".github/workflows/old.yml", - provider_family: "file", - primitive: "supplied_obsolete_file_deletion", - facts: [] - } - main_only_recipe = { - name: "template_source_application_readme", - target_path: "README.md", - provider_family: "markdown", - primitive: "supplied_template_source_application", - facts: [] - } - - expect(described_class.send(:worker_safe_recipe?, safe_recipe)).to be(true) - expect(described_class.send(:worker_safe_recipe?, main_only_recipe)).to be(false) - end - - it "keeps classified recipe planning report output equivalent to sequential planning" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-classified-planning", tmp_root) do |root| - write_tree(root, { - ".github/workflows/old.yml" => "name: old\n", - "README.md" => "# Example\n" - }) - recipes = [ - { - name: "noop_main_only", - target_path: "README.md", - provider_family: "markdown", - primitive: "noop", - facts: [] - }, - { - name: "github_actions_obsolete_workflow_cleanup_old", - target_path: ".github/workflows/old.yml", - provider_family: "file", - primitive: "supplied_obsolete_file_deletion", - facts: [] - } - ] - files = { - "README.md" => "# Example\n", - ".github/workflows/old.yml" => "name: old\n" - } - policy = described_class::DecisionPolicy.from_env({"force" => "true"}) - common = { - project_root: root, - recipes: recipes, - facts: {}, - files: files, - template_contents: {}, - decision_policy: policy, - env: {}, - events: nil - } - - sequential = described_class.send(:execute_recipe_reports, **common.merge(strategy: "sequential")) - classified = described_class.send(:execute_recipe_reports, **common.merge(strategy: "classified")) - normalize = lambda do |reports| - Marshal.load(Marshal.dump(reports)).each do |report| - report.dig(:metadata)&.delete(:duration_ms) - report.dig(:report_envelope, :report, :metadata)&.delete(:duration_ms) - end - end - - expect(normalize.call(classified)).to eq(normalize.call(sequential)) - expect(classified.map { |report| report.fetch(:recipe_name) }).to eq(%w[noop_main_only github_actions_obsolete_workflow_cleanup_old]) - end - end - - it "keeps Ractor-backed classified recipe planning equivalent to main-Ractor classified planning" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-ractor-planning", tmp_root) do |root| - write_tree(root, { - ".github/workflows/old.yml" => "name: old\n", - ".github/workflows/stale.yml" => "name: stale\n", - "README.md" => "# Example\n" - }) - recipes = [ - { - name: "github_actions_obsolete_workflow_cleanup_old", - target_path: ".github/workflows/old.yml", - provider_family: "file", - primitive: "supplied_obsolete_file_deletion", - facts: [] - }, - { - name: "noop_main_only", - target_path: "README.md", - provider_family: "markdown", - primitive: "noop", - facts: [] - }, - { - name: "github_actions_obsolete_workflow_cleanup_stale", - target_path: ".github/workflows/stale.yml", - provider_family: "file", - primitive: "supplied_obsolete_file_deletion", - facts: [] - } - ] - files = { - ".github/workflows/old.yml" => "name: old\n", - ".github/workflows/stale.yml" => "name: stale\n", - "README.md" => "# Example\n" - } - policy = described_class::DecisionPolicy.from_env({"force" => "true"}) - common = { - project_root: root, - recipes: recipes, - facts: {}, - files: files, - template_contents: {}, - decision_policy: policy, - env: {}, - events: nil, - strategy: "classified" - } - normalize = lambda do |reports| - Marshal.load(Marshal.dump(reports)).each do |report| - report.dig(:metadata)&.delete(:duration_ms) - report.dig(:report_envelope, :report, :metadata)&.delete(:duration_ms) - end - end - - main_ractor = described_class.send(:execute_recipe_reports, **common.merge(workers: 0)) - workers = described_class.send(:execute_recipe_reports, **common.merge(workers: 2)) - - expect(normalize.call(workers)).to eq(normalize.call(main_ractor)) - expect(workers.map { |report| report.fetch(:recipe_name) }).to eq(%w[ - github_actions_obsolete_workflow_cleanup_old - noop_main_only - github_actions_obsolete_workflow_cleanup_stale - ]) - end - end - - it "turns changed recipe reports into deterministic write intents" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-write-intents", tmp_root) do |root| - write_report = { - changed: true, - relative_path: "lib/example.rb", - recipe_name: "generated_lib_file", - final_content: "# generated\n", - metadata: {destination_existed: false} - } - delete_report = { - changed: true, - relative_path: ".github/workflows/old.yml", - recipe_name: "github_actions_obsolete_workflow_cleanup_old", - metadata: {delete_file: true} - } - unchanged_report = write_report.merge(changed: false) - - write_intent = described_class.send(:write_intent_from_recipe_report, root, write_report) - delete_intent = described_class.send(:write_intent_from_recipe_report, root, delete_report) - - expect(write_intent.action).to eq(:write) - expect(write_intent.relative_path).to eq("lib/example.rb") - expect(write_intent.absolute_path).to eq(File.join(root, "lib/example.rb")) - expect(write_intent.content).to eq("# generated\n") - expect(write_intent.recipe_name).to eq("generated_lib_file") - expect(write_intent.metadata).to eq(destination_existed: false) - expect(delete_intent.action).to eq(:delete) - expect(delete_intent.content).to be_nil - expect(described_class.send(:write_intent_from_recipe_report, root, unchanged_report)).to be_nil - end - end - - it "commits write intents sequentially while preserving current apply behavior" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-write-intent-commit", tmp_root) do |root| - FileUtils.mkdir_p(File.join(root, "obsolete")) - File.write(File.join(root, "obsolete/file.txt"), "old\n") - write_intent = described_class::WriteIntent.new( - relative_path: "lib/example.rb", - absolute_path: File.join(root, "lib/example.rb"), - action: :write, - content: "# generated\n", - recipe_name: "generated_lib_file" - ) - delete_intent = described_class::WriteIntent.new( - relative_path: "obsolete/file.txt", - absolute_path: File.join(root, "obsolete/file.txt"), - action: :delete, - recipe_name: "obsolete_file_cleanup" - ) - - described_class.send(:commit_write_intent, write_intent) - described_class.send(:commit_write_intent, delete_intent) - - expect(File.read(File.join(root, "lib/example.rb"))).to eq("# generated\n") - expect(File).not_to exist(File.join(root, "obsolete/file.txt")) - end - end - - it "normalizes GitHub remote source URLs structurally" do - expect(described_class.normalize_git_source_url("git@github.com:rubythems/them-server.git")).to eq( - "https://github.com/rubythems/them-server" - ) - expect(described_class.normalize_git_source_url("https://github.com/rubythems/them-server.git")).to eq( - "https://github.com/rubythems/them-server" - ) - expect(described_class.normalize_git_source_url("https://gitlab.com/rubythems/them-server.git")).to eq( - "https://gitlab.com/rubythems/them-server.git" - ) - end - - it "removes obsolete SimpleCov setup calls from .simplecov while preserving local config" do - content = <<~RUBY - # kettle-jem:freeze - # local coverage note - # kettle-jem:unfreeze - require "kettle-soup-cover" - require "kettle/soup/cover/config" - - SimpleCov.configure do - track_files "lib/**/*.rb" - custom_setting "kept" - end - - SimpleCov.start do - track_files "lib/**/*.rb" - track_files "exe/*.rb" - end - - custom_after_config - RUBY - - output = described_class.send(:normalize_simplecov_template_source, content) - - expect(output).to include("# local coverage note") - expect(output).to include("SimpleCov.configure do") - expect(output).to include('cover "lib/**/*.rb"') - expect(output).to include('custom_setting "kept"') - expect(output).to include("custom_after_config") - expect(output).not_to include('require "kettle-soup-cover"') - expect(output).not_to include('require "kettle/soup/cover/config"') - expect(output).not_to include("SimpleCov.start") - expect(output).not_to include("track_files") - end - - it "removes obsolete .simplecov keep_destination config during config sync" do - content = <<~YAML - defaults: - preference: "template" - files: - AGENTS.md: - strategy: accept_template - .simplecov: - strategy: keep_destination - Rakefile: - strategy: accept_template - YAML - - output = described_class.send(:sync_kettle_config_env_overrides, content, {}) - - expect(output).to include("AGENTS.md:") - expect(output).to include("Rakefile:") - expect(output).not_to include(".simplecov:") - end - - it "normalizes stale spec helper SimpleCov bootstrap without dropping local wiring" do - content = <<~RUBY - # frozen_string_literal: true - - require_relative "support/local" - - begin - require "kettle-soup-cover" - if Kettle::Soup::Cover::DO_COV - require "simplecov" - SimpleCov.start - end - require "simplecov" if Kettle::Soup::Cover::DO_COV # `.simplecov` is run here! - rescue LoadError => error - raise error unless error.message.include?("kettle") - end - - require "kettle/test/rspec" - require "example" - RUBY - - output = described_class.send(:normalize_spec_helper_simplecov_template_source, content) - - expect(output).to include('require_relative "support/local"') - expect(output.scan('require "simplecov"').size).to eq(1) - expect(output.index('require "simplecov"')).to be < output.index('require "kettle/soup/cover/config"') - expect(output.index('require "kettle/soup/cover/config"')).to be < output.index("SimpleCov.start") - expect(output).not_to include("`.simplecov` is run here") - end - - it "upgrades modifier-form spec helper SimpleCov bootstrap to the kettle-soup-cover startup block" do - content = <<~RUBY - # frozen_string_literal: true - - # For code coverage, must be required before all application / gem / library code. - begin - require "kettle-soup-cover" - require "simplecov" if Kettle::Soup::Cover::DO_COV # `.simplecov` is run here! - rescue LoadError => error - raise error unless error.message.include?("kettle") - end - - require "active_record" - require "example" - RUBY - - output = described_class.send(:normalize_spec_helper_simplecov_template_source, content) - - expect(output).to include('require "kettle-soup-cover"') - expect(output).to include("if Kettle::Soup::Cover::DO_COV") - expect(output).to include('require "simplecov" # Loads project-local .simplecov.') - expect(output).to include('require "kettle/soup/cover/config"') - expect(output).to include("SimpleCov.start") - expect(output.index('require "kettle/soup/cover/config"')).to be < output.index("SimpleCov.start") - expect(output.index("SimpleCov.start")).to be < output.index('require "active_record"') - expect(output).not_to include("`.simplecov` is run here") - end - - it "updates old generated SimpleCov files in the same templating pass that removes keep_destination" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-simplecov-migration", tmp_root) do |root| - write_tree(root, { - "example.gemspec" => <<~RUBY, - Gem::Specification.new do |spec| - spec.name = "example" - spec.summary = "Example gem" - spec.required_ruby_version = ">= 3.2" - end - RUBY - ".structuredmerge/kettle-jem.yml" => <<~YAML, - project_emoji: 🧪 - templates: - root: packaged - apply: true - entries: - - .structuredmerge/kettle-jem.yml - - .simplecov - - spec/spec_helper.rb - rubygems: - entrypoint_require: "example" - namespace: "Example" - files: - .simplecov: - strategy: keep_destination - YAML - ".simplecov" => <<~RUBY, - require "kettle-soup-cover" - require "kettle/soup/cover/config" - - SimpleCov.start do - track_files "lib/**/*.rb" - end - RUBY - "spec/spec_helper.rb" => <<~RUBY - # frozen_string_literal: true - - begin - require "kettle-soup-cover" - if Kettle::Soup::Cover::DO_COV - require "simplecov" - SimpleCov.start - end - require "simplecov" if Kettle::Soup::Cover::DO_COV # `.simplecov` is run here! - rescue LoadError => error - raise error unless error.message.include?("kettle") - end - - require "example" - RUBY - }) - - apply = described_class.apply_project(root, env: {}, run_options: {accept: true}) - simplecov = apply.fetch(:recipe_reports).find { |candidate| candidate.fetch(:relative_path) == ".simplecov" } - spec_helper = apply.fetch(:recipe_reports).find { |candidate| candidate.fetch(:relative_path) == "spec/spec_helper.rb" } - kettle_config = apply.fetch(:recipe_reports).find { |candidate| candidate.fetch(:relative_path) == ".structuredmerge/kettle-jem.yml" } - - expect(simplecov.fetch(:final_content)).to include('cover "lib/**/*.rb"') - expect(simplecov.fetch(:final_content)).not_to include("SimpleCov.start") - expect(simplecov.fetch(:final_content)).not_to include('require "kettle-soup-cover"') - expect(simplecov.fetch(:final_content)).not_to include('require "kettle/soup/cover/config"') - expect(spec_helper.fetch(:final_content).scan('require "simplecov"').size).to eq(1) - expect(spec_helper.fetch(:final_content)).to include('require "kettle/soup/cover/config"') - expect(spec_helper.fetch(:final_content)).to include("SimpleCov.start") - expect(kettle_config.fetch(:final_content)).not_to include(".simplecov:") - end - end - - it "converts an implementation-shaped gem into a shim profile gem" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-shim-slice", tmp_root) do |root| - write_tree( - root, - { - ".structuredmerge/kettle-jem.yml" => <<~YAML, - project_emoji: "*" - - rubygems: - name: legacy-shim - entrypoint_require: legacy/shim - namespace: Legacy::Shim - min_ruby: "2.2" - - shim: - replacement_gem: legacy-shim2 - replacement_require: legacy-shim2 - legacy_requires: - - legacy/strategies/shim - - templates: - root: packaged - apply: true - profile: shim - - tokens: - author: - name: Ada Lovelace - email: ada@example.com - YAML - "legacy-shim.gemspec" => <<~RUBY, - Gem::Specification.new do |spec| - spec.name = "legacy-shim" - spec.version = "0.1.0" - spec.authors = ["Ada Lovelace"] - spec.email = ["ada@example.com"] - spec.summary = "Legacy implementation" - spec.description = "Legacy implementation" - spec.homepage = "https://github.com/example/legacy-shim" - spec.licenses = ["MIT"] - spec.required_ruby_version = ">= 2.2" - spec.add_dependency "old-implementation" - end - RUBY - "README.md" => "# Old implementation README\n", - "Gemfile" => "source \"https://rubygems.org\"\n", - "Rakefile" => "task :old\n", - "lib/legacy/shim.rb" => "require \"old-implementation\"\n", - "lib/legacy/shim/version.rb" => "module Legacy; module Shim; VERSION = \"0.1.0\"; end; end\n", - "lib/legacy/strategies/shim.rb" => "class OldStrategy; end\n", - "spec/lib/legacy/strategies/shim_spec.rb" => "RSpec.describe OldStrategy\n", - "spec/support/helper.rb" => "# old helper\n", - "gemfiles/legacy.gemfile" => "gem \"old-implementation\"\n", - ".github/workflows/coverage.yml" => "name: Coverage\n" - } - ) - system("git", "-C", root, "init", "--quiet") - system("git", "-C", root, "add", "legacy-shim.gemspec", "lib/legacy/shim/version.rb") - - plan = described_class.plan_project(root, env: {}) - expect(plan.dig(:facts, :shim, :replacement_gem)).to eq("legacy-shim2") - recipe_names = plan[:recipe_pack][:recipes].map { |recipe| recipe[:name] } - expect(recipe_names).to include("template_source_application_legacy_shim_gemspec") - expect(recipe_names).to include("template_shim_profile_cleanup_gemfiles_legacy_gemfile") - expect(recipe_names).to include("template_shim_profile_cleanup_spec_lib_legacy_strategies_shim_spec_rb") - - described_class.apply_project(root, env: {}) - - generated = project_files( - root, - [ - "legacy-shim.gemspec", - "lib/legacy/shim.rb", - "lib/legacy/shim/version.rb", - "lib/legacy/strategies/shim.rb", - "spec/shim_spec.rb", - "README.md", - "Gemfile", - "gemfiles/modular/templating.gemfile", - "gemfiles/modular/templating_local.gemfile", - "gemfiles/legacy.gemfile", - "spec/lib/legacy/strategies/shim_spec.rb", - ".github/workflows/coverage.yml" - ] - ) - expect(generated[:"legacy-shim.gemspec"]).to include(%(spec.version = "0.1.0")) - expect(generated[:"legacy-shim.gemspec"]).not_to include(%(load "lib/legacy/shim/version.rb")) - expect(generated[:"legacy-shim.gemspec"]).to include("LICENSE.md") - expect(generated[:"legacy-shim.gemspec"]).not_to include("LICENSE.txt") - expect(generated[:"legacy-shim.gemspec"]).to include(%(spec.add_dependency "legacy-shim2")) - expect_gemspec_dependency_declared(generated[:"legacy-shim.gemspec"], "kettle-dev", kind: :add_development_dependency) - expect_gemspec_dependency_declared(generated[:"legacy-shim.gemspec"], "kettle-test", kind: :add_development_dependency) - expect_gemspec_dependency_declared(generated[:"legacy-shim.gemspec"], "stone_checksums", kind: :add_development_dependency) - expect(generated[:Gemfile]).to include(%(source "https://gem.coop")) - expect_gem_dependency_declared(generated[:Gemfile], "nomono") - expect(generated[:Gemfile]).to include(%(eval_gemfile "gemfiles/modular/templating.gemfile")) - expect(generated[:Gemfile]).not_to include("git:") - expect_gem_dependency_declared(generated[:"gemfiles/modular/templating.gemfile"], "kettle-jem") - expect(generated[:"gemfiles/modular/templating_local.gemfile"]).to include(%(structuredmerge_local_gems = %w[)) - expect(generated[:"legacy-shim.gemspec"]).not_to include("old-implementation") - expect(generated[:"lib/legacy/shim.rb"]).to include(%(require "legacy-shim2")) - expect(generated[:"lib/legacy/strategies/shim.rb"]).to include(%(require "legacy/shim")) - expect(generated[:"spec/shim_spec.rb"]).to include(%(require("legacy-shim2"))) - expect(generated[:"README.md"]).to include("compatibility shim for `legacy-shim2`") - expect(generated[:"gemfiles/legacy.gemfile"]).to be_nil - expect(generated[:"spec/lib/legacy/strategies/shim_spec.rb"]).to be_nil - expect(generated[:".github/workflows/coverage.yml"]).to be_nil - - File.write(File.join(root, "legacy-shim.gemspec"), <<~RUBY) - Gem::Specification.new do |spec| - load "lib/legacy/shim/version.rb" - spec.name = "legacy-shim" - spec.version = Legacy::Shim::Version::VERSION - spec.authors = ["Ada Lovelace"] - spec.email = ["ada@example.com"] - spec.summary = "Legacy implementation" - spec.description = "Legacy implementation" - spec.homepage = "https://github.com/example/legacy-shim" - spec.licenses = ["MIT"] - spec.required_ruby_version = ">= 2.2" - end - RUBY - expect { described_class.plan_project(root, env: {}) }.not_to raise_error - end - end - - it "plans and applies the RubyGems thin vertical slice" do - expected_recipe_names = contract.fetch(:canonical_recipes).map { |recipe| recipe.fetch(:name).to_s } - expect(contract.fetch(:validated_ecosystems)).to include(fixture.fetch(:ecosystem)) - expect(fixture.fetch(:expected).fetch(:facts).keys).to include( - *contract.fetch(:required_fact_groups).map(&:to_sym), - contract.fetch(:ecosystem_fact_groups).fetch(:rubygems).to_sym - ) - - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-thin-slice", tmp_root) do |root| - write_tree(root, fixture.fetch(:inputs).fetch(:files)) - - plan = described_class.plan_project(root, env: {}) - expect(json_ready(plan[:facts])).to eq(json_ready(fixture.fetch(:expected).fetch(:facts))) - recipe_names = plan[:recipe_pack][:recipes].map { |recipe| recipe[:name] } - expect(recipe_names.take(expected_recipe_names.length)).to eq(expected_recipe_names) - expect(recipe_names).to include("github_funding_yml") - expect(recipe_names).not_to include("github_actions_ci") - expect(recipe_names).not_to include("github_actions_framework_ci") - expect(recipe_names).to include(a_string_starting_with("github_actions_obsolete_workflow_cleanup_")) - expect(recipe_names).to include("rakefile_scaffold_cleanup") - expect(recipe_names).to include(a_string_starting_with("github_actions_workflow_snippets_")) - expect(plan[:changed_files]).to eq(fixture.fetch(:expected).fetch(:changed_files)) - expect(plan[:recipe_reports].map { |report| report[:request_envelope][:kind] }.uniq).to eq( - [contract.fetch(:report_contract).fetch(:request_envelope_kind)] - ) - expect(plan[:recipe_reports].map { |report| report[:report_envelope][:kind] }.uniq).to eq( - [contract.fetch(:report_contract).fetch(:report_envelope_kind)] - ) - rakefile_report = plan[:recipe_reports].find { |report| report.fetch(:recipe_name) == "rakefile_scaffold_cleanup" } - expect(rakefile_report.dig(:request_envelope, :request, :runtime_context, :delete_selectors).length).to eq(4) - expect(rakefile_report.dig(:report_envelope, :report, :step_reports, 0, :metadata, :deleted_ranges)).to eq(4) - expect(rakefile_report.fetch(:final_content)).to include("task :custom") - expect(rakefile_report.fetch(:final_content)).not_to include("bundler/gem_tasks") - expect(rakefile_report.fetch(:final_content)).not_to include("RSpec::Core::RakeTask") - funding_yml_report = plan[:recipe_reports].find { |report| report.fetch(:recipe_name) == "github_funding_yml" } - expect(funding_yml_report.fetch(:final_content)).to include("tidelift: rubygems/example") - expect(funding_yml_report.fetch(:final_content)).to include("open_collective: example") - custom_ci_report = plan[:recipe_reports].find do |report| - report.fetch(:relative_path) == ".github/workflows/custom-ci.yml" - end - expect(custom_ci_report.fetch(:final_content)).to include("permissions:") - expect(custom_ci_report.fetch(:final_content)).to include("concurrency:") - expect_pinned_action(custom_ci_report.fetch(:final_content), "actions/checkout") - expect_pinned_action(custom_ci_report.fetch(:final_content), "ruby/setup-ruby") - expect(custom_ci_report.fetch(:final_content)).to include("Upload coverage to Coveralls") - expect_pinned_action(custom_ci_report.fetch(:final_content), "qltysh/qlty-action/coverage") - expect(custom_ci_report.fetch(:final_content)).to include("oidc: true") - expect(custom_ci_report.fetch(:final_content)).not_to include("QLTY_COVERAGE_TOKEN") - expect(custom_ci_report.fetch(:final_content)).to include("Code Coverage Summary Report") - expect(custom_ci_report.fetch(:final_content)).to include("ruby: [\"3.2\", \"3.3\"]") - obsolete_workflow_report = plan[:recipe_reports].find do |report| - report.fetch(:relative_path) == ".github/workflows/ancient.yml" - end - expect(obsolete_workflow_report.fetch(:metadata).fetch(:delete_file)).to be(true) - expect(obsolete_workflow_report.dig(:report_envelope, :report, :step_reports, 0, :metadata, :deleted_file)).to eq( - ".github/workflows/ancient.yml" - ) - - apply = described_class.apply_project(root, env: {}) - expect(apply[:changed_files]).to eq(fixture.fetch(:expected).fetch(:changed_files)) - expect(normalize_workflow_pins_for_spec(project_files(root, fixture.fetch(:expected).fetch(:files).keys.map(&:to_s)))).to eq( - normalize_workflow_pins_for_spec(fixture.fetch(:expected).fetch(:files)) - ) - end - end - - it "does not synthesize a standalone coverage workflow outside the packaged template inventory" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-coverage-slice", tmp_root) do |root| - write_tree(root, { - "example.gemspec" => <<~RUBY, - Gem::Specification.new do |spec| - spec.name = "example" - spec.summary = "Example gem" - spec.required_ruby_version = ">= 3.2" - end - RUBY - ".kettle-jem.yml" => <<~YAML - workflows: - coverage: - enabled: true - appraisal: coverage - command: rake test - YAML - }) - - plan = described_class.plan_project(root, env: {}) - recipe_names = plan[:recipe_reports].map { |report| report.fetch(:recipe_name) } - expect(recipe_names).not_to include("github_actions_coverage_ci") - expect(plan[:changed_files]).not_to include(".github/workflows/coverage.yml") - end - end - - it "removes legacy tests workflow files as obsolete GitHub Actions workflows" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-obsolete-tests-workflow-slice", tmp_root) do |root| - write_tree(root, { - "example.gemspec" => <<~RUBY, - Gem::Specification.new do |spec| - spec.name = "example" - spec.summary = "Example gem" - end - RUBY - ".kettle-jem.yml" => [ - "templates:", - " root: packaged", - " apply: true", - " entries: []", - "" - ].join("\n"), - ".github/workflows/tests.yml" => <<~YAML - name: Tests - on: - pull_request: - branches: - - '!*' - YAML - }) - - apply = described_class.apply_project(root, env: {}) - report = apply.fetch(:recipe_reports).find { |candidate| candidate.fetch(:relative_path) == ".github/workflows/tests.yml" } - - expect(report.fetch(:recipe_name)).to eq("github_actions_obsolete_workflow_cleanup_github_workflows_tests_yml") - expect(report.fetch(:metadata).fetch(:delete_file)).to be(true) - expect(File).not_to exist(File.join(root, ".github/workflows/tests.yml")) - end - end - - it "projects configured workflow exec_cmd into GitHub workflow templates" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-workflow-exec-cmd-slice", tmp_root) do |root| - write_tree(root, { - "example.gemspec" => <<~RUBY, - Gem::Specification.new do |spec| - spec.name = "example" - spec.summary = "Example gem" - spec.required_ruby_version = ">= 3.2" - end - RUBY - ".kettle-jem.yml" => [ - "workflows:", - " exec_cmd: rake spec", - "templates:", - " root: template", - " apply: true", - " entries:", - " - .github/workflows/current.yml", - "" - ].join("\n"), - "template/.github/workflows/current.yml.example" => <<~YAML - name: Current - jobs: - test: - strategy: - matrix: - include: - - ruby: "3.2" - exec_cmd: "{KJ|CI:EXEC_CMD}" - steps: - - run: bundle exec ${{ matrix.exec_cmd }} - YAML - }) - - apply = described_class.apply_project(root, env: {"KJ_EXEC_CMD" => "kettle-test"}) - workflow_report = apply.fetch(:recipe_reports).find do |candidate| - candidate.fetch(:relative_path) == ".github/workflows/current.yml" - end - - expect(workflow_report.fetch(:final_content)).to include('exec_cmd: "kettle-test"') - end - end - - it "normalizes obsolete Appraisal-relative workflow exec_cmd values" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-workflow-obsolete-exec-cmd-slice", tmp_root) do |root| - write_tree(root, { - "example.gemspec" => <<~RUBY, - Gem::Specification.new do |spec| - spec.name = "example" - spec.summary = "Example gem" - spec.required_ruby_version = ">= 3.2" - end - RUBY - ".kettle-jem.yml" => <<~YAML, - workflows: - exec_cmd: env KETTLE_TEST_RUNNER=rspec kettle-test -I ../spec --options ../.rspec ../spec - templates: - root: template - apply: true - entries: - - .github/workflows/current.yml - YAML - "template/.github/workflows/current.yml.example" => <<~YAML - name: Current - jobs: - test: - strategy: - matrix: - include: - - ruby: "3.2" - exec_cmd: "{KJ|CI:EXEC_CMD}" - steps: - - run: bundle exec ${{ matrix.exec_cmd }} - YAML - }) - - apply = described_class.apply_project(root, env: {}) - workflow_report = apply.fetch(:recipe_reports).find do |candidate| - candidate.fetch(:relative_path) == ".github/workflows/current.yml" - end - - expect(workflow_report.fetch(:final_content)).to include('exec_cmd: "kettle-test"') - end - end - - it "fails closed for GitHub YAML template merges when the YAML provider reports a ProcessResult adapter failure" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-github-yaml-provider-regression", tmp_root) do |root| - write_tree(root, { - "example.gemspec" => <<~RUBY, - Gem::Specification.new do |spec| - spec.name = "example" - spec.summary = "Example gem" - end - RUBY - ".kettle-jem.yml" => <<~YAML, - project: destination - templates: - root: template - apply: true - entries: - - .github/FUNDING.yml - - .kettle-jem.yml - YAML - ".github/FUNDING.yml" => <<~YAML, - github: [destination] - custom: - - https://destination.example/fund - YAML - "template/.github/FUNDING.yml.example" => <<~YAML, - github: [template] - tidelift: rubygems/example - YAML - "template/.kettle-jem.yml.example" => <<~YAML - project: template - generated: true - YAML - }) - allow(Psych::Merge).to receive(:merge_yaml).and_return( - ok: false, - diagnostics: [{ - severity: "error", - category: "unsupported_feature", - message: "undefined method '[]' for an instance of TreeSitterLanguagePack::ProcessResult" - }], - policies: [] - ) - - expect do - described_class.plan_project(root, env: {}) - end.to raise_error(ArgumentError, /failed to merge yaml template \.github\/FUNDING\.yml: provider adapter failure/) - end - end - - it "fails closed for Gemfile template merges when Prism cannot merge the Ruby DSL" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-gemfile-provider-regression", tmp_root) do |root| - write_tree(root, { - "example.gemspec" => <<~RUBY, - Gem::Specification.new do |spec| - spec.name = "example" - spec.summary = "Example gem" - end - RUBY - ".kettle-jem.yml" => <<~YAML, - templates: - root: template - apply: true - entries: - - Gemfile - files: - Gemfile: - strategy: merge - YAML - "Gemfile" => <<~RUBY, - source "https://gem.coop" - gem "example", path: "." - RUBY - "template/Gemfile.example" => <<~RUBY - source "https://gem.coop" - gemspec - gem "beta-tool" - RUBY - }) - allow(Prism::Merge).to receive(:merge_ruby).and_return( - ok: false, - diagnostics: [{ - severity: "error", - category: "unsupported_feature", - message: "undefined method '[]' for an instance of TreeSitterLanguagePack::ProcessResult" - }], - policies: [] - ) - - expect do - described_class.plan_project(root, env: {}) - end.to raise_error(ArgumentError, /failed to merge gemfile template Gemfile: provider adapter failure/) - end - end - - it "strictly merges arbitrary top-level Gemfile dependencies from a template directory" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-gemfile-arbitrary-dependency-merge", tmp_root) do |root| - write_tree(root, { - "example.gemspec" => <<~RUBY, - Gem::Specification.new do |spec| - spec.name = "example" - spec.summary = "Example gem" - end - RUBY - ".kettle-jem.yml" => <<~YAML, - templates: - root: template - apply: true - entries: - - gemfiles/modular/custom.gemfile - YAML - "gemfiles/modular/custom.gemfile" => <<~RUBY, - source "https://example.invalid" - - gem "alpha-tool", ">= 0.alpha" - RUBY - "template/gemfiles/modular/custom.gemfile.example" => <<~RUBY - source "https://example.invalid" - - gem "alpha-tool", ">= 0.template" - gem "beta-tool", "~> 0.beta", require: false - RUBY - }) - - report = described_class.apply_project(root, env: {}).fetch(:recipe_reports).find do |candidate| - candidate.fetch(:recipe_name) == "template_source_application_gemfiles_modular_custom_gemfile" - end - - expect(report.fetch(:final_content)).to eq(<<~RUBY) - source "https://example.invalid" - - gem "alpha-tool", ">= 0.template" - gem "beta-tool", "~> 0.beta", require: false - RUBY - end - end - - it "strictly merges arbitrary Gemfile dependency blocks and comments from a template directory" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-gemfile-arbitrary-block-merge", tmp_root) do |root| - write_tree(root, { - "example.gemspec" => <<~RUBY, - Gem::Specification.new do |spec| - spec.name = "example" - spec.summary = "Example gem" - end - RUBY - ".kettle-jem.yml" => <<~YAML, - templates: - root: template - apply: true - entries: - - gemfiles/modular/custom.gemfile - YAML - "gemfiles/modular/custom.gemfile" => <<~RUBY, - source "https://example.invalid" - - # destination alpha comment - gem "alpha-tool", ">= 0.alpha" - - group :test do - gem "alpha-test", ">= 0.alpha-test" - end - RUBY - "template/gemfiles/modular/custom.gemfile.example" => <<~RUBY - source "https://example.invalid" - - # template beta comment - gem "beta-tool", "~> 0.beta", require: false - - group :test do - gem "alpha-test", ">= 0.template-test" - gem "beta-test", "~> 0.beta-test" - end - - platforms :ruby do - gem "beta-runtime", ">= 0.beta-runtime" - end - RUBY - }) - - report = described_class.apply_project(root, env: {}).fetch(:recipe_reports).find do |candidate| - candidate.fetch(:recipe_name) == "template_source_application_gemfiles_modular_custom_gemfile" - end - - expect(report.fetch(:final_content)).to eq(<<~RUBY) - source "https://example.invalid" - - # template beta comment - gem "beta-tool", "~> 0.beta", require: false - - # destination alpha comment - gem "alpha-tool", ">= 0.alpha" - - group :test do - gem "alpha-test", ">= 0.template-test" - gem "beta-test", "~> 0.beta-test" - end - - platforms :ruby do - gem "beta-runtime", ">= 0.beta-runtime" - end - RUBY - end - end - - it "merges custom workflow YAML snippets without replacing destination jobs" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-custom-workflow-yaml-slice", tmp_root) do |root| - write_tree(root, { - "example.gemspec" => <<~RUBY, - Gem::Specification.new do |spec| - spec.name = "example" - spec.summary = "Example gem" - end - RUBY - ".github/workflows/custom-ci.yml" => <<~YAML - name: Custom CI - on: - pull_request: - jobs: - spec: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - uses: ruby/setup-ruby@v1 - - uses: actions/upload-artifact@v4 - - uses: codecov/codecov-action@v6 - - uses: coverallsapp/github-action@main - - uses: actions/dependency-review-action@v4 - - uses: github/codeql-action/init@v4 - - uses: github/codeql-action/autobuild@v4 - - uses: github/codeql-action/analyze@v4 - - uses: pozil/auto-assign-issue@v2 - - uses: apache/skywalking-eyes/dependency@v0.8.0 - - uses: sarisia/actions-status-discord@v1 - - name: Project-specific check - run: bundle exec rake custom - YAML - }) - - plan = described_class.plan_project(root, env: {}) - report = plan.fetch(:recipe_reports).find do |candidate| - candidate.fetch(:relative_path) == ".github/workflows/custom-ci.yml" - end - content = report.fetch(:final_content) - - expect(report.fetch(:recipe_name)).to start_with("github_actions_workflow_snippets_") - expect(content).to include("permissions:\n contents: read") - expect(content).to include("concurrency:\n group: \"${{ github.workflow }}-${{ github.ref }}\"") - expect_pinned_action(content, "actions/checkout") - expect_pinned_action(content, "ruby/setup-ruby") - expect_pinned_action(content, "actions/upload-artifact") - expect_pinned_action(content, "codecov/codecov-action") - expect_pinned_action(content, "coverallsapp/github-action") - expect_pinned_action(content, "actions/dependency-review-action") - expect_pinned_action(content, "github/codeql-action/init") - expect_pinned_action(content, "github/codeql-action/autobuild") - expect_pinned_action(content, "github/codeql-action/analyze") - expect_pinned_action(content, "pozil/auto-assign-issue") - expect_pinned_action(content, "apache/skywalking-eyes/dependency") - expect_pinned_action(content, "sarisia/actions-status-discord") - expect(content).to include("Project-specific check") - expect(content).to include("bundle exec rake custom") - expect(content).to end_with("\n") - end - end - - it "normalizes GitHub Action refs when merging packaged workflow templates" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-packaged-workflow-action-pin-slice", tmp_root) do |root| - write_tree(root, { - "example.gemspec" => <<~RUBY, - Gem::Specification.new do |spec| - spec.name = "example" - spec.summary = "Example gem" - spec.required_ruby_version = ">= 2.4" - end - RUBY - ".kettle-jem.yml" => <<~YAML, - ruby: - test_minimum: "2.4" - templates: - root: packaged - apply: true - entries: - - .github/workflows/ruby-2.4.yml - YAML - ".github/workflows/ruby-2.4.yml" => <<~YAML - name: Ruby 2.4 - jobs: - test: - runs-on: ubuntu-22.04 - steps: - - name: Checkout - uses: actions/checkout@v6 - - name: Setup Ruby & RubyGems - uses: ruby/setup-ruby@v1 - YAML - }) - - plan = described_class.plan_project(root, env: {}) - report = plan.fetch(:recipe_reports).find do |candidate| - candidate.fetch(:relative_path) == ".github/workflows/ruby-2.4.yml" - end - content = report.fetch(:final_content) - - expect(report.fetch(:recipe_name)).to start_with("template_source_application_") - expect_pinned_action(content, "actions/checkout") - expect_pinned_action(content, "ruby/setup-ruby") - expect(content).not_to include("actions/checkout@v6") - expect(content).not_to include("ruby/setup-ruby@v1") - end - end - - it "preserves newer destination GitHub Action SHA pins when accepting workflow templates" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-workflow-action-pin-preserve-slice", tmp_root) do |root| - newer_checkout_sha = "1111111111111111111111111111111111111111" - template_checkout_sha = "9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0" - destination_setup_ruby_sha = "2222222222222222222222222222222222222222" - write_tree(root, { - "example.gemspec" => <<~RUBY, - Gem::Specification.new do |spec| - spec.name = "example" - spec.summary = "Example gem" - spec.required_ruby_version = ">= 3.2" - end - RUBY - ".kettle-jem.yml" => <<~YAML, - templates: - root: template - apply: true - entries: - - .github/workflows/current.yml - patterns: - - path: ".github/workflows/**" - strategy: accept_template - YAML - ".github/workflows/current.yml" => <<~YAML, - name: Current - jobs: - test: - steps: - - uses: actions/checkout@#{newer_checkout_sha} # v7.0.0 - - uses: ruby/setup-ruby@#{destination_setup_ruby_sha} # v1.0.0 - YAML - "template/.github/workflows/current.yml.example" => <<~YAML - name: Current - jobs: - test: - steps: - - uses: actions/checkout@#{template_checkout_sha} # v7.0.0 - - uses: ruby/setup-ruby@v1 - YAML - }) - - plan = described_class.plan_project(root, env: {}) - report = plan.fetch(:recipe_reports).find do |candidate| - candidate.fetch(:relative_path) == ".github/workflows/current.yml" - end - content = report.fetch(:final_content) - - expect(report.dig(:metadata, :template_source_preference)).to include(strategy: "accept_template") - expect(content).to include("actions/checkout@#{newer_checkout_sha} # v7.0.0") - expect(content).not_to include("actions/checkout@#{template_checkout_sha} # v7.0.0") - expect_pinned_action(content, "ruby/setup-ruby") - expect(content).not_to include("ruby/setup-ruby@v1") - expect(report.dig(:metadata, :stale_github_workflow_template_pins)).to contain_exactly( - include( - path: ".github/workflows/current.yml", - action: "actions/checkout", - version: "v7.0.0", - preserved_sha: newer_checkout_sha, - template_sha: template_checkout_sha - ) - ) - expect(plan.fetch(:warnings)).to contain_exactly( - include("GitHub Actions template pins appear stale for .github/workflows/current.yml") - ) - end - end - - it "normalizes GitHub Action refs in existing workflows outside the active recipe set" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-unmanaged-workflow-action-pin-slice", tmp_root) do |root| - write_tree(root, { - "example.gemspec" => <<~RUBY, - Gem::Specification.new do |spec| - spec.name = "example" - spec.summary = "Example gem" - spec.required_ruby_version = ">= 2.4" - end - RUBY - ".kettle-jem.yml" => <<~YAML, - repository: - topology: monorepo-subproject - YAML - ".github/workflows/current.yml" => <<~YAML - name: Current MRI - jobs: - test: - runs-on: ubuntu-latest - steps: - - name: Checkout - uses: actions/checkout@v6 - - name: Setup Ruby - uses: ruby/setup-ruby@v1 - YAML - }) - - apply = described_class.apply_project(root, env: {}, run_options: {accept: true}) - content = File.read(File.join(root, ".github/workflows/current.yml")) - post_step = apply.fetch(:post_apply_steps).find { |step| step.fetch(:name) == "github_actions_pin_sync" } - - expect(post_step).to include( - status: "applied", - changed_files: [".github/workflows/current.yml"] - ) - expect_pinned_action(content, "actions/checkout") - expect_pinned_action(content, "ruby/setup-ruby") - expect(content).not_to include("actions/checkout@v6") - expect(content).not_to include("ruby/setup-ruby@v1") - end - end - - it "deletes skipped packaged workflows that already exist" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-skipped-workflow-action-pin-slice", tmp_root) do |root| - write_tree(root, { - "example.gemspec" => <<~RUBY, - Gem::Specification.new do |spec| - spec.name = "example" - spec.summary = "Example gem" - spec.required_ruby_version = ">= 2.4" - end - RUBY - ".kettle-jem.yml" => <<~YAML, - ruby: - test_minimum: "2.3" - templates: - root: packaged - apply: true - entries: - - .github/workflows/ruby-2.3.yml - YAML - ".github/workflows/ruby-2.3.yml" => <<~YAML - name: Ruby 2.3 - jobs: - test: - runs-on: ubuntu-22.04 - steps: - - uses: actions/checkout@v6 - - uses: ruby/setup-ruby@v1 - YAML - }) - - plan = described_class.plan_project(root, env: {}) - report = plan.fetch(:recipe_reports).find do |candidate| - candidate.fetch(:relative_path) == ".github/workflows/ruby-2.3.yml" - end - - expect(report.fetch(:recipe_name)).to start_with("github_actions_inactive_packaged_workflow_cleanup_") - expect(report.fetch(:metadata)).to include(delete_file: true) - end - end - - it "deletes legacy dashed Ruby workflow files when dotted packaged workflows replace them" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-legacy-dashed-ruby-workflow-slice", tmp_root) do |root| - write_tree(root, { - "example.gemspec" => <<~RUBY, - Gem::Specification.new do |spec| - spec.name = "example" - spec.summary = "Example gem" - spec.required_ruby_version = ">= 2.4" - end - RUBY - ".kettle-jem.yml" => <<~YAML, - ruby: - test_minimum: "2.4" - templates: - root: packaged - apply: true - entries: - - .github/workflows/ruby-2.4.yml - YAML - ".github/workflows/ruby-2-4.yml" => <<~YAML - name: MRI 2.4 - jobs: - test: - runs-on: ubuntu-22.04 - steps: - - uses: actions/checkout@v6 - YAML - }) - - plan = described_class.plan_project(root, env: {}) - report = plan.fetch(:recipe_reports).find do |candidate| - candidate.fetch(:relative_path) == ".github/workflows/ruby-2-4.yml" - end - - expect(report.fetch(:recipe_name)).to start_with("github_actions_inactive_packaged_workflow_cleanup_") - expect(report.fetch(:metadata)).to include(delete_file: true) - end - end - - it "does not allow generated CI Ruby floor below 2.4" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-ci-floor-minimum-slice", tmp_root) do |root| - write_tree(root, { - "example.gemspec" => <<~RUBY, - Gem::Specification.new do |spec| - spec.name = "example" - spec.summary = "Example gem" - spec.required_ruby_version = ">= 2.3" - end - RUBY - ".kettle-jem.yml" => <<~YAML, - ruby: - test_minimum: "2.3" - templates: - root: packaged - apply: true - entries: - - .github/workflows/ruby-2.3.yml - YAML - ".github/workflows/ruby-2.3.yml" => <<~YAML - name: Ruby 2.3 - jobs: - test: - runs-on: ubuntu-22.04 - steps: - - uses: actions/checkout@v6 - - uses: ruby/setup-ruby@v1 - YAML - }) - - plan = described_class.plan_project(root, env: {}) - expect(plan.dig(:facts, :ci, :test_min_ruby)).to eq("2.4") - report = plan.fetch(:recipe_reports).find do |candidate| - candidate.fetch(:relative_path) == ".github/workflows/ruby-2.3.yml" - end - - expect(report.fetch(:recipe_name)).to start_with("github_actions_inactive_packaged_workflow_cleanup_") - expect(report.fetch(:metadata)).to include(delete_file: true) - end - end - - it "deletes skipped packaged workflows for monorepo subgem profiles" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-subgem-skipped-workflow-slice", tmp_root) do |root| - write_tree(root, { - "example.gemspec" => <<~RUBY, - Gem::Specification.new do |spec| - spec.name = "example" - spec.summary = "Example gem" - spec.required_ruby_version = ">= 2.4" - end - RUBY - ".kettle-jem.yml" => <<~YAML, - templates: - profile: monorepo-subgem - root: packaged - apply: true - entries: - - .github/workflows/ruby-2.3.yml - YAML - ".github/workflows/ruby-2.3.yml" => <<~YAML - name: Ruby 2.3 - jobs: - test: - runs-on: ubuntu-22.04 - steps: - - uses: actions/checkout@v6 - - uses: ruby/setup-ruby@v1 - YAML - }) - - plan = described_class.plan_project(root, env: {}) - report = plan.fetch(:recipe_reports).find do |candidate| - candidate.fetch(:relative_path) == ".github/workflows/ruby-2.3.yml" - end - - expect(report.fetch(:recipe_name)).to start_with("github_actions_inactive_packaged_workflow_cleanup_") - expect(report.fetch(:metadata)).to include(delete_file: true) - end - end - - it "keeps the packaged Discord notifier workflow opt-in via include" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-discord-workflow-opt-in-slice", tmp_root) do |root| - write_tree(root, { - "example.gemspec" => <<~RUBY, - Gem::Specification.new do |spec| - spec.name = "example" - spec.summary = "Example gem" - spec.required_ruby_version = ">= 3.2" - end - RUBY - ".kettle-jem.yml" => <<~YAML, - templates: - root: packaged - apply: true - entries: - - .github/workflows/discord-notifier.yml - YAML - ".github/workflows/discord-notifier.yml" => "name: stale notifier\n" - }) - - default_plan = described_class.plan_project(root, env: {}) - default_report = default_plan.fetch(:recipe_reports).find do |report| - report.fetch(:relative_path) == ".github/workflows/discord-notifier.yml" - end - expect(default_report.fetch(:recipe_name)).to start_with("github_actions_opt_in_workflow_cleanup_") - expect(default_report.fetch(:metadata)).to include(delete_file: true) - expect(default_plan.fetch(:changed_files)).to include(".github/workflows/discord-notifier.yml") - - included_plan = described_class.plan_project( - root, - env: {}, - run_options: {include: ".github/workflows/discord-notifier.yml"} - ) - expect(included_plan.fetch(:changed_files)).to include(".github/workflows/discord-notifier.yml") - included_report = included_plan.fetch(:recipe_reports).find do |report| - report.fetch(:relative_path) == ".github/workflows/discord-notifier.yml" - end - expect(included_report.fetch(:recipe_name)).to start_with("template_source_application_") - expect(included_report.fetch(:metadata)).not_to include(delete_file: true) - end - end - - it "generates packaged framework workflow matrices only when configured" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-framework-workflow-slice", tmp_root) do |root| - write_tree(root, { - "example.gemspec" => <<~RUBY, - Gem::Specification.new do |spec| - spec.name = "example" - spec.summary = "Example gem" - spec.required_ruby_version = ">= 3.2" - end - RUBY - ".kettle-jem.yml" => <<~YAML, - templates: - root: packaged - apply: true - entries: - - .github/workflows/framework-ci.yml - YAML - ".github/workflows/framework-ci.yml" => "name: stale framework\n" - }) - - unconfigured_plan = described_class.plan_project(root, env: {}) - unconfigured_report = unconfigured_plan.fetch(:recipe_reports).find do |candidate| - candidate.fetch(:relative_path) == ".github/workflows/framework-ci.yml" - end - expect(unconfigured_plan.fetch(:changed_files)).to include(".github/workflows/framework-ci.yml") - expect(unconfigured_report.fetch(:recipe_name)).to start_with("github_actions_inactive_packaged_workflow_cleanup_") - expect(unconfigured_report.fetch(:metadata)).to include(delete_file: true) - - FileUtils.rm_f(File.join(root, ".github/workflows/framework-ci.yml")) - missing_unconfigured_plan = described_class.plan_project(root, env: {}) - expect(missing_unconfigured_plan.fetch(:changed_files)).not_to include(".github/workflows/framework-ci.yml") - - File.write(File.join(root, ".kettle-jem.yml"), <<~YAML) - workflows: - preset: framework - framework_matrix: - dimension: rails - gem: rails - versions: - - "7.0" - - label: "7.1+" - slug: "7_1" - requirement: ">= 7.1" - appraisal: ruby-3-2 - gemfile_pattern: rails_{version} - templates: - root: packaged - apply: true - entries: - - Appraisals - - .github/workflows/framework-ci.yml - YAML - - configured_plan = described_class.plan_project(root, env: {}) - report = configured_plan.fetch(:recipe_reports).find do |candidate| - candidate.fetch(:relative_path) == ".github/workflows/framework-ci.yml" - end - content = report.fetch(:final_content) - - expect(configured_plan.fetch(:changed_files)).to include(".github/workflows/framework-ci.yml") - expect(content).to include("name: Rails CI") - expect(content).to include(' - "3.2"') - expect(content).to include(" framework:") - expect(content).to include(' - framework_version: "7.0"') - expect(content).to include(' appraisal: "rails-7-0"') - expect(content).to include(' - framework_version: "7.1+"') - expect(content).to include(' appraisal: "ruby-3-2"') - expect(YAML.safe_load(content)).to be_a(Hash) - expect(content).to include("Appraisal.root.gemfile") - expect(content).to include("framework:") - - appraisals_report = configured_plan.fetch(:recipe_reports).find do |candidate| - candidate.fetch(:relative_path) == "Appraisals" - end - appraisals_content = appraisals_report.fetch(:final_content) - expect(appraisals_content).to include('appraise "ruby-3-2" do') - expect(appraisals_content).to include('eval_gemfile "rails_7_1"') - expect(content).to include("bundle exec appraisal ${{ matrix.framework.appraisal }} install") - expect(content).not_to include("framework_version: []") - expect(content).not_to include("gemfile: []") - - gemfile_report = configured_plan.fetch(:recipe_reports).find do |candidate| - candidate.fetch(:relative_path) == "gemfiles/rails_7_1" - end - expect(gemfile_report.fetch(:final_content)).not_to include("eval_gemfile") - expect(gemfile_report.fetch(:final_content)).to include('gem "rails", ">= 7.1"') - - default_requirement_report = configured_plan.fetch(:recipe_reports).find do |candidate| - candidate.fetch(:relative_path) == "gemfiles/rails_7_0" - end - expect(default_requirement_report.fetch(:final_content)).to include('gem "rails", "~> 7.0.0"') - - appraisals_report = configured_plan.fetch(:recipe_reports).find do |candidate| - candidate.fetch(:relative_path) == "Appraisals" - end - expect(appraisals_report.fetch(:final_content)).to include('appraise "ruby-3-2" do') - expect(appraisals_report.fetch(:final_content)).to include('eval_gemfile "rails_7_1"') - end - end - - it "prunes packaged workflow files by configured engines and minimum Ruby" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-workflow-prune-slice", tmp_root) do |root| - write_tree(root, { - "example.gemspec" => <<~RUBY, - Gem::Specification.new do |spec| - spec.name = "example" - spec.summary = "Example gem" - spec.required_ruby_version = ">= 3.2" - end - RUBY - ".kettle-jem.yml" => <<~YAML - engines: - - ruby - templates: - root: packaged - apply: true - entries: - - .github/workflows/ruby-2.7.yml - - .github/workflows/ruby-3.2.yml - - .github/workflows/jruby.yml - - .github/workflows/truffle.yml - YAML - }) - - plan = described_class.plan_project(root, env: {}) - paths = plan.fetch(:recipe_reports).map { |report| report.fetch(:relative_path) } - - expect(paths).to include(".github/workflows/ruby-3.2.yml") - expect(paths).not_to include(".github/workflows/ruby-2.7.yml") - expect(paths).not_to include(".github/workflows/jruby.yml") - expect(paths).not_to include(".github/workflows/truffle.yml") - expect(plan.fetch(:changed_files)).to include(".github/workflows/ruby-3.2.yml") - expect(plan.fetch(:changed_files)).not_to include(".github/workflows/ruby-2.7.yml") - end - end - - it "prunes disabled engine jobs from packaged multi-engine workflows" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-workflow-job-prune-slice", tmp_root) do |root| - write_tree(root, { - "example.gemspec" => <<~RUBY, - Gem::Specification.new do |spec| - spec.name = "example" - spec.summary = "Example gem" - spec.required_ruby_version = ">= 4.0.0" - end - RUBY - ".kettle-jem.yml" => <<~YAML - engines: - - ruby - templates: - root: packaged - apply: true - entries: - - .github/workflows/heads.yml - - .github/workflows/dep-heads.yml - YAML - }) - - plan = described_class.plan_project(root, env: {}) - reports = plan.fetch(:recipe_reports).each_with_object({}) do |report, index| - index[report.fetch(:relative_path)] = report - end - - %w[.github/workflows/heads.yml .github/workflows/dep-heads.yml].each do |path| - content = reports.fetch(path).fetch(:final_content) - workflow = YAML.safe_load(content, permitted_classes: [], aliases: true) - - expect(workflow.fetch("jobs").keys).to eq(["ruby"]) - expect(content).not_to include(" truffleruby:") - expect(content).not_to include(" jruby:") - end - end - end - - it "prunes versioned engine workflows below minimum Ruby compatibility" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-engine-workflow-floor-slice", tmp_root) do |root| - write_tree(root, { - "example.gemspec" => <<~RUBY, - Gem::Specification.new do |spec| - spec.name = "example" - spec.summary = "Example gem" - spec.required_ruby_version = ">= 3.2" - end - RUBY - ".kettle-jem.yml" => <<~YAML, - engines: - - ruby - - jruby - - truffleruby - templates: - root: packaged - apply: true - entries: - - .github/workflows/jruby-9.1.yml - - .github/workflows/jruby-9.4.yml - - .github/workflows/jruby-10.0.yml - - .github/workflows/truffleruby-23.0.yml - - .github/workflows/truffleruby-23.1.yml - - .github/workflows/truffleruby-33.0.yml - YAML - ".github/workflows/truffleruby-23.2.yml" => <<~YAML - name: TruffleRuby 23.2 - jobs: - test: - strategy: - matrix: - include: - - ruby: "truffleruby-23.2" - YAML - }) - - plan = described_class.plan_project(root, env: {}) - paths = plan.fetch(:recipe_reports).map { |report| report.fetch(:relative_path) } - stale_report = plan.fetch(:recipe_reports).find do |report| - report.fetch(:relative_path) == ".github/workflows/truffleruby-23.2.yml" - end - - expect(paths).not_to include(".github/workflows/jruby-9.1.yml") - expect(paths).not_to include(".github/workflows/jruby-9.4.yml") - expect(paths).to include(".github/workflows/jruby-10.0.yml") - expect(paths).not_to include(".github/workflows/truffleruby-23.0.yml") - expect(paths).not_to include(".github/workflows/truffleruby-23.1.yml") - expect(paths).to include(".github/workflows/truffleruby-33.0.yml") - expect(stale_report).to include( - recipe_name: "github_actions_inactive_packaged_workflow_cleanup_github_workflows_truffleruby_23_2_yml", - changed: true - ) - expect(stale_report.dig(:metadata, :delete_file)).to be(true) - end - end - - it "prunes packaged gemfile templates below minimum Ruby" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-gemfile-floor-slice", tmp_root) do |root| - write_tree(root, { - "example.gemspec" => <<~RUBY, - Gem::Specification.new do |spec| - spec.name = "example" - spec.summary = "Example gem" - spec.required_ruby_version = ">= 2.4" - end - RUBY - ".kettle-jem.yml" => <<~YAML, - templates: - root: packaged - apply: true - entries: - - gemfiles/modular/x_std_libs/r2.3/libs.gemfile - - gemfiles/modular/x_std_libs/r2.4/libs.gemfile - YAML - "gemfiles/modular/x_std_libs/r2.3/libs.gemfile" => "stale ruby 2.3 gemfile\n" - }) - - plan = described_class.plan_project(root, env: {}) - r23_report = plan.fetch(:recipe_reports).find do |candidate| - candidate.fetch(:relative_path) == "gemfiles/modular/x_std_libs/r2.3/libs.gemfile" - end - paths = plan.fetch(:recipe_reports).map { |report| report.fetch(:relative_path) } - - expect(paths).to include("gemfiles/modular/x_std_libs/r2.4/libs.gemfile") - expect(r23_report.fetch(:recipe_name)).to start_with("template_inactive_packaged_cleanup_") - expect(r23_report.fetch(:metadata)).to include(delete_file: true) - end - end - - it "prunes packaged recording gemfile templates unless recording is configured" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-recording-gemfile-slice", tmp_root) do |root| - recording_path = "gemfiles/modular/recording/r4/recording.gemfile" - write_tree(root, { - "example.gemspec" => <<~RUBY, - Gem::Specification.new do |spec| - spec.name = "example" - spec.summary = "Example gem" - spec.required_ruby_version = ">= 3.2" - end - RUBY - ".kettle-jem.yml" => <<~YAML, - templates: - root: packaged - apply: true - entries: - - #{recording_path} - YAML - recording_path => "stale recording gemfile\n" - }) - - plan = described_class.plan_project(root, env: {}) - cleanup_report = plan.fetch(:recipe_reports).find do |candidate| - candidate.fetch(:relative_path) == recording_path - end - expect(cleanup_report.fetch(:recipe_name)).to start_with("template_inactive_packaged_cleanup_") - expect(cleanup_report.fetch(:metadata)).to include(delete_file: true) - - write_tree(root, { - ".kettle-jem.yml" => <<~YAML - workflows: - recording: true - templates: - root: packaged - apply: true - entries: - - #{recording_path} - YAML - }) - - opted_in = described_class.plan_project(root, env: {}) - paths = opted_in.fetch(:recipe_reports).map { |report| report.fetch(:relative_path) } - expect(paths).to include(recording_path) - expect(opted_in.fetch(:recipe_reports).find { |report| report.fetch(:relative_path) == recording_path }.fetch(:recipe_name)).not_to start_with("template_inactive_packaged_cleanup_") - end - end - - it "disables checkout credential persistence in packaged GitHub workflows" do - workflow_templates = Dir[File.join(described_class::PACKAGED_TEMPLATE_ROOT, ".github/workflows/*.{yml,yaml}.example")] - checkout_templates = workflow_templates.select { |path| File.read(path).include?("uses: actions/checkout@") } - - expect(checkout_templates).not_to be_empty - checkout_templates.each do |path| - expect(File.read(path)).to include("persist-credentials: false"), path - end - end - - it "updates root templating bootstrap dependencies before generated templating workflow commands run" do - workflow = File.read(File.join(described_class::PACKAGED_TEMPLATE_ROOT, ".github/workflows/templating.yml.example")) - - expect(workflow).to include("- name: Update templating bootstrap dependencies") - expect(workflow).to include("BUNDLE_GEMFILE: ${{ github.workspace }}/Gemfile") - expect(workflow).to include("K_JEM_TEMPLATING: \"true\"") - expect(workflow).to include("run: bundle update nomono") - expect(workflow.index("Update templating bootstrap dependencies")).to be < workflow.index("[Attempt 1] Appraisal") - end - - it "applies README style conditionals and reports missing integrations" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-readme-style-slice", tmp_root) do |root| - write_tree(root, { - "example.gemspec" => <<~RUBY, - Gem::Specification.new do |spec| - spec.name = "example" - spec.summary = "Example gem" - spec.licenses = ["PolyForm-Noncommercial-1.0.0"] - spec.required_ruby_version = ">= 3.2" - end - RUBY - ".kettle-jem.yml" => <<~YAML, - templates: - root: templates - apply: true - entries: - - README.md - readme: - integrations: - coveralls: false - YAML - "templates/README.md.example" => <<~MARKDOWN, - # 💎 Example - - [![CodeCov Test Coverage][🏀codecovi]][🏀codecov] [![Coveralls Test Coverage][🏀coveralls-img]][🏀coveralls] [![QLTY Test Coverage][🏀qlty-covi]][🏀qlty-cov] [![QLTY Maintainability][🏀qlty-mnti]][🏀qlty-mnt] [![CodeQL][🖐codeQL-img]][🖐codeQL] - - ## 🌻 Synopsis - - Template synopsis. - - ## 🦷 FLOSS Funding - - Funding template text. - - ## 🔐 Security - - Security template text. - - ## ⚙️ Configuration - - Template configuration. - - ## 🔧 Basic Usage - - Template usage. - MARKDOWN - "README.md" => <<~MARKDOWN - # 💎 Example - - ## 🌻 Synopsis - - Project synopsis. - - ## ⚙️ Configuration - - Project configuration. - - ## 🔧 Basic Usage - - Project usage. - MARKDOWN - }) - - plan = described_class.plan_project(root, env: {}) - report = plan[:recipe_reports].find { |candidate| candidate.fetch(:recipe_name) == "template_source_application_README_md" } - expect(report.fetch(:final_content)).to include("Project synopsis.") - expect(report.fetch(:final_content)).to include("Project configuration.") - expect(report.fetch(:final_content)).to include("Project usage.") - expect(report.fetch(:final_content)).not_to include("## 🦷 FLOSS Funding") - expect(report.fetch(:final_content)).not_to include("## 🔐 Security") - expect(report.fetch(:final_content)).not_to include("CodeCov Test Coverage") - expect(report.fetch(:final_content)).not_to include("Coveralls Test Coverage") - expect(report.fetch(:final_content)).not_to include("QLTY Test Coverage") - expect(report.fetch(:final_content)).not_to include("CodeQL") - expect(report.dig(:metadata, :readme_style, :floss_funding_enabled)).to be(false) - expect(report.dig(:metadata, :readme_style, :security_enabled)).to be(false) - expect(report.dig(:metadata, :readme_style, :disabled_integrations)).to contain_exactly("coveralls", "skywalking-eyes") - expect(report.dig(:metadata, :readme_style, :missing_integrations)).to contain_exactly("codecov", "qlty", "codeql") - end - end - - it "creates a package README through the packaged README style API" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-readme-style-api-slice", tmp_root) do |root| - write_tree(root, { - "example.gemspec" => <<~RUBY - Gem::Specification.new do |spec| - spec.name = "example" - spec.summary = "Example gem" - spec.homepage = "https://github.com/structuredmerge/example" - spec.licenses = ["MIT"] - spec.required_ruby_version = ">= 3.2" - end - RUBY - }) - - plan = described_class.plan_readme_style(root, env: {}) - expect(plan.fetch(:changed)).to be(true) - expect(plan.fetch(:final_content)).to include("# 💎 Example") - expect(plan.fetch(:final_content)).to include("## 🌻 Synopsis") - expect(plan.fetch(:final_content)).not_to include("root package-family guide") - expect(plan.fetch(:final_content)).not_to include("Tokens to Remember") - - apply = described_class.apply_readme_style(root, env: {}) - expect(apply.fetch(:changed)).to be(true) - expect(File.read(File.join(root, "README.md"))).to eq(apply.fetch(:final_content)) - expect(described_class.plan_readme_style(root, env: {}).fetch(:changed)).to be(false) - end - end - - it "merges CHANGELOG templates without replacing release history" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-changelog-template-merge-slice", tmp_root) do |root| - write_tree(root, { - "example.gemspec" => <<~RUBY, - Gem::Specification.new do |spec| - spec.name = "example" - spec.summary = "Example gem" - spec.homepage = "https://github.com/structuredmerge/example" - spec.licenses = ["MIT"] - spec.required_ruby_version = ">= 3.2" - end - RUBY - ".kettle-jem.yml" => <<~YAML, - templates: - root: templates - apply: true - entries: - - CHANGELOG.md - YAML - "templates/CHANGELOG.md.example" => <<~MARKDOWN, - # Changelog - - Template intro. - - ## [Unreleased] - - ### Added - - ### Changed - - ### Deprecated - - ### Removed - - ### Fixed - - ### Security - - [Unreleased]: https://example.com/template/compare/HEAD - MARKDOWN - "CHANGELOG.md" => <<~MARKDOWN - # Changelog - - Project intro. - - ## [Unreleased] - - ### Added - - Keep project pending feature. - - Keep nested detail. - - ### Fixed - - Keep project pending fix. - - ## [2.0.0] - 2026-01-02 - - - Existing release must survive. - - [Unreleased]: https://github.com/acme/example/compare/v2.0.0...HEAD - [2.0.0]: https://github.com/acme/example/compare/v1.0.0...v2.0.0 - MARKDOWN - }) - - plan = described_class.plan_project(root, env: {}) - report = plan[:recipe_reports].find { |candidate| candidate.fetch(:recipe_name) == "template_source_application_CHANGELOG_md" } - changelog = report.fetch(:final_content) - - expect(changelog).to include("Template intro.") - expect(changelog).not_to include("Project intro.") - expect(changelog).to include("Template intro.\n\n## [Unreleased]") - expect(changelog).to include("### Deprecated") - expect(changelog).to include("### Removed") - expect(changelog).to include("### Security") - expect(changelog).to include("[Unreleased]\n\n### Added\n\n- Keep project pending feature.") - expect(changelog).to include("### Fixed\n\n- Keep project pending fix.") - expect(changelog).to include("- Keep project pending feature.") - expect(changelog).to include(" - Keep nested detail.") - expect(changelog).to include("- Keep project pending fix.") - expect(changelog).to include("## [2.0.0] - 2026-01-02") - expect(changelog).to include("[2.0.0]: https://github.com/acme/example/compare/v1.0.0...v2.0.0") - expect(changelog).not_to include("[Unreleased]: https://example.com/template/compare/HEAD") - end - end - - it "applies transferable changelog entries once while preserving project entries" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-changelog-transfer-slice", tmp_root) do |root| - write_tree(root, { - "example.gemspec" => <<~RUBY, - Gem::Specification.new do |spec| - spec.name = "example" - spec.summary = "Example gem" - spec.homepage = "https://github.com/structuredmerge/example" - spec.licenses = ["MIT"] - spec.required_ruby_version = ">= 3.2" - end - RUBY - ".kettle-jem.yml" => <<~YAML, - templates: - root: packaged - apply: false - entries: - - README.md - YAML - "CHANGELOG.md" => <<~MARKDOWN - # Changelog - - ## [Unreleased] - - ### Added - - - Project-authored item. - - ### Changed - - - kettle-jem-template-20260716-001 - Shim gemspec manifests now include - `LICENSE.md` instead of nonexistent `LICENSE.txt`. - - ### Fixed - - - Existing fix. - MARKDOWN - }) - - plan = described_class.plan_project(root, env: {}) - report = plan[:recipe_reports].find { |candidate| candidate.fetch(:recipe_name) == "changelog_unreleased" } - changelog = report.fetch(:final_content) - - expect(changelog.scan("kettle-jem-template-20260716-001").size).to eq(1) - expect(changelog).to include("- Project-authored item.") - expect(changelog).to include("- Existing fix.") - end - end - - it "applies multiple missed transferable changelog entries without duplicating existing keys" do - changelog = <<~MARKDOWN - # Changelog - - ## [Unreleased] - - ### Changed - - - kettle-jem-template-20260716-001 - Already applied. - MARKDOWN - entries = [ - { - key: "kettle-jem-template-20260716-001", - lines: ["- kettle-jem-template-20260716-001 - Already applied."] - }, - { - key: "kettle-jem-template-20260716-002", - lines: [ - "- kettle-jem-template-20260716-002 - First missed transfer.", - " Continued detail." - ] - }, - { - key: "kettle-jem-template-20260716-003", - lines: ["- kettle-jem-template-20260716-003 - Second missed transfer."] - } - ] - - result = described_class.send(:apply_changelog_transfer_entries, changelog, entries) - - expect(result.scan("kettle-jem-template-20260716-001").size).to eq(1) - expect(result).to include("- kettle-jem-template-20260716-002 - First missed transfer.\n Continued detail.") - expect(result).to include("- kettle-jem-template-20260716-003 - Second missed transfer.") - end - - it "keeps the real CHANGELOG template in canonical Unreleased form" do - template = File.read(File.join(__dir__, "../lib/kettle/jem/templates/CHANGELOG.md.example")) - - expect(template).to include(<<~MARKDOWN) - ## [Unreleased] - - ### Added - - ### Changed - - ### Deprecated - - ### Removed - - ### Fixed - - ### Security - MARKDOWN - end - - it "fills configured README section partials while preserving unconfigured manual sections" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-readme-partials-slice", tmp_root) do |root| - write_tree(root, { - "example.gemspec" => <<~RUBY, - Gem::Specification.new do |spec| - spec.name = "example" - spec.summary = "Example gem" - spec.homepage = "https://github.com/structuredmerge/example" - spec.licenses = ["MIT"] - spec.required_ruby_version = ">= 3.2" - end - RUBY - ".kettle-jem.yml" => <<~YAML, - templates: - root: templates - readme: - section_partials: - synopsis: readme/partials/synopsis.md - configuration: readme/partials/configuration.md - basic_usage: readme/partials/basic_usage.md - YAML - "templates/readme/partials/synopsis.md.example" => "Generated synopsis for {KJ|GEM_NAME}.\\n", - "templates/readme/partials/configuration.md.example" => "Generated configuration.\\n", - "templates/readme/partials/basic_usage.md.example" => "Generated usage.\\n", - "README.md" => <<~MARKDOWN - # 💎 Example - - ## 🌻 Synopsis - - Old synopsis. - - ## ⚙️ Configuration - - Old configuration. - - ## 🔧 Basic Usage - - Old usage. - MARKDOWN - }) - - plan = described_class.plan_readme_style(root, env: {}) - expect(plan.fetch(:final_content)).to include("Generated synopsis for example.") - expect(plan.fetch(:final_content)).to include("Generated configuration.") - expect(plan.fetch(:final_content)).to include("Generated usage.") - expect(plan.fetch(:final_content)).not_to include("Old synopsis.") - expect(plan.fetch(:final_content)).not_to include("Old configuration.") - expect(plan.fetch(:final_content)).not_to include("Old usage.") - expect(plan.dig(:readme_style, :section_partials, "synopsis", :selected_source)).to eq( - "templates/readme/partials/synopsis.md.example" - ) - end - end - - it "loads packaged README section partials" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-packaged-readme-partials-slice", tmp_root) do |root| - write_tree(root, { - "kettle-jem.gemspec" => <<~RUBY, - Gem::Specification.new do |spec| - spec.name = "kettle-jem" - spec.summary = "Kettle Jem" - spec.homepage = "https://github.com/structuredmerge/kettle-jem" - spec.licenses = ["MIT"] - spec.required_ruby_version = ">= 3.2" - end - RUBY - ".kettle-jem.yml" => <<~YAML - templates: - root: packaged - readme: - section_partials: - synopsis: readme/partials/synopsis.md - configuration: readme/partials/configuration.md - basic_usage: readme/partials/basic_usage.md - YAML - }) - - plan = described_class.plan_readme_style(root, env: {}) - expect(plan.fetch(:final_content)).to include("Kettle template tool") - expect(plan.fetch(:final_content)).to include("Configuration shape") - expect(plan.fetch(:final_content)).to include("K_JEM_TEMPLATING=true kettle-jem install") - expect(plan.dig(:readme_style, :section_partials, "configuration", :source_root)).to eq("packaged") - end - end - - it "removes Open Collective funding when disabled" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-opencollective-slice", tmp_root) do |root| - write_tree(root, { - "example.gemspec" => <<~RUBY, - Gem::Specification.new do |spec| - spec.name = "example" - spec.summary = "Example gem" - spec.required_ruby_version = ">= 3.2" - end - RUBY - ".kettle-jem.yml" => <<~YAML, - funding: - open_collective: false - templates: - root: packaged - entries: - - README.md - - source: FUNDING.md.example - target: FUNDING.md - YAML - ".github/FUNDING.yml" => <<~YAML, - github: [example] - open_collective: example - YAML - ".opencollective.yml" => <<~YAML, - collective: example - YAML - ".github/workflows/opencollective.yml" => <<~YAML - name: Open Collective - on: - workflow_dispatch: - jobs: - test: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 - YAML - }) - - plan = described_class.plan_project(root, env: {}) - expect(plan.dig(:facts, :funding, :open_collective_disabled)).to be(true) - expect(plan.dig(:facts, :funding, :open_collective_disabled_source)).to eq("config.funding.open_collective") - expect(plan.dig(:facts, :funding, :open_collective_files)).to eq( - [".opencollective.yml", ".github/workflows/opencollective.yml"] - ) - expect(plan.dig(:facts, :funding, :urls)).not_to include("https://opencollective.com/example") - recipe_names = plan[:recipe_pack][:recipes].map { |recipe| recipe.fetch(:name) } - expect(recipe_names).to include("opencollective_disabled_file_cleanup_opencollective_yml") - expect(recipe_names).to include("opencollective_disabled_file_cleanup_github_workflows_opencollective_yml") - expect(recipe_names).not_to include("github_actions_workflow_snippets_github_workflows_opencollective_yml") - expect(plan.dig(:facts, :templates, :source_preferences)).to contain_exactly( - a_hash_including( - target_path: "README.md", - configured_source: "README.md", - selected_source: "README.md.example", - source_relative_path: "README.md.example", - source_root: "packaged", - selection_reason: "default_example_variant", - apply: false - ), - a_hash_including( - target_path: "FUNDING.md", - configured_source: "FUNDING.md.example", - selected_source: "FUNDING.md.no-osc.example", - source_relative_path: "FUNDING.md.no-osc.example", - source_root: "packaged", - selection_reason: "opencollective_disabled_no_osc_variant", - apply: false - ) - ) - template_report = plan[:recipe_reports].find do |report| - report.fetch(:recipe_name) == "template_source_preference_README_md" - end - expect(template_report.fetch(:changed)).to be(false) - expect(template_report.dig(:metadata, :template_source_preference, :selected_source)).to eq( - "README.md.example" - ) - expect(template_report.dig(:request_envelope, :request, :runtime_context, :template_source_preference, :selection_reason)).to eq( - "default_example_variant" - ) - funding_report = plan[:recipe_reports].find { |report| report.fetch(:recipe_name) == "github_funding_yml" } - expect(funding_report.fetch(:final_content)).not_to include("open_collective") - expect(funding_report.fetch(:final_content)).to include("tidelift: rubygems/example") - open_collective_reports = plan[:recipe_reports].select do |report| - report.fetch(:recipe_name).start_with?("opencollective_disabled_file_cleanup_") - end - expect(open_collective_reports.map { |report| report.fetch(:relative_path) }).to eq( - [".opencollective.yml", ".github/workflows/opencollective.yml"] - ) - expect(open_collective_reports).to all(satisfy { |report| report.fetch(:metadata).fetch(:delete_file) == true }) - - apply = described_class.apply_project(root, env: {}) - expect(apply[:changed_files]).to include(".opencollective.yml", ".github/workflows/opencollective.yml") - expect(File).not_to exist(File.join(root, ".opencollective.yml")) - expect(File).not_to exist(File.join(root, ".github/workflows/opencollective.yml")) - end - end - - it "applies the packaged README Open Collective recipe from the canonical template" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-packaged-readme-no-opencollective", tmp_root) do |root| - write_tree(root, { - "example.gemspec" => <<~RUBY, - Gem::Specification.new do |spec| - spec.name = "example" - spec.summary = "Example gem" - spec.homepage = "https://github.com/acme/example" - spec.licenses = ["MIT"] - spec.required_ruby_version = ">= 3.2" - end - RUBY - ".kettle-jem.yml" => <<~YAML - funding: - open_collective: false - templates: - root: packaged - apply: true - entries: - - README.md - files: - README.md: - strategy: accept_template - YAML - }) - - apply = described_class.apply_project(root, env: {}, run_options: {skip_commit: true}) - readme_report = apply.fetch(:recipe_reports).find do |report| - report.fetch(:recipe_name) == "template_source_application_README_md" - end - readme = readme_report.fetch(:final_content) - - expect(readme_report.dig(:metadata, :template_source_preference, :selected_source)).to eq("README.md.example") - expect(readme).not_to include("KJ:OPEN_COLLECTIVE") - expect(readme).not_to include("KJ:NO_OPEN_COLLECTIVE") - expect(readme).not_to include("opencollective") - expect(readme).not_to include("Open Collective") - expect(readme).not_to include("kettle-readme-backers") - expect(readme).not_to include("Open Source Helpers") - expect(readme).not_to include("codetriage") - expect(readme).to include("Apache SkyWalking Eyes License Compatibility Check") - expect(readme).to include("[![Sponsor Me on Github][🖇sponsor-img]][🖇sponsor]") - expect(File.read(File.join(root, "README.md"))).to eq(readme) - end - end - - it "updates the README KLOC badge from the current changelog release coverage" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-readme-kloc-slice", tmp_root) do |root| - write_tree(root, { - "example.gemspec" => <<~RUBY, - gem_version = Module.new.tap { |mod| Kernel.load("\#{__dir__}/lib/example/version.rb", mod) }::Example::Version::VERSION - - Gem::Specification.new do |spec| - spec.name = "example" - spec.summary = "Example gem" - spec.version = gem_version - spec.required_ruby_version = ">= 3.2" - end - RUBY - "lib/example/version.rb" => <<~RUBY, - module Example - module Version - VERSION = "1.2.3" - end - end - RUBY - ".kettle-jem.yml" => <<~YAML, - templates: - root: template - profile: full - apply: true - entries: - - README.md - files: - README.md: - strategy: accept_template - YAML - "CHANGELOG.md" => <<~MARKDOWN, - # Changelog - - ## [1.2.3] - 2026-05-23 - - ### Fixed - - - COVERAGE: 91.09% -- 3644/4000 lines in 80 files - MARKDOWN - "template/README.md.example" => <<~MARKDOWN - # {KJ|GEM_NAME} - - spec.add_dependency("{KJ|GEM_NAME}", "~> {KJ|GEM_MAJOR}.0") - - [🧮kloc-img]: https://img.shields.io/badge/KLOC-5.053-FFDD67.svg?style=for-the-badge&logo=YouTube&logoColor=blue - MARKDOWN - }) - - apply = described_class.apply_project(root, env: {}, run_options: {skip_commit: true}) - readme = apply.fetch(:recipe_reports).find do |report| - report.fetch(:recipe_name) == "template_source_application_README_md" - end.fetch(:final_content) - - expect(readme).to include("KLOC-4.000-FFDD67.svg") - expect(readme).to include('spec.add_dependency("example", "~> 1.0")') - expect(File.read(File.join(root, "README.md"))).to eq(readme) - end - end - - it "keeps shim-only template files out of full profile inventory" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-template-inventory-profile-slice", tmp_root) do |root| - template_root = File.join(root, "template") - write_tree(template_root, { - "README.md.example" => "readme", - "shim/.structuredmerge/kettle-jem.yml.example" => "{KJ|SHIMMED_GEM_NAME}" - }) - - full_entries = described_class.send( - :template_inventory_entries, - root, - template_root, - templates: {"profile" => "full"} - ) - shim_entries = described_class.send( - :template_inventory_entries, - root, - template_root, - templates: {"profile" => "shim"} - ) - - expect(full_entries).to include("README.md") - expect(full_entries).not_to include("shim/.structuredmerge/kettle-jem.yml") - expect(shim_entries).to include("shim/.structuredmerge/kettle-jem.yml") - end - end - - it "applies packaged monorepo subgem README badge policy" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-monorepo-subgem-readme-badge-policy", tmp_root) do |root| - write_tree(root, { - "ast-merge.gemspec" => <<~RUBY, - Gem::Specification.new do |spec| - spec.name = "ast-merge" - spec.summary = "Example gem" - spec.homepage = "https://github.com/structuredmerge/structuredmerge-ruby" - spec.licenses = ["AGPL-3.0-only", "PolyForm-Small-Business-1.0.0"] - spec.required_ruby_version = ">= 4.0" - end - RUBY - ".kettle-jem.yml" => <<~YAML, - project_emoji: "☯️" - readme: - package_family: structuredmerge - templates: - root: packaged - apply: true - profile: monorepo-subgem - entries: - - README.md - - FUNDING.md - files: - README.md: - strategy: accept_template - YAML - ".github/workflows/current.yml" => "name: Current\n" - }) - - apply = described_class.apply_project(root, env: {}, run_options: {skip_commit: true}) - readme = apply.fetch(:recipe_reports).find do |candidate| - candidate.fetch(:recipe_name) == "template_source_application_README_md" - end.fetch(:final_content) - funding = apply.fetch(:recipe_reports).find do |candidate| - candidate.fetch(:recipe_name) == "template_source_application_FUNDING_md" - end.fetch(:final_content) - - expect(readme).not_to include("Open Source Helpers") - expect(readme).not_to include("codetriage") - expect(readme).not_to include("OpenCollective Backers") - expect(readme).not_to include("OpenCollective Sponsors") - expect(readme).not_to include("opencollective") - expect(funding).not_to include("OpenCollective Backers") - expect(funding).not_to include("OpenCollective Sponsors") - expect(funding).not_to include("opencollective") - expect(readme).not_to include("Apache SkyWalking Eyes License Compatibility Check") - expect(readme).to include("https://github.com/structuredmerge/structuredmerge-ruby#package-family") - expect(readme).to include("root package-family guide") - expect(readme).to include("https://github.com/structuredmerge/structuredmerge-ruby/actions/workflows/current.yml") - expect(readme).not_to include("https://github.com/structuredmerge/ast-merge/actions/workflows/current.yml") - expect(readme).not_to include("actions/workflows/heads.yml") - expect(readme).to include("https://img.shields.io/badge/wiki-gitlab-943CD2.svg") - expect(readme).to include("https://img.shields.io/badge/wiki-github-943CD2.svg") - expect(readme).not_to include("https://img.shields.io/badge/wiki-examples-943CD2.svg") - end - end - - it "honors falsey Open Collective environment variables when config is absent" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-opencollective-env-slice", tmp_root) do |root| - write_tree(root, { - "example.gemspec" => <<~RUBY, - Gem::Specification.new do |spec| - spec.name = "example" - spec.summary = "Example gem" - spec.required_ruby_version = ">= 3.2" - end - RUBY - ".github/FUNDING.yml" => <<~YAML, - github: [example] - open_collective: example - YAML - ".opencollective.yml" => <<~YAML - collective: example - YAML - }) - - plan = described_class.plan_project(root, env: {"OPENCOLLECTIVE_HANDLE" => "NO"}) - expect(plan.dig(:facts, :funding, :open_collective_disabled)).to be(true) - expect(plan.dig(:facts, :funding, :open_collective_disabled_source)).to eq("env.OPENCOLLECTIVE_HANDLE") - expect(plan.dig(:facts, :funding, :open_collective_org)).to be_nil - expect(plan.dig(:facts, :funding, :urls)).not_to include("https://opencollective.com/example") - expect(plan[:changed_files]).to include(".opencollective.yml") - end - end - - it "lets explicit Open Collective config override falsey environment variables" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-opencollective-config-slice", tmp_root) do |root| - write_tree(root, { - "example.gemspec" => <<~RUBY, - Gem::Specification.new do |spec| - spec.name = "example" - spec.summary = "Example gem" - end - RUBY - ".kettle-jem.yml" => <<~YAML, - funding: - open_collective: true - YAML - ".github/FUNDING.yml" => <<~YAML - github: [example] - open_collective: example - YAML - }) - - plan = described_class.plan_project(root, env: {"FUNDING_ORG" => "0"}) - expect(plan.dig(:facts, :funding, :open_collective_disabled)).to be_nil - expect(plan.dig(:facts, :funding, :urls)).to include("https://opencollective.com/example") - end - end - - it "uses explicit Open Collective config as the template token source" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-opencollective-config-org-slice", tmp_root) do |root| - write_tree(root, { - "example.gemspec" => <<~RUBY, - Gem::Specification.new do |spec| - spec.name = "example" - spec.summary = "Example gem" - end - RUBY - ".kettle-jem.yml" => <<~YAML - funding: - open_collective: config-org - YAML - }) - - plan = described_class.plan_project(root, env: {}) - expect(plan.dig(:facts, :funding, :open_collective_org)).to eq("config-org") - expect(plan.dig(:facts, :funding, :open_collective_org_source)).to eq("config.funding.open_collective") - expect(plan.dig(:facts, :funding, :urls)).to include("https://opencollective.com/config-org") - expect(plan.dig(:facts, :templates, :tokens)).to include("KJ|OPENCOLLECTIVE_ORG" => "config-org") - end - end - - it "uses GitHub funding Open Collective config as the template token source" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-opencollective-github-funding-org-slice", tmp_root) do |root| - write_tree(root, { - "example.gemspec" => <<~RUBY, - Gem::Specification.new do |spec| - spec.name = "example" - spec.summary = "Example gem" - end - RUBY - ".github/FUNDING.yml" => <<~YAML, - open_collective: "github-funding-org" - YAML - ".kettle-jem.yml" => <<~YAML - templates: - root: packaged - YAML - }) - - plan = described_class.plan_project(root, env: {}) - expect(plan.dig(:facts, :funding, :open_collective_org)).to eq("github-funding-org") - expect(plan.dig(:facts, :funding, :open_collective_org_source)).to eq(".github/FUNDING.yml") - expect(plan.dig(:facts, :funding, :urls)).to include("https://opencollective.com/github-funding-org") - expect(plan.dig(:facts, :templates, :tokens)).to include( - "KJ|OPENCOLLECTIVE_ORG" => "github-funding-org" - ) - end - end - - it "defaults Open Collective template content to galtzo-floss when no org can be resolved" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-opencollective-default-org-slice", tmp_root) do |root| - write_tree(root, { - "example.gemspec" => <<~RUBY, - Gem::Specification.new do |spec| - spec.name = "example" - spec.summary = "Example gem" - end - RUBY - ".kettle-jem.yml" => <<~YAML - templates: - root: packaged - entries: - - .opencollective.yml - YAML - }) - - plan = described_class.plan_project(root, env: {}) - expect(plan.dig(:facts, :funding, :open_collective_disabled)).to be_nil - expect(plan.dig(:facts, :funding, :open_collective_org)).to eq("galtzo-floss") - expect(plan.dig(:facts, :funding, :open_collective_org_source)).to eq("fallback.default") - expect(plan.dig(:facts, :funding, :urls)).to include("https://opencollective.com/galtzo-floss") - expect(plan.dig(:facts, :templates, :tokens)).to include("KJ|OPENCOLLECTIVE_ORG" => "galtzo-floss") - expect(plan.fetch(:warnings)).to be_empty - end - end - - it "warns when the default Open Collective org differs from the GitHub org" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-opencollective-default-org-warning-slice", tmp_root) do |root| - write_tree(root, { - "example.gemspec" => <<~RUBY - Gem::Specification.new do |spec| - spec.name = "example" - spec.summary = "Example gem" - spec.homepage = "https://github.com/example-org/example" - spec.metadata["source_code_uri"] = "https://github.com/example-org/example" - end - RUBY - }) - - plan = described_class.plan_project(root, env: {}) - expect(plan.dig(:facts, :funding, :open_collective_org)).to eq("galtzo-floss") - expect(plan.dig(:facts, :funding, :open_collective_org_source)).to eq("fallback.default") - expect(plan.fetch(:warnings)).to contain_exactly( - 'OpenCollective funding org defaulted to "galtzo-floss", but the GitHub org is "example-org". Configure funding.open_collective or FUNDING_ORG if this is not intended.' - ) - end - end - - it "discovers Open Collective org from environment before .opencollective.yml" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-opencollective-env-org-slice", tmp_root) do |root| - write_tree(root, { - "example.gemspec" => <<~RUBY, - Gem::Specification.new do |spec| - spec.name = "example" - spec.summary = "Example gem" - end - RUBY - ".kettle-jem.yml" => <<~YAML, - templates: - root: template - entries: - - README.md - YAML - ".opencollective.yml" => <<~YAML, - collective: yaml-org - YAML - "template/README.md.example" => <<~MARKDOWN - # {KJ|OPENCOLLECTIVE_ORG} - MARKDOWN - }) - - plan = described_class.plan_project(root, env: {"FUNDING_ORG" => "env-org"}) - expect(plan.dig(:facts, :funding, :open_collective_org)).to eq("env-org") - expect(plan.dig(:facts, :funding, :open_collective_org_source)).to eq("env.FUNDING_ORG") - expect(plan.dig(:facts, :funding, :urls)).to include("https://opencollective.com/env-org") - expect(plan.dig(:facts, :templates, :tokens)).to include( - "KJ|GEM_NAME" => "example", - "KJ|GEM_NAME_PATH" => "example", - "KJ|NAMESPACE" => "Example", - "KJ|OPENCOLLECTIVE_ORG" => "env-org" - ) - template_report = plan[:recipe_reports].find do |report| - report.fetch(:recipe_name) == "template_source_preference_README_md" - end - expect(template_report.dig(:metadata, :template_tokens)).to include("KJ|OPENCOLLECTIVE_ORG" => "env-org") - expect(template_report.dig(:request_envelope, :request, :runtime_context, :template_tokens)).to include( - "KJ|OPENCOLLECTIVE_ORG" => "env-org" - ) - end - end - - it "discovers Open Collective org from .opencollective.yml when env is absent" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-opencollective-yaml-org-slice", tmp_root) do |root| - write_tree(root, { - "example.gemspec" => <<~RUBY, - Gem::Specification.new do |spec| - spec.name = "example" - spec.summary = "Example gem" - end - RUBY - ".opencollective.yml" => <<~YAML - org: yaml-org - YAML - }) - - plan = described_class.plan_project(root, env: {}) - expect(plan.dig(:facts, :funding, :open_collective_org)).to eq("yaml-org") - expect(plan.dig(:facts, :funding, :open_collective_org_source)).to eq(".opencollective.yml") - expect(plan.dig(:facts, :funding, :urls)).to include("https://opencollective.com/yaml-org") - end - end - - it "applies selected template content with projected tokens when configured" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-template-application-slice", tmp_root) do |root| - write_tree(root, { - "example.gemspec" => <<~RUBY, - Gem::Specification.new do |spec| - spec.name = "example" - spec.summary = "Example gem" - spec.authors = ["Jane Q Public"] - spec.email = ["jane@example.test"] - spec.required_ruby_version = ">= 3.2" - end - RUBY - ".kettle-jem.yml" => <<~YAML, - files: - README.md: - strategy: accept_template - templates: - root: template - apply: true - entries: - - README.md - YAML - "README.md" => "# old\n", - ".opencollective.yml" => <<~YAML, - collective: yaml-org - YAML - "template/README.md.example" => <<~MARKDOWN - # {KJ|GEM_NAME} - - Namespace: {KJ|NAMESPACE} - Path: {KJ|GEM_NAME_PATH} - Ruby: {KJ|MIN_RUBY} - Author: {KJ|AUTHOR:NAME} - Given: {KJ|AUTHOR:GIVEN_NAMES} - Family: {KJ|AUTHOR:FAMILY_NAMES} - Email: {KJ|AUTHOR:EMAIL} - Domain: {KJ|AUTHOR:DOMAIN} - Funding: {KJ|OPENCOLLECTIVE_ORG} - MARKDOWN - }) - - plan = described_class.plan_project(root, env: {}) - template_report = plan[:recipe_reports].find do |report| - report.fetch(:recipe_name) == "template_source_application_README_md" - end - expect(template_report.fetch(:changed)).to be(true) - expect(template_report.dig(:request_envelope, :request, :template_content)).to include("{KJ|GEM_NAME}") - expect(template_report.fetch(:final_content)).to eq(<<~MARKDOWN) - # 💎 Example - - Namespace: Example - Path: example - Ruby: 3.2 - Author: Jane Q Public - Given: Jane Q - Family: Public - Email: jane@example.test - Domain: example.test - Funding: yaml-org - MARKDOWN - expect(template_report.dig(:metadata, :template_tokens)).to include( - "KJ|AUTHOR:DOMAIN" => "example.test", - "KJ|AUTHOR:EMAIL" => "jane@example.test", - "KJ|AUTHOR:FAMILY_NAMES" => "Public", - "KJ|AUTHOR:GIVEN_NAMES" => "Jane Q", - "KJ|AUTHOR:NAME" => "Jane Q Public", - "KJ|GEM_NAME" => "example", - "KJ|GEM_NAME_PATH" => "example", - "KJ|MIN_RUBY" => "3.2", - "KJ|NAMESPACE" => "Example", - "KJ|OPENCOLLECTIVE_ORG" => "yaml-org" - ) - - described_class.apply_project(root, env: {}) - expect(File.read(File.join(root, "README.md"))).to eq(template_report.fetch(:final_content)) - end - end - - it "applies packaged template files when no project template root exists" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-packaged-template-slice", tmp_root) do |root| - write_tree(root, { - "example.gemspec" => <<~RUBY, - Gem::Specification.new do |spec| - spec.name = "example" - spec.summary = "Example gem" - spec.required_ruby_version = ">= 3.2" - spec.metadata["source_code_uri"] = "https://github.com/acme/example" - end - RUBY - ".kettle-jem.yml" => <<~YAML - project_emoji: "💎" - funding: - open_collective: collective-acme - tokens: - forge: - gh_user: acme - gl_user: acme - cb_user: acme - sh_user: acme - funding: - kofi: acme - paypal: acme - buymeacoffee: acme - liberapay: acme - social: - mastodon: "@acme@example.social" - bluesky: acme.example - linktree: acme - devto: acme - templates: - apply: true - entries: - - README.md - - FUNDING.md - YAML - }) - - plan = described_class.plan_project(root, env: {}) - template_report = plan[:recipe_reports].find do |report| - report.fetch(:recipe_name) == "template_source_application_README_md" - end - expect(template_report.dig(:metadata, :template_source_preference)).to include( - selected_source: "README.md.example", - source_relative_path: "README.md.example", - source_root: "packaged" - ) - expect(template_report.dig(:metadata, :template_source_preference, :source_root_path)).to end_with( - "lib/kettle/jem/templates" - ) - expect(template_report.dig(:request_envelope, :request, :template_content)).to include("# {KJ|PROJECT_EMOJI} {KJ|NAMESPACE}") - expect(template_report.fetch(:final_content)).to include("# 💎 Example") - expect(template_report.fetch(:final_content)).to include("Compatible with MRI Ruby 3.2+") - expect(template_report.fetch(:final_content)).to include("https://github.com/acme/example") - expect(template_report.fetch(:final_content)).to include("Sponsor collective-acme/example on Open Source Collective") - expect(template_report.fetch(:final_content)).to include("https://opencollective.com/collective-acme") - expect(template_report.fetch(:final_content)).not_to include("https://opencollective.com/acme") - - described_class.apply_project(root, env: {}) - expect(File.read(File.join(root, "README.md"))).to eq(template_report.fetch(:final_content)) - expect(File.read(File.join(root, "FUNDING.md"))).to include( - "Sponsor collective-acme/example on Open Source Collective" - ) - end - end - - it "trims README compatibility badges from minimum Ruby and engine config" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-readme-compatibility-badge-slice", tmp_root) do |root| - write_tree(root, { - "example.gemspec" => <<~RUBY, - Gem::Specification.new do |spec| - spec.name = "example" - spec.summary = "Example gem" - spec.required_ruby_version = ">= 3.2" - end - RUBY - ".kettle-jem.yml" => <<~YAML, - engines: - - ruby - files: - README.md: - strategy: accept_template - templates: - root: template - apply: true - entries: - - README.md - YAML - "template/README.md.example" => <<~MARKDOWN - # Example - - | Works with MRI Ruby 3 | [![Ruby 3.0 Compat][💎ruby-3.0i]][🚎4-lg-wf] [![Ruby 3.2 Compat][💎ruby-3.2i]][🚎6-s-wf] [![Ruby current Compat][💎ruby-c-i]][🚎11-c-wf] | - | Works with JRuby | [![JRuby 10.0 Compat][💎jruby-10.0i]][🚎11-j-wf] | - - [💎ruby-3.0i]: https://example/ruby-30 - [💎ruby-3.2i]: https://example/ruby-32 - [💎ruby-c-i]: https://example/ruby-current - [💎jruby-10.0i]: https://example/jruby-100 - [🚎4-lg-wf]: https://example/legacy - [🚎6-s-wf]: https://example/supported - [🚎11-c-wf]: https://example/current - [🚎11-j-wf]: https://example/jruby - MARKDOWN - }) - - apply = described_class.apply_project(root, env: {}) - report = apply.fetch(:recipe_reports).find do |candidate| - candidate.fetch(:recipe_name) == "template_source_application_README_md" - end - final_content = report.fetch(:final_content) - mri_line = final_content.lines.find { |line| line.start_with?("| Works with MRI Ruby 3") } - - expect(mri_line).not_to include("ruby-3.0i") - expect(mri_line).to include("ruby-3.2i") - expect(mri_line).to include("ruby-c-i") - expect(final_content).not_to include("Works with JRuby") - expect(final_content).not_to match(/^\[💎ruby-3\.0i\]:/) - expect(final_content).not_to match(/^\[💎jruby-10\.0i\]:/) - expect(final_content).not_to match(/^\[🚎4-lg-wf\]:/) - expect(final_content).not_to match(/^\[🚎11-j-wf\]:/) - expect(final_content).to match(/^\[💎ruby-3\.2i\]:/) - expect(final_content).to match(/^\[🚎6-s-wf\]:/) - expect(final_content).to match(/^\[🚎11-c-wf\]:/) - end - end - - it "keeps Ruby 2.3 in the untested README support badge set" do - template = File.read(File.join(__dir__, "..", "lib", "kettle", "jem", "templates", "README.md.example")) - ruby_2_line = template.lines.find { |line| line.start_with?("| Works with MRI Ruby 2") } - - expect(ruby_2_line).to include("![Ruby 2.2 Compat][💎ruby-2.2i] ![Ruby 2.3 Compat][💎ruby-2.3i]
        ") - expect(ruby_2_line).not_to include("[![Ruby 2.3 Compat][💎ruby-2.3i]][🚎ruby-2.3-wf]") - expect(template).to include("[💎ruby-2.3i]: https://img.shields.io/badge/Ruby-2.3_(%F0%9F%9A%ABCI)-AABBCC") - expect(template).not_to include("[🚎ruby-2.3-wf]:") - expect(template).not_to include("[🚎ruby-2.3-wfi]:") - end - - it "keeps current runtime badges distinct from prior-current engine badges" do - template = File.read(File.join(__dir__, "..", "lib", "kettle", "jem", "templates", "README.md.example")) - ruby_4_line = template.lines.find { |line| line.start_with?("| Works with MRI Ruby 4") } - jruby_line = template.lines.find { |line| line.start_with?("| Works with JRuby") } - truffleruby_line = template.lines.find { |line| line.start_with?("| Works with Truffle Ruby") } - - expect(ruby_4_line).to include("[![Ruby current Compat][💎ruby-c-i]][🚎11-c-wf]") - expect(ruby_4_line).not_to include("Ruby 4.0 Compat") - expect(jruby_line).to include("[![JRuby 10.0 Compat][💎jruby-10.0i]][🚎jruby-10.0-wf]") - expect(jruby_line).to include("[![JRuby current Compat][💎jruby-c-i]][🚎10-j-wf]") - expect(truffleruby_line).to include("[![Truffle Ruby 33.0 Compat][💎truby-33.0i]][🚎truby-33.0-wf]") - expect(truffleruby_line).to include("[![Truffle Ruby current Compat][💎truby-c-i]][🚎9-t-wf]") - expect(truffleruby_line).to include("[![Truffle Ruby HEAD Compat][💎truby-headi]][🚎3-hd-wf]") - end - - it "adds missing compatible versioned engine README badges when workflows exist" do - readme = <<~MARKDOWN - # Example - - | Works with JRuby | [![JRuby current Compat][💎jruby-c-i]][🚎10-j-wf] [![JRuby HEAD Compat][💎jruby-headi]][🚎3-hd-wf]| - | Works with Truffle Ruby | [![Truffle Ruby 24.2 Compat][💎truby-24.2i]][🚎truby-24.2-wf] [![Truffle Ruby 25.0 Compat][💎truby-25.0i]][🚎truby-25.0-wf] [![Truffle Ruby current Compat][💎truby-c-i]][🚎9-t-wf] [![Truffle Ruby HEAD Compat][💎truby-headi]][🚎3-hd-wf]| - - [🚎10-j-wf]: https://github.com/acme/example/actions/workflows/jruby.yml - [🚎3-hd-wf]: https://github.com/acme/example/actions/workflows/heads.yml - [🚎9-t-wf]: https://github.com/acme/example/actions/workflows/truffle.yml - [🚎truby-24.2-wf]: https://github.com/acme/example/actions/workflows/truffleruby-24.2.yml - [🚎truby-25.0-wf]: https://github.com/acme/example/actions/workflows/truffleruby-25.0.yml - [💎jruby-c-i]: https://img.shields.io/badge/JRuby-current-FBE742 - [💎jruby-headi]: https://img.shields.io/badge/JRuby-HEAD-FBE742 - [💎truby-24.2i]: https://img.shields.io/badge/Truffle_Ruby-24.2-34BCB1 - [💎truby-25.0i]: https://img.shields.io/badge/Truffle_Ruby-25.0-34BCB1 - [💎truby-c-i]: https://img.shields.io/badge/Truffle_Ruby-current-34BCB1 - [💎truby-headi]: https://img.shields.io/badge/Truffle_Ruby-HEAD-34BCB1 - MARKDOWN - - processed = described_class::ReadmePostProcessor.process( - content: readme, - min_ruby: Gem::Version.new("3.2"), - engines: %w[ruby jruby truffleruby], - workflow_paths: %w[ - .github/workflows/jruby.yml - .github/workflows/jruby-10.0.yml - .github/workflows/truffle.yml - .github/workflows/truffleruby-24.2.yml - .github/workflows/truffleruby-25.0.yml - .github/workflows/truffleruby-33.0.yml - .github/workflows/heads.yml - ] - ) - - expect(processed).to include("[![JRuby 10.0 Compat][💎jruby-10.0i]][🚎jruby-10.0-wf]") - expect(processed).to include("| Works with Truffle Ruby |") - expect(processed).to include("[🚎jruby-10.0-wf]: https://github.com/acme/example/actions/workflows/jruby-10.0.yml") - expect(processed).not_to include("[🚎truby-33.0-wf]: https://github.com/acme/example/actions/workflows/truffleruby-33.0.yml") - expect(processed).to include("[💎jruby-10.0i]: https://img.shields.io/badge/JRuby-10.0-FBE742") - expect(processed).not_to include("[💎truby-33.0i]: https://img.shields.io/badge/Truffle_Ruby-33.0-34BCB1") - end - - it "keeps same-minor Ruby compatibility badges for patch-level runtime floors" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-readme-patch-floor-badge-slice", tmp_root) do |root| - write_tree(root, { - "example.gemspec" => <<~RUBY, - Gem::Specification.new do |spec| - spec.name = "example" - spec.summary = "Example gem" - spec.required_ruby_version = ">= 2.2.2" - end - RUBY - ".kettle-jem.yml" => <<~YAML, - engines: - - ruby - files: - README.md: - strategy: accept_template - templates: - root: template - apply: true - entries: - - README.md - YAML - "template/README.md.example" => <<~MARKDOWN - # Example - - | Works with MRI Ruby 1 | ![Ruby 1.8 Compat][💎ruby-1.8i] ![Ruby 1.9 Compat][💎ruby-1.9i] | - | Works with MRI Ruby 2 | ![Ruby 2.1 Compat][💎ruby-2.1i] ![Ruby 2.2 Compat][💎ruby-2.2i] ![Ruby 2.3 Compat][💎ruby-2.3i] | - - [💎ruby-1.8i]: https://example/ruby-18 - [💎ruby-1.9i]: https://example/ruby-19 - [💎ruby-2.1i]: https://example/ruby-21 - [💎ruby-2.2i]: https://example/ruby-22 - [💎ruby-2.3i]: https://example/ruby-23 - MARKDOWN - }) - - apply = described_class.apply_project(root, env: {}) - report = apply.fetch(:recipe_reports).find do |candidate| - candidate.fetch(:recipe_name) == "template_source_application_README_md" - end - final_content = report.fetch(:final_content) - ruby_2_line = final_content.lines.find { |line| line.start_with?("| Works with MRI Ruby 2") } - - expect(final_content).not_to include("Works with MRI Ruby 1") - expect(ruby_2_line).not_to include("ruby-2.1i") - expect(ruby_2_line).to include("ruby-2.2i") - expect(ruby_2_line).to include("ruby-2.3i") - expect(final_content).not_to match(/^\[💎ruby-2\.1i\]:/) - expect(final_content).to match(/^\[💎ruby-2\.2i\]:/) - expect(final_content).to match(/^\[💎ruby-2\.3i\]:/) - end - end - - it "keeps the Ruby 1.8 compatibility badge for a Ruby 1.8.7 runtime floor" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-readme-ruby-18-badge-slice", tmp_root) do |root| - write_tree(root, { - "example.gemspec" => <<~RUBY, - Gem::Specification.new do |spec| - spec.name = "example" - spec.summary = "Example gem" - spec.required_ruby_version = ">= 1.8.7" - end - RUBY - ".kettle-jem.yml" => <<~YAML, - engines: - - ruby - files: - README.md: - strategy: accept_template - templates: - root: template - apply: true - entries: - - README.md - YAML - "template/README.md.example" => <<~MARKDOWN - # Example - - | Works with MRI Ruby 1 | ![Ruby 1.8 Compat][💎ruby-1.8i] ![Ruby 1.9 Compat][💎ruby-1.9i] | - - [💎ruby-1.8i]: https://example/ruby-18 - [💎ruby-1.9i]: https://example/ruby-19 - MARKDOWN - }) - - apply = described_class.apply_project(root, env: {}) - report = apply.fetch(:recipe_reports).find do |candidate| - candidate.fetch(:recipe_name) == "template_source_application_README_md" - end - final_content = report.fetch(:final_content) - mri_line = final_content.lines.find { |line| line.start_with?("| Works with MRI Ruby 1") } - - expect(mri_line).to include("ruby-1.8i") - expect(mri_line).to include("ruby-1.9i") - expect(final_content).to match(/^\[💎ruby-1\.8i\]:/) - expect(final_content).to match(/^\[💎ruby-1\.9i\]:/) - end - end - - it "filters template recipes with old only/include semantics" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-only-filter-slice", tmp_root) do |root| - write_tree(root, { - "example.gemspec" => <<~RUBY, - Gem::Specification.new do |spec| - spec.name = "example" - spec.summary = "Example gem" - spec.required_ruby_version = ">= 3.2" - spec.metadata["source_code_uri"] = "https://github.com/acme/example" - end - RUBY - ".kettle-jem.yml" => <<~YAML, - project_emoji: "💎" - templates: - root: template - apply: true - entries: - - README.md - YAML - "template/README.md.example" => "# Example\n" - }) - - plan = described_class.plan_project(root, env: {}, run_options: {only: "README.md"}) - paths = plan.fetch(:recipe_reports).map { |report| report.fetch(:relative_path) } - expect(paths.uniq).to eq(["README.md"]) - - apply = described_class.apply_project(root, env: {}, run_options: {only: "README.md"}) - expect(apply.fetch(:changed_files)).to eq(["README.md"]) - expect(File).to exist(File.join(root, "README.md")) - expect(File).not_to exist(File.join(root, ".github", "FUNDING.yml")) - - expanded = described_class.plan_project(root, env: {}, run_options: {only: "README.md", include: ".github/**"}) - expect(expanded.fetch(:recipe_reports).map { |report| report.fetch(:relative_path) }).to include( - "README.md", - ".github/FUNDING.yml" - ) - end - end - - it "bootstraps kettle config from packaged reference template when missing" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-config-bootstrap-slice", tmp_root) do |root| - write_tree(root, { - "example.gemspec" => <<~RUBY - Gem::Specification.new do |spec| - spec.name = "example" - spec.summary = "Example gem" - end - RUBY - }) - - plan = described_class.plan_project(root, env: {"KJ_MIN_DIVERGENCE_THRESHOLD" => "7"}) - bootstrap_report = plan[:recipe_reports].find do |report| - report.fetch(:recipe_name) == "kettle_config_bootstrap" - end - expect(bootstrap_report.fetch(:changed)).to be(true) - expect(bootstrap_report.fetch(:relative_path)).to eq(".structuredmerge/kettle-jem.yml") - expect(bootstrap_report.dig(:metadata, :bootstrap_file)).to be(true) - expect(bootstrap_report.dig(:metadata, :template_source_preference)).to include( - selected_source: ".structuredmerge/kettle-jem.yml.example", - source_relative_path: ".structuredmerge/kettle-jem.yml.example", - source_root: "packaged" - ) - expect(bootstrap_report.fetch(:final_content)).to include("# kettle-jem configuration file") - expect(bootstrap_report.fetch(:final_content)).to include("min_divergence_threshold: 7") - expect(bootstrap_report.fetch(:final_content)).to include("# tokens - values for {KJ|...} placeholders used across template files") - - described_class.apply_project(root, env: {"KJ_MIN_DIVERGENCE_THRESHOLD" => "7"}) - expect(File.read(File.join(root, ".structuredmerge/kettle-jem.yml"))).to eq(bootstrap_report.fetch(:final_content)) - end - end - - it "removes explicit RuboCop TargetRubyVersion when templating rubocop-lts config" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-rubocop-target-ruby-version-cleanup", tmp_root) do |root| - write_tree(root, { - "example.gemspec" => <<~RUBY, - Gem::Specification.new do |spec| - spec.name = "example" - spec.summary = "Example gem" - end - RUBY - ".kettle-jem.yml" => <<~YAML, - templates: - root: template - apply: true - entries: - - .rubocop.yml - YAML - ".rubocop.yml" => <<~YAML, - inherit_gem: - rubocop-lts: config/rubygem_rspec.yml - AllCops: - Exclude: - - tmp/**/* - TargetRubyVersion: 3.2 - Style/StringLiterals: - EnforcedStyle: double_quotes - YAML - "template/.rubocop.yml.example" => <<~YAML - inherit_gem: - rubocop-lts: config/rubygem_rspec.yml - AllCops: - Exclude: - - vendor/**/* - - "**/vendor/**/*" - RBS: - Enabled: true - YAML - }) - - apply = described_class.apply_project(root, env: {}, run_options: {skip_commit: true}) - report = apply.fetch(:recipe_reports).find { |candidate| candidate.fetch(:relative_path) == ".rubocop.yml" } - config = YAML.safe_load(report.fetch(:final_content)) - - expect(report.fetch(:changed)).to be(true) - expect(config.fetch("AllCops")).not_to have_key("TargetRubyVersion") - expect(config.dig("AllCops", "Exclude")).to eq(["tmp/**/*"]) - expect(config.dig("Style/StringLiterals", "EnforcedStyle")).to eq("double_quotes") - expect(config.dig("RBS", "Enabled")).to be(true) - expect(report.fetch(:final_content)).not_to include("TargetRubyVersion") - expect(File.read(File.join(root, ".rubocop.yml"))).to eq(report.fetch(:final_content)) - end - end - - it "activates the RSpec RuboCop plugin when templating the RSpec RuboCop overlay" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-rubocop-rspec-plugin", tmp_root) do |root| - write_tree(root, { - "example.gemspec" => <<~RUBY, - Gem::Specification.new do |spec| - spec.name = "example" - spec.summary = "Example gem" - end - RUBY - ".kettle-jem.yml" => <<~YAML, - templates: - root: packaged - apply: true - entries: - - .rubocop.yml - YAML - ".rubocop.yml" => <<~YAML - inherit_gem: - rubocop-lts: config/rubygem_rspec.yml - plugins: - - rubocop-on-rbs - - rubocop-packaging - YAML - }) - - apply = described_class.apply_project(root, env: {}, run_options: {skip_commit: true}) - report = apply.fetch(:recipe_reports).find { |candidate| candidate.fetch(:relative_path) == ".rubocop.yml" } - config = YAML.safe_load(report.fetch(:final_content)) - - expect(config.fetch("plugins")).to include("rubocop-rspec", "rubocop-on-rbs", "rubocop-packaging") - expect(File.read(File.join(root, ".rubocop.yml"))).to eq(report.fetch(:final_content)) - end - end - - it "seeds bootstrap config licenses from the gemspec" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-config-bootstrap-licenses", tmp_root) do |root| - write_tree(root, { - "example.gemspec" => <<~RUBY - Gem::Specification.new do |spec| - spec.name = "example" - spec.summary = "Example gem" - spec.licenses = ["AGPL-3.0-only", "PolyForm-Small-Business-1.0.0"] - end - RUBY - }) - - plan = described_class.plan_project(root, env: {}) - bootstrap_report = plan.fetch(:recipe_reports).find do |report| - report.fetch(:recipe_name) == "kettle_config_bootstrap" - end - - expect(bootstrap_report.fetch(:final_content)).to include(<<~YAML) - licenses: - - AGPL-3.0-only - - PolyForm-Small-Business-1.0.0 - YAML - expect(bootstrap_report.fetch(:final_content)).not_to include(<<~YAML) - licenses: - - MIT - YAML - expect(bootstrap_report.fetch(:final_content)).to include(<<~YAML) - license_eye: - dependency_licenses: - - name: simplecov-rcov - version: 0.3.7 - license: MIT - YAML - end - end - - it "seeds bootstrap config minimum Ruby from the gemspec" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-config-bootstrap-min-ruby", tmp_root) do |root| - write_tree(root, { - "example.gemspec" => <<~RUBY - Gem::Specification.new do |spec| - spec.name = "example" - spec.summary = "Example gem" - spec.required_ruby_version = ">= 3.2.0" - end - RUBY - }) - - plan = described_class.plan_project(root, env: {}) - bootstrap_report = plan.fetch(:recipe_reports).find do |report| - report.fetch(:recipe_name) == "kettle_config_bootstrap" - end - content = bootstrap_report.fetch(:final_content) - - expect(content).to include(<<~YAML) - ruby: - # Lowest MRI Ruby version for generated CI workflows, Appraisals, and - # test/development dependency assumptions. This is intentionally separate - # from the gemspec required_ruby_version, which describes the published - # runtime contract. Effective CI minimum is max(gemspec minimum, this value). - test_minimum: "3.2.0" - YAML - expect(content).to include(<<~YAML) - rubygems: - # Published runtime Ruby floor used for generated gemspec metadata and README - # compatibility text. Omit this to derive the value from the gemspec. - min_ruby: "3.2.0" - YAML - expect(content).not_to include('min_ruby: "2.4"') - end - end - - it "seeds bootstrap config runtime URI values from gemspec metadata" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-config-bootstrap-runtime-uris", tmp_root) do |root| - write_tree(root, { - "example.gemspec" => <<~RUBY - Gem::Specification.new do |spec| - spec.name = "example" - spec.summary = "Example gem" - spec.email = ["maintainer@example.test"] - spec.metadata["homepage_uri"] = "https://docs.example.test" - end - RUBY - }) - - reader_metadata = described_class::GemSpecReader.load(root) - expect(reader_metadata[:homepage_uri]).to eq("https://docs.example.test") - - plan = described_class.plan_project(root, env: {}) - bootstrap_report = plan.fetch(:recipe_reports).find do |report| - report.fetch(:recipe_name) == "kettle_config_bootstrap" - end - content = bootstrap_report.fetch(:final_content) - - expect(content).to include('yard_host: "example.example.test"') - expect(content).to include('homepage_uri: "https://docs.example.test"') - expect(content).not_to include("{KJ|YARD_HOST}") - expect(content).not_to include("{KJ|HOMEPAGE_URI}") - end - end - - it "syncs OpenCollective ENV into bootstrap config funding tokens" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-config-bootstrap-open-collective", tmp_root) do |root| - write_tree(root, { - "example.gemspec" => <<~RUBY - Gem::Specification.new do |spec| - spec.name = "example" - spec.summary = "Example gem" - end - RUBY - }) - - plan = described_class.plan_project(root, env: {"OPENCOLLECTIVE_HANDLE" => "example-org"}) - bootstrap_report = plan.fetch(:recipe_reports).find do |report| - report.fetch(:recipe_name) == "kettle_config_bootstrap" - end - content = bootstrap_report.fetch(:final_content) - config = YAML.safe_load(content) - - expect(config.dig("tokens", "funding", "open_collective")).to eq("example-org") - expect(content).to include('open_collective: "example-org"') - expect(content).not_to include('open_collective: "galtzo-floss"') - end - end - - it "syncs FUNDING_ORG ENV into bootstrap config OpenCollective tokens" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-config-bootstrap-funding-org", tmp_root) do |root| - write_tree(root, { - "example.gemspec" => <<~RUBY - Gem::Specification.new do |spec| - spec.name = "example" - spec.summary = "Example gem" - end - RUBY - }) - - plan = described_class.plan_project(root, env: {"FUNDING_ORG" => "funding-org"}) - bootstrap_report = plan.fetch(:recipe_reports).find do |report| - report.fetch(:recipe_name) == "kettle_config_bootstrap" - end - config = YAML.safe_load(bootstrap_report.fetch(:final_content)) - - expect(config.dig("tokens", "funding", "open_collective")).to eq("funding-org") - end - end - - it "bootstraps full-template Gemfile ownership to avoid merging legacy Gemfile dependency sets" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-config-bootstrap-gemfile-owner", tmp_root) do |root| - write_tree(root, { - "example.gemspec" => <<~RUBY - Gem::Specification.new do |spec| - spec.name = "example" - spec.summary = "Example gem" - end - RUBY - }) - - plan = described_class.plan_project(root, env: {}) - bootstrap_report = plan.fetch(:recipe_reports).find do |report| - report.fetch(:recipe_name) == "kettle_config_bootstrap" - end - config = YAML.safe_load(bootstrap_report.fetch(:final_content)) - - expect(config.dig("files", "Gemfile", "strategy")).to eq("accept_template") - end - end - - it "seeds bootstrap config CI minimum Ruby no lower than 2.4" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-config-bootstrap-ci-min-ruby", tmp_root) do |root| - write_tree(root, { - "example.gemspec" => <<~RUBY - Gem::Specification.new do |spec| - spec.name = "example" - spec.summary = "Example gem" - spec.required_ruby_version = ">= 2.3" - end - RUBY - }) - - plan = described_class.plan_project(root, env: {}) - bootstrap_report = plan.fetch(:recipe_reports).find do |report| - report.fetch(:recipe_name) == "kettle_config_bootstrap" - end - content = bootstrap_report.fetch(:final_content) - - expect(content).to include('test_minimum: "2.4"') - expect(content).to include('min_ruby: "2.3"') - end - end - - it "bootstraps a monorepo subgem template profile with package-owned entries and Gemfile support files" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-config-bootstrap-monorepo-subgem", tmp_root) do |root| - write_tree(root, { - "tree_haver.gemspec" => <<~RUBY, - Gem::Specification.new do |spec| - spec.name = "tree_haver" - spec.summary = "Example gem" - spec.licenses = ["AGPL-3.0-only", "PolyForm-Small-Business-1.0.0"] - spec.required_ruby_version = ">= 3.2" - end - RUBY - "README.md" => "# 💎 Tree::Haver\n\nExisting README.\n" - }) - - setup = described_class.setup_project( - root, - env: {}, - run_options: {bootstrap_mode: true, template_profile: "monorepo-subgem", skip_commit: true} - ) - config = File.read(File.join(root, ".structuredmerge", "kettle-jem.yml")) - config_yaml = YAML.safe_load(config) - - expect(setup.fetch(:changed_files)).to include(".structuredmerge/kettle-jem.yml") - expect(config).to include("project_emoji: 💎\n") - expect(config_yaml.dig("templates", "root")).to eq("packaged") - expect(config_yaml.dig("templates", "apply")).to be(true) - expect(config_yaml.dig("templates", "profile")).to eq("monorepo-subgem-package") - expect(config_yaml.dig("templates", "entries")).to include( - "README.md", - {"source" => "gem.gemspec", "target" => "tree_haver.gemspec"}, - "LICENSE.md", - "Gemfile", - "gemfiles/modular/coverage.gemfile", - "gemfiles/modular/debug.gemfile", - "gemfiles/modular/documentation.gemfile", - "gemfiles/modular/optional.gemfile", - "gemfiles/modular/style.gemfile", - "gemfiles/modular/templating.gemfile", - "gemfiles/modular/templating_local.gemfile", - "gemfiles/modular/x_std_libs.gemfile" - ) - expect(config).to include( - " - source: lib/gem/version.rb\n " \ - "target: lib/tree_haver/version.rb\n " \ - "- source: sig/gem.rbs\n " \ - "target: sig/tree_haver.rbs\n" - ) - expect(config).to include(" - certs/pboling.pem\n") - expect(config).to include(" - tmp/.gitignore\n") - expect(config).not_to include(" - .github/workflows/current.yml\n") - expect(config).to include(<<~YAML) - files: - README.md: - strategy: merge - tree_haver.gemspec: - strategy: keep_destination - YAML - - apply = described_class.apply_project(root, env: {}, run_options: {accept: true, skip_commit: true}) - expect(apply.fetch(:changed_files)).to include("LICENSE.md") - expect(apply.fetch(:changed_files)).to include("README.md") - expect(apply.fetch(:changed_files)).to include("Gemfile") - expect(apply.fetch(:changed_files)).not_to include("tree_haver.gemspec") - expect(File).not_to exist(File.join(root, ".github")) - expect(File.read(File.join(root, "Gemfile"))).to include('gem "nomono", *nomono_requirements, require: false') - expect(File).not_to exist(File.join(root, "Rakefile")) - end - end - - it "bootstraps a monorepo subgem release profile with per-gem harness entries" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-config-bootstrap-monorepo-subgem-release", tmp_root) do |root| - write_tree(root, { - "tree_haver.gemspec" => <<~RUBY - Gem::Specification.new do |spec| - spec.name = "tree_haver" - spec.summary = "Example gem" - spec.licenses = ["MIT"] - spec.required_ruby_version = ">= 3.2" - end - RUBY - }) - - setup = described_class.setup_project( - root, - env: {}, - run_options: {bootstrap_mode: true, template_profile: "monorepo-subgem-release", skip_commit: true} - ) - config = File.read(File.join(root, ".structuredmerge", "kettle-jem.yml")) - config_yaml = YAML.safe_load(config) - - expect(setup.fetch(:changed_files)).to include(".structuredmerge/kettle-jem.yml") - expect(config_yaml.dig("templates", "profile")).to eq("monorepo-subgem-release") - expect(config_yaml.dig("templates", "entries")).to include( - "Gemfile", - "Rakefile", - ".rspec", - ".simplecov", - ".yardopts", - ".yardignore", - "bin/setup", - "spec/spec_helper.rb", - "gemfiles/modular/documentation.gemfile" - ) - expect(config_yaml.dig("files", "tree_haver.gemspec", "strategy")).to eq("merge") - - apply = described_class.apply_project(root, env: {}, run_options: {accept: true, skip_commit: true}) - expect(apply.fetch(:changed_files)).to include("Gemfile", ".yardopts", ".yardignore", "bin/setup") - expect(File).to exist(File.join(root, "Rakefile")) - expect(File).to exist(File.join(root, "Gemfile")) - expect(File).to exist(File.join(root, ".yardopts")) - updated_config = YAML.safe_load_file(File.join(root, ".structuredmerge", "kettle-jem.yml")) - expect(updated_config.dig("templates", "profile")).to eq("monorepo-subgem-release") - expect(updated_config.dig("templates", "entries")).to include("Rakefile", ".yardopts") - end - end - - it "renders version_gem Ruby and RBS files from packaged templates" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-version-gem-template-files", tmp_root) do |root| - write_tree(root, { - "example-gem.gemspec" => <<~RUBY, - Gem::Specification.new do |spec| - spec.name = "example-gem" - spec.version = "1.2.3" - spec.summary = "Example gem" - spec.add_dependency "version_gem", "~> 1.1", ">= 1.1.14" - end - RUBY - ".kettle-jem.yml" => <<~YAML - project_emoji: "💎" - templates: - root: packaged - apply: true - entries: - - source: lib/gem/version.rb - target: lib/example/gem/version.rb - - source: sig/gem.rbs - target: sig/example/gem.rbs - YAML - }) - - apply = described_class.apply_project(root, env: {}, run_options: {skip_commit: true, accept: true}) - - expect(apply.fetch(:changed_files)).to include("lib/example/gem/version.rb", "sig/example/gem.rbs") - version_rb = File.read(File.join(root, "lib", "example", "gem", "version.rb")) - expect(version_rb).to include("module Example") - expect(version_rb).to include("module Gem") - expect(version_rb).to include('VERSION = "1.2.3"') - expect(version_rb).not_to end_with("\n\n") - version_rbs = File.read(File.join(root, "sig", "example", "gem.rbs")) - expect(version_rbs).to include("module Example") - expect(version_rbs).to include("module Gem") - expect(version_rbs).to include("VERSION: String") - expect(version_rbs).not_to end_with("\n\n") - post_step = apply.fetch(:post_apply_steps).find { |step| step.fetch(:name) == "version_gem_bootstrap" } - expect(post_step.fetch(:changed_files)).to eq(["lib/example/gem.rb"]) - end - end - - it "replaces legacy version files with the packaged version_gem template" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-version-gem-accept-template", tmp_root) do |root| - write_tree(root, { - "example-gem.gemspec" => <<~RUBY, - Gem::Specification.new do |spec| - spec.name = "example-gem" - spec.version = "1.2.3" - spec.summary = "Example gem" - spec.add_dependency "version_gem", "~> 1.1", ">= 1.1.14" - end - RUBY - "lib/example/gem/version.rb" => <<~RUBY, - module Example - module Gem - VERSION = "1.2.3" - end - end - RUBY - ".kettle-jem.yml" => <<~YAML - project_emoji: "💎" - templates: - root: packaged - apply: true - entries: - - source: lib/gem/version.rb - target: lib/example/gem/version.rb - YAML - }) - - apply = described_class.apply_project(root, env: {}, run_options: {skip_commit: true, accept: true}) - - expect(apply.fetch(:changed_files)).to include("lib/example/gem/version.rb") - version_rb = File.read(File.join(root, "lib", "example", "gem", "version.rb")) - expect(version_rb).to include("# frozen_string_literal: true") - expect(version_rb).to include("module Version") - expect(version_rb).to include('VERSION = "1.2.3"') - expect(version_rb).to include("VERSION = Version::VERSION # Traditional Constant Location") - expect(version_rb).not_to include("module Gem\n VERSION") - expect(version_rb).not_to end_with("\n\n") - end - end - - it "uses configured RubyGems entrypoint and namespace for version_gem files" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-version-gem-configured-entrypoint", tmp_root) do |root| - write_tree(root, { - "turbo_tests2.gemspec" => <<~RUBY, - Gem::Specification.new do |spec| - spec.name = "turbo_tests2" - spec.version = "3.0.0" - spec.summary = "Turbo tests" - spec.add_dependency "version_gem", "~> 1.1", ">= 1.1.14" - end - RUBY - ".kettle-jem.yml" => <<~YAML - project_emoji: "🚀" - rubygems: - entrypoint_require: "turbo_tests" - namespace: "TurboTests" - templates: - root: packaged - apply: true - entries: - - source: lib/gem/version.rb - - source: sig/gem.rbs - YAML - }) - - apply = described_class.apply_project(root, env: {}, run_options: {skip_commit: true, accept: true}) - - expect(apply.fetch(:changed_files)).to include("lib/turbo_tests/version.rb", "sig/turbo_tests.rbs") - expect(apply.fetch(:changed_files)).not_to include("lib/turbo_tests2/version.rb") - version_rb = File.read(File.join(root, "lib", "turbo_tests", "version.rb")) - expect(version_rb).to include("module TurboTests") - version_rbs = File.read(File.join(root, "sig", "turbo_tests.rbs")) - expect(version_rbs).to include("module TurboTests") - post_step = apply.fetch(:post_apply_steps).find { |step| step.fetch(:name) == "version_gem_bootstrap" } - expect(post_step.fetch(:changed_files)).to include("lib/turbo_tests.rb") - expect(post_step.fetch(:changed_files)).not_to include("lib/turbo_tests2.rb") - end - end - - it "migrates all legacy nested RBS files into the package-level signature" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-rbs-consolidation", tmp_root) do |root| - write_tree(root, { - "example-gem.gemspec" => <<~RUBY, - Gem::Specification.new do |spec| - spec.name = "example-gem" - spec.version = "1.2.3" - spec.summary = "Example gem" - spec.add_dependency "version_gem", "~> 1.1", ">= 1.1.14" - end - RUBY - "sig/example/gem/version.rbs" => <<~RBS, - module Example - module Gem - module Version - VERSION: String - end - - VERSION: String - end - end - RBS - "sig/example/gem/client.rbs" => <<~RBS, - module Example - module Gem - class Client - end - end - end - RBS - "sig/example/gem/nested/tool.rbs" => <<~RBS - module Example - module Gem - module Nested - class Tool - end - end - end - end - RBS - }) - - step = described_class.send( - :version_gem_bootstrap_step, - root, - { - package: {name: "example-gem"}, - rubygems: {entrypoint_require: "example/gem", namespace: "Example::Gem"}, - project_runtime: {version: "1.2.3"} - } - ) - - expect(step.fetch(:changed_files)).to include( - "sig/example/gem.rbs", - "sig/example/gem/client.rbs", - "sig/example/gem/nested/tool.rbs", - "sig/example/gem/version.rbs" - ) - expect(step.fetch(:signature_path)).to eq("sig/example/gem.rbs") - expect(File).to exist(File.join(root, "sig", "example", "gem.rbs")) - expect(File).not_to exist(File.join(root, "sig", "example", "gem", "version.rbs")) - expect(File).not_to exist(File.join(root, "sig", "example", "gem", "client.rbs")) - expect(File).not_to exist(File.join(root, "sig", "example", "gem", "nested", "tool.rbs")) - signature = File.read(File.join(root, "sig", "example", "gem.rbs")) - expect(signature).to include("module Example") - expect(signature).to include("module Gem") - expect(signature).to include("module Version") - expect(signature).to include("class Client") - expect(signature).to include("module Nested") - expect(signature).to include("class Tool") - expect(signature.scan("VERSION: String").size).to eq(2) - end - end - - it "migrates all legacy nested RBS files when the package-level signature is templated" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-templated-rbs-consolidation", tmp_root) do |root| - write_tree(root, { - "example-gem.gemspec" => <<~RUBY, - Gem::Specification.new do |spec| - spec.name = "example-gem" - spec.version = "1.2.3" - spec.summary = "Example gem" - spec.add_dependency "version_gem", "~> 1.1", ">= 1.1.14" - end - RUBY - ".kettle-jem.yml" => <<~YAML, - rubygems: - entrypoint_require: "example/gem" - namespace: "Example::Gem" - templates: - root: template - apply: true - entries: - - source: sig/example/gem.rbs - YAML - "template/sig/example/gem.rbs.example" => <<~RBS, - module Example - module Gem - VERSION: String - end - end - RBS - "sig/example/gem/version.rbs" => <<~RBS, - module Example - module Gem - module Version - BUILD: String - end - end - end - RBS - "sig/example/gem/client.rbs" => <<~RBS - module Example - module Gem - class Client - end - end - end - RBS - }) - - apply = described_class.apply_project(root, env: {}, run_options: {skip_commit: true, accept: true}) - post_step = apply.fetch(:post_apply_steps).find { |step| step.fetch(:name) == "version_gem_bootstrap" } - - expect(post_step.fetch(:changed_files)).to include("sig/example/gem.rbs", "sig/example/gem/client.rbs", "sig/example/gem/version.rbs") - expect(File).not_to exist(File.join(root, "sig", "example", "gem", "version.rbs")) - expect(File).not_to exist(File.join(root, "sig", "example", "gem", "client.rbs")) - signature = File.read(File.join(root, "sig", "example", "gem.rbs")) - expect(signature).to include("VERSION: String") - expect(signature).to include("module Version") - expect(signature).to include("BUILD: String") - expect(signature).to include("class Client") - end - end - - it "migrates legacy nested RBS files without requiring a version_gem dependency" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-rbs-consolidation-without-version-gem", tmp_root) do |root| - write_tree(root, { - "kettle-family.gemspec" => <<~RUBY, - Gem::Specification.new do |spec| - spec.name = "kettle-family" - spec.version = "1.2.3" - spec.summary = "Kettle family" - end - RUBY - ".kettle-jem.yml" => <<~YAML, - rubygems: - min_ruby: "2.1" - namespace: "Kettle::Family" - templates: - root: template - apply: true - entries: - - source: sig/kettle/family.rbs - YAML - "template/sig/kettle/family.rbs.example" => <<~RBS, - module Kettle - module Family - VERSION: String - end - end - RBS - "sig/kettle/family/version.rbs" => <<~RBS - module Kettle - module Family - module Version - VERSION: String - end - end - end - RBS - }) - - apply = described_class.apply_project(root, env: {}, run_options: {skip_commit: true, accept: true}) - post_step = apply.fetch(:post_apply_steps).find { |step| step.fetch(:name) == "legacy_rbs_consolidation" } - - expect(post_step.fetch(:changed_files)).to include("sig/kettle/family.rbs", "sig/kettle/family/version.rbs") - expect(File).not_to exist(File.join(root, "sig", "kettle", "family", "version.rbs")) - signature = File.read(File.join(root, "sig", "kettle", "family.rbs")) - expect(signature).to include("module Version") - expect(signature.scan("VERSION: String").size).to eq(2) - end - end - - it "bootstraps a monorepo root template profile with shared documentation entries" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-config-bootstrap-monorepo-root", tmp_root) do |root| - setup = described_class.setup_project( - root, - env: {}, - run_options: {bootstrap_mode: true, template_profile: "monorepo-root", skip_commit: true} - ) - config = File.read(File.join(root, ".structuredmerge", "kettle-jem.yml")) - config_yaml = YAML.safe_load(config) - - expect(setup.fetch(:changed_files)).to include(".structuredmerge/kettle-jem.yml") - expect(config_yaml.dig("templates", "root")).to eq("packaged") - expect(config_yaml.dig("templates", "apply")).to be(true) - expect(config_yaml.dig("templates", "profile")).to eq("monorepo-root") - expect(config_yaml.dig("templates", "entries")).to include( - "CHANGELOG.md", - "CODE_OF_CONDUCT.md", - "CONTRIBUTING.md", - "FUNDING.md", - "Gemfile", - "IRP.md", - "LICENSE.md", - "AGPL-3.0-only.md", - "PolyForm-Small-Business-1.0.0.md", - "RUBOCOP.md", - "Rakefile", - "SECURITY.md", - ".github/FUNDING.yml", - ".structuredmerge/git-drivers.toml" - ) - expect(config_yaml.dig("files", "CHANGELOG.md", "strategy")).to eq("keep_destination") - expect(config_yaml.dig("files", "Gemfile", "strategy")).to eq("accept_template") - expect(described_class.send(:monorepo_root_file_strategy, "Gemfile")).to eq("accept_template") - expect(config.lines.count { |line| line == " .github:\n" }).to eq(1) - end - end - - it "templates a monorepo root without a gemspec and syncs root Gemfile tooling dependencies" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-monorepo-root-apply", tmp_root) do |root| - write_tree(root, { - "AGPL-3.0-only.md" => "AGPL\n", - "PolyForm-Small-Business-1.0.0.md" => "PolyForm\n", - ".kettle-jem.yml" => <<~YAML, - project_emoji: "🍲" - licenses: - - MIT - templates: - root: packaged - apply: true - profile: monorepo-root - entries: - - Gemfile - - Rakefile - - LICENSE.md - - AGPL-3.0-only.md - - PolyForm-Small-Business-1.0.0.md - files: - Gemfile: - strategy: keep_destination - Rakefile: - strategy: accept_template - YAML - "Gemfile" => <<~RUBY - source "https://gem.coop" - - # gem "kettle-dev" - warn "kettle-test" if false - gemspec path: "gems/kettle-jem" - gem "rake" - RUBY - }) - - report = described_class.apply_project( - root, - env: {}, - run_options: {accept: true, force: true, template_profile: "monorepo-root", skip_commit: true} - ) - gemfile = File.read(File.join(root, "Gemfile")) - rakefile = File.read(File.join(root, "Rakefile")) - - expect(report.fetch(:changed_files)).to include("Gemfile", "LICENSE.md") - expect(report.fetch(:facts).dig(:license, :spdx)).to eq(["AGPL-3.0-only", "PolyForm-Small-Business-1.0.0"]) - expect(gemfile).to include('gemspec path: "gems/kettle-jem"') - expect(gemfile).not_to include('gem "kettle-jem", "~> 7.0"') - expect_gem_dependency_declared(gemfile, "kettle-dev") - expect_gem_dependency_declared(gemfile, "kettle-test") - expect(gemfile.lines.count { |line| line.start_with?('gem "kettle-dev"') }).to eq(1) - expect(gemfile.lines.count { |line| line.start_with?('gem "kettle-test"') }).to eq(1) - expect_gem_dependency_declared(gemfile, "turbo_tests2") - expect(rakefile).to include('require "kettle/dev"') - expect(rakefile).to include("Kettle::Dev.install_tasks") - expect(rakefile).to include("namespace :family do") - expect(rakefile).to include('run_kettle_family("check")') - end - end - - it "adds released root Gemfile tooling even when local nomono overrides are present" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-monorepo-root-gemfile-released-tooling", tmp_root) do |root| - write_tree(root, { - ".kettle-jem.yml" => <<~YAML, - project_emoji: "🍲" - licenses: - - MIT - templates: - root: packaged - apply: true - profile: monorepo-root - entries: - - Gemfile - files: - Gemfile: - strategy: keep_destination - YAML - "Gemfile" => <<~RUBY - source "https://gem.coop" - - unless ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false").zero? - require "nomono/bundler" - - eval_nomono_gems( - gems: %w[kettle-dev kettle-test], - prefix: "KETTLE_DEV", - path_env: "KETTLE_DEV_DEV", - vendored_gems_env: "VENDORED_GEMS", - vendor_gem_dir_env: "VENDOR_GEM_DIR", - debug_env: "KETTLE_DEV_DEBUG", - ) - end - RUBY - }) - - report = described_class.apply_project( - root, - env: {}, - run_options: {accept: true, force: true, template_profile: "monorepo-root", skip_commit: true} - ) - gemfile = File.read(File.join(root, "Gemfile")) - - expect(report.fetch(:changed_files)).to include("Gemfile") - expect_gem_dependency_declared(gemfile, "kettle-dev") - expect_gem_dependency_declared(gemfile, "kettle-test") - expect_gem_dependency_declared(gemfile, "turbo_tests2") - end - end - - it "guards preserved main Gemfile local workspace overrides during templating" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-gemfile-templating-local-guard", tmp_root) do |root| - write_tree(root, { - "demo.gemspec" => <<~RUBY, - Gem::Specification.new do |spec| - spec.name = "demo" - spec.version = "0.1.0" - spec.summary = "Demo" - spec.required_ruby_version = ">= 3.2" - end - RUBY - ".kettle-jem.yml" => <<~YAML, - project_emoji: "💎" - templates: - root: packaged - apply: true - entries: - - Gemfile - YAML - "Gemfile" => <<~RUBY - source "https://gem.coop" - - gemspec - - unless %w[false 0 no off].include?(ENV.fetch("RUBY_OAUTH_DEV", "false").downcase) - require "nomono/bundler" - - eval_nomono_gems( - gems: %w[auth-sanitizer oauth-tty snaky_hash version_gem], - prefix: "RUBY_OAUTH", - path_env: "RUBY_OAUTH_DEV", - root: %w[code src ruby-oauth], - debug_env: "RUBY_OAUTH_DEBUG" - ) - end - RUBY - }) - - report = described_class.apply_project(root, env: {}, run_options: {accept: true, force: true, skip_commit: true}) - gemfile = File.read(File.join(root, "Gemfile")) - - expect(report.fetch(:changed_files)).to include("Gemfile") - expect(gemfile).to include('eval_gemfile "gemfiles/modular/templating.gemfile" if ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero?') - expect(gemfile).to include(<<~RUBY.rstrip) - unless ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? - unless %w[false 0 no off].include?(ENV.fetch("RUBY_OAUTH_DEV", "false").downcase) - require "nomono/bundler" - - eval_nomono_gems( - RUBY - described_class.apply_project(root, env: {}, run_options: {accept: true, force: true, skip_commit: true}) - reapplied_gemfile = File.read(File.join(root, "Gemfile")) - guard_line = %(unless ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero?\n) - expect(reapplied_gemfile.lines.count(guard_line)).to eq(1) - end - end - - it "collapses duplicate templating guards around main Gemfile local workspace overrides" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-gemfile-templating-local-guard-collapse", tmp_root) do |root| - write_tree(root, { - "demo.gemspec" => <<~RUBY, - Gem::Specification.new do |spec| - spec.name = "demo" - spec.version = "0.1.0" - spec.summary = "Demo" - spec.required_ruby_version = ">= 3.2" - end - RUBY - ".kettle-jem.yml" => <<~YAML, - project_emoji: "💎" - templates: - root: packaged - apply: true - entries: - - Gemfile - YAML - "Gemfile" => <<~RUBY - source "https://gem.coop" - - gemspec - - unless ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? - unless ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? - unless %w[false 0 no off].include?(ENV.fetch("RUBY_OAUTH_DEV", "false").downcase) - require "nomono/bundler" - - eval_nomono_gems( - gems: %w[version_gem], - prefix: "RUBY_OAUTH", - path_env: "RUBY_OAUTH_DEV" - ) - end - end - end - RUBY - }) - - described_class.apply_project(root, env: {}, run_options: {accept: true, force: true, skip_commit: true}) - gemfile = File.read(File.join(root, "Gemfile")) - guard_line = %(unless ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero?\n) - expect(gemfile.lines.count(guard_line)).to eq(1) - expect(gemfile).to include(<<~RUBY.rstrip) - unless ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? - unless %w[false 0 no off].include?(ENV.fetch("RUBY_OAUTH_DEV", "false").downcase) - require "nomono/bundler" - RUBY - end - end - - it "preserves monorepo root Rakefile tasks during scaffold cleanup" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-monorepo-root-rakefile", tmp_root) do |root| - write_tree(root, { - ".kettle-jem.yml" => <<~YAML, - project_emoji: "🍲" - templates: - root: packaged - apply: true - profile: monorepo-root - entries: [] - YAML - "Rakefile" => <<~RUBY - require "rake/testtask" - require "rspec/core/rake_task" - - RSpec::Core::RakeTask.new(:spec) - - task default: :spec - RUBY - }) - - report = described_class.apply_project( - root, - env: {}, - run_options: {accept: true, force: true, template_profile: "monorepo-root", skip_commit: true} - ) - rakefile_report = report.fetch(:recipe_reports).find { |recipe| recipe.fetch(:recipe_name) == "rakefile_scaffold_cleanup" } - - expect(rakefile_report.dig(:request_envelope, :request, :runtime_context, :delete_selectors)).to be_empty - expect(File.read(File.join(root, "Rakefile"))).to include("RSpec::Core::RakeTask.new(:spec)") - expect(File.read(File.join(root, "Rakefile"))).to include("task default: :spec") - end - end - - it "rewrites monorepo subgem README policy document references to source-hosted URLs" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-monorepo-subgem-readme-links", tmp_root) do |root| - write_tree(root, { - "ast-merge.gemspec" => <<~RUBY, - Gem::Specification.new do |spec| - spec.name = "ast-merge" - spec.summary = "Example gem" - spec.homepage = "https://github.com/structuredmerge/structuredmerge-ruby" - spec.licenses = ["AGPL-3.0-only"] - spec.required_ruby_version = ">= 4.0" - end - RUBY - ".kettle-jem.yml" => <<~YAML, - project_emoji: "☯️" - templates: - root: template - apply: true - profile: monorepo-subgem - entries: - - README.md - files: - README.md: - strategy: accept_template - YAML - "template/README.md.example" => <<~MARKDOWN - # {KJ|PROJECT_EMOJI} {KJ|NAMESPACE} - - ## 🤝 Contributing - - See [CONTRIBUTING.md][🤝contributing]. - - ## 🔐 Security - - See [SECURITY.md][🔐security]. - - ## 📌 Versioning - - See [CHANGELOG.md][📌changelog]. - - [🤝contributing]: CONTRIBUTING.md - [🪇conduct]: CODE_OF_CONDUCT.md - [📌changelog]: CHANGELOG.md - [🧹rubocop]: RUBOCOP.md - [🚨irp]: IRP.md - [🔐security]: SECURITY.md - MARKDOWN - }) - - apply = described_class.apply_project(root, env: {}, run_options: {skip_commit: true}) - report = apply.fetch(:recipe_reports).find { |candidate| candidate.fetch(:relative_path) == "README.md" } - readme = report.fetch(:final_content) - source_root = "https://github.com/structuredmerge/structuredmerge-ruby/blob/main" - - expect(readme).to include("[🤝contributing]: #{source_root}/CONTRIBUTING.md") - expect(readme).to include("[🪇conduct]: #{source_root}/CODE_OF_CONDUCT.md") - expect(readme).to include("[📌changelog]: #{source_root}/CHANGELOG.md") - expect(readme).to include("[🧹rubocop]: #{source_root}/RUBOCOP.md") - expect(readme).to include("[🚨irp]: #{source_root}/IRP.md") - expect(readme).to include("[🔐security]: #{source_root}/SECURITY.md") - expect(File.read(File.join(root, "README.md"))).to eq(readme) - end - end - - it "exposes canonical repository URL tokens for monorepo subgem templates" do - repository = { - url: "https://github.com/structuredmerge/structuredmerge-ruby", - name: "structuredmerge-ruby", - slug: "structuredmerge/structuredmerge-ruby", - package_path: "gems/ast-merge", - package_source_url: "https://github.com/structuredmerge/structuredmerge-ruby/tree/main/gems/ast-merge", - gitlab_package_source_url: "https://gitlab.com/structuredmerge/structuredmerge-ruby/-/tree/main/gems/ast-merge", - codeberg_package_source_url: "https://codeberg.org/structuredmerge/structuredmerge-ruby/src/branch/main/gems/ast-merge", - checksums_url: "https://gitlab.com/structuredmerge/structuredmerge-ruby/-/tree/main/checksums" - } - tokens = described_class.send(:readme_url_template_tokens, repository, "ast-merge", "structuredmerge") - - expect(tokens.fetch("KJ|README:GH_REPOSITORY_URL")).to eq("https://github.com/structuredmerge/structuredmerge-ruby") - expect(tokens.fetch("KJ|README:GH_PACKAGE_SOURCE_URL")).to eq( - "https://github.com/structuredmerge/structuredmerge-ruby/tree/main/gems/ast-merge" - ) - expect(tokens.fetch("KJ|README:GH_CONTRIBUTING_URL")).to eq( - "https://github.com/structuredmerge/structuredmerge-ruby/blob/main/CONTRIBUTING.md" - ) - expect(tokens.fetch("KJ|README:GL_PACKAGE_SOURCE_URL")).to eq( - "https://gitlab.com/structuredmerge/structuredmerge-ruby/-/tree/main/gems/ast-merge" - ) - expect(tokens.fetch("KJ|CHANGELOG:GL_COMPARE_URL")).to eq( - "https://gitlab.com/structuredmerge/structuredmerge-ruby/-/compare" - ) - expect(tokens.fetch("KJ|CHANGELOG:GL_TAGS_URL")).to eq("https://gitlab.com/structuredmerge/structuredmerge-ruby/-/tags") - end - - it "projects monorepo subgem README output to thin form while preserving destination-owned sections" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-monorepo-subgem-thin-readme", tmp_root) do |root| - write_tree(root, { - "ast-merge.gemspec" => <<~RUBY, - Gem::Specification.new do |spec| - spec.name = "ast-merge" - spec.summary = "Example gem" - spec.homepage = "https://github.com/structuredmerge/structuredmerge-ruby" - spec.licenses = ["AGPL-3.0-only"] - spec.required_ruby_version = ">= 4.0" - end - RUBY - ".kettle-jem.yml" => <<~YAML, - project_emoji: "☯️" - templates: - root: template - apply: true - profile: monorepo-subgem - entries: - - README.md - files: - README.md: - strategy: merge - YAML - "README.md" => <<~MARKDOWN, - # Existing - - ## 🌻 Synopsis - - Destination synopsis. - - ## ⚙️ Configuration - - Destination configuration. - - ## 🔧 Basic Usage - - Destination usage. - MARKDOWN - "template/README.md.example" => <<~MARKDOWN - # {KJ|PROJECT_EMOJI} {KJ|NAMESPACE} - - ## 🌻 Synopsis - - Template synopsis. - - ## 💡 Info you can shake a stick at - - Info. - - ### Compatibility - - Compatible. - - ### Enterprise Support - - Heavy support content. - - ## ✨ Installation - - Install. - - ## ⚙️ Configuration - - Template configuration. - - ## 🔧 Basic Usage - - Template usage. - - ## 🦷 FLOSS Funding - - Funding. - - ## 🔐 Security - - See [SECURITY.md][🔐security]. - - ## 🤝 Contributing - - Contributions. - - ### Code Coverage - - Coverage. - - ## 🌈 Contributors - - Contributors. - - ## 📌 Versioning - - Versioning. - - ## 📄 License - - License. - - ## 🤑 A request for help - - Request. - - [🔐security]: SECURITY.md - MARKDOWN - }) - - apply = described_class.apply_project(root, env: {}, run_options: {skip_commit: true}) - readme = apply.fetch(:recipe_reports).find { |candidate| candidate.fetch(:relative_path) == "README.md" }.fetch(:final_content) - - expect(readme).to match(/## 🌻 Synopsis(?:
        <<~RUBY - Gem::Specification.new do |spec| - spec.name = "ast-crispr" - spec.summary = "Example gem" - spec.licenses = ["AGPL-3.0-only", "PolyForm-Small-Business-1.0.0"] - end - RUBY - }) - - described_class.setup_project( - root, - env: {}, - run_options: {bootstrap_mode: true, template_profile: "monorepo-subgem", skip_commit: true} - ) - - expect(File.read(File.join(root, described_class::KETTLE_CONFIG_PATH))).to include("project_emoji: 💎\n") - end - end - - it "seeds project emoji from KJ_PROJECT_EMOJI before README or defaults" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-config-bootstrap-env-emoji", tmp_root) do |root| - write_tree(root, { - "json-merge.gemspec" => <<~RUBY, - Gem::Specification.new do |spec| - spec.name = "json-merge" - spec.summary = "Example gem" - spec.licenses = ["AGPL-3.0-only", "PolyForm-Small-Business-1.0.0"] - end - RUBY - "README.md" => "# 💎 Json::Merge\n\nExisting README.\n" - }) - - described_class.setup_project( - root, - env: {"KJ_PROJECT_EMOJI" => "☯️"}, - run_options: {bootstrap_mode: true, template_profile: "monorepo-subgem", skip_commit: true} - ) - - expect(File.read(File.join(root, described_class::KETTLE_CONFIG_PATH))).to include("project_emoji: ☯️\n") - end - end - - it "seeds project emoji from gemspec summary when README has no leading H1" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-config-bootstrap-gemspec-emoji", tmp_root) do |root| - write_tree(root, { - "yaml-converter.gemspec" => <<~RUBY, - Gem::Specification.new do |spec| - spec.name = "yaml-converter" - spec.summary = "🥨 Convert annotated YAML blueprints into readable documentation." - spec.licenses = ["MIT"] - end - RUBY - "README.md" => <<~MARKDOWN - | 📍 NOTE | - |---------| - | Existing preface. | - - # Yaml::Converter - MARKDOWN - }) - - described_class.setup_project( - root, - env: {}, - run_options: {bootstrap_mode: true, skip_commit: true} - ) - - expect(File.read(File.join(root, ".structuredmerge", "kettle-jem.yml"))).to include("project_emoji: 🥨\n") - end - end - - it "applies bootstrap with non-interactive defaults and converges on the next run" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-bootstrap-contract", tmp_root) do |root| - write_tree(root, { - "example.gemspec" => <<~RUBY - Gem::Specification.new do |spec| - spec.name = "example" - spec.summary = "Example gem" - spec.required_ruby_version = ">= 4.0" - end - RUBY - }) - - apply = described_class.apply_project(root, env: {}, run_options: {accept: true}) - bootstrap_target = bootstrap_contract.fetch(:expected).fetch(:bootstrap_target) - - expect(apply.fetch(:decision_policy).fetch(:mode)).to eq( - bootstrap_contract.fetch(:expected).fetch(:non_interactive_mode) - ) - expect(apply.fetch(:changed_files)).to include(bootstrap_target) - expect(File).to exist(File.join(root, bootstrap_target)) - - described_class.apply_project(root, env: {}, run_options: {accept: true}) - selected = bootstrap_contract.fetch(:expected).fetch(:idempotent_selected_paths).to_h do |relative_path| - [relative_path, File.exist?(File.join(root, relative_path)) ? File.read(File.join(root, relative_path)) : nil] - end - third_apply = described_class.apply_project(root, env: {}, run_options: {accept: true}) - - expect(third_apply.fetch(:decision_policy).fetch(:mode)).to eq( - bootstrap_contract.fetch(:expected).fetch(:non_interactive_mode) - ) - expect(bootstrap_contract.fetch(:expected).fetch(:idempotent_selected_paths).to_h { |relative_path| - [relative_path, File.exist?(File.join(root, relative_path)) ? File.read(File.join(root, relative_path)) : nil] - }).to eq(selected) - expect(third_apply.fetch(:changed_files)).not_to include( - *bootstrap_contract.fetch(:expected).fetch(:idempotent_selected_paths) - ) - end - end - - it "hard-fails malformed Ruby project entrypoints during preflight" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - parser_error_paths = bootstrap_contract.fetch(:expected).fetch(:parser_error_paths) - - parser_error_paths.each do |relative_path| - Dir.mktmpdir("kettle-jem-bootstrap-preflight", tmp_root) do |root| - files = { - "example.gemspec" => <<~RUBY - Gem::Specification.new do |spec| - spec.name = "example" - spec.summary = "Example gem" - spec.required_ruby_version = ">= 4.0" - end - RUBY - } - files["Gemfile"] = "source \"https://gem.coop\"\n" if relative_path == "example.gemspec" - files[relative_path] = "if true\n" - write_tree(root, files) - - expect { - described_class.plan_project(root, env: {}, run_options: {accept: true}) - }.to raise_error(Kettle::Jem::Error, /Preflight failed for #{Regexp.escape(relative_path)}/) - end - end - end - - it "hard-fails invalid kettle config shape before later discovery" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - { - "root_scalar" => ["true\n", /root must be a mapping/], - "templates_scalar" => ["templates: packaged\n", /templates must be a mapping/], - "entries_scalar" => ["templates:\n entries: README.md\n", /templates\.entries must be a list/] - }.each do |case_name, (config, message)| - Dir.mktmpdir("kettle-jem-config-validation-#{case_name}", tmp_root) do |root| - write_tree(root, { - "example.gemspec" => <<~RUBY, - Gem::Specification.new do |spec| - spec.name = "example" - spec.summary = "Example gem" - end - RUBY - ".kettle-jem.yml" => config - }) - - expect { - described_class.plan_project(root, env: {}) - }.to raise_error(Kettle::Jem::Error, message) - end - end - end - - it "classifies template entries with files and patterns strategy config" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-template-strategy-slice", tmp_root) do |root| - write_tree(root, { - "example.gemspec" => <<~RUBY, - Gem::Specification.new do |spec| - spec.name = "example" - spec.summary = "Example gem" - end - RUBY - ".kettle-jem.yml" => <<~YAML, - patterns: - - path: "certs/**" - strategy: raw_copy - files: - README.md: - strategy: keep_destination - templates: - root: packaged - apply: true - entries: - - README.md - - source: certs/pboling.pem.example - target: certs/pboling.pem - YAML - "README.md" => "# destination\n" - }) - - packaged_cert = File.read(File.join(__dir__, "../lib/kettle/jem/templates/certs/pboling.pem.example")) - plan = described_class.plan_project(root, env: {}) - readme_report = plan[:recipe_reports].find do |report| - report.fetch(:recipe_name) == "template_source_application_README_md" - end - cert_report = plan[:recipe_reports].find do |report| - report.fetch(:recipe_name) == "template_source_application_certs_pboling_pem" - end - expect(readme_report.fetch(:changed)).to be(false) - expect(readme_report.fetch(:final_content)).to eq("# destination\n") - expect(readme_report.dig(:metadata, :template_source_preference)).to include(strategy: "keep_destination") - expect(cert_report.fetch(:changed)).to be(true) - expect(cert_report.fetch(:final_content)).to eq(packaged_cert) - expect(cert_report.dig(:metadata, :template_source_preference)).to include(strategy: "raw_copy") - end - end - - it "projects full per-file merge options into recipe metadata and runtime context" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-template-merge-option-slice", tmp_root) do |root| - write_tree(root, { - "example.gemspec" => <<~RUBY, - Gem::Specification.new do |spec| - spec.name = "example" - spec.summary = "Example gem" - end - RUBY - ".kettle-jem.yml" => <<~YAML, - defaults: - preference: template - add_template_only_nodes: true - freeze_token: kettle-jem - max_recursion_depth: 7 - files: - config: - settings.yml: - strategy: merge - file_type: yaml - freeze_token: destination-token - skip_unresolved_scan: true - templates: - root: template - apply: true - entries: - - config/settings.yml - YAML - "config/settings.yml" => <<~YAML, - enabled: false - YAML - "template/config/settings.yml.example" => <<~YAML - enabled: true - YAML - }) - - plan = described_class.plan_project(root, env: {}) - report = plan.fetch(:recipe_reports).find do |candidate| - candidate.fetch(:recipe_name) == "template_source_application_config_settings_yml" - end - expected_policy = { - strategy: "merge", - file_type: "yaml", - preference: "template", - add_template_only_nodes: true, - freeze_token: "destination-token", - skip_unresolved_scan: true, - max_recursion_depth: "7" - } - - expect(report.dig(:metadata, :template_source_preference)).to include(expected_policy) - expect(report.dig(:request_envelope, :request, :runtime_context, :template_source_preference)).to include(expected_policy) - end - end - - it "plans packaged template inventory when entries are omitted" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-template-inventory-slice", tmp_root) do |root| - write_tree(root, { - "example.gemspec" => <<~RUBY, - Gem::Specification.new do |spec| - spec.name = "example" - spec.summary = "Example gem" - end - RUBY - ".kettle-jem.yml" => <<~YAML - funding: - open_collective: false - patterns: - - path: "certs/**" - strategy: raw_copy - files: - AGENTS.md: - strategy: accept_template - templates: - root: packaged - YAML - }) - - plan = described_class.plan_project(root, env: {}) - preferences = plan.dig(:facts, :templates, :source_preferences) - expect(preferences.size).to be > 100 - - agents = preferences.find { |preference| preference.fetch(:target_path) == "AGENTS.md" } - cert = preferences.find { |preference| preference.fetch(:target_path) == "certs/pboling.pem" } - envrc = preferences.find { |preference| preference.fetch(:target_path) == ".envrc" } - env_local = preferences.find { |preference| preference.fetch(:target_path) == ".env.local.example" } - gemspec = preferences.find { |preference| preference.fetch(:target_path) == "example.gemspec" } - - expect(agents).to include(selected_source: "AGENTS.md.example", strategy: "accept_template") - expect(cert).to include(selected_source: "certs/pboling.pem.example", strategy: "raw_copy") - expect(envrc).to include(selected_source: ".envrc.no-osc.example") - expect(env_local).to include(configured_source: ".env.local", selected_source: ".env.local.example") - expect(gemspec).to include(configured_source: "gem.gemspec", selected_source: "gem.gemspec.example") - end - end - - it "applies remaining-files copy-only and legacy destination policies" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-remaining-files-policy-slice", tmp_root) do |root| - write_tree(root, { - "example.gemspec" => <<~RUBY, - Gem::Specification.new do |spec| - spec.name = "example" - spec.summary = "Example gem" - end - RUBY - ".kettle-jem.yml" => <<~YAML, - templates: - root: packaged - apply: true - entries: - - bin/setup - - .github/copilot_instructions.md - YAML - "bin/setup" => "custom setup\n", - ".github/COPILOT_INSTRUCTIONS.md" => "legacy copilot instructions\n" - }) - - plan = described_class.plan_project(root, env: {}) - setup_preference = plan.dig(:facts, :templates, :source_preferences).find do |preference| - preference.fetch(:target_path) == "bin/setup" - end - setup_report = plan.fetch(:recipe_reports).find do |report| - report.fetch(:recipe_name) == "template_source_application_bin_setup" - end - legacy_cleanup = plan.fetch(:recipe_reports).find do |report| - report.fetch(:recipe_name) == "template_legacy_destination_cleanup_github_COPILOT_INSTRUCTIONS_md" - end - - expect(setup_preference).to include( - strategy: "keep_destination", - policy: "copy_only_when_missing" - ) - expect(setup_report.fetch(:changed)).to be(false) - expect(setup_report.fetch(:final_content)).to eq("custom setup\n") - expect(legacy_cleanup.dig(:metadata, :delete_file)).to be(true) - expect(legacy_cleanup.dig(:report_envelope, :report, :step_reports, 0, :metadata)).to include( - policy_kind: "delete_legacy_destination_file", - deleted_file: ".github/COPILOT_INSTRUCTIONS.md" - ) - - apply = described_class.apply_project(root, env: {}) - expect(File.read(File.join(root, "bin/setup"))).to eq("custom setup\n") - expect(File.exist?(File.join(root, ".github/copilot_instructions.md"))).to be(true) - expect(File.exist?(File.join(root, ".github/COPILOT_INSTRUCTIONS.md"))).to be(false) - expect(apply.fetch(:changed_files)).to include(".github/COPILOT_INSTRUCTIONS.md") - end - end - - it "runs install as active apply plus local post-template checks" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - curated_binstubs = %w[bundle binstubs appraisal2 rake rbs rspec-core yard kettle-dev kettle-test kettle-soup-cover stone_checksums] - Dir.mktmpdir("kettle-jem-install-post-template-slice", tmp_root) do |root| - write_tree(root, { - "example.gemspec" => <<~RUBY, - Gem::Specification.new do |spec| - spec.name = "example" - spec.summary = "Example gem" - end - RUBY - ".kettle-jem.yml" => [ - "templates:", - " root: packaged", - " apply: true", - " entries:", - " - bin/setup", - "" - ].join("\n"), - "Rakefile" => "task :default\n", - "bin/rake" => "#!/usr/bin/env ruby\n" - }) - - commands = [] - command_runner = lambda do |command, chdir:, env:, quiet:| - commands << {command: command, chdir: chdir, env: env, quiet: quiet} - {success: true, exitstatus: 0, stdout: "", stderr: ""} - end - - install = Kettle::Jem::Tasks::InstallTask.run( - project_root: root, - env: {}, - run_options: {only: "bin/setup", quiet: true, skip_commit: true}, - command_runner: command_runner - ) - setup_path = File.join(root, "bin", "setup") - - expect(install.fetch(:mode)).to eq("install") - expect(install.fetch(:installed)).to be(true) - expect(install.fetch(:changed_files)).to eq(["bin/setup"]) - expect(install.fetch(:install_steps)).to include( - name: "bin_setup_executable", - path: "bin/setup", - status: "updated" - ) - expect(install.fetch(:install_steps)).to include( - name: "bin_setup", - command: ["bin/setup", "--quiet"], - status: "succeeded", - exitstatus: 0 - ) - expect(install.fetch(:install_steps)).to include( - name: "bundle_binstubs", - command: curated_binstubs, - status: "succeeded", - exitstatus: 0 - ) - expect(install.fetch(:install_steps)).to include( - name: "rubocop_gradual_autocorrect", - status: "skipped", - reason: "missing_rubocop_gradual_task" - ) - expect(install.fetch(:install_steps)).to include( - name: "bundled_handoff", - command: kettle_jem_handoff_command("--skip-commit", "--quiet", "--only", "bin/setup"), - status: "succeeded", - exitstatus: 0, - reason: "executed" - ) - expect(install.fetch(:install_steps)).to include( - name: "bootstrap_commit", - status: "skipped", - reason: "skip_commit" - ) - expect(install.fetch(:install_phase_reports)).to include(hash_including( - phase: "post_template", - steps: include("bin_setup_executable", "bin_setup", "bundle_binstubs", "rubocop_gradual_autocorrect"), - statuses: hash_including( - "bin_setup_executable" => "updated", - "bin_setup" => "succeeded", - "bundle_binstubs" => "succeeded", - "rubocop_gradual_autocorrect" => "skipped", - "bundle_binstub_pruning" => "already_current" - ) - )) - expect(install.fetch(:install_phase_reports)).to include( - phase: "orchestration", - steps: %w[bundled_handoff bootstrap_commit], - statuses: { - "bundled_handoff" => "succeeded", - "bootstrap_commit" => "skipped" - } - ) - autocorrect_command = ["sh", "-c", "rm -f .rubocop_gradual.lock && bin/rake rubocop_gradual:autocorrect"] - handoff_command = kettle_jem_handoff_command("--skip-commit", "--quiet", "--only", "bin/setup") - command_names = commands.map { |entry| entry.fetch(:command) } - expect(command_names).to include( - ["bin/setup", "--quiet"], - curated_binstubs, - handoff_command - ) - expect(command_names).not_to include(autocorrect_command) - expect(commands).to all(include(chdir: root, quiet: true)) - expect(commands.map { |entry| entry.fetch(:env) }).to all(include( - "BUNDLE_GEMFILE" => nil, - "BUNDLE_LOCKFILE" => nil, - "RUBYLIB" => nil, - "RUBYOPT" => nil - )) - expect(File).to exist(setup_path) - expect(File.executable?(setup_path)).to be(true) - - commands.clear - second = Kettle::Jem::Tasks::InstallTask.run( - project_root: root, - env: {}, - run_options: {only: "bin/setup", quiet: true}, - command_runner: command_runner - ) - expect(second.fetch(:changed_files)).to be_empty - expect(second.fetch(:install_steps)).to include( - name: "bin_setup_executable", - path: "bin/setup", - status: "already_executable" - ) - expect(second.fetch(:install_steps)).to include( - name: "bundled_handoff", - command: kettle_jem_handoff_command("--quiet", "--only", "bin/setup"), - status: "succeeded", - exitstatus: 0, - reason: "executed" - ) - second_commit_step = second.fetch(:install_steps).find { |step| step.fetch(:name) == "bootstrap_commit" } - expect(second_commit_step.fetch(:status)).to eq("unavailable") - expect(second_commit_step.fetch(:reason)).to eq("not_git_repository") - expect(commands.map { |entry| entry.fetch(:command) }).to include( - ["bin/setup", "--quiet"], - curated_binstubs, - kettle_jem_handoff_command("--quiet", "--only", "bin/setup") - ) - - bootstrap_install = Kettle::Jem::Tasks::InstallTask.run( - project_root: root, - env: {}, - run_options: {only: "bin/setup", bootstrap_mode: true}, - command_runner: command_runner - ) - expect(bootstrap_install.fetch(:install_steps)).to include( - name: "bundled_handoff", - status: "skipped", - reason: "bootstrap_mode" - ) - - expect(system("git", "init", root, out: File::NULL, err: File::NULL)).to be(true) - git_ready = Kettle::Jem::Tasks::InstallTask.run( - project_root: root, - env: {}, - run_options: {only: "bin/setup"}, - command_runner: command_runner - ) - expect(git_ready.fetch(:install_steps)).to include(hash_including( - name: "bootstrap_commit", - status: "succeeded", - commands: [ - %w[git add -A], - ["git", "commit", "-m", "🎨 Template bootstrap by kettle-jem v#{Kettle::Jem::Version::VERSION}"] - ], - command_results: [ - {command: %w[git add -A], exitstatus: 0}, - {command: ["git", "commit", "-m", "🎨 Template bootstrap by kettle-jem v#{Kettle::Jem::Version::VERSION}"], exitstatus: 0} - ], - reason: "executed" - )) - expect(git_ready.fetch(:install_steps).find { |step| step.fetch(:name) == "bootstrap_commit" }.fetch(:dirty_entries)).not_to be_empty - - Dir.mktmpdir("kettle-jem-clean-bootstrap", tmp_root) do |clean_root| - expect(system("git", "init", clean_root, out: File::NULL, err: File::NULL)).to be(true) - stale_commit_step = Kettle::Jem::Tasks::InstallTask.send( - :execute_ready_commands_step, - { - name: "bootstrap_commit", - status: "ready", - dirty_entries: [" M bin/setup"], - commands: [%w[git add -A], ["git", "commit", "-m", "stale"]] - }, - project_root: clean_root, - env: {}, - quiet: false, - command_runner: command_runner - ) - expect(stale_commit_step.fetch(:status)).to eq("clean_noop") - expect(stale_commit_step.fetch(:reason)).to eq("clean_before_execution") - end - - Dir.mktmpdir("kettle-jem-install-monorepo", tmp_root) do |repo_root| - expect(system("git", "init", repo_root, out: File::NULL, err: File::NULL)).to be(true) - gem_root = File.join(repo_root, "gems", "example") - write_tree(gem_root, { - "Gemfile" => <<~RUBY, - source "https://gem.coop" - gemspec - RUBY - "example.gemspec" => <<~RUBY, - Gem::Specification.new do |spec| - spec.name = "example" - spec.summary = "Example gem" - end - RUBY - ".kettle-jem.yml" => <<~YAML - templates: - root: packaged - apply: true - entries: - - bin/setup - YAML - }) - - commands.clear - inherited_env = {"BUNDLE_GEMFILE" => File.join(repo_root, "Gemfile")} - monorepo_install = Kettle::Jem::Tasks::InstallTask.run( - project_root: gem_root, - env: inherited_env, - run_options: {only: "bin/setup"}, - command_runner: command_runner - ) - expect(monorepo_install.fetch(:git_preflight)).to include(git_repository: true) - expect(monorepo_install.fetch(:install_steps)).to include(hash_including( - name: "bootstrap_commit", - status: "succeeded", - reason: "executed" - )) - expect(commands.map { |entry| entry.fetch(:env).fetch("BUNDLE_GEMFILE") }.uniq).to eq([File.join(gem_root, "Gemfile")]) - expect(monorepo_install.fetch(:install_steps)).to include(hash_including( - name: "bundled_handoff", - status: satisfy { |status| %w[succeeded already_bundled].include?(status) } - )) - - commands.clear - bundler_binstub = lambda do |gem_name, executable| - <<~RUBY - #!/usr/bin/env ruby - # frozen_string_literal: true - - # - # This file was generated by Bundler. - # - load Gem.bin_path("#{gem_name}", "#{executable}") - RUBY - end - binstub_runner = lambda do |command, chdir:, env:, quiet:| - commands << {command: command, chdir: chdir, env: env, quiet: quiet} - if command == curated_binstubs - FileUtils.mkdir_p(File.join(chdir, "bin")) - File.write(File.join(chdir, "bin", "appraisal"), bundler_binstub.call("appraisal2", "appraisal")) - File.write(File.join(chdir, "bin", "kettle-bump"), bundler_binstub.call("kettle-dev", "kettle-bump")) - File.write(File.join(chdir, "bin", "rake"), bundler_binstub.call("rake", "rake")) - File.write(File.join(chdir, "bin", "yard"), bundler_binstub.call("yard", "yard")) - File.write(File.join(chdir, "bin", "reek"), bundler_binstub.call("reek", "reek")) - FileUtils.chmod("+x", File.join(chdir, "bin", "appraisal")) - FileUtils.chmod("+x", File.join(chdir, "bin", "reek")) - end - {success: true, exitstatus: 0, stdout: "", stderr: ""} - end - validated_install = Kettle::Jem::Tasks::InstallTask.run( - project_root: gem_root, - env: inherited_env, - run_options: {only: "bin/setup", skip_commit: true}, - command_runner: binstub_runner - ) - expect(validated_install.fetch(:install_steps)).to include(hash_including( - name: "bundle_binstub_location_validation", - status: "succeeded", - reason: "destination_bin_has_binstubs", - destination_bin: "bin", - destination_binstubs: include("appraisal", "rake") - )) - expect(validated_install.fetch(:install_steps)).to include(hash_including( - name: "yard_binstub_rake_handoff", - status: "updated", - reason: "yard_plugins_require_rake_yard_postprocess_hooks", - path: "bin/yard" - )) - expect(validated_install.fetch(:install_steps)).to include(hash_including( - name: "curated_binstubs_executable", - status: "updated", - path: "bin", - updated_binstubs: %w[kettle-bump rake yard] - )) - expect(validated_install.fetch(:install_steps)).to include(hash_including( - name: "bundle_binstub_pruning", - status: "pruned", - reason: "removed_unwanted_bundler_binstubs", - removed_binstubs: ["reek"] - )) - expect(File.read(File.join(gem_root, "bin", "yard"))).to include('exec("bundle", "exec", "rake", "yard")') - expect(File).to exist(File.join(gem_root, "bin", "appraisal")) - expect(File).to exist(File.join(gem_root, "bin", "kettle-bump")) - expect(File.executable?(File.join(gem_root, "bin", "kettle-bump"))).to be(true) - expect(File.executable?(File.join(gem_root, "bin", "yard"))).to be(true) - expect(File).not_to exist(File.join(gem_root, "bin", "reek")) - expect(commands.find { |entry| entry.fetch(:command) == curated_binstubs }).to include( - chdir: gem_root, - env: include("BUNDLE_GEMFILE" => File.join(gem_root, "Gemfile")) - ) - end - end - end - - it "applies full templates after accepting a newly bootstrapped config before bundled handoff" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - curated_binstubs = %w[bundle binstubs appraisal2 rake rbs rspec-core yard kettle-dev kettle-test kettle-soup-cover stone_checksums] - Dir.mktmpdir("kettle-jem-install-bootstrap-followup", tmp_root) do |root| - write_tree(root, { - "Gemfile" => <<~RUBY, - source "https://gem.coop" - gemspec - RUBY - "example.gemspec" => <<~RUBY - Gem::Specification.new do |spec| - spec.name = "example" - spec.summary = "💎 Example gem" - spec.authors = ["Peter H. Boling"] - spec.email = ["floss@galtzo.com"] - spec.required_ruby_version = ">= 3.2" - end - RUBY - }) - - commands = [] - command_runner = lambda do |command, chdir:, env:, quiet:| - commands << {command: command, chdir: chdir, env: env, quiet: quiet} - {success: true, exitstatus: 0, stdout: "", stderr: ""} - end - - install = Kettle::Jem::Tasks::InstallTask.run( - project_root: root, - env: {"K_JEM_TEMPLATING" => "true"}, - run_options: {accept_config: true, force: true, skip_commit: true}, - command_runner: command_runner - ) - - expect(install.fetch(:bootstrap_followup_apply)).to eq( - status: "applied", - reason: "canonical_config_bootstrapped" - ) - expect(install.fetch(:changed_files)).to include( - ".structuredmerge/kettle-jem.yml", - "Gemfile", - "gemfiles/modular/templating.gemfile", - "gemfiles/modular/templating_local.gemfile" - ) - expect(File.read(File.join(root, "Gemfile"))).to include( - 'eval_gemfile "gemfiles/modular/templating.gemfile" if ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero?' - ) - expect_gem_dependency_declared(File.read(File.join(root, "gemfiles", "modular", "templating.gemfile")), "kettle-jem") - expect(install.fetch(:install_steps)).to include(hash_including( - name: "bundled_handoff", - command: kettle_jem_handoff_command("--accept-config", "--skip-commit", "--force"), - status: "succeeded" - )) - expect(commands.map { |entry| entry.fetch(:command) }).to include( - ["bin/setup"], - curated_binstubs, - kettle_jem_handoff_command("--accept-config", "--skip-commit", "--force") - ) - end - end - - it "silences Bundler and debug environment for quiet orchestration commands" do - expect(Kettle::Jem::Tasks::InstallTask.quiet_command(%w[bundle install], quiet: true)).to eq(%w[bundle install --quiet]) - expect(Kettle::Jem::Tasks::InstallTask.quiet_command(%w[bundle install --quiet], quiet: true)).to eq(%w[bundle install --quiet]) - expect(Kettle::Jem::Tasks::InstallTask.quiet_command(%w[bundle update], quiet: true)).to eq(%w[bundle update --quiet]) - expect(Kettle::Jem::Tasks::InstallTask.quiet_command(%w[bundle binstubs rake], quiet: true)).to eq(%w[bundle binstubs rake]) - expect(Kettle::Jem::Tasks::InstallTask.quiet_command(%w[bundle lock], quiet: true)).to eq(%w[bundle lock]) - expect(Kettle::Jem::Tasks::InstallTask.quiet_command(%w[bin/setup --quiet], quiet: true)).to eq(%w[bin/setup --quiet]) - expect(Kettle::Jem::Tasks::InstallTask.quiet_command_env("DEBUG" => "true")).to include( - "DEBUG" => "false", - "KETTLE_JEM_DEBUG" => "false", - "KETTLE_DEV_DEBUG" => "false", - "BUNDLE_IGNORE_MESSAGES" => "true", - "BUNDLE_SILENCE_DEPRECATIONS" => "true", - "BUNDLE_SILENCE_ROOT_WARNING" => "true", - "BUNDLE_VERBOSE" => "false" - ) - end - - it "generates only curated documented binstubs" do - status = instance_double(Process::Status, success?: false) - allow(Open3).to receive(:capture3).and_return(["", "", status]) - - expect(Kettle::Jem::Tasks::InstallTask.bundle_binstubs_command).to eq( - %w[bundle binstubs appraisal2 rake rbs rspec-core yard kettle-dev kettle-test kettle-soup-cover stone_checksums] - ) - end - - it "omits curated binstubs for gems missing from the destination bundle" do - status = instance_double(Process::Status, success?: true) - allow(Open3).to receive(:capture3).and_return([ - "appraisal2\nrake\nrbs\nrspec-core\nkettle-dev\nkettle-test\nkettle-soup-cover\nstone_checksums\n", - "", - status - ]) - - expect(Kettle::Jem::Tasks::InstallTask.bundle_binstubs_command("/example", env: {})).to eq( - %w[bundle binstubs appraisal2 rake rbs rspec-core kettle-dev kettle-test kettle-soup-cover stone_checksums] - ) - end - - it "skips bundled handoff when kettle-jem is absent from the destination bundle" do - status = instance_double(Process::Status, success?: true) - allow(Open3).to receive(:capture3).and_return([ - "rake\nrspec-core\n", - "", - status - ]) - - expect(Kettle::Jem::Tasks::InstallTask.bundled_handoff_step(project_root: "/example", env: {}, run_options: {})).to eq( - name: "bundled_handoff", - status: "skipped", - reason: "kettle_jem_not_in_bundle" - ) - end - - it "runs setup commands when the caller passes Ruby ENV" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-install-env-slice", tmp_root) do |root| - write_tree(root, { - "example.gemspec" => <<~RUBY, - Gem::Specification.new do |spec| - spec.name = "example" - spec.summary = "Example gem" - end - RUBY - "Gemfile" => "source \"https://gem.coop\"\n", - ".kettle-jem.yml" => <<~YAML - templates: - root: packaged - apply: true - entries: - - bin/setup - YAML - }) - - command_envs = [] - command_runner = lambda do |_command, chdir:, env:, quiet:| - expect(chdir).to eq(root) - expect(quiet).to be(true) - command_envs << env - {success: true, exitstatus: 0, stdout: "", stderr: ""} - end - - expect { - Kettle::Jem::Tasks::InstallTask.run( - project_root: root, - env: ENV, - run_options: {only: "bin/setup", quiet: true, skip_commit: true}, - command_runner: command_runner - ) - }.not_to raise_error - - expect(command_envs).not_to be_empty - expect(command_envs).to all(be_a(Hash)) - expect(command_envs).to all(include("BUNDLE_GEMFILE" => File.join(root, "Gemfile"))) - end - end - - it "runs setup commands without inherited Bundler activation" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-install-env-bundler-strip", tmp_root) do |root| - write_tree(root, { - "Gemfile" => "source \"https://gem.coop\"\n", - "example.gemspec" => <<~RUBY, - Gem::Specification.new do |spec| - spec.name = "example" - spec.summary = "Example gem" - end - RUBY - ".kettle-jem.yml" => <<~YAML - templates: - root: packaged - apply: true - entries: - - bin/setup - YAML - }) - - inherited_env = { - "BUNDLE_GEMFILE" => "/workspace/kettle-jem/Gemfile", - "BUNDLE_BIN_PATH" => "/workspace/kettle-jem/bin/bundle", - "BUNDLE_LOCKFILE" => "/workspace/kettle-jem/Gemfile.lock", - "BUNDLER_SETUP" => "/workspace/kettle-jem/bundler/setup", - "BUNDLER_VERSION" => "4.0.12", - "GIT_CONFIG_COUNT" => "1", - "GIT_CONFIG_KEY_0" => "safe.bareRepository", - "GIT_CONFIG_VALUE_0" => "explicit", - "RUBYLIB" => "/workspace/kettle-jem/lib", - "RUBYOPT" => "-rbundler/setup" - } - command_envs = [] - command_runner = lambda do |_command, chdir:, env:, quiet:| - expect(chdir).to eq(root) - expect(quiet).to be(true) - command_envs << env - {success: true, exitstatus: 0, stdout: "", stderr: ""} - end - - Kettle::Jem::Tasks::InstallTask.run( - project_root: root, - env: inherited_env, - run_options: {only: "bin/setup", quiet: true, skip_commit: true}, - command_runner: command_runner - ) - - expect(command_envs).not_to be_empty - expect(command_envs).to all(include("BUNDLE_GEMFILE" => File.join(root, "Gemfile"))) - expect(command_envs).to all(include( - "BUNDLE_BIN_PATH" => nil, - "BUNDLE_LOCKFILE" => nil, - "BUNDLER_SETUP" => nil, - "BUNDLER_VERSION" => nil, - "GIT_CONFIG_COUNT" => nil, - "GIT_CONFIG_KEY_0" => nil, - "GIT_CONFIG_VALUE_0" => nil, - "RUBYLIB" => nil, - "RUBYOPT" => nil - )) - end - end - - it "uses kettle-family local install roots for templating setup" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-install-family-marker", tmp_root) do |root| - marker_path = File.join(root, "local-install.json") - marker = { - "members_root" => File.join(root, "structuredmerge", "ruby", "gems"), - "local_dependencies" => [ - File.join(root, "kettle-dev", "nomono"), - File.join(root, "kettle-dev", "kettle-dev") - ], - "installed_members" => ["nomono", "kettle-dev", "kettle-jem"] - } - FileUtils.mkdir_p(File.join(marker.fetch("members_root"), "kettle-jem")) - File.write(marker_path, JSON.pretty_generate(marker)) - File.write(File.join(root, "Gemfile"), "source \"https://gem.coop\"\n") - - env = { - "K_JEM_TEMPLATING" => "true", - "KETTLE_FAMILY_LOCAL_INSTALL_MARKER" => marker_path - } - - expect(Kettle::Jem::Tasks::InstallTask.setup_command_env(root, env)).to include( - "BUNDLE_GEMFILE" => File.join(root, "Gemfile"), - "K_JEM_TEMPLATING" => "false" - ) - - disabled_env = env.merge( - "STRUCTUREDMERGE_DEV" => "false", - "KETTLE_DEV_DEV" => "false" - ) - expect(Kettle::Jem::Tasks::InstallTask.setup_command_env(root, disabled_env)).to include( - "BUNDLE_GEMFILE" => File.join(root, "Gemfile"), - "K_JEM_TEMPLATING" => "false", - "STRUCTUREDMERGE_DEV" => "false", - "KETTLE_DEV_DEV" => "false" - ) - end - end - - it "detects rake tasks using the same bundle environment as command execution" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-rake-task-env", tmp_root) do |root| - write_tree(root, { - "Rakefile" => "task default: []\n", - "bin/rake" => <<~RUBY - #!/usr/bin/env ruby - puts "rake rubocop_gradual:autocorrect" if ENV.fetch("K_JEM_TEMPLATING", "false") == "true" - RUBY - }) - FileUtils.chmod("+x", File.join(root, "bin", "rake")) - - expect(Kettle::Jem::Tasks::InstallTask.rake_task_available?(root, "rubocop_gradual:autocorrect", env: {"K_JEM_TEMPLATING" => "false"})).to be(false) - expect(Kettle::Jem::Tasks::InstallTask.rake_task_available?(root, "rubocop_gradual:autocorrect", env: {"K_JEM_TEMPLATING" => "true"})).to be(true) - expect(Kettle::Jem::Tasks::InstallTask.rubocop_gradual_autocorrect_step(root, env: {"K_JEM_TEMPLATING" => "true"})).to include( - name: "rubocop_gradual_autocorrect", - status: "ready" - ) - end - end - - it "runs install follow-up templating whenever the canonical config changes" do - report = { - recipe_reports: [ - { - relative_path: Kettle::Jem::KETTLE_CONFIG_PATH, - recipe_name: "template_source_application_structuredmerge_kettle_jem_yml", - changed: true - } - ] - } - - expect(Kettle::Jem::Tasks::InstallTask.config_bootstrap_changed?(report)).to be(true) - end - - it "skips rubocop gradual autocorrect when the destination Rakefile does not define the task" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-install-missing-rubocop-gradual-task", tmp_root) do |root| - write_tree(root, { - "Rakefile" => "task default: []\n", - "bin/rake" => <<~SH - #!/usr/bin/env sh - echo "rake default" - SH - }) - FileUtils.chmod("+x", File.join(root, "bin", "rake")) - - expect(Kettle::Jem::Tasks::InstallTask.rubocop_gradual_autocorrect_step(root)).to eq( - name: "rubocop_gradual_autocorrect", - status: "skipped", - reason: "missing_rubocop_gradual_task" - ) - end - end - - it "honors install ENV skip-commit and normalizes lockfiles without templating env overrides" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-install-env-skip-lock", tmp_root) do |root| - write_tree(root, { - "Gemfile" => "source \"https://gem.coop\"\n", - "Gemfile.lock" => <<~LOCK, - GEM - remote: https://gem.coop/ - specs: - - PLATFORMS - arm64-darwin - ruby - x86_64-darwin - - DEPENDENCIES - - BUNDLED WITH - 4.0.10 - LOCK - "example.gemspec" => <<~RUBY, - Gem::Specification.new do |spec| - spec.name = "example" - spec.summary = "Example gem" - end - RUBY - ".kettle-jem.yml" => <<~YAML - templates: - root: packaged - apply: true - entries: - - bin/setup - YAML - }) - - env = { - "KETTLE_JEM_SKIP_COMMIT" => "true", - "K_JEM_TEMPLATING" => "true", - "KETTLE_DEV_DEV" => "/workspace/my", - "GALTZO_FLOSS_DEV" => "/workspace/galtzo-floss", - "STRUCTUREDMERGE_DEV" => "/workspace/smorg-rb" - } - commands = [] - command_runner = lambda do |command, chdir:, env:, quiet:| - commands << {command: command, chdir: chdir, env: env, quiet: quiet} - {success: true, exitstatus: 0, stdout: "", stderr: ""} - end - - install = Kettle::Jem::Tasks::InstallTask.run( - project_root: root, - env: env, - run_options: {only: "bin/setup"}, - command_runner: command_runner - ) - - expect(install.fetch(:install_steps)).to include( - name: "bootstrap_commit", - status: "skipped", - reason: "skip_commit" - ) - expect(install.fetch(:install_steps)).to include(hash_including( - name: "bundle_install_requested_env", - command: %w[bundle install], - status: "succeeded", - reason: "executed" - )) - expect(install.fetch(:install_steps)).to include(hash_including( - name: "bundle_lock_normalization", - command: %w[bundle update], - status: "succeeded", - reason: "executed" - )) - lock_command = commands.find { |entry| entry.fetch(:command) == %w[bundle update] } - expect(lock_command).not_to be_nil - requested_bundle_install = commands.find { |entry| entry.fetch(:command) == %w[bundle install] } - expect(requested_bundle_install).not_to be_nil - command_names = commands.map { |entry| entry.fetch(:command) } - expect(command_names.index(%w[bundle install])).to be < command_names.index(["bin/setup"]) - expect(requested_bundle_install.fetch(:env)).to include( - "BUNDLE_GEMFILE" => File.join(root, "Gemfile"), - "K_JEM_TEMPLATING" => "true", - "KETTLE_DEV_DEV" => "/workspace/my", - "GALTZO_FLOSS_DEV" => "/workspace/galtzo-floss", - "STRUCTUREDMERGE_DEV" => "/workspace/smorg-rb" - ) - expect(lock_command.fetch(:env)).to include( - "BUNDLE_GEMFILE" => File.join(root, "Gemfile"), - "K_JEM_TEMPLATING" => "false", - "KETTLE_DEV_DEV" => "false", - "GALTZO_FLOSS_DEV" => "false", - "STRUCTUREDMERGE_DEV" => "false" - ) - expect(command_names).not_to include(%w[git add -A]) - end - end - - it "can skip install lockfile normalization from ENV" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-install-skip-lock-normalization", tmp_root) do |root| - write_tree(root, { - "Gemfile" => "source \"https://gem.coop\"\n", - "Gemfile.lock" => "GEM\n remote: https://gem.coop/\n specs:\n", - "example.gemspec" => <<~RUBY - Gem::Specification.new do |spec| - spec.name = "example" - spec.summary = "Example gem" - end - RUBY - }) - - install = Kettle::Jem::Tasks::InstallTask.run( - project_root: root, - env: {"KETTLE_JEM_SKIP_LOCK_NORMALIZATION" => "true"}, - run_options: {only: "example.gemspec", skip_commit: true}, - command_runner: lambda { |_command, chdir:, env:, quiet:| {success: true, exitstatus: 0, stdout: "", stderr: ""} } - ) - - expect(install.fetch(:install_steps)).to include( - name: "bundle_lock_normalization", - status: "skipped", - reason: "skip_lock_normalization" - ) - end - end - - it "normalizes lockfiles from the template task without templating env overrides" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-template-lock-normalization", tmp_root) do |root| - write_tree(root, { - "Gemfile" => "source \"https://gem.coop\"\n", - "Gemfile.lock" => <<~LOCK, - GEM - remote: https://gem.coop/ - specs: - - PLATFORMS - arm64-darwin - ruby - x86_64-darwin - - DEPENDENCIES - - BUNDLED WITH - 4.0.10 - LOCK - "example.gemspec" => <<~RUBY, - Gem::Specification.new do |spec| - spec.name = "example" - spec.summary = "Example gem" - end - RUBY - ".kettle-jem.yml" => <<~YAML - templates: - root: packaged - apply: true - entries: [] - YAML - }) - - env = { - "K_JEM_TEMPLATING" => "true", - "KETTLE_DEV_DEV" => "/workspace/my", - "GALTZO_FLOSS_DEV" => "/workspace/galtzo-floss", - "STRUCTUREDMERGE_DEV" => "/workspace/smorg-rb", - "RUBYOPT" => "-rbundler/setup", - "RUBYLIB" => "/workspace/kettle-jem/lib", - "BUNDLE_BIN_PATH" => "/workspace/kettle-jem/bin/bundle", - "BUNDLE_LOCKFILE" => "/workspace/kettle-jem/Gemfile.lock", - "BUNDLER_SETUP" => "/workspace/kettle-jem/bundler/setup", - "BUNDLER_VERSION" => "4.0.12" - } - commands = [] - command_runner = lambda do |command, chdir:, env:, quiet:| - commands << {command: command, chdir: chdir, env: env, quiet: quiet} - {success: true, exitstatus: 0, stdout: "", stderr: ""} - end - - report = Kettle::Jem::Tasks::TemplateTask.run( - project_root: root, - env: env, - run_options: {quiet: true}, - command_runner: command_runner - ) - - expect(report.fetch(:template_steps)).to include(hash_including( - name: "bundle_lock_normalization", - command: %w[bundle update], - status: "succeeded", - reason: "executed" - )) - lock_command = commands.find { |entry| entry.fetch(:command) == %w[bundle update] } - expect(lock_command).not_to be_nil - expect(lock_command.fetch(:env)).to include( - "BUNDLE_GEMFILE" => File.join(root, "Gemfile"), - "K_JEM_TEMPLATING" => "false", - "KETTLE_DEV_DEV" => "false", - "GALTZO_FLOSS_DEV" => "false", - "STRUCTUREDMERGE_DEV" => "false" - ) - expect(lock_command.fetch(:env)).to include( - "RUBYOPT" => nil, - "RUBYLIB" => nil, - "BUNDLE_BIN_PATH" => nil, - "BUNDLE_LOCKFILE" => nil, - "BUNDLER_SETUP" => nil, - "BUNDLER_VERSION" => nil - ) - end - end - - it "activates local git hooks when requested by the template task" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-template-hook-activation", tmp_root) do |root| - write_tree(root, { - "Gemfile" => "source \"https://gem.coop\"\n", - "Gemfile.lock" => <<~LOCK, - GEM - remote: https://gem.coop/ - specs: - - PLATFORMS - ruby - - DEPENDENCIES - - BUNDLED WITH - 4.0.10 - LOCK - ".kettle-jem.yml" => <<~YAML, - templates: - root: packaged - apply: true - entries: [] - YAML - ".git-hooks/commit-msg" => "#!/bin/sh\n", - ".git-hooks/prepare-commit-msg" => "#!/bin/sh\n" - }) - - commands = [] - command_runner = lambda do |command, chdir:, env:, quiet:| - commands << {command: command, chdir: chdir, env: env, quiet: quiet} - {success: true, exitstatus: 0, stdout: "", stderr: ""} - end - - report = Kettle::Jem::Tasks::TemplateTask.run( - project_root: root, - env: {"K_JEM_TEMPLATING" => "true"}, - run_options: {hook_templates: "l", quiet: true}, - command_runner: command_runner - ) - - expect(report.fetch(:template_steps)).to include(hash_including( - name: "hook_templates", - command: %w[git config core.hooksPath .git-hooks], - status: "succeeded", - reason: "executed" - )) - expect(commands.map { |entry| entry.fetch(:command) }).to include(%w[git config core.hooksPath .git-hooks]) - expect(File.stat(File.join(root, ".git-hooks", "commit-msg")).mode & 0o111).not_to eq(0) - expect(File.stat(File.join(root, ".git-hooks", "prepare-commit-msg")).mode & 0o111).not_to eq(0) - end - end - - it "makes generated git hook scripts executable during template apply" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-template-hook-mode", tmp_root) do |root| - write_tree(root, { - "demo.gemspec" => <<~RUBY, - Gem::Specification.new do |spec| - spec.name = "demo" - spec.version = "1.0.0" - spec.summary = "Demo" - end - RUBY - ".kettle-jem.yml" => <<~YAML, - templates: - root: packaged - apply: true - entries: [] - YAML - ".git-hooks/commit-msg" => "#!/bin/sh\n", - ".git-hooks/prepare-commit-msg" => "#!/bin/sh\n" - }) - FileUtils.chmod(0o644, File.join(root, ".git-hooks", "commit-msg")) - FileUtils.chmod(0o644, File.join(root, ".git-hooks", "prepare-commit-msg")) - - apply = described_class.apply_project(root, env: {}, run_options: {skip_commit: true}) - - expect(apply.fetch(:post_apply_steps)).to include(hash_including( - name: "git_hooks_executable", - status: "updated", - changed_files: contain_exactly(".git-hooks/commit-msg", ".git-hooks/prepare-commit-msg") - )) - expect(File.executable?(File.join(root, ".git-hooks", "commit-msg"))).to be(true) - expect(File.executable?(File.join(root, ".git-hooks", "prepare-commit-msg"))).to be(true) - end - end - - it "plans local semantic Git driver setup by default" do - step = Kettle::Jem::Tasks::InstallTask.git_drivers_step("/example", {}) - - expect(step).to include( - name: "git_drivers", - status: "ready", - mode: "local", - profile: "semantic-diff", - scope: "local", - reason: "ready_for_local_git_drivers" - ) - expect(step.fetch(:attribute_updates)).to include(hash_including( - pattern: "*.rb", - attributes: {"diff" => "smorg-rb"} - )) - expect(step.fetch(:commands)).to include( - ["git", "config", "--local", "diff.smorg-rb.command", "smorg-rb diff-driver"], - ["git", "config", "--local", "merge.smorg-rb.driver", "smorg-rb merge-driver %O %A %B %P"] - ) - end - - it "plans builtin Git diff attributes when requested" do - step = Kettle::Jem::Tasks::InstallTask.git_drivers_step("/example", {git_drivers: "builtin-diff"}) - - expect(step).to include( - name: "git_drivers", - status: "ready", - mode: "builtin-diff", - profile: "builtin-diff", - scope: "local" - ) - expect(step.fetch(:attribute_updates)).to include(hash_including( - pattern: "*.rb", - attributes: {"diff" => "ruby"} - )) - end - - it "normalizes Git driver mode aliases" do - expect(Kettle::Jem::Tasks::InstallTask.normalize_git_drivers_mode(nil)).to eq("local") - expect(Kettle::Jem::Tasks::InstallTask.normalize_git_drivers_mode("off")).to eq("none") - expect(Kettle::Jem::Tasks::InstallTask.normalize_git_drivers_mode("yes")).to eq("local") - expect(Kettle::Jem::Tasks::InstallTask.normalize_git_drivers_mode("g")).to eq("global") - expect(Kettle::Jem::Tasks::InstallTask.normalize_git_drivers_mode("include")).to eq("include-file") - expect(Kettle::Jem::Tasks::InstallTask.normalize_git_drivers_mode("b")).to eq("builtin-diff") - expect(Kettle::Jem::Tasks::InstallTask.normalize_git_drivers_mode("check")).to eq("check") - expect(Kettle::Jem::Tasks::InstallTask.normalize_git_drivers_mode("undo")).to eq("undo") - expect(Kettle::Jem::Tasks::InstallTask.normalize_git_drivers_mode("custom")).to eq("custom") - end - - it "plans a RuboCop-LTS branch switch for local RuboCop-LTS templating" do - report = { - facts: { - templates: { - tokens: { - "KJ|RUBOCOP_RUBY_GEM" => "rubocop-ruby2_4" - } - } - } - } - - allow(Kettle::Jem::Tasks::InstallTask).to receive(:current_git_branch).and_return("r1_8-even-v0") - - step = Kettle::Jem::Tasks::InstallTask.rubocop_lts_local_branch_step( - report, - env: {"RUBOCOP_LTS_LOCAL" => "/workspace/rubocop-lts"} - ) - - expect(step).to include( - name: "rubocop_lts_local_branch", - command: ["git", "-C", "/workspace/rubocop-lts/rubocop-lts", "switch", "r2_4-even-v12"], - status: "ready", - path: "/workspace/rubocop-lts/rubocop-lts", - current_branch: "r1_8-even-v0", - branch: "r2_4-even-v12", - reason: "rubocop_lts_local_branch_matrix" - ) - end - - it "skips the RuboCop-LTS branch switch when the local checkout is already on the matrix branch" do - report = { - facts: { - templates: { - tokens: { - "KJ|RUBOCOP_RUBY_GEM" => "rubocop-ruby2_4" - } - } - } - } - - allow(Kettle::Jem::Tasks::InstallTask).to receive(:current_git_branch).and_return("r2_4-even-v12") - - step = Kettle::Jem::Tasks::InstallTask.rubocop_lts_local_branch_step( - report, - env: {"RUBOCOP_LTS_LOCAL" => "/workspace/rubocop-lts"} - ) - - expect(step).to include( - name: "rubocop_lts_local_branch", - status: "already_current", - path: "/workspace/rubocop-lts/rubocop-lts", - branch: "r2_4-even-v12" - ) - end - - it "skips the RuboCop-LTS branch switch when templating the RuboCop-LTS checkout itself" do - report = { - facts: { - templates: { - tokens: { - "KJ|RUBOCOP_RUBY_GEM" => "rubocop-ruby3_2" - } - } - } - } - - step = Kettle::Jem::Tasks::InstallTask.rubocop_lts_local_branch_step( - report, - env: {"RUBOCOP_LTS_LOCAL" => "/workspace/rubocop-lts"}, - project_root: "/workspace/rubocop-lts/rubocop-lts" - ) - - expect(step).to include( - name: "rubocop_lts_local_branch", - status: "skipped", - path: "/workspace/rubocop-lts/rubocop-lts", - branch: "r3_2-even-v24", - reason: "destination_is_rubocop_lts_checkout" - ) - end - - it "skips the RuboCop-LTS branch switch when the checkout paths differ only by realpath" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-rubocop-lts-realpath", tmp_root) do |root| - local_root = File.join(root, "rubocop-lts") - checkout = File.join(local_root, "rubocop-lts") - FileUtils.mkdir_p(checkout) - alias_path = File.join(root, "rubocop-lts-alias") - File.symlink(local_root, alias_path) - - report = { - facts: { - templates: { - tokens: { - "KJ|RUBOCOP_RUBY_GEM" => "rubocop-ruby3_2" - } - } - } - } - - step = Kettle::Jem::Tasks::InstallTask.rubocop_lts_local_branch_step( - report, - env: {"RUBOCOP_LTS_LOCAL" => alias_path}, - project_root: checkout - ) - - expect(step).to include( - name: "rubocop_lts_local_branch", - status: "skipped", - path: File.join(alias_path, "rubocop-lts"), - branch: "r3_2-even-v24", - reason: "destination_is_rubocop_lts_checkout" - ) - end - end - - it "does not plan a RuboCop-LTS branch switch when local RuboCop-LTS is disabled" do - report = { - facts: { - templates: { - tokens: { - "KJ|RUBOCOP_RUBY_GEM" => "rubocop-ruby2_4" - } - } - } - } - - expect(Kettle::Jem::Tasks::InstallTask.rubocop_lts_local_branch_step( - report, - env: {"RUBOCOP_LTS_LOCAL" => "off"} - )).to be_nil - end - - it "fails local RuboCop-LTS branch planning when the selected wrapper is unknown" do - report = { - facts: { - templates: { - tokens: { - "KJ|RUBOCOP_RUBY_GEM" => "rubocop-ruby9_9" - } - } - } - } - - expect { - Kettle::Jem::Tasks::InstallTask.rubocop_lts_local_branch_step( - report, - env: {"RUBOCOP_LTS_LOCAL" => "/workspace/rubocop-lts"} - ) - }.to raise_error(Kettle::Jem::Error, /Cannot select RUBOCOP_LTS_LOCAL branch/) - end - - it "executes the RuboCop-LTS branch switch before later orchestration commands" do - commands = [] - command_runner = lambda do |command, **| - commands << command - {success: true, exitstatus: 0, stdout: "", stderr: ""} - end - - result = Kettle::Jem::Tasks::InstallTask.execute_orchestration_steps( - [ - { - name: "rubocop_lts_local_branch", - command: ["git", "-C", "/workspace/rubocop-lts/rubocop-lts", "switch", "r2_4-even-v12"], - status: "ready" - }, - { - name: "rubocop_gradual_autocorrect", - command: ["sh", "-c", "rm -f .rubocop_gradual.lock && bin/rake rubocop_gradual:autocorrect"], - status: "ready" - } - ], - project_root: "/project", - env: {}, - run_options: {}, - command_runner: command_runner - ) - - expect(result).to include( - hash_including(name: "rubocop_lts_local_branch", status: "succeeded"), - hash_including(name: "rubocop_gradual_autocorrect", status: "succeeded") - ) - expect(commands).to eq([ - ["git", "-C", "/workspace/rubocop-lts/rubocop-lts", "switch", "r2_4-even-v12"], - ["sh", "-c", "rm -f .rubocop_gradual.lock && bin/rake rubocop_gradual:autocorrect"] - ]) - end - - it "writes managed .gitattributes and local config for local semantic Git driver setup" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-git-drivers", tmp_root) do |root| - write_tree(root, {".gitattributes" => "*.md diff=markdown\n"}) - step = Kettle::Jem::Tasks::InstallTask.git_drivers_step(root, {}) - commands = [] - command_runner = lambda do |command, **| - commands << command - {success: true, exitstatus: 0, stdout: "", stderr: ""} - end - - result = Kettle::Jem::Tasks::InstallTask.execute_orchestration_steps( - [step], - project_root: root, - env: {}, - run_options: {}, - command_runner: command_runner - ).first - - expect(result).to include(status: "succeeded", changed_files: [".gitattributes"]) - expect(File.read(File.join(root, ".gitattributes"))).to eq(<<~ATTRIBUTES) - *.md diff=markdown - # <> do not edit below this line - *.rb diff=smorg-rb - *.go diff=smorg-go - *.rs diff=smorg-rs - # <> - ATTRIBUTES - expect(commands).to include( - ["git", "config", "--local", "diff.smorg-rb.command", "smorg-rb diff-driver"], - ["git", "config", "--local", "merge.smorg-rb.driver", "smorg-rb merge-driver %O %A %B %P"] - ) - end - end - - it "reports conflicting unmanaged .gitattributes entries" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-git-driver-conflict", tmp_root) do |root| - write_tree(root, {".gitattributes" => "*.rb diff=ruby\n"}) - - step = Kettle::Jem::Tasks::InstallTask.git_drivers_step(root, {}) - - expect(step).to include( - status: "blocked", - reason: "git_driver_attribute_conflict" - ) - expect(step.fetch(:diagnostics)).to include(hash_including( - key: "conflicting_attributes", - path: ".gitattributes", - pattern: "*.rb", - blocking: true - )) - end - end - - it "plans local Git driver setup without writing attributes in dry-run mode" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-git-driver-dry-run", tmp_root) do |root| - step = Kettle::Jem::Tasks::InstallTask.git_drivers_step(root, {dry_run: true}) - - expect(step).to include( - status: "planned", - reason: "dry_run_git_driver_attributes" - ) - end - end - - it "plans global Git driver command registration when requested" do - step = Kettle::Jem::Tasks::InstallTask.git_drivers_step("/example", {git_drivers: "global"}) - - expect(step).to include( - name: "git_drivers", - status: "ready", - mode: "global", - profile: "semantic-diff", - scope: "global", - reason: "ready_for_global_git_drivers" - ) - expect(step.fetch(:commands)).to include( - ["git", "config", "--global", "diff.smorg-rb.command", "smorg-rb diff-driver"], - ["git", "config", "--global", "merge.smorg-rb.driver", "smorg-rb merge-driver %O %A %B %P"] - ) - expect(step.fetch(:diagnostics)).to include(hash_including(key: "forge_ignores_external_diff_drivers")) - end - - it "plans global Git driver command removal with unset-all when requested" do - step = Kettle::Jem::Tasks::InstallTask.git_drivers_step("/example", {git_drivers: "undo"}) - - expect(step).to include( - name: "git_drivers", - status: "ready", - mode: "undo", - profile: "all", - scope: "local", - reason: "ready_for_git_driver_undo" - ) - expect(step.fetch(:commands)).to include( - ["git", "config", "--global", "--unset-all", "diff.smorg-rb.command"], - ["git", "config", "--global", "--unset-all", "merge.smorg-rb.driver"], - ["git", "config", "--global", "--unset-all", "merge.smorg-rb.name"] - ) - end - - it "writes include-file Git driver configuration when requested" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-git-driver-include", tmp_root) do |root| - step = Kettle::Jem::Tasks::InstallTask.git_drivers_step(root, {git_drivers: "include-file"}) - commands = [] - command_runner = lambda do |command, **| - commands << command - {success: true, exitstatus: 0, stdout: "", stderr: ""} - end - - result = Kettle::Jem::Tasks::InstallTask.execute_orchestration_steps( - [step], - project_root: root, - env: {}, - run_options: {}, - command_runner: command_runner - ).first - - expect(result).to include(status: "succeeded", changed_files: [".git/smorg/config"]) - expect(commands).to include(["git", "config", "--local", "include.path", ".git/smorg/config"]) - expect(File.read(File.join(root, ".git", "smorg", "config"))).to include("[diff \"smorg-rb\"]") - end - end - - it "loads project Git driver manifests for attribute and command planning" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-git-driver-manifest", tmp_root) do |root| - write_tree(root, { - ".structuredmerge/git-drivers.toml" => <<~TOML - version = 1 - driver_namespace = "smorg" - - [profiles.semantic-diff] - description = "Custom Ruby driver" - - [[profiles.semantic-diff.attributes]] - pattern = "*.rake" - diff = "smorg-rb" - - [[profiles.semantic-diff.git_config]] - scope = "global" - key = "diff.smorg-rb.command" - value = "bundle exec smorg-rb diff-driver" - TOML - }) - - local = Kettle::Jem::Tasks::InstallTask.git_drivers_step(root, {}) - global = Kettle::Jem::Tasks::InstallTask.git_drivers_step(root, {git_drivers: "global"}) - - expect(local.fetch(:attribute_updates)).to eq([ - {path: ".gitattributes", pattern: "*.rake", attributes: {"diff" => "smorg-rb"}} - ]) - expect(global.fetch(:commands)).to eq([ - ["git", "config", "--global", "diff.smorg-rb.command", "bundle exec smorg-rb diff-driver"] - ]) - end - end - - it "keeps committed Git driver manifests on the smorg-rb executable name" do - repo_root = File.expand_path("../../..", __dir__) - manifest_paths = [ - File.join(repo_root, ".structuredmerge", "git-drivers.toml"), - File.join(repo_root, "gems", "kettle-jem", ".structuredmerge", "git-drivers.toml") - ] - - manifest_paths.each do |path| - content = File.read(path) - - expect(content).to include('diff = "smorg-rb"') - expect(content).to include('key = "diff.smorg-rb.command"') - expect(content).to include('value = "smorg-rb diff-driver"') - expect(content).not_to include("smorg-ruby") - end - end - - it "rejects unsafe interpolation in committed Git driver manifests" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-git-driver-unsafe-manifest", tmp_root) do |root| - write_tree(root, { - ".structuredmerge/git-drivers.toml" => <<~TOML - version = 1 - - [profiles.semantic-diff] - - [[profiles.semantic-diff.git_config]] - scope = "global" - key = "diff.smorg-rb.command" - value = "smorg-rb $(danger)" - TOML - }) - - expect do - Kettle::Jem::Tasks::InstallTask.git_drivers_step(root, {}) - end.to raise_error(Kettle::Jem::Error, /unsafe command interpolation/) - end - end - - it "rejects cachetextconv outside explicit textconv profiles" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-git-driver-cachetextconv", tmp_root) do |root| - write_tree(root, { - ".structuredmerge/git-drivers.toml" => <<~TOML - version = 1 - - [profiles.semantic-diff] - - [[profiles.semantic-diff.git_config]] - scope = "global" - key = "diff.smorg-rb.cachetextconv" - value = "true" - TOML - }) - - expect do - Kettle::Jem::Tasks::InstallTask.git_drivers_step(root, {}) - end.to raise_error(Kettle::Jem::Error, /cachetextconv requires an explicit textconv profile/) - end - end - - it "keeps semantic diff commands separate from textconv projections" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-git-driver-textconv-separation", tmp_root) do |root| - write_tree(root, { - ".structuredmerge/git-drivers.toml" => <<~TOML - version = 1 - - [profiles.semantic-diff] - - [[profiles.semantic-diff.git_config]] - scope = "global" - key = "diff.smorg-rb.command" - value = "smorg-rb diff-driver" - - [profiles.textconv-normalized] - - [[profiles.textconv-normalized.git_config]] - scope = "global" - key = "diff.smorg-json-textconv.textconv" - value = "smorg-rb textconv --format json" - - [[profiles.textconv-normalized.git_config]] - scope = "global" - key = "diff.smorg-json-textconv.cachetextconv" - value = "true" - TOML - }) - - manifest = Kettle::Jem::Tasks::InstallTask.git_driver_manifest(root) - semantic_commands = Kettle::Jem::Tasks::InstallTask.git_driver_global_commands(manifest, "semantic-diff") - semantic_local_commands = Kettle::Jem::Tasks::InstallTask.git_driver_local_commands(manifest, "semantic-diff") - textconv_commands = Kettle::Jem::Tasks::InstallTask.git_driver_global_commands(manifest, "textconv-normalized") - - expect(semantic_commands).to eq([ - ["git", "config", "--global", "diff.smorg-rb.command", "smorg-rb diff-driver"] - ]) - expect(semantic_local_commands).to eq([ - ["git", "config", "--local", "diff.smorg-rb.command", "smorg-rb diff-driver"] - ]) - expect(textconv_commands).to contain_exactly( - ["git", "config", "--global", "diff.smorg-json-textconv.textconv", "smorg-rb textconv --format json"], - ["git", "config", "--global", "diff.smorg-json-textconv.cachetextconv", "true"] - ) - end - end - - it "keeps textconv projections display-only and out of merge inputs" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-git-driver-textconv-display-only", tmp_root) do |root| - write_tree(root, { - ".structuredmerge/git-drivers.toml" => <<~TOML - version = 1 - - [profiles.textconv-normalized] - - [[profiles.textconv-normalized.attributes]] - pattern = "*.json" - diff = "smorg-json-textconv" - - [[profiles.textconv-normalized.git_config]] - scope = "global" - key = "diff.smorg-json-textconv.textconv" - value = "smorg-rb textconv --format json" - TOML - }) - - manifest = Kettle::Jem::Tasks::InstallTask.git_driver_manifest(root) - attributes = Kettle::Jem::Tasks::InstallTask.git_driver_attribute_updates(manifest, "textconv-normalized") - commands = Kettle::Jem::Tasks::InstallTask.git_driver_global_commands(manifest, "textconv-normalized") - - expect(attributes).to eq([ - {path: ".gitattributes", pattern: "*.json", attributes: {"diff" => "smorg-json-textconv"}} - ]) - expect(attributes.flat_map { |update| update.fetch(:attributes).keys }).not_to include("merge") - expect(commands.map { |command| command[3] }).to contain_exactly("diff.smorg-json-textconv.textconv") - expect(commands.map { |command| command[3] }).not_to include(a_string_matching(/\Amerge\./)) - end - end - - it "skips Git driver setup when explicitly disabled" do - step = Kettle::Jem::Tasks::InstallTask.git_drivers_step("/example", {git_drivers: "none"}) - - expect(step).to include( - name: "git_drivers", - status: "skipped", - reason: "not_requested", - mode: "none" - ) - end - - it "loads canonical structuredmerge kettle-jem config before legacy root config" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-config-discovery", tmp_root) do |root| - write_tree(root, { - ".kettle-jem.yml" => "templates:\n root: legacy\n", - ".structuredmerge/kettle-jem.yml" => "templates:\n root: canonical\n" - }) - - expect(described_class.kettle_jem_config(root).fetch("templates").fetch("root")).to eq("canonical") - end - end - - it "migrates legacy kettle-jem config to the structuredmerge directory" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-config-migration", tmp_root) do |root| - write_tree(root, { - ".kettle-jem.yml" => "templates:\n root: packaged\n" - }) - - step = Kettle::Jem::Tasks::InstallTask.kettle_config_migration_step(root) - - expect(step).to include( - name: "kettle_config_migration", - status: "migrated", - reason: "legacy_kettle_config_migrated", - canonical_path: ".structuredmerge/kettle-jem.yml", - legacy_path: ".kettle-jem.yml" - ) - expect(File).not_to exist(File.join(root, ".kettle-jem.yml")) - expect(File.read(File.join(root, ".structuredmerge", "kettle-jem.yml"))).to eq("templates:\n root: packaged\n") - end - end - - it "reports a conflict when canonical and legacy kettle-jem configs both exist" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-config-migration-conflict", tmp_root) do |root| - write_tree(root, { - ".kettle-jem.yml" => "templates:\n root: legacy\n", - ".structuredmerge/kettle-jem.yml" => "templates:\n root: canonical\n" - }) - - step = Kettle::Jem::Tasks::InstallTask.kettle_config_migration_step(root) - - expect(step).to include( - name: "kettle_config_migration", - status: "blocked", - reason: "legacy_kettle_config_conflict" - ) - expect(step.fetch(:diagnostics)).to include(hash_including( - key: "legacy_kettle_config_conflict", - path: ".kettle-jem.yml", - canonical_path: ".structuredmerge/kettle-jem.yml" - )) - end - end - - it "reports gemspec dependency sync through the install task" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-install-gemspec-sync", tmp_root) do |root| - write_tree(root, { - "example.gemspec" => <<~RUBY, - Gem::Specification.new do |spec| - spec.name = "example" - spec.summary = "Example gem" - end - RUBY - ".kettle-jem.yml" => <<~YAML, - templates: - root: template - apply: true - entries: - - source: example.gemspec - target: example.gemspec - YAML - "template/example.gemspec.example" => <<~RUBY - Gem::Specification.new do |spec| - spec.name = "template" - spec.summary = "Template gem" - spec.add_development_dependency "rake", "~> 13.0" - end - RUBY - }) - command_runner = lambda do |_command, **| - {success: true, exitstatus: 0, stdout: "", stderr: ""} - end - - install = Kettle::Jem::Tasks::InstallTask.run( - project_root: root, - env: {}, - run_options: {only: "example.gemspec", skip_commit: true}, - command_runner: command_runner - ) - - expect(install.fetch(:install_steps)).to include( - name: "gemspec_dependency_sync", - path: "example.gemspec", - status: "applied", - development_dependencies: ["rake"] - ) - expect(File.read(File.join(root, "example.gemspec"))).to include('spec.add_development_dependency "rake", "~> 13.0"') - end - end - - it "drops retired kettle-drift gemspec development dependencies during gemspec sync" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-retired-gemspec-dev-dependency", tmp_root) do |root| - write_tree(root, { - "example.gemspec" => <<~RUBY, - Gem::Specification.new do |spec| - spec.name = "example" - spec.summary = "Example gem" - spec.add_development_dependency "kettle-drift" - spec.add_development_dependency "rake", "~> 13.0" - end - RUBY - ".kettle-jem.yml" => <<~YAML, - templates: - root: template - apply: true - entries: - - source: example.gemspec - target: example.gemspec - YAML - "template/example.gemspec.example" => <<~RUBY - Gem::Specification.new do |spec| - spec.name = "template" - spec.summary = "Template gem" - end - RUBY - }) - - plan = described_class.plan_project(root, env: {}, run_options: {only: "example.gemspec"}) - report = plan.fetch(:recipe_reports).find do |candidate| - candidate.fetch(:relative_path) == "example.gemspec" - end - content = report.fetch(:final_content) - - expect(content).not_to include("kettle-drift") - expect(content).to include('spec.add_development_dependency "rake", "~> 13.0"') - end - end - - it "ports old install post-template project cleanup and safety checks" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-install-post-processing", tmp_root) do |root| - write_tree(root, { - "example.gemspec" => <<~RUBY, - Gem::Specification.new do |spec| - spec.name = "example" - spec.summary = "🥘 Example gem" - spec.description = "Example description" - spec.homepage = "\#{homepage}" - spec.required_ruby_version = ">= 3.2" - end - RUBY - ".kettle-jem.yml" => <<~YAML, - project_emoji: "🔧" - templates: - root: packaged - apply: true - entries: - - README.md - YAML - "README.md" => <<~MARKDOWN, - # 🍲 Example - - | Runtime | Works | - | --- | --- | - | Works with MRI Ruby | [![ruby-2.7][💎ruby-2.7i]][🚎2.7]
        [![ruby-3.2][💎ruby-3.2i]][🚎3.2]
        [![ruby-current][💎ruby-c-i]][🚎current] | - - [💎ruby-2.7i]: https://img.shields.io/badge/Ruby-2.7-red.svg - [💎ruby-3.2i]: https://img.shields.io/badge/Ruby-3.2-red.svg - [💎ruby-c-i]: https://img.shields.io/badge/Ruby-current-red.svg - [🚎2.7]: https://github.com/example-org/example/actions/workflows/ruby-2.7.yml - [🚎3.2]: https://github.com/example-org/example/actions/workflows/ruby-3.2.yml - [🚎current]: https://github.com/example-org/example/actions/workflows/current.yml - MARKDOWN - ".github/workflows/ruby-3.2.yml" => "name: Ruby 3.2\n", - "mise.toml" => "[tools]\nruby = \"3.4.1\"\n", - ".ruby-version" => "3.4.1\n", - ".tool-versions" => "ruby 3.4.1\n", - ".env.local.example" => "KETTLE_DEV_DEV=false\n", - ".gitignore" => "tmp/\n" - }) - command_runner = lambda do |_command, **| - {success: true, exitstatus: 0, stdout: "", stderr: ""} - end - - install = Kettle::Jem::Tasks::InstallTask.run( - project_root: root, - env: {"FORGE_ORG" => "example-org"}, - run_options: {only: "README.md", skip_commit: true}, - command_runner: command_runner - ) - - expect(install.fetch(:install_steps)).to include( - name: "legacy_ruby_version_file_cleanup", - status: "applied", - removed_files: [".ruby-version", ".tool-versions"] - ) - expect(install.fetch(:install_steps)).to include( - name: "gemspec_homepage_literal", - path: "example.gemspec", - status: "applied", - homepage: "https://github.com/example-org/example" - ) - expect(install.fetch(:install_steps)).to include( - name: "env_local_gitignore", - path: ".gitignore", - status: "applied" - ) - expect(install.fetch(:install_steps)).to include(hash_including( - name: "readme_gemspec_grapheme_sync", - paths: ["README.md", "example.gemspec"], - status: "applied", - grapheme: "🔧" - )) - expect(File).not_to exist(File.join(root, ".ruby-version")) - expect(File).not_to exist(File.join(root, ".tool-versions")) - gemspec = File.read(File.join(root, "example.gemspec")) - expect(gemspec).to include('spec.homepage = "https://github.com/example-org/example"') - expect(gemspec.scan('spec.homepage = "https://github.com/example-org/example"').size).to eq(1) - expect(gemspec).to include('spec.summary = "🔧 Example gem"') - expect(gemspec).to include('spec.description = "🔧 Example description"') - expect(File.read(File.join(root, ".gitignore"))).to include(".env.local") - readme = File.read(File.join(root, "README.md")) - expect(readme).to include("# 🔧 Example") - expect(readme).not_to include("ruby-2.7") - expect(readme).to include("ruby-3.2") - expect(readme).not_to include("ruby-current") - expect(readme).not_to include("[🚎current]:") - expect(readme).to include("[🚎ruby-3.2-wf]:") - expect(install.fetch(:install_phase_reports)).to include(hash_including( - phase: "post_template", - statuses: hash_including( - "legacy_ruby_version_file_cleanup" => "applied", - "readme_compatibility_badges" => satisfy { |status| %w[applied already_current].include?(status) }, - "readme_gemspec_grapheme_sync" => "applied", - "gemspec_homepage_literal" => "applied", - "env_local_gitignore" => "applied" - ) - )) - expect(install.fetch(:install_summary)).to include( - steps: install.fetch(:install_steps).length, - statuses: include("applied" => be >= 4), - summary: include("install steps") - ) - end - end - - it "uses dotenv structural merge for environment template files" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-dotenv-template-merge", tmp_root) do |root| - write_tree(root, { - "example.gemspec" => <<~RUBY, - Gem::Specification.new do |spec| - spec.name = "example" - spec.summary = "Example gem" - end - RUBY - ".kettle-jem.yml" => <<~YAML, - templates: - root: template - apply: true - entries: - - source: .env.local - target: .env.local.example - YAML - "template/.env.local.example" => <<~ENV, - # Shared development defaults - KETTLE_DEV_DEV=false - DEBUG=false # keep debugging disabled by default - ENV - ".env.local.example" => <<~ENV - # Local documentation must survive - KETTLE_DEV_DEV=true - ENV - }) - - plan = described_class.plan_project(root, env: {}) - report = plan.fetch(:recipe_reports).find { |entry| entry.fetch(:relative_path) == ".env.local.example" } - - expect(report.fetch(:final_content)).to eq(<<~ENV) - # Local documentation must survive - KETTLE_DEV_DEV=true - DEBUG=false # keep debugging disabled by default - ENV - end - end - - it "uses JSON structural merge for JSON template files" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-json-template-merge", tmp_root) do |root| - write_tree(root, { - "example.gemspec" => <<~RUBY, - Gem::Specification.new do |spec| - spec.name = "example" - spec.summary = "Example gem" - end - RUBY - ".kettle-jem.yml" => <<~YAML, - templates: - root: template - apply: true - entries: - - source: devcontainer.json - target: .devcontainer/devcontainer.json - YAML - "template/devcontainer.json.example" => <<~JSON, - { - "name": "template", - "features": { - "ghcr.io/devcontainers/features/git:1": {} - } - } - JSON - ".devcontainer/devcontainer.json" => <<~JSON - { - "name": "destination" - } - JSON - }) - - plan = described_class.plan_project(root, env: {}) - report = plan.fetch(:recipe_reports).find { |entry| entry.fetch(:relative_path) == ".devcontainer/devcontainer.json" } - - expect(report.fetch(:final_content)).to include('"name": "destination"') - expect(report.fetch(:final_content)).to include('"ghcr.io/devcontainers/features/git:1": {}') - end - end - - it "uses JSONC structural merge for JSONC template files" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-jsonc-template-merge", tmp_root) do |root| - write_tree(root, { - "example.gemspec" => <<~RUBY, - Gem::Specification.new do |spec| - spec.name = "example" - spec.summary = "Example gem" - end - RUBY - ".kettle-jem.yml" => <<~YAML, - templates: - root: template - apply: true - entries: - - source: settings.jsonc - target: .vscode/settings.jsonc - YAML - "template/settings.jsonc.example" => <<~JSONC, - { - // Shared editor defaults - "editor.tabSize": 2, - "files.trimTrailingWhitespace": true - } - JSONC - ".vscode/settings.jsonc" => <<~JSONC - { - // Local documentation must survive - "editor.tabSize": 4 - } - JSONC - }) - - plan = described_class.plan_project(root, env: {}) - report = plan.fetch(:recipe_reports).find { |entry| entry.fetch(:relative_path) == ".vscode/settings.jsonc" } - - expect(report.fetch(:final_content)).to eq(<<~JSONC) - { - // Local documentation must survive - "editor.tabSize": 4, - "files.trimTrailingWhitespace": true - } - JSONC - end - end - - it "uses RBS structural merge for RBS template files" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-rbs-template-merge", tmp_root) do |root| - write_tree(root, { - "example.gemspec" => <<~RUBY, - Gem::Specification.new do |spec| - spec.name = "example" - spec.summary = "Example gem" - end - RUBY - ".kettle-jem.yml" => <<~YAML, - templates: - root: template - apply: true - entries: - - source: sig/example/version.rbs - target: sig/example/version.rbs - YAML - "template/sig/example/version.rbs.example" => <<~RBS, - module Example - module Version - VERSION: String - end - - VERSION: String - end - RBS - "sig/example/version.rbs" => <<~RBS - module Example - module Version - VERSION: "1.2.3" - end - end - RBS - }) - - plan = described_class.plan_project(root, env: {}) - report = plan.fetch(:recipe_reports).find { |entry| entry.fetch(:relative_path) == "sig/example/version.rbs" } - - expect(report.fetch(:final_content)).to include('VERSION: "1.2.3"') - expect(report.fetch(:final_content)).to include("VERSION: String") - end - end - - it "loudly rejects explicit Bash structural routing when the node parser is unavailable" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-bash-template-gate", tmp_root) do |root| - write_tree(root, { - "example.gemspec" => <<~RUBY, - Gem::Specification.new do |spec| - spec.name = "example" - spec.summary = "Example gem" - end - RUBY - ".kettle-jem.yml" => <<~YAML, - files: - scripts: - setup: - strategy: merge - file_type: bash - templates: - root: template - apply: true - entries: - - source: setup - target: scripts/setup - YAML - "template/setup.example" => <<~BASH, - #!/usr/bin/env bash - bundle install - BASH - "scripts/setup" => <<~BASH - #!/usr/bin/env bash - bundle check || bundle install - BASH - }) - availability = Bash::Merge::Availability.new( - grammar_path: nil, - node_parser: false, - diagnostics: [{kind: "bash_node_parser_unavailable", message: "missing node adapter"}] - ) - allow(Bash::Merge).to receive(:availability).and_return(availability) - - expect do - described_class.plan_project(root, env: {}) - end.to raise_error(ArgumentError, /failed to merge bash template scripts\/setup: bash structural merge is unavailable/) - end - end - - it "refreshes mise trust after templating mise.toml when mise is available" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-install-mise-trust", tmp_root) do |root| - fake_bin = File.join(root, "fake-bin") - FileUtils.mkdir_p(fake_bin) - fake_mise = File.join(fake_bin, "mise") - File.write(fake_mise, "#!/usr/bin/env sh\nexit 0\n") - FileUtils.chmod(0o755, fake_mise) - write_tree(root, { - "example.gemspec" => <<~RUBY, - Gem::Specification.new do |spec| - spec.name = "example" - spec.summary = "Example gem" - end - RUBY - ".kettle-jem.yml" => <<~YAML, - templates: - root: template - apply: true - entries: - - mise.toml - YAML - "template/mise.toml.example" => <<~TOML - [tools] - ruby = "3.4.1" - TOML - }) - - commands = [] - command_runner = lambda do |command, **| - commands << command - {success: true, exitstatus: 0, stdout: "", stderr: ""} - end - env = {"PATH" => "#{fake_bin}#{File::PATH_SEPARATOR}#{ENV.fetch("PATH", "")}"} - - install = Kettle::Jem::Tasks::InstallTask.run( - project_root: root, - env: env, - run_options: {only: "mise.toml", bootstrap_mode: true, skip_commit: true}, - command_runner: command_runner - ) - - expect(install.fetch(:install_steps)).to include( - name: "mise_trust", - path: "mise.toml", - command: ["mise", "trust", "-C", root], - status: "succeeded", - reason: "executed", - exitstatus: 0 - ) - expect(install.fetch(:install_phase_reports)).to include(hash_including( - phase: "post_template", - statuses: hash_including("mise_trust" => "succeeded") - )) - expect(commands).to include(["mise", "trust", "-C", root]) - end - end - - it "preserves coverage thresholds from an existing coverage workflow in generated mise.toml" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-mise-coverage-thresholds", tmp_root) do |root| - write_tree(root, { - "example.gemspec" => <<~RUBY, - Gem::Specification.new do |spec| - spec.name = "example" - spec.summary = "Example gem" - end - RUBY - ".github/workflows/coverage.yml" => <<~YAML, - env: - K_SOUP_COV_MIN_BRANCH: 64 - K_SOUP_COV_MIN_LINE: 90 - YAML - ".kettle-jem.yml" => <<~YAML, - templates: - root: template - apply: true - entries: - - mise.toml - YAML - "template/mise.toml.example" => <<~TOML - [env] - K_SOUP_COV_MIN_BRANCH = "76" - K_SOUP_COV_MIN_LINE = "92" - - [tools] - ruby = "4.0.6" - TOML - }) - - apply = described_class.apply_project(root, env: {}, run_options: {only: "mise.toml", skip_commit: true}) - mise = File.read(File.join(root, "mise.toml")) - - expect(apply.fetch(:changed_files)).to include("mise.toml") - expect(mise).to include('K_SOUP_COV_MIN_BRANCH = "64"') - expect(mise).to include('K_SOUP_COV_MIN_LINE = "90"') - end - end - - it "preserves coverage thresholds from mise.toml in generated coverage workflow" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-workflow-coverage-thresholds", tmp_root) do |root| - write_tree(root, { - "example.gemspec" => <<~RUBY, - Gem::Specification.new do |spec| - spec.name = "example" - spec.summary = "Example gem" - end - RUBY - "mise.toml" => <<~TOML, - [env] - K_SOUP_COV_MIN_BRANCH = "76" - K_SOUP_COV_MIN_LINE = "100" - TOML - ".kettle-jem.yml" => <<~YAML, - templates: - root: template - apply: true - entries: - - source: .github/workflows/coverage.yml - target: .github/workflows/coverage.yml - YAML - "template/.github/workflows/coverage.yml" => <<~YAML - name: Test Coverage - - env: - K_SOUP_COV_MIN_BRANCH: 100 - K_SOUP_COV_MIN_LINE: 100 - YAML - }) - - apply = described_class.apply_project(root, env: {}, run_options: {only: ".github/workflows/coverage.yml", skip_commit: true}) - workflow = File.read(File.join(root, ".github", "workflows", "coverage.yml")) - - expect(apply.fetch(:changed_files)).to include(".github/workflows/coverage.yml") - expect(workflow).to include("K_SOUP_COV_MIN_BRANCH: 76") - expect(workflow).to include("K_SOUP_COV_MIN_LINE: 100") - end - end - - it "generates QLTY coverage uploads with OIDC in the packaged coverage workflow" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-workflow-coverage-qlty-oidc", tmp_root) do |root| - write_tree(root, { - "example.gemspec" => <<~RUBY, - Gem::Specification.new do |spec| - spec.name = "example" - spec.summary = "Example gem" - end - RUBY - ".kettle-jem.yml" => <<~YAML - templates: - apply: true - entries: - - source: .github/workflows/coverage.yml - target: .github/workflows/coverage.yml - YAML - }) - - apply = described_class.apply_project(root, env: {}, run_options: {only: ".github/workflows/coverage.yml", skip_commit: true}) - workflow = File.read(File.join(root, ".github", "workflows", "coverage.yml")) - - expect(apply.fetch(:changed_files)).to include(".github/workflows/coverage.yml") - expect_pinned_action(workflow, "qltysh/qlty-action/coverage") - expect(workflow).to include("oidc: true") - expect(workflow).not_to include("QLTY_COVERAGE_TOKEN") - expect(workflow).not_to include("KJ|GITHUB_ACTIONS:COVERAGE_UPLOAD_STEPS") - end - end - - it "bootstraps version_gem touchpoints before bundled setup" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-version-gem-bootstrap", tmp_root) do |root| - write_tree(root, { - "example-gem.gemspec" => <<~RUBY, - Gem::Specification.new do |spec| - spec.name = "example-gem" - spec.version = "1.2.3" - spec.summary = "Example gem" - end - RUBY - ".kettle-jem.yml" => <<~YAML, - templates: - root: template - apply: true - entries: - - source: example-gem.gemspec - target: example-gem.gemspec - YAML - "template/example-gem.gemspec.example" => <<~RUBY - Gem::Specification.new do |spec| - spec.name = "example-gem" - spec.version = "1.2.3" - spec.summary = "Example gem" - spec.add_dependency "version_gem", "~> 1.1", ">= 1.1.14" - end - RUBY - }) - commands = [] - command_runner = lambda do |command, **| - commands << command - {success: true, exitstatus: 0, stdout: "", stderr: ""} - end - - install = Kettle::Jem::Tasks::InstallTask.run( - project_root: root, - env: {}, - run_options: {only: "example-gem.gemspec", skip_commit: true}, - command_runner: command_runner - ) - version_path = File.join(root, "lib", "example/gem/version.rb") - entrypoint_path = File.join(root, "lib", "example/gem.rb") - - expect(install.fetch(:install_steps)).to include( - name: "version_gem_bootstrap", - status: "applied", - changed_files: ["lib/example/gem/version.rb", "lib/example/gem.rb", "sig/example/gem.rbs"], - version_path: "lib/example/gem/version.rb", - entrypoint_path: "lib/example/gem.rb", - signature_path: "sig/example/gem.rbs" - ) - expect(install.fetch(:install_phase_reports)).to include(hash_including( - phase: "post_template", - statuses: hash_including("version_gem_bootstrap" => "applied") - )) - expect(File.read(version_path)).to include("module Example") - expect(File.read(version_path)).to include("module Gem") - expect(File.read(version_path)).to include('VERSION = "1.2.3"') - expect(File.read(entrypoint_path)).to include('require "version_gem"') - expect(File.read(entrypoint_path)).to include('require_relative "gem/version"') - expect(File.read(entrypoint_path)).to include("Example::Gem::Version.class_eval do") - signature = File.read(File.join(root, "sig", "example", "gem.rbs")) - expect(signature).to include("module Example") - expect(signature).to include("module Gem") - expect(signature).to include("module Version") - expect(signature).to include("VERSION: String") - expect(commands).to include( - %w[bundle binstubs appraisal2 rake rbs rspec-core yard kettle-dev kettle-test kettle-soup-cover stone_checksums], - kettle_jem_handoff_command("--skip-commit", "--only", "example-gem.gemspec") - ) - end - end - - it "uses configured version_gem namespace before stale entrypoint inference" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - - Dir.mktmpdir("kettle-jem-version-gem-configured-namespace", tmp_root) do |root| - write_tree(root, { - "lib/oauth2/mcp.rb" => <<~RUBY, - # frozen_string_literal: true - - module OAuth2 - module MCP - end - end - - Oauth2::Mcp::Version.class_eval do - extend VersionGem::Basic - end - RUBY - "lib/oauth2/mcp/version.rb" => <<~RUBY - # frozen_string_literal: true - - module OAuth2 - module MCP - VERSION = "0.1.0" - end - end - RUBY - }) - facts = { - package: {name: "oauth2-mcp"}, - rubygems: {entrypoint_require: "oauth2/mcp", namespace: "OAuth2::MCP"}, - project_runtime: {version: "0.1.0"} - } - - step = described_class.send(:version_gem_bootstrap_step, root, facts) - version_file = File.read(File.join(root, "lib", "oauth2", "mcp", "version.rb")) - signature = File.read(File.join(root, "sig", "oauth2", "mcp.rbs")) - - expect(step.fetch(:status)).to eq("applied") - expect(version_file).to include("module OAuth2") - expect(version_file).to include("module MCP") - expect(version_file).not_to include("module Oauth2") - expect(signature).to include("module OAuth2") - expect(signature).to include("module MCP") - expect(signature).not_to include("module Oauth2") - end - end - - it "discovers public entrypoint version namespace before stale gemspec metadata" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - - Dir.mktmpdir("kettle-jem-version-gem-public-entrypoint-namespace", tmp_root) do |root| - write_tree(root, { - "oauth2.gemspec" => <<~RUBY, - Gem::Specification.new do |spec| - spec.name = "oauth2" - spec.version = Module.new.tap { |mod| Kernel.load("\#{__dir__}/lib/oauth2/version.rb", mod) }::Oauth2::Version::VERSION - spec.summary = "OAuth2" - spec.required_ruby_version = ">= 2.2.0" - end - RUBY - "lib/oauth2.rb" => <<~RUBY, - # frozen_string_literal: true - - require_relative "oauth2/version" - - module OAuth2 - end - - OAuth2::Version.class_eval do - extend VersionGem::Basic - end - - Oauth2::Version.class_eval do - extend VersionGem::Basic - end - RUBY - "lib/oauth2/version.rb" => <<~RUBY, - # frozen_string_literal: true - - module OAuth2 - module Version - VERSION = "2.0.20" - end - VERSION = Version::VERSION - end - RUBY - ".kettle-jem.yml" => <<~YAML - project_emoji: "🔐" - rubygems: - min_ruby: "2.2.0" - YAML - }) - - facts = described_class.send(:discover_facts, root, env: {}, run_options: {skip_commit: true}) - - expect(facts.dig(:rubygems, :namespace)).to eq("OAuth2") - expect(facts.dig(:rubygems, :namespace)).not_to eq("Oauth2") - end - end - - it "discovers nested public entrypoint namespace before stale generated version namespace" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - - Dir.mktmpdir("kettle-jem-nested-entrypoint-namespace", tmp_root) do |root| - write_tree(root, { - "warden_oauth.gemspec" => <<~RUBY, - Gem::Specification.new do |spec| - spec.name = "warden_oauth" - spec.version = Module.new.tap { |mod| Kernel.load("\#{__dir__}/lib/warden_oauth/version.rb", mod) }::WardenOauth::Version::VERSION - spec.summary = "Warden OAuth" - spec.required_ruby_version = ">= 1.8" - end - RUBY - "lib/warden_oauth.rb" => <<~RUBY, - # frozen_string_literal: true - - require_relative "warden_oauth/version" - - module Warden - module OAuth - autoload :Strategy, "warden_oauth/strategy" - end - end - RUBY - "lib/warden_oauth/version.rb" => <<~RUBY, - # frozen_string_literal: true - - module WardenOauth - module Version - VERSION = "0.1.1" - end - VERSION = Version::VERSION - end - RUBY - ".kettle-jem.yml" => <<~YAML - project_emoji: "🛡️" - rubygems: - min_ruby: "1.8" - YAML - }) - - facts = described_class.send(:discover_facts, root, env: {}, run_options: {skip_commit: true}) - tokens = described_class.send(:template_tokens, facts, {}) - - expect(facts.dig(:rubygems, :namespace)).to eq("Warden::OAuth") - expect(facts.dig(:rubygems, :namespace)).not_to eq("WardenOauth") - expect(tokens.fetch("KJ|NAMESPACE_SHIELD")).to eq("Warden::OAuth") - end - end - - it "does not infer nested implementation namespaces from the public entrypoint" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - - Dir.mktmpdir("kettle-jem-entrypoint-implementation-namespace", tmp_root) do |root| - write_tree(root, { - "kettle-dev.gemspec" => <<~RUBY, - Gem::Specification.new do |spec| - spec.name = "kettle-dev" - spec.version = Module.new.tap { |mod| Kernel.load("\#{__dir__}/lib/kettle/dev/version.rb", mod) }::Kettle::Dev::Version::VERSION - spec.summary = "Kettle Dev" - spec.required_ruby_version = ">= 2.4.0" - end - RUBY - "lib/kettle/dev.rb" => <<~RUBY, - # frozen_string_literal: true - - require_relative "dev/version" - - module Kettle - module Dev - autoload :ReleaseCLI, "kettle/dev/release_cli" - - module Tasks - autoload :CITask, "kettle/dev/tasks/ci_task" - end - end - end - RUBY - "lib/kettle/dev/version.rb" => <<~RUBY, - # frozen_string_literal: true - - module Kettle - module Dev - module Version - VERSION = "2.3.fixture.rc1" - end - VERSION = Version::VERSION - end - end - RUBY - ".kettle-jem.yml" => <<~YAML - rubygems: - min_ruby: "2.4.0" - YAML - }) - - facts = described_class.send(:discover_facts, root, env: {}, run_options: {skip_commit: true}) - - expect(facts.dig(:rubygems, :namespace)).to eq("Kettle::Dev") - expect(facts.dig(:rubygems, :namespace)).not_to eq("Kettle::Dev::Tasks") - end - end - - it "normalizes generated README badge image URLs consistently with pre-release checks" do - expect(described_class.send(:shield_token, "Example::Gem")).to eq("Example::Gem") - expect(described_class.send(:license_compat_img, :a)).to include( - "Apache_Compatible:_Category_A-%E2%9C%93-259D6C.svg" - ) - end - - it "places version_gem entrypoint requires from top-level Ruby structure" do - content = <<~RUBY - # frozen_string_literal: true - - def setup - require "version_gem" - end - RUBY - - updated = described_class.send( - :version_gem_bootstrap_entrypoint_content, - content, - namespace: "Example::Gem", - entrypoint_require: "example/gem" - ) - - expect(updated).to start_with(<<~RUBY) - # frozen_string_literal: true - - require "version_gem" - require_relative "gem/version" - - def setup - require "version_gem" - end - RUBY - expect(updated).to include("Example::Gem::Version.class_eval do") - end - - it "anchors version_gem relative entrypoint requires after an existing top-level version_gem require" do - content = <<~RUBY - # frozen_string_literal: true - - require "version_gem" - - module Example - module Gem - end - end - RUBY - - updated = described_class.send( - :version_gem_bootstrap_entrypoint_content, - content, - namespace: "Example::Gem", - entrypoint_require: "example/gem" - ) - - expect(updated).to include(<<~RUBY) - require "version_gem" - require_relative "gem/version" - - module Example - RUBY - end - - it "reports setup execution context without load-path inspection" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-setup-context-slice", tmp_root) do |root| - write_tree(root, { - "example.gemspec" => <<~RUBY, - Gem::Specification.new do |spec| - spec.name = "example" - spec.summary = "Example gem" - end - RUBY - ".kettle-jem.yml" => <<~YAML - templates: - root: packaged - apply: true - entries: - - bin/setup - YAML - }) - command_runner = lambda do |_command, chdir:, env:, quiet:| - expect(chdir).to eq(root) - expect(env).to include( - "BUNDLE_LOCKFILE" => nil, - "RUBYLIB" => nil, - "RUBYOPT" => nil - ) - expect(quiet).to be(true) - {success: true, exitstatus: 0, stdout: "", stderr: ""} - end - - bundled = described_class.setup_project( - root, - env: {"BUNDLE_GEMFILE" => File.join(root, "Gemfile")}, - run_options: {only: "bin/setup", quiet: true}, - command_runner: command_runner - ) - expect(bundled.fetch(:setup_execution_context)).to eq( - bundled: true, - source: "BUNDLE_GEMFILE", - bundle_gemfile: File.join(root, "Gemfile") - ) - expect(bundled.fetch(:install_steps)).to include( - name: "bundled_handoff", - status: "already_bundled", - bundle_gemfile: File.join(root, "Gemfile") - ) - - bootstrap = described_class.setup_project( - root, - env: {"BUNDLE_GEMFILE" => File.join(root, "Gemfile")}, - run_options: {only: "bin/setup", bootstrap_mode: true} - ) - expect(bootstrap.fetch(:setup_execution_context)).to eq( - bundled: false, - source: "bootstrap_mode", - bundle_gemfile: nil - ) - end - end - - it "preserves configured README sections during merge template application" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-readme-merge-slice", tmp_root) do |root| - write_tree(root, { - "example.gemspec" => <<~RUBY, - Gem::Specification.new do |spec| - spec.name = "example" - spec.summary = "Example gem" - end - RUBY - ".kettle-jem.yml" => <<~YAML, - readme: - preserve_sections: - - synopsis - - basic usage - - custom section - - authors - preserve_patterns: - - "note:*" - section_aliases: - usage: basic usage - templates: - root: template - apply: true - entries: - - README.md - YAML - "README.md" => <<~MARKDOWN, - # 1️⃣ Example - - ## Synopsis - - Destination synopsis. - - ### Details - - Destination nested detail. - - ```console - # DANGER: keep this code comment inside the Synopsis branch. - K_JEM_TEMPLATING=true bundle exec kettle-jem template - ``` - - ## Usage - - Destination usage. - - ## Custom Section - - Destination custom. - - ## Note: Local - - Destination note. - - ## Authors - - Destination authors. - - ## Installation - - Old install. - MARKDOWN - "template/README.md.example" => <<~MARKDOWN - # 💎 Example - - ## 🌻 Synopsis - - Template synopsis. - - ## 🔧 Basic Usage - - Template usage. - - ## Custom Section - - Template custom. - - ## Note: Local - - Template note. - - ## Installation - - Template install. - MARKDOWN - }) - - apply = described_class.apply_project(root, env: {}) - readme_report = apply.fetch(:recipe_reports).find do |report| - report.fetch(:recipe_name) == "template_source_application_README_md" - end - final_content = readme_report.fetch(:final_content) - expect(final_content).to include("# 💎 Example") - expect(final_content).to match(/## 🌻 Synopsis(?:
        <<~RUBY, - Gem::Specification.new do |spec| - spec.name = "example" - spec.summary = "Example gem" - end - RUBY - ".kettle-jem.yml" => <<~YAML, - templates: - root: template - apply: true - entries: - - README.md - YAML - "README.md" => <<~MARKDOWN, - # 💎 Example - - ## Important - - Keep this local warning. - - [![Version][version-img]][version] [![CI][ci-img]][ci] - - ## Synopsis - - Destination synopsis. - MARKDOWN - "template/README.md.example" => <<~MARKDOWN - # 💎 Example - - [![Version][version-img]][version] [![CI][ci-img]][ci] - - ## 🌻 Synopsis - - Template synopsis. - - ## ✨ Installation - - Template install. - MARKDOWN - }) - - apply = described_class.apply_project(root, env: {}) - readme = apply.fetch(:recipe_reports).find do |report| - report.fetch(:recipe_name) == "template_source_application_README_md" - end.fetch(:final_content) - - expect(readme).to include("## Important\n\nKeep this local warning.") - expect(readme).to match(/\A# 💎 Example\n\n## Important/m) - expect(readme).to match(/## Important.*\[!\[Version\]\[version-img\]\]\[version\].*## 🌻 Synopsis/m) - expect(readme).to match(/## 🌻 Synopsis(?: <<~RUBY, - Gem::Specification.new do |spec| - spec.name = "example" - spec.summary = "Example gem" - end - RUBY - ".kettle-jem.yml" => <<~YAML, - files: - config: - explicit.yml: - strategy: merge - file_type: yaml - templates: - root: template - apply: true - entries: - - .github/dependabot.yml - - config/settings.yml - - config/tool.toml - - config/explicit.yml - YAML - ".github/dependabot.yml" => <<~YAML, - updates: - - package-ecosystem: bundler - directory: / - version: 1 - YAML - "config/settings.yml" => <<~YAML, - engines: - - ruby - nested: - value: destination - version: 1 - YAML - "config/tool.toml" => <<~TOML, - title = "destination" - - [settings] - retries = 1 - TOML - "config/explicit.yml" => <<~YAML, - destination_only: keep - nested: - value: destination - YAML - "template/.github/dependabot.yml.example" => <<~YAML, - schedule: - interval: weekly - updates: - - package-ecosystem: github-actions - directory: / - version: 2 - YAML - "template/config/settings.yml.example" => <<~YAML, - engines: - - ruby - - jruby - nested: - template_only: true - value: template - version: 2 - YAML - "template/config/tool.toml.example" => <<~TOML, - title = "template" - - [settings] - retries = 3 - timeout = 30 - TOML - "template/config/explicit.yml.example" => <<~YAML - nested: - value: template - template_only: true - template_only: added - YAML - }) - - apply = described_class.apply_project(root, env: {}) - dependabot_report = apply.fetch(:recipe_reports).find do |report| - report.fetch(:recipe_name) == "template_source_application_github_dependabot_yml" - end - yaml_report = apply.fetch(:recipe_reports).find do |report| - report.fetch(:recipe_name) == "template_source_application_config_settings_yml" - end - toml_report = apply.fetch(:recipe_reports).find do |report| - report.fetch(:recipe_name) == "template_source_application_config_tool_toml" - end - explicit_report = apply.fetch(:recipe_reports).find do |report| - report.fetch(:recipe_name) == "template_source_application_config_explicit_yml" - end - - expect(YAML.safe_load(dependabot_report.fetch(:final_content))).to eq( - "schedule" => {"interval" => "weekly"}, - "updates" => [ - { - "directory" => "/", - "package-ecosystem" => "bundler" - } - ], - "version" => 1 - ) - expect(YAML.safe_load(yaml_report.fetch(:final_content))).to eq( - "engines" => ["ruby"], - "nested" => { - "template_only" => true, - "value" => "destination" - }, - "version" => 1 - ) - expect(toml_report.fetch(:final_content)).to eq(<<~TOML) - title = "destination" - - [settings] - retries = 1 - timeout = 30 - TOML - expect(YAML.safe_load(explicit_report.fetch(:final_content))).to eq( - "destination_only" => "keep", - "nested" => { - "template_only" => true, - "value" => "destination" - }, - "template_only" => "added" - ) - expect(explicit_report.dig(:metadata, :template_source_preference)).to include(file_type: "yaml") - end - end - - it "merges Git driver TOML manifests with destination driver values" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-git-driver-toml-merge", tmp_root) do |root| - write_tree(root, { - "example.gemspec" => <<~RUBY, - Gem::Specification.new do |spec| - spec.name = "example" - spec.summary = "Example gem" - end - RUBY - ".kettle-jem.yml" => <<~YAML, - templates: - root: template - apply: true - entries: - - .structuredmerge/git-drivers.toml - YAML - ".structuredmerge/git-drivers.toml" => <<~TOML, - version = 1 - driver_namespace = "smorg" - - [profiles.semantic-diff] - description = "Destination driver" - - [[profiles.semantic-diff.attributes]] - pattern = "*.rb" - diff = "smorg-rb" - - [[profiles.semantic-diff.git_config]] - scope = "global" - key = "diff.smorg-rb.command" - value = "smorg-rb diff-driver" - TOML - "template/.structuredmerge/git-drivers.toml.example" => <<~TOML - version = 1 - driver_namespace = "smorg" - - [profiles.semantic-diff] - description = "Template driver" - - [[profiles.semantic-diff.attributes]] - pattern = "*.rb" - diff = "smorg-rb" - - [[profiles.semantic-diff.git_config]] - scope = "global" - key = "diff.smorg-rb.command" - value = "smorg-rb diff-driver" - - [profiles.textconv-normalized] - description = "Template-only profile" - - [[profiles.textconv-normalized.attributes]] - pattern = "*.json" - diff = "smorg-json-textconv" - TOML - }) - - apply = described_class.apply_project(root, env: {}) - report = apply.fetch(:recipe_reports).find do |candidate| - candidate.fetch(:relative_path) == ".structuredmerge/git-drivers.toml" - end - content = report.fetch(:final_content) - - expect(content).to include('diff = "smorg-rb"') - expect(content).to include('key = "diff.smorg-rb.command"') - expect(content).to include('value = "smorg-rb diff-driver"') - expect(content).to include("[profiles.textconv-normalized]") - expect(content).not_to include("smorg-ruby") - end - end - - it "restores documentation comments from YAML templates when destination config stripped them" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-yaml-template-comment-restore", tmp_root) do |root| - write_tree(root, { - "example.gemspec" => <<~RUBY, - Gem::Specification.new do |spec| - spec.name = "example" - spec.summary = "Example gem" - end - RUBY - ".kettle-jem.yml" => <<~YAML, - templates: - root: template - apply: true - entries: - - .kettle-jem.yml - YAML - "template/.kettle-jem.yml.example" => <<~YAML - # kettle-jem configuration file - templates: - # Template root directory. - root: template - # Apply templates during setup. - apply: true - # Template entries to apply. - entries: - - .kettle-jem.yml - YAML - }) - - apply = described_class.apply_project(root, env: {}) - report = apply.fetch(:recipe_reports).find do |candidate| - candidate.fetch(:recipe_name) == "template_source_application_kettle_jem_yml" - end - final_content = report.fetch(:final_content) - - expect(final_content).to include("# kettle-jem configuration file") - expect(final_content).to include("# Template root directory.") - expect(final_content).to include("# Apply templates during setup.") - expect(final_content).to include("# Template entries to apply.") - expect(File.read(File.join(root, ".kettle-jem.yml"))).to eq(final_content) - end - end - - it "allows YAML template recipes to keep git-style destination comment policy" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-yaml-template-comment-policy", tmp_root) do |root| - write_tree(root, { - "example.gemspec" => <<~RUBY, - Gem::Specification.new do |spec| - spec.name = "example" - spec.summary = "Example gem" - end - RUBY - ".kettle-jem.yml" => <<~YAML, - templates: - root: template - apply: true - entries: - - config/settings.yml - files: - config: - settings.yml: - strategy: merge - file_type: yaml - comment_merge_policy: preserve_destination - YAML - "config/settings.yml" => <<~YAML, - project: - name: example - YAML - "template/config/settings.yml.example" => <<~YAML - # project settings - project: - # Project display name. - name: example - YAML - }) - - apply = described_class.apply_project(root, env: {}) - report = apply.fetch(:recipe_reports).find do |candidate| - candidate.fetch(:recipe_name) == "template_source_application_config_settings_yml" - end - final_content = report.fetch(:final_content) - - expect(final_content).not_to include("# project settings") - expect(final_content).not_to include("# Project display name.") - expect(final_content).to include("project:") - expect(final_content).to include(" name: example") - end - end - - it "merges Ruby-family template applications with destination declarations and DSL calls" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-ruby-merge-slice", tmp_root) do |root| - write_tree(root, { - "example.gemspec" => <<~RUBY, - Gem::Specification.new do |spec| - spec.name = "example" - spec.summary = "Example gem" - end - RUBY - ".kettle-jem.yml" => <<~YAML, - templates: - root: template - apply: true - entries: - - Gemfile - - Rakefile - - lib/example.rb - YAML - "Gemfile" => <<~RUBY, - source "https://gem.coop" - gem "rspec" - gem "example", path: "../example" - eval_gemfile "gemfiles/modular/style.gemfile" - RUBY - "Rakefile" => <<~RUBY, - desc "Default" - task :default do - puts "destination" - end - RUBY - "lib/example.rb" => <<~RUBY, - require "set" - - class Existing - def keep - :destination - end - end - RUBY - "template/Gemfile.example" => <<~RUBY, - source "https://gem.coop" - gemspec - eval_gemfile "gemfiles/modular/style.gemfile" if ENV.fetch("K_JEM_STYLE", "false").casecmp("true").zero? - gem "appraisal" - gem "example", path: "." - gem "rake" - RUBY - "template/Rakefile.example" => <<~RUBY, - desc "Default" - task :default do - puts "template" - end - - desc "CI" - task :ci do - sh "bundle exec rspec" - end - RUBY - "template/lib/example.rb.example" => <<~RUBY - require "json" - - class Existing - def keep - :template - end - end - - class Added - def call - :template_only - end - end - RUBY - }) - - apply = described_class.apply_project(root, env: {}) - ruby_report = apply.fetch(:recipe_reports).find do |report| - report.fetch(:recipe_name) == "template_source_application_lib_example_rb" - end - gemfile_report = apply.fetch(:recipe_reports).find do |report| - report.fetch(:recipe_name) == "template_source_application_Gemfile" - end - rakefile_report = apply.fetch(:recipe_reports).find do |report| - report.fetch(:recipe_name) == "template_source_application_Rakefile" - end - final_content = ruby_report.fetch(:final_content) - - expect(final_content).to include('require "set"') - expect(final_content).to include('require "json"') - expect(final_content).to include("def keep\n :destination\n end") - expect(final_content).to include("class Added") - expect(final_content).to include(":template_only") - expect(File.read(File.join(root, "lib/example.rb"))).to eq(final_content) - - gemfile_content = gemfile_report.fetch(:final_content) - expect(gemfile_content).to include('source "https://gem.coop"') - expect(gemfile_content).to include("gemspec") - expect(gemfile_content).to include('eval_gemfile "gemfiles/modular/style.gemfile" if ENV.fetch("K_JEM_STYLE", "false").casecmp("true").zero?') - expect(gemfile_content).to include('gem "rspec"') - expect(gemfile_content).to include('gem "rake"') - expect(gemfile_content).not_to include('gem "appraisal"') - expect(gemfile_content).not_to include('gem "example"') - expect(gemfile_report.dig(:report_envelope, :report, :step_reports, 0, :metadata, :ruby_template_policy)).to include( - file_type: "gemfile", - operations: include( - include(operation: "delete_dependency_declarations", deleted_gems: contain_exactly("appraisal", "example")) - ) - ) - - rakefile_content = rakefile_report.fetch(:final_content) - expect(rakefile_content.scan(/task\s+:default/).size).to eq(1) - expect(rakefile_content).to include('puts "destination"') - expect(rakefile_content).to include("task :ci") - end - end - - it "normalizes generated Rakefile section spacing after merge" do - rakefile = described_class.send(:normalize_generated_rakefile, <<~RAKE) - task :custom do - puts "custom" - end - - - ### TEMPLATING TASKS - task "kettle:jem:selftest" - RAKE - - expect(rakefile).to include("\n\n### TEMPLATING TASKS\n") - expect(rakefile).not_to include("\n\n\n### TEMPLATING TASKS") - end - - it "passes Ruby method move policy through per-file template strategy config" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-ruby-method-move-policy-slice", tmp_root) do |root| - write_tree(root, { - "example.gemspec" => <<~RUBY, - Gem::Specification.new do |spec| - spec.name = "example" - spec.summary = "Example gem" - end - RUBY - ".kettle-jem.yml" => <<~YAML, - files: - lib: - example.rb: - strategy: merge - file_type: ruby - method_move_policy: destination_order - templates: - root: template - apply: true - entries: - - lib/example.rb - YAML - "lib/example.rb" => <<~RUBY, - class Greeter - def beta - :beta - end - - def alpha - :alpha - end - end - RUBY - "template/lib/example.rb.example" => <<~RUBY - class Greeter - def alpha - :template_alpha - end - - def beta - :template_beta - end - - def gamma - :gamma - end - end - RUBY - }) - - apply = described_class.apply_project(root, env: {}) - report = apply.fetch(:recipe_reports).find do |entry| - entry.fetch(:recipe_name) == "template_source_application_lib_example_rb" - end - final_content = report.fetch(:final_content) - - expect(final_content.index("def beta")).to be < final_content.index("def alpha") - expect(final_content.scan("def alpha").size).to eq(1) - expect(final_content.scan("def beta").size).to eq(1) - expect(final_content.scan("def gamma").size).to eq(1) - expect(report.dig(:metadata, :template_source_preference)).to include( - file_type: "ruby", - method_move_policy: "destination_order" - ) - end - end - - it "applies Appraisals template policy with self-dependency and minimum Ruby pruning" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-appraisals-policy-slice", tmp_root) do |root| - write_tree(root, { - "example.gemspec" => <<~RUBY, - Gem::Specification.new do |spec| - spec.name = "example" - spec.required_ruby_version = ">= 3.2" - end - RUBY - ".kettle-jem.yml" => <<~YAML, - templates: - root: template - apply: true - entries: - - Appraisals - YAML - "Appraisals" => <<~RUBY, - # frozen_string_literal: true - - appraise "ruby-2-7" do - gem "example" - eval_gemfile "gemfiles/modular/x_std_libs/r2/libs.gemfile" - end - - appraise "ruby-3-2" do - gem "example", path: "../example" - eval_gemfile "gemfiles/modular/x_std_libs/r3/libs.gemfile" - end - - appraise "coverage" do - gem "simplecov" - end - RUBY - "template/Appraisals.example" => <<~RUBY - # frozen_string_literal: true - - appraise "ruby-3-2" do - eval_gemfile "gemfiles/modular/x_std_libs/r3/libs.gemfile" - end - - appraise "head" do - eval_gemfile "gemfiles/modular/recording/r4/recording.gemfile" - end - - appraise "path-gems" do - %w[ - example - support-gem - ].each do |gem_name| - gem gem_name, path: "../\#{gem_name}" - end - end - - appraise "style" do - eval_gemfile "gemfiles/modular/style.gemfile" - end - RUBY - }) - - apply = described_class.apply_project(root, env: {}) - appraisals_report = apply.fetch(:recipe_reports).find do |report| - report.fetch(:recipe_name) == "template_source_application_Appraisals" - end - appraisals_content = appraisals_report.fetch(:final_content) - - expect(appraisals_content).not_to include('appraise "ruby-2-7"') - expect(appraisals_content).not_to include('gem "example"') - expect(appraisals_content).to include('appraise "ruby-3-2"') - expect(appraisals_content).to include('eval_gemfile "gemfiles/modular/x_std_libs/r3/libs.gemfile"') - expect(appraisals_content).to include('appraise "head"') - expect(appraisals_content).not_to include('gem "cgi"') - expect(appraisals_content).not_to include("modular/recording/") - expect(appraisals_content).to include('appraise "coverage"') - expect(appraisals_content).to include('gem "simplecov"') - expect(appraisals_content).to include('appraise "path-gems"') - expect(appraisals_content).to include("support-gem") - expect(appraisals_content).not_to match(/^\s+example$/) - expect(appraisals_content).to include('appraise "style"') - expect(appraisals_report.dig(:report_envelope, :report, :step_reports, 0, :metadata, :ruby_template_policy)).to include( - file_type: "appraisals", - operations: include( - include(operation: "merge_appraisal_blocks", inserted_appraisals: include("style")), - include(operation: "delete_self_dependency_declarations", deleted_dependency_count: 2), - include(operation: "prune_minimum_ruby_appraisals", deleted_appraisals: include("ruby-2-7")) - ) - ) - expect(File.read(File.join(root, "Appraisals"))).to eq(appraisals_content) - end - end - - it "keeps Appraisals recording gemfiles only when configured" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-appraisals-recording-slice", tmp_root) do |root| - write_tree(root, { - "example.gemspec" => <<~RUBY, - Gem::Specification.new do |spec| - spec.name = "example" - spec.required_ruby_version = ">= 3.2" - end - RUBY - ".kettle-jem.yml" => <<~YAML, - workflows: - recording: true - templates: - root: template - apply: true - entries: - - Appraisals - YAML - "template/Appraisals.example" => <<~RUBY - # frozen_string_literal: true - - appraise "head" do - gem "cgi", ">= 0.5" - eval_gemfile "gemfiles/modular/recording/r4/recording.gemfile" - end - RUBY - }) - - apply = described_class.apply_project(root, env: {}) - appraisals_report = apply.fetch(:recipe_reports).find do |report| - report.fetch(:recipe_name) == "template_source_application_Appraisals" - end - appraisals_content = appraisals_report.fetch(:final_content) - - expect(appraisals_content).not_to include('gem "cgi"') - expect(appraisals_content).to include('eval_gemfile "gemfiles/modular/recording/r4/recording.gemfile"') - end - end - - it "ports old Appraisals template behavior without losing custom destination blocks" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - contract_case = old_spec_contract.fetch(:cases).fetch(:appraisals_custom_blocks) - - Dir.mktmpdir("kettle-jem-old-appraisals-policy", tmp_root) do |root| - write_tree(root, { - "demo.gemspec" => <<~RUBY, - Gem::Specification.new do |spec| - spec.name = "demo" - spec.version = "0.1.0" - spec.summary = "test gem" - spec.required_ruby_version = ">= 4.0" - end - RUBY - ".kettle-jem.yml" => <<~YAML, - templates: - root: template - apply: true - entries: - - Appraisals - YAML - "Appraisals" => <<~RUBY, - appraise "#{contract_case.fetch(:destination_appraisal)}" do - gem "local-only" - end - RUBY - "template/Appraisals.example" => <<~RUBY - appraise "#{contract_case.fetch(:template_appraisal)}" do - gemfile "gemfiles/ruby_4.0.gemfile" - end - RUBY - }) - - apply = described_class.apply_project(root, env: {}, run_options: {accept: true}) - report = apply.fetch(:recipe_reports).find { |candidate| candidate.fetch(:relative_path) == "Appraisals" } - appraisals_content = report.fetch(:final_content) - - expect(appraisals_content).to include(%(appraise "#{contract_case.fetch(:template_appraisal)}")) - expect(appraisals_content).to include(%(appraise "#{contract_case.fetch(:destination_appraisal)}")) - expect(appraisals_content).to include('gem "local-only"') - expect(report.dig(:report_envelope, :report, :step_reports, 0, :metadata, :ruby_template_policy, :operations)).to include( - include( - operation: "merge_appraisal_blocks", - inserted_appraisals: include(contract_case.fetch(:template_appraisal)), - preserved_destination_appraisals: include(contract_case.fetch(:destination_appraisal)) - ) - ) - end - end - - it "preserves destination additions inside same-named Appraisal blocks" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-appraisals-same-name-merge", tmp_root) do |root| - write_tree(root, { - "demo.gemspec" => <<~RUBY, - Gem::Specification.new do |spec| - spec.name = "demo" - spec.version = "0.1.0" - spec.summary = "test gem" - spec.required_ruby_version = ">= 3.2" - end - RUBY - ".kettle-jem.yml" => <<~YAML, - templates: - root: template - apply: true - entries: - - Appraisals - YAML - "Appraisals" => <<~RUBY, - appraise "ruby-3-2" do - eval_gemfile "modular/activerecord/r3/v8.0.gemfile" - eval_gemfile("modular/x_std_libs/r3/libs.gemfile") - end - RUBY - "template/Appraisals.example" => <<~RUBY - appraise "ruby-3-2" do - eval_gemfile "modular/style.gemfile" - eval_gemfile "modular/x_std_libs/r3/libs.gemfile" - end - RUBY - }) - - apply = described_class.apply_project(root, env: {}, run_options: {accept: true}) - report = apply.fetch(:recipe_reports).find { |candidate| candidate.fetch(:relative_path) == "Appraisals" } - appraisals_content = report.fetch(:final_content) - - expect(appraisals_eval_gemfile_paths(appraisals_content, "ruby-3-2")).to contain_exactly( - "modular/style.gemfile", - "modular/activerecord/r3/v8.0.gemfile", - "modular/x_std_libs/r3/libs.gemfile" - ) - end - end - - it "collapses framework appraisals onto standard appraisals without overwriting kept framework gemfiles" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-framework-collapse-kept-gemfiles", tmp_root) do |root| - write_tree(root, { - "demo.gemspec" => <<~RUBY, - Gem::Specification.new do |spec| - spec.name = "demo" - spec.version = "0.1.0" - spec.summary = "test gem" - spec.required_ruby_version = ">= 3.2" - end - RUBY - ".kettle-jem.yml" => <<~YAML, - workflows: - preset: framework - framework_matrix: - dimension: rails - gem: rails - gemfile_pattern: "rails_{version}.gemfile" - workflow: false - versions: - - label: "7.2" - slug: "7_2" - requirement: "~> 7.2.2" - standard_appraisal: ruby-3-2 - env: - RAILS_MAJOR_MINOR: "7.2" - patterns: - - path: "gemfiles/rails_*.gemfile" - strategy: keep_destination - templates: - root: template - apply: true - entries: - - Appraisals - - gemfiles/rails_7_2.gemfile - - .github/workflows/framework-ci.yml - - .github/workflows/ruby-3.2.yml - YAML - "Appraisals" => <<~RUBY, - appraise "ruby-3-2" do - eval_gemfile "modular/x_std_libs/r3/libs.gemfile" - end - - appraise "rails-7-2" do - gem "combustion", "~> 1.5" - gem "actionmailer", "~> 7.2.2" - gem "railties", "~> 7.2.2" - end - RUBY - "gemfiles/rails_7_2.gemfile" => <<~RUBY, - # This file was generated by Appraisal - gem "combustion", "~> 1.5" - gem "actionmailer", "~> 7.2.2" - gem "railties", "~> 7.2.2" - RUBY - "template/Appraisals.example" => <<~RUBY, - appraise "ruby-3-2" do - eval_gemfile "modular/x_std_libs/r3/libs.gemfile" - end - RUBY - "template/.github/workflows/framework-ci.yml.example" => "name: Framework CI\n", - "template/.github/workflows/ruby-3.2.yml.example" => <<~YAML, - name: Ruby 3.2 - - jobs: - test: - env: - BUNDLE_GEMFILE: ${{ github.workspace }}/Appraisal.root.gemfile - strategy: - matrix: - include: - - ruby: "ruby-3.2" - appraisal: "ruby-3-2" - exec_cmd: "kettle-test" - YAML - "template/gemfiles/rails_7_2.gemfile.example" => "gem \"rails\", \"~> 7.2.2\"\n" - }) - - apply = described_class.apply_project(root, env: {}, run_options: {accept: true}) - appraisals_report = apply.fetch(:recipe_reports).find { |candidate| candidate.fetch(:relative_path) == "Appraisals" } - appraisals_content = appraisals_report.fetch(:final_content) - workflow_report = apply.fetch(:recipe_reports).find { |candidate| candidate.fetch(:relative_path) == ".github/workflows/ruby-3.2.yml" } - workflow_content = workflow_report.fetch(:final_content) - - expect(appraisals_content).not_to include("ENV[") - expect(appraisals_content).to include('eval_gemfile "rails_7_2.gemfile"') - expect(appraisals_content).not_to include('appraise "rails-7-2"') - expect(workflow_content).to include("KJ_FRAMEWORK_MATRIX_GEM: ${{ matrix.KJ_FRAMEWORK_MATRIX_GEM || '' }}") - expect(workflow_content).to include("RAILS_MAJOR_MINOR: ${{ matrix.RAILS_MAJOR_MINOR || '' }}") - expect(workflow_content).to include('KJ_FRAMEWORK_MATRIX_GEM: "rails"') - expect(workflow_content.scan('KJ_FRAMEWORK_MATRIX_GEM: "rails"').size).to eq(1) - expect(workflow_content).to include('RAILS_MAJOR_MINOR: "7.2"') - expect(File.read(File.join(root, "gemfiles/rails_7_2.gemfile"))).to include('gem "combustion", "~> 1.5"') - expect(File).not_to exist(File.join(root, ".github/workflows/framework-ci.yml")) - end - end - - it "adds configured support gemfiles to standard test Appraisal blocks" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-standard-appraisal-gemfiles", tmp_root) do |root| - write_tree(root, { - "demo.gemspec" => <<~RUBY, - Gem::Specification.new do |spec| - spec.name = "demo" - spec.version = "0.1.0" - spec.summary = "test gem" - spec.required_ruby_version = ">= 3.2" - end - RUBY - ".kettle-jem.yml" => <<~YAML, - appraisal_matrix: - appraisal_gemfiles: - - gemfiles/modular/activerecord_support.gemfile - templates: - root: template - apply: true - entries: - - Appraisals - YAML - "template/Appraisals.example" => <<~RUBY - appraise "current" do - eval_gemfile "modular/x_std_libs.gemfile" - end - - appraise "ruby-3-2" do - eval_gemfile "modular/x_std_libs/r3/libs.gemfile" - end - - appraise "style" do - eval_gemfile "modular/style.gemfile" - eval_gemfile "modular/x_std_libs.gemfile" - end - RUBY - }) - - apply = described_class.apply_project(root, env: {}, run_options: {accept: true}) - report = apply.fetch(:recipe_reports).find { |candidate| candidate.fetch(:relative_path) == "Appraisals" } - appraisals_content = report.fetch(:final_content) - - expect(appraisals_content).to include(<<~RUBY.strip) - appraise "current" do - eval_gemfile "modular/activerecord_support.gemfile" - eval_gemfile "modular/x_std_libs.gemfile" - end - RUBY - expect(appraisals_content).to include(<<~RUBY.strip) - appraise "ruby-3-2" do - eval_gemfile "modular/activerecord_support.gemfile" - eval_gemfile "modular/x_std_libs/r3/libs.gemfile" - end - RUBY - expect(appraisals_content).not_to include(<<~RUBY.strip) - appraise "style" do - eval_gemfile "modular/style.gemfile" - eval_gemfile "modular/activerecord_support.gemfile" - eval_gemfile "modular/x_std_libs.gemfile" - end - RUBY - end - end - - it "does not add broad standard support gemfiles to collapsed framework appraisals" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-standard-appraisal-collapse-skip", tmp_root) do |root| - write_tree(root, { - "demo.gemspec" => <<~RUBY, - Gem::Specification.new do |spec| - spec.name = "demo" - spec.version = "0.1.0" - spec.summary = "test gem" - spec.required_ruby_version = ">= 3.2" - end - RUBY - ".kettle-jem.yml" => <<~YAML, - workflows: - standard_appraisal_gemfiles: - - modular/activerecord_runtime.gemfile - - modular/activerecord_support.gemfile - templates: - root: template - apply: true - entries: - - Appraisals - YAML - "template/Appraisals.example" => <<~RUBY - appraise "current" do - eval_gemfile "modular/x_std_libs.gemfile" - end - - appraise "ruby-3-2" do - eval_gemfile "modular/activerecord/r3/v8.0.gemfile" - eval_gemfile "modular/activerecord_support.gemfile" - eval_gemfile "modular/x_std_libs/r3/libs.gemfile" - end - RUBY - }) - - apply = described_class.apply_project(root, env: {}, run_options: {accept: true}) - report = apply.fetch(:recipe_reports).find { |candidate| candidate.fetch(:relative_path) == "Appraisals" } - appraisals_content = report.fetch(:final_content) - - expect(appraisals_content).to include(<<~RUBY.strip) - appraise "current" do - eval_gemfile "modular/activerecord_runtime.gemfile" - eval_gemfile "modular/activerecord_support.gemfile" - eval_gemfile "modular/x_std_libs.gemfile" - end - RUBY - expect(appraisals_content).to include(<<~RUBY.strip) - appraise "ruby-3-2" do - eval_gemfile "modular/activerecord/r3/v8.0.gemfile" - eval_gemfile "modular/activerecord_support.gemfile" - eval_gemfile "modular/x_std_libs/r3/libs.gemfile" - end - RUBY - expect(appraisals_content).not_to include('eval_gemfile "modular/activerecord_runtime.gemfile"' \ - "\n eval_gemfile \"modular/activerecord/r3/v8.0.gemfile\"") - end - end - - it "adds standard gemfiles beside ordinary support gemfiles while respecting framework fragments" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-standard-appraisal-framework-fragments", tmp_root) do |root| - write_tree(root, { - "demo.gemspec" => <<~RUBY, - Gem::Specification.new do |spec| - spec.name = "demo" - spec.version = "0.1.0" - spec.summary = "test gem" - spec.required_ruby_version = ">= 3.1" - end - RUBY - ".kettle-jem.yml" => <<~YAML, - workflows: - preset: framework - standard_appraisal_gemfiles: - - rails_7_2.gemfile - framework_matrix: - dimension: rails - gem: rails - gemfile_pattern: "rails_{version}.gemfile" - versions: - - label: "7.2" - slug: "7_2" - requirement: "~> 7.2.0" - standard_appraisal: "ruby-3-1" - - label: "8.0" - slug: "8_0" - requirement: "~> 8.0.0" - standard_appraisal: "ruby-3-2" - templates: - root: template - apply: true - entries: - - Appraisals - YAML - "template/Appraisals.example" => <<~RUBY - appraise "coverage" do - eval_gemfile "modular/coverage.gemfile" - eval_gemfile "modular/x_std_libs.gemfile" - end - - appraise "ruby-3-2" do - eval_gemfile "modular/x_std_libs/r3/libs.gemfile" - end - RUBY - }) - - apply = described_class.apply_project(root, env: {}, run_options: {accept: true}) - report = apply.fetch(:recipe_reports).find { |candidate| candidate.fetch(:relative_path) == "Appraisals" } - appraisals_content = report.fetch(:final_content) - - expect(appraisals_eval_gemfile_paths(appraisals_content, "coverage")).to contain_exactly( - "modular/coverage.gemfile", - "rails_7_2.gemfile", - "modular/x_std_libs.gemfile" - ) - expect(appraisals_eval_gemfile_paths(appraisals_content, "ruby-3-2")).to contain_exactly( - "modular/x_std_libs/r3/libs.gemfile", - "rails_8_0.gemfile" - ) - expect(appraisals_eval_gemfile_paths(appraisals_content, "ruby-3-1")).to contain_exactly("rails_7_2.gemfile") - end - end - - it "prunes GitHub workflow appraisal matrix entries below minimum Ruby" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-appraisal-workflow-prune", tmp_root) do |root| - write_tree(root, { - "example.gemspec" => <<~RUBY, - Gem::Specification.new do |spec| - spec.name = "example" - spec.required_ruby_version = ">= 3.2" - end - RUBY - ".kettle-jem.yml" => <<~YAML, - templates: - root: template - apply: true - entries: - - .github/workflows/appraisals.yml - YAML - "template/.github/workflows/appraisals.yml.example" => <<~YAML - name: Appraisals - on: - pull_request: - jobs: - test: - strategy: - matrix: - include: - - ruby: "2.7" - appraisal: "ruby-2-7" - exec_cmd: "rake spec" - - ruby: "3.2" - appraisal: "ruby-3-2" - exec_cmd: "rake spec" - steps: - - run: bundle exec appraisal ${{ matrix.appraisal }} bundle exec ${{ matrix.exec_cmd }} - YAML - }) - - apply = described_class.apply_project(root, env: {}) - workflow_report = apply.fetch(:recipe_reports).find do |candidate| - candidate.fetch(:relative_path) == ".github/workflows/appraisals.yml" - end - workflow_content = workflow_report.fetch(:final_content) - - expect(workflow_content).not_to include('ruby: "2.7"') - expect(workflow_content).not_to include('appraisal: "ruby-2-7"') - expect(workflow_content).to include('ruby: "3.2"') - expect(workflow_content).to include('appraisal: "ruby-3-2"') - end - end - - it "runs TruffleRuby dep-heads directly from the generated appraisal gemfile" do - template = File.read(File.expand_path("../lib/kettle/jem/templates/.github/workflows/dep-heads.yml.example", __dir__)) - - expect(template).to include("truffleruby:") - expect(template).to include("BUNDLE_GEMFILE: ${{ github.workspace }}/${{ matrix.bundle_gemfile || 'Appraisal.root.gemfile' }}") - expect(template).to include('bundle_gemfile: "gemfiles/dep_heads.gemfile"') - expect(template).to include("direct_bundle: true") - expect(template).to include("run: bundle exec appraisal ${{ matrix.appraisal }} bundle exec ${{ matrix.exec_cmd }}") - expect(template).to include("run: bundle exec ${{ matrix.exec_cmd }}") - end - - it "serializes legacy engine setup-ruby workaround in generated CI workflows" do - ci = { - default_branch: "main", - exec_cmd: "kettle-test", - ruby_versions: ["truffleruby-25.0", "jruby-9.2", "jruby-9.3"] - } - workflows = [ - described_class.send(:synchronize_github_actions_ci, "", {package: {name: "example"}, ci: ci}), - described_class.send(:synchronize_github_actions_framework_ci, "", { - ci: ci.merge( - framework_matrix: { - dimension: "rails", - include: [{framework_version: "7.2", appraisal: "rails_7_2"}] - } - ) - }) - ] - coverage_workflow = described_class.send(:synchronize_github_actions_coverage_ci, "", { - ci: ci.merge(coverage: {appraisal: "ruby_3_2", command: "kettle-test"}) - }) - existing_workflow = <<~YAML - name: Existing - on: - push: - branches: - - "main" - - "*-stable" - - "r*_*-*-v*" - YAML - preserved_workflows = [ - described_class.send(:synchronize_github_actions_ci, existing_workflow, {package: {name: "example"}, ci: ci}), - described_class.send(:synchronize_github_actions_framework_ci, existing_workflow, { - ci: ci.merge( - framework_matrix: { - dimension: "rails", - include: [{framework_version: "7.2", appraisal: "rails_7_2"}] - } - ) - }), - described_class.send(:synchronize_github_actions_coverage_ci, existing_workflow, { - ci: ci.merge(coverage: {appraisal: "ruby_3_2", command: "kettle-test"}) - }) - ] - - expect(workflows + [coverage_workflow]).not_to include(include(' - "r*_*-*-v*"')) - expect(preserved_workflows).to all(include(' - "r*_*-*-v*"')) - expect(workflows).to all(include("bundler-cache: ${{ matrix.ruby != 'truffleruby-25.0' && matrix.ruby != 'jruby-9.2' && matrix.ruby != 'jruby-9.3' }}")) - expect(workflows).to all(include(" - name: Bundle install for legacy Ruby engine")) - expect(workflows).to all(include(" if: ${{ matrix.ruby == 'truffleruby-25.0' || matrix.ruby == 'jruby-9.2' || matrix.ruby == 'jruby-9.3' }}")) - expect(workflows).to all(include(' bundle config set --local path "${RUNNER_TEMP}/bundle"')) - expect(workflows).to all(include(" bundle install --jobs 1")) - - packaged_rubocop = File.read(File.join(__dir__, "../lib/kettle/jem/templates/.rubocop.yml.example")) - expect(packaged_rubocop).to include(' - "**/vendor/**/*"') - - packaged_workflow = File.read(File.join( - __dir__, - "../lib/kettle/jem/templates/.github/workflows/truffleruby-25.0.yml.example" - )) - expect(packaged_workflow).to include("bundler-cache: false") - expect(packaged_workflow).to include(" - name: Bundle install for TruffleRuby 25.0") - expect(packaged_workflow).to include(' bundle config set --local path "${RUNNER_TEMP}/bundle"') - expect(packaged_workflow).to include(" bundle install --jobs 1") - - packaged_workflow = File.read(File.join( - __dir__, - "../lib/kettle/jem/templates/.github/workflows/jruby-9.2.yml.example" - )) - expect(packaged_workflow).to include("bundler-cache: false") - expect(packaged_workflow).to include(" - name: Bundle install for JRuby 9.2") - expect(packaged_workflow).to include(' bundle config set --local path "${RUNNER_TEMP}/bundle"') - expect(packaged_workflow).to include(" bundle install --jobs 1") - - packaged_workflow = File.read(File.join( - __dir__, - "../lib/kettle/jem/templates/.github/workflows/jruby-9.3.yml.example" - )) - expect(packaged_workflow).to include("bundler-cache: false") - expect(packaged_workflow).to include(" - name: Bundle install for JRuby 9.3") - expect(packaged_workflow).to include(' bundle config set --local path "${RUNNER_TEMP}/bundle"') - expect(packaged_workflow).to include(" bundle install --jobs 1") - end - - it "serializes RSpec status cache steps in generated CI workflows" do - ci = { - default_branch: "main", - exec_cmd: "kettle-test", - ruby_versions: ["ruby", "jruby", "truffleruby-25.0"] - } - workflows = [ - described_class.send(:synchronize_github_actions_ci, "", {package: {name: "example"}, ci: ci}), - described_class.send(:synchronize_github_actions_framework_ci, "", { - ci: ci.merge( - framework_matrix: { - dimension: "rails", - include: [{framework_version: "7.2", appraisal: "rails_7_2"}] - } - ) - }), - described_class.send(:synchronize_github_actions_coverage_ci, "", { - ci: ci.merge(coverage: {appraisal: "ruby_3_2", command: "kettle-test"}) - }) - ] - - expect(workflows).to all(include(" - name: Restore RSpec status log")) - expect(workflows).to all(include(" uses: actions/cache@")) - expect(workflows).to all(include(" path: .rspec_status")) - expect(workflows).to all(include("${{hashFiles('**/Gemfile.lock','Appraisal.root.gemfile','gemfiles/**/*.gemfile')}}")) - expect(workflows).to all(include("${{github.run_id}}-${{github.run_attempt}}")) - - current_workflow = File.read(File.join( - __dir__, - "../lib/kettle/jem/templates/.github/workflows/current.yml.example" - )) - jruby_workflow = File.read(File.join(__dir__, "../lib/kettle/jem/templates/.github/workflows/jruby.yml.example")) - truffleruby_workflow = File.read(File.join( - __dir__, - "../lib/kettle/jem/templates/.github/workflows/truffleruby-25.0.yml.example" - )) - framework_workflow = File.read(File.join( - __dir__, - "../lib/kettle/jem/templates/.github/workflows/framework-ci.yml.example" - )) - - expect(current_workflow).to include("rspec-status-current-${{matrix.ruby}}-${{matrix.appraisal}}-") - expect(jruby_workflow).to include("rspec-status-jruby-${{matrix.ruby}}-${{matrix.appraisal}}-") - expect(jruby_workflow).to include("startsWith(github.head_ref, 'jruby/')") - expect(truffleruby_workflow).to include("rspec-status-truffleruby-25.0-${{matrix.ruby}}-${{matrix.appraisal}}-") - expect(truffleruby_workflow).to include("startsWith(github.head_ref, 'truffleruby/')") - expect(framework_workflow).to include( - "rspec-status-framework-ci-${{matrix.ruby}}-${{matrix.framework_version}}-${{matrix.gemfile}}-" - ) - end - - it "ports old modular Gemfile ruby-bucket eval_gemfile replacement" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - contract_case = old_spec_contract.fetch(:cases).fetch(:modular_gemfile_ruby_bucket) - relative_path = contract_case.fetch(:path) - - Dir.mktmpdir("kettle-jem-old-modular-gemfile-policy", tmp_root) do |root| - write_tree(root, { - "example.gemspec" => <<~RUBY, - Gem::Specification.new do |spec| - spec.name = "example" - spec.summary = "Example" - spec.required_ruby_version = ">= 4.0" - end - RUBY - ".kettle-jem.yml" => <<~YAML, - templates: - root: template - apply: true - entries: - - #{relative_path} - YAML - relative_path => contract_case.fetch(:obsolete_eval_paths).map { |path| %(eval_gemfile "#{path}") }.join("\n") + - "\n" + %(eval_gemfile "../../benchmark/r4/v0.5.gemfile"\n), - "template/#{relative_path}.example" => contract_case.fetch(:template_eval_paths).map do |path| - %(eval_gemfile "#{path}") - end.join("\n") + "\n" - }) - - apply = described_class.apply_project(root, env: {}, run_options: {accept: true}) - report = apply.fetch(:recipe_reports).find { |candidate| candidate.fetch(:relative_path) == relative_path } - content = report.fetch(:final_content) - - contract_case.fetch(:template_eval_paths).each do |path| - expect(content.scan(%(eval_gemfile "#{path}")).size).to eq(1) - end - contract_case.fetch(:obsolete_eval_paths).each do |path| - expect(content).not_to include(%(eval_gemfile "#{path}")) - end - expect(File.read(File.join(root, relative_path))).to eq(content) - end - end - - it "preserves destination-only main Gemfile ruby-bucket eval_gemfile entries" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-main-gemfile-destination-evals", tmp_root) do |root| - write_tree(root, { - "example.gemspec" => <<~RUBY, - Gem::Specification.new do |spec| - spec.name = "example" - spec.summary = "Example" - spec.required_ruby_version = ">= 3.0" - end - RUBY - ".kettle-jem.yml" => <<~YAML, - templates: - root: template - apply: true - entries: - - Gemfile - YAML - "Gemfile" => <<~RUBY, - # frozen_string_literal: true - - source "https://gem.coop" - - # Code Coverage - eval_gemfile "gemfiles/modular/coverage.gemfile" - - # Test HTTP Interaction Recording - eval_gemfile "gemfiles/modular/recording/r3/recording.gemfile" - - # Linting - eval_gemfile "gemfiles/modular/style.gemfile" - RUBY - "template/Gemfile.example" => <<~RUBY - # frozen_string_literal: true - - source "https://gem.coop" - - # Code Coverage - eval_gemfile "gemfiles/modular/coverage.gemfile" - - # Linting - eval_gemfile "gemfiles/modular/style.gemfile" - RUBY - }) - - apply = described_class.apply_project(root, env: {}) - report = apply.fetch(:recipe_reports).find { |candidate| candidate.fetch(:relative_path) == "Gemfile" } - content = report.fetch(:final_content) - - expect(content).to include("# Test HTTP Interaction Recording") - expect(content.scan('eval_gemfile "gemfiles/modular/recording/r3/recording.gemfile"').size).to eq(1) - expect(File.read(File.join(root, "Gemfile"))).to eq(content) - end - end - - it "repairs missing main Gemfile recording evals from configured Appraisals" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-main-gemfile-recording-repair", tmp_root) do |root| - write_tree(root, { - "example.gemspec" => <<~RUBY, - Gem::Specification.new do |spec| - spec.name = "example" - spec.summary = "Example" - spec.required_ruby_version = ">= 3.0" - end - RUBY - ".kettle-jem.yml" => <<~YAML, - templates: - root: template - apply: true - entries: - - Gemfile - YAML - "Appraisals" => <<~RUBY, - appraise "current" do - eval_gemfile "modular/recording/r4/recording.gemfile" - eval_gemfile "modular/x_std_libs.gemfile" - end - RUBY - "Gemfile" => <<~RUBY, - # frozen_string_literal: true - - source "https://gem.coop" - - # Code Coverage - eval_gemfile "gemfiles/modular/coverage.gemfile" - - # Linting - eval_gemfile "gemfiles/modular/style.gemfile" - RUBY - "template/Gemfile.example" => <<~RUBY - # frozen_string_literal: true - - source "https://gem.coop" - - # Code Coverage - eval_gemfile "gemfiles/modular/coverage.gemfile" - - # Linting - eval_gemfile "gemfiles/modular/style.gemfile" - RUBY - }) - - apply = described_class.apply_project(root, env: {}) - report = apply.fetch(:recipe_reports).find { |candidate| candidate.fetch(:relative_path) == "Gemfile" } - content = report.fetch(:final_content) - - expect(content).to include("# Test HTTP Interaction Recording") - expect(content.scan('eval_gemfile "gemfiles/modular/recording/r4/recording.gemfile"').size).to eq(1) - expect(content.index("# Test HTTP Interaction Recording")).to be < content.index("# Linting") - expect(File.read(File.join(root, "Gemfile"))).to eq(content) - end - end - - it "removes the destination package from the main Gemfile" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-main-gemfile-self-dependency", tmp_root) do |root| - write_tree(root, { - "example-gem.gemspec" => <<~RUBY, - Gem::Specification.new do |spec| - spec.name = "example-gem" - spec.summary = "Example Gem" - end - RUBY - ".kettle-jem.yml" => <<~YAML, - templates: - root: template - apply: true - entries: - - Gemfile - YAML - "Gemfile" => <<~RUBY, - # frozen_string_literal: true - - source "https://gem.coop" - gem "example-gem" - gem "destination-only" - RUBY - "template/Gemfile.example" => <<~RUBY - # frozen_string_literal: true - - source "https://gem.coop" - - dependency_root = ENV["DEPENDENCY_ROOT"].to_s.strip - - if !dependency_root.empty? - %w[ - example-gem - helper-gem - ].each do |gem_name| - gem gem_name, path: File.join(dependency_root, gem_name) - end - else - gem "example-gem", ">= 1.0" - end - - gem "shared-tool" - RUBY - }) - - apply = described_class.apply_project(root, env: {}) - report = apply.fetch(:recipe_reports).find { |candidate| candidate.fetch(:relative_path) == "Gemfile" } - content = report.fetch(:final_content) - - expect(content).to include("helper-gem") - expect(content).to include('gem "shared-tool"') - expect(content).not_to match(/^\s+example-gem$/) - expect(content).not_to match(/^\s*gem\s+["']example-gem["']/) - expect(File.read(File.join(root, "Gemfile"))).to eq(content) - end - end - - it "merges modular local Gemfile dependency lists while preserving the destination package" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-local-gemfile-policy", tmp_root) do |root| - write_tree(root, { - "kettle-jem.gemspec" => <<~RUBY, - Gem::Specification.new do |spec| - spec.name = "kettle-jem" - spec.summary = "Kettle Jem" - end - RUBY - ".kettle-jem.yml" => <<~YAML, - templates: - root: template - apply: true - entries: - - gemfiles/modular/templating_local.gemfile - YAML - "gemfiles/modular/templating_local.gemfile" => <<~RUBY, - # frozen_string_literal: true - - local_gems = %w[ - local-only - rubocop-ruby2_3 - kettle-jem - ] - RUBY - "template/gemfiles/modular/templating_local.gemfile.example" => <<~RUBY - # frozen_string_literal: true - - local_gems = %w[ - tree_sitter_language_pack - tree_haver - ast-merge - rubocop-ruby2_4 - kettle-jem - ] - RUBY - }) - - apply = described_class.apply_project(root, env: {}) - report = apply.fetch(:recipe_reports).find do |candidate| - candidate.fetch(:relative_path) == "gemfiles/modular/templating_local.gemfile" - end - content = report.fetch(:final_content) - - expect(content).to include("tree_haver") - expect(content).to include("ast-merge") - expect(content).to include("rubocop-ruby2_4") - expect(content).to include("local-only") - expect(content).not_to include("rubocop-ruby2_3") - expect(content).to include("kettle-jem") - expect(content).to include("tree_sitter_language_pack") - expect(File.read(File.join(root, "gemfiles/modular/templating_local.gemfile"))).to eq(content) - end - end - - it "adds configured kettle plugins to the kettle-rb local Gemfile overrides" do - runtime = described_class.send( - :project_runtime_facts, - {"plugins" => ["kettle-drift", "example-plugin"]}, - {}, - package_name: "example", - source_url: "https://github.com/example/example", - author_domain: "example.test", - min_ruby: ">= 3.2", - test_min_ruby: Gem::Version.new("3.2"), - version: "0.1.0" - ) - tokens = described_class.send(:project_runtime_template_tokens, runtime) - - expect(tokens.fetch("KJ|KETTLE_DEV_LOCAL_GEMS")).to eq("kettle-dev kettle-test kettle-soup-cover kettle-drift") - expect(tokens.fetch("KJ|MAIN_GEMFILE_NOMONO_BOOTSTRAP")).to include('gem "nomono"') - expect(tokens.fetch("KJ|PACKAGE_NAME")).to eq("example") - end - - it "exposes package summary and description tokens for generated metadata" do - tokens = described_class.send( - :template_tokens, - { - package: { - name: "example", - summary: "Example summary", - description: "Example description" - }, - rubygems: {}, - project_runtime: {} - }, - {} - ) - - expect(tokens.fetch("KJ|PACKAGE_SUMMARY")).to eq("Example summary") - expect(tokens.fetch("KJ|PACKAGE_DESCRIPTION")).to eq("Example description") - end - - it "templates spec helper coverage bootstrap before loading the library" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - - Dir.mktmpdir("kettle-jem-spec-helper-coverage", tmp_root) do |root| - write_tree(root, { - "example-gem.gemspec" => <<~RUBY, - Gem::Specification.new do |spec| - spec.name = "example-gem" - spec.summary = "Example gem" - spec.required_ruby_version = ">= 3.2" - end - RUBY - ".kettle-jem.yml" => <<~YAML, - project_emoji: 🧪 - rubygems: - entrypoint_require: "example/gem" - namespace: "Example::Custom" - templates: - root: packaged - apply: true - entries: - - spec/spec_helper.rb - YAML - "spec/spec_helper.rb" => <<~RUBY - # frozen_string_literal: true - - require "example/custom" - - RSpec.configure do |config| - config.example_status_persistence_file_path = ".rspec_status" - end - RUBY - }) - - apply = described_class.apply_project(root, env: {}, run_options: {accept: true}) - report = apply.fetch(:recipe_reports).find do |candidate| - candidate.fetch(:relative_path) == "spec/spec_helper.rb" - end - content = report.fetch(:final_content) - - expect(content.index('require "kettle-soup-cover"')).to be < content.index('require "example/custom"') - expect(content).to include("if Kettle::Soup::Cover::DO_COV") - expect(content).to include('require "simplecov"') - expect(content.index('require "simplecov"')).to be < content.index('require "kettle/soup/cover/config"') - expect(content.index('require "kettle/soup/cover/config"')).to be < content.index("SimpleCov.start") - expect(content).to include("SimpleCov.start") - expect(content).to include('require "kettle/test/rspec"') - expect(content.scan('require "example/custom"').size).to eq(1) - end - end - - it "preserves destination spec helper support wiring while adding template bootstrap" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - - Dir.mktmpdir("kettle-jem-spec-helper-custom-wiring", tmp_root) do |root| - write_tree(root, { - "example.gemspec" => <<~RUBY, - Gem::Specification.new do |spec| - spec.name = "example" - spec.summary = "Example gem" - spec.required_ruby_version = ">= 3.2" - end - RUBY - ".kettle-jem.yml" => <<~YAML, - project_emoji: 🧪 - rubygems: - entrypoint_require: "example/custom" - namespace: "Example::Custom" - templates: - root: packaged - apply: true - entries: - - spec/spec_helper.rb - YAML - "spec/spec_helper.rb" => <<~RUBY - # frozen_string_literal: true - - # Internal ENV config - require_relative "config/debug" - require_relative "config/vcr" - - require "kettle/test/rspec" - require "example-gem" - - # Internal RSpec & related config - require_relative "support/shared_contexts/with_rake" - require_relative "support/shared_contexts/with_mocked_git_adapter" - - RSpec.configure do |config| - config.include_context "with mocked git adapter" - end - RUBY - }) - - apply = described_class.apply_project(root, env: {}, run_options: {accept: true}) - report = apply.fetch(:recipe_reports).find do |candidate| - candidate.fetch(:relative_path) == "spec/spec_helper.rb" - end - content = report.fetch(:final_content) - - expect(content).to include('require "kettle-soup-cover"') - expect(content.index('require "kettle-soup-cover"')).to be < content.index('require "example-gem"') - expect(content).to include("if Kettle::Soup::Cover::DO_COV") - expect(content).to include('require "simplecov"') - expect(content.index('require "simplecov"')).to be < content.index('require "kettle/soup/cover/config"') - expect(content.index('require "kettle/soup/cover/config"')).to be < content.index("SimpleCov.start") - expect(content).to include("SimpleCov.start") - expect(content.scan('require "kettle/test/rspec"').size).to eq(1) - expect(content.scan('require "example-gem"').size).to eq(1) - expect(content).not_to include('require "example/gem"') - expect(content).not_to include("require \"kettle/test/rspec\"\n\n\n# Internal ENV config") - expect(content).to include('require_relative "config/debug"') - expect(content).to include('require_relative "config/vcr"') - expect(content).to include('require_relative "support/shared_contexts/with_rake"') - expect(content).to include('require_relative "support/shared_contexts/with_mocked_git_adapter"') - expect(content).to include('config.include_context "with mocked git adapter"') - end - end - - it "treats packaged local Gemfiles as template-owned by default" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-packaged-local-gemfile-default-strategy", tmp_root) do |root| - write_tree(root, { - "example.gemspec" => <<~RUBY, - Gem::Specification.new do |spec| - spec.name = "example" - spec.summary = "Example" - end - RUBY - ".kettle-jem.yml" => <<~YAML, - templates: - root: packaged - apply: true - entries: - - gemfiles/modular/style_local.gemfile - YAML - "gemfiles/modular/style_local.gemfile" => <<~RUBY - # frozen_string_literal: true - - local_gems = %w[ - local-only - rubocop-ruby2_3 - ] - RUBY - }) - - plan = described_class.plan_project(root, env: {}) - report = plan.fetch(:recipe_reports).find do |candidate| - candidate.fetch(:relative_path) == "gemfiles/modular/style_local.gemfile" - end - content = report.fetch(:final_content) - - expect(report.dig(:metadata, :template_source_preference)).to include(strategy: "accept_template") - expect(content).to include("rubocop-ruby") - expect(content).to include("declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name)") - expect(content).to include("local_gems_to_eval = local_gems - %w[example] - declared_gems") - expect(content).to include("gems: local_gems_to_eval") - expect(content).not_to include("local-only") - expect(content).not_to include("rubocop-ruby2_3") - end - end - - it "excludes the current gem and already declared gems from documentation local path overrides" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-documentation-local-gemfile-self-exclusion", tmp_root) do |root| - write_tree(root, { - "yard-yaml.gemspec" => <<~RUBY, - Gem::Specification.new do |spec| - spec.name = "yard-yaml" - spec.summary = "YARD YAML" - end - RUBY - ".kettle-jem.yml" => <<~YAML - templates: - root: packaged - apply: true - entries: - - gemfiles/modular/documentation_local.gemfile - YAML - }) - - plan = described_class.plan_project(root, env: {}) - report = plan.fetch(:recipe_reports).find do |candidate| - candidate.fetch(:relative_path) == "gemfiles/modular/documentation_local.gemfile" - end - content = report.fetch(:final_content) - - expect(content).to include("local_gems = %w[yard-fence yard-timekeeper yard-yaml]") - expect(content).to include("declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name)") - expect(content).to include("local_gems_to_eval = local_gems - %w[yard-yaml] - declared_gems") - expect(content).to include("gems: local_gems_to_eval") - end - end - - it "generates nomono in the main Gemfile before local workspace overrides need it" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-main-gemfile-nomono", tmp_root) do |root| - write_tree(root, { - "example.gemspec" => <<~RUBY, - Gem::Specification.new do |spec| - spec.name = "example" - spec.summary = "Example" - end - RUBY - ".kettle-jem.yml" => <<~YAML - templates: - root: packaged - apply: true - entries: - - Gemfile - YAML - }) - - apply = described_class.apply_project(root, env: {}) - report = apply.fetch(:recipe_reports).find do |candidate| - candidate.fetch(:relative_path) == "Gemfile" - end - content = report.fetch(:final_content) - - expect(content).to include('nomono_requirements = ["~> 1.0", ">= 1.0.8"]') - expect(content).to include('gem "nomono", *nomono_requirements, require: false') - expect(content.index('gem "nomono"')).to be < content.index('eval_gemfile "gemfiles/modular/templating.gemfile"') - expect(File.read(File.join(root, "Gemfile"))).to eq(content) - end - end - - it "does not generate a duplicate nomono dependency in nomono's own main Gemfile" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-main-gemfile-nomono-self", tmp_root) do |root| - write_tree(root, { - "nomono.gemspec" => <<~RUBY, - Gem::Specification.new do |spec| - spec.name = "nomono" - spec.summary = "Nomono" - end - RUBY - ".kettle-jem.yml" => <<~YAML - templates: - root: packaged - apply: true - entries: - - Gemfile - YAML - }) - - apply = described_class.apply_project(root, env: {}) - content = apply.fetch(:recipe_reports).find { |candidate| candidate.fetch(:relative_path) == "Gemfile" }.fetch(:final_content) - - expect(content).not_to include('gem "nomono", *nomono_requirements') - expect(content).not_to include("nomono_requirements =") - expect(File.read(File.join(root, "Gemfile"))).to eq(content) - end - end - - it "adds nomono bootstrap to existing main Gemfiles before templating local overrides" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-main-gemfile-existing-nomono", tmp_root) do |root| - write_tree(root, { - "example.gemspec" => <<~RUBY, - Gem::Specification.new do |spec| - spec.name = "example" - spec.summary = "Example" - end - RUBY - "Gemfile" => <<~RUBY, - # frozen_string_literal: true - - source "https://gem.coop" - - gemspec - - eval_gemfile "gemfiles/modular/templating.gemfile" if ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? - RUBY - ".kettle-jem.yml" => <<~YAML - templates: - root: packaged - apply: true - entries: - - Gemfile - YAML - }) - - apply = described_class.apply_project(root, env: {}) - gemfile = File.read(File.join(root, "Gemfile")) - - expect(apply.fetch(:changed_files)).to include("Gemfile") - expect(gemfile).to include('nomono_requirements = ["~> 1.0", ">= 1.0.8"]') - expect(gemfile).to include('gem "nomono", *nomono_requirements, require: false') - expect(gemfile.index('gem "nomono"')).to be < gemfile.index('eval_gemfile "gemfiles/modular/templating.gemfile"') - end - end - - it "treats packaged CITATION.cff as template-owned metadata by default" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-packaged-citation-default-strategy", tmp_root) do |root| - write_tree(root, { - "example.gemspec" => <<~RUBY, - Gem::Specification.new do |spec| - spec.name = "example" - spec.summary = "Example" - spec.authors = ["Ada Lovelace"] - spec.email = ["ada@example.com"] - spec.metadata["source_code_uri"] = "https://github.com/acme/example" - end - RUBY - ".kettle-jem.yml" => <<~YAML, - repository: - topology: standalone - templates: - root: packaged - apply: true - entries: - - CITATION.cff - tokens: - author: - orcid: 0000-0001-2345-6789 - YAML - "CITATION.cff" => <<~YAML - cff-version: 1.2.0 - title: "example" - identifiers: - - type: url - value: 'https://github.com/acme/example/tree/main/gems/example' - repository-code: 'https://github.com/acme/example/tree/main/gems/example' - YAML - }) - - plan = described_class.plan_project(root, env: {}) - report = plan.fetch(:recipe_reports).find do |candidate| - candidate.fetch(:relative_path) == "CITATION.cff" - end - content = report.fetch(:final_content) - - expect(report.dig(:metadata, :template_source_preference)).to include(strategy: "accept_template") - expect(content).to include("repository-code: 'https://github.com/acme/example'") - expect(content).not_to include("/gems/example") - end - end - - it "removes the destination package from arbitrary modular Gemfile dependency lists" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-modular-gemfile-self-dependency", tmp_root) do |root| - write_tree(root, { - "example-gem.gemspec" => <<~RUBY, - Gem::Specification.new do |spec| - spec.name = "example-gem" - spec.summary = "Example Gem" - end - RUBY - ".kettle-jem.yml" => <<~YAML, - templates: - root: template - apply: true - entries: - - gemfiles/modular/debug.gemfile - files: - gemfiles: - modular: - debug.gemfile: - strategy: accept_template - YAML - "gemfiles/modular/debug.gemfile" => <<~RUBY, - # frozen_string_literal: true - - gem "existing" - RUBY - "template/gemfiles/modular/debug.gemfile.example" => <<~RUBY - # frozen_string_literal: true - - dependency_root = ENV["DEPENDENCY_ROOT"].to_s.strip - - if !dependency_root.empty? - %w[ - debug - example-gem - ].each do |gem_name| - gem gem_name, path: File.join(dependency_root, gem_name) - end - else - gem "example-gem", ">= 1.0" - end - RUBY - }) - - apply = described_class.apply_project(root, env: {}) - report = apply.fetch(:recipe_reports).find do |candidate| - candidate.fetch(:relative_path) == "gemfiles/modular/debug.gemfile" - end - content = report.fetch(:final_content) - - expect(content).to include("debug") - expect(content).not_to match(/^\s+example-gem$/) - expect(content).not_to match(/^\s*gem\s+["']example-gem["']/) - expect(File.read(File.join(root, "gemfiles/modular/debug.gemfile"))).to eq(content) - end - end - - it "removes gemspec runtime dependencies from modular Gemfile dependency lists" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-modular-gemfile-runtime-dependency", tmp_root) do |root| - write_tree(root, { - "yard-yaml.gemspec" => <<~RUBY, - Gem::Specification.new do |spec| - spec.name = "yard-yaml" - spec.summary = "YARD YAML" - spec.add_dependency("yaml-converter", "~> 0.2") - end - RUBY - ".kettle-jem.yml" => <<~YAML, - templates: - root: template - apply: true - entries: - - gemfiles/modular/documentation.gemfile - files: - gemfiles: - modular: - documentation.gemfile: - strategy: accept_template - YAML - "template/gemfiles/modular/documentation.gemfile.example" => <<~RUBY - # frozen_string_literal: true - - # Documentation - gem "kramdown", "~> 2.5", ">= 2.5.1", require: false - gem "yaml-converter", "~> 0.2", ">= 0.2.3", require: false - gem "yard", "~> 0.9", ">= 0.9.44", require: false - RUBY - }) - - apply = described_class.apply_project(root, env: {}) - report = apply.fetch(:recipe_reports).find do |candidate| - candidate.fetch(:relative_path) == "gemfiles/modular/documentation.gemfile" - end - content = report.fetch(:final_content) - - expect(content).to include('gem "kramdown"') - expect(content).to include('gem "yard"') - expect(content).not_to include('gem "yaml-converter"') - expect(File.read(File.join(root, "gemfiles/modular/documentation.gemfile"))).to eq(content) - end - end - - it "generates shunted.gemfile entries from resolved development dependency Ruby floors" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - resolver = Class.new do - def versions(gem_name, requirements: nil) - case gem_name - when "debug" - [{number: "1.9.2", ruby_version: ">= 3.3"}] - when "rack-session" - [ - {number: "1.0.1", ruby_version: ">= 2.3"}, - {number: "2.1.2", ruby_version: ">= 2.5"} - ] - when "rake" - [{number: "13.2.1", ruby_version: ">= 2.6"}] - else - [] - end - end - - def min_ruby_version(gem_name, version) - case gem_name - when "debug" - Gem::Version.new("3.3") - when "rack-session" - (version == "1.0.1") ? Gem::Version.new("2.3") : Gem::Version.new("2.5") - else - Gem::Version.new("2.6") - end - end - - def parse_min_ruby(requirement) - Kettle::Jem::RubyGemsResolver.new.parse_min_ruby(requirement) - end - end.new - - Dir.mktmpdir("kettle-jem-shunted-gemfile", tmp_root) do |root| - write_tree(root, { - "example.gemspec" => <<~RUBY, - Gem::Specification.new do |spec| - spec.name = "example" - spec.summary = "Example" - spec.required_ruby_version = ">= 3.2" - spec.add_development_dependency "debug", "~> 1.9" - spec.add_development_dependency "rack-session", ">= 0" - spec.add_development_dependency "rake", "~> 13.0" - end - RUBY - "gemfiles/modular/shunted.gemfile" => <<~RUBY, - # frozen_string_literal: true - - # local notes remain outside the generated block - RUBY - "gemfiles/modular/rack-session/r2.4/v2.0.gemfile" => <<~RUBY - gem "rack-session", "< 2", github: "pboling/rack-session", branch: "fix-missing-rack-session" - RUBY - }) - - apply = described_class.apply_project(root, env: {}, run_options: {rubygems_resolver: resolver}) - report = apply.fetch(:recipe_reports).find do |candidate| - candidate.fetch(:relative_path) == "gemfiles/modular/shunted.gemfile" - end - content = report.fetch(:final_content) - - expect(report.fetch(:request_envelope).fetch(:request).fetch(:provider_family)).to eq("ruby") - expect(report.fetch(:request_envelope).fetch(:request).fetch(:provider_backend)).to eq("ast-crispr-ruby-prism") - expect(report.fetch(:report_envelope).fetch(:report).fetch(:step_reports).first.fetch(:metadata).fetch(:provider_family)).to eq("ruby") - expect(content).to include("# local notes remain outside the generated block") - expect_gem_dependency_declared(content, "debug") - expect(content).not_to include('gem "rack-session"') - expect(content).not_to include('gem "rake"') - expect(File.read(File.join(root, "gemfiles/modular/shunted.gemfile"))).to eq(content) - - described_class.apply_project(root, env: {}, run_options: {rubygems_resolver: resolver}) - reapplied = File.read(File.join(root, "gemfiles/modular/shunted.gemfile")) - expect(reapplied.lines.count { |line| line.include?(Kettle::Jem::MANAGED_BLOCK_OPEN) }).to be <= 1 - expect(reapplied.lines.count { |line| line.include?(Kettle::Jem::MANAGED_BLOCK_CLOSE) }).to be <= 1 - expect(reapplied).to include("# local notes remain outside the generated block") - - described_class.apply_project(root, env: {}, run_options: {rubygems_resolver: resolver}) - expect(File.read(File.join(root, "gemfiles/modular/shunted.gemfile"))).to eq(reapplied) - end - end - - it "ports old Gemfile comment preservation, token resolution, and commented dependency policy" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - contract_case = old_spec_contract.fetch(:cases).fetch(:gemfile_comment_and_token_policy) - important_block = <<~COMMENT - #### IMPORTANT ####################################################### - # #{contract_case.fetch(:important_phrase)}; Gemfile is NOT loaded in CI # - ####################################################### IMPORTANT #### - COMMENT - - Dir.mktmpdir("kettle-jem-old-gemfile-comment-policy", tmp_root) do |root| - write_tree(root, { - "example.gemspec" => <<~RUBY, - Gem::Specification.new do |spec| - spec.name = "#{contract_case.fetch(:resolved_gem_name)}" - spec.summary = "Example gem" - end - RUBY - ".kettle-jem.yml" => <<~YAML, - templates: - root: template - apply: true - entries: - - Gemfile - - gemfiles/modular/debug.gemfile - YAML - "Gemfile" => <<~RUBY, - # frozen_string_literal: true - - source "https://gem.coop" - - #{important_block} - # Include dependencies from #{contract_case.fetch(:resolved_gem_name)}.gemspec - gemspec - RUBY - "gemfiles/modular/debug.gemfile" => <<~RUBY, - # frozen_string_literal: true - - # Ex-Standard Library gems - gem "#{contract_case.fetch(:commented_dependency)}", "~> 1.15", ">= 1.15.2" # removed from stdlib in 3.5 - - platform :mri do - gem "#{contract_case.fetch(:active_dependency)}", ">= 1.1" - end - RUBY - "template/Gemfile.example" => <<~RUBY, - # frozen_string_literal: true - - source "https://gem.coop" - - #{important_block} - # Include dependencies from #{contract_case.fetch(:token)}.gemspec - gemspec - RUBY - "template/gemfiles/modular/debug.gemfile.example" => <<~RUBY - # frozen_string_literal: true - - # Ex-Standard Library gems - # #{contract_case.fetch(:commented_dependency)} is included in main Gemfile (and unlocked_deps Appraisal), so it can't be included here. - # gem "#{contract_case.fetch(:commented_dependency)}", "~> 1.15", ">= 1.15.2" # removed from stdlib in 3.5 - - platform :mri do - gem "#{contract_case.fetch(:active_dependency)}", ">= 1.1" - end - RUBY - }) - - first_apply = described_class.apply_project(root, env: {}) - second_apply = described_class.apply_project(root, env: {}) - gemfile_report = first_apply.fetch(:recipe_reports).find { |report| report.fetch(:relative_path) == "Gemfile" } - debug_report = first_apply.fetch(:recipe_reports).find do |report| - report.fetch(:relative_path) == "gemfiles/modular/debug.gemfile" - end - gemfile_content = gemfile_report.fetch(:final_content) - debug_content = debug_report.fetch(:final_content) - - expect(gemfile_content).to include(contract_case.fetch(:important_phrase)) - expect(gemfile_content).to include("dependencies from #{contract_case.fetch(:resolved_gem_name)}.gemspec") - expect(gemfile_content).not_to include(contract_case.fetch(:token)) - expect(debug_content).to include("#{contract_case.fetch(:commented_dependency)} is included in main Gemfile") - expect(debug_content).to include(%(# gem "#{contract_case.fetch(:commented_dependency)}", "~> 1.15", ">= 1.15.2")) - expect(debug_content).not_to match(/^gem "#{Regexp.escape(contract_case.fetch(:commented_dependency))}"/) - expect(debug_content.scan(/^\s*# gem "#{Regexp.escape(contract_case.fetch(:commented_dependency))}"/).count).to eq(1) - expect(debug_content.scan(/^\s*gem "#{Regexp.escape(contract_case.fetch(:active_dependency))}"/).count).to eq(1) - expect(File.read(File.join(root, "Gemfile"))).to eq(gemfile_content) - expect(File.read(File.join(root, "gemfiles/modular/debug.gemfile"))).to eq(debug_content) - expect(second_apply.fetch(:changed_files)).not_to include("Gemfile", "gemfiles/modular/debug.gemfile") - end - end - - it "normalizes preserved gemspec lines to the template block receiver" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-gemspec-receiver-slice", tmp_root) do |root| - write_tree(root, { - "example.gemspec" => <<~RUBY, - Gem::Specification.new do |gem| - gem.name = "example" - gem.summary = "Real summary" - gem.required_ruby_version = ">= 3.2" - gem.add_runtime_dependency "json", ">= 2.7" - gem.add_development_dependency "rubocop", "~> 1.70" - end - RUBY - ".kettle-jem.yml" => <<~YAML, - templates: - root: template - apply: true - entries: - - example.gemspec - YAML - "template/example.gemspec.example" => <<~RUBY - Gem::Specification.new do |spec| - spec.name = "example" - spec.summary = "TODO: Write a short summary" - spec.required_ruby_version = ">= 3.1" - spec.add_runtime_dependency "json", ">= 2.0" - spec.add_development_dependency "rspec", "~> 3.13" - end - RUBY - }) - - apply = described_class.apply_project(root, env: {}) - gemspec_report = apply.fetch(:recipe_reports).find do |report| - report.fetch(:recipe_name) == "template_source_application_example_gemspec" - end - gemspec_content = gemspec_report.fetch(:final_content) - - expect(gemspec_content).to include('spec.summary = "Real summary"') - expect(gemspec_content).to include('spec.required_ruby_version = ">= 3.2"') - expect(gemspec_content).to include('spec.add_runtime_dependency "json", ">= 2.7"') - expect(gemspec_content).to include('spec.add_development_dependency "rubocop", "~> 1.70"') - expect(gemspec_content).not_to include("gem.summary") - expect(gemspec_content).not_to include("gem.add_runtime_dependency") - expect(gemspec_report.dig(:report_envelope, :report, :step_reports, 0, :metadata, :ruby_template_policy)).to include( - file_type: "gemspec", - operations: include( - include(operation: "preserve_project_fields", preserved_fields: include("required_ruby_version", "summary")), - include(operation: "preserve_dependency_declarations", preserved_dependencies: include("json", "rubocop")), - include(operation: "normalize_gemspec_receiver", from: "gem", to: "spec") - ) - ) - expect(File.read(File.join(root, "example.gemspec"))).to eq(gemspec_content) - end - end - - it "lets configured rubygems minimum Ruby override preserved gemspec Ruby floor" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-gemspec-min-ruby-config-slice", tmp_root) do |root| - write_tree(root, { - "example.gemspec" => <<~RUBY, - Gem::Specification.new do |gem| - gem.name = "example" - gem.required_ruby_version = ">= 1.9.3" - end - RUBY - ".kettle-jem.yml" => <<~YAML, - rubygems: - min_ruby: "2.4" - templates: - root: template - apply: true - entries: - - example.gemspec - YAML - "template/example.gemspec.example" => <<~RUBY - Gem::Specification.new do |spec| - spec.name = "example" - spec.required_ruby_version = ">= 3.1" - end - RUBY - }) - - apply = described_class.apply_project(root, env: {}) - gemspec_report = apply.fetch(:recipe_reports).find do |report| - report.fetch(:recipe_name) == "template_source_application_example_gemspec" - end - gemspec_content = gemspec_report.fetch(:final_content) - - expect(gemspec_content).to include('spec.required_ruby_version = ">= 2.4"') - expect(gemspec_content).not_to include('gem.required_ruby_version = ">= 1.9.3"') - expect(File.read(File.join(root, "example.gemspec"))).to eq(gemspec_content) - end - end - - it "inlines gemspec version loading when minimum Ruby is at least 3.1" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-gemspec-modern-version-loader-slice", tmp_root) do |root| - write_tree(root, { - "my-gem.gemspec" => <<~RUBY, - # coding: utf-8 - # frozen_string_literal: true - - gem_version = - if Gem.ruby_version >= Gem::Version.new("3.1") - Module.new.tap { |mod| Kernel.load("\#{__dir__}/lib/my/gem/version.rb", mod) }::My::Gem::Version::VERSION - else - lib = File.expand_path("lib", __dir__) - $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib) - require "my/gem/version" - My::Gem::Version::VERSION - end - - Gem::Specification.new do |gem| - gem.name = "my-gem" - gem.version = gem_version - gem.summary = "Modern loader" - gem.required_ruby_version = ">= 3.2" - gem.homepage = "https://github.com/acme/my-gem" - end - RUBY - ".kettle-jem.yml" => <<~YAML, - templates: - root: template - apply: true - entries: - - my-gem.gemspec - YAML - "template/my-gem.gemspec.example" => <<~RUBY - # coding: utf-8 - # frozen_string_literal: true - - gem_version = - if Gem.ruby_version >= Gem::Version.new("3.1") - Module.new.tap { |mod| Kernel.load("\#{__dir__}/lib/{KJ|GEM_NAME_PATH}/version.rb", mod) }::{KJ|NAMESPACE}::Version::VERSION - else - require_relative "lib/{KJ|GEM_NAME_PATH}/version" - {KJ|NAMESPACE}::Version::VERSION - end - - Gem::Specification.new do |spec| - spec.name = "{KJ|GEM_NAME}" - spec.version = gem_version - spec.summary = "Template summary" - spec.required_ruby_version = ">= 2.3.0" - end - RUBY - }) - - apply = described_class.apply_project(root, env: {}) - gemspec_report = apply.fetch(:recipe_reports).find { |report| report.fetch(:recipe_name) == "template_source_application_my_gem_gemspec" } - gemspec_content = gemspec_report.fetch(:final_content) - - expect(gemspec_content).not_to include("gem_version =") - expect(gemspec_content).not_to include('if RUBY_VERSION >= "3.1"') - expect(gemspec_content).not_to include("Gemspec/RubyVersionGlobalsUsage") - expect(gemspec_content).not_to include("$LOAD_PATH.unshift(lib)") - expect(gemspec_content).not_to include('require "my/gem/version"') - expect(gemspec_content).to include("spec.version = Module.new.tap { |mod| Kernel.load(\"\#{__dir__}/lib/my/gem/version.rb\", mod) }::My::Gem::Version::VERSION") - version_loader_operation = gemspec_report.dig( - :report_envelope, - :report, - :step_reports, - 0, - :metadata, - :ruby_template_policy, - :operations - ).find { |operation| operation[:operation] == "rewrite_version_loader" } - expect(version_loader_operation).to include(mode: "modern", legacy_preamble_removed: true) - expect(Gem::Version.new(version_loader_operation.fetch(:min_ruby))).to be >= Gem::Version.new("3.1") - expect(File.read(File.join(root, "my-gem.gemspec"))).to eq(gemspec_content) - end - end - - it "rewrites preserved dependency requirements that interpolate the project version constant" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-gemspec-version-dependency-slice", tmp_root) do |root| - write_tree(root, { - "gemserver-gem_coop.gemspec" => <<~RUBY, - # frozen_string_literal: true - - require_relative "lib/gemserver/gem_coop/version" - - Gem::Specification.new do |spec| - spec.name = "gemserver-gem_coop" - spec.version = Gemserver::GemCoop::VERSION - spec.summary = "Gem coop preset" - spec.required_ruby_version = ">= 3.2" - spec.add_dependency "gemserver-purl", "= \#{Gemserver::GemCoop::VERSION}" - end - RUBY - "lib/gemserver/gem_coop/version.rb" => <<~RUBY, - # frozen_string_literal: true - - module Gemserver - module GemCoop - module Version - VERSION = "0.1.0" - end - VERSION = Version::VERSION - end - end - RUBY - ".kettle-jem.yml" => <<~YAML, - rubygems: - min_ruby: "3.2" - entrypoint_require: "gemserver/gem_coop" - namespace: "Gemserver::GemCoop" - templates: - root: template - apply: true - entries: - - gemserver-gem_coop.gemspec - YAML - "template/gemserver-gem_coop.gemspec.example" => <<~RUBY - # frozen_string_literal: true - - Gem::Specification.new do |spec| - spec.name = "{KJ|GEM_NAME}" - spec.version = "0.0.0" - spec.summary = "Template summary" - spec.required_ruby_version = ">= 2.3.0" - spec.add_dependency("version_gem", "~> 1.1", ">= 1.1.14") - end - RUBY - }) - - apply = described_class.apply_project(root, env: {}) - gemspec_report = apply.fetch(:recipe_reports).find { |report| report.fetch(:recipe_name) == "template_source_application_gemserver_gem_coop_gemspec" } - gemspec_content = gemspec_report.fetch(:final_content) - - expect(gemspec_content).not_to include('require_relative "lib/gemserver/gem_coop/version"') - expect(gemspec_content).to include("spec.version = Module.new.tap { |mod| Kernel.load(\"\#{__dir__}/lib/gemserver/gem_coop/version.rb\", mod) }::Gemserver::GemCoop::Version::VERSION") - expect(gemspec_content).to include(%(spec.add_dependency "gemserver-purl", "= \#{spec.version}")) - expect(gemspec_content).not_to include("Gemserver::GemCoop::VERSION}") - expect { load File.join(root, "gemserver-gem_coop.gemspec") }.not_to raise_error - expect(File.read(File.join(root, "gemserver-gem_coop.gemspec"))).to eq(gemspec_content) - end - end - - it "keeps gemspec legacy version loading with require_relative when minimum Ruby is below 3.1 and at least 2.2" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-gemspec-legacy-version-loader-slice", tmp_root) do |root| - write_tree(root, { - "my-gem.gemspec" => <<~RUBY, - Gem::Specification.new do |gem| - gem.name = "my-gem" - gem.version = "0.1.0" - gem.summary = "Legacy loader" - gem.required_ruby_version = ">= 3.0" - gem.homepage = "https://github.com/acme/my-gem" - end - RUBY - ".kettle-jem.yml" => <<~YAML, - templates: - root: template - apply: true - entries: - - my-gem.gemspec - YAML - "template/my-gem.gemspec.example" => <<~RUBY - Gem::Specification.new do |spec| - spec.name = "{KJ|GEM_NAME}" - spec.version = "0.0.0" - spec.summary = "Template summary" - spec.required_ruby_version = ">= 2.3.0" - end - RUBY - }) - - apply = described_class.apply_project(root, env: {}) - gemspec_report = apply.fetch(:recipe_reports).find { |report| report.fetch(:recipe_name) == "template_source_application_my_gem_gemspec" } - gemspec_content = gemspec_report.fetch(:final_content) - - expect(gemspec_content).to include("gem_version =") - expect(gemspec_content).to include('if Gem.ruby_version >= Gem::Version.new("3.1")') - expect(gemspec_content).not_to include("Gemspec/RubyVersionGlobalsUsage") - expect(gemspec_content).to include('require_relative "lib/my/gem/version"') - expect(gemspec_content).not_to include("$LOAD_PATH.unshift(lib)") - expect(gemspec_content).not_to include('require "my/gem/version"') - expect(gemspec_content).to include("My::Gem::Version::VERSION") - expect(gemspec_content).to include("spec.version = gem_version") - expect(gemspec_report.dig(:report_envelope, :report, :step_reports, 0, :metadata, :ruby_template_policy, :operations)).to include( - include(operation: "rewrite_version_loader", min_ruby: "3.0", mode: "legacy", legacy_preamble_present: true) - ) - expect(File.read(File.join(root, "my-gem.gemspec"))).to eq(gemspec_content) - end - end - - it "keeps load-path gemspec legacy version loading only when minimum Ruby is below 2.2" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-gemspec-pre-require-relative-version-loader-slice", tmp_root) do |root| - write_tree(root, { - "my-gem.gemspec" => <<~RUBY, - Gem::Specification.new do |gem| - gem.name = "my-gem" - gem.version = "0.1.0" - gem.summary = "Pre require_relative loader" - gem.required_ruby_version = ">= 2.1" - gem.homepage = "https://github.com/acme/my-gem" - end - RUBY - ".kettle-jem.yml" => <<~YAML, - templates: - root: template - apply: true - entries: - - my-gem.gemspec - YAML - "template/my-gem.gemspec.example" => <<~RUBY - Gem::Specification.new do |spec| - spec.name = "{KJ|GEM_NAME}" - spec.version = "0.0.0" - spec.summary = "Template summary" - spec.required_ruby_version = ">= 2.3.0" - end - RUBY - }) - - apply = described_class.apply_project(root, env: {}) - gemspec_report = apply.fetch(:recipe_reports).find { |report| report.fetch(:recipe_name) == "template_source_application_my_gem_gemspec" } - gemspec_content = gemspec_report.fetch(:final_content) - - expect(gemspec_content).to include("gem_version =") - expect(gemspec_content).to include("$LOAD_PATH.unshift(lib)") - expect(gemspec_content).to include('lib = File.expand_path("lib", File.dirname(__FILE__))') - expect(gemspec_content).to include('require "my/gem/version"') - expect(gemspec_content).not_to include('require_relative "lib/my/gem/version"') - expect(gemspec_content).to include("spec.version = gem_version") - expect(gemspec_report.dig(:report_envelope, :report, :step_reports, 0, :metadata, :ruby_template_policy, :operations)).to include( - include(operation: "rewrite_version_loader", min_ruby: "2.1", mode: "legacy", legacy_preamble_present: true) - ) - expect(File.read(File.join(root, "my-gem.gemspec"))).to eq(gemspec_content) - end - end - - it "keeps explicit zero runtime gemspec floor dependency-free for Ruby 1.x compatibility" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-gemspec-zero-runtime-floor-slice", tmp_root) do |root| - write_tree(root, { - "my-gem.gemspec" => <<~RUBY, - Gem::Specification.new do |gem| - gem.name = "my-gem" - gem.version = "0.1.0" - gem.summary = "Zero floor loader" - gem.homepage = "https://github.com/acme/my-gem" - end - RUBY - ".kettle-jem.yml" => <<~YAML, - rubygems: - min_ruby: "0" - entrypoint_require: "my/gem" - namespace: "My::Gem" - templates: - root: template - apply: true - entries: - - my-gem.gemspec - YAML - "template/my-gem.gemspec.example" => <<~RUBY - Gem::Specification.new do |spec| - spec.name = "{KJ|GEM_NAME}" - spec.version = "0.0.0" - spec.summary = "Template summary" - spec.required_ruby_version = ">= 2.3.0" - spec.add_dependency("version_gem", "~> 1.1", ">= 1.1.14") - end - RUBY - }) - - apply = described_class.apply_project(root, env: {}) - gemspec_report = apply.fetch(:recipe_reports).find { |report| report.fetch(:recipe_name) == "template_source_application_my_gem_gemspec" } - gemspec_content = gemspec_report.fetch(:final_content) - - expect(gemspec_content).to include("gem_version =") - expect(gemspec_content).to include('if Gem.ruby_version >= Gem::Version.new("3.1")') - expect(gemspec_content).to include('lib = File.expand_path("lib", File.dirname(__FILE__))') - expect(gemspec_content).to include('require "my/gem/version"') - expect(gemspec_content).not_to include("required_ruby_version") - expect(gemspec_content).not_to include("version_gem") - expect(gemspec_content).not_to include("require_relative") - expect(gemspec_content).to include("spec.version = gem_version") - expect(File.read(File.join(root, "my-gem.gemspec"))).to eq(gemspec_content) - end - end - - it "removes version_gem dependency and entrypoint references under an old Ruby floor" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-remove-version-gem-runtime", tmp_root) do |root| - write_tree(root, { - "legacy.gemspec" => <<~RUBY, - Gem::Specification.new do |gem| - gem.name = "legacy" - gem.version = "0.1.0" - gem.summary = "Legacy gem" - gem.homepage = "https://github.com/acme/legacy" - gem.required_ruby_version = ">= 1.8.7" - gem.add_dependency("version_gem", "~> 1.1", ">= 1.1.10") - end - RUBY - "lib/legacy.rb" => <<~RUBY, - # frozen_string_literal: true - - require "version_gem" - require_relative "legacy/version" - - module Legacy - end - - Legacy::Version.class_eval do - extend VersionGem::Basic - end - RUBY - "lib/legacy/version.rb" => <<~RUBY, - # frozen_string_literal: true - - module Legacy - module Version - VERSION = "0.1.0" - end - VERSION = Version::VERSION # Traditional Constant Location - end - RUBY - "gemfiles/modular/runtime_heads.gemfile" => <<~RUBY, - # frozen_string_literal: true - - # Test against HEAD of runtime dependencies so we can proactively file bugs - - # Ruby >= 2.2 - gem "version_gem", github: "ruby-oauth/version_gem", branch: "main" - - eval_gemfile("x_std_libs/vHEAD.gemfile") - RUBY - ".kettle-jem.yml" => <<~YAML, - rubygems: - min_ruby: "1.8.7" - entrypoint_require: "legacy" - namespace: "Legacy" - templates: - root: template - apply: true - entries: - - legacy.gemspec - - gemfiles/modular/runtime_heads.gemfile - YAML - "template/legacy.gemspec.example" => <<~RUBY, - Gem::Specification.new do |spec| - spec.name = "{KJ|GEM_NAME}" - spec.version = "0.0.0" - spec.summary = "Template summary" - spec.required_ruby_version = ">= 2.3.0" - # Ref: https://gitlab.com/ruby-oauth/version_gem/-/issues/3 - spec.add_dependency("version_gem", "~> 1.1", ">= 1.1.14") - end - RUBY - "template/gemfiles/modular/runtime_heads.gemfile.example" => <<~RUBY - # frozen_string_literal: true - - # Test against HEAD of runtime dependencies so we can proactively file bugs - - # Ruby >= 2.2 - gem "version_gem", github: "ruby-oauth/version_gem", branch: "main" - - eval_gemfile("x_std_libs/vHEAD.gemfile") - RUBY - }) - - apply = described_class.apply_project(root, env: {}) - gemspec_report = apply.fetch(:recipe_reports).find { |report| report.fetch(:recipe_name) == "template_source_application_legacy_gemspec" } - gemspec_content = gemspec_report.fetch(:final_content) - entrypoint_content = File.read(File.join(root, "lib", "legacy.rb")) - version_content = File.read(File.join(root, "lib", "legacy", "version.rb")) - runtime_heads_content = File.read(File.join(root, "gemfiles", "modular", "runtime_heads.gemfile")) - - expect(gemspec_content).not_to include("version_gem") - expect(gemspec_content).to include('spec.required_ruby_version = ">= 1.8.7" # rubocop:disable Gemspec/RequiredRubyVersion') - expect(apply.fetch(:post_apply_steps)).to include(hash_including( - name: "version_gem_cleanup", - status: "applied", - changed_files: ["lib/legacy.rb"] - )) - expect(entrypoint_content).not_to include("version_gem") - expect(entrypoint_content).not_to include("VersionGem") - expect(entrypoint_content).to include('require_relative "legacy/version"') - expect(entrypoint_content).not_to end_with("\n\n") - expect(version_content).to include("module Version") - expect(version_content).to include('VERSION = "0.1.0"') - expect(version_content).to include("VERSION = Version::VERSION # Traditional Constant Location") - expect(runtime_heads_content).not_to include("version_gem") - expect(runtime_heads_content).to include('eval_gemfile("x_std_libs/vHEAD.gemfile")') - expect(File.read(File.join(root, "legacy.gemspec"))).to eq(gemspec_content) - end - end - - it "does not add the RequiredRubyVersion RuboCop disable for Ruby 2+ runtime floors" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-required-ruby-version-rubocop-disable", tmp_root) do |root| - write_tree(root, { - "modern.gemspec" => <<~RUBY, - Gem::Specification.new do |spec| - spec.name = "modern" - spec.version = "0.1.0" - spec.summary = "Modern gem" - spec.homepage = "https://github.com/acme/modern" - spec.required_ruby_version = ">= 1.8.7" - end - RUBY - ".kettle-jem.yml" => <<~YAML, - rubygems: - min_ruby: "2.0" - templates: - root: template - apply: true - entries: - - modern.gemspec - YAML - "template/modern.gemspec.example" => <<~RUBY - Gem::Specification.new do |spec| - spec.name = "{KJ|GEM_NAME}" - spec.version = "0.0.0" - spec.summary = "Template summary" - spec.required_ruby_version = ">= 2.3.0" - end - RUBY - }) - - apply = described_class.apply_project(root, env: {}) - gemspec_report = apply.fetch(:recipe_reports).find { |report| report.fetch(:recipe_name) == "template_source_application_modern_gemspec" } - gemspec_content = gemspec_report.fetch(:final_content) - - expect(gemspec_content).to include('spec.required_ruby_version = ">= 2.0"') - expect(gemspec_content).not_to include("Gemspec/RequiredRubyVersion") - end - end - - it "preserves missing runtime gemspec dependencies above the development dependency separator" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - - Dir.mktmpdir("kettle-jem-gemspec-runtime-dependency-slice", tmp_root) do |root| - write_tree(root, { - "example.gemspec" => <<~RUBY, - Gem::Specification.new do |gem| - gem.name = "example" - gem.summary = "Real summary" - gem.required_ruby_version = ">= 4.0" - gem.add_dependency("json", "~> 2.10") - gem.add_development_dependency("rubocop", "~> 1.70") - end - RUBY - ".kettle-jem.yml" => <<~YAML, - templates: - root: template - apply: true - entries: - - example.gemspec - YAML - "template/example.gemspec.example" => <<~RUBY - Gem::Specification.new do |spec| - spec.name = "example" - spec.summary = "TODO: Write a short summary" - spec.required_ruby_version = ">= 4.0" - spec.add_dependency("version_gem", "~> 1.1", ">= 1.1.14") - - # NOTE: It is preferable to list development dependencies in the gemspec due to increased - # visibility and discoverability. - - spec.add_development_dependency("rake", "~> 13.0") - end - RUBY - }) - - apply = described_class.apply_project(root, env: {}) - gemspec_report = apply.fetch(:recipe_reports).find do |report| - report.fetch(:recipe_name) == "template_source_application_example_gemspec" - end - gemspec_content = gemspec_report.fetch(:final_content) - runtime_index = gemspec_content.index(%(spec.add_dependency("json", "~> 2.10"))) - separator_index = gemspec_content.index("# NOTE: It is preferable") - development_index = gemspec_content.index(%(spec.add_development_dependency("rubocop", "~> 1.70"))) - - expect(gemspec_content).to include(%(spec.add_dependency("json", "~> 2.10"))) - expect(gemspec_content).to include(%(spec.add_development_dependency("rubocop", "~> 1.70"))) - expect(runtime_index).to be < separator_index - expect(development_index).to be > separator_index - expect(File.read(File.join(root, "example.gemspec"))).to eq(gemspec_content) - end - end - - it "keeps the greater version requirement for template-managed gemspec dependencies" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - - Dir.mktmpdir("kettle-jem-gemspec-template-managed-dependencies", tmp_root) do |root| - write_tree(root, { - "example.gemspec" => <<~RUBY, - Gem::Specification.new do |gem| - gem.name = "example" - gem.summary = "Real summary" - gem.required_ruby_version = ">= 3.2" - gem.add_dependency("json", "~> 2.10") - gem.add_development_dependency("kettle-dev", "~> 2.0") - gem.add_development_dependency("rake", "~> 13.1") - gem.add_development_dependency("custom-dev", ">= 1") - end - RUBY - ".kettle-jem.yml" => <<~YAML, - templates: - root: template - apply: true - entries: - - example.gemspec - YAML - "template/example.gemspec.example" => <<~RUBY - Gem::Specification.new do |spec| - spec.name = "example" - spec.summary = "TODO: Write a short summary" - spec.required_ruby_version = ">= 3.2" - spec.add_dependency("version_gem", "~> 1.1", ">= 1.1.14") - - # NOTE: It is preferable to list development dependencies in the gemspec due to increased - # visibility and discoverability. - - spec.add_development_dependency("kettle-dev", "~> 2.3", ">= 2.3.7") - spec.add_development_dependency("rake", "~> 13.0") - end - RUBY - }) - - apply = described_class.apply_project(root, env: {}) - gemspec_report = apply.fetch(:recipe_reports).find do |report| - report.fetch(:recipe_name) == "template_source_application_example_gemspec" - end - gemspec_content = gemspec_report.fetch(:final_content) - - expect(gemspec_content).to include(%(spec.add_dependency("json", "~> 2.10"))) - expect(gemspec_content).to include(%(spec.add_development_dependency("custom-dev", ">= 1"))) - expect_gemspec_dependency_declared(gemspec_content, "kettle-dev", kind: :add_development_dependency) - expect(gemspec_content).to include(%(spec.add_development_dependency("rake", "~> 13.1"))) - expect(gemspec_content).not_to include(%(spec.add_development_dependency("kettle-dev", "~> 2.0")\n)) - expect(gemspec_content).not_to include(%(spec.add_development_dependency("rake", "~> 13.0"))) - expect(File.read(File.join(root, "example.gemspec"))).to eq(gemspec_content) - end - end - - it "does not duplicate runtime gemspec dependencies as development dependencies" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - - Dir.mktmpdir("kettle-jem-gemspec-runtime-dev-dedup-slice", tmp_root) do |root| - write_tree(root, { - "example.gemspec" => <<~RUBY, - Gem::Specification.new do |gem| - gem.name = "example" - gem.summary = "Real summary" - gem.required_ruby_version = ">= 2.4" - gem.add_dependency("kettle-test", "~> 2.0", ">= 2.0.11") - end - RUBY - ".kettle-jem.yml" => <<~YAML, - templates: - root: template - apply: true - entries: - - example.gemspec - YAML - "template/example.gemspec.example" => <<~RUBY - Gem::Specification.new do |spec| - spec.name = "example" - spec.summary = "TODO: Write a short summary" - spec.required_ruby_version = ">= 2.4" - spec.add_dependency("version_gem", "~> 1.1", ">= 1.1.14") - - # NOTE: It is preferable to list development dependencies in the gemspec due to increased - # visibility and discoverability. - - spec.add_development_dependency("kettle-test", "~> 2.0", ">= 2.0.11") - spec.add_development_dependency("rake", "~> 13.0") - end - RUBY - }) - - apply = described_class.apply_project(root, env: {}) - gemspec_report = apply.fetch(:recipe_reports).find do |report| - report.fetch(:recipe_name) == "template_source_application_example_gemspec" - end - gemspec_content = gemspec_report.fetch(:final_content) - - expect(gemspec_content.scan('add_dependency("kettle-test"').size).to eq(1) - expect(gemspec_content).not_to include(%(add_development_dependency("kettle-test"))) - expect(gemspec_content).to include(%(spec.add_development_dependency("rake", "~> 13.0"))) - expect(File.read(File.join(root, "example.gemspec"))).to eq(gemspec_content) - end - end - - it "keeps old runtime dependency customizations above the development dependency note block" do - template = <<~RUBY - Gem::Specification.new do |spec| - spec.name = "demo" - spec.version = "1.0.0" - spec.add_dependency("version_gem", "~> 1.1", ">= 1.1.9") # ruby >= 2.2.0 - - # NOTE: It is preferable to list development dependencies in the gemspec due to increased - # visibility and discoverability. - - # Dev, Test, & Release Tasks - spec.add_development_dependency("kettle-dev", "~> 2.3", ">= 2.3.7") # ruby >= 2.4.0 - - # Security - spec.add_development_dependency("bundler-audit", "~> 0.9.3") # ruby >= 2.0.0 - end - RUBY - destination = <<~RUBY - Gem::Specification.new do |gem| - gem.name = "demo" - gem.version = "1.0.0" - gem.add_dependency("version_gem", "~> 1.1", ">= 1.1.9") # ruby >= 2.2.0 - # Dev tooling (runtime dep -- kettle-jem extends kettle-dev's functionality) - gem.add_dependency("kettle-dev", "~> 2.2", ">= 2.2.10") # ruby >= 2.4.0 - - # NOTE: It is preferable to list development dependencies in the gemspec due to increased - # visibility and discoverability. - - # Security - gem.add_development_dependency("bundler-audit", "~> 0.9.3") # ruby >= 2.0.0 - end - RUBY - - merged = described_class.merge_gemspec_template_source(template, destination, facts: {package: {name: "demo"}}) - - expect { RubyVM::InstructionSequence.compile(merged) }.not_to raise_error - expect_gemspec_dependency_declared(merged, "kettle-dev", kind: :add_dependency) - expect(merged).not_to include('spec.add_development_dependency("kettle-dev"') - expect(merged).to include("# visibility and discoverability.\n\n # Security") - expect(merged).not_to include("# visibility and discoverability.\n\n\n # Security") - - runtime_index = merged.index('spec.add_dependency("kettle-dev"') - note_index = merged.index("# NOTE: It is preferable to list development dependencies in the gemspec due to increased") - bundler_audit_index = merged.index('spec.add_development_dependency("bundler-audit", "~> 0.9.3")') - - expect(runtime_index).to be < note_index - expect(note_index).to be < bundler_audit_index - end - - it "does not accumulate duplicate blank section separators across repeated gemspec merges" do - template = <<~RUBY - Gem::Specification.new do |spec| - spec.name = "demo" - spec.version = "1.0.0" - spec.required_ruby_version = ">= 3.2.0" - spec.metadata["rubygems_mfa_required"] = "true" - - # Specify which files are part of the released package. - spec.files = Dir[ - "lib/**/*.rb", - ] - spec.require_paths = ["lib"] - - # Utilities - spec.add_dependency("version_gem", "~> 1.1") - - # NOTE: It is preferable to list development dependencies in the gemspec due to increased - # visibility and discoverability. - - # Dev, Test, & Release Tasks - spec.add_development_dependency("kettle-dev", "~> 2.3", ">= 2.3.7") - - # Security - spec.add_development_dependency("bundler-audit", "~> 0.9.3") - - # Tasks - spec.add_development_dependency("rake", "~> 13.0") - end - RUBY - destination = <<~RUBY - Gem::Specification.new do |spec| - spec.name = "demo" - spec.version = "1.0.0" - spec.required_ruby_version = ">= 3.2.0" - spec.metadata["allowed_push_host"] = "https://rubygems.org" - spec.metadata["rubygems_mfa_required"] = "true" - - # Specify which files should be added to the gem when it is released. - gemspec = File.basename(__FILE__) - spec.files = IO.popen(%w[git ls-files -z], chdir: __dir__, err: IO::NULL) do |ls| - ls.readlines("\\x0", chomp: true) - end - spec.require_paths = ["lib"] - - # Utilities - spec.add_dependency("version_gem", "~> 1.1") - - # NOTE: It is preferable to list development dependencies in the gemspec due to increased - # visibility and discoverability. - - # Dev, Test, & Release Tasks - spec.add_development_dependency("kettle-dev", "~> 2.0") - - # Security - spec.add_development_dependency("bundler-audit", "~> 0.9.3") - - # Tasks - spec.add_development_dependency("rake", "~> 13.0") - end - RUBY - facts = {package: {name: "demo"}} - - once = described_class.merge_gemspec_template_source(template, destination, facts: facts) - twice = described_class.merge_gemspec_template_source(template, once, facts: facts) - - expect { RubyVM::InstructionSequence.compile(once) }.not_to raise_error - expect(once).to include("spec.metadata[\"rubygems_mfa_required\"] = \"true\"\n\n # Specify which files") - expect(once).not_to include("spec.metadata[\"rubygems_mfa_required\"] = \"true\"\n\n\n # Specify which files") - expect(once).to include("spec.require_paths = [\"lib\"]\n\n # Utilities") - expect(once).not_to include("spec.require_paths = [\"lib\"]\n\n\n # Utilities") - expect_gemspec_dependency_declared(once, "kettle-dev", kind: :add_development_dependency) - expect(once).to match(/spec\.add_development_dependency\("kettle-dev".*\n\n # Security/) - expect(once).not_to match(/spec\.add_development_dependency\("kettle-dev".*\n\n\n # Security/) - expect(once).to include("spec.add_development_dependency(\"bundler-audit\", \"~> 0.9.3\")\n\n # Tasks") - expect(once).not_to include("spec.add_development_dependency(\"bundler-audit\", \"~> 0.9.3\")\n\n\n # Tasks") - expect(twice).to eq(once) - end - - it "replaces executable destination gemspec files assignments with template package collections" do - template = <<~RUBY - Gem::Specification.new do |spec| - spec.name = "demo" - spec.version = "1.0.0" - - # Specify which files are part of the released package. - spec.files = Dir[ - "lib/**/*.rb", - "sig/**/*.rbs", - ] - end - RUBY - destination = <<~RUBY - Gem::Specification.new do |spec| - spec.name = "demo" - spec.version = "1.0.0" - - # Specify which files should be added to the gem when it is released. - # The `git ls-files -z` loads the files in the RubyGem that have been added into git. - gemspec = File.basename(__FILE__) - spec.files = IO.popen(%w[git ls-files -z], chdir: __dir__, err: IO::NULL) do |ls| - ls.readlines("\\x0", chomp: true).reject do |f| - (f == gemspec) || - f.start_with?(*%w[bin/ Gemfile .gitignore .rspec spec/ .github/ .rubocop.yml]) - end - end - end - RUBY - - merged = described_class.merge_gemspec_template_source(template, destination, facts: {package: {name: "demo"}}) - - expect { RubyVM::InstructionSequence.compile(merged) }.not_to raise_error - expect(merged).to include("# Specify which files are part of the released package.") - expect(merged).to include("spec.files = Dir[") - expect(merged).to include('"lib/**/*.rb"') - expect(merged).to include('"sig/**/*.rbs"') - expect(merged).not_to include("IO.popen(%w[git ls-files -z], chdir: __dir__, err: IO::NULL)") - end - - it "normalizes destination gemspec receiver names while preserving destination-only fields" do - template = <<~RUBY - Gem::Specification.new do |spec| - spec.name = "example" - spec.version = "1.0.0" - spec.summary = "Template summary" - spec.add_dependency("foo", "~> 1.0") - end - RUBY - destination = <<~RUBY - Gem::Specification.new do |gem| - gem.name = "example" - gem.version = "2.0.0" - gem.summary = "Destination summary" - gem.authors = ["Someone"] - end - RUBY - - merged = described_class.merge_gemspec_template_source(template, destination, facts: {package: {name: "example"}}) - - expect { RubyVM::InstructionSequence.compile(merged) }.not_to raise_error - expect(merged).not_to match(/\bgem\./) - expect(merged).to include('spec.summary = "Destination summary"') - expect(merged).to include('spec.authors = ["Someone"]') - expect(merged).to include('spec.add_dependency("foo", "~> 1.0")') - end - - it "preserves zero-byte template outputs" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - - Dir.mktmpdir("kettle-jem-zero-byte-template-slice", tmp_root) do |root| - write_tree(root, { - "example.gemspec" => <<~RUBY, - Gem::Specification.new do |spec| - spec.name = "example" - spec.summary = "Example" - spec.required_ruby_version = ">= 3.2" - end - RUBY - ".kettle-jem.yml" => <<~YAML, - templates: - root: template - apply: true - entries: - - REEK - YAML - "template/REEK" => "", - "REEK" => "" - }) - - apply = described_class.apply_project(root, env: {}) - reek_report = apply.fetch(:recipe_reports).find do |report| - report.fetch(:relative_path) == "REEK" - end - - expect(reek_report.fetch(:final_content)).to eq("") - expect(File.binread(File.join(root, "REEK"))).to eq("") - end - end - - it "sorts runtime gemspec dependencies with RuboCop-compatible gem name ordering" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - - Dir.mktmpdir("kettle-jem-gemspec-rubocop-order-slice", tmp_root) do |root| - write_tree(root, { - "example.gemspec" => <<~RUBY, - Gem::Specification.new do |gem| - gem.name = "example" - gem.summary = "Real summary" - gem.required_ruby_version = ">= 4.0" - gem.add_dependency("rspec", "~> 3.0") - gem.add_dependency("rspec-block_is_expected", "~> 1.0") - gem.add_dependency("rspec-pending_for", "~> 0.1") - gem.add_dependency("rspec-stubbed_env", "~> 1.0", ">= 1.0.5") - gem.add_dependency("rspec_junit_formatter", "~> 0.6") - gem.add_dependency("silent_stream", "~> 1.0") - end - RUBY - ".kettle-jem.yml" => <<~YAML, - templates: - root: template - apply: true - entries: - - example.gemspec - YAML - "template/example.gemspec.example" => <<~RUBY - Gem::Specification.new do |spec| - spec.name = "example" - spec.summary = "TODO: Write a short summary" - spec.required_ruby_version = ">= 4.0" - spec.add_dependency("rspec", "~> 3.0") - spec.add_dependency("rspec-block_is_expected", "~> 1.0") - spec.add_dependency("rspec-pending_for", "~> 0.1") - spec.add_dependency("rspec-stubbed_env", "~> 1.0") - spec.add_dependency("rspec_junit_formatter", "~> 0.6") - spec.add_dependency("silent_stream", "~> 1.0") - end - RUBY - }) - - apply = described_class.apply_project(root, env: {}) - gemspec_report = apply.fetch(:recipe_reports).find do |report| - report.fetch(:recipe_name) == "template_source_application_example_gemspec" - end - gemspec_content = gemspec_report.fetch(:final_content) - junit_index = gemspec_content.index(%(spec.add_dependency("rspec_junit_formatter", "~> 0.6"))) - pending_index = gemspec_content.index(%(spec.add_dependency("rspec-pending_for", "~> 0.1"))) - stubbed_index = gemspec_content.index(%(spec.add_dependency("rspec-stubbed_env", "~> 1.0", ">= 1.0.6"))) - - expect(junit_index).to be < pending_index - expect(pending_index).to be < stubbed_index - expect(gemspec_content).not_to include(%(rspec-stubbed_env", "~> 1.0", ">= 1.0.5")) - expect(File.read(File.join(root, "example.gemspec"))).to eq(gemspec_content) - end - end - - it "ports old gemspec emoji field replacement without duplicating the Gem::Specification block" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - contract_case = old_spec_contract.fetch(:cases).fetch(:gemspec_emoji_block_integrity) - package_name = contract_case.fetch(:package_name) - - Dir.mktmpdir("kettle-jem-old-gemspec-emoji-policy", tmp_root) do |root| - write_tree(root, { - "#{package_name}.gemspec" => <<~RUBY, - # coding: utf-8 - # frozen_string_literal: true - - Gem::Specification.new do |spec| - spec.name = "#{package_name}" - spec.version = "2.0.0" - spec.authors = ["Kettle Maintainer"] - spec.email = ["maintainer@example.com"] - spec.summary = "#{contract_case.fetch(:summary)}" - spec.description = "#{contract_case.fetch(:description)}" - spec.homepage = "https://github.com/structuredmerge/#{package_name}" - spec.licenses = ["MIT"] - spec.required_ruby_version = ">= 4.0" - spec.require_paths = ["lib"] - spec.bindir = "exe" - spec.executables = ["#{contract_case.fetch(:executable)}"] - spec.add_development_dependency("gitmoji-regex", "~> 2.0", ">= 2.0.4") - end - RUBY - ".kettle-jem.yml" => <<~YAML, - templates: - root: template - apply: true - entries: - - source: gem.gemspec - target: #{package_name}.gemspec - YAML - "template/gem.gemspec.example" => <<~RUBY - # coding: utf-8 - # frozen_string_literal: true - - Gem::Specification.new do |spec| - spec.name = "{KJ|GEM_NAME}" - spec.version = "1.0.0" - spec.authors = ["Template Author"] - spec.email = ["template@example.com"] - spec.summary = "🍲 " - spec.description = "🍲 " - spec.homepage = "https://github.com/structuredmerge/{KJ|GEM_NAME}" - spec.licenses = ["MIT"] - spec.required_ruby_version = ">= 2.3.0" - spec.require_paths = ["lib"] - spec.bindir = "exe" - spec.executables = [] - spec.add_development_dependency("{KJ|GEM_NAME}", "~> 1.0") - spec.add_development_dependency("rake", "~> 13.0") - end - RUBY - }) - - apply = described_class.apply_project(root, env: {}, run_options: {accept: true}) - report = apply.fetch(:recipe_reports).find { |candidate| candidate.fetch(:relative_path) == "#{package_name}.gemspec" } - gemspec_content = report.fetch(:final_content) - - expect { RubyVM::InstructionSequence.compile(gemspec_content) }.not_to raise_error - expect(gemspec_content.scan(/Gem::Specification\.new\s+do/).count).to eq(1) - expect(gemspec_content.scan(/^\s*spec\.name\s*=/).count).to eq(1) - expect(gemspec_content).not_to match(/^spec\./) - expect(gemspec_content).to include(contract_case.fetch(:summary)) - expect(gemspec_content).to include(contract_case.fetch(:description)) - expect(gemspec_content).to include(%(spec.executables = ["#{contract_case.fetch(:executable)}"])) - expect_gemspec_dependency_declared(gemspec_content, "gitmoji-regex", kind: :add_development_dependency) - expect(gemspec_content).not_to include("# Hence.") - expect(gemspec_content).not_to include("add_development_dependency(\"#{package_name}\"") - expect(File.read(File.join(root, "#{package_name}.gemspec"))).to eq(gemspec_content) - end - end - - it "preserves multiline heredoc gemspec assignments as whole fields" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - - Dir.mktmpdir("kettle-jem-gemspec-heredoc-policy", tmp_root) do |root| - write_tree(root, { - "example.gemspec" => <<~RUBY, - # frozen_string_literal: true - - Gem::Specification.new do |gem| - gem.name = "example" - gem.version = "1.0.0" - gem.summary = "Existing summary" - gem.description = <<-DESC - First line - Second line - DESC - gem.homepage = "https://github.com/acme/example" - gem.licenses = ["MIT"] - gem.required_ruby_version = ">= 2.3" - gem.add_development_dependency("test-unit", ">= 3") - end - RUBY - ".kettle-jem.yml" => <<~YAML, - project_emoji: "🧪" - templates: - root: template - apply: true - entries: - - source: gem.gemspec - target: example.gemspec - YAML - "template/gem.gemspec.example" => <<~RUBY - # frozen_string_literal: true - - Gem::Specification.new do |spec| - spec.name = "{KJ|GEM_NAME}" - spec.version = "0.0.0" - spec.summary = "Template summary" - spec.description = "Template description" - spec.homepage = "https://github.com/acme/{KJ|GEM_NAME}" - spec.licenses = ["MIT"] - spec.required_ruby_version = ">= 2.3" - spec.add_development_dependency("rake", "~> 13.0") - end - RUBY - }) - - apply = described_class.apply_project(root, env: {}, run_options: {accept: true}) - report = apply.fetch(:recipe_reports).find { |candidate| candidate.fetch(:relative_path) == "example.gemspec" } - gemspec_content = report.fetch(:final_content) - - expect { RubyVM::InstructionSequence.compile(gemspec_content) }.not_to raise_error - expect(gemspec_content).to include("spec.description = <<-DESC") - expect(gemspec_content).not_to include("spec.description = 🧪") - expect(gemspec_content).to include("First line") - expect(gemspec_content).to include("Second line") - expect(gemspec_content).to include(" DESC") - expect(gemspec_content).to include('spec.homepage = "https://github.com/acme/example"') - expect_gemspec_dependency_declared(gemspec_content, "test-unit", kind: :add_development_dependency) - expect(gemspec_content).not_to match(/^spec\./) - end - end - - it "ports old gemspec freeze block location preservation" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - contract_case = old_spec_contract.fetch(:cases).fetch(:freeze_block_location) - package_name = contract_case.fetch(:package_name) - - Dir.mktmpdir("kettle-jem-old-gemspec-freeze-block-policy", tmp_root) do |root| - write_tree(root, { - "#{package_name}.gemspec" => <<~RUBY, - # frozen_string_literal: true - - gem_version = "1.0.0" - - Gem::Specification.new do |spec| - spec.name = "#{package_name}" - spec.version = gem_version - spec.summary = "Freeze gem" - spec.bindir = "exe" - - #{contract_case.fetch(:open_marker)} - # Custom dependencies - # spec.add_dependency("#{contract_case.fetch(:custom_dependency)}") - #{contract_case.fetch(:close_marker)} - - spec.require_paths = ["lib"] - end - RUBY - ".kettle-jem.yml" => <<~YAML, - templates: - root: template - apply: true - entries: - - source: gem.gemspec - target: #{package_name}.gemspec - YAML - "template/gem.gemspec.example" => <<~RUBY - # frozen_string_literal: true - - Gem::Specification.new do |spec| - spec.name = "{KJ|GEM_NAME}" - spec.version = "2.0.0" - spec.summary = "Template summary" - spec.bindir = "exe" - spec.executables = [] - spec.require_paths = ["lib"] - end - RUBY - }) - - apply = described_class.apply_project(root, env: {}, run_options: {accept: true}) - report = apply.fetch(:recipe_reports).find { |candidate| candidate.fetch(:relative_path) == "#{package_name}.gemspec" } - gemspec_content = report.fetch(:final_content) - lines = gemspec_content.lines - gemspec_line = lines.find_index { |line| line.include?("Gem::Specification.new") } - freeze_line = lines.find_index { |line| line.include?(contract_case.fetch(:open_marker)) } - close_line = lines.find_index { |line| line.include?(contract_case.fetch(:close_marker)) } - block_end_line = lines.each_index.to_a.reverse.find { |index| lines[index].strip == "end" } - - expect { RubyVM::InstructionSequence.compile(gemspec_content) }.not_to raise_error - expect(freeze_line).to be > gemspec_line - expect(close_line).to be > freeze_line - expect(close_line).to be < block_end_line - expect(gemspec_content).to include(%(# spec.add_dependency("#{contract_case.fetch(:custom_dependency)}"))) - expect(gemspec_content).not_to include("To retain during kettle-jem templating") - expect(File.read(File.join(root, "#{package_name}.gemspec"))).to eq(gemspec_content) - end - end - - it "preserves gemspec freeze blocks with configured custom freeze tokens" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-custom-gemspec-freeze-block-policy", tmp_root) do |root| - write_tree(root, { - "example.gemspec" => <<~RUBY, - # frozen_string_literal: true - - Gem::Specification.new do |spec| - spec.name = "example" - spec.version = "1.0.0" - spec.summary = "Freeze gem" - - # custom-freeze:freeze - # Custom dependencies - # spec.add_dependency("custom_dep") - # custom-freeze:unfreeze - - spec.require_paths = ["lib"] - end - RUBY - ".kettle-jem.yml" => <<~YAML, - defaults: - freeze_token: custom-freeze - templates: - root: template - apply: true - entries: - - source: gem.gemspec - target: example.gemspec - YAML - "template/gem.gemspec.example" => <<~RUBY - # frozen_string_literal: true - - Gem::Specification.new do |spec| - spec.name = "{KJ|GEM_NAME}" - spec.version = "2.0.0" - spec.summary = "Template summary" - spec.require_paths = ["lib"] - end - RUBY - }) - - apply = described_class.apply_project(root, env: {}, run_options: {accept: true}) - report = apply.fetch(:recipe_reports).find { |candidate| candidate.fetch(:relative_path) == "example.gemspec" } - gemspec_content = report.fetch(:final_content) - - expect { RubyVM::InstructionSequence.compile(gemspec_content) }.not_to raise_error - expect(gemspec_content).to include("# custom-freeze:freeze") - expect(gemspec_content).to include('# spec.add_dependency("custom_dep")') - expect(gemspec_content).to include("# custom-freeze:unfreeze") - expect(gemspec_content).not_to include("# kettle-jem:freeze") - expect(File.read(File.join(root, "example.gemspec"))).to eq(gemspec_content) - end - end - - it "ports old gemspec self-dependency removal while preserving project fields" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - contract_case = old_spec_contract.fetch(:cases).fetch(:gemspec_self_dependency) - package_name = contract_case.fetch(:package_name) - - Dir.mktmpdir("kettle-jem-old-gemspec-policy", tmp_root) do |root| - write_tree(root, { - "#{package_name}.gemspec" => <<~RUBY, - Gem::Specification.new do |spec| - spec.name = "#{package_name}" - spec.summary = "Destination summary" - spec.description = "🧪 Destination description" - spec.homepage = "https://github.com/acme/#{package_name}" - spec.required_ruby_version = ">= 4.0" - end - RUBY - ".kettle-jem.yml" => <<~YAML, - project_emoji: "🧬" - templates: - root: template - apply: true - entries: - - source: gem.gemspec - target: #{package_name}.gemspec - YAML - "template/gem.gemspec.example" => <<~RUBY - Gem::Specification.new do |spec| - spec.name = "{KJ|GEM_NAME}" - spec.summary = "Template summary" - spec.description = "Template description" - spec.homepage = "https://template.example" - spec.required_ruby_version = ">= 3.2" - spec.add_dependency("{KJ|GEM_NAME}", "~> 1.0") - spec.add_dependency '{KJ|GEM_NAME}' - spec.add_development_dependency("{KJ|GEM_NAME}") - spec.add_development_dependency '{KJ|GEM_NAME}', ">= 0" - spec.add_dependency("#{contract_case.fetch(:preserved_dependency)}", ">= 2.8", "< 3") - end - RUBY - }) - - apply = described_class.apply_project(root, env: {}, run_options: {accept: true}) - report = apply.fetch(:recipe_reports).find do |candidate| - candidate.fetch(:relative_path) == "#{package_name}.gemspec" - end - gemspec_content = report.fetch(:final_content) - - expect(gemspec_content).to include(%(spec.name = "#{package_name}")) - expect(gemspec_content).to include('spec.summary = "🧬 Destination summary"') - expect(gemspec_content).to include('spec.description = "🧬 Destination description"') - expect(gemspec_content).to include(%(spec.homepage = "https://github.com/acme/#{package_name}")) - expect(gemspec_content).to include('spec.required_ruby_version = ">= 4.0"') - expect(gemspec_content).to include(%(spec.add_dependency("#{contract_case.fetch(:preserved_dependency)}", ">= 2.8", "< 3"))) - expect(gemspec_content).not_to match( - /add_(?:development_)?dependency\s*\(?\s*["']#{Regexp.escape(contract_case.fetch(:removed_dependency))}["']/ - ) - expect(report.dig(:report_envelope, :report, :step_reports, 0, :metadata, :ruby_template_policy, :operations)).to include( - include(operation: "delete_self_dependency_declarations", deleted_dependency_count: 4) - ) - end - end - - it "keeps multiline gemspec descriptions valid when adding the project emoji" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - package_name = "oauth2-mcp" - - Dir.mktmpdir("kettle-jem-gemspec-emoji", tmp_root) do |root| - write_tree(root, { - "#{package_name}.gemspec" => <<~RUBY, - Gem::Specification.new do |spec| - spec.name = "#{package_name}" - spec.summary = "OAuth 2.1 resource-server helpers for MCP servers." - spec.description = "oauth2-mcp provides Ruby helpers for securing HTTP Model Context Protocol servers " \\ - "with OAuth protected-resource metadata, bearer challenges, and scoped authorization." - spec.homepage = "https://github.com/ruby-oauth/oauth2-mcp" - spec.required_ruby_version = ">= 3.2" - end - RUBY - ".kettle-jem.yml" => <<~YAML, - project_emoji: "🔮" - templates: - root: template - apply: true - entries: - - source: gem.gemspec - target: #{package_name}.gemspec - YAML - "template/gem.gemspec.example" => <<~RUBY - Gem::Specification.new do |spec| - spec.name = "{KJ|GEM_NAME}" - spec.summary = "{KJ|PROJECT_EMOJI} " - spec.description = "{KJ|PROJECT_EMOJI} " - spec.homepage = "https://template.example" - spec.required_ruby_version = ">= 3.2" - end - RUBY - }) - - apply = described_class.apply_project(root, env: {}, run_options: {accept: true}) - report = apply.fetch(:recipe_reports).find do |candidate| - candidate.fetch(:relative_path) == "#{package_name}.gemspec" - end - gemspec_content = report.fetch(:final_content) - - expect { RubyVM::InstructionSequence.compile(gemspec_content) }.not_to raise_error - expect(gemspec_content).to include('spec.summary = "🔮 OAuth 2.1 resource-server helpers for MCP servers."') - expect(gemspec_content).to include('spec.description = "🔮 oauth2-mcp provides Ruby helpers') - expect(gemspec_content).not_to include("spec.description = 🔮") - end - end - - it "keeps squiggly heredoc gemspec descriptions valid when adding the project emoji" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - package_name = "sanitize_email" - - Dir.mktmpdir("kettle-jem-gemspec-emoji-squiggly-heredoc", tmp_root) do |root| - write_tree(root, { - "#{package_name}.gemspec" => <<~RUBY, - Gem::Specification.new do |spec| - spec.name = "#{package_name}" - spec.summary = "Email Condom for your Ruby Server" - spec.description = <<~DESCRIPTION.strip - Email Condom for your Ruby Server. - In Rails, Sinatra, et al. - DESCRIPTION - spec.homepage = "https://github.com/pboling/sanitize_email" - spec.required_ruby_version = ">= 2.3" - spec.add_dependency(<<~GEM.strip, <<~REQ.strip) - rake - GEM - ~> 13.0 - REQ - end - RUBY - ".kettle-jem.yml" => <<~YAML, - project_emoji: "📧" - templates: - root: template - apply: true - entries: - - source: gem.gemspec - target: #{package_name}.gemspec - YAML - "template/gem.gemspec.example" => <<~RUBY - Gem::Specification.new do |spec| - spec.name = "{KJ|GEM_NAME}" - spec.summary = "{KJ|PROJECT_EMOJI} " - spec.description = "{KJ|PROJECT_EMOJI} " - spec.homepage = "https://template.example" - spec.required_ruby_version = ">= 2.3" - end - RUBY - }) - - apply = described_class.apply_project(root, env: {}, run_options: {accept: true}) - report = apply.fetch(:recipe_reports).find do |candidate| - candidate.fetch(:relative_path) == "#{package_name}.gemspec" - end - gemspec_content = report.fetch(:final_content) - - expect { RubyVM::InstructionSequence.compile(gemspec_content) }.not_to raise_error - expect(gemspec_content).to include("spec.description = <<~DESCRIPTION.strip") - expect(gemspec_content).to include("Email Condom for your Ruby Server.") - expect(gemspec_content).to include("DESCRIPTION") - expect(gemspec_content).to include("spec.add_dependency(<<~GEM.strip, <<~REQ.strip)") - expect(gemspec_content).to include("rake") - expect(gemspec_content).to include("REQ") - expect(gemspec_content).not_to include("spec.description = 📧") - end - end - - it "renders deterministic appraisal helper outputs" do - matrix_entries = [ - { - name: described_class.appraisal_name( - tier1_gem: "activerecord", - tier1_version: "7.1", - tier2_gem: "omniauth", - tier2_version: "2.1", - ruby_series: "r3" - ), - ruby_series: "r3", - tier1_gemfile: "gemfiles/modular/activerecord/r3/v7.1.gemfile", - tier2_gemfile: "gemfiles/modular/omniauth/r3/v2.1.gemfile", - x_std_libs_gemfile: "gemfiles/modular/x_std_libs/r3/libs.gemfile" - }, - { - name: described_class.appraisal_name( - tier1_gem: "mail", - tier1_version: "2.8", - ruby_series: "r2" - ), - ruby_series: "r2", - tier1_gemfile: "gemfiles/modular/mail/r2/v2.8.gemfile", - x_std_libs_gemfile: "gemfiles/modular/x_std_libs/r2/libs.gemfile" - } - ] - bucket_ranges = { - "r2" => {floor: "2.7", ceiling: "2.99"}, - "r3" => {floor: "3.2", ceiling: "3.99"} - } - - expect(described_class.appraisal_gem_abbreviation("activerecord")).to eq("ar") - expect(described_class.appraisal_gem_abbreviation("unknown")).to eq("unknown") - expect(described_class.appraisal_format_version("7.1.5")).to eq("7-1-5") - expect(matrix_entries.map { |entry| entry.fetch(:name) }).to eq(["kja-ar-7-1-oa-2-1-r3", "kja-mail-2-8-r2"]) - expect(described_class.appraisal_modular_gemfile_path(gem_name: "activerecord", version: "7.1", ruby_series: "r3")).to eq( - "gemfiles/modular/activerecord/r3/v7.1.gemfile" - ) - expect(described_class.appraisal_modular_gemfile_content( - gem_name: "activerecord", - version: "7.1", - sub_dependencies: {"sqlite3" => "1.6.9"} - )).to eq(<<~RUBY) - # frozen_string_literal: true - - # Generated by kettle-jem - - gem "activerecord", "~> 7.1.0" - gem "sqlite3", "~> 1.6.9" - RUBY - - appraisals = described_class.appraisal_file_content(matrix_entries) - expect(appraisals).to include('appraise "kja-ar-7-1-oa-2-1-r3" do') - expect(appraisals).to include('eval_gemfile "modular/activerecord/r3/v7.1.gemfile"') - expect(appraisals).not_to include('eval_gemfile "gemfiles/') - expect(appraisals).to include('appraise "kja-mail-2-8-r2" do') - expect(appraisals).not_to end_with("\n\n") - - groups = described_class.appraisal_workflow_groups(matrix_entries, bucket_ranges: bucket_ranges) - expect(groups).to eq( - "supported" => [ - { - ruby: "3.2", - appraisal: "kja-ar-7-1-oa-2-1-r3", - exec_cmd: "kettle-test", - rubygems: "latest", - bundler: "latest" - } - ], - "unsupported" => [ - { - ruby: "2.7", - appraisal: "kja-mail-2-8-r2", - exec_cmd: "kettle-test", - rubygems: "latest", - bundler: "latest" - } - ] - ) - expect(described_class.appraisal_workflow_yaml_snippets(matrix_entries, bucket_ranges: bucket_ranges).fetch("supported")).to include( - 'appraisal: "kja-ar-7-1-oa-2-1-r3"' - ) - expect(described_class.appraisal_x_stdlib_exclusions(<<~RUBY)).to eq(["erb", "mutex_m", "version_gem"]) - eval_gemfile "../erb/vHEAD.gemfile" - eval_gemfile "../mutex_m/vHEAD.gemfile" - RUBY - end - - it "plans deterministic appraisal matrices from supplied version metadata" do - versions = %w[5.0.0 5.1.0 5.2.0 6.0.0 6.1.0 7.0.0 7.1.0 7.2.0].map do |number| - {number: number} - end - - expect(described_class.appraisal_select_versions(versions, mode: "major")).to eq(["5.2", "6.1", "7.2"]) - expect(described_class.appraisal_select_versions(versions, mode: "minor")).to eq( - ["5.0", "5.1", "5.2", "6.0", "6.1", "7.0", "7.1", "7.2"] - ) - expect(described_class.appraisal_select_versions(versions, mode: "patch")).to eq( - ["5.0.0", "5.1.0", "5.2.0", "6.0.0", "6.1.0", "7.0.0", "7.1.0", "7.2.0"] - ) - expect(described_class.appraisal_select_versions(versions, mode: "minor-minmax")).to eq( - ["5.0", "5.2", "6.0", "6.1", "7.0", "7.1", "7.2"] - ) - expect(described_class.appraisal_select_versions(versions, mode: "semver")).to eq(["5.2", "6.1", "7.0", "7.1", "7.2"]) - expect(described_class.appraisal_select_versions(versions, mode: "minor", requirements: [">= 6.0", "< 7.0"])).to eq(["6.0", "6.1"]) - - entries = described_class.appraisal_matrix_entries( - tier1_gems: [ - { - name: "activerecord", - assignments: [ - {version: "6.1", bucket: "r2"}, - {version: "7.2", bucket: "r3"} - ] - } - ], - tier2_gems: [ - {name: "omniauth", versions: ["2.1"]} - ] - ) - - expect(entries).to eq( - [ - { - name: "kja-ar-6-1-oa-2-1-r2", - tier1_gemfile: "gemfiles/modular/activerecord/r2/v6.1.gemfile", - tier2_gemfile: "gemfiles/modular/omniauth/r2/v2.1.gemfile", - x_std_libs_gemfile: "gemfiles/modular/x_std_libs/r2/libs.gemfile", - ruby_series: "r2" - }, - { - name: "kja-ar-7-2-oa-2-1-r3", - tier1_gemfile: "gemfiles/modular/activerecord/r3/v7.2.gemfile", - tier2_gemfile: "gemfiles/modular/omniauth/r3/v2.1.gemfile", - x_std_libs_gemfile: "gemfiles/modular/x_std_libs/r3/libs.gemfile", - ruby_series: "r3" - } - ] - ) - end - - it "detects appraisal Ruby seams and assigns selected versions to buckets" do - versions = [ - {number: "5.2.8", min_ruby: "2.3"}, - {number: "6.0.6", min_ruby: "2.5"}, - {number: "6.1.7", min_ruby: "2.5"}, - {number: "7.0.8", min_ruby: "2.7"}, - {number: "7.1.5", min_ruby: "2.7"}, - {number: "7.2.2", min_ruby: "3.1"} - ] - - seams = described_class.appraisal_find_ruby_seams(versions) - expect(seams).to eq( - [ - {version: "5.2", min_ruby: Gem::Version.new("2.4")}, - {version: "6.0", min_ruby: Gem::Version.new("2.5")}, - {version: "7.0", min_ruby: Gem::Version.new("2.7")}, - {version: "7.2", min_ruby: Gem::Version.new("3.1")} - ] - ) - - series = described_class.appraisal_ruby_series(versions) - expect(series.fetch(:buckets)).to eq(["r2.4", "r2.6", "r2", "r3"]) - - assignments = described_class.appraisal_assign_version_buckets( - selected_versions: ["5.2", "6.1", "7.2"], - seams: seams, - buckets: series.fetch(:buckets), - bucket_ranges: series.fetch(:bucket_ranges), - all_versions: ["5.2", "6.0", "6.1", "7.0", "7.1", "7.2"] - ) - expect(assignments).to eq( - [ - {version: "5.2", bucket: "r2.4"}, - {version: "6.1", bucket: "r2.6"}, - {version: "7.1", bucket: "r2", filler: true}, - {version: "7.2", bucket: "r3"} - ] - ) - end - - it "resolves appraisal sub-dependencies from supplied metadata" do - resolved = described_class.appraisal_resolve_sub_dependencies( - parent_gem: "activerecord", - parent_version: "7.1", - ruby_min: "3.0", - excluded_gems: ["erb", "version_gem"], - parent_versions: [ - { - number: "7.1.3", - runtime_dependencies: [ - {name: "sqlite3", requirements: "~> 1.6"}, - {name: "erb", requirements: ">= 0"} - ] - } - ], - dependency_versions: { - "sqlite3" => [ - {number: "1.6.8", min_ruby: "2.7"}, - {number: "1.6.9", min_ruby: "3.0"}, - {number: "1.7.0", min_ruby: "3.2"} - ] - } - ) - - expect(resolved).to eq("sqlite3" => "1.6.9") - end - - it "resolves RubyGems version metadata through a cacheable Kettle/Jem resolver" do - response = Struct.new(:code, :body) - calls = [] - http_get = lambda do |uri| - calls << uri.to_s - case uri.to_s - when "https://example.test/api/v1/versions/active+record.json" - response.new("200", JSON.dump([ - {"number" => "7.1.0.beta1", "ruby_version" => ">= 3.0", "prerelease" => true, "created_at" => "2024-01-01"}, - {"number" => "6.1.7", "ruby_version" => ">= 2.5", "prerelease" => false, "created_at" => "2023-01-01"}, - {"number" => "7.1.3", "ruby_version" => ">= 2.7", "prerelease" => false, "created_at" => "2024-02-01"} - ])) - when "https://example.test/api/v2/rubygems/active+record/versions/7.1.3.json" - response.new("200", JSON.dump({ - "number" => "7.1.3", - "ruby_version" => ">= 2.7", - "dependencies" => { - "runtime" => [ - {"name" => "sqlite3", "requirements" => "~> 1.6"} - ] - } - })) - else - response.new("404", "{}") - end - end - - resolver = described_class::RubyGemsResolver.new( - http_get: http_get, - v1_api_base: "https://example.test/api/v1", - v2_api_base: "https://example.test/api/v2/rubygems" - ) - - expect(resolver.versions("active record", requirements: ">= 7.0")).to eq( - [ - {number: "7.1.3", ruby_version: ">= 2.7", created_at: "2024-02-01", prerelease: false} - ] - ) - expect(resolver.versions("active record", include_prerelease: true).map { |entry| entry.fetch(:number) }).to eq( - ["6.1.7", "7.1.0.beta1", "7.1.3"] - ) - expect(resolver.min_ruby_version("active record", "7.1.3")).to eq(Gem::Version.new("2.7")) - expect(resolver.minor_versions_by_major("active record")).to eq( - [ - {major: 6, minors: ["6.1"]}, - {major: 7, minors: ["7.1"]} - ] - ) - expect(resolver.version_info("active record", "7.1.3")).to eq( - { - number: "7.1.3", - ruby_version: ">= 2.7", - runtime_dependencies: [ - {name: "sqlite3", requirements: "~> 1.6"} - ] - } - ) - expect(resolver.version_info("active record", "7.1.3")).to be_a(Hash) - expect(calls.tally).to eq( - "https://example.test/api/v1/versions/active+record.json" => 1, - "https://example.test/api/v2/rubygems/active+record/versions/7.1.3.json" => 1 - ) - end - - it "loads gemspec metadata through Kettle/Jem GemSpecReader" do - Dir.mktmpdir do |project_root| - write_tree( - project_root, - { - "demo_tool.gemspec" => <<~RUBY, - Gem::Specification.new do |spec| - spec.name = "demo_tool" - spec.version = "0.1.0" - spec.authors = ["Demo Author"] - spec.email = ["demo@example.com"] - spec.summary = "Demo" - spec.homepage = "https://github.com/example/demo_tool" - spec.required_ruby_version = ">= 3.2" - spec.add_dependency "runtime_dep", ">= 1" - spec.add_development_dependency "dev_dep", ">= 1" - end - RUBY - "lib/demo_tool/version.rb" => "module DemoTool; VERSION = '0.1.0'; end\n" - } - ) - - described_class::GemSpecReader.clear_cache! - - metadata = described_class::GemSpecReader.load(project_root) - - expect(metadata).to include( - gem_name: "demo_tool", - version: "0.1.0", - min_ruby: Gem::Version.new("3.2"), - homepage: "https://github.com/example/demo_tool", - gh_org: "example", - gh_repo: "demo_tool", - namespace: "DemoTool", - entrypoint_require: "demo_tool" - ) - expect(metadata.fetch(:runtime_dependencies).map(&:name)).to eq(["runtime_dep"]) - expect(metadata.fetch(:development_dependencies).map(&:name)).to eq(["dev_dep"]) - end - ensure - described_class::GemSpecReader.clear_cache! - end - - it "ports appraisal CLI config orchestration helpers into Kettle/Jem" do - gemspec_content = <<~RUBY - Gem::Specification.new do |spec| - spec.add_dependency "activerecord", "~> 7.1" - spec.add_runtime_dependency("erb", ">= 0") - # spec.add_dependency "ignored" - spec.add_runtime_dependency "sequel", ">= 5.0" - spec.add_development_dependency "dev_only", ">= 0" - end - RUBY - - scaffold = described_class.appraisal_scaffold_config( - gemspec_content: gemspec_content, - existing_config: { - appraisal_matrix: { - gems: { - tier2: [ - {name: "omniauth"} - ] - } - } - }, - exclusions: ["erb"], - freshness_ttl: 86_400 - ) - - expect(scaffold.fetch("appraisal_matrix")).to include( - "mode" => "semver", - "freshness_ttl" => 86_400 - ) - expect(scaffold.dig("appraisal_matrix", "gems", "tier1")).to eq( - [ - {"name" => "activerecord"}, - {"name" => "sequel"} - ] - ) - expect(scaffold.dig("appraisal_matrix", "gems", "tier2")).to eq([{"name" => "omniauth"}]) - - expect(described_class.appraisal_matrix_has_versions?( - "gems" => { - "tier1" => [{"name" => "activerecord", "versions" => []}], - "tier2" => [{"name" => "omniauth", "versions" => ["2.1"]}] - } - )).to be true - expect(described_class.appraisal_matrix_fresh?({"resolved_at" => 100, "freshness_ttl" => 50}, now: 149)).to be true - expect(described_class.appraisal_matrix_fresh?({"resolved_at" => 100, "freshness_ttl" => 50}, now: 150)).to be false - expect(described_class.appraisal_time_ago(0, now: 90_000)).to eq("1d") - expect(described_class.appraisal_finalize_versions(%w[7.1.0 7.1.1], include_versions: ["6.0.9"], exclude_versions: ["7.1.0"])).to eq( - %w[6.0.9 7.1.1] - ) - - resolver = Class.new do - def versions(gem_name, requirements: nil) - case [gem_name, requirements] - when ["activerecord", [">= 7.1", "< 7.2"]] - [{number: "7.1.0"}, {number: "7.1.1"}] - when ["omniauth", nil] - [{number: "2.0.0"}, {number: "2.1.3"}] - else - [] - end - end - - def minor_versions_by_major(gem_name, requirements: nil) - case [gem_name, requirements] - when ["sequel", nil] - [{major: 5, minors: ["5.0", "5.9"]}] - else - [] - end - end - - def min_ruby_version(gem_name, version) - return Gem::Version.new("3.2") if gem_name == "omniauth" && version == "2.1.3" - - Gem::Version.new("2.7") - end - end.new - - expect(described_class.appraisal_all_versions_for( - resolver: resolver, - gem_name: "activerecord", - mode: "patch", - requirements: [">= 7.1", "< 7.2"], - include_versions: ["6.0.9"], - exclude_versions: ["7.1.0"] - )).to eq(%w[6.0.9 7.1.1]) - expect(described_class.appraisal_all_versions_for(resolver: resolver, gem_name: "sequel", mode: "major")).to eq(%w[5.0 5.9]) - expect(described_class.appraisal_compatible_version_for_bucket?( - resolver: resolver, - gem_name: "omniauth", - version: "2.1", - ruby_series: "r3.1", - bucket_ranges: {"r3.1" => {floor: "3.0", ceiling: "3.1"}} - )).to be false - end - - it "plans stale flat appraisal gemfile cleanup paths" do - stale_paths = described_class.appraisal_stale_gemfile_paths( - existing_paths: [ - "gemfiles/kja-ar-7-1-r3.gemfile", - "gemfiles/kja-ar-6-1-r2.gemfile", - "gemfiles/manual.gemfile", - "gemfiles/modular/activerecord/r3/v7.1.gemfile" - ], - current_entries: [ - {name: "kja-ar-7-1-r3"} - ] - ) - - expect(stale_paths).to eq(["gemfiles/kja-ar-6-1-r2.gemfile"]) - end - - it "honors author template token config and environment overrides" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-author-token-override-slice", tmp_root) do |root| - write_tree(root, { - "example.gemspec" => <<~RUBY, - Gem::Specification.new do |spec| - spec.name = "example" - spec.summary = "Example gem" - spec.authors = ["Jane Q Public"] - spec.email = ["jane@example.test"] - end - RUBY - ".kettle-jem.yml" => <<~YAML, - tokens: - author: - name: Config Person - given_names: Config - family_names: Person - email: config@example.test - domain: config.example.test - orcid: "{KJ|AUTHOR:ORCID}" - templates: - root: template - apply: true - entries: - - README.md - YAML - "template/README.md.example" => <<~MARKDOWN - Author: {KJ|AUTHOR:NAME} - Given: {KJ|AUTHOR:GIVEN_NAMES} - Family: {KJ|AUTHOR:FAMILY_NAMES} - Email: {KJ|AUTHOR:EMAIL} - Domain: {KJ|AUTHOR:DOMAIN} - ORCID: {KJ|AUTHOR:ORCID} - MARKDOWN - }) - - plan = described_class.plan_project( - root, - env: { - "KJ_AUTHOR_NAME" => "Env A Writer", - "KJ_AUTHOR_EMAIL" => "env@example.test", - "KJ_AUTHOR_DOMAIN" => "env.example.test", - "KJ_AUTHOR_ORCID" => "0000-0002-1825-0097" - } - ) - template_report = plan[:recipe_reports].find do |report| - report.fetch(:recipe_name) == "template_source_application_README_md" - end - expect(template_report.fetch(:final_content)).to eq(<<~MARKDOWN) - Author: Env A Writer - Given: Config - Family: Person - Email: env@example.test - Domain: env.example.test - ORCID: 0000-0002-1825-0097 - MARKDOWN - expect(template_report.dig(:metadata, :template_tokens)).to include( - "KJ|AUTHOR:DOMAIN" => "env.example.test", - "KJ|AUTHOR:EMAIL" => "env@example.test", - "KJ|AUTHOR:FAMILY_NAMES" => "Person", - "KJ|AUTHOR:GIVEN_NAMES" => "Config", - "KJ|AUTHOR:NAME" => "Env A Writer", - "KJ|AUTHOR:ORCID" => "0000-0002-1825-0097" - ) - end - end - - it "applies author email environment overrides to gemspec and destination config" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-author-email-env-sync-slice", tmp_root) do |root| - write_tree(root, { - "example.gemspec" => <<~RUBY, - Gem::Specification.new do |spec| - spec.name = "example" - spec.summary = "Example gem" - spec.authors = ["Jane Q Public"] - spec.email = ["old@example.test"] - end - RUBY - ".structuredmerge/kettle-jem.yml" => <<~YAML, - tokens: - author: - name: Jane Q Public - email: old@example.test - templates: - root: template - apply: true - entries: - - .structuredmerge/kettle-jem.yml - - source: gem.gemspec - target: example.gemspec - YAML - "template/.structuredmerge/kettle-jem.yml.example" => <<~YAML, - tokens: - author: - name: Jane Q Public - email: old@example.test - templates: - root: template - apply: true - entries: - - .structuredmerge/kettle-jem.yml - - source: gem.gemspec - target: example.gemspec - YAML - "template/gem.gemspec.example" => <<~RUBY - Gem::Specification.new do |spec| - spec.name = "{KJ|GEM_NAME}" - spec.summary = "Example gem" - spec.authors = ["{KJ|AUTHOR:NAME}"] - spec.email = ["{KJ|AUTHOR:EMAIL}"] - end - RUBY - }) - - apply = described_class.apply_project( - root, - env: {"KJ_AUTHOR_EMAIL" => "env@example.test"}, - run_options: {accept: true} - ) - gemspec_report = apply.fetch(:recipe_reports).find { |report| report.fetch(:relative_path) == "example.gemspec" } - config_report = apply.fetch(:recipe_reports).find { |report| report.fetch(:relative_path) == ".structuredmerge/kettle-jem.yml" } - - expect(gemspec_report.fetch(:final_content)).to include('spec.email = ["env@example.test"]') - expect(YAML.safe_load(config_report.fetch(:final_content)).dig("tokens", "author", "email")).to eq("env@example.test") - expect(File.read(File.join(root, "example.gemspec"))).to include('spec.email = ["env@example.test"]') - expect(YAML.safe_load_file(File.join(root, ".structuredmerge/kettle-jem.yml")).dig("tokens", "author", "email")).to eq("env@example.test") - end - end - - it "preserves existing multi-author gemspec metadata in packaged gemspec templates" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-gemspec-multi-authors-slice", tmp_root) do |root| - write_tree(root, { - "example.gemspec" => <<~RUBY, - Gem::Specification.new do |spec| - spec.name = "example" - spec.summary = "Example gem" - spec.description = "Example gem" - spec.authors = ["First Author", "Second Author"] - spec.email = ["authors@example.test"] - spec.metadata["source_code_uri"] = "https://github.com/acme/example" - end - RUBY - ".kettle-jem.yml" => <<~YAML - templates: - root: packaged - apply: true - entries: - - source: gem.gemspec - target: example.gemspec - YAML - }) - - apply = described_class.apply_project(root, env: {}, run_options: {accept: true}) - gemspec_report = apply.fetch(:recipe_reports).find { |report| report.fetch(:relative_path) == "example.gemspec" } - - expect(gemspec_report.fetch(:final_content)).to include('spec.authors = ["First Author", "Second Author"]') - expect(gemspec_report.dig(:metadata, :template_tokens)).to include( - "KJ|AUTHOR:NAME" => "First Author", - "KJ|AUTHOR:NAMES" => '["First Author", "Second Author"]' - ) - expect(File.read(File.join(root, "example.gemspec"))).to include('spec.authors = ["First Author", "Second Author"]') - end - end - - it "derives author names from copyright holders when gemspec authors are absent" do - author = described_class.send( - :author_facts, - {}, - {}, - copyright: { - lines: [ - "Copyright (c) 2020 Ada Lovelace", - "Copyright (c) 2021, 2023-2024 Grace Hopper" - ] - } - ) - - expect(described_class.send(:author_template_tokens, author)).to include( - "KJ|AUTHOR:NAMES" => '["Ada Lovelace", "Grace Hopper"]' - ) - end - - it "honors forge user template token config and environment overrides" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-forge-token-slice", tmp_root) do |root| - write_tree(root, { - "example.gemspec" => <<~RUBY, - Gem::Specification.new do |spec| - spec.name = "example" - spec.summary = "Example gem" - end - RUBY - ".kettle-jem.yml" => <<~YAML, - tokens: - forge: - gh_user: config-gh - gl_user: config-gl - cb_user: "{KJ|CB:USER}" - sh_user: config-sh - templates: - root: template - apply: true - entries: - - README.md - YAML - "template/README.md.example" => <<~MARKDOWN - GitHub: {KJ|GH:USER} - GitLab: {KJ|GL:USER} - Codeberg: {KJ|CB:USER} - SourceHut: {KJ|SH:USER} - MARKDOWN - }) - - plan = described_class.plan_project( - root, - env: { - "KJ_GH_USER" => "env-gh", - "KJ_CB_USER" => "env-cb" - } - ) - template_report = plan[:recipe_reports].find do |report| - report.fetch(:recipe_name) == "template_source_application_README_md" - end - expect(template_report.fetch(:final_content)).to eq(<<~MARKDOWN) - GitHub: env-gh - GitLab: config-gl - Codeberg: env-cb - SourceHut: config-sh - MARKDOWN - expect(template_report.dig(:metadata, :template_tokens)).to include( - "KJ|CB:USER" => "env-cb", - "KJ|GH:USER" => "env-gh", - "KJ|GL:USER" => "config-gl", - "KJ|SH:USER" => "config-sh" - ) - end - end - - it "honors supported funding platform template token config and environment overrides" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-funding-token-slice", tmp_root) do |root| - write_tree(root, { - "example.gemspec" => <<~RUBY, - Gem::Specification.new do |spec| - spec.name = "example" - spec.summary = "Example gem" - end - RUBY - ".kettle-jem.yml" => <<~YAML, - tokens: - funding: - kofi: config-kofi - paypal: "{KJ|FUNDING:PAYPAL}" - buymeacoffee: config-bmac - liberapay: config-liberapay - templates: - root: template - apply: true - entries: - - README.md - YAML - "template/README.md.example" => <<~MARKDOWN - Ko-fi: {KJ|FUNDING:KOFI} - PayPal: {KJ|FUNDING:PAYPAL} - BuyMeACoffee: {KJ|FUNDING:BUYMEACOFFEE} - Liberapay: {KJ|FUNDING:LIBERAPAY} - MARKDOWN - }) - - plan = described_class.plan_project( - root, - env: { - "KJ_FUNDING_PAYPAL" => "env-paypal" - } - ) - template_report = plan[:recipe_reports].find do |report| - report.fetch(:recipe_name) == "template_source_application_README_md" - end - expect(template_report.fetch(:final_content)).to eq(<<~MARKDOWN) - Ko-fi: config-kofi - PayPal: env-paypal - BuyMeACoffee: config-bmac - Liberapay: config-liberapay - MARKDOWN - expect(template_report.dig(:metadata, :template_tokens)).to include( - "KJ|FUNDING:BUYMEACOFFEE" => "config-bmac", - "KJ|FUNDING:KOFI" => "config-kofi", - "KJ|FUNDING:LIBERAPAY" => "config-liberapay", - "KJ|FUNDING:PAYPAL" => "env-paypal" - ) - end - end - - it "normalizes SECURITY.md supported version token from the gem version" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - - { - "0.2.0" => "0.latest", - "2.5.7" => "2.5.latest" - }.each do |gem_version, supported_version| - Dir.mktmpdir("kettle-jem-security-version-token-slice", tmp_root) do |root| - write_tree(root, { - "example.gemspec" => <<~RUBY, - Gem::Specification.new do |spec| - spec.name = "example" - spec.summary = "Example gem" - spec.version = "#{gem_version}" - end - RUBY - ".kettle-jem.yml" => <<~YAML, - templates: - root: template - apply: true - entries: - - SECURITY.md - YAML - "template/SECURITY.md.example" => <<~MARKDOWN - | Version | Supported | - |----------|-----------| - | {KJ|SECURITY:SUPPORTED_VERSION} | ✅ | - MARKDOWN - }) - - plan = described_class.plan_project(root, env: {}) - template_report = plan[:recipe_reports].find do |report| - report.fetch(:recipe_name).start_with?("template_source_") && - report.fetch(:recipe_name).end_with?("_SECURITY_md") - end - expect(template_report.fetch(:final_content)).to include("| #{supported_version} | ✅") - expect(template_report.dig(:metadata, :template_tokens)).to include( - "KJ|SECURITY:SUPPORTED_VERSION" => supported_version - ) - end - end - end - - it "honors social template token config and environment overrides" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-social-token-slice", tmp_root) do |root| - write_tree(root, { - "example.gemspec" => <<~RUBY, - Gem::Specification.new do |spec| - spec.name = "example" - spec.summary = "Example gem" - end - RUBY - ".kettle-jem.yml" => <<~YAML, - tokens: - social: - mastodon: config-mastodon - bluesky: config-bluesky - linktree: "{KJ|SOCIAL:LINKTREE}" - devto: config-devto - templates: - root: template - apply: true - entries: - - README.md - YAML - "template/README.md.example" => <<~MARKDOWN - Mastodon: {KJ|SOCIAL:MASTODON} - Bluesky: {KJ|SOCIAL:BLUESKY} - Linktree: {KJ|SOCIAL:LINKTREE} - Dev.to: {KJ|SOCIAL:DEVTO} - MARKDOWN - }) - - plan = described_class.plan_project( - root, - env: { - "KJ_SOCIAL_MASTODON" => "env-mastodon", - "KJ_SOCIAL_LINKTREE" => "env-linktree" - } - ) - template_report = plan[:recipe_reports].find do |report| - report.fetch(:recipe_name) == "template_source_application_README_md" - end - expect(template_report.fetch(:final_content)).to eq(<<~MARKDOWN) - Mastodon: env-mastodon - Bluesky: config-bluesky - Linktree: env-linktree - Dev.to: config-devto - MARKDOWN - expect(template_report.dig(:metadata, :template_tokens)).to include( - "KJ|SOCIAL:BLUESKY" => "config-bluesky", - "KJ|SOCIAL:DEVTO" => "config-devto", - "KJ|SOCIAL:LINKTREE" => "env-linktree", - "KJ|SOCIAL:MASTODON" => "env-mastodon" - ) - end - end - - it "projects license template tokens from configured licenses" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-license-token-slice", tmp_root) do |root| - write_tree(root, { - "example.gemspec" => <<~RUBY, - Gem::Specification.new do |spec| - spec.name = "example" - spec.summary = "Example gem" - spec.authors = ["Jane Q Public"] - spec.email = ["jane@example.test"] - spec.licenses = ["MIT"] - end - RUBY - ".kettle-jem.yml" => <<~YAML - licenses: - - AGPL-3.0-only - - PolyForm-Small-Business-1.0.0 - - LicenseRef-Big-Time-Public-License - readme: - package_family: structuredmerge - templates: - root: packaged - apply: true - entries: - - LICENSE.md - YAML - }) - - plan = described_class.plan_project(root, env: {}) - template_report = plan[:recipe_reports].find do |report| - report.fetch(:recipe_name) == "template_source_application_LICENSE_md" - end - final_content = template_report.fetch(:final_content) - expect(plan.dig(:facts, :license, :spdx)).to eq( - ["AGPL-3.0-only", "PolyForm-Small-Business-1.0.0", "LicenseRef-Big-Time-Public-License"] - ) - expect(plan.dig(:facts, :package, :license_expression)).to eq( - "AGPL-3.0-only OR PolyForm-Small-Business-1.0.0 OR LicenseRef-Big-Time-Public-License" - ) - expect(final_content).to include("[AGPL-3.0-only](AGPL-3.0-only.md)") - expect(final_content).to include("[PolyForm-Small-Business-1.0.0](PolyForm-Small-Business-1.0.0.md)") - expect(final_content).to include("[Big-Time-Public-License](Big-Time-Public-License.md)") - expect(final_content).to include("## Use-case guide") - expect(final_content).to include("- Required Notice: Copyright") - expect(final_content).to include("Jane Q Public") - expect(template_report.dig(:metadata, :template_tokens)).to include( - "KJ|COPYRIGHT_PREFIX" => "Required Notice: ", - "KJ|LICENSE:PRIMARY_SPDX" => "AGPL-3.0-only", - "KJ|LICENSE_EYE:PRIMARY_SPDX" => "AGPL-3.0-only", - "KJ|LICENSE_EYE:MODE" => "resolve", - "KJ|LICENSE_EYE:FLAGS" => "" - ) - expect(template_report.dig(:metadata, :template_tokens, "KJ|LICENSE_MD_CONTENT")).to include( - "This project is made available under the following licenses." - ) - expect(template_report.dig(:metadata, :template_tokens, "KJ|README:LICENSE_BADGE")).to eq( - "[![License: AGPL-3.0-only OR PolyForm-Small-Business-1.0.0 OR LicenseRef-Big-Time-Public-License][📄license-img]][📄license]" - ) - expect(template_report.dig(:metadata, :template_tokens, "KJ|README:LICENSE_REFS")).to include( - "[📄license-ref]: LICENSE.md" - ) - expect(template_report.dig(:metadata, :template_tokens, "KJ|README:LICENSE_REFS")).to include( - "License-AGPL--3.0--only_OR_PolyForm--Small--Business--1.0.0_OR_LicenseRef--Big--Time--Public--License" - ) - expect(template_report.dig(:metadata, :template_tokens, "KJ|README:FAMILY_INTRO_BACKEND_MATRIX")).to include( - "https://github.com/structuredmerge/structuredmerge-ruby#package-family" - ) - expect(template_report.dig(:metadata, :template_tokens, "KJ|README:FAMILY_INTRO_BACKEND_MATRIX")).to include( - "StructuredMerge Ruby package family" - ) - expect(template_report.dig(:metadata, :template_tokens, "KJ|README:FAMILY_INTRO_BACKEND_MATRIX")).to include( - "Merge analysis must enter parsing through `tree_haver`" - ) - end - end - - it "uses MIT as the License-Eye compatibility license when MIT is configured" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-license-eye-token-slice", tmp_root) do |root| - write_tree(root, { - "example.gemspec" => <<~RUBY, - Gem::Specification.new do |spec| - spec.name = "example" - spec.summary = "Example gem" - spec.authors = ["Jane Q Public"] - spec.email = ["jane@example.test"] - spec.licenses = ["AGPL-3.0-only"] - end - RUBY - ".kettle-jem.yml" => <<~YAML - licenses: - - AGPL-3.0-only - - MIT - license_eye: - dependency_licenses: - - name: simplecov-rcov - version: 0.3.7 - license: MIT - templates: - root: packaged - apply: true - entries: - - .licenserc.yaml - - .github/workflows/license-eye.yml - YAML - }) - - plan = described_class.plan_project(root, env: {}) - licenserc_report = plan[:recipe_reports].find do |report| - report.fetch(:relative_path) == ".licenserc.yaml" - end - workflow_report = plan[:recipe_reports].find do |report| - report.fetch(:relative_path) == ".github/workflows/license-eye.yml" - end - - expect(licenserc_report.fetch(:final_content)).to include('spdx-id: "MIT"') - expect(licenserc_report.fetch(:final_content)).to include(" licenses:\n - name: \"simplecov-rcov\"\n version: \"0.3.7\"\n license: \"MIT\"") - expect(workflow_report.fetch(:final_content)).to include('mode: "check"') - expect(workflow_report.fetch(:final_content)).to include('flags: "--weak-compatible"') - end - end - - it "formats README metadata SPDX license identifiers as code spans" do - block = described_class.readme_metadata_block( - package: { - name: "example", - description: "Example gem", - homepage_url: "https://example.test", - source_url: "https://example.test/source", - license_expression: "AGPL-3.0-only OR PolyForm-Small-Business-1.0.0" - }, - license: { - spdx: ["AGPL-3.0-only", "PolyForm-Small-Business-1.0.0"] - }, - funding: { - urls: [] - } - ) - - expect(block).to include("| License | `AGPL-3.0-only` OR `PolyForm-Small-Business-1.0.0` |") - end - - it "formats README metadata values as Markdown table cells" do - block = described_class.readme_metadata_block( - package: { - name: "example", - description: "First line\n Second | line\r\nThird line", - homepage_url: "https://example.test", - source_url: "https://example.test/source", - license_expression: "MIT" - }, - license: { - spdx: ["MIT"] - }, - funding: { - urls: [] - } - ) - - expect(block).to include("| Description | First line
        Second \\| line
        Third line |") - expect(block).not_to include("First line\n") - end - - it "renders optional FOSSA README badge tokens from configuration" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-fossa-readme-badge", tmp_root) do |root| - disabled_style = described_class.readme_style_facts( - root, - {"readme" => {"badges" => {"fossa" => false}}}, - {spdx: ["MIT"]}, - repository: {slug: "galtzo-floss/example"} - ) - enabled_style = described_class.readme_style_facts( - root, - {"readme" => {"badges" => {"fossa" => "git+github.com/pboling/flag_shih_tzu"}}}, - {spdx: ["MIT"]}, - repository: {slug: "galtzo-floss/flag_shih_tzu"} - ) - - expect(disabled_style[:fossa_project]).to be_nil - tokens = described_class.readme_fossa_template_tokens(enabled_style) - expect(tokens.fetch("KJ|README:FOSSA_BADGE")).to eq("[![FOSSA Status][🧪fossa-img]][🧪fossa]") - expect(tokens.fetch("KJ|README:FOSSA_REFS")).to include("git%2Bgithub.com%2Fpboling%2Fflag_shih_tzu.svg?type=shield") - expect(tokens.fetch("KJ|README:FOSSA_REFS")).to include("git%2Bgithub.com%2Fpboling%2Fflag_shih_tzu?ref=badge_shield") - end - end - - it "disables coverage integrations across README badges, upload steps, templates, and config cleanup" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-disabled-coverage-integrations", tmp_root) do |root| - FileUtils.mkdir_p(File.join(root, ".github")) - FileUtils.mkdir_p(File.join(root, ".qlty")) - File.write(File.join(root, ".github/.codecov.yml"), "codecov:\n") - File.write(File.join(root, ".coveralls.yml"), "service_name: github\n") - File.write(File.join(root, ".qlty/qlty.toml"), "# qlty\n") - - config = { - "integrations" => { - "qlty" => false, - "disabled" => %w[codecov coveralls] - }, - "templates" => { - "root" => "packaged", - "apply" => true - } - } - - readme_style = described_class.readme_style_facts( - root, - config, - {spdx: ["MIT"]}, - repository: {slug: "omniauth/omniauth-jwt2"} - ) - expect(readme_style.fetch(:disabled_integrations)).to contain_exactly("codecov", "coveralls", "qlty") - - upload_steps = described_class.github_actions_coverage_steps(disabled_integrations: readme_style.fetch(:disabled_integrations)) - expect(upload_steps).not_to include("Upload coverage to Coveralls") - expect(upload_steps).not_to include("Upload coverage to QLTY") - expect(upload_steps).not_to include("Upload coverage to CodeCov") - expect(upload_steps).to include("Code Coverage Summary Report") - - template_paths = described_class.template_source_preferences(root, config).map { |preference| preference.fetch(:target_path) } - expect(template_paths).not_to include(".github/.codecov.yml", ".qlty/qlty.toml") - - cleanup_paths = described_class.inactive_packaged_template_cleanup_files(root, config).map { |cleanup| cleanup.fetch(:target_path) } - expect(cleanup_paths).to include(".github/.codecov.yml", ".coveralls.yml", ".qlty/qlty.toml") - end - end - - it "keeps coverage integrations active when only README badges are disabled" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-readme-only-coverage-badge-disable", tmp_root) do |root| - config = { - "readme" => { - "badges" => { - "disabled" => %w[qlty] - } - }, - "templates" => { - "root" => "packaged", - "apply" => true - } - } - - expect(described_class.disabled_coverage_integrations(config)).to be_empty - - readme_style = described_class.readme_style_facts( - root, - config, - {spdx: ["MIT"]}, - repository: {slug: "omniauth/omniauth-jwt2"} - ) - expect(readme_style.fetch(:disabled_integrations)).to contain_exactly("qlty") - - upload_steps = described_class.github_actions_coverage_steps(disabled_integrations: described_class.disabled_coverage_integrations(config)) - expect(upload_steps).to include("Upload coverage to Coveralls") - expect(upload_steps).to include("Upload coverage to QLTY") - expect(upload_steps).to include("Upload coverage to CodeCov") - - template_paths = described_class.template_source_preferences(root, config).map { |preference| preference.fetch(:target_path) } - expect(template_paths).to include(".github/.codecov.yml", ".qlty/qlty.toml") - expect(described_class.inactive_packaged_template_cleanup_files(root, config)).to be_empty - end - end - - it "supports partial coverage integration disablement" do - config = { - "integrations" => { - "code_cov" => false, - "qlty" => true, - "coveralls" => "false" - } - } - - expect(described_class.disabled_coverage_integrations(config)).to contain_exactly("codecov", "coveralls") - - upload_steps = described_class.github_actions_coverage_steps(disabled_integrations: described_class.disabled_coverage_integrations(config)) - expect(upload_steps).not_to include("Upload coverage to Coveralls") - expect(upload_steps).not_to include("Upload coverage to CodeCov") - expect(upload_steps).to include("Upload coverage to QLTY") - - workflow = <<~YAML - jobs: - coverage: - steps: - - name: Existing - run: true - YAML - updated = described_class.append_github_actions_coverage_steps(workflow, disabled_integrations: described_class.disabled_coverage_integrations(config)) - expect(updated).to include("Upload coverage to QLTY") - expect(updated).not_to include("Upload coverage to Coveralls") - expect(described_class.append_github_actions_coverage_steps(updated, disabled_integrations: [])).to eq(updated) - - workflow_without_steps = <<~YAML - jobs: - coverage: - runs-on: ubuntu-latest - YAML - expect(described_class.append_github_actions_coverage_steps(workflow_without_steps, disabled_integrations: [])).to eq(workflow_without_steps) - end - - it "disables SkyWalking Eyes from boolean keys and disabled lists" do - expect(described_class.disabled_integrations( - { - "integrations" => { - "skywalking_eyes" => false - } - }, - license: {spdx: ["MIT"]} - )).to include("skywalking-eyes") - - expect(described_class.disabled_integrations( - { - "integrations" => { - "disabled" => %w[license-eye] - } - }, - license: {spdx: ["MIT"]} - )).to include("skywalking-eyes") - end - - it "defaults SkyWalking Eyes off unless a compatible license is configured" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-skywalking-eyes-default-disable", tmp_root) do |root| - FileUtils.mkdir_p(File.join(root, ".github/workflows")) - File.write(File.join(root, ".licenserc.yaml"), "dependency:\n") - File.write(File.join(root, ".github/workflows/license-eye.yml"), "name: Apache SkyWalking Eyes\n") - config = { - "licenses" => %w[AGPL-3.0-only], - "templates" => { - "root" => "packaged", - "apply" => true - } - } - license = {spdx: ["AGPL-3.0-only"]} - template_config = described_class.template_runtime_config(config, {}, license: license) - - expect(described_class.disabled_integrations(config, license: license)).to include("skywalking-eyes") - - readme_style = described_class.readme_style_facts( - root, - config, - license, - repository: {slug: "example/example"} - ) - expect(readme_style.fetch(:disabled_integrations)).to include("skywalking-eyes") - - template_paths = described_class.template_source_preferences(root, template_config).map { |preference| preference.fetch(:target_path) } - expect(template_paths).not_to include(".licenserc.yaml", ".github/workflows/license-eye.yml") - - cleanup_paths = described_class.inactive_packaged_template_cleanup_files(root, template_config).map { |cleanup| cleanup.fetch(:target_path) } - expect(cleanup_paths).to include(".licenserc.yaml") - - workflow_cleanup_paths = described_class.inactive_packaged_workflow_cleanup_files(root, template_config) - expect(workflow_cleanup_paths).to include(".github/workflows/license-eye.yml") - end - end - - it "keeps SkyWalking Eyes enabled for MIT licenses and explicit opt-in" do - mit_config = { - "templates" => { - "root" => "packaged", - "apply" => true - } - } - non_mit_opt_in_config = { - "licenses" => %w[AGPL-3.0-only], - "integrations" => { - "skywalking-eyes" => true - }, - "templates" => { - "root" => "packaged", - "apply" => true - } - } - - expect(described_class.disabled_integrations(mit_config, license: {spdx: ["MIT"]})).not_to include("skywalking-eyes") - expect(described_class.disabled_integrations(non_mit_opt_in_config, license: {spdx: ["AGPL-3.0-only"]})).not_to include("skywalking-eyes") - expect(described_class.license_eye_workflow_badge(["AGPL-3.0-only"], non_mit_opt_in_config)).to include( - "Apache SkyWalking Eyes License Compatibility Check" - ) - end - - it "applies configured licenses to merged gemspec output" do - template = <<~RUBY - Gem::Specification.new do |spec| - spec.name = "example" - spec.homepage = "https://example.test" - spec.licenses = ["MIT"] - end - RUBY - destination = <<~RUBY - Gem::Specification.new do |spec| - spec.name = "example" - spec.homepage = "https://example.test" - spec.licenses = ["AGPL-3.0-only"] - end - RUBY - facts = { - package: {name: "example"}, - license: {spdx: ["AGPL-3.0-only", "PolyForm-Small-Business-1.0.0"]} - } - - output = described_class.merge_gemspec_template_source(template, destination, facts: facts) - - expect(output).to include('spec.licenses = ["AGPL-3.0-only", "PolyForm-Small-Business-1.0.0"]') - end - - it "escapes and de-duplicates emoji in gemspec summary and description tokens" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-gemspec-description-token", tmp_root) do |root| - write_tree(root, { - "example.gemspec" => <<~RUBY, - Gem::Specification.new do |spec| - spec.name = "example" - spec.summary = "🔍️ Find out what your Ruby gems are worth" - spec.description = '🔍️ Example uses repeatable scenarios called "appraisals."' - spec.homepage = "https://github.com/example/example" - spec.required_ruby_version = ">= 2.3.0" - end - RUBY - ".kettle-jem.yml" => <<~YAML, - project_emoji: 🔍️ - files: - example.gemspec: - strategy: accept_template - templates: - root: template - apply: true - entries: - - example.gemspec - YAML - "template/example.gemspec.example" => <<~RUBY - Gem::Specification.new do |spec| - spec.name = "example" - spec.summary = "{KJ|PROJECT_EMOJI} {KJ|GEMSPEC_PACKAGE_SUMMARY}" - spec.description = "{KJ|PROJECT_EMOJI} {KJ|GEMSPEC_PACKAGE_DESCRIPTION}" - spec.homepage = "https://github.com/example/example" - end - RUBY - }) - - described_class.apply_project(root, env: {}) - gemspec_path = File.join(root, "example.gemspec") - gemspec = File.read(gemspec_path) - - expect(gemspec).to include('spec.summary = "🔍️ Find out what your Ruby gems are worth"') - expect(gemspec).to include('spec.description = "🔍️ Example uses repeatable scenarios called \"appraisals.\""') - expect(gemspec).not_to include("🔍️ 🔍️") - expect(Gem::Specification.load(gemspec_path)).not_to be_nil - end - end - - it "refreshes README metadata during template-source README application" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-readme-metadata-order", tmp_root) do |root| - metadata_block = described_class.readme_metadata_block( - package: { - name: "example", - description: "Example gem", - homepage_url: "https://example.test", - source_url: "https://github.com/structuredmerge/structuredmerge-ruby", - license_expression: "MIT" - }, - license: {spdx: ["MIT"]}, - funding: {urls: ["https://tidelift.com/funding/github/rubygems/example"]} - ) - write_tree(root, { - "example.gemspec" => <<~RUBY, - Gem::Specification.new do |spec| - spec.name = "example" - spec.summary = "Example gem" - spec.homepage = "https://example.test" - spec.metadata["source_code_uri"] = "https://github.com/acme/example/tree/v1.2.3" - spec.license = "MIT" - end - RUBY - ".kettle-jem.yml" => <<~YAML, - templates: - root: template - apply: true - entries: - - README.md - YAML - "README.md" => <<~MARKDOWN, - # Example - - Destination body. - - #{metadata_block} - MARKDOWN - "template/README.md.example" => "# {KJ|NAMESPACE}\n\nTemplate body.\n" - }) - - described_class.apply_project(root, env: {}, run_options: {accept: true, force: true}) - first_readme = File.read(File.join(root, "README.md")) - described_class.apply_project(root, env: {}, run_options: {accept: true, force: true}) - - expect(first_readme).to include("") - expect(first_readme).to include("| Package | example |") - expect(first_readme).to include("| Source | https://github.com/acme/example/tree/v1.2.3 |") - expect(first_readme).not_to include("https://github.com/structuredmerge/structuredmerge-ruby") - expect(File.read(File.join(root, "README.md"))).to eq(first_readme) - end - end - - it "applies and prunes root license files from configured licenses" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-license-file-prune-slice", tmp_root) do |root| - write_tree(root, { - "example.gemspec" => <<~RUBY, - Gem::Specification.new do |spec| - spec.name = "example" - spec.summary = "Example gem" - spec.licenses = ["MIT"] - end - RUBY - ".kettle-jem.yml" => <<~YAML, - licenses: - - AGPL-3.0-only - - PolyForm-Small-Business-1.0.0 - templates: - root: packaged - apply: true - entries: - - LICENSE.md - - AGPL-3.0-only.md - - MIT.md - - PolyForm-Noncommercial-1.0.0.md - - PolyForm-Small-Business-1.0.0.md - - Big-Time-Public-License.md - YAML - "MIT.md" => "obsolete MIT license\n", - "PolyForm-Noncommercial-1.0.0.md" => "obsolete PolyForm NC license\n", - "Big-Time-Public-License.md" => "obsolete Big Time license\n" - }) - - apply = described_class.apply_project(root, env: {}) - recipe_names = apply[:recipe_reports].map { |report| report.fetch(:recipe_name) } - - expect(apply.dig(:facts, :license, :spdx)).to eq(["AGPL-3.0-only", "PolyForm-Small-Business-1.0.0"]) - expect(recipe_names).to include("template_source_application_AGPL_3_0_only_md") - expect(recipe_names).to include("template_source_application_PolyForm_Small_Business_1_0_0_md") - expect(recipe_names).not_to include("template_source_application_MIT_md") - expect(recipe_names).not_to include("template_source_application_PolyForm_Noncommercial_1_0_0_md") - expect(recipe_names).not_to include("template_source_application_Big_Time_Public_License_md") - expect(apply[:changed_files]).to include( - "MIT.md", - "PolyForm-Noncommercial-1.0.0.md", - "Big-Time-Public-License.md", - "AGPL-3.0-only.md", - "PolyForm-Small-Business-1.0.0.md" - ) - expect(File).to exist(File.join(root, "AGPL-3.0-only.md")) - expect(File).to exist(File.join(root, "PolyForm-Small-Business-1.0.0.md")) - expect(File).not_to exist(File.join(root, "MIT.md")) - expect(File).not_to exist(File.join(root, "PolyForm-Noncommercial-1.0.0.md")) - expect(File).not_to exist(File.join(root, "Big-Time-Public-License.md")) - end - end - - it "does not package configured named license files in the generated gemspec by default" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-configured-license-entry-slice", tmp_root) do |root| - write_tree(root, { - "example.gemspec" => <<~RUBY, - Gem::Specification.new do |spec| - spec.name = "example" - spec.summary = "Example gem" - spec.authors = ["Jane Q Public"] - spec.email = ["jane@example.test"] - spec.licenses = ["MIT"] - end - RUBY - ".kettle-jem.yml" => <<~YAML - licenses: - - MIT - tokens: - author: - orcid: "0000-0000-0000-0000" - templates: - root: packaged - apply: true - YAML - }) - - apply = described_class.apply_project(root, env: {}) - recipe_names = apply[:recipe_reports].map { |report| report.fetch(:recipe_name) } - - expect(recipe_names).to include("template_source_application_example_gemspec") - expect(apply[:changed_files]).to include("example.gemspec") - gemspec = File.read(File.join(root, "example.gemspec")) - expect(gemspec).to include("LICENSE.md") - expect(gemspec).not_to include("MIT.md") - end - end - - it "renders configured extra package files in the generated gemspec" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-configured-package-files-slice", tmp_root) do |root| - write_tree(root, { - "example.gemspec" => <<~RUBY, - Gem::Specification.new do |spec| - spec.name = "example" - spec.summary = "Example gem" - spec.authors = ["Jane Q Public"] - spec.email = ["jane@example.test"] - spec.licenses = ["MIT"] - end - RUBY - ".kettle-jem.yml" => <<~YAML - gemspec: - package_files: - include: - - data/**/*.json - - config/runtime.yml - tokens: - author: - orcid: "0000-0000-0000-0000" - templates: - root: packaged - apply: true - YAML - }) - - apply = described_class.apply_project(root, env: {}) - gemspec = File.read(File.join(root, "example.gemspec")) - - expect(apply.dig(:facts, :gemspec, :package_file_includes)).to eq(["data/**/*.json", "config/runtime.yml"]) - expect(gemspec).to include("# Extra package files configured by .structuredmerge/kettle-jem.yml") - expect(gemspec).to include('*Dir.glob("data/**/*.json", File::FNM_DOTMATCH).select { |path| File.file?(path) }') - expect(gemspec).to include('*Dir.glob("config/runtime.yml", File::FNM_DOTMATCH).select { |path| File.file?(path) }') - expect { RubyVM::InstructionSequence.compile(gemspec) }.not_to raise_error - end - end - - it "does not package multiple configured named license files in the generated gemspec by default" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-configured-multi-license-entry-slice", tmp_root) do |root| - write_tree(root, { - "example.gemspec" => <<~RUBY, - Gem::Specification.new do |spec| - spec.name = "example" - spec.summary = "Example gem" - spec.authors = ["Jane Q Public"] - spec.email = ["jane@example.test"] - spec.licenses = ["MIT"] - end - RUBY - ".kettle-jem.yml" => <<~YAML - licenses: - - AGPL-3.0-only - - LicenseRef-Big-Time-Public-License - tokens: - author: - orcid: "0000-0000-0000-0000" - templates: - root: packaged - apply: true - YAML - }) - - apply = described_class.apply_project(root, env: {}) - recipe_names = apply[:recipe_reports].map { |report| report.fetch(:recipe_name) } - - expect(recipe_names).to include("template_source_application_example_gemspec") - expect(apply[:changed_files]).to include("example.gemspec") - gemspec = File.read(File.join(root, "example.gemspec")) - expect(gemspec).to include("LICENSE.md") - expect(gemspec).not_to include("AGPL-3.0-only.md") - expect(gemspec).not_to include("Big-Time-Public-License.md") - end - end - - it "projects copyright holders from git blame into license templates" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-copyright-slice", tmp_root) do |root| - write_tree(root, { - "example.gemspec" => <<~RUBY, - Gem::Specification.new do |spec| - spec.name = "example" - spec.summary = "Example gem" - spec.authors = ["Fallback Author"] - spec.email = ["fallback@example.test"] - spec.licenses = ["MIT"] - spec.required_ruby_version = ">= 3.2" - end - RUBY - "lib/example.rb" => <<~RUBY, - module Example - VERSION = "0.1.0" - end - RUBY - ".kettle-jem.yml" => <<~YAML, - templates: - root: templates - apply: true - entries: - - LICENSE.md - - README.md - YAML - "templates/LICENSE.md.example" => <<~MARKDOWN, - {KJ|LICENSE_MD_CONTENT} - - {KJ|LICENSE_COPYRIGHT_NOTICE} - MARKDOWN - "templates/README.md.example" => <<~MARKDOWN, - # 💎 Example - - ## 🌻 Synopsis - - Template synopsis. - - ## 📄 License - - {KJ|README:LICENSE_INTRO} - - ### © Copyright - - {KJ|README:COPYRIGHT_NOTICE} - - ## ⚙️ Configuration - - Template configuration. - - ## 🔧 Basic Usage - - Template usage. - MARKDOWN - "README.md" => <<~MARKDOWN - # 💎 Example - - ## 🌻 Synopsis - - Project synopsis. - - ## ⚙️ Configuration - - Project configuration. - - ## 🔧 Basic Usage - - Project usage. - MARKDOWN - }) - expect(system("git", "-C", root, "init", "-q")).to be(true) - expect(system("git", "-C", root, "config", "user.name", "Jane Contributor")).to be(true) - expect(system("git", "-C", root, "config", "user.email", "jane@example.test")).to be(true) - expect(system("git", "-C", root, "add", ".")).to be(true) - commit_env = { - "GIT_AUTHOR_NAME" => "Jane Contributor", - "GIT_AUTHOR_EMAIL" => "jane@example.test", - "GIT_AUTHOR_DATE" => "#{Time.now.utc.year}-01-02T00:00:00Z", - "GIT_COMMITTER_NAME" => "Jane Contributor", - "GIT_COMMITTER_EMAIL" => "jane@example.test", - "GIT_COMMITTER_DATE" => "#{Time.now.utc.year}-01-02T00:00:00Z" - } - tree = IO.popen(["git", "-C", root, "write-tree"], &:read).strip - commit = IO.popen(commit_env, ["git", "-C", root, "commit-tree", tree, "-m", "initial"], &:read).strip - expect(commit).to match(/\A[0-9a-f]{40}\z/) - expect(system("git", "-C", root, "update-ref", "refs/heads/main", commit)).to be(true) - expect(system("git", "-C", root, "symbolic-ref", "HEAD", "refs/heads/main")).to be(true) - - plan = described_class.plan_project(root, env: {}) - license_report = plan[:recipe_reports].find { |report| report.fetch(:recipe_name) == "template_source_application_LICENSE_md" } - readme_report = plan[:recipe_reports].find { |report| report.fetch(:recipe_name) == "template_source_application_README_md" } - expected_line = "Copyright (c) #{Time.now.utc.year} Jane Contributor" - expect(plan.dig(:facts, :copyright, :lines)).to eq([expected_line]) - expect(license_report.fetch(:final_content)).to include("## Copyright Notice") - expect(license_report.fetch(:final_content)).to include("- #{expected_line}") - expect(readme_report.fetch(:final_content)).to include("Copyright holders") - expect(readme_report.fetch(:final_content)).to include("- #{expected_line}") - expect(license_report.dig(:metadata, :template_tokens, "KJ|LICENSE_COPYRIGHT_NOTICE")).to include("- #{expected_line}") - end - end - - it "falls back to configured author copyright sections when git blame is unavailable" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-copyright-author-fallback", tmp_root) do |root| - write_tree(root, { - "example.gemspec" => <<~RUBY, - Gem::Specification.new do |spec| - spec.name = "example" - spec.summary = "Example gem" - spec.authors = ["Peter H. Boling"] - spec.email = ["floss@galtzo.com"] - spec.licenses = ["AGPL-3.0-only"] - end - RUBY - ".kettle-jem.yml" => <<~YAML, - licenses: - - AGPL-3.0-only - - PolyForm-Small-Business-1.0.0 - tokens: - author: - given_names: Peter H. - family_names: Boling - email: floss@galtzo.com - templates: - root: template - apply: true - entries: - - LICENSE.md - - README.md - files: - README.md: - strategy: accept_template - YAML - "README.md" => "# Example\n", - "template/LICENSE.md.example" => "{KJ|LICENSE_MD_CONTENT}\n\n{KJ|LICENSE_COPYRIGHT_NOTICE}\n", - "template/README.md.example" => "# Example\n\n## 📄 License\n\n{KJ|README:COPYRIGHT_NOTICE}\n" - }) - - plan = described_class.plan_project(root, env: {}) - license_report = plan[:recipe_reports].find { |report| report.fetch(:relative_path) == "LICENSE.md" } - readme_report = plan[:recipe_reports].find { |report| report.fetch(:recipe_name) == "template_source_application_README_md" } - expected_line = "Required Notice: Copyright (c) #{Time.now.utc.year} Peter H. Boling" - - expect(plan.fetch(:facts)).not_to have_key(:copyright) - expect(license_report.fetch(:final_content)).to include("## Copyright Notice") - expect(license_report.fetch(:final_content)).to include("- #{expected_line}") - expect(readme_report.fetch(:final_content)).to include("Copyright holders") - expect(readme_report.fetch(:final_content)).to include("- #{expected_line}") - end - end - - it "projects project runtime template tokens" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-project-runtime-token-slice", tmp_root) do |root| - write_tree(root, { - "example-gem.gemspec" => <<~RUBY, - Gem::Specification.new do |spec| - spec.name = "example-gem" - spec.version = "2.4.6" - spec.summary = "Example gem" - spec.authors = ["Jane Q Public"] - spec.email = ["jane@example.test"] - spec.required_ruby_version = ">= 3.2" - spec.metadata["source_code_uri"] = "https://github.com/acme/example-gem" - end - RUBY - ".kettle-jem.yml" => <<~YAML, - project_emoji: "🫖" - min_divergence_threshold: "{KJ|MIN_DIVERGENCE_THRESHOLD}" - defaults: - freeze_token: custom-freeze - templates: - root: template - apply: true - entries: - - README.md - YAML - "template/README.md.example" => <<~MARKDOWN - Gem shield: {KJ|GEM_SHIELD} - Major: {KJ|GEM_MAJOR} - GitHub org: {KJ|GH_ORG} - Namespace shield: {KJ|NAMESPACE_SHIELD} - Namespace badge: https://img.shields.io/badge/namespace-{KJ|NAMESPACE_SHIELD}-3C2D2D.svg - Min dev Ruby: {KJ|MIN_DEV_RUBY} - Freeze: {KJ|FREEZE_TOKEN} - Version: {KJ|KETTLE_JEM_VERSION} - Date: {KJ|TEMPLATE_RUN_DATE} - Year: {KJ|TEMPLATE_RUN_YEAR} - Dev gem: {KJ|KETTLE_DEV_GEM} - YARD: {KJ|YARD_HOST} - Homepage URI: {KJ|HOMEPAGE_URI} - Emoji: {KJ|PROJECT_EMOJI} - Divergence: {KJ|MIN_DIVERGENCE_THRESHOLD} - MARKDOWN - }) - - plan = described_class.plan_project( - root, - env: { - "KJ_MIN_DIVERGENCE_THRESHOLD" => "12", - "KJ_YARD_HOST" => "docs.example.test", - "KJ_HOMEPAGE_URI" => "https://homepage.example.test" - } - ) - template_report = plan[:recipe_reports].find do |report| - report.fetch(:recipe_name) == "template_source_application_README_md" - end - final_content = template_report.fetch(:final_content) - expect(final_content).to include("Gem shield: example--gem") - expect(final_content).to include("Major: 2") - expect(final_content).to include("GitHub org: acme") - expect(final_content).to include("Namespace shield: Example::Gem") - expect(final_content).to include("Namespace badge: https://img.shields.io/badge/namespace-Example::Gem-3C2D2D.svg") - expect(final_content).to include("Min dev Ruby: 3.2") - expect(final_content).to include("Freeze: custom-freeze") - expect(final_content).to include("Version: #{Kettle::Jem::VERSION}") - expect(final_content).to include("Date: #{Time.now.strftime("%Y-%m-%d")}") - expect(final_content).to include("Year: #{Time.now.year}") - expect(final_content).to include("Dev gem: kettle-dev") - expect(final_content).to include("YARD: docs.example.test") - expect(final_content).to include("Homepage URI: https://homepage.example.test") - expect(final_content).to include("Emoji: 🫖") - expect(final_content).to include("Divergence: 12") - expect(template_report.dig(:metadata, :template_tokens)).to include( - "KJ|FREEZE_TOKEN" => "custom-freeze", - "KJ|GEM_MAJOR" => "2", - "KJ|GEM_SHIELD" => "example--gem", - "KJ|GH_ORG" => "acme", - "KJ|MIN_DEV_RUBY" => "3.2", - "KJ|MIN_DIVERGENCE_THRESHOLD" => "12", - "KJ|NAMESPACE_SHIELD" => "Example::Gem", - "KJ|PROJECT_EMOJI" => "🫖", - "KJ|HOMEPAGE_URI" => "https://homepage.example.test", - "KJ|YARD_HOST" => "docs.example.test" - ) - end - end - - it "honors configured project runtime URI tokens when ENV is absent" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-project-runtime-uri-slice", tmp_root) do |root| - write_tree(root, { - "example-gem.gemspec" => <<~RUBY, - Gem::Specification.new do |spec| - spec.name = "example-gem" - spec.summary = "Example gem" - spec.authors = ["Jane Q Public"] - spec.email = ["jane@example.test"] - spec.metadata["source_code_uri"] = "https://github.com/acme/example-gem" - end - RUBY - ".kettle-jem.yml" => <<~YAML, - project_emoji: "🫖" - yard_host: docs.config.test - homepage_uri: https://homepage.config.test - templates: - root: template - apply: true - entries: - - README.md - YAML - "template/README.md.example" => "YARD: {KJ|YARD_HOST}\nHomepage URI: {KJ|HOMEPAGE_URI}\n" - }) - - plan = described_class.plan_project(root, env: {}) - template_report = plan[:recipe_reports].find do |report| - report.fetch(:recipe_name) == "template_source_application_README_md" - end - - expect(template_report.fetch(:final_content)).to eq("YARD: docs.config.test\nHomepage URI: https://homepage.config.test\n") - expect(template_report.dig(:metadata, :template_tokens)).to include( - "KJ|HOMEPAGE_URI" => "https://homepage.config.test", - "KJ|YARD_HOST" => "docs.config.test" - ) - end - end - - it "syncs ENV-backed values back into kettle config during templating" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-env-config-sync", tmp_root) do |root| - write_tree(root, { - "example-gem.gemspec" => <<~RUBY, - Gem::Specification.new do |spec| - spec.name = "example-gem" - spec.summary = "Example gem" - spec.authors = ["Jane Q Public"] - spec.email = ["jane@example.test"] - spec.metadata["source_code_uri"] = "https://github.com/acme/example-gem" - end - RUBY - ".structuredmerge/kettle-jem.yml" => <<~YAML - project_emoji: "🫖" - min_divergence_threshold: 5 # ENV override: KJ_MIN_DIVERGENCE_THRESHOLD - yard_host: docs.config.test # ENV override: KJ_YARD_HOST - homepage_uri: https://homepage.config.test # ENV override: KJ_HOMEPAGE_URI - kettle-jem: - version: "1.0.0" - tokens: - forge: - gh_user: config-user # GitHub username only. ENV: KJ_GH_USER - templates: - root: packaged - apply: true - entries: - - .structuredmerge/kettle-jem.yml - YAML - }) - - apply = described_class.apply_project( - root, - env: { - "KJ_MIN_DIVERGENCE_THRESHOLD" => "12", - "KJ_YARD_HOST" => "docs.env.test", - "KJ_HOMEPAGE_URI" => "https://homepage.env.test", - "KJ_GH_USER" => "env-user" - }, - run_options: {skip_commit: true} - ) - report = apply.fetch(:recipe_reports).find { |candidate| candidate.fetch(:relative_path) == described_class::KETTLE_CONFIG_PATH } - config = YAML.safe_load(report.fetch(:final_content)) - - expect(config.fetch("min_divergence_threshold")).to eq(12) - expect(config.fetch("yard_host")).to eq("docs.env.test") - expect(config.fetch("homepage_uri")).to eq("https://homepage.env.test") - expect(config.dig("kettle-jem", "version")).to eq(Kettle::Jem::Version::VERSION) - expect(config.dig("tokens", "forge", "gh_user")).to eq("env-user") - expect(report.fetch(:final_content)).to include("min_divergence_threshold: 12 # ENV override: KJ_MIN_DIVERGENCE_THRESHOLD") - expect(report.fetch(:final_content)).to include('yard_host: "docs.env.test" # ENV override: KJ_YARD_HOST') - expect(report.fetch(:final_content)).to include('homepage_uri: "https://homepage.env.test" # ENV override: KJ_HOMEPAGE_URI') - expect(report.fetch(:final_content)).to include(%(version: "#{Kettle::Jem::Version::VERSION}")) - expect(report.fetch(:final_content)).to include('gh_user: "env-user" # GitHub username only. ENV: KJ_GH_USER') - expect(File.read(File.join(root, described_class::KETTLE_CONFIG_PATH))).to eq(report.fetch(:final_content)) - end - end - - it "prunes legacy kettle config keys after their replacement exists" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-legacy-config-key-cleanup", tmp_root) do |root| - write_tree(root, { - "example-gem.gemspec" => <<~RUBY, - Gem::Specification.new do |spec| - spec.name = "example-gem" - spec.summary = "Example gem" - spec.authors = ["Jane Q Public"] - spec.email = ["jane@example.test"] - end - RUBY - ".kettle-jem.yml" => <<~YAML - project_emoji: "🫖" - # README top logo mode. - # Controls whether the generated README header includes the GitHub org logo, - # the project logo, or both after the shared Galtzo and ruby-lang logos. - # Supported values: org, project, org_and_project - # Default (when key is absent): org_and_project - readme: - top_logos: related-org,ruby,org - top_logo_mode: org_and_project - templates: - root: packaged - apply: true - entries: - - .structuredmerge/kettle-jem.yml - YAML - }) - - apply = described_class.apply_project(root, env: {}, run_options: {skip_commit: true}) - report = apply.fetch(:recipe_reports).find { |candidate| candidate.fetch(:relative_path) == ".structuredmerge/kettle-jem.yml" } - config = YAML.safe_load(report.fetch(:final_content)) - - expect(config.dig("readme", "top_logos")).to eq("org") - expect(config.dig("readme", "h2_synopsis_logos")).to eq("related-org,ruby") - expect(config.fetch("readme")).not_to have_key("top_logo_mode") - expect(report.fetch(:final_content)).not_to include("top_logo_mode:") - expect(report.fetch(:final_content)).to include("# README top logos.") - expect(report.fetch(:final_content)).to include("# top_logos render above the title; h2_synopsis_logos render inline with the Synopsis H2.") - expect(report.fetch(:final_content)).to include("# Supported values: related-org, ruby, org, project") - expect(File.read(File.join(root, ".structuredmerge/kettle-jem.yml"))).to eq(report.fetch(:final_content)) - end - end - - it "migrates legacy-only README top logo mode config" do - content = <<~YAML - readme: - top_logo_mode: org - YAML - - migrated = described_class.send(:sync_kettle_config_env_overrides, content, {}) - config = YAML.safe_load(migrated) - - expect(config.dig("readme", "top_logos")).to eq("org") - expect(config.dig("readme", "h2_synopsis_logos")).to eq("related-org,ruby") - expect(config.fetch("readme")).not_to have_key("top_logo_mode") - end - - it "migrates comma-separated legacy README top logo mode config" do - content = <<~YAML - readme: - top_logo_mode: org, project - YAML - - migrated = described_class.send(:sync_kettle_config_env_overrides, content, {}) - config = YAML.safe_load(migrated) - - expect(config.dig("readme", "top_logos")).to eq("org,project") - expect(config.dig("readme", "h2_synopsis_logos")).to eq("related-org,ruby") - expect(config.fetch("readme")).not_to have_key("top_logo_mode") - end - - it "preserves explicit kettle config values while refreshing the config template" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-config-destination-values", tmp_root) do |root| - write_tree(root, { - "example-gem.gemspec" => <<~RUBY, - Gem::Specification.new do |spec| - spec.name = "example-gem" - spec.summary = "Example gem" - spec.authors = ["Jane Q Public"] - spec.email = ["jane@example.test"] - end - RUBY - ".structuredmerge/kettle-jem.yml" => <<~YAML - defaults: - preference: destination - add_template_only_nodes: true - project_emoji: "🫖" - repository: - topology: standalone - readme: - top_logos: org,project - h2_synopsis_logos: related-org,ruby - templates: - root: packaged - apply: true - entries: - - .structuredmerge/kettle-jem.yml - YAML - }) - - apply = described_class.apply_project(root, env: {}, run_options: {skip_commit: true}) - report = apply.fetch(:recipe_reports).find { |candidate| candidate.fetch(:relative_path) == ".structuredmerge/kettle-jem.yml" } - config = YAML.safe_load(report.fetch(:final_content)) - - expect(config.fetch("project_emoji")).to eq("🫖") - expect(config.dig("repository", "topology")).to eq("standalone") - expect(config.dig("readme", "top_logos")).to eq("org,project") - expect(config.dig("readme", "h2_synopsis_logos")).to eq("related-org,ruby") - expect(File.read(File.join(root, ".structuredmerge/kettle-jem.yml"))).to eq(report.fetch(:final_content)) - end - end - - it "normalizes combined top logo config when Synopsis H2 logos already exist" do - content = <<~YAML - readme: - top_logos: related-org,ruby,org - h2_synopsis_logos: related-org,ruby - YAML - - migrated = described_class.send(:sync_kettle_config_env_overrides, content, {}) - config = YAML.safe_load(migrated) - - expect(config.dig("readme", "top_logos")).to eq("org") - expect(config.dig("readme", "h2_synopsis_logos")).to eq("related-org,ruby") - end - - it "derives source and forge tokens from git origin when gemspec metadata is absent" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-git-origin-token-slice", tmp_root) do |root| - write_tree(root, { - "example.gemspec" => <<~RUBY, - Gem::Specification.new do |spec| - spec.name = "example" - spec.summary = "Example gem" - end - RUBY - ".kettle-jem.yml" => <<~YAML, - templates: - root: template - apply: true - entries: - - README.md - YAML - "template/README.md.example" => <<~MARKDOWN - Source: {KJ|GH_ORG} - GitHub user: {KJ|GH:USER} - MARKDOWN - }) - expect(system("git", "-C", root, "init", "-q")).to be(true) - expect(system("git", "-C", root, "remote", "add", "origin", "git@github.com:acme/example.git")).to be(true) - - plan = described_class.plan_project(root, env: {}) - template_report = plan[:recipe_reports].find do |report| - report.fetch(:recipe_name) == "template_source_application_README_md" - end - expect(plan.dig(:facts, :package, :source_url)).to eq("https://github.com/acme/example") - expect(template_report.fetch(:final_content)).to include("Source: acme") - expect(template_report.fetch(:final_content)).to include("GitHub user: acme") - expect(template_report.dig(:metadata, :template_tokens)).to include( - "KJ|GH_ORG" => "acme", - "KJ|GH:USER" => "acme" - ) - end - end - - it "prefers git origin over stale generated gemspec homepage metadata" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-stale-homepage-token-slice", tmp_root) do |root| - write_tree(root, { - "example.gemspec" => <<~RUBY, - Gem::Specification.new do |spec| - spec.name = "example" - spec.version = "1.2.3" - spec.summary = "Example gem" - spec.homepage = "https://github.com/pboling/example" - spec.metadata["source_code_uri"] = "\#{spec.homepage}/tree/v\#{spec.version}" - end - RUBY - ".kettle-jem.yml" => <<~YAML, - templates: - root: template - apply: true - entries: - - example.gemspec - - README.md - YAML - "template/example.gemspec.example" => <<~RUBY, - Gem::Specification.new do |spec| - spec.name = "example" - spec.summary = "Example gem" - spec.homepage = "{KJ|README:GH_REPOSITORY_URL}" - end - RUBY - "template/README.md.example" => <<~MARKDOWN - Source: {KJ|GH_ORG} - GitHub user: {KJ|GH:USER} - Repository: {KJ|README:GH_REPOSITORY_URL} - MARKDOWN - }) - expect(system("git", "-C", root, "init", "-q")).to be(true) - expect(system("git", "-C", root, "remote", "add", "origin", "git@github.com:rubocop-lts/example.git")).to be(true) - - plan = described_class.plan_project(root, env: {}) - template_report = plan[:recipe_reports].find do |report| - report.fetch(:recipe_name) == "template_source_application_README_md" - end - - expect(plan.dig(:facts, :package, :source_url)).to eq("https://github.com/rubocop-lts/example") - expect(plan.dig(:facts, :package, :homepage_url)).to eq("https://github.com/rubocop-lts/example") - expect(template_report.fetch(:final_content)).to include("Source: rubocop-lts") - expect(template_report.fetch(:final_content)).to include("GitHub user: rubocop-lts") - expect(template_report.fetch(:final_content)).to include("Repository: https://github.com/rubocop-lts/example") - - apply = described_class.apply_project(root, env: {}) - expect(apply[:changed_files]).to include("example.gemspec") - expect(File.read(File.join(root, "example.gemspec"))).to include('spec.homepage = "https://github.com/rubocop-lts/example"') - end - end - - it "merges destination gemspec files entries into the template files assignment" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-gemspec-files-preserve", tmp_root) do |root| - write_tree(root, { - "example.gemspec" => <<~RUBY, - Gem::Specification.new do |spec| - spec.name = "example" - spec.summary = "Example gem" - spec.files = Dir[ - "lib/**/*.rb", - "rubocop-lts/**/*.yml", - "README.md" - ] - end - RUBY - ".kettle-jem.yml" => <<~YAML, - templates: - root: template - apply: true - entries: - - example.gemspec - YAML - "template/example.gemspec.example" => <<~RUBY - Gem::Specification.new do |spec| - enumerate_package_files = lambda do |root| - Dir.glob(File.join(root, "**", "*"), File::FNM_DOTMATCH).select do |path| - File.file?(path) && ![".", ".."].include?(File.basename(path)) - end - end - - spec.name = "example" - spec.summary = "Template summary" - spec.files = [ - *enumerate_package_files.call("lib"), - *enumerate_package_files.call("exe"), - *enumerate_package_files.call("certs"), - *enumerate_package_files.call("sig") - ] - end - RUBY - }) - - plan = described_class.plan_project(root, env: {}) - template_report = plan[:recipe_reports].find do |report| - report.fetch(:recipe_name) == "template_source_application_example_gemspec" - end - final_content = template_report.fetch(:final_content) - - expect(Prism.parse(final_content)).to be_success - expect(final_content).to include("spec.files = Dir[") - expect(final_content).to include("] + [") - expect(final_content).to include('"rubocop-lts/**/*.yml"') - expect(final_content).to include('*enumerate_package_files.call("exe")') - expect(final_content.index('"rubocop-lts/**/*.yml"')).to be < final_content.index("] + [") - expect(final_content.index("] + [")).to be < final_content.index('*enumerate_package_files.call("lib")') - expect(final_content.scan(/^\s*"lib\/\*\*\/\*\.rb",/).size).to eq(1) - end - end - - it "replaces old broad generated gemspec manifests with the minimal package manifest" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-gemspec-files-minimal-package", tmp_root) do |root| - write_tree(root, { - "example.gemspec" => <<~RUBY, - Gem::Specification.new do |spec| - spec.name = "example" - spec.summary = "Example gem" - spec.authors = ["Jane Q Public"] - spec.email = ["jane@example.test"] - spec.licenses = ["MIT"] - - enumerate_package_files = lambda do |root| - Dir.glob(File.join(root, "**", "*"), File::FNM_DOTMATCH).select do |path| - File.file?(path) && ![".", ".."].include?(File.basename(path)) - end - end - - # Specify which files are part of the released package. - spec.files = [ - "LICENSE.md", - "MIT.md", - "CITATION.cff", - "CODE_OF_CONDUCT.md", - "CONTRIBUTING.md", - "FUNDING.md", - "README.md", - "RUBOCOP.md", - "SECURITY.md", - "config/runtime.yml", - *enumerate_package_files.call("lib"), - *enumerate_package_files.call("exe"), - *enumerate_package_files.call("certs"), - *enumerate_package_files.call("sig") - ] - - spec.extra_rdoc_files = Dir[ - "CHANGELOG.md", - "CITATION.cff", - "CODE_OF_CONDUCT.md", - "CONTRIBUTING.md", - "FUNDING.md", - "LICENSE.md", - "README.md", - "RUBOCOP.md", - "SECURITY.md" - ] - end - RUBY - ".kettle-jem.yml" => <<~YAML - tokens: - author: - orcid: "0000-0000-0000-0000" - templates: - root: packaged - apply: true - YAML - }) - - apply = described_class.apply_project(root, env: {}) - gemspec = File.read(File.join(root, "example.gemspec")) - files_assignment = described_class.gemspec_assignment_records(gemspec, receiver: "spec").find do |record| - record.fetch(:field) == "files" - end.fetch(:source) - - expect(apply[:changed_files]).to include("example.gemspec") - expect(Prism.parse(gemspec)).to be_success - expect(gemspec).to include("CHANGELOG.md") - expect(gemspec).to include("LICENSE.md") - expect(gemspec).to include("README.md") - expect(gemspec).to include("sig/example.rbs") - expect(files_assignment).to include("*package_metadata_files") - expect(files_assignment).to include('"config/runtime.yml"') - expect(files_assignment).to include('*enumerate_package_files.call("lib")') - expect(files_assignment).to include('*enumerate_package_files.call("exe")') - expect(files_assignment).not_to include('"LICENSE.md"') - expect(files_assignment).not_to include('"README.md"') - expect(files_assignment).not_to include("MIT.md") - expect(files_assignment).not_to include("CITATION.cff") - expect(files_assignment).not_to include("CODE_OF_CONDUCT.md") - expect(files_assignment).not_to include("CONTRIBUTING.md") - expect(files_assignment).not_to include("FUNDING.md") - expect(files_assignment).not_to include("RUBOCOP.md") - expect(files_assignment).not_to include("SECURITY.md") - expect(files_assignment).not_to include('*enumerate_package_files.call("certs")') - expect(files_assignment).not_to include('*enumerate_package_files.call("sig")') - expect(gemspec).not_to include("spec.extra_rdoc_files") - end - end - - it "merges recursive config package files without preserving stale frozen files overrides" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-gemspec-files-recursive-config", tmp_root) do |root| - write_tree(root, { - "standard-rubocop-lts.gemspec" => <<~RUBY, - Gem::Specification.new do |spec| - spec.name = "standard-rubocop-lts" - spec.files = Dir[ - "config/**/*.yml", - "lib/**/*.rb", - "README.md" - ] - - # kettle-jem:freeze - spec.files = Dir[ - "config/*.yml", - "lib/**/*.rb", - "README.md" - ] - # kettle-jem:unfreeze - end - RUBY - ".kettle-jem.yml" => <<~YAML, - templates: - root: template - apply: true - entries: - - standard-rubocop-lts.gemspec - YAML - "template/standard-rubocop-lts.gemspec.example" => <<~RUBY - Gem::Specification.new do |spec| - enumerate_package_files = lambda do |root| - Dir.glob(File.join(root, "**", "*"), File::FNM_DOTMATCH).select do |path| - File.file?(path) && ![".", ".."].include?(File.basename(path)) - end - end - - spec.name = "standard-rubocop-lts" - spec.files = [ - *enumerate_package_files.call("lib"), - *enumerate_package_files.call("exe"), - *enumerate_package_files.call("certs"), - *enumerate_package_files.call("sig") - ] - end - RUBY - }) - - plan = described_class.plan_project(root, env: {}) - template_report = plan[:recipe_reports].find do |report| - report.fetch(:recipe_name) == "template_source_application_standard_rubocop_lts_gemspec" - end - final_content = template_report.fetch(:final_content) - - expect(Prism.parse(final_content)).to be_success - expect(final_content.scan(/^\s*spec\.files\s*=/).size).to eq(1) - expect(final_content).to include('"config/**/*.yml"') - expect(final_content).to include('*enumerate_package_files.call("lib")') - expect(final_content).not_to include("# kettle-jem:freeze") - expect(final_content).not_to include('"config/*.yml"') - end - end - - it "unions literal Dir gemspec files assignments from destination and template" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-gemspec-files-dir-union", tmp_root) do |root| - write_tree(root, { - "example.gemspec" => <<~RUBY, - Gem::Specification.new do |spec| - spec.name = "example" - spec.files = Dir[ - "sig/**/*.rbs", - "rubocop-lts/**/*.yml", - ] - end - RUBY - ".kettle-jem.yml" => <<~YAML, - templates: - root: template - apply: true - entries: - - example.gemspec - YAML - "template/example.gemspec.example" => <<~RUBY - Gem::Specification.new do |spec| - spec.name = "example" - spec.files = Dir[ - "lib/**/*.rb", - "sig/**/*.rbs", - "README.md", - ] - end - RUBY - }) - - plan = described_class.plan_project(root, env: {}) - template_report = plan[:recipe_reports].find do |report| - report.fetch(:recipe_name) == "template_source_application_example_gemspec" - end - final_content = template_report.fetch(:final_content) - - expect(Prism.parse(final_content)).to be_success - expect(final_content).to include("spec.files = Dir[") - expect(final_content.index('"rubocop-lts/**/*.yml"')).to be < final_content.index('"lib/**/*.rb"') - expect(final_content.scan('"sig/**/*.rbs"').size).to eq(1) - expect(final_content).to include('"README.md"') - end - end - - it "fails hard on unsupported custom nonliteral destination gemspec files assignments" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-gemspec-files-custom", tmp_root) do |root| - write_tree(root, { - "example.gemspec" => <<~RUBY, - Gem::Specification.new do |spec| - spec.name = "example" - enumerate_package_files = lambda do |root| - Dir.glob(File.join(root, "**", "*"), File::FNM_DOTMATCH).select do |path| - File.file?(path) && ![".", ".."].include?(File.basename(path)) - end - end - spec.files = [ - *Dir["lib/**/*.rb"], - *enumerate_package_files.call("template"), - *Dir["sig/**/*.rbs"], - ] - end - RUBY - ".kettle-jem.yml" => <<~YAML, - templates: - root: template - apply: true - entries: - - example.gemspec - YAML - "template/example.gemspec.example" => <<~RUBY - Gem::Specification.new do |spec| - spec.name = "example" - spec.files = Dir[ - "lib/**/*.rb", - "sig/**/*.rbs", - ] - end - RUBY - }) - - expect do - described_class.plan_project(root, env: {}) - end.to raise_error(Kettle::Jem::Error, /Unsupported gemspec spec\.files assignment/) - end - end - - it "preserves destination splat files assignments without appending duplicate template splats" do - template = <<~RUBY - Gem::Specification.new do |spec| - spec.name = "example" - # Specify which files are part of the released package. - spec.files = [ - # Root license files - "LICENSE.md", - "MIT.md", - # Code / tasks / data (NOTE: exe/ is specified via spec.bindir and spec.executables below) - *enumerate_package_files.call("lib"), - # Executables and executable support scripts - *enumerate_package_files.call("exe"), - # Public certs for gem signing - *enumerate_package_files.call("certs"), - # Signatures - *enumerate_package_files.call("sig") - ] - end - RUBY - destination = <<~RUBY - Gem::Specification.new do |spec| - spec.name = "example" - enumerate_package_files = lambda do |root| - Dir.glob(File.join(root, "**", "*"), File::FNM_DOTMATCH).select do |path| - File.file?(path) && ![".", ".."].include?(File.basename(path)) - end - end - - # Specify which files are part of the released package. - spec.files = [ - # Code / tasks / data (NOTE: exe/ is specified via spec.bindir and spec.executables below) - *enumerate_package_files.call('lib'), - # Executables and executable support scripts - *enumerate_package_files.call('exe'), - # Public certs for gem signing - *enumerate_package_files.call('certs'), - # Signatures - *enumerate_package_files.call('sig') - ] - end - RUBY - - merged = described_class.merge_gemspec_template_source(template, destination, facts: {package: {name: "example"}}) - - expect(Prism.parse(merged)).to be_success - expect(merged.scan(/^\s*spec\.files\s*=/).size).to eq(1) - expect(merged).to include('"LICENSE.md"') - expect(merged).to include('"MIT.md"') - lib_splat_index = merged =~ /\*enumerate_package_files\.call\(["']lib["']\)/ - expect(lib_splat_index).not_to be_nil - expect(merged.index('"MIT.md"')).to be < lib_splat_index - expect(merged).to match(/^\s*\*enumerate_package_files\.call\(["']sig["']\)\n/) - expect(merged.scan(/\*enumerate_package_files\.call\(["']lib["']\)/).size).to eq(1) - end - - it "supports the generated Dir plus Array gemspec files assignment shape" do - template = <<~RUBY - Gem::Specification.new do |spec| - spec.name = "example" - # Specify which files are part of the released package. - spec.files = [ - # Root license files - "LICENSE.md", - "MIT.md", - # Code / tasks / data (NOTE: exe/ is specified via spec.bindir and spec.executables below) - *enumerate_package_files.call("lib"), - # Executables and executable support scripts - *enumerate_package_files.call("exe"), - # Public certs for gem signing - *enumerate_package_files.call("certs"), - # Signatures - *enumerate_package_files.call("sig") - ] - end - RUBY - destination = <<~RUBY - Gem::Specification.new do |spec| - spec.name = "example" - enumerate_package_files = lambda do |root| - Dir.glob(File.join(root, "**", "*"), File::FNM_DOTMATCH).select do |path| - File.file?(path) && ![".", ".."].include?(File.basename(path)) - end - end - - # Specify which files are part of the released package. - spec.files = Dir[ - # Splats (alphabetical) - "lib/**/*.rb" - ] + [ - # Code / tasks / data (NOTE: exe/ is specified via spec.bindir and spec.executables below) - *enumerate_package_files.call("lib"), - # Executables and executable support scripts - *enumerate_package_files.call("exe"), - # Public certs for gem signing - *enumerate_package_files.call("certs"), - # Signatures - *enumerate_package_files.call("sig") - ] - end - RUBY - - merged = described_class.merge_gemspec_template_source(template, destination, facts: {package: {name: "example"}}) - - expect(Prism.parse(merged)).to be_success - expect(merged).to include("spec.files = Dir[") - expect(merged).to include("] + [") - expect(merged).to include('"lib/**/*.rb"') - expect(merged).to include('"MIT.md"') - expect(merged.index('"lib/**/*.rb"')).to be < merged.index("] + [") - expect(merged.index('"MIT.md"')).to be > merged.index("] + [") - expect(merged.scan('*enumerate_package_files.call("lib")').size).to eq(1) - expect(merged.scan("spec.files =").size).to eq(1) - end - - it "projects README top logo template tokens" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-readme-logo-token-slice", tmp_root) do |root| - write_tree(root, { - "example-gem.gemspec" => <<~RUBY, - Gem::Specification.new do |spec| - spec.name = "example-gem" - spec.summary = "Example gem" - spec.metadata["source_code_uri"] = "https://github.com/acme/example-gem" - end - RUBY - ".kettle-jem.yml" => <<~YAML, - templates: - root: template - apply: true - entries: - - README.md - YAML - "template/README.md.example" => <<~MARKDOWN - Row: - {KJ|README:TOP_LOGO_ROW} - Synopsis: - {KJ|README:H2_SYNOPSIS_LOGO_ROW} - Refs: - {KJ|README:TOP_LOGO_REFS} - MARKDOWN - }) - - plan = described_class.plan_project(root, env: {}) - template_report = plan[:recipe_reports].find do |report| - report.fetch(:recipe_name) == "template_source_application_README_md" - end - final_content = template_report.fetch(:final_content) - expect(final_content).to include("Galtzo FLOSS Logo") - expect(final_content).to include("ruby-lang Logo") - expect(final_content).to include(%(
        acme Logo by Aboling0, CC BY-SA 4.0)) - expect(final_content).to include(%(example-gem Logo by Aboling0, CC BY-SA 4.0)) - expect(final_content).to include(%(Galtzo FLOSS Logo by Aboling0, CC BY-SA 4.0)) - expect(final_content).to include(%(ruby-lang Logo, Yukihiro Matsumoto, Ruby Visual Identity Team, CC BY-SA 2.5)) - expect(final_content).not_to include("[🖼️acme-example-gem]:") - expect(template_report.dig(:metadata, :template_tokens)).to include( - "KJ|README:TOP_LOGO_REFS" => "", - "KJ|README:TOP_LOGO_ROW" => a_string_including("example-gem Logo by Aboling0"), - "KJ|README:H2_SYNOPSIS_LOGO_ROW" => a_string_including("ruby-lang Logo") - ) - end - end - - it "allows README logo options to override rendered widths" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-readme-logo-width-token-slice", tmp_root) do |root| - write_tree(root, { - "example-gem.gemspec" => <<~RUBY, - Gem::Specification.new do |spec| - spec.name = "example-gem" - spec.summary = "Example gem" - spec.metadata["source_code_uri"] = "https://github.com/acme/example-gem" - end - RUBY - ".kettle-jem.yml" => <<~YAML, - readme: - top_logos: org|96px - h2_synopsis_logos: ruby|12% - templates: - root: template - apply: true - entries: - - README.md - YAML - "template/README.md.example" => <<~MARKDOWN - Row: - {KJ|README:TOP_LOGO_ROW} - Synopsis: - {KJ|README:H2_SYNOPSIS_LOGO_ROW} - MARKDOWN - }) - - plan = described_class.plan_project(root, env: {}) - template_report = plan[:recipe_reports].find do |report| - report.fetch(:recipe_name) == "template_source_application_README_md" - end - final_content = template_report.fetch(:final_content) - - expect(final_content).to include(%(acme Logo by Aboling0, CC BY-SA 4.0)) - expect(final_content).to include(%(ruby-lang Logo, Yukihiro Matsumoto, Ruby Visual Identity Team, CC BY-SA 2.5)) - end - end - - it "renders configured corporate sponsor logos near the top of README" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-readme-sponsor-token-slice", tmp_root) do |root| - write_tree(root, { - "example-gem.gemspec" => <<~RUBY, - Gem::Specification.new do |spec| - spec.name = "example-gem" - spec.summary = "Example gem" - spec.metadata["source_code_uri"] = "https://github.com/acme/example-gem" - end - RUBY - ".kettle-jem.yml" => <<~YAML, - readme: - corporate_sponsors: - - name: Example & Sons - url: https://example.com/sponsor?from=kettle&level=gold - img_src: https://example.com/logo.svg?badge=1&size=small - templates: - root: template - apply: true - entries: - - README.md - YAML - "template/README.md.example" => <<~MARKDOWN - Top funding row. - {KJ|README:CORPORATE_SPONSORS} - - ## 🦷 FLOSS Funding - MARKDOWN - }) - - plan = described_class.plan_project(root, env: {}) - template_report = plan[:recipe_reports].find do |report| - report.fetch(:recipe_name) == "template_source_application_README_md" - end - final_content = template_report.fetch(:final_content) - expected_sponsor_row = [ - %(

        Corporate sponsor: ), - %(Example & Sons), - %( Become a sponsor

        ) - ].join - - expect(final_content).to include(expected_sponsor_row) - expect(template_report.dig(:metadata, :template_tokens)).to include( - "KJ|README:CORPORATE_SPONSORS" => a_string_including("Corporate sponsor:") - ) - end - end - - it "renders corporate sponsors inherited from kettle-family environment" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-readme-family-sponsor-token-slice", tmp_root) do |root| - sponsors_json = JSON.generate([ - { - "name" => "Family Sponsor", - "url" => "https://family.example", - "img_src" => "https://family.example/logo.svg" - } - ]) - write_tree(root, { - "example-gem.gemspec" => <<~RUBY, - Gem::Specification.new do |spec| - spec.name = "example-gem" - spec.summary = "Example gem" - spec.metadata["source_code_uri"] = "https://github.com/acme/example-gem" - end - RUBY - ".kettle-jem.yml" => <<~YAML, - templates: - root: template - apply: true - entries: - - README.md - YAML - "template/README.md.example" => "{KJ|README:CORPORATE_SPONSORS}\n" - }) - - plan = described_class.plan_project( - root, - env: {"KETTLE_JEM_CORPORATE_SPONSORS_JSON" => sponsors_json} - ) - template_report = plan[:recipe_reports].find do |report| - report.fetch(:recipe_name) == "template_source_application_README_md" - end - - expect(template_report.fetch(:final_content)).to include( - %(Family Sponsor) - ) - expect(plan.dig(:facts, :readme_sponsors, :entries)).to eq([ - { - name: "Family Sponsor", - url: "https://family.example", - img_src: "https://family.example/logo.svg" - } - ]) - end - end - - it "keeps generated Synopsis H2 logo HTML when normalizing existing README headings and prunes stale logo refs" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-readme-synopsis-logo-merge-slice", tmp_root) do |root| - write_tree(root, { - "example-gem.gemspec" => <<~RUBY, - Gem::Specification.new do |spec| - spec.name = "example-gem" - spec.summary = "Example gem" - spec.metadata["source_code_uri"] = "https://github.com/acme/example-gem" - end - RUBY - ".kettle-jem.yml" => <<~YAML, - project_emoji: "🫖" - readme: - top_logos: org - h2_synopsis_logos: related-org,ruby - templates: - root: template - apply: true - entries: - - README.md - YAML - "README.md" => <<~MARKDOWN, - [🖼️galtzo-floss]: https://discord.gg/3qme4XHNKN - [🖼️ruby-lang]: https://ruby-toolbox.com - - # Old Title - - ## 🌻 Synopsis - - Existing synopsis. - MARKDOWN - "template/README.md.example" => <<~MARKDOWN - {KJ|README:TOP_LOGO_ROW} - - {KJ|README:TOP_LOGO_REFS} - - # {KJ|PROJECT_EMOJI} {KJ|NAMESPACE} - - ## 🌻 Synopsis {KJ|README:H2_SYNOPSIS_LOGO_ROW} - MARKDOWN - }) - - apply = described_class.apply_project(root, env: {}, run_options: {skip_commit: true}) - report = apply.fetch(:recipe_reports).find { |candidate| candidate.fetch(:relative_path) == "README.md" } - final_content = report.fetch(:final_content) - - expect(final_content).to include("# 🫖 Example::Gem\n") - expect(final_content).to include("## 🌻 Synopsis ruby-lang Logo,))
-      expect(final_content).not_to include( <<~RUBY, - Gem::Specification.new do |spec| - spec.name = "kettle-jem" - spec.summary = "Kettle gem templater" - spec.metadata["source_code_uri"] = "https://github.com/structuredmerge/kettle-jem" - end - RUBY - ".kettle-jem.yml" => <<~YAML, - readme: - top_logos: project - templates: - root: template - apply: true - entries: - - README.md - YAML - "template/README.md.example" => <<~MARKDOWN - Row: - {KJ|README:TOP_LOGO_ROW} - Refs: - {KJ|README:TOP_LOGO_REFS} - MARKDOWN - }) - expect(system("git", "-C", root, "init", "-q")).to be(true) - expect(system("git", "-C", root, "remote", "add", "origin", "git@github.com:structuredmerge/structuredmerge-ruby.git")).to be(true) - - plan = described_class.plan_project( - gem_root, - env: { - "KETTLE_JEM_TEMPLATE_PROFILE" => "full", - "KJ_REPOSITORY_TOPOLOGY" => "monorepo-subproject" - } - ) - expect(plan.dig(:facts, :template_profile)).to eq("full") - expect(plan.dig(:facts, :repository, :mode)).to eq("monorepo_subproject") - expect(plan.dig(:facts, :readme_logo, :top_logo_row)).to include("structuredmerge/structuredmerge-ruby/kettle-jem/avatar-128px.svg") - expect(plan.dig(:facts, :readme_logo, :top_logo_refs).to_s).to eq("") - end - end - - it "does not invent a gems path for a monorepo topology when the project is the git root" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-readme-root-monorepo-topology-slice", tmp_root) do |root| - write_tree(root, { - "nomono.gemspec" => <<~RUBY, - Gem::Specification.new do |spec| - spec.name = "nomono" - spec.summary = "Bundler path helper" - spec.metadata["source_code_uri"] = "https://github.com/kettle-dev/nomono" - end - RUBY - ".kettle-jem.yml" => <<~YAML - repository: - topology: monorepo-subproject - templates: - root: template - apply: true - profile: full - entries: - - README.md - YAML - }) - expect(system("git", "-C", root, "init", "-q")).to be(true) - expect(system("git", "-C", root, "remote", "add", "origin", "git@github.com:kettle-dev/nomono.git")).to be(true) - - repository = described_class.send( - :repository_facts, - root, - "https://github.com/kettle-dev/nomono", - package_name: "nomono", - repository_topology: "monorepo-subproject" - ) - tokens = described_class.send(:readme_url_template_tokens, repository, "nomono", "kettle-rb") - - expect(repository[:mode]).to eq("monorepo_subproject") - expect(repository).not_to have_key(:package_path) - expect(tokens.fetch("KJ|README:GL_PACKAGE_SOURCE_URL")).to eq("https://gitlab.com/kettle-dev/nomono") - expect(tokens.fetch("KJ|README:CB_PACKAGE_SOURCE_URL")).to eq("https://codeberg.org/kettle-dev/nomono") - expect(tokens.fetch("KJ|README:GH_PACKAGE_SOURCE_URL")).to eq("https://github.com/kettle-dev/nomono") - expect(tokens.values_at( - "KJ|README:GL_PACKAGE_SOURCE_URL", - "KJ|README:CB_PACKAGE_SOURCE_URL", - "KJ|README:GH_PACKAGE_SOURCE_URL" - ).join("\n")).not_to include("/gems/nomono") - end - end - - it "projects README logo row entries from named logo options" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-readme-named-logo-options-slice", tmp_root) do |root| - write_tree(root, { - "example-gem.gemspec" => <<~RUBY, - Gem::Specification.new do |spec| - spec.name = "example-gem" - spec.summary = "Example gem" - spec.metadata["source_code_uri"] = "https://github.com/acme/example-gem" - end - RUBY - ".kettle-jem.yml" => <<~YAML, - readme: - top_logos: related-org,ruby,org,project,unknown - templates: - root: template - apply: true - entries: - - README.md - YAML - "template/README.md.example" => <<~MARKDOWN - Row: - {KJ|README:TOP_LOGO_ROW} - Synopsis: - {KJ|README:H2_SYNOPSIS_LOGO_ROW} - Refs: - {KJ|README:TOP_LOGO_REFS} - MARKDOWN - }) - - plan = described_class.plan_project(root, env: {}) - template_report = plan[:recipe_reports].find do |report| - report.fetch(:recipe_name) == "template_source_application_README_md" - end - final_content = template_report.fetch(:final_content) - expect(final_content).to include(%(Galtzo FLOSS Logo by Aboling0, CC BY-SA 4.0)) - expect(final_content).to include(%(ruby-lang Logo, Yukihiro Matsumoto, Ruby Visual Identity Team, CC BY-SA 2.5)) - expect(final_content).to include(%(acme Logo by Aboling0, CC BY-SA 4.0)) - expect(final_content).to include(%(example-gem Logo by Aboling0, CC BY-SA 4.0)) - expect(final_content).not_to include("[🖼️galtzo-floss]:") - expect(final_content).not_to include("[🖼️acme-example-gem]:") - expect(final_content).not_to include("unknown") - end - end - - it "deduplicates README logos by asset while preserving the related-org link" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-readme-duplicate-logo-assets-slice", tmp_root) do |root| - write_tree(root, { - "turbo_tests2.gemspec" => <<~RUBY, - Gem::Specification.new do |spec| - spec.name = "turbo_tests2" - spec.summary = "Turbo tests" - spec.metadata["source_code_uri"] = "https://github.com/galtzo-floss/turbo_tests2" - end - RUBY - ".kettle-jem.yml" => <<~YAML, - readme: - top_logos: related-org,ruby,org,project - templates: - root: template - apply: true - entries: - - README.md - YAML - "template/README.md.example" => <<~MARKDOWN - Row: - {KJ|README:TOP_LOGO_ROW} - Synopsis: - {KJ|README:H2_SYNOPSIS_LOGO_ROW} - Refs: - {KJ|README:TOP_LOGO_REFS} - MARKDOWN - }) - - plan = described_class.plan_project(root, env: {}) - template_report = plan[:recipe_reports].find do |report| - report.fetch(:recipe_name) == "template_source_application_README_md" - end - final_content = template_report.fetch(:final_content) - expect(final_content).not_to include("[🖼️galtzo-floss]:") - expect(final_content).not_to include("[🖼️galtzo-floss]: https://github.com/galtzo-floss") - expect(final_content.scan("galtzo-floss/avatar-128px.svg").length).to eq(2) - expect(final_content).to include(%(turbo_tests2 Logo by Aboling0, CC BY-SA 4.0)) - end - end - - it "maps legacy README top logo modes to named logo options" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-readme-legacy-logo-mode-slice", tmp_root) do |root| - write_tree(root, { - "example-gem.gemspec" => <<~RUBY, - Gem::Specification.new do |spec| - spec.name = "example-gem" - spec.summary = "Example gem" - spec.metadata["source_code_uri"] = "https://github.com/acme/example-gem" - end - RUBY - ".kettle-jem.yml" => <<~YAML, - readme: - top_logo_mode: org - templates: - root: template - apply: true - entries: - - README.md - YAML - "template/README.md.example" => <<~MARKDOWN - Row: - {KJ|README:TOP_LOGO_ROW} - Synopsis: - {KJ|README:H2_SYNOPSIS_LOGO_ROW} - MARKDOWN - }) - - plan = described_class.plan_project(root, env: {}) - template_report = plan[:recipe_reports].find do |report| - report.fetch(:recipe_name) == "template_source_application_README_md" - end - final_content = template_report.fetch(:final_content) - expect(final_content).to include("Galtzo FLOSS Logo") - expect(final_content).to include("ruby-lang Logo") - expect(final_content).to include("acme Logo") - expect(final_content).not_to include("example-gem Logo") - end - end - - it "projects configured README logo row entries by normalized logo type" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-readme-typed-logo-slice", tmp_root) do |root| - write_tree(root, { - "example-gem.gemspec" => <<~RUBY, - Gem::Specification.new do |spec| - spec.name = "example-gem" - spec.summary = "Example gem" - spec.metadata["source_code_uri"] = "https://github.com/acme/example-gem" - end - RUBY - ".kettle-jem.yml" => <<~YAML, - readme: - logo_row: - enabled: true - logos: - - type: language - slug: ruby-lang - alt: Ruby language logo - - type: org - slug: acme - alt: Acme org logo - - type: affiliated_project - slug: tree-sitter/tree-sitter - alt: Tree-sitter project logo - - type: project - slug: acme/ignored - alt: Ignored fourth logo - templates: - root: template - apply: true - entries: - - README.md - YAML - "template/README.md.example" => <<~MARKDOWN - Row: - {KJ|README:TOP_LOGO_ROW} - Refs: - {KJ|README:TOP_LOGO_REFS} - MARKDOWN - }) - - plan = described_class.plan_project(root, env: {}) - template_report = plan[:recipe_reports].find do |report| - report.fetch(:recipe_name) == "template_source_application_README_md" - end - final_content = template_report.fetch(:final_content) - expect(final_content).to include(%(Ruby language Logo, Yukihiro Matsumoto, Ruby Visual Identity Team, CC BY-SA 2.5)) - expect(final_content).to include(%(Acme org Logo by Aboling0, CC BY-SA 4.0)) - expect(final_content).to include(%(Tree-sitter project Logo by Aboling0, CC BY-SA 4.0)) - expect(final_content).to include(%(Ignored fourth Logo by Aboling0, CC BY-SA 4.0)) - end - end - - it "fails fast when template application leaves unresolved tokens" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-template-unresolved-slice", tmp_root) do |root| - write_tree(root, { - "example.gemspec" => <<~RUBY, - Gem::Specification.new do |spec| - spec.name = "example" - spec.summary = "Example gem" - end - RUBY - ".kettle-jem.yml" => <<~YAML, - templates: - root: template - apply: true - entries: - - README.md - YAML - "template/README.md.example" => <<~MARKDOWN - # {KJ|UNKNOWN} - MARKDOWN - }) - - expect do - described_class.plan_project(root, env: {}) - end.to raise_error(ArgumentError, /unresolved kettle-jem template tokens: \{KJ\|UNKNOWN\}/) - end - end - - it "reports template checksum drift" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-checksum-drift-slice", tmp_root) do |root| - write_tree(root, { - "templates/README.md.example" => "# Example\n", - "templates/.github/FUNDING.yml.example" => "github: [example]\n", - ".kettle-jem.yml" => <<~YAML - project: example - - kettle-jem: - version: "0.1.0" - checksums: - "README.md.example": "old" - "removed.md.example": "gone" - YAML - }) - - current = described_class::TemplateChecksums.compute(template_root: File.join(root, "templates")) - stored = described_class::TemplateChecksums.load_stored(config_path: File.join(root, ".kettle-jem.yml")) - drift = described_class::TemplateChecksums.diff(current: current, stored: stored) - - expect(current.keys).to eq([".github/FUNDING.yml.example", "README.md.example"]) - expect(drift).to eq( - added: [".github/FUNDING.yml.example"], - changed: ["README.md.example"], - removed: ["removed.md.example"] - ) - expect(described_class::TemplateChecksums.diff_count(drift)).to eq(3) - expect(described_class::TemplateChecksums.summary(drift)).to eq( - "3 template file(s) since last run: 1 added, 1 changed, 1 removed" - ) - expect(described_class::TemplateChecksums.detail_lines(drift)).to eq([ - " + .github/FUNDING.yml.example", - " ~ README.md.example", - " - removed.md.example" - ]) - - described_class::TemplateChecksums.write_to_config( - config_path: File.join(root, ".kettle-jem.yml"), - checksums: current, - version: "1.2.3" - ) - rewritten = YAML.safe_load_file(File.join(root, ".kettle-jem.yml")) - expect(rewritten.fetch("kettle-jem").fetch("version")).to eq("1.2.3") - expect(rewritten.fetch("kettle-jem").fetch("checksums")).to eq(current) - end - end - - it "reports duplicate drift during template apply runs" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-duplicate-drift-apply", tmp_root) do |root| - write_tree(root, { - "example.gemspec" => <<~RUBY, - Gem::Specification.new do |spec| - spec.name = "example" - spec.summary = "Example" - end - RUBY - ".kettle-jem.yml" => <<~YAML, - templates: - root: template - apply: true - entries: - - README.md - YAML - "template/README.md.example" => "# Example\n" - }) - calls = [] - runner = lambda do |project_root:, template_dir:| - calls << {project_root: project_root, template_dir: template_dir} - { - warning_count: 1, - json_path: File.join(project_root, "tmp", "kettle-jem", "dup-check.json"), - lock_path: File.join(project_root, ".kettle-drift.lock"), - exit_code: 1 - } - end - - apply = described_class.apply_project(root, env: {}, run_options: {duplicate_drift_runner: runner}) - - expect(calls).to eq([{project_root: root, template_dir: File.join(root, "template")}]) - expect(apply.fetch(:duplicate_drift)).to include( - available: true, - warning_count: 1, - json_path: File.join(root, "tmp", "kettle-jem", "dup-check.json"), - lock_path: File.join(root, ".kettle-drift.lock"), - exit_code: 1 - ) - end - end - - it "exposes template root and manifest metadata for adjacent tools" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-template-manifest", tmp_root) do |root| - write_tree(root, { - "template/README.md.example" => "# Example\n", - "example.gemspec" => <<~RUBY - Gem::Specification.new do |spec| - spec.name = "example" - spec.summary = "Example gem" - end - RUBY - }) - - expect(described_class.packaged_template_root).to eq(described_class::PACKAGED_TEMPLATE_ROOT) - expect(described_class.template_root_path(root)).to eq(File.join(root, "template")) - - manifest = described_class.template_manifest(project_root: root) - expect(manifest).to include( - kind: "kettle_jem_template_manifest", - version: 1, - template_root: File.join(root, "template") - ) - expect(manifest.fetch(:checksums).keys).to eq(["README.md.example"]) - end - end - - it "renders self-test and templating diagnostics reports" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-self-test-report-slice", tmp_root) do |root| - before = File.join(root, "before") - after = File.join(root, "after") - write_tree(before, { - "same.txt" => "same\n", - "changed.txt" => "before\n", - "removed.txt" => "removed\n" - }) - write_tree(after, { - "same.txt" => "same\n", - "changed.txt" => "after\n", - "added.txt" => "added\n" - }) - - comparison = described_class::SelfTest::Manifest.compare( - described_class::SelfTest::Manifest.generate(before), - described_class::SelfTest::Manifest.generate(after) - ).merge(skipped: ["lib/internal.rb"]) - expect(comparison).to include( - matched: ["same.txt"], - changed: ["changed.txt"], - added: ["added.txt"], - removed: ["removed.txt"], - skipped: ["lib/internal.rb"] - ) - - snapshot = { - workspace_root: root, - kettle_jem: { - name: "kettle-jem", - version: "1.2.3", - path: File.join(root, "installed", "kettle-jem"), - local_path: false, - loaded: true - }, - merge_gems: [ - { - name: "ast-merge", - version: "2.0.0", - path: File.join(root, "ast-merge"), - local_path: true, - loaded: true - }, - { - name: "json-merge", - version: nil, - path: nil, - local_path: false, - loaded: false - } - ] - } - - self_test_report = described_class::SelfTest::Reporter.summary( - comparison, - output_dir: File.join(root, "output"), - templating_environment: snapshot, - diff_count: 1, - now: Time.utc(2026, 5, 14, 12, 0, 0) - ) - expect(self_test_report).to include("**Score**: 25.0% (1/4 files unchanged)") - expect(self_test_report).to include("**Divergence**: 75.0% (3/4 files changed, added, or missing)") - expect(self_test_report).to include("## Changed Files (1)") - expect(self_test_report).to include("## New Files (1)") - expect(self_test_report).to include("## Not Templated - Unexpected (1)") - expect(self_test_report).to include("Not Templated (1 files) - source-only files not produced by the template task") - expect(self_test_report).to include("| ast-merge | 2.0.0 | local path |") - expect(self_test_report).to include("| json-merge | _not loaded_ | not loaded |") - - run_report = described_class::TemplatingReport.render_markdown( - project_root: root, - snapshot: snapshot, - run_started_at: Time.utc(2026, 5, 14, 12, 0, 0), - finished_at: Time.utc(2026, 5, 14, 12, 1, 0), - status: "failed", - warnings: ["missing service", "missing service"], - error: RuntimeError.new("boom"), - template_diff: {added: ["new.md"], changed: ["README.md"], removed: ["old.md"]}, - template_commit_sha: "abc123" - ) - expect(run_report).to include("# kettle-jem Templating Run Report") - expect(run_report).to include("**Status**: `failed`") - expect(run_report).to include("**Template commit**: `abc123`") - expect(run_report.scan("- missing service").length).to eq(1) - expect(run_report).to include("## Template File Changes") - expect(run_report).to include("3 template file(s) since last run: 1 added, 1 changed, 1 removed") - expect(run_report).to include("RuntimeError: boom") - end - end - - it "derives run stats from recipe reports" do - stats = described_class.recipe_run_stats( - [ - {changed: true, metadata: {destination_existed: false}}, - {changed: true, metadata: {destination_existed: true}}, - {changed: false, metadata: {destination_existed: true}}, - {changed: true, metadata: {delete_file: true, destination_existed: true}} - ], - diagnostics: [ - {kind: "plugin_file_change", path: "PLUGIN.md", action: "replace"} - ] - ) - - expect(stats).to eq( - recipes: 4, - created: 1, - pre_existing: 2, - identical: 1, - changed: 1, - deleted: 1, - plugin_file_changes: 1, - summary: "recipes 4 created 1 pre_existing 2 identical 1 changed 1 deleted 1 plugin_file_changes 1" - ) - end - - it "reports the Kettle/Jem non-interactive decision policy and recipe defaults" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-decision-policy", tmp_root) do |root| - write_tree(root, { - "example.gemspec" => <<~RUBY, - Gem::Specification.new do |spec| - spec.name = "example" - spec.summary = "Example gem" - spec.required_ruby_version = ">= 3.2" - end - RUBY - ".kettle-jem.yml" => <<~YAML, - templates: - root: templates - apply: true - entries: - - README.md - YAML - "templates/README.md.example" => "# Example\n\nTemplate README.\n", - "README.md" => "# Example\n\nDestination README.\n" - }) - - plan = described_class.plan_project(root, env: {"force" => "true"}) - expect(plan.fetch(:decision_policy)).to include( - mode: "accept", - non_interactive: true, - accept: true, - interactive: false, - failure_mode: "error" - ) - readme_decision = plan.fetch(:decision_evaluations).find do |decision| - decision.fetch(:id) == "recipe:template_source_application_README_md" - end - expect(readme_decision).to include( - category: "apply_template_source", - file: "README.md", - default_action: "replace", - selected_action: "replace", - source: "default", - severity: "advisory", - blocking: false - ) - expect(readme_decision.fetch(:diagnostics)).to include( - "Non-interactive runs apply the configured template source default and report the decision." - ) - - apply = described_class.apply_project(root, env: {"force" => "false"}) - expect(apply.fetch(:decision_policy)).to include( - mode: "interactive", - non_interactive: false, - accept: false, - interactive: true - ) - expect(apply.fetch(:decision_evaluations).map { |decision| decision.fetch(:selected_action) }).to include("replace") - interactive_readme_decision = apply.fetch(:decision_evaluations).find do |decision| - decision.fetch(:id) == "recipe:template_source_application_README_md" - end - expect(interactive_readme_decision).to include( - source: "interactive_default", - prompt_required: true - ) - expect(interactive_readme_decision.fetch(:prompt)).to include( - id: "recipe:template_source_application_README_md", - category: "apply_template_source", - file: "README.md", - default_action: "replace", - choices: include("create", "replace", "keep", "skip") - ) - expect(apply.fetch(:prompt_requests)).to include(interactive_readme_decision.fetch(:prompt)) - expect(interactive_readme_decision.fetch(:diagnostics)).to include( - "Interactive prompt transport is active; selected the configured default pending an external response." - ) - - File.write(File.join(root, "README.md"), "# Example\n\nDestination README.\n") - answered_apply = described_class.apply_project( - root, - env: {}, - run_options: { - interactive: true, - prompt_answers: { - "recipe:readme_metadata" => "keep", - "recipe:template_source_application_README_md" => "keep" - } - } - ) - answered_decision = answered_apply.fetch(:decision_evaluations).find do |decision| - decision.fetch(:id) == "recipe:template_source_application_README_md" - end - expect(answered_apply.fetch(:decision_policy)).to include( - mode: "interactive", - prompt_answers: { - "recipe:readme_metadata" => "keep", - "recipe:template_source_application_README_md" => "keep" - } - ) - expect(answered_decision).to include( - selected_action: "keep", - source: "interactive_answer", - prompt_required: true - ) - expect(answered_decision.fetch(:diagnostics)).to include( - "Interactive prompt answer supplied through the shared decision policy input contract." - ) - expect(answered_apply.fetch(:changed_files)).not_to include("README.md") - expect(File.read(File.join(root, "README.md"))).to eq("# Example\n\nDestination README.\n") - end - end - - it "hard-fails decision evaluation only when no fatal default is available" do - policy = described_class::DecisionPolicy.from_env({"force" => "true"}) - expect do - policy.resolve( - id: "parser:README.md", - category: "parse", - file: "README.md", - default_action: nil, - severity: :fatal - ) - end.to raise_error(Kettle::Jem::Error, /No safe default decision/) - end - - it "reports git preflight state and lets skip-commit bypass clean-worktree enforcement" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-git-preflight", tmp_root) do |root| - write_tree(root, { - "example.gemspec" => <<~RUBY - Gem::Specification.new do |spec| - spec.name = "example" - spec.summary = "Example gem" - spec.required_ruby_version = ">= 4.0" - end - RUBY - }) - expect(system("git", "-C", root, "init", "-q")).to be(true) - - expect do - described_class.plan_project(root, env: {"KETTLE_JEM_REQUIRE_CLEAN" => "true"}) - end.to raise_error(Kettle::Jem::Error, /worktree is not clean/) - - plan = described_class.plan_project(root, env: { - "KETTLE_JEM_REQUIRE_CLEAN" => "true", - "KETTLE_JEM_SKIP_COMMIT" => "true" - }) - expect(plan.fetch(:template_selection)).to include(skip_commit: true) - expect(plan.fetch(:git_preflight)).to include( - git_repository: true, - clean_worktree: false, - skip_commit: true - ) - expect(plan.fetch(:git_preflight).fetch(:dirty_entries)).not_to be_empty - end - end - - it "loads configured plugins and runs apply-time phase hooks" do - plugin_module = Module.new do - class << self - def register_kettle_jem_plugin(registrar) - registrar.before_phase(:github_workflows) do |context:, phase:, **| - path = File.join(context.project_root, ".github/FUNDING.yml") - context.out.report_detail("before #{phase}: funding exists=#{File.exist?(path)}") - end - - registrar.after_phase(:github_workflows) do |context:, phase:, **| - path = File.join(context.project_root, ".github/FUNDING.yml") - context.out.report_detail("after #{phase}: funding exists=#{File.exist?(path)}") - end - - registrar.after_phase(:remaining_files) do |context:, phase:, phase_stats:, plugin_name:, **| - path = File.join(context.project_root, "PLUGIN.md") - File.write(path, "plugin=#{plugin_name}; phase=#{phase}; recipes=#{phase_stats.fetch(:recipe_count)}\n") - context.helpers.record_template_result(path, :replace) - context.out.report_detail("plugin hook ran") - end - end - end - end - stub_const("Example::Plugin", plugin_module) - allow(described_class::PluginLoader).to receive(:require).with("example/plugin").and_return(true) - - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-plugin-lifecycle", tmp_root) do |root| - write_tree(root, { - "example.gemspec" => <<~RUBY, - Gem::Specification.new do |spec| - spec.name = "example" - spec.summary = "Example gem" - spec.required_ruby_version = ">= 3.2" - end - RUBY - ".kettle-jem.yml" => <<~YAML - plugins: - - example-plugin - YAML - }) - - plan = described_class.plan_project(root, env: {}) - expect(File.exist?(File.join(root, "PLUGIN.md"))).to be(false) - plan_lifecycle = plan.fetch(:diagnostics).find { |diagnostic| diagnostic[:kind] == "plugin_lifecycle" } - expect(plan_lifecycle).to include( - loaded_plugins: ["example-plugin"], - callbacks_run: false - ) - expect(plan_lifecycle.fetch(:active_runner_phases)).to be_empty - expect(plan.fetch(:phase_reports).map { |phase_report| phase_report.fetch(:phase) }).to include( - "github_workflows", - "remaining_files" - ) - github_phase = plan.fetch(:phase_reports).find { |phase_report| phase_report.fetch(:phase) == "github_workflows" } - expect(github_phase.fetch(:changed_files)).to include(".github/FUNDING.yml") - expect(plan.fetch(:run_stats).fetch(:plugin_file_changes)).to eq(0) - - apply = described_class.apply_project(root, env: {}) - expect(apply.fetch(:diagnostics)).to include( - kind: "plugin_detail", - message: "before github_workflows: funding exists=false" - ) - expect(apply.fetch(:diagnostics)).to include( - kind: "plugin_detail", - message: "after github_workflows: funding exists=true" - ) - expect(File.read(File.join(root, "PLUGIN.md"))).to include("plugin=example-plugin; phase=remaining_files; recipes=") - expect(apply.fetch(:changed_files)).to include("PLUGIN.md") - expect(apply.fetch(:run_stats).fetch(:plugin_file_changes)).to eq(1) - expect(apply.fetch(:diagnostics)).to include( - kind: "plugin_file_change", - path: "PLUGIN.md", - action: "replace" - ) - expect(apply.fetch(:diagnostics)).to include( - kind: "plugin_detail", - message: "plugin hook ran" - ) - apply_lifecycle = apply.fetch(:diagnostics).reverse.find { |diagnostic| diagnostic[:kind] == "plugin_lifecycle" } - expect(apply_lifecycle).to include( - loaded_plugins: ["example-plugin"], - callbacks_run: true - ) - expect(apply_lifecycle.fetch(:active_runner_phases)).to eq(described_class::PHASE_ORDER.map(&:to_s)) - expect(apply_lifecycle.fetch(:registered_hooks)).to contain_exactly( - { - plugin_name: "example-plugin", - phase: "github_workflows", - timing: "before" - }, - { - plugin_name: "example-plugin", - phase: "github_workflows", - timing: "after" - }, - { - plugin_name: "example-plugin", - phase: "remaining_files", - timing: "after" - } - ) - end - end - - it "keeps direct sibling runtime dependencies available during lockfile normalization" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-install-direct-sibling-lock-env", tmp_root) do |workspace| - root = File.join(workspace, "adapter") - sibling = File.join(workspace, "shared-core") - FileUtils.mkdir_p([root, sibling]) - write_tree(sibling, { - "shared-core.gemspec" => <<~RUBY - Gem::Specification.new do |spec| - spec.name = "shared-core" - spec.version = "0.1.0" - spec.summary = "Shared core" - end - RUBY - }) - write_tree(root, { - "Gemfile" => "source \"https://gem.coop\"\n", - "Gemfile.lock" => <<~LOCK, - GEM - remote: https://gem.coop/ - specs: - - PLATFORMS - ruby - - DEPENDENCIES - - BUNDLED WITH - 4.0.10 - LOCK - "adapter.gemspec" => <<~RUBY, - Gem::Specification.new do |spec| - spec.name = "adapter" - spec.version = "0.1.0" - spec.summary = "Adapter" - spec.homepage = "https://github.com/rubythems/adapter" - spec.metadata["source_code_uri"] = "https://github.com/rubythems/adapter" - spec.add_dependency "shared-core", "= 0.1.0" - end - RUBY - ".kettle-jem.yml" => <<~YAML - templates: - root: packaged - apply: true - entries: - - bin/setup - YAML - }) - - commands = [] - command_runner = lambda do |command, chdir:, env:, quiet:| - commands << {command: command, chdir: chdir, env: env, quiet: quiet} - {success: true, exitstatus: 0, stdout: "", stderr: ""} - end - - Kettle::Jem::Tasks::InstallTask.run( - project_root: root, - env: {"K_JEM_TEMPLATING" => "true"}, - run_options: {only: "bin/setup", skip_commit: true}, - command_runner: command_runner - ) - - lock_command = commands.find { |entry| entry.fetch(:command) == %w[bundle update] } - expect(lock_command).not_to be_nil - expect(lock_command.fetch(:env)).to include( - "K_JEM_TEMPLATING" => "false", - "RUBYTHEMS_DEV" => workspace - ) - end - end - - it "generates templating-aware main Gemfile nomono wiring for direct sibling runtime dependencies" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-main-gemfile-direct-sibling-wiring", tmp_root) do |workspace| - root = File.join(workspace, "adapter") - sibling = File.join(workspace, "shared-core") - FileUtils.mkdir_p([root, sibling]) - write_tree(sibling, { - "shared-core.gemspec" => <<~RUBY - Gem::Specification.new do |spec| - spec.name = "shared-core" - spec.version = "0.1.0" - spec.summary = "Shared core" - end - RUBY - }) - write_tree(root, { - "adapter.gemspec" => <<~RUBY, - Gem::Specification.new do |spec| - spec.name = "adapter" - spec.version = "0.1.0" - spec.summary = "Adapter" - spec.homepage = "https://github.com/rubythems/adapter" - spec.metadata["source_code_uri"] = "https://github.com/rubythems/adapter" - spec.add_dependency "shared-core", "= 0.1.0" - spec.add_dependency "version_gem", ">= 1" - end - RUBY - ".kettle-jem.yml" => <<~YAML - project_emoji: "💎" - templates: - root: packaged - apply: true - entries: - - Gemfile - YAML - }) - - report = described_class.apply_project( - root, - env: {}, - run_options: {accept: true, force: true, skip_commit: true} - ) - gemfile = File.read(File.join(root, "Gemfile")) - direct_block = gemfile - .split("# Direct sibling dependencies", 2).last.to_s - .split("# Templating", 2).first.to_s - - expect(report.fetch(:changed_files)).to include("Gemfile") - expect(direct_block).to include("direct_sibling_gems = %w[") - expect(direct_block).to include("shared-core") - expect(direct_block).not_to include("version_gem") - expect(direct_block).to include( - 'direct_sibling_templating = ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero?' - ) - expect(gemfile).to include('nomono_requirements = ["~> 1.0", ">= 1.0.8"]') - expect(direct_block).to include("nomono_activation_requirements = nomono_requirements") - expect(direct_block).to include('nomono_lockfile = File.expand_path("Gemfile.lock", __dir__)') - expect(direct_block).to include("Bundler::LockfileParser") - expect(direct_block).to include('Kernel.send(:gem, "nomono", *nomono_activation_requirements)') - expect(direct_block).to include('require "nomono/bundler"') - expect(direct_block).not_to include('Gem::Specification.find_all_by_name("nomono")') - expect(direct_block).not_to include( - 'unless ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero?' - ) - expect(direct_block).to include('direct_sibling_dev_was_set = ENV.key?("RUBYTHEMS_DEV")') - expect(direct_block).to include('direct_sibling_dev_original = ENV.fetch("RUBYTHEMS_DEV", nil)') - expect(direct_block).to include('ENV["RUBYTHEMS_DEV"] = File.expand_path("..", __dir__)') - expect(direct_block).to include('ENV["RUBYTHEMS_DEV"] = direct_sibling_dev_original') - expect(direct_block).to include('ENV.delete("RUBYTHEMS_DEV")') - expect(direct_block).to include('prefix: "RUBYTHEMS"') - expect(direct_block).to include('path_env: "RUBYTHEMS_DEV"') - expect(direct_block).to include('root: ["src", "my", "rubythems"]') - expect(gemfile).to include("Use the released TSLP gem by default") - expect(gemfile).to include('gem "tree_sitter_language_pack", ">= 1.13.2", "< 2.0"') - expect(gemfile).not_to include("https://github.com/structuredmerge/tree-sitter-language-pack.git") - expect(gemfile).not_to include('branch: "fix/ruby-parser-api-methods"') - expect(File.read(File.join(root, "Gemfile"))).to eq(gemfile) - end - end - - it "collapses repeated direct sibling runtime dependency wiring in the main Gemfile" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-main-gemfile-direct-sibling-dedupe", tmp_root) do |workspace| - root = File.join(workspace, "adapter") - sibling = File.join(workspace, "shared-core") - FileUtils.mkdir_p([root, sibling]) - write_tree(sibling, { - "shared-core.gemspec" => <<~RUBY - Gem::Specification.new do |spec| - spec.name = "shared-core" - spec.version = "0.1.0" - spec.summary = "Shared core" - end - RUBY - }) - write_tree(root, { - "adapter.gemspec" => <<~RUBY, - Gem::Specification.new do |spec| - spec.name = "adapter" - spec.version = "0.1.0" - spec.summary = "Adapter" - spec.homepage = "https://github.com/rubythems/adapter" - spec.metadata["source_code_uri"] = "https://github.com/rubythems/adapter" - spec.add_dependency "shared-core", "= 0.1.0" - end - RUBY - "Gemfile" => <<~RUBY, - source "https://gem.coop" - - gemspec - - nomono_requirements = ["~> 1.0", ">= 1.0.8"] - gem "nomono", *nomono_requirements, require: false - - # Direct sibling dependencies (env-switched via RUBYTHEMS_DEV) - direct_sibling_gems = %w[ - stale-core - ] - direct_sibling_dev = ENV.fetch("RUBYTHEMS_DEV", "") - direct_sibling_local = - !direct_sibling_dev.empty? && !%w[false 0 no off].include?(direct_sibling_dev.downcase) - direct_sibling_templating = ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? - - if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero?) - require "nomono/bundler" - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: "RUBYTHEMS", - path_env: "RUBYTHEMS_DEV", - root: ["src", "my", "rubythems"] - ) - end - - # Direct sibling dependencies (env-switched via RUBYTHEMS_DEV) - direct_sibling_gems = %w[ - shared-core - ] - direct_sibling_dev = ENV.fetch("RUBYTHEMS_DEV", "") - direct_sibling_local = - !direct_sibling_dev.empty? && !%w[false 0 no off].include?(direct_sibling_dev.downcase) - direct_sibling_templating = ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? - - if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero?) - require "nomono/bundler" - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: "RUBYTHEMS", - path_env: "RUBYTHEMS_DEV", - root: ["src", "my", "rubythems"] - ) - end - - # Templating (env-switched: STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local paths) - eval_gemfile "gemfiles/modular/templating.gemfile" if ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? - RUBY - ".kettle-jem.yml" => <<~YAML - project_emoji: "💎" - templates: - root: packaged - apply: true - entries: - - Gemfile - YAML - }) - - described_class.apply_project( - root, - env: {}, - run_options: {accept: true, force: true, skip_commit: true} - ) - gemfile = File.read(File.join(root, "Gemfile")) - - expect(gemfile.scan("# Direct sibling dependencies").length).to eq(1) - expect(gemfile).to include("shared-core") - expect(gemfile).not_to include("stale-core") - end - end - - it "does not path-wire direct sibling dependencies when the sibling directory has a different gemspec name" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-main-gemfile-direct-sibling-name-mismatch", tmp_root) do |workspace| - root = File.join(workspace, "omniauth-openid") - stale_sibling = File.join(workspace, "rack-openid") - FileUtils.mkdir_p([root, stale_sibling]) - write_tree(stale_sibling, { - "rack-openid2.gemspec" => <<~RUBY - Gem::Specification.new do |spec| - spec.name = "rack-openid2" - spec.version = "2.0.3" - spec.summary = "Rack OpenID 2" - end - RUBY - }) - write_tree(root, { - "omniauth-openid.gemspec" => <<~RUBY, - Gem::Specification.new do |spec| - spec.name = "omniauth-openid" - spec.version = "2.0.2" - spec.summary = "OpenID strategy" - spec.homepage = "https://github.com/ruby-openid/omniauth-openid" - spec.metadata["source_code_uri"] = "https://github.com/ruby-openid/omniauth-openid" - spec.add_dependency "rack-openid", "~> 1.4" - spec.add_dependency "version_gem", ">= 1" - end - RUBY - "Gemfile" => <<~RUBY, - source "https://gem.coop" - - gemspec - - nomono_requirements = ["~> 1.0", ">= 1.0.8"] - gem "nomono", *nomono_requirements, require: false - - # Direct sibling dependencies (env-switched via RUBY_OPENID_DEV) - direct_sibling_gems = %w[ - rack-openid - ] - direct_sibling_dev = ENV.fetch("RUBY_OPENID_DEV", "") - direct_sibling_local = - !direct_sibling_dev.empty? && !%w[false 0 no off].include?(direct_sibling_dev.downcase) - direct_sibling_templating = ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? - - if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero?) - require "nomono/bundler" - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: "RUBY_OPENID", - path_env: "RUBY_OPENID_DEV", - root: ["src", "my", "ruby-openid"] - ) - end - - # Templating (env-switched: STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local paths) - eval_gemfile "gemfiles/modular/templating.gemfile" if ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? - RUBY - ".kettle-jem.yml" => <<~YAML - project_emoji: "💎" - templates: - root: packaged - apply: true - entries: - - Gemfile - YAML - }) - - described_class.apply_project( - root, - env: {}, - run_options: {accept: true, force: true, skip_commit: true} - ) - gemfile = File.read(File.join(root, "Gemfile")) - - expect(gemfile).not_to include("# Direct sibling dependencies") - expect(gemfile).not_to include("direct_sibling_gems") - expect(gemfile).not_to include("rack-openid") - end - end - - it "keeps the nomono requirements assignment before an existing nomono gem call" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-main-gemfile-nomono-order", tmp_root) do |root| - write_tree(root, { - "adapter.gemspec" => <<~RUBY, - Gem::Specification.new do |spec| - spec.name = "adapter" - spec.version = "0.1.0" - spec.summary = "Adapter" - spec.homepage = "https://github.com/ur-brain/adapter" - spec.metadata["source_code_uri"] = "https://github.com/ur-brain/adapter" - spec.add_dependency "version_gem", ">= 1" - end - RUBY - "Gemfile" => <<~RUBY, - source "https://gem.coop" - - # Local workspace dependency wiring for *_local.gemfile overrides - gem "nomono", *nomono_requirements, require: false # ruby >= 2.2 - gem "progress_bar" - - require "nomono/bundler" - - eval_nomono_gems( - gems: %w[ur_brain], - prefix: "UR_BRAIN", - path_env: "UR_BRAIN_DEV", - root: ["src", "my", "ur-brain"] - ) - - gemspec - - nomono_requirements = ["~> 1.0", ">= 1.0.8"] - RUBY - ".kettle-jem.yml" => <<~YAML - project_emoji: "💎" - templates: - root: packaged - apply: true - entries: - - Gemfile - YAML - }) - - described_class.apply_project( - root, - env: {}, - run_options: {accept: true, force: true, skip_commit: true} - ) - gemfile = File.read(File.join(root, "Gemfile")) - requirement_line = gemfile.lines.index { |line| line.include?("nomono_requirements =") } - gem_line = gemfile.lines.index { |line| line.include?('gem "nomono", *nomono_requirements') } - - expect(requirement_line).not_to be_nil - expect(gem_line).not_to be_nil - expect(requirement_line).to be < gem_line - end - end - - it "does not add generic direct sibling wiring for gems already handled by local modular Gemfiles" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-main-gemfile-local-modular-sibling", tmp_root) do |workspace| - root = File.join(workspace, "ur_brain-claude-code") - sibling = File.join(workspace, "ur_brain-adapters-ruby") - FileUtils.mkdir_p([root, sibling]) - write_tree(sibling, { - "ur_brain-adapters-ruby.gemspec" => <<~RUBY - Gem::Specification.new do |spec| - spec.name = "ur_brain-adapters-ruby" - spec.version = "0.1.0" - spec.summary = "UR Brain adapters" - end - RUBY - }) - write_tree(root, { - "ur_brain-claude-code.gemspec" => <<~RUBY, - Gem::Specification.new do |spec| - spec.name = "ur_brain-claude-code" - spec.version = "0.1.0" - spec.summary = "Claude Code adapter" - spec.homepage = "https://github.com/ur-brain/ur_brain-claude-code" - spec.metadata["source_code_uri"] = "https://github.com/ur-brain/ur_brain-claude-code" - spec.add_dependency "ur_brain-adapters-ruby", "~> 0.1" - end - RUBY - "gemfiles/modular/ur_brain_local.gemfile" => <<~RUBY, - workspace_root = File.expand_path("../..", __dir__) - gem "ur_brain-adapters-ruby", - path: File.join(workspace_root, "ur_brain-adapters-ruby") - RUBY - "gemfiles/modular/ur_brain.gemfile" => <<~RUBY, - if ENV.fetch("UR_BRAIN_DEV", "false").casecmp("false").zero? - gem "ur_brain-adapters-ruby", "~> 0.1" - else - eval_gemfile "ur_brain_local.gemfile" - end - RUBY - ".kettle-jem.yml" => <<~YAML - project_emoji: "💎" - templates: - root: packaged - apply: true - entries: - - Gemfile - YAML - }) - - described_class.apply_project( - root, - env: {}, - run_options: {accept: true, force: true, skip_commit: true} - ) - gemfile = File.read(File.join(root, "Gemfile")) - - expect(gemfile).not_to include("# Direct sibling dependencies") - expect(gemfile).not_to include("direct_sibling_gems") - expect(gemfile).to include(%(eval_gemfile "gemfiles/modular/ur_brain.gemfile")) - end - end - - it "preserves local modular runtime wiring declared through nomono local gem lists" do - tmp_root = File.join(__dir__, "tmp") - FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-main-gemfile-nomono-local-modular-sibling", tmp_root) do |workspace| - root = File.join(workspace, "ur_brain-mcp") - FileUtils.mkdir_p(root) - write_tree(root, { - "ur_brain-mcp.gemspec" => <<~RUBY, - Gem::Specification.new do |spec| - spec.name = "ur_brain-mcp" - spec.version = "0.1.0" - spec.summary = "MCP adapter" - spec.homepage = "https://github.com/ur-brain/ur_brain-adapters-ruby" - spec.metadata["source_code_uri"] = "https://github.com/ur-brain/ur_brain-adapters-ruby" - spec.add_dependency "ur_brain", "~> 0.1" - end - RUBY - "gemfiles/modular/ur_brain_local.gemfile" => <<~RUBY, - require "nomono/bundler" unless defined?(Nomono) - - local_gems = %w[ur_brain] - - eval_nomono_gems( - gems: local_gems, - prefix: "UR_BRAIN", - path_env: "UR_BRAIN_DEV", - vendored_gems_env: "VENDORED_GEMS", - vendor_gem_dir_env: "VENDOR_GEM_DIR", - debug_env: "KETTLE_DEV_DEBUG", - root: %w[src my ur-brain] - ) - RUBY - "gemfiles/modular/ur_brain.gemfile" => <<~RUBY, - if ENV.fetch("UR_BRAIN_DEV", "false").casecmp("false").zero? - gem "ur_brain", "~> 0.1" - else - eval_gemfile "ur_brain_local.gemfile" - end - RUBY - ".kettle-jem.yml" => <<~YAML - project_emoji: "💎" - templates: - root: packaged - apply: true - entries: - - Gemfile - YAML - }) - - described_class.apply_project( - root, - env: {}, - run_options: {accept: true, force: true, skip_commit: true} - ) - gemfile = File.read(File.join(root, "Gemfile")) - - expect(gemfile).not_to include("# Direct sibling dependencies") - expect(gemfile).not_to include("direct_sibling_gems") - expect(gemfile).to include(%(eval_gemfile "gemfiles/modular/ur_brain.gemfile")) - end - end -end From 3bc806ff0a2c678a75c3b98fafd3948e1910044c Mon Sep 17 00:00:00 2001 From: "Peter H. Boling" Date: Mon, 20 Jul 2026 14:47:29 -0600 Subject: [PATCH 081/188] Add phase-gated file work units Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- gems/kettle-jem/CHANGELOG.md | 7 ++- gems/kettle-jem/lib/kettle/jem.rb | 59 ++++++++++++++++--- .../spec/integration/recipe_planning_spec.rb | 55 +++++++++++++++-- 3 files changed, 106 insertions(+), 15 deletions(-) diff --git a/gems/kettle-jem/CHANGELOG.md b/gems/kettle-jem/CHANGELOG.md index 12b2314d3..4fb1860ae 100644 --- a/gems/kettle-jem/CHANGELOG.md +++ b/gems/kettle-jem/CHANGELOG.md @@ -53,9 +53,10 @@ Please file a bug if you notice a violation of semantic versioning. sequential report parity in preparation for Ractor-based recipe planning. - Added a `benchmarks/` harness that templates a reset Bundler gem skeleton and compares classified planning with and without opt-in Ractor workers. -- Apply now routes recipe report mutations through explicit write intents before - committing them sequentially, preparing the file-processing path for future - actor/Ractor execution without changing write order. +- Apply now routes recipe report mutations through explicit write intents and + phase-gated per-file work units, preparing the file-processing path for + future actor/Ractor execution without changing phase gates or final + filesystem outcomes. - The former monolithic thin-slice spec has been split into behavior-named integration, system, and end-to-end specs so the project test harness can parallelize templating coverage more effectively. diff --git a/gems/kettle-jem/lib/kettle/jem.rb b/gems/kettle-jem/lib/kettle/jem.rb index 1a5b23da9..896b98fa5 100644 --- a/gems/kettle-jem/lib/kettle/jem.rb +++ b/gems/kettle-jem/lib/kettle/jem.rb @@ -1611,6 +1611,26 @@ def write? end end + class FileWorkUnit + attr_reader :relative_path, :operations + + def initialize(relative_path:, operations:) + @relative_path = relative_path.to_s + @operations = Array(operations) + raise ArgumentError, "File work unit requires at least one operation" if @operations.empty? + + mismatched_paths = @operations.reject { |operation| operation.relative_path == @relative_path } + return if mismatched_paths.empty? + + paths = mismatched_paths.map(&:relative_path).uniq.join(", ") + raise ArgumentError, "File work unit #{relative_path.inspect} cannot include operations for #{paths}" + end + + def outcome + operations.last + end + end + module TemplateChecksums YAML_KEY = "kettle-jem" CHECKSUMS_SUBKEY = "checksums" @@ -10394,8 +10414,8 @@ def run_apply_phases(project_root, report) phase_stats: phase_stats ) end - write_intents_for_phase(project_root, reports_by_phase.fetch(phase, [])).each do |write_intent| - commit_write_intent(write_intent) + file_work_units_for_phase(project_root, reports_by_phase.fetch(phase, [])).each do |file_work_unit| + commit_file_outcome(file_work_unit.outcome) end unless plugin_registry.empty? plugin_registry.run( @@ -10420,13 +10440,28 @@ def run_apply_phases(project_root, report) def apply_recipe_report(project_root, recipe_report) intent = write_intent_from_recipe_report(project_root, recipe_report) - commit_write_intent(intent) if intent + commit_file_outcome(intent) if intent + end + + def file_work_units_for_phase(project_root, recipe_reports) + file_work_units_from_write_intents(write_intents_for_phase(project_root, recipe_reports)) end def write_intents_for_phase(project_root, recipe_reports) recipe_reports.filter_map { |recipe_report| write_intent_from_recipe_report(project_root, recipe_report) } end + def file_work_units_from_write_intents(write_intents) + grouped_operations = {} + Array(write_intents).each do |write_intent| + grouped_operations[write_intent.relative_path] ||= [] + grouped_operations[write_intent.relative_path] << write_intent + end + grouped_operations.map do |relative_path, operations| + FileWorkUnit.new(relative_path: relative_path, operations: operations) + end + end + def write_intent_from_recipe_report(project_root, recipe_report) return unless recipe_report[:changed] @@ -10444,14 +10479,22 @@ def write_intent_from_recipe_report(project_root, recipe_report) end def commit_write_intent(write_intent) - path = write_intent.absolute_path - if write_intent.delete? + commit_file_outcome(write_intent) + end + + def commit_file_outcome(file_outcome) + commit_filesystem_outcome(file_outcome) + end + + def commit_filesystem_outcome(file_outcome) + path = file_outcome.absolute_path + if file_outcome.delete? FileUtils.rm_f(path) - elsif write_intent.write? + elsif file_outcome.write? FileUtils.mkdir_p(File.dirname(path)) - File.write(path, write_intent.content) + File.write(path, file_outcome.content) else - raise ArgumentError, "Unsupported write intent action #{write_intent.action.inspect}" + raise ArgumentError, "Unsupported file outcome action #{file_outcome.action.inspect}" end end diff --git a/gems/kettle-jem/spec/integration/recipe_planning_spec.rb b/gems/kettle-jem/spec/integration/recipe_planning_spec.rb index 3abadae37..109654bc8 100644 --- a/gems/kettle-jem/spec/integration/recipe_planning_spec.rb +++ b/gems/kettle-jem/spec/integration/recipe_planning_spec.rb @@ -284,10 +284,57 @@ end - it "commits write intents sequentially while preserving current apply behavior" do + it "reduces phase write intents into per-file work units" do + first_write = described_class::WriteIntent.new( + relative_path: "lib/example.rb", + absolute_path: "/project/lib/example.rb", + action: :write, + content: "first\n", + recipe_name: "first_recipe" + ) + final_delete = described_class::WriteIntent.new( + relative_path: "lib/example.rb", + absolute_path: "/project/lib/example.rb", + action: :delete, + recipe_name: "cleanup_recipe" + ) + other_write = described_class::WriteIntent.new( + relative_path: "README.md", + absolute_path: "/project/README.md", + action: :write, + content: "# README\n", + recipe_name: "readme_recipe" + ) + + work_units = described_class.send(:file_work_units_from_write_intents, [first_write, other_write, final_delete]) + + expect(work_units.map(&:relative_path)).to eq(["lib/example.rb", "README.md"]) + expect(work_units.fetch(0).operations).to eq([first_write, final_delete]) + expect(work_units.fetch(0).outcome).to eq(final_delete) + expect(work_units.fetch(1).operations).to eq([other_write]) + expect(work_units.fetch(1).outcome).to eq(other_write) + end + + + it "rejects file work units that mix relative paths" do + write_intent = described_class::WriteIntent.new( + relative_path: "lib/example.rb", + absolute_path: "/project/lib/example.rb", + action: :write, + content: "# generated\n", + recipe_name: "generated_lib_file" + ) + + expect do + described_class::FileWorkUnit.new(relative_path: "README.md", operations: [write_intent]) + end.to raise_error(ArgumentError, /cannot include operations/) + end + + + it "commits file outcomes while preserving current apply behavior" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) - Dir.mktmpdir("kettle-jem-write-intent-commit", tmp_root) do |root| + Dir.mktmpdir("kettle-jem-file-outcome-commit", tmp_root) do |root| FileUtils.mkdir_p(File.join(root, "obsolete")) File.write(File.join(root, "obsolete/file.txt"), "old\n") write_intent = described_class::WriteIntent.new( @@ -304,8 +351,8 @@ recipe_name: "obsolete_file_cleanup" ) - described_class.send(:commit_write_intent, write_intent) - described_class.send(:commit_write_intent, delete_intent) + described_class.send(:commit_file_outcome, write_intent) + described_class.send(:commit_file_outcome, delete_intent) expect(File.read(File.join(root, "lib/example.rb"))).to eq("# generated\n") expect(File).not_to exist(File.join(root, "obsolete/file.txt")) From 0ae9950426d2aadfd7bf9493bd3bf4dcad949217 Mon Sep 17 00:00:00 2001 From: "Peter H. Boling" Date: Mon, 20 Jul 2026 14:52:25 -0600 Subject: [PATCH 082/188] Add opt-in Ractor file workers Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- gems/kettle-jem/CHANGELOG.md | 4 +- gems/kettle-jem/lib/kettle/jem.rb | 115 ++++++++++++++++-- .../spec/integration/recipe_planning_spec.rb | 89 ++++++++++++++ 3 files changed, 194 insertions(+), 14 deletions(-) diff --git a/gems/kettle-jem/CHANGELOG.md b/gems/kettle-jem/CHANGELOG.md index 4fb1860ae..155f42642 100644 --- a/gems/kettle-jem/CHANGELOG.md +++ b/gems/kettle-jem/CHANGELOG.md @@ -55,8 +55,8 @@ Please file a bug if you notice a violation of semantic versioning. compares classified planning with and without opt-in Ractor workers. - Apply now routes recipe report mutations through explicit write intents and phase-gated per-file work units, preparing the file-processing path for - future actor/Ractor execution without changing phase gates or final - filesystem outcomes. + opt-in `KETTLE_JEM_RACTOR_FILE_WORKERS` execution without changing phase gates + or final filesystem outcomes. - The former monolithic thin-slice spec has been split into behavior-named integration, system, and end-to-end specs so the project test harness can parallelize templating coverage more effectively. diff --git a/gems/kettle-jem/lib/kettle/jem.rb b/gems/kettle-jem/lib/kettle/jem.rb index 896b98fa5..b5905f8dc 100644 --- a/gems/kettle-jem/lib/kettle/jem.rb +++ b/gems/kettle-jem/lib/kettle/jem.rb @@ -3565,6 +3565,22 @@ def recipe_planning_workers_for(env, run_options) raise ArgumentError, "KETTLE_JEM_RACTOR_WORKERS must be a non-negative integer" end + def file_work_workers_for(env, run_options) + value = (run_options || {})[:ractor_file_workers] || + (run_options || {})["ractor_file_workers"] || + (run_options || {})[:file_work_workers] || + (run_options || {})["file_work_workers"] || + (env || {})["KETTLE_JEM_RACTOR_FILE_WORKERS"] + return 0 if value.nil? || value.to_s.strip.empty? + + workers = Integer(value) + raise ArgumentError, "KETTLE_JEM_RACTOR_FILE_WORKERS must be >= 0" if workers.negative? + + workers + rescue ArgumentError + raise ArgumentError, "KETTLE_JEM_RACTOR_FILE_WORKERS must be a non-negative integer" + end + def execute_recipe_reports(project_root:, recipes:, facts:, files:, template_contents:, decision_policy:, env:, events:, strategy:, workers: 0) case strategy.to_s when "sequential" @@ -3722,6 +3738,8 @@ def worker_safe_recipe?(recipe) def apply_project(project_root, env: ENV, run_options: {}) events = event_stream_from_options(run_options) report = plan_project(project_root, env: env, run_options: run_options).merge(mode: "apply") + file_work_workers = with_event_phase(events, "file_work_workers") { file_work_workers_for(env, run_options) } + report[:file_work_workers] = file_work_workers with_event_phase(events, "apply") do before_apply_files = with_event_phase(events, "snapshot_changed_files") do snapshot_changed_files( @@ -3729,7 +3747,9 @@ def apply_project(project_root, env: ENV, run_options: {}) report.fetch(:recipe_reports).filter_map { |entry| entry[:relative_path] } ) end - with_event_phase(events, "write_template_files") { run_apply_phases(project_root, report) } + with_event_phase(events, "write_template_files") do + run_apply_phases(project_root, report, file_workers: file_work_workers) + end report[:changed_files] = with_event_phase(events, "actual_changed_files") do actual_changed_files_after_apply(project_root, report.fetch(:changed_files), before_apply_files) end @@ -10386,7 +10406,7 @@ def plugin_lifecycle_diagnostic(plugin_registry, callbacks_run:, active_runner_p } end - def run_apply_phases(project_root, report) + def run_apply_phases(project_root, report, file_workers: 0) plugin_registry = plugin_registry_for_project(project_root) changed_files = report.fetch(:changed_files) diagnostics = report.fetch(:diagnostics) @@ -10414,9 +10434,10 @@ def run_apply_phases(project_root, report) phase_stats: phase_stats ) end - file_work_units_for_phase(project_root, reports_by_phase.fetch(phase, [])).each do |file_work_unit| - commit_file_outcome(file_work_unit.outcome) - end + commit_file_work_units( + file_work_units_for_phase(project_root, reports_by_phase.fetch(phase, [])), + workers: file_workers + ) unless plugin_registry.empty? plugin_registry.run( timing: :after, @@ -10443,6 +10464,29 @@ def apply_recipe_report(project_root, recipe_report) commit_file_outcome(intent) if intent end + def commit_file_work_units(file_work_units, workers: 0) + units = Array(file_work_units) + return if units.empty? + return commit_file_work_units_ractor(units, workers: workers.to_i) if workers.to_i.positive? + + units.each { |file_work_unit| commit_file_work_unit(file_work_unit) } + end + + def commit_file_work_units_ractor(file_work_units, workers:) + file_work_units.each_slice(workers).each do |slice| + slice.map do |file_work_unit| + payload = Ractor.make_shareable(file_work_unit_payload(file_work_unit)) + Ractor.new(payload) do |worker_payload| + Kettle::Jem.commit_file_work_unit_payload(worker_payload) + end + end.each(&:value) + end + end + + def commit_file_work_unit(file_work_unit) + file_work_unit.operations.each { |operation| commit_file_outcome(operation) } + end + def file_work_units_for_phase(project_root, recipe_reports) file_work_units_from_write_intents(write_intents_for_phase(project_root, recipe_reports)) end @@ -10462,6 +10506,22 @@ def file_work_units_from_write_intents(write_intents) end end + def file_work_unit_payload(file_work_unit) + { + relative_path: file_work_unit.relative_path, + operations: file_work_unit.operations.map { |operation| file_outcome_payload(operation) } + } + end + + def file_outcome_payload(file_outcome) + { + relative_path: file_outcome.relative_path, + absolute_path: file_outcome.absolute_path, + action: file_outcome.action.to_s, + content: file_outcome.content + } + end + def write_intent_from_recipe_report(project_root, recipe_report) return unless recipe_report[:changed] @@ -10487,14 +10547,45 @@ def commit_file_outcome(file_outcome) end def commit_filesystem_outcome(file_outcome) - path = file_outcome.absolute_path - if file_outcome.delete? - FileUtils.rm_f(path) - elsif file_outcome.write? - FileUtils.mkdir_p(File.dirname(path)) - File.write(path, file_outcome.content) + commit_filesystem_outcome_payload(file_outcome_payload(file_outcome)) + end + + def commit_file_work_unit_payload(payload) + Array(payload.fetch(:operations)).each { |operation| commit_filesystem_outcome_payload(operation) } + payload.fetch(:relative_path) + end + + def commit_filesystem_outcome_payload(payload) + path = payload.fetch(:absolute_path) + action = payload.fetch(:action).to_s + if action == "delete" + File.delete(path) if File.exist?(path) || File.symlink?(path) + elsif action == "write" + mkdir_p_core(File.dirname(path)) + File.write(path, payload.fetch(:content)) else - raise ArgumentError, "Unsupported file outcome action #{file_outcome.action.inspect}" + raise ArgumentError, "Unsupported file outcome action #{action.inspect}" + end + end + + def mkdir_p_core(path) + dir = path.to_s + return if dir.empty? || dir == "." || Dir.exist?(dir) + + pending = [] + until dir.empty? || dir == "." || Dir.exist?(dir) + pending << dir + parent = File.dirname(dir) + break if parent == dir + + dir = parent + end + pending.reverse_each do |entry| + begin + Dir.mkdir(entry) unless Dir.exist?(entry) + rescue Errno::EEXIST + nil + end end end diff --git a/gems/kettle-jem/spec/integration/recipe_planning_spec.rb b/gems/kettle-jem/spec/integration/recipe_planning_spec.rb index 109654bc8..2b6004e16 100644 --- a/gems/kettle-jem/spec/integration/recipe_planning_spec.rb +++ b/gems/kettle-jem/spec/integration/recipe_planning_spec.rb @@ -284,6 +284,17 @@ end + it "parses opt-in Ractor file worker counts" do + expect(described_class.send(:file_work_workers_for, {}, {})).to eq(0) + expect(described_class.send(:file_work_workers_for, {"KETTLE_JEM_RACTOR_FILE_WORKERS" => "3"}, {})).to eq(3) + expect(described_class.send(:file_work_workers_for, {}, {file_work_workers: 2})).to eq(2) + + expect do + described_class.send(:file_work_workers_for, {"KETTLE_JEM_RACTOR_FILE_WORKERS" => "-1"}, {}) + end.to raise_error(ArgumentError, /non-negative integer/) + end + + it "reduces phase write intents into per-file work units" do first_write = described_class::WriteIntent.new( relative_path: "lib/example.rb", @@ -331,6 +342,84 @@ end + it "lets one file worker own ordered operations for a path" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-file-work-unit", tmp_root) do |root| + file_path = File.join(root, "lib/example.rb") + first_write = described_class::WriteIntent.new( + relative_path: "lib/example.rb", + absolute_path: file_path, + action: :write, + content: "first\n", + recipe_name: "first_recipe" + ) + final_write = described_class::WriteIntent.new( + relative_path: "lib/example.rb", + absolute_path: file_path, + action: :write, + content: "final\n", + recipe_name: "final_recipe" + ) + work_unit = described_class::FileWorkUnit.new( + relative_path: "lib/example.rb", + operations: [first_write, final_write] + ) + + described_class.send(:commit_file_work_unit, work_unit) + + expect(File.read(file_path)).to eq("final\n") + end + end + + + it "can commit independent file work units through Ractors within a phase" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-ractor-file-work-units", tmp_root) do |root| + first_path = File.join(root, "lib/first.rb") + second_path = File.join(root, "lib/second.rb") + FileUtils.mkdir_p(File.dirname(second_path)) + File.write(second_path, "old\n") + first_work_unit = described_class::FileWorkUnit.new( + relative_path: "lib/first.rb", + operations: [ + described_class::WriteIntent.new( + relative_path: "lib/first.rb", + absolute_path: first_path, + action: :write, + content: "first\n", + recipe_name: "first_recipe" + ) + ] + ) + second_work_unit = described_class::FileWorkUnit.new( + relative_path: "lib/second.rb", + operations: [ + described_class::WriteIntent.new( + relative_path: "lib/second.rb", + absolute_path: second_path, + action: :write, + content: "new\n", + recipe_name: "second_recipe" + ), + described_class::WriteIntent.new( + relative_path: "lib/second.rb", + absolute_path: second_path, + action: :delete, + recipe_name: "cleanup_recipe" + ) + ] + ) + + described_class.send(:commit_file_work_units, [first_work_unit, second_work_unit], workers: 2) + + expect(File.read(first_path)).to eq("first\n") + expect(File).not_to exist(second_path) + end + end + + it "commits file outcomes while preserving current apply behavior" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) From ed900d261f8ceb14afab1cf6b7a99782248d65c3 Mon Sep 17 00:00:00 2001 From: "Peter H. Boling" Date: Mon, 20 Jul 2026 15:03:46 -0600 Subject: [PATCH 083/188] Benchmark Ractor file workers Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- gems/kettle-jem/CHANGELOG.md | 3 +- gems/kettle-jem/benchmarks/README.md | 17 ++-- .../benchmarks/kettle_jem_ractor_planning.rb | 81 ++++++++++++++----- 3 files changed, 73 insertions(+), 28 deletions(-) diff --git a/gems/kettle-jem/CHANGELOG.md b/gems/kettle-jem/CHANGELOG.md index 155f42642..58cbf714c 100644 --- a/gems/kettle-jem/CHANGELOG.md +++ b/gems/kettle-jem/CHANGELOG.md @@ -52,7 +52,8 @@ Please file a bug if you notice a violation of semantic versioning. experimental Ractor workers with `KETTLE_JEM_RACTOR_WORKERS`, and preserves sequential report parity in preparation for Ractor-based recipe planning. - Added a `benchmarks/` harness that templates a reset Bundler gem skeleton and - compares classified planning with and without opt-in Ractor workers. + compares classified planning and phase-gated file work with and without + opt-in Ractor workers. - Apply now routes recipe report mutations through explicit write intents and phase-gated per-file work units, preparing the file-processing path for opt-in `KETTLE_JEM_RACTOR_FILE_WORKERS` execution without changing phase gates diff --git a/gems/kettle-jem/benchmarks/README.md b/gems/kettle-jem/benchmarks/README.md index 794ac39bb..9a3608e20 100644 --- a/gems/kettle-jem/benchmarks/README.md +++ b/gems/kettle-jem/benchmarks/README.md @@ -1,7 +1,8 @@ # kettle-jem benchmarks This directory contains a repeatable benchmark harness for comparing -`kettle-jem` recipe planning with and without opt-in Ractor workers. +`kettle-jem` recipe planning and phase-gated file work with and without opt-in +Ractor workers. The fixture at `fixtures/skeleton/` is generated from a standard `bundle gem skeleton --git` run, with the generated `.git/` directory removed @@ -22,10 +23,16 @@ Useful environment variables: | Variable | Default | Purpose | | --- | --- | --- | | `KETTLE_JEM_BENCHMARK_RUNS` | `3` | Number of measured runs for each variant. | -| `KETTLE_JEM_BENCHMARK_WORKERS` | `min(2, Etc.nprocessors)` | Worker count for the Ractor variant. | +| `KETTLE_JEM_BENCHMARK_WORKERS` | `min(2, Etc.nprocessors)` | Comma-separated worker counts for Ractor variants. | | `KETTLE_JEM_BENCHMARK_COMMAND` | `apply` | Public `kettle-jem` command to benchmark: `plan`, `apply`, or `template`. | -The default benchmark compares the `classified` planning strategy with -`KETTLE_JEM_RACTOR_WORKERS=0` against the same strategy with Ractor workers -enabled. The harness sets the first-run `kettle-jem` config values through +The default `apply` benchmark compares: + +- baseline classified planning with no Ractor workers +- planning-only Ractor workers via `KETTLE_JEM_RACTOR_WORKERS` +- file-only Ractor workers via `KETTLE_JEM_RACTOR_FILE_WORKERS` +- combined planning and file Ractor workers + +For `plan`, file-worker variants are skipped because no filesystem apply phase +runs. The harness sets the first-run `kettle-jem` config values through environment variables so the copied skeleton can be templated non-interactively. diff --git a/gems/kettle-jem/benchmarks/kettle_jem_ractor_planning.rb b/gems/kettle-jem/benchmarks/kettle_jem_ractor_planning.rb index 96b8b0ffa..6ea124792 100755 --- a/gems/kettle-jem/benchmarks/kettle_jem_ractor_planning.rb +++ b/gems/kettle-jem/benchmarks/kettle_jem_ractor_planning.rb @@ -16,13 +16,17 @@ KETTLE_JEM_EXE = File.join(PROJECT_ROOT, "exe", "kettle-jem") RUNS = Integer(ENV.fetch("KETTLE_JEM_BENCHMARK_RUNS", "3")) -WORKERS = Integer( - ENV.fetch("KETTLE_JEM_BENCHMARK_WORKERS", [2, Etc.nprocessors].min.to_s) -) +WORKER_COUNTS = ENV.fetch("KETTLE_JEM_BENCHMARK_WORKERS", [2, Etc.nprocessors].min.to_s) + .split(",") + .map { |value| Integer(value.strip) } + .uniq COMMAND = ENV.fetch("KETTLE_JEM_BENCHMARK_COMMAND", "apply") raise "KETTLE_JEM_BENCHMARK_RUNS must be positive" unless RUNS.positive? -raise "KETTLE_JEM_BENCHMARK_WORKERS must be positive" unless WORKERS.positive? +raise "KETTLE_JEM_BENCHMARK_WORKERS must include at least one value" if WORKER_COUNTS.empty? +unless WORKER_COUNTS.all?(&:positive?) + raise "KETTLE_JEM_BENCHMARK_WORKERS values must be positive" +end raise "Missing fixture skeleton at #{FIXTURE_ROOT}" unless Dir.exist?(FIXTURE_ROOT) unless %w[plan apply template].include?(COMMAND) raise "Unsupported benchmark command #{COMMAND.inspect}" @@ -46,22 +50,48 @@ "hook_templates" => "false" }.freeze -VARIANTS = [ - { - name: "classified-main-ractor", - env: { - "KETTLE_JEM_RECIPE_PLANNING_STRATEGY" => "classified", - "KETTLE_JEM_RACTOR_WORKERS" => "0" +def benchmark_variants + variants = [ + { + name: "baseline-main", + env: { + "KETTLE_JEM_RECIPE_PLANNING_STRATEGY" => "classified", + "KETTLE_JEM_RACTOR_WORKERS" => "0", + "KETTLE_JEM_RACTOR_FILE_WORKERS" => "0" + } } - }, - { - name: "classified-ractor-#{WORKERS}", - env: { - "KETTLE_JEM_RECIPE_PLANNING_STRATEGY" => "classified", - "KETTLE_JEM_RACTOR_WORKERS" => WORKERS.to_s + ] + + WORKER_COUNTS.each do |workers| + variants << { + name: "planning-ractor-#{workers}", + env: { + "KETTLE_JEM_RECIPE_PLANNING_STRATEGY" => "classified", + "KETTLE_JEM_RACTOR_WORKERS" => workers.to_s, + "KETTLE_JEM_RACTOR_FILE_WORKERS" => "0" + } } - } -].freeze + next if COMMAND == "plan" + + variants << { + name: "file-ractor-#{workers}", + env: { + "KETTLE_JEM_RECIPE_PLANNING_STRATEGY" => "classified", + "KETTLE_JEM_RACTOR_WORKERS" => "0", + "KETTLE_JEM_RACTOR_FILE_WORKERS" => workers.to_s + } + } + variants << { + name: "combined-ractor-#{workers}", + env: { + "KETTLE_JEM_RECIPE_PLANNING_STRATEGY" => "classified", + "KETTLE_JEM_RACTOR_WORKERS" => workers.to_s, + "KETTLE_JEM_RACTOR_FILE_WORKERS" => workers.to_s + } + } + end + variants +end def reset_worktree FileUtils.rm_rf(WORKTREE) @@ -87,7 +117,8 @@ def report_snapshot(path) report = JSON.parse(File.read(path)) { strategy: report["recipe_planning_strategy"], - workers: report["recipe_planning_workers"], + planning_workers: report["recipe_planning_workers"], + file_workers: report.fetch("file_work_workers", 0), recipes: Array(report["recipe_reports"]).length, changed: Array(report["changed_files"]).length } @@ -131,7 +162,8 @@ def run_variant(variant, index) FileUtils.mkdir_p(REPORT_ROOT) reset_worktree -results = VARIANTS.to_h do |variant| +variants = benchmark_variants +results = variants.to_h do |variant| times = [] snapshots = [] RUNS.times do |index| @@ -146,14 +178,17 @@ def run_variant(variant, index) puts "fixture: #{FIXTURE_ROOT}" puts "command: kettle-jem #{COMMAND}" puts "runs: #{RUNS}" +puts "worker counts: #{WORKER_COUNTS.join(", ")}" puts puts format( - "%-26s %8s %8s %8s %8s %7s %7s", + "%-28s %8s %8s %8s %8s %7s %7s %7s %7s", "variant", "min", "median", "mean", "max", + "plan_w", + "file_w", "recipes", "changed" ) @@ -161,12 +196,14 @@ def run_variant(variant, index) summary = result.fetch(:summary) snapshot = result.fetch(:snapshot) puts format( - "%-26s %8.3fs %8.3fs %8.3fs %8.3fs %7d %7d", + "%-28s %8.3fs %8.3fs %8.3fs %8.3fs %7d %7d %7d %7d", name, summary.fetch(:min), summary.fetch(:median), summary.fetch(:mean), summary.fetch(:max), + snapshot.fetch(:planning_workers), + snapshot.fetch(:file_workers), snapshot.fetch(:recipes), snapshot.fetch(:changed) ) From a720a2c14a9acc592bf71f269db9dac7cc8e590d Mon Sep 17 00:00:00 2001 From: "Peter H. Boling" Date: Mon, 20 Jul 2026 16:06:44 -0600 Subject: [PATCH 084/188] Benchmark one-shot Ractor templating Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- gems/kettle-jem/CHANGELOG.md | 4 +- gems/kettle-jem/benchmarks/README.md | 11 +++-- .../benchmarks/kettle_jem_ractor_planning.rb | 32 +++++++------ gems/kettle-jem/lib/kettle/jem.rb | 3 +- .../.structuredmerge/kettle-jem.yml.example | 1 + .../config_metadata_template_spec.rb | 5 ++ .../integration/template_bootstrap_spec.rb | 1 + .../spec/system/install_orchestration_spec.rb | 46 +++++++++++++++++++ 8 files changed, 84 insertions(+), 19 deletions(-) diff --git a/gems/kettle-jem/CHANGELOG.md b/gems/kettle-jem/CHANGELOG.md index 58cbf714c..b454bf8de 100644 --- a/gems/kettle-jem/CHANGELOG.md +++ b/gems/kettle-jem/CHANGELOG.md @@ -53,7 +53,9 @@ Please file a bug if you notice a violation of semantic versioning. sequential report parity in preparation for Ractor-based recipe planning. - Added a `benchmarks/` harness that templates a reset Bundler gem skeleton and compares classified planning and phase-gated file work with and without - opt-in Ractor workers. + opt-in Ractor workers. The harness now defaults `KJ_MIN_RUBY` to `1.8.7` so + benchmark runs exercise legacy workflow and gemfile generation through the + supported one-shot `template --accept-config` flow. - Apply now routes recipe report mutations through explicit write intents and phase-gated per-file work units, preparing the file-processing path for opt-in `KETTLE_JEM_RACTOR_FILE_WORKERS` execution without changing phase gates diff --git a/gems/kettle-jem/benchmarks/README.md b/gems/kettle-jem/benchmarks/README.md index 9a3608e20..a463c3635 100644 --- a/gems/kettle-jem/benchmarks/README.md +++ b/gems/kettle-jem/benchmarks/README.md @@ -24,9 +24,10 @@ Useful environment variables: | --- | --- | --- | | `KETTLE_JEM_BENCHMARK_RUNS` | `3` | Number of measured runs for each variant. | | `KETTLE_JEM_BENCHMARK_WORKERS` | `min(2, Etc.nprocessors)` | Comma-separated worker counts for Ractor variants. | -| `KETTLE_JEM_BENCHMARK_COMMAND` | `apply` | Public `kettle-jem` command to benchmark: `plan`, `apply`, or `template`. | +| `KETTLE_JEM_BENCHMARK_COMMAND` | `template` | Public `kettle-jem` command to benchmark: `plan`, `apply`, `template`, or `install`. | +| `KETTLE_JEM_BENCHMARK_MIN_RUBY` | `1.8.7` | Minimum Ruby value passed through `KJ_MIN_RUBY` to broaden generated workflow/gemfile coverage. | -The default `apply` benchmark compares: +The default `template` benchmark compares: - baseline classified planning with no Ractor workers - planning-only Ractor workers via `KETTLE_JEM_RACTOR_WORKERS` @@ -34,5 +35,7 @@ The default `apply` benchmark compares: - combined planning and file Ractor workers For `plan`, file-worker variants are skipped because no filesystem apply phase -runs. The harness sets the first-run `kettle-jem` config values through -environment variables so the copied skeleton can be templated non-interactively. +runs. The default `template --accept-config` run exercises kettle-jem's +supported one-shot flow: environment variables seed `.structuredmerge/kettle-jem.yml`, +the config bootstrap is written, and the install/template task continues through +the follow-up apply against that config. diff --git a/gems/kettle-jem/benchmarks/kettle_jem_ractor_planning.rb b/gems/kettle-jem/benchmarks/kettle_jem_ractor_planning.rb index 6ea124792..9c9cd5ac7 100755 --- a/gems/kettle-jem/benchmarks/kettle_jem_ractor_planning.rb +++ b/gems/kettle-jem/benchmarks/kettle_jem_ractor_planning.rb @@ -20,7 +20,7 @@ .split(",") .map { |value| Integer(value.strip) } .uniq -COMMAND = ENV.fetch("KETTLE_JEM_BENCHMARK_COMMAND", "apply") +COMMAND = ENV.fetch("KETTLE_JEM_BENCHMARK_COMMAND", "template") raise "KETTLE_JEM_BENCHMARK_RUNS must be positive" unless RUNS.positive? raise "KETTLE_JEM_BENCHMARK_WORKERS must include at least one value" if WORKER_COUNTS.empty? @@ -28,7 +28,7 @@ raise "KETTLE_JEM_BENCHMARK_WORKERS values must be positive" end raise "Missing fixture skeleton at #{FIXTURE_ROOT}" unless Dir.exist?(FIXTURE_ROOT) -unless %w[plan apply template].include?(COMMAND) +unless %w[plan apply template install].include?(COMMAND) raise "Unsupported benchmark command #{COMMAND.inspect}" end @@ -44,6 +44,7 @@ "KJ_AUTHOR_DOMAIN" => "example.com", "KJ_GH_USER" => "benchmark", "KJ_HOMEPAGE_URI" => "https://example.com/skeleton", + "KJ_MIN_RUBY" => ENV.fetch("KETTLE_JEM_BENCHMARK_MIN_RUBY", "1.8.7"), "allowed" => "true", "force" => "true", "git_drivers" => "false", @@ -127,17 +128,7 @@ def report_snapshot(path) def run_variant(variant, index) report_path = File.join(REPORT_ROOT, "#{variant.fetch(:name)}-#{index}.json") env = ENV.to_h.merge(BASE_ENV).merge(variant.fetch(:env)) - command = [ - RbConfig.ruby, - KETTLE_JEM_EXE, - COMMAND, - "--force", - "--quiet", - "--accept-config", - "--skip-commit", - "--report", - report_path - ] + command = benchmark_command(report_path) reset_worktree started_at = Process.clock_gettime(Process::CLOCK_MONOTONIC) @@ -158,6 +149,21 @@ def run_variant(variant, index) reset_worktree end +def benchmark_command(report_path) + command = [ + RbConfig.ruby, + KETTLE_JEM_EXE, + COMMAND, + "--force", + "--quiet", + "--accept-config", + "--skip-commit", + "--report", + report_path + ] + command +end + FileUtils.rm_rf(REPORT_ROOT) FileUtils.mkdir_p(REPORT_ROOT) reset_worktree diff --git a/gems/kettle-jem/lib/kettle/jem.rb b/gems/kettle-jem/lib/kettle/jem.rb index b5905f8dc..7c21c4efc 100644 --- a/gems/kettle-jem/lib/kettle/jem.rb +++ b/gems/kettle-jem/lib/kettle/jem.rb @@ -196,6 +196,7 @@ class Error < StandardError; end %w[min_divergence_threshold] => "KJ_MIN_DIVERGENCE_THRESHOLD", %w[yard_host] => "KJ_YARD_HOST", %w[homepage_uri] => "KJ_HOMEPAGE_URI", + %w[rubygems min_ruby] => "KJ_MIN_RUBY", %w[templates profile] => "KETTLE_JEM_TEMPLATE_PROFILE", %w[shim replacement_gem] => "KETTLE_JEM_SHIMMED_GEM", %w[shim replacement_require] => "KETTLE_JEM_SHIMMED_REQUIRE", @@ -2937,7 +2938,7 @@ def discover_facts(project_root, env: ENV, run_options: {}) project_version = metadata_value(gemspec_metadata, :version) project_version = existing_version_file_value(project_root, version_path) unless valid_gem_version?(project_version) project_version = git_version_file_value(project_root, version_path) unless valid_gem_version?(project_version) - configured_min_ruby = rubygems_config["min_ruby"].to_s.strip + configured_min_ruby = preferred_template_token_value(nil, rubygems_config["min_ruby"], env, "KJ_MIN_RUBY").to_s.strip min_ruby = (configured_min_ruby.empty? ? nil : configured_min_ruby) || metadata_value(gemspec_metadata, :required_ruby_version) || metadata_value(gemspec_metadata, :min_ruby) diff --git a/gems/kettle-jem/lib/kettle/jem/templates/.structuredmerge/kettle-jem.yml.example b/gems/kettle-jem/lib/kettle/jem/templates/.structuredmerge/kettle-jem.yml.example index 2c3313a22..0bc44e25a 100644 --- a/gems/kettle-jem/lib/kettle/jem/templates/.structuredmerge/kettle-jem.yml.example +++ b/gems/kettle-jem/lib/kettle/jem/templates/.structuredmerge/kettle-jem.yml.example @@ -104,6 +104,7 @@ ruby: rubygems: # Published runtime Ruby floor used for generated gemspec metadata and README # compatibility text. Omit this to derive the value from the gemspec. + # ENV override: KJ_MIN_RUBY min_ruby: "{KJ|MIN_RUBY}" # RubyGems package manifest additions. diff --git a/gems/kettle-jem/spec/integration/config_metadata_template_spec.rb b/gems/kettle-jem/spec/integration/config_metadata_template_spec.rb index 20b9c6120..75600ece6 100644 --- a/gems/kettle-jem/spec/integration/config_metadata_template_spec.rb +++ b/gems/kettle-jem/spec/integration/config_metadata_template_spec.rb @@ -153,6 +153,8 @@ min_divergence_threshold: 5 # ENV override: KJ_MIN_DIVERGENCE_THRESHOLD yard_host: docs.config.test # ENV override: KJ_YARD_HOST homepage_uri: https://homepage.config.test # ENV override: KJ_HOMEPAGE_URI + rubygems: + min_ruby: "3.1" # ENV override: KJ_MIN_RUBY kettle-jem: version: "1.0.0" tokens: @@ -172,6 +174,7 @@ "KJ_MIN_DIVERGENCE_THRESHOLD" => "12", "KJ_YARD_HOST" => "docs.env.test", "KJ_HOMEPAGE_URI" => "https://homepage.env.test", + "KJ_MIN_RUBY" => "1.8.7", "KJ_GH_USER" => "env-user" }, run_options: {skip_commit: true} @@ -182,11 +185,13 @@ expect(config.fetch("min_divergence_threshold")).to eq(12) expect(config.fetch("yard_host")).to eq("docs.env.test") expect(config.fetch("homepage_uri")).to eq("https://homepage.env.test") + expect(config.dig("rubygems", "min_ruby")).to eq("1.8.7") expect(config.dig("kettle-jem", "version")).to eq(Kettle::Jem::Version::VERSION) expect(config.dig("tokens", "forge", "gh_user")).to eq("env-user") expect(report.fetch(:final_content)).to include("min_divergence_threshold: 12 # ENV override: KJ_MIN_DIVERGENCE_THRESHOLD") expect(report.fetch(:final_content)).to include('yard_host: "docs.env.test" # ENV override: KJ_YARD_HOST') expect(report.fetch(:final_content)).to include('homepage_uri: "https://homepage.env.test" # ENV override: KJ_HOMEPAGE_URI') + expect(report.fetch(:final_content)).to include('min_ruby: "1.8.7" # ENV override: KJ_MIN_RUBY') expect(report.fetch(:final_content)).to include(%(version: "#{Kettle::Jem::Version::VERSION}")) expect(report.fetch(:final_content)).to include('gh_user: "env-user" # GitHub username only. ENV: KJ_GH_USER') expect(File.read(File.join(root, described_class::KETTLE_CONFIG_PATH))).to eq(report.fetch(:final_content)) diff --git a/gems/kettle-jem/spec/integration/template_bootstrap_spec.rb b/gems/kettle-jem/spec/integration/template_bootstrap_spec.rb index e61be6572..f58249594 100644 --- a/gems/kettle-jem/spec/integration/template_bootstrap_spec.rb +++ b/gems/kettle-jem/spec/integration/template_bootstrap_spec.rb @@ -244,6 +244,7 @@ rubygems: # Published runtime Ruby floor used for generated gemspec metadata and README # compatibility text. Omit this to derive the value from the gemspec. + # ENV override: KJ_MIN_RUBY min_ruby: "3.2.0" YAML expect(content).not_to include('min_ruby: "2.4"') diff --git a/gems/kettle-jem/spec/system/install_orchestration_spec.rb b/gems/kettle-jem/spec/system/install_orchestration_spec.rb index 8687c94b6..0f1f3ca85 100644 --- a/gems/kettle-jem/spec/system/install_orchestration_spec.rb +++ b/gems/kettle-jem/spec/system/install_orchestration_spec.rb @@ -334,6 +334,7 @@ commands << {command: command, chdir: chdir, env: env, quiet: quiet} {success: true, exitstatus: 0, stdout: "", stderr: ""} end + allow(Kettle::Jem::Tasks::InstallTask).to receive(:bundle_includes_gem?).and_return(true) install = Kettle::Jem::Tasks::InstallTask.run( project_root: root, @@ -641,6 +642,7 @@ commands << {command: command, chdir: chdir, env: env, quiet: quiet} {success: true, exitstatus: 0, stdout: "", stderr: ""} end + allow(Kettle::Jem::Tasks::InstallTask).to receive(:bundle_includes_gem?).and_return(true) install = Kettle::Jem::Tasks::InstallTask.run( project_root: root, @@ -677,6 +679,50 @@ end + it "uses KJ_MIN_RUBY during the accepted config one-shot followup apply" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-install-bootstrap-min-ruby", tmp_root) do |root| + write_tree(root, { + "Gemfile" => <<~RUBY, + source "https://gem.coop" + gemspec + RUBY + "example.gemspec" => <<~RUBY + Gem::Specification.new do |spec| + spec.name = "example" + spec.summary = "💎 Example gem" + spec.authors = ["Peter H. Boling"] + spec.email = ["floss@galtzo.com"] + spec.required_ruby_version = ">= 3.2" + end + RUBY + }) + + command_runner = lambda do |_command, chdir:, env:, quiet:| + {success: true, exitstatus: 0, stdout: "", stderr: ""} + end + + install = Kettle::Jem::Tasks::InstallTask.run( + project_root: root, + env: { + "K_JEM_TEMPLATING" => "true", + "KJ_MIN_RUBY" => "1.8.7" + }, + run_options: {accept_config: true, force: true, skip_commit: true}, + command_runner: command_runner + ) + + expect(install.fetch(:bootstrap_followup_apply)).to eq( + status: "applied", + reason: "canonical_config_bootstrapped" + ) + expect(install.dig(:facts, :rubygems, :min_ruby)).to eq("1.8.7") + expect(YAML.safe_load_file(File.join(root, Kettle::Jem::KETTLE_CONFIG_PATH)).dig("rubygems", "min_ruby")).to eq("1.8.7") + end + end + + it "silences Bundler and debug environment for quiet orchestration commands" do expect(Kettle::Jem::Tasks::InstallTask.quiet_command(%w[bundle install], quiet: true)).to eq(%w[bundle install --quiet]) expect(Kettle::Jem::Tasks::InstallTask.quiet_command(%w[bundle install --quiet], quiet: true)).to eq(%w[bundle install --quiet]) From 1ce2f83a8f675e232bf6e60211df5d546dc5a752 Mon Sep 17 00:00:00 2001 From: "Peter H. Boling" Date: Mon, 20 Jul 2026 16:18:00 -0600 Subject: [PATCH 085/188] Record latest kettle-jem benchmark results Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- gems/kettle-jem/CHANGELOG.md | 3 +- gems/kettle-jem/benchmarks/README.md | 13 ++- .../benchmarks/kettle_jem_ractor_planning.rb | 102 ++++++++++++++++++ gems/kettle-jem/benchmarks/results/README.md | 40 +++++++ 4 files changed, 155 insertions(+), 3 deletions(-) create mode 100644 gems/kettle-jem/benchmarks/results/README.md diff --git a/gems/kettle-jem/CHANGELOG.md b/gems/kettle-jem/CHANGELOG.md index b454bf8de..10f3ab619 100644 --- a/gems/kettle-jem/CHANGELOG.md +++ b/gems/kettle-jem/CHANGELOG.md @@ -55,7 +55,8 @@ Please file a bug if you notice a violation of semantic versioning. compares classified planning and phase-gated file work with and without opt-in Ractor workers. The harness now defaults `KJ_MIN_RUBY` to `1.8.7` so benchmark runs exercise legacy workflow and gemfile generation through the - supported one-shot `template --accept-config` flow. + supported one-shot `template --accept-config` flow, and it records the latest + benchmark outcome in a committed results README. - Apply now routes recipe report mutations through explicit write intents and phase-gated per-file work units, preparing the file-processing path for opt-in `KETTLE_JEM_RACTOR_FILE_WORKERS` execution without changing phase gates diff --git a/gems/kettle-jem/benchmarks/README.md b/gems/kettle-jem/benchmarks/README.md index a463c3635..1224e00cd 100644 --- a/gems/kettle-jem/benchmarks/README.md +++ b/gems/kettle-jem/benchmarks/README.md @@ -9,8 +9,9 @@ The fixture at `fixtures/skeleton/` is generated from a standard so the skeleton can be committed as project data. Benchmark runs never mutate that fixture directly. Each measured run copies it into `tmp/benchmarks/work/`, runs one-shot templating from that copied gem root, writes reports under -`tmp/benchmarks/reports/`, and resets the copied skeleton before and after the -run. +`tmp/benchmarks/reports/`, writes a machine-readable timing summary to +`tmp/benchmarks/summary.json`, updates `results/README.md`, and resets the +copied skeleton before and after the run. Run the benchmark from the `kettle-jem` project root: @@ -39,3 +40,11 @@ runs. The default `template --accept-config` run exercises kettle-jem's supported one-shot flow: environment variables seed `.structuredmerge/kettle-jem.yml`, the config bootstrap is written, and the install/template task continues through the follow-up apply against that config. + +The latest committed benchmark summary lives at `results/README.md`. If the +full benchmark has already run and `tmp/benchmarks/summary.json` still exists, +regenerate only that committed summary without rerunning templating: + +```bash +mise exec -C /path/to/kettle-jem -- ruby benchmarks/kettle_jem_ractor_planning.rb --summarize-only +``` diff --git a/gems/kettle-jem/benchmarks/kettle_jem_ractor_planning.rb b/gems/kettle-jem/benchmarks/kettle_jem_ractor_planning.rb index 9c9cd5ac7..8920d6cb5 100755 --- a/gems/kettle-jem/benchmarks/kettle_jem_ractor_planning.rb +++ b/gems/kettle-jem/benchmarks/kettle_jem_ractor_planning.rb @@ -6,6 +6,7 @@ require "json" require "open3" require "rbconfig" +require "time" BENCHMARK_ROOT = File.expand_path(__dir__) PROJECT_ROOT = File.expand_path("..", BENCHMARK_ROOT) @@ -13,7 +14,10 @@ WORK_PARENT = File.join(PROJECT_ROOT, "tmp", "benchmarks", "work") WORKTREE = File.join(WORK_PARENT, "skeleton") REPORT_ROOT = File.join(PROJECT_ROOT, "tmp", "benchmarks", "reports") +SUMMARY_PATH = File.join(PROJECT_ROOT, "tmp", "benchmarks", "summary.json") +RESULTS_README = File.join(BENCHMARK_ROOT, "results", "README.md") KETTLE_JEM_EXE = File.join(PROJECT_ROOT, "exe", "kettle-jem") +SUMMARIZE_ONLY = ARGV.delete("--summarize-only") RUNS = Integer(ENV.fetch("KETTLE_JEM_BENCHMARK_RUNS", "3")) WORKER_COUNTS = ENV.fetch("KETTLE_JEM_BENCHMARK_WORKERS", [2, Etc.nprocessors].min.to_s) @@ -164,6 +168,98 @@ def benchmark_command(report_path) command end +def format_seconds(value) + format("%.3fs", value) +end + +def summary_payload(results, generated_at: Time.now) + { + generated_at: generated_at.iso8601, + fixture: FIXTURE_ROOT, + command: "kettle-jem #{COMMAND}", + runs: RUNS, + worker_counts: WORKER_COUNTS, + min_ruby: BASE_ENV.fetch("KJ_MIN_RUBY"), + report_root: REPORT_ROOT, + variants: results.transform_values do |result| + { + times: result.fetch(:times), + summary: result.fetch(:summary), + snapshot: result.fetch(:snapshot) + } + end + } +end + +def write_summary_json(payload) + FileUtils.mkdir_p(File.dirname(SUMMARY_PATH)) + File.write(SUMMARY_PATH, "#{JSON.pretty_generate(payload)}\n") +end + +def read_summary_json + raise "Missing benchmark summary at #{SUMMARY_PATH}" unless File.file?(SUMMARY_PATH) + + JSON.parse(File.read(SUMMARY_PATH)) +end + +def build_results_readme(payload) + variants = payload.fetch("variants") + lines = [ + "# kettle-jem benchmark results", + "", + "Last generated: `#{payload.fetch("generated_at")}`", + "", + "| Setting | Value |", + "| --- | --- |", + "| Fixture | `#{payload.fetch("fixture")}` |", + "| Command | `#{payload.fetch("command")}` |", + "| Runs per variant | `#{payload.fetch("runs")}` |", + "| Worker counts | `#{payload.fetch("worker_counts").join(", ")}` |", + "| Minimum Ruby | `#{payload.fetch("min_ruby")}` |", + "| Source reports | `#{payload.fetch("report_root")}` |", + "", + "| Variant | Min | Median | Mean | Max | Plan workers | File workers | Recipes | Changed |", + "| --- | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: |" + ] + variants.each do |name, result| + summary = result.fetch("summary") + snapshot = result.fetch("snapshot") + lines << format( + "| `%s` | %s | %s | %s | %s | %d | %d | %d | %d |", + name: name, + min: format_seconds(summary.fetch("min")), + median: format_seconds(summary.fetch("median")), + mean: format_seconds(summary.fetch("mean")), + max: format_seconds(summary.fetch("max")), + plan: snapshot.fetch("planning_workers"), + file: snapshot.fetch("file_workers"), + recipes: snapshot.fetch("recipes"), + changed: snapshot.fetch("changed") + ) + end + lines << "" + lines << "These results are generated by `ruby benchmarks/kettle_jem_ractor_planning.rb`." + lines << "Regenerate this README from the saved summary without rerunning the benchmark with:" + lines << "" + lines << "```bash" + lines << "ruby benchmarks/kettle_jem_ractor_planning.rb --summarize-only" + lines << "```" + lines << "" + "#{lines.join("\n")}\n" +end + +def write_results_readme(payload) + FileUtils.mkdir_p(File.dirname(RESULTS_README)) + File.write(RESULTS_README, build_results_readme(payload)) +end + +if SUMMARIZE_ONLY + payload = read_summary_json + write_results_readme(payload) + puts "results README: #{RESULTS_README}" + exit +end + FileUtils.rm_rf(REPORT_ROOT) FileUtils.mkdir_p(REPORT_ROOT) reset_worktree @@ -215,5 +311,11 @@ def benchmark_command(report_path) ) end +payload = summary_payload(results) +write_summary_json(payload) +write_results_readme(JSON.parse(JSON.generate(payload))) + puts puts "reports: #{REPORT_ROOT}" +puts "summary: #{SUMMARY_PATH}" +puts "results README: #{RESULTS_README}" diff --git a/gems/kettle-jem/benchmarks/results/README.md b/gems/kettle-jem/benchmarks/results/README.md new file mode 100644 index 000000000..6ed214dfe --- /dev/null +++ b/gems/kettle-jem/benchmarks/results/README.md @@ -0,0 +1,40 @@ +# kettle-jem benchmark results + +Last generated: `2026-07-20T15:52:13-06:00` + +This committed snapshot records the last completed benchmark run for quick +reference. The run predates persisted timing summaries, so the recipe and +changed-file counts come from the saved JSON reports under +`tmp/benchmarks/reports/`, while the elapsed-time values below are the captured +benchmark summary from that run. Future runs write `tmp/benchmarks/summary.json` +and regenerate this README with complete per-variant min, median, mean, and max +timings automatically. + +| Setting | Value | +| --- | --- | +| Fixture | `benchmarks/fixtures/skeleton` | +| Command | `kettle-jem template --force --quiet --accept-config --skip-commit --report REPORT` | +| Runs per variant | `3` | +| Worker counts | `1, 2, 4, 8, 16, 22` | +| Minimum Ruby | `1.8.7` | +| Result surface | `146` recipes / `134` changed files | + +| Variant group | Result | +| --- | --- | +| `baseline-main` | Median `21.914s` | +| `planning-ractor-1` | Median `21.956s` | +| `planning-ractor-8` | Median `22.572s` | +| `planning-ractor-22` | Median `22.687s` | +| `file-ractor-*` | Median range `24.904s` to `30.147s`; `file-ractor-22` had a max outlier of `56.206s` | +| `combined-ractor-*` | Median range `24.787s` to `29.215s` | + +Summary: the realistic one-shot templating benchmark did not show a performance +gain from Ractors. Planning-only Ractors were approximately even with baseline +but slightly slower, and file-worker or combined Ractors were materially slower +on this workload. + +Regenerate this README after a future full run: + +```bash +ruby benchmarks/kettle_jem_ractor_planning.rb --summarize-only +``` From bd466d3134ae5846030bbd22b3a382bb90734bfa Mon Sep 17 00:00:00 2001 From: "Peter H. Boling" Date: Mon, 20 Jul 2026 16:31:04 -0600 Subject: [PATCH 086/188] Reuse static kettle-jem recipe constants Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- gems/kettle-jem/CHANGELOG.md | 6 ++ gems/kettle-jem/lib/kettle/jem.rb | 93 +++++++++++++++++++------------ 2 files changed, 64 insertions(+), 35 deletions(-) diff --git a/gems/kettle-jem/CHANGELOG.md b/gems/kettle-jem/CHANGELOG.md index 10f3ab619..83ae5f765 100644 --- a/gems/kettle-jem/CHANGELOG.md +++ b/gems/kettle-jem/CHANGELOG.md @@ -18,6 +18,12 @@ Please file a bug if you notice a violation of semantic versioning. ## [Unreleased] +### Changed + +- Templating now reuses static, shareable regexes and small lookup lists in the + recipe dispatch and template-policy paths instead of reallocating them during + each recipe execution. + ### Fixed - Install orchestration now bundles each distinct Bundler environment it will diff --git a/gems/kettle-jem/lib/kettle/jem.rb b/gems/kettle-jem/lib/kettle/jem.rb index 7c21c4efc..25e05a973 100644 --- a/gems/kettle-jem/lib/kettle/jem.rb +++ b/gems/kettle-jem/lib/kettle/jem.rb @@ -329,7 +329,9 @@ class Error < StandardError; end "progress" => %w[run_start phase_start phase_finish recipe post_apply_step command_step summary] }.freeze RECIPE_PLANNING_STRATEGIES = %w[sequential classified].freeze - WORKER_SAFE_RECIPE_NAME_PATTERNS = [ + DISABLED_RECIPE_PLANNING_STRATEGY_VALUES = %w[0 false no off none sequential].freeze + ENABLED_RECIPE_PLANNING_STRATEGY_VALUES = %w[1 true yes on classified classify].freeze + WORKER_SAFE_RECIPE_NAME_PATTERNS = Ractor.make_shareable([ /\Agithub_actions_framework_gemfile_/, /\Agithub_actions_obsolete_workflow_cleanup_/, /\Agithub_actions_opt_in_workflow_cleanup_/, @@ -338,7 +340,36 @@ class Error < StandardError; end /\Atemplate_legacy_destination_cleanup_/, /\Atemplate_obsolete_license_cleanup_/, /\Atemplate_shim_profile_cleanup_/ + ]) + GITHUB_ACTIONS_FRAMEWORK_GEMFILE_RECIPE = /\Agithub_actions_framework_gemfile_/.freeze + GITHUB_ACTIONS_OBSOLETE_WORKFLOW_CLEANUP_RECIPE = /\Agithub_actions_obsolete_workflow_cleanup_/.freeze + GITHUB_ACTIONS_OPT_IN_WORKFLOW_CLEANUP_RECIPE = /\Agithub_actions_opt_in_workflow_cleanup_/.freeze + OPENCOLLECTIVE_DISABLED_FILE_CLEANUP_RECIPE = /\Aopencollective_disabled_file_cleanup_/.freeze + TEMPLATE_LEGACY_DESTINATION_CLEANUP_RECIPE = /\Atemplate_legacy_destination_cleanup_/.freeze + TEMPLATE_OBSOLETE_LICENSE_CLEANUP_RECIPE = /\Atemplate_obsolete_license_cleanup_/.freeze + TEMPLATE_SHIM_PROFILE_CLEANUP_RECIPE = /\Atemplate_shim_profile_cleanup_/.freeze + GITHUB_ACTIONS_WORKFLOW_SNIPPETS_RECIPE = /\Agithub_actions_workflow_snippets_/.freeze + TEMPLATE_SOURCE_PREFERENCE_RECIPE = /\Atemplate_source_preference_/.freeze + TEMPLATE_SOURCE_APPLICATION_RECIPE = /\Atemplate_source_application_/.freeze + DECISION_NO_WRITE_ACTIONS = %w[keep skip].freeze + RUBY_TEMPLATE_POLICY_FILE_TYPES = %i[gemfile gemspec appraisals].freeze + GEMFILE_POLICY_SELF_DEPENDENCIES = %w[appraisal].freeze + TEMPLATE_CONTENT_PRIMITIVES = %w[ + supplied_kettle_config_bootstrap + supplied_template_source_preference + supplied_template_source_application ].freeze + RAKEFILE_GUARDED_REQUIRE_NAMES = %w[kettle/dev kettle/jem stone_checksums].freeze + COVERAGE_THRESHOLD_KEYS = %w[K_SOUP_COV_MIN_BRANCH K_SOUP_COV_MIN_LINE].freeze + GITHUB_WORKFLOW_ENGINE_JOB_KEYS = { + "jruby" => "jruby", + "truffleruby" => "truffleruby" + }.freeze + CHANGELOG_TRANSFER_KEY_SEPARATOR = /\s+-\s+/.freeze + CHANGELOG_TRANSFER_KEY_PATTERN = /\Akettle-jem-template-\d{8}-\d{3}\z/.freeze + CHANGELOG_TRANSFER_KEY_SCAN_PATTERN = /\bkettle-jem-template-\d{8}-\d{3}\b/.freeze + README_KLOC_BADGE_PATTERN = /(\[🧮kloc-img\]:\s*https?:\/\/img\.shields\.io\/badge\/KLOC-)(\d+(?:\.\d+)?)(-[^\s]*)/.freeze + CHANGELOG_COVERAGE_KLOC_PATTERN = /-\s*COVERAGE:\s*.+--\s*\d+\/(\d+)\s+lines/i.freeze RUBY_TEMPLATE_BASENAMES = %w[Gemfile Rakefile Appraisals Appraisal.root.gemfile .simplecov].freeze RUBY_TEMPLATE_SUFFIXES = %w[.gemspec .gemfile].freeze RUBY_TEMPLATE_EXTENSIONS = %w[.rb .rake].freeze @@ -3543,8 +3574,8 @@ def recipe_planning_strategy_for(env, run_options) strategy = value.to_s.strip strategy = "sequential" if strategy.empty? strategy = strategy.tr("_", "-") - strategy = "sequential" if %w[0 false no off none sequential].include?(strategy) - strategy = "classified" if %w[1 true yes on classified classify].include?(strategy) + strategy = "sequential" if DISABLED_RECIPE_PLANNING_STRATEGY_VALUES.include?(strategy) + strategy = "classified" if ENABLED_RECIPE_PLANNING_STRATEGY_VALUES.include?(strategy) raise ArgumentError, "Unsupported kettle-jem recipe planning strategy #{value.inspect}" unless RECIPE_PLANNING_STRATEGIES.include?(strategy) strategy @@ -4702,8 +4733,8 @@ def changelog_transfer_entries(template_root) end def changelog_transfer_key(line) - key = line.to_s.lstrip.delete_prefix("- ").delete_prefix("* ").split(/\s+-\s+/, 2).first.to_s - key.match?(/\Akettle-jem-template-\d{8}-\d{3}\z/) ? key : nil + key = line.to_s.lstrip.delete_prefix("- ").delete_prefix("* ").split(CHANGELOG_TRANSFER_KEY_SEPARATOR, 2).first.to_s + key.match?(CHANGELOG_TRANSFER_KEY_PATTERN) ? key : nil end def apply_changelog_transfer_entries(content, entries) @@ -4738,7 +4769,7 @@ def apply_changelog_transfer_entries(content, entries) end def changelog_transfer_keys(content) - content.to_s.scan(/\bkettle-jem-template-\d{8}-\d{3}\b/).to_set + content.to_s.scan(CHANGELOG_TRANSFER_KEY_SCAN_PATTERN).to_set end def changelog_bullet_line?(line) @@ -4811,29 +4842,29 @@ def execute_recipe(project_root:, recipe:, facts:, files:, decision_policy:, env synchronize_github_actions_ci(original, facts) when "github_actions_framework_ci" synchronize_github_actions_framework_ci(original, facts) - when /\Agithub_actions_framework_gemfile_/ + when GITHUB_ACTIONS_FRAMEWORK_GEMFILE_RECIPE synchronize_github_actions_framework_gemfile(recipe.fetch(:target_path), facts) when "github_actions_coverage_ci" synchronize_github_actions_coverage_ci(original, facts) - when /\Agithub_actions_obsolete_workflow_cleanup_/ + when GITHUB_ACTIONS_OBSOLETE_WORKFLOW_CLEANUP_RECIPE "" - when /\Agithub_actions_opt_in_workflow_cleanup_/ + when GITHUB_ACTIONS_OPT_IN_WORKFLOW_CLEANUP_RECIPE "" - when /\Aopencollective_disabled_file_cleanup_/ + when OPENCOLLECTIVE_DISABLED_FILE_CLEANUP_RECIPE "" - when /\Atemplate_legacy_destination_cleanup_/ + when TEMPLATE_LEGACY_DESTINATION_CLEANUP_RECIPE "" - when /\Atemplate_obsolete_license_cleanup_/ + when TEMPLATE_OBSOLETE_LICENSE_CLEANUP_RECIPE "" - when /\Atemplate_shim_profile_cleanup_/ + when TEMPLATE_SHIM_PROFILE_CLEANUP_RECIPE "" - when /\Agithub_actions_workflow_snippets_/ + when GITHUB_ACTIONS_WORKFLOW_SNIPPETS_RECIPE synchronize_github_actions_workflow_snippets(original, facts: facts) when "kettle_config_bootstrap" apply_kettle_config_bootstrap(project_root, recipe, env: env, template_contents: template_contents) - when /\Atemplate_source_preference_/ + when TEMPLATE_SOURCE_PREFERENCE_RECIPE original - when /\Atemplate_source_application_/ + when TEMPLATE_SOURCE_APPLICATION_RECIPE apply_template_source(project_root, recipe, original, facts: facts, env: env, template_contents: template_contents) when "rakefile_scaffold_cleanup" deletion.fetch(:content) @@ -4864,7 +4895,7 @@ def execute_recipe(project_root:, recipe:, facts:, files:, decision_policy:, env changed: changed, destination_existed: destination_existed ) - if %w[keep skip].include?(decision_evaluation.fetch(:selected_action)) + if DECISION_NO_WRITE_ACTIONS.include?(decision_evaluation.fetch(:selected_action)) final = original changed = false deletion = nil @@ -4966,7 +4997,7 @@ def ruby_template_policy_report(recipe:, request:, original:, final:) return {} unless recipe.fetch(:primitive) == "supplied_template_source_application" file_type = template_file_type(recipe) - return {} unless %i[gemfile gemspec appraisals].include?(file_type) + return {} unless RUBY_TEMPLATE_POLICY_FILE_TYPES.include?(file_type) template_content = request.fetch(:template_content, "") report = { @@ -4988,7 +5019,7 @@ def ruby_template_policy_report(recipe:, request:, original:, final:) def gemfile_policy_operations(template_content, original, final, request) package_name = runtime_context_value(request, :package, :name).to_s deleted = gemfile_dependency_names("#{template_content}\n#{original}") - gemfile_dependency_names(final) - expected = ["appraisal"] + expected = GEMFILE_POLICY_SELF_DEPENDENCIES.dup expected << package_name unless package_name.empty? [ { @@ -5168,11 +5199,7 @@ def recipe_template_content(project_root, recipe, template_contents: nil) end def recipe_template_content_path(project_root, recipe) - return unless %w[ - supplied_kettle_config_bootstrap - supplied_template_source_preference - supplied_template_source_application - ].include?(recipe.fetch(:primitive)) + return unless TEMPLATE_CONTENT_PRIMITIVES.include?(recipe.fetch(:primitive)) preference = recipe.fetch(:template_preference) File.join( @@ -5199,10 +5226,9 @@ def normalize_rakefile_section_spacing(content) end def strip_orphaned_rake_task_requires(content) - guarded_requires = %w[kettle/dev kettle/jem stone_checksums] remove_indexes = Set.new ruby_top_level_require_records(content).each do |record| - next unless guarded_requires.include?(record.fetch(:name)) + next unless RAKEFILE_GUARDED_REQUIRE_NAMES.include?(record.fetch(:name)) (record.fetch(:start_line)..record.fetch(:end_line)).each { |line_number| remove_indexes << (line_number - 1) } end @@ -5312,7 +5338,7 @@ def preserve_mise_project_settings(recipe, content, destination_content, project end def coverage_thresholds_from_mise(content) - %w[K_SOUP_COV_MIN_BRANCH K_SOUP_COV_MIN_LINE].each_with_object({}) do |key, thresholds| + COVERAGE_THRESHOLD_KEYS.each_with_object({}) do |key, thresholds| value = toml_string_scalar_line_value(content, key) thresholds[key] = value if value end @@ -5325,7 +5351,7 @@ def coverage_thresholds_from_workflow(project_root) return {} unless File.file?(path) content = File.read(path) - %w[K_SOUP_COV_MIN_BRANCH K_SOUP_COV_MIN_LINE].each_with_object({}) do |key, thresholds| + COVERAGE_THRESHOLD_KEYS.each_with_object({}) do |key, thresholds| value = yaml_scalar_line_value(content, key) thresholds[key] = value.to_s.delete_prefix("\"").delete_suffix("\"") if value end @@ -5371,10 +5397,7 @@ def prune_disabled_github_workflow_engine_jobs(content, facts) enabled = Array(engines).map { |engine| engine.to_s.strip.downcase }.reject(&:empty?).to_set return content if enabled.empty? - disabled_job_keys = { - "jruby" => "jruby", - "truffleruby" => "truffleruby" - }.except(*enabled).values + disabled_job_keys = GITHUB_WORKFLOW_ENGINE_JOB_KEYS.except(*enabled).values return content if disabled_job_keys.empty? delete_yaml_top_level_mapping_entries( @@ -5440,7 +5463,7 @@ def coverage_thresholds_from_project_mise(project_root) end def coverage_thresholds_from_yaml_workflow(content) - %w[K_SOUP_COV_MIN_BRANCH K_SOUP_COV_MIN_LINE].each_with_object({}) do |key, thresholds| + COVERAGE_THRESHOLD_KEYS.each_with_object({}) do |key, thresholds| value = yaml_scalar_line_value(content, key) thresholds[key] = value if value end @@ -5488,7 +5511,7 @@ def apply_readme_kloc_badge(content, facts, project_root) return content if kloc.to_s.empty? content.to_s.gsub( - /(\[🧮kloc-img\]:\s*https?:\/\/img\.shields\.io\/badge\/KLOC-)(\d+(?:\.\d+)?)(-[^\s]*)/, + README_KLOC_BADGE_PATTERN, "\\1#{kloc}\\3" ) end @@ -5526,7 +5549,7 @@ def changelog_version_heading_line?(line, version) def changelog_coverage_kloc(section) return if section.to_s.empty? - match = section.to_s.match(/-\s*COVERAGE:\s*.+--\s*\d+\/(\d+)\s+lines/i) + match = section.to_s.match(CHANGELOG_COVERAGE_KLOC_PATTERN) return unless match format("%.3f", match[1].to_i.to_f / 1000.0) From d74415298e24f121bc70140c3d133bdb227a40ec Mon Sep 17 00:00:00 2001 From: "Peter H. Boling" Date: Mon, 20 Jul 2026 16:37:35 -0600 Subject: [PATCH 087/188] Batch recipe planning Ractor work Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- gems/kettle-jem/CHANGELOG.md | 7 +- gems/kettle-jem/benchmarks/README.md | 5 + .../benchmarks/kettle_jem_ractor_planning.rb | 24 +++- gems/kettle-jem/lib/kettle/jem.rb | 104 +++++++++++++----- .../spec/integration/recipe_planning_spec.rb | 18 ++- 5 files changed, 124 insertions(+), 34 deletions(-) diff --git a/gems/kettle-jem/CHANGELOG.md b/gems/kettle-jem/CHANGELOG.md index 83ae5f765..cc0e47104 100644 --- a/gems/kettle-jem/CHANGELOG.md +++ b/gems/kettle-jem/CHANGELOG.md @@ -23,6 +23,8 @@ Please file a bug if you notice a violation of semantic versioning. - Templating now reuses static, shareable regexes and small lookup lists in the recipe dispatch and template-policy paths instead of reallocating them during each recipe execution. +- Opt-in recipe-planning Ractor mode now batches worker-safe recipes across a + bounded chunked worker pool instead of spawning one Ractor per recipe. ### Fixed @@ -55,8 +57,9 @@ Please file a bug if you notice a violation of semantic versioning. planning deduplicates destination and template-source file reads, and runtime loading is reduced to explicit main-Ractor extension points. A disabled classified planning strategy now identifies worker-safe recipes, can opt into - experimental Ractor workers with `KETTLE_JEM_RACTOR_WORKERS`, and preserves - sequential report parity in preparation for Ractor-based recipe planning. + experimental Ractor workers with `KETTLE_JEM_RACTOR_WORKERS`, records + execution counters, and preserves sequential report parity in preparation for + Ractor-based recipe planning. - Added a `benchmarks/` harness that templates a reset Bundler gem skeleton and compares classified planning and phase-gated file work with and without opt-in Ractor workers. The harness now defaults `KJ_MIN_RUBY` to `1.8.7` so diff --git a/gems/kettle-jem/benchmarks/README.md b/gems/kettle-jem/benchmarks/README.md index 1224e00cd..e1727ce5c 100644 --- a/gems/kettle-jem/benchmarks/README.md +++ b/gems/kettle-jem/benchmarks/README.md @@ -35,6 +35,11 @@ The default `template` benchmark compares: - file-only Ractor workers via `KETTLE_JEM_RACTOR_FILE_WORKERS` - combined planning and file Ractor workers +Benchmark summaries include planning execution counters from each report: +worker-safe recipe count, Ractor spawn count, and recipe count actually executed +by Ractors. These counters distinguish "workers were enabled" from "work +actually ran in Ractors". + For `plan`, file-worker variants are skipped because no filesystem apply phase runs. The default `template --accept-config` run exercises kettle-jem's supported one-shot flow: environment variables seed `.structuredmerge/kettle-jem.yml`, diff --git a/gems/kettle-jem/benchmarks/kettle_jem_ractor_planning.rb b/gems/kettle-jem/benchmarks/kettle_jem_ractor_planning.rb index 8920d6cb5..0f08c42fd 100755 --- a/gems/kettle-jem/benchmarks/kettle_jem_ractor_planning.rb +++ b/gems/kettle-jem/benchmarks/kettle_jem_ractor_planning.rb @@ -120,10 +120,15 @@ def summarize(times) def report_snapshot(path) report = JSON.parse(File.read(path)) + planning_execution = report.fetch("recipe_planning_execution", {}) { strategy: report["recipe_planning_strategy"], planning_workers: report["recipe_planning_workers"], file_workers: report.fetch("file_work_workers", 0), + worker_safe_recipes: planning_execution.fetch("worker_safe_recipes", 0), + main_only_recipes: planning_execution.fetch("main_only_recipes", 0), + ractor_spawns: planning_execution.fetch("ractor_spawn_count", 0), + ractor_recipes: planning_execution.fetch("ractor_recipe_count", 0), recipes: Array(report["recipe_reports"]).length, changed: Array(report["changed_files"]).length } @@ -218,14 +223,14 @@ def build_results_readme(payload) "| Minimum Ruby | `#{payload.fetch("min_ruby")}` |", "| Source reports | `#{payload.fetch("report_root")}` |", "", - "| Variant | Min | Median | Mean | Max | Plan workers | File workers | Recipes | Changed |", - "| --- | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: |" + "| Variant | Min | Median | Mean | Max | Plan workers | File workers | Safe recipes | Ractor spawns | Ractor recipes | Recipes | Changed |", + "| --- | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: |" ] variants.each do |name, result| summary = result.fetch("summary") snapshot = result.fetch("snapshot") lines << format( - "| `%s` | %s | %s | %s | %s | %d | %d | %d | %d |", + "| `%s` | %s | %s | %s | %s | %d | %d | %d | %d | %d | %d | %d |", name: name, min: format_seconds(summary.fetch("min")), median: format_seconds(summary.fetch("median")), @@ -233,6 +238,9 @@ def build_results_readme(payload) max: format_seconds(summary.fetch("max")), plan: snapshot.fetch("planning_workers"), file: snapshot.fetch("file_workers"), + safe: snapshot.fetch("worker_safe_recipes"), + spawns: snapshot.fetch("ractor_spawns"), + ractor_recipes: snapshot.fetch("ractor_recipes"), recipes: snapshot.fetch("recipes"), changed: snapshot.fetch("changed") ) @@ -283,7 +291,7 @@ def write_results_readme(payload) puts "worker counts: #{WORKER_COUNTS.join(", ")}" puts puts format( - "%-28s %8s %8s %8s %8s %7s %7s %7s %7s", + "%-28s %8s %8s %8s %8s %7s %7s %7s %7s %7s %7s %7s", "variant", "min", "median", @@ -291,6 +299,9 @@ def write_results_readme(payload) "max", "plan_w", "file_w", + "safe", + "spawns", + "r_jobs", "recipes", "changed" ) @@ -298,7 +309,7 @@ def write_results_readme(payload) summary = result.fetch(:summary) snapshot = result.fetch(:snapshot) puts format( - "%-28s %8.3fs %8.3fs %8.3fs %8.3fs %7d %7d %7d %7d", + "%-28s %8.3fs %8.3fs %8.3fs %8.3fs %7d %7d %7d %7d %7d %7d %7d", name, summary.fetch(:min), summary.fetch(:median), @@ -306,6 +317,9 @@ def write_results_readme(payload) summary.fetch(:max), snapshot.fetch(:planning_workers), snapshot.fetch(:file_workers), + snapshot.fetch(:worker_safe_recipes), + snapshot.fetch(:ractor_spawns), + snapshot.fetch(:ractor_recipes), snapshot.fetch(:recipes), snapshot.fetch(:changed) ) diff --git a/gems/kettle-jem/lib/kettle/jem.rb b/gems/kettle-jem/lib/kettle/jem.rb index 25e05a973..588ad0465 100644 --- a/gems/kettle-jem/lib/kettle/jem.rb +++ b/gems/kettle-jem/lib/kettle/jem.rb @@ -3501,6 +3501,7 @@ def plan_project(project_root, env: ENV, run_options: {}) recipes = pack.fetch(:recipes) recipe_planning_strategy = with_event_phase(events, "recipe_planning_strategy") { recipe_planning_strategy_for(env, run_options) } recipe_planning_workers = with_event_phase(events, "recipe_planning_workers") { recipe_planning_workers_for(env, run_options) } + recipe_planning_execution = {} recipe_reports = with_event_phase(events, "recipes", total: recipes.length) do execute_recipe_reports( project_root: project_root, @@ -3512,7 +3513,8 @@ def plan_project(project_root, env: ENV, run_options: {}) env: env, events: events, strategy: recipe_planning_strategy, - workers: recipe_planning_workers + workers: recipe_planning_workers, + stats: recipe_planning_execution ) end plugin_registry = with_event_phase(events, "plugins") { plugin_registry_for_project(project_root) } @@ -3543,6 +3545,7 @@ def plan_project(project_root, env: ENV, run_options: {}) phase_reports: phase_reports, recipe_planning_strategy: recipe_planning_strategy, recipe_planning_workers: recipe_planning_workers, + recipe_planning_execution: recipe_planning_execution, decision_policy: decision_policy.to_h, template_selection: template_selection, git_preflight: git_preflight, @@ -3613,9 +3616,18 @@ def file_work_workers_for(env, run_options) raise ArgumentError, "KETTLE_JEM_RACTOR_FILE_WORKERS must be a non-negative integer" end - def execute_recipe_reports(project_root:, recipes:, facts:, files:, template_contents:, decision_policy:, env:, events:, strategy:, workers: 0) + def execute_recipe_reports(project_root:, recipes:, facts:, files:, template_contents:, decision_policy:, env:, events:, strategy:, workers: 0, stats: nil) case strategy.to_s when "sequential" + record_recipe_planning_execution_stats( + stats, + worker_safe: 0, + main_only: recipes.length, + worker_count: 0, + spawned: 0, + ractor_recipes: 0, + main_recipes: recipes.length + ) execute_recipe_reports_sequential( project_root: project_root, recipes: recipes, @@ -3636,7 +3648,8 @@ def execute_recipe_reports(project_root:, recipes:, facts:, files:, template_con decision_policy: decision_policy, env: env, events: events, - workers: workers + workers: workers, + stats: stats ) else raise ArgumentError, "Unsupported kettle-jem recipe planning strategy #{strategy.inspect}" @@ -3659,12 +3672,23 @@ def execute_recipe_reports_sequential(project_root:, recipes:, facts:, files:, t end end - def execute_recipe_reports_classified(project_root:, recipes:, facts:, files:, template_contents:, decision_policy:, env:, events:, workers: 0) + def execute_recipe_reports_classified(project_root:, recipes:, facts:, files:, template_contents:, decision_policy:, env:, events:, workers: 0, stats: nil) indexed_recipes = recipes.each_with_index.to_a reports_by_index = {} worker_safe, main_only = indexed_recipes.partition { |recipe, _index| worker_safe_recipe?(recipe) } + use_ractors = workers.to_i.positive? && worker_safe.any? + worker_count = use_ractors ? [workers.to_i, worker_safe.length].min : 0 + record_recipe_planning_execution_stats( + stats, + worker_safe: worker_safe.length, + main_only: main_only.length, + worker_count: worker_count, + spawned: worker_count, + ractor_recipes: use_ractors ? worker_safe.length : 0, + main_recipes: main_only.length + (use_ractors ? 0 : worker_safe.length) + ) reports_by_index.merge!( - if workers.to_i.positive? && worker_safe.any? + if use_ractors execute_worker_safe_recipe_reports_ractor( project_root: project_root, indexed_recipes: worker_safe, @@ -3673,7 +3697,7 @@ def execute_recipe_reports_classified(project_root:, recipes:, facts:, files:, t template_contents: template_contents, decision_policy: decision_policy, env: env, - workers: workers.to_i + workers: worker_count ) else execute_indexed_recipe_reports( @@ -3722,30 +3746,58 @@ def execute_indexed_recipe_reports(project_root:, indexed_recipes:, facts:, file end end + def record_recipe_planning_execution_stats(stats, worker_safe:, main_only:, worker_count:, spawned:, ractor_recipes:, main_recipes:) + return unless stats + + stats[:worker_safe_recipes] = worker_safe + stats[:main_only_recipes] = main_only + stats[:ractor_worker_count] = worker_count + stats[:ractor_spawn_count] = spawned + stats[:ractor_recipe_count] = ractor_recipes + stats[:main_recipe_count] = main_recipes + end + def execute_worker_safe_recipe_reports_ractor(project_root:, indexed_recipes:, facts:, files:, template_contents:, decision_policy:, env:, workers:) - indexed_recipes.each_slice(workers).each_with_object({}) do |slice, reports| - slice.map do |recipe, index| - started_at = monotonic_time - payload = Ractor.make_shareable({ - project_root: project_root, - recipe: recipe, - facts: facts, - files: files, - template_contents: template_contents, - decision_policy: decision_policy, - env: env - }) - [ - index, - started_at, - Ractor.new(payload) do |worker_payload| - Kettle::Jem.execute_recipe(**worker_payload) + context = Ractor.make_shareable({ + project_root: project_root, + facts: facts, + files: files, + template_contents: template_contents, + decision_policy: decision_policy, + env: env + }) + chunks = Array.new(workers) { [] } + indexed_recipes.each_with_index do |job, offset| + chunks.fetch(offset % chunks.length) << job + end + pool = chunks.reject(&:empty?).map do |chunk| + jobs = Ractor.make_shareable(chunk.map { |recipe, index| {index: index, recipe: recipe} }) + started_at = monotonic_time + [ + started_at, + Ractor.new(context, jobs) do |worker_context, worker_jobs| + ractor_id = Ractor.current.object_id + worker_jobs.map do |job| + report = Kettle::Jem.execute_recipe(**worker_context.merge(recipe: job.fetch(:recipe))) + [job.fetch(:index), report, ractor_id] end - ] - end.each do |index, started_at, worker| - reports[index] = report_with_duration(worker.value, duration_ms_since(started_at)) + end + ] + end + reports = {} + pool.each do |started_at, worker| + worker_results = worker.value + duration_ms = duration_ms_since(started_at) + worker_results.each do |index, report, ractor_id| + report = report_with_duration(report, duration_ms) + report[:metadata][:executor] = "ractor" + report[:metadata][:ractor_id] = ractor_id + report.dig(:report_envelope, :report, :metadata)[:executor] = "ractor" + report.dig(:report_envelope, :report, :metadata)[:ractor_id] = ractor_id + reports[index] = report end end + reports end def execute_timed_recipe(project_root:, recipe:, facts:, files:, template_contents:, decision_policy:, env:) diff --git a/gems/kettle-jem/spec/integration/recipe_planning_spec.rb b/gems/kettle-jem/spec/integration/recipe_planning_spec.rb index 2b6004e16..4078a936a 100644 --- a/gems/kettle-jem/spec/integration/recipe_planning_spec.rb +++ b/gems/kettle-jem/spec/integration/recipe_planning_spec.rb @@ -232,12 +232,17 @@ normalize = lambda do |reports| Marshal.load(Marshal.dump(reports)).each do |report| report.dig(:metadata)&.delete(:duration_ms) + report.dig(:metadata)&.delete(:executor) + report.dig(:metadata)&.delete(:ractor_id) report.dig(:report_envelope, :report, :metadata)&.delete(:duration_ms) + report.dig(:report_envelope, :report, :metadata)&.delete(:executor) + report.dig(:report_envelope, :report, :metadata)&.delete(:ractor_id) end end main_ractor = described_class.send(:execute_recipe_reports, **common.merge(workers: 0)) - workers = described_class.send(:execute_recipe_reports, **common.merge(workers: 2)) + stats = {} + workers = described_class.send(:execute_recipe_reports, **common.merge(workers: 2, stats: stats)) expect(normalize.call(workers)).to eq(normalize.call(main_ractor)) expect(workers.map { |report| report.fetch(:recipe_name) }).to eq(%w[ @@ -245,6 +250,17 @@ noop_main_only github_actions_obsolete_workflow_cleanup_stale ]) + expect(stats).to include( + worker_safe_recipes: 2, + main_only_recipes: 1, + ractor_worker_count: 2, + ractor_spawn_count: 2, + ractor_recipe_count: 2, + main_recipe_count: 1 + ) + expect(workers.fetch(0).dig(:metadata, :executor)).to eq("ractor") + expect(workers.fetch(2).dig(:metadata, :executor)).to eq("ractor") + expect(workers.fetch(1).dig(:metadata, :executor)).to be_nil end end From 2c5dfae998e5ea82f630363f6e52a5af21d9f872 Mon Sep 17 00:00:00 2001 From: "Peter H. Boling" Date: Mon, 20 Jul 2026 16:40:34 -0600 Subject: [PATCH 088/188] Show kettle-jem benchmark progress Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- gems/kettle-jem/CHANGELOG.md | 5 +-- gems/kettle-jem/benchmarks/README.md | 4 +++ .../benchmarks/kettle_jem_ractor_planning.rb | 35 +++++++++++++++---- 3 files changed, 36 insertions(+), 8 deletions(-) diff --git a/gems/kettle-jem/CHANGELOG.md b/gems/kettle-jem/CHANGELOG.md index cc0e47104..de7f2197f 100644 --- a/gems/kettle-jem/CHANGELOG.md +++ b/gems/kettle-jem/CHANGELOG.md @@ -64,8 +64,9 @@ Please file a bug if you notice a violation of semantic versioning. compares classified planning and phase-gated file work with and without opt-in Ractor workers. The harness now defaults `KJ_MIN_RUBY` to `1.8.7` so benchmark runs exercise legacy workflow and gemfile generation through the - supported one-shot `template --accept-config` flow, and it records the latest - benchmark outcome in a committed results README. + supported one-shot `template --accept-config` flow, prints progress while + long benchmark matrices run, and records the latest benchmark outcome in a + committed results README. - Apply now routes recipe report mutations through explicit write intents and phase-gated per-file work units, preparing the file-processing path for opt-in `KETTLE_JEM_RACTOR_FILE_WORKERS` execution without changing phase gates diff --git a/gems/kettle-jem/benchmarks/README.md b/gems/kettle-jem/benchmarks/README.md index e1727ce5c..677abfc49 100644 --- a/gems/kettle-jem/benchmarks/README.md +++ b/gems/kettle-jem/benchmarks/README.md @@ -40,6 +40,10 @@ worker-safe recipe count, Ractor spawn count, and recipe count actually executed by Ractors. These counters distinguish "workers were enabled" from "work actually ran in Ractors". +Long runs print timestamped progress lines before and after each measured +variant run, including elapsed seconds and recipe/change counts for completed +runs. + For `plan`, file-worker variants are skipped because no filesystem apply phase runs. The default `template --accept-config` run exercises kettle-jem's supported one-shot flow: environment variables seed `.structuredmerge/kettle-jem.yml`, diff --git a/gems/kettle-jem/benchmarks/kettle_jem_ractor_planning.rb b/gems/kettle-jem/benchmarks/kettle_jem_ractor_planning.rb index 0f08c42fd..159e8f66c 100755 --- a/gems/kettle-jem/benchmarks/kettle_jem_ractor_planning.rb +++ b/gems/kettle-jem/benchmarks/kettle_jem_ractor_planning.rb @@ -18,6 +18,7 @@ RESULTS_README = File.join(BENCHMARK_ROOT, "results", "README.md") KETTLE_JEM_EXE = File.join(PROJECT_ROOT, "exe", "kettle-jem") SUMMARIZE_ONLY = ARGV.delete("--summarize-only") +STDOUT.sync = true RUNS = Integer(ENV.fetch("KETTLE_JEM_BENCHMARK_RUNS", "3")) WORKER_COUNTS = ENV.fetch("KETTLE_JEM_BENCHMARK_WORKERS", [2, Etc.nprocessors].min.to_s) @@ -118,6 +119,10 @@ def summarize(times) } end +def progress(message) + puts "[#{Time.now.iso8601}] #{message}" +end + def report_snapshot(path) report = JSON.parse(File.read(path)) planning_execution = report.fetch("recipe_planning_execution", {}) @@ -139,6 +144,7 @@ def run_variant(variant, index) env = ENV.to_h.merge(BASE_ENV).merge(variant.fetch(:env)) command = benchmark_command(report_path) + progress("starting #{variant.fetch(:name)} run #{index}/#{RUNS}") reset_worktree started_at = Process.clock_gettime(Process::CLOCK_MONOTONIC) stdout, stderr, status = Open3.capture3(env, *command, chdir: WORKTREE) @@ -153,7 +159,20 @@ def run_variant(variant, index) #{stderr} MESSAGE - [elapsed, report_snapshot(report_path)] + snapshot = report_snapshot(report_path) + progress( + format( + "finished %s run %d/%d in %.3fs (%d recipes, %d changed, %d ractor jobs)", + variant: variant.fetch(:name), + index: index, + runs: RUNS, + elapsed: elapsed, + recipes: snapshot.fetch(:recipes), + changed: snapshot.fetch(:changed), + ractor_jobs: snapshot.fetch(:ractor_recipes) + ) + ) + [elapsed, snapshot] ensure reset_worktree end @@ -273,6 +292,13 @@ def write_results_readme(payload) reset_worktree variants = benchmark_variants +puts "kettle-jem Ractor planning benchmark" +puts "fixture: #{FIXTURE_ROOT}" +puts "command: kettle-jem #{COMMAND}" +puts "runs: #{RUNS}" +puts "worker counts: #{WORKER_COUNTS.join(", ")}" +puts "variants: #{variants.length}" +puts results = variants.to_h do |variant| times = [] snapshots = [] @@ -284,11 +310,8 @@ def write_results_readme(payload) [variant.fetch(:name), {times: times, summary: summarize(times), snapshot: snapshots.last}] end -puts "kettle-jem Ractor planning benchmark" -puts "fixture: #{FIXTURE_ROOT}" -puts "command: kettle-jem #{COMMAND}" -puts "runs: #{RUNS}" -puts "worker counts: #{WORKER_COUNTS.join(", ")}" +puts +puts "summary" puts puts format( "%-28s %8s %8s %8s %8s %7s %7s %7s %7s %7s %7s %7s", From 3ffe3be7dd2b660d836eaafb97c9958d8cf1da46 Mon Sep 17 00:00:00 2001 From: "Peter H. Boling" Date: Mon, 20 Jul 2026 17:01:02 -0600 Subject: [PATCH 089/188] Clarify kettle-jem Ractor benchmark counters Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- gems/kettle-jem/CHANGELOG.md | 9 +- gems/kettle-jem/benchmarks/README.md | 10 +- .../benchmarks/kettle_jem_ractor_planning.rb | 36 ++++--- gems/kettle-jem/lib/kettle/jem.rb | 94 ++++++++++++++++--- .../spec/integration/recipe_planning_spec.rb | 59 ++++++++++-- 5 files changed, 172 insertions(+), 36 deletions(-) diff --git a/gems/kettle-jem/CHANGELOG.md b/gems/kettle-jem/CHANGELOG.md index de7f2197f..af1416052 100644 --- a/gems/kettle-jem/CHANGELOG.md +++ b/gems/kettle-jem/CHANGELOG.md @@ -24,7 +24,9 @@ Please file a bug if you notice a violation of semantic versioning. recipe dispatch and template-policy paths instead of reallocating them during each recipe execution. - Opt-in recipe-planning Ractor mode now batches worker-safe recipes across a - bounded chunked worker pool instead of spawning one Ractor per recipe. + bounded chunked worker pool instead of spawning one Ractor per recipe, and it + keeps parser/merge paths with known unshareable dependency state on the main + Ractor. ### Fixed @@ -65,8 +67,9 @@ Please file a bug if you notice a violation of semantic versioning. opt-in Ractor workers. The harness now defaults `KJ_MIN_RUBY` to `1.8.7` so benchmark runs exercise legacy workflow and gemfile generation through the supported one-shot `template --accept-config` flow, prints progress while - long benchmark matrices run, and records the latest benchmark outcome in a - committed results README. + long benchmark matrices run, records planning and file-worker execution + counters, and records the latest benchmark outcome in a committed results + README. - Apply now routes recipe report mutations through explicit write intents and phase-gated per-file work units, preparing the file-processing path for opt-in `KETTLE_JEM_RACTOR_FILE_WORKERS` execution without changing phase gates diff --git a/gems/kettle-jem/benchmarks/README.md b/gems/kettle-jem/benchmarks/README.md index 677abfc49..16bf994f8 100644 --- a/gems/kettle-jem/benchmarks/README.md +++ b/gems/kettle-jem/benchmarks/README.md @@ -37,12 +37,14 @@ The default `template` benchmark compares: Benchmark summaries include planning execution counters from each report: worker-safe recipe count, Ractor spawn count, and recipe count actually executed -by Ractors. These counters distinguish "workers were enabled" from "work -actually ran in Ractors". +by planning Ractors. They also include file-work counters: file work units, +file-worker Ractor spawns, and file work units committed in Ractors. These +counters distinguish "workers were enabled" from "work actually ran in +Ractors". Long runs print timestamped progress lines before and after each measured -variant run, including elapsed seconds and recipe/change counts for completed -runs. +variant run, including elapsed seconds, recipe/change counts, planning Ractor +recipe counts, and file Ractor unit counts for completed runs. For `plan`, file-worker variants are skipped because no filesystem apply phase runs. The default `template --accept-config` run exercises kettle-jem's diff --git a/gems/kettle-jem/benchmarks/kettle_jem_ractor_planning.rb b/gems/kettle-jem/benchmarks/kettle_jem_ractor_planning.rb index 159e8f66c..cc633c83a 100755 --- a/gems/kettle-jem/benchmarks/kettle_jem_ractor_planning.rb +++ b/gems/kettle-jem/benchmarks/kettle_jem_ractor_planning.rb @@ -126,6 +126,7 @@ def progress(message) def report_snapshot(path) report = JSON.parse(File.read(path)) planning_execution = report.fetch("recipe_planning_execution", {}) + file_execution = report.fetch("file_work_execution", {}) { strategy: report["recipe_planning_strategy"], planning_workers: report["recipe_planning_workers"], @@ -134,6 +135,9 @@ def report_snapshot(path) main_only_recipes: planning_execution.fetch("main_only_recipes", 0), ractor_spawns: planning_execution.fetch("ractor_spawn_count", 0), ractor_recipes: planning_execution.fetch("ractor_recipe_count", 0), + file_work_units: file_execution.fetch("file_work_units", 0), + file_ractor_spawns: file_execution.fetch("file_ractor_spawn_count", 0), + file_ractor_units: file_execution.fetch("file_ractor_units", 0), recipes: Array(report["recipe_reports"]).length, changed: Array(report["changed_files"]).length } @@ -162,14 +166,15 @@ def run_variant(variant, index) snapshot = report_snapshot(report_path) progress( format( - "finished %s run %d/%d in %.3fs (%d recipes, %d changed, %d ractor jobs)", + "finished %s run %d/%d in %.3fs (%d recipes, %d changed, %d planning ractor recipes, %d file ractor units)", variant: variant.fetch(:name), index: index, runs: RUNS, elapsed: elapsed, recipes: snapshot.fetch(:recipes), changed: snapshot.fetch(:changed), - ractor_jobs: snapshot.fetch(:ractor_recipes) + plan_ractor: snapshot.fetch(:ractor_recipes), + file_ractor: snapshot.fetch(:file_ractor_units) ) ) [elapsed, snapshot] @@ -242,14 +247,14 @@ def build_results_readme(payload) "| Minimum Ruby | `#{payload.fetch("min_ruby")}` |", "| Source reports | `#{payload.fetch("report_root")}` |", "", - "| Variant | Min | Median | Mean | Max | Plan workers | File workers | Safe recipes | Ractor spawns | Ractor recipes | Recipes | Changed |", - "| --- | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: |" + "| Variant | Min | Median | Mean | Max | Plan workers | File workers | Safe recipes | Plan spawns | Plan Ractor recipes | File units | File spawns | File Ractor units | Recipes | Changed |", + "| --- | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: |" ] variants.each do |name, result| summary = result.fetch("summary") snapshot = result.fetch("snapshot") lines << format( - "| `%s` | %s | %s | %s | %s | %d | %d | %d | %d | %d | %d | %d |", + "| `%s` | %s | %s | %s | %s | %d | %d | %d | %d | %d | %d | %d | %d | %d | %d |", name: name, min: format_seconds(summary.fetch("min")), median: format_seconds(summary.fetch("median")), @@ -258,8 +263,11 @@ def build_results_readme(payload) plan: snapshot.fetch("planning_workers"), file: snapshot.fetch("file_workers"), safe: snapshot.fetch("worker_safe_recipes"), - spawns: snapshot.fetch("ractor_spawns"), - ractor_recipes: snapshot.fetch("ractor_recipes"), + plan_spawns: snapshot.fetch("ractor_spawns"), + plan_ractor_recipes: snapshot.fetch("ractor_recipes"), + file_units: snapshot.fetch("file_work_units"), + file_spawns: snapshot.fetch("file_ractor_spawns"), + file_ractor_units: snapshot.fetch("file_ractor_units"), recipes: snapshot.fetch("recipes"), changed: snapshot.fetch("changed") ) @@ -314,7 +322,7 @@ def write_results_readme(payload) puts "summary" puts puts format( - "%-28s %8s %8s %8s %8s %7s %7s %7s %7s %7s %7s %7s", + "%-28s %8s %8s %8s %8s %7s %7s %7s %7s %7s %7s %7s %7s %7s %7s", "variant", "min", "median", @@ -323,8 +331,11 @@ def write_results_readme(payload) "plan_w", "file_w", "safe", - "spawns", - "r_jobs", + "p_spawn", + "p_jobs", + "f_units", + "f_spawn", + "f_jobs", "recipes", "changed" ) @@ -332,7 +343,7 @@ def write_results_readme(payload) summary = result.fetch(:summary) snapshot = result.fetch(:snapshot) puts format( - "%-28s %8.3fs %8.3fs %8.3fs %8.3fs %7d %7d %7d %7d %7d %7d %7d", + "%-28s %8.3fs %8.3fs %8.3fs %8.3fs %7d %7d %7d %7d %7d %7d %7d %7d %7d %7d", name, summary.fetch(:min), summary.fetch(:median), @@ -343,6 +354,9 @@ def write_results_readme(payload) snapshot.fetch(:worker_safe_recipes), snapshot.fetch(:ractor_spawns), snapshot.fetch(:ractor_recipes), + snapshot.fetch(:file_work_units), + snapshot.fetch(:file_ractor_spawns), + snapshot.fetch(:file_ractor_units), snapshot.fetch(:recipes), snapshot.fetch(:changed) ) diff --git a/gems/kettle-jem/lib/kettle/jem.rb b/gems/kettle-jem/lib/kettle/jem.rb index 588ad0465..4874793ea 100644 --- a/gems/kettle-jem/lib/kettle/jem.rb +++ b/gems/kettle-jem/lib/kettle/jem.rb @@ -359,6 +359,14 @@ class Error < StandardError; end supplied_template_source_preference supplied_template_source_application ].freeze + PROJECT_ROOT_SENSITIVE_TEMPLATE_PATHS = %w[ + README.md + mise.toml + ].freeze + RACTOR_SAFE_ACCEPT_TEMPLATE_FILE_TYPES = %i[ + rbs + ruby + ].freeze RAKEFILE_GUARDED_REQUIRE_NAMES = %w[kettle/dev kettle/jem stone_checksums].freeze COVERAGE_THRESHOLD_KEYS = %w[K_SOUP_COV_MIN_BRANCH K_SOUP_COV_MIN_LINE].freeze GITHUB_WORKFLOW_ENGINE_JOB_KEYS = { @@ -3771,7 +3779,12 @@ def execute_worker_safe_recipe_reports_ractor(project_root:, indexed_recipes:, f chunks.fetch(offset % chunks.length) << job end pool = chunks.reject(&:empty?).map do |chunk| - jobs = Ractor.make_shareable(chunk.map { |recipe, index| {index: index, recipe: recipe} }) + jobs = Ractor.make_shareable(chunk.map do |recipe, index| + { + index: index, + recipe: worker_safe_recipe_payload(recipe, project_root: project_root, template_contents: template_contents) + } + end) started_at = monotonic_time [ started_at, @@ -3800,6 +3813,20 @@ def execute_worker_safe_recipe_reports_ractor(project_root:, indexed_recipes:, f reports end + def worker_safe_recipe_payload(recipe, project_root:, template_contents:) + return recipe unless recipe.fetch(:primitive).to_s == "supplied_template_source_application" + return recipe if recipe.dig(:template_preference, :strategy).to_s == "raw_copy" + + content = recipe_template_content(project_root, recipe, template_contents: template_contents) + recipe.merge( + resolved_template_content: resolve_template_tokens( + content, + recipe.fetch(:template_tokens, {}), + scan_unresolved: unresolved_template_scan?(recipe) + ) + ) + end + def execute_timed_recipe(project_root:, recipe:, facts:, files:, template_contents:, decision_policy:, env:) timed_recipe_report do execute_recipe( @@ -3816,7 +3843,22 @@ def execute_timed_recipe(project_root:, recipe:, facts:, files:, template_conten def worker_safe_recipe?(recipe) name = recipe.fetch(:name).to_s - WORKER_SAFE_RECIPE_NAME_PATTERNS.any? { |pattern| pattern.match?(name) } + return true if WORKER_SAFE_RECIPE_NAME_PATTERNS.any? { |pattern| pattern.match?(name) } + + template_source_application_worker_safe?(recipe) + end + + def template_source_application_worker_safe?(recipe) + return false unless recipe.fetch(:primitive).to_s == "supplied_template_source_application" + + path = recipe.fetch(:target_path).to_s + return false if PROJECT_ROOT_SENSITIVE_TEMPLATE_PATHS.include?(path) + return false if path == KETTLE_CONFIG_PATH + return false if github_workflow_template_recipe?(recipe) + return true if recipe.dig(:template_preference, :strategy).to_s == "raw_copy" + + recipe.dig(:template_preference, :strategy).to_s == "accept_template" && + RACTOR_SAFE_ACCEPT_TEMPLATE_FILE_TYPES.include?(template_file_type(recipe)) end def apply_project(project_root, env: ENV, run_options: {}) @@ -3824,6 +3866,7 @@ def apply_project(project_root, env: ENV, run_options: {}) report = plan_project(project_root, env: env, run_options: run_options).merge(mode: "apply") file_work_workers = with_event_phase(events, "file_work_workers") { file_work_workers_for(env, run_options) } report[:file_work_workers] = file_work_workers + report[:file_work_execution] = file_work_execution_stats(file_work_workers) with_event_phase(events, "apply") do before_apply_files = with_event_phase(events, "snapshot_changed_files") do snapshot_changed_files( @@ -3832,7 +3875,7 @@ def apply_project(project_root, env: ENV, run_options: {}) ) end with_event_phase(events, "write_template_files") do - run_apply_phases(project_root, report, file_workers: file_work_workers) + run_apply_phases(project_root, report, file_workers: file_work_workers, file_stats: report.fetch(:file_work_execution)) end report[:changed_files] = with_event_phase(events, "actual_changed_files") do actual_changed_files_after_apply(project_root, report.fetch(:changed_files), before_apply_files) @@ -5295,11 +5338,13 @@ def apply_template_source(project_root, recipe, original, facts: nil, env: ENV, return finalize_github_workflow_template(content, facts) if strategy == "raw_copy" && github_workflow_template_recipe?(recipe) return finalize_template_source_content(recipe, content) if strategy == "raw_copy" - resolved = resolve_template_tokens( - content, - recipe.fetch(:template_tokens, {}), - scan_unresolved: unresolved_template_scan?(recipe) - ) + resolved = recipe.fetch(:resolved_template_content) do + resolve_template_tokens( + content, + recipe.fetch(:template_tokens, {}), + scan_unresolved: unresolved_template_scan?(recipe) + ) + end rescue ArgumentError => e raise ArgumentError, "#{recipe.fetch(:target_path)}: #{e.message}" else @@ -10482,7 +10527,7 @@ def plugin_lifecycle_diagnostic(plugin_registry, callbacks_run:, active_runner_p } end - def run_apply_phases(project_root, report, file_workers: 0) + def run_apply_phases(project_root, report, file_workers: 0, file_stats: nil) plugin_registry = plugin_registry_for_project(project_root) changed_files = report.fetch(:changed_files) diagnostics = report.fetch(:diagnostics) @@ -10512,7 +10557,8 @@ def run_apply_phases(project_root, report, file_workers: 0) end commit_file_work_units( file_work_units_for_phase(project_root, reports_by_phase.fetch(phase, [])), - workers: file_workers + workers: file_workers, + stats: file_stats ) unless plugin_registry.empty? plugin_registry.run( @@ -10535,19 +10581,45 @@ def run_apply_phases(project_root, report, file_workers: 0) report[:run_stats] = recipe_run_stats(report.fetch(:recipe_reports), diagnostics: diagnostics) end + def file_work_execution_stats(file_workers) + { + file_worker_count: file_workers.to_i, + file_work_units: 0, + file_operations: 0, + file_ractor_units: 0, + file_ractor_spawn_count: 0, + main_file_units: 0 + } + end + def apply_recipe_report(project_root, recipe_report) intent = write_intent_from_recipe_report(project_root, recipe_report) commit_file_outcome(intent) if intent end - def commit_file_work_units(file_work_units, workers: 0) + def commit_file_work_units(file_work_units, workers: 0, stats: nil) units = Array(file_work_units) return if units.empty? + + record_file_work_execution_stats(stats, units: units, workers: workers.to_i) return commit_file_work_units_ractor(units, workers: workers.to_i) if workers.to_i.positive? units.each { |file_work_unit| commit_file_work_unit(file_work_unit) } end + def record_file_work_execution_stats(stats, units:, workers:) + return unless stats + + stats[:file_work_units] += units.length + stats[:file_operations] += units.sum { |unit| unit.operations.length } + if workers.positive? + stats[:file_ractor_units] += units.length + stats[:file_ractor_spawn_count] += units.length + else + stats[:main_file_units] += units.length + end + end + def commit_file_work_units_ractor(file_work_units, workers:) file_work_units.each_slice(workers).each do |slice| slice.map do |file_work_unit| diff --git a/gems/kettle-jem/spec/integration/recipe_planning_spec.rb b/gems/kettle-jem/spec/integration/recipe_planning_spec.rb index 4078a936a..59e8e6fd0 100644 --- a/gems/kettle-jem/spec/integration/recipe_planning_spec.rb +++ b/gems/kettle-jem/spec/integration/recipe_planning_spec.rb @@ -104,7 +104,7 @@ end - it "classifies only side-effect-free cleanup and generated recipes as worker-safe for now" do + it "classifies side-effect-free cleanup and template-source recipes as worker-safe" do safe_recipe = { name: "github_actions_obsolete_workflow_cleanup_old", target_path: ".github/workflows/old.yml", @@ -112,7 +112,15 @@ primitive: "supplied_obsolete_file_deletion", facts: [] } - main_only_recipe = { + template_recipe = { + name: "template_source_application_notes_txt", + target_path: "notes.txt", + provider_family: "text", + primitive: "supplied_template_source_application", + facts: [], + template_preference: {strategy: "raw_copy", selected_source: "templates/notes.txt.example"} + } + readme_recipe = { name: "template_source_application_readme", target_path: "README.md", provider_family: "markdown", @@ -121,7 +129,16 @@ } expect(described_class.send(:worker_safe_recipe?, safe_recipe)).to be(true) - expect(described_class.send(:worker_safe_recipe?, main_only_recipe)).to be(false) + expect(described_class.send(:worker_safe_recipe?, template_recipe)).to be(true) + expect(described_class.send(:worker_safe_recipe?, readme_recipe)).to be(false) + expect(described_class.send(:worker_safe_recipe?, template_recipe.merge(target_path: ".github/workflows/ci.yml"))).to be(false) + expect(described_class.send(:worker_safe_recipe?, template_recipe.merge(target_path: described_class::KETTLE_CONFIG_PATH))).to be(false) + expect( + described_class.send( + :worker_safe_recipe?, + template_recipe.merge(target_path: "Gemfile", template_preference: {strategy: "accept_template", selected_source: "Gemfile.example"}) + ) + ).to be(false) end @@ -187,8 +204,10 @@ write_tree(root, { ".github/workflows/old.yml" => "name: old\n", ".github/workflows/stale.yml" => "name: stale\n", + "templates/notes.txt.example" => "generated notes\n", "README.md" => "# Example\n" }) + template_path = File.join(root, "templates/notes.txt.example") recipes = [ { name: "github_actions_obsolete_workflow_cleanup_old", @@ -204,6 +223,19 @@ primitive: "noop", facts: [] }, + { + name: "template_source_application_notes_txt", + target_path: "notes.txt", + provider_family: "text", + primitive: "supplied_template_source_application", + facts: [], + template_preference: { + strategy: "raw_copy", + source_root_path: root, + source_relative_path: "templates/notes.txt.example", + selected_source: "templates/notes.txt.example" + } + }, { name: "github_actions_obsolete_workflow_cleanup_stale", target_path: ".github/workflows/stale.yml", @@ -215,6 +247,7 @@ files = { ".github/workflows/old.yml" => "name: old\n", ".github/workflows/stale.yml" => "name: stale\n", + "notes.txt" => "", "README.md" => "# Example\n" } policy = described_class::DecisionPolicy.from_env({"force" => "true"}) @@ -223,7 +256,7 @@ recipes: recipes, facts: {}, files: files, - template_contents: {}, + template_contents: {template_path => "generated notes\n"}, decision_policy: policy, env: {}, events: nil, @@ -248,18 +281,20 @@ expect(workers.map { |report| report.fetch(:recipe_name) }).to eq(%w[ github_actions_obsolete_workflow_cleanup_old noop_main_only + template_source_application_notes_txt github_actions_obsolete_workflow_cleanup_stale ]) expect(stats).to include( - worker_safe_recipes: 2, + worker_safe_recipes: 3, main_only_recipes: 1, ractor_worker_count: 2, ractor_spawn_count: 2, - ractor_recipe_count: 2, + ractor_recipe_count: 3, main_recipe_count: 1 ) expect(workers.fetch(0).dig(:metadata, :executor)).to eq("ractor") expect(workers.fetch(2).dig(:metadata, :executor)).to eq("ractor") + expect(workers.fetch(3).dig(:metadata, :executor)).to eq("ractor") expect(workers.fetch(1).dig(:metadata, :executor)).to be_nil end end @@ -428,10 +463,20 @@ ] ) - described_class.send(:commit_file_work_units, [first_work_unit, second_work_unit], workers: 2) + stats = described_class.send(:file_work_execution_stats, 2) + + described_class.send(:commit_file_work_units, [first_work_unit, second_work_unit], workers: 2, stats: stats) expect(File.read(first_path)).to eq("first\n") expect(File).not_to exist(second_path) + expect(stats).to include( + file_worker_count: 2, + file_work_units: 2, + file_operations: 3, + file_ractor_units: 2, + file_ractor_spawn_count: 2, + main_file_units: 0 + ) end end From a569f346d4d05036b2642b2d247186d8a2f68810 Mon Sep 17 00:00:00 2001 From: "Peter H. Boling" Date: Mon, 20 Jul 2026 17:32:41 -0600 Subject: [PATCH 090/188] Add thread-backed kettle-jem workers Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- gems/kettle-jem/CHANGELOG.md | 7 +- gems/kettle-jem/benchmarks/README.md | 17 +- .../benchmarks/kettle_jem_ractor_planning.rb | 113 ++++++++--- gems/kettle-jem/benchmarks/results/README.md | 53 +++--- gems/kettle-jem/lib/kettle/jem.rb | 176 +++++++++++++++--- .../spec/integration/recipe_planning_spec.rb | 143 ++++++++++++++ 6 files changed, 417 insertions(+), 92 deletions(-) diff --git a/gems/kettle-jem/CHANGELOG.md b/gems/kettle-jem/CHANGELOG.md index af1416052..ce7ad1995 100644 --- a/gems/kettle-jem/CHANGELOG.md +++ b/gems/kettle-jem/CHANGELOG.md @@ -27,6 +27,9 @@ Please file a bug if you notice a violation of semantic versioning. bounded chunked worker pool instead of spawning one Ractor per recipe, and it keeps parser/merge paths with known unshareable dependency state on the main Ractor. +- Templating can now opt into thread-backed recipe planning and file work with + `KETTLE_JEM_THREAD_WORKERS` and `KETTLE_JEM_THREAD_FILE_WORKERS`, providing a + benchmarkable alternative to main-thread and Ractor execution. ### Fixed @@ -68,8 +71,8 @@ Please file a bug if you notice a violation of semantic versioning. benchmark runs exercise legacy workflow and gemfile generation through the supported one-shot `template --accept-config` flow, prints progress while long benchmark matrices run, records planning and file-worker execution - counters, and records the latest benchmark outcome in a committed results - README. + counters for both Ractors and threads, and records the latest benchmark + outcome in a committed results README. - Apply now routes recipe report mutations through explicit write intents and phase-gated per-file work units, preparing the file-processing path for opt-in `KETTLE_JEM_RACTOR_FILE_WORKERS` execution without changing phase gates diff --git a/gems/kettle-jem/benchmarks/README.md b/gems/kettle-jem/benchmarks/README.md index 16bf994f8..76e7c4dd7 100644 --- a/gems/kettle-jem/benchmarks/README.md +++ b/gems/kettle-jem/benchmarks/README.md @@ -24,7 +24,7 @@ Useful environment variables: | Variable | Default | Purpose | | --- | --- | --- | | `KETTLE_JEM_BENCHMARK_RUNS` | `3` | Number of measured runs for each variant. | -| `KETTLE_JEM_BENCHMARK_WORKERS` | `min(2, Etc.nprocessors)` | Comma-separated worker counts for Ractor variants. | +| `KETTLE_JEM_BENCHMARK_WORKERS` | `min(2, Etc.nprocessors)` | Comma-separated worker counts for Ractor and thread variants. | | `KETTLE_JEM_BENCHMARK_COMMAND` | `template` | Public `kettle-jem` command to benchmark: `plan`, `apply`, `template`, or `install`. | | `KETTLE_JEM_BENCHMARK_MIN_RUBY` | `1.8.7` | Minimum Ruby value passed through `KJ_MIN_RUBY` to broaden generated workflow/gemfile coverage. | @@ -32,19 +32,22 @@ The default `template` benchmark compares: - baseline classified planning with no Ractor workers - planning-only Ractor workers via `KETTLE_JEM_RACTOR_WORKERS` +- planning-only thread workers via `KETTLE_JEM_THREAD_WORKERS` - file-only Ractor workers via `KETTLE_JEM_RACTOR_FILE_WORKERS` +- file-only thread workers via `KETTLE_JEM_THREAD_FILE_WORKERS` - combined planning and file Ractor workers +- combined planning and file thread workers Benchmark summaries include planning execution counters from each report: -worker-safe recipe count, Ractor spawn count, and recipe count actually executed -by planning Ractors. They also include file-work counters: file work units, -file-worker Ractor spawns, and file work units committed in Ractors. These -counters distinguish "workers were enabled" from "work actually ran in -Ractors". +worker-safe recipe count, Ractor/thread spawn count, and recipe count actually +executed by planning Ractors or threads. They also include file-work counters: +file work units, file-worker Ractor/thread spawns, and file work units committed +in Ractors or threads. These counters distinguish "workers were enabled" from +"work actually ran concurrently". Long runs print timestamped progress lines before and after each measured variant run, including elapsed seconds, recipe/change counts, planning Ractor -recipe counts, and file Ractor unit counts for completed runs. +and thread recipe counts, and file Ractor/thread unit counts for completed runs. For `plan`, file-worker variants are skipped because no filesystem apply phase runs. The default `template --accept-config` run exercises kettle-jem's diff --git a/gems/kettle-jem/benchmarks/kettle_jem_ractor_planning.rb b/gems/kettle-jem/benchmarks/kettle_jem_ractor_planning.rb index cc633c83a..78599f296 100755 --- a/gems/kettle-jem/benchmarks/kettle_jem_ractor_planning.rb +++ b/gems/kettle-jem/benchmarks/kettle_jem_ractor_planning.rb @@ -63,7 +63,9 @@ def benchmark_variants env: { "KETTLE_JEM_RECIPE_PLANNING_STRATEGY" => "classified", "KETTLE_JEM_RACTOR_WORKERS" => "0", - "KETTLE_JEM_RACTOR_FILE_WORKERS" => "0" + "KETTLE_JEM_THREAD_WORKERS" => "0", + "KETTLE_JEM_RACTOR_FILE_WORKERS" => "0", + "KETTLE_JEM_THREAD_FILE_WORKERS" => "0" } } ] @@ -74,7 +76,19 @@ def benchmark_variants env: { "KETTLE_JEM_RECIPE_PLANNING_STRATEGY" => "classified", "KETTLE_JEM_RACTOR_WORKERS" => workers.to_s, - "KETTLE_JEM_RACTOR_FILE_WORKERS" => "0" + "KETTLE_JEM_THREAD_WORKERS" => "0", + "KETTLE_JEM_RACTOR_FILE_WORKERS" => "0", + "KETTLE_JEM_THREAD_FILE_WORKERS" => "0" + } + } + variants << { + name: "planning-thread-#{workers}", + env: { + "KETTLE_JEM_RECIPE_PLANNING_STRATEGY" => "classified", + "KETTLE_JEM_RACTOR_WORKERS" => "0", + "KETTLE_JEM_THREAD_WORKERS" => workers.to_s, + "KETTLE_JEM_RACTOR_FILE_WORKERS" => "0", + "KETTLE_JEM_THREAD_FILE_WORKERS" => "0" } } next if COMMAND == "plan" @@ -84,7 +98,19 @@ def benchmark_variants env: { "KETTLE_JEM_RECIPE_PLANNING_STRATEGY" => "classified", "KETTLE_JEM_RACTOR_WORKERS" => "0", - "KETTLE_JEM_RACTOR_FILE_WORKERS" => workers.to_s + "KETTLE_JEM_THREAD_WORKERS" => "0", + "KETTLE_JEM_RACTOR_FILE_WORKERS" => workers.to_s, + "KETTLE_JEM_THREAD_FILE_WORKERS" => "0" + } + } + variants << { + name: "file-thread-#{workers}", + env: { + "KETTLE_JEM_RECIPE_PLANNING_STRATEGY" => "classified", + "KETTLE_JEM_RACTOR_WORKERS" => "0", + "KETTLE_JEM_THREAD_WORKERS" => "0", + "KETTLE_JEM_RACTOR_FILE_WORKERS" => "0", + "KETTLE_JEM_THREAD_FILE_WORKERS" => workers.to_s } } variants << { @@ -92,7 +118,19 @@ def benchmark_variants env: { "KETTLE_JEM_RECIPE_PLANNING_STRATEGY" => "classified", "KETTLE_JEM_RACTOR_WORKERS" => workers.to_s, - "KETTLE_JEM_RACTOR_FILE_WORKERS" => workers.to_s + "KETTLE_JEM_THREAD_WORKERS" => "0", + "KETTLE_JEM_RACTOR_FILE_WORKERS" => workers.to_s, + "KETTLE_JEM_THREAD_FILE_WORKERS" => "0" + } + } + variants << { + name: "combined-thread-#{workers}", + env: { + "KETTLE_JEM_RECIPE_PLANNING_STRATEGY" => "classified", + "KETTLE_JEM_RACTOR_WORKERS" => "0", + "KETTLE_JEM_THREAD_WORKERS" => workers.to_s, + "KETTLE_JEM_RACTOR_FILE_WORKERS" => "0", + "KETTLE_JEM_THREAD_FILE_WORKERS" => workers.to_s } } end @@ -130,14 +168,20 @@ def report_snapshot(path) { strategy: report["recipe_planning_strategy"], planning_workers: report["recipe_planning_workers"], + planning_thread_workers: report.fetch("recipe_planning_thread_workers", 0), file_workers: report.fetch("file_work_workers", 0), + file_thread_workers: report.fetch("file_work_thread_workers", 0), worker_safe_recipes: planning_execution.fetch("worker_safe_recipes", 0), main_only_recipes: planning_execution.fetch("main_only_recipes", 0), ractor_spawns: planning_execution.fetch("ractor_spawn_count", 0), ractor_recipes: planning_execution.fetch("ractor_recipe_count", 0), + thread_spawns: planning_execution.fetch("thread_spawn_count", 0), + thread_recipes: planning_execution.fetch("thread_recipe_count", 0), file_work_units: file_execution.fetch("file_work_units", 0), file_ractor_spawns: file_execution.fetch("file_ractor_spawn_count", 0), file_ractor_units: file_execution.fetch("file_ractor_units", 0), + file_thread_spawns: file_execution.fetch("file_thread_spawn_count", 0), + file_thread_units: file_execution.fetch("file_thread_units", 0), recipes: Array(report["recipe_reports"]).length, changed: Array(report["changed_files"]).length } @@ -166,7 +210,7 @@ def run_variant(variant, index) snapshot = report_snapshot(report_path) progress( format( - "finished %s run %d/%d in %.3fs (%d recipes, %d changed, %d planning ractor recipes, %d file ractor units)", + "finished %s run %d/%d in %.3fs (%d recipes, %d changed, plan ractor/thread %d/%d, file ractor/thread %d/%d)", variant: variant.fetch(:name), index: index, runs: RUNS, @@ -174,7 +218,9 @@ def run_variant(variant, index) recipes: snapshot.fetch(:recipes), changed: snapshot.fetch(:changed), plan_ractor: snapshot.fetch(:ractor_recipes), - file_ractor: snapshot.fetch(:file_ractor_units) + plan_thread: snapshot.fetch(:thread_recipes), + file_ractor: snapshot.fetch(:file_ractor_units), + file_thread: snapshot.fetch(:file_thread_units) ) ) [elapsed, snapshot] @@ -233,6 +279,7 @@ def read_summary_json def build_results_readme(payload) variants = payload.fetch("variants") + snapshot_count = ->(snapshot, key) { snapshot.fetch(key, 0) } lines = [ "# kettle-jem benchmark results", "", @@ -247,29 +294,31 @@ def build_results_readme(payload) "| Minimum Ruby | `#{payload.fetch("min_ruby")}` |", "| Source reports | `#{payload.fetch("report_root")}` |", "", - "| Variant | Min | Median | Mean | Max | Plan workers | File workers | Safe recipes | Plan spawns | Plan Ractor recipes | File units | File spawns | File Ractor units | Recipes | Changed |", - "| --- | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: |" + "| Variant | Min | Median | Mean | Max | Plan Ractors | Plan threads | File Ractors | File threads | Safe recipes | Plan Ractor jobs | Plan thread jobs | File units | File Ractor units | File thread units | Recipes | Changed |", + "| --- | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: |" ] variants.each do |name, result| summary = result.fetch("summary") snapshot = result.fetch("snapshot") lines << format( - "| `%s` | %s | %s | %s | %s | %d | %d | %d | %d | %d | %d | %d | %d | %d | %d |", + "| `%s` | %s | %s | %s | %s | %d | %d | %d | %d | %d | %d | %d | %d | %d | %d | %d | %d |", name: name, min: format_seconds(summary.fetch("min")), median: format_seconds(summary.fetch("median")), mean: format_seconds(summary.fetch("mean")), max: format_seconds(summary.fetch("max")), - plan: snapshot.fetch("planning_workers"), - file: snapshot.fetch("file_workers"), - safe: snapshot.fetch("worker_safe_recipes"), - plan_spawns: snapshot.fetch("ractor_spawns"), - plan_ractor_recipes: snapshot.fetch("ractor_recipes"), - file_units: snapshot.fetch("file_work_units"), - file_spawns: snapshot.fetch("file_ractor_spawns"), - file_ractor_units: snapshot.fetch("file_ractor_units"), - recipes: snapshot.fetch("recipes"), - changed: snapshot.fetch("changed") + plan_ractors: snapshot_count.call(snapshot, "planning_workers"), + plan_threads: snapshot_count.call(snapshot, "planning_thread_workers"), + file_ractors: snapshot_count.call(snapshot, "file_workers"), + file_threads: snapshot_count.call(snapshot, "file_thread_workers"), + safe: snapshot_count.call(snapshot, "worker_safe_recipes"), + plan_ractor_recipes: snapshot_count.call(snapshot, "ractor_recipes"), + plan_thread_recipes: snapshot_count.call(snapshot, "thread_recipes"), + file_units: snapshot_count.call(snapshot, "file_work_units"), + file_ractor_units: snapshot_count.call(snapshot, "file_ractor_units"), + file_thread_units: snapshot_count.call(snapshot, "file_thread_units"), + recipes: snapshot_count.call(snapshot, "recipes"), + changed: snapshot_count.call(snapshot, "changed") ) end lines << "" @@ -322,20 +371,22 @@ def write_results_readme(payload) puts "summary" puts puts format( - "%-28s %8s %8s %8s %8s %7s %7s %7s %7s %7s %7s %7s %7s %7s %7s", + "%-28s %8s %8s %8s %8s %4s %4s %4s %4s %4s %4s %4s %4s %4s %4s %7s %7s", "variant", "min", "median", "mean", "max", - "plan_w", - "file_w", + "pr", + "pt", + "fr", + "ft", "safe", - "p_spawn", - "p_jobs", "f_units", - "f_spawn", - "f_jobs", + "pr_job", + "pt_job", + "fr_job", + "ft_job", "recipes", "changed" ) @@ -343,20 +394,22 @@ def write_results_readme(payload) summary = result.fetch(:summary) snapshot = result.fetch(:snapshot) puts format( - "%-28s %8.3fs %8.3fs %8.3fs %8.3fs %7d %7d %7d %7d %7d %7d %7d %7d %7d %7d", + "%-28s %8.3fs %8.3fs %8.3fs %8.3fs %4d %4d %4d %4d %4d %4d %4d %4d %4d %4d %7d %7d", name, summary.fetch(:min), summary.fetch(:median), summary.fetch(:mean), summary.fetch(:max), snapshot.fetch(:planning_workers), + snapshot.fetch(:planning_thread_workers), snapshot.fetch(:file_workers), + snapshot.fetch(:file_thread_workers), snapshot.fetch(:worker_safe_recipes), - snapshot.fetch(:ractor_spawns), - snapshot.fetch(:ractor_recipes), snapshot.fetch(:file_work_units), - snapshot.fetch(:file_ractor_spawns), + snapshot.fetch(:ractor_recipes), + snapshot.fetch(:thread_recipes), snapshot.fetch(:file_ractor_units), + snapshot.fetch(:file_thread_units), snapshot.fetch(:recipes), snapshot.fetch(:changed) ) diff --git a/gems/kettle-jem/benchmarks/results/README.md b/gems/kettle-jem/benchmarks/results/README.md index 6ed214dfe..7bf1dcf62 100644 --- a/gems/kettle-jem/benchmarks/results/README.md +++ b/gems/kettle-jem/benchmarks/results/README.md @@ -1,39 +1,40 @@ # kettle-jem benchmark results -Last generated: `2026-07-20T15:52:13-06:00` - -This committed snapshot records the last completed benchmark run for quick -reference. The run predates persisted timing summaries, so the recipe and -changed-file counts come from the saved JSON reports under -`tmp/benchmarks/reports/`, while the elapsed-time values below are the captured -benchmark summary from that run. Future runs write `tmp/benchmarks/summary.json` -and regenerate this README with complete per-variant min, median, mean, and max -timings automatically. +Last generated: `2026-07-20T17:23:42-06:00` | Setting | Value | | --- | --- | -| Fixture | `benchmarks/fixtures/skeleton` | -| Command | `kettle-jem template --force --quiet --accept-config --skip-commit --report REPORT` | +| Fixture | `/var/home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem/benchmarks/fixtures/skeleton` | +| Command | `kettle-jem template` | | Runs per variant | `3` | | Worker counts | `1, 2, 4, 8, 16, 22` | | Minimum Ruby | `1.8.7` | -| Result surface | `146` recipes / `134` changed files | - -| Variant group | Result | -| --- | --- | -| `baseline-main` | Median `21.914s` | -| `planning-ractor-1` | Median `21.956s` | -| `planning-ractor-8` | Median `22.572s` | -| `planning-ractor-22` | Median `22.687s` | -| `file-ractor-*` | Median range `24.904s` to `30.147s`; `file-ractor-22` had a max outlier of `56.206s` | -| `combined-ractor-*` | Median range `24.787s` to `29.215s` | +| Source reports | `/var/home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem/tmp/benchmarks/reports` | -Summary: the realistic one-shot templating benchmark did not show a performance -gain from Ractors. Planning-only Ractors were approximately even with baseline -but slightly slower, and file-worker or combined Ractors were materially slower -on this workload. +| Variant | Min | Median | Mean | Max | Plan workers | File workers | Safe recipes | Plan spawns | Plan Ractor recipes | File units | File spawns | File Ractor units | Recipes | Changed | +| --- | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: | +| `baseline-main` | 20.099s | 20.133s | 20.284s | 20.620s | 0 | 0 | 2 | 0 | 0 | 132 | 0 | 0 | 146 | 134 | +| `planning-ractor-1` | 22.676s | 22.879s | 22.972s | 23.360s | 1 | 0 | 2 | 1 | 2 | 132 | 0 | 0 | 146 | 134 | +| `file-ractor-1` | 21.761s | 21.813s | 21.953s | 22.286s | 0 | 1 | 2 | 0 | 0 | 132 | 132 | 132 | 146 | 134 | +| `combined-ractor-1` | 23.414s | 23.449s | 23.452s | 23.494s | 1 | 1 | 2 | 1 | 2 | 132 | 132 | 132 | 146 | 134 | +| `planning-ractor-2` | 21.859s | 21.995s | 22.336s | 23.154s | 2 | 0 | 2 | 2 | 2 | 132 | 0 | 0 | 146 | 134 | +| `file-ractor-2` | 22.493s | 23.317s | 23.048s | 23.334s | 0 | 2 | 2 | 0 | 0 | 132 | 132 | 132 | 146 | 134 | +| `combined-ractor-2` | 22.669s | 23.237s | 23.140s | 23.514s | 2 | 2 | 2 | 2 | 2 | 132 | 132 | 132 | 146 | 134 | +| `planning-ractor-4` | 22.115s | 23.010s | 22.851s | 23.427s | 4 | 0 | 2 | 2 | 2 | 132 | 0 | 0 | 146 | 134 | +| `file-ractor-4` | 22.232s | 22.760s | 22.749s | 23.254s | 0 | 4 | 2 | 0 | 0 | 132 | 132 | 132 | 146 | 134 | +| `combined-ractor-4` | 22.620s | 23.204s | 23.033s | 23.273s | 4 | 4 | 2 | 2 | 2 | 132 | 132 | 132 | 146 | 134 | +| `planning-ractor-8` | 22.924s | 22.965s | 23.001s | 23.115s | 8 | 0 | 2 | 2 | 2 | 132 | 0 | 0 | 146 | 134 | +| `file-ractor-8` | 22.881s | 23.186s | 23.187s | 23.496s | 0 | 8 | 2 | 0 | 0 | 132 | 132 | 132 | 146 | 134 | +| `combined-ractor-8` | 21.864s | 22.298s | 22.346s | 22.878s | 8 | 8 | 2 | 2 | 2 | 132 | 132 | 132 | 146 | 134 | +| `planning-ractor-16` | 22.777s | 23.119s | 23.068s | 23.309s | 16 | 0 | 2 | 2 | 2 | 132 | 0 | 0 | 146 | 134 | +| `file-ractor-16` | 23.233s | 23.530s | 23.507s | 23.757s | 0 | 16 | 2 | 0 | 0 | 132 | 132 | 132 | 146 | 134 | +| `combined-ractor-16` | 22.192s | 22.668s | 22.569s | 22.848s | 16 | 16 | 2 | 2 | 2 | 132 | 132 | 132 | 146 | 134 | +| `planning-ractor-22` | 21.679s | 23.103s | 22.899s | 23.915s | 22 | 0 | 2 | 2 | 2 | 132 | 0 | 0 | 146 | 134 | +| `file-ractor-22` | 21.985s | 22.154s | 22.411s | 23.093s | 0 | 22 | 2 | 0 | 0 | 132 | 132 | 132 | 146 | 134 | +| `combined-ractor-22` | 21.813s | 22.091s | 22.458s | 23.472s | 22 | 22 | 2 | 2 | 2 | 132 | 132 | 132 | 146 | 134 | -Regenerate this README after a future full run: +These results are generated by `ruby benchmarks/kettle_jem_ractor_planning.rb`. +Regenerate this README from the saved summary without rerunning the benchmark with: ```bash ruby benchmarks/kettle_jem_ractor_planning.rb --summarize-only diff --git a/gems/kettle-jem/lib/kettle/jem.rb b/gems/kettle-jem/lib/kettle/jem.rb index 4874793ea..f981e9dd7 100644 --- a/gems/kettle-jem/lib/kettle/jem.rb +++ b/gems/kettle-jem/lib/kettle/jem.rb @@ -3509,6 +3509,7 @@ def plan_project(project_root, env: ENV, run_options: {}) recipes = pack.fetch(:recipes) recipe_planning_strategy = with_event_phase(events, "recipe_planning_strategy") { recipe_planning_strategy_for(env, run_options) } recipe_planning_workers = with_event_phase(events, "recipe_planning_workers") { recipe_planning_workers_for(env, run_options) } + recipe_planning_thread_workers = with_event_phase(events, "recipe_planning_thread_workers") { recipe_planning_thread_workers_for(env, run_options) } recipe_planning_execution = {} recipe_reports = with_event_phase(events, "recipes", total: recipes.length) do execute_recipe_reports( @@ -3522,6 +3523,7 @@ def plan_project(project_root, env: ENV, run_options: {}) events: events, strategy: recipe_planning_strategy, workers: recipe_planning_workers, + thread_workers: recipe_planning_thread_workers, stats: recipe_planning_execution ) end @@ -3553,6 +3555,7 @@ def plan_project(project_root, env: ENV, run_options: {}) phase_reports: phase_reports, recipe_planning_strategy: recipe_planning_strategy, recipe_planning_workers: recipe_planning_workers, + recipe_planning_thread_workers: recipe_planning_thread_workers, recipe_planning_execution: recipe_planning_execution, decision_policy: decision_policy.to_h, template_selection: template_selection, @@ -3608,6 +3611,22 @@ def recipe_planning_workers_for(env, run_options) raise ArgumentError, "KETTLE_JEM_RACTOR_WORKERS must be a non-negative integer" end + def recipe_planning_thread_workers_for(env, run_options) + value = (run_options || {})[:thread_workers] || + (run_options || {})["thread_workers"] || + (run_options || {})[:recipe_planning_thread_workers] || + (run_options || {})["recipe_planning_thread_workers"] || + (env || {})["KETTLE_JEM_THREAD_WORKERS"] + return 0 if value.nil? || value.to_s.strip.empty? + + workers = Integer(value) + raise ArgumentError, "KETTLE_JEM_THREAD_WORKERS must be >= 0" if workers.negative? + + workers + rescue ArgumentError + raise ArgumentError, "KETTLE_JEM_THREAD_WORKERS must be a non-negative integer" + end + def file_work_workers_for(env, run_options) value = (run_options || {})[:ractor_file_workers] || (run_options || {})["ractor_file_workers"] || @@ -3624,7 +3643,23 @@ def file_work_workers_for(env, run_options) raise ArgumentError, "KETTLE_JEM_RACTOR_FILE_WORKERS must be a non-negative integer" end - def execute_recipe_reports(project_root:, recipes:, facts:, files:, template_contents:, decision_policy:, env:, events:, strategy:, workers: 0, stats: nil) + def file_work_thread_workers_for(env, run_options) + value = (run_options || {})[:thread_file_workers] || + (run_options || {})["thread_file_workers"] || + (run_options || {})[:file_work_thread_workers] || + (run_options || {})["file_work_thread_workers"] || + (env || {})["KETTLE_JEM_THREAD_FILE_WORKERS"] + return 0 if value.nil? || value.to_s.strip.empty? + + workers = Integer(value) + raise ArgumentError, "KETTLE_JEM_THREAD_FILE_WORKERS must be >= 0" if workers.negative? + + workers + rescue ArgumentError + raise ArgumentError, "KETTLE_JEM_THREAD_FILE_WORKERS must be a non-negative integer" + end + + def execute_recipe_reports(project_root:, recipes:, facts:, files:, template_contents:, decision_policy:, env:, events:, strategy:, workers: 0, thread_workers: 0, stats: nil) case strategy.to_s when "sequential" record_recipe_planning_execution_stats( @@ -3634,6 +3669,9 @@ def execute_recipe_reports(project_root:, recipes:, facts:, files:, template_con worker_count: 0, spawned: 0, ractor_recipes: 0, + thread_worker_count: 0, + thread_spawns: 0, + thread_recipes: 0, main_recipes: recipes.length ) execute_recipe_reports_sequential( @@ -3657,6 +3695,7 @@ def execute_recipe_reports(project_root:, recipes:, facts:, files:, template_con env: env, events: events, workers: workers, + thread_workers: thread_workers, stats: stats ) else @@ -3680,23 +3719,44 @@ def execute_recipe_reports_sequential(project_root:, recipes:, facts:, files:, t end end - def execute_recipe_reports_classified(project_root:, recipes:, facts:, files:, template_contents:, decision_policy:, env:, events:, workers: 0, stats: nil) + def execute_recipe_reports_classified(project_root:, recipes:, facts:, files:, template_contents:, decision_policy:, env:, events:, workers: 0, thread_workers: 0, stats: nil) indexed_recipes = recipes.each_with_index.to_a reports_by_index = {} worker_safe, main_only = indexed_recipes.partition { |recipe, _index| worker_safe_recipe?(recipe) } + use_threads = thread_workers.to_i.positive? use_ractors = workers.to_i.positive? && worker_safe.any? + raise ArgumentError, "Use either KETTLE_JEM_RACTOR_WORKERS or KETTLE_JEM_THREAD_WORKERS, not both" if use_threads && workers.to_i.positive? + worker_count = use_ractors ? [workers.to_i, worker_safe.length].min : 0 + thread_worker_count = use_threads ? [thread_workers.to_i, indexed_recipes.length].min : 0 record_recipe_planning_execution_stats( stats, worker_safe: worker_safe.length, - main_only: main_only.length, + main_only: use_threads ? 0 : main_only.length, worker_count: worker_count, spawned: worker_count, ractor_recipes: use_ractors ? worker_safe.length : 0, - main_recipes: main_only.length + (use_ractors ? 0 : worker_safe.length) + thread_worker_count: thread_worker_count, + thread_spawns: thread_worker_count, + thread_recipes: use_threads ? indexed_recipes.length : 0, + main_recipes: use_threads ? 0 : main_only.length + (use_ractors ? 0 : worker_safe.length) ) - reports_by_index.merge!( - if use_ractors + if use_threads + reports_by_index.merge!( + execute_indexed_recipe_reports_thread( + project_root: project_root, + indexed_recipes: indexed_recipes, + facts: facts, + files: files, + template_contents: template_contents, + decision_policy: decision_policy, + env: env, + workers: thread_worker_count + ) + ) + else + reports_by_index.merge!( + if use_ractors execute_worker_safe_recipe_reports_ractor( project_root: project_root, indexed_recipes: worker_safe, @@ -3707,7 +3767,7 @@ def execute_recipe_reports_classified(project_root:, recipes:, facts:, files:, t env: env, workers: worker_count ) - else + else execute_indexed_recipe_reports( project_root: project_root, indexed_recipes: worker_safe, @@ -3717,19 +3777,20 @@ def execute_recipe_reports_classified(project_root:, recipes:, facts:, files:, t decision_policy: decision_policy, env: env ) - end - ) - reports_by_index.merge!( - execute_indexed_recipe_reports( - project_root: project_root, - indexed_recipes: main_only, - facts: facts, - files: files, - template_contents: template_contents, - decision_policy: decision_policy, - env: env + end ) - ) + reports_by_index.merge!( + execute_indexed_recipe_reports( + project_root: project_root, + indexed_recipes: main_only, + facts: facts, + files: files, + template_contents: template_contents, + decision_policy: decision_policy, + env: env + ) + ) + end recipes.each_index.map do |index| report = reports_by_index.fetch(index) emit_recipe_event(events, report, index: index, total: recipes.length) @@ -3754,7 +3815,7 @@ def execute_indexed_recipe_reports(project_root:, indexed_recipes:, facts:, file end end - def record_recipe_planning_execution_stats(stats, worker_safe:, main_only:, worker_count:, spawned:, ractor_recipes:, main_recipes:) + def record_recipe_planning_execution_stats(stats, worker_safe:, main_only:, worker_count:, spawned:, ractor_recipes:, thread_worker_count:, thread_spawns:, thread_recipes:, main_recipes:) return unless stats stats[:worker_safe_recipes] = worker_safe @@ -3762,9 +3823,42 @@ def record_recipe_planning_execution_stats(stats, worker_safe:, main_only:, work stats[:ractor_worker_count] = worker_count stats[:ractor_spawn_count] = spawned stats[:ractor_recipe_count] = ractor_recipes + stats[:thread_worker_count] = thread_worker_count + stats[:thread_spawn_count] = thread_spawns + stats[:thread_recipe_count] = thread_recipes stats[:main_recipe_count] = main_recipes end + def execute_indexed_recipe_reports_thread(project_root:, indexed_recipes:, facts:, files:, template_contents:, decision_policy:, env:, workers:) + chunks = Array.new(workers) { [] } + indexed_recipes.each_with_index do |job, offset| + chunks.fetch(offset % chunks.length) << job + end + chunks.reject(&:empty?).flat_map do |chunk| + Thread.new do + thread_id = Thread.current.object_id + started_at = monotonic_time + chunk.map do |recipe, index| + report = execute_recipe( + project_root: project_root, + recipe: recipe, + facts: facts, + files: files, + template_contents: template_contents, + decision_policy: decision_policy, + env: env + ) + report = report_with_duration(report, duration_ms_since(started_at)) + report[:metadata][:executor] = "thread" + report[:metadata][:thread_id] = thread_id + report.dig(:report_envelope, :report, :metadata)[:executor] = "thread" + report.dig(:report_envelope, :report, :metadata)[:thread_id] = thread_id + [index, report] + end + end + end.flat_map(&:value).to_h + end + def execute_worker_safe_recipe_reports_ractor(project_root:, indexed_recipes:, facts:, files:, template_contents:, decision_policy:, env:, workers:) context = Ractor.make_shareable({ project_root: project_root, @@ -3865,8 +3959,10 @@ def apply_project(project_root, env: ENV, run_options: {}) events = event_stream_from_options(run_options) report = plan_project(project_root, env: env, run_options: run_options).merge(mode: "apply") file_work_workers = with_event_phase(events, "file_work_workers") { file_work_workers_for(env, run_options) } + file_work_thread_workers = with_event_phase(events, "file_work_thread_workers") { file_work_thread_workers_for(env, run_options) } report[:file_work_workers] = file_work_workers - report[:file_work_execution] = file_work_execution_stats(file_work_workers) + report[:file_work_thread_workers] = file_work_thread_workers + report[:file_work_execution] = file_work_execution_stats(file_work_workers, file_work_thread_workers) with_event_phase(events, "apply") do before_apply_files = with_event_phase(events, "snapshot_changed_files") do snapshot_changed_files( @@ -3875,7 +3971,13 @@ def apply_project(project_root, env: ENV, run_options: {}) ) end with_event_phase(events, "write_template_files") do - run_apply_phases(project_root, report, file_workers: file_work_workers, file_stats: report.fetch(:file_work_execution)) + run_apply_phases( + project_root, + report, + file_workers: file_work_workers, + file_thread_workers: file_work_thread_workers, + file_stats: report.fetch(:file_work_execution) + ) end report[:changed_files] = with_event_phase(events, "actual_changed_files") do actual_changed_files_after_apply(project_root, report.fetch(:changed_files), before_apply_files) @@ -10527,7 +10629,7 @@ def plugin_lifecycle_diagnostic(plugin_registry, callbacks_run:, active_runner_p } end - def run_apply_phases(project_root, report, file_workers: 0, file_stats: nil) + def run_apply_phases(project_root, report, file_workers: 0, file_thread_workers: 0, file_stats: nil) plugin_registry = plugin_registry_for_project(project_root) changed_files = report.fetch(:changed_files) diagnostics = report.fetch(:diagnostics) @@ -10558,6 +10660,7 @@ def run_apply_phases(project_root, report, file_workers: 0, file_stats: nil) commit_file_work_units( file_work_units_for_phase(project_root, reports_by_phase.fetch(phase, [])), workers: file_workers, + thread_workers: file_thread_workers, stats: file_stats ) unless plugin_registry.empty? @@ -10581,13 +10684,16 @@ def run_apply_phases(project_root, report, file_workers: 0, file_stats: nil) report[:run_stats] = recipe_run_stats(report.fetch(:recipe_reports), diagnostics: diagnostics) end - def file_work_execution_stats(file_workers) + def file_work_execution_stats(file_workers, file_thread_workers = 0) { file_worker_count: file_workers.to_i, + file_thread_worker_count: file_thread_workers.to_i, file_work_units: 0, file_operations: 0, file_ractor_units: 0, file_ractor_spawn_count: 0, + file_thread_units: 0, + file_thread_spawn_count: 0, main_file_units: 0 } end @@ -10597,17 +10703,20 @@ def apply_recipe_report(project_root, recipe_report) commit_file_outcome(intent) if intent end - def commit_file_work_units(file_work_units, workers: 0, stats: nil) + def commit_file_work_units(file_work_units, workers: 0, thread_workers: 0, stats: nil) units = Array(file_work_units) return if units.empty? - record_file_work_execution_stats(stats, units: units, workers: workers.to_i) + raise ArgumentError, "Use either KETTLE_JEM_RACTOR_FILE_WORKERS or KETTLE_JEM_THREAD_FILE_WORKERS, not both" if workers.to_i.positive? && thread_workers.to_i.positive? + + record_file_work_execution_stats(stats, units: units, workers: workers.to_i, thread_workers: thread_workers.to_i) + return commit_file_work_units_thread(units, workers: thread_workers.to_i) if thread_workers.to_i.positive? return commit_file_work_units_ractor(units, workers: workers.to_i) if workers.to_i.positive? units.each { |file_work_unit| commit_file_work_unit(file_work_unit) } end - def record_file_work_execution_stats(stats, units:, workers:) + def record_file_work_execution_stats(stats, units:, workers:, thread_workers:) return unless stats stats[:file_work_units] += units.length @@ -10615,11 +10724,24 @@ def record_file_work_execution_stats(stats, units:, workers:) if workers.positive? stats[:file_ractor_units] += units.length stats[:file_ractor_spawn_count] += units.length + elsif thread_workers.positive? + stats[:file_thread_units] += units.length + stats[:file_thread_spawn_count] += [thread_workers, units.length].min else stats[:main_file_units] += units.length end end + def commit_file_work_units_thread(file_work_units, workers:) + chunks = Array.new([workers, file_work_units.length].min) { [] } + file_work_units.each_with_index do |file_work_unit, offset| + chunks.fetch(offset % chunks.length) << file_work_unit + end + chunks.map do |chunk| + Thread.new { chunk.each { |file_work_unit| commit_file_work_unit(file_work_unit) } } + end.each(&:join) + end + def commit_file_work_units_ractor(file_work_units, workers:) file_work_units.each_slice(workers).each do |slice| slice.map do |file_work_unit| diff --git a/gems/kettle-jem/spec/integration/recipe_planning_spec.rb b/gems/kettle-jem/spec/integration/recipe_planning_spec.rb index 59e8e6fd0..2cb8f56be 100644 --- a/gems/kettle-jem/spec/integration/recipe_planning_spec.rb +++ b/gems/kettle-jem/spec/integration/recipe_planning_spec.rb @@ -104,6 +104,21 @@ end + it "parses thread recipe planning workers from options and env" do + expect(described_class.send(:recipe_planning_thread_workers_for, {}, {})).to eq(0) + expect(described_class.send(:recipe_planning_thread_workers_for, {"KETTLE_JEM_THREAD_WORKERS" => "2"}, {})).to eq(2) + expect(described_class.send(:recipe_planning_thread_workers_for, {"KETTLE_JEM_THREAD_WORKERS" => "2"}, {recipe_planning_thread_workers: "1"})).to eq(1) + expect(described_class.send(:recipe_planning_thread_workers_for, {}, {thread_workers: "3"})).to eq(3) + + expect do + described_class.send(:recipe_planning_thread_workers_for, {}, {recipe_planning_thread_workers: "-1"}) + end.to raise_error(ArgumentError, /non-negative integer/) + expect do + described_class.send(:recipe_planning_thread_workers_for, {"KETTLE_JEM_THREAD_WORKERS" => "many"}, {}) + end.to raise_error(ArgumentError, /non-negative integer/) + end + + it "classifies side-effect-free cleanup and template-source recipes as worker-safe" do safe_recipe = { name: "github_actions_obsolete_workflow_cleanup_old", @@ -300,6 +315,75 @@ end + it "keeps thread-backed classified recipe planning equivalent to main-Ractor classified planning" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-thread-planning", tmp_root) do |root| + write_tree(root, { + ".github/workflows/old.yml" => "name: old\n", + "README.md" => "# Example\n" + }) + recipes = [ + { + name: "github_actions_obsolete_workflow_cleanup_old", + target_path: ".github/workflows/old.yml", + provider_family: "file", + primitive: "supplied_obsolete_file_deletion", + facts: [] + }, + { + name: "noop_main_only", + target_path: "README.md", + provider_family: "markdown", + primitive: "noop", + facts: [] + } + ] + files = { + ".github/workflows/old.yml" => "name: old\n", + "README.md" => "# Example\n" + } + policy = described_class::DecisionPolicy.from_env({"force" => "true"}) + common = { + project_root: root, + recipes: recipes, + facts: {}, + files: files, + template_contents: {}, + decision_policy: policy, + env: {}, + events: nil, + strategy: "classified" + } + normalize = lambda do |reports| + Marshal.load(Marshal.dump(reports)).each do |report| + report.dig(:metadata)&.delete(:duration_ms) + report.dig(:metadata)&.delete(:executor) + report.dig(:metadata)&.delete(:thread_id) + report.dig(:report_envelope, :report, :metadata)&.delete(:duration_ms) + report.dig(:report_envelope, :report, :metadata)&.delete(:executor) + report.dig(:report_envelope, :report, :metadata)&.delete(:thread_id) + end + end + + main_thread = described_class.send(:execute_recipe_reports, **common.merge(workers: 0)) + stats = {} + workers = described_class.send(:execute_recipe_reports, **common.merge(thread_workers: 2, stats: stats)) + + expect(normalize.call(workers)).to eq(normalize.call(main_thread)) + expect(stats).to include( + worker_safe_recipes: 1, + main_only_recipes: 0, + thread_worker_count: 2, + thread_spawn_count: 2, + thread_recipe_count: 2, + main_recipe_count: 0 + ) + expect(workers.map { |report| report.dig(:metadata, :executor) }).to eq(%w[thread thread]) + end + end + + it "turns changed recipe reports into deterministic write intents" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -346,6 +430,17 @@ end + it "parses opt-in thread file worker counts" do + expect(described_class.send(:file_work_thread_workers_for, {}, {})).to eq(0) + expect(described_class.send(:file_work_thread_workers_for, {"KETTLE_JEM_THREAD_FILE_WORKERS" => "3"}, {})).to eq(3) + expect(described_class.send(:file_work_thread_workers_for, {}, {file_work_thread_workers: 2})).to eq(2) + + expect do + described_class.send(:file_work_thread_workers_for, {"KETTLE_JEM_THREAD_FILE_WORKERS" => "-1"}, {}) + end.to raise_error(ArgumentError, /non-negative integer/) + end + + it "reduces phase write intents into per-file work units" do first_write = described_class::WriteIntent.new( relative_path: "lib/example.rb", @@ -481,6 +576,54 @@ end + it "can commit independent file work units through threads within a phase" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-thread-file-work-units", tmp_root) do |root| + first_path = File.join(root, "lib/first.rb") + second_path = File.join(root, "lib/second.rb") + first_work_unit = described_class::FileWorkUnit.new( + relative_path: "lib/first.rb", + operations: [ + described_class::WriteIntent.new( + relative_path: "lib/first.rb", + absolute_path: first_path, + action: :write, + content: "first\n", + recipe_name: "first_recipe" + ) + ] + ) + second_work_unit = described_class::FileWorkUnit.new( + relative_path: "lib/second.rb", + operations: [ + described_class::WriteIntent.new( + relative_path: "lib/second.rb", + absolute_path: second_path, + action: :write, + content: "second\n", + recipe_name: "second_recipe" + ) + ] + ) + stats = described_class.send(:file_work_execution_stats, 0, 2) + + described_class.send(:commit_file_work_units, [first_work_unit, second_work_unit], thread_workers: 2, stats: stats) + + expect(File.read(first_path)).to eq("first\n") + expect(File.read(second_path)).to eq("second\n") + expect(stats).to include( + file_thread_worker_count: 2, + file_work_units: 2, + file_operations: 2, + file_thread_units: 2, + file_thread_spawn_count: 2, + main_file_units: 0 + ) + end + end + + it "commits file outcomes while preserving current apply behavior" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) From b81499703b938693c1c0410fb80f281cafb87d18 Mon Sep 17 00:00:00 2001 From: "Peter H. Boling" Date: Mon, 20 Jul 2026 17:51:38 -0600 Subject: [PATCH 091/188] Add benchmark skip controls to kettle-jem Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- gems/kettle-jem/CHANGELOG.md | 3 ++ gems/kettle-jem/benchmarks/README.md | 5 +++ .../benchmarks/kettle_jem_ractor_planning.rb | 3 ++ gems/kettle-jem/lib/kettle/jem.rb | 21 +++++++--- gems/kettle-jem/lib/kettle/jem/cli.rb | 12 ++++++ .../lib/kettle/jem/tasks/install_task.rb | 29 +++++++++++--- .../lib/kettle/jem/tasks/template_task.rb | 3 ++ gems/kettle-jem/spec/cli_spec.rb | 24 +++++++++-- .../config_metadata_template_spec.rb | 27 +++++++++++++ .../spec/system/install_orchestration_spec.rb | 40 +++++++++++++++++++ 10 files changed, 154 insertions(+), 13 deletions(-) diff --git a/gems/kettle-jem/CHANGELOG.md b/gems/kettle-jem/CHANGELOG.md index ce7ad1995..b219d84ce 100644 --- a/gems/kettle-jem/CHANGELOG.md +++ b/gems/kettle-jem/CHANGELOG.md @@ -30,6 +30,9 @@ Please file a bug if you notice a violation of semantic versioning. - Templating can now opt into thread-backed recipe planning and file work with `KETTLE_JEM_THREAD_WORKERS` and `KETTLE_JEM_THREAD_FILE_WORKERS`, providing a benchmarkable alternative to main-thread and Ractor execution. +- Templating now supports benchmark-oriented skip controls for external + post-template work: `--skip-drift-check`, `--skip-rubocop-gradual`, and + `--skip-binstubs`, with matching `KETTLE_JEM_SKIP_*` environment variables. ### Fixed diff --git a/gems/kettle-jem/benchmarks/README.md b/gems/kettle-jem/benchmarks/README.md index 76e7c4dd7..4619cdeae 100644 --- a/gems/kettle-jem/benchmarks/README.md +++ b/gems/kettle-jem/benchmarks/README.md @@ -28,6 +28,11 @@ Useful environment variables: | `KETTLE_JEM_BENCHMARK_COMMAND` | `template` | Public `kettle-jem` command to benchmark: `plan`, `apply`, `template`, or `install`. | | `KETTLE_JEM_BENCHMARK_MIN_RUBY` | `1.8.7` | Minimum Ruby value passed through `KJ_MIN_RUBY` to broaden generated workflow/gemfile coverage. | +Benchmark runs set `KETTLE_JEM_SKIP_DRIFT_CHECK=true`, +`KETTLE_JEM_SKIP_RUBOCOP_GRADUAL=true`, `KETTLE_JEM_SKIP_BINSTUBS=true`, and +`KETTLE_JEM_SKIP_LOCK_NORMALIZATION=true` so external drift/style/setup cleanup +does not pad the template timing comparison. + The default `template` benchmark compares: - baseline classified planning with no Ractor workers diff --git a/gems/kettle-jem/benchmarks/kettle_jem_ractor_planning.rb b/gems/kettle-jem/benchmarks/kettle_jem_ractor_planning.rb index 78599f296..a9a14384c 100755 --- a/gems/kettle-jem/benchmarks/kettle_jem_ractor_planning.rb +++ b/gems/kettle-jem/benchmarks/kettle_jem_ractor_planning.rb @@ -41,6 +41,9 @@ "K_JEM_TEMPLATING" => "true", "KETTLE_JEM_ACCEPT_CONFIG" => "true", "KETTLE_JEM_SKIP_COMMIT" => "true", + "KETTLE_JEM_SKIP_DRIFT_CHECK" => "true", + "KETTLE_JEM_SKIP_RUBOCOP_GRADUAL" => "true", + "KETTLE_JEM_SKIP_BINSTUBS" => "true", "KETTLE_JEM_SKIP_LOCK_NORMALIZATION" => "true", "KETTLE_JEM_TEMPLATE_PROFILE" => "full", "KJ_REPOSITORY_TOPOLOGY" => "standalone", diff --git a/gems/kettle-jem/lib/kettle/jem.rb b/gems/kettle-jem/lib/kettle/jem.rb index f981e9dd7..895d98039 100644 --- a/gems/kettle-jem/lib/kettle/jem.rb +++ b/gems/kettle-jem/lib/kettle/jem.rb @@ -3989,11 +3989,19 @@ def apply_project(project_root, env: ENV, run_options: {}) step.fetch(:changed_files, []) end).uniq.sort report[:duplicate_drift] = with_event_phase(events, "duplicate_drift") do - duplicate_drift_report( - project_root: project_root, - template_root: template_root_path(project_root, config: kettle_jem_config(project_root)), - run_options: run_options - ) + if DecisionPolicy.value_to_boolean((run_options || {})[:skip_drift_check]) + { + available: false, + skipped: true, + reason: "skip_drift_check" + } + else + duplicate_drift_report( + project_root: project_root, + template_root: template_root_path(project_root, config: kettle_jem_config(project_root)), + run_options: run_options + ) + end end emit_summary_event(events, report) report @@ -10091,6 +10099,9 @@ def template_selection_for(env, run_options) shimmed_gem: option_hash.fetch(:shimmed_gem, env_hash["KETTLE_JEM_SHIMMED_GEM"]), shimmed_require: option_hash.fetch(:shimmed_require, env_hash["KETTLE_JEM_SHIMMED_REQUIRE"]), skip_commit: DecisionPolicy.value_to_boolean(option_hash.fetch(:skip_commit, env_hash["KETTLE_JEM_SKIP_COMMIT"])), + skip_drift_check: DecisionPolicy.value_to_boolean(option_hash.fetch(:skip_drift_check, env_hash["KETTLE_JEM_SKIP_DRIFT_CHECK"])), + skip_rubocop_gradual: DecisionPolicy.value_to_boolean(option_hash.fetch(:skip_rubocop_gradual, env_hash["KETTLE_JEM_SKIP_RUBOCOP_GRADUAL"])), + skip_binstubs: DecisionPolicy.value_to_boolean(option_hash.fetch(:skip_binstubs, env_hash["KETTLE_JEM_SKIP_BINSTUBS"])), dry_run: DecisionPolicy.value_to_boolean(option_hash.fetch(:dry_run, env_hash["KETTLE_JEM_DRY_RUN"])), accept_config: DecisionPolicy.value_to_boolean(option_hash.fetch(:accept_config, env_hash["KETTLE_JEM_ACCEPT_CONFIG"])), bootstrap_mode: DecisionPolicy.value_to_boolean(option_hash.fetch(:bootstrap_mode, env_hash["KETTLE_JEM_BOOTSTRAP_MODE"])), diff --git a/gems/kettle-jem/lib/kettle/jem/cli.rb b/gems/kettle-jem/lib/kettle/jem/cli.rb index 11f2598a4..c4e062c9b 100644 --- a/gems/kettle-jem/lib/kettle/jem/cli.rb +++ b/gems/kettle-jem/lib/kettle/jem/cli.rb @@ -137,6 +137,18 @@ def parse_options(args) opts.on("--skip-commit", "Skip bootstrap commit behavior.") do options[:run_options][:skip_commit] = true end + opts.on("--skip-drift-check", "Skip post-apply duplicate drift checking.") do + options[:run_options][:skip_drift_check] = true + end + opts.on("--skip-duplicate-drift", "Alias for --skip-drift-check.") do + options[:run_options][:skip_drift_check] = true + end + opts.on("--skip-rubocop-gradual", "Skip post-template RuboCop Gradual autocorrect.") do + options[:run_options][:skip_rubocop_gradual] = true + end + opts.on("--skip-binstubs", "Skip post-template curated Bundler binstub generation.") do + options[:run_options][:skip_binstubs] = true + end opts.on("--accept-config", "Accept first-run template config bootstrap.") do options[:run_options][:accept_config] = true end diff --git a/gems/kettle-jem/lib/kettle/jem/tasks/install_task.rb b/gems/kettle-jem/lib/kettle/jem/tasks/install_task.rb index 0f567dd1f..e443996c0 100644 --- a/gems/kettle-jem/lib/kettle/jem/tasks/install_task.rb +++ b/gems/kettle-jem/lib/kettle/jem/tasks/install_task.rb @@ -41,7 +41,7 @@ def run(project_root: Dir.pwd, env: ENV, run_options: {}, command_runner: method install_steps << rubocop_lts_branch_step if rubocop_lts_branch_step install_steps << run_distinct_bundle_install_step(project_root, env: env, setup_env: setup_env, run_options: effective_run_options, command_runner: command_runner) install_steps.concat(run_bundle_setup_commands(project_root, env: setup_env, run_options: effective_run_options, command_runner: command_runner)) - install_steps << rubocop_gradual_autocorrect_step(project_root, env: setup_env) + install_steps << rubocop_gradual_autocorrect_step(project_root, env: setup_env, run_options: effective_run_options) install_steps << normalize_lockfile_step(project_root, env: setup_env, run_options: effective_run_options) install_steps << bundled_handoff_step(project_root: project_root, env: env, run_options: effective_run_options) install_steps << bootstrap_commit_step(project_root, run_options: effective_run_options) @@ -593,8 +593,16 @@ def run_bundle_setup_commands(project_root, env:, run_options:, command_runner:) env: env, quiet: quiet, command_runner: command_runner - ), - run_command_step( + ) + ] + if Kettle::Jem::DecisionPolicy.value_to_boolean((run_options || {})[:skip_binstubs]) + steps << { + name: "bundle_binstubs", + status: "skipped", + reason: "skip_binstubs" + } + else + steps << run_command_step( "bundle_binstubs", bundle_binstubs_command(project_root, env: env), project_root: project_root, @@ -602,7 +610,7 @@ def run_bundle_setup_commands(project_root, env:, run_options:, command_runner:) quiet: quiet, command_runner: command_runner ) - ] + end if steps.any? { |step| step.fetch(:name) == "bundle_binstubs" && step.fetch(:status) == "succeeded" } steps << rewrite_yard_binstub(project_root) steps << prune_unwanted_bundler_binstubs(project_root) @@ -693,7 +701,15 @@ def run_distinct_bundle_install_step(project_root, env:, setup_env:, run_options ) end - def rubocop_gradual_autocorrect_step(project_root, env: nil) + def rubocop_gradual_autocorrect_step(project_root, env: nil, run_options: {}) + if Kettle::Jem::DecisionPolicy.value_to_boolean((run_options || {})[:skip_rubocop_gradual]) + return { + name: "rubocop_gradual_autocorrect", + status: "skipped", + reason: "skip_rubocop_gradual" + } + end + rakefile = File.join(project_root.to_s, "Rakefile") bin_rake = File.join(project_root.to_s, "bin", "rake") unless File.file?(rakefile) && File.file?(bin_rake) @@ -1607,6 +1623,9 @@ def handoff_argv(run_options) argv = [] argv << "--accept-config" if Kettle::Jem::DecisionPolicy.value_to_boolean(options[:accept_config]) argv << "--skip-commit" if Kettle::Jem::DecisionPolicy.value_to_boolean(options[:skip_commit]) + argv << "--skip-drift-check" if Kettle::Jem::DecisionPolicy.value_to_boolean(options[:skip_drift_check]) + argv << "--skip-rubocop-gradual" if Kettle::Jem::DecisionPolicy.value_to_boolean(options[:skip_rubocop_gradual]) + argv << "--skip-binstubs" if Kettle::Jem::DecisionPolicy.value_to_boolean(options[:skip_binstubs]) argv << "--quiet" if Kettle::Jem::DecisionPolicy.value_to_boolean(options[:quiet]) argv << "--verbose" if Kettle::Jem::DecisionPolicy.value_to_boolean(options[:verbose]) argv << "--force" if Kettle::Jem::DecisionPolicy.value_to_boolean(options[:force]) diff --git a/gems/kettle-jem/lib/kettle/jem/tasks/template_task.rb b/gems/kettle-jem/lib/kettle/jem/tasks/template_task.rb index 02b3b7ba1..2e86ffe6b 100644 --- a/gems/kettle-jem/lib/kettle/jem/tasks/template_task.rb +++ b/gems/kettle-jem/lib/kettle/jem/tasks/template_task.rb @@ -48,6 +48,9 @@ def env_run_options(env) template_profile: env["KETTLE_JEM_TEMPLATE_PROFILE"], dry_run: truthy?(env["KETTLE_JEM_DRY_RUN"]), skip_commit: truthy?(env["KETTLE_JEM_SKIP_COMMIT"]), + skip_drift_check: truthy?(env["KETTLE_JEM_SKIP_DRIFT_CHECK"]), + skip_rubocop_gradual: truthy?(env["KETTLE_JEM_SKIP_RUBOCOP_GRADUAL"]), + skip_binstubs: truthy?(env["KETTLE_JEM_SKIP_BINSTUBS"]), skip_lock_normalization: truthy?(env["KETTLE_JEM_SKIP_LOCK_NORMALIZATION"]), accept_config: truthy?(env["KETTLE_JEM_ACCEPT_CONFIG"]), bootstrap_mode: truthy?(env["KETTLE_JEM_BOOTSTRAP_MODE"]), diff --git a/gems/kettle-jem/spec/cli_spec.rb b/gems/kettle-jem/spec/cli_spec.rb index b89cacbe8..ad2298577 100644 --- a/gems/kettle-jem/spec/cli_spec.rb +++ b/gems/kettle-jem/spec/cli_spec.rb @@ -216,7 +216,10 @@ def tmp_root "Gemfile,Rakefile", "--include", "gemfiles/modular/**", - "--skip-commit" + "--skip-commit", + "--skip-drift-check", + "--skip-rubocop-gradual", + "--skip-binstubs" ]) expect(status).to eq(0) @@ -233,6 +236,9 @@ def tmp_root only: ["Gemfile", "Rakefile"], include: ["gemfiles/modular/**"], skip_commit: true, + skip_drift_check: true, + skip_rubocop_gradual: true, + skip_binstubs: true, accept_config: true, bootstrap_mode: true, template_profile: "", @@ -318,7 +324,14 @@ def tmp_root ) allow(Kettle::Jem::Tasks::TemplateTask).to receive(:run) - status, out, err = run_cli(["template", root, "--skip-commit"], env: {"K_JEM_TEMPLATING" => "true"}) + status, out, err = run_cli([ + "template", + root, + "--skip-commit", + "--skip-drift-check", + "--skip-rubocop-gradual", + "--skip-binstubs" + ], env: {"K_JEM_TEMPLATING" => "true"}) expect(status).to eq(0) expect(err).to eq("") @@ -326,7 +339,12 @@ def tmp_root expect(Kettle::Jem::Tasks::InstallTask).to have_received(:run).with( project_root: root, env: {"K_JEM_TEMPLATING" => "true"}, - run_options: include(skip_commit: true) + run_options: include( + skip_commit: true, + skip_drift_check: true, + skip_rubocop_gradual: true, + skip_binstubs: true + ) ) expect(Kettle::Jem::Tasks::TemplateTask).not_to have_received(:run) end diff --git a/gems/kettle-jem/spec/integration/config_metadata_template_spec.rb b/gems/kettle-jem/spec/integration/config_metadata_template_spec.rb index 75600ece6..30392bd9d 100644 --- a/gems/kettle-jem/spec/integration/config_metadata_template_spec.rb +++ b/gems/kettle-jem/spec/integration/config_metadata_template_spec.rb @@ -1522,6 +1522,33 @@ end + it "skips duplicate drift checks when requested" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-skip-duplicate-drift", tmp_root) do |root| + write_tree(root, { + "example.gemspec" => <<~RUBY + Gem::Specification.new do |spec| + spec.name = "example" + spec.summary = "Example gem" + end + RUBY + }) + runner = lambda do |project_root:, template_dir:| + raise "drift runner should not run for #{project_root} #{template_dir}" + end + + apply = described_class.apply_project(root, env: {}, run_options: {skip_drift_check: true, duplicate_drift_runner: runner}) + + expect(apply.fetch(:duplicate_drift)).to eq( + available: false, + skipped: true, + reason: "skip_drift_check" + ) + end + end + + it "exposes template root and manifest metadata for adjacent tools" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) diff --git a/gems/kettle-jem/spec/system/install_orchestration_spec.rb b/gems/kettle-jem/spec/system/install_orchestration_spec.rb index 0f1f3ca85..25534d791 100644 --- a/gems/kettle-jem/spec/system/install_orchestration_spec.rb +++ b/gems/kettle-jem/spec/system/install_orchestration_spec.rb @@ -956,6 +956,17 @@ end + it "skips rubocop gradual autocorrect before probing rake tasks when requested" do + expect(Kettle::Jem::Tasks::InstallTask).not_to receive(:rake_task_available?) + + expect(Kettle::Jem::Tasks::InstallTask.rubocop_gradual_autocorrect_step("/missing", run_options: {skip_rubocop_gradual: true})).to eq( + name: "rubocop_gradual_autocorrect", + status: "skipped", + reason: "skip_rubocop_gradual" + ) + end + + it "runs install follow-up templating whenever the canonical config changes" do report = { recipe_reports: [ @@ -993,6 +1004,35 @@ end + it "skips curated binstub generation when requested" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-skip-binstubs", tmp_root) do |root| + write_tree(root, {"bin/setup" => "#!/usr/bin/env sh\n"}) + FileUtils.chmod("+x", File.join(root, "bin", "setup")) + commands = [] + command_runner = lambda do |command, chdir:, env:, quiet:| + commands << {command: command, chdir: chdir, env: env, quiet: quiet} + {success: true, exitstatus: 0, stdout: "", stderr: ""} + end + + steps = Kettle::Jem::Tasks::InstallTask.run_bundle_setup_commands( + root, + env: {}, + run_options: {skip_binstubs: true}, + command_runner: command_runner + ) + + expect(steps).to include( + name: "bundle_binstubs", + status: "skipped", + reason: "skip_binstubs" + ) + expect(commands.map { |entry| entry.fetch(:command) }).to eq([["bin/setup"]]) + end + end + + it "honors install ENV skip-commit and normalizes lockfiles without templating env overrides" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) From 283e119bfa5827490e89575ad75ae142b4cc52d0 Mon Sep 17 00:00:00 2001 From: "Peter H. Boling" Date: Mon, 20 Jul 2026 18:07:43 -0600 Subject: [PATCH 092/188] Record kettle-jem benchmark timings Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- gems/kettle-jem/CHANGELOG.md | 3 + gems/kettle-jem/benchmarks/README.md | 4 ++ .../benchmarks/kettle_jem_ractor_planning.rb | 30 ++++++++-- gems/kettle-jem/lib/kettle/jem.rb | 54 +++++++++++++++-- .../lib/kettle/jem/tasks/install_task.rb | 17 +++++- .../spec/integration/recipe_planning_spec.rb | 20 +++++++ .../structural_merge_template_spec.rb | 4 +- .../spec/system/install_orchestration_spec.rb | 60 ++++++++++++++----- 8 files changed, 161 insertions(+), 31 deletions(-) diff --git a/gems/kettle-jem/CHANGELOG.md b/gems/kettle-jem/CHANGELOG.md index b219d84ce..923421052 100644 --- a/gems/kettle-jem/CHANGELOG.md +++ b/gems/kettle-jem/CHANGELOG.md @@ -33,6 +33,9 @@ Please file a bug if you notice a violation of semantic versioning. - Templating now supports benchmark-oriented skip controls for external post-template work: `--skip-drift-check`, `--skip-rubocop-gradual`, and `--skip-binstubs`, with matching `KETTLE_JEM_SKIP_*` environment variables. +- Templating reports now persist phase duration metadata, install command steps + record elapsed duration, and benchmark summaries show recipe-phase time apart + from external command time. ### Fixed diff --git a/gems/kettle-jem/benchmarks/README.md b/gems/kettle-jem/benchmarks/README.md index 4619cdeae..86aa40644 100644 --- a/gems/kettle-jem/benchmarks/README.md +++ b/gems/kettle-jem/benchmarks/README.md @@ -50,6 +50,10 @@ file work units, file-worker Ractor/thread spawns, and file work units committed in Ractors or threads. These counters distinguish "workers were enabled" from "work actually ran concurrently". +Reports also persist phase durations and install command-step durations. The +benchmark table surfaces recipe-phase and external-command time separately so +template execution changes are not hidden by setup commands. + Long runs print timestamped progress lines before and after each measured variant run, including elapsed seconds, recipe/change counts, planning Ractor and thread recipe counts, and file Ractor/thread unit counts for completed runs. diff --git a/gems/kettle-jem/benchmarks/kettle_jem_ractor_planning.rb b/gems/kettle-jem/benchmarks/kettle_jem_ractor_planning.rb index a9a14384c..d3834b5e6 100755 --- a/gems/kettle-jem/benchmarks/kettle_jem_ractor_planning.rb +++ b/gems/kettle-jem/benchmarks/kettle_jem_ractor_planning.rb @@ -168,6 +168,16 @@ def report_snapshot(path) report = JSON.parse(File.read(path)) planning_execution = report.fetch("recipe_planning_execution", {}) file_execution = report.fetch("file_work_execution", {}) + phase_timings = Array(report["phase_timings"]) + install_steps = Array(report["install_steps"]) + Array(report["template_steps"]) + command_duration_ms = install_steps.sum do |step| + command_results = Array(step["command_results"]) + if command_results.empty? + step.fetch("duration_ms", 0).to_f + else + command_results.sum { |result| result.fetch("duration_ms", 0).to_f } + end + end { strategy: report["recipe_planning_strategy"], planning_workers: report["recipe_planning_workers"], @@ -185,6 +195,10 @@ def report_snapshot(path) file_ractor_units: file_execution.fetch("file_ractor_units", 0), file_thread_spawns: file_execution.fetch("file_thread_spawn_count", 0), file_thread_units: file_execution.fetch("file_thread_units", 0), + phase_duration_ms: phase_timings.sum { |entry| entry.fetch("duration_ms", 0).to_f }.round(3), + recipes_duration_ms: phase_timings.select { |entry| entry.fetch("phase", "") == "recipes" }.sum { |entry| entry.fetch("duration_ms", 0).to_f }.round(3), + apply_duration_ms: phase_timings.select { |entry| entry.fetch("phase", "") == "apply" }.sum { |entry| entry.fetch("duration_ms", 0).to_f }.round(3), + command_duration_ms: command_duration_ms.round(3), recipes: Array(report["recipe_reports"]).length, changed: Array(report["changed_files"]).length } @@ -297,19 +311,21 @@ def build_results_readme(payload) "| Minimum Ruby | `#{payload.fetch("min_ruby")}` |", "| Source reports | `#{payload.fetch("report_root")}` |", "", - "| Variant | Min | Median | Mean | Max | Plan Ractors | Plan threads | File Ractors | File threads | Safe recipes | Plan Ractor jobs | Plan thread jobs | File units | File Ractor units | File thread units | Recipes | Changed |", - "| --- | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: |" + "| Variant | Min | Median | Mean | Max | Recipe phase | Command steps | Plan Ractors | Plan threads | File Ractors | File threads | Safe recipes | Plan Ractor jobs | Plan thread jobs | File units | File Ractor units | File thread units | Recipes | Changed |", + "| --- | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: |" ] variants.each do |name, result| summary = result.fetch("summary") snapshot = result.fetch("snapshot") lines << format( - "| `%s` | %s | %s | %s | %s | %d | %d | %d | %d | %d | %d | %d | %d | %d | %d | %d | %d |", + "| `%s` | %s | %s | %s | %s | %s | %s | %d | %d | %d | %d | %d | %d | %d | %d | %d | %d | %d | %d |", name: name, min: format_seconds(summary.fetch("min")), median: format_seconds(summary.fetch("median")), mean: format_seconds(summary.fetch("mean")), max: format_seconds(summary.fetch("max")), + recipe_phase: format_seconds(snapshot_count.call(snapshot, "recipes_duration_ms") / 1000.0), + command_steps: format_seconds(snapshot_count.call(snapshot, "command_duration_ms") / 1000.0), plan_ractors: snapshot_count.call(snapshot, "planning_workers"), plan_threads: snapshot_count.call(snapshot, "planning_thread_workers"), file_ractors: snapshot_count.call(snapshot, "file_workers"), @@ -374,12 +390,14 @@ def write_results_readme(payload) puts "summary" puts puts format( - "%-28s %8s %8s %8s %8s %4s %4s %4s %4s %4s %4s %4s %4s %4s %4s %7s %7s", + "%-28s %8s %8s %8s %8s %8s %8s %4s %4s %4s %4s %4s %4s %4s %4s %4s %4s %7s %7s", "variant", "min", "median", "mean", "max", + "recipes", + "cmds", "pr", "pt", "fr", @@ -397,12 +415,14 @@ def write_results_readme(payload) summary = result.fetch(:summary) snapshot = result.fetch(:snapshot) puts format( - "%-28s %8.3fs %8.3fs %8.3fs %8.3fs %4d %4d %4d %4d %4d %4d %4d %4d %4d %4d %7d %7d", + "%-28s %8.3fs %8.3fs %8.3fs %8.3fs %8.3fs %8.3fs %4d %4d %4d %4d %4d %4d %4d %4d %4d %4d %7d %7d", name, summary.fetch(:min), summary.fetch(:median), summary.fetch(:mean), summary.fetch(:max), + snapshot.fetch(:recipes_duration_ms) / 1000.0, + snapshot.fetch(:command_duration_ms) / 1000.0, snapshot.fetch(:planning_workers), snapshot.fetch(:planning_thread_workers), snapshot.fetch(:file_workers), diff --git a/gems/kettle-jem/lib/kettle/jem.rb b/gems/kettle-jem/lib/kettle/jem.rb index 895d98039..411e55c48 100644 --- a/gems/kettle-jem/lib/kettle/jem.rb +++ b/gems/kettle-jem/lib/kettle/jem.rb @@ -3563,6 +3563,7 @@ def plan_project(project_root, env: ENV, run_options: {}) decision_evaluations: decision_evaluations, prompt_requests: prompt_requests, changed_files: changed_files, + phase_timings: events.respond_to?(:phase_timings) ? events.phase_timings : [], warnings: warnings.uniq, diagnostics: diagnostics, run_stats: run_stats @@ -3837,9 +3838,8 @@ def execute_indexed_recipe_reports_thread(project_root:, indexed_recipes:, facts chunks.reject(&:empty?).flat_map do |chunk| Thread.new do thread_id = Thread.current.object_id - started_at = monotonic_time chunk.map do |recipe, index| - report = execute_recipe( + report = execute_timed_recipe( project_root: project_root, recipe: recipe, facts: facts, @@ -3848,7 +3848,6 @@ def execute_indexed_recipe_reports_thread(project_root:, indexed_recipes:, facts decision_policy: decision_policy, env: env ) - report = report_with_duration(report, duration_ms_since(started_at)) report[:metadata][:executor] = "thread" report[:metadata][:thread_id] = thread_id report.dig(:report_envelope, :report, :metadata)[:executor] = "thread" @@ -4003,6 +4002,7 @@ def apply_project(project_root, env: ENV, run_options: {}) ) end end + report[:phase_timings] = events.phase_timings if events.respond_to?(:phase_timings) emit_summary_event(events, report) report end @@ -4025,20 +4025,33 @@ def parse_event_types(types) end def event_stream_from_options(run_options) - stream = (run_options || {})[:event_stream] || (run_options || {})["event_stream"] - stream if stream.respond_to?(:emit) + options = run_options || {} + recorder = options[:event_recorder] || options["event_recorder"] + return recorder if recorder.respond_to?(:emit) + + stream = options[:event_stream] || options["event_stream"] + phase_timings = options[:phase_timings] ||= [] + recorder = EventRecorder.new(stream.respond_to?(:emit) ? stream : nil, phase_timings) + options[:event_recorder] = recorder if options.respond_to?(:[]=) + recorder end def with_event_phase(events, phase, payload = {}) + started_at = monotonic_time emit_phase_event(events, phase, status: "started", **payload) result = yield - emit_phase_event(events, phase, status: "ok", **payload) + duration_ms = duration_ms_since(started_at) + record_phase_timing(events, phase, status: "ok", duration_ms: duration_ms, payload: payload) + emit_phase_event(events, phase, status: "ok", duration_ms: duration_ms, **payload) result rescue => error + duration_ms = duration_ms_since(started_at) if started_at + record_phase_timing(events, phase, status: "failed", duration_ms: duration_ms, payload: payload) emit_phase_event( events, phase, status: "failed", + duration_ms: duration_ms, error_class: error.class.name, error_message: error.message, **payload @@ -4046,6 +4059,18 @@ def with_event_phase(events, phase, payload = {}) raise end + def record_phase_timing(events, phase, status:, duration_ms:, payload:) + return unless events.respond_to?(:record_phase_timing) + + events.record_phase_timing( + payload.merge( + phase: phase.to_s, + status: status, + duration_ms: duration_ms + ) + ) + end + def emit_phase_event(events, phase, status:, **payload) event_type = (status == "started") ? "phase_start" : "phase_finish" emit_event(events, event_type, payload.merge(phase: phase.to_s, status: status)) @@ -4172,6 +4197,23 @@ def emit(payload) end end + class EventRecorder + def initialize(stream, phase_timings) + @stream = stream + @phase_timings = phase_timings + end + + attr_reader :phase_timings + + def emit(payload) + @stream.emit(payload) if @stream + end + + def record_phase_timing(payload) + @phase_timings << payload.compact + end + end + def snapshot_changed_files(project_root, changed_files) changed_files.to_h do |relative_path| path = File.join(project_root, relative_path) diff --git a/gems/kettle-jem/lib/kettle/jem/tasks/install_task.rb b/gems/kettle-jem/lib/kettle/jem/tasks/install_task.rb index e443996c0..98b5fffa6 100644 --- a/gems/kettle-jem/lib/kettle/jem/tasks/install_task.rb +++ b/gems/kettle-jem/lib/kettle/jem/tasks/install_task.rb @@ -1677,14 +1677,17 @@ def run_command_step(name, command, project_root:, env:, quiet:, command_runner: } end + started_at = Process.clock_gettime(Process::CLOCK_MONOTONIC) result = command_runner.call(command, chdir: project_root, env: env, quiet: quiet) + duration_ms = ((Process.clock_gettime(Process::CLOCK_MONOTONIC) - started_at) * 1000.0).round(3) success = result.fetch(:success) if success return { name: name, command: command, status: "succeeded", - exitstatus: result[:exitstatus] + exitstatus: result[:exitstatus], + duration_ms: duration_ms } end @@ -1695,11 +1698,14 @@ def execute_ready_command_step(step, project_root:, env:, quiet:, command_runner return step unless step.fetch(:status) == "ready" command_env = step.fetch(:env, env) + started_at = Process.clock_gettime(Process::CLOCK_MONOTONIC) result = command_runner.call(step.fetch(:command), chdir: project_root, env: command_env, quiet: quiet) + duration_ms = ((Process.clock_gettime(Process::CLOCK_MONOTONIC) - started_at) * 1000.0).round(3) if result.fetch(:success) return step.merge( status: "succeeded", exitstatus: result[:exitstatus], + duration_ms: duration_ms, reason: "executed" ) end @@ -1723,18 +1729,22 @@ def execute_ready_commands_step(step, project_root:, env:, quiet:, command_runne command_env = step.fetch(:env, env) results = step.fetch(:commands).map do |command| + started_at = Process.clock_gettime(Process::CLOCK_MONOTONIC) result = command_runner.call(command, chdir: project_root, env: command_env, quiet: quiet) + duration_ms = ((Process.clock_gettime(Process::CLOCK_MONOTONIC) - started_at) * 1000.0).round(3) unless result.fetch(:success) raise Kettle::Jem::Error, "#{step.fetch(:name)} failed: #{command.join(" ")}\n#{result[:stderr]}" end { command: command, - exitstatus: result[:exitstatus] + exitstatus: result[:exitstatus], + duration_ms: duration_ms } end step.merge( status: "succeeded", command_results: results, + duration_ms: results.sum { |result| result.fetch(:duration_ms, 0).to_f }.round(3), reason: "executed" ) end @@ -1746,13 +1756,16 @@ def execute_hook_templates_step(step, project_root:, env:, quiet:, command_runne path = File.join(project_root.to_s, relative_path) FileUtils.chmod(0o755, path) if File.file?(path) end + started_at = Process.clock_gettime(Process::CLOCK_MONOTONIC) result = command_runner.call(step.fetch(:command), chdir: project_root, env: env, quiet: quiet) + duration_ms = ((Process.clock_gettime(Process::CLOCK_MONOTONIC) - started_at) * 1000.0).round(3) unless result.fetch(:success) raise Kettle::Jem::Error, "hook_templates failed: #{step.fetch(:command).join(" ")}\n#{result[:stderr]}" end step.merge( status: "succeeded", exitstatus: result[:exitstatus], + duration_ms: duration_ms, reason: "executed" ) end diff --git a/gems/kettle-jem/spec/integration/recipe_planning_spec.rb b/gems/kettle-jem/spec/integration/recipe_planning_spec.rb index 2cb8f56be..6edb1fdaf 100644 --- a/gems/kettle-jem/spec/integration/recipe_planning_spec.rb +++ b/gems/kettle-jem/spec/integration/recipe_planning_spec.rb @@ -77,6 +77,22 @@ end + it "records phase timing metadata for persisted reports" do + events = described_class.event_stream_from_options({}) + + described_class.send(:with_event_phase, events, "example_phase", total: 1) { "ok" } + + expect(events.phase_timings).to contain_exactly( + include( + phase: "example_phase", + status: "ok", + total: 1, + duration_ms: be >= 0 + ) + ) + end + + it "parses recipe planning strategies from options and env" do expect(described_class.send(:recipe_planning_strategy_for, {}, {})).to eq("sequential") expect(described_class.send(:recipe_planning_strategy_for, {"KETTLE_JEM_RECIPE_PLANNING_STRATEGY" => "classified"}, {})).to eq("classified") @@ -380,6 +396,10 @@ main_recipe_count: 0 ) expect(workers.map { |report| report.dig(:metadata, :executor) }).to eq(%w[thread thread]) + expect(workers.map { |report| report.dig(:metadata, :duration_ms) }).to all(be >= 0) + expect(workers.map { |report| report.dig(:report_envelope, :report, :metadata, :duration_ms) }).to eq( + workers.map { |report| report.dig(:metadata, :duration_ms) } + ) end end diff --git a/gems/kettle-jem/spec/integration/structural_merge_template_spec.rb b/gems/kettle-jem/spec/integration/structural_merge_template_spec.rb index 18e7abdb4..0df2d8032 100644 --- a/gems/kettle-jem/spec/integration/structural_merge_template_spec.rb +++ b/gems/kettle-jem/spec/integration/structural_merge_template_spec.rb @@ -273,14 +273,14 @@ module Version command_runner: command_runner ) - expect(install.fetch(:install_steps)).to include( + expect(install.fetch(:install_steps)).to include(hash_including( name: "mise_trust", path: "mise.toml", command: ["mise", "trust", "-C", root], status: "succeeded", reason: "executed", exitstatus: 0 - ) + )) expect(install.fetch(:install_phase_reports)).to include(hash_including( phase: "post_template", statuses: hash_including("mise_trust" => "succeeded") diff --git a/gems/kettle-jem/spec/system/install_orchestration_spec.rb b/gems/kettle-jem/spec/system/install_orchestration_spec.rb index 25534d791..f994c6aaa 100644 --- a/gems/kettle-jem/spec/system/install_orchestration_spec.rb +++ b/gems/kettle-jem/spec/system/install_orchestration_spec.rb @@ -352,30 +352,30 @@ path: "bin/setup", status: "updated" ) - expect(install.fetch(:install_steps)).to include( + expect(install.fetch(:install_steps)).to include(hash_including( name: "bin_setup", command: ["bin/setup", "--quiet"], status: "succeeded", exitstatus: 0 - ) - expect(install.fetch(:install_steps)).to include( + )) + expect(install.fetch(:install_steps)).to include(hash_including( name: "bundle_binstubs", command: curated_binstubs, status: "succeeded", exitstatus: 0 - ) + )) expect(install.fetch(:install_steps)).to include( name: "rubocop_gradual_autocorrect", status: "skipped", reason: "missing_rubocop_gradual_task" ) - expect(install.fetch(:install_steps)).to include( + expect(install.fetch(:install_steps)).to include(hash_including( name: "bundled_handoff", command: kettle_jem_handoff_command("--skip-commit", "--quiet", "--only", "bin/setup"), status: "succeeded", exitstatus: 0, reason: "executed" - ) + )) expect(install.fetch(:install_steps)).to include( name: "bootstrap_commit", status: "skipped", @@ -432,13 +432,13 @@ path: "bin/setup", status: "already_executable" ) - expect(second.fetch(:install_steps)).to include( + expect(second.fetch(:install_steps)).to include(hash_including( name: "bundled_handoff", command: kettle_jem_handoff_command("--quiet", "--only", "bin/setup"), status: "succeeded", exitstatus: 0, reason: "executed" - ) + )) second_commit_step = second.fetch(:install_steps).find { |step| step.fetch(:name) == "bootstrap_commit" } expect(second_commit_step.fetch(:status)).to eq("unavailable") expect(second_commit_step.fetch(:reason)).to eq("not_git_repository") @@ -467,19 +467,20 @@ run_options: {only: "bin/setup"}, command_runner: command_runner ) - expect(git_ready.fetch(:install_steps)).to include(hash_including( - name: "bootstrap_commit", + bootstrap_step = git_ready.fetch(:install_steps).find { |step| step.fetch(:name) == "bootstrap_commit" } + expect(bootstrap_step).to include( status: "succeeded", commands: [ %w[git add -A], ["git", "commit", "-m", "🎨 Template bootstrap by kettle-jem v#{Kettle::Jem::Version::VERSION}"] ], - command_results: [ - {command: %w[git add -A], exitstatus: 0}, - {command: ["git", "commit", "-m", "🎨 Template bootstrap by kettle-jem v#{Kettle::Jem::Version::VERSION}"], exitstatus: 0} - ], - reason: "executed" - )) + reason: "executed", + duration_ms: be >= 0 + ) + expect(bootstrap_step.fetch(:command_results)).to contain_exactly( + hash_including(command: %w[git add -A], exitstatus: 0, duration_ms: be >= 0), + hash_including(command: ["git", "commit", "-m", "🎨 Template bootstrap by kettle-jem v#{Kettle::Jem::Version::VERSION}"], exitstatus: 0, duration_ms: be >= 0) + ) expect(git_ready.fetch(:install_steps).find { |step| step.fetch(:name) == "bootstrap_commit" }.fetch(:dirty_entries)).not_to be_empty Dir.mktmpdir("kettle-jem-clean-bootstrap", tmp_root) do |clean_root| @@ -1033,6 +1034,33 @@ end + it "records command duration metadata for install command steps" do + command_runner = lambda do |_command, chdir:, env:, quiet:| + expect(chdir).to eq("/project") + expect(env).to eq({}) + expect(quiet).to be(true) + {success: true, exitstatus: 0, stdout: "", stderr: ""} + end + + step = Kettle::Jem::Tasks::InstallTask.run_command_step( + "example", + %w[echo ok], + project_root: "/project", + env: {}, + quiet: true, + command_runner: command_runner + ) + + expect(step).to include( + name: "example", + command: %w[echo ok], + status: "succeeded", + exitstatus: 0, + duration_ms: be >= 0 + ) + end + + it "honors install ENV skip-commit and normalizes lockfiles without templating env overrides" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) From b79620d9d6448ac6300614dc1a8f60946d221aa9 Mon Sep 17 00:00:00 2001 From: "Peter H. Boling" Date: Mon, 20 Jul 2026 18:13:53 -0600 Subject: [PATCH 093/188] Batch ast-crispr README deletions Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- CHANGELOG.md | 2 + gems/ast-crispr/lib/ast/crispr.rb | 59 ++++++++++++++++++++++++ gems/ast-crispr/spec/old_runtime_spec.rb | 59 ++++++++++++++++++++++++ gems/kettle-jem/lib/kettle/jem.rb | 57 +++++++++++------------ 4 files changed, 147 insertions(+), 30 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 418e23bfd..b42dc3111 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -20,6 +20,8 @@ Please file a bug if you notice a violation of semantic versioning. ### Added +- `ast-crispr` now provides `Ast::Crispr::DeleteBatch` for deleting matches from + multiple structural selectors through one parsed document context. - Added `html-merge` as a StructuredMerge Ruby family member with TreeHaver HTML parsing, feature profile reporting, and an initial ast-crispr-backed HTML structural edit adapter. diff --git a/gems/ast-crispr/lib/ast/crispr.rb b/gems/ast-crispr/lib/ast/crispr.rb index ba6a63f74..c1488c75f 100644 --- a/gems/ast-crispr/lib/ast/crispr.rb +++ b/gems/ast-crispr/lib/ast/crispr.rb @@ -580,6 +580,10 @@ class OperationProfile family: :removal, description: 'Delete selected content without inserting replacement text' }, + delete_batch: { + family: :removal, + description: 'Delete content selected by multiple structural selectors in one source pass' + }, insert: { family: :insertion, description: 'Insert explicit text at a destination anchor or append fallback' @@ -1021,6 +1025,11 @@ def context_for(content:, source_label:, target: nil) DocumentContext.new(content: content, source_label: source_label, adapter: adapter || Adapters::Null.new) end + def context_for_targets(content:, source_label:, targets:) + first_target = Array(targets).first + context_for(content: content, source_label: source_label, target: first_target) + end + def enforce_limit!(target, count) return if target.limit.allows?(count) @@ -1410,6 +1419,56 @@ def call end end + class DeleteBatch < Actor + include OperationSupport + include OperationProfilable + + declare_operation_profile( + operation_kind: :delete_batch, + source_requirement: :required, + destination_requirement: :none, + replacement_source: :none, + captures_source_text: true, + supports_if_missing: false + ) + + input :content, type: String + input :targets, default: -> { [] } + input :source_label, type: String, default: 'source' + + output :updated_content + output :matches, default: -> { [] } + output :match_count, type: Integer, default: 0 + output :changed, default: false + output :captured_text, allow_nil: true, default: nil + output :operation_profile + + def call + self.operation_profile = self.class.operation_profile + selector_targets = Array(targets) + if selector_targets.empty? + self.updated_content = content + self.changed = false + return + end + + context = context_for_targets(content: content, source_label: source_label, targets: selector_targets) + self.matches = selector_targets.flat_map { |target| normalize_matches(target, context) } + self.match_count = matches.size + self.captured_text = capture_text(content, matches) + if matches.empty? + self.updated_content = content + self.changed = false + return + end + + self.updated_content = replace_line_ranges(content, matches, '') + self.changed = updated_content != content + rescue Error => e + crispr_fail!(e) + end + end + class Insert < Actor include OperationSupport include OperationProfilable diff --git a/gems/ast-crispr/spec/old_runtime_spec.rb b/gems/ast-crispr/spec/old_runtime_spec.rb index 07b0d4f1d..d03f762b9 100644 --- a/gems/ast-crispr/spec/old_runtime_spec.rb +++ b/gems/ast-crispr/spec/old_runtime_spec.rb @@ -8,12 +8,16 @@ FakeOwner = Struct.new(:location, :key, keyword_init: true) class FakeAdapter + attr_reader :read_count + def initialize(owners:, comments:) @owners = owners @comments = comments + @read_count = 0 end def read_ast(_document) + @read_count += 1 { owners: @owners, comments: @comments } end @@ -381,6 +385,26 @@ def read_json(path) it_behaves_like 'Ast::Crispr::OperationProfile contract' end + describe Ast::Crispr::DeleteBatch do + let(:operation_profile) { described_class.operation_profile } + let(:expected_operation_kind) { :delete_batch } + let(:expected_operation_family) { :removal } + let(:expected_known_operation_kind) { true } + let(:expected_source_requirement) { :required } + let(:expected_destination_requirement) { :none } + let(:expected_replacement_source) { :none } + let(:expected_captures_source_text) { true } + let(:expected_supports_if_missing) { false } + let(:expected_selects_source) { true } + let(:expected_requires_source) { true } + let(:expected_supports_destination) { false } + let(:expected_requires_destination) { false } + let(:expected_explicit_replacement) { false } + let(:expected_may_reuse_captured_text) { false } + + it_behaves_like 'Ast::Crispr::OperationProfile contract' + end + describe Ast::Crispr::Insert do let(:operation_profile) { described_class.operation_profile } let(:expected_operation_kind) { :insert } @@ -445,6 +469,41 @@ def read_json(path) end end + describe described_class::DeleteBatch do + it 'deletes matches from multiple selectors using one document context' do + content = <<~TEXT + ### MANAGED SNIPPET + puts "one" + + ### MANAGED SNIPPET + puts "two" + puts "still managed" + + ### STABLE + puts "stable" + TEXT + selector_one = Ast::Crispr::Selectors.owner_filter( + id: 'managed-one', + adapter: adapter, + limit: { exactly: 1 } + ) { |_context, owner| owner.key == :managed_one } + selector_two = Ast::Crispr::Selectors.owner_filter( + id: 'stable', + adapter: adapter, + limit: { exactly: 1 } + ) { |_context, owner| owner.key == :stable } + + actor = described_class.call(content: content, targets: [selector_one, selector_two]) + + expect(actor.changed).to be(true) + expect(actor.match_count).to eq(2) + expect(actor.captured_text).to include('puts "one"') + expect(actor.captured_text).to include('puts "stable"') + expect(actor.updated_content).to eq("\n### MANAGED SNIPPET\nputs \"two\"\nputs \"still managed\"\n\n") + expect(adapter.read_count).to eq(1) + end + end + describe described_class::MergeReplace do it 'merges replacement text into the selected slice before splicing it back' do fixture = read_json(fixtures_root.join('diagnostics', 'slice-1018-crispr-slice-merge', diff --git a/gems/kettle-jem/lib/kettle/jem.rb b/gems/kettle-jem/lib/kettle/jem.rb index 411e55c48..05c589ae0 100644 --- a/gems/kettle-jem/lib/kettle/jem.rb +++ b/gems/kettle-jem/lib/kettle/jem.rb @@ -796,7 +796,7 @@ def remove_missing_workflow_badges(content, workflow_paths) end def workflow_references(content) - markdown_link_definition_owners(content).each_with_object({}) do |owner, references| + markdown_structural_owners(content, :link_definitions).fetch(:link_definitions).each_with_object({}) do |owner, references| workflow = URI(owner.url.to_s).path.to_s.split("/actions/workflows/", 2).last next unless workflow workflow = workflow.split("/", 2).first @@ -935,9 +935,10 @@ def normalize_compatibility_badge_cell(cell) end def prune_unused_compatibility_reference_definitions(content) - referenced_labels = markdown_inline_reference_owners(content).flat_map(&:labels).to_h { |label| [label, true] } + owners = markdown_structural_owners(content, :inline_references, :link_definitions) + referenced_labels = owners.fetch(:inline_references).flat_map(&:labels).to_h { |label| [label, true] } - labels = markdown_link_definition_owners(content).filter_map do |owner| + labels = owners.fetch(:link_definitions).filter_map do |owner| label = owner.label.to_s label if COMPATIBILITY_REFERENCE_LABEL_RE.match?(label) && !referenced_labels[label] end @@ -945,8 +946,9 @@ def prune_unused_compatibility_reference_definitions(content) end def prune_orphaned_workflow_inline_references(content) - defined_labels = markdown_link_definition_owners(content).map { |owner| owner.label.to_s }.to_set - orphaned_labels = markdown_inline_reference_owners(content).flat_map(&:labels).map(&:to_s).uniq.select do |label| + owners = markdown_structural_owners(content, :link_definitions, :inline_references) + defined_labels = owners.fetch(:link_definitions).map { |owner| owner.label.to_s }.to_set + orphaned_labels = owners.fetch(:inline_references).flat_map(&:labels).map(&:to_s).uniq.select do |label| label.start_with?("🚎") && !defined_labels.include?(label) end processed = orphaned_labels.reduce(content.to_s) do |memo, label| @@ -979,6 +981,16 @@ def markdown_table_row_owners(content) [] end + def markdown_structural_owners(content, *owner_scopes) + Kettle::Jem.ensure_runtime_dependencies! + context = Ast::Crispr::Markdown::Markly.document_context(content: content.to_s, source_label: "README.md") + owner_scopes.each_with_object({}) do |owner_scope, owners| + owners[owner_scope] = context.structural_owners(owner_scope: owner_scope) + end + rescue Ast::Crispr::Error + owner_scopes.to_h { |owner_scope| [owner_scope, []] } + end + def compatibility_row?(line) text = line.to_s.lstrip text.start_with?("| Works with MRI Ruby", "| Works with JRuby", "| Works with Truffle Ruby") @@ -986,13 +998,12 @@ def compatibility_row?(line) def delete_markdown_link_definitions(content, labels) Kettle::Jem.ensure_runtime_dependencies! - labels.uniq.reduce(content.to_s) do |processed, label| - Ast::Crispr::Delete.call( - content: processed, - target: Ast::Crispr::Markdown::Markly::Selectors.link_definition(label: label, limit: {at_least: 0}), - source_label: "README.md" - ).updated_content + targets = labels.uniq.map do |label| + Ast::Crispr::Markdown::Markly::Selectors.link_definition(label: label, limit: {at_least: 0}) end + return content if targets.empty? + + Ast::Crispr::DeleteBatch.call(content: content.to_s, targets: targets, source_label: "README.md").updated_content end def remove_markdown_inline_references(content, label) @@ -5836,12 +5847,7 @@ def remove_readme_badge_and_refs(content, badge_source, link_labels) ensure_runtime_dependencies! processed = content.to_s.gsub(badge_source, "").lines.map(&:rstrip).join("\n") processed = "#{processed}\n" if content.to_s.end_with?("\n") - Array(link_labels).reduce(processed) do |memo, label| - delete_markdown_with_ast_crispr( - memo, - Ast::Crispr::Markdown::Markly::Selectors.link_definition(label: label, limit: {at_least: 0}) - ) - end + ReadmePostProcessor.delete_markdown_link_definitions(processed, Array(link_labels)) end def apply_markdown_conditional_block(content, name, keep:) @@ -6058,12 +6064,7 @@ def prune_readme_integration_badges(content, readme_style) pruned_badges = README_INTEGRATION_BADGE_PATTERNS.fetch(integration.to_s, []).reduce(result) do |memo, pattern| memo.gsub(pattern, "") end - README_INTEGRATION_LINK_LABELS.fetch(integration.to_s, []).reduce(pruned_badges) do |memo, label| - delete_markdown_with_ast_crispr( - memo, - Ast::Crispr::Markdown::Markly::Selectors.link_definition(label: label, limit: {at_least: 0}) - ) - end + ReadmePostProcessor.delete_markdown_link_definitions(pruned_badges, README_INTEGRATION_LINK_LABELS.fetch(integration.to_s, [])) end.gsub(/[ \t]{2,}/, " ") end @@ -6072,15 +6073,11 @@ def prune_missing_workflow_link_definitions(content, workflow_paths) existing = Array(workflow_paths).map { |path| path.to_s.delete_prefix("./") }.to_set Ast::Crispr::Markdown::Markly.document_context(content: content.to_s, source_label: "README.md") .structural_owners(owner_scope: :link_definitions) - .reduce(content.to_s) do |processed, owner| + .filter_map do |owner| workflow_path = readme_workflow_path_from_url(owner.url) - next processed if workflow_path.empty? || existing.include?(workflow_path) - - delete_markdown_with_ast_crispr( - processed, - Ast::Crispr::Markdown::Markly::Selectors.link_definition(label: owner.label, limit: {at_least: 0}) - ) + owner.label if !workflow_path.empty? && !existing.include?(workflow_path) end + .then { |labels| ReadmePostProcessor.delete_markdown_link_definitions(content, labels) } end def readme_workflow_path_from_url(url) From a78e8dbdcd29561992c01ede7d2fff439470fa90 Mon Sep 17 00:00:00 2001 From: "Peter H. Boling" Date: Mon, 20 Jul 2026 18:46:24 -0600 Subject: [PATCH 094/188] Split TSLP dependency sources Default development Gemfiles and locks to released tree_sitter_language_pack 1.13.2 while preserving the explicit VENDORED_GEMS/VENDOR_GEM_DIR path for local source testing. Add raw-template benchmark mode so template-only runs can be measured separately from install orchestration. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- CHANGELOG.md | 7 +- Gemfile.lock | 27 +-- gems/kettle-jem/CHANGELOG.md | 8 +- gems/kettle-jem/Gemfile.lock | 196 ++++++++++++++---- gems/kettle-jem/benchmarks/README.md | 22 +- .../benchmarks/kettle_jem_ractor_planning.rb | 68 +++++- gems/tree_haver/Gemfile.lock | 11 +- gems/tree_haver/spec/backends/tslp_spec.rb | 1 + gems/tree_haver/tree_haver.gemspec | 2 +- 9 files changed, 262 insertions(+), 80 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b42dc3111..d78cb6262 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -61,9 +61,10 @@ Please file a bug if you notice a violation of semantic versioning. - Root architecture specs now guard merge emission files against new ad hoc comment or blank-line ownership scans, keeping the remaining cleanup debt explicit while shared ast-merge attachment and layout helpers are adopted. -- Gems that use `tree_sitter_language_pack` now resolve it through the - StructuredMerge Ruby 4-compatible fork branch in their development Gemfiles - until an upstream Ruby 4-compatible release is available. +- Gems that use `tree_sitter_language_pack` now default to the released + `tree_sitter_language_pack` 1.13.2 or newer, while preserving the explicit + `VENDORED_GEMS=tree_sitter_language_pack` / `VENDOR_GEM_DIR` local-source + split for templating. - Structured merge gems now fail closed when no registered TreeHaver backend is available instead of falling back to direct parser-library paths outside the TreeHaver and ast-merge stack. diff --git a/Gemfile.lock b/Gemfile.lock index 0d368110c..e69ec370a 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,13 +1,3 @@ -GIT - remote: https://github.com/structuredmerge/tree-sitter-language-pack.git - revision: 85cac7836bb2f8cfcd3041a191b7bd11bf10924a - branch: fix/ruby-parser-api-methods - glob: packages/ruby/*.gemspec - specs: - tree_sitter_language_pack (1.12.5) - rb_sys (>= 0.9, < 0.9.128) - sorbet-runtime (~> 0.5) - PATH remote: /home/pboling/src/my/kettle-dev/kettle-dev specs: @@ -283,7 +273,7 @@ PATH tree_haver (7.1.0) citrus (~> 3.0) parslet (~> 2.0) - tree_sitter_language_pack (>= 1.9.0.pre.rc.40, < 2.0) + tree_sitter_language_pack (>= 1.13.2, < 2.0) version_gem (~> 1.1, >= 1.1.9) PATH @@ -362,9 +352,6 @@ GEM public_suffix (7.0.5) racc (1.8.1) rake (13.4.2) - rake-compiler-dock (1.12.0) - rb_sys (0.9.127) - rake-compiler-dock (= 1.12.0) rbs (4.0.3) logger prism (>= 1.6.0) @@ -403,7 +390,7 @@ GEM silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) - sorbet-runtime (0.6.13342) + sorbet-runtime (0.6.13344) stone_checksums (1.0.6) version_gem (~> 1.1, >= 1.1.13) thor (1.5.0) @@ -420,6 +407,8 @@ GEM toml-rb (4.2.0) citrus (~> 3.0, > 3.0) racc (~> 1.7) + tree_sitter_language_pack (1.13.2-x86_64-linux) + sorbet-runtime (~> 0.5) tsort (0.2.0) turbo_tests2 (3.2.0) parallel_tests (>= 3.3.0, < 6) @@ -475,7 +464,7 @@ DEPENDENCIES toml-merge! toml-rb (~> 4.1) tree_haver! - tree_sitter_language_pack! + tree_sitter_language_pack (>= 1.13.2, < 2.0) turbo_tests2 (~> 3.2, ~> 3.1, >= 3.2.0, >= 3.1.14) typescript-merge! yaml-merge! @@ -538,8 +527,6 @@ CHECKSUMS public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 - rake-compiler-dock (1.12.0) sha256=f13205c2738f3d2053afcd03491a9e4541b22a59a0bfc53fc8bc883bd8188023 - rb_sys (0.9.127) sha256=e9f90df3bb0577472d26d96127d5b5774b98f44de881e7d36aeefd28d6337847 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 rbs-merge (7.1.0) reline (0.6.3) sha256=1198b04973565b36ec0f11542ab3f5cfeeec34823f4e54cebde90968092b1835 @@ -562,7 +549,7 @@ CHECKSUMS service_actor (3.9.4) sha256=e63b523630b9a7e62959b2a90113b08d2565b5de9c148557b281ef847c9539ce silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 smorg-rb (7.1.0) - sorbet-runtime (0.6.13342) sha256=dbeb9892597f593ed2b29e38018912787f6c4e0c4b736d8af0d6bd3c63bde3c3 + sorbet-runtime (0.6.13344) sha256=0b4e3310cd10bc814f0d7cfa65db82151103322e75dd63c961546845dd8ba5e5 stone_checksums (1.0.6) sha256=c775f830513d6c6ab26e31d1a5fbecd4c4e39002663d4d9f8fa96e97990b5298 thor (1.5.0) sha256=e3a9e55fe857e44859ce104a84675ab6e8cd59c650a49106a05f55f136425e73 timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 @@ -572,7 +559,7 @@ CHECKSUMS toml-merge (7.1.0) toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 tree_haver (7.1.0) - tree_sitter_language_pack (1.12.5) + tree_sitter_language_pack (1.13.2-x86_64-linux) sha256=ab3beba6831edc30a99d962db505f70105b5489b149fd302802cf9df9b956385 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 typescript-merge (7.1.0) diff --git a/gems/kettle-jem/CHANGELOG.md b/gems/kettle-jem/CHANGELOG.md index 923421052..a2f64df21 100644 --- a/gems/kettle-jem/CHANGELOG.md +++ b/gems/kettle-jem/CHANGELOG.md @@ -36,6 +36,9 @@ Please file a bug if you notice a violation of semantic versioning. - Templating reports now persist phase duration metadata, install command steps record elapsed duration, and benchmark summaries show recipe-phase time apart from external command time. +- The benchmark harness now supports `KETTLE_JEM_BENCHMARK_MODE=raw-template` + to compare scoped raw `TemplateTask` runs separately from the default + install-orchestrated one-shot template flow. ### Fixed @@ -51,8 +54,9 @@ Please file a bug if you notice a violation of semantic versioning. `dep-heads.yml`, now omit JRuby and TruffleRuby jobs when the project config declares an MRI-only `engines` list. - `kettle-jem`'s generated development Gemfiles now depend on released - `tree_sitter_language_pack` 1.13.2 or newer by default, while still allowing - templating runs to override it with `VENDORED_GEMS`. + `tree_sitter_language_pack` 1.13.2 or newer by default, while still + allowing templating runs to switch to a local source with + `VENDORED_GEMS=tree_sitter_language_pack` / `VENDOR_GEM_DIR`. - Gemspec templating now deletes empty generated development-dependency comment sections through Prism-backed CRISPR structural edits, preventing blank-line churn before the closing `Gem::Specification` `end`. diff --git a/gems/kettle-jem/Gemfile.lock b/gems/kettle-jem/Gemfile.lock index c9e173ed9..e062273b8 100644 --- a/gems/kettle-jem/Gemfile.lock +++ b/gems/kettle-jem/Gemfile.lock @@ -1,13 +1,3 @@ -GIT - remote: https://github.com/structuredmerge/tree-sitter-language-pack.git - revision: 85cac7836bb2f8cfcd3041a191b7bd11bf10924a - branch: fix/ruby-parser-api-methods - glob: packages/ruby/*.gemspec - specs: - tree_sitter_language_pack (1.12.5) - rb_sys (>= 0.9, < 0.9.128) - sorbet-runtime (~> 0.5) - PATH remote: . specs: @@ -37,6 +27,32 @@ PATH tree_haver (= 7.1.0) yaml-merge (= 7.1.0) +PATH + remote: /home/pboling/src/my/kettle-dev/kettle-dev + specs: + kettle-dev (2.3.7) + emoji_regex (>= 15.0) + kettle-rb (~> 0.1, >= 0.1.2) + kettle-test (~> 2.0, >= 2.0.4) + ruby-progressbar (~> 1.13) + +PATH + remote: /home/pboling/src/my/kettle-dev/kettle-drift + specs: + kettle-drift (1.0.5) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/kettle-dev/kettle-soup-cover + specs: + kettle-soup-cover (3.0.3) + kettle-wash (~> 0.1, >= 0.1.0) + simplecov (>= 1.0) + simplecov-cobertura (>= 4.0) + simplecov-console (~> 0.9, >= 0.9.5) + simplecov-rcov (~> 0.3, >= 0.3.7) + simplecov_lcov_formatter (~> 0.9, >= 0.9.0) + PATH remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly specs: @@ -53,6 +69,22 @@ PATH prism-merge (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) +PATH + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr + specs: + ast-crispr (7.1.0) + ast-merge (= 7.1.0) + service_actor (~> 3.9) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git + specs: + ast-merge-git (7.1.0) + ast-merge (= 7.1.0) + json-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + PATH remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/ast-merge specs: @@ -62,6 +94,13 @@ PATH tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) +PATH + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/ast-template + specs: + ast-template (7.1.0) + ast-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + PATH remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/bash-merge specs: @@ -70,6 +109,13 @@ PATH tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.14) +PATH + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/binary-merge + specs: + binary-merge (7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + PATH remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge specs: @@ -94,6 +140,14 @@ PATH tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.14) +PATH + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/go-merge + specs: + go-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + PATH remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/json-merge specs: @@ -126,6 +180,22 @@ PATH markly (~> 0.9) version_gem (~> 1.1, >= 1.1.9) +PATH + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge + specs: + parslet-toml-merge (7.1.0) + toml (~> 0.3) + toml-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/plain-merge + specs: + plain-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + PATH remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/prism-merge specs: @@ -160,6 +230,27 @@ PATH tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) +PATH + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/rust-merge + specs: + rust-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb + specs: + smorg-rb (7.1.0) + ast-merge (= 7.1.0) + ast-merge-git (= 7.1.0) + go-merge (= 7.1.0) + json-merge (= 7.1.0) + kettle-jem (= 7.1.0) + markly-merge (= 7.1.0) + plain-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + PATH remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/toml-merge specs: @@ -174,7 +265,15 @@ PATH tree_haver (7.1.0) citrus (~> 3.0) parslet (~> 2.0) - tree_sitter_language_pack (>= 1.9.0.pre.rc.40, < 2.0) + tree_sitter_language_pack (>= 1.13.2, < 2.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge + specs: + typescript-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) PATH @@ -185,6 +284,13 @@ PATH tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) +PATH + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/zip-merge + specs: + zip-merge (7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + GEM remote: https://gem.coop/ specs: @@ -200,10 +306,6 @@ GEM rubocop (>= 1.0) version_gem (~> 1.1, >= 1.1.14) ast (2.4.3) - ast-crispr (7.1.0) - ast-merge (= 7.1.0) - service_actor (~> 3.9) - version_gem (~> 1.1, >= 1.1.9) backports (3.25.3) benchmark (0.5.0) bigdecimal (4.1.2) @@ -271,21 +373,7 @@ GEM rdoc (>= 4.0.0) reline (>= 0.4.2) json (2.21.1) - kettle-dev (2.3.7) - emoji_regex (>= 15.0) - kettle-rb (~> 0.1, >= 0.1.2) - kettle-test (~> 2.0, >= 2.0.4) - ruby-progressbar (~> 1.13) - kettle-drift (1.0.5) - version_gem (~> 1.1, >= 1.1.13) kettle-rb (0.1.4) - kettle-soup-cover (3.0.3) - kettle-wash (~> 0.1, >= 0.1.0) - simplecov (>= 1.0) - simplecov-cobertura (>= 4.0) - simplecov-console (~> 0.9, >= 0.9.5) - simplecov-rcov (~> 0.3, >= 0.3.7) - simplecov_lcov_formatter (~> 0.9, >= 0.9.0) kettle-test (2.0.11) appraisal2 (~> 3.0, >= 3.0.6) backports (~> 3.0) @@ -331,9 +419,6 @@ GEM racc (1.8.1) rainbow (3.1.1) rake (13.4.2) - rake-compiler-dock (1.12.0) - rb_sys (0.9.127) - rake-compiler-dock (= 1.12.0) rbs (4.0.3) logger prism (>= 1.6.0) @@ -481,7 +566,7 @@ GEM simplecov (>= 0.4.1) simplecov_lcov_formatter (0.9.0) simplecov (>= 0.18) - sorbet-runtime (0.6.13342) + sorbet-runtime (0.6.13344) standard (1.56.0) language_server-protocol (~> 3.17.0.2) lint_roller (~> 1.0) @@ -520,9 +605,13 @@ GEM token-resolver (2.0.4) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.13) + toml (0.3.0) + parslet (>= 1.8.0, < 3.0.0) toml-rb (4.2.0) citrus (~> 3.0, > 3.0) racc (~> 1.7) + tree_sitter_language_pack (1.13.2-x86_64-linux) + sorbet-runtime (~> 0.5) tsort (0.2.0) turbo_tests2 (3.2.0) parallel_tests (>= 3.3.0, < 6) @@ -564,11 +653,15 @@ PLATFORMS DEPENDENCIES appraisal2 (~> 3.2, >= 3.2.0) appraisal2-rubocop (~> 1.0, >= 1.0.0) + ast-crispr! ast-crispr-markdown-markly! ast-crispr-ruby-prism! ast-merge! + ast-merge-git! + ast-template! bash-merge! benchmark (~> 0.5, >= 0.5.0) + binary-merge! bundler-audit (~> 0.9.3) cgi (~> 0.5) citrus-toml-merge! @@ -578,11 +671,13 @@ DEPENDENCIES erb (~> 6.0, >= 6.0.5) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.4) + go-merge! irb (~> 1.17) json-merge! - kettle-drift (~> 1.0, >= 1.0.5) + kettle-dev! + kettle-drift! kettle-jem! - kettle-soup-cover (~> 3.0, >= 3.0.3) + kettle-soup-cover! kettle-test (~> 2.0, >= 2.0.11) kramdown (~> 2.5, >= 2.5.2) kramdown-merge! @@ -591,6 +686,8 @@ DEPENDENCIES markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) + parslet-toml-merge! + plain-merge! prism-merge! psych-merge! rake (~> 13.0) @@ -607,13 +704,16 @@ DEPENDENCIES rubocop-ruby3_2 (~> 3.0, >= 3.0.6) ruby-merge! ruby-progressbar (~> 1.13) + rust-merge! + smorg-rb! standard (~> 1.56, >= 1.56.0) stone_checksums (~> 1.0, >= 1.0.6) stringio (>= 3.0) toml-merge! tree_haver! - tree_sitter_language_pack! + tree_sitter_language_pack (>= 1.13.2, < 2.0) turbo_tests2 (~> 3.2, >= 3.2.0) + typescript-merge! webrick (~> 1.9) yaml-converter (~> 0.2, >= 0.2.3) yaml-merge! @@ -623,6 +723,7 @@ DEPENDENCIES yard-relative_markdown_links (~> 0.6) yard-timekeeper (~> 0.2, >= 0.2.4) yard-yaml (~> 0.2, >= 0.2.3) + zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af @@ -634,10 +735,13 @@ CHECKSUMS ast-crispr-markdown-markly (7.1.0) ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) + ast-merge-git (7.1.0) + ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd + binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 @@ -664,16 +768,17 @@ CHECKSUMS gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f + go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 json-merge (7.1.0) - kettle-dev (2.3.7) sha256=eb370113cd030d03cbe2d33b31c99858951017e5ad21a17e9ed89dc3770028ee - kettle-drift (1.0.5) sha256=07094e80140a049164142820bdd327c30fcd855bb00697a0a430600a2b5144a2 + kettle-dev (2.3.7) + kettle-drift (1.0.5) kettle-jem (7.1.0) kettle-rb (0.1.4) sha256=9cef7ce4f7021666b7222292f29051e51eaf042e8a5db11f3f4dd72f74243fc1 - kettle-soup-cover (3.0.3) sha256=5919649be35690e4580299a41ac7c44a9548a7ca38561ffdd3c683c9d63e6f9b + kettle-soup-cover (3.0.3) kettle-test (2.0.11) sha256=c710c90f7ab79d51f9452f0c09f5f90657e7a893f63583855c164d0b1b107ab2 kettle-wash (0.1.0) sha256=5c04b3900d0957339e7c7d9997bbd804599b68bde002e6f47f4e28a0eea22ea7 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa @@ -694,6 +799,8 @@ CHECKSUMS parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 + parslet-toml-merge (7.1.0) + plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 @@ -704,8 +811,6 @@ CHECKSUMS racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 - rake-compiler-dock (1.12.0) sha256=f13205c2738f3d2053afcd03491a9e4541b22a59a0bfc53fc8bc883bd8188023 - rb_sys (0.9.127) sha256=e9f90df3bb0577472d26d96127d5b5774b98f44de881e7d36aeefd28d6337847 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 @@ -746,6 +851,7 @@ CHECKSUMS ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 + rust-merge (7.1.0) service_actor (3.9.4) sha256=e63b523630b9a7e62959b2a90113b08d2565b5de9c148557b281ef847c9539ce silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 @@ -753,7 +859,8 @@ CHECKSUMS simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed - sorbet-runtime (0.6.13342) sha256=dbeb9892597f593ed2b29e38018912787f6c4e0c4b736d8af0d6bd3c63bde3c3 + smorg-rb (7.1.0) + sorbet-runtime (0.6.13344) sha256=0b4e3310cd10bc814f0d7cfa65db82151103322e75dd63c961546845dd8ba5e5 standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b standard-performance (1.9.0) sha256=49483d31be448292951d80e5e67cdcb576c2502103c7b40aec6f1b6e9c88e3f2 @@ -767,12 +874,14 @@ CHECKSUMS timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.4) sha256=33b926958f504525bba3ed511ab66fbcbf8ef30390815e931436b30f27ffcad0 + toml (0.3.0) sha256=0a91d0f76a9036e84e44f95693b12f58d358c1df3ac8e3b5271f2056ecc6e4b9 toml-merge (7.1.0) toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 tree_haver (7.1.0) - tree_sitter_language_pack (1.12.5) + tree_sitter_language_pack (1.13.2-x86_64-linux) sha256=ab3beba6831edc30a99d962db505f70105b5489b149fd302802cf9df9b956385 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 + typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 @@ -786,6 +895,7 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 + zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH diff --git a/gems/kettle-jem/benchmarks/README.md b/gems/kettle-jem/benchmarks/README.md index 86aa40644..331e6ba97 100644 --- a/gems/kettle-jem/benchmarks/README.md +++ b/gems/kettle-jem/benchmarks/README.md @@ -26,6 +26,7 @@ Useful environment variables: | `KETTLE_JEM_BENCHMARK_RUNS` | `3` | Number of measured runs for each variant. | | `KETTLE_JEM_BENCHMARK_WORKERS` | `min(2, Etc.nprocessors)` | Comma-separated worker counts for Ractor and thread variants. | | `KETTLE_JEM_BENCHMARK_COMMAND` | `template` | Public `kettle-jem` command to benchmark: `plan`, `apply`, `template`, or `install`. | +| `KETTLE_JEM_BENCHMARK_MODE` | `install-template` | Template benchmark mode: `install-template` keeps the one-shot install orchestration path; `raw-template` scopes `template` to all targets with `--only "**/*"` so it routes through `TemplateTask`. | | `KETTLE_JEM_BENCHMARK_MIN_RUBY` | `1.8.7` | Minimum Ruby value passed through `KJ_MIN_RUBY` to broaden generated workflow/gemfile coverage. | Benchmark runs set `KETTLE_JEM_SKIP_DRIFT_CHECK=true`, @@ -33,6 +34,15 @@ Benchmark runs set `KETTLE_JEM_SKIP_DRIFT_CHECK=true`, `KETTLE_JEM_SKIP_LOCK_NORMALIZATION=true` so external drift/style/setup cleanup does not pad the template timing comparison. +The harness invokes `exe/kettle-jem` through the kettle-jem development bundle +with `BUNDLE_GEMFILE` pinned to this checkout's `Gemfile`, so local sibling +StructuredMerge APIs are used while destination setup commands still sanitize +Bundler activation and select the copied fixture's own Gemfile. `K_JEM_TEMPLATING` +is applied only to the executed `kettle-jem` process, not to Bundler's Gemfile +evaluation. By default this resolves the released +`tree_sitter_language_pack` gem; set `VENDORED_GEMS=tree_sitter_language_pack` +and `VENDOR_GEM_DIR` to benchmark against a local vendored source instead. + The default `template` benchmark compares: - baseline classified planning with no Ractor workers @@ -60,9 +70,15 @@ and thread recipe counts, and file Ractor/thread unit counts for completed runs. For `plan`, file-worker variants are skipped because no filesystem apply phase runs. The default `template --accept-config` run exercises kettle-jem's -supported one-shot flow: environment variables seed `.structuredmerge/kettle-jem.yml`, -the config bootstrap is written, and the install/template task continues through -the follow-up apply against that config. +supported one-shot install flow: environment variables seed +`.structuredmerge/kettle-jem.yml`, the config bootstrap is written, and the +install/template task continues through the follow-up apply against that config. +Set `KETTLE_JEM_BENCHMARK_MODE=raw-template` to benchmark scoped +`template --only "**/*"` runs through `TemplateTask`, which isolates raw template +apply work from install orchestration. Raw-template mode first writes +`.structuredmerge/kettle-jem.yml` outside the measured interval so the timed run +uses the same accepted configuration shape without measuring install +orchestration. The latest committed benchmark summary lives at `results/README.md`. If the full benchmark has already run and `tmp/benchmarks/summary.json` still exists, diff --git a/gems/kettle-jem/benchmarks/kettle_jem_ractor_planning.rb b/gems/kettle-jem/benchmarks/kettle_jem_ractor_planning.rb index d3834b5e6..75e242c2f 100755 --- a/gems/kettle-jem/benchmarks/kettle_jem_ractor_planning.rb +++ b/gems/kettle-jem/benchmarks/kettle_jem_ractor_planning.rb @@ -17,6 +17,7 @@ SUMMARY_PATH = File.join(PROJECT_ROOT, "tmp", "benchmarks", "summary.json") RESULTS_README = File.join(BENCHMARK_ROOT, "results", "README.md") KETTLE_JEM_EXE = File.join(PROJECT_ROOT, "exe", "kettle-jem") +KETTLE_JEM_GEMFILE = File.join(PROJECT_ROOT, "Gemfile") SUMMARIZE_ONLY = ARGV.delete("--summarize-only") STDOUT.sync = true @@ -26,6 +27,7 @@ .map { |value| Integer(value.strip) } .uniq COMMAND = ENV.fetch("KETTLE_JEM_BENCHMARK_COMMAND", "template") +BENCHMARK_MODE = ENV.fetch("KETTLE_JEM_BENCHMARK_MODE", "install-template") raise "KETTLE_JEM_BENCHMARK_RUNS must be positive" unless RUNS.positive? raise "KETTLE_JEM_BENCHMARK_WORKERS must include at least one value" if WORKER_COUNTS.empty? @@ -36,9 +38,16 @@ unless %w[plan apply template install].include?(COMMAND) raise "Unsupported benchmark command #{COMMAND.inspect}" end +unless %w[install-template raw-template].include?(BENCHMARK_MODE) + raise "Unsupported benchmark mode #{BENCHMARK_MODE.inspect}" +end +if COMMAND != "template" && BENCHMARK_MODE != "install-template" + raise "KETTLE_JEM_BENCHMARK_MODE=#{BENCHMARK_MODE} requires KETTLE_JEM_BENCHMARK_COMMAND=template" +end BASE_ENV = { - "K_JEM_TEMPLATING" => "true", + "BUNDLE_GEMFILE" => KETTLE_JEM_GEMFILE, + "STRUCTUREDMERGE_DEV" => ENV.fetch("STRUCTUREDMERGE_DEV", File.expand_path("..", PROJECT_ROOT)), "KETTLE_JEM_ACCEPT_CONFIG" => "true", "KETTLE_JEM_SKIP_COMMIT" => "true", "KETTLE_JEM_SKIP_DRIFT_CHECK" => "true", @@ -211,6 +220,7 @@ def run_variant(variant, index) progress("starting #{variant.fetch(:name)} run #{index}/#{RUNS}") reset_worktree + prepare_raw_template_worktree(env) if raw_template_mode? started_at = Process.clock_gettime(Process::CLOCK_MONOTONIC) stdout, stderr, status = Open3.capture3(env, *command, chdir: WORKTREE) elapsed = Process.clock_gettime(Process::CLOCK_MONOTONIC) - started_at @@ -247,6 +257,10 @@ def run_variant(variant, index) def benchmark_command(report_path) command = [ + "bundle", + "exec", + "env", + "K_JEM_TEMPLATING=true", RbConfig.ruby, KETTLE_JEM_EXE, COMMAND, @@ -257,9 +271,54 @@ def benchmark_command(report_path) "--report", report_path ] + command.concat(raw_template_command_options) if raw_template_mode? command end +def prepare_raw_template_worktree(env) + report_path = File.join(REPORT_ROOT, "raw-template-bootstrap.json") + command = [ + "bundle", + "exec", + "env", + "K_JEM_TEMPLATING=true", + RbConfig.ruby, + KETTLE_JEM_EXE, + "template", + "--force", + "--quiet", + "--accept-config", + "--skip-commit", + "--report", + report_path, + "--only", + ".structuredmerge/kettle-jem.yml" + ] + _stdout, stderr, status = Open3.capture3(env, *command, chdir: WORKTREE) + return if status.success? + + raise <<~MESSAGE + Raw-template benchmark bootstrap failed with status #{status.exitstatus}. + Command: #{command.join(" ")} + STDERR: + #{stderr} + MESSAGE +end + +def raw_template_mode? + COMMAND == "template" && BENCHMARK_MODE == "raw-template" +end + +def raw_template_command_options + ["--only", "**/*"] +end + +def benchmark_command_label + label = "kettle-jem #{COMMAND}" + label = "#{label} #{raw_template_command_options.join(" ")}" if raw_template_mode? + label +end + def format_seconds(value) format("%.3fs", value) end @@ -268,7 +327,8 @@ def summary_payload(results, generated_at: Time.now) { generated_at: generated_at.iso8601, fixture: FIXTURE_ROOT, - command: "kettle-jem #{COMMAND}", + command: benchmark_command_label, + mode: BENCHMARK_MODE, runs: RUNS, worker_counts: WORKER_COUNTS, min_ruby: BASE_ENV.fetch("KJ_MIN_RUBY"), @@ -306,6 +366,7 @@ def build_results_readme(payload) "| --- | --- |", "| Fixture | `#{payload.fetch("fixture")}` |", "| Command | `#{payload.fetch("command")}` |", + "| Mode | `#{payload.fetch("mode", "install-template")}` |", "| Runs per variant | `#{payload.fetch("runs")}` |", "| Worker counts | `#{payload.fetch("worker_counts").join(", ")}` |", "| Minimum Ruby | `#{payload.fetch("min_ruby")}` |", @@ -370,7 +431,8 @@ def write_results_readme(payload) variants = benchmark_variants puts "kettle-jem Ractor planning benchmark" puts "fixture: #{FIXTURE_ROOT}" -puts "command: kettle-jem #{COMMAND}" +puts "command: #{benchmark_command_label}" +puts "mode: #{BENCHMARK_MODE}" puts "runs: #{RUNS}" puts "worker counts: #{WORKER_COUNTS.join(", ")}" puts "variants: #{variants.length}" diff --git a/gems/tree_haver/Gemfile.lock b/gems/tree_haver/Gemfile.lock index 96284e48e..d29a31123 100644 --- a/gems/tree_haver/Gemfile.lock +++ b/gems/tree_haver/Gemfile.lock @@ -4,7 +4,7 @@ PATH tree_haver (7.1.0) citrus (~> 3.0) parslet (~> 2.0) - tree_sitter_language_pack (>= 1.9.0.pre.rc.40, < 2.0) + tree_sitter_language_pack (>= 1.13.2, < 2.0) version_gem (~> 1.1, >= 1.1.9) GEM @@ -264,7 +264,7 @@ GEM simplecov-rcov (0.3.7) simplecov (>= 0.4.1) simplecov_json_formatter (0.1.4) - sorbet-runtime (0.6.13342) + sorbet-runtime (0.6.13344) standard (1.56.0) language_server-protocol (~> 3.17.0.2) lint_roller (~> 1.0) @@ -299,7 +299,7 @@ GEM toml-rb (4.2.0) citrus (~> 3.0, > 3.0) racc (~> 1.7) - tree_sitter_language_pack (1.13.1-x86_64-linux) + tree_sitter_language_pack (1.13.2-x86_64-linux) sorbet-runtime (~> 0.5) tsort (0.2.0) turbo_tests2 (3.2.0) @@ -374,6 +374,7 @@ DEPENDENCIES toml (~> 0.3) toml-rb (~> 4.1) tree_haver! + tree_sitter_language_pack (>= 1.13.2, < 2.0) yaml-converter (~> 0.1) yard (~> 0.9, >= 0.9.44) yard-fence (~> 0.9, >= 0.9.1) @@ -482,7 +483,7 @@ CHECKSUMS simplecov-lcov (0.9.0) sha256=7a77a31e200a595ed4b0249493056efd0c920601f53d2ef135ca34ee796346cd simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_json_formatter (0.1.4) sha256=529418fbe8de1713ac2b2d612aa3daa56d316975d307244399fa4838c601b428 - sorbet-runtime (0.6.13342) sha256=dbeb9892597f593ed2b29e38018912787f6c4e0c4b736d8af0d6bd3c63bde3c3 + sorbet-runtime (0.6.13344) sha256=0b4e3310cd10bc814f0d7cfa65db82151103322e75dd63c961546845dd8ba5e5 standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b standard-performance (1.9.0) sha256=49483d31be448292951d80e5e67cdcb576c2502103c7b40aec6f1b6e9c88e3f2 @@ -497,7 +498,7 @@ CHECKSUMS toml (0.3.0) sha256=0a91d0f76a9036e84e44f95693b12f58d358c1df3ac8e3b5271f2056ecc6e4b9 toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 tree_haver (7.1.0) - tree_sitter_language_pack (1.13.1-x86_64-linux) + tree_sitter_language_pack (1.13.2-x86_64-linux) sha256=ab3beba6831edc30a99d962db505f70105b5489b149fd302802cf9df9b956385 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 diff --git a/gems/tree_haver/spec/backends/tslp_spec.rb b/gems/tree_haver/spec/backends/tslp_spec.rb index 8c55d2c71..3f368bdfc 100644 --- a/gems/tree_haver/spec/backends/tslp_spec.rb +++ b/gems/tree_haver/spec/backends/tslp_spec.rb @@ -52,6 +52,7 @@ def parse(_source) stub_const('TreeSitterLanguagePack', Module.new) TreeSitterLanguagePack.const_set(:Parser, parser_class) allow(TreeSitterLanguagePack).to receive(:get_parser).with('toml').and_return(parser) + allow(described_class).to receive(:available?).and_return(true) tree_haver_parser = described_class::Parser.new tree_haver_parser.language = described_class::Language.new(:toml) diff --git a/gems/tree_haver/tree_haver.gemspec b/gems/tree_haver/tree_haver.gemspec index 74e6105ef..5fb7fbbf1 100644 --- a/gems/tree_haver/tree_haver.gemspec +++ b/gems/tree_haver/tree_haver.gemspec @@ -97,7 +97,7 @@ Gem::Specification.new do |spec| # Utilities spec.add_dependency 'citrus', '~> 3.0' spec.add_dependency 'parslet', '~> 2.0' - spec.add_dependency 'tree_sitter_language_pack', '>= 1.9.0.pre.rc.40', '< 2.0' + spec.add_dependency 'tree_sitter_language_pack', '>= 1.13.2', '< 2.0' spec.add_dependency('version_gem', '~> 1.1', '>= 1.1.9') # ruby >= 2.2.0 # NOTE: It is preferable to list development dependencies in the gemspec due to increased From 6ae5c041f4fb4d127d8155f39b3dddb3bf9978ca Mon Sep 17 00:00:00 2001 From: "Peter H. Boling" Date: Mon, 20 Jul 2026 19:01:46 -0600 Subject: [PATCH 095/188] =?UTF-8?q?=F0=9F=93=9D=20Document=20benchmarking?= =?UTF-8?q?=20commands?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gems/kettle-jem/benchmarks/README.md | 33 ++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/gems/kettle-jem/benchmarks/README.md b/gems/kettle-jem/benchmarks/README.md index 331e6ba97..cac64de0d 100644 --- a/gems/kettle-jem/benchmarks/README.md +++ b/gems/kettle-jem/benchmarks/README.md @@ -19,6 +19,39 @@ Run the benchmark from the `kettle-jem` project root: mise exec -C /path/to/kettle-jem -- ruby benchmarks/kettle_jem_ractor_planning.rb ``` +## Examples + +Default install-orchestrated benchmark: + +```console +cd /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem + +mise exec -C . -- env \ +K_JEM_TEMPLATING=true \ +STRUCTUREDMERGE_DEV=/home/pboling/src/my/structuredmerge/ruby/gems \ +VENDORED_GEMS= \ +VENDOR_GEM_DIR= \ +bundle exec ruby benchmarks/kettle_jem_ractor_planning.rb +``` + +Raw template-only benchmark: + +```console +cd /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem + +mise exec -C . -- env \ +K_JEM_TEMPLATING=true \ +STRUCTUREDMERGE_DEV=/home/pboling/src/my/structuredmerge/ruby/gems \ +VENDORED_GEMS= \ +VENDOR_GEM_DIR= \ +KETTLE_JEM_BENCHMARK_MODE=raw-template \ +bundle exec ruby benchmarks/kettle_jem_ractor_planning.rb +``` + +`raw-template` pre-bootstraps `.structuredmerge/kettle-jem.yml` outside the measured interval, then benchmarks scoped template `--only "**/*"` so it routes through `TemplateTask` instead of the default install-orchestrated flow. + +## ENV Variables + Useful environment variables: | Variable | Default | Purpose | From 8d18bbd270931ab36639aa36365dd925dd1a4ac9 Mon Sep 17 00:00:00 2001 From: "Peter H. Boling" Date: Mon, 20 Jul 2026 19:01:56 -0600 Subject: [PATCH 096/188] =?UTF-8?q?=F0=9F=93=9D=20Latest=20benchmarking=20?= =?UTF-8?q?results?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gems/kettle-jem/benchmarks/results/README.md | 36 +++++++------------- 1 file changed, 13 insertions(+), 23 deletions(-) diff --git a/gems/kettle-jem/benchmarks/results/README.md b/gems/kettle-jem/benchmarks/results/README.md index 7bf1dcf62..9074b0d20 100644 --- a/gems/kettle-jem/benchmarks/results/README.md +++ b/gems/kettle-jem/benchmarks/results/README.md @@ -1,37 +1,26 @@ # kettle-jem benchmark results -Last generated: `2026-07-20T17:23:42-06:00` +Last generated: `2026-07-20T18:57:42-06:00` | Setting | Value | | --- | --- | | Fixture | `/var/home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem/benchmarks/fixtures/skeleton` | | Command | `kettle-jem template` | +| Mode | `install-template` | | Runs per variant | `3` | -| Worker counts | `1, 2, 4, 8, 16, 22` | +| Worker counts | `2` | | Minimum Ruby | `1.8.7` | | Source reports | `/var/home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem/tmp/benchmarks/reports` | -| Variant | Min | Median | Mean | Max | Plan workers | File workers | Safe recipes | Plan spawns | Plan Ractor recipes | File units | File spawns | File Ractor units | Recipes | Changed | -| --- | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: | -| `baseline-main` | 20.099s | 20.133s | 20.284s | 20.620s | 0 | 0 | 2 | 0 | 0 | 132 | 0 | 0 | 146 | 134 | -| `planning-ractor-1` | 22.676s | 22.879s | 22.972s | 23.360s | 1 | 0 | 2 | 1 | 2 | 132 | 0 | 0 | 146 | 134 | -| `file-ractor-1` | 21.761s | 21.813s | 21.953s | 22.286s | 0 | 1 | 2 | 0 | 0 | 132 | 132 | 132 | 146 | 134 | -| `combined-ractor-1` | 23.414s | 23.449s | 23.452s | 23.494s | 1 | 1 | 2 | 1 | 2 | 132 | 132 | 132 | 146 | 134 | -| `planning-ractor-2` | 21.859s | 21.995s | 22.336s | 23.154s | 2 | 0 | 2 | 2 | 2 | 132 | 0 | 0 | 146 | 134 | -| `file-ractor-2` | 22.493s | 23.317s | 23.048s | 23.334s | 0 | 2 | 2 | 0 | 0 | 132 | 132 | 132 | 146 | 134 | -| `combined-ractor-2` | 22.669s | 23.237s | 23.140s | 23.514s | 2 | 2 | 2 | 2 | 2 | 132 | 132 | 132 | 146 | 134 | -| `planning-ractor-4` | 22.115s | 23.010s | 22.851s | 23.427s | 4 | 0 | 2 | 2 | 2 | 132 | 0 | 0 | 146 | 134 | -| `file-ractor-4` | 22.232s | 22.760s | 22.749s | 23.254s | 0 | 4 | 2 | 0 | 0 | 132 | 132 | 132 | 146 | 134 | -| `combined-ractor-4` | 22.620s | 23.204s | 23.033s | 23.273s | 4 | 4 | 2 | 2 | 2 | 132 | 132 | 132 | 146 | 134 | -| `planning-ractor-8` | 22.924s | 22.965s | 23.001s | 23.115s | 8 | 0 | 2 | 2 | 2 | 132 | 0 | 0 | 146 | 134 | -| `file-ractor-8` | 22.881s | 23.186s | 23.187s | 23.496s | 0 | 8 | 2 | 0 | 0 | 132 | 132 | 132 | 146 | 134 | -| `combined-ractor-8` | 21.864s | 22.298s | 22.346s | 22.878s | 8 | 8 | 2 | 2 | 2 | 132 | 132 | 132 | 146 | 134 | -| `planning-ractor-16` | 22.777s | 23.119s | 23.068s | 23.309s | 16 | 0 | 2 | 2 | 2 | 132 | 0 | 0 | 146 | 134 | -| `file-ractor-16` | 23.233s | 23.530s | 23.507s | 23.757s | 0 | 16 | 2 | 0 | 0 | 132 | 132 | 132 | 146 | 134 | -| `combined-ractor-16` | 22.192s | 22.668s | 22.569s | 22.848s | 16 | 16 | 2 | 2 | 2 | 132 | 132 | 132 | 146 | 134 | -| `planning-ractor-22` | 21.679s | 23.103s | 22.899s | 23.915s | 22 | 0 | 2 | 2 | 2 | 132 | 0 | 0 | 146 | 134 | -| `file-ractor-22` | 21.985s | 22.154s | 22.411s | 23.093s | 0 | 22 | 2 | 0 | 0 | 132 | 132 | 132 | 146 | 134 | -| `combined-ractor-22` | 21.813s | 22.091s | 22.458s | 23.472s | 22 | 22 | 2 | 2 | 2 | 132 | 132 | 132 | 146 | 134 | +| Variant | Min | Median | Mean | Max | Recipe phase | Command steps | Plan Ractors | Plan threads | File Ractors | File threads | Safe recipes | Plan Ractor jobs | Plan thread jobs | File units | File Ractor units | File thread units | Recipes | Changed | +| --- | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: | +| `baseline-main` | 12.110s | 12.134s | 12.260s | 12.537s | 7.166s | 2.960s | 0 | 0 | 0 | 0 | 2 | 0 | 0 | 132 | 0 | 0 | 146 | 134 | +| `planning-ractor-2` | 13.524s | 14.119s | 13.944s | 14.191s | 8.631s | 2.875s | 2 | 0 | 0 | 0 | 2 | 2 | 0 | 132 | 0 | 0 | 146 | 134 | +| `planning-thread-2` | 11.841s | 12.109s | 12.101s | 12.353s | 7.287s | 3.248s | 0 | 2 | 0 | 0 | 2 | 0 | 140 | 132 | 0 | 0 | 146 | 134 | +| `file-ractor-2` | 14.165s | 14.349s | 14.375s | 14.611s | 9.167s | 3.050s | 0 | 0 | 2 | 0 | 2 | 0 | 0 | 132 | 132 | 0 | 146 | 134 | +| `file-thread-2` | 11.961s | 12.625s | 12.439s | 12.733s | 7.097s | 2.999s | 0 | 0 | 0 | 2 | 2 | 0 | 0 | 132 | 0 | 132 | 146 | 134 | +| `combined-ractor-2` | 13.299s | 13.683s | 13.781s | 14.361s | 8.793s | 2.845s | 2 | 0 | 2 | 0 | 2 | 2 | 0 | 132 | 132 | 0 | 146 | 134 | +| `combined-thread-2` | 12.173s | 12.175s | 12.228s | 12.336s | 7.551s | 2.839s | 0 | 2 | 0 | 2 | 2 | 0 | 140 | 132 | 0 | 132 | 146 | 134 | These results are generated by `ruby benchmarks/kettle_jem_ractor_planning.rb`. Regenerate this README from the saved summary without rerunning the benchmark with: @@ -39,3 +28,4 @@ Regenerate this README from the saved summary without rerunning the benchmark wi ```bash ruby benchmarks/kettle_jem_ractor_planning.rb --summarize-only ``` + From 3afe60002e06e8108570d25f63de052c70a7962b Mon Sep 17 00:00:00 2001 From: "Peter H. Boling" Date: Mon, 20 Jul 2026 19:04:21 -0600 Subject: [PATCH 097/188] =?UTF-8?q?=F0=9F=93=9D=20Document=20benchmarking?= =?UTF-8?q?=20commands?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gems/kettle-jem/benchmarks/README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/gems/kettle-jem/benchmarks/README.md b/gems/kettle-jem/benchmarks/README.md index cac64de0d..5ee4d404f 100644 --- a/gems/kettle-jem/benchmarks/README.md +++ b/gems/kettle-jem/benchmarks/README.md @@ -31,6 +31,7 @@ K_JEM_TEMPLATING=true \ STRUCTUREDMERGE_DEV=/home/pboling/src/my/structuredmerge/ruby/gems \ VENDORED_GEMS= \ VENDOR_GEM_DIR= \ +KETTLE_JEM_BENCHMARK_WORKERS=1,4,8,16 \ bundle exec ruby benchmarks/kettle_jem_ractor_planning.rb ``` @@ -45,6 +46,7 @@ STRUCTUREDMERGE_DEV=/home/pboling/src/my/structuredmerge/ruby/gems \ VENDORED_GEMS= \ VENDOR_GEM_DIR= \ KETTLE_JEM_BENCHMARK_MODE=raw-template \ +KETTLE_JEM_BENCHMARK_WORKERS=1,4,8,16 \ bundle exec ruby benchmarks/kettle_jem_ractor_planning.rb ``` From 11c2691e82eca54092aaa83babd7b7607622978f Mon Sep 17 00:00:00 2001 From: "Peter H. Boling" Date: Mon, 20 Jul 2026 19:06:55 -0600 Subject: [PATCH 098/188] =?UTF-8?q?=F0=9F=93=9D=20Document=20benchmarking?= =?UTF-8?q?=20commands?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gems/kettle-jem/benchmarks/README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/gems/kettle-jem/benchmarks/README.md b/gems/kettle-jem/benchmarks/README.md index 5ee4d404f..226c7c68b 100644 --- a/gems/kettle-jem/benchmarks/README.md +++ b/gems/kettle-jem/benchmarks/README.md @@ -32,6 +32,7 @@ STRUCTUREDMERGE_DEV=/home/pboling/src/my/structuredmerge/ruby/gems \ VENDORED_GEMS= \ VENDOR_GEM_DIR= \ KETTLE_JEM_BENCHMARK_WORKERS=1,4,8,16 \ +KETTLE_JEM_BENCHMARK_RUNS=3 \ bundle exec ruby benchmarks/kettle_jem_ractor_planning.rb ``` @@ -47,6 +48,7 @@ VENDORED_GEMS= \ VENDOR_GEM_DIR= \ KETTLE_JEM_BENCHMARK_MODE=raw-template \ KETTLE_JEM_BENCHMARK_WORKERS=1,4,8,16 \ +KETTLE_JEM_BENCHMARK_RUNS=3 \ bundle exec ruby benchmarks/kettle_jem_ractor_planning.rb ``` From 9ffb3e26a862c52c92426017e644f05f8c96bef8 Mon Sep 17 00:00:00 2001 From: "Peter H. Boling" Date: Mon, 20 Jul 2026 19:12:00 -0600 Subject: [PATCH 099/188] Improve benchmark worker defaults Default the kettle-jem benchmark worker matrix to 1,min(4,n/2),min(8,n/2),n so higher-core hosts test a useful scaling curve while low-core hosts stay bounded. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- gems/kettle-jem/CHANGELOG.md | 3 +++ gems/kettle-jem/benchmarks/README.md | 4 +--- gems/kettle-jem/benchmarks/kettle_jem_ractor_planning.rb | 5 ++++- 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/gems/kettle-jem/CHANGELOG.md b/gems/kettle-jem/CHANGELOG.md index a2f64df21..281f570ee 100644 --- a/gems/kettle-jem/CHANGELOG.md +++ b/gems/kettle-jem/CHANGELOG.md @@ -39,6 +39,9 @@ Please file a bug if you notice a violation of semantic versioning. - The benchmark harness now supports `KETTLE_JEM_BENCHMARK_MODE=raw-template` to compare scoped raw `TemplateTask` runs separately from the default install-orchestrated one-shot template flow. +- The benchmark harness now defaults worker counts to `1,min(4,n/2),min(8,n/2),n` + instead of only `min(2,n)`, giving higher-core machines a useful default + scaling matrix while keeping low-core hosts bounded. ### Fixed diff --git a/gems/kettle-jem/benchmarks/README.md b/gems/kettle-jem/benchmarks/README.md index 226c7c68b..58758f613 100644 --- a/gems/kettle-jem/benchmarks/README.md +++ b/gems/kettle-jem/benchmarks/README.md @@ -31,7 +31,6 @@ K_JEM_TEMPLATING=true \ STRUCTUREDMERGE_DEV=/home/pboling/src/my/structuredmerge/ruby/gems \ VENDORED_GEMS= \ VENDOR_GEM_DIR= \ -KETTLE_JEM_BENCHMARK_WORKERS=1,4,8,16 \ KETTLE_JEM_BENCHMARK_RUNS=3 \ bundle exec ruby benchmarks/kettle_jem_ractor_planning.rb ``` @@ -47,7 +46,6 @@ STRUCTUREDMERGE_DEV=/home/pboling/src/my/structuredmerge/ruby/gems \ VENDORED_GEMS= \ VENDOR_GEM_DIR= \ KETTLE_JEM_BENCHMARK_MODE=raw-template \ -KETTLE_JEM_BENCHMARK_WORKERS=1,4,8,16 \ KETTLE_JEM_BENCHMARK_RUNS=3 \ bundle exec ruby benchmarks/kettle_jem_ractor_planning.rb ``` @@ -61,7 +59,7 @@ Useful environment variables: | Variable | Default | Purpose | | --- | --- | --- | | `KETTLE_JEM_BENCHMARK_RUNS` | `3` | Number of measured runs for each variant. | -| `KETTLE_JEM_BENCHMARK_WORKERS` | `min(2, Etc.nprocessors)` | Comma-separated worker counts for Ractor and thread variants. | +| `KETTLE_JEM_BENCHMARK_WORKERS` | `1,min(4,n/2),min(8,n/2),n` | Comma-separated worker counts for Ractor and thread variants, where `n` is `Etc.nprocessors`. | | `KETTLE_JEM_BENCHMARK_COMMAND` | `template` | Public `kettle-jem` command to benchmark: `plan`, `apply`, `template`, or `install`. | | `KETTLE_JEM_BENCHMARK_MODE` | `install-template` | Template benchmark mode: `install-template` keeps the one-shot install orchestration path; `raw-template` scopes `template` to all targets with `--only "**/*"` so it routes through `TemplateTask`. | | `KETTLE_JEM_BENCHMARK_MIN_RUBY` | `1.8.7` | Minimum Ruby value passed through `KJ_MIN_RUBY` to broaden generated workflow/gemfile coverage. | diff --git a/gems/kettle-jem/benchmarks/kettle_jem_ractor_planning.rb b/gems/kettle-jem/benchmarks/kettle_jem_ractor_planning.rb index 75e242c2f..d699e0414 100755 --- a/gems/kettle-jem/benchmarks/kettle_jem_ractor_planning.rb +++ b/gems/kettle-jem/benchmarks/kettle_jem_ractor_planning.rb @@ -22,7 +22,10 @@ STDOUT.sync = true RUNS = Integer(ENV.fetch("KETTLE_JEM_BENCHMARK_RUNS", "3")) -WORKER_COUNTS = ENV.fetch("KETTLE_JEM_BENCHMARK_WORKERS", [2, Etc.nprocessors].min.to_s) +NPROCESSORS = Etc.nprocessors +HALF_NPROCESSORS = [1, NPROCESSORS / 2].max +DEFAULT_WORKER_COUNTS = [1, [4, HALF_NPROCESSORS].min, [8, HALF_NPROCESSORS].min, NPROCESSORS].uniq +WORKER_COUNTS = ENV.fetch("KETTLE_JEM_BENCHMARK_WORKERS", DEFAULT_WORKER_COUNTS.join(",")) .split(",") .map { |value| Integer(value.strip) } .uniq From c5c63c4519ab90e26c859f58cfc101c96f008012 Mon Sep 17 00:00:00 2001 From: "Peter H. Boling" Date: Mon, 20 Jul 2026 19:20:30 -0600 Subject: [PATCH 100/188] Add benchmark baseline deltas Show each benchmark variant's median percentage delta against baseline-main as the second column in both console and generated README summaries. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- gems/kettle-jem/CHANGELOG.md | 2 + gems/kettle-jem/benchmarks/README.md | 4 +- .../benchmarks/kettle_jem_ractor_planning.rb | 21 ++++++--- gems/kettle-jem/benchmarks/results/README.md | 44 +++++++++++++------ 4 files changed, 52 insertions(+), 19 deletions(-) diff --git a/gems/kettle-jem/CHANGELOG.md b/gems/kettle-jem/CHANGELOG.md index 281f570ee..6544e179a 100644 --- a/gems/kettle-jem/CHANGELOG.md +++ b/gems/kettle-jem/CHANGELOG.md @@ -42,6 +42,8 @@ Please file a bug if you notice a violation of semantic versioning. - The benchmark harness now defaults worker counts to `1,min(4,n/2),min(8,n/2),n` instead of only `min(2,n)`, giving higher-core machines a useful default scaling matrix while keeping low-core hosts bounded. +- Benchmark summaries now show each variant's median percentage delta against + `baseline-main` immediately after the variant name. ### Fixed diff --git a/gems/kettle-jem/benchmarks/README.md b/gems/kettle-jem/benchmarks/README.md index 58758f613..a76b9f71e 100644 --- a/gems/kettle-jem/benchmarks/README.md +++ b/gems/kettle-jem/benchmarks/README.md @@ -97,7 +97,9 @@ in Ractors or threads. These counters distinguish "workers were enabled" from Reports also persist phase durations and install command-step durations. The benchmark table surfaces recipe-phase and external-command time separately so -template execution changes are not hidden by setup commands. +template execution changes are not hidden by setup commands. Summary tables also +show each variant's median wall-clock percentage delta against `baseline-main` +as the second column. Long runs print timestamped progress lines before and after each measured variant run, including elapsed seconds, recipe/change counts, planning Ractor diff --git a/gems/kettle-jem/benchmarks/kettle_jem_ractor_planning.rb b/gems/kettle-jem/benchmarks/kettle_jem_ractor_planning.rb index d699e0414..c9057f2ca 100755 --- a/gems/kettle-jem/benchmarks/kettle_jem_ractor_planning.rb +++ b/gems/kettle-jem/benchmarks/kettle_jem_ractor_planning.rb @@ -326,6 +326,12 @@ def format_seconds(value) format("%.3fs", value) end +def format_baseline_delta(value, baseline) + return "n/a" if baseline.to_f.zero? + + format("%+.1f%%", ((value - baseline) / baseline) * 100.0) +end + def summary_payload(results, generated_at: Time.now) { generated_at: generated_at.iso8601, @@ -360,6 +366,7 @@ def read_summary_json def build_results_readme(payload) variants = payload.fetch("variants") snapshot_count = ->(snapshot, key) { snapshot.fetch(key, 0) } + baseline_median = variants.fetch("baseline-main").fetch("summary").fetch("median") lines = [ "# kettle-jem benchmark results", "", @@ -375,15 +382,16 @@ def build_results_readme(payload) "| Minimum Ruby | `#{payload.fetch("min_ruby")}` |", "| Source reports | `#{payload.fetch("report_root")}` |", "", - "| Variant | Min | Median | Mean | Max | Recipe phase | Command steps | Plan Ractors | Plan threads | File Ractors | File threads | Safe recipes | Plan Ractor jobs | Plan thread jobs | File units | File Ractor units | File thread units | Recipes | Changed |", - "| --- | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: |" + "| Variant | +/- baseline | Min | Median | Mean | Max | Recipe phase | Command steps | Plan Ractors | Plan threads | File Ractors | File threads | Safe recipes | Plan Ractor jobs | Plan thread jobs | File units | File Ractor units | File thread units | Recipes | Changed |", + "| --- | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: |" ] variants.each do |name, result| summary = result.fetch("summary") snapshot = result.fetch("snapshot") lines << format( - "| `%s` | %s | %s | %s | %s | %s | %s | %d | %d | %d | %d | %d | %d | %d | %d | %d | %d | %d | %d |", + "| `%s` | %s | %s | %s | %s | %s | %s | %s | %d | %d | %d | %d | %d | %d | %d | %d | %d | %d | %d | %d |", name: name, + baseline_delta: format_baseline_delta(summary.fetch("median"), baseline_median), min: format_seconds(summary.fetch("min")), median: format_seconds(summary.fetch("median")), mean: format_seconds(summary.fetch("mean")), @@ -454,9 +462,11 @@ def write_results_readme(payload) puts puts "summary" puts +baseline_median = results.fetch("baseline-main").fetch(:summary).fetch(:median) puts format( - "%-28s %8s %8s %8s %8s %8s %8s %4s %4s %4s %4s %4s %4s %4s %4s %4s %4s %7s %7s", + "%-28s %8s %8s %8s %8s %8s %8s %8s %4s %4s %4s %4s %4s %4s %4s %4s %4s %4s %7s %7s", "variant", + "+/-", "min", "median", "mean", @@ -480,8 +490,9 @@ def write_results_readme(payload) summary = result.fetch(:summary) snapshot = result.fetch(:snapshot) puts format( - "%-28s %8.3fs %8.3fs %8.3fs %8.3fs %8.3fs %8.3fs %4d %4d %4d %4d %4d %4d %4d %4d %4d %4d %7d %7d", + "%-28s %8s %8.3fs %8.3fs %8.3fs %8.3fs %8.3fs %8.3fs %4d %4d %4d %4d %4d %4d %4d %4d %4d %4d %7d %7d", name, + format_baseline_delta(summary.fetch(:median), baseline_median), summary.fetch(:min), summary.fetch(:median), summary.fetch(:mean), diff --git a/gems/kettle-jem/benchmarks/results/README.md b/gems/kettle-jem/benchmarks/results/README.md index 9074b0d20..274bb1259 100644 --- a/gems/kettle-jem/benchmarks/results/README.md +++ b/gems/kettle-jem/benchmarks/results/README.md @@ -1,26 +1,44 @@ # kettle-jem benchmark results -Last generated: `2026-07-20T18:57:42-06:00` +Last generated: `2026-07-20T19:17:52-06:00` | Setting | Value | | --- | --- | | Fixture | `/var/home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem/benchmarks/fixtures/skeleton` | -| Command | `kettle-jem template` | -| Mode | `install-template` | +| Command | `kettle-jem template --only **/*` | +| Mode | `raw-template` | | Runs per variant | `3` | -| Worker counts | `2` | +| Worker counts | `1, 4, 8, 16` | | Minimum Ruby | `1.8.7` | | Source reports | `/var/home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem/tmp/benchmarks/reports` | -| Variant | Min | Median | Mean | Max | Recipe phase | Command steps | Plan Ractors | Plan threads | File Ractors | File threads | Safe recipes | Plan Ractor jobs | Plan thread jobs | File units | File Ractor units | File thread units | Recipes | Changed | -| --- | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: | -| `baseline-main` | 12.110s | 12.134s | 12.260s | 12.537s | 7.166s | 2.960s | 0 | 0 | 0 | 0 | 2 | 0 | 0 | 132 | 0 | 0 | 146 | 134 | -| `planning-ractor-2` | 13.524s | 14.119s | 13.944s | 14.191s | 8.631s | 2.875s | 2 | 0 | 0 | 0 | 2 | 2 | 0 | 132 | 0 | 0 | 146 | 134 | -| `planning-thread-2` | 11.841s | 12.109s | 12.101s | 12.353s | 7.287s | 3.248s | 0 | 2 | 0 | 0 | 2 | 0 | 140 | 132 | 0 | 0 | 146 | 134 | -| `file-ractor-2` | 14.165s | 14.349s | 14.375s | 14.611s | 9.167s | 3.050s | 0 | 0 | 2 | 0 | 2 | 0 | 0 | 132 | 132 | 0 | 146 | 134 | -| `file-thread-2` | 11.961s | 12.625s | 12.439s | 12.733s | 7.097s | 2.999s | 0 | 0 | 0 | 2 | 2 | 0 | 0 | 132 | 0 | 132 | 146 | 134 | -| `combined-ractor-2` | 13.299s | 13.683s | 13.781s | 14.361s | 8.793s | 2.845s | 2 | 0 | 2 | 0 | 2 | 2 | 0 | 132 | 132 | 0 | 146 | 134 | -| `combined-thread-2` | 12.173s | 12.175s | 12.228s | 12.336s | 7.551s | 2.839s | 0 | 2 | 0 | 2 | 2 | 0 | 140 | 132 | 0 | 132 | 146 | 134 | +| Variant | +/- baseline | Min | Median | Mean | Max | Recipe phase | Command steps | Plan Ractors | Plan threads | File Ractors | File threads | Safe recipes | Plan Ractor jobs | Plan thread jobs | File units | File Ractor units | File thread units | Recipes | Changed | +| --- | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: | +| `baseline-main` | +0.0% | 8.027s | 8.721s | 8.529s | 8.838s | 7.442s | 0.002s | 0 | 0 | 0 | 0 | 2 | 0 | 0 | 133 | 0 | 0 | 140 | 133 | +| `planning-ractor-1` | +20.0% | 9.777s | 10.466s | 10.485s | 11.212s | 9.070s | 0.003s | 1 | 0 | 0 | 0 | 2 | 2 | 0 | 133 | 0 | 0 | 140 | 133 | +| `planning-thread-1` | -8.1% | 7.957s | 8.015s | 7.999s | 8.026s | 6.595s | 0.003s | 0 | 1 | 0 | 0 | 2 | 0 | 140 | 133 | 0 | 0 | 140 | 133 | +| `file-ractor-1` | -5.2% | 8.267s | 8.268s | 8.498s | 8.959s | 7.475s | 0.003s | 0 | 0 | 1 | 0 | 2 | 0 | 0 | 133 | 133 | 0 | 140 | 133 | +| `file-thread-1` | +17.3% | 10.137s | 10.232s | 10.270s | 10.440s | 8.299s | 0.002s | 0 | 0 | 0 | 1 | 2 | 0 | 0 | 133 | 0 | 133 | 140 | 133 | +| `combined-ractor-1` | +22.7% | 10.262s | 10.698s | 10.619s | 10.897s | 9.403s | 0.002s | 1 | 0 | 1 | 0 | 2 | 2 | 0 | 133 | 133 | 0 | 140 | 133 | +| `combined-thread-1` | -5.0% | 8.098s | 8.283s | 8.458s | 8.993s | 7.527s | 0.006s | 0 | 1 | 0 | 1 | 2 | 0 | 140 | 133 | 0 | 133 | 140 | 133 | +| `planning-ractor-4` | +18.0% | 9.567s | 10.290s | 10.347s | 11.185s | 8.077s | 0.003s | 4 | 0 | 0 | 0 | 2 | 2 | 0 | 133 | 0 | 0 | 140 | 133 | +| `planning-thread-4` | -4.3% | 8.234s | 8.345s | 8.345s | 8.455s | 7.086s | 0.003s | 0 | 4 | 0 | 0 | 2 | 0 | 140 | 133 | 0 | 0 | 140 | 133 | +| `file-ractor-4` | +2.8% | 8.325s | 8.963s | 8.767s | 9.013s | 7.501s | 0.002s | 0 | 0 | 4 | 0 | 2 | 0 | 0 | 133 | 133 | 0 | 140 | 133 | +| `file-thread-4` | -4.2% | 8.228s | 8.352s | 8.323s | 8.388s | 6.814s | 0.003s | 0 | 0 | 0 | 4 | 2 | 0 | 0 | 133 | 0 | 133 | 140 | 133 | +| `combined-ractor-4` | +10.5% | 9.472s | 9.637s | 9.752s | 10.146s | 8.219s | 0.003s | 4 | 0 | 4 | 0 | 2 | 2 | 0 | 133 | 133 | 0 | 140 | 133 | +| `combined-thread-4` | +6.1% | 8.470s | 9.256s | 9.040s | 9.395s | 7.900s | 0.003s | 0 | 4 | 0 | 4 | 2 | 0 | 140 | 133 | 0 | 133 | 140 | 133 | +| `planning-ractor-8` | +25.9% | 10.717s | 10.984s | 10.943s | 11.129s | 9.420s | 0.002s | 8 | 0 | 0 | 0 | 2 | 2 | 0 | 133 | 0 | 0 | 140 | 133 | +| `planning-thread-8` | +5.1% | 8.487s | 9.167s | 9.151s | 9.799s | 7.022s | 0.002s | 0 | 8 | 0 | 0 | 2 | 0 | 140 | 133 | 0 | 0 | 140 | 133 | +| `file-ractor-8` | +0.6% | 8.264s | 8.773s | 8.619s | 8.820s | 7.367s | 0.002s | 0 | 0 | 8 | 0 | 2 | 0 | 0 | 133 | 133 | 0 | 140 | 133 | +| `file-thread-8` | -1.3% | 8.509s | 8.605s | 8.705s | 9.001s | 7.573s | 0.003s | 0 | 0 | 0 | 8 | 2 | 0 | 0 | 133 | 0 | 133 | 140 | 133 | +| `combined-ractor-8` | +19.4% | 9.594s | 10.410s | 10.148s | 10.442s | 8.132s | 0.002s | 8 | 0 | 8 | 0 | 2 | 2 | 0 | 133 | 133 | 0 | 140 | 133 | +| `combined-thread-8` | -1.2% | 8.561s | 8.619s | 8.634s | 8.723s | 7.166s | 0.002s | 0 | 8 | 0 | 8 | 2 | 0 | 140 | 133 | 0 | 133 | 140 | 133 | +| `planning-ractor-16` | +14.9% | 9.511s | 10.020s | 9.976s | 10.395s | 8.921s | 0.002s | 16 | 0 | 0 | 0 | 2 | 2 | 0 | 133 | 0 | 0 | 140 | 133 | +| `planning-thread-16` | -1.9% | 8.519s | 8.556s | 8.545s | 8.561s | 7.175s | 0.002s | 0 | 16 | 0 | 0 | 2 | 0 | 140 | 133 | 0 | 0 | 140 | 133 | +| `file-ractor-16` | +2.3% | 8.247s | 8.920s | 8.709s | 8.959s | 7.528s | 0.002s | 0 | 0 | 16 | 0 | 2 | 0 | 0 | 133 | 133 | 0 | 140 | 133 | +| `file-thread-16` | -6.2% | 8.061s | 8.182s | 8.378s | 8.892s | 6.681s | 0.002s | 0 | 0 | 0 | 16 | 2 | 0 | 0 | 133 | 0 | 133 | 140 | 133 | +| `combined-ractor-16` | +18.7% | 10.301s | 10.351s | 10.423s | 10.617s | 8.846s | 0.003s | 16 | 0 | 16 | 0 | 2 | 2 | 0 | 133 | 133 | 0 | 140 | 133 | +| `combined-thread-16` | +0.9% | 8.747s | 8.801s | 8.814s | 8.894s | 7.281s | 0.003s | 0 | 16 | 0 | 16 | 2 | 0 | 140 | 133 | 0 | 133 | 140 | 133 | These results are generated by `ruby benchmarks/kettle_jem_ractor_planning.rb`. Regenerate this README from the saved summary without rerunning the benchmark with: From 751099ef837f67d419cf85efe00ecba242b9d976 Mon Sep 17 00:00:00 2001 From: "Peter H. Boling" Date: Mon, 20 Jul 2026 19:21:42 -0600 Subject: [PATCH 101/188] Allow benchmark results summary Keep generated results directories ignored by default, but unignore the committed kettle-jem benchmark results README so normal git add works for regenerated summaries. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- .gitignore | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.gitignore b/.gitignore index 47dfeb723..51328a2d2 100644 --- a/.gitignore +++ b/.gitignore @@ -8,6 +8,8 @@ /log/ /pkg/ **/results/ +!gems/kettle-jem/benchmarks/results/ +!gems/kettle-jem/benchmarks/results/README.md /tmp/ /vendor/bundle/ .env.local From c43e53f9caf3b0da1193596e5c68cdcba9ce1488 Mon Sep 17 00:00:00 2001 From: "Peter H. Boling" Date: Mon, 20 Jul 2026 19:35:28 -0600 Subject: [PATCH 102/188] Instrument README benchmark timings Record README sub-step timings in recipe metadata and surface the baseline README timing breakdown in benchmark console and generated README summaries. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- gems/kettle-jem/CHANGELOG.md | 2 + gems/kettle-jem/benchmarks/README.md | 4 +- .../benchmarks/kettle_jem_ractor_planning.rb | 67 ++++++ gems/kettle-jem/benchmarks/results/README.md | 60 ++--- gems/kettle-jem/lib/kettle/jem.rb | 226 +++++++++++------- .../spec/integration/recipe_planning_spec.rb | 35 +++ 6 files changed, 282 insertions(+), 112 deletions(-) diff --git a/gems/kettle-jem/CHANGELOG.md b/gems/kettle-jem/CHANGELOG.md index 6544e179a..92eeb6cbc 100644 --- a/gems/kettle-jem/CHANGELOG.md +++ b/gems/kettle-jem/CHANGELOG.md @@ -44,6 +44,8 @@ Please file a bug if you notice a violation of semantic versioning. scaling matrix while keeping low-core hosts bounded. - Benchmark summaries now show each variant's median percentage delta against `baseline-main` immediately after the variant name. +- README recipe reports now include sub-step timing metadata, and benchmark + results summarize the baseline README timing breakdown. ### Fixed diff --git a/gems/kettle-jem/benchmarks/README.md b/gems/kettle-jem/benchmarks/README.md index a76b9f71e..5a1419b5c 100644 --- a/gems/kettle-jem/benchmarks/README.md +++ b/gems/kettle-jem/benchmarks/README.md @@ -99,7 +99,9 @@ Reports also persist phase durations and install command-step durations. The benchmark table surfaces recipe-phase and external-command time separately so template execution changes are not hidden by setup commands. Summary tables also show each variant's median wall-clock percentage delta against `baseline-main` -as the second column. +as the second column. When README sub-step timings are present, the generated +results README also includes a baseline README timing breakdown so repeated +Markdown/AST work can be targeted directly. Long runs print timestamped progress lines before and after each measured variant run, including elapsed seconds, recipe/change counts, planning Ractor diff --git a/gems/kettle-jem/benchmarks/kettle_jem_ractor_planning.rb b/gems/kettle-jem/benchmarks/kettle_jem_ractor_planning.rb index c9057f2ca..d16b8c835 100755 --- a/gems/kettle-jem/benchmarks/kettle_jem_ractor_planning.rb +++ b/gems/kettle-jem/benchmarks/kettle_jem_ractor_planning.rb @@ -190,6 +190,7 @@ def report_snapshot(path) command_results.sum { |result| result.fetch("duration_ms", 0).to_f } end end + readme_timings = report_readme_timings(report) { strategy: report["recipe_planning_strategy"], planning_workers: report["recipe_planning_workers"], @@ -211,11 +212,30 @@ def report_snapshot(path) recipes_duration_ms: phase_timings.select { |entry| entry.fetch("phase", "") == "recipes" }.sum { |entry| entry.fetch("duration_ms", 0).to_f }.round(3), apply_duration_ms: phase_timings.select { |entry| entry.fetch("phase", "") == "apply" }.sum { |entry| entry.fetch("duration_ms", 0).to_f }.round(3), command_duration_ms: command_duration_ms.round(3), + readme_duration_ms: readme_timings.sum { |entry| entry.fetch(:duration_ms, 0).to_f }.round(3), + readme_timings: readme_timings, recipes: Array(report["recipe_reports"]).length, changed: Array(report["changed_files"]).length } end +def report_readme_timings(report) + timings = Array(report["recipe_reports"]).flat_map do |recipe_report| + next [] unless recipe_report["relative_path"].to_s == "README.md" + + Array(recipe_report.dig("metadata", "readme_timings")) + end.compact + grouped = timings.each_with_object({}) do |timing, groups| + name = timing.fetch("name").to_s + group = groups[name] ||= {name: name, count: 0, duration_ms: 0.0} + group[:count] += 1 + group[:duration_ms] += timing.fetch("duration_ms", 0).to_f + end + grouped.values + .map { |entry| entry.merge(duration_ms: entry.fetch(:duration_ms).round(3)) } + .sort_by { |entry| -entry.fetch(:duration_ms) } +end + def run_variant(variant, index) report_path = File.join(REPORT_ROOT, "#{variant.fetch(:name)}-#{index}.json") env = ENV.to_h.merge(BASE_ENV).merge(variant.fetch(:env)) @@ -332,6 +352,16 @@ def format_baseline_delta(value, baseline) format("%+.1f%%", ((value - baseline) / baseline) * 100.0) end +def format_share(value, total) + return "n/a" if total.to_f.zero? + + format("%.1f%%", (value / total) * 100.0) +end + +def timing_entry_value(entry, key, default = nil) + entry.fetch(key.to_s) { entry.fetch(key.to_sym, default) } +end + def summary_payload(results, generated_at: Time.now) { generated_at: generated_at.iso8601, @@ -367,6 +397,7 @@ def build_results_readme(payload) variants = payload.fetch("variants") snapshot_count = ->(snapshot, key) { snapshot.fetch(key, 0) } baseline_median = variants.fetch("baseline-main").fetch("summary").fetch("median") + baseline_readme_timings = Array(variants.fetch("baseline-main").fetch("snapshot").fetch("readme_timings", [])) lines = [ "# kettle-jem benchmark results", "", @@ -412,6 +443,25 @@ def build_results_readme(payload) changed: snapshot_count.call(snapshot, "changed") ) end + unless baseline_readme_timings.empty? + baseline_readme_total = baseline_readme_timings.sum { |entry| timing_entry_value(entry, :duration_ms, 0).to_f } + lines << "" + lines << "## Baseline README timing breakdown" + lines << "" + lines << "| Step | Duration | Share | Count |" + lines << "| --- | ---: | ---: | ---: |" + baseline_readme_timings.each do |entry| + duration_ms = timing_entry_value(entry, :duration_ms, 0).to_f + count = timing_entry_value(entry, :count, 0) + lines << format( + "| `%s` | %s | %s | %d |", + name: timing_entry_value(entry, :name), + duration: format_seconds(duration_ms / 1000.0), + share: format_share(duration_ms, baseline_readme_total), + count: count + ) + end + end lines << "" lines << "These results are generated by `ruby benchmarks/kettle_jem_ractor_planning.rb`." lines << "Regenerate this README from the saved summary without rerunning the benchmark with:" @@ -513,6 +563,23 @@ def write_results_readme(payload) snapshot.fetch(:changed) ) end +baseline_readme_timings = Array(results.fetch("baseline-main").fetch(:snapshot).fetch(:readme_timings, [])) +unless baseline_readme_timings.empty? + baseline_readme_total = baseline_readme_timings.sum { |entry| entry.fetch(:duration_ms).to_f } + puts + puts "baseline README timings" + puts + puts format("%-44s %10s %8s %5s", "step", "duration", "share", "count") + baseline_readme_timings.each do |entry| + puts format( + "%-44s %10.3fs %8s %5d", + entry.fetch(:name), + entry.fetch(:duration_ms) / 1000.0, + format_share(entry.fetch(:duration_ms), baseline_readme_total), + entry.fetch(:count) + ) + end +end payload = summary_payload(results) write_summary_json(payload) diff --git a/gems/kettle-jem/benchmarks/results/README.md b/gems/kettle-jem/benchmarks/results/README.md index 274bb1259..cfdb61a65 100644 --- a/gems/kettle-jem/benchmarks/results/README.md +++ b/gems/kettle-jem/benchmarks/results/README.md @@ -1,44 +1,48 @@ # kettle-jem benchmark results -Last generated: `2026-07-20T19:17:52-06:00` +Last generated: `2026-07-20T19:32:16-06:00` | Setting | Value | | --- | --- | | Fixture | `/var/home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem/benchmarks/fixtures/skeleton` | | Command | `kettle-jem template --only **/*` | | Mode | `raw-template` | -| Runs per variant | `3` | -| Worker counts | `1, 4, 8, 16` | +| Runs per variant | `1` | +| Worker counts | `1` | | Minimum Ruby | `1.8.7` | | Source reports | `/var/home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem/tmp/benchmarks/reports` | | Variant | +/- baseline | Min | Median | Mean | Max | Recipe phase | Command steps | Plan Ractors | Plan threads | File Ractors | File threads | Safe recipes | Plan Ractor jobs | Plan thread jobs | File units | File Ractor units | File thread units | Recipes | Changed | | --- | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: | -| `baseline-main` | +0.0% | 8.027s | 8.721s | 8.529s | 8.838s | 7.442s | 0.002s | 0 | 0 | 0 | 0 | 2 | 0 | 0 | 133 | 0 | 0 | 140 | 133 | -| `planning-ractor-1` | +20.0% | 9.777s | 10.466s | 10.485s | 11.212s | 9.070s | 0.003s | 1 | 0 | 0 | 0 | 2 | 2 | 0 | 133 | 0 | 0 | 140 | 133 | -| `planning-thread-1` | -8.1% | 7.957s | 8.015s | 7.999s | 8.026s | 6.595s | 0.003s | 0 | 1 | 0 | 0 | 2 | 0 | 140 | 133 | 0 | 0 | 140 | 133 | -| `file-ractor-1` | -5.2% | 8.267s | 8.268s | 8.498s | 8.959s | 7.475s | 0.003s | 0 | 0 | 1 | 0 | 2 | 0 | 0 | 133 | 133 | 0 | 140 | 133 | -| `file-thread-1` | +17.3% | 10.137s | 10.232s | 10.270s | 10.440s | 8.299s | 0.002s | 0 | 0 | 0 | 1 | 2 | 0 | 0 | 133 | 0 | 133 | 140 | 133 | -| `combined-ractor-1` | +22.7% | 10.262s | 10.698s | 10.619s | 10.897s | 9.403s | 0.002s | 1 | 0 | 1 | 0 | 2 | 2 | 0 | 133 | 133 | 0 | 140 | 133 | -| `combined-thread-1` | -5.0% | 8.098s | 8.283s | 8.458s | 8.993s | 7.527s | 0.006s | 0 | 1 | 0 | 1 | 2 | 0 | 140 | 133 | 0 | 133 | 140 | 133 | -| `planning-ractor-4` | +18.0% | 9.567s | 10.290s | 10.347s | 11.185s | 8.077s | 0.003s | 4 | 0 | 0 | 0 | 2 | 2 | 0 | 133 | 0 | 0 | 140 | 133 | -| `planning-thread-4` | -4.3% | 8.234s | 8.345s | 8.345s | 8.455s | 7.086s | 0.003s | 0 | 4 | 0 | 0 | 2 | 0 | 140 | 133 | 0 | 0 | 140 | 133 | -| `file-ractor-4` | +2.8% | 8.325s | 8.963s | 8.767s | 9.013s | 7.501s | 0.002s | 0 | 0 | 4 | 0 | 2 | 0 | 0 | 133 | 133 | 0 | 140 | 133 | -| `file-thread-4` | -4.2% | 8.228s | 8.352s | 8.323s | 8.388s | 6.814s | 0.003s | 0 | 0 | 0 | 4 | 2 | 0 | 0 | 133 | 0 | 133 | 140 | 133 | -| `combined-ractor-4` | +10.5% | 9.472s | 9.637s | 9.752s | 10.146s | 8.219s | 0.003s | 4 | 0 | 4 | 0 | 2 | 2 | 0 | 133 | 133 | 0 | 140 | 133 | -| `combined-thread-4` | +6.1% | 8.470s | 9.256s | 9.040s | 9.395s | 7.900s | 0.003s | 0 | 4 | 0 | 4 | 2 | 0 | 140 | 133 | 0 | 133 | 140 | 133 | -| `planning-ractor-8` | +25.9% | 10.717s | 10.984s | 10.943s | 11.129s | 9.420s | 0.002s | 8 | 0 | 0 | 0 | 2 | 2 | 0 | 133 | 0 | 0 | 140 | 133 | -| `planning-thread-8` | +5.1% | 8.487s | 9.167s | 9.151s | 9.799s | 7.022s | 0.002s | 0 | 8 | 0 | 0 | 2 | 0 | 140 | 133 | 0 | 0 | 140 | 133 | -| `file-ractor-8` | +0.6% | 8.264s | 8.773s | 8.619s | 8.820s | 7.367s | 0.002s | 0 | 0 | 8 | 0 | 2 | 0 | 0 | 133 | 133 | 0 | 140 | 133 | -| `file-thread-8` | -1.3% | 8.509s | 8.605s | 8.705s | 9.001s | 7.573s | 0.003s | 0 | 0 | 0 | 8 | 2 | 0 | 0 | 133 | 0 | 133 | 140 | 133 | -| `combined-ractor-8` | +19.4% | 9.594s | 10.410s | 10.148s | 10.442s | 8.132s | 0.002s | 8 | 0 | 8 | 0 | 2 | 2 | 0 | 133 | 133 | 0 | 140 | 133 | -| `combined-thread-8` | -1.2% | 8.561s | 8.619s | 8.634s | 8.723s | 7.166s | 0.002s | 0 | 8 | 0 | 8 | 2 | 0 | 140 | 133 | 0 | 133 | 140 | 133 | -| `planning-ractor-16` | +14.9% | 9.511s | 10.020s | 9.976s | 10.395s | 8.921s | 0.002s | 16 | 0 | 0 | 0 | 2 | 2 | 0 | 133 | 0 | 0 | 140 | 133 | -| `planning-thread-16` | -1.9% | 8.519s | 8.556s | 8.545s | 8.561s | 7.175s | 0.002s | 0 | 16 | 0 | 0 | 2 | 0 | 140 | 133 | 0 | 0 | 140 | 133 | -| `file-ractor-16` | +2.3% | 8.247s | 8.920s | 8.709s | 8.959s | 7.528s | 0.002s | 0 | 0 | 16 | 0 | 2 | 0 | 0 | 133 | 133 | 0 | 140 | 133 | -| `file-thread-16` | -6.2% | 8.061s | 8.182s | 8.378s | 8.892s | 6.681s | 0.002s | 0 | 0 | 0 | 16 | 2 | 0 | 0 | 133 | 0 | 133 | 140 | 133 | -| `combined-ractor-16` | +18.7% | 10.301s | 10.351s | 10.423s | 10.617s | 8.846s | 0.003s | 16 | 0 | 16 | 0 | 2 | 2 | 0 | 133 | 133 | 0 | 140 | 133 | -| `combined-thread-16` | +0.9% | 8.747s | 8.801s | 8.814s | 8.894s | 7.281s | 0.003s | 0 | 16 | 0 | 16 | 2 | 0 | 140 | 133 | 0 | 133 | 140 | 133 | +| `baseline-main` | +0.0% | 8.436s | 8.436s | 8.436s | 8.436s | 6.989s | 0.003s | 0 | 0 | 0 | 0 | 2 | 0 | 0 | 133 | 0 | 0 | 140 | 133 | +| `planning-ractor-1` | +32.5% | 11.181s | 11.181s | 11.181s | 11.181s | 9.629s | 0.002s | 1 | 0 | 0 | 0 | 2 | 2 | 0 | 133 | 0 | 0 | 140 | 133 | +| `planning-thread-1` | +15.0% | 9.704s | 9.704s | 9.704s | 9.704s | 8.052s | 0.003s | 0 | 1 | 0 | 0 | 2 | 0 | 140 | 133 | 0 | 0 | 140 | 133 | +| `file-ractor-1` | +21.8% | 10.279s | 10.279s | 10.279s | 10.279s | 8.179s | 0.003s | 0 | 0 | 1 | 0 | 2 | 0 | 0 | 133 | 133 | 0 | 140 | 133 | +| `file-thread-1` | +17.7% | 9.933s | 9.933s | 9.933s | 9.933s | 8.310s | 0.003s | 0 | 0 | 0 | 1 | 2 | 0 | 0 | 133 | 0 | 133 | 140 | 133 | +| `combined-ractor-1` | +38.4% | 11.674s | 11.674s | 11.674s | 11.674s | 10.003s | 0.003s | 1 | 0 | 1 | 0 | 2 | 2 | 0 | 133 | 133 | 0 | 140 | 133 | +| `combined-thread-1` | +18.0% | 9.955s | 9.955s | 9.955s | 9.955s | 8.299s | 0.003s | 0 | 1 | 0 | 1 | 2 | 0 | 140 | 133 | 0 | 133 | 140 | 133 | + +## Baseline README timing breakdown + +| Step | Duration | Share | Count | +| --- | ---: | ---: | ---: | +| `postprocess.readme_post_processor` | 0.410s | 17.8% | 2 | +| `prepare.integration_badges` | 0.406s | 17.6% | 1 | +| `readme.append_used_link_definitions` | 0.323s | 14.0% | 1 | +| `postprocess.conditional_blocks` | 0.235s | 10.2% | 2 | +| `postprocess.badge_policy` | 0.181s | 7.8% | 2 | +| `postprocess.logo_link_prune` | 0.163s | 7.1% | 2 | +| `badge_policy.codetriage` | 0.103s | 4.5% | 2 | +| `prepare.remove_sections` | 0.092s | 4.0% | 1 | +| `readme.merge_template` | 0.081s | 3.5% | 1 | +| `postprocess.project_heading` | 0.079s | 3.4% | 2 | +| `postprocess.synopsis_heading` | 0.078s | 3.4% | 2 | +| `badge_policy.fossa` | 0.078s | 3.4% | 2 | +| `postprocess.metadata_block` | 0.075s | 3.3% | 2 | +| `postprocess.blank_lines` | 0.000s | 0.0% | 2 | +| `postprocess.kloc_badge` | 0.000s | 0.0% | 2 | +| `postprocess.monorepo_thin_projection` | 0.000s | 0.0% | 2 | +| `postprocess.monorepo_subgem_recipe` | 0.000s | 0.0% | 2 | These results are generated by `ruby benchmarks/kettle_jem_ractor_planning.rb`. Regenerate this README from the saved summary without rerunning the benchmark with: diff --git a/gems/kettle-jem/lib/kettle/jem.rb b/gems/kettle-jem/lib/kettle/jem.rb index 05c589ae0..4a8d4491d 100644 --- a/gems/kettle-jem/lib/kettle/jem.rb +++ b/gems/kettle-jem/lib/kettle/jem.rb @@ -4117,6 +4117,35 @@ def duration_ms_since(started_at) ((monotonic_time - started_at) * 1000).round(3) end + def with_readme_timing_context(relative_path, timings) + return yield unless relative_path.to_s == "README.md" + + previous = Thread.current[:kettle_jem_readme_timings] + Thread.current[:kettle_jem_readme_timings] = timings + yield + ensure + Thread.current[:kettle_jem_readme_timings] = previous if relative_path.to_s == "README.md" + end + + def with_readme_timing(name) + timings = Thread.current[:kettle_jem_readme_timings] + return yield unless timings + + started_at = monotonic_time + result = yield + timings << {name: name.to_s, status: "ok", duration_ms: duration_ms_since(started_at)} + result + rescue => error + timings << { + name: name.to_s, + status: "failed", + duration_ms: duration_ms_since(started_at), + error_class: error.class.name, + error_message: error.message + } if timings && started_at + raise + end + def report_with_duration(report, duration_ms) report[:metadata] = report.fetch(:metadata, {}).merge(duration_ms: duration_ms) report.dig(:report_envelope, :report, :metadata)&.[]=(:duration_ms, duration_ms) @@ -5084,50 +5113,53 @@ def execute_recipe(project_root:, recipe:, facts:, files:, decision_policy:, env destination_existed = File.exist?(File.join(project_root, relative_path)) original = files.fetch(relative_path, "") deletion = rakefile_scaffold_cleanup_recipe?(recipe) ? rakefile_scaffold_cleanup(original, facts) : nil - final = case recipe.fetch(:name) - when "readme_metadata" - synchronize_readme(original, facts, project_root: project_root) - when "changelog_unreleased" - apply_changelog_transfer_entries( - normalize_changelog(original, facts), - facts.to_h.dig(:changelog, :transfer_entries) - ) - when "generated_block_sync" - synchronize_managed_block(original, facts) - when "github_funding_yml" - synchronize_github_funding_yml(original, facts) - when "github_actions_ci" - synchronize_github_actions_ci(original, facts) - when "github_actions_framework_ci" - synchronize_github_actions_framework_ci(original, facts) - when GITHUB_ACTIONS_FRAMEWORK_GEMFILE_RECIPE - synchronize_github_actions_framework_gemfile(recipe.fetch(:target_path), facts) - when "github_actions_coverage_ci" - synchronize_github_actions_coverage_ci(original, facts) - when GITHUB_ACTIONS_OBSOLETE_WORKFLOW_CLEANUP_RECIPE - "" - when GITHUB_ACTIONS_OPT_IN_WORKFLOW_CLEANUP_RECIPE - "" - when OPENCOLLECTIVE_DISABLED_FILE_CLEANUP_RECIPE - "" - when TEMPLATE_LEGACY_DESTINATION_CLEANUP_RECIPE - "" - when TEMPLATE_OBSOLETE_LICENSE_CLEANUP_RECIPE - "" - when TEMPLATE_SHIM_PROFILE_CLEANUP_RECIPE - "" - when GITHUB_ACTIONS_WORKFLOW_SNIPPETS_RECIPE - synchronize_github_actions_workflow_snippets(original, facts: facts) - when "kettle_config_bootstrap" - apply_kettle_config_bootstrap(project_root, recipe, env: env, template_contents: template_contents) - when TEMPLATE_SOURCE_PREFERENCE_RECIPE - original - when TEMPLATE_SOURCE_APPLICATION_RECIPE - apply_template_source(project_root, recipe, original, facts: facts, env: env, template_contents: template_contents) - when "rakefile_scaffold_cleanup" - deletion.fetch(:content) - else - original + readme_timings = [] + final = with_readme_timing_context(relative_path, readme_timings) do + case recipe.fetch(:name) + when "readme_metadata" + synchronize_readme(original, facts, project_root: project_root) + when "changelog_unreleased" + apply_changelog_transfer_entries( + normalize_changelog(original, facts), + facts.to_h.dig(:changelog, :transfer_entries) + ) + when "generated_block_sync" + synchronize_managed_block(original, facts) + when "github_funding_yml" + synchronize_github_funding_yml(original, facts) + when "github_actions_ci" + synchronize_github_actions_ci(original, facts) + when "github_actions_framework_ci" + synchronize_github_actions_framework_ci(original, facts) + when GITHUB_ACTIONS_FRAMEWORK_GEMFILE_RECIPE + synchronize_github_actions_framework_gemfile(recipe.fetch(:target_path), facts) + when "github_actions_coverage_ci" + synchronize_github_actions_coverage_ci(original, facts) + when GITHUB_ACTIONS_OBSOLETE_WORKFLOW_CLEANUP_RECIPE + "" + when GITHUB_ACTIONS_OPT_IN_WORKFLOW_CLEANUP_RECIPE + "" + when OPENCOLLECTIVE_DISABLED_FILE_CLEANUP_RECIPE + "" + when TEMPLATE_LEGACY_DESTINATION_CLEANUP_RECIPE + "" + when TEMPLATE_OBSOLETE_LICENSE_CLEANUP_RECIPE + "" + when TEMPLATE_SHIM_PROFILE_CLEANUP_RECIPE + "" + when GITHUB_ACTIONS_WORKFLOW_SNIPPETS_RECIPE + synchronize_github_actions_workflow_snippets(original, facts: facts) + when "kettle_config_bootstrap" + apply_kettle_config_bootstrap(project_root, recipe, env: env, template_contents: template_contents) + when TEMPLATE_SOURCE_PREFERENCE_RECIPE + original + when TEMPLATE_SOURCE_APPLICATION_RECIPE + apply_template_source(project_root, recipe, original, facts: facts, env: env, template_contents: template_contents) + when "rakefile_scaffold_cleanup" + deletion.fetch(:content) + else + original + end end final = normalize_generated_rakefile(final) if relative_path == "Rakefile" final = ensure_trailing_newline(final) unless delete_file_recipe?(recipe) @@ -5164,6 +5196,7 @@ def execute_recipe(project_root:, recipe:, facts:, files:, decision_policy:, env end step_report = content_recipe_step_report(recipe: recipe, request: request, original: original, final: final, changed: changed, deletion: deletion) metadata[:decision_evaluation] = decision_evaluation + metadata[:readme_timings] = readme_timings unless readme_timings.empty? report = content_recipe_execution_report( request: request, final_content: final, @@ -5514,16 +5547,21 @@ def apply_template_source(project_root, recipe, original, facts: nil, env: ENV, resolved = prepare_readme_template(resolved, recipe[:readme_style]) if recipe.fetch(:target_path) == "README.md" resolved = prepare_github_workflow_template(resolved, recipe, facts) if recipe.fetch(:target_path) == "README.md" && (strategy.empty? || strategy == "merge") - processed = postprocess_readme_content( + merged_readme = with_readme_timing("readme.merge_template") do merge_readme_template( template_content: resolved, destination_content: original, preserve_config: recipe.dig(:template_preference, :readme_preserve_config) || {} - ), + ) + end + processed = postprocess_readme_content( + merged_readme, facts, project_root: project_root ) - return append_used_markdown_link_definitions(processed, resolved) + return with_readme_timing("readme.append_used_link_definitions") do + append_used_markdown_link_definitions(processed, resolved) + end end if strategy.empty? || strategy == "merge" merged = merge_config_template_source(recipe, resolved, original, facts: facts, env: env) @@ -5732,21 +5770,25 @@ def coverage_thresholds_from_yaml_workflow(content) def postprocess_readme_content(content, facts, project_root: nil) return content unless facts - processed = ReadmePostProcessor.process( - content: content, - min_ruby: minimum_ruby_token(facts.dig(:rubygems, :min_ruby)), - engines: facts.dig(:rubygems, :engines) - ) - processed = normalize_readme_project_heading(processed, facts) - processed = normalize_readme_synopsis_heading(processed, facts) - processed = apply_readme_conditional_blocks(processed, facts) - processed = apply_readme_badge_policy(processed, facts) - processed = prune_unused_readme_logo_link_definitions(processed) - processed = apply_readme_kloc_badge(processed, facts, project_root) - processed = apply_monorepo_subgem_thin_readme_projection(processed, facts) - processed = apply_monorepo_subgem_readme_recipe(processed, facts) - processed = replace_existing_markdown_managed_block(processed, "kettle-jem:metadata", readme_metadata_block(facts)) - normalize_readme_blank_line_runs(processed) + processed = with_readme_timing("postprocess.readme_post_processor") do + ReadmePostProcessor.process( + content: content, + min_ruby: minimum_ruby_token(facts.dig(:rubygems, :min_ruby)), + engines: facts.dig(:rubygems, :engines) + ) + end + processed = with_readme_timing("postprocess.project_heading") { normalize_readme_project_heading(processed, facts) } + processed = with_readme_timing("postprocess.synopsis_heading") { normalize_readme_synopsis_heading(processed, facts) } + processed = with_readme_timing("postprocess.conditional_blocks") { apply_readme_conditional_blocks(processed, facts) } + processed = with_readme_timing("postprocess.badge_policy") { apply_readme_badge_policy(processed, facts) } + processed = with_readme_timing("postprocess.logo_link_prune") { prune_unused_readme_logo_link_definitions(processed) } + processed = with_readme_timing("postprocess.kloc_badge") { apply_readme_kloc_badge(processed, facts, project_root) } + processed = with_readme_timing("postprocess.monorepo_thin_projection") { apply_monorepo_subgem_thin_readme_projection(processed, facts) } + processed = with_readme_timing("postprocess.monorepo_subgem_recipe") { apply_monorepo_subgem_readme_recipe(processed, facts) } + processed = with_readme_timing("postprocess.metadata_block") do + replace_existing_markdown_managed_block(processed, "kettle-jem:metadata", readme_metadata_block(facts)) + end + with_readme_timing("postprocess.blank_lines") { normalize_readme_blank_line_runs(processed) } end def normalize_readme_blank_line_runs(content) @@ -5822,23 +5864,31 @@ def apply_readme_conditional_blocks(content, facts) end def apply_readme_badge_policy(content, facts) - processed = remove_readme_badge_and_refs(content, README_CODETRIAGE_BADGE, README_CODETRIAGE_LINK_LABELS) + processed = with_readme_timing("badge_policy.codetriage") do + remove_readme_badge_and_refs(content, README_CODETRIAGE_BADGE, README_CODETRIAGE_LINK_LABELS) + end if facts.dig(:readme_style, :fossa_project).to_s.empty? - processed = remove_readme_badge_and_refs(processed, README_FOSSA_BADGE, README_FOSSA_LINK_LABELS) + processed = with_readme_timing("badge_policy.fossa") do + remove_readme_badge_and_refs(processed, README_FOSSA_BADGE, README_FOSSA_LINK_LABELS) + end end if Array(facts.dig(:readme_style, :disabled_integrations)).map(&:to_s).include?(SKYWALKING_EYES_INTEGRATION) - processed = remove_readme_badge_and_refs( - processed, - README_LICENSE_EYE_WORKFLOW_BADGE, - README_LICENSE_EYE_WORKFLOW_LINK_LABELS - ) + processed = with_readme_timing("badge_policy.license_eye") do + remove_readme_badge_and_refs( + processed, + README_LICENSE_EYE_WORKFLOW_BADGE, + README_LICENSE_EYE_WORKFLOW_LINK_LABELS + ) + end end if facts.dig(:funding, :open_collective_disabled) - processed = remove_readme_badge_and_refs( - processed, - README_OPEN_COLLECTIVE_FUNDING_BADGES, - README_OPEN_COLLECTIVE_LINK_LABELS - ) + processed = with_readme_timing("badge_policy.open_collective") do + remove_readme_badge_and_refs( + processed, + README_OPEN_COLLECTIVE_FUNDING_BADGES, + README_OPEN_COLLECTIVE_LINK_LABELS + ) + end end processed end @@ -6041,20 +6091,30 @@ def markdown_heading_owners(content, source_label: "README.md") def prepare_readme_template(content, readme_style) style = readme_style || {} - prepared = prune_readme_integration_badges(content, style) + prepared = with_readme_timing("prepare.integration_badges") { prune_readme_integration_badges(content, style) } if style[:workflow_paths] - prepared = ReadmePostProcessor.process( - content: prepared, - min_ruby: "0", - workflow_paths: style[:workflow_paths] - ) + prepared = with_readme_timing("prepare.workflow_post_processor") do + ReadmePostProcessor.process( + content: prepared, + min_ruby: "0", + workflow_paths: style[:workflow_paths] + ) + end + end + if style[:workflow_paths] + prepared = with_readme_timing("prepare.workflow_link_prune") do + prune_missing_workflow_link_definitions(prepared, style[:workflow_paths]) + end + prepared = with_readme_timing("prepare.workflow_inline_prune") do + ReadmePostProcessor.prune_orphaned_workflow_inline_references(prepared) + end end - prepared = prune_missing_workflow_link_definitions(prepared, style[:workflow_paths]) if style[:workflow_paths] - prepared = ReadmePostProcessor.prune_orphaned_workflow_inline_references(prepared) if style[:workflow_paths] omitted_sections = Array(style[:omitted_sections]).map(&:to_s) omitted_sections << "security" if style.key?(:security_enabled) && !style[:security_enabled] omitted_sections << "floss_funding" if style.key?(:floss_funding_enabled) && !style[:floss_funding_enabled] - remove_readme_sections(prepared, omitted_sections.map { |section| section.tr("_", " ") }) + with_readme_timing("prepare.remove_sections") do + remove_readme_sections(prepared, omitted_sections.map { |section| section.tr("_", " ") }) + end end def prune_readme_integration_badges(content, readme_style) diff --git a/gems/kettle-jem/spec/integration/recipe_planning_spec.rb b/gems/kettle-jem/spec/integration/recipe_planning_spec.rb index 6edb1fdaf..ffa6f42f9 100644 --- a/gems/kettle-jem/spec/integration/recipe_planning_spec.rb +++ b/gems/kettle-jem/spec/integration/recipe_planning_spec.rb @@ -93,6 +93,41 @@ end + it "records README sub-step timing metadata for README recipe reports" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-readme-timing", tmp_root) do |root| + write_tree(root, {"README.md" => fixture.dig(:inputs, :files, :"README.md")}) + recipe = { + name: "readme_metadata", + target_path: "README.md", + provider_family: "markdown", + primitive: "supplied_readme_metadata_synchronization", + facts: [] + } + + report = described_class.send( + :execute_recipe, + project_root: root, + recipe: recipe, + facts: fixture.fetch(:expected).fetch(:facts), + files: {"README.md" => fixture.dig(:inputs, :files, :"README.md")}, + template_contents: {}, + decision_policy: described_class::DecisionPolicy.from_env({"force" => "true"}), + env: {} + ) + + timings = report.dig(:metadata, :readme_timings) + expect(timings).to include( + include(name: "postprocess.readme_post_processor", status: "ok", duration_ms: be >= 0), + include(name: "postprocess.badge_policy", status: "ok", duration_ms: be >= 0), + include(name: "postprocess.blank_lines", status: "ok", duration_ms: be >= 0) + ) + expect(report.dig(:report_envelope, :report, :metadata, :readme_timings)).to eq(timings) + end + end + + it "parses recipe planning strategies from options and env" do expect(described_class.send(:recipe_planning_strategy_for, {}, {})).to eq("sequential") expect(described_class.send(:recipe_planning_strategy_for, {"KETTLE_JEM_RECIPE_PLANNING_STRATEGY" => "classified"}, {})).to eq("classified") From c24f0cf9b6a8ee5489f583689b6de90bc0b45f29 Mon Sep 17 00:00:00 2001 From: "Peter H. Boling" Date: Mon, 20 Jul 2026 19:53:31 -0600 Subject: [PATCH 103/188] Validate TSLP parser availability Smoke-test tree_sitter_language_pack parser execution before registering the TreeHaver TSLP backend so broken native artifacts fail closed with the underlying parser error. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- CHANGELOG.md | 4 +++ .../lib/tree_haver/backends/tslp.rb | 31 +++++++++++++++++-- gems/tree_haver/spec/backends/tslp_spec.rb | 24 +++++++++++++- 3 files changed, 55 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index d78cb6262..7e4b3d47b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -84,6 +84,10 @@ Please file a bug if you notice a violation of semantic versioning. ### Fixed +- TreeHaver now smoke-tests `tree_sitter_language_pack` parser execution before + registering the TSLP backend, so broken native gem artifacts fail closed with a + useful reason instead of surfacing parser self-conversion `TypeError`s during + JSON merges. - `json-merge` file analysis now registers its TreeHaver JSON backend before direct parsing, preventing templating from failing with `No parser registered for json` when JSON smart merges instantiate file analysis directly. diff --git a/gems/tree_haver/lib/tree_haver/backends/tslp.rb b/gems/tree_haver/lib/tree_haver/backends/tslp.rb index c8e5aeda0..13af6bcff 100644 --- a/gems/tree_haver/lib/tree_haver/backends/tslp.rb +++ b/gems/tree_haver/lib/tree_haver/backends/tslp.rb @@ -11,6 +11,12 @@ module Tslp @load_attempted = false @loaded = false @unavailable_reason = nil + PARSER_SMOKE_SOURCES = { + 'json' => '{}', + 'toml' => "title = \"tree_haver\"\n", + 'ruby' => "class TreeHaverSmoke\nend\n", + 'markdown' => "# TreeHaver\n" + }.freeze class << self attr_reader :unavailable_reason @@ -20,9 +26,11 @@ def available? @load_attempted = true begin - require 'tree_sitter_language_pack' + require 'tree_sitter_language_pack' unless defined?(::TreeSitterLanguagePack) @loaded = parser_api_available? - @unavailable_reason = 'tree_sitter_language_pack parser API is not exposed' unless @loaded + if !@loaded && @unavailable_reason.to_s.empty? + @unavailable_reason = 'tree_sitter_language_pack parser API is not exposed' + end rescue LoadError => e @loaded = false @unavailable_reason = e.message @@ -57,12 +65,29 @@ def capabilities def parser_api_available? return false unless ::TreeSitterLanguagePack.respond_to?(:get_parser) return false unless defined?(::TreeSitterLanguagePack::Parser) + return false unless ::TreeSitterLanguagePack::Parser.instance_methods.include?(:parse) - ::TreeSitterLanguagePack::Parser.instance_methods.include?(:parse) + parser_api_smoke_test rescue StandardError => e @unavailable_reason = e.message false end + + def parser_api_smoke_test + language_name, source = PARSER_SMOKE_SOURCES.find do |name, _smoke_source| + !::TreeSitterLanguagePack.respond_to?(:has_language) || + ::TreeSitterLanguagePack.has_language(name) + end + return false unless language_name + + parser = ::TreeSitterLanguagePack.get_parser(language_name) + return false unless parser + + tree = parser.parse(source) + return false unless tree&.respond_to?(:root_node) + + !!tree.root_node + end end class Language < TreeHaver::Base::Language diff --git a/gems/tree_haver/spec/backends/tslp_spec.rb b/gems/tree_haver/spec/backends/tslp_spec.rb index 3f368bdfc..832a8960e 100644 --- a/gems/tree_haver/spec/backends/tslp_spec.rb +++ b/gems/tree_haver/spec/backends/tslp_spec.rb @@ -14,12 +14,34 @@ def parse(_source) :tree end end + parser = instance_double( + 'TreeSitterLanguagePack::Parser', + parse: instance_double('TreeSitterLanguagePack::Tree', root_node: instance_double('TreeSitterLanguagePack::Node')) + ) TreeSitterLanguagePack.const_set(:Parser, parser_class) - allow(TreeSitterLanguagePack).to receive(:get_parser) + allow(TreeSitterLanguagePack).to receive(:has_language).with('json').and_return(true) + allow(TreeSitterLanguagePack).to receive(:get_parser).with('json').and_return(parser) expect(described_class.available?).to be(true) end + it 'fails closed when the exposed parser method cannot parse a smoke fixture' do + stub_const('TreeSitterLanguagePack', Module.new) + parser_class = Class.new do + def parse(_source) + raise TypeError, 'no implicit conversion of TreeSitterLanguagePack::Parser into TreeSitterLanguagePack::Parser' + end + end + parser = parser_class.new + TreeSitterLanguagePack.const_set(:Parser, parser_class) + allow(TreeSitterLanguagePack).to receive(:has_language).with('json').and_return(true) + allow(TreeSitterLanguagePack).to receive(:get_parser).with('json').and_return(parser) + + expect(described_class.available?).to be(false) + expect(described_class.unavailable_reason) + .to include('no implicit conversion of TreeSitterLanguagePack::Parser into TreeSitterLanguagePack::Parser') + end + it 'fails closed when the installed language pack does not expose parser methods' do allow(described_class).to receive(:parser_api_available?).and_return(false) From 9e370042735a299b6ea2ad791e7b7a45800aa135 Mon Sep 17 00:00:00 2001 From: "Peter H. Boling" Date: Mon, 20 Jul 2026 20:02:35 -0600 Subject: [PATCH 104/188] Validate TSLP language registration Require tree_sitter_language_pack to parse a minimal valid source for the requested language before TreeHaver registers that TSLP backend, keeping broken generated native artifacts out of production parser selection. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- CHANGELOG.md | 8 +-- .../lib/tree_haver/backends/tslp.rb | 60 +++++++++++++++++-- .../lib/tree_haver/grammar_finder.rb | 3 +- gems/tree_haver/spec/backends/tslp_spec.rb | 37 +++++++++++- gems/tree_haver/spec/grammar_finder_spec.rb | 16 +++++ 5 files changed, 114 insertions(+), 10 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7e4b3d47b..473e0735e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -84,10 +84,10 @@ Please file a bug if you notice a violation of semantic versioning. ### Fixed -- TreeHaver now smoke-tests `tree_sitter_language_pack` parser execution before - registering the TSLP backend, so broken native gem artifacts fail closed with a - useful reason instead of surfacing parser self-conversion `TypeError`s during - JSON merges. +- TreeHaver now smoke-tests `tree_sitter_language_pack` parser execution for the + requested language before registering the TSLP backend, so broken native gem + artifacts fail closed with a useful reason instead of surfacing parser + self-conversion `TypeError`s during JSON merges. - `json-merge` file analysis now registers its TreeHaver JSON backend before direct parsing, preventing templating from failing with `No parser registered for json` when JSON smart merges instantiate file analysis directly. diff --git a/gems/tree_haver/lib/tree_haver/backends/tslp.rb b/gems/tree_haver/lib/tree_haver/backends/tslp.rb index 13af6bcff..fd1280712 100644 --- a/gems/tree_haver/lib/tree_haver/backends/tslp.rb +++ b/gems/tree_haver/lib/tree_haver/backends/tslp.rb @@ -11,12 +11,21 @@ module Tslp @load_attempted = false @loaded = false @unavailable_reason = nil + @language_availability = {} + @language_unavailable_reasons = {} PARSER_SMOKE_SOURCES = { 'json' => '{}', - 'toml' => "title = \"tree_haver\"\n", + 'bash' => "echo tree_haver\n", + 'go' => "package main\nfunc main() {}\n", + 'html' => "\nTreeHaver\n", + 'markdown' => "# TreeHaver\n", 'ruby' => "class TreeHaverSmoke\nend\n", - 'markdown' => "# TreeHaver\n" + 'rust' => "fn main() {}\n", + 'typescript' => "export const treeHaver = true;\n", + 'toml' => "title = \"tree_haver\"\n", + 'yaml' => "tree_haver: true\n" }.freeze + DEFAULT_PARSER_SMOKE_SOURCE = ''.freeze class << self attr_reader :unavailable_reason @@ -45,6 +54,8 @@ def reset! @load_attempted = false @loaded = false @unavailable_reason = nil + @language_availability = {} + @language_unavailable_reasons = {} end def capabilities @@ -60,6 +71,21 @@ def capabilities } end + def parser_available_for?(language_name) + return false unless available? + + name = language_name.to_s + return @language_availability.fetch(name) if @language_availability.key?(name) + + @language_availability[name] = smoke_parse_language(name) + @language_unavailable_reasons[name] = @unavailable_reason unless @language_availability.fetch(name) + @language_availability.fetch(name) + rescue StandardError => e + @unavailable_reason = e.message + @language_unavailable_reasons[language_name.to_s] = e.message + false + end + private def parser_api_available? @@ -80,13 +106,39 @@ def parser_api_smoke_test end return false unless language_name - parser = ::TreeSitterLanguagePack.get_parser(language_name) + smoke_parse_language(language_name, source: source) + end + + def smoke_parse_language(language_name, source: smoke_source_for(language_name)) + name = language_name.to_s + if ::TreeSitterLanguagePack.respond_to?(:has_language) && + !::TreeSitterLanguagePack.has_language(name) + @unavailable_reason = "tree_sitter_language_pack does not publish #{name}" + return false + end + + parser = ::TreeSitterLanguagePack.get_parser(name) return false unless parser tree = parser.parse(source) return false unless tree&.respond_to?(:root_node) - !!tree.root_node + root = tree.root_node + root && !node_has_error?(root) + end + + def smoke_source_for(language_name) + PARSER_SMOKE_SOURCES.fetch(language_name.to_s, DEFAULT_PARSER_SMOKE_SOURCE) + end + + def node_has_error?(node) + if node.respond_to?(:has_error) + node.has_error + elsif node.respond_to?(:has_error?) + node.has_error? + else + false + end end end diff --git a/gems/tree_haver/lib/tree_haver/grammar_finder.rb b/gems/tree_haver/lib/tree_haver/grammar_finder.rb index 510be84f7..c8671212e 100644 --- a/gems/tree_haver/lib/tree_haver/grammar_finder.rb +++ b/gems/tree_haver/lib/tree_haver/grammar_finder.rb @@ -402,7 +402,8 @@ def tree_sitter_language_pack_parser_available? require 'tree_sitter_language_pack' unless defined?(::TreeSitterLanguagePack) TreeHaver::Backends::Tslp.available? && ::TreeSitterLanguagePack.respond_to?(:has_language) && - ::TreeSitterLanguagePack.has_language(@language_name.to_s) + ::TreeSitterLanguagePack.has_language(@language_name.to_s) && + TreeHaver::Backends::Tslp.parser_available_for?(@language_name) rescue LoadError false rescue StandardError => e diff --git a/gems/tree_haver/spec/backends/tslp_spec.rb b/gems/tree_haver/spec/backends/tslp_spec.rb index 832a8960e..086c5df3a 100644 --- a/gems/tree_haver/spec/backends/tslp_spec.rb +++ b/gems/tree_haver/spec/backends/tslp_spec.rb @@ -16,7 +16,10 @@ def parse(_source) end parser = instance_double( 'TreeSitterLanguagePack::Parser', - parse: instance_double('TreeSitterLanguagePack::Tree', root_node: instance_double('TreeSitterLanguagePack::Node')) + parse: instance_double( + 'TreeSitterLanguagePack::Tree', + root_node: instance_double('TreeSitterLanguagePack::Node', has_error: false) + ) ) TreeSitterLanguagePack.const_set(:Parser, parser_class) allow(TreeSitterLanguagePack).to receive(:has_language).with('json').and_return(true) @@ -42,6 +45,38 @@ def parse(_source) .to include('no implicit conversion of TreeSitterLanguagePack::Parser into TreeSitterLanguagePack::Parser') end + it 'validates the requested language by parsing that language smoke source' do + raw_tree = instance_double( + 'TreeSitterLanguagePack::Tree', + root_node: instance_double('TreeSitterLanguagePack::Node', has_error: false) + ) + parser = instance_double('TreeSitterLanguagePack::Parser', parse: raw_tree) + stub_const('TreeSitterLanguagePack', Module.new) + TreeSitterLanguagePack.const_set(:Parser, Class.new { def parse(_source) = :tree }) + allow(TreeSitterLanguagePack).to receive(:has_language).with('toml').and_return(true) + allow(TreeSitterLanguagePack).to receive(:get_parser).with('toml').and_return(parser) + allow(described_class).to receive(:available?).and_return(true) + + expect(described_class.parser_available_for?(:toml)).to be(true) + expect(parser).to have_received(:parse).with("title = \"tree_haver\"\n") + end + + it 'rejects the requested language when its smoke source cannot parse cleanly' do + raw_tree = instance_double( + 'TreeSitterLanguagePack::Tree', + root_node: instance_double('TreeSitterLanguagePack::Node', has_error: true) + ) + parser = instance_double('TreeSitterLanguagePack::Parser', parse: raw_tree) + stub_const('TreeSitterLanguagePack', Module.new) + TreeSitterLanguagePack.const_set(:Parser, Class.new { def parse(_source) = :tree }) + allow(TreeSitterLanguagePack).to receive(:has_language).with('json').and_return(true) + allow(TreeSitterLanguagePack).to receive(:get_parser).with('json').and_return(parser) + allow(described_class).to receive(:available?).and_return(true) + + expect(described_class.parser_available_for?(:json)).to be(false) + expect(parser).to have_received(:parse).with('{}') + end + it 'fails closed when the installed language pack does not expose parser methods' do allow(described_class).to receive(:parser_api_available?).and_return(false) diff --git a/gems/tree_haver/spec/grammar_finder_spec.rb b/gems/tree_haver/spec/grammar_finder_spec.rb index e661e0f60..2c8a2940c 100644 --- a/gems/tree_haver/spec/grammar_finder_spec.rb +++ b/gems/tree_haver/spec/grammar_finder_spec.rb @@ -8,6 +8,7 @@ stub_const('TreeSitterLanguagePack', Module.new) allow(TreeSitterLanguagePack).to receive(:has_language).with('cold_cache_toml').and_return(true) allow(TreeHaver::Backends::Tslp).to receive(:available?).and_return(true) + allow(TreeHaver::Backends::Tslp).to receive(:parser_available_for?).with(:cold_cache_toml).and_return(true) finder = described_class.new(:cold_cache_toml) @@ -20,6 +21,7 @@ stub_const('TreeSitterLanguagePack', Module.new) allow(TreeSitterLanguagePack).to receive(:has_language).with('cold_cache_json').and_return(true) allow(TreeHaver::Backends::Tslp).to receive(:available?).and_return(true) + allow(TreeHaver::Backends::Tslp).to receive(:parser_available_for?).with(:cold_cache_json).and_return(true) finder = described_class.new(:cold_cache_json) @@ -36,6 +38,7 @@ stub_const('TreeSitterLanguagePack', Module.new) allow(TreeSitterLanguagePack).to receive(:has_language).with('cold_cache_markdown').and_return(true) allow(TreeHaver::Backends::Tslp).to receive(:available?).and_return(true) + allow(TreeHaver::Backends::Tslp).to receive(:parser_available_for?).with(:cold_cache_markdown).and_return(true) finder = described_class.new(:cold_cache_markdown) allow(finder).to receive(:find_library_path).and_raise( @@ -49,5 +52,18 @@ expect(parser).to be_a(TreeHaver::Backends::Tslp::Parser) expect(finder).not_to have_received(:find_library_path) end + + it 'does not register TSLP when the language smoke parse fails' do + stub_const('TreeSitterLanguagePack', Module.new) + allow(TreeSitterLanguagePack).to receive(:has_language).with('cold_cache_bad_json').and_return(true) + allow(TreeHaver::Backends::Tslp).to receive(:available?).and_return(true) + allow(TreeHaver::Backends::Tslp).to receive(:parser_available_for?).with(:cold_cache_bad_json).and_return(false) + + finder = described_class.new(:cold_cache_bad_json) + allow(finder).to receive(:find_library_path).and_return(nil) + + expect(finder.register!).to be(false) + expect(TreeHaver.registered_languages(:cold_cache_bad_json)).not_to include(:tslp) + end end end From e21f24fec93dcc10c8d7fc7a7fe5e1bf04ff8b84 Mon Sep 17 00:00:00 2001 From: "Peter H. Boling" Date: Mon, 20 Jul 2026 22:30:37 -0600 Subject: [PATCH 105/188] Add kettle-jem benchmark variant selector Allow benchmark runs to select variant families with --only or KETTLE_JEM_BENCHMARK_ONLY, including combined-only runs that keep baseline-main for delta reporting.\n\nCo-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- CHANGELOG.md | 3 + gems/kettle-jem/benchmarks/README.md | 19 ++++++ .../benchmarks/kettle_jem_ractor_planning.rb | 65 ++++++++++++++++++- 3 files changed, 85 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 473e0735e..3e201b255 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -58,6 +58,9 @@ Please file a bug if you notice a violation of semantic versioning. format-neutral ownership mechanics. The shared helpers now also cover interstitial region construction, public owner projection, source spans, source content slices, and attached leading comment regions. +- `kettle-jem` benchmark runs now support `--only` and + `KETTLE_JEM_BENCHMARK_ONLY` selectors so combined worker variants can be + measured without also running planning-only and file-only split variants. - Root architecture specs now guard merge emission files against new ad hoc comment or blank-line ownership scans, keeping the remaining cleanup debt explicit while shared ast-merge attachment and layout helpers are adopted. diff --git a/gems/kettle-jem/benchmarks/README.md b/gems/kettle-jem/benchmarks/README.md index 5a1419b5c..a37170ac9 100644 --- a/gems/kettle-jem/benchmarks/README.md +++ b/gems/kettle-jem/benchmarks/README.md @@ -52,6 +52,22 @@ bundle exec ruby benchmarks/kettle_jem_ractor_planning.rb `raw-template` pre-bootstraps `.structuredmerge/kettle-jem.yml` outside the measured interval, then benchmarks scoped template `--only "**/*"` so it routes through `TemplateTask` instead of the default install-orchestrated flow. +Combined-worker-only benchmark: + +```console +cd /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem + +mise exec -C . -- env \ +K_JEM_TEMPLATING=true \ +STRUCTUREDMERGE_DEV=/home/pboling/src/my/structuredmerge/ruby/gems \ +VENDORED_GEMS= \ +VENDOR_GEM_DIR= \ +KETTLE_JEM_BENCHMARK_RUNS=3 \ +bundle exec ruby benchmarks/kettle_jem_ractor_planning.rb --only combined +``` + +`--only combined` retains `baseline-main` for delta calculations and skips the planning-only and file-only split variants. Multiple selectors can be comma-separated or repeated. + ## ENV Variables Useful environment variables: @@ -62,6 +78,7 @@ Useful environment variables: | `KETTLE_JEM_BENCHMARK_WORKERS` | `1,min(4,n/2),min(8,n/2),n` | Comma-separated worker counts for Ractor and thread variants, where `n` is `Etc.nprocessors`. | | `KETTLE_JEM_BENCHMARK_COMMAND` | `template` | Public `kettle-jem` command to benchmark: `plan`, `apply`, `template`, or `install`. | | `KETTLE_JEM_BENCHMARK_MODE` | `install-template` | Template benchmark mode: `install-template` keeps the one-shot install orchestration path; `raw-template` scopes `template` to all targets with `--only "**/*"` so it routes through `TemplateTask`. | +| `KETTLE_JEM_BENCHMARK_ONLY` | unset | Optional comma-separated variant selectors: `baseline`, `planning`, `file`, `combined`, `ractor`, or `thread`. CLI `--only` uses the same tokens and combines with this env var. | | `KETTLE_JEM_BENCHMARK_MIN_RUBY` | `1.8.7` | Minimum Ruby value passed through `KJ_MIN_RUBY` to broaden generated workflow/gemfile coverage. | Benchmark runs set `KETTLE_JEM_SKIP_DRIFT_CHECK=true`, @@ -88,6 +105,8 @@ The default `template` benchmark compares: - combined planning and file Ractor workers - combined planning and file thread workers +Use `--only combined` or `KETTLE_JEM_BENCHMARK_ONLY=combined` when only the combined planning+file worker runs are useful. Baseline remains selected automatically so the summary can still show percentage deltas. + Benchmark summaries include planning execution counters from each report: worker-safe recipe count, Ractor/thread spawn count, and recipe count actually executed by planning Ractors or threads. They also include file-work counters: diff --git a/gems/kettle-jem/benchmarks/kettle_jem_ractor_planning.rb b/gems/kettle-jem/benchmarks/kettle_jem_ractor_planning.rb index d16b8c835..cbd5a9150 100755 --- a/gems/kettle-jem/benchmarks/kettle_jem_ractor_planning.rb +++ b/gems/kettle-jem/benchmarks/kettle_jem_ractor_planning.rb @@ -18,7 +18,28 @@ RESULTS_README = File.join(BENCHMARK_ROOT, "results", "README.md") KETTLE_JEM_EXE = File.join(PROJECT_ROOT, "exe", "kettle-jem") KETTLE_JEM_GEMFILE = File.join(PROJECT_ROOT, "Gemfile") -SUMMARIZE_ONLY = ARGV.delete("--summarize-only") +summarize_only = false +only_args = [] +remaining_args = [] +until ARGV.empty? + arg = ARGV.shift + case arg + when "--summarize-only" + summarize_only = true + when "--only" + value = ARGV.shift + raise "--only requires a value" unless value + + only_args << value + when /\A--only=(.+)\z/ + only_args << Regexp.last_match(1) + else + remaining_args << arg + end +end +raise "Unsupported arguments: #{remaining_args.join(" ")}" unless remaining_args.empty? + +SUMMARIZE_ONLY = summarize_only STDOUT.sync = true RUNS = Integer(ENV.fetch("KETTLE_JEM_BENCHMARK_RUNS", "3")) @@ -31,6 +52,11 @@ .uniq COMMAND = ENV.fetch("KETTLE_JEM_BENCHMARK_COMMAND", "template") BENCHMARK_MODE = ENV.fetch("KETTLE_JEM_BENCHMARK_MODE", "install-template") +BENCHMARK_ONLY = (ENV.fetch("KETTLE_JEM_BENCHMARK_ONLY", "").split(",") + only_args.flat_map { |arg| arg.split(",") }) + .map { |token| token.strip.downcase } + .reject(&:empty?) + .uniq +VALID_BENCHMARK_ONLY = %w[baseline planning file combined ractor thread].freeze raise "KETTLE_JEM_BENCHMARK_RUNS must be positive" unless RUNS.positive? raise "KETTLE_JEM_BENCHMARK_WORKERS must include at least one value" if WORKER_COUNTS.empty? @@ -44,6 +70,8 @@ unless %w[install-template raw-template].include?(BENCHMARK_MODE) raise "Unsupported benchmark mode #{BENCHMARK_MODE.inspect}" end +unknown_only = BENCHMARK_ONLY - VALID_BENCHMARK_ONLY +raise "Unsupported benchmark selector(s): #{unknown_only.join(", ")}" unless unknown_only.empty? if COMMAND != "template" && BENCHMARK_MODE != "install-template" raise "KETTLE_JEM_BENCHMARK_MODE=#{BENCHMARK_MODE} requires KETTLE_JEM_BENCHMARK_COMMAND=template" end @@ -75,6 +103,8 @@ def benchmark_variants variants = [ { name: "baseline-main", + family: "baseline", + worker_type: "none", env: { "KETTLE_JEM_RECIPE_PLANNING_STRATEGY" => "classified", "KETTLE_JEM_RACTOR_WORKERS" => "0", @@ -88,6 +118,8 @@ def benchmark_variants WORKER_COUNTS.each do |workers| variants << { name: "planning-ractor-#{workers}", + family: "planning", + worker_type: "ractor", env: { "KETTLE_JEM_RECIPE_PLANNING_STRATEGY" => "classified", "KETTLE_JEM_RACTOR_WORKERS" => workers.to_s, @@ -98,6 +130,8 @@ def benchmark_variants } variants << { name: "planning-thread-#{workers}", + family: "planning", + worker_type: "thread", env: { "KETTLE_JEM_RECIPE_PLANNING_STRATEGY" => "classified", "KETTLE_JEM_RACTOR_WORKERS" => "0", @@ -110,6 +144,8 @@ def benchmark_variants variants << { name: "file-ractor-#{workers}", + family: "file", + worker_type: "ractor", env: { "KETTLE_JEM_RECIPE_PLANNING_STRATEGY" => "classified", "KETTLE_JEM_RACTOR_WORKERS" => "0", @@ -120,6 +156,8 @@ def benchmark_variants } variants << { name: "file-thread-#{workers}", + family: "file", + worker_type: "thread", env: { "KETTLE_JEM_RECIPE_PLANNING_STRATEGY" => "classified", "KETTLE_JEM_RACTOR_WORKERS" => "0", @@ -130,6 +168,8 @@ def benchmark_variants } variants << { name: "combined-ractor-#{workers}", + family: "combined", + worker_type: "ractor", env: { "KETTLE_JEM_RECIPE_PLANNING_STRATEGY" => "classified", "KETTLE_JEM_RACTOR_WORKERS" => workers.to_s, @@ -140,6 +180,8 @@ def benchmark_variants } variants << { name: "combined-thread-#{workers}", + family: "combined", + worker_type: "thread", env: { "KETTLE_JEM_RECIPE_PLANNING_STRATEGY" => "classified", "KETTLE_JEM_RACTOR_WORKERS" => "0", @@ -152,6 +194,22 @@ def benchmark_variants variants end +def selected_variants + variants = benchmark_variants + return variants if BENCHMARK_ONLY.empty? + + selected = variants.select do |variant| + variant.fetch(:name) == "baseline-main" || + BENCHMARK_ONLY.include?(variant.fetch(:family)) || + BENCHMARK_ONLY.include?(variant.fetch(:worker_type)) + end + selected_names = selected.map { |variant| variant.fetch(:name) } + if selected_names == ["baseline-main"] && !BENCHMARK_ONLY.include?("baseline") + raise "No benchmark variants matched --only #{BENCHMARK_ONLY.join(", ")}" + end + selected +end + def reset_worktree FileUtils.rm_rf(WORKTREE) FileUtils.mkdir_p(WORK_PARENT) @@ -368,6 +426,7 @@ def summary_payload(results, generated_at: Time.now) fixture: FIXTURE_ROOT, command: benchmark_command_label, mode: BENCHMARK_MODE, + only: BENCHMARK_ONLY, runs: RUNS, worker_counts: WORKER_COUNTS, min_ruby: BASE_ENV.fetch("KJ_MIN_RUBY"), @@ -408,6 +467,7 @@ def build_results_readme(payload) "| Fixture | `#{payload.fetch("fixture")}` |", "| Command | `#{payload.fetch("command")}` |", "| Mode | `#{payload.fetch("mode", "install-template")}` |", + "| Only | `#{Array(payload.fetch("only", [])).empty? ? "all" : payload.fetch("only").join(", ")}` |", "| Runs per variant | `#{payload.fetch("runs")}` |", "| Worker counts | `#{payload.fetch("worker_counts").join(", ")}` |", "| Minimum Ruby | `#{payload.fetch("min_ruby")}` |", @@ -489,11 +549,12 @@ def write_results_readme(payload) FileUtils.mkdir_p(REPORT_ROOT) reset_worktree -variants = benchmark_variants +variants = selected_variants puts "kettle-jem Ractor planning benchmark" puts "fixture: #{FIXTURE_ROOT}" puts "command: #{benchmark_command_label}" puts "mode: #{BENCHMARK_MODE}" +puts "only: #{BENCHMARK_ONLY.empty? ? "all" : BENCHMARK_ONLY.join(", ")}" puts "runs: #{RUNS}" puts "worker counts: #{WORKER_COUNTS.join(", ")}" puts "variants: #{variants.length}" From 904dfd1752fcc39cd166a0c96bf1ed726017a76b Mon Sep 17 00:00:00 2001 From: "Peter H. Boling" Date: Mon, 20 Jul 2026 23:13:25 -0600 Subject: [PATCH 106/188] Speed up kettle-jem templating defaults Default no-option templating to half-core thread workers, batch Ractor file work, and reduce repeated README parser passes. Update benchmark reporting to compare baseline README timings with the fastest non-baseline variant. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- CHANGELOG.md | 8 ++ .../benchmarks/kettle_jem_ractor_planning.rb | 103 ++++++++++++------ gems/kettle-jem/benchmarks/results/README.md | 83 +++++++++----- gems/kettle-jem/lib/kettle/jem.rb | 61 +++++++---- .../lib/kettle/jem/tasks/install_task.rb | 2 +- .../lib/kettle/jem/tasks/template_task.rb | 60 ++++++++-- .../spec/integration/recipe_planning_spec.rb | 22 +++- gems/kettle-jem/spec/rake_tasks_spec.rb | 27 +++++ 8 files changed, 266 insertions(+), 100 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3e201b255..1e6771fcf 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -28,6 +28,8 @@ Please file a bug if you notice a violation of semantic versioning. - TreeHaver RSpec dependency tags now support parser capability checks, and `ruby-merge` exposes TSLP Ruby capability tags for import records, top-level call records, and namespace-form equivalence. +- `kettle-jem` benchmark results now include README timing breakdowns for both + the baseline and fastest non-baseline variant. ### Changed @@ -36,6 +38,12 @@ Please file a bug if you notice a violation of semantic versioning. exceptions for intentional style deviations. - Current CI now detects changed monorepo gems and runs each changed gem's own `kettle-test` suite instead of installing the root aggregate bundle. +- `kettle-jem` templating now defaults no-option runs to classified thread + planning and file work with half of the available CPU cores. +- `kettle-jem` Ractor-backed file work now batches file units by worker count + instead of spawning one Ractor per file. +- `kettle-jem` README processing now reuses structural owner scans and batches + several Markdown deletions to reduce repeated parser passes. - Retemplated generated project metadata, support documentation, CI workflows, binstubs, and development dependency floors across the StructuredMerge Ruby gem family with `kettle-jem` v7.0.0. diff --git a/gems/kettle-jem/benchmarks/kettle_jem_ractor_planning.rb b/gems/kettle-jem/benchmarks/kettle_jem_ractor_planning.rb index cbd5a9150..82f2a145a 100755 --- a/gems/kettle-jem/benchmarks/kettle_jem_ractor_planning.rb +++ b/gems/kettle-jem/benchmarks/kettle_jem_ractor_planning.rb @@ -420,6 +420,62 @@ def timing_entry_value(entry, key, default = nil) entry.fetch(key.to_s) { entry.fetch(key.to_sym, default) } end +def best_non_baseline_variant(variants) + variants + .reject { |name, _result| name.to_s == "baseline-main" } + .min_by do |_name, result| + summary = timing_entry_value(result, :summary, {}) + timing_entry_value(summary, :median, Float::INFINITY).to_f + end +end + +def readme_timing_lines(title, timings) + timing_entries = Array(timings) + return [] if timing_entries.empty? + + total = timing_entries.sum { |entry| timing_entry_value(entry, :duration_ms, 0).to_f } + lines = [ + "", + "## #{title}", + "", + "| Step | Duration | Share | Count |", + "| --- | ---: | ---: | ---: |" + ] + timing_entries.each do |entry| + duration_ms = timing_entry_value(entry, :duration_ms, 0).to_f + count = timing_entry_value(entry, :count, 0) + lines << format( + "| `%s` | %s | %s | %d |", + name: timing_entry_value(entry, :name), + duration: format_seconds(duration_ms / 1000.0), + share: format_share(duration_ms, total), + count: count + ) + end + lines +end + +def print_readme_timing_table(title, timings) + timing_entries = Array(timings) + return if timing_entries.empty? + + total = timing_entries.sum { |entry| timing_entry_value(entry, :duration_ms, 0).to_f } + puts + puts title + puts + puts format("%-44s %10s %8s %5s", "step", "duration", "share", "count") + timing_entries.each do |entry| + duration_ms = timing_entry_value(entry, :duration_ms, 0).to_f + puts format( + "%-44s %10.3fs %8s %5d", + timing_entry_value(entry, :name), + duration_ms / 1000.0, + format_share(duration_ms, total), + timing_entry_value(entry, :count, 0) + ) + end +end + def summary_payload(results, generated_at: Time.now) { generated_at: generated_at.iso8601, @@ -457,6 +513,12 @@ def build_results_readme(payload) snapshot_count = ->(snapshot, key) { snapshot.fetch(key, 0) } baseline_median = variants.fetch("baseline-main").fetch("summary").fetch("median") baseline_readme_timings = Array(variants.fetch("baseline-main").fetch("snapshot").fetch("readme_timings", [])) + best_variant_name, best_variant = best_non_baseline_variant(variants) + best_readme_timings = if best_variant + Array(best_variant.fetch("snapshot").fetch("readme_timings", [])) + else + [] + end lines = [ "# kettle-jem benchmark results", "", @@ -503,25 +565,8 @@ def build_results_readme(payload) changed: snapshot_count.call(snapshot, "changed") ) end - unless baseline_readme_timings.empty? - baseline_readme_total = baseline_readme_timings.sum { |entry| timing_entry_value(entry, :duration_ms, 0).to_f } - lines << "" - lines << "## Baseline README timing breakdown" - lines << "" - lines << "| Step | Duration | Share | Count |" - lines << "| --- | ---: | ---: | ---: |" - baseline_readme_timings.each do |entry| - duration_ms = timing_entry_value(entry, :duration_ms, 0).to_f - count = timing_entry_value(entry, :count, 0) - lines << format( - "| `%s` | %s | %s | %d |", - name: timing_entry_value(entry, :name), - duration: format_seconds(duration_ms / 1000.0), - share: format_share(duration_ms, baseline_readme_total), - count: count - ) - end - end + lines.concat(readme_timing_lines("Baseline README timing breakdown", baseline_readme_timings)) + lines.concat(readme_timing_lines("Fastest non-baseline README timing breakdown (`#{best_variant_name}`)", best_readme_timings)) if best_variant_name lines << "" lines << "These results are generated by `ruby benchmarks/kettle_jem_ractor_planning.rb`." lines << "Regenerate this README from the saved summary without rerunning the benchmark with:" @@ -625,21 +670,11 @@ def write_results_readme(payload) ) end baseline_readme_timings = Array(results.fetch("baseline-main").fetch(:snapshot).fetch(:readme_timings, [])) -unless baseline_readme_timings.empty? - baseline_readme_total = baseline_readme_timings.sum { |entry| entry.fetch(:duration_ms).to_f } - puts - puts "baseline README timings" - puts - puts format("%-44s %10s %8s %5s", "step", "duration", "share", "count") - baseline_readme_timings.each do |entry| - puts format( - "%-44s %10.3fs %8s %5d", - entry.fetch(:name), - entry.fetch(:duration_ms) / 1000.0, - format_share(entry.fetch(:duration_ms), baseline_readme_total), - entry.fetch(:count) - ) - end +print_readme_timing_table("baseline README timings", baseline_readme_timings) +best_variant_name, best_variant = best_non_baseline_variant(results) +if best_variant_name + best_readme_timings = Array(best_variant.fetch(:snapshot).fetch(:readme_timings, [])) + print_readme_timing_table("#{best_variant_name} README timings", best_readme_timings) end payload = summary_payload(results) diff --git a/gems/kettle-jem/benchmarks/results/README.md b/gems/kettle-jem/benchmarks/results/README.md index cfdb61a65..7aa63cca9 100644 --- a/gems/kettle-jem/benchmarks/results/README.md +++ b/gems/kettle-jem/benchmarks/results/README.md @@ -1,48 +1,73 @@ # kettle-jem benchmark results -Last generated: `2026-07-20T19:32:16-06:00` +Last generated: `2026-07-20T22:47:34-06:00` | Setting | Value | | --- | --- | | Fixture | `/var/home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem/benchmarks/fixtures/skeleton` | -| Command | `kettle-jem template --only **/*` | -| Mode | `raw-template` | -| Runs per variant | `1` | -| Worker counts | `1` | +| Command | `kettle-jem template` | +| Mode | `install-template` | +| Only | `combined` | +| Runs per variant | `3` | +| Worker counts | `1, 4, 8, 22` | | Minimum Ruby | `1.8.7` | | Source reports | `/var/home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem/tmp/benchmarks/reports` | | Variant | +/- baseline | Min | Median | Mean | Max | Recipe phase | Command steps | Plan Ractors | Plan threads | File Ractors | File threads | Safe recipes | Plan Ractor jobs | Plan thread jobs | File units | File Ractor units | File thread units | Recipes | Changed | | --- | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: | -| `baseline-main` | +0.0% | 8.436s | 8.436s | 8.436s | 8.436s | 6.989s | 0.003s | 0 | 0 | 0 | 0 | 2 | 0 | 0 | 133 | 0 | 0 | 140 | 133 | -| `planning-ractor-1` | +32.5% | 11.181s | 11.181s | 11.181s | 11.181s | 9.629s | 0.002s | 1 | 0 | 0 | 0 | 2 | 2 | 0 | 133 | 0 | 0 | 140 | 133 | -| `planning-thread-1` | +15.0% | 9.704s | 9.704s | 9.704s | 9.704s | 8.052s | 0.003s | 0 | 1 | 0 | 0 | 2 | 0 | 140 | 133 | 0 | 0 | 140 | 133 | -| `file-ractor-1` | +21.8% | 10.279s | 10.279s | 10.279s | 10.279s | 8.179s | 0.003s | 0 | 0 | 1 | 0 | 2 | 0 | 0 | 133 | 133 | 0 | 140 | 133 | -| `file-thread-1` | +17.7% | 9.933s | 9.933s | 9.933s | 9.933s | 8.310s | 0.003s | 0 | 0 | 0 | 1 | 2 | 0 | 0 | 133 | 0 | 133 | 140 | 133 | -| `combined-ractor-1` | +38.4% | 11.674s | 11.674s | 11.674s | 11.674s | 10.003s | 0.003s | 1 | 0 | 1 | 0 | 2 | 2 | 0 | 133 | 133 | 0 | 140 | 133 | -| `combined-thread-1` | +18.0% | 9.955s | 9.955s | 9.955s | 9.955s | 8.299s | 0.003s | 0 | 1 | 0 | 1 | 2 | 0 | 140 | 133 | 0 | 133 | 140 | 133 | +| `baseline-main` | +0.0% | 13.106s | 13.335s | 13.300s | 13.460s | 8.032s | 3.086s | 0 | 0 | 0 | 0 | 2 | 0 | 0 | 132 | 0 | 0 | 146 | 134 | +| `combined-ractor-1` | +7.5% | 13.951s | 14.331s | 14.598s | 15.513s | 10.125s | 3.107s | 1 | 0 | 1 | 0 | 2 | 2 | 0 | 132 | 132 | 0 | 146 | 134 | +| `combined-thread-1` | +2.9% | 12.697s | 13.727s | 13.712s | 14.712s | 8.372s | 3.122s | 0 | 1 | 0 | 1 | 2 | 0 | 140 | 132 | 0 | 132 | 146 | 134 | +| `combined-ractor-4` | +13.3% | 14.953s | 15.110s | 15.415s | 16.181s | 9.326s | 3.197s | 4 | 0 | 4 | 0 | 2 | 2 | 0 | 132 | 132 | 0 | 146 | 134 | +| `combined-thread-4` | -2.4% | 12.724s | 13.017s | 13.158s | 13.733s | 8.385s | 3.254s | 0 | 4 | 0 | 4 | 2 | 0 | 140 | 132 | 0 | 132 | 146 | 134 | +| `combined-ractor-8` | +9.0% | 14.249s | 14.529s | 14.679s | 15.258s | 9.748s | 3.225s | 8 | 0 | 8 | 0 | 2 | 2 | 0 | 132 | 132 | 0 | 146 | 134 | +| `combined-thread-8` | -7.1% | 12.283s | 12.394s | 12.662s | 13.308s | 7.538s | 2.939s | 0 | 8 | 0 | 8 | 2 | 0 | 140 | 132 | 0 | 132 | 146 | 134 | +| `combined-ractor-22` | +8.5% | 13.665s | 14.468s | 14.277s | 14.699s | 8.604s | 3.019s | 22 | 0 | 22 | 0 | 2 | 2 | 0 | 132 | 132 | 0 | 146 | 134 | +| `combined-thread-22` | -6.1% | 12.438s | 12.521s | 12.581s | 12.785s | 7.709s | 3.079s | 0 | 22 | 0 | 22 | 2 | 0 | 140 | 132 | 0 | 132 | 146 | 134 | ## Baseline README timing breakdown | Step | Duration | Share | Count | | --- | ---: | ---: | ---: | -| `postprocess.readme_post_processor` | 0.410s | 17.8% | 2 | -| `prepare.integration_badges` | 0.406s | 17.6% | 1 | -| `readme.append_used_link_definitions` | 0.323s | 14.0% | 1 | -| `postprocess.conditional_blocks` | 0.235s | 10.2% | 2 | -| `postprocess.badge_policy` | 0.181s | 7.8% | 2 | -| `postprocess.logo_link_prune` | 0.163s | 7.1% | 2 | -| `badge_policy.codetriage` | 0.103s | 4.5% | 2 | -| `prepare.remove_sections` | 0.092s | 4.0% | 1 | -| `readme.merge_template` | 0.081s | 3.5% | 1 | -| `postprocess.project_heading` | 0.079s | 3.4% | 2 | -| `postprocess.synopsis_heading` | 0.078s | 3.4% | 2 | -| `badge_policy.fossa` | 0.078s | 3.4% | 2 | -| `postprocess.metadata_block` | 0.075s | 3.3% | 2 | -| `postprocess.blank_lines` | 0.000s | 0.0% | 2 | -| `postprocess.kloc_badge` | 0.000s | 0.0% | 2 | -| `postprocess.monorepo_thin_projection` | 0.000s | 0.0% | 2 | -| `postprocess.monorepo_subgem_recipe` | 0.000s | 0.0% | 2 | +| `prepare.integration_badges` | 0.479s | 16.8% | 1 | +| `postprocess.readme_post_processor` | 0.453s | 15.9% | 3 | +| `readme.append_used_link_definitions` | 0.391s | 13.7% | 1 | +| `postprocess.conditional_blocks` | 0.286s | 10.0% | 3 | +| `postprocess.logo_link_prune` | 0.222s | 7.8% | 3 | +| `postprocess.badge_policy` | 0.215s | 7.5% | 3 | +| `readme.merge_template` | 0.209s | 7.3% | 1 | +| `badge_policy.fossa` | 0.120s | 4.2% | 3 | +| `postprocess.metadata_block` | 0.108s | 3.8% | 3 | +| `postprocess.project_heading` | 0.099s | 3.5% | 3 | +| `badge_policy.codetriage` | 0.095s | 3.3% | 3 | +| `prepare.remove_sections` | 0.094s | 3.3% | 1 | +| `postprocess.synopsis_heading` | 0.086s | 3.0% | 3 | +| `postprocess.blank_lines` | 0.000s | 0.0% | 3 | +| `postprocess.kloc_badge` | 0.000s | 0.0% | 3 | +| `postprocess.monorepo_thin_projection` | 0.000s | 0.0% | 3 | +| `postprocess.monorepo_subgem_recipe` | 0.000s | 0.0% | 3 | + +## Fastest non-baseline README timing breakdown (`combined-thread-8`) + +| Step | Duration | Share | Count | +| --- | ---: | ---: | ---: | +| `postprocess.kloc_badge` | 1.016s | 29.0% | 3 | +| `prepare.integration_badges` | 0.546s | 15.6% | 1 | +| `postprocess.readme_post_processor` | 0.388s | 11.1% | 3 | +| `readme.append_used_link_definitions` | 0.318s | 9.1% | 1 | +| `postprocess.conditional_blocks` | 0.228s | 6.5% | 3 | +| `readme.merge_template` | 0.166s | 4.7% | 1 | +| `postprocess.logo_link_prune` | 0.158s | 4.5% | 3 | +| `postprocess.badge_policy` | 0.156s | 4.5% | 3 | +| `prepare.remove_sections` | 0.121s | 3.5% | 1 | +| `postprocess.metadata_block` | 0.101s | 2.9% | 3 | +| `postprocess.project_heading` | 0.083s | 2.4% | 3 | +| `badge_policy.fossa` | 0.081s | 2.3% | 3 | +| `badge_policy.codetriage` | 0.075s | 2.1% | 3 | +| `postprocess.synopsis_heading` | 0.068s | 1.9% | 3 | +| `postprocess.blank_lines` | 0.000s | 0.0% | 3 | +| `postprocess.monorepo_thin_projection` | 0.000s | 0.0% | 3 | +| `postprocess.monorepo_subgem_recipe` | 0.000s | 0.0% | 3 | These results are generated by `ruby benchmarks/kettle_jem_ractor_planning.rb`. Regenerate this README from the saved summary without rerunning the benchmark with: diff --git a/gems/kettle-jem/lib/kettle/jem.rb b/gems/kettle-jem/lib/kettle/jem.rb index 4a8d4491d..9658e7e36 100644 --- a/gems/kettle-jem/lib/kettle/jem.rb +++ b/gems/kettle-jem/lib/kettle/jem.rb @@ -5798,8 +5798,9 @@ def normalize_readme_blank_line_runs(content) end def prune_unused_readme_logo_link_definitions(content) - referenced = ReadmePostProcessor.markdown_inline_reference_owners(content).flat_map(&:labels).map(&:to_s).to_set - labels = ReadmePostProcessor.markdown_link_definition_owners(content).filter_map do |owner| + owners = ReadmePostProcessor.markdown_structural_owners(content, :inline_references, :link_definitions) + referenced = owners.fetch(:inline_references).flat_map(&:labels).map(&:to_s).to_set + labels = owners.fetch(:link_definitions).filter_map do |owner| label = owner.label.to_s label if label.start_with?("🖼️") && !referenced.include?(label) end @@ -5905,12 +5906,9 @@ def apply_markdown_conditional_block(content, name, keep:) start_text = "KJ:#{name}:START" end_text = "KJ:#{name}:END" if keep - processed = delete_markdown_with_ast_crispr( + delete_markdown_with_ast_crispr_batch( content, - Ast::Crispr::Markdown::Markly::Selectors.html_comment(text: start_text, limit: {at_least: 0}) - ) - delete_markdown_with_ast_crispr( - processed, + Ast::Crispr::Markdown::Markly::Selectors.html_comment(text: start_text, limit: {at_least: 0}), Ast::Crispr::Markdown::Markly::Selectors.html_comment(text: end_text, limit: {at_least: 0}) ) else @@ -6005,8 +6003,9 @@ def append_missing_markdown_link_definitions(content, definitions) end def append_used_markdown_link_definitions(content, definition_source) - existing = ReadmePostProcessor.markdown_link_definition_owners(content).map { |owner| owner.label.to_s }.to_set - referenced = ReadmePostProcessor.markdown_inline_reference_owners(content).flat_map(&:labels).map(&:to_s).to_set + owners = ReadmePostProcessor.markdown_structural_owners(content, :link_definitions, :inline_references) + existing = owners.fetch(:link_definitions).map { |owner| owner.label.to_s }.to_set + referenced = owners.fetch(:inline_references).flat_map(&:labels).map(&:to_s).to_set available = ReadmePostProcessor.markdown_link_definition_owners(definition_source).to_h do |owner| [owner.label.to_s, owner] end @@ -6023,6 +6022,14 @@ def delete_markdown_with_ast_crispr(content, target) Ast::Crispr::Delete.call(content: content.to_s, target: target, source_label: "README.md").updated_content end + def delete_markdown_with_ast_crispr_batch(content, *targets) + ensure_runtime_dependencies! + target_list = targets.flatten.compact + return content if target_list.empty? + + Ast::Crispr::DeleteBatch.call(content: content.to_s, targets: target_list, source_label: "README.md").updated_content + end + def replace_markdown_with_ast_crispr(content, target, replacement) ensure_runtime_dependencies! Ast::Crispr::Replace.call( @@ -6120,12 +6127,14 @@ def prepare_readme_template(content, readme_style) def prune_readme_integration_badges(content, readme_style) ensure_runtime_dependencies! integrations = Array(readme_style[:missing_integrations]) + Array(readme_style[:disabled_integrations]) - integrations.uniq.reduce(content.to_s) do |result, integration| - pruned_badges = README_INTEGRATION_BADGE_PATTERNS.fetch(integration.to_s, []).reduce(result) do |memo, pattern| + labels = [] + pruned = integrations.uniq.reduce(content.to_s) do |result, integration| + labels.concat(README_INTEGRATION_LINK_LABELS.fetch(integration.to_s, [])) + README_INTEGRATION_BADGE_PATTERNS.fetch(integration.to_s, []).reduce(result) do |memo, pattern| memo.gsub(pattern, "") end - ReadmePostProcessor.delete_markdown_link_definitions(pruned_badges, README_INTEGRATION_LINK_LABELS.fetch(integration.to_s, [])) - end.gsub(/[ \t]{2,}/, " ") + end + ReadmePostProcessor.delete_markdown_link_definitions(pruned, labels).gsub(/[ \t]{2,}/, " ") end def prune_missing_workflow_link_definitions(content, workflow_paths) @@ -10833,7 +10842,7 @@ def record_file_work_execution_stats(stats, units:, workers:, thread_workers:) stats[:file_operations] += units.sum { |unit| unit.operations.length } if workers.positive? stats[:file_ractor_units] += units.length - stats[:file_ractor_spawn_count] += units.length + stats[:file_ractor_spawn_count] += [workers, units.length].min elsif thread_workers.positive? stats[:file_thread_units] += units.length stats[:file_thread_spawn_count] += [thread_workers, units.length].min @@ -10843,24 +10852,28 @@ def record_file_work_execution_stats(stats, units:, workers:, thread_workers:) end def commit_file_work_units_thread(file_work_units, workers:) - chunks = Array.new([workers, file_work_units.length].min) { [] } - file_work_units.each_with_index do |file_work_unit, offset| - chunks.fetch(offset % chunks.length) << file_work_unit - end - chunks.map do |chunk| + distribute_file_work_units(file_work_units, workers).map do |chunk| Thread.new { chunk.each { |file_work_unit| commit_file_work_unit(file_work_unit) } } end.each(&:join) end def commit_file_work_units_ractor(file_work_units, workers:) - file_work_units.each_slice(workers).each do |slice| - slice.map do |file_work_unit| - payload = Ractor.make_shareable(file_work_unit_payload(file_work_unit)) - Ractor.new(payload) do |worker_payload| + distribute_file_work_units(file_work_units, workers).map do |chunk| + payloads = Ractor.make_shareable(chunk.map { |file_work_unit| file_work_unit_payload(file_work_unit) }) + Ractor.new(payloads) do |worker_payloads| + worker_payloads.map do |worker_payload| Kettle::Jem.commit_file_work_unit_payload(worker_payload) end - end.each(&:value) + end + end.each(&:value) + end + + def distribute_file_work_units(file_work_units, workers) + chunks = Array.new([workers, file_work_units.length].min) { [] } + file_work_units.each_with_index do |file_work_unit, offset| + chunks.fetch(offset % chunks.length) << file_work_unit end + chunks end def commit_file_work_unit(file_work_unit) diff --git a/gems/kettle-jem/lib/kettle/jem/tasks/install_task.rb b/gems/kettle-jem/lib/kettle/jem/tasks/install_task.rb index 98b5fffa6..a117c7ccc 100644 --- a/gems/kettle-jem/lib/kettle/jem/tasks/install_task.rb +++ b/gems/kettle-jem/lib/kettle/jem/tasks/install_task.rb @@ -63,7 +63,7 @@ def run(project_root: Dir.pwd, env: ENV, run_options: {}, command_runner: method end def install_run_options(env, run_options) - Kettle::Jem::Tasks::TemplateTask.env_run_options(env || {}).merge(run_options || {}) + Kettle::Jem::Tasks::TemplateTask.templating_run_options(env || {}, run_options || {}) end def followup_apply_after_config_bootstrap(project_root, env:, run_options:, report:) diff --git a/gems/kettle-jem/lib/kettle/jem/tasks/template_task.rb b/gems/kettle-jem/lib/kettle/jem/tasks/template_task.rb index 2e86ffe6b..b5ef1b4a6 100644 --- a/gems/kettle-jem/lib/kettle/jem/tasks/template_task.rb +++ b/gems/kettle-jem/lib/kettle/jem/tasks/template_task.rb @@ -1,13 +1,16 @@ # frozen_string_literal: true +require "etc" + module Kettle module Jem module Tasks module TemplateTask module_function - def run(project_root: Dir.pwd, env: ENV, run_options: env_run_options(env), command_runner: Kettle::Jem::Tasks::InstallTask.method(:run_system_command)) - report = if Dir.glob(File.join(project_root.to_s, "*.gemspec")).empty? && !monorepo_root_profile?(project_root, env, run_options) + def run(project_root: Dir.pwd, env: ENV, run_options: nil, command_runner: Kettle::Jem::Tasks::InstallTask.method(:run_system_command)) + effective_run_options = templating_run_options(env, run_options) + report = if Dir.glob(File.join(project_root.to_s, "*.gemspec")).empty? && !monorepo_root_profile?(project_root, env, effective_run_options) { mode: "apply", changed_files: [], @@ -15,25 +18,37 @@ def run(project_root: Dir.pwd, env: ENV, run_options: env_run_options(env), comm recipe_reports: [] } else - Kettle::Jem.apply_project(project_root, env: env, run_options: run_options) + Kettle::Jem.apply_project(project_root, env: env, run_options: effective_run_options) end setup_env = Kettle::Jem::Tasks::InstallTask.setup_command_env(project_root, env) - hook_step = Kettle::Jem::Tasks::InstallTask.hook_templates_step(project_root, run_options) - git_drivers_step = Kettle::Jem::Tasks::InstallTask.git_drivers_step(project_root, run_options) - lock_step = Kettle::Jem::Tasks::InstallTask.normalize_lockfile_step(project_root, env: setup_env, run_options: run_options) + hook_step = Kettle::Jem::Tasks::InstallTask.hook_templates_step(project_root, effective_run_options) + git_drivers_step = Kettle::Jem::Tasks::InstallTask.git_drivers_step(project_root, effective_run_options) + lock_step = Kettle::Jem::Tasks::InstallTask.normalize_lockfile_step(project_root, env: setup_env, run_options: effective_run_options) template_steps = Kettle::Jem::Tasks::InstallTask.execute_orchestration_steps( [hook_step, git_drivers_step, lock_step], project_root: project_root, env: setup_env, - run_options: run_options, + run_options: effective_run_options, command_runner: command_runner, event_phase: "template" ) final_report = report.merge(mode: "template", template_steps: template_steps) - Kettle::Jem.emit_summary_event(Kettle::Jem.event_stream_from_options(run_options), final_report) + Kettle::Jem.emit_summary_event(Kettle::Jem.event_stream_from_options(effective_run_options), final_report) final_report end + def templating_run_options(env, run_options) + options = env_run_options(env || {}).merge(run_options || {}) + return options if worker_or_strategy_option_provided?(env || {}, options) + + workers = default_thread_worker_count + options.merge( + recipe_planning_strategy: "classified", + recipe_planning_thread_workers: workers, + file_work_thread_workers: workers + ) + end + def env_run_options(env) { accept: truthy?(env["accept"]) || truthy?(env["force"]), @@ -59,6 +74,35 @@ def env_run_options(env) }.compact end + def default_thread_worker_count + [1, Etc.nprocessors / 2].max + end + + def worker_or_strategy_option_provided?(env, run_options) + option_keys = %i[ + ractor_workers + recipe_planning_workers + thread_workers + recipe_planning_thread_workers + ractor_file_workers + file_work_workers + thread_file_workers + file_work_thread_workers + recipe_planning_strategy + ] + string_option_keys = option_keys.map(&:to_s) + env_keys = %w[ + KETTLE_JEM_RACTOR_WORKERS + KETTLE_JEM_THREAD_WORKERS + KETTLE_JEM_RACTOR_FILE_WORKERS + KETTLE_JEM_THREAD_FILE_WORKERS + KETTLE_JEM_RECIPE_PLANNING_STRATEGY + ] + option_keys.any? { |key| run_options.key?(key) } || + string_option_keys.any? { |key| run_options.key?(key) } || + env_keys.any? { |key| env.key?(key) && !env[key].to_s.strip.empty? } + end + def truthy?(value) Kettle::Jem::DecisionPolicy.truthy?(value) end diff --git a/gems/kettle-jem/spec/integration/recipe_planning_spec.rb b/gems/kettle-jem/spec/integration/recipe_planning_spec.rb index ffa6f42f9..8de7d050a 100644 --- a/gems/kettle-jem/spec/integration/recipe_planning_spec.rb +++ b/gems/kettle-jem/spec/integration/recipe_planning_spec.rb @@ -580,6 +580,7 @@ Dir.mktmpdir("kettle-jem-ractor-file-work-units", tmp_root) do |root| first_path = File.join(root, "lib/first.rb") second_path = File.join(root, "lib/second.rb") + third_path = File.join(root, "lib/third.rb") FileUtils.mkdir_p(File.dirname(second_path)) File.write(second_path, "old\n") first_work_unit = described_class::FileWorkUnit.new( @@ -612,18 +613,31 @@ ) ] ) + third_work_unit = described_class::FileWorkUnit.new( + relative_path: "lib/third.rb", + operations: [ + described_class::WriteIntent.new( + relative_path: "lib/third.rb", + absolute_path: third_path, + action: :write, + content: "third\n", + recipe_name: "third_recipe" + ) + ] + ) stats = described_class.send(:file_work_execution_stats, 2) - described_class.send(:commit_file_work_units, [first_work_unit, second_work_unit], workers: 2, stats: stats) + described_class.send(:commit_file_work_units, [first_work_unit, second_work_unit, third_work_unit], workers: 2, stats: stats) expect(File.read(first_path)).to eq("first\n") expect(File).not_to exist(second_path) + expect(File.read(third_path)).to eq("third\n") expect(stats).to include( file_worker_count: 2, - file_work_units: 2, - file_operations: 3, - file_ractor_units: 2, + file_work_units: 3, + file_operations: 4, + file_ractor_units: 3, file_ractor_spawn_count: 2, main_file_units: 0 ) diff --git a/gems/kettle-jem/spec/rake_tasks_spec.rb b/gems/kettle-jem/spec/rake_tasks_spec.rb index 9dd9f6058..e892239b8 100644 --- a/gems/kettle-jem/spec/rake_tasks_spec.rb +++ b/gems/kettle-jem/spec/rake_tasks_spec.rb @@ -77,4 +77,31 @@ verbose: true ) end + + it "defaults templating to half-core thread workers when no worker options are set" do + allow(Etc).to receive(:nprocessors).and_return(22) + + expect(Kettle::Jem::Tasks::TemplateTask.templating_run_options({}, {})).to include( + recipe_planning_strategy: "classified", + recipe_planning_thread_workers: 11, + file_work_thread_workers: 11 + ) + end + + it "preserves explicit templating worker options" do + allow(Etc).to receive(:nprocessors).and_return(22) + + expect( + Kettle::Jem::Tasks::TemplateTask.templating_run_options( + {"KETTLE_JEM_THREAD_WORKERS" => "3"}, + {} + ) + ).not_to include(:file_work_thread_workers) + expect( + Kettle::Jem::Tasks::TemplateTask.templating_run_options( + {}, + {recipe_planning_strategy: "sequential"} + ) + ).not_to include(:recipe_planning_thread_workers, :file_work_thread_workers) + end end From 7818fcae9311090b404cd98f19278622b6f13d1f Mon Sep 17 00:00:00 2001 From: "Peter H. Boling" Date: Mon, 20 Jul 2026 23:24:44 -0600 Subject: [PATCH 107/188] Use TSLP ABI fix fork Point StructuredMerge Ruby development Gemfiles at structuredmerge/tree-sitter-language-pack on fix/ruby-4-platform-gem-abi so Ruby 4 loads a functional TSLP while the upstream platform-gem ABI fix is unreleased. Refresh gem lockfiles and generated Gemfile expectations accordingly. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- CHANGELOG.md | 7 +- Gemfile | 10 +- Gemfile.lock | 91 ++-- gems/ast-crispr-markdown-markly/Gemfile | 10 +- gems/ast-crispr-markdown-markly/Gemfile.lock | 388 ++------------ gems/ast-crispr-ruby-prism/Gemfile | 10 +- gems/ast-crispr-ruby-prism/Gemfile.lock | 373 ++------------ gems/ast-crispr/Gemfile | 10 +- gems/ast-crispr/Gemfile.lock | 381 ++------------ gems/ast-merge-git/Gemfile | 10 +- gems/ast-merge-git/Gemfile.lock | 387 ++------------ gems/ast-merge/Gemfile | 10 +- gems/ast-merge/Gemfile.lock | 379 +------------- gems/ast-template/Gemfile | 10 +- gems/ast-template/Gemfile.lock | 385 ++------------ gems/bash-merge/Gemfile | 10 +- gems/bash-merge/Gemfile.lock | 384 ++------------ gems/binary-merge/Gemfile | 10 +- gems/binary-merge/Gemfile.lock | 383 +------------- gems/citrus-toml-merge/Gemfile | 10 +- gems/citrus-toml-merge/Gemfile.lock | 383 ++------------ gems/commonmarker-merge/Gemfile | 10 +- gems/commonmarker-merge/Gemfile.lock | 375 ++------------ gems/dotenv-merge/Gemfile | 10 +- gems/dotenv-merge/Gemfile.lock | 384 ++------------ gems/go-merge/Gemfile | 10 +- gems/go-merge/Gemfile.lock | 22 +- gems/html-merge/Gemfile | 10 +- gems/html-merge/Gemfile.lock | 487 ++---------------- gems/json-merge/Gemfile | 10 +- gems/json-merge/Gemfile.lock | 379 ++------------ gems/kettle-jem/Gemfile | 10 +- gems/kettle-jem/Gemfile.lock | 425 ++++----------- .../lib/kettle/jem/templates/Gemfile.example | 10 +- .../config_metadata_template_spec.rb | 7 +- gems/kramdown-merge/Gemfile | 10 +- gems/kramdown-merge/Gemfile.lock | 387 ++------------ gems/markdown-merge/Gemfile | 10 +- gems/markdown-merge/Gemfile.lock | 384 ++------------ gems/markly-merge/Gemfile | 10 +- gems/markly-merge/Gemfile.lock | 385 ++------------ gems/parslet-toml-merge/Gemfile | 10 +- gems/parslet-toml-merge/Gemfile.lock | 384 ++------------ gems/plain-merge/Gemfile | 10 +- gems/plain-merge/Gemfile.lock | 50 +- gems/prism-merge/Gemfile | 10 +- gems/prism-merge/Gemfile.lock | 370 +------------ gems/psych-merge/Gemfile | 10 +- gems/psych-merge/Gemfile.lock | 22 +- gems/rbs-merge/Gemfile | 10 +- gems/rbs-merge/Gemfile.lock | 19 +- gems/ruby-merge/Gemfile | 10 +- gems/ruby-merge/Gemfile.lock | 384 ++------------ gems/rust-merge/Gemfile | 10 +- gems/rust-merge/Gemfile.lock | 22 +- gems/smorg-rb/Gemfile | 10 +- gems/smorg-rb/Gemfile.lock | 428 +++++---------- gems/toml-merge/Gemfile | 10 +- gems/toml-merge/Gemfile.lock | 22 +- gems/tree_haver/Gemfile | 10 +- gems/tree_haver/Gemfile.lock | 24 +- gems/typescript-merge/Gemfile | 10 +- gems/typescript-merge/Gemfile.lock | 22 +- gems/yaml-merge/Gemfile | 10 +- gems/yaml-merge/Gemfile.lock | 22 +- gems/zip-merge/Gemfile | 10 +- gems/zip-merge/Gemfile.lock | 383 +------------- 67 files changed, 1202 insertions(+), 8056 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1e6771fcf..849077eaf 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -72,10 +72,9 @@ Please file a bug if you notice a violation of semantic versioning. - Root architecture specs now guard merge emission files against new ad hoc comment or blank-line ownership scans, keeping the remaining cleanup debt explicit while shared ast-merge attachment and layout helpers are adopted. -- Gems that use `tree_sitter_language_pack` now default to the released - `tree_sitter_language_pack` 1.13.2 or newer, while preserving the explicit - `VENDORED_GEMS=tree_sitter_language_pack` / `VENDOR_GEM_DIR` local-source - split for templating. +- Development Gemfiles for gems that use `tree_sitter_language_pack` now default + to the StructuredMerge fork branch with the Ruby ABI platform-gem fix until + that fix is released upstream. - Structured merge gems now fail closed when no registered TreeHaver backend is available instead of falling back to direct parser-library paths outside the TreeHaver and ast-merge stack. diff --git a/Gemfile b/Gemfile index bc6041fd9..7f43bcac5 100644 --- a/Gemfile +++ b/Gemfile @@ -2,14 +2,8 @@ kettle_dev_dev = ENV.fetch("KETTLE_DEV_DEV", "false") source "https://rubygems.org" -# Use the released TSLP gem by default; templating can override it via VENDORED_GEMS. -vendored_gems = ENV.fetch("VENDORED_GEMS", "").split(",").map(&:strip) -tslp_declared_by_templating = - ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? && - vendored_gems.include?("tree_sitter_language_pack") -unless tslp_declared_by_templating - gem "tree_sitter_language_pack", ">= 1.13.2", "< 2.0" -end +# Use the StructuredMerge TSLP fork until the Ruby ABI platform-gem fix is released. +gem "tree_sitter_language_pack", git: "https://github.com/structuredmerge/tree-sitter-language-pack.git", branch: "fix/ruby-4-platform-gem-abi", glob: "packages/ruby/*.gemspec" unless kettle_dev_dev.casecmp("false").zero? require "nomono/bundler" diff --git a/Gemfile.lock b/Gemfile.lock index e69ec370a..04e05c1ae 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,36 +1,14 @@ -PATH - remote: /home/pboling/src/my/kettle-dev/kettle-dev - specs: - kettle-dev (2.3.7) - emoji_regex (>= 15.0) - kettle-rb (~> 0.1, >= 0.1.2) - kettle-test (~> 2.0, >= 2.0.4) - ruby-progressbar (~> 1.13) - -PATH - remote: /home/pboling/src/my/kettle-dev/kettle-family - specs: - kettle-family (1.0.1) - command_kit (~> 0.6) - command_kit-completion (~> 0.1) - kettle-dev (~> 2.3, >= 2.3.4) - kettle-test (~> 2.0, >= 2.0.10) - tsort (~> 0.2) - -PATH - remote: /home/pboling/src/my/kettle-dev/kettle-test - specs: - kettle-test (2.0.11) - appraisal2 (~> 3.0, >= 3.0.6) - backports (~> 3.0) - rspec (~> 3.0) - rspec-block_is_expected (~> 1.0, >= 1.0.6) - rspec-pending_for (~> 0.1, >= 0.1.20) - rspec-stubbed_env (~> 1.0, >= 1.0.6) - rspec_junit_formatter (~> 0.6) - silent_stream (~> 1.0, >= 1.0.12) - timecop-rspec (~> 1.0, >= 1.0.3) - turbo_tests2 (~> 3.1, >= 3.1.12) +GIT + remote: https://github.com/structuredmerge/tree-sitter-language-pack.git + revision: e736879d00ce55b9bbfa479a5c07363bde1512e2 + branch: fix/ruby-4-platform-gem-abi + glob: packages/ruby/*.gemspec + specs: + tree_sitter_language_pack (1.13.2) + rb_sys (>= 0.9, < 0.9.128) + sorbet-runtime (~> 0.5) + tree_sitter_language_pack (1.13.2-x86_64-linux) + sorbet-runtime (~> 0.5) PATH remote: gems/ast-crispr-markdown-markly @@ -333,9 +311,31 @@ GEM gitmoji-regex (2.0.4) version_gem (~> 1.1, >= 1.1.13) io-console (0.8.2) + kettle-dev (2.3.7) + emoji_regex (>= 15.0) + kettle-rb (~> 0.1, >= 0.1.2) + kettle-test (~> 2.0, >= 2.0.4) + ruby-progressbar (~> 1.13) kettle-drift (1.0.5) version_gem (~> 1.1, >= 1.1.13) + kettle-family (1.0.1) + command_kit (~> 0.6) + command_kit-completion (~> 0.1) + kettle-dev (~> 2.3, >= 2.3.4) + kettle-test (~> 2.0, >= 2.0.10) + tsort (~> 0.2) kettle-rb (0.1.4) + kettle-test (2.0.11) + appraisal2 (~> 3.0, >= 3.0.6) + backports (~> 3.0) + rspec (~> 3.0) + rspec-block_is_expected (~> 1.0, >= 1.0.6) + rspec-pending_for (~> 0.1, >= 0.1.20) + rspec-stubbed_env (~> 1.0, >= 1.0.6) + rspec_junit_formatter (~> 0.6) + silent_stream (~> 1.0, >= 1.0.12) + timecop-rspec (~> 1.0, >= 1.0.3) + turbo_tests2 (~> 3.1, >= 3.1.12) kramdown (2.5.2) rexml (>= 3.4.4) logger (1.7.0) @@ -352,6 +352,9 @@ GEM public_suffix (7.0.5) racc (1.8.1) rake (13.4.2) + rake-compiler-dock (1.12.0) + rb_sys (0.9.127) + rake-compiler-dock (= 1.12.0) rbs (4.0.3) logger prism (>= 1.6.0) @@ -407,8 +410,6 @@ GEM toml-rb (4.2.0) citrus (~> 3.0, > 3.0) racc (~> 1.7) - tree_sitter_language_pack (1.13.2-x86_64-linux) - sorbet-runtime (~> 0.5) tsort (0.2.0) turbo_tests2 (3.2.0) parallel_tests (>= 3.3.0, < 6) @@ -438,11 +439,11 @@ DEPENDENCIES gitmoji-regex (~> 2.0, >= 2.0.1, >= 2.0.0) go-merge! json-merge! - kettle-dev! + kettle-dev (~> 2.2, ~> 2.0, >= 2.2.25) kettle-drift (~> 1.0, >= 1.0.5) - kettle-family! + kettle-family (>= 1.0.0) kettle-jem! - kettle-test! + kettle-test (~> 2.0, >= 2.0.9, >= 2.0.11) kramdown-merge! markdown-merge! markly-merge! @@ -464,7 +465,7 @@ DEPENDENCIES toml-merge! toml-rb (~> 4.1) tree_haver! - tree_sitter_language_pack (>= 1.13.2, < 2.0) + tree_sitter_language_pack! turbo_tests2 (~> 3.2, ~> 3.1, >= 3.2.0, >= 3.1.14) typescript-merge! yaml-merge! @@ -483,6 +484,7 @@ CHECKSUMS bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c binary-merge (7.1.0) + bundler (4.0.16) sha256=d6ca5dd440c24f9abce9844cf44cc8e18c6a553de65a47efb4544137af92c47d bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 citrus-toml-merge (7.1.0) @@ -503,12 +505,12 @@ CHECKSUMS go-merge (7.1.0) io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc json-merge (7.1.0) - kettle-dev (2.3.7) + kettle-dev (2.3.7) sha256=eb370113cd030d03cbe2d33b31c99858951017e5ad21a17e9ed89dc3770028ee kettle-drift (1.0.5) sha256=07094e80140a049164142820bdd327c30fcd855bb00697a0a430600a2b5144a2 - kettle-family (1.0.1) + kettle-family (1.0.1) sha256=6855e944fe48d7b0d154ca0073c544db19e0a2fca246ce4aa3a804fc2b6f71f8 kettle-jem (7.1.0) kettle-rb (0.1.4) sha256=9cef7ce4f7021666b7222292f29051e51eaf042e8a5db11f3f4dd72f74243fc1 - kettle-test (2.0.11) + kettle-test (2.0.11) sha256=c710c90f7ab79d51f9452f0c09f5f90657e7a893f63583855c164d0b1b107ab2 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa kramdown-merge (7.1.0) logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 @@ -527,6 +529,8 @@ CHECKSUMS public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 + rake-compiler-dock (1.12.0) sha256=f13205c2738f3d2053afcd03491a9e4541b22a59a0bfc53fc8bc883bd8188023 + rb_sys (0.9.127) sha256=e9f90df3bb0577472d26d96127d5b5774b98f44de881e7d36aeefd28d6337847 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 rbs-merge (7.1.0) reline (0.6.3) sha256=1198b04973565b36ec0f11542ab3f5cfeeec34823f4e54cebde90968092b1835 @@ -559,7 +563,8 @@ CHECKSUMS toml-merge (7.1.0) toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 tree_haver (7.1.0) - tree_sitter_language_pack (1.13.2-x86_64-linux) sha256=ab3beba6831edc30a99d962db505f70105b5489b149fd302802cf9df9b956385 + tree_sitter_language_pack (1.13.2) + tree_sitter_language_pack (1.13.2-x86_64-linux) tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 typescript-merge (7.1.0) diff --git a/gems/ast-crispr-markdown-markly/Gemfile b/gems/ast-crispr-markdown-markly/Gemfile index 4d3c0608d..d36a55479 100644 --- a/gems/ast-crispr-markdown-markly/Gemfile +++ b/gems/ast-crispr-markdown-markly/Gemfile @@ -72,14 +72,8 @@ if direct_sibling_gems.any? && end end -# Use the released TSLP gem by default; templating can override it via VENDORED_GEMS. -vendored_gems = ENV.fetch('VENDORED_GEMS', '').split(',').map(&:strip) -tslp_declared_by_templating = - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? && - vendored_gems.include?('tree_sitter_language_pack') -unless tslp_declared_by_templating - gem 'tree_sitter_language_pack', '>= 1.13.2', '< 2.0' -end +# Use the StructuredMerge TSLP fork until the Ruby ABI platform-gem fix is released. +gem 'tree_sitter_language_pack', git: 'https://github.com/structuredmerge/tree-sitter-language-pack.git', branch: 'fix/ruby-4-platform-gem-abi', glob: 'packages/ruby/*.gemspec' # Templating (env-switched: STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local paths) eval_gemfile 'gemfiles/modular/templating.gemfile' if ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? diff --git a/gems/ast-crispr-markdown-markly/Gemfile.lock b/gems/ast-crispr-markdown-markly/Gemfile.lock index 6529bb18c..491d8b17b 100644 --- a/gems/ast-crispr-markdown-markly/Gemfile.lock +++ b/gems/ast-crispr-markdown-markly/Gemfile.lock @@ -1,277 +1,29 @@ -PATH - remote: . +GIT + remote: https://github.com/structuredmerge/tree-sitter-language-pack.git + revision: e736879d00ce55b9bbfa479a5c07363bde1512e2 + branch: fix/ruby-4-platform-gem-abi + glob: packages/ruby/*.gemspec specs: - ast-crispr-markdown-markly (7.1.0) - ast-crispr (= 7.1.0) - markly-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) + tree_sitter_language_pack (1.13.2) + rb_sys (>= 0.9, < 0.9.128) + sorbet-runtime (~> 0.5) + tree_sitter_language_pack (1.13.2-aarch64-linux) + sorbet-runtime (~> 0.5) + tree_sitter_language_pack (1.13.2-arm64-darwin) + sorbet-runtime (~> 0.5) + tree_sitter_language_pack (1.13.2-x86_64-darwin) + sorbet-runtime (~> 0.5) + tree_sitter_language_pack (1.13.2-x86_64-linux) + sorbet-runtime (~> 0.5) PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism + remote: . specs: - ast-crispr-ruby-prism (7.1.0) + ast-crispr-markdown-markly (7.1.0) ast-crispr (= 7.1.0) - prism-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr - specs: - ast-crispr (7.1.0) - ast-merge (= 7.1.0) - service_actor (~> 3.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git - specs: - ast-merge-git (7.1.0) - ast-merge (= 7.1.0) - json-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge - specs: - ast-merge (7.1.0) - benchmark - token-resolver (~> 2.0, >= 2.0.4) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template - specs: - ast-template (7.1.0) - ast-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge - specs: - bash-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge - specs: - binary-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge - specs: - citrus-toml-merge (7.1.0) - toml-merge (= 7.1.0) - toml-rb (~> 4.1) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge - specs: - commonmarker-merge (7.1.0) - commonmarker (~> 2.2) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge - specs: - dotenv-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge - specs: - go-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge - specs: - json-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem - specs: - kettle-jem (7.1.0) - addressable (>= 2.8, < 3) - ast-crispr-markdown-markly (= 7.1.0) - ast-crispr-ruby-prism (= 7.1.0) - ast-merge (= 7.1.0) - bash-merge (= 7.1.0) - citrus-toml-merge (= 7.1.0) - commonmarker-merge (= 7.1.0) - dotenv-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-dev (~> 2.3, >= 2.3.5) - kettle-rb (~> 0.1, >= 0.1.4) - kramdown-merge (= 7.1.0) - markdown-merge (= 7.1.0) - markly-merge (= 7.1.0) - prism-merge (= 7.1.0) - psych-merge (= 7.1.0) - rbs (>= 3.10) - rbs-merge (= 7.1.0) - ruby-merge (= 7.1.0) - token-resolver (~> 2.0, >= 2.0.4) - toml-merge (= 7.1.0) - toml-rb (~> 4.2) - tree_haver (= 7.1.0) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge - specs: - kramdown-merge (7.1.0) - kramdown (~> 2.5) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge - specs: - markdown-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge - specs: - markly-merge (7.1.0) - markdown-merge (= 7.1.0) - markly (~> 0.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge - specs: - parslet-toml-merge (7.1.0) - toml (~> 0.3) - toml-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge - specs: - plain-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge - specs: - prism-merge (7.1.0) - prism (~> 1.6) - ruby-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge - specs: - psych-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge - specs: - rbs-merge (7.1.0) - ast-merge (= 7.1.0) - rbs (>= 3.10) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge - specs: - ruby-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge - specs: - rust-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb - specs: - smorg-rb (7.1.0) - ast-merge (= 7.1.0) - ast-merge-git (= 7.1.0) - go-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-jem (= 7.1.0) markly-merge (= 7.1.0) - plain-merge (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge - specs: - toml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver - specs: - tree_haver (7.1.0) - citrus (~> 3.0) - parslet (~> 2.0) - tree_sitter_language_pack (>= 1.9.0.pre.rc.40, < 2.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge - specs: - typescript-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge - specs: - yaml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge - specs: - zip-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/vendor/tree_sitter_language_pack - specs: - tree_sitter_language_pack (1.13.1) - rb_sys (>= 0.9, < 0.9.128) - sorbet-runtime (~> 0.5) - GEM remote: https://gem.coop/ specs: @@ -283,6 +35,15 @@ GEM rake (>= 10) thor (>= 0.14) ast (2.4.3) + ast-crispr (7.1.0) + ast-merge (= 7.1.0) + service_actor (~> 3.9) + version_gem (~> 1.1, >= 1.1.9) + ast-merge (7.1.0) + benchmark + token-resolver (~> 2.0, >= 2.0.4) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) backports (3.25.3) benchmark (0.5.0) bigdecimal (4.1.2) @@ -291,12 +52,6 @@ GEM thor (~> 1.0) citrus (3.0.2) cmdparse (3.0.7) - commonmarker (2.9.0-aarch64-linux) - commonmarker (2.9.0-aarch64-linux-musl) - commonmarker (2.9.0-arm64-darwin) - commonmarker (2.9.0-x86_64-darwin) - commonmarker (2.9.0-x86_64-linux) - commonmarker (2.9.0-x86_64-linux-musl) concurrent-ruby (1.3.8) date (3.5.1) debug (1.11.1) @@ -360,8 +115,6 @@ GEM kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) - kettle-drift (1.0.5) - version_gem (~> 1.1, >= 1.1.13) kettle-rb (0.1.4) kettle-soup-cover (1.1.3) simplecov (~> 0.22) @@ -390,7 +143,15 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) + markdown-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) markly (0.16.0) + markly-merge (7.1.0) + markdown-merge (= 7.1.0) + markly (~> 0.9) + version_gem (~> 1.1, >= 1.1.9) mutex_m (0.3.0) nokogiri (1.19.4-aarch64-linux-gnu) racc (~> 1.4) @@ -584,11 +345,11 @@ GEM token-resolver (2.0.4) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.13) - toml (0.3.0) - parslet (>= 1.8.0, < 3.0.0) - toml-rb (4.2.0) - citrus (~> 3.0, > 3.0) - racc (~> 1.7) + tree_haver (7.1.0) + citrus (~> 3.0) + parslet (~> 2.0) + tree_sitter_language_pack (>= 1.9.0.pre.rc.40, < 2.0) + version_gem (~> 1.1, >= 1.1.9) tsort (0.2.0) turbo_tests2 (3.2.0) parallel_tests (>= 3.3.0, < 6) @@ -635,45 +396,23 @@ PLATFORMS DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) - ast-crispr! ast-crispr-markdown-markly! - ast-crispr-ruby-prism! - ast-merge! - ast-merge-git! - ast-template! - bash-merge! benchmark (~> 0.5, >= 0.5.0) - binary-merge! bundler-audit (~> 0.9.3) - citrus-toml-merge! - commonmarker-merge! debug (>= 1.1) - dotenv-merge! erb (~> 6.0, >= 6.0.4) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.0) - go-merge! irb (~> 1.17) - json-merge! kettle-dev (~> 2.0, >= 2.2.25) - kettle-drift (~> 1.0, >= 1.0.5) - kettle-jem! kettle-soup-cover (~> 1.0, >= 1.1.3) kettle-test (~> 2.0, >= 2.0.9) kramdown (~> 2.5, >= 2.5.1) - kramdown-merge! kramdown-parser-gfm (~> 1.1) - markdown-merge! - markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) - parslet-toml-merge! - plain-merge! - prism-merge! - psych-merge! rake (~> 13.0) rbs (>= 3.0) - rbs-merge! rdoc (~> 6.11) reek (~> 6.5) require_bench (~> 1.0, >= 1.0.4) @@ -682,26 +421,18 @@ DEPENDENCIES rubocop-packaging (~> 0.6, >= 0.6.0) rubocop-rspec (~> 3.6) rubocop-ruby3_2 (~> 3.0.0) - ruby-merge! ruby-progressbar (~> 1.13) - rust-merge! - smorg-rb! standard (>= 1.50) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) - toml-merge! - tree_haver! tree_sitter_language_pack! - typescript-merge! yaml-converter (~> 0.1) - yaml-merge! yard (~> 0.9, >= 0.9.44) yard-fence (~> 0.9, >= 0.9.1) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) yard-timekeeper (~> 0.1) yard-yaml (~> 0.1, >= 0.1.2) - zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af @@ -710,26 +441,13 @@ CHECKSUMS ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 ast-crispr (7.1.0) ast-crispr-markdown-markly (7.1.0) - ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) - ast-merge-git (7.1.0) - ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 - bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd - binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 - citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 - commonmarker (2.9.0-aarch64-linux) sha256=e2b4aadb9a2cfa4e206582641ce3a49465549ac1ed4c289fdd63b78d8f24579c - commonmarker (2.9.0-aarch64-linux-musl) sha256=1cf4d2821f2a7e64945f1ed7c4eeced586fdb27ea7fe7337788802cf8f57cfca - commonmarker (2.9.0-arm64-darwin) sha256=1748dbfa4f5813b0d2a14bb4bbfa65a4ec293aa1c825016d60029ee0e132b046 - commonmarker (2.9.0-x86_64-darwin) sha256=0a9914ccfd2f5d2a59c7bd0dda4fe90eb084cf513b477e499008e09ec9d6edd6 - commonmarker (2.9.0-x86_64-linux) sha256=8cfe92970eef585a19ddf6613224b91cab64d6029834661bda801f877c9c7f43 - commonmarker (2.9.0-x86_64-linux-musl) sha256=293921398b839f79ceaf55010e061357e34f053822c3b003cd0be6686176335e - commonmarker-merge (7.1.0) concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 @@ -737,7 +455,6 @@ CHECKSUMS diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 docile (1.4.1) sha256=96159be799bfa73cdb721b840e9802126e4e03dfc26863db73647204c727f21e - dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -750,20 +467,15 @@ CHECKSUMS gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f - go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 - json-merge (7.1.0) kettle-dev (2.3.7) sha256=eb370113cd030d03cbe2d33b31c99858951017e5ad21a17e9ed89dc3770028ee - kettle-drift (1.0.5) sha256=07094e80140a049164142820bdd327c30fcd855bb00697a0a430600a2b5144a2 - kettle-jem (7.1.0) kettle-rb (0.1.4) sha256=9cef7ce4f7021666b7222292f29051e51eaf042e8a5db11f3f4dd72f74243fc1 kettle-soup-cover (1.1.3) sha256=a373827da22a7131d093afd32945e5b7d7a10a01ebfdded8fd2cb8230d69c8ad kettle-test (2.0.11) sha256=c710c90f7ab79d51f9452f0c09f5f90657e7a893f63583855c164d0b1b107ab2 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa - kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 @@ -785,14 +497,10 @@ CHECKSUMS parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 - parslet-toml-merge (7.1.0) - plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 - prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 - psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a @@ -800,7 +508,6 @@ CHECKSUMS rake-compiler-dock (1.12.0) sha256=f13205c2738f3d2053afcd03491a9e4541b22a59a0bfc53fc8bc883bd8188023 rb_sys (0.9.127) sha256=e9f90df3bb0577472d26d96127d5b5774b98f44de881e7d36aeefd28d6337847 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 - rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb @@ -828,11 +535,9 @@ CHECKSUMS rubocop-rspec (3.10.2) sha256=0b3e2ecc592cd10ecbf0095bb58d1e357905276e069643523cc19eb7495f65e2 rubocop-ruby3_2 (3.0.7) sha256=f53dd6d286fb05186214fc6ec116783e7f837030918e8931c05de773e98f8466 rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 - ruby-merge (7.1.0) ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 - rust-merge (7.1.0) service_actor (3.9.4) sha256=e63b523630b9a7e62959b2a90113b08d2565b5de9c148557b281ef847c9539ce silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (0.22.0) sha256=fe2622c7834ff23b98066bb0a854284b2729a569ac659f82621fc22ef36213a5 @@ -842,7 +547,6 @@ CHECKSUMS simplecov-lcov (0.9.0) sha256=7a77a31e200a595ed4b0249493056efd0c920601f53d2ef135ca34ee796346cd simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_json_formatter (0.1.4) sha256=529418fbe8de1713ac2b2d612aa3daa56d316975d307244399fa4838c601b428 - smorg-rb (7.1.0) sorbet-runtime (0.6.13342) sha256=dbeb9892597f593ed2b29e38018912787f6c4e0c4b736d8af0d6bd3c63bde3c3 standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b @@ -856,19 +560,18 @@ CHECKSUMS timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.4) sha256=33b926958f504525bba3ed511ab66fbcbf8ef30390815e931436b30f27ffcad0 - toml (0.3.0) sha256=0a91d0f76a9036e84e44f95693b12f58d358c1df3ac8e3b5271f2056ecc6e4b9 - toml-merge (7.1.0) - toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 tree_haver (7.1.0) - tree_sitter_language_pack (1.13.1) + tree_sitter_language_pack (1.13.2) + tree_sitter_language_pack (1.13.2-aarch64-linux) + tree_sitter_language_pack (1.13.2-arm64-darwin) + tree_sitter_language_pack (1.13.2-x86_64-darwin) + tree_sitter_language_pack (1.13.2-x86_64-linux) tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 - typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 - yaml-merge (7.1.0) yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd @@ -876,7 +579,6 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 - zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH diff --git a/gems/ast-crispr-ruby-prism/Gemfile b/gems/ast-crispr-ruby-prism/Gemfile index c7603e65d..afd3e8a42 100644 --- a/gems/ast-crispr-ruby-prism/Gemfile +++ b/gems/ast-crispr-ruby-prism/Gemfile @@ -72,14 +72,8 @@ if direct_sibling_gems.any? && end end -# Use the released TSLP gem by default; templating can override it via VENDORED_GEMS. -vendored_gems = ENV.fetch('VENDORED_GEMS', '').split(',').map(&:strip) -tslp_declared_by_templating = - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? && - vendored_gems.include?('tree_sitter_language_pack') -unless tslp_declared_by_templating - gem 'tree_sitter_language_pack', '>= 1.13.2', '< 2.0' -end +# Use the StructuredMerge TSLP fork until the Ruby ABI platform-gem fix is released. +gem 'tree_sitter_language_pack', git: 'https://github.com/structuredmerge/tree-sitter-language-pack.git', branch: 'fix/ruby-4-platform-gem-abi', glob: 'packages/ruby/*.gemspec' # Templating (env-switched: STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local paths) eval_gemfile 'gemfiles/modular/templating.gemfile' if ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? diff --git a/gems/ast-crispr-ruby-prism/Gemfile.lock b/gems/ast-crispr-ruby-prism/Gemfile.lock index 3dc058ef4..2d01b5f8d 100644 --- a/gems/ast-crispr-ruby-prism/Gemfile.lock +++ b/gems/ast-crispr-ruby-prism/Gemfile.lock @@ -1,277 +1,23 @@ -PATH - remote: . +GIT + remote: https://github.com/structuredmerge/tree-sitter-language-pack.git + revision: e736879d00ce55b9bbfa479a5c07363bde1512e2 + branch: fix/ruby-4-platform-gem-abi + glob: packages/ruby/*.gemspec specs: - ast-crispr-ruby-prism (7.1.0) - ast-crispr (= 7.1.0) - prism-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) + tree_sitter_language_pack (1.13.2) + rb_sys (>= 0.9, < 0.9.128) + sorbet-runtime (~> 0.5) + tree_sitter_language_pack (1.13.2-x86_64-linux) + sorbet-runtime (~> 0.5) PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly + remote: . specs: - ast-crispr-markdown-markly (7.1.0) + ast-crispr-ruby-prism (7.1.0) ast-crispr (= 7.1.0) - markly-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr - specs: - ast-crispr (7.1.0) - ast-merge (= 7.1.0) - service_actor (~> 3.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git - specs: - ast-merge-git (7.1.0) - ast-merge (= 7.1.0) - json-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge - specs: - ast-merge (7.1.0) - benchmark - token-resolver (~> 2.0, >= 2.0.4) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template - specs: - ast-template (7.1.0) - ast-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge - specs: - bash-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge - specs: - binary-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge - specs: - citrus-toml-merge (7.1.0) - toml-merge (= 7.1.0) - toml-rb (~> 4.1) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge - specs: - commonmarker-merge (7.1.0) - commonmarker (~> 2.2) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge - specs: - dotenv-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge - specs: - go-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge - specs: - json-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem - specs: - kettle-jem (7.1.0) - addressable (>= 2.8, < 3) - ast-crispr-markdown-markly (= 7.1.0) - ast-crispr-ruby-prism (= 7.1.0) - ast-merge (= 7.1.0) - bash-merge (= 7.1.0) - citrus-toml-merge (= 7.1.0) - commonmarker-merge (= 7.1.0) - dotenv-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-dev (~> 2.3, >= 2.3.5) - kettle-rb (~> 0.1, >= 0.1.4) - kramdown-merge (= 7.1.0) - markdown-merge (= 7.1.0) - markly-merge (= 7.1.0) prism-merge (= 7.1.0) - psych-merge (= 7.1.0) - rbs (>= 3.10) - rbs-merge (= 7.1.0) - ruby-merge (= 7.1.0) - token-resolver (~> 2.0, >= 2.0.4) - toml-merge (= 7.1.0) - toml-rb (~> 4.2) - tree_haver (= 7.1.0) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge - specs: - kramdown-merge (7.1.0) - kramdown (~> 2.5) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge - specs: - markdown-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge - specs: - markly-merge (7.1.0) - markdown-merge (= 7.1.0) - markly (~> 0.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge - specs: - parslet-toml-merge (7.1.0) - toml (~> 0.3) - toml-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge - specs: - plain-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge - specs: - prism-merge (7.1.0) - prism (~> 1.6) - ruby-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge - specs: - psych-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge - specs: - rbs-merge (7.1.0) - ast-merge (= 7.1.0) - rbs (>= 3.10) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge - specs: - ruby-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge - specs: - rust-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb - specs: - smorg-rb (7.1.0) - ast-merge (= 7.1.0) - ast-merge-git (= 7.1.0) - go-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-jem (= 7.1.0) - markly-merge (= 7.1.0) - plain-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge - specs: - toml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver - specs: - tree_haver (7.1.0) - citrus (~> 3.0) - parslet (~> 2.0) - tree_sitter_language_pack (>= 1.9.0.pre.rc.40, < 2.0) version_gem (~> 1.1, >= 1.1.9) -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge - specs: - typescript-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge - specs: - yaml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge - specs: - zip-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/vendor/tree_sitter_language_pack - specs: - tree_sitter_language_pack (1.13.1) - rb_sys (>= 0.9, < 0.9.128) - sorbet-runtime (~> 0.5) - GEM remote: https://gem.coop/ specs: @@ -283,6 +29,15 @@ GEM rake (>= 10) thor (>= 0.14) ast (2.4.3) + ast-crispr (7.1.0) + ast-merge (= 7.1.0) + service_actor (~> 3.9) + version_gem (~> 1.1, >= 1.1.9) + ast-merge (7.1.0) + benchmark + token-resolver (~> 2.0, >= 2.0.4) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) backports (3.25.3) benchmark (0.5.0) bigdecimal (4.1.2) @@ -291,8 +46,6 @@ GEM thor (~> 1.0) citrus (3.0.2) cmdparse (3.0.7) - commonmarker (2.9.0-x86_64-linux) - commonmarker (2.9.0-x86_64-linux-musl) concurrent-ruby (1.3.7) date (3.5.1) debug (1.11.1) @@ -356,8 +109,6 @@ GEM kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) - kettle-drift (1.0.5) - version_gem (~> 1.1, >= 1.1.13) kettle-rb (0.1.4) kettle-soup-cover (1.1.3) simplecov (~> 0.22) @@ -386,7 +137,6 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) - markly (0.16.0) mutex_m (0.3.0) nokogiri (1.19.4-x86_64-linux-gnu) racc (~> 1.4) @@ -406,6 +156,10 @@ GEM prettyprint prettyprint (0.2.0) prism (1.9.0) + prism-merge (7.1.0) + prism (~> 1.6) + ruby-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) psych (5.4.0) date stringio @@ -515,6 +269,10 @@ GEM lint_roller (~> 1.1) rubocop (~> 1.72, >= 1.72.1) rubocop-ast (>= 1.44.0, < 2.0) + ruby-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) ruby-progressbar (1.13.0) ruby_engine (2.0.3) ruby_version (1.0.3) @@ -572,11 +330,11 @@ GEM token-resolver (2.0.4) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.13) - toml (0.3.0) - parslet (>= 1.8.0, < 3.0.0) - toml-rb (4.2.0) - citrus (~> 3.0, > 3.0) - racc (~> 1.7) + tree_haver (7.1.0) + citrus (~> 3.0) + parslet (~> 2.0) + tree_sitter_language_pack (>= 1.9.0.pre.rc.40, < 2.0) + version_gem (~> 1.1, >= 1.1.9) tsort (0.2.0) turbo_tests2 (3.2.0) parallel_tests (>= 3.3.0, < 6) @@ -618,45 +376,23 @@ PLATFORMS DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) - ast-crispr! - ast-crispr-markdown-markly! ast-crispr-ruby-prism! - ast-merge! - ast-merge-git! - ast-template! - bash-merge! benchmark (~> 0.5, >= 0.5.0) - binary-merge! bundler-audit (~> 0.9.3) - citrus-toml-merge! - commonmarker-merge! debug (>= 1.1) - dotenv-merge! erb (~> 6.0, >= 6.0.4) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.0) - go-merge! irb (~> 1.17) - json-merge! kettle-dev (~> 2.0, >= 2.2.25) - kettle-drift (~> 1.0, >= 1.0.5) - kettle-jem! kettle-soup-cover (~> 1.0, >= 1.1.3) kettle-test (~> 2.0, >= 2.0.9) kramdown (~> 2.5, >= 2.5.1) - kramdown-merge! kramdown-parser-gfm (~> 1.1) - markdown-merge! - markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) - parslet-toml-merge! - plain-merge! - prism-merge! - psych-merge! rake (~> 13.0) rbs (>= 3.0) - rbs-merge! rdoc (~> 6.11) reek (~> 6.5) require_bench (~> 1.0, >= 1.0.4) @@ -665,26 +401,18 @@ DEPENDENCIES rubocop-packaging (~> 0.6, >= 0.6.0) rubocop-rspec (~> 3.6) rubocop-ruby3_2 (~> 3.0.0) - ruby-merge! ruby-progressbar (~> 1.13) - rust-merge! - smorg-rb! standard (>= 1.50) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) - toml-merge! - tree_haver! tree_sitter_language_pack! - typescript-merge! yaml-converter (~> 0.1) - yaml-merge! yard (~> 0.9, >= 0.9.44) yard-fence (~> 0.9, >= 0.9.1) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) yard-timekeeper (~> 0.1) yard-yaml (~> 0.1, >= 0.1.2) - zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af @@ -692,23 +420,14 @@ CHECKSUMS appraisal2 (3.2.0) sha256=ccd0b767ac4060cd7af6d16747459b6990f49c39c7b4fb1f7d1146b1e97c492f ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 ast-crispr (7.1.0) - ast-crispr-markdown-markly (7.1.0) ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) - ast-merge-git (7.1.0) - ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 - bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd - binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 - citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 - commonmarker (2.9.0-x86_64-linux) sha256=8cfe92970eef585a19ddf6613224b91cab64d6029834661bda801f877c9c7f43 - commonmarker (2.9.0-x86_64-linux-musl) sha256=293921398b839f79ceaf55010e061357e34f053822c3b003cd0be6686176335e - commonmarker-merge (7.1.0) concurrent-ruby (1.3.7) sha256=4412caec3a5ea2e5fdc52076724c071a81f2c0593d83b2ac8cbb8ca63b3151b0 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 @@ -716,7 +435,6 @@ CHECKSUMS diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 docile (1.4.1) sha256=96159be799bfa73cdb721b840e9802126e4e03dfc26863db73647204c727f21e - dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -729,27 +447,19 @@ CHECKSUMS gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f - go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 - json-merge (7.1.0) kettle-dev (2.3.7) sha256=eb370113cd030d03cbe2d33b31c99858951017e5ad21a17e9ed89dc3770028ee - kettle-drift (1.0.5) sha256=07094e80140a049164142820bdd327c30fcd855bb00697a0a430600a2b5144a2 - kettle-jem (7.1.0) kettle-rb (0.1.4) sha256=9cef7ce4f7021666b7222292f29051e51eaf042e8a5db11f3f4dd72f74243fc1 kettle-soup-cover (1.1.3) sha256=a373827da22a7131d093afd32945e5b7d7a10a01ebfdded8fd2cb8230d69c8ad kettle-test (2.0.11) sha256=c710c90f7ab79d51f9452f0c09f5f90657e7a893f63583855c164d0b1b107ab2 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa - kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 - markdown-merge (7.1.0) - markly (0.16.0) sha256=6f70d79e385b1efc9e171f74c81628826259039fe6c778e03c3924c71dac5511 - markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-x86_64-linux-gnu) sha256=379fae440b28915e3f19d752ce2dcf8465ed2b2fbefd2a7ca0dd497bc981a06a nokogiri (1.19.4-x86_64-linux-musl) sha256=17dfb7c1fa194ae02fbf7c51a7afc8d278045ab3fdacfd86f91d02d7b274470b @@ -760,14 +470,11 @@ CHECKSUMS parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 - parslet-toml-merge (7.1.0) - plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 - psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a @@ -775,7 +482,6 @@ CHECKSUMS rake-compiler-dock (1.12.0) sha256=f13205c2738f3d2053afcd03491a9e4541b22a59a0bfc53fc8bc883bd8188023 rb_sys (0.9.127) sha256=e9f90df3bb0577472d26d96127d5b5774b98f44de881e7d36aeefd28d6337847 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 - rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb @@ -807,7 +513,6 @@ CHECKSUMS ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 - rust-merge (7.1.0) service_actor (3.9.4) sha256=e63b523630b9a7e62959b2a90113b08d2565b5de9c148557b281ef847c9539ce silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (0.22.0) sha256=fe2622c7834ff23b98066bb0a854284b2729a569ac659f82621fc22ef36213a5 @@ -817,7 +522,6 @@ CHECKSUMS simplecov-lcov (0.9.0) sha256=7a77a31e200a595ed4b0249493056efd0c920601f53d2ef135ca34ee796346cd simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_json_formatter (0.1.4) sha256=529418fbe8de1713ac2b2d612aa3daa56d316975d307244399fa4838c601b428 - smorg-rb (7.1.0) sorbet-runtime (0.6.13342) sha256=dbeb9892597f593ed2b29e38018912787f6c4e0c4b736d8af0d6bd3c63bde3c3 standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b @@ -831,19 +535,15 @@ CHECKSUMS timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.4) sha256=33b926958f504525bba3ed511ab66fbcbf8ef30390815e931436b30f27ffcad0 - toml (0.3.0) sha256=0a91d0f76a9036e84e44f95693b12f58d358c1df3ac8e3b5271f2056ecc6e4b9 - toml-merge (7.1.0) - toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 tree_haver (7.1.0) - tree_sitter_language_pack (1.13.1) + tree_sitter_language_pack (1.13.2) + tree_sitter_language_pack (1.13.2-x86_64-linux) tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 - typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 - yaml-merge (7.1.0) yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd @@ -851,7 +551,6 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 - zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH diff --git a/gems/ast-crispr/Gemfile b/gems/ast-crispr/Gemfile index fa7d9b939..fef55b03d 100644 --- a/gems/ast-crispr/Gemfile +++ b/gems/ast-crispr/Gemfile @@ -71,14 +71,8 @@ if direct_sibling_gems.any? && end end -# Use the released TSLP gem by default; templating can override it via VENDORED_GEMS. -vendored_gems = ENV.fetch('VENDORED_GEMS', '').split(',').map(&:strip) -tslp_declared_by_templating = - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? && - vendored_gems.include?('tree_sitter_language_pack') -unless tslp_declared_by_templating - gem 'tree_sitter_language_pack', '>= 1.13.2', '< 2.0' -end +# Use the StructuredMerge TSLP fork until the Ruby ABI platform-gem fix is released. +gem 'tree_sitter_language_pack', git: 'https://github.com/structuredmerge/tree-sitter-language-pack.git', branch: 'fix/ruby-4-platform-gem-abi', glob: 'packages/ruby/*.gemspec' # Templating (env-switched: STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local paths) eval_gemfile 'gemfiles/modular/templating.gemfile' if ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? diff --git a/gems/ast-crispr/Gemfile.lock b/gems/ast-crispr/Gemfile.lock index 0faecdb91..f1e363d99 100644 --- a/gems/ast-crispr/Gemfile.lock +++ b/gems/ast-crispr/Gemfile.lock @@ -1,3 +1,21 @@ +GIT + remote: https://github.com/structuredmerge/tree-sitter-language-pack.git + revision: e736879d00ce55b9bbfa479a5c07363bde1512e2 + branch: fix/ruby-4-platform-gem-abi + glob: packages/ruby/*.gemspec + specs: + tree_sitter_language_pack (1.13.2) + rb_sys (>= 0.9, < 0.9.128) + sorbet-runtime (~> 0.5) + tree_sitter_language_pack (1.13.2-aarch64-linux) + sorbet-runtime (~> 0.5) + tree_sitter_language_pack (1.13.2-arm64-darwin) + sorbet-runtime (~> 0.5) + tree_sitter_language_pack (1.13.2-x86_64-darwin) + sorbet-runtime (~> 0.5) + tree_sitter_language_pack (1.13.2-x86_64-linux) + sorbet-runtime (~> 0.5) + PATH remote: . specs: @@ -6,272 +24,6 @@ PATH service_actor (~> 3.9) version_gem (~> 1.1, >= 1.1.9) -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly - specs: - ast-crispr-markdown-markly (7.1.0) - ast-crispr (= 7.1.0) - markly-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism - specs: - ast-crispr-ruby-prism (7.1.0) - ast-crispr (= 7.1.0) - prism-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git - specs: - ast-merge-git (7.1.0) - ast-merge (= 7.1.0) - json-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge - specs: - ast-merge (7.1.0) - benchmark - token-resolver (~> 2.0, >= 2.0.4) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template - specs: - ast-template (7.1.0) - ast-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge - specs: - bash-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge - specs: - binary-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge - specs: - citrus-toml-merge (7.1.0) - toml-merge (= 7.1.0) - toml-rb (~> 4.1) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge - specs: - commonmarker-merge (7.1.0) - commonmarker (~> 2.2) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge - specs: - dotenv-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge - specs: - go-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge - specs: - json-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem - specs: - kettle-jem (7.1.0) - addressable (>= 2.8, < 3) - ast-crispr-markdown-markly (= 7.1.0) - ast-crispr-ruby-prism (= 7.1.0) - ast-merge (= 7.1.0) - bash-merge (= 7.1.0) - citrus-toml-merge (= 7.1.0) - commonmarker-merge (= 7.1.0) - dotenv-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-dev (~> 2.3, >= 2.3.5) - kettle-rb (~> 0.1, >= 0.1.4) - kramdown-merge (= 7.1.0) - markdown-merge (= 7.1.0) - markly-merge (= 7.1.0) - prism-merge (= 7.1.0) - psych-merge (= 7.1.0) - rbs (>= 3.10) - rbs-merge (= 7.1.0) - ruby-merge (= 7.1.0) - token-resolver (~> 2.0, >= 2.0.4) - toml-merge (= 7.1.0) - toml-rb (~> 4.2) - tree_haver (= 7.1.0) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge - specs: - kramdown-merge (7.1.0) - kramdown (~> 2.5) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge - specs: - markdown-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge - specs: - markly-merge (7.1.0) - markdown-merge (= 7.1.0) - markly (~> 0.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge - specs: - parslet-toml-merge (7.1.0) - toml (~> 0.3) - toml-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge - specs: - plain-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge - specs: - prism-merge (7.1.0) - prism (~> 1.6) - ruby-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge - specs: - psych-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge - specs: - rbs-merge (7.1.0) - ast-merge (= 7.1.0) - rbs (>= 3.10) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge - specs: - ruby-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge - specs: - rust-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb - specs: - smorg-rb (7.1.0) - ast-merge (= 7.1.0) - ast-merge-git (= 7.1.0) - go-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-jem (= 7.1.0) - markly-merge (= 7.1.0) - plain-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge - specs: - toml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver - specs: - tree_haver (7.1.0) - citrus (~> 3.0) - parslet (~> 2.0) - tree_sitter_language_pack (>= 1.9.0.pre.rc.40, < 2.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge - specs: - typescript-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge - specs: - yaml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge - specs: - zip-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/vendor/tree_sitter_language_pack - specs: - tree_sitter_language_pack (1.13.1) - rb_sys (>= 0.9, < 0.9.128) - sorbet-runtime (~> 0.5) - GEM remote: https://gem.coop/ specs: @@ -283,6 +35,11 @@ GEM rake (>= 10) thor (>= 0.14) ast (2.4.3) + ast-merge (7.1.0) + benchmark + token-resolver (~> 2.0, >= 2.0.4) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) backports (3.25.3) benchmark (0.5.0) bigdecimal (4.1.2) @@ -291,12 +48,6 @@ GEM thor (~> 1.0) citrus (3.0.2) cmdparse (3.0.7) - commonmarker (2.9.0-aarch64-linux) - commonmarker (2.9.0-aarch64-linux-musl) - commonmarker (2.9.0-arm64-darwin) - commonmarker (2.9.0-x86_64-darwin) - commonmarker (2.9.0-x86_64-linux) - commonmarker (2.9.0-x86_64-linux-musl) concurrent-ruby (1.3.8) date (3.5.1) debug (1.11.1) @@ -360,8 +111,6 @@ GEM kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) - kettle-drift (1.0.5) - version_gem (~> 1.1, >= 1.1.13) kettle-rb (0.1.4) kettle-soup-cover (1.1.3) simplecov (~> 0.22) @@ -390,7 +139,6 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) - markly (0.16.0) mutex_m (0.3.0) nokogiri (1.19.4-aarch64-linux-gnu) racc (~> 1.4) @@ -584,11 +332,11 @@ GEM token-resolver (2.0.4) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.13) - toml (0.3.0) - parslet (>= 1.8.0, < 3.0.0) - toml-rb (4.2.0) - citrus (~> 3.0, > 3.0) - racc (~> 1.7) + tree_haver (7.1.0) + citrus (~> 3.0) + parslet (~> 2.0) + tree_sitter_language_pack (>= 1.9.0.pre.rc.40, < 2.0) + version_gem (~> 1.1, >= 1.1.9) tsort (0.2.0) turbo_tests2 (3.2.0) parallel_tests (>= 3.3.0, < 6) @@ -636,44 +384,22 @@ DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) ast-crispr! - ast-crispr-markdown-markly! - ast-crispr-ruby-prism! - ast-merge! - ast-merge-git! - ast-template! - bash-merge! benchmark (~> 0.5, >= 0.5.0) - binary-merge! bundler-audit (~> 0.9.3) - citrus-toml-merge! - commonmarker-merge! debug (>= 1.1) - dotenv-merge! erb (~> 6.0, >= 6.0.4) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.0) - go-merge! irb (~> 1.17) - json-merge! kettle-dev (~> 2.0, >= 2.2.25) - kettle-drift (~> 1.0, >= 1.0.5) - kettle-jem! kettle-soup-cover (~> 1.0, >= 1.1.3) kettle-test (~> 2.0, >= 2.0.9) kramdown (~> 2.5, >= 2.5.1) - kramdown-merge! kramdown-parser-gfm (~> 1.1) - markdown-merge! - markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) - parslet-toml-merge! - plain-merge! - prism-merge! - psych-merge! rake (~> 13.0) rbs (>= 3.0) - rbs-merge! rdoc (~> 6.11) reek (~> 6.5) require_bench (~> 1.0, >= 1.0.4) @@ -682,26 +408,18 @@ DEPENDENCIES rubocop-packaging (~> 0.6, >= 0.6.0) rubocop-rspec (~> 3.6) rubocop-ruby3_2 (~> 3.0.0) - ruby-merge! ruby-progressbar (~> 1.13) - rust-merge! - smorg-rb! standard (>= 1.50) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) - toml-merge! - tree_haver! tree_sitter_language_pack! - typescript-merge! yaml-converter (~> 0.1) - yaml-merge! yard (~> 0.9, >= 0.9.44) yard-fence (~> 0.9, >= 0.9.1) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) yard-timekeeper (~> 0.1) yard-yaml (~> 0.1, >= 0.1.2) - zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af @@ -709,27 +427,13 @@ CHECKSUMS appraisal2 (3.2.0) sha256=ccd0b767ac4060cd7af6d16747459b6990f49c39c7b4fb1f7d1146b1e97c492f ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 ast-crispr (7.1.0) - ast-crispr-markdown-markly (7.1.0) - ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) - ast-merge-git (7.1.0) - ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 - bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd - binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 - citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 - commonmarker (2.9.0-aarch64-linux) sha256=e2b4aadb9a2cfa4e206582641ce3a49465549ac1ed4c289fdd63b78d8f24579c - commonmarker (2.9.0-aarch64-linux-musl) sha256=1cf4d2821f2a7e64945f1ed7c4eeced586fdb27ea7fe7337788802cf8f57cfca - commonmarker (2.9.0-arm64-darwin) sha256=1748dbfa4f5813b0d2a14bb4bbfa65a4ec293aa1c825016d60029ee0e132b046 - commonmarker (2.9.0-x86_64-darwin) sha256=0a9914ccfd2f5d2a59c7bd0dda4fe90eb084cf513b477e499008e09ec9d6edd6 - commonmarker (2.9.0-x86_64-linux) sha256=8cfe92970eef585a19ddf6613224b91cab64d6029834661bda801f877c9c7f43 - commonmarker (2.9.0-x86_64-linux-musl) sha256=293921398b839f79ceaf55010e061357e34f053822c3b003cd0be6686176335e - commonmarker-merge (7.1.0) concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 @@ -737,7 +441,6 @@ CHECKSUMS diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 docile (1.4.1) sha256=96159be799bfa73cdb721b840e9802126e4e03dfc26863db73647204c727f21e - dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -750,27 +453,19 @@ CHECKSUMS gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f - go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 - json-merge (7.1.0) kettle-dev (2.3.7) sha256=eb370113cd030d03cbe2d33b31c99858951017e5ad21a17e9ed89dc3770028ee - kettle-drift (1.0.5) sha256=07094e80140a049164142820bdd327c30fcd855bb00697a0a430600a2b5144a2 - kettle-jem (7.1.0) kettle-rb (0.1.4) sha256=9cef7ce4f7021666b7222292f29051e51eaf042e8a5db11f3f4dd72f74243fc1 kettle-soup-cover (1.1.3) sha256=a373827da22a7131d093afd32945e5b7d7a10a01ebfdded8fd2cb8230d69c8ad kettle-test (2.0.11) sha256=c710c90f7ab79d51f9452f0c09f5f90657e7a893f63583855c164d0b1b107ab2 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa - kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 - markdown-merge (7.1.0) - markly (0.16.0) sha256=6f70d79e385b1efc9e171f74c81628826259039fe6c778e03c3924c71dac5511 - markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-aarch64-linux-gnu) sha256=1269fb644a6de405057a53dd5c762b1209b43ca7424f839454d3dbc677c31a8f nokogiri (1.19.4-aarch64-linux-musl) sha256=35c65b9ce72b3bb03207bdbe7067915019dc18c1b9b59139684bd6690fdd01af @@ -785,14 +480,10 @@ CHECKSUMS parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 - parslet-toml-merge (7.1.0) - plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 - prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 - psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a @@ -800,7 +491,6 @@ CHECKSUMS rake-compiler-dock (1.12.0) sha256=f13205c2738f3d2053afcd03491a9e4541b22a59a0bfc53fc8bc883bd8188023 rb_sys (0.9.127) sha256=e9f90df3bb0577472d26d96127d5b5774b98f44de881e7d36aeefd28d6337847 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 - rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb @@ -828,11 +518,9 @@ CHECKSUMS rubocop-rspec (3.10.2) sha256=0b3e2ecc592cd10ecbf0095bb58d1e357905276e069643523cc19eb7495f65e2 rubocop-ruby3_2 (3.0.7) sha256=f53dd6d286fb05186214fc6ec116783e7f837030918e8931c05de773e98f8466 rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 - ruby-merge (7.1.0) ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 - rust-merge (7.1.0) service_actor (3.9.4) sha256=e63b523630b9a7e62959b2a90113b08d2565b5de9c148557b281ef847c9539ce silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (0.22.0) sha256=fe2622c7834ff23b98066bb0a854284b2729a569ac659f82621fc22ef36213a5 @@ -842,7 +530,6 @@ CHECKSUMS simplecov-lcov (0.9.0) sha256=7a77a31e200a595ed4b0249493056efd0c920601f53d2ef135ca34ee796346cd simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_json_formatter (0.1.4) sha256=529418fbe8de1713ac2b2d612aa3daa56d316975d307244399fa4838c601b428 - smorg-rb (7.1.0) sorbet-runtime (0.6.13342) sha256=dbeb9892597f593ed2b29e38018912787f6c4e0c4b736d8af0d6bd3c63bde3c3 standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b @@ -856,19 +543,18 @@ CHECKSUMS timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.4) sha256=33b926958f504525bba3ed511ab66fbcbf8ef30390815e931436b30f27ffcad0 - toml (0.3.0) sha256=0a91d0f76a9036e84e44f95693b12f58d358c1df3ac8e3b5271f2056ecc6e4b9 - toml-merge (7.1.0) - toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 tree_haver (7.1.0) - tree_sitter_language_pack (1.13.1) + tree_sitter_language_pack (1.13.2) + tree_sitter_language_pack (1.13.2-aarch64-linux) + tree_sitter_language_pack (1.13.2-arm64-darwin) + tree_sitter_language_pack (1.13.2-x86_64-darwin) + tree_sitter_language_pack (1.13.2-x86_64-linux) tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 - typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 - yaml-merge (7.1.0) yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd @@ -876,7 +562,6 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 - zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH diff --git a/gems/ast-merge-git/Gemfile b/gems/ast-merge-git/Gemfile index 16b62fe2e..34e13c867 100644 --- a/gems/ast-merge-git/Gemfile +++ b/gems/ast-merge-git/Gemfile @@ -72,14 +72,8 @@ if direct_sibling_gems.any? && end end -# Use the released TSLP gem by default; templating can override it via VENDORED_GEMS. -vendored_gems = ENV.fetch('VENDORED_GEMS', '').split(',').map(&:strip) -tslp_declared_by_templating = - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? && - vendored_gems.include?('tree_sitter_language_pack') -unless tslp_declared_by_templating - gem 'tree_sitter_language_pack', '>= 1.13.2', '< 2.0' -end +# Use the StructuredMerge TSLP fork until the Ruby ABI platform-gem fix is released. +gem 'tree_sitter_language_pack', git: 'https://github.com/structuredmerge/tree-sitter-language-pack.git', branch: 'fix/ruby-4-platform-gem-abi', glob: 'packages/ruby/*.gemspec' # Templating (env-switched: STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local paths) eval_gemfile 'gemfiles/modular/templating.gemfile' if ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? diff --git a/gems/ast-merge-git/Gemfile.lock b/gems/ast-merge-git/Gemfile.lock index d2581f895..aaa75fc40 100644 --- a/gems/ast-merge-git/Gemfile.lock +++ b/gems/ast-merge-git/Gemfile.lock @@ -1,277 +1,29 @@ -PATH - remote: . - specs: - ast-merge-git (7.1.0) - ast-merge (= 7.1.0) - json-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly - specs: - ast-crispr-markdown-markly (7.1.0) - ast-crispr (= 7.1.0) - markly-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism - specs: - ast-crispr-ruby-prism (7.1.0) - ast-crispr (= 7.1.0) - prism-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr - specs: - ast-crispr (7.1.0) - ast-merge (= 7.1.0) - service_actor (~> 3.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge - specs: - ast-merge (7.1.0) - benchmark - token-resolver (~> 2.0, >= 2.0.4) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template - specs: - ast-template (7.1.0) - ast-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge - specs: - bash-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge - specs: - binary-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge - specs: - citrus-toml-merge (7.1.0) - toml-merge (= 7.1.0) - toml-rb (~> 4.1) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge - specs: - commonmarker-merge (7.1.0) - commonmarker (~> 2.2) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge - specs: - dotenv-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge - specs: - go-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge - specs: - json-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem - specs: - kettle-jem (7.1.0) - addressable (>= 2.8, < 3) - ast-crispr-markdown-markly (= 7.1.0) - ast-crispr-ruby-prism (= 7.1.0) - ast-merge (= 7.1.0) - bash-merge (= 7.1.0) - citrus-toml-merge (= 7.1.0) - commonmarker-merge (= 7.1.0) - dotenv-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-dev (~> 2.3, >= 2.3.5) - kettle-rb (~> 0.1, >= 0.1.4) - kramdown-merge (= 7.1.0) - markdown-merge (= 7.1.0) - markly-merge (= 7.1.0) - prism-merge (= 7.1.0) - psych-merge (= 7.1.0) - rbs (>= 3.10) - rbs-merge (= 7.1.0) - ruby-merge (= 7.1.0) - token-resolver (~> 2.0, >= 2.0.4) - toml-merge (= 7.1.0) - toml-rb (~> 4.2) - tree_haver (= 7.1.0) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge - specs: - kramdown-merge (7.1.0) - kramdown (~> 2.5) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge - specs: - markdown-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge - specs: - markly-merge (7.1.0) - markdown-merge (= 7.1.0) - markly (~> 0.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge +GIT + remote: https://github.com/structuredmerge/tree-sitter-language-pack.git + revision: e736879d00ce55b9bbfa479a5c07363bde1512e2 + branch: fix/ruby-4-platform-gem-abi + glob: packages/ruby/*.gemspec specs: - parslet-toml-merge (7.1.0) - toml (~> 0.3) - toml-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge - specs: - plain-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge - specs: - prism-merge (7.1.0) - prism (~> 1.6) - ruby-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge - specs: - psych-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge - specs: - rbs-merge (7.1.0) - ast-merge (= 7.1.0) - rbs (>= 3.10) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge - specs: - ruby-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge - specs: - rust-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) + tree_sitter_language_pack (1.13.2) + rb_sys (>= 0.9, < 0.9.128) + sorbet-runtime (~> 0.5) + tree_sitter_language_pack (1.13.2-aarch64-linux) + sorbet-runtime (~> 0.5) + tree_sitter_language_pack (1.13.2-arm64-darwin) + sorbet-runtime (~> 0.5) + tree_sitter_language_pack (1.13.2-x86_64-darwin) + sorbet-runtime (~> 0.5) + tree_sitter_language_pack (1.13.2-x86_64-linux) + sorbet-runtime (~> 0.5) PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb + remote: . specs: - smorg-rb (7.1.0) + ast-merge-git (7.1.0) ast-merge (= 7.1.0) - ast-merge-git (= 7.1.0) - go-merge (= 7.1.0) json-merge (= 7.1.0) - kettle-jem (= 7.1.0) - markly-merge (= 7.1.0) - plain-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge - specs: - toml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver - specs: - tree_haver (7.1.0) - citrus (~> 3.0) - parslet (~> 2.0) - tree_sitter_language_pack (>= 1.9.0.pre.rc.40, < 2.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge - specs: - typescript-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge - specs: - yaml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge - specs: - zip-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/vendor/tree_sitter_language_pack - specs: - tree_sitter_language_pack (1.13.1) - rb_sys (>= 0.9, < 0.9.128) - sorbet-runtime (~> 0.5) - GEM remote: https://gem.coop/ specs: @@ -283,6 +35,11 @@ GEM rake (>= 10) thor (>= 0.14) ast (2.4.3) + ast-merge (7.1.0) + benchmark + token-resolver (~> 2.0, >= 2.0.4) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) backports (3.25.3) benchmark (0.5.0) bigdecimal (4.1.2) @@ -291,12 +48,6 @@ GEM thor (~> 1.0) citrus (3.0.2) cmdparse (3.0.7) - commonmarker (2.9.0-aarch64-linux) - commonmarker (2.9.0-aarch64-linux-musl) - commonmarker (2.9.0-arm64-darwin) - commonmarker (2.9.0-x86_64-darwin) - commonmarker (2.9.0-x86_64-linux) - commonmarker (2.9.0-x86_64-linux-musl) concurrent-ruby (1.3.8) date (3.5.1) debug (1.11.1) @@ -355,13 +106,15 @@ GEM rdoc (>= 4.0.0) reline (>= 0.4.2) json (2.21.1) + json-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) kettle-dev (2.3.7) emoji_regex (>= 15.0) kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) - kettle-drift (1.0.5) - version_gem (~> 1.1, >= 1.1.13) kettle-rb (0.1.4) kettle-soup-cover (1.1.3) simplecov (~> 0.22) @@ -390,7 +143,6 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) - markly (0.16.0) mutex_m (0.3.0) nokogiri (1.19.4-aarch64-linux-gnu) racc (~> 1.4) @@ -530,8 +282,6 @@ GEM ruby-progressbar (1.13.0) ruby_engine (2.0.3) ruby_version (1.0.3) - service_actor (3.9.4) - zeitwerk (>= 1.0) silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) @@ -584,11 +334,11 @@ GEM token-resolver (2.0.4) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.13) - toml (0.3.0) - parslet (>= 1.8.0, < 3.0.0) - toml-rb (4.2.0) - citrus (~> 3.0, > 3.0) - racc (~> 1.7) + tree_haver (7.1.0) + citrus (~> 3.0) + parslet (~> 2.0) + tree_sitter_language_pack (>= 1.9.0.pre.rc.40, < 2.0) + version_gem (~> 1.1, >= 1.1.9) tsort (0.2.0) turbo_tests2 (3.2.0) parallel_tests (>= 3.3.0, < 6) @@ -635,45 +385,23 @@ PLATFORMS DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) - ast-crispr! - ast-crispr-markdown-markly! - ast-crispr-ruby-prism! - ast-merge! ast-merge-git! - ast-template! - bash-merge! benchmark (~> 0.5, >= 0.5.0) - binary-merge! bundler-audit (~> 0.9.3) - citrus-toml-merge! - commonmarker-merge! debug (>= 1.1) - dotenv-merge! erb (~> 6.0, >= 6.0.4) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.0) - go-merge! irb (~> 1.17) - json-merge! kettle-dev (~> 2.0, >= 2.2.25) - kettle-drift (~> 1.0, >= 1.0.5) - kettle-jem! kettle-soup-cover (~> 1.0, >= 1.1.3) kettle-test (~> 2.0, >= 2.0.9) kramdown (~> 2.5, >= 2.5.1) - kramdown-merge! kramdown-parser-gfm (~> 1.1) - markdown-merge! - markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) - parslet-toml-merge! - plain-merge! - prism-merge! - psych-merge! rake (~> 13.0) rbs (>= 3.0) - rbs-merge! rdoc (~> 6.11) reek (~> 6.5) require_bench (~> 1.0, >= 1.0.4) @@ -682,54 +410,32 @@ DEPENDENCIES rubocop-packaging (~> 0.6, >= 0.6.0) rubocop-rspec (~> 3.6) rubocop-ruby3_2 (~> 3.0.0) - ruby-merge! ruby-progressbar (~> 1.13) - rust-merge! - smorg-rb! standard (>= 1.50) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) - toml-merge! - tree_haver! tree_sitter_language_pack! - typescript-merge! yaml-converter (~> 0.1) - yaml-merge! yard (~> 0.9, >= 0.9.44) yard-fence (~> 0.9, >= 0.9.1) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) yard-timekeeper (~> 0.1) yard-yaml (~> 0.1, >= 0.1.2) - zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af ansi (1.6.0) sha256=ac9ea0c0ea8d32fb4e271348e609963ac78882f34b73836c2a02b3622e666658 appraisal2 (3.2.0) sha256=ccd0b767ac4060cd7af6d16747459b6990f49c39c7b4fb1f7d1146b1e97c492f ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 - ast-crispr (7.1.0) - ast-crispr-markdown-markly (7.1.0) - ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) ast-merge-git (7.1.0) - ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 - bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd - binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 - citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 - commonmarker (2.9.0-aarch64-linux) sha256=e2b4aadb9a2cfa4e206582641ce3a49465549ac1ed4c289fdd63b78d8f24579c - commonmarker (2.9.0-aarch64-linux-musl) sha256=1cf4d2821f2a7e64945f1ed7c4eeced586fdb27ea7fe7337788802cf8f57cfca - commonmarker (2.9.0-arm64-darwin) sha256=1748dbfa4f5813b0d2a14bb4bbfa65a4ec293aa1c825016d60029ee0e132b046 - commonmarker (2.9.0-x86_64-darwin) sha256=0a9914ccfd2f5d2a59c7bd0dda4fe90eb084cf513b477e499008e09ec9d6edd6 - commonmarker (2.9.0-x86_64-linux) sha256=8cfe92970eef585a19ddf6613224b91cab64d6029834661bda801f877c9c7f43 - commonmarker (2.9.0-x86_64-linux-musl) sha256=293921398b839f79ceaf55010e061357e34f053822c3b003cd0be6686176335e - commonmarker-merge (7.1.0) concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 @@ -737,7 +443,6 @@ CHECKSUMS diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 docile (1.4.1) sha256=96159be799bfa73cdb721b840e9802126e4e03dfc26863db73647204c727f21e - dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -750,27 +455,20 @@ CHECKSUMS gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f - go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 json-merge (7.1.0) kettle-dev (2.3.7) sha256=eb370113cd030d03cbe2d33b31c99858951017e5ad21a17e9ed89dc3770028ee - kettle-drift (1.0.5) sha256=07094e80140a049164142820bdd327c30fcd855bb00697a0a430600a2b5144a2 - kettle-jem (7.1.0) kettle-rb (0.1.4) sha256=9cef7ce4f7021666b7222292f29051e51eaf042e8a5db11f3f4dd72f74243fc1 kettle-soup-cover (1.1.3) sha256=a373827da22a7131d093afd32945e5b7d7a10a01ebfdded8fd2cb8230d69c8ad kettle-test (2.0.11) sha256=c710c90f7ab79d51f9452f0c09f5f90657e7a893f63583855c164d0b1b107ab2 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa - kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 - markdown-merge (7.1.0) - markly (0.16.0) sha256=6f70d79e385b1efc9e171f74c81628826259039fe6c778e03c3924c71dac5511 - markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-aarch64-linux-gnu) sha256=1269fb644a6de405057a53dd5c762b1209b43ca7424f839454d3dbc677c31a8f nokogiri (1.19.4-aarch64-linux-musl) sha256=35c65b9ce72b3bb03207bdbe7067915019dc18c1b9b59139684bd6690fdd01af @@ -785,14 +483,10 @@ CHECKSUMS parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 - parslet-toml-merge (7.1.0) - plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 - prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 - psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a @@ -800,7 +494,6 @@ CHECKSUMS rake-compiler-dock (1.12.0) sha256=f13205c2738f3d2053afcd03491a9e4541b22a59a0bfc53fc8bc883bd8188023 rb_sys (0.9.127) sha256=e9f90df3bb0577472d26d96127d5b5774b98f44de881e7d36aeefd28d6337847 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 - rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb @@ -828,12 +521,9 @@ CHECKSUMS rubocop-rspec (3.10.2) sha256=0b3e2ecc592cd10ecbf0095bb58d1e357905276e069643523cc19eb7495f65e2 rubocop-ruby3_2 (3.0.7) sha256=f53dd6d286fb05186214fc6ec116783e7f837030918e8931c05de773e98f8466 rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 - ruby-merge (7.1.0) ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 - rust-merge (7.1.0) - service_actor (3.9.4) sha256=e63b523630b9a7e62959b2a90113b08d2565b5de9c148557b281ef847c9539ce silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (0.22.0) sha256=fe2622c7834ff23b98066bb0a854284b2729a569ac659f82621fc22ef36213a5 simplecov-cobertura (3.2.0) sha256=70d702658677fcb20e5aceb6915ccf8bc62ff2ccd38b62b3ad5c9db5c0888740 @@ -842,7 +532,6 @@ CHECKSUMS simplecov-lcov (0.9.0) sha256=7a77a31e200a595ed4b0249493056efd0c920601f53d2ef135ca34ee796346cd simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_json_formatter (0.1.4) sha256=529418fbe8de1713ac2b2d612aa3daa56d316975d307244399fa4838c601b428 - smorg-rb (7.1.0) sorbet-runtime (0.6.13342) sha256=dbeb9892597f593ed2b29e38018912787f6c4e0c4b736d8af0d6bd3c63bde3c3 standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b @@ -856,19 +545,18 @@ CHECKSUMS timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.4) sha256=33b926958f504525bba3ed511ab66fbcbf8ef30390815e931436b30f27ffcad0 - toml (0.3.0) sha256=0a91d0f76a9036e84e44f95693b12f58d358c1df3ac8e3b5271f2056ecc6e4b9 - toml-merge (7.1.0) - toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 tree_haver (7.1.0) - tree_sitter_language_pack (1.13.1) + tree_sitter_language_pack (1.13.2) + tree_sitter_language_pack (1.13.2-aarch64-linux) + tree_sitter_language_pack (1.13.2-arm64-darwin) + tree_sitter_language_pack (1.13.2-x86_64-darwin) + tree_sitter_language_pack (1.13.2-x86_64-linux) tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 - typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 - yaml-merge (7.1.0) yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd @@ -876,7 +564,6 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 - zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH diff --git a/gems/ast-merge/Gemfile b/gems/ast-merge/Gemfile index 70be20521..e8dbd2992 100644 --- a/gems/ast-merge/Gemfile +++ b/gems/ast-merge/Gemfile @@ -71,14 +71,8 @@ if direct_sibling_gems.any? && end end -# Use the released TSLP gem by default; templating can override it via VENDORED_GEMS. -vendored_gems = ENV.fetch('VENDORED_GEMS', '').split(',').map(&:strip) -tslp_declared_by_templating = - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? && - vendored_gems.include?('tree_sitter_language_pack') -unless tslp_declared_by_templating - gem 'tree_sitter_language_pack', '>= 1.13.2', '< 2.0' -end +# Use the StructuredMerge TSLP fork until the Ruby ABI platform-gem fix is released. +gem 'tree_sitter_language_pack', git: 'https://github.com/structuredmerge/tree-sitter-language-pack.git', branch: 'fix/ruby-4-platform-gem-abi', glob: 'packages/ruby/*.gemspec' # Templating (env-switched: STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local paths) eval_gemfile 'gemfiles/modular/templating.gemfile' if ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? diff --git a/gems/ast-merge/Gemfile.lock b/gems/ast-merge/Gemfile.lock index 341f8fbd2..50df5bf84 100644 --- a/gems/ast-merge/Gemfile.lock +++ b/gems/ast-merge/Gemfile.lock @@ -1,3 +1,21 @@ +GIT + remote: https://github.com/structuredmerge/tree-sitter-language-pack.git + revision: e736879d00ce55b9bbfa479a5c07363bde1512e2 + branch: fix/ruby-4-platform-gem-abi + glob: packages/ruby/*.gemspec + specs: + tree_sitter_language_pack (1.13.2) + rb_sys (>= 0.9, < 0.9.128) + sorbet-runtime (~> 0.5) + tree_sitter_language_pack (1.13.2-aarch64-linux) + sorbet-runtime (~> 0.5) + tree_sitter_language_pack (1.13.2-arm64-darwin) + sorbet-runtime (~> 0.5) + tree_sitter_language_pack (1.13.2-x86_64-darwin) + sorbet-runtime (~> 0.5) + tree_sitter_language_pack (1.13.2-x86_64-linux) + sorbet-runtime (~> 0.5) + PATH remote: . specs: @@ -7,271 +25,6 @@ PATH tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly - specs: - ast-crispr-markdown-markly (7.1.0) - ast-crispr (= 7.1.0) - markly-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism - specs: - ast-crispr-ruby-prism (7.1.0) - ast-crispr (= 7.1.0) - prism-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr - specs: - ast-crispr (7.1.0) - ast-merge (= 7.1.0) - service_actor (~> 3.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git - specs: - ast-merge-git (7.1.0) - ast-merge (= 7.1.0) - json-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template - specs: - ast-template (7.1.0) - ast-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge - specs: - bash-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge - specs: - binary-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge - specs: - citrus-toml-merge (7.1.0) - toml-merge (= 7.1.0) - toml-rb (~> 4.1) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge - specs: - commonmarker-merge (7.1.0) - commonmarker (~> 2.2) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge - specs: - dotenv-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge - specs: - go-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge - specs: - json-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem - specs: - kettle-jem (7.1.0) - addressable (>= 2.8, < 3) - ast-crispr-markdown-markly (= 7.1.0) - ast-crispr-ruby-prism (= 7.1.0) - ast-merge (= 7.1.0) - bash-merge (= 7.1.0) - citrus-toml-merge (= 7.1.0) - commonmarker-merge (= 7.1.0) - dotenv-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-dev (~> 2.3, >= 2.3.5) - kettle-rb (~> 0.1, >= 0.1.4) - kramdown-merge (= 7.1.0) - markdown-merge (= 7.1.0) - markly-merge (= 7.1.0) - prism-merge (= 7.1.0) - psych-merge (= 7.1.0) - rbs (>= 3.10) - rbs-merge (= 7.1.0) - ruby-merge (= 7.1.0) - token-resolver (~> 2.0, >= 2.0.4) - toml-merge (= 7.1.0) - toml-rb (~> 4.2) - tree_haver (= 7.1.0) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge - specs: - kramdown-merge (7.1.0) - kramdown (~> 2.5) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge - specs: - markdown-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge - specs: - markly-merge (7.1.0) - markdown-merge (= 7.1.0) - markly (~> 0.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge - specs: - parslet-toml-merge (7.1.0) - toml (~> 0.3) - toml-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge - specs: - plain-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge - specs: - prism-merge (7.1.0) - prism (~> 1.6) - ruby-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge - specs: - psych-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge - specs: - rbs-merge (7.1.0) - ast-merge (= 7.1.0) - rbs (>= 3.10) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge - specs: - ruby-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge - specs: - rust-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb - specs: - smorg-rb (7.1.0) - ast-merge (= 7.1.0) - ast-merge-git (= 7.1.0) - go-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-jem (= 7.1.0) - markly-merge (= 7.1.0) - plain-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge - specs: - toml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver - specs: - tree_haver (7.1.0) - citrus (~> 3.0) - parslet (~> 2.0) - tree_sitter_language_pack (>= 1.9.0.pre.rc.40, < 2.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge - specs: - typescript-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge - specs: - yaml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge - specs: - zip-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/vendor/tree_sitter_language_pack - specs: - tree_sitter_language_pack (1.13.1) - rb_sys (>= 0.9, < 0.9.128) - sorbet-runtime (~> 0.5) - GEM remote: https://gem.coop/ specs: @@ -291,12 +44,6 @@ GEM thor (~> 1.0) citrus (3.0.2) cmdparse (3.0.7) - commonmarker (2.9.0-aarch64-linux) - commonmarker (2.9.0-aarch64-linux-musl) - commonmarker (2.9.0-arm64-darwin) - commonmarker (2.9.0-x86_64-darwin) - commonmarker (2.9.0-x86_64-linux) - commonmarker (2.9.0-x86_64-linux-musl) concurrent-ruby (1.3.8) date (3.5.1) debug (1.11.1) @@ -360,8 +107,6 @@ GEM kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) - kettle-drift (1.0.5) - version_gem (~> 1.1, >= 1.1.13) kettle-rb (0.1.4) kettle-soup-cover (1.1.3) simplecov (~> 0.22) @@ -390,7 +135,6 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) - markly (0.16.0) mutex_m (0.3.0) nokogiri (1.19.4-aarch64-linux-gnu) racc (~> 1.4) @@ -530,8 +274,6 @@ GEM ruby-progressbar (1.13.0) ruby_engine (2.0.3) ruby_version (1.0.3) - service_actor (3.9.4) - zeitwerk (>= 1.0) silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) @@ -584,11 +326,11 @@ GEM token-resolver (2.0.4) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.13) - toml (0.3.0) - parslet (>= 1.8.0, < 3.0.0) - toml-rb (4.2.0) - citrus (~> 3.0, > 3.0) - racc (~> 1.7) + tree_haver (7.1.0) + citrus (~> 3.0) + parslet (~> 2.0) + tree_sitter_language_pack (>= 1.9.0.pre.rc.40, < 2.0) + version_gem (~> 1.1, >= 1.1.9) tsort (0.2.0) turbo_tests2 (3.2.0) parallel_tests (>= 3.3.0, < 6) @@ -635,45 +377,23 @@ PLATFORMS DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) - ast-crispr! - ast-crispr-markdown-markly! - ast-crispr-ruby-prism! ast-merge! - ast-merge-git! - ast-template! - bash-merge! benchmark (~> 0.5, >= 0.5.0) - binary-merge! bundler-audit (~> 0.9.3) - citrus-toml-merge! - commonmarker-merge! debug (>= 1.1) - dotenv-merge! erb (~> 6.0, >= 6.0.4) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.0) - go-merge! irb (~> 1.17) - json-merge! kettle-dev (~> 2.0, >= 2.2.25) - kettle-drift (~> 1.0, >= 1.0.5) - kettle-jem! kettle-soup-cover (~> 1.0, >= 1.1.3) kettle-test (~> 2.0, >= 2.0.9) kramdown (~> 2.5, >= 2.5.1) - kramdown-merge! kramdown-parser-gfm (~> 1.1) - markdown-merge! - markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) - parslet-toml-merge! - plain-merge! - prism-merge! - psych-merge! rake (~> 13.0) rbs (>= 3.0) - rbs-merge! rdoc (~> 6.11) reek (~> 6.5) require_bench (~> 1.0, >= 1.0.4) @@ -682,54 +402,31 @@ DEPENDENCIES rubocop-packaging (~> 0.6, >= 0.6.0) rubocop-rspec (~> 3.6) rubocop-ruby3_2 (~> 3.0.0) - ruby-merge! ruby-progressbar (~> 1.13) - rust-merge! - smorg-rb! standard (>= 1.50) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) - toml-merge! - tree_haver! tree_sitter_language_pack! - typescript-merge! yaml-converter (~> 0.1) - yaml-merge! yard (~> 0.9, >= 0.9.44) yard-fence (~> 0.9, >= 0.9.1) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) yard-timekeeper (~> 0.1) yard-yaml (~> 0.1, >= 0.1.2) - zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af ansi (1.6.0) sha256=ac9ea0c0ea8d32fb4e271348e609963ac78882f34b73836c2a02b3622e666658 appraisal2 (3.2.0) sha256=ccd0b767ac4060cd7af6d16747459b6990f49c39c7b4fb1f7d1146b1e97c492f ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 - ast-crispr (7.1.0) - ast-crispr-markdown-markly (7.1.0) - ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) - ast-merge-git (7.1.0) - ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 - bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd - binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 - citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 - commonmarker (2.9.0-aarch64-linux) sha256=e2b4aadb9a2cfa4e206582641ce3a49465549ac1ed4c289fdd63b78d8f24579c - commonmarker (2.9.0-aarch64-linux-musl) sha256=1cf4d2821f2a7e64945f1ed7c4eeced586fdb27ea7fe7337788802cf8f57cfca - commonmarker (2.9.0-arm64-darwin) sha256=1748dbfa4f5813b0d2a14bb4bbfa65a4ec293aa1c825016d60029ee0e132b046 - commonmarker (2.9.0-x86_64-darwin) sha256=0a9914ccfd2f5d2a59c7bd0dda4fe90eb084cf513b477e499008e09ec9d6edd6 - commonmarker (2.9.0-x86_64-linux) sha256=8cfe92970eef585a19ddf6613224b91cab64d6029834661bda801f877c9c7f43 - commonmarker (2.9.0-x86_64-linux-musl) sha256=293921398b839f79ceaf55010e061357e34f053822c3b003cd0be6686176335e - commonmarker-merge (7.1.0) concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 @@ -737,7 +434,6 @@ CHECKSUMS diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 docile (1.4.1) sha256=96159be799bfa73cdb721b840e9802126e4e03dfc26863db73647204c727f21e - dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -750,27 +446,19 @@ CHECKSUMS gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f - go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 - json-merge (7.1.0) kettle-dev (2.3.7) sha256=eb370113cd030d03cbe2d33b31c99858951017e5ad21a17e9ed89dc3770028ee - kettle-drift (1.0.5) sha256=07094e80140a049164142820bdd327c30fcd855bb00697a0a430600a2b5144a2 - kettle-jem (7.1.0) kettle-rb (0.1.4) sha256=9cef7ce4f7021666b7222292f29051e51eaf042e8a5db11f3f4dd72f74243fc1 kettle-soup-cover (1.1.3) sha256=a373827da22a7131d093afd32945e5b7d7a10a01ebfdded8fd2cb8230d69c8ad kettle-test (2.0.11) sha256=c710c90f7ab79d51f9452f0c09f5f90657e7a893f63583855c164d0b1b107ab2 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa - kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 - markdown-merge (7.1.0) - markly (0.16.0) sha256=6f70d79e385b1efc9e171f74c81628826259039fe6c778e03c3924c71dac5511 - markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-aarch64-linux-gnu) sha256=1269fb644a6de405057a53dd5c762b1209b43ca7424f839454d3dbc677c31a8f nokogiri (1.19.4-aarch64-linux-musl) sha256=35c65b9ce72b3bb03207bdbe7067915019dc18c1b9b59139684bd6690fdd01af @@ -785,14 +473,10 @@ CHECKSUMS parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 - parslet-toml-merge (7.1.0) - plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 - prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 - psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a @@ -800,7 +484,6 @@ CHECKSUMS rake-compiler-dock (1.12.0) sha256=f13205c2738f3d2053afcd03491a9e4541b22a59a0bfc53fc8bc883bd8188023 rb_sys (0.9.127) sha256=e9f90df3bb0577472d26d96127d5b5774b98f44de881e7d36aeefd28d6337847 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 - rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb @@ -828,12 +511,9 @@ CHECKSUMS rubocop-rspec (3.10.2) sha256=0b3e2ecc592cd10ecbf0095bb58d1e357905276e069643523cc19eb7495f65e2 rubocop-ruby3_2 (3.0.7) sha256=f53dd6d286fb05186214fc6ec116783e7f837030918e8931c05de773e98f8466 rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 - ruby-merge (7.1.0) ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 - rust-merge (7.1.0) - service_actor (3.9.4) sha256=e63b523630b9a7e62959b2a90113b08d2565b5de9c148557b281ef847c9539ce silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (0.22.0) sha256=fe2622c7834ff23b98066bb0a854284b2729a569ac659f82621fc22ef36213a5 simplecov-cobertura (3.2.0) sha256=70d702658677fcb20e5aceb6915ccf8bc62ff2ccd38b62b3ad5c9db5c0888740 @@ -842,7 +522,6 @@ CHECKSUMS simplecov-lcov (0.9.0) sha256=7a77a31e200a595ed4b0249493056efd0c920601f53d2ef135ca34ee796346cd simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_json_formatter (0.1.4) sha256=529418fbe8de1713ac2b2d612aa3daa56d316975d307244399fa4838c601b428 - smorg-rb (7.1.0) sorbet-runtime (0.6.13342) sha256=dbeb9892597f593ed2b29e38018912787f6c4e0c4b736d8af0d6bd3c63bde3c3 standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b @@ -856,19 +535,18 @@ CHECKSUMS timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.4) sha256=33b926958f504525bba3ed511ab66fbcbf8ef30390815e931436b30f27ffcad0 - toml (0.3.0) sha256=0a91d0f76a9036e84e44f95693b12f58d358c1df3ac8e3b5271f2056ecc6e4b9 - toml-merge (7.1.0) - toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 tree_haver (7.1.0) - tree_sitter_language_pack (1.13.1) + tree_sitter_language_pack (1.13.2) + tree_sitter_language_pack (1.13.2-aarch64-linux) + tree_sitter_language_pack (1.13.2-arm64-darwin) + tree_sitter_language_pack (1.13.2-x86_64-darwin) + tree_sitter_language_pack (1.13.2-x86_64-linux) tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 - typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 - yaml-merge (7.1.0) yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd @@ -876,7 +554,6 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 - zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH diff --git a/gems/ast-template/Gemfile b/gems/ast-template/Gemfile index 7a65388b6..c0026ddf6 100644 --- a/gems/ast-template/Gemfile +++ b/gems/ast-template/Gemfile @@ -71,14 +71,8 @@ if direct_sibling_gems.any? && end end -# Use the released TSLP gem by default; templating can override it via VENDORED_GEMS. -vendored_gems = ENV.fetch('VENDORED_GEMS', '').split(',').map(&:strip) -tslp_declared_by_templating = - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? && - vendored_gems.include?('tree_sitter_language_pack') -unless tslp_declared_by_templating - gem 'tree_sitter_language_pack', '>= 1.13.2', '< 2.0' -end +# Use the StructuredMerge TSLP fork until the Ruby ABI platform-gem fix is released. +gem 'tree_sitter_language_pack', git: 'https://github.com/structuredmerge/tree-sitter-language-pack.git', branch: 'fix/ruby-4-platform-gem-abi', glob: 'packages/ruby/*.gemspec' # Templating (env-switched: STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local paths) eval_gemfile 'gemfiles/modular/templating.gemfile' if ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? diff --git a/gems/ast-template/Gemfile.lock b/gems/ast-template/Gemfile.lock index b17738f92..20b8b2e2b 100644 --- a/gems/ast-template/Gemfile.lock +++ b/gems/ast-template/Gemfile.lock @@ -1,277 +1,28 @@ -PATH - remote: . - specs: - ast-template (7.1.0) - ast-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly - specs: - ast-crispr-markdown-markly (7.1.0) - ast-crispr (= 7.1.0) - markly-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism - specs: - ast-crispr-ruby-prism (7.1.0) - ast-crispr (= 7.1.0) - prism-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr - specs: - ast-crispr (7.1.0) - ast-merge (= 7.1.0) - service_actor (~> 3.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git - specs: - ast-merge-git (7.1.0) - ast-merge (= 7.1.0) - json-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge - specs: - ast-merge (7.1.0) - benchmark - token-resolver (~> 2.0, >= 2.0.4) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge - specs: - bash-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge - specs: - binary-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge - specs: - citrus-toml-merge (7.1.0) - toml-merge (= 7.1.0) - toml-rb (~> 4.1) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge - specs: - commonmarker-merge (7.1.0) - commonmarker (~> 2.2) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge - specs: - dotenv-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge - specs: - go-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge - specs: - json-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem - specs: - kettle-jem (7.1.0) - addressable (>= 2.8, < 3) - ast-crispr-markdown-markly (= 7.1.0) - ast-crispr-ruby-prism (= 7.1.0) - ast-merge (= 7.1.0) - bash-merge (= 7.1.0) - citrus-toml-merge (= 7.1.0) - commonmarker-merge (= 7.1.0) - dotenv-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-dev (~> 2.3, >= 2.3.5) - kettle-rb (~> 0.1, >= 0.1.4) - kramdown-merge (= 7.1.0) - markdown-merge (= 7.1.0) - markly-merge (= 7.1.0) - prism-merge (= 7.1.0) - psych-merge (= 7.1.0) - rbs (>= 3.10) - rbs-merge (= 7.1.0) - ruby-merge (= 7.1.0) - token-resolver (~> 2.0, >= 2.0.4) - toml-merge (= 7.1.0) - toml-rb (~> 4.2) - tree_haver (= 7.1.0) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge - specs: - kramdown-merge (7.1.0) - kramdown (~> 2.5) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge - specs: - markdown-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge - specs: - markly-merge (7.1.0) - markdown-merge (= 7.1.0) - markly (~> 0.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge +GIT + remote: https://github.com/structuredmerge/tree-sitter-language-pack.git + revision: e736879d00ce55b9bbfa479a5c07363bde1512e2 + branch: fix/ruby-4-platform-gem-abi + glob: packages/ruby/*.gemspec specs: - parslet-toml-merge (7.1.0) - toml (~> 0.3) - toml-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge - specs: - plain-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge - specs: - prism-merge (7.1.0) - prism (~> 1.6) - ruby-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge - specs: - psych-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge - specs: - rbs-merge (7.1.0) - ast-merge (= 7.1.0) - rbs (>= 3.10) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge - specs: - ruby-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge - specs: - rust-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb - specs: - smorg-rb (7.1.0) - ast-merge (= 7.1.0) - ast-merge-git (= 7.1.0) - go-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-jem (= 7.1.0) - markly-merge (= 7.1.0) - plain-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge - specs: - toml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver - specs: - tree_haver (7.1.0) - citrus (~> 3.0) - parslet (~> 2.0) - tree_sitter_language_pack (>= 1.9.0.pre.rc.40, < 2.0) - version_gem (~> 1.1, >= 1.1.9) + tree_sitter_language_pack (1.13.2) + rb_sys (>= 0.9, < 0.9.128) + sorbet-runtime (~> 0.5) + tree_sitter_language_pack (1.13.2-aarch64-linux) + sorbet-runtime (~> 0.5) + tree_sitter_language_pack (1.13.2-arm64-darwin) + sorbet-runtime (~> 0.5) + tree_sitter_language_pack (1.13.2-x86_64-darwin) + sorbet-runtime (~> 0.5) + tree_sitter_language_pack (1.13.2-x86_64-linux) + sorbet-runtime (~> 0.5) PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge + remote: . specs: - typescript-merge (7.1.0) + ast-template (7.1.0) ast-merge (= 7.1.0) - tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge - specs: - yaml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge - specs: - zip-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /var/home/pboling/src/my/structuredmerge/vendor/tree-sitter-language-pack/packages/ruby - specs: - tree_sitter_language_pack (1.12.5) - rb_sys (>= 0.9, < 0.9.128) - sorbet-runtime (~> 0.5) - GEM remote: https://gem.coop/ specs: @@ -283,6 +34,11 @@ GEM rake (>= 10) thor (>= 0.14) ast (2.4.3) + ast-merge (7.1.0) + benchmark + token-resolver (~> 2.0, >= 2.0.4) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) backports (3.25.3) benchmark (0.5.0) bigdecimal (4.1.2) @@ -291,12 +47,6 @@ GEM thor (~> 1.0) citrus (3.0.2) cmdparse (3.0.7) - commonmarker (2.9.0-aarch64-linux) - commonmarker (2.9.0-aarch64-linux-musl) - commonmarker (2.9.0-arm64-darwin) - commonmarker (2.9.0-x86_64-darwin) - commonmarker (2.9.0-x86_64-linux) - commonmarker (2.9.0-x86_64-linux-musl) concurrent-ruby (1.3.7) date (3.5.1) debug (1.11.1) @@ -360,8 +110,6 @@ GEM kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) - kettle-drift (1.0.5) - version_gem (~> 1.1, >= 1.1.13) kettle-rb (0.1.4) kettle-soup-cover (1.1.3) simplecov (~> 0.22) @@ -390,7 +138,6 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) - markly (0.16.0) mutex_m (0.3.0) nokogiri (1.19.4-aarch64-linux-gnu) racc (~> 1.4) @@ -530,8 +277,6 @@ GEM ruby-progressbar (1.13.0) ruby_engine (2.0.3) ruby_version (1.0.3) - service_actor (3.9.4) - zeitwerk (>= 1.0) silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) @@ -584,11 +329,11 @@ GEM token-resolver (2.0.4) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.13) - toml (0.3.0) - parslet (>= 1.8.0, < 3.0.0) - toml-rb (4.2.0) - citrus (~> 3.0, > 3.0) - racc (~> 1.7) + tree_haver (7.1.0) + citrus (~> 3.0) + parslet (~> 2.0) + tree_sitter_language_pack (>= 1.9.0.pre.rc.40, < 2.0) + version_gem (~> 1.1, >= 1.1.9) tsort (0.2.0) turbo_tests2 (3.2.0) parallel_tests (>= 3.3.0, < 6) @@ -635,45 +380,23 @@ PLATFORMS DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) - ast-crispr! - ast-crispr-markdown-markly! - ast-crispr-ruby-prism! - ast-merge! - ast-merge-git! ast-template! - bash-merge! benchmark (~> 0.5, >= 0.5.0) - binary-merge! bundler-audit (~> 0.9.3) - citrus-toml-merge! - commonmarker-merge! debug (>= 1.1) - dotenv-merge! erb (~> 6.0, >= 6.0.4) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.0) - go-merge! irb (~> 1.17) - json-merge! kettle-dev (~> 2.0, >= 2.2.25) - kettle-drift (~> 1.0, >= 1.0.5) - kettle-jem! kettle-soup-cover (~> 1.0, >= 1.1.3) kettle-test (~> 2.0, >= 2.0.9) kramdown (~> 2.5, >= 2.5.1) - kramdown-merge! kramdown-parser-gfm (~> 1.1) - markdown-merge! - markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) - parslet-toml-merge! - plain-merge! - prism-merge! - psych-merge! rake (~> 13.0) rbs (>= 3.0) - rbs-merge! rdoc (~> 6.11) reek (~> 6.5) require_bench (~> 1.0, >= 1.0.4) @@ -682,54 +405,32 @@ DEPENDENCIES rubocop-packaging (~> 0.6, >= 0.6.0) rubocop-rspec (~> 3.6) rubocop-ruby3_2 (~> 3.0.0) - ruby-merge! ruby-progressbar (~> 1.13) - rust-merge! - smorg-rb! standard (>= 1.50) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) - toml-merge! - tree_haver! tree_sitter_language_pack! - typescript-merge! yaml-converter (~> 0.1) - yaml-merge! yard (~> 0.9, >= 0.9.44) yard-fence (~> 0.9, >= 0.9.1) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) yard-timekeeper (~> 0.1) yard-yaml (~> 0.1, >= 0.1.2) - zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af ansi (1.6.0) sha256=ac9ea0c0ea8d32fb4e271348e609963ac78882f34b73836c2a02b3622e666658 appraisal2 (3.2.0) sha256=ccd0b767ac4060cd7af6d16747459b6990f49c39c7b4fb1f7d1146b1e97c492f ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 - ast-crispr (7.1.0) - ast-crispr-markdown-markly (7.1.0) - ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) - ast-merge-git (7.1.0) ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 - bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd - binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 - citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 - commonmarker (2.9.0-aarch64-linux) sha256=e2b4aadb9a2cfa4e206582641ce3a49465549ac1ed4c289fdd63b78d8f24579c - commonmarker (2.9.0-aarch64-linux-musl) sha256=1cf4d2821f2a7e64945f1ed7c4eeced586fdb27ea7fe7337788802cf8f57cfca - commonmarker (2.9.0-arm64-darwin) sha256=1748dbfa4f5813b0d2a14bb4bbfa65a4ec293aa1c825016d60029ee0e132b046 - commonmarker (2.9.0-x86_64-darwin) sha256=0a9914ccfd2f5d2a59c7bd0dda4fe90eb084cf513b477e499008e09ec9d6edd6 - commonmarker (2.9.0-x86_64-linux) sha256=8cfe92970eef585a19ddf6613224b91cab64d6029834661bda801f877c9c7f43 - commonmarker (2.9.0-x86_64-linux-musl) sha256=293921398b839f79ceaf55010e061357e34f053822c3b003cd0be6686176335e - commonmarker-merge (7.1.0) concurrent-ruby (1.3.7) sha256=4412caec3a5ea2e5fdc52076724c071a81f2c0593d83b2ac8cbb8ca63b3151b0 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 @@ -737,7 +438,6 @@ CHECKSUMS diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 docile (1.4.1) sha256=96159be799bfa73cdb721b840e9802126e4e03dfc26863db73647204c727f21e - dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -750,27 +450,19 @@ CHECKSUMS gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f - go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 - json-merge (7.1.0) kettle-dev (2.3.7) sha256=eb370113cd030d03cbe2d33b31c99858951017e5ad21a17e9ed89dc3770028ee - kettle-drift (1.0.5) sha256=07094e80140a049164142820bdd327c30fcd855bb00697a0a430600a2b5144a2 - kettle-jem (7.1.0) kettle-rb (0.1.4) sha256=9cef7ce4f7021666b7222292f29051e51eaf042e8a5db11f3f4dd72f74243fc1 kettle-soup-cover (1.1.3) sha256=a373827da22a7131d093afd32945e5b7d7a10a01ebfdded8fd2cb8230d69c8ad kettle-test (2.0.11) sha256=c710c90f7ab79d51f9452f0c09f5f90657e7a893f63583855c164d0b1b107ab2 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa - kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 - markdown-merge (7.1.0) - markly (0.16.0) sha256=6f70d79e385b1efc9e171f74c81628826259039fe6c778e03c3924c71dac5511 - markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-aarch64-linux-gnu) sha256=1269fb644a6de405057a53dd5c762b1209b43ca7424f839454d3dbc677c31a8f nokogiri (1.19.4-aarch64-linux-musl) sha256=35c65b9ce72b3bb03207bdbe7067915019dc18c1b9b59139684bd6690fdd01af @@ -785,14 +477,10 @@ CHECKSUMS parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 - parslet-toml-merge (7.1.0) - plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 - prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 - psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a @@ -800,7 +488,6 @@ CHECKSUMS rake-compiler-dock (1.12.0) sha256=f13205c2738f3d2053afcd03491a9e4541b22a59a0bfc53fc8bc883bd8188023 rb_sys (0.9.127) sha256=e9f90df3bb0577472d26d96127d5b5774b98f44de881e7d36aeefd28d6337847 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 - rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb @@ -828,12 +515,9 @@ CHECKSUMS rubocop-rspec (3.10.2) sha256=0b3e2ecc592cd10ecbf0095bb58d1e357905276e069643523cc19eb7495f65e2 rubocop-ruby3_2 (3.0.7) sha256=f53dd6d286fb05186214fc6ec116783e7f837030918e8931c05de773e98f8466 rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 - ruby-merge (7.1.0) ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 - rust-merge (7.1.0) - service_actor (3.9.4) sha256=e63b523630b9a7e62959b2a90113b08d2565b5de9c148557b281ef847c9539ce silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (0.22.0) sha256=fe2622c7834ff23b98066bb0a854284b2729a569ac659f82621fc22ef36213a5 simplecov-cobertura (3.2.0) sha256=70d702658677fcb20e5aceb6915ccf8bc62ff2ccd38b62b3ad5c9db5c0888740 @@ -842,7 +526,6 @@ CHECKSUMS simplecov-lcov (0.9.0) sha256=7a77a31e200a595ed4b0249493056efd0c920601f53d2ef135ca34ee796346cd simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_json_formatter (0.1.4) sha256=529418fbe8de1713ac2b2d612aa3daa56d316975d307244399fa4838c601b428 - smorg-rb (7.1.0) sorbet-runtime (0.6.13342) sha256=dbeb9892597f593ed2b29e38018912787f6c4e0c4b736d8af0d6bd3c63bde3c3 standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b @@ -856,19 +539,18 @@ CHECKSUMS timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.4) sha256=33b926958f504525bba3ed511ab66fbcbf8ef30390815e931436b30f27ffcad0 - toml (0.3.0) sha256=0a91d0f76a9036e84e44f95693b12f58d358c1df3ac8e3b5271f2056ecc6e4b9 - toml-merge (7.1.0) - toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 tree_haver (7.1.0) - tree_sitter_language_pack (1.12.5) + tree_sitter_language_pack (1.13.2) + tree_sitter_language_pack (1.13.2-aarch64-linux) + tree_sitter_language_pack (1.13.2-arm64-darwin) + tree_sitter_language_pack (1.13.2-x86_64-darwin) + tree_sitter_language_pack (1.13.2-x86_64-linux) tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 - typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 - yaml-merge (7.1.0) yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd @@ -876,7 +558,6 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 - zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH diff --git a/gems/bash-merge/Gemfile b/gems/bash-merge/Gemfile index 59fdb22b6..5ba48239d 100644 --- a/gems/bash-merge/Gemfile +++ b/gems/bash-merge/Gemfile @@ -72,14 +72,8 @@ if direct_sibling_gems.any? && end end -# Use the released TSLP gem by default; templating can override it via VENDORED_GEMS. -vendored_gems = ENV.fetch('VENDORED_GEMS', '').split(',').map(&:strip) -tslp_declared_by_templating = - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? && - vendored_gems.include?('tree_sitter_language_pack') -unless tslp_declared_by_templating - gem 'tree_sitter_language_pack', '>= 1.13.2', '< 2.0' -end +# Use the StructuredMerge TSLP fork until the Ruby ABI platform-gem fix is released. +gem 'tree_sitter_language_pack', git: 'https://github.com/structuredmerge/tree-sitter-language-pack.git', branch: 'fix/ruby-4-platform-gem-abi', glob: 'packages/ruby/*.gemspec' # Templating (env-switched: STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local paths) eval_gemfile 'gemfiles/modular/templating.gemfile' if ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? diff --git a/gems/bash-merge/Gemfile.lock b/gems/bash-merge/Gemfile.lock index 9ef8688de..d0583dae8 100644 --- a/gems/bash-merge/Gemfile.lock +++ b/gems/bash-merge/Gemfile.lock @@ -1,277 +1,29 @@ -PATH - remote: . - specs: - bash-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly - specs: - ast-crispr-markdown-markly (7.1.0) - ast-crispr (= 7.1.0) - markly-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism - specs: - ast-crispr-ruby-prism (7.1.0) - ast-crispr (= 7.1.0) - prism-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr - specs: - ast-crispr (7.1.0) - ast-merge (= 7.1.0) - service_actor (~> 3.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git - specs: - ast-merge-git (7.1.0) - ast-merge (= 7.1.0) - json-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge - specs: - ast-merge (7.1.0) - benchmark - token-resolver (~> 2.0, >= 2.0.4) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template - specs: - ast-template (7.1.0) - ast-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge - specs: - binary-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge - specs: - citrus-toml-merge (7.1.0) - toml-merge (= 7.1.0) - toml-rb (~> 4.1) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge - specs: - commonmarker-merge (7.1.0) - commonmarker (~> 2.2) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge - specs: - dotenv-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge - specs: - go-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge - specs: - json-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem - specs: - kettle-jem (7.1.0) - addressable (>= 2.8, < 3) - ast-crispr-markdown-markly (= 7.1.0) - ast-crispr-ruby-prism (= 7.1.0) - ast-merge (= 7.1.0) - bash-merge (= 7.1.0) - citrus-toml-merge (= 7.1.0) - commonmarker-merge (= 7.1.0) - dotenv-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-dev (~> 2.3, >= 2.3.5) - kettle-rb (~> 0.1, >= 0.1.4) - kramdown-merge (= 7.1.0) - markdown-merge (= 7.1.0) - markly-merge (= 7.1.0) - prism-merge (= 7.1.0) - psych-merge (= 7.1.0) - rbs (>= 3.10) - rbs-merge (= 7.1.0) - ruby-merge (= 7.1.0) - token-resolver (~> 2.0, >= 2.0.4) - toml-merge (= 7.1.0) - toml-rb (~> 4.2) - tree_haver (= 7.1.0) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge - specs: - kramdown-merge (7.1.0) - kramdown (~> 2.5) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge - specs: - markdown-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge - specs: - markly-merge (7.1.0) - markdown-merge (= 7.1.0) - markly (~> 0.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge - specs: - parslet-toml-merge (7.1.0) - toml (~> 0.3) - toml-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge - specs: - plain-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge +GIT + remote: https://github.com/structuredmerge/tree-sitter-language-pack.git + revision: e736879d00ce55b9bbfa479a5c07363bde1512e2 + branch: fix/ruby-4-platform-gem-abi + glob: packages/ruby/*.gemspec specs: - prism-merge (7.1.0) - prism (~> 1.6) - ruby-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge - specs: - psych-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - yaml-merge (= 7.1.0) + tree_sitter_language_pack (1.13.2) + rb_sys (>= 0.9, < 0.9.128) + sorbet-runtime (~> 0.5) + tree_sitter_language_pack (1.13.2-aarch64-linux) + sorbet-runtime (~> 0.5) + tree_sitter_language_pack (1.13.2-arm64-darwin) + sorbet-runtime (~> 0.5) + tree_sitter_language_pack (1.13.2-x86_64-darwin) + sorbet-runtime (~> 0.5) + tree_sitter_language_pack (1.13.2-x86_64-linux) + sorbet-runtime (~> 0.5) PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge + remote: . specs: - rbs-merge (7.1.0) + bash-merge (7.1.0) ast-merge (= 7.1.0) - rbs (>= 3.10) tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.14) -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge - specs: - ruby-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge - specs: - rust-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb - specs: - smorg-rb (7.1.0) - ast-merge (= 7.1.0) - ast-merge-git (= 7.1.0) - go-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-jem (= 7.1.0) - markly-merge (= 7.1.0) - plain-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge - specs: - toml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver - specs: - tree_haver (7.1.0) - citrus (~> 3.0) - parslet (~> 2.0) - tree_sitter_language_pack (>= 1.9.0.pre.rc.40, < 2.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge - specs: - typescript-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge - specs: - yaml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge - specs: - zip-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/vendor/tree_sitter_language_pack - specs: - tree_sitter_language_pack (1.13.1) - rb_sys (>= 0.9, < 0.9.128) - sorbet-runtime (~> 0.5) - GEM remote: https://gem.coop/ specs: @@ -283,6 +35,11 @@ GEM rake (>= 10) thor (>= 0.14) ast (2.4.3) + ast-merge (7.1.0) + benchmark + token-resolver (~> 2.0, >= 2.0.4) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) backports (3.25.3) benchmark (0.5.0) bigdecimal (4.1.2) @@ -291,12 +48,6 @@ GEM thor (~> 1.0) citrus (3.0.2) cmdparse (3.0.7) - commonmarker (2.9.0-aarch64-linux) - commonmarker (2.9.0-aarch64-linux-musl) - commonmarker (2.9.0-arm64-darwin) - commonmarker (2.9.0-x86_64-darwin) - commonmarker (2.9.0-x86_64-linux) - commonmarker (2.9.0-x86_64-linux-musl) concurrent-ruby (1.3.8) date (3.5.1) debug (1.11.1) @@ -360,8 +111,6 @@ GEM kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) - kettle-drift (1.0.5) - version_gem (~> 1.1, >= 1.1.13) kettle-rb (0.1.4) kettle-soup-cover (1.1.3) simplecov (~> 0.22) @@ -390,7 +139,6 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) - markly (0.16.0) mutex_m (0.3.0) nokogiri (1.19.4-aarch64-linux-gnu) racc (~> 1.4) @@ -530,8 +278,6 @@ GEM ruby-progressbar (1.13.0) ruby_engine (2.0.3) ruby_version (1.0.3) - service_actor (3.9.4) - zeitwerk (>= 1.0) silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) @@ -584,11 +330,11 @@ GEM token-resolver (2.0.4) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.13) - toml (0.3.0) - parslet (>= 1.8.0, < 3.0.0) - toml-rb (4.2.0) - citrus (~> 3.0, > 3.0) - racc (~> 1.7) + tree_haver (7.1.0) + citrus (~> 3.0) + parslet (~> 2.0) + tree_sitter_language_pack (>= 1.9.0.pre.rc.40, < 2.0) + version_gem (~> 1.1, >= 1.1.9) tsort (0.2.0) turbo_tests2 (3.2.0) parallel_tests (>= 3.3.0, < 6) @@ -635,45 +381,23 @@ PLATFORMS DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.2, >= 3.2.0) - ast-crispr! - ast-crispr-markdown-markly! - ast-crispr-ruby-prism! - ast-merge! - ast-merge-git! - ast-template! bash-merge! benchmark (~> 0.5, >= 0.5.0) - binary-merge! bundler-audit (~> 0.9.3) - citrus-toml-merge! - commonmarker-merge! debug (>= 1.1) - dotenv-merge! erb (~> 6.0, >= 6.0.4) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.4) - go-merge! irb (~> 1.17) - json-merge! kettle-dev (~> 2.3, >= 2.3.7) - kettle-drift (~> 1.0, >= 1.0.5) - kettle-jem! kettle-soup-cover (~> 1.0, >= 1.1.3) kettle-test (~> 2.0, >= 2.0.11) kramdown (~> 2.5, >= 2.5.1) - kramdown-merge! kramdown-parser-gfm (~> 1.1) - markdown-merge! - markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) - parslet-toml-merge! - plain-merge! - prism-merge! - psych-merge! rake (~> 13.0) rbs (>= 3.0) - rbs-merge! rdoc (~> 6.11) reek (~> 6.5) require_bench (~> 1.0, >= 1.0.4) @@ -682,55 +406,33 @@ DEPENDENCIES rubocop-packaging (~> 0.6, >= 0.6.0) rubocop-rspec (~> 3.6) rubocop-ruby3_2 (~> 3.0.0) - ruby-merge! ruby-progressbar (~> 1.13) - rust-merge! - smorg-rb! standard (>= 1.50) stone_checksums (~> 1.0, >= 1.0.6, >= 1.0.3) stringio (>= 3.0) - toml-merge! - tree_haver! tree_sitter_language_pack! turbo_tests2 (~> 3.2, >= 3.2.0) - typescript-merge! yaml-converter (~> 0.1) - yaml-merge! yard (~> 0.9, >= 0.9.44) yard-fence (~> 0.9, >= 0.9.1) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) yard-timekeeper (~> 0.1) yard-yaml (~> 0.1, >= 0.1.2) - zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af ansi (1.6.0) sha256=ac9ea0c0ea8d32fb4e271348e609963ac78882f34b73836c2a02b3622e666658 appraisal2 (3.2.0) sha256=ccd0b767ac4060cd7af6d16747459b6990f49c39c7b4fb1f7d1146b1e97c492f ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 - ast-crispr (7.1.0) - ast-crispr-markdown-markly (7.1.0) - ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) - ast-merge-git (7.1.0) - ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd - binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 - citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 - commonmarker (2.9.0-aarch64-linux) sha256=e2b4aadb9a2cfa4e206582641ce3a49465549ac1ed4c289fdd63b78d8f24579c - commonmarker (2.9.0-aarch64-linux-musl) sha256=1cf4d2821f2a7e64945f1ed7c4eeced586fdb27ea7fe7337788802cf8f57cfca - commonmarker (2.9.0-arm64-darwin) sha256=1748dbfa4f5813b0d2a14bb4bbfa65a4ec293aa1c825016d60029ee0e132b046 - commonmarker (2.9.0-x86_64-darwin) sha256=0a9914ccfd2f5d2a59c7bd0dda4fe90eb084cf513b477e499008e09ec9d6edd6 - commonmarker (2.9.0-x86_64-linux) sha256=8cfe92970eef585a19ddf6613224b91cab64d6029834661bda801f877c9c7f43 - commonmarker (2.9.0-x86_64-linux-musl) sha256=293921398b839f79ceaf55010e061357e34f053822c3b003cd0be6686176335e - commonmarker-merge (7.1.0) concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 @@ -738,7 +440,6 @@ CHECKSUMS diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 docile (1.4.1) sha256=96159be799bfa73cdb721b840e9802126e4e03dfc26863db73647204c727f21e - dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -751,27 +452,19 @@ CHECKSUMS gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f - go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 - json-merge (7.1.0) kettle-dev (2.3.7) sha256=eb370113cd030d03cbe2d33b31c99858951017e5ad21a17e9ed89dc3770028ee - kettle-drift (1.0.5) sha256=07094e80140a049164142820bdd327c30fcd855bb00697a0a430600a2b5144a2 - kettle-jem (7.1.0) kettle-rb (0.1.4) sha256=9cef7ce4f7021666b7222292f29051e51eaf042e8a5db11f3f4dd72f74243fc1 kettle-soup-cover (1.1.3) sha256=a373827da22a7131d093afd32945e5b7d7a10a01ebfdded8fd2cb8230d69c8ad kettle-test (2.0.11) sha256=c710c90f7ab79d51f9452f0c09f5f90657e7a893f63583855c164d0b1b107ab2 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa - kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 - markdown-merge (7.1.0) - markly (0.16.0) sha256=6f70d79e385b1efc9e171f74c81628826259039fe6c778e03c3924c71dac5511 - markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-aarch64-linux-gnu) sha256=1269fb644a6de405057a53dd5c762b1209b43ca7424f839454d3dbc677c31a8f nokogiri (1.19.4-aarch64-linux-musl) sha256=35c65b9ce72b3bb03207bdbe7067915019dc18c1b9b59139684bd6690fdd01af @@ -786,14 +479,10 @@ CHECKSUMS parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 - parslet-toml-merge (7.1.0) - plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 - prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 - psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a @@ -801,7 +490,6 @@ CHECKSUMS rake-compiler-dock (1.12.0) sha256=f13205c2738f3d2053afcd03491a9e4541b22a59a0bfc53fc8bc883bd8188023 rb_sys (0.9.127) sha256=e9f90df3bb0577472d26d96127d5b5774b98f44de881e7d36aeefd28d6337847 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 - rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb @@ -829,12 +517,9 @@ CHECKSUMS rubocop-rspec (3.10.2) sha256=0b3e2ecc592cd10ecbf0095bb58d1e357905276e069643523cc19eb7495f65e2 rubocop-ruby3_2 (3.0.7) sha256=f53dd6d286fb05186214fc6ec116783e7f837030918e8931c05de773e98f8466 rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 - ruby-merge (7.1.0) ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 - rust-merge (7.1.0) - service_actor (3.9.4) sha256=e63b523630b9a7e62959b2a90113b08d2565b5de9c148557b281ef847c9539ce silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (0.22.0) sha256=fe2622c7834ff23b98066bb0a854284b2729a569ac659f82621fc22ef36213a5 simplecov-cobertura (3.2.0) sha256=70d702658677fcb20e5aceb6915ccf8bc62ff2ccd38b62b3ad5c9db5c0888740 @@ -843,7 +528,6 @@ CHECKSUMS simplecov-lcov (0.9.0) sha256=7a77a31e200a595ed4b0249493056efd0c920601f53d2ef135ca34ee796346cd simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_json_formatter (0.1.4) sha256=529418fbe8de1713ac2b2d612aa3daa56d316975d307244399fa4838c601b428 - smorg-rb (7.1.0) sorbet-runtime (0.6.13342) sha256=dbeb9892597f593ed2b29e38018912787f6c4e0c4b736d8af0d6bd3c63bde3c3 standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b @@ -857,19 +541,18 @@ CHECKSUMS timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.4) sha256=33b926958f504525bba3ed511ab66fbcbf8ef30390815e931436b30f27ffcad0 - toml (0.3.0) sha256=0a91d0f76a9036e84e44f95693b12f58d358c1df3ac8e3b5271f2056ecc6e4b9 - toml-merge (7.1.0) - toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 tree_haver (7.1.0) - tree_sitter_language_pack (1.13.1) + tree_sitter_language_pack (1.13.2) + tree_sitter_language_pack (1.13.2-aarch64-linux) + tree_sitter_language_pack (1.13.2-arm64-darwin) + tree_sitter_language_pack (1.13.2-x86_64-darwin) + tree_sitter_language_pack (1.13.2-x86_64-linux) tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 - typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 - yaml-merge (7.1.0) yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd @@ -877,7 +560,6 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 - zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH diff --git a/gems/binary-merge/Gemfile b/gems/binary-merge/Gemfile index 0180260a7..316fd991e 100644 --- a/gems/binary-merge/Gemfile +++ b/gems/binary-merge/Gemfile @@ -71,14 +71,8 @@ if direct_sibling_gems.any? && end end -# Use the released TSLP gem by default; templating can override it via VENDORED_GEMS. -vendored_gems = ENV.fetch('VENDORED_GEMS', '').split(',').map(&:strip) -tslp_declared_by_templating = - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? && - vendored_gems.include?('tree_sitter_language_pack') -unless tslp_declared_by_templating - gem 'tree_sitter_language_pack', '>= 1.13.2', '< 2.0' -end +# Use the StructuredMerge TSLP fork until the Ruby ABI platform-gem fix is released. +gem 'tree_sitter_language_pack', git: 'https://github.com/structuredmerge/tree-sitter-language-pack.git', branch: 'fix/ruby-4-platform-gem-abi', glob: 'packages/ruby/*.gemspec' # Templating (env-switched: STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local paths) eval_gemfile 'gemfiles/modular/templating.gemfile' if ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? diff --git a/gems/binary-merge/Gemfile.lock b/gems/binary-merge/Gemfile.lock index 41b29f356..b034f6834 100644 --- a/gems/binary-merge/Gemfile.lock +++ b/gems/binary-merge/Gemfile.lock @@ -1,277 +1,28 @@ -PATH - remote: . - specs: - binary-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly - specs: - ast-crispr-markdown-markly (7.1.0) - ast-crispr (= 7.1.0) - markly-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism - specs: - ast-crispr-ruby-prism (7.1.0) - ast-crispr (= 7.1.0) - prism-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr - specs: - ast-crispr (7.1.0) - ast-merge (= 7.1.0) - service_actor (~> 3.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git - specs: - ast-merge-git (7.1.0) - ast-merge (= 7.1.0) - json-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge - specs: - ast-merge (7.1.0) - benchmark - token-resolver (~> 2.0, >= 2.0.4) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template - specs: - ast-template (7.1.0) - ast-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge - specs: - bash-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge +GIT + remote: https://github.com/structuredmerge/tree-sitter-language-pack.git + revision: e736879d00ce55b9bbfa479a5c07363bde1512e2 + branch: fix/ruby-4-platform-gem-abi + glob: packages/ruby/*.gemspec specs: - citrus-toml-merge (7.1.0) - toml-merge (= 7.1.0) - toml-rb (~> 4.1) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge - specs: - commonmarker-merge (7.1.0) - commonmarker (~> 2.2) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge - specs: - dotenv-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge - specs: - go-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge - specs: - json-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem - specs: - kettle-jem (7.1.0) - addressable (>= 2.8, < 3) - ast-crispr-markdown-markly (= 7.1.0) - ast-crispr-ruby-prism (= 7.1.0) - ast-merge (= 7.1.0) - bash-merge (= 7.1.0) - citrus-toml-merge (= 7.1.0) - commonmarker-merge (= 7.1.0) - dotenv-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-dev (~> 2.3, >= 2.3.5) - kettle-rb (~> 0.1, >= 0.1.4) - kramdown-merge (= 7.1.0) - markdown-merge (= 7.1.0) - markly-merge (= 7.1.0) - prism-merge (= 7.1.0) - psych-merge (= 7.1.0) - rbs (>= 3.10) - rbs-merge (= 7.1.0) - ruby-merge (= 7.1.0) - token-resolver (~> 2.0, >= 2.0.4) - toml-merge (= 7.1.0) - toml-rb (~> 4.2) - tree_haver (= 7.1.0) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge - specs: - kramdown-merge (7.1.0) - kramdown (~> 2.5) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge - specs: - markdown-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge - specs: - markly-merge (7.1.0) - markdown-merge (= 7.1.0) - markly (~> 0.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge - specs: - parslet-toml-merge (7.1.0) - toml (~> 0.3) - toml-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge - specs: - plain-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge - specs: - prism-merge (7.1.0) - prism (~> 1.6) - ruby-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge - specs: - psych-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge - specs: - rbs-merge (7.1.0) - ast-merge (= 7.1.0) - rbs (>= 3.10) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge - specs: - ruby-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge - specs: - rust-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb - specs: - smorg-rb (7.1.0) - ast-merge (= 7.1.0) - ast-merge-git (= 7.1.0) - go-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-jem (= 7.1.0) - markly-merge (= 7.1.0) - plain-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge - specs: - toml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver - specs: - tree_haver (7.1.0) - citrus (~> 3.0) - parslet (~> 2.0) - tree_sitter_language_pack (>= 1.9.0.pre.rc.40, < 2.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge - specs: - typescript-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge - specs: - yaml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) + tree_sitter_language_pack (1.13.2) + rb_sys (>= 0.9, < 0.9.128) + sorbet-runtime (~> 0.5) + tree_sitter_language_pack (1.13.2-aarch64-linux) + sorbet-runtime (~> 0.5) + tree_sitter_language_pack (1.13.2-arm64-darwin) + sorbet-runtime (~> 0.5) + tree_sitter_language_pack (1.13.2-x86_64-darwin) + sorbet-runtime (~> 0.5) + tree_sitter_language_pack (1.13.2-x86_64-linux) + sorbet-runtime (~> 0.5) PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge + remote: . specs: - zip-merge (7.1.0) + binary-merge (7.1.0) tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) -PATH - remote: /var/home/pboling/src/my/structuredmerge/vendor/tree-sitter-language-pack/packages/ruby - specs: - tree_sitter_language_pack (1.12.5) - rb_sys (>= 0.9, < 0.9.128) - sorbet-runtime (~> 0.5) - GEM remote: https://gem.coop/ specs: @@ -291,12 +42,6 @@ GEM thor (~> 1.0) citrus (3.0.2) cmdparse (3.0.7) - commonmarker (2.9.0-aarch64-linux) - commonmarker (2.9.0-aarch64-linux-musl) - commonmarker (2.9.0-arm64-darwin) - commonmarker (2.9.0-x86_64-darwin) - commonmarker (2.9.0-x86_64-linux) - commonmarker (2.9.0-x86_64-linux-musl) concurrent-ruby (1.3.7) date (3.5.1) debug (1.11.1) @@ -360,8 +105,6 @@ GEM kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) - kettle-drift (1.0.5) - version_gem (~> 1.1, >= 1.1.13) kettle-rb (0.1.4) kettle-soup-cover (1.1.3) simplecov (~> 0.22) @@ -390,7 +133,6 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) - markly (0.16.0) mutex_m (0.3.0) nokogiri (1.19.4-aarch64-linux-gnu) racc (~> 1.4) @@ -530,8 +272,6 @@ GEM ruby-progressbar (1.13.0) ruby_engine (2.0.3) ruby_version (1.0.3) - service_actor (3.9.4) - zeitwerk (>= 1.0) silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) @@ -581,14 +321,11 @@ GEM delegate (~> 0.1) rspec (~> 3.0) timecop (>= 0.7, < 1) - token-resolver (2.0.4) + tree_haver (7.1.0) + citrus (~> 3.0) parslet (~> 2.0) - version_gem (~> 1.1, >= 1.1.13) - toml (0.3.0) - parslet (>= 1.8.0, < 3.0.0) - toml-rb (4.2.0) - citrus (~> 3.0, > 3.0) - racc (~> 1.7) + tree_sitter_language_pack (>= 1.9.0.pre.rc.40, < 2.0) + version_gem (~> 1.1, >= 1.1.9) tsort (0.2.0) turbo_tests2 (3.2.0) parallel_tests (>= 3.3.0, < 6) @@ -635,45 +372,23 @@ PLATFORMS DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) - ast-crispr! - ast-crispr-markdown-markly! - ast-crispr-ruby-prism! - ast-merge! - ast-merge-git! - ast-template! - bash-merge! benchmark (~> 0.5, >= 0.5.0) binary-merge! bundler-audit (~> 0.9.3) - citrus-toml-merge! - commonmarker-merge! debug (>= 1.1) - dotenv-merge! erb (~> 6.0, >= 6.0.4) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.0) - go-merge! irb (~> 1.17) - json-merge! kettle-dev (~> 2.0, >= 2.2.25) - kettle-drift (~> 1.0, >= 1.0.5) - kettle-jem! kettle-soup-cover (~> 1.0, >= 1.1.3) kettle-test (~> 2.0, >= 2.0.9) kramdown (~> 2.5, >= 2.5.1) - kramdown-merge! kramdown-parser-gfm (~> 1.1) - markdown-merge! - markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) - parslet-toml-merge! - plain-merge! - prism-merge! - psych-merge! rake (~> 13.0) rbs (>= 3.0) - rbs-merge! rdoc (~> 6.11) reek (~> 6.5) require_bench (~> 1.0, >= 1.0.4) @@ -682,54 +397,31 @@ DEPENDENCIES rubocop-packaging (~> 0.6, >= 0.6.0) rubocop-rspec (~> 3.6) rubocop-ruby3_2 (~> 3.0.0) - ruby-merge! ruby-progressbar (~> 1.13) - rust-merge! - smorg-rb! standard (>= 1.50) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) - toml-merge! - tree_haver! tree_sitter_language_pack! - typescript-merge! yaml-converter (~> 0.1) - yaml-merge! yard (~> 0.9, >= 0.9.44) yard-fence (~> 0.9, >= 0.9.1) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) yard-timekeeper (~> 0.1) yard-yaml (~> 0.1, >= 0.1.2) - zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af ansi (1.6.0) sha256=ac9ea0c0ea8d32fb4e271348e609963ac78882f34b73836c2a02b3622e666658 appraisal2 (3.2.0) sha256=ccd0b767ac4060cd7af6d16747459b6990f49c39c7b4fb1f7d1146b1e97c492f ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 - ast-crispr (7.1.0) - ast-crispr-markdown-markly (7.1.0) - ast-crispr-ruby-prism (7.1.0) - ast-merge (7.1.0) - ast-merge-git (7.1.0) - ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 - bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 - citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 - commonmarker (2.9.0-aarch64-linux) sha256=e2b4aadb9a2cfa4e206582641ce3a49465549ac1ed4c289fdd63b78d8f24579c - commonmarker (2.9.0-aarch64-linux-musl) sha256=1cf4d2821f2a7e64945f1ed7c4eeced586fdb27ea7fe7337788802cf8f57cfca - commonmarker (2.9.0-arm64-darwin) sha256=1748dbfa4f5813b0d2a14bb4bbfa65a4ec293aa1c825016d60029ee0e132b046 - commonmarker (2.9.0-x86_64-darwin) sha256=0a9914ccfd2f5d2a59c7bd0dda4fe90eb084cf513b477e499008e09ec9d6edd6 - commonmarker (2.9.0-x86_64-linux) sha256=8cfe92970eef585a19ddf6613224b91cab64d6029834661bda801f877c9c7f43 - commonmarker (2.9.0-x86_64-linux-musl) sha256=293921398b839f79ceaf55010e061357e34f053822c3b003cd0be6686176335e - commonmarker-merge (7.1.0) concurrent-ruby (1.3.7) sha256=4412caec3a5ea2e5fdc52076724c071a81f2c0593d83b2ac8cbb8ca63b3151b0 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 @@ -737,7 +429,6 @@ CHECKSUMS diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 docile (1.4.1) sha256=96159be799bfa73cdb721b840e9802126e4e03dfc26863db73647204c727f21e - dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -750,27 +441,19 @@ CHECKSUMS gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f - go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 - json-merge (7.1.0) kettle-dev (2.3.7) sha256=eb370113cd030d03cbe2d33b31c99858951017e5ad21a17e9ed89dc3770028ee - kettle-drift (1.0.5) sha256=07094e80140a049164142820bdd327c30fcd855bb00697a0a430600a2b5144a2 - kettle-jem (7.1.0) kettle-rb (0.1.4) sha256=9cef7ce4f7021666b7222292f29051e51eaf042e8a5db11f3f4dd72f74243fc1 kettle-soup-cover (1.1.3) sha256=a373827da22a7131d093afd32945e5b7d7a10a01ebfdded8fd2cb8230d69c8ad kettle-test (2.0.11) sha256=c710c90f7ab79d51f9452f0c09f5f90657e7a893f63583855c164d0b1b107ab2 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa - kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 - markdown-merge (7.1.0) - markly (0.16.0) sha256=6f70d79e385b1efc9e171f74c81628826259039fe6c778e03c3924c71dac5511 - markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-aarch64-linux-gnu) sha256=1269fb644a6de405057a53dd5c762b1209b43ca7424f839454d3dbc677c31a8f nokogiri (1.19.4-aarch64-linux-musl) sha256=35c65b9ce72b3bb03207bdbe7067915019dc18c1b9b59139684bd6690fdd01af @@ -785,14 +468,10 @@ CHECKSUMS parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 - parslet-toml-merge (7.1.0) - plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 - prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 - psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a @@ -800,7 +479,6 @@ CHECKSUMS rake-compiler-dock (1.12.0) sha256=f13205c2738f3d2053afcd03491a9e4541b22a59a0bfc53fc8bc883bd8188023 rb_sys (0.9.127) sha256=e9f90df3bb0577472d26d96127d5b5774b98f44de881e7d36aeefd28d6337847 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 - rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb @@ -828,12 +506,9 @@ CHECKSUMS rubocop-rspec (3.10.2) sha256=0b3e2ecc592cd10ecbf0095bb58d1e357905276e069643523cc19eb7495f65e2 rubocop-ruby3_2 (3.0.7) sha256=f53dd6d286fb05186214fc6ec116783e7f837030918e8931c05de773e98f8466 rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 - ruby-merge (7.1.0) ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 - rust-merge (7.1.0) - service_actor (3.9.4) sha256=e63b523630b9a7e62959b2a90113b08d2565b5de9c148557b281ef847c9539ce silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (0.22.0) sha256=fe2622c7834ff23b98066bb0a854284b2729a569ac659f82621fc22ef36213a5 simplecov-cobertura (3.2.0) sha256=70d702658677fcb20e5aceb6915ccf8bc62ff2ccd38b62b3ad5c9db5c0888740 @@ -842,7 +517,6 @@ CHECKSUMS simplecov-lcov (0.9.0) sha256=7a77a31e200a595ed4b0249493056efd0c920601f53d2ef135ca34ee796346cd simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_json_formatter (0.1.4) sha256=529418fbe8de1713ac2b2d612aa3daa56d316975d307244399fa4838c601b428 - smorg-rb (7.1.0) sorbet-runtime (0.6.13342) sha256=dbeb9892597f593ed2b29e38018912787f6c4e0c4b736d8af0d6bd3c63bde3c3 standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b @@ -855,20 +529,18 @@ CHECKSUMS thor (1.5.0) sha256=e3a9e55fe857e44859ce104a84675ab6e8cd59c650a49106a05f55f136425e73 timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 - token-resolver (2.0.4) sha256=33b926958f504525bba3ed511ab66fbcbf8ef30390815e931436b30f27ffcad0 - toml (0.3.0) sha256=0a91d0f76a9036e84e44f95693b12f58d358c1df3ac8e3b5271f2056ecc6e4b9 - toml-merge (7.1.0) - toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 tree_haver (7.1.0) - tree_sitter_language_pack (1.12.5) + tree_sitter_language_pack (1.13.2) + tree_sitter_language_pack (1.13.2-aarch64-linux) + tree_sitter_language_pack (1.13.2-arm64-darwin) + tree_sitter_language_pack (1.13.2-x86_64-darwin) + tree_sitter_language_pack (1.13.2-x86_64-linux) tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 - typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 - yaml-merge (7.1.0) yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd @@ -876,7 +548,6 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 - zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH diff --git a/gems/citrus-toml-merge/Gemfile b/gems/citrus-toml-merge/Gemfile index 2f39a8ac7..01c7e0161 100644 --- a/gems/citrus-toml-merge/Gemfile +++ b/gems/citrus-toml-merge/Gemfile @@ -71,14 +71,8 @@ if direct_sibling_gems.any? && end end -# Use the released TSLP gem by default; templating can override it via VENDORED_GEMS. -vendored_gems = ENV.fetch('VENDORED_GEMS', '').split(',').map(&:strip) -tslp_declared_by_templating = - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? && - vendored_gems.include?('tree_sitter_language_pack') -unless tslp_declared_by_templating - gem 'tree_sitter_language_pack', '>= 1.13.2', '< 2.0' -end +# Use the StructuredMerge TSLP fork until the Ruby ABI platform-gem fix is released. +gem 'tree_sitter_language_pack', git: 'https://github.com/structuredmerge/tree-sitter-language-pack.git', branch: 'fix/ruby-4-platform-gem-abi', glob: 'packages/ruby/*.gemspec' # Templating (env-switched: STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local paths) eval_gemfile 'gemfiles/modular/templating.gemfile' if ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? diff --git a/gems/citrus-toml-merge/Gemfile.lock b/gems/citrus-toml-merge/Gemfile.lock index 417371cb2..313c8a568 100644 --- a/gems/citrus-toml-merge/Gemfile.lock +++ b/gems/citrus-toml-merge/Gemfile.lock @@ -1,3 +1,21 @@ +GIT + remote: https://github.com/structuredmerge/tree-sitter-language-pack.git + revision: e736879d00ce55b9bbfa479a5c07363bde1512e2 + branch: fix/ruby-4-platform-gem-abi + glob: packages/ruby/*.gemspec + specs: + tree_sitter_language_pack (1.13.2) + rb_sys (>= 0.9, < 0.9.128) + sorbet-runtime (~> 0.5) + tree_sitter_language_pack (1.13.2-aarch64-linux) + sorbet-runtime (~> 0.5) + tree_sitter_language_pack (1.13.2-arm64-darwin) + sorbet-runtime (~> 0.5) + tree_sitter_language_pack (1.13.2-x86_64-darwin) + sorbet-runtime (~> 0.5) + tree_sitter_language_pack (1.13.2-x86_64-linux) + sorbet-runtime (~> 0.5) + PATH remote: . specs: @@ -6,272 +24,6 @@ PATH toml-rb (~> 4.1) version_gem (~> 1.1, >= 1.1.9) -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly - specs: - ast-crispr-markdown-markly (7.1.0) - ast-crispr (= 7.1.0) - markly-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism - specs: - ast-crispr-ruby-prism (7.1.0) - ast-crispr (= 7.1.0) - prism-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr - specs: - ast-crispr (7.1.0) - ast-merge (= 7.1.0) - service_actor (~> 3.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git - specs: - ast-merge-git (7.1.0) - ast-merge (= 7.1.0) - json-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge - specs: - ast-merge (7.1.0) - benchmark - token-resolver (~> 2.0, >= 2.0.4) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template - specs: - ast-template (7.1.0) - ast-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge - specs: - bash-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge - specs: - binary-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge - specs: - commonmarker-merge (7.1.0) - commonmarker (~> 2.2) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge - specs: - dotenv-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge - specs: - go-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge - specs: - json-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem - specs: - kettle-jem (7.1.0) - addressable (>= 2.8, < 3) - ast-crispr-markdown-markly (= 7.1.0) - ast-crispr-ruby-prism (= 7.1.0) - ast-merge (= 7.1.0) - bash-merge (= 7.1.0) - citrus-toml-merge (= 7.1.0) - commonmarker-merge (= 7.1.0) - dotenv-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-dev (~> 2.3, >= 2.3.5) - kettle-rb (~> 0.1, >= 0.1.4) - kramdown-merge (= 7.1.0) - markdown-merge (= 7.1.0) - markly-merge (= 7.1.0) - prism-merge (= 7.1.0) - psych-merge (= 7.1.0) - rbs (>= 3.10) - rbs-merge (= 7.1.0) - ruby-merge (= 7.1.0) - token-resolver (~> 2.0, >= 2.0.4) - toml-merge (= 7.1.0) - toml-rb (~> 4.2) - tree_haver (= 7.1.0) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge - specs: - kramdown-merge (7.1.0) - kramdown (~> 2.5) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge - specs: - markdown-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge - specs: - markly-merge (7.1.0) - markdown-merge (= 7.1.0) - markly (~> 0.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge - specs: - parslet-toml-merge (7.1.0) - toml (~> 0.3) - toml-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge - specs: - plain-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge - specs: - prism-merge (7.1.0) - prism (~> 1.6) - ruby-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge - specs: - psych-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge - specs: - rbs-merge (7.1.0) - ast-merge (= 7.1.0) - rbs (>= 3.10) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge - specs: - ruby-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge - specs: - rust-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb - specs: - smorg-rb (7.1.0) - ast-merge (= 7.1.0) - ast-merge-git (= 7.1.0) - go-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-jem (= 7.1.0) - markly-merge (= 7.1.0) - plain-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge - specs: - toml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver - specs: - tree_haver (7.1.0) - citrus (~> 3.0) - parslet (~> 2.0) - tree_sitter_language_pack (>= 1.9.0.pre.rc.40, < 2.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge - specs: - typescript-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge - specs: - yaml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge - specs: - zip-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /var/home/pboling/src/my/structuredmerge/vendor/tree-sitter-language-pack/packages/ruby - specs: - tree_sitter_language_pack (1.12.5) - rb_sys (>= 0.9, < 0.9.128) - sorbet-runtime (~> 0.5) - GEM remote: https://gem.coop/ specs: @@ -283,6 +35,11 @@ GEM rake (>= 10) thor (>= 0.14) ast (2.4.3) + ast-merge (7.1.0) + benchmark + token-resolver (~> 2.0, >= 2.0.4) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) backports (3.25.3) benchmark (0.5.0) bigdecimal (4.1.2) @@ -291,12 +48,6 @@ GEM thor (~> 1.0) citrus (3.0.2) cmdparse (3.0.7) - commonmarker (2.9.0-aarch64-linux) - commonmarker (2.9.0-aarch64-linux-musl) - commonmarker (2.9.0-arm64-darwin) - commonmarker (2.9.0-x86_64-darwin) - commonmarker (2.9.0-x86_64-linux) - commonmarker (2.9.0-x86_64-linux-musl) concurrent-ruby (1.3.7) date (3.5.1) debug (1.11.1) @@ -360,8 +111,6 @@ GEM kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) - kettle-drift (1.0.5) - version_gem (~> 1.1, >= 1.1.13) kettle-rb (0.1.4) kettle-soup-cover (1.1.3) simplecov (~> 0.22) @@ -390,7 +139,6 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) - markly (0.16.0) mutex_m (0.3.0) nokogiri (1.19.4-aarch64-linux-gnu) racc (~> 1.4) @@ -530,8 +278,6 @@ GEM ruby-progressbar (1.13.0) ruby_engine (2.0.3) ruby_version (1.0.3) - service_actor (3.9.4) - zeitwerk (>= 1.0) silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) @@ -584,11 +330,18 @@ GEM token-resolver (2.0.4) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.13) - toml (0.3.0) - parslet (>= 1.8.0, < 3.0.0) + toml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) toml-rb (4.2.0) citrus (~> 3.0, > 3.0) racc (~> 1.7) + tree_haver (7.1.0) + citrus (~> 3.0) + parslet (~> 2.0) + tree_sitter_language_pack (>= 1.9.0.pre.rc.40, < 2.0) + version_gem (~> 1.1, >= 1.1.9) tsort (0.2.0) turbo_tests2 (3.2.0) parallel_tests (>= 3.3.0, < 6) @@ -635,45 +388,23 @@ PLATFORMS DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) - ast-crispr! - ast-crispr-markdown-markly! - ast-crispr-ruby-prism! - ast-merge! - ast-merge-git! - ast-template! - bash-merge! benchmark (~> 0.5, >= 0.5.0) - binary-merge! bundler-audit (~> 0.9.3) citrus-toml-merge! - commonmarker-merge! debug (>= 1.1) - dotenv-merge! erb (~> 6.0, >= 6.0.4) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.0) - go-merge! irb (~> 1.17) - json-merge! kettle-dev (~> 2.0, >= 2.2.25) - kettle-drift (~> 1.0, >= 1.0.5) - kettle-jem! kettle-soup-cover (~> 1.0, >= 1.1.3) kettle-test (~> 2.0, >= 2.0.9) kramdown (~> 2.5, >= 2.5.1) - kramdown-merge! kramdown-parser-gfm (~> 1.1) - markdown-merge! - markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) - parslet-toml-merge! - plain-merge! - prism-merge! - psych-merge! rake (~> 13.0) rbs (>= 3.0) - rbs-merge! rdoc (~> 6.11) reek (~> 6.5) require_bench (~> 1.0, >= 1.0.4) @@ -682,54 +413,32 @@ DEPENDENCIES rubocop-packaging (~> 0.6, >= 0.6.0) rubocop-rspec (~> 3.6) rubocop-ruby3_2 (~> 3.0.0) - ruby-merge! ruby-progressbar (~> 1.13) - rust-merge! - smorg-rb! standard (>= 1.50) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) - toml-merge! - tree_haver! tree_sitter_language_pack! - typescript-merge! yaml-converter (~> 0.1) - yaml-merge! yard (~> 0.9, >= 0.9.44) yard-fence (~> 0.9, >= 0.9.1) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) yard-timekeeper (~> 0.1) yard-yaml (~> 0.1, >= 0.1.2) - zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af ansi (1.6.0) sha256=ac9ea0c0ea8d32fb4e271348e609963ac78882f34b73836c2a02b3622e666658 appraisal2 (3.2.0) sha256=ccd0b767ac4060cd7af6d16747459b6990f49c39c7b4fb1f7d1146b1e97c492f ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 - ast-crispr (7.1.0) - ast-crispr-markdown-markly (7.1.0) - ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) - ast-merge-git (7.1.0) - ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 - bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd - binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 - commonmarker (2.9.0-aarch64-linux) sha256=e2b4aadb9a2cfa4e206582641ce3a49465549ac1ed4c289fdd63b78d8f24579c - commonmarker (2.9.0-aarch64-linux-musl) sha256=1cf4d2821f2a7e64945f1ed7c4eeced586fdb27ea7fe7337788802cf8f57cfca - commonmarker (2.9.0-arm64-darwin) sha256=1748dbfa4f5813b0d2a14bb4bbfa65a4ec293aa1c825016d60029ee0e132b046 - commonmarker (2.9.0-x86_64-darwin) sha256=0a9914ccfd2f5d2a59c7bd0dda4fe90eb084cf513b477e499008e09ec9d6edd6 - commonmarker (2.9.0-x86_64-linux) sha256=8cfe92970eef585a19ddf6613224b91cab64d6029834661bda801f877c9c7f43 - commonmarker (2.9.0-x86_64-linux-musl) sha256=293921398b839f79ceaf55010e061357e34f053822c3b003cd0be6686176335e - commonmarker-merge (7.1.0) concurrent-ruby (1.3.7) sha256=4412caec3a5ea2e5fdc52076724c071a81f2c0593d83b2ac8cbb8ca63b3151b0 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 @@ -737,7 +446,6 @@ CHECKSUMS diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 docile (1.4.1) sha256=96159be799bfa73cdb721b840e9802126e4e03dfc26863db73647204c727f21e - dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -750,27 +458,19 @@ CHECKSUMS gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f - go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 - json-merge (7.1.0) kettle-dev (2.3.7) sha256=eb370113cd030d03cbe2d33b31c99858951017e5ad21a17e9ed89dc3770028ee - kettle-drift (1.0.5) sha256=07094e80140a049164142820bdd327c30fcd855bb00697a0a430600a2b5144a2 - kettle-jem (7.1.0) kettle-rb (0.1.4) sha256=9cef7ce4f7021666b7222292f29051e51eaf042e8a5db11f3f4dd72f74243fc1 kettle-soup-cover (1.1.3) sha256=a373827da22a7131d093afd32945e5b7d7a10a01ebfdded8fd2cb8230d69c8ad kettle-test (2.0.11) sha256=c710c90f7ab79d51f9452f0c09f5f90657e7a893f63583855c164d0b1b107ab2 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa - kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 - markdown-merge (7.1.0) - markly (0.16.0) sha256=6f70d79e385b1efc9e171f74c81628826259039fe6c778e03c3924c71dac5511 - markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-aarch64-linux-gnu) sha256=1269fb644a6de405057a53dd5c762b1209b43ca7424f839454d3dbc677c31a8f nokogiri (1.19.4-aarch64-linux-musl) sha256=35c65b9ce72b3bb03207bdbe7067915019dc18c1b9b59139684bd6690fdd01af @@ -785,14 +485,10 @@ CHECKSUMS parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 - parslet-toml-merge (7.1.0) - plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 - prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 - psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a @@ -800,7 +496,6 @@ CHECKSUMS rake-compiler-dock (1.12.0) sha256=f13205c2738f3d2053afcd03491a9e4541b22a59a0bfc53fc8bc883bd8188023 rb_sys (0.9.127) sha256=e9f90df3bb0577472d26d96127d5b5774b98f44de881e7d36aeefd28d6337847 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 - rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb @@ -828,12 +523,9 @@ CHECKSUMS rubocop-rspec (3.10.2) sha256=0b3e2ecc592cd10ecbf0095bb58d1e357905276e069643523cc19eb7495f65e2 rubocop-ruby3_2 (3.0.7) sha256=f53dd6d286fb05186214fc6ec116783e7f837030918e8931c05de773e98f8466 rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 - ruby-merge (7.1.0) ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 - rust-merge (7.1.0) - service_actor (3.9.4) sha256=e63b523630b9a7e62959b2a90113b08d2565b5de9c148557b281ef847c9539ce silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (0.22.0) sha256=fe2622c7834ff23b98066bb0a854284b2729a569ac659f82621fc22ef36213a5 simplecov-cobertura (3.2.0) sha256=70d702658677fcb20e5aceb6915ccf8bc62ff2ccd38b62b3ad5c9db5c0888740 @@ -842,7 +534,6 @@ CHECKSUMS simplecov-lcov (0.9.0) sha256=7a77a31e200a595ed4b0249493056efd0c920601f53d2ef135ca34ee796346cd simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_json_formatter (0.1.4) sha256=529418fbe8de1713ac2b2d612aa3daa56d316975d307244399fa4838c601b428 - smorg-rb (7.1.0) sorbet-runtime (0.6.13342) sha256=dbeb9892597f593ed2b29e38018912787f6c4e0c4b736d8af0d6bd3c63bde3c3 standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b @@ -856,19 +547,20 @@ CHECKSUMS timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.4) sha256=33b926958f504525bba3ed511ab66fbcbf8ef30390815e931436b30f27ffcad0 - toml (0.3.0) sha256=0a91d0f76a9036e84e44f95693b12f58d358c1df3ac8e3b5271f2056ecc6e4b9 toml-merge (7.1.0) toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 tree_haver (7.1.0) - tree_sitter_language_pack (1.12.5) + tree_sitter_language_pack (1.13.2) + tree_sitter_language_pack (1.13.2-aarch64-linux) + tree_sitter_language_pack (1.13.2-arm64-darwin) + tree_sitter_language_pack (1.13.2-x86_64-darwin) + tree_sitter_language_pack (1.13.2-x86_64-linux) tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 - typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 - yaml-merge (7.1.0) yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd @@ -876,7 +568,6 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 - zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH diff --git a/gems/commonmarker-merge/Gemfile b/gems/commonmarker-merge/Gemfile index c85609d70..16099b573 100644 --- a/gems/commonmarker-merge/Gemfile +++ b/gems/commonmarker-merge/Gemfile @@ -71,14 +71,8 @@ if direct_sibling_gems.any? && end end -# Use the released TSLP gem by default; templating can override it via VENDORED_GEMS. -vendored_gems = ENV.fetch('VENDORED_GEMS', '').split(',').map(&:strip) -tslp_declared_by_templating = - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? && - vendored_gems.include?('tree_sitter_language_pack') -unless tslp_declared_by_templating - gem 'tree_sitter_language_pack', '>= 1.13.2', '< 2.0' -end +# Use the StructuredMerge TSLP fork until the Ruby ABI platform-gem fix is released. +gem 'tree_sitter_language_pack', git: 'https://github.com/structuredmerge/tree-sitter-language-pack.git', branch: 'fix/ruby-4-platform-gem-abi', glob: 'packages/ruby/*.gemspec' # Templating (env-switched: STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local paths) eval_gemfile 'gemfiles/modular/templating.gemfile' if ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? diff --git a/gems/commonmarker-merge/Gemfile.lock b/gems/commonmarker-merge/Gemfile.lock index 55e28bf0c..12f872a14 100644 --- a/gems/commonmarker-merge/Gemfile.lock +++ b/gems/commonmarker-merge/Gemfile.lock @@ -1,3 +1,21 @@ +GIT + remote: https://github.com/structuredmerge/tree-sitter-language-pack.git + revision: e736879d00ce55b9bbfa479a5c07363bde1512e2 + branch: fix/ruby-4-platform-gem-abi + glob: packages/ruby/*.gemspec + specs: + tree_sitter_language_pack (1.13.2) + rb_sys (>= 0.9, < 0.9.128) + sorbet-runtime (~> 0.5) + tree_sitter_language_pack (1.13.2-aarch64-linux) + sorbet-runtime (~> 0.5) + tree_sitter_language_pack (1.13.2-arm64-darwin) + sorbet-runtime (~> 0.5) + tree_sitter_language_pack (1.13.2-x86_64-darwin) + sorbet-runtime (~> 0.5) + tree_sitter_language_pack (1.13.2-x86_64-linux) + sorbet-runtime (~> 0.5) + PATH remote: . specs: @@ -6,272 +24,6 @@ PATH markdown-merge (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly - specs: - ast-crispr-markdown-markly (7.1.0) - ast-crispr (= 7.1.0) - markly-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism - specs: - ast-crispr-ruby-prism (7.1.0) - ast-crispr (= 7.1.0) - prism-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr - specs: - ast-crispr (7.1.0) - ast-merge (= 7.1.0) - service_actor (~> 3.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git - specs: - ast-merge-git (7.1.0) - ast-merge (= 7.1.0) - json-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge - specs: - ast-merge (7.1.0) - benchmark - token-resolver (~> 2.0, >= 2.0.4) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template - specs: - ast-template (7.1.0) - ast-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge - specs: - bash-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge - specs: - binary-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge - specs: - citrus-toml-merge (7.1.0) - toml-merge (= 7.1.0) - toml-rb (~> 4.1) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge - specs: - dotenv-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge - specs: - go-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge - specs: - json-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem - specs: - kettle-jem (7.1.0) - addressable (>= 2.8, < 3) - ast-crispr-markdown-markly (= 7.1.0) - ast-crispr-ruby-prism (= 7.1.0) - ast-merge (= 7.1.0) - bash-merge (= 7.1.0) - citrus-toml-merge (= 7.1.0) - commonmarker-merge (= 7.1.0) - dotenv-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-dev (~> 2.3, >= 2.3.5) - kettle-rb (~> 0.1, >= 0.1.4) - kramdown-merge (= 7.1.0) - markdown-merge (= 7.1.0) - markly-merge (= 7.1.0) - prism-merge (= 7.1.0) - psych-merge (= 7.1.0) - rbs (>= 3.10) - rbs-merge (= 7.1.0) - ruby-merge (= 7.1.0) - token-resolver (~> 2.0, >= 2.0.4) - toml-merge (= 7.1.0) - toml-rb (~> 4.2) - tree_haver (= 7.1.0) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge - specs: - kramdown-merge (7.1.0) - kramdown (~> 2.5) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge - specs: - markdown-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge - specs: - markly-merge (7.1.0) - markdown-merge (= 7.1.0) - markly (~> 0.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge - specs: - parslet-toml-merge (7.1.0) - toml (~> 0.3) - toml-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge - specs: - plain-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge - specs: - prism-merge (7.1.0) - prism (~> 1.6) - ruby-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge - specs: - psych-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge - specs: - rbs-merge (7.1.0) - ast-merge (= 7.1.0) - rbs (>= 3.10) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge - specs: - ruby-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge - specs: - rust-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb - specs: - smorg-rb (7.1.0) - ast-merge (= 7.1.0) - ast-merge-git (= 7.1.0) - go-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-jem (= 7.1.0) - markly-merge (= 7.1.0) - plain-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge - specs: - toml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver - specs: - tree_haver (7.1.0) - citrus (~> 3.0) - parslet (~> 2.0) - tree_sitter_language_pack (>= 1.9.0.pre.rc.40, < 2.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge - specs: - typescript-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge - specs: - yaml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge - specs: - zip-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /var/home/pboling/src/my/structuredmerge/vendor/tree-sitter-language-pack/packages/ruby - specs: - tree_sitter_language_pack (1.12.5) - rb_sys (>= 0.9, < 0.9.128) - sorbet-runtime (~> 0.5) - GEM remote: https://gem.coop/ specs: @@ -283,6 +35,11 @@ GEM rake (>= 10) thor (>= 0.14) ast (2.4.3) + ast-merge (7.1.0) + benchmark + token-resolver (~> 2.0, >= 2.0.4) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) backports (3.25.3) benchmark (0.5.0) bigdecimal (4.1.2) @@ -360,8 +117,6 @@ GEM kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) - kettle-drift (1.0.5) - version_gem (~> 1.1, >= 1.1.13) kettle-rb (0.1.4) kettle-soup-cover (1.1.3) simplecov (~> 0.22) @@ -390,7 +145,10 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) - markly (0.16.0) + markdown-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) mutex_m (0.3.0) nokogiri (1.19.4-aarch64-linux-gnu) racc (~> 1.4) @@ -530,8 +288,6 @@ GEM ruby-progressbar (1.13.0) ruby_engine (2.0.3) ruby_version (1.0.3) - service_actor (3.9.4) - zeitwerk (>= 1.0) silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) @@ -584,11 +340,11 @@ GEM token-resolver (2.0.4) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.13) - toml (0.3.0) - parslet (>= 1.8.0, < 3.0.0) - toml-rb (4.2.0) - citrus (~> 3.0, > 3.0) - racc (~> 1.7) + tree_haver (7.1.0) + citrus (~> 3.0) + parslet (~> 2.0) + tree_sitter_language_pack (>= 1.9.0.pre.rc.40, < 2.0) + version_gem (~> 1.1, >= 1.1.9) tsort (0.2.0) turbo_tests2 (3.2.0) parallel_tests (>= 3.3.0, < 6) @@ -635,45 +391,23 @@ PLATFORMS DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) - ast-crispr! - ast-crispr-markdown-markly! - ast-crispr-ruby-prism! - ast-merge! - ast-merge-git! - ast-template! - bash-merge! benchmark (~> 0.5, >= 0.5.0) - binary-merge! bundler-audit (~> 0.9.3) - citrus-toml-merge! commonmarker-merge! debug (>= 1.1) - dotenv-merge! erb (~> 6.0, >= 6.0.4) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.0) - go-merge! irb (~> 1.17) - json-merge! kettle-dev (~> 2.0, >= 2.2.25) - kettle-drift (~> 1.0, >= 1.0.5) - kettle-jem! kettle-soup-cover (~> 1.0, >= 1.1.3) kettle-test (~> 2.0, >= 2.0.9) kramdown (~> 2.5, >= 2.5.1) - kramdown-merge! kramdown-parser-gfm (~> 1.1) - markdown-merge! - markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) - parslet-toml-merge! - plain-merge! - prism-merge! - psych-merge! rake (~> 13.0) rbs (>= 3.0) - rbs-merge! rdoc (~> 6.11) reek (~> 6.5) require_bench (~> 1.0, >= 1.0.4) @@ -682,46 +416,30 @@ DEPENDENCIES rubocop-packaging (~> 0.6, >= 0.6.0) rubocop-rspec (~> 3.6) rubocop-ruby3_2 (~> 3.0.0) - ruby-merge! ruby-progressbar (~> 1.13) - rust-merge! - smorg-rb! standard (>= 1.50) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) - toml-merge! - tree_haver! tree_sitter_language_pack! - typescript-merge! yaml-converter (~> 0.1) - yaml-merge! yard (~> 0.9, >= 0.9.44) yard-fence (~> 0.9, >= 0.9.1) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) yard-timekeeper (~> 0.1) yard-yaml (~> 0.1, >= 0.1.2) - zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af ansi (1.6.0) sha256=ac9ea0c0ea8d32fb4e271348e609963ac78882f34b73836c2a02b3622e666658 appraisal2 (3.2.0) sha256=ccd0b767ac4060cd7af6d16747459b6990f49c39c7b4fb1f7d1146b1e97c492f ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 - ast-crispr (7.1.0) - ast-crispr-markdown-markly (7.1.0) - ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) - ast-merge-git (7.1.0) - ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 - bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd - binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 - citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 commonmarker (2.9.0-aarch64-linux) sha256=e2b4aadb9a2cfa4e206582641ce3a49465549ac1ed4c289fdd63b78d8f24579c commonmarker (2.9.0-aarch64-linux-musl) sha256=1cf4d2821f2a7e64945f1ed7c4eeced586fdb27ea7fe7337788802cf8f57cfca @@ -737,7 +455,6 @@ CHECKSUMS diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 docile (1.4.1) sha256=96159be799bfa73cdb721b840e9802126e4e03dfc26863db73647204c727f21e - dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -750,27 +467,20 @@ CHECKSUMS gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f - go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 - json-merge (7.1.0) kettle-dev (2.3.7) sha256=eb370113cd030d03cbe2d33b31c99858951017e5ad21a17e9ed89dc3770028ee - kettle-drift (1.0.5) sha256=07094e80140a049164142820bdd327c30fcd855bb00697a0a430600a2b5144a2 - kettle-jem (7.1.0) kettle-rb (0.1.4) sha256=9cef7ce4f7021666b7222292f29051e51eaf042e8a5db11f3f4dd72f74243fc1 kettle-soup-cover (1.1.3) sha256=a373827da22a7131d093afd32945e5b7d7a10a01ebfdded8fd2cb8230d69c8ad kettle-test (2.0.11) sha256=c710c90f7ab79d51f9452f0c09f5f90657e7a893f63583855c164d0b1b107ab2 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa - kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 markdown-merge (7.1.0) - markly (0.16.0) sha256=6f70d79e385b1efc9e171f74c81628826259039fe6c778e03c3924c71dac5511 - markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-aarch64-linux-gnu) sha256=1269fb644a6de405057a53dd5c762b1209b43ca7424f839454d3dbc677c31a8f nokogiri (1.19.4-aarch64-linux-musl) sha256=35c65b9ce72b3bb03207bdbe7067915019dc18c1b9b59139684bd6690fdd01af @@ -785,14 +495,10 @@ CHECKSUMS parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 - parslet-toml-merge (7.1.0) - plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 - prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 - psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a @@ -800,7 +506,6 @@ CHECKSUMS rake-compiler-dock (1.12.0) sha256=f13205c2738f3d2053afcd03491a9e4541b22a59a0bfc53fc8bc883bd8188023 rb_sys (0.9.127) sha256=e9f90df3bb0577472d26d96127d5b5774b98f44de881e7d36aeefd28d6337847 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 - rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb @@ -828,12 +533,9 @@ CHECKSUMS rubocop-rspec (3.10.2) sha256=0b3e2ecc592cd10ecbf0095bb58d1e357905276e069643523cc19eb7495f65e2 rubocop-ruby3_2 (3.0.7) sha256=f53dd6d286fb05186214fc6ec116783e7f837030918e8931c05de773e98f8466 rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 - ruby-merge (7.1.0) ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 - rust-merge (7.1.0) - service_actor (3.9.4) sha256=e63b523630b9a7e62959b2a90113b08d2565b5de9c148557b281ef847c9539ce silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (0.22.0) sha256=fe2622c7834ff23b98066bb0a854284b2729a569ac659f82621fc22ef36213a5 simplecov-cobertura (3.2.0) sha256=70d702658677fcb20e5aceb6915ccf8bc62ff2ccd38b62b3ad5c9db5c0888740 @@ -842,7 +544,6 @@ CHECKSUMS simplecov-lcov (0.9.0) sha256=7a77a31e200a595ed4b0249493056efd0c920601f53d2ef135ca34ee796346cd simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_json_formatter (0.1.4) sha256=529418fbe8de1713ac2b2d612aa3daa56d316975d307244399fa4838c601b428 - smorg-rb (7.1.0) sorbet-runtime (0.6.13342) sha256=dbeb9892597f593ed2b29e38018912787f6c4e0c4b736d8af0d6bd3c63bde3c3 standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b @@ -856,19 +557,18 @@ CHECKSUMS timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.4) sha256=33b926958f504525bba3ed511ab66fbcbf8ef30390815e931436b30f27ffcad0 - toml (0.3.0) sha256=0a91d0f76a9036e84e44f95693b12f58d358c1df3ac8e3b5271f2056ecc6e4b9 - toml-merge (7.1.0) - toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 tree_haver (7.1.0) - tree_sitter_language_pack (1.12.5) + tree_sitter_language_pack (1.13.2) + tree_sitter_language_pack (1.13.2-aarch64-linux) + tree_sitter_language_pack (1.13.2-arm64-darwin) + tree_sitter_language_pack (1.13.2-x86_64-darwin) + tree_sitter_language_pack (1.13.2-x86_64-linux) tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 - typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 - yaml-merge (7.1.0) yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd @@ -876,7 +576,6 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 - zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH diff --git a/gems/dotenv-merge/Gemfile b/gems/dotenv-merge/Gemfile index 53ea939e9..b842317b2 100644 --- a/gems/dotenv-merge/Gemfile +++ b/gems/dotenv-merge/Gemfile @@ -72,14 +72,8 @@ if direct_sibling_gems.any? && end end -# Use the released TSLP gem by default; templating can override it via VENDORED_GEMS. -vendored_gems = ENV.fetch('VENDORED_GEMS', '').split(',').map(&:strip) -tslp_declared_by_templating = - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? && - vendored_gems.include?('tree_sitter_language_pack') -unless tslp_declared_by_templating - gem 'tree_sitter_language_pack', '>= 1.13.2', '< 2.0' -end +# Use the StructuredMerge TSLP fork until the Ruby ABI platform-gem fix is released. +gem 'tree_sitter_language_pack', git: 'https://github.com/structuredmerge/tree-sitter-language-pack.git', branch: 'fix/ruby-4-platform-gem-abi', glob: 'packages/ruby/*.gemspec' # Templating (env-switched: STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local paths) eval_gemfile 'gemfiles/modular/templating.gemfile' if ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? diff --git a/gems/dotenv-merge/Gemfile.lock b/gems/dotenv-merge/Gemfile.lock index 86ca2c7bf..b34b63fb2 100644 --- a/gems/dotenv-merge/Gemfile.lock +++ b/gems/dotenv-merge/Gemfile.lock @@ -1,277 +1,29 @@ -PATH - remote: . - specs: - dotenv-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly - specs: - ast-crispr-markdown-markly (7.1.0) - ast-crispr (= 7.1.0) - markly-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism - specs: - ast-crispr-ruby-prism (7.1.0) - ast-crispr (= 7.1.0) - prism-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr - specs: - ast-crispr (7.1.0) - ast-merge (= 7.1.0) - service_actor (~> 3.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git - specs: - ast-merge-git (7.1.0) - ast-merge (= 7.1.0) - json-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge - specs: - ast-merge (7.1.0) - benchmark - token-resolver (~> 2.0, >= 2.0.4) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template - specs: - ast-template (7.1.0) - ast-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge - specs: - bash-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge - specs: - binary-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge - specs: - citrus-toml-merge (7.1.0) - toml-merge (= 7.1.0) - toml-rb (~> 4.1) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge - specs: - commonmarker-merge (7.1.0) - commonmarker (~> 2.2) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge - specs: - go-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge - specs: - json-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem - specs: - kettle-jem (7.1.0) - addressable (>= 2.8, < 3) - ast-crispr-markdown-markly (= 7.1.0) - ast-crispr-ruby-prism (= 7.1.0) - ast-merge (= 7.1.0) - bash-merge (= 7.1.0) - citrus-toml-merge (= 7.1.0) - commonmarker-merge (= 7.1.0) - dotenv-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-dev (~> 2.3, >= 2.3.5) - kettle-rb (~> 0.1, >= 0.1.4) - kramdown-merge (= 7.1.0) - markdown-merge (= 7.1.0) - markly-merge (= 7.1.0) - prism-merge (= 7.1.0) - psych-merge (= 7.1.0) - rbs (>= 3.10) - rbs-merge (= 7.1.0) - ruby-merge (= 7.1.0) - token-resolver (~> 2.0, >= 2.0.4) - toml-merge (= 7.1.0) - toml-rb (~> 4.2) - tree_haver (= 7.1.0) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge - specs: - kramdown-merge (7.1.0) - kramdown (~> 2.5) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge - specs: - markdown-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge - specs: - markly-merge (7.1.0) - markdown-merge (= 7.1.0) - markly (~> 0.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge - specs: - parslet-toml-merge (7.1.0) - toml (~> 0.3) - toml-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge - specs: - plain-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge +GIT + remote: https://github.com/structuredmerge/tree-sitter-language-pack.git + revision: e736879d00ce55b9bbfa479a5c07363bde1512e2 + branch: fix/ruby-4-platform-gem-abi + glob: packages/ruby/*.gemspec specs: - prism-merge (7.1.0) - prism (~> 1.6) - ruby-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge - specs: - psych-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - yaml-merge (= 7.1.0) + tree_sitter_language_pack (1.13.2) + rb_sys (>= 0.9, < 0.9.128) + sorbet-runtime (~> 0.5) + tree_sitter_language_pack (1.13.2-aarch64-linux) + sorbet-runtime (~> 0.5) + tree_sitter_language_pack (1.13.2-arm64-darwin) + sorbet-runtime (~> 0.5) + tree_sitter_language_pack (1.13.2-x86_64-darwin) + sorbet-runtime (~> 0.5) + tree_sitter_language_pack (1.13.2-x86_64-linux) + sorbet-runtime (~> 0.5) PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge + remote: . specs: - rbs-merge (7.1.0) + dotenv-merge (7.1.0) ast-merge (= 7.1.0) - rbs (>= 3.10) tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.14) -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge - specs: - ruby-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge - specs: - rust-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb - specs: - smorg-rb (7.1.0) - ast-merge (= 7.1.0) - ast-merge-git (= 7.1.0) - go-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-jem (= 7.1.0) - markly-merge (= 7.1.0) - plain-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge - specs: - toml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver - specs: - tree_haver (7.1.0) - citrus (~> 3.0) - parslet (~> 2.0) - tree_sitter_language_pack (>= 1.9.0.pre.rc.40, < 2.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge - specs: - typescript-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge - specs: - yaml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge - specs: - zip-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/vendor/tree_sitter_language_pack - specs: - tree_sitter_language_pack (1.13.1) - rb_sys (>= 0.9, < 0.9.128) - sorbet-runtime (~> 0.5) - GEM remote: https://gem.coop/ specs: @@ -283,6 +35,11 @@ GEM rake (>= 10) thor (>= 0.14) ast (2.4.3) + ast-merge (7.1.0) + benchmark + token-resolver (~> 2.0, >= 2.0.4) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) backports (3.25.3) benchmark (0.5.0) bigdecimal (4.1.2) @@ -291,12 +48,6 @@ GEM thor (~> 1.0) citrus (3.0.2) cmdparse (3.0.7) - commonmarker (2.9.0-aarch64-linux) - commonmarker (2.9.0-aarch64-linux-musl) - commonmarker (2.9.0-arm64-darwin) - commonmarker (2.9.0-x86_64-darwin) - commonmarker (2.9.0-x86_64-linux) - commonmarker (2.9.0-x86_64-linux-musl) concurrent-ruby (1.3.8) date (3.5.1) debug (1.11.1) @@ -360,8 +111,6 @@ GEM kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) - kettle-drift (1.0.5) - version_gem (~> 1.1, >= 1.1.13) kettle-rb (0.1.4) kettle-soup-cover (1.1.3) simplecov (~> 0.22) @@ -390,7 +139,6 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) - markly (0.16.0) mutex_m (0.3.0) nokogiri (1.19.4-aarch64-linux-gnu) racc (~> 1.4) @@ -530,8 +278,6 @@ GEM ruby-progressbar (1.13.0) ruby_engine (2.0.3) ruby_version (1.0.3) - service_actor (3.9.4) - zeitwerk (>= 1.0) silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) @@ -584,11 +330,11 @@ GEM token-resolver (2.0.4) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.13) - toml (0.3.0) - parslet (>= 1.8.0, < 3.0.0) - toml-rb (4.2.0) - citrus (~> 3.0, > 3.0) - racc (~> 1.7) + tree_haver (7.1.0) + citrus (~> 3.0) + parslet (~> 2.0) + tree_sitter_language_pack (>= 1.9.0.pre.rc.40, < 2.0) + version_gem (~> 1.1, >= 1.1.9) tsort (0.2.0) turbo_tests2 (3.2.0) parallel_tests (>= 3.3.0, < 6) @@ -635,45 +381,23 @@ PLATFORMS DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.2, >= 3.2.0) - ast-crispr! - ast-crispr-markdown-markly! - ast-crispr-ruby-prism! - ast-merge! - ast-merge-git! - ast-template! - bash-merge! benchmark (~> 0.5, >= 0.5.0) - binary-merge! bundler-audit (~> 0.9.3) - citrus-toml-merge! - commonmarker-merge! debug (>= 1.1) dotenv-merge! erb (~> 6.0, >= 6.0.4) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.4) - go-merge! irb (~> 1.17) - json-merge! kettle-dev (~> 2.3, >= 2.3.7) - kettle-drift (~> 1.0, >= 1.0.5) - kettle-jem! kettle-soup-cover (~> 1.0, >= 1.1.3) kettle-test (~> 2.0, >= 2.0.11) kramdown (~> 2.5, >= 2.5.1) - kramdown-merge! kramdown-parser-gfm (~> 1.1) - markdown-merge! - markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) - parslet-toml-merge! - plain-merge! - prism-merge! - psych-merge! rake (~> 13.0) rbs (>= 3.0) - rbs-merge! rdoc (~> 6.11) reek (~> 6.5) require_bench (~> 1.0, >= 1.0.4) @@ -682,55 +406,32 @@ DEPENDENCIES rubocop-packaging (~> 0.6, >= 0.6.0) rubocop-rspec (~> 3.6) rubocop-ruby3_2 (~> 3.0.0) - ruby-merge! ruby-progressbar (~> 1.13) - rust-merge! - smorg-rb! standard (>= 1.50) stone_checksums (~> 1.0, >= 1.0.6, >= 1.0.3) stringio (>= 3.0) - toml-merge! - tree_haver! tree_sitter_language_pack! turbo_tests2 (~> 3.2, >= 3.2.0) - typescript-merge! yaml-converter (~> 0.1) - yaml-merge! yard (~> 0.9, >= 0.9.44) yard-fence (~> 0.9, >= 0.9.1) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) yard-timekeeper (~> 0.1) yard-yaml (~> 0.1, >= 0.1.2) - zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af ansi (1.6.0) sha256=ac9ea0c0ea8d32fb4e271348e609963ac78882f34b73836c2a02b3622e666658 appraisal2 (3.2.0) sha256=ccd0b767ac4060cd7af6d16747459b6990f49c39c7b4fb1f7d1146b1e97c492f ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 - ast-crispr (7.1.0) - ast-crispr-markdown-markly (7.1.0) - ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) - ast-merge-git (7.1.0) - ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 - bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd - binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 - citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 - commonmarker (2.9.0-aarch64-linux) sha256=e2b4aadb9a2cfa4e206582641ce3a49465549ac1ed4c289fdd63b78d8f24579c - commonmarker (2.9.0-aarch64-linux-musl) sha256=1cf4d2821f2a7e64945f1ed7c4eeced586fdb27ea7fe7337788802cf8f57cfca - commonmarker (2.9.0-arm64-darwin) sha256=1748dbfa4f5813b0d2a14bb4bbfa65a4ec293aa1c825016d60029ee0e132b046 - commonmarker (2.9.0-x86_64-darwin) sha256=0a9914ccfd2f5d2a59c7bd0dda4fe90eb084cf513b477e499008e09ec9d6edd6 - commonmarker (2.9.0-x86_64-linux) sha256=8cfe92970eef585a19ddf6613224b91cab64d6029834661bda801f877c9c7f43 - commonmarker (2.9.0-x86_64-linux-musl) sha256=293921398b839f79ceaf55010e061357e34f053822c3b003cd0be6686176335e - commonmarker-merge (7.1.0) concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 @@ -751,27 +452,19 @@ CHECKSUMS gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f - go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 - json-merge (7.1.0) kettle-dev (2.3.7) sha256=eb370113cd030d03cbe2d33b31c99858951017e5ad21a17e9ed89dc3770028ee - kettle-drift (1.0.5) sha256=07094e80140a049164142820bdd327c30fcd855bb00697a0a430600a2b5144a2 - kettle-jem (7.1.0) kettle-rb (0.1.4) sha256=9cef7ce4f7021666b7222292f29051e51eaf042e8a5db11f3f4dd72f74243fc1 kettle-soup-cover (1.1.3) sha256=a373827da22a7131d093afd32945e5b7d7a10a01ebfdded8fd2cb8230d69c8ad kettle-test (2.0.11) sha256=c710c90f7ab79d51f9452f0c09f5f90657e7a893f63583855c164d0b1b107ab2 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa - kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 - markdown-merge (7.1.0) - markly (0.16.0) sha256=6f70d79e385b1efc9e171f74c81628826259039fe6c778e03c3924c71dac5511 - markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-aarch64-linux-gnu) sha256=1269fb644a6de405057a53dd5c762b1209b43ca7424f839454d3dbc677c31a8f nokogiri (1.19.4-aarch64-linux-musl) sha256=35c65b9ce72b3bb03207bdbe7067915019dc18c1b9b59139684bd6690fdd01af @@ -786,14 +479,10 @@ CHECKSUMS parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 - parslet-toml-merge (7.1.0) - plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 - prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 - psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a @@ -801,7 +490,6 @@ CHECKSUMS rake-compiler-dock (1.12.0) sha256=f13205c2738f3d2053afcd03491a9e4541b22a59a0bfc53fc8bc883bd8188023 rb_sys (0.9.127) sha256=e9f90df3bb0577472d26d96127d5b5774b98f44de881e7d36aeefd28d6337847 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 - rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb @@ -829,12 +517,9 @@ CHECKSUMS rubocop-rspec (3.10.2) sha256=0b3e2ecc592cd10ecbf0095bb58d1e357905276e069643523cc19eb7495f65e2 rubocop-ruby3_2 (3.0.7) sha256=f53dd6d286fb05186214fc6ec116783e7f837030918e8931c05de773e98f8466 rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 - ruby-merge (7.1.0) ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 - rust-merge (7.1.0) - service_actor (3.9.4) sha256=e63b523630b9a7e62959b2a90113b08d2565b5de9c148557b281ef847c9539ce silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (0.22.0) sha256=fe2622c7834ff23b98066bb0a854284b2729a569ac659f82621fc22ef36213a5 simplecov-cobertura (3.2.0) sha256=70d702658677fcb20e5aceb6915ccf8bc62ff2ccd38b62b3ad5c9db5c0888740 @@ -843,7 +528,6 @@ CHECKSUMS simplecov-lcov (0.9.0) sha256=7a77a31e200a595ed4b0249493056efd0c920601f53d2ef135ca34ee796346cd simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_json_formatter (0.1.4) sha256=529418fbe8de1713ac2b2d612aa3daa56d316975d307244399fa4838c601b428 - smorg-rb (7.1.0) sorbet-runtime (0.6.13342) sha256=dbeb9892597f593ed2b29e38018912787f6c4e0c4b736d8af0d6bd3c63bde3c3 standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b @@ -857,19 +541,18 @@ CHECKSUMS timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.4) sha256=33b926958f504525bba3ed511ab66fbcbf8ef30390815e931436b30f27ffcad0 - toml (0.3.0) sha256=0a91d0f76a9036e84e44f95693b12f58d358c1df3ac8e3b5271f2056ecc6e4b9 - toml-merge (7.1.0) - toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 tree_haver (7.1.0) - tree_sitter_language_pack (1.13.1) + tree_sitter_language_pack (1.13.2) + tree_sitter_language_pack (1.13.2-aarch64-linux) + tree_sitter_language_pack (1.13.2-arm64-darwin) + tree_sitter_language_pack (1.13.2-x86_64-darwin) + tree_sitter_language_pack (1.13.2-x86_64-linux) tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 - typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 - yaml-merge (7.1.0) yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd @@ -877,7 +560,6 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 - zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH diff --git a/gems/go-merge/Gemfile b/gems/go-merge/Gemfile index 6a1615787..f0a5a494d 100644 --- a/gems/go-merge/Gemfile +++ b/gems/go-merge/Gemfile @@ -72,14 +72,8 @@ if direct_sibling_gems.any? && end end -# Use the released TSLP gem by default; templating can override it via VENDORED_GEMS. -vendored_gems = ENV.fetch('VENDORED_GEMS', '').split(',').map(&:strip) -tslp_declared_by_templating = - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? && - vendored_gems.include?('tree_sitter_language_pack') -unless tslp_declared_by_templating - gem 'tree_sitter_language_pack', '>= 1.13.2', '< 2.0' -end +# Use the StructuredMerge TSLP fork until the Ruby ABI platform-gem fix is released. +gem 'tree_sitter_language_pack', git: 'https://github.com/structuredmerge/tree-sitter-language-pack.git', branch: 'fix/ruby-4-platform-gem-abi', glob: 'packages/ruby/*.gemspec' # Templating (env-switched: STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local paths) eval_gemfile 'gemfiles/modular/templating.gemfile' if ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? diff --git a/gems/go-merge/Gemfile.lock b/gems/go-merge/Gemfile.lock index 7f775ab68..cd05260d8 100644 --- a/gems/go-merge/Gemfile.lock +++ b/gems/go-merge/Gemfile.lock @@ -1,12 +1,20 @@ GIT remote: https://github.com/structuredmerge/tree-sitter-language-pack.git - revision: 85cac7836bb2f8cfcd3041a191b7bd11bf10924a - branch: fix/ruby-parser-api-methods + revision: e736879d00ce55b9bbfa479a5c07363bde1512e2 + branch: fix/ruby-4-platform-gem-abi glob: packages/ruby/*.gemspec specs: - tree_sitter_language_pack (1.12.5) + tree_sitter_language_pack (1.13.2) rb_sys (>= 0.9, < 0.9.128) sorbet-runtime (~> 0.5) + tree_sitter_language_pack (1.13.2-aarch64-linux) + sorbet-runtime (~> 0.5) + tree_sitter_language_pack (1.13.2-arm64-darwin) + sorbet-runtime (~> 0.5) + tree_sitter_language_pack (1.13.2-x86_64-darwin) + sorbet-runtime (~> 0.5) + tree_sitter_language_pack (1.13.2-x86_64-linux) + sorbet-runtime (~> 0.5) PATH remote: . @@ -321,7 +329,7 @@ GEM timecop (>= 0.7, < 1) token-resolver (2.0.4) parslet (~> 2.0) - version_gem (~> 1.1, >= 1.1.14) + version_gem (~> 1.1, >= 1.1.13) tree_haver (7.1.0) citrus (~> 3.0) parslet (~> 2.0) @@ -533,7 +541,11 @@ CHECKSUMS timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.4) sha256=33b926958f504525bba3ed511ab66fbcbf8ef30390815e931436b30f27ffcad0 tree_haver (7.1.0) - tree_sitter_language_pack (1.12.5) + tree_sitter_language_pack (1.13.2) + tree_sitter_language_pack (1.13.2-aarch64-linux) + tree_sitter_language_pack (1.13.2-arm64-darwin) + tree_sitter_language_pack (1.13.2-x86_64-darwin) + tree_sitter_language_pack (1.13.2-x86_64-linux) tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 diff --git a/gems/html-merge/Gemfile b/gems/html-merge/Gemfile index 7234e20f6..a6b14b39d 100644 --- a/gems/html-merge/Gemfile +++ b/gems/html-merge/Gemfile @@ -22,14 +22,8 @@ gemspec nomono_requirements = ["~> 1.0", ">= 1.0.8"] gem "nomono", *nomono_requirements, require: false # ruby >= 2.2 -# Use the released TSLP gem by default; templating can override it via VENDORED_GEMS. -vendored_gems = ENV.fetch("VENDORED_GEMS", "").split(",").map(&:strip) -tslp_declared_by_templating = - ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? && - vendored_gems.include?("tree_sitter_language_pack") -unless tslp_declared_by_templating - gem "tree_sitter_language_pack", ">= 1.13.2", "< 2.0" -end +# Use the StructuredMerge TSLP fork until the Ruby ABI platform-gem fix is released. +gem "tree_sitter_language_pack", git: "https://github.com/structuredmerge/tree-sitter-language-pack.git", branch: "fix/ruby-4-platform-gem-abi", glob: "packages/ruby/*.gemspec" # Templating (env-switched: STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local paths) eval_gemfile "gemfiles/modular/templating.gemfile" if ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? diff --git a/gems/html-merge/Gemfile.lock b/gems/html-merge/Gemfile.lock index c9c667163..052ad8fbc 100644 --- a/gems/html-merge/Gemfile.lock +++ b/gems/html-merge/Gemfile.lock @@ -1,327 +1,22 @@ -PATH - remote: . - specs: - html-merge (7.1.0) - ast-crispr (= 7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/kettle-dev/kettle-dev - specs: - kettle-dev (2.3.7) - emoji_regex (>= 15.0) - kettle-rb (~> 0.1, >= 0.1.2) - kettle-test (~> 2.0, >= 2.0.4) - ruby-progressbar (~> 1.13) - -PATH - remote: /home/pboling/src/my/kettle-dev/kettle-drift - specs: - kettle-drift (1.0.5) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/kettle-dev/kettle-soup-cover - specs: - kettle-soup-cover (3.0.3) - kettle-wash (~> 0.1, >= 0.1.0) - simplecov (>= 1.0) - simplecov-cobertura (>= 4.0) - simplecov-console (~> 0.9, >= 0.9.5) - simplecov-rcov (~> 0.3, >= 0.3.7) - simplecov_lcov_formatter (~> 0.9, >= 0.9.0) - -PATH - remote: /home/pboling/src/my/kettle-dev/kettle-test +GIT + remote: https://github.com/structuredmerge/tree-sitter-language-pack.git + revision: e736879d00ce55b9bbfa479a5c07363bde1512e2 + branch: fix/ruby-4-platform-gem-abi + glob: packages/ruby/*.gemspec specs: - kettle-test (2.0.11) - appraisal2 (~> 3.0, >= 3.0.6) - backports (~> 3.0) - rspec (~> 3.0) - rspec-block_is_expected (~> 1.0, >= 1.0.6) - rspec-pending_for (~> 0.1, >= 0.1.20) - rspec-stubbed_env (~> 1.0, >= 1.0.6) - rspec_junit_formatter (~> 0.6) - silent_stream (~> 1.0, >= 1.0.12) - timecop-rspec (~> 1.0, >= 1.0.3) - turbo_tests2 (~> 3.1, >= 3.1.12) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly - specs: - ast-crispr-markdown-markly (7.1.0) - ast-crispr (= 7.1.0) - markly-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) + tree_sitter_language_pack (1.13.2) + rb_sys (>= 0.9, < 0.9.128) + sorbet-runtime (~> 0.5) PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism + remote: . specs: - ast-crispr-ruby-prism (7.1.0) + html-merge (7.1.0) ast-crispr (= 7.1.0) - prism-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr - specs: - ast-crispr (7.1.0) - ast-merge (= 7.1.0) - service_actor (~> 3.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git - specs: - ast-merge-git (7.1.0) - ast-merge (= 7.1.0) - json-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge - specs: - ast-merge (7.1.0) - benchmark - token-resolver (~> 2.0, >= 2.0.4) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template - specs: - ast-template (7.1.0) - ast-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge - specs: - bash-merge (7.1.0) ast-merge (= 7.1.0) tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge - specs: - binary-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge - specs: - citrus-toml-merge (7.1.0) - toml-merge (= 7.1.0) - toml-rb (~> 4.1) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge - specs: - commonmarker-merge (7.1.0) - commonmarker (~> 2.2) - markdown-merge (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge - specs: - dotenv-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge - specs: - go-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge - specs: - json-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem - specs: - kettle-jem (7.1.0) - addressable (>= 2.8, < 3) - ast-crispr-markdown-markly (= 7.1.0) - ast-crispr-ruby-prism (= 7.1.0) - ast-merge (= 7.1.0) - bash-merge (= 7.1.0) - citrus-toml-merge (= 7.1.0) - commonmarker-merge (= 7.1.0) - dotenv-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-dev (~> 2.3, >= 2.3.5) - kettle-rb (~> 0.1, >= 0.1.4) - kramdown-merge (= 7.1.0) - markdown-merge (= 7.1.0) - markly-merge (= 7.1.0) - prism-merge (= 7.1.0) - psych-merge (= 7.1.0) - rbs (>= 3.10) - rbs-merge (= 7.1.0) - ruby-merge (= 7.1.0) - token-resolver (~> 2.0, >= 2.0.4) - toml-merge (= 7.1.0) - toml-rb (~> 4.2) - tree_haver (= 7.1.0) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge - specs: - kramdown-merge (7.1.0) - kramdown (~> 2.5) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge - specs: - markdown-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge - specs: - markly-merge (7.1.0) - markdown-merge (= 7.1.0) - markly (~> 0.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge - specs: - parslet-toml-merge (7.1.0) - toml (~> 0.3) - toml-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge - specs: - plain-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge - specs: - prism-merge (7.1.0) - prism (~> 1.6) - ruby-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge - specs: - psych-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge - specs: - rbs-merge (7.1.0) - ast-merge (= 7.1.0) - rbs (>= 3.10) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge - specs: - ruby-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge - specs: - rust-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb - specs: - smorg-rb (7.1.0) - ast-merge (= 7.1.0) - ast-merge-git (= 7.1.0) - go-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-jem (= 7.1.0) - markly-merge (= 7.1.0) - plain-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge - specs: - toml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver - specs: - tree_haver (7.1.0) - citrus (~> 3.0) - parslet (~> 2.0) - tree_sitter_language_pack (>= 1.9.0.pre.rc.40, < 2.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge - specs: - typescript-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge - specs: - yaml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge - specs: - zip-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/vendor/tree_sitter_language_pack - specs: - tree_sitter_language_pack (1.13.1) - rb_sys (>= 0.9, < 0.9.128) - sorbet-runtime (~> 0.5) - GEM remote: https://gem.coop/ specs: @@ -337,19 +32,25 @@ GEM rubocop (>= 1.0) version_gem (~> 1.1, >= 1.1.14) ast (2.4.3) - backports (3.25.3) + ast-crispr (7.1.0) + ast-merge (= 7.1.0) + service_actor (~> 3.9) + version_gem (~> 1.1, >= 1.1.9) + ast-merge (7.1.0) + benchmark + token-resolver (~> 2.0, >= 2.0.4) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) benchmark (0.5.0) bigdecimal (4.1.2) cgi (0.5.2) citrus (3.0.2) cmdparse (3.0.7) - commonmarker (2.9.0-x86_64-linux) concurrent-ruby (1.3.8) date (3.5.1) debug (1.11.1) irb (~> 1.10) reline (>= 0.3.8) - delegate (0.6.1) diff-lcs (1.6.2) diffy (3.4.4) dry-configurable (1.4.0) @@ -381,7 +82,6 @@ GEM dry-inflector (~> 1.0) dry-logic (~> 1.4) zeitwerk (~> 2.6) - emoji_regex (15.0.0) erb (6.0.5) gem_bench (2.0.5) bundler (>= 1.14) @@ -399,7 +99,13 @@ GEM rdoc (>= 4.0.0) reline (>= 0.4.2) json (2.21.1) - kettle-rb (0.1.4) + kettle-soup-cover (3.0.3) + kettle-wash (~> 0.1, >= 0.1.0) + simplecov (>= 1.0) + simplecov-cobertura (>= 4.0) + simplecov-console (~> 0.9, >= 0.9.5) + simplecov-rcov (~> 0.3, >= 0.3.7) + simplecov_lcov_formatter (~> 0.9, >= 0.9.0) kettle-wash (0.1.0) version_gem (~> 1.1, >= 1.1.14) kramdown (2.5.2) @@ -409,7 +115,6 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) - markly (0.16.0) mutex_m (0.3.0) nokogiri (1.19.4-x86_64-linux-gnu) racc (~> 1.4) @@ -417,8 +122,6 @@ GEM openssl (4.0.2) ostruct (0.6.3) parallel (1.28.0) - parallel_tests (5.7.0) - parallel parser (3.3.12.0) ast (~> 2.4.1) racc @@ -455,27 +158,6 @@ GEM reline (0.6.3) io-console (~> 0.5) rexml (3.4.4) - rspec (3.13.2) - rspec-core (~> 3.13.0) - rspec-expectations (~> 3.13.0) - rspec-mocks (~> 3.13.0) - rspec-block_is_expected (1.0.6) - rspec-core (3.13.6) - rspec-support (~> 3.13.0) - rspec-expectations (3.13.5) - diff-lcs (>= 1.2.0, < 2.0) - rspec-support (~> 3.13.0) - rspec-mocks (3.13.8) - diff-lcs (>= 1.2.0, < 2.0) - rspec-support (~> 3.13.0) - rspec-pending_for (0.1.21) - rspec-core (~> 3.0) - ruby_engine (~> 2.0) - ruby_version (~> 1.0) - rspec-stubbed_env (1.0.6) - rspec-support (3.13.7) - rspec_junit_formatter (0.6.0) - rspec-core (>= 2, < 4, != 2.12.0) rubocop (1.88.2) json (~> 2.3) language_server-protocol (~> 3.17.0.2) @@ -563,13 +245,8 @@ GEM rubocop (~> 1.72, >= 1.72.1) rubocop-ast (>= 1.44.0, < 2.0) ruby-progressbar (1.13.0) - ruby_engine (2.0.3) - ruby_version (1.0.3) service_actor (3.9.4) zeitwerk (>= 1.0) - silent_stream (1.0.12) - logger (~> 1.2) - version_gem (>= 1.1.8, < 3) simplecov (1.0.2) simplecov-cobertura (4.0.0) rexml @@ -611,24 +288,15 @@ GEM terminal-table (4.0.0) unicode-display_width (>= 1.1.1, < 4) thor (1.5.0) - timecop (0.9.11) - timecop-rspec (1.0.3) - delegate (~> 0.1) - rspec (~> 3.0) - timecop (>= 0.7, < 1) token-resolver (2.0.4) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.13) - toml (0.3.0) - parslet (>= 1.8.0, < 3.0.0) - toml-rb (4.2.0) - citrus (~> 3.0, > 3.0) - racc (~> 1.7) + tree_haver (7.1.0) + citrus (~> 3.0) + parslet (~> 2.0) + tree_sitter_language_pack (>= 1.9.0.pre.rc.40, < 2.0) + version_gem (~> 1.1, >= 1.1.9) tsort (0.2.0) - turbo_tests2 (3.2.0) - parallel_tests (>= 3.3.0, < 6) - rspec (>= 3.10) - version_gem (~> 1.1, >= 1.1.14) unicode-display_width (3.2.0) unicode-emoji (~> 4.1) unicode-emoji (4.2.0) @@ -665,44 +333,19 @@ PLATFORMS DEPENDENCIES addressable (>= 2.8, < 3) appraisal2-rubocop (~> 1.0, >= 1.0.0) - ast-crispr! - ast-crispr-markdown-markly! - ast-crispr-ruby-prism! - ast-merge! - ast-merge-git! - ast-template! - bash-merge! benchmark (~> 0.5, >= 0.5.0) - binary-merge! cgi (~> 0.5) - citrus-toml-merge! - commonmarker-merge! debug (>= 1.1) - dotenv-merge! erb (~> 6.0, >= 6.0.5) gem_bench (~> 2.0, >= 2.0.5) - go-merge! html-merge! irb (~> 1.17) - json-merge! - kettle-dev! - kettle-drift! - kettle-jem! - kettle-soup-cover! - kettle-test! + kettle-soup-cover (~> 3.0, >= 3.0.3) kramdown (~> 2.5, >= 2.5.2) - kramdown-merge! kramdown-parser-gfm (~> 1.1) - markdown-merge! - markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) - parslet-toml-merge! - plain-merge! - prism-merge! - psych-merge! rbs (>= 3.0) - rbs-merge! rdoc (~> 6.11) reek (~> 6.5, >= 6.5.0) rubocop-gradual (~> 0.4, >= 0.4.0) @@ -712,25 +355,17 @@ DEPENDENCIES rubocop-on-rbs (~> 2.0, >= 2.0.0) rubocop-packaging (~> 0.6, >= 0.6.0) rubocop-ruby3_2 (~> 3.0, >= 3.0.6) - ruby-merge! - rust-merge! - smorg-rb! standard (~> 1.56, >= 1.56.0) stringio (>= 3.0) - toml-merge! - tree_haver! tree_sitter_language_pack! - typescript-merge! webrick (~> 1.9) yaml-converter (~> 0.2, >= 0.2.3) - yaml-merge! yard (~> 0.9, >= 0.9.45) yard-fence (~> 0.9, >= 0.9.6) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) yard-timekeeper (~> 0.2, >= 0.2.4) yard-yaml (~> 0.2, >= 0.2.3) - zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af @@ -739,29 +374,17 @@ CHECKSUMS appraisal2-rubocop (1.0.0) sha256=b71410fbb014befda5340605a605b7f6f3f012739baf0acc5b4351b592c3258d ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 ast-crispr (7.1.0) - ast-crispr-markdown-markly (7.1.0) - ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) - ast-merge-git (7.1.0) - ast-template (7.1.0) - backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 - bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd - binary-merge (7.1.0) cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 - citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 - commonmarker (2.9.0-x86_64-linux) sha256=8cfe92970eef585a19ddf6613224b91cab64d6029834661bda801f877c9c7f43 - commonmarker-merge (7.1.0) concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 - delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 - dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -769,50 +392,33 @@ CHECKSUMS dry-logic (1.6.0) sha256=da6fedbc0f90fc41f9b0cc7e6f05f5d529d1efaef6c8dcc8e0733f685745cea2 dry-schema (1.16.0) sha256=cd3aaeabc0f1af66ec82a29096d4c4fb92a0a58b9dae29a22b1bbceb78985727 dry-types (1.9.1) sha256=baebeecdb9f8395d6c9d227b62011279440943e3ef2468fe8ccc1ba11467f178 - emoji_regex (15.0.0) sha256=a508b2c0bee561169564e0aec96085020c900520d335e5533fd8e78e59493829 erb (6.0.5) sha256=858e63488cb796c9daba8b6e9ff4b3879c395022049be9a66a8e00980e612eac gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 - go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 html-merge (7.1.0) io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 - json-merge (7.1.0) - kettle-dev (2.3.7) - kettle-drift (1.0.5) - kettle-jem (7.1.0) - kettle-rb (0.1.4) sha256=9cef7ce4f7021666b7222292f29051e51eaf042e8a5db11f3f4dd72f74243fc1 - kettle-soup-cover (3.0.3) - kettle-test (2.0.11) + kettle-soup-cover (3.0.3) sha256=5919649be35690e4580299a41ac7c44a9548a7ca38561ffdd3c683c9d63e6f9b kettle-wash (0.1.0) sha256=5c04b3900d0957339e7c7d9997bbd804599b68bde002e6f47f4e28a0eea22ea7 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa - kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 - markdown-merge (7.1.0) - markly (0.16.0) sha256=6f70d79e385b1efc9e171f74c81628826259039fe6c778e03c3924c71dac5511 - markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-x86_64-linux-gnu) sha256=379fae440b28915e3f19d752ce2dcf8465ed2b2fbefd2a7ca0dd497bc981a06a nomono (1.0.8) sha256=bf4b9b426cbf216ab17b70db474f691b8ae1f1e29de8db4b0ecd405e6e7e1c80 openssl (4.0.2) sha256=1037ad2868ae58df9ad917891c0c0f9815a1172f6846d4bcdd508e4c2ee747c2 ostruct (0.6.3) sha256=95a2ed4a4bd1d190784e666b47b2d3f078e4a9efda2fccf18f84ddc6538ed912 parallel (1.28.0) sha256=33e6de1484baf2524792d178b0913fc8eb94c628d6cfe45599ad4458c638c970 - parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 - parslet-toml-merge (7.1.0) - plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 - prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 - psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a @@ -820,21 +426,11 @@ CHECKSUMS rake-compiler-dock (1.12.0) sha256=f13205c2738f3d2053afcd03491a9e4541b22a59a0bfc53fc8bc883bd8188023 rb_sys (0.9.127) sha256=e9f90df3bb0577472d26d96127d5b5774b98f44de881e7d36aeefd28d6337847 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 - rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb reline (0.6.3) sha256=1198b04973565b36ec0f11542ab3f5cfeeec34823f4e54cebde90968092b1835 rexml (3.4.4) sha256=19e0a2c3425dfbf2d4fc1189747bdb2f849b6c5e74180401b15734bc97b5d142 - rspec (3.13.2) sha256=206284a08ad798e61f86d7ca3e376718d52c0bc944626b2349266f239f820587 - rspec-block_is_expected (1.0.6) sha256=bbad3dc30eba93becf4dcb3fd1bff5f37f6e212ab5cbf6132c07edba6ff74282 - rspec-core (3.13.6) sha256=a8823c6411667b60a8bca135364351dda34cd55e44ff94c4be4633b37d828b2d - rspec-expectations (3.13.5) sha256=33a4d3a1d95060aea4c94e9f237030a8f9eae5615e9bd85718fe3a09e4b58836 - rspec-mocks (3.13.8) sha256=086ad3d3d17533f4237643de0b5c42f04b66348c28bf6b9c2d3f4a3b01af1d47 - rspec-pending_for (0.1.21) sha256=c87fda50c20f8faca72d9cfa6a936abffd37860343f14aced95bbb29b8ae96bf - rspec-stubbed_env (1.0.6) sha256=6467a6eb0f72146d443ffb0c5a2a549d8812e59c04fbc81e03cd914ebf1f28dc - rspec-support (3.13.7) sha256=0640e5570872aafefd79867901deeeeb40b0c9875a36b983d85f54fb7381c47c - rspec_junit_formatter (0.6.0) sha256=40dde674e6ae4e6cc0ff560da25497677e34fefd2338cc467a8972f602b62b15 rubocop (1.88.2) sha256=8def251c90cd955feb4daa3edc0ab56893250c4ce90ef81e6c80c03f9a939bbf rubocop-ast (1.50.0) sha256=b9ca88300da0803ee222ad20cdb30494c0a784eed06fdc35d254b06d662788db rubocop-capybara (2.23.0) sha256=f9ea1ba3a7561ee8e88cf76fc378ce517ce5327155f305ee7b5c2500e5aee357 @@ -854,19 +450,13 @@ CHECKSUMS rubocop-rspec_rails (2.32.0) sha256=4a0d641c72f6ebb957534f539d9d0a62c47abd8ce0d0aeee1ef4701e892a9100 rubocop-ruby3_2 (3.0.7) sha256=f53dd6d286fb05186214fc6ec116783e7f837030918e8931c05de773e98f8466 rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 - ruby-merge (7.1.0) ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 - ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa - ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 - rust-merge (7.1.0) service_actor (3.9.4) sha256=e63b523630b9a7e62959b2a90113b08d2565b5de9c148557b281ef847c9539ce - silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed - smorg-rb (7.1.0) sorbet-runtime (0.6.13342) sha256=dbeb9892597f593ed2b29e38018912787f6c4e0c4b736d8af0d6bd3c63bde3c3 standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b @@ -877,23 +467,15 @@ CHECKSUMS strscan (3.1.8) sha256=aae2db611a225559f21ffbb71765c9a4e60fd262534a9ea84f4f11c7f32f679e terminal-table (4.0.0) sha256=f504793203f8251b2ea7c7068333053f0beeea26093ec9962e62ea79f94301d2 thor (1.5.0) sha256=e3a9e55fe857e44859ce104a84675ab6e8cd59c650a49106a05f55f136425e73 - timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 - timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.4) sha256=33b926958f504525bba3ed511ab66fbcbf8ef30390815e931436b30f27ffcad0 - toml (0.3.0) sha256=0a91d0f76a9036e84e44f95693b12f58d358c1df3ac8e3b5271f2056ecc6e4b9 - toml-merge (7.1.0) - toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 tree_haver (7.1.0) - tree_sitter_language_pack (1.13.1) + tree_sitter_language_pack (1.13.2) tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f - turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 - typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 webrick (1.9.2) sha256=beb4a15fc474defed24a3bda4ffd88a490d517c9e4e6118c3edce59e45864131 yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 - yaml-merge (7.1.0) yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd @@ -901,7 +483,6 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 - zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH diff --git a/gems/json-merge/Gemfile b/gems/json-merge/Gemfile index 946f9fba1..24325e92d 100644 --- a/gems/json-merge/Gemfile +++ b/gems/json-merge/Gemfile @@ -72,14 +72,8 @@ if direct_sibling_gems.any? && end end -# Use the released TSLP gem by default; templating can override it via VENDORED_GEMS. -vendored_gems = ENV.fetch('VENDORED_GEMS', '').split(',').map(&:strip) -tslp_declared_by_templating = - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? && - vendored_gems.include?('tree_sitter_language_pack') -unless tslp_declared_by_templating - gem 'tree_sitter_language_pack', '>= 1.13.2', '< 2.0' -end +# Use the StructuredMerge TSLP fork until the Ruby ABI platform-gem fix is released. +gem 'tree_sitter_language_pack', git: 'https://github.com/structuredmerge/tree-sitter-language-pack.git', branch: 'fix/ruby-4-platform-gem-abi', glob: 'packages/ruby/*.gemspec' # Templating (env-switched: STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local paths) eval_gemfile 'gemfiles/modular/templating.gemfile' if ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? diff --git a/gems/json-merge/Gemfile.lock b/gems/json-merge/Gemfile.lock index 30d89a639..dfaf6876b 100644 --- a/gems/json-merge/Gemfile.lock +++ b/gems/json-merge/Gemfile.lock @@ -1,277 +1,27 @@ -PATH - remote: . - specs: - json-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly - specs: - ast-crispr-markdown-markly (7.1.0) - ast-crispr (= 7.1.0) - markly-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism - specs: - ast-crispr-ruby-prism (7.1.0) - ast-crispr (= 7.1.0) - prism-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr - specs: - ast-crispr (7.1.0) - ast-merge (= 7.1.0) - service_actor (~> 3.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git - specs: - ast-merge-git (7.1.0) - ast-merge (= 7.1.0) - json-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge - specs: - ast-merge (7.1.0) - benchmark - token-resolver (~> 2.0, >= 2.0.4) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template - specs: - ast-template (7.1.0) - ast-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge - specs: - bash-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge - specs: - binary-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge +GIT + remote: https://github.com/structuredmerge/tree-sitter-language-pack.git + revision: e736879d00ce55b9bbfa479a5c07363bde1512e2 + branch: fix/ruby-4-platform-gem-abi + glob: packages/ruby/*.gemspec specs: - citrus-toml-merge (7.1.0) - toml-merge (= 7.1.0) - toml-rb (~> 4.1) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge - specs: - commonmarker-merge (7.1.0) - commonmarker (~> 2.2) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge - specs: - dotenv-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge - specs: - go-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem - specs: - kettle-jem (7.1.0) - addressable (>= 2.8, < 3) - ast-crispr-markdown-markly (= 7.1.0) - ast-crispr-ruby-prism (= 7.1.0) - ast-merge (= 7.1.0) - bash-merge (= 7.1.0) - citrus-toml-merge (= 7.1.0) - commonmarker-merge (= 7.1.0) - dotenv-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-dev (~> 2.3, >= 2.3.5) - kettle-rb (~> 0.1, >= 0.1.4) - kramdown-merge (= 7.1.0) - markdown-merge (= 7.1.0) - markly-merge (= 7.1.0) - prism-merge (= 7.1.0) - psych-merge (= 7.1.0) - rbs (>= 3.10) - rbs-merge (= 7.1.0) - ruby-merge (= 7.1.0) - token-resolver (~> 2.0, >= 2.0.4) - toml-merge (= 7.1.0) - toml-rb (~> 4.2) - tree_haver (= 7.1.0) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge - specs: - kramdown-merge (7.1.0) - kramdown (~> 2.5) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge - specs: - markdown-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge - specs: - markly-merge (7.1.0) - markdown-merge (= 7.1.0) - markly (~> 0.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge - specs: - parslet-toml-merge (7.1.0) - toml (~> 0.3) - toml-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge - specs: - plain-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge - specs: - prism-merge (7.1.0) - prism (~> 1.6) - ruby-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge - specs: - psych-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge - specs: - rbs-merge (7.1.0) - ast-merge (= 7.1.0) - rbs (>= 3.10) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge - specs: - ruby-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge - specs: - rust-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb - specs: - smorg-rb (7.1.0) - ast-merge (= 7.1.0) - ast-merge-git (= 7.1.0) - go-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-jem (= 7.1.0) - markly-merge (= 7.1.0) - plain-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge - specs: - toml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver - specs: - tree_haver (7.1.0) - citrus (~> 3.0) - parslet (~> 2.0) - tree_sitter_language_pack (>= 1.9.0.pre.rc.40, < 2.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge - specs: - typescript-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) + tree_sitter_language_pack (1.13.2) + rb_sys (>= 0.9, < 0.9.128) + sorbet-runtime (~> 0.5) + tree_sitter_language_pack (1.13.2-aarch64-linux) + sorbet-runtime (~> 0.5) + tree_sitter_language_pack (1.13.2-arm64-darwin) + sorbet-runtime (~> 0.5) + tree_sitter_language_pack (1.13.2-x86_64-linux) + sorbet-runtime (~> 0.5) PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge + remote: . specs: - yaml-merge (7.1.0) + json-merge (7.1.0) ast-merge (= 7.1.0) tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge - specs: - zip-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/vendor/tree_sitter_language_pack - specs: - tree_sitter_language_pack (1.13.1) - rb_sys (>= 0.9, < 0.9.128) - sorbet-runtime (~> 0.5) - GEM remote: https://gem.coop/ specs: @@ -283,6 +33,11 @@ GEM rake (>= 10) thor (>= 0.14) ast (2.4.3) + ast-merge (7.1.0) + benchmark + token-resolver (~> 2.0, >= 2.0.4) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) backports (3.25.3) benchmark (0.5.0) bigdecimal (4.1.2) @@ -291,11 +46,6 @@ GEM thor (~> 1.0) citrus (3.0.2) cmdparse (3.0.7) - commonmarker (2.9.0-aarch64-linux) - commonmarker (2.9.0-aarch64-linux-musl) - commonmarker (2.9.0-arm64-darwin) - commonmarker (2.9.0-x86_64-linux) - commonmarker (2.9.0-x86_64-linux-musl) concurrent-ruby (1.3.8) date (3.5.1) debug (1.11.1) @@ -359,8 +109,6 @@ GEM kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) - kettle-drift (1.0.5) - version_gem (~> 1.1, >= 1.1.13) kettle-rb (0.1.4) kettle-soup-cover (1.1.3) simplecov (~> 0.22) @@ -389,7 +137,6 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) - markly (0.16.0) mutex_m (0.3.0) nokogiri (1.19.4-aarch64-linux-gnu) racc (~> 1.4) @@ -527,8 +274,6 @@ GEM ruby-progressbar (1.13.0) ruby_engine (2.0.3) ruby_version (1.0.3) - service_actor (3.9.4) - zeitwerk (>= 1.0) silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) @@ -581,11 +326,11 @@ GEM token-resolver (2.0.4) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.13) - toml (0.3.0) - parslet (>= 1.8.0, < 3.0.0) - toml-rb (4.2.0) - citrus (~> 3.0, > 3.0) - racc (~> 1.7) + tree_haver (7.1.0) + citrus (~> 3.0) + parslet (~> 2.0) + tree_sitter_language_pack (>= 1.9.0.pre.rc.40, < 2.0) + version_gem (~> 1.1, >= 1.1.9) tsort (0.2.0) turbo_tests2 (3.2.0) parallel_tests (>= 3.3.0, < 6) @@ -636,45 +381,23 @@ PLATFORMS DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) - ast-crispr! - ast-crispr-markdown-markly! - ast-crispr-ruby-prism! - ast-merge! - ast-merge-git! - ast-template! - bash-merge! benchmark (~> 0.5, >= 0.5.0) - binary-merge! bundler-audit (~> 0.9.3) - citrus-toml-merge! - commonmarker-merge! debug (>= 1.1) - dotenv-merge! erb (~> 6.0, >= 6.0.4) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.0) - go-merge! irb (~> 1.17) json-merge! kettle-dev (~> 2.0, >= 2.2.25) - kettle-drift (~> 1.0, >= 1.0.5) - kettle-jem! kettle-soup-cover (~> 1.0, >= 1.1.3) kettle-test (~> 2.0, >= 2.0.9) kramdown (~> 2.5, >= 2.5.1) - kramdown-merge! kramdown-parser-gfm (~> 1.1) - markdown-merge! - markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) - parslet-toml-merge! - plain-merge! - prism-merge! - psych-merge! rake (~> 13.0) rbs (>= 3.0) - rbs-merge! rdoc (~> 6.11) reek (~> 6.5) require_bench (~> 1.0, >= 1.0.4) @@ -683,53 +406,31 @@ DEPENDENCIES rubocop-packaging (~> 0.6, >= 0.6.0) rubocop-rspec (~> 3.6) rubocop-ruby3_2 (~> 3.0.0) - ruby-merge! ruby-progressbar (~> 1.13) - rust-merge! - smorg-rb! standard (>= 1.50) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) - toml-merge! - tree_haver! tree_sitter_language_pack! - typescript-merge! yaml-converter (~> 0.1) - yaml-merge! yard (~> 0.9, >= 0.9.44) yard-fence (~> 0.9, >= 0.9.1) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) yard-timekeeper (~> 0.1) yard-yaml (~> 0.1, >= 0.1.2) - zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af ansi (1.6.0) sha256=ac9ea0c0ea8d32fb4e271348e609963ac78882f34b73836c2a02b3622e666658 appraisal2 (3.2.0) sha256=ccd0b767ac4060cd7af6d16747459b6990f49c39c7b4fb1f7d1146b1e97c492f ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 - ast-crispr (7.1.0) - ast-crispr-markdown-markly (7.1.0) - ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) - ast-merge-git (7.1.0) - ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 - bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd - binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 - citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 - commonmarker (2.9.0-aarch64-linux) sha256=e2b4aadb9a2cfa4e206582641ce3a49465549ac1ed4c289fdd63b78d8f24579c - commonmarker (2.9.0-aarch64-linux-musl) sha256=1cf4d2821f2a7e64945f1ed7c4eeced586fdb27ea7fe7337788802cf8f57cfca - commonmarker (2.9.0-arm64-darwin) sha256=1748dbfa4f5813b0d2a14bb4bbfa65a4ec293aa1c825016d60029ee0e132b046 - commonmarker (2.9.0-x86_64-linux) sha256=8cfe92970eef585a19ddf6613224b91cab64d6029834661bda801f877c9c7f43 - commonmarker (2.9.0-x86_64-linux-musl) sha256=293921398b839f79ceaf55010e061357e34f053822c3b003cd0be6686176335e - commonmarker-merge (7.1.0) concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 @@ -737,7 +438,6 @@ CHECKSUMS diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 docile (1.4.1) sha256=96159be799bfa73cdb721b840e9802126e4e03dfc26863db73647204c727f21e - dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -750,27 +450,20 @@ CHECKSUMS gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f - go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 json-merge (7.1.0) kettle-dev (2.3.7) sha256=eb370113cd030d03cbe2d33b31c99858951017e5ad21a17e9ed89dc3770028ee - kettle-drift (1.0.5) sha256=07094e80140a049164142820bdd327c30fcd855bb00697a0a430600a2b5144a2 - kettle-jem (7.1.0) kettle-rb (0.1.4) sha256=9cef7ce4f7021666b7222292f29051e51eaf042e8a5db11f3f4dd72f74243fc1 kettle-soup-cover (1.1.3) sha256=a373827da22a7131d093afd32945e5b7d7a10a01ebfdded8fd2cb8230d69c8ad kettle-test (2.0.11) sha256=c710c90f7ab79d51f9452f0c09f5f90657e7a893f63583855c164d0b1b107ab2 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa - kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 - markdown-merge (7.1.0) - markly (0.16.0) sha256=6f70d79e385b1efc9e171f74c81628826259039fe6c778e03c3924c71dac5511 - markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-aarch64-linux-gnu) sha256=1269fb644a6de405057a53dd5c762b1209b43ca7424f839454d3dbc677c31a8f nokogiri (1.19.4-aarch64-linux-musl) sha256=35c65b9ce72b3bb03207bdbe7067915019dc18c1b9b59139684bd6690fdd01af @@ -784,14 +477,10 @@ CHECKSUMS parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 - parslet-toml-merge (7.1.0) - plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 - prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 - psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a @@ -799,7 +488,6 @@ CHECKSUMS rake-compiler-dock (1.12.0) sha256=f13205c2738f3d2053afcd03491a9e4541b22a59a0bfc53fc8bc883bd8188023 rb_sys (0.9.127) sha256=e9f90df3bb0577472d26d96127d5b5774b98f44de881e7d36aeefd28d6337847 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 - rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb @@ -827,12 +515,9 @@ CHECKSUMS rubocop-rspec (3.10.2) sha256=0b3e2ecc592cd10ecbf0095bb58d1e357905276e069643523cc19eb7495f65e2 rubocop-ruby3_2 (3.0.7) sha256=f53dd6d286fb05186214fc6ec116783e7f837030918e8931c05de773e98f8466 rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 - ruby-merge (7.1.0) ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 - rust-merge (7.1.0) - service_actor (3.9.4) sha256=e63b523630b9a7e62959b2a90113b08d2565b5de9c148557b281ef847c9539ce silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (0.22.0) sha256=fe2622c7834ff23b98066bb0a854284b2729a569ac659f82621fc22ef36213a5 simplecov-cobertura (3.2.0) sha256=70d702658677fcb20e5aceb6915ccf8bc62ff2ccd38b62b3ad5c9db5c0888740 @@ -841,7 +526,6 @@ CHECKSUMS simplecov-lcov (0.9.0) sha256=7a77a31e200a595ed4b0249493056efd0c920601f53d2ef135ca34ee796346cd simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_json_formatter (0.1.4) sha256=529418fbe8de1713ac2b2d612aa3daa56d316975d307244399fa4838c601b428 - smorg-rb (7.1.0) sorbet-runtime (0.6.13342) sha256=dbeb9892597f593ed2b29e38018912787f6c4e0c4b736d8af0d6bd3c63bde3c3 standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b @@ -855,19 +539,17 @@ CHECKSUMS timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.4) sha256=33b926958f504525bba3ed511ab66fbcbf8ef30390815e931436b30f27ffcad0 - toml (0.3.0) sha256=0a91d0f76a9036e84e44f95693b12f58d358c1df3ac8e3b5271f2056ecc6e4b9 - toml-merge (7.1.0) - toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 tree_haver (7.1.0) - tree_sitter_language_pack (1.13.1) + tree_sitter_language_pack (1.13.2) + tree_sitter_language_pack (1.13.2-aarch64-linux) + tree_sitter_language_pack (1.13.2-arm64-darwin) + tree_sitter_language_pack (1.13.2-x86_64-linux) tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 - typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 - yaml-merge (7.1.0) yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd @@ -875,7 +557,6 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 - zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH diff --git a/gems/kettle-jem/Gemfile b/gems/kettle-jem/Gemfile index 53510009b..231a4eec3 100644 --- a/gems/kettle-jem/Gemfile +++ b/gems/kettle-jem/Gemfile @@ -92,14 +92,8 @@ if direct_sibling_gems.any? && end end -# Use the released TSLP gem by default; templating can override it via VENDORED_GEMS. -vendored_gems = ENV.fetch("VENDORED_GEMS", "").split(",").map(&:strip) -tslp_declared_by_templating = - ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? && - vendored_gems.include?("tree_sitter_language_pack") -unless tslp_declared_by_templating - gem "tree_sitter_language_pack", ">= 1.13.2", "< 2.0" -end +# Use the StructuredMerge TSLP fork until the Ruby ABI platform-gem fix is released. +gem "tree_sitter_language_pack", git: "https://github.com/structuredmerge/tree-sitter-language-pack.git", branch: "fix/ruby-4-platform-gem-abi", glob: "packages/ruby/*.gemspec" # Templating (env-switched: STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local paths) eval_gemfile "gemfiles/modular/templating.gemfile" if ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? diff --git a/gems/kettle-jem/Gemfile.lock b/gems/kettle-jem/Gemfile.lock index e062273b8..d33bac7ad 100644 --- a/gems/kettle-jem/Gemfile.lock +++ b/gems/kettle-jem/Gemfile.lock @@ -1,3 +1,15 @@ +GIT + remote: https://github.com/structuredmerge/tree-sitter-language-pack.git + revision: e736879d00ce55b9bbfa479a5c07363bde1512e2 + branch: fix/ruby-4-platform-gem-abi + glob: packages/ruby/*.gemspec + specs: + tree_sitter_language_pack (1.13.2) + rb_sys (>= 0.9, < 0.9.128) + sorbet-runtime (~> 0.5) + tree_sitter_language_pack (1.13.2-x86_64-linux) + sorbet-runtime (~> 0.5) + PATH remote: . specs: @@ -27,286 +39,43 @@ PATH tree_haver (= 7.1.0) yaml-merge (= 7.1.0) -PATH - remote: /home/pboling/src/my/kettle-dev/kettle-dev - specs: - kettle-dev (2.3.7) - emoji_regex (>= 15.0) - kettle-rb (~> 0.1, >= 0.1.2) - kettle-test (~> 2.0, >= 2.0.4) - ruby-progressbar (~> 1.13) - -PATH - remote: /home/pboling/src/my/kettle-dev/kettle-drift +GEM + remote: https://gem.coop/ specs: - kettle-drift (1.0.5) + addressable (2.9.0) + public_suffix (>= 2.0.2, < 8.0) + ansi (1.6.0) + appraisal2 (3.2.0) + bundler (>= 1.17.3) + rake (>= 10) + thor (>= 0.14) + appraisal2-rubocop (1.0.0) + appraisal2 (>= 3.1.4) + rubocop (>= 1.0) version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/kettle-dev/kettle-soup-cover - specs: - kettle-soup-cover (3.0.3) - kettle-wash (~> 0.1, >= 0.1.0) - simplecov (>= 1.0) - simplecov-cobertura (>= 4.0) - simplecov-console (~> 0.9, >= 0.9.5) - simplecov-rcov (~> 0.3, >= 0.3.7) - simplecov_lcov_formatter (~> 0.9, >= 0.9.0) - -PATH - remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly - specs: + ast (2.4.3) + ast-crispr (7.1.0) + ast-merge (= 7.1.0) + service_actor (~> 3.9) + version_gem (~> 1.1, >= 1.1.9) ast-crispr-markdown-markly (7.1.0) ast-crispr (= 7.1.0) markly-merge (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism - specs: ast-crispr-ruby-prism (7.1.0) ast-crispr (= 7.1.0) prism-merge (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr - specs: - ast-crispr (7.1.0) - ast-merge (= 7.1.0) - service_actor (~> 3.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git - specs: - ast-merge-git (7.1.0) - ast-merge (= 7.1.0) - json-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/ast-merge - specs: ast-merge (7.1.0) benchmark token-resolver (~> 2.0, >= 2.0.4) tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/ast-template - specs: - ast-template (7.1.0) - ast-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/bash-merge - specs: + backports (3.25.3) bash-merge (7.1.0) ast-merge (= 7.1.0) tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/binary-merge - specs: - binary-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge - specs: - citrus-toml-merge (7.1.0) - toml-merge (= 7.1.0) - toml-rb (~> 4.1) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge - specs: - commonmarker-merge (7.1.0) - commonmarker (~> 2.2) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge - specs: - dotenv-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/go-merge - specs: - go-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/json-merge - specs: - json-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge - specs: - kramdown-merge (7.1.0) - kramdown (~> 2.5) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge - specs: - markdown-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/markly-merge - specs: - markly-merge (7.1.0) - markdown-merge (= 7.1.0) - markly (~> 0.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge - specs: - parslet-toml-merge (7.1.0) - toml (~> 0.3) - toml-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/plain-merge - specs: - plain-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/prism-merge - specs: - prism-merge (7.1.0) - prism (~> 1.6) - ruby-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/psych-merge - specs: - psych-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - yaml-merge (= 7.1.0) - -PATH - remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge - specs: - rbs-merge (7.1.0) - ast-merge (= 7.1.0) - rbs (>= 3.10) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge - specs: - ruby-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/rust-merge - specs: - rust-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb - specs: - smorg-rb (7.1.0) - ast-merge (= 7.1.0) - ast-merge-git (= 7.1.0) - go-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-jem (= 7.1.0) - markly-merge (= 7.1.0) - plain-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/toml-merge - specs: - toml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/tree_haver - specs: - tree_haver (7.1.0) - citrus (~> 3.0) - parslet (~> 2.0) - tree_sitter_language_pack (>= 1.13.2, < 2.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge - specs: - typescript-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge - specs: - yaml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/zip-merge - specs: - zip-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -GEM - remote: https://gem.coop/ - specs: - addressable (2.9.0) - public_suffix (>= 2.0.2, < 8.0) - ansi (1.6.0) - appraisal2 (3.2.0) - bundler (>= 1.17.3) - rake (>= 10) - thor (>= 0.14) - appraisal2-rubocop (1.0.0) - appraisal2 (>= 3.1.4) - rubocop (>= 1.0) - version_gem (~> 1.1, >= 1.1.14) - ast (2.4.3) - backports (3.25.3) benchmark (0.5.0) bigdecimal (4.1.2) bundler-audit (0.9.3) @@ -314,8 +83,16 @@ GEM thor (~> 1.0) cgi (0.5.2) citrus (3.0.2) + citrus-toml-merge (7.1.0) + toml-merge (= 7.1.0) + toml-rb (~> 4.1) + version_gem (~> 1.1, >= 1.1.9) cmdparse (3.0.7) commonmarker (2.9.0-x86_64-linux) + commonmarker-merge (7.1.0) + commonmarker (~> 2.2) + markdown-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) concurrent-ruby (1.3.8) date (3.5.1) debug (1.11.1) @@ -324,6 +101,10 @@ GEM delegate (0.6.1) diff-lcs (1.6.2) diffy (3.4.4) + dotenv-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) dry-configurable (1.4.0) dry-core (~> 1.0) zeitwerk (~> 2.6) @@ -373,7 +154,23 @@ GEM rdoc (>= 4.0.0) reline (>= 0.4.2) json (2.21.1) + json-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + kettle-dev (2.3.7) + emoji_regex (>= 15.0) + kettle-rb (~> 0.1, >= 0.1.2) + kettle-test (~> 2.0, >= 2.0.4) + ruby-progressbar (~> 1.13) kettle-rb (0.1.4) + kettle-soup-cover (3.0.3) + kettle-wash (~> 0.1, >= 0.1.0) + simplecov (>= 1.0) + simplecov-cobertura (>= 4.0) + simplecov-console (~> 0.9, >= 0.9.5) + simplecov-rcov (~> 0.3, >= 0.3.7) + simplecov_lcov_formatter (~> 0.9, >= 0.9.0) kettle-test (2.0.11) appraisal2 (~> 3.0, >= 3.0.6) backports (~> 3.0) @@ -389,12 +186,24 @@ GEM version_gem (~> 1.1, >= 1.1.14) kramdown (2.5.2) rexml (>= 3.4.4) + kramdown-merge (7.1.0) + kramdown (~> 2.5) + markdown-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) kramdown-parser-gfm (1.1.0) kramdown (~> 2.0) language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) + markdown-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) markly (0.16.0) + markly-merge (7.1.0) + markdown-merge (= 7.1.0) + markly (~> 0.9) + version_gem (~> 1.1, >= 1.1.9) mutex_m (0.3.0) nokogiri (1.19.4-x86_64-linux-gnu) racc (~> 1.4) @@ -412,17 +221,34 @@ GEM prettyprint prettyprint (0.2.0) prism (1.9.0) + prism-merge (7.1.0) + prism (~> 1.6) + ruby-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) psych (5.4.0) date stringio + psych-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + yaml-merge (= 7.1.0) public_suffix (7.0.5) racc (1.8.1) rainbow (3.1.1) rake (13.4.2) + rake-compiler-dock (1.12.0) + rb_sys (0.9.127) + rake-compiler-dock (= 1.12.0) rbs (4.0.3) logger prism (>= 1.6.0) tsort + rbs-merge (7.1.0) + ast-merge (= 7.1.0) + rbs (>= 3.10) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) rdoc (6.17.0) erb psych (>= 4.0.0) @@ -546,6 +372,10 @@ GEM lint_roller (~> 1.1) rubocop (~> 1.72, >= 1.72.1) rubocop-ast (>= 1.44.0, < 2.0) + ruby-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) ruby-progressbar (1.13.0) ruby_engine (2.0.3) ruby_version (1.0.3) @@ -605,13 +435,18 @@ GEM token-resolver (2.0.4) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.13) - toml (0.3.0) - parslet (>= 1.8.0, < 3.0.0) + toml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) toml-rb (4.2.0) citrus (~> 3.0, > 3.0) racc (~> 1.7) - tree_sitter_language_pack (1.13.2-x86_64-linux) - sorbet-runtime (~> 0.5) + tree_haver (7.1.0) + citrus (~> 3.0) + parslet (~> 2.0) + tree_sitter_language_pack (>= 1.9.0.pre.rc.40, < 2.0) + version_gem (~> 1.1, >= 1.1.9) tsort (0.2.0) turbo_tests2 (3.2.0) parallel_tests (>= 3.3.0, < 6) @@ -627,6 +462,10 @@ GEM kramdown (>= 2.4, < 3) kramdown-parser-gfm (~> 1.1) version_gem (~> 1.1, >= 1.1.13) + yaml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) yard (0.9.45) yard-fence (0.9.6) rdoc (>= 6.11, < 8) @@ -653,45 +492,22 @@ PLATFORMS DEPENDENCIES appraisal2 (~> 3.2, >= 3.2.0) appraisal2-rubocop (~> 1.0, >= 1.0.0) - ast-crispr! - ast-crispr-markdown-markly! - ast-crispr-ruby-prism! - ast-merge! - ast-merge-git! - ast-template! - bash-merge! benchmark (~> 0.5, >= 0.5.0) - binary-merge! bundler-audit (~> 0.9.3) cgi (~> 0.5) - citrus-toml-merge! - commonmarker-merge! debug (>= 1.1) - dotenv-merge! erb (~> 6.0, >= 6.0.5) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.4) - go-merge! irb (~> 1.17) - json-merge! - kettle-dev! - kettle-drift! kettle-jem! - kettle-soup-cover! + kettle-soup-cover (~> 3.0, >= 3.0.3) kettle-test (~> 2.0, >= 2.0.11) kramdown (~> 2.5, >= 2.5.2) - kramdown-merge! kramdown-parser-gfm (~> 1.1) - markdown-merge! - markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) - parslet-toml-merge! - plain-merge! - prism-merge! - psych-merge! rake (~> 13.0) - rbs-merge! rdoc (~> 6.11) reek (~> 6.5, >= 6.5.0) require_bench (~> 1.0, >= 1.0.4) @@ -702,28 +518,20 @@ DEPENDENCIES rubocop-on-rbs (~> 2.0, >= 2.0.0) rubocop-packaging (~> 0.6, >= 0.6.0) rubocop-ruby3_2 (~> 3.0, >= 3.0.6) - ruby-merge! ruby-progressbar (~> 1.13) - rust-merge! - smorg-rb! standard (~> 1.56, >= 1.56.0) stone_checksums (~> 1.0, >= 1.0.6) stringio (>= 3.0) - toml-merge! - tree_haver! - tree_sitter_language_pack (>= 1.13.2, < 2.0) + tree_sitter_language_pack! turbo_tests2 (~> 3.2, >= 3.2.0) - typescript-merge! webrick (~> 1.9) yaml-converter (~> 0.2, >= 0.2.3) - yaml-merge! yard (~> 0.9, >= 0.9.45) yard-fence (~> 0.9, >= 0.9.6) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) yard-timekeeper (~> 0.2, >= 0.2.4) yard-yaml (~> 0.2, >= 0.2.3) - zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af @@ -735,13 +543,10 @@ CHECKSUMS ast-crispr-markdown-markly (7.1.0) ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) - ast-merge-git (7.1.0) - ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd - binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 @@ -768,17 +573,15 @@ CHECKSUMS gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f - go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 json-merge (7.1.0) - kettle-dev (2.3.7) - kettle-drift (1.0.5) + kettle-dev (2.3.7) sha256=eb370113cd030d03cbe2d33b31c99858951017e5ad21a17e9ed89dc3770028ee kettle-jem (7.1.0) kettle-rb (0.1.4) sha256=9cef7ce4f7021666b7222292f29051e51eaf042e8a5db11f3f4dd72f74243fc1 - kettle-soup-cover (3.0.3) + kettle-soup-cover (3.0.3) sha256=5919649be35690e4580299a41ac7c44a9548a7ca38561ffdd3c683c9d63e6f9b kettle-test (2.0.11) sha256=c710c90f7ab79d51f9452f0c09f5f90657e7a893f63583855c164d0b1b107ab2 kettle-wash (0.1.0) sha256=5c04b3900d0957339e7c7d9997bbd804599b68bde002e6f47f4e28a0eea22ea7 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa @@ -799,8 +602,6 @@ CHECKSUMS parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 - parslet-toml-merge (7.1.0) - plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 @@ -811,6 +612,8 @@ CHECKSUMS racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 + rake-compiler-dock (1.12.0) sha256=f13205c2738f3d2053afcd03491a9e4541b22a59a0bfc53fc8bc883bd8188023 + rb_sys (0.9.127) sha256=e9f90df3bb0577472d26d96127d5b5774b98f44de881e7d36aeefd28d6337847 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 @@ -851,7 +654,6 @@ CHECKSUMS ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 - rust-merge (7.1.0) service_actor (3.9.4) sha256=e63b523630b9a7e62959b2a90113b08d2565b5de9c148557b281ef847c9539ce silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 @@ -859,7 +661,6 @@ CHECKSUMS simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed - smorg-rb (7.1.0) sorbet-runtime (0.6.13344) sha256=0b4e3310cd10bc814f0d7cfa65db82151103322e75dd63c961546845dd8ba5e5 standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b @@ -874,14 +675,13 @@ CHECKSUMS timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.4) sha256=33b926958f504525bba3ed511ab66fbcbf8ef30390815e931436b30f27ffcad0 - toml (0.3.0) sha256=0a91d0f76a9036e84e44f95693b12f58d358c1df3ac8e3b5271f2056ecc6e4b9 toml-merge (7.1.0) toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 tree_haver (7.1.0) - tree_sitter_language_pack (1.13.2-x86_64-linux) sha256=ab3beba6831edc30a99d962db505f70105b5489b149fd302802cf9df9b956385 + tree_sitter_language_pack (1.13.2) + tree_sitter_language_pack (1.13.2-x86_64-linux) tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 - typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 @@ -895,7 +695,6 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 - zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH diff --git a/gems/kettle-jem/lib/kettle/jem/templates/Gemfile.example b/gems/kettle-jem/lib/kettle/jem/templates/Gemfile.example index 349d651f3..3a9b35a1b 100644 --- a/gems/kettle-jem/lib/kettle/jem/templates/Gemfile.example +++ b/gems/kettle-jem/lib/kettle/jem/templates/Gemfile.example @@ -22,14 +22,8 @@ gemspec {KJ|MAIN_GEMFILE_DIRECT_SIBLING_BLOCK} -# Use the released TSLP gem by default; templating can override it via VENDORED_GEMS. -vendored_gems = ENV.fetch("VENDORED_GEMS", "").split(",").map(&:strip) -tslp_declared_by_templating = - ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? && - vendored_gems.include?("tree_sitter_language_pack") -unless tslp_declared_by_templating - gem "tree_sitter_language_pack", ">= 1.13.2", "< 2.0" -end +# Use the StructuredMerge TSLP fork until the Ruby ABI platform-gem fix is released. +gem "tree_sitter_language_pack", git: "https://github.com/structuredmerge/tree-sitter-language-pack.git", branch: "fix/ruby-4-platform-gem-abi", glob: "packages/ruby/*.gemspec" # Templating (env-switched: STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local paths) eval_gemfile "gemfiles/modular/templating.gemfile" if ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? diff --git a/gems/kettle-jem/spec/integration/config_metadata_template_spec.rb b/gems/kettle-jem/spec/integration/config_metadata_template_spec.rb index 30392bd9d..6039fdd77 100644 --- a/gems/kettle-jem/spec/integration/config_metadata_template_spec.rb +++ b/gems/kettle-jem/spec/integration/config_metadata_template_spec.rb @@ -2108,9 +2108,10 @@ def register_kettle_jem_plugin(registrar) expect(direct_block).to include('prefix: "RUBYTHEMS"') expect(direct_block).to include('path_env: "RUBYTHEMS_DEV"') expect(direct_block).to include('root: ["src", "my", "rubythems"]') - expect(gemfile).to include("Use the released TSLP gem by default") - expect(gemfile).to include('gem "tree_sitter_language_pack", ">= 1.13.2", "< 2.0"') - expect(gemfile).not_to include("https://github.com/structuredmerge/tree-sitter-language-pack.git") + expect(gemfile).to include("Use the StructuredMerge TSLP fork until the Ruby ABI platform-gem fix is released") + expect(gemfile).to include( + 'gem "tree_sitter_language_pack", git: "https://github.com/structuredmerge/tree-sitter-language-pack.git", branch: "fix/ruby-4-platform-gem-abi", glob: "packages/ruby/*.gemspec"' + ) expect(gemfile).not_to include('branch: "fix/ruby-parser-api-methods"') expect(File.read(File.join(root, "Gemfile"))).to eq(gemfile) end diff --git a/gems/kramdown-merge/Gemfile b/gems/kramdown-merge/Gemfile index 7a90fd32b..ca38ef9c5 100644 --- a/gems/kramdown-merge/Gemfile +++ b/gems/kramdown-merge/Gemfile @@ -71,14 +71,8 @@ if direct_sibling_gems.any? && end end -# Use the released TSLP gem by default; templating can override it via VENDORED_GEMS. -vendored_gems = ENV.fetch('VENDORED_GEMS', '').split(',').map(&:strip) -tslp_declared_by_templating = - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? && - vendored_gems.include?('tree_sitter_language_pack') -unless tslp_declared_by_templating - gem 'tree_sitter_language_pack', '>= 1.13.2', '< 2.0' -end +# Use the StructuredMerge TSLP fork until the Ruby ABI platform-gem fix is released. +gem 'tree_sitter_language_pack', git: 'https://github.com/structuredmerge/tree-sitter-language-pack.git', branch: 'fix/ruby-4-platform-gem-abi', glob: 'packages/ruby/*.gemspec' # Templating (env-switched: STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local paths) eval_gemfile 'gemfiles/modular/templating.gemfile' if ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? diff --git a/gems/kramdown-merge/Gemfile.lock b/gems/kramdown-merge/Gemfile.lock index 4da75c6b0..4eb23faca 100644 --- a/gems/kramdown-merge/Gemfile.lock +++ b/gems/kramdown-merge/Gemfile.lock @@ -1,3 +1,21 @@ +GIT + remote: https://github.com/structuredmerge/tree-sitter-language-pack.git + revision: e736879d00ce55b9bbfa479a5c07363bde1512e2 + branch: fix/ruby-4-platform-gem-abi + glob: packages/ruby/*.gemspec + specs: + tree_sitter_language_pack (1.13.2) + rb_sys (>= 0.9, < 0.9.128) + sorbet-runtime (~> 0.5) + tree_sitter_language_pack (1.13.2-aarch64-linux) + sorbet-runtime (~> 0.5) + tree_sitter_language_pack (1.13.2-arm64-darwin) + sorbet-runtime (~> 0.5) + tree_sitter_language_pack (1.13.2-x86_64-darwin) + sorbet-runtime (~> 0.5) + tree_sitter_language_pack (1.13.2-x86_64-linux) + sorbet-runtime (~> 0.5) + PATH remote: . specs: @@ -6,272 +24,6 @@ PATH markdown-merge (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly - specs: - ast-crispr-markdown-markly (7.1.0) - ast-crispr (= 7.1.0) - markly-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism - specs: - ast-crispr-ruby-prism (7.1.0) - ast-crispr (= 7.1.0) - prism-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr - specs: - ast-crispr (7.1.0) - ast-merge (= 7.1.0) - service_actor (~> 3.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git - specs: - ast-merge-git (7.1.0) - ast-merge (= 7.1.0) - json-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge - specs: - ast-merge (7.1.0) - benchmark - token-resolver (~> 2.0, >= 2.0.4) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template - specs: - ast-template (7.1.0) - ast-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge - specs: - bash-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge - specs: - binary-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge - specs: - citrus-toml-merge (7.1.0) - toml-merge (= 7.1.0) - toml-rb (~> 4.1) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge - specs: - commonmarker-merge (7.1.0) - commonmarker (~> 2.2) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge - specs: - dotenv-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge - specs: - go-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge - specs: - json-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem - specs: - kettle-jem (7.1.0) - addressable (>= 2.8, < 3) - ast-crispr-markdown-markly (= 7.1.0) - ast-crispr-ruby-prism (= 7.1.0) - ast-merge (= 7.1.0) - bash-merge (= 7.1.0) - citrus-toml-merge (= 7.1.0) - commonmarker-merge (= 7.1.0) - dotenv-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-dev (~> 2.3, >= 2.3.5) - kettle-rb (~> 0.1, >= 0.1.4) - kramdown-merge (= 7.1.0) - markdown-merge (= 7.1.0) - markly-merge (= 7.1.0) - prism-merge (= 7.1.0) - psych-merge (= 7.1.0) - rbs (>= 3.10) - rbs-merge (= 7.1.0) - ruby-merge (= 7.1.0) - token-resolver (~> 2.0, >= 2.0.4) - toml-merge (= 7.1.0) - toml-rb (~> 4.2) - tree_haver (= 7.1.0) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge - specs: - markdown-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge - specs: - markly-merge (7.1.0) - markdown-merge (= 7.1.0) - markly (~> 0.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge - specs: - parslet-toml-merge (7.1.0) - toml (~> 0.3) - toml-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge - specs: - plain-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge - specs: - prism-merge (7.1.0) - prism (~> 1.6) - ruby-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge - specs: - psych-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge - specs: - rbs-merge (7.1.0) - ast-merge (= 7.1.0) - rbs (>= 3.10) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge - specs: - ruby-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge - specs: - rust-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb - specs: - smorg-rb (7.1.0) - ast-merge (= 7.1.0) - ast-merge-git (= 7.1.0) - go-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-jem (= 7.1.0) - markly-merge (= 7.1.0) - plain-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge - specs: - toml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver - specs: - tree_haver (7.1.0) - citrus (~> 3.0) - parslet (~> 2.0) - tree_sitter_language_pack (>= 1.9.0.pre.rc.40, < 2.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge - specs: - typescript-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge - specs: - yaml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge - specs: - zip-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /var/home/pboling/src/my/structuredmerge/vendor/tree-sitter-language-pack/packages/ruby - specs: - tree_sitter_language_pack (1.12.5) - rb_sys (>= 0.9, < 0.9.128) - sorbet-runtime (~> 0.5) - GEM remote: https://gem.coop/ specs: @@ -283,6 +35,11 @@ GEM rake (>= 10) thor (>= 0.14) ast (2.4.3) + ast-merge (7.1.0) + benchmark + token-resolver (~> 2.0, >= 2.0.4) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) backports (3.25.3) benchmark (0.5.0) bigdecimal (4.1.2) @@ -291,12 +48,6 @@ GEM thor (~> 1.0) citrus (3.0.2) cmdparse (3.0.7) - commonmarker (2.9.0-aarch64-linux) - commonmarker (2.9.0-aarch64-linux-musl) - commonmarker (2.9.0-arm64-darwin) - commonmarker (2.9.0-x86_64-darwin) - commonmarker (2.9.0-x86_64-linux) - commonmarker (2.9.0-x86_64-linux-musl) concurrent-ruby (1.3.7) date (3.5.1) debug (1.11.1) @@ -360,8 +111,6 @@ GEM kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) - kettle-drift (1.0.5) - version_gem (~> 1.1, >= 1.1.13) kettle-rb (0.1.4) kettle-soup-cover (1.1.3) simplecov (~> 0.22) @@ -390,7 +139,10 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) - markly (0.16.0) + markdown-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) mutex_m (0.3.0) nokogiri (1.19.4-aarch64-linux-gnu) racc (~> 1.4) @@ -530,8 +282,6 @@ GEM ruby-progressbar (1.13.0) ruby_engine (2.0.3) ruby_version (1.0.3) - service_actor (3.9.4) - zeitwerk (>= 1.0) silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) @@ -584,11 +334,11 @@ GEM token-resolver (2.0.4) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.13) - toml (0.3.0) - parslet (>= 1.8.0, < 3.0.0) - toml-rb (4.2.0) - citrus (~> 3.0, > 3.0) - racc (~> 1.7) + tree_haver (7.1.0) + citrus (~> 3.0) + parslet (~> 2.0) + tree_sitter_language_pack (>= 1.9.0.pre.rc.40, < 2.0) + version_gem (~> 1.1, >= 1.1.9) tsort (0.2.0) turbo_tests2 (3.2.0) parallel_tests (>= 3.3.0, < 6) @@ -635,45 +385,23 @@ PLATFORMS DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) - ast-crispr! - ast-crispr-markdown-markly! - ast-crispr-ruby-prism! - ast-merge! - ast-merge-git! - ast-template! - bash-merge! benchmark (~> 0.5, >= 0.5.0) - binary-merge! bundler-audit (~> 0.9.3) - citrus-toml-merge! - commonmarker-merge! debug (>= 1.1) - dotenv-merge! erb (~> 6.0, >= 6.0.4) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.0) - go-merge! irb (~> 1.17) - json-merge! kettle-dev (~> 2.0, >= 2.2.25) - kettle-drift (~> 1.0, >= 1.0.5) - kettle-jem! kettle-soup-cover (~> 1.0, >= 1.1.3) kettle-test (~> 2.0, >= 2.0.9) kramdown (~> 2.5, >= 2.5.1) kramdown-merge! kramdown-parser-gfm (~> 1.1) - markdown-merge! - markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) - parslet-toml-merge! - plain-merge! - prism-merge! - psych-merge! rake (~> 13.0) rbs (>= 3.0) - rbs-merge! rdoc (~> 6.11) reek (~> 6.5) require_bench (~> 1.0, >= 1.0.4) @@ -682,54 +410,31 @@ DEPENDENCIES rubocop-packaging (~> 0.6, >= 0.6.0) rubocop-rspec (~> 3.6) rubocop-ruby3_2 (~> 3.0.0) - ruby-merge! ruby-progressbar (~> 1.13) - rust-merge! - smorg-rb! standard (>= 1.50) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) - toml-merge! - tree_haver! tree_sitter_language_pack! - typescript-merge! yaml-converter (~> 0.1) - yaml-merge! yard (~> 0.9, >= 0.9.44) yard-fence (~> 0.9, >= 0.9.1) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) yard-timekeeper (~> 0.1) yard-yaml (~> 0.1, >= 0.1.2) - zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af ansi (1.6.0) sha256=ac9ea0c0ea8d32fb4e271348e609963ac78882f34b73836c2a02b3622e666658 appraisal2 (3.2.0) sha256=ccd0b767ac4060cd7af6d16747459b6990f49c39c7b4fb1f7d1146b1e97c492f ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 - ast-crispr (7.1.0) - ast-crispr-markdown-markly (7.1.0) - ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) - ast-merge-git (7.1.0) - ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 - bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd - binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 - citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 - commonmarker (2.9.0-aarch64-linux) sha256=e2b4aadb9a2cfa4e206582641ce3a49465549ac1ed4c289fdd63b78d8f24579c - commonmarker (2.9.0-aarch64-linux-musl) sha256=1cf4d2821f2a7e64945f1ed7c4eeced586fdb27ea7fe7337788802cf8f57cfca - commonmarker (2.9.0-arm64-darwin) sha256=1748dbfa4f5813b0d2a14bb4bbfa65a4ec293aa1c825016d60029ee0e132b046 - commonmarker (2.9.0-x86_64-darwin) sha256=0a9914ccfd2f5d2a59c7bd0dda4fe90eb084cf513b477e499008e09ec9d6edd6 - commonmarker (2.9.0-x86_64-linux) sha256=8cfe92970eef585a19ddf6613224b91cab64d6029834661bda801f877c9c7f43 - commonmarker (2.9.0-x86_64-linux-musl) sha256=293921398b839f79ceaf55010e061357e34f053822c3b003cd0be6686176335e - commonmarker-merge (7.1.0) concurrent-ruby (1.3.7) sha256=4412caec3a5ea2e5fdc52076724c071a81f2c0593d83b2ac8cbb8ca63b3151b0 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 @@ -737,7 +442,6 @@ CHECKSUMS diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 docile (1.4.1) sha256=96159be799bfa73cdb721b840e9802126e4e03dfc26863db73647204c727f21e - dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -750,15 +454,11 @@ CHECKSUMS gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f - go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 - json-merge (7.1.0) kettle-dev (2.3.7) sha256=eb370113cd030d03cbe2d33b31c99858951017e5ad21a17e9ed89dc3770028ee - kettle-drift (1.0.5) sha256=07094e80140a049164142820bdd327c30fcd855bb00697a0a430600a2b5144a2 - kettle-jem (7.1.0) kettle-rb (0.1.4) sha256=9cef7ce4f7021666b7222292f29051e51eaf042e8a5db11f3f4dd72f74243fc1 kettle-soup-cover (1.1.3) sha256=a373827da22a7131d093afd32945e5b7d7a10a01ebfdded8fd2cb8230d69c8ad kettle-test (2.0.11) sha256=c710c90f7ab79d51f9452f0c09f5f90657e7a893f63583855c164d0b1b107ab2 @@ -769,8 +469,6 @@ CHECKSUMS lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 markdown-merge (7.1.0) - markly (0.16.0) sha256=6f70d79e385b1efc9e171f74c81628826259039fe6c778e03c3924c71dac5511 - markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-aarch64-linux-gnu) sha256=1269fb644a6de405057a53dd5c762b1209b43ca7424f839454d3dbc677c31a8f nokogiri (1.19.4-aarch64-linux-musl) sha256=35c65b9ce72b3bb03207bdbe7067915019dc18c1b9b59139684bd6690fdd01af @@ -785,14 +483,10 @@ CHECKSUMS parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 - parslet-toml-merge (7.1.0) - plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 - prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 - psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a @@ -800,7 +494,6 @@ CHECKSUMS rake-compiler-dock (1.12.0) sha256=f13205c2738f3d2053afcd03491a9e4541b22a59a0bfc53fc8bc883bd8188023 rb_sys (0.9.127) sha256=e9f90df3bb0577472d26d96127d5b5774b98f44de881e7d36aeefd28d6337847 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 - rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb @@ -828,12 +521,9 @@ CHECKSUMS rubocop-rspec (3.10.2) sha256=0b3e2ecc592cd10ecbf0095bb58d1e357905276e069643523cc19eb7495f65e2 rubocop-ruby3_2 (3.0.7) sha256=f53dd6d286fb05186214fc6ec116783e7f837030918e8931c05de773e98f8466 rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 - ruby-merge (7.1.0) ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 - rust-merge (7.1.0) - service_actor (3.9.4) sha256=e63b523630b9a7e62959b2a90113b08d2565b5de9c148557b281ef847c9539ce silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (0.22.0) sha256=fe2622c7834ff23b98066bb0a854284b2729a569ac659f82621fc22ef36213a5 simplecov-cobertura (3.2.0) sha256=70d702658677fcb20e5aceb6915ccf8bc62ff2ccd38b62b3ad5c9db5c0888740 @@ -842,7 +532,6 @@ CHECKSUMS simplecov-lcov (0.9.0) sha256=7a77a31e200a595ed4b0249493056efd0c920601f53d2ef135ca34ee796346cd simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_json_formatter (0.1.4) sha256=529418fbe8de1713ac2b2d612aa3daa56d316975d307244399fa4838c601b428 - smorg-rb (7.1.0) sorbet-runtime (0.6.13342) sha256=dbeb9892597f593ed2b29e38018912787f6c4e0c4b736d8af0d6bd3c63bde3c3 standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b @@ -856,19 +545,18 @@ CHECKSUMS timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.4) sha256=33b926958f504525bba3ed511ab66fbcbf8ef30390815e931436b30f27ffcad0 - toml (0.3.0) sha256=0a91d0f76a9036e84e44f95693b12f58d358c1df3ac8e3b5271f2056ecc6e4b9 - toml-merge (7.1.0) - toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 tree_haver (7.1.0) - tree_sitter_language_pack (1.12.5) + tree_sitter_language_pack (1.13.2) + tree_sitter_language_pack (1.13.2-aarch64-linux) + tree_sitter_language_pack (1.13.2-arm64-darwin) + tree_sitter_language_pack (1.13.2-x86_64-darwin) + tree_sitter_language_pack (1.13.2-x86_64-linux) tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 - typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 - yaml-merge (7.1.0) yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd @@ -876,7 +564,6 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 - zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH diff --git a/gems/markdown-merge/Gemfile b/gems/markdown-merge/Gemfile index 839663323..e3da867c8 100644 --- a/gems/markdown-merge/Gemfile +++ b/gems/markdown-merge/Gemfile @@ -72,14 +72,8 @@ if direct_sibling_gems.any? && end end -# Use the released TSLP gem by default; templating can override it via VENDORED_GEMS. -vendored_gems = ENV.fetch('VENDORED_GEMS', '').split(',').map(&:strip) -tslp_declared_by_templating = - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? && - vendored_gems.include?('tree_sitter_language_pack') -unless tslp_declared_by_templating - gem 'tree_sitter_language_pack', '>= 1.13.2', '< 2.0' -end +# Use the StructuredMerge TSLP fork until the Ruby ABI platform-gem fix is released. +gem 'tree_sitter_language_pack', git: 'https://github.com/structuredmerge/tree-sitter-language-pack.git', branch: 'fix/ruby-4-platform-gem-abi', glob: 'packages/ruby/*.gemspec' # Templating (env-switched: STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local paths) eval_gemfile 'gemfiles/modular/templating.gemfile' if ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? diff --git a/gems/markdown-merge/Gemfile.lock b/gems/markdown-merge/Gemfile.lock index ef5563073..57f96c3be 100644 --- a/gems/markdown-merge/Gemfile.lock +++ b/gems/markdown-merge/Gemfile.lock @@ -1,277 +1,29 @@ -PATH - remote: . - specs: - markdown-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly - specs: - ast-crispr-markdown-markly (7.1.0) - ast-crispr (= 7.1.0) - markly-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism - specs: - ast-crispr-ruby-prism (7.1.0) - ast-crispr (= 7.1.0) - prism-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr - specs: - ast-crispr (7.1.0) - ast-merge (= 7.1.0) - service_actor (~> 3.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git - specs: - ast-merge-git (7.1.0) - ast-merge (= 7.1.0) - json-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge - specs: - ast-merge (7.1.0) - benchmark - token-resolver (~> 2.0, >= 2.0.4) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template - specs: - ast-template (7.1.0) - ast-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge - specs: - bash-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge - specs: - binary-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge - specs: - citrus-toml-merge (7.1.0) - toml-merge (= 7.1.0) - toml-rb (~> 4.1) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge - specs: - commonmarker-merge (7.1.0) - commonmarker (~> 2.2) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge - specs: - dotenv-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge - specs: - go-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge - specs: - json-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem - specs: - kettle-jem (7.1.0) - addressable (>= 2.8, < 3) - ast-crispr-markdown-markly (= 7.1.0) - ast-crispr-ruby-prism (= 7.1.0) - ast-merge (= 7.1.0) - bash-merge (= 7.1.0) - citrus-toml-merge (= 7.1.0) - commonmarker-merge (= 7.1.0) - dotenv-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-dev (~> 2.3, >= 2.3.5) - kettle-rb (~> 0.1, >= 0.1.4) - kramdown-merge (= 7.1.0) - markdown-merge (= 7.1.0) - markly-merge (= 7.1.0) - prism-merge (= 7.1.0) - psych-merge (= 7.1.0) - rbs (>= 3.10) - rbs-merge (= 7.1.0) - ruby-merge (= 7.1.0) - token-resolver (~> 2.0, >= 2.0.4) - toml-merge (= 7.1.0) - toml-rb (~> 4.2) - tree_haver (= 7.1.0) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge - specs: - kramdown-merge (7.1.0) - kramdown (~> 2.5) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge - specs: - markly-merge (7.1.0) - markdown-merge (= 7.1.0) - markly (~> 0.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge - specs: - parslet-toml-merge (7.1.0) - toml (~> 0.3) - toml-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge - specs: - plain-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge - specs: - prism-merge (7.1.0) - prism (~> 1.6) - ruby-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge - specs: - psych-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge - specs: - rbs-merge (7.1.0) - ast-merge (= 7.1.0) - rbs (>= 3.10) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge - specs: - ruby-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge - specs: - rust-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb - specs: - smorg-rb (7.1.0) - ast-merge (= 7.1.0) - ast-merge-git (= 7.1.0) - go-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-jem (= 7.1.0) - markly-merge (= 7.1.0) - plain-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge - specs: - toml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver +GIT + remote: https://github.com/structuredmerge/tree-sitter-language-pack.git + revision: e736879d00ce55b9bbfa479a5c07363bde1512e2 + branch: fix/ruby-4-platform-gem-abi + glob: packages/ruby/*.gemspec specs: - tree_haver (7.1.0) - citrus (~> 3.0) - parslet (~> 2.0) - tree_sitter_language_pack (>= 1.9.0.pre.rc.40, < 2.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge - specs: - typescript-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) + tree_sitter_language_pack (1.13.2) + rb_sys (>= 0.9, < 0.9.128) + sorbet-runtime (~> 0.5) + tree_sitter_language_pack (1.13.2-aarch64-linux) + sorbet-runtime (~> 0.5) + tree_sitter_language_pack (1.13.2-arm64-darwin) + sorbet-runtime (~> 0.5) + tree_sitter_language_pack (1.13.2-x86_64-darwin) + sorbet-runtime (~> 0.5) + tree_sitter_language_pack (1.13.2-x86_64-linux) + sorbet-runtime (~> 0.5) PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge + remote: . specs: - yaml-merge (7.1.0) + markdown-merge (7.1.0) ast-merge (= 7.1.0) tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge - specs: - zip-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/vendor/tree_sitter_language_pack - specs: - tree_sitter_language_pack (1.13.1) - rb_sys (>= 0.9, < 0.9.128) - sorbet-runtime (~> 0.5) - GEM remote: https://gem.coop/ specs: @@ -283,6 +35,11 @@ GEM rake (>= 10) thor (>= 0.14) ast (2.4.3) + ast-merge (7.1.0) + benchmark + token-resolver (~> 2.0, >= 2.0.4) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) backports (3.25.3) benchmark (0.5.0) bigdecimal (4.1.2) @@ -291,12 +48,6 @@ GEM thor (~> 1.0) citrus (3.0.2) cmdparse (3.0.7) - commonmarker (2.9.0-aarch64-linux) - commonmarker (2.9.0-aarch64-linux-musl) - commonmarker (2.9.0-arm64-darwin) - commonmarker (2.9.0-x86_64-darwin) - commonmarker (2.9.0-x86_64-linux) - commonmarker (2.9.0-x86_64-linux-musl) concurrent-ruby (1.3.8) date (3.5.1) debug (1.11.1) @@ -360,8 +111,6 @@ GEM kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) - kettle-drift (1.0.5) - version_gem (~> 1.1, >= 1.1.13) kettle-rb (0.1.4) kettle-soup-cover (1.1.3) simplecov (~> 0.22) @@ -390,7 +139,6 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) - markly (0.16.0) mutex_m (0.3.0) nokogiri (1.19.4-aarch64-linux-gnu) racc (~> 1.4) @@ -530,8 +278,6 @@ GEM ruby-progressbar (1.13.0) ruby_engine (2.0.3) ruby_version (1.0.3) - service_actor (3.9.4) - zeitwerk (>= 1.0) silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) @@ -584,11 +330,11 @@ GEM token-resolver (2.0.4) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.13) - toml (0.3.0) - parslet (>= 1.8.0, < 3.0.0) - toml-rb (4.2.0) - citrus (~> 3.0, > 3.0) - racc (~> 1.7) + tree_haver (7.1.0) + citrus (~> 3.0) + parslet (~> 2.0) + tree_sitter_language_pack (>= 1.9.0.pre.rc.40, < 2.0) + version_gem (~> 1.1, >= 1.1.9) tsort (0.2.0) turbo_tests2 (3.2.0) parallel_tests (>= 3.3.0, < 6) @@ -635,45 +381,23 @@ PLATFORMS DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) - ast-crispr! - ast-crispr-markdown-markly! - ast-crispr-ruby-prism! - ast-merge! - ast-merge-git! - ast-template! - bash-merge! benchmark (~> 0.5, >= 0.5.0) - binary-merge! bundler-audit (~> 0.9.3) - citrus-toml-merge! - commonmarker-merge! debug (>= 1.1) - dotenv-merge! erb (~> 6.0, >= 6.0.4) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.0) - go-merge! irb (~> 1.17) - json-merge! kettle-dev (~> 2.0, >= 2.2.25) - kettle-drift (~> 1.0, >= 1.0.5) - kettle-jem! kettle-soup-cover (~> 1.0, >= 1.1.3) kettle-test (~> 2.0, >= 2.0.9) kramdown (~> 2.5, >= 2.5.1) - kramdown-merge! kramdown-parser-gfm (~> 1.1) markdown-merge! - markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) - parslet-toml-merge! - plain-merge! - prism-merge! - psych-merge! rake (~> 13.0) rbs (>= 3.0) - rbs-merge! rdoc (~> 6.11) reek (~> 6.5) require_bench (~> 1.0, >= 1.0.4) @@ -682,54 +406,31 @@ DEPENDENCIES rubocop-packaging (~> 0.6, >= 0.6.0) rubocop-rspec (~> 3.6) rubocop-ruby3_2 (~> 3.0.0) - ruby-merge! ruby-progressbar (~> 1.13) - rust-merge! - smorg-rb! standard (>= 1.50) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) - toml-merge! - tree_haver! tree_sitter_language_pack! - typescript-merge! yaml-converter (~> 0.1) - yaml-merge! yard (~> 0.9, >= 0.9.44) yard-fence (~> 0.9, >= 0.9.1) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) yard-timekeeper (~> 0.1) yard-yaml (~> 0.1, >= 0.1.2) - zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af ansi (1.6.0) sha256=ac9ea0c0ea8d32fb4e271348e609963ac78882f34b73836c2a02b3622e666658 appraisal2 (3.2.0) sha256=ccd0b767ac4060cd7af6d16747459b6990f49c39c7b4fb1f7d1146b1e97c492f ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 - ast-crispr (7.1.0) - ast-crispr-markdown-markly (7.1.0) - ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) - ast-merge-git (7.1.0) - ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 - bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd - binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 - citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 - commonmarker (2.9.0-aarch64-linux) sha256=e2b4aadb9a2cfa4e206582641ce3a49465549ac1ed4c289fdd63b78d8f24579c - commonmarker (2.9.0-aarch64-linux-musl) sha256=1cf4d2821f2a7e64945f1ed7c4eeced586fdb27ea7fe7337788802cf8f57cfca - commonmarker (2.9.0-arm64-darwin) sha256=1748dbfa4f5813b0d2a14bb4bbfa65a4ec293aa1c825016d60029ee0e132b046 - commonmarker (2.9.0-x86_64-darwin) sha256=0a9914ccfd2f5d2a59c7bd0dda4fe90eb084cf513b477e499008e09ec9d6edd6 - commonmarker (2.9.0-x86_64-linux) sha256=8cfe92970eef585a19ddf6613224b91cab64d6029834661bda801f877c9c7f43 - commonmarker (2.9.0-x86_64-linux-musl) sha256=293921398b839f79ceaf55010e061357e34f053822c3b003cd0be6686176335e - commonmarker-merge (7.1.0) concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 @@ -737,7 +438,6 @@ CHECKSUMS diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 docile (1.4.1) sha256=96159be799bfa73cdb721b840e9802126e4e03dfc26863db73647204c727f21e - dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -750,27 +450,20 @@ CHECKSUMS gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f - go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 - json-merge (7.1.0) kettle-dev (2.3.7) sha256=eb370113cd030d03cbe2d33b31c99858951017e5ad21a17e9ed89dc3770028ee - kettle-drift (1.0.5) sha256=07094e80140a049164142820bdd327c30fcd855bb00697a0a430600a2b5144a2 - kettle-jem (7.1.0) kettle-rb (0.1.4) sha256=9cef7ce4f7021666b7222292f29051e51eaf042e8a5db11f3f4dd72f74243fc1 kettle-soup-cover (1.1.3) sha256=a373827da22a7131d093afd32945e5b7d7a10a01ebfdded8fd2cb8230d69c8ad kettle-test (2.0.11) sha256=c710c90f7ab79d51f9452f0c09f5f90657e7a893f63583855c164d0b1b107ab2 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa - kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 markdown-merge (7.1.0) - markly (0.16.0) sha256=6f70d79e385b1efc9e171f74c81628826259039fe6c778e03c3924c71dac5511 - markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-aarch64-linux-gnu) sha256=1269fb644a6de405057a53dd5c762b1209b43ca7424f839454d3dbc677c31a8f nokogiri (1.19.4-aarch64-linux-musl) sha256=35c65b9ce72b3bb03207bdbe7067915019dc18c1b9b59139684bd6690fdd01af @@ -785,14 +478,10 @@ CHECKSUMS parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 - parslet-toml-merge (7.1.0) - plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 - prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 - psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a @@ -800,7 +489,6 @@ CHECKSUMS rake-compiler-dock (1.12.0) sha256=f13205c2738f3d2053afcd03491a9e4541b22a59a0bfc53fc8bc883bd8188023 rb_sys (0.9.127) sha256=e9f90df3bb0577472d26d96127d5b5774b98f44de881e7d36aeefd28d6337847 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 - rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb @@ -828,12 +516,9 @@ CHECKSUMS rubocop-rspec (3.10.2) sha256=0b3e2ecc592cd10ecbf0095bb58d1e357905276e069643523cc19eb7495f65e2 rubocop-ruby3_2 (3.0.7) sha256=f53dd6d286fb05186214fc6ec116783e7f837030918e8931c05de773e98f8466 rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 - ruby-merge (7.1.0) ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 - rust-merge (7.1.0) - service_actor (3.9.4) sha256=e63b523630b9a7e62959b2a90113b08d2565b5de9c148557b281ef847c9539ce silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (0.22.0) sha256=fe2622c7834ff23b98066bb0a854284b2729a569ac659f82621fc22ef36213a5 simplecov-cobertura (3.2.0) sha256=70d702658677fcb20e5aceb6915ccf8bc62ff2ccd38b62b3ad5c9db5c0888740 @@ -842,7 +527,6 @@ CHECKSUMS simplecov-lcov (0.9.0) sha256=7a77a31e200a595ed4b0249493056efd0c920601f53d2ef135ca34ee796346cd simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_json_formatter (0.1.4) sha256=529418fbe8de1713ac2b2d612aa3daa56d316975d307244399fa4838c601b428 - smorg-rb (7.1.0) sorbet-runtime (0.6.13342) sha256=dbeb9892597f593ed2b29e38018912787f6c4e0c4b736d8af0d6bd3c63bde3c3 standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b @@ -856,19 +540,18 @@ CHECKSUMS timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.4) sha256=33b926958f504525bba3ed511ab66fbcbf8ef30390815e931436b30f27ffcad0 - toml (0.3.0) sha256=0a91d0f76a9036e84e44f95693b12f58d358c1df3ac8e3b5271f2056ecc6e4b9 - toml-merge (7.1.0) - toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 tree_haver (7.1.0) - tree_sitter_language_pack (1.13.1) + tree_sitter_language_pack (1.13.2) + tree_sitter_language_pack (1.13.2-aarch64-linux) + tree_sitter_language_pack (1.13.2-arm64-darwin) + tree_sitter_language_pack (1.13.2-x86_64-darwin) + tree_sitter_language_pack (1.13.2-x86_64-linux) tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 - typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 - yaml-merge (7.1.0) yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd @@ -876,7 +559,6 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 - zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH diff --git a/gems/markly-merge/Gemfile b/gems/markly-merge/Gemfile index 9f68e39b0..aa91072b0 100644 --- a/gems/markly-merge/Gemfile +++ b/gems/markly-merge/Gemfile @@ -71,14 +71,8 @@ if direct_sibling_gems.any? && end end -# Use the released TSLP gem by default; templating can override it via VENDORED_GEMS. -vendored_gems = ENV.fetch('VENDORED_GEMS', '').split(',').map(&:strip) -tslp_declared_by_templating = - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? && - vendored_gems.include?('tree_sitter_language_pack') -unless tslp_declared_by_templating - gem 'tree_sitter_language_pack', '>= 1.13.2', '< 2.0' -end +# Use the StructuredMerge TSLP fork until the Ruby ABI platform-gem fix is released. +gem 'tree_sitter_language_pack', git: 'https://github.com/structuredmerge/tree-sitter-language-pack.git', branch: 'fix/ruby-4-platform-gem-abi', glob: 'packages/ruby/*.gemspec' # Templating (env-switched: STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local paths) eval_gemfile 'gemfiles/modular/templating.gemfile' if ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? diff --git a/gems/markly-merge/Gemfile.lock b/gems/markly-merge/Gemfile.lock index 52f4772bd..e34b99d86 100644 --- a/gems/markly-merge/Gemfile.lock +++ b/gems/markly-merge/Gemfile.lock @@ -1,3 +1,21 @@ +GIT + remote: https://github.com/structuredmerge/tree-sitter-language-pack.git + revision: e736879d00ce55b9bbfa479a5c07363bde1512e2 + branch: fix/ruby-4-platform-gem-abi + glob: packages/ruby/*.gemspec + specs: + tree_sitter_language_pack (1.13.2) + rb_sys (>= 0.9, < 0.9.128) + sorbet-runtime (~> 0.5) + tree_sitter_language_pack (1.13.2-aarch64-linux) + sorbet-runtime (~> 0.5) + tree_sitter_language_pack (1.13.2-arm64-darwin) + sorbet-runtime (~> 0.5) + tree_sitter_language_pack (1.13.2-x86_64-darwin) + sorbet-runtime (~> 0.5) + tree_sitter_language_pack (1.13.2-x86_64-linux) + sorbet-runtime (~> 0.5) + PATH remote: . specs: @@ -6,272 +24,6 @@ PATH markly (~> 0.9) version_gem (~> 1.1, >= 1.1.9) -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly - specs: - ast-crispr-markdown-markly (7.1.0) - ast-crispr (= 7.1.0) - markly-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism - specs: - ast-crispr-ruby-prism (7.1.0) - ast-crispr (= 7.1.0) - prism-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr - specs: - ast-crispr (7.1.0) - ast-merge (= 7.1.0) - service_actor (~> 3.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git - specs: - ast-merge-git (7.1.0) - ast-merge (= 7.1.0) - json-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge - specs: - ast-merge (7.1.0) - benchmark - token-resolver (~> 2.0, >= 2.0.4) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template - specs: - ast-template (7.1.0) - ast-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge - specs: - bash-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge - specs: - binary-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge - specs: - citrus-toml-merge (7.1.0) - toml-merge (= 7.1.0) - toml-rb (~> 4.1) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge - specs: - commonmarker-merge (7.1.0) - commonmarker (~> 2.2) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge - specs: - dotenv-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge - specs: - go-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge - specs: - json-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem - specs: - kettle-jem (7.1.0) - addressable (>= 2.8, < 3) - ast-crispr-markdown-markly (= 7.1.0) - ast-crispr-ruby-prism (= 7.1.0) - ast-merge (= 7.1.0) - bash-merge (= 7.1.0) - citrus-toml-merge (= 7.1.0) - commonmarker-merge (= 7.1.0) - dotenv-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-dev (~> 2.3, >= 2.3.5) - kettle-rb (~> 0.1, >= 0.1.4) - kramdown-merge (= 7.1.0) - markdown-merge (= 7.1.0) - markly-merge (= 7.1.0) - prism-merge (= 7.1.0) - psych-merge (= 7.1.0) - rbs (>= 3.10) - rbs-merge (= 7.1.0) - ruby-merge (= 7.1.0) - token-resolver (~> 2.0, >= 2.0.4) - toml-merge (= 7.1.0) - toml-rb (~> 4.2) - tree_haver (= 7.1.0) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge - specs: - kramdown-merge (7.1.0) - kramdown (~> 2.5) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge - specs: - markdown-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge - specs: - parslet-toml-merge (7.1.0) - toml (~> 0.3) - toml-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge - specs: - plain-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge - specs: - prism-merge (7.1.0) - prism (~> 1.6) - ruby-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge - specs: - psych-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge - specs: - rbs-merge (7.1.0) - ast-merge (= 7.1.0) - rbs (>= 3.10) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge - specs: - ruby-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge - specs: - rust-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb - specs: - smorg-rb (7.1.0) - ast-merge (= 7.1.0) - ast-merge-git (= 7.1.0) - go-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-jem (= 7.1.0) - markly-merge (= 7.1.0) - plain-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge - specs: - toml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver - specs: - tree_haver (7.1.0) - citrus (~> 3.0) - parslet (~> 2.0) - tree_sitter_language_pack (>= 1.9.0.pre.rc.40, < 2.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge - specs: - typescript-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge - specs: - yaml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge - specs: - zip-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/vendor/tree_sitter_language_pack - specs: - tree_sitter_language_pack (1.13.1) - rb_sys (>= 0.9, < 0.9.128) - sorbet-runtime (~> 0.5) - GEM remote: https://gem.coop/ specs: @@ -283,6 +35,11 @@ GEM rake (>= 10) thor (>= 0.14) ast (2.4.3) + ast-merge (7.1.0) + benchmark + token-resolver (~> 2.0, >= 2.0.4) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) backports (3.25.3) benchmark (0.5.0) bigdecimal (4.1.2) @@ -291,12 +48,6 @@ GEM thor (~> 1.0) citrus (3.0.2) cmdparse (3.0.7) - commonmarker (2.9.0-aarch64-linux) - commonmarker (2.9.0-aarch64-linux-musl) - commonmarker (2.9.0-arm64-darwin) - commonmarker (2.9.0-x86_64-darwin) - commonmarker (2.9.0-x86_64-linux) - commonmarker (2.9.0-x86_64-linux-musl) concurrent-ruby (1.3.8) date (3.5.1) debug (1.11.1) @@ -360,8 +111,6 @@ GEM kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) - kettle-drift (1.0.5) - version_gem (~> 1.1, >= 1.1.13) kettle-rb (0.1.4) kettle-soup-cover (1.1.3) simplecov (~> 0.22) @@ -390,6 +139,10 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) + markdown-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) markly (0.16.0) mutex_m (0.3.0) nokogiri (1.19.4-aarch64-linux-gnu) @@ -530,8 +283,6 @@ GEM ruby-progressbar (1.13.0) ruby_engine (2.0.3) ruby_version (1.0.3) - service_actor (3.9.4) - zeitwerk (>= 1.0) silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) @@ -584,11 +335,11 @@ GEM token-resolver (2.0.4) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.13) - toml (0.3.0) - parslet (>= 1.8.0, < 3.0.0) - toml-rb (4.2.0) - citrus (~> 3.0, > 3.0) - racc (~> 1.7) + tree_haver (7.1.0) + citrus (~> 3.0) + parslet (~> 2.0) + tree_sitter_language_pack (>= 1.9.0.pre.rc.40, < 2.0) + version_gem (~> 1.1, >= 1.1.9) tsort (0.2.0) turbo_tests2 (3.2.0) parallel_tests (>= 3.3.0, < 6) @@ -635,45 +386,23 @@ PLATFORMS DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) - ast-crispr! - ast-crispr-markdown-markly! - ast-crispr-ruby-prism! - ast-merge! - ast-merge-git! - ast-template! - bash-merge! benchmark (~> 0.5, >= 0.5.0) - binary-merge! bundler-audit (~> 0.9.3) - citrus-toml-merge! - commonmarker-merge! debug (>= 1.1) - dotenv-merge! erb (~> 6.0, >= 6.0.4) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.0) - go-merge! irb (~> 1.17) - json-merge! kettle-dev (~> 2.0, >= 2.2.25) - kettle-drift (~> 1.0, >= 1.0.5) - kettle-jem! kettle-soup-cover (~> 1.0, >= 1.1.3) kettle-test (~> 2.0, >= 2.0.9) kramdown (~> 2.5, >= 2.5.1) - kramdown-merge! kramdown-parser-gfm (~> 1.1) - markdown-merge! markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) - parslet-toml-merge! - plain-merge! - prism-merge! - psych-merge! rake (~> 13.0) rbs (>= 3.0) - rbs-merge! rdoc (~> 6.11) reek (~> 6.5) require_bench (~> 1.0, >= 1.0.4) @@ -682,54 +411,31 @@ DEPENDENCIES rubocop-packaging (~> 0.6, >= 0.6.0) rubocop-rspec (~> 3.6) rubocop-ruby3_2 (~> 3.0.0) - ruby-merge! ruby-progressbar (~> 1.13) - rust-merge! - smorg-rb! standard (>= 1.50) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) - toml-merge! - tree_haver! tree_sitter_language_pack! - typescript-merge! yaml-converter (~> 0.1) - yaml-merge! yard (~> 0.9, >= 0.9.44) yard-fence (~> 0.9, >= 0.9.1) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) yard-timekeeper (~> 0.1) yard-yaml (~> 0.1, >= 0.1.2) - zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af ansi (1.6.0) sha256=ac9ea0c0ea8d32fb4e271348e609963ac78882f34b73836c2a02b3622e666658 appraisal2 (3.2.0) sha256=ccd0b767ac4060cd7af6d16747459b6990f49c39c7b4fb1f7d1146b1e97c492f ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 - ast-crispr (7.1.0) - ast-crispr-markdown-markly (7.1.0) - ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) - ast-merge-git (7.1.0) - ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 - bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd - binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 - citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 - commonmarker (2.9.0-aarch64-linux) sha256=e2b4aadb9a2cfa4e206582641ce3a49465549ac1ed4c289fdd63b78d8f24579c - commonmarker (2.9.0-aarch64-linux-musl) sha256=1cf4d2821f2a7e64945f1ed7c4eeced586fdb27ea7fe7337788802cf8f57cfca - commonmarker (2.9.0-arm64-darwin) sha256=1748dbfa4f5813b0d2a14bb4bbfa65a4ec293aa1c825016d60029ee0e132b046 - commonmarker (2.9.0-x86_64-darwin) sha256=0a9914ccfd2f5d2a59c7bd0dda4fe90eb084cf513b477e499008e09ec9d6edd6 - commonmarker (2.9.0-x86_64-linux) sha256=8cfe92970eef585a19ddf6613224b91cab64d6029834661bda801f877c9c7f43 - commonmarker (2.9.0-x86_64-linux-musl) sha256=293921398b839f79ceaf55010e061357e34f053822c3b003cd0be6686176335e - commonmarker-merge (7.1.0) concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 @@ -737,7 +443,6 @@ CHECKSUMS diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 docile (1.4.1) sha256=96159be799bfa73cdb721b840e9802126e4e03dfc26863db73647204c727f21e - dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -750,20 +455,15 @@ CHECKSUMS gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f - go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 - json-merge (7.1.0) kettle-dev (2.3.7) sha256=eb370113cd030d03cbe2d33b31c99858951017e5ad21a17e9ed89dc3770028ee - kettle-drift (1.0.5) sha256=07094e80140a049164142820bdd327c30fcd855bb00697a0a430600a2b5144a2 - kettle-jem (7.1.0) kettle-rb (0.1.4) sha256=9cef7ce4f7021666b7222292f29051e51eaf042e8a5db11f3f4dd72f74243fc1 kettle-soup-cover (1.1.3) sha256=a373827da22a7131d093afd32945e5b7d7a10a01ebfdded8fd2cb8230d69c8ad kettle-test (2.0.11) sha256=c710c90f7ab79d51f9452f0c09f5f90657e7a893f63583855c164d0b1b107ab2 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa - kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 @@ -785,14 +485,10 @@ CHECKSUMS parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 - parslet-toml-merge (7.1.0) - plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 - prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 - psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a @@ -800,7 +496,6 @@ CHECKSUMS rake-compiler-dock (1.12.0) sha256=f13205c2738f3d2053afcd03491a9e4541b22a59a0bfc53fc8bc883bd8188023 rb_sys (0.9.127) sha256=e9f90df3bb0577472d26d96127d5b5774b98f44de881e7d36aeefd28d6337847 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 - rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb @@ -828,12 +523,9 @@ CHECKSUMS rubocop-rspec (3.10.2) sha256=0b3e2ecc592cd10ecbf0095bb58d1e357905276e069643523cc19eb7495f65e2 rubocop-ruby3_2 (3.0.7) sha256=f53dd6d286fb05186214fc6ec116783e7f837030918e8931c05de773e98f8466 rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 - ruby-merge (7.1.0) ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 - rust-merge (7.1.0) - service_actor (3.9.4) sha256=e63b523630b9a7e62959b2a90113b08d2565b5de9c148557b281ef847c9539ce silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (0.22.0) sha256=fe2622c7834ff23b98066bb0a854284b2729a569ac659f82621fc22ef36213a5 simplecov-cobertura (3.2.0) sha256=70d702658677fcb20e5aceb6915ccf8bc62ff2ccd38b62b3ad5c9db5c0888740 @@ -842,7 +534,6 @@ CHECKSUMS simplecov-lcov (0.9.0) sha256=7a77a31e200a595ed4b0249493056efd0c920601f53d2ef135ca34ee796346cd simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_json_formatter (0.1.4) sha256=529418fbe8de1713ac2b2d612aa3daa56d316975d307244399fa4838c601b428 - smorg-rb (7.1.0) sorbet-runtime (0.6.13342) sha256=dbeb9892597f593ed2b29e38018912787f6c4e0c4b736d8af0d6bd3c63bde3c3 standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b @@ -856,19 +547,18 @@ CHECKSUMS timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.4) sha256=33b926958f504525bba3ed511ab66fbcbf8ef30390815e931436b30f27ffcad0 - toml (0.3.0) sha256=0a91d0f76a9036e84e44f95693b12f58d358c1df3ac8e3b5271f2056ecc6e4b9 - toml-merge (7.1.0) - toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 tree_haver (7.1.0) - tree_sitter_language_pack (1.13.1) + tree_sitter_language_pack (1.13.2) + tree_sitter_language_pack (1.13.2-aarch64-linux) + tree_sitter_language_pack (1.13.2-arm64-darwin) + tree_sitter_language_pack (1.13.2-x86_64-darwin) + tree_sitter_language_pack (1.13.2-x86_64-linux) tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 - typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 - yaml-merge (7.1.0) yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd @@ -876,7 +566,6 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 - zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH diff --git a/gems/parslet-toml-merge/Gemfile b/gems/parslet-toml-merge/Gemfile index 40b47e113..ae20c8ba6 100644 --- a/gems/parslet-toml-merge/Gemfile +++ b/gems/parslet-toml-merge/Gemfile @@ -71,14 +71,8 @@ if direct_sibling_gems.any? && end end -# Use the released TSLP gem by default; templating can override it via VENDORED_GEMS. -vendored_gems = ENV.fetch('VENDORED_GEMS', '').split(',').map(&:strip) -tslp_declared_by_templating = - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? && - vendored_gems.include?('tree_sitter_language_pack') -unless tslp_declared_by_templating - gem 'tree_sitter_language_pack', '>= 1.13.2', '< 2.0' -end +# Use the StructuredMerge TSLP fork until the Ruby ABI platform-gem fix is released. +gem 'tree_sitter_language_pack', git: 'https://github.com/structuredmerge/tree-sitter-language-pack.git', branch: 'fix/ruby-4-platform-gem-abi', glob: 'packages/ruby/*.gemspec' # Templating (env-switched: STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local paths) eval_gemfile 'gemfiles/modular/templating.gemfile' if ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? diff --git a/gems/parslet-toml-merge/Gemfile.lock b/gems/parslet-toml-merge/Gemfile.lock index 07b1507b3..d8e4ccb9c 100644 --- a/gems/parslet-toml-merge/Gemfile.lock +++ b/gems/parslet-toml-merge/Gemfile.lock @@ -1,3 +1,21 @@ +GIT + remote: https://github.com/structuredmerge/tree-sitter-language-pack.git + revision: e736879d00ce55b9bbfa479a5c07363bde1512e2 + branch: fix/ruby-4-platform-gem-abi + glob: packages/ruby/*.gemspec + specs: + tree_sitter_language_pack (1.13.2) + rb_sys (>= 0.9, < 0.9.128) + sorbet-runtime (~> 0.5) + tree_sitter_language_pack (1.13.2-aarch64-linux) + sorbet-runtime (~> 0.5) + tree_sitter_language_pack (1.13.2-arm64-darwin) + sorbet-runtime (~> 0.5) + tree_sitter_language_pack (1.13.2-x86_64-darwin) + sorbet-runtime (~> 0.5) + tree_sitter_language_pack (1.13.2-x86_64-linux) + sorbet-runtime (~> 0.5) + PATH remote: . specs: @@ -6,272 +24,6 @@ PATH toml-merge (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly - specs: - ast-crispr-markdown-markly (7.1.0) - ast-crispr (= 7.1.0) - markly-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism - specs: - ast-crispr-ruby-prism (7.1.0) - ast-crispr (= 7.1.0) - prism-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr - specs: - ast-crispr (7.1.0) - ast-merge (= 7.1.0) - service_actor (~> 3.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git - specs: - ast-merge-git (7.1.0) - ast-merge (= 7.1.0) - json-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge - specs: - ast-merge (7.1.0) - benchmark - token-resolver (~> 2.0, >= 2.0.4) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template - specs: - ast-template (7.1.0) - ast-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge - specs: - bash-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge - specs: - binary-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge - specs: - citrus-toml-merge (7.1.0) - toml-merge (= 7.1.0) - toml-rb (~> 4.1) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge - specs: - commonmarker-merge (7.1.0) - commonmarker (~> 2.2) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge - specs: - dotenv-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge - specs: - go-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge - specs: - json-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem - specs: - kettle-jem (7.1.0) - addressable (>= 2.8, < 3) - ast-crispr-markdown-markly (= 7.1.0) - ast-crispr-ruby-prism (= 7.1.0) - ast-merge (= 7.1.0) - bash-merge (= 7.1.0) - citrus-toml-merge (= 7.1.0) - commonmarker-merge (= 7.1.0) - dotenv-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-dev (~> 2.3, >= 2.3.5) - kettle-rb (~> 0.1, >= 0.1.4) - kramdown-merge (= 7.1.0) - markdown-merge (= 7.1.0) - markly-merge (= 7.1.0) - prism-merge (= 7.1.0) - psych-merge (= 7.1.0) - rbs (>= 3.10) - rbs-merge (= 7.1.0) - ruby-merge (= 7.1.0) - token-resolver (~> 2.0, >= 2.0.4) - toml-merge (= 7.1.0) - toml-rb (~> 4.2) - tree_haver (= 7.1.0) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge - specs: - kramdown-merge (7.1.0) - kramdown (~> 2.5) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge - specs: - markdown-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge - specs: - markly-merge (7.1.0) - markdown-merge (= 7.1.0) - markly (~> 0.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge - specs: - plain-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge - specs: - prism-merge (7.1.0) - prism (~> 1.6) - ruby-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge - specs: - psych-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge - specs: - rbs-merge (7.1.0) - ast-merge (= 7.1.0) - rbs (>= 3.10) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge - specs: - ruby-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge - specs: - rust-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb - specs: - smorg-rb (7.1.0) - ast-merge (= 7.1.0) - ast-merge-git (= 7.1.0) - go-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-jem (= 7.1.0) - markly-merge (= 7.1.0) - plain-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge - specs: - toml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver - specs: - tree_haver (7.1.0) - citrus (~> 3.0) - parslet (~> 2.0) - tree_sitter_language_pack (>= 1.9.0.pre.rc.40, < 2.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge - specs: - typescript-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge - specs: - yaml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge - specs: - zip-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /var/home/pboling/src/my/structuredmerge/vendor/tree-sitter-language-pack/packages/ruby - specs: - tree_sitter_language_pack (1.12.5) - rb_sys (>= 0.9, < 0.9.128) - sorbet-runtime (~> 0.5) - GEM remote: https://gem.coop/ specs: @@ -283,6 +35,11 @@ GEM rake (>= 10) thor (>= 0.14) ast (2.4.3) + ast-merge (7.1.0) + benchmark + token-resolver (~> 2.0, >= 2.0.4) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) backports (3.25.3) benchmark (0.5.0) bigdecimal (4.1.2) @@ -291,12 +48,6 @@ GEM thor (~> 1.0) citrus (3.0.2) cmdparse (3.0.7) - commonmarker (2.9.0-aarch64-linux) - commonmarker (2.9.0-aarch64-linux-musl) - commonmarker (2.9.0-arm64-darwin) - commonmarker (2.9.0-x86_64-darwin) - commonmarker (2.9.0-x86_64-linux) - commonmarker (2.9.0-x86_64-linux-musl) concurrent-ruby (1.3.7) date (3.5.1) debug (1.11.1) @@ -360,8 +111,6 @@ GEM kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) - kettle-drift (1.0.5) - version_gem (~> 1.1, >= 1.1.13) kettle-rb (0.1.4) kettle-soup-cover (1.1.3) simplecov (~> 0.22) @@ -390,7 +139,6 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) - markly (0.16.0) mutex_m (0.3.0) nokogiri (1.19.4-aarch64-linux-gnu) racc (~> 1.4) @@ -530,8 +278,6 @@ GEM ruby-progressbar (1.13.0) ruby_engine (2.0.3) ruby_version (1.0.3) - service_actor (3.9.4) - zeitwerk (>= 1.0) silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) @@ -586,9 +332,15 @@ GEM version_gem (~> 1.1, >= 1.1.13) toml (0.3.0) parslet (>= 1.8.0, < 3.0.0) - toml-rb (4.2.0) - citrus (~> 3.0, > 3.0) - racc (~> 1.7) + toml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + tree_haver (7.1.0) + citrus (~> 3.0) + parslet (~> 2.0) + tree_sitter_language_pack (>= 1.9.0.pre.rc.40, < 2.0) + version_gem (~> 1.1, >= 1.1.9) tsort (0.2.0) turbo_tests2 (3.2.0) parallel_tests (>= 3.3.0, < 6) @@ -635,45 +387,23 @@ PLATFORMS DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) - ast-crispr! - ast-crispr-markdown-markly! - ast-crispr-ruby-prism! - ast-merge! - ast-merge-git! - ast-template! - bash-merge! benchmark (~> 0.5, >= 0.5.0) - binary-merge! bundler-audit (~> 0.9.3) - citrus-toml-merge! - commonmarker-merge! debug (>= 1.1) - dotenv-merge! erb (~> 6.0, >= 6.0.4) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.0) - go-merge! irb (~> 1.17) - json-merge! kettle-dev (~> 2.0, >= 2.2.25) - kettle-drift (~> 1.0, >= 1.0.5) - kettle-jem! kettle-soup-cover (~> 1.0, >= 1.1.3) kettle-test (~> 2.0, >= 2.0.9) kramdown (~> 2.5, >= 2.5.1) - kramdown-merge! kramdown-parser-gfm (~> 1.1) - markdown-merge! - markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) parslet-toml-merge! - plain-merge! - prism-merge! - psych-merge! rake (~> 13.0) rbs (>= 3.0) - rbs-merge! rdoc (~> 6.11) reek (~> 6.5) require_bench (~> 1.0, >= 1.0.4) @@ -682,54 +412,31 @@ DEPENDENCIES rubocop-packaging (~> 0.6, >= 0.6.0) rubocop-rspec (~> 3.6) rubocop-ruby3_2 (~> 3.0.0) - ruby-merge! ruby-progressbar (~> 1.13) - rust-merge! - smorg-rb! standard (>= 1.50) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) - toml-merge! - tree_haver! tree_sitter_language_pack! - typescript-merge! yaml-converter (~> 0.1) - yaml-merge! yard (~> 0.9, >= 0.9.44) yard-fence (~> 0.9, >= 0.9.1) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) yard-timekeeper (~> 0.1) yard-yaml (~> 0.1, >= 0.1.2) - zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af ansi (1.6.0) sha256=ac9ea0c0ea8d32fb4e271348e609963ac78882f34b73836c2a02b3622e666658 appraisal2 (3.2.0) sha256=ccd0b767ac4060cd7af6d16747459b6990f49c39c7b4fb1f7d1146b1e97c492f ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 - ast-crispr (7.1.0) - ast-crispr-markdown-markly (7.1.0) - ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) - ast-merge-git (7.1.0) - ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 - bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd - binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 - citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 - commonmarker (2.9.0-aarch64-linux) sha256=e2b4aadb9a2cfa4e206582641ce3a49465549ac1ed4c289fdd63b78d8f24579c - commonmarker (2.9.0-aarch64-linux-musl) sha256=1cf4d2821f2a7e64945f1ed7c4eeced586fdb27ea7fe7337788802cf8f57cfca - commonmarker (2.9.0-arm64-darwin) sha256=1748dbfa4f5813b0d2a14bb4bbfa65a4ec293aa1c825016d60029ee0e132b046 - commonmarker (2.9.0-x86_64-darwin) sha256=0a9914ccfd2f5d2a59c7bd0dda4fe90eb084cf513b477e499008e09ec9d6edd6 - commonmarker (2.9.0-x86_64-linux) sha256=8cfe92970eef585a19ddf6613224b91cab64d6029834661bda801f877c9c7f43 - commonmarker (2.9.0-x86_64-linux-musl) sha256=293921398b839f79ceaf55010e061357e34f053822c3b003cd0be6686176335e - commonmarker-merge (7.1.0) concurrent-ruby (1.3.7) sha256=4412caec3a5ea2e5fdc52076724c071a81f2c0593d83b2ac8cbb8ca63b3151b0 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 @@ -737,7 +444,6 @@ CHECKSUMS diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 docile (1.4.1) sha256=96159be799bfa73cdb721b840e9802126e4e03dfc26863db73647204c727f21e - dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -750,27 +456,19 @@ CHECKSUMS gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f - go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 - json-merge (7.1.0) kettle-dev (2.3.7) sha256=eb370113cd030d03cbe2d33b31c99858951017e5ad21a17e9ed89dc3770028ee - kettle-drift (1.0.5) sha256=07094e80140a049164142820bdd327c30fcd855bb00697a0a430600a2b5144a2 - kettle-jem (7.1.0) kettle-rb (0.1.4) sha256=9cef7ce4f7021666b7222292f29051e51eaf042e8a5db11f3f4dd72f74243fc1 kettle-soup-cover (1.1.3) sha256=a373827da22a7131d093afd32945e5b7d7a10a01ebfdded8fd2cb8230d69c8ad kettle-test (2.0.11) sha256=c710c90f7ab79d51f9452f0c09f5f90657e7a893f63583855c164d0b1b107ab2 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa - kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 - markdown-merge (7.1.0) - markly (0.16.0) sha256=6f70d79e385b1efc9e171f74c81628826259039fe6c778e03c3924c71dac5511 - markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-aarch64-linux-gnu) sha256=1269fb644a6de405057a53dd5c762b1209b43ca7424f839454d3dbc677c31a8f nokogiri (1.19.4-aarch64-linux-musl) sha256=35c65b9ce72b3bb03207bdbe7067915019dc18c1b9b59139684bd6690fdd01af @@ -786,13 +484,10 @@ CHECKSUMS parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 parslet-toml-merge (7.1.0) - plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 - prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 - psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a @@ -800,7 +495,6 @@ CHECKSUMS rake-compiler-dock (1.12.0) sha256=f13205c2738f3d2053afcd03491a9e4541b22a59a0bfc53fc8bc883bd8188023 rb_sys (0.9.127) sha256=e9f90df3bb0577472d26d96127d5b5774b98f44de881e7d36aeefd28d6337847 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 - rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb @@ -828,12 +522,9 @@ CHECKSUMS rubocop-rspec (3.10.2) sha256=0b3e2ecc592cd10ecbf0095bb58d1e357905276e069643523cc19eb7495f65e2 rubocop-ruby3_2 (3.0.7) sha256=f53dd6d286fb05186214fc6ec116783e7f837030918e8931c05de773e98f8466 rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 - ruby-merge (7.1.0) ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 - rust-merge (7.1.0) - service_actor (3.9.4) sha256=e63b523630b9a7e62959b2a90113b08d2565b5de9c148557b281ef847c9539ce silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (0.22.0) sha256=fe2622c7834ff23b98066bb0a854284b2729a569ac659f82621fc22ef36213a5 simplecov-cobertura (3.2.0) sha256=70d702658677fcb20e5aceb6915ccf8bc62ff2ccd38b62b3ad5c9db5c0888740 @@ -842,7 +533,6 @@ CHECKSUMS simplecov-lcov (0.9.0) sha256=7a77a31e200a595ed4b0249493056efd0c920601f53d2ef135ca34ee796346cd simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_json_formatter (0.1.4) sha256=529418fbe8de1713ac2b2d612aa3daa56d316975d307244399fa4838c601b428 - smorg-rb (7.1.0) sorbet-runtime (0.6.13342) sha256=dbeb9892597f593ed2b29e38018912787f6c4e0c4b736d8af0d6bd3c63bde3c3 standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b @@ -858,17 +548,18 @@ CHECKSUMS token-resolver (2.0.4) sha256=33b926958f504525bba3ed511ab66fbcbf8ef30390815e931436b30f27ffcad0 toml (0.3.0) sha256=0a91d0f76a9036e84e44f95693b12f58d358c1df3ac8e3b5271f2056ecc6e4b9 toml-merge (7.1.0) - toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 tree_haver (7.1.0) - tree_sitter_language_pack (1.12.5) + tree_sitter_language_pack (1.13.2) + tree_sitter_language_pack (1.13.2-aarch64-linux) + tree_sitter_language_pack (1.13.2-arm64-darwin) + tree_sitter_language_pack (1.13.2-x86_64-darwin) + tree_sitter_language_pack (1.13.2-x86_64-linux) tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 - typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 - yaml-merge (7.1.0) yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd @@ -876,7 +567,6 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 - zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH diff --git a/gems/plain-merge/Gemfile b/gems/plain-merge/Gemfile index b7ff6a13b..657653255 100644 --- a/gems/plain-merge/Gemfile +++ b/gems/plain-merge/Gemfile @@ -72,14 +72,8 @@ if direct_sibling_gems.any? && end end -# Use the released TSLP gem by default; templating can override it via VENDORED_GEMS. -vendored_gems = ENV.fetch('VENDORED_GEMS', '').split(',').map(&:strip) -tslp_declared_by_templating = - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? && - vendored_gems.include?('tree_sitter_language_pack') -unless tslp_declared_by_templating - gem 'tree_sitter_language_pack', '>= 1.13.2', '< 2.0' -end +# Use the StructuredMerge TSLP fork until the Ruby ABI platform-gem fix is released. +gem 'tree_sitter_language_pack', git: 'https://github.com/structuredmerge/tree-sitter-language-pack.git', branch: 'fix/ruby-4-platform-gem-abi', glob: 'packages/ruby/*.gemspec' # Templating (env-switched: STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local paths) eval_gemfile 'gemfiles/modular/templating.gemfile' if ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? diff --git a/gems/plain-merge/Gemfile.lock b/gems/plain-merge/Gemfile.lock index 981573314..45990575a 100644 --- a/gems/plain-merge/Gemfile.lock +++ b/gems/plain-merge/Gemfile.lock @@ -1,12 +1,20 @@ GIT remote: https://github.com/structuredmerge/tree-sitter-language-pack.git - revision: 85cac7836bb2f8cfcd3041a191b7bd11bf10924a - branch: fix/ruby-parser-api-methods + revision: e736879d00ce55b9bbfa479a5c07363bde1512e2 + branch: fix/ruby-4-platform-gem-abi glob: packages/ruby/*.gemspec specs: - tree_sitter_language_pack (1.12.5) + tree_sitter_language_pack (1.13.2) rb_sys (>= 0.9, < 0.9.128) sorbet-runtime (~> 0.5) + tree_sitter_language_pack (1.13.2-aarch64-linux) + sorbet-runtime (~> 0.5) + tree_sitter_language_pack (1.13.2-arm64-darwin) + sorbet-runtime (~> 0.5) + tree_sitter_language_pack (1.13.2-x86_64-darwin) + sorbet-runtime (~> 0.5) + tree_sitter_language_pack (1.13.2-x86_64-linux) + sorbet-runtime (~> 0.5) PATH remote: . @@ -16,24 +24,6 @@ PATH tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) -PATH - remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/ast-merge - specs: - ast-merge (7.1.0) - benchmark - token-resolver (~> 2.0, >= 2.0.4) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/tree_haver - specs: - tree_haver (7.1.0) - citrus (~> 3.0) - parslet (~> 2.0) - tree_sitter_language_pack (>= 1.9.0.pre.rc.40, < 2.0) - version_gem (~> 1.1, >= 1.1.9) - GEM remote: https://gem.coop/ specs: @@ -45,6 +35,11 @@ GEM rake (>= 10) thor (>= 0.14) ast (2.4.3) + ast-merge (7.1.0) + benchmark + token-resolver (~> 2.0, >= 2.0.4) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) backports (3.25.3) benchmark (0.5.0) bigdecimal (4.1.2) @@ -335,6 +330,11 @@ GEM token-resolver (2.0.4) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.13) + tree_haver (7.1.0) + citrus (~> 3.0) + parslet (~> 2.0) + tree_sitter_language_pack (>= 1.9.0.pre.rc.40, < 2.0) + version_gem (~> 1.1, >= 1.1.9) tsort (0.2.0) turbo_tests2 (3.2.0) parallel_tests (>= 3.3.0, < 6) @@ -381,7 +381,6 @@ PLATFORMS DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) - ast-merge! benchmark (~> 0.5, >= 0.5.0) bundler-audit (~> 0.9.3) debug (>= 1.1) @@ -411,7 +410,6 @@ DEPENDENCIES standard (>= 1.50) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) - tree_haver! tree_sitter_language_pack! yaml-converter (~> 0.1) yard (~> 0.9, >= 0.9.44) @@ -543,7 +541,11 @@ CHECKSUMS timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.4) sha256=33b926958f504525bba3ed511ab66fbcbf8ef30390815e931436b30f27ffcad0 tree_haver (7.1.0) - tree_sitter_language_pack (1.12.5) + tree_sitter_language_pack (1.13.2) + tree_sitter_language_pack (1.13.2-aarch64-linux) + tree_sitter_language_pack (1.13.2-arm64-darwin) + tree_sitter_language_pack (1.13.2-x86_64-darwin) + tree_sitter_language_pack (1.13.2-x86_64-linux) tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 diff --git a/gems/prism-merge/Gemfile b/gems/prism-merge/Gemfile index ffeccbf5b..0220a5cbd 100644 --- a/gems/prism-merge/Gemfile +++ b/gems/prism-merge/Gemfile @@ -71,14 +71,8 @@ if direct_sibling_gems.any? && end end -# Use the released TSLP gem by default; templating can override it via VENDORED_GEMS. -vendored_gems = ENV.fetch('VENDORED_GEMS', '').split(',').map(&:strip) -tslp_declared_by_templating = - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? && - vendored_gems.include?('tree_sitter_language_pack') -unless tslp_declared_by_templating - gem 'tree_sitter_language_pack', '>= 1.13.2', '< 2.0' -end +# Use the StructuredMerge TSLP fork until the Ruby ABI platform-gem fix is released. +gem 'tree_sitter_language_pack', git: 'https://github.com/structuredmerge/tree-sitter-language-pack.git', branch: 'fix/ruby-4-platform-gem-abi', glob: 'packages/ruby/*.gemspec' # Templating (env-switched: STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local paths) eval_gemfile 'gemfiles/modular/templating.gemfile' if ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? diff --git a/gems/prism-merge/Gemfile.lock b/gems/prism-merge/Gemfile.lock index b79859c6a..380fcf5ad 100644 --- a/gems/prism-merge/Gemfile.lock +++ b/gems/prism-merge/Gemfile.lock @@ -1,3 +1,15 @@ +GIT + remote: https://github.com/structuredmerge/tree-sitter-language-pack.git + revision: e736879d00ce55b9bbfa479a5c07363bde1512e2 + branch: fix/ruby-4-platform-gem-abi + glob: packages/ruby/*.gemspec + specs: + tree_sitter_language_pack (1.13.2) + rb_sys (>= 0.9, < 0.9.128) + sorbet-runtime (~> 0.5) + tree_sitter_language_pack (1.13.2-x86_64-linux) + sorbet-runtime (~> 0.5) + PATH remote: . specs: @@ -6,272 +18,6 @@ PATH ruby-merge (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly - specs: - ast-crispr-markdown-markly (7.1.0) - ast-crispr (= 7.1.0) - markly-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism - specs: - ast-crispr-ruby-prism (7.1.0) - ast-crispr (= 7.1.0) - prism-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr - specs: - ast-crispr (7.1.0) - ast-merge (= 7.1.0) - service_actor (~> 3.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git - specs: - ast-merge-git (7.1.0) - ast-merge (= 7.1.0) - json-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge - specs: - ast-merge (7.1.0) - benchmark - token-resolver (~> 2.0, >= 2.0.4) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template - specs: - ast-template (7.1.0) - ast-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge - specs: - bash-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge - specs: - binary-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge - specs: - citrus-toml-merge (7.1.0) - toml-merge (= 7.1.0) - toml-rb (~> 4.1) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge - specs: - commonmarker-merge (7.1.0) - commonmarker (~> 2.2) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge - specs: - dotenv-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge - specs: - go-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge - specs: - json-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem - specs: - kettle-jem (7.1.0) - addressable (>= 2.8, < 3) - ast-crispr-markdown-markly (= 7.1.0) - ast-crispr-ruby-prism (= 7.1.0) - ast-merge (= 7.1.0) - bash-merge (= 7.1.0) - citrus-toml-merge (= 7.1.0) - commonmarker-merge (= 7.1.0) - dotenv-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-dev (~> 2.3, >= 2.3.5) - kettle-rb (~> 0.1, >= 0.1.4) - kramdown-merge (= 7.1.0) - markdown-merge (= 7.1.0) - markly-merge (= 7.1.0) - prism-merge (= 7.1.0) - psych-merge (= 7.1.0) - rbs (>= 3.10) - rbs-merge (= 7.1.0) - ruby-merge (= 7.1.0) - token-resolver (~> 2.0, >= 2.0.4) - toml-merge (= 7.1.0) - toml-rb (~> 4.2) - tree_haver (= 7.1.0) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge - specs: - kramdown-merge (7.1.0) - kramdown (~> 2.5) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge - specs: - markdown-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge - specs: - markly-merge (7.1.0) - markdown-merge (= 7.1.0) - markly (~> 0.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge - specs: - parslet-toml-merge (7.1.0) - toml (~> 0.3) - toml-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge - specs: - plain-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge - specs: - psych-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge - specs: - rbs-merge (7.1.0) - ast-merge (= 7.1.0) - rbs (>= 3.10) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge - specs: - ruby-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge - specs: - rust-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb - specs: - smorg-rb (7.1.0) - ast-merge (= 7.1.0) - ast-merge-git (= 7.1.0) - go-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-jem (= 7.1.0) - markly-merge (= 7.1.0) - plain-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge - specs: - toml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver - specs: - tree_haver (7.1.0) - citrus (~> 3.0) - parslet (~> 2.0) - tree_sitter_language_pack (>= 1.9.0.pre.rc.40, < 2.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge - specs: - typescript-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge - specs: - yaml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge - specs: - zip-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/vendor/tree_sitter_language_pack - specs: - tree_sitter_language_pack (1.13.1) - rb_sys (>= 0.9, < 0.9.128) - sorbet-runtime (~> 0.5) - GEM remote: https://gem.coop/ specs: @@ -283,6 +29,11 @@ GEM rake (>= 10) thor (>= 0.14) ast (2.4.3) + ast-merge (7.1.0) + benchmark + token-resolver (~> 2.0, >= 2.0.4) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) backports (3.25.3) benchmark (0.5.0) bigdecimal (4.1.2) @@ -291,8 +42,6 @@ GEM thor (~> 1.0) citrus (3.0.2) cmdparse (3.0.7) - commonmarker (2.9.0-x86_64-linux) - commonmarker (2.9.0-x86_64-linux-musl) concurrent-ruby (1.3.8) date (3.5.1) debug (1.11.1) @@ -356,8 +105,6 @@ GEM kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) - kettle-drift (1.0.5) - version_gem (~> 1.1, >= 1.1.13) kettle-rb (0.1.4) kettle-soup-cover (1.1.3) simplecov (~> 0.22) @@ -386,7 +133,6 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) - markly (0.16.0) mutex_m (0.3.0) nokogiri (1.19.4-x86_64-linux-gnu) racc (~> 1.4) @@ -515,11 +261,13 @@ GEM lint_roller (~> 1.1) rubocop (~> 1.72, >= 1.72.1) rubocop-ast (>= 1.44.0, < 2.0) + ruby-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) ruby-progressbar (1.13.0) ruby_engine (2.0.3) ruby_version (1.0.3) - service_actor (3.9.4) - zeitwerk (>= 1.0) silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) @@ -572,11 +320,11 @@ GEM token-resolver (2.0.4) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.13) - toml (0.3.0) - parslet (>= 1.8.0, < 3.0.0) - toml-rb (4.2.0) - citrus (~> 3.0, > 3.0) - racc (~> 1.7) + tree_haver (7.1.0) + citrus (~> 3.0) + parslet (~> 2.0) + tree_sitter_language_pack (>= 1.9.0.pre.rc.40, < 2.0) + version_gem (~> 1.1, >= 1.1.9) tsort (0.2.0) turbo_tests2 (3.2.0) parallel_tests (>= 3.3.0, < 6) @@ -619,45 +367,23 @@ PLATFORMS DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) - ast-crispr! - ast-crispr-markdown-markly! - ast-crispr-ruby-prism! - ast-merge! - ast-merge-git! - ast-template! - bash-merge! benchmark (~> 0.5, >= 0.5.0) - binary-merge! bundler-audit (~> 0.9.3) - citrus-toml-merge! - commonmarker-merge! debug (>= 1.1) - dotenv-merge! erb (~> 6.0, >= 6.0.4) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.0) - go-merge! irb (~> 1.17) - json-merge! kettle-dev (~> 2.0, >= 2.2.25) - kettle-drift (~> 1.0, >= 1.0.5) - kettle-jem! kettle-soup-cover (~> 1.0, >= 1.1.3) kettle-test (~> 2.0, >= 2.0.9) kramdown (~> 2.5, >= 2.5.1) - kramdown-merge! kramdown-parser-gfm (~> 1.1) - markdown-merge! - markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) - parslet-toml-merge! - plain-merge! prism-merge! - psych-merge! rake (~> 13.0) rbs (>= 3.0) - rbs-merge! rdoc (~> 6.11) reek (~> 6.5) require_bench (~> 1.0, >= 1.0.4) @@ -666,50 +392,31 @@ DEPENDENCIES rubocop-packaging (~> 0.6, >= 0.6.0) rubocop-rspec (~> 3.6) rubocop-ruby3_2 (~> 3.0.0) - ruby-merge! ruby-progressbar (~> 1.13) - rust-merge! - smorg-rb! standard (>= 1.50) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) - toml-merge! - tree_haver! tree_sitter_language_pack! - typescript-merge! yaml-converter (~> 0.1) - yaml-merge! yard (~> 0.9, >= 0.9.44) yard-fence (~> 0.9, >= 0.9.1) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) yard-timekeeper (~> 0.1) yard-yaml (~> 0.1, >= 0.1.2) - zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af ansi (1.6.0) sha256=ac9ea0c0ea8d32fb4e271348e609963ac78882f34b73836c2a02b3622e666658 appraisal2 (3.2.0) sha256=ccd0b767ac4060cd7af6d16747459b6990f49c39c7b4fb1f7d1146b1e97c492f ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 - ast-crispr (7.1.0) - ast-crispr-markdown-markly (7.1.0) - ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) - ast-merge-git (7.1.0) - ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 - bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd - binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 - citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 - commonmarker (2.9.0-x86_64-linux) sha256=8cfe92970eef585a19ddf6613224b91cab64d6029834661bda801f877c9c7f43 - commonmarker (2.9.0-x86_64-linux-musl) sha256=293921398b839f79ceaf55010e061357e34f053822c3b003cd0be6686176335e - commonmarker-merge (7.1.0) concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 @@ -717,7 +424,6 @@ CHECKSUMS diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 docile (1.4.1) sha256=96159be799bfa73cdb721b840e9802126e4e03dfc26863db73647204c727f21e - dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -730,27 +436,19 @@ CHECKSUMS gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f - go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 - json-merge (7.1.0) kettle-dev (2.3.7) sha256=eb370113cd030d03cbe2d33b31c99858951017e5ad21a17e9ed89dc3770028ee - kettle-drift (1.0.5) sha256=07094e80140a049164142820bdd327c30fcd855bb00697a0a430600a2b5144a2 - kettle-jem (7.1.0) kettle-rb (0.1.4) sha256=9cef7ce4f7021666b7222292f29051e51eaf042e8a5db11f3f4dd72f74243fc1 kettle-soup-cover (1.1.3) sha256=a373827da22a7131d093afd32945e5b7d7a10a01ebfdded8fd2cb8230d69c8ad kettle-test (2.0.11) sha256=c710c90f7ab79d51f9452f0c09f5f90657e7a893f63583855c164d0b1b107ab2 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa - kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 - markdown-merge (7.1.0) - markly (0.16.0) sha256=6f70d79e385b1efc9e171f74c81628826259039fe6c778e03c3924c71dac5511 - markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-x86_64-linux-gnu) sha256=379fae440b28915e3f19d752ce2dcf8465ed2b2fbefd2a7ca0dd497bc981a06a nokogiri (1.19.4-x86_64-linux-musl) sha256=17dfb7c1fa194ae02fbf7c51a7afc8d278045ab3fdacfd86f91d02d7b274470b @@ -761,14 +459,11 @@ CHECKSUMS parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 - parslet-toml-merge (7.1.0) - plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 - psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a @@ -776,7 +471,6 @@ CHECKSUMS rake-compiler-dock (1.12.0) sha256=f13205c2738f3d2053afcd03491a9e4541b22a59a0bfc53fc8bc883bd8188023 rb_sys (0.9.127) sha256=e9f90df3bb0577472d26d96127d5b5774b98f44de881e7d36aeefd28d6337847 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 - rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb @@ -808,8 +502,6 @@ CHECKSUMS ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 - rust-merge (7.1.0) - service_actor (3.9.4) sha256=e63b523630b9a7e62959b2a90113b08d2565b5de9c148557b281ef847c9539ce silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (0.22.0) sha256=fe2622c7834ff23b98066bb0a854284b2729a569ac659f82621fc22ef36213a5 simplecov-cobertura (3.2.0) sha256=70d702658677fcb20e5aceb6915ccf8bc62ff2ccd38b62b3ad5c9db5c0888740 @@ -818,7 +510,6 @@ CHECKSUMS simplecov-lcov (0.9.0) sha256=7a77a31e200a595ed4b0249493056efd0c920601f53d2ef135ca34ee796346cd simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_json_formatter (0.1.4) sha256=529418fbe8de1713ac2b2d612aa3daa56d316975d307244399fa4838c601b428 - smorg-rb (7.1.0) sorbet-runtime (0.6.13342) sha256=dbeb9892597f593ed2b29e38018912787f6c4e0c4b736d8af0d6bd3c63bde3c3 standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b @@ -832,19 +523,15 @@ CHECKSUMS timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.4) sha256=33b926958f504525bba3ed511ab66fbcbf8ef30390815e931436b30f27ffcad0 - toml (0.3.0) sha256=0a91d0f76a9036e84e44f95693b12f58d358c1df3ac8e3b5271f2056ecc6e4b9 - toml-merge (7.1.0) - toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 tree_haver (7.1.0) - tree_sitter_language_pack (1.13.1) + tree_sitter_language_pack (1.13.2) + tree_sitter_language_pack (1.13.2-x86_64-linux) tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 - typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 - yaml-merge (7.1.0) yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd @@ -852,7 +539,6 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 - zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH diff --git a/gems/psych-merge/Gemfile b/gems/psych-merge/Gemfile index c77ca2716..a894e3e67 100644 --- a/gems/psych-merge/Gemfile +++ b/gems/psych-merge/Gemfile @@ -73,14 +73,8 @@ if direct_sibling_gems.any? && end end -# Use the released TSLP gem by default; templating can override it via VENDORED_GEMS. -vendored_gems = ENV.fetch('VENDORED_GEMS', '').split(',').map(&:strip) -tslp_declared_by_templating = - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? && - vendored_gems.include?('tree_sitter_language_pack') -unless tslp_declared_by_templating - gem 'tree_sitter_language_pack', '>= 1.13.2', '< 2.0' -end +# Use the StructuredMerge TSLP fork until the Ruby ABI platform-gem fix is released. +gem 'tree_sitter_language_pack', git: 'https://github.com/structuredmerge/tree-sitter-language-pack.git', branch: 'fix/ruby-4-platform-gem-abi', glob: 'packages/ruby/*.gemspec' # Templating (env-switched: STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local paths) eval_gemfile 'gemfiles/modular/templating.gemfile' if ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? diff --git a/gems/psych-merge/Gemfile.lock b/gems/psych-merge/Gemfile.lock index 6ceb35cd2..62f25fc49 100644 --- a/gems/psych-merge/Gemfile.lock +++ b/gems/psych-merge/Gemfile.lock @@ -1,12 +1,20 @@ GIT remote: https://github.com/structuredmerge/tree-sitter-language-pack.git - revision: 85cac7836bb2f8cfcd3041a191b7bd11bf10924a - branch: fix/ruby-parser-api-methods + revision: e736879d00ce55b9bbfa479a5c07363bde1512e2 + branch: fix/ruby-4-platform-gem-abi glob: packages/ruby/*.gemspec specs: - tree_sitter_language_pack (1.12.5) + tree_sitter_language_pack (1.13.2) rb_sys (>= 0.9, < 0.9.128) sorbet-runtime (~> 0.5) + tree_sitter_language_pack (1.13.2-aarch64-linux) + sorbet-runtime (~> 0.5) + tree_sitter_language_pack (1.13.2-arm64-darwin) + sorbet-runtime (~> 0.5) + tree_sitter_language_pack (1.13.2-x86_64-darwin) + sorbet-runtime (~> 0.5) + tree_sitter_language_pack (1.13.2-x86_64-linux) + sorbet-runtime (~> 0.5) PATH remote: . @@ -322,7 +330,7 @@ GEM timecop (>= 0.7, < 1) token-resolver (2.0.4) parslet (~> 2.0) - version_gem (~> 1.1, >= 1.1.14) + version_gem (~> 1.1, >= 1.1.13) tree_haver (7.1.0) citrus (~> 3.0) parslet (~> 2.0) @@ -538,7 +546,11 @@ CHECKSUMS timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.4) sha256=33b926958f504525bba3ed511ab66fbcbf8ef30390815e931436b30f27ffcad0 tree_haver (7.1.0) - tree_sitter_language_pack (1.12.5) + tree_sitter_language_pack (1.13.2) + tree_sitter_language_pack (1.13.2-aarch64-linux) + tree_sitter_language_pack (1.13.2-arm64-darwin) + tree_sitter_language_pack (1.13.2-x86_64-darwin) + tree_sitter_language_pack (1.13.2-x86_64-linux) tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 diff --git a/gems/rbs-merge/Gemfile b/gems/rbs-merge/Gemfile index 774e863cd..175e3658a 100644 --- a/gems/rbs-merge/Gemfile +++ b/gems/rbs-merge/Gemfile @@ -72,14 +72,8 @@ if direct_sibling_gems.any? && end end -# Use the released TSLP gem by default; templating can override it via VENDORED_GEMS. -vendored_gems = ENV.fetch('VENDORED_GEMS', '').split(',').map(&:strip) -tslp_declared_by_templating = - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? && - vendored_gems.include?('tree_sitter_language_pack') -unless tslp_declared_by_templating - gem 'tree_sitter_language_pack', '>= 1.13.2', '< 2.0' -end +# Use the StructuredMerge TSLP fork until the Ruby ABI platform-gem fix is released. +gem 'tree_sitter_language_pack', git: 'https://github.com/structuredmerge/tree-sitter-language-pack.git', branch: 'fix/ruby-4-platform-gem-abi', glob: 'packages/ruby/*.gemspec' # Templating (env-switched: STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local paths) eval_gemfile 'gemfiles/modular/templating.gemfile' if ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? diff --git a/gems/rbs-merge/Gemfile.lock b/gems/rbs-merge/Gemfile.lock index 2cfcbeb4e..fbdf00f5d 100644 --- a/gems/rbs-merge/Gemfile.lock +++ b/gems/rbs-merge/Gemfile.lock @@ -1,12 +1,18 @@ GIT remote: https://github.com/structuredmerge/tree-sitter-language-pack.git - revision: 85cac7836bb2f8cfcd3041a191b7bd11bf10924a - branch: fix/ruby-parser-api-methods + revision: e736879d00ce55b9bbfa479a5c07363bde1512e2 + branch: fix/ruby-4-platform-gem-abi glob: packages/ruby/*.gemspec specs: - tree_sitter_language_pack (1.12.5) + tree_sitter_language_pack (1.13.2) rb_sys (>= 0.9, < 0.9.128) sorbet-runtime (~> 0.5) + tree_sitter_language_pack (1.13.2-aarch64-linux) + sorbet-runtime (~> 0.5) + tree_sitter_language_pack (1.13.2-arm64-darwin) + sorbet-runtime (~> 0.5) + tree_sitter_language_pack (1.13.2-x86_64-linux) + sorbet-runtime (~> 0.5) PATH remote: . @@ -320,7 +326,7 @@ GEM timecop (>= 0.7, < 1) token-resolver (2.0.4) parslet (~> 2.0) - version_gem (~> 1.1, >= 1.1.14) + version_gem (~> 1.1, >= 1.1.13) tree_haver (7.1.0) citrus (~> 3.0) parslet (~> 2.0) @@ -532,7 +538,10 @@ CHECKSUMS timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.4) sha256=33b926958f504525bba3ed511ab66fbcbf8ef30390815e931436b30f27ffcad0 tree_haver (7.1.0) - tree_sitter_language_pack (1.12.5) + tree_sitter_language_pack (1.13.2) + tree_sitter_language_pack (1.13.2-aarch64-linux) + tree_sitter_language_pack (1.13.2-arm64-darwin) + tree_sitter_language_pack (1.13.2-x86_64-linux) tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 diff --git a/gems/ruby-merge/Gemfile b/gems/ruby-merge/Gemfile index 30f805ab6..804431034 100644 --- a/gems/ruby-merge/Gemfile +++ b/gems/ruby-merge/Gemfile @@ -72,14 +72,8 @@ if direct_sibling_gems.any? && end end -# Use the released TSLP gem by default; templating can override it via VENDORED_GEMS. -vendored_gems = ENV.fetch('VENDORED_GEMS', '').split(',').map(&:strip) -tslp_declared_by_templating = - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? && - vendored_gems.include?('tree_sitter_language_pack') -unless tslp_declared_by_templating - gem 'tree_sitter_language_pack', '>= 1.13.2', '< 2.0' -end +# Use the StructuredMerge TSLP fork until the Ruby ABI platform-gem fix is released. +gem 'tree_sitter_language_pack', git: 'https://github.com/structuredmerge/tree-sitter-language-pack.git', branch: 'fix/ruby-4-platform-gem-abi', glob: 'packages/ruby/*.gemspec' # Templating (env-switched: STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local paths) eval_gemfile 'gemfiles/modular/templating.gemfile' if ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? diff --git a/gems/ruby-merge/Gemfile.lock b/gems/ruby-merge/Gemfile.lock index fb95b2657..a6ba7f3b3 100644 --- a/gems/ruby-merge/Gemfile.lock +++ b/gems/ruby-merge/Gemfile.lock @@ -1,277 +1,29 @@ -PATH - remote: . - specs: - ruby-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly - specs: - ast-crispr-markdown-markly (7.1.0) - ast-crispr (= 7.1.0) - markly-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism - specs: - ast-crispr-ruby-prism (7.1.0) - ast-crispr (= 7.1.0) - prism-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr - specs: - ast-crispr (7.1.0) - ast-merge (= 7.1.0) - service_actor (~> 3.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git - specs: - ast-merge-git (7.1.0) - ast-merge (= 7.1.0) - json-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge - specs: - ast-merge (7.1.0) - benchmark - token-resolver (~> 2.0, >= 2.0.4) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template - specs: - ast-template (7.1.0) - ast-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge - specs: - bash-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge - specs: - binary-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge - specs: - citrus-toml-merge (7.1.0) - toml-merge (= 7.1.0) - toml-rb (~> 4.1) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge - specs: - commonmarker-merge (7.1.0) - commonmarker (~> 2.2) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge - specs: - dotenv-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge - specs: - go-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge - specs: - json-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem - specs: - kettle-jem (7.1.0) - addressable (>= 2.8, < 3) - ast-crispr-markdown-markly (= 7.1.0) - ast-crispr-ruby-prism (= 7.1.0) - ast-merge (= 7.1.0) - bash-merge (= 7.1.0) - citrus-toml-merge (= 7.1.0) - commonmarker-merge (= 7.1.0) - dotenv-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-dev (~> 2.3, >= 2.3.5) - kettle-rb (~> 0.1, >= 0.1.4) - kramdown-merge (= 7.1.0) - markdown-merge (= 7.1.0) - markly-merge (= 7.1.0) - prism-merge (= 7.1.0) - psych-merge (= 7.1.0) - rbs (>= 3.10) - rbs-merge (= 7.1.0) - ruby-merge (= 7.1.0) - token-resolver (~> 2.0, >= 2.0.4) - toml-merge (= 7.1.0) - toml-rb (~> 4.2) - tree_haver (= 7.1.0) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge - specs: - kramdown-merge (7.1.0) - kramdown (~> 2.5) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge - specs: - markdown-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge - specs: - markly-merge (7.1.0) - markdown-merge (= 7.1.0) - markly (~> 0.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge - specs: - parslet-toml-merge (7.1.0) - toml (~> 0.3) - toml-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge - specs: - plain-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge - specs: - prism-merge (7.1.0) - prism (~> 1.6) - ruby-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge - specs: - psych-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge - specs: - rbs-merge (7.1.0) - ast-merge (= 7.1.0) - rbs (>= 3.10) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge - specs: - rust-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb - specs: - smorg-rb (7.1.0) - ast-merge (= 7.1.0) - ast-merge-git (= 7.1.0) - go-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-jem (= 7.1.0) - markly-merge (= 7.1.0) - plain-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge - specs: - toml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver +GIT + remote: https://github.com/structuredmerge/tree-sitter-language-pack.git + revision: e736879d00ce55b9bbfa479a5c07363bde1512e2 + branch: fix/ruby-4-platform-gem-abi + glob: packages/ruby/*.gemspec specs: - tree_haver (7.1.0) - citrus (~> 3.0) - parslet (~> 2.0) - tree_sitter_language_pack (>= 1.9.0.pre.rc.40, < 2.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge - specs: - typescript-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) + tree_sitter_language_pack (1.13.2) + rb_sys (>= 0.9, < 0.9.128) + sorbet-runtime (~> 0.5) + tree_sitter_language_pack (1.13.2-aarch64-linux) + sorbet-runtime (~> 0.5) + tree_sitter_language_pack (1.13.2-arm64-darwin) + sorbet-runtime (~> 0.5) + tree_sitter_language_pack (1.13.2-x86_64-darwin) + sorbet-runtime (~> 0.5) + tree_sitter_language_pack (1.13.2-x86_64-linux) + sorbet-runtime (~> 0.5) PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge + remote: . specs: - yaml-merge (7.1.0) + ruby-merge (7.1.0) ast-merge (= 7.1.0) tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge - specs: - zip-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/vendor/tree_sitter_language_pack - specs: - tree_sitter_language_pack (1.13.1) - rb_sys (>= 0.9, < 0.9.128) - sorbet-runtime (~> 0.5) - GEM remote: https://gem.coop/ specs: @@ -283,6 +35,11 @@ GEM rake (>= 10) thor (>= 0.14) ast (2.4.3) + ast-merge (7.1.0) + benchmark + token-resolver (~> 2.0, >= 2.0.4) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) backports (3.25.3) benchmark (0.5.0) bigdecimal (4.1.2) @@ -291,12 +48,6 @@ GEM thor (~> 1.0) citrus (3.0.2) cmdparse (3.0.7) - commonmarker (2.9.0-aarch64-linux) - commonmarker (2.9.0-aarch64-linux-musl) - commonmarker (2.9.0-arm64-darwin) - commonmarker (2.9.0-x86_64-darwin) - commonmarker (2.9.0-x86_64-linux) - commonmarker (2.9.0-x86_64-linux-musl) concurrent-ruby (1.3.8) date (3.5.1) debug (1.11.1) @@ -360,8 +111,6 @@ GEM kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) - kettle-drift (1.0.5) - version_gem (~> 1.1, >= 1.1.13) kettle-rb (0.1.4) kettle-soup-cover (1.1.3) simplecov (~> 0.22) @@ -390,7 +139,6 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) - markly (0.16.0) mutex_m (0.3.0) nokogiri (1.19.4-aarch64-linux-gnu) racc (~> 1.4) @@ -530,8 +278,6 @@ GEM ruby-progressbar (1.13.0) ruby_engine (2.0.3) ruby_version (1.0.3) - service_actor (3.9.4) - zeitwerk (>= 1.0) silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) @@ -584,11 +330,11 @@ GEM token-resolver (2.0.4) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.13) - toml (0.3.0) - parslet (>= 1.8.0, < 3.0.0) - toml-rb (4.2.0) - citrus (~> 3.0, > 3.0) - racc (~> 1.7) + tree_haver (7.1.0) + citrus (~> 3.0) + parslet (~> 2.0) + tree_sitter_language_pack (>= 1.9.0.pre.rc.40, < 2.0) + version_gem (~> 1.1, >= 1.1.9) tsort (0.2.0) turbo_tests2 (3.2.0) parallel_tests (>= 3.3.0, < 6) @@ -635,45 +381,22 @@ PLATFORMS DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) - ast-crispr! - ast-crispr-markdown-markly! - ast-crispr-ruby-prism! - ast-merge! - ast-merge-git! - ast-template! - bash-merge! benchmark (~> 0.5, >= 0.5.0) - binary-merge! bundler-audit (~> 0.9.3) - citrus-toml-merge! - commonmarker-merge! debug (>= 1.1) - dotenv-merge! erb (~> 6.0, >= 6.0.4) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.0) - go-merge! irb (~> 1.17) - json-merge! kettle-dev (~> 2.0, >= 2.2.25) - kettle-drift (~> 1.0, >= 1.0.5) - kettle-jem! kettle-soup-cover (~> 1.0, >= 1.1.3) kettle-test (~> 2.0, >= 2.0.9) kramdown (~> 2.5, >= 2.5.1) - kramdown-merge! kramdown-parser-gfm (~> 1.1) - markdown-merge! - markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) - parslet-toml-merge! - plain-merge! - prism-merge! - psych-merge! rake (~> 13.0) rbs (>= 3.0) - rbs-merge! rdoc (~> 6.11) reek (~> 6.5) require_bench (~> 1.0, >= 1.0.4) @@ -684,52 +407,30 @@ DEPENDENCIES rubocop-ruby3_2 (~> 3.0.0) ruby-merge! ruby-progressbar (~> 1.13) - rust-merge! - smorg-rb! standard (>= 1.50) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) - toml-merge! - tree_haver! tree_sitter_language_pack! - typescript-merge! yaml-converter (~> 0.1) - yaml-merge! yard (~> 0.9, >= 0.9.44) yard-fence (~> 0.9, >= 0.9.1) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) yard-timekeeper (~> 0.1) yard-yaml (~> 0.1, >= 0.1.2) - zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af ansi (1.6.0) sha256=ac9ea0c0ea8d32fb4e271348e609963ac78882f34b73836c2a02b3622e666658 appraisal2 (3.2.0) sha256=ccd0b767ac4060cd7af6d16747459b6990f49c39c7b4fb1f7d1146b1e97c492f ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 - ast-crispr (7.1.0) - ast-crispr-markdown-markly (7.1.0) - ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) - ast-merge-git (7.1.0) - ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 - bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd - binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 - citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 - commonmarker (2.9.0-aarch64-linux) sha256=e2b4aadb9a2cfa4e206582641ce3a49465549ac1ed4c289fdd63b78d8f24579c - commonmarker (2.9.0-aarch64-linux-musl) sha256=1cf4d2821f2a7e64945f1ed7c4eeced586fdb27ea7fe7337788802cf8f57cfca - commonmarker (2.9.0-arm64-darwin) sha256=1748dbfa4f5813b0d2a14bb4bbfa65a4ec293aa1c825016d60029ee0e132b046 - commonmarker (2.9.0-x86_64-darwin) sha256=0a9914ccfd2f5d2a59c7bd0dda4fe90eb084cf513b477e499008e09ec9d6edd6 - commonmarker (2.9.0-x86_64-linux) sha256=8cfe92970eef585a19ddf6613224b91cab64d6029834661bda801f877c9c7f43 - commonmarker (2.9.0-x86_64-linux-musl) sha256=293921398b839f79ceaf55010e061357e34f053822c3b003cd0be6686176335e - commonmarker-merge (7.1.0) concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 @@ -737,7 +438,6 @@ CHECKSUMS diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 docile (1.4.1) sha256=96159be799bfa73cdb721b840e9802126e4e03dfc26863db73647204c727f21e - dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -750,27 +450,19 @@ CHECKSUMS gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f - go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 - json-merge (7.1.0) kettle-dev (2.3.7) sha256=eb370113cd030d03cbe2d33b31c99858951017e5ad21a17e9ed89dc3770028ee - kettle-drift (1.0.5) sha256=07094e80140a049164142820bdd327c30fcd855bb00697a0a430600a2b5144a2 - kettle-jem (7.1.0) kettle-rb (0.1.4) sha256=9cef7ce4f7021666b7222292f29051e51eaf042e8a5db11f3f4dd72f74243fc1 kettle-soup-cover (1.1.3) sha256=a373827da22a7131d093afd32945e5b7d7a10a01ebfdded8fd2cb8230d69c8ad kettle-test (2.0.11) sha256=c710c90f7ab79d51f9452f0c09f5f90657e7a893f63583855c164d0b1b107ab2 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa - kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 - markdown-merge (7.1.0) - markly (0.16.0) sha256=6f70d79e385b1efc9e171f74c81628826259039fe6c778e03c3924c71dac5511 - markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-aarch64-linux-gnu) sha256=1269fb644a6de405057a53dd5c762b1209b43ca7424f839454d3dbc677c31a8f nokogiri (1.19.4-aarch64-linux-musl) sha256=35c65b9ce72b3bb03207bdbe7067915019dc18c1b9b59139684bd6690fdd01af @@ -785,14 +477,10 @@ CHECKSUMS parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 - parslet-toml-merge (7.1.0) - plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 - prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 - psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a @@ -800,7 +488,6 @@ CHECKSUMS rake-compiler-dock (1.12.0) sha256=f13205c2738f3d2053afcd03491a9e4541b22a59a0bfc53fc8bc883bd8188023 rb_sys (0.9.127) sha256=e9f90df3bb0577472d26d96127d5b5774b98f44de881e7d36aeefd28d6337847 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 - rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb @@ -832,8 +519,6 @@ CHECKSUMS ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 - rust-merge (7.1.0) - service_actor (3.9.4) sha256=e63b523630b9a7e62959b2a90113b08d2565b5de9c148557b281ef847c9539ce silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (0.22.0) sha256=fe2622c7834ff23b98066bb0a854284b2729a569ac659f82621fc22ef36213a5 simplecov-cobertura (3.2.0) sha256=70d702658677fcb20e5aceb6915ccf8bc62ff2ccd38b62b3ad5c9db5c0888740 @@ -842,7 +527,6 @@ CHECKSUMS simplecov-lcov (0.9.0) sha256=7a77a31e200a595ed4b0249493056efd0c920601f53d2ef135ca34ee796346cd simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_json_formatter (0.1.4) sha256=529418fbe8de1713ac2b2d612aa3daa56d316975d307244399fa4838c601b428 - smorg-rb (7.1.0) sorbet-runtime (0.6.13342) sha256=dbeb9892597f593ed2b29e38018912787f6c4e0c4b736d8af0d6bd3c63bde3c3 standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b @@ -856,19 +540,18 @@ CHECKSUMS timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.4) sha256=33b926958f504525bba3ed511ab66fbcbf8ef30390815e931436b30f27ffcad0 - toml (0.3.0) sha256=0a91d0f76a9036e84e44f95693b12f58d358c1df3ac8e3b5271f2056ecc6e4b9 - toml-merge (7.1.0) - toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 tree_haver (7.1.0) - tree_sitter_language_pack (1.13.1) + tree_sitter_language_pack (1.13.2) + tree_sitter_language_pack (1.13.2-aarch64-linux) + tree_sitter_language_pack (1.13.2-arm64-darwin) + tree_sitter_language_pack (1.13.2-x86_64-darwin) + tree_sitter_language_pack (1.13.2-x86_64-linux) tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 - typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 - yaml-merge (7.1.0) yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd @@ -876,7 +559,6 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 - zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH diff --git a/gems/rust-merge/Gemfile b/gems/rust-merge/Gemfile index 20138097e..ae8be37d2 100644 --- a/gems/rust-merge/Gemfile +++ b/gems/rust-merge/Gemfile @@ -72,14 +72,8 @@ if direct_sibling_gems.any? && end end -# Use the released TSLP gem by default; templating can override it via VENDORED_GEMS. -vendored_gems = ENV.fetch('VENDORED_GEMS', '').split(',').map(&:strip) -tslp_declared_by_templating = - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? && - vendored_gems.include?('tree_sitter_language_pack') -unless tslp_declared_by_templating - gem 'tree_sitter_language_pack', '>= 1.13.2', '< 2.0' -end +# Use the StructuredMerge TSLP fork until the Ruby ABI platform-gem fix is released. +gem 'tree_sitter_language_pack', git: 'https://github.com/structuredmerge/tree-sitter-language-pack.git', branch: 'fix/ruby-4-platform-gem-abi', glob: 'packages/ruby/*.gemspec' # Templating (env-switched: STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local paths) eval_gemfile 'gemfiles/modular/templating.gemfile' if ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? diff --git a/gems/rust-merge/Gemfile.lock b/gems/rust-merge/Gemfile.lock index b2d4cd9f8..d058fbec9 100644 --- a/gems/rust-merge/Gemfile.lock +++ b/gems/rust-merge/Gemfile.lock @@ -1,12 +1,20 @@ GIT remote: https://github.com/structuredmerge/tree-sitter-language-pack.git - revision: 85cac7836bb2f8cfcd3041a191b7bd11bf10924a - branch: fix/ruby-parser-api-methods + revision: e736879d00ce55b9bbfa479a5c07363bde1512e2 + branch: fix/ruby-4-platform-gem-abi glob: packages/ruby/*.gemspec specs: - tree_sitter_language_pack (1.12.5) + tree_sitter_language_pack (1.13.2) rb_sys (>= 0.9, < 0.9.128) sorbet-runtime (~> 0.5) + tree_sitter_language_pack (1.13.2-aarch64-linux) + sorbet-runtime (~> 0.5) + tree_sitter_language_pack (1.13.2-arm64-darwin) + sorbet-runtime (~> 0.5) + tree_sitter_language_pack (1.13.2-x86_64-darwin) + sorbet-runtime (~> 0.5) + tree_sitter_language_pack (1.13.2-x86_64-linux) + sorbet-runtime (~> 0.5) PATH remote: . @@ -321,7 +329,7 @@ GEM timecop (>= 0.7, < 1) token-resolver (2.0.4) parslet (~> 2.0) - version_gem (~> 1.1, >= 1.1.14) + version_gem (~> 1.1, >= 1.1.13) tree_haver (7.1.0) citrus (~> 3.0) parslet (~> 2.0) @@ -533,7 +541,11 @@ CHECKSUMS timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.4) sha256=33b926958f504525bba3ed511ab66fbcbf8ef30390815e931436b30f27ffcad0 tree_haver (7.1.0) - tree_sitter_language_pack (1.12.5) + tree_sitter_language_pack (1.13.2) + tree_sitter_language_pack (1.13.2-aarch64-linux) + tree_sitter_language_pack (1.13.2-arm64-darwin) + tree_sitter_language_pack (1.13.2-x86_64-darwin) + tree_sitter_language_pack (1.13.2-x86_64-linux) tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 diff --git a/gems/smorg-rb/Gemfile b/gems/smorg-rb/Gemfile index 288bb92f2..0888de9fd 100644 --- a/gems/smorg-rb/Gemfile +++ b/gems/smorg-rb/Gemfile @@ -77,14 +77,8 @@ if direct_sibling_gems.any? && end end -# Use the released TSLP gem by default; templating can override it via VENDORED_GEMS. -vendored_gems = ENV.fetch('VENDORED_GEMS', '').split(',').map(&:strip) -tslp_declared_by_templating = - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? && - vendored_gems.include?('tree_sitter_language_pack') -unless tslp_declared_by_templating - gem 'tree_sitter_language_pack', '>= 1.13.2', '< 2.0' -end +# Use the StructuredMerge TSLP fork until the Ruby ABI platform-gem fix is released. +gem 'tree_sitter_language_pack', git: 'https://github.com/structuredmerge/tree-sitter-language-pack.git', branch: 'fix/ruby-4-platform-gem-abi', glob: 'packages/ruby/*.gemspec' # Templating (env-switched: STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local paths) eval_gemfile 'gemfiles/modular/templating.gemfile' if ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? diff --git a/gems/smorg-rb/Gemfile.lock b/gems/smorg-rb/Gemfile.lock index 624ce3a54..f0cfb39a0 100644 --- a/gems/smorg-rb/Gemfile.lock +++ b/gems/smorg-rb/Gemfile.lock @@ -1,3 +1,21 @@ +GIT + remote: https://github.com/structuredmerge/tree-sitter-language-pack.git + revision: e736879d00ce55b9bbfa479a5c07363bde1512e2 + branch: fix/ruby-4-platform-gem-abi + glob: packages/ruby/*.gemspec + specs: + tree_sitter_language_pack (1.13.2) + rb_sys (>= 0.9, < 0.9.128) + sorbet-runtime (~> 0.5) + tree_sitter_language_pack (1.13.2-aarch64-linux) + sorbet-runtime (~> 0.5) + tree_sitter_language_pack (1.13.2-arm64-darwin) + sorbet-runtime (~> 0.5) + tree_sitter_language_pack (1.13.2-x86_64-darwin) + sorbet-runtime (~> 0.5) + tree_sitter_language_pack (1.13.2-x86_64-linux) + sorbet-runtime (~> 0.5) + PATH remote: . specs: @@ -11,285 +29,53 @@ PATH plain-merge (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly +GEM + remote: https://gem.coop/ specs: + addressable (2.9.0) + public_suffix (>= 2.0.2, < 8.0) + ansi (1.6.0) + appraisal2 (3.2.0) + bundler (>= 1.17.3) + rake (>= 10) + thor (>= 0.14) + ast (2.4.3) + ast-crispr (7.1.0) + ast-merge (= 7.1.0) + service_actor (~> 3.9) + version_gem (~> 1.1, >= 1.1.9) ast-crispr-markdown-markly (7.1.0) ast-crispr (= 7.1.0) markly-merge (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism - specs: ast-crispr-ruby-prism (7.1.0) ast-crispr (= 7.1.0) prism-merge (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr - specs: - ast-crispr (7.1.0) - ast-merge (= 7.1.0) - service_actor (~> 3.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git - specs: - ast-merge-git (7.1.0) - ast-merge (= 7.1.0) - json-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge - specs: ast-merge (7.1.0) benchmark token-resolver (~> 2.0, >= 2.0.4) tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template - specs: - ast-template (7.1.0) - ast-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge - specs: - bash-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge - specs: - binary-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge - specs: - citrus-toml-merge (7.1.0) - toml-merge (= 7.1.0) - toml-rb (~> 4.1) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge - specs: - commonmarker-merge (7.1.0) - commonmarker (~> 2.2) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge - specs: - dotenv-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge - specs: - go-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge - specs: - json-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem - specs: - kettle-jem (7.1.0) - addressable (>= 2.8, < 3) - ast-crispr-markdown-markly (= 7.1.0) - ast-crispr-ruby-prism (= 7.1.0) + ast-merge-git (7.1.0) ast-merge (= 7.1.0) - bash-merge (= 7.1.0) - citrus-toml-merge (= 7.1.0) - commonmarker-merge (= 7.1.0) - dotenv-merge (= 7.1.0) json-merge (= 7.1.0) - kettle-dev (~> 2.3, >= 2.3.5) - kettle-rb (~> 0.1, >= 0.1.4) - kramdown-merge (= 7.1.0) - markdown-merge (= 7.1.0) - markly-merge (= 7.1.0) - prism-merge (= 7.1.0) - psych-merge (= 7.1.0) - rbs (>= 3.10) - rbs-merge (= 7.1.0) - ruby-merge (= 7.1.0) - token-resolver (~> 2.0, >= 2.0.4) - toml-merge (= 7.1.0) - toml-rb (~> 4.2) - tree_haver (= 7.1.0) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge - specs: - kramdown-merge (7.1.0) - kramdown (~> 2.5) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge - specs: - markdown-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge - specs: - markly-merge (7.1.0) - markdown-merge (= 7.1.0) - markly (~> 0.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge - specs: - parslet-toml-merge (7.1.0) - toml (~> 0.3) - toml-merge (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge - specs: - plain-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge - specs: - prism-merge (7.1.0) - prism (~> 1.6) - ruby-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge - specs: - psych-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge - specs: - rbs-merge (7.1.0) + backports (3.25.3) + bash-merge (7.1.0) ast-merge (= 7.1.0) - rbs (>= 3.10) tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge - specs: - ruby-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge - specs: - rust-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge - specs: - toml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver - specs: - tree_haver (7.1.0) - citrus (~> 3.0) - parslet (~> 2.0) - tree_sitter_language_pack (>= 1.9.0.pre.rc.40, < 2.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge - specs: - typescript-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge - specs: - yaml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge - specs: - zip-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /var/home/pboling/src/my/structuredmerge/vendor/tree-sitter-language-pack/packages/ruby - specs: - tree_sitter_language_pack (1.12.5) - rb_sys (>= 0.9, < 0.9.128) - sorbet-runtime (~> 0.5) - -GEM - remote: https://gem.coop/ - specs: - addressable (2.9.0) - public_suffix (>= 2.0.2, < 8.0) - ansi (1.6.0) - appraisal2 (3.2.0) - bundler (>= 1.17.3) - rake (>= 10) - thor (>= 0.14) - ast (2.4.3) - backports (3.25.3) benchmark (0.5.0) bigdecimal (4.1.2) bundler-audit (0.9.3) bundler (>= 1.2.0) thor (~> 1.0) citrus (3.0.2) + citrus-toml-merge (7.1.0) + toml-merge (= 7.1.0) + toml-rb (~> 4.1) + version_gem (~> 1.1, >= 1.1.9) cmdparse (3.0.7) commonmarker (2.9.0-aarch64-linux) commonmarker (2.9.0-aarch64-linux-musl) @@ -297,6 +83,10 @@ GEM commonmarker (2.9.0-x86_64-darwin) commonmarker (2.9.0-x86_64-linux) commonmarker (2.9.0-x86_64-linux-musl) + commonmarker-merge (7.1.0) + commonmarker (~> 2.2) + markdown-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) concurrent-ruby (1.3.7) date (3.5.1) debug (1.11.1) @@ -306,6 +96,10 @@ GEM diff-lcs (1.6.2) diffy (3.4.4) docile (1.4.1) + dotenv-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) dry-configurable (1.4.0) dry-core (~> 1.0) zeitwerk (~> 2.6) @@ -343,6 +137,10 @@ GEM geom2d (0.4.1) gitmoji-regex (2.0.4) version_gem (~> 1.1, >= 1.1.13) + go-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) hexapdf (1.9.1) cmdparse (~> 3.0, >= 3.0.3) geom2d (~> 0.4, >= 0.4.1) @@ -355,13 +153,40 @@ GEM rdoc (>= 4.0.0) reline (>= 0.4.2) json (2.21.1) + json-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) kettle-dev (2.3.7) emoji_regex (>= 15.0) kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) - kettle-drift (1.0.5) - version_gem (~> 1.1, >= 1.1.13) + kettle-jem (7.1.0) + addressable (>= 2.8, < 3) + ast-crispr-markdown-markly (= 7.1.0) + ast-crispr-ruby-prism (= 7.1.0) + ast-merge (= 7.1.0) + bash-merge (= 7.1.0) + citrus-toml-merge (= 7.1.0) + commonmarker-merge (= 7.1.0) + dotenv-merge (= 7.1.0) + json-merge (= 7.1.0) + kettle-dev (~> 2.3, >= 2.3.5) + kettle-rb (~> 0.1, >= 0.1.4) + kramdown-merge (= 7.1.0) + markdown-merge (= 7.1.0) + markly-merge (= 7.1.0) + prism-merge (= 7.1.0) + psych-merge (= 7.1.0) + rbs (>= 3.10) + rbs-merge (= 7.1.0) + ruby-merge (= 7.1.0) + token-resolver (~> 2.0, >= 2.0.4) + toml-merge (= 7.1.0) + toml-rb (~> 4.2) + tree_haver (= 7.1.0) + yaml-merge (= 7.1.0) kettle-rb (0.1.4) kettle-soup-cover (1.1.3) simplecov (~> 0.22) @@ -385,12 +210,24 @@ GEM turbo_tests2 (~> 3.1, >= 3.1.12) kramdown (2.5.2) rexml (>= 3.4.4) + kramdown-merge (7.1.0) + kramdown (~> 2.5) + markdown-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) kramdown-parser-gfm (1.1.0) kramdown (~> 2.0) language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) + markdown-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) markly (0.16.0) + markly-merge (7.1.0) + markdown-merge (= 7.1.0) + markly (~> 0.9) + version_gem (~> 1.1, >= 1.1.9) mutex_m (0.3.0) nokogiri (1.19.4-aarch64-linux-gnu) racc (~> 1.4) @@ -414,13 +251,26 @@ GEM ast (~> 2.4.1) racc parslet (2.0.0) + plain-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) pp (0.6.4) prettyprint prettyprint (0.2.0) prism (1.9.0) + prism-merge (7.1.0) + prism (~> 1.6) + ruby-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) psych (5.4.0) date stringio + psych-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + yaml-merge (= 7.1.0) public_suffix (7.0.5) racc (1.8.1) rainbow (3.1.1) @@ -432,6 +282,11 @@ GEM logger prism (>= 1.6.0) tsort + rbs-merge (7.1.0) + ast-merge (= 7.1.0) + rbs (>= 3.10) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) rdoc (6.17.0) erb psych (>= 4.0.0) @@ -527,6 +382,10 @@ GEM lint_roller (~> 1.1) rubocop (~> 1.72, >= 1.72.1) rubocop-ast (>= 1.44.0, < 2.0) + ruby-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) ruby-progressbar (1.13.0) ruby_engine (2.0.3) ruby_version (1.0.3) @@ -584,11 +443,18 @@ GEM token-resolver (2.0.4) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.13) - toml (0.3.0) - parslet (>= 1.8.0, < 3.0.0) + toml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) toml-rb (4.2.0) citrus (~> 3.0, > 3.0) racc (~> 1.7) + tree_haver (7.1.0) + citrus (~> 3.0) + parslet (~> 2.0) + tree_sitter_language_pack (>= 1.9.0.pre.rc.40, < 2.0) + version_gem (~> 1.1, >= 1.1.9) tsort (0.2.0) turbo_tests2 (3.2.0) parallel_tests (>= 3.3.0, < 6) @@ -603,6 +469,10 @@ GEM kramdown (>= 2.4, < 3) kramdown-parser-gfm (~> 1.1) version_gem (~> 1.1, >= 1.1.13) + yaml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) yard (0.9.45) yard-fence (0.9.6) rdoc (>= 6.11, < 8) @@ -635,45 +505,22 @@ PLATFORMS DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) - ast-crispr! - ast-crispr-markdown-markly! - ast-crispr-ruby-prism! - ast-merge! - ast-merge-git! - ast-template! - bash-merge! benchmark (~> 0.5, >= 0.5.0) - binary-merge! bundler-audit (~> 0.9.3) - citrus-toml-merge! - commonmarker-merge! debug (>= 1.1) - dotenv-merge! erb (~> 6.0, >= 6.0.4) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.0) - go-merge! irb (~> 1.17) - json-merge! kettle-dev (~> 2.0, >= 2.2.25) - kettle-drift (~> 1.0, >= 1.0.5) - kettle-jem! kettle-soup-cover (~> 1.0, >= 1.1.3) kettle-test (~> 2.0, >= 2.0.9) kramdown (~> 2.5, >= 2.5.1) - kramdown-merge! kramdown-parser-gfm (~> 1.1) - markdown-merge! - markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) - parslet-toml-merge! - plain-merge! - prism-merge! - psych-merge! rake (~> 13.0) rbs (>= 3.0) - rbs-merge! rdoc (~> 6.11) reek (~> 6.5) require_bench (~> 1.0, >= 1.0.4) @@ -682,26 +529,19 @@ DEPENDENCIES rubocop-packaging (~> 0.6, >= 0.6.0) rubocop-rspec (~> 3.6) rubocop-ruby3_2 (~> 3.0.0) - ruby-merge! ruby-progressbar (~> 1.13) - rust-merge! smorg-rb! standard (>= 1.50) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) - toml-merge! - tree_haver! tree_sitter_language_pack! - typescript-merge! yaml-converter (~> 0.1) - yaml-merge! yard (~> 0.9, >= 0.9.44) yard-fence (~> 0.9, >= 0.9.1) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) yard-timekeeper (~> 0.1) yard-yaml (~> 0.1, >= 0.1.2) - zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af @@ -713,12 +553,10 @@ CHECKSUMS ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) ast-merge-git (7.1.0) - ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd - binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 citrus-toml-merge (7.1.0) @@ -757,7 +595,6 @@ CHECKSUMS json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 json-merge (7.1.0) kettle-dev (2.3.7) sha256=eb370113cd030d03cbe2d33b31c99858951017e5ad21a17e9ed89dc3770028ee - kettle-drift (1.0.5) sha256=07094e80140a049164142820bdd327c30fcd855bb00697a0a430600a2b5144a2 kettle-jem (7.1.0) kettle-rb (0.1.4) sha256=9cef7ce4f7021666b7222292f29051e51eaf042e8a5db11f3f4dd72f74243fc1 kettle-soup-cover (1.1.3) sha256=a373827da22a7131d093afd32945e5b7d7a10a01ebfdded8fd2cb8230d69c8ad @@ -785,7 +622,6 @@ CHECKSUMS parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 - parslet-toml-merge (7.1.0) plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 @@ -832,7 +668,6 @@ CHECKSUMS ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 - rust-merge (7.1.0) service_actor (3.9.4) sha256=e63b523630b9a7e62959b2a90113b08d2565b5de9c148557b281ef847c9539ce silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (0.22.0) sha256=fe2622c7834ff23b98066bb0a854284b2729a569ac659f82621fc22ef36213a5 @@ -856,14 +691,16 @@ CHECKSUMS timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.4) sha256=33b926958f504525bba3ed511ab66fbcbf8ef30390815e931436b30f27ffcad0 - toml (0.3.0) sha256=0a91d0f76a9036e84e44f95693b12f58d358c1df3ac8e3b5271f2056ecc6e4b9 toml-merge (7.1.0) toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 tree_haver (7.1.0) - tree_sitter_language_pack (1.12.5) + tree_sitter_language_pack (1.13.2) + tree_sitter_language_pack (1.13.2-aarch64-linux) + tree_sitter_language_pack (1.13.2-arm64-darwin) + tree_sitter_language_pack (1.13.2-x86_64-darwin) + tree_sitter_language_pack (1.13.2-x86_64-linux) tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 - typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 @@ -876,7 +713,6 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 - zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH diff --git a/gems/toml-merge/Gemfile b/gems/toml-merge/Gemfile index 768ddfd04..5634a8a1c 100644 --- a/gems/toml-merge/Gemfile +++ b/gems/toml-merge/Gemfile @@ -72,14 +72,8 @@ if direct_sibling_gems.any? && end end -# Use the released TSLP gem by default; templating can override it via VENDORED_GEMS. -vendored_gems = ENV.fetch('VENDORED_GEMS', '').split(',').map(&:strip) -tslp_declared_by_templating = - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? && - vendored_gems.include?('tree_sitter_language_pack') -unless tslp_declared_by_templating - gem 'tree_sitter_language_pack', '>= 1.13.2', '< 2.0' -end +# Use the StructuredMerge TSLP fork until the Ruby ABI platform-gem fix is released. +gem 'tree_sitter_language_pack', git: 'https://github.com/structuredmerge/tree-sitter-language-pack.git', branch: 'fix/ruby-4-platform-gem-abi', glob: 'packages/ruby/*.gemspec' # Templating (env-switched: STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local paths) eval_gemfile 'gemfiles/modular/templating.gemfile' if ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? diff --git a/gems/toml-merge/Gemfile.lock b/gems/toml-merge/Gemfile.lock index 4d61675ef..c7b6cd295 100644 --- a/gems/toml-merge/Gemfile.lock +++ b/gems/toml-merge/Gemfile.lock @@ -1,12 +1,20 @@ GIT remote: https://github.com/structuredmerge/tree-sitter-language-pack.git - revision: 85cac7836bb2f8cfcd3041a191b7bd11bf10924a - branch: fix/ruby-parser-api-methods + revision: e736879d00ce55b9bbfa479a5c07363bde1512e2 + branch: fix/ruby-4-platform-gem-abi glob: packages/ruby/*.gemspec specs: - tree_sitter_language_pack (1.12.5) + tree_sitter_language_pack (1.13.2) rb_sys (>= 0.9, < 0.9.128) sorbet-runtime (~> 0.5) + tree_sitter_language_pack (1.13.2-aarch64-linux) + sorbet-runtime (~> 0.5) + tree_sitter_language_pack (1.13.2-arm64-darwin) + sorbet-runtime (~> 0.5) + tree_sitter_language_pack (1.13.2-x86_64-darwin) + sorbet-runtime (~> 0.5) + tree_sitter_language_pack (1.13.2-x86_64-linux) + sorbet-runtime (~> 0.5) PATH remote: . @@ -321,7 +329,7 @@ GEM timecop (>= 0.7, < 1) token-resolver (2.0.4) parslet (~> 2.0) - version_gem (~> 1.1, >= 1.1.14) + version_gem (~> 1.1, >= 1.1.13) tree_haver (7.1.0) citrus (~> 3.0) parslet (~> 2.0) @@ -533,7 +541,11 @@ CHECKSUMS token-resolver (2.0.4) sha256=33b926958f504525bba3ed511ab66fbcbf8ef30390815e931436b30f27ffcad0 toml-merge (7.1.0) tree_haver (7.1.0) - tree_sitter_language_pack (1.12.5) + tree_sitter_language_pack (1.13.2) + tree_sitter_language_pack (1.13.2-aarch64-linux) + tree_sitter_language_pack (1.13.2-arm64-darwin) + tree_sitter_language_pack (1.13.2-x86_64-darwin) + tree_sitter_language_pack (1.13.2-x86_64-linux) tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 diff --git a/gems/tree_haver/Gemfile b/gems/tree_haver/Gemfile index aee2f90f3..59daef3ff 100644 --- a/gems/tree_haver/Gemfile +++ b/gems/tree_haver/Gemfile @@ -21,14 +21,8 @@ gemspec # Local workspace dependency wiring for *_local.gemfile overrides nomono_requirements = ['~> 1.0', '>= 1.0.8'] gem 'nomono', *nomono_requirements, require: false # ruby >= 2.2 -# Use the released TSLP gem by default; templating can override it via VENDORED_GEMS. -vendored_gems = ENV.fetch('VENDORED_GEMS', '').split(',').map(&:strip) -tslp_declared_by_templating = - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? && - vendored_gems.include?('tree_sitter_language_pack') -unless tslp_declared_by_templating - gem 'tree_sitter_language_pack', '>= 1.13.2', '< 2.0' -end +# Use the StructuredMerge TSLP fork until the Ruby ABI platform-gem fix is released. +gem 'tree_sitter_language_pack', git: 'https://github.com/structuredmerge/tree-sitter-language-pack.git', branch: 'fix/ruby-4-platform-gem-abi', glob: 'packages/ruby/*.gemspec' # Templating (env-switched: STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local paths) eval_gemfile 'gemfiles/modular/templating.gemfile' if ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? diff --git a/gems/tree_haver/Gemfile.lock b/gems/tree_haver/Gemfile.lock index d29a31123..6a618abb9 100644 --- a/gems/tree_haver/Gemfile.lock +++ b/gems/tree_haver/Gemfile.lock @@ -1,3 +1,15 @@ +GIT + remote: https://github.com/structuredmerge/tree-sitter-language-pack.git + revision: e736879d00ce55b9bbfa479a5c07363bde1512e2 + branch: fix/ruby-4-platform-gem-abi + glob: packages/ruby/*.gemspec + specs: + tree_sitter_language_pack (1.13.2) + rb_sys (>= 0.9, < 0.9.128) + sorbet-runtime (~> 0.5) + tree_sitter_language_pack (1.13.2-x86_64-linux) + sorbet-runtime (~> 0.5) + PATH remote: . specs: @@ -143,6 +155,9 @@ GEM racc (1.8.1) rainbow (3.1.1) rake (13.4.2) + rake-compiler-dock (1.12.0) + rb_sys (0.9.127) + rake-compiler-dock (= 1.12.0) rbs (4.0.3) logger prism (>= 1.6.0) @@ -299,8 +314,6 @@ GEM toml-rb (4.2.0) citrus (~> 3.0, > 3.0) racc (~> 1.7) - tree_sitter_language_pack (1.13.2-x86_64-linux) - sorbet-runtime (~> 0.5) tsort (0.2.0) turbo_tests2 (3.2.0) parallel_tests (>= 3.3.0, < 6) @@ -374,7 +387,7 @@ DEPENDENCIES toml (~> 0.3) toml-rb (~> 4.1) tree_haver! - tree_sitter_language_pack (>= 1.13.2, < 2.0) + tree_sitter_language_pack! yaml-converter (~> 0.1) yard (~> 0.9, >= 0.9.44) yard-fence (~> 0.9, >= 0.9.1) @@ -444,6 +457,8 @@ CHECKSUMS racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 + rake-compiler-dock (1.12.0) sha256=f13205c2738f3d2053afcd03491a9e4541b22a59a0bfc53fc8bc883bd8188023 + rb_sys (0.9.127) sha256=e9f90df3bb0577472d26d96127d5b5774b98f44de881e7d36aeefd28d6337847 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 @@ -498,7 +513,8 @@ CHECKSUMS toml (0.3.0) sha256=0a91d0f76a9036e84e44f95693b12f58d358c1df3ac8e3b5271f2056ecc6e4b9 toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 tree_haver (7.1.0) - tree_sitter_language_pack (1.13.2-x86_64-linux) sha256=ab3beba6831edc30a99d962db505f70105b5489b149fd302802cf9df9b956385 + tree_sitter_language_pack (1.13.2) + tree_sitter_language_pack (1.13.2-x86_64-linux) tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 diff --git a/gems/typescript-merge/Gemfile b/gems/typescript-merge/Gemfile index 916f2ed51..bfbdec3f1 100644 --- a/gems/typescript-merge/Gemfile +++ b/gems/typescript-merge/Gemfile @@ -72,14 +72,8 @@ if direct_sibling_gems.any? && end end -# Use the released TSLP gem by default; templating can override it via VENDORED_GEMS. -vendored_gems = ENV.fetch('VENDORED_GEMS', '').split(',').map(&:strip) -tslp_declared_by_templating = - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? && - vendored_gems.include?('tree_sitter_language_pack') -unless tslp_declared_by_templating - gem 'tree_sitter_language_pack', '>= 1.13.2', '< 2.0' -end +# Use the StructuredMerge TSLP fork until the Ruby ABI platform-gem fix is released. +gem 'tree_sitter_language_pack', git: 'https://github.com/structuredmerge/tree-sitter-language-pack.git', branch: 'fix/ruby-4-platform-gem-abi', glob: 'packages/ruby/*.gemspec' # Templating (env-switched: STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local paths) eval_gemfile 'gemfiles/modular/templating.gemfile' if ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? diff --git a/gems/typescript-merge/Gemfile.lock b/gems/typescript-merge/Gemfile.lock index 3970ba8d7..17c6c9f0a 100644 --- a/gems/typescript-merge/Gemfile.lock +++ b/gems/typescript-merge/Gemfile.lock @@ -1,12 +1,20 @@ GIT remote: https://github.com/structuredmerge/tree-sitter-language-pack.git - revision: 85cac7836bb2f8cfcd3041a191b7bd11bf10924a - branch: fix/ruby-parser-api-methods + revision: e736879d00ce55b9bbfa479a5c07363bde1512e2 + branch: fix/ruby-4-platform-gem-abi glob: packages/ruby/*.gemspec specs: - tree_sitter_language_pack (1.12.5) + tree_sitter_language_pack (1.13.2) rb_sys (>= 0.9, < 0.9.128) sorbet-runtime (~> 0.5) + tree_sitter_language_pack (1.13.2-aarch64-linux) + sorbet-runtime (~> 0.5) + tree_sitter_language_pack (1.13.2-arm64-darwin) + sorbet-runtime (~> 0.5) + tree_sitter_language_pack (1.13.2-x86_64-darwin) + sorbet-runtime (~> 0.5) + tree_sitter_language_pack (1.13.2-x86_64-linux) + sorbet-runtime (~> 0.5) PATH remote: . @@ -321,7 +329,7 @@ GEM timecop (>= 0.7, < 1) token-resolver (2.0.4) parslet (~> 2.0) - version_gem (~> 1.1, >= 1.1.14) + version_gem (~> 1.1, >= 1.1.13) tree_haver (7.1.0) citrus (~> 3.0) parslet (~> 2.0) @@ -532,7 +540,11 @@ CHECKSUMS timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.4) sha256=33b926958f504525bba3ed511ab66fbcbf8ef30390815e931436b30f27ffcad0 tree_haver (7.1.0) - tree_sitter_language_pack (1.12.5) + tree_sitter_language_pack (1.13.2) + tree_sitter_language_pack (1.13.2-aarch64-linux) + tree_sitter_language_pack (1.13.2-arm64-darwin) + tree_sitter_language_pack (1.13.2-x86_64-darwin) + tree_sitter_language_pack (1.13.2-x86_64-linux) tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 typescript-merge (7.1.0) diff --git a/gems/yaml-merge/Gemfile b/gems/yaml-merge/Gemfile index 7c2f421f7..eeafd32e3 100644 --- a/gems/yaml-merge/Gemfile +++ b/gems/yaml-merge/Gemfile @@ -72,14 +72,8 @@ if direct_sibling_gems.any? && end end -# Use the released TSLP gem by default; templating can override it via VENDORED_GEMS. -vendored_gems = ENV.fetch('VENDORED_GEMS', '').split(',').map(&:strip) -tslp_declared_by_templating = - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? && - vendored_gems.include?('tree_sitter_language_pack') -unless tslp_declared_by_templating - gem 'tree_sitter_language_pack', '>= 1.13.2', '< 2.0' -end +# Use the StructuredMerge TSLP fork until the Ruby ABI platform-gem fix is released. +gem 'tree_sitter_language_pack', git: 'https://github.com/structuredmerge/tree-sitter-language-pack.git', branch: 'fix/ruby-4-platform-gem-abi', glob: 'packages/ruby/*.gemspec' # Templating (env-switched: STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local paths) eval_gemfile 'gemfiles/modular/templating.gemfile' if ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? diff --git a/gems/yaml-merge/Gemfile.lock b/gems/yaml-merge/Gemfile.lock index a3cb2cc03..eac69b52a 100644 --- a/gems/yaml-merge/Gemfile.lock +++ b/gems/yaml-merge/Gemfile.lock @@ -1,12 +1,20 @@ GIT remote: https://github.com/structuredmerge/tree-sitter-language-pack.git - revision: 85cac7836bb2f8cfcd3041a191b7bd11bf10924a - branch: fix/ruby-parser-api-methods + revision: e736879d00ce55b9bbfa479a5c07363bde1512e2 + branch: fix/ruby-4-platform-gem-abi glob: packages/ruby/*.gemspec specs: - tree_sitter_language_pack (1.12.5) + tree_sitter_language_pack (1.13.2) rb_sys (>= 0.9, < 0.9.128) sorbet-runtime (~> 0.5) + tree_sitter_language_pack (1.13.2-aarch64-linux) + sorbet-runtime (~> 0.5) + tree_sitter_language_pack (1.13.2-arm64-darwin) + sorbet-runtime (~> 0.5) + tree_sitter_language_pack (1.13.2-x86_64-darwin) + sorbet-runtime (~> 0.5) + tree_sitter_language_pack (1.13.2-x86_64-linux) + sorbet-runtime (~> 0.5) PATH remote: . @@ -321,7 +329,7 @@ GEM timecop (>= 0.7, < 1) token-resolver (2.0.4) parslet (~> 2.0) - version_gem (~> 1.1, >= 1.1.14) + version_gem (~> 1.1, >= 1.1.13) tree_haver (7.1.0) citrus (~> 3.0) parslet (~> 2.0) @@ -532,7 +540,11 @@ CHECKSUMS timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.4) sha256=33b926958f504525bba3ed511ab66fbcbf8ef30390815e931436b30f27ffcad0 tree_haver (7.1.0) - tree_sitter_language_pack (1.12.5) + tree_sitter_language_pack (1.13.2) + tree_sitter_language_pack (1.13.2-aarch64-linux) + tree_sitter_language_pack (1.13.2-arm64-darwin) + tree_sitter_language_pack (1.13.2-x86_64-darwin) + tree_sitter_language_pack (1.13.2-x86_64-linux) tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 diff --git a/gems/zip-merge/Gemfile b/gems/zip-merge/Gemfile index 9b7772c5b..840b424d2 100644 --- a/gems/zip-merge/Gemfile +++ b/gems/zip-merge/Gemfile @@ -71,14 +71,8 @@ if direct_sibling_gems.any? && end end -# Use the released TSLP gem by default; templating can override it via VENDORED_GEMS. -vendored_gems = ENV.fetch('VENDORED_GEMS', '').split(',').map(&:strip) -tslp_declared_by_templating = - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? && - vendored_gems.include?('tree_sitter_language_pack') -unless tslp_declared_by_templating - gem 'tree_sitter_language_pack', '>= 1.13.2', '< 2.0' -end +# Use the StructuredMerge TSLP fork until the Ruby ABI platform-gem fix is released. +gem 'tree_sitter_language_pack', git: 'https://github.com/structuredmerge/tree-sitter-language-pack.git', branch: 'fix/ruby-4-platform-gem-abi', glob: 'packages/ruby/*.gemspec' # Templating (env-switched: STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local paths) eval_gemfile 'gemfiles/modular/templating.gemfile' if ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? diff --git a/gems/zip-merge/Gemfile.lock b/gems/zip-merge/Gemfile.lock index 49c74eb86..61a2ab1b2 100644 --- a/gems/zip-merge/Gemfile.lock +++ b/gems/zip-merge/Gemfile.lock @@ -1,277 +1,28 @@ -PATH - remote: . - specs: - zip-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly - specs: - ast-crispr-markdown-markly (7.1.0) - ast-crispr (= 7.1.0) - markly-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism - specs: - ast-crispr-ruby-prism (7.1.0) - ast-crispr (= 7.1.0) - prism-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr - specs: - ast-crispr (7.1.0) - ast-merge (= 7.1.0) - service_actor (~> 3.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git - specs: - ast-merge-git (7.1.0) - ast-merge (= 7.1.0) - json-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge - specs: - ast-merge (7.1.0) - benchmark - token-resolver (~> 2.0, >= 2.0.4) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template - specs: - ast-template (7.1.0) - ast-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge - specs: - bash-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge +GIT + remote: https://github.com/structuredmerge/tree-sitter-language-pack.git + revision: e736879d00ce55b9bbfa479a5c07363bde1512e2 + branch: fix/ruby-4-platform-gem-abi + glob: packages/ruby/*.gemspec specs: - binary-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge - specs: - citrus-toml-merge (7.1.0) - toml-merge (= 7.1.0) - toml-rb (~> 4.1) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge - specs: - commonmarker-merge (7.1.0) - commonmarker (~> 2.2) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge - specs: - dotenv-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge - specs: - go-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge - specs: - json-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem - specs: - kettle-jem (7.1.0) - addressable (>= 2.8, < 3) - ast-crispr-markdown-markly (= 7.1.0) - ast-crispr-ruby-prism (= 7.1.0) - ast-merge (= 7.1.0) - bash-merge (= 7.1.0) - citrus-toml-merge (= 7.1.0) - commonmarker-merge (= 7.1.0) - dotenv-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-dev (~> 2.3, >= 2.3.5) - kettle-rb (~> 0.1, >= 0.1.4) - kramdown-merge (= 7.1.0) - markdown-merge (= 7.1.0) - markly-merge (= 7.1.0) - prism-merge (= 7.1.0) - psych-merge (= 7.1.0) - rbs (>= 3.10) - rbs-merge (= 7.1.0) - ruby-merge (= 7.1.0) - token-resolver (~> 2.0, >= 2.0.4) - toml-merge (= 7.1.0) - toml-rb (~> 4.2) - tree_haver (= 7.1.0) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge - specs: - kramdown-merge (7.1.0) - kramdown (~> 2.5) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge - specs: - markdown-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge - specs: - markly-merge (7.1.0) - markdown-merge (= 7.1.0) - markly (~> 0.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge - specs: - parslet-toml-merge (7.1.0) - toml (~> 0.3) - toml-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge - specs: - plain-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge - specs: - prism-merge (7.1.0) - prism (~> 1.6) - ruby-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge - specs: - psych-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge - specs: - rbs-merge (7.1.0) - ast-merge (= 7.1.0) - rbs (>= 3.10) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge - specs: - ruby-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge - specs: - rust-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb - specs: - smorg-rb (7.1.0) - ast-merge (= 7.1.0) - ast-merge-git (= 7.1.0) - go-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-jem (= 7.1.0) - markly-merge (= 7.1.0) - plain-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge - specs: - toml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver - specs: - tree_haver (7.1.0) - citrus (~> 3.0) - parslet (~> 2.0) - tree_sitter_language_pack (>= 1.9.0.pre.rc.40, < 2.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge - specs: - typescript-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) + tree_sitter_language_pack (1.13.2) + rb_sys (>= 0.9, < 0.9.128) + sorbet-runtime (~> 0.5) + tree_sitter_language_pack (1.13.2-aarch64-linux) + sorbet-runtime (~> 0.5) + tree_sitter_language_pack (1.13.2-arm64-darwin) + sorbet-runtime (~> 0.5) + tree_sitter_language_pack (1.13.2-x86_64-darwin) + sorbet-runtime (~> 0.5) + tree_sitter_language_pack (1.13.2-x86_64-linux) + sorbet-runtime (~> 0.5) PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge + remote: . specs: - yaml-merge (7.1.0) - ast-merge (= 7.1.0) + zip-merge (7.1.0) tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) -PATH - remote: /var/home/pboling/src/my/structuredmerge/vendor/tree-sitter-language-pack/packages/ruby - specs: - tree_sitter_language_pack (1.12.5) - rb_sys (>= 0.9, < 0.9.128) - sorbet-runtime (~> 0.5) - GEM remote: https://gem.coop/ specs: @@ -291,12 +42,6 @@ GEM thor (~> 1.0) citrus (3.0.2) cmdparse (3.0.7) - commonmarker (2.9.0-aarch64-linux) - commonmarker (2.9.0-aarch64-linux-musl) - commonmarker (2.9.0-arm64-darwin) - commonmarker (2.9.0-x86_64-darwin) - commonmarker (2.9.0-x86_64-linux) - commonmarker (2.9.0-x86_64-linux-musl) concurrent-ruby (1.3.7) date (3.5.1) debug (1.11.1) @@ -360,8 +105,6 @@ GEM kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) - kettle-drift (1.0.5) - version_gem (~> 1.1, >= 1.1.13) kettle-rb (0.1.4) kettle-soup-cover (1.1.3) simplecov (~> 0.22) @@ -390,7 +133,6 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) - markly (0.16.0) mutex_m (0.3.0) nokogiri (1.19.4-aarch64-linux-gnu) racc (~> 1.4) @@ -530,8 +272,6 @@ GEM ruby-progressbar (1.13.0) ruby_engine (2.0.3) ruby_version (1.0.3) - service_actor (3.9.4) - zeitwerk (>= 1.0) silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) @@ -581,14 +321,11 @@ GEM delegate (~> 0.1) rspec (~> 3.0) timecop (>= 0.7, < 1) - token-resolver (2.0.4) + tree_haver (7.1.0) + citrus (~> 3.0) parslet (~> 2.0) - version_gem (~> 1.1, >= 1.1.13) - toml (0.3.0) - parslet (>= 1.8.0, < 3.0.0) - toml-rb (4.2.0) - citrus (~> 3.0, > 3.0) - racc (~> 1.7) + tree_sitter_language_pack (>= 1.9.0.pre.rc.40, < 2.0) + version_gem (~> 1.1, >= 1.1.9) tsort (0.2.0) turbo_tests2 (3.2.0) parallel_tests (>= 3.3.0, < 6) @@ -635,45 +372,22 @@ PLATFORMS DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) - ast-crispr! - ast-crispr-markdown-markly! - ast-crispr-ruby-prism! - ast-merge! - ast-merge-git! - ast-template! - bash-merge! benchmark (~> 0.5, >= 0.5.0) - binary-merge! bundler-audit (~> 0.9.3) - citrus-toml-merge! - commonmarker-merge! debug (>= 1.1) - dotenv-merge! erb (~> 6.0, >= 6.0.4) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.0) - go-merge! irb (~> 1.17) - json-merge! kettle-dev (~> 2.0, >= 2.2.25) - kettle-drift (~> 1.0, >= 1.0.5) - kettle-jem! kettle-soup-cover (~> 1.0, >= 1.1.3) kettle-test (~> 2.0, >= 2.0.9) kramdown (~> 2.5, >= 2.5.1) - kramdown-merge! kramdown-parser-gfm (~> 1.1) - markdown-merge! - markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) - parslet-toml-merge! - plain-merge! - prism-merge! - psych-merge! rake (~> 13.0) rbs (>= 3.0) - rbs-merge! rdoc (~> 6.11) reek (~> 6.5) require_bench (~> 1.0, >= 1.0.4) @@ -682,19 +396,12 @@ DEPENDENCIES rubocop-packaging (~> 0.6, >= 0.6.0) rubocop-rspec (~> 3.6) rubocop-ruby3_2 (~> 3.0.0) - ruby-merge! ruby-progressbar (~> 1.13) - rust-merge! - smorg-rb! standard (>= 1.50) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) - toml-merge! - tree_haver! tree_sitter_language_pack! - typescript-merge! yaml-converter (~> 0.1) - yaml-merge! yard (~> 0.9, >= 0.9.44) yard-fence (~> 0.9, >= 0.9.1) yard-junk (~> 0.1, >= 0.1.0) @@ -708,28 +415,12 @@ CHECKSUMS ansi (1.6.0) sha256=ac9ea0c0ea8d32fb4e271348e609963ac78882f34b73836c2a02b3622e666658 appraisal2 (3.2.0) sha256=ccd0b767ac4060cd7af6d16747459b6990f49c39c7b4fb1f7d1146b1e97c492f ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 - ast-crispr (7.1.0) - ast-crispr-markdown-markly (7.1.0) - ast-crispr-ruby-prism (7.1.0) - ast-merge (7.1.0) - ast-merge-git (7.1.0) - ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 - bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd - binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 - citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 - commonmarker (2.9.0-aarch64-linux) sha256=e2b4aadb9a2cfa4e206582641ce3a49465549ac1ed4c289fdd63b78d8f24579c - commonmarker (2.9.0-aarch64-linux-musl) sha256=1cf4d2821f2a7e64945f1ed7c4eeced586fdb27ea7fe7337788802cf8f57cfca - commonmarker (2.9.0-arm64-darwin) sha256=1748dbfa4f5813b0d2a14bb4bbfa65a4ec293aa1c825016d60029ee0e132b046 - commonmarker (2.9.0-x86_64-darwin) sha256=0a9914ccfd2f5d2a59c7bd0dda4fe90eb084cf513b477e499008e09ec9d6edd6 - commonmarker (2.9.0-x86_64-linux) sha256=8cfe92970eef585a19ddf6613224b91cab64d6029834661bda801f877c9c7f43 - commonmarker (2.9.0-x86_64-linux-musl) sha256=293921398b839f79ceaf55010e061357e34f053822c3b003cd0be6686176335e - commonmarker-merge (7.1.0) concurrent-ruby (1.3.7) sha256=4412caec3a5ea2e5fdc52076724c071a81f2c0593d83b2ac8cbb8ca63b3151b0 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 @@ -737,7 +428,6 @@ CHECKSUMS diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 docile (1.4.1) sha256=96159be799bfa73cdb721b840e9802126e4e03dfc26863db73647204c727f21e - dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -750,27 +440,19 @@ CHECKSUMS gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f - go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 - json-merge (7.1.0) kettle-dev (2.3.7) sha256=eb370113cd030d03cbe2d33b31c99858951017e5ad21a17e9ed89dc3770028ee - kettle-drift (1.0.5) sha256=07094e80140a049164142820bdd327c30fcd855bb00697a0a430600a2b5144a2 - kettle-jem (7.1.0) kettle-rb (0.1.4) sha256=9cef7ce4f7021666b7222292f29051e51eaf042e8a5db11f3f4dd72f74243fc1 kettle-soup-cover (1.1.3) sha256=a373827da22a7131d093afd32945e5b7d7a10a01ebfdded8fd2cb8230d69c8ad kettle-test (2.0.11) sha256=c710c90f7ab79d51f9452f0c09f5f90657e7a893f63583855c164d0b1b107ab2 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa - kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 - markdown-merge (7.1.0) - markly (0.16.0) sha256=6f70d79e385b1efc9e171f74c81628826259039fe6c778e03c3924c71dac5511 - markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-aarch64-linux-gnu) sha256=1269fb644a6de405057a53dd5c762b1209b43ca7424f839454d3dbc677c31a8f nokogiri (1.19.4-aarch64-linux-musl) sha256=35c65b9ce72b3bb03207bdbe7067915019dc18c1b9b59139684bd6690fdd01af @@ -785,14 +467,10 @@ CHECKSUMS parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 - parslet-toml-merge (7.1.0) - plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 - prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 - psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a @@ -800,7 +478,6 @@ CHECKSUMS rake-compiler-dock (1.12.0) sha256=f13205c2738f3d2053afcd03491a9e4541b22a59a0bfc53fc8bc883bd8188023 rb_sys (0.9.127) sha256=e9f90df3bb0577472d26d96127d5b5774b98f44de881e7d36aeefd28d6337847 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 - rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb @@ -828,12 +505,9 @@ CHECKSUMS rubocop-rspec (3.10.2) sha256=0b3e2ecc592cd10ecbf0095bb58d1e357905276e069643523cc19eb7495f65e2 rubocop-ruby3_2 (3.0.7) sha256=f53dd6d286fb05186214fc6ec116783e7f837030918e8931c05de773e98f8466 rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 - ruby-merge (7.1.0) ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 - rust-merge (7.1.0) - service_actor (3.9.4) sha256=e63b523630b9a7e62959b2a90113b08d2565b5de9c148557b281ef847c9539ce silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (0.22.0) sha256=fe2622c7834ff23b98066bb0a854284b2729a569ac659f82621fc22ef36213a5 simplecov-cobertura (3.2.0) sha256=70d702658677fcb20e5aceb6915ccf8bc62ff2ccd38b62b3ad5c9db5c0888740 @@ -842,7 +516,6 @@ CHECKSUMS simplecov-lcov (0.9.0) sha256=7a77a31e200a595ed4b0249493056efd0c920601f53d2ef135ca34ee796346cd simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_json_formatter (0.1.4) sha256=529418fbe8de1713ac2b2d612aa3daa56d316975d307244399fa4838c601b428 - smorg-rb (7.1.0) sorbet-runtime (0.6.13342) sha256=dbeb9892597f593ed2b29e38018912787f6c4e0c4b736d8af0d6bd3c63bde3c3 standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b @@ -855,20 +528,18 @@ CHECKSUMS thor (1.5.0) sha256=e3a9e55fe857e44859ce104a84675ab6e8cd59c650a49106a05f55f136425e73 timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 - token-resolver (2.0.4) sha256=33b926958f504525bba3ed511ab66fbcbf8ef30390815e931436b30f27ffcad0 - toml (0.3.0) sha256=0a91d0f76a9036e84e44f95693b12f58d358c1df3ac8e3b5271f2056ecc6e4b9 - toml-merge (7.1.0) - toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 tree_haver (7.1.0) - tree_sitter_language_pack (1.12.5) + tree_sitter_language_pack (1.13.2) + tree_sitter_language_pack (1.13.2-aarch64-linux) + tree_sitter_language_pack (1.13.2-arm64-darwin) + tree_sitter_language_pack (1.13.2-x86_64-darwin) + tree_sitter_language_pack (1.13.2-x86_64-linux) tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 - typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 - yaml-merge (7.1.0) yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd From 60f956b41f98cf4b9e99efae57ad300a553ea3fa Mon Sep 17 00:00:00 2001 From: "Peter H. Boling" Date: Mon, 20 Jul 2026 23:36:32 -0600 Subject: [PATCH 108/188] Document TSLP git source benchmark setup Update kettle-jem benchmark commands to run bundle install with the same local templating environment and Git safe-bare settings before invoking benchmarks against the TSLP ABI-fix fork. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- gems/kettle-jem/benchmarks/README.md | 68 +++++++++++++++++++++++++--- 1 file changed, 61 insertions(+), 7 deletions(-) diff --git a/gems/kettle-jem/benchmarks/README.md b/gems/kettle-jem/benchmarks/README.md index a37170ac9..8133d14fb 100644 --- a/gems/kettle-jem/benchmarks/README.md +++ b/gems/kettle-jem/benchmarks/README.md @@ -13,10 +13,30 @@ runs one-shot templating from that copied gem root, writes reports under `tmp/benchmarks/summary.json`, updates `results/README.md`, and resets the copied skeleton before and after the run. -Run the benchmark from the `kettle-jem` project root: +Run the benchmark from the `kettle-jem` project root. Because the development +bundle currently resolves `tree_sitter_language_pack` from the StructuredMerge +Git fork, install the bundle before the first benchmark run or whenever the +lockfile changes: ```bash -mise exec -C /path/to/kettle-jem -- ruby benchmarks/kettle_jem_ractor_planning.rb +cd /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem + +mise exec -C . -- env \ +GIT_CONFIG_COUNT=1 \ +GIT_CONFIG_KEY_0=safe.bareRepository \ +GIT_CONFIG_VALUE_0=all \ +K_JEM_TEMPLATING=true \ +STRUCTUREDMERGE_DEV=/home/pboling/src/my/structuredmerge/ruby/gems \ +VENDORED_GEMS= \ +VENDOR_GEM_DIR= \ +bundle install + +mise exec -C . -- env \ +K_JEM_TEMPLATING=true \ +STRUCTUREDMERGE_DEV=/home/pboling/src/my/structuredmerge/ruby/gems \ +VENDORED_GEMS= \ +VENDOR_GEM_DIR= \ +bundle exec ruby benchmarks/kettle_jem_ractor_planning.rb ``` ## Examples @@ -26,6 +46,16 @@ Default install-orchestrated benchmark: ```console cd /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem +mise exec -C . -- env \ +GIT_CONFIG_COUNT=1 \ +GIT_CONFIG_KEY_0=safe.bareRepository \ +GIT_CONFIG_VALUE_0=all \ +K_JEM_TEMPLATING=true \ +STRUCTUREDMERGE_DEV=/home/pboling/src/my/structuredmerge/ruby/gems \ +VENDORED_GEMS= \ +VENDOR_GEM_DIR= \ +bundle install + mise exec -C . -- env \ K_JEM_TEMPLATING=true \ STRUCTUREDMERGE_DEV=/home/pboling/src/my/structuredmerge/ruby/gems \ @@ -40,6 +70,16 @@ Raw template-only benchmark: ```console cd /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem +mise exec -C . -- env \ +GIT_CONFIG_COUNT=1 \ +GIT_CONFIG_KEY_0=safe.bareRepository \ +GIT_CONFIG_VALUE_0=all \ +K_JEM_TEMPLATING=true \ +STRUCTUREDMERGE_DEV=/home/pboling/src/my/structuredmerge/ruby/gems \ +VENDORED_GEMS= \ +VENDOR_GEM_DIR= \ +bundle install + mise exec -C . -- env \ K_JEM_TEMPLATING=true \ STRUCTUREDMERGE_DEV=/home/pboling/src/my/structuredmerge/ruby/gems \ @@ -57,6 +97,16 @@ Combined-worker-only benchmark: ```console cd /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem +mise exec -C . -- env \ +GIT_CONFIG_COUNT=1 \ +GIT_CONFIG_KEY_0=safe.bareRepository \ +GIT_CONFIG_VALUE_0=all \ +K_JEM_TEMPLATING=true \ +STRUCTUREDMERGE_DEV=/home/pboling/src/my/structuredmerge/ruby/gems \ +VENDORED_GEMS= \ +VENDOR_GEM_DIR= \ +bundle install + mise exec -C . -- env \ K_JEM_TEMPLATING=true \ STRUCTUREDMERGE_DEV=/home/pboling/src/my/structuredmerge/ruby/gems \ @@ -89,11 +139,15 @@ does not pad the template timing comparison. The harness invokes `exe/kettle-jem` through the kettle-jem development bundle with `BUNDLE_GEMFILE` pinned to this checkout's `Gemfile`, so local sibling StructuredMerge APIs are used while destination setup commands still sanitize -Bundler activation and select the copied fixture's own Gemfile. `K_JEM_TEMPLATING` -is applied only to the executed `kettle-jem` process, not to Bundler's Gemfile -evaluation. By default this resolves the released -`tree_sitter_language_pack` gem; set `VENDORED_GEMS=tree_sitter_language_pack` -and `VENDOR_GEM_DIR` to benchmark against a local vendored source instead. +Bundler activation and select the copied fixture's own Gemfile. The development +bundle resolves `tree_sitter_language_pack` from +`structuredmerge/tree-sitter-language-pack` branch +`fix/ruby-4-platform-gem-abi` until the Ruby ABI platform-gem fix is released. +Run `bundle install` with the same `K_JEM_TEMPLATING`, `STRUCTUREDMERGE_DEV`, +`VENDORED_GEMS`, and `VENDOR_GEM_DIR` values shown above before invoking the +benchmark; otherwise Bundler can fail with "The git source ... is not yet +checked out." The `GIT_CONFIG_*` variables allow Bundler's bare Git cache on +systems configured with `safe.bareRepository=explicit`. The default `template` benchmark compares: From 079ede37342dcff5e775b02611f3019e7ca18b9d Mon Sep 17 00:00:00 2001 From: "Peter H. Boling" Date: Mon, 20 Jul 2026 23:45:43 -0600 Subject: [PATCH 109/188] Improve structured diff review output Append a unified review hunk to smorg-rb diff-driver output and cover the slice-903 review fragments with real no-ext-diff source checks. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- CHANGELOG.md | 2 ++ gems/ast-merge/lib/ast/merge.rb | 2 +- .../spec/fixtures_integration_spec.rb | 4 +++ gems/smorg-rb/lib/smorg/rb.rb | 22 +++++++++++++ gems/smorg-rb/spec/cli_spec.rb | 31 +++++++++++++++++++ 5 files changed, 60 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 849077eaf..cac311d12 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -44,6 +44,8 @@ Please file a bug if you notice a violation of semantic versioning. instead of spawning one Ractor per file. - `kettle-jem` README processing now reuses structural owner scans and batches several Markdown deletions to reduce repeated parser passes. +- `smorg-rb` diff-driver output now appends a unified review hunk with exact + removed and added source text after the semantic structured-diff summary. - Retemplated generated project metadata, support documentation, CI workflows, binstubs, and development dependency floors across the StructuredMerge Ruby gem family with `kettle-jem` v7.0.0. diff --git a/gems/ast-merge/lib/ast/merge.rb b/gems/ast-merge/lib/ast/merge.rb index 4d081b4cd..3f9d5625f 100644 --- a/gems/ast-merge/lib/ast/merge.rb +++ b/gems/ast-merge/lib/ast/merge.rb @@ -850,7 +850,7 @@ def to_h :path_placeholder, :expected_exit_code, :expected_current_file_updated, keyword_init: true) GitDriverSmokeSuite = Struct.new(:suite_id, :version, :driver_name, :cases, :diagnostics, keyword_init: true) DiffDriverSmokeCase = Struct.new(:case_id, :argument_count, :argument_roles, :expected_exit_code, - :expected_output_kind, keyword_init: true) + :expected_output_kind, :expected_output_fragments, keyword_init: true) DiffDriverSmokeSuite = Struct.new(:suite_id, :version, :driver_name, :cases, :diagnostics, keyword_init: true) PerformanceTimeoutDiagnostic = Struct.new(:severity, :category, :code, :fallback, keyword_init: true) PerformanceGuardrails = Struct.new(:guardrail_id, :version, :max_bytes, :max_nodes, :max_match_candidates, diff --git a/gems/ast-merge/spec/fixtures_integration_spec.rb b/gems/ast-merge/spec/fixtures_integration_spec.rb index b7da63ae6..c20fe43cb 100644 --- a/gems/ast-merge/spec/fixtures_integration_spec.rb +++ b/gems/ast-merge/spec/fixtures_integration_spec.rb @@ -1750,11 +1750,15 @@ def add_fixture_line(content, decision:, source:, line:) ) argument_counts = suite.cases.map(&:argument_count) structured_diff_count = suite.cases.count { |smoke_case| smoke_case.expected_output_kind == 'structured_diff' } + reviewable_output_case_count = suite.cases.count { |smoke_case| smoke_case.expected_output_fragments.any? } + real_source_pair_count = raw.fetch(:real_source_pairs).length expect(suite.driver_name).to eq(fixture.dig(:expected, :driver_name)) expect(suite.cases.length).to eq(fixture.dig(:expected, :case_count)) expect(argument_counts).to eq(fixture.dig(:expected, :argument_counts)) expect(structured_diff_count).to eq(fixture.dig(:expected, :structured_diff_count)) + expect(reviewable_output_case_count).to eq(fixture.dig(:expected, :reviewable_output_case_count)) + expect(real_source_pair_count).to eq(fixture.dig(:expected, :real_source_pair_count)) end it 'conforms to the slice-904 performance guardrails fixture' do diff --git a/gems/smorg-rb/lib/smorg/rb.rb b/gems/smorg-rb/lib/smorg/rb.rb index 674de14b8..23d947bdc 100644 --- a/gems/smorg-rb/lib/smorg/rb.rb +++ b/gems/smorg-rb/lib/smorg/rb.rb @@ -544,9 +544,31 @@ def print_structured_diff(stdout, path_name, old_source, new_source) stdout.puts('status changed') stdout.puts("old-lines #{line_count(old_source)}") stdout.puts("new-lines #{line_count(new_source)}") + print_structured_diff_review_hunk(stdout, path_name, old_source, new_source) end end + def print_structured_diff_review_hunk(stdout, path_name, old_source, new_source) + old_lines = diff_source_lines(old_source) + new_lines = diff_source_lines(new_source) + stdout.puts('review-diff unified') + stdout.puts("--- a/#{path_name}") + stdout.puts("+++ b/#{path_name}") + stdout.puts("@@ -1,#{old_lines.length} +1,#{new_lines.length} @@") + old_lines.each { |line| write_diff_line(stdout, '-', line) } + new_lines.each { |line| write_diff_line(stdout, '+', line) } + end + + def diff_source_lines(source) + source.to_s.lines.to_a + end + + def write_diff_line(stdout, prefix, line) + stdout.write(prefix) + stdout.write(line) + stdout.write("\n") unless line.end_with?("\n") + end + def run_conflicts(args, stdout, stderr) subcommand, *rest = args return run_conflicts_diff(rest, stdout, stderr) if subcommand == 'diff' diff --git a/gems/smorg-rb/spec/cli_spec.rb b/gems/smorg-rb/spec/cli_spec.rb index 5d01b3fc9..8cf5940f6 100644 --- a/gems/smorg-rb/spec/cli_spec.rb +++ b/gems/smorg-rb/spec/cli_spec.rb @@ -31,6 +31,13 @@ def git_install_report_fixture JSON.parse(File.read(path)) end + def diff_driver_smoke_fixture + path = File.expand_path( + '../../../../fixtures/diagnostics/slice-903-diff-driver-smoke-fixtures/diff-driver-smoke-fixtures.json', __dir__ + ) + JSON.parse(File.read(path)) + end + def run_git(dir, *args) return skip('git executable is required for repository integration fixture') unless system('git', '--version', out: File::NULL, err: File::NULL) @@ -448,6 +455,30 @@ def run_git(dir, *args) expect(exit_code).to eq(described_class::EXIT_SUCCESS), stderr.string expect(stdout.string).to include('structured-diff package.json') + expect(stdout.string).to include('review-diff unified') + expect(stdout.string).to include('@@ -1,1 +1,1 @@') + expect(stdout.string).to include('-{"old":true}') + expect(stdout.string).to include('+{"new":true}') + end + end + + it 'keeps no-ext-diff source review fragments in structured diff output' do + source_pair = diff_driver_smoke_fixture.fetch('suite').fetch('real_source_pairs').first + old_path = write_file(@dir, 'old-source.rb', source_pair.fetch('old_source')) + new_path = write_file(@dir, 'new-source.rb', source_pair.fetch('new_source')) + stdout = StringIO.new + stderr = StringIO.new + + plain_diff = IO.popen([{ 'GIT_CONFIG_NOSYSTEM' => '1' }, 'git', '--no-pager', 'diff', '--no-ext-diff', + '--no-index', old_path, new_path], err: %i[child out], &:read) + expect([0, 1]).to include($?.exitstatus) + exit_code = described_class.run(['diff-driver', '--path-name', source_pair.fetch('path'), old_path, + new_path], stdout: stdout, stderr: stderr) + + expect(exit_code).to eq(described_class::EXIT_SUCCESS), stderr.string + source_pair.fetch('expected_plain_diff_fragments').each { |fragment| expect(plain_diff).to include(fragment) } + source_pair.fetch('expected_structured_diff_fragments').each do |fragment| + expect(stdout.string).to include(fragment) end end From badbdb7384246167b9bc813216ad85798b4ccde8 Mon Sep 17 00:00:00 2001 From: "Peter H. Boling" Date: Tue, 21 Jul 2026 11:12:47 -0600 Subject: [PATCH 110/188] Use released tree_sitter_language_pack Replace the StructuredMerge TSLP fork/branch dependency with the released tree_sitter_language_pack 1.13.3 dependency across the kettle-jem templates, generated templating Gemfiles, local override Gemfiles, and lockfiles. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- Gemfile | 4 +- Gemfile.lock | 28 +- gems/ast-crispr-markdown-markly/Gemfile | 4 +- gems/ast-crispr-markdown-markly/Gemfile.lock | 22 +- .../gemfiles/modular/templating.gemfile | 4 +- .../gemfiles/modular/templating_local.gemfile | 3 - gems/ast-crispr-ruby-prism/Gemfile | 4 +- gems/ast-crispr-ruby-prism/Gemfile.lock | 16 +- .../gemfiles/modular/templating.gemfile | 4 +- .../gemfiles/modular/templating_local.gemfile | 3 - gems/ast-crispr/Gemfile | 4 +- gems/ast-crispr/Gemfile.lock | 22 +- .../gemfiles/modular/templating.gemfile | 4 +- .../gemfiles/modular/templating_local.gemfile | 3 - gems/ast-merge-git/Gemfile | 4 +- gems/ast-merge-git/Gemfile.lock | 22 +- .../gemfiles/modular/templating.gemfile | 4 +- .../gemfiles/modular/templating_local.gemfile | 3 - gems/ast-merge/Gemfile | 4 +- gems/ast-merge/Gemfile.lock | 121 +++-- .../gemfiles/modular/templating.gemfile | 4 +- .../gemfiles/modular/templating_local.gemfile | 3 - gems/ast-template/Gemfile | 4 +- gems/ast-template/Gemfile.lock | 22 +- .../gemfiles/modular/templating.gemfile | 4 +- .../gemfiles/modular/templating_local.gemfile | 3 - gems/bash-merge/Gemfile | 4 +- gems/bash-merge/Gemfile.lock | 136 +++--- .../gemfiles/modular/templating.gemfile | 4 +- .../gemfiles/modular/templating_local.gemfile | 3 - gems/binary-merge/Gemfile | 4 +- gems/binary-merge/Gemfile.lock | 121 +++-- .../gemfiles/modular/templating.gemfile | 4 +- .../gemfiles/modular/templating_local.gemfile | 3 - gems/citrus-toml-merge/Gemfile | 4 +- gems/citrus-toml-merge/Gemfile.lock | 22 +- .../gemfiles/modular/templating.gemfile | 4 +- .../gemfiles/modular/templating_local.gemfile | 3 - gems/commonmarker-merge/Gemfile | 4 +- gems/commonmarker-merge/Gemfile.lock | 22 +- .../gemfiles/modular/templating.gemfile | 4 +- .../gemfiles/modular/templating_local.gemfile | 3 - gems/dotenv-merge/Gemfile | 4 +- gems/dotenv-merge/Gemfile.lock | 136 +++--- .../gemfiles/modular/templating.gemfile | 4 +- .../gemfiles/modular/templating_local.gemfile | 3 - gems/go-merge/Gemfile | 4 +- gems/go-merge/Gemfile.lock | 136 +++--- .../gemfiles/modular/templating.gemfile | 4 +- .../gemfiles/modular/templating_local.gemfile | 3 - gems/html-merge/Gemfile | 4 +- gems/html-merge/Gemfile.lock | 14 +- .../gemfiles/modular/templating.gemfile | 4 +- .../gemfiles/modular/templating_local.gemfile | 3 - gems/json-merge/Gemfile | 4 +- gems/json-merge/Gemfile.lock | 130 +++--- .../gemfiles/modular/templating.gemfile | 4 +- .../gemfiles/modular/templating_local.gemfile | 3 - gems/kettle-jem/Gemfile | 4 +- gems/kettle-jem/Gemfile.lock | 426 +++++++++++++----- gems/kettle-jem/benchmarks/README.md | 3 +- .../gemfiles/modular/templating.gemfile | 2 + .../gemfiles/modular/templating_local.gemfile | 3 - .../jem/templates/CHANGELOG.transfer.md | 3 +- .../lib/kettle/jem/templates/Gemfile.example | 4 +- .../modular/templating.gemfile.example | 4 +- .../modular/templating_local.gemfile.example | 3 - .../appraisals_and_gemfile_template_spec.rb | 3 +- .../config_metadata_template_spec.rb | 4 +- gems/kramdown-merge/Gemfile | 4 +- gems/kramdown-merge/Gemfile.lock | 22 +- .../gemfiles/modular/templating.gemfile | 4 +- .../gemfiles/modular/templating_local.gemfile | 3 - gems/markdown-merge/Gemfile | 4 +- gems/markdown-merge/Gemfile.lock | 136 +++--- .../gemfiles/modular/templating.gemfile | 4 +- .../gemfiles/modular/templating_local.gemfile | 3 - gems/markly-merge/Gemfile | 4 +- gems/markly-merge/Gemfile.lock | 22 +- .../gemfiles/modular/templating.gemfile | 4 +- .../gemfiles/modular/templating_local.gemfile | 3 - gems/parslet-toml-merge/Gemfile | 4 +- gems/parslet-toml-merge/Gemfile.lock | 22 +- .../gemfiles/modular/templating.gemfile | 4 +- .../gemfiles/modular/templating_local.gemfile | 3 - gems/plain-merge/Gemfile | 4 +- gems/plain-merge/Gemfile.lock | 136 +++--- .../gemfiles/modular/templating.gemfile | 4 +- .../gemfiles/modular/templating_local.gemfile | 3 - gems/prism-merge/Gemfile | 4 +- gems/prism-merge/Gemfile.lock | 16 +- .../gemfiles/modular/templating.gemfile | 4 +- .../gemfiles/modular/templating_local.gemfile | 3 - gems/psych-merge/Gemfile | 4 +- gems/psych-merge/Gemfile.lock | 149 +++--- .../gemfiles/modular/templating.gemfile | 4 +- .../gemfiles/modular/templating_local.gemfile | 3 - gems/rbs-merge/Gemfile | 4 +- gems/rbs-merge/Gemfile.lock | 130 +++--- .../gemfiles/modular/templating.gemfile | 4 +- .../gemfiles/modular/templating_local.gemfile | 3 - gems/ruby-merge/Gemfile | 4 +- gems/ruby-merge/Gemfile.lock | 136 +++--- .../gemfiles/modular/templating.gemfile | 4 +- .../gemfiles/modular/templating_local.gemfile | 3 - gems/rust-merge/Gemfile | 4 +- gems/rust-merge/Gemfile.lock | 136 +++--- .../gemfiles/modular/templating.gemfile | 4 +- .../gemfiles/modular/templating_local.gemfile | 3 - gems/smorg-rb/Gemfile | 4 +- gems/smorg-rb/Gemfile.lock | 22 +- .../gemfiles/modular/templating.gemfile | 4 +- .../gemfiles/modular/templating_local.gemfile | 3 - gems/toml-merge/Gemfile | 4 +- gems/toml-merge/Gemfile.lock | 136 +++--- .../gemfiles/modular/templating.gemfile | 4 +- .../gemfiles/modular/templating_local.gemfile | 3 - gems/tree_haver/Gemfile | 4 +- gems/tree_haver/Gemfile.lock | 88 ++-- .../gemfiles/modular/templating.gemfile | 4 +- .../gemfiles/modular/templating_local.gemfile | 3 - gems/typescript-merge/Gemfile | 4 +- gems/typescript-merge/Gemfile.lock | 136 +++--- .../gemfiles/modular/templating.gemfile | 4 +- .../gemfiles/modular/templating_local.gemfile | 3 - gems/yaml-merge/Gemfile | 4 +- gems/yaml-merge/Gemfile.lock | 136 +++--- .../gemfiles/modular/templating.gemfile | 4 +- .../gemfiles/modular/templating_local.gemfile | 3 - gems/zip-merge/Gemfile | 4 +- gems/zip-merge/Gemfile.lock | 121 +++-- .../gemfiles/modular/templating.gemfile | 4 +- .../gemfiles/modular/templating_local.gemfile | 3 - 133 files changed, 1625 insertions(+), 1682 deletions(-) diff --git a/Gemfile b/Gemfile index 7f43bcac5..7078d7440 100644 --- a/Gemfile +++ b/Gemfile @@ -2,8 +2,8 @@ kettle_dev_dev = ENV.fetch("KETTLE_DEV_DEV", "false") source "https://rubygems.org" -# Use the StructuredMerge TSLP fork until the Ruby ABI platform-gem fix is released. -gem "tree_sitter_language_pack", git: "https://github.com/structuredmerge/tree-sitter-language-pack.git", branch: "fix/ruby-4-platform-gem-abi", glob: "packages/ruby/*.gemspec" +# Use released TSLP with the Ruby ABI platform-gem fix. +gem "tree_sitter_language_pack", "~> 1.13", ">= 1.13.3" unless kettle_dev_dev.casecmp("false").zero? require "nomono/bundler" diff --git a/Gemfile.lock b/Gemfile.lock index 04e05c1ae..b8b679a18 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,15 +1,3 @@ -GIT - remote: https://github.com/structuredmerge/tree-sitter-language-pack.git - revision: e736879d00ce55b9bbfa479a5c07363bde1512e2 - branch: fix/ruby-4-platform-gem-abi - glob: packages/ruby/*.gemspec - specs: - tree_sitter_language_pack (1.13.2) - rb_sys (>= 0.9, < 0.9.128) - sorbet-runtime (~> 0.5) - tree_sitter_language_pack (1.13.2-x86_64-linux) - sorbet-runtime (~> 0.5) - PATH remote: gems/ast-crispr-markdown-markly specs: @@ -352,9 +340,6 @@ GEM public_suffix (7.0.5) racc (1.8.1) rake (13.4.2) - rake-compiler-dock (1.12.0) - rb_sys (0.9.127) - rake-compiler-dock (= 1.12.0) rbs (4.0.3) logger prism (>= 1.6.0) @@ -393,7 +378,7 @@ GEM silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) - sorbet-runtime (0.6.13344) + sorbet-runtime (0.6.13347) stone_checksums (1.0.6) version_gem (~> 1.1, >= 1.1.13) thor (1.5.0) @@ -410,6 +395,8 @@ GEM toml-rb (4.2.0) citrus (~> 3.0, > 3.0) racc (~> 1.7) + tree_sitter_language_pack (1.13.3-x86_64-linux) + sorbet-runtime (~> 0.5) tsort (0.2.0) turbo_tests2 (3.2.0) parallel_tests (>= 3.3.0, < 6) @@ -465,7 +452,7 @@ DEPENDENCIES toml-merge! toml-rb (~> 4.1) tree_haver! - tree_sitter_language_pack! + tree_sitter_language_pack (~> 1.13, >= 1.13.3) turbo_tests2 (~> 3.2, ~> 3.1, >= 3.2.0, >= 3.1.14) typescript-merge! yaml-merge! @@ -529,8 +516,6 @@ CHECKSUMS public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 - rake-compiler-dock (1.12.0) sha256=f13205c2738f3d2053afcd03491a9e4541b22a59a0bfc53fc8bc883bd8188023 - rb_sys (0.9.127) sha256=e9f90df3bb0577472d26d96127d5b5774b98f44de881e7d36aeefd28d6337847 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 rbs-merge (7.1.0) reline (0.6.3) sha256=1198b04973565b36ec0f11542ab3f5cfeeec34823f4e54cebde90968092b1835 @@ -553,7 +538,7 @@ CHECKSUMS service_actor (3.9.4) sha256=e63b523630b9a7e62959b2a90113b08d2565b5de9c148557b281ef847c9539ce silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 smorg-rb (7.1.0) - sorbet-runtime (0.6.13344) sha256=0b4e3310cd10bc814f0d7cfa65db82151103322e75dd63c961546845dd8ba5e5 + sorbet-runtime (0.6.13347) sha256=54e7221d9f4b63f58aec79f3043752a9ba7810347c6ae0d903531591cc2d5f01 stone_checksums (1.0.6) sha256=c775f830513d6c6ab26e31d1a5fbecd4c4e39002663d4d9f8fa96e97990b5298 thor (1.5.0) sha256=e3a9e55fe857e44859ce104a84675ab6e8cd59c650a49106a05f55f136425e73 timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 @@ -563,8 +548,7 @@ CHECKSUMS toml-merge (7.1.0) toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 tree_haver (7.1.0) - tree_sitter_language_pack (1.13.2) - tree_sitter_language_pack (1.13.2-x86_64-linux) + tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 typescript-merge (7.1.0) diff --git a/gems/ast-crispr-markdown-markly/Gemfile b/gems/ast-crispr-markdown-markly/Gemfile index d36a55479..5a0323233 100644 --- a/gems/ast-crispr-markdown-markly/Gemfile +++ b/gems/ast-crispr-markdown-markly/Gemfile @@ -72,8 +72,8 @@ if direct_sibling_gems.any? && end end -# Use the StructuredMerge TSLP fork until the Ruby ABI platform-gem fix is released. -gem 'tree_sitter_language_pack', git: 'https://github.com/structuredmerge/tree-sitter-language-pack.git', branch: 'fix/ruby-4-platform-gem-abi', glob: 'packages/ruby/*.gemspec' +# Use released TSLP with the Ruby ABI platform-gem fix. +gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' # Templating (env-switched: STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local paths) eval_gemfile 'gemfiles/modular/templating.gemfile' if ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? diff --git a/gems/ast-crispr-markdown-markly/Gemfile.lock b/gems/ast-crispr-markdown-markly/Gemfile.lock index 491d8b17b..22989a7e9 100644 --- a/gems/ast-crispr-markdown-markly/Gemfile.lock +++ b/gems/ast-crispr-markdown-markly/Gemfile.lock @@ -1,21 +1,3 @@ -GIT - remote: https://github.com/structuredmerge/tree-sitter-language-pack.git - revision: e736879d00ce55b9bbfa479a5c07363bde1512e2 - branch: fix/ruby-4-platform-gem-abi - glob: packages/ruby/*.gemspec - specs: - tree_sitter_language_pack (1.13.2) - rb_sys (>= 0.9, < 0.9.128) - sorbet-runtime (~> 0.5) - tree_sitter_language_pack (1.13.2-aarch64-linux) - sorbet-runtime (~> 0.5) - tree_sitter_language_pack (1.13.2-arm64-darwin) - sorbet-runtime (~> 0.5) - tree_sitter_language_pack (1.13.2-x86_64-darwin) - sorbet-runtime (~> 0.5) - tree_sitter_language_pack (1.13.2-x86_64-linux) - sorbet-runtime (~> 0.5) - PATH remote: . specs: @@ -350,6 +332,8 @@ GEM parslet (~> 2.0) tree_sitter_language_pack (>= 1.9.0.pre.rc.40, < 2.0) version_gem (~> 1.1, >= 1.1.9) +tree_sitter_language_pack (1.13.3-x86_64-linux) + sorbet-runtime (~> 0.5) tsort (0.2.0) turbo_tests2 (3.2.0) parallel_tests (>= 3.3.0, < 6) @@ -425,7 +409,7 @@ DEPENDENCIES standard (>= 1.50) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) - tree_sitter_language_pack! + tree_sitter_language_pack (~> 1.13, >= 1.13.3) yaml-converter (~> 0.1) yard (~> 0.9, >= 0.9.44) yard-fence (~> 0.9, >= 0.9.1) diff --git a/gems/ast-crispr-markdown-markly/gemfiles/modular/templating.gemfile b/gems/ast-crispr-markdown-markly/gemfiles/modular/templating.gemfile index 1ee2a5ea7..2ddc9433f 100644 --- a/gems/ast-crispr-markdown-markly/gemfiles/modular/templating.gemfile +++ b/gems/ast-crispr-markdown-markly/gemfiles/modular/templating.gemfile @@ -4,7 +4,9 @@ structuredmerge_remote = ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('fals kettle_remote = ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? if structuredmerge_remote - # Merge recipes and parser dependencies for released installs. + # Parser dependencies for released installs. + gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' + # Merge recipes for released installs. gem 'kettle-jem', '>= 7.0' end diff --git a/gems/ast-crispr-markdown-markly/gemfiles/modular/templating_local.gemfile b/gems/ast-crispr-markdown-markly/gemfiles/modular/templating_local.gemfile index 0a4a2514f..9c7e3c58a 100644 --- a/gems/ast-crispr-markdown-markly/gemfiles/modular/templating_local.gemfile +++ b/gems/ast-crispr-markdown-markly/gemfiles/modular/templating_local.gemfile @@ -7,7 +7,6 @@ require 'nomono/bundler' unless defined?(Nomono) structuredmerge_local_gems = %w[ - tree_sitter_language_pack tree_haver ast-merge ast-merge-git @@ -47,8 +46,6 @@ declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) structuredmerge_local_gems_to_eval = structuredmerge_local_gems - %w[ast-crispr-markdown-markly] - declared_gems kettle_dev_local_gems_to_eval = kettle_dev_local_gems - %w[ast-crispr-markdown-markly] - declared_gems -# export VENDORED_GEMS=tree_sitter_language_pack -# export VENDOR_GEM_DIR=/path/to/vendor # expects $VENDOR_GEM_DIR/tree_sitter_language_pack platform :mri do if ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false') != 0 eval_nomono_gems( diff --git a/gems/ast-crispr-ruby-prism/Gemfile b/gems/ast-crispr-ruby-prism/Gemfile index afd3e8a42..fd5b902a2 100644 --- a/gems/ast-crispr-ruby-prism/Gemfile +++ b/gems/ast-crispr-ruby-prism/Gemfile @@ -72,8 +72,8 @@ if direct_sibling_gems.any? && end end -# Use the StructuredMerge TSLP fork until the Ruby ABI platform-gem fix is released. -gem 'tree_sitter_language_pack', git: 'https://github.com/structuredmerge/tree-sitter-language-pack.git', branch: 'fix/ruby-4-platform-gem-abi', glob: 'packages/ruby/*.gemspec' +# Use released TSLP with the Ruby ABI platform-gem fix. +gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' # Templating (env-switched: STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local paths) eval_gemfile 'gemfiles/modular/templating.gemfile' if ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? diff --git a/gems/ast-crispr-ruby-prism/Gemfile.lock b/gems/ast-crispr-ruby-prism/Gemfile.lock index 2d01b5f8d..8fc4f253f 100644 --- a/gems/ast-crispr-ruby-prism/Gemfile.lock +++ b/gems/ast-crispr-ruby-prism/Gemfile.lock @@ -1,15 +1,3 @@ -GIT - remote: https://github.com/structuredmerge/tree-sitter-language-pack.git - revision: e736879d00ce55b9bbfa479a5c07363bde1512e2 - branch: fix/ruby-4-platform-gem-abi - glob: packages/ruby/*.gemspec - specs: - tree_sitter_language_pack (1.13.2) - rb_sys (>= 0.9, < 0.9.128) - sorbet-runtime (~> 0.5) - tree_sitter_language_pack (1.13.2-x86_64-linux) - sorbet-runtime (~> 0.5) - PATH remote: . specs: @@ -335,6 +323,8 @@ GEM parslet (~> 2.0) tree_sitter_language_pack (>= 1.9.0.pre.rc.40, < 2.0) version_gem (~> 1.1, >= 1.1.9) +tree_sitter_language_pack (1.13.3-x86_64-linux) + sorbet-runtime (~> 0.5) tsort (0.2.0) turbo_tests2 (3.2.0) parallel_tests (>= 3.3.0, < 6) @@ -405,7 +395,7 @@ DEPENDENCIES standard (>= 1.50) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) - tree_sitter_language_pack! + tree_sitter_language_pack (~> 1.13, >= 1.13.3) yaml-converter (~> 0.1) yard (~> 0.9, >= 0.9.44) yard-fence (~> 0.9, >= 0.9.1) diff --git a/gems/ast-crispr-ruby-prism/gemfiles/modular/templating.gemfile b/gems/ast-crispr-ruby-prism/gemfiles/modular/templating.gemfile index 1ee2a5ea7..2ddc9433f 100644 --- a/gems/ast-crispr-ruby-prism/gemfiles/modular/templating.gemfile +++ b/gems/ast-crispr-ruby-prism/gemfiles/modular/templating.gemfile @@ -4,7 +4,9 @@ structuredmerge_remote = ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('fals kettle_remote = ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? if structuredmerge_remote - # Merge recipes and parser dependencies for released installs. + # Parser dependencies for released installs. + gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' + # Merge recipes for released installs. gem 'kettle-jem', '>= 7.0' end diff --git a/gems/ast-crispr-ruby-prism/gemfiles/modular/templating_local.gemfile b/gems/ast-crispr-ruby-prism/gemfiles/modular/templating_local.gemfile index a5aa4986b..cc240cfdf 100644 --- a/gems/ast-crispr-ruby-prism/gemfiles/modular/templating_local.gemfile +++ b/gems/ast-crispr-ruby-prism/gemfiles/modular/templating_local.gemfile @@ -7,7 +7,6 @@ require 'nomono/bundler' unless defined?(Nomono) structuredmerge_local_gems = %w[ - tree_sitter_language_pack tree_haver ast-merge ast-merge-git @@ -47,8 +46,6 @@ declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) structuredmerge_local_gems_to_eval = structuredmerge_local_gems - %w[ast-crispr-ruby-prism] - declared_gems kettle_dev_local_gems_to_eval = kettle_dev_local_gems - %w[ast-crispr-ruby-prism] - declared_gems -# export VENDORED_GEMS=tree_sitter_language_pack -# export VENDOR_GEM_DIR=/path/to/vendor # expects $VENDOR_GEM_DIR/tree_sitter_language_pack platform :mri do if ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false') != 0 eval_nomono_gems( diff --git a/gems/ast-crispr/Gemfile b/gems/ast-crispr/Gemfile index fef55b03d..d532cca46 100644 --- a/gems/ast-crispr/Gemfile +++ b/gems/ast-crispr/Gemfile @@ -71,8 +71,8 @@ if direct_sibling_gems.any? && end end -# Use the StructuredMerge TSLP fork until the Ruby ABI platform-gem fix is released. -gem 'tree_sitter_language_pack', git: 'https://github.com/structuredmerge/tree-sitter-language-pack.git', branch: 'fix/ruby-4-platform-gem-abi', glob: 'packages/ruby/*.gemspec' +# Use released TSLP with the Ruby ABI platform-gem fix. +gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' # Templating (env-switched: STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local paths) eval_gemfile 'gemfiles/modular/templating.gemfile' if ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? diff --git a/gems/ast-crispr/Gemfile.lock b/gems/ast-crispr/Gemfile.lock index f1e363d99..c831881ea 100644 --- a/gems/ast-crispr/Gemfile.lock +++ b/gems/ast-crispr/Gemfile.lock @@ -1,21 +1,3 @@ -GIT - remote: https://github.com/structuredmerge/tree-sitter-language-pack.git - revision: e736879d00ce55b9bbfa479a5c07363bde1512e2 - branch: fix/ruby-4-platform-gem-abi - glob: packages/ruby/*.gemspec - specs: - tree_sitter_language_pack (1.13.2) - rb_sys (>= 0.9, < 0.9.128) - sorbet-runtime (~> 0.5) - tree_sitter_language_pack (1.13.2-aarch64-linux) - sorbet-runtime (~> 0.5) - tree_sitter_language_pack (1.13.2-arm64-darwin) - sorbet-runtime (~> 0.5) - tree_sitter_language_pack (1.13.2-x86_64-darwin) - sorbet-runtime (~> 0.5) - tree_sitter_language_pack (1.13.2-x86_64-linux) - sorbet-runtime (~> 0.5) - PATH remote: . specs: @@ -337,6 +319,8 @@ GEM parslet (~> 2.0) tree_sitter_language_pack (>= 1.9.0.pre.rc.40, < 2.0) version_gem (~> 1.1, >= 1.1.9) +tree_sitter_language_pack (1.13.3-x86_64-linux) + sorbet-runtime (~> 0.5) tsort (0.2.0) turbo_tests2 (3.2.0) parallel_tests (>= 3.3.0, < 6) @@ -412,7 +396,7 @@ DEPENDENCIES standard (>= 1.50) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) - tree_sitter_language_pack! + tree_sitter_language_pack (~> 1.13, >= 1.13.3) yaml-converter (~> 0.1) yard (~> 0.9, >= 0.9.44) yard-fence (~> 0.9, >= 0.9.1) diff --git a/gems/ast-crispr/gemfiles/modular/templating.gemfile b/gems/ast-crispr/gemfiles/modular/templating.gemfile index 1ee2a5ea7..2ddc9433f 100644 --- a/gems/ast-crispr/gemfiles/modular/templating.gemfile +++ b/gems/ast-crispr/gemfiles/modular/templating.gemfile @@ -4,7 +4,9 @@ structuredmerge_remote = ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('fals kettle_remote = ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? if structuredmerge_remote - # Merge recipes and parser dependencies for released installs. + # Parser dependencies for released installs. + gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' + # Merge recipes for released installs. gem 'kettle-jem', '>= 7.0' end diff --git a/gems/ast-crispr/gemfiles/modular/templating_local.gemfile b/gems/ast-crispr/gemfiles/modular/templating_local.gemfile index efa3faad5..70270d3d6 100644 --- a/gems/ast-crispr/gemfiles/modular/templating_local.gemfile +++ b/gems/ast-crispr/gemfiles/modular/templating_local.gemfile @@ -7,7 +7,6 @@ require 'nomono/bundler' unless defined?(Nomono) structuredmerge_local_gems = %w[ - tree_sitter_language_pack tree_haver ast-merge ast-merge-git @@ -47,8 +46,6 @@ declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) structuredmerge_local_gems_to_eval = structuredmerge_local_gems - %w[ast-crispr] - declared_gems kettle_dev_local_gems_to_eval = kettle_dev_local_gems - %w[ast-crispr] - declared_gems -# export VENDORED_GEMS=tree_sitter_language_pack -# export VENDOR_GEM_DIR=/path/to/vendor # expects $VENDOR_GEM_DIR/tree_sitter_language_pack platform :mri do if ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false') != 0 eval_nomono_gems( diff --git a/gems/ast-merge-git/Gemfile b/gems/ast-merge-git/Gemfile index 34e13c867..8ab76ce93 100644 --- a/gems/ast-merge-git/Gemfile +++ b/gems/ast-merge-git/Gemfile @@ -72,8 +72,8 @@ if direct_sibling_gems.any? && end end -# Use the StructuredMerge TSLP fork until the Ruby ABI platform-gem fix is released. -gem 'tree_sitter_language_pack', git: 'https://github.com/structuredmerge/tree-sitter-language-pack.git', branch: 'fix/ruby-4-platform-gem-abi', glob: 'packages/ruby/*.gemspec' +# Use released TSLP with the Ruby ABI platform-gem fix. +gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' # Templating (env-switched: STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local paths) eval_gemfile 'gemfiles/modular/templating.gemfile' if ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? diff --git a/gems/ast-merge-git/Gemfile.lock b/gems/ast-merge-git/Gemfile.lock index aaa75fc40..a7969304a 100644 --- a/gems/ast-merge-git/Gemfile.lock +++ b/gems/ast-merge-git/Gemfile.lock @@ -1,21 +1,3 @@ -GIT - remote: https://github.com/structuredmerge/tree-sitter-language-pack.git - revision: e736879d00ce55b9bbfa479a5c07363bde1512e2 - branch: fix/ruby-4-platform-gem-abi - glob: packages/ruby/*.gemspec - specs: - tree_sitter_language_pack (1.13.2) - rb_sys (>= 0.9, < 0.9.128) - sorbet-runtime (~> 0.5) - tree_sitter_language_pack (1.13.2-aarch64-linux) - sorbet-runtime (~> 0.5) - tree_sitter_language_pack (1.13.2-arm64-darwin) - sorbet-runtime (~> 0.5) - tree_sitter_language_pack (1.13.2-x86_64-darwin) - sorbet-runtime (~> 0.5) - tree_sitter_language_pack (1.13.2-x86_64-linux) - sorbet-runtime (~> 0.5) - PATH remote: . specs: @@ -339,6 +321,8 @@ GEM parslet (~> 2.0) tree_sitter_language_pack (>= 1.9.0.pre.rc.40, < 2.0) version_gem (~> 1.1, >= 1.1.9) +tree_sitter_language_pack (1.13.3-x86_64-linux) + sorbet-runtime (~> 0.5) tsort (0.2.0) turbo_tests2 (3.2.0) parallel_tests (>= 3.3.0, < 6) @@ -414,7 +398,7 @@ DEPENDENCIES standard (>= 1.50) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) - tree_sitter_language_pack! + tree_sitter_language_pack (~> 1.13, >= 1.13.3) yaml-converter (~> 0.1) yard (~> 0.9, >= 0.9.44) yard-fence (~> 0.9, >= 0.9.1) diff --git a/gems/ast-merge-git/gemfiles/modular/templating.gemfile b/gems/ast-merge-git/gemfiles/modular/templating.gemfile index 1ee2a5ea7..2ddc9433f 100644 --- a/gems/ast-merge-git/gemfiles/modular/templating.gemfile +++ b/gems/ast-merge-git/gemfiles/modular/templating.gemfile @@ -4,7 +4,9 @@ structuredmerge_remote = ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('fals kettle_remote = ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? if structuredmerge_remote - # Merge recipes and parser dependencies for released installs. + # Parser dependencies for released installs. + gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' + # Merge recipes for released installs. gem 'kettle-jem', '>= 7.0' end diff --git a/gems/ast-merge-git/gemfiles/modular/templating_local.gemfile b/gems/ast-merge-git/gemfiles/modular/templating_local.gemfile index 8d9b6fb55..7d1f61d98 100644 --- a/gems/ast-merge-git/gemfiles/modular/templating_local.gemfile +++ b/gems/ast-merge-git/gemfiles/modular/templating_local.gemfile @@ -7,7 +7,6 @@ require 'nomono/bundler' unless defined?(Nomono) structuredmerge_local_gems = %w[ - tree_sitter_language_pack tree_haver ast-merge ast-merge-git @@ -47,8 +46,6 @@ declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) structuredmerge_local_gems_to_eval = structuredmerge_local_gems - %w[ast-merge-git] - declared_gems kettle_dev_local_gems_to_eval = kettle_dev_local_gems - %w[ast-merge-git] - declared_gems -# export VENDORED_GEMS=tree_sitter_language_pack -# export VENDOR_GEM_DIR=/path/to/vendor # expects $VENDOR_GEM_DIR/tree_sitter_language_pack platform :mri do if ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false') != 0 eval_nomono_gems( diff --git a/gems/ast-merge/Gemfile b/gems/ast-merge/Gemfile index e8dbd2992..37848c545 100644 --- a/gems/ast-merge/Gemfile +++ b/gems/ast-merge/Gemfile @@ -71,8 +71,8 @@ if direct_sibling_gems.any? && end end -# Use the StructuredMerge TSLP fork until the Ruby ABI platform-gem fix is released. -gem 'tree_sitter_language_pack', git: 'https://github.com/structuredmerge/tree-sitter-language-pack.git', branch: 'fix/ruby-4-platform-gem-abi', glob: 'packages/ruby/*.gemspec' +# Use released TSLP with the Ruby ABI platform-gem fix. +gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' # Templating (env-switched: STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local paths) eval_gemfile 'gemfiles/modular/templating.gemfile' if ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? diff --git a/gems/ast-merge/Gemfile.lock b/gems/ast-merge/Gemfile.lock index 50df5bf84..507509781 100644 --- a/gems/ast-merge/Gemfile.lock +++ b/gems/ast-merge/Gemfile.lock @@ -1,21 +1,3 @@ -GIT - remote: https://github.com/structuredmerge/tree-sitter-language-pack.git - revision: e736879d00ce55b9bbfa479a5c07363bde1512e2 - branch: fix/ruby-4-platform-gem-abi - glob: packages/ruby/*.gemspec - specs: - tree_sitter_language_pack (1.13.2) - rb_sys (>= 0.9, < 0.9.128) - sorbet-runtime (~> 0.5) - tree_sitter_language_pack (1.13.2-aarch64-linux) - sorbet-runtime (~> 0.5) - tree_sitter_language_pack (1.13.2-arm64-darwin) - sorbet-runtime (~> 0.5) - tree_sitter_language_pack (1.13.2-x86_64-darwin) - sorbet-runtime (~> 0.5) - tree_sitter_language_pack (1.13.2-x86_64-linux) - sorbet-runtime (~> 0.5) - PATH remote: . specs: @@ -25,6 +7,32 @@ PATH tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) +PATH + remote: /home/pboling/src/my/kettle-dev/kettle-drift + specs: + kettle-drift (1.0.5) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/kettle-dev/kettle-soup-cover + specs: + kettle-soup-cover (3.0.3) + kettle-wash (~> 0.1, >= 0.1.0) + simplecov (>= 1.0) + simplecov-cobertura (>= 4.0) + simplecov-console (~> 0.9, >= 0.9.5) + simplecov-rcov (~> 0.3, >= 0.3.7) + simplecov_lcov_formatter (~> 0.9, >= 0.9.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver + specs: + tree_haver (7.1.0) + citrus (~> 3.0) + parslet (~> 2.0) + tree_sitter_language_pack (>= 1.13.2, < 2.0) + version_gem (~> 1.1, >= 1.1.9) + GEM remote: https://gem.coop/ specs: @@ -52,7 +60,6 @@ GEM delegate (0.6.1) diff-lcs (1.6.2) diffy (3.4.4) - docile (1.4.1) dry-configurable (1.4.0) dry-core (~> 1.0) zeitwerk (~> 2.6) @@ -108,15 +115,6 @@ GEM kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) kettle-rb (0.1.4) - kettle-soup-cover (1.1.3) - simplecov (~> 0.22) - simplecov-cobertura (~> 3.0) - simplecov-console (~> 0.9, >= 0.9.3) - simplecov-html (~> 0.13, >= 0.13.1) - simplecov-lcov (~> 0.8) - simplecov-rcov (~> 0.3, >= 0.3.7) - simplecov_json_formatter (~> 0.1, >= 0.1.4) - version_gem (~> 1.1, >= 1.1.9) kettle-test (2.0.11) appraisal2 (~> 3.0, >= 3.0.6) backports (~> 3.0) @@ -128,6 +126,8 @@ GEM silent_stream (~> 1.0, >= 1.0.12) timecop-rspec (~> 1.0, >= 1.0.3) turbo_tests2 (~> 3.1, >= 3.1.12) + kettle-wash (0.1.0) + version_gem (~> 1.1, >= 1.1.14) kramdown (2.5.2) rexml (>= 3.4.4) kramdown-parser-gfm (1.1.0) @@ -169,9 +169,6 @@ GEM racc (1.8.1) rainbow (3.1.1) rake (13.4.2) - rake-compiler-dock (1.12.0) - rb_sys (0.9.127) - rake-compiler-dock (= 1.12.0) rbs (4.0.3) logger prism (>= 1.6.0) @@ -277,23 +274,19 @@ GEM silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) - simplecov (0.22.0) - docile (~> 1.1) - simplecov-html (~> 0.11) - simplecov_json_formatter (~> 0.1) - simplecov-cobertura (3.2.0) + simplecov (1.0.2) + simplecov-cobertura (4.0.0) rexml - simplecov (~> 0.19) + simplecov (~> 1.0) simplecov-console (0.9.5) ansi simplecov terminal-table - simplecov-html (0.13.2) - simplecov-lcov (0.9.0) simplecov-rcov (0.3.7) simplecov (>= 0.4.1) - simplecov_json_formatter (0.1.4) - sorbet-runtime (0.6.13342) + simplecov_lcov_formatter (0.9.0) + simplecov (>= 0.18) + sorbet-runtime (0.6.13347) standard (1.56.0) language_server-protocol (~> 3.17.0.2) lint_roller (~> 1.0) @@ -326,11 +319,14 @@ GEM token-resolver (2.0.4) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.13) - tree_haver (7.1.0) - citrus (~> 3.0) - parslet (~> 2.0) - tree_sitter_language_pack (>= 1.9.0.pre.rc.40, < 2.0) - version_gem (~> 1.1, >= 1.1.9) + tree_sitter_language_pack (1.13.3-aarch64-linux) + sorbet-runtime (~> 0.5) + tree_sitter_language_pack (1.13.3-arm64-darwin) + sorbet-runtime (~> 0.5) + tree_sitter_language_pack (1.13.3-x86_64-darwin) + sorbet-runtime (~> 0.5) + tree_sitter_language_pack (1.13.3-x86_64-linux) + sorbet-runtime (~> 0.5) tsort (0.2.0) turbo_tests2 (3.2.0) parallel_tests (>= 3.3.0, < 6) @@ -386,7 +382,8 @@ DEPENDENCIES gitmoji-regex (~> 2.0, >= 2.0.0) irb (~> 1.17) kettle-dev (~> 2.0, >= 2.2.25) - kettle-soup-cover (~> 1.0, >= 1.1.3) + kettle-drift! + kettle-soup-cover! kettle-test (~> 2.0, >= 2.0.9) kramdown (~> 2.5, >= 2.5.1) kramdown-parser-gfm (~> 1.1) @@ -406,7 +403,8 @@ DEPENDENCIES standard (>= 1.50) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) - tree_sitter_language_pack! + tree_haver! + tree_sitter_language_pack (~> 1.13, >= 1.13.3) yaml-converter (~> 0.1) yard (~> 0.9, >= 0.9.44) yard-fence (~> 0.9, >= 0.9.1) @@ -424,6 +422,7 @@ CHECKSUMS backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd + bundler (4.0.16) sha256=d6ca5dd440c24f9abce9844cf44cc8e18c6a553de65a47efb4544137af92c47d bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 @@ -433,7 +432,6 @@ CHECKSUMS delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 - docile (1.4.1) sha256=96159be799bfa73cdb721b840e9802126e4e03dfc26863db73647204c727f21e dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -451,9 +449,11 @@ CHECKSUMS irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 kettle-dev (2.3.7) sha256=eb370113cd030d03cbe2d33b31c99858951017e5ad21a17e9ed89dc3770028ee + kettle-drift (1.0.5) kettle-rb (0.1.4) sha256=9cef7ce4f7021666b7222292f29051e51eaf042e8a5db11f3f4dd72f74243fc1 - kettle-soup-cover (1.1.3) sha256=a373827da22a7131d093afd32945e5b7d7a10a01ebfdded8fd2cb8230d69c8ad + kettle-soup-cover (3.0.3) kettle-test (2.0.11) sha256=c710c90f7ab79d51f9452f0c09f5f90657e7a893f63583855c164d0b1b107ab2 + kettle-wash (0.1.0) sha256=5c04b3900d0957339e7c7d9997bbd804599b68bde002e6f47f4e28a0eea22ea7 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 @@ -481,8 +481,6 @@ CHECKSUMS racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 - rake-compiler-dock (1.12.0) sha256=f13205c2738f3d2053afcd03491a9e4541b22a59a0bfc53fc8bc883bd8188023 - rb_sys (0.9.127) sha256=e9f90df3bb0577472d26d96127d5b5774b98f44de881e7d36aeefd28d6337847 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 @@ -515,14 +513,12 @@ CHECKSUMS ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 - simplecov (0.22.0) sha256=fe2622c7834ff23b98066bb0a854284b2729a569ac659f82621fc22ef36213a5 - simplecov-cobertura (3.2.0) sha256=70d702658677fcb20e5aceb6915ccf8bc62ff2ccd38b62b3ad5c9db5c0888740 + simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 + simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 - simplecov-html (0.13.2) sha256=bd0b8e54e7c2d7685927e8d6286466359b6f16b18cb0df47b508e8d73c777246 - simplecov-lcov (0.9.0) sha256=7a77a31e200a595ed4b0249493056efd0c920601f53d2ef135ca34ee796346cd simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc - simplecov_json_formatter (0.1.4) sha256=529418fbe8de1713ac2b2d612aa3daa56d316975d307244399fa4838c601b428 - sorbet-runtime (0.6.13342) sha256=dbeb9892597f593ed2b29e38018912787f6c4e0c4b736d8af0d6bd3c63bde3c3 + simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed + sorbet-runtime (0.6.13347) sha256=54e7221d9f4b63f58aec79f3043752a9ba7810347c6ae0d903531591cc2d5f01 standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b standard-performance (1.9.0) sha256=49483d31be448292951d80e5e67cdcb576c2502103c7b40aec6f1b6e9c88e3f2 @@ -536,11 +532,10 @@ CHECKSUMS timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.4) sha256=33b926958f504525bba3ed511ab66fbcbf8ef30390815e931436b30f27ffcad0 tree_haver (7.1.0) - tree_sitter_language_pack (1.13.2) - tree_sitter_language_pack (1.13.2-aarch64-linux) - tree_sitter_language_pack (1.13.2-arm64-darwin) - tree_sitter_language_pack (1.13.2-x86_64-darwin) - tree_sitter_language_pack (1.13.2-x86_64-linux) + tree_sitter_language_pack (1.13.3-aarch64-linux) sha256=55ffc7c87868cb45658338363d9eba51b4a8b0259aa88e4de368d2bd1d52fea4 + tree_sitter_language_pack (1.13.3-arm64-darwin) sha256=bc2498db605f212a1dbd2465ed3f65190d7da786f6ed5d30fcf958121aeb4a5c + tree_sitter_language_pack (1.13.3-x86_64-darwin) sha256=061f7da6e1cc4ba936fad436ee0653d7dfdfa4aa879cf555403e3aa373d43966 + tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 diff --git a/gems/ast-merge/gemfiles/modular/templating.gemfile b/gems/ast-merge/gemfiles/modular/templating.gemfile index 1ee2a5ea7..2ddc9433f 100644 --- a/gems/ast-merge/gemfiles/modular/templating.gemfile +++ b/gems/ast-merge/gemfiles/modular/templating.gemfile @@ -4,7 +4,9 @@ structuredmerge_remote = ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('fals kettle_remote = ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? if structuredmerge_remote - # Merge recipes and parser dependencies for released installs. + # Parser dependencies for released installs. + gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' + # Merge recipes for released installs. gem 'kettle-jem', '>= 7.0' end diff --git a/gems/ast-merge/gemfiles/modular/templating_local.gemfile b/gems/ast-merge/gemfiles/modular/templating_local.gemfile index 9555b1f38..8270c7815 100644 --- a/gems/ast-merge/gemfiles/modular/templating_local.gemfile +++ b/gems/ast-merge/gemfiles/modular/templating_local.gemfile @@ -7,7 +7,6 @@ require 'nomono/bundler' unless defined?(Nomono) structuredmerge_local_gems = %w[ - tree_sitter_language_pack tree_haver ast-merge ast-merge-git @@ -47,8 +46,6 @@ declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) structuredmerge_local_gems_to_eval = structuredmerge_local_gems - %w[ast-merge] - declared_gems kettle_dev_local_gems_to_eval = kettle_dev_local_gems - %w[ast-merge] - declared_gems -# export VENDORED_GEMS=tree_sitter_language_pack -# export VENDOR_GEM_DIR=/path/to/vendor # expects $VENDOR_GEM_DIR/tree_sitter_language_pack platform :mri do if ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false') != 0 eval_nomono_gems( diff --git a/gems/ast-template/Gemfile b/gems/ast-template/Gemfile index c0026ddf6..fd343a61f 100644 --- a/gems/ast-template/Gemfile +++ b/gems/ast-template/Gemfile @@ -71,8 +71,8 @@ if direct_sibling_gems.any? && end end -# Use the StructuredMerge TSLP fork until the Ruby ABI platform-gem fix is released. -gem 'tree_sitter_language_pack', git: 'https://github.com/structuredmerge/tree-sitter-language-pack.git', branch: 'fix/ruby-4-platform-gem-abi', glob: 'packages/ruby/*.gemspec' +# Use released TSLP with the Ruby ABI platform-gem fix. +gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' # Templating (env-switched: STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local paths) eval_gemfile 'gemfiles/modular/templating.gemfile' if ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? diff --git a/gems/ast-template/Gemfile.lock b/gems/ast-template/Gemfile.lock index 20b8b2e2b..139a3c5ab 100644 --- a/gems/ast-template/Gemfile.lock +++ b/gems/ast-template/Gemfile.lock @@ -1,21 +1,3 @@ -GIT - remote: https://github.com/structuredmerge/tree-sitter-language-pack.git - revision: e736879d00ce55b9bbfa479a5c07363bde1512e2 - branch: fix/ruby-4-platform-gem-abi - glob: packages/ruby/*.gemspec - specs: - tree_sitter_language_pack (1.13.2) - rb_sys (>= 0.9, < 0.9.128) - sorbet-runtime (~> 0.5) - tree_sitter_language_pack (1.13.2-aarch64-linux) - sorbet-runtime (~> 0.5) - tree_sitter_language_pack (1.13.2-arm64-darwin) - sorbet-runtime (~> 0.5) - tree_sitter_language_pack (1.13.2-x86_64-darwin) - sorbet-runtime (~> 0.5) - tree_sitter_language_pack (1.13.2-x86_64-linux) - sorbet-runtime (~> 0.5) - PATH remote: . specs: @@ -334,6 +316,8 @@ GEM parslet (~> 2.0) tree_sitter_language_pack (>= 1.9.0.pre.rc.40, < 2.0) version_gem (~> 1.1, >= 1.1.9) +tree_sitter_language_pack (1.13.3-x86_64-linux) + sorbet-runtime (~> 0.5) tsort (0.2.0) turbo_tests2 (3.2.0) parallel_tests (>= 3.3.0, < 6) @@ -409,7 +393,7 @@ DEPENDENCIES standard (>= 1.50) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) - tree_sitter_language_pack! + tree_sitter_language_pack (~> 1.13, >= 1.13.3) yaml-converter (~> 0.1) yard (~> 0.9, >= 0.9.44) yard-fence (~> 0.9, >= 0.9.1) diff --git a/gems/ast-template/gemfiles/modular/templating.gemfile b/gems/ast-template/gemfiles/modular/templating.gemfile index 1ee2a5ea7..2ddc9433f 100644 --- a/gems/ast-template/gemfiles/modular/templating.gemfile +++ b/gems/ast-template/gemfiles/modular/templating.gemfile @@ -4,7 +4,9 @@ structuredmerge_remote = ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('fals kettle_remote = ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? if structuredmerge_remote - # Merge recipes and parser dependencies for released installs. + # Parser dependencies for released installs. + gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' + # Merge recipes for released installs. gem 'kettle-jem', '>= 7.0' end diff --git a/gems/ast-template/gemfiles/modular/templating_local.gemfile b/gems/ast-template/gemfiles/modular/templating_local.gemfile index d8177e48f..a724adfca 100644 --- a/gems/ast-template/gemfiles/modular/templating_local.gemfile +++ b/gems/ast-template/gemfiles/modular/templating_local.gemfile @@ -7,7 +7,6 @@ require 'nomono/bundler' unless defined?(Nomono) structuredmerge_local_gems = %w[ - tree_sitter_language_pack tree_haver ast-merge ast-merge-git @@ -47,8 +46,6 @@ declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) structuredmerge_local_gems_to_eval = structuredmerge_local_gems - %w[ast-template] - declared_gems kettle_dev_local_gems_to_eval = kettle_dev_local_gems - %w[ast-template] - declared_gems -# export VENDORED_GEMS=tree_sitter_language_pack -# export VENDOR_GEM_DIR=/path/to/vendor # expects $VENDOR_GEM_DIR/tree_sitter_language_pack platform :mri do if ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false') != 0 eval_nomono_gems( diff --git a/gems/bash-merge/Gemfile b/gems/bash-merge/Gemfile index 5ba48239d..1ae73d47b 100644 --- a/gems/bash-merge/Gemfile +++ b/gems/bash-merge/Gemfile @@ -72,8 +72,8 @@ if direct_sibling_gems.any? && end end -# Use the StructuredMerge TSLP fork until the Ruby ABI platform-gem fix is released. -gem 'tree_sitter_language_pack', git: 'https://github.com/structuredmerge/tree-sitter-language-pack.git', branch: 'fix/ruby-4-platform-gem-abi', glob: 'packages/ruby/*.gemspec' +# Use released TSLP with the Ruby ABI platform-gem fix. +gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' # Templating (env-switched: STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local paths) eval_gemfile 'gemfiles/modular/templating.gemfile' if ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? diff --git a/gems/bash-merge/Gemfile.lock b/gems/bash-merge/Gemfile.lock index d0583dae8..e78690c36 100644 --- a/gems/bash-merge/Gemfile.lock +++ b/gems/bash-merge/Gemfile.lock @@ -1,21 +1,3 @@ -GIT - remote: https://github.com/structuredmerge/tree-sitter-language-pack.git - revision: e736879d00ce55b9bbfa479a5c07363bde1512e2 - branch: fix/ruby-4-platform-gem-abi - glob: packages/ruby/*.gemspec - specs: - tree_sitter_language_pack (1.13.2) - rb_sys (>= 0.9, < 0.9.128) - sorbet-runtime (~> 0.5) - tree_sitter_language_pack (1.13.2-aarch64-linux) - sorbet-runtime (~> 0.5) - tree_sitter_language_pack (1.13.2-arm64-darwin) - sorbet-runtime (~> 0.5) - tree_sitter_language_pack (1.13.2-x86_64-darwin) - sorbet-runtime (~> 0.5) - tree_sitter_language_pack (1.13.2-x86_64-linux) - sorbet-runtime (~> 0.5) - PATH remote: . specs: @@ -24,6 +6,41 @@ PATH tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.14) +PATH + remote: /home/pboling/src/my/kettle-dev/kettle-drift + specs: + kettle-drift (1.0.5) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/kettle-dev/kettle-soup-cover + specs: + kettle-soup-cover (3.0.3) + kettle-wash (~> 0.1, >= 0.1.0) + simplecov (>= 1.0) + simplecov-cobertura (>= 4.0) + simplecov-console (~> 0.9, >= 0.9.5) + simplecov-rcov (~> 0.3, >= 0.3.7) + simplecov_lcov_formatter (~> 0.9, >= 0.9.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge + specs: + ast-merge (7.1.0) + benchmark + token-resolver (~> 2.0, >= 2.0.4) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver + specs: + tree_haver (7.1.0) + citrus (~> 3.0) + parslet (~> 2.0) + tree_sitter_language_pack (>= 1.13.2, < 2.0) + version_gem (~> 1.1, >= 1.1.9) + GEM remote: https://gem.coop/ specs: @@ -35,11 +52,6 @@ GEM rake (>= 10) thor (>= 0.14) ast (2.4.3) - ast-merge (7.1.0) - benchmark - token-resolver (~> 2.0, >= 2.0.4) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) backports (3.25.3) benchmark (0.5.0) bigdecimal (4.1.2) @@ -56,7 +68,6 @@ GEM delegate (0.6.1) diff-lcs (1.6.2) diffy (3.4.4) - docile (1.4.1) dry-configurable (1.4.0) dry-core (~> 1.0) zeitwerk (~> 2.6) @@ -112,15 +123,6 @@ GEM kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) kettle-rb (0.1.4) - kettle-soup-cover (1.1.3) - simplecov (~> 0.22) - simplecov-cobertura (~> 3.0) - simplecov-console (~> 0.9, >= 0.9.3) - simplecov-html (~> 0.13, >= 0.13.1) - simplecov-lcov (~> 0.8) - simplecov-rcov (~> 0.3, >= 0.3.7) - simplecov_json_formatter (~> 0.1, >= 0.1.4) - version_gem (~> 1.1, >= 1.1.9) kettle-test (2.0.11) appraisal2 (~> 3.0, >= 3.0.6) backports (~> 3.0) @@ -132,6 +134,8 @@ GEM silent_stream (~> 1.0, >= 1.0.12) timecop-rspec (~> 1.0, >= 1.0.3) turbo_tests2 (~> 3.1, >= 3.1.12) + kettle-wash (0.1.0) + version_gem (~> 1.1, >= 1.1.14) kramdown (2.5.2) rexml (>= 3.4.4) kramdown-parser-gfm (1.1.0) @@ -173,9 +177,6 @@ GEM racc (1.8.1) rainbow (3.1.1) rake (13.4.2) - rake-compiler-dock (1.12.0) - rb_sys (0.9.127) - rake-compiler-dock (= 1.12.0) rbs (4.0.3) logger prism (>= 1.6.0) @@ -281,23 +282,19 @@ GEM silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) - simplecov (0.22.0) - docile (~> 1.1) - simplecov-html (~> 0.11) - simplecov_json_formatter (~> 0.1) - simplecov-cobertura (3.2.0) + simplecov (1.0.2) + simplecov-cobertura (4.0.0) rexml - simplecov (~> 0.19) + simplecov (~> 1.0) simplecov-console (0.9.5) ansi simplecov terminal-table - simplecov-html (0.13.2) - simplecov-lcov (0.9.0) simplecov-rcov (0.3.7) simplecov (>= 0.4.1) - simplecov_json_formatter (0.1.4) - sorbet-runtime (0.6.13342) + simplecov_lcov_formatter (0.9.0) + simplecov (>= 0.18) + sorbet-runtime (0.6.13347) standard (1.56.0) language_server-protocol (~> 3.17.0.2) lint_roller (~> 1.0) @@ -330,11 +327,14 @@ GEM token-resolver (2.0.4) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.13) - tree_haver (7.1.0) - citrus (~> 3.0) - parslet (~> 2.0) - tree_sitter_language_pack (>= 1.9.0.pre.rc.40, < 2.0) - version_gem (~> 1.1, >= 1.1.9) + tree_sitter_language_pack (1.13.3-aarch64-linux) + sorbet-runtime (~> 0.5) + tree_sitter_language_pack (1.13.3-arm64-darwin) + sorbet-runtime (~> 0.5) + tree_sitter_language_pack (1.13.3-x86_64-darwin) + sorbet-runtime (~> 0.5) + tree_sitter_language_pack (1.13.3-x86_64-linux) + sorbet-runtime (~> 0.5) tsort (0.2.0) turbo_tests2 (3.2.0) parallel_tests (>= 3.3.0, < 6) @@ -381,6 +381,7 @@ PLATFORMS DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.2, >= 3.2.0) + ast-merge! bash-merge! benchmark (~> 0.5, >= 0.5.0) bundler-audit (~> 0.9.3) @@ -390,7 +391,8 @@ DEPENDENCIES gitmoji-regex (~> 2.0, >= 2.0.4) irb (~> 1.17) kettle-dev (~> 2.3, >= 2.3.7) - kettle-soup-cover (~> 1.0, >= 1.1.3) + kettle-drift! + kettle-soup-cover! kettle-test (~> 2.0, >= 2.0.11) kramdown (~> 2.5, >= 2.5.1) kramdown-parser-gfm (~> 1.1) @@ -410,7 +412,8 @@ DEPENDENCIES standard (>= 1.50) stone_checksums (~> 1.0, >= 1.0.6, >= 1.0.3) stringio (>= 3.0) - tree_sitter_language_pack! + tree_haver! + tree_sitter_language_pack (~> 1.13, >= 1.13.3) turbo_tests2 (~> 3.2, >= 3.2.0) yaml-converter (~> 0.1) yard (~> 0.9, >= 0.9.44) @@ -430,6 +433,7 @@ CHECKSUMS bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd + bundler (4.0.16) sha256=d6ca5dd440c24f9abce9844cf44cc8e18c6a553de65a47efb4544137af92c47d bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 @@ -439,7 +443,6 @@ CHECKSUMS delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 - docile (1.4.1) sha256=96159be799bfa73cdb721b840e9802126e4e03dfc26863db73647204c727f21e dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -457,9 +460,11 @@ CHECKSUMS irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 kettle-dev (2.3.7) sha256=eb370113cd030d03cbe2d33b31c99858951017e5ad21a17e9ed89dc3770028ee + kettle-drift (1.0.5) kettle-rb (0.1.4) sha256=9cef7ce4f7021666b7222292f29051e51eaf042e8a5db11f3f4dd72f74243fc1 - kettle-soup-cover (1.1.3) sha256=a373827da22a7131d093afd32945e5b7d7a10a01ebfdded8fd2cb8230d69c8ad + kettle-soup-cover (3.0.3) kettle-test (2.0.11) sha256=c710c90f7ab79d51f9452f0c09f5f90657e7a893f63583855c164d0b1b107ab2 + kettle-wash (0.1.0) sha256=5c04b3900d0957339e7c7d9997bbd804599b68bde002e6f47f4e28a0eea22ea7 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 @@ -487,8 +492,6 @@ CHECKSUMS racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 - rake-compiler-dock (1.12.0) sha256=f13205c2738f3d2053afcd03491a9e4541b22a59a0bfc53fc8bc883bd8188023 - rb_sys (0.9.127) sha256=e9f90df3bb0577472d26d96127d5b5774b98f44de881e7d36aeefd28d6337847 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 @@ -521,14 +524,12 @@ CHECKSUMS ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 - simplecov (0.22.0) sha256=fe2622c7834ff23b98066bb0a854284b2729a569ac659f82621fc22ef36213a5 - simplecov-cobertura (3.2.0) sha256=70d702658677fcb20e5aceb6915ccf8bc62ff2ccd38b62b3ad5c9db5c0888740 + simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 + simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 - simplecov-html (0.13.2) sha256=bd0b8e54e7c2d7685927e8d6286466359b6f16b18cb0df47b508e8d73c777246 - simplecov-lcov (0.9.0) sha256=7a77a31e200a595ed4b0249493056efd0c920601f53d2ef135ca34ee796346cd simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc - simplecov_json_formatter (0.1.4) sha256=529418fbe8de1713ac2b2d612aa3daa56d316975d307244399fa4838c601b428 - sorbet-runtime (0.6.13342) sha256=dbeb9892597f593ed2b29e38018912787f6c4e0c4b736d8af0d6bd3c63bde3c3 + simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed + sorbet-runtime (0.6.13347) sha256=54e7221d9f4b63f58aec79f3043752a9ba7810347c6ae0d903531591cc2d5f01 standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b standard-performance (1.9.0) sha256=49483d31be448292951d80e5e67cdcb576c2502103c7b40aec6f1b6e9c88e3f2 @@ -542,11 +543,10 @@ CHECKSUMS timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.4) sha256=33b926958f504525bba3ed511ab66fbcbf8ef30390815e931436b30f27ffcad0 tree_haver (7.1.0) - tree_sitter_language_pack (1.13.2) - tree_sitter_language_pack (1.13.2-aarch64-linux) - tree_sitter_language_pack (1.13.2-arm64-darwin) - tree_sitter_language_pack (1.13.2-x86_64-darwin) - tree_sitter_language_pack (1.13.2-x86_64-linux) + tree_sitter_language_pack (1.13.3-aarch64-linux) sha256=55ffc7c87868cb45658338363d9eba51b4a8b0259aa88e4de368d2bd1d52fea4 + tree_sitter_language_pack (1.13.3-arm64-darwin) sha256=bc2498db605f212a1dbd2465ed3f65190d7da786f6ed5d30fcf958121aeb4a5c + tree_sitter_language_pack (1.13.3-x86_64-darwin) sha256=061f7da6e1cc4ba936fad436ee0653d7dfdfa4aa879cf555403e3aa373d43966 + tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 diff --git a/gems/bash-merge/gemfiles/modular/templating.gemfile b/gems/bash-merge/gemfiles/modular/templating.gemfile index 1ee2a5ea7..2ddc9433f 100644 --- a/gems/bash-merge/gemfiles/modular/templating.gemfile +++ b/gems/bash-merge/gemfiles/modular/templating.gemfile @@ -4,7 +4,9 @@ structuredmerge_remote = ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('fals kettle_remote = ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? if structuredmerge_remote - # Merge recipes and parser dependencies for released installs. + # Parser dependencies for released installs. + gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' + # Merge recipes for released installs. gem 'kettle-jem', '>= 7.0' end diff --git a/gems/bash-merge/gemfiles/modular/templating_local.gemfile b/gems/bash-merge/gemfiles/modular/templating_local.gemfile index d7f4a8594..ba50191c2 100644 --- a/gems/bash-merge/gemfiles/modular/templating_local.gemfile +++ b/gems/bash-merge/gemfiles/modular/templating_local.gemfile @@ -7,7 +7,6 @@ require 'nomono/bundler' unless defined?(Nomono) structuredmerge_local_gems = %w[ - tree_sitter_language_pack tree_haver ast-merge ast-merge-git @@ -47,8 +46,6 @@ declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) structuredmerge_local_gems_to_eval = structuredmerge_local_gems - %w[bash-merge] - declared_gems kettle_dev_local_gems_to_eval = kettle_dev_local_gems - %w[bash-merge] - declared_gems -# export VENDORED_GEMS=tree_sitter_language_pack -# export VENDOR_GEM_DIR=/path/to/vendor # expects $VENDOR_GEM_DIR/tree_sitter_language_pack platform :mri do if ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false') != 0 eval_nomono_gems( diff --git a/gems/binary-merge/Gemfile b/gems/binary-merge/Gemfile index 316fd991e..ddfe8b458 100644 --- a/gems/binary-merge/Gemfile +++ b/gems/binary-merge/Gemfile @@ -71,8 +71,8 @@ if direct_sibling_gems.any? && end end -# Use the StructuredMerge TSLP fork until the Ruby ABI platform-gem fix is released. -gem 'tree_sitter_language_pack', git: 'https://github.com/structuredmerge/tree-sitter-language-pack.git', branch: 'fix/ruby-4-platform-gem-abi', glob: 'packages/ruby/*.gemspec' +# Use released TSLP with the Ruby ABI platform-gem fix. +gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' # Templating (env-switched: STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local paths) eval_gemfile 'gemfiles/modular/templating.gemfile' if ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? diff --git a/gems/binary-merge/Gemfile.lock b/gems/binary-merge/Gemfile.lock index b034f6834..480882032 100644 --- a/gems/binary-merge/Gemfile.lock +++ b/gems/binary-merge/Gemfile.lock @@ -1,21 +1,3 @@ -GIT - remote: https://github.com/structuredmerge/tree-sitter-language-pack.git - revision: e736879d00ce55b9bbfa479a5c07363bde1512e2 - branch: fix/ruby-4-platform-gem-abi - glob: packages/ruby/*.gemspec - specs: - tree_sitter_language_pack (1.13.2) - rb_sys (>= 0.9, < 0.9.128) - sorbet-runtime (~> 0.5) - tree_sitter_language_pack (1.13.2-aarch64-linux) - sorbet-runtime (~> 0.5) - tree_sitter_language_pack (1.13.2-arm64-darwin) - sorbet-runtime (~> 0.5) - tree_sitter_language_pack (1.13.2-x86_64-darwin) - sorbet-runtime (~> 0.5) - tree_sitter_language_pack (1.13.2-x86_64-linux) - sorbet-runtime (~> 0.5) - PATH remote: . specs: @@ -23,6 +5,32 @@ PATH tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) +PATH + remote: /home/pboling/src/my/kettle-dev/kettle-drift + specs: + kettle-drift (1.0.5) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/kettle-dev/kettle-soup-cover + specs: + kettle-soup-cover (3.0.3) + kettle-wash (~> 0.1, >= 0.1.0) + simplecov (>= 1.0) + simplecov-cobertura (>= 4.0) + simplecov-console (~> 0.9, >= 0.9.5) + simplecov-rcov (~> 0.3, >= 0.3.7) + simplecov_lcov_formatter (~> 0.9, >= 0.9.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver + specs: + tree_haver (7.1.0) + citrus (~> 3.0) + parslet (~> 2.0) + tree_sitter_language_pack (>= 1.13.2, < 2.0) + version_gem (~> 1.1, >= 1.1.9) + GEM remote: https://gem.coop/ specs: @@ -50,7 +58,6 @@ GEM delegate (0.6.1) diff-lcs (1.6.2) diffy (3.4.4) - docile (1.4.1) dry-configurable (1.4.0) dry-core (~> 1.0) zeitwerk (~> 2.6) @@ -106,15 +113,6 @@ GEM kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) kettle-rb (0.1.4) - kettle-soup-cover (1.1.3) - simplecov (~> 0.22) - simplecov-cobertura (~> 3.0) - simplecov-console (~> 0.9, >= 0.9.3) - simplecov-html (~> 0.13, >= 0.13.1) - simplecov-lcov (~> 0.8) - simplecov-rcov (~> 0.3, >= 0.3.7) - simplecov_json_formatter (~> 0.1, >= 0.1.4) - version_gem (~> 1.1, >= 1.1.9) kettle-test (2.0.11) appraisal2 (~> 3.0, >= 3.0.6) backports (~> 3.0) @@ -126,6 +124,8 @@ GEM silent_stream (~> 1.0, >= 1.0.12) timecop-rspec (~> 1.0, >= 1.0.3) turbo_tests2 (~> 3.1, >= 3.1.12) + kettle-wash (0.1.0) + version_gem (~> 1.1, >= 1.1.14) kramdown (2.5.2) rexml (>= 3.4.4) kramdown-parser-gfm (1.1.0) @@ -167,9 +167,6 @@ GEM racc (1.8.1) rainbow (3.1.1) rake (13.4.2) - rake-compiler-dock (1.12.0) - rb_sys (0.9.127) - rake-compiler-dock (= 1.12.0) rbs (4.0.3) logger prism (>= 1.6.0) @@ -275,23 +272,19 @@ GEM silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) - simplecov (0.22.0) - docile (~> 1.1) - simplecov-html (~> 0.11) - simplecov_json_formatter (~> 0.1) - simplecov-cobertura (3.2.0) + simplecov (1.0.2) + simplecov-cobertura (4.0.0) rexml - simplecov (~> 0.19) + simplecov (~> 1.0) simplecov-console (0.9.5) ansi simplecov terminal-table - simplecov-html (0.13.2) - simplecov-lcov (0.9.0) simplecov-rcov (0.3.7) simplecov (>= 0.4.1) - simplecov_json_formatter (0.1.4) - sorbet-runtime (0.6.13342) + simplecov_lcov_formatter (0.9.0) + simplecov (>= 0.18) + sorbet-runtime (0.6.13347) standard (1.56.0) language_server-protocol (~> 3.17.0.2) lint_roller (~> 1.0) @@ -321,11 +314,14 @@ GEM delegate (~> 0.1) rspec (~> 3.0) timecop (>= 0.7, < 1) - tree_haver (7.1.0) - citrus (~> 3.0) - parslet (~> 2.0) - tree_sitter_language_pack (>= 1.9.0.pre.rc.40, < 2.0) - version_gem (~> 1.1, >= 1.1.9) + tree_sitter_language_pack (1.13.3-aarch64-linux) + sorbet-runtime (~> 0.5) + tree_sitter_language_pack (1.13.3-arm64-darwin) + sorbet-runtime (~> 0.5) + tree_sitter_language_pack (1.13.3-x86_64-darwin) + sorbet-runtime (~> 0.5) + tree_sitter_language_pack (1.13.3-x86_64-linux) + sorbet-runtime (~> 0.5) tsort (0.2.0) turbo_tests2 (3.2.0) parallel_tests (>= 3.3.0, < 6) @@ -381,7 +377,8 @@ DEPENDENCIES gitmoji-regex (~> 2.0, >= 2.0.0) irb (~> 1.17) kettle-dev (~> 2.0, >= 2.2.25) - kettle-soup-cover (~> 1.0, >= 1.1.3) + kettle-drift! + kettle-soup-cover! kettle-test (~> 2.0, >= 2.0.9) kramdown (~> 2.5, >= 2.5.1) kramdown-parser-gfm (~> 1.1) @@ -401,7 +398,8 @@ DEPENDENCIES standard (>= 1.50) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) - tree_sitter_language_pack! + tree_haver! + tree_sitter_language_pack (~> 1.13, >= 1.13.3) yaml-converter (~> 0.1) yard (~> 0.9, >= 0.9.44) yard-fence (~> 0.9, >= 0.9.1) @@ -419,6 +417,7 @@ CHECKSUMS benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd binary-merge (7.1.0) + bundler (4.0.16) sha256=d6ca5dd440c24f9abce9844cf44cc8e18c6a553de65a47efb4544137af92c47d bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 @@ -428,7 +427,6 @@ CHECKSUMS delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 - docile (1.4.1) sha256=96159be799bfa73cdb721b840e9802126e4e03dfc26863db73647204c727f21e dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -446,9 +444,11 @@ CHECKSUMS irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 kettle-dev (2.3.7) sha256=eb370113cd030d03cbe2d33b31c99858951017e5ad21a17e9ed89dc3770028ee + kettle-drift (1.0.5) kettle-rb (0.1.4) sha256=9cef7ce4f7021666b7222292f29051e51eaf042e8a5db11f3f4dd72f74243fc1 - kettle-soup-cover (1.1.3) sha256=a373827da22a7131d093afd32945e5b7d7a10a01ebfdded8fd2cb8230d69c8ad + kettle-soup-cover (3.0.3) kettle-test (2.0.11) sha256=c710c90f7ab79d51f9452f0c09f5f90657e7a893f63583855c164d0b1b107ab2 + kettle-wash (0.1.0) sha256=5c04b3900d0957339e7c7d9997bbd804599b68bde002e6f47f4e28a0eea22ea7 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 @@ -476,8 +476,6 @@ CHECKSUMS racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 - rake-compiler-dock (1.12.0) sha256=f13205c2738f3d2053afcd03491a9e4541b22a59a0bfc53fc8bc883bd8188023 - rb_sys (0.9.127) sha256=e9f90df3bb0577472d26d96127d5b5774b98f44de881e7d36aeefd28d6337847 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 @@ -510,14 +508,12 @@ CHECKSUMS ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 - simplecov (0.22.0) sha256=fe2622c7834ff23b98066bb0a854284b2729a569ac659f82621fc22ef36213a5 - simplecov-cobertura (3.2.0) sha256=70d702658677fcb20e5aceb6915ccf8bc62ff2ccd38b62b3ad5c9db5c0888740 + simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 + simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 - simplecov-html (0.13.2) sha256=bd0b8e54e7c2d7685927e8d6286466359b6f16b18cb0df47b508e8d73c777246 - simplecov-lcov (0.9.0) sha256=7a77a31e200a595ed4b0249493056efd0c920601f53d2ef135ca34ee796346cd simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc - simplecov_json_formatter (0.1.4) sha256=529418fbe8de1713ac2b2d612aa3daa56d316975d307244399fa4838c601b428 - sorbet-runtime (0.6.13342) sha256=dbeb9892597f593ed2b29e38018912787f6c4e0c4b736d8af0d6bd3c63bde3c3 + simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed + sorbet-runtime (0.6.13347) sha256=54e7221d9f4b63f58aec79f3043752a9ba7810347c6ae0d903531591cc2d5f01 standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b standard-performance (1.9.0) sha256=49483d31be448292951d80e5e67cdcb576c2502103c7b40aec6f1b6e9c88e3f2 @@ -530,11 +526,10 @@ CHECKSUMS timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 tree_haver (7.1.0) - tree_sitter_language_pack (1.13.2) - tree_sitter_language_pack (1.13.2-aarch64-linux) - tree_sitter_language_pack (1.13.2-arm64-darwin) - tree_sitter_language_pack (1.13.2-x86_64-darwin) - tree_sitter_language_pack (1.13.2-x86_64-linux) + tree_sitter_language_pack (1.13.3-aarch64-linux) sha256=55ffc7c87868cb45658338363d9eba51b4a8b0259aa88e4de368d2bd1d52fea4 + tree_sitter_language_pack (1.13.3-arm64-darwin) sha256=bc2498db605f212a1dbd2465ed3f65190d7da786f6ed5d30fcf958121aeb4a5c + tree_sitter_language_pack (1.13.3-x86_64-darwin) sha256=061f7da6e1cc4ba936fad436ee0653d7dfdfa4aa879cf555403e3aa373d43966 + tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 diff --git a/gems/binary-merge/gemfiles/modular/templating.gemfile b/gems/binary-merge/gemfiles/modular/templating.gemfile index 1ee2a5ea7..2ddc9433f 100644 --- a/gems/binary-merge/gemfiles/modular/templating.gemfile +++ b/gems/binary-merge/gemfiles/modular/templating.gemfile @@ -4,7 +4,9 @@ structuredmerge_remote = ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('fals kettle_remote = ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? if structuredmerge_remote - # Merge recipes and parser dependencies for released installs. + # Parser dependencies for released installs. + gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' + # Merge recipes for released installs. gem 'kettle-jem', '>= 7.0' end diff --git a/gems/binary-merge/gemfiles/modular/templating_local.gemfile b/gems/binary-merge/gemfiles/modular/templating_local.gemfile index 49cfa45bc..44e98421b 100644 --- a/gems/binary-merge/gemfiles/modular/templating_local.gemfile +++ b/gems/binary-merge/gemfiles/modular/templating_local.gemfile @@ -7,7 +7,6 @@ require 'nomono/bundler' unless defined?(Nomono) structuredmerge_local_gems = %w[ - tree_sitter_language_pack tree_haver ast-merge ast-merge-git @@ -47,8 +46,6 @@ declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) structuredmerge_local_gems_to_eval = structuredmerge_local_gems - %w[binary-merge] - declared_gems kettle_dev_local_gems_to_eval = kettle_dev_local_gems - %w[binary-merge] - declared_gems -# export VENDORED_GEMS=tree_sitter_language_pack -# export VENDOR_GEM_DIR=/path/to/vendor # expects $VENDOR_GEM_DIR/tree_sitter_language_pack platform :mri do if ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false') != 0 eval_nomono_gems( diff --git a/gems/citrus-toml-merge/Gemfile b/gems/citrus-toml-merge/Gemfile index 01c7e0161..9faef4ddb 100644 --- a/gems/citrus-toml-merge/Gemfile +++ b/gems/citrus-toml-merge/Gemfile @@ -71,8 +71,8 @@ if direct_sibling_gems.any? && end end -# Use the StructuredMerge TSLP fork until the Ruby ABI platform-gem fix is released. -gem 'tree_sitter_language_pack', git: 'https://github.com/structuredmerge/tree-sitter-language-pack.git', branch: 'fix/ruby-4-platform-gem-abi', glob: 'packages/ruby/*.gemspec' +# Use released TSLP with the Ruby ABI platform-gem fix. +gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' # Templating (env-switched: STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local paths) eval_gemfile 'gemfiles/modular/templating.gemfile' if ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? diff --git a/gems/citrus-toml-merge/Gemfile.lock b/gems/citrus-toml-merge/Gemfile.lock index 313c8a568..04d0de5cf 100644 --- a/gems/citrus-toml-merge/Gemfile.lock +++ b/gems/citrus-toml-merge/Gemfile.lock @@ -1,21 +1,3 @@ -GIT - remote: https://github.com/structuredmerge/tree-sitter-language-pack.git - revision: e736879d00ce55b9bbfa479a5c07363bde1512e2 - branch: fix/ruby-4-platform-gem-abi - glob: packages/ruby/*.gemspec - specs: - tree_sitter_language_pack (1.13.2) - rb_sys (>= 0.9, < 0.9.128) - sorbet-runtime (~> 0.5) - tree_sitter_language_pack (1.13.2-aarch64-linux) - sorbet-runtime (~> 0.5) - tree_sitter_language_pack (1.13.2-arm64-darwin) - sorbet-runtime (~> 0.5) - tree_sitter_language_pack (1.13.2-x86_64-darwin) - sorbet-runtime (~> 0.5) - tree_sitter_language_pack (1.13.2-x86_64-linux) - sorbet-runtime (~> 0.5) - PATH remote: . specs: @@ -342,6 +324,8 @@ GEM parslet (~> 2.0) tree_sitter_language_pack (>= 1.9.0.pre.rc.40, < 2.0) version_gem (~> 1.1, >= 1.1.9) +tree_sitter_language_pack (1.13.3-x86_64-linux) + sorbet-runtime (~> 0.5) tsort (0.2.0) turbo_tests2 (3.2.0) parallel_tests (>= 3.3.0, < 6) @@ -417,7 +401,7 @@ DEPENDENCIES standard (>= 1.50) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) - tree_sitter_language_pack! + tree_sitter_language_pack (~> 1.13, >= 1.13.3) yaml-converter (~> 0.1) yard (~> 0.9, >= 0.9.44) yard-fence (~> 0.9, >= 0.9.1) diff --git a/gems/citrus-toml-merge/gemfiles/modular/templating.gemfile b/gems/citrus-toml-merge/gemfiles/modular/templating.gemfile index 1ee2a5ea7..2ddc9433f 100644 --- a/gems/citrus-toml-merge/gemfiles/modular/templating.gemfile +++ b/gems/citrus-toml-merge/gemfiles/modular/templating.gemfile @@ -4,7 +4,9 @@ structuredmerge_remote = ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('fals kettle_remote = ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? if structuredmerge_remote - # Merge recipes and parser dependencies for released installs. + # Parser dependencies for released installs. + gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' + # Merge recipes for released installs. gem 'kettle-jem', '>= 7.0' end diff --git a/gems/citrus-toml-merge/gemfiles/modular/templating_local.gemfile b/gems/citrus-toml-merge/gemfiles/modular/templating_local.gemfile index 9aebd43c2..a5e7c1b5b 100644 --- a/gems/citrus-toml-merge/gemfiles/modular/templating_local.gemfile +++ b/gems/citrus-toml-merge/gemfiles/modular/templating_local.gemfile @@ -7,7 +7,6 @@ require 'nomono/bundler' unless defined?(Nomono) structuredmerge_local_gems = %w[ - tree_sitter_language_pack tree_haver ast-merge ast-merge-git @@ -47,8 +46,6 @@ declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) structuredmerge_local_gems_to_eval = structuredmerge_local_gems - %w[citrus-toml-merge] - declared_gems kettle_dev_local_gems_to_eval = kettle_dev_local_gems - %w[citrus-toml-merge] - declared_gems -# export VENDORED_GEMS=tree_sitter_language_pack -# export VENDOR_GEM_DIR=/path/to/vendor # expects $VENDOR_GEM_DIR/tree_sitter_language_pack platform :mri do if ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false') != 0 eval_nomono_gems( diff --git a/gems/commonmarker-merge/Gemfile b/gems/commonmarker-merge/Gemfile index 16099b573..258475b9e 100644 --- a/gems/commonmarker-merge/Gemfile +++ b/gems/commonmarker-merge/Gemfile @@ -71,8 +71,8 @@ if direct_sibling_gems.any? && end end -# Use the StructuredMerge TSLP fork until the Ruby ABI platform-gem fix is released. -gem 'tree_sitter_language_pack', git: 'https://github.com/structuredmerge/tree-sitter-language-pack.git', branch: 'fix/ruby-4-platform-gem-abi', glob: 'packages/ruby/*.gemspec' +# Use released TSLP with the Ruby ABI platform-gem fix. +gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' # Templating (env-switched: STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local paths) eval_gemfile 'gemfiles/modular/templating.gemfile' if ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? diff --git a/gems/commonmarker-merge/Gemfile.lock b/gems/commonmarker-merge/Gemfile.lock index 12f872a14..2fcd6bef1 100644 --- a/gems/commonmarker-merge/Gemfile.lock +++ b/gems/commonmarker-merge/Gemfile.lock @@ -1,21 +1,3 @@ -GIT - remote: https://github.com/structuredmerge/tree-sitter-language-pack.git - revision: e736879d00ce55b9bbfa479a5c07363bde1512e2 - branch: fix/ruby-4-platform-gem-abi - glob: packages/ruby/*.gemspec - specs: - tree_sitter_language_pack (1.13.2) - rb_sys (>= 0.9, < 0.9.128) - sorbet-runtime (~> 0.5) - tree_sitter_language_pack (1.13.2-aarch64-linux) - sorbet-runtime (~> 0.5) - tree_sitter_language_pack (1.13.2-arm64-darwin) - sorbet-runtime (~> 0.5) - tree_sitter_language_pack (1.13.2-x86_64-darwin) - sorbet-runtime (~> 0.5) - tree_sitter_language_pack (1.13.2-x86_64-linux) - sorbet-runtime (~> 0.5) - PATH remote: . specs: @@ -345,6 +327,8 @@ GEM parslet (~> 2.0) tree_sitter_language_pack (>= 1.9.0.pre.rc.40, < 2.0) version_gem (~> 1.1, >= 1.1.9) +tree_sitter_language_pack (1.13.3-x86_64-linux) + sorbet-runtime (~> 0.5) tsort (0.2.0) turbo_tests2 (3.2.0) parallel_tests (>= 3.3.0, < 6) @@ -420,7 +404,7 @@ DEPENDENCIES standard (>= 1.50) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) - tree_sitter_language_pack! + tree_sitter_language_pack (~> 1.13, >= 1.13.3) yaml-converter (~> 0.1) yard (~> 0.9, >= 0.9.44) yard-fence (~> 0.9, >= 0.9.1) diff --git a/gems/commonmarker-merge/gemfiles/modular/templating.gemfile b/gems/commonmarker-merge/gemfiles/modular/templating.gemfile index 1ee2a5ea7..2ddc9433f 100644 --- a/gems/commonmarker-merge/gemfiles/modular/templating.gemfile +++ b/gems/commonmarker-merge/gemfiles/modular/templating.gemfile @@ -4,7 +4,9 @@ structuredmerge_remote = ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('fals kettle_remote = ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? if structuredmerge_remote - # Merge recipes and parser dependencies for released installs. + # Parser dependencies for released installs. + gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' + # Merge recipes for released installs. gem 'kettle-jem', '>= 7.0' end diff --git a/gems/commonmarker-merge/gemfiles/modular/templating_local.gemfile b/gems/commonmarker-merge/gemfiles/modular/templating_local.gemfile index c55a0adbc..ae9e68e8e 100644 --- a/gems/commonmarker-merge/gemfiles/modular/templating_local.gemfile +++ b/gems/commonmarker-merge/gemfiles/modular/templating_local.gemfile @@ -7,7 +7,6 @@ require 'nomono/bundler' unless defined?(Nomono) structuredmerge_local_gems = %w[ - tree_sitter_language_pack tree_haver ast-merge ast-merge-git @@ -47,8 +46,6 @@ declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) structuredmerge_local_gems_to_eval = structuredmerge_local_gems - %w[commonmarker-merge] - declared_gems kettle_dev_local_gems_to_eval = kettle_dev_local_gems - %w[commonmarker-merge] - declared_gems -# export VENDORED_GEMS=tree_sitter_language_pack -# export VENDOR_GEM_DIR=/path/to/vendor # expects $VENDOR_GEM_DIR/tree_sitter_language_pack platform :mri do if ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false') != 0 eval_nomono_gems( diff --git a/gems/dotenv-merge/Gemfile b/gems/dotenv-merge/Gemfile index b842317b2..ce8f1c741 100644 --- a/gems/dotenv-merge/Gemfile +++ b/gems/dotenv-merge/Gemfile @@ -72,8 +72,8 @@ if direct_sibling_gems.any? && end end -# Use the StructuredMerge TSLP fork until the Ruby ABI platform-gem fix is released. -gem 'tree_sitter_language_pack', git: 'https://github.com/structuredmerge/tree-sitter-language-pack.git', branch: 'fix/ruby-4-platform-gem-abi', glob: 'packages/ruby/*.gemspec' +# Use released TSLP with the Ruby ABI platform-gem fix. +gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' # Templating (env-switched: STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local paths) eval_gemfile 'gemfiles/modular/templating.gemfile' if ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? diff --git a/gems/dotenv-merge/Gemfile.lock b/gems/dotenv-merge/Gemfile.lock index b34b63fb2..8cad754bd 100644 --- a/gems/dotenv-merge/Gemfile.lock +++ b/gems/dotenv-merge/Gemfile.lock @@ -1,21 +1,3 @@ -GIT - remote: https://github.com/structuredmerge/tree-sitter-language-pack.git - revision: e736879d00ce55b9bbfa479a5c07363bde1512e2 - branch: fix/ruby-4-platform-gem-abi - glob: packages/ruby/*.gemspec - specs: - tree_sitter_language_pack (1.13.2) - rb_sys (>= 0.9, < 0.9.128) - sorbet-runtime (~> 0.5) - tree_sitter_language_pack (1.13.2-aarch64-linux) - sorbet-runtime (~> 0.5) - tree_sitter_language_pack (1.13.2-arm64-darwin) - sorbet-runtime (~> 0.5) - tree_sitter_language_pack (1.13.2-x86_64-darwin) - sorbet-runtime (~> 0.5) - tree_sitter_language_pack (1.13.2-x86_64-linux) - sorbet-runtime (~> 0.5) - PATH remote: . specs: @@ -24,6 +6,41 @@ PATH tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.14) +PATH + remote: /home/pboling/src/my/kettle-dev/kettle-drift + specs: + kettle-drift (1.0.5) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/kettle-dev/kettle-soup-cover + specs: + kettle-soup-cover (3.0.3) + kettle-wash (~> 0.1, >= 0.1.0) + simplecov (>= 1.0) + simplecov-cobertura (>= 4.0) + simplecov-console (~> 0.9, >= 0.9.5) + simplecov-rcov (~> 0.3, >= 0.3.7) + simplecov_lcov_formatter (~> 0.9, >= 0.9.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge + specs: + ast-merge (7.1.0) + benchmark + token-resolver (~> 2.0, >= 2.0.4) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver + specs: + tree_haver (7.1.0) + citrus (~> 3.0) + parslet (~> 2.0) + tree_sitter_language_pack (>= 1.13.2, < 2.0) + version_gem (~> 1.1, >= 1.1.9) + GEM remote: https://gem.coop/ specs: @@ -35,11 +52,6 @@ GEM rake (>= 10) thor (>= 0.14) ast (2.4.3) - ast-merge (7.1.0) - benchmark - token-resolver (~> 2.0, >= 2.0.4) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) backports (3.25.3) benchmark (0.5.0) bigdecimal (4.1.2) @@ -56,7 +68,6 @@ GEM delegate (0.6.1) diff-lcs (1.6.2) diffy (3.4.4) - docile (1.4.1) dry-configurable (1.4.0) dry-core (~> 1.0) zeitwerk (~> 2.6) @@ -112,15 +123,6 @@ GEM kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) kettle-rb (0.1.4) - kettle-soup-cover (1.1.3) - simplecov (~> 0.22) - simplecov-cobertura (~> 3.0) - simplecov-console (~> 0.9, >= 0.9.3) - simplecov-html (~> 0.13, >= 0.13.1) - simplecov-lcov (~> 0.8) - simplecov-rcov (~> 0.3, >= 0.3.7) - simplecov_json_formatter (~> 0.1, >= 0.1.4) - version_gem (~> 1.1, >= 1.1.9) kettle-test (2.0.11) appraisal2 (~> 3.0, >= 3.0.6) backports (~> 3.0) @@ -132,6 +134,8 @@ GEM silent_stream (~> 1.0, >= 1.0.12) timecop-rspec (~> 1.0, >= 1.0.3) turbo_tests2 (~> 3.1, >= 3.1.12) + kettle-wash (0.1.0) + version_gem (~> 1.1, >= 1.1.14) kramdown (2.5.2) rexml (>= 3.4.4) kramdown-parser-gfm (1.1.0) @@ -173,9 +177,6 @@ GEM racc (1.8.1) rainbow (3.1.1) rake (13.4.2) - rake-compiler-dock (1.12.0) - rb_sys (0.9.127) - rake-compiler-dock (= 1.12.0) rbs (4.0.3) logger prism (>= 1.6.0) @@ -281,23 +282,19 @@ GEM silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) - simplecov (0.22.0) - docile (~> 1.1) - simplecov-html (~> 0.11) - simplecov_json_formatter (~> 0.1) - simplecov-cobertura (3.2.0) + simplecov (1.0.2) + simplecov-cobertura (4.0.0) rexml - simplecov (~> 0.19) + simplecov (~> 1.0) simplecov-console (0.9.5) ansi simplecov terminal-table - simplecov-html (0.13.2) - simplecov-lcov (0.9.0) simplecov-rcov (0.3.7) simplecov (>= 0.4.1) - simplecov_json_formatter (0.1.4) - sorbet-runtime (0.6.13342) + simplecov_lcov_formatter (0.9.0) + simplecov (>= 0.18) + sorbet-runtime (0.6.13347) standard (1.56.0) language_server-protocol (~> 3.17.0.2) lint_roller (~> 1.0) @@ -330,11 +327,14 @@ GEM token-resolver (2.0.4) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.13) - tree_haver (7.1.0) - citrus (~> 3.0) - parslet (~> 2.0) - tree_sitter_language_pack (>= 1.9.0.pre.rc.40, < 2.0) - version_gem (~> 1.1, >= 1.1.9) + tree_sitter_language_pack (1.13.3-aarch64-linux) + sorbet-runtime (~> 0.5) + tree_sitter_language_pack (1.13.3-arm64-darwin) + sorbet-runtime (~> 0.5) + tree_sitter_language_pack (1.13.3-x86_64-darwin) + sorbet-runtime (~> 0.5) + tree_sitter_language_pack (1.13.3-x86_64-linux) + sorbet-runtime (~> 0.5) tsort (0.2.0) turbo_tests2 (3.2.0) parallel_tests (>= 3.3.0, < 6) @@ -381,6 +381,7 @@ PLATFORMS DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.2, >= 3.2.0) + ast-merge! benchmark (~> 0.5, >= 0.5.0) bundler-audit (~> 0.9.3) debug (>= 1.1) @@ -390,7 +391,8 @@ DEPENDENCIES gitmoji-regex (~> 2.0, >= 2.0.4) irb (~> 1.17) kettle-dev (~> 2.3, >= 2.3.7) - kettle-soup-cover (~> 1.0, >= 1.1.3) + kettle-drift! + kettle-soup-cover! kettle-test (~> 2.0, >= 2.0.11) kramdown (~> 2.5, >= 2.5.1) kramdown-parser-gfm (~> 1.1) @@ -410,7 +412,8 @@ DEPENDENCIES standard (>= 1.50) stone_checksums (~> 1.0, >= 1.0.6, >= 1.0.3) stringio (>= 3.0) - tree_sitter_language_pack! + tree_haver! + tree_sitter_language_pack (~> 1.13, >= 1.13.3) turbo_tests2 (~> 3.2, >= 3.2.0) yaml-converter (~> 0.1) yard (~> 0.9, >= 0.9.44) @@ -429,6 +432,7 @@ CHECKSUMS backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd + bundler (4.0.16) sha256=d6ca5dd440c24f9abce9844cf44cc8e18c6a553de65a47efb4544137af92c47d bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 @@ -438,7 +442,6 @@ CHECKSUMS delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 - docile (1.4.1) sha256=96159be799bfa73cdb721b840e9802126e4e03dfc26863db73647204c727f21e dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 @@ -457,9 +460,11 @@ CHECKSUMS irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 kettle-dev (2.3.7) sha256=eb370113cd030d03cbe2d33b31c99858951017e5ad21a17e9ed89dc3770028ee + kettle-drift (1.0.5) kettle-rb (0.1.4) sha256=9cef7ce4f7021666b7222292f29051e51eaf042e8a5db11f3f4dd72f74243fc1 - kettle-soup-cover (1.1.3) sha256=a373827da22a7131d093afd32945e5b7d7a10a01ebfdded8fd2cb8230d69c8ad + kettle-soup-cover (3.0.3) kettle-test (2.0.11) sha256=c710c90f7ab79d51f9452f0c09f5f90657e7a893f63583855c164d0b1b107ab2 + kettle-wash (0.1.0) sha256=5c04b3900d0957339e7c7d9997bbd804599b68bde002e6f47f4e28a0eea22ea7 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 @@ -487,8 +492,6 @@ CHECKSUMS racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 - rake-compiler-dock (1.12.0) sha256=f13205c2738f3d2053afcd03491a9e4541b22a59a0bfc53fc8bc883bd8188023 - rb_sys (0.9.127) sha256=e9f90df3bb0577472d26d96127d5b5774b98f44de881e7d36aeefd28d6337847 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 @@ -521,14 +524,12 @@ CHECKSUMS ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 - simplecov (0.22.0) sha256=fe2622c7834ff23b98066bb0a854284b2729a569ac659f82621fc22ef36213a5 - simplecov-cobertura (3.2.0) sha256=70d702658677fcb20e5aceb6915ccf8bc62ff2ccd38b62b3ad5c9db5c0888740 + simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 + simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 - simplecov-html (0.13.2) sha256=bd0b8e54e7c2d7685927e8d6286466359b6f16b18cb0df47b508e8d73c777246 - simplecov-lcov (0.9.0) sha256=7a77a31e200a595ed4b0249493056efd0c920601f53d2ef135ca34ee796346cd simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc - simplecov_json_formatter (0.1.4) sha256=529418fbe8de1713ac2b2d612aa3daa56d316975d307244399fa4838c601b428 - sorbet-runtime (0.6.13342) sha256=dbeb9892597f593ed2b29e38018912787f6c4e0c4b736d8af0d6bd3c63bde3c3 + simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed + sorbet-runtime (0.6.13347) sha256=54e7221d9f4b63f58aec79f3043752a9ba7810347c6ae0d903531591cc2d5f01 standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b standard-performance (1.9.0) sha256=49483d31be448292951d80e5e67cdcb576c2502103c7b40aec6f1b6e9c88e3f2 @@ -542,11 +543,10 @@ CHECKSUMS timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.4) sha256=33b926958f504525bba3ed511ab66fbcbf8ef30390815e931436b30f27ffcad0 tree_haver (7.1.0) - tree_sitter_language_pack (1.13.2) - tree_sitter_language_pack (1.13.2-aarch64-linux) - tree_sitter_language_pack (1.13.2-arm64-darwin) - tree_sitter_language_pack (1.13.2-x86_64-darwin) - tree_sitter_language_pack (1.13.2-x86_64-linux) + tree_sitter_language_pack (1.13.3-aarch64-linux) sha256=55ffc7c87868cb45658338363d9eba51b4a8b0259aa88e4de368d2bd1d52fea4 + tree_sitter_language_pack (1.13.3-arm64-darwin) sha256=bc2498db605f212a1dbd2465ed3f65190d7da786f6ed5d30fcf958121aeb4a5c + tree_sitter_language_pack (1.13.3-x86_64-darwin) sha256=061f7da6e1cc4ba936fad436ee0653d7dfdfa4aa879cf555403e3aa373d43966 + tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 diff --git a/gems/dotenv-merge/gemfiles/modular/templating.gemfile b/gems/dotenv-merge/gemfiles/modular/templating.gemfile index 1ee2a5ea7..2ddc9433f 100644 --- a/gems/dotenv-merge/gemfiles/modular/templating.gemfile +++ b/gems/dotenv-merge/gemfiles/modular/templating.gemfile @@ -4,7 +4,9 @@ structuredmerge_remote = ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('fals kettle_remote = ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? if structuredmerge_remote - # Merge recipes and parser dependencies for released installs. + # Parser dependencies for released installs. + gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' + # Merge recipes for released installs. gem 'kettle-jem', '>= 7.0' end diff --git a/gems/dotenv-merge/gemfiles/modular/templating_local.gemfile b/gems/dotenv-merge/gemfiles/modular/templating_local.gemfile index 971d5e069..89b22b5f0 100644 --- a/gems/dotenv-merge/gemfiles/modular/templating_local.gemfile +++ b/gems/dotenv-merge/gemfiles/modular/templating_local.gemfile @@ -7,7 +7,6 @@ require 'nomono/bundler' unless defined?(Nomono) structuredmerge_local_gems = %w[ - tree_sitter_language_pack tree_haver ast-merge ast-merge-git @@ -47,8 +46,6 @@ declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) structuredmerge_local_gems_to_eval = structuredmerge_local_gems - %w[dotenv-merge] - declared_gems kettle_dev_local_gems_to_eval = kettle_dev_local_gems - %w[dotenv-merge] - declared_gems -# export VENDORED_GEMS=tree_sitter_language_pack -# export VENDOR_GEM_DIR=/path/to/vendor # expects $VENDOR_GEM_DIR/tree_sitter_language_pack platform :mri do if ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false') != 0 eval_nomono_gems( diff --git a/gems/go-merge/Gemfile b/gems/go-merge/Gemfile index f0a5a494d..a169cd027 100644 --- a/gems/go-merge/Gemfile +++ b/gems/go-merge/Gemfile @@ -72,8 +72,8 @@ if direct_sibling_gems.any? && end end -# Use the StructuredMerge TSLP fork until the Ruby ABI platform-gem fix is released. -gem 'tree_sitter_language_pack', git: 'https://github.com/structuredmerge/tree-sitter-language-pack.git', branch: 'fix/ruby-4-platform-gem-abi', glob: 'packages/ruby/*.gemspec' +# Use released TSLP with the Ruby ABI platform-gem fix. +gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' # Templating (env-switched: STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local paths) eval_gemfile 'gemfiles/modular/templating.gemfile' if ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? diff --git a/gems/go-merge/Gemfile.lock b/gems/go-merge/Gemfile.lock index cd05260d8..73f67d680 100644 --- a/gems/go-merge/Gemfile.lock +++ b/gems/go-merge/Gemfile.lock @@ -1,21 +1,3 @@ -GIT - remote: https://github.com/structuredmerge/tree-sitter-language-pack.git - revision: e736879d00ce55b9bbfa479a5c07363bde1512e2 - branch: fix/ruby-4-platform-gem-abi - glob: packages/ruby/*.gemspec - specs: - tree_sitter_language_pack (1.13.2) - rb_sys (>= 0.9, < 0.9.128) - sorbet-runtime (~> 0.5) - tree_sitter_language_pack (1.13.2-aarch64-linux) - sorbet-runtime (~> 0.5) - tree_sitter_language_pack (1.13.2-arm64-darwin) - sorbet-runtime (~> 0.5) - tree_sitter_language_pack (1.13.2-x86_64-darwin) - sorbet-runtime (~> 0.5) - tree_sitter_language_pack (1.13.2-x86_64-linux) - sorbet-runtime (~> 0.5) - PATH remote: . specs: @@ -24,6 +6,41 @@ PATH tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) +PATH + remote: /home/pboling/src/my/kettle-dev/kettle-drift + specs: + kettle-drift (1.0.5) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/kettle-dev/kettle-soup-cover + specs: + kettle-soup-cover (3.0.3) + kettle-wash (~> 0.1, >= 0.1.0) + simplecov (>= 1.0) + simplecov-cobertura (>= 4.0) + simplecov-console (~> 0.9, >= 0.9.5) + simplecov-rcov (~> 0.3, >= 0.3.7) + simplecov_lcov_formatter (~> 0.9, >= 0.9.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge + specs: + ast-merge (7.1.0) + benchmark + token-resolver (~> 2.0, >= 2.0.4) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver + specs: + tree_haver (7.1.0) + citrus (~> 3.0) + parslet (~> 2.0) + tree_sitter_language_pack (>= 1.13.2, < 2.0) + version_gem (~> 1.1, >= 1.1.9) + GEM remote: https://gem.coop/ specs: @@ -35,11 +52,6 @@ GEM rake (>= 10) thor (>= 0.14) ast (2.4.3) - ast-merge (7.1.0) - benchmark - token-resolver (~> 2.0, >= 2.0.4) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) backports (3.25.3) benchmark (0.5.0) bigdecimal (4.1.2) @@ -56,7 +68,6 @@ GEM delegate (0.6.1) diff-lcs (1.6.2) diffy (3.4.4) - docile (1.4.1) dry-configurable (1.4.0) dry-core (~> 1.0) zeitwerk (~> 2.6) @@ -112,15 +123,6 @@ GEM kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) kettle-rb (0.1.4) - kettle-soup-cover (1.1.3) - simplecov (~> 0.22) - simplecov-cobertura (~> 3.0) - simplecov-console (~> 0.9, >= 0.9.3) - simplecov-html (~> 0.13, >= 0.13.1) - simplecov-lcov (~> 0.8) - simplecov-rcov (~> 0.3, >= 0.3.7) - simplecov_json_formatter (~> 0.1, >= 0.1.4) - version_gem (~> 1.1, >= 1.1.9) kettle-test (2.0.11) appraisal2 (~> 3.0, >= 3.0.6) backports (~> 3.0) @@ -132,6 +134,8 @@ GEM silent_stream (~> 1.0, >= 1.0.12) timecop-rspec (~> 1.0, >= 1.0.3) turbo_tests2 (~> 3.1, >= 3.1.12) + kettle-wash (0.1.0) + version_gem (~> 1.1, >= 1.1.14) kramdown (2.5.2) rexml (>= 3.4.4) kramdown-parser-gfm (1.1.0) @@ -173,9 +177,6 @@ GEM racc (1.8.1) rainbow (3.1.1) rake (13.4.2) - rake-compiler-dock (1.12.0) - rb_sys (0.9.127) - rake-compiler-dock (= 1.12.0) rbs (4.0.3) logger prism (>= 1.6.0) @@ -281,23 +282,19 @@ GEM silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) - simplecov (0.22.0) - docile (~> 1.1) - simplecov-html (~> 0.11) - simplecov_json_formatter (~> 0.1) - simplecov-cobertura (3.2.0) + simplecov (1.0.2) + simplecov-cobertura (4.0.0) rexml - simplecov (~> 0.19) + simplecov (~> 1.0) simplecov-console (0.9.5) ansi simplecov terminal-table - simplecov-html (0.13.2) - simplecov-lcov (0.9.0) simplecov-rcov (0.3.7) simplecov (>= 0.4.1) - simplecov_json_formatter (0.1.4) - sorbet-runtime (0.6.13342) + simplecov_lcov_formatter (0.9.0) + simplecov (>= 0.18) + sorbet-runtime (0.6.13347) standard (1.56.0) language_server-protocol (~> 3.17.0.2) lint_roller (~> 1.0) @@ -330,11 +327,14 @@ GEM token-resolver (2.0.4) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.13) - tree_haver (7.1.0) - citrus (~> 3.0) - parslet (~> 2.0) - tree_sitter_language_pack (>= 1.9.0.pre.rc.40, < 2.0) - version_gem (~> 1.1, >= 1.1.9) + tree_sitter_language_pack (1.13.3-aarch64-linux) + sorbet-runtime (~> 0.5) + tree_sitter_language_pack (1.13.3-arm64-darwin) + sorbet-runtime (~> 0.5) + tree_sitter_language_pack (1.13.3-x86_64-darwin) + sorbet-runtime (~> 0.5) + tree_sitter_language_pack (1.13.3-x86_64-linux) + sorbet-runtime (~> 0.5) tsort (0.2.0) turbo_tests2 (3.2.0) parallel_tests (>= 3.3.0, < 6) @@ -381,6 +381,7 @@ PLATFORMS DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) + ast-merge! benchmark (~> 0.5, >= 0.5.0) bundler-audit (~> 0.9.3) debug (>= 1.1) @@ -390,7 +391,8 @@ DEPENDENCIES go-merge! irb (~> 1.17) kettle-dev (~> 2.0, >= 2.2.25) - kettle-soup-cover (~> 1.0, >= 1.1.3) + kettle-drift! + kettle-soup-cover! kettle-test (~> 2.0, >= 2.0.9) kramdown (~> 2.5, >= 2.5.1) kramdown-parser-gfm (~> 1.1) @@ -410,7 +412,8 @@ DEPENDENCIES standard (>= 1.50) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) - tree_sitter_language_pack! + tree_haver! + tree_sitter_language_pack (~> 1.13, >= 1.13.3) yaml-converter (~> 0.1) yard (~> 0.9, >= 0.9.44) yard-fence (~> 0.9, >= 0.9.1) @@ -428,6 +431,7 @@ CHECKSUMS backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd + bundler (4.0.16) sha256=d6ca5dd440c24f9abce9844cf44cc8e18c6a553de65a47efb4544137af92c47d bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 @@ -437,7 +441,6 @@ CHECKSUMS delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 - docile (1.4.1) sha256=96159be799bfa73cdb721b840e9802126e4e03dfc26863db73647204c727f21e dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -456,9 +459,11 @@ CHECKSUMS irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 kettle-dev (2.3.7) sha256=eb370113cd030d03cbe2d33b31c99858951017e5ad21a17e9ed89dc3770028ee + kettle-drift (1.0.5) kettle-rb (0.1.4) sha256=9cef7ce4f7021666b7222292f29051e51eaf042e8a5db11f3f4dd72f74243fc1 - kettle-soup-cover (1.1.3) sha256=a373827da22a7131d093afd32945e5b7d7a10a01ebfdded8fd2cb8230d69c8ad + kettle-soup-cover (3.0.3) kettle-test (2.0.11) sha256=c710c90f7ab79d51f9452f0c09f5f90657e7a893f63583855c164d0b1b107ab2 + kettle-wash (0.1.0) sha256=5c04b3900d0957339e7c7d9997bbd804599b68bde002e6f47f4e28a0eea22ea7 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 @@ -486,8 +491,6 @@ CHECKSUMS racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 - rake-compiler-dock (1.12.0) sha256=f13205c2738f3d2053afcd03491a9e4541b22a59a0bfc53fc8bc883bd8188023 - rb_sys (0.9.127) sha256=e9f90df3bb0577472d26d96127d5b5774b98f44de881e7d36aeefd28d6337847 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 @@ -520,14 +523,12 @@ CHECKSUMS ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 - simplecov (0.22.0) sha256=fe2622c7834ff23b98066bb0a854284b2729a569ac659f82621fc22ef36213a5 - simplecov-cobertura (3.2.0) sha256=70d702658677fcb20e5aceb6915ccf8bc62ff2ccd38b62b3ad5c9db5c0888740 + simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 + simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 - simplecov-html (0.13.2) sha256=bd0b8e54e7c2d7685927e8d6286466359b6f16b18cb0df47b508e8d73c777246 - simplecov-lcov (0.9.0) sha256=7a77a31e200a595ed4b0249493056efd0c920601f53d2ef135ca34ee796346cd simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc - simplecov_json_formatter (0.1.4) sha256=529418fbe8de1713ac2b2d612aa3daa56d316975d307244399fa4838c601b428 - sorbet-runtime (0.6.13342) sha256=dbeb9892597f593ed2b29e38018912787f6c4e0c4b736d8af0d6bd3c63bde3c3 + simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed + sorbet-runtime (0.6.13347) sha256=54e7221d9f4b63f58aec79f3043752a9ba7810347c6ae0d903531591cc2d5f01 standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b standard-performance (1.9.0) sha256=49483d31be448292951d80e5e67cdcb576c2502103c7b40aec6f1b6e9c88e3f2 @@ -541,11 +542,10 @@ CHECKSUMS timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.4) sha256=33b926958f504525bba3ed511ab66fbcbf8ef30390815e931436b30f27ffcad0 tree_haver (7.1.0) - tree_sitter_language_pack (1.13.2) - tree_sitter_language_pack (1.13.2-aarch64-linux) - tree_sitter_language_pack (1.13.2-arm64-darwin) - tree_sitter_language_pack (1.13.2-x86_64-darwin) - tree_sitter_language_pack (1.13.2-x86_64-linux) + tree_sitter_language_pack (1.13.3-aarch64-linux) sha256=55ffc7c87868cb45658338363d9eba51b4a8b0259aa88e4de368d2bd1d52fea4 + tree_sitter_language_pack (1.13.3-arm64-darwin) sha256=bc2498db605f212a1dbd2465ed3f65190d7da786f6ed5d30fcf958121aeb4a5c + tree_sitter_language_pack (1.13.3-x86_64-darwin) sha256=061f7da6e1cc4ba936fad436ee0653d7dfdfa4aa879cf555403e3aa373d43966 + tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 diff --git a/gems/go-merge/gemfiles/modular/templating.gemfile b/gems/go-merge/gemfiles/modular/templating.gemfile index 1ee2a5ea7..2ddc9433f 100644 --- a/gems/go-merge/gemfiles/modular/templating.gemfile +++ b/gems/go-merge/gemfiles/modular/templating.gemfile @@ -4,7 +4,9 @@ structuredmerge_remote = ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('fals kettle_remote = ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? if structuredmerge_remote - # Merge recipes and parser dependencies for released installs. + # Parser dependencies for released installs. + gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' + # Merge recipes for released installs. gem 'kettle-jem', '>= 7.0' end diff --git a/gems/go-merge/gemfiles/modular/templating_local.gemfile b/gems/go-merge/gemfiles/modular/templating_local.gemfile index 389f6b5fe..eb14575f9 100644 --- a/gems/go-merge/gemfiles/modular/templating_local.gemfile +++ b/gems/go-merge/gemfiles/modular/templating_local.gemfile @@ -7,7 +7,6 @@ require 'nomono/bundler' unless defined?(Nomono) structuredmerge_local_gems = %w[ - tree_sitter_language_pack tree_haver ast-merge ast-merge-git @@ -47,8 +46,6 @@ declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) structuredmerge_local_gems_to_eval = structuredmerge_local_gems - %w[go-merge] - declared_gems kettle_dev_local_gems_to_eval = kettle_dev_local_gems - %w[go-merge] - declared_gems -# export VENDORED_GEMS=tree_sitter_language_pack -# export VENDOR_GEM_DIR=/path/to/vendor # expects $VENDOR_GEM_DIR/tree_sitter_language_pack platform :mri do if ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false') != 0 eval_nomono_gems( diff --git a/gems/html-merge/Gemfile b/gems/html-merge/Gemfile index a6b14b39d..8e040de54 100644 --- a/gems/html-merge/Gemfile +++ b/gems/html-merge/Gemfile @@ -22,8 +22,8 @@ gemspec nomono_requirements = ["~> 1.0", ">= 1.0.8"] gem "nomono", *nomono_requirements, require: false # ruby >= 2.2 -# Use the StructuredMerge TSLP fork until the Ruby ABI platform-gem fix is released. -gem "tree_sitter_language_pack", git: "https://github.com/structuredmerge/tree-sitter-language-pack.git", branch: "fix/ruby-4-platform-gem-abi", glob: "packages/ruby/*.gemspec" +# Use released TSLP with the Ruby ABI platform-gem fix. +gem "tree_sitter_language_pack", "~> 1.13", ">= 1.13.3" # Templating (env-switched: STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local paths) eval_gemfile "gemfiles/modular/templating.gemfile" if ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? diff --git a/gems/html-merge/Gemfile.lock b/gems/html-merge/Gemfile.lock index 052ad8fbc..4def849ed 100644 --- a/gems/html-merge/Gemfile.lock +++ b/gems/html-merge/Gemfile.lock @@ -1,13 +1,3 @@ -GIT - remote: https://github.com/structuredmerge/tree-sitter-language-pack.git - revision: e736879d00ce55b9bbfa479a5c07363bde1512e2 - branch: fix/ruby-4-platform-gem-abi - glob: packages/ruby/*.gemspec - specs: - tree_sitter_language_pack (1.13.2) - rb_sys (>= 0.9, < 0.9.128) - sorbet-runtime (~> 0.5) - PATH remote: . specs: @@ -296,6 +286,8 @@ GEM parslet (~> 2.0) tree_sitter_language_pack (>= 1.9.0.pre.rc.40, < 2.0) version_gem (~> 1.1, >= 1.1.9) +tree_sitter_language_pack (1.13.3-x86_64-linux) + sorbet-runtime (~> 0.5) tsort (0.2.0) unicode-display_width (3.2.0) unicode-emoji (~> 4.1) @@ -357,7 +349,7 @@ DEPENDENCIES rubocop-ruby3_2 (~> 3.0, >= 3.0.6) standard (~> 1.56, >= 1.56.0) stringio (>= 3.0) - tree_sitter_language_pack! + tree_sitter_language_pack (~> 1.13, >= 1.13.3) webrick (~> 1.9) yaml-converter (~> 0.2, >= 0.2.3) yard (~> 0.9, >= 0.9.45) diff --git a/gems/html-merge/gemfiles/modular/templating.gemfile b/gems/html-merge/gemfiles/modular/templating.gemfile index 4ab3196b7..cf5529f88 100644 --- a/gems/html-merge/gemfiles/modular/templating.gemfile +++ b/gems/html-merge/gemfiles/modular/templating.gemfile @@ -4,7 +4,9 @@ structuredmerge_remote = ENV.fetch("STRUCTUREDMERGE_DEV", "false").casecmp("fals kettle_remote = ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false").zero? if structuredmerge_remote - # Merge recipes and parser dependencies for released installs. + # Parser dependencies for released installs. + gem "tree_sitter_language_pack", "~> 1.13", ">= 1.13.3" + # Merge recipes for released installs. gem "kettle-jem", ">= 7.0" end diff --git a/gems/html-merge/gemfiles/modular/templating_local.gemfile b/gems/html-merge/gemfiles/modular/templating_local.gemfile index e6a361ce5..5239e47d9 100644 --- a/gems/html-merge/gemfiles/modular/templating_local.gemfile +++ b/gems/html-merge/gemfiles/modular/templating_local.gemfile @@ -29,7 +29,6 @@ Kernel.send(:gem, "nomono", *nomono_activation_requirements) require "nomono/bundler" structuredmerge_local_gems = %w[ - tree_sitter_language_pack tree_haver ast-merge ast-merge-git @@ -69,8 +68,6 @@ declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) structuredmerge_local_gems_to_eval = structuredmerge_local_gems - %w[html-merge] - declared_gems kettle_dev_local_gems_to_eval = kettle_dev_local_gems - %w[html-merge] - declared_gems -# export VENDORED_GEMS=tree_sitter_language_pack -# export VENDOR_GEM_DIR=/path/to/vendor # expects $VENDOR_GEM_DIR/tree_sitter_language_pack platform :mri do if ENV.fetch("STRUCTUREDMERGE_DEV", "false").casecmp("false") != 0 eval_nomono_gems( diff --git a/gems/json-merge/Gemfile b/gems/json-merge/Gemfile index 24325e92d..d495355f6 100644 --- a/gems/json-merge/Gemfile +++ b/gems/json-merge/Gemfile @@ -72,8 +72,8 @@ if direct_sibling_gems.any? && end end -# Use the StructuredMerge TSLP fork until the Ruby ABI platform-gem fix is released. -gem 'tree_sitter_language_pack', git: 'https://github.com/structuredmerge/tree-sitter-language-pack.git', branch: 'fix/ruby-4-platform-gem-abi', glob: 'packages/ruby/*.gemspec' +# Use released TSLP with the Ruby ABI platform-gem fix. +gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' # Templating (env-switched: STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local paths) eval_gemfile 'gemfiles/modular/templating.gemfile' if ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? diff --git a/gems/json-merge/Gemfile.lock b/gems/json-merge/Gemfile.lock index dfaf6876b..d32ae4170 100644 --- a/gems/json-merge/Gemfile.lock +++ b/gems/json-merge/Gemfile.lock @@ -1,19 +1,3 @@ -GIT - remote: https://github.com/structuredmerge/tree-sitter-language-pack.git - revision: e736879d00ce55b9bbfa479a5c07363bde1512e2 - branch: fix/ruby-4-platform-gem-abi - glob: packages/ruby/*.gemspec - specs: - tree_sitter_language_pack (1.13.2) - rb_sys (>= 0.9, < 0.9.128) - sorbet-runtime (~> 0.5) - tree_sitter_language_pack (1.13.2-aarch64-linux) - sorbet-runtime (~> 0.5) - tree_sitter_language_pack (1.13.2-arm64-darwin) - sorbet-runtime (~> 0.5) - tree_sitter_language_pack (1.13.2-x86_64-linux) - sorbet-runtime (~> 0.5) - PATH remote: . specs: @@ -22,6 +6,41 @@ PATH tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) +PATH + remote: /home/pboling/src/my/kettle-dev/kettle-drift + specs: + kettle-drift (1.0.5) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/kettle-dev/kettle-soup-cover + specs: + kettle-soup-cover (3.0.3) + kettle-wash (~> 0.1, >= 0.1.0) + simplecov (>= 1.0) + simplecov-cobertura (>= 4.0) + simplecov-console (~> 0.9, >= 0.9.5) + simplecov-rcov (~> 0.3, >= 0.3.7) + simplecov_lcov_formatter (~> 0.9, >= 0.9.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge + specs: + ast-merge (7.1.0) + benchmark + token-resolver (~> 2.0, >= 2.0.4) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver + specs: + tree_haver (7.1.0) + citrus (~> 3.0) + parslet (~> 2.0) + tree_sitter_language_pack (>= 1.13.2, < 2.0) + version_gem (~> 1.1, >= 1.1.9) + GEM remote: https://gem.coop/ specs: @@ -33,11 +52,6 @@ GEM rake (>= 10) thor (>= 0.14) ast (2.4.3) - ast-merge (7.1.0) - benchmark - token-resolver (~> 2.0, >= 2.0.4) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) backports (3.25.3) benchmark (0.5.0) bigdecimal (4.1.2) @@ -54,7 +68,6 @@ GEM delegate (0.6.1) diff-lcs (1.6.2) diffy (3.4.4) - docile (1.4.1) dry-configurable (1.4.0) dry-core (~> 1.0) zeitwerk (~> 2.6) @@ -110,15 +123,6 @@ GEM kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) kettle-rb (0.1.4) - kettle-soup-cover (1.1.3) - simplecov (~> 0.22) - simplecov-cobertura (~> 3.0) - simplecov-console (~> 0.9, >= 0.9.3) - simplecov-html (~> 0.13, >= 0.13.1) - simplecov-lcov (~> 0.8) - simplecov-rcov (~> 0.3, >= 0.3.7) - simplecov_json_formatter (~> 0.1, >= 0.1.4) - version_gem (~> 1.1, >= 1.1.9) kettle-test (2.0.11) appraisal2 (~> 3.0, >= 3.0.6) backports (~> 3.0) @@ -130,6 +134,8 @@ GEM silent_stream (~> 1.0, >= 1.0.12) timecop-rspec (~> 1.0, >= 1.0.3) turbo_tests2 (~> 3.1, >= 3.1.12) + kettle-wash (0.1.0) + version_gem (~> 1.1, >= 1.1.14) kramdown (2.5.2) rexml (>= 3.4.4) kramdown-parser-gfm (1.1.0) @@ -169,9 +175,6 @@ GEM racc (1.8.1) rainbow (3.1.1) rake (13.4.2) - rake-compiler-dock (1.12.0) - rb_sys (0.9.127) - rake-compiler-dock (= 1.12.0) rbs (4.0.3) logger prism (>= 1.6.0) @@ -277,23 +280,19 @@ GEM silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) - simplecov (0.22.0) - docile (~> 1.1) - simplecov-html (~> 0.11) - simplecov_json_formatter (~> 0.1) - simplecov-cobertura (3.2.0) + simplecov (1.0.2) + simplecov-cobertura (4.0.0) rexml - simplecov (~> 0.19) + simplecov (~> 1.0) simplecov-console (0.9.5) ansi simplecov terminal-table - simplecov-html (0.13.2) - simplecov-lcov (0.9.0) simplecov-rcov (0.3.7) simplecov (>= 0.4.1) - simplecov_json_formatter (0.1.4) - sorbet-runtime (0.6.13342) + simplecov_lcov_formatter (0.9.0) + simplecov (>= 0.18) + sorbet-runtime (0.6.13347) standard (1.56.0) language_server-protocol (~> 3.17.0.2) lint_roller (~> 1.0) @@ -326,11 +325,12 @@ GEM token-resolver (2.0.4) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.13) - tree_haver (7.1.0) - citrus (~> 3.0) - parslet (~> 2.0) - tree_sitter_language_pack (>= 1.9.0.pre.rc.40, < 2.0) - version_gem (~> 1.1, >= 1.1.9) + tree_sitter_language_pack (1.13.3-aarch64-linux) + sorbet-runtime (~> 0.5) + tree_sitter_language_pack (1.13.3-arm64-darwin) + sorbet-runtime (~> 0.5) + tree_sitter_language_pack (1.13.3-x86_64-linux) + sorbet-runtime (~> 0.5) tsort (0.2.0) turbo_tests2 (3.2.0) parallel_tests (>= 3.3.0, < 6) @@ -381,6 +381,7 @@ PLATFORMS DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) + ast-merge! benchmark (~> 0.5, >= 0.5.0) bundler-audit (~> 0.9.3) debug (>= 1.1) @@ -390,7 +391,8 @@ DEPENDENCIES irb (~> 1.17) json-merge! kettle-dev (~> 2.0, >= 2.2.25) - kettle-soup-cover (~> 1.0, >= 1.1.3) + kettle-drift! + kettle-soup-cover! kettle-test (~> 2.0, >= 2.0.9) kramdown (~> 2.5, >= 2.5.1) kramdown-parser-gfm (~> 1.1) @@ -410,7 +412,8 @@ DEPENDENCIES standard (>= 1.50) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) - tree_sitter_language_pack! + tree_haver! + tree_sitter_language_pack (~> 1.13, >= 1.13.3) yaml-converter (~> 0.1) yard (~> 0.9, >= 0.9.44) yard-fence (~> 0.9, >= 0.9.1) @@ -428,6 +431,7 @@ CHECKSUMS backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd + bundler (4.0.16) sha256=d6ca5dd440c24f9abce9844cf44cc8e18c6a553de65a47efb4544137af92c47d bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 @@ -437,7 +441,6 @@ CHECKSUMS delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 - docile (1.4.1) sha256=96159be799bfa73cdb721b840e9802126e4e03dfc26863db73647204c727f21e dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -456,9 +459,11 @@ CHECKSUMS json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 json-merge (7.1.0) kettle-dev (2.3.7) sha256=eb370113cd030d03cbe2d33b31c99858951017e5ad21a17e9ed89dc3770028ee + kettle-drift (1.0.5) kettle-rb (0.1.4) sha256=9cef7ce4f7021666b7222292f29051e51eaf042e8a5db11f3f4dd72f74243fc1 - kettle-soup-cover (1.1.3) sha256=a373827da22a7131d093afd32945e5b7d7a10a01ebfdded8fd2cb8230d69c8ad + kettle-soup-cover (3.0.3) kettle-test (2.0.11) sha256=c710c90f7ab79d51f9452f0c09f5f90657e7a893f63583855c164d0b1b107ab2 + kettle-wash (0.1.0) sha256=5c04b3900d0957339e7c7d9997bbd804599b68bde002e6f47f4e28a0eea22ea7 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 @@ -485,8 +490,6 @@ CHECKSUMS racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 - rake-compiler-dock (1.12.0) sha256=f13205c2738f3d2053afcd03491a9e4541b22a59a0bfc53fc8bc883bd8188023 - rb_sys (0.9.127) sha256=e9f90df3bb0577472d26d96127d5b5774b98f44de881e7d36aeefd28d6337847 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 @@ -519,14 +522,12 @@ CHECKSUMS ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 - simplecov (0.22.0) sha256=fe2622c7834ff23b98066bb0a854284b2729a569ac659f82621fc22ef36213a5 - simplecov-cobertura (3.2.0) sha256=70d702658677fcb20e5aceb6915ccf8bc62ff2ccd38b62b3ad5c9db5c0888740 + simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 + simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 - simplecov-html (0.13.2) sha256=bd0b8e54e7c2d7685927e8d6286466359b6f16b18cb0df47b508e8d73c777246 - simplecov-lcov (0.9.0) sha256=7a77a31e200a595ed4b0249493056efd0c920601f53d2ef135ca34ee796346cd simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc - simplecov_json_formatter (0.1.4) sha256=529418fbe8de1713ac2b2d612aa3daa56d316975d307244399fa4838c601b428 - sorbet-runtime (0.6.13342) sha256=dbeb9892597f593ed2b29e38018912787f6c4e0c4b736d8af0d6bd3c63bde3c3 + simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed + sorbet-runtime (0.6.13347) sha256=54e7221d9f4b63f58aec79f3043752a9ba7810347c6ae0d903531591cc2d5f01 standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b standard-performance (1.9.0) sha256=49483d31be448292951d80e5e67cdcb576c2502103c7b40aec6f1b6e9c88e3f2 @@ -540,10 +541,9 @@ CHECKSUMS timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.4) sha256=33b926958f504525bba3ed511ab66fbcbf8ef30390815e931436b30f27ffcad0 tree_haver (7.1.0) - tree_sitter_language_pack (1.13.2) - tree_sitter_language_pack (1.13.2-aarch64-linux) - tree_sitter_language_pack (1.13.2-arm64-darwin) - tree_sitter_language_pack (1.13.2-x86_64-linux) + tree_sitter_language_pack (1.13.3-aarch64-linux) sha256=55ffc7c87868cb45658338363d9eba51b4a8b0259aa88e4de368d2bd1d52fea4 + tree_sitter_language_pack (1.13.3-arm64-darwin) sha256=bc2498db605f212a1dbd2465ed3f65190d7da786f6ed5d30fcf958121aeb4a5c + tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 diff --git a/gems/json-merge/gemfiles/modular/templating.gemfile b/gems/json-merge/gemfiles/modular/templating.gemfile index 1ee2a5ea7..2ddc9433f 100644 --- a/gems/json-merge/gemfiles/modular/templating.gemfile +++ b/gems/json-merge/gemfiles/modular/templating.gemfile @@ -4,7 +4,9 @@ structuredmerge_remote = ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('fals kettle_remote = ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? if structuredmerge_remote - # Merge recipes and parser dependencies for released installs. + # Parser dependencies for released installs. + gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' + # Merge recipes for released installs. gem 'kettle-jem', '>= 7.0' end diff --git a/gems/json-merge/gemfiles/modular/templating_local.gemfile b/gems/json-merge/gemfiles/modular/templating_local.gemfile index e5fb132e6..02662e227 100644 --- a/gems/json-merge/gemfiles/modular/templating_local.gemfile +++ b/gems/json-merge/gemfiles/modular/templating_local.gemfile @@ -7,7 +7,6 @@ require 'nomono/bundler' unless defined?(Nomono) structuredmerge_local_gems = %w[ - tree_sitter_language_pack tree_haver ast-merge ast-merge-git @@ -47,8 +46,6 @@ declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) structuredmerge_local_gems_to_eval = structuredmerge_local_gems - %w[json-merge] - declared_gems kettle_dev_local_gems_to_eval = kettle_dev_local_gems - %w[json-merge] - declared_gems -# export VENDORED_GEMS=tree_sitter_language_pack -# export VENDOR_GEM_DIR=/path/to/vendor # expects $VENDOR_GEM_DIR/tree_sitter_language_pack platform :mri do if ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false') != 0 eval_nomono_gems( diff --git a/gems/kettle-jem/Gemfile b/gems/kettle-jem/Gemfile index 231a4eec3..61271fef5 100644 --- a/gems/kettle-jem/Gemfile +++ b/gems/kettle-jem/Gemfile @@ -92,8 +92,8 @@ if direct_sibling_gems.any? && end end -# Use the StructuredMerge TSLP fork until the Ruby ABI platform-gem fix is released. -gem "tree_sitter_language_pack", git: "https://github.com/structuredmerge/tree-sitter-language-pack.git", branch: "fix/ruby-4-platform-gem-abi", glob: "packages/ruby/*.gemspec" +# Use released TSLP with the Ruby ABI platform-gem fix. +gem "tree_sitter_language_pack", "~> 1.13", ">= 1.13.3" # Templating (env-switched: STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local paths) eval_gemfile "gemfiles/modular/templating.gemfile" if ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? diff --git a/gems/kettle-jem/Gemfile.lock b/gems/kettle-jem/Gemfile.lock index d33bac7ad..2ffa1f6f7 100644 --- a/gems/kettle-jem/Gemfile.lock +++ b/gems/kettle-jem/Gemfile.lock @@ -1,15 +1,3 @@ -GIT - remote: https://github.com/structuredmerge/tree-sitter-language-pack.git - revision: e736879d00ce55b9bbfa479a5c07363bde1512e2 - branch: fix/ruby-4-platform-gem-abi - glob: packages/ruby/*.gemspec - specs: - tree_sitter_language_pack (1.13.2) - rb_sys (>= 0.9, < 0.9.128) - sorbet-runtime (~> 0.5) - tree_sitter_language_pack (1.13.2-x86_64-linux) - sorbet-runtime (~> 0.5) - PATH remote: . specs: @@ -39,43 +27,286 @@ PATH tree_haver (= 7.1.0) yaml-merge (= 7.1.0) -GEM - remote: https://gem.coop/ +PATH + remote: /home/pboling/src/my/kettle-dev/kettle-dev specs: - addressable (2.9.0) - public_suffix (>= 2.0.2, < 8.0) - ansi (1.6.0) - appraisal2 (3.2.0) - bundler (>= 1.17.3) - rake (>= 10) - thor (>= 0.14) - appraisal2-rubocop (1.0.0) - appraisal2 (>= 3.1.4) - rubocop (>= 1.0) + kettle-dev (2.3.7) + emoji_regex (>= 15.0) + kettle-rb (~> 0.1, >= 0.1.2) + kettle-test (~> 2.0, >= 2.0.4) + ruby-progressbar (~> 1.13) + +PATH + remote: /home/pboling/src/my/kettle-dev/kettle-drift + specs: + kettle-drift (1.0.5) version_gem (~> 1.1, >= 1.1.14) - ast (2.4.3) - ast-crispr (7.1.0) - ast-merge (= 7.1.0) - service_actor (~> 3.9) - version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/kettle-dev/kettle-soup-cover + specs: + kettle-soup-cover (3.0.3) + kettle-wash (~> 0.1, >= 0.1.0) + simplecov (>= 1.0) + simplecov-cobertura (>= 4.0) + simplecov-console (~> 0.9, >= 0.9.5) + simplecov-rcov (~> 0.3, >= 0.3.7) + simplecov_lcov_formatter (~> 0.9, >= 0.9.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly + specs: ast-crispr-markdown-markly (7.1.0) ast-crispr (= 7.1.0) markly-merge (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism + specs: ast-crispr-ruby-prism (7.1.0) ast-crispr (= 7.1.0) prism-merge (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr + specs: + ast-crispr (7.1.0) + ast-merge (= 7.1.0) + service_actor (~> 3.9) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git + specs: + ast-merge-git (7.1.0) + ast-merge (= 7.1.0) + json-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge + specs: ast-merge (7.1.0) benchmark token-resolver (~> 2.0, >= 2.0.4) tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) - backports (3.25.3) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template + specs: + ast-template (7.1.0) + ast-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge + specs: bash-merge (7.1.0) ast-merge (= 7.1.0) tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge + specs: + binary-merge (7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge + specs: + citrus-toml-merge (7.1.0) + toml-merge (= 7.1.0) + toml-rb (~> 4.1) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge + specs: + commonmarker-merge (7.1.0) + commonmarker (~> 2.2) + markdown-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge + specs: + dotenv-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge + specs: + go-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge + specs: + json-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge + specs: + kramdown-merge (7.1.0) + kramdown (~> 2.5) + markdown-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge + specs: + markdown-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge + specs: + markly-merge (7.1.0) + markdown-merge (= 7.1.0) + markly (~> 0.9) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge + specs: + parslet-toml-merge (7.1.0) + toml (~> 0.3) + toml-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge + specs: + plain-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge + specs: + prism-merge (7.1.0) + prism (~> 1.6) + ruby-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge + specs: + psych-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + yaml-merge (= 7.1.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge + specs: + rbs-merge (7.1.0) + ast-merge (= 7.1.0) + rbs (>= 3.10) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge + specs: + ruby-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge + specs: + rust-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb + specs: + smorg-rb (7.1.0) + ast-merge (= 7.1.0) + ast-merge-git (= 7.1.0) + go-merge (= 7.1.0) + json-merge (= 7.1.0) + kettle-jem (= 7.1.0) + markly-merge (= 7.1.0) + plain-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge + specs: + toml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver + specs: + tree_haver (7.1.0) + citrus (~> 3.0) + parslet (~> 2.0) + tree_sitter_language_pack (>= 1.13.2, < 2.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge + specs: + typescript-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge + specs: + yaml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge + specs: + zip-merge (7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +GEM + remote: https://gem.coop/ + specs: + addressable (2.9.0) + public_suffix (>= 2.0.2, < 8.0) + ansi (1.6.0) + appraisal2 (3.2.0) + bundler (>= 1.17.3) + rake (>= 10) + thor (>= 0.14) + appraisal2-rubocop (1.0.0) + appraisal2 (>= 3.1.4) + rubocop (>= 1.0) + version_gem (~> 1.1, >= 1.1.14) + ast (2.4.3) + backports (3.25.3) benchmark (0.5.0) bigdecimal (4.1.2) bundler-audit (0.9.3) @@ -83,16 +314,8 @@ GEM thor (~> 1.0) cgi (0.5.2) citrus (3.0.2) - citrus-toml-merge (7.1.0) - toml-merge (= 7.1.0) - toml-rb (~> 4.1) - version_gem (~> 1.1, >= 1.1.9) cmdparse (3.0.7) commonmarker (2.9.0-x86_64-linux) - commonmarker-merge (7.1.0) - commonmarker (~> 2.2) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) concurrent-ruby (1.3.8) date (3.5.1) debug (1.11.1) @@ -101,10 +324,6 @@ GEM delegate (0.6.1) diff-lcs (1.6.2) diffy (3.4.4) - dotenv-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) dry-configurable (1.4.0) dry-core (~> 1.0) zeitwerk (~> 2.6) @@ -154,23 +373,7 @@ GEM rdoc (>= 4.0.0) reline (>= 0.4.2) json (2.21.1) - json-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - kettle-dev (2.3.7) - emoji_regex (>= 15.0) - kettle-rb (~> 0.1, >= 0.1.2) - kettle-test (~> 2.0, >= 2.0.4) - ruby-progressbar (~> 1.13) kettle-rb (0.1.4) - kettle-soup-cover (3.0.3) - kettle-wash (~> 0.1, >= 0.1.0) - simplecov (>= 1.0) - simplecov-cobertura (>= 4.0) - simplecov-console (~> 0.9, >= 0.9.5) - simplecov-rcov (~> 0.3, >= 0.3.7) - simplecov_lcov_formatter (~> 0.9, >= 0.9.0) kettle-test (2.0.11) appraisal2 (~> 3.0, >= 3.0.6) backports (~> 3.0) @@ -186,24 +389,12 @@ GEM version_gem (~> 1.1, >= 1.1.14) kramdown (2.5.2) rexml (>= 3.4.4) - kramdown-merge (7.1.0) - kramdown (~> 2.5) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) kramdown-parser-gfm (1.1.0) kramdown (~> 2.0) language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) - markdown-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) markly (0.16.0) - markly-merge (7.1.0) - markdown-merge (= 7.1.0) - markly (~> 0.9) - version_gem (~> 1.1, >= 1.1.9) mutex_m (0.3.0) nokogiri (1.19.4-x86_64-linux-gnu) racc (~> 1.4) @@ -221,34 +412,17 @@ GEM prettyprint prettyprint (0.2.0) prism (1.9.0) - prism-merge (7.1.0) - prism (~> 1.6) - ruby-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) psych (5.4.0) date stringio - psych-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - yaml-merge (= 7.1.0) public_suffix (7.0.5) racc (1.8.1) rainbow (3.1.1) rake (13.4.2) - rake-compiler-dock (1.12.0) - rb_sys (0.9.127) - rake-compiler-dock (= 1.12.0) rbs (4.0.3) logger prism (>= 1.6.0) tsort - rbs-merge (7.1.0) - ast-merge (= 7.1.0) - rbs (>= 3.10) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) rdoc (6.17.0) erb psych (>= 4.0.0) @@ -372,10 +546,6 @@ GEM lint_roller (~> 1.1) rubocop (~> 1.72, >= 1.72.1) rubocop-ast (>= 1.44.0, < 2.0) - ruby-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) ruby-progressbar (1.13.0) ruby_engine (2.0.3) ruby_version (1.0.3) @@ -435,18 +605,13 @@ GEM token-resolver (2.0.4) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.13) - toml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) + toml (0.3.0) + parslet (>= 1.8.0, < 3.0.0) toml-rb (4.2.0) citrus (~> 3.0, > 3.0) racc (~> 1.7) - tree_haver (7.1.0) - citrus (~> 3.0) - parslet (~> 2.0) - tree_sitter_language_pack (>= 1.9.0.pre.rc.40, < 2.0) - version_gem (~> 1.1, >= 1.1.9) + tree_sitter_language_pack (1.13.3-x86_64-linux) + sorbet-runtime (~> 0.5) tsort (0.2.0) turbo_tests2 (3.2.0) parallel_tests (>= 3.3.0, < 6) @@ -462,10 +627,6 @@ GEM kramdown (>= 2.4, < 3) kramdown-parser-gfm (~> 1.1) version_gem (~> 1.1, >= 1.1.13) - yaml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) yard (0.9.45) yard-fence (0.9.6) rdoc (>= 6.11, < 8) @@ -492,22 +653,45 @@ PLATFORMS DEPENDENCIES appraisal2 (~> 3.2, >= 3.2.0) appraisal2-rubocop (~> 1.0, >= 1.0.0) + ast-crispr! + ast-crispr-markdown-markly! + ast-crispr-ruby-prism! + ast-merge! + ast-merge-git! + ast-template! + bash-merge! benchmark (~> 0.5, >= 0.5.0) + binary-merge! bundler-audit (~> 0.9.3) cgi (~> 0.5) + citrus-toml-merge! + commonmarker-merge! debug (>= 1.1) + dotenv-merge! erb (~> 6.0, >= 6.0.5) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.4) + go-merge! irb (~> 1.17) + json-merge! + kettle-dev! + kettle-drift! kettle-jem! - kettle-soup-cover (~> 3.0, >= 3.0.3) + kettle-soup-cover! kettle-test (~> 2.0, >= 2.0.11) kramdown (~> 2.5, >= 2.5.2) + kramdown-merge! kramdown-parser-gfm (~> 1.1) + markdown-merge! + markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) + parslet-toml-merge! + plain-merge! + prism-merge! + psych-merge! rake (~> 13.0) + rbs-merge! rdoc (~> 6.11) reek (~> 6.5, >= 6.5.0) require_bench (~> 1.0, >= 1.0.4) @@ -518,20 +702,28 @@ DEPENDENCIES rubocop-on-rbs (~> 2.0, >= 2.0.0) rubocop-packaging (~> 0.6, >= 0.6.0) rubocop-ruby3_2 (~> 3.0, >= 3.0.6) + ruby-merge! ruby-progressbar (~> 1.13) + rust-merge! + smorg-rb! standard (~> 1.56, >= 1.56.0) stone_checksums (~> 1.0, >= 1.0.6) stringio (>= 3.0) - tree_sitter_language_pack! + toml-merge! + tree_haver! + tree_sitter_language_pack (~> 1.13, >= 1.13.3) turbo_tests2 (~> 3.2, >= 3.2.0) + typescript-merge! webrick (~> 1.9) yaml-converter (~> 0.2, >= 0.2.3) + yaml-merge! yard (~> 0.9, >= 0.9.45) yard-fence (~> 0.9, >= 0.9.6) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) yard-timekeeper (~> 0.2, >= 0.2.4) yard-yaml (~> 0.2, >= 0.2.3) + zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af @@ -543,10 +735,14 @@ CHECKSUMS ast-crispr-markdown-markly (7.1.0) ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) + ast-merge-git (7.1.0) + ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd + binary-merge (7.1.0) + bundler (4.0.16) sha256=d6ca5dd440c24f9abce9844cf44cc8e18c6a553de65a47efb4544137af92c47d bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 @@ -573,15 +769,17 @@ CHECKSUMS gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f + go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 json-merge (7.1.0) - kettle-dev (2.3.7) sha256=eb370113cd030d03cbe2d33b31c99858951017e5ad21a17e9ed89dc3770028ee + kettle-dev (2.3.7) + kettle-drift (1.0.5) kettle-jem (7.1.0) kettle-rb (0.1.4) sha256=9cef7ce4f7021666b7222292f29051e51eaf042e8a5db11f3f4dd72f74243fc1 - kettle-soup-cover (3.0.3) sha256=5919649be35690e4580299a41ac7c44a9548a7ca38561ffdd3c683c9d63e6f9b + kettle-soup-cover (3.0.3) kettle-test (2.0.11) sha256=c710c90f7ab79d51f9452f0c09f5f90657e7a893f63583855c164d0b1b107ab2 kettle-wash (0.1.0) sha256=5c04b3900d0957339e7c7d9997bbd804599b68bde002e6f47f4e28a0eea22ea7 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa @@ -602,6 +800,8 @@ CHECKSUMS parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 + parslet-toml-merge (7.1.0) + plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 @@ -612,8 +812,6 @@ CHECKSUMS racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 - rake-compiler-dock (1.12.0) sha256=f13205c2738f3d2053afcd03491a9e4541b22a59a0bfc53fc8bc883bd8188023 - rb_sys (0.9.127) sha256=e9f90df3bb0577472d26d96127d5b5774b98f44de881e7d36aeefd28d6337847 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 @@ -654,6 +852,7 @@ CHECKSUMS ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 + rust-merge (7.1.0) service_actor (3.9.4) sha256=e63b523630b9a7e62959b2a90113b08d2565b5de9c148557b281ef847c9539ce silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 @@ -661,6 +860,7 @@ CHECKSUMS simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed + smorg-rb (7.1.0) sorbet-runtime (0.6.13344) sha256=0b4e3310cd10bc814f0d7cfa65db82151103322e75dd63c961546845dd8ba5e5 standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b @@ -675,13 +875,14 @@ CHECKSUMS timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.4) sha256=33b926958f504525bba3ed511ab66fbcbf8ef30390815e931436b30f27ffcad0 + toml (0.3.0) sha256=0a91d0f76a9036e84e44f95693b12f58d358c1df3ac8e3b5271f2056ecc6e4b9 toml-merge (7.1.0) toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 tree_haver (7.1.0) - tree_sitter_language_pack (1.13.2) - tree_sitter_language_pack (1.13.2-x86_64-linux) + tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 + typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 @@ -695,6 +896,7 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 + zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH diff --git a/gems/kettle-jem/benchmarks/README.md b/gems/kettle-jem/benchmarks/README.md index 8133d14fb..6fe2165cb 100644 --- a/gems/kettle-jem/benchmarks/README.md +++ b/gems/kettle-jem/benchmarks/README.md @@ -141,8 +141,7 @@ with `BUNDLE_GEMFILE` pinned to this checkout's `Gemfile`, so local sibling StructuredMerge APIs are used while destination setup commands still sanitize Bundler activation and select the copied fixture's own Gemfile. The development bundle resolves `tree_sitter_language_pack` from -`structuredmerge/tree-sitter-language-pack` branch -`fix/ruby-4-platform-gem-abi` until the Ruby ABI platform-gem fix is released. +released `tree_sitter_language_pack` gem with the Ruby ABI platform-gem fix. Run `bundle install` with the same `K_JEM_TEMPLATING`, `STRUCTUREDMERGE_DEV`, `VENDORED_GEMS`, and `VENDOR_GEM_DIR` values shown above before invoking the benchmark; otherwise Bundler can fail with "The git source ... is not yet diff --git a/gems/kettle-jem/gemfiles/modular/templating.gemfile b/gems/kettle-jem/gemfiles/modular/templating.gemfile index 53de88ee5..d1ee9bac6 100644 --- a/gems/kettle-jem/gemfiles/modular/templating.gemfile +++ b/gems/kettle-jem/gemfiles/modular/templating.gemfile @@ -4,6 +4,8 @@ structuredmerge_remote = ENV.fetch("STRUCTUREDMERGE_DEV", "false").casecmp("fals kettle_remote = ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false").zero? if structuredmerge_remote + # Parser dependencies for released installs. + gem "tree_sitter_language_pack", "~> 1.13", ">= 1.13.3" end if kettle_remote diff --git a/gems/kettle-jem/gemfiles/modular/templating_local.gemfile b/gems/kettle-jem/gemfiles/modular/templating_local.gemfile index 47493e0d1..dcf709da4 100644 --- a/gems/kettle-jem/gemfiles/modular/templating_local.gemfile +++ b/gems/kettle-jem/gemfiles/modular/templating_local.gemfile @@ -29,7 +29,6 @@ Kernel.send(:gem, "nomono", *nomono_activation_requirements) require "nomono/bundler" structuredmerge_local_gems = %w[ - tree_sitter_language_pack tree_haver ast-merge ast-merge-git @@ -69,8 +68,6 @@ declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) structuredmerge_local_gems_to_eval = structuredmerge_local_gems - %w[kettle-jem] - declared_gems kettle_dev_local_gems_to_eval = kettle_dev_local_gems - %w[kettle-jem] - declared_gems -# export VENDORED_GEMS=tree_sitter_language_pack -# export VENDOR_GEM_DIR=/path/to/vendor # expects $VENDOR_GEM_DIR/tree_sitter_language_pack platform :mri do if ENV.fetch("STRUCTUREDMERGE_DEV", "false").casecmp("false") != 0 eval_nomono_gems( diff --git a/gems/kettle-jem/lib/kettle/jem/templates/CHANGELOG.transfer.md b/gems/kettle-jem/lib/kettle/jem/templates/CHANGELOG.transfer.md index 0e9926608..5b8be11bd 100644 --- a/gems/kettle-jem/lib/kettle/jem/templates/CHANGELOG.transfer.md +++ b/gems/kettle-jem/lib/kettle/jem/templates/CHANGELOG.transfer.md @@ -7,8 +7,7 @@ - kettle-jem-template-20260720-001 - Generated READMEs can now render template-managed corporate sponsor logos from project or family config. - kettle-jem-template-20260720-002 - Generated development Gemfiles now use the - released `tree_sitter_language_pack` gem by default while preserving - templating-time local/vendored overrides. + released `tree_sitter_language_pack` gem 1.13.3 or newer by default. - kettle-jem-template-20260720-003 - Generated StructuredMerge Git diff driver config now uses the installed `smorg-rb` Ruby driver name. - kettle-jem-template-20260720-004 - Generated multi-engine workflow files now diff --git a/gems/kettle-jem/lib/kettle/jem/templates/Gemfile.example b/gems/kettle-jem/lib/kettle/jem/templates/Gemfile.example index 3a9b35a1b..c63e7a304 100644 --- a/gems/kettle-jem/lib/kettle/jem/templates/Gemfile.example +++ b/gems/kettle-jem/lib/kettle/jem/templates/Gemfile.example @@ -22,8 +22,8 @@ gemspec {KJ|MAIN_GEMFILE_DIRECT_SIBLING_BLOCK} -# Use the StructuredMerge TSLP fork until the Ruby ABI platform-gem fix is released. -gem "tree_sitter_language_pack", git: "https://github.com/structuredmerge/tree-sitter-language-pack.git", branch: "fix/ruby-4-platform-gem-abi", glob: "packages/ruby/*.gemspec" +# Use released TSLP with the Ruby ABI platform-gem fix. +gem "tree_sitter_language_pack", "~> 1.13", ">= 1.13.3" # Templating (env-switched: STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local paths) eval_gemfile "gemfiles/modular/templating.gemfile" if ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? diff --git a/gems/kettle-jem/lib/kettle/jem/templates/gemfiles/modular/templating.gemfile.example b/gems/kettle-jem/lib/kettle/jem/templates/gemfiles/modular/templating.gemfile.example index 4ab3196b7..cf5529f88 100644 --- a/gems/kettle-jem/lib/kettle/jem/templates/gemfiles/modular/templating.gemfile.example +++ b/gems/kettle-jem/lib/kettle/jem/templates/gemfiles/modular/templating.gemfile.example @@ -4,7 +4,9 @@ structuredmerge_remote = ENV.fetch("STRUCTUREDMERGE_DEV", "false").casecmp("fals kettle_remote = ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false").zero? if structuredmerge_remote - # Merge recipes and parser dependencies for released installs. + # Parser dependencies for released installs. + gem "tree_sitter_language_pack", "~> 1.13", ">= 1.13.3" + # Merge recipes for released installs. gem "kettle-jem", ">= 7.0" end diff --git a/gems/kettle-jem/lib/kettle/jem/templates/gemfiles/modular/templating_local.gemfile.example b/gems/kettle-jem/lib/kettle/jem/templates/gemfiles/modular/templating_local.gemfile.example index a54c64f74..88ba06ed0 100644 --- a/gems/kettle-jem/lib/kettle/jem/templates/gemfiles/modular/templating_local.gemfile.example +++ b/gems/kettle-jem/lib/kettle/jem/templates/gemfiles/modular/templating_local.gemfile.example @@ -29,7 +29,6 @@ Kernel.send(:gem, "nomono", *nomono_activation_requirements) require "nomono/bundler" structuredmerge_local_gems = %w[ - tree_sitter_language_pack tree_haver ast-merge ast-merge-git @@ -69,8 +68,6 @@ declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) structuredmerge_local_gems_to_eval = structuredmerge_local_gems - %w[{KJ|PACKAGE_NAME}] - declared_gems kettle_dev_local_gems_to_eval = kettle_dev_local_gems - %w[{KJ|PACKAGE_NAME}] - declared_gems -# export VENDORED_GEMS=tree_sitter_language_pack -# export VENDOR_GEM_DIR=/path/to/vendor # expects $VENDOR_GEM_DIR/tree_sitter_language_pack platform :mri do if ENV.fetch("STRUCTUREDMERGE_DEV", "false").casecmp("false") != 0 eval_nomono_gems( diff --git a/gems/kettle-jem/spec/integration/appraisals_and_gemfile_template_spec.rb b/gems/kettle-jem/spec/integration/appraisals_and_gemfile_template_spec.rb index ee18f495e..ced361080 100644 --- a/gems/kettle-jem/spec/integration/appraisals_and_gemfile_template_spec.rb +++ b/gems/kettle-jem/spec/integration/appraisals_and_gemfile_template_spec.rb @@ -967,7 +967,6 @@ # frozen_string_literal: true local_gems = %w[ - tree_sitter_language_pack tree_haver ast-merge rubocop-ruby2_4 @@ -988,7 +987,7 @@ expect(content).to include("local-only") expect(content).not_to include("rubocop-ruby2_3") expect(content).to include("kettle-jem") - expect(content).to include("tree_sitter_language_pack") + expect(content).not_to include("tree_sitter_language_pack") expect(File.read(File.join(root, "gemfiles/modular/templating_local.gemfile"))).to eq(content) end end diff --git a/gems/kettle-jem/spec/integration/config_metadata_template_spec.rb b/gems/kettle-jem/spec/integration/config_metadata_template_spec.rb index 6039fdd77..856f21bd3 100644 --- a/gems/kettle-jem/spec/integration/config_metadata_template_spec.rb +++ b/gems/kettle-jem/spec/integration/config_metadata_template_spec.rb @@ -2108,9 +2108,9 @@ def register_kettle_jem_plugin(registrar) expect(direct_block).to include('prefix: "RUBYTHEMS"') expect(direct_block).to include('path_env: "RUBYTHEMS_DEV"') expect(direct_block).to include('root: ["src", "my", "rubythems"]') - expect(gemfile).to include("Use the StructuredMerge TSLP fork until the Ruby ABI platform-gem fix is released") + expect(gemfile).to include("Use released TSLP with the Ruby ABI platform-gem fix") expect(gemfile).to include( - 'gem "tree_sitter_language_pack", git: "https://github.com/structuredmerge/tree-sitter-language-pack.git", branch: "fix/ruby-4-platform-gem-abi", glob: "packages/ruby/*.gemspec"' + 'gem "tree_sitter_language_pack", "~> 1.13", ">= 1.13.3"' ) expect(gemfile).not_to include('branch: "fix/ruby-parser-api-methods"') expect(File.read(File.join(root, "Gemfile"))).to eq(gemfile) diff --git a/gems/kramdown-merge/Gemfile b/gems/kramdown-merge/Gemfile index ca38ef9c5..713cbb6ea 100644 --- a/gems/kramdown-merge/Gemfile +++ b/gems/kramdown-merge/Gemfile @@ -71,8 +71,8 @@ if direct_sibling_gems.any? && end end -# Use the StructuredMerge TSLP fork until the Ruby ABI platform-gem fix is released. -gem 'tree_sitter_language_pack', git: 'https://github.com/structuredmerge/tree-sitter-language-pack.git', branch: 'fix/ruby-4-platform-gem-abi', glob: 'packages/ruby/*.gemspec' +# Use released TSLP with the Ruby ABI platform-gem fix. +gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' # Templating (env-switched: STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local paths) eval_gemfile 'gemfiles/modular/templating.gemfile' if ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? diff --git a/gems/kramdown-merge/Gemfile.lock b/gems/kramdown-merge/Gemfile.lock index 4eb23faca..e9fdb09e3 100644 --- a/gems/kramdown-merge/Gemfile.lock +++ b/gems/kramdown-merge/Gemfile.lock @@ -1,21 +1,3 @@ -GIT - remote: https://github.com/structuredmerge/tree-sitter-language-pack.git - revision: e736879d00ce55b9bbfa479a5c07363bde1512e2 - branch: fix/ruby-4-platform-gem-abi - glob: packages/ruby/*.gemspec - specs: - tree_sitter_language_pack (1.13.2) - rb_sys (>= 0.9, < 0.9.128) - sorbet-runtime (~> 0.5) - tree_sitter_language_pack (1.13.2-aarch64-linux) - sorbet-runtime (~> 0.5) - tree_sitter_language_pack (1.13.2-arm64-darwin) - sorbet-runtime (~> 0.5) - tree_sitter_language_pack (1.13.2-x86_64-darwin) - sorbet-runtime (~> 0.5) - tree_sitter_language_pack (1.13.2-x86_64-linux) - sorbet-runtime (~> 0.5) - PATH remote: . specs: @@ -339,6 +321,8 @@ GEM parslet (~> 2.0) tree_sitter_language_pack (>= 1.9.0.pre.rc.40, < 2.0) version_gem (~> 1.1, >= 1.1.9) +tree_sitter_language_pack (1.13.3-x86_64-linux) + sorbet-runtime (~> 0.5) tsort (0.2.0) turbo_tests2 (3.2.0) parallel_tests (>= 3.3.0, < 6) @@ -414,7 +398,7 @@ DEPENDENCIES standard (>= 1.50) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) - tree_sitter_language_pack! + tree_sitter_language_pack (~> 1.13, >= 1.13.3) yaml-converter (~> 0.1) yard (~> 0.9, >= 0.9.44) yard-fence (~> 0.9, >= 0.9.1) diff --git a/gems/kramdown-merge/gemfiles/modular/templating.gemfile b/gems/kramdown-merge/gemfiles/modular/templating.gemfile index 1ee2a5ea7..2ddc9433f 100644 --- a/gems/kramdown-merge/gemfiles/modular/templating.gemfile +++ b/gems/kramdown-merge/gemfiles/modular/templating.gemfile @@ -4,7 +4,9 @@ structuredmerge_remote = ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('fals kettle_remote = ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? if structuredmerge_remote - # Merge recipes and parser dependencies for released installs. + # Parser dependencies for released installs. + gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' + # Merge recipes for released installs. gem 'kettle-jem', '>= 7.0' end diff --git a/gems/kramdown-merge/gemfiles/modular/templating_local.gemfile b/gems/kramdown-merge/gemfiles/modular/templating_local.gemfile index 9e641f55f..2aa60939f 100644 --- a/gems/kramdown-merge/gemfiles/modular/templating_local.gemfile +++ b/gems/kramdown-merge/gemfiles/modular/templating_local.gemfile @@ -7,7 +7,6 @@ require 'nomono/bundler' unless defined?(Nomono) structuredmerge_local_gems = %w[ - tree_sitter_language_pack tree_haver ast-merge ast-merge-git @@ -47,8 +46,6 @@ declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) structuredmerge_local_gems_to_eval = structuredmerge_local_gems - %w[kramdown-merge] - declared_gems kettle_dev_local_gems_to_eval = kettle_dev_local_gems - %w[kramdown-merge] - declared_gems -# export VENDORED_GEMS=tree_sitter_language_pack -# export VENDOR_GEM_DIR=/path/to/vendor # expects $VENDOR_GEM_DIR/tree_sitter_language_pack platform :mri do if ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false') != 0 eval_nomono_gems( diff --git a/gems/markdown-merge/Gemfile b/gems/markdown-merge/Gemfile index e3da867c8..87b20c8ce 100644 --- a/gems/markdown-merge/Gemfile +++ b/gems/markdown-merge/Gemfile @@ -72,8 +72,8 @@ if direct_sibling_gems.any? && end end -# Use the StructuredMerge TSLP fork until the Ruby ABI platform-gem fix is released. -gem 'tree_sitter_language_pack', git: 'https://github.com/structuredmerge/tree-sitter-language-pack.git', branch: 'fix/ruby-4-platform-gem-abi', glob: 'packages/ruby/*.gemspec' +# Use released TSLP with the Ruby ABI platform-gem fix. +gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' # Templating (env-switched: STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local paths) eval_gemfile 'gemfiles/modular/templating.gemfile' if ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? diff --git a/gems/markdown-merge/Gemfile.lock b/gems/markdown-merge/Gemfile.lock index 57f96c3be..98b9b6625 100644 --- a/gems/markdown-merge/Gemfile.lock +++ b/gems/markdown-merge/Gemfile.lock @@ -1,21 +1,3 @@ -GIT - remote: https://github.com/structuredmerge/tree-sitter-language-pack.git - revision: e736879d00ce55b9bbfa479a5c07363bde1512e2 - branch: fix/ruby-4-platform-gem-abi - glob: packages/ruby/*.gemspec - specs: - tree_sitter_language_pack (1.13.2) - rb_sys (>= 0.9, < 0.9.128) - sorbet-runtime (~> 0.5) - tree_sitter_language_pack (1.13.2-aarch64-linux) - sorbet-runtime (~> 0.5) - tree_sitter_language_pack (1.13.2-arm64-darwin) - sorbet-runtime (~> 0.5) - tree_sitter_language_pack (1.13.2-x86_64-darwin) - sorbet-runtime (~> 0.5) - tree_sitter_language_pack (1.13.2-x86_64-linux) - sorbet-runtime (~> 0.5) - PATH remote: . specs: @@ -24,6 +6,41 @@ PATH tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) +PATH + remote: /home/pboling/src/my/kettle-dev/kettle-drift + specs: + kettle-drift (1.0.5) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/kettle-dev/kettle-soup-cover + specs: + kettle-soup-cover (3.0.3) + kettle-wash (~> 0.1, >= 0.1.0) + simplecov (>= 1.0) + simplecov-cobertura (>= 4.0) + simplecov-console (~> 0.9, >= 0.9.5) + simplecov-rcov (~> 0.3, >= 0.3.7) + simplecov_lcov_formatter (~> 0.9, >= 0.9.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge + specs: + ast-merge (7.1.0) + benchmark + token-resolver (~> 2.0, >= 2.0.4) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver + specs: + tree_haver (7.1.0) + citrus (~> 3.0) + parslet (~> 2.0) + tree_sitter_language_pack (>= 1.13.2, < 2.0) + version_gem (~> 1.1, >= 1.1.9) + GEM remote: https://gem.coop/ specs: @@ -35,11 +52,6 @@ GEM rake (>= 10) thor (>= 0.14) ast (2.4.3) - ast-merge (7.1.0) - benchmark - token-resolver (~> 2.0, >= 2.0.4) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) backports (3.25.3) benchmark (0.5.0) bigdecimal (4.1.2) @@ -56,7 +68,6 @@ GEM delegate (0.6.1) diff-lcs (1.6.2) diffy (3.4.4) - docile (1.4.1) dry-configurable (1.4.0) dry-core (~> 1.0) zeitwerk (~> 2.6) @@ -112,15 +123,6 @@ GEM kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) kettle-rb (0.1.4) - kettle-soup-cover (1.1.3) - simplecov (~> 0.22) - simplecov-cobertura (~> 3.0) - simplecov-console (~> 0.9, >= 0.9.3) - simplecov-html (~> 0.13, >= 0.13.1) - simplecov-lcov (~> 0.8) - simplecov-rcov (~> 0.3, >= 0.3.7) - simplecov_json_formatter (~> 0.1, >= 0.1.4) - version_gem (~> 1.1, >= 1.1.9) kettle-test (2.0.11) appraisal2 (~> 3.0, >= 3.0.6) backports (~> 3.0) @@ -132,6 +134,8 @@ GEM silent_stream (~> 1.0, >= 1.0.12) timecop-rspec (~> 1.0, >= 1.0.3) turbo_tests2 (~> 3.1, >= 3.1.12) + kettle-wash (0.1.0) + version_gem (~> 1.1, >= 1.1.14) kramdown (2.5.2) rexml (>= 3.4.4) kramdown-parser-gfm (1.1.0) @@ -173,9 +177,6 @@ GEM racc (1.8.1) rainbow (3.1.1) rake (13.4.2) - rake-compiler-dock (1.12.0) - rb_sys (0.9.127) - rake-compiler-dock (= 1.12.0) rbs (4.0.3) logger prism (>= 1.6.0) @@ -281,23 +282,19 @@ GEM silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) - simplecov (0.22.0) - docile (~> 1.1) - simplecov-html (~> 0.11) - simplecov_json_formatter (~> 0.1) - simplecov-cobertura (3.2.0) + simplecov (1.0.2) + simplecov-cobertura (4.0.0) rexml - simplecov (~> 0.19) + simplecov (~> 1.0) simplecov-console (0.9.5) ansi simplecov terminal-table - simplecov-html (0.13.2) - simplecov-lcov (0.9.0) simplecov-rcov (0.3.7) simplecov (>= 0.4.1) - simplecov_json_formatter (0.1.4) - sorbet-runtime (0.6.13342) + simplecov_lcov_formatter (0.9.0) + simplecov (>= 0.18) + sorbet-runtime (0.6.13347) standard (1.56.0) language_server-protocol (~> 3.17.0.2) lint_roller (~> 1.0) @@ -330,11 +327,14 @@ GEM token-resolver (2.0.4) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.13) - tree_haver (7.1.0) - citrus (~> 3.0) - parslet (~> 2.0) - tree_sitter_language_pack (>= 1.9.0.pre.rc.40, < 2.0) - version_gem (~> 1.1, >= 1.1.9) + tree_sitter_language_pack (1.13.3-aarch64-linux) + sorbet-runtime (~> 0.5) + tree_sitter_language_pack (1.13.3-arm64-darwin) + sorbet-runtime (~> 0.5) + tree_sitter_language_pack (1.13.3-x86_64-darwin) + sorbet-runtime (~> 0.5) + tree_sitter_language_pack (1.13.3-x86_64-linux) + sorbet-runtime (~> 0.5) tsort (0.2.0) turbo_tests2 (3.2.0) parallel_tests (>= 3.3.0, < 6) @@ -381,6 +381,7 @@ PLATFORMS DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) + ast-merge! benchmark (~> 0.5, >= 0.5.0) bundler-audit (~> 0.9.3) debug (>= 1.1) @@ -389,7 +390,8 @@ DEPENDENCIES gitmoji-regex (~> 2.0, >= 2.0.0) irb (~> 1.17) kettle-dev (~> 2.0, >= 2.2.25) - kettle-soup-cover (~> 1.0, >= 1.1.3) + kettle-drift! + kettle-soup-cover! kettle-test (~> 2.0, >= 2.0.9) kramdown (~> 2.5, >= 2.5.1) kramdown-parser-gfm (~> 1.1) @@ -410,7 +412,8 @@ DEPENDENCIES standard (>= 1.50) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) - tree_sitter_language_pack! + tree_haver! + tree_sitter_language_pack (~> 1.13, >= 1.13.3) yaml-converter (~> 0.1) yard (~> 0.9, >= 0.9.44) yard-fence (~> 0.9, >= 0.9.1) @@ -428,6 +431,7 @@ CHECKSUMS backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd + bundler (4.0.16) sha256=d6ca5dd440c24f9abce9844cf44cc8e18c6a553de65a47efb4544137af92c47d bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 @@ -437,7 +441,6 @@ CHECKSUMS delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 - docile (1.4.1) sha256=96159be799bfa73cdb721b840e9802126e4e03dfc26863db73647204c727f21e dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -455,9 +458,11 @@ CHECKSUMS irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 kettle-dev (2.3.7) sha256=eb370113cd030d03cbe2d33b31c99858951017e5ad21a17e9ed89dc3770028ee + kettle-drift (1.0.5) kettle-rb (0.1.4) sha256=9cef7ce4f7021666b7222292f29051e51eaf042e8a5db11f3f4dd72f74243fc1 - kettle-soup-cover (1.1.3) sha256=a373827da22a7131d093afd32945e5b7d7a10a01ebfdded8fd2cb8230d69c8ad + kettle-soup-cover (3.0.3) kettle-test (2.0.11) sha256=c710c90f7ab79d51f9452f0c09f5f90657e7a893f63583855c164d0b1b107ab2 + kettle-wash (0.1.0) sha256=5c04b3900d0957339e7c7d9997bbd804599b68bde002e6f47f4e28a0eea22ea7 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 @@ -486,8 +491,6 @@ CHECKSUMS racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 - rake-compiler-dock (1.12.0) sha256=f13205c2738f3d2053afcd03491a9e4541b22a59a0bfc53fc8bc883bd8188023 - rb_sys (0.9.127) sha256=e9f90df3bb0577472d26d96127d5b5774b98f44de881e7d36aeefd28d6337847 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 @@ -520,14 +523,12 @@ CHECKSUMS ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 - simplecov (0.22.0) sha256=fe2622c7834ff23b98066bb0a854284b2729a569ac659f82621fc22ef36213a5 - simplecov-cobertura (3.2.0) sha256=70d702658677fcb20e5aceb6915ccf8bc62ff2ccd38b62b3ad5c9db5c0888740 + simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 + simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 - simplecov-html (0.13.2) sha256=bd0b8e54e7c2d7685927e8d6286466359b6f16b18cb0df47b508e8d73c777246 - simplecov-lcov (0.9.0) sha256=7a77a31e200a595ed4b0249493056efd0c920601f53d2ef135ca34ee796346cd simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc - simplecov_json_formatter (0.1.4) sha256=529418fbe8de1713ac2b2d612aa3daa56d316975d307244399fa4838c601b428 - sorbet-runtime (0.6.13342) sha256=dbeb9892597f593ed2b29e38018912787f6c4e0c4b736d8af0d6bd3c63bde3c3 + simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed + sorbet-runtime (0.6.13347) sha256=54e7221d9f4b63f58aec79f3043752a9ba7810347c6ae0d903531591cc2d5f01 standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b standard-performance (1.9.0) sha256=49483d31be448292951d80e5e67cdcb576c2502103c7b40aec6f1b6e9c88e3f2 @@ -541,11 +542,10 @@ CHECKSUMS timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.4) sha256=33b926958f504525bba3ed511ab66fbcbf8ef30390815e931436b30f27ffcad0 tree_haver (7.1.0) - tree_sitter_language_pack (1.13.2) - tree_sitter_language_pack (1.13.2-aarch64-linux) - tree_sitter_language_pack (1.13.2-arm64-darwin) - tree_sitter_language_pack (1.13.2-x86_64-darwin) - tree_sitter_language_pack (1.13.2-x86_64-linux) + tree_sitter_language_pack (1.13.3-aarch64-linux) sha256=55ffc7c87868cb45658338363d9eba51b4a8b0259aa88e4de368d2bd1d52fea4 + tree_sitter_language_pack (1.13.3-arm64-darwin) sha256=bc2498db605f212a1dbd2465ed3f65190d7da786f6ed5d30fcf958121aeb4a5c + tree_sitter_language_pack (1.13.3-x86_64-darwin) sha256=061f7da6e1cc4ba936fad436ee0653d7dfdfa4aa879cf555403e3aa373d43966 + tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 diff --git a/gems/markdown-merge/gemfiles/modular/templating.gemfile b/gems/markdown-merge/gemfiles/modular/templating.gemfile index 1ee2a5ea7..2ddc9433f 100644 --- a/gems/markdown-merge/gemfiles/modular/templating.gemfile +++ b/gems/markdown-merge/gemfiles/modular/templating.gemfile @@ -4,7 +4,9 @@ structuredmerge_remote = ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('fals kettle_remote = ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? if structuredmerge_remote - # Merge recipes and parser dependencies for released installs. + # Parser dependencies for released installs. + gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' + # Merge recipes for released installs. gem 'kettle-jem', '>= 7.0' end diff --git a/gems/markdown-merge/gemfiles/modular/templating_local.gemfile b/gems/markdown-merge/gemfiles/modular/templating_local.gemfile index fcfa58e4c..4494a8bb5 100644 --- a/gems/markdown-merge/gemfiles/modular/templating_local.gemfile +++ b/gems/markdown-merge/gemfiles/modular/templating_local.gemfile @@ -7,7 +7,6 @@ require 'nomono/bundler' unless defined?(Nomono) structuredmerge_local_gems = %w[ - tree_sitter_language_pack tree_haver ast-merge ast-merge-git @@ -47,8 +46,6 @@ declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) structuredmerge_local_gems_to_eval = structuredmerge_local_gems - %w[markdown-merge] - declared_gems kettle_dev_local_gems_to_eval = kettle_dev_local_gems - %w[markdown-merge] - declared_gems -# export VENDORED_GEMS=tree_sitter_language_pack -# export VENDOR_GEM_DIR=/path/to/vendor # expects $VENDOR_GEM_DIR/tree_sitter_language_pack platform :mri do if ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false') != 0 eval_nomono_gems( diff --git a/gems/markly-merge/Gemfile b/gems/markly-merge/Gemfile index aa91072b0..39eb74956 100644 --- a/gems/markly-merge/Gemfile +++ b/gems/markly-merge/Gemfile @@ -71,8 +71,8 @@ if direct_sibling_gems.any? && end end -# Use the StructuredMerge TSLP fork until the Ruby ABI platform-gem fix is released. -gem 'tree_sitter_language_pack', git: 'https://github.com/structuredmerge/tree-sitter-language-pack.git', branch: 'fix/ruby-4-platform-gem-abi', glob: 'packages/ruby/*.gemspec' +# Use released TSLP with the Ruby ABI platform-gem fix. +gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' # Templating (env-switched: STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local paths) eval_gemfile 'gemfiles/modular/templating.gemfile' if ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? diff --git a/gems/markly-merge/Gemfile.lock b/gems/markly-merge/Gemfile.lock index e34b99d86..523a539f4 100644 --- a/gems/markly-merge/Gemfile.lock +++ b/gems/markly-merge/Gemfile.lock @@ -1,21 +1,3 @@ -GIT - remote: https://github.com/structuredmerge/tree-sitter-language-pack.git - revision: e736879d00ce55b9bbfa479a5c07363bde1512e2 - branch: fix/ruby-4-platform-gem-abi - glob: packages/ruby/*.gemspec - specs: - tree_sitter_language_pack (1.13.2) - rb_sys (>= 0.9, < 0.9.128) - sorbet-runtime (~> 0.5) - tree_sitter_language_pack (1.13.2-aarch64-linux) - sorbet-runtime (~> 0.5) - tree_sitter_language_pack (1.13.2-arm64-darwin) - sorbet-runtime (~> 0.5) - tree_sitter_language_pack (1.13.2-x86_64-darwin) - sorbet-runtime (~> 0.5) - tree_sitter_language_pack (1.13.2-x86_64-linux) - sorbet-runtime (~> 0.5) - PATH remote: . specs: @@ -340,6 +322,8 @@ GEM parslet (~> 2.0) tree_sitter_language_pack (>= 1.9.0.pre.rc.40, < 2.0) version_gem (~> 1.1, >= 1.1.9) +tree_sitter_language_pack (1.13.3-x86_64-linux) + sorbet-runtime (~> 0.5) tsort (0.2.0) turbo_tests2 (3.2.0) parallel_tests (>= 3.3.0, < 6) @@ -415,7 +399,7 @@ DEPENDENCIES standard (>= 1.50) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) - tree_sitter_language_pack! + tree_sitter_language_pack (~> 1.13, >= 1.13.3) yaml-converter (~> 0.1) yard (~> 0.9, >= 0.9.44) yard-fence (~> 0.9, >= 0.9.1) diff --git a/gems/markly-merge/gemfiles/modular/templating.gemfile b/gems/markly-merge/gemfiles/modular/templating.gemfile index 1ee2a5ea7..2ddc9433f 100644 --- a/gems/markly-merge/gemfiles/modular/templating.gemfile +++ b/gems/markly-merge/gemfiles/modular/templating.gemfile @@ -4,7 +4,9 @@ structuredmerge_remote = ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('fals kettle_remote = ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? if structuredmerge_remote - # Merge recipes and parser dependencies for released installs. + # Parser dependencies for released installs. + gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' + # Merge recipes for released installs. gem 'kettle-jem', '>= 7.0' end diff --git a/gems/markly-merge/gemfiles/modular/templating_local.gemfile b/gems/markly-merge/gemfiles/modular/templating_local.gemfile index c13f51aac..1f527e065 100644 --- a/gems/markly-merge/gemfiles/modular/templating_local.gemfile +++ b/gems/markly-merge/gemfiles/modular/templating_local.gemfile @@ -7,7 +7,6 @@ require 'nomono/bundler' unless defined?(Nomono) structuredmerge_local_gems = %w[ - tree_sitter_language_pack tree_haver ast-merge ast-merge-git @@ -47,8 +46,6 @@ declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) structuredmerge_local_gems_to_eval = structuredmerge_local_gems - %w[markly-merge] - declared_gems kettle_dev_local_gems_to_eval = kettle_dev_local_gems - %w[markly-merge] - declared_gems -# export VENDORED_GEMS=tree_sitter_language_pack -# export VENDOR_GEM_DIR=/path/to/vendor # expects $VENDOR_GEM_DIR/tree_sitter_language_pack platform :mri do if ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false') != 0 eval_nomono_gems( diff --git a/gems/parslet-toml-merge/Gemfile b/gems/parslet-toml-merge/Gemfile index ae20c8ba6..b9b122118 100644 --- a/gems/parslet-toml-merge/Gemfile +++ b/gems/parslet-toml-merge/Gemfile @@ -71,8 +71,8 @@ if direct_sibling_gems.any? && end end -# Use the StructuredMerge TSLP fork until the Ruby ABI platform-gem fix is released. -gem 'tree_sitter_language_pack', git: 'https://github.com/structuredmerge/tree-sitter-language-pack.git', branch: 'fix/ruby-4-platform-gem-abi', glob: 'packages/ruby/*.gemspec' +# Use released TSLP with the Ruby ABI platform-gem fix. +gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' # Templating (env-switched: STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local paths) eval_gemfile 'gemfiles/modular/templating.gemfile' if ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? diff --git a/gems/parslet-toml-merge/Gemfile.lock b/gems/parslet-toml-merge/Gemfile.lock index d8e4ccb9c..a15bdc3bd 100644 --- a/gems/parslet-toml-merge/Gemfile.lock +++ b/gems/parslet-toml-merge/Gemfile.lock @@ -1,21 +1,3 @@ -GIT - remote: https://github.com/structuredmerge/tree-sitter-language-pack.git - revision: e736879d00ce55b9bbfa479a5c07363bde1512e2 - branch: fix/ruby-4-platform-gem-abi - glob: packages/ruby/*.gemspec - specs: - tree_sitter_language_pack (1.13.2) - rb_sys (>= 0.9, < 0.9.128) - sorbet-runtime (~> 0.5) - tree_sitter_language_pack (1.13.2-aarch64-linux) - sorbet-runtime (~> 0.5) - tree_sitter_language_pack (1.13.2-arm64-darwin) - sorbet-runtime (~> 0.5) - tree_sitter_language_pack (1.13.2-x86_64-darwin) - sorbet-runtime (~> 0.5) - tree_sitter_language_pack (1.13.2-x86_64-linux) - sorbet-runtime (~> 0.5) - PATH remote: . specs: @@ -341,6 +323,8 @@ GEM parslet (~> 2.0) tree_sitter_language_pack (>= 1.9.0.pre.rc.40, < 2.0) version_gem (~> 1.1, >= 1.1.9) +tree_sitter_language_pack (1.13.3-x86_64-linux) + sorbet-runtime (~> 0.5) tsort (0.2.0) turbo_tests2 (3.2.0) parallel_tests (>= 3.3.0, < 6) @@ -416,7 +400,7 @@ DEPENDENCIES standard (>= 1.50) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) - tree_sitter_language_pack! + tree_sitter_language_pack (~> 1.13, >= 1.13.3) yaml-converter (~> 0.1) yard (~> 0.9, >= 0.9.44) yard-fence (~> 0.9, >= 0.9.1) diff --git a/gems/parslet-toml-merge/gemfiles/modular/templating.gemfile b/gems/parslet-toml-merge/gemfiles/modular/templating.gemfile index 1ee2a5ea7..2ddc9433f 100644 --- a/gems/parslet-toml-merge/gemfiles/modular/templating.gemfile +++ b/gems/parslet-toml-merge/gemfiles/modular/templating.gemfile @@ -4,7 +4,9 @@ structuredmerge_remote = ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('fals kettle_remote = ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? if structuredmerge_remote - # Merge recipes and parser dependencies for released installs. + # Parser dependencies for released installs. + gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' + # Merge recipes for released installs. gem 'kettle-jem', '>= 7.0' end diff --git a/gems/parslet-toml-merge/gemfiles/modular/templating_local.gemfile b/gems/parslet-toml-merge/gemfiles/modular/templating_local.gemfile index 4016511ef..c4b0a5508 100644 --- a/gems/parslet-toml-merge/gemfiles/modular/templating_local.gemfile +++ b/gems/parslet-toml-merge/gemfiles/modular/templating_local.gemfile @@ -7,7 +7,6 @@ require 'nomono/bundler' unless defined?(Nomono) structuredmerge_local_gems = %w[ - tree_sitter_language_pack tree_haver ast-merge ast-merge-git @@ -47,8 +46,6 @@ declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) structuredmerge_local_gems_to_eval = structuredmerge_local_gems - %w[parslet-toml-merge] - declared_gems kettle_dev_local_gems_to_eval = kettle_dev_local_gems - %w[parslet-toml-merge] - declared_gems -# export VENDORED_GEMS=tree_sitter_language_pack -# export VENDOR_GEM_DIR=/path/to/vendor # expects $VENDOR_GEM_DIR/tree_sitter_language_pack platform :mri do if ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false') != 0 eval_nomono_gems( diff --git a/gems/plain-merge/Gemfile b/gems/plain-merge/Gemfile index 657653255..968f861b4 100644 --- a/gems/plain-merge/Gemfile +++ b/gems/plain-merge/Gemfile @@ -72,8 +72,8 @@ if direct_sibling_gems.any? && end end -# Use the StructuredMerge TSLP fork until the Ruby ABI platform-gem fix is released. -gem 'tree_sitter_language_pack', git: 'https://github.com/structuredmerge/tree-sitter-language-pack.git', branch: 'fix/ruby-4-platform-gem-abi', glob: 'packages/ruby/*.gemspec' +# Use released TSLP with the Ruby ABI platform-gem fix. +gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' # Templating (env-switched: STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local paths) eval_gemfile 'gemfiles/modular/templating.gemfile' if ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? diff --git a/gems/plain-merge/Gemfile.lock b/gems/plain-merge/Gemfile.lock index 45990575a..f29536c12 100644 --- a/gems/plain-merge/Gemfile.lock +++ b/gems/plain-merge/Gemfile.lock @@ -1,21 +1,3 @@ -GIT - remote: https://github.com/structuredmerge/tree-sitter-language-pack.git - revision: e736879d00ce55b9bbfa479a5c07363bde1512e2 - branch: fix/ruby-4-platform-gem-abi - glob: packages/ruby/*.gemspec - specs: - tree_sitter_language_pack (1.13.2) - rb_sys (>= 0.9, < 0.9.128) - sorbet-runtime (~> 0.5) - tree_sitter_language_pack (1.13.2-aarch64-linux) - sorbet-runtime (~> 0.5) - tree_sitter_language_pack (1.13.2-arm64-darwin) - sorbet-runtime (~> 0.5) - tree_sitter_language_pack (1.13.2-x86_64-darwin) - sorbet-runtime (~> 0.5) - tree_sitter_language_pack (1.13.2-x86_64-linux) - sorbet-runtime (~> 0.5) - PATH remote: . specs: @@ -24,6 +6,41 @@ PATH tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) +PATH + remote: /home/pboling/src/my/kettle-dev/kettle-drift + specs: + kettle-drift (1.0.5) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/kettle-dev/kettle-soup-cover + specs: + kettle-soup-cover (3.0.3) + kettle-wash (~> 0.1, >= 0.1.0) + simplecov (>= 1.0) + simplecov-cobertura (>= 4.0) + simplecov-console (~> 0.9, >= 0.9.5) + simplecov-rcov (~> 0.3, >= 0.3.7) + simplecov_lcov_formatter (~> 0.9, >= 0.9.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge + specs: + ast-merge (7.1.0) + benchmark + token-resolver (~> 2.0, >= 2.0.4) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver + specs: + tree_haver (7.1.0) + citrus (~> 3.0) + parslet (~> 2.0) + tree_sitter_language_pack (>= 1.13.2, < 2.0) + version_gem (~> 1.1, >= 1.1.9) + GEM remote: https://gem.coop/ specs: @@ -35,11 +52,6 @@ GEM rake (>= 10) thor (>= 0.14) ast (2.4.3) - ast-merge (7.1.0) - benchmark - token-resolver (~> 2.0, >= 2.0.4) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) backports (3.25.3) benchmark (0.5.0) bigdecimal (4.1.2) @@ -56,7 +68,6 @@ GEM delegate (0.6.1) diff-lcs (1.6.2) diffy (3.4.4) - docile (1.4.1) dry-configurable (1.4.0) dry-core (~> 1.0) zeitwerk (~> 2.6) @@ -112,15 +123,6 @@ GEM kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) kettle-rb (0.1.4) - kettle-soup-cover (1.1.3) - simplecov (~> 0.22) - simplecov-cobertura (~> 3.0) - simplecov-console (~> 0.9, >= 0.9.3) - simplecov-html (~> 0.13, >= 0.13.1) - simplecov-lcov (~> 0.8) - simplecov-rcov (~> 0.3, >= 0.3.7) - simplecov_json_formatter (~> 0.1, >= 0.1.4) - version_gem (~> 1.1, >= 1.1.9) kettle-test (2.0.11) appraisal2 (~> 3.0, >= 3.0.6) backports (~> 3.0) @@ -132,6 +134,8 @@ GEM silent_stream (~> 1.0, >= 1.0.12) timecop-rspec (~> 1.0, >= 1.0.3) turbo_tests2 (~> 3.1, >= 3.1.12) + kettle-wash (0.1.0) + version_gem (~> 1.1, >= 1.1.14) kramdown (2.5.2) rexml (>= 3.4.4) kramdown-parser-gfm (1.1.0) @@ -173,9 +177,6 @@ GEM racc (1.8.1) rainbow (3.1.1) rake (13.4.2) - rake-compiler-dock (1.12.0) - rb_sys (0.9.127) - rake-compiler-dock (= 1.12.0) rbs (4.0.3) logger prism (>= 1.6.0) @@ -281,23 +282,19 @@ GEM silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) - simplecov (0.22.0) - docile (~> 1.1) - simplecov-html (~> 0.11) - simplecov_json_formatter (~> 0.1) - simplecov-cobertura (3.2.0) + simplecov (1.0.2) + simplecov-cobertura (4.0.0) rexml - simplecov (~> 0.19) + simplecov (~> 1.0) simplecov-console (0.9.5) ansi simplecov terminal-table - simplecov-html (0.13.2) - simplecov-lcov (0.9.0) simplecov-rcov (0.3.7) simplecov (>= 0.4.1) - simplecov_json_formatter (0.1.4) - sorbet-runtime (0.6.13342) + simplecov_lcov_formatter (0.9.0) + simplecov (>= 0.18) + sorbet-runtime (0.6.13347) standard (1.56.0) language_server-protocol (~> 3.17.0.2) lint_roller (~> 1.0) @@ -330,11 +327,14 @@ GEM token-resolver (2.0.4) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.13) - tree_haver (7.1.0) - citrus (~> 3.0) - parslet (~> 2.0) - tree_sitter_language_pack (>= 1.9.0.pre.rc.40, < 2.0) - version_gem (~> 1.1, >= 1.1.9) + tree_sitter_language_pack (1.13.3-aarch64-linux) + sorbet-runtime (~> 0.5) + tree_sitter_language_pack (1.13.3-arm64-darwin) + sorbet-runtime (~> 0.5) + tree_sitter_language_pack (1.13.3-x86_64-darwin) + sorbet-runtime (~> 0.5) + tree_sitter_language_pack (1.13.3-x86_64-linux) + sorbet-runtime (~> 0.5) tsort (0.2.0) turbo_tests2 (3.2.0) parallel_tests (>= 3.3.0, < 6) @@ -381,6 +381,7 @@ PLATFORMS DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) + ast-merge! benchmark (~> 0.5, >= 0.5.0) bundler-audit (~> 0.9.3) debug (>= 1.1) @@ -389,7 +390,8 @@ DEPENDENCIES gitmoji-regex (~> 2.0, >= 2.0.0) irb (~> 1.17) kettle-dev (~> 2.0, >= 2.2.25) - kettle-soup-cover (~> 1.0, >= 1.1.3) + kettle-drift! + kettle-soup-cover! kettle-test (~> 2.0, >= 2.0.9) kramdown (~> 2.5, >= 2.5.1) kramdown-parser-gfm (~> 1.1) @@ -410,7 +412,8 @@ DEPENDENCIES standard (>= 1.50) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) - tree_sitter_language_pack! + tree_haver! + tree_sitter_language_pack (~> 1.13, >= 1.13.3) yaml-converter (~> 0.1) yard (~> 0.9, >= 0.9.44) yard-fence (~> 0.9, >= 0.9.1) @@ -428,6 +431,7 @@ CHECKSUMS backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd + bundler (4.0.16) sha256=d6ca5dd440c24f9abce9844cf44cc8e18c6a553de65a47efb4544137af92c47d bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 @@ -437,7 +441,6 @@ CHECKSUMS delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 - docile (1.4.1) sha256=96159be799bfa73cdb721b840e9802126e4e03dfc26863db73647204c727f21e dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -455,9 +458,11 @@ CHECKSUMS irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 kettle-dev (2.3.7) sha256=eb370113cd030d03cbe2d33b31c99858951017e5ad21a17e9ed89dc3770028ee + kettle-drift (1.0.5) kettle-rb (0.1.4) sha256=9cef7ce4f7021666b7222292f29051e51eaf042e8a5db11f3f4dd72f74243fc1 - kettle-soup-cover (1.1.3) sha256=a373827da22a7131d093afd32945e5b7d7a10a01ebfdded8fd2cb8230d69c8ad + kettle-soup-cover (3.0.3) kettle-test (2.0.11) sha256=c710c90f7ab79d51f9452f0c09f5f90657e7a893f63583855c164d0b1b107ab2 + kettle-wash (0.1.0) sha256=5c04b3900d0957339e7c7d9997bbd804599b68bde002e6f47f4e28a0eea22ea7 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 @@ -486,8 +491,6 @@ CHECKSUMS racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 - rake-compiler-dock (1.12.0) sha256=f13205c2738f3d2053afcd03491a9e4541b22a59a0bfc53fc8bc883bd8188023 - rb_sys (0.9.127) sha256=e9f90df3bb0577472d26d96127d5b5774b98f44de881e7d36aeefd28d6337847 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 @@ -520,14 +523,12 @@ CHECKSUMS ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 - simplecov (0.22.0) sha256=fe2622c7834ff23b98066bb0a854284b2729a569ac659f82621fc22ef36213a5 - simplecov-cobertura (3.2.0) sha256=70d702658677fcb20e5aceb6915ccf8bc62ff2ccd38b62b3ad5c9db5c0888740 + simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 + simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 - simplecov-html (0.13.2) sha256=bd0b8e54e7c2d7685927e8d6286466359b6f16b18cb0df47b508e8d73c777246 - simplecov-lcov (0.9.0) sha256=7a77a31e200a595ed4b0249493056efd0c920601f53d2ef135ca34ee796346cd simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc - simplecov_json_formatter (0.1.4) sha256=529418fbe8de1713ac2b2d612aa3daa56d316975d307244399fa4838c601b428 - sorbet-runtime (0.6.13342) sha256=dbeb9892597f593ed2b29e38018912787f6c4e0c4b736d8af0d6bd3c63bde3c3 + simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed + sorbet-runtime (0.6.13347) sha256=54e7221d9f4b63f58aec79f3043752a9ba7810347c6ae0d903531591cc2d5f01 standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b standard-performance (1.9.0) sha256=49483d31be448292951d80e5e67cdcb576c2502103c7b40aec6f1b6e9c88e3f2 @@ -541,11 +542,10 @@ CHECKSUMS timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.4) sha256=33b926958f504525bba3ed511ab66fbcbf8ef30390815e931436b30f27ffcad0 tree_haver (7.1.0) - tree_sitter_language_pack (1.13.2) - tree_sitter_language_pack (1.13.2-aarch64-linux) - tree_sitter_language_pack (1.13.2-arm64-darwin) - tree_sitter_language_pack (1.13.2-x86_64-darwin) - tree_sitter_language_pack (1.13.2-x86_64-linux) + tree_sitter_language_pack (1.13.3-aarch64-linux) sha256=55ffc7c87868cb45658338363d9eba51b4a8b0259aa88e4de368d2bd1d52fea4 + tree_sitter_language_pack (1.13.3-arm64-darwin) sha256=bc2498db605f212a1dbd2465ed3f65190d7da786f6ed5d30fcf958121aeb4a5c + tree_sitter_language_pack (1.13.3-x86_64-darwin) sha256=061f7da6e1cc4ba936fad436ee0653d7dfdfa4aa879cf555403e3aa373d43966 + tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 diff --git a/gems/plain-merge/gemfiles/modular/templating.gemfile b/gems/plain-merge/gemfiles/modular/templating.gemfile index 1ee2a5ea7..2ddc9433f 100644 --- a/gems/plain-merge/gemfiles/modular/templating.gemfile +++ b/gems/plain-merge/gemfiles/modular/templating.gemfile @@ -4,7 +4,9 @@ structuredmerge_remote = ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('fals kettle_remote = ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? if structuredmerge_remote - # Merge recipes and parser dependencies for released installs. + # Parser dependencies for released installs. + gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' + # Merge recipes for released installs. gem 'kettle-jem', '>= 7.0' end diff --git a/gems/plain-merge/gemfiles/modular/templating_local.gemfile b/gems/plain-merge/gemfiles/modular/templating_local.gemfile index 97701f175..ea82c146d 100644 --- a/gems/plain-merge/gemfiles/modular/templating_local.gemfile +++ b/gems/plain-merge/gemfiles/modular/templating_local.gemfile @@ -7,7 +7,6 @@ require 'nomono/bundler' unless defined?(Nomono) structuredmerge_local_gems = %w[ - tree_sitter_language_pack tree_haver ast-merge ast-merge-git @@ -47,8 +46,6 @@ declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) structuredmerge_local_gems_to_eval = structuredmerge_local_gems - %w[plain-merge] - declared_gems kettle_dev_local_gems_to_eval = kettle_dev_local_gems - %w[plain-merge] - declared_gems -# export VENDORED_GEMS=tree_sitter_language_pack -# export VENDOR_GEM_DIR=/path/to/vendor # expects $VENDOR_GEM_DIR/tree_sitter_language_pack platform :mri do if ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false') != 0 eval_nomono_gems( diff --git a/gems/prism-merge/Gemfile b/gems/prism-merge/Gemfile index 0220a5cbd..4b305f1cc 100644 --- a/gems/prism-merge/Gemfile +++ b/gems/prism-merge/Gemfile @@ -71,8 +71,8 @@ if direct_sibling_gems.any? && end end -# Use the StructuredMerge TSLP fork until the Ruby ABI platform-gem fix is released. -gem 'tree_sitter_language_pack', git: 'https://github.com/structuredmerge/tree-sitter-language-pack.git', branch: 'fix/ruby-4-platform-gem-abi', glob: 'packages/ruby/*.gemspec' +# Use released TSLP with the Ruby ABI platform-gem fix. +gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' # Templating (env-switched: STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local paths) eval_gemfile 'gemfiles/modular/templating.gemfile' if ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? diff --git a/gems/prism-merge/Gemfile.lock b/gems/prism-merge/Gemfile.lock index 380fcf5ad..621913097 100644 --- a/gems/prism-merge/Gemfile.lock +++ b/gems/prism-merge/Gemfile.lock @@ -1,15 +1,3 @@ -GIT - remote: https://github.com/structuredmerge/tree-sitter-language-pack.git - revision: e736879d00ce55b9bbfa479a5c07363bde1512e2 - branch: fix/ruby-4-platform-gem-abi - glob: packages/ruby/*.gemspec - specs: - tree_sitter_language_pack (1.13.2) - rb_sys (>= 0.9, < 0.9.128) - sorbet-runtime (~> 0.5) - tree_sitter_language_pack (1.13.2-x86_64-linux) - sorbet-runtime (~> 0.5) - PATH remote: . specs: @@ -325,6 +313,8 @@ GEM parslet (~> 2.0) tree_sitter_language_pack (>= 1.9.0.pre.rc.40, < 2.0) version_gem (~> 1.1, >= 1.1.9) +tree_sitter_language_pack (1.13.3-x86_64-linux) + sorbet-runtime (~> 0.5) tsort (0.2.0) turbo_tests2 (3.2.0) parallel_tests (>= 3.3.0, < 6) @@ -396,7 +386,7 @@ DEPENDENCIES standard (>= 1.50) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) - tree_sitter_language_pack! + tree_sitter_language_pack (~> 1.13, >= 1.13.3) yaml-converter (~> 0.1) yard (~> 0.9, >= 0.9.44) yard-fence (~> 0.9, >= 0.9.1) diff --git a/gems/prism-merge/gemfiles/modular/templating.gemfile b/gems/prism-merge/gemfiles/modular/templating.gemfile index 1ee2a5ea7..2ddc9433f 100644 --- a/gems/prism-merge/gemfiles/modular/templating.gemfile +++ b/gems/prism-merge/gemfiles/modular/templating.gemfile @@ -4,7 +4,9 @@ structuredmerge_remote = ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('fals kettle_remote = ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? if structuredmerge_remote - # Merge recipes and parser dependencies for released installs. + # Parser dependencies for released installs. + gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' + # Merge recipes for released installs. gem 'kettle-jem', '>= 7.0' end diff --git a/gems/prism-merge/gemfiles/modular/templating_local.gemfile b/gems/prism-merge/gemfiles/modular/templating_local.gemfile index 3e864c706..3baae4e42 100644 --- a/gems/prism-merge/gemfiles/modular/templating_local.gemfile +++ b/gems/prism-merge/gemfiles/modular/templating_local.gemfile @@ -7,7 +7,6 @@ require 'nomono/bundler' unless defined?(Nomono) structuredmerge_local_gems = %w[ - tree_sitter_language_pack tree_haver ast-merge ast-merge-git @@ -47,8 +46,6 @@ declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) structuredmerge_local_gems_to_eval = structuredmerge_local_gems - %w[prism-merge] - declared_gems kettle_dev_local_gems_to_eval = kettle_dev_local_gems - %w[prism-merge] - declared_gems -# export VENDORED_GEMS=tree_sitter_language_pack -# export VENDOR_GEM_DIR=/path/to/vendor # expects $VENDOR_GEM_DIR/tree_sitter_language_pack platform :mri do if ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false') != 0 eval_nomono_gems( diff --git a/gems/psych-merge/Gemfile b/gems/psych-merge/Gemfile index a894e3e67..89ea2458f 100644 --- a/gems/psych-merge/Gemfile +++ b/gems/psych-merge/Gemfile @@ -73,8 +73,8 @@ if direct_sibling_gems.any? && end end -# Use the StructuredMerge TSLP fork until the Ruby ABI platform-gem fix is released. -gem 'tree_sitter_language_pack', git: 'https://github.com/structuredmerge/tree-sitter-language-pack.git', branch: 'fix/ruby-4-platform-gem-abi', glob: 'packages/ruby/*.gemspec' +# Use released TSLP with the Ruby ABI platform-gem fix. +gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' # Templating (env-switched: STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local paths) eval_gemfile 'gemfiles/modular/templating.gemfile' if ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? diff --git a/gems/psych-merge/Gemfile.lock b/gems/psych-merge/Gemfile.lock index 62f25fc49..a61a6083b 100644 --- a/gems/psych-merge/Gemfile.lock +++ b/gems/psych-merge/Gemfile.lock @@ -1,21 +1,3 @@ -GIT - remote: https://github.com/structuredmerge/tree-sitter-language-pack.git - revision: e736879d00ce55b9bbfa479a5c07363bde1512e2 - branch: fix/ruby-4-platform-gem-abi - glob: packages/ruby/*.gemspec - specs: - tree_sitter_language_pack (1.13.2) - rb_sys (>= 0.9, < 0.9.128) - sorbet-runtime (~> 0.5) - tree_sitter_language_pack (1.13.2-aarch64-linux) - sorbet-runtime (~> 0.5) - tree_sitter_language_pack (1.13.2-arm64-darwin) - sorbet-runtime (~> 0.5) - tree_sitter_language_pack (1.13.2-x86_64-darwin) - sorbet-runtime (~> 0.5) - tree_sitter_language_pack (1.13.2-x86_64-linux) - sorbet-runtime (~> 0.5) - PATH remote: . specs: @@ -25,6 +7,49 @@ PATH version_gem (~> 1.1, >= 1.1.9) yaml-merge (= 7.1.0) +PATH + remote: /home/pboling/src/my/kettle-dev/kettle-drift + specs: + kettle-drift (1.0.5) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/kettle-dev/kettle-soup-cover + specs: + kettle-soup-cover (3.0.3) + kettle-wash (~> 0.1, >= 0.1.0) + simplecov (>= 1.0) + simplecov-cobertura (>= 4.0) + simplecov-console (~> 0.9, >= 0.9.5) + simplecov-rcov (~> 0.3, >= 0.3.7) + simplecov_lcov_formatter (~> 0.9, >= 0.9.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge + specs: + ast-merge (7.1.0) + benchmark + token-resolver (~> 2.0, >= 2.0.4) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver + specs: + tree_haver (7.1.0) + citrus (~> 3.0) + parslet (~> 2.0) + tree_sitter_language_pack (>= 1.13.2, < 2.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge + specs: + yaml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + GEM remote: https://gem.coop/ specs: @@ -36,11 +61,6 @@ GEM rake (>= 10) thor (>= 0.14) ast (2.4.3) - ast-merge (7.1.0) - benchmark - token-resolver (~> 2.0, >= 2.0.4) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) backports (3.25.3) benchmark (0.5.0) bigdecimal (4.1.2) @@ -57,7 +77,6 @@ GEM delegate (0.6.1) diff-lcs (1.6.2) diffy (3.4.4) - docile (1.4.1) dry-configurable (1.4.0) dry-core (~> 1.0) zeitwerk (~> 2.6) @@ -113,15 +132,6 @@ GEM kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) kettle-rb (0.1.4) - kettle-soup-cover (1.1.3) - simplecov (~> 0.22) - simplecov-cobertura (~> 3.0) - simplecov-console (~> 0.9, >= 0.9.3) - simplecov-html (~> 0.13, >= 0.13.1) - simplecov-lcov (~> 0.8) - simplecov-rcov (~> 0.3, >= 0.3.7) - simplecov_json_formatter (~> 0.1, >= 0.1.4) - version_gem (~> 1.1, >= 1.1.9) kettle-test (2.0.11) appraisal2 (~> 3.0, >= 3.0.6) backports (~> 3.0) @@ -133,6 +143,8 @@ GEM silent_stream (~> 1.0, >= 1.0.12) timecop-rspec (~> 1.0, >= 1.0.3) turbo_tests2 (~> 3.1, >= 3.1.12) + kettle-wash (0.1.0) + version_gem (~> 1.1, >= 1.1.14) kramdown (2.5.2) rexml (>= 3.4.4) kramdown-parser-gfm (1.1.0) @@ -174,9 +186,6 @@ GEM racc (1.8.1) rainbow (3.1.1) rake (13.4.2) - rake-compiler-dock (1.12.0) - rb_sys (0.9.127) - rake-compiler-dock (= 1.12.0) rbs (4.0.3) logger prism (>= 1.6.0) @@ -282,23 +291,19 @@ GEM silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) - simplecov (0.22.0) - docile (~> 1.1) - simplecov-html (~> 0.11) - simplecov_json_formatter (~> 0.1) - simplecov-cobertura (3.2.0) + simplecov (1.0.2) + simplecov-cobertura (4.0.0) rexml - simplecov (~> 0.19) + simplecov (~> 1.0) simplecov-console (0.9.5) ansi simplecov terminal-table - simplecov-html (0.13.2) - simplecov-lcov (0.9.0) simplecov-rcov (0.3.7) simplecov (>= 0.4.1) - simplecov_json_formatter (0.1.4) - sorbet-runtime (0.6.13342) + simplecov_lcov_formatter (0.9.0) + simplecov (>= 0.18) + sorbet-runtime (0.6.13347) standard (1.56.0) language_server-protocol (~> 3.17.0.2) lint_roller (~> 1.0) @@ -331,11 +336,14 @@ GEM token-resolver (2.0.4) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.13) - tree_haver (7.1.0) - citrus (~> 3.0) - parslet (~> 2.0) - tree_sitter_language_pack (>= 1.9.0.pre.rc.40, < 2.0) - version_gem (~> 1.1, >= 1.1.9) + tree_sitter_language_pack (1.13.3-aarch64-linux) + sorbet-runtime (~> 0.5) + tree_sitter_language_pack (1.13.3-arm64-darwin) + sorbet-runtime (~> 0.5) + tree_sitter_language_pack (1.13.3-x86_64-darwin) + sorbet-runtime (~> 0.5) + tree_sitter_language_pack (1.13.3-x86_64-linux) + sorbet-runtime (~> 0.5) tsort (0.2.0) turbo_tests2 (3.2.0) parallel_tests (>= 3.3.0, < 6) @@ -350,10 +358,6 @@ GEM kramdown (>= 2.4, < 3) kramdown-parser-gfm (~> 1.1) version_gem (~> 1.1, >= 1.1.13) - yaml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) yard (0.9.45) yard-fence (0.9.6) rdoc (>= 6.11, < 8) @@ -386,6 +390,7 @@ PLATFORMS DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) + ast-merge! benchmark (~> 0.5, >= 0.5.0) bundler-audit (~> 0.9.3) debug (>= 1.1) @@ -394,7 +399,8 @@ DEPENDENCIES gitmoji-regex (~> 2.0, >= 2.0.0) irb (~> 1.17) kettle-dev (~> 2.0, >= 2.2.25) - kettle-soup-cover (~> 1.0, >= 1.1.3) + kettle-drift! + kettle-soup-cover! kettle-test (~> 2.0, >= 2.0.9) kramdown (~> 2.5, >= 2.5.1) kramdown-parser-gfm (~> 1.1) @@ -415,8 +421,10 @@ DEPENDENCIES standard (>= 1.50) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) - tree_sitter_language_pack! + tree_haver! + tree_sitter_language_pack (~> 1.13, >= 1.13.3) yaml-converter (~> 0.1) + yaml-merge! yard (~> 0.9, >= 0.9.44) yard-fence (~> 0.9, >= 0.9.1) yard-junk (~> 0.1, >= 0.1.0) @@ -433,6 +441,7 @@ CHECKSUMS backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd + bundler (4.0.16) sha256=d6ca5dd440c24f9abce9844cf44cc8e18c6a553de65a47efb4544137af92c47d bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 @@ -442,7 +451,6 @@ CHECKSUMS delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 - docile (1.4.1) sha256=96159be799bfa73cdb721b840e9802126e4e03dfc26863db73647204c727f21e dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -460,9 +468,11 @@ CHECKSUMS irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 kettle-dev (2.3.7) sha256=eb370113cd030d03cbe2d33b31c99858951017e5ad21a17e9ed89dc3770028ee + kettle-drift (1.0.5) kettle-rb (0.1.4) sha256=9cef7ce4f7021666b7222292f29051e51eaf042e8a5db11f3f4dd72f74243fc1 - kettle-soup-cover (1.1.3) sha256=a373827da22a7131d093afd32945e5b7d7a10a01ebfdded8fd2cb8230d69c8ad + kettle-soup-cover (3.0.3) kettle-test (2.0.11) sha256=c710c90f7ab79d51f9452f0c09f5f90657e7a893f63583855c164d0b1b107ab2 + kettle-wash (0.1.0) sha256=5c04b3900d0957339e7c7d9997bbd804599b68bde002e6f47f4e28a0eea22ea7 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 @@ -491,8 +501,6 @@ CHECKSUMS racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 - rake-compiler-dock (1.12.0) sha256=f13205c2738f3d2053afcd03491a9e4541b22a59a0bfc53fc8bc883bd8188023 - rb_sys (0.9.127) sha256=e9f90df3bb0577472d26d96127d5b5774b98f44de881e7d36aeefd28d6337847 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 @@ -525,14 +533,12 @@ CHECKSUMS ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 - simplecov (0.22.0) sha256=fe2622c7834ff23b98066bb0a854284b2729a569ac659f82621fc22ef36213a5 - simplecov-cobertura (3.2.0) sha256=70d702658677fcb20e5aceb6915ccf8bc62ff2ccd38b62b3ad5c9db5c0888740 + simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 + simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 - simplecov-html (0.13.2) sha256=bd0b8e54e7c2d7685927e8d6286466359b6f16b18cb0df47b508e8d73c777246 - simplecov-lcov (0.9.0) sha256=7a77a31e200a595ed4b0249493056efd0c920601f53d2ef135ca34ee796346cd simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc - simplecov_json_formatter (0.1.4) sha256=529418fbe8de1713ac2b2d612aa3daa56d316975d307244399fa4838c601b428 - sorbet-runtime (0.6.13342) sha256=dbeb9892597f593ed2b29e38018912787f6c4e0c4b736d8af0d6bd3c63bde3c3 + simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed + sorbet-runtime (0.6.13347) sha256=54e7221d9f4b63f58aec79f3043752a9ba7810347c6ae0d903531591cc2d5f01 standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b standard-performance (1.9.0) sha256=49483d31be448292951d80e5e67cdcb576c2502103c7b40aec6f1b6e9c88e3f2 @@ -546,11 +552,10 @@ CHECKSUMS timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.4) sha256=33b926958f504525bba3ed511ab66fbcbf8ef30390815e931436b30f27ffcad0 tree_haver (7.1.0) - tree_sitter_language_pack (1.13.2) - tree_sitter_language_pack (1.13.2-aarch64-linux) - tree_sitter_language_pack (1.13.2-arm64-darwin) - tree_sitter_language_pack (1.13.2-x86_64-darwin) - tree_sitter_language_pack (1.13.2-x86_64-linux) + tree_sitter_language_pack (1.13.3-aarch64-linux) sha256=55ffc7c87868cb45658338363d9eba51b4a8b0259aa88e4de368d2bd1d52fea4 + tree_sitter_language_pack (1.13.3-arm64-darwin) sha256=bc2498db605f212a1dbd2465ed3f65190d7da786f6ed5d30fcf958121aeb4a5c + tree_sitter_language_pack (1.13.3-x86_64-darwin) sha256=061f7da6e1cc4ba936fad436ee0653d7dfdfa4aa879cf555403e3aa373d43966 + tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 diff --git a/gems/psych-merge/gemfiles/modular/templating.gemfile b/gems/psych-merge/gemfiles/modular/templating.gemfile index 1ee2a5ea7..2ddc9433f 100644 --- a/gems/psych-merge/gemfiles/modular/templating.gemfile +++ b/gems/psych-merge/gemfiles/modular/templating.gemfile @@ -4,7 +4,9 @@ structuredmerge_remote = ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('fals kettle_remote = ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? if structuredmerge_remote - # Merge recipes and parser dependencies for released installs. + # Parser dependencies for released installs. + gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' + # Merge recipes for released installs. gem 'kettle-jem', '>= 7.0' end diff --git a/gems/psych-merge/gemfiles/modular/templating_local.gemfile b/gems/psych-merge/gemfiles/modular/templating_local.gemfile index b904dc826..6febf2acf 100644 --- a/gems/psych-merge/gemfiles/modular/templating_local.gemfile +++ b/gems/psych-merge/gemfiles/modular/templating_local.gemfile @@ -7,7 +7,6 @@ require 'nomono/bundler' unless defined?(Nomono) structuredmerge_local_gems = %w[ - tree_sitter_language_pack tree_haver ast-merge ast-merge-git @@ -47,8 +46,6 @@ declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) structuredmerge_local_gems_to_eval = structuredmerge_local_gems - %w[psych-merge] - declared_gems kettle_dev_local_gems_to_eval = kettle_dev_local_gems - %w[psych-merge] - declared_gems -# export VENDORED_GEMS=tree_sitter_language_pack -# export VENDOR_GEM_DIR=/path/to/vendor # expects $VENDOR_GEM_DIR/tree_sitter_language_pack platform :mri do if ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false') != 0 eval_nomono_gems( diff --git a/gems/rbs-merge/Gemfile b/gems/rbs-merge/Gemfile index 175e3658a..52f1380c2 100644 --- a/gems/rbs-merge/Gemfile +++ b/gems/rbs-merge/Gemfile @@ -72,8 +72,8 @@ if direct_sibling_gems.any? && end end -# Use the StructuredMerge TSLP fork until the Ruby ABI platform-gem fix is released. -gem 'tree_sitter_language_pack', git: 'https://github.com/structuredmerge/tree-sitter-language-pack.git', branch: 'fix/ruby-4-platform-gem-abi', glob: 'packages/ruby/*.gemspec' +# Use released TSLP with the Ruby ABI platform-gem fix. +gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' # Templating (env-switched: STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local paths) eval_gemfile 'gemfiles/modular/templating.gemfile' if ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? diff --git a/gems/rbs-merge/Gemfile.lock b/gems/rbs-merge/Gemfile.lock index fbdf00f5d..cbc9f3e77 100644 --- a/gems/rbs-merge/Gemfile.lock +++ b/gems/rbs-merge/Gemfile.lock @@ -1,19 +1,3 @@ -GIT - remote: https://github.com/structuredmerge/tree-sitter-language-pack.git - revision: e736879d00ce55b9bbfa479a5c07363bde1512e2 - branch: fix/ruby-4-platform-gem-abi - glob: packages/ruby/*.gemspec - specs: - tree_sitter_language_pack (1.13.2) - rb_sys (>= 0.9, < 0.9.128) - sorbet-runtime (~> 0.5) - tree_sitter_language_pack (1.13.2-aarch64-linux) - sorbet-runtime (~> 0.5) - tree_sitter_language_pack (1.13.2-arm64-darwin) - sorbet-runtime (~> 0.5) - tree_sitter_language_pack (1.13.2-x86_64-linux) - sorbet-runtime (~> 0.5) - PATH remote: . specs: @@ -23,6 +7,41 @@ PATH tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.14) +PATH + remote: /home/pboling/src/my/kettle-dev/kettle-drift + specs: + kettle-drift (1.0.5) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/kettle-dev/kettle-soup-cover + specs: + kettle-soup-cover (3.0.3) + kettle-wash (~> 0.1, >= 0.1.0) + simplecov (>= 1.0) + simplecov-cobertura (>= 4.0) + simplecov-console (~> 0.9, >= 0.9.5) + simplecov-rcov (~> 0.3, >= 0.3.7) + simplecov_lcov_formatter (~> 0.9, >= 0.9.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge + specs: + ast-merge (7.1.0) + benchmark + token-resolver (~> 2.0, >= 2.0.4) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver + specs: + tree_haver (7.1.0) + citrus (~> 3.0) + parslet (~> 2.0) + tree_sitter_language_pack (>= 1.13.2, < 2.0) + version_gem (~> 1.1, >= 1.1.9) + GEM remote: https://gem.coop/ specs: @@ -34,11 +53,6 @@ GEM rake (>= 10) thor (>= 0.14) ast (2.4.3) - ast-merge (7.1.0) - benchmark - token-resolver (~> 2.0, >= 2.0.4) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) backports (3.25.3) benchmark (0.5.0) bigdecimal (4.1.2) @@ -55,7 +69,6 @@ GEM delegate (0.6.1) diff-lcs (1.6.2) diffy (3.4.4) - docile (1.4.1) dry-configurable (1.4.0) dry-core (~> 1.0) zeitwerk (~> 2.6) @@ -111,15 +124,6 @@ GEM kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) kettle-rb (0.1.4) - kettle-soup-cover (1.1.3) - simplecov (~> 0.22) - simplecov-cobertura (~> 3.0) - simplecov-console (~> 0.9, >= 0.9.3) - simplecov-html (~> 0.13, >= 0.13.1) - simplecov-lcov (~> 0.8) - simplecov-rcov (~> 0.3, >= 0.3.7) - simplecov_json_formatter (~> 0.1, >= 0.1.4) - version_gem (~> 1.1, >= 1.1.9) kettle-test (2.0.11) appraisal2 (~> 3.0, >= 3.0.6) backports (~> 3.0) @@ -131,6 +135,8 @@ GEM silent_stream (~> 1.0, >= 1.0.12) timecop-rspec (~> 1.0, >= 1.0.3) turbo_tests2 (~> 3.1, >= 3.1.12) + kettle-wash (0.1.0) + version_gem (~> 1.1, >= 1.1.14) kramdown (2.5.2) rexml (>= 3.4.4) kramdown-parser-gfm (1.1.0) @@ -170,9 +176,6 @@ GEM racc (1.8.1) rainbow (3.1.1) rake (13.4.2) - rake-compiler-dock (1.12.0) - rb_sys (0.9.127) - rake-compiler-dock (= 1.12.0) rbs (4.0.3) logger prism (>= 1.6.0) @@ -278,23 +281,19 @@ GEM silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) - simplecov (0.22.0) - docile (~> 1.1) - simplecov-html (~> 0.11) - simplecov_json_formatter (~> 0.1) - simplecov-cobertura (3.2.0) + simplecov (1.0.2) + simplecov-cobertura (4.0.0) rexml - simplecov (~> 0.19) + simplecov (~> 1.0) simplecov-console (0.9.5) ansi simplecov terminal-table - simplecov-html (0.13.2) - simplecov-lcov (0.9.0) simplecov-rcov (0.3.7) simplecov (>= 0.4.1) - simplecov_json_formatter (0.1.4) - sorbet-runtime (0.6.13342) + simplecov_lcov_formatter (0.9.0) + simplecov (>= 0.18) + sorbet-runtime (0.6.13347) standard (1.56.0) language_server-protocol (~> 3.17.0.2) lint_roller (~> 1.0) @@ -327,11 +326,12 @@ GEM token-resolver (2.0.4) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.13) - tree_haver (7.1.0) - citrus (~> 3.0) - parslet (~> 2.0) - tree_sitter_language_pack (>= 1.9.0.pre.rc.40, < 2.0) - version_gem (~> 1.1, >= 1.1.9) + tree_sitter_language_pack (1.13.3-aarch64-linux) + sorbet-runtime (~> 0.5) + tree_sitter_language_pack (1.13.3-arm64-darwin) + sorbet-runtime (~> 0.5) + tree_sitter_language_pack (1.13.3-x86_64-linux) + sorbet-runtime (~> 0.5) tsort (0.2.0) turbo_tests2 (3.2.0) parallel_tests (>= 3.3.0, < 6) @@ -378,6 +378,7 @@ PLATFORMS DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.2, >= 3.2.0) + ast-merge! benchmark (~> 0.5, >= 0.5.0) bundler-audit (~> 0.9.3) debug (>= 1.1) @@ -386,7 +387,8 @@ DEPENDENCIES gitmoji-regex (~> 2.0, >= 2.0.4) irb (~> 1.17) kettle-dev (~> 2.3, >= 2.3.7) - kettle-soup-cover (~> 1.0, >= 1.1.3) + kettle-drift! + kettle-soup-cover! kettle-test (~> 2.0, >= 2.0.11) kramdown (~> 2.5, >= 2.5.1) kramdown-parser-gfm (~> 1.1) @@ -407,7 +409,8 @@ DEPENDENCIES standard (>= 1.50) stone_checksums (~> 1.0, >= 1.0.6, >= 1.0.3) stringio (>= 3.0) - tree_sitter_language_pack! + tree_haver! + tree_sitter_language_pack (~> 1.13, >= 1.13.3) turbo_tests2 (~> 3.2, >= 3.2.0) yaml-converter (~> 0.1) yard (~> 0.9, >= 0.9.44) @@ -426,6 +429,7 @@ CHECKSUMS backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd + bundler (4.0.16) sha256=d6ca5dd440c24f9abce9844cf44cc8e18c6a553de65a47efb4544137af92c47d bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 @@ -435,7 +439,6 @@ CHECKSUMS delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 - docile (1.4.1) sha256=96159be799bfa73cdb721b840e9802126e4e03dfc26863db73647204c727f21e dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -453,9 +456,11 @@ CHECKSUMS irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 kettle-dev (2.3.7) sha256=eb370113cd030d03cbe2d33b31c99858951017e5ad21a17e9ed89dc3770028ee + kettle-drift (1.0.5) kettle-rb (0.1.4) sha256=9cef7ce4f7021666b7222292f29051e51eaf042e8a5db11f3f4dd72f74243fc1 - kettle-soup-cover (1.1.3) sha256=a373827da22a7131d093afd32945e5b7d7a10a01ebfdded8fd2cb8230d69c8ad + kettle-soup-cover (3.0.3) kettle-test (2.0.11) sha256=c710c90f7ab79d51f9452f0c09f5f90657e7a893f63583855c164d0b1b107ab2 + kettle-wash (0.1.0) sha256=5c04b3900d0957339e7c7d9997bbd804599b68bde002e6f47f4e28a0eea22ea7 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 @@ -482,8 +487,6 @@ CHECKSUMS racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 - rake-compiler-dock (1.12.0) sha256=f13205c2738f3d2053afcd03491a9e4541b22a59a0bfc53fc8bc883bd8188023 - rb_sys (0.9.127) sha256=e9f90df3bb0577472d26d96127d5b5774b98f44de881e7d36aeefd28d6337847 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 @@ -517,14 +520,12 @@ CHECKSUMS ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 - simplecov (0.22.0) sha256=fe2622c7834ff23b98066bb0a854284b2729a569ac659f82621fc22ef36213a5 - simplecov-cobertura (3.2.0) sha256=70d702658677fcb20e5aceb6915ccf8bc62ff2ccd38b62b3ad5c9db5c0888740 + simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 + simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 - simplecov-html (0.13.2) sha256=bd0b8e54e7c2d7685927e8d6286466359b6f16b18cb0df47b508e8d73c777246 - simplecov-lcov (0.9.0) sha256=7a77a31e200a595ed4b0249493056efd0c920601f53d2ef135ca34ee796346cd simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc - simplecov_json_formatter (0.1.4) sha256=529418fbe8de1713ac2b2d612aa3daa56d316975d307244399fa4838c601b428 - sorbet-runtime (0.6.13342) sha256=dbeb9892597f593ed2b29e38018912787f6c4e0c4b736d8af0d6bd3c63bde3c3 + simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed + sorbet-runtime (0.6.13347) sha256=54e7221d9f4b63f58aec79f3043752a9ba7810347c6ae0d903531591cc2d5f01 standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b standard-performance (1.9.0) sha256=49483d31be448292951d80e5e67cdcb576c2502103c7b40aec6f1b6e9c88e3f2 @@ -538,10 +539,9 @@ CHECKSUMS timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.4) sha256=33b926958f504525bba3ed511ab66fbcbf8ef30390815e931436b30f27ffcad0 tree_haver (7.1.0) - tree_sitter_language_pack (1.13.2) - tree_sitter_language_pack (1.13.2-aarch64-linux) - tree_sitter_language_pack (1.13.2-arm64-darwin) - tree_sitter_language_pack (1.13.2-x86_64-linux) + tree_sitter_language_pack (1.13.3-aarch64-linux) sha256=55ffc7c87868cb45658338363d9eba51b4a8b0259aa88e4de368d2bd1d52fea4 + tree_sitter_language_pack (1.13.3-arm64-darwin) sha256=bc2498db605f212a1dbd2465ed3f65190d7da786f6ed5d30fcf958121aeb4a5c + tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 diff --git a/gems/rbs-merge/gemfiles/modular/templating.gemfile b/gems/rbs-merge/gemfiles/modular/templating.gemfile index 1ee2a5ea7..2ddc9433f 100644 --- a/gems/rbs-merge/gemfiles/modular/templating.gemfile +++ b/gems/rbs-merge/gemfiles/modular/templating.gemfile @@ -4,7 +4,9 @@ structuredmerge_remote = ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('fals kettle_remote = ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? if structuredmerge_remote - # Merge recipes and parser dependencies for released installs. + # Parser dependencies for released installs. + gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' + # Merge recipes for released installs. gem 'kettle-jem', '>= 7.0' end diff --git a/gems/rbs-merge/gemfiles/modular/templating_local.gemfile b/gems/rbs-merge/gemfiles/modular/templating_local.gemfile index 8f661b5ff..a364d0ce3 100644 --- a/gems/rbs-merge/gemfiles/modular/templating_local.gemfile +++ b/gems/rbs-merge/gemfiles/modular/templating_local.gemfile @@ -7,7 +7,6 @@ require 'nomono/bundler' unless defined?(Nomono) structuredmerge_local_gems = %w[ - tree_sitter_language_pack tree_haver ast-merge ast-merge-git @@ -47,8 +46,6 @@ declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) structuredmerge_local_gems_to_eval = structuredmerge_local_gems - %w[rbs-merge] - declared_gems kettle_dev_local_gems_to_eval = kettle_dev_local_gems - %w[rbs-merge] - declared_gems -# export VENDORED_GEMS=tree_sitter_language_pack -# export VENDOR_GEM_DIR=/path/to/vendor # expects $VENDOR_GEM_DIR/tree_sitter_language_pack platform :mri do if ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false') != 0 eval_nomono_gems( diff --git a/gems/ruby-merge/Gemfile b/gems/ruby-merge/Gemfile index 804431034..0049d8146 100644 --- a/gems/ruby-merge/Gemfile +++ b/gems/ruby-merge/Gemfile @@ -72,8 +72,8 @@ if direct_sibling_gems.any? && end end -# Use the StructuredMerge TSLP fork until the Ruby ABI platform-gem fix is released. -gem 'tree_sitter_language_pack', git: 'https://github.com/structuredmerge/tree-sitter-language-pack.git', branch: 'fix/ruby-4-platform-gem-abi', glob: 'packages/ruby/*.gemspec' +# Use released TSLP with the Ruby ABI platform-gem fix. +gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' # Templating (env-switched: STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local paths) eval_gemfile 'gemfiles/modular/templating.gemfile' if ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? diff --git a/gems/ruby-merge/Gemfile.lock b/gems/ruby-merge/Gemfile.lock index a6ba7f3b3..4aa6f07be 100644 --- a/gems/ruby-merge/Gemfile.lock +++ b/gems/ruby-merge/Gemfile.lock @@ -1,21 +1,3 @@ -GIT - remote: https://github.com/structuredmerge/tree-sitter-language-pack.git - revision: e736879d00ce55b9bbfa479a5c07363bde1512e2 - branch: fix/ruby-4-platform-gem-abi - glob: packages/ruby/*.gemspec - specs: - tree_sitter_language_pack (1.13.2) - rb_sys (>= 0.9, < 0.9.128) - sorbet-runtime (~> 0.5) - tree_sitter_language_pack (1.13.2-aarch64-linux) - sorbet-runtime (~> 0.5) - tree_sitter_language_pack (1.13.2-arm64-darwin) - sorbet-runtime (~> 0.5) - tree_sitter_language_pack (1.13.2-x86_64-darwin) - sorbet-runtime (~> 0.5) - tree_sitter_language_pack (1.13.2-x86_64-linux) - sorbet-runtime (~> 0.5) - PATH remote: . specs: @@ -24,6 +6,41 @@ PATH tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) +PATH + remote: /home/pboling/src/my/kettle-dev/kettle-drift + specs: + kettle-drift (1.0.5) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/kettle-dev/kettle-soup-cover + specs: + kettle-soup-cover (3.0.3) + kettle-wash (~> 0.1, >= 0.1.0) + simplecov (>= 1.0) + simplecov-cobertura (>= 4.0) + simplecov-console (~> 0.9, >= 0.9.5) + simplecov-rcov (~> 0.3, >= 0.3.7) + simplecov_lcov_formatter (~> 0.9, >= 0.9.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge + specs: + ast-merge (7.1.0) + benchmark + token-resolver (~> 2.0, >= 2.0.4) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver + specs: + tree_haver (7.1.0) + citrus (~> 3.0) + parslet (~> 2.0) + tree_sitter_language_pack (>= 1.13.2, < 2.0) + version_gem (~> 1.1, >= 1.1.9) + GEM remote: https://gem.coop/ specs: @@ -35,11 +52,6 @@ GEM rake (>= 10) thor (>= 0.14) ast (2.4.3) - ast-merge (7.1.0) - benchmark - token-resolver (~> 2.0, >= 2.0.4) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) backports (3.25.3) benchmark (0.5.0) bigdecimal (4.1.2) @@ -56,7 +68,6 @@ GEM delegate (0.6.1) diff-lcs (1.6.2) diffy (3.4.4) - docile (1.4.1) dry-configurable (1.4.0) dry-core (~> 1.0) zeitwerk (~> 2.6) @@ -112,15 +123,6 @@ GEM kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) kettle-rb (0.1.4) - kettle-soup-cover (1.1.3) - simplecov (~> 0.22) - simplecov-cobertura (~> 3.0) - simplecov-console (~> 0.9, >= 0.9.3) - simplecov-html (~> 0.13, >= 0.13.1) - simplecov-lcov (~> 0.8) - simplecov-rcov (~> 0.3, >= 0.3.7) - simplecov_json_formatter (~> 0.1, >= 0.1.4) - version_gem (~> 1.1, >= 1.1.9) kettle-test (2.0.11) appraisal2 (~> 3.0, >= 3.0.6) backports (~> 3.0) @@ -132,6 +134,8 @@ GEM silent_stream (~> 1.0, >= 1.0.12) timecop-rspec (~> 1.0, >= 1.0.3) turbo_tests2 (~> 3.1, >= 3.1.12) + kettle-wash (0.1.0) + version_gem (~> 1.1, >= 1.1.14) kramdown (2.5.2) rexml (>= 3.4.4) kramdown-parser-gfm (1.1.0) @@ -173,9 +177,6 @@ GEM racc (1.8.1) rainbow (3.1.1) rake (13.4.2) - rake-compiler-dock (1.12.0) - rb_sys (0.9.127) - rake-compiler-dock (= 1.12.0) rbs (4.0.3) logger prism (>= 1.6.0) @@ -281,23 +282,19 @@ GEM silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) - simplecov (0.22.0) - docile (~> 1.1) - simplecov-html (~> 0.11) - simplecov_json_formatter (~> 0.1) - simplecov-cobertura (3.2.0) + simplecov (1.0.2) + simplecov-cobertura (4.0.0) rexml - simplecov (~> 0.19) + simplecov (~> 1.0) simplecov-console (0.9.5) ansi simplecov terminal-table - simplecov-html (0.13.2) - simplecov-lcov (0.9.0) simplecov-rcov (0.3.7) simplecov (>= 0.4.1) - simplecov_json_formatter (0.1.4) - sorbet-runtime (0.6.13342) + simplecov_lcov_formatter (0.9.0) + simplecov (>= 0.18) + sorbet-runtime (0.6.13347) standard (1.56.0) language_server-protocol (~> 3.17.0.2) lint_roller (~> 1.0) @@ -330,11 +327,14 @@ GEM token-resolver (2.0.4) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.13) - tree_haver (7.1.0) - citrus (~> 3.0) - parslet (~> 2.0) - tree_sitter_language_pack (>= 1.9.0.pre.rc.40, < 2.0) - version_gem (~> 1.1, >= 1.1.9) + tree_sitter_language_pack (1.13.3-aarch64-linux) + sorbet-runtime (~> 0.5) + tree_sitter_language_pack (1.13.3-arm64-darwin) + sorbet-runtime (~> 0.5) + tree_sitter_language_pack (1.13.3-x86_64-darwin) + sorbet-runtime (~> 0.5) + tree_sitter_language_pack (1.13.3-x86_64-linux) + sorbet-runtime (~> 0.5) tsort (0.2.0) turbo_tests2 (3.2.0) parallel_tests (>= 3.3.0, < 6) @@ -381,6 +381,7 @@ PLATFORMS DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) + ast-merge! benchmark (~> 0.5, >= 0.5.0) bundler-audit (~> 0.9.3) debug (>= 1.1) @@ -389,7 +390,8 @@ DEPENDENCIES gitmoji-regex (~> 2.0, >= 2.0.0) irb (~> 1.17) kettle-dev (~> 2.0, >= 2.2.25) - kettle-soup-cover (~> 1.0, >= 1.1.3) + kettle-drift! + kettle-soup-cover! kettle-test (~> 2.0, >= 2.0.9) kramdown (~> 2.5, >= 2.5.1) kramdown-parser-gfm (~> 1.1) @@ -410,7 +412,8 @@ DEPENDENCIES standard (>= 1.50) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) - tree_sitter_language_pack! + tree_haver! + tree_sitter_language_pack (~> 1.13, >= 1.13.3) yaml-converter (~> 0.1) yard (~> 0.9, >= 0.9.44) yard-fence (~> 0.9, >= 0.9.1) @@ -428,6 +431,7 @@ CHECKSUMS backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd + bundler (4.0.16) sha256=d6ca5dd440c24f9abce9844cf44cc8e18c6a553de65a47efb4544137af92c47d bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 @@ -437,7 +441,6 @@ CHECKSUMS delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 - docile (1.4.1) sha256=96159be799bfa73cdb721b840e9802126e4e03dfc26863db73647204c727f21e dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -455,9 +458,11 @@ CHECKSUMS irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 kettle-dev (2.3.7) sha256=eb370113cd030d03cbe2d33b31c99858951017e5ad21a17e9ed89dc3770028ee + kettle-drift (1.0.5) kettle-rb (0.1.4) sha256=9cef7ce4f7021666b7222292f29051e51eaf042e8a5db11f3f4dd72f74243fc1 - kettle-soup-cover (1.1.3) sha256=a373827da22a7131d093afd32945e5b7d7a10a01ebfdded8fd2cb8230d69c8ad + kettle-soup-cover (3.0.3) kettle-test (2.0.11) sha256=c710c90f7ab79d51f9452f0c09f5f90657e7a893f63583855c164d0b1b107ab2 + kettle-wash (0.1.0) sha256=5c04b3900d0957339e7c7d9997bbd804599b68bde002e6f47f4e28a0eea22ea7 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 @@ -485,8 +490,6 @@ CHECKSUMS racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 - rake-compiler-dock (1.12.0) sha256=f13205c2738f3d2053afcd03491a9e4541b22a59a0bfc53fc8bc883bd8188023 - rb_sys (0.9.127) sha256=e9f90df3bb0577472d26d96127d5b5774b98f44de881e7d36aeefd28d6337847 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 @@ -520,14 +523,12 @@ CHECKSUMS ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 - simplecov (0.22.0) sha256=fe2622c7834ff23b98066bb0a854284b2729a569ac659f82621fc22ef36213a5 - simplecov-cobertura (3.2.0) sha256=70d702658677fcb20e5aceb6915ccf8bc62ff2ccd38b62b3ad5c9db5c0888740 + simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 + simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 - simplecov-html (0.13.2) sha256=bd0b8e54e7c2d7685927e8d6286466359b6f16b18cb0df47b508e8d73c777246 - simplecov-lcov (0.9.0) sha256=7a77a31e200a595ed4b0249493056efd0c920601f53d2ef135ca34ee796346cd simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc - simplecov_json_formatter (0.1.4) sha256=529418fbe8de1713ac2b2d612aa3daa56d316975d307244399fa4838c601b428 - sorbet-runtime (0.6.13342) sha256=dbeb9892597f593ed2b29e38018912787f6c4e0c4b736d8af0d6bd3c63bde3c3 + simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed + sorbet-runtime (0.6.13347) sha256=54e7221d9f4b63f58aec79f3043752a9ba7810347c6ae0d903531591cc2d5f01 standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b standard-performance (1.9.0) sha256=49483d31be448292951d80e5e67cdcb576c2502103c7b40aec6f1b6e9c88e3f2 @@ -541,11 +542,10 @@ CHECKSUMS timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.4) sha256=33b926958f504525bba3ed511ab66fbcbf8ef30390815e931436b30f27ffcad0 tree_haver (7.1.0) - tree_sitter_language_pack (1.13.2) - tree_sitter_language_pack (1.13.2-aarch64-linux) - tree_sitter_language_pack (1.13.2-arm64-darwin) - tree_sitter_language_pack (1.13.2-x86_64-darwin) - tree_sitter_language_pack (1.13.2-x86_64-linux) + tree_sitter_language_pack (1.13.3-aarch64-linux) sha256=55ffc7c87868cb45658338363d9eba51b4a8b0259aa88e4de368d2bd1d52fea4 + tree_sitter_language_pack (1.13.3-arm64-darwin) sha256=bc2498db605f212a1dbd2465ed3f65190d7da786f6ed5d30fcf958121aeb4a5c + tree_sitter_language_pack (1.13.3-x86_64-darwin) sha256=061f7da6e1cc4ba936fad436ee0653d7dfdfa4aa879cf555403e3aa373d43966 + tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 diff --git a/gems/ruby-merge/gemfiles/modular/templating.gemfile b/gems/ruby-merge/gemfiles/modular/templating.gemfile index 1ee2a5ea7..2ddc9433f 100644 --- a/gems/ruby-merge/gemfiles/modular/templating.gemfile +++ b/gems/ruby-merge/gemfiles/modular/templating.gemfile @@ -4,7 +4,9 @@ structuredmerge_remote = ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('fals kettle_remote = ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? if structuredmerge_remote - # Merge recipes and parser dependencies for released installs. + # Parser dependencies for released installs. + gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' + # Merge recipes for released installs. gem 'kettle-jem', '>= 7.0' end diff --git a/gems/ruby-merge/gemfiles/modular/templating_local.gemfile b/gems/ruby-merge/gemfiles/modular/templating_local.gemfile index a64fa9af9..7bcc1113d 100644 --- a/gems/ruby-merge/gemfiles/modular/templating_local.gemfile +++ b/gems/ruby-merge/gemfiles/modular/templating_local.gemfile @@ -7,7 +7,6 @@ require 'nomono/bundler' unless defined?(Nomono) structuredmerge_local_gems = %w[ - tree_sitter_language_pack tree_haver ast-merge ast-merge-git @@ -47,8 +46,6 @@ declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) structuredmerge_local_gems_to_eval = structuredmerge_local_gems - %w[ruby-merge] - declared_gems kettle_dev_local_gems_to_eval = kettle_dev_local_gems - %w[ruby-merge] - declared_gems -# export VENDORED_GEMS=tree_sitter_language_pack -# export VENDOR_GEM_DIR=/path/to/vendor # expects $VENDOR_GEM_DIR/tree_sitter_language_pack platform :mri do if ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false') != 0 eval_nomono_gems( diff --git a/gems/rust-merge/Gemfile b/gems/rust-merge/Gemfile index ae8be37d2..cd826beb6 100644 --- a/gems/rust-merge/Gemfile +++ b/gems/rust-merge/Gemfile @@ -72,8 +72,8 @@ if direct_sibling_gems.any? && end end -# Use the StructuredMerge TSLP fork until the Ruby ABI platform-gem fix is released. -gem 'tree_sitter_language_pack', git: 'https://github.com/structuredmerge/tree-sitter-language-pack.git', branch: 'fix/ruby-4-platform-gem-abi', glob: 'packages/ruby/*.gemspec' +# Use released TSLP with the Ruby ABI platform-gem fix. +gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' # Templating (env-switched: STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local paths) eval_gemfile 'gemfiles/modular/templating.gemfile' if ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? diff --git a/gems/rust-merge/Gemfile.lock b/gems/rust-merge/Gemfile.lock index d058fbec9..a1dbae4e0 100644 --- a/gems/rust-merge/Gemfile.lock +++ b/gems/rust-merge/Gemfile.lock @@ -1,21 +1,3 @@ -GIT - remote: https://github.com/structuredmerge/tree-sitter-language-pack.git - revision: e736879d00ce55b9bbfa479a5c07363bde1512e2 - branch: fix/ruby-4-platform-gem-abi - glob: packages/ruby/*.gemspec - specs: - tree_sitter_language_pack (1.13.2) - rb_sys (>= 0.9, < 0.9.128) - sorbet-runtime (~> 0.5) - tree_sitter_language_pack (1.13.2-aarch64-linux) - sorbet-runtime (~> 0.5) - tree_sitter_language_pack (1.13.2-arm64-darwin) - sorbet-runtime (~> 0.5) - tree_sitter_language_pack (1.13.2-x86_64-darwin) - sorbet-runtime (~> 0.5) - tree_sitter_language_pack (1.13.2-x86_64-linux) - sorbet-runtime (~> 0.5) - PATH remote: . specs: @@ -24,6 +6,41 @@ PATH tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) +PATH + remote: /home/pboling/src/my/kettle-dev/kettle-drift + specs: + kettle-drift (1.0.5) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/kettle-dev/kettle-soup-cover + specs: + kettle-soup-cover (3.0.3) + kettle-wash (~> 0.1, >= 0.1.0) + simplecov (>= 1.0) + simplecov-cobertura (>= 4.0) + simplecov-console (~> 0.9, >= 0.9.5) + simplecov-rcov (~> 0.3, >= 0.3.7) + simplecov_lcov_formatter (~> 0.9, >= 0.9.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge + specs: + ast-merge (7.1.0) + benchmark + token-resolver (~> 2.0, >= 2.0.4) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver + specs: + tree_haver (7.1.0) + citrus (~> 3.0) + parslet (~> 2.0) + tree_sitter_language_pack (>= 1.13.2, < 2.0) + version_gem (~> 1.1, >= 1.1.9) + GEM remote: https://gem.coop/ specs: @@ -35,11 +52,6 @@ GEM rake (>= 10) thor (>= 0.14) ast (2.4.3) - ast-merge (7.1.0) - benchmark - token-resolver (~> 2.0, >= 2.0.4) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) backports (3.25.3) benchmark (0.5.0) bigdecimal (4.1.2) @@ -56,7 +68,6 @@ GEM delegate (0.6.1) diff-lcs (1.6.2) diffy (3.4.4) - docile (1.4.1) dry-configurable (1.4.0) dry-core (~> 1.0) zeitwerk (~> 2.6) @@ -112,15 +123,6 @@ GEM kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) kettle-rb (0.1.4) - kettle-soup-cover (1.1.3) - simplecov (~> 0.22) - simplecov-cobertura (~> 3.0) - simplecov-console (~> 0.9, >= 0.9.3) - simplecov-html (~> 0.13, >= 0.13.1) - simplecov-lcov (~> 0.8) - simplecov-rcov (~> 0.3, >= 0.3.7) - simplecov_json_formatter (~> 0.1, >= 0.1.4) - version_gem (~> 1.1, >= 1.1.9) kettle-test (2.0.11) appraisal2 (~> 3.0, >= 3.0.6) backports (~> 3.0) @@ -132,6 +134,8 @@ GEM silent_stream (~> 1.0, >= 1.0.12) timecop-rspec (~> 1.0, >= 1.0.3) turbo_tests2 (~> 3.1, >= 3.1.12) + kettle-wash (0.1.0) + version_gem (~> 1.1, >= 1.1.14) kramdown (2.5.2) rexml (>= 3.4.4) kramdown-parser-gfm (1.1.0) @@ -173,9 +177,6 @@ GEM racc (1.8.1) rainbow (3.1.1) rake (13.4.2) - rake-compiler-dock (1.12.0) - rb_sys (0.9.127) - rake-compiler-dock (= 1.12.0) rbs (4.0.3) logger prism (>= 1.6.0) @@ -281,23 +282,19 @@ GEM silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) - simplecov (0.22.0) - docile (~> 1.1) - simplecov-html (~> 0.11) - simplecov_json_formatter (~> 0.1) - simplecov-cobertura (3.2.0) + simplecov (1.0.2) + simplecov-cobertura (4.0.0) rexml - simplecov (~> 0.19) + simplecov (~> 1.0) simplecov-console (0.9.5) ansi simplecov terminal-table - simplecov-html (0.13.2) - simplecov-lcov (0.9.0) simplecov-rcov (0.3.7) simplecov (>= 0.4.1) - simplecov_json_formatter (0.1.4) - sorbet-runtime (0.6.13342) + simplecov_lcov_formatter (0.9.0) + simplecov (>= 0.18) + sorbet-runtime (0.6.13347) standard (1.56.0) language_server-protocol (~> 3.17.0.2) lint_roller (~> 1.0) @@ -330,11 +327,14 @@ GEM token-resolver (2.0.4) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.13) - tree_haver (7.1.0) - citrus (~> 3.0) - parslet (~> 2.0) - tree_sitter_language_pack (>= 1.9.0.pre.rc.40, < 2.0) - version_gem (~> 1.1, >= 1.1.9) + tree_sitter_language_pack (1.13.3-aarch64-linux) + sorbet-runtime (~> 0.5) + tree_sitter_language_pack (1.13.3-arm64-darwin) + sorbet-runtime (~> 0.5) + tree_sitter_language_pack (1.13.3-x86_64-darwin) + sorbet-runtime (~> 0.5) + tree_sitter_language_pack (1.13.3-x86_64-linux) + sorbet-runtime (~> 0.5) tsort (0.2.0) turbo_tests2 (3.2.0) parallel_tests (>= 3.3.0, < 6) @@ -381,6 +381,7 @@ PLATFORMS DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) + ast-merge! benchmark (~> 0.5, >= 0.5.0) bundler-audit (~> 0.9.3) debug (>= 1.1) @@ -389,7 +390,8 @@ DEPENDENCIES gitmoji-regex (~> 2.0, >= 2.0.0) irb (~> 1.17) kettle-dev (~> 2.0, >= 2.2.25) - kettle-soup-cover (~> 1.0, >= 1.1.3) + kettle-drift! + kettle-soup-cover! kettle-test (~> 2.0, >= 2.0.9) kramdown (~> 2.5, >= 2.5.1) kramdown-parser-gfm (~> 1.1) @@ -410,7 +412,8 @@ DEPENDENCIES standard (>= 1.50) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) - tree_sitter_language_pack! + tree_haver! + tree_sitter_language_pack (~> 1.13, >= 1.13.3) yaml-converter (~> 0.1) yard (~> 0.9, >= 0.9.44) yard-fence (~> 0.9, >= 0.9.1) @@ -428,6 +431,7 @@ CHECKSUMS backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd + bundler (4.0.16) sha256=d6ca5dd440c24f9abce9844cf44cc8e18c6a553de65a47efb4544137af92c47d bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 @@ -437,7 +441,6 @@ CHECKSUMS delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 - docile (1.4.1) sha256=96159be799bfa73cdb721b840e9802126e4e03dfc26863db73647204c727f21e dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -455,9 +458,11 @@ CHECKSUMS irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 kettle-dev (2.3.7) sha256=eb370113cd030d03cbe2d33b31c99858951017e5ad21a17e9ed89dc3770028ee + kettle-drift (1.0.5) kettle-rb (0.1.4) sha256=9cef7ce4f7021666b7222292f29051e51eaf042e8a5db11f3f4dd72f74243fc1 - kettle-soup-cover (1.1.3) sha256=a373827da22a7131d093afd32945e5b7d7a10a01ebfdded8fd2cb8230d69c8ad + kettle-soup-cover (3.0.3) kettle-test (2.0.11) sha256=c710c90f7ab79d51f9452f0c09f5f90657e7a893f63583855c164d0b1b107ab2 + kettle-wash (0.1.0) sha256=5c04b3900d0957339e7c7d9997bbd804599b68bde002e6f47f4e28a0eea22ea7 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 @@ -485,8 +490,6 @@ CHECKSUMS racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 - rake-compiler-dock (1.12.0) sha256=f13205c2738f3d2053afcd03491a9e4541b22a59a0bfc53fc8bc883bd8188023 - rb_sys (0.9.127) sha256=e9f90df3bb0577472d26d96127d5b5774b98f44de881e7d36aeefd28d6337847 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 @@ -520,14 +523,12 @@ CHECKSUMS ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 rust-merge (7.1.0) silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 - simplecov (0.22.0) sha256=fe2622c7834ff23b98066bb0a854284b2729a569ac659f82621fc22ef36213a5 - simplecov-cobertura (3.2.0) sha256=70d702658677fcb20e5aceb6915ccf8bc62ff2ccd38b62b3ad5c9db5c0888740 + simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 + simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 - simplecov-html (0.13.2) sha256=bd0b8e54e7c2d7685927e8d6286466359b6f16b18cb0df47b508e8d73c777246 - simplecov-lcov (0.9.0) sha256=7a77a31e200a595ed4b0249493056efd0c920601f53d2ef135ca34ee796346cd simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc - simplecov_json_formatter (0.1.4) sha256=529418fbe8de1713ac2b2d612aa3daa56d316975d307244399fa4838c601b428 - sorbet-runtime (0.6.13342) sha256=dbeb9892597f593ed2b29e38018912787f6c4e0c4b736d8af0d6bd3c63bde3c3 + simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed + sorbet-runtime (0.6.13347) sha256=54e7221d9f4b63f58aec79f3043752a9ba7810347c6ae0d903531591cc2d5f01 standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b standard-performance (1.9.0) sha256=49483d31be448292951d80e5e67cdcb576c2502103c7b40aec6f1b6e9c88e3f2 @@ -541,11 +542,10 @@ CHECKSUMS timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.4) sha256=33b926958f504525bba3ed511ab66fbcbf8ef30390815e931436b30f27ffcad0 tree_haver (7.1.0) - tree_sitter_language_pack (1.13.2) - tree_sitter_language_pack (1.13.2-aarch64-linux) - tree_sitter_language_pack (1.13.2-arm64-darwin) - tree_sitter_language_pack (1.13.2-x86_64-darwin) - tree_sitter_language_pack (1.13.2-x86_64-linux) + tree_sitter_language_pack (1.13.3-aarch64-linux) sha256=55ffc7c87868cb45658338363d9eba51b4a8b0259aa88e4de368d2bd1d52fea4 + tree_sitter_language_pack (1.13.3-arm64-darwin) sha256=bc2498db605f212a1dbd2465ed3f65190d7da786f6ed5d30fcf958121aeb4a5c + tree_sitter_language_pack (1.13.3-x86_64-darwin) sha256=061f7da6e1cc4ba936fad436ee0653d7dfdfa4aa879cf555403e3aa373d43966 + tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 diff --git a/gems/rust-merge/gemfiles/modular/templating.gemfile b/gems/rust-merge/gemfiles/modular/templating.gemfile index 1ee2a5ea7..2ddc9433f 100644 --- a/gems/rust-merge/gemfiles/modular/templating.gemfile +++ b/gems/rust-merge/gemfiles/modular/templating.gemfile @@ -4,7 +4,9 @@ structuredmerge_remote = ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('fals kettle_remote = ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? if structuredmerge_remote - # Merge recipes and parser dependencies for released installs. + # Parser dependencies for released installs. + gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' + # Merge recipes for released installs. gem 'kettle-jem', '>= 7.0' end diff --git a/gems/rust-merge/gemfiles/modular/templating_local.gemfile b/gems/rust-merge/gemfiles/modular/templating_local.gemfile index cf179e76e..1f2d348bc 100644 --- a/gems/rust-merge/gemfiles/modular/templating_local.gemfile +++ b/gems/rust-merge/gemfiles/modular/templating_local.gemfile @@ -7,7 +7,6 @@ require 'nomono/bundler' unless defined?(Nomono) structuredmerge_local_gems = %w[ - tree_sitter_language_pack tree_haver ast-merge ast-merge-git @@ -47,8 +46,6 @@ declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) structuredmerge_local_gems_to_eval = structuredmerge_local_gems - %w[rust-merge] - declared_gems kettle_dev_local_gems_to_eval = kettle_dev_local_gems - %w[rust-merge] - declared_gems -# export VENDORED_GEMS=tree_sitter_language_pack -# export VENDOR_GEM_DIR=/path/to/vendor # expects $VENDOR_GEM_DIR/tree_sitter_language_pack platform :mri do if ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false') != 0 eval_nomono_gems( diff --git a/gems/smorg-rb/Gemfile b/gems/smorg-rb/Gemfile index 0888de9fd..b3f5e0333 100644 --- a/gems/smorg-rb/Gemfile +++ b/gems/smorg-rb/Gemfile @@ -77,8 +77,8 @@ if direct_sibling_gems.any? && end end -# Use the StructuredMerge TSLP fork until the Ruby ABI platform-gem fix is released. -gem 'tree_sitter_language_pack', git: 'https://github.com/structuredmerge/tree-sitter-language-pack.git', branch: 'fix/ruby-4-platform-gem-abi', glob: 'packages/ruby/*.gemspec' +# Use released TSLP with the Ruby ABI platform-gem fix. +gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' # Templating (env-switched: STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local paths) eval_gemfile 'gemfiles/modular/templating.gemfile' if ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? diff --git a/gems/smorg-rb/Gemfile.lock b/gems/smorg-rb/Gemfile.lock index f0cfb39a0..7bfa61125 100644 --- a/gems/smorg-rb/Gemfile.lock +++ b/gems/smorg-rb/Gemfile.lock @@ -1,21 +1,3 @@ -GIT - remote: https://github.com/structuredmerge/tree-sitter-language-pack.git - revision: e736879d00ce55b9bbfa479a5c07363bde1512e2 - branch: fix/ruby-4-platform-gem-abi - glob: packages/ruby/*.gemspec - specs: - tree_sitter_language_pack (1.13.2) - rb_sys (>= 0.9, < 0.9.128) - sorbet-runtime (~> 0.5) - tree_sitter_language_pack (1.13.2-aarch64-linux) - sorbet-runtime (~> 0.5) - tree_sitter_language_pack (1.13.2-arm64-darwin) - sorbet-runtime (~> 0.5) - tree_sitter_language_pack (1.13.2-x86_64-darwin) - sorbet-runtime (~> 0.5) - tree_sitter_language_pack (1.13.2-x86_64-linux) - sorbet-runtime (~> 0.5) - PATH remote: . specs: @@ -455,6 +437,8 @@ GEM parslet (~> 2.0) tree_sitter_language_pack (>= 1.9.0.pre.rc.40, < 2.0) version_gem (~> 1.1, >= 1.1.9) +tree_sitter_language_pack (1.13.3-x86_64-linux) + sorbet-runtime (~> 0.5) tsort (0.2.0) turbo_tests2 (3.2.0) parallel_tests (>= 3.3.0, < 6) @@ -534,7 +518,7 @@ DEPENDENCIES standard (>= 1.50) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) - tree_sitter_language_pack! + tree_sitter_language_pack (~> 1.13, >= 1.13.3) yaml-converter (~> 0.1) yard (~> 0.9, >= 0.9.44) yard-fence (~> 0.9, >= 0.9.1) diff --git a/gems/smorg-rb/gemfiles/modular/templating.gemfile b/gems/smorg-rb/gemfiles/modular/templating.gemfile index 1ee2a5ea7..2ddc9433f 100644 --- a/gems/smorg-rb/gemfiles/modular/templating.gemfile +++ b/gems/smorg-rb/gemfiles/modular/templating.gemfile @@ -4,7 +4,9 @@ structuredmerge_remote = ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('fals kettle_remote = ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? if structuredmerge_remote - # Merge recipes and parser dependencies for released installs. + # Parser dependencies for released installs. + gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' + # Merge recipes for released installs. gem 'kettle-jem', '>= 7.0' end diff --git a/gems/smorg-rb/gemfiles/modular/templating_local.gemfile b/gems/smorg-rb/gemfiles/modular/templating_local.gemfile index 648d53a33..8d9b40c05 100644 --- a/gems/smorg-rb/gemfiles/modular/templating_local.gemfile +++ b/gems/smorg-rb/gemfiles/modular/templating_local.gemfile @@ -7,7 +7,6 @@ require 'nomono/bundler' unless defined?(Nomono) structuredmerge_local_gems = %w[ - tree_sitter_language_pack tree_haver ast-merge ast-merge-git @@ -47,8 +46,6 @@ declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) structuredmerge_local_gems_to_eval = structuredmerge_local_gems - %w[smorg-rb] - declared_gems kettle_dev_local_gems_to_eval = kettle_dev_local_gems - %w[smorg-rb] - declared_gems -# export VENDORED_GEMS=tree_sitter_language_pack -# export VENDOR_GEM_DIR=/path/to/vendor # expects $VENDOR_GEM_DIR/tree_sitter_language_pack platform :mri do if ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false') != 0 eval_nomono_gems( diff --git a/gems/toml-merge/Gemfile b/gems/toml-merge/Gemfile index 5634a8a1c..6557bde3e 100644 --- a/gems/toml-merge/Gemfile +++ b/gems/toml-merge/Gemfile @@ -72,8 +72,8 @@ if direct_sibling_gems.any? && end end -# Use the StructuredMerge TSLP fork until the Ruby ABI platform-gem fix is released. -gem 'tree_sitter_language_pack', git: 'https://github.com/structuredmerge/tree-sitter-language-pack.git', branch: 'fix/ruby-4-platform-gem-abi', glob: 'packages/ruby/*.gemspec' +# Use released TSLP with the Ruby ABI platform-gem fix. +gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' # Templating (env-switched: STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local paths) eval_gemfile 'gemfiles/modular/templating.gemfile' if ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? diff --git a/gems/toml-merge/Gemfile.lock b/gems/toml-merge/Gemfile.lock index c7b6cd295..24c6f90a9 100644 --- a/gems/toml-merge/Gemfile.lock +++ b/gems/toml-merge/Gemfile.lock @@ -1,21 +1,3 @@ -GIT - remote: https://github.com/structuredmerge/tree-sitter-language-pack.git - revision: e736879d00ce55b9bbfa479a5c07363bde1512e2 - branch: fix/ruby-4-platform-gem-abi - glob: packages/ruby/*.gemspec - specs: - tree_sitter_language_pack (1.13.2) - rb_sys (>= 0.9, < 0.9.128) - sorbet-runtime (~> 0.5) - tree_sitter_language_pack (1.13.2-aarch64-linux) - sorbet-runtime (~> 0.5) - tree_sitter_language_pack (1.13.2-arm64-darwin) - sorbet-runtime (~> 0.5) - tree_sitter_language_pack (1.13.2-x86_64-darwin) - sorbet-runtime (~> 0.5) - tree_sitter_language_pack (1.13.2-x86_64-linux) - sorbet-runtime (~> 0.5) - PATH remote: . specs: @@ -24,6 +6,41 @@ PATH tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) +PATH + remote: /home/pboling/src/my/kettle-dev/kettle-drift + specs: + kettle-drift (1.0.5) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/kettle-dev/kettle-soup-cover + specs: + kettle-soup-cover (3.0.3) + kettle-wash (~> 0.1, >= 0.1.0) + simplecov (>= 1.0) + simplecov-cobertura (>= 4.0) + simplecov-console (~> 0.9, >= 0.9.5) + simplecov-rcov (~> 0.3, >= 0.3.7) + simplecov_lcov_formatter (~> 0.9, >= 0.9.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge + specs: + ast-merge (7.1.0) + benchmark + token-resolver (~> 2.0, >= 2.0.4) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver + specs: + tree_haver (7.1.0) + citrus (~> 3.0) + parslet (~> 2.0) + tree_sitter_language_pack (>= 1.13.2, < 2.0) + version_gem (~> 1.1, >= 1.1.9) + GEM remote: https://gem.coop/ specs: @@ -35,11 +52,6 @@ GEM rake (>= 10) thor (>= 0.14) ast (2.4.3) - ast-merge (7.1.0) - benchmark - token-resolver (~> 2.0, >= 2.0.4) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) backports (3.25.3) benchmark (0.5.0) bigdecimal (4.1.2) @@ -56,7 +68,6 @@ GEM delegate (0.6.1) diff-lcs (1.6.2) diffy (3.4.4) - docile (1.4.1) dry-configurable (1.4.0) dry-core (~> 1.0) zeitwerk (~> 2.6) @@ -112,15 +123,6 @@ GEM kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) kettle-rb (0.1.4) - kettle-soup-cover (1.1.3) - simplecov (~> 0.22) - simplecov-cobertura (~> 3.0) - simplecov-console (~> 0.9, >= 0.9.3) - simplecov-html (~> 0.13, >= 0.13.1) - simplecov-lcov (~> 0.8) - simplecov-rcov (~> 0.3, >= 0.3.7) - simplecov_json_formatter (~> 0.1, >= 0.1.4) - version_gem (~> 1.1, >= 1.1.9) kettle-test (2.0.11) appraisal2 (~> 3.0, >= 3.0.6) backports (~> 3.0) @@ -132,6 +134,8 @@ GEM silent_stream (~> 1.0, >= 1.0.12) timecop-rspec (~> 1.0, >= 1.0.3) turbo_tests2 (~> 3.1, >= 3.1.12) + kettle-wash (0.1.0) + version_gem (~> 1.1, >= 1.1.14) kramdown (2.5.2) rexml (>= 3.4.4) kramdown-parser-gfm (1.1.0) @@ -173,9 +177,6 @@ GEM racc (1.8.1) rainbow (3.1.1) rake (13.4.2) - rake-compiler-dock (1.12.0) - rb_sys (0.9.127) - rake-compiler-dock (= 1.12.0) rbs (4.0.3) logger prism (>= 1.6.0) @@ -281,23 +282,19 @@ GEM silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) - simplecov (0.22.0) - docile (~> 1.1) - simplecov-html (~> 0.11) - simplecov_json_formatter (~> 0.1) - simplecov-cobertura (3.2.0) + simplecov (1.0.2) + simplecov-cobertura (4.0.0) rexml - simplecov (~> 0.19) + simplecov (~> 1.0) simplecov-console (0.9.5) ansi simplecov terminal-table - simplecov-html (0.13.2) - simplecov-lcov (0.9.0) simplecov-rcov (0.3.7) simplecov (>= 0.4.1) - simplecov_json_formatter (0.1.4) - sorbet-runtime (0.6.13342) + simplecov_lcov_formatter (0.9.0) + simplecov (>= 0.18) + sorbet-runtime (0.6.13347) standard (1.56.0) language_server-protocol (~> 3.17.0.2) lint_roller (~> 1.0) @@ -330,11 +327,14 @@ GEM token-resolver (2.0.4) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.13) - tree_haver (7.1.0) - citrus (~> 3.0) - parslet (~> 2.0) - tree_sitter_language_pack (>= 1.9.0.pre.rc.40, < 2.0) - version_gem (~> 1.1, >= 1.1.9) + tree_sitter_language_pack (1.13.3-aarch64-linux) + sorbet-runtime (~> 0.5) + tree_sitter_language_pack (1.13.3-arm64-darwin) + sorbet-runtime (~> 0.5) + tree_sitter_language_pack (1.13.3-x86_64-darwin) + sorbet-runtime (~> 0.5) + tree_sitter_language_pack (1.13.3-x86_64-linux) + sorbet-runtime (~> 0.5) tsort (0.2.0) turbo_tests2 (3.2.0) parallel_tests (>= 3.3.0, < 6) @@ -381,6 +381,7 @@ PLATFORMS DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) + ast-merge! benchmark (~> 0.5, >= 0.5.0) bundler-audit (~> 0.9.3) debug (>= 1.1) @@ -389,7 +390,8 @@ DEPENDENCIES gitmoji-regex (~> 2.0, >= 2.0.0) irb (~> 1.17) kettle-dev (~> 2.0, >= 2.2.25) - kettle-soup-cover (~> 1.0, >= 1.1.3) + kettle-drift! + kettle-soup-cover! kettle-test (~> 2.0, >= 2.0.9) kramdown (~> 2.5, >= 2.5.1) kramdown-parser-gfm (~> 1.1) @@ -410,7 +412,8 @@ DEPENDENCIES stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) toml-merge! - tree_sitter_language_pack! + tree_haver! + tree_sitter_language_pack (~> 1.13, >= 1.13.3) yaml-converter (~> 0.1) yard (~> 0.9, >= 0.9.44) yard-fence (~> 0.9, >= 0.9.1) @@ -428,6 +431,7 @@ CHECKSUMS backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd + bundler (4.0.16) sha256=d6ca5dd440c24f9abce9844cf44cc8e18c6a553de65a47efb4544137af92c47d bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 @@ -437,7 +441,6 @@ CHECKSUMS delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 - docile (1.4.1) sha256=96159be799bfa73cdb721b840e9802126e4e03dfc26863db73647204c727f21e dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -455,9 +458,11 @@ CHECKSUMS irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 kettle-dev (2.3.7) sha256=eb370113cd030d03cbe2d33b31c99858951017e5ad21a17e9ed89dc3770028ee + kettle-drift (1.0.5) kettle-rb (0.1.4) sha256=9cef7ce4f7021666b7222292f29051e51eaf042e8a5db11f3f4dd72f74243fc1 - kettle-soup-cover (1.1.3) sha256=a373827da22a7131d093afd32945e5b7d7a10a01ebfdded8fd2cb8230d69c8ad + kettle-soup-cover (3.0.3) kettle-test (2.0.11) sha256=c710c90f7ab79d51f9452f0c09f5f90657e7a893f63583855c164d0b1b107ab2 + kettle-wash (0.1.0) sha256=5c04b3900d0957339e7c7d9997bbd804599b68bde002e6f47f4e28a0eea22ea7 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 @@ -485,8 +490,6 @@ CHECKSUMS racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 - rake-compiler-dock (1.12.0) sha256=f13205c2738f3d2053afcd03491a9e4541b22a59a0bfc53fc8bc883bd8188023 - rb_sys (0.9.127) sha256=e9f90df3bb0577472d26d96127d5b5774b98f44de881e7d36aeefd28d6337847 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 @@ -519,14 +522,12 @@ CHECKSUMS ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 - simplecov (0.22.0) sha256=fe2622c7834ff23b98066bb0a854284b2729a569ac659f82621fc22ef36213a5 - simplecov-cobertura (3.2.0) sha256=70d702658677fcb20e5aceb6915ccf8bc62ff2ccd38b62b3ad5c9db5c0888740 + simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 + simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 - simplecov-html (0.13.2) sha256=bd0b8e54e7c2d7685927e8d6286466359b6f16b18cb0df47b508e8d73c777246 - simplecov-lcov (0.9.0) sha256=7a77a31e200a595ed4b0249493056efd0c920601f53d2ef135ca34ee796346cd simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc - simplecov_json_formatter (0.1.4) sha256=529418fbe8de1713ac2b2d612aa3daa56d316975d307244399fa4838c601b428 - sorbet-runtime (0.6.13342) sha256=dbeb9892597f593ed2b29e38018912787f6c4e0c4b736d8af0d6bd3c63bde3c3 + simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed + sorbet-runtime (0.6.13347) sha256=54e7221d9f4b63f58aec79f3043752a9ba7810347c6ae0d903531591cc2d5f01 standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b standard-performance (1.9.0) sha256=49483d31be448292951d80e5e67cdcb576c2502103c7b40aec6f1b6e9c88e3f2 @@ -541,11 +542,10 @@ CHECKSUMS token-resolver (2.0.4) sha256=33b926958f504525bba3ed511ab66fbcbf8ef30390815e931436b30f27ffcad0 toml-merge (7.1.0) tree_haver (7.1.0) - tree_sitter_language_pack (1.13.2) - tree_sitter_language_pack (1.13.2-aarch64-linux) - tree_sitter_language_pack (1.13.2-arm64-darwin) - tree_sitter_language_pack (1.13.2-x86_64-darwin) - tree_sitter_language_pack (1.13.2-x86_64-linux) + tree_sitter_language_pack (1.13.3-aarch64-linux) sha256=55ffc7c87868cb45658338363d9eba51b4a8b0259aa88e4de368d2bd1d52fea4 + tree_sitter_language_pack (1.13.3-arm64-darwin) sha256=bc2498db605f212a1dbd2465ed3f65190d7da786f6ed5d30fcf958121aeb4a5c + tree_sitter_language_pack (1.13.3-x86_64-darwin) sha256=061f7da6e1cc4ba936fad436ee0653d7dfdfa4aa879cf555403e3aa373d43966 + tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 diff --git a/gems/toml-merge/gemfiles/modular/templating.gemfile b/gems/toml-merge/gemfiles/modular/templating.gemfile index 1ee2a5ea7..2ddc9433f 100644 --- a/gems/toml-merge/gemfiles/modular/templating.gemfile +++ b/gems/toml-merge/gemfiles/modular/templating.gemfile @@ -4,7 +4,9 @@ structuredmerge_remote = ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('fals kettle_remote = ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? if structuredmerge_remote - # Merge recipes and parser dependencies for released installs. + # Parser dependencies for released installs. + gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' + # Merge recipes for released installs. gem 'kettle-jem', '>= 7.0' end diff --git a/gems/toml-merge/gemfiles/modular/templating_local.gemfile b/gems/toml-merge/gemfiles/modular/templating_local.gemfile index b5632ac4f..c8aef3699 100644 --- a/gems/toml-merge/gemfiles/modular/templating_local.gemfile +++ b/gems/toml-merge/gemfiles/modular/templating_local.gemfile @@ -7,7 +7,6 @@ require 'nomono/bundler' unless defined?(Nomono) structuredmerge_local_gems = %w[ - tree_sitter_language_pack tree_haver ast-merge ast-merge-git @@ -47,8 +46,6 @@ declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) structuredmerge_local_gems_to_eval = structuredmerge_local_gems - %w[toml-merge] - declared_gems kettle_dev_local_gems_to_eval = kettle_dev_local_gems - %w[toml-merge] - declared_gems -# export VENDORED_GEMS=tree_sitter_language_pack -# export VENDOR_GEM_DIR=/path/to/vendor # expects $VENDOR_GEM_DIR/tree_sitter_language_pack platform :mri do if ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false') != 0 eval_nomono_gems( diff --git a/gems/tree_haver/Gemfile b/gems/tree_haver/Gemfile index 59daef3ff..f4b83ee74 100644 --- a/gems/tree_haver/Gemfile +++ b/gems/tree_haver/Gemfile @@ -21,8 +21,8 @@ gemspec # Local workspace dependency wiring for *_local.gemfile overrides nomono_requirements = ['~> 1.0', '>= 1.0.8'] gem 'nomono', *nomono_requirements, require: false # ruby >= 2.2 -# Use the StructuredMerge TSLP fork until the Ruby ABI platform-gem fix is released. -gem 'tree_sitter_language_pack', git: 'https://github.com/structuredmerge/tree-sitter-language-pack.git', branch: 'fix/ruby-4-platform-gem-abi', glob: 'packages/ruby/*.gemspec' +# Use released TSLP with the Ruby ABI platform-gem fix. +gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' # Templating (env-switched: STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local paths) eval_gemfile 'gemfiles/modular/templating.gemfile' if ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? diff --git a/gems/tree_haver/Gemfile.lock b/gems/tree_haver/Gemfile.lock index 6a618abb9..c41ccc754 100644 --- a/gems/tree_haver/Gemfile.lock +++ b/gems/tree_haver/Gemfile.lock @@ -1,15 +1,3 @@ -GIT - remote: https://github.com/structuredmerge/tree-sitter-language-pack.git - revision: e736879d00ce55b9bbfa479a5c07363bde1512e2 - branch: fix/ruby-4-platform-gem-abi - glob: packages/ruby/*.gemspec - specs: - tree_sitter_language_pack (1.13.2) - rb_sys (>= 0.9, < 0.9.128) - sorbet-runtime (~> 0.5) - tree_sitter_language_pack (1.13.2-x86_64-linux) - sorbet-runtime (~> 0.5) - PATH remote: . specs: @@ -19,6 +7,23 @@ PATH tree_sitter_language_pack (>= 1.13.2, < 2.0) version_gem (~> 1.1, >= 1.1.9) +PATH + remote: /home/pboling/src/my/kettle-dev/kettle-drift + specs: + kettle-drift (1.0.5) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/kettle-dev/kettle-soup-cover + specs: + kettle-soup-cover (3.0.3) + kettle-wash (~> 0.1, >= 0.1.0) + simplecov (>= 1.0) + simplecov-cobertura (>= 4.0) + simplecov-console (~> 0.9, >= 0.9.5) + simplecov-rcov (~> 0.3, >= 0.3.7) + simplecov_lcov_formatter (~> 0.9, >= 0.9.0) + GEM remote: https://gem.coop/ specs: @@ -46,7 +51,6 @@ GEM delegate (0.6.1) diff-lcs (1.6.2) diffy (3.4.4) - docile (1.4.1) dry-configurable (1.4.0) dry-core (~> 1.0) zeitwerk (~> 2.6) @@ -102,15 +106,6 @@ GEM kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) kettle-rb (0.1.4) - kettle-soup-cover (1.1.3) - simplecov (~> 0.22) - simplecov-cobertura (~> 3.0) - simplecov-console (~> 0.9, >= 0.9.3) - simplecov-html (~> 0.13, >= 0.13.1) - simplecov-lcov (~> 0.8) - simplecov-rcov (~> 0.3, >= 0.3.7) - simplecov_json_formatter (~> 0.1, >= 0.1.4) - version_gem (~> 1.1, >= 1.1.9) kettle-test (2.0.11) appraisal2 (~> 3.0, >= 3.0.6) backports (~> 3.0) @@ -122,6 +117,8 @@ GEM silent_stream (~> 1.0, >= 1.0.12) timecop-rspec (~> 1.0, >= 1.0.3) turbo_tests2 (~> 3.1, >= 3.1.12) + kettle-wash (0.1.0) + version_gem (~> 1.1, >= 1.1.14) kramdown (2.5.2) rexml (>= 3.4.4) kramdown-parser-gfm (1.1.0) @@ -155,9 +152,6 @@ GEM racc (1.8.1) rainbow (3.1.1) rake (13.4.2) - rake-compiler-dock (1.12.0) - rb_sys (0.9.127) - rake-compiler-dock (= 1.12.0) rbs (4.0.3) logger prism (>= 1.6.0) @@ -263,23 +257,19 @@ GEM silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) - simplecov (0.22.0) - docile (~> 1.1) - simplecov-html (~> 0.11) - simplecov_json_formatter (~> 0.1) - simplecov-cobertura (3.2.0) + simplecov (1.0.2) + simplecov-cobertura (4.0.0) rexml - simplecov (~> 0.19) + simplecov (~> 1.0) simplecov-console (0.9.5) ansi simplecov terminal-table - simplecov-html (0.13.2) - simplecov-lcov (0.9.0) simplecov-rcov (0.3.7) simplecov (>= 0.4.1) - simplecov_json_formatter (0.1.4) - sorbet-runtime (0.6.13344) + simplecov_lcov_formatter (0.9.0) + simplecov (>= 0.18) + sorbet-runtime (0.6.13347) standard (1.56.0) language_server-protocol (~> 3.17.0.2) lint_roller (~> 1.0) @@ -314,6 +304,8 @@ GEM toml-rb (4.2.0) citrus (~> 3.0, > 3.0) racc (~> 1.7) + tree_sitter_language_pack (1.13.3-x86_64-linux) + sorbet-runtime (~> 0.5) tsort (0.2.0) turbo_tests2 (3.2.0) parallel_tests (>= 3.3.0, < 6) @@ -364,7 +356,8 @@ DEPENDENCIES gitmoji-regex (~> 2.0, >= 2.0.0) irb (~> 1.17) kettle-dev (~> 2.0, >= 2.2.25) - kettle-soup-cover (~> 1.0, >= 1.1.3) + kettle-drift! + kettle-soup-cover! kettle-test (~> 2.0, >= 2.0.9) kramdown (~> 2.5, >= 2.5.1) kramdown-parser-gfm (~> 1.1) @@ -387,7 +380,7 @@ DEPENDENCIES toml (~> 0.3) toml-rb (~> 4.1) tree_haver! - tree_sitter_language_pack! + tree_sitter_language_pack (~> 1.13, >= 1.13.3) yaml-converter (~> 0.1) yard (~> 0.9, >= 0.9.44) yard-fence (~> 0.9, >= 0.9.1) @@ -404,6 +397,7 @@ CHECKSUMS backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd + bundler (4.0.16) sha256=d6ca5dd440c24f9abce9844cf44cc8e18c6a553de65a47efb4544137af92c47d bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 @@ -413,7 +407,6 @@ CHECKSUMS delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 - docile (1.4.1) sha256=96159be799bfa73cdb721b840e9802126e4e03dfc26863db73647204c727f21e dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -431,9 +424,11 @@ CHECKSUMS irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 kettle-dev (2.3.7) sha256=eb370113cd030d03cbe2d33b31c99858951017e5ad21a17e9ed89dc3770028ee + kettle-drift (1.0.5) kettle-rb (0.1.4) sha256=9cef7ce4f7021666b7222292f29051e51eaf042e8a5db11f3f4dd72f74243fc1 - kettle-soup-cover (1.1.3) sha256=a373827da22a7131d093afd32945e5b7d7a10a01ebfdded8fd2cb8230d69c8ad + kettle-soup-cover (3.0.3) kettle-test (2.0.11) sha256=c710c90f7ab79d51f9452f0c09f5f90657e7a893f63583855c164d0b1b107ab2 + kettle-wash (0.1.0) sha256=5c04b3900d0957339e7c7d9997bbd804599b68bde002e6f47f4e28a0eea22ea7 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 @@ -457,8 +452,6 @@ CHECKSUMS racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 - rake-compiler-dock (1.12.0) sha256=f13205c2738f3d2053afcd03491a9e4541b22a59a0bfc53fc8bc883bd8188023 - rb_sys (0.9.127) sha256=e9f90df3bb0577472d26d96127d5b5774b98f44de881e7d36aeefd28d6337847 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 @@ -491,14 +484,12 @@ CHECKSUMS ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 - simplecov (0.22.0) sha256=fe2622c7834ff23b98066bb0a854284b2729a569ac659f82621fc22ef36213a5 - simplecov-cobertura (3.2.0) sha256=70d702658677fcb20e5aceb6915ccf8bc62ff2ccd38b62b3ad5c9db5c0888740 + simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 + simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 - simplecov-html (0.13.2) sha256=bd0b8e54e7c2d7685927e8d6286466359b6f16b18cb0df47b508e8d73c777246 - simplecov-lcov (0.9.0) sha256=7a77a31e200a595ed4b0249493056efd0c920601f53d2ef135ca34ee796346cd simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc - simplecov_json_formatter (0.1.4) sha256=529418fbe8de1713ac2b2d612aa3daa56d316975d307244399fa4838c601b428 - sorbet-runtime (0.6.13344) sha256=0b4e3310cd10bc814f0d7cfa65db82151103322e75dd63c961546845dd8ba5e5 + simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed + sorbet-runtime (0.6.13347) sha256=54e7221d9f4b63f58aec79f3043752a9ba7810347c6ae0d903531591cc2d5f01 standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b standard-performance (1.9.0) sha256=49483d31be448292951d80e5e67cdcb576c2502103c7b40aec6f1b6e9c88e3f2 @@ -513,8 +504,7 @@ CHECKSUMS toml (0.3.0) sha256=0a91d0f76a9036e84e44f95693b12f58d358c1df3ac8e3b5271f2056ecc6e4b9 toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 tree_haver (7.1.0) - tree_sitter_language_pack (1.13.2) - tree_sitter_language_pack (1.13.2-x86_64-linux) + tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 diff --git a/gems/tree_haver/gemfiles/modular/templating.gemfile b/gems/tree_haver/gemfiles/modular/templating.gemfile index 1ee2a5ea7..2ddc9433f 100644 --- a/gems/tree_haver/gemfiles/modular/templating.gemfile +++ b/gems/tree_haver/gemfiles/modular/templating.gemfile @@ -4,7 +4,9 @@ structuredmerge_remote = ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('fals kettle_remote = ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? if structuredmerge_remote - # Merge recipes and parser dependencies for released installs. + # Parser dependencies for released installs. + gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' + # Merge recipes for released installs. gem 'kettle-jem', '>= 7.0' end diff --git a/gems/tree_haver/gemfiles/modular/templating_local.gemfile b/gems/tree_haver/gemfiles/modular/templating_local.gemfile index 36f191127..e17b4c419 100644 --- a/gems/tree_haver/gemfiles/modular/templating_local.gemfile +++ b/gems/tree_haver/gemfiles/modular/templating_local.gemfile @@ -7,7 +7,6 @@ require 'nomono/bundler' unless defined?(Nomono) structuredmerge_local_gems = %w[ - tree_sitter_language_pack tree_haver ast-merge ast-merge-git @@ -47,8 +46,6 @@ declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) structuredmerge_local_gems_to_eval = structuredmerge_local_gems - %w[tree_haver] - declared_gems kettle_dev_local_gems_to_eval = kettle_dev_local_gems - %w[tree_haver] - declared_gems -# export VENDORED_GEMS=tree_sitter_language_pack -# export VENDOR_GEM_DIR=/path/to/vendor # expects $VENDOR_GEM_DIR/tree_sitter_language_pack platform :mri do if ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false') != 0 eval_nomono_gems( diff --git a/gems/typescript-merge/Gemfile b/gems/typescript-merge/Gemfile index bfbdec3f1..8f2d10c41 100644 --- a/gems/typescript-merge/Gemfile +++ b/gems/typescript-merge/Gemfile @@ -72,8 +72,8 @@ if direct_sibling_gems.any? && end end -# Use the StructuredMerge TSLP fork until the Ruby ABI platform-gem fix is released. -gem 'tree_sitter_language_pack', git: 'https://github.com/structuredmerge/tree-sitter-language-pack.git', branch: 'fix/ruby-4-platform-gem-abi', glob: 'packages/ruby/*.gemspec' +# Use released TSLP with the Ruby ABI platform-gem fix. +gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' # Templating (env-switched: STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local paths) eval_gemfile 'gemfiles/modular/templating.gemfile' if ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? diff --git a/gems/typescript-merge/Gemfile.lock b/gems/typescript-merge/Gemfile.lock index 17c6c9f0a..dc4a6071f 100644 --- a/gems/typescript-merge/Gemfile.lock +++ b/gems/typescript-merge/Gemfile.lock @@ -1,21 +1,3 @@ -GIT - remote: https://github.com/structuredmerge/tree-sitter-language-pack.git - revision: e736879d00ce55b9bbfa479a5c07363bde1512e2 - branch: fix/ruby-4-platform-gem-abi - glob: packages/ruby/*.gemspec - specs: - tree_sitter_language_pack (1.13.2) - rb_sys (>= 0.9, < 0.9.128) - sorbet-runtime (~> 0.5) - tree_sitter_language_pack (1.13.2-aarch64-linux) - sorbet-runtime (~> 0.5) - tree_sitter_language_pack (1.13.2-arm64-darwin) - sorbet-runtime (~> 0.5) - tree_sitter_language_pack (1.13.2-x86_64-darwin) - sorbet-runtime (~> 0.5) - tree_sitter_language_pack (1.13.2-x86_64-linux) - sorbet-runtime (~> 0.5) - PATH remote: . specs: @@ -24,6 +6,41 @@ PATH tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) +PATH + remote: /home/pboling/src/my/kettle-dev/kettle-drift + specs: + kettle-drift (1.0.5) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/kettle-dev/kettle-soup-cover + specs: + kettle-soup-cover (3.0.3) + kettle-wash (~> 0.1, >= 0.1.0) + simplecov (>= 1.0) + simplecov-cobertura (>= 4.0) + simplecov-console (~> 0.9, >= 0.9.5) + simplecov-rcov (~> 0.3, >= 0.3.7) + simplecov_lcov_formatter (~> 0.9, >= 0.9.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge + specs: + ast-merge (7.1.0) + benchmark + token-resolver (~> 2.0, >= 2.0.4) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver + specs: + tree_haver (7.1.0) + citrus (~> 3.0) + parslet (~> 2.0) + tree_sitter_language_pack (>= 1.13.2, < 2.0) + version_gem (~> 1.1, >= 1.1.9) + GEM remote: https://gem.coop/ specs: @@ -35,11 +52,6 @@ GEM rake (>= 10) thor (>= 0.14) ast (2.4.3) - ast-merge (7.1.0) - benchmark - token-resolver (~> 2.0, >= 2.0.4) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) backports (3.25.3) benchmark (0.5.0) bigdecimal (4.1.2) @@ -56,7 +68,6 @@ GEM delegate (0.6.1) diff-lcs (1.6.2) diffy (3.4.4) - docile (1.4.1) dry-configurable (1.4.0) dry-core (~> 1.0) zeitwerk (~> 2.6) @@ -112,15 +123,6 @@ GEM kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) kettle-rb (0.1.4) - kettle-soup-cover (1.1.3) - simplecov (~> 0.22) - simplecov-cobertura (~> 3.0) - simplecov-console (~> 0.9, >= 0.9.3) - simplecov-html (~> 0.13, >= 0.13.1) - simplecov-lcov (~> 0.8) - simplecov-rcov (~> 0.3, >= 0.3.7) - simplecov_json_formatter (~> 0.1, >= 0.1.4) - version_gem (~> 1.1, >= 1.1.9) kettle-test (2.0.11) appraisal2 (~> 3.0, >= 3.0.6) backports (~> 3.0) @@ -132,6 +134,8 @@ GEM silent_stream (~> 1.0, >= 1.0.12) timecop-rspec (~> 1.0, >= 1.0.3) turbo_tests2 (~> 3.1, >= 3.1.12) + kettle-wash (0.1.0) + version_gem (~> 1.1, >= 1.1.14) kramdown (2.5.2) rexml (>= 3.4.4) kramdown-parser-gfm (1.1.0) @@ -173,9 +177,6 @@ GEM racc (1.8.1) rainbow (3.1.1) rake (13.4.2) - rake-compiler-dock (1.12.0) - rb_sys (0.9.127) - rake-compiler-dock (= 1.12.0) rbs (4.0.3) logger prism (>= 1.6.0) @@ -281,23 +282,19 @@ GEM silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) - simplecov (0.22.0) - docile (~> 1.1) - simplecov-html (~> 0.11) - simplecov_json_formatter (~> 0.1) - simplecov-cobertura (3.2.0) + simplecov (1.0.2) + simplecov-cobertura (4.0.0) rexml - simplecov (~> 0.19) + simplecov (~> 1.0) simplecov-console (0.9.5) ansi simplecov terminal-table - simplecov-html (0.13.2) - simplecov-lcov (0.9.0) simplecov-rcov (0.3.7) simplecov (>= 0.4.1) - simplecov_json_formatter (0.1.4) - sorbet-runtime (0.6.13342) + simplecov_lcov_formatter (0.9.0) + simplecov (>= 0.18) + sorbet-runtime (0.6.13347) standard (1.56.0) language_server-protocol (~> 3.17.0.2) lint_roller (~> 1.0) @@ -330,11 +327,14 @@ GEM token-resolver (2.0.4) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.13) - tree_haver (7.1.0) - citrus (~> 3.0) - parslet (~> 2.0) - tree_sitter_language_pack (>= 1.9.0.pre.rc.40, < 2.0) - version_gem (~> 1.1, >= 1.1.9) + tree_sitter_language_pack (1.13.3-aarch64-linux) + sorbet-runtime (~> 0.5) + tree_sitter_language_pack (1.13.3-arm64-darwin) + sorbet-runtime (~> 0.5) + tree_sitter_language_pack (1.13.3-x86_64-darwin) + sorbet-runtime (~> 0.5) + tree_sitter_language_pack (1.13.3-x86_64-linux) + sorbet-runtime (~> 0.5) tsort (0.2.0) turbo_tests2 (3.2.0) parallel_tests (>= 3.3.0, < 6) @@ -381,6 +381,7 @@ PLATFORMS DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) + ast-merge! benchmark (~> 0.5, >= 0.5.0) bundler-audit (~> 0.9.3) debug (>= 1.1) @@ -389,7 +390,8 @@ DEPENDENCIES gitmoji-regex (~> 2.0, >= 2.0.0) irb (~> 1.17) kettle-dev (~> 2.0, >= 2.2.25) - kettle-soup-cover (~> 1.0, >= 1.1.3) + kettle-drift! + kettle-soup-cover! kettle-test (~> 2.0, >= 2.0.9) kramdown (~> 2.5, >= 2.5.1) kramdown-parser-gfm (~> 1.1) @@ -409,7 +411,8 @@ DEPENDENCIES standard (>= 1.50) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) - tree_sitter_language_pack! + tree_haver! + tree_sitter_language_pack (~> 1.13, >= 1.13.3) typescript-merge! yaml-converter (~> 0.1) yard (~> 0.9, >= 0.9.44) @@ -428,6 +431,7 @@ CHECKSUMS backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd + bundler (4.0.16) sha256=d6ca5dd440c24f9abce9844cf44cc8e18c6a553de65a47efb4544137af92c47d bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 @@ -437,7 +441,6 @@ CHECKSUMS delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 - docile (1.4.1) sha256=96159be799bfa73cdb721b840e9802126e4e03dfc26863db73647204c727f21e dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -455,9 +458,11 @@ CHECKSUMS irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 kettle-dev (2.3.7) sha256=eb370113cd030d03cbe2d33b31c99858951017e5ad21a17e9ed89dc3770028ee + kettle-drift (1.0.5) kettle-rb (0.1.4) sha256=9cef7ce4f7021666b7222292f29051e51eaf042e8a5db11f3f4dd72f74243fc1 - kettle-soup-cover (1.1.3) sha256=a373827da22a7131d093afd32945e5b7d7a10a01ebfdded8fd2cb8230d69c8ad + kettle-soup-cover (3.0.3) kettle-test (2.0.11) sha256=c710c90f7ab79d51f9452f0c09f5f90657e7a893f63583855c164d0b1b107ab2 + kettle-wash (0.1.0) sha256=5c04b3900d0957339e7c7d9997bbd804599b68bde002e6f47f4e28a0eea22ea7 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 @@ -485,8 +490,6 @@ CHECKSUMS racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 - rake-compiler-dock (1.12.0) sha256=f13205c2738f3d2053afcd03491a9e4541b22a59a0bfc53fc8bc883bd8188023 - rb_sys (0.9.127) sha256=e9f90df3bb0577472d26d96127d5b5774b98f44de881e7d36aeefd28d6337847 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 @@ -519,14 +522,12 @@ CHECKSUMS ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 - simplecov (0.22.0) sha256=fe2622c7834ff23b98066bb0a854284b2729a569ac659f82621fc22ef36213a5 - simplecov-cobertura (3.2.0) sha256=70d702658677fcb20e5aceb6915ccf8bc62ff2ccd38b62b3ad5c9db5c0888740 + simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 + simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 - simplecov-html (0.13.2) sha256=bd0b8e54e7c2d7685927e8d6286466359b6f16b18cb0df47b508e8d73c777246 - simplecov-lcov (0.9.0) sha256=7a77a31e200a595ed4b0249493056efd0c920601f53d2ef135ca34ee796346cd simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc - simplecov_json_formatter (0.1.4) sha256=529418fbe8de1713ac2b2d612aa3daa56d316975d307244399fa4838c601b428 - sorbet-runtime (0.6.13342) sha256=dbeb9892597f593ed2b29e38018912787f6c4e0c4b736d8af0d6bd3c63bde3c3 + simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed + sorbet-runtime (0.6.13347) sha256=54e7221d9f4b63f58aec79f3043752a9ba7810347c6ae0d903531591cc2d5f01 standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b standard-performance (1.9.0) sha256=49483d31be448292951d80e5e67cdcb576c2502103c7b40aec6f1b6e9c88e3f2 @@ -540,11 +541,10 @@ CHECKSUMS timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.4) sha256=33b926958f504525bba3ed511ab66fbcbf8ef30390815e931436b30f27ffcad0 tree_haver (7.1.0) - tree_sitter_language_pack (1.13.2) - tree_sitter_language_pack (1.13.2-aarch64-linux) - tree_sitter_language_pack (1.13.2-arm64-darwin) - tree_sitter_language_pack (1.13.2-x86_64-darwin) - tree_sitter_language_pack (1.13.2-x86_64-linux) + tree_sitter_language_pack (1.13.3-aarch64-linux) sha256=55ffc7c87868cb45658338363d9eba51b4a8b0259aa88e4de368d2bd1d52fea4 + tree_sitter_language_pack (1.13.3-arm64-darwin) sha256=bc2498db605f212a1dbd2465ed3f65190d7da786f6ed5d30fcf958121aeb4a5c + tree_sitter_language_pack (1.13.3-x86_64-darwin) sha256=061f7da6e1cc4ba936fad436ee0653d7dfdfa4aa879cf555403e3aa373d43966 + tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 typescript-merge (7.1.0) diff --git a/gems/typescript-merge/gemfiles/modular/templating.gemfile b/gems/typescript-merge/gemfiles/modular/templating.gemfile index 1ee2a5ea7..2ddc9433f 100644 --- a/gems/typescript-merge/gemfiles/modular/templating.gemfile +++ b/gems/typescript-merge/gemfiles/modular/templating.gemfile @@ -4,7 +4,9 @@ structuredmerge_remote = ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('fals kettle_remote = ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? if structuredmerge_remote - # Merge recipes and parser dependencies for released installs. + # Parser dependencies for released installs. + gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' + # Merge recipes for released installs. gem 'kettle-jem', '>= 7.0' end diff --git a/gems/typescript-merge/gemfiles/modular/templating_local.gemfile b/gems/typescript-merge/gemfiles/modular/templating_local.gemfile index 1d28aafa5..891bbf93c 100644 --- a/gems/typescript-merge/gemfiles/modular/templating_local.gemfile +++ b/gems/typescript-merge/gemfiles/modular/templating_local.gemfile @@ -7,7 +7,6 @@ require 'nomono/bundler' unless defined?(Nomono) structuredmerge_local_gems = %w[ - tree_sitter_language_pack tree_haver ast-merge ast-merge-git @@ -47,8 +46,6 @@ declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) structuredmerge_local_gems_to_eval = structuredmerge_local_gems - %w[typescript-merge] - declared_gems kettle_dev_local_gems_to_eval = kettle_dev_local_gems - %w[typescript-merge] - declared_gems -# export VENDORED_GEMS=tree_sitter_language_pack -# export VENDOR_GEM_DIR=/path/to/vendor # expects $VENDOR_GEM_DIR/tree_sitter_language_pack platform :mri do if ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false') != 0 eval_nomono_gems( diff --git a/gems/yaml-merge/Gemfile b/gems/yaml-merge/Gemfile index eeafd32e3..49b7d5721 100644 --- a/gems/yaml-merge/Gemfile +++ b/gems/yaml-merge/Gemfile @@ -72,8 +72,8 @@ if direct_sibling_gems.any? && end end -# Use the StructuredMerge TSLP fork until the Ruby ABI platform-gem fix is released. -gem 'tree_sitter_language_pack', git: 'https://github.com/structuredmerge/tree-sitter-language-pack.git', branch: 'fix/ruby-4-platform-gem-abi', glob: 'packages/ruby/*.gemspec' +# Use released TSLP with the Ruby ABI platform-gem fix. +gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' # Templating (env-switched: STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local paths) eval_gemfile 'gemfiles/modular/templating.gemfile' if ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? diff --git a/gems/yaml-merge/Gemfile.lock b/gems/yaml-merge/Gemfile.lock index eac69b52a..ad17b24cf 100644 --- a/gems/yaml-merge/Gemfile.lock +++ b/gems/yaml-merge/Gemfile.lock @@ -1,21 +1,3 @@ -GIT - remote: https://github.com/structuredmerge/tree-sitter-language-pack.git - revision: e736879d00ce55b9bbfa479a5c07363bde1512e2 - branch: fix/ruby-4-platform-gem-abi - glob: packages/ruby/*.gemspec - specs: - tree_sitter_language_pack (1.13.2) - rb_sys (>= 0.9, < 0.9.128) - sorbet-runtime (~> 0.5) - tree_sitter_language_pack (1.13.2-aarch64-linux) - sorbet-runtime (~> 0.5) - tree_sitter_language_pack (1.13.2-arm64-darwin) - sorbet-runtime (~> 0.5) - tree_sitter_language_pack (1.13.2-x86_64-darwin) - sorbet-runtime (~> 0.5) - tree_sitter_language_pack (1.13.2-x86_64-linux) - sorbet-runtime (~> 0.5) - PATH remote: . specs: @@ -24,6 +6,41 @@ PATH tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) +PATH + remote: /home/pboling/src/my/kettle-dev/kettle-drift + specs: + kettle-drift (1.0.5) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/kettle-dev/kettle-soup-cover + specs: + kettle-soup-cover (3.0.3) + kettle-wash (~> 0.1, >= 0.1.0) + simplecov (>= 1.0) + simplecov-cobertura (>= 4.0) + simplecov-console (~> 0.9, >= 0.9.5) + simplecov-rcov (~> 0.3, >= 0.3.7) + simplecov_lcov_formatter (~> 0.9, >= 0.9.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge + specs: + ast-merge (7.1.0) + benchmark + token-resolver (~> 2.0, >= 2.0.4) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver + specs: + tree_haver (7.1.0) + citrus (~> 3.0) + parslet (~> 2.0) + tree_sitter_language_pack (>= 1.13.2, < 2.0) + version_gem (~> 1.1, >= 1.1.9) + GEM remote: https://gem.coop/ specs: @@ -35,11 +52,6 @@ GEM rake (>= 10) thor (>= 0.14) ast (2.4.3) - ast-merge (7.1.0) - benchmark - token-resolver (~> 2.0, >= 2.0.4) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) backports (3.25.3) benchmark (0.5.0) bigdecimal (4.1.2) @@ -56,7 +68,6 @@ GEM delegate (0.6.1) diff-lcs (1.6.2) diffy (3.4.4) - docile (1.4.1) dry-configurable (1.4.0) dry-core (~> 1.0) zeitwerk (~> 2.6) @@ -112,15 +123,6 @@ GEM kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) kettle-rb (0.1.4) - kettle-soup-cover (1.1.3) - simplecov (~> 0.22) - simplecov-cobertura (~> 3.0) - simplecov-console (~> 0.9, >= 0.9.3) - simplecov-html (~> 0.13, >= 0.13.1) - simplecov-lcov (~> 0.8) - simplecov-rcov (~> 0.3, >= 0.3.7) - simplecov_json_formatter (~> 0.1, >= 0.1.4) - version_gem (~> 1.1, >= 1.1.9) kettle-test (2.0.11) appraisal2 (~> 3.0, >= 3.0.6) backports (~> 3.0) @@ -132,6 +134,8 @@ GEM silent_stream (~> 1.0, >= 1.0.12) timecop-rspec (~> 1.0, >= 1.0.3) turbo_tests2 (~> 3.1, >= 3.1.12) + kettle-wash (0.1.0) + version_gem (~> 1.1, >= 1.1.14) kramdown (2.5.2) rexml (>= 3.4.4) kramdown-parser-gfm (1.1.0) @@ -173,9 +177,6 @@ GEM racc (1.8.1) rainbow (3.1.1) rake (13.4.2) - rake-compiler-dock (1.12.0) - rb_sys (0.9.127) - rake-compiler-dock (= 1.12.0) rbs (4.0.3) logger prism (>= 1.6.0) @@ -281,23 +282,19 @@ GEM silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) - simplecov (0.22.0) - docile (~> 1.1) - simplecov-html (~> 0.11) - simplecov_json_formatter (~> 0.1) - simplecov-cobertura (3.2.0) + simplecov (1.0.2) + simplecov-cobertura (4.0.0) rexml - simplecov (~> 0.19) + simplecov (~> 1.0) simplecov-console (0.9.5) ansi simplecov terminal-table - simplecov-html (0.13.2) - simplecov-lcov (0.9.0) simplecov-rcov (0.3.7) simplecov (>= 0.4.1) - simplecov_json_formatter (0.1.4) - sorbet-runtime (0.6.13342) + simplecov_lcov_formatter (0.9.0) + simplecov (>= 0.18) + sorbet-runtime (0.6.13347) standard (1.56.0) language_server-protocol (~> 3.17.0.2) lint_roller (~> 1.0) @@ -330,11 +327,14 @@ GEM token-resolver (2.0.4) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.13) - tree_haver (7.1.0) - citrus (~> 3.0) - parslet (~> 2.0) - tree_sitter_language_pack (>= 1.9.0.pre.rc.40, < 2.0) - version_gem (~> 1.1, >= 1.1.9) + tree_sitter_language_pack (1.13.3-aarch64-linux) + sorbet-runtime (~> 0.5) + tree_sitter_language_pack (1.13.3-arm64-darwin) + sorbet-runtime (~> 0.5) + tree_sitter_language_pack (1.13.3-x86_64-darwin) + sorbet-runtime (~> 0.5) + tree_sitter_language_pack (1.13.3-x86_64-linux) + sorbet-runtime (~> 0.5) tsort (0.2.0) turbo_tests2 (3.2.0) parallel_tests (>= 3.3.0, < 6) @@ -381,6 +381,7 @@ PLATFORMS DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) + ast-merge! benchmark (~> 0.5, >= 0.5.0) bundler-audit (~> 0.9.3) debug (>= 1.1) @@ -389,7 +390,8 @@ DEPENDENCIES gitmoji-regex (~> 2.0, >= 2.0.0) irb (~> 1.17) kettle-dev (~> 2.0, >= 2.2.25) - kettle-soup-cover (~> 1.0, >= 1.1.3) + kettle-drift! + kettle-soup-cover! kettle-test (~> 2.0, >= 2.0.9) kramdown (~> 2.5, >= 2.5.1) kramdown-parser-gfm (~> 1.1) @@ -409,7 +411,8 @@ DEPENDENCIES standard (>= 1.50) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) - tree_sitter_language_pack! + tree_haver! + tree_sitter_language_pack (~> 1.13, >= 1.13.3) yaml-converter (~> 0.1) yaml-merge! yard (~> 0.9, >= 0.9.44) @@ -428,6 +431,7 @@ CHECKSUMS backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd + bundler (4.0.16) sha256=d6ca5dd440c24f9abce9844cf44cc8e18c6a553de65a47efb4544137af92c47d bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 @@ -437,7 +441,6 @@ CHECKSUMS delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 - docile (1.4.1) sha256=96159be799bfa73cdb721b840e9802126e4e03dfc26863db73647204c727f21e dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -455,9 +458,11 @@ CHECKSUMS irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 kettle-dev (2.3.7) sha256=eb370113cd030d03cbe2d33b31c99858951017e5ad21a17e9ed89dc3770028ee + kettle-drift (1.0.5) kettle-rb (0.1.4) sha256=9cef7ce4f7021666b7222292f29051e51eaf042e8a5db11f3f4dd72f74243fc1 - kettle-soup-cover (1.1.3) sha256=a373827da22a7131d093afd32945e5b7d7a10a01ebfdded8fd2cb8230d69c8ad + kettle-soup-cover (3.0.3) kettle-test (2.0.11) sha256=c710c90f7ab79d51f9452f0c09f5f90657e7a893f63583855c164d0b1b107ab2 + kettle-wash (0.1.0) sha256=5c04b3900d0957339e7c7d9997bbd804599b68bde002e6f47f4e28a0eea22ea7 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 @@ -485,8 +490,6 @@ CHECKSUMS racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 - rake-compiler-dock (1.12.0) sha256=f13205c2738f3d2053afcd03491a9e4541b22a59a0bfc53fc8bc883bd8188023 - rb_sys (0.9.127) sha256=e9f90df3bb0577472d26d96127d5b5774b98f44de881e7d36aeefd28d6337847 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 @@ -519,14 +522,12 @@ CHECKSUMS ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 - simplecov (0.22.0) sha256=fe2622c7834ff23b98066bb0a854284b2729a569ac659f82621fc22ef36213a5 - simplecov-cobertura (3.2.0) sha256=70d702658677fcb20e5aceb6915ccf8bc62ff2ccd38b62b3ad5c9db5c0888740 + simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 + simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 - simplecov-html (0.13.2) sha256=bd0b8e54e7c2d7685927e8d6286466359b6f16b18cb0df47b508e8d73c777246 - simplecov-lcov (0.9.0) sha256=7a77a31e200a595ed4b0249493056efd0c920601f53d2ef135ca34ee796346cd simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc - simplecov_json_formatter (0.1.4) sha256=529418fbe8de1713ac2b2d612aa3daa56d316975d307244399fa4838c601b428 - sorbet-runtime (0.6.13342) sha256=dbeb9892597f593ed2b29e38018912787f6c4e0c4b736d8af0d6bd3c63bde3c3 + simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed + sorbet-runtime (0.6.13347) sha256=54e7221d9f4b63f58aec79f3043752a9ba7810347c6ae0d903531591cc2d5f01 standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b standard-performance (1.9.0) sha256=49483d31be448292951d80e5e67cdcb576c2502103c7b40aec6f1b6e9c88e3f2 @@ -540,11 +541,10 @@ CHECKSUMS timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.4) sha256=33b926958f504525bba3ed511ab66fbcbf8ef30390815e931436b30f27ffcad0 tree_haver (7.1.0) - tree_sitter_language_pack (1.13.2) - tree_sitter_language_pack (1.13.2-aarch64-linux) - tree_sitter_language_pack (1.13.2-arm64-darwin) - tree_sitter_language_pack (1.13.2-x86_64-darwin) - tree_sitter_language_pack (1.13.2-x86_64-linux) + tree_sitter_language_pack (1.13.3-aarch64-linux) sha256=55ffc7c87868cb45658338363d9eba51b4a8b0259aa88e4de368d2bd1d52fea4 + tree_sitter_language_pack (1.13.3-arm64-darwin) sha256=bc2498db605f212a1dbd2465ed3f65190d7da786f6ed5d30fcf958121aeb4a5c + tree_sitter_language_pack (1.13.3-x86_64-darwin) sha256=061f7da6e1cc4ba936fad436ee0653d7dfdfa4aa879cf555403e3aa373d43966 + tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 diff --git a/gems/yaml-merge/gemfiles/modular/templating.gemfile b/gems/yaml-merge/gemfiles/modular/templating.gemfile index 1ee2a5ea7..2ddc9433f 100644 --- a/gems/yaml-merge/gemfiles/modular/templating.gemfile +++ b/gems/yaml-merge/gemfiles/modular/templating.gemfile @@ -4,7 +4,9 @@ structuredmerge_remote = ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('fals kettle_remote = ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? if structuredmerge_remote - # Merge recipes and parser dependencies for released installs. + # Parser dependencies for released installs. + gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' + # Merge recipes for released installs. gem 'kettle-jem', '>= 7.0' end diff --git a/gems/yaml-merge/gemfiles/modular/templating_local.gemfile b/gems/yaml-merge/gemfiles/modular/templating_local.gemfile index 1b66e66c9..8a0c2dcd4 100644 --- a/gems/yaml-merge/gemfiles/modular/templating_local.gemfile +++ b/gems/yaml-merge/gemfiles/modular/templating_local.gemfile @@ -7,7 +7,6 @@ require 'nomono/bundler' unless defined?(Nomono) structuredmerge_local_gems = %w[ - tree_sitter_language_pack tree_haver ast-merge ast-merge-git @@ -47,8 +46,6 @@ declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) structuredmerge_local_gems_to_eval = structuredmerge_local_gems - %w[yaml-merge] - declared_gems kettle_dev_local_gems_to_eval = kettle_dev_local_gems - %w[yaml-merge] - declared_gems -# export VENDORED_GEMS=tree_sitter_language_pack -# export VENDOR_GEM_DIR=/path/to/vendor # expects $VENDOR_GEM_DIR/tree_sitter_language_pack platform :mri do if ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false') != 0 eval_nomono_gems( diff --git a/gems/zip-merge/Gemfile b/gems/zip-merge/Gemfile index 840b424d2..744d3de89 100644 --- a/gems/zip-merge/Gemfile +++ b/gems/zip-merge/Gemfile @@ -71,8 +71,8 @@ if direct_sibling_gems.any? && end end -# Use the StructuredMerge TSLP fork until the Ruby ABI platform-gem fix is released. -gem 'tree_sitter_language_pack', git: 'https://github.com/structuredmerge/tree-sitter-language-pack.git', branch: 'fix/ruby-4-platform-gem-abi', glob: 'packages/ruby/*.gemspec' +# Use released TSLP with the Ruby ABI platform-gem fix. +gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' # Templating (env-switched: STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local paths) eval_gemfile 'gemfiles/modular/templating.gemfile' if ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? diff --git a/gems/zip-merge/Gemfile.lock b/gems/zip-merge/Gemfile.lock index 61a2ab1b2..44bb38733 100644 --- a/gems/zip-merge/Gemfile.lock +++ b/gems/zip-merge/Gemfile.lock @@ -1,21 +1,3 @@ -GIT - remote: https://github.com/structuredmerge/tree-sitter-language-pack.git - revision: e736879d00ce55b9bbfa479a5c07363bde1512e2 - branch: fix/ruby-4-platform-gem-abi - glob: packages/ruby/*.gemspec - specs: - tree_sitter_language_pack (1.13.2) - rb_sys (>= 0.9, < 0.9.128) - sorbet-runtime (~> 0.5) - tree_sitter_language_pack (1.13.2-aarch64-linux) - sorbet-runtime (~> 0.5) - tree_sitter_language_pack (1.13.2-arm64-darwin) - sorbet-runtime (~> 0.5) - tree_sitter_language_pack (1.13.2-x86_64-darwin) - sorbet-runtime (~> 0.5) - tree_sitter_language_pack (1.13.2-x86_64-linux) - sorbet-runtime (~> 0.5) - PATH remote: . specs: @@ -23,6 +5,32 @@ PATH tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) +PATH + remote: /home/pboling/src/my/kettle-dev/kettle-drift + specs: + kettle-drift (1.0.5) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/kettle-dev/kettle-soup-cover + specs: + kettle-soup-cover (3.0.3) + kettle-wash (~> 0.1, >= 0.1.0) + simplecov (>= 1.0) + simplecov-cobertura (>= 4.0) + simplecov-console (~> 0.9, >= 0.9.5) + simplecov-rcov (~> 0.3, >= 0.3.7) + simplecov_lcov_formatter (~> 0.9, >= 0.9.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver + specs: + tree_haver (7.1.0) + citrus (~> 3.0) + parslet (~> 2.0) + tree_sitter_language_pack (>= 1.13.2, < 2.0) + version_gem (~> 1.1, >= 1.1.9) + GEM remote: https://gem.coop/ specs: @@ -50,7 +58,6 @@ GEM delegate (0.6.1) diff-lcs (1.6.2) diffy (3.4.4) - docile (1.4.1) dry-configurable (1.4.0) dry-core (~> 1.0) zeitwerk (~> 2.6) @@ -106,15 +113,6 @@ GEM kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) kettle-rb (0.1.4) - kettle-soup-cover (1.1.3) - simplecov (~> 0.22) - simplecov-cobertura (~> 3.0) - simplecov-console (~> 0.9, >= 0.9.3) - simplecov-html (~> 0.13, >= 0.13.1) - simplecov-lcov (~> 0.8) - simplecov-rcov (~> 0.3, >= 0.3.7) - simplecov_json_formatter (~> 0.1, >= 0.1.4) - version_gem (~> 1.1, >= 1.1.9) kettle-test (2.0.11) appraisal2 (~> 3.0, >= 3.0.6) backports (~> 3.0) @@ -126,6 +124,8 @@ GEM silent_stream (~> 1.0, >= 1.0.12) timecop-rspec (~> 1.0, >= 1.0.3) turbo_tests2 (~> 3.1, >= 3.1.12) + kettle-wash (0.1.0) + version_gem (~> 1.1, >= 1.1.14) kramdown (2.5.2) rexml (>= 3.4.4) kramdown-parser-gfm (1.1.0) @@ -167,9 +167,6 @@ GEM racc (1.8.1) rainbow (3.1.1) rake (13.4.2) - rake-compiler-dock (1.12.0) - rb_sys (0.9.127) - rake-compiler-dock (= 1.12.0) rbs (4.0.3) logger prism (>= 1.6.0) @@ -275,23 +272,19 @@ GEM silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) - simplecov (0.22.0) - docile (~> 1.1) - simplecov-html (~> 0.11) - simplecov_json_formatter (~> 0.1) - simplecov-cobertura (3.2.0) + simplecov (1.0.2) + simplecov-cobertura (4.0.0) rexml - simplecov (~> 0.19) + simplecov (~> 1.0) simplecov-console (0.9.5) ansi simplecov terminal-table - simplecov-html (0.13.2) - simplecov-lcov (0.9.0) simplecov-rcov (0.3.7) simplecov (>= 0.4.1) - simplecov_json_formatter (0.1.4) - sorbet-runtime (0.6.13342) + simplecov_lcov_formatter (0.9.0) + simplecov (>= 0.18) + sorbet-runtime (0.6.13347) standard (1.56.0) language_server-protocol (~> 3.17.0.2) lint_roller (~> 1.0) @@ -321,11 +314,14 @@ GEM delegate (~> 0.1) rspec (~> 3.0) timecop (>= 0.7, < 1) - tree_haver (7.1.0) - citrus (~> 3.0) - parslet (~> 2.0) - tree_sitter_language_pack (>= 1.9.0.pre.rc.40, < 2.0) - version_gem (~> 1.1, >= 1.1.9) + tree_sitter_language_pack (1.13.3-aarch64-linux) + sorbet-runtime (~> 0.5) + tree_sitter_language_pack (1.13.3-arm64-darwin) + sorbet-runtime (~> 0.5) + tree_sitter_language_pack (1.13.3-x86_64-darwin) + sorbet-runtime (~> 0.5) + tree_sitter_language_pack (1.13.3-x86_64-linux) + sorbet-runtime (~> 0.5) tsort (0.2.0) turbo_tests2 (3.2.0) parallel_tests (>= 3.3.0, < 6) @@ -380,7 +376,8 @@ DEPENDENCIES gitmoji-regex (~> 2.0, >= 2.0.0) irb (~> 1.17) kettle-dev (~> 2.0, >= 2.2.25) - kettle-soup-cover (~> 1.0, >= 1.1.3) + kettle-drift! + kettle-soup-cover! kettle-test (~> 2.0, >= 2.0.9) kramdown (~> 2.5, >= 2.5.1) kramdown-parser-gfm (~> 1.1) @@ -400,7 +397,8 @@ DEPENDENCIES standard (>= 1.50) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) - tree_sitter_language_pack! + tree_haver! + tree_sitter_language_pack (~> 1.13, >= 1.13.3) yaml-converter (~> 0.1) yard (~> 0.9, >= 0.9.44) yard-fence (~> 0.9, >= 0.9.1) @@ -418,6 +416,7 @@ CHECKSUMS backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd + bundler (4.0.16) sha256=d6ca5dd440c24f9abce9844cf44cc8e18c6a553de65a47efb4544137af92c47d bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 @@ -427,7 +426,6 @@ CHECKSUMS delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 - docile (1.4.1) sha256=96159be799bfa73cdb721b840e9802126e4e03dfc26863db73647204c727f21e dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -445,9 +443,11 @@ CHECKSUMS irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 kettle-dev (2.3.7) sha256=eb370113cd030d03cbe2d33b31c99858951017e5ad21a17e9ed89dc3770028ee + kettle-drift (1.0.5) kettle-rb (0.1.4) sha256=9cef7ce4f7021666b7222292f29051e51eaf042e8a5db11f3f4dd72f74243fc1 - kettle-soup-cover (1.1.3) sha256=a373827da22a7131d093afd32945e5b7d7a10a01ebfdded8fd2cb8230d69c8ad + kettle-soup-cover (3.0.3) kettle-test (2.0.11) sha256=c710c90f7ab79d51f9452f0c09f5f90657e7a893f63583855c164d0b1b107ab2 + kettle-wash (0.1.0) sha256=5c04b3900d0957339e7c7d9997bbd804599b68bde002e6f47f4e28a0eea22ea7 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 @@ -475,8 +475,6 @@ CHECKSUMS racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 - rake-compiler-dock (1.12.0) sha256=f13205c2738f3d2053afcd03491a9e4541b22a59a0bfc53fc8bc883bd8188023 - rb_sys (0.9.127) sha256=e9f90df3bb0577472d26d96127d5b5774b98f44de881e7d36aeefd28d6337847 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 @@ -509,14 +507,12 @@ CHECKSUMS ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 - simplecov (0.22.0) sha256=fe2622c7834ff23b98066bb0a854284b2729a569ac659f82621fc22ef36213a5 - simplecov-cobertura (3.2.0) sha256=70d702658677fcb20e5aceb6915ccf8bc62ff2ccd38b62b3ad5c9db5c0888740 + simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 + simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 - simplecov-html (0.13.2) sha256=bd0b8e54e7c2d7685927e8d6286466359b6f16b18cb0df47b508e8d73c777246 - simplecov-lcov (0.9.0) sha256=7a77a31e200a595ed4b0249493056efd0c920601f53d2ef135ca34ee796346cd simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc - simplecov_json_formatter (0.1.4) sha256=529418fbe8de1713ac2b2d612aa3daa56d316975d307244399fa4838c601b428 - sorbet-runtime (0.6.13342) sha256=dbeb9892597f593ed2b29e38018912787f6c4e0c4b736d8af0d6bd3c63bde3c3 + simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed + sorbet-runtime (0.6.13347) sha256=54e7221d9f4b63f58aec79f3043752a9ba7810347c6ae0d903531591cc2d5f01 standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b standard-performance (1.9.0) sha256=49483d31be448292951d80e5e67cdcb576c2502103c7b40aec6f1b6e9c88e3f2 @@ -529,11 +525,10 @@ CHECKSUMS timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 tree_haver (7.1.0) - tree_sitter_language_pack (1.13.2) - tree_sitter_language_pack (1.13.2-aarch64-linux) - tree_sitter_language_pack (1.13.2-arm64-darwin) - tree_sitter_language_pack (1.13.2-x86_64-darwin) - tree_sitter_language_pack (1.13.2-x86_64-linux) + tree_sitter_language_pack (1.13.3-aarch64-linux) sha256=55ffc7c87868cb45658338363d9eba51b4a8b0259aa88e4de368d2bd1d52fea4 + tree_sitter_language_pack (1.13.3-arm64-darwin) sha256=bc2498db605f212a1dbd2465ed3f65190d7da786f6ed5d30fcf958121aeb4a5c + tree_sitter_language_pack (1.13.3-x86_64-darwin) sha256=061f7da6e1cc4ba936fad436ee0653d7dfdfa4aa879cf555403e3aa373d43966 + tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 diff --git a/gems/zip-merge/gemfiles/modular/templating.gemfile b/gems/zip-merge/gemfiles/modular/templating.gemfile index 1ee2a5ea7..2ddc9433f 100644 --- a/gems/zip-merge/gemfiles/modular/templating.gemfile +++ b/gems/zip-merge/gemfiles/modular/templating.gemfile @@ -4,7 +4,9 @@ structuredmerge_remote = ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('fals kettle_remote = ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? if structuredmerge_remote - # Merge recipes and parser dependencies for released installs. + # Parser dependencies for released installs. + gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' + # Merge recipes for released installs. gem 'kettle-jem', '>= 7.0' end diff --git a/gems/zip-merge/gemfiles/modular/templating_local.gemfile b/gems/zip-merge/gemfiles/modular/templating_local.gemfile index 0436c07b7..c22693f34 100644 --- a/gems/zip-merge/gemfiles/modular/templating_local.gemfile +++ b/gems/zip-merge/gemfiles/modular/templating_local.gemfile @@ -7,7 +7,6 @@ require 'nomono/bundler' unless defined?(Nomono) structuredmerge_local_gems = %w[ - tree_sitter_language_pack tree_haver ast-merge ast-merge-git @@ -47,8 +46,6 @@ declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) structuredmerge_local_gems_to_eval = structuredmerge_local_gems - %w[zip-merge] - declared_gems kettle_dev_local_gems_to_eval = kettle_dev_local_gems - %w[zip-merge] - declared_gems -# export VENDORED_GEMS=tree_sitter_language_pack -# export VENDOR_GEM_DIR=/path/to/vendor # expects $VENDOR_GEM_DIR/tree_sitter_language_pack platform :mri do if ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false') != 0 eval_nomono_gems( From b46eae00b52bb33552166149164c862a02127240 Mon Sep 17 00:00:00 2001 From: "Peter H. Boling" Date: Tue, 21 Jul 2026 11:32:17 -0600 Subject: [PATCH 111/188] Exclude benchmark fixtures from family members Keep kettle-family discovery from treating benchmark fixture gemspecs as StructuredMerge Ruby family members. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- .kettle-family.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.kettle-family.yml b/.kettle-family.yml index f55b4b093..0710807e9 100644 --- a/.kettle-family.yml +++ b/.kettle-family.yml @@ -4,6 +4,8 @@ family: members_root: gems members: + exclude: + - "**/benchmarks/**" order: mode: dependency hints: From ad255ee5c1518c368a536c940e31fc9c42e46934 Mon Sep 17 00:00:00 2001 From: "Peter H. Boling" Date: Tue, 21 Jul 2026 12:50:06 -0600 Subject: [PATCH 112/188] =?UTF-8?q?=E2=AC=86=EF=B8=8F=20Upgrade=20GHA=20SH?= =?UTF-8?q?A=20pins?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gems/kettle-jem/Gemfile.lock | 200 ++++-------------- gems/kettle-jem/lib/kettle/jem.rb | 20 +- .../.github/workflows/coverage.yml.example | 4 +- .../.github/workflows/current.yml.example | 4 +- .../.github/workflows/dep-heads.yml.example | 12 +- .../workflows/dependency-review.yml.example | 2 +- .../workflows/framework-ci.yml.example | 4 +- .../.github/workflows/heads.yml.example | 12 +- .../.github/workflows/jruby-10.0.yml.example | 4 +- .../.github/workflows/jruby-9.1.yml.example | 4 +- .../.github/workflows/jruby-9.2.yml.example | 4 +- .../.github/workflows/jruby-9.3.yml.example | 4 +- .../.github/workflows/jruby-9.4.yml.example | 4 +- .../.github/workflows/jruby.yml.example | 4 +- .../.github/workflows/license-eye.yml.example | 2 +- .../.github/workflows/locked_deps.yml.example | 4 +- .../workflows/opencollective.yml.example | 4 +- .../.github/workflows/ruby-2.3.yml.example | 4 +- .../.github/workflows/ruby-2.4.yml.example | 4 +- .../.github/workflows/ruby-2.5.yml.example | 4 +- .../.github/workflows/ruby-2.6.yml.example | 4 +- .../.github/workflows/ruby-2.7.yml.example | 4 +- .../.github/workflows/ruby-3.0.yml.example | 4 +- .../.github/workflows/ruby-3.1.yml.example | 4 +- .../.github/workflows/ruby-3.2.yml.example | 4 +- .../.github/workflows/ruby-3.3.yml.example | 4 +- .../.github/workflows/ruby-3.4.yml.example | 4 +- .../.github/workflows/style.yml.example | 4 +- .../.github/workflows/templating.yml.example | 4 +- .../.github/workflows/truffle.yml.example | 4 +- .../workflows/truffleruby-22.3.yml.example | 4 +- .../workflows/truffleruby-23.0.yml.example | 4 +- .../workflows/truffleruby-23.1.yml.example | 4 +- .../workflows/truffleruby-24.2.yml.example | 4 +- .../workflows/truffleruby-25.0.yml.example | 4 +- .../workflows/truffleruby-33.0.yml.example | 4 +- .../workflows/unlocked_deps.yml.example | 4 +- 37 files changed, 124 insertions(+), 248 deletions(-) diff --git a/gems/kettle-jem/Gemfile.lock b/gems/kettle-jem/Gemfile.lock index 2ffa1f6f7..5e345fbb1 100644 --- a/gems/kettle-jem/Gemfile.lock +++ b/gems/kettle-jem/Gemfile.lock @@ -28,33 +28,7 @@ PATH yaml-merge (= 7.1.0) PATH - remote: /home/pboling/src/my/kettle-dev/kettle-dev - specs: - kettle-dev (2.3.7) - emoji_regex (>= 15.0) - kettle-rb (~> 0.1, >= 0.1.2) - kettle-test (~> 2.0, >= 2.0.4) - ruby-progressbar (~> 1.13) - -PATH - remote: /home/pboling/src/my/kettle-dev/kettle-drift - specs: - kettle-drift (1.0.5) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/kettle-dev/kettle-soup-cover - specs: - kettle-soup-cover (3.0.3) - kettle-wash (~> 0.1, >= 0.1.0) - simplecov (>= 1.0) - simplecov-cobertura (>= 4.0) - simplecov-console (~> 0.9, >= 0.9.5) - simplecov-rcov (~> 0.3, >= 0.3.7) - simplecov_lcov_formatter (~> 0.9, >= 0.9.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly specs: ast-crispr-markdown-markly (7.1.0) ast-crispr (= 7.1.0) @@ -62,7 +36,7 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism specs: ast-crispr-ruby-prism (7.1.0) ast-crispr (= 7.1.0) @@ -70,23 +44,7 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr - specs: - ast-crispr (7.1.0) - ast-merge (= 7.1.0) - service_actor (~> 3.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git - specs: - ast-merge-git (7.1.0) - ast-merge (= 7.1.0) - json-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/ast-merge specs: ast-merge (7.1.0) benchmark @@ -95,14 +53,7 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template - specs: - ast-template (7.1.0) - ast-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/bash-merge specs: bash-merge (7.1.0) ast-merge (= 7.1.0) @@ -110,14 +61,7 @@ PATH version_gem (~> 1.1, >= 1.1.14) PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge - specs: - binary-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge specs: citrus-toml-merge (7.1.0) toml-merge (= 7.1.0) @@ -125,7 +69,7 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge specs: commonmarker-merge (7.1.0) commonmarker (~> 2.2) @@ -133,7 +77,7 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge specs: dotenv-merge (7.1.0) ast-merge (= 7.1.0) @@ -141,15 +85,7 @@ PATH version_gem (~> 1.1, >= 1.1.14) PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge - specs: - go-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/json-merge specs: json-merge (7.1.0) ast-merge (= 7.1.0) @@ -157,7 +93,7 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge specs: kramdown-merge (7.1.0) kramdown (~> 2.5) @@ -165,7 +101,7 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge specs: markdown-merge (7.1.0) ast-merge (= 7.1.0) @@ -173,7 +109,7 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/markly-merge specs: markly-merge (7.1.0) markdown-merge (= 7.1.0) @@ -181,23 +117,7 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge - specs: - parslet-toml-merge (7.1.0) - toml (~> 0.3) - toml-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge - specs: - plain-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/prism-merge specs: prism-merge (7.1.0) prism (~> 1.6) @@ -205,7 +125,7 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/psych-merge specs: psych-merge (7.1.0) ast-merge (= 7.1.0) @@ -214,7 +134,7 @@ PATH yaml-merge (= 7.1.0) PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge specs: rbs-merge (7.1.0) ast-merge (= 7.1.0) @@ -223,7 +143,7 @@ PATH version_gem (~> 1.1, >= 1.1.14) PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge specs: ruby-merge (7.1.0) ast-merge (= 7.1.0) @@ -231,28 +151,7 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge - specs: - rust-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb - specs: - smorg-rb (7.1.0) - ast-merge (= 7.1.0) - ast-merge-git (= 7.1.0) - go-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-jem (= 7.1.0) - markly-merge (= 7.1.0) - plain-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/toml-merge specs: toml-merge (7.1.0) ast-merge (= 7.1.0) @@ -260,7 +159,7 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/tree_haver specs: tree_haver (7.1.0) citrus (~> 3.0) @@ -269,28 +168,13 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge - specs: - typescript-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge specs: yaml-merge (7.1.0) ast-merge (= 7.1.0) tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge - specs: - zip-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - GEM remote: https://gem.coop/ specs: @@ -306,6 +190,10 @@ GEM rubocop (>= 1.0) version_gem (~> 1.1, >= 1.1.14) ast (2.4.3) + ast-crispr (7.1.0) + ast-merge (= 7.1.0) + service_actor (~> 3.9) + version_gem (~> 1.1, >= 1.1.9) backports (3.25.3) benchmark (0.5.0) bigdecimal (4.1.2) @@ -373,7 +261,21 @@ GEM rdoc (>= 4.0.0) reline (>= 0.4.2) json (2.21.1) + kettle-dev (2.3.7) + emoji_regex (>= 15.0) + kettle-rb (~> 0.1, >= 0.1.2) + kettle-test (~> 2.0, >= 2.0.4) + ruby-progressbar (~> 1.13) + kettle-drift (1.0.5) + version_gem (~> 1.1, >= 1.1.14) kettle-rb (0.1.4) + kettle-soup-cover (3.0.3) + kettle-wash (~> 0.1, >= 0.1.0) + simplecov (>= 1.0) + simplecov-cobertura (>= 4.0) + simplecov-console (~> 0.9, >= 0.9.5) + simplecov-rcov (~> 0.3, >= 0.3.7) + simplecov_lcov_formatter (~> 0.9, >= 0.9.0) kettle-test (2.0.11) appraisal2 (~> 3.0, >= 3.0.6) backports (~> 3.0) @@ -605,8 +507,6 @@ GEM token-resolver (2.0.4) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.13) - toml (0.3.0) - parslet (>= 1.8.0, < 3.0.0) toml-rb (4.2.0) citrus (~> 3.0, > 3.0) racc (~> 1.7) @@ -653,15 +553,11 @@ PLATFORMS DEPENDENCIES appraisal2 (~> 3.2, >= 3.2.0) appraisal2-rubocop (~> 1.0, >= 1.0.0) - ast-crispr! ast-crispr-markdown-markly! ast-crispr-ruby-prism! ast-merge! - ast-merge-git! - ast-template! bash-merge! benchmark (~> 0.5, >= 0.5.0) - binary-merge! bundler-audit (~> 0.9.3) cgi (~> 0.5) citrus-toml-merge! @@ -671,13 +567,11 @@ DEPENDENCIES erb (~> 6.0, >= 6.0.5) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.4) - go-merge! irb (~> 1.17) json-merge! - kettle-dev! - kettle-drift! + kettle-drift (~> 1.0, >= 1.0.5) kettle-jem! - kettle-soup-cover! + kettle-soup-cover (~> 3.0, >= 3.0.3) kettle-test (~> 2.0, >= 2.0.11) kramdown (~> 2.5, >= 2.5.2) kramdown-merge! @@ -686,8 +580,6 @@ DEPENDENCIES markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) - parslet-toml-merge! - plain-merge! prism-merge! psych-merge! rake (~> 13.0) @@ -704,8 +596,6 @@ DEPENDENCIES rubocop-ruby3_2 (~> 3.0, >= 3.0.6) ruby-merge! ruby-progressbar (~> 1.13) - rust-merge! - smorg-rb! standard (~> 1.56, >= 1.56.0) stone_checksums (~> 1.0, >= 1.0.6) stringio (>= 3.0) @@ -713,7 +603,6 @@ DEPENDENCIES tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) turbo_tests2 (~> 3.2, >= 3.2.0) - typescript-merge! webrick (~> 1.9) yaml-converter (~> 0.2, >= 0.2.3) yaml-merge! @@ -723,7 +612,6 @@ DEPENDENCIES yard-relative_markdown_links (~> 0.6) yard-timekeeper (~> 0.2, >= 0.2.4) yard-yaml (~> 0.2, >= 0.2.3) - zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af @@ -735,14 +623,10 @@ CHECKSUMS ast-crispr-markdown-markly (7.1.0) ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) - ast-merge-git (7.1.0) - ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd - binary-merge (7.1.0) - bundler (4.0.16) sha256=d6ca5dd440c24f9abce9844cf44cc8e18c6a553de65a47efb4544137af92c47d bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 @@ -769,7 +653,6 @@ CHECKSUMS gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f - go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 @@ -800,8 +683,6 @@ CHECKSUMS parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 - parslet-toml-merge (7.1.0) - plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 @@ -852,7 +733,6 @@ CHECKSUMS ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 - rust-merge (7.1.0) service_actor (3.9.4) sha256=e63b523630b9a7e62959b2a90113b08d2565b5de9c148557b281ef847c9539ce silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 @@ -860,7 +740,6 @@ CHECKSUMS simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed - smorg-rb (7.1.0) sorbet-runtime (0.6.13344) sha256=0b4e3310cd10bc814f0d7cfa65db82151103322e75dd63c961546845dd8ba5e5 standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b @@ -875,14 +754,12 @@ CHECKSUMS timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.4) sha256=33b926958f504525bba3ed511ab66fbcbf8ef30390815e931436b30f27ffcad0 - toml (0.3.0) sha256=0a91d0f76a9036e84e44f95693b12f58d358c1df3ac8e3b5271f2056ecc6e4b9 toml-merge (7.1.0) toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 - typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 @@ -896,7 +773,6 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 - zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH diff --git a/gems/kettle-jem/lib/kettle/jem.rb b/gems/kettle-jem/lib/kettle/jem.rb index 9658e7e36..8d3d80d84 100644 --- a/gems/kettle-jem/lib/kettle/jem.rb +++ b/gems/kettle-jem/lib/kettle/jem.rb @@ -15143,7 +15143,7 @@ def synchronize_github_actions_ci(content, facts) "", " steps:", " - name: Checkout #{package.fetch(:name)}", - " uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0", + " uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1", "", *github_actions_setup_ruby_steps(indent: " ").lines(chomp: true), "", @@ -15213,7 +15213,7 @@ def synchronize_github_actions_framework_ci(content, facts) "", " steps:", " - name: Checkout", - " uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0", + " uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1", "", *github_actions_setup_ruby_steps(indent: " ").lines(chomp: true), "", @@ -15242,7 +15242,7 @@ def synchronize_github_actions_framework_ci(content, facts) def github_actions_setup_ruby_steps(indent:) yaml = <<~YAML - name: Setup Ruby & RubyGems - uses: ruby/setup-ruby@003a5c4d8d6321bd302e38f6f0ec593f77f06600 # v1.319.0 + uses: ruby/setup-ruby@a30dfa457ad68707b8b910ac3a244714b61c0626 # v1.320.0 with: ruby-version: "${{ matrix.ruby }}" rubygems: "${{ matrix.rubygems }}" @@ -15350,10 +15350,10 @@ def synchronize_github_actions_coverage_ci(content, facts) "", " steps:", " - name: Checkout", - " uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0", + " uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1", "", " - name: Setup Ruby & RubyGems", - " uses: ruby/setup-ruby@003a5c4d8d6321bd302e38f6f0ec593f77f06600 # v1.319.0", + " uses: ruby/setup-ruby@a30dfa457ad68707b8b910ac3a244714b61c0626 # v1.320.0", " with:", " ruby-version: \"${{ matrix.ruby }}\"", " rubygems: \"${{ matrix.rubygems }}\"", @@ -15789,9 +15789,9 @@ def yaml_mapping_value_node(content, key, node_class) def github_actions_step_pins { - "actions/checkout" => "actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0", + "actions/checkout" => "actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1", "actions/cache" => "actions/cache@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0", - "ruby/setup-ruby" => "ruby/setup-ruby@003a5c4d8d6321bd302e38f6f0ec593f77f06600 # v1.319.0", + "ruby/setup-ruby" => "ruby/setup-ruby@a30dfa457ad68707b8b910ac3a244714b61c0626 # v1.320.0", "coverallsapp/github-action" => "coverallsapp/github-action@5cbfd81b66ca5d10c19b062c04de0199c215fb6e # v2.3.7", "qltysh/qlty-action/coverage" => "qltysh/qlty-action/coverage@08a0a862c159eae9b9003081da6663d96efef637 # v2.3.0", "codecov/codecov-action" => "codecov/codecov-action@fb8b3582c8e4def4969c97caa2f19720cb33a72f # v7", @@ -15800,9 +15800,9 @@ def github_actions_step_pins "actions/upload-artifact" => "actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1", "amancevice/setup-code-climate" => "amancevice/setup-code-climate@0daf2985a225e8ac15975b4d233010e94d65b76a # v2", "actions/dependency-review-action" => "actions/dependency-review-action@a1d282b36b6f3519aa1f3fc636f609c47dddb294 # v5.0.0", - "github/codeql-action/init" => "github/codeql-action/init@7188fc363630916deb702c7fdcf4e481b751f97a # v4.37.1", - "github/codeql-action/autobuild" => "github/codeql-action/autobuild@7188fc363630916deb702c7fdcf4e481b751f97a # v4.37.1", - "github/codeql-action/analyze" => "github/codeql-action/analyze@7188fc363630916deb702c7fdcf4e481b751f97a # v4.37.1", + "github/codeql-action/init" => "github/codeql-action/init@e0647621c2984b5ed2f768cb892365bf2a616ad1 # v4.37.2", + "github/codeql-action/autobuild" => "github/codeql-action/autobuild@e0647621c2984b5ed2f768cb892365bf2a616ad1 # v4.37.2", + "github/codeql-action/analyze" => "github/codeql-action/analyze@e0647621c2984b5ed2f768cb892365bf2a616ad1 # v4.37.2", "pozil/auto-assign-issue" => "pozil/auto-assign-issue@af6beea6bdf1e8eb373f061c5bc168681fc6d011 # v4.0.1", "apache/skywalking-eyes/dependency" => "apache/skywalking-eyes/dependency@61275cc80d0798a405cb070f7d3a8aaf7cf2c2c1 # v0.8.0", "sarisia/actions-status-discord" => "sarisia/actions-status-discord@eb045afee445dc055c18d3d90bd0f244fd062708 # v1.16.0" diff --git a/gems/kettle-jem/lib/kettle/jem/templates/.github/workflows/coverage.yml.example b/gems/kettle-jem/lib/kettle/jem/templates/.github/workflows/coverage.yml.example index 41c8c0d9c..3b7594794 100644 --- a/gems/kettle-jem/lib/kettle/jem/templates/.github/workflows/coverage.yml.example +++ b/gems/kettle-jem/lib/kettle/jem/templates/.github/workflows/coverage.yml.example @@ -54,12 +54,12 @@ jobs: steps: - name: Checkout - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 + uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 with: persist-credentials: false - name: Setup Ruby & RubyGems - uses: ruby/setup-ruby@003a5c4d8d6321bd302e38f6f0ec593f77f06600 # v1.319.0 + uses: ruby/setup-ruby@a30dfa457ad68707b8b910ac3a244714b61c0626 # v1.320.0 with: ruby-version: "${{ matrix.ruby }}" rubygems: "${{ matrix.rubygems }}" diff --git a/gems/kettle-jem/lib/kettle/jem/templates/.github/workflows/current.yml.example b/gems/kettle-jem/lib/kettle/jem/templates/.github/workflows/current.yml.example index 7bf332986..39d3282c1 100644 --- a/gems/kettle-jem/lib/kettle/jem/templates/.github/workflows/current.yml.example +++ b/gems/kettle-jem/lib/kettle/jem/templates/.github/workflows/current.yml.example @@ -45,12 +45,12 @@ jobs: steps: - name: Checkout - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 + uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 with: persist-credentials: false - name: Setup Ruby & RubyGems - uses: ruby/setup-ruby@003a5c4d8d6321bd302e38f6f0ec593f77f06600 # v1.319.0 + uses: ruby/setup-ruby@a30dfa457ad68707b8b910ac3a244714b61c0626 # v1.320.0 with: ruby-version: ${{ matrix.ruby }} rubygems: ${{ matrix.rubygems }} diff --git a/gems/kettle-jem/lib/kettle/jem/templates/.github/workflows/dep-heads.yml.example b/gems/kettle-jem/lib/kettle/jem/templates/.github/workflows/dep-heads.yml.example index 359bea30a..e40acee7d 100644 --- a/gems/kettle-jem/lib/kettle/jem/templates/.github/workflows/dep-heads.yml.example +++ b/gems/kettle-jem/lib/kettle/jem/templates/.github/workflows/dep-heads.yml.example @@ -48,13 +48,13 @@ jobs: steps: - name: Checkout if: ${{ !env.ACT }} - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 + uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 with: persist-credentials: false - name: Setup Ruby & RubyGems if: ${{ !env.ACT }} - uses: ruby/setup-ruby@003a5c4d8d6321bd302e38f6f0ec593f77f06600 # v1.319.0 + uses: ruby/setup-ruby@a30dfa457ad68707b8b910ac3a244714b61c0626 # v1.320.0 with: ruby-version: ${{ matrix.ruby }} rubygems: ${{ matrix.rubygems }} @@ -116,13 +116,13 @@ jobs: steps: - name: Checkout if: ${{ !env.ACT }} - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 + uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 with: persist-credentials: false - name: Setup Ruby & RubyGems if: ${{ !env.ACT }} - uses: ruby/setup-ruby@003a5c4d8d6321bd302e38f6f0ec593f77f06600 # v1.319.0 + uses: ruby/setup-ruby@a30dfa457ad68707b8b910ac3a244714b61c0626 # v1.320.0 with: ruby-version: ${{ matrix.ruby }} rubygems: ${{ matrix.rubygems }} @@ -164,13 +164,13 @@ jobs: steps: - name: Checkout if: ${{ !env.ACT }} - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 + uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 with: persist-credentials: false - name: Setup Ruby & RubyGems if: ${{ !env.ACT }} - uses: ruby/setup-ruby@003a5c4d8d6321bd302e38f6f0ec593f77f06600 # v1.319.0 + uses: ruby/setup-ruby@a30dfa457ad68707b8b910ac3a244714b61c0626 # v1.320.0 with: ruby-version: ${{ matrix.ruby }} rubygems: ${{ matrix.rubygems }} diff --git a/gems/kettle-jem/lib/kettle/jem/templates/.github/workflows/dependency-review.yml.example b/gems/kettle-jem/lib/kettle/jem/templates/.github/workflows/dependency-review.yml.example index ee085b6ff..0316e06bd 100644 --- a/gems/kettle-jem/lib/kettle/jem/templates/.github/workflows/dependency-review.yml.example +++ b/gems/kettle-jem/lib/kettle/jem/templates/.github/workflows/dependency-review.yml.example @@ -15,7 +15,7 @@ jobs: runs-on: ubuntu-latest steps: - name: 'Checkout Repository' - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 + uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 with: persist-credentials: false - name: 'Dependency Review' diff --git a/gems/kettle-jem/lib/kettle/jem/templates/.github/workflows/framework-ci.yml.example b/gems/kettle-jem/lib/kettle/jem/templates/.github/workflows/framework-ci.yml.example index 86ede9ce5..331a26fad 100644 --- a/gems/kettle-jem/lib/kettle/jem/templates/.github/workflows/framework-ci.yml.example +++ b/gems/kettle-jem/lib/kettle/jem/templates/.github/workflows/framework-ci.yml.example @@ -53,12 +53,12 @@ jobs: steps: - name: Checkout - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 + uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 with: persist-credentials: false - name: Setup Ruby & RubyGems - uses: ruby/setup-ruby@003a5c4d8d6321bd302e38f6f0ec593f77f06600 # v1.319.0 + uses: ruby/setup-ruby@a30dfa457ad68707b8b910ac3a244714b61c0626 # v1.320.0 with: ruby-version: "${{ matrix.ruby }}" rubygems: "${{ matrix.rubygems }}" diff --git a/gems/kettle-jem/lib/kettle/jem/templates/.github/workflows/heads.yml.example b/gems/kettle-jem/lib/kettle/jem/templates/.github/workflows/heads.yml.example index bc4434ed9..7d97c5699 100644 --- a/gems/kettle-jem/lib/kettle/jem/templates/.github/workflows/heads.yml.example +++ b/gems/kettle-jem/lib/kettle/jem/templates/.github/workflows/heads.yml.example @@ -48,13 +48,13 @@ jobs: steps: - name: Checkout if: ${{ !env.ACT }} - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 + uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 with: persist-credentials: false - name: Setup Ruby & RubyGems if: ${{ !env.ACT }} - uses: ruby/setup-ruby@003a5c4d8d6321bd302e38f6f0ec593f77f06600 # v1.319.0 + uses: ruby/setup-ruby@a30dfa457ad68707b8b910ac3a244714b61c0626 # v1.320.0 with: ruby-version: ${{ matrix.ruby }} rubygems: ${{ matrix.rubygems }} @@ -109,13 +109,13 @@ jobs: steps: - name: Checkout if: ${{ !env.ACT }} - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 + uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 with: persist-credentials: false - name: Setup Ruby & RubyGems if: ${{ !env.ACT }} - uses: ruby/setup-ruby@003a5c4d8d6321bd302e38f6f0ec593f77f06600 # v1.319.0 + uses: ruby/setup-ruby@a30dfa457ad68707b8b910ac3a244714b61c0626 # v1.320.0 with: ruby-version: ${{ matrix.ruby }} rubygems: ${{ matrix.rubygems }} @@ -167,13 +167,13 @@ jobs: steps: - name: Checkout if: ${{ !env.ACT }} - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 + uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 with: persist-credentials: false - name: Setup Ruby & RubyGems if: ${{ !env.ACT }} - uses: ruby/setup-ruby@003a5c4d8d6321bd302e38f6f0ec593f77f06600 # v1.319.0 + uses: ruby/setup-ruby@a30dfa457ad68707b8b910ac3a244714b61c0626 # v1.320.0 with: ruby-version: ${{ matrix.ruby }} rubygems: ${{ matrix.rubygems }} diff --git a/gems/kettle-jem/lib/kettle/jem/templates/.github/workflows/jruby-10.0.yml.example b/gems/kettle-jem/lib/kettle/jem/templates/.github/workflows/jruby-10.0.yml.example index 20538ab95..dca305274 100644 --- a/gems/kettle-jem/lib/kettle/jem/templates/.github/workflows/jruby-10.0.yml.example +++ b/gems/kettle-jem/lib/kettle/jem/templates/.github/workflows/jruby-10.0.yml.example @@ -47,13 +47,13 @@ jobs: steps: - name: Checkout if: ${{ !env.ACT }} - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 + uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 with: persist-credentials: false - name: Setup Ruby & RubyGems if: ${{ !env.ACT }} - uses: ruby/setup-ruby@003a5c4d8d6321bd302e38f6f0ec593f77f06600 # v1.319.0 + uses: ruby/setup-ruby@a30dfa457ad68707b8b910ac3a244714b61c0626 # v1.320.0 with: ruby-version: ${{ matrix.ruby }} rubygems: ${{ matrix.rubygems }} diff --git a/gems/kettle-jem/lib/kettle/jem/templates/.github/workflows/jruby-9.1.yml.example b/gems/kettle-jem/lib/kettle/jem/templates/.github/workflows/jruby-9.1.yml.example index 1da3a1976..f613a0be9 100644 --- a/gems/kettle-jem/lib/kettle/jem/templates/.github/workflows/jruby-9.1.yml.example +++ b/gems/kettle-jem/lib/kettle/jem/templates/.github/workflows/jruby-9.1.yml.example @@ -46,13 +46,13 @@ jobs: steps: - name: Checkout if: ${{ !env.ACT }} - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 + uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 with: persist-credentials: false - name: Setup Ruby & RubyGems if: ${{ !env.ACT }} - uses: ruby/setup-ruby@003a5c4d8d6321bd302e38f6f0ec593f77f06600 # v1.319.0 + uses: ruby/setup-ruby@a30dfa457ad68707b8b910ac3a244714b61c0626 # v1.320.0 with: ruby-version: ${{ matrix.ruby }} rubygems: ${{ matrix.rubygems }} diff --git a/gems/kettle-jem/lib/kettle/jem/templates/.github/workflows/jruby-9.2.yml.example b/gems/kettle-jem/lib/kettle/jem/templates/.github/workflows/jruby-9.2.yml.example index 6fbeec308..87d82c376 100644 --- a/gems/kettle-jem/lib/kettle/jem/templates/.github/workflows/jruby-9.2.yml.example +++ b/gems/kettle-jem/lib/kettle/jem/templates/.github/workflows/jruby-9.2.yml.example @@ -46,13 +46,13 @@ jobs: steps: - name: Checkout if: ${{ !env.ACT }} - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 + uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 with: persist-credentials: false - name: Setup Ruby & RubyGems if: ${{ !env.ACT }} - uses: ruby/setup-ruby@003a5c4d8d6321bd302e38f6f0ec593f77f06600 # v1.319.0 + uses: ruby/setup-ruby@a30dfa457ad68707b8b910ac3a244714b61c0626 # v1.320.0 with: ruby-version: ${{ matrix.ruby }} rubygems: ${{ matrix.rubygems }} diff --git a/gems/kettle-jem/lib/kettle/jem/templates/.github/workflows/jruby-9.3.yml.example b/gems/kettle-jem/lib/kettle/jem/templates/.github/workflows/jruby-9.3.yml.example index 1fe5e1ed8..b5e2508da 100644 --- a/gems/kettle-jem/lib/kettle/jem/templates/.github/workflows/jruby-9.3.yml.example +++ b/gems/kettle-jem/lib/kettle/jem/templates/.github/workflows/jruby-9.3.yml.example @@ -46,13 +46,13 @@ jobs: steps: - name: Checkout if: ${{ !env.ACT }} - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 + uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 with: persist-credentials: false - name: Setup Ruby & RubyGems if: ${{ !env.ACT }} - uses: ruby/setup-ruby@003a5c4d8d6321bd302e38f6f0ec593f77f06600 # v1.319.0 + uses: ruby/setup-ruby@a30dfa457ad68707b8b910ac3a244714b61c0626 # v1.320.0 with: ruby-version: ${{ matrix.ruby }} rubygems: ${{ matrix.rubygems }} diff --git a/gems/kettle-jem/lib/kettle/jem/templates/.github/workflows/jruby-9.4.yml.example b/gems/kettle-jem/lib/kettle/jem/templates/.github/workflows/jruby-9.4.yml.example index fecdabe4f..34120eacd 100644 --- a/gems/kettle-jem/lib/kettle/jem/templates/.github/workflows/jruby-9.4.yml.example +++ b/gems/kettle-jem/lib/kettle/jem/templates/.github/workflows/jruby-9.4.yml.example @@ -46,13 +46,13 @@ jobs: steps: - name: Checkout if: ${{ !env.ACT }} - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 + uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 with: persist-credentials: false - name: Setup Ruby & RubyGems if: ${{ !env.ACT }} - uses: ruby/setup-ruby@003a5c4d8d6321bd302e38f6f0ec593f77f06600 # v1.319.0 + uses: ruby/setup-ruby@a30dfa457ad68707b8b910ac3a244714b61c0626 # v1.320.0 with: ruby-version: ${{ matrix.ruby }} rubygems: ${{ matrix.rubygems }} diff --git a/gems/kettle-jem/lib/kettle/jem/templates/.github/workflows/jruby.yml.example b/gems/kettle-jem/lib/kettle/jem/templates/.github/workflows/jruby.yml.example index ace5b9405..725dec84e 100644 --- a/gems/kettle-jem/lib/kettle/jem/templates/.github/workflows/jruby.yml.example +++ b/gems/kettle-jem/lib/kettle/jem/templates/.github/workflows/jruby.yml.example @@ -47,13 +47,13 @@ jobs: steps: - name: Checkout if: ${{ !env.ACT }} - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 + uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 with: persist-credentials: false - name: Setup Ruby & RubyGems if: ${{ !env.ACT }} - uses: ruby/setup-ruby@003a5c4d8d6321bd302e38f6f0ec593f77f06600 # v1.319.0 + uses: ruby/setup-ruby@a30dfa457ad68707b8b910ac3a244714b61c0626 # v1.320.0 with: ruby-version: ${{ matrix.ruby }} rubygems: ${{ matrix.rubygems }} diff --git a/gems/kettle-jem/lib/kettle/jem/templates/.github/workflows/license-eye.yml.example b/gems/kettle-jem/lib/kettle/jem/templates/.github/workflows/license-eye.yml.example index 26693bf58..cb16cd50b 100644 --- a/gems/kettle-jem/lib/kettle/jem/templates/.github/workflows/license-eye.yml.example +++ b/gems/kettle-jem/lib/kettle/jem/templates/.github/workflows/license-eye.yml.example @@ -28,7 +28,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 + uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 with: persist-credentials: false diff --git a/gems/kettle-jem/lib/kettle/jem/templates/.github/workflows/locked_deps.yml.example b/gems/kettle-jem/lib/kettle/jem/templates/.github/workflows/locked_deps.yml.example index 1740ee3d8..6ab882686 100644 --- a/gems/kettle-jem/lib/kettle/jem/templates/.github/workflows/locked_deps.yml.example +++ b/gems/kettle-jem/lib/kettle/jem/templates/.github/workflows/locked_deps.yml.example @@ -71,12 +71,12 @@ jobs: steps: - name: Checkout - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 + uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 with: persist-credentials: false - name: Setup Ruby & RubyGems - uses: ruby/setup-ruby@003a5c4d8d6321bd302e38f6f0ec593f77f06600 # v1.319.0 + uses: ruby/setup-ruby@a30dfa457ad68707b8b910ac3a244714b61c0626 # v1.320.0 with: ruby-version: ${{ matrix.ruby }} rubygems: ${{ matrix.rubygems }} diff --git a/gems/kettle-jem/lib/kettle/jem/templates/.github/workflows/opencollective.yml.example b/gems/kettle-jem/lib/kettle/jem/templates/.github/workflows/opencollective.yml.example index 8d1fd4753..5b5c3649f 100644 --- a/gems/kettle-jem/lib/kettle/jem/templates/.github/workflows/opencollective.yml.example +++ b/gems/kettle-jem/lib/kettle/jem/templates/.github/workflows/opencollective.yml.example @@ -16,11 +16,11 @@ jobs: README_UPDATER_TOKEN: ${{ secrets.README_UPDATER_TOKEN }} REPO: ${{ github.repository }} steps: - - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 + - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 with: persist-credentials: false - name: Setup Ruby & RubyGems - uses: ruby/setup-ruby@003a5c4d8d6321bd302e38f6f0ec593f77f06600 # v1.319.0 + uses: ruby/setup-ruby@a30dfa457ad68707b8b910ac3a244714b61c0626 # v1.320.0 with: ruby-version: ruby rubygems: default diff --git a/gems/kettle-jem/lib/kettle/jem/templates/.github/workflows/ruby-2.3.yml.example b/gems/kettle-jem/lib/kettle/jem/templates/.github/workflows/ruby-2.3.yml.example index 52e00a4f8..8267f9ca7 100644 --- a/gems/kettle-jem/lib/kettle/jem/templates/.github/workflows/ruby-2.3.yml.example +++ b/gems/kettle-jem/lib/kettle/jem/templates/.github/workflows/ruby-2.3.yml.example @@ -42,12 +42,12 @@ jobs: steps: - name: Checkout - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 + uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 with: persist-credentials: false - name: Setup Ruby & RubyGems - uses: ruby/setup-ruby@003a5c4d8d6321bd302e38f6f0ec593f77f06600 # v1.319.0 + uses: ruby/setup-ruby@a30dfa457ad68707b8b910ac3a244714b61c0626 # v1.320.0 with: ruby-version: ${{ matrix.ruby }} rubygems: ${{ matrix.rubygems }} diff --git a/gems/kettle-jem/lib/kettle/jem/templates/.github/workflows/ruby-2.4.yml.example b/gems/kettle-jem/lib/kettle/jem/templates/.github/workflows/ruby-2.4.yml.example index 05107bb6e..2606a5874 100644 --- a/gems/kettle-jem/lib/kettle/jem/templates/.github/workflows/ruby-2.4.yml.example +++ b/gems/kettle-jem/lib/kettle/jem/templates/.github/workflows/ruby-2.4.yml.example @@ -42,12 +42,12 @@ jobs: steps: - name: Checkout - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 + uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 with: persist-credentials: false - name: Setup Ruby & RubyGems - uses: ruby/setup-ruby@003a5c4d8d6321bd302e38f6f0ec593f77f06600 # v1.319.0 + uses: ruby/setup-ruby@a30dfa457ad68707b8b910ac3a244714b61c0626 # v1.320.0 with: ruby-version: ${{ matrix.ruby }} rubygems: ${{ matrix.rubygems }} diff --git a/gems/kettle-jem/lib/kettle/jem/templates/.github/workflows/ruby-2.5.yml.example b/gems/kettle-jem/lib/kettle/jem/templates/.github/workflows/ruby-2.5.yml.example index 9f48f7460..08297930d 100644 --- a/gems/kettle-jem/lib/kettle/jem/templates/.github/workflows/ruby-2.5.yml.example +++ b/gems/kettle-jem/lib/kettle/jem/templates/.github/workflows/ruby-2.5.yml.example @@ -42,12 +42,12 @@ jobs: steps: - name: Checkout - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 + uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 with: persist-credentials: false - name: Setup Ruby & RubyGems - uses: ruby/setup-ruby@003a5c4d8d6321bd302e38f6f0ec593f77f06600 # v1.319.0 + uses: ruby/setup-ruby@a30dfa457ad68707b8b910ac3a244714b61c0626 # v1.320.0 with: ruby-version: ${{ matrix.ruby }} rubygems: ${{ matrix.rubygems }} diff --git a/gems/kettle-jem/lib/kettle/jem/templates/.github/workflows/ruby-2.6.yml.example b/gems/kettle-jem/lib/kettle/jem/templates/.github/workflows/ruby-2.6.yml.example index 4ac7740fa..185626441 100644 --- a/gems/kettle-jem/lib/kettle/jem/templates/.github/workflows/ruby-2.6.yml.example +++ b/gems/kettle-jem/lib/kettle/jem/templates/.github/workflows/ruby-2.6.yml.example @@ -42,12 +42,12 @@ jobs: steps: - name: Checkout - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 + uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 with: persist-credentials: false - name: Setup Ruby & RubyGems - uses: ruby/setup-ruby@003a5c4d8d6321bd302e38f6f0ec593f77f06600 # v1.319.0 + uses: ruby/setup-ruby@a30dfa457ad68707b8b910ac3a244714b61c0626 # v1.320.0 with: ruby-version: ${{ matrix.ruby }} rubygems: ${{ matrix.rubygems }} diff --git a/gems/kettle-jem/lib/kettle/jem/templates/.github/workflows/ruby-2.7.yml.example b/gems/kettle-jem/lib/kettle/jem/templates/.github/workflows/ruby-2.7.yml.example index 843c446b2..b31b79527 100644 --- a/gems/kettle-jem/lib/kettle/jem/templates/.github/workflows/ruby-2.7.yml.example +++ b/gems/kettle-jem/lib/kettle/jem/templates/.github/workflows/ruby-2.7.yml.example @@ -42,12 +42,12 @@ jobs: steps: - name: Checkout - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 + uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 with: persist-credentials: false - name: Setup Ruby & RubyGems - uses: ruby/setup-ruby@003a5c4d8d6321bd302e38f6f0ec593f77f06600 # v1.319.0 + uses: ruby/setup-ruby@a30dfa457ad68707b8b910ac3a244714b61c0626 # v1.320.0 with: ruby-version: ${{ matrix.ruby }} rubygems: ${{ matrix.rubygems }} diff --git a/gems/kettle-jem/lib/kettle/jem/templates/.github/workflows/ruby-3.0.yml.example b/gems/kettle-jem/lib/kettle/jem/templates/.github/workflows/ruby-3.0.yml.example index 6d601ef72..e300916f8 100644 --- a/gems/kettle-jem/lib/kettle/jem/templates/.github/workflows/ruby-3.0.yml.example +++ b/gems/kettle-jem/lib/kettle/jem/templates/.github/workflows/ruby-3.0.yml.example @@ -45,12 +45,12 @@ jobs: steps: - name: Checkout - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 + uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 with: persist-credentials: false - name: Setup Ruby & RubyGems - uses: ruby/setup-ruby@003a5c4d8d6321bd302e38f6f0ec593f77f06600 # v1.319.0 + uses: ruby/setup-ruby@a30dfa457ad68707b8b910ac3a244714b61c0626 # v1.320.0 with: ruby-version: ${{ matrix.ruby }} rubygems: ${{ matrix.rubygems }} diff --git a/gems/kettle-jem/lib/kettle/jem/templates/.github/workflows/ruby-3.1.yml.example b/gems/kettle-jem/lib/kettle/jem/templates/.github/workflows/ruby-3.1.yml.example index 3fbcfdf3c..53f056455 100644 --- a/gems/kettle-jem/lib/kettle/jem/templates/.github/workflows/ruby-3.1.yml.example +++ b/gems/kettle-jem/lib/kettle/jem/templates/.github/workflows/ruby-3.1.yml.example @@ -45,12 +45,12 @@ jobs: steps: - name: Checkout - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 + uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 with: persist-credentials: false - name: Setup Ruby & RubyGems - uses: ruby/setup-ruby@003a5c4d8d6321bd302e38f6f0ec593f77f06600 # v1.319.0 + uses: ruby/setup-ruby@a30dfa457ad68707b8b910ac3a244714b61c0626 # v1.320.0 with: ruby-version: ${{ matrix.ruby }} rubygems: ${{ matrix.rubygems }} diff --git a/gems/kettle-jem/lib/kettle/jem/templates/.github/workflows/ruby-3.2.yml.example b/gems/kettle-jem/lib/kettle/jem/templates/.github/workflows/ruby-3.2.yml.example index b71a3c8f9..baed04b86 100644 --- a/gems/kettle-jem/lib/kettle/jem/templates/.github/workflows/ruby-3.2.yml.example +++ b/gems/kettle-jem/lib/kettle/jem/templates/.github/workflows/ruby-3.2.yml.example @@ -42,12 +42,12 @@ jobs: steps: - name: Checkout - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 + uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 with: persist-credentials: false - name: Setup Ruby & RubyGems - uses: ruby/setup-ruby@003a5c4d8d6321bd302e38f6f0ec593f77f06600 # v1.319.0 + uses: ruby/setup-ruby@a30dfa457ad68707b8b910ac3a244714b61c0626 # v1.320.0 with: ruby-version: ${{ matrix.ruby }} rubygems: ${{ matrix.rubygems }} diff --git a/gems/kettle-jem/lib/kettle/jem/templates/.github/workflows/ruby-3.3.yml.example b/gems/kettle-jem/lib/kettle/jem/templates/.github/workflows/ruby-3.3.yml.example index e41d85d29..a541e189a 100644 --- a/gems/kettle-jem/lib/kettle/jem/templates/.github/workflows/ruby-3.3.yml.example +++ b/gems/kettle-jem/lib/kettle/jem/templates/.github/workflows/ruby-3.3.yml.example @@ -42,12 +42,12 @@ jobs: steps: - name: Checkout - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 + uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 with: persist-credentials: false - name: Setup Ruby & RubyGems - uses: ruby/setup-ruby@003a5c4d8d6321bd302e38f6f0ec593f77f06600 # v1.319.0 + uses: ruby/setup-ruby@a30dfa457ad68707b8b910ac3a244714b61c0626 # v1.320.0 with: ruby-version: ${{ matrix.ruby }} rubygems: ${{ matrix.rubygems }} diff --git a/gems/kettle-jem/lib/kettle/jem/templates/.github/workflows/ruby-3.4.yml.example b/gems/kettle-jem/lib/kettle/jem/templates/.github/workflows/ruby-3.4.yml.example index 3ad10dcfe..120a3b5a9 100644 --- a/gems/kettle-jem/lib/kettle/jem/templates/.github/workflows/ruby-3.4.yml.example +++ b/gems/kettle-jem/lib/kettle/jem/templates/.github/workflows/ruby-3.4.yml.example @@ -42,12 +42,12 @@ jobs: steps: - name: Checkout - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 + uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 with: persist-credentials: false - name: Setup Ruby & RubyGems - uses: ruby/setup-ruby@003a5c4d8d6321bd302e38f6f0ec593f77f06600 # v1.319.0 + uses: ruby/setup-ruby@a30dfa457ad68707b8b910ac3a244714b61c0626 # v1.320.0 with: ruby-version: ${{ matrix.ruby }} rubygems: ${{ matrix.rubygems }} diff --git a/gems/kettle-jem/lib/kettle/jem/templates/.github/workflows/style.yml.example b/gems/kettle-jem/lib/kettle/jem/templates/.github/workflows/style.yml.example index de17a7678..ec079a197 100644 --- a/gems/kettle-jem/lib/kettle/jem/templates/.github/workflows/style.yml.example +++ b/gems/kettle-jem/lib/kettle/jem/templates/.github/workflows/style.yml.example @@ -42,12 +42,12 @@ jobs: steps: - name: Checkout - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 + uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 with: persist-credentials: false - name: Setup Ruby & RubyGems - uses: ruby/setup-ruby@003a5c4d8d6321bd302e38f6f0ec593f77f06600 # v1.319.0 + uses: ruby/setup-ruby@a30dfa457ad68707b8b910ac3a244714b61c0626 # v1.320.0 with: ruby-version: ${{ matrix.ruby }} rubygems: ${{ matrix.rubygems }} diff --git a/gems/kettle-jem/lib/kettle/jem/templates/.github/workflows/templating.yml.example b/gems/kettle-jem/lib/kettle/jem/templates/.github/workflows/templating.yml.example index e8515054b..56f319ab3 100644 --- a/gems/kettle-jem/lib/kettle/jem/templates/.github/workflows/templating.yml.example +++ b/gems/kettle-jem/lib/kettle/jem/templates/.github/workflows/templating.yml.example @@ -46,12 +46,12 @@ jobs: steps: - name: Checkout - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 + uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 with: persist-credentials: false - name: Setup Ruby & RubyGems - uses: ruby/setup-ruby@003a5c4d8d6321bd302e38f6f0ec593f77f06600 # v1.319.0 + uses: ruby/setup-ruby@a30dfa457ad68707b8b910ac3a244714b61c0626 # v1.320.0 with: ruby-version: ${{ matrix.ruby }} rubygems: ${{ matrix.rubygems }} diff --git a/gems/kettle-jem/lib/kettle/jem/templates/.github/workflows/truffle.yml.example b/gems/kettle-jem/lib/kettle/jem/templates/.github/workflows/truffle.yml.example index 4c2b0d51a..f7ea40ccd 100644 --- a/gems/kettle-jem/lib/kettle/jem/templates/.github/workflows/truffle.yml.example +++ b/gems/kettle-jem/lib/kettle/jem/templates/.github/workflows/truffle.yml.example @@ -47,13 +47,13 @@ jobs: steps: - name: Checkout if: ${{ !env.ACT }} - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 + uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 with: persist-credentials: false - name: Setup Ruby & RubyGems if: ${{ !env.ACT }} - uses: ruby/setup-ruby@003a5c4d8d6321bd302e38f6f0ec593f77f06600 # v1.319.0 + uses: ruby/setup-ruby@a30dfa457ad68707b8b910ac3a244714b61c0626 # v1.320.0 with: ruby-version: ${{ matrix.ruby }} rubygems: ${{ matrix.rubygems }} diff --git a/gems/kettle-jem/lib/kettle/jem/templates/.github/workflows/truffleruby-22.3.yml.example b/gems/kettle-jem/lib/kettle/jem/templates/.github/workflows/truffleruby-22.3.yml.example index 04de26fcb..4c4d4f904 100644 --- a/gems/kettle-jem/lib/kettle/jem/templates/.github/workflows/truffleruby-22.3.yml.example +++ b/gems/kettle-jem/lib/kettle/jem/templates/.github/workflows/truffleruby-22.3.yml.example @@ -48,13 +48,13 @@ jobs: steps: - name: Checkout if: ${{ !env.ACT }} - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 + uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 with: persist-credentials: false - name: Setup Ruby & RubyGems if: ${{ !env.ACT }} - uses: ruby/setup-ruby@003a5c4d8d6321bd302e38f6f0ec593f77f06600 # v1.319.0 + uses: ruby/setup-ruby@a30dfa457ad68707b8b910ac3a244714b61c0626 # v1.320.0 with: ruby-version: ${{ matrix.ruby }} rubygems: ${{ matrix.rubygems }} diff --git a/gems/kettle-jem/lib/kettle/jem/templates/.github/workflows/truffleruby-23.0.yml.example b/gems/kettle-jem/lib/kettle/jem/templates/.github/workflows/truffleruby-23.0.yml.example index df29d8065..343a810e9 100644 --- a/gems/kettle-jem/lib/kettle/jem/templates/.github/workflows/truffleruby-23.0.yml.example +++ b/gems/kettle-jem/lib/kettle/jem/templates/.github/workflows/truffleruby-23.0.yml.example @@ -48,13 +48,13 @@ jobs: steps: - name: Checkout if: ${{ !env.ACT }} - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 + uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 with: persist-credentials: false - name: Setup Ruby & RubyGems if: ${{ !env.ACT }} - uses: ruby/setup-ruby@003a5c4d8d6321bd302e38f6f0ec593f77f06600 # v1.319.0 + uses: ruby/setup-ruby@a30dfa457ad68707b8b910ac3a244714b61c0626 # v1.320.0 with: ruby-version: ${{ matrix.ruby }} rubygems: ${{ matrix.rubygems }} diff --git a/gems/kettle-jem/lib/kettle/jem/templates/.github/workflows/truffleruby-23.1.yml.example b/gems/kettle-jem/lib/kettle/jem/templates/.github/workflows/truffleruby-23.1.yml.example index b4beb3776..8dabfefef 100644 --- a/gems/kettle-jem/lib/kettle/jem/templates/.github/workflows/truffleruby-23.1.yml.example +++ b/gems/kettle-jem/lib/kettle/jem/templates/.github/workflows/truffleruby-23.1.yml.example @@ -48,13 +48,13 @@ jobs: steps: - name: Checkout if: ${{ !env.ACT }} - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 + uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 with: persist-credentials: false - name: Setup Ruby & RubyGems if: ${{ !env.ACT }} - uses: ruby/setup-ruby@003a5c4d8d6321bd302e38f6f0ec593f77f06600 # v1.319.0 + uses: ruby/setup-ruby@a30dfa457ad68707b8b910ac3a244714b61c0626 # v1.320.0 with: ruby-version: ${{ matrix.ruby }} rubygems: ${{ matrix.rubygems }} diff --git a/gems/kettle-jem/lib/kettle/jem/templates/.github/workflows/truffleruby-24.2.yml.example b/gems/kettle-jem/lib/kettle/jem/templates/.github/workflows/truffleruby-24.2.yml.example index 76f3779c1..1114650c4 100644 --- a/gems/kettle-jem/lib/kettle/jem/templates/.github/workflows/truffleruby-24.2.yml.example +++ b/gems/kettle-jem/lib/kettle/jem/templates/.github/workflows/truffleruby-24.2.yml.example @@ -47,13 +47,13 @@ jobs: steps: - name: Checkout if: ${{ !env.ACT }} - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 + uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 with: persist-credentials: false - name: Setup Ruby & RubyGems if: ${{ !env.ACT }} - uses: ruby/setup-ruby@003a5c4d8d6321bd302e38f6f0ec593f77f06600 # v1.319.0 + uses: ruby/setup-ruby@a30dfa457ad68707b8b910ac3a244714b61c0626 # v1.320.0 with: ruby-version: ${{ matrix.ruby }} rubygems: ${{ matrix.rubygems }} diff --git a/gems/kettle-jem/lib/kettle/jem/templates/.github/workflows/truffleruby-25.0.yml.example b/gems/kettle-jem/lib/kettle/jem/templates/.github/workflows/truffleruby-25.0.yml.example index 765e82b2b..6bed99d69 100644 --- a/gems/kettle-jem/lib/kettle/jem/templates/.github/workflows/truffleruby-25.0.yml.example +++ b/gems/kettle-jem/lib/kettle/jem/templates/.github/workflows/truffleruby-25.0.yml.example @@ -47,13 +47,13 @@ jobs: steps: - name: Checkout if: ${{ !env.ACT }} - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 + uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 with: persist-credentials: false - name: Setup Ruby & RubyGems if: ${{ !env.ACT }} - uses: ruby/setup-ruby@003a5c4d8d6321bd302e38f6f0ec593f77f06600 # v1.319.0 + uses: ruby/setup-ruby@a30dfa457ad68707b8b910ac3a244714b61c0626 # v1.320.0 with: ruby-version: ${{ matrix.ruby }} rubygems: ${{ matrix.rubygems }} diff --git a/gems/kettle-jem/lib/kettle/jem/templates/.github/workflows/truffleruby-33.0.yml.example b/gems/kettle-jem/lib/kettle/jem/templates/.github/workflows/truffleruby-33.0.yml.example index ded31d2e4..60ec2a130 100644 --- a/gems/kettle-jem/lib/kettle/jem/templates/.github/workflows/truffleruby-33.0.yml.example +++ b/gems/kettle-jem/lib/kettle/jem/templates/.github/workflows/truffleruby-33.0.yml.example @@ -47,13 +47,13 @@ jobs: steps: - name: Checkout if: ${{ !env.ACT }} - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 + uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 with: persist-credentials: false - name: Setup Ruby & RubyGems if: ${{ !env.ACT }} - uses: ruby/setup-ruby@003a5c4d8d6321bd302e38f6f0ec593f77f06600 # v1.319.0 + uses: ruby/setup-ruby@a30dfa457ad68707b8b910ac3a244714b61c0626 # v1.320.0 with: ruby-version: ${{ matrix.ruby }} rubygems: ${{ matrix.rubygems }} diff --git a/gems/kettle-jem/lib/kettle/jem/templates/.github/workflows/unlocked_deps.yml.example b/gems/kettle-jem/lib/kettle/jem/templates/.github/workflows/unlocked_deps.yml.example index 53346f247..5cb3b4b8c 100644 --- a/gems/kettle-jem/lib/kettle/jem/templates/.github/workflows/unlocked_deps.yml.example +++ b/gems/kettle-jem/lib/kettle/jem/templates/.github/workflows/unlocked_deps.yml.example @@ -62,12 +62,12 @@ jobs: steps: - name: Checkout - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 + uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 with: persist-credentials: false - name: Setup Ruby & RubyGems - uses: ruby/setup-ruby@003a5c4d8d6321bd302e38f6f0ec593f77f06600 # v1.319.0 + uses: ruby/setup-ruby@a30dfa457ad68707b8b910ac3a244714b61c0626 # v1.320.0 with: ruby-version: ${{ matrix.ruby }} rubygems: ${{ matrix.rubygems }} From 9a9f883dabe9f09bd5dfcc7a6618a413ef4917f4 Mon Sep 17 00:00:00 2001 From: "Peter H. Boling" Date: Tue, 21 Jul 2026 13:48:33 -0600 Subject: [PATCH 113/188] =?UTF-8?q?=E2=AC=86=EF=B8=8F=20Upgrade=20template?= =?UTF-8?q?=20deps?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gems/kettle-jem/Gemfile.lock | 36 +++++++++---------- gems/kettle-jem/lib/kettle/jem.rb | 6 ++-- .../kettle/jem/templates/gem.gemspec.example | 2 +- .../modular/erb/r3/v5.0.gemfile.example | 2 +- .../modular/erb/r4/v5.0.gemfile.example | 2 +- .../gemfiles/modular/style.gemfile.example | 2 +- .../modular/templating.gemfile.example | 2 +- .../jem/templates/shim/gem.gemspec.example | 2 +- 8 files changed, 27 insertions(+), 27 deletions(-) diff --git a/gems/kettle-jem/Gemfile.lock b/gems/kettle-jem/Gemfile.lock index 5e345fbb1..75b1800a4 100644 --- a/gems/kettle-jem/Gemfile.lock +++ b/gems/kettle-jem/Gemfile.lock @@ -28,7 +28,7 @@ PATH yaml-merge (= 7.1.0) PATH - remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly specs: ast-crispr-markdown-markly (7.1.0) ast-crispr (= 7.1.0) @@ -36,7 +36,7 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism specs: ast-crispr-ruby-prism (7.1.0) ast-crispr (= 7.1.0) @@ -44,7 +44,7 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/ast-merge + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge specs: ast-merge (7.1.0) benchmark @@ -53,7 +53,7 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/bash-merge + remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge specs: bash-merge (7.1.0) ast-merge (= 7.1.0) @@ -61,7 +61,7 @@ PATH version_gem (~> 1.1, >= 1.1.14) PATH - remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge + remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge specs: citrus-toml-merge (7.1.0) toml-merge (= 7.1.0) @@ -69,7 +69,7 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge + remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge specs: commonmarker-merge (7.1.0) commonmarker (~> 2.2) @@ -77,7 +77,7 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge + remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge specs: dotenv-merge (7.1.0) ast-merge (= 7.1.0) @@ -85,7 +85,7 @@ PATH version_gem (~> 1.1, >= 1.1.14) PATH - remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/json-merge + remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge specs: json-merge (7.1.0) ast-merge (= 7.1.0) @@ -93,7 +93,7 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge + remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge specs: kramdown-merge (7.1.0) kramdown (~> 2.5) @@ -101,7 +101,7 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge + remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge specs: markdown-merge (7.1.0) ast-merge (= 7.1.0) @@ -109,7 +109,7 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/markly-merge + remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge specs: markly-merge (7.1.0) markdown-merge (= 7.1.0) @@ -117,7 +117,7 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/prism-merge + remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge specs: prism-merge (7.1.0) prism (~> 1.6) @@ -125,7 +125,7 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/psych-merge + remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge specs: psych-merge (7.1.0) ast-merge (= 7.1.0) @@ -134,7 +134,7 @@ PATH yaml-merge (= 7.1.0) PATH - remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge + remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge specs: rbs-merge (7.1.0) ast-merge (= 7.1.0) @@ -143,7 +143,7 @@ PATH version_gem (~> 1.1, >= 1.1.14) PATH - remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge specs: ruby-merge (7.1.0) ast-merge (= 7.1.0) @@ -151,7 +151,7 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/toml-merge + remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge specs: toml-merge (7.1.0) ast-merge (= 7.1.0) @@ -159,7 +159,7 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/tree_haver + remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver specs: tree_haver (7.1.0) citrus (~> 3.0) @@ -168,7 +168,7 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge + remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge specs: yaml-merge (7.1.0) ast-merge (= 7.1.0) diff --git a/gems/kettle-jem/lib/kettle/jem.rb b/gems/kettle-jem/lib/kettle/jem.rb index 8d3d80d84..5c8f15d0c 100644 --- a/gems/kettle-jem/lib/kettle/jem.rb +++ b/gems/kettle-jem/lib/kettle/jem.rb @@ -4448,10 +4448,10 @@ def monorepo_root_gemfile_dependency_lines [ {name: "appraisal2", source: %(gem "appraisal2", "~> 3.2", ">= 3.2.0"\n)}, {name: "bundler-audit", source: %(gem "bundler-audit", "~> 0.9.3"\n)}, - {name: "kettle-dev", source: %(gem "kettle-dev", "~> 2.3", ">= 2.3.7"\n)}, - {name: "kettle-drift", source: %(gem "kettle-drift", "~> 1.0", ">= 1.0.5"\n)}, + {name: "kettle-dev", source: %(gem "kettle-dev", "~> 2.3", ">= 2.3.8"\n)}, + {name: "kettle-drift", source: %(gem "kettle-drift", "~> 1.0", ">= 1.0.6"\n)}, {name: "kettle-jem", source: %(gem "kettle-jem", "~> 7.0", ">= 7.0.0"\n)}, - {name: "kettle-test", source: %(gem "kettle-test", "~> 2.0", ">= 2.0.11"\n)}, + {name: "kettle-test", source: %(gem "kettle-test", "~> 2.0", ">= 2.0.12"\n)}, {name: "rake", source: %(gem "rake", "~> 13.0"\n)}, {name: "rspec", source: %(gem "rspec", "~> 3.0"\n)}, {name: "stone_checksums", source: %(gem "stone_checksums", "~> 1.0", ">= 1.0.6"\n)}, diff --git a/gems/kettle-jem/lib/kettle/jem/templates/gem.gemspec.example b/gems/kettle-jem/lib/kettle/jem/templates/gem.gemspec.example index 32305d678..4d8572857 100644 --- a/gems/kettle-jem/lib/kettle/jem/templates/gem.gemspec.example +++ b/gems/kettle-jem/lib/kettle/jem/templates/gem.gemspec.example @@ -125,7 +125,7 @@ Gem::Specification.new do |spec| # Testing spec.add_development_dependency("appraisal2", "~> 3.2", ">= 3.2.0") # ruby >= 1.8.7, for testing against multiple versions of dependencies - spec.add_development_dependency("kettle-test", "~> 2.0", ">= 2.0.11") # ruby >= {KJ|MIN_TEST_RUBY} + spec.add_development_dependency("kettle-test", "~> 2.0", ">= 2.0.12") # ruby >= {KJ|MIN_TEST_RUBY} spec.add_development_dependency("turbo_tests2", "~> 3.2", ">= 3.2.0") # ruby >= 2.4.0, default kettle-test runner # Releasing diff --git a/gems/kettle-jem/lib/kettle/jem/templates/gemfiles/modular/erb/r3/v5.0.gemfile.example b/gems/kettle-jem/lib/kettle/jem/templates/gemfiles/modular/erb/r3/v5.0.gemfile.example index 5bde0e077..1bd029cc1 100644 --- a/gems/kettle-jem/lib/kettle/jem/templates/gemfiles/modular/erb/r3/v5.0.gemfile.example +++ b/gems/kettle-jem/lib/kettle/jem/templates/gemfiles/modular/erb/r3/v5.0.gemfile.example @@ -1 +1 @@ -gem "erb", "~> 6.0", ">= 6.0.5" # ruby >= 3.2.0 +gem "erb", "~> 6.0", ">= 6.0.6" # ruby >= 3.2.0 diff --git a/gems/kettle-jem/lib/kettle/jem/templates/gemfiles/modular/erb/r4/v5.0.gemfile.example b/gems/kettle-jem/lib/kettle/jem/templates/gemfiles/modular/erb/r4/v5.0.gemfile.example index 5bde0e077..1bd029cc1 100644 --- a/gems/kettle-jem/lib/kettle/jem/templates/gemfiles/modular/erb/r4/v5.0.gemfile.example +++ b/gems/kettle-jem/lib/kettle/jem/templates/gemfiles/modular/erb/r4/v5.0.gemfile.example @@ -1 +1 @@ -gem "erb", "~> 6.0", ">= 6.0.5" # ruby >= 3.2.0 +gem "erb", "~> 6.0", ">= 6.0.6" # ruby >= 3.2.0 diff --git a/gems/kettle-jem/lib/kettle/jem/templates/gemfiles/modular/style.gemfile.example b/gems/kettle-jem/lib/kettle/jem/templates/gemfiles/modular/style.gemfile.example index 12a02795c..d0ea4f439 100644 --- a/gems/kettle-jem/lib/kettle/jem/templates/gemfiles/modular/style.gemfile.example +++ b/gems/kettle-jem/lib/kettle/jem/templates/gemfiles/modular/style.gemfile.example @@ -14,7 +14,7 @@ gem "reek", "~> 6.5", ">= 6.5.0" platform :mri do gem "appraisal2-rubocop", "~> 1.0", ">= 1.0.0", require: false gem "rubocop-gradual", "~> 0.4", ">= 0.4.0" - gem "rubocop-minitest", "~> 0.39", ">= 0.39.1" + gem "rubocop-minitest", "~> 0.40", ">= 0.40.0" gem "rubocop-on-rbs", "~> 2.0", ">= 2.0.0" # ruby >= 3.2.0 # gem "rubocop", "~> 1.73", ">= 1.73.2" # constrained by standard gem "rubocop-packaging", "~> 0.6", ">= 0.6.0" diff --git a/gems/kettle-jem/lib/kettle/jem/templates/gemfiles/modular/templating.gemfile.example b/gems/kettle-jem/lib/kettle/jem/templates/gemfiles/modular/templating.gemfile.example index cf5529f88..47138ffbb 100644 --- a/gems/kettle-jem/lib/kettle/jem/templates/gemfiles/modular/templating.gemfile.example +++ b/gems/kettle-jem/lib/kettle/jem/templates/gemfiles/modular/templating.gemfile.example @@ -12,7 +12,7 @@ end if kettle_remote # Template/plugin checks for released installs. - gem "kettle-drift", "~> 1.0", ">= 1.0.5", require: false + gem "kettle-drift", "~> 1.0", ">= 1.0.6", require: false end # Set STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local development with path-based dependencies. diff --git a/gems/kettle-jem/lib/kettle/jem/templates/shim/gem.gemspec.example b/gems/kettle-jem/lib/kettle/jem/templates/shim/gem.gemspec.example index 980477b32..32b5e317a 100644 --- a/gems/kettle-jem/lib/kettle/jem/templates/shim/gem.gemspec.example +++ b/gems/kettle-jem/lib/kettle/jem/templates/shim/gem.gemspec.example @@ -35,7 +35,7 @@ Gem::Specification.new do |spec| spec.add_development_dependency "rake", "~> 13.0" # Testing - spec.add_development_dependency("kettle-test", "~> 2.0", ">= 2.0.11") # ruby >= {KJ|MIN_TEST_RUBY} + spec.add_development_dependency("kettle-test", "~> 2.0", ">= 2.0.12") # ruby >= {KJ|MIN_TEST_RUBY} spec.add_development_dependency "rspec", "~> 3.12" # Releasing From 9a7c5938cbea5d358d8243d5fe15e1fcf1ea2888 Mon Sep 17 00:00:00 2001 From: "Peter H. Boling" Date: Tue, 21 Jul 2026 13:50:14 -0600 Subject: [PATCH 114/188] =?UTF-8?q?=F0=9F=8E=A8=20Template=20bootstrap=20b?= =?UTF-8?q?y=20kettle-jem=20v7.1.0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Gemfile.lock | 1 - gems/ast-crispr-markdown-markly/Gemfile.lock | 69 +-- gems/ast-crispr-ruby-prism/Gemfile.lock | 48 +- gems/ast-crispr/.kettle-drift.lock | 293 +---------- gems/ast-crispr/.rubocop_gradual.lock | 189 +++---- .../.structuredmerge/kettle-jem.yml | 53 ++ gems/ast-crispr/Gemfile | 40 ++ gems/ast-crispr/Gemfile.lock | 221 ++++---- gems/ast-crispr/README.md | 4 +- .../gemfiles/modular/cgi/r4/v0.5.gemfile | 1 + .../gemfiles/modular/cgi/vHEAD.gemfile | 1 + .../gemfiles/modular/coverage.gemfile | 2 +- .../gemfiles/modular/coverage_local.gemfile | 24 +- .../gemfiles/modular/documentation.gemfile | 12 +- .../modular/documentation_local.gemfile | 26 +- .../gemfiles/modular/erb/r3/v5.0.gemfile | 2 +- .../gemfiles/modular/erb/r4/v5.0.gemfile | 2 +- .../modular/json/truffleruby_22_3.gemfile | 6 + .../modular/json/truffleruby_23_0.gemfile | 6 + .../modular/json/truffleruby_23_1.gemfile | 6 + .../gemfiles/modular/optional.gemfile | 3 +- .../gemfiles/modular/runtime_heads.gemfile | 5 +- .../ast-crispr/gemfiles/modular/style.gemfile | 23 +- .../gemfiles/modular/style_local.gemfile | 30 +- .../gemfiles/modular/templating.gemfile | 4 +- .../gemfiles/modular/templating_local.gemfile | 22 +- .../gemfiles/modular/webrick/r4/v1.9.gemfile | 1 + .../gemfiles/modular/webrick/vHEAD.gemfile | 1 + .../modular/x_std_libs/r4/libs.gemfile | 2 + .../gemfiles/modular/x_std_libs/vHEAD.gemfile | 2 + gems/ast-merge-git/Gemfile.lock | 69 +-- gems/ast-merge/.kettle-drift.lock | 308 +---------- .../ast-merge/.structuredmerge/kettle-jem.yml | 53 ++ gems/ast-merge/Gemfile | 72 ++- gems/ast-merge/Gemfile.lock | 381 ++++++++++++-- gems/ast-merge/Rakefile | 18 +- gems/ast-merge/lib/ast/merge/version.rb | 2 +- gems/ast-template/Gemfile.lock | 69 +-- gems/bash-merge/Gemfile.lock | 90 ++-- gems/binary-merge/Gemfile.lock | 75 ++- gems/citrus-toml-merge/Gemfile.lock | 69 +-- gems/commonmarker-merge/Gemfile.lock | 79 +-- gems/dotenv-merge/Gemfile.lock | 90 ++-- gems/go-merge/Gemfile.lock | 90 ++-- gems/json-merge/Gemfile.lock | 90 ++-- gems/kramdown-merge/Gemfile.lock | 69 +-- gems/markdown-merge/Gemfile.lock | 90 ++-- gems/markly-merge/Gemfile.lock | 69 +-- gems/parslet-toml-merge/Gemfile.lock | 69 +-- gems/plain-merge/Gemfile.lock | 90 ++-- gems/prism-merge/Gemfile.lock | 48 +- gems/psych-merge/Gemfile.lock | 103 ++-- gems/rbs-merge/Gemfile.lock | 90 ++-- gems/ruby-merge/.kettle-drift.lock | 293 +---------- gems/ruby-merge/.rubocop_gradual.lock | 22 +- .../.structuredmerge/kettle-jem.yml | 53 ++ gems/ruby-merge/Gemfile | 40 ++ gems/ruby-merge/Gemfile.lock | 143 ++++-- gems/ruby-merge/README.md | 4 +- .../gemfiles/modular/cgi/r4/v0.5.gemfile | 1 + .../gemfiles/modular/cgi/vHEAD.gemfile | 1 + .../gemfiles/modular/coverage.gemfile | 2 +- .../gemfiles/modular/coverage_local.gemfile | 24 +- .../gemfiles/modular/documentation.gemfile | 12 +- .../modular/documentation_local.gemfile | 26 +- .../gemfiles/modular/erb/r3/v5.0.gemfile | 2 +- .../gemfiles/modular/erb/r4/v5.0.gemfile | 2 +- .../modular/json/truffleruby_22_3.gemfile | 6 + .../modular/json/truffleruby_23_0.gemfile | 6 + .../modular/json/truffleruby_23_1.gemfile | 6 + .../gemfiles/modular/optional.gemfile | 3 +- .../gemfiles/modular/runtime_heads.gemfile | 5 +- .../ruby-merge/gemfiles/modular/style.gemfile | 23 +- .../gemfiles/modular/style_local.gemfile | 30 +- .../gemfiles/modular/templating.gemfile | 4 +- .../gemfiles/modular/templating_local.gemfile | 22 +- .../gemfiles/modular/webrick/r4/v1.9.gemfile | 1 + .../gemfiles/modular/webrick/vHEAD.gemfile | 1 + .../modular/x_std_libs/r4/libs.gemfile | 2 + .../gemfiles/modular/x_std_libs/vHEAD.gemfile | 2 + gems/rust-merge/Gemfile.lock | 90 ++-- gems/smorg-rb/Gemfile.lock | 79 +-- gems/toml-merge/Gemfile.lock | 90 ++-- gems/tree_haver/.kettle-drift.lock | 9 - gems/tree_haver/.rubocop_gradual.lock | 485 ------------------ .../.structuredmerge/kettle-jem.yml | 53 ++ gems/tree_haver/Gemfile | 2 - gems/tree_haver/Gemfile.lock | 136 +++-- gems/tree_haver/README.md | 4 +- .../gemfiles/modular/cgi/r4/v0.5.gemfile | 1 + .../gemfiles/modular/cgi/vHEAD.gemfile | 1 + .../gemfiles/modular/coverage.gemfile | 2 +- .../gemfiles/modular/coverage_local.gemfile | 24 +- .../gemfiles/modular/documentation.gemfile | 12 +- .../modular/documentation_local.gemfile | 26 +- .../gemfiles/modular/erb/r3/v5.0.gemfile | 2 +- .../gemfiles/modular/erb/r4/v5.0.gemfile | 2 +- .../modular/json/truffleruby_22_3.gemfile | 6 + .../modular/json/truffleruby_23_0.gemfile | 6 + .../modular/json/truffleruby_23_1.gemfile | 6 + .../gemfiles/modular/optional.gemfile | 7 +- .../tree_haver/gemfiles/modular/rspec.gemfile | 8 +- .../gemfiles/modular/runtime_heads.gemfile | 7 +- .../gemfiles/modular/stringio/r2/v3.0.gemfile | 2 +- .../gemfiles/modular/stringio/r3/v3.0.gemfile | 2 +- .../gemfiles/modular/stringio/r4/v3.0.gemfile | 2 +- .../gemfiles/modular/stringio/vHEAD.gemfile | 2 +- .../tree_haver/gemfiles/modular/style.gemfile | 29 +- .../gemfiles/modular/style_local.gemfile | 44 +- .../gemfiles/modular/templating.gemfile | 14 +- .../gemfiles/modular/templating_local.gemfile | 48 +- .../gemfiles/modular/webrick/r4/v1.9.gemfile | 1 + .../gemfiles/modular/webrick/vHEAD.gemfile | 1 + .../gemfiles/modular/x_std_libs.gemfile | 14 +- .../modular/x_std_libs/r2/libs.gemfile | 6 +- .../modular/x_std_libs/r3/libs.gemfile | 6 +- .../modular/x_std_libs/r4/libs.gemfile | 10 +- .../gemfiles/modular/x_std_libs/vHEAD.gemfile | 10 +- gems/tree_haver/lib/tree_haver/version.rb | 2 +- gems/typescript-merge/Gemfile.lock | 90 ++-- gems/yaml-merge/Gemfile.lock | 90 ++-- gems/zip-merge/Gemfile.lock | 75 ++- 122 files changed, 2385 insertions(+), 3139 deletions(-) create mode 100644 gems/ast-crispr/gemfiles/modular/cgi/r4/v0.5.gemfile create mode 100644 gems/ast-crispr/gemfiles/modular/cgi/vHEAD.gemfile create mode 100644 gems/ast-crispr/gemfiles/modular/json/truffleruby_22_3.gemfile create mode 100644 gems/ast-crispr/gemfiles/modular/json/truffleruby_23_0.gemfile create mode 100644 gems/ast-crispr/gemfiles/modular/json/truffleruby_23_1.gemfile create mode 100644 gems/ast-crispr/gemfiles/modular/webrick/r4/v1.9.gemfile create mode 100644 gems/ast-crispr/gemfiles/modular/webrick/vHEAD.gemfile create mode 100644 gems/ruby-merge/gemfiles/modular/cgi/r4/v0.5.gemfile create mode 100644 gems/ruby-merge/gemfiles/modular/cgi/vHEAD.gemfile create mode 100644 gems/ruby-merge/gemfiles/modular/json/truffleruby_22_3.gemfile create mode 100644 gems/ruby-merge/gemfiles/modular/json/truffleruby_23_0.gemfile create mode 100644 gems/ruby-merge/gemfiles/modular/json/truffleruby_23_1.gemfile create mode 100644 gems/ruby-merge/gemfiles/modular/webrick/r4/v1.9.gemfile create mode 100644 gems/ruby-merge/gemfiles/modular/webrick/vHEAD.gemfile delete mode 100644 gems/tree_haver/.rubocop_gradual.lock create mode 100644 gems/tree_haver/gemfiles/modular/cgi/r4/v0.5.gemfile create mode 100644 gems/tree_haver/gemfiles/modular/cgi/vHEAD.gemfile create mode 100644 gems/tree_haver/gemfiles/modular/json/truffleruby_22_3.gemfile create mode 100644 gems/tree_haver/gemfiles/modular/json/truffleruby_23_0.gemfile create mode 100644 gems/tree_haver/gemfiles/modular/json/truffleruby_23_1.gemfile create mode 100644 gems/tree_haver/gemfiles/modular/webrick/r4/v1.9.gemfile create mode 100644 gems/tree_haver/gemfiles/modular/webrick/vHEAD.gemfile diff --git a/Gemfile.lock b/Gemfile.lock index b8b679a18..ca9560454 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -471,7 +471,6 @@ CHECKSUMS bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c binary-merge (7.1.0) - bundler (4.0.16) sha256=d6ca5dd440c24f9abce9844cf44cc8e18c6a553de65a47efb4544137af92c47d bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 citrus-toml-merge (7.1.0) diff --git a/gems/ast-crispr-markdown-markly/Gemfile.lock b/gems/ast-crispr-markdown-markly/Gemfile.lock index 22989a7e9..061fc6b84 100644 --- a/gems/ast-crispr-markdown-markly/Gemfile.lock +++ b/gems/ast-crispr-markdown-markly/Gemfile.lock @@ -135,18 +135,8 @@ GEM markly (~> 0.9) version_gem (~> 1.1, >= 1.1.9) mutex_m (0.3.0) - nokogiri (1.19.4-aarch64-linux-gnu) - racc (~> 1.4) - nokogiri (1.19.4-aarch64-linux-musl) - racc (~> 1.4) - nokogiri (1.19.4-arm64-darwin) - racc (~> 1.4) - nokogiri (1.19.4-x86_64-darwin) - racc (~> 1.4) nokogiri (1.19.4-x86_64-linux-gnu) racc (~> 1.4) - nokogiri (1.19.4-x86_64-linux-musl) - racc (~> 1.4) nomono (1.0.8) openssl (4.0.2) ostruct (0.6.3) @@ -168,9 +158,6 @@ GEM racc (1.8.1) rainbow (3.1.1) rake (13.4.2) - rake-compiler-dock (1.12.0) - rb_sys (0.9.127) - rake-compiler-dock (= 1.12.0) rbs (4.0.3) logger prism (>= 1.6.0) @@ -326,14 +313,14 @@ GEM timecop (>= 0.7, < 1) token-resolver (2.0.4) parslet (~> 2.0) - version_gem (~> 1.1, >= 1.1.13) + version_gem (~> 1.1, >= 1.1.14) tree_haver (7.1.0) citrus (~> 3.0) parslet (~> 2.0) - tree_sitter_language_pack (>= 1.9.0.pre.rc.40, < 2.0) + tree_sitter_language_pack (>= 1.13.2, < 2.0) version_gem (~> 1.1, >= 1.1.9) -tree_sitter_language_pack (1.13.3-x86_64-linux) - sorbet-runtime (~> 0.5) + tree_sitter_language_pack (1.13.3-x86_64-linux) + sorbet-runtime (~> 0.5) tsort (0.2.0) turbo_tests2 (3.2.0) parallel_tests (>= 3.3.0, < 6) @@ -369,13 +356,8 @@ tree_sitter_language_pack (1.13.3-x86_64-linux) zlib (3.2.3) PLATFORMS - aarch64-linux - aarch64-linux-gnu - aarch64-linux-musl - arm64-darwin - x86_64-darwin + x86_64-linux x86_64-linux-gnu - x86_64-linux-musl DEPENDENCIES addressable (>= 2.8, < 3) @@ -468,12 +450,7 @@ CHECKSUMS markly (0.16.0) sha256=6f70d79e385b1efc9e171f74c81628826259039fe6c778e03c3924c71dac5511 markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 - nokogiri (1.19.4-aarch64-linux-gnu) sha256=1269fb644a6de405057a53dd5c762b1209b43ca7424f839454d3dbc677c31a8f - nokogiri (1.19.4-aarch64-linux-musl) sha256=35c65b9ce72b3bb03207bdbe7067915019dc18c1b9b59139684bd6690fdd01af - nokogiri (1.19.4-arm64-darwin) sha256=a46db9853286e6597b36ebc6953817d15acf3a299583eb3f89fdc6f91dd63527 - nokogiri (1.19.4-x86_64-darwin) sha256=7fd17057d3e1f00e9954a74b3cd76595d3d4a5ef233b7ed9599047c204f70551 nokogiri (1.19.4-x86_64-linux-gnu) sha256=379fae440b28915e3f19d752ce2dcf8465ed2b2fbefd2a7ca0dd497bc981a06a - nokogiri (1.19.4-x86_64-linux-musl) sha256=17dfb7c1fa194ae02fbf7c51a7afc8d278045ab3fdacfd86f91d02d7b274470b nomono (1.0.8) sha256=bf4b9b426cbf216ab17b70db474f691b8ae1f1e29de8db4b0ecd405e6e7e1c80 openssl (4.0.2) sha256=1037ad2868ae58df9ad917891c0c0f9815a1172f6846d4bcdd508e4c2ee747c2 ostruct (0.6.3) sha256=95a2ed4a4bd1d190784e666b47b2d3f078e4a9efda2fccf18f84ddc6538ed912 @@ -489,8 +466,6 @@ CHECKSUMS racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 - rake-compiler-dock (1.12.0) sha256=f13205c2738f3d2053afcd03491a9e4541b22a59a0bfc53fc8bc883bd8188023 - rb_sys (0.9.127) sha256=e9f90df3bb0577472d26d96127d5b5774b98f44de881e7d36aeefd28d6337847 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 @@ -545,25 +520,21 @@ CHECKSUMS timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.4) sha256=33b926958f504525bba3ed511ab66fbcbf8ef30390815e931436b30f27ffcad0 tree_haver (7.1.0) - tree_sitter_language_pack (1.13.2) - tree_sitter_language_pack (1.13.2-aarch64-linux) - tree_sitter_language_pack (1.13.2-arm64-darwin) - tree_sitter_language_pack (1.13.2-x86_64-darwin) - tree_sitter_language_pack (1.13.2-x86_64-linux) - tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f - turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 - unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 - unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f - version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 - yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 - yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 - yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 - yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd - yard-relative_markdown_links (0.6.0) sha256=3e5ffa85cbad9bac70bee5421774b190fb25d3bdf489323a5b3534f647d1a70e - yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a - yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 - zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 - zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 + tree_sitter_language_pack (1.13.3-x86_64-linux) + tsort (0.2.0) + turbo_tests2 (3.2.0) + unicode-display_width (3.2.0) + unicode-emoji (4.2.0) + version_gem (1.1.14) + yaml-converter (0.2.3) + yard (0.9.45) + yard-fence (0.9.6) + yard-junk (0.1.0) + yard-relative_markdown_links (0.6.0) + yard-timekeeper (0.2.4) + yard-yaml (0.2.3) + zeitwerk (2.8.2) + zlib (3.2.3) BUNDLED WITH 4.0.16 diff --git a/gems/ast-crispr-ruby-prism/Gemfile.lock b/gems/ast-crispr-ruby-prism/Gemfile.lock index 8fc4f253f..05552677b 100644 --- a/gems/ast-crispr-ruby-prism/Gemfile.lock +++ b/gems/ast-crispr-ruby-prism/Gemfile.lock @@ -128,8 +128,6 @@ GEM mutex_m (0.3.0) nokogiri (1.19.4-x86_64-linux-gnu) racc (~> 1.4) - nokogiri (1.19.4-x86_64-linux-musl) - racc (~> 1.4) nomono (1.0.8) openssl (4.0.2) ostruct (0.6.3) @@ -155,9 +153,6 @@ GEM racc (1.8.1) rainbow (3.1.1) rake (13.4.2) - rake-compiler-dock (1.12.0) - rb_sys (0.9.127) - rake-compiler-dock (= 1.12.0) rbs (4.0.3) logger prism (>= 1.6.0) @@ -317,14 +312,14 @@ GEM timecop (>= 0.7, < 1) token-resolver (2.0.4) parslet (~> 2.0) - version_gem (~> 1.1, >= 1.1.13) + version_gem (~> 1.1, >= 1.1.14) tree_haver (7.1.0) citrus (~> 3.0) parslet (~> 2.0) - tree_sitter_language_pack (>= 1.9.0.pre.rc.40, < 2.0) + tree_sitter_language_pack (>= 1.13.2, < 2.0) version_gem (~> 1.1, >= 1.1.9) -tree_sitter_language_pack (1.13.3-x86_64-linux) - sorbet-runtime (~> 0.5) + tree_sitter_language_pack (1.13.3-x86_64-linux) + sorbet-runtime (~> 0.5) tsort (0.2.0) turbo_tests2 (3.2.0) parallel_tests (>= 3.3.0, < 6) @@ -361,7 +356,6 @@ tree_sitter_language_pack (1.13.3-x86_64-linux) PLATFORMS x86_64-linux-gnu - x86_64-linux-musl DEPENDENCIES addressable (>= 2.8, < 3) @@ -452,7 +446,6 @@ CHECKSUMS logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-x86_64-linux-gnu) sha256=379fae440b28915e3f19d752ce2dcf8465ed2b2fbefd2a7ca0dd497bc981a06a - nokogiri (1.19.4-x86_64-linux-musl) sha256=17dfb7c1fa194ae02fbf7c51a7afc8d278045ab3fdacfd86f91d02d7b274470b nomono (1.0.8) sha256=bf4b9b426cbf216ab17b70db474f691b8ae1f1e29de8db4b0ecd405e6e7e1c80 openssl (4.0.2) sha256=1037ad2868ae58df9ad917891c0c0f9815a1172f6846d4bcdd508e4c2ee747c2 ostruct (0.6.3) sha256=95a2ed4a4bd1d190784e666b47b2d3f078e4a9efda2fccf18f84ddc6538ed912 @@ -469,8 +462,6 @@ CHECKSUMS racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 - rake-compiler-dock (1.12.0) sha256=f13205c2738f3d2053afcd03491a9e4541b22a59a0bfc53fc8bc883bd8188023 - rb_sys (0.9.127) sha256=e9f90df3bb0577472d26d96127d5b5774b98f44de881e7d36aeefd28d6337847 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 @@ -526,22 +517,21 @@ CHECKSUMS timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.4) sha256=33b926958f504525bba3ed511ab66fbcbf8ef30390815e931436b30f27ffcad0 tree_haver (7.1.0) - tree_sitter_language_pack (1.13.2) - tree_sitter_language_pack (1.13.2-x86_64-linux) - tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f - turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 - unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 - unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f - version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 - yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 - yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 - yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 - yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd - yard-relative_markdown_links (0.6.0) sha256=3e5ffa85cbad9bac70bee5421774b190fb25d3bdf489323a5b3534f647d1a70e - yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a - yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 - zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 - zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 + tree_sitter_language_pack (1.13.3-x86_64-linux) + tsort (0.2.0) + turbo_tests2 (3.2.0) + unicode-display_width (3.2.0) + unicode-emoji (4.2.0) + version_gem (1.1.14) + yaml-converter (0.2.3) + yard (0.9.45) + yard-fence (0.9.6) + yard-junk (0.1.0) + yard-relative_markdown_links (0.6.0) + yard-timekeeper (0.2.4) + yard-yaml (0.2.3) + zeitwerk (2.8.2) + zlib (3.2.3) BUNDLED WITH 4.0.16 diff --git a/gems/ast-crispr/.kettle-drift.lock b/gems/ast-crispr/.kettle-drift.lock index 92caaa150..bf85fa76f 100644 --- a/gems/ast-crispr/.kettle-drift.lock +++ b/gems/ast-crispr/.kettle-drift.lock @@ -1,130 +1,10 @@ { - "(direct_sibling_local ||\nENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?)": [ - { - "file": "Gemfile", - "lines": [ - 79, - 119, - 159, - 199, - 239, - 279, - 319, - 359, - 399 - ] - } - ], - ".find { |spec| spec.name == 'nomono' }\nnomono_locked = nomono_locked_spec &&": [ - { - "file": "Gemfile", - "lines": [ - 90, - 130, - 170, - 210, - 250, - 290, - 330, - 370, - 410 - ] - } - ], - "ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?)\ndirect_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV')": [ - { - "file": "Gemfile", - "lines": [ - 80, - 120, - 160, - 200, - 240, - 280, - 320, - 360, - 400 - ] - } - ], - "Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version)\nnomono_activation_requirements = [\"= #{nomono_locked_spec.version}\"] if nomono_locked": [ - { - "file": "Gemfile", - "lines": [ - 92, - 132, - 172, - 212, - 252, - 292, - 332, - 372, - 412 - ] - } - ], - "Kernel.send(:gem, 'nomono', *nomono_activation_requirements)\nrequire 'nomono/bundler'": [ - { - "file": "Gemfile", - "lines": [ - 95, - 135, - 175, - 215, - 255, - 295, - 335, - 375, - 415 - ] - } - ], - "direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV')\ndirect_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil)": [ - { - "file": "Gemfile", - "lines": [ - 81, - 121, - 161, - 201, - 241, - 281, - 321, - 361, - 401 - ] - } - ], "eval_nomono_gems(\ngems: direct_sibling_gems,": [ { "file": "Gemfile", "lines": [ 59, - 99, - 139, - 179, - 219, - 259, - 299, - 339, - 379, - 419 - ] - } - ], - "gems: direct_sibling_gems,\nprefix: 'STRUCTUREDMERGE',": [ - { - "file": "Gemfile", - "lines": [ - 100, - 140, - 180, - 220, - 260, - 300, - 340, - 380, - 420 + 99 ] } ], @@ -133,31 +13,7 @@ "file": "Gemfile", "lines": [ 42, - 86, - 126, - 166, - 206, - 246, - 286, - 326, - 366, - 406 - ] - } - ], - "if direct_sibling_dev_was_set\nENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original": [ - { - "file": "Gemfile", - "lines": [ - 109, - 149, - 189, - 229, - 269, - 309, - 349, - 389, - 429 + 86 ] } ], @@ -166,15 +22,7 @@ "file": "Gemfile", "lines": [ 34, - 78, - 118, - 158, - 198, - 238, - 278, - 318, - 358, - 398 + 78 ] } ], @@ -183,31 +31,7 @@ "file": "Gemfile", "lines": [ 68, - 108, - 148, - 188, - 228, - 268, - 308, - 348, - 388, - 428 - ] - } - ], - "nomono_activation_requirements = nomono_requirements\nnomono_lockfile = File.expand_path('Gemfile.lock', __dir__)": [ - { - "file": "Gemfile", - "lines": [ - 84, - 124, - 164, - 204, - 244, - 284, - 324, - 364, - 404 + 108 ] } ], @@ -216,15 +40,7 @@ "file": "Gemfile", "lines": [ 47, - 91, - 131, - 171, - 211, - 251, - 291, - 331, - 371, - 411 + 91 ] } ], @@ -233,104 +49,7 @@ "file": "Gemfile", "lines": [ 43, - 87, - 127, - 167, - 207, - 247, - 287, - 327, - 367, - 407 - ] - } - ], - "nomono_lockfile = File.expand_path('Gemfile.lock', __dir__)\nif File.file?(nomono_lockfile)": [ - { - "file": "Gemfile", - "lines": [ - 85, - 125, - 165, - 205, - 245, - 285, - 325, - 365, - 405 - ] - } - ], - "path_env: 'STRUCTUREDMERGE_DEV',\nroot: %w[src my structuredmerge]": [ - { - "file": "Gemfile", - "lines": [ - 102, - 142, - 182, - 222, - 262, - 302, - 342, - 382, - 422 - ] - } - ], - "prefix: 'STRUCTUREDMERGE',\npath_env: 'STRUCTUREDMERGE_DEV',": [ - { - "file": "Gemfile", - "lines": [ - 101, - 141, - 181, - 221, - 261, - 301, - 341, - 381, - 421 - ] - } - ], - "require 'nomono/bundler'\nENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local": [ - { - "file": "Gemfile", - "lines": [ - 96, - 136, - 176, - 216, - 256, - 296, - 336, - 376, - 416 - ] - } - ], - "rescue LoadError\nwarn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.'": [ - { - "file": "Gemfile", - "lines": [ - 105, - 145, - 185, - 225, - 265, - 305, - 345, - 385, - 425 - ] - } - ], - "vendored_gems_env: 'VENDORED_GEMS',\nvendor_gem_dir_env: 'VENDOR_GEM_DIR',": [ - { - "file": "gemfiles/modular/templating_local.gemfile", - "lines": [ - 58, - 69 + 87 ] } ] diff --git a/gems/ast-crispr/.rubocop_gradual.lock b/gems/ast-crispr/.rubocop_gradual.lock index b7f1e6531..485eae62b 100644 --- a/gems/ast-crispr/.rubocop_gradual.lock +++ b/gems/ast-crispr/.rubocop_gradual.lock @@ -21,13 +21,20 @@ [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] ], + "gemfiles/modular/cgi/r4/v0.5.gemfile:367169322": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/cgi/vHEAD.gemfile:2729540777": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], "gemfiles/modular/erb/r2/v3.0.gemfile:1688285565": [ [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] ], - "gemfiles/modular/erb/r3/v5.0.gemfile:2150258305": [ + "gemfiles/modular/erb/r3/v5.0.gemfile:2394062339": [ [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] ], - "gemfiles/modular/erb/r4/v5.0.gemfile:2150258305": [ + "gemfiles/modular/erb/r4/v5.0.gemfile:2394062339": [ [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] ], "gemfiles/modular/erb/vHEAD.gemfile:981929959": [ @@ -63,6 +70,13 @@ [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] ], + "gemfiles/modular/webrick/r4/v1.9.gemfile:3092661193": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/webrick/vHEAD.gemfile:3867684682": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], "gemfiles/modular/x_std_libs.gemfile:2324400122": [ [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] ], @@ -72,17 +86,17 @@ "gemfiles/modular/x_std_libs/r3/libs.gemfile:4030570297": [ [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] ], - "gemfiles/modular/x_std_libs/r4/libs.gemfile:909736663": [ + "gemfiles/modular/x_std_libs/r4/libs.gemfile:732451732": [ [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] ], - "gemfiles/modular/x_std_libs/vHEAD.gemfile:907917303": [ + "gemfiles/modular/x_std_libs/vHEAD.gemfile:2390363993": [ [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] ], "lib/ast-crispr.rb:247837913": [ [1, 1, 0, "Naming/FileName: The name of this source file (`ast-crispr.rb`) should use snake_case.", 5381] ], - "lib/ast/crispr.rb:1596713986": [ + "lib/ast/crispr.rb:2551127366": [ [12, 5, 11, "Style/Documentation: Missing top-level documentation comment for `class Ast::Crispr::Error`.", 62528179], [22, 5, 11, "Style/Documentation: Missing top-level documentation comment for `class Ast::Crispr::Limit`.", 51888158], [47, 7, 622, "Metrics/MethodLength: Method has too many lines. [14/10]", 2816807495], @@ -110,76 +124,79 @@ [512, 21, 211, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [9/5]", 1155506365], [552, 7, 585, "Metrics/MethodLength: Method has too many lines. [13/10]", 13786997], [569, 5, 22, "Style/Documentation: Missing top-level documentation comment for `class Ast::Crispr::OperationProfile`.", 1974079861], - [597, 21, 188, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [8/5]", 2526147676], - [652, 7, 478, "Metrics/MethodLength: Method has too many lines. [11/10]", 795235914], - [678, 7, 10, "Style/Documentation: Missing top-level documentation comment for `class Ast::Crispr::Adapters::Null`.", 3515430288], - [711, 5, 21, "Style/Documentation: Missing top-level documentation comment for `class Ast::Crispr::DocumentContext`.", 594998459], - [771, 5, 19, "Style/Documentation: Missing top-level documentation comment for `class Ast::Crispr::OwnerSelector`.", 3092459999], - [774, 21, 81, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [7/5]", 2293822273], - [836, 7, 606, "Metrics/MethodLength: Method has too many lines. [16/10]", 422136278], - [866, 5, 16, "Style/Documentation: Missing top-level documentation comment for `module Ast::Crispr::Selectors`.", 2133324825], - [866, 5, 5586, "Metrics/ModuleLength: Module has too many lines. [130/100]", 3440946513], - [869, 7, 1642, "Metrics/AbcSize: Assignment Branch Condition size for `owner_filter` is too high. [<6, 18, 11> 21.93/17]", 3224577904], - [869, 7, 1642, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `owner_filter` is too high. [10/7]", 3224577904], - [869, 7, 1642, "Metrics/MethodLength: Method has too many lines. [37/10]", 3224577904], - [869, 7, 1642, "Metrics/PerceivedComplexity: Perceived complexity for `owner_filter` is too high. [11/8]", 3224577904], - [869, 23, 135, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 3231562627], - [913, 7, 1936, "Metrics/AbcSize: Assignment Branch Condition size for `comment_region_owned_owner` is too high. [<7, 16, 7> 18.81/17]", 2629441148], - [913, 7, 1936, "Metrics/MethodLength: Method has too many lines. [40/10]", 2629441148], - [913, 37, 190, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [9/5]", 4159525724], - [914, 121, 9, "Layout/LineLength: Line is too long. [129/120]", 940069302], - [958, 7, 1731, "Metrics/AbcSize: Assignment Branch Condition size for `line_block` is too high. [<12, 22, 14> 28.71/17]", 1307990669], - [958, 7, 1731, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `line_block` is too high. [12/7]", 1307990669], - [958, 7, 1731, "Metrics/MethodLength: Method has too many lines. [38/10]", 1307990669], - [958, 7, 1731, "Metrics/PerceivedComplexity: Perceived complexity for `line_block` is too high. [12/8]", 1307990669], - [958, 21, 130, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [7/5]", 515174999], - [1010, 5, 23, "Style/Documentation: Missing top-level documentation comment for `module Ast::Crispr::OperationSupport`.", 343849029], - [1010, 5, 8952, "Metrics/ModuleLength: Module has too many lines. [199/100]", 1847775109], - [1046, 7, 983, "Metrics/MethodLength: Method has too many lines. [23/10]", 152504950], - [1128, 7, 1758, "Metrics/AbcSize: Assignment Branch Condition size for `insertion_from` is too high. [<5, 21, 11> 24.23/17]", 29011294], - [1128, 7, 1758, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `insertion_from` is too high. [9/7]", 29011294], - [1128, 7, 1758, "Metrics/MethodLength: Method has too many lines. [28/10]", 29011294], - [1128, 7, 1758, "Metrics/PerceivedComplexity: Perceived complexity for `insertion_from` is too high. [10/8]", 29011294], - [1171, 7, 827, "Metrics/AbcSize: Assignment Branch Condition size for `splice_after_anchor` is too high. [<4, 19, 2> 19.52/17]", 14691010], - [1171, 7, 827, "Metrics/MethodLength: Method has too many lines. [16/10]", 14691010], - [1175, 9, 72, "Style/RaiseArgs: Provide an exception class and message as arguments to `raise`.", 789091243], - [1177, 23, 72, "Style/StringConcatenation: Prefer string interpolation to string concatenation.", 2503424841], - [1209, 9, 25, "Style/StringConcatenation: Prefer string interpolation to string concatenation.", 768340433], - [1253, 5, 26, "Style/Documentation: Missing top-level documentation comment for `module Ast::Crispr::OperationProfilable`.", 4114431854], - [1262, 7, 19, "Style/Documentation: Missing top-level documentation comment for `module Ast::Crispr::OperationProfilable::ClassMethods`.", 3606528253], - [1274, 5, 18, "Style/Documentation: Missing top-level documentation comment for `class Ast::Crispr::MergeReplace`.", 395761599], - [1302, 7, 789, "Metrics/AbcSize: Assignment Branch Condition size for `call` is too high. [<11, 35, 3> 36.81/17]", 793163309], - [1302, 7, 789, "Metrics/MethodLength: Method has too many lines. [20/10]", 793163309], - [1327, 5, 13, "Style/Documentation: Missing top-level documentation comment for `class Ast::Crispr::Replace`.", 1563590855], - [1352, 7, 643, "Metrics/AbcSize: Assignment Branch Condition size for `call` is too high. [<10, 32, 3> 33.66/17]", 3656683885], - [1352, 7, 643, "Metrics/MethodLength: Method has too many lines. [14/10]", 3656683885], - [1371, 5, 12, "Style/Documentation: Missing top-level documentation comment for `class Ast::Crispr::Delete`.", 2011475922], - [1395, 7, 538, "Metrics/AbcSize: Assignment Branch Condition size for `call` is too high. [<7, 21, 1> 22.16/17]", 2655200768], - [1395, 7, 538, "Metrics/MethodLength: Method has too many lines. [13/10]", 2655200768], - [1413, 5, 12, "Style/Documentation: Missing top-level documentation comment for `class Ast::Crispr::Insert`.", 1590185308], - [1447, 5, 10, "Style/Documentation: Missing top-level documentation comment for `class Ast::Crispr::Move`.", 3515667002], - [1475, 7, 1182, "Metrics/AbcSize: Assignment Branch Condition size for `call` is too high. [<14, 40, 7> 42.95/17]", 172197360], - [1475, 7, 1182, "Metrics/MethodLength: Method has too many lines. [22/10]", 172197360], - [1492, 121, 15, "Layout/LineLength: Line is too long. [135/120]", 2688172402], - [1505, 3, 13, "Style/Documentation: Missing top-level documentation comment for `module Ast::Crispr`.", 315644438], - [1505, 3, 10812, "Metrics/ModuleLength: Module has too many lines. [180/100]", 1841926844], - [1506, 5, 33, "Style/Documentation: Missing top-level documentation comment for `module Ast::Crispr::ProfileReportCompatibility`.", 3039519892], - [1528, 5, 18, "Style/Documentation: Missing top-level documentation comment for `class Ast::Crispr::MatchProfile`.", 365273299], - [1541, 5, 22, "Style/Documentation: Missing top-level documentation comment for `class Ast::Crispr::SelectionProfile`.", 2464089216], - [1563, 7, 1286, "Metrics/AbcSize: Assignment Branch Condition size for `report` is too high. [<5, 29, 13> 32.17/17]", 1720478959], - [1563, 7, 1286, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `report` is too high. [11/7]", 1720478959], - [1563, 7, 1286, "Metrics/MethodLength: Method has too many lines. [17/10]", 1720478959], - [1563, 7, 1286, "Metrics/PerceivedComplexity: Perceived complexity for `report` is too high. [11/8]", 1720478959], - [1578, 121, 37, "Layout/LineLength: Line is too long. [157/120]", 1470192175], - [1584, 5, 24, "Style/Documentation: Missing top-level documentation comment for `class Ast::Crispr::DestinationProfile`.", 3442102524], - [1599, 5, 22, "Style/Documentation: Missing top-level documentation comment for `class Ast::Crispr::OperationProfile`.", 1974079861], - [1602, 7, 733, "Metrics/MethodLength: Method has too many lines. [13/10]", 2619513218], - [1619, 5, 22, "Style/Documentation: Missing top-level documentation comment for `class Ast::Crispr::StructureProfile`.", 614380405], - [1627, 5, 6309, "Metrics/ClassLength: Class has too many lines. [172/100]", 1270437788], - [1632, 7, 2717, "Metrics/MethodLength: Method has too many lines. [67/10]", 1469599129], - [1697, 121, 19, "Layout/LineLength: Line is too long. [139/120]", 259030389], - [1710, 28, 247, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 3385598543], - [1742, 28, 242, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 1038219895] + [601, 21, 188, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [8/5]", 2526147676], + [656, 7, 478, "Metrics/MethodLength: Method has too many lines. [11/10]", 795235914], + [682, 7, 10, "Style/Documentation: Missing top-level documentation comment for `class Ast::Crispr::Adapters::Null`.", 3515430288], + [715, 5, 21, "Style/Documentation: Missing top-level documentation comment for `class Ast::Crispr::DocumentContext`.", 594998459], + [775, 5, 19, "Style/Documentation: Missing top-level documentation comment for `class Ast::Crispr::OwnerSelector`.", 3092459999], + [778, 21, 81, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [7/5]", 2293822273], + [840, 7, 606, "Metrics/MethodLength: Method has too many lines. [16/10]", 422136278], + [870, 5, 16, "Style/Documentation: Missing top-level documentation comment for `module Ast::Crispr::Selectors`.", 2133324825], + [870, 5, 5586, "Metrics/ModuleLength: Module has too many lines. [130/100]", 3440946513], + [873, 7, 1642, "Metrics/AbcSize: Assignment Branch Condition size for `owner_filter` is too high. [<6, 18, 11> 21.93/17]", 3224577904], + [873, 7, 1642, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `owner_filter` is too high. [10/7]", 3224577904], + [873, 7, 1642, "Metrics/MethodLength: Method has too many lines. [37/10]", 3224577904], + [873, 7, 1642, "Metrics/PerceivedComplexity: Perceived complexity for `owner_filter` is too high. [11/8]", 3224577904], + [873, 23, 135, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 3231562627], + [917, 7, 1936, "Metrics/AbcSize: Assignment Branch Condition size for `comment_region_owned_owner` is too high. [<7, 16, 7> 18.81/17]", 2629441148], + [917, 7, 1936, "Metrics/MethodLength: Method has too many lines. [40/10]", 2629441148], + [917, 37, 190, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [9/5]", 4159525724], + [918, 121, 9, "Layout/LineLength: Line is too long. [129/120]", 940069302], + [962, 7, 1731, "Metrics/AbcSize: Assignment Branch Condition size for `line_block` is too high. [<12, 22, 14> 28.71/17]", 1307990669], + [962, 7, 1731, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `line_block` is too high. [12/7]", 1307990669], + [962, 7, 1731, "Metrics/MethodLength: Method has too many lines. [38/10]", 1307990669], + [962, 7, 1731, "Metrics/PerceivedComplexity: Perceived complexity for `line_block` is too high. [12/8]", 1307990669], + [962, 21, 130, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [7/5]", 515174999], + [1014, 5, 23, "Style/Documentation: Missing top-level documentation comment for `module Ast::Crispr::OperationSupport`.", 343849029], + [1014, 5, 9160, "Metrics/ModuleLength: Module has too many lines. [203/100]", 4118890580], + [1055, 7, 983, "Metrics/MethodLength: Method has too many lines. [23/10]", 152504950], + [1137, 7, 1758, "Metrics/AbcSize: Assignment Branch Condition size for `insertion_from` is too high. [<5, 21, 11> 24.23/17]", 29011294], + [1137, 7, 1758, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `insertion_from` is too high. [9/7]", 29011294], + [1137, 7, 1758, "Metrics/MethodLength: Method has too many lines. [28/10]", 29011294], + [1137, 7, 1758, "Metrics/PerceivedComplexity: Perceived complexity for `insertion_from` is too high. [10/8]", 29011294], + [1180, 7, 827, "Metrics/AbcSize: Assignment Branch Condition size for `splice_after_anchor` is too high. [<4, 19, 2> 19.52/17]", 14691010], + [1180, 7, 827, "Metrics/MethodLength: Method has too many lines. [16/10]", 14691010], + [1184, 9, 72, "Style/RaiseArgs: Provide an exception class and message as arguments to `raise`.", 789091243], + [1186, 23, 72, "Style/StringConcatenation: Prefer string interpolation to string concatenation.", 2503424841], + [1218, 9, 25, "Style/StringConcatenation: Prefer string interpolation to string concatenation.", 768340433], + [1262, 5, 26, "Style/Documentation: Missing top-level documentation comment for `module Ast::Crispr::OperationProfilable`.", 4114431854], + [1271, 7, 19, "Style/Documentation: Missing top-level documentation comment for `module Ast::Crispr::OperationProfilable::ClassMethods`.", 3606528253], + [1283, 5, 18, "Style/Documentation: Missing top-level documentation comment for `class Ast::Crispr::MergeReplace`.", 395761599], + [1311, 7, 789, "Metrics/AbcSize: Assignment Branch Condition size for `call` is too high. [<11, 35, 3> 36.81/17]", 793163309], + [1311, 7, 789, "Metrics/MethodLength: Method has too many lines. [20/10]", 793163309], + [1336, 5, 13, "Style/Documentation: Missing top-level documentation comment for `class Ast::Crispr::Replace`.", 1563590855], + [1361, 7, 643, "Metrics/AbcSize: Assignment Branch Condition size for `call` is too high. [<10, 32, 3> 33.66/17]", 3656683885], + [1361, 7, 643, "Metrics/MethodLength: Method has too many lines. [14/10]", 3656683885], + [1380, 5, 12, "Style/Documentation: Missing top-level documentation comment for `class Ast::Crispr::Delete`.", 2011475922], + [1404, 7, 538, "Metrics/AbcSize: Assignment Branch Condition size for `call` is too high. [<7, 21, 1> 22.16/17]", 2655200768], + [1404, 7, 538, "Metrics/MethodLength: Method has too many lines. [13/10]", 2655200768], + [1422, 5, 17, "Style/Documentation: Missing top-level documentation comment for `class Ast::Crispr::DeleteBatch`.", 727028494], + [1446, 7, 866, "Metrics/AbcSize: Assignment Branch Condition size for `call` is too high. [<14, 35, 5> 38.03/17]", 19628260], + [1446, 7, 866, "Metrics/MethodLength: Method has too many lines. [20/10]", 19628260], + [1472, 5, 12, "Style/Documentation: Missing top-level documentation comment for `class Ast::Crispr::Insert`.", 1590185308], + [1506, 5, 10, "Style/Documentation: Missing top-level documentation comment for `class Ast::Crispr::Move`.", 3515667002], + [1534, 7, 1182, "Metrics/AbcSize: Assignment Branch Condition size for `call` is too high. [<14, 40, 7> 42.95/17]", 172197360], + [1534, 7, 1182, "Metrics/MethodLength: Method has too many lines. [22/10]", 172197360], + [1551, 121, 15, "Layout/LineLength: Line is too long. [135/120]", 2688172402], + [1564, 3, 13, "Style/Documentation: Missing top-level documentation comment for `module Ast::Crispr`.", 315644438], + [1564, 3, 10812, "Metrics/ModuleLength: Module has too many lines. [180/100]", 1841926844], + [1565, 5, 33, "Style/Documentation: Missing top-level documentation comment for `module Ast::Crispr::ProfileReportCompatibility`.", 3039519892], + [1587, 5, 18, "Style/Documentation: Missing top-level documentation comment for `class Ast::Crispr::MatchProfile`.", 365273299], + [1600, 5, 22, "Style/Documentation: Missing top-level documentation comment for `class Ast::Crispr::SelectionProfile`.", 2464089216], + [1622, 7, 1286, "Metrics/AbcSize: Assignment Branch Condition size for `report` is too high. [<5, 29, 13> 32.17/17]", 1720478959], + [1622, 7, 1286, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `report` is too high. [11/7]", 1720478959], + [1622, 7, 1286, "Metrics/MethodLength: Method has too many lines. [17/10]", 1720478959], + [1622, 7, 1286, "Metrics/PerceivedComplexity: Perceived complexity for `report` is too high. [11/8]", 1720478959], + [1637, 121, 37, "Layout/LineLength: Line is too long. [157/120]", 1470192175], + [1643, 5, 24, "Style/Documentation: Missing top-level documentation comment for `class Ast::Crispr::DestinationProfile`.", 3442102524], + [1658, 5, 22, "Style/Documentation: Missing top-level documentation comment for `class Ast::Crispr::OperationProfile`.", 1974079861], + [1661, 7, 733, "Metrics/MethodLength: Method has too many lines. [13/10]", 2619513218], + [1678, 5, 22, "Style/Documentation: Missing top-level documentation comment for `class Ast::Crispr::StructureProfile`.", 614380405], + [1686, 5, 6309, "Metrics/ClassLength: Class has too many lines. [172/100]", 1270437788], + [1691, 7, 2717, "Metrics/MethodLength: Method has too many lines. [67/10]", 1469599129], + [1756, 121, 19, "Layout/LineLength: Line is too long. [139/120]", 259030389], + [1769, 28, 247, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 3385598543], + [1801, 28, 242, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 1038219895] ], "lib/ast/crispr/rspec/shared_examples/destination_profile.rb:2529475135": [ [3, 1, 2386, "Metrics/BlockLength: Block has too many lines. [28/25]", 2846758965], @@ -191,20 +208,20 @@ "lib/ast/crispr/rspec/shared_examples/operation_profile.rb:3583567850": [ [3, 1, 2148, "Metrics/BlockLength: Block has too many lines. [26/25]", 2745151209] ], - "spec/old_runtime_spec.rb:260031317": [ - [5, 1, 20252, "Metrics/BlockLength: Block has too many lines. [437/25]", 938123867], + "spec/old_runtime_spec.rb:682575016": [ + [5, 1, 22396, "Metrics/BlockLength: Block has too many lines. [485/25]", 3050657641], [6, 3, 69, "Lint/ConstantDefinitionInBlock: Do not define constants this way within a block.", 3712453399], [7, 3, 68, "Lint/ConstantDefinitionInBlock: Do not define constants this way within a block.", 1429320782], [8, 3, 59, "Lint/ConstantDefinitionInBlock: Do not define constants this way within a block.", 253007150], - [10, 3, 891, "Lint/ConstantDefinitionInBlock: Do not define constants this way within a block.", 361389624], - [20, 37, 11, "Lint/UnusedMethodArgument: Unused method argument - `owner_scope`.", 3846606321], - [24, 46, 6, "Lint/UnusedMethodArgument: Unused method argument - `region`.", 2124512157], - [24, 64, 11, "Lint/UnusedMethodArgument: Unused method argument - `owner_scope`.", 3846606321], - [83, 3, 8534, "Metrics/BlockLength: Block has too many lines. [176/25]", 3042299525], - [323, 3, 4558, "Metrics/BlockLength: Block has too many lines. [90/25]", 139893120], - [448, 3, 1417, "Metrics/BlockLength: Block has too many lines. [28/25]", 1907697465], - [449, 5, 1365, "Metrics/BlockLength: Block has too many lines. [26/25]", 3735259564], - [481, 3, 1663, "Metrics/BlockLength: Block has too many lines. [41/25]", 115074475] + [10, 3, 965, "Lint/ConstantDefinitionInBlock: Do not define constants this way within a block.", 315542089], + [24, 37, 11, "Lint/UnusedMethodArgument: Unused method argument - `owner_scope`.", 3846606321], + [28, 46, 6, "Lint/UnusedMethodArgument: Unused method argument - `region`.", 2124512157], + [28, 64, 11, "Lint/UnusedMethodArgument: Unused method argument - `owner_scope`.", 3846606321], + [87, 3, 8534, "Metrics/BlockLength: Block has too many lines. [176/25]", 3042299525], + [327, 3, 5459, "Metrics/BlockLength: Block has too many lines. [108/25]", 2383759627], + [507, 3, 1417, "Metrics/BlockLength: Block has too many lines. [28/25]", 1907697465], + [508, 5, 1365, "Metrics/BlockLength: Block has too many lines. [26/25]", 3735259564], + [540, 3, 1663, "Metrics/BlockLength: Block has too many lines. [41/25]", 115074475] ], "spec/provider_architecture_spec.rb:3233381474": [ [3, 1, 1743, "Metrics/BlockLength: Block has too many lines. [28/25]", 896214455] diff --git a/gems/ast-crispr/.structuredmerge/kettle-jem.yml b/gems/ast-crispr/.structuredmerge/kettle-jem.yml index e8a8182a8..a9ac7a16e 100644 --- a/gems/ast-crispr/.structuredmerge/kettle-jem.yml +++ b/gems/ast-crispr/.structuredmerge/kettle-jem.yml @@ -246,6 +246,59 @@ templates: - Gemfile - certs/pboling.pem - tmp/.gitignore + - gemfiles/modular/benchmark/r4/v0.5.gemfile + - gemfiles/modular/benchmark/vHEAD.gemfile + - gemfiles/modular/cgi/r4/v0.5.gemfile + - gemfiles/modular/cgi/vHEAD.gemfile + - gemfiles/modular/coverage.gemfile + - gemfiles/modular/coverage_local.gemfile + - gemfiles/modular/debug.gemfile + - gemfiles/modular/documentation.gemfile + - gemfiles/modular/documentation_local.gemfile + - gemfiles/modular/erb/r2.3/default.gemfile + - gemfiles/modular/erb/r2.6/v2.2.gemfile + - gemfiles/modular/erb/r2/v3.0.gemfile + - gemfiles/modular/erb/r3.1/v4.0.gemfile + - gemfiles/modular/erb/r3/v5.0.gemfile + - gemfiles/modular/erb/r4/v5.0.gemfile + - gemfiles/modular/erb/vHEAD.gemfile + - gemfiles/modular/json/truffleruby_22_3.gemfile + - gemfiles/modular/json/truffleruby_23_0.gemfile + - gemfiles/modular/json/truffleruby_23_1.gemfile + - gemfiles/modular/mutex_m/r2.4/v0.1.gemfile + - gemfiles/modular/mutex_m/r2/v0.3.gemfile + - gemfiles/modular/mutex_m/r3/v0.3.gemfile + - gemfiles/modular/mutex_m/r4/v0.3.gemfile + - gemfiles/modular/mutex_m/vHEAD.gemfile + - gemfiles/modular/optional.gemfile + - gemfiles/modular/recording/r2.3/recording.gemfile + - gemfiles/modular/recording/r2.4/recording.gemfile + - gemfiles/modular/recording/r2.5/recording.gemfile + - gemfiles/modular/recording/r3/recording.gemfile + - gemfiles/modular/recording/r4/recording.gemfile + - gemfiles/modular/recording/vHEAD.gemfile + - gemfiles/modular/rspec.gemfile + - gemfiles/modular/runtime_heads.gemfile + - gemfiles/modular/stringio/r2.4/v0.0.2.gemfile + - gemfiles/modular/stringio/r2/v3.0.gemfile + - gemfiles/modular/stringio/r3/v3.0.gemfile + - gemfiles/modular/stringio/r4/v3.0.gemfile + - gemfiles/modular/stringio/vHEAD.gemfile + - gemfiles/modular/style.gemfile + - gemfiles/modular/style_local.gemfile + - gemfiles/modular/templating.gemfile + - gemfiles/modular/templating_local.gemfile + - gemfiles/modular/webrick/r4/v1.9.gemfile + - gemfiles/modular/webrick/vHEAD.gemfile + - gemfiles/modular/x_std_libs.gemfile + - gemfiles/modular/x_std_libs/r2.3/libs.gemfile + - gemfiles/modular/x_std_libs/r2.4/libs.gemfile + - gemfiles/modular/x_std_libs/r2.6/libs.gemfile + - gemfiles/modular/x_std_libs/r2/libs.gemfile + - gemfiles/modular/x_std_libs/r3.1/libs.gemfile + - gemfiles/modular/x_std_libs/r3/libs.gemfile + - gemfiles/modular/x_std_libs/r4/libs.gemfile + - gemfiles/modular/x_std_libs/vHEAD.gemfile - source: lib/gem/version.rb target: lib/ast/crispr/version.rb - source: sig/gem.rbs diff --git a/gems/ast-crispr/Gemfile b/gems/ast-crispr/Gemfile index d532cca46..8ef5bfaca 100644 --- a/gems/ast-crispr/Gemfile +++ b/gems/ast-crispr/Gemfile @@ -71,6 +71,46 @@ if direct_sibling_gems.any? && end end +if direct_sibling_gems.any? && + (direct_sibling_local || + ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) + direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') + direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) + begin + nomono_activation_requirements = nomono_requirements + nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) + if File.file?(nomono_lockfile) + nomono_locked_spec = Bundler::LockfileParser + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } + nomono_locked = nomono_locked_spec && + Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked + end + Kernel.send(:gem, 'nomono', *nomono_activation_requirements) + require 'nomono/bundler' + ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local + + eval_nomono_gems( + gems: direct_sibling_gems, + prefix: 'STRUCTUREDMERGE', + path_env: 'STRUCTUREDMERGE_DEV', + root: %w[src my structuredmerge] + ) + rescue LoadError + warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' + ensure + if direct_sibling_templating && !direct_sibling_local + if direct_sibling_dev_was_set + ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original + else + ENV.delete('STRUCTUREDMERGE_DEV') + end + end + end +end + # Use released TSLP with the Ruby ABI platform-gem fix. gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' diff --git a/gems/ast-crispr/Gemfile.lock b/gems/ast-crispr/Gemfile.lock index c831881ea..2284f1a91 100644 --- a/gems/ast-crispr/Gemfile.lock +++ b/gems/ast-crispr/Gemfile.lock @@ -6,6 +6,15 @@ PATH service_actor (~> 3.9) version_gem (~> 1.1, >= 1.1.9) +PATH + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/ast-merge + specs: + ast-merge (7.1.0) + benchmark + token-resolver (~> 2.0, >= 2.0.4) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + GEM remote: https://gem.coop/ specs: @@ -16,18 +25,18 @@ GEM bundler (>= 1.17.3) rake (>= 10) thor (>= 0.14) + appraisal2-rubocop (1.0.0) + appraisal2 (>= 3.1.4) + rubocop (>= 1.0) + version_gem (~> 1.1, >= 1.1.14) ast (2.4.3) - ast-merge (7.1.0) - benchmark - token-resolver (~> 2.0, >= 2.0.4) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) backports (3.25.3) benchmark (0.5.0) bigdecimal (4.1.2) bundler-audit (0.9.3) bundler (>= 1.2.0) thor (~> 1.0) + cgi (0.5.2) citrus (3.0.2) cmdparse (3.0.7) concurrent-ruby (1.3.8) @@ -38,7 +47,6 @@ GEM delegate (0.6.1) diff-lcs (1.6.2) diffy (3.4.4) - docile (1.4.1) dry-configurable (1.4.0) dry-core (~> 1.0) zeitwerk (~> 2.6) @@ -69,7 +77,7 @@ GEM dry-logic (~> 1.4) zeitwerk (~> 2.6) emoji_regex (15.0.0) - erb (6.0.5) + erb (6.0.6) gem_bench (2.0.5) bundler (>= 1.14) version_gem (~> 1.1, >= 1.1.4) @@ -88,22 +96,20 @@ GEM rdoc (>= 4.0.0) reline (>= 0.4.2) json (2.21.1) - kettle-dev (2.3.7) + kettle-dev (2.3.8) emoji_regex (>= 15.0) kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) - kettle-rb (0.1.4) - kettle-soup-cover (1.1.3) - simplecov (~> 0.22) - simplecov-cobertura (~> 3.0) - simplecov-console (~> 0.9, >= 0.9.3) - simplecov-html (~> 0.13, >= 0.13.1) - simplecov-lcov (~> 0.8) + kettle-rb (0.1.5) + kettle-soup-cover (3.0.4) + kettle-wash (~> 0.1, >= 0.1.0) + simplecov (>= 1.0) + simplecov-cobertura (>= 4.0) + simplecov-console (~> 0.9, >= 0.9.5) simplecov-rcov (~> 0.3, >= 0.3.7) - simplecov_json_formatter (~> 0.1, >= 0.1.4) - version_gem (~> 1.1, >= 1.1.9) - kettle-test (2.0.11) + simplecov_lcov_formatter (~> 0.9, >= 0.9.0) + kettle-test (2.0.12) appraisal2 (~> 3.0, >= 3.0.6) backports (~> 3.0) rspec (~> 3.0) @@ -114,6 +120,8 @@ GEM silent_stream (~> 1.0, >= 1.0.12) timecop-rspec (~> 1.0, >= 1.0.3) turbo_tests2 (~> 3.1, >= 3.1.12) + kettle-wash (0.1.1) + version_gem (~> 1.1, >= 1.1.14) kramdown (2.5.2) rexml (>= 3.4.4) kramdown-parser-gfm (1.1.0) @@ -122,19 +130,9 @@ GEM lint_roller (1.1.0) logger (1.7.0) mutex_m (0.3.0) - nokogiri (1.19.4-aarch64-linux-gnu) - racc (~> 1.4) - nokogiri (1.19.4-aarch64-linux-musl) - racc (~> 1.4) - nokogiri (1.19.4-arm64-darwin) - racc (~> 1.4) - nokogiri (1.19.4-x86_64-darwin) - racc (~> 1.4) nokogiri (1.19.4-x86_64-linux-gnu) racc (~> 1.4) - nokogiri (1.19.4-x86_64-linux-musl) - racc (~> 1.4) - nomono (1.0.8) + nomono (1.0.9) openssl (4.0.2) ostruct (0.6.3) parallel (1.28.0) @@ -155,9 +153,6 @@ GEM racc (1.8.1) rainbow (3.1.1) rake (13.4.2) - rake-compiler-dock (1.12.0) - rb_sys (0.9.127) - rake-compiler-dock (= 1.12.0) rbs (4.0.3) logger prism (>= 1.6.0) @@ -213,6 +208,14 @@ GEM rubocop-ast (1.50.0) parser (>= 3.3.7.2) prism (~> 1.7) + rubocop-capybara (2.23.0) + lint_roller (~> 1.1) + rubocop (~> 1.81) + rubocop-env (0.1.0) + rubocop + rubocop-factory_bot (2.28.0) + lint_roller (~> 1.1) + rubocop (~> 1.72, >= 1.72.1) rubocop-gradual (0.4.0) benchmark diff-lcs (>= 1.2.0, < 2.0) @@ -220,13 +223,26 @@ GEM parallel (~> 1.10) rainbow (>= 2.2.2, < 4.0) rubocop (~> 1.0) - rubocop-lts (24.1.0) - rubocop-ruby3_2 (>= 3.0.0, < 4) - standard-rubocop-lts (>= 2.0.2, < 3) - version_gem (>= 1.1.2, < 3) + rubocop-lts (24.2.2) + rubocop-ruby3_2 (~> 3.0, >= 3.0.1) + standard-rubocop-lts (~> 2.0, >= 2.0.3) + version_gem (~> 1.1, >= 1.1.13) + rubocop-lts-rspec (1.0.5) + rubocop (~> 1.84, >= 1.84.2) + rubocop-env (~> 0.1, >= 0.1.0) + rubocop-factory_bot (~> 2.28, >= 2.28.0) + rubocop-rspec (~> 3.9, >= 3.9.0) + rubocop-rspec-extra (~> 0.3, >= 0.3.0) + standard (~> 1.54, >= 1.54.0) + standard-rspec (~> 0.5, >= 0.5.0) + version_gem (~> 1.1, >= 1.1.13) rubocop-md (2.0.4) lint_roller (~> 1.1) rubocop (>= 1.72.1) + rubocop-minitest (0.40.0) + lint_roller (~> 1.1) + rubocop (>= 1.75.0, < 2.0) + rubocop-ast (>= 1.38.0, < 2.0) rubocop-on-rbs (2.0.0) lint_roller (~> 1.1) rbs (~> 4.0) @@ -246,6 +262,13 @@ GEM lint_roller (~> 1.1) regexp_parser (>= 2.0) rubocop (~> 1.86, >= 1.86.2) + rubocop-rspec-extra (0.3.0) + lint_roller (~> 1.1) + rubocop (>= 1.72.1, < 2.0) + rubocop-rspec_rails (2.32.0) + lint_roller (~> 1.1) + rubocop (~> 1.72, >= 1.72.1) + rubocop-rspec (~> 3.5) rubocop-ruby3_2 (3.0.7) rubocop-gradual (~> 0.3, >= 0.3.6) rubocop-md (~> 2.0, >= 2.0.4) @@ -265,23 +288,19 @@ GEM silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) - simplecov (0.22.0) - docile (~> 1.1) - simplecov-html (~> 0.11) - simplecov_json_formatter (~> 0.1) - simplecov-cobertura (3.2.0) + simplecov (1.0.2) + simplecov-cobertura (4.0.0) rexml - simplecov (~> 0.19) + simplecov (~> 1.0) simplecov-console (0.9.5) ansi simplecov terminal-table - simplecov-html (0.13.2) - simplecov-lcov (0.9.0) simplecov-rcov (0.3.7) simplecov (>= 0.4.1) - simplecov_json_formatter (0.1.4) - sorbet-runtime (0.6.13342) + simplecov_lcov_formatter (0.9.0) + simplecov (>= 0.18) + sorbet-runtime (0.6.13347) standard (1.56.0) language_server-protocol (~> 3.17.0.2) lint_roller (~> 1.0) @@ -294,6 +313,12 @@ GEM standard-performance (1.9.0) lint_roller (~> 1.1) rubocop-performance (~> 1.26.0) + standard-rspec (0.5.0) + lint_roller (>= 1.0) + rubocop-capybara (~> 2.23) + rubocop-factory_bot (~> 2.27) + rubocop-rspec (~> 3.9) + rubocop-rspec_rails (~> 2.31) standard-rubocop-lts (2.0.10) standard (~> 1.54, >= 1.54.0) standard-custom (~> 1.0, >= 1.0.2) @@ -311,16 +336,16 @@ GEM delegate (~> 0.1) rspec (~> 3.0) timecop (>= 0.7, < 1) - token-resolver (2.0.4) + token-resolver (2.0.5) parslet (~> 2.0) - version_gem (~> 1.1, >= 1.1.13) + version_gem (~> 1.1, >= 1.1.14) tree_haver (7.1.0) citrus (~> 3.0) parslet (~> 2.0) - tree_sitter_language_pack (>= 1.9.0.pre.rc.40, < 2.0) + tree_sitter_language_pack (>= 1.13.2, < 2.0) version_gem (~> 1.1, >= 1.1.9) -tree_sitter_language_pack (1.13.3-x86_64-linux) - sorbet-runtime (~> 0.5) + tree_sitter_language_pack (1.13.3-x86_64-linux) + sorbet-runtime (~> 0.5) tsort (0.2.0) turbo_tests2 (3.2.0) parallel_tests (>= 3.3.0, < 6) @@ -330,6 +355,7 @@ tree_sitter_language_pack (1.13.3-x86_64-linux) unicode-emoji (~> 4.1) unicode-emoji (4.2.0) version_gem (1.1.14) + webrick (1.9.2) yaml-converter (0.2.3) hexapdf (>= 1.8, < 2) kramdown (>= 2.4, < 3) @@ -356,59 +382,61 @@ tree_sitter_language_pack (1.13.3-x86_64-linux) zlib (3.2.3) PLATFORMS - aarch64-linux - aarch64-linux-gnu - aarch64-linux-musl - arm64-darwin - x86_64-darwin + x86_64-linux x86_64-linux-gnu - x86_64-linux-musl DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) + appraisal2-rubocop (~> 1.0, >= 1.0.0) ast-crispr! + ast-merge! benchmark (~> 0.5, >= 0.5.0) bundler-audit (~> 0.9.3) + cgi (~> 0.5) debug (>= 1.1) - erb (~> 6.0, >= 6.0.4) + erb (~> 6.0, >= 6.0.6) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.0) irb (~> 1.17) kettle-dev (~> 2.0, >= 2.2.25) - kettle-soup-cover (~> 1.0, >= 1.1.3) + kettle-soup-cover (~> 3.0, >= 3.0.3) kettle-test (~> 2.0, >= 2.0.9) - kramdown (~> 2.5, >= 2.5.1) + kramdown (~> 2.5, >= 2.5.2) kramdown-parser-gfm (~> 1.1) mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) rake (~> 13.0) rbs (>= 3.0) rdoc (~> 6.11) - reek (~> 6.5) + reek (~> 6.5, >= 6.5.0) require_bench (~> 1.0, >= 1.0.4) - rubocop-lts (~> 24.1.0) - rubocop-on-rbs (~> 2.0) + rubocop-gradual (~> 0.4, >= 0.4.0) + rubocop-lts (~> 24.2, >= 24.2.1) + rubocop-lts-rspec (~> 1.0, >= 1.0.5) + rubocop-minitest (~> 0.40, >= 0.40.0) + rubocop-on-rbs (~> 2.0, >= 2.0.0) rubocop-packaging (~> 0.6, >= 0.6.0) - rubocop-rspec (~> 3.6) - rubocop-ruby3_2 (~> 3.0.0) + rubocop-ruby3_2 (~> 3.0, >= 3.0.6) ruby-progressbar (~> 1.13) - standard (>= 1.50) + standard (~> 1.56, >= 1.56.0) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) tree_sitter_language_pack (~> 1.13, >= 1.13.3) - yaml-converter (~> 0.1) - yard (~> 0.9, >= 0.9.44) - yard-fence (~> 0.9, >= 0.9.1) + webrick (~> 1.9) + yaml-converter (~> 0.2, >= 0.2.3) + yard (~> 0.9, >= 0.9.45) + yard-fence (~> 0.9, >= 0.9.6) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) - yard-timekeeper (~> 0.1) - yard-yaml (~> 0.1, >= 0.1.2) + yard-timekeeper (~> 0.2, >= 0.2.4) + yard-yaml (~> 0.2, >= 0.2.3) CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af ansi (1.6.0) sha256=ac9ea0c0ea8d32fb4e271348e609963ac78882f34b73836c2a02b3622e666658 appraisal2 (3.2.0) sha256=ccd0b767ac4060cd7af6d16747459b6990f49c39c7b4fb1f7d1146b1e97c492f + appraisal2-rubocop (1.0.0) sha256=b71410fbb014befda5340605a605b7f6f3f012739baf0acc5b4351b592c3258d ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 ast-crispr (7.1.0) ast-merge (7.1.0) @@ -416,6 +444,7 @@ CHECKSUMS benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 + cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 @@ -424,7 +453,6 @@ CHECKSUMS delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 - docile (1.4.1) sha256=96159be799bfa73cdb721b840e9802126e4e03dfc26863db73647204c727f21e dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -433,7 +461,7 @@ CHECKSUMS dry-schema (1.16.0) sha256=cd3aaeabc0f1af66ec82a29096d4c4fb92a0a58b9dae29a22b1bbceb78985727 dry-types (1.9.1) sha256=baebeecdb9f8395d6c9d227b62011279440943e3ef2468fe8ccc1ba11467f178 emoji_regex (15.0.0) sha256=a508b2c0bee561169564e0aec96085020c900520d335e5533fd8e78e59493829 - erb (6.0.5) sha256=858e63488cb796c9daba8b6e9ff4b3879c395022049be9a66a8e00980e612eac + erb (6.0.6) sha256=a9b24986700f5bf127c4f297c5403c3ca41b83b0a316c0cd09a096b56e644ae5 gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f @@ -441,23 +469,19 @@ CHECKSUMS io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 - kettle-dev (2.3.7) sha256=eb370113cd030d03cbe2d33b31c99858951017e5ad21a17e9ed89dc3770028ee - kettle-rb (0.1.4) sha256=9cef7ce4f7021666b7222292f29051e51eaf042e8a5db11f3f4dd72f74243fc1 - kettle-soup-cover (1.1.3) sha256=a373827da22a7131d093afd32945e5b7d7a10a01ebfdded8fd2cb8230d69c8ad - kettle-test (2.0.11) sha256=c710c90f7ab79d51f9452f0c09f5f90657e7a893f63583855c164d0b1b107ab2 + kettle-dev (2.3.8) sha256=9d716ff21c660a730cb4e8d41e2e2f0630a28167a354b6e2924e242102aef72c + kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f + kettle-soup-cover (3.0.4) + kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 + kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 - nokogiri (1.19.4-aarch64-linux-gnu) sha256=1269fb644a6de405057a53dd5c762b1209b43ca7424f839454d3dbc677c31a8f - nokogiri (1.19.4-aarch64-linux-musl) sha256=35c65b9ce72b3bb03207bdbe7067915019dc18c1b9b59139684bd6690fdd01af - nokogiri (1.19.4-arm64-darwin) sha256=a46db9853286e6597b36ebc6953817d15acf3a299583eb3f89fdc6f91dd63527 - nokogiri (1.19.4-x86_64-darwin) sha256=7fd17057d3e1f00e9954a74b3cd76595d3d4a5ef233b7ed9599047c204f70551 nokogiri (1.19.4-x86_64-linux-gnu) sha256=379fae440b28915e3f19d752ce2dcf8465ed2b2fbefd2a7ca0dd497bc981a06a - nokogiri (1.19.4-x86_64-linux-musl) sha256=17dfb7c1fa194ae02fbf7c51a7afc8d278045ab3fdacfd86f91d02d7b274470b - nomono (1.0.8) sha256=bf4b9b426cbf216ab17b70db474f691b8ae1f1e29de8db4b0ecd405e6e7e1c80 + nomono (1.0.9) openssl (4.0.2) sha256=1037ad2868ae58df9ad917891c0c0f9815a1172f6846d4bcdd508e4c2ee747c2 ostruct (0.6.3) sha256=95a2ed4a4bd1d190784e666b47b2d3f078e4a9efda2fccf18f84ddc6538ed912 parallel (1.28.0) sha256=33e6de1484baf2524792d178b0913fc8eb94c628d6cfe45599ad4458c638c970 @@ -472,8 +496,6 @@ CHECKSUMS racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 - rake-compiler-dock (1.12.0) sha256=f13205c2738f3d2053afcd03491a9e4541b22a59a0bfc53fc8bc883bd8188023 - rb_sys (0.9.127) sha256=e9f90df3bb0577472d26d96127d5b5774b98f44de881e7d36aeefd28d6337847 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 @@ -492,14 +514,21 @@ CHECKSUMS rspec_junit_formatter (0.6.0) sha256=40dde674e6ae4e6cc0ff560da25497677e34fefd2338cc467a8972f602b62b15 rubocop (1.88.2) sha256=8def251c90cd955feb4daa3edc0ab56893250c4ce90ef81e6c80c03f9a939bbf rubocop-ast (1.50.0) sha256=b9ca88300da0803ee222ad20cdb30494c0a784eed06fdc35d254b06d662788db + rubocop-capybara (2.23.0) sha256=f9ea1ba3a7561ee8e88cf76fc378ce517ce5327155f305ee7b5c2500e5aee357 + rubocop-env (0.1.0) sha256=5ab9a259e71822bf514c8e900a9b68cc2f74ccc87d5493efcd03213f3068e718 + rubocop-factory_bot (2.28.0) sha256=4b17fc02124444173317e131759d195b0d762844a71a29fe8139c1105d92f0cb rubocop-gradual (0.4.0) sha256=9c7e584e6fef6c2539266a193a4572c970c22f99046fd6b0305bdde6228f96ad - rubocop-lts (24.1.0) sha256=9dcad4db2da2fe2f1f77f98c917d70e7c43eded703da14cd201d4be52a9272aa + rubocop-lts (24.2.2) sha256=be6c745e1bb61daebd6af3cc3227c60f95be9f642a080773cad7df14c5f9f174 + rubocop-lts-rspec (1.0.5) sha256=439552fd27440802cc499889e013bffa28aadc41adae5d4dfff3d984a2a809b4 rubocop-md (2.0.4) sha256=0d076b6b5e99dea2ddc928c4bd702497decb9a8400da7808091e02ebcafcfb93 + rubocop-minitest (0.40.0) sha256=353c698199115f12151144cf0b5a96f69bb9d77b660cf6536df2c4250c672a9d rubocop-on-rbs (2.0.0) sha256=ce74d1b3d5daead19f4b611623656c185821dfc9aed9c7079bb1e5d7d7c464be rubocop-packaging (0.6.0) sha256=fb92bd0fb48e6f8cdb1648d2249b0cd51c2497dcc87340132d22f01edbf558a7 rubocop-performance (1.26.1) sha256=cd19b936ff196df85829d264b522fd4f98b6c89ad271fa52744a8c11b8f71834 rubocop-rake (0.7.1) sha256=3797f2b6810c3e9df7376c26d5f44f3475eda59eb1adc38e6f62ecf027cbae4d rubocop-rspec (3.10.2) sha256=0b3e2ecc592cd10ecbf0095bb58d1e357905276e069643523cc19eb7495f65e2 + rubocop-rspec-extra (0.3.0) sha256=ee4b6484d0332a0d23c4a465eeb607e41888eb3d4ed479f850b9f5212514f787 + rubocop-rspec_rails (2.32.0) sha256=4a0d641c72f6ebb957534f539d9d0a62c47abd8ce0d0aeee1ef4701e892a9100 rubocop-ruby3_2 (3.0.7) sha256=f53dd6d286fb05186214fc6ec116783e7f837030918e8931c05de773e98f8466 rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 @@ -507,17 +536,16 @@ CHECKSUMS ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 service_actor (3.9.4) sha256=e63b523630b9a7e62959b2a90113b08d2565b5de9c148557b281ef847c9539ce silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 - simplecov (0.22.0) sha256=fe2622c7834ff23b98066bb0a854284b2729a569ac659f82621fc22ef36213a5 - simplecov-cobertura (3.2.0) sha256=70d702658677fcb20e5aceb6915ccf8bc62ff2ccd38b62b3ad5c9db5c0888740 + simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 + simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 - simplecov-html (0.13.2) sha256=bd0b8e54e7c2d7685927e8d6286466359b6f16b18cb0df47b508e8d73c777246 - simplecov-lcov (0.9.0) sha256=7a77a31e200a595ed4b0249493056efd0c920601f53d2ef135ca34ee796346cd simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc - simplecov_json_formatter (0.1.4) sha256=529418fbe8de1713ac2b2d612aa3daa56d316975d307244399fa4838c601b428 - sorbet-runtime (0.6.13342) sha256=dbeb9892597f593ed2b29e38018912787f6c4e0c4b736d8af0d6bd3c63bde3c3 + simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed + sorbet-runtime (0.6.13347) sha256=54e7221d9f4b63f58aec79f3043752a9ba7810347c6ae0d903531591cc2d5f01 standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b standard-performance (1.9.0) sha256=49483d31be448292951d80e5e67cdcb576c2502103c7b40aec6f1b6e9c88e3f2 + standard-rspec (0.5.0) sha256=64d396524a65af47f5331b423d8cdd313e0267401647bb7892489ca89dad2973 standard-rubocop-lts (2.0.10) sha256=89708a505b7d8b24d2ac399a7520fcb9e764abc2ecb4289b631b5fe0e3b76617 stone_checksums (1.0.6) sha256=c775f830513d6c6ab26e31d1a5fbecd4c4e39002663d4d9f8fa96e97990b5298 stringio (3.2.0) sha256=c37cb2e58b4ffbd33fe5cd948c05934af997b36e0b6ca6fdf43afa234cf222e1 @@ -526,18 +554,15 @@ CHECKSUMS thor (1.5.0) sha256=e3a9e55fe857e44859ce104a84675ab6e8cd59c650a49106a05f55f136425e73 timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 - token-resolver (2.0.4) sha256=33b926958f504525bba3ed511ab66fbcbf8ef30390815e931436b30f27ffcad0 + token-resolver (2.0.5) sha256=b852f924287ffb58a440856e862b056c8ad97e74b4b2526cee43e0771f40c25c tree_haver (7.1.0) - tree_sitter_language_pack (1.13.2) - tree_sitter_language_pack (1.13.2-aarch64-linux) - tree_sitter_language_pack (1.13.2-arm64-darwin) - tree_sitter_language_pack (1.13.2-x86_64-darwin) - tree_sitter_language_pack (1.13.2-x86_64-linux) + tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 + webrick (1.9.2) sha256=beb4a15fc474defed24a3bda4ffd88a490d517c9e4e6118c3edce59e45864131 yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 diff --git a/gems/ast-crispr/README.md b/gems/ast-crispr/README.md index ba2da8bec..8ed7f1c77 100644 --- a/gems/ast-crispr/README.md +++ b/gems/ast-crispr/README.md @@ -36,7 +36,7 @@ I've summarized my thoughts in [this blog post](https://dev.to/galtzo/hostile-ta | Tokens to Remember | [![Gem name][⛳️name-img]][⛳️gem-name] [![Gem namespace][⛳️namespace-img]][⛳️gem-namespace] | |-------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | Works with MRI Ruby 4 | [![Ruby current Compat][💎ruby-c-i]][🚎11-c-wf]| -| Support & Community | [![Join Me on Daily.dev's RubyFriends][✉️ruby-friends-img]][✉️ruby-friends] [![Live Chat on Discord][✉️discord-invite-img-ftb]][✉️discord-invite] [![Get help from me on Upwork][👨🏼‍🏫expsup-upwork-img]][👨🏼‍🏫expsup-upwork] [![Get help from me on Codementor][👨🏼‍🏫expsup-codementor-img]][👨🏼‍🏫expsup-codementor] | +| Support & Community | [![Join Me on Daily.dev's RubyFriends][✉️ruby-friends-img]][✉️ruby-friends] [![Get help from RubyForum][✉️ruby-forum-img]][✉️ruby-forum] [![Live Chat on Discord][✉️discord-invite-img-ftb]][✉️discord-invite] [![Get help from me on Upwork][👨🏼‍🏫expsup-upwork-img]][👨🏼‍🏫expsup-upwork] [![Get help from me on Codementor][👨🏼‍🏫expsup-codementor-img]][👨🏼‍🏫expsup-codementor] | | Source | [![Source on GitLab.com][📜src-gl-img]][📜src-gl] [![Source on CodeBerg.org][📜src-cb-img]][📜src-cb] [![Source on Github.com][📜src-gh-img]][📜src-gh] [![The best SHA: dQw4w9WgXcQ!][🧮kloc-img]][🧮kloc] | | Documentation | [![Current release on RubyDoc.info][📜docs-cr-rd-img]][🚎yard-current] [![YARD on Galtzo.com][📜docs-head-rd-img]][🚎yard-head] [![Maintainer Blog][🚂maint-blog-img]][🚂maint-blog] [![GitLab Wiki][📜gl-wiki-img]][📜gl-wiki] [![GitHub Wiki][📜gh-wiki-img]][📜gh-wiki] | | Compliance | [![License: AGPL-3.0-only OR PolyForm-Small-Business-1.0.0][📄license-img]][📄license] [![Apache license compatibility: Category X][📄license-compat-img]][📄license-compat] [![📄ilo-declaration-img]][📄ilo-declaration] [![Security Policy][🔐security-img]][🔐security] [![Contributor Covenant 2.1][🪇conduct-img]][🪇conduct] [![SemVer 2.0.0][📌semver-img]][📌semver] | @@ -196,6 +196,8 @@ If none of the available licenses suit your use case, please [contact us](mailto [✉️discord-invite-img-ftb]: https://img.shields.io/discord/1373797679469170758?style=for-the-badge&logo=discord [✉️ruby-friends-img]: https://img.shields.io/badge/daily.dev-%F0%9F%92%8E_Ruby_Friends-0A0A0A?style=for-the-badge&logo=dailydotdev&logoColor=white [✉️ruby-friends]: https://app.daily.dev/squads/rubyfriends +[✉️ruby-forum-img]: https://img.shields.io/badge/RubyForum-Help-CC342D?style=for-the-badge&logo=ruby&logoColor=white +[✉️ruby-forum]: https://www.rubyforum.org/c/help/8 [✇bundle-group-pattern]: https://gist.github.com/pboling/4564780 [⛳️gem-namespace]: https://github.com/structuredmerge/structuredmerge-ruby/tree/main/gems/ast-crispr [⛳️namespace-img]: https://img.shields.io/badge/namespace-Ast::Crispr-3C2D2D.svg?style=square&logo=ruby&logoColor=white diff --git a/gems/ast-crispr/gemfiles/modular/cgi/r4/v0.5.gemfile b/gems/ast-crispr/gemfiles/modular/cgi/r4/v0.5.gemfile new file mode 100644 index 000000000..17ad97260 --- /dev/null +++ b/gems/ast-crispr/gemfiles/modular/cgi/r4/v0.5.gemfile @@ -0,0 +1 @@ +gem 'cgi', '~> 0.5' diff --git a/gems/ast-crispr/gemfiles/modular/cgi/vHEAD.gemfile b/gems/ast-crispr/gemfiles/modular/cgi/vHEAD.gemfile new file mode 100644 index 000000000..650fbf033 --- /dev/null +++ b/gems/ast-crispr/gemfiles/modular/cgi/vHEAD.gemfile @@ -0,0 +1 @@ +gem 'cgi', '>= 0.5' diff --git a/gems/ast-crispr/gemfiles/modular/coverage.gemfile b/gems/ast-crispr/gemfiles/modular/coverage.gemfile index f96d50954..b93014b6b 100644 --- a/gems/ast-crispr/gemfiles/modular/coverage.gemfile +++ b/gems/ast-crispr/gemfiles/modular/coverage.gemfile @@ -7,7 +7,7 @@ if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? # Coverage (remote/released) platform :mri do - gem 'kettle-soup-cover', '~> 1.0', '>= 1.1.3', require: false + gem 'kettle-soup-cover', '~> 3.0', '>= 3.0.3', require: false end else eval_gemfile 'coverage_local.gemfile' diff --git a/gems/ast-crispr/gemfiles/modular/coverage_local.gemfile b/gems/ast-crispr/gemfiles/modular/coverage_local.gemfile index 922a943d9..e62025cbc 100644 --- a/gems/ast-crispr/gemfiles/modular/coverage_local.gemfile +++ b/gems/ast-crispr/gemfiles/modular/coverage_local.gemfile @@ -3,13 +3,33 @@ # Local path overrides for development. # Loaded by the associated non-local gemfile when KETTLE_DEV_DEV != "false". -require 'nomono/bundler' unless defined?(Nomono) +# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. +# Bundler records that dependency during Gemfile evaluation, but it does not +# activate that exact version before the immediate `require "nomono/bundler"`. +# If multiple compatible nomono versions are installed, RubyGems may activate +# the newest installed version while Gemfile.lock pins an older compatible one; +# Bundler then aborts with "already activated nomono X, but your Gemfile +# requires nomono Y". Prefer the locked compatible version when present, then +# activate it explicitly before requiring the Bundler DSL extension used below. +nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] +nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) +if File.file?(nomono_lockfile) + nomono_locked_spec = Bundler::LockfileParser + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } + nomono_locked = nomono_locked_spec && + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked +end +Kernel.send(:gem, 'nomono', *nomono_activation_requirements) +require 'nomono/bundler' local_gems = %w[kettle-dev kettle-test kettle-soup-cover kettle-drift] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) local_gems_to_eval = local_gems - %w[ast-crispr] - declared_gems -# export KETTLE_DEV_DEV=/path/to/kettle-rb +# export KETTLE_DEV_DEV=/path/to/my platform :mri do eval_nomono_gems( gems: local_gems_to_eval, diff --git a/gems/ast-crispr/gemfiles/modular/documentation.gemfile b/gems/ast-crispr/gemfiles/modular/documentation.gemfile index dff5cc108..9d4535f12 100644 --- a/gems/ast-crispr/gemfiles/modular/documentation.gemfile +++ b/gems/ast-crispr/gemfiles/modular/documentation.gemfile @@ -7,17 +7,17 @@ # # Documentation -gem 'kramdown', '~> 2.5', '>= 2.5.1', require: false # Ruby >= 2.5 +gem 'kramdown', '~> 2.5', '>= 2.5.2', require: false # Ruby >= 2.5 gem 'kramdown-parser-gfm', '~> 1.1', require: false # Ruby >= 2.3 -gem 'yaml-converter', '~> 0.1', require: false # Ruby >= 3.2 -gem 'yard', '~> 0.9', '>= 0.9.44', require: false +gem 'yaml-converter', '~> 0.2', '>= 0.2.3', require: false # Ruby >= 3.2 +gem 'yard', '~> 0.9', '>= 0.9.45', require: false gem 'yard-junk', '~> 0.1', '>= 0.1.0', require: false # Ruby >= 3.1 gem 'yard-relative_markdown_links', '~> 0.6', require: false if ENV.fetch('GALTZO_FLOSS_DEV', 'false').casecmp('false').zero? - gem 'yard-fence', '~> 0.9', '>= 0.9.1', require: false # Ruby >= 3.2 - gem 'yard-timekeeper', '~> 0.1', require: false - gem 'yard-yaml', '~> 0.1', '>= 0.1.2', require: false + gem 'yard-fence', '~> 0.9', '>= 0.9.6', require: false # Ruby >= 3.2 + gem 'yard-timekeeper', '~> 0.2', '>= 0.2.4', require: false + gem 'yard-yaml', '~> 0.2', '>= 0.2.3', require: false else eval_gemfile 'documentation_local.gemfile' end diff --git a/gems/ast-crispr/gemfiles/modular/documentation_local.gemfile b/gems/ast-crispr/gemfiles/modular/documentation_local.gemfile index 4d4c2bd95..54aaf6e1c 100644 --- a/gems/ast-crispr/gemfiles/modular/documentation_local.gemfile +++ b/gems/ast-crispr/gemfiles/modular/documentation_local.gemfile @@ -3,13 +3,35 @@ # Local path overrides for development. # Loaded by the associated non-local gemfile when GALTZO_FLOSS_DEV != "false". -require 'nomono/bundler' unless defined?(Nomono) +# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. +# Bundler records that dependency during Gemfile evaluation, but it does not +# activate that exact version before the immediate `require "nomono/bundler"`. +# If multiple compatible nomono versions are installed, RubyGems may activate +# the newest installed version while Gemfile.lock pins an older compatible one; +# Bundler then aborts with "already activated nomono X, but your Gemfile +# requires nomono Y". Prefer the locked compatible version when present, then +# activate it explicitly before requiring the Bundler DSL extension used below. +nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] +nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) +if File.file?(nomono_lockfile) + nomono_locked_spec = Bundler::LockfileParser + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } + nomono_locked = nomono_locked_spec && + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked +end +Kernel.send(:gem, 'nomono', *nomono_activation_requirements) +require 'nomono/bundler' local_gems = %w[yard-fence yard-timekeeper yard-yaml] +declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) +local_gems_to_eval = local_gems - %w[ast-crispr] - declared_gems # export GALTZO_FLOSS_DEV=/path/to/galtzo-floss eval_nomono_gems( - gems: local_gems, + gems: local_gems_to_eval, prefix: 'GALTZO_FLOSS', path_env: 'GALTZO_FLOSS_DEV', vendored_gems_env: 'GALTZO_FLOSS_VENDORED_GEMS', diff --git a/gems/ast-crispr/gemfiles/modular/erb/r3/v5.0.gemfile b/gems/ast-crispr/gemfiles/modular/erb/r3/v5.0.gemfile index 0e3bf1b97..ec7ff451f 100644 --- a/gems/ast-crispr/gemfiles/modular/erb/r3/v5.0.gemfile +++ b/gems/ast-crispr/gemfiles/modular/erb/r3/v5.0.gemfile @@ -1 +1 @@ -gem 'erb', '~> 6.0', '>= 6.0.4' # ruby >= 3.2.0 +gem 'erb', '~> 6.0', '>= 6.0.6' # ruby >= 3.2.0 diff --git a/gems/ast-crispr/gemfiles/modular/erb/r4/v5.0.gemfile b/gems/ast-crispr/gemfiles/modular/erb/r4/v5.0.gemfile index 0e3bf1b97..ec7ff451f 100644 --- a/gems/ast-crispr/gemfiles/modular/erb/r4/v5.0.gemfile +++ b/gems/ast-crispr/gemfiles/modular/erb/r4/v5.0.gemfile @@ -1 +1 @@ -gem 'erb', '~> 6.0', '>= 6.0.4' # ruby >= 3.2.0 +gem 'erb', '~> 6.0', '>= 6.0.6' # ruby >= 3.2.0 diff --git a/gems/ast-crispr/gemfiles/modular/json/truffleruby_22_3.gemfile b/gems/ast-crispr/gemfiles/modular/json/truffleruby_22_3.gemfile new file mode 100644 index 000000000..9b2f8d96a --- /dev/null +++ b/gems/ast-crispr/gemfiles/modular/json/truffleruby_22_3.gemfile @@ -0,0 +1,6 @@ +# frozen_string_literal: true + +if RUBY_ENGINE == 'truffleruby' && RUBY_ENGINE_VERSION.start_with?('22.3') + # TruffleRuby 22.3 ships the json default gem from its emulated MRI Ruby. + gem 'json', '= 2.5.1' +end diff --git a/gems/ast-crispr/gemfiles/modular/json/truffleruby_23_0.gemfile b/gems/ast-crispr/gemfiles/modular/json/truffleruby_23_0.gemfile new file mode 100644 index 000000000..d787a5ef4 --- /dev/null +++ b/gems/ast-crispr/gemfiles/modular/json/truffleruby_23_0.gemfile @@ -0,0 +1,6 @@ +# frozen_string_literal: true + +if RUBY_ENGINE == 'truffleruby' && RUBY_ENGINE_VERSION.start_with?('23.0') + # TruffleRuby 23.0 ships the json default gem from its emulated MRI Ruby. + gem 'json', '= 2.6.1' +end diff --git a/gems/ast-crispr/gemfiles/modular/json/truffleruby_23_1.gemfile b/gems/ast-crispr/gemfiles/modular/json/truffleruby_23_1.gemfile new file mode 100644 index 000000000..d78486b0e --- /dev/null +++ b/gems/ast-crispr/gemfiles/modular/json/truffleruby_23_1.gemfile @@ -0,0 +1,6 @@ +# frozen_string_literal: true + +if RUBY_ENGINE == 'truffleruby' && RUBY_ENGINE_VERSION.start_with?('23.1') + # TruffleRuby 23.1 ships the json default gem from its emulated MRI Ruby. + gem 'json', '= 2.6.3' +end diff --git a/gems/ast-crispr/gemfiles/modular/optional.gemfile b/gems/ast-crispr/gemfiles/modular/optional.gemfile index c6b1a82a7..9ea429538 100644 --- a/gems/ast-crispr/gemfiles/modular/optional.gemfile +++ b/gems/ast-crispr/gemfiles/modular/optional.gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -# To retain during ast-crispr templating: +# To retain during kettle-jem templating: # kettle-jem:freeze # # ... your code # kettle-jem:unfreeze @@ -10,7 +10,6 @@ # Required for curated binstubs generated by kettle-jem install gem 'rbs', '>= 3.0', require: false # ruby >= 3.1 -gem 'stone_checksums', '~> 1.0', '>= 1.0.3', require: false # ruby >= 2.2 # Required for kettle-pre-release # URL parsing with Unicode support (falls back to URI if not available) diff --git a/gems/ast-crispr/gemfiles/modular/runtime_heads.gemfile b/gems/ast-crispr/gemfiles/modular/runtime_heads.gemfile index a60320ea2..ebf17c529 100644 --- a/gems/ast-crispr/gemfiles/modular/runtime_heads.gemfile +++ b/gems/ast-crispr/gemfiles/modular/runtime_heads.gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -# To retain during ast-crispr templating: +# To retain during kettle-jem templating: # kettle-jem:freeze # # ... your code # kettle-jem:unfreeze @@ -8,7 +8,4 @@ # Test against HEAD of runtime dependencies so we can proactively file bugs -# Ruby >= 2.2 -gem 'version_gem', github: 'ruby-oauth/version_gem', branch: 'main' - eval_gemfile('x_std_libs/vHEAD.gemfile') diff --git a/gems/ast-crispr/gemfiles/modular/style.gemfile b/gems/ast-crispr/gemfiles/modular/style.gemfile index c85c9954b..4dbcc02c0 100644 --- a/gems/ast-crispr/gemfiles/modular/style.gemfile +++ b/gems/ast-crispr/gemfiles/modular/style.gemfile @@ -1,27 +1,30 @@ # frozen_string_literal: true -# To retain during ast-crispr templating: +# To retain during kettle-jem templating: # kettle-jem:freeze # # ... your code # kettle-jem:unfreeze # -# We run rubocop on the latest version of Ruby, -# but in support of the oldest supported version of Ruby +# Style tasks run on the latest Ruby; RuboCop-LTS selects the compatibility +# rules for the configured Ruby floor independently from task dependency floors. -gem 'reek', '~> 6.5' +gem 'reek', '~> 6.5', '>= 6.5.0' platform :mri do - gem 'rubocop-on-rbs', '~> 2.0' # ruby >= 3.2.0 + gem 'appraisal2-rubocop', '~> 1.0', '>= 1.0.0', require: false + gem 'rubocop-gradual', '~> 0.4', '>= 0.4.0' + gem 'rubocop-minitest', '~> 0.40', '>= 0.40.0' + gem 'rubocop-on-rbs', '~> 2.0', '>= 2.0.0' # ruby >= 3.2.0 # gem "rubocop", "~> 1.73", ">= 1.73.2" # constrained by standard gem 'rubocop-packaging', '~> 0.6', '>= 0.6.0' - gem 'standard', '>= 1.50' + gem 'standard', '~> 1.56', '>= 1.56.0' if ENV.fetch('RUBOCOP_LTS_LOCAL', 'false').casecmp('false').zero? - gem 'rubocop-lts', '~> 24.1.0' - # "rubocop-lts-rspec" can't add here until other gems are updated. - gem 'rubocop-rspec', '~> 3.6' - gem 'rubocop-ruby3_2', '~> 3.0.0' + declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) + gem 'rubocop-lts', '~> 24.2', '>= 24.2.1' unless declared_gems.include?('rubocop-lts') + gem 'rubocop-lts-rspec', '~> 1.0', '>= 1.0.5' unless declared_gems.include?('rubocop-lts-rspec') + gem 'rubocop-ruby3_2', '~> 3.0', '>= 3.0.6' unless declared_gems.include?('rubocop-ruby3_2') else eval_gemfile('style_local.gemfile') end diff --git a/gems/ast-crispr/gemfiles/modular/style_local.gemfile b/gems/ast-crispr/gemfiles/modular/style_local.gemfile index ce75bbe21..43bdc7576 100644 --- a/gems/ast-crispr/gemfiles/modular/style_local.gemfile +++ b/gems/ast-crispr/gemfiles/modular/style_local.gemfile @@ -1,19 +1,41 @@ # frozen_string_literal: true -# We run rubocop on the latest version of Ruby, -# but in support of the oldest supported version of Ruby +# Style tasks run on the latest Ruby; RuboCop-LTS selects the compatibility +# rules for the configured Ruby floor independently from task dependency floors. # Local path overrides for development. # Loaded by the associated non-local gemfile when RUBOCOP_LTS_LOCAL != "false". -require 'nomono/bundler' unless defined?(Nomono) +# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. +# Bundler records that dependency during Gemfile evaluation, but it does not +# activate that exact version before the immediate `require "nomono/bundler"`. +# If multiple compatible nomono versions are installed, RubyGems may activate +# the newest installed version while Gemfile.lock pins an older compatible one; +# Bundler then aborts with "already activated nomono X, but your Gemfile +# requires nomono Y". Prefer the locked compatible version when present, then +# activate it explicitly before requiring the Bundler DSL extension used below. +nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] +nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) +if File.file?(nomono_lockfile) + nomono_locked_spec = Bundler::LockfileParser + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } + nomono_locked = nomono_locked_spec && + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked +end +Kernel.send(:gem, 'nomono', *nomono_activation_requirements) +require 'nomono/bundler' local_gems = %w[rubocop-lts rubocop-lts-rspec rubocop-ruby3_2 standard-rubocop-lts] +declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) +local_gems_to_eval = local_gems - %w[ast-crispr] - declared_gems # export VENDORED_GEMS=rubocop-lts,rubocop-lts-rspec,rubocop-ruby3_2,standard-rubocop-lts platform :mri do eval_nomono_gems( - gems: local_gems, + gems: local_gems_to_eval, prefix: 'RUBOCOP_LTS', path_env: 'RUBOCOP_LTS_LOCAL', vendored_gems_env: 'VENDORED_GEMS', diff --git a/gems/ast-crispr/gemfiles/modular/templating.gemfile b/gems/ast-crispr/gemfiles/modular/templating.gemfile index 2ddc9433f..a672de184 100644 --- a/gems/ast-crispr/gemfiles/modular/templating.gemfile +++ b/gems/ast-crispr/gemfiles/modular/templating.gemfile @@ -12,13 +12,13 @@ end if kettle_remote # Template/plugin checks for released installs. - gem 'kettle-drift', '~> 1.0', '>= 1.0.5', require: false + gem 'kettle-drift', '~> 1.0', '>= 1.0.6', require: false end # Set STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local development with path-based dependencies. # When false (default / CI), released kettle-jem brings merge gems and parser dependencies. # Local path overrides bring the same dependencies from sibling gemspecs. # -# Set KETTLE_DEV_DEV=/path/to/kettle-rb for local development with Kettle plugin gems. +# Set KETTLE_DEV_DEV=/path/to/my for local development with Kettle plugin gems. # When false (default / CI), released Kettle plugin gems are used. eval_gemfile 'templating_local.gemfile' unless structuredmerge_remote && kettle_remote diff --git a/gems/ast-crispr/gemfiles/modular/templating_local.gemfile b/gems/ast-crispr/gemfiles/modular/templating_local.gemfile index 70270d3d6..4c19e13e1 100644 --- a/gems/ast-crispr/gemfiles/modular/templating_local.gemfile +++ b/gems/ast-crispr/gemfiles/modular/templating_local.gemfile @@ -4,7 +4,27 @@ # Loaded by the associated non-local gemfile when STRUCTUREDMERGE_DEV or KETTLE_DEV_DEV # is not "false". -require 'nomono/bundler' unless defined?(Nomono) +# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. +# Bundler records that dependency during Gemfile evaluation, but it does not +# activate that exact version before the immediate `require "nomono/bundler"`. +# If multiple compatible nomono versions are installed, RubyGems may activate +# the newest installed version while Gemfile.lock pins an older compatible one; +# Bundler then aborts with "already activated nomono X, but your Gemfile +# requires nomono Y". Prefer the locked compatible version when present, then +# activate it explicitly before requiring the Bundler DSL extension used below. +nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] +nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) +if File.file?(nomono_lockfile) + nomono_locked_spec = Bundler::LockfileParser + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } + nomono_locked = nomono_locked_spec && + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked +end +Kernel.send(:gem, 'nomono', *nomono_activation_requirements) +require 'nomono/bundler' structuredmerge_local_gems = %w[ tree_haver diff --git a/gems/ast-crispr/gemfiles/modular/webrick/r4/v1.9.gemfile b/gems/ast-crispr/gemfiles/modular/webrick/r4/v1.9.gemfile new file mode 100644 index 000000000..b1329ba84 --- /dev/null +++ b/gems/ast-crispr/gemfiles/modular/webrick/r4/v1.9.gemfile @@ -0,0 +1 @@ +gem 'webrick', '~> 1.9' diff --git a/gems/ast-crispr/gemfiles/modular/webrick/vHEAD.gemfile b/gems/ast-crispr/gemfiles/modular/webrick/vHEAD.gemfile new file mode 100644 index 000000000..c7e6f81a1 --- /dev/null +++ b/gems/ast-crispr/gemfiles/modular/webrick/vHEAD.gemfile @@ -0,0 +1 @@ +gem 'webrick', '>= 1.9' diff --git a/gems/ast-crispr/gemfiles/modular/x_std_libs/r4/libs.gemfile b/gems/ast-crispr/gemfiles/modular/x_std_libs/r4/libs.gemfile index bd4e884df..e2f6501eb 100644 --- a/gems/ast-crispr/gemfiles/modular/x_std_libs/r4/libs.gemfile +++ b/gems/ast-crispr/gemfiles/modular/x_std_libs/r4/libs.gemfile @@ -2,3 +2,5 @@ eval_gemfile '../../erb/r4/v5.0.gemfile' eval_gemfile '../../mutex_m/r4/v0.3.gemfile' eval_gemfile '../../stringio/r4/v3.0.gemfile' eval_gemfile '../../benchmark/r4/v0.5.gemfile' +eval_gemfile '../../cgi/r4/v0.5.gemfile' +eval_gemfile '../../webrick/r4/v1.9.gemfile' diff --git a/gems/ast-crispr/gemfiles/modular/x_std_libs/vHEAD.gemfile b/gems/ast-crispr/gemfiles/modular/x_std_libs/vHEAD.gemfile index 91f383c11..ab75cccf1 100644 --- a/gems/ast-crispr/gemfiles/modular/x_std_libs/vHEAD.gemfile +++ b/gems/ast-crispr/gemfiles/modular/x_std_libs/vHEAD.gemfile @@ -2,3 +2,5 @@ eval_gemfile '../erb/vHEAD.gemfile' eval_gemfile '../mutex_m/vHEAD.gemfile' eval_gemfile '../stringio/vHEAD.gemfile' eval_gemfile '../benchmark/vHEAD.gemfile' +eval_gemfile '../cgi/vHEAD.gemfile' +eval_gemfile '../webrick/vHEAD.gemfile' diff --git a/gems/ast-merge-git/Gemfile.lock b/gems/ast-merge-git/Gemfile.lock index a7969304a..0de53773d 100644 --- a/gems/ast-merge-git/Gemfile.lock +++ b/gems/ast-merge-git/Gemfile.lock @@ -126,18 +126,8 @@ GEM lint_roller (1.1.0) logger (1.7.0) mutex_m (0.3.0) - nokogiri (1.19.4-aarch64-linux-gnu) - racc (~> 1.4) - nokogiri (1.19.4-aarch64-linux-musl) - racc (~> 1.4) - nokogiri (1.19.4-arm64-darwin) - racc (~> 1.4) - nokogiri (1.19.4-x86_64-darwin) - racc (~> 1.4) nokogiri (1.19.4-x86_64-linux-gnu) racc (~> 1.4) - nokogiri (1.19.4-x86_64-linux-musl) - racc (~> 1.4) nomono (1.0.8) openssl (4.0.2) ostruct (0.6.3) @@ -159,9 +149,6 @@ GEM racc (1.8.1) rainbow (3.1.1) rake (13.4.2) - rake-compiler-dock (1.12.0) - rb_sys (0.9.127) - rake-compiler-dock (= 1.12.0) rbs (4.0.3) logger prism (>= 1.6.0) @@ -315,14 +302,14 @@ GEM timecop (>= 0.7, < 1) token-resolver (2.0.4) parslet (~> 2.0) - version_gem (~> 1.1, >= 1.1.13) + version_gem (~> 1.1, >= 1.1.14) tree_haver (7.1.0) citrus (~> 3.0) parslet (~> 2.0) - tree_sitter_language_pack (>= 1.9.0.pre.rc.40, < 2.0) + tree_sitter_language_pack (>= 1.13.2, < 2.0) version_gem (~> 1.1, >= 1.1.9) -tree_sitter_language_pack (1.13.3-x86_64-linux) - sorbet-runtime (~> 0.5) + tree_sitter_language_pack (1.13.3-x86_64-linux) + sorbet-runtime (~> 0.5) tsort (0.2.0) turbo_tests2 (3.2.0) parallel_tests (>= 3.3.0, < 6) @@ -358,13 +345,8 @@ tree_sitter_language_pack (1.13.3-x86_64-linux) zlib (3.2.3) PLATFORMS - aarch64-linux - aarch64-linux-gnu - aarch64-linux-musl - arm64-darwin - x86_64-darwin + x86_64-linux x86_64-linux-gnu - x86_64-linux-musl DEPENDENCIES addressable (>= 2.8, < 3) @@ -454,12 +436,7 @@ CHECKSUMS lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 - nokogiri (1.19.4-aarch64-linux-gnu) sha256=1269fb644a6de405057a53dd5c762b1209b43ca7424f839454d3dbc677c31a8f - nokogiri (1.19.4-aarch64-linux-musl) sha256=35c65b9ce72b3bb03207bdbe7067915019dc18c1b9b59139684bd6690fdd01af - nokogiri (1.19.4-arm64-darwin) sha256=a46db9853286e6597b36ebc6953817d15acf3a299583eb3f89fdc6f91dd63527 - nokogiri (1.19.4-x86_64-darwin) sha256=7fd17057d3e1f00e9954a74b3cd76595d3d4a5ef233b7ed9599047c204f70551 nokogiri (1.19.4-x86_64-linux-gnu) sha256=379fae440b28915e3f19d752ce2dcf8465ed2b2fbefd2a7ca0dd497bc981a06a - nokogiri (1.19.4-x86_64-linux-musl) sha256=17dfb7c1fa194ae02fbf7c51a7afc8d278045ab3fdacfd86f91d02d7b274470b nomono (1.0.8) sha256=bf4b9b426cbf216ab17b70db474f691b8ae1f1e29de8db4b0ecd405e6e7e1c80 openssl (4.0.2) sha256=1037ad2868ae58df9ad917891c0c0f9815a1172f6846d4bcdd508e4c2ee747c2 ostruct (0.6.3) sha256=95a2ed4a4bd1d190784e666b47b2d3f078e4a9efda2fccf18f84ddc6538ed912 @@ -475,8 +452,6 @@ CHECKSUMS racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 - rake-compiler-dock (1.12.0) sha256=f13205c2738f3d2053afcd03491a9e4541b22a59a0bfc53fc8bc883bd8188023 - rb_sys (0.9.127) sha256=e9f90df3bb0577472d26d96127d5b5774b98f44de881e7d36aeefd28d6337847 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 @@ -530,25 +505,21 @@ CHECKSUMS timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.4) sha256=33b926958f504525bba3ed511ab66fbcbf8ef30390815e931436b30f27ffcad0 tree_haver (7.1.0) - tree_sitter_language_pack (1.13.2) - tree_sitter_language_pack (1.13.2-aarch64-linux) - tree_sitter_language_pack (1.13.2-arm64-darwin) - tree_sitter_language_pack (1.13.2-x86_64-darwin) - tree_sitter_language_pack (1.13.2-x86_64-linux) - tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f - turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 - unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 - unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f - version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 - yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 - yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 - yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 - yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd - yard-relative_markdown_links (0.6.0) sha256=3e5ffa85cbad9bac70bee5421774b190fb25d3bdf489323a5b3534f647d1a70e - yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a - yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 - zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 - zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 + tree_sitter_language_pack (1.13.3-x86_64-linux) + tsort (0.2.0) + turbo_tests2 (3.2.0) + unicode-display_width (3.2.0) + unicode-emoji (4.2.0) + version_gem (1.1.14) + yaml-converter (0.2.3) + yard (0.9.45) + yard-fence (0.9.6) + yard-junk (0.1.0) + yard-relative_markdown_links (0.6.0) + yard-timekeeper (0.2.4) + yard-yaml (0.2.3) + zeitwerk (2.8.2) + zlib (3.2.3) BUNDLED WITH 4.0.16 diff --git a/gems/ast-merge/.kettle-drift.lock b/gems/ast-merge/.kettle-drift.lock index 3b8d8df48..584183503 100644 --- a/gems/ast-merge/.kettle-drift.lock +++ b/gems/ast-merge/.kettle-drift.lock @@ -1,138 +1,10 @@ { - "(direct_sibling_local ||\nENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?)": [ - { - "file": "Gemfile", - "lines": [ - 79, - 119, - 159, - 199, - 239, - 279, - 319, - 359, - 399, - 439 - ] - } - ], - ".find { |spec| spec.name == 'nomono' }\nnomono_locked = nomono_locked_spec &&": [ - { - "file": "Gemfile", - "lines": [ - 90, - 130, - 170, - 210, - 250, - 290, - 330, - 370, - 410, - 450 - ] - } - ], - "ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?)\ndirect_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV')": [ - { - "file": "Gemfile", - "lines": [ - 80, - 120, - 160, - 200, - 240, - 280, - 320, - 360, - 400, - 440 - ] - } - ], - "Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version)\nnomono_activation_requirements = [\"= #{nomono_locked_spec.version}\"] if nomono_locked": [ - { - "file": "Gemfile", - "lines": [ - 92, - 132, - 172, - 212, - 252, - 292, - 332, - 372, - 412, - 452 - ] - } - ], - "Kernel.send(:gem, 'nomono', *nomono_activation_requirements)\nrequire 'nomono/bundler'": [ - { - "file": "Gemfile", - "lines": [ - 95, - 135, - 175, - 215, - 255, - 295, - 335, - 375, - 415, - 455 - ] - } - ], - "direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV')\ndirect_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil)": [ - { - "file": "Gemfile", - "lines": [ - 81, - 121, - 161, - 201, - 241, - 281, - 321, - 361, - 401, - 441 - ] - } - ], "eval_nomono_gems(\ngems: direct_sibling_gems,": [ { "file": "Gemfile", "lines": [ 59, - 99, - 139, - 179, - 219, - 259, - 299, - 339, - 379, - 419, - 459 - ] - } - ], - "gems: direct_sibling_gems,\nprefix: 'STRUCTUREDMERGE',": [ - { - "file": "Gemfile", - "lines": [ - 100, - 140, - 180, - 220, - 260, - 300, - 340, - 380, - 420, - 460 + 99 ] } ], @@ -141,33 +13,7 @@ "file": "Gemfile", "lines": [ 42, - 86, - 126, - 166, - 206, - 246, - 286, - 326, - 366, - 406, - 446 - ] - } - ], - "if direct_sibling_dev_was_set\nENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original": [ - { - "file": "Gemfile", - "lines": [ - 109, - 149, - 189, - 229, - 269, - 309, - 349, - 389, - 429, - 469 + 86 ] } ], @@ -176,16 +22,7 @@ "file": "Gemfile", "lines": [ 34, - 78, - 118, - 158, - 198, - 238, - 278, - 318, - 358, - 398, - 438 + 78 ] } ], @@ -194,33 +31,7 @@ "file": "Gemfile", "lines": [ 68, - 108, - 148, - 188, - 228, - 268, - 308, - 348, - 388, - 428, - 468 - ] - } - ], - "nomono_activation_requirements = nomono_requirements\nnomono_lockfile = File.expand_path('Gemfile.lock', __dir__)": [ - { - "file": "Gemfile", - "lines": [ - 84, - 124, - 164, - 204, - 244, - 284, - 324, - 364, - 404, - 444 + 108 ] } ], @@ -229,16 +40,7 @@ "file": "Gemfile", "lines": [ 47, - 91, - 131, - 171, - 211, - 251, - 291, - 331, - 371, - 411, - 451 + 91 ] } ], @@ -247,101 +49,7 @@ "file": "Gemfile", "lines": [ 43, - 87, - 127, - 167, - 207, - 247, - 287, - 327, - 367, - 407, - 447 - ] - } - ], - "nomono_lockfile = File.expand_path('Gemfile.lock', __dir__)\nif File.file?(nomono_lockfile)": [ - { - "file": "Gemfile", - "lines": [ - 85, - 125, - 165, - 205, - 245, - 285, - 325, - 365, - 405, - 445 - ] - } - ], - "path_env: 'STRUCTUREDMERGE_DEV',\nroot: %w[src my structuredmerge]": [ - { - "file": "Gemfile", - "lines": [ - 102, - 142, - 182, - 222, - 262, - 302, - 342, - 382, - 422, - 462 - ] - } - ], - "prefix: 'STRUCTUREDMERGE',\npath_env: 'STRUCTUREDMERGE_DEV',": [ - { - "file": "Gemfile", - "lines": [ - 101, - 141, - 181, - 221, - 261, - 301, - 341, - 381, - 421, - 461 - ] - } - ], - "require 'nomono/bundler'\nENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local": [ - { - "file": "Gemfile", - "lines": [ - 96, - 136, - 176, - 216, - 256, - 296, - 336, - 376, - 416, - 456 - ] - } - ], - "rescue LoadError\nwarn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.'": [ - { - "file": "Gemfile", - "lines": [ - 105, - 145, - 185, - 225, - 265, - 305, - 345, - 385, - 425, - 465 + 87 ] } ], @@ -358,8 +66,8 @@ { "file": "gemfiles/modular/templating_local.gemfile", "lines": [ - 58, - 69 + 55, + 66 ] } ] diff --git a/gems/ast-merge/.structuredmerge/kettle-jem.yml b/gems/ast-merge/.structuredmerge/kettle-jem.yml index dd1a4c369..9a1835b77 100644 --- a/gems/ast-merge/.structuredmerge/kettle-jem.yml +++ b/gems/ast-merge/.structuredmerge/kettle-jem.yml @@ -246,6 +246,59 @@ templates: - Gemfile - certs/pboling.pem - tmp/.gitignore + - gemfiles/modular/benchmark/r4/v0.5.gemfile + - gemfiles/modular/benchmark/vHEAD.gemfile + - gemfiles/modular/cgi/r4/v0.5.gemfile + - gemfiles/modular/cgi/vHEAD.gemfile + - gemfiles/modular/coverage.gemfile + - gemfiles/modular/coverage_local.gemfile + - gemfiles/modular/debug.gemfile + - gemfiles/modular/documentation.gemfile + - gemfiles/modular/documentation_local.gemfile + - gemfiles/modular/erb/r2.3/default.gemfile + - gemfiles/modular/erb/r2.6/v2.2.gemfile + - gemfiles/modular/erb/r2/v3.0.gemfile + - gemfiles/modular/erb/r3.1/v4.0.gemfile + - gemfiles/modular/erb/r3/v5.0.gemfile + - gemfiles/modular/erb/r4/v5.0.gemfile + - gemfiles/modular/erb/vHEAD.gemfile + - gemfiles/modular/json/truffleruby_22_3.gemfile + - gemfiles/modular/json/truffleruby_23_0.gemfile + - gemfiles/modular/json/truffleruby_23_1.gemfile + - gemfiles/modular/mutex_m/r2.4/v0.1.gemfile + - gemfiles/modular/mutex_m/r2/v0.3.gemfile + - gemfiles/modular/mutex_m/r3/v0.3.gemfile + - gemfiles/modular/mutex_m/r4/v0.3.gemfile + - gemfiles/modular/mutex_m/vHEAD.gemfile + - gemfiles/modular/optional.gemfile + - gemfiles/modular/recording/r2.3/recording.gemfile + - gemfiles/modular/recording/r2.4/recording.gemfile + - gemfiles/modular/recording/r2.5/recording.gemfile + - gemfiles/modular/recording/r3/recording.gemfile + - gemfiles/modular/recording/r4/recording.gemfile + - gemfiles/modular/recording/vHEAD.gemfile + - gemfiles/modular/rspec.gemfile + - gemfiles/modular/runtime_heads.gemfile + - gemfiles/modular/stringio/r2.4/v0.0.2.gemfile + - gemfiles/modular/stringio/r2/v3.0.gemfile + - gemfiles/modular/stringio/r3/v3.0.gemfile + - gemfiles/modular/stringio/r4/v3.0.gemfile + - gemfiles/modular/stringio/vHEAD.gemfile + - gemfiles/modular/style.gemfile + - gemfiles/modular/style_local.gemfile + - gemfiles/modular/templating.gemfile + - gemfiles/modular/templating_local.gemfile + - gemfiles/modular/webrick/r4/v1.9.gemfile + - gemfiles/modular/webrick/vHEAD.gemfile + - gemfiles/modular/x_std_libs.gemfile + - gemfiles/modular/x_std_libs/r2.3/libs.gemfile + - gemfiles/modular/x_std_libs/r2.4/libs.gemfile + - gemfiles/modular/x_std_libs/r2.6/libs.gemfile + - gemfiles/modular/x_std_libs/r2/libs.gemfile + - gemfiles/modular/x_std_libs/r3.1/libs.gemfile + - gemfiles/modular/x_std_libs/r3/libs.gemfile + - gemfiles/modular/x_std_libs/r4/libs.gemfile + - gemfiles/modular/x_std_libs/vHEAD.gemfile - source: lib/gem/version.rb target: lib/ast/merge/version.rb - source: sig/gem.rbs diff --git a/gems/ast-merge/Gemfile b/gems/ast-merge/Gemfile index 37848c545..899442f22 100644 --- a/gems/ast-merge/Gemfile +++ b/gems/ast-merge/Gemfile @@ -6,7 +6,7 @@ # kettle-jem will then preserve content between those markers across template runs. # kettle-jem:unfreeze -source 'https://gem.coop' +source "https://gem.coop" git_source(:codeberg) { |repo_name| "https://codeberg.org/#{repo_name}" } git_source(:gitlab) { |repo_name| "https://gitlab.com/#{repo_name}" } @@ -19,17 +19,61 @@ git_source(:gitlab) { |repo_name| "https://gitlab.com/#{repo_name}" } gemspec # Local workspace dependency wiring for *_local.gemfile overrides -nomono_requirements = ['~> 1.0', '>= 1.0.8'] -gem 'nomono', *nomono_requirements, require: false # ruby >= 2.2 +nomono_requirements = ["~> 1.0", ">= 1.0.8"] +gem "nomono", *nomono_requirements, require: false # ruby >= 2.2 # Direct sibling dependencies (env-switched via STRUCTUREDMERGE_DEV) direct_sibling_gems = %w[ tree_haver ] -direct_sibling_dev = ENV.fetch('STRUCTUREDMERGE_DEV', '') +direct_sibling_dev = ENV.fetch("STRUCTUREDMERGE_DEV", "") direct_sibling_local = !direct_sibling_dev.empty? && !%w[false 0 no off].include?(direct_sibling_dev.downcase) -direct_sibling_templating = ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? +direct_sibling_templating = ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? + +if direct_sibling_gems.any? && + (direct_sibling_local || + ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero?) + direct_sibling_dev_was_set = ENV.key?("STRUCTUREDMERGE_DEV") + direct_sibling_dev_original = ENV.fetch("STRUCTUREDMERGE_DEV", nil) + begin + nomono_activation_requirements = nomono_requirements + nomono_lockfile = File.expand_path("Gemfile.lock", __dir__) + if File.file?(nomono_lockfile) + nomono_locked_spec = Bundler::LockfileParser + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == "nomono" } + nomono_locked = nomono_locked_spec && + Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) + if nomono_locked + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] + end + end + Kernel.send(:gem, "nomono", *nomono_activation_requirements) + require "nomono/bundler" + if direct_sibling_templating && !direct_sibling_local + ENV["STRUCTUREDMERGE_DEV"] = File.expand_path("..", __dir__) + end + + eval_nomono_gems( + gems: direct_sibling_gems, + prefix: "STRUCTUREDMERGE", + path_env: "STRUCTUREDMERGE_DEV", + root: ["src", "my", "structuredmerge"] + ) + rescue LoadError + warn "Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies." + ensure + if direct_sibling_templating && !direct_sibling_local + if direct_sibling_dev_was_set + ENV["STRUCTUREDMERGE_DEV"] = direct_sibling_dev_original + else + ENV.delete("STRUCTUREDMERGE_DEV") + end + end + end +end if direct_sibling_gems.any? && (direct_sibling_local || @@ -72,28 +116,28 @@ if direct_sibling_gems.any? && end # Use released TSLP with the Ruby ABI platform-gem fix. -gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' +gem "tree_sitter_language_pack", "~> 1.13", ">= 1.13.3" # Templating (env-switched: STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local paths) -eval_gemfile 'gemfiles/modular/templating.gemfile' if ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? +eval_gemfile "gemfiles/modular/templating.gemfile" if ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? # Debugging -eval_gemfile 'gemfiles/modular/debug.gemfile' +eval_gemfile "gemfiles/modular/debug.gemfile" # Code Coverage (env-switched: KETTLE_DEV_DEV=true for local paths) -eval_gemfile 'gemfiles/modular/coverage.gemfile' +eval_gemfile "gemfiles/modular/coverage.gemfile" # Linting -eval_gemfile 'gemfiles/modular/style.gemfile' +eval_gemfile "gemfiles/modular/style.gemfile" # Documentation -eval_gemfile 'gemfiles/modular/documentation.gemfile' +eval_gemfile "gemfiles/modular/documentation.gemfile" # Optional -eval_gemfile 'gemfiles/modular/optional.gemfile' +eval_gemfile "gemfiles/modular/optional.gemfile" ### Std Lib Extracted Gems -eval_gemfile 'gemfiles/modular/x_std_libs.gemfile' +eval_gemfile "gemfiles/modular/x_std_libs.gemfile" # See unlocked_deps appraisal for more details on irb inclusion -gem 'irb', '~> 1.17' # ruby >= 2.7 +gem "irb", "~> 1.17" # ruby >= 2.7 diff --git a/gems/ast-merge/Gemfile.lock b/gems/ast-merge/Gemfile.lock index 507509781..261a0c9bb 100644 --- a/gems/ast-merge/Gemfile.lock +++ b/gems/ast-merge/Gemfile.lock @@ -8,21 +8,230 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /home/pboling/src/my/kettle-dev/kettle-drift + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly specs: - kettle-drift (1.0.5) + ast-crispr-markdown-markly (7.1.0) + ast-crispr (= 7.1.0) + markly-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism + specs: + ast-crispr-ruby-prism (7.1.0) + ast-crispr (= 7.1.0) + prism-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr + specs: + ast-crispr (7.1.0) + ast-merge (= 7.1.0) + service_actor (~> 3.9) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git + specs: + ast-merge-git (7.1.0) + ast-merge (= 7.1.0) + json-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template + specs: + ast-template (7.1.0) + ast-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge + specs: + bash-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.14) PATH - remote: /home/pboling/src/my/kettle-dev/kettle-soup-cover + remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge specs: - kettle-soup-cover (3.0.3) - kettle-wash (~> 0.1, >= 0.1.0) - simplecov (>= 1.0) - simplecov-cobertura (>= 4.0) - simplecov-console (~> 0.9, >= 0.9.5) - simplecov-rcov (~> 0.3, >= 0.3.7) - simplecov_lcov_formatter (~> 0.9, >= 0.9.0) + binary-merge (7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge + specs: + citrus-toml-merge (7.1.0) + toml-merge (= 7.1.0) + toml-rb (~> 4.1) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge + specs: + commonmarker-merge (7.1.0) + commonmarker (~> 2.2) + markdown-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge + specs: + dotenv-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge + specs: + go-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge + specs: + json-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem + specs: + kettle-jem (7.1.0) + addressable (>= 2.8, < 3) + ast-crispr-markdown-markly (= 7.1.0) + ast-crispr-ruby-prism (= 7.1.0) + ast-merge (= 7.1.0) + bash-merge (= 7.1.0) + citrus-toml-merge (= 7.1.0) + commonmarker-merge (= 7.1.0) + dotenv-merge (= 7.1.0) + json-merge (= 7.1.0) + kettle-dev (~> 2.3, >= 2.3.5) + kettle-rb (~> 0.1, >= 0.1.4) + kramdown-merge (= 7.1.0) + markdown-merge (= 7.1.0) + markly-merge (= 7.1.0) + prism-merge (= 7.1.0) + psych-merge (= 7.1.0) + rbs (>= 3.10) + rbs-merge (= 7.1.0) + ruby-merge (= 7.1.0) + token-resolver (~> 2.0, >= 2.0.4) + toml-merge (= 7.1.0) + toml-rb (~> 4.2) + tree_haver (= 7.1.0) + yaml-merge (= 7.1.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge + specs: + kramdown-merge (7.1.0) + kramdown (~> 2.5) + markdown-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge + specs: + markdown-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge + specs: + markly-merge (7.1.0) + markdown-merge (= 7.1.0) + markly (~> 0.9) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge + specs: + parslet-toml-merge (7.1.0) + toml (~> 0.3) + toml-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge + specs: + plain-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge + specs: + prism-merge (7.1.0) + prism (~> 1.6) + ruby-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge + specs: + psych-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + yaml-merge (= 7.1.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge + specs: + rbs-merge (7.1.0) + ast-merge (= 7.1.0) + rbs (>= 3.10) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge + specs: + ruby-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge + specs: + rust-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb + specs: + smorg-rb (7.1.0) + ast-merge (= 7.1.0) + ast-merge-git (= 7.1.0) + go-merge (= 7.1.0) + json-merge (= 7.1.0) + kettle-jem (= 7.1.0) + markly-merge (= 7.1.0) + plain-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge + specs: + toml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) PATH remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver @@ -33,6 +242,29 @@ PATH tree_sitter_language_pack (>= 1.13.2, < 2.0) version_gem (~> 1.1, >= 1.1.9) +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge + specs: + typescript-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge + specs: + yaml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge + specs: + zip-merge (7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + GEM remote: https://gem.coop/ specs: @@ -52,6 +284,7 @@ GEM thor (~> 1.0) citrus (3.0.2) cmdparse (3.0.7) + commonmarker (2.9.0-x86_64-linux) concurrent-ruby (1.3.8) date (3.5.1) debug (1.11.1) @@ -60,6 +293,7 @@ GEM delegate (0.6.1) diff-lcs (1.6.2) diffy (3.4.4) + docile (1.4.1) dry-configurable (1.4.0) dry-core (~> 1.0) zeitwerk (~> 2.6) @@ -114,7 +348,18 @@ GEM kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) + kettle-drift (1.0.6) + version_gem (~> 1.1, >= 1.1.14) kettle-rb (0.1.4) + kettle-soup-cover (1.1.3) + simplecov (~> 0.22) + simplecov-cobertura (~> 3.0) + simplecov-console (~> 0.9, >= 0.9.3) + simplecov-html (~> 0.13, >= 0.13.1) + simplecov-lcov (~> 0.8) + simplecov-rcov (~> 0.3, >= 0.3.7) + simplecov_json_formatter (~> 0.1, >= 0.1.4) + version_gem (~> 1.1, >= 1.1.9) kettle-test (2.0.11) appraisal2 (~> 3.0, >= 3.0.6) backports (~> 3.0) @@ -126,8 +371,6 @@ GEM silent_stream (~> 1.0, >= 1.0.12) timecop-rspec (~> 1.0, >= 1.0.3) turbo_tests2 (~> 3.1, >= 3.1.12) - kettle-wash (0.1.0) - version_gem (~> 1.1, >= 1.1.14) kramdown (2.5.2) rexml (>= 3.4.4) kramdown-parser-gfm (1.1.0) @@ -135,6 +378,7 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) + markly (0.16.0) mutex_m (0.3.0) nokogiri (1.19.4-aarch64-linux-gnu) racc (~> 1.4) @@ -142,13 +386,11 @@ GEM racc (~> 1.4) nokogiri (1.19.4-arm64-darwin) racc (~> 1.4) - nokogiri (1.19.4-x86_64-darwin) - racc (~> 1.4) nokogiri (1.19.4-x86_64-linux-gnu) racc (~> 1.4) nokogiri (1.19.4-x86_64-linux-musl) racc (~> 1.4) - nomono (1.0.8) + nomono (1.0.9) openssl (4.0.2) ostruct (0.6.3) parallel (1.28.0) @@ -271,21 +513,27 @@ GEM ruby-progressbar (1.13.0) ruby_engine (2.0.3) ruby_version (1.0.3) + service_actor (3.9.4) + zeitwerk (>= 1.0) silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) - simplecov (1.0.2) - simplecov-cobertura (4.0.0) + simplecov (0.22.0) + docile (~> 1.1) + simplecov-html (~> 0.11) + simplecov_json_formatter (~> 0.1) + simplecov-cobertura (3.2.0) rexml - simplecov (~> 1.0) + simplecov (~> 0.19) simplecov-console (0.9.5) ansi simplecov terminal-table + simplecov-html (0.13.2) + simplecov-lcov (0.9.0) simplecov-rcov (0.3.7) simplecov (>= 0.4.1) - simplecov_lcov_formatter (0.9.0) - simplecov (>= 0.18) + simplecov_json_formatter (0.1.4) sorbet-runtime (0.6.13347) standard (1.56.0) language_server-protocol (~> 3.17.0.2) @@ -319,12 +567,15 @@ GEM token-resolver (2.0.4) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.13) + toml (0.3.0) + parslet (>= 1.8.0, < 3.0.0) + toml-rb (4.2.0) + citrus (~> 3.0, > 3.0) + racc (~> 1.7) tree_sitter_language_pack (1.13.3-aarch64-linux) sorbet-runtime (~> 0.5) tree_sitter_language_pack (1.13.3-arm64-darwin) sorbet-runtime (~> 0.5) - tree_sitter_language_pack (1.13.3-x86_64-darwin) - sorbet-runtime (~> 0.5) tree_sitter_language_pack (1.13.3-x86_64-linux) sorbet-runtime (~> 0.5) tsort (0.2.0) @@ -366,31 +617,52 @@ PLATFORMS aarch64-linux-gnu aarch64-linux-musl arm64-darwin - x86_64-darwin + x86_64-linux x86_64-linux-gnu x86_64-linux-musl DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) + ast-crispr! + ast-crispr-markdown-markly! + ast-crispr-ruby-prism! ast-merge! + ast-merge-git! + ast-template! + bash-merge! benchmark (~> 0.5, >= 0.5.0) + binary-merge! bundler-audit (~> 0.9.3) + citrus-toml-merge! + commonmarker-merge! debug (>= 1.1) + dotenv-merge! erb (~> 6.0, >= 6.0.4) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.0) + go-merge! irb (~> 1.17) + json-merge! kettle-dev (~> 2.0, >= 2.2.25) - kettle-drift! - kettle-soup-cover! + kettle-drift (~> 1.0, >= 1.0.5) + kettle-jem! + kettle-soup-cover (~> 1.0, >= 1.1.3) kettle-test (~> 2.0, >= 2.0.9) kramdown (~> 2.5, >= 2.5.1) + kramdown-merge! kramdown-parser-gfm (~> 1.1) + markdown-merge! + markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) + parslet-toml-merge! + plain-merge! + prism-merge! + psych-merge! rake (~> 13.0) rbs (>= 3.0) + rbs-merge! rdoc (~> 6.11) reek (~> 6.5) require_bench (~> 1.0, >= 1.0.4) @@ -399,39 +671,57 @@ DEPENDENCIES rubocop-packaging (~> 0.6, >= 0.6.0) rubocop-rspec (~> 3.6) rubocop-ruby3_2 (~> 3.0.0) + ruby-merge! ruby-progressbar (~> 1.13) + rust-merge! + smorg-rb! standard (>= 1.50) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) + toml-merge! tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) + typescript-merge! yaml-converter (~> 0.1) + yaml-merge! yard (~> 0.9, >= 0.9.44) yard-fence (~> 0.9, >= 0.9.1) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) yard-timekeeper (~> 0.1) yard-yaml (~> 0.1, >= 0.1.2) + zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af ansi (1.6.0) sha256=ac9ea0c0ea8d32fb4e271348e609963ac78882f34b73836c2a02b3622e666658 appraisal2 (3.2.0) sha256=ccd0b767ac4060cd7af6d16747459b6990f49c39c7b4fb1f7d1146b1e97c492f ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 + ast-crispr (7.1.0) + ast-crispr-markdown-markly (7.1.0) + ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) + ast-merge-git (7.1.0) + ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 + bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd - bundler (4.0.16) sha256=d6ca5dd440c24f9abce9844cf44cc8e18c6a553de65a47efb4544137af92c47d + binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 + citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 + commonmarker (2.9.0-x86_64-linux) + commonmarker-merge (7.1.0) concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 + docile (1.4.1) sha256=96159be799bfa73cdb721b840e9802126e4e03dfc26863db73647204c727f21e + dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -444,44 +734,54 @@ CHECKSUMS gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f + go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 + json-merge (7.1.0) kettle-dev (2.3.7) sha256=eb370113cd030d03cbe2d33b31c99858951017e5ad21a17e9ed89dc3770028ee - kettle-drift (1.0.5) + kettle-drift (1.0.6) + kettle-jem (7.1.0) kettle-rb (0.1.4) sha256=9cef7ce4f7021666b7222292f29051e51eaf042e8a5db11f3f4dd72f74243fc1 - kettle-soup-cover (3.0.3) + kettle-soup-cover (1.1.3) sha256=a373827da22a7131d093afd32945e5b7d7a10a01ebfdded8fd2cb8230d69c8ad kettle-test (2.0.11) sha256=c710c90f7ab79d51f9452f0c09f5f90657e7a893f63583855c164d0b1b107ab2 - kettle-wash (0.1.0) sha256=5c04b3900d0957339e7c7d9997bbd804599b68bde002e6f47f4e28a0eea22ea7 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa + kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 + markdown-merge (7.1.0) + markly (0.16.0) + markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-aarch64-linux-gnu) sha256=1269fb644a6de405057a53dd5c762b1209b43ca7424f839454d3dbc677c31a8f nokogiri (1.19.4-aarch64-linux-musl) sha256=35c65b9ce72b3bb03207bdbe7067915019dc18c1b9b59139684bd6690fdd01af nokogiri (1.19.4-arm64-darwin) sha256=a46db9853286e6597b36ebc6953817d15acf3a299583eb3f89fdc6f91dd63527 - nokogiri (1.19.4-x86_64-darwin) sha256=7fd17057d3e1f00e9954a74b3cd76595d3d4a5ef233b7ed9599047c204f70551 nokogiri (1.19.4-x86_64-linux-gnu) sha256=379fae440b28915e3f19d752ce2dcf8465ed2b2fbefd2a7ca0dd497bc981a06a nokogiri (1.19.4-x86_64-linux-musl) sha256=17dfb7c1fa194ae02fbf7c51a7afc8d278045ab3fdacfd86f91d02d7b274470b - nomono (1.0.8) sha256=bf4b9b426cbf216ab17b70db474f691b8ae1f1e29de8db4b0ecd405e6e7e1c80 + nomono (1.0.9) openssl (4.0.2) sha256=1037ad2868ae58df9ad917891c0c0f9815a1172f6846d4bcdd508e4c2ee747c2 ostruct (0.6.3) sha256=95a2ed4a4bd1d190784e666b47b2d3f078e4a9efda2fccf18f84ddc6538ed912 parallel (1.28.0) sha256=33e6de1484baf2524792d178b0913fc8eb94c628d6cfe45599ad4458c638c970 parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 + parslet-toml-merge (7.1.0) + plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 + prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 + psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 + rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb @@ -509,15 +809,21 @@ CHECKSUMS rubocop-rspec (3.10.2) sha256=0b3e2ecc592cd10ecbf0095bb58d1e357905276e069643523cc19eb7495f65e2 rubocop-ruby3_2 (3.0.7) sha256=f53dd6d286fb05186214fc6ec116783e7f837030918e8931c05de773e98f8466 rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 + ruby-merge (7.1.0) ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 + rust-merge (7.1.0) + service_actor (3.9.4) silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 - simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 - simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea + simplecov (0.22.0) sha256=fe2622c7834ff23b98066bb0a854284b2729a569ac659f82621fc22ef36213a5 + simplecov-cobertura (3.2.0) sha256=70d702658677fcb20e5aceb6915ccf8bc62ff2ccd38b62b3ad5c9db5c0888740 simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 + simplecov-html (0.13.2) sha256=bd0b8e54e7c2d7685927e8d6286466359b6f16b18cb0df47b508e8d73c777246 + simplecov-lcov (0.9.0) sha256=7a77a31e200a595ed4b0249493056efd0c920601f53d2ef135ca34ee796346cd simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc - simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed + simplecov_json_formatter (0.1.4) sha256=529418fbe8de1713ac2b2d612aa3daa56d316975d307244399fa4838c601b428 + smorg-rb (7.1.0) sorbet-runtime (0.6.13347) sha256=54e7221d9f4b63f58aec79f3043752a9ba7810347c6ae0d903531591cc2d5f01 standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b @@ -531,17 +837,21 @@ CHECKSUMS timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.4) sha256=33b926958f504525bba3ed511ab66fbcbf8ef30390815e931436b30f27ffcad0 + toml (0.3.0) + toml-merge (7.1.0) + toml-rb (4.2.0) tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-aarch64-linux) sha256=55ffc7c87868cb45658338363d9eba51b4a8b0259aa88e4de368d2bd1d52fea4 tree_sitter_language_pack (1.13.3-arm64-darwin) sha256=bc2498db605f212a1dbd2465ed3f65190d7da786f6ed5d30fcf958121aeb4a5c - tree_sitter_language_pack (1.13.3-x86_64-darwin) sha256=061f7da6e1cc4ba936fad436ee0653d7dfdfa4aa879cf555403e3aa373d43966 tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 + typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 + yaml-merge (7.1.0) yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd @@ -549,6 +859,7 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 + zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH diff --git a/gems/ast-merge/Rakefile b/gems/ast-merge/Rakefile index 339c9a3cb..6b4e21dec 100644 --- a/gems/ast-merge/Rakefile +++ b/gems/ast-merge/Rakefile @@ -130,23 +130,23 @@ end ### DUPLICATE DRIFT TASKS begin - require 'kettle/drift' + require "kettle/drift" Kettle::Drift.install_tasks rescue LoadError - desc('(stub) kettle:drift:check is unavailable') - task('kettle:drift:check') do + desc("(stub) kettle:drift:check is unavailable") + task("kettle:drift:check") do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc('(stub) kettle:drift:update is unavailable') - task('kettle:drift:update') do + desc("(stub) kettle:drift:update is unavailable") + task("kettle:drift:update") do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc('(stub) kettle:drift:force_update is unavailable') - task('kettle:drift:force_update') do + desc("(stub) kettle:drift:force_update is unavailable") + task("kettle:drift:force_update") do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc('(stub) kettle:drift is unavailable') - task('kettle:drift' => 'kettle:drift:update') + desc("(stub) kettle:drift is unavailable") + task("kettle:drift" => "kettle:drift:update") end ### TEMPLATING TASKS diff --git a/gems/ast-merge/lib/ast/merge/version.rb b/gems/ast-merge/lib/ast/merge/version.rb index 6e7dc90f7..3ef823f4d 100644 --- a/gems/ast-merge/lib/ast/merge/version.rb +++ b/gems/ast-merge/lib/ast/merge/version.rb @@ -3,7 +3,7 @@ module Ast module Merge module Version - VERSION = '7.1.0' + VERSION = "7.1.0" end VERSION = Version::VERSION # Traditional Constant Location end diff --git a/gems/ast-template/Gemfile.lock b/gems/ast-template/Gemfile.lock index 139a3c5ab..4a453ea98 100644 --- a/gems/ast-template/Gemfile.lock +++ b/gems/ast-template/Gemfile.lock @@ -121,18 +121,8 @@ GEM lint_roller (1.1.0) logger (1.7.0) mutex_m (0.3.0) - nokogiri (1.19.4-aarch64-linux-gnu) - racc (~> 1.4) - nokogiri (1.19.4-aarch64-linux-musl) - racc (~> 1.4) - nokogiri (1.19.4-arm64-darwin) - racc (~> 1.4) - nokogiri (1.19.4-x86_64-darwin) - racc (~> 1.4) nokogiri (1.19.4-x86_64-linux-gnu) racc (~> 1.4) - nokogiri (1.19.4-x86_64-linux-musl) - racc (~> 1.4) nomono (1.0.8) openssl (4.0.2) ostruct (0.6.3) @@ -154,9 +144,6 @@ GEM racc (1.8.1) rainbow (3.1.1) rake (13.4.2) - rake-compiler-dock (1.12.0) - rb_sys (0.9.127) - rake-compiler-dock (= 1.12.0) rbs (4.0.3) logger prism (>= 1.6.0) @@ -310,14 +297,14 @@ GEM timecop (>= 0.7, < 1) token-resolver (2.0.4) parslet (~> 2.0) - version_gem (~> 1.1, >= 1.1.13) + version_gem (~> 1.1, >= 1.1.14) tree_haver (7.1.0) citrus (~> 3.0) parslet (~> 2.0) - tree_sitter_language_pack (>= 1.9.0.pre.rc.40, < 2.0) + tree_sitter_language_pack (>= 1.13.2, < 2.0) version_gem (~> 1.1, >= 1.1.9) -tree_sitter_language_pack (1.13.3-x86_64-linux) - sorbet-runtime (~> 0.5) + tree_sitter_language_pack (1.13.3-x86_64-linux) + sorbet-runtime (~> 0.5) tsort (0.2.0) turbo_tests2 (3.2.0) parallel_tests (>= 3.3.0, < 6) @@ -353,13 +340,8 @@ tree_sitter_language_pack (1.13.3-x86_64-linux) zlib (3.2.3) PLATFORMS - aarch64-linux - aarch64-linux-gnu - aarch64-linux-musl - arm64-darwin - x86_64-darwin + x86_64-linux x86_64-linux-gnu - x86_64-linux-musl DEPENDENCIES addressable (>= 2.8, < 3) @@ -448,12 +430,7 @@ CHECKSUMS lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 - nokogiri (1.19.4-aarch64-linux-gnu) sha256=1269fb644a6de405057a53dd5c762b1209b43ca7424f839454d3dbc677c31a8f - nokogiri (1.19.4-aarch64-linux-musl) sha256=35c65b9ce72b3bb03207bdbe7067915019dc18c1b9b59139684bd6690fdd01af - nokogiri (1.19.4-arm64-darwin) sha256=a46db9853286e6597b36ebc6953817d15acf3a299583eb3f89fdc6f91dd63527 - nokogiri (1.19.4-x86_64-darwin) sha256=7fd17057d3e1f00e9954a74b3cd76595d3d4a5ef233b7ed9599047c204f70551 nokogiri (1.19.4-x86_64-linux-gnu) sha256=379fae440b28915e3f19d752ce2dcf8465ed2b2fbefd2a7ca0dd497bc981a06a - nokogiri (1.19.4-x86_64-linux-musl) sha256=17dfb7c1fa194ae02fbf7c51a7afc8d278045ab3fdacfd86f91d02d7b274470b nomono (1.0.8) sha256=bf4b9b426cbf216ab17b70db474f691b8ae1f1e29de8db4b0ecd405e6e7e1c80 openssl (4.0.2) sha256=1037ad2868ae58df9ad917891c0c0f9815a1172f6846d4bcdd508e4c2ee747c2 ostruct (0.6.3) sha256=95a2ed4a4bd1d190784e666b47b2d3f078e4a9efda2fccf18f84ddc6538ed912 @@ -469,8 +446,6 @@ CHECKSUMS racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 - rake-compiler-dock (1.12.0) sha256=f13205c2738f3d2053afcd03491a9e4541b22a59a0bfc53fc8bc883bd8188023 - rb_sys (0.9.127) sha256=e9f90df3bb0577472d26d96127d5b5774b98f44de881e7d36aeefd28d6337847 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 @@ -524,25 +499,21 @@ CHECKSUMS timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.4) sha256=33b926958f504525bba3ed511ab66fbcbf8ef30390815e931436b30f27ffcad0 tree_haver (7.1.0) - tree_sitter_language_pack (1.13.2) - tree_sitter_language_pack (1.13.2-aarch64-linux) - tree_sitter_language_pack (1.13.2-arm64-darwin) - tree_sitter_language_pack (1.13.2-x86_64-darwin) - tree_sitter_language_pack (1.13.2-x86_64-linux) - tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f - turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 - unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 - unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f - version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 - yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 - yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 - yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 - yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd - yard-relative_markdown_links (0.6.0) sha256=3e5ffa85cbad9bac70bee5421774b190fb25d3bdf489323a5b3534f647d1a70e - yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a - yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 - zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 - zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 + tree_sitter_language_pack (1.13.3-x86_64-linux) + tsort (0.2.0) + turbo_tests2 (3.2.0) + unicode-display_width (3.2.0) + unicode-emoji (4.2.0) + version_gem (1.1.14) + yaml-converter (0.2.3) + yard (0.9.45) + yard-fence (0.9.6) + yard-junk (0.1.0) + yard-relative_markdown_links (0.6.0) + yard-timekeeper (0.2.4) + yard-yaml (0.2.3) + zeitwerk (2.8.2) + zlib (3.2.3) BUNDLED WITH 4.0.16 diff --git a/gems/bash-merge/Gemfile.lock b/gems/bash-merge/Gemfile.lock index e78690c36..7fa545fae 100644 --- a/gems/bash-merge/Gemfile.lock +++ b/gems/bash-merge/Gemfile.lock @@ -6,41 +6,6 @@ PATH tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.14) -PATH - remote: /home/pboling/src/my/kettle-dev/kettle-drift - specs: - kettle-drift (1.0.5) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/kettle-dev/kettle-soup-cover - specs: - kettle-soup-cover (3.0.3) - kettle-wash (~> 0.1, >= 0.1.0) - simplecov (>= 1.0) - simplecov-cobertura (>= 4.0) - simplecov-console (~> 0.9, >= 0.9.5) - simplecov-rcov (~> 0.3, >= 0.3.7) - simplecov_lcov_formatter (~> 0.9, >= 0.9.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge - specs: - ast-merge (7.1.0) - benchmark - token-resolver (~> 2.0, >= 2.0.4) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver - specs: - tree_haver (7.1.0) - citrus (~> 3.0) - parslet (~> 2.0) - tree_sitter_language_pack (>= 1.13.2, < 2.0) - version_gem (~> 1.1, >= 1.1.9) - GEM remote: https://gem.coop/ specs: @@ -52,6 +17,11 @@ GEM rake (>= 10) thor (>= 0.14) ast (2.4.3) + ast-merge (7.1.0) + benchmark + token-resolver (~> 2.0, >= 2.0.4) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) backports (3.25.3) benchmark (0.5.0) bigdecimal (4.1.2) @@ -68,6 +38,7 @@ GEM delegate (0.6.1) diff-lcs (1.6.2) diffy (3.4.4) + docile (1.4.1) dry-configurable (1.4.0) dry-core (~> 1.0) zeitwerk (~> 2.6) @@ -123,6 +94,15 @@ GEM kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) kettle-rb (0.1.4) + kettle-soup-cover (1.1.3) + simplecov (~> 0.22) + simplecov-cobertura (~> 3.0) + simplecov-console (~> 0.9, >= 0.9.3) + simplecov-html (~> 0.13, >= 0.13.1) + simplecov-lcov (~> 0.8) + simplecov-rcov (~> 0.3, >= 0.3.7) + simplecov_json_formatter (~> 0.1, >= 0.1.4) + version_gem (~> 1.1, >= 1.1.9) kettle-test (2.0.11) appraisal2 (~> 3.0, >= 3.0.6) backports (~> 3.0) @@ -134,8 +114,6 @@ GEM silent_stream (~> 1.0, >= 1.0.12) timecop-rspec (~> 1.0, >= 1.0.3) turbo_tests2 (~> 3.1, >= 3.1.12) - kettle-wash (0.1.0) - version_gem (~> 1.1, >= 1.1.14) kramdown (2.5.2) rexml (>= 3.4.4) kramdown-parser-gfm (1.1.0) @@ -282,18 +260,22 @@ GEM silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) - simplecov (1.0.2) - simplecov-cobertura (4.0.0) + simplecov (0.22.0) + docile (~> 1.1) + simplecov-html (~> 0.11) + simplecov_json_formatter (~> 0.1) + simplecov-cobertura (3.2.0) rexml - simplecov (~> 1.0) + simplecov (~> 0.19) simplecov-console (0.9.5) ansi simplecov terminal-table + simplecov-html (0.13.2) + simplecov-lcov (0.9.0) simplecov-rcov (0.3.7) simplecov (>= 0.4.1) - simplecov_lcov_formatter (0.9.0) - simplecov (>= 0.18) + simplecov_json_formatter (0.1.4) sorbet-runtime (0.6.13347) standard (1.56.0) language_server-protocol (~> 3.17.0.2) @@ -327,6 +309,11 @@ GEM token-resolver (2.0.4) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.13) + tree_haver (7.1.0) + citrus (~> 3.0) + parslet (~> 2.0) + tree_sitter_language_pack (>= 1.13.2, < 2.0) + version_gem (~> 1.1, >= 1.1.9) tree_sitter_language_pack (1.13.3-aarch64-linux) sorbet-runtime (~> 0.5) tree_sitter_language_pack (1.13.3-arm64-darwin) @@ -381,7 +368,6 @@ PLATFORMS DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.2, >= 3.2.0) - ast-merge! bash-merge! benchmark (~> 0.5, >= 0.5.0) bundler-audit (~> 0.9.3) @@ -391,8 +377,7 @@ DEPENDENCIES gitmoji-regex (~> 2.0, >= 2.0.4) irb (~> 1.17) kettle-dev (~> 2.3, >= 2.3.7) - kettle-drift! - kettle-soup-cover! + kettle-soup-cover (~> 1.0, >= 1.1.3) kettle-test (~> 2.0, >= 2.0.11) kramdown (~> 2.5, >= 2.5.1) kramdown-parser-gfm (~> 1.1) @@ -412,7 +397,6 @@ DEPENDENCIES standard (>= 1.50) stone_checksums (~> 1.0, >= 1.0.6, >= 1.0.3) stringio (>= 3.0) - tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) turbo_tests2 (~> 3.2, >= 3.2.0) yaml-converter (~> 0.1) @@ -433,7 +417,6 @@ CHECKSUMS bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd - bundler (4.0.16) sha256=d6ca5dd440c24f9abce9844cf44cc8e18c6a553de65a47efb4544137af92c47d bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 @@ -443,6 +426,7 @@ CHECKSUMS delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 + docile (1.4.1) sha256=96159be799bfa73cdb721b840e9802126e4e03dfc26863db73647204c727f21e dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -460,11 +444,9 @@ CHECKSUMS irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 kettle-dev (2.3.7) sha256=eb370113cd030d03cbe2d33b31c99858951017e5ad21a17e9ed89dc3770028ee - kettle-drift (1.0.5) kettle-rb (0.1.4) sha256=9cef7ce4f7021666b7222292f29051e51eaf042e8a5db11f3f4dd72f74243fc1 - kettle-soup-cover (3.0.3) + kettle-soup-cover (1.1.3) sha256=a373827da22a7131d093afd32945e5b7d7a10a01ebfdded8fd2cb8230d69c8ad kettle-test (2.0.11) sha256=c710c90f7ab79d51f9452f0c09f5f90657e7a893f63583855c164d0b1b107ab2 - kettle-wash (0.1.0) sha256=5c04b3900d0957339e7c7d9997bbd804599b68bde002e6f47f4e28a0eea22ea7 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 @@ -524,11 +506,13 @@ CHECKSUMS ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 - simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 - simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea + simplecov (0.22.0) sha256=fe2622c7834ff23b98066bb0a854284b2729a569ac659f82621fc22ef36213a5 + simplecov-cobertura (3.2.0) sha256=70d702658677fcb20e5aceb6915ccf8bc62ff2ccd38b62b3ad5c9db5c0888740 simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 + simplecov-html (0.13.2) sha256=bd0b8e54e7c2d7685927e8d6286466359b6f16b18cb0df47b508e8d73c777246 + simplecov-lcov (0.9.0) sha256=7a77a31e200a595ed4b0249493056efd0c920601f53d2ef135ca34ee796346cd simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc - simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed + simplecov_json_formatter (0.1.4) sha256=529418fbe8de1713ac2b2d612aa3daa56d316975d307244399fa4838c601b428 sorbet-runtime (0.6.13347) sha256=54e7221d9f4b63f58aec79f3043752a9ba7810347c6ae0d903531591cc2d5f01 standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b diff --git a/gems/binary-merge/Gemfile.lock b/gems/binary-merge/Gemfile.lock index 480882032..165f9b377 100644 --- a/gems/binary-merge/Gemfile.lock +++ b/gems/binary-merge/Gemfile.lock @@ -5,32 +5,6 @@ PATH tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) -PATH - remote: /home/pboling/src/my/kettle-dev/kettle-drift - specs: - kettle-drift (1.0.5) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/kettle-dev/kettle-soup-cover - specs: - kettle-soup-cover (3.0.3) - kettle-wash (~> 0.1, >= 0.1.0) - simplecov (>= 1.0) - simplecov-cobertura (>= 4.0) - simplecov-console (~> 0.9, >= 0.9.5) - simplecov-rcov (~> 0.3, >= 0.3.7) - simplecov_lcov_formatter (~> 0.9, >= 0.9.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver - specs: - tree_haver (7.1.0) - citrus (~> 3.0) - parslet (~> 2.0) - tree_sitter_language_pack (>= 1.13.2, < 2.0) - version_gem (~> 1.1, >= 1.1.9) - GEM remote: https://gem.coop/ specs: @@ -58,6 +32,7 @@ GEM delegate (0.6.1) diff-lcs (1.6.2) diffy (3.4.4) + docile (1.4.1) dry-configurable (1.4.0) dry-core (~> 1.0) zeitwerk (~> 2.6) @@ -113,6 +88,15 @@ GEM kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) kettle-rb (0.1.4) + kettle-soup-cover (1.1.3) + simplecov (~> 0.22) + simplecov-cobertura (~> 3.0) + simplecov-console (~> 0.9, >= 0.9.3) + simplecov-html (~> 0.13, >= 0.13.1) + simplecov-lcov (~> 0.8) + simplecov-rcov (~> 0.3, >= 0.3.7) + simplecov_json_formatter (~> 0.1, >= 0.1.4) + version_gem (~> 1.1, >= 1.1.9) kettle-test (2.0.11) appraisal2 (~> 3.0, >= 3.0.6) backports (~> 3.0) @@ -124,8 +108,6 @@ GEM silent_stream (~> 1.0, >= 1.0.12) timecop-rspec (~> 1.0, >= 1.0.3) turbo_tests2 (~> 3.1, >= 3.1.12) - kettle-wash (0.1.0) - version_gem (~> 1.1, >= 1.1.14) kramdown (2.5.2) rexml (>= 3.4.4) kramdown-parser-gfm (1.1.0) @@ -272,18 +254,22 @@ GEM silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) - simplecov (1.0.2) - simplecov-cobertura (4.0.0) + simplecov (0.22.0) + docile (~> 1.1) + simplecov-html (~> 0.11) + simplecov_json_formatter (~> 0.1) + simplecov-cobertura (3.2.0) rexml - simplecov (~> 1.0) + simplecov (~> 0.19) simplecov-console (0.9.5) ansi simplecov terminal-table + simplecov-html (0.13.2) + simplecov-lcov (0.9.0) simplecov-rcov (0.3.7) simplecov (>= 0.4.1) - simplecov_lcov_formatter (0.9.0) - simplecov (>= 0.18) + simplecov_json_formatter (0.1.4) sorbet-runtime (0.6.13347) standard (1.56.0) language_server-protocol (~> 3.17.0.2) @@ -314,6 +300,11 @@ GEM delegate (~> 0.1) rspec (~> 3.0) timecop (>= 0.7, < 1) + tree_haver (7.1.0) + citrus (~> 3.0) + parslet (~> 2.0) + tree_sitter_language_pack (>= 1.13.2, < 2.0) + version_gem (~> 1.1, >= 1.1.9) tree_sitter_language_pack (1.13.3-aarch64-linux) sorbet-runtime (~> 0.5) tree_sitter_language_pack (1.13.3-arm64-darwin) @@ -377,8 +368,7 @@ DEPENDENCIES gitmoji-regex (~> 2.0, >= 2.0.0) irb (~> 1.17) kettle-dev (~> 2.0, >= 2.2.25) - kettle-drift! - kettle-soup-cover! + kettle-soup-cover (~> 1.0, >= 1.1.3) kettle-test (~> 2.0, >= 2.0.9) kramdown (~> 2.5, >= 2.5.1) kramdown-parser-gfm (~> 1.1) @@ -398,7 +388,6 @@ DEPENDENCIES standard (>= 1.50) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) - tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) yaml-converter (~> 0.1) yard (~> 0.9, >= 0.9.44) @@ -417,7 +406,6 @@ CHECKSUMS benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd binary-merge (7.1.0) - bundler (4.0.16) sha256=d6ca5dd440c24f9abce9844cf44cc8e18c6a553de65a47efb4544137af92c47d bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 @@ -427,6 +415,7 @@ CHECKSUMS delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 + docile (1.4.1) sha256=96159be799bfa73cdb721b840e9802126e4e03dfc26863db73647204c727f21e dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -444,11 +433,9 @@ CHECKSUMS irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 kettle-dev (2.3.7) sha256=eb370113cd030d03cbe2d33b31c99858951017e5ad21a17e9ed89dc3770028ee - kettle-drift (1.0.5) kettle-rb (0.1.4) sha256=9cef7ce4f7021666b7222292f29051e51eaf042e8a5db11f3f4dd72f74243fc1 - kettle-soup-cover (3.0.3) + kettle-soup-cover (1.1.3) sha256=a373827da22a7131d093afd32945e5b7d7a10a01ebfdded8fd2cb8230d69c8ad kettle-test (2.0.11) sha256=c710c90f7ab79d51f9452f0c09f5f90657e7a893f63583855c164d0b1b107ab2 - kettle-wash (0.1.0) sha256=5c04b3900d0957339e7c7d9997bbd804599b68bde002e6f47f4e28a0eea22ea7 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 @@ -508,11 +495,13 @@ CHECKSUMS ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 - simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 - simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea + simplecov (0.22.0) sha256=fe2622c7834ff23b98066bb0a854284b2729a569ac659f82621fc22ef36213a5 + simplecov-cobertura (3.2.0) sha256=70d702658677fcb20e5aceb6915ccf8bc62ff2ccd38b62b3ad5c9db5c0888740 simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 + simplecov-html (0.13.2) sha256=bd0b8e54e7c2d7685927e8d6286466359b6f16b18cb0df47b508e8d73c777246 + simplecov-lcov (0.9.0) sha256=7a77a31e200a595ed4b0249493056efd0c920601f53d2ef135ca34ee796346cd simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc - simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed + simplecov_json_formatter (0.1.4) sha256=529418fbe8de1713ac2b2d612aa3daa56d316975d307244399fa4838c601b428 sorbet-runtime (0.6.13347) sha256=54e7221d9f4b63f58aec79f3043752a9ba7810347c6ae0d903531591cc2d5f01 standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b diff --git a/gems/citrus-toml-merge/Gemfile.lock b/gems/citrus-toml-merge/Gemfile.lock index 04d0de5cf..157f3240f 100644 --- a/gems/citrus-toml-merge/Gemfile.lock +++ b/gems/citrus-toml-merge/Gemfile.lock @@ -122,18 +122,8 @@ GEM lint_roller (1.1.0) logger (1.7.0) mutex_m (0.3.0) - nokogiri (1.19.4-aarch64-linux-gnu) - racc (~> 1.4) - nokogiri (1.19.4-aarch64-linux-musl) - racc (~> 1.4) - nokogiri (1.19.4-arm64-darwin) - racc (~> 1.4) - nokogiri (1.19.4-x86_64-darwin) - racc (~> 1.4) nokogiri (1.19.4-x86_64-linux-gnu) racc (~> 1.4) - nokogiri (1.19.4-x86_64-linux-musl) - racc (~> 1.4) nomono (1.0.8) openssl (4.0.2) ostruct (0.6.3) @@ -155,9 +145,6 @@ GEM racc (1.8.1) rainbow (3.1.1) rake (13.4.2) - rake-compiler-dock (1.12.0) - rb_sys (0.9.127) - rake-compiler-dock (= 1.12.0) rbs (4.0.3) logger prism (>= 1.6.0) @@ -311,7 +298,7 @@ GEM timecop (>= 0.7, < 1) token-resolver (2.0.4) parslet (~> 2.0) - version_gem (~> 1.1, >= 1.1.13) + version_gem (~> 1.1, >= 1.1.14) toml-merge (7.1.0) ast-merge (= 7.1.0) tree_haver (= 7.1.0) @@ -322,10 +309,10 @@ GEM tree_haver (7.1.0) citrus (~> 3.0) parslet (~> 2.0) - tree_sitter_language_pack (>= 1.9.0.pre.rc.40, < 2.0) + tree_sitter_language_pack (>= 1.13.2, < 2.0) version_gem (~> 1.1, >= 1.1.9) -tree_sitter_language_pack (1.13.3-x86_64-linux) - sorbet-runtime (~> 0.5) + tree_sitter_language_pack (1.13.3-x86_64-linux) + sorbet-runtime (~> 0.5) tsort (0.2.0) turbo_tests2 (3.2.0) parallel_tests (>= 3.3.0, < 6) @@ -361,13 +348,8 @@ tree_sitter_language_pack (1.13.3-x86_64-linux) zlib (3.2.3) PLATFORMS - aarch64-linux - aarch64-linux-gnu - aarch64-linux-musl - arm64-darwin - x86_64-darwin + x86_64-linux x86_64-linux-gnu - x86_64-linux-musl DEPENDENCIES addressable (>= 2.8, < 3) @@ -456,12 +438,7 @@ CHECKSUMS lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 - nokogiri (1.19.4-aarch64-linux-gnu) sha256=1269fb644a6de405057a53dd5c762b1209b43ca7424f839454d3dbc677c31a8f - nokogiri (1.19.4-aarch64-linux-musl) sha256=35c65b9ce72b3bb03207bdbe7067915019dc18c1b9b59139684bd6690fdd01af - nokogiri (1.19.4-arm64-darwin) sha256=a46db9853286e6597b36ebc6953817d15acf3a299583eb3f89fdc6f91dd63527 - nokogiri (1.19.4-x86_64-darwin) sha256=7fd17057d3e1f00e9954a74b3cd76595d3d4a5ef233b7ed9599047c204f70551 nokogiri (1.19.4-x86_64-linux-gnu) sha256=379fae440b28915e3f19d752ce2dcf8465ed2b2fbefd2a7ca0dd497bc981a06a - nokogiri (1.19.4-x86_64-linux-musl) sha256=17dfb7c1fa194ae02fbf7c51a7afc8d278045ab3fdacfd86f91d02d7b274470b nomono (1.0.8) sha256=bf4b9b426cbf216ab17b70db474f691b8ae1f1e29de8db4b0ecd405e6e7e1c80 openssl (4.0.2) sha256=1037ad2868ae58df9ad917891c0c0f9815a1172f6846d4bcdd508e4c2ee747c2 ostruct (0.6.3) sha256=95a2ed4a4bd1d190784e666b47b2d3f078e4a9efda2fccf18f84ddc6538ed912 @@ -477,8 +454,6 @@ CHECKSUMS racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 - rake-compiler-dock (1.12.0) sha256=f13205c2738f3d2053afcd03491a9e4541b22a59a0bfc53fc8bc883bd8188023 - rb_sys (0.9.127) sha256=e9f90df3bb0577472d26d96127d5b5774b98f44de881e7d36aeefd28d6337847 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 @@ -534,25 +509,21 @@ CHECKSUMS toml-merge (7.1.0) toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 tree_haver (7.1.0) - tree_sitter_language_pack (1.13.2) - tree_sitter_language_pack (1.13.2-aarch64-linux) - tree_sitter_language_pack (1.13.2-arm64-darwin) - tree_sitter_language_pack (1.13.2-x86_64-darwin) - tree_sitter_language_pack (1.13.2-x86_64-linux) - tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f - turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 - unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 - unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f - version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 - yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 - yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 - yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 - yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd - yard-relative_markdown_links (0.6.0) sha256=3e5ffa85cbad9bac70bee5421774b190fb25d3bdf489323a5b3534f647d1a70e - yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a - yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 - zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 - zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 + tree_sitter_language_pack (1.13.3-x86_64-linux) + tsort (0.2.0) + turbo_tests2 (3.2.0) + unicode-display_width (3.2.0) + unicode-emoji (4.2.0) + version_gem (1.1.14) + yaml-converter (0.2.3) + yard (0.9.45) + yard-fence (0.9.6) + yard-junk (0.1.0) + yard-relative_markdown_links (0.6.0) + yard-timekeeper (0.2.4) + yard-yaml (0.2.3) + zeitwerk (2.8.2) + zlib (3.2.3) BUNDLED WITH 4.0.16 diff --git a/gems/commonmarker-merge/Gemfile.lock b/gems/commonmarker-merge/Gemfile.lock index 2fcd6bef1..b501a520d 100644 --- a/gems/commonmarker-merge/Gemfile.lock +++ b/gems/commonmarker-merge/Gemfile.lock @@ -30,12 +30,7 @@ GEM thor (~> 1.0) citrus (3.0.2) cmdparse (3.0.7) - commonmarker (2.9.0-aarch64-linux) - commonmarker (2.9.0-aarch64-linux-musl) - commonmarker (2.9.0-arm64-darwin) - commonmarker (2.9.0-x86_64-darwin) commonmarker (2.9.0-x86_64-linux) - commonmarker (2.9.0-x86_64-linux-musl) concurrent-ruby (1.3.7) date (3.5.1) debug (1.11.1) @@ -132,18 +127,8 @@ GEM tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) mutex_m (0.3.0) - nokogiri (1.19.4-aarch64-linux-gnu) - racc (~> 1.4) - nokogiri (1.19.4-aarch64-linux-musl) - racc (~> 1.4) - nokogiri (1.19.4-arm64-darwin) - racc (~> 1.4) - nokogiri (1.19.4-x86_64-darwin) - racc (~> 1.4) nokogiri (1.19.4-x86_64-linux-gnu) racc (~> 1.4) - nokogiri (1.19.4-x86_64-linux-musl) - racc (~> 1.4) nomono (1.0.8) openssl (4.0.2) ostruct (0.6.3) @@ -165,9 +150,6 @@ GEM racc (1.8.1) rainbow (3.1.1) rake (13.4.2) - rake-compiler-dock (1.12.0) - rb_sys (0.9.127) - rake-compiler-dock (= 1.12.0) rbs (4.0.3) logger prism (>= 1.6.0) @@ -321,14 +303,14 @@ GEM timecop (>= 0.7, < 1) token-resolver (2.0.4) parslet (~> 2.0) - version_gem (~> 1.1, >= 1.1.13) + version_gem (~> 1.1, >= 1.1.14) tree_haver (7.1.0) citrus (~> 3.0) parslet (~> 2.0) - tree_sitter_language_pack (>= 1.9.0.pre.rc.40, < 2.0) + tree_sitter_language_pack (>= 1.13.2, < 2.0) version_gem (~> 1.1, >= 1.1.9) -tree_sitter_language_pack (1.13.3-x86_64-linux) - sorbet-runtime (~> 0.5) + tree_sitter_language_pack (1.13.3-x86_64-linux) + sorbet-runtime (~> 0.5) tsort (0.2.0) turbo_tests2 (3.2.0) parallel_tests (>= 3.3.0, < 6) @@ -364,13 +346,8 @@ tree_sitter_language_pack (1.13.3-x86_64-linux) zlib (3.2.3) PLATFORMS - aarch64-linux - aarch64-linux-gnu - aarch64-linux-musl - arm64-darwin - x86_64-darwin + x86_64-linux x86_64-linux-gnu - x86_64-linux-musl DEPENDENCIES addressable (>= 2.8, < 3) @@ -425,12 +402,7 @@ CHECKSUMS bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 - commonmarker (2.9.0-aarch64-linux) sha256=e2b4aadb9a2cfa4e206582641ce3a49465549ac1ed4c289fdd63b78d8f24579c - commonmarker (2.9.0-aarch64-linux-musl) sha256=1cf4d2821f2a7e64945f1ed7c4eeced586fdb27ea7fe7337788802cf8f57cfca - commonmarker (2.9.0-arm64-darwin) sha256=1748dbfa4f5813b0d2a14bb4bbfa65a4ec293aa1c825016d60029ee0e132b046 - commonmarker (2.9.0-x86_64-darwin) sha256=0a9914ccfd2f5d2a59c7bd0dda4fe90eb084cf513b477e499008e09ec9d6edd6 commonmarker (2.9.0-x86_64-linux) sha256=8cfe92970eef585a19ddf6613224b91cab64d6029834661bda801f877c9c7f43 - commonmarker (2.9.0-x86_64-linux-musl) sha256=293921398b839f79ceaf55010e061357e34f053822c3b003cd0be6686176335e commonmarker-merge (7.1.0) concurrent-ruby (1.3.7) sha256=4412caec3a5ea2e5fdc52076724c071a81f2c0593d83b2ac8cbb8ca63b3151b0 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 @@ -466,12 +438,7 @@ CHECKSUMS logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 markdown-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 - nokogiri (1.19.4-aarch64-linux-gnu) sha256=1269fb644a6de405057a53dd5c762b1209b43ca7424f839454d3dbc677c31a8f - nokogiri (1.19.4-aarch64-linux-musl) sha256=35c65b9ce72b3bb03207bdbe7067915019dc18c1b9b59139684bd6690fdd01af - nokogiri (1.19.4-arm64-darwin) sha256=a46db9853286e6597b36ebc6953817d15acf3a299583eb3f89fdc6f91dd63527 - nokogiri (1.19.4-x86_64-darwin) sha256=7fd17057d3e1f00e9954a74b3cd76595d3d4a5ef233b7ed9599047c204f70551 nokogiri (1.19.4-x86_64-linux-gnu) sha256=379fae440b28915e3f19d752ce2dcf8465ed2b2fbefd2a7ca0dd497bc981a06a - nokogiri (1.19.4-x86_64-linux-musl) sha256=17dfb7c1fa194ae02fbf7c51a7afc8d278045ab3fdacfd86f91d02d7b274470b nomono (1.0.8) sha256=bf4b9b426cbf216ab17b70db474f691b8ae1f1e29de8db4b0ecd405e6e7e1c80 openssl (4.0.2) sha256=1037ad2868ae58df9ad917891c0c0f9815a1172f6846d4bcdd508e4c2ee747c2 ostruct (0.6.3) sha256=95a2ed4a4bd1d190784e666b47b2d3f078e4a9efda2fccf18f84ddc6538ed912 @@ -487,8 +454,6 @@ CHECKSUMS racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 - rake-compiler-dock (1.12.0) sha256=f13205c2738f3d2053afcd03491a9e4541b22a59a0bfc53fc8bc883bd8188023 - rb_sys (0.9.127) sha256=e9f90df3bb0577472d26d96127d5b5774b98f44de881e7d36aeefd28d6337847 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 @@ -542,25 +507,21 @@ CHECKSUMS timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.4) sha256=33b926958f504525bba3ed511ab66fbcbf8ef30390815e931436b30f27ffcad0 tree_haver (7.1.0) - tree_sitter_language_pack (1.13.2) - tree_sitter_language_pack (1.13.2-aarch64-linux) - tree_sitter_language_pack (1.13.2-arm64-darwin) - tree_sitter_language_pack (1.13.2-x86_64-darwin) - tree_sitter_language_pack (1.13.2-x86_64-linux) - tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f - turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 - unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 - unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f - version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 - yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 - yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 - yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 - yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd - yard-relative_markdown_links (0.6.0) sha256=3e5ffa85cbad9bac70bee5421774b190fb25d3bdf489323a5b3534f647d1a70e - yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a - yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 - zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 - zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 + tree_sitter_language_pack (1.13.3-x86_64-linux) + tsort (0.2.0) + turbo_tests2 (3.2.0) + unicode-display_width (3.2.0) + unicode-emoji (4.2.0) + version_gem (1.1.14) + yaml-converter (0.2.3) + yard (0.9.45) + yard-fence (0.9.6) + yard-junk (0.1.0) + yard-relative_markdown_links (0.6.0) + yard-timekeeper (0.2.4) + yard-yaml (0.2.3) + zeitwerk (2.8.2) + zlib (3.2.3) BUNDLED WITH 4.0.16 diff --git a/gems/dotenv-merge/Gemfile.lock b/gems/dotenv-merge/Gemfile.lock index 8cad754bd..c67ab899d 100644 --- a/gems/dotenv-merge/Gemfile.lock +++ b/gems/dotenv-merge/Gemfile.lock @@ -6,41 +6,6 @@ PATH tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.14) -PATH - remote: /home/pboling/src/my/kettle-dev/kettle-drift - specs: - kettle-drift (1.0.5) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/kettle-dev/kettle-soup-cover - specs: - kettle-soup-cover (3.0.3) - kettle-wash (~> 0.1, >= 0.1.0) - simplecov (>= 1.0) - simplecov-cobertura (>= 4.0) - simplecov-console (~> 0.9, >= 0.9.5) - simplecov-rcov (~> 0.3, >= 0.3.7) - simplecov_lcov_formatter (~> 0.9, >= 0.9.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge - specs: - ast-merge (7.1.0) - benchmark - token-resolver (~> 2.0, >= 2.0.4) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver - specs: - tree_haver (7.1.0) - citrus (~> 3.0) - parslet (~> 2.0) - tree_sitter_language_pack (>= 1.13.2, < 2.0) - version_gem (~> 1.1, >= 1.1.9) - GEM remote: https://gem.coop/ specs: @@ -52,6 +17,11 @@ GEM rake (>= 10) thor (>= 0.14) ast (2.4.3) + ast-merge (7.1.0) + benchmark + token-resolver (~> 2.0, >= 2.0.4) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) backports (3.25.3) benchmark (0.5.0) bigdecimal (4.1.2) @@ -68,6 +38,7 @@ GEM delegate (0.6.1) diff-lcs (1.6.2) diffy (3.4.4) + docile (1.4.1) dry-configurable (1.4.0) dry-core (~> 1.0) zeitwerk (~> 2.6) @@ -123,6 +94,15 @@ GEM kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) kettle-rb (0.1.4) + kettle-soup-cover (1.1.3) + simplecov (~> 0.22) + simplecov-cobertura (~> 3.0) + simplecov-console (~> 0.9, >= 0.9.3) + simplecov-html (~> 0.13, >= 0.13.1) + simplecov-lcov (~> 0.8) + simplecov-rcov (~> 0.3, >= 0.3.7) + simplecov_json_formatter (~> 0.1, >= 0.1.4) + version_gem (~> 1.1, >= 1.1.9) kettle-test (2.0.11) appraisal2 (~> 3.0, >= 3.0.6) backports (~> 3.0) @@ -134,8 +114,6 @@ GEM silent_stream (~> 1.0, >= 1.0.12) timecop-rspec (~> 1.0, >= 1.0.3) turbo_tests2 (~> 3.1, >= 3.1.12) - kettle-wash (0.1.0) - version_gem (~> 1.1, >= 1.1.14) kramdown (2.5.2) rexml (>= 3.4.4) kramdown-parser-gfm (1.1.0) @@ -282,18 +260,22 @@ GEM silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) - simplecov (1.0.2) - simplecov-cobertura (4.0.0) + simplecov (0.22.0) + docile (~> 1.1) + simplecov-html (~> 0.11) + simplecov_json_formatter (~> 0.1) + simplecov-cobertura (3.2.0) rexml - simplecov (~> 1.0) + simplecov (~> 0.19) simplecov-console (0.9.5) ansi simplecov terminal-table + simplecov-html (0.13.2) + simplecov-lcov (0.9.0) simplecov-rcov (0.3.7) simplecov (>= 0.4.1) - simplecov_lcov_formatter (0.9.0) - simplecov (>= 0.18) + simplecov_json_formatter (0.1.4) sorbet-runtime (0.6.13347) standard (1.56.0) language_server-protocol (~> 3.17.0.2) @@ -327,6 +309,11 @@ GEM token-resolver (2.0.4) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.13) + tree_haver (7.1.0) + citrus (~> 3.0) + parslet (~> 2.0) + tree_sitter_language_pack (>= 1.13.2, < 2.0) + version_gem (~> 1.1, >= 1.1.9) tree_sitter_language_pack (1.13.3-aarch64-linux) sorbet-runtime (~> 0.5) tree_sitter_language_pack (1.13.3-arm64-darwin) @@ -381,7 +368,6 @@ PLATFORMS DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.2, >= 3.2.0) - ast-merge! benchmark (~> 0.5, >= 0.5.0) bundler-audit (~> 0.9.3) debug (>= 1.1) @@ -391,8 +377,7 @@ DEPENDENCIES gitmoji-regex (~> 2.0, >= 2.0.4) irb (~> 1.17) kettle-dev (~> 2.3, >= 2.3.7) - kettle-drift! - kettle-soup-cover! + kettle-soup-cover (~> 1.0, >= 1.1.3) kettle-test (~> 2.0, >= 2.0.11) kramdown (~> 2.5, >= 2.5.1) kramdown-parser-gfm (~> 1.1) @@ -412,7 +397,6 @@ DEPENDENCIES standard (>= 1.50) stone_checksums (~> 1.0, >= 1.0.6, >= 1.0.3) stringio (>= 3.0) - tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) turbo_tests2 (~> 3.2, >= 3.2.0) yaml-converter (~> 0.1) @@ -432,7 +416,6 @@ CHECKSUMS backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd - bundler (4.0.16) sha256=d6ca5dd440c24f9abce9844cf44cc8e18c6a553de65a47efb4544137af92c47d bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 @@ -442,6 +425,7 @@ CHECKSUMS delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 + docile (1.4.1) sha256=96159be799bfa73cdb721b840e9802126e4e03dfc26863db73647204c727f21e dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 @@ -460,11 +444,9 @@ CHECKSUMS irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 kettle-dev (2.3.7) sha256=eb370113cd030d03cbe2d33b31c99858951017e5ad21a17e9ed89dc3770028ee - kettle-drift (1.0.5) kettle-rb (0.1.4) sha256=9cef7ce4f7021666b7222292f29051e51eaf042e8a5db11f3f4dd72f74243fc1 - kettle-soup-cover (3.0.3) + kettle-soup-cover (1.1.3) sha256=a373827da22a7131d093afd32945e5b7d7a10a01ebfdded8fd2cb8230d69c8ad kettle-test (2.0.11) sha256=c710c90f7ab79d51f9452f0c09f5f90657e7a893f63583855c164d0b1b107ab2 - kettle-wash (0.1.0) sha256=5c04b3900d0957339e7c7d9997bbd804599b68bde002e6f47f4e28a0eea22ea7 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 @@ -524,11 +506,13 @@ CHECKSUMS ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 - simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 - simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea + simplecov (0.22.0) sha256=fe2622c7834ff23b98066bb0a854284b2729a569ac659f82621fc22ef36213a5 + simplecov-cobertura (3.2.0) sha256=70d702658677fcb20e5aceb6915ccf8bc62ff2ccd38b62b3ad5c9db5c0888740 simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 + simplecov-html (0.13.2) sha256=bd0b8e54e7c2d7685927e8d6286466359b6f16b18cb0df47b508e8d73c777246 + simplecov-lcov (0.9.0) sha256=7a77a31e200a595ed4b0249493056efd0c920601f53d2ef135ca34ee796346cd simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc - simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed + simplecov_json_formatter (0.1.4) sha256=529418fbe8de1713ac2b2d612aa3daa56d316975d307244399fa4838c601b428 sorbet-runtime (0.6.13347) sha256=54e7221d9f4b63f58aec79f3043752a9ba7810347c6ae0d903531591cc2d5f01 standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b diff --git a/gems/go-merge/Gemfile.lock b/gems/go-merge/Gemfile.lock index 73f67d680..f9d69eac5 100644 --- a/gems/go-merge/Gemfile.lock +++ b/gems/go-merge/Gemfile.lock @@ -6,41 +6,6 @@ PATH tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) -PATH - remote: /home/pboling/src/my/kettle-dev/kettle-drift - specs: - kettle-drift (1.0.5) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/kettle-dev/kettle-soup-cover - specs: - kettle-soup-cover (3.0.3) - kettle-wash (~> 0.1, >= 0.1.0) - simplecov (>= 1.0) - simplecov-cobertura (>= 4.0) - simplecov-console (~> 0.9, >= 0.9.5) - simplecov-rcov (~> 0.3, >= 0.3.7) - simplecov_lcov_formatter (~> 0.9, >= 0.9.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge - specs: - ast-merge (7.1.0) - benchmark - token-resolver (~> 2.0, >= 2.0.4) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver - specs: - tree_haver (7.1.0) - citrus (~> 3.0) - parslet (~> 2.0) - tree_sitter_language_pack (>= 1.13.2, < 2.0) - version_gem (~> 1.1, >= 1.1.9) - GEM remote: https://gem.coop/ specs: @@ -52,6 +17,11 @@ GEM rake (>= 10) thor (>= 0.14) ast (2.4.3) + ast-merge (7.1.0) + benchmark + token-resolver (~> 2.0, >= 2.0.4) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) backports (3.25.3) benchmark (0.5.0) bigdecimal (4.1.2) @@ -68,6 +38,7 @@ GEM delegate (0.6.1) diff-lcs (1.6.2) diffy (3.4.4) + docile (1.4.1) dry-configurable (1.4.0) dry-core (~> 1.0) zeitwerk (~> 2.6) @@ -123,6 +94,15 @@ GEM kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) kettle-rb (0.1.4) + kettle-soup-cover (1.1.3) + simplecov (~> 0.22) + simplecov-cobertura (~> 3.0) + simplecov-console (~> 0.9, >= 0.9.3) + simplecov-html (~> 0.13, >= 0.13.1) + simplecov-lcov (~> 0.8) + simplecov-rcov (~> 0.3, >= 0.3.7) + simplecov_json_formatter (~> 0.1, >= 0.1.4) + version_gem (~> 1.1, >= 1.1.9) kettle-test (2.0.11) appraisal2 (~> 3.0, >= 3.0.6) backports (~> 3.0) @@ -134,8 +114,6 @@ GEM silent_stream (~> 1.0, >= 1.0.12) timecop-rspec (~> 1.0, >= 1.0.3) turbo_tests2 (~> 3.1, >= 3.1.12) - kettle-wash (0.1.0) - version_gem (~> 1.1, >= 1.1.14) kramdown (2.5.2) rexml (>= 3.4.4) kramdown-parser-gfm (1.1.0) @@ -282,18 +260,22 @@ GEM silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) - simplecov (1.0.2) - simplecov-cobertura (4.0.0) + simplecov (0.22.0) + docile (~> 1.1) + simplecov-html (~> 0.11) + simplecov_json_formatter (~> 0.1) + simplecov-cobertura (3.2.0) rexml - simplecov (~> 1.0) + simplecov (~> 0.19) simplecov-console (0.9.5) ansi simplecov terminal-table + simplecov-html (0.13.2) + simplecov-lcov (0.9.0) simplecov-rcov (0.3.7) simplecov (>= 0.4.1) - simplecov_lcov_formatter (0.9.0) - simplecov (>= 0.18) + simplecov_json_formatter (0.1.4) sorbet-runtime (0.6.13347) standard (1.56.0) language_server-protocol (~> 3.17.0.2) @@ -327,6 +309,11 @@ GEM token-resolver (2.0.4) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.13) + tree_haver (7.1.0) + citrus (~> 3.0) + parslet (~> 2.0) + tree_sitter_language_pack (>= 1.13.2, < 2.0) + version_gem (~> 1.1, >= 1.1.9) tree_sitter_language_pack (1.13.3-aarch64-linux) sorbet-runtime (~> 0.5) tree_sitter_language_pack (1.13.3-arm64-darwin) @@ -381,7 +368,6 @@ PLATFORMS DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) - ast-merge! benchmark (~> 0.5, >= 0.5.0) bundler-audit (~> 0.9.3) debug (>= 1.1) @@ -391,8 +377,7 @@ DEPENDENCIES go-merge! irb (~> 1.17) kettle-dev (~> 2.0, >= 2.2.25) - kettle-drift! - kettle-soup-cover! + kettle-soup-cover (~> 1.0, >= 1.1.3) kettle-test (~> 2.0, >= 2.0.9) kramdown (~> 2.5, >= 2.5.1) kramdown-parser-gfm (~> 1.1) @@ -412,7 +397,6 @@ DEPENDENCIES standard (>= 1.50) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) - tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) yaml-converter (~> 0.1) yard (~> 0.9, >= 0.9.44) @@ -431,7 +415,6 @@ CHECKSUMS backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd - bundler (4.0.16) sha256=d6ca5dd440c24f9abce9844cf44cc8e18c6a553de65a47efb4544137af92c47d bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 @@ -441,6 +424,7 @@ CHECKSUMS delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 + docile (1.4.1) sha256=96159be799bfa73cdb721b840e9802126e4e03dfc26863db73647204c727f21e dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -459,11 +443,9 @@ CHECKSUMS irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 kettle-dev (2.3.7) sha256=eb370113cd030d03cbe2d33b31c99858951017e5ad21a17e9ed89dc3770028ee - kettle-drift (1.0.5) kettle-rb (0.1.4) sha256=9cef7ce4f7021666b7222292f29051e51eaf042e8a5db11f3f4dd72f74243fc1 - kettle-soup-cover (3.0.3) + kettle-soup-cover (1.1.3) sha256=a373827da22a7131d093afd32945e5b7d7a10a01ebfdded8fd2cb8230d69c8ad kettle-test (2.0.11) sha256=c710c90f7ab79d51f9452f0c09f5f90657e7a893f63583855c164d0b1b107ab2 - kettle-wash (0.1.0) sha256=5c04b3900d0957339e7c7d9997bbd804599b68bde002e6f47f4e28a0eea22ea7 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 @@ -523,11 +505,13 @@ CHECKSUMS ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 - simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 - simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea + simplecov (0.22.0) sha256=fe2622c7834ff23b98066bb0a854284b2729a569ac659f82621fc22ef36213a5 + simplecov-cobertura (3.2.0) sha256=70d702658677fcb20e5aceb6915ccf8bc62ff2ccd38b62b3ad5c9db5c0888740 simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 + simplecov-html (0.13.2) sha256=bd0b8e54e7c2d7685927e8d6286466359b6f16b18cb0df47b508e8d73c777246 + simplecov-lcov (0.9.0) sha256=7a77a31e200a595ed4b0249493056efd0c920601f53d2ef135ca34ee796346cd simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc - simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed + simplecov_json_formatter (0.1.4) sha256=529418fbe8de1713ac2b2d612aa3daa56d316975d307244399fa4838c601b428 sorbet-runtime (0.6.13347) sha256=54e7221d9f4b63f58aec79f3043752a9ba7810347c6ae0d903531591cc2d5f01 standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b diff --git a/gems/json-merge/Gemfile.lock b/gems/json-merge/Gemfile.lock index d32ae4170..12feb9711 100644 --- a/gems/json-merge/Gemfile.lock +++ b/gems/json-merge/Gemfile.lock @@ -6,41 +6,6 @@ PATH tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) -PATH - remote: /home/pboling/src/my/kettle-dev/kettle-drift - specs: - kettle-drift (1.0.5) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/kettle-dev/kettle-soup-cover - specs: - kettle-soup-cover (3.0.3) - kettle-wash (~> 0.1, >= 0.1.0) - simplecov (>= 1.0) - simplecov-cobertura (>= 4.0) - simplecov-console (~> 0.9, >= 0.9.5) - simplecov-rcov (~> 0.3, >= 0.3.7) - simplecov_lcov_formatter (~> 0.9, >= 0.9.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge - specs: - ast-merge (7.1.0) - benchmark - token-resolver (~> 2.0, >= 2.0.4) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver - specs: - tree_haver (7.1.0) - citrus (~> 3.0) - parslet (~> 2.0) - tree_sitter_language_pack (>= 1.13.2, < 2.0) - version_gem (~> 1.1, >= 1.1.9) - GEM remote: https://gem.coop/ specs: @@ -52,6 +17,11 @@ GEM rake (>= 10) thor (>= 0.14) ast (2.4.3) + ast-merge (7.1.0) + benchmark + token-resolver (~> 2.0, >= 2.0.4) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) backports (3.25.3) benchmark (0.5.0) bigdecimal (4.1.2) @@ -68,6 +38,7 @@ GEM delegate (0.6.1) diff-lcs (1.6.2) diffy (3.4.4) + docile (1.4.1) dry-configurable (1.4.0) dry-core (~> 1.0) zeitwerk (~> 2.6) @@ -123,6 +94,15 @@ GEM kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) kettle-rb (0.1.4) + kettle-soup-cover (1.1.3) + simplecov (~> 0.22) + simplecov-cobertura (~> 3.0) + simplecov-console (~> 0.9, >= 0.9.3) + simplecov-html (~> 0.13, >= 0.13.1) + simplecov-lcov (~> 0.8) + simplecov-rcov (~> 0.3, >= 0.3.7) + simplecov_json_formatter (~> 0.1, >= 0.1.4) + version_gem (~> 1.1, >= 1.1.9) kettle-test (2.0.11) appraisal2 (~> 3.0, >= 3.0.6) backports (~> 3.0) @@ -134,8 +114,6 @@ GEM silent_stream (~> 1.0, >= 1.0.12) timecop-rspec (~> 1.0, >= 1.0.3) turbo_tests2 (~> 3.1, >= 3.1.12) - kettle-wash (0.1.0) - version_gem (~> 1.1, >= 1.1.14) kramdown (2.5.2) rexml (>= 3.4.4) kramdown-parser-gfm (1.1.0) @@ -280,18 +258,22 @@ GEM silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) - simplecov (1.0.2) - simplecov-cobertura (4.0.0) + simplecov (0.22.0) + docile (~> 1.1) + simplecov-html (~> 0.11) + simplecov_json_formatter (~> 0.1) + simplecov-cobertura (3.2.0) rexml - simplecov (~> 1.0) + simplecov (~> 0.19) simplecov-console (0.9.5) ansi simplecov terminal-table + simplecov-html (0.13.2) + simplecov-lcov (0.9.0) simplecov-rcov (0.3.7) simplecov (>= 0.4.1) - simplecov_lcov_formatter (0.9.0) - simplecov (>= 0.18) + simplecov_json_formatter (0.1.4) sorbet-runtime (0.6.13347) standard (1.56.0) language_server-protocol (~> 3.17.0.2) @@ -325,6 +307,11 @@ GEM token-resolver (2.0.4) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.13) + tree_haver (7.1.0) + citrus (~> 3.0) + parslet (~> 2.0) + tree_sitter_language_pack (>= 1.13.2, < 2.0) + version_gem (~> 1.1, >= 1.1.9) tree_sitter_language_pack (1.13.3-aarch64-linux) sorbet-runtime (~> 0.5) tree_sitter_language_pack (1.13.3-arm64-darwin) @@ -381,7 +368,6 @@ PLATFORMS DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) - ast-merge! benchmark (~> 0.5, >= 0.5.0) bundler-audit (~> 0.9.3) debug (>= 1.1) @@ -391,8 +377,7 @@ DEPENDENCIES irb (~> 1.17) json-merge! kettle-dev (~> 2.0, >= 2.2.25) - kettle-drift! - kettle-soup-cover! + kettle-soup-cover (~> 1.0, >= 1.1.3) kettle-test (~> 2.0, >= 2.0.9) kramdown (~> 2.5, >= 2.5.1) kramdown-parser-gfm (~> 1.1) @@ -412,7 +397,6 @@ DEPENDENCIES standard (>= 1.50) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) - tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) yaml-converter (~> 0.1) yard (~> 0.9, >= 0.9.44) @@ -431,7 +415,6 @@ CHECKSUMS backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd - bundler (4.0.16) sha256=d6ca5dd440c24f9abce9844cf44cc8e18c6a553de65a47efb4544137af92c47d bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 @@ -441,6 +424,7 @@ CHECKSUMS delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 + docile (1.4.1) sha256=96159be799bfa73cdb721b840e9802126e4e03dfc26863db73647204c727f21e dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -459,11 +443,9 @@ CHECKSUMS json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 json-merge (7.1.0) kettle-dev (2.3.7) sha256=eb370113cd030d03cbe2d33b31c99858951017e5ad21a17e9ed89dc3770028ee - kettle-drift (1.0.5) kettle-rb (0.1.4) sha256=9cef7ce4f7021666b7222292f29051e51eaf042e8a5db11f3f4dd72f74243fc1 - kettle-soup-cover (3.0.3) + kettle-soup-cover (1.1.3) sha256=a373827da22a7131d093afd32945e5b7d7a10a01ebfdded8fd2cb8230d69c8ad kettle-test (2.0.11) sha256=c710c90f7ab79d51f9452f0c09f5f90657e7a893f63583855c164d0b1b107ab2 - kettle-wash (0.1.0) sha256=5c04b3900d0957339e7c7d9997bbd804599b68bde002e6f47f4e28a0eea22ea7 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 @@ -522,11 +504,13 @@ CHECKSUMS ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 - simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 - simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea + simplecov (0.22.0) sha256=fe2622c7834ff23b98066bb0a854284b2729a569ac659f82621fc22ef36213a5 + simplecov-cobertura (3.2.0) sha256=70d702658677fcb20e5aceb6915ccf8bc62ff2ccd38b62b3ad5c9db5c0888740 simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 + simplecov-html (0.13.2) sha256=bd0b8e54e7c2d7685927e8d6286466359b6f16b18cb0df47b508e8d73c777246 + simplecov-lcov (0.9.0) sha256=7a77a31e200a595ed4b0249493056efd0c920601f53d2ef135ca34ee796346cd simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc - simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed + simplecov_json_formatter (0.1.4) sha256=529418fbe8de1713ac2b2d612aa3daa56d316975d307244399fa4838c601b428 sorbet-runtime (0.6.13347) sha256=54e7221d9f4b63f58aec79f3043752a9ba7810347c6ae0d903531591cc2d5f01 standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b diff --git a/gems/kramdown-merge/Gemfile.lock b/gems/kramdown-merge/Gemfile.lock index e9fdb09e3..f0908ebbb 100644 --- a/gems/kramdown-merge/Gemfile.lock +++ b/gems/kramdown-merge/Gemfile.lock @@ -126,18 +126,8 @@ GEM tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) mutex_m (0.3.0) - nokogiri (1.19.4-aarch64-linux-gnu) - racc (~> 1.4) - nokogiri (1.19.4-aarch64-linux-musl) - racc (~> 1.4) - nokogiri (1.19.4-arm64-darwin) - racc (~> 1.4) - nokogiri (1.19.4-x86_64-darwin) - racc (~> 1.4) nokogiri (1.19.4-x86_64-linux-gnu) racc (~> 1.4) - nokogiri (1.19.4-x86_64-linux-musl) - racc (~> 1.4) nomono (1.0.8) openssl (4.0.2) ostruct (0.6.3) @@ -159,9 +149,6 @@ GEM racc (1.8.1) rainbow (3.1.1) rake (13.4.2) - rake-compiler-dock (1.12.0) - rb_sys (0.9.127) - rake-compiler-dock (= 1.12.0) rbs (4.0.3) logger prism (>= 1.6.0) @@ -315,14 +302,14 @@ GEM timecop (>= 0.7, < 1) token-resolver (2.0.4) parslet (~> 2.0) - version_gem (~> 1.1, >= 1.1.13) + version_gem (~> 1.1, >= 1.1.14) tree_haver (7.1.0) citrus (~> 3.0) parslet (~> 2.0) - tree_sitter_language_pack (>= 1.9.0.pre.rc.40, < 2.0) + tree_sitter_language_pack (>= 1.13.2, < 2.0) version_gem (~> 1.1, >= 1.1.9) -tree_sitter_language_pack (1.13.3-x86_64-linux) - sorbet-runtime (~> 0.5) + tree_sitter_language_pack (1.13.3-x86_64-linux) + sorbet-runtime (~> 0.5) tsort (0.2.0) turbo_tests2 (3.2.0) parallel_tests (>= 3.3.0, < 6) @@ -358,13 +345,8 @@ tree_sitter_language_pack (1.13.3-x86_64-linux) zlib (3.2.3) PLATFORMS - aarch64-linux - aarch64-linux-gnu - aarch64-linux-musl - arm64-darwin - x86_64-darwin + x86_64-linux x86_64-linux-gnu - x86_64-linux-musl DEPENDENCIES addressable (>= 2.8, < 3) @@ -454,12 +436,7 @@ CHECKSUMS logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 markdown-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 - nokogiri (1.19.4-aarch64-linux-gnu) sha256=1269fb644a6de405057a53dd5c762b1209b43ca7424f839454d3dbc677c31a8f - nokogiri (1.19.4-aarch64-linux-musl) sha256=35c65b9ce72b3bb03207bdbe7067915019dc18c1b9b59139684bd6690fdd01af - nokogiri (1.19.4-arm64-darwin) sha256=a46db9853286e6597b36ebc6953817d15acf3a299583eb3f89fdc6f91dd63527 - nokogiri (1.19.4-x86_64-darwin) sha256=7fd17057d3e1f00e9954a74b3cd76595d3d4a5ef233b7ed9599047c204f70551 nokogiri (1.19.4-x86_64-linux-gnu) sha256=379fae440b28915e3f19d752ce2dcf8465ed2b2fbefd2a7ca0dd497bc981a06a - nokogiri (1.19.4-x86_64-linux-musl) sha256=17dfb7c1fa194ae02fbf7c51a7afc8d278045ab3fdacfd86f91d02d7b274470b nomono (1.0.8) sha256=bf4b9b426cbf216ab17b70db474f691b8ae1f1e29de8db4b0ecd405e6e7e1c80 openssl (4.0.2) sha256=1037ad2868ae58df9ad917891c0c0f9815a1172f6846d4bcdd508e4c2ee747c2 ostruct (0.6.3) sha256=95a2ed4a4bd1d190784e666b47b2d3f078e4a9efda2fccf18f84ddc6538ed912 @@ -475,8 +452,6 @@ CHECKSUMS racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 - rake-compiler-dock (1.12.0) sha256=f13205c2738f3d2053afcd03491a9e4541b22a59a0bfc53fc8bc883bd8188023 - rb_sys (0.9.127) sha256=e9f90df3bb0577472d26d96127d5b5774b98f44de881e7d36aeefd28d6337847 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 @@ -530,25 +505,21 @@ CHECKSUMS timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.4) sha256=33b926958f504525bba3ed511ab66fbcbf8ef30390815e931436b30f27ffcad0 tree_haver (7.1.0) - tree_sitter_language_pack (1.13.2) - tree_sitter_language_pack (1.13.2-aarch64-linux) - tree_sitter_language_pack (1.13.2-arm64-darwin) - tree_sitter_language_pack (1.13.2-x86_64-darwin) - tree_sitter_language_pack (1.13.2-x86_64-linux) - tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f - turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 - unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 - unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f - version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 - yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 - yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 - yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 - yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd - yard-relative_markdown_links (0.6.0) sha256=3e5ffa85cbad9bac70bee5421774b190fb25d3bdf489323a5b3534f647d1a70e - yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a - yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 - zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 - zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 + tree_sitter_language_pack (1.13.3-x86_64-linux) + tsort (0.2.0) + turbo_tests2 (3.2.0) + unicode-display_width (3.2.0) + unicode-emoji (4.2.0) + version_gem (1.1.14) + yaml-converter (0.2.3) + yard (0.9.45) + yard-fence (0.9.6) + yard-junk (0.1.0) + yard-relative_markdown_links (0.6.0) + yard-timekeeper (0.2.4) + yard-yaml (0.2.3) + zeitwerk (2.8.2) + zlib (3.2.3) BUNDLED WITH 4.0.16 diff --git a/gems/markdown-merge/Gemfile.lock b/gems/markdown-merge/Gemfile.lock index 98b9b6625..d5c75a907 100644 --- a/gems/markdown-merge/Gemfile.lock +++ b/gems/markdown-merge/Gemfile.lock @@ -6,41 +6,6 @@ PATH tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) -PATH - remote: /home/pboling/src/my/kettle-dev/kettle-drift - specs: - kettle-drift (1.0.5) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/kettle-dev/kettle-soup-cover - specs: - kettle-soup-cover (3.0.3) - kettle-wash (~> 0.1, >= 0.1.0) - simplecov (>= 1.0) - simplecov-cobertura (>= 4.0) - simplecov-console (~> 0.9, >= 0.9.5) - simplecov-rcov (~> 0.3, >= 0.3.7) - simplecov_lcov_formatter (~> 0.9, >= 0.9.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge - specs: - ast-merge (7.1.0) - benchmark - token-resolver (~> 2.0, >= 2.0.4) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver - specs: - tree_haver (7.1.0) - citrus (~> 3.0) - parslet (~> 2.0) - tree_sitter_language_pack (>= 1.13.2, < 2.0) - version_gem (~> 1.1, >= 1.1.9) - GEM remote: https://gem.coop/ specs: @@ -52,6 +17,11 @@ GEM rake (>= 10) thor (>= 0.14) ast (2.4.3) + ast-merge (7.1.0) + benchmark + token-resolver (~> 2.0, >= 2.0.4) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) backports (3.25.3) benchmark (0.5.0) bigdecimal (4.1.2) @@ -68,6 +38,7 @@ GEM delegate (0.6.1) diff-lcs (1.6.2) diffy (3.4.4) + docile (1.4.1) dry-configurable (1.4.0) dry-core (~> 1.0) zeitwerk (~> 2.6) @@ -123,6 +94,15 @@ GEM kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) kettle-rb (0.1.4) + kettle-soup-cover (1.1.3) + simplecov (~> 0.22) + simplecov-cobertura (~> 3.0) + simplecov-console (~> 0.9, >= 0.9.3) + simplecov-html (~> 0.13, >= 0.13.1) + simplecov-lcov (~> 0.8) + simplecov-rcov (~> 0.3, >= 0.3.7) + simplecov_json_formatter (~> 0.1, >= 0.1.4) + version_gem (~> 1.1, >= 1.1.9) kettle-test (2.0.11) appraisal2 (~> 3.0, >= 3.0.6) backports (~> 3.0) @@ -134,8 +114,6 @@ GEM silent_stream (~> 1.0, >= 1.0.12) timecop-rspec (~> 1.0, >= 1.0.3) turbo_tests2 (~> 3.1, >= 3.1.12) - kettle-wash (0.1.0) - version_gem (~> 1.1, >= 1.1.14) kramdown (2.5.2) rexml (>= 3.4.4) kramdown-parser-gfm (1.1.0) @@ -282,18 +260,22 @@ GEM silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) - simplecov (1.0.2) - simplecov-cobertura (4.0.0) + simplecov (0.22.0) + docile (~> 1.1) + simplecov-html (~> 0.11) + simplecov_json_formatter (~> 0.1) + simplecov-cobertura (3.2.0) rexml - simplecov (~> 1.0) + simplecov (~> 0.19) simplecov-console (0.9.5) ansi simplecov terminal-table + simplecov-html (0.13.2) + simplecov-lcov (0.9.0) simplecov-rcov (0.3.7) simplecov (>= 0.4.1) - simplecov_lcov_formatter (0.9.0) - simplecov (>= 0.18) + simplecov_json_formatter (0.1.4) sorbet-runtime (0.6.13347) standard (1.56.0) language_server-protocol (~> 3.17.0.2) @@ -327,6 +309,11 @@ GEM token-resolver (2.0.4) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.13) + tree_haver (7.1.0) + citrus (~> 3.0) + parslet (~> 2.0) + tree_sitter_language_pack (>= 1.13.2, < 2.0) + version_gem (~> 1.1, >= 1.1.9) tree_sitter_language_pack (1.13.3-aarch64-linux) sorbet-runtime (~> 0.5) tree_sitter_language_pack (1.13.3-arm64-darwin) @@ -381,7 +368,6 @@ PLATFORMS DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) - ast-merge! benchmark (~> 0.5, >= 0.5.0) bundler-audit (~> 0.9.3) debug (>= 1.1) @@ -390,8 +376,7 @@ DEPENDENCIES gitmoji-regex (~> 2.0, >= 2.0.0) irb (~> 1.17) kettle-dev (~> 2.0, >= 2.2.25) - kettle-drift! - kettle-soup-cover! + kettle-soup-cover (~> 1.0, >= 1.1.3) kettle-test (~> 2.0, >= 2.0.9) kramdown (~> 2.5, >= 2.5.1) kramdown-parser-gfm (~> 1.1) @@ -412,7 +397,6 @@ DEPENDENCIES standard (>= 1.50) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) - tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) yaml-converter (~> 0.1) yard (~> 0.9, >= 0.9.44) @@ -431,7 +415,6 @@ CHECKSUMS backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd - bundler (4.0.16) sha256=d6ca5dd440c24f9abce9844cf44cc8e18c6a553de65a47efb4544137af92c47d bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 @@ -441,6 +424,7 @@ CHECKSUMS delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 + docile (1.4.1) sha256=96159be799bfa73cdb721b840e9802126e4e03dfc26863db73647204c727f21e dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -458,11 +442,9 @@ CHECKSUMS irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 kettle-dev (2.3.7) sha256=eb370113cd030d03cbe2d33b31c99858951017e5ad21a17e9ed89dc3770028ee - kettle-drift (1.0.5) kettle-rb (0.1.4) sha256=9cef7ce4f7021666b7222292f29051e51eaf042e8a5db11f3f4dd72f74243fc1 - kettle-soup-cover (3.0.3) + kettle-soup-cover (1.1.3) sha256=a373827da22a7131d093afd32945e5b7d7a10a01ebfdded8fd2cb8230d69c8ad kettle-test (2.0.11) sha256=c710c90f7ab79d51f9452f0c09f5f90657e7a893f63583855c164d0b1b107ab2 - kettle-wash (0.1.0) sha256=5c04b3900d0957339e7c7d9997bbd804599b68bde002e6f47f4e28a0eea22ea7 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 @@ -523,11 +505,13 @@ CHECKSUMS ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 - simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 - simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea + simplecov (0.22.0) sha256=fe2622c7834ff23b98066bb0a854284b2729a569ac659f82621fc22ef36213a5 + simplecov-cobertura (3.2.0) sha256=70d702658677fcb20e5aceb6915ccf8bc62ff2ccd38b62b3ad5c9db5c0888740 simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 + simplecov-html (0.13.2) sha256=bd0b8e54e7c2d7685927e8d6286466359b6f16b18cb0df47b508e8d73c777246 + simplecov-lcov (0.9.0) sha256=7a77a31e200a595ed4b0249493056efd0c920601f53d2ef135ca34ee796346cd simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc - simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed + simplecov_json_formatter (0.1.4) sha256=529418fbe8de1713ac2b2d612aa3daa56d316975d307244399fa4838c601b428 sorbet-runtime (0.6.13347) sha256=54e7221d9f4b63f58aec79f3043752a9ba7810347c6ae0d903531591cc2d5f01 standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b diff --git a/gems/markly-merge/Gemfile.lock b/gems/markly-merge/Gemfile.lock index 523a539f4..6eb29530a 100644 --- a/gems/markly-merge/Gemfile.lock +++ b/gems/markly-merge/Gemfile.lock @@ -127,18 +127,8 @@ GEM version_gem (~> 1.1, >= 1.1.9) markly (0.16.0) mutex_m (0.3.0) - nokogiri (1.19.4-aarch64-linux-gnu) - racc (~> 1.4) - nokogiri (1.19.4-aarch64-linux-musl) - racc (~> 1.4) - nokogiri (1.19.4-arm64-darwin) - racc (~> 1.4) - nokogiri (1.19.4-x86_64-darwin) - racc (~> 1.4) nokogiri (1.19.4-x86_64-linux-gnu) racc (~> 1.4) - nokogiri (1.19.4-x86_64-linux-musl) - racc (~> 1.4) nomono (1.0.8) openssl (4.0.2) ostruct (0.6.3) @@ -160,9 +150,6 @@ GEM racc (1.8.1) rainbow (3.1.1) rake (13.4.2) - rake-compiler-dock (1.12.0) - rb_sys (0.9.127) - rake-compiler-dock (= 1.12.0) rbs (4.0.3) logger prism (>= 1.6.0) @@ -316,14 +303,14 @@ GEM timecop (>= 0.7, < 1) token-resolver (2.0.4) parslet (~> 2.0) - version_gem (~> 1.1, >= 1.1.13) + version_gem (~> 1.1, >= 1.1.14) tree_haver (7.1.0) citrus (~> 3.0) parslet (~> 2.0) - tree_sitter_language_pack (>= 1.9.0.pre.rc.40, < 2.0) + tree_sitter_language_pack (>= 1.13.2, < 2.0) version_gem (~> 1.1, >= 1.1.9) -tree_sitter_language_pack (1.13.3-x86_64-linux) - sorbet-runtime (~> 0.5) + tree_sitter_language_pack (1.13.3-x86_64-linux) + sorbet-runtime (~> 0.5) tsort (0.2.0) turbo_tests2 (3.2.0) parallel_tests (>= 3.3.0, < 6) @@ -359,13 +346,8 @@ tree_sitter_language_pack (1.13.3-x86_64-linux) zlib (3.2.3) PLATFORMS - aarch64-linux - aarch64-linux-gnu - aarch64-linux-musl - arm64-darwin - x86_64-darwin + x86_64-linux x86_64-linux-gnu - x86_64-linux-musl DEPENDENCIES addressable (>= 2.8, < 3) @@ -456,12 +438,7 @@ CHECKSUMS markly (0.16.0) sha256=6f70d79e385b1efc9e171f74c81628826259039fe6c778e03c3924c71dac5511 markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 - nokogiri (1.19.4-aarch64-linux-gnu) sha256=1269fb644a6de405057a53dd5c762b1209b43ca7424f839454d3dbc677c31a8f - nokogiri (1.19.4-aarch64-linux-musl) sha256=35c65b9ce72b3bb03207bdbe7067915019dc18c1b9b59139684bd6690fdd01af - nokogiri (1.19.4-arm64-darwin) sha256=a46db9853286e6597b36ebc6953817d15acf3a299583eb3f89fdc6f91dd63527 - nokogiri (1.19.4-x86_64-darwin) sha256=7fd17057d3e1f00e9954a74b3cd76595d3d4a5ef233b7ed9599047c204f70551 nokogiri (1.19.4-x86_64-linux-gnu) sha256=379fae440b28915e3f19d752ce2dcf8465ed2b2fbefd2a7ca0dd497bc981a06a - nokogiri (1.19.4-x86_64-linux-musl) sha256=17dfb7c1fa194ae02fbf7c51a7afc8d278045ab3fdacfd86f91d02d7b274470b nomono (1.0.8) sha256=bf4b9b426cbf216ab17b70db474f691b8ae1f1e29de8db4b0ecd405e6e7e1c80 openssl (4.0.2) sha256=1037ad2868ae58df9ad917891c0c0f9815a1172f6846d4bcdd508e4c2ee747c2 ostruct (0.6.3) sha256=95a2ed4a4bd1d190784e666b47b2d3f078e4a9efda2fccf18f84ddc6538ed912 @@ -477,8 +454,6 @@ CHECKSUMS racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 - rake-compiler-dock (1.12.0) sha256=f13205c2738f3d2053afcd03491a9e4541b22a59a0bfc53fc8bc883bd8188023 - rb_sys (0.9.127) sha256=e9f90df3bb0577472d26d96127d5b5774b98f44de881e7d36aeefd28d6337847 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 @@ -532,25 +507,21 @@ CHECKSUMS timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.4) sha256=33b926958f504525bba3ed511ab66fbcbf8ef30390815e931436b30f27ffcad0 tree_haver (7.1.0) - tree_sitter_language_pack (1.13.2) - tree_sitter_language_pack (1.13.2-aarch64-linux) - tree_sitter_language_pack (1.13.2-arm64-darwin) - tree_sitter_language_pack (1.13.2-x86_64-darwin) - tree_sitter_language_pack (1.13.2-x86_64-linux) - tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f - turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 - unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 - unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f - version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 - yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 - yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 - yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 - yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd - yard-relative_markdown_links (0.6.0) sha256=3e5ffa85cbad9bac70bee5421774b190fb25d3bdf489323a5b3534f647d1a70e - yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a - yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 - zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 - zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 + tree_sitter_language_pack (1.13.3-x86_64-linux) + tsort (0.2.0) + turbo_tests2 (3.2.0) + unicode-display_width (3.2.0) + unicode-emoji (4.2.0) + version_gem (1.1.14) + yaml-converter (0.2.3) + yard (0.9.45) + yard-fence (0.9.6) + yard-junk (0.1.0) + yard-relative_markdown_links (0.6.0) + yard-timekeeper (0.2.4) + yard-yaml (0.2.3) + zeitwerk (2.8.2) + zlib (3.2.3) BUNDLED WITH 4.0.16 diff --git a/gems/parslet-toml-merge/Gemfile.lock b/gems/parslet-toml-merge/Gemfile.lock index a15bdc3bd..aa7a45b47 100644 --- a/gems/parslet-toml-merge/Gemfile.lock +++ b/gems/parslet-toml-merge/Gemfile.lock @@ -122,18 +122,8 @@ GEM lint_roller (1.1.0) logger (1.7.0) mutex_m (0.3.0) - nokogiri (1.19.4-aarch64-linux-gnu) - racc (~> 1.4) - nokogiri (1.19.4-aarch64-linux-musl) - racc (~> 1.4) - nokogiri (1.19.4-arm64-darwin) - racc (~> 1.4) - nokogiri (1.19.4-x86_64-darwin) - racc (~> 1.4) nokogiri (1.19.4-x86_64-linux-gnu) racc (~> 1.4) - nokogiri (1.19.4-x86_64-linux-musl) - racc (~> 1.4) nomono (1.0.8) openssl (4.0.2) ostruct (0.6.3) @@ -155,9 +145,6 @@ GEM racc (1.8.1) rainbow (3.1.1) rake (13.4.2) - rake-compiler-dock (1.12.0) - rb_sys (0.9.127) - rake-compiler-dock (= 1.12.0) rbs (4.0.3) logger prism (>= 1.6.0) @@ -311,7 +298,7 @@ GEM timecop (>= 0.7, < 1) token-resolver (2.0.4) parslet (~> 2.0) - version_gem (~> 1.1, >= 1.1.13) + version_gem (~> 1.1, >= 1.1.14) toml (0.3.0) parslet (>= 1.8.0, < 3.0.0) toml-merge (7.1.0) @@ -321,10 +308,10 @@ GEM tree_haver (7.1.0) citrus (~> 3.0) parslet (~> 2.0) - tree_sitter_language_pack (>= 1.9.0.pre.rc.40, < 2.0) + tree_sitter_language_pack (>= 1.13.2, < 2.0) version_gem (~> 1.1, >= 1.1.9) -tree_sitter_language_pack (1.13.3-x86_64-linux) - sorbet-runtime (~> 0.5) + tree_sitter_language_pack (1.13.3-x86_64-linux) + sorbet-runtime (~> 0.5) tsort (0.2.0) turbo_tests2 (3.2.0) parallel_tests (>= 3.3.0, < 6) @@ -360,13 +347,8 @@ tree_sitter_language_pack (1.13.3-x86_64-linux) zlib (3.2.3) PLATFORMS - aarch64-linux - aarch64-linux-gnu - aarch64-linux-musl - arm64-darwin - x86_64-darwin + x86_64-linux x86_64-linux-gnu - x86_64-linux-musl DEPENDENCIES addressable (>= 2.8, < 3) @@ -454,12 +436,7 @@ CHECKSUMS lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 - nokogiri (1.19.4-aarch64-linux-gnu) sha256=1269fb644a6de405057a53dd5c762b1209b43ca7424f839454d3dbc677c31a8f - nokogiri (1.19.4-aarch64-linux-musl) sha256=35c65b9ce72b3bb03207bdbe7067915019dc18c1b9b59139684bd6690fdd01af - nokogiri (1.19.4-arm64-darwin) sha256=a46db9853286e6597b36ebc6953817d15acf3a299583eb3f89fdc6f91dd63527 - nokogiri (1.19.4-x86_64-darwin) sha256=7fd17057d3e1f00e9954a74b3cd76595d3d4a5ef233b7ed9599047c204f70551 nokogiri (1.19.4-x86_64-linux-gnu) sha256=379fae440b28915e3f19d752ce2dcf8465ed2b2fbefd2a7ca0dd497bc981a06a - nokogiri (1.19.4-x86_64-linux-musl) sha256=17dfb7c1fa194ae02fbf7c51a7afc8d278045ab3fdacfd86f91d02d7b274470b nomono (1.0.8) sha256=bf4b9b426cbf216ab17b70db474f691b8ae1f1e29de8db4b0ecd405e6e7e1c80 openssl (4.0.2) sha256=1037ad2868ae58df9ad917891c0c0f9815a1172f6846d4bcdd508e4c2ee747c2 ostruct (0.6.3) sha256=95a2ed4a4bd1d190784e666b47b2d3f078e4a9efda2fccf18f84ddc6538ed912 @@ -476,8 +453,6 @@ CHECKSUMS racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 - rake-compiler-dock (1.12.0) sha256=f13205c2738f3d2053afcd03491a9e4541b22a59a0bfc53fc8bc883bd8188023 - rb_sys (0.9.127) sha256=e9f90df3bb0577472d26d96127d5b5774b98f44de881e7d36aeefd28d6337847 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 @@ -533,25 +508,21 @@ CHECKSUMS toml (0.3.0) sha256=0a91d0f76a9036e84e44f95693b12f58d358c1df3ac8e3b5271f2056ecc6e4b9 toml-merge (7.1.0) tree_haver (7.1.0) - tree_sitter_language_pack (1.13.2) - tree_sitter_language_pack (1.13.2-aarch64-linux) - tree_sitter_language_pack (1.13.2-arm64-darwin) - tree_sitter_language_pack (1.13.2-x86_64-darwin) - tree_sitter_language_pack (1.13.2-x86_64-linux) - tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f - turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 - unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 - unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f - version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 - yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 - yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 - yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 - yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd - yard-relative_markdown_links (0.6.0) sha256=3e5ffa85cbad9bac70bee5421774b190fb25d3bdf489323a5b3534f647d1a70e - yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a - yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 - zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 - zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 + tree_sitter_language_pack (1.13.3-x86_64-linux) + tsort (0.2.0) + turbo_tests2 (3.2.0) + unicode-display_width (3.2.0) + unicode-emoji (4.2.0) + version_gem (1.1.14) + yaml-converter (0.2.3) + yard (0.9.45) + yard-fence (0.9.6) + yard-junk (0.1.0) + yard-relative_markdown_links (0.6.0) + yard-timekeeper (0.2.4) + yard-yaml (0.2.3) + zeitwerk (2.8.2) + zlib (3.2.3) BUNDLED WITH 4.0.16 diff --git a/gems/plain-merge/Gemfile.lock b/gems/plain-merge/Gemfile.lock index f29536c12..3ed635795 100644 --- a/gems/plain-merge/Gemfile.lock +++ b/gems/plain-merge/Gemfile.lock @@ -6,41 +6,6 @@ PATH tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) -PATH - remote: /home/pboling/src/my/kettle-dev/kettle-drift - specs: - kettle-drift (1.0.5) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/kettle-dev/kettle-soup-cover - specs: - kettle-soup-cover (3.0.3) - kettle-wash (~> 0.1, >= 0.1.0) - simplecov (>= 1.0) - simplecov-cobertura (>= 4.0) - simplecov-console (~> 0.9, >= 0.9.5) - simplecov-rcov (~> 0.3, >= 0.3.7) - simplecov_lcov_formatter (~> 0.9, >= 0.9.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge - specs: - ast-merge (7.1.0) - benchmark - token-resolver (~> 2.0, >= 2.0.4) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver - specs: - tree_haver (7.1.0) - citrus (~> 3.0) - parslet (~> 2.0) - tree_sitter_language_pack (>= 1.13.2, < 2.0) - version_gem (~> 1.1, >= 1.1.9) - GEM remote: https://gem.coop/ specs: @@ -52,6 +17,11 @@ GEM rake (>= 10) thor (>= 0.14) ast (2.4.3) + ast-merge (7.1.0) + benchmark + token-resolver (~> 2.0, >= 2.0.4) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) backports (3.25.3) benchmark (0.5.0) bigdecimal (4.1.2) @@ -68,6 +38,7 @@ GEM delegate (0.6.1) diff-lcs (1.6.2) diffy (3.4.4) + docile (1.4.1) dry-configurable (1.4.0) dry-core (~> 1.0) zeitwerk (~> 2.6) @@ -123,6 +94,15 @@ GEM kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) kettle-rb (0.1.4) + kettle-soup-cover (1.1.3) + simplecov (~> 0.22) + simplecov-cobertura (~> 3.0) + simplecov-console (~> 0.9, >= 0.9.3) + simplecov-html (~> 0.13, >= 0.13.1) + simplecov-lcov (~> 0.8) + simplecov-rcov (~> 0.3, >= 0.3.7) + simplecov_json_formatter (~> 0.1, >= 0.1.4) + version_gem (~> 1.1, >= 1.1.9) kettle-test (2.0.11) appraisal2 (~> 3.0, >= 3.0.6) backports (~> 3.0) @@ -134,8 +114,6 @@ GEM silent_stream (~> 1.0, >= 1.0.12) timecop-rspec (~> 1.0, >= 1.0.3) turbo_tests2 (~> 3.1, >= 3.1.12) - kettle-wash (0.1.0) - version_gem (~> 1.1, >= 1.1.14) kramdown (2.5.2) rexml (>= 3.4.4) kramdown-parser-gfm (1.1.0) @@ -282,18 +260,22 @@ GEM silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) - simplecov (1.0.2) - simplecov-cobertura (4.0.0) + simplecov (0.22.0) + docile (~> 1.1) + simplecov-html (~> 0.11) + simplecov_json_formatter (~> 0.1) + simplecov-cobertura (3.2.0) rexml - simplecov (~> 1.0) + simplecov (~> 0.19) simplecov-console (0.9.5) ansi simplecov terminal-table + simplecov-html (0.13.2) + simplecov-lcov (0.9.0) simplecov-rcov (0.3.7) simplecov (>= 0.4.1) - simplecov_lcov_formatter (0.9.0) - simplecov (>= 0.18) + simplecov_json_formatter (0.1.4) sorbet-runtime (0.6.13347) standard (1.56.0) language_server-protocol (~> 3.17.0.2) @@ -327,6 +309,11 @@ GEM token-resolver (2.0.4) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.13) + tree_haver (7.1.0) + citrus (~> 3.0) + parslet (~> 2.0) + tree_sitter_language_pack (>= 1.13.2, < 2.0) + version_gem (~> 1.1, >= 1.1.9) tree_sitter_language_pack (1.13.3-aarch64-linux) sorbet-runtime (~> 0.5) tree_sitter_language_pack (1.13.3-arm64-darwin) @@ -381,7 +368,6 @@ PLATFORMS DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) - ast-merge! benchmark (~> 0.5, >= 0.5.0) bundler-audit (~> 0.9.3) debug (>= 1.1) @@ -390,8 +376,7 @@ DEPENDENCIES gitmoji-regex (~> 2.0, >= 2.0.0) irb (~> 1.17) kettle-dev (~> 2.0, >= 2.2.25) - kettle-drift! - kettle-soup-cover! + kettle-soup-cover (~> 1.0, >= 1.1.3) kettle-test (~> 2.0, >= 2.0.9) kramdown (~> 2.5, >= 2.5.1) kramdown-parser-gfm (~> 1.1) @@ -412,7 +397,6 @@ DEPENDENCIES standard (>= 1.50) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) - tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) yaml-converter (~> 0.1) yard (~> 0.9, >= 0.9.44) @@ -431,7 +415,6 @@ CHECKSUMS backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd - bundler (4.0.16) sha256=d6ca5dd440c24f9abce9844cf44cc8e18c6a553de65a47efb4544137af92c47d bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 @@ -441,6 +424,7 @@ CHECKSUMS delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 + docile (1.4.1) sha256=96159be799bfa73cdb721b840e9802126e4e03dfc26863db73647204c727f21e dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -458,11 +442,9 @@ CHECKSUMS irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 kettle-dev (2.3.7) sha256=eb370113cd030d03cbe2d33b31c99858951017e5ad21a17e9ed89dc3770028ee - kettle-drift (1.0.5) kettle-rb (0.1.4) sha256=9cef7ce4f7021666b7222292f29051e51eaf042e8a5db11f3f4dd72f74243fc1 - kettle-soup-cover (3.0.3) + kettle-soup-cover (1.1.3) sha256=a373827da22a7131d093afd32945e5b7d7a10a01ebfdded8fd2cb8230d69c8ad kettle-test (2.0.11) sha256=c710c90f7ab79d51f9452f0c09f5f90657e7a893f63583855c164d0b1b107ab2 - kettle-wash (0.1.0) sha256=5c04b3900d0957339e7c7d9997bbd804599b68bde002e6f47f4e28a0eea22ea7 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 @@ -523,11 +505,13 @@ CHECKSUMS ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 - simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 - simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea + simplecov (0.22.0) sha256=fe2622c7834ff23b98066bb0a854284b2729a569ac659f82621fc22ef36213a5 + simplecov-cobertura (3.2.0) sha256=70d702658677fcb20e5aceb6915ccf8bc62ff2ccd38b62b3ad5c9db5c0888740 simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 + simplecov-html (0.13.2) sha256=bd0b8e54e7c2d7685927e8d6286466359b6f16b18cb0df47b508e8d73c777246 + simplecov-lcov (0.9.0) sha256=7a77a31e200a595ed4b0249493056efd0c920601f53d2ef135ca34ee796346cd simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc - simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed + simplecov_json_formatter (0.1.4) sha256=529418fbe8de1713ac2b2d612aa3daa56d316975d307244399fa4838c601b428 sorbet-runtime (0.6.13347) sha256=54e7221d9f4b63f58aec79f3043752a9ba7810347c6ae0d903531591cc2d5f01 standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b diff --git a/gems/prism-merge/Gemfile.lock b/gems/prism-merge/Gemfile.lock index 621913097..043e8675c 100644 --- a/gems/prism-merge/Gemfile.lock +++ b/gems/prism-merge/Gemfile.lock @@ -124,8 +124,6 @@ GEM mutex_m (0.3.0) nokogiri (1.19.4-x86_64-linux-gnu) racc (~> 1.4) - nokogiri (1.19.4-x86_64-linux-musl) - racc (~> 1.4) nomono (1.0.8) openssl (4.0.2) ostruct (0.6.3) @@ -147,9 +145,6 @@ GEM racc (1.8.1) rainbow (3.1.1) rake (13.4.2) - rake-compiler-dock (1.12.0) - rb_sys (0.9.127) - rake-compiler-dock (= 1.12.0) rbs (4.0.3) logger prism (>= 1.6.0) @@ -307,14 +302,14 @@ GEM timecop (>= 0.7, < 1) token-resolver (2.0.4) parslet (~> 2.0) - version_gem (~> 1.1, >= 1.1.13) + version_gem (~> 1.1, >= 1.1.14) tree_haver (7.1.0) citrus (~> 3.0) parslet (~> 2.0) - tree_sitter_language_pack (>= 1.9.0.pre.rc.40, < 2.0) + tree_sitter_language_pack (>= 1.13.2, < 2.0) version_gem (~> 1.1, >= 1.1.9) -tree_sitter_language_pack (1.13.3-x86_64-linux) - sorbet-runtime (~> 0.5) + tree_sitter_language_pack (1.13.3-x86_64-linux) + sorbet-runtime (~> 0.5) tsort (0.2.0) turbo_tests2 (3.2.0) parallel_tests (>= 3.3.0, < 6) @@ -352,7 +347,6 @@ tree_sitter_language_pack (1.13.3-x86_64-linux) PLATFORMS x86_64-linux x86_64-linux-gnu - x86_64-linux-musl DEPENDENCIES addressable (>= 2.8, < 3) @@ -441,7 +435,6 @@ CHECKSUMS logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-x86_64-linux-gnu) sha256=379fae440b28915e3f19d752ce2dcf8465ed2b2fbefd2a7ca0dd497bc981a06a - nokogiri (1.19.4-x86_64-linux-musl) sha256=17dfb7c1fa194ae02fbf7c51a7afc8d278045ab3fdacfd86f91d02d7b274470b nomono (1.0.8) sha256=bf4b9b426cbf216ab17b70db474f691b8ae1f1e29de8db4b0ecd405e6e7e1c80 openssl (4.0.2) sha256=1037ad2868ae58df9ad917891c0c0f9815a1172f6846d4bcdd508e4c2ee747c2 ostruct (0.6.3) sha256=95a2ed4a4bd1d190784e666b47b2d3f078e4a9efda2fccf18f84ddc6538ed912 @@ -458,8 +451,6 @@ CHECKSUMS racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 - rake-compiler-dock (1.12.0) sha256=f13205c2738f3d2053afcd03491a9e4541b22a59a0bfc53fc8bc883bd8188023 - rb_sys (0.9.127) sha256=e9f90df3bb0577472d26d96127d5b5774b98f44de881e7d36aeefd28d6337847 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 @@ -514,22 +505,21 @@ CHECKSUMS timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.4) sha256=33b926958f504525bba3ed511ab66fbcbf8ef30390815e931436b30f27ffcad0 tree_haver (7.1.0) - tree_sitter_language_pack (1.13.2) - tree_sitter_language_pack (1.13.2-x86_64-linux) - tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f - turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 - unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 - unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f - version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 - yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 - yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 - yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 - yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd - yard-relative_markdown_links (0.6.0) sha256=3e5ffa85cbad9bac70bee5421774b190fb25d3bdf489323a5b3534f647d1a70e - yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a - yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 - zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 - zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 + tree_sitter_language_pack (1.13.3-x86_64-linux) + tsort (0.2.0) + turbo_tests2 (3.2.0) + unicode-display_width (3.2.0) + unicode-emoji (4.2.0) + version_gem (1.1.14) + yaml-converter (0.2.3) + yard (0.9.45) + yard-fence (0.9.6) + yard-junk (0.1.0) + yard-relative_markdown_links (0.6.0) + yard-timekeeper (0.2.4) + yard-yaml (0.2.3) + zeitwerk (2.8.2) + zlib (3.2.3) BUNDLED WITH 4.0.16 diff --git a/gems/psych-merge/Gemfile.lock b/gems/psych-merge/Gemfile.lock index a61a6083b..a096211db 100644 --- a/gems/psych-merge/Gemfile.lock +++ b/gems/psych-merge/Gemfile.lock @@ -7,49 +7,6 @@ PATH version_gem (~> 1.1, >= 1.1.9) yaml-merge (= 7.1.0) -PATH - remote: /home/pboling/src/my/kettle-dev/kettle-drift - specs: - kettle-drift (1.0.5) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/kettle-dev/kettle-soup-cover - specs: - kettle-soup-cover (3.0.3) - kettle-wash (~> 0.1, >= 0.1.0) - simplecov (>= 1.0) - simplecov-cobertura (>= 4.0) - simplecov-console (~> 0.9, >= 0.9.5) - simplecov-rcov (~> 0.3, >= 0.3.7) - simplecov_lcov_formatter (~> 0.9, >= 0.9.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge - specs: - ast-merge (7.1.0) - benchmark - token-resolver (~> 2.0, >= 2.0.4) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver - specs: - tree_haver (7.1.0) - citrus (~> 3.0) - parslet (~> 2.0) - tree_sitter_language_pack (>= 1.13.2, < 2.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge - specs: - yaml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - GEM remote: https://gem.coop/ specs: @@ -61,6 +18,11 @@ GEM rake (>= 10) thor (>= 0.14) ast (2.4.3) + ast-merge (7.1.0) + benchmark + token-resolver (~> 2.0, >= 2.0.4) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) backports (3.25.3) benchmark (0.5.0) bigdecimal (4.1.2) @@ -77,6 +39,7 @@ GEM delegate (0.6.1) diff-lcs (1.6.2) diffy (3.4.4) + docile (1.4.1) dry-configurable (1.4.0) dry-core (~> 1.0) zeitwerk (~> 2.6) @@ -132,6 +95,15 @@ GEM kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) kettle-rb (0.1.4) + kettle-soup-cover (1.1.3) + simplecov (~> 0.22) + simplecov-cobertura (~> 3.0) + simplecov-console (~> 0.9, >= 0.9.3) + simplecov-html (~> 0.13, >= 0.13.1) + simplecov-lcov (~> 0.8) + simplecov-rcov (~> 0.3, >= 0.3.7) + simplecov_json_formatter (~> 0.1, >= 0.1.4) + version_gem (~> 1.1, >= 1.1.9) kettle-test (2.0.11) appraisal2 (~> 3.0, >= 3.0.6) backports (~> 3.0) @@ -143,8 +115,6 @@ GEM silent_stream (~> 1.0, >= 1.0.12) timecop-rspec (~> 1.0, >= 1.0.3) turbo_tests2 (~> 3.1, >= 3.1.12) - kettle-wash (0.1.0) - version_gem (~> 1.1, >= 1.1.14) kramdown (2.5.2) rexml (>= 3.4.4) kramdown-parser-gfm (1.1.0) @@ -291,18 +261,22 @@ GEM silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) - simplecov (1.0.2) - simplecov-cobertura (4.0.0) + simplecov (0.22.0) + docile (~> 1.1) + simplecov-html (~> 0.11) + simplecov_json_formatter (~> 0.1) + simplecov-cobertura (3.2.0) rexml - simplecov (~> 1.0) + simplecov (~> 0.19) simplecov-console (0.9.5) ansi simplecov terminal-table + simplecov-html (0.13.2) + simplecov-lcov (0.9.0) simplecov-rcov (0.3.7) simplecov (>= 0.4.1) - simplecov_lcov_formatter (0.9.0) - simplecov (>= 0.18) + simplecov_json_formatter (0.1.4) sorbet-runtime (0.6.13347) standard (1.56.0) language_server-protocol (~> 3.17.0.2) @@ -336,6 +310,11 @@ GEM token-resolver (2.0.4) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.13) + tree_haver (7.1.0) + citrus (~> 3.0) + parslet (~> 2.0) + tree_sitter_language_pack (>= 1.13.2, < 2.0) + version_gem (~> 1.1, >= 1.1.9) tree_sitter_language_pack (1.13.3-aarch64-linux) sorbet-runtime (~> 0.5) tree_sitter_language_pack (1.13.3-arm64-darwin) @@ -358,6 +337,10 @@ GEM kramdown (>= 2.4, < 3) kramdown-parser-gfm (~> 1.1) version_gem (~> 1.1, >= 1.1.13) + yaml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) yard (0.9.45) yard-fence (0.9.6) rdoc (>= 6.11, < 8) @@ -390,7 +373,6 @@ PLATFORMS DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) - ast-merge! benchmark (~> 0.5, >= 0.5.0) bundler-audit (~> 0.9.3) debug (>= 1.1) @@ -399,8 +381,7 @@ DEPENDENCIES gitmoji-regex (~> 2.0, >= 2.0.0) irb (~> 1.17) kettle-dev (~> 2.0, >= 2.2.25) - kettle-drift! - kettle-soup-cover! + kettle-soup-cover (~> 1.0, >= 1.1.3) kettle-test (~> 2.0, >= 2.0.9) kramdown (~> 2.5, >= 2.5.1) kramdown-parser-gfm (~> 1.1) @@ -421,10 +402,8 @@ DEPENDENCIES standard (>= 1.50) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) - tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) yaml-converter (~> 0.1) - yaml-merge! yard (~> 0.9, >= 0.9.44) yard-fence (~> 0.9, >= 0.9.1) yard-junk (~> 0.1, >= 0.1.0) @@ -441,7 +420,6 @@ CHECKSUMS backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd - bundler (4.0.16) sha256=d6ca5dd440c24f9abce9844cf44cc8e18c6a553de65a47efb4544137af92c47d bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 @@ -451,6 +429,7 @@ CHECKSUMS delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 + docile (1.4.1) sha256=96159be799bfa73cdb721b840e9802126e4e03dfc26863db73647204c727f21e dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -468,11 +447,9 @@ CHECKSUMS irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 kettle-dev (2.3.7) sha256=eb370113cd030d03cbe2d33b31c99858951017e5ad21a17e9ed89dc3770028ee - kettle-drift (1.0.5) kettle-rb (0.1.4) sha256=9cef7ce4f7021666b7222292f29051e51eaf042e8a5db11f3f4dd72f74243fc1 - kettle-soup-cover (3.0.3) + kettle-soup-cover (1.1.3) sha256=a373827da22a7131d093afd32945e5b7d7a10a01ebfdded8fd2cb8230d69c8ad kettle-test (2.0.11) sha256=c710c90f7ab79d51f9452f0c09f5f90657e7a893f63583855c164d0b1b107ab2 - kettle-wash (0.1.0) sha256=5c04b3900d0957339e7c7d9997bbd804599b68bde002e6f47f4e28a0eea22ea7 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 @@ -533,11 +510,13 @@ CHECKSUMS ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 - simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 - simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea + simplecov (0.22.0) sha256=fe2622c7834ff23b98066bb0a854284b2729a569ac659f82621fc22ef36213a5 + simplecov-cobertura (3.2.0) sha256=70d702658677fcb20e5aceb6915ccf8bc62ff2ccd38b62b3ad5c9db5c0888740 simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 + simplecov-html (0.13.2) sha256=bd0b8e54e7c2d7685927e8d6286466359b6f16b18cb0df47b508e8d73c777246 + simplecov-lcov (0.9.0) sha256=7a77a31e200a595ed4b0249493056efd0c920601f53d2ef135ca34ee796346cd simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc - simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed + simplecov_json_formatter (0.1.4) sha256=529418fbe8de1713ac2b2d612aa3daa56d316975d307244399fa4838c601b428 sorbet-runtime (0.6.13347) sha256=54e7221d9f4b63f58aec79f3043752a9ba7810347c6ae0d903531591cc2d5f01 standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b diff --git a/gems/rbs-merge/Gemfile.lock b/gems/rbs-merge/Gemfile.lock index cbc9f3e77..0e8fa65d7 100644 --- a/gems/rbs-merge/Gemfile.lock +++ b/gems/rbs-merge/Gemfile.lock @@ -7,41 +7,6 @@ PATH tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.14) -PATH - remote: /home/pboling/src/my/kettle-dev/kettle-drift - specs: - kettle-drift (1.0.5) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/kettle-dev/kettle-soup-cover - specs: - kettle-soup-cover (3.0.3) - kettle-wash (~> 0.1, >= 0.1.0) - simplecov (>= 1.0) - simplecov-cobertura (>= 4.0) - simplecov-console (~> 0.9, >= 0.9.5) - simplecov-rcov (~> 0.3, >= 0.3.7) - simplecov_lcov_formatter (~> 0.9, >= 0.9.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge - specs: - ast-merge (7.1.0) - benchmark - token-resolver (~> 2.0, >= 2.0.4) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver - specs: - tree_haver (7.1.0) - citrus (~> 3.0) - parslet (~> 2.0) - tree_sitter_language_pack (>= 1.13.2, < 2.0) - version_gem (~> 1.1, >= 1.1.9) - GEM remote: https://gem.coop/ specs: @@ -53,6 +18,11 @@ GEM rake (>= 10) thor (>= 0.14) ast (2.4.3) + ast-merge (7.1.0) + benchmark + token-resolver (~> 2.0, >= 2.0.4) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) backports (3.25.3) benchmark (0.5.0) bigdecimal (4.1.2) @@ -69,6 +39,7 @@ GEM delegate (0.6.1) diff-lcs (1.6.2) diffy (3.4.4) + docile (1.4.1) dry-configurable (1.4.0) dry-core (~> 1.0) zeitwerk (~> 2.6) @@ -124,6 +95,15 @@ GEM kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) kettle-rb (0.1.4) + kettle-soup-cover (1.1.3) + simplecov (~> 0.22) + simplecov-cobertura (~> 3.0) + simplecov-console (~> 0.9, >= 0.9.3) + simplecov-html (~> 0.13, >= 0.13.1) + simplecov-lcov (~> 0.8) + simplecov-rcov (~> 0.3, >= 0.3.7) + simplecov_json_formatter (~> 0.1, >= 0.1.4) + version_gem (~> 1.1, >= 1.1.9) kettle-test (2.0.11) appraisal2 (~> 3.0, >= 3.0.6) backports (~> 3.0) @@ -135,8 +115,6 @@ GEM silent_stream (~> 1.0, >= 1.0.12) timecop-rspec (~> 1.0, >= 1.0.3) turbo_tests2 (~> 3.1, >= 3.1.12) - kettle-wash (0.1.0) - version_gem (~> 1.1, >= 1.1.14) kramdown (2.5.2) rexml (>= 3.4.4) kramdown-parser-gfm (1.1.0) @@ -281,18 +259,22 @@ GEM silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) - simplecov (1.0.2) - simplecov-cobertura (4.0.0) + simplecov (0.22.0) + docile (~> 1.1) + simplecov-html (~> 0.11) + simplecov_json_formatter (~> 0.1) + simplecov-cobertura (3.2.0) rexml - simplecov (~> 1.0) + simplecov (~> 0.19) simplecov-console (0.9.5) ansi simplecov terminal-table + simplecov-html (0.13.2) + simplecov-lcov (0.9.0) simplecov-rcov (0.3.7) simplecov (>= 0.4.1) - simplecov_lcov_formatter (0.9.0) - simplecov (>= 0.18) + simplecov_json_formatter (0.1.4) sorbet-runtime (0.6.13347) standard (1.56.0) language_server-protocol (~> 3.17.0.2) @@ -326,6 +308,11 @@ GEM token-resolver (2.0.4) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.13) + tree_haver (7.1.0) + citrus (~> 3.0) + parslet (~> 2.0) + tree_sitter_language_pack (>= 1.13.2, < 2.0) + version_gem (~> 1.1, >= 1.1.9) tree_sitter_language_pack (1.13.3-aarch64-linux) sorbet-runtime (~> 0.5) tree_sitter_language_pack (1.13.3-arm64-darwin) @@ -378,7 +365,6 @@ PLATFORMS DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.2, >= 3.2.0) - ast-merge! benchmark (~> 0.5, >= 0.5.0) bundler-audit (~> 0.9.3) debug (>= 1.1) @@ -387,8 +373,7 @@ DEPENDENCIES gitmoji-regex (~> 2.0, >= 2.0.4) irb (~> 1.17) kettle-dev (~> 2.3, >= 2.3.7) - kettle-drift! - kettle-soup-cover! + kettle-soup-cover (~> 1.0, >= 1.1.3) kettle-test (~> 2.0, >= 2.0.11) kramdown (~> 2.5, >= 2.5.1) kramdown-parser-gfm (~> 1.1) @@ -409,7 +394,6 @@ DEPENDENCIES standard (>= 1.50) stone_checksums (~> 1.0, >= 1.0.6, >= 1.0.3) stringio (>= 3.0) - tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) turbo_tests2 (~> 3.2, >= 3.2.0) yaml-converter (~> 0.1) @@ -429,7 +413,6 @@ CHECKSUMS backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd - bundler (4.0.16) sha256=d6ca5dd440c24f9abce9844cf44cc8e18c6a553de65a47efb4544137af92c47d bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 @@ -439,6 +422,7 @@ CHECKSUMS delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 + docile (1.4.1) sha256=96159be799bfa73cdb721b840e9802126e4e03dfc26863db73647204c727f21e dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -456,11 +440,9 @@ CHECKSUMS irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 kettle-dev (2.3.7) sha256=eb370113cd030d03cbe2d33b31c99858951017e5ad21a17e9ed89dc3770028ee - kettle-drift (1.0.5) kettle-rb (0.1.4) sha256=9cef7ce4f7021666b7222292f29051e51eaf042e8a5db11f3f4dd72f74243fc1 - kettle-soup-cover (3.0.3) + kettle-soup-cover (1.1.3) sha256=a373827da22a7131d093afd32945e5b7d7a10a01ebfdded8fd2cb8230d69c8ad kettle-test (2.0.11) sha256=c710c90f7ab79d51f9452f0c09f5f90657e7a893f63583855c164d0b1b107ab2 - kettle-wash (0.1.0) sha256=5c04b3900d0957339e7c7d9997bbd804599b68bde002e6f47f4e28a0eea22ea7 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 @@ -520,11 +502,13 @@ CHECKSUMS ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 - simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 - simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea + simplecov (0.22.0) sha256=fe2622c7834ff23b98066bb0a854284b2729a569ac659f82621fc22ef36213a5 + simplecov-cobertura (3.2.0) sha256=70d702658677fcb20e5aceb6915ccf8bc62ff2ccd38b62b3ad5c9db5c0888740 simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 + simplecov-html (0.13.2) sha256=bd0b8e54e7c2d7685927e8d6286466359b6f16b18cb0df47b508e8d73c777246 + simplecov-lcov (0.9.0) sha256=7a77a31e200a595ed4b0249493056efd0c920601f53d2ef135ca34ee796346cd simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc - simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed + simplecov_json_formatter (0.1.4) sha256=529418fbe8de1713ac2b2d612aa3daa56d316975d307244399fa4838c601b428 sorbet-runtime (0.6.13347) sha256=54e7221d9f4b63f58aec79f3043752a9ba7810347c6ae0d903531591cc2d5f01 standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b diff --git a/gems/ruby-merge/.kettle-drift.lock b/gems/ruby-merge/.kettle-drift.lock index 9be384c91..43dfedd67 100644 --- a/gems/ruby-merge/.kettle-drift.lock +++ b/gems/ruby-merge/.kettle-drift.lock @@ -1,130 +1,10 @@ { - "(direct_sibling_local ||\nENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?)": [ - { - "file": "Gemfile", - "lines": [ - 80, - 120, - 160, - 200, - 240, - 280, - 320, - 360, - 400 - ] - } - ], - ".find { |spec| spec.name == 'nomono' }\nnomono_locked = nomono_locked_spec &&": [ - { - "file": "Gemfile", - "lines": [ - 91, - 131, - 171, - 211, - 251, - 291, - 331, - 371, - 411 - ] - } - ], - "ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?)\ndirect_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV')": [ - { - "file": "Gemfile", - "lines": [ - 81, - 121, - 161, - 201, - 241, - 281, - 321, - 361, - 401 - ] - } - ], - "Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version)\nnomono_activation_requirements = [\"= #{nomono_locked_spec.version}\"] if nomono_locked": [ - { - "file": "Gemfile", - "lines": [ - 93, - 133, - 173, - 213, - 253, - 293, - 333, - 373, - 413 - ] - } - ], - "Kernel.send(:gem, 'nomono', *nomono_activation_requirements)\nrequire 'nomono/bundler'": [ - { - "file": "Gemfile", - "lines": [ - 96, - 136, - 176, - 216, - 256, - 296, - 336, - 376, - 416 - ] - } - ], - "direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV')\ndirect_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil)": [ - { - "file": "Gemfile", - "lines": [ - 82, - 122, - 162, - 202, - 242, - 282, - 322, - 362, - 402 - ] - } - ], "eval_nomono_gems(\ngems: direct_sibling_gems,": [ { "file": "Gemfile", "lines": [ 60, - 100, - 140, - 180, - 220, - 260, - 300, - 340, - 380, - 420 - ] - } - ], - "gems: direct_sibling_gems,\nprefix: 'STRUCTUREDMERGE',": [ - { - "file": "Gemfile", - "lines": [ - 101, - 141, - 181, - 221, - 261, - 301, - 341, - 381, - 421 + 100 ] } ], @@ -133,31 +13,7 @@ "file": "Gemfile", "lines": [ 43, - 87, - 127, - 167, - 207, - 247, - 287, - 327, - 367, - 407 - ] - } - ], - "if direct_sibling_dev_was_set\nENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original": [ - { - "file": "Gemfile", - "lines": [ - 110, - 150, - 190, - 230, - 270, - 310, - 350, - 390, - 430 + 87 ] } ], @@ -166,15 +22,7 @@ "file": "Gemfile", "lines": [ 35, - 79, - 119, - 159, - 199, - 239, - 279, - 319, - 359, - 399 + 79 ] } ], @@ -183,31 +31,7 @@ "file": "Gemfile", "lines": [ 69, - 109, - 149, - 189, - 229, - 269, - 309, - 349, - 389, - 429 - ] - } - ], - "nomono_activation_requirements = nomono_requirements\nnomono_lockfile = File.expand_path('Gemfile.lock', __dir__)": [ - { - "file": "Gemfile", - "lines": [ - 85, - 125, - 165, - 205, - 245, - 285, - 325, - 365, - 405 + 109 ] } ], @@ -216,15 +40,7 @@ "file": "Gemfile", "lines": [ 48, - 92, - 132, - 172, - 212, - 252, - 292, - 332, - 372, - 412 + 92 ] } ], @@ -233,104 +49,7 @@ "file": "Gemfile", "lines": [ 44, - 88, - 128, - 168, - 208, - 248, - 288, - 328, - 368, - 408 - ] - } - ], - "nomono_lockfile = File.expand_path('Gemfile.lock', __dir__)\nif File.file?(nomono_lockfile)": [ - { - "file": "Gemfile", - "lines": [ - 86, - 126, - 166, - 206, - 246, - 286, - 326, - 366, - 406 - ] - } - ], - "path_env: 'STRUCTUREDMERGE_DEV',\nroot: %w[src my structuredmerge]": [ - { - "file": "Gemfile", - "lines": [ - 103, - 143, - 183, - 223, - 263, - 303, - 343, - 383, - 423 - ] - } - ], - "prefix: 'STRUCTUREDMERGE',\npath_env: 'STRUCTUREDMERGE_DEV',": [ - { - "file": "Gemfile", - "lines": [ - 102, - 142, - 182, - 222, - 262, - 302, - 342, - 382, - 422 - ] - } - ], - "require 'nomono/bundler'\nENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local": [ - { - "file": "Gemfile", - "lines": [ - 97, - 137, - 177, - 217, - 257, - 297, - 337, - 377, - 417 - ] - } - ], - "rescue LoadError\nwarn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.'": [ - { - "file": "Gemfile", - "lines": [ - 106, - 146, - 186, - 226, - 266, - 306, - 346, - 386, - 426 - ] - } - ], - "vendored_gems_env: 'VENDORED_GEMS',\nvendor_gem_dir_env: 'VENDOR_GEM_DIR',": [ - { - "file": "gemfiles/modular/templating_local.gemfile", - "lines": [ - 58, - 69 + 88 ] } ] diff --git a/gems/ruby-merge/.rubocop_gradual.lock b/gems/ruby-merge/.rubocop_gradual.lock index 47bd4d0ae..c2880230e 100644 --- a/gems/ruby-merge/.rubocop_gradual.lock +++ b/gems/ruby-merge/.rubocop_gradual.lock @@ -15,13 +15,20 @@ [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] ], + "gemfiles/modular/cgi/r4/v0.5.gemfile:367169322": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/cgi/vHEAD.gemfile:2729540777": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], "gemfiles/modular/erb/r2/v3.0.gemfile:1688285565": [ [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] ], - "gemfiles/modular/erb/r3/v5.0.gemfile:2150258305": [ + "gemfiles/modular/erb/r3/v5.0.gemfile:2394062339": [ [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] ], - "gemfiles/modular/erb/r4/v5.0.gemfile:2150258305": [ + "gemfiles/modular/erb/r4/v5.0.gemfile:2394062339": [ [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] ], "gemfiles/modular/erb/vHEAD.gemfile:981929959": [ @@ -57,6 +64,13 @@ [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] ], + "gemfiles/modular/webrick/r4/v1.9.gemfile:3092661193": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/webrick/vHEAD.gemfile:3867684682": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], "gemfiles/modular/x_std_libs.gemfile:2324400122": [ [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] ], @@ -66,10 +80,10 @@ "gemfiles/modular/x_std_libs/r3/libs.gemfile:4030570297": [ [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] ], - "gemfiles/modular/x_std_libs/r4/libs.gemfile:909736663": [ + "gemfiles/modular/x_std_libs/r4/libs.gemfile:732451732": [ [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] ], - "gemfiles/modular/x_std_libs/vHEAD.gemfile:907917303": [ + "gemfiles/modular/x_std_libs/vHEAD.gemfile:2390363993": [ [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] ], diff --git a/gems/ruby-merge/.structuredmerge/kettle-jem.yml b/gems/ruby-merge/.structuredmerge/kettle-jem.yml index e367d7566..70b995eee 100644 --- a/gems/ruby-merge/.structuredmerge/kettle-jem.yml +++ b/gems/ruby-merge/.structuredmerge/kettle-jem.yml @@ -246,6 +246,59 @@ templates: - Gemfile - certs/pboling.pem - tmp/.gitignore + - gemfiles/modular/benchmark/r4/v0.5.gemfile + - gemfiles/modular/benchmark/vHEAD.gemfile + - gemfiles/modular/cgi/r4/v0.5.gemfile + - gemfiles/modular/cgi/vHEAD.gemfile + - gemfiles/modular/coverage.gemfile + - gemfiles/modular/coverage_local.gemfile + - gemfiles/modular/debug.gemfile + - gemfiles/modular/documentation.gemfile + - gemfiles/modular/documentation_local.gemfile + - gemfiles/modular/erb/r2.3/default.gemfile + - gemfiles/modular/erb/r2.6/v2.2.gemfile + - gemfiles/modular/erb/r2/v3.0.gemfile + - gemfiles/modular/erb/r3.1/v4.0.gemfile + - gemfiles/modular/erb/r3/v5.0.gemfile + - gemfiles/modular/erb/r4/v5.0.gemfile + - gemfiles/modular/erb/vHEAD.gemfile + - gemfiles/modular/json/truffleruby_22_3.gemfile + - gemfiles/modular/json/truffleruby_23_0.gemfile + - gemfiles/modular/json/truffleruby_23_1.gemfile + - gemfiles/modular/mutex_m/r2.4/v0.1.gemfile + - gemfiles/modular/mutex_m/r2/v0.3.gemfile + - gemfiles/modular/mutex_m/r3/v0.3.gemfile + - gemfiles/modular/mutex_m/r4/v0.3.gemfile + - gemfiles/modular/mutex_m/vHEAD.gemfile + - gemfiles/modular/optional.gemfile + - gemfiles/modular/recording/r2.3/recording.gemfile + - gemfiles/modular/recording/r2.4/recording.gemfile + - gemfiles/modular/recording/r2.5/recording.gemfile + - gemfiles/modular/recording/r3/recording.gemfile + - gemfiles/modular/recording/r4/recording.gemfile + - gemfiles/modular/recording/vHEAD.gemfile + - gemfiles/modular/rspec.gemfile + - gemfiles/modular/runtime_heads.gemfile + - gemfiles/modular/stringio/r2.4/v0.0.2.gemfile + - gemfiles/modular/stringio/r2/v3.0.gemfile + - gemfiles/modular/stringio/r3/v3.0.gemfile + - gemfiles/modular/stringio/r4/v3.0.gemfile + - gemfiles/modular/stringio/vHEAD.gemfile + - gemfiles/modular/style.gemfile + - gemfiles/modular/style_local.gemfile + - gemfiles/modular/templating.gemfile + - gemfiles/modular/templating_local.gemfile + - gemfiles/modular/webrick/r4/v1.9.gemfile + - gemfiles/modular/webrick/vHEAD.gemfile + - gemfiles/modular/x_std_libs.gemfile + - gemfiles/modular/x_std_libs/r2.3/libs.gemfile + - gemfiles/modular/x_std_libs/r2.4/libs.gemfile + - gemfiles/modular/x_std_libs/r2.6/libs.gemfile + - gemfiles/modular/x_std_libs/r2/libs.gemfile + - gemfiles/modular/x_std_libs/r3.1/libs.gemfile + - gemfiles/modular/x_std_libs/r3/libs.gemfile + - gemfiles/modular/x_std_libs/r4/libs.gemfile + - gemfiles/modular/x_std_libs/vHEAD.gemfile - source: lib/gem/version.rb target: lib/ruby/merge/version.rb - source: sig/gem.rbs diff --git a/gems/ruby-merge/Gemfile b/gems/ruby-merge/Gemfile index 0049d8146..fce98c88b 100644 --- a/gems/ruby-merge/Gemfile +++ b/gems/ruby-merge/Gemfile @@ -72,6 +72,46 @@ if direct_sibling_gems.any? && end end +if direct_sibling_gems.any? && + (direct_sibling_local || + ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) + direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') + direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) + begin + nomono_activation_requirements = nomono_requirements + nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) + if File.file?(nomono_lockfile) + nomono_locked_spec = Bundler::LockfileParser + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } + nomono_locked = nomono_locked_spec && + Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked + end + Kernel.send(:gem, 'nomono', *nomono_activation_requirements) + require 'nomono/bundler' + ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local + + eval_nomono_gems( + gems: direct_sibling_gems, + prefix: 'STRUCTUREDMERGE', + path_env: 'STRUCTUREDMERGE_DEV', + root: %w[src my structuredmerge] + ) + rescue LoadError + warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' + ensure + if direct_sibling_templating && !direct_sibling_local + if direct_sibling_dev_was_set + ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original + else + ENV.delete('STRUCTUREDMERGE_DEV') + end + end + end +end + # Use released TSLP with the Ruby ABI platform-gem fix. gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' diff --git a/gems/ruby-merge/Gemfile.lock b/gems/ruby-merge/Gemfile.lock index 4aa6f07be..7c04e64ea 100644 --- a/gems/ruby-merge/Gemfile.lock +++ b/gems/ruby-merge/Gemfile.lock @@ -6,23 +6,6 @@ PATH tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) -PATH - remote: /home/pboling/src/my/kettle-dev/kettle-drift - specs: - kettle-drift (1.0.5) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/kettle-dev/kettle-soup-cover - specs: - kettle-soup-cover (3.0.3) - kettle-wash (~> 0.1, >= 0.1.0) - simplecov (>= 1.0) - simplecov-cobertura (>= 4.0) - simplecov-console (~> 0.9, >= 0.9.5) - simplecov-rcov (~> 0.3, >= 0.3.7) - simplecov_lcov_formatter (~> 0.9, >= 0.9.0) - PATH remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge specs: @@ -51,6 +34,10 @@ GEM bundler (>= 1.17.3) rake (>= 10) thor (>= 0.14) + appraisal2-rubocop (1.0.0) + appraisal2 (>= 3.1.4) + rubocop (>= 1.0) + version_gem (~> 1.1, >= 1.1.14) ast (2.4.3) backports (3.25.3) benchmark (0.5.0) @@ -58,6 +45,7 @@ GEM bundler-audit (0.9.3) bundler (>= 1.2.0) thor (~> 1.0) + cgi (0.5.2) citrus (3.0.2) cmdparse (3.0.7) concurrent-ruby (1.3.8) @@ -98,7 +86,7 @@ GEM dry-logic (~> 1.4) zeitwerk (~> 2.6) emoji_regex (15.0.0) - erb (6.0.5) + erb (6.0.6) gem_bench (2.0.5) bundler (>= 1.14) version_gem (~> 1.1, >= 1.1.4) @@ -123,6 +111,13 @@ GEM kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) kettle-rb (0.1.4) + kettle-soup-cover (3.0.4) + kettle-wash (~> 0.1, >= 0.1.0) + simplecov (>= 1.0) + simplecov-cobertura (>= 4.0) + simplecov-console (~> 0.9, >= 0.9.5) + simplecov-rcov (~> 0.3, >= 0.3.7) + simplecov_lcov_formatter (~> 0.9, >= 0.9.0) kettle-test (2.0.11) appraisal2 (~> 3.0, >= 3.0.6) backports (~> 3.0) @@ -134,7 +129,7 @@ GEM silent_stream (~> 1.0, >= 1.0.12) timecop-rspec (~> 1.0, >= 1.0.3) turbo_tests2 (~> 3.1, >= 3.1.12) - kettle-wash (0.1.0) + kettle-wash (0.1.1) version_gem (~> 1.1, >= 1.1.14) kramdown (2.5.2) rexml (>= 3.4.4) @@ -150,13 +145,11 @@ GEM racc (~> 1.4) nokogiri (1.19.4-arm64-darwin) racc (~> 1.4) - nokogiri (1.19.4-x86_64-darwin) - racc (~> 1.4) nokogiri (1.19.4-x86_64-linux-gnu) racc (~> 1.4) nokogiri (1.19.4-x86_64-linux-musl) racc (~> 1.4) - nomono (1.0.8) + nomono (1.0.9) openssl (4.0.2) ostruct (0.6.3) parallel (1.28.0) @@ -232,6 +225,14 @@ GEM rubocop-ast (1.50.0) parser (>= 3.3.7.2) prism (~> 1.7) + rubocop-capybara (2.23.0) + lint_roller (~> 1.1) + rubocop (~> 1.81) + rubocop-env (0.1.0) + rubocop + rubocop-factory_bot (2.28.0) + lint_roller (~> 1.1) + rubocop (~> 1.72, >= 1.72.1) rubocop-gradual (0.4.0) benchmark diff-lcs (>= 1.2.0, < 2.0) @@ -239,13 +240,26 @@ GEM parallel (~> 1.10) rainbow (>= 2.2.2, < 4.0) rubocop (~> 1.0) - rubocop-lts (24.1.0) - rubocop-ruby3_2 (>= 3.0.0, < 4) - standard-rubocop-lts (>= 2.0.2, < 3) - version_gem (>= 1.1.2, < 3) + rubocop-lts (24.2.2) + rubocop-ruby3_2 (~> 3.0, >= 3.0.1) + standard-rubocop-lts (~> 2.0, >= 2.0.3) + version_gem (~> 1.1, >= 1.1.13) + rubocop-lts-rspec (1.0.5) + rubocop (~> 1.84, >= 1.84.2) + rubocop-env (~> 0.1, >= 0.1.0) + rubocop-factory_bot (~> 2.28, >= 2.28.0) + rubocop-rspec (~> 3.9, >= 3.9.0) + rubocop-rspec-extra (~> 0.3, >= 0.3.0) + standard (~> 1.54, >= 1.54.0) + standard-rspec (~> 0.5, >= 0.5.0) + version_gem (~> 1.1, >= 1.1.13) rubocop-md (2.0.4) lint_roller (~> 1.1) rubocop (>= 1.72.1) + rubocop-minitest (0.40.0) + lint_roller (~> 1.1) + rubocop (>= 1.75.0, < 2.0) + rubocop-ast (>= 1.38.0, < 2.0) rubocop-on-rbs (2.0.0) lint_roller (~> 1.1) rbs (~> 4.0) @@ -265,6 +279,13 @@ GEM lint_roller (~> 1.1) regexp_parser (>= 2.0) rubocop (~> 1.86, >= 1.86.2) + rubocop-rspec-extra (0.3.0) + lint_roller (~> 1.1) + rubocop (>= 1.72.1, < 2.0) + rubocop-rspec_rails (2.32.0) + lint_roller (~> 1.1) + rubocop (~> 1.72, >= 1.72.1) + rubocop-rspec (~> 3.5) rubocop-ruby3_2 (3.0.7) rubocop-gradual (~> 0.3, >= 0.3.6) rubocop-md (~> 2.0, >= 2.0.4) @@ -307,6 +328,12 @@ GEM standard-performance (1.9.0) lint_roller (~> 1.1) rubocop-performance (~> 1.26.0) + standard-rspec (0.5.0) + lint_roller (>= 1.0) + rubocop-capybara (~> 2.23) + rubocop-factory_bot (~> 2.27) + rubocop-rspec (~> 3.9) + rubocop-rspec_rails (~> 2.31) standard-rubocop-lts (2.0.10) standard (~> 1.54, >= 1.54.0) standard-custom (~> 1.0, >= 1.0.2) @@ -331,8 +358,6 @@ GEM sorbet-runtime (~> 0.5) tree_sitter_language_pack (1.13.3-arm64-darwin) sorbet-runtime (~> 0.5) - tree_sitter_language_pack (1.13.3-x86_64-darwin) - sorbet-runtime (~> 0.5) tree_sitter_language_pack (1.13.3-x86_64-linux) sorbet-runtime (~> 0.5) tsort (0.2.0) @@ -344,6 +369,7 @@ GEM unicode-emoji (~> 4.1) unicode-emoji (4.2.0) version_gem (1.1.14) + webrick (1.9.2) yaml-converter (0.2.3) hexapdf (>= 1.8, < 2) kramdown (>= 2.4, < 3) @@ -374,65 +400,70 @@ PLATFORMS aarch64-linux-gnu aarch64-linux-musl arm64-darwin - x86_64-darwin + x86_64-linux x86_64-linux-gnu x86_64-linux-musl DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) + appraisal2-rubocop (~> 1.0, >= 1.0.0) ast-merge! benchmark (~> 0.5, >= 0.5.0) bundler-audit (~> 0.9.3) + cgi (~> 0.5) debug (>= 1.1) - erb (~> 6.0, >= 6.0.4) + erb (~> 6.0, >= 6.0.6) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.0) irb (~> 1.17) kettle-dev (~> 2.0, >= 2.2.25) - kettle-drift! - kettle-soup-cover! + kettle-soup-cover (~> 3.0, >= 3.0.3) kettle-test (~> 2.0, >= 2.0.9) - kramdown (~> 2.5, >= 2.5.1) + kramdown (~> 2.5, >= 2.5.2) kramdown-parser-gfm (~> 1.1) mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) rake (~> 13.0) rbs (>= 3.0) rdoc (~> 6.11) - reek (~> 6.5) + reek (~> 6.5, >= 6.5.0) require_bench (~> 1.0, >= 1.0.4) - rubocop-lts (~> 24.1.0) - rubocop-on-rbs (~> 2.0) + rubocop-gradual (~> 0.4, >= 0.4.0) + rubocop-lts (~> 24.2, >= 24.2.1) + rubocop-lts-rspec (~> 1.0, >= 1.0.5) + rubocop-minitest (~> 0.40, >= 0.40.0) + rubocop-on-rbs (~> 2.0, >= 2.0.0) rubocop-packaging (~> 0.6, >= 0.6.0) - rubocop-rspec (~> 3.6) - rubocop-ruby3_2 (~> 3.0.0) + rubocop-ruby3_2 (~> 3.0, >= 3.0.6) ruby-merge! ruby-progressbar (~> 1.13) - standard (>= 1.50) + standard (~> 1.56, >= 1.56.0) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) - yaml-converter (~> 0.1) - yard (~> 0.9, >= 0.9.44) - yard-fence (~> 0.9, >= 0.9.1) + webrick (~> 1.9) + yaml-converter (~> 0.2, >= 0.2.3) + yard (~> 0.9, >= 0.9.45) + yard-fence (~> 0.9, >= 0.9.6) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) - yard-timekeeper (~> 0.1) - yard-yaml (~> 0.1, >= 0.1.2) + yard-timekeeper (~> 0.2, >= 0.2.4) + yard-yaml (~> 0.2, >= 0.2.3) CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af ansi (1.6.0) sha256=ac9ea0c0ea8d32fb4e271348e609963ac78882f34b73836c2a02b3622e666658 appraisal2 (3.2.0) sha256=ccd0b767ac4060cd7af6d16747459b6990f49c39c7b4fb1f7d1146b1e97c492f + appraisal2-rubocop (1.0.0) sha256=b71410fbb014befda5340605a605b7f6f3f012739baf0acc5b4351b592c3258d ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 ast-merge (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd - bundler (4.0.16) sha256=d6ca5dd440c24f9abce9844cf44cc8e18c6a553de65a47efb4544137af92c47d bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 + cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 @@ -449,7 +480,7 @@ CHECKSUMS dry-schema (1.16.0) sha256=cd3aaeabc0f1af66ec82a29096d4c4fb92a0a58b9dae29a22b1bbceb78985727 dry-types (1.9.1) sha256=baebeecdb9f8395d6c9d227b62011279440943e3ef2468fe8ccc1ba11467f178 emoji_regex (15.0.0) sha256=a508b2c0bee561169564e0aec96085020c900520d335e5533fd8e78e59493829 - erb (6.0.5) sha256=858e63488cb796c9daba8b6e9ff4b3879c395022049be9a66a8e00980e612eac + erb (6.0.6) sha256=a9b24986700f5bf127c4f297c5403c3ca41b83b0a316c0cd09a096b56e644ae5 gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f @@ -458,11 +489,10 @@ CHECKSUMS irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 kettle-dev (2.3.7) sha256=eb370113cd030d03cbe2d33b31c99858951017e5ad21a17e9ed89dc3770028ee - kettle-drift (1.0.5) kettle-rb (0.1.4) sha256=9cef7ce4f7021666b7222292f29051e51eaf042e8a5db11f3f4dd72f74243fc1 - kettle-soup-cover (3.0.3) + kettle-soup-cover (3.0.4) kettle-test (2.0.11) sha256=c710c90f7ab79d51f9452f0c09f5f90657e7a893f63583855c164d0b1b107ab2 - kettle-wash (0.1.0) sha256=5c04b3900d0957339e7c7d9997bbd804599b68bde002e6f47f4e28a0eea22ea7 + kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 @@ -472,10 +502,9 @@ CHECKSUMS nokogiri (1.19.4-aarch64-linux-gnu) sha256=1269fb644a6de405057a53dd5c762b1209b43ca7424f839454d3dbc677c31a8f nokogiri (1.19.4-aarch64-linux-musl) sha256=35c65b9ce72b3bb03207bdbe7067915019dc18c1b9b59139684bd6690fdd01af nokogiri (1.19.4-arm64-darwin) sha256=a46db9853286e6597b36ebc6953817d15acf3a299583eb3f89fdc6f91dd63527 - nokogiri (1.19.4-x86_64-darwin) sha256=7fd17057d3e1f00e9954a74b3cd76595d3d4a5ef233b7ed9599047c204f70551 nokogiri (1.19.4-x86_64-linux-gnu) sha256=379fae440b28915e3f19d752ce2dcf8465ed2b2fbefd2a7ca0dd497bc981a06a nokogiri (1.19.4-x86_64-linux-musl) sha256=17dfb7c1fa194ae02fbf7c51a7afc8d278045ab3fdacfd86f91d02d7b274470b - nomono (1.0.8) sha256=bf4b9b426cbf216ab17b70db474f691b8ae1f1e29de8db4b0ecd405e6e7e1c80 + nomono (1.0.9) openssl (4.0.2) sha256=1037ad2868ae58df9ad917891c0c0f9815a1172f6846d4bcdd508e4c2ee747c2 ostruct (0.6.3) sha256=95a2ed4a4bd1d190784e666b47b2d3f078e4a9efda2fccf18f84ddc6538ed912 parallel (1.28.0) sha256=33e6de1484baf2524792d178b0913fc8eb94c628d6cfe45599ad4458c638c970 @@ -508,14 +537,21 @@ CHECKSUMS rspec_junit_formatter (0.6.0) sha256=40dde674e6ae4e6cc0ff560da25497677e34fefd2338cc467a8972f602b62b15 rubocop (1.88.2) sha256=8def251c90cd955feb4daa3edc0ab56893250c4ce90ef81e6c80c03f9a939bbf rubocop-ast (1.50.0) sha256=b9ca88300da0803ee222ad20cdb30494c0a784eed06fdc35d254b06d662788db + rubocop-capybara (2.23.0) sha256=f9ea1ba3a7561ee8e88cf76fc378ce517ce5327155f305ee7b5c2500e5aee357 + rubocop-env (0.1.0) sha256=5ab9a259e71822bf514c8e900a9b68cc2f74ccc87d5493efcd03213f3068e718 + rubocop-factory_bot (2.28.0) sha256=4b17fc02124444173317e131759d195b0d762844a71a29fe8139c1105d92f0cb rubocop-gradual (0.4.0) sha256=9c7e584e6fef6c2539266a193a4572c970c22f99046fd6b0305bdde6228f96ad - rubocop-lts (24.1.0) sha256=9dcad4db2da2fe2f1f77f98c917d70e7c43eded703da14cd201d4be52a9272aa + rubocop-lts (24.2.2) sha256=be6c745e1bb61daebd6af3cc3227c60f95be9f642a080773cad7df14c5f9f174 + rubocop-lts-rspec (1.0.5) sha256=439552fd27440802cc499889e013bffa28aadc41adae5d4dfff3d984a2a809b4 rubocop-md (2.0.4) sha256=0d076b6b5e99dea2ddc928c4bd702497decb9a8400da7808091e02ebcafcfb93 + rubocop-minitest (0.40.0) sha256=353c698199115f12151144cf0b5a96f69bb9d77b660cf6536df2c4250c672a9d rubocop-on-rbs (2.0.0) sha256=ce74d1b3d5daead19f4b611623656c185821dfc9aed9c7079bb1e5d7d7c464be rubocop-packaging (0.6.0) sha256=fb92bd0fb48e6f8cdb1648d2249b0cd51c2497dcc87340132d22f01edbf558a7 rubocop-performance (1.26.1) sha256=cd19b936ff196df85829d264b522fd4f98b6c89ad271fa52744a8c11b8f71834 rubocop-rake (0.7.1) sha256=3797f2b6810c3e9df7376c26d5f44f3475eda59eb1adc38e6f62ecf027cbae4d rubocop-rspec (3.10.2) sha256=0b3e2ecc592cd10ecbf0095bb58d1e357905276e069643523cc19eb7495f65e2 + rubocop-rspec-extra (0.3.0) sha256=ee4b6484d0332a0d23c4a465eeb607e41888eb3d4ed479f850b9f5212514f787 + rubocop-rspec_rails (2.32.0) sha256=4a0d641c72f6ebb957534f539d9d0a62c47abd8ce0d0aeee1ef4701e892a9100 rubocop-ruby3_2 (3.0.7) sha256=f53dd6d286fb05186214fc6ec116783e7f837030918e8931c05de773e98f8466 rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 ruby-merge (7.1.0) @@ -532,6 +568,7 @@ CHECKSUMS standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b standard-performance (1.9.0) sha256=49483d31be448292951d80e5e67cdcb576c2502103c7b40aec6f1b6e9c88e3f2 + standard-rspec (0.5.0) sha256=64d396524a65af47f5331b423d8cdd313e0267401647bb7892489ca89dad2973 standard-rubocop-lts (2.0.10) sha256=89708a505b7d8b24d2ac399a7520fcb9e764abc2ecb4289b631b5fe0e3b76617 stone_checksums (1.0.6) sha256=c775f830513d6c6ab26e31d1a5fbecd4c4e39002663d4d9f8fa96e97990b5298 stringio (3.2.0) sha256=c37cb2e58b4ffbd33fe5cd948c05934af997b36e0b6ca6fdf43afa234cf222e1 @@ -544,13 +581,13 @@ CHECKSUMS tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-aarch64-linux) sha256=55ffc7c87868cb45658338363d9eba51b4a8b0259aa88e4de368d2bd1d52fea4 tree_sitter_language_pack (1.13.3-arm64-darwin) sha256=bc2498db605f212a1dbd2465ed3f65190d7da786f6ed5d30fcf958121aeb4a5c - tree_sitter_language_pack (1.13.3-x86_64-darwin) sha256=061f7da6e1cc4ba936fad436ee0653d7dfdfa4aa879cf555403e3aa373d43966 tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 + webrick (1.9.2) sha256=beb4a15fc474defed24a3bda4ffd88a490d517c9e4e6118c3edce59e45864131 yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 diff --git a/gems/ruby-merge/README.md b/gems/ruby-merge/README.md index fa8bade7a..5a85d8388 100644 --- a/gems/ruby-merge/README.md +++ b/gems/ruby-merge/README.md @@ -36,7 +36,7 @@ I've summarized my thoughts in [this blog post](https://dev.to/galtzo/hostile-ta | Tokens to Remember | [![Gem name][⛳️name-img]][⛳️gem-name] [![Gem namespace][⛳️namespace-img]][⛳️gem-namespace] | |-------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | Works with MRI Ruby 4 | [![Ruby current Compat][💎ruby-c-i]][🚎11-c-wf]| -| Support & Community | [![Join Me on Daily.dev's RubyFriends][✉️ruby-friends-img]][✉️ruby-friends] [![Live Chat on Discord][✉️discord-invite-img-ftb]][✉️discord-invite] [![Get help from me on Upwork][👨🏼‍🏫expsup-upwork-img]][👨🏼‍🏫expsup-upwork] [![Get help from me on Codementor][👨🏼‍🏫expsup-codementor-img]][👨🏼‍🏫expsup-codementor] | +| Support & Community | [![Join Me on Daily.dev's RubyFriends][✉️ruby-friends-img]][✉️ruby-friends] [![Get help from RubyForum][✉️ruby-forum-img]][✉️ruby-forum] [![Live Chat on Discord][✉️discord-invite-img-ftb]][✉️discord-invite] [![Get help from me on Upwork][👨🏼‍🏫expsup-upwork-img]][👨🏼‍🏫expsup-upwork] [![Get help from me on Codementor][👨🏼‍🏫expsup-codementor-img]][👨🏼‍🏫expsup-codementor] | | Source | [![Source on GitLab.com][📜src-gl-img]][📜src-gl] [![Source on CodeBerg.org][📜src-cb-img]][📜src-cb] [![Source on Github.com][📜src-gh-img]][📜src-gh] [![The best SHA: dQw4w9WgXcQ!][🧮kloc-img]][🧮kloc] | | Documentation | [![Current release on RubyDoc.info][📜docs-cr-rd-img]][🚎yard-current] [![YARD on Galtzo.com][📜docs-head-rd-img]][🚎yard-head] [![Maintainer Blog][🚂maint-blog-img]][🚂maint-blog] [![GitLab Wiki][📜gl-wiki-img]][📜gl-wiki] [![GitHub Wiki][📜gh-wiki-img]][📜gh-wiki] | | Compliance | [![License: AGPL-3.0-only OR PolyForm-Small-Business-1.0.0][📄license-img]][📄license] [![Apache license compatibility: Category X][📄license-compat-img]][📄license-compat] [![📄ilo-declaration-img]][📄ilo-declaration] [![Security Policy][🔐security-img]][🔐security] [![Contributor Covenant 2.1][🪇conduct-img]][🪇conduct] [![SemVer 2.0.0][📌semver-img]][📌semver] | @@ -183,6 +183,8 @@ If none of the available licenses suit your use case, please [contact us](mailto [✉️discord-invite-img-ftb]: https://img.shields.io/discord/1373797679469170758?style=for-the-badge&logo=discord [✉️ruby-friends-img]: https://img.shields.io/badge/daily.dev-%F0%9F%92%8E_Ruby_Friends-0A0A0A?style=for-the-badge&logo=dailydotdev&logoColor=white [✉️ruby-friends]: https://app.daily.dev/squads/rubyfriends +[✉️ruby-forum-img]: https://img.shields.io/badge/RubyForum-Help-CC342D?style=for-the-badge&logo=ruby&logoColor=white +[✉️ruby-forum]: https://www.rubyforum.org/c/help/8 [✇bundle-group-pattern]: https://gist.github.com/pboling/4564780 [⛳️gem-namespace]: https://github.com/structuredmerge/structuredmerge-ruby/tree/main/gems/ruby-merge [⛳️namespace-img]: https://img.shields.io/badge/namespace-Ruby::Merge-3C2D2D.svg?style=square&logo=ruby&logoColor=white diff --git a/gems/ruby-merge/gemfiles/modular/cgi/r4/v0.5.gemfile b/gems/ruby-merge/gemfiles/modular/cgi/r4/v0.5.gemfile new file mode 100644 index 000000000..17ad97260 --- /dev/null +++ b/gems/ruby-merge/gemfiles/modular/cgi/r4/v0.5.gemfile @@ -0,0 +1 @@ +gem 'cgi', '~> 0.5' diff --git a/gems/ruby-merge/gemfiles/modular/cgi/vHEAD.gemfile b/gems/ruby-merge/gemfiles/modular/cgi/vHEAD.gemfile new file mode 100644 index 000000000..650fbf033 --- /dev/null +++ b/gems/ruby-merge/gemfiles/modular/cgi/vHEAD.gemfile @@ -0,0 +1 @@ +gem 'cgi', '>= 0.5' diff --git a/gems/ruby-merge/gemfiles/modular/coverage.gemfile b/gems/ruby-merge/gemfiles/modular/coverage.gemfile index f96d50954..b93014b6b 100644 --- a/gems/ruby-merge/gemfiles/modular/coverage.gemfile +++ b/gems/ruby-merge/gemfiles/modular/coverage.gemfile @@ -7,7 +7,7 @@ if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? # Coverage (remote/released) platform :mri do - gem 'kettle-soup-cover', '~> 1.0', '>= 1.1.3', require: false + gem 'kettle-soup-cover', '~> 3.0', '>= 3.0.3', require: false end else eval_gemfile 'coverage_local.gemfile' diff --git a/gems/ruby-merge/gemfiles/modular/coverage_local.gemfile b/gems/ruby-merge/gemfiles/modular/coverage_local.gemfile index 9a786632d..0f22763da 100644 --- a/gems/ruby-merge/gemfiles/modular/coverage_local.gemfile +++ b/gems/ruby-merge/gemfiles/modular/coverage_local.gemfile @@ -3,13 +3,33 @@ # Local path overrides for development. # Loaded by the associated non-local gemfile when KETTLE_DEV_DEV != "false". -require 'nomono/bundler' unless defined?(Nomono) +# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. +# Bundler records that dependency during Gemfile evaluation, but it does not +# activate that exact version before the immediate `require "nomono/bundler"`. +# If multiple compatible nomono versions are installed, RubyGems may activate +# the newest installed version while Gemfile.lock pins an older compatible one; +# Bundler then aborts with "already activated nomono X, but your Gemfile +# requires nomono Y". Prefer the locked compatible version when present, then +# activate it explicitly before requiring the Bundler DSL extension used below. +nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] +nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) +if File.file?(nomono_lockfile) + nomono_locked_spec = Bundler::LockfileParser + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } + nomono_locked = nomono_locked_spec && + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked +end +Kernel.send(:gem, 'nomono', *nomono_activation_requirements) +require 'nomono/bundler' local_gems = %w[kettle-dev kettle-test kettle-soup-cover kettle-drift] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) local_gems_to_eval = local_gems - %w[ruby-merge] - declared_gems -# export KETTLE_DEV_DEV=/path/to/kettle-rb +# export KETTLE_DEV_DEV=/path/to/my platform :mri do eval_nomono_gems( gems: local_gems_to_eval, diff --git a/gems/ruby-merge/gemfiles/modular/documentation.gemfile b/gems/ruby-merge/gemfiles/modular/documentation.gemfile index dff5cc108..9d4535f12 100644 --- a/gems/ruby-merge/gemfiles/modular/documentation.gemfile +++ b/gems/ruby-merge/gemfiles/modular/documentation.gemfile @@ -7,17 +7,17 @@ # # Documentation -gem 'kramdown', '~> 2.5', '>= 2.5.1', require: false # Ruby >= 2.5 +gem 'kramdown', '~> 2.5', '>= 2.5.2', require: false # Ruby >= 2.5 gem 'kramdown-parser-gfm', '~> 1.1', require: false # Ruby >= 2.3 -gem 'yaml-converter', '~> 0.1', require: false # Ruby >= 3.2 -gem 'yard', '~> 0.9', '>= 0.9.44', require: false +gem 'yaml-converter', '~> 0.2', '>= 0.2.3', require: false # Ruby >= 3.2 +gem 'yard', '~> 0.9', '>= 0.9.45', require: false gem 'yard-junk', '~> 0.1', '>= 0.1.0', require: false # Ruby >= 3.1 gem 'yard-relative_markdown_links', '~> 0.6', require: false if ENV.fetch('GALTZO_FLOSS_DEV', 'false').casecmp('false').zero? - gem 'yard-fence', '~> 0.9', '>= 0.9.1', require: false # Ruby >= 3.2 - gem 'yard-timekeeper', '~> 0.1', require: false - gem 'yard-yaml', '~> 0.1', '>= 0.1.2', require: false + gem 'yard-fence', '~> 0.9', '>= 0.9.6', require: false # Ruby >= 3.2 + gem 'yard-timekeeper', '~> 0.2', '>= 0.2.4', require: false + gem 'yard-yaml', '~> 0.2', '>= 0.2.3', require: false else eval_gemfile 'documentation_local.gemfile' end diff --git a/gems/ruby-merge/gemfiles/modular/documentation_local.gemfile b/gems/ruby-merge/gemfiles/modular/documentation_local.gemfile index 4d4c2bd95..b87492c55 100644 --- a/gems/ruby-merge/gemfiles/modular/documentation_local.gemfile +++ b/gems/ruby-merge/gemfiles/modular/documentation_local.gemfile @@ -3,13 +3,35 @@ # Local path overrides for development. # Loaded by the associated non-local gemfile when GALTZO_FLOSS_DEV != "false". -require 'nomono/bundler' unless defined?(Nomono) +# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. +# Bundler records that dependency during Gemfile evaluation, but it does not +# activate that exact version before the immediate `require "nomono/bundler"`. +# If multiple compatible nomono versions are installed, RubyGems may activate +# the newest installed version while Gemfile.lock pins an older compatible one; +# Bundler then aborts with "already activated nomono X, but your Gemfile +# requires nomono Y". Prefer the locked compatible version when present, then +# activate it explicitly before requiring the Bundler DSL extension used below. +nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] +nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) +if File.file?(nomono_lockfile) + nomono_locked_spec = Bundler::LockfileParser + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } + nomono_locked = nomono_locked_spec && + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked +end +Kernel.send(:gem, 'nomono', *nomono_activation_requirements) +require 'nomono/bundler' local_gems = %w[yard-fence yard-timekeeper yard-yaml] +declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) +local_gems_to_eval = local_gems - %w[ruby-merge] - declared_gems # export GALTZO_FLOSS_DEV=/path/to/galtzo-floss eval_nomono_gems( - gems: local_gems, + gems: local_gems_to_eval, prefix: 'GALTZO_FLOSS', path_env: 'GALTZO_FLOSS_DEV', vendored_gems_env: 'GALTZO_FLOSS_VENDORED_GEMS', diff --git a/gems/ruby-merge/gemfiles/modular/erb/r3/v5.0.gemfile b/gems/ruby-merge/gemfiles/modular/erb/r3/v5.0.gemfile index 0e3bf1b97..ec7ff451f 100644 --- a/gems/ruby-merge/gemfiles/modular/erb/r3/v5.0.gemfile +++ b/gems/ruby-merge/gemfiles/modular/erb/r3/v5.0.gemfile @@ -1 +1 @@ -gem 'erb', '~> 6.0', '>= 6.0.4' # ruby >= 3.2.0 +gem 'erb', '~> 6.0', '>= 6.0.6' # ruby >= 3.2.0 diff --git a/gems/ruby-merge/gemfiles/modular/erb/r4/v5.0.gemfile b/gems/ruby-merge/gemfiles/modular/erb/r4/v5.0.gemfile index 0e3bf1b97..ec7ff451f 100644 --- a/gems/ruby-merge/gemfiles/modular/erb/r4/v5.0.gemfile +++ b/gems/ruby-merge/gemfiles/modular/erb/r4/v5.0.gemfile @@ -1 +1 @@ -gem 'erb', '~> 6.0', '>= 6.0.4' # ruby >= 3.2.0 +gem 'erb', '~> 6.0', '>= 6.0.6' # ruby >= 3.2.0 diff --git a/gems/ruby-merge/gemfiles/modular/json/truffleruby_22_3.gemfile b/gems/ruby-merge/gemfiles/modular/json/truffleruby_22_3.gemfile new file mode 100644 index 000000000..9b2f8d96a --- /dev/null +++ b/gems/ruby-merge/gemfiles/modular/json/truffleruby_22_3.gemfile @@ -0,0 +1,6 @@ +# frozen_string_literal: true + +if RUBY_ENGINE == 'truffleruby' && RUBY_ENGINE_VERSION.start_with?('22.3') + # TruffleRuby 22.3 ships the json default gem from its emulated MRI Ruby. + gem 'json', '= 2.5.1' +end diff --git a/gems/ruby-merge/gemfiles/modular/json/truffleruby_23_0.gemfile b/gems/ruby-merge/gemfiles/modular/json/truffleruby_23_0.gemfile new file mode 100644 index 000000000..d787a5ef4 --- /dev/null +++ b/gems/ruby-merge/gemfiles/modular/json/truffleruby_23_0.gemfile @@ -0,0 +1,6 @@ +# frozen_string_literal: true + +if RUBY_ENGINE == 'truffleruby' && RUBY_ENGINE_VERSION.start_with?('23.0') + # TruffleRuby 23.0 ships the json default gem from its emulated MRI Ruby. + gem 'json', '= 2.6.1' +end diff --git a/gems/ruby-merge/gemfiles/modular/json/truffleruby_23_1.gemfile b/gems/ruby-merge/gemfiles/modular/json/truffleruby_23_1.gemfile new file mode 100644 index 000000000..d78486b0e --- /dev/null +++ b/gems/ruby-merge/gemfiles/modular/json/truffleruby_23_1.gemfile @@ -0,0 +1,6 @@ +# frozen_string_literal: true + +if RUBY_ENGINE == 'truffleruby' && RUBY_ENGINE_VERSION.start_with?('23.1') + # TruffleRuby 23.1 ships the json default gem from its emulated MRI Ruby. + gem 'json', '= 2.6.3' +end diff --git a/gems/ruby-merge/gemfiles/modular/optional.gemfile b/gems/ruby-merge/gemfiles/modular/optional.gemfile index 63f293966..9ea429538 100644 --- a/gems/ruby-merge/gemfiles/modular/optional.gemfile +++ b/gems/ruby-merge/gemfiles/modular/optional.gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -# To retain during ruby-merge templating: +# To retain during kettle-jem templating: # kettle-jem:freeze # # ... your code # kettle-jem:unfreeze @@ -10,7 +10,6 @@ # Required for curated binstubs generated by kettle-jem install gem 'rbs', '>= 3.0', require: false # ruby >= 3.1 -gem 'stone_checksums', '~> 1.0', '>= 1.0.3', require: false # ruby >= 2.2 # Required for kettle-pre-release # URL parsing with Unicode support (falls back to URI if not available) diff --git a/gems/ruby-merge/gemfiles/modular/runtime_heads.gemfile b/gems/ruby-merge/gemfiles/modular/runtime_heads.gemfile index 2735e4fec..ebf17c529 100644 --- a/gems/ruby-merge/gemfiles/modular/runtime_heads.gemfile +++ b/gems/ruby-merge/gemfiles/modular/runtime_heads.gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -# To retain during ruby-merge templating: +# To retain during kettle-jem templating: # kettle-jem:freeze # # ... your code # kettle-jem:unfreeze @@ -8,7 +8,4 @@ # Test against HEAD of runtime dependencies so we can proactively file bugs -# Ruby >= 2.2 -gem 'version_gem', github: 'ruby-oauth/version_gem', branch: 'main' - eval_gemfile('x_std_libs/vHEAD.gemfile') diff --git a/gems/ruby-merge/gemfiles/modular/style.gemfile b/gems/ruby-merge/gemfiles/modular/style.gemfile index 7b03ffeeb..4dbcc02c0 100644 --- a/gems/ruby-merge/gemfiles/modular/style.gemfile +++ b/gems/ruby-merge/gemfiles/modular/style.gemfile @@ -1,27 +1,30 @@ # frozen_string_literal: true -# To retain during ruby-merge templating: +# To retain during kettle-jem templating: # kettle-jem:freeze # # ... your code # kettle-jem:unfreeze # -# We run rubocop on the latest version of Ruby, -# but in support of the oldest supported version of Ruby +# Style tasks run on the latest Ruby; RuboCop-LTS selects the compatibility +# rules for the configured Ruby floor independently from task dependency floors. -gem 'reek', '~> 6.5' +gem 'reek', '~> 6.5', '>= 6.5.0' platform :mri do - gem 'rubocop-on-rbs', '~> 2.0' # ruby >= 3.2.0 + gem 'appraisal2-rubocop', '~> 1.0', '>= 1.0.0', require: false + gem 'rubocop-gradual', '~> 0.4', '>= 0.4.0' + gem 'rubocop-minitest', '~> 0.40', '>= 0.40.0' + gem 'rubocop-on-rbs', '~> 2.0', '>= 2.0.0' # ruby >= 3.2.0 # gem "rubocop", "~> 1.73", ">= 1.73.2" # constrained by standard gem 'rubocop-packaging', '~> 0.6', '>= 0.6.0' - gem 'standard', '>= 1.50' + gem 'standard', '~> 1.56', '>= 1.56.0' if ENV.fetch('RUBOCOP_LTS_LOCAL', 'false').casecmp('false').zero? - gem 'rubocop-lts', '~> 24.1.0' - # "rubocop-lts-rspec" can't add here until other gems are updated. - gem 'rubocop-rspec', '~> 3.6' - gem 'rubocop-ruby3_2', '~> 3.0.0' + declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) + gem 'rubocop-lts', '~> 24.2', '>= 24.2.1' unless declared_gems.include?('rubocop-lts') + gem 'rubocop-lts-rspec', '~> 1.0', '>= 1.0.5' unless declared_gems.include?('rubocop-lts-rspec') + gem 'rubocop-ruby3_2', '~> 3.0', '>= 3.0.6' unless declared_gems.include?('rubocop-ruby3_2') else eval_gemfile('style_local.gemfile') end diff --git a/gems/ruby-merge/gemfiles/modular/style_local.gemfile b/gems/ruby-merge/gemfiles/modular/style_local.gemfile index ce75bbe21..b54e9ddc2 100644 --- a/gems/ruby-merge/gemfiles/modular/style_local.gemfile +++ b/gems/ruby-merge/gemfiles/modular/style_local.gemfile @@ -1,19 +1,41 @@ # frozen_string_literal: true -# We run rubocop on the latest version of Ruby, -# but in support of the oldest supported version of Ruby +# Style tasks run on the latest Ruby; RuboCop-LTS selects the compatibility +# rules for the configured Ruby floor independently from task dependency floors. # Local path overrides for development. # Loaded by the associated non-local gemfile when RUBOCOP_LTS_LOCAL != "false". -require 'nomono/bundler' unless defined?(Nomono) +# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. +# Bundler records that dependency during Gemfile evaluation, but it does not +# activate that exact version before the immediate `require "nomono/bundler"`. +# If multiple compatible nomono versions are installed, RubyGems may activate +# the newest installed version while Gemfile.lock pins an older compatible one; +# Bundler then aborts with "already activated nomono X, but your Gemfile +# requires nomono Y". Prefer the locked compatible version when present, then +# activate it explicitly before requiring the Bundler DSL extension used below. +nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] +nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) +if File.file?(nomono_lockfile) + nomono_locked_spec = Bundler::LockfileParser + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } + nomono_locked = nomono_locked_spec && + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked +end +Kernel.send(:gem, 'nomono', *nomono_activation_requirements) +require 'nomono/bundler' local_gems = %w[rubocop-lts rubocop-lts-rspec rubocop-ruby3_2 standard-rubocop-lts] +declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) +local_gems_to_eval = local_gems - %w[ruby-merge] - declared_gems # export VENDORED_GEMS=rubocop-lts,rubocop-lts-rspec,rubocop-ruby3_2,standard-rubocop-lts platform :mri do eval_nomono_gems( - gems: local_gems, + gems: local_gems_to_eval, prefix: 'RUBOCOP_LTS', path_env: 'RUBOCOP_LTS_LOCAL', vendored_gems_env: 'VENDORED_GEMS', diff --git a/gems/ruby-merge/gemfiles/modular/templating.gemfile b/gems/ruby-merge/gemfiles/modular/templating.gemfile index 2ddc9433f..a672de184 100644 --- a/gems/ruby-merge/gemfiles/modular/templating.gemfile +++ b/gems/ruby-merge/gemfiles/modular/templating.gemfile @@ -12,13 +12,13 @@ end if kettle_remote # Template/plugin checks for released installs. - gem 'kettle-drift', '~> 1.0', '>= 1.0.5', require: false + gem 'kettle-drift', '~> 1.0', '>= 1.0.6', require: false end # Set STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local development with path-based dependencies. # When false (default / CI), released kettle-jem brings merge gems and parser dependencies. # Local path overrides bring the same dependencies from sibling gemspecs. # -# Set KETTLE_DEV_DEV=/path/to/kettle-rb for local development with Kettle plugin gems. +# Set KETTLE_DEV_DEV=/path/to/my for local development with Kettle plugin gems. # When false (default / CI), released Kettle plugin gems are used. eval_gemfile 'templating_local.gemfile' unless structuredmerge_remote && kettle_remote diff --git a/gems/ruby-merge/gemfiles/modular/templating_local.gemfile b/gems/ruby-merge/gemfiles/modular/templating_local.gemfile index 7bcc1113d..7365dc0d3 100644 --- a/gems/ruby-merge/gemfiles/modular/templating_local.gemfile +++ b/gems/ruby-merge/gemfiles/modular/templating_local.gemfile @@ -4,7 +4,27 @@ # Loaded by the associated non-local gemfile when STRUCTUREDMERGE_DEV or KETTLE_DEV_DEV # is not "false". -require 'nomono/bundler' unless defined?(Nomono) +# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. +# Bundler records that dependency during Gemfile evaluation, but it does not +# activate that exact version before the immediate `require "nomono/bundler"`. +# If multiple compatible nomono versions are installed, RubyGems may activate +# the newest installed version while Gemfile.lock pins an older compatible one; +# Bundler then aborts with "already activated nomono X, but your Gemfile +# requires nomono Y". Prefer the locked compatible version when present, then +# activate it explicitly before requiring the Bundler DSL extension used below. +nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] +nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) +if File.file?(nomono_lockfile) + nomono_locked_spec = Bundler::LockfileParser + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } + nomono_locked = nomono_locked_spec && + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked +end +Kernel.send(:gem, 'nomono', *nomono_activation_requirements) +require 'nomono/bundler' structuredmerge_local_gems = %w[ tree_haver diff --git a/gems/ruby-merge/gemfiles/modular/webrick/r4/v1.9.gemfile b/gems/ruby-merge/gemfiles/modular/webrick/r4/v1.9.gemfile new file mode 100644 index 000000000..b1329ba84 --- /dev/null +++ b/gems/ruby-merge/gemfiles/modular/webrick/r4/v1.9.gemfile @@ -0,0 +1 @@ +gem 'webrick', '~> 1.9' diff --git a/gems/ruby-merge/gemfiles/modular/webrick/vHEAD.gemfile b/gems/ruby-merge/gemfiles/modular/webrick/vHEAD.gemfile new file mode 100644 index 000000000..c7e6f81a1 --- /dev/null +++ b/gems/ruby-merge/gemfiles/modular/webrick/vHEAD.gemfile @@ -0,0 +1 @@ +gem 'webrick', '>= 1.9' diff --git a/gems/ruby-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile b/gems/ruby-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile index bd4e884df..e2f6501eb 100644 --- a/gems/ruby-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile +++ b/gems/ruby-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile @@ -2,3 +2,5 @@ eval_gemfile '../../erb/r4/v5.0.gemfile' eval_gemfile '../../mutex_m/r4/v0.3.gemfile' eval_gemfile '../../stringio/r4/v3.0.gemfile' eval_gemfile '../../benchmark/r4/v0.5.gemfile' +eval_gemfile '../../cgi/r4/v0.5.gemfile' +eval_gemfile '../../webrick/r4/v1.9.gemfile' diff --git a/gems/ruby-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile b/gems/ruby-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile index 91f383c11..ab75cccf1 100644 --- a/gems/ruby-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile +++ b/gems/ruby-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile @@ -2,3 +2,5 @@ eval_gemfile '../erb/vHEAD.gemfile' eval_gemfile '../mutex_m/vHEAD.gemfile' eval_gemfile '../stringio/vHEAD.gemfile' eval_gemfile '../benchmark/vHEAD.gemfile' +eval_gemfile '../cgi/vHEAD.gemfile' +eval_gemfile '../webrick/vHEAD.gemfile' diff --git a/gems/rust-merge/Gemfile.lock b/gems/rust-merge/Gemfile.lock index a1dbae4e0..5d8c6b141 100644 --- a/gems/rust-merge/Gemfile.lock +++ b/gems/rust-merge/Gemfile.lock @@ -6,41 +6,6 @@ PATH tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) -PATH - remote: /home/pboling/src/my/kettle-dev/kettle-drift - specs: - kettle-drift (1.0.5) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/kettle-dev/kettle-soup-cover - specs: - kettle-soup-cover (3.0.3) - kettle-wash (~> 0.1, >= 0.1.0) - simplecov (>= 1.0) - simplecov-cobertura (>= 4.0) - simplecov-console (~> 0.9, >= 0.9.5) - simplecov-rcov (~> 0.3, >= 0.3.7) - simplecov_lcov_formatter (~> 0.9, >= 0.9.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge - specs: - ast-merge (7.1.0) - benchmark - token-resolver (~> 2.0, >= 2.0.4) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver - specs: - tree_haver (7.1.0) - citrus (~> 3.0) - parslet (~> 2.0) - tree_sitter_language_pack (>= 1.13.2, < 2.0) - version_gem (~> 1.1, >= 1.1.9) - GEM remote: https://gem.coop/ specs: @@ -52,6 +17,11 @@ GEM rake (>= 10) thor (>= 0.14) ast (2.4.3) + ast-merge (7.1.0) + benchmark + token-resolver (~> 2.0, >= 2.0.4) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) backports (3.25.3) benchmark (0.5.0) bigdecimal (4.1.2) @@ -68,6 +38,7 @@ GEM delegate (0.6.1) diff-lcs (1.6.2) diffy (3.4.4) + docile (1.4.1) dry-configurable (1.4.0) dry-core (~> 1.0) zeitwerk (~> 2.6) @@ -123,6 +94,15 @@ GEM kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) kettle-rb (0.1.4) + kettle-soup-cover (1.1.3) + simplecov (~> 0.22) + simplecov-cobertura (~> 3.0) + simplecov-console (~> 0.9, >= 0.9.3) + simplecov-html (~> 0.13, >= 0.13.1) + simplecov-lcov (~> 0.8) + simplecov-rcov (~> 0.3, >= 0.3.7) + simplecov_json_formatter (~> 0.1, >= 0.1.4) + version_gem (~> 1.1, >= 1.1.9) kettle-test (2.0.11) appraisal2 (~> 3.0, >= 3.0.6) backports (~> 3.0) @@ -134,8 +114,6 @@ GEM silent_stream (~> 1.0, >= 1.0.12) timecop-rspec (~> 1.0, >= 1.0.3) turbo_tests2 (~> 3.1, >= 3.1.12) - kettle-wash (0.1.0) - version_gem (~> 1.1, >= 1.1.14) kramdown (2.5.2) rexml (>= 3.4.4) kramdown-parser-gfm (1.1.0) @@ -282,18 +260,22 @@ GEM silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) - simplecov (1.0.2) - simplecov-cobertura (4.0.0) + simplecov (0.22.0) + docile (~> 1.1) + simplecov-html (~> 0.11) + simplecov_json_formatter (~> 0.1) + simplecov-cobertura (3.2.0) rexml - simplecov (~> 1.0) + simplecov (~> 0.19) simplecov-console (0.9.5) ansi simplecov terminal-table + simplecov-html (0.13.2) + simplecov-lcov (0.9.0) simplecov-rcov (0.3.7) simplecov (>= 0.4.1) - simplecov_lcov_formatter (0.9.0) - simplecov (>= 0.18) + simplecov_json_formatter (0.1.4) sorbet-runtime (0.6.13347) standard (1.56.0) language_server-protocol (~> 3.17.0.2) @@ -327,6 +309,11 @@ GEM token-resolver (2.0.4) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.13) + tree_haver (7.1.0) + citrus (~> 3.0) + parslet (~> 2.0) + tree_sitter_language_pack (>= 1.13.2, < 2.0) + version_gem (~> 1.1, >= 1.1.9) tree_sitter_language_pack (1.13.3-aarch64-linux) sorbet-runtime (~> 0.5) tree_sitter_language_pack (1.13.3-arm64-darwin) @@ -381,7 +368,6 @@ PLATFORMS DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) - ast-merge! benchmark (~> 0.5, >= 0.5.0) bundler-audit (~> 0.9.3) debug (>= 1.1) @@ -390,8 +376,7 @@ DEPENDENCIES gitmoji-regex (~> 2.0, >= 2.0.0) irb (~> 1.17) kettle-dev (~> 2.0, >= 2.2.25) - kettle-drift! - kettle-soup-cover! + kettle-soup-cover (~> 1.0, >= 1.1.3) kettle-test (~> 2.0, >= 2.0.9) kramdown (~> 2.5, >= 2.5.1) kramdown-parser-gfm (~> 1.1) @@ -412,7 +397,6 @@ DEPENDENCIES standard (>= 1.50) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) - tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) yaml-converter (~> 0.1) yard (~> 0.9, >= 0.9.44) @@ -431,7 +415,6 @@ CHECKSUMS backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd - bundler (4.0.16) sha256=d6ca5dd440c24f9abce9844cf44cc8e18c6a553de65a47efb4544137af92c47d bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 @@ -441,6 +424,7 @@ CHECKSUMS delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 + docile (1.4.1) sha256=96159be799bfa73cdb721b840e9802126e4e03dfc26863db73647204c727f21e dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -458,11 +442,9 @@ CHECKSUMS irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 kettle-dev (2.3.7) sha256=eb370113cd030d03cbe2d33b31c99858951017e5ad21a17e9ed89dc3770028ee - kettle-drift (1.0.5) kettle-rb (0.1.4) sha256=9cef7ce4f7021666b7222292f29051e51eaf042e8a5db11f3f4dd72f74243fc1 - kettle-soup-cover (3.0.3) + kettle-soup-cover (1.1.3) sha256=a373827da22a7131d093afd32945e5b7d7a10a01ebfdded8fd2cb8230d69c8ad kettle-test (2.0.11) sha256=c710c90f7ab79d51f9452f0c09f5f90657e7a893f63583855c164d0b1b107ab2 - kettle-wash (0.1.0) sha256=5c04b3900d0957339e7c7d9997bbd804599b68bde002e6f47f4e28a0eea22ea7 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 @@ -523,11 +505,13 @@ CHECKSUMS ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 rust-merge (7.1.0) silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 - simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 - simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea + simplecov (0.22.0) sha256=fe2622c7834ff23b98066bb0a854284b2729a569ac659f82621fc22ef36213a5 + simplecov-cobertura (3.2.0) sha256=70d702658677fcb20e5aceb6915ccf8bc62ff2ccd38b62b3ad5c9db5c0888740 simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 + simplecov-html (0.13.2) sha256=bd0b8e54e7c2d7685927e8d6286466359b6f16b18cb0df47b508e8d73c777246 + simplecov-lcov (0.9.0) sha256=7a77a31e200a595ed4b0249493056efd0c920601f53d2ef135ca34ee796346cd simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc - simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed + simplecov_json_formatter (0.1.4) sha256=529418fbe8de1713ac2b2d612aa3daa56d316975d307244399fa4838c601b428 sorbet-runtime (0.6.13347) sha256=54e7221d9f4b63f58aec79f3043752a9ba7810347c6ae0d903531591cc2d5f01 standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b diff --git a/gems/smorg-rb/Gemfile.lock b/gems/smorg-rb/Gemfile.lock index 7bfa61125..62846af44 100644 --- a/gems/smorg-rb/Gemfile.lock +++ b/gems/smorg-rb/Gemfile.lock @@ -59,12 +59,7 @@ GEM toml-rb (~> 4.1) version_gem (~> 1.1, >= 1.1.9) cmdparse (3.0.7) - commonmarker (2.9.0-aarch64-linux) - commonmarker (2.9.0-aarch64-linux-musl) - commonmarker (2.9.0-arm64-darwin) - commonmarker (2.9.0-x86_64-darwin) commonmarker (2.9.0-x86_64-linux) - commonmarker (2.9.0-x86_64-linux-musl) commonmarker-merge (7.1.0) commonmarker (~> 2.2) markdown-merge (= 7.1.0) @@ -211,18 +206,8 @@ GEM markly (~> 0.9) version_gem (~> 1.1, >= 1.1.9) mutex_m (0.3.0) - nokogiri (1.19.4-aarch64-linux-gnu) - racc (~> 1.4) - nokogiri (1.19.4-aarch64-linux-musl) - racc (~> 1.4) - nokogiri (1.19.4-arm64-darwin) - racc (~> 1.4) - nokogiri (1.19.4-x86_64-darwin) - racc (~> 1.4) nokogiri (1.19.4-x86_64-linux-gnu) racc (~> 1.4) - nokogiri (1.19.4-x86_64-linux-musl) - racc (~> 1.4) nomono (1.0.8) openssl (4.0.2) ostruct (0.6.3) @@ -257,9 +242,6 @@ GEM racc (1.8.1) rainbow (3.1.1) rake (13.4.2) - rake-compiler-dock (1.12.0) - rb_sys (0.9.127) - rake-compiler-dock (= 1.12.0) rbs (4.0.3) logger prism (>= 1.6.0) @@ -424,7 +406,7 @@ GEM timecop (>= 0.7, < 1) token-resolver (2.0.4) parslet (~> 2.0) - version_gem (~> 1.1, >= 1.1.13) + version_gem (~> 1.1, >= 1.1.14) toml-merge (7.1.0) ast-merge (= 7.1.0) tree_haver (= 7.1.0) @@ -435,10 +417,10 @@ GEM tree_haver (7.1.0) citrus (~> 3.0) parslet (~> 2.0) - tree_sitter_language_pack (>= 1.9.0.pre.rc.40, < 2.0) + tree_sitter_language_pack (>= 1.13.2, < 2.0) version_gem (~> 1.1, >= 1.1.9) -tree_sitter_language_pack (1.13.3-x86_64-linux) - sorbet-runtime (~> 0.5) + tree_sitter_language_pack (1.13.3-x86_64-linux) + sorbet-runtime (~> 0.5) tsort (0.2.0) turbo_tests2 (3.2.0) parallel_tests (>= 3.3.0, < 6) @@ -478,13 +460,8 @@ tree_sitter_language_pack (1.13.3-x86_64-linux) zlib (3.2.3) PLATFORMS - aarch64-linux - aarch64-linux-gnu - aarch64-linux-musl - arm64-darwin - x86_64-darwin + x86_64-linux x86_64-linux-gnu - x86_64-linux-musl DEPENDENCIES addressable (>= 2.8, < 3) @@ -545,12 +522,7 @@ CHECKSUMS citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 - commonmarker (2.9.0-aarch64-linux) sha256=e2b4aadb9a2cfa4e206582641ce3a49465549ac1ed4c289fdd63b78d8f24579c - commonmarker (2.9.0-aarch64-linux-musl) sha256=1cf4d2821f2a7e64945f1ed7c4eeced586fdb27ea7fe7337788802cf8f57cfca - commonmarker (2.9.0-arm64-darwin) sha256=1748dbfa4f5813b0d2a14bb4bbfa65a4ec293aa1c825016d60029ee0e132b046 - commonmarker (2.9.0-x86_64-darwin) sha256=0a9914ccfd2f5d2a59c7bd0dda4fe90eb084cf513b477e499008e09ec9d6edd6 commonmarker (2.9.0-x86_64-linux) sha256=8cfe92970eef585a19ddf6613224b91cab64d6029834661bda801f877c9c7f43 - commonmarker (2.9.0-x86_64-linux-musl) sha256=293921398b839f79ceaf55010e061357e34f053822c3b003cd0be6686176335e commonmarker-merge (7.1.0) concurrent-ruby (1.3.7) sha256=4412caec3a5ea2e5fdc52076724c071a81f2c0593d83b2ac8cbb8ca63b3151b0 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 @@ -593,12 +565,7 @@ CHECKSUMS markly (0.16.0) sha256=6f70d79e385b1efc9e171f74c81628826259039fe6c778e03c3924c71dac5511 markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 - nokogiri (1.19.4-aarch64-linux-gnu) sha256=1269fb644a6de405057a53dd5c762b1209b43ca7424f839454d3dbc677c31a8f - nokogiri (1.19.4-aarch64-linux-musl) sha256=35c65b9ce72b3bb03207bdbe7067915019dc18c1b9b59139684bd6690fdd01af - nokogiri (1.19.4-arm64-darwin) sha256=a46db9853286e6597b36ebc6953817d15acf3a299583eb3f89fdc6f91dd63527 - nokogiri (1.19.4-x86_64-darwin) sha256=7fd17057d3e1f00e9954a74b3cd76595d3d4a5ef233b7ed9599047c204f70551 nokogiri (1.19.4-x86_64-linux-gnu) sha256=379fae440b28915e3f19d752ce2dcf8465ed2b2fbefd2a7ca0dd497bc981a06a - nokogiri (1.19.4-x86_64-linux-musl) sha256=17dfb7c1fa194ae02fbf7c51a7afc8d278045ab3fdacfd86f91d02d7b274470b nomono (1.0.8) sha256=bf4b9b426cbf216ab17b70db474f691b8ae1f1e29de8db4b0ecd405e6e7e1c80 openssl (4.0.2) sha256=1037ad2868ae58df9ad917891c0c0f9815a1172f6846d4bcdd508e4c2ee747c2 ostruct (0.6.3) sha256=95a2ed4a4bd1d190784e666b47b2d3f078e4a9efda2fccf18f84ddc6538ed912 @@ -617,8 +584,6 @@ CHECKSUMS racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 - rake-compiler-dock (1.12.0) sha256=f13205c2738f3d2053afcd03491a9e4541b22a59a0bfc53fc8bc883bd8188023 - rb_sys (0.9.127) sha256=e9f90df3bb0577472d26d96127d5b5774b98f44de881e7d36aeefd28d6337847 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 @@ -678,26 +643,22 @@ CHECKSUMS toml-merge (7.1.0) toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 tree_haver (7.1.0) - tree_sitter_language_pack (1.13.2) - tree_sitter_language_pack (1.13.2-aarch64-linux) - tree_sitter_language_pack (1.13.2-arm64-darwin) - tree_sitter_language_pack (1.13.2-x86_64-darwin) - tree_sitter_language_pack (1.13.2-x86_64-linux) - tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f - turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 - unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 - unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f - version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 - yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 + tree_sitter_language_pack (1.13.3-x86_64-linux) + tsort (0.2.0) + turbo_tests2 (3.2.0) + unicode-display_width (3.2.0) + unicode-emoji (4.2.0) + version_gem (1.1.14) + yaml-converter (0.2.3) yaml-merge (7.1.0) - yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 - yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 - yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd - yard-relative_markdown_links (0.6.0) sha256=3e5ffa85cbad9bac70bee5421774b190fb25d3bdf489323a5b3534f647d1a70e - yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a - yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 - zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 - zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 + yard (0.9.45) + yard-fence (0.9.6) + yard-junk (0.1.0) + yard-relative_markdown_links (0.6.0) + yard-timekeeper (0.2.4) + yard-yaml (0.2.3) + zeitwerk (2.8.2) + zlib (3.2.3) BUNDLED WITH 4.0.16 diff --git a/gems/toml-merge/Gemfile.lock b/gems/toml-merge/Gemfile.lock index 24c6f90a9..ff876b028 100644 --- a/gems/toml-merge/Gemfile.lock +++ b/gems/toml-merge/Gemfile.lock @@ -6,41 +6,6 @@ PATH tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) -PATH - remote: /home/pboling/src/my/kettle-dev/kettle-drift - specs: - kettle-drift (1.0.5) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/kettle-dev/kettle-soup-cover - specs: - kettle-soup-cover (3.0.3) - kettle-wash (~> 0.1, >= 0.1.0) - simplecov (>= 1.0) - simplecov-cobertura (>= 4.0) - simplecov-console (~> 0.9, >= 0.9.5) - simplecov-rcov (~> 0.3, >= 0.3.7) - simplecov_lcov_formatter (~> 0.9, >= 0.9.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge - specs: - ast-merge (7.1.0) - benchmark - token-resolver (~> 2.0, >= 2.0.4) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver - specs: - tree_haver (7.1.0) - citrus (~> 3.0) - parslet (~> 2.0) - tree_sitter_language_pack (>= 1.13.2, < 2.0) - version_gem (~> 1.1, >= 1.1.9) - GEM remote: https://gem.coop/ specs: @@ -52,6 +17,11 @@ GEM rake (>= 10) thor (>= 0.14) ast (2.4.3) + ast-merge (7.1.0) + benchmark + token-resolver (~> 2.0, >= 2.0.4) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) backports (3.25.3) benchmark (0.5.0) bigdecimal (4.1.2) @@ -68,6 +38,7 @@ GEM delegate (0.6.1) diff-lcs (1.6.2) diffy (3.4.4) + docile (1.4.1) dry-configurable (1.4.0) dry-core (~> 1.0) zeitwerk (~> 2.6) @@ -123,6 +94,15 @@ GEM kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) kettle-rb (0.1.4) + kettle-soup-cover (1.1.3) + simplecov (~> 0.22) + simplecov-cobertura (~> 3.0) + simplecov-console (~> 0.9, >= 0.9.3) + simplecov-html (~> 0.13, >= 0.13.1) + simplecov-lcov (~> 0.8) + simplecov-rcov (~> 0.3, >= 0.3.7) + simplecov_json_formatter (~> 0.1, >= 0.1.4) + version_gem (~> 1.1, >= 1.1.9) kettle-test (2.0.11) appraisal2 (~> 3.0, >= 3.0.6) backports (~> 3.0) @@ -134,8 +114,6 @@ GEM silent_stream (~> 1.0, >= 1.0.12) timecop-rspec (~> 1.0, >= 1.0.3) turbo_tests2 (~> 3.1, >= 3.1.12) - kettle-wash (0.1.0) - version_gem (~> 1.1, >= 1.1.14) kramdown (2.5.2) rexml (>= 3.4.4) kramdown-parser-gfm (1.1.0) @@ -282,18 +260,22 @@ GEM silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) - simplecov (1.0.2) - simplecov-cobertura (4.0.0) + simplecov (0.22.0) + docile (~> 1.1) + simplecov-html (~> 0.11) + simplecov_json_formatter (~> 0.1) + simplecov-cobertura (3.2.0) rexml - simplecov (~> 1.0) + simplecov (~> 0.19) simplecov-console (0.9.5) ansi simplecov terminal-table + simplecov-html (0.13.2) + simplecov-lcov (0.9.0) simplecov-rcov (0.3.7) simplecov (>= 0.4.1) - simplecov_lcov_formatter (0.9.0) - simplecov (>= 0.18) + simplecov_json_formatter (0.1.4) sorbet-runtime (0.6.13347) standard (1.56.0) language_server-protocol (~> 3.17.0.2) @@ -327,6 +309,11 @@ GEM token-resolver (2.0.4) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.13) + tree_haver (7.1.0) + citrus (~> 3.0) + parslet (~> 2.0) + tree_sitter_language_pack (>= 1.13.2, < 2.0) + version_gem (~> 1.1, >= 1.1.9) tree_sitter_language_pack (1.13.3-aarch64-linux) sorbet-runtime (~> 0.5) tree_sitter_language_pack (1.13.3-arm64-darwin) @@ -381,7 +368,6 @@ PLATFORMS DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) - ast-merge! benchmark (~> 0.5, >= 0.5.0) bundler-audit (~> 0.9.3) debug (>= 1.1) @@ -390,8 +376,7 @@ DEPENDENCIES gitmoji-regex (~> 2.0, >= 2.0.0) irb (~> 1.17) kettle-dev (~> 2.0, >= 2.2.25) - kettle-drift! - kettle-soup-cover! + kettle-soup-cover (~> 1.0, >= 1.1.3) kettle-test (~> 2.0, >= 2.0.9) kramdown (~> 2.5, >= 2.5.1) kramdown-parser-gfm (~> 1.1) @@ -412,7 +397,6 @@ DEPENDENCIES stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) toml-merge! - tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) yaml-converter (~> 0.1) yard (~> 0.9, >= 0.9.44) @@ -431,7 +415,6 @@ CHECKSUMS backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd - bundler (4.0.16) sha256=d6ca5dd440c24f9abce9844cf44cc8e18c6a553de65a47efb4544137af92c47d bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 @@ -441,6 +424,7 @@ CHECKSUMS delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 + docile (1.4.1) sha256=96159be799bfa73cdb721b840e9802126e4e03dfc26863db73647204c727f21e dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -458,11 +442,9 @@ CHECKSUMS irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 kettle-dev (2.3.7) sha256=eb370113cd030d03cbe2d33b31c99858951017e5ad21a17e9ed89dc3770028ee - kettle-drift (1.0.5) kettle-rb (0.1.4) sha256=9cef7ce4f7021666b7222292f29051e51eaf042e8a5db11f3f4dd72f74243fc1 - kettle-soup-cover (3.0.3) + kettle-soup-cover (1.1.3) sha256=a373827da22a7131d093afd32945e5b7d7a10a01ebfdded8fd2cb8230d69c8ad kettle-test (2.0.11) sha256=c710c90f7ab79d51f9452f0c09f5f90657e7a893f63583855c164d0b1b107ab2 - kettle-wash (0.1.0) sha256=5c04b3900d0957339e7c7d9997bbd804599b68bde002e6f47f4e28a0eea22ea7 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 @@ -522,11 +504,13 @@ CHECKSUMS ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 - simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 - simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea + simplecov (0.22.0) sha256=fe2622c7834ff23b98066bb0a854284b2729a569ac659f82621fc22ef36213a5 + simplecov-cobertura (3.2.0) sha256=70d702658677fcb20e5aceb6915ccf8bc62ff2ccd38b62b3ad5c9db5c0888740 simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 + simplecov-html (0.13.2) sha256=bd0b8e54e7c2d7685927e8d6286466359b6f16b18cb0df47b508e8d73c777246 + simplecov-lcov (0.9.0) sha256=7a77a31e200a595ed4b0249493056efd0c920601f53d2ef135ca34ee796346cd simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc - simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed + simplecov_json_formatter (0.1.4) sha256=529418fbe8de1713ac2b2d612aa3daa56d316975d307244399fa4838c601b428 sorbet-runtime (0.6.13347) sha256=54e7221d9f4b63f58aec79f3043752a9ba7810347c6ae0d903531591cc2d5f01 standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b diff --git a/gems/tree_haver/.kettle-drift.lock b/gems/tree_haver/.kettle-drift.lock index a77356e58..c74373b8e 100644 --- a/gems/tree_haver/.kettle-drift.lock +++ b/gems/tree_haver/.kettle-drift.lock @@ -25,14 +25,5 @@ 1517 ] } - ], - "vendored_gems_env: 'VENDORED_GEMS',\nvendor_gem_dir_env: 'VENDOR_GEM_DIR',": [ - { - "file": "gemfiles/modular/templating_local.gemfile", - "lines": [ - 58, - 69 - ] - } ] } diff --git a/gems/tree_haver/.rubocop_gradual.lock b/gems/tree_haver/.rubocop_gradual.lock deleted file mode 100644 index 5c1a4165c..000000000 --- a/gems/tree_haver/.rubocop_gradual.lock +++ /dev/null @@ -1,485 +0,0 @@ -{ - ".simplecov:3575099246": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "Gemfile:1100319032": [ - [29, 1, 38, "Lint/EmptyConditionalBody: Avoid `unless` branches without a body.", 96052388] - ], - "Rakefile:1868927885": [ - [18, 121, 17, "Layout/LineLength: Line is too long. [137/120]", 174264873], - [79, 3, 1023, "Metrics/BlockLength: Block has too many lines. [32/25]", 54868638], - [163, 121, 22, "Layout/LineLength: Line is too long. [142/120]", 1367093088], - [166, 121, 18, "Layout/LineLength: Line is too long. [138/120]", 3881946477] - ], - "gemfiles/modular/benchmark/r4/v0.5.gemfile:3644720371": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/benchmark/vHEAD.gemfile:2838879269": [ - [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/erb/r2/v3.0.gemfile:1688285565": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] - ], - "gemfiles/modular/erb/r3/v5.0.gemfile:2150258305": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] - ], - "gemfiles/modular/erb/r4/v5.0.gemfile:2150258305": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] - ], - "gemfiles/modular/erb/vHEAD.gemfile:981929959": [ - [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/mutex_m/r2/v0.3.gemfile:4055275004": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/mutex_m/r3/v0.3.gemfile:4055275004": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/mutex_m/r4/v0.3.gemfile:4055275004": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/mutex_m/vHEAD.gemfile:556854763": [ - [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/rspec.gemfile:2263543889": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] - ], - "gemfiles/modular/stringio/r2/v3.0.gemfile:821604304": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/stringio/r3/v3.0.gemfile:821604304": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/stringio/r4/v3.0.gemfile:821604304": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/stringio/vHEAD.gemfile:1045839691": [ - [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/x_std_libs.gemfile:2324400122": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/x_std_libs/r2/libs.gemfile:36276542": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] - ], - "gemfiles/modular/x_std_libs/r3/libs.gemfile:4030570297": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] - ], - "gemfiles/modular/x_std_libs/r4/libs.gemfile:909736663": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] - ], - "gemfiles/modular/x_std_libs/vHEAD.gemfile:907917303": [ - [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] - ], - "lib/tree_haver.rb:312280314": [ - [49, 1, 16, "Style/Documentation: Missing top-level documentation comment for `module TreeHaver`.", 3627168465], - [49, 1, 17806, "Metrics/ModuleLength: Module has too many lines. [462/100]", 765750911], - [67, 3, 566, "Metrics/MethodLength: Method has too many lines. [12/10]", 1536513137], - [124, 3, 272, "Metrics/MethodLength: Method has too many lines. [11/10]", 505877912], - [156, 3, 543, "Metrics/MethodLength: Method has too many lines. [14/10]", 3733215372], - [221, 3, 458, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `backend_module` is too high. [9/7]", 73937708], - [221, 3, 458, "Metrics/MethodLength: Method has too many lines. [12/10]", 73937708], - [221, 3, 458, "Metrics/PerceivedComplexity: Perceived complexity for `backend_module` is too high. [9/8]", 73937708], - [257, 3, 1147, "Metrics/AbcSize: Assignment Branch Condition size for `register_language` is too high. [<0, 20, 10> 22.36/17]", 738075279], - [257, 3, 1147, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `register_language` is too high. [11/7]", 738075279], - [257, 3, 1147, "Metrics/MethodLength: Method has too many lines. [16/10]", 738075279], - [257, 3, 1147, "Metrics/PerceivedComplexity: Perceived complexity for `register_language` is too high. [11/8]", 738075279], - [257, 24, 165, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [9/5]", 2985413937], - [292, 3, 1969, "Metrics/AbcSize: Assignment Branch Condition size for `parser_for` is too high. [<14, 35, 18> 41.77/17]", 3351435495], - [292, 3, 1969, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `parser_for` is too high. [19/7]", 3351435495], - [292, 3, 1969, "Metrics/MethodLength: Method has too many lines. [39/10]", 3351435495], - [292, 3, 1969, "Metrics/PerceivedComplexity: Perceived complexity for `parser_for` is too high. [19/8]", 3351435495], - [292, 17, 155, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [8/5]", 1417642817], - [347, 3, 2089, "Metrics/MethodLength: Method has too many lines. [51/10]", 2791676388], - [401, 3, 704, "Metrics/AbcSize: Assignment Branch Condition size for `requested_backend_type` is too high. [<4, 17, 9> 19.65/17]", 3087691662], - [401, 3, 704, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `requested_backend_type` is too high. [8/7]", 3087691662], - [401, 3, 704, "Metrics/MethodLength: Method has too many lines. [14/10]", 3087691662], - [401, 3, 704, "Metrics/PerceivedComplexity: Perceived complexity for `requested_backend_type` is too high. [9/8]", 3087691662], - [453, 3, 696, "Metrics/MethodLength: Method has too many lines. [14/10]", 307274721], - [484, 3, 422, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `registered_backend_type_available?` is too high. [8/7]", 1544952013], - [554, 3, 489, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `backend_module_for` is too high. [10/7]", 3448932255], - [554, 3, 489, "Metrics/MethodLength: Method has too many lines. [22/10]", 3448932255] - ], - "lib/tree_haver/backend_api.rb:3354059061": [ - [30, 3, 12181, "Metrics/ModuleLength: Module has too many lines. [243/100]", 205645546], - [139, 5, 8882, "Metrics/ClassLength: Class has too many lines. [180/100]", 4281605197], - [145, 7, 1502, "Metrics/AbcSize: Assignment Branch Condition size for `validate` is too high. [<4, 22, 10> 24.49/17]", 747017743], - [145, 7, 1502, "Metrics/MethodLength: Method has too many lines. [31/10]", 747017743], - [145, 7, 1502, "Metrics/PerceivedComplexity: Perceived complexity for `validate` is too high. [11/8]", 747017743], - [213, 7, 903, "Metrics/MethodLength: Method has too many lines. [24/10]", 3041411230], - [261, 7, 1271, "Metrics/AbcSize: Assignment Branch Condition size for `validate_capabilities_hash` is too high. [<7, 27, 7> 28.76/17]", 3965262932], - [261, 7, 1271, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `validate_capabilities_hash` is too high. [8/7]", 3965262932], - [261, 7, 1271, "Metrics/MethodLength: Method has too many lines. [25/10]", 3965262932], - [277, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 2253399502], - [296, 7, 908, "Metrics/AbcSize: Assignment Branch Condition size for `validate_language` is too high. [<6, 17, 4> 18.47/17]", 733551867], - [315, 7, 797, "Metrics/AbcSize: Assignment Branch Condition size for `validate_parser` is too high. [<5, 16, 7> 18.17/17]", 1229041751], - [315, 7, 797, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `validate_parser` is too high. [8/7]", 1229041751], - [315, 7, 797, "Metrics/MethodLength: Method has too many lines. [15/10]", 1229041751], - [349, 7, 862, "Metrics/AbcSize: Assignment Branch Condition size for `validate_node_class` is too high. [<8, 18, 8> 21.26/17]", 1873188195], - [349, 7, 862, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `validate_node_class` is too high. [8/7]", 1873188195], - [349, 7, 862, "Metrics/MethodLength: Method has too many lines. [20/10]", 1873188195], - [349, 7, 862, "Metrics/PerceivedComplexity: Perceived complexity for `validate_node_class` is too high. [9/8]", 1873188195], - [375, 11, 20, "Naming/PredicatePrefix: Rename `has_method_or_alias?` to `method_or_alias?`.", 285116235] - ], - "lib/tree_haver/backend_context.rb:159197618": [ - [3, 1, 16, "Style/Documentation: Missing top-level documentation comment for `module TreeHaver`.", 3627168465] - ], - "lib/tree_haver/backend_registry.rb:4046212912": [ - [4, 3, 22, "Style/Documentation: Missing top-level documentation comment for `module TreeHaver::BackendRegistry`.", 733935278], - [4, 3, 5121, "Metrics/ModuleLength: Module has too many lines. [152/100]", 1483988260], - [39, 5, 382, "Metrics/MethodLength: Method has too many lines. [11/10]", 2000730238], - [48, 16, 1, "Style/DoubleNegation: Avoid the use of double negation (`!!`).", 177540], - [55, 5, 889, "Metrics/AbcSize: Assignment Branch Condition size for `register_tag` is too high. [<5, 20, 5> 21.21/17]", 2276764069], - [55, 5, 889, "Metrics/MethodLength: Method has too many lines. [18/10]", 2276764069], - [105, 5, 397, "Metrics/MethodLength: Method has too many lines. [11/10]", 4007185633] - ], - "lib/tree_haver/backends/citrus.rb:3181984499": [ - [40, 9, 449, "Metrics/MethodLength: Method has too many lines. [11/10]", 1138819533], - [173, 11, 1133, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `from_library` is too high. [11/7]", 2613019266], - [173, 11, 1133, "Metrics/MethodLength: Method has too many lines. [16/10]", 2613019266], - [173, 11, 1133, "Metrics/PerceivedComplexity: Perceived complexity for `from_library` is too high. [11/8]", 2613019266], - [230, 9, 597, "Metrics/MethodLength: Method has too many lines. [12/10]", 3923424594], - [403, 9, 810, "Metrics/AbcSize: Assignment Branch Condition size for `structural?` is too high. [<3, 19, 8> 20.83/17]", 3166173256], - [403, 9, 810, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `structural?` is too high. [9/7]", 3166173256], - [403, 9, 810, "Metrics/MethodLength: Method has too many lines. [12/10]", 3166173256], - [403, 9, 810, "Metrics/PerceivedComplexity: Perceived complexity for `structural?` is too high. [9/8]", 3166173256], - [436, 9, 1272, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `extract_type_from_event` is too high. [9/7]", 2022108773], - [436, 9, 1272, "Metrics/MethodLength: Method has too many lines. [16/10]", 2022108773], - [436, 9, 1272, "Metrics/PerceivedComplexity: Perceived complexity for `extract_type_from_event` is too high. [10/8]", 2022108773], - [460, 11, 207, "Style/CaseLikeIf: Convert `if-elsif` to `case-when`.", 1995588659], - [476, 61, 10, "Style/NumericPredicate: Use `offset.positive?` instead of `offset > 0`.", 2454414278] - ], - "lib/tree_haver/backends/ffi.rb:691415497": [ - [83, 9, 853, "Metrics/MethodLength: Method has too many lines. [15/10]", 1876257977], - [147, 7, 7352, "Metrics/ModuleLength: Module has too many lines. [111/100]", 4125377349], - [148, 9, 7320, "Metrics/ClassLength: Class has too many lines. [109/100]", 1130902814], - [183, 11, 559, "Metrics/MethodLength: Method has too many lines. [11/10]", 678018999], - [232, 11, 4265, "Metrics/AbcSize: Assignment Branch Condition size for `try_load!` is too high. [<11, 40, 10> 42.67/17]", 2312962113], - [232, 11, 4265, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `try_load!` is too high. [10/7]", 2312962113], - [232, 11, 4265, "Metrics/MethodLength: Method has too many lines. [58/10]", 2312962113], - [232, 11, 4265, "Metrics/PerceivedComplexity: Perceived complexity for `try_load!` is too high. [11/8]", 2312962113], - [260, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2086221887], - [262, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 2163360042], - [367, 9, 312, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `<=>` is too high. [8/7]", 2433292528], - [437, 11, 4377, "Metrics/AbcSize: Assignment Branch Condition size for `from_library` is too high. [<16, 30, 18> 38.47/17]", 3403850855], - [437, 11, 4377, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `from_library` is too high. [17/7]", 3403850855], - [437, 11, 4377, "Metrics/MethodLength: Method has too many lines. [43/10]", 3403850855], - [437, 11, 4377, "Metrics/PerceivedComplexity: Perceived complexity for `from_library` is too high. [19/8]", 3403850855], - [437, 47, 4, "Lint/UnusedMethodArgument: Unused method argument - `name`.", 2087876002], - [502, 121, 11, "Layout/LineLength: Line is too long. [131/120]", 2415433817], - [554, 9, 3159, "Metrics/AbcSize: Assignment Branch Condition size for `language=` is too high. [<4, 44, 11> 45.53/17]", 1815427493], - [554, 9, 3159, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `language=` is too high. [10/7]", 1815427493], - [554, 9, 3159, "Metrics/MethodLength: Method has too many lines. [40/10]", 1815427493], - [554, 9, 3159, "Metrics/PerceivedComplexity: Perceived complexity for `language=` is too high. [10/8]", 1815427493], - [715, 7, 10494, "Metrics/ClassLength: Class has too many lines. [129/100]", 3710916551], - [744, 45, 9, "Style/NumericPredicate: Use `index.negative?` instead of `index < 0`.", 4215255415], - [807, 13, 10, "Naming/PredicatePrefix: Rename `has_error?` to `error?`.", 946854183], - [889, 21, 9, "Style/NumericPredicate: Use `index.negative?` instead of `index < 0`.", 4215255415], - [933, 9, 694, "Metrics/AbcSize: Assignment Branch Condition size for `descendant_for_point_range` is too high. [<7, 21, 5> 22.69/17]", 979329510], - [953, 9, 706, "Metrics/AbcSize: Assignment Branch Condition size for `named_descendant_for_point_range` is too high. [<7, 21, 5> 22.69/17]", 2494446138] - ], - "lib/tree_haver/backends/java.rb:3360169733": [ - [134, 7, 815, "Metrics/AbcSize: Assignment Branch Condition size for `configure_native_library_path!` is too high. [<4, 17, 6> 18.47/17]", 1362415302], - [227, 121, 7, "Layout/LineLength: Line is too long. [127/120]", 3409700051], - [260, 7, 9885, "Metrics/ClassLength: Class has too many lines. [114/100]", 136252046], - [292, 9, 312, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `<=>` is too high. [8/7]", 2433292528], - [340, 11, 4098, "Metrics/AbcSize: Assignment Branch Condition size for `from_library` is too high. [<19, 32, 14> 39.76/17]", 3050250526], - [340, 11, 4098, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `from_library` is too high. [14/7]", 3050250526], - [340, 11, 4098, "Metrics/MethodLength: Method has too many lines. [48/10]", 3050250526], - [340, 11, 4098, "Metrics/PerceivedComplexity: Perceived complexity for `from_library` is too high. [16/8]", 3050250526], - [426, 11, 2084, "Metrics/AbcSize: Assignment Branch Condition size for `load_by_name` is too high. [<11, 17, 6> 21.12/17]", 226213748], - [426, 11, 2084, "Metrics/MethodLength: Method has too many lines. [35/10]", 226213748], - [542, 9, 1016, "Metrics/MethodLength: Method has too many lines. [17/10]", 4123264427], - [649, 9, 702, "Metrics/MethodLength: Method has too many lines. [14/10]", 1334016319], - [649, 17, 89, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 3152137646], - [728, 9, 583, "Metrics/MethodLength: Method has too many lines. [11/10]", 2457478600], - [816, 13, 10, "Naming/PredicatePrefix: Rename `has_error?` to `error?`.", 946854183] - ], - "lib/tree_haver/backends/mri.rb:863330290": [ - [59, 9, 916, "Metrics/MethodLength: Method has too many lines. [15/10]", 749971754], - [179, 9, 312, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `<=>` is too high. [8/7]", 2433292528], - [232, 11, 1562, "Metrics/MethodLength: Method has too many lines. [11/10]", 3858647816] - ], - "lib/tree_haver/backends/parslet.rb:4170691266": [ - [41, 9, 323, "Metrics/MethodLength: Method has too many lines. [11/10]", 694290592], - [108, 121, 3, "Layout/LineLength: Line is too long. [123/120]", 193340030], - [172, 11, 1133, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `from_library` is too high. [11/7]", 2613019266], - [172, 11, 1133, "Metrics/MethodLength: Method has too many lines. [16/10]", 2613019266], - [172, 11, 1133, "Metrics/PerceivedComplexity: Perceived complexity for `from_library` is too high. [11/8]", 2613019266], - [246, 9, 591, "Metrics/MethodLength: Method has too many lines. [12/10]", 3007454066], - [335, 7, 6287, "Metrics/ClassLength: Class has too many lines. [155/100]", 3100555518], - [362, 9, 452, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `start_byte` is too high. [8/7]", 2663206926], - [362, 9, 452, "Metrics/MethodLength: Method has too many lines. [12/10]", 2663206926], - [380, 9, 557, "Metrics/MethodLength: Method has too many lines. [12/10]", 2982914846], - [443, 9, 404, "Metrics/MethodLength: Method has too many lines. [11/10]", 1111982079], - [495, 61, 10, "Style/NumericPredicate: Use `offset.positive?` instead of `offset > 0`.", 2454414278], - [501, 9, 313, "Metrics/MethodLength: Method has too many lines. [13/10]", 1927903077], - [519, 9, 448, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `find_first_slice` is too high. [8/7]", 229178429], - [519, 9, 448, "Metrics/MethodLength: Method has too many lines. [16/10]", 229178429], - [524, 17, 11, "Style/HashEachMethods: Use `each_value` instead of `values.each`.", 236538172], - [539, 9, 461, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `find_last_slice` is too high. [8/7]", 3960808114], - [539, 9, 461, "Metrics/MethodLength: Method has too many lines. [16/10]", 3960808114] - ], - "lib/tree_haver/backends/prism.rb:265399087": [ - [39, 9, 448, "Metrics/MethodLength: Method has too many lines. [11/10]", 2383415890], - [70, 121, 13, "Layout/LineLength: Line is too long. [133/120]", 721867551], - [71, 9, 712, "Metrics/MethodLength: Method has too many lines. [12/10]", 1576927704], - [145, 41, 6, "Lint/UnusedMethodArgument: Unused method argument - `symbol`.", 2153517219], - [182, 9, 554, "Metrics/MethodLength: Method has too many lines. [16/10]", 3452414947], - [250, 13, 11, "Naming/PredicatePrefix: Rename `has_errors?` to `errors?`.", 1181419252], - [275, 69, 27, "Lint/HashCompareByIdentity: Use `Hash#compare_by_identity` instead of using `object_id` for keys.", 1979346241], - [301, 13, 64, "Lint/HashCompareByIdentity: Use `Hash#compare_by_identity` instead of using `object_id` for keys.", 1942915391], - [305, 9, 519, "Metrics/AbcSize: Assignment Branch Condition size for `classify_comment_hint` is too high. [<5, 20, 5> 21.21/17]", 869270335], - [485, 13, 10, "Naming/PredicatePrefix: Rename `has_error?` to `error?`.", 946854183], - [554, 24, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765] - ], - "lib/tree_haver/backends/psych.rb:1528613408": [ - [30, 9, 448, "Metrics/MethodLength: Method has too many lines. [11/10]", 2367418678], - [59, 9, 601, "Metrics/MethodLength: Method has too many lines. [11/10]", 2824278890], - [342, 9, 901, "Metrics/AbcSize: Assignment Branch Condition size for `extract_text_from_location` is too high. [<8, 23, 18> 30.28/17]", 1252700264], - [342, 9, 901, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `extract_text_from_location` is too high. [14/7]", 1252700264], - [342, 9, 901, "Metrics/MethodLength: Method has too many lines. [22/10]", 1252700264], - [342, 9, 901, "Metrics/PerceivedComplexity: Perceived complexity for `extract_text_from_location` is too high. [16/8]", 1252700264] - ], - "lib/tree_haver/backends/rust.rb:3784474048": [ - [52, 9, 548, "Metrics/MethodLength: Method has too many lines. [15/10]", 3791803966], - [156, 121, 1, "Layout/LineLength: Line is too long. [121/120]", 177548] - ], - "lib/tree_haver/backends/tslp.rb:1702759733": [ - [18, 9, 559, "Metrics/MethodLength: Method has too many lines. [14/10]", 1306507697], - [68, 7, 14, "Style/Documentation: Missing top-level documentation comment for `class TreeHaver::Backends::Tslp::Language`.", 3674592793], - [80, 7, 12, "Style/Documentation: Missing top-level documentation comment for `class TreeHaver::Backends::Tslp::Parser`.", 2485220908], - [81, 9, 582, "Metrics/AbcSize: Assignment Branch Condition size for `parse` is too high. [<2, 17, 4> 17.58/17]", 103430155], - [103, 7, 10, "Style/Documentation: Missing top-level documentation comment for `class TreeHaver::Backends::Tslp::Tree`.", 3516465773], - [109, 7, 10, "Style/Documentation: Missing top-level documentation comment for `class TreeHaver::Backends::Tslp::Node`.", 3515419275], - [143, 13, 10, "Naming/PredicatePrefix: Rename `has_error?` to `error?`.", 946854183] - ], - "lib/tree_haver/base/comment.rb:699160654": [ - [10, 5, 8183, "Metrics/ClassLength: Class has too many lines. [152/100]", 4001235397] - ], - "lib/tree_haver/base/node.rb:586469776": [ - [36, 5, 7668, "Metrics/ClassLength: Class has too many lines. [156/100]", 171773185], - [162, 11, 10, "Naming/PredicatePrefix: Rename `has_error?` to `error?`.", 946854183], - [208, 27, 8, "Style/NumericPredicate: Use `cmp.zero?` instead of `cmp == 0`.", 736104011], - [239, 7, 888, "Metrics/AbcSize: Assignment Branch Condition size for `source_position` is too high. [<6, 20, 12> 24.08/17]", 3968023659], - [239, 7, 888, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `source_position` is too high. [9/7]", 3968023659], - [239, 7, 888, "Metrics/MethodLength: Method has too many lines. [28/10]", 3968023659], - [239, 7, 888, "Metrics/PerceivedComplexity: Perceived complexity for `source_position` is too high. [13/8]", 3968023659], - [306, 7, 355, "Metrics/MethodLength: Method has too many lines. [11/10]", 1012295608] - ], - "lib/tree_haver/base/tree.rb:3081630142": [ - [89, 15, 145, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 1155535733], - [103, 11, 10, "Naming/PredicatePrefix: Rename `has_error?` to `error?`.", 946854183] - ], - "lib/tree_haver/citrus_grammar_finder.rb:2540014236": [ - [31, 3, 7013, "Metrics/ClassLength: Class has too many lines. [102/100]", 245808593], - [66, 5, 3770, "Metrics/AbcSize: Assignment Branch Condition size for `available?` is too high. [<16, 52, 21> 58.32/17]", 3886463212], - [66, 5, 3770, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `available?` is too high. [22/7]", 3886463212], - [66, 5, 3770, "Metrics/MethodLength: Method has too many lines. [50/10]", 3886463212], - [66, 5, 3770, "Metrics/PerceivedComplexity: Perceived complexity for `available?` is too high. [22/8]", 3886463212], - [94, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5858894] - ], - "lib/tree_haver/contracts.rb:1571706604": [ - [3, 1, 16, "Style/Documentation: Missing top-level documentation comment for `module TreeHaver`.", 3627168465], - [3, 1, 28139, "Metrics/ModuleLength: Module has too many lines. [924/100]", 3701899480], - [91, 5, 732, "Metrics/AbcSize: Assignment Branch Condition size for `to_h` is too high. [<0, 18, 2> 18.11/17]", 3031678572], - [91, 5, 732, "Metrics/MethodLength: Method has too many lines. [17/10]", 3031678572], - [170, 5, 697, "Metrics/MethodLength: Method has too many lines. [18/10]", 389212725], - [231, 5, 507, "Metrics/MethodLength: Method has too many lines. [13/10]", 2631332781], - [329, 5, 580, "Metrics/MethodLength: Method has too many lines. [13/10]", 2166080747], - [558, 5, 558, "Metrics/AbcSize: Assignment Branch Condition size for `to_h` is too high. [<0, 17, 4> 17.46/17]", 2109105399], - [558, 5, 558, "Metrics/MethodLength: Method has too many lines. [18/10]", 2109105399], - [610, 3, 780, "Metrics/AbcSize: Assignment Branch Condition size for `library_path_errors` is too high. [<3, 20, 10> 22.56/17]", 1003454820], - [610, 3, 780, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `library_path_errors` is too high. [10/7]", 1003454820], - [610, 3, 780, "Metrics/MethodLength: Method has too many lines. [14/10]", 1003454820], - [610, 3, 780, "Metrics/PerceivedComplexity: Perceived complexity for `library_path_errors` is too high. [10/8]", 1003454820], - [652, 3, 686, "Metrics/MethodLength: Method has too many lines. [16/10]", 2530945134], - [674, 3, 483, "Metrics/MethodLength: Method has too many lines. [15/10]", 3654427448], - [693, 3, 511, "Metrics/MethodLength: Method has too many lines. [16/10]", 145071639], - [770, 5, 384, "Metrics/AbcSize: Assignment Branch Condition size for `to_h` is too high. [<0, 19, 6> 19.92/17]", 1287649270], - [841, 5, 449, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `to_h` is too high. [10/7]", 1722332092], - [841, 5, 449, "Metrics/PerceivedComplexity: Perceived complexity for `to_h` is too high. [10/8]", 1722332092], - [873, 121, 1, "Layout/LineLength: Line is too long. [121/120]", 177610], - [874, 5, 420, "Metrics/MethodLength: Method has too many lines. [12/10]", 722580369], - [914, 42, 8, "Lint/StructNewOverride: `:entries` member overrides `Struct#entries` and it may be unexpected.", 999966509], - [937, 3, 473, "Metrics/MethodLength: Method has too many lines. [18/10]", 1284459726], - [958, 3, 655, "Metrics/AbcSize: Assignment Branch Condition size for `byte_offset_for_point` is too high. [<7, 25, 14> 29.5/17]", 1278853347], - [958, 3, 655, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `byte_offset_for_point` is too high. [9/7]", 1278853347], - [958, 3, 655, "Metrics/MethodLength: Method has too many lines. [17/10]", 1278853347], - [958, 3, 655, "Metrics/PerceivedComplexity: Perceived complexity for `byte_offset_for_point` is too high. [10/8]", 1278853347] - ], - "lib/tree_haver/grammar_finder.rb:3107533528": [ - [55, 3, 13660, "Metrics/ClassLength: Class has too many lines. [200/100]", 1847629568], - [155, 5, 1710, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `find_library_path` is too high. [8/7]", 4164717952], - [155, 5, 1710, "Metrics/MethodLength: Method has too many lines. [25/10]", 4164717952], - [269, 7, 845, "Metrics/MethodLength: Method has too many lines. [12/10]", 916567473], - [315, 5, 577, "Metrics/MethodLength: Method has too many lines. [16/10]", 651056353], - [340, 5, 623, "Metrics/MethodLength: Method has too many lines. [14/10]", 1438381615], - [360, 5, 846, "Metrics/MethodLength: Method has too many lines. [12/10]", 667615068], - [398, 5, 653, "Metrics/MethodLength: Method has too many lines. [12/10]", 1765172995] - ], - "lib/tree_haver/kaitai_backend.rb:335397596": [ - [3, 1, 16, "Style/Documentation: Missing top-level documentation comment for `module TreeHaver`.", 3627168465] - ], - "lib/tree_haver/language.rb:2775049278": [ - [39, 3, 12087, "Metrics/ModuleLength: Module has too many lines. [115/100]", 221887443], - [40, 5, 12061, "Metrics/ClassLength: Class has too many lines. [113/100]", 309443185], - [89, 7, 1966, "Metrics/AbcSize: Assignment Branch Condition size for `from_library` is too high. [<4, 20, 10> 22.72/17]", 980659500], - [89, 7, 1966, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `from_library` is too high. [9/7]", 980659500], - [89, 7, 1966, "Metrics/MethodLength: Method has too many lines. [31/10]", 980659500], - [89, 7, 1966, "Metrics/PerceivedComplexity: Perceived complexity for `from_library` is too high. [11/8]", 980659500], - [114, 121, 1, "Layout/LineLength: Line is too long. [121/120]", 177538], - [156, 7, 4289, "Metrics/AbcSize: Assignment Branch Condition size for `method_missing` is too high. [<10, 39, 30> 50.21/17]", 1314689525], - [156, 7, 4289, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `method_missing` is too high. [24/7]", 1314689525], - [156, 7, 4289, "Metrics/MethodLength: Method has too many lines. [56/10]", 1314689525], - [156, 7, 4289, "Metrics/PerceivedComplexity: Perceived complexity for `method_missing` is too high. [26/8]", 1314689525], - [274, 7, 786, "Metrics/MethodLength: Method has too many lines. [12/10]", 3697766033] - ], - "lib/tree_haver/language_pack.rb:3024861237": [ - [3, 1, 16, "Style/Documentation: Missing top-level documentation comment for `module TreeHaver`.", 3627168465] - ], - "lib/tree_haver/language_registry.rb:3137013690": [ - [83, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5861089], - [111, 5, 834, "Metrics/AbcSize: Assignment Branch Condition size for `with_registration` is too high. [<11, 22, 5> 25.1/17]", 1103319853], - [111, 5, 834, "Metrics/MethodLength: Method has too many lines. [25/10]", 1103319853] - ], - "lib/tree_haver/library_path_utils.rb:1552423902": [ - [32, 5, 861, "Metrics/MethodLength: Method has too many lines. [12/10]", 1638068630] - ], - "lib/tree_haver/node.rb:715762930": [ - [62, 3, 16601, "Metrics/ClassLength: Class has too many lines. [237/100]", 2290466920], - [136, 5, 708, "Metrics/AbcSize: Assignment Branch Condition size for `start_point` is too high. [<2, 19, 7> 20.35/17]", 2066418249], - [136, 5, 708, "Metrics/MethodLength: Method has too many lines. [17/10]", 2066418249], - [161, 5, 694, "Metrics/AbcSize: Assignment Branch Condition size for `end_point` is too high. [<2, 19, 7> 20.35/17]", 2127773446], - [161, 5, 694, "Metrics/MethodLength: Method has too many lines. [17/10]", 2127773446], - [232, 5, 948, "Metrics/AbcSize: Assignment Branch Condition size for `text` is too high. [<1, 14, 11> 17.83/17]", 748349201], - [232, 5, 948, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `text` is too high. [9/7]", 748349201], - [232, 5, 948, "Metrics/MethodLength: Method has too many lines. [16/10]", 748349201], - [232, 5, 948, "Metrics/PerceivedComplexity: Perceived complexity for `text` is too high. [11/8]", 748349201], - [259, 9, 10, "Naming/PredicatePrefix: Rename `has_error?` to `error?`.", 946854183], - [328, 5, 994, "Metrics/AbcSize: Assignment Branch Condition size for `named_child` is too high. [<6, 13, 10> 17.46/17]", 3449163117], - [328, 5, 994, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `named_child` is too high. [9/7]", 3449163117], - [328, 5, 994, "Metrics/MethodLength: Method has too many lines. [21/10]", 3449163117], - [328, 5, 994, "Metrics/PerceivedComplexity: Perceived complexity for `named_child` is too high. [10/8]", 3449163117], - [366, 5, 734, "Metrics/MethodLength: Method has too many lines. [15/10]", 3099919150], - [425, 7, 4, "Style/EmptyElse: Redundant `else`-clause.", 2087423834] - ], - "lib/tree_haver/parser.rb:1959976510": [ - [71, 3, 15231, "Metrics/ClassLength: Class has too many lines. [181/100]", 2262931609], - [84, 5, 938, "Metrics/MethodLength: Method has too many lines. [13/10]", 569209133], - [116, 5, 844, "Metrics/MethodLength: Method has too many lines. [11/10]", 3700471369], - [141, 5, 583, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `backend` is too high. [9/7]", 942469984], - [141, 5, 583, "Metrics/MethodLength: Method has too many lines. [20/10]", 942469984], - [237, 5, 1114, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `parse_string` is too high. [8/7]", 2146281390], - [237, 5, 1114, "Metrics/MethodLength: Method has too many lines. [16/10]", 2146281390], - [237, 5, 1114, "Metrics/PerceivedComplexity: Perceived complexity for `parse_string` is too high. [10/8]", 2146281390], - [273, 5, 1162, "Metrics/AbcSize: Assignment Branch Condition size for `switch_backend_for_language` is too high. [<10, 11, 11> 18.49/17]", 3918477333], - [273, 5, 1162, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `switch_backend_for_language` is too high. [11/7]", 3918477333], - [273, 5, 1162, "Metrics/MethodLength: Method has too many lines. [26/10]", 3918477333], - [273, 5, 1162, "Metrics/PerceivedComplexity: Perceived complexity for `switch_backend_for_language` is too high. [9/8]", 3918477333], - [320, 5, 3598, "Metrics/AbcSize: Assignment Branch Condition size for `unwrap_language` is too high. [<4, 32, 32> 45.43/17]", 2683894777], - [320, 5, 3598, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `unwrap_language` is too high. [29/7]", 2683894777], - [320, 5, 3598, "Metrics/MethodLength: Method has too many lines. [55/10]", 2683894777], - [320, 5, 3598, "Metrics/PerceivedComplexity: Perceived complexity for `unwrap_language` is too high. [23/8]", 2683894777], - [414, 5, 892, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `try_reload_language_for_backend` is too high. [9/7]", 1872419716], - [414, 5, 892, "Metrics/MethodLength: Method has too many lines. [14/10]", 1872419716], - [414, 5, 892, "Metrics/PerceivedComplexity: Perceived complexity for `try_reload_language_for_backend` is too high. [9/8]", 1872419716] - ], - "lib/tree_haver/parslet_grammar_finder.rb:756779364": [ - [32, 3, 6418, "Metrics/ClassLength: Class has too many lines. [105/100]", 2916347470], - [67, 5, 2630, "Metrics/AbcSize: Assignment Branch Condition size for `available?` is too high. [<14, 39, 19> 45.59/17]", 1827795944], - [67, 5, 2630, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `available?` is too high. [20/7]", 1827795944], - [67, 5, 2630, "Metrics/MethodLength: Method has too many lines. [43/10]", 1827795944], - [67, 5, 2630, "Metrics/PerceivedComplexity: Perceived complexity for `available?` is too high. [20/8]", 1827795944] - ], - "lib/tree_haver/path_validator.rb:1827441298": [ - [31, 3, 11571, "Metrics/ModuleLength: Module has too many lines. [133/100]", 3916793077], - [71, 5, 1048, "Metrics/AbcSize: Assignment Branch Condition size for `trusted_directories` is too high. [<4, 16, 5> 17.23/17]", 2683168069], - [71, 5, 1048, "Metrics/MethodLength: Method has too many lines. [13/10]", 2683168069], - [182, 5, 1000, "Metrics/AbcSize: Assignment Branch Condition size for `safe_library_path?` is too high. [<1, 15, 15> 21.24/17]", 3331427816], - [182, 5, 1000, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `safe_library_path?` is too high. [15/7]", 3331427816], - [182, 5, 1000, "Metrics/MethodLength: Method has too many lines. [11/10]", 3331427816], - [182, 5, 1000, "Metrics/PerceivedComplexity: Perceived complexity for `safe_library_path?` is too high. [15/8]", 3331427816], - [314, 5, 911, "Metrics/AbcSize: Assignment Branch Condition size for `validation_errors` is too high. [<2, 21, 13> 24.78/17]", 1249065882], - [314, 5, 911, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `validation_errors` is too high. [13/7]", 1249065882], - [314, 5, 911, "Metrics/MethodLength: Method has too many lines. [14/10]", 1249065882], - [314, 5, 911, "Metrics/PerceivedComplexity: Perceived complexity for `validation_errors` is too high. [13/8]", 1249065882], - [345, 9, 20, "Naming/PredicatePrefix: Rename `has_valid_extension?` to `valid_extension?`.", 2041908655] - ], - "lib/tree_haver/peg_backends.rb:2882446693": [ - [3, 1, 16, "Style/Documentation: Missing top-level documentation comment for `module TreeHaver`.", 3627168465], - [37, 3, 611, "Metrics/MethodLength: Method has too many lines. [21/10]", 2394303132], - [39, 11, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], - [61, 3, 377, "Metrics/MethodLength: Method has too many lines. [13/10]", 1137341195] - ], - "lib/tree_haver/rspec/dependency_tags.rb:2954930617": [ - [7, 5, 21, "Style/Documentation: Missing top-level documentation comment for `module TreeHaver::RSpec::DependencyTags`.", 2626933713] - ], - "lib/tree_haver/tree.rb:3332079774": [ - [129, 5, 1443, "Metrics/AbcSize: Assignment Branch Condition size for `edit` is too high. [<8, 18, 7> 20.9/17]", 4208399016], - [129, 5, 1443, "Metrics/MethodLength: Method has too many lines. [24/10]", 4208399016], - [129, 13, 89, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 3152137646] - ], - "spec/backend_registry_spec.rb:229950927": [ - [5, 1, 3102, "Metrics/BlockLength: Block has too many lines. [62/25]", 3416335650] - ], - "spec/backends/tslp_spec.rb:1444201405": [ - [5, 1, 5497, "Metrics/BlockLength: Block has too many lines. [121/25]", 4279461260], - [30, 3, 1477, "Metrics/BlockLength: Block has too many lines. [32/25]", 2492475187], - [112, 3, 1352, "Metrics/BlockLength: Block has too many lines. [29/25]", 2972556266] - ], - "spec/fixtures_integration_spec.rb:1473080413": [ - [3, 1, 52001, "Metrics/BlockLength: Block has too many lines. [1115/25]", 592858895], - [108, 3, 1282, "Metrics/BlockLength: Block has too many lines. [29/25]", 505243730], - [141, 3, 1840, "Metrics/BlockLength: Block has too many lines. [35/25]", 1365684528], - [180, 3, 1365, "Metrics/BlockLength: Block has too many lines. [33/25]", 1597100003], - [247, 3, 2110, "Metrics/BlockLength: Block has too many lines. [41/25]", 219204301], - [294, 3, 2166, "Metrics/BlockLength: Block has too many lines. [27/25]", 2219571348], - [354, 3, 1786, "Metrics/BlockLength: Block has too many lines. [30/25]", 1655451032], - [432, 3, 1345, "Metrics/BlockLength: Block has too many lines. [26/25]", 1188499098], - [534, 3, 3250, "Metrics/BlockLength: Block has too many lines. [64/25]", 2852118886], - [589, 121, 57, "Layout/LineLength: Line is too long. [177/120]", 2115564430], - [602, 3, 752, "Metrics/AbcSize: Assignment Branch Condition size for `normalized_tree_node` is too high. [<0, 19, 4> 19.42/17]", 1725197185], - [602, 3, 752, "Metrics/MethodLength: Method has too many lines. [18/10]", 1725197185], - [623, 3, 850, "Metrics/AbcSize: Assignment Branch Condition size for `backend_capability` is too high. [<0, 20, 0> 20/17]", 3278569026], - [623, 3, 850, "Metrics/MethodLength: Method has too many lines. [14/10]", 3278569026], - [640, 3, 744, "Metrics/MethodLength: Method has too many lines. [13/10]", 1675624229], - [679, 3, 492, "Metrics/MethodLength: Method has too many lines. [11/10]", 4123526878], - [714, 3, 566, "Metrics/AbcSize: Assignment Branch Condition size for `parse_error_tolerance` is too high. [<1, 17, 1> 17.06/17]", 933590597], - [714, 3, 566, "Metrics/MethodLength: Method has too many lines. [14/10]", 933590597], - [739, 3, 2652, "Metrics/BlockLength: Block has too many lines. [47/25]", 214520278], - [1039, 7, 87, "Lint/ConstantDefinitionInBlock: Do not define constants this way within a block.", 3860036845], - [1045, 7, 60, "Lint/ConstantDefinitionInBlock: Do not define constants this way within a block.", 1411318317], - [1063, 3, 1334, "Metrics/BlockLength: Block has too many lines. [41/25]", 1427111445], - [1069, 7, 134, "Lint/ConstantDefinitionInBlock: Do not define constants this way within a block.", 1166944291], - [1075, 7, 60, "Lint/ConstantDefinitionInBlock: Do not define constants this way within a block.", 1411318317], - [1085, 7, 134, "Lint/ConstantDefinitionInBlock: Do not define constants this way within a block.", 1166944291], - [1091, 7, 60, "Lint/ConstantDefinitionInBlock: Do not define constants this way within a block.", 1411318317], - [1115, 3, 1290, "Metrics/BlockLength: Block has too many lines. [41/25]", 3478080675], - [1121, 7, 157, "Lint/ConstantDefinitionInBlock: Do not define constants this way within a block.", 2460330604], - [1127, 7, 60, "Lint/ConstantDefinitionInBlock: Do not define constants this way within a block.", 1411318317], - [1137, 7, 154, "Lint/ConstantDefinitionInBlock: Do not define constants this way within a block.", 3868502553], - [1143, 7, 60, "Lint/ConstantDefinitionInBlock: Do not define constants this way within a block.", 1411318317], - [1167, 3, 1405, "Metrics/BlockLength: Block has too many lines. [44/25]", 2313436250], - [1173, 7, 134, "Lint/ConstantDefinitionInBlock: Do not define constants this way within a block.", 1166944291], - [1179, 7, 60, "Lint/ConstantDefinitionInBlock: Do not define constants this way within a block.", 1411318317], - [1189, 7, 134, "Lint/ConstantDefinitionInBlock: Do not define constants this way within a block.", 1166944291], - [1195, 7, 60, "Lint/ConstantDefinitionInBlock: Do not define constants this way within a block.", 1411318317] - ], - "spec/grammar_finder_spec.rb:2436990663": [ - [5, 1, 2019, "Metrics/BlockLength: Block has too many lines. [38/25]", 3070098609], - [18, 3, 1514, "Metrics/BlockLength: Block has too many lines. [27/25]", 3385688711] - ], - "tree_haver.gemspec:665267582": [ - [16, 121, 19, "Layout/LineLength: Line is too long. [139/120]", 1512975621], - [129, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 2821357214], - [146, 121, 50, "Layout/LineLength: Line is too long. [170/120]", 3888612416], - [147, 121, 29, "Layout/LineLength: Line is too long. [149/120]", 981994949], - [154, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 4229808912] - ] -} diff --git a/gems/tree_haver/.structuredmerge/kettle-jem.yml b/gems/tree_haver/.structuredmerge/kettle-jem.yml index 04d200fb1..a0528b05f 100644 --- a/gems/tree_haver/.structuredmerge/kettle-jem.yml +++ b/gems/tree_haver/.structuredmerge/kettle-jem.yml @@ -246,6 +246,59 @@ templates: - Gemfile - certs/pboling.pem - tmp/.gitignore + - gemfiles/modular/benchmark/r4/v0.5.gemfile + - gemfiles/modular/benchmark/vHEAD.gemfile + - gemfiles/modular/cgi/r4/v0.5.gemfile + - gemfiles/modular/cgi/vHEAD.gemfile + - gemfiles/modular/coverage.gemfile + - gemfiles/modular/coverage_local.gemfile + - gemfiles/modular/debug.gemfile + - gemfiles/modular/documentation.gemfile + - gemfiles/modular/documentation_local.gemfile + - gemfiles/modular/erb/r2.3/default.gemfile + - gemfiles/modular/erb/r2.6/v2.2.gemfile + - gemfiles/modular/erb/r2/v3.0.gemfile + - gemfiles/modular/erb/r3.1/v4.0.gemfile + - gemfiles/modular/erb/r3/v5.0.gemfile + - gemfiles/modular/erb/r4/v5.0.gemfile + - gemfiles/modular/erb/vHEAD.gemfile + - gemfiles/modular/json/truffleruby_22_3.gemfile + - gemfiles/modular/json/truffleruby_23_0.gemfile + - gemfiles/modular/json/truffleruby_23_1.gemfile + - gemfiles/modular/mutex_m/r2.4/v0.1.gemfile + - gemfiles/modular/mutex_m/r2/v0.3.gemfile + - gemfiles/modular/mutex_m/r3/v0.3.gemfile + - gemfiles/modular/mutex_m/r4/v0.3.gemfile + - gemfiles/modular/mutex_m/vHEAD.gemfile + - gemfiles/modular/optional.gemfile + - gemfiles/modular/recording/r2.3/recording.gemfile + - gemfiles/modular/recording/r2.4/recording.gemfile + - gemfiles/modular/recording/r2.5/recording.gemfile + - gemfiles/modular/recording/r3/recording.gemfile + - gemfiles/modular/recording/r4/recording.gemfile + - gemfiles/modular/recording/vHEAD.gemfile + - gemfiles/modular/rspec.gemfile + - gemfiles/modular/runtime_heads.gemfile + - gemfiles/modular/stringio/r2.4/v0.0.2.gemfile + - gemfiles/modular/stringio/r2/v3.0.gemfile + - gemfiles/modular/stringio/r3/v3.0.gemfile + - gemfiles/modular/stringio/r4/v3.0.gemfile + - gemfiles/modular/stringio/vHEAD.gemfile + - gemfiles/modular/style.gemfile + - gemfiles/modular/style_local.gemfile + - gemfiles/modular/templating.gemfile + - gemfiles/modular/templating_local.gemfile + - gemfiles/modular/webrick/r4/v1.9.gemfile + - gemfiles/modular/webrick/vHEAD.gemfile + - gemfiles/modular/x_std_libs.gemfile + - gemfiles/modular/x_std_libs/r2.3/libs.gemfile + - gemfiles/modular/x_std_libs/r2.4/libs.gemfile + - gemfiles/modular/x_std_libs/r2.6/libs.gemfile + - gemfiles/modular/x_std_libs/r2/libs.gemfile + - gemfiles/modular/x_std_libs/r3.1/libs.gemfile + - gemfiles/modular/x_std_libs/r3/libs.gemfile + - gemfiles/modular/x_std_libs/r4/libs.gemfile + - gemfiles/modular/x_std_libs/vHEAD.gemfile - source: lib/gem/version.rb target: lib/tree_haver/version.rb - source: sig/gem.rbs diff --git a/gems/tree_haver/Gemfile b/gems/tree_haver/Gemfile index f4b83ee74..56f02d8d1 100644 --- a/gems/tree_haver/Gemfile +++ b/gems/tree_haver/Gemfile @@ -21,8 +21,6 @@ gemspec # Local workspace dependency wiring for *_local.gemfile overrides nomono_requirements = ['~> 1.0', '>= 1.0.8'] gem 'nomono', *nomono_requirements, require: false # ruby >= 2.2 -# Use released TSLP with the Ruby ABI platform-gem fix. -gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' # Templating (env-switched: STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local paths) eval_gemfile 'gemfiles/modular/templating.gemfile' if ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? diff --git a/gems/tree_haver/Gemfile.lock b/gems/tree_haver/Gemfile.lock index c41ccc754..55ceb255a 100644 --- a/gems/tree_haver/Gemfile.lock +++ b/gems/tree_haver/Gemfile.lock @@ -7,23 +7,6 @@ PATH tree_sitter_language_pack (>= 1.13.2, < 2.0) version_gem (~> 1.1, >= 1.1.9) -PATH - remote: /home/pboling/src/my/kettle-dev/kettle-drift - specs: - kettle-drift (1.0.5) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/kettle-dev/kettle-soup-cover - specs: - kettle-soup-cover (3.0.3) - kettle-wash (~> 0.1, >= 0.1.0) - simplecov (>= 1.0) - simplecov-cobertura (>= 4.0) - simplecov-console (~> 0.9, >= 0.9.5) - simplecov-rcov (~> 0.3, >= 0.3.7) - simplecov_lcov_formatter (~> 0.9, >= 0.9.0) - GEM remote: https://gem.coop/ specs: @@ -34,6 +17,10 @@ GEM bundler (>= 1.17.3) rake (>= 10) thor (>= 0.14) + appraisal2-rubocop (1.0.0) + appraisal2 (>= 3.1.4) + rubocop (>= 1.0) + version_gem (~> 1.1, >= 1.1.14) ast (2.4.3) backports (3.25.3) benchmark (0.5.0) @@ -41,6 +28,7 @@ GEM bundler-audit (0.9.3) bundler (>= 1.2.0) thor (~> 1.0) + cgi (0.5.2) citrus (3.0.2) cmdparse (3.0.7) concurrent-ruby (1.3.8) @@ -81,7 +69,7 @@ GEM dry-logic (~> 1.4) zeitwerk (~> 2.6) emoji_regex (15.0.0) - erb (6.0.5) + erb (6.0.6) gem_bench (2.0.5) bundler (>= 1.14) version_gem (~> 1.1, >= 1.1.4) @@ -106,6 +94,13 @@ GEM kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) kettle-rb (0.1.4) + kettle-soup-cover (3.0.4) + kettle-wash (~> 0.1, >= 0.1.0) + simplecov (>= 1.0) + simplecov-cobertura (>= 4.0) + simplecov-console (~> 0.9, >= 0.9.5) + simplecov-rcov (~> 0.3, >= 0.3.7) + simplecov_lcov_formatter (~> 0.9, >= 0.9.0) kettle-test (2.0.11) appraisal2 (~> 3.0, >= 3.0.6) backports (~> 3.0) @@ -117,7 +112,7 @@ GEM silent_stream (~> 1.0, >= 1.0.12) timecop-rspec (~> 1.0, >= 1.0.3) turbo_tests2 (~> 3.1, >= 3.1.12) - kettle-wash (0.1.0) + kettle-wash (0.1.1) version_gem (~> 1.1, >= 1.1.14) kramdown (2.5.2) rexml (>= 3.4.4) @@ -131,7 +126,7 @@ GEM racc (~> 1.4) nokogiri (1.19.4-x86_64-linux-musl) racc (~> 1.4) - nomono (1.0.8) + nomono (1.0.9) openssl (4.0.2) ostruct (0.6.3) parallel (1.28.0) @@ -207,6 +202,14 @@ GEM rubocop-ast (1.50.0) parser (>= 3.3.7.2) prism (~> 1.7) + rubocop-capybara (2.23.0) + lint_roller (~> 1.1) + rubocop (~> 1.81) + rubocop-env (0.1.0) + rubocop + rubocop-factory_bot (2.28.0) + lint_roller (~> 1.1) + rubocop (~> 1.72, >= 1.72.1) rubocop-gradual (0.4.0) benchmark diff-lcs (>= 1.2.0, < 2.0) @@ -214,13 +217,26 @@ GEM parallel (~> 1.10) rainbow (>= 2.2.2, < 4.0) rubocop (~> 1.0) - rubocop-lts (24.1.0) - rubocop-ruby3_2 (>= 3.0.0, < 4) - standard-rubocop-lts (>= 2.0.2, < 3) - version_gem (>= 1.1.2, < 3) + rubocop-lts (24.2.2) + rubocop-ruby3_2 (~> 3.0, >= 3.0.1) + standard-rubocop-lts (~> 2.0, >= 2.0.3) + version_gem (~> 1.1, >= 1.1.13) + rubocop-lts-rspec (1.0.5) + rubocop (~> 1.84, >= 1.84.2) + rubocop-env (~> 0.1, >= 0.1.0) + rubocop-factory_bot (~> 2.28, >= 2.28.0) + rubocop-rspec (~> 3.9, >= 3.9.0) + rubocop-rspec-extra (~> 0.3, >= 0.3.0) + standard (~> 1.54, >= 1.54.0) + standard-rspec (~> 0.5, >= 0.5.0) + version_gem (~> 1.1, >= 1.1.13) rubocop-md (2.0.4) lint_roller (~> 1.1) rubocop (>= 1.72.1) + rubocop-minitest (0.40.0) + lint_roller (~> 1.1) + rubocop (>= 1.75.0, < 2.0) + rubocop-ast (>= 1.38.0, < 2.0) rubocop-on-rbs (2.0.0) lint_roller (~> 1.1) rbs (~> 4.0) @@ -240,6 +256,13 @@ GEM lint_roller (~> 1.1) regexp_parser (>= 2.0) rubocop (~> 1.86, >= 1.86.2) + rubocop-rspec-extra (0.3.0) + lint_roller (~> 1.1) + rubocop (>= 1.72.1, < 2.0) + rubocop-rspec_rails (2.32.0) + lint_roller (~> 1.1) + rubocop (~> 1.72, >= 1.72.1) + rubocop-rspec (~> 3.5) rubocop-ruby3_2 (3.0.7) rubocop-gradual (~> 0.3, >= 0.3.6) rubocop-md (~> 2.0, >= 2.0.4) @@ -282,6 +305,12 @@ GEM standard-performance (1.9.0) lint_roller (~> 1.1) rubocop-performance (~> 1.26.0) + standard-rspec (0.5.0) + lint_roller (>= 1.0) + rubocop-capybara (~> 2.23) + rubocop-factory_bot (~> 2.27) + rubocop-rspec (~> 3.9) + rubocop-rspec_rails (~> 2.31) standard-rubocop-lts (2.0.10) standard (~> 1.54, >= 1.54.0) standard-custom (~> 1.0, >= 1.0.2) @@ -315,6 +344,7 @@ GEM unicode-emoji (~> 4.1) unicode-emoji (4.2.0) version_gem (1.1.14) + webrick (1.9.2) yaml-converter (0.2.3) hexapdf (>= 1.8, < 2) kramdown (>= 2.4, < 3) @@ -348,57 +378,61 @@ PLATFORMS DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) + appraisal2-rubocop (~> 1.0, >= 1.0.0) benchmark (~> 0.5, >= 0.5.0) bundler-audit (~> 0.9.3) + cgi (~> 0.5) debug (>= 1.1) - erb (~> 6.0, >= 6.0.4) + erb (~> 6.0, >= 6.0.6) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.0) irb (~> 1.17) kettle-dev (~> 2.0, >= 2.2.25) - kettle-drift! - kettle-soup-cover! + kettle-soup-cover (~> 3.0, >= 3.0.3) kettle-test (~> 2.0, >= 2.0.9) - kramdown (~> 2.5, >= 2.5.1) + kramdown (~> 2.5, >= 2.5.2) kramdown-parser-gfm (~> 1.1) mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) rake (~> 13.0) rbs (>= 3.0) rdoc (~> 6.11) - reek (~> 6.5) + reek (~> 6.5, >= 6.5.0) require_bench (~> 1.0, >= 1.0.4) - rubocop-lts (~> 24.1.0) - rubocop-on-rbs (~> 2.0) + rubocop-gradual (~> 0.4, >= 0.4.0) + rubocop-lts (~> 24.2, >= 24.2.1) + rubocop-lts-rspec (~> 1.0, >= 1.0.5) + rubocop-minitest (~> 0.40, >= 0.40.0) + rubocop-on-rbs (~> 2.0, >= 2.0.0) rubocop-packaging (~> 0.6, >= 0.6.0) - rubocop-rspec (~> 3.6) - rubocop-ruby3_2 (~> 3.0.0) + rubocop-ruby3_2 (~> 3.0, >= 3.0.6) ruby-progressbar (~> 1.13) - standard (>= 1.50) + standard (~> 1.56, >= 1.56.0) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) toml (~> 0.3) toml-rb (~> 4.1) tree_haver! - tree_sitter_language_pack (~> 1.13, >= 1.13.3) - yaml-converter (~> 0.1) - yard (~> 0.9, >= 0.9.44) - yard-fence (~> 0.9, >= 0.9.1) + webrick (~> 1.9) + yaml-converter (~> 0.2, >= 0.2.3) + yard (~> 0.9, >= 0.9.45) + yard-fence (~> 0.9, >= 0.9.6) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) - yard-timekeeper (~> 0.1) - yard-yaml (~> 0.1, >= 0.1.2) + yard-timekeeper (~> 0.2, >= 0.2.4) + yard-yaml (~> 0.2, >= 0.2.3) CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af ansi (1.6.0) sha256=ac9ea0c0ea8d32fb4e271348e609963ac78882f34b73836c2a02b3622e666658 appraisal2 (3.2.0) sha256=ccd0b767ac4060cd7af6d16747459b6990f49c39c7b4fb1f7d1146b1e97c492f + appraisal2-rubocop (1.0.0) sha256=b71410fbb014befda5340605a605b7f6f3f012739baf0acc5b4351b592c3258d ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd - bundler (4.0.16) sha256=d6ca5dd440c24f9abce9844cf44cc8e18c6a553de65a47efb4544137af92c47d bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 + cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 @@ -415,7 +449,7 @@ CHECKSUMS dry-schema (1.16.0) sha256=cd3aaeabc0f1af66ec82a29096d4c4fb92a0a58b9dae29a22b1bbceb78985727 dry-types (1.9.1) sha256=baebeecdb9f8395d6c9d227b62011279440943e3ef2468fe8ccc1ba11467f178 emoji_regex (15.0.0) sha256=a508b2c0bee561169564e0aec96085020c900520d335e5533fd8e78e59493829 - erb (6.0.5) sha256=858e63488cb796c9daba8b6e9ff4b3879c395022049be9a66a8e00980e612eac + erb (6.0.6) sha256=a9b24986700f5bf127c4f297c5403c3ca41b83b0a316c0cd09a096b56e644ae5 gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f @@ -424,11 +458,10 @@ CHECKSUMS irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 kettle-dev (2.3.7) sha256=eb370113cd030d03cbe2d33b31c99858951017e5ad21a17e9ed89dc3770028ee - kettle-drift (1.0.5) kettle-rb (0.1.4) sha256=9cef7ce4f7021666b7222292f29051e51eaf042e8a5db11f3f4dd72f74243fc1 - kettle-soup-cover (3.0.3) + kettle-soup-cover (3.0.4) kettle-test (2.0.11) sha256=c710c90f7ab79d51f9452f0c09f5f90657e7a893f63583855c164d0b1b107ab2 - kettle-wash (0.1.0) sha256=5c04b3900d0957339e7c7d9997bbd804599b68bde002e6f47f4e28a0eea22ea7 + kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 @@ -437,7 +470,7 @@ CHECKSUMS mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-x86_64-linux-gnu) sha256=379fae440b28915e3f19d752ce2dcf8465ed2b2fbefd2a7ca0dd497bc981a06a nokogiri (1.19.4-x86_64-linux-musl) sha256=17dfb7c1fa194ae02fbf7c51a7afc8d278045ab3fdacfd86f91d02d7b274470b - nomono (1.0.8) sha256=bf4b9b426cbf216ab17b70db474f691b8ae1f1e29de8db4b0ecd405e6e7e1c80 + nomono (1.0.9) openssl (4.0.2) sha256=1037ad2868ae58df9ad917891c0c0f9815a1172f6846d4bcdd508e4c2ee747c2 ostruct (0.6.3) sha256=95a2ed4a4bd1d190784e666b47b2d3f078e4a9efda2fccf18f84ddc6538ed912 parallel (1.28.0) sha256=33e6de1484baf2524792d178b0913fc8eb94c628d6cfe45599ad4458c638c970 @@ -470,14 +503,21 @@ CHECKSUMS rspec_junit_formatter (0.6.0) sha256=40dde674e6ae4e6cc0ff560da25497677e34fefd2338cc467a8972f602b62b15 rubocop (1.88.2) sha256=8def251c90cd955feb4daa3edc0ab56893250c4ce90ef81e6c80c03f9a939bbf rubocop-ast (1.50.0) sha256=b9ca88300da0803ee222ad20cdb30494c0a784eed06fdc35d254b06d662788db + rubocop-capybara (2.23.0) sha256=f9ea1ba3a7561ee8e88cf76fc378ce517ce5327155f305ee7b5c2500e5aee357 + rubocop-env (0.1.0) sha256=5ab9a259e71822bf514c8e900a9b68cc2f74ccc87d5493efcd03213f3068e718 + rubocop-factory_bot (2.28.0) sha256=4b17fc02124444173317e131759d195b0d762844a71a29fe8139c1105d92f0cb rubocop-gradual (0.4.0) sha256=9c7e584e6fef6c2539266a193a4572c970c22f99046fd6b0305bdde6228f96ad - rubocop-lts (24.1.0) sha256=9dcad4db2da2fe2f1f77f98c917d70e7c43eded703da14cd201d4be52a9272aa + rubocop-lts (24.2.2) sha256=be6c745e1bb61daebd6af3cc3227c60f95be9f642a080773cad7df14c5f9f174 + rubocop-lts-rspec (1.0.5) sha256=439552fd27440802cc499889e013bffa28aadc41adae5d4dfff3d984a2a809b4 rubocop-md (2.0.4) sha256=0d076b6b5e99dea2ddc928c4bd702497decb9a8400da7808091e02ebcafcfb93 + rubocop-minitest (0.40.0) sha256=353c698199115f12151144cf0b5a96f69bb9d77b660cf6536df2c4250c672a9d rubocop-on-rbs (2.0.0) sha256=ce74d1b3d5daead19f4b611623656c185821dfc9aed9c7079bb1e5d7d7c464be rubocop-packaging (0.6.0) sha256=fb92bd0fb48e6f8cdb1648d2249b0cd51c2497dcc87340132d22f01edbf558a7 rubocop-performance (1.26.1) sha256=cd19b936ff196df85829d264b522fd4f98b6c89ad271fa52744a8c11b8f71834 rubocop-rake (0.7.1) sha256=3797f2b6810c3e9df7376c26d5f44f3475eda59eb1adc38e6f62ecf027cbae4d rubocop-rspec (3.10.2) sha256=0b3e2ecc592cd10ecbf0095bb58d1e357905276e069643523cc19eb7495f65e2 + rubocop-rspec-extra (0.3.0) sha256=ee4b6484d0332a0d23c4a465eeb607e41888eb3d4ed479f850b9f5212514f787 + rubocop-rspec_rails (2.32.0) sha256=4a0d641c72f6ebb957534f539d9d0a62c47abd8ce0d0aeee1ef4701e892a9100 rubocop-ruby3_2 (3.0.7) sha256=f53dd6d286fb05186214fc6ec116783e7f837030918e8931c05de773e98f8466 rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 @@ -493,6 +533,7 @@ CHECKSUMS standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b standard-performance (1.9.0) sha256=49483d31be448292951d80e5e67cdcb576c2502103c7b40aec6f1b6e9c88e3f2 + standard-rspec (0.5.0) sha256=64d396524a65af47f5331b423d8cdd313e0267401647bb7892489ca89dad2973 standard-rubocop-lts (2.0.10) sha256=89708a505b7d8b24d2ac399a7520fcb9e764abc2ecb4289b631b5fe0e3b76617 stone_checksums (1.0.6) sha256=c775f830513d6c6ab26e31d1a5fbecd4c4e39002663d4d9f8fa96e97990b5298 stringio (3.2.0) sha256=c37cb2e58b4ffbd33fe5cd948c05934af997b36e0b6ca6fdf43afa234cf222e1 @@ -510,6 +551,7 @@ CHECKSUMS unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 + webrick (1.9.2) sha256=beb4a15fc474defed24a3bda4ffd88a490d517c9e4e6118c3edce59e45864131 yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 diff --git a/gems/tree_haver/README.md b/gems/tree_haver/README.md index 66dee99f8..7309e3280 100644 --- a/gems/tree_haver/README.md +++ b/gems/tree_haver/README.md @@ -360,7 +360,7 @@ tree-sitter is a powerful parser generator that creates incremental parsers for | Tokens to Remember | [![Gem name][⛳️name-img]][⛳️gem-name] [![Gem namespace][⛳️namespace-img]][⛳️gem-namespace] | |-------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | Works with MRI Ruby 4 | [![Ruby current Compat][💎ruby-c-i]][🚎11-c-wf]| -| Support & Community | [![Join Me on Daily.dev's RubyFriends][✉️ruby-friends-img]][✉️ruby-friends] [![Live Chat on Discord][✉️discord-invite-img-ftb]][✉️discord-invite] [![Get help from me on Upwork][👨🏼‍🏫expsup-upwork-img]][👨🏼‍🏫expsup-upwork] [![Get help from me on Codementor][👨🏼‍🏫expsup-codementor-img]][👨🏼‍🏫expsup-codementor] | +| Support & Community | [![Join Me on Daily.dev's RubyFriends][✉️ruby-friends-img]][✉️ruby-friends] [![Get help from RubyForum][✉️ruby-forum-img]][✉️ruby-forum] [![Live Chat on Discord][✉️discord-invite-img-ftb]][✉️discord-invite] [![Get help from me on Upwork][👨🏼‍🏫expsup-upwork-img]][👨🏼‍🏫expsup-upwork] [![Get help from me on Codementor][👨🏼‍🏫expsup-codementor-img]][👨🏼‍🏫expsup-codementor] | | Source | [![Source on GitLab.com][📜src-gl-img]][📜src-gl] [![Source on CodeBerg.org][📜src-cb-img]][📜src-cb] [![Source on Github.com][📜src-gh-img]][📜src-gh] [![The best SHA: dQw4w9WgXcQ!][🧮kloc-img]][🧮kloc] | | Documentation | [![Current release on RubyDoc.info][📜docs-cr-rd-img]][🚎yard-current] [![YARD on Galtzo.com][📜docs-head-rd-img]][🚎yard-head] [![Maintainer Blog][🚂maint-blog-img]][🚂maint-blog] [![GitLab Wiki][📜gl-wiki-img]][📜gl-wiki] [![GitHub Wiki][📜gh-wiki-img]][📜gh-wiki] | | Compliance | [![License: AGPL-3.0-only OR PolyForm-Small-Business-1.0.0][📄license-img]][📄license] [![Apache license compatibility: Category X][📄license-compat-img]][📄license-compat] [![📄ilo-declaration-img]][📄ilo-declaration] [![Security Policy][🔐security-img]][🔐security] [![Contributor Covenant 2.1][🪇conduct-img]][🪇conduct] [![SemVer 2.0.0][📌semver-img]][📌semver] | @@ -1838,6 +1838,8 @@ If none of the available licenses suit your use case, please [contact us](mailto [✉️discord-invite-img-ftb]: https://img.shields.io/discord/1373797679469170758?style=for-the-badge&logo=discord [✉️ruby-friends-img]: https://img.shields.io/badge/daily.dev-%F0%9F%92%8E_Ruby_Friends-0A0A0A?style=for-the-badge&logo=dailydotdev&logoColor=white [✉️ruby-friends]: https://app.daily.dev/squads/rubyfriends +[✉️ruby-forum-img]: https://img.shields.io/badge/RubyForum-Help-CC342D?style=for-the-badge&logo=ruby&logoColor=white +[✉️ruby-forum]: https://www.rubyforum.org/c/help/8 [✇bundle-group-pattern]: https://gist.github.com/pboling/4564780 [⛳️gem-namespace]: https://github.com/structuredmerge/structuredmerge-ruby/tree/main/gems/tree_haver [⛳️namespace-img]: https://img.shields.io/badge/namespace-TreeHaver-3C2D2D.svg?style=square&logo=ruby&logoColor=white diff --git a/gems/tree_haver/gemfiles/modular/cgi/r4/v0.5.gemfile b/gems/tree_haver/gemfiles/modular/cgi/r4/v0.5.gemfile new file mode 100644 index 000000000..17ad97260 --- /dev/null +++ b/gems/tree_haver/gemfiles/modular/cgi/r4/v0.5.gemfile @@ -0,0 +1 @@ +gem 'cgi', '~> 0.5' diff --git a/gems/tree_haver/gemfiles/modular/cgi/vHEAD.gemfile b/gems/tree_haver/gemfiles/modular/cgi/vHEAD.gemfile new file mode 100644 index 000000000..650fbf033 --- /dev/null +++ b/gems/tree_haver/gemfiles/modular/cgi/vHEAD.gemfile @@ -0,0 +1 @@ +gem 'cgi', '>= 0.5' diff --git a/gems/tree_haver/gemfiles/modular/coverage.gemfile b/gems/tree_haver/gemfiles/modular/coverage.gemfile index f96d50954..b93014b6b 100644 --- a/gems/tree_haver/gemfiles/modular/coverage.gemfile +++ b/gems/tree_haver/gemfiles/modular/coverage.gemfile @@ -7,7 +7,7 @@ if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? # Coverage (remote/released) platform :mri do - gem 'kettle-soup-cover', '~> 1.0', '>= 1.1.3', require: false + gem 'kettle-soup-cover', '~> 3.0', '>= 3.0.3', require: false end else eval_gemfile 'coverage_local.gemfile' diff --git a/gems/tree_haver/gemfiles/modular/coverage_local.gemfile b/gems/tree_haver/gemfiles/modular/coverage_local.gemfile index b5009f5f0..3376090fa 100644 --- a/gems/tree_haver/gemfiles/modular/coverage_local.gemfile +++ b/gems/tree_haver/gemfiles/modular/coverage_local.gemfile @@ -3,13 +3,33 @@ # Local path overrides for development. # Loaded by the associated non-local gemfile when KETTLE_DEV_DEV != "false". -require 'nomono/bundler' unless defined?(Nomono) +# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. +# Bundler records that dependency during Gemfile evaluation, but it does not +# activate that exact version before the immediate `require "nomono/bundler"`. +# If multiple compatible nomono versions are installed, RubyGems may activate +# the newest installed version while Gemfile.lock pins an older compatible one; +# Bundler then aborts with "already activated nomono X, but your Gemfile +# requires nomono Y". Prefer the locked compatible version when present, then +# activate it explicitly before requiring the Bundler DSL extension used below. +nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] +nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) +if File.file?(nomono_lockfile) + nomono_locked_spec = Bundler::LockfileParser + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } + nomono_locked = nomono_locked_spec && + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked +end +Kernel.send(:gem, 'nomono', *nomono_activation_requirements) +require 'nomono/bundler' local_gems = %w[kettle-dev kettle-test kettle-soup-cover kettle-drift] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) local_gems_to_eval = local_gems - %w[tree_haver] - declared_gems -# export KETTLE_DEV_DEV=/path/to/kettle-rb +# export KETTLE_DEV_DEV=/path/to/my platform :mri do eval_nomono_gems( gems: local_gems_to_eval, diff --git a/gems/tree_haver/gemfiles/modular/documentation.gemfile b/gems/tree_haver/gemfiles/modular/documentation.gemfile index dff5cc108..9d4535f12 100644 --- a/gems/tree_haver/gemfiles/modular/documentation.gemfile +++ b/gems/tree_haver/gemfiles/modular/documentation.gemfile @@ -7,17 +7,17 @@ # # Documentation -gem 'kramdown', '~> 2.5', '>= 2.5.1', require: false # Ruby >= 2.5 +gem 'kramdown', '~> 2.5', '>= 2.5.2', require: false # Ruby >= 2.5 gem 'kramdown-parser-gfm', '~> 1.1', require: false # Ruby >= 2.3 -gem 'yaml-converter', '~> 0.1', require: false # Ruby >= 3.2 -gem 'yard', '~> 0.9', '>= 0.9.44', require: false +gem 'yaml-converter', '~> 0.2', '>= 0.2.3', require: false # Ruby >= 3.2 +gem 'yard', '~> 0.9', '>= 0.9.45', require: false gem 'yard-junk', '~> 0.1', '>= 0.1.0', require: false # Ruby >= 3.1 gem 'yard-relative_markdown_links', '~> 0.6', require: false if ENV.fetch('GALTZO_FLOSS_DEV', 'false').casecmp('false').zero? - gem 'yard-fence', '~> 0.9', '>= 0.9.1', require: false # Ruby >= 3.2 - gem 'yard-timekeeper', '~> 0.1', require: false - gem 'yard-yaml', '~> 0.1', '>= 0.1.2', require: false + gem 'yard-fence', '~> 0.9', '>= 0.9.6', require: false # Ruby >= 3.2 + gem 'yard-timekeeper', '~> 0.2', '>= 0.2.4', require: false + gem 'yard-yaml', '~> 0.2', '>= 0.2.3', require: false else eval_gemfile 'documentation_local.gemfile' end diff --git a/gems/tree_haver/gemfiles/modular/documentation_local.gemfile b/gems/tree_haver/gemfiles/modular/documentation_local.gemfile index 4d4c2bd95..3ee48f71b 100644 --- a/gems/tree_haver/gemfiles/modular/documentation_local.gemfile +++ b/gems/tree_haver/gemfiles/modular/documentation_local.gemfile @@ -3,13 +3,35 @@ # Local path overrides for development. # Loaded by the associated non-local gemfile when GALTZO_FLOSS_DEV != "false". -require 'nomono/bundler' unless defined?(Nomono) +# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. +# Bundler records that dependency during Gemfile evaluation, but it does not +# activate that exact version before the immediate `require "nomono/bundler"`. +# If multiple compatible nomono versions are installed, RubyGems may activate +# the newest installed version while Gemfile.lock pins an older compatible one; +# Bundler then aborts with "already activated nomono X, but your Gemfile +# requires nomono Y". Prefer the locked compatible version when present, then +# activate it explicitly before requiring the Bundler DSL extension used below. +nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] +nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) +if File.file?(nomono_lockfile) + nomono_locked_spec = Bundler::LockfileParser + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } + nomono_locked = nomono_locked_spec && + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked +end +Kernel.send(:gem, 'nomono', *nomono_activation_requirements) +require 'nomono/bundler' local_gems = %w[yard-fence yard-timekeeper yard-yaml] +declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) +local_gems_to_eval = local_gems - %w[tree_haver] - declared_gems # export GALTZO_FLOSS_DEV=/path/to/galtzo-floss eval_nomono_gems( - gems: local_gems, + gems: local_gems_to_eval, prefix: 'GALTZO_FLOSS', path_env: 'GALTZO_FLOSS_DEV', vendored_gems_env: 'GALTZO_FLOSS_VENDORED_GEMS', diff --git a/gems/tree_haver/gemfiles/modular/erb/r3/v5.0.gemfile b/gems/tree_haver/gemfiles/modular/erb/r3/v5.0.gemfile index 0e3bf1b97..ec7ff451f 100644 --- a/gems/tree_haver/gemfiles/modular/erb/r3/v5.0.gemfile +++ b/gems/tree_haver/gemfiles/modular/erb/r3/v5.0.gemfile @@ -1 +1 @@ -gem 'erb', '~> 6.0', '>= 6.0.4' # ruby >= 3.2.0 +gem 'erb', '~> 6.0', '>= 6.0.6' # ruby >= 3.2.0 diff --git a/gems/tree_haver/gemfiles/modular/erb/r4/v5.0.gemfile b/gems/tree_haver/gemfiles/modular/erb/r4/v5.0.gemfile index 0e3bf1b97..ec7ff451f 100644 --- a/gems/tree_haver/gemfiles/modular/erb/r4/v5.0.gemfile +++ b/gems/tree_haver/gemfiles/modular/erb/r4/v5.0.gemfile @@ -1 +1 @@ -gem 'erb', '~> 6.0', '>= 6.0.4' # ruby >= 3.2.0 +gem 'erb', '~> 6.0', '>= 6.0.6' # ruby >= 3.2.0 diff --git a/gems/tree_haver/gemfiles/modular/json/truffleruby_22_3.gemfile b/gems/tree_haver/gemfiles/modular/json/truffleruby_22_3.gemfile new file mode 100644 index 000000000..9b2f8d96a --- /dev/null +++ b/gems/tree_haver/gemfiles/modular/json/truffleruby_22_3.gemfile @@ -0,0 +1,6 @@ +# frozen_string_literal: true + +if RUBY_ENGINE == 'truffleruby' && RUBY_ENGINE_VERSION.start_with?('22.3') + # TruffleRuby 22.3 ships the json default gem from its emulated MRI Ruby. + gem 'json', '= 2.5.1' +end diff --git a/gems/tree_haver/gemfiles/modular/json/truffleruby_23_0.gemfile b/gems/tree_haver/gemfiles/modular/json/truffleruby_23_0.gemfile new file mode 100644 index 000000000..d787a5ef4 --- /dev/null +++ b/gems/tree_haver/gemfiles/modular/json/truffleruby_23_0.gemfile @@ -0,0 +1,6 @@ +# frozen_string_literal: true + +if RUBY_ENGINE == 'truffleruby' && RUBY_ENGINE_VERSION.start_with?('23.0') + # TruffleRuby 23.0 ships the json default gem from its emulated MRI Ruby. + gem 'json', '= 2.6.1' +end diff --git a/gems/tree_haver/gemfiles/modular/json/truffleruby_23_1.gemfile b/gems/tree_haver/gemfiles/modular/json/truffleruby_23_1.gemfile new file mode 100644 index 000000000..d78486b0e --- /dev/null +++ b/gems/tree_haver/gemfiles/modular/json/truffleruby_23_1.gemfile @@ -0,0 +1,6 @@ +# frozen_string_literal: true + +if RUBY_ENGINE == 'truffleruby' && RUBY_ENGINE_VERSION.start_with?('23.1') + # TruffleRuby 23.1 ships the json default gem from its emulated MRI Ruby. + gem 'json', '= 2.6.3' +end diff --git a/gems/tree_haver/gemfiles/modular/optional.gemfile b/gems/tree_haver/gemfiles/modular/optional.gemfile index 3dde58067..80bc45196 100644 --- a/gems/tree_haver/gemfiles/modular/optional.gemfile +++ b/gems/tree_haver/gemfiles/modular/optional.gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -# To retain during tree_haver templating: +# To retain during kettle-jem templating: # kettle-jem:freeze # # ... your code # kettle-jem:unfreeze @@ -9,9 +9,8 @@ # Optional dependencies are not depended on directly, but may be used if present. # Required for curated binstubs generated by kettle-jem install -gem 'rbs', '>= 3.0', require: false # ruby >= 3.1 -gem 'stone_checksums', '~> 1.0', '>= 1.0.3', require: false # ruby >= 2.2 +gem "rbs", ">= 3.0", require: false # ruby >= 3.1 # Required for kettle-pre-release # URL parsing with Unicode support (falls back to URI if not available) -gem 'addressable', '>= 2.8', '< 3' # ruby >= 2.2 +gem "addressable", ">= 2.8", "< 3" # ruby >= 2.2 diff --git a/gems/tree_haver/gemfiles/modular/rspec.gemfile b/gems/tree_haver/gemfiles/modular/rspec.gemfile index 2af210a41..72fdf8b7f 100644 --- a/gems/tree_haver/gemfiles/modular/rspec.gemfile +++ b/gems/tree_haver/gemfiles/modular/rspec.gemfile @@ -1,4 +1,4 @@ -gem 'rspec_junit_formatter', - github: 'pboling/rspec_junit_formatter', - branch: 'main', - ref: '9e6bcaaedd49477b62878ed568dc4ada5cc7cb5e' +gem "rspec_junit_formatter", + github: "pboling/rspec_junit_formatter", + branch: "main", + ref: "9e6bcaaedd49477b62878ed568dc4ada5cc7cb5e" diff --git a/gems/tree_haver/gemfiles/modular/runtime_heads.gemfile b/gems/tree_haver/gemfiles/modular/runtime_heads.gemfile index eb1e00154..02f134c7f 100644 --- a/gems/tree_haver/gemfiles/modular/runtime_heads.gemfile +++ b/gems/tree_haver/gemfiles/modular/runtime_heads.gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -# To retain during tree_haver templating: +# To retain during kettle-jem templating: # kettle-jem:freeze # # ... your code # kettle-jem:unfreeze @@ -8,7 +8,4 @@ # Test against HEAD of runtime dependencies so we can proactively file bugs -# Ruby >= 2.2 -gem 'version_gem', github: 'ruby-oauth/version_gem', branch: 'main' - -eval_gemfile('x_std_libs/vHEAD.gemfile') +eval_gemfile("x_std_libs/vHEAD.gemfile") diff --git a/gems/tree_haver/gemfiles/modular/stringio/r2/v3.0.gemfile b/gems/tree_haver/gemfiles/modular/stringio/r2/v3.0.gemfile index 3616f4e3a..e85bb18ee 100644 --- a/gems/tree_haver/gemfiles/modular/stringio/r2/v3.0.gemfile +++ b/gems/tree_haver/gemfiles/modular/stringio/r2/v3.0.gemfile @@ -2,4 +2,4 @@ # NOT SEMVER # Version 3.0.7 dropped support for Ruby <= 2.7 # Version 3.0.0 dropped support for Ruby <= 2.4 -gem 'stringio', '>= 3.0' +gem "stringio", ">= 3.0" diff --git a/gems/tree_haver/gemfiles/modular/stringio/r3/v3.0.gemfile b/gems/tree_haver/gemfiles/modular/stringio/r3/v3.0.gemfile index 3616f4e3a..e85bb18ee 100644 --- a/gems/tree_haver/gemfiles/modular/stringio/r3/v3.0.gemfile +++ b/gems/tree_haver/gemfiles/modular/stringio/r3/v3.0.gemfile @@ -2,4 +2,4 @@ # NOT SEMVER # Version 3.0.7 dropped support for Ruby <= 2.7 # Version 3.0.0 dropped support for Ruby <= 2.4 -gem 'stringio', '>= 3.0' +gem "stringio", ">= 3.0" diff --git a/gems/tree_haver/gemfiles/modular/stringio/r4/v3.0.gemfile b/gems/tree_haver/gemfiles/modular/stringio/r4/v3.0.gemfile index 3616f4e3a..e85bb18ee 100644 --- a/gems/tree_haver/gemfiles/modular/stringio/r4/v3.0.gemfile +++ b/gems/tree_haver/gemfiles/modular/stringio/r4/v3.0.gemfile @@ -2,4 +2,4 @@ # NOT SEMVER # Version 3.0.7 dropped support for Ruby <= 2.7 # Version 3.0.0 dropped support for Ruby <= 2.4 -gem 'stringio', '>= 3.0' +gem "stringio", ">= 3.0" diff --git a/gems/tree_haver/gemfiles/modular/stringio/vHEAD.gemfile b/gems/tree_haver/gemfiles/modular/stringio/vHEAD.gemfile index 78f5f5d8a..5f2a74126 100644 --- a/gems/tree_haver/gemfiles/modular/stringio/vHEAD.gemfile +++ b/gems/tree_haver/gemfiles/modular/stringio/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 (dependency of omniauth) -gem 'stringio', github: 'ruby/stringio', branch: 'master' +gem "stringio", github: "ruby/stringio", branch: "master" diff --git a/gems/tree_haver/gemfiles/modular/style.gemfile b/gems/tree_haver/gemfiles/modular/style.gemfile index f9ff2a916..35de4dcd6 100644 --- a/gems/tree_haver/gemfiles/modular/style.gemfile +++ b/gems/tree_haver/gemfiles/modular/style.gemfile @@ -1,28 +1,31 @@ # frozen_string_literal: true -# To retain during tree_haver templating: +# To retain during kettle-jem templating: # kettle-jem:freeze # # ... your code # kettle-jem:unfreeze # -# We run rubocop on the latest version of Ruby, -# but in support of the oldest supported version of Ruby +# Style tasks run on the latest Ruby; RuboCop-LTS selects the compatibility +# rules for the configured Ruby floor independently from task dependency floors. -gem 'reek', '~> 6.5' +gem "reek", "~> 6.5", ">= 6.5.0" platform :mri do - gem 'rubocop-on-rbs', '~> 2.0' # ruby >= 3.2.0 + gem "appraisal2-rubocop", "~> 1.0", ">= 1.0.0", require: false + gem "rubocop-gradual", "~> 0.4", ">= 0.4.0" + gem "rubocop-minitest", "~> 0.40", ">= 0.40.0" + gem "rubocop-on-rbs", "~> 2.0", ">= 2.0.0" # ruby >= 3.2.0 # gem "rubocop", "~> 1.73", ">= 1.73.2" # constrained by standard - gem 'rubocop-packaging', '~> 0.6', '>= 0.6.0' - gem 'standard', '>= 1.50' + gem "rubocop-packaging", "~> 0.6", ">= 0.6.0" + gem "standard", "~> 1.56", ">= 1.56.0" - if ENV.fetch('RUBOCOP_LTS_LOCAL', 'false').casecmp('false').zero? - gem 'rubocop-lts', '~> 24.1.0' - # "rubocop-lts-rspec" can't add here until other gems are updated. - gem 'rubocop-rspec', '~> 3.6' - gem 'rubocop-ruby3_2', '~> 3.0.0' + if ENV.fetch("RUBOCOP_LTS_LOCAL", "false").casecmp("false").zero? + declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) + gem "rubocop-lts", "~> 24.2", ">= 24.2.1" unless declared_gems.include?("rubocop-lts") + gem "rubocop-lts-rspec", "~> 1.0", ">= 1.0.5" unless declared_gems.include?("rubocop-lts-rspec") + gem "rubocop-ruby3_2", "~> 3.0", ">= 3.0.6" unless declared_gems.include?("rubocop-ruby3_2") else - eval_gemfile('style_local.gemfile') + eval_gemfile("style_local.gemfile") end end diff --git a/gems/tree_haver/gemfiles/modular/style_local.gemfile b/gems/tree_haver/gemfiles/modular/style_local.gemfile index ce75bbe21..575fe7f75 100644 --- a/gems/tree_haver/gemfiles/modular/style_local.gemfile +++ b/gems/tree_haver/gemfiles/modular/style_local.gemfile @@ -1,24 +1,48 @@ # frozen_string_literal: true -# We run rubocop on the latest version of Ruby, -# but in support of the oldest supported version of Ruby +# Style tasks run on the latest Ruby; RuboCop-LTS selects the compatibility +# rules for the configured Ruby floor independently from task dependency floors. # Local path overrides for development. # Loaded by the associated non-local gemfile when RUBOCOP_LTS_LOCAL != "false". -require 'nomono/bundler' unless defined?(Nomono) +# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. +# Bundler records that dependency during Gemfile evaluation, but it does not +# activate that exact version before the immediate `require "nomono/bundler"`. +# If multiple compatible nomono versions are installed, RubyGems may activate +# the newest installed version while Gemfile.lock pins an older compatible one; +# Bundler then aborts with "already activated nomono X, but your Gemfile +# requires nomono Y". Prefer the locked compatible version when present, then +# activate it explicitly before requiring the Bundler DSL extension used below. +nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] +nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) +if File.file?(nomono_lockfile) + nomono_locked_spec = Bundler::LockfileParser + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == "nomono" } + nomono_locked = nomono_locked_spec && + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + if nomono_locked + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] + end +end +Kernel.send(:gem, "nomono", *nomono_activation_requirements) +require "nomono/bundler" local_gems = %w[rubocop-lts rubocop-lts-rspec rubocop-ruby3_2 standard-rubocop-lts] +declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) +local_gems_to_eval = local_gems - %w[tree_haver] - declared_gems # export VENDORED_GEMS=rubocop-lts,rubocop-lts-rspec,rubocop-ruby3_2,standard-rubocop-lts platform :mri do eval_nomono_gems( - gems: local_gems, - prefix: 'RUBOCOP_LTS', - path_env: 'RUBOCOP_LTS_LOCAL', - vendored_gems_env: 'VENDORED_GEMS', - vendor_gem_dir_env: 'VENDOR_GEM_DIR', - debug_env: 'RUBOCOP_LTS_DEBUG', - root: %w[src rubocop-lts] + gems: local_gems_to_eval, + prefix: "RUBOCOP_LTS", + path_env: "RUBOCOP_LTS_LOCAL", + vendored_gems_env: "VENDORED_GEMS", + vendor_gem_dir_env: "VENDOR_GEM_DIR", + debug_env: "RUBOCOP_LTS_DEBUG", + root: ["src", "rubocop-lts"] ) end diff --git a/gems/tree_haver/gemfiles/modular/templating.gemfile b/gems/tree_haver/gemfiles/modular/templating.gemfile index 2ddc9433f..9c3b9d91a 100644 --- a/gems/tree_haver/gemfiles/modular/templating.gemfile +++ b/gems/tree_haver/gemfiles/modular/templating.gemfile @@ -1,24 +1,22 @@ # frozen_string_literal: true -structuredmerge_remote = ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false').zero? -kettle_remote = ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? +structuredmerge_remote = ENV.fetch("STRUCTUREDMERGE_DEV", "false").casecmp("false").zero? +kettle_remote = ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false").zero? if structuredmerge_remote - # Parser dependencies for released installs. - gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' # Merge recipes for released installs. - gem 'kettle-jem', '>= 7.0' + gem "kettle-jem", ">= 7.0" end if kettle_remote # Template/plugin checks for released installs. - gem 'kettle-drift', '~> 1.0', '>= 1.0.5', require: false + gem "kettle-drift", "~> 1.0", ">= 1.0.6", require: false end # Set STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local development with path-based dependencies. # When false (default / CI), released kettle-jem brings merge gems and parser dependencies. # Local path overrides bring the same dependencies from sibling gemspecs. # -# Set KETTLE_DEV_DEV=/path/to/kettle-rb for local development with Kettle plugin gems. +# Set KETTLE_DEV_DEV=/path/to/my for local development with Kettle plugin gems. # When false (default / CI), released Kettle plugin gems are used. -eval_gemfile 'templating_local.gemfile' unless structuredmerge_remote && kettle_remote +eval_gemfile "templating_local.gemfile" unless structuredmerge_remote && kettle_remote diff --git a/gems/tree_haver/gemfiles/modular/templating_local.gemfile b/gems/tree_haver/gemfiles/modular/templating_local.gemfile index e17b4c419..0b5cc0f5f 100644 --- a/gems/tree_haver/gemfiles/modular/templating_local.gemfile +++ b/gems/tree_haver/gemfiles/modular/templating_local.gemfile @@ -4,7 +4,29 @@ # Loaded by the associated non-local gemfile when STRUCTUREDMERGE_DEV or KETTLE_DEV_DEV # is not "false". -require 'nomono/bundler' unless defined?(Nomono) +# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. +# Bundler records that dependency during Gemfile evaluation, but it does not +# activate that exact version before the immediate `require "nomono/bundler"`. +# If multiple compatible nomono versions are installed, RubyGems may activate +# the newest installed version while Gemfile.lock pins an older compatible one; +# Bundler then aborts with "already activated nomono X, but your Gemfile +# requires nomono Y". Prefer the locked compatible version when present, then +# activate it explicitly before requiring the Bundler DSL extension used below. +nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] +nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) +if File.file?(nomono_lockfile) + nomono_locked_spec = Bundler::LockfileParser + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == "nomono" } + nomono_locked = nomono_locked_spec && + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + if nomono_locked + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] + end +end +Kernel.send(:gem, "nomono", *nomono_activation_requirements) +require "nomono/bundler" structuredmerge_local_gems = %w[ tree_haver @@ -47,25 +69,25 @@ structuredmerge_local_gems_to_eval = structuredmerge_local_gems - %w[tree_haver] kettle_dev_local_gems_to_eval = kettle_dev_local_gems - %w[tree_haver] - declared_gems platform :mri do - if ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false') != 0 + if ENV.fetch("STRUCTUREDMERGE_DEV", "false").casecmp("false") != 0 eval_nomono_gems( gems: structuredmerge_local_gems_to_eval, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - vendored_gems_env: 'VENDORED_GEMS', - vendor_gem_dir_env: 'VENDOR_GEM_DIR', - debug_env: 'STRUCTUREDMERGE_DEBUG' + prefix: "STRUCTUREDMERGE", + path_env: "STRUCTUREDMERGE_DEV", + vendored_gems_env: "VENDORED_GEMS", + vendor_gem_dir_env: "VENDOR_GEM_DIR", + debug_env: "STRUCTUREDMERGE_DEBUG" ) end - if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false') != 0 + if ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false") != 0 eval_nomono_gems( gems: kettle_dev_local_gems_to_eval, - prefix: 'KETTLE_DEV', - path_env: 'KETTLE_DEV_DEV', - vendored_gems_env: 'VENDORED_GEMS', - vendor_gem_dir_env: 'VENDOR_GEM_DIR', - debug_env: 'KETTLE_DEV_DEBUG' + prefix: "KETTLE_DEV", + path_env: "KETTLE_DEV_DEV", + vendored_gems_env: "VENDORED_GEMS", + vendor_gem_dir_env: "VENDOR_GEM_DIR", + debug_env: "KETTLE_DEV_DEBUG" ) end end diff --git a/gems/tree_haver/gemfiles/modular/webrick/r4/v1.9.gemfile b/gems/tree_haver/gemfiles/modular/webrick/r4/v1.9.gemfile new file mode 100644 index 000000000..eaab4a473 --- /dev/null +++ b/gems/tree_haver/gemfiles/modular/webrick/r4/v1.9.gemfile @@ -0,0 +1 @@ +gem "webrick", "~> 1.9" diff --git a/gems/tree_haver/gemfiles/modular/webrick/vHEAD.gemfile b/gems/tree_haver/gemfiles/modular/webrick/vHEAD.gemfile new file mode 100644 index 000000000..8a789b634 --- /dev/null +++ b/gems/tree_haver/gemfiles/modular/webrick/vHEAD.gemfile @@ -0,0 +1 @@ +gem "webrick", ">= 1.9" diff --git a/gems/tree_haver/gemfiles/modular/x_std_libs.gemfile b/gems/tree_haver/gemfiles/modular/x_std_libs.gemfile index b1f43c097..77aad43f2 100644 --- a/gems/tree_haver/gemfiles/modular/x_std_libs.gemfile +++ b/gems/tree_haver/gemfiles/modular/x_std_libs.gemfile @@ -1,12 +1,12 @@ ### Std Lib Extracted Gems ruby_version = Gem::Version.new(RUBY_VERSION) -if ruby_version >= Gem::Version.new('4.0') - eval_gemfile 'x_std_libs/r4/libs.gemfile' -elsif ruby_version >= Gem::Version.new('3.2') - eval_gemfile 'x_std_libs/r3/libs.gemfile' -elsif ruby_version >= Gem::Version.new('3.1') - eval_gemfile 'x_std_libs/r3.1/libs.gemfile' +if ruby_version >= Gem::Version.new("4.0") + eval_gemfile "x_std_libs/r4/libs.gemfile" +elsif ruby_version >= Gem::Version.new("3.2") + eval_gemfile "x_std_libs/r3/libs.gemfile" +elsif ruby_version >= Gem::Version.new("3.1") + eval_gemfile "x_std_libs/r3.1/libs.gemfile" else - eval_gemfile 'x_std_libs/r2/libs.gemfile' + eval_gemfile "x_std_libs/r2/libs.gemfile" end diff --git a/gems/tree_haver/gemfiles/modular/x_std_libs/r2/libs.gemfile b/gems/tree_haver/gemfiles/modular/x_std_libs/r2/libs.gemfile index 16a5e3d70..441c4f03a 100644 --- a/gems/tree_haver/gemfiles/modular/x_std_libs/r2/libs.gemfile +++ b/gems/tree_haver/gemfiles/modular/x_std_libs/r2/libs.gemfile @@ -1,3 +1,3 @@ -eval_gemfile '../../erb/r2/v3.0.gemfile' -eval_gemfile '../../mutex_m/r2/v0.3.gemfile' -eval_gemfile '../../stringio/r2/v3.0.gemfile' +eval_gemfile "../../erb/r2/v3.0.gemfile" +eval_gemfile "../../mutex_m/r2/v0.3.gemfile" +eval_gemfile "../../stringio/r2/v3.0.gemfile" diff --git a/gems/tree_haver/gemfiles/modular/x_std_libs/r3/libs.gemfile b/gems/tree_haver/gemfiles/modular/x_std_libs/r3/libs.gemfile index 220ff95c1..c293a3ddd 100644 --- a/gems/tree_haver/gemfiles/modular/x_std_libs/r3/libs.gemfile +++ b/gems/tree_haver/gemfiles/modular/x_std_libs/r3/libs.gemfile @@ -1,3 +1,3 @@ -eval_gemfile '../../erb/r3/v5.0.gemfile' -eval_gemfile '../../mutex_m/r3/v0.3.gemfile' -eval_gemfile '../../stringio/r3/v3.0.gemfile' +eval_gemfile "../../erb/r3/v5.0.gemfile" +eval_gemfile "../../mutex_m/r3/v0.3.gemfile" +eval_gemfile "../../stringio/r3/v3.0.gemfile" diff --git a/gems/tree_haver/gemfiles/modular/x_std_libs/r4/libs.gemfile b/gems/tree_haver/gemfiles/modular/x_std_libs/r4/libs.gemfile index bd4e884df..eb5574247 100644 --- a/gems/tree_haver/gemfiles/modular/x_std_libs/r4/libs.gemfile +++ b/gems/tree_haver/gemfiles/modular/x_std_libs/r4/libs.gemfile @@ -1,4 +1,6 @@ -eval_gemfile '../../erb/r4/v5.0.gemfile' -eval_gemfile '../../mutex_m/r4/v0.3.gemfile' -eval_gemfile '../../stringio/r4/v3.0.gemfile' -eval_gemfile '../../benchmark/r4/v0.5.gemfile' +eval_gemfile "../../erb/r4/v5.0.gemfile" +eval_gemfile "../../mutex_m/r4/v0.3.gemfile" +eval_gemfile "../../stringio/r4/v3.0.gemfile" +eval_gemfile "../../benchmark/r4/v0.5.gemfile" +eval_gemfile "../../cgi/r4/v0.5.gemfile" +eval_gemfile "../../webrick/r4/v1.9.gemfile" diff --git a/gems/tree_haver/gemfiles/modular/x_std_libs/vHEAD.gemfile b/gems/tree_haver/gemfiles/modular/x_std_libs/vHEAD.gemfile index 91f383c11..d4d5b16c9 100644 --- a/gems/tree_haver/gemfiles/modular/x_std_libs/vHEAD.gemfile +++ b/gems/tree_haver/gemfiles/modular/x_std_libs/vHEAD.gemfile @@ -1,4 +1,6 @@ -eval_gemfile '../erb/vHEAD.gemfile' -eval_gemfile '../mutex_m/vHEAD.gemfile' -eval_gemfile '../stringio/vHEAD.gemfile' -eval_gemfile '../benchmark/vHEAD.gemfile' +eval_gemfile "../erb/vHEAD.gemfile" +eval_gemfile "../mutex_m/vHEAD.gemfile" +eval_gemfile "../stringio/vHEAD.gemfile" +eval_gemfile "../benchmark/vHEAD.gemfile" +eval_gemfile "../cgi/vHEAD.gemfile" +eval_gemfile "../webrick/vHEAD.gemfile" diff --git a/gems/tree_haver/lib/tree_haver/version.rb b/gems/tree_haver/lib/tree_haver/version.rb index 43365bf4e..9bd0db819 100644 --- a/gems/tree_haver/lib/tree_haver/version.rb +++ b/gems/tree_haver/lib/tree_haver/version.rb @@ -2,7 +2,7 @@ module TreeHaver module Version - VERSION = '7.1.0' + VERSION = "7.1.0" end VERSION = Version::VERSION # Traditional Constant Location end diff --git a/gems/typescript-merge/Gemfile.lock b/gems/typescript-merge/Gemfile.lock index dc4a6071f..8b8b3f446 100644 --- a/gems/typescript-merge/Gemfile.lock +++ b/gems/typescript-merge/Gemfile.lock @@ -6,41 +6,6 @@ PATH tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) -PATH - remote: /home/pboling/src/my/kettle-dev/kettle-drift - specs: - kettle-drift (1.0.5) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/kettle-dev/kettle-soup-cover - specs: - kettle-soup-cover (3.0.3) - kettle-wash (~> 0.1, >= 0.1.0) - simplecov (>= 1.0) - simplecov-cobertura (>= 4.0) - simplecov-console (~> 0.9, >= 0.9.5) - simplecov-rcov (~> 0.3, >= 0.3.7) - simplecov_lcov_formatter (~> 0.9, >= 0.9.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge - specs: - ast-merge (7.1.0) - benchmark - token-resolver (~> 2.0, >= 2.0.4) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver - specs: - tree_haver (7.1.0) - citrus (~> 3.0) - parslet (~> 2.0) - tree_sitter_language_pack (>= 1.13.2, < 2.0) - version_gem (~> 1.1, >= 1.1.9) - GEM remote: https://gem.coop/ specs: @@ -52,6 +17,11 @@ GEM rake (>= 10) thor (>= 0.14) ast (2.4.3) + ast-merge (7.1.0) + benchmark + token-resolver (~> 2.0, >= 2.0.4) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) backports (3.25.3) benchmark (0.5.0) bigdecimal (4.1.2) @@ -68,6 +38,7 @@ GEM delegate (0.6.1) diff-lcs (1.6.2) diffy (3.4.4) + docile (1.4.1) dry-configurable (1.4.0) dry-core (~> 1.0) zeitwerk (~> 2.6) @@ -123,6 +94,15 @@ GEM kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) kettle-rb (0.1.4) + kettle-soup-cover (1.1.3) + simplecov (~> 0.22) + simplecov-cobertura (~> 3.0) + simplecov-console (~> 0.9, >= 0.9.3) + simplecov-html (~> 0.13, >= 0.13.1) + simplecov-lcov (~> 0.8) + simplecov-rcov (~> 0.3, >= 0.3.7) + simplecov_json_formatter (~> 0.1, >= 0.1.4) + version_gem (~> 1.1, >= 1.1.9) kettle-test (2.0.11) appraisal2 (~> 3.0, >= 3.0.6) backports (~> 3.0) @@ -134,8 +114,6 @@ GEM silent_stream (~> 1.0, >= 1.0.12) timecop-rspec (~> 1.0, >= 1.0.3) turbo_tests2 (~> 3.1, >= 3.1.12) - kettle-wash (0.1.0) - version_gem (~> 1.1, >= 1.1.14) kramdown (2.5.2) rexml (>= 3.4.4) kramdown-parser-gfm (1.1.0) @@ -282,18 +260,22 @@ GEM silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) - simplecov (1.0.2) - simplecov-cobertura (4.0.0) + simplecov (0.22.0) + docile (~> 1.1) + simplecov-html (~> 0.11) + simplecov_json_formatter (~> 0.1) + simplecov-cobertura (3.2.0) rexml - simplecov (~> 1.0) + simplecov (~> 0.19) simplecov-console (0.9.5) ansi simplecov terminal-table + simplecov-html (0.13.2) + simplecov-lcov (0.9.0) simplecov-rcov (0.3.7) simplecov (>= 0.4.1) - simplecov_lcov_formatter (0.9.0) - simplecov (>= 0.18) + simplecov_json_formatter (0.1.4) sorbet-runtime (0.6.13347) standard (1.56.0) language_server-protocol (~> 3.17.0.2) @@ -327,6 +309,11 @@ GEM token-resolver (2.0.4) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.13) + tree_haver (7.1.0) + citrus (~> 3.0) + parslet (~> 2.0) + tree_sitter_language_pack (>= 1.13.2, < 2.0) + version_gem (~> 1.1, >= 1.1.9) tree_sitter_language_pack (1.13.3-aarch64-linux) sorbet-runtime (~> 0.5) tree_sitter_language_pack (1.13.3-arm64-darwin) @@ -381,7 +368,6 @@ PLATFORMS DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) - ast-merge! benchmark (~> 0.5, >= 0.5.0) bundler-audit (~> 0.9.3) debug (>= 1.1) @@ -390,8 +376,7 @@ DEPENDENCIES gitmoji-regex (~> 2.0, >= 2.0.0) irb (~> 1.17) kettle-dev (~> 2.0, >= 2.2.25) - kettle-drift! - kettle-soup-cover! + kettle-soup-cover (~> 1.0, >= 1.1.3) kettle-test (~> 2.0, >= 2.0.9) kramdown (~> 2.5, >= 2.5.1) kramdown-parser-gfm (~> 1.1) @@ -411,7 +396,6 @@ DEPENDENCIES standard (>= 1.50) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) - tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) typescript-merge! yaml-converter (~> 0.1) @@ -431,7 +415,6 @@ CHECKSUMS backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd - bundler (4.0.16) sha256=d6ca5dd440c24f9abce9844cf44cc8e18c6a553de65a47efb4544137af92c47d bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 @@ -441,6 +424,7 @@ CHECKSUMS delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 + docile (1.4.1) sha256=96159be799bfa73cdb721b840e9802126e4e03dfc26863db73647204c727f21e dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -458,11 +442,9 @@ CHECKSUMS irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 kettle-dev (2.3.7) sha256=eb370113cd030d03cbe2d33b31c99858951017e5ad21a17e9ed89dc3770028ee - kettle-drift (1.0.5) kettle-rb (0.1.4) sha256=9cef7ce4f7021666b7222292f29051e51eaf042e8a5db11f3f4dd72f74243fc1 - kettle-soup-cover (3.0.3) + kettle-soup-cover (1.1.3) sha256=a373827da22a7131d093afd32945e5b7d7a10a01ebfdded8fd2cb8230d69c8ad kettle-test (2.0.11) sha256=c710c90f7ab79d51f9452f0c09f5f90657e7a893f63583855c164d0b1b107ab2 - kettle-wash (0.1.0) sha256=5c04b3900d0957339e7c7d9997bbd804599b68bde002e6f47f4e28a0eea22ea7 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 @@ -522,11 +504,13 @@ CHECKSUMS ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 - simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 - simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea + simplecov (0.22.0) sha256=fe2622c7834ff23b98066bb0a854284b2729a569ac659f82621fc22ef36213a5 + simplecov-cobertura (3.2.0) sha256=70d702658677fcb20e5aceb6915ccf8bc62ff2ccd38b62b3ad5c9db5c0888740 simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 + simplecov-html (0.13.2) sha256=bd0b8e54e7c2d7685927e8d6286466359b6f16b18cb0df47b508e8d73c777246 + simplecov-lcov (0.9.0) sha256=7a77a31e200a595ed4b0249493056efd0c920601f53d2ef135ca34ee796346cd simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc - simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed + simplecov_json_formatter (0.1.4) sha256=529418fbe8de1713ac2b2d612aa3daa56d316975d307244399fa4838c601b428 sorbet-runtime (0.6.13347) sha256=54e7221d9f4b63f58aec79f3043752a9ba7810347c6ae0d903531591cc2d5f01 standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b diff --git a/gems/yaml-merge/Gemfile.lock b/gems/yaml-merge/Gemfile.lock index ad17b24cf..ed2bd9afc 100644 --- a/gems/yaml-merge/Gemfile.lock +++ b/gems/yaml-merge/Gemfile.lock @@ -6,41 +6,6 @@ PATH tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) -PATH - remote: /home/pboling/src/my/kettle-dev/kettle-drift - specs: - kettle-drift (1.0.5) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/kettle-dev/kettle-soup-cover - specs: - kettle-soup-cover (3.0.3) - kettle-wash (~> 0.1, >= 0.1.0) - simplecov (>= 1.0) - simplecov-cobertura (>= 4.0) - simplecov-console (~> 0.9, >= 0.9.5) - simplecov-rcov (~> 0.3, >= 0.3.7) - simplecov_lcov_formatter (~> 0.9, >= 0.9.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge - specs: - ast-merge (7.1.0) - benchmark - token-resolver (~> 2.0, >= 2.0.4) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver - specs: - tree_haver (7.1.0) - citrus (~> 3.0) - parslet (~> 2.0) - tree_sitter_language_pack (>= 1.13.2, < 2.0) - version_gem (~> 1.1, >= 1.1.9) - GEM remote: https://gem.coop/ specs: @@ -52,6 +17,11 @@ GEM rake (>= 10) thor (>= 0.14) ast (2.4.3) + ast-merge (7.1.0) + benchmark + token-resolver (~> 2.0, >= 2.0.4) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) backports (3.25.3) benchmark (0.5.0) bigdecimal (4.1.2) @@ -68,6 +38,7 @@ GEM delegate (0.6.1) diff-lcs (1.6.2) diffy (3.4.4) + docile (1.4.1) dry-configurable (1.4.0) dry-core (~> 1.0) zeitwerk (~> 2.6) @@ -123,6 +94,15 @@ GEM kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) kettle-rb (0.1.4) + kettle-soup-cover (1.1.3) + simplecov (~> 0.22) + simplecov-cobertura (~> 3.0) + simplecov-console (~> 0.9, >= 0.9.3) + simplecov-html (~> 0.13, >= 0.13.1) + simplecov-lcov (~> 0.8) + simplecov-rcov (~> 0.3, >= 0.3.7) + simplecov_json_formatter (~> 0.1, >= 0.1.4) + version_gem (~> 1.1, >= 1.1.9) kettle-test (2.0.11) appraisal2 (~> 3.0, >= 3.0.6) backports (~> 3.0) @@ -134,8 +114,6 @@ GEM silent_stream (~> 1.0, >= 1.0.12) timecop-rspec (~> 1.0, >= 1.0.3) turbo_tests2 (~> 3.1, >= 3.1.12) - kettle-wash (0.1.0) - version_gem (~> 1.1, >= 1.1.14) kramdown (2.5.2) rexml (>= 3.4.4) kramdown-parser-gfm (1.1.0) @@ -282,18 +260,22 @@ GEM silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) - simplecov (1.0.2) - simplecov-cobertura (4.0.0) + simplecov (0.22.0) + docile (~> 1.1) + simplecov-html (~> 0.11) + simplecov_json_formatter (~> 0.1) + simplecov-cobertura (3.2.0) rexml - simplecov (~> 1.0) + simplecov (~> 0.19) simplecov-console (0.9.5) ansi simplecov terminal-table + simplecov-html (0.13.2) + simplecov-lcov (0.9.0) simplecov-rcov (0.3.7) simplecov (>= 0.4.1) - simplecov_lcov_formatter (0.9.0) - simplecov (>= 0.18) + simplecov_json_formatter (0.1.4) sorbet-runtime (0.6.13347) standard (1.56.0) language_server-protocol (~> 3.17.0.2) @@ -327,6 +309,11 @@ GEM token-resolver (2.0.4) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.13) + tree_haver (7.1.0) + citrus (~> 3.0) + parslet (~> 2.0) + tree_sitter_language_pack (>= 1.13.2, < 2.0) + version_gem (~> 1.1, >= 1.1.9) tree_sitter_language_pack (1.13.3-aarch64-linux) sorbet-runtime (~> 0.5) tree_sitter_language_pack (1.13.3-arm64-darwin) @@ -381,7 +368,6 @@ PLATFORMS DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) - ast-merge! benchmark (~> 0.5, >= 0.5.0) bundler-audit (~> 0.9.3) debug (>= 1.1) @@ -390,8 +376,7 @@ DEPENDENCIES gitmoji-regex (~> 2.0, >= 2.0.0) irb (~> 1.17) kettle-dev (~> 2.0, >= 2.2.25) - kettle-drift! - kettle-soup-cover! + kettle-soup-cover (~> 1.0, >= 1.1.3) kettle-test (~> 2.0, >= 2.0.9) kramdown (~> 2.5, >= 2.5.1) kramdown-parser-gfm (~> 1.1) @@ -411,7 +396,6 @@ DEPENDENCIES standard (>= 1.50) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) - tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) yaml-converter (~> 0.1) yaml-merge! @@ -431,7 +415,6 @@ CHECKSUMS backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd - bundler (4.0.16) sha256=d6ca5dd440c24f9abce9844cf44cc8e18c6a553de65a47efb4544137af92c47d bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 @@ -441,6 +424,7 @@ CHECKSUMS delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 + docile (1.4.1) sha256=96159be799bfa73cdb721b840e9802126e4e03dfc26863db73647204c727f21e dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -458,11 +442,9 @@ CHECKSUMS irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 kettle-dev (2.3.7) sha256=eb370113cd030d03cbe2d33b31c99858951017e5ad21a17e9ed89dc3770028ee - kettle-drift (1.0.5) kettle-rb (0.1.4) sha256=9cef7ce4f7021666b7222292f29051e51eaf042e8a5db11f3f4dd72f74243fc1 - kettle-soup-cover (3.0.3) + kettle-soup-cover (1.1.3) sha256=a373827da22a7131d093afd32945e5b7d7a10a01ebfdded8fd2cb8230d69c8ad kettle-test (2.0.11) sha256=c710c90f7ab79d51f9452f0c09f5f90657e7a893f63583855c164d0b1b107ab2 - kettle-wash (0.1.0) sha256=5c04b3900d0957339e7c7d9997bbd804599b68bde002e6f47f4e28a0eea22ea7 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 @@ -522,11 +504,13 @@ CHECKSUMS ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 - simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 - simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea + simplecov (0.22.0) sha256=fe2622c7834ff23b98066bb0a854284b2729a569ac659f82621fc22ef36213a5 + simplecov-cobertura (3.2.0) sha256=70d702658677fcb20e5aceb6915ccf8bc62ff2ccd38b62b3ad5c9db5c0888740 simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 + simplecov-html (0.13.2) sha256=bd0b8e54e7c2d7685927e8d6286466359b6f16b18cb0df47b508e8d73c777246 + simplecov-lcov (0.9.0) sha256=7a77a31e200a595ed4b0249493056efd0c920601f53d2ef135ca34ee796346cd simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc - simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed + simplecov_json_formatter (0.1.4) sha256=529418fbe8de1713ac2b2d612aa3daa56d316975d307244399fa4838c601b428 sorbet-runtime (0.6.13347) sha256=54e7221d9f4b63f58aec79f3043752a9ba7810347c6ae0d903531591cc2d5f01 standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b diff --git a/gems/zip-merge/Gemfile.lock b/gems/zip-merge/Gemfile.lock index 44bb38733..e9a145486 100644 --- a/gems/zip-merge/Gemfile.lock +++ b/gems/zip-merge/Gemfile.lock @@ -5,32 +5,6 @@ PATH tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) -PATH - remote: /home/pboling/src/my/kettle-dev/kettle-drift - specs: - kettle-drift (1.0.5) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/kettle-dev/kettle-soup-cover - specs: - kettle-soup-cover (3.0.3) - kettle-wash (~> 0.1, >= 0.1.0) - simplecov (>= 1.0) - simplecov-cobertura (>= 4.0) - simplecov-console (~> 0.9, >= 0.9.5) - simplecov-rcov (~> 0.3, >= 0.3.7) - simplecov_lcov_formatter (~> 0.9, >= 0.9.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver - specs: - tree_haver (7.1.0) - citrus (~> 3.0) - parslet (~> 2.0) - tree_sitter_language_pack (>= 1.13.2, < 2.0) - version_gem (~> 1.1, >= 1.1.9) - GEM remote: https://gem.coop/ specs: @@ -58,6 +32,7 @@ GEM delegate (0.6.1) diff-lcs (1.6.2) diffy (3.4.4) + docile (1.4.1) dry-configurable (1.4.0) dry-core (~> 1.0) zeitwerk (~> 2.6) @@ -113,6 +88,15 @@ GEM kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) kettle-rb (0.1.4) + kettle-soup-cover (1.1.3) + simplecov (~> 0.22) + simplecov-cobertura (~> 3.0) + simplecov-console (~> 0.9, >= 0.9.3) + simplecov-html (~> 0.13, >= 0.13.1) + simplecov-lcov (~> 0.8) + simplecov-rcov (~> 0.3, >= 0.3.7) + simplecov_json_formatter (~> 0.1, >= 0.1.4) + version_gem (~> 1.1, >= 1.1.9) kettle-test (2.0.11) appraisal2 (~> 3.0, >= 3.0.6) backports (~> 3.0) @@ -124,8 +108,6 @@ GEM silent_stream (~> 1.0, >= 1.0.12) timecop-rspec (~> 1.0, >= 1.0.3) turbo_tests2 (~> 3.1, >= 3.1.12) - kettle-wash (0.1.0) - version_gem (~> 1.1, >= 1.1.14) kramdown (2.5.2) rexml (>= 3.4.4) kramdown-parser-gfm (1.1.0) @@ -272,18 +254,22 @@ GEM silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) - simplecov (1.0.2) - simplecov-cobertura (4.0.0) + simplecov (0.22.0) + docile (~> 1.1) + simplecov-html (~> 0.11) + simplecov_json_formatter (~> 0.1) + simplecov-cobertura (3.2.0) rexml - simplecov (~> 1.0) + simplecov (~> 0.19) simplecov-console (0.9.5) ansi simplecov terminal-table + simplecov-html (0.13.2) + simplecov-lcov (0.9.0) simplecov-rcov (0.3.7) simplecov (>= 0.4.1) - simplecov_lcov_formatter (0.9.0) - simplecov (>= 0.18) + simplecov_json_formatter (0.1.4) sorbet-runtime (0.6.13347) standard (1.56.0) language_server-protocol (~> 3.17.0.2) @@ -314,6 +300,11 @@ GEM delegate (~> 0.1) rspec (~> 3.0) timecop (>= 0.7, < 1) + tree_haver (7.1.0) + citrus (~> 3.0) + parslet (~> 2.0) + tree_sitter_language_pack (>= 1.13.2, < 2.0) + version_gem (~> 1.1, >= 1.1.9) tree_sitter_language_pack (1.13.3-aarch64-linux) sorbet-runtime (~> 0.5) tree_sitter_language_pack (1.13.3-arm64-darwin) @@ -376,8 +367,7 @@ DEPENDENCIES gitmoji-regex (~> 2.0, >= 2.0.0) irb (~> 1.17) kettle-dev (~> 2.0, >= 2.2.25) - kettle-drift! - kettle-soup-cover! + kettle-soup-cover (~> 1.0, >= 1.1.3) kettle-test (~> 2.0, >= 2.0.9) kramdown (~> 2.5, >= 2.5.1) kramdown-parser-gfm (~> 1.1) @@ -397,7 +387,6 @@ DEPENDENCIES standard (>= 1.50) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) - tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) yaml-converter (~> 0.1) yard (~> 0.9, >= 0.9.44) @@ -416,7 +405,6 @@ CHECKSUMS backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd - bundler (4.0.16) sha256=d6ca5dd440c24f9abce9844cf44cc8e18c6a553de65a47efb4544137af92c47d bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 @@ -426,6 +414,7 @@ CHECKSUMS delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 + docile (1.4.1) sha256=96159be799bfa73cdb721b840e9802126e4e03dfc26863db73647204c727f21e dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -443,11 +432,9 @@ CHECKSUMS irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 kettle-dev (2.3.7) sha256=eb370113cd030d03cbe2d33b31c99858951017e5ad21a17e9ed89dc3770028ee - kettle-drift (1.0.5) kettle-rb (0.1.4) sha256=9cef7ce4f7021666b7222292f29051e51eaf042e8a5db11f3f4dd72f74243fc1 - kettle-soup-cover (3.0.3) + kettle-soup-cover (1.1.3) sha256=a373827da22a7131d093afd32945e5b7d7a10a01ebfdded8fd2cb8230d69c8ad kettle-test (2.0.11) sha256=c710c90f7ab79d51f9452f0c09f5f90657e7a893f63583855c164d0b1b107ab2 - kettle-wash (0.1.0) sha256=5c04b3900d0957339e7c7d9997bbd804599b68bde002e6f47f4e28a0eea22ea7 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 @@ -507,11 +494,13 @@ CHECKSUMS ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 - simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 - simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea + simplecov (0.22.0) sha256=fe2622c7834ff23b98066bb0a854284b2729a569ac659f82621fc22ef36213a5 + simplecov-cobertura (3.2.0) sha256=70d702658677fcb20e5aceb6915ccf8bc62ff2ccd38b62b3ad5c9db5c0888740 simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 + simplecov-html (0.13.2) sha256=bd0b8e54e7c2d7685927e8d6286466359b6f16b18cb0df47b508e8d73c777246 + simplecov-lcov (0.9.0) sha256=7a77a31e200a595ed4b0249493056efd0c920601f53d2ef135ca34ee796346cd simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc - simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed + simplecov_json_formatter (0.1.4) sha256=529418fbe8de1713ac2b2d612aa3daa56d316975d307244399fa4838c601b428 sorbet-runtime (0.6.13347) sha256=54e7221d9f4b63f58aec79f3043752a9ba7810347c6ae0d903531591cc2d5f01 standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b From 9a5e87546d82d880440dc0636f0d26e3bb01263f Mon Sep 17 00:00:00 2001 From: "Peter H. Boling" Date: Tue, 21 Jul 2026 13:50:15 -0600 Subject: [PATCH 115/188] =?UTF-8?q?=F0=9F=8E=A8=20Template=20bootstrap=20b?= =?UTF-8?q?y=20kettle-jem=20v7.1.0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gems/ruby-merge/Gemfile.lock | 22 +++++----- .../gemfiles/modular/optional.gemfile | 4 +- .../tree_haver/gemfiles/modular/rspec.gemfile | 8 ++-- .../gemfiles/modular/runtime_heads.gemfile | 2 +- .../gemfiles/modular/stringio/r2/v3.0.gemfile | 2 +- .../gemfiles/modular/stringio/r3/v3.0.gemfile | 2 +- .../gemfiles/modular/stringio/r4/v3.0.gemfile | 2 +- .../gemfiles/modular/stringio/vHEAD.gemfile | 2 +- .../tree_haver/gemfiles/modular/style.gemfile | 24 +++++----- .../gemfiles/modular/style_local.gemfile | 32 +++++++------- .../gemfiles/modular/templating.gemfile | 10 ++--- .../gemfiles/modular/templating_local.gemfile | 44 +++++++++---------- .../gemfiles/modular/webrick/r4/v1.9.gemfile | 2 +- .../gemfiles/modular/webrick/vHEAD.gemfile | 2 +- .../gemfiles/modular/x_std_libs.gemfile | 14 +++--- .../modular/x_std_libs/r2/libs.gemfile | 6 +-- .../modular/x_std_libs/r3/libs.gemfile | 6 +-- .../modular/x_std_libs/r4/libs.gemfile | 12 ++--- .../gemfiles/modular/x_std_libs/vHEAD.gemfile | 12 ++--- 19 files changed, 102 insertions(+), 106 deletions(-) diff --git a/gems/ruby-merge/Gemfile.lock b/gems/ruby-merge/Gemfile.lock index 7c04e64ea..0c7b620b7 100644 --- a/gems/ruby-merge/Gemfile.lock +++ b/gems/ruby-merge/Gemfile.lock @@ -7,7 +7,7 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/ast-merge specs: ast-merge (7.1.0) benchmark @@ -16,7 +16,7 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/tree_haver specs: tree_haver (7.1.0) citrus (~> 3.0) @@ -105,12 +105,12 @@ GEM rdoc (>= 4.0.0) reline (>= 0.4.2) json (2.21.1) - kettle-dev (2.3.7) + kettle-dev (2.3.8) emoji_regex (>= 15.0) kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) - kettle-rb (0.1.4) + kettle-rb (0.1.5) kettle-soup-cover (3.0.4) kettle-wash (~> 0.1, >= 0.1.0) simplecov (>= 1.0) @@ -118,7 +118,7 @@ GEM simplecov-console (~> 0.9, >= 0.9.5) simplecov-rcov (~> 0.3, >= 0.3.7) simplecov_lcov_formatter (~> 0.9, >= 0.9.0) - kettle-test (2.0.11) + kettle-test (2.0.12) appraisal2 (~> 3.0, >= 3.0.6) backports (~> 3.0) rspec (~> 3.0) @@ -351,9 +351,9 @@ GEM delegate (~> 0.1) rspec (~> 3.0) timecop (>= 0.7, < 1) - token-resolver (2.0.4) + token-resolver (2.0.5) parslet (~> 2.0) - version_gem (~> 1.1, >= 1.1.13) + version_gem (~> 1.1, >= 1.1.14) tree_sitter_language_pack (1.13.3-aarch64-linux) sorbet-runtime (~> 0.5) tree_sitter_language_pack (1.13.3-arm64-darwin) @@ -488,10 +488,10 @@ CHECKSUMS io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 - kettle-dev (2.3.7) sha256=eb370113cd030d03cbe2d33b31c99858951017e5ad21a17e9ed89dc3770028ee - kettle-rb (0.1.4) sha256=9cef7ce4f7021666b7222292f29051e51eaf042e8a5db11f3f4dd72f74243fc1 + kettle-dev (2.3.8) sha256=9d716ff21c660a730cb4e8d41e2e2f0630a28167a354b6e2924e242102aef72c + kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f kettle-soup-cover (3.0.4) - kettle-test (2.0.11) sha256=c710c90f7ab79d51f9452f0c09f5f90657e7a893f63583855c164d0b1b107ab2 + kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 @@ -577,7 +577,7 @@ CHECKSUMS thor (1.5.0) sha256=e3a9e55fe857e44859ce104a84675ab6e8cd59c650a49106a05f55f136425e73 timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 - token-resolver (2.0.4) sha256=33b926958f504525bba3ed511ab66fbcbf8ef30390815e931436b30f27ffcad0 + token-resolver (2.0.5) sha256=b852f924287ffb58a440856e862b056c8ad97e74b4b2526cee43e0771f40c25c tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-aarch64-linux) sha256=55ffc7c87868cb45658338363d9eba51b4a8b0259aa88e4de368d2bd1d52fea4 tree_sitter_language_pack (1.13.3-arm64-darwin) sha256=bc2498db605f212a1dbd2465ed3f65190d7da786f6ed5d30fcf958121aeb4a5c diff --git a/gems/tree_haver/gemfiles/modular/optional.gemfile b/gems/tree_haver/gemfiles/modular/optional.gemfile index 80bc45196..9ea429538 100644 --- a/gems/tree_haver/gemfiles/modular/optional.gemfile +++ b/gems/tree_haver/gemfiles/modular/optional.gemfile @@ -9,8 +9,8 @@ # Optional dependencies are not depended on directly, but may be used if present. # Required for curated binstubs generated by kettle-jem install -gem "rbs", ">= 3.0", require: false # ruby >= 3.1 +gem 'rbs', '>= 3.0', require: false # ruby >= 3.1 # Required for kettle-pre-release # URL parsing with Unicode support (falls back to URI if not available) -gem "addressable", ">= 2.8", "< 3" # ruby >= 2.2 +gem 'addressable', '>= 2.8', '< 3' # ruby >= 2.2 diff --git a/gems/tree_haver/gemfiles/modular/rspec.gemfile b/gems/tree_haver/gemfiles/modular/rspec.gemfile index 72fdf8b7f..2af210a41 100644 --- a/gems/tree_haver/gemfiles/modular/rspec.gemfile +++ b/gems/tree_haver/gemfiles/modular/rspec.gemfile @@ -1,4 +1,4 @@ -gem "rspec_junit_formatter", - github: "pboling/rspec_junit_formatter", - branch: "main", - ref: "9e6bcaaedd49477b62878ed568dc4ada5cc7cb5e" +gem 'rspec_junit_formatter', + github: 'pboling/rspec_junit_formatter', + branch: 'main', + ref: '9e6bcaaedd49477b62878ed568dc4ada5cc7cb5e' diff --git a/gems/tree_haver/gemfiles/modular/runtime_heads.gemfile b/gems/tree_haver/gemfiles/modular/runtime_heads.gemfile index 02f134c7f..ebf17c529 100644 --- a/gems/tree_haver/gemfiles/modular/runtime_heads.gemfile +++ b/gems/tree_haver/gemfiles/modular/runtime_heads.gemfile @@ -8,4 +8,4 @@ # Test against HEAD of runtime dependencies so we can proactively file bugs -eval_gemfile("x_std_libs/vHEAD.gemfile") +eval_gemfile('x_std_libs/vHEAD.gemfile') diff --git a/gems/tree_haver/gemfiles/modular/stringio/r2/v3.0.gemfile b/gems/tree_haver/gemfiles/modular/stringio/r2/v3.0.gemfile index e85bb18ee..3616f4e3a 100644 --- a/gems/tree_haver/gemfiles/modular/stringio/r2/v3.0.gemfile +++ b/gems/tree_haver/gemfiles/modular/stringio/r2/v3.0.gemfile @@ -2,4 +2,4 @@ # NOT SEMVER # Version 3.0.7 dropped support for Ruby <= 2.7 # Version 3.0.0 dropped support for Ruby <= 2.4 -gem "stringio", ">= 3.0" +gem 'stringio', '>= 3.0' diff --git a/gems/tree_haver/gemfiles/modular/stringio/r3/v3.0.gemfile b/gems/tree_haver/gemfiles/modular/stringio/r3/v3.0.gemfile index e85bb18ee..3616f4e3a 100644 --- a/gems/tree_haver/gemfiles/modular/stringio/r3/v3.0.gemfile +++ b/gems/tree_haver/gemfiles/modular/stringio/r3/v3.0.gemfile @@ -2,4 +2,4 @@ # NOT SEMVER # Version 3.0.7 dropped support for Ruby <= 2.7 # Version 3.0.0 dropped support for Ruby <= 2.4 -gem "stringio", ">= 3.0" +gem 'stringio', '>= 3.0' diff --git a/gems/tree_haver/gemfiles/modular/stringio/r4/v3.0.gemfile b/gems/tree_haver/gemfiles/modular/stringio/r4/v3.0.gemfile index e85bb18ee..3616f4e3a 100644 --- a/gems/tree_haver/gemfiles/modular/stringio/r4/v3.0.gemfile +++ b/gems/tree_haver/gemfiles/modular/stringio/r4/v3.0.gemfile @@ -2,4 +2,4 @@ # NOT SEMVER # Version 3.0.7 dropped support for Ruby <= 2.7 # Version 3.0.0 dropped support for Ruby <= 2.4 -gem "stringio", ">= 3.0" +gem 'stringio', '>= 3.0' diff --git a/gems/tree_haver/gemfiles/modular/stringio/vHEAD.gemfile b/gems/tree_haver/gemfiles/modular/stringio/vHEAD.gemfile index 5f2a74126..78f5f5d8a 100644 --- a/gems/tree_haver/gemfiles/modular/stringio/vHEAD.gemfile +++ b/gems/tree_haver/gemfiles/modular/stringio/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 (dependency of omniauth) -gem "stringio", github: "ruby/stringio", branch: "master" +gem 'stringio', github: 'ruby/stringio', branch: 'master' diff --git a/gems/tree_haver/gemfiles/modular/style.gemfile b/gems/tree_haver/gemfiles/modular/style.gemfile index 35de4dcd6..4dbcc02c0 100644 --- a/gems/tree_haver/gemfiles/modular/style.gemfile +++ b/gems/tree_haver/gemfiles/modular/style.gemfile @@ -9,23 +9,23 @@ # Style tasks run on the latest Ruby; RuboCop-LTS selects the compatibility # rules for the configured Ruby floor independently from task dependency floors. -gem "reek", "~> 6.5", ">= 6.5.0" +gem 'reek', '~> 6.5', '>= 6.5.0' platform :mri do - gem "appraisal2-rubocop", "~> 1.0", ">= 1.0.0", require: false - gem "rubocop-gradual", "~> 0.4", ">= 0.4.0" - gem "rubocop-minitest", "~> 0.40", ">= 0.40.0" - gem "rubocop-on-rbs", "~> 2.0", ">= 2.0.0" # ruby >= 3.2.0 + gem 'appraisal2-rubocop', '~> 1.0', '>= 1.0.0', require: false + gem 'rubocop-gradual', '~> 0.4', '>= 0.4.0' + gem 'rubocop-minitest', '~> 0.40', '>= 0.40.0' + gem 'rubocop-on-rbs', '~> 2.0', '>= 2.0.0' # ruby >= 3.2.0 # gem "rubocop", "~> 1.73", ">= 1.73.2" # constrained by standard - gem "rubocop-packaging", "~> 0.6", ">= 0.6.0" - gem "standard", "~> 1.56", ">= 1.56.0" + gem 'rubocop-packaging', '~> 0.6', '>= 0.6.0' + gem 'standard', '~> 1.56', '>= 1.56.0' - if ENV.fetch("RUBOCOP_LTS_LOCAL", "false").casecmp("false").zero? + if ENV.fetch('RUBOCOP_LTS_LOCAL', 'false').casecmp('false').zero? declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) - gem "rubocop-lts", "~> 24.2", ">= 24.2.1" unless declared_gems.include?("rubocop-lts") - gem "rubocop-lts-rspec", "~> 1.0", ">= 1.0.5" unless declared_gems.include?("rubocop-lts-rspec") - gem "rubocop-ruby3_2", "~> 3.0", ">= 3.0.6" unless declared_gems.include?("rubocop-ruby3_2") + gem 'rubocop-lts', '~> 24.2', '>= 24.2.1' unless declared_gems.include?('rubocop-lts') + gem 'rubocop-lts-rspec', '~> 1.0', '>= 1.0.5' unless declared_gems.include?('rubocop-lts-rspec') + gem 'rubocop-ruby3_2', '~> 3.0', '>= 3.0.6' unless declared_gems.include?('rubocop-ruby3_2') else - eval_gemfile("style_local.gemfile") + eval_gemfile('style_local.gemfile') end end diff --git a/gems/tree_haver/gemfiles/modular/style_local.gemfile b/gems/tree_haver/gemfiles/modular/style_local.gemfile index 575fe7f75..32c84bfeb 100644 --- a/gems/tree_haver/gemfiles/modular/style_local.gemfile +++ b/gems/tree_haver/gemfiles/modular/style_local.gemfile @@ -14,21 +14,19 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] -nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) +nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] +nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == "nomono" } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - if nomono_locked - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] - end + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked end -Kernel.send(:gem, "nomono", *nomono_activation_requirements) -require "nomono/bundler" +Kernel.send(:gem, 'nomono', *nomono_activation_requirements) +require 'nomono/bundler' local_gems = %w[rubocop-lts rubocop-lts-rspec rubocop-ruby3_2 standard-rubocop-lts] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) @@ -38,11 +36,11 @@ local_gems_to_eval = local_gems - %w[tree_haver] - declared_gems platform :mri do eval_nomono_gems( gems: local_gems_to_eval, - prefix: "RUBOCOP_LTS", - path_env: "RUBOCOP_LTS_LOCAL", - vendored_gems_env: "VENDORED_GEMS", - vendor_gem_dir_env: "VENDOR_GEM_DIR", - debug_env: "RUBOCOP_LTS_DEBUG", - root: ["src", "rubocop-lts"] + prefix: 'RUBOCOP_LTS', + path_env: 'RUBOCOP_LTS_LOCAL', + vendored_gems_env: 'VENDORED_GEMS', + vendor_gem_dir_env: 'VENDOR_GEM_DIR', + debug_env: 'RUBOCOP_LTS_DEBUG', + root: %w[src rubocop-lts] ) end diff --git a/gems/tree_haver/gemfiles/modular/templating.gemfile b/gems/tree_haver/gemfiles/modular/templating.gemfile index 9c3b9d91a..2ee8491e9 100644 --- a/gems/tree_haver/gemfiles/modular/templating.gemfile +++ b/gems/tree_haver/gemfiles/modular/templating.gemfile @@ -1,16 +1,16 @@ # frozen_string_literal: true -structuredmerge_remote = ENV.fetch("STRUCTUREDMERGE_DEV", "false").casecmp("false").zero? -kettle_remote = ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false").zero? +structuredmerge_remote = ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false').zero? +kettle_remote = ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? if structuredmerge_remote # Merge recipes for released installs. - gem "kettle-jem", ">= 7.0" + gem 'kettle-jem', '>= 7.0' end if kettle_remote # Template/plugin checks for released installs. - gem "kettle-drift", "~> 1.0", ">= 1.0.6", require: false + gem 'kettle-drift', '~> 1.0', '>= 1.0.6', require: false end # Set STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local development with path-based dependencies. @@ -19,4 +19,4 @@ end # # Set KETTLE_DEV_DEV=/path/to/my for local development with Kettle plugin gems. # When false (default / CI), released Kettle plugin gems are used. -eval_gemfile "templating_local.gemfile" unless structuredmerge_remote && kettle_remote +eval_gemfile 'templating_local.gemfile' unless structuredmerge_remote && kettle_remote diff --git a/gems/tree_haver/gemfiles/modular/templating_local.gemfile b/gems/tree_haver/gemfiles/modular/templating_local.gemfile index 0b5cc0f5f..1cde6cbee 100644 --- a/gems/tree_haver/gemfiles/modular/templating_local.gemfile +++ b/gems/tree_haver/gemfiles/modular/templating_local.gemfile @@ -12,21 +12,19 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] -nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) +nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] +nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == "nomono" } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - if nomono_locked - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] - end + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked end -Kernel.send(:gem, "nomono", *nomono_activation_requirements) -require "nomono/bundler" +Kernel.send(:gem, 'nomono', *nomono_activation_requirements) +require 'nomono/bundler' structuredmerge_local_gems = %w[ tree_haver @@ -69,25 +67,25 @@ structuredmerge_local_gems_to_eval = structuredmerge_local_gems - %w[tree_haver] kettle_dev_local_gems_to_eval = kettle_dev_local_gems - %w[tree_haver] - declared_gems platform :mri do - if ENV.fetch("STRUCTUREDMERGE_DEV", "false").casecmp("false") != 0 + if ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false') != 0 eval_nomono_gems( gems: structuredmerge_local_gems_to_eval, - prefix: "STRUCTUREDMERGE", - path_env: "STRUCTUREDMERGE_DEV", - vendored_gems_env: "VENDORED_GEMS", - vendor_gem_dir_env: "VENDOR_GEM_DIR", - debug_env: "STRUCTUREDMERGE_DEBUG" + prefix: 'STRUCTUREDMERGE', + path_env: 'STRUCTUREDMERGE_DEV', + vendored_gems_env: 'VENDORED_GEMS', + vendor_gem_dir_env: 'VENDOR_GEM_DIR', + debug_env: 'STRUCTUREDMERGE_DEBUG' ) end - if ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false") != 0 + if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false') != 0 eval_nomono_gems( gems: kettle_dev_local_gems_to_eval, - prefix: "KETTLE_DEV", - path_env: "KETTLE_DEV_DEV", - vendored_gems_env: "VENDORED_GEMS", - vendor_gem_dir_env: "VENDOR_GEM_DIR", - debug_env: "KETTLE_DEV_DEBUG" + prefix: 'KETTLE_DEV', + path_env: 'KETTLE_DEV_DEV', + vendored_gems_env: 'VENDORED_GEMS', + vendor_gem_dir_env: 'VENDOR_GEM_DIR', + debug_env: 'KETTLE_DEV_DEBUG' ) end end diff --git a/gems/tree_haver/gemfiles/modular/webrick/r4/v1.9.gemfile b/gems/tree_haver/gemfiles/modular/webrick/r4/v1.9.gemfile index eaab4a473..b1329ba84 100644 --- a/gems/tree_haver/gemfiles/modular/webrick/r4/v1.9.gemfile +++ b/gems/tree_haver/gemfiles/modular/webrick/r4/v1.9.gemfile @@ -1 +1 @@ -gem "webrick", "~> 1.9" +gem 'webrick', '~> 1.9' diff --git a/gems/tree_haver/gemfiles/modular/webrick/vHEAD.gemfile b/gems/tree_haver/gemfiles/modular/webrick/vHEAD.gemfile index 8a789b634..c7e6f81a1 100644 --- a/gems/tree_haver/gemfiles/modular/webrick/vHEAD.gemfile +++ b/gems/tree_haver/gemfiles/modular/webrick/vHEAD.gemfile @@ -1 +1 @@ -gem "webrick", ">= 1.9" +gem 'webrick', '>= 1.9' diff --git a/gems/tree_haver/gemfiles/modular/x_std_libs.gemfile b/gems/tree_haver/gemfiles/modular/x_std_libs.gemfile index 77aad43f2..b1f43c097 100644 --- a/gems/tree_haver/gemfiles/modular/x_std_libs.gemfile +++ b/gems/tree_haver/gemfiles/modular/x_std_libs.gemfile @@ -1,12 +1,12 @@ ### Std Lib Extracted Gems ruby_version = Gem::Version.new(RUBY_VERSION) -if ruby_version >= Gem::Version.new("4.0") - eval_gemfile "x_std_libs/r4/libs.gemfile" -elsif ruby_version >= Gem::Version.new("3.2") - eval_gemfile "x_std_libs/r3/libs.gemfile" -elsif ruby_version >= Gem::Version.new("3.1") - eval_gemfile "x_std_libs/r3.1/libs.gemfile" +if ruby_version >= Gem::Version.new('4.0') + eval_gemfile 'x_std_libs/r4/libs.gemfile' +elsif ruby_version >= Gem::Version.new('3.2') + eval_gemfile 'x_std_libs/r3/libs.gemfile' +elsif ruby_version >= Gem::Version.new('3.1') + eval_gemfile 'x_std_libs/r3.1/libs.gemfile' else - eval_gemfile "x_std_libs/r2/libs.gemfile" + eval_gemfile 'x_std_libs/r2/libs.gemfile' end diff --git a/gems/tree_haver/gemfiles/modular/x_std_libs/r2/libs.gemfile b/gems/tree_haver/gemfiles/modular/x_std_libs/r2/libs.gemfile index 441c4f03a..16a5e3d70 100644 --- a/gems/tree_haver/gemfiles/modular/x_std_libs/r2/libs.gemfile +++ b/gems/tree_haver/gemfiles/modular/x_std_libs/r2/libs.gemfile @@ -1,3 +1,3 @@ -eval_gemfile "../../erb/r2/v3.0.gemfile" -eval_gemfile "../../mutex_m/r2/v0.3.gemfile" -eval_gemfile "../../stringio/r2/v3.0.gemfile" +eval_gemfile '../../erb/r2/v3.0.gemfile' +eval_gemfile '../../mutex_m/r2/v0.3.gemfile' +eval_gemfile '../../stringio/r2/v3.0.gemfile' diff --git a/gems/tree_haver/gemfiles/modular/x_std_libs/r3/libs.gemfile b/gems/tree_haver/gemfiles/modular/x_std_libs/r3/libs.gemfile index c293a3ddd..220ff95c1 100644 --- a/gems/tree_haver/gemfiles/modular/x_std_libs/r3/libs.gemfile +++ b/gems/tree_haver/gemfiles/modular/x_std_libs/r3/libs.gemfile @@ -1,3 +1,3 @@ -eval_gemfile "../../erb/r3/v5.0.gemfile" -eval_gemfile "../../mutex_m/r3/v0.3.gemfile" -eval_gemfile "../../stringio/r3/v3.0.gemfile" +eval_gemfile '../../erb/r3/v5.0.gemfile' +eval_gemfile '../../mutex_m/r3/v0.3.gemfile' +eval_gemfile '../../stringio/r3/v3.0.gemfile' diff --git a/gems/tree_haver/gemfiles/modular/x_std_libs/r4/libs.gemfile b/gems/tree_haver/gemfiles/modular/x_std_libs/r4/libs.gemfile index eb5574247..e2f6501eb 100644 --- a/gems/tree_haver/gemfiles/modular/x_std_libs/r4/libs.gemfile +++ b/gems/tree_haver/gemfiles/modular/x_std_libs/r4/libs.gemfile @@ -1,6 +1,6 @@ -eval_gemfile "../../erb/r4/v5.0.gemfile" -eval_gemfile "../../mutex_m/r4/v0.3.gemfile" -eval_gemfile "../../stringio/r4/v3.0.gemfile" -eval_gemfile "../../benchmark/r4/v0.5.gemfile" -eval_gemfile "../../cgi/r4/v0.5.gemfile" -eval_gemfile "../../webrick/r4/v1.9.gemfile" +eval_gemfile '../../erb/r4/v5.0.gemfile' +eval_gemfile '../../mutex_m/r4/v0.3.gemfile' +eval_gemfile '../../stringio/r4/v3.0.gemfile' +eval_gemfile '../../benchmark/r4/v0.5.gemfile' +eval_gemfile '../../cgi/r4/v0.5.gemfile' +eval_gemfile '../../webrick/r4/v1.9.gemfile' diff --git a/gems/tree_haver/gemfiles/modular/x_std_libs/vHEAD.gemfile b/gems/tree_haver/gemfiles/modular/x_std_libs/vHEAD.gemfile index d4d5b16c9..ab75cccf1 100644 --- a/gems/tree_haver/gemfiles/modular/x_std_libs/vHEAD.gemfile +++ b/gems/tree_haver/gemfiles/modular/x_std_libs/vHEAD.gemfile @@ -1,6 +1,6 @@ -eval_gemfile "../erb/vHEAD.gemfile" -eval_gemfile "../mutex_m/vHEAD.gemfile" -eval_gemfile "../stringio/vHEAD.gemfile" -eval_gemfile "../benchmark/vHEAD.gemfile" -eval_gemfile "../cgi/vHEAD.gemfile" -eval_gemfile "../webrick/vHEAD.gemfile" +eval_gemfile '../erb/vHEAD.gemfile' +eval_gemfile '../mutex_m/vHEAD.gemfile' +eval_gemfile '../stringio/vHEAD.gemfile' +eval_gemfile '../benchmark/vHEAD.gemfile' +eval_gemfile '../cgi/vHEAD.gemfile' +eval_gemfile '../webrick/vHEAD.gemfile' From de5a292388cec7022d1ba2bc91def59bb19df01b Mon Sep 17 00:00:00 2001 From: "Peter H. Boling" Date: Tue, 21 Jul 2026 13:50:20 -0600 Subject: [PATCH 116/188] =?UTF-8?q?=F0=9F=8E=A8=20Template=20bootstrap=20b?= =?UTF-8?q?y=20kettle-jem=20v7.1.0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gems/ast-crispr/Gemfile.lock | 327 +++++++++++- gems/prism-merge/Gemfile.lock | 378 +++++++++++-- gems/ruby-merge/Gemfile.lock | 325 +++++++++++- gems/tree_haver/.rubocop_gradual.lock | 500 ++++++++++++++++++ gems/tree_haver/Gemfile.lock | 12 +- .../lib/tree_haver/backends/tslp.rb | 4 +- gems/tree_haver/lib/tree_haver/version.rb | 2 +- 7 files changed, 1501 insertions(+), 47 deletions(-) create mode 100644 gems/tree_haver/.rubocop_gradual.lock diff --git a/gems/ast-crispr/Gemfile.lock b/gems/ast-crispr/Gemfile.lock index 2284f1a91..cf18533e0 100644 --- a/gems/ast-crispr/Gemfile.lock +++ b/gems/ast-crispr/Gemfile.lock @@ -7,7 +7,31 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/ast-merge + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly + specs: + ast-crispr-markdown-markly (7.1.0) + ast-crispr (= 7.1.0) + markly-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism + specs: + ast-crispr-ruby-prism (7.1.0) + ast-crispr (= 7.1.0) + prism-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git + specs: + ast-merge-git (7.1.0) + ast-merge (= 7.1.0) + json-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge specs: ast-merge (7.1.0) benchmark @@ -15,6 +39,232 @@ PATH tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template + specs: + ast-template (7.1.0) + ast-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge + specs: + bash-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge + specs: + binary-merge (7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge + specs: + citrus-toml-merge (7.1.0) + toml-merge (= 7.1.0) + toml-rb (~> 4.1) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge + specs: + commonmarker-merge (7.1.0) + commonmarker (~> 2.2) + markdown-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge + specs: + dotenv-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge + specs: + go-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge + specs: + json-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem + specs: + kettle-jem (7.1.0) + addressable (>= 2.8, < 3) + ast-crispr-markdown-markly (= 7.1.0) + ast-crispr-ruby-prism (= 7.1.0) + ast-merge (= 7.1.0) + bash-merge (= 7.1.0) + citrus-toml-merge (= 7.1.0) + commonmarker-merge (= 7.1.0) + dotenv-merge (= 7.1.0) + json-merge (= 7.1.0) + kettle-dev (~> 2.3, >= 2.3.5) + kettle-rb (~> 0.1, >= 0.1.4) + kramdown-merge (= 7.1.0) + markdown-merge (= 7.1.0) + markly-merge (= 7.1.0) + prism-merge (= 7.1.0) + psych-merge (= 7.1.0) + rbs (>= 3.10) + rbs-merge (= 7.1.0) + ruby-merge (= 7.1.0) + token-resolver (~> 2.0, >= 2.0.4) + toml-merge (= 7.1.0) + toml-rb (~> 4.2) + tree_haver (= 7.1.0) + yaml-merge (= 7.1.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge + specs: + kramdown-merge (7.1.0) + kramdown (~> 2.5) + markdown-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge + specs: + markdown-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge + specs: + markly-merge (7.1.0) + markdown-merge (= 7.1.0) + markly (~> 0.9) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge + specs: + parslet-toml-merge (7.1.0) + toml (~> 0.3) + toml-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge + specs: + plain-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge + specs: + prism-merge (7.1.0) + prism (~> 1.6) + ruby-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge + specs: + psych-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + yaml-merge (= 7.1.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge + specs: + rbs-merge (7.1.0) + ast-merge (= 7.1.0) + rbs (>= 3.10) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge + specs: + ruby-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge + specs: + rust-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb + specs: + smorg-rb (7.1.0) + ast-merge (= 7.1.0) + ast-merge-git (= 7.1.0) + go-merge (= 7.1.0) + json-merge (= 7.1.0) + kettle-jem (= 7.1.0) + markly-merge (= 7.1.0) + plain-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge + specs: + toml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver + specs: + tree_haver (7.1.0) + citrus (~> 3.0) + parslet (~> 2.0) + tree_sitter_language_pack (>= 1.13.2, < 2.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge + specs: + typescript-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge + specs: + yaml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge + specs: + zip-merge (7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + GEM remote: https://gem.coop/ specs: @@ -39,6 +289,7 @@ GEM cgi (0.5.2) citrus (3.0.2) cmdparse (3.0.7) + commonmarker (2.9.0-x86_64-linux) concurrent-ruby (1.3.8) date (3.5.1) debug (1.11.1) @@ -101,6 +352,8 @@ GEM kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) + kettle-drift (1.0.6) + version_gem (~> 1.1, >= 1.1.14) kettle-rb (0.1.5) kettle-soup-cover (3.0.4) kettle-wash (~> 0.1, >= 0.1.0) @@ -129,6 +382,7 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) + markly (0.16.0) mutex_m (0.3.0) nokogiri (1.19.4-x86_64-linux-gnu) racc (~> 1.4) @@ -339,11 +593,11 @@ GEM token-resolver (2.0.5) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.14) - tree_haver (7.1.0) - citrus (~> 3.0) - parslet (~> 2.0) - tree_sitter_language_pack (>= 1.13.2, < 2.0) - version_gem (~> 1.1, >= 1.1.9) + toml (0.3.0) + parslet (>= 1.8.0, < 3.0.0) + toml-rb (4.2.0) + citrus (~> 3.0, > 3.0) + racc (~> 1.7) tree_sitter_language_pack (1.13.3-x86_64-linux) sorbet-runtime (~> 0.5) tsort (0.2.0) @@ -390,24 +644,45 @@ DEPENDENCIES appraisal2 (~> 3.0, >= 3.0.6) appraisal2-rubocop (~> 1.0, >= 1.0.0) ast-crispr! + ast-crispr-markdown-markly! + ast-crispr-ruby-prism! ast-merge! + ast-merge-git! + ast-template! + bash-merge! benchmark (~> 0.5, >= 0.5.0) + binary-merge! bundler-audit (~> 0.9.3) cgi (~> 0.5) + citrus-toml-merge! + commonmarker-merge! debug (>= 1.1) + dotenv-merge! erb (~> 6.0, >= 6.0.6) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.0) + go-merge! irb (~> 1.17) + json-merge! kettle-dev (~> 2.0, >= 2.2.25) + kettle-drift (~> 1.0, >= 1.0.6) + kettle-jem! kettle-soup-cover (~> 3.0, >= 3.0.3) kettle-test (~> 2.0, >= 2.0.9) kramdown (~> 2.5, >= 2.5.2) + kramdown-merge! kramdown-parser-gfm (~> 1.1) + markdown-merge! + markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) + parslet-toml-merge! + plain-merge! + prism-merge! + psych-merge! rake (~> 13.0) rbs (>= 3.0) + rbs-merge! rdoc (~> 6.11) reek (~> 6.5, >= 6.5.0) require_bench (~> 1.0, >= 1.0.4) @@ -418,19 +693,27 @@ DEPENDENCIES rubocop-on-rbs (~> 2.0, >= 2.0.0) rubocop-packaging (~> 0.6, >= 0.6.0) rubocop-ruby3_2 (~> 3.0, >= 3.0.6) + ruby-merge! ruby-progressbar (~> 1.13) + rust-merge! + smorg-rb! standard (~> 1.56, >= 1.56.0) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) + toml-merge! + tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) + typescript-merge! webrick (~> 1.9) yaml-converter (~> 0.2, >= 0.2.3) + yaml-merge! yard (~> 0.9, >= 0.9.45) yard-fence (~> 0.9, >= 0.9.6) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) yard-timekeeper (~> 0.2, >= 0.2.4) yard-yaml (~> 0.2, >= 0.2.3) + zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af @@ -439,20 +722,30 @@ CHECKSUMS appraisal2-rubocop (1.0.0) sha256=b71410fbb014befda5340605a605b7f6f3f012739baf0acc5b4351b592c3258d ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 ast-crispr (7.1.0) + ast-crispr-markdown-markly (7.1.0) + ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) + ast-merge-git (7.1.0) + ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 + bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd + binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 + citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 + commonmarker (2.9.0-x86_64-linux) sha256=8cfe92970eef585a19ddf6613224b91cab64d6029834661bda801f877c9c7f43 + commonmarker-merge (7.1.0) concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 + dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -465,20 +758,28 @@ CHECKSUMS gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f + go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 + json-merge (7.1.0) kettle-dev (2.3.8) sha256=9d716ff21c660a730cb4e8d41e2e2f0630a28167a354b6e2924e242102aef72c + kettle-drift (1.0.6) sha256=46eda08fa4411d1f3c6682a95eef1c9df4e94611b3949f49d4c7b43c0ed356a3 + kettle-jem (7.1.0) kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f kettle-soup-cover (3.0.4) kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa + kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 + markdown-merge (7.1.0) + markly (0.16.0) sha256=6f70d79e385b1efc9e171f74c81628826259039fe6c778e03c3924c71dac5511 + markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-x86_64-linux-gnu) sha256=379fae440b28915e3f19d752ce2dcf8465ed2b2fbefd2a7ca0dd497bc981a06a nomono (1.0.9) @@ -488,15 +789,20 @@ CHECKSUMS parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 + parslet-toml-merge (7.1.0) + plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 + prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 + psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 + rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb @@ -531,9 +837,11 @@ CHECKSUMS rubocop-rspec_rails (2.32.0) sha256=4a0d641c72f6ebb957534f539d9d0a62c47abd8ce0d0aeee1ef4701e892a9100 rubocop-ruby3_2 (3.0.7) sha256=f53dd6d286fb05186214fc6ec116783e7f837030918e8931c05de773e98f8466 rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 + ruby-merge (7.1.0) ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 + rust-merge (7.1.0) service_actor (3.9.4) sha256=e63b523630b9a7e62959b2a90113b08d2565b5de9c148557b281ef847c9539ce silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 @@ -541,6 +849,7 @@ CHECKSUMS simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed + smorg-rb (7.1.0) sorbet-runtime (0.6.13347) sha256=54e7221d9f4b63f58aec79f3043752a9ba7810347c6ae0d903531591cc2d5f01 standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b @@ -555,15 +864,20 @@ CHECKSUMS timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.5) sha256=b852f924287ffb58a440856e862b056c8ad97e74b4b2526cee43e0771f40c25c + toml (0.3.0) sha256=0a91d0f76a9036e84e44f95693b12f58d358c1df3ac8e3b5271f2056ecc6e4b9 + toml-merge (7.1.0) + toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 + typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 webrick (1.9.2) sha256=beb4a15fc474defed24a3bda4ffd88a490d517c9e4e6118c3edce59e45864131 yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 + yaml-merge (7.1.0) yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd @@ -571,6 +885,7 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 + zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH diff --git a/gems/prism-merge/Gemfile.lock b/gems/prism-merge/Gemfile.lock index 043e8675c..6dbb0e631 100644 --- a/gems/prism-merge/Gemfile.lock +++ b/gems/prism-merge/Gemfile.lock @@ -6,6 +6,265 @@ PATH ruby-merge (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly + specs: + ast-crispr-markdown-markly (7.1.0) + ast-crispr (= 7.1.0) + markly-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism + specs: + ast-crispr-ruby-prism (7.1.0) + ast-crispr (= 7.1.0) + prism-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr + specs: + ast-crispr (7.1.0) + ast-merge (= 7.1.0) + service_actor (~> 3.9) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git + specs: + ast-merge-git (7.1.0) + ast-merge (= 7.1.0) + json-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge + specs: + ast-merge (7.1.0) + benchmark + token-resolver (~> 2.0, >= 2.0.4) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template + specs: + ast-template (7.1.0) + ast-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge + specs: + bash-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge + specs: + binary-merge (7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge + specs: + citrus-toml-merge (7.1.0) + toml-merge (= 7.1.0) + toml-rb (~> 4.1) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge + specs: + commonmarker-merge (7.1.0) + commonmarker (~> 2.2) + markdown-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge + specs: + dotenv-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge + specs: + go-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge + specs: + json-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem + specs: + kettle-jem (7.1.0) + addressable (>= 2.8, < 3) + ast-crispr-markdown-markly (= 7.1.0) + ast-crispr-ruby-prism (= 7.1.0) + ast-merge (= 7.1.0) + bash-merge (= 7.1.0) + citrus-toml-merge (= 7.1.0) + commonmarker-merge (= 7.1.0) + dotenv-merge (= 7.1.0) + json-merge (= 7.1.0) + kettle-dev (~> 2.3, >= 2.3.5) + kettle-rb (~> 0.1, >= 0.1.4) + kramdown-merge (= 7.1.0) + markdown-merge (= 7.1.0) + markly-merge (= 7.1.0) + prism-merge (= 7.1.0) + psych-merge (= 7.1.0) + rbs (>= 3.10) + rbs-merge (= 7.1.0) + ruby-merge (= 7.1.0) + token-resolver (~> 2.0, >= 2.0.4) + toml-merge (= 7.1.0) + toml-rb (~> 4.2) + tree_haver (= 7.1.0) + yaml-merge (= 7.1.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge + specs: + kramdown-merge (7.1.0) + kramdown (~> 2.5) + markdown-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge + specs: + markdown-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge + specs: + markly-merge (7.1.0) + markdown-merge (= 7.1.0) + markly (~> 0.9) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge + specs: + parslet-toml-merge (7.1.0) + toml (~> 0.3) + toml-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge + specs: + plain-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge + specs: + psych-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + yaml-merge (= 7.1.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge + specs: + rbs-merge (7.1.0) + ast-merge (= 7.1.0) + rbs (>= 3.10) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge + specs: + ruby-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge + specs: + rust-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb + specs: + smorg-rb (7.1.0) + ast-merge (= 7.1.0) + ast-merge-git (= 7.1.0) + go-merge (= 7.1.0) + json-merge (= 7.1.0) + kettle-jem (= 7.1.0) + markly-merge (= 7.1.0) + plain-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge + specs: + toml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver + specs: + tree_haver (7.1.0) + citrus (~> 3.0) + parslet (~> 2.0) + tree_sitter_language_pack (>= 1.13.2, < 2.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge + specs: + typescript-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge + specs: + yaml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge + specs: + zip-merge (7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + GEM remote: https://gem.coop/ specs: @@ -17,11 +276,6 @@ GEM rake (>= 10) thor (>= 0.14) ast (2.4.3) - ast-merge (7.1.0) - benchmark - token-resolver (~> 2.0, >= 2.0.4) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) backports (3.25.3) benchmark (0.5.0) bigdecimal (4.1.2) @@ -30,6 +284,7 @@ GEM thor (~> 1.0) citrus (3.0.2) cmdparse (3.0.7) + commonmarker (2.9.0-x86_64-linux) concurrent-ruby (1.3.8) date (3.5.1) debug (1.11.1) @@ -93,6 +348,8 @@ GEM kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) + kettle-drift (1.0.6) + version_gem (~> 1.1, >= 1.1.14) kettle-rb (0.1.4) kettle-soup-cover (1.1.3) simplecov (~> 0.22) @@ -121,6 +378,7 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) + markly (0.16.0) mutex_m (0.3.0) nokogiri (1.19.4-x86_64-linux-gnu) racc (~> 1.4) @@ -244,13 +502,11 @@ GEM lint_roller (~> 1.1) rubocop (~> 1.72, >= 1.72.1) rubocop-ast (>= 1.44.0, < 2.0) - ruby-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) ruby-progressbar (1.13.0) ruby_engine (2.0.3) ruby_version (1.0.3) + service_actor (3.9.4) + zeitwerk (>= 1.0) silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) @@ -302,12 +558,12 @@ GEM timecop (>= 0.7, < 1) token-resolver (2.0.4) parslet (~> 2.0) - version_gem (~> 1.1, >= 1.1.14) - tree_haver (7.1.0) - citrus (~> 3.0) - parslet (~> 2.0) - tree_sitter_language_pack (>= 1.13.2, < 2.0) - version_gem (~> 1.1, >= 1.1.9) + version_gem (~> 1.1, >= 1.1.13) + toml (0.3.0) + parslet (>= 1.8.0, < 3.0.0) + toml-rb (4.2.0) + citrus (~> 3.0, > 3.0) + racc (~> 1.7) tree_sitter_language_pack (1.13.3-x86_64-linux) sorbet-runtime (~> 0.5) tsort (0.2.0) @@ -351,23 +607,45 @@ PLATFORMS DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) + ast-crispr! + ast-crispr-markdown-markly! + ast-crispr-ruby-prism! + ast-merge! + ast-merge-git! + ast-template! + bash-merge! benchmark (~> 0.5, >= 0.5.0) + binary-merge! bundler-audit (~> 0.9.3) + citrus-toml-merge! + commonmarker-merge! debug (>= 1.1) + dotenv-merge! erb (~> 6.0, >= 6.0.4) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.0) + go-merge! irb (~> 1.17) + json-merge! kettle-dev (~> 2.0, >= 2.2.25) + kettle-drift (~> 1.0, >= 1.0.5) + kettle-jem! kettle-soup-cover (~> 1.0, >= 1.1.3) kettle-test (~> 2.0, >= 2.0.9) kramdown (~> 2.5, >= 2.5.1) + kramdown-merge! kramdown-parser-gfm (~> 1.1) + markdown-merge! + markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) + parslet-toml-merge! + plain-merge! prism-merge! + psych-merge! rake (~> 13.0) rbs (>= 3.0) + rbs-merge! rdoc (~> 6.11) reek (~> 6.5) require_bench (~> 1.0, >= 1.0.4) @@ -376,31 +654,49 @@ DEPENDENCIES rubocop-packaging (~> 0.6, >= 0.6.0) rubocop-rspec (~> 3.6) rubocop-ruby3_2 (~> 3.0.0) + ruby-merge! ruby-progressbar (~> 1.13) + rust-merge! + smorg-rb! standard (>= 1.50) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) + toml-merge! + tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) + typescript-merge! yaml-converter (~> 0.1) + yaml-merge! yard (~> 0.9, >= 0.9.44) yard-fence (~> 0.9, >= 0.9.1) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) yard-timekeeper (~> 0.1) yard-yaml (~> 0.1, >= 0.1.2) + zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af ansi (1.6.0) sha256=ac9ea0c0ea8d32fb4e271348e609963ac78882f34b73836c2a02b3622e666658 appraisal2 (3.2.0) sha256=ccd0b767ac4060cd7af6d16747459b6990f49c39c7b4fb1f7d1146b1e97c492f ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 + ast-crispr (7.1.0) + ast-crispr-markdown-markly (7.1.0) + ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) + ast-merge-git (7.1.0) + ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 + bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd + binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 + citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 + commonmarker (2.9.0-x86_64-linux) sha256=8cfe92970eef585a19ddf6613224b91cab64d6029834661bda801f877c9c7f43 + commonmarker-merge (7.1.0) concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 @@ -408,6 +704,7 @@ CHECKSUMS diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 docile (1.4.1) sha256=96159be799bfa73cdb721b840e9802126e4e03dfc26863db73647204c727f21e + dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -420,19 +717,27 @@ CHECKSUMS gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f + go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 + json-merge (7.1.0) kettle-dev (2.3.7) sha256=eb370113cd030d03cbe2d33b31c99858951017e5ad21a17e9ed89dc3770028ee + kettle-drift (1.0.6) sha256=46eda08fa4411d1f3c6682a95eef1c9df4e94611b3949f49d4c7b43c0ed356a3 + kettle-jem (7.1.0) kettle-rb (0.1.4) sha256=9cef7ce4f7021666b7222292f29051e51eaf042e8a5db11f3f4dd72f74243fc1 kettle-soup-cover (1.1.3) sha256=a373827da22a7131d093afd32945e5b7d7a10a01ebfdded8fd2cb8230d69c8ad kettle-test (2.0.11) sha256=c710c90f7ab79d51f9452f0c09f5f90657e7a893f63583855c164d0b1b107ab2 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa + kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 + markdown-merge (7.1.0) + markly (0.16.0) sha256=6f70d79e385b1efc9e171f74c81628826259039fe6c778e03c3924c71dac5511 + markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-x86_64-linux-gnu) sha256=379fae440b28915e3f19d752ce2dcf8465ed2b2fbefd2a7ca0dd497bc981a06a nomono (1.0.8) sha256=bf4b9b426cbf216ab17b70db474f691b8ae1f1e29de8db4b0ecd405e6e7e1c80 @@ -442,16 +747,20 @@ CHECKSUMS parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 + parslet-toml-merge (7.1.0) + plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 + psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 + rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb @@ -483,6 +792,8 @@ CHECKSUMS ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 + rust-merge (7.1.0) + service_actor (3.9.4) sha256=e63b523630b9a7e62959b2a90113b08d2565b5de9c148557b281ef847c9539ce silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (0.22.0) sha256=fe2622c7834ff23b98066bb0a854284b2729a569ac659f82621fc22ef36213a5 simplecov-cobertura (3.2.0) sha256=70d702658677fcb20e5aceb6915ccf8bc62ff2ccd38b62b3ad5c9db5c0888740 @@ -491,6 +802,7 @@ CHECKSUMS simplecov-lcov (0.9.0) sha256=7a77a31e200a595ed4b0249493056efd0c920601f53d2ef135ca34ee796346cd simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_json_formatter (0.1.4) sha256=529418fbe8de1713ac2b2d612aa3daa56d316975d307244399fa4838c601b428 + smorg-rb (7.1.0) sorbet-runtime (0.6.13342) sha256=dbeb9892597f593ed2b29e38018912787f6c4e0c4b736d8af0d6bd3c63bde3c3 standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b @@ -504,22 +816,28 @@ CHECKSUMS timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.4) sha256=33b926958f504525bba3ed511ab66fbcbf8ef30390815e931436b30f27ffcad0 + toml (0.3.0) sha256=0a91d0f76a9036e84e44f95693b12f58d358c1df3ac8e3b5271f2056ecc6e4b9 + toml-merge (7.1.0) + toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 tree_haver (7.1.0) - tree_sitter_language_pack (1.13.3-x86_64-linux) - tsort (0.2.0) - turbo_tests2 (3.2.0) - unicode-display_width (3.2.0) - unicode-emoji (4.2.0) - version_gem (1.1.14) - yaml-converter (0.2.3) - yard (0.9.45) - yard-fence (0.9.6) - yard-junk (0.1.0) - yard-relative_markdown_links (0.6.0) - yard-timekeeper (0.2.4) - yard-yaml (0.2.3) - zeitwerk (2.8.2) - zlib (3.2.3) + tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 + tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f + turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 + typescript-merge (7.1.0) + unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 + unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f + version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 + yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 + yaml-merge (7.1.0) + yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 + yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 + yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd + yard-relative_markdown_links (0.6.0) sha256=3e5ffa85cbad9bac70bee5421774b190fb25d3bdf489323a5b3534f647d1a70e + yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a + yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 + zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 + zip-merge (7.1.0) + zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH 4.0.16 diff --git a/gems/ruby-merge/Gemfile.lock b/gems/ruby-merge/Gemfile.lock index 0c7b620b7..d8086ca99 100644 --- a/gems/ruby-merge/Gemfile.lock +++ b/gems/ruby-merge/Gemfile.lock @@ -7,7 +7,39 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/ast-merge + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly + specs: + ast-crispr-markdown-markly (7.1.0) + ast-crispr (= 7.1.0) + markly-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism + specs: + ast-crispr-ruby-prism (7.1.0) + ast-crispr (= 7.1.0) + prism-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr + specs: + ast-crispr (7.1.0) + ast-merge (= 7.1.0) + service_actor (~> 3.9) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git + specs: + ast-merge-git (7.1.0) + ast-merge (= 7.1.0) + json-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge specs: ast-merge (7.1.0) benchmark @@ -16,7 +48,193 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/tree_haver + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template + specs: + ast-template (7.1.0) + ast-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge + specs: + bash-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge + specs: + binary-merge (7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge + specs: + citrus-toml-merge (7.1.0) + toml-merge (= 7.1.0) + toml-rb (~> 4.1) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge + specs: + commonmarker-merge (7.1.0) + commonmarker (~> 2.2) + markdown-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge + specs: + dotenv-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge + specs: + go-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge + specs: + json-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem + specs: + kettle-jem (7.1.0) + addressable (>= 2.8, < 3) + ast-crispr-markdown-markly (= 7.1.0) + ast-crispr-ruby-prism (= 7.1.0) + ast-merge (= 7.1.0) + bash-merge (= 7.1.0) + citrus-toml-merge (= 7.1.0) + commonmarker-merge (= 7.1.0) + dotenv-merge (= 7.1.0) + json-merge (= 7.1.0) + kettle-dev (~> 2.3, >= 2.3.5) + kettle-rb (~> 0.1, >= 0.1.4) + kramdown-merge (= 7.1.0) + markdown-merge (= 7.1.0) + markly-merge (= 7.1.0) + prism-merge (= 7.1.0) + psych-merge (= 7.1.0) + rbs (>= 3.10) + rbs-merge (= 7.1.0) + ruby-merge (= 7.1.0) + token-resolver (~> 2.0, >= 2.0.4) + toml-merge (= 7.1.0) + toml-rb (~> 4.2) + tree_haver (= 7.1.0) + yaml-merge (= 7.1.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge + specs: + kramdown-merge (7.1.0) + kramdown (~> 2.5) + markdown-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge + specs: + markdown-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge + specs: + markly-merge (7.1.0) + markdown-merge (= 7.1.0) + markly (~> 0.9) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge + specs: + parslet-toml-merge (7.1.0) + toml (~> 0.3) + toml-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge + specs: + plain-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge + specs: + prism-merge (7.1.0) + prism (~> 1.6) + ruby-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge + specs: + psych-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + yaml-merge (= 7.1.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge + specs: + rbs-merge (7.1.0) + ast-merge (= 7.1.0) + rbs (>= 3.10) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge + specs: + rust-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb + specs: + smorg-rb (7.1.0) + ast-merge (= 7.1.0) + ast-merge-git (= 7.1.0) + go-merge (= 7.1.0) + json-merge (= 7.1.0) + kettle-jem (= 7.1.0) + markly-merge (= 7.1.0) + plain-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge + specs: + toml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver specs: tree_haver (7.1.0) citrus (~> 3.0) @@ -24,6 +242,29 @@ PATH tree_sitter_language_pack (>= 1.13.2, < 2.0) version_gem (~> 1.1, >= 1.1.9) +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge + specs: + typescript-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge + specs: + yaml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge + specs: + zip-merge (7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + GEM remote: https://gem.coop/ specs: @@ -48,6 +289,11 @@ GEM cgi (0.5.2) citrus (3.0.2) cmdparse (3.0.7) + commonmarker (2.9.0-aarch64-linux) + commonmarker (2.9.0-aarch64-linux-musl) + commonmarker (2.9.0-arm64-darwin) + commonmarker (2.9.0-x86_64-linux) + commonmarker (2.9.0-x86_64-linux-musl) concurrent-ruby (1.3.8) date (3.5.1) debug (1.11.1) @@ -110,6 +356,8 @@ GEM kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) + kettle-drift (1.0.6) + version_gem (~> 1.1, >= 1.1.14) kettle-rb (0.1.5) kettle-soup-cover (3.0.4) kettle-wash (~> 0.1, >= 0.1.0) @@ -138,6 +386,7 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) + markly (0.16.0) mutex_m (0.3.0) nokogiri (1.19.4-aarch64-linux-gnu) racc (~> 1.4) @@ -300,6 +549,8 @@ GEM ruby-progressbar (1.13.0) ruby_engine (2.0.3) ruby_version (1.0.3) + service_actor (3.9.4) + zeitwerk (>= 1.0) silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) @@ -354,6 +605,11 @@ GEM token-resolver (2.0.5) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.14) + toml (0.3.0) + parslet (>= 1.8.0, < 3.0.0) + toml-rb (4.2.0) + citrus (~> 3.0, > 3.0) + racc (~> 1.7) tree_sitter_language_pack (1.13.3-aarch64-linux) sorbet-runtime (~> 0.5) tree_sitter_language_pack (1.13.3-arm64-darwin) @@ -408,24 +664,46 @@ DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) appraisal2-rubocop (~> 1.0, >= 1.0.0) + ast-crispr! + ast-crispr-markdown-markly! + ast-crispr-ruby-prism! ast-merge! + ast-merge-git! + ast-template! + bash-merge! benchmark (~> 0.5, >= 0.5.0) + binary-merge! bundler-audit (~> 0.9.3) cgi (~> 0.5) + citrus-toml-merge! + commonmarker-merge! debug (>= 1.1) + dotenv-merge! erb (~> 6.0, >= 6.0.6) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.0) + go-merge! irb (~> 1.17) + json-merge! kettle-dev (~> 2.0, >= 2.2.25) + kettle-drift (~> 1.0, >= 1.0.6) + kettle-jem! kettle-soup-cover (~> 3.0, >= 3.0.3) kettle-test (~> 2.0, >= 2.0.9) kramdown (~> 2.5, >= 2.5.2) + kramdown-merge! kramdown-parser-gfm (~> 1.1) + markdown-merge! + markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) + parslet-toml-merge! + plain-merge! + prism-merge! + psych-merge! rake (~> 13.0) rbs (>= 3.0) + rbs-merge! rdoc (~> 6.11) reek (~> 6.5, >= 6.5.0) require_bench (~> 1.0, >= 1.0.4) @@ -438,19 +716,25 @@ DEPENDENCIES rubocop-ruby3_2 (~> 3.0, >= 3.0.6) ruby-merge! ruby-progressbar (~> 1.13) + rust-merge! + smorg-rb! standard (~> 1.56, >= 1.56.0) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) + toml-merge! tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) + typescript-merge! webrick (~> 1.9) yaml-converter (~> 0.2, >= 0.2.3) + yaml-merge! yard (~> 0.9, >= 0.9.45) yard-fence (~> 0.9, >= 0.9.6) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) yard-timekeeper (~> 0.2, >= 0.2.4) yard-yaml (~> 0.2, >= 0.2.3) + zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af @@ -458,20 +742,35 @@ CHECKSUMS appraisal2 (3.2.0) sha256=ccd0b767ac4060cd7af6d16747459b6990f49c39c7b4fb1f7d1146b1e97c492f appraisal2-rubocop (1.0.0) sha256=b71410fbb014befda5340605a605b7f6f3f012739baf0acc5b4351b592c3258d ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 + ast-crispr (7.1.0) + ast-crispr-markdown-markly (7.1.0) + ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) + ast-merge-git (7.1.0) + ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 + bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd + binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 + citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 + commonmarker (2.9.0-aarch64-linux) sha256=e2b4aadb9a2cfa4e206582641ce3a49465549ac1ed4c289fdd63b78d8f24579c + commonmarker (2.9.0-aarch64-linux-musl) sha256=1cf4d2821f2a7e64945f1ed7c4eeced586fdb27ea7fe7337788802cf8f57cfca + commonmarker (2.9.0-arm64-darwin) sha256=1748dbfa4f5813b0d2a14bb4bbfa65a4ec293aa1c825016d60029ee0e132b046 + commonmarker (2.9.0-x86_64-linux) sha256=8cfe92970eef585a19ddf6613224b91cab64d6029834661bda801f877c9c7f43 + commonmarker (2.9.0-x86_64-linux-musl) sha256=293921398b839f79ceaf55010e061357e34f053822c3b003cd0be6686176335e + commonmarker-merge (7.1.0) concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 + dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -484,20 +783,28 @@ CHECKSUMS gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f + go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 + json-merge (7.1.0) kettle-dev (2.3.8) sha256=9d716ff21c660a730cb4e8d41e2e2f0630a28167a354b6e2924e242102aef72c + kettle-drift (1.0.6) sha256=46eda08fa4411d1f3c6682a95eef1c9df4e94611b3949f49d4c7b43c0ed356a3 + kettle-jem (7.1.0) kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f kettle-soup-cover (3.0.4) kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa + kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 + markdown-merge (7.1.0) + markly (0.16.0) sha256=6f70d79e385b1efc9e171f74c81628826259039fe6c778e03c3924c71dac5511 + markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-aarch64-linux-gnu) sha256=1269fb644a6de405057a53dd5c762b1209b43ca7424f839454d3dbc677c31a8f nokogiri (1.19.4-aarch64-linux-musl) sha256=35c65b9ce72b3bb03207bdbe7067915019dc18c1b9b59139684bd6690fdd01af @@ -511,15 +818,20 @@ CHECKSUMS parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 + parslet-toml-merge (7.1.0) + plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 + prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 + psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 + rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb @@ -558,12 +870,15 @@ CHECKSUMS ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 + rust-merge (7.1.0) + service_actor (3.9.4) sha256=e63b523630b9a7e62959b2a90113b08d2565b5de9c148557b281ef847c9539ce silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed + smorg-rb (7.1.0) sorbet-runtime (0.6.13347) sha256=54e7221d9f4b63f58aec79f3043752a9ba7810347c6ae0d903531591cc2d5f01 standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b @@ -578,17 +893,22 @@ CHECKSUMS timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.5) sha256=b852f924287ffb58a440856e862b056c8ad97e74b4b2526cee43e0771f40c25c + toml (0.3.0) sha256=0a91d0f76a9036e84e44f95693b12f58d358c1df3ac8e3b5271f2056ecc6e4b9 + toml-merge (7.1.0) + toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-aarch64-linux) sha256=55ffc7c87868cb45658338363d9eba51b4a8b0259aa88e4de368d2bd1d52fea4 tree_sitter_language_pack (1.13.3-arm64-darwin) sha256=bc2498db605f212a1dbd2465ed3f65190d7da786f6ed5d30fcf958121aeb4a5c tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 + typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 webrick (1.9.2) sha256=beb4a15fc474defed24a3bda4ffd88a490d517c9e4e6118c3edce59e45864131 yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 + yaml-merge (7.1.0) yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd @@ -596,6 +916,7 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 + zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH diff --git a/gems/tree_haver/.rubocop_gradual.lock b/gems/tree_haver/.rubocop_gradual.lock new file mode 100644 index 000000000..78a0e7989 --- /dev/null +++ b/gems/tree_haver/.rubocop_gradual.lock @@ -0,0 +1,500 @@ +{ + ".simplecov:3575099246": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "Rakefile:1868927885": [ + [18, 121, 17, "Layout/LineLength: Line is too long. [137/120]", 174264873], + [79, 3, 1023, "Metrics/BlockLength: Block has too many lines. [32/25]", 54868638], + [163, 121, 22, "Layout/LineLength: Line is too long. [142/120]", 1367093088], + [166, 121, 18, "Layout/LineLength: Line is too long. [138/120]", 3881946477] + ], + "gemfiles/modular/benchmark/r4/v0.5.gemfile:3644720371": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/benchmark/vHEAD.gemfile:2838879269": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/cgi/r4/v0.5.gemfile:367169322": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/cgi/vHEAD.gemfile:2729540777": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/erb/r2/v3.0.gemfile:1688285565": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/erb/r3/v5.0.gemfile:2394062339": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/erb/r4/v5.0.gemfile:2394062339": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/erb/vHEAD.gemfile:981929959": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/mutex_m/r2/v0.3.gemfile:4055275004": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/mutex_m/r3/v0.3.gemfile:4055275004": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/mutex_m/r4/v0.3.gemfile:4055275004": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/mutex_m/vHEAD.gemfile:556854763": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/rspec.gemfile:2263543889": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/stringio/r2/v3.0.gemfile:821604304": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/stringio/r3/v3.0.gemfile:821604304": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/stringio/r4/v3.0.gemfile:821604304": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/stringio/vHEAD.gemfile:1045839691": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/webrick/r4/v1.9.gemfile:3092661193": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/webrick/vHEAD.gemfile:3867684682": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/x_std_libs.gemfile:2324400122": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/x_std_libs/r2/libs.gemfile:36276542": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] + ], + "gemfiles/modular/x_std_libs/r3/libs.gemfile:4030570297": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] + ], + "gemfiles/modular/x_std_libs/r4/libs.gemfile:732451732": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] + ], + "gemfiles/modular/x_std_libs/vHEAD.gemfile:2390363993": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] + ], + "lib/tree_haver.rb:312280314": [ + [49, 1, 16, "Style/Documentation: Missing top-level documentation comment for `module TreeHaver`.", 3627168465], + [49, 1, 17806, "Metrics/ModuleLength: Module has too many lines. [462/100]", 765750911], + [67, 3, 566, "Metrics/MethodLength: Method has too many lines. [12/10]", 1536513137], + [124, 3, 272, "Metrics/MethodLength: Method has too many lines. [11/10]", 505877912], + [156, 3, 543, "Metrics/MethodLength: Method has too many lines. [14/10]", 3733215372], + [221, 3, 458, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `backend_module` is too high. [9/7]", 73937708], + [221, 3, 458, "Metrics/MethodLength: Method has too many lines. [12/10]", 73937708], + [221, 3, 458, "Metrics/PerceivedComplexity: Perceived complexity for `backend_module` is too high. [9/8]", 73937708], + [257, 3, 1147, "Metrics/AbcSize: Assignment Branch Condition size for `register_language` is too high. [<0, 20, 10> 22.36/17]", 738075279], + [257, 3, 1147, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `register_language` is too high. [11/7]", 738075279], + [257, 3, 1147, "Metrics/MethodLength: Method has too many lines. [16/10]", 738075279], + [257, 3, 1147, "Metrics/PerceivedComplexity: Perceived complexity for `register_language` is too high. [11/8]", 738075279], + [257, 24, 165, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [9/5]", 2985413937], + [292, 3, 1969, "Metrics/AbcSize: Assignment Branch Condition size for `parser_for` is too high. [<14, 35, 18> 41.77/17]", 3351435495], + [292, 3, 1969, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `parser_for` is too high. [19/7]", 3351435495], + [292, 3, 1969, "Metrics/MethodLength: Method has too many lines. [39/10]", 3351435495], + [292, 3, 1969, "Metrics/PerceivedComplexity: Perceived complexity for `parser_for` is too high. [19/8]", 3351435495], + [292, 17, 155, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [8/5]", 1417642817], + [347, 3, 2089, "Metrics/MethodLength: Method has too many lines. [51/10]", 2791676388], + [401, 3, 704, "Metrics/AbcSize: Assignment Branch Condition size for `requested_backend_type` is too high. [<4, 17, 9> 19.65/17]", 3087691662], + [401, 3, 704, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `requested_backend_type` is too high. [8/7]", 3087691662], + [401, 3, 704, "Metrics/MethodLength: Method has too many lines. [14/10]", 3087691662], + [401, 3, 704, "Metrics/PerceivedComplexity: Perceived complexity for `requested_backend_type` is too high. [9/8]", 3087691662], + [453, 3, 696, "Metrics/MethodLength: Method has too many lines. [14/10]", 307274721], + [484, 3, 422, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `registered_backend_type_available?` is too high. [8/7]", 1544952013], + [554, 3, 489, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `backend_module_for` is too high. [10/7]", 3448932255], + [554, 3, 489, "Metrics/MethodLength: Method has too many lines. [22/10]", 3448932255] + ], + "lib/tree_haver/backend_api.rb:3354059061": [ + [30, 3, 12181, "Metrics/ModuleLength: Module has too many lines. [243/100]", 205645546], + [139, 5, 8882, "Metrics/ClassLength: Class has too many lines. [180/100]", 4281605197], + [145, 7, 1502, "Metrics/AbcSize: Assignment Branch Condition size for `validate` is too high. [<4, 22, 10> 24.49/17]", 747017743], + [145, 7, 1502, "Metrics/MethodLength: Method has too many lines. [31/10]", 747017743], + [145, 7, 1502, "Metrics/PerceivedComplexity: Perceived complexity for `validate` is too high. [11/8]", 747017743], + [213, 7, 903, "Metrics/MethodLength: Method has too many lines. [24/10]", 3041411230], + [261, 7, 1271, "Metrics/AbcSize: Assignment Branch Condition size for `validate_capabilities_hash` is too high. [<7, 27, 7> 28.76/17]", 3965262932], + [261, 7, 1271, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `validate_capabilities_hash` is too high. [8/7]", 3965262932], + [261, 7, 1271, "Metrics/MethodLength: Method has too many lines. [25/10]", 3965262932], + [277, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 2253399502], + [296, 7, 908, "Metrics/AbcSize: Assignment Branch Condition size for `validate_language` is too high. [<6, 17, 4> 18.47/17]", 733551867], + [315, 7, 797, "Metrics/AbcSize: Assignment Branch Condition size for `validate_parser` is too high. [<5, 16, 7> 18.17/17]", 1229041751], + [315, 7, 797, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `validate_parser` is too high. [8/7]", 1229041751], + [315, 7, 797, "Metrics/MethodLength: Method has too many lines. [15/10]", 1229041751], + [349, 7, 862, "Metrics/AbcSize: Assignment Branch Condition size for `validate_node_class` is too high. [<8, 18, 8> 21.26/17]", 1873188195], + [349, 7, 862, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `validate_node_class` is too high. [8/7]", 1873188195], + [349, 7, 862, "Metrics/MethodLength: Method has too many lines. [20/10]", 1873188195], + [349, 7, 862, "Metrics/PerceivedComplexity: Perceived complexity for `validate_node_class` is too high. [9/8]", 1873188195], + [375, 11, 20, "Naming/PredicatePrefix: Rename `has_method_or_alias?` to `method_or_alias?`.", 285116235] + ], + "lib/tree_haver/backend_context.rb:159197618": [ + [3, 1, 16, "Style/Documentation: Missing top-level documentation comment for `module TreeHaver`.", 3627168465] + ], + "lib/tree_haver/backend_registry.rb:4046212912": [ + [4, 3, 22, "Style/Documentation: Missing top-level documentation comment for `module TreeHaver::BackendRegistry`.", 733935278], + [4, 3, 5121, "Metrics/ModuleLength: Module has too many lines. [152/100]", 1483988260], + [39, 5, 382, "Metrics/MethodLength: Method has too many lines. [11/10]", 2000730238], + [48, 16, 1, "Style/DoubleNegation: Avoid the use of double negation (`!!`).", 177540], + [55, 5, 889, "Metrics/AbcSize: Assignment Branch Condition size for `register_tag` is too high. [<5, 20, 5> 21.21/17]", 2276764069], + [55, 5, 889, "Metrics/MethodLength: Method has too many lines. [18/10]", 2276764069], + [105, 5, 397, "Metrics/MethodLength: Method has too many lines. [11/10]", 4007185633] + ], + "lib/tree_haver/backends/citrus.rb:3181984499": [ + [40, 9, 449, "Metrics/MethodLength: Method has too many lines. [11/10]", 1138819533], + [173, 11, 1133, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `from_library` is too high. [11/7]", 2613019266], + [173, 11, 1133, "Metrics/MethodLength: Method has too many lines. [16/10]", 2613019266], + [173, 11, 1133, "Metrics/PerceivedComplexity: Perceived complexity for `from_library` is too high. [11/8]", 2613019266], + [230, 9, 597, "Metrics/MethodLength: Method has too many lines. [12/10]", 3923424594], + [403, 9, 810, "Metrics/AbcSize: Assignment Branch Condition size for `structural?` is too high. [<3, 19, 8> 20.83/17]", 3166173256], + [403, 9, 810, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `structural?` is too high. [9/7]", 3166173256], + [403, 9, 810, "Metrics/MethodLength: Method has too many lines. [12/10]", 3166173256], + [403, 9, 810, "Metrics/PerceivedComplexity: Perceived complexity for `structural?` is too high. [9/8]", 3166173256], + [436, 9, 1272, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `extract_type_from_event` is too high. [9/7]", 2022108773], + [436, 9, 1272, "Metrics/MethodLength: Method has too many lines. [16/10]", 2022108773], + [436, 9, 1272, "Metrics/PerceivedComplexity: Perceived complexity for `extract_type_from_event` is too high. [10/8]", 2022108773], + [460, 11, 207, "Style/CaseLikeIf: Convert `if-elsif` to `case-when`.", 1995588659], + [476, 61, 10, "Style/NumericPredicate: Use `offset.positive?` instead of `offset > 0`.", 2454414278] + ], + "lib/tree_haver/backends/ffi.rb:691415497": [ + [83, 9, 853, "Metrics/MethodLength: Method has too many lines. [15/10]", 1876257977], + [147, 7, 7352, "Metrics/ModuleLength: Module has too many lines. [111/100]", 4125377349], + [148, 9, 7320, "Metrics/ClassLength: Class has too many lines. [109/100]", 1130902814], + [183, 11, 559, "Metrics/MethodLength: Method has too many lines. [11/10]", 678018999], + [232, 11, 4265, "Metrics/AbcSize: Assignment Branch Condition size for `try_load!` is too high. [<11, 40, 10> 42.67/17]", 2312962113], + [232, 11, 4265, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `try_load!` is too high. [10/7]", 2312962113], + [232, 11, 4265, "Metrics/MethodLength: Method has too many lines. [58/10]", 2312962113], + [232, 11, 4265, "Metrics/PerceivedComplexity: Perceived complexity for `try_load!` is too high. [11/8]", 2312962113], + [260, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2086221887], + [262, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 2163360042], + [367, 9, 312, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `<=>` is too high. [8/7]", 2433292528], + [437, 11, 4377, "Metrics/AbcSize: Assignment Branch Condition size for `from_library` is too high. [<16, 30, 18> 38.47/17]", 3403850855], + [437, 11, 4377, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `from_library` is too high. [17/7]", 3403850855], + [437, 11, 4377, "Metrics/MethodLength: Method has too many lines. [43/10]", 3403850855], + [437, 11, 4377, "Metrics/PerceivedComplexity: Perceived complexity for `from_library` is too high. [19/8]", 3403850855], + [437, 47, 4, "Lint/UnusedMethodArgument: Unused method argument - `name`.", 2087876002], + [502, 121, 11, "Layout/LineLength: Line is too long. [131/120]", 2415433817], + [554, 9, 3159, "Metrics/AbcSize: Assignment Branch Condition size for `language=` is too high. [<4, 44, 11> 45.53/17]", 1815427493], + [554, 9, 3159, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `language=` is too high. [10/7]", 1815427493], + [554, 9, 3159, "Metrics/MethodLength: Method has too many lines. [40/10]", 1815427493], + [554, 9, 3159, "Metrics/PerceivedComplexity: Perceived complexity for `language=` is too high. [10/8]", 1815427493], + [715, 7, 10494, "Metrics/ClassLength: Class has too many lines. [129/100]", 3710916551], + [744, 45, 9, "Style/NumericPredicate: Use `index.negative?` instead of `index < 0`.", 4215255415], + [807, 13, 10, "Naming/PredicatePrefix: Rename `has_error?` to `error?`.", 946854183], + [889, 21, 9, "Style/NumericPredicate: Use `index.negative?` instead of `index < 0`.", 4215255415], + [933, 9, 694, "Metrics/AbcSize: Assignment Branch Condition size for `descendant_for_point_range` is too high. [<7, 21, 5> 22.69/17]", 979329510], + [953, 9, 706, "Metrics/AbcSize: Assignment Branch Condition size for `named_descendant_for_point_range` is too high. [<7, 21, 5> 22.69/17]", 2494446138] + ], + "lib/tree_haver/backends/java.rb:3360169733": [ + [134, 7, 815, "Metrics/AbcSize: Assignment Branch Condition size for `configure_native_library_path!` is too high. [<4, 17, 6> 18.47/17]", 1362415302], + [227, 121, 7, "Layout/LineLength: Line is too long. [127/120]", 3409700051], + [260, 7, 9885, "Metrics/ClassLength: Class has too many lines. [114/100]", 136252046], + [292, 9, 312, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `<=>` is too high. [8/7]", 2433292528], + [340, 11, 4098, "Metrics/AbcSize: Assignment Branch Condition size for `from_library` is too high. [<19, 32, 14> 39.76/17]", 3050250526], + [340, 11, 4098, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `from_library` is too high. [14/7]", 3050250526], + [340, 11, 4098, "Metrics/MethodLength: Method has too many lines. [48/10]", 3050250526], + [340, 11, 4098, "Metrics/PerceivedComplexity: Perceived complexity for `from_library` is too high. [16/8]", 3050250526], + [426, 11, 2084, "Metrics/AbcSize: Assignment Branch Condition size for `load_by_name` is too high. [<11, 17, 6> 21.12/17]", 226213748], + [426, 11, 2084, "Metrics/MethodLength: Method has too many lines. [35/10]", 226213748], + [542, 9, 1016, "Metrics/MethodLength: Method has too many lines. [17/10]", 4123264427], + [649, 9, 702, "Metrics/MethodLength: Method has too many lines. [14/10]", 1334016319], + [649, 17, 89, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 3152137646], + [728, 9, 583, "Metrics/MethodLength: Method has too many lines. [11/10]", 2457478600], + [816, 13, 10, "Naming/PredicatePrefix: Rename `has_error?` to `error?`.", 946854183] + ], + "lib/tree_haver/backends/mri.rb:863330290": [ + [59, 9, 916, "Metrics/MethodLength: Method has too many lines. [15/10]", 749971754], + [179, 9, 312, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `<=>` is too high. [8/7]", 2433292528], + [232, 11, 1562, "Metrics/MethodLength: Method has too many lines. [11/10]", 3858647816] + ], + "lib/tree_haver/backends/parslet.rb:4170691266": [ + [41, 9, 323, "Metrics/MethodLength: Method has too many lines. [11/10]", 694290592], + [108, 121, 3, "Layout/LineLength: Line is too long. [123/120]", 193340030], + [172, 11, 1133, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `from_library` is too high. [11/7]", 2613019266], + [172, 11, 1133, "Metrics/MethodLength: Method has too many lines. [16/10]", 2613019266], + [172, 11, 1133, "Metrics/PerceivedComplexity: Perceived complexity for `from_library` is too high. [11/8]", 2613019266], + [246, 9, 591, "Metrics/MethodLength: Method has too many lines. [12/10]", 3007454066], + [335, 7, 6287, "Metrics/ClassLength: Class has too many lines. [155/100]", 3100555518], + [362, 9, 452, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `start_byte` is too high. [8/7]", 2663206926], + [362, 9, 452, "Metrics/MethodLength: Method has too many lines. [12/10]", 2663206926], + [380, 9, 557, "Metrics/MethodLength: Method has too many lines. [12/10]", 2982914846], + [443, 9, 404, "Metrics/MethodLength: Method has too many lines. [11/10]", 1111982079], + [495, 61, 10, "Style/NumericPredicate: Use `offset.positive?` instead of `offset > 0`.", 2454414278], + [501, 9, 313, "Metrics/MethodLength: Method has too many lines. [13/10]", 1927903077], + [519, 9, 448, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `find_first_slice` is too high. [8/7]", 229178429], + [519, 9, 448, "Metrics/MethodLength: Method has too many lines. [16/10]", 229178429], + [524, 17, 11, "Style/HashEachMethods: Use `each_value` instead of `values.each`.", 236538172], + [539, 9, 461, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `find_last_slice` is too high. [8/7]", 3960808114], + [539, 9, 461, "Metrics/MethodLength: Method has too many lines. [16/10]", 3960808114] + ], + "lib/tree_haver/backends/prism.rb:265399087": [ + [39, 9, 448, "Metrics/MethodLength: Method has too many lines. [11/10]", 2383415890], + [70, 121, 13, "Layout/LineLength: Line is too long. [133/120]", 721867551], + [71, 9, 712, "Metrics/MethodLength: Method has too many lines. [12/10]", 1576927704], + [145, 41, 6, "Lint/UnusedMethodArgument: Unused method argument - `symbol`.", 2153517219], + [182, 9, 554, "Metrics/MethodLength: Method has too many lines. [16/10]", 3452414947], + [250, 13, 11, "Naming/PredicatePrefix: Rename `has_errors?` to `errors?`.", 1181419252], + [275, 69, 27, "Lint/HashCompareByIdentity: Use `Hash#compare_by_identity` instead of using `object_id` for keys.", 1979346241], + [301, 13, 64, "Lint/HashCompareByIdentity: Use `Hash#compare_by_identity` instead of using `object_id` for keys.", 1942915391], + [305, 9, 519, "Metrics/AbcSize: Assignment Branch Condition size for `classify_comment_hint` is too high. [<5, 20, 5> 21.21/17]", 869270335], + [485, 13, 10, "Naming/PredicatePrefix: Rename `has_error?` to `error?`.", 946854183], + [554, 24, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765] + ], + "lib/tree_haver/backends/psych.rb:1528613408": [ + [30, 9, 448, "Metrics/MethodLength: Method has too many lines. [11/10]", 2367418678], + [59, 9, 601, "Metrics/MethodLength: Method has too many lines. [11/10]", 2824278890], + [342, 9, 901, "Metrics/AbcSize: Assignment Branch Condition size for `extract_text_from_location` is too high. [<8, 23, 18> 30.28/17]", 1252700264], + [342, 9, 901, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `extract_text_from_location` is too high. [14/7]", 1252700264], + [342, 9, 901, "Metrics/MethodLength: Method has too many lines. [22/10]", 1252700264], + [342, 9, 901, "Metrics/PerceivedComplexity: Perceived complexity for `extract_text_from_location` is too high. [16/8]", 1252700264] + ], + "lib/tree_haver/backends/rust.rb:3784474048": [ + [52, 9, 548, "Metrics/MethodLength: Method has too many lines. [15/10]", 3791803966], + [156, 121, 1, "Layout/LineLength: Line is too long. [121/120]", 177548] + ], + "lib/tree_haver/backends/tslp.rb:3474467412": [ + [10, 5, 6880, "Metrics/ModuleLength: Module has too many lines. [116/100]", 335751325], + [33, 9, 663, "Metrics/MethodLength: Method has too many lines. [16/10]", 2812178140], + [112, 9, 652, "Metrics/MethodLength: Method has too many lines. [12/10]", 104646199], + [124, 35, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], + [145, 7, 14, "Style/Documentation: Missing top-level documentation comment for `class TreeHaver::Backends::Tslp::Language`.", 3674592793], + [157, 7, 12, "Style/Documentation: Missing top-level documentation comment for `class TreeHaver::Backends::Tslp::Parser`.", 2485220908], + [158, 9, 582, "Metrics/AbcSize: Assignment Branch Condition size for `parse` is too high. [<2, 17, 4> 17.58/17]", 103430155], + [180, 7, 10, "Style/Documentation: Missing top-level documentation comment for `class TreeHaver::Backends::Tslp::Tree`.", 3516465773], + [186, 7, 10, "Style/Documentation: Missing top-level documentation comment for `class TreeHaver::Backends::Tslp::Node`.", 3515419275], + [220, 13, 10, "Naming/PredicatePrefix: Rename `has_error?` to `error?`.", 946854183] + ], + "lib/tree_haver/base/comment.rb:699160654": [ + [10, 5, 8183, "Metrics/ClassLength: Class has too many lines. [152/100]", 4001235397] + ], + "lib/tree_haver/base/node.rb:586469776": [ + [36, 5, 7668, "Metrics/ClassLength: Class has too many lines. [156/100]", 171773185], + [162, 11, 10, "Naming/PredicatePrefix: Rename `has_error?` to `error?`.", 946854183], + [208, 27, 8, "Style/NumericPredicate: Use `cmp.zero?` instead of `cmp == 0`.", 736104011], + [239, 7, 888, "Metrics/AbcSize: Assignment Branch Condition size for `source_position` is too high. [<6, 20, 12> 24.08/17]", 3968023659], + [239, 7, 888, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `source_position` is too high. [9/7]", 3968023659], + [239, 7, 888, "Metrics/MethodLength: Method has too many lines. [28/10]", 3968023659], + [239, 7, 888, "Metrics/PerceivedComplexity: Perceived complexity for `source_position` is too high. [13/8]", 3968023659], + [306, 7, 355, "Metrics/MethodLength: Method has too many lines. [11/10]", 1012295608] + ], + "lib/tree_haver/base/tree.rb:3081630142": [ + [89, 15, 145, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 1155535733], + [103, 11, 10, "Naming/PredicatePrefix: Rename `has_error?` to `error?`.", 946854183] + ], + "lib/tree_haver/citrus_grammar_finder.rb:2540014236": [ + [31, 3, 7013, "Metrics/ClassLength: Class has too many lines. [102/100]", 245808593], + [66, 5, 3770, "Metrics/AbcSize: Assignment Branch Condition size for `available?` is too high. [<16, 52, 21> 58.32/17]", 3886463212], + [66, 5, 3770, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `available?` is too high. [22/7]", 3886463212], + [66, 5, 3770, "Metrics/MethodLength: Method has too many lines. [50/10]", 3886463212], + [66, 5, 3770, "Metrics/PerceivedComplexity: Perceived complexity for `available?` is too high. [22/8]", 3886463212], + [94, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5858894] + ], + "lib/tree_haver/contracts.rb:1571706604": [ + [3, 1, 16, "Style/Documentation: Missing top-level documentation comment for `module TreeHaver`.", 3627168465], + [3, 1, 28139, "Metrics/ModuleLength: Module has too many lines. [924/100]", 3701899480], + [91, 5, 732, "Metrics/AbcSize: Assignment Branch Condition size for `to_h` is too high. [<0, 18, 2> 18.11/17]", 3031678572], + [91, 5, 732, "Metrics/MethodLength: Method has too many lines. [17/10]", 3031678572], + [170, 5, 697, "Metrics/MethodLength: Method has too many lines. [18/10]", 389212725], + [231, 5, 507, "Metrics/MethodLength: Method has too many lines. [13/10]", 2631332781], + [329, 5, 580, "Metrics/MethodLength: Method has too many lines. [13/10]", 2166080747], + [558, 5, 558, "Metrics/AbcSize: Assignment Branch Condition size for `to_h` is too high. [<0, 17, 4> 17.46/17]", 2109105399], + [558, 5, 558, "Metrics/MethodLength: Method has too many lines. [18/10]", 2109105399], + [610, 3, 780, "Metrics/AbcSize: Assignment Branch Condition size for `library_path_errors` is too high. [<3, 20, 10> 22.56/17]", 1003454820], + [610, 3, 780, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `library_path_errors` is too high. [10/7]", 1003454820], + [610, 3, 780, "Metrics/MethodLength: Method has too many lines. [14/10]", 1003454820], + [610, 3, 780, "Metrics/PerceivedComplexity: Perceived complexity for `library_path_errors` is too high. [10/8]", 1003454820], + [652, 3, 686, "Metrics/MethodLength: Method has too many lines. [16/10]", 2530945134], + [674, 3, 483, "Metrics/MethodLength: Method has too many lines. [15/10]", 3654427448], + [693, 3, 511, "Metrics/MethodLength: Method has too many lines. [16/10]", 145071639], + [770, 5, 384, "Metrics/AbcSize: Assignment Branch Condition size for `to_h` is too high. [<0, 19, 6> 19.92/17]", 1287649270], + [841, 5, 449, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `to_h` is too high. [10/7]", 1722332092], + [841, 5, 449, "Metrics/PerceivedComplexity: Perceived complexity for `to_h` is too high. [10/8]", 1722332092], + [873, 121, 1, "Layout/LineLength: Line is too long. [121/120]", 177610], + [874, 5, 420, "Metrics/MethodLength: Method has too many lines. [12/10]", 722580369], + [914, 42, 8, "Lint/StructNewOverride: `:entries` member overrides `Struct#entries` and it may be unexpected.", 999966509], + [937, 3, 473, "Metrics/MethodLength: Method has too many lines. [18/10]", 1284459726], + [958, 3, 655, "Metrics/AbcSize: Assignment Branch Condition size for `byte_offset_for_point` is too high. [<7, 25, 14> 29.5/17]", 1278853347], + [958, 3, 655, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `byte_offset_for_point` is too high. [9/7]", 1278853347], + [958, 3, 655, "Metrics/MethodLength: Method has too many lines. [17/10]", 1278853347], + [958, 3, 655, "Metrics/PerceivedComplexity: Perceived complexity for `byte_offset_for_point` is too high. [10/8]", 1278853347] + ], + "lib/tree_haver/grammar_finder.rb:262426767": [ + [55, 3, 13737, "Metrics/ClassLength: Class has too many lines. [201/100]", 842233610], + [155, 5, 1710, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `find_library_path` is too high. [8/7]", 4164717952], + [155, 5, 1710, "Metrics/MethodLength: Method has too many lines. [25/10]", 4164717952], + [269, 7, 845, "Metrics/MethodLength: Method has too many lines. [12/10]", 916567473], + [315, 5, 577, "Metrics/MethodLength: Method has too many lines. [16/10]", 651056353], + [340, 5, 623, "Metrics/MethodLength: Method has too many lines. [14/10]", 1438381615], + [360, 5, 846, "Metrics/MethodLength: Method has too many lines. [12/10]", 667615068], + [398, 5, 730, "Metrics/MethodLength: Method has too many lines. [13/10]", 927307656] + ], + "lib/tree_haver/kaitai_backend.rb:335397596": [ + [3, 1, 16, "Style/Documentation: Missing top-level documentation comment for `module TreeHaver`.", 3627168465] + ], + "lib/tree_haver/language.rb:2775049278": [ + [39, 3, 12087, "Metrics/ModuleLength: Module has too many lines. [115/100]", 221887443], + [40, 5, 12061, "Metrics/ClassLength: Class has too many lines. [113/100]", 309443185], + [89, 7, 1966, "Metrics/AbcSize: Assignment Branch Condition size for `from_library` is too high. [<4, 20, 10> 22.72/17]", 980659500], + [89, 7, 1966, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `from_library` is too high. [9/7]", 980659500], + [89, 7, 1966, "Metrics/MethodLength: Method has too many lines. [31/10]", 980659500], + [89, 7, 1966, "Metrics/PerceivedComplexity: Perceived complexity for `from_library` is too high. [11/8]", 980659500], + [114, 121, 1, "Layout/LineLength: Line is too long. [121/120]", 177538], + [156, 7, 4289, "Metrics/AbcSize: Assignment Branch Condition size for `method_missing` is too high. [<10, 39, 30> 50.21/17]", 1314689525], + [156, 7, 4289, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `method_missing` is too high. [24/7]", 1314689525], + [156, 7, 4289, "Metrics/MethodLength: Method has too many lines. [56/10]", 1314689525], + [156, 7, 4289, "Metrics/PerceivedComplexity: Perceived complexity for `method_missing` is too high. [26/8]", 1314689525], + [274, 7, 786, "Metrics/MethodLength: Method has too many lines. [12/10]", 3697766033] + ], + "lib/tree_haver/language_pack.rb:3024861237": [ + [3, 1, 16, "Style/Documentation: Missing top-level documentation comment for `module TreeHaver`.", 3627168465] + ], + "lib/tree_haver/language_registry.rb:3137013690": [ + [83, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5861089], + [111, 5, 834, "Metrics/AbcSize: Assignment Branch Condition size for `with_registration` is too high. [<11, 22, 5> 25.1/17]", 1103319853], + [111, 5, 834, "Metrics/MethodLength: Method has too many lines. [25/10]", 1103319853] + ], + "lib/tree_haver/library_path_utils.rb:1552423902": [ + [32, 5, 861, "Metrics/MethodLength: Method has too many lines. [12/10]", 1638068630] + ], + "lib/tree_haver/node.rb:715762930": [ + [62, 3, 16601, "Metrics/ClassLength: Class has too many lines. [237/100]", 2290466920], + [136, 5, 708, "Metrics/AbcSize: Assignment Branch Condition size for `start_point` is too high. [<2, 19, 7> 20.35/17]", 2066418249], + [136, 5, 708, "Metrics/MethodLength: Method has too many lines. [17/10]", 2066418249], + [161, 5, 694, "Metrics/AbcSize: Assignment Branch Condition size for `end_point` is too high. [<2, 19, 7> 20.35/17]", 2127773446], + [161, 5, 694, "Metrics/MethodLength: Method has too many lines. [17/10]", 2127773446], + [232, 5, 948, "Metrics/AbcSize: Assignment Branch Condition size for `text` is too high. [<1, 14, 11> 17.83/17]", 748349201], + [232, 5, 948, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `text` is too high. [9/7]", 748349201], + [232, 5, 948, "Metrics/MethodLength: Method has too many lines. [16/10]", 748349201], + [232, 5, 948, "Metrics/PerceivedComplexity: Perceived complexity for `text` is too high. [11/8]", 748349201], + [259, 9, 10, "Naming/PredicatePrefix: Rename `has_error?` to `error?`.", 946854183], + [328, 5, 994, "Metrics/AbcSize: Assignment Branch Condition size for `named_child` is too high. [<6, 13, 10> 17.46/17]", 3449163117], + [328, 5, 994, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `named_child` is too high. [9/7]", 3449163117], + [328, 5, 994, "Metrics/MethodLength: Method has too many lines. [21/10]", 3449163117], + [328, 5, 994, "Metrics/PerceivedComplexity: Perceived complexity for `named_child` is too high. [10/8]", 3449163117], + [366, 5, 734, "Metrics/MethodLength: Method has too many lines. [15/10]", 3099919150], + [425, 7, 4, "Style/EmptyElse: Redundant `else`-clause.", 2087423834] + ], + "lib/tree_haver/parser.rb:1959976510": [ + [71, 3, 15231, "Metrics/ClassLength: Class has too many lines. [181/100]", 2262931609], + [84, 5, 938, "Metrics/MethodLength: Method has too many lines. [13/10]", 569209133], + [116, 5, 844, "Metrics/MethodLength: Method has too many lines. [11/10]", 3700471369], + [141, 5, 583, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `backend` is too high. [9/7]", 942469984], + [141, 5, 583, "Metrics/MethodLength: Method has too many lines. [20/10]", 942469984], + [237, 5, 1114, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `parse_string` is too high. [8/7]", 2146281390], + [237, 5, 1114, "Metrics/MethodLength: Method has too many lines. [16/10]", 2146281390], + [237, 5, 1114, "Metrics/PerceivedComplexity: Perceived complexity for `parse_string` is too high. [10/8]", 2146281390], + [273, 5, 1162, "Metrics/AbcSize: Assignment Branch Condition size for `switch_backend_for_language` is too high. [<10, 11, 11> 18.49/17]", 3918477333], + [273, 5, 1162, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `switch_backend_for_language` is too high. [11/7]", 3918477333], + [273, 5, 1162, "Metrics/MethodLength: Method has too many lines. [26/10]", 3918477333], + [273, 5, 1162, "Metrics/PerceivedComplexity: Perceived complexity for `switch_backend_for_language` is too high. [9/8]", 3918477333], + [320, 5, 3598, "Metrics/AbcSize: Assignment Branch Condition size for `unwrap_language` is too high. [<4, 32, 32> 45.43/17]", 2683894777], + [320, 5, 3598, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `unwrap_language` is too high. [29/7]", 2683894777], + [320, 5, 3598, "Metrics/MethodLength: Method has too many lines. [55/10]", 2683894777], + [320, 5, 3598, "Metrics/PerceivedComplexity: Perceived complexity for `unwrap_language` is too high. [23/8]", 2683894777], + [414, 5, 892, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `try_reload_language_for_backend` is too high. [9/7]", 1872419716], + [414, 5, 892, "Metrics/MethodLength: Method has too many lines. [14/10]", 1872419716], + [414, 5, 892, "Metrics/PerceivedComplexity: Perceived complexity for `try_reload_language_for_backend` is too high. [9/8]", 1872419716] + ], + "lib/tree_haver/parslet_grammar_finder.rb:756779364": [ + [32, 3, 6418, "Metrics/ClassLength: Class has too many lines. [105/100]", 2916347470], + [67, 5, 2630, "Metrics/AbcSize: Assignment Branch Condition size for `available?` is too high. [<14, 39, 19> 45.59/17]", 1827795944], + [67, 5, 2630, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `available?` is too high. [20/7]", 1827795944], + [67, 5, 2630, "Metrics/MethodLength: Method has too many lines. [43/10]", 1827795944], + [67, 5, 2630, "Metrics/PerceivedComplexity: Perceived complexity for `available?` is too high. [20/8]", 1827795944] + ], + "lib/tree_haver/path_validator.rb:1827441298": [ + [31, 3, 11571, "Metrics/ModuleLength: Module has too many lines. [133/100]", 3916793077], + [71, 5, 1048, "Metrics/AbcSize: Assignment Branch Condition size for `trusted_directories` is too high. [<4, 16, 5> 17.23/17]", 2683168069], + [71, 5, 1048, "Metrics/MethodLength: Method has too many lines. [13/10]", 2683168069], + [182, 5, 1000, "Metrics/AbcSize: Assignment Branch Condition size for `safe_library_path?` is too high. [<1, 15, 15> 21.24/17]", 3331427816], + [182, 5, 1000, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `safe_library_path?` is too high. [15/7]", 3331427816], + [182, 5, 1000, "Metrics/MethodLength: Method has too many lines. [11/10]", 3331427816], + [182, 5, 1000, "Metrics/PerceivedComplexity: Perceived complexity for `safe_library_path?` is too high. [15/8]", 3331427816], + [314, 5, 911, "Metrics/AbcSize: Assignment Branch Condition size for `validation_errors` is too high. [<2, 21, 13> 24.78/17]", 1249065882], + [314, 5, 911, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `validation_errors` is too high. [13/7]", 1249065882], + [314, 5, 911, "Metrics/MethodLength: Method has too many lines. [14/10]", 1249065882], + [314, 5, 911, "Metrics/PerceivedComplexity: Perceived complexity for `validation_errors` is too high. [13/8]", 1249065882], + [345, 9, 20, "Naming/PredicatePrefix: Rename `has_valid_extension?` to `valid_extension?`.", 2041908655] + ], + "lib/tree_haver/peg_backends.rb:2882446693": [ + [3, 1, 16, "Style/Documentation: Missing top-level documentation comment for `module TreeHaver`.", 3627168465], + [37, 3, 611, "Metrics/MethodLength: Method has too many lines. [21/10]", 2394303132], + [39, 11, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], + [61, 3, 377, "Metrics/MethodLength: Method has too many lines. [13/10]", 1137341195] + ], + "lib/tree_haver/rspec/dependency_tags.rb:2954930617": [ + [7, 5, 21, "Style/Documentation: Missing top-level documentation comment for `module TreeHaver::RSpec::DependencyTags`.", 2626933713] + ], + "lib/tree_haver/tree.rb:3332079774": [ + [129, 5, 1443, "Metrics/AbcSize: Assignment Branch Condition size for `edit` is too high. [<8, 18, 7> 20.9/17]", 4208399016], + [129, 5, 1443, "Metrics/MethodLength: Method has too many lines. [24/10]", 4208399016], + [129, 13, 89, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 3152137646] + ], + "spec/backend_registry_spec.rb:229950927": [ + [5, 1, 3102, "Metrics/BlockLength: Block has too many lines. [62/25]", 3416335650] + ], + "spec/backends/tslp_spec.rb:3041579573": [ + [5, 1, 8455, "Metrics/BlockLength: Block has too many lines. [173/25]", 3520038900], + [71, 59, 9, "Lint/DuplicateMethods: Method `::Object#parse` is defined at both spec/backends/tslp_spec.rb:55 and spec/backends/tslp_spec.rb:71.", 3551808887], + [87, 3, 1545, "Metrics/BlockLength: Block has too many lines. [33/25]", 1552545577], + [170, 3, 1352, "Metrics/BlockLength: Block has too many lines. [29/25]", 2972556266] + ], + "spec/fixtures_integration_spec.rb:1473080413": [ + [3, 1, 52001, "Metrics/BlockLength: Block has too many lines. [1115/25]", 592858895], + [108, 3, 1282, "Metrics/BlockLength: Block has too many lines. [29/25]", 505243730], + [141, 3, 1840, "Metrics/BlockLength: Block has too many lines. [35/25]", 1365684528], + [180, 3, 1365, "Metrics/BlockLength: Block has too many lines. [33/25]", 1597100003], + [247, 3, 2110, "Metrics/BlockLength: Block has too many lines. [41/25]", 219204301], + [294, 3, 2166, "Metrics/BlockLength: Block has too many lines. [27/25]", 2219571348], + [354, 3, 1786, "Metrics/BlockLength: Block has too many lines. [30/25]", 1655451032], + [432, 3, 1345, "Metrics/BlockLength: Block has too many lines. [26/25]", 1188499098], + [534, 3, 3250, "Metrics/BlockLength: Block has too many lines. [64/25]", 2852118886], + [589, 121, 57, "Layout/LineLength: Line is too long. [177/120]", 2115564430], + [602, 3, 752, "Metrics/AbcSize: Assignment Branch Condition size for `normalized_tree_node` is too high. [<0, 19, 4> 19.42/17]", 1725197185], + [602, 3, 752, "Metrics/MethodLength: Method has too many lines. [18/10]", 1725197185], + [623, 3, 850, "Metrics/AbcSize: Assignment Branch Condition size for `backend_capability` is too high. [<0, 20, 0> 20/17]", 3278569026], + [623, 3, 850, "Metrics/MethodLength: Method has too many lines. [14/10]", 3278569026], + [640, 3, 744, "Metrics/MethodLength: Method has too many lines. [13/10]", 1675624229], + [679, 3, 492, "Metrics/MethodLength: Method has too many lines. [11/10]", 4123526878], + [714, 3, 566, "Metrics/AbcSize: Assignment Branch Condition size for `parse_error_tolerance` is too high. [<1, 17, 1> 17.06/17]", 933590597], + [714, 3, 566, "Metrics/MethodLength: Method has too many lines. [14/10]", 933590597], + [739, 3, 2652, "Metrics/BlockLength: Block has too many lines. [47/25]", 214520278], + [1039, 7, 87, "Lint/ConstantDefinitionInBlock: Do not define constants this way within a block.", 3860036845], + [1045, 7, 60, "Lint/ConstantDefinitionInBlock: Do not define constants this way within a block.", 1411318317], + [1063, 3, 1334, "Metrics/BlockLength: Block has too many lines. [41/25]", 1427111445], + [1069, 7, 134, "Lint/ConstantDefinitionInBlock: Do not define constants this way within a block.", 1166944291], + [1075, 7, 60, "Lint/ConstantDefinitionInBlock: Do not define constants this way within a block.", 1411318317], + [1085, 7, 134, "Lint/ConstantDefinitionInBlock: Do not define constants this way within a block.", 1166944291], + [1091, 7, 60, "Lint/ConstantDefinitionInBlock: Do not define constants this way within a block.", 1411318317], + [1115, 3, 1290, "Metrics/BlockLength: Block has too many lines. [41/25]", 3478080675], + [1121, 7, 157, "Lint/ConstantDefinitionInBlock: Do not define constants this way within a block.", 2460330604], + [1127, 7, 60, "Lint/ConstantDefinitionInBlock: Do not define constants this way within a block.", 1411318317], + [1137, 7, 154, "Lint/ConstantDefinitionInBlock: Do not define constants this way within a block.", 3868502553], + [1143, 7, 60, "Lint/ConstantDefinitionInBlock: Do not define constants this way within a block.", 1411318317], + [1167, 3, 1405, "Metrics/BlockLength: Block has too many lines. [44/25]", 2313436250], + [1173, 7, 134, "Lint/ConstantDefinitionInBlock: Do not define constants this way within a block.", 1166944291], + [1179, 7, 60, "Lint/ConstantDefinitionInBlock: Do not define constants this way within a block.", 1411318317], + [1189, 7, 134, "Lint/ConstantDefinitionInBlock: Do not define constants this way within a block.", 1166944291], + [1195, 7, 60, "Lint/ConstantDefinitionInBlock: Do not define constants this way within a block.", 1411318317] + ], + "spec/grammar_finder_spec.rb:143254687": [ + [5, 1, 3065, "Metrics/BlockLength: Block has too many lines. [51/25]", 4150338550], + [19, 3, 2446, "Metrics/BlockLength: Block has too many lines. [39/25]", 552612354] + ], + "tree_haver.gemspec:3046477115": [ + [16, 121, 19, "Layout/LineLength: Line is too long. [139/120]", 1512975621], + [129, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 2821357214], + [146, 121, 50, "Layout/LineLength: Line is too long. [170/120]", 3888612416], + [147, 121, 29, "Layout/LineLength: Line is too long. [149/120]", 981994949], + [154, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 4229808912] + ] +} diff --git a/gems/tree_haver/Gemfile.lock b/gems/tree_haver/Gemfile.lock index 55ceb255a..2c4b3dedd 100644 --- a/gems/tree_haver/Gemfile.lock +++ b/gems/tree_haver/Gemfile.lock @@ -88,12 +88,12 @@ GEM rdoc (>= 4.0.0) reline (>= 0.4.2) json (2.21.1) - kettle-dev (2.3.7) + kettle-dev (2.3.8) emoji_regex (>= 15.0) kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) - kettle-rb (0.1.4) + kettle-rb (0.1.5) kettle-soup-cover (3.0.4) kettle-wash (~> 0.1, >= 0.1.0) simplecov (>= 1.0) @@ -101,7 +101,7 @@ GEM simplecov-console (~> 0.9, >= 0.9.5) simplecov-rcov (~> 0.3, >= 0.3.7) simplecov_lcov_formatter (~> 0.9, >= 0.9.0) - kettle-test (2.0.11) + kettle-test (2.0.12) appraisal2 (~> 3.0, >= 3.0.6) backports (~> 3.0) rspec (~> 3.0) @@ -457,10 +457,10 @@ CHECKSUMS io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 - kettle-dev (2.3.7) sha256=eb370113cd030d03cbe2d33b31c99858951017e5ad21a17e9ed89dc3770028ee - kettle-rb (0.1.4) sha256=9cef7ce4f7021666b7222292f29051e51eaf042e8a5db11f3f4dd72f74243fc1 + kettle-dev (2.3.8) sha256=9d716ff21c660a730cb4e8d41e2e2f0630a28167a354b6e2924e242102aef72c + kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f kettle-soup-cover (3.0.4) - kettle-test (2.0.11) sha256=c710c90f7ab79d51f9452f0c09f5f90657e7a893f63583855c164d0b1b107ab2 + kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 diff --git a/gems/tree_haver/lib/tree_haver/backends/tslp.rb b/gems/tree_haver/lib/tree_haver/backends/tslp.rb index fd1280712..bf6e5a912 100644 --- a/gems/tree_haver/lib/tree_haver/backends/tslp.rb +++ b/gems/tree_haver/lib/tree_haver/backends/tslp.rb @@ -25,7 +25,7 @@ module Tslp 'toml' => "title = \"tree_haver\"\n", 'yaml' => "tree_haver: true\n" }.freeze - DEFAULT_PARSER_SMOKE_SOURCE = ''.freeze + DEFAULT_PARSER_SMOKE_SOURCE = '' class << self attr_reader :unavailable_reason @@ -112,7 +112,7 @@ def parser_api_smoke_test def smoke_parse_language(language_name, source: smoke_source_for(language_name)) name = language_name.to_s if ::TreeSitterLanguagePack.respond_to?(:has_language) && - !::TreeSitterLanguagePack.has_language(name) + !::TreeSitterLanguagePack.has_language(name) @unavailable_reason = "tree_sitter_language_pack does not publish #{name}" return false end diff --git a/gems/tree_haver/lib/tree_haver/version.rb b/gems/tree_haver/lib/tree_haver/version.rb index 9bd0db819..43365bf4e 100644 --- a/gems/tree_haver/lib/tree_haver/version.rb +++ b/gems/tree_haver/lib/tree_haver/version.rb @@ -2,7 +2,7 @@ module TreeHaver module Version - VERSION = "7.1.0" + VERSION = '7.1.0' end VERSION = Version::VERSION # Traditional Constant Location end From 51474fe9e57d216e5e2d9d8651d3fd0bae0c900b Mon Sep 17 00:00:00 2001 From: "Peter H. Boling" Date: Tue, 21 Jul 2026 13:50:59 -0600 Subject: [PATCH 117/188] =?UTF-8?q?=F0=9F=8E=A8=20Template=20bootstrap=20b?= =?UTF-8?q?y=20kettle-jem=20v7.1.0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gems/ast-crispr-ruby-prism/.kettle-drift.lock | 293 +- .../.rubocop_gradual.lock | 22 +- .../.structuredmerge/kettle-jem.yml | 53 + gems/ast-crispr-ruby-prism/Gemfile | 40 + gems/ast-crispr-ruby-prism/Gemfile.lock | 225 +- gems/ast-crispr-ruby-prism/README.md | 4 +- .../gemfiles/modular/cgi/r4/v0.5.gemfile | 1 + .../gemfiles/modular/cgi/vHEAD.gemfile | 1 + .../gemfiles/modular/coverage.gemfile | 2 +- .../gemfiles/modular/coverage_local.gemfile | 24 +- .../gemfiles/modular/documentation.gemfile | 12 +- .../modular/documentation_local.gemfile | 26 +- .../gemfiles/modular/erb/r3/v5.0.gemfile | 2 +- .../gemfiles/modular/erb/r4/v5.0.gemfile | 2 +- .../modular/json/truffleruby_22_3.gemfile | 6 + .../modular/json/truffleruby_23_0.gemfile | 6 + .../modular/json/truffleruby_23_1.gemfile | 6 + .../gemfiles/modular/optional.gemfile | 3 +- .../gemfiles/modular/runtime_heads.gemfile | 5 +- .../gemfiles/modular/style.gemfile | 23 +- .../gemfiles/modular/style_local.gemfile | 30 +- .../gemfiles/modular/templating.gemfile | 4 +- .../gemfiles/modular/templating_local.gemfile | 22 +- .../gemfiles/modular/webrick/r4/v1.9.gemfile | 1 + .../gemfiles/modular/webrick/vHEAD.gemfile | 1 + .../modular/x_std_libs/r4/libs.gemfile | 2 + .../gemfiles/modular/x_std_libs/vHEAD.gemfile | 2 + gems/ast-merge/.kettle-drift.lock | 9 - gems/ast-merge/.rubocop_gradual.lock | 2928 ----------------- gems/ast-merge/Gemfile.lock | 465 +-- gems/ast-merge/README.md | 4 +- gems/ast-merge/bin/yard | 2 +- .../modular/benchmark/r4/v0.5.gemfile | 2 - .../gemfiles/modular/benchmark/vHEAD.gemfile | 2 - .../gemfiles/modular/cgi/r4/v0.5.gemfile | 1 + .../gemfiles/modular/cgi/vHEAD.gemfile | 1 + .../gemfiles/modular/coverage.gemfile | 6 +- .../gemfiles/modular/coverage_local.gemfile | 48 +- gems/ast-merge/gemfiles/modular/debug.gemfile | 4 +- .../gemfiles/modular/documentation.gemfile | 24 +- .../modular/documentation_local.gemfile | 38 +- .../gemfiles/modular/erb/r2/v3.0.gemfile | 2 +- .../gemfiles/modular/erb/r3/v5.0.gemfile | 2 +- .../gemfiles/modular/erb/r4/v5.0.gemfile | 2 +- .../gemfiles/modular/erb/vHEAD.gemfile | 2 +- .../modular/json/truffleruby_22_3.gemfile | 6 + .../modular/json/truffleruby_23_0.gemfile | 6 + .../modular/json/truffleruby_23_1.gemfile | 6 + .../gemfiles/modular/mutex_m/r2/v0.3.gemfile | 2 +- .../gemfiles/modular/mutex_m/r3/v0.3.gemfile | 2 +- .../gemfiles/modular/mutex_m/r4/v0.3.gemfile | 2 +- .../gemfiles/modular/mutex_m/vHEAD.gemfile | 2 +- .../gemfiles/modular/optional.gemfile | 7 +- gems/ast-merge/gemfiles/modular/rspec.gemfile | 8 +- .../gemfiles/modular/runtime_heads.gemfile | 7 +- .../gemfiles/modular/stringio/r2/v3.0.gemfile | 2 +- .../gemfiles/modular/stringio/r3/v3.0.gemfile | 2 +- .../gemfiles/modular/stringio/r4/v3.0.gemfile | 2 +- .../gemfiles/modular/stringio/vHEAD.gemfile | 2 +- gems/ast-merge/gemfiles/modular/style.gemfile | 29 +- .../gemfiles/modular/style_local.gemfile | 44 +- .../gemfiles/modular/templating.gemfile | 14 +- .../gemfiles/modular/templating_local.gemfile | 48 +- .../gemfiles/modular/webrick/r4/v1.9.gemfile | 1 + .../gemfiles/modular/webrick/vHEAD.gemfile | 1 + .../gemfiles/modular/x_std_libs.gemfile | 14 +- .../modular/x_std_libs/r2/libs.gemfile | 6 +- .../modular/x_std_libs/r3/libs.gemfile | 6 +- .../modular/x_std_libs/r4/libs.gemfile | 10 +- .../gemfiles/modular/x_std_libs/vHEAD.gemfile | 10 +- gems/markdown-merge/.kettle-drift.lock | 293 +- .../.structuredmerge/kettle-jem.yml | 53 + gems/markdown-merge/Gemfile | 72 +- gems/markdown-merge/Gemfile.lock | 512 ++- gems/markdown-merge/README.md | 4 +- gems/markdown-merge/Rakefile | 18 +- .../modular/benchmark/r4/v0.5.gemfile | 2 +- .../gemfiles/modular/benchmark/vHEAD.gemfile | 2 +- .../gemfiles/modular/cgi/r4/v0.5.gemfile | 1 + .../gemfiles/modular/cgi/vHEAD.gemfile | 1 + .../gemfiles/modular/coverage.gemfile | 6 +- .../gemfiles/modular/coverage_local.gemfile | 48 +- .../gemfiles/modular/debug.gemfile | 4 +- .../gemfiles/modular/documentation.gemfile | 24 +- .../modular/documentation_local.gemfile | 38 +- .../gemfiles/modular/erb/r2/v3.0.gemfile | 2 +- .../gemfiles/modular/erb/r3/v5.0.gemfile | 2 +- .../gemfiles/modular/erb/r4/v5.0.gemfile | 2 +- .../gemfiles/modular/erb/vHEAD.gemfile | 2 +- .../modular/json/truffleruby_22_3.gemfile | 6 + .../modular/json/truffleruby_23_0.gemfile | 6 + .../modular/json/truffleruby_23_1.gemfile | 6 + .../gemfiles/modular/mutex_m/r2/v0.3.gemfile | 2 +- .../gemfiles/modular/mutex_m/r3/v0.3.gemfile | 2 +- .../gemfiles/modular/mutex_m/r4/v0.3.gemfile | 2 +- .../gemfiles/modular/mutex_m/vHEAD.gemfile | 2 +- .../gemfiles/modular/optional.gemfile | 7 +- .../gemfiles/modular/rspec.gemfile | 8 +- .../gemfiles/modular/runtime_heads.gemfile | 7 +- .../gemfiles/modular/stringio/r2/v3.0.gemfile | 2 +- .../gemfiles/modular/stringio/r3/v3.0.gemfile | 2 +- .../gemfiles/modular/stringio/r4/v3.0.gemfile | 2 +- .../gemfiles/modular/stringio/vHEAD.gemfile | 2 +- .../gemfiles/modular/style.gemfile | 29 +- .../gemfiles/modular/style_local.gemfile | 44 +- .../gemfiles/modular/templating.gemfile | 14 +- .../gemfiles/modular/templating_local.gemfile | 48 +- .../gemfiles/modular/webrick/r4/v1.9.gemfile | 1 + .../gemfiles/modular/webrick/vHEAD.gemfile | 1 + .../gemfiles/modular/x_std_libs.gemfile | 14 +- .../modular/x_std_libs/r2/libs.gemfile | 6 +- .../modular/x_std_libs/r3/libs.gemfile | 6 +- .../modular/x_std_libs/r4/libs.gemfile | 10 +- .../gemfiles/modular/x_std_libs/vHEAD.gemfile | 10 +- .../lib/markdown/merge/version.rb | 2 +- gems/prism-merge/.kettle-drift.lock | 293 +- gems/prism-merge/.rubocop_gradual.lock | 693 ---- .../.structuredmerge/kettle-jem.yml | 53 + gems/prism-merge/Gemfile | 40 + gems/prism-merge/Gemfile.lock | 482 +-- gems/prism-merge/README.md | 4 +- .../gemfiles/modular/cgi/r4/v0.5.gemfile | 1 + .../gemfiles/modular/cgi/vHEAD.gemfile | 1 + .../gemfiles/modular/coverage.gemfile | 2 +- .../gemfiles/modular/coverage_local.gemfile | 24 +- .../gemfiles/modular/documentation.gemfile | 12 +- .../modular/documentation_local.gemfile | 26 +- .../gemfiles/modular/erb/r3/v5.0.gemfile | 2 +- .../gemfiles/modular/erb/r4/v5.0.gemfile | 2 +- .../modular/json/truffleruby_22_3.gemfile | 6 + .../modular/json/truffleruby_23_0.gemfile | 6 + .../modular/json/truffleruby_23_1.gemfile | 6 + .../gemfiles/modular/optional.gemfile | 3 +- .../gemfiles/modular/runtime_heads.gemfile | 5 +- .../gemfiles/modular/style.gemfile | 23 +- .../gemfiles/modular/style_local.gemfile | 30 +- .../gemfiles/modular/templating.gemfile | 4 +- .../gemfiles/modular/templating_local.gemfile | 22 +- .../gemfiles/modular/webrick/r4/v1.9.gemfile | 1 + .../gemfiles/modular/webrick/vHEAD.gemfile | 1 + .../modular/x_std_libs/r4/libs.gemfile | 2 + .../gemfiles/modular/x_std_libs/vHEAD.gemfile | 2 + gems/prism-merge/lib/prism/merge/version.rb | 2 +- gems/tree_haver/Gemfile.lock | 333 ++ 144 files changed, 2260 insertions(+), 5747 deletions(-) create mode 100644 gems/ast-crispr-ruby-prism/gemfiles/modular/cgi/r4/v0.5.gemfile create mode 100644 gems/ast-crispr-ruby-prism/gemfiles/modular/cgi/vHEAD.gemfile create mode 100644 gems/ast-crispr-ruby-prism/gemfiles/modular/json/truffleruby_22_3.gemfile create mode 100644 gems/ast-crispr-ruby-prism/gemfiles/modular/json/truffleruby_23_0.gemfile create mode 100644 gems/ast-crispr-ruby-prism/gemfiles/modular/json/truffleruby_23_1.gemfile create mode 100644 gems/ast-crispr-ruby-prism/gemfiles/modular/webrick/r4/v1.9.gemfile create mode 100644 gems/ast-crispr-ruby-prism/gemfiles/modular/webrick/vHEAD.gemfile delete mode 100644 gems/ast-merge/.rubocop_gradual.lock create mode 100644 gems/ast-merge/gemfiles/modular/cgi/r4/v0.5.gemfile create mode 100644 gems/ast-merge/gemfiles/modular/cgi/vHEAD.gemfile create mode 100644 gems/ast-merge/gemfiles/modular/json/truffleruby_22_3.gemfile create mode 100644 gems/ast-merge/gemfiles/modular/json/truffleruby_23_0.gemfile create mode 100644 gems/ast-merge/gemfiles/modular/json/truffleruby_23_1.gemfile create mode 100644 gems/ast-merge/gemfiles/modular/webrick/r4/v1.9.gemfile create mode 100644 gems/ast-merge/gemfiles/modular/webrick/vHEAD.gemfile create mode 100644 gems/markdown-merge/gemfiles/modular/cgi/r4/v0.5.gemfile create mode 100644 gems/markdown-merge/gemfiles/modular/cgi/vHEAD.gemfile create mode 100644 gems/markdown-merge/gemfiles/modular/json/truffleruby_22_3.gemfile create mode 100644 gems/markdown-merge/gemfiles/modular/json/truffleruby_23_0.gemfile create mode 100644 gems/markdown-merge/gemfiles/modular/json/truffleruby_23_1.gemfile create mode 100644 gems/markdown-merge/gemfiles/modular/webrick/r4/v1.9.gemfile create mode 100644 gems/markdown-merge/gemfiles/modular/webrick/vHEAD.gemfile delete mode 100644 gems/prism-merge/.rubocop_gradual.lock create mode 100644 gems/prism-merge/gemfiles/modular/cgi/r4/v0.5.gemfile create mode 100644 gems/prism-merge/gemfiles/modular/cgi/vHEAD.gemfile create mode 100644 gems/prism-merge/gemfiles/modular/json/truffleruby_22_3.gemfile create mode 100644 gems/prism-merge/gemfiles/modular/json/truffleruby_23_0.gemfile create mode 100644 gems/prism-merge/gemfiles/modular/json/truffleruby_23_1.gemfile create mode 100644 gems/prism-merge/gemfiles/modular/webrick/r4/v1.9.gemfile create mode 100644 gems/prism-merge/gemfiles/modular/webrick/vHEAD.gemfile diff --git a/gems/ast-crispr-ruby-prism/.kettle-drift.lock b/gems/ast-crispr-ruby-prism/.kettle-drift.lock index 9be384c91..43dfedd67 100644 --- a/gems/ast-crispr-ruby-prism/.kettle-drift.lock +++ b/gems/ast-crispr-ruby-prism/.kettle-drift.lock @@ -1,130 +1,10 @@ { - "(direct_sibling_local ||\nENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?)": [ - { - "file": "Gemfile", - "lines": [ - 80, - 120, - 160, - 200, - 240, - 280, - 320, - 360, - 400 - ] - } - ], - ".find { |spec| spec.name == 'nomono' }\nnomono_locked = nomono_locked_spec &&": [ - { - "file": "Gemfile", - "lines": [ - 91, - 131, - 171, - 211, - 251, - 291, - 331, - 371, - 411 - ] - } - ], - "ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?)\ndirect_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV')": [ - { - "file": "Gemfile", - "lines": [ - 81, - 121, - 161, - 201, - 241, - 281, - 321, - 361, - 401 - ] - } - ], - "Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version)\nnomono_activation_requirements = [\"= #{nomono_locked_spec.version}\"] if nomono_locked": [ - { - "file": "Gemfile", - "lines": [ - 93, - 133, - 173, - 213, - 253, - 293, - 333, - 373, - 413 - ] - } - ], - "Kernel.send(:gem, 'nomono', *nomono_activation_requirements)\nrequire 'nomono/bundler'": [ - { - "file": "Gemfile", - "lines": [ - 96, - 136, - 176, - 216, - 256, - 296, - 336, - 376, - 416 - ] - } - ], - "direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV')\ndirect_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil)": [ - { - "file": "Gemfile", - "lines": [ - 82, - 122, - 162, - 202, - 242, - 282, - 322, - 362, - 402 - ] - } - ], "eval_nomono_gems(\ngems: direct_sibling_gems,": [ { "file": "Gemfile", "lines": [ 60, - 100, - 140, - 180, - 220, - 260, - 300, - 340, - 380, - 420 - ] - } - ], - "gems: direct_sibling_gems,\nprefix: 'STRUCTUREDMERGE',": [ - { - "file": "Gemfile", - "lines": [ - 101, - 141, - 181, - 221, - 261, - 301, - 341, - 381, - 421 + 100 ] } ], @@ -133,31 +13,7 @@ "file": "Gemfile", "lines": [ 43, - 87, - 127, - 167, - 207, - 247, - 287, - 327, - 367, - 407 - ] - } - ], - "if direct_sibling_dev_was_set\nENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original": [ - { - "file": "Gemfile", - "lines": [ - 110, - 150, - 190, - 230, - 270, - 310, - 350, - 390, - 430 + 87 ] } ], @@ -166,15 +22,7 @@ "file": "Gemfile", "lines": [ 35, - 79, - 119, - 159, - 199, - 239, - 279, - 319, - 359, - 399 + 79 ] } ], @@ -183,31 +31,7 @@ "file": "Gemfile", "lines": [ 69, - 109, - 149, - 189, - 229, - 269, - 309, - 349, - 389, - 429 - ] - } - ], - "nomono_activation_requirements = nomono_requirements\nnomono_lockfile = File.expand_path('Gemfile.lock', __dir__)": [ - { - "file": "Gemfile", - "lines": [ - 85, - 125, - 165, - 205, - 245, - 285, - 325, - 365, - 405 + 109 ] } ], @@ -216,15 +40,7 @@ "file": "Gemfile", "lines": [ 48, - 92, - 132, - 172, - 212, - 252, - 292, - 332, - 372, - 412 + 92 ] } ], @@ -233,104 +49,7 @@ "file": "Gemfile", "lines": [ 44, - 88, - 128, - 168, - 208, - 248, - 288, - 328, - 368, - 408 - ] - } - ], - "nomono_lockfile = File.expand_path('Gemfile.lock', __dir__)\nif File.file?(nomono_lockfile)": [ - { - "file": "Gemfile", - "lines": [ - 86, - 126, - 166, - 206, - 246, - 286, - 326, - 366, - 406 - ] - } - ], - "path_env: 'STRUCTUREDMERGE_DEV',\nroot: %w[src my structuredmerge]": [ - { - "file": "Gemfile", - "lines": [ - 103, - 143, - 183, - 223, - 263, - 303, - 343, - 383, - 423 - ] - } - ], - "prefix: 'STRUCTUREDMERGE',\npath_env: 'STRUCTUREDMERGE_DEV',": [ - { - "file": "Gemfile", - "lines": [ - 102, - 142, - 182, - 222, - 262, - 302, - 342, - 382, - 422 - ] - } - ], - "require 'nomono/bundler'\nENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local": [ - { - "file": "Gemfile", - "lines": [ - 97, - 137, - 177, - 217, - 257, - 297, - 337, - 377, - 417 - ] - } - ], - "rescue LoadError\nwarn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.'": [ - { - "file": "Gemfile", - "lines": [ - 106, - 146, - 186, - 226, - 266, - 306, - 346, - 386, - 426 - ] - } - ], - "vendored_gems_env: 'VENDORED_GEMS',\nvendor_gem_dir_env: 'VENDOR_GEM_DIR',": [ - { - "file": "gemfiles/modular/templating_local.gemfile", - "lines": [ - 58, - 69 + 88 ] } ] diff --git a/gems/ast-crispr-ruby-prism/.rubocop_gradual.lock b/gems/ast-crispr-ruby-prism/.rubocop_gradual.lock index aed95d78d..50dd22b1b 100644 --- a/gems/ast-crispr-ruby-prism/.rubocop_gradual.lock +++ b/gems/ast-crispr-ruby-prism/.rubocop_gradual.lock @@ -21,13 +21,20 @@ [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] ], + "gemfiles/modular/cgi/r4/v0.5.gemfile:367169322": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/cgi/vHEAD.gemfile:2729540777": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], "gemfiles/modular/erb/r2/v3.0.gemfile:1688285565": [ [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] ], - "gemfiles/modular/erb/r3/v5.0.gemfile:2150258305": [ + "gemfiles/modular/erb/r3/v5.0.gemfile:2394062339": [ [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] ], - "gemfiles/modular/erb/r4/v5.0.gemfile:2150258305": [ + "gemfiles/modular/erb/r4/v5.0.gemfile:2394062339": [ [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] ], "gemfiles/modular/erb/vHEAD.gemfile:981929959": [ @@ -63,6 +70,13 @@ [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] ], + "gemfiles/modular/webrick/r4/v1.9.gemfile:3092661193": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/webrick/vHEAD.gemfile:3867684682": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], "gemfiles/modular/x_std_libs.gemfile:2324400122": [ [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] ], @@ -72,10 +86,10 @@ "gemfiles/modular/x_std_libs/r3/libs.gemfile:4030570297": [ [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] ], - "gemfiles/modular/x_std_libs/r4/libs.gemfile:909736663": [ + "gemfiles/modular/x_std_libs/r4/libs.gemfile:732451732": [ [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] ], - "gemfiles/modular/x_std_libs/vHEAD.gemfile:907917303": [ + "gemfiles/modular/x_std_libs/vHEAD.gemfile:2390363993": [ [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] ], diff --git a/gems/ast-crispr-ruby-prism/.structuredmerge/kettle-jem.yml b/gems/ast-crispr-ruby-prism/.structuredmerge/kettle-jem.yml index 25286add0..670ff2d95 100644 --- a/gems/ast-crispr-ruby-prism/.structuredmerge/kettle-jem.yml +++ b/gems/ast-crispr-ruby-prism/.structuredmerge/kettle-jem.yml @@ -246,6 +246,59 @@ templates: - Gemfile - certs/pboling.pem - tmp/.gitignore + - gemfiles/modular/benchmark/r4/v0.5.gemfile + - gemfiles/modular/benchmark/vHEAD.gemfile + - gemfiles/modular/cgi/r4/v0.5.gemfile + - gemfiles/modular/cgi/vHEAD.gemfile + - gemfiles/modular/coverage.gemfile + - gemfiles/modular/coverage_local.gemfile + - gemfiles/modular/debug.gemfile + - gemfiles/modular/documentation.gemfile + - gemfiles/modular/documentation_local.gemfile + - gemfiles/modular/erb/r2.3/default.gemfile + - gemfiles/modular/erb/r2.6/v2.2.gemfile + - gemfiles/modular/erb/r2/v3.0.gemfile + - gemfiles/modular/erb/r3.1/v4.0.gemfile + - gemfiles/modular/erb/r3/v5.0.gemfile + - gemfiles/modular/erb/r4/v5.0.gemfile + - gemfiles/modular/erb/vHEAD.gemfile + - gemfiles/modular/json/truffleruby_22_3.gemfile + - gemfiles/modular/json/truffleruby_23_0.gemfile + - gemfiles/modular/json/truffleruby_23_1.gemfile + - gemfiles/modular/mutex_m/r2.4/v0.1.gemfile + - gemfiles/modular/mutex_m/r2/v0.3.gemfile + - gemfiles/modular/mutex_m/r3/v0.3.gemfile + - gemfiles/modular/mutex_m/r4/v0.3.gemfile + - gemfiles/modular/mutex_m/vHEAD.gemfile + - gemfiles/modular/optional.gemfile + - gemfiles/modular/recording/r2.3/recording.gemfile + - gemfiles/modular/recording/r2.4/recording.gemfile + - gemfiles/modular/recording/r2.5/recording.gemfile + - gemfiles/modular/recording/r3/recording.gemfile + - gemfiles/modular/recording/r4/recording.gemfile + - gemfiles/modular/recording/vHEAD.gemfile + - gemfiles/modular/rspec.gemfile + - gemfiles/modular/runtime_heads.gemfile + - gemfiles/modular/stringio/r2.4/v0.0.2.gemfile + - gemfiles/modular/stringio/r2/v3.0.gemfile + - gemfiles/modular/stringio/r3/v3.0.gemfile + - gemfiles/modular/stringio/r4/v3.0.gemfile + - gemfiles/modular/stringio/vHEAD.gemfile + - gemfiles/modular/style.gemfile + - gemfiles/modular/style_local.gemfile + - gemfiles/modular/templating.gemfile + - gemfiles/modular/templating_local.gemfile + - gemfiles/modular/webrick/r4/v1.9.gemfile + - gemfiles/modular/webrick/vHEAD.gemfile + - gemfiles/modular/x_std_libs.gemfile + - gemfiles/modular/x_std_libs/r2.3/libs.gemfile + - gemfiles/modular/x_std_libs/r2.4/libs.gemfile + - gemfiles/modular/x_std_libs/r2.6/libs.gemfile + - gemfiles/modular/x_std_libs/r2/libs.gemfile + - gemfiles/modular/x_std_libs/r3.1/libs.gemfile + - gemfiles/modular/x_std_libs/r3/libs.gemfile + - gemfiles/modular/x_std_libs/r4/libs.gemfile + - gemfiles/modular/x_std_libs/vHEAD.gemfile - source: lib/gem/version.rb target: lib/ast/crispr/ruby/prism/version.rb - source: sig/gem.rbs diff --git a/gems/ast-crispr-ruby-prism/Gemfile b/gems/ast-crispr-ruby-prism/Gemfile index fd5b902a2..b65ee6baa 100644 --- a/gems/ast-crispr-ruby-prism/Gemfile +++ b/gems/ast-crispr-ruby-prism/Gemfile @@ -72,6 +72,46 @@ if direct_sibling_gems.any? && end end +if direct_sibling_gems.any? && + (direct_sibling_local || + ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) + direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') + direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) + begin + nomono_activation_requirements = nomono_requirements + nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) + if File.file?(nomono_lockfile) + nomono_locked_spec = Bundler::LockfileParser + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } + nomono_locked = nomono_locked_spec && + Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked + end + Kernel.send(:gem, 'nomono', *nomono_activation_requirements) + require 'nomono/bundler' + ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local + + eval_nomono_gems( + gems: direct_sibling_gems, + prefix: 'STRUCTUREDMERGE', + path_env: 'STRUCTUREDMERGE_DEV', + root: %w[src my structuredmerge] + ) + rescue LoadError + warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' + ensure + if direct_sibling_templating && !direct_sibling_local + if direct_sibling_dev_was_set + ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original + else + ENV.delete('STRUCTUREDMERGE_DEV') + end + end + end +end + # Use released TSLP with the Ruby ABI platform-gem fix. gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' diff --git a/gems/ast-crispr-ruby-prism/Gemfile.lock b/gems/ast-crispr-ruby-prism/Gemfile.lock index 05552677b..f61c2cbde 100644 --- a/gems/ast-crispr-ruby-prism/Gemfile.lock +++ b/gems/ast-crispr-ruby-prism/Gemfile.lock @@ -6,6 +6,22 @@ PATH prism-merge (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) +PATH + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr + specs: + ast-crispr (7.1.0) + ast-merge (= 7.1.0) + service_actor (~> 3.9) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/prism-merge + specs: + prism-merge (7.1.0) + prism (~> 1.6) + ruby-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + GEM remote: https://gem.coop/ specs: @@ -16,11 +32,11 @@ GEM bundler (>= 1.17.3) rake (>= 10) thor (>= 0.14) + appraisal2-rubocop (1.0.0) + appraisal2 (>= 3.1.4) + rubocop (>= 1.0) + version_gem (~> 1.1, >= 1.1.14) ast (2.4.3) - ast-crispr (7.1.0) - ast-merge (= 7.1.0) - service_actor (~> 3.9) - version_gem (~> 1.1, >= 1.1.9) ast-merge (7.1.0) benchmark token-resolver (~> 2.0, >= 2.0.4) @@ -32,9 +48,10 @@ GEM bundler-audit (0.9.3) bundler (>= 1.2.0) thor (~> 1.0) + cgi (0.5.2) citrus (3.0.2) cmdparse (3.0.7) - concurrent-ruby (1.3.7) + concurrent-ruby (1.3.8) date (3.5.1) debug (1.11.1) irb (~> 1.10) @@ -42,7 +59,6 @@ GEM delegate (0.6.1) diff-lcs (1.6.2) diffy (3.4.4) - docile (1.4.1) dry-configurable (1.4.0) dry-core (~> 1.0) zeitwerk (~> 2.6) @@ -73,7 +89,7 @@ GEM dry-logic (~> 1.4) zeitwerk (~> 2.6) emoji_regex (15.0.0) - erb (6.0.5) + erb (6.0.6) gem_bench (2.0.5) bundler (>= 1.14) version_gem (~> 1.1, >= 1.1.4) @@ -92,22 +108,20 @@ GEM rdoc (>= 4.0.0) reline (>= 0.4.2) json (2.21.1) - kettle-dev (2.3.7) + kettle-dev (2.3.8) emoji_regex (>= 15.0) kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) - kettle-rb (0.1.4) - kettle-soup-cover (1.1.3) - simplecov (~> 0.22) - simplecov-cobertura (~> 3.0) - simplecov-console (~> 0.9, >= 0.9.3) - simplecov-html (~> 0.13, >= 0.13.1) - simplecov-lcov (~> 0.8) + kettle-rb (0.1.5) + kettle-soup-cover (3.0.4) + kettle-wash (~> 0.1, >= 0.1.0) + simplecov (>= 1.0) + simplecov-cobertura (>= 4.0) + simplecov-console (~> 0.9, >= 0.9.5) simplecov-rcov (~> 0.3, >= 0.3.7) - simplecov_json_formatter (~> 0.1, >= 0.1.4) - version_gem (~> 1.1, >= 1.1.9) - kettle-test (2.0.11) + simplecov_lcov_formatter (~> 0.9, >= 0.9.0) + kettle-test (2.0.12) appraisal2 (~> 3.0, >= 3.0.6) backports (~> 3.0) rspec (~> 3.0) @@ -118,6 +132,8 @@ GEM silent_stream (~> 1.0, >= 1.0.12) timecop-rspec (~> 1.0, >= 1.0.3) turbo_tests2 (~> 3.1, >= 3.1.12) + kettle-wash (0.1.1) + version_gem (~> 1.1, >= 1.1.14) kramdown (2.5.2) rexml (>= 3.4.4) kramdown-parser-gfm (1.1.0) @@ -128,7 +144,7 @@ GEM mutex_m (0.3.0) nokogiri (1.19.4-x86_64-linux-gnu) racc (~> 1.4) - nomono (1.0.8) + nomono (1.0.9) openssl (4.0.2) ostruct (0.6.3) parallel (1.28.0) @@ -142,10 +158,6 @@ GEM prettyprint prettyprint (0.2.0) prism (1.9.0) - prism-merge (7.1.0) - prism (~> 1.6) - ruby-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) psych (5.4.0) date stringio @@ -208,6 +220,14 @@ GEM rubocop-ast (1.50.0) parser (>= 3.3.7.2) prism (~> 1.7) + rubocop-capybara (2.23.0) + lint_roller (~> 1.1) + rubocop (~> 1.81) + rubocop-env (0.1.0) + rubocop + rubocop-factory_bot (2.28.0) + lint_roller (~> 1.1) + rubocop (~> 1.72, >= 1.72.1) rubocop-gradual (0.4.0) benchmark diff-lcs (>= 1.2.0, < 2.0) @@ -215,13 +235,26 @@ GEM parallel (~> 1.10) rainbow (>= 2.2.2, < 4.0) rubocop (~> 1.0) - rubocop-lts (24.1.0) - rubocop-ruby3_2 (>= 3.0.0, < 4) - standard-rubocop-lts (>= 2.0.2, < 3) - version_gem (>= 1.1.2, < 3) + rubocop-lts (24.2.2) + rubocop-ruby3_2 (~> 3.0, >= 3.0.1) + standard-rubocop-lts (~> 2.0, >= 2.0.3) + version_gem (~> 1.1, >= 1.1.13) + rubocop-lts-rspec (1.0.5) + rubocop (~> 1.84, >= 1.84.2) + rubocop-env (~> 0.1, >= 0.1.0) + rubocop-factory_bot (~> 2.28, >= 2.28.0) + rubocop-rspec (~> 3.9, >= 3.9.0) + rubocop-rspec-extra (~> 0.3, >= 0.3.0) + standard (~> 1.54, >= 1.54.0) + standard-rspec (~> 0.5, >= 0.5.0) + version_gem (~> 1.1, >= 1.1.13) rubocop-md (2.0.4) lint_roller (~> 1.1) rubocop (>= 1.72.1) + rubocop-minitest (0.40.0) + lint_roller (~> 1.1) + rubocop (>= 1.75.0, < 2.0) + rubocop-ast (>= 1.38.0, < 2.0) rubocop-on-rbs (2.0.0) lint_roller (~> 1.1) rbs (~> 4.0) @@ -241,6 +274,13 @@ GEM lint_roller (~> 1.1) regexp_parser (>= 2.0) rubocop (~> 1.86, >= 1.86.2) + rubocop-rspec-extra (0.3.0) + lint_roller (~> 1.1) + rubocop (>= 1.72.1, < 2.0) + rubocop-rspec_rails (2.32.0) + lint_roller (~> 1.1) + rubocop (~> 1.72, >= 1.72.1) + rubocop-rspec (~> 3.5) rubocop-ruby3_2 (3.0.7) rubocop-gradual (~> 0.3, >= 0.3.6) rubocop-md (~> 2.0, >= 2.0.4) @@ -264,23 +304,19 @@ GEM silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) - simplecov (0.22.0) - docile (~> 1.1) - simplecov-html (~> 0.11) - simplecov_json_formatter (~> 0.1) - simplecov-cobertura (3.2.0) + simplecov (1.0.2) + simplecov-cobertura (4.0.0) rexml - simplecov (~> 0.19) + simplecov (~> 1.0) simplecov-console (0.9.5) ansi simplecov terminal-table - simplecov-html (0.13.2) - simplecov-lcov (0.9.0) simplecov-rcov (0.3.7) simplecov (>= 0.4.1) - simplecov_json_formatter (0.1.4) - sorbet-runtime (0.6.13342) + simplecov_lcov_formatter (0.9.0) + simplecov (>= 0.18) + sorbet-runtime (0.6.13347) standard (1.56.0) language_server-protocol (~> 3.17.0.2) lint_roller (~> 1.0) @@ -293,6 +329,12 @@ GEM standard-performance (1.9.0) lint_roller (~> 1.1) rubocop-performance (~> 1.26.0) + standard-rspec (0.5.0) + lint_roller (>= 1.0) + rubocop-capybara (~> 2.23) + rubocop-factory_bot (~> 2.27) + rubocop-rspec (~> 3.9) + rubocop-rspec_rails (~> 2.31) standard-rubocop-lts (2.0.10) standard (~> 1.54, >= 1.54.0) standard-custom (~> 1.0, >= 1.0.2) @@ -310,7 +352,7 @@ GEM delegate (~> 0.1) rspec (~> 3.0) timecop (>= 0.7, < 1) - token-resolver (2.0.4) + token-resolver (2.0.5) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.14) tree_haver (7.1.0) @@ -329,6 +371,7 @@ GEM unicode-emoji (~> 4.1) unicode-emoji (4.2.0) version_gem (1.1.14) + webrick (1.9.2) yaml-converter (0.2.3) hexapdf (>= 1.8, < 2) kramdown (>= 2.4, < 3) @@ -360,48 +403,56 @@ PLATFORMS DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) + appraisal2-rubocop (~> 1.0, >= 1.0.0) + ast-crispr! ast-crispr-ruby-prism! benchmark (~> 0.5, >= 0.5.0) bundler-audit (~> 0.9.3) + cgi (~> 0.5) debug (>= 1.1) - erb (~> 6.0, >= 6.0.4) + erb (~> 6.0, >= 6.0.6) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.0) irb (~> 1.17) kettle-dev (~> 2.0, >= 2.2.25) - kettle-soup-cover (~> 1.0, >= 1.1.3) + kettle-soup-cover (~> 3.0, >= 3.0.3) kettle-test (~> 2.0, >= 2.0.9) - kramdown (~> 2.5, >= 2.5.1) + kramdown (~> 2.5, >= 2.5.2) kramdown-parser-gfm (~> 1.1) mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) + prism-merge! rake (~> 13.0) rbs (>= 3.0) rdoc (~> 6.11) - reek (~> 6.5) + reek (~> 6.5, >= 6.5.0) require_bench (~> 1.0, >= 1.0.4) - rubocop-lts (~> 24.1.0) - rubocop-on-rbs (~> 2.0) + rubocop-gradual (~> 0.4, >= 0.4.0) + rubocop-lts (~> 24.2, >= 24.2.1) + rubocop-lts-rspec (~> 1.0, >= 1.0.5) + rubocop-minitest (~> 0.40, >= 0.40.0) + rubocop-on-rbs (~> 2.0, >= 2.0.0) rubocop-packaging (~> 0.6, >= 0.6.0) - rubocop-rspec (~> 3.6) - rubocop-ruby3_2 (~> 3.0.0) + rubocop-ruby3_2 (~> 3.0, >= 3.0.6) ruby-progressbar (~> 1.13) - standard (>= 1.50) + standard (~> 1.56, >= 1.56.0) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) tree_sitter_language_pack (~> 1.13, >= 1.13.3) - yaml-converter (~> 0.1) - yard (~> 0.9, >= 0.9.44) - yard-fence (~> 0.9, >= 0.9.1) + webrick (~> 1.9) + yaml-converter (~> 0.2, >= 0.2.3) + yard (~> 0.9, >= 0.9.45) + yard-fence (~> 0.9, >= 0.9.6) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) - yard-timekeeper (~> 0.1) - yard-yaml (~> 0.1, >= 0.1.2) + yard-timekeeper (~> 0.2, >= 0.2.4) + yard-yaml (~> 0.2, >= 0.2.3) CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af ansi (1.6.0) sha256=ac9ea0c0ea8d32fb4e271348e609963ac78882f34b73836c2a02b3622e666658 appraisal2 (3.2.0) sha256=ccd0b767ac4060cd7af6d16747459b6990f49c39c7b4fb1f7d1146b1e97c492f + appraisal2-rubocop (1.0.0) sha256=b71410fbb014befda5340605a605b7f6f3f012739baf0acc5b4351b592c3258d ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 ast-crispr (7.1.0) ast-crispr-ruby-prism (7.1.0) @@ -410,15 +461,15 @@ CHECKSUMS benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 + cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 - concurrent-ruby (1.3.7) sha256=4412caec3a5ea2e5fdc52076724c071a81f2c0593d83b2ac8cbb8ca63b3151b0 + concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 - docile (1.4.1) sha256=96159be799bfa73cdb721b840e9802126e4e03dfc26863db73647204c727f21e dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -427,7 +478,7 @@ CHECKSUMS dry-schema (1.16.0) sha256=cd3aaeabc0f1af66ec82a29096d4c4fb92a0a58b9dae29a22b1bbceb78985727 dry-types (1.9.1) sha256=baebeecdb9f8395d6c9d227b62011279440943e3ef2468fe8ccc1ba11467f178 emoji_regex (15.0.0) sha256=a508b2c0bee561169564e0aec96085020c900520d335e5533fd8e78e59493829 - erb (6.0.5) sha256=858e63488cb796c9daba8b6e9ff4b3879c395022049be9a66a8e00980e612eac + erb (6.0.6) sha256=a9b24986700f5bf127c4f297c5403c3ca41b83b0a316c0cd09a096b56e644ae5 gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f @@ -435,10 +486,11 @@ CHECKSUMS io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 - kettle-dev (2.3.7) sha256=eb370113cd030d03cbe2d33b31c99858951017e5ad21a17e9ed89dc3770028ee - kettle-rb (0.1.4) sha256=9cef7ce4f7021666b7222292f29051e51eaf042e8a5db11f3f4dd72f74243fc1 - kettle-soup-cover (1.1.3) sha256=a373827da22a7131d093afd32945e5b7d7a10a01ebfdded8fd2cb8230d69c8ad - kettle-test (2.0.11) sha256=c710c90f7ab79d51f9452f0c09f5f90657e7a893f63583855c164d0b1b107ab2 + kettle-dev (2.3.8) sha256=9d716ff21c660a730cb4e8d41e2e2f0630a28167a354b6e2924e242102aef72c + kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f + kettle-soup-cover (3.0.4) + kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 + kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 @@ -446,7 +498,7 @@ CHECKSUMS logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-x86_64-linux-gnu) sha256=379fae440b28915e3f19d752ce2dcf8465ed2b2fbefd2a7ca0dd497bc981a06a - nomono (1.0.8) sha256=bf4b9b426cbf216ab17b70db474f691b8ae1f1e29de8db4b0ecd405e6e7e1c80 + nomono (1.0.9) openssl (4.0.2) sha256=1037ad2868ae58df9ad917891c0c0f9815a1172f6846d4bcdd508e4c2ee747c2 ostruct (0.6.3) sha256=95a2ed4a4bd1d190784e666b47b2d3f078e4a9efda2fccf18f84ddc6538ed912 parallel (1.28.0) sha256=33e6de1484baf2524792d178b0913fc8eb94c628d6cfe45599ad4458c638c970 @@ -480,14 +532,21 @@ CHECKSUMS rspec_junit_formatter (0.6.0) sha256=40dde674e6ae4e6cc0ff560da25497677e34fefd2338cc467a8972f602b62b15 rubocop (1.88.2) sha256=8def251c90cd955feb4daa3edc0ab56893250c4ce90ef81e6c80c03f9a939bbf rubocop-ast (1.50.0) sha256=b9ca88300da0803ee222ad20cdb30494c0a784eed06fdc35d254b06d662788db + rubocop-capybara (2.23.0) sha256=f9ea1ba3a7561ee8e88cf76fc378ce517ce5327155f305ee7b5c2500e5aee357 + rubocop-env (0.1.0) sha256=5ab9a259e71822bf514c8e900a9b68cc2f74ccc87d5493efcd03213f3068e718 + rubocop-factory_bot (2.28.0) sha256=4b17fc02124444173317e131759d195b0d762844a71a29fe8139c1105d92f0cb rubocop-gradual (0.4.0) sha256=9c7e584e6fef6c2539266a193a4572c970c22f99046fd6b0305bdde6228f96ad - rubocop-lts (24.1.0) sha256=9dcad4db2da2fe2f1f77f98c917d70e7c43eded703da14cd201d4be52a9272aa + rubocop-lts (24.2.2) sha256=be6c745e1bb61daebd6af3cc3227c60f95be9f642a080773cad7df14c5f9f174 + rubocop-lts-rspec (1.0.5) sha256=439552fd27440802cc499889e013bffa28aadc41adae5d4dfff3d984a2a809b4 rubocop-md (2.0.4) sha256=0d076b6b5e99dea2ddc928c4bd702497decb9a8400da7808091e02ebcafcfb93 + rubocop-minitest (0.40.0) sha256=353c698199115f12151144cf0b5a96f69bb9d77b660cf6536df2c4250c672a9d rubocop-on-rbs (2.0.0) sha256=ce74d1b3d5daead19f4b611623656c185821dfc9aed9c7079bb1e5d7d7c464be rubocop-packaging (0.6.0) sha256=fb92bd0fb48e6f8cdb1648d2249b0cd51c2497dcc87340132d22f01edbf558a7 rubocop-performance (1.26.1) sha256=cd19b936ff196df85829d264b522fd4f98b6c89ad271fa52744a8c11b8f71834 rubocop-rake (0.7.1) sha256=3797f2b6810c3e9df7376c26d5f44f3475eda59eb1adc38e6f62ecf027cbae4d rubocop-rspec (3.10.2) sha256=0b3e2ecc592cd10ecbf0095bb58d1e357905276e069643523cc19eb7495f65e2 + rubocop-rspec-extra (0.3.0) sha256=ee4b6484d0332a0d23c4a465eeb607e41888eb3d4ed479f850b9f5212514f787 + rubocop-rspec_rails (2.32.0) sha256=4a0d641c72f6ebb957534f539d9d0a62c47abd8ce0d0aeee1ef4701e892a9100 rubocop-ruby3_2 (3.0.7) sha256=f53dd6d286fb05186214fc6ec116783e7f837030918e8931c05de773e98f8466 rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 ruby-merge (7.1.0) @@ -496,17 +555,16 @@ CHECKSUMS ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 service_actor (3.9.4) sha256=e63b523630b9a7e62959b2a90113b08d2565b5de9c148557b281ef847c9539ce silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 - simplecov (0.22.0) sha256=fe2622c7834ff23b98066bb0a854284b2729a569ac659f82621fc22ef36213a5 - simplecov-cobertura (3.2.0) sha256=70d702658677fcb20e5aceb6915ccf8bc62ff2ccd38b62b3ad5c9db5c0888740 + simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 + simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 - simplecov-html (0.13.2) sha256=bd0b8e54e7c2d7685927e8d6286466359b6f16b18cb0df47b508e8d73c777246 - simplecov-lcov (0.9.0) sha256=7a77a31e200a595ed4b0249493056efd0c920601f53d2ef135ca34ee796346cd simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc - simplecov_json_formatter (0.1.4) sha256=529418fbe8de1713ac2b2d612aa3daa56d316975d307244399fa4838c601b428 - sorbet-runtime (0.6.13342) sha256=dbeb9892597f593ed2b29e38018912787f6c4e0c4b736d8af0d6bd3c63bde3c3 + simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed + sorbet-runtime (0.6.13347) sha256=54e7221d9f4b63f58aec79f3043752a9ba7810347c6ae0d903531591cc2d5f01 standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b standard-performance (1.9.0) sha256=49483d31be448292951d80e5e67cdcb576c2502103c7b40aec6f1b6e9c88e3f2 + standard-rspec (0.5.0) sha256=64d396524a65af47f5331b423d8cdd313e0267401647bb7892489ca89dad2973 standard-rubocop-lts (2.0.10) sha256=89708a505b7d8b24d2ac399a7520fcb9e764abc2ecb4289b631b5fe0e3b76617 stone_checksums (1.0.6) sha256=c775f830513d6c6ab26e31d1a5fbecd4c4e39002663d4d9f8fa96e97990b5298 stringio (3.2.0) sha256=c37cb2e58b4ffbd33fe5cd948c05934af997b36e0b6ca6fdf43afa234cf222e1 @@ -515,23 +573,24 @@ CHECKSUMS thor (1.5.0) sha256=e3a9e55fe857e44859ce104a84675ab6e8cd59c650a49106a05f55f136425e73 timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 - token-resolver (2.0.4) sha256=33b926958f504525bba3ed511ab66fbcbf8ef30390815e931436b30f27ffcad0 + token-resolver (2.0.5) tree_haver (7.1.0) - tree_sitter_language_pack (1.13.3-x86_64-linux) - tsort (0.2.0) - turbo_tests2 (3.2.0) - unicode-display_width (3.2.0) - unicode-emoji (4.2.0) - version_gem (1.1.14) - yaml-converter (0.2.3) - yard (0.9.45) - yard-fence (0.9.6) - yard-junk (0.1.0) - yard-relative_markdown_links (0.6.0) - yard-timekeeper (0.2.4) - yard-yaml (0.2.3) - zeitwerk (2.8.2) - zlib (3.2.3) + tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 + tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f + turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 + unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 + unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f + version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 + webrick (1.9.2) sha256=beb4a15fc474defed24a3bda4ffd88a490d517c9e4e6118c3edce59e45864131 + yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 + yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 + yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 + yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd + yard-relative_markdown_links (0.6.0) sha256=3e5ffa85cbad9bac70bee5421774b190fb25d3bdf489323a5b3534f647d1a70e + yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a + yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 + zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 + zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH 4.0.16 diff --git a/gems/ast-crispr-ruby-prism/README.md b/gems/ast-crispr-ruby-prism/README.md index 044ce4a5c..bd9a98837 100644 --- a/gems/ast-crispr-ruby-prism/README.md +++ b/gems/ast-crispr-ruby-prism/README.md @@ -35,7 +35,7 @@ I've summarized my thoughts in [this blog post](https://dev.to/galtzo/hostile-ta | Tokens to Remember | [![Gem name][⛳️name-img]][⛳️gem-name] [![Gem namespace][⛳️namespace-img]][⛳️gem-namespace] | |-------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | Works with MRI Ruby 4 | [![Ruby current Compat][💎ruby-c-i]][🚎11-c-wf]| -| Support & Community | [![Join Me on Daily.dev's RubyFriends][✉️ruby-friends-img]][✉️ruby-friends] [![Live Chat on Discord][✉️discord-invite-img-ftb]][✉️discord-invite] [![Get help from me on Upwork][👨🏼‍🏫expsup-upwork-img]][👨🏼‍🏫expsup-upwork] [![Get help from me on Codementor][👨🏼‍🏫expsup-codementor-img]][👨🏼‍🏫expsup-codementor] | +| Support & Community | [![Join Me on Daily.dev's RubyFriends][✉️ruby-friends-img]][✉️ruby-friends] [![Get help from RubyForum][✉️ruby-forum-img]][✉️ruby-forum] [![Live Chat on Discord][✉️discord-invite-img-ftb]][✉️discord-invite] [![Get help from me on Upwork][👨🏼‍🏫expsup-upwork-img]][👨🏼‍🏫expsup-upwork] [![Get help from me on Codementor][👨🏼‍🏫expsup-codementor-img]][👨🏼‍🏫expsup-codementor] | | Source | [![Source on GitLab.com][📜src-gl-img]][📜src-gl] [![Source on CodeBerg.org][📜src-cb-img]][📜src-cb] [![Source on Github.com][📜src-gh-img]][📜src-gh] [![The best SHA: dQw4w9WgXcQ!][🧮kloc-img]][🧮kloc] | | Documentation | [![Current release on RubyDoc.info][📜docs-cr-rd-img]][🚎yard-current] [![YARD on Galtzo.com][📜docs-head-rd-img]][🚎yard-head] [![Maintainer Blog][🚂maint-blog-img]][🚂maint-blog] [![GitLab Wiki][📜gl-wiki-img]][📜gl-wiki] [![GitHub Wiki][📜gh-wiki-img]][📜gh-wiki] | | Compliance | [![License: AGPL-3.0-only OR PolyForm-Small-Business-1.0.0][📄license-img]][📄license] [![Apache license compatibility: Category X][📄license-compat-img]][📄license-compat] [![📄ilo-declaration-img]][📄ilo-declaration] [![Security Policy][🔐security-img]][🔐security] [![Contributor Covenant 2.1][🪇conduct-img]][🪇conduct] [![SemVer 2.0.0][📌semver-img]][📌semver] | @@ -191,6 +191,8 @@ If none of the available licenses suit your use case, please [contact us](mailto [✉️discord-invite-img-ftb]: https://img.shields.io/discord/1373797679469170758?style=for-the-badge&logo=discord [✉️ruby-friends-img]: https://img.shields.io/badge/daily.dev-%F0%9F%92%8E_Ruby_Friends-0A0A0A?style=for-the-badge&logo=dailydotdev&logoColor=white [✉️ruby-friends]: https://app.daily.dev/squads/rubyfriends +[✉️ruby-forum-img]: https://img.shields.io/badge/RubyForum-Help-CC342D?style=for-the-badge&logo=ruby&logoColor=white +[✉️ruby-forum]: https://www.rubyforum.org/c/help/8 [✇bundle-group-pattern]: https://gist.github.com/pboling/4564780 [⛳️gem-namespace]: https://github.com/structuredmerge/structuredmerge-ruby/tree/main/gems/ast-crispr-ruby-prism [⛳️namespace-img]: https://img.shields.io/badge/namespace-Ast::Crispr::Ruby::Prism-3C2D2D.svg?style=square&logo=ruby&logoColor=white diff --git a/gems/ast-crispr-ruby-prism/gemfiles/modular/cgi/r4/v0.5.gemfile b/gems/ast-crispr-ruby-prism/gemfiles/modular/cgi/r4/v0.5.gemfile new file mode 100644 index 000000000..17ad97260 --- /dev/null +++ b/gems/ast-crispr-ruby-prism/gemfiles/modular/cgi/r4/v0.5.gemfile @@ -0,0 +1 @@ +gem 'cgi', '~> 0.5' diff --git a/gems/ast-crispr-ruby-prism/gemfiles/modular/cgi/vHEAD.gemfile b/gems/ast-crispr-ruby-prism/gemfiles/modular/cgi/vHEAD.gemfile new file mode 100644 index 000000000..650fbf033 --- /dev/null +++ b/gems/ast-crispr-ruby-prism/gemfiles/modular/cgi/vHEAD.gemfile @@ -0,0 +1 @@ +gem 'cgi', '>= 0.5' diff --git a/gems/ast-crispr-ruby-prism/gemfiles/modular/coverage.gemfile b/gems/ast-crispr-ruby-prism/gemfiles/modular/coverage.gemfile index f96d50954..b93014b6b 100644 --- a/gems/ast-crispr-ruby-prism/gemfiles/modular/coverage.gemfile +++ b/gems/ast-crispr-ruby-prism/gemfiles/modular/coverage.gemfile @@ -7,7 +7,7 @@ if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? # Coverage (remote/released) platform :mri do - gem 'kettle-soup-cover', '~> 1.0', '>= 1.1.3', require: false + gem 'kettle-soup-cover', '~> 3.0', '>= 3.0.3', require: false end else eval_gemfile 'coverage_local.gemfile' diff --git a/gems/ast-crispr-ruby-prism/gemfiles/modular/coverage_local.gemfile b/gems/ast-crispr-ruby-prism/gemfiles/modular/coverage_local.gemfile index 2ff3a07e8..016b1a8d7 100644 --- a/gems/ast-crispr-ruby-prism/gemfiles/modular/coverage_local.gemfile +++ b/gems/ast-crispr-ruby-prism/gemfiles/modular/coverage_local.gemfile @@ -3,13 +3,33 @@ # Local path overrides for development. # Loaded by the associated non-local gemfile when KETTLE_DEV_DEV != "false". -require 'nomono/bundler' unless defined?(Nomono) +# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. +# Bundler records that dependency during Gemfile evaluation, but it does not +# activate that exact version before the immediate `require "nomono/bundler"`. +# If multiple compatible nomono versions are installed, RubyGems may activate +# the newest installed version while Gemfile.lock pins an older compatible one; +# Bundler then aborts with "already activated nomono X, but your Gemfile +# requires nomono Y". Prefer the locked compatible version when present, then +# activate it explicitly before requiring the Bundler DSL extension used below. +nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] +nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) +if File.file?(nomono_lockfile) + nomono_locked_spec = Bundler::LockfileParser + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } + nomono_locked = nomono_locked_spec && + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked +end +Kernel.send(:gem, 'nomono', *nomono_activation_requirements) +require 'nomono/bundler' local_gems = %w[kettle-dev kettle-test kettle-soup-cover kettle-drift] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) local_gems_to_eval = local_gems - %w[ast-crispr-ruby-prism] - declared_gems -# export KETTLE_DEV_DEV=/path/to/kettle-rb +# export KETTLE_DEV_DEV=/path/to/my platform :mri do eval_nomono_gems( gems: local_gems_to_eval, diff --git a/gems/ast-crispr-ruby-prism/gemfiles/modular/documentation.gemfile b/gems/ast-crispr-ruby-prism/gemfiles/modular/documentation.gemfile index dff5cc108..9d4535f12 100644 --- a/gems/ast-crispr-ruby-prism/gemfiles/modular/documentation.gemfile +++ b/gems/ast-crispr-ruby-prism/gemfiles/modular/documentation.gemfile @@ -7,17 +7,17 @@ # # Documentation -gem 'kramdown', '~> 2.5', '>= 2.5.1', require: false # Ruby >= 2.5 +gem 'kramdown', '~> 2.5', '>= 2.5.2', require: false # Ruby >= 2.5 gem 'kramdown-parser-gfm', '~> 1.1', require: false # Ruby >= 2.3 -gem 'yaml-converter', '~> 0.1', require: false # Ruby >= 3.2 -gem 'yard', '~> 0.9', '>= 0.9.44', require: false +gem 'yaml-converter', '~> 0.2', '>= 0.2.3', require: false # Ruby >= 3.2 +gem 'yard', '~> 0.9', '>= 0.9.45', require: false gem 'yard-junk', '~> 0.1', '>= 0.1.0', require: false # Ruby >= 3.1 gem 'yard-relative_markdown_links', '~> 0.6', require: false if ENV.fetch('GALTZO_FLOSS_DEV', 'false').casecmp('false').zero? - gem 'yard-fence', '~> 0.9', '>= 0.9.1', require: false # Ruby >= 3.2 - gem 'yard-timekeeper', '~> 0.1', require: false - gem 'yard-yaml', '~> 0.1', '>= 0.1.2', require: false + gem 'yard-fence', '~> 0.9', '>= 0.9.6', require: false # Ruby >= 3.2 + gem 'yard-timekeeper', '~> 0.2', '>= 0.2.4', require: false + gem 'yard-yaml', '~> 0.2', '>= 0.2.3', require: false else eval_gemfile 'documentation_local.gemfile' end diff --git a/gems/ast-crispr-ruby-prism/gemfiles/modular/documentation_local.gemfile b/gems/ast-crispr-ruby-prism/gemfiles/modular/documentation_local.gemfile index 4d4c2bd95..196d1063d 100644 --- a/gems/ast-crispr-ruby-prism/gemfiles/modular/documentation_local.gemfile +++ b/gems/ast-crispr-ruby-prism/gemfiles/modular/documentation_local.gemfile @@ -3,13 +3,35 @@ # Local path overrides for development. # Loaded by the associated non-local gemfile when GALTZO_FLOSS_DEV != "false". -require 'nomono/bundler' unless defined?(Nomono) +# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. +# Bundler records that dependency during Gemfile evaluation, but it does not +# activate that exact version before the immediate `require "nomono/bundler"`. +# If multiple compatible nomono versions are installed, RubyGems may activate +# the newest installed version while Gemfile.lock pins an older compatible one; +# Bundler then aborts with "already activated nomono X, but your Gemfile +# requires nomono Y". Prefer the locked compatible version when present, then +# activate it explicitly before requiring the Bundler DSL extension used below. +nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] +nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) +if File.file?(nomono_lockfile) + nomono_locked_spec = Bundler::LockfileParser + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } + nomono_locked = nomono_locked_spec && + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked +end +Kernel.send(:gem, 'nomono', *nomono_activation_requirements) +require 'nomono/bundler' local_gems = %w[yard-fence yard-timekeeper yard-yaml] +declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) +local_gems_to_eval = local_gems - %w[ast-crispr-ruby-prism] - declared_gems # export GALTZO_FLOSS_DEV=/path/to/galtzo-floss eval_nomono_gems( - gems: local_gems, + gems: local_gems_to_eval, prefix: 'GALTZO_FLOSS', path_env: 'GALTZO_FLOSS_DEV', vendored_gems_env: 'GALTZO_FLOSS_VENDORED_GEMS', diff --git a/gems/ast-crispr-ruby-prism/gemfiles/modular/erb/r3/v5.0.gemfile b/gems/ast-crispr-ruby-prism/gemfiles/modular/erb/r3/v5.0.gemfile index 0e3bf1b97..ec7ff451f 100644 --- a/gems/ast-crispr-ruby-prism/gemfiles/modular/erb/r3/v5.0.gemfile +++ b/gems/ast-crispr-ruby-prism/gemfiles/modular/erb/r3/v5.0.gemfile @@ -1 +1 @@ -gem 'erb', '~> 6.0', '>= 6.0.4' # ruby >= 3.2.0 +gem 'erb', '~> 6.0', '>= 6.0.6' # ruby >= 3.2.0 diff --git a/gems/ast-crispr-ruby-prism/gemfiles/modular/erb/r4/v5.0.gemfile b/gems/ast-crispr-ruby-prism/gemfiles/modular/erb/r4/v5.0.gemfile index 0e3bf1b97..ec7ff451f 100644 --- a/gems/ast-crispr-ruby-prism/gemfiles/modular/erb/r4/v5.0.gemfile +++ b/gems/ast-crispr-ruby-prism/gemfiles/modular/erb/r4/v5.0.gemfile @@ -1 +1 @@ -gem 'erb', '~> 6.0', '>= 6.0.4' # ruby >= 3.2.0 +gem 'erb', '~> 6.0', '>= 6.0.6' # ruby >= 3.2.0 diff --git a/gems/ast-crispr-ruby-prism/gemfiles/modular/json/truffleruby_22_3.gemfile b/gems/ast-crispr-ruby-prism/gemfiles/modular/json/truffleruby_22_3.gemfile new file mode 100644 index 000000000..9b2f8d96a --- /dev/null +++ b/gems/ast-crispr-ruby-prism/gemfiles/modular/json/truffleruby_22_3.gemfile @@ -0,0 +1,6 @@ +# frozen_string_literal: true + +if RUBY_ENGINE == 'truffleruby' && RUBY_ENGINE_VERSION.start_with?('22.3') + # TruffleRuby 22.3 ships the json default gem from its emulated MRI Ruby. + gem 'json', '= 2.5.1' +end diff --git a/gems/ast-crispr-ruby-prism/gemfiles/modular/json/truffleruby_23_0.gemfile b/gems/ast-crispr-ruby-prism/gemfiles/modular/json/truffleruby_23_0.gemfile new file mode 100644 index 000000000..d787a5ef4 --- /dev/null +++ b/gems/ast-crispr-ruby-prism/gemfiles/modular/json/truffleruby_23_0.gemfile @@ -0,0 +1,6 @@ +# frozen_string_literal: true + +if RUBY_ENGINE == 'truffleruby' && RUBY_ENGINE_VERSION.start_with?('23.0') + # TruffleRuby 23.0 ships the json default gem from its emulated MRI Ruby. + gem 'json', '= 2.6.1' +end diff --git a/gems/ast-crispr-ruby-prism/gemfiles/modular/json/truffleruby_23_1.gemfile b/gems/ast-crispr-ruby-prism/gemfiles/modular/json/truffleruby_23_1.gemfile new file mode 100644 index 000000000..d78486b0e --- /dev/null +++ b/gems/ast-crispr-ruby-prism/gemfiles/modular/json/truffleruby_23_1.gemfile @@ -0,0 +1,6 @@ +# frozen_string_literal: true + +if RUBY_ENGINE == 'truffleruby' && RUBY_ENGINE_VERSION.start_with?('23.1') + # TruffleRuby 23.1 ships the json default gem from its emulated MRI Ruby. + gem 'json', '= 2.6.3' +end diff --git a/gems/ast-crispr-ruby-prism/gemfiles/modular/optional.gemfile b/gems/ast-crispr-ruby-prism/gemfiles/modular/optional.gemfile index 51682c331..9ea429538 100644 --- a/gems/ast-crispr-ruby-prism/gemfiles/modular/optional.gemfile +++ b/gems/ast-crispr-ruby-prism/gemfiles/modular/optional.gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -# To retain during ast-crispr-ruby-prism templating: +# To retain during kettle-jem templating: # kettle-jem:freeze # # ... your code # kettle-jem:unfreeze @@ -10,7 +10,6 @@ # Required for curated binstubs generated by kettle-jem install gem 'rbs', '>= 3.0', require: false # ruby >= 3.1 -gem 'stone_checksums', '~> 1.0', '>= 1.0.3', require: false # ruby >= 2.2 # Required for kettle-pre-release # URL parsing with Unicode support (falls back to URI if not available) diff --git a/gems/ast-crispr-ruby-prism/gemfiles/modular/runtime_heads.gemfile b/gems/ast-crispr-ruby-prism/gemfiles/modular/runtime_heads.gemfile index 1c63f1df0..ebf17c529 100644 --- a/gems/ast-crispr-ruby-prism/gemfiles/modular/runtime_heads.gemfile +++ b/gems/ast-crispr-ruby-prism/gemfiles/modular/runtime_heads.gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -# To retain during ast-crispr-ruby-prism templating: +# To retain during kettle-jem templating: # kettle-jem:freeze # # ... your code # kettle-jem:unfreeze @@ -8,7 +8,4 @@ # Test against HEAD of runtime dependencies so we can proactively file bugs -# Ruby >= 2.2 -gem 'version_gem', github: 'ruby-oauth/version_gem', branch: 'main' - eval_gemfile('x_std_libs/vHEAD.gemfile') diff --git a/gems/ast-crispr-ruby-prism/gemfiles/modular/style.gemfile b/gems/ast-crispr-ruby-prism/gemfiles/modular/style.gemfile index b5b38fa1f..4dbcc02c0 100644 --- a/gems/ast-crispr-ruby-prism/gemfiles/modular/style.gemfile +++ b/gems/ast-crispr-ruby-prism/gemfiles/modular/style.gemfile @@ -1,27 +1,30 @@ # frozen_string_literal: true -# To retain during ast-crispr-ruby-prism templating: +# To retain during kettle-jem templating: # kettle-jem:freeze # # ... your code # kettle-jem:unfreeze # -# We run rubocop on the latest version of Ruby, -# but in support of the oldest supported version of Ruby +# Style tasks run on the latest Ruby; RuboCop-LTS selects the compatibility +# rules for the configured Ruby floor independently from task dependency floors. -gem 'reek', '~> 6.5' +gem 'reek', '~> 6.5', '>= 6.5.0' platform :mri do - gem 'rubocop-on-rbs', '~> 2.0' # ruby >= 3.2.0 + gem 'appraisal2-rubocop', '~> 1.0', '>= 1.0.0', require: false + gem 'rubocop-gradual', '~> 0.4', '>= 0.4.0' + gem 'rubocop-minitest', '~> 0.40', '>= 0.40.0' + gem 'rubocop-on-rbs', '~> 2.0', '>= 2.0.0' # ruby >= 3.2.0 # gem "rubocop", "~> 1.73", ">= 1.73.2" # constrained by standard gem 'rubocop-packaging', '~> 0.6', '>= 0.6.0' - gem 'standard', '>= 1.50' + gem 'standard', '~> 1.56', '>= 1.56.0' if ENV.fetch('RUBOCOP_LTS_LOCAL', 'false').casecmp('false').zero? - gem 'rubocop-lts', '~> 24.1.0' - # "rubocop-lts-rspec" can't add here until other gems are updated. - gem 'rubocop-rspec', '~> 3.6' - gem 'rubocop-ruby3_2', '~> 3.0.0' + declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) + gem 'rubocop-lts', '~> 24.2', '>= 24.2.1' unless declared_gems.include?('rubocop-lts') + gem 'rubocop-lts-rspec', '~> 1.0', '>= 1.0.5' unless declared_gems.include?('rubocop-lts-rspec') + gem 'rubocop-ruby3_2', '~> 3.0', '>= 3.0.6' unless declared_gems.include?('rubocop-ruby3_2') else eval_gemfile('style_local.gemfile') end diff --git a/gems/ast-crispr-ruby-prism/gemfiles/modular/style_local.gemfile b/gems/ast-crispr-ruby-prism/gemfiles/modular/style_local.gemfile index ce75bbe21..3552ea6b2 100644 --- a/gems/ast-crispr-ruby-prism/gemfiles/modular/style_local.gemfile +++ b/gems/ast-crispr-ruby-prism/gemfiles/modular/style_local.gemfile @@ -1,19 +1,41 @@ # frozen_string_literal: true -# We run rubocop on the latest version of Ruby, -# but in support of the oldest supported version of Ruby +# Style tasks run on the latest Ruby; RuboCop-LTS selects the compatibility +# rules for the configured Ruby floor independently from task dependency floors. # Local path overrides for development. # Loaded by the associated non-local gemfile when RUBOCOP_LTS_LOCAL != "false". -require 'nomono/bundler' unless defined?(Nomono) +# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. +# Bundler records that dependency during Gemfile evaluation, but it does not +# activate that exact version before the immediate `require "nomono/bundler"`. +# If multiple compatible nomono versions are installed, RubyGems may activate +# the newest installed version while Gemfile.lock pins an older compatible one; +# Bundler then aborts with "already activated nomono X, but your Gemfile +# requires nomono Y". Prefer the locked compatible version when present, then +# activate it explicitly before requiring the Bundler DSL extension used below. +nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] +nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) +if File.file?(nomono_lockfile) + nomono_locked_spec = Bundler::LockfileParser + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } + nomono_locked = nomono_locked_spec && + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked +end +Kernel.send(:gem, 'nomono', *nomono_activation_requirements) +require 'nomono/bundler' local_gems = %w[rubocop-lts rubocop-lts-rspec rubocop-ruby3_2 standard-rubocop-lts] +declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) +local_gems_to_eval = local_gems - %w[ast-crispr-ruby-prism] - declared_gems # export VENDORED_GEMS=rubocop-lts,rubocop-lts-rspec,rubocop-ruby3_2,standard-rubocop-lts platform :mri do eval_nomono_gems( - gems: local_gems, + gems: local_gems_to_eval, prefix: 'RUBOCOP_LTS', path_env: 'RUBOCOP_LTS_LOCAL', vendored_gems_env: 'VENDORED_GEMS', diff --git a/gems/ast-crispr-ruby-prism/gemfiles/modular/templating.gemfile b/gems/ast-crispr-ruby-prism/gemfiles/modular/templating.gemfile index 2ddc9433f..a672de184 100644 --- a/gems/ast-crispr-ruby-prism/gemfiles/modular/templating.gemfile +++ b/gems/ast-crispr-ruby-prism/gemfiles/modular/templating.gemfile @@ -12,13 +12,13 @@ end if kettle_remote # Template/plugin checks for released installs. - gem 'kettle-drift', '~> 1.0', '>= 1.0.5', require: false + gem 'kettle-drift', '~> 1.0', '>= 1.0.6', require: false end # Set STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local development with path-based dependencies. # When false (default / CI), released kettle-jem brings merge gems and parser dependencies. # Local path overrides bring the same dependencies from sibling gemspecs. # -# Set KETTLE_DEV_DEV=/path/to/kettle-rb for local development with Kettle plugin gems. +# Set KETTLE_DEV_DEV=/path/to/my for local development with Kettle plugin gems. # When false (default / CI), released Kettle plugin gems are used. eval_gemfile 'templating_local.gemfile' unless structuredmerge_remote && kettle_remote diff --git a/gems/ast-crispr-ruby-prism/gemfiles/modular/templating_local.gemfile b/gems/ast-crispr-ruby-prism/gemfiles/modular/templating_local.gemfile index cc240cfdf..977f43616 100644 --- a/gems/ast-crispr-ruby-prism/gemfiles/modular/templating_local.gemfile +++ b/gems/ast-crispr-ruby-prism/gemfiles/modular/templating_local.gemfile @@ -4,7 +4,27 @@ # Loaded by the associated non-local gemfile when STRUCTUREDMERGE_DEV or KETTLE_DEV_DEV # is not "false". -require 'nomono/bundler' unless defined?(Nomono) +# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. +# Bundler records that dependency during Gemfile evaluation, but it does not +# activate that exact version before the immediate `require "nomono/bundler"`. +# If multiple compatible nomono versions are installed, RubyGems may activate +# the newest installed version while Gemfile.lock pins an older compatible one; +# Bundler then aborts with "already activated nomono X, but your Gemfile +# requires nomono Y". Prefer the locked compatible version when present, then +# activate it explicitly before requiring the Bundler DSL extension used below. +nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] +nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) +if File.file?(nomono_lockfile) + nomono_locked_spec = Bundler::LockfileParser + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } + nomono_locked = nomono_locked_spec && + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked +end +Kernel.send(:gem, 'nomono', *nomono_activation_requirements) +require 'nomono/bundler' structuredmerge_local_gems = %w[ tree_haver diff --git a/gems/ast-crispr-ruby-prism/gemfiles/modular/webrick/r4/v1.9.gemfile b/gems/ast-crispr-ruby-prism/gemfiles/modular/webrick/r4/v1.9.gemfile new file mode 100644 index 000000000..b1329ba84 --- /dev/null +++ b/gems/ast-crispr-ruby-prism/gemfiles/modular/webrick/r4/v1.9.gemfile @@ -0,0 +1 @@ +gem 'webrick', '~> 1.9' diff --git a/gems/ast-crispr-ruby-prism/gemfiles/modular/webrick/vHEAD.gemfile b/gems/ast-crispr-ruby-prism/gemfiles/modular/webrick/vHEAD.gemfile new file mode 100644 index 000000000..c7e6f81a1 --- /dev/null +++ b/gems/ast-crispr-ruby-prism/gemfiles/modular/webrick/vHEAD.gemfile @@ -0,0 +1 @@ +gem 'webrick', '>= 1.9' diff --git a/gems/ast-crispr-ruby-prism/gemfiles/modular/x_std_libs/r4/libs.gemfile b/gems/ast-crispr-ruby-prism/gemfiles/modular/x_std_libs/r4/libs.gemfile index bd4e884df..e2f6501eb 100644 --- a/gems/ast-crispr-ruby-prism/gemfiles/modular/x_std_libs/r4/libs.gemfile +++ b/gems/ast-crispr-ruby-prism/gemfiles/modular/x_std_libs/r4/libs.gemfile @@ -2,3 +2,5 @@ eval_gemfile '../../erb/r4/v5.0.gemfile' eval_gemfile '../../mutex_m/r4/v0.3.gemfile' eval_gemfile '../../stringio/r4/v3.0.gemfile' eval_gemfile '../../benchmark/r4/v0.5.gemfile' +eval_gemfile '../../cgi/r4/v0.5.gemfile' +eval_gemfile '../../webrick/r4/v1.9.gemfile' diff --git a/gems/ast-crispr-ruby-prism/gemfiles/modular/x_std_libs/vHEAD.gemfile b/gems/ast-crispr-ruby-prism/gemfiles/modular/x_std_libs/vHEAD.gemfile index 91f383c11..ab75cccf1 100644 --- a/gems/ast-crispr-ruby-prism/gemfiles/modular/x_std_libs/vHEAD.gemfile +++ b/gems/ast-crispr-ruby-prism/gemfiles/modular/x_std_libs/vHEAD.gemfile @@ -2,3 +2,5 @@ eval_gemfile '../erb/vHEAD.gemfile' eval_gemfile '../mutex_m/vHEAD.gemfile' eval_gemfile '../stringio/vHEAD.gemfile' eval_gemfile '../benchmark/vHEAD.gemfile' +eval_gemfile '../cgi/vHEAD.gemfile' +eval_gemfile '../webrick/vHEAD.gemfile' diff --git a/gems/ast-merge/.kettle-drift.lock b/gems/ast-merge/.kettle-drift.lock index 584183503..ae8ac3f40 100644 --- a/gems/ast-merge/.kettle-drift.lock +++ b/gems/ast-merge/.kettle-drift.lock @@ -61,14 +61,5 @@ 42 ] } - ], - "vendored_gems_env: 'VENDORED_GEMS',\nvendor_gem_dir_env: 'VENDOR_GEM_DIR',": [ - { - "file": "gemfiles/modular/templating_local.gemfile", - "lines": [ - 55, - 66 - ] - } ] } diff --git a/gems/ast-merge/.rubocop_gradual.lock b/gems/ast-merge/.rubocop_gradual.lock deleted file mode 100644 index 2a2493fbc..000000000 --- a/gems/ast-merge/.rubocop_gradual.lock +++ /dev/null @@ -1,2928 +0,0 @@ -{ - ".simplecov:3463276878": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "Rakefile:429706125": [ - [18, 121, 17, "Layout/LineLength: Line is too long. [137/120]", 174264873], - [79, 3, 1023, "Metrics/BlockLength: Block has too many lines. [32/25]", 54868638], - [163, 121, 22, "Layout/LineLength: Line is too long. [142/120]", 1367093088], - [166, 121, 18, "Layout/LineLength: Line is too long. [138/120]", 3881946477] - ], - "ast-merge.gemspec:1182320030": [ - [16, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1168797721], - [129, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 2821357214], - [144, 121, 50, "Layout/LineLength: Line is too long. [170/120]", 3888612416], - [145, 121, 29, "Layout/LineLength: Line is too long. [149/120]", 981994949], - [152, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 4229808912] - ], - "gemfiles/modular/benchmark/r4/v0.5.gemfile:3644720371": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/benchmark/vHEAD.gemfile:2838879269": [ - [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/erb/r2/v3.0.gemfile:1688285565": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] - ], - "gemfiles/modular/erb/r3/v5.0.gemfile:2150258305": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] - ], - "gemfiles/modular/erb/r4/v5.0.gemfile:2150258305": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] - ], - "gemfiles/modular/erb/vHEAD.gemfile:981929959": [ - [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/mutex_m/r2/v0.3.gemfile:4055275004": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/mutex_m/r3/v0.3.gemfile:4055275004": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/mutex_m/r4/v0.3.gemfile:4055275004": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/mutex_m/vHEAD.gemfile:556854763": [ - [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/rspec.gemfile:2263543889": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] - ], - "gemfiles/modular/stringio/r2/v3.0.gemfile:821604304": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/stringio/r3/v3.0.gemfile:821604304": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/stringio/r4/v3.0.gemfile:821604304": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/stringio/vHEAD.gemfile:1045839691": [ - [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/x_std_libs.gemfile:2324400122": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/x_std_libs/r2/libs.gemfile:36276542": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] - ], - "gemfiles/modular/x_std_libs/r3/libs.gemfile:4030570297": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] - ], - "gemfiles/modular/x_std_libs/r4/libs.gemfile:909736663": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] - ], - "gemfiles/modular/x_std_libs/vHEAD.gemfile:907917303": [ - [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] - ], - "lib/ast-merge.rb:3005639624": [ - [1, 1, 0, "Naming/FileName: The name of this source file (`ast-merge.rb`) should use snake_case.", 5381] - ], - "lib/ast/merge.rb:1038225677": [ - [11, 3, 12, "Style/Documentation: Missing top-level documentation comment for `module Ast::Merge`.", 2866359175], - [11, 3, 270270, "Metrics/ModuleLength: Module has too many lines. [5705/100]", 2774418219], - [22, 5, 16, "Style/Documentation: Missing top-level documentation comment for `class Ast::Merge::ParseError`.", 362242086], - [33, 7, 362, "Metrics/AbcSize: Assignment Branch Condition size for `build_message` is too high. [<2, 16, 6> 17.2/17]", 3988736327], - [47, 5, 31, "Style/Documentation: Missing top-level documentation comment for `class Ast::Merge::PlaceholderCollisionError`.", 218924302], - [164, 7, 337, "Metrics/MethodLength: Method has too many lines. [11/10]", 2388996629], - [181, 7, 327, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `to_h` is too high. [8/7]", 979795121], - [312, 7, 383, "Metrics/MethodLength: Method has too many lines. [11/10]", 634650261], - [476, 121, 29, "Layout/LineLength: Line is too long. [149/120]", 3450568485], - [477, 7, 461, "Metrics/MethodLength: Method has too many lines. [12/10]", 43929779], - [494, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 1299979089], - [495, 7, 377, "Metrics/MethodLength: Method has too many lines. [11/10]", 3704151253], - [511, 121, 39, "Layout/LineLength: Line is too long. [159/120]", 85503958], - [512, 7, 447, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `to_h` is too high. [8/7]", 298553749], - [512, 7, 447, "Metrics/MethodLength: Method has too many lines. [12/10]", 298553749], - [541, 121, 25, "Layout/LineLength: Line is too long. [145/120]", 1441148616], - [542, 7, 453, "Metrics/MethodLength: Method has too many lines. [14/10]", 1899007021], - [561, 121, 3, "Layout/LineLength: Line is too long. [123/120]", 193342990], - [562, 7, 400, "Metrics/MethodLength: Method has too many lines. [11/10]", 298553749], - [591, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5860750], - [592, 7, 411, "Metrics/MethodLength: Method has too many lines. [12/10]", 2893925621], - [609, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 3137791633], - [610, 7, 454, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `to_h` is too high. [8/7]", 298553749], - [610, 7, 454, "Metrics/MethodLength: Method has too many lines. [12/10]", 298553749], - [669, 7, 385, "Metrics/MethodLength: Method has too many lines. [11/10]", 794265461], - [706, 7, 419, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `to_h` is too high. [10/7]", 3313546353], - [706, 7, 419, "Metrics/PerceivedComplexity: Perceived complexity for `to_h` is too high. [10/8]", 3313546353], - [756, 121, 11, "Layout/LineLength: Line is too long. [131/120]", 398187770], - [768, 121, 40, "Layout/LineLength: Line is too long. [160/120]", 2746783933], - [815, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5860841], - [823, 121, 156, "Layout/LineLength: Line is too long. [276/120]", 1149525480], - [828, 121, 24, "Layout/LineLength: Line is too long. [144/120]", 2538424426], - [840, 121, 22, "Layout/LineLength: Line is too long. [142/120]", 2285382915], - [850, 121, 7, "Layout/LineLength: Line is too long. [127/120]", 3962419360], - [863, 121, 11, "Layout/LineLength: Line is too long. [131/120]", 398187770], - [865, 121, 16, "Layout/LineLength: Line is too long. [136/120]", 3195178507], - [869, 121, 85, "Layout/LineLength: Line is too long. [205/120]", 4238980637], - [871, 121, 13, "Layout/LineLength: Line is too long. [133/120]", 2678411233], - [873, 121, 39, "Layout/LineLength: Line is too long. [159/120]", 4028520110], - [884, 121, 110, "Layout/LineLength: Line is too long. [230/120]", 3837814921], - [898, 5, 2283, "Metrics/MethodLength: Method has too many lines. [57/10]", 2282416447], - [958, 5, 2654, "Metrics/MethodLength: Method has too many lines. [63/10]", 2491520565], - [1009, 121, 9, "Layout/LineLength: Line is too long. [129/120]", 1823519875], - [1018, 121, 21, "Layout/LineLength: Line is too long. [141/120]", 1874311968], - [1024, 5, 10660, "Metrics/AbcSize: Assignment Branch Condition size for `ruby_downstream_merge_gem_feature_matrix` is too high. [<0, 21, 0> 21/17]", 2277322577], - [1024, 5, 10660, "Metrics/MethodLength: Method has too many lines. [248/10]", 2277322577], - [1275, 5, 1546, "Metrics/MethodLength: Method has too many lines. [37/10]", 208933754], - [1309, 121, 33, "Layout/LineLength: Line is too long. [153/120]", 2658452668], - [1315, 5, 4206, "Metrics/MethodLength: Method has too many lines. [96/10]", 1997530776], - [1392, 121, 5, "Layout/LineLength: Line is too long. [125/120]", 183246985], - [1408, 121, 15, "Layout/LineLength: Line is too long. [135/120]", 3268438356], - [1414, 5, 1598, "Metrics/MethodLength: Method has too many lines. [46/10]", 849757258], - [1457, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1323237892], - [1463, 5, 1164, "Metrics/MethodLength: Method has too many lines. [36/10]", 1477831421], - [1496, 121, 13, "Layout/LineLength: Line is too long. [133/120]", 931876829], - [1502, 5, 1699, "Metrics/MethodLength: Method has too many lines. [43/10]", 1125544678], - [1548, 5, 1016, "Metrics/MethodLength: Method has too many lines. [27/10]", 2194427985], - [1578, 5, 1058, "Metrics/MethodLength: Method has too many lines. [30/10]", 47860722], - [1611, 5, 1186, "Metrics/MethodLength: Method has too many lines. [31/10]", 676863486], - [1639, 121, 21, "Layout/LineLength: Line is too long. [141/120]", 2689509078], - [1645, 5, 1517, "Metrics/MethodLength: Method has too many lines. [41/10]", 3855445172], - [1658, 121, 24, "Layout/LineLength: Line is too long. [144/120]", 817380904], - [1683, 121, 26, "Layout/LineLength: Line is too long. [146/120]", 409671963], - [1689, 5, 2116, "Metrics/MethodLength: Method has too many lines. [61/10]", 524104794], - [1753, 5, 820, "Metrics/MethodLength: Method has too many lines. [12/10]", 1888457180], - [1753, 37, 298, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [10/5]", 789483382], - [1754, 121, 100, "Layout/LineLength: Line is too long. [220/120]", 3288750271], - [1769, 5, 3595, "Metrics/AbcSize: Assignment Branch Condition size for `initial_profile_promotion_policy` is too high. [<9, 20, 0> 21.93/17]", 83685787], - [1769, 5, 3595, "Metrics/MethodLength: Method has too many lines. [77/10]", 83685787], - [1849, 5, 768, "Metrics/MethodLength: Method has too many lines. [17/10]", 314059802], - [1870, 5, 1493, "Metrics/AbcSize: Assignment Branch Condition size for `evaluate_profile_selection_requirement` is too high. [<7, 23, 9> 25.67/17]", 3177555163], - [1870, 5, 1493, "Metrics/MethodLength: Method has too many lines. [29/10]", 3177555163], - [1871, 121, 18, "Layout/LineLength: Line is too long. [138/120]", 2145168012], - [1878, 121, 7, "Layout/LineLength: Line is too long. [127/120]", 683002336], - [1912, 5, 985, "Metrics/AbcSize: Assignment Branch Condition size for `profile_promotion_blocking_reasons` is too high. [<4, 25, 13> 28.46/17]", 1146627465], - [1912, 5, 985, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `profile_promotion_blocking_reasons` is too high. [10/7]", 1146627465], - [1912, 5, 985, "Metrics/MethodLength: Method has too many lines. [18/10]", 1146627465], - [1912, 5, 985, "Metrics/PerceivedComplexity: Perceived complexity for `profile_promotion_blocking_reasons` is too high. [10/8]", 1146627465], - [1933, 5, 3173, "Metrics/AbcSize: Assignment Branch Condition size for `validate_language_backend_profile` is too high. [<25, 68, 20> 75.16/17]", 2100389324], - [1933, 5, 3173, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `validate_language_backend_profile` is too high. [21/7]", 2100389324], - [1933, 5, 3173, "Metrics/MethodLength: Method has too many lines. [60/10]", 2100389324], - [1933, 5, 3173, "Metrics/PerceivedComplexity: Perceived complexity for `validate_language_backend_profile` is too high. [23/8]", 2100389324], - [2005, 5, 1523, "Metrics/AbcSize: Assignment Branch Condition size for `validate_backend_inventory` is too high. [<13, 38, 13> 42.21/17]", 1899037537], - [2005, 5, 1523, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `validate_backend_inventory` is too high. [13/7]", 1899037537], - [2005, 5, 1523, "Metrics/MethodLength: Method has too many lines. [25/10]", 1899037537], - [2005, 5, 1523, "Metrics/PerceivedComplexity: Perceived complexity for `validate_backend_inventory` is too high. [13/8]", 1899037537], - [2048, 5, 906, "Metrics/MethodLength: Method has too many lines. [20/10]", 3137959843], - [2071, 5, 2744, "Metrics/AbcSize: Assignment Branch Condition size for `detect_raw_merge_inconsistencies` is too high. [<8, 43, 21> 48.52/17]", 3717440692], - [2071, 5, 2744, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `detect_raw_merge_inconsistencies` is too high. [17/7]", 3717440692], - [2071, 5, 2744, "Metrics/MethodLength: Method has too many lines. [53/10]", 3717440692], - [2071, 5, 2744, "Metrics/PerceivedComplexity: Perceived complexity for `detect_raw_merge_inconsistencies` is too high. [17/8]", 3717440692], - [2086, 7, 1894, "Metrics/BlockLength: Block has too many lines. [33/25]", 758887611], - [2132, 5, 762, "Metrics/MethodLength: Method has too many lines. [11/10]", 3021402342], - [2146, 5, 490, "Metrics/MethodLength: Method has too many lines. [11/10]", 578473475], - [2160, 5, 881, "Metrics/AbcSize: Assignment Branch Condition size for `execute_independent_commutative_insertions` is too high. [<6, 16, 7> 18.47/17]", 259417386], - [2160, 5, 881, "Metrics/MethodLength: Method has too many lines. [21/10]", 259417386], - [2187, 5, 1107, "Metrics/AbcSize: Assignment Branch Condition size for `execute_independent_keyed_member_edits` is too high. [<10, 31, 15> 35.86/17]", 4271501385], - [2187, 5, 1107, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `execute_independent_keyed_member_edits` is too high. [14/7]", 4271501385], - [2187, 5, 1107, "Metrics/MethodLength: Method has too many lines. [24/10]", 4271501385], - [2187, 5, 1107, "Metrics/PerceivedComplexity: Perceived complexity for `execute_independent_keyed_member_edits` is too high. [14/8]", 4271501385], - [2231, 5, 3149, "Metrics/AbcSize: Assignment Branch Condition size for `parse_compact_ruleset` is too high. [<16, 68, 24> 73.86/17]", 3149098803], - [2231, 5, 3149, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `parse_compact_ruleset` is too high. [22/7]", 3149098803], - [2231, 5, 3149, "Metrics/MethodLength: Method has too many lines. [67/10]", 3149098803], - [2231, 5, 3149, "Metrics/PerceivedComplexity: Perceived complexity for `parse_compact_ruleset` is too high. [23/8]", 3149098803], - [2237, 7, 2544, "Metrics/BlockLength: Block has too many lines. [50/25]", 2484860466], - [2264, 121, 3, "Layout/LineLength: Line is too long. [123/120]", 193420054], - [2310, 5, 2658, "Metrics/AbcSize: Assignment Branch Condition size for `compact_ruleset_feature_profile` is too high. [<11, 67, 38> 77.81/17]", 4022599673], - [2310, 5, 2658, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `compact_ruleset_feature_profile` is too high. [29/7]", 4022599673], - [2310, 5, 2658, "Metrics/MethodLength: Method has too many lines. [66/10]", 4022599673], - [2310, 5, 2658, "Metrics/PerceivedComplexity: Perceived complexity for `compact_ruleset_feature_profile` is too high. [16/8]", 4022599673], - [2328, 7, 2243, "Metrics/BlockLength: Block has too many lines. [47/25]", 965041772], - [2395, 5, 2733, "Metrics/AbcSize: Assignment Branch Condition size for `classify_template_target_path` is too high. [<4, 36, 23> 42.91/17]", 3661828596], - [2395, 5, 2733, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `classify_template_target_path` is too high. [21/7]", 3661828596], - [2395, 5, 2733, "Metrics/MethodLength: Method has too many lines. [39/10]", 3661828596], - [2395, 5, 2733, "Metrics/PerceivedComplexity: Perceived complexity for `classify_template_target_path` is too high. [17/8]", 3661828596], - [2427, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5858795], - [2441, 5, 416, "Metrics/MethodLength: Method has too many lines. [12/10]", 1388641773], - [2484, 5, 388, "Metrics/MethodLength: Method has too many lines. [12/10]", 2360583514], - [2513, 5, 820, "Metrics/MethodLength: Method has too many lines. [13/10]", 354674808], - [2529, 5, 929, "Metrics/AbcSize: Assignment Branch Condition size for `enrich_template_plan_entries` is too high. [<9, 12, 10> 18.03/17]", 2666747528], - [2529, 5, 929, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `enrich_template_plan_entries` is too high. [9/7]", 2666747528], - [2529, 5, 929, "Metrics/MethodLength: Method has too many lines. [19/10]", 2666747528], - [2529, 5, 929, "Metrics/PerceivedComplexity: Perceived complexity for `enrich_template_plan_entries` is too high. [10/8]", 2666747528], - [2552, 5, 1245, "Metrics/AbcSize: Assignment Branch Condition size for `enrich_template_plan_entries_with_token_state` is too high. [<11, 23, 14> 29.09/17]", 1507113977], - [2552, 5, 1245, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `enrich_template_plan_entries_with_token_state` is too high. [13/7]", 1507113977], - [2552, 5, 1245, "Metrics/MethodLength: Method has too many lines. [19/10]", 1507113977], - [2552, 5, 1245, "Metrics/PerceivedComplexity: Perceived complexity for `enrich_template_plan_entries_with_token_state` is too high. [13/8]", 1507113977], - [2576, 5, 1353, "Metrics/AbcSize: Assignment Branch Condition size for `prepare_template_entries` is too high. [<6, 18, 11> 21.93/17]", 2774310942], - [2576, 5, 1353, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `prepare_template_entries` is too high. [11/7]", 2774310942], - [2576, 5, 1353, "Metrics/MethodLength: Method has too many lines. [24/10]", 2774310942], - [2576, 5, 1353, "Metrics/PerceivedComplexity: Perceived complexity for `prepare_template_entries` is too high. [12/8]", 2774310942], - [2606, 5, 1494, "Metrics/AbcSize: Assignment Branch Condition size for `plan_template_execution` is too high. [<8, 22, 17> 28.93/17]", 3876421385], - [2606, 5, 1494, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `plan_template_execution` is too high. [14/7]", 3876421385], - [2606, 5, 1494, "Metrics/MethodLength: Method has too many lines. [29/10]", 3876421385], - [2606, 5, 1494, "Metrics/PerceivedComplexity: Perceived complexity for `plan_template_execution` is too high. [15/8]", 3876421385], - [2607, 7, 1421, "Metrics/BlockLength: Block has too many lines. [27/25]", 2887810383], - [2640, 5, 822, "Metrics/ParameterLists: Method has too many optional parameters. [5/3]", 2749235529], - [2640, 37, 220, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [9/5]", 447165880], - [2641, 121, 29, "Layout/LineLength: Line is too long. [149/120]", 518382509], - [2655, 5, 2060, "Metrics/AbcSize: Assignment Branch Condition size for `preview_template_execution` is too high. [<11, 42, 26> 50.61/17]", 2270817206], - [2655, 5, 2060, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `preview_template_execution` is too high. [25/7]", 2270817206], - [2655, 5, 2060, "Metrics/MethodLength: Method has too many lines. [39/10]", 2270817206], - [2655, 5, 2060, "Metrics/PerceivedComplexity: Perceived complexity for `preview_template_execution` is too high. [23/8]", 2270817206], - [2665, 7, 1809, "Metrics/BlockLength: Block has too many lines. [28/25]", 310337564], - [2703, 5, 2513, "Metrics/AbcSize: Assignment Branch Condition size for `apply_template_execution` is too high. [<14, 50, 25> 57.63/17]", 177708331], - [2703, 5, 2513, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `apply_template_execution` is too high. [26/7]", 177708331], - [2703, 5, 2513, "Metrics/MethodLength: Method has too many lines. [50/10]", 177708331], - [2703, 5, 2513, "Metrics/PerceivedComplexity: Perceived complexity for `apply_template_execution` is too high. [23/8]", 177708331], - [2714, 7, 2239, "Metrics/BlockLength: Block has too many lines. [38/25]", 1651205014], - [2764, 5, 1696, "Metrics/AbcSize: Assignment Branch Condition size for `evaluate_template_tree_convergence` is too high. [<11, 29, 17> 35.37/17]", 2507998041], - [2764, 5, 1696, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `evaluate_template_tree_convergence` is too high. [17/7]", 2507998041], - [2764, 5, 1696, "Metrics/MethodLength: Method has too many lines. [35/10]", 2507998041], - [2764, 5, 1696, "Metrics/ParameterLists: Method has too many optional parameters. [5/3]", 2507998041], - [2764, 5, 1696, "Metrics/PerceivedComplexity: Perceived complexity for `evaluate_template_tree_convergence` is too high. [17/8]", 2507998041], - [2764, 43, 198, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [8/5]", 4214374277], - [2765, 121, 13, "Layout/LineLength: Line is too long. [133/120]", 2983874608], - [2807, 5, 688, "Metrics/MethodLength: Method has too many lines. [15/10]", 3064253784], - [2807, 5, 688, "Metrics/ParameterLists: Method has too many optional parameters. [5/3]", 3064253784], - [2807, 36, 216, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [8/5]", 448029307], - [2808, 121, 31, "Layout/LineLength: Line is too long. [151/120]", 3840139076], - [2851, 5, 664, "Metrics/MethodLength: Method has too many lines. [13/10]", 995637868], - [2851, 5, 664, "Metrics/ParameterLists: Method has too many optional parameters. [5/3]", 995637868], - [2851, 53, 202, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [7/5]", 4227116196], - [2852, 121, 48, "Layout/LineLength: Line is too long. [168/120]", 418683952], - [2869, 5, 649, "Metrics/MethodLength: Method has too many lines. [13/10]", 1831524792], - [2869, 5, 649, "Metrics/ParameterLists: Method has too many optional parameters. [5/3]", 1831524792], - [2869, 54, 178, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [7/5]", 2962381850], - [2870, 121, 24, "Layout/LineLength: Line is too long. [144/120]", 3690915627], - [2887, 5, 1280, "Metrics/AbcSize: Assignment Branch Condition size for `apply_template_tree_execution_to_directory` is too high. [<6, 16, 6> 18.11/17]", 305449363], - [2887, 5, 1280, "Metrics/MethodLength: Method has too many lines. [23/10]", 305449363], - [2887, 5, 1280, "Metrics/ParameterLists: Method has too many optional parameters. [5/3]", 305449363], - [2887, 51, 200, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [7/5]", 1352434212], - [2888, 121, 46, "Layout/LineLength: Line is too long. [166/120]", 1139621482], - [2916, 5, 2199, "Metrics/AbcSize: Assignment Branch Condition size for `report_template_tree_run` is too high. [<15, 42, 31> 54.31/17]", 975627723], - [2916, 5, 2199, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `report_template_tree_run` is too high. [25/7]", 975627723], - [2916, 5, 2199, "Metrics/MethodLength: Method has too many lines. [38/10]", 975627723], - [2916, 5, 2199, "Metrics/PerceivedComplexity: Perceived complexity for `report_template_tree_run` is too high. [26/8]", 975627723], - [2960, 5, 1515, "Metrics/AbcSize: Assignment Branch Condition size for `report_template_directory_apply` is too high. [<13, 35, 21> 42.84/17]", 3710254295], - [2960, 5, 1515, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `report_template_directory_apply` is too high. [17/7]", 3710254295], - [2960, 5, 1515, "Metrics/MethodLength: Method has too many lines. [26/10]", 3710254295], - [2960, 5, 1515, "Metrics/PerceivedComplexity: Perceived complexity for `report_template_directory_apply` is too high. [17/8]", 3710254295], - [2975, 20, 1, "Style/DoubleNegation: Avoid the use of double negation (`!!`).", 177540], - [2992, 5, 1656, "Metrics/AbcSize: Assignment Branch Condition size for `report_template_directory_plan` is too high. [<11, 24, 25> 36.36/17]", 2946319293], - [2992, 5, 1656, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `report_template_directory_plan` is too high. [18/7]", 2946319293], - [2992, 5, 1656, "Metrics/MethodLength: Method has too many lines. [36/10]", 2946319293], - [2992, 5, 1656, "Metrics/PerceivedComplexity: Perceived complexity for `report_template_directory_plan` is too high. [16/8]", 2946319293], - [3064, 7, 9, "Style/MultilineBlockChain: Avoid multi-line chains of blocks.", 3648222389], - [3085, 5, 410, "Metrics/MethodLength: Method has too many lines. [12/10]", 248324428], - [3091, 7, 11, "Style/MultilineBlockChain: Avoid multi-line chains of blocks.", 848344986], - [3135, 5, 712, "Metrics/MethodLength: Method has too many lines. [12/10]", 2500743043], - [3135, 27, 178, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [9/5]", 873705194], - [3135, 121, 10, "Layout/LineLength: Line is too long. [130/120]", 3023611470], - [3161, 42, 167, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 2002181571], - [3174, 5, 1097, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `structured_edit_selection_profile` is too high. [8/7]", 1149325233], - [3174, 5, 1097, "Metrics/MethodLength: Method has too many lines. [14/10]", 1149325233], - [3174, 42, 311, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [11/5]", 3814063337], - [3175, 121, 16, "Layout/LineLength: Line is too long. [136/120]", 198450264], - [3188, 34, 47, "Style/SafeNavigation: Use safe navigation (`&.`) instead of checking if an object exists before calling the method.", 3204815976], - [3193, 5, 869, "Metrics/MethodLength: Method has too many lines. [11/10]", 83957392], - [3193, 41, 250, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [8/5]", 1486072775], - [3194, 121, 13, "Layout/LineLength: Line is too long. [133/120]", 1967186495], - [3204, 36, 47, "Style/SafeNavigation: Use safe navigation (`&.`) instead of checking if an object exists before calling the method.", 3204815976], - [3209, 5, 1156, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `structured_edit_match_profile` is too high. [10/7]", 4112674787], - [3209, 5, 1156, "Metrics/MethodLength: Method has too many lines. [15/10]", 4112674787], - [3209, 5, 1156, "Metrics/PerceivedComplexity: Perceived complexity for `structured_edit_match_profile` is too high. [10/8]", 4112674787], - [3209, 38, 321, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [12/5]", 823565876], - [3210, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5859667], - [3211, 121, 7, "Layout/LineLength: Line is too long. [127/120]", 3673982236], - [3229, 5, 933, "Metrics/MethodLength: Method has too many lines. [14/10]", 2099388915], - [3229, 37, 319, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [12/5]", 250907892], - [3230, 121, 1, "Layout/LineLength: Line is too long. [121/120]", 177545], - [3231, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 4154814685], - [3248, 5, 907, "Metrics/MethodLength: Method has too many lines. [12/10]", 2242846328], - [3248, 42, 275, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [9/5]", 246196330], - [3249, 121, 13, "Layout/LineLength: Line is too long. [133/120]", 1439117336], - [3265, 5, 1057, "Metrics/MethodLength: Method has too many lines. [14/10]", 2891607970], - [3265, 44, 323, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [11/5]", 1386547750], - [3266, 121, 19, "Layout/LineLength: Line is too long. [139/120]", 1676243675], - [3267, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 4154814685], - [3284, 5, 1375, "Metrics/AbcSize: Assignment Branch Condition size for `structured_edit_request` is too high. [<11, 25, 10> 29.09/17]", 4153786554], - [3284, 5, 1375, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `structured_edit_request` is too high. [11/7]", 4153786554], - [3284, 5, 1375, "Metrics/MethodLength: Method has too many lines. [16/10]", 4153786554], - [3284, 5, 1375, "Metrics/PerceivedComplexity: Perceived complexity for `structured_edit_request` is too high. [11/8]", 4153786554], - [3284, 32, 370, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [13/5]", 2381882467], - [3285, 121, 1, "Layout/LineLength: Line is too long. [121/120]", 177545], - [3306, 5, 728, "Metrics/MethodLength: Method has too many lines. [11/10]", 4026157473], - [3306, 31, 175, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [8/5]", 773121544], - [3338, 5, 597, "Metrics/MethodLength: Method has too many lines. [11/10]", 4143495860], - [3377, 5, 577, "Metrics/MethodLength: Method has too many lines. [11/10]", 4169131743], - [3392, 5, 1011, "Metrics/AbcSize: Assignment Branch Condition size for `structured_edit_execution_report` is too high. [<7, 16, 7> 18.81/17]", 876221899], - [3392, 5, 1011, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `structured_edit_execution_report` is too high. [8/7]", 876221899], - [3392, 5, 1011, "Metrics/MethodLength: Method has too many lines. [12/10]", 876221899], - [3392, 41, 245, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [9/5]", 2484440861], - [3393, 121, 55, "Layout/LineLength: Line is too long. [175/120]", 4036992717], - [3418, 55, 170, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [7/5]", 668161765], - [3441, 5, 819, "Metrics/MethodLength: Method has too many lines. [12/10]", 2287133436], - [3441, 56, 217, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [9/5]", 3198032135], - [3442, 121, 51, "Layout/LineLength: Line is too long. [171/120]", 3526181051], - [3475, 5, 663, "Metrics/MethodLength: Method has too many lines. [11/10]", 1853778635], - [3484, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 2162352564], - [3516, 5, 663, "Metrics/MethodLength: Method has too many lines. [11/10]", 1132214891], - [3525, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 2162352564], - [3547, 5, 678, "Metrics/MethodLength: Method has too many lines. [11/10]", 556747511], - [3556, 121, 9, "Layout/LineLength: Line is too long. [129/120]", 1808630920], - [3578, 5, 708, "Metrics/MethodLength: Method has too many lines. [11/10]", 3590891170], - [3587, 121, 15, "Layout/LineLength: Line is too long. [135/120]", 1367166441], - [3610, 5, 678, "Metrics/MethodLength: Method has too many lines. [11/10]", 689748855], - [3619, 121, 9, "Layout/LineLength: Line is too long. [129/120]", 1808630920], - [3641, 5, 708, "Metrics/MethodLength: Method has too many lines. [11/10]", 1478642210], - [3650, 121, 15, "Layout/LineLength: Line is too long. [135/120]", 1367166441], - [3674, 5, 663, "Metrics/MethodLength: Method has too many lines. [11/10]", 239506091], - [3683, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 2162352564], - [3705, 5, 693, "Metrics/MethodLength: Method has too many lines. [11/10]", 3803476550], - [3714, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 926808928], - [3737, 5, 728, "Metrics/MethodLength: Method has too many lines. [11/10]", 748161230], - [3746, 121, 21, "Layout/LineLength: Line is too long. [141/120]", 2807086497], - [3768, 5, 758, "Metrics/MethodLength: Method has too many lines. [11/10]", 3900524558], - [3777, 121, 27, "Layout/LineLength: Line is too long. [147/120]", 3463884836], - [3801, 5, 748, "Metrics/MethodLength: Method has too many lines. [11/10]", 2076716686], - [3810, 121, 25, "Layout/LineLength: Line is too long. [145/120]", 609414023], - [3832, 5, 778, "Metrics/MethodLength: Method has too many lines. [11/10]", 867958318], - [3836, 121, 3, "Layout/LineLength: Line is too long. [123/120]", 193343749], - [3841, 121, 31, "Layout/LineLength: Line is too long. [151/120]", 1202823007], - [3865, 5, 728, "Metrics/MethodLength: Method has too many lines. [11/10]", 2078323790], - [3874, 121, 21, "Layout/LineLength: Line is too long. [141/120]", 2807086497], - [3896, 5, 758, "Metrics/MethodLength: Method has too many lines. [11/10]", 121025422], - [3905, 121, 27, "Layout/LineLength: Line is too long. [147/120]", 3463884836], - [3927, 5, 733, "Metrics/MethodLength: Method has too many lines. [11/10]", 1216456558], - [3936, 121, 22, "Layout/LineLength: Line is too long. [142/120]", 145839927], - [3958, 5, 763, "Metrics/MethodLength: Method has too many lines. [11/10]", 2946525998], - [3967, 121, 28, "Layout/LineLength: Line is too long. [148/120]", 275709226], - [3991, 5, 768, "Metrics/MethodLength: Method has too many lines. [11/10]", 3281402414], - [3995, 121, 1, "Layout/LineLength: Line is too long. [121/120]", 177656], - [4000, 121, 29, "Layout/LineLength: Line is too long. [149/120]", 1427340581], - [4037, 121, 7, "Layout/LineLength: Line is too long. [127/120]", 3673982236], - [4094, 121, 3, "Layout/LineLength: Line is too long. [123/120]", 193417070], - [4105, 121, 7, "Layout/LineLength: Line is too long. [127/120]", 2768444], - [4112, 121, 32, "Layout/LineLength: Line is too long. [152/120]", 3833204035], - [4120, 5, 863, "Metrics/MethodLength: Method has too many lines. [11/10]", 3731153486], - [4124, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 4054494590], - [4129, 121, 48, "Layout/LineLength: Line is too long. [168/120]", 2084326338], - [4135, 121, 36, "Layout/LineLength: Line is too long. [156/120]", 4201858364], - [4139, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5861122], - [4143, 5, 873, "Metrics/MethodLength: Method has too many lines. [11/10]", 1866057614], - [4147, 121, 22, "Layout/LineLength: Line is too long. [142/120]", 3893180930], - [4152, 121, 50, "Layout/LineLength: Line is too long. [170/120]", 863421408], - [4158, 121, 40, "Layout/LineLength: Line is too long. [160/120]", 3247130491], - [4162, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1171438608], - [4166, 5, 883, "Metrics/MethodLength: Method has too many lines. [11/10]", 2352924462], - [4166, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5860841], - [4167, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5861334], - [4170, 121, 24, "Layout/LineLength: Line is too long. [144/120]", 465221046], - [4175, 121, 52, "Layout/LineLength: Line is too long. [172/120]", 1922522532], - [4191, 121, 44, "Layout/LineLength: Line is too long. [164/120]", 4067226670], - [4195, 121, 10, "Layout/LineLength: Line is too long. [130/120]", 2033573170], - [4199, 5, 893, "Metrics/MethodLength: Method has too many lines. [11/10]", 1633175534], - [4199, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2087926422], - [4200, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2087421565], - [4203, 121, 26, "Layout/LineLength: Line is too long. [146/120]", 615151909], - [4208, 121, 54, "Layout/LineLength: Line is too long. [174/120]", 884393597], - [4234, 121, 48, "Layout/LineLength: Line is too long. [168/120]", 417844693], - [4238, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 1233681340], - [4242, 5, 903, "Metrics/MethodLength: Method has too many lines. [11/10]", 3964877742], - [4242, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1165873471], - [4243, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1322899615], - [4246, 121, 28, "Layout/LineLength: Line is too long. [148/120]", 3471008807], - [4251, 121, 56, "Layout/LineLength: Line is too long. [176/120]", 627945471], - [4257, 121, 52, "Layout/LineLength: Line is too long. [172/120]", 2960084092], - [4261, 121, 18, "Layout/LineLength: Line is too long. [138/120]", 2148514258], - [4265, 5, 913, "Metrics/MethodLength: Method has too many lines. [11/10]", 385546958], - [4265, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 2970472935], - [4266, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 3808956371], - [4269, 121, 30, "Layout/LineLength: Line is too long. [150/120]", 3412499338], - [4274, 121, 58, "Layout/LineLength: Line is too long. [178/120]", 3274208144], - [4280, 121, 26, "Layout/LineLength: Line is too long. [146/120]", 4275923717], - [4288, 5, 848, "Metrics/MethodLength: Method has too many lines. [11/10]", 457851502], - [4292, 121, 17, "Layout/LineLength: Line is too long. [137/120]", 413805135], - [4297, 121, 45, "Layout/LineLength: Line is too long. [165/120]", 951908917], - [4303, 121, 10, "Layout/LineLength: Line is too long. [130/120]", 1859200227], - [4311, 5, 808, "Metrics/MethodLength: Method has too many lines. [11/10]", 884695726], - [4315, 121, 9, "Layout/LineLength: Line is too long. [129/120]", 2011807620], - [4320, 121, 37, "Layout/LineLength: Line is too long. [157/120]", 384138219], - [4326, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1176320663], - [4334, 5, 798, "Metrics/MethodLength: Method has too many lines. [11/10]", 1422521838], - [4338, 121, 7, "Layout/LineLength: Line is too long. [127/120]", 3247420006], - [4343, 121, 35, "Layout/LineLength: Line is too long. [155/120]", 1408316702], - [4349, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 938465266], - [4357, 5, 803, "Metrics/MethodLength: Method has too many lines. [11/10]", 2370839950], - [4361, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 74128911], - [4366, 121, 36, "Layout/LineLength: Line is too long. [156/120]", 1364659899], - [4372, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 2059517661], - [4380, 5, 803, "Metrics/MethodLength: Method has too many lines. [11/10]", 3379336814], - [4384, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 74128911], - [4389, 121, 36, "Layout/LineLength: Line is too long. [156/120]", 1364659899], - [4437, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 4281772560], - [4445, 5, 833, "Metrics/MethodLength: Method has too many lines. [11/10]", 3245498510], - [4449, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 3542644754], - [4454, 121, 42, "Layout/LineLength: Line is too long. [162/120]", 1916814773], - [4460, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 859690879], - [4468, 5, 833, "Metrics/MethodLength: Method has too many lines. [11/10]", 4138830126], - [4472, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 3542644754], - [4477, 121, 42, "Layout/LineLength: Line is too long. [162/120]", 1916814773], - [4483, 121, 18, "Layout/LineLength: Line is too long. [138/120]", 3880141603], - [4491, 5, 828, "Metrics/MethodLength: Method has too many lines. [11/10]", 3621010990], - [4495, 121, 13, "Layout/LineLength: Line is too long. [133/120]", 3917260126], - [4500, 121, 41, "Layout/LineLength: Line is too long. [161/120]", 1879260859], - [4506, 121, 22, "Layout/LineLength: Line is too long. [142/120]", 1776611011], - [4514, 5, 838, "Metrics/MethodLength: Method has too many lines. [11/10]", 514585454], - [4518, 121, 15, "Layout/LineLength: Line is too long. [135/120]", 1353518231], - [4523, 121, 43, "Layout/LineLength: Line is too long. [163/120]", 1228459824], - [4529, 121, 38, "Layout/LineLength: Line is too long. [158/120]", 3932349968], - [4533, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2087903307], - [4537, 5, 878, "Metrics/MethodLength: Method has too many lines. [11/10]", 1525737454], - [4537, 121, 1, "Layout/LineLength: Line is too long. [121/120]", 177548], - [4538, 121, 1, "Layout/LineLength: Line is too long. [121/120]", 177538], - [4541, 121, 23, "Layout/LineLength: Line is too long. [143/120]", 2895681070], - [4546, 121, 51, "Layout/LineLength: Line is too long. [171/120]", 4040662298], - [4552, 121, 10, "Layout/LineLength: Line is too long. [130/120]", 66929045], - [4560, 5, 808, "Metrics/MethodLength: Method has too many lines. [11/10]", 1626746606], - [4564, 121, 9, "Layout/LineLength: Line is too long. [129/120]", 2011807620], - [4569, 121, 37, "Layout/LineLength: Line is too long. [157/120]", 384138219], - [4583, 121, 22, "Layout/LineLength: Line is too long. [142/120]", 849230508], - [4591, 5, 838, "Metrics/MethodLength: Method has too many lines. [11/10]", 3531122670], - [4595, 121, 15, "Layout/LineLength: Line is too long. [135/120]", 1353518231], - [4600, 121, 43, "Layout/LineLength: Line is too long. [163/120]", 1228459824], - [4615, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1176320663], - [4623, 5, 798, "Metrics/MethodLength: Method has too many lines. [11/10]", 1118421486], - [4627, 121, 7, "Layout/LineLength: Line is too long. [127/120]", 3247420006], - [4632, 121, 35, "Layout/LineLength: Line is too long. [155/120]", 1408316702], - [4654, 5, 693, "Metrics/MethodLength: Method has too many lines. [11/10]", 1668406662], - [4663, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 926808928], - [4677, 5, 648, "Metrics/MethodLength: Method has too many lines. [11/10]", 3479836893], - [4686, 121, 3, "Layout/LineLength: Line is too long. [123/120]", 193343749], - [4708, 5, 678, "Metrics/MethodLength: Method has too many lines. [11/10]", 3147549879], - [4717, 121, 9, "Layout/LineLength: Line is too long. [129/120]", 1808630920], - [4752, 5, 677, "Metrics/MethodLength: Method has too many lines. [11/10]", 1206941784], - [4761, 121, 7, "Layout/LineLength: Line is too long. [127/120]", 3937819337], - [4784, 5, 672, "Metrics/MethodLength: Method has too many lines. [11/10]", 3634903061], - [4793, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 2162352564], - [4815, 5, 683, "Metrics/MethodLength: Method has too many lines. [11/10]", 3417053461], - [4824, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 926808928], - [4848, 5, 668, "Metrics/MethodLength: Method has too many lines. [11/10]", 1540762726], - [4857, 121, 9, "Layout/LineLength: Line is too long. [129/120]", 1808630920], - [4879, 5, 698, "Metrics/MethodLength: Method has too many lines. [11/10]", 2804825893], - [4888, 121, 15, "Layout/LineLength: Line is too long. [135/120]", 1367166441], - [4911, 5, 683, "Metrics/MethodLength: Method has too many lines. [11/10]", 3165010613], - [4920, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 926808928], - [4942, 5, 713, "Metrics/MethodLength: Method has too many lines. [11/10]", 2795628035], - [4951, 121, 18, "Layout/LineLength: Line is too long. [138/120]", 497133415], - [4957, 5, 864, "Metrics/MethodLength: Method has too many lines. [12/10]", 1086224878], - [4957, 50, 268, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [9/5]", 4022739767], - [4958, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1607400384], - [4982, 5, 658, "Metrics/MethodLength: Method has too many lines. [11/10]", 3999796489], - [4991, 121, 5, "Layout/LineLength: Line is too long. [125/120]", 102058825], - [5005, 59, 179, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 1569981428], - [5006, 121, 23, "Layout/LineLength: Line is too long. [143/120]", 1515849732], - [5037, 5, 694, "Metrics/MethodLength: Method has too many lines. [11/10]", 3830236120], - [5046, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 2250857971], - [5060, 5, 673, "Metrics/MethodLength: Method has too many lines. [11/10]", 2413908653], - [5069, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 1225026887], - [5083, 5, 663, "Metrics/MethodLength: Method has too many lines. [11/10]", 3935895659], - [5092, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 2162352564], - [5106, 5, 692, "Metrics/MethodLength: Method has too many lines. [11/10]", 3660669627], - [5115, 121, 10, "Layout/LineLength: Line is too long. [130/120]", 3558241761], - [5129, 5, 612, "Metrics/MethodLength: Method has too many lines. [11/10]", 100391811], - [5168, 5, 693, "Metrics/MethodLength: Method has too many lines. [11/10]", 3138587622], - [5177, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 926808928], - [5199, 5, 688, "Metrics/MethodLength: Method has too many lines. [11/10]", 2736088861], - [5208, 121, 13, "Layout/LineLength: Line is too long. [133/120]", 1992103013], - [5231, 5, 678, "Metrics/MethodLength: Method has too many lines. [11/10]", 2275602867], - [5240, 121, 11, "Layout/LineLength: Line is too long. [131/120]", 3598350322], - [5263, 5, 602, "Metrics/MethodLength: Method has too many lines. [11/10]", 3023166371], - [5278, 36, 181, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [7/5]", 1071580945], - [5291, 5, 787, "Metrics/AbcSize: Assignment Branch Condition size for `group_projected_child_review_cases` is too high. [<4, 17, 4> 17.92/17]", 3391527151], - [5291, 5, 787, "Metrics/MethodLength: Method has too many lines. [18/10]", 3391527151], - [5315, 5, 705, "Metrics/MethodLength: Method has too many lines. [13/10]", 2629923275], - [5342, 5, 547, "Metrics/MethodLength: Method has too many lines. [12/10]", 1911190850], - [5367, 5, 1516, "Metrics/AbcSize: Assignment Branch Condition size for `review_projected_child_groups` is too high. [<11, 21, 9> 25.36/17]", 3333110579], - [5367, 5, 1516, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `review_projected_child_groups` is too high. [8/7]", 3333110579], - [5367, 5, 1516, "Metrics/MethodLength: Method has too many lines. [39/10]", 3333110579], - [5367, 5, 1516, "Metrics/PerceivedComplexity: Perceived complexity for `review_projected_child_groups` is too high. [9/8]", 3333110579], - [5401, 7, 7, "Style/MultilineBlockChain: Avoid multi-line chains of blocks.", 4045560504], - [5413, 5, 562, "Metrics/MethodLength: Method has too many lines. [14/10]", 3083915102], - [5432, 5, 1898, "Metrics/AbcSize: Assignment Branch Condition size for `resolve_delegated_child_outputs` is too high. [<11, 21, 6> 24.45/17]", 2739722546], - [5432, 5, 1898, "Metrics/MethodLength: Method has too many lines. [49/10]", 2739722546], - [5487, 5, 942, "Metrics/AbcSize: Assignment Branch Condition size for `execute_nested_merge` is too high. [<3, 17, 6> 18.28/17]", 766157172], - [5487, 5, 942, "Metrics/MethodLength: Method has too many lines. [20/10]", 766157172], - [5487, 29, 144, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 1404367793], - [5514, 5, 652, "Metrics/MethodLength: Method has too many lines. [13/10]", 2105803856], - [5533, 38, 140, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 1682835820], - [5563, 5, 577, "Metrics/MethodLength: Method has too many lines. [12/10]", 2659610443], - [5632, 5, 569, "Metrics/MethodLength: Method has too many lines. [14/10]", 20616641], - [5660, 5, 772, "Metrics/AbcSize: Assignment Branch Condition size for `conformance_manifest_review_request_ids` is too high. [<7, 16, 8> 19.21/17]", 3577418475], - [5660, 5, 772, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `conformance_manifest_review_request_ids` is too high. [9/7]", 3577418475], - [5660, 5, 772, "Metrics/MethodLength: Method has too many lines. [14/10]", 3577418475], - [5660, 5, 772, "Metrics/PerceivedComplexity: Perceived complexity for `conformance_manifest_review_request_ids` is too high. [9/8]", 3577418475], - [5714, 5, 606, "Metrics/MethodLength: Method has too many lines. [11/10]", 2675086662], - [5729, 5, 562, "Metrics/MethodLength: Method has too many lines. [11/10]", 3811715870], - [5744, 5, 578, "Metrics/MethodLength: Method has too many lines. [11/10]", 1776197415], - [5759, 5, 1298, "Metrics/AbcSize: Assignment Branch Condition size for `resolve_conformance_family_context` is too high. [<7, 28, 9> 30.23/17]", 4265202259], - [5759, 5, 1298, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `resolve_conformance_family_context` is too high. [10/7]", 4265202259], - [5759, 5, 1298, "Metrics/MethodLength: Method has too many lines. [23/10]", 4265202259], - [5759, 5, 1298, "Metrics/PerceivedComplexity: Perceived complexity for `resolve_conformance_family_context` is too high. [10/8]", 4265202259], - [5788, 5, 1994, "Metrics/AbcSize: Assignment Branch Condition size for `review_conformance_family_context` is too high. [<12, 24, 10> 28.64/17]", 2834851944], - [5788, 5, 1994, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `review_conformance_family_context` is too high. [10/7]", 2834851944], - [5788, 5, 1994, "Metrics/MethodLength: Method has too many lines. [41/10]", 2834851944], - [5788, 5, 1994, "Metrics/PerceivedComplexity: Perceived complexity for `review_conformance_family_context` is too high. [11/8]", 2834851944], - [5811, 121, 33, "Layout/LineLength: Line is too long. [153/120]", 641612328], - [5848, 5, 1844, "Metrics/AbcSize: Assignment Branch Condition size for `select_conformance_case` is too high. [<2, 43, 14> 45.27/17]", 670673209], - [5848, 5, 1844, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `select_conformance_case` is too high. [14/7]", 670673209], - [5848, 5, 1844, "Metrics/MethodLength: Method has too many lines. [30/10]", 670673209], - [5848, 5, 1844, "Metrics/PerceivedComplexity: Perceived complexity for `select_conformance_case` is too high. [16/8]", 670673209], - [5853, 121, 34, "Layout/LineLength: Line is too long. [154/120]", 2135503892], - [5855, 121, 41, "Layout/LineLength: Line is too long. [161/120]", 3932054828], - [5864, 121, 30, "Layout/LineLength: Line is too long. [150/120]", 3169124957], - [5886, 5, 509, "Metrics/MethodLength: Method has too many lines. [11/10]", 3552283123], - [5975, 5, 4195, "Metrics/AbcSize: Assignment Branch Condition size for `review_conformance_manifest` is too high. [<37, 63, 16> 74.79/17]", 2166560528], - [5975, 5, 4195, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `review_conformance_manifest` is too high. [14/7]", 2166560528], - [5975, 5, 4195, "Metrics/MethodLength: Method has too many lines. [89/10]", 2166560528], - [5975, 5, 4195, "Metrics/PerceivedComplexity: Perceived complexity for `review_conformance_manifest` is too high. [17/8]", 2166560528], - [6040, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 2746826653], - [6056, 121, 47, "Layout/LineLength: Line is too long. [167/120]", 3035993839], - [6078, 5, 676, "Metrics/MethodLength: Method has too many lines. [15/10]", 3048335475], - [6101, 5, 1054, "Metrics/AbcSize: Assignment Branch Condition size for `plan_conformance_suite` is too high. [<11, 18, 8> 22.56/17]", 1855254788], - [6101, 5, 1054, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `plan_conformance_suite` is too high. [8/7]", 1855254788], - [6101, 5, 1054, "Metrics/MethodLength: Method has too many lines. [25/10]", 1855254788], - [6101, 31, 84, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 172854173], - [6166, 5, 1274, "Metrics/AbcSize: Assignment Branch Condition size for `plan_named_conformance_suites_with_diagnostics` is too high. [<11, 21, 7> 24.72/17]", 3991300730], - [6166, 5, 1274, "Metrics/MethodLength: Method has too many lines. [27/10]", 3991300730], - [6193, 121, 47, "Layout/LineLength: Line is too long. [167/120]", 3035993839], - [6258, 5, 2071, "Metrics/AbcSize: Assignment Branch Condition size for `review_decision_for_family_context` is too high. [<7, 22, 16> 28.09/17]", 4245377184], - [6258, 5, 2071, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `review_decision_for_family_context` is too high. [12/7]", 4245377184], - [6258, 5, 2071, "Metrics/MethodLength: Method has too many lines. [46/10]", 4245377184], - [6258, 5, 2071, "Metrics/PerceivedComplexity: Perceived complexity for `review_decision_for_family_context` is too high. [12/8]", 4245377184], - [6263, 7, 1766, "Metrics/BlockLength: Block has too many lines. [40/25]", 65448241], - [6315, 5, 686, "Metrics/MethodLength: Method has too many lines. [13/10]", 4030291682] - ], - "lib/ast/merge/ast_node.rb:2037773320": [ - [44, 5, 7086, "Metrics/ClassLength: Class has too many lines. [114/100]", 201314721], - [220, 11, 10, "Naming/PredicatePrefix: Rename `has_error?` to `error?`.", 946854183] - ], - "lib/ast/merge/comment/attachment.rb:2388154769": [ - [42, 23, 180, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [9/5]", 3775370530], - [75, 24, 2, "Lint/SafeNavigationConsistency: Use `.` instead of unnecessary `&.`.", 5858765], - [81, 25, 2, "Lint/SafeNavigationConsistency: Use `.` instead of unnecessary `&.`.", 5858765], - [114, 9, 410, "Metrics/AbcSize: Assignment Branch Condition size for `inspect` is too high. [<1, 17, 4> 17.49/17]", 605978105], - [115, 32, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765] - ], - "lib/ast/merge/comment/augmenter.rb:633395157": [ - [12, 7, 13967, "Metrics/ClassLength: Class has too many lines. [291/100]", 2806660144], - [33, 9, 721, "Metrics/MethodLength: Method has too many lines. [16/10]", 200402816], - [33, 23, 91, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [7/5]", 2938734913], - [64, 9, 1335, "Metrics/AbcSize: Assignment Branch Condition size for `build!` is too high. [<12, 29, 6> 31.95/17]", 3904283188], - [64, 9, 1335, "Metrics/MethodLength: Method has too many lines. [22/10]", 3904283188], - [94, 9, 867, "Metrics/AbcSize: Assignment Branch Condition size for `infer_leading_comments` is too high. [<8, 19, 14> 24.92/17]", 1941464872], - [94, 9, 867, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `infer_leading_comments` is too high. [11/7]", 1941464872], - [94, 9, 867, "Metrics/MethodLength: Method has too many lines. [20/10]", 1941464872], - [94, 9, 867, "Metrics/PerceivedComplexity: Perceived complexity for `infer_leading_comments` is too high. [12/8]", 1941464872], - [122, 9, 429, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `infer_inline_comments` is too high. [8/7]", 2688935834], - [133, 9, 934, "Metrics/AbcSize: Assignment Branch Condition size for `infer_trailing_comments` is too high. [<8, 21, 18> 28.79/17]", 1551855281], - [133, 9, 934, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `infer_trailing_comments` is too high. [15/7]", 1551855281], - [133, 9, 934, "Metrics/MethodLength: Method has too many lines. [20/10]", 1551855281], - [133, 9, 934, "Metrics/PerceivedComplexity: Perceived complexity for `infer_trailing_comments` is too high. [15/8]", 1551855281], - [160, 9, 488, "Metrics/AbcSize: Assignment Branch Condition size for `infer_postlude!` is too high. [<5, 17, 8> 19.44/17]", 2562637949], - [160, 9, 488, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `infer_postlude!` is too high. [8/7]", 2562637949], - [173, 9, 1529, "Metrics/AbcSize: Assignment Branch Condition size for `infer_remaining_regions!` is too high. [<12, 27, 23> 37.44/17]", 3911657050], - [173, 9, 1529, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `infer_remaining_regions!` is too high. [18/7]", 3911657050], - [173, 9, 1529, "Metrics/MethodLength: Method has too many lines. [28/10]", 3911657050], - [173, 9, 1529, "Metrics/PerceivedComplexity: Perceived complexity for `infer_remaining_regions!` is too high. [20/8]", 3911657050], - [216, 9, 507, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `split_preamble_group` is too high. [8/7]", 336784898], - [231, 9, 588, "Metrics/MethodLength: Method has too many lines. [17/10]", 3445626532], - [274, 9, 965, "Metrics/AbcSize: Assignment Branch Condition size for `build_region` is too high. [<6, 17, 7> 19.34/17]", 344809006], - [274, 9, 965, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `build_region` is too high. [8/7]", 344809006], - [274, 9, 965, "Metrics/MethodLength: Method has too many lines. [24/10]", 344809006] - ], - "lib/ast/merge/comment/block.rb:3806757604": [ - [31, 7, 6754, "Metrics/ClassLength: Class has too many lines. [106/100]", 2308582303], - [57, 9, 1059, "Metrics/AbcSize: Assignment Branch Condition size for `initialize` is too high. [<12, 13, 14> 22.56/17]", 2656171724], - [57, 9, 1059, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `initialize` is too high. [14/7]", 2656171724], - [57, 9, 1059, "Metrics/MethodLength: Method has too many lines. [21/10]", 2656171724], - [57, 9, 1059, "Metrics/PerceivedComplexity: Perceived complexity for `initialize` is too high. [15/8]", 2656171724], - [113, 9, 511, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `freeze_action` is too high. [9/7]", 55014877], - [113, 9, 511, "Metrics/MethodLength: Method has too many lines. [12/10]", 55014877], - [113, 9, 511, "Metrics/PerceivedComplexity: Perceived complexity for `freeze_action` is too high. [9/8]", 55014877], - [181, 9, 439, "Metrics/AbcSize: Assignment Branch Condition size for `first_meaningful_content` is too high. [<2, 16, 11> 19.52/17]", 680479883], - [181, 9, 439, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `first_meaningful_content` is too high. [11/7]", 680479883], - [181, 9, 439, "Metrics/PerceivedComplexity: Perceived complexity for `first_meaningful_content` is too high. [12/8]", 680479883], - [197, 9, 765, "Metrics/AbcSize: Assignment Branch Condition size for `extract_block_content` is too high. [<7, 24, 9> 26.57/17]", 621871624], - [197, 9, 765, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `extract_block_content` is too high. [9/7]", 621871624], - [197, 9, 765, "Metrics/PerceivedComplexity: Perceived complexity for `extract_block_content` is too high. [9/8]", 621871624] - ], - "lib/ast/merge/comment/c_style_tracker_base.rb:1569556520": [ - [22, 7, 15053, "Metrics/ClassLength: Class has too many lines. [284/100]", 3599183270], - [83, 9, 509, "Metrics/MethodLength: Method has too many lines. [11/10]", 1639553915], - [102, 9, 492, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `leading_comments_before` is too high. [8/7]", 3127043491], - [102, 9, 492, "Metrics/MethodLength: Method has too many lines. [11/10]", 3127043491], - [124, 9, 487, "Metrics/MethodLength: Method has too many lines. [11/10]", 1869933531], - [176, 9, 713, "Metrics/AbcSize: Assignment Branch Condition size for `trailing_comments_after` is too high. [<6, 12, 13> 18.68/17]", 543703521], - [176, 9, 713, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `trailing_comments_after` is too high. [11/7]", 543703521], - [176, 9, 713, "Metrics/MethodLength: Method has too many lines. [14/10]", 543703521], - [176, 9, 713, "Metrics/PerceivedComplexity: Perceived complexity for `trailing_comments_after` is too high. [11/8]", 543703521], - [184, 121, 1, "Layout/LineLength: Line is too long. [121/120]", 177549], - [202, 9, 598, "Metrics/MethodLength: Method has too many lines. [12/10]", 1628921093], - [222, 9, 1271, "Metrics/MethodLength: Method has too many lines. [21/10]", 612335469], - [222, 35, 137, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 1823300034], - [329, 35, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], - [348, 9, 2271, "Metrics/AbcSize: Assignment Branch Condition size for `extract_comments` is too high. [<17, 32, 13> 38.5/17]", 2751274968], - [348, 9, 2271, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `extract_comments` is too high. [14/7]", 2751274968], - [348, 9, 2271, "Metrics/MethodLength: Method has too many lines. [59/10]", 2751274968], - [348, 9, 2271, "Metrics/PerceivedComplexity: Perceived complexity for `extract_comments` is too high. [14/8]", 2751274968], - [353, 11, 2045, "Metrics/BlockLength: Block has too many lines. [52/25]", 575665179], - [418, 9, 659, "Metrics/MethodLength: Method has too many lines. [15/10]", 177254901], - [439, 71, 4, "Lint/UnusedMethodArgument: Unused method argument - `line`.", 2087656651], - [439, 78, 8, "Lint/UnusedMethodArgument: Unused method argument - `line_num`.", 622661090] - ], - "lib/ast/merge/comment/hash_tracker_base.rb:861186417": [ - [32, 7, 19362, "Metrics/ClassLength: Class has too many lines. [221/100]", 1031055222], - [118, 9, 444, "Metrics/MethodLength: Method has too many lines. [11/10]", 3347260807], - [142, 9, 921, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `leading_comments_before` is too high. [8/7]", 415734636], - [142, 9, 921, "Metrics/MethodLength: Method has too many lines. [11/10]", 415734636], - [172, 9, 440, "Metrics/MethodLength: Method has too many lines. [11/10]", 2464474004], - [225, 9, 623, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `trailing_comments_after` is too high. [10/7]", 543703521], - [225, 9, 623, "Metrics/MethodLength: Method has too many lines. [12/10]", 543703521], - [225, 9, 623, "Metrics/PerceivedComplexity: Perceived complexity for `trailing_comments_after` is too high. [10/8]", 543703521], - [249, 9, 551, "Metrics/MethodLength: Method has too many lines. [12/10]", 2783654570], - [278, 9, 1271, "Metrics/MethodLength: Method has too many lines. [21/10]", 612335469], - [278, 35, 137, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 1823300034], - [374, 35, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], - [439, 9, 826, "Metrics/MethodLength: Method has too many lines. [12/10]", 1706632542] - ], - "lib/ast/merge/comment/parser.rb:2674748021": [ - [34, 7, 8372, "Metrics/ClassLength: Class has too many lines. [141/100]", 2541983664], - [84, 9, 357, "Metrics/MethodLength: Method has too many lines. [12/10]", 2265493710], - [104, 9, 545, "Metrics/AbcSize: Assignment Branch Condition size for `auto_detect_style` is too high. [<5, 17, 7> 19.05/17]", 868366444], - [104, 9, 545, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `auto_detect_style` is too high. [8/7]", 868366444], - [125, 9, 1650, "Metrics/AbcSize: Assignment Branch Condition size for `parse_line_comments` is too high. [<8, 28, 7> 29.95/17]", 1511562163], - [125, 9, 1650, "Metrics/MethodLength: Method has too many lines. [31/10]", 1511562163], - [176, 9, 2670, "Metrics/AbcSize: Assignment Branch Condition size for `parse_with_block_comments` is too high. [<15, 47, 15> 51.57/17]", 2963765048], - [176, 9, 2670, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `parse_with_block_comments` is too high. [15/7]", 2963765048], - [176, 9, 2670, "Metrics/MethodLength: Method has too many lines. [47/10]", 2963765048], - [176, 9, 2670, "Metrics/PerceivedComplexity: Perceived complexity for `parse_with_block_comments` is too high. [16/8]", 2963765048], - [181, 11, 2390, "Metrics/BlockLength: Block has too many lines. [40/25]", 3720582340] - ], - "lib/ast/merge/comment/quoted_hash_line_parser.rb:2878420841": [ - [74, 9, 458, "Metrics/MethodLength: Method has too many lines. [11/10]", 1526360697], - [91, 9, 620, "Metrics/AbcSize: Assignment Branch Condition size for `inline_result` is too high. [<3, 16, 6> 17.35/17]", 2706755447], - [91, 9, 620, "Metrics/MethodLength: Method has too many lines. [14/10]", 2706755447] - ], - "lib/ast/merge/comment/region_merge_policy.rb:176745155": [ - [23, 23, 98, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 1029631546], - [55, 9, 423, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `freeze_sensitive?` is too high. [8/7]", 4102661282], - [61, 41, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], - [61, 85, 2, "Lint/SafeNavigationConsistency: Use `.` instead of unnecessary `&.`.", 5858765], - [96, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 3491399903] - ], - "lib/ast/merge/comment/style.rb:3045051983": [ - [27, 7, 9109, "Metrics/ClassLength: Class has too many lines. [143/100]", 131723516], - [142, 11, 911, "Metrics/MethodLength: Method has too many lines. [17/10]", 355862493], - [142, 23, 164, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [8/5]", 668558018], - [203, 23, 164, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [8/5]", 668558018] - ], - "lib/ast/merge/comment/tracked_hash_adapter.rb:3235547929": [ - [99, 11, 553, "Metrics/AbcSize: Assignment Branch Condition size for `line_text_from` is too high. [<4, 20, 4> 20.78/17]", 2680273536], - [99, 11, 553, "Metrics/MethodLength: Method has too many lines. [13/10]", 2680273536] - ], - "lib/ast/merge/comment_layout_emission_support.rb:3192614990": [ - [12, 5, 14039, "Metrics/ModuleLength: Module has too many lines. [287/100]", 2115648988], - [18, 40, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], - [29, 40, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], - [88, 43, 149, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 1025246092], - [100, 7, 916, "Metrics/MethodLength: Method has too many lines. [11/10]", 3294772058], - [100, 57, 163, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 1661656204], - [122, 7, 730, "Metrics/MethodLength: Method has too many lines. [13/10]", 2493279555], - [139, 62, 6, "Lint/UnusedMethodArgument: Unused method argument - `owners`.", 1719502071], - [193, 7, 477, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `retained_owner_leading_gap_for` is too high. [8/7]", 974771614], - [193, 7, 477, "Metrics/PerceivedComplexity: Perceived complexity for `retained_owner_leading_gap_for` is too high. [9/8]", 974771614], - [194, 40, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], - [220, 23, 24, "Style/SafeNavigation: Use safe navigation (`&.`) instead of checking if an object exists before calling the method.", 1487466207], - [243, 7, 1015, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `root_boundary_lines_for` is too high. [11/7]", 2612519600], - [243, 7, 1015, "Metrics/MethodLength: Method has too many lines. [13/10]", 2612519600], - [243, 7, 1015, "Metrics/PerceivedComplexity: Perceived complexity for `root_boundary_lines_for` is too high. [11/8]", 2612519600], - [247, 34, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], - [271, 7, 959, "Metrics/AbcSize: Assignment Branch Condition size for `owner_bound_root_boundary_lines_for` is too high. [<8, 22, 17> 28.93/17]", 238225688], - [271, 7, 959, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `owner_bound_root_boundary_lines_for` is too high. [16/7]", 238225688], - [271, 7, 959, "Metrics/MethodLength: Method has too many lines. [17/10]", 238225688], - [271, 7, 959, "Metrics/PerceivedComplexity: Perceived complexity for `owner_bound_root_boundary_lines_for` is too high. [15/8]", 238225688], - [307, 7, 912, "Metrics/AbcSize: Assignment Branch Condition size for `root_boundary_range` is too high. [<6, 22, 12> 25.77/17]", 2821370782], - [307, 7, 912, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `root_boundary_range` is too high. [11/7]", 2821370782], - [307, 7, 912, "Metrics/MethodLength: Method has too many lines. [21/10]", 2821370782], - [307, 7, 912, "Metrics/PerceivedComplexity: Perceived complexity for `root_boundary_range` is too high. [12/8]", 2821370782], - [350, 7, 401, "Metrics/MethodLength: Method has too many lines. [11/10]", 559624650] - ], - "lib/ast/merge/composite_match_refiner.rb:1718969703": [ - [58, 7, 668, "Metrics/MethodLength: Method has too many lines. [14/10]", 2649148714] - ], - "lib/ast/merge/conflict_resolver_base.rb:765343263": [ - [69, 5, 14959, "Metrics/ClassLength: Class has too many lines. [170/100]", 633092728], - [156, 7, 919, "Metrics/MethodLength: Method has too many lines. [13/10]", 1701319380], - [156, 21, 200, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [9/5]", 3369976202], - [367, 7, 972, "Metrics/MethodLength: Method has too many lines. [22/10]", 2870739148], - [434, 47, 13, "Style/NumericPredicate: Use `recursive.positive?` instead of `recursive > 0`.", 462999281], - [436, 99, 14, "Style/NumericPredicate: Use `recursive.zero?` instead of `recursive == 0`.", 2394069519] - ], - "lib/ast/merge/content_match_refiner.rb:3628272158": [ - [47, 5, 7719, "Metrics/ClassLength: Class has too many lines. [108/100]", 651494487], - [87, 7, 750, "Metrics/MethodLength: Method has too many lines. [17/10]", 3624290009], - [165, 37, 48, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 953994744], - [232, 7, 846, "Metrics/AbcSize: Assignment Branch Condition size for `levenshtein_distance` is too high. [<13, 29, 8> 32.77/17]", 3597737347], - [232, 7, 846, "Metrics/MethodLength: Method has too many lines. [20/10]", 3597737347] - ], - "lib/ast/merge/debug_logger.rb:1783610128": [ - [72, 5, 7614, "Metrics/ModuleLength: Module has too many lines. [118/100]", 736598454], - [85, 121, 7, "Layout/LineLength: Line is too long. [127/120]", 941621], - [206, 7, 584, "Metrics/AbcSize: Assignment Branch Condition size for `time` is too high. [<3, 17, 2> 17.38/17]", 3468868523], - [206, 7, 584, "Metrics/MethodLength: Method has too many lines. [14/10]", 3468868523], - [269, 7, 450, "Metrics/PerceivedComplexity: Perceived complexity for `extract_lines` is too high. [9/8]", 680738666], - [287, 7, 11, "Style/ModuleFunction: Use `module_function` instead of `extend self`.", 1210897631] - ], - "lib/ast/merge/detector/base.rb:343830240": [ - [175, 25, 73, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 2991095115] - ], - "lib/ast/merge/detector/fenced_code_block.rb:3555142063": [ - [36, 7, 6302, "Metrics/ClassLength: Class has too many lines. [116/100]", 852968953], - [71, 9, 2492, "Metrics/AbcSize: Assignment Branch Condition size for `detect_all` is too high. [<31, 28, 12> 43.46/17]", 3575218793], - [71, 9, 2492, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `detect_all` is too high. [11/7]", 3575218793], - [71, 9, 2492, "Metrics/MethodLength: Method has too many lines. [54/10]", 3575218793], - [71, 9, 2492, "Metrics/PerceivedComplexity: Perceived complexity for `detect_all` is too high. [13/8]", 3575218793], - [84, 11, 2060, "Metrics/BlockLength: Block has too many lines. [41/25]", 1744553779] - ], - "lib/ast/merge/detector/mergeable.rb:354817747": [ - [54, 7, 11933, "Metrics/ModuleLength: Module has too many lines. [140/100]", 1453034870], - [162, 9, 601, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `build_region_configs` is too high. [8/7]", 1278024890], - [162, 9, 601, "Metrics/MethodLength: Method has too many lines. [16/10]", 1278024890], - [189, 9, 1054, "Metrics/AbcSize: Assignment Branch Condition size for `extract_regions` is too high. [<11, 16, 3> 19.65/17]", 663241096], - [189, 9, 1054, "Metrics/MethodLength: Method has too many lines. [20/10]", 663241096], - [285, 9, 1005, "Metrics/AbcSize: Assignment Branch Condition size for `merge_and_substitute_regions` is too high. [<16, 19, 4> 25.16/17]", 4123525156], - [285, 9, 1005, "Metrics/MethodLength: Method has too many lines. [16/10]", 4123525156], - [318, 9, 1369, "Metrics/AbcSize: Assignment Branch Condition size for `merge_region` is too high. [<11, 20, 14> 26.78/17]", 746321843], - [318, 9, 1369, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `merge_region` is too high. [15/7]", 746321843], - [318, 9, 1369, "Metrics/MethodLength: Method has too many lines. [16/10]", 746321843], - [318, 9, 1369, "Metrics/PerceivedComplexity: Perceived complexity for `merge_region` is too high. [15/8]", 746321843] - ], - "lib/ast/merge/detector/toml_frontmatter.rb:3255696517": [ - [50, 9, 892, "Metrics/MethodLength: Method has too many lines. [20/10]", 3132005303] - ], - "lib/ast/merge/detector/yaml_frontmatter.rb:2551474823": [ - [49, 9, 958, "Metrics/MethodLength: Method has too many lines. [20/10]", 3132005303] - ], - "lib/ast/merge/diff_mapper_base.rb:3204989377": [ - [22, 5, 7793, "Metrics/ClassLength: Class has too many lines. [141/100]", 2217731166], - [80, 7, 2598, "Metrics/AbcSize: Assignment Branch Condition size for `parse_diff` is too high. [<21, 31, 15> 40.34/17]", 939898835], - [80, 7, 2598, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `parse_diff` is too high. [16/7]", 939898835], - [80, 7, 2598, "Metrics/MethodLength: Method has too many lines. [65/10]", 939898835], - [80, 7, 2598, "Metrics/PerceivedComplexity: Perceived complexity for `parse_diff` is too high. [12/8]", 939898835], - [90, 9, 2162, "Metrics/BlockLength: Block has too many lines. [50/25]", 3403609416], - [169, 7, 394, "Metrics/MethodLength: Method has too many lines. [11/10]", 2028641628] - ], - "lib/ast/merge/emitter_base.rb:4280054392": [ - [26, 5, 14922, "Metrics/ClassLength: Class has too many lines. [232/100]", 2015391034], - [95, 7, 653, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `emit_comment_region` is too high. [9/7]", 24580929], - [95, 7, 653, "Metrics/MethodLength: Method has too many lines. [12/10]", 24580929], - [95, 7, 653, "Metrics/PerceivedComplexity: Perceived complexity for `emit_comment_region` is too high. [9/8]", 24580929], - [120, 7, 1311, "Metrics/AbcSize: Assignment Branch Condition size for `emit_comment_attachment` is too high. [<5, 25, 16> 30.1/17]", 964928813], - [120, 7, 1311, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `emit_comment_attachment` is too high. [17/7]", 964928813], - [120, 7, 1311, "Metrics/MethodLength: Method has too many lines. [17/10]", 964928813], - [120, 7, 1311, "Metrics/PerceivedComplexity: Perceived complexity for `emit_comment_attachment` is too high. [17/8]", 964928813], - [120, 34, 127, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 628879795], - [152, 7, 984, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `emit_layout_gap` is too high. [8/7]", 1954418889], - [152, 7, 984, "Metrics/MethodLength: Method has too many lines. [13/10]", 1954418889], - [152, 7, 984, "Metrics/PerceivedComplexity: Perceived complexity for `emit_layout_gap` is too high. [9/8]", 1954418889], - [152, 26, 136, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 3839882587], - [183, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5861198], - [184, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2087656651], - [186, 7, 1307, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `emit_layout_attachment` is too high. [9/7]", 708408665], - [186, 7, 1307, "Metrics/MethodLength: Method has too many lines. [26/10]", 708408665], - [186, 7, 1307, "Metrics/PerceivedComplexity: Perceived complexity for `emit_layout_attachment` is too high. [9/8]", 708408665], - [186, 33, 218, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [8/5]", 1552587384], - [187, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 1763090185], - [189, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1371312610], - [271, 31, 17, "Style/NumericPredicate: Use `@indent_level.positive?` instead of `@indent_level > 0`.", 1892475678], - [317, 56, 12, "Lint/UnusedMethodArgument: Unused method argument - `current_line`. You can also write as `inline_comment_region_target_column(*)` if you want the method to accept any arguments but don't care about them.", 2091263933], - [321, 42, 6, "Lint/UnusedMethodArgument: Unused method argument - `region`.", 2124512157], - [321, 51, 13, "Lint/UnusedMethodArgument: Unused method argument - `target_column`.", 3246375805], - [336, 7, 1141, "Metrics/AbcSize: Assignment Branch Condition size for `inline_comment_node_text` is too high. [<6, 29, 8> 30.68/17]", 2583471562], - [336, 7, 1141, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `inline_comment_node_text` is too high. [9/7]", 2583471562], - [336, 7, 1141, "Metrics/MethodLength: Method has too many lines. [22/10]", 2583471562], - [336, 7, 1141, "Metrics/PerceivedComplexity: Perceived complexity for `inline_comment_node_text` is too high. [9/8]", 2583471562], - [354, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5861626], - [365, 7, 510, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `emit_region_gap_lines` is too high. [8/7]", 1999747697], - [365, 7, 510, "Metrics/PerceivedComplexity: Perceived complexity for `emit_region_gap_lines` is too high. [9/8]", 1999747697] - ], - "lib/ast/merge/emitter_line_metadata_support.rb:3153033769": [ - [5, 5, 33, "Style/Documentation: Missing top-level documentation comment for `module Ast::Merge::EmitterLineMetadataSupport`.", 2926748997], - [23, 7, 541, "Metrics/MethodLength: Method has too many lines. [12/10]", 2407359355] - ], - "lib/ast/merge/file_aligner_base.rb:2160333224": [ - [13, 5, 8206, "Metrics/ClassLength: Class has too many lines. [203/100]", 2982381587], - [27, 7, 2329, "Metrics/AbcSize: Assignment Branch Condition size for `align` is too high. [<19, 39, 14> 45.59/17]", 1243937217], - [27, 7, 2329, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `align` is too high. [14/7]", 1243937217], - [27, 7, 2329, "Metrics/MethodLength: Method has too many lines. [56/10]", 1243937217], - [27, 7, 2329, "Metrics/PerceivedComplexity: Perceived complexity for `align` is too high. [14/8]", 1243937217], - [167, 7, 655, "Metrics/MethodLength: Method has too many lines. [14/10]", 2468821688], - [199, 7, 455, "Metrics/MethodLength: Method has too many lines. [13/10]", 2361153066], - [218, 7, 1557, "Metrics/AbcSize: Assignment Branch Condition size for `apply_match_refiner!` is too high. [<10, 28, 12> 32.06/17]", 2386945712], - [218, 7, 1557, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `apply_match_refiner!` is too high. [13/7]", 2386945712], - [218, 7, 1557, "Metrics/MethodLength: Method has too many lines. [31/10]", 2386945712], - [218, 7, 1557, "Metrics/PerceivedComplexity: Perceived complexity for `apply_match_refiner!` is too high. [13/8]", 2386945712] - ], - "lib/ast/merge/file_analyzable.rb:607555963": [ - [36, 5, 31229, "Metrics/ModuleLength: Module has too many lines. [316/100]", 1247752256], - [99, 19, 9, "Style/NumericPredicate: Use `index.negative?` instead of `index < 0`.", 4215255415], - [148, 7, 793, "Metrics/MethodLength: Method has too many lines. [22/10]", 1467470910], - [202, 7, 771, "Metrics/MethodLength: Method has too many lines. [16/10]", 1412317163], - [344, 7, 844, "Metrics/MethodLength: Method has too many lines. [12/10]", 2335919661], - [369, 7, 730, "Metrics/MethodLength: Method has too many lines. [11/10]", 1047958652], - [431, 7, 863, "Metrics/AbcSize: Assignment Branch Condition size for `normalize_layout_owned_comment_attachment` is too high. [<0, 20, 4> 20.4/17]", 3284843691], - [431, 7, 863, "Metrics/MethodLength: Method has too many lines. [17/10]", 3284843691], - [481, 7, 683, "Metrics/MethodLength: Method has too many lines. [15/10]", 241044926], - [520, 14, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], - [614, 7, 6095, "Metrics/AbcSize: Assignment Branch Condition size for `generate_signature` is too high. [<4, 21, 13> 25.02/17]", 2828809875], - [614, 7, 6095, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `generate_signature` is too high. [11/7]", 2828809875], - [614, 7, 6095, "Metrics/MethodLength: Method has too many lines. [30/10]", 2828809875], - [614, 7, 6095, "Metrics/PerceivedComplexity: Perceived complexity for `generate_signature` is too high. [14/8]", 2828809875], - [676, 24, 390, "Metrics/BlockNesting: Avoid more than 3 levels of block nesting.", 3279112483] - ], - "lib/ast/merge/freeze_node_base.rb:2110274026": [ - [59, 5, 14572, "Metrics/ClassLength: Class has too many lines. [171/100]", 3038607603], - [108, 25, 545, "Style/MutableConstant: Freeze mutable objects assigned to constants.", 2366014160], - [186, 9, 1100, "Metrics/MethodLength: Method has too many lines. [15/10]", 2506841532], - [288, 7, 758, "Metrics/MethodLength: Method has too many lines. [11/10]", 136868205], - [288, 21, 276, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [11/5]", 1720059801], - [335, 7, 660, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `reason` is too high. [8/7]", 3127566048], - [418, 20, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765] - ], - "lib/ast/merge/healer.rb:3642412735": [ - [18, 7, 588, "Metrics/MethodLength: Method has too many lines. [15/10]", 3172269921], - [18, 17, 84, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 1781025196], - [41, 7, 687, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `filter_items` is too high. [8/7]", 1200842691], - [41, 7, 687, "Metrics/MethodLength: Method has too many lines. [17/10]", 1200842691], - [41, 7, 687, "Metrics/PerceivedComplexity: Perceived complexity for `filter_items` is too high. [9/8]", 1200842691], - [41, 23, 130, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [8/5]", 33939503] - ], - "lib/ast/merge/jaccard_similarity.rb:678558736": [ - [87, 19, 1, "Naming/MethodParameterName: Method parameter must be at least 3 characters long.", 177604], - [87, 22, 1, "Naming/MethodParameterName: Method parameter must be at least 3 characters long.", 177607] - ], - "lib/ast/merge/key_path_partial_template_merger_base.rb:1818613864": [ - [22, 5, 6114, "Metrics/ClassLength: Class has too many lines. [155/100]", 1269962119], - [43, 21, 214, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [8/5]", 3637591635], - [68, 7, 489, "Metrics/MethodLength: Method has too many lines. [12/10]", 3170411580], - [118, 7, 640, "Metrics/AbcSize: Assignment Branch Condition size for `find_key_path` is too high. [<8, 14, 10> 18.97/17]", 2613403604], - [118, 7, 640, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `find_key_path` is too high. [8/7]", 2613403604], - [118, 7, 640, "Metrics/MethodLength: Method has too many lines. [16/10]", 2613403604], - [118, 7, 640, "Metrics/PerceivedComplexity: Perceived complexity for `find_key_path` is too high. [9/8]", 2613403604], - [140, 7, 536, "Metrics/MethodLength: Method has too many lines. [17/10]", 3598062652], - [168, 7, 804, "Metrics/MethodLength: Method has too many lines. [19/10]", 2773364183] - ], - "lib/ast/merge/layout.rb:3670500101": [ - [23, 36, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765] - ], - "lib/ast/merge/layout/augmenter.rb:3229088287": [ - [8, 7, 5440, "Metrics/ClassLength: Class has too many lines. [128/100]", 2306720287], - [23, 23, 125, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [7/5]", 3395039982], - [55, 9, 1795, "Metrics/AbcSize: Assignment Branch Condition size for `build!` is too high. [<20, 32, 17> 41.39/17]", 3542913254], - [55, 9, 1795, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `build!` is too high. [15/7]", 3542913254], - [55, 9, 1795, "Metrics/MethodLength: Method has too many lines. [43/10]", 3542913254], - [55, 9, 1795, "Metrics/PerceivedComplexity: Perceived complexity for `build!` is too high. [15/8]", 3542913254], - [60, 11, 1227, "Metrics/BlockLength: Block has too many lines. [29/25]", 55360131], - [107, 9, 504, "Metrics/MethodLength: Method has too many lines. [16/10]", 1953725517] - ], - "lib/ast/merge/layout/gap.rb:1678106201": [ - [11, 7, 7558, "Metrics/ClassLength: Class has too many lines. [151/100]", 2254377349], - [23, 9, 655, "Metrics/MethodLength: Method has too many lines. [11/10]", 3584854768], - [23, 23, 146, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [9/5]", 361396001], - [157, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5859545], - [162, 9, 303, "Metrics/MethodLength: Method has too many lines. [12/10]", 2236444774], - [203, 9, 688, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `validate_adjacency!` is too high. [10/7]", 1112786311], - [203, 9, 688, "Metrics/MethodLength: Method has too many lines. [13/10]", 1112786311] - ], - "lib/ast/merge/line_range_support.rb:773479830": [ - [13, 7, 430, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `object_start_line` is too high. [8/7]", 2485070052], - [13, 7, 430, "Metrics/PerceivedComplexity: Perceived complexity for `object_start_line` is too high. [9/8]", 2485070052], - [25, 7, 414, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `object_end_line` is too high. [8/7]", 3545256164], - [25, 7, 414, "Metrics/PerceivedComplexity: Perceived complexity for `object_end_line` is too high. [9/8]", 3545256164] - ], - "lib/ast/merge/match_refiner_base.rb:1760054866": [ - [248, 7, 503, "Metrics/MethodLength: Method has too many lines. [11/10]", 2844230268], - [275, 7, 1056, "Metrics/AbcSize: Assignment Branch Condition size for `greedy_match` is too high. [<9, 24, 8> 26.85/17]", 2497617815], - [275, 7, 1056, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `greedy_match` is too high. [8/7]", 2497617815], - [275, 7, 1056, "Metrics/MethodLength: Method has too many lines. [24/10]", 2497617815] - ], - "lib/ast/merge/merge_result_base.rb:1342312150": [ - [17, 5, 19111, "Metrics/ClassLength: Class has too many lines. [341/100]", 1211564896], - [88, 21, 187, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [7/5]", 1067369198], - [202, 7, 843, "Metrics/AbcSize: Assignment Branch Condition size for `normalize_blank_line_runs!` is too high. [<12, 12, 10> 19.7/17]", 2347011594], - [202, 7, 843, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `normalize_blank_line_runs!` is too high. [9/7]", 2347011594], - [202, 7, 843, "Metrics/MethodLength: Method has too many lines. [22/10]", 2347011594], - [202, 7, 843, "Metrics/PerceivedComplexity: Perceived complexity for `normalize_blank_line_runs!` is too high. [10/8]", 2347011594], - [242, 7, 1004, "Metrics/MethodLength: Method has too many lines. [21/10]", 59539336], - [242, 35, 211, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [8/5]", 709487711], - [281, 7, 602, "Metrics/MethodLength: Method has too many lines. [13/10]", 320027623], - [356, 7, 927, "Metrics/AbcSize: Assignment Branch Condition size for `validate_review_state_compatibility!` is too high. [<8, 15, 4> 17.46/17]", 1596840080], - [356, 7, 927, "Metrics/MethodLength: Method has too many lines. [16/10]", 1596840080], - [418, 7, 936, "Metrics/AbcSize: Assignment Branch Condition size for `review_state_metadata` is too high. [<7, 18, 4> 19.72/17]", 4128292066], - [418, 7, 936, "Metrics/MethodLength: Method has too many lines. [14/10]", 4128292066], - [428, 121, 11, "Layout/LineLength: Line is too long. [131/120]", 20421901], - [453, 7, 1194, "Metrics/MethodLength: Method has too many lines. [21/10]", 4289697646], - [463, 121, 56, "Layout/LineLength: Line is too long. [176/120]", 3342583337] - ], - "lib/ast/merge/merger_config.rb:3582657829": [ - [46, 5, 10581, "Metrics/ClassLength: Class has too many lines. [148/100]", 1598770872], - [96, 21, 234, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [7/5]", 720509970] - ], - "lib/ast/merge/navigable/injection_point_finder.rb:4117743218": [ - [45, 9, 1707, "Metrics/AbcSize: Assignment Branch Condition size for `find` is too high. [<9, 18, 17> 26.34/17]", 1445381162], - [45, 9, 1707, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `find` is too high. [15/7]", 1445381162], - [45, 9, 1707, "Metrics/MethodLength: Method has too many lines. [28/10]", 1445381162], - [45, 9, 1707, "Metrics/PerceivedComplexity: Perceived complexity for `find` is too high. [16/8]", 1445381162], - [45, 17, 156, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [7/5]", 3876813166] - ], - "lib/ast/merge/navigable/statement.rb:3050515622": [ - [42, 7, 11078, "Metrics/ClassLength: Class has too many lines. [179/100]", 2550894515], - [96, 11, 550, "Metrics/AbcSize: Assignment Branch Condition size for `find_matching` is too high. [<7, 16, 12> 21.19/17]", 3492534565], - [96, 11, 550, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `find_matching` is too high. [12/7]", 3492534565], - [96, 11, 550, "Metrics/PerceivedComplexity: Perceived complexity for `find_matching` is too high. [12/8]", 3492534565], - [222, 13, 20, "Naming/PredicatePrefix: Rename `has_tree_navigation?` to `tree_navigation?`.", 733442156] - ], - "lib/ast/merge/node_typing.rb:4008165135": [ - [175, 9, 694, "Metrics/MethodLength: Method has too many lines. [12/10]", 777909930], - [213, 9, 891, "Metrics/AbcSize: Assignment Branch Condition size for `find_typing_callable` is too high. [<3, 23, 13> 26.59/17]", 3835052858], - [213, 9, 891, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `find_typing_callable` is too high. [14/7]", 3835052858], - [213, 9, 891, "Metrics/PerceivedComplexity: Perceived complexity for `find_typing_callable` is too high. [14/8]", 3835052858] - ], - "lib/ast/merge/node_wrapper_base.rb:3796877358": [ - [62, 5, 10228, "Metrics/ClassLength: Class has too many lines. [135/100]", 3832956007], - [92, 21, 81, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 4261369704] - ], - "lib/ast/merge/owner_selection.rb:2568070127": [ - [9, 7, 757, "Metrics/MethodLength: Method has too many lines. [13/10]", 2069564552] - ], - "lib/ast/merge/partial_template_merger_base.rb:2252899061": [ - [27, 5, 16780, "Metrics/ClassLength: Class has too many lines. [266/100]", 2205844189], - [48, 23, 81, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 2112244807], - [106, 7, 757, "Metrics/MethodLength: Method has too many lines. [11/10]", 571708764], - [106, 21, 293, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [11/5]", 871709580], - [135, 7, 788, "Metrics/AbcSize: Assignment Branch Condition size for `merge` is too high. [<4, 19, 5> 20.05/17]", 467674580], - [135, 7, 788, "Metrics/MethodLength: Method has too many lines. [13/10]", 467674580], - [213, 7, 533, "Metrics/AbcSize: Assignment Branch Condition size for `normalize_matcher` is too high. [<7, 20, 6> 22.02/17]", 1798972396], - [238, 7, 922, "Metrics/MethodLength: Method has too many lines. [25/10]", 1846154069], - [242, 25, 37, "Style/StringConcatenation: Prefer string interpolation to string concatenation.", 939456830], - [251, 25, 31, "Style/StringConcatenation: Prefer string interpolation to string concatenation.", 1024894473], - [268, 7, 1905, "Metrics/AbcSize: Assignment Branch Condition size for `perform_section_merge` is too high. [<13, 15, 2> 19.95/17]", 2711014340], - [268, 7, 1905, "Metrics/MethodLength: Method has too many lines. [34/10]", 2711014340], - [316, 50, 15, "Lint/UnusedMethodArgument: Unused method argument - `section_context`.", 2872123372], - [334, 7, 690, "Metrics/MethodLength: Method has too many lines. [14/10]", 1807124523], - [367, 7, 1122, "Metrics/AbcSize: Assignment Branch Condition size for `build_merged_content` is too high. [<1, 29, 14> 32.22/17]", 3938410418], - [367, 7, 1122, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `build_merged_content` is too high. [15/7]", 3938410418], - [367, 7, 1122, "Metrics/MethodLength: Method has too many lines. [18/10]", 3938410418], - [367, 7, 1122, "Metrics/PerceivedComplexity: Perceived complexity for `build_merged_content` is too high. [15/8]", 3938410418], - [397, 7, 596, "Metrics/MethodLength: Method has too many lines. [12/10]", 2602121883], - [397, 32, 144, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [7/5]", 1463491208], - [414, 7, 1589, "Metrics/AbcSize: Assignment Branch Condition size for `source_splice_plan_for` is too high. [<6, 18, 9> 21/17]", 2889667289], - [414, 7, 1589, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `source_splice_plan_for` is too high. [9/7]", 2889667289], - [414, 7, 1589, "Metrics/MethodLength: Method has too many lines. [30/10]", 2889667289], - [414, 7, 1589, "Metrics/PerceivedComplexity: Perceived complexity for `source_splice_plan_for` is too high. [9/8]", 2889667289] - ], - "lib/ast/merge/recipe/config.rb:3990762705": [ - [54, 7, 14970, "Metrics/ClassLength: Class has too many lines. [296/100]", 2492031021], - [142, 9, 673, "Metrics/MethodLength: Method has too many lines. [12/10]", 3011978845], - [170, 9, 484, "Metrics/MethodLength: Method has too many lines. [15/10]", 183356432], - [246, 9, 710, "Metrics/AbcSize: Assignment Branch Condition size for `parse_injection` is too high. [<8, 13, 8> 17.23/17]", 641239814], - [246, 9, 710, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `parse_injection` is too high. [9/7]", 641239814], - [246, 9, 710, "Metrics/MethodLength: Method has too many lines. [16/10]", 641239814], - [246, 9, 710, "Metrics/PerceivedComplexity: Perceived complexity for `parse_injection` is too high. [9/8]", 641239814], - [278, 9, 871, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `parse_step` is too high. [8/7]", 3989307721], - [278, 9, 871, "Metrics/MethodLength: Method has too many lines. [20/10]", 3989307721], - [338, 9, 1758, "Metrics/AbcSize: Assignment Branch Condition size for `parse_step_merge_overrides` is too high. [<11, 43, 25> 50.94/17]", 806370438], - [338, 9, 1758, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `parse_step_merge_overrides` is too high. [22/7]", 806370438], - [338, 9, 1758, "Metrics/MethodLength: Method has too many lines. [30/10]", 806370438], - [338, 9, 1758, "Metrics/PerceivedComplexity: Perceived complexity for `parse_step_merge_overrides` is too high. [22/8]", 806370438], - [373, 9, 566, "Metrics/MethodLength: Method has too many lines. [14/10]", 3671206955], - [391, 9, 547, "Metrics/MethodLength: Method has too many lines. [16/10]", 3273587697], - [459, 9, 799, "Metrics/AbcSize: Assignment Branch Condition size for `validate_injection!` is too high. [<2, 15, 12> 19.31/17]", 1665903587], - [459, 9, 799, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `validate_injection!` is too high. [13/7]", 1665903587], - [459, 9, 799, "Metrics/MethodLength: Method has too many lines. [11/10]", 1665903587], - [459, 9, 799, "Metrics/PerceivedComplexity: Perceived complexity for `validate_injection!` is too high. [13/8]", 1665903587] - ], - "lib/ast/merge/recipe/preset.rb:2311326866": [ - [195, 9, 662, "Metrics/MethodLength: Method has too many lines. [12/10]", 1640897447] - ], - "lib/ast/merge/recipe/runner.rb:2243867806": [ - [27, 7, 28612, "Metrics/ClassLength: Class has too many lines. [547/100]", 79000832], - [73, 121, 28, "Layout/LineLength: Line is too long. [148/120]", 1411864995], - [77, 23, 136, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [8/5]", 1636278032], - [92, 9, 849, "Metrics/MethodLength: Method has too many lines. [14/10]", 3083064345], - [128, 24, 129, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 2642826282], - [210, 9, 788, "Metrics/MethodLength: Method has too many lines. [23/10]", 743008161], - [241, 9, 3397, "Metrics/AbcSize: Assignment Branch Condition size for `create_partial_template_merger` is too high. [<3, 52, 16> 54.49/17]", 2086180075], - [241, 9, 3397, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `create_partial_template_merger` is too high. [14/7]", 2086180075], - [241, 9, 3397, "Metrics/MethodLength: Method has too many lines. [63/10]", 2086180075], - [241, 9, 3397, "Metrics/PerceivedComplexity: Perceived complexity for `create_partial_template_merger` is too high. [13/8]", 2086180075], - [250, 121, 11, "Layout/LineLength: Line is too long. [131/120]", 2857356312], - [274, 121, 1, "Layout/LineLength: Line is too long. [121/120]", 177538], - [312, 9, 2210, "Metrics/AbcSize: Assignment Branch Condition size for `create_smart_merger` is too high. [<1, 39, 7> 39.64/17]", 1694660188], - [312, 9, 2210, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `create_smart_merger` is too high. [8/7]", 1694660188], - [312, 9, 2210, "Metrics/MethodLength: Method has too many lines. [45/10]", 1694660188], - [357, 121, 5, "Layout/LineLength: Line is too long. [125/120]", 195423462], - [370, 9, 1087, "Metrics/MethodLength: Method has too many lines. [24/10]", 3850049530], - [370, 31, 124, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 3466458723], - [401, 9, 1008, "Metrics/MethodLength: Method has too many lines. [19/10]", 2010895303], - [401, 25, 143, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [8/5]", 2360959504], - [424, 9, 1263, "Metrics/AbcSize: Assignment Branch Condition size for `execute_partial_merge_step` is too high. [<3, 22, 1> 22.23/17]", 2850918453], - [424, 9, 1263, "Metrics/MethodLength: Method has too many lines. [25/10]", 2850918453], - [453, 9, 835, "Metrics/MethodLength: Method has too many lines. [14/10]", 1478843287], - [471, 9, 808, "Metrics/MethodLength: Method has too many lines. [15/10]", 1127254660], - [471, 37, 155, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [8/5]", 838578768], - [491, 9, 1126, "Metrics/AbcSize: Assignment Branch Condition size for `normalize_smart_merge_result` is too high. [<8, 17, 12> 22.29/17]", 1786697339], - [491, 9, 1126, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `normalize_smart_merge_result` is too high. [9/7]", 1786697339], - [491, 9, 1126, "Metrics/MethodLength: Method has too many lines. [23/10]", 1786697339], - [491, 9, 1126, "Metrics/PerceivedComplexity: Perceived complexity for `normalize_smart_merge_result` is too high. [11/8]", 1786697339], - [518, 9, 2523, "Metrics/AbcSize: Assignment Branch Condition size for `normalize_script_step_result` is too high. [<5, 40, 32> 51.47/17]", 2162420067], - [518, 9, 2523, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `normalize_script_step_result` is too high. [26/7]", 2162420067], - [518, 9, 2523, "Metrics/MethodLength: Method has too many lines. [48/10]", 2162420067], - [518, 9, 2523, "Metrics/PerceivedComplexity: Perceived complexity for `normalize_script_step_result` is too high. [29/8]", 2162420067], - [547, 121, 18, "Layout/LineLength: Line is too long. [138/120]", 93872446], - [556, 121, 56, "Layout/LineLength: Line is too long. [176/120]", 1527250939], - [586, 11, 155, "Style/HashTransformKeys: Prefer `transform_keys` over `each_with_object`.", 837503672], - [591, 9, 698, "Metrics/MethodLength: Method has too many lines. [11/10]", 1116310304], - [635, 9, 2582, "Metrics/AbcSize: Assignment Branch Condition size for `create_result_from_steps` is too high. [<8, 30, 31> 43.87/17]", 2040042265], - [635, 9, 2582, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `create_result_from_steps` is too high. [23/7]", 2040042265], - [635, 9, 2582, "Metrics/MethodLength: Method has too many lines. [60/10]", 2040042265], - [635, 9, 2582, "Metrics/PerceivedComplexity: Perceived complexity for `create_result_from_steps` is too high. [27/8]", 2040042265], - [635, 37, 133, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 789257106], - [649, 42, 40, "Style/SymbolProc: Pass `&:has_anchor` as an argument to `any?` instead of a block.", 4233626321] - ], - "lib/ast/merge/recipe/script_loader.rb:1397873218": [ - [145, 9, 1126, "Metrics/AbcSize: Assignment Branch Condition size for `load_script_file` is too high. [<6, 19, 4> 20.32/17]", 3417625171], - [145, 9, 1126, "Metrics/MethodLength: Method has too many lines. [17/10]", 3417625171] - ], - "lib/ast/merge/rspec/comment_behavior_matrix_adapters.rb:3429217018": [ - [9, 46, 341, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [9/5]", 532439002], - [31, 9, 901, "Metrics/MethodLength: Method has too many lines. [11/10]", 584608092], - [31, 59, 308, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [8/5]", 883491898], - [54, 9, 1269, "Metrics/MethodLength: Method has too many lines. [20/10]", 1021031182], - [65, 51, 6, "Lint/UnusedBlockArgument: Unused block argument - `inline`. If it's necessary, use `_` or `_inline` as an argument name to indicate that it won't be used.", 1605470060], - [69, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 4226982364], - [70, 121, 11, "Layout/LineLength: Line is too long. [131/120]", 1440420861] - ], - "lib/ast/merge/rspec/conformance_fixtures.rb:1295759615": [ - [6, 7, 26, "Style/Documentation: Missing top-level documentation comment for `module Ast::Merge::RSpec::ConformanceFixtures`.", 90066768], - [9, 9, 1432, "Metrics/AbcSize: Assignment Branch Condition size for `normalize_conformance_fixture_support` is too high. [<10, 30, 33> 45.71/17]", 518714108], - [9, 9, 1432, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `normalize_conformance_fixture_support` is too high. [33/7]", 518714108], - [9, 9, 1432, "Metrics/MethodLength: Method has too many lines. [25/10]", 518714108], - [9, 9, 1432, "Metrics/PerceivedComplexity: Perceived complexity for `normalize_conformance_fixture_support` is too high. [31/8]", 518714108] - ], - "lib/ast/merge/rspec/dependency_tags_config.rb:3604516304": [ - [30, 1, 2102, "Metrics/BlockLength: Block has too many lines. [26/25]", 113766065] - ], - "lib/ast/merge/rspec/merge_gem_registry.rb:3009576030": [ - [58, 7, 12129, "Metrics/ModuleLength: Module has too many lines. [158/100]", 335549747], - [90, 9, 780, "Metrics/MethodLength: Method has too many lines. [14/10]", 978965737], - [90, 21, 99, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 3580433546], - [118, 9, 650, "Metrics/MethodLength: Method has too many lines. [12/10]", 3143160805], - [118, 31, 130, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 2575863904], - [143, 9, 823, "Metrics/MethodLength: Method has too many lines. [17/10]", 4033116153], - [200, 9, 765, "Metrics/AbcSize: Assignment Branch Condition size for `register_known_gems` is too high. [<3, 17, 3> 17.52/17]", 1367620151], - [200, 9, 765, "Metrics/MethodLength: Method has too many lines. [17/10]", 1367620151] - ], - "lib/ast/merge/rspec/shared_examples.rb:151517887": [ - [27, 121, 3, "Layout/LineLength: Line is too long. [123/120]", 193426019], - [31, 121, 7, "Layout/LineLength: Line is too long. [127/120]", 330577472] - ], - "lib/ast/merge/rspec/shared_examples/comment_behavior_matrix.rb:3695671858": [ - [36, 1, 27847, "Metrics/BlockLength: Block has too many lines. [540/25]", 3796645407], - [38, 55, 15, "Style/SymbolProc: Pass `&:value` as an argument to `lambda` instead of a block.", 1808354951], - [42, 64, 23, "Style/SymbolProc: Pass `&:statements` as an argument to `lambda` instead of a block.", 277221641], - [69, 3, 4455, "Metrics/BlockLength: Block has too many lines. [82/25]", 3672334777], - [72, 5, 1763, "Metrics/BlockLength: Block has too many lines. [34/25]", 164750821], - [165, 3, 22093, "Metrics/BlockLength: Block has too many lines. [429/25]", 229312375], - [292, 5, 1918, "Metrics/BlockLength: Block has too many lines. [29/25]", 1312741055], - [323, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1902517440], - [325, 121, 5, "Layout/LineLength: Line is too long. [125/120]", 173482512], - [328, 121, 5, "Layout/LineLength: Line is too long. [125/120]", 167607404], - [476, 5, 1605, "Metrics/BlockLength: Block has too many lines. [35/25]", 1943633697], - [677, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1902517440] - ], - "lib/ast/merge/rspec/shared_examples/conflict_resolver_base.rb:624045197": [ - [30, 1, 7893, "Metrics/BlockLength: Block has too many lines. [197/25]", 3450672926], - [37, 3, 1372, "Metrics/BlockLength: Block has too many lines. [33/25]", 3389152504], - [83, 3, 1206, "Metrics/BlockLength: Block has too many lines. [35/25]", 1580202348], - [128, 3, 1177, "Metrics/BlockLength: Block has too many lines. [33/25]", 2178974049], - [215, 3, 2443, "Metrics/BlockLength: Block has too many lines. [51/25]", 2538475273], - [219, 5, 1909, "Metrics/BlockLength: Block has too many lines. [35/25]", 880175101], - [279, 1, 2518, "Metrics/BlockLength: Block has too many lines. [74/25]", 958151448], - [286, 3, 2235, "Metrics/BlockLength: Block has too many lines. [70/25]", 2123260684], - [391, 1, 1317, "Metrics/BlockLength: Block has too many lines. [37/25]", 2321517041], - [439, 1, 1639, "Metrics/BlockLength: Block has too many lines. [37/25]", 276150366] - ], - "lib/ast/merge/rspec/shared_examples/debug_logger.rb:2747003588": [ - [23, 1, 4741, "Metrics/BlockLength: Block has too many lines. [121/25]", 3341338388], - [47, 3, 976, "Metrics/BlockLength: Block has too many lines. [27/25]", 2640321404], - [85, 3, 1452, "Metrics/BlockLength: Block has too many lines. [34/25]", 554663062] - ], - "lib/ast/merge/rspec/shared_examples/feature_profile.rb:4172143324": [ - [30, 1, 4249, "Metrics/BlockLength: Block has too many lines. [53/25]", 3787230403] - ], - "lib/ast/merge/rspec/shared_examples/file_analyzable.rb:2391547213": [ - [44, 1, 6468, "Metrics/BlockLength: Block has too many lines. [145/25]", 3744642916] - ], - "lib/ast/merge/rspec/shared_examples/freeze_node_base.rb:1711126715": [ - [23, 1, 5952, "Metrics/BlockLength: Block has too many lines. [157/25]", 3152271039], - [29, 3, 2836, "Metrics/BlockLength: Block has too many lines. [69/25]", 2082270913], - [115, 3, 1552, "Metrics/BlockLength: Block has too many lines. [46/25]", 4180117745] - ], - "lib/ast/merge/rspec/shared_examples/layout_attachment.rb:4130619694": [ - [30, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 1263574869], - [31, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 4282300883] - ], - "lib/ast/merge/rspec/shared_examples/layout_augmenter.rb:1928277603": [ - [18, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1311107624], - [19, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1311107624] - ], - "lib/ast/merge/rspec/shared_examples/merge_result_base.rb:2962043558": [ - [18, 1, 2330, "Metrics/BlockLength: Block has too many lines. [67/25]", 3496673178], - [53, 3, 1271, "Metrics/BlockLength: Block has too many lines. [42/25]", 2278976858] - ], - "lib/ast/merge/rspec/shared_examples/merger_config.rb:2413785902": [ - [18, 1, 8240, "Metrics/BlockLength: Block has too many lines. [193/25]", 3665443345], - [57, 3, 1628, "Metrics/BlockLength: Block has too many lines. [32/25]", 7828299], - [98, 3, 1266, "Metrics/BlockLength: Block has too many lines. [28/25]", 317929439], - [159, 3, 1740, "Metrics/BlockLength: Block has too many lines. [42/25]", 1736487820], - [217, 3, 1373, "Metrics/BlockLength: Block has too many lines. [30/25]", 442933563] - ], - "lib/ast/merge/rspec/shared_examples/recipe_preset_contract.rb:1495545061": [ - [7, 1, 2558, "Metrics/BlockLength: Block has too many lines. [51/25]", 4091815632] - ], - "lib/ast/merge/rspec/shared_examples/removal_mode_compliance.rb:3645548199": [ - [24, 1, 1860, "Metrics/BlockLength: Block has too many lines. [33/25]", 1115825136] - ], - "lib/ast/merge/rspec/shared_examples/reproducible_merge.rb:2276592459": [ - [51, 1, 2030, "Metrics/BlockLength: Block has too many lines. [52/25]", 563553381] - ], - "lib/ast/merge/rspec/shared_examples/reproducible_partial_merge.rb:524436129": [ - [3, 1, 2321, "Metrics/BlockLength: Block has too many lines. [44/25]", 3206099540] - ], - "lib/ast/merge/rspec/shared_examples/retained_blank_gap_compliance.rb:2798862618": [ - [3, 1, 1409, "Metrics/BlockLength: Block has too many lines. [34/25]", 3708955218] - ], - "lib/ast/merge/rspec/shared_examples/runtime_debug_contract.rb:4244040583": [ - [8, 1, 2808, "Metrics/BlockLength: Block has too many lines. [48/25]", 3274492878] - ], - "lib/ast/merge/rspec/shared_examples/unresolved_helper_contract.rb:2916431464": [ - [9, 1, 5998, "Metrics/BlockLength: Block has too many lines. [126/25]", 4174562424], - [94, 3, 1515, "Metrics/BlockLength: Block has too many lines. [32/25]", 1928238376] - ], - "lib/ast/merge/rspec/shared_examples/unresolved_review_state_transport_contract.rb:3368966854": [ - [14, 1, 3386, "Metrics/BlockLength: Block has too many lines. [68/25]", 2910343214], - [65, 3, 317, "Metrics/MethodLength: Method has too many lines. [12/10]", 2653897690] - ], - "lib/ast/merge/rspec/shared_examples/unresolved_runtime_contract.rb:1424234700": [ - [10, 1, 2652, "Metrics/BlockLength: Block has too many lines. [42/25]", 960283638], - [31, 121, 10, "Layout/LineLength: Line is too long. [130/120]", 2892620242], - [46, 121, 3, "Layout/LineLength: Line is too long. [123/120]", 193437756] - ], - "lib/ast/merge/rspec/shared_examples/unresolved_runtime_debug_contract.rb:2897026147": [ - [25, 121, 18, "Layout/LineLength: Line is too long. [138/120]", 2418171787], - [26, 121, 5, "Layout/LineLength: Line is too long. [125/120]", 235635831] - ], - "lib/ast/merge/ruleset/config.rb:4242726919": [ - [7, 7, 3664, "Metrics/ClassLength: Class has too many lines. [101/100]", 1968929597], - [36, 9, 933, "Metrics/MethodLength: Method has too many lines. [15/10]", 3334511209], - [36, 23, 319, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [15/5]", 1652945408], - [65, 9, 515, "Metrics/AbcSize: Assignment Branch Condition size for `to_h` is too high. [<0, 18, 3> 18.25/17]", 2614325513], - [65, 9, 515, "Metrics/MethodLength: Method has too many lines. [14/10]", 2614325513] - ], - "lib/ast/merge/ruleset/feature_profile.rb:3980745364": [ - [12, 7, 6054, "Metrics/ClassLength: Class has too many lines. [155/100]", 2818730231], - [29, 9, 1351, "Metrics/AbcSize: Assignment Branch Condition size for `initialize` is too high. [<17, 18, 7> 25.73/17]", 2248702332], - [29, 9, 1351, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `initialize` is too high. [8/7]", 2248702332], - [29, 9, 1351, "Metrics/MethodLength: Method has too many lines. [17/10]", 2248702332], - [29, 23, 422, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [14/5]", 1415781648], - [138, 9, 1509, "Metrics/AbcSize: Assignment Branch Condition size for `to_h` is too high. [<0, 36, 6> 36.5/17]", 3793816437], - [138, 9, 1509, "Metrics/MethodLength: Method has too many lines. [31/10]", 3793816437] - ], - "lib/ast/merge/ruleset/parser.rb:698282871": [ - [7, 7, 9396, "Metrics/ClassLength: Class has too many lines. [199/100]", 1305123525], - [43, 9, 473, "Metrics/AbcSize: Assignment Branch Condition size for `parse` is too high. [<0, 17, 2> 17.12/17]", 1400394586], - [43, 9, 473, "Metrics/MethodLength: Method has too many lines. [12/10]", 1400394586], - [71, 9, 1053, "Metrics/MethodLength: Method has too many lines. [24/10]", 1569959910], - [101, 9, 1123, "Metrics/AbcSize: Assignment Branch Condition size for `parse_single_value_directive!` is too high. [<7, 13, 10> 17.83/17]", 706129883], - [101, 9, 1123, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `parse_single_value_directive!` is too high. [8/7]", 706129883], - [101, 9, 1123, "Metrics/MethodLength: Method has too many lines. [24/10]", 706129883], - [170, 9, 605, "Metrics/MethodLength: Method has too many lines. [11/10]", 336127382], - [186, 9, 687, "Metrics/MethodLength: Method has too many lines. [11/10]", 2962844982] - ], - "lib/ast/merge/ruleset/profile_vocabulary.rb:2359837647": [ - [7, 7, 3956, "Metrics/ModuleLength: Module has too many lines. [107/100]", 1680256705] - ], - "lib/ast/merge/ruleset/runtime_declaration.rb:1016848190": [ - [18, 9, 819, "Metrics/AbcSize: Assignment Branch Condition size for `initialize` is too high. [<11, 13, 5> 17.75/17]", 4043304883], - [18, 9, 819, "Metrics/MethodLength: Method has too many lines. [11/10]", 4043304883], - [18, 23, 240, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [8/5]", 3868000276], - [49, 9, 551, "Metrics/MethodLength: Method has too many lines. [13/10]", 448215861] - ], - "lib/ast/merge/ruleset/runtime_translator.rb:3255492631": [ - [9, 11, 816, "Metrics/MethodLength: Method has too many lines. [19/10]", 225301385], - [31, 11, 986, "Metrics/AbcSize: Assignment Branch Condition size for `feature_profile` is too high. [<1, 17, 0> 17.03/17]", 1395467476], - [31, 11, 986, "Metrics/MethodLength: Method has too many lines. [19/10]", 1395467476] - ], - "lib/ast/merge/ruleset/support_style_resolver.rb:508975884": [ - [9, 11, 864, "Metrics/MethodLength: Method has too many lines. [22/10]", 3902551296] - ], - "lib/ast/merge/runtime/child_result.rb:4083710804": [ - [16, 9, 698, "Metrics/AbcSize: Assignment Branch Condition size for `initialize` is too high. [<7, 16, 2> 17.58/17]", 2208366179], - [16, 23, 227, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [7/5]", 3688358290], - [38, 9, 584, "Metrics/MethodLength: Method has too many lines. [11/10]", 3113479157], - [55, 11, 106, "Style/HashTransformKeys: Prefer `transform_keys` over `each_with_object`.", 4262612225] - ], - "lib/ast/merge/runtime/delegate.rb:3607371286": [ - [17, 23, 285, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [10/5]", 2793452069] - ], - "lib/ast/merge/runtime/diagnostic.rb:805162185": [ - [10, 23, 72, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 1875462867] - ], - "lib/ast/merge/runtime/operation.rb:1030261783": [ - [20, 9, 767, "Metrics/MethodLength: Method has too many lines. [11/10]", 2728174753], - [20, 23, 278, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [10/5]", 694444911], - [100, 9, 617, "Metrics/AbcSize: Assignment Branch Condition size for `to_h` is too high. [<2, 24, 6> 24.82/17]", 1175382849], - [100, 9, 617, "Metrics/MethodLength: Method has too many lines. [11/10]", 1175382849] - ], - "lib/ast/merge/runtime/resolution_case.rb:250040454": [ - [8, 9, 707, "Metrics/AbcSize: Assignment Branch Condition size for `from_h` is too high. [<1, 19, 6> 19.95/17]", 2592154170], - [29, 23, 189, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [7/5]", 818714714], - [81, 11, 111, "Style/HashTransformKeys: Prefer `transform_keys` over `each_with_object`.", 2712537644] - ], - "lib/ast/merge/runtime/root_session_support.rb:1917388966": [ - [10, 9, 2153, "Metrics/AbcSize: Assignment Branch Condition size for `start_runtime_root_session!` is too high. [<5, 20, 3> 20.83/17]", 1888056651], - [10, 9, 2153, "Metrics/MethodLength: Method has too many lines. [41/10]", 1888056651], - [10, 40, 421, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [14/5]", 2297301282], - [60, 121, 10, "Layout/LineLength: Line is too long. [130/120]", 2312419928], - [68, 9, 771, "Metrics/MethodLength: Method has too many lines. [13/10]", 1787620786], - [68, 43, 191, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 3635875424] - ], - "lib/ast/merge/runtime/session.rb:628419040": [ - [66, 9, 1203, "Metrics/AbcSize: Assignment Branch Condition size for `summary` is too high. [<5, 43, 13> 45.2/17]", 550888870], - [66, 9, 1203, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `summary` is too high. [14/7]", 550888870], - [66, 9, 1203, "Metrics/MethodLength: Method has too many lines. [20/10]", 550888870], - [66, 9, 1203, "Metrics/PerceivedComplexity: Perceived complexity for `summary` is too high. [14/8]", 550888870] - ], - "lib/ast/merge/runtime/surface.rb:3684795905": [ - [17, 23, 230, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [8/5]", 469229117], - [44, 9, 418, "Metrics/MethodLength: Method has too many lines. [11/10]", 998969973] - ], - "lib/ast/merge/section_typing.rb:4261989256": [ - [112, 9, 710, "Metrics/MethodLength: Method has too many lines. [15/10]", 3600335459], - [176, 9, 67, "Lint/MissingSuper: Call `super` to initialize state of the parent class.", 4077537758], - [216, 9, 85, "Lint/MissingSuper: Call `super` to initialize state of the parent class.", 3648782014], - [245, 9, 1446, "Metrics/AbcSize: Assignment Branch Condition size for `merge_sections` is too high. [<13, 20, 12> 26.7/17]", 525095633], - [245, 9, 1446, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `merge_sections` is too high. [12/7]", 525095633], - [245, 9, 1446, "Metrics/MethodLength: Method has too many lines. [28/10]", 525095633], - [245, 9, 1446, "Metrics/PerceivedComplexity: Perceived complexity for `merge_sections` is too high. [13/8]", 525095633] - ], - "lib/ast/merge/smart_merger_base.rb:1823596106": [ - [109, 5, 15324, "Metrics/ClassLength: Class has too many lines. [172/100]", 3547407870], - [214, 7, 1974, "Metrics/AbcSize: Assignment Branch Condition size for `initialize` is too high. [<20, 14, 5> 24.92/17]", 2211610736], - [214, 7, 1974, "Metrics/MethodLength: Method has too many lines. [23/10]", 2211610736], - [214, 21, 443, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [15/5]", 1530523783], - [424, 7, 1312, "Metrics/AbcSize: Assignment Branch Condition size for `parse_and_analyze` is too high. [<7, 25, 11> 28.2/17]", 1640248187], - [424, 7, 1312, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `parse_and_analyze` is too high. [10/7]", 1640248187], - [424, 7, 1312, "Metrics/MethodLength: Method has too many lines. [15/10]", 1640248187], - [424, 7, 1312, "Metrics/PerceivedComplexity: Perceived complexity for `parse_and_analyze` is too high. [10/8]", 1640248187], - [517, 12, 52, "Style/NumericPredicate: Use `result_class.instance_method(:initialize).arity.zero?` instead of `result_class.instance_method(:initialize).arity == 0`.", 1312375552] - ], - "lib/ast/merge/source_region_report_support.rb:31261288": [ - [10, 5, 9026, "Metrics/ModuleLength: Module has too many lines. [204/100]", 3211817308], - [13, 7, 1175, "Metrics/MethodLength: Method has too many lines. [19/10]", 351011969], - [13, 49, 232, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [7/5]", 1034046028], - [38, 7, 1409, "Metrics/AbcSize: Assignment Branch Condition size for `source_blank_line_ownership_regions` is too high. [<9, 23, 11> 27.04/17]", 280304508], - [38, 7, 1409, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `source_blank_line_ownership_regions` is too high. [9/7]", 280304508], - [38, 7, 1409, "Metrics/MethodLength: Method has too many lines. [26/10]", 280304508], - [38, 7, 1409, "Metrics/PerceivedComplexity: Perceived complexity for `source_blank_line_ownership_regions` is too high. [11/8]", 280304508], - [69, 7, 1345, "Metrics/AbcSize: Assignment Branch Condition size for `source_interleaved_regions_for_report` is too high. [<10, 13, 6> 17.46/17]", 253205841], - [69, 7, 1345, "Metrics/MethodLength: Method has too many lines. [32/10]", 253205841], - [109, 7, 1638, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `source_interstitial_region_for_report` is too high. [11/7]", 2543419072], - [109, 7, 1638, "Metrics/MethodLength: Method has too many lines. [32/10]", 2543419072], - [109, 7, 1638, "Metrics/PerceivedComplexity: Perceived complexity for `source_interstitial_region_for_report` is too high. [10/8]", 2543419072], - [109, 48, 133, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 2244283058], - [168, 7, 455, "Metrics/MethodLength: Method has too many lines. [12/10]", 1734550115], - [184, 7, 1444, "Metrics/AbcSize: Assignment Branch Condition size for `source_comment_block_attachment` is too high. [<7, 27, 17> 32.66/17]", 2744031837], - [184, 7, 1444, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `source_comment_block_attachment` is too high. [14/7]", 2744031837], - [184, 7, 1444, "Metrics/MethodLength: Method has too many lines. [21/10]", 2744031837], - [184, 7, 1444, "Metrics/PerceivedComplexity: Perceived complexity for `source_comment_block_attachment` is too high. [15/8]", 2744031837], - [184, 42, 133, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 2758724348], - [192, 121, 1, "Layout/LineLength: Line is too long. [121/120]", 177625] - ], - "lib/ast/merge/structural_edit/boundary.rb:2838060197": [ - [20, 23, 93, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 3901214537], - [41, 38, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], - [51, 38, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], - [60, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2087440865] - ], - "lib/ast/merge/structural_edit/boundary_support.rb:3537000977": [ - [32, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5861061], - [33, 121, 5, "Layout/LineLength: Line is too long. [125/120]", 97596930] - ], - "lib/ast/merge/structural_edit/plan_set.rb:538463647": [ - [116, 121, 42, "Layout/LineLength: Line is too long. [162/120]", 2855200692] - ], - "lib/ast/merge/structural_edit/rehome_plan.rb:2152178780": [ - [23, 23, 123, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 3433617242], - [100, 9, 519, "Metrics/MethodLength: Method has too many lines. [11/10]", 318006380], - [136, 121, 48, "Layout/LineLength: Line is too long. [168/120]", 2367140872] - ], - "lib/ast/merge/structural_edit/remove_plan.rb:1189569486": [ - [11, 7, 9717, "Metrics/ClassLength: Class has too many lines. [160/100]", 3652701475], - [25, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5861091], - [27, 9, 1409, "Metrics/MethodLength: Method has too many lines. [22/10]", 3344870777], - [27, 23, 255, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [11/5]", 3970946607], - [28, 121, 40, "Layout/LineLength: Line is too long. [160/120]", 1637059282], - [36, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5859104], - [196, 121, 32, "Layout/LineLength: Line is too long. [152/120]", 1617827253], - [224, 9, 1032, "Metrics/MethodLength: Method has too many lines. [20/10]", 968444047] - ], - "lib/ast/merge/structural_edit/remove_plan_support.rb:877461974": [ - [9, 9, 11, "Style/ModuleFunction: Use `module_function` instead of `extend self`.", 1210897631], - [19, 9, 1429, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `build_remove_plan` is too high. [8/7]", 4091314919], - [19, 9, 1429, "Metrics/MethodLength: Method has too many lines. [32/10]", 4091314919] - ], - "lib/ast/merge/structural_edit/splice_plan.rb:2675806114": [ - [39, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1683893295], - [42, 23, 203, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [9/5]", 3653221702], - [113, 9, 517, "Metrics/MethodLength: Method has too many lines. [11/10]", 634912361] - ], - "lib/ast/merge/structured_emitter_provenance_support.rb:445323365": [ - [5, 5, 41, "Style/Documentation: Missing top-level documentation comment for `module Ast::Merge::StructuredEmitterProvenanceSupport`.", 3548518830] - ], - "lib/ast/merge/structured_review_apply_support.rb:3649736380": [ - [5, 5, 35, "Style/Documentation: Missing top-level documentation comment for `module Ast::Merge::StructuredReviewApplySupport`.", 1282380463], - [22, 7, 782, "Metrics/AbcSize: Assignment Branch Condition size for `current_output_span_for` is too high. [<6, 19, 11> 22.76/17]", 4137750179], - [22, 7, 782, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `current_output_span_for` is too high. [8/7]", 4137750179], - [22, 7, 782, "Metrics/MethodLength: Method has too many lines. [14/10]", 4137750179], - [42, 7, 595, "Metrics/MethodLength: Method has too many lines. [12/10]", 2080934521], - [60, 121, 10, "Layout/LineLength: Line is too long. [130/120]", 3151172498] - ], - "lib/ast/merge/text/conflict_resolver.rb:989169286": [ - [19, 7, 9182, "Metrics/ClassLength: Class has too many lines. [159/100]", 1070563745], - [28, 23, 211, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 2639535499], - [53, 9, 2507, "Metrics/AbcSize: Assignment Branch Condition size for `resolve_batch` is too high. [<15, 34, 5> 37.5/17]", 825130797], - [53, 9, 2507, "Metrics/MethodLength: Method has too many lines. [44/10]", 825130797], - [196, 9, 2458, "Metrics/AbcSize: Assignment Branch Condition size for `resolve_matched_pair` is too high. [<2, 30, 11> 32.02/17]", 4037214978], - [196, 9, 2458, "Metrics/MethodLength: Method has too many lines. [46/10]", 4037214978] - ], - "lib/ast/merge/text/file_analysis.rb:1530312707": [ - [106, 9, 1484, "Metrics/AbcSize: Assignment Branch Condition size for `parse_statements` is too high. [<11, 15, 6> 19.54/17]", 1858083071], - [106, 9, 1484, "Metrics/MethodLength: Method has too many lines. [34/10]", 1858083071], - [160, 9, 449, "Metrics/MethodLength: Method has too many lines. [11/10]", 1902035813] - ], - "lib/ast/merge/text/line_node.rb:3385927013": [ - [145, 9, 699, "Metrics/MethodLength: Method has too many lines. [17/10]", 2201872249] - ], - "lib/ast/merge/text/section_splitter.rb:129704488": [ - [141, 9, 1442, "Metrics/AbcSize: Assignment Branch Condition size for `merge_section_lists` is too high. [<13, 20, 6> 24.6/17]", 3551729170], - [141, 9, 1442, "Metrics/MethodLength: Method has too many lines. [23/10]", 3551729170], - [322, 9, 1767, "Metrics/AbcSize: Assignment Branch Condition size for `split` is too high. [<11, 29, 10> 32.59/17]", 2207922758], - [322, 9, 1767, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `split` is too high. [10/7]", 2207922758], - [322, 9, 1767, "Metrics/MethodLength: Method has too many lines. [46/10]", 2207922758], - [322, 9, 1767, "Metrics/PerceivedComplexity: Perceived complexity for `split` is too high. [13/8]", 2207922758], - [328, 11, 1019, "Metrics/BlockLength: Block has too many lines. [26/25]", 1561634792] - ], - "lib/ast/merge/text/smart_merger.rb:2405807903": [ - [67, 9, 831, "Metrics/MethodLength: Method has too many lines. [12/10]", 584426022], - [67, 23, 350, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [10/5]", 3074172637] - ], - "lib/ast/merge/trailing_groups/alignment_sort.rb:2593404330": [ - [40, 9, 513, "Metrics/MethodLength: Method has too many lines. [12/10]", 89360683] - ], - "lib/ast/merge/trailing_groups/core.rb:4231959665": [ - [61, 9, 812, "Metrics/MethodLength: Method has too many lines. [17/10]", 1777526069], - [101, 9, 998, "Metrics/AbcSize: Assignment Branch Condition size for `flush_ready_trailing_groups` is too high. [<8, 18, 15> 24.76/17]", 2397698441], - [101, 9, 998, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `flush_ready_trailing_groups` is too high. [13/7]", 2397698441], - [101, 9, 998, "Metrics/MethodLength: Method has too many lines. [17/10]", 2397698441], - [101, 9, 998, "Metrics/PerceivedComplexity: Perceived complexity for `flush_ready_trailing_groups` is too high. [13/8]", 2397698441] - ], - "lib/ast/merge/trailing_groups/dest_iterate.rb:3897205087": [ - [69, 9, 751, "Metrics/MethodLength: Method has too many lines. [12/10]", 3915657972], - [69, 47, 199, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 2545849044] - ], - "lib/ast/merge/unresolved_support.rb:2881272494": [ - [7, 5, 24, "Style/Documentation: Missing top-level documentation comment for `module Ast::Merge::UnresolvedSupport`.", 990281691], - [7, 5, 4392, "Metrics/ModuleLength: Module has too many lines. [116/100]", 3475162940], - [32, 20, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], - [67, 20, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], - [85, 7, 1038, "Metrics/MethodLength: Method has too many lines. [14/10]", 3139619197], - [85, 40, 338, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [14/5]", 71164914] - ], - "spec/ast/merge/ast_node_spec.rb:1362065144": [ - [3, 1, 8199, "Metrics/BlockLength: Block has too many lines. [254/25]", 1649868231], - [18, 3, 1030, "Metrics/BlockLength: Block has too many lines. [33/25]", 1409835577] - ], - "spec/ast/merge/block_directive_spec.rb:2305756581": [ - [3, 1, 5181, "Metrics/BlockLength: Block has too many lines. [138/25]", 1887900896], - [128, 3, 1391, "Metrics/BlockLength: Block has too many lines. [39/25]", 3626371694] - ], - "spec/ast/merge/comment/attachment_spec.rb:2571833836": [ - [3, 1, 5536, "Metrics/BlockLength: Block has too many lines. [150/25]", 1841571757], - [93, 3, 1639, "Metrics/BlockLength: Block has too many lines. [37/25]", 212730671] - ], - "spec/ast/merge/comment/augmenter_spec.rb:4266625483": [ - [3, 1, 9141, "Metrics/BlockLength: Block has too many lines. [212/25]", 530365996], - [16, 3, 6849, "Metrics/BlockLength: Block has too many lines. [154/25]", 503152628], - [200, 3, 1244, "Metrics/BlockLength: Block has too many lines. [33/25]", 3565041107] - ], - "spec/ast/merge/comment/block_spec.rb:4138473890": [ - [3, 1, 9021, "Metrics/BlockLength: Block has too many lines. [250/25]", 1617505173], - [8, 3, 1115, "Metrics/BlockLength: Block has too many lines. [27/25]", 2958989619], - [93, 3, 1127, "Metrics/BlockLength: Block has too many lines. [33/25]", 196340527], - [123, 45, 16, "Style/StringConcatenation: Prefer string interpolation to string concatenation.", 155572628], - [159, 3, 1432, "Metrics/BlockLength: Block has too many lines. [35/25]", 281400319] - ], - "spec/ast/merge/comment/c_style_tracker_base_spec.rb:3154319400": [ - [3, 1, 5816, "Metrics/BlockLength: Block has too many lines. [133/25]", 680831933], - [100, 3, 1450, "Metrics/BlockLength: Block has too many lines. [35/25]", 4153882185] - ], - "spec/ast/merge/comment/capability_spec.rb:2763521225": [ - [3, 1, 3522, "Metrics/BlockLength: Block has too many lines. [89/25]", 1487980773], - [4, 3, 1954, "Metrics/BlockLength: Block has too many lines. [41/25]", 160187362] - ], - "spec/ast/merge/comment/empty_spec.rb:1801324640": [ - [3, 1, 2584, "Metrics/BlockLength: Block has too many lines. [70/25]", 270179899], - [4, 3, 1047, "Metrics/BlockLength: Block has too many lines. [27/25]", 3056449816] - ], - "spec/ast/merge/comment/hash_tracker_base_spec.rb:3624528747": [ - [3, 1, 9653, "Metrics/BlockLength: Block has too many lines. [271/25]", 3748659406], - [8, 3, 1210, "Metrics/BlockLength: Block has too many lines. [37/25]", 2566766302], - [21, 7, 872, "Metrics/AbcSize: Assignment Branch Condition size for `extract_comments` is too high. [<7, 24, 5> 25.5/17]", 1213080161], - [21, 7, 872, "Metrics/MethodLength: Method has too many lines. [25/10]", 1213080161], - [275, 3, 1171, "Metrics/BlockLength: Block has too many lines. [29/25]", 1425466742] - ], - "spec/ast/merge/comment/line_spec.rb:1487829548": [ - [3, 1, 5291, "Metrics/BlockLength: Block has too many lines. [128/25]", 587604747], - [6, 3, 1573, "Metrics/BlockLength: Block has too many lines. [37/25]", 4105920006] - ], - "spec/ast/merge/comment/parser_spec.rb:2443973508": [ - [3, 1, 9855, "Metrics/BlockLength: Block has too many lines. [237/25]", 404174977], - [4, 3, 1013, "Metrics/BlockLength: Block has too many lines. [26/25]", 182655397], - [38, 3, 1282, "Metrics/BlockLength: Block has too many lines. [28/25]", 2303702609] - ], - "spec/ast/merge/comment/quoted_hash_line_parser_spec.rb:3795390831": [ - [3, 1, 1810, "Metrics/BlockLength: Block has too many lines. [44/25]", 2575838586], - [6, 3, 1700, "Metrics/BlockLength: Block has too many lines. [41/25]", 1553834548] - ], - "spec/ast/merge/comment/region_merge_policy_spec.rb:4175996936": [ - [3, 1, 3618, "Metrics/BlockLength: Block has too many lines. [75/25]", 4006378358], - [11, 3, 2752, "Metrics/BlockLength: Block has too many lines. [52/25]", 494211987] - ], - "spec/ast/merge/comment/region_spec.rb:2674736508": [ - [3, 1, 4033, "Metrics/BlockLength: Block has too many lines. [91/25]", 1828104331] - ], - "spec/ast/merge/comment/style_spec.rb:1875195890": [ - [3, 1, 4040, "Metrics/BlockLength: Block has too many lines. [101/25]", 2759361650] - ], - "spec/ast/merge/comment/support_style_spec.rb:1350169032": [ - [3, 1, 1577, "Metrics/BlockLength: Block has too many lines. [39/25]", 3414039011] - ], - "spec/ast/merge/comment/tracked_hash_adapter_spec.rb:1256807736": [ - [3, 1, 4482, "Metrics/BlockLength: Block has too many lines. [97/25]", 264417763], - [4, 3, 3101, "Metrics/BlockLength: Block has too many lines. [63/25]", 1050939978], - [81, 3, 1313, "Metrics/BlockLength: Block has too many lines. [30/25]", 515655104] - ], - "spec/ast/merge/comment_layout_emission_support_spec.rb:19704158": [ - [3, 1, 7555, "Metrics/BlockLength: Block has too many lines. [186/25]", 980479163], - [4, 3, 73, "Lint/ConstantDefinitionInBlock: Do not define constants this way within a block.", 3470206647], - [6, 3, 175, "Lint/ConstantDefinitionInBlock: Do not define constants this way within a block.", 622428252], - [16, 3, 93, "Lint/ConstantDefinitionInBlock: Do not define constants this way within a block.", 546547334], - [18, 3, 734, "Lint/ConstantDefinitionInBlock: Do not define constants this way within a block.", 3226190975], - [21, 19, 120, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 3763716348], - [39, 27, 6, "Lint/UnusedMethodArgument: Unused method argument - `owners`. You can also write as `comment_augmenter(*)` if you want the method to accept any arguments but don't care about them.", 1719502071], - [44, 3, 574, "Lint/ConstantDefinitionInBlock: Do not define constants this way within a block.", 1736750341], - [61, 3, 152, "Lint/ConstantDefinitionInBlock: Do not define constants this way within a block.", 1212551629], - [101, 3, 1173, "Metrics/BlockLength: Block has too many lines. [27/25]", 2346194513], - [132, 3, 1624, "Metrics/BlockLength: Block has too many lines. [36/25]", 2359972174] - ], - "spec/ast/merge/comment_spec.rb:81945459": [ - [3, 1, 15888, "Metrics/BlockLength: Block has too many lines. [384/25]", 2229554982], - [4, 3, 3957, "Metrics/BlockLength: Block has too many lines. [84/25]", 660667217], - [5, 5, 1187, "Metrics/BlockLength: Block has too many lines. [26/25]", 241562105], - [105, 3, 1371, "Metrics/BlockLength: Block has too many lines. [30/25]", 1901983597], - [159, 3, 1296, "Metrics/BlockLength: Block has too many lines. [30/25]", 1749880380], - [239, 3, 1151, "Metrics/BlockLength: Block has too many lines. [28/25]", 183967322], - [272, 3, 2004, "Metrics/BlockLength: Block has too many lines. [45/25]", 2594323837], - [349, 3, 3220, "Metrics/BlockLength: Block has too many lines. [83/25]", 790417809], - [350, 5, 2347, "Metrics/BlockLength: Block has too many lines. [60/25]", 4016801881] - ], - "spec/ast/merge/composite_match_refiner_spec.rb:2888297870": [ - [3, 1, 6152, "Metrics/BlockLength: Block has too many lines. [143/25]", 3308692548], - [55, 3, 4118, "Metrics/BlockLength: Block has too many lines. [87/25]", 1405655464] - ], - "spec/ast/merge/conflict_resolver_base_spec.rb:3331938447": [ - [5, 1, 20643, "Metrics/BlockLength: Block has too many lines. [516/25]", 3129196558], - [14, 59, 14, "Lint/UnusedMethodArgument: Unused method argument - `template_index`.", 1809801172], - [14, 76, 10, "Lint/UnusedMethodArgument: Unused method argument - `dest_index`.", 2703999490], - [47, 61, 14, "Lint/UnusedMethodArgument: Unused method argument - `template_index`. You can also write as `resolve_node_pair(*)` if you want the method to accept any arguments but don't care about them.", 1809801172], - [47, 78, 10, "Lint/UnusedMethodArgument: Unused method argument - `dest_index`. You can also write as `resolve_node_pair(*)` if you want the method to accept any arguments but don't care about them.", 2703999490], - [105, 3, 17203, "Metrics/BlockLength: Block has too many lines. [425/25]", 1114912980], - [154, 5, 1797, "Metrics/BlockLength: Block has too many lines. [37/25]", 515146940], - [203, 5, 1373, "Metrics/BlockLength: Block has too many lines. [32/25]", 603210832], - [292, 5, 2874, "Metrics/BlockLength: Block has too many lines. [77/25]", 3918129775], - [341, 7, 1292, "Metrics/BlockLength: Block has too many lines. [34/25]", 1769555944], - [402, 5, 1857, "Metrics/BlockLength: Block has too many lines. [44/25]", 1516406612], - [456, 5, 1209, "Metrics/BlockLength: Block has too many lines. [31/25]", 430489898], - [514, 5, 2021, "Metrics/BlockLength: Block has too many lines. [37/25]", 144128170], - [515, 7, 1953, "Metrics/BlockLength: Block has too many lines. [35/25]", 1574966248], - [567, 5, 1500, "Metrics/BlockLength: Block has too many lines. [40/25]", 2509466150] - ], - "spec/ast/merge/content_match_refiner_spec.rb:4058001158": [ - [3, 1, 14348, "Metrics/BlockLength: Block has too many lines. [318/25]", 1171164704], - [25, 3, 1238, "Metrics/BlockLength: Block has too many lines. [29/25]", 2139810386], - [63, 3, 4077, "Metrics/BlockLength: Block has too many lines. [95/25]", 3471153375], - [325, 3, 2213, "Metrics/BlockLength: Block has too many lines. [37/25]", 3370370915] - ], - "spec/ast/merge/debug_logger_spec.rb:429510168": [ - [3, 1, 17306, "Metrics/BlockLength: Block has too many lines. [358/25]", 2287792973], - [251, 3, 1598, "Metrics/BlockLength: Block has too many lines. [27/25]", 3227542816], - [358, 3, 5118, "Metrics/BlockLength: Block has too many lines. [77/25]", 1759761803] - ], - "spec/ast/merge/detector/base_spec.rb:4157102211": [ - [3, 1, 3172, "Metrics/BlockLength: Block has too many lines. [100/25]", 3745104028], - [11, 7, 498, "Metrics/MethodLength: Method has too many lines. [13/10]", 3178368155], - [49, 3, 900, "Metrics/BlockLength: Block has too many lines. [28/25]", 2333048204] - ], - "spec/ast/merge/detector/fenced_code_block_spec.rb:495797689": [ - [3, 1, 11589, "Metrics/BlockLength: Block has too many lines. [363/25]", 3764545134], - [38, 3, 4467, "Metrics/BlockLength: Block has too many lines. [150/25]", 1597401000], - [41, 5, 1077, "Metrics/BlockLength: Block has too many lines. [31/25]", 2269642514], - [115, 5, 848, "Metrics/BlockLength: Block has too many lines. [27/25]", 1704866975], - [220, 3, 4815, "Metrics/BlockLength: Block has too many lines. [146/25]", 3797214474] - ], - "spec/ast/merge/detector/mergeable_spec.rb:1307688846": [ - [3, 1, 23175, "Metrics/BlockLength: Block has too many lines. [654/25]", 2932391114], - [77, 3, 2079, "Metrics/BlockLength: Block has too many lines. [53/25]", 1093085347], - [177, 3, 2217, "Metrics/BlockLength: Block has too many lines. [69/25]", 926985871], - [188, 5, 948, "Metrics/BlockLength: Block has too many lines. [26/25]", 4186135901], - [225, 5, 898, "Metrics/BlockLength: Block has too many lines. [31/25]", 513446836], - [266, 3, 1168, "Metrics/BlockLength: Block has too many lines. [29/25]", 774699411], - [304, 3, 1188, "Metrics/BlockLength: Block has too many lines. [27/25]", 4282853126], - [339, 3, 918, "Metrics/BlockLength: Block has too many lines. [28/25]", 1759590109], - [372, 3, 870, "Metrics/BlockLength: Block has too many lines. [28/25]", 131542026], - [410, 3, 3768, "Metrics/BlockLength: Block has too many lines. [111/25]", 181819560], - [483, 5, 1536, "Metrics/BlockLength: Block has too many lines. [47/25]", 385085357], - [540, 3, 1891, "Metrics/BlockLength: Block has too many lines. [52/25]", 602757329], - [664, 3, 1927, "Metrics/BlockLength: Block has too many lines. [56/25]", 48062261], - [691, 5, 1146, "Metrics/BlockLength: Block has too many lines. [31/25]", 1961728737], - [721, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 3104497040], - [729, 3, 1625, "Metrics/BlockLength: Block has too many lines. [46/25]", 1570579215] - ], - "spec/ast/merge/detector/region_spec.rb:594725562": [ - [3, 1, 8128, "Metrics/BlockLength: Block has too many lines. [290/25]", 1984713692], - [4, 3, 806, "Metrics/BlockLength: Block has too many lines. [28/25]", 1515087192], - [58, 3, 1236, "Metrics/BlockLength: Block has too many lines. [45/25]", 2464968707], - [128, 3, 1063, "Metrics/BlockLength: Block has too many lines. [33/25]", 239148700], - [250, 3, 2010, "Metrics/BlockLength: Block has too many lines. [76/25]", 2595033382] - ], - "spec/ast/merge/detector/toml_frontmatter_spec.rb:1135160129": [ - [3, 1, 6717, "Metrics/BlockLength: Block has too many lines. [218/25]", 2273975625], - [12, 3, 5534, "Metrics/BlockLength: Block has too many lines. [187/25]", 538920673], - [13, 5, 1456, "Metrics/BlockLength: Block has too many lines. [38/25]", 3113759139] - ], - "spec/ast/merge/detector/yaml_frontmatter_spec.rb:2467934365": [ - [3, 1, 6702, "Metrics/BlockLength: Block has too many lines. [213/25]", 3083039982], - [12, 3, 5056, "Metrics/BlockLength: Block has too many lines. [170/25]", 1889948780], - [13, 5, 1438, "Metrics/BlockLength: Block has too many lines. [38/25]", 1736912391], - [219, 3, 1396, "Metrics/BlockLength: Block has too many lines. [33/25]", 2446467851] - ], - "spec/ast/merge/diff_mapper_base_spec.rb:1771546518": [ - [5, 1, 8521, "Metrics/BlockLength: Block has too many lines. [248/25]", 1057580573], - [22, 9, 44, "Style/InverseMethods: Use `reject` instead of inverting `select`.", 3063843489], - [46, 3, 3878, "Metrics/BlockLength: Block has too many lines. [116/25]", 2874032080], - [47, 5, 1938, "Metrics/BlockLength: Block has too many lines. [48/25]", 1904497583], - [191, 3, 1488, "Metrics/BlockLength: Block has too many lines. [43/25]", 1632956840] - ], - "spec/ast/merge/emitter_base_spec.rb:1099876333": [ - [3, 1, 11967, "Metrics/BlockLength: Block has too many lines. [301/25]", 2970792295], - [56, 3, 4393, "Metrics/BlockLength: Block has too many lines. [102/25]", 3992142376], - [160, 58, 12, "Lint/UnusedMethodArgument: Unused method argument - `current_line`. You can also write as `inline_comment_region_target_column(*)` if you want the method to accept any arguments but don't care about them.", 2091263933], - [164, 44, 6, "Lint/UnusedMethodArgument: Unused method argument - `region`.", 2124512157], - [185, 3, 1815, "Metrics/BlockLength: Block has too many lines. [39/25]", 719023387], - [232, 3, 2233, "Metrics/BlockLength: Block has too many lines. [62/25]", 3754339775], - [338, 3, 1059, "Metrics/BlockLength: Block has too many lines. [26/25]", 375007123] - ], - "spec/ast/merge/fictive_language_harness_spec.rb:1179155480": [ - [6, 1, 6693, "Metrics/BlockLength: Block has too many lines. [143/25]", 245088433], - [7, 3, 1968, "Metrics/BlockLength: Block has too many lines. [36/25]", 4161580169], - [58, 3, 1230, "Metrics/BlockLength: Block has too many lines. [34/25]", 990452676], - [103, 3, 2668, "Metrics/BlockLength: Block has too many lines. [51/25]", 1755027956] - ], - "spec/ast/merge/file_aligner_base_spec.rb:91275387": [ - [5, 1, 9948, "Metrics/BlockLength: Block has too many lines. [217/25]", 3354563411], - [6, 3, 1490, "Metrics/BlockLength: Block has too many lines. [45/25]", 563330990], - [95, 3, 7495, "Metrics/BlockLength: Block has too many lines. [129/25]", 598770279], - [103, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 3749416415], - [163, 5, 1489, "Metrics/BlockLength: Block has too many lines. [26/25]", 2910876949] - ], - "spec/ast/merge/file_analyzable_spec.rb:3816965829": [ - [3, 1, 12458, "Metrics/BlockLength: Block has too many lines. [272/25]", 216138965], - [25, 3, 9603, "Metrics/BlockLength: Block has too many lines. [202/25]", 2508188172], - [297, 3, 1214, "Metrics/BlockLength: Block has too many lines. [30/25]", 777182624] - ], - "spec/ast/merge/freezable_spec.rb:559280324": [ - [5, 1, 5033, "Metrics/BlockLength: Block has too many lines. [123/25]", 3070666859], - [6, 3, 1199, "Metrics/BlockLength: Block has too many lines. [34/25]", 4058875636], - [66, 3, 1530, "Metrics/BlockLength: Block has too many lines. [31/25]", 1670675428] - ], - "spec/ast/merge/freeze_node_base_spec.rb:2962962931": [ - [3, 1, 21887, "Metrics/BlockLength: Block has too many lines. [560/25]", 567315021], - [48, 3, 1369, "Metrics/BlockLength: Block has too many lines. [38/25]", 3363160391], - [131, 3, 2739, "Metrics/BlockLength: Block has too many lines. [56/25]", 2008289622], - [205, 3, 1586, "Metrics/BlockLength: Block has too many lines. [35/25]", 4179606047], - [251, 3, 977, "Metrics/BlockLength: Block has too many lines. [26/25]", 1240612851], - [287, 3, 1130, "Metrics/BlockLength: Block has too many lines. [28/25]", 2511265379], - [322, 3, 5029, "Metrics/BlockLength: Block has too many lines. [126/25]", 739537566], - [598, 3, 3055, "Metrics/BlockLength: Block has too many lines. [81/25]", 145217296] - ], - "spec/ast/merge/healer_spec.rb:877829793": [ - [3, 1, 4896, "Metrics/BlockLength: Block has too many lines. [148/25]", 1074378773], - [19, 3, 1333, "Metrics/BlockLength: Block has too many lines. [38/25]", 2940878263], - [24, 121, 3, "Layout/LineLength: Line is too long. [123/120]", 193432399], - [61, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2085379023], - [67, 3, 2985, "Metrics/BlockLength: Block has too many lines. [93/25]", 4032786576] - ], - "spec/ast/merge/jaccard_similarity_spec.rb:3984307047": [ - [3, 1, 2659, "Metrics/BlockLength: Block has too many lines. [71/25]", 1122516612], - [6, 3, 1484, "Metrics/BlockLength: Block has too many lines. [38/25]", 3367914637], - [55, 3, 1090, "Metrics/BlockLength: Block has too many lines. [28/25]", 2629339264] - ], - "spec/ast/merge/key_path_partial_template_merger_base_spec.rb:2189485360": [ - [5, 1, 5955, "Metrics/BlockLength: Block has too many lines. [138/25]", 91542958], - [35, 3, 1217, "Metrics/BlockLength: Block has too many lines. [33/25]", 2663081123], - [97, 3, 3019, "Metrics/BlockLength: Block has too many lines. [54/25]", 1411952192] - ], - "spec/ast/merge/layout/attachment_spec.rb:3814294426": [ - [3, 1, 1799, "Metrics/BlockLength: Block has too many lines. [34/25]", 1283153367] - ], - "spec/ast/merge/layout/augmenter_spec.rb:3633045915": [ - [3, 1, 4412, "Metrics/BlockLength: Block has too many lines. [92/25]", 2690553031], - [20, 3, 2725, "Metrics/BlockLength: Block has too many lines. [54/25]", 3645203819] - ], - "spec/ast/merge/layout/gap_spec.rb:4232058283": [ - [3, 1, 2758, "Metrics/BlockLength: Block has too many lines. [72/25]", 2052697931], - [9, 3, 1290, "Metrics/BlockLength: Block has too many lines. [28/25]", 3175967312] - ], - "spec/ast/merge/line_range_support_spec.rb:872979873": [ - [3, 1, 1564, "Metrics/BlockLength: Block has too many lines. [35/25]", 1133178812], - [4, 3, 65, "Lint/ConstantDefinitionInBlock: Do not define constants this way within a block.", 2231059390], - [5, 3, 44, "Lint/ConstantDefinitionInBlock: Do not define constants this way within a block.", 1230426940], - [7, 3, 135, "Lint/ConstantDefinitionInBlock: Do not define constants this way within a block.", 1825860348] - ], - "spec/ast/merge/match_refiner_base_spec.rb:3961767223": [ - [3, 1, 10604, "Metrics/BlockLength: Block has too many lines. [301/25]", 4290485382], - [4, 3, 1146, "Metrics/BlockLength: Block has too many lines. [37/25]", 108051658], - [50, 3, 1005, "Metrics/BlockLength: Block has too many lines. [28/25]", 3807648246], - [125, 3, 1026, "Metrics/BlockLength: Block has too many lines. [27/25]", 2896086726], - [162, 3, 4464, "Metrics/BlockLength: Block has too many lines. [114/25]", 2878217135], - [218, 5, 1112, "Metrics/BlockLength: Block has too many lines. [30/25]", 1605825436], - [224, 11, 104, "Style/HashLikeCase: Consider replacing `case-when` with a hash lookup.", 4220899731], - [247, 11, 132, "Style/HashLikeCase: Consider replacing `case-when` with a hash lookup.", 3401820780], - [258, 5, 1642, "Metrics/BlockLength: Block has too many lines. [35/25]", 1288881729], - [337, 3, 1108, "Metrics/BlockLength: Block has too many lines. [33/25]", 2139263963] - ], - "spec/ast/merge/match_score_base_spec.rb:2340739872": [ - [3, 1, 15213, "Metrics/BlockLength: Block has too many lines. [372/25]", 1512747000], - [4, 3, 1553, "Metrics/BlockLength: Block has too many lines. [41/25]", 2789289940], - [43, 20, 2, "Naming/MethodParameterName: Method parameter must be at least 3 characters long.", 5862747], - [43, 24, 2, "Naming/MethodParameterName: Method parameter must be at least 3 characters long.", 5862744], - [56, 3, 1041, "Metrics/BlockLength: Block has too many lines. [29/25]", 3729310115], - [152, 3, 3259, "Metrics/BlockLength: Block has too many lines. [82/25]", 1438003770], - [258, 3, 2199, "Metrics/BlockLength: Block has too many lines. [43/25]", 3386602801], - [320, 3, 1684, "Metrics/BlockLength: Block has too many lines. [35/25]", 3807719546], - [365, 14, 16, "Lint/FloatComparison: Avoid equality comparisons of floats as they are unreliable.", 3787748956], - [369, 3, 1696, "Metrics/BlockLength: Block has too many lines. [36/25]", 3172214426], - [417, 3, 1792, "Metrics/BlockLength: Block has too many lines. [45/25]", 3557977606], - [438, 5, 1121, "Metrics/BlockLength: Block has too many lines. [26/25]", 4236927298] - ], - "spec/ast/merge/merge_result_base_spec.rb:3826389024": [ - [3, 1, 20371, "Metrics/BlockLength: Block has too many lines. [552/25]", 3965341976], - [38, 3, 2735, "Metrics/BlockLength: Block has too many lines. [80/25]", 1103243845], - [312, 3, 1611, "Metrics/BlockLength: Block has too many lines. [39/25]", 1928511417], - [313, 5, 1203, "Metrics/BlockLength: Block has too many lines. [26/25]", 857223227], - [359, 3, 2070, "Metrics/BlockLength: Block has too many lines. [48/25]", 2552826824], - [418, 3, 5769, "Metrics/BlockLength: Block has too many lines. [140/25]", 1457747735], - [544, 5, 1306, "Metrics/BlockLength: Block has too many lines. [29/25]", 2980786372], - [607, 3, 1308, "Metrics/BlockLength: Block has too many lines. [32/25]", 1342704008] - ], - "spec/ast/merge/merger_config_spec.rb:663896662": [ - [5, 1, 7314, "Metrics/BlockLength: Block has too many lines. [189/25]", 1279589310], - [11, 3, 1180, "Metrics/BlockLength: Block has too many lines. [26/25]", 1014009176], - [45, 3, 1151, "Metrics/BlockLength: Block has too many lines. [26/25]", 785276703], - [79, 3, 3574, "Metrics/BlockLength: Block has too many lines. [97/25]", 969726064], - [126, 5, 1158, "Metrics/BlockLength: Block has too many lines. [29/25]", 389808524] - ], - "spec/ast/merge/navigable/injection_point_finder_spec.rb:3693754765": [ - [3, 1, 5152, "Metrics/BlockLength: Block has too many lines. [123/25]", 3265221808], - [15, 3, 4026, "Metrics/BlockLength: Block has too many lines. [96/25]", 1482695302], - [63, 5, 2337, "Metrics/BlockLength: Block has too many lines. [54/25]", 2678200297] - ], - "spec/ast/merge/navigable/injection_point_spec.rb:3295717447": [ - [3, 1, 6032, "Metrics/BlockLength: Block has too many lines. [161/25]", 805025024], - [77, 3, 1083, "Metrics/BlockLength: Block has too many lines. [28/25]", 3091139104] - ], - "spec/ast/merge/navigable/statement_spec.rb:2965726260": [ - [3, 1, 18289, "Metrics/BlockLength: Block has too many lines. [510/25]", 4119203121], - [102, 3, 3570, "Metrics/BlockLength: Block has too many lines. [97/25]", 3287535168], - [156, 5, 2030, "Metrics/BlockLength: Block has too many lines. [51/25]", 3299963733], - [251, 3, 1338, "Metrics/BlockLength: Block has too many lines. [37/25]", 844559624], - [411, 3, 1550, "Metrics/BlockLength: Block has too many lines. [42/25]", 3851790429], - [465, 3, 1372, "Metrics/BlockLength: Block has too many lines. [41/25]", 3782869383] - ], - "spec/ast/merge/node_typing/frozen_wrapper_spec.rb:3823345520": [ - [3, 1, 4532, "Metrics/BlockLength: Block has too many lines. [117/25]", 3944573785] - ], - "spec/ast/merge/node_typing/normalizer_spec.rb:1976431423": [ - [4, 1, 8679, "Metrics/BlockLength: Block has too many lines. [219/25]", 938207310], - [65, 3, 1137, "Metrics/BlockLength: Block has too many lines. [26/25]", 3180807289], - [101, 3, 1404, "Metrics/BlockLength: Block has too many lines. [28/25]", 1094334251], - [216, 3, 875, "Metrics/BlockLength: Block has too many lines. [26/25]", 2755551247] - ], - "spec/ast/merge/node_typing/wrapper_spec.rb:3211588263": [ - [3, 1, 3469, "Metrics/BlockLength: Block has too many lines. [92/25]", 638644563] - ], - "spec/ast/merge/node_typing_spec.rb:4080661389": [ - [3, 1, 12728, "Metrics/BlockLength: Block has too many lines. [333/25]", 3927571381], - [132, 3, 3704, "Metrics/BlockLength: Block has too many lines. [98/25]", 2130243754], - [208, 5, 1267, "Metrics/BlockLength: Block has too many lines. [31/25]", 2816753725], - [265, 3, 1298, "Metrics/BlockLength: Block has too many lines. [33/25]", 3320876250], - [311, 3, 3803, "Metrics/BlockLength: Block has too many lines. [100/25]", 2743470911] - ], - "spec/ast/merge/node_wrapper_base_spec.rb:2252820285": [ - [3, 1, 11681, "Metrics/BlockLength: Block has too many lines. [307/25]", 1698593962], - [32, 3, 2341, "Metrics/BlockLength: Block has too many lines. [68/25]", 1594381363], - [179, 3, 2568, "Metrics/BlockLength: Block has too many lines. [51/25]", 1269052990], - [294, 3, 1252, "Metrics/BlockLength: Block has too many lines. [26/25]", 4220822180], - [329, 3, 1963, "Metrics/BlockLength: Block has too many lines. [39/25]", 1623030031] - ], - "spec/ast/merge/owner_selection_spec.rb:1894901093": [ - [3, 1, 1356, "Metrics/BlockLength: Block has too many lines. [35/25]", 1030003775] - ], - "spec/ast/merge/partial_template_merger_base_spec.rb:3412991027": [ - [3, 1, 7073, "Metrics/BlockLength: Block has too many lines. [145/25]", 3415302240], - [16, 9, 43, "Lint/HashCompareByIdentity: Use `Hash#compare_by_identity` instead of using `object_id` for keys.", 3196404056], - [22, 9, 42, "Lint/HashCompareByIdentity: Use `Hash#compare_by_identity` instead of using `object_id` for keys.", 4116824817], - [48, 20, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], - [96, 3, 4220, "Metrics/BlockLength: Block has too many lines. [68/25]", 3464417459], - [97, 5, 2029, "Metrics/BlockLength: Block has too many lines. [27/25]", 3297854360], - [138, 5, 2122, "Metrics/BlockLength: Block has too many lines. [37/25]", 1592076374] - ], - "spec/ast/merge/recipe/config_spec.rb:3917288551": [ - [3, 1, 21041, "Metrics/BlockLength: Block has too many lines. [611/25]", 2431235923], - [72, 3, 1653, "Metrics/BlockLength: Block has too many lines. [36/25]", 2702780755], - [174, 3, 1465, "Metrics/BlockLength: Block has too many lines. [44/25]", 2326126933], - [226, 3, 3419, "Metrics/BlockLength: Block has too many lines. [89/25]", 798604841], - [327, 3, 1398, "Metrics/BlockLength: Block has too many lines. [34/25]", 3113267700], - [474, 3, 1184, "Metrics/BlockLength: Block has too many lines. [39/25]", 2599756030], - [519, 3, 4630, "Metrics/BlockLength: Block has too many lines. [147/25]", 1245526575] - ], - "spec/ast/merge/recipe/preset_spec.rb:818394232": [ - [3, 1, 6696, "Metrics/BlockLength: Block has too many lines. [173/25]", 3205615892] - ], - "spec/ast/merge/recipe/runner_spec.rb:3689194117": [ - [3, 1, 46798, "Metrics/BlockLength: Block has too many lines. [1104/25]", 3220015076], - [48, 3, 1128, "Metrics/BlockLength: Block has too many lines. [26/25]", 910457645], - [108, 3, 3036, "Metrics/BlockLength: Block has too many lines. [92/25]", 2112378918], - [132, 5, 881, "Metrics/BlockLength: Block has too many lines. [27/25]", 3842010356], - [177, 5, 918, "Metrics/BlockLength: Block has too many lines. [27/25]", 2152367239], - [295, 3, 1383, "Metrics/BlockLength: Block has too many lines. [41/25]", 2141027559], - [362, 3, 1653, "Metrics/BlockLength: Block has too many lines. [33/25]", 1536472295], - [449, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 3960802027], - [497, 3, 7959, "Metrics/BlockLength: Block has too many lines. [200/25]", 3739116912], - [556, 5, 1225, "Metrics/BlockLength: Block has too many lines. [31/25]", 195497726], - [740, 3, 6977, "Metrics/BlockLength: Block has too many lines. [145/25]", 2805535296], - [748, 5, 2241, "Metrics/BlockLength: Block has too many lines. [49/25]", 2552233173], - [805, 5, 3007, "Metrics/BlockLength: Block has too many lines. [59/25]", 708771722], - [877, 5, 1444, "Metrics/BlockLength: Block has too many lines. [26/25]", 3274225022], - [911, 3, 3258, "Metrics/BlockLength: Block has too many lines. [85/25]", 2346849758], - [1012, 3, 2710, "Metrics/BlockLength: Block has too many lines. [71/25]", 3801821877], - [1029, 5, 1547, "Metrics/BlockLength: Block has too many lines. [42/25]", 2962020615], - [1109, 3, 2240, "Metrics/BlockLength: Block has too many lines. [35/25]", 1139957345], - [1115, 121, 26, "Layout/LineLength: Line is too long. [146/120]", 667314941], - [1117, 121, 26, "Layout/LineLength: Line is too long. [146/120]", 667314941], - [1119, 121, 13, "Layout/LineLength: Line is too long. [133/120]", 1801369636], - [1121, 121, 11, "Layout/LineLength: Line is too long. [131/120]", 2652710920], - [1123, 121, 28, "Layout/LineLength: Line is too long. [148/120]", 1375785821], - [1125, 121, 26, "Layout/LineLength: Line is too long. [146/120]", 632755459], - [1160, 121, 26, "Layout/LineLength: Line is too long. [146/120]", 667314941], - [1162, 121, 26, "Layout/LineLength: Line is too long. [146/120]", 667314941], - [1164, 121, 28, "Layout/LineLength: Line is too long. [148/120]", 1375785821], - [1176, 3, 1472, "Metrics/BlockLength: Block has too many lines. [31/25]", 844153987], - [1181, 121, 25, "Layout/LineLength: Line is too long. [145/120]", 1239303812], - [1183, 121, 28, "Layout/LineLength: Line is too long. [148/120]", 1251336963], - [1216, 3, 2277, "Metrics/BlockLength: Block has too many lines. [43/25]", 4287127386], - [1221, 121, 26, "Layout/LineLength: Line is too long. [146/120]", 667314941], - [1223, 121, 11, "Layout/LineLength: Line is too long. [131/120]", 2652710920], - [1225, 121, 28, "Layout/LineLength: Line is too long. [148/120]", 1375785821], - [1227, 121, 26, "Layout/LineLength: Line is too long. [146/120]", 632755459], - [1274, 121, 44, "Layout/LineLength: Line is too long. [164/120]", 3420615328] - ], - "spec/ast/merge/recipe/script_loader_spec.rb:2136892097": [ - [3, 1, 8554, "Metrics/BlockLength: Block has too many lines. [237/25]", 2314425369], - [45, 3, 2842, "Metrics/BlockLength: Block has too many lines. [75/25]", 168902852], - [155, 3, 1400, "Metrics/BlockLength: Block has too many lines. [39/25]", 1611123964] - ], - "spec/ast/merge/rspec/shared_examples/feature_profile_spec.rb:2654837708": [ - [5, 1, 1140, "Metrics/BlockLength: Block has too many lines. [31/25]", 678325840] - ], - "spec/ast/merge/rspec/shared_examples/file_analyzable_spec.rb:1833922303": [ - [58, 3, 970, "Metrics/AbcSize: Assignment Branch Condition size for `detect_freeze_blocks` is too high. [<16, 9, 5> 19.03/17]", 1533823667], - [58, 3, 970, "Metrics/MethodLength: Method has too many lines. [31/10]", 1533823667], - [104, 1, 1216, "Metrics/BlockLength: Block has too many lines. [39/25]", 1009012120], - [105, 3, 1159, "Metrics/BlockLength: Block has too many lines. [38/25]", 1361521205] - ], - "spec/ast/merge/rspec/shared_examples/layout_attachment_spec.rb:714796658": [ - [8, 1, 957, "Metrics/BlockLength: Block has too many lines. [28/25]", 3738990548] - ], - "spec/ast/merge/rspec/shared_examples/recipe_preset_contract_spec.rb:669158728": [ - [6, 1, 1577, "Metrics/BlockLength: Block has too many lines. [41/25]", 2157464290], - [7, 3, 1512, "Metrics/BlockLength: Block has too many lines. [39/25]", 1968160370], - [44, 5, 401, "Metrics/AbcSize: Assignment Branch Condition size for `run_verify_loaded_preset` is too high. [<0, 26, 0> 26/17]", 2960760840] - ], - "spec/ast/merge/rspec/shared_examples/removal_mode_compliance_spec.rb:31388352": [ - [6, 22, 2, "Style/MutableConstant: Freeze mutable objects assigned to constants.", 5861859], - [44, 1, 2546, "Metrics/BlockLength: Block has too many lines. [77/25]", 3740028971], - [45, 3, 1350, "Metrics/BlockLength: Block has too many lines. [41/25]", 2793151667], - [94, 3, 1128, "Metrics/BlockLength: Block has too many lines. [32/25]", 2527000512], - [95, 5, 1081, "Metrics/BlockLength: Block has too many lines. [30/25]", 3825359844] - ], - "spec/ast/merge/rspec/shared_examples/reproducible_partial_merge_spec.rb:2862326360": [ - [19, 3, 600, "Metrics/MethodLength: Method has too many lines. [13/10]", 1542875905] - ], - "spec/ast/merge/rspec/tree_haver_backend_contract_spec.rb:3942689234": [ - [20, 1, 1737, "Metrics/BlockLength: Block has too many lines. [29/25]", 2339568528] - ], - "spec/ast/merge/ruleset/config_spec.rb:1860949041": [ - [3, 1, 9431, "Metrics/BlockLength: Block has too many lines. [236/25]", 4015119559], - [24, 3, 5341, "Metrics/BlockLength: Block has too many lines. [149/25]", 2361087446], - [25, 5, 1064, "Metrics/BlockLength: Block has too many lines. [26/25]", 603056104], - [226, 3, 2125, "Metrics/BlockLength: Block has too many lines. [36/25]", 1640873170] - ], - "spec/ast/merge/ruleset/declaration_objects_spec.rb:3827892270": [ - [3, 1, 1881, "Metrics/BlockLength: Block has too many lines. [47/25]", 1770376910] - ], - "spec/ast/merge/ruleset/feature_profile_spec.rb:2241111096": [ - [3, 1, 4189, "Metrics/BlockLength: Block has too many lines. [86/25]", 1116963550], - [4, 3, 4129, "Metrics/BlockLength: Block has too many lines. [84/25]", 117079811], - [5, 5, 2391, "Metrics/BlockLength: Block has too many lines. [45/25]", 1800077283] - ], - "spec/ast/merge/ruleset/parser_spec.rb:386407767": [ - [3, 1, 5670, "Metrics/BlockLength: Block has too many lines. [144/25]", 3425850453], - [4, 3, 5618, "Metrics/BlockLength: Block has too many lines. [143/25]", 246633759] - ], - "spec/ast/merge/ruleset/profile_vocabulary_spec.rb:2570869276": [ - [3, 1, 2095, "Metrics/BlockLength: Block has too many lines. [46/25]", 3214342662] - ], - "spec/ast/merge/ruleset/support_style_resolver_spec.rb:640167644": [ - [3, 1, 1625, "Metrics/BlockLength: Block has too many lines. [49/25]", 2066834885], - [4, 3, 1559, "Metrics/BlockLength: Block has too many lines. [47/25]", 1169495477] - ], - "spec/ast/merge/runtime_spec.rb:3962589694": [ - [5, 1, 24649, "Metrics/BlockLength: Block has too many lines. [664/25]", 2634021188], - [76, 3, 1459, "Metrics/BlockLength: Block has too many lines. [41/25]", 3744002593], - [125, 3, 1417, "Metrics/BlockLength: Block has too many lines. [33/25]", 4087615381], - [166, 3, 2549, "Metrics/BlockLength: Block has too many lines. [69/25]", 3150260095], - [175, 5, 1068, "Metrics/BlockLength: Block has too many lines. [26/25]", 2933114685], - [247, 3, 1668, "Metrics/BlockLength: Block has too many lines. [39/25]", 2386637993], - [259, 5, 1265, "Metrics/BlockLength: Block has too many lines. [27/25]", 3157806167], - [321, 3, 10884, "Metrics/BlockLength: Block has too many lines. [295/25]", 1889265918], - [322, 5, 1879, "Metrics/BlockLength: Block has too many lines. [46/25]", 2536583521], - [373, 5, 3938, "Metrics/BlockLength: Block has too many lines. [108/25]", 340276027], - [486, 5, 1270, "Metrics/BlockLength: Block has too many lines. [38/25]", 3844174392], - [528, 5, 3728, "Metrics/BlockLength: Block has too many lines. [95/25]", 3779381786], - [630, 3, 3240, "Metrics/BlockLength: Block has too many lines. [84/25]", 3856725067], - [656, 5, 1649, "Metrics/BlockLength: Block has too many lines. [40/25]", 3713662683] - ], - "spec/ast/merge/section_typing_spec.rb:2580971307": [ - [3, 1, 14786, "Metrics/BlockLength: Block has too many lines. [344/25]", 2925587076], - [4, 3, 1940, "Metrics/BlockLength: Block has too many lines. [50/25]", 3362429388], - [67, 3, 3684, "Metrics/BlockLength: Block has too many lines. [96/25]", 3864076664], - [120, 5, 1998, "Metrics/BlockLength: Block has too many lines. [50/25]", 411620722], - [183, 3, 1415, "Metrics/BlockLength: Block has too many lines. [37/25]", 3323012675], - [192, 5, 1124, "Metrics/BlockLength: Block has too many lines. [28/25]", 966216762], - [229, 3, 1610, "Metrics/BlockLength: Block has too many lines. [38/25]", 1499957007], - [229, 121, 17, "Layout/LineLength: Line is too long. [137/120]", 1025596574], - [279, 3, 4437, "Metrics/BlockLength: Block has too many lines. [80/25]", 423587151], - [356, 36, 23, "Style/SymbolProc: Pass `&:unclassified?` as an argument to `find` instead of a block.", 563945984], - [369, 36, 23, "Style/SymbolProc: Pass `&:unclassified?` as an argument to `find` instead of a block.", 563945984], - [375, 3, 1630, "Metrics/BlockLength: Block has too many lines. [31/25]", 1675144727] - ], - "spec/ast/merge/smart_merger_base_spec.rb:1904727390": [ - [3, 1, 13253, "Metrics/BlockLength: Block has too many lines. [398/25]", 3611753358], - [30, 9, 10, "Style/MultilineBlockChain: Avoid multi-line chains of blocks.", 1099697163], - [87, 3, 1851, "Metrics/BlockLength: Block has too many lines. [40/25]", 3729571903], - [210, 3, 925, "Metrics/BlockLength: Block has too many lines. [35/25]", 2001100899], - [344, 3, 709, "Metrics/BlockLength: Block has too many lines. [27/25]", 3041950416], - [415, 3, 1074, "Metrics/BlockLength: Block has too many lines. [35/25]", 956635689], - [416, 5, 1026, "Metrics/BlockLength: Block has too many lines. [33/25]", 1993879652], - [461, 3, 1031, "Metrics/BlockLength: Block has too many lines. [31/25]", 35315996] - ], - "spec/ast/merge/source_region_report_support_spec.rb:3996528026": [ - [3, 1, 5448, "Metrics/BlockLength: Block has too many lines. [186/25]", 2713581049], - [4, 3, 112, "Lint/ConstantDefinitionInBlock: Do not define constants this way within a block.", 3709101366], - [6, 3, 295, "Lint/ConstantDefinitionInBlock: Do not define constants this way within a block.", 1625952400], - [17, 3, 1473, "Metrics/BlockLength: Block has too many lines. [49/25]", 1435042916], - [70, 3, 1887, "Metrics/BlockLength: Block has too many lines. [66/25]", 1773930426], - [159, 3, 1109, "Metrics/BlockLength: Block has too many lines. [38/25]", 1457507554] - ], - "spec/ast/merge/structural_edit/boundary_support_spec.rb:863387845": [ - [3, 1, 4226, "Metrics/BlockLength: Block has too many lines. [86/25]", 1889771490], - [16, 9, 42, "Lint/HashCompareByIdentity: Use `Hash#compare_by_identity` instead of using `object_id` for keys.", 1304492024], - [22, 9, 41, "Lint/HashCompareByIdentity: Use `Hash#compare_by_identity` instead of using `object_id` for keys.", 3828424401], - [59, 3, 1294, "Metrics/BlockLength: Block has too many lines. [26/25]", 3038774774] - ], - "spec/ast/merge/structural_edit/plan_set_spec.rb:3633263362": [ - [3, 1, 5945, "Metrics/BlockLength: Block has too many lines. [180/25]", 3883285271], - [14, 3, 2139, "Metrics/BlockLength: Block has too many lines. [72/25]", 3558415255], - [128, 3, 1412, "Metrics/BlockLength: Block has too many lines. [39/25]", 1216754705] - ], - "spec/ast/merge/structural_edit/remove_plan_spec.rb:3569534665": [ - [3, 1, 6442, "Metrics/BlockLength: Block has too many lines. [134/25]", 3440814588], - [39, 3, 3768, "Metrics/BlockLength: Block has too many lines. [75/25]", 876721813], - [127, 3, 1439, "Metrics/BlockLength: Block has too many lines. [29/25]", 3378195351] - ], - "spec/ast/merge/structural_edit/remove_plan_support_spec.rb:800158061": [ - [3, 1, 2893, "Metrics/BlockLength: Block has too many lines. [62/25]", 3748446914], - [16, 9, 43, "Lint/HashCompareByIdentity: Use `Hash#compare_by_identity` instead of using `object_id` for keys.", 3196404056], - [22, 9, 42, "Lint/HashCompareByIdentity: Use `Hash#compare_by_identity` instead of using `object_id` for keys.", 4116824817], - [29, 3, 2091, "Metrics/BlockLength: Block has too many lines. [39/25]", 1684933040], - [30, 5, 1653, "Metrics/BlockLength: Block has too many lines. [27/25]", 2456404305] - ], - "spec/ast/merge/structural_edit/splice_plan_spec.rb:3331205681": [ - [3, 1, 3159, "Metrics/BlockLength: Block has too many lines. [83/25]", 2234926397], - [16, 3, 1837, "Metrics/BlockLength: Block has too many lines. [46/25]", 2935991482], - [42, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5860750] - ], - "spec/ast/merge/text/conflict_resolver_spec.rb:3810004132": [ - [5, 1, 9102, "Metrics/BlockLength: Block has too many lines. [218/25]", 672115618], - [33, 3, 8206, "Metrics/BlockLength: Block has too many lines. [194/25]", 259803246], - [78, 5, 1920, "Metrics/BlockLength: Block has too many lines. [45/25]", 3965182334], - [139, 5, 1918, "Metrics/BlockLength: Block has too many lines. [44/25]", 3707046125] - ], - "spec/ast/merge/text/file_analysis_spec.rb:3430380445": [ - [5, 1, 8842, "Metrics/BlockLength: Block has too many lines. [205/25]", 4255187284], - [6, 3, 1323, "Metrics/BlockLength: Block has too many lines. [29/25]", 2518912953], - [47, 3, 1830, "Metrics/BlockLength: Block has too many lines. [43/25]", 3685770590], - [135, 3, 1620, "Metrics/BlockLength: Block has too many lines. [35/25]", 3089951119] - ], - "spec/ast/merge/text/line_node_spec.rb:1757790485": [ - [5, 1, 4739, "Metrics/BlockLength: Block has too many lines. [131/25]", 1487875238] - ], - "spec/ast/merge/text/merge_result_spec.rb:589380024": [ - [5, 1, 1541, "Metrics/BlockLength: Block has too many lines. [40/25]", 2828087992] - ], - "spec/ast/merge/text/section_splitter_spec.rb:804308722": [ - [4, 1, 5705, "Metrics/BlockLength: Block has too many lines. [209/25]", 4175363685], - [5, 3, 794, "Metrics/BlockLength: Block has too many lines. [28/25]", 2386862842], - [42, 3, 1126, "Metrics/BlockLength: Block has too many lines. [45/25]", 1507887296], - [95, 3, 746, "Metrics/BlockLength: Block has too many lines. [30/25]", 1759029412], - [131, 3, 1169, "Metrics/BlockLength: Block has too many lines. [45/25]", 1412318991], - [184, 3, 754, "Metrics/BlockLength: Block has too many lines. [30/25]", 2717556691], - [246, 1, 16648, "Metrics/BlockLength: Block has too many lines. [428/25]", 3166834694], - [370, 3, 1640, "Metrics/BlockLength: Block has too many lines. [46/25]", 2049342960], - [424, 3, 3237, "Metrics/BlockLength: Block has too many lines. [102/25]", 2357275144], - [540, 3, 3505, "Metrics/BlockLength: Block has too many lines. [67/25]", 2112469350], - [619, 3, 3586, "Metrics/BlockLength: Block has too many lines. [90/25]", 3866409298], - [620, 5, 1650, "Metrics/BlockLength: Block has too many lines. [48/25]", 289235626], - [622, 9, 1474, "Metrics/AbcSize: Assignment Branch Condition size for `split` is too high. [<8, 21, 7> 23.54/17]", 557655357], - [622, 9, 1474, "Metrics/MethodLength: Method has too many lines. [41/10]", 557655357], - [622, 9, 1474, "Metrics/PerceivedComplexity: Perceived complexity for `split` is too high. [9/8]", 557655357], - [628, 11, 1237, "Metrics/BlockLength: Block has too many lines. [33/25]", 1134667672], - [717, 29, 44, "Style/StringConcatenation: Prefer string interpolation to string concatenation.", 2169354946], - [723, 29, 44, "Style/StringConcatenation: Prefer string interpolation to string concatenation.", 2169354946], - [751, 1, 3128, "Metrics/BlockLength: Block has too many lines. [85/25]", 2082776744], - [769, 3, 1744, "Metrics/BlockLength: Block has too many lines. [46/25]", 223880162], - [770, 5, 1258, "Metrics/BlockLength: Block has too many lines. [31/25]", 2245422869] - ], - "spec/ast/merge/text/smart_merger_spec.rb:4128732567": [ - [3, 1, 8057, "Metrics/BlockLength: Block has too many lines. [210/25]", 1690443322], - [4, 3, 1135, "Metrics/BlockLength: Block has too many lines. [28/25]", 3788979655], - [58, 3, 4438, "Metrics/BlockLength: Block has too many lines. [106/25]", 2613192474], - [187, 3, 1053, "Metrics/BlockLength: Block has too many lines. [26/25]", 803567817], - [220, 3, 892, "Metrics/BlockLength: Block has too many lines. [28/25]", 2001100899] - ], - "spec/ast/merge/text/word_node_spec.rb:1457011521": [ - [5, 1, 3264, "Metrics/BlockLength: Block has too many lines. [74/25]", 677733430] - ], - "spec/ast/merge/token_match_refiner_spec.rb:3180314913": [ - [3, 1, 4000, "Metrics/BlockLength: Block has too many lines. [80/25]", 1630791278], - [8, 3, 2912, "Metrics/BlockLength: Block has too many lines. [60/25]", 529772148] - ], - "spec/ast/merge/trailing_groups/alignment_sort_spec.rb:1594915480": [ - [5, 1, 4710, "Metrics/BlockLength: Block has too many lines. [114/25]", 2499296583], - [14, 3, 2140, "Metrics/BlockLength: Block has too many lines. [47/25]", 3871799493], - [95, 3, 1482, "Metrics/BlockLength: Block has too many lines. [35/25]", 1088314263] - ], - "spec/ast/merge/trailing_groups/core_spec.rb:2651131504": [ - [5, 1, 9601, "Metrics/BlockLength: Block has too many lines. [242/25]", 598045669], - [22, 3, 3728, "Metrics/BlockLength: Block has too many lines. [87/25]", 1304580063], - [119, 3, 3931, "Metrics/BlockLength: Block has too many lines. [99/25]", 2464218479], - [186, 5, 1322, "Metrics/BlockLength: Block has too many lines. [30/25]", 427915501], - [187, 7, 1267, "Metrics/BlockLength: Block has too many lines. [28/25]", 861882691], - [245, 3, 1306, "Metrics/BlockLength: Block has too many lines. [34/25]", 86572459] - ], - "spec/ast/merge/trailing_groups/dest_iterate_spec.rb:3632880085": [ - [5, 1, 5523, "Metrics/BlockLength: Block has too many lines. [131/25]", 3077369183], - [19, 3, 3990, "Metrics/BlockLength: Block has too many lines. [91/25]", 593259616], - [39, 35, 12, "Style/SymbolProc: Pass `&:sig` as an argument to `lambda` instead of a block.", 3587754320], - [54, 33, 23, "Lint/HashCompareByIdentity: Use `Hash#compare_by_identity` instead of using `object_id` for keys.", 384283629], - [89, 35, 13, "Style/SymbolProc: Pass `&:name` as an argument to `lambda` instead of a block.", 3561384234], - [98, 35, 12, "Style/SymbolProc: Pass `&:sig` as an argument to `lambda` instead of a block.", 3587754320], - [113, 35, 12, "Style/SymbolProc: Pass `&:sig` as an argument to `lambda` instead of a block.", 3587754320] - ], - "spec/ast/merge/unresolved_policy_spec.rb:2561713656": [ - [3, 1, 1333, "Metrics/BlockLength: Block has too many lines. [33/25]", 4109547889] - ], - "spec/ast/merge/unresolved_review_state_spec.rb:3186871217": [ - [3, 1, 1038, "Metrics/BlockLength: Block has too many lines. [31/25]", 1325553035] - ], - "spec/ast/merge_rspec_conformance_fixtures_spec.rb:251774004": [ - [5, 1, 2119, "Metrics/BlockLength: Block has too many lines. [55/25]", 1724925683], - [6, 3, 1203, "Metrics/BlockLength: Block has too many lines. [29/25]", 3306863581] - ], - "spec/ast/merge_spec.rb:664670069": [ - [3, 1, 3113, "Metrics/BlockLength: Block has too many lines. [74/25]", 4034649501], - [9, 3, 2227, "Metrics/BlockLength: Block has too many lines. [51/25]", 578300230], - [10, 5, 2182, "Metrics/BlockLength: Block has too many lines. [49/25]", 2758871265] - ], - "spec/base_substrate_spec.rb:2864492094": [ - [5, 1, 5800, "Metrics/BlockLength: Block has too many lines. [143/25]", 784801982], - [6, 3, 192, "Lint/ConstantDefinitionInBlock: Do not define constants this way within a block.", 680981873], - [13, 3, 378, "Lint/ConstantDefinitionInBlock: Do not define constants this way within a block.", 1223797442], - [31, 3, 628, "Lint/ConstantDefinitionInBlock: Do not define constants this way within a block.", 2123191050], - [53, 3, 429, "Lint/ConstantDefinitionInBlock: Do not define constants this way within a block.", 3536712197], - [69, 3, 24, "Lint/ConstantDefinitionInBlock: Do not define constants this way within a block.", 2280792512], - [70, 3, 78, "Lint/ConstantDefinitionInBlock: Do not define constants this way within a block.", 604224776], - [72, 3, 146, "Lint/ConstantDefinitionInBlock: Do not define constants this way within a block.", 3315091322] - ], - "spec/fixtures_integration_spec.rb:1145500459": [ - [595, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5859109], - [758, 121, 54, "Layout/LineLength: Line is too long. [174/120]", 576909008], - [881, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2087900170], - [1806, 3, 816, "Metrics/MethodLength: Method has too many lines. [13/10]", 170960660], - [1806, 39, 213, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [10/5]", 635200700], - [1807, 121, 27, "Layout/LineLength: Line is too long. [147/120]", 3976306097], - [1831, 38, 80, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 3297939075], - [1916, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1745553512], - [1917, 121, 38, "Layout/LineLength: Line is too long. [158/120]", 118067488], - [1918, 121, 5, "Layout/LineLength: Line is too long. [125/120]", 196190368], - [1919, 121, 41, "Layout/LineLength: Line is too long. [161/120]", 3371256193], - [2090, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 3241114703], - [2428, 121, 1, "Layout/LineLength: Line is too long. [121/120]", 177548], - [2567, 121, 1, "Layout/LineLength: Line is too long. [121/120]", 177548], - [2991, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 3697593604], - [2992, 121, 1, "Layout/LineLength: Line is too long. [121/120]", 177548], - [3113, 121, 5, "Layout/LineLength: Line is too long. [125/120]", 179435314], - [3122, 121, 34, "Layout/LineLength: Line is too long. [154/120]", 1182194285], - [3124, 121, 28, "Layout/LineLength: Line is too long. [148/120]", 3886107031], - [3151, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1751849111], - [3152, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 1519587684], - [3153, 121, 11, "Layout/LineLength: Line is too long. [131/120]", 4086262880], - [3170, 121, 10, "Layout/LineLength: Line is too long. [130/120]", 3568081822], - [3171, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 1776876782], - [3173, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5858795], - [3174, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1751849111], - [3176, 121, 73, "Layout/LineLength: Line is too long. [193/120]", 3322243646], - [3178, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1715153206], - [3179, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5858795], - [3180, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 504997180], - [3181, 121, 44, "Layout/LineLength: Line is too long. [164/120]", 1146860021], - [3182, 121, 38, "Layout/LineLength: Line is too long. [158/120]", 2312101607], - [3183, 121, 42, "Layout/LineLength: Line is too long. [162/120]", 1423779161], - [3184, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1900897138], - [3185, 121, 10, "Layout/LineLength: Line is too long. [130/120]", 1689840383], - [3186, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 1589056236], - [3188, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 763176550], - [3194, 121, 16, "Layout/LineLength: Line is too long. [136/120]", 3957871310], - [3196, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 763176550], - [3198, 121, 10, "Layout/LineLength: Line is too long. [130/120]", 919916608], - [3199, 121, 10, "Layout/LineLength: Line is too long. [130/120]", 919916608], - [3200, 121, 16, "Layout/LineLength: Line is too long. [136/120]", 3957871310], - [3201, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 4073040612], - [3202, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 763176550], - [3203, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 667593075], - [3205, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1310972770], - [3206, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 311387795], - [3207, 121, 18, "Layout/LineLength: Line is too long. [138/120]", 724840266], - [3208, 121, 22, "Layout/LineLength: Line is too long. [142/120]", 2555878310], - [3209, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1781078972], - [3210, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5858795], - [3213, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5858795], - [3214, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 1658060570], - [3215, 121, 40, "Layout/LineLength: Line is too long. [160/120]", 3085728851], - [3216, 121, 44, "Layout/LineLength: Line is too long. [164/120]", 3129400559], - [3217, 121, 10, "Layout/LineLength: Line is too long. [130/120]", 3197516464], - [3218, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2087771520], - [3219, 121, 22, "Layout/LineLength: Line is too long. [142/120]", 3837194228], - [3220, 121, 42, "Layout/LineLength: Line is too long. [162/120]", 1312323543], - [3221, 121, 46, "Layout/LineLength: Line is too long. [166/120]", 2356847623], - [3222, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5858795], - [3223, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 3428073441], - [3224, 121, 40, "Layout/LineLength: Line is too long. [160/120]", 2891080552], - [3225, 121, 44, "Layout/LineLength: Line is too long. [164/120]", 3080737172], - [3226, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 170445026], - [3227, 121, 32, "Layout/LineLength: Line is too long. [152/120]", 3240051869], - [3228, 121, 52, "Layout/LineLength: Line is too long. [172/120]", 4266052680], - [3229, 121, 56, "Layout/LineLength: Line is too long. [176/120]", 3376297786], - [3230, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 398435913], - [3231, 121, 26, "Layout/LineLength: Line is too long. [146/120]", 4134940256], - [3232, 121, 46, "Layout/LineLength: Line is too long. [166/120]", 30370035], - [3233, 121, 50, "Layout/LineLength: Line is too long. [170/120]", 2862546359], - [3234, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 1901388514], - [3235, 121, 38, "Layout/LineLength: Line is too long. [158/120]", 838864274], - [3236, 121, 58, "Layout/LineLength: Line is too long. [178/120]", 3437460384], - [3237, 121, 62, "Layout/LineLength: Line is too long. [182/120]", 1567003152], - [3238, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 2609066305], - [3239, 121, 32, "Layout/LineLength: Line is too long. [152/120]", 4043187090], - [3240, 121, 52, "Layout/LineLength: Line is too long. [172/120]", 3866430009], - [3241, 121, 56, "Layout/LineLength: Line is too long. [176/120]", 2182699083], - [3242, 121, 26, "Layout/LineLength: Line is too long. [146/120]", 3958792129], - [3243, 121, 44, "Layout/LineLength: Line is too long. [164/120]", 3449926560], - [3244, 121, 64, "Layout/LineLength: Line is too long. [184/120]", 399774089], - [3245, 121, 68, "Layout/LineLength: Line is too long. [188/120]", 2119246799], - [3247, 121, 32, "Layout/LineLength: Line is too long. [152/120]", 3592658842], - [3248, 121, 18, "Layout/LineLength: Line is too long. [138/120]", 2905723409], - [3249, 121, 38, "Layout/LineLength: Line is too long. [158/120]", 3930305198], - [3250, 121, 42, "Layout/LineLength: Line is too long. [162/120]", 4186230052], - [3251, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5858795], - [3252, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 2700200720], - [3253, 121, 40, "Layout/LineLength: Line is too long. [160/120]", 1630526402], - [3254, 121, 44, "Layout/LineLength: Line is too long. [164/120]", 3669244926], - [3255, 121, 18, "Layout/LineLength: Line is too long. [138/120]", 2814234644], - [3256, 121, 36, "Layout/LineLength: Line is too long. [156/120]", 3109415933], - [3257, 121, 56, "Layout/LineLength: Line is too long. [176/120]", 3643275044], - [3258, 121, 60, "Layout/LineLength: Line is too long. [180/120]", 3825290660], - [3259, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1751849111], - [3260, 121, 24, "Layout/LineLength: Line is too long. [144/120]", 4112285398], - [3261, 121, 44, "Layout/LineLength: Line is too long. [164/120]", 1684279672], - [3262, 121, 48, "Layout/LineLength: Line is too long. [168/120]", 1616506266], - [3264, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5858795], - [3265, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 1330093223], - [3266, 121, 40, "Layout/LineLength: Line is too long. [160/120]", 4084555566], - [3267, 121, 44, "Layout/LineLength: Line is too long. [164/120]", 2466867154], - [3268, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 4088314613], - [3269, 121, 26, "Layout/LineLength: Line is too long. [146/120]", 2416893689], - [3270, 121, 46, "Layout/LineLength: Line is too long. [166/120]", 683312682], - [3271, 121, 50, "Layout/LineLength: Line is too long. [170/120]", 2516517934], - [3272, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 2414563355], - [3273, 121, 38, "Layout/LineLength: Line is too long. [158/120]", 2232595211], - [3274, 121, 58, "Layout/LineLength: Line is too long. [178/120]", 2940789369], - [3275, 121, 62, "Layout/LineLength: Line is too long. [182/120]", 941259913], - [3276, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 2133508098], - [3277, 121, 26, "Layout/LineLength: Line is too long. [146/120]", 1621975014], - [3278, 121, 46, "Layout/LineLength: Line is too long. [166/120]", 35985461], - [3279, 121, 50, "Layout/LineLength: Line is too long. [170/120]", 746016305], - [3280, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 435488100], - [3281, 121, 38, "Layout/LineLength: Line is too long. [158/120]", 2581129172], - [3282, 121, 58, "Layout/LineLength: Line is too long. [178/120]", 3495900774], - [3283, 121, 62, "Layout/LineLength: Line is too long. [182/120]", 1413120342], - [3284, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5858795], - [3285, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 2333800791], - [3286, 121, 40, "Layout/LineLength: Line is too long. [160/120]", 2576906206], - [3287, 121, 44, "Layout/LineLength: Line is too long. [164/120]", 2986659874], - [3288, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 2811932564], - [3289, 121, 32, "Layout/LineLength: Line is too long. [152/120]", 1970813291], - [3290, 121, 52, "Layout/LineLength: Line is too long. [172/120]", 2904941246], - [3291, 121, 56, "Layout/LineLength: Line is too long. [176/120]", 3745922508], - [3292, 121, 32, "Layout/LineLength: Line is too long. [152/120]", 735247237], - [3293, 121, 50, "Layout/LineLength: Line is too long. [170/120]", 3731320885], - [3294, 121, 70, "Layout/LineLength: Line is too long. [190/120]", 3896022034], - [3295, 121, 74, "Layout/LineLength: Line is too long. [194/120]", 2827048584], - [3296, 121, 44, "Layout/LineLength: Line is too long. [164/120]", 2548596663], - [3297, 121, 62, "Layout/LineLength: Line is too long. [182/120]", 3812352018], - [3298, 121, 82, "Layout/LineLength: Line is too long. [202/120]", 1280243910], - [3299, 121, 86, "Layout/LineLength: Line is too long. [206/120]", 1742643292], - [3300, 121, 40, "Layout/LineLength: Line is too long. [160/120]", 3056442430], - [3301, 121, 58, "Layout/LineLength: Line is too long. [178/120]", 3144363287], - [3302, 121, 78, "Layout/LineLength: Line is too long. [198/120]", 477297993], - [3303, 121, 82, "Layout/LineLength: Line is too long. [202/120]", 3657857971], - [3304, 121, 52, "Layout/LineLength: Line is too long. [172/120]", 3913984414], - [3305, 121, 70, "Layout/LineLength: Line is too long. [190/120]", 336201058], - [3306, 121, 90, "Layout/LineLength: Line is too long. [210/120]", 485418789], - [3307, 121, 94, "Layout/LineLength: Line is too long. [214/120]", 453253839], - [3308, 121, 32, "Layout/LineLength: Line is too long. [152/120]", 3673833034], - [3309, 121, 50, "Layout/LineLength: Line is too long. [170/120]", 1552836890], - [3310, 121, 70, "Layout/LineLength: Line is too long. [190/120]", 2714635965], - [3311, 121, 74, "Layout/LineLength: Line is too long. [194/120]", 9336999], - [3312, 121, 44, "Layout/LineLength: Line is too long. [164/120]", 584857208], - [3313, 121, 62, "Layout/LineLength: Line is too long. [182/120]", 1394865213], - [3314, 121, 82, "Layout/LineLength: Line is too long. [202/120]", 3973222761], - [3315, 121, 86, "Layout/LineLength: Line is too long. [206/120]", 2020040051], - [3316, 121, 34, "Layout/LineLength: Line is too long. [154/120]", 3060994335], - [3317, 121, 52, "Layout/LineLength: Line is too long. [172/120]", 196286917], - [3318, 121, 72, "Layout/LineLength: Line is too long. [192/120]", 4168514178], - [3319, 121, 76, "Layout/LineLength: Line is too long. [196/120]", 810581246], - [3320, 121, 46, "Layout/LineLength: Line is too long. [166/120]", 1473417372], - [3321, 121, 64, "Layout/LineLength: Line is too long. [184/120]", 3008376885], - [3322, 121, 84, "Layout/LineLength: Line is too long. [204/120]", 454816400], - [3323, 121, 88, "Layout/LineLength: Line is too long. [208/120]", 1416223705], - [3324, 121, 48, "Layout/LineLength: Line is too long. [168/120]", 2896813919], - [3325, 121, 66, "Layout/LineLength: Line is too long. [186/120]", 957293983], - [3326, 121, 86, "Layout/LineLength: Line is too long. [206/120]", 2118117430], - [3327, 121, 90, "Layout/LineLength: Line is too long. [210/120]", 1367404612], - [3328, 121, 64, "Layout/LineLength: Line is too long. [184/120]", 2459902188], - [3329, 121, 62, "Layout/LineLength: Line is too long. [182/120]", 461483815], - [3330, 121, 62, "Layout/LineLength: Line is too long. [182/120]", 2791596520], - [3331, 121, 60, "Layout/LineLength: Line is too long. [180/120]", 203085787], - [3332, 121, 64, "Layout/LineLength: Line is too long. [184/120]", 2942095139], - [3333, 121, 80, "Layout/LineLength: Line is too long. [200/120]", 131861965], - [3334, 121, 86, "Layout/LineLength: Line is too long. [206/120]", 3340827551], - [3335, 121, 90, "Layout/LineLength: Line is too long. [210/120]", 102582610], - [3336, 121, 94, "Layout/LineLength: Line is too long. [214/120]", 762789354], - [3337, 121, 90, "Layout/LineLength: Line is too long. [210/120]", 3478337442], - [3338, 121, 112, "Layout/LineLength: Line is too long. [232/120]", 4010607435], - [3339, 121, 132, "Layout/LineLength: Line is too long. [252/120]", 3754747587], - [3340, 121, 136, "Layout/LineLength: Line is too long. [256/120]", 379336923], - [3341, 121, 108, "Layout/LineLength: Line is too long. [228/120]", 3366353902], - [3342, 121, 128, "Layout/LineLength: Line is too long. [248/120]", 1686898289], - [3343, 121, 132, "Layout/LineLength: Line is too long. [252/120]", 2005192241], - [3344, 121, 104, "Layout/LineLength: Line is too long. [224/120]", 1868634464], - [3345, 121, 124, "Layout/LineLength: Line is too long. [244/120]", 3939743614], - [3346, 121, 128, "Layout/LineLength: Line is too long. [248/120]", 2978506702], - [3347, 121, 98, "Layout/LineLength: Line is too long. [218/120]", 3909866928], - [3348, 121, 118, "Layout/LineLength: Line is too long. [238/120]", 2853032177], - [3349, 121, 122, "Layout/LineLength: Line is too long. [242/120]", 2968366309], - [3350, 121, 82, "Layout/LineLength: Line is too long. [202/120]", 1753663643], - [3351, 121, 102, "Layout/LineLength: Line is too long. [222/120]", 3387619436], - [3352, 121, 106, "Layout/LineLength: Line is too long. [226/120]", 197895496], - [3353, 121, 78, "Layout/LineLength: Line is too long. [198/120]", 576181861], - [3354, 121, 98, "Layout/LineLength: Line is too long. [218/120]", 2809313444], - [3355, 121, 102, "Layout/LineLength: Line is too long. [222/120]", 3963067112], - [3356, 121, 80, "Layout/LineLength: Line is too long. [200/120]", 1121380327], - [3357, 121, 100, "Layout/LineLength: Line is too long. [220/120]", 31591211], - [3358, 121, 104, "Layout/LineLength: Line is too long. [224/120]", 1946129497], - [3359, 121, 80, "Layout/LineLength: Line is too long. [200/120]", 767185096], - [3360, 121, 100, "Layout/LineLength: Line is too long. [220/120]", 1092646020], - [3361, 121, 104, "Layout/LineLength: Line is too long. [224/120]", 1328841270], - [3362, 121, 74, "Layout/LineLength: Line is too long. [194/120]", 2663749624], - [3363, 121, 74, "Layout/LineLength: Line is too long. [194/120]", 430318647], - [3364, 121, 72, "Layout/LineLength: Line is too long. [192/120]", 1650234037], - [3365, 121, 76, "Layout/LineLength: Line is too long. [196/120]", 1082269805], - [3366, 121, 92, "Layout/LineLength: Line is too long. [212/120]", 316397809], - [3367, 121, 92, "Layout/LineLength: Line is too long. [212/120]", 3145391348], - [3368, 121, 112, "Layout/LineLength: Line is too long. [232/120]", 2808088654], - [3369, 121, 116, "Layout/LineLength: Line is too long. [236/120]", 1035513748], - [3370, 121, 92, "Layout/LineLength: Line is too long. [212/120]", 2552800539], - [3371, 121, 112, "Layout/LineLength: Line is too long. [232/120]", 1727699169], - [3372, 121, 116, "Layout/LineLength: Line is too long. [236/120]", 1171566267], - [3373, 121, 90, "Layout/LineLength: Line is too long. [210/120]", 2994775049], - [3374, 121, 110, "Layout/LineLength: Line is too long. [230/120]", 3860489151], - [3375, 121, 114, "Layout/LineLength: Line is too long. [234/120]", 959496607], - [3376, 121, 94, "Layout/LineLength: Line is too long. [214/120]", 1694222439], - [3377, 121, 114, "Layout/LineLength: Line is too long. [234/120]", 1501186331], - [3378, 121, 118, "Layout/LineLength: Line is too long. [238/120]", 4059659418], - [3379, 121, 110, "Layout/LineLength: Line is too long. [230/120]", 1899868779], - [3380, 121, 130, "Layout/LineLength: Line is too long. [250/120]", 323324279], - [3381, 121, 134, "Layout/LineLength: Line is too long. [254/120]", 3956414359], - [3382, 121, 98, "Layout/LineLength: Line is too long. [218/120]", 3506644741], - [3383, 121, 116, "Layout/LineLength: Line is too long. [236/120]", 936139074], - [3384, 121, 136, "Layout/LineLength: Line is too long. [256/120]", 4153213512], - [3385, 121, 140, "Layout/LineLength: Line is too long. [260/120]", 1491976338], - [3386, 121, 102, "Layout/LineLength: Line is too long. [222/120]", 4061753206], - [3387, 121, 106, "Layout/LineLength: Line is too long. [226/120]", 2410434304], - [3388, 121, 124, "Layout/LineLength: Line is too long. [244/120]", 3518300264], - [3389, 121, 144, "Layout/LineLength: Line is too long. [264/120]", 1040696046], - [3390, 121, 148, "Layout/LineLength: Line is too long. [268/120]", 139604188], - [3391, 121, 120, "Layout/LineLength: Line is too long. [240/120]", 231937793], - [3392, 121, 140, "Layout/LineLength: Line is too long. [260/120]", 1835509805], - [3393, 121, 144, "Layout/LineLength: Line is too long. [264/120]", 1629218396], - [3394, 121, 82, "Layout/LineLength: Line is too long. [202/120]", 2312875700], - [3395, 121, 102, "Layout/LineLength: Line is too long. [222/120]", 2933374083], - [3396, 121, 106, "Layout/LineLength: Line is too long. [226/120]", 1719349671], - [3397, 121, 76, "Layout/LineLength: Line is too long. [196/120]", 2555579810], - [3398, 121, 94, "Layout/LineLength: Line is too long. [214/120]", 2023551624], - [3399, 121, 114, "Layout/LineLength: Line is too long. [234/120]", 955231924], - [3400, 121, 118, "Layout/LineLength: Line is too long. [238/120]", 4232993781], - [3401, 121, 60, "Layout/LineLength: Line is too long. [180/120]", 3472954835], - [3402, 121, 78, "Layout/LineLength: Line is too long. [198/120]", 3211922285], - [3403, 121, 98, "Layout/LineLength: Line is too long. [218/120]", 2874956332], - [3404, 121, 102, "Layout/LineLength: Line is too long. [222/120]", 1360335840], - [3405, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 2135379556], - [3406, 121, 32, "Layout/LineLength: Line is too long. [152/120]", 3242768475], - [3407, 121, 52, "Layout/LineLength: Line is too long. [172/120]", 2789115918], - [3408, 121, 56, "Layout/LineLength: Line is too long. [176/120]", 3346448124], - [3409, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 1538469817], - [3410, 121, 34, "Layout/LineLength: Line is too long. [154/120]", 1543041113], - [3411, 121, 38, "Layout/LineLength: Line is too long. [158/120]", 3344741438], - [3412, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 2188404009], - [3413, 121, 26, "Layout/LineLength: Line is too long. [146/120]", 1330398779], - [3414, 121, 46, "Layout/LineLength: Line is too long. [166/120]", 332468826], - [3415, 121, 50, "Layout/LineLength: Line is too long. [170/120]", 1905397598], - [3416, 121, 28, "Layout/LineLength: Line is too long. [148/120]", 438831062], - [3417, 121, 48, "Layout/LineLength: Line is too long. [168/120]", 3377667334], - [3418, 121, 52, "Layout/LineLength: Line is too long. [172/120]", 3232541734], - [3420, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 2130930429], - [3421, 121, 24, "Layout/LineLength: Line is too long. [144/120]", 3684939371], - [3423, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 2361951097], - [3424, 121, 32, "Layout/LineLength: Line is too long. [152/120]", 1211447462], - [3425, 121, 52, "Layout/LineLength: Line is too long. [172/120]", 3309872691], - [3426, 121, 56, "Layout/LineLength: Line is too long. [176/120]", 360053761], - [3427, 121, 16, "Layout/LineLength: Line is too long. [136/120]", 1310136493], - [3428, 121, 34, "Layout/LineLength: Line is too long. [154/120]", 1950686342], - [3429, 121, 54, "Layout/LineLength: Line is too long. [174/120]", 1397845826], - [3430, 121, 58, "Layout/LineLength: Line is too long. [178/120]", 4191304724], - [3431, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 2354128498], - [3432, 121, 30, "Layout/LineLength: Line is too long. [150/120]", 1865717453], - [3433, 121, 50, "Layout/LineLength: Line is too long. [170/120]", 24220542], - [3434, 121, 54, "Layout/LineLength: Line is too long. [174/120]", 2618612673], - [3437, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 3422918867], - [3438, 121, 16, "Layout/LineLength: Line is too long. [136/120]", 3689431739], - [3482, 121, 47, "Layout/LineLength: Line is too long. [167/120]", 4093564799], - [3488, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1662653970], - [3489, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 3967501655], - [3490, 121, 17, "Layout/LineLength: Line is too long. [137/120]", 2178516622], - [3491, 121, 40, "Layout/LineLength: Line is too long. [160/120]", 1345346561], - [3505, 121, 3, "Layout/LineLength: Line is too long. [123/120]", 193466072], - [3625, 121, 23, "Layout/LineLength: Line is too long. [143/120]", 3612393276], - [3626, 121, 9, "Layout/LineLength: Line is too long. [129/120]", 797303985], - [3629, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 1606320605], - [3649, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 1776876782], - [3653, 121, 7, "Layout/LineLength: Line is too long. [127/120]", 828742791], - [3673, 121, 31, "Layout/LineLength: Line is too long. [151/120]", 3294617581], - [3683, 121, 22, "Layout/LineLength: Line is too long. [142/120]", 3519842846], - [3693, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 1966440909], - [3694, 121, 7, "Layout/LineLength: Line is too long. [127/120]", 830053864], - [3700, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 1606320605], - [3723, 121, 16, "Layout/LineLength: Line is too long. [136/120]", 1340744311], - [3742, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1741893077], - [3743, 121, 7, "Layout/LineLength: Line is too long. [127/120]", 830053865], - [3747, 121, 3, "Layout/LineLength: Line is too long. [123/120]", 193405204], - [3761, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 1401226501], - [3764, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2085352569], - [3767, 121, 17, "Layout/LineLength: Line is too long. [137/120]", 696523922], - [3782, 121, 5, "Layout/LineLength: Line is too long. [125/120]", 182097675], - [3792, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 2746826653], - [4208, 121, 19, "Layout/LineLength: Line is too long. [139/120]", 1138870161], - [4770, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5862609], - [4781, 121, 13, "Layout/LineLength: Line is too long. [133/120]", 2132299307], - [4828, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2087775098], - [4839, 121, 15, "Layout/LineLength: Line is too long. [135/120]", 757851079], - [4875, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5862609], - [4886, 121, 13, "Layout/LineLength: Line is too long. [133/120]", 441649198], - [4909, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2087903295], - [4921, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 170442008], - [4930, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 2102137893], - [4932, 121, 25, "Layout/LineLength: Line is too long. [145/120]", 1888875443], - [4969, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 398433651], - [4980, 121, 19, "Layout/LineLength: Line is too long. [139/120]", 3921367744], - [5003, 121, 10, "Layout/LineLength: Line is too long. [130/120]", 2422819473], - [5009, 121, 5, "Layout/LineLength: Line is too long. [125/120]", 194583095], - [5015, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 1901385496], - [5024, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 490810486], - [5026, 121, 31, "Layout/LineLength: Line is too long. [151/120]", 586287746], - [5030, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1310969752], - [5050, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2087389205], - [5062, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 2609063547], - [5071, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 2102137893], - [5073, 121, 25, "Layout/LineLength: Line is too long. [145/120]", 1370761696], - [5096, 121, 16, "Layout/LineLength: Line is too long. [136/120]", 2208661169], - [5102, 121, 11, "Layout/LineLength: Line is too long. [131/120]", 1862604658], - [5108, 121, 26, "Layout/LineLength: Line is too long. [146/120]", 3958789371], - [5117, 121, 18, "Layout/LineLength: Line is too long. [138/120]", 3449594464], - [5119, 121, 37, "Layout/LineLength: Line is too long. [157/120]", 692050524], - [5123, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 802172558], - [5193, 121, 11, "Layout/LineLength: Line is too long. [131/120]", 2406691660], - [5228, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5862609], - [5239, 121, 13, "Layout/LineLength: Line is too long. [133/120]", 1811982742], - [5266, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 2562189319], - [5272, 121, 3, "Layout/LineLength: Line is too long. [123/120]", 193430346], - [5278, 121, 18, "Layout/LineLength: Line is too long. [138/120]", 2814237166], - [5287, 121, 10, "Layout/LineLength: Line is too long. [130/120]", 2189106693], - [5289, 121, 29, "Layout/LineLength: Line is too long. [149/120]", 3874870868], - [5293, 121, 5, "Layout/LineLength: Line is too long. [125/120]", 179474914], - [5326, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1751845165], - [5337, 121, 17, "Layout/LineLength: Line is too long. [137/120]", 2617230371], - [5341, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5862609], - [5382, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5862609], - [5393, 121, 13, "Layout/LineLength: Line is too long. [133/120]", 3793790598], - [5428, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 4088312783], - [5439, 121, 19, "Layout/LineLength: Line is too long. [139/120]", 3220724736], - [5443, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2087899888], - [5462, 121, 10, "Layout/LineLength: Line is too long. [130/120]", 2552888401], - [5468, 121, 5, "Layout/LineLength: Line is too long. [125/120]", 194583095], - [5474, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 2414559905], - [5483, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 626762179], - [5485, 121, 31, "Layout/LineLength: Line is too long. [151/120]", 3969284923], - [5489, 121, 16, "Layout/LineLength: Line is too long. [136/120]", 1893261414], - [5521, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 2133507320], - [5532, 121, 19, "Layout/LineLength: Line is too long. [139/120]", 2101353476], - [5536, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2087685705], - [5555, 121, 10, "Layout/LineLength: Line is too long. [130/120]", 2431380437], - [5561, 121, 5, "Layout/LineLength: Line is too long. [125/120]", 194583095], - [5567, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 435489438], - [5576, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 1520878209], - [5578, 121, 31, "Layout/LineLength: Line is too long. [151/120]", 2238995076], - [5582, 121, 16, "Layout/LineLength: Line is too long. [136/120]", 2789405913], - [5615, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5862609], - [5626, 121, 13, "Layout/LineLength: Line is too long. [133/120]", 3409328196], - [5649, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2087858069], - [5661, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 2811935086], - [5670, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 2102137893], - [5672, 121, 25, "Layout/LineLength: Line is too long. [145/120]", 1113346693], - [5676, 121, 10, "Layout/LineLength: Line is too long. [130/120]", 3227128786], - [5696, 121, 22, "Layout/LineLength: Line is too long. [142/120]", 48793812], - [5702, 121, 17, "Layout/LineLength: Line is too long. [137/120]", 338440584], - [5708, 121, 32, "Layout/LineLength: Line is too long. [152/120]", 735248703], - [5717, 121, 24, "Layout/LineLength: Line is too long. [144/120]", 927473097], - [5719, 121, 43, "Layout/LineLength: Line is too long. [163/120]", 1394536741], - [5723, 121, 18, "Layout/LineLength: Line is too long. [138/120]", 3134012967], - [5742, 121, 34, "Layout/LineLength: Line is too long. [154/120]", 2967615316], - [5748, 121, 29, "Layout/LineLength: Line is too long. [149/120]", 2810710931], - [5754, 121, 44, "Layout/LineLength: Line is too long. [164/120]", 2548594701], - [5757, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5860796], - [5759, 121, 5, "Layout/LineLength: Line is too long. [125/120]", 182097675], - [5763, 121, 36, "Layout/LineLength: Line is too long. [156/120]", 3549194295], - [5765, 121, 55, "Layout/LineLength: Line is too long. [175/120]", 1074004741], - [5769, 121, 30, "Layout/LineLength: Line is too long. [150/120]", 2874423564], - [5772, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2087576526], - [5774, 121, 5, "Layout/LineLength: Line is too long. [125/120]", 182097675], - [5789, 121, 30, "Layout/LineLength: Line is too long. [150/120]", 1696848307], - [5795, 121, 25, "Layout/LineLength: Line is too long. [145/120]", 2883501659], - [5801, 121, 40, "Layout/LineLength: Line is too long. [160/120]", 3056443076], - [5806, 121, 3, "Layout/LineLength: Line is too long. [123/120]", 193405204], - [5810, 121, 32, "Layout/LineLength: Line is too long. [152/120]", 1487412605], - [5812, 121, 51, "Layout/LineLength: Line is too long. [171/120]", 2021571284], - [5816, 121, 26, "Layout/LineLength: Line is too long. [146/120]", 1975782995], - [5819, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5860796], - [5821, 121, 3, "Layout/LineLength: Line is too long. [123/120]", 193405204], - [5826, 121, 5, "Layout/LineLength: Line is too long. [125/120]", 183236849], - [5835, 121, 42, "Layout/LineLength: Line is too long. [162/120]", 856018753], - [5838, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5862609], - [5841, 121, 37, "Layout/LineLength: Line is too long. [157/120]", 2146546324], - [5847, 121, 52, "Layout/LineLength: Line is too long. [172/120]", 3913983076], - [5850, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 3491931666], - [5852, 121, 9, "Layout/LineLength: Line is too long. [129/120]", 3536323546], - [5856, 121, 44, "Layout/LineLength: Line is too long. [164/120]", 356581191], - [5858, 121, 63, "Layout/LineLength: Line is too long. [183/120]", 4144657639], - [5862, 121, 38, "Layout/LineLength: Line is too long. [158/120]", 1478616653], - [5865, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 1774852021], - [5867, 121, 9, "Layout/LineLength: Line is too long. [129/120]", 3536323546], - [5882, 121, 22, "Layout/LineLength: Line is too long. [142/120]", 3884289787], - [5888, 121, 17, "Layout/LineLength: Line is too long. [137/120]", 1001503687], - [5894, 121, 32, "Layout/LineLength: Line is too long. [152/120]", 3673836976], - [5903, 121, 24, "Layout/LineLength: Line is too long. [144/120]", 3164908550], - [5905, 121, 43, "Layout/LineLength: Line is too long. [163/120]", 1134300778], - [5909, 121, 18, "Layout/LineLength: Line is too long. [138/120]", 1797165224], - [5928, 121, 34, "Layout/LineLength: Line is too long. [154/120]", 2508143995], - [5934, 121, 29, "Layout/LineLength: Line is too long. [149/120]", 3002532188], - [5940, 121, 44, "Layout/LineLength: Line is too long. [164/120]", 584857986], - [5943, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5860796], - [5945, 121, 5, "Layout/LineLength: Line is too long. [125/120]", 182097675], - [5949, 121, 36, "Layout/LineLength: Line is too long. [156/120]", 749691384], - [5951, 121, 55, "Layout/LineLength: Line is too long. [175/120]", 3389354954], - [5955, 121, 30, "Layout/LineLength: Line is too long. [150/120]", 3402045699], - [5958, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2087576526], - [5960, 121, 5, "Layout/LineLength: Line is too long. [125/120]", 182097675], - [5974, 121, 24, "Layout/LineLength: Line is too long. [144/120]", 2447716612], - [5980, 121, 19, "Layout/LineLength: Line is too long. [139/120]", 3201685099], - [5986, 121, 34, "Layout/LineLength: Line is too long. [154/120]", 3060990885], - [5995, 121, 26, "Layout/LineLength: Line is too long. [146/120]", 29396315], - [5997, 121, 45, "Layout/LineLength: Line is too long. [165/120]", 1228645365], - [6001, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 1436742837], - [6020, 121, 36, "Layout/LineLength: Line is too long. [156/120]", 716917214], - [6026, 121, 31, "Layout/LineLength: Line is too long. [151/120]", 2175814211], - [6032, 121, 46, "Layout/LineLength: Line is too long. [166/120]", 1473420390], - [6035, 121, 3, "Layout/LineLength: Line is too long. [123/120]", 193433391], - [6037, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1422839111], - [6041, 121, 38, "Layout/LineLength: Line is too long. [158/120]", 1571170198], - [6043, 121, 57, "Layout/LineLength: Line is too long. [177/120]", 2175059093], - [6047, 121, 32, "Layout/LineLength: Line is too long. [152/120]", 3886666417], - [6050, 121, 5, "Layout/LineLength: Line is too long. [125/120]", 176753677], - [6052, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1422839111], - [6068, 121, 38, "Layout/LineLength: Line is too long. [158/120]", 3471319495], - [6074, 121, 33, "Layout/LineLength: Line is too long. [153/120]", 1274038477], - [6080, 121, 48, "Layout/LineLength: Line is too long. [168/120]", 2896814693], - [6083, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2087576526], - [6085, 121, 7, "Layout/LineLength: Line is too long. [127/120]", 4114086530], - [6089, 121, 40, "Layout/LineLength: Line is too long. [160/120]", 250433828], - [6091, 121, 59, "Layout/LineLength: Line is too long. [179/120]", 3910556848], - [6095, 121, 34, "Layout/LineLength: Line is too long. [154/120]", 4002014976], - [6098, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 3491931666], - [6100, 121, 7, "Layout/LineLength: Line is too long. [127/120]", 4114086530], - [6194, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5861664], - [6208, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2087932582], - [6222, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5861664], - [6238, 121, 80, "Layout/LineLength: Line is too long. [200/120]", 876012844], - [6240, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1756764194], - [6241, 121, 21, "Layout/LineLength: Line is too long. [141/120]", 4173216735], - [6244, 121, 75, "Layout/LineLength: Line is too long. [195/120]", 911964425], - [6245, 121, 5, "Layout/LineLength: Line is too long. [125/120]", 173266907], - [6246, 121, 11, "Layout/LineLength: Line is too long. [131/120]", 1412705933], - [6249, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1756764194], - [6250, 121, 90, "Layout/LineLength: Line is too long. [210/120]", 2605683750], - [6253, 121, 25, "Layout/LineLength: Line is too long. [145/120]", 3182252139], - [6255, 121, 28, "Layout/LineLength: Line is too long. [148/120]", 1652557742], - [6259, 121, 82, "Layout/LineLength: Line is too long. [202/120]", 2240437058], - [6260, 121, 5, "Layout/LineLength: Line is too long. [125/120]", 173266907], - [6261, 121, 101, "Layout/LineLength: Line is too long. [221/120]", 3694598076], - [6263, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5861152], - [6264, 121, 5, "Layout/LineLength: Line is too long. [125/120]", 179079542], - [6265, 121, 76, "Layout/LineLength: Line is too long. [196/120]", 3528944411], - [6268, 121, 27, "Layout/LineLength: Line is too long. [147/120]", 3020159378], - [6270, 121, 28, "Layout/LineLength: Line is too long. [148/120]", 1652557742], - [6276, 121, 84, "Layout/LineLength: Line is too long. [204/120]", 420843234], - [6278, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 1401226501], - [6279, 121, 23, "Layout/LineLength: Line is too long. [143/120]", 442915368], - [6282, 121, 79, "Layout/LineLength: Line is too long. [199/120]", 4212444955], - [6283, 121, 7, "Layout/LineLength: Line is too long. [127/120]", 830053864], - [6284, 121, 13, "Layout/LineLength: Line is too long. [133/120]", 1373660924], - [6287, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 1401226501], - [6288, 121, 94, "Layout/LineLength: Line is too long. [214/120]", 1539225758], - [6291, 121, 27, "Layout/LineLength: Line is too long. [147/120]", 3020159378], - [6293, 121, 30, "Layout/LineLength: Line is too long. [150/120]", 4240691845], - [6297, 121, 86, "Layout/LineLength: Line is too long. [206/120]", 674553335], - [6298, 121, 7, "Layout/LineLength: Line is too long. [127/120]", 830053864], - [6299, 121, 105, "Layout/LineLength: Line is too long. [225/120]", 4163432287], - [6301, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2089555761], - [6302, 121, 7, "Layout/LineLength: Line is too long. [127/120]", 2034687276], - [6303, 121, 80, "Layout/LineLength: Line is too long. [200/120]", 3710905302], - [6306, 121, 29, "Layout/LineLength: Line is too long. [149/120]", 4204667212], - [6308, 121, 30, "Layout/LineLength: Line is too long. [150/120]", 4240691845], - [6314, 121, 76, "Layout/LineLength: Line is too long. [196/120]", 2071493433], - [6316, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2085352569], - [6317, 121, 19, "Layout/LineLength: Line is too long. [139/120]", 2853066942], - [6320, 121, 71, "Layout/LineLength: Line is too long. [191/120]", 2771467828], - [6321, 121, 3, "Layout/LineLength: Line is too long. [123/120]", 193425976], - [6322, 121, 9, "Layout/LineLength: Line is too long. [129/120]", 3025157142], - [6325, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2085352569], - [6326, 121, 86, "Layout/LineLength: Line is too long. [206/120]", 3340824101], - [6329, 121, 23, "Layout/LineLength: Line is too long. [143/120]", 3999804761], - [6331, 121, 26, "Layout/LineLength: Line is too long. [146/120]", 1999310973], - [6335, 121, 78, "Layout/LineLength: Line is too long. [198/120]", 835016333], - [6336, 121, 3, "Layout/LineLength: Line is too long. [123/120]", 193425976], - [6337, 121, 97, "Layout/LineLength: Line is too long. [217/120]", 3575893945], - [6340, 121, 3, "Layout/LineLength: Line is too long. [123/120]", 193405945], - [6341, 121, 72, "Layout/LineLength: Line is too long. [192/120]", 1755858308], - [6344, 121, 25, "Layout/LineLength: Line is too long. [145/120]", 3182252139], - [6346, 121, 26, "Layout/LineLength: Line is too long. [146/120]", 1999310973], - [6352, 121, 70, "Layout/LineLength: Line is too long. [190/120]", 3033080032], - [6354, 121, 1, "Layout/LineLength: Line is too long. [121/120]", 177549], - [6355, 121, 16, "Layout/LineLength: Line is too long. [136/120]", 2720985203], - [6358, 121, 65, "Layout/LineLength: Line is too long. [185/120]", 3233424320], - [6360, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1165873483], - [6363, 121, 1, "Layout/LineLength: Line is too long. [121/120]", 177549], - [6364, 121, 80, "Layout/LineLength: Line is too long. [200/120]", 131859703], - [6367, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 1943494546], - [6369, 121, 23, "Layout/LineLength: Line is too long. [143/120]", 4016166830], - [6373, 121, 72, "Layout/LineLength: Line is too long. [192/120]", 1350760977], - [6375, 121, 91, "Layout/LineLength: Line is too long. [211/120]", 4098706554], - [6379, 121, 66, "Layout/LineLength: Line is too long. [186/120]", 4059724765], - [6382, 121, 22, "Layout/LineLength: Line is too long. [142/120]", 1651955548], - [6384, 121, 23, "Layout/LineLength: Line is too long. [143/120]", 4016166830], - [6390, 121, 54, "Layout/LineLength: Line is too long. [174/120]", 1057495720], - [6393, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 1621971220], - [6396, 121, 49, "Layout/LineLength: Line is too long. [169/120]", 1585717593], - [6402, 121, 64, "Layout/LineLength: Line is too long. [184/120]", 2942094233], - [6405, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 2624667704], - [6407, 121, 15, "Layout/LineLength: Line is too long. [135/120]", 2317051977], - [6411, 121, 56, "Layout/LineLength: Line is too long. [176/120]", 1321610634], - [6413, 121, 75, "Layout/LineLength: Line is too long. [195/120]", 2854688831], - [6417, 121, 50, "Layout/LineLength: Line is too long. [170/120]", 4185465554], - [6420, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 1169781875], - [6422, 121, 15, "Layout/LineLength: Line is too long. [135/120]", 2317051977], - [6428, 121, 50, "Layout/LineLength: Line is too long. [170/120]", 1916545020], - [6431, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1422839111], - [6434, 121, 45, "Layout/LineLength: Line is too long. [165/120]", 910134593], - [6440, 121, 60, "Layout/LineLength: Line is too long. [180/120]", 203086561], - [6443, 121, 10, "Layout/LineLength: Line is too long. [130/120]", 2939363812], - [6445, 121, 13, "Layout/LineLength: Line is too long. [133/120]", 3155638331], - [6449, 121, 52, "Layout/LineLength: Line is too long. [172/120]", 1955758062], - [6451, 121, 71, "Layout/LineLength: Line is too long. [191/120]", 3737424359], - [6455, 121, 46, "Layout/LineLength: Line is too long. [166/120]", 3597620692], - [6458, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 2624667704], - [6460, 121, 13, "Layout/LineLength: Line is too long. [133/120]", 3155638331], - [6466, 121, 52, "Layout/LineLength: Line is too long. [172/120]", 1036052399], - [6469, 121, 7, "Layout/LineLength: Line is too long. [127/120]", 4114086530], - [6472, 121, 47, "Layout/LineLength: Line is too long. [167/120]", 1268266488], - [6478, 121, 62, "Layout/LineLength: Line is too long. [182/120]", 2791598354], - [6481, 121, 11, "Layout/LineLength: Line is too long. [131/120]", 1302589368], - [6483, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 3533902728], - [6487, 121, 54, "Layout/LineLength: Line is too long. [174/120]", 3942276897], - [6489, 121, 73, "Layout/LineLength: Line is too long. [193/120]", 1175941460], - [6493, 121, 48, "Layout/LineLength: Line is too long. [168/120]", 679697318], - [6496, 121, 13, "Layout/LineLength: Line is too long. [133/120]", 28126263], - [6498, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 3533902728], - [6499, 121, 5, "Layout/LineLength: Line is too long. [125/120]", 181895237], - [6504, 121, 52, "Layout/LineLength: Line is too long. [172/120]", 4057848448], - [6507, 121, 7, "Layout/LineLength: Line is too long. [127/120]", 4114086530], - [6510, 121, 47, "Layout/LineLength: Line is too long. [167/120]", 4067769399], - [6516, 121, 62, "Layout/LineLength: Line is too long. [182/120]", 461482909], - [6519, 121, 11, "Layout/LineLength: Line is too long. [131/120]", 1302589368], - [6521, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 3533902728], - [6525, 121, 54, "Layout/LineLength: Line is too long. [174/120]", 3561204590], - [6527, 121, 73, "Layout/LineLength: Line is too long. [193/120]", 880160795], - [6531, 121, 48, "Layout/LineLength: Line is too long. [168/120]", 1614719145], - [6534, 121, 13, "Layout/LineLength: Line is too long. [133/120]", 28126263], - [6536, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 3533902728], - [6537, 121, 5, "Layout/LineLength: Line is too long. [125/120]", 181895237], - [6584, 121, 3, "Layout/LineLength: Line is too long. [123/120]", 193432306], - [6598, 121, 64, "Layout/LineLength: Line is too long. [184/120]", 1645945966], - [6601, 121, 13, "Layout/LineLength: Line is too long. [133/120]", 3212740609], - [6604, 121, 59, "Layout/LineLength: Line is too long. [179/120]", 3982698123], - [6606, 121, 3, "Layout/LineLength: Line is too long. [123/120]", 193425997], - [6610, 121, 74, "Layout/LineLength: Line is too long. [194/120]", 2663750402], - [6613, 121, 17, "Layout/LineLength: Line is too long. [137/120]", 2420297272], - [6615, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 1164389943], - [6619, 121, 66, "Layout/LineLength: Line is too long. [186/120]", 3483121581], - [6621, 121, 85, "Layout/LineLength: Line is too long. [205/120]", 2271668600], - [6625, 121, 60, "Layout/LineLength: Line is too long. [180/120]", 804794365], - [6628, 121, 19, "Layout/LineLength: Line is too long. [139/120]", 3659367004], - [6630, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 1164389943], - [6631, 121, 11, "Layout/LineLength: Line is too long. [131/120]", 561395486], - [6636, 121, 64, "Layout/LineLength: Line is too long. [184/120]", 1251661057], - [6639, 121, 13, "Layout/LineLength: Line is too long. [133/120]", 3212740609], - [6642, 121, 59, "Layout/LineLength: Line is too long. [179/120]", 3210109508], - [6644, 121, 3, "Layout/LineLength: Line is too long. [123/120]", 193425997], - [6648, 121, 74, "Layout/LineLength: Line is too long. [194/120]", 430316685], - [6651, 121, 17, "Layout/LineLength: Line is too long. [137/120]", 2420297272], - [6653, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 1164389943], - [6657, 121, 66, "Layout/LineLength: Line is too long. [186/120]", 2428160226], - [6659, 121, 85, "Layout/LineLength: Line is too long. [205/120]", 2663295671], - [6663, 121, 60, "Layout/LineLength: Line is too long. [180/120]", 2822109938], - [6666, 121, 19, "Layout/LineLength: Line is too long. [139/120]", 3659367004], - [6668, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 1164389943], - [6669, 121, 11, "Layout/LineLength: Line is too long. [131/120]", 561395486], - [6674, 121, 62, "Layout/LineLength: Line is too long. [182/120]", 857639785], - [6677, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 3669622788], - [6680, 121, 57, "Layout/LineLength: Line is too long. [177/120]", 140453799], - [6682, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5860765], - [6686, 121, 72, "Layout/LineLength: Line is too long. [192/120]", 1650236431], - [6689, 121, 16, "Layout/LineLength: Line is too long. [136/120]", 150699323], - [6691, 121, 19, "Layout/LineLength: Line is too long. [139/120]", 50618962], - [6695, 121, 64, "Layout/LineLength: Line is too long. [184/120]", 4205571164], - [6697, 121, 83, "Layout/LineLength: Line is too long. [203/120]", 1549528021], - [6701, 121, 58, "Layout/LineLength: Line is too long. [178/120]", 1325488145], - [6704, 121, 18, "Layout/LineLength: Line is too long. [138/120]", 1510711065], - [6706, 121, 19, "Layout/LineLength: Line is too long. [139/120]", 50618962], - [6712, 121, 66, "Layout/LineLength: Line is too long. [186/120]", 3043205563], - [6715, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 2381137493], - [6718, 121, 61, "Layout/LineLength: Line is too long. [181/120]", 2200345195], - [6720, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2087926498], - [6724, 121, 76, "Layout/LineLength: Line is too long. [196/120]", 1082269527], - [6727, 121, 18, "Layout/LineLength: Line is too long. [138/120]", 1510711065], - [6729, 121, 21, "Layout/LineLength: Line is too long. [141/120]", 1104064739], - [6733, 121, 68, "Layout/LineLength: Line is too long. [188/120]", 1652941658], - [6735, 121, 87, "Layout/LineLength: Line is too long. [207/120]", 1440323819], - [6739, 121, 62, "Layout/LineLength: Line is too long. [182/120]", 802896260], - [6742, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 1943494546], - [6744, 121, 21, "Layout/LineLength: Line is too long. [141/120]", 1104064739], - [6750, 121, 82, "Layout/LineLength: Line is too long. [202/120]", 788730815], - [6752, 121, 7, "Layout/LineLength: Line is too long. [127/120]", 2034687276], - [6753, 121, 22, "Layout/LineLength: Line is too long. [142/120]", 4226330106], - [6756, 121, 77, "Layout/LineLength: Line is too long. [197/120]", 2414796320], - [6757, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1165873470], - [6758, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 3090817832], - [6761, 121, 7, "Layout/LineLength: Line is too long. [127/120]", 2034687276], - [6762, 121, 92, "Layout/LineLength: Line is too long. [212/120]", 2839148677], - [6765, 121, 26, "Layout/LineLength: Line is too long. [146/120]", 2393983240], - [6767, 121, 29, "Layout/LineLength: Line is too long. [149/120]", 2581936864], - [6771, 121, 84, "Layout/LineLength: Line is too long. [204/120]", 3923254945], - [6772, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1165873470], - [6773, 121, 103, "Layout/LineLength: Line is too long. [223/120]", 580639726], - [6775, 121, 3, "Layout/LineLength: Line is too long. [123/120]", 193419246], - [6776, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1756764194], - [6777, 121, 78, "Layout/LineLength: Line is too long. [198/120]", 3202758044], - [6780, 121, 28, "Layout/LineLength: Line is too long. [148/120]", 912651721], - [6782, 121, 29, "Layout/LineLength: Line is too long. [149/120]", 2581936864], - [6786, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1164293389], - [6799, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5860840], - [6800, 121, 88, "Layout/LineLength: Line is too long. [208/120]", 574552570], - [6802, 121, 10, "Layout/LineLength: Line is too long. [130/120]", 3845073641], - [6803, 121, 25, "Layout/LineLength: Line is too long. [145/120]", 543375177], - [6806, 121, 83, "Layout/LineLength: Line is too long. [203/120]", 222410330], - [6807, 121, 9, "Layout/LineLength: Line is too long. [129/120]", 3025157219], - [6808, 121, 15, "Layout/LineLength: Line is too long. [135/120]", 1904561434], - [6811, 121, 10, "Layout/LineLength: Line is too long. [130/120]", 489872984], - [6812, 121, 98, "Layout/LineLength: Line is too long. [218/120]", 97325617], - [6815, 121, 29, "Layout/LineLength: Line is too long. [149/120]", 4204667212], - [6817, 121, 32, "Layout/LineLength: Line is too long. [152/120]", 4062673070], - [6821, 121, 90, "Layout/LineLength: Line is too long. [210/120]", 1451915960], - [6822, 121, 9, "Layout/LineLength: Line is too long. [129/120]", 3025157219], - [6823, 121, 109, "Layout/LineLength: Line is too long. [229/120]", 4200529758], - [6825, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1497831350], - [6826, 121, 9, "Layout/LineLength: Line is too long. [129/120]", 4214367244], - [6827, 121, 84, "Layout/LineLength: Line is too long. [204/120]", 399603517], - [6830, 121, 31, "Layout/LineLength: Line is too long. [151/120]", 3423548875], - [6832, 121, 32, "Layout/LineLength: Line is too long. [152/120]", 4062673070], - [6836, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 3279830097], - [6848, 121, 10, "Layout/LineLength: Line is too long. [130/120]", 659167322], - [6860, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2087926423], - [6861, 121, 57, "Layout/LineLength: Line is too long. [177/120]", 3300294193], - [6863, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 3172850966], - [6864, 121, 27, "Layout/LineLength: Line is too long. [147/120]", 2396187736], - [6867, 121, 87, "Layout/LineLength: Line is too long. [207/120]", 1991888901], - [6868, 121, 11, "Layout/LineLength: Line is too long. [131/120]", 1954380402], - [6869, 121, 17, "Layout/LineLength: Line is too long. [137/120]", 2589970962], - [6872, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 42340644], - [6873, 121, 67, "Layout/LineLength: Line is too long. [187/120]", 479235996], - [6876, 121, 31, "Layout/LineLength: Line is too long. [151/120]", 3423548875], - [6878, 121, 34, "Layout/LineLength: Line is too long. [154/120]", 1462541970], - [6882, 121, 94, "Layout/LineLength: Line is too long. [214/120]", 1373978781], - [6883, 121, 11, "Layout/LineLength: Line is too long. [131/120]", 1954380402], - [6884, 121, 78, "Layout/LineLength: Line is too long. [198/120]", 280641011], - [6886, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 1664110553], - [6887, 121, 11, "Layout/LineLength: Line is too long. [131/120]", 1009650381], - [6888, 121, 88, "Layout/LineLength: Line is too long. [208/120]", 909329343], - [6891, 121, 33, "Layout/LineLength: Line is too long. [153/120]", 2977589831], - [6893, 121, 34, "Layout/LineLength: Line is too long. [154/120]", 1462541970], - [6898, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1165873470], - [6899, 121, 61, "Layout/LineLength: Line is too long. [181/120]", 1904101094], - [6901, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 2229256255], - [6902, 121, 29, "Layout/LineLength: Line is too long. [149/120]", 1839090017], - [6905, 121, 91, "Layout/LineLength: Line is too long. [211/120]", 4260980907], - [6906, 121, 13, "Layout/LineLength: Line is too long. [133/120]", 4253118453], - [6907, 121, 19, "Layout/LineLength: Line is too long. [139/120]", 1536690221], - [6909, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5861152], - [6910, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 209824656], - [6911, 121, 71, "Layout/LineLength: Line is too long. [191/120]", 1530496074], - [6914, 121, 33, "Layout/LineLength: Line is too long. [153/120]", 2977589831], - [6916, 121, 36, "Layout/LineLength: Line is too long. [156/120]", 3261436902], - [6920, 121, 98, "Layout/LineLength: Line is too long. [218/120]", 3762694917], - [6921, 121, 13, "Layout/LineLength: Line is too long. [133/120]", 4253118453], - [6922, 121, 82, "Layout/LineLength: Line is too long. [202/120]", 3196230010], - [6924, 121, 10, "Layout/LineLength: Line is too long. [130/120]", 3165598659], - [6925, 121, 13, "Layout/LineLength: Line is too long. [133/120]", 4264469493], - [6926, 121, 92, "Layout/LineLength: Line is too long. [212/120]", 3140690958], - [6929, 121, 35, "Layout/LineLength: Line is too long. [155/120]", 2999583208], - [6931, 121, 36, "Layout/LineLength: Line is too long. [156/120]", 3261436902], - [6937, 121, 54, "Layout/LineLength: Line is too long. [174/120]", 326070599], - [6940, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 1621971220], - [6943, 121, 49, "Layout/LineLength: Line is too long. [169/120]", 1689000214], - [6949, 121, 64, "Layout/LineLength: Line is too long. [184/120]", 2459904022], - [6952, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 2624667704], - [6954, 121, 15, "Layout/LineLength: Line is too long. [135/120]", 2317051977], - [6958, 121, 56, "Layout/LineLength: Line is too long. [176/120]", 2842872837], - [6960, 121, 75, "Layout/LineLength: Line is too long. [195/120]", 423884656], - [6964, 121, 50, "Layout/LineLength: Line is too long. [170/120]", 2673769885], - [6967, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 1169781875], - [6969, 121, 15, "Layout/LineLength: Line is too long. [135/120]", 2317051977], - [6970, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 2126253911], - [6986, 121, 66, "Layout/LineLength: Line is too long. [186/120]", 2388292564], - [6989, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 2381137493], - [6992, 121, 61, "Layout/LineLength: Line is too long. [181/120]", 1136762660], - [6994, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2087926498], - [6998, 121, 76, "Layout/LineLength: Line is too long. [196/120]", 2555581016], - [7001, 121, 18, "Layout/LineLength: Line is too long. [138/120]", 1510711065], - [7003, 121, 21, "Layout/LineLength: Line is too long. [141/120]", 1104064739], - [7007, 121, 68, "Layout/LineLength: Line is too long. [188/120]", 1986812885], - [7009, 121, 87, "Layout/LineLength: Line is too long. [207/120]", 1864036132], - [7013, 121, 62, "Layout/LineLength: Line is too long. [182/120]", 3590180043], - [7016, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 1943494546], - [7018, 121, 21, "Layout/LineLength: Line is too long. [141/120]", 1104064739], - [7019, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 2382712010], - [7029, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1791534645], - [7034, 121, 50, "Layout/LineLength: Line is too long. [170/120]", 2403815412], - [7037, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1422839111], - [7040, 121, 45, "Layout/LineLength: Line is too long. [165/120]", 4046048864], - [7046, 121, 60, "Layout/LineLength: Line is too long. [180/120]", 3472955113], - [7049, 121, 10, "Layout/LineLength: Line is too long. [130/120]", 2939363812], - [7051, 121, 13, "Layout/LineLength: Line is too long. [133/120]", 3155638331], - [7055, 121, 52, "Layout/LineLength: Line is too long. [172/120]", 3911469720], - [7057, 121, 71, "Layout/LineLength: Line is too long. [191/120]", 272433263], - [7061, 121, 46, "Layout/LineLength: Line is too long. [166/120]", 634420444], - [7064, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 2624667704], - [7066, 121, 13, "Layout/LineLength: Line is too long. [133/120]", 3155638331], - [7067, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2088324682], - [7080, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2087906711], - [7092, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 2135380894], - [7101, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 2102137893], - [7103, 121, 25, "Layout/LineLength: Line is too long. [145/120]", 4280757685], - [7107, 121, 10, "Layout/LineLength: Line is too long. [130/120]", 161599970], - [7141, 121, 7, "Layout/LineLength: Line is too long. [127/120]", 830053789], - [7176, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 2188407955], - [7187, 121, 19, "Layout/LineLength: Line is too long. [139/120]", 3692322233], - [7191, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2087557694], - [7214, 121, 10, "Layout/LineLength: Line is too long. [130/120]", 3197512522], - [7223, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5858840], - [7225, 121, 21, "Layout/LineLength: Line is too long. [141/120]", 85298067], - [7282, 121, 3, "Layout/LineLength: Line is too long. [123/120]", 193418403], - [7288, 121, 3, "Layout/LineLength: Line is too long. [123/120]", 193418403], - [7311, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2087432474], - [7323, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 2361949763], - [7332, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 2102137893], - [7334, 121, 25, "Layout/LineLength: Line is too long. [145/120]", 581045160], - [7338, 121, 10, "Layout/LineLength: Line is too long. [130/120]", 4235011647], - [7357, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1898147766], - [7363, 121, 1, "Layout/LineLength: Line is too long. [121/120]", 177560], - [7369, 121, 16, "Layout/LineLength: Line is too long. [136/120]", 1310140439], - [7378, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 681770239], - [7380, 121, 27, "Layout/LineLength: Line is too long. [147/120]", 3821940657], - [7384, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5862609], - [7404, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5861292], - [7416, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 2354124424], - [7425, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2087922021], - [7427, 121, 23, "Layout/LineLength: Line is too long. [143/120]", 3921370162], - [8020, 121, 24, "Layout/LineLength: Line is too long. [144/120]", 4083054536], - [8048, 121, 24, "Layout/LineLength: Line is too long. [144/120]", 4083054536], - [8077, 121, 24, "Layout/LineLength: Line is too long. [144/120]", 4083054536], - [8135, 121, 42, "Layout/LineLength: Line is too long. [162/120]", 632953222], - [8164, 121, 34, "Layout/LineLength: Line is too long. [154/120]", 732995265], - [8214, 121, 30, "Layout/LineLength: Line is too long. [150/120]", 1886249927], - [8376, 121, 7, "Layout/LineLength: Line is too long. [127/120]", 578751979], - [8377, 121, 11, "Layout/LineLength: Line is too long. [131/120]", 3803540269], - [8386, 121, 17, "Layout/LineLength: Line is too long. [137/120]", 2238403955], - [8387, 121, 25, "Layout/LineLength: Line is too long. [145/120]", 1028441932], - [8388, 121, 29, "Layout/LineLength: Line is too long. [149/120]", 1975950909], - [8443, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1244043798] - ], - "spec/integration/freeze_node_edge_cases_spec.rb:3416491031": [ - [6, 1, 28959, "Metrics/BlockLength: Block has too many lines. [663/25]", 3473768018], - [7, 3, 2985, "Metrics/BlockLength: Block has too many lines. [57/25]", 436154415], - [8, 5, 2934, "Metrics/BlockLength: Block has too many lines. [55/25]", 1963918102], - [78, 3, 6091, "Metrics/BlockLength: Block has too many lines. [136/25]", 232153494], - [98, 5, 3053, "Metrics/BlockLength: Block has too many lines. [69/25]", 1442974101], - [202, 5, 1691, "Metrics/BlockLength: Block has too many lines. [29/25]", 985654389], - [241, 3, 8515, "Metrics/BlockLength: Block has too many lines. [176/25]", 2776676526], - [473, 3, 2024, "Metrics/BlockLength: Block has too many lines. [55/25]", 1048101963], - [474, 5, 890, "Metrics/BlockLength: Block has too many lines. [26/25]", 753961540], - [543, 3, 4511, "Metrics/BlockLength: Block has too many lines. [116/25]", 1227615145], - [693, 3, 1660, "Metrics/BlockLength: Block has too many lines. [43/25]", 1881888061], - [694, 5, 1107, "Metrics/BlockLength: Block has too many lines. [26/25]", 368095693] - ], - "spec/integration/gem_family_section_merge_spec.rb:1744383089": [ - [164, 121, 27, "Layout/LineLength: Line is too long. [147/120]", 93655697] - ], - "spec/integration/integration_spec.rb:2239247043": [ - [14, 1, 4488, "Metrics/BlockLength: Block has too many lines. [88/25]", 206207480], - [15, 3, 3267, "Metrics/BlockLength: Block has too many lines. [62/25]", 1323899085], - [40, 5, 2263, "Metrics/BlockLength: Block has too many lines. [48/25]", 3172595581] - ], - "spec/integration/link_reference_preservation_spec.rb:3764298162": [ - [6, 1, 2646, "Metrics/BlockLength: Block has too many lines. [48/25]", 3396410609], - [19, 3, 2058, "Metrics/BlockLength: Block has too many lines. [33/25]", 163363949] - ], - "spec/integration/markly_merge_spec.rb:3076950975": [ - [3, 1, 22886, "Metrics/BlockLength: Block has too many lines. [670/25]", 1408138744], - [62, 3, 7192, "Metrics/BlockLength: Block has too many lines. [189/25]", 1890889324], - [63, 5, 1678, "Metrics/BlockLength: Block has too many lines. [41/25]", 2587582896], - [115, 5, 1808, "Metrics/BlockLength: Block has too many lines. [48/25]", 3381172795], - [147, 46, 21, "Style/StringConcatenation: Prefer string interpolation to string concatenation.", 451071547], - [171, 5, 1134, "Metrics/BlockLength: Block has too many lines. [30/25]", 2526618199], - [220, 5, 1335, "Metrics/BlockLength: Block has too many lines. [32/25]", 2790596215], - [311, 3, 2008, "Metrics/BlockLength: Block has too many lines. [66/25]", 2640155627], - [394, 3, 1052, "Metrics/BlockLength: Block has too many lines. [27/25]", 3988836255], - [440, 3, 2950, "Metrics/BlockLength: Block has too many lines. [89/25]", 961031348], - [441, 5, 1352, "Metrics/BlockLength: Block has too many lines. [37/25]", 1952365669], - [495, 5, 1550, "Metrics/BlockLength: Block has too many lines. [48/25]", 2400197001], - [561, 3, 1665, "Metrics/BlockLength: Block has too many lines. [52/25]", 3884776329], - [650, 3, 1919, "Metrics/BlockLength: Block has too many lines. [57/25]", 2594646583], - [725, 3, 1644, "Metrics/BlockLength: Block has too many lines. [45/25]", 2348710811], - [791, 3, 1600, "Metrics/BlockLength: Block has too many lines. [46/25]", 3683503747] - ], - "spec/integration/partial_template_merger_table_merge_spec.rb:3504046892": [ - [7, 1, 7402, "Metrics/BlockLength: Block has too many lines. [164/25]", 3368892126], - [9, 3, 2986, "Metrics/BlockLength: Block has too many lines. [67/25]", 2267114449], - [65, 5, 1359, "Metrics/BlockLength: Block has too many lines. [28/25]", 3145143002], - [102, 3, 997, "Metrics/BlockLength: Block has too many lines. [26/25]", 3156068215], - [147, 3, 3009, "Metrics/BlockLength: Block has too many lines. [65/25]", 994160212], - [202, 5, 1401, "Metrics/BlockLength: Block has too many lines. [28/25]", 3038951618] - ], - "spec/integration/table_formatting_preservation_spec.rb:3943985446": [ - [6, 1, 3086, "Metrics/BlockLength: Block has too many lines. [56/25]", 2210897849], - [19, 3, 2374, "Metrics/BlockLength: Block has too many lines. [40/25]", 668961519], - [33, 5, 1847, "Metrics/BlockLength: Block has too many lines. [28/25]", 3433318963] - ], - "spec/integration/text_merge_spec.rb:884566200": [ - [6, 1, 7747, "Metrics/BlockLength: Block has too many lines. [204/25]", 2372984305], - [60, 3, 1113, "Metrics/BlockLength: Block has too many lines. [34/25]", 3399970957], - [67, 5, 860, "Metrics/BlockLength: Block has too many lines. [27/25]", 2337191560], - [103, 3, 916, "Metrics/BlockLength: Block has too many lines. [28/25]", 4082963348], - [149, 3, 3001, "Metrics/BlockLength: Block has too many lines. [74/25]", 7776854] - ], - "spec/support/fictive_language_harness.rb:1770581700": [ - [85, 7, 733, "Metrics/AbcSize: Assignment Branch Condition size for `extract_comments` is too high. [<5, 16, 5> 17.49/17]", 1127096515], - [85, 7, 733, "Metrics/MethodLength: Method has too many lines. [22/10]", 1127096515], - [117, 21, 129, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 681912759], - [182, 7, 1084, "Metrics/AbcSize: Assignment Branch Condition size for `parse_statements` is too high. [<9, 28, 7> 30.23/17]", 3123785685], - [182, 7, 1084, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `parse_statements` is too high. [8/7]", 3123785685], - [182, 7, 1084, "Metrics/MethodLength: Method has too many lines. [24/10]", 3123785685], - [233, 5, 9879, "Metrics/ClassLength: Class has too many lines. [228/100]", 3231256134], - [236, 21, 208, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 2970487173], - [257, 7, 1981, "Metrics/AbcSize: Assignment Branch Condition size for `resolve_batch` is too high. [<16, 32, 4> 36/17]", 4125392918], - [257, 7, 1981, "Metrics/MethodLength: Method has too many lines. [42/10]", 4125392918], - [342, 7, 778, "Metrics/MethodLength: Method has too many lines. [18/10]", 4189873983], - [364, 7, 844, "Metrics/MethodLength: Method has too many lines. [19/10]", 526186683], - [449, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2087956942], - [464, 7, 1065, "Metrics/AbcSize: Assignment Branch Condition size for `collapse_template_preamble_prefix_region` is too high. [<6, 24, 11> 27.07/17]", 2332280467], - [464, 7, 1065, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `collapse_template_preamble_prefix_region` is too high. [10/7]", 2332280467], - [464, 7, 1065, "Metrics/MethodLength: Method has too many lines. [20/10]", 2332280467], - [464, 7, 1065, "Metrics/PerceivedComplexity: Perceived complexity for `collapse_template_preamble_prefix_region` is too high. [10/8]", 2332280467] - ], - "spec/support/testable_node.rb:1110514732": [ - [10, 7, 573, "Metrics/MethodLength: Method has too many lines. [12/10]", 798847435], - [10, 22, 226, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [10/5]", 2319398994], - [40, 7, 642, "Metrics/AbcSize: Assignment Branch Condition size for `initialize` is too high. [<11, 14, 6> 18.79/17]", 2249578474], - [40, 21, 131, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [10/5]", 1786967686] - ] -} diff --git a/gems/ast-merge/Gemfile.lock b/gems/ast-merge/Gemfile.lock index 261a0c9bb..9227411b9 100644 --- a/gems/ast-merge/Gemfile.lock +++ b/gems/ast-merge/Gemfile.lock @@ -7,232 +7,6 @@ PATH tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly - specs: - ast-crispr-markdown-markly (7.1.0) - ast-crispr (= 7.1.0) - markly-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism - specs: - ast-crispr-ruby-prism (7.1.0) - ast-crispr (= 7.1.0) - prism-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr - specs: - ast-crispr (7.1.0) - ast-merge (= 7.1.0) - service_actor (~> 3.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git - specs: - ast-merge-git (7.1.0) - ast-merge (= 7.1.0) - json-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template - specs: - ast-template (7.1.0) - ast-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge - specs: - bash-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge - specs: - binary-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge - specs: - citrus-toml-merge (7.1.0) - toml-merge (= 7.1.0) - toml-rb (~> 4.1) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge - specs: - commonmarker-merge (7.1.0) - commonmarker (~> 2.2) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge - specs: - dotenv-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge - specs: - go-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge - specs: - json-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem - specs: - kettle-jem (7.1.0) - addressable (>= 2.8, < 3) - ast-crispr-markdown-markly (= 7.1.0) - ast-crispr-ruby-prism (= 7.1.0) - ast-merge (= 7.1.0) - bash-merge (= 7.1.0) - citrus-toml-merge (= 7.1.0) - commonmarker-merge (= 7.1.0) - dotenv-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-dev (~> 2.3, >= 2.3.5) - kettle-rb (~> 0.1, >= 0.1.4) - kramdown-merge (= 7.1.0) - markdown-merge (= 7.1.0) - markly-merge (= 7.1.0) - prism-merge (= 7.1.0) - psych-merge (= 7.1.0) - rbs (>= 3.10) - rbs-merge (= 7.1.0) - ruby-merge (= 7.1.0) - token-resolver (~> 2.0, >= 2.0.4) - toml-merge (= 7.1.0) - toml-rb (~> 4.2) - tree_haver (= 7.1.0) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge - specs: - kramdown-merge (7.1.0) - kramdown (~> 2.5) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge - specs: - markdown-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge - specs: - markly-merge (7.1.0) - markdown-merge (= 7.1.0) - markly (~> 0.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge - specs: - parslet-toml-merge (7.1.0) - toml (~> 0.3) - toml-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge - specs: - plain-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge - specs: - prism-merge (7.1.0) - prism (~> 1.6) - ruby-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge - specs: - psych-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge - specs: - rbs-merge (7.1.0) - ast-merge (= 7.1.0) - rbs (>= 3.10) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge - specs: - ruby-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge - specs: - rust-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb - specs: - smorg-rb (7.1.0) - ast-merge (= 7.1.0) - ast-merge-git (= 7.1.0) - go-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-jem (= 7.1.0) - markly-merge (= 7.1.0) - plain-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge - specs: - toml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - PATH remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver specs: @@ -242,29 +16,6 @@ PATH tree_sitter_language_pack (>= 1.13.2, < 2.0) version_gem (~> 1.1, >= 1.1.9) -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge - specs: - typescript-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge - specs: - yaml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge - specs: - zip-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - GEM remote: https://gem.coop/ specs: @@ -275,6 +26,10 @@ GEM bundler (>= 1.17.3) rake (>= 10) thor (>= 0.14) + appraisal2-rubocop (1.0.0) + appraisal2 (>= 3.1.4) + rubocop (>= 1.0) + version_gem (~> 1.1, >= 1.1.14) ast (2.4.3) backports (3.25.3) benchmark (0.5.0) @@ -282,9 +37,9 @@ GEM bundler-audit (0.9.3) bundler (>= 1.2.0) thor (~> 1.0) + cgi (0.5.2) citrus (3.0.2) cmdparse (3.0.7) - commonmarker (2.9.0-x86_64-linux) concurrent-ruby (1.3.8) date (3.5.1) debug (1.11.1) @@ -293,7 +48,6 @@ GEM delegate (0.6.1) diff-lcs (1.6.2) diffy (3.4.4) - docile (1.4.1) dry-configurable (1.4.0) dry-core (~> 1.0) zeitwerk (~> 2.6) @@ -324,7 +78,7 @@ GEM dry-logic (~> 1.4) zeitwerk (~> 2.6) emoji_regex (15.0.0) - erb (6.0.5) + erb (6.0.6) gem_bench (2.0.5) bundler (>= 1.14) version_gem (~> 1.1, >= 1.1.4) @@ -348,18 +102,14 @@ GEM kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) - kettle-drift (1.0.6) - version_gem (~> 1.1, >= 1.1.14) kettle-rb (0.1.4) - kettle-soup-cover (1.1.3) - simplecov (~> 0.22) - simplecov-cobertura (~> 3.0) - simplecov-console (~> 0.9, >= 0.9.3) - simplecov-html (~> 0.13, >= 0.13.1) - simplecov-lcov (~> 0.8) + kettle-soup-cover (3.0.4) + kettle-wash (~> 0.1, >= 0.1.0) + simplecov (>= 1.0) + simplecov-cobertura (>= 4.0) + simplecov-console (~> 0.9, >= 0.9.5) simplecov-rcov (~> 0.3, >= 0.3.7) - simplecov_json_formatter (~> 0.1, >= 0.1.4) - version_gem (~> 1.1, >= 1.1.9) + simplecov_lcov_formatter (~> 0.9, >= 0.9.0) kettle-test (2.0.11) appraisal2 (~> 3.0, >= 3.0.6) backports (~> 3.0) @@ -371,6 +121,8 @@ GEM silent_stream (~> 1.0, >= 1.0.12) timecop-rspec (~> 1.0, >= 1.0.3) turbo_tests2 (~> 3.1, >= 3.1.12) + kettle-wash (0.1.1) + version_gem (~> 1.1, >= 1.1.14) kramdown (2.5.2) rexml (>= 3.4.4) kramdown-parser-gfm (1.1.0) @@ -378,7 +130,6 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) - markly (0.16.0) mutex_m (0.3.0) nokogiri (1.19.4-aarch64-linux-gnu) racc (~> 1.4) @@ -466,6 +217,14 @@ GEM rubocop-ast (1.50.0) parser (>= 3.3.7.2) prism (~> 1.7) + rubocop-capybara (2.23.0) + lint_roller (~> 1.1) + rubocop (~> 1.81) + rubocop-env (0.1.0) + rubocop + rubocop-factory_bot (2.28.0) + lint_roller (~> 1.1) + rubocop (~> 1.72, >= 1.72.1) rubocop-gradual (0.4.0) benchmark diff-lcs (>= 1.2.0, < 2.0) @@ -473,13 +232,26 @@ GEM parallel (~> 1.10) rainbow (>= 2.2.2, < 4.0) rubocop (~> 1.0) - rubocop-lts (24.1.0) - rubocop-ruby3_2 (>= 3.0.0, < 4) - standard-rubocop-lts (>= 2.0.2, < 3) - version_gem (>= 1.1.2, < 3) + rubocop-lts (24.2.2) + rubocop-ruby3_2 (~> 3.0, >= 3.0.1) + standard-rubocop-lts (~> 2.0, >= 2.0.3) + version_gem (~> 1.1, >= 1.1.13) + rubocop-lts-rspec (1.0.5) + rubocop (~> 1.84, >= 1.84.2) + rubocop-env (~> 0.1, >= 0.1.0) + rubocop-factory_bot (~> 2.28, >= 2.28.0) + rubocop-rspec (~> 3.9, >= 3.9.0) + rubocop-rspec-extra (~> 0.3, >= 0.3.0) + standard (~> 1.54, >= 1.54.0) + standard-rspec (~> 0.5, >= 0.5.0) + version_gem (~> 1.1, >= 1.1.13) rubocop-md (2.0.4) lint_roller (~> 1.1) rubocop (>= 1.72.1) + rubocop-minitest (0.40.0) + lint_roller (~> 1.1) + rubocop (>= 1.75.0, < 2.0) + rubocop-ast (>= 1.38.0, < 2.0) rubocop-on-rbs (2.0.0) lint_roller (~> 1.1) rbs (~> 4.0) @@ -499,6 +271,13 @@ GEM lint_roller (~> 1.1) regexp_parser (>= 2.0) rubocop (~> 1.86, >= 1.86.2) + rubocop-rspec-extra (0.3.0) + lint_roller (~> 1.1) + rubocop (>= 1.72.1, < 2.0) + rubocop-rspec_rails (2.32.0) + lint_roller (~> 1.1) + rubocop (~> 1.72, >= 1.72.1) + rubocop-rspec (~> 3.5) rubocop-ruby3_2 (3.0.7) rubocop-gradual (~> 0.3, >= 0.3.6) rubocop-md (~> 2.0, >= 2.0.4) @@ -513,27 +292,21 @@ GEM ruby-progressbar (1.13.0) ruby_engine (2.0.3) ruby_version (1.0.3) - service_actor (3.9.4) - zeitwerk (>= 1.0) silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) - simplecov (0.22.0) - docile (~> 1.1) - simplecov-html (~> 0.11) - simplecov_json_formatter (~> 0.1) - simplecov-cobertura (3.2.0) + simplecov (1.0.2) + simplecov-cobertura (4.0.0) rexml - simplecov (~> 0.19) + simplecov (~> 1.0) simplecov-console (0.9.5) ansi simplecov terminal-table - simplecov-html (0.13.2) - simplecov-lcov (0.9.0) simplecov-rcov (0.3.7) simplecov (>= 0.4.1) - simplecov_json_formatter (0.1.4) + simplecov_lcov_formatter (0.9.0) + simplecov (>= 0.18) sorbet-runtime (0.6.13347) standard (1.56.0) language_server-protocol (~> 3.17.0.2) @@ -547,6 +320,12 @@ GEM standard-performance (1.9.0) lint_roller (~> 1.1) rubocop-performance (~> 1.26.0) + standard-rspec (0.5.0) + lint_roller (>= 1.0) + rubocop-capybara (~> 2.23) + rubocop-factory_bot (~> 2.27) + rubocop-rspec (~> 3.9) + rubocop-rspec_rails (~> 2.31) standard-rubocop-lts (2.0.10) standard (~> 1.54, >= 1.54.0) standard-custom (~> 1.0, >= 1.0.2) @@ -567,11 +346,6 @@ GEM token-resolver (2.0.4) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.13) - toml (0.3.0) - parslet (>= 1.8.0, < 3.0.0) - toml-rb (4.2.0) - citrus (~> 3.0, > 3.0) - racc (~> 1.7) tree_sitter_language_pack (1.13.3-aarch64-linux) sorbet-runtime (~> 0.5) tree_sitter_language_pack (1.13.3-arm64-darwin) @@ -587,6 +361,7 @@ GEM unicode-emoji (~> 4.1) unicode-emoji (4.2.0) version_gem (1.1.14) + webrick (1.9.2) yaml-converter (0.2.3) hexapdf (>= 1.8, < 2) kramdown (>= 2.4, < 3) @@ -624,104 +399,69 @@ PLATFORMS DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) - ast-crispr! - ast-crispr-markdown-markly! - ast-crispr-ruby-prism! + appraisal2-rubocop (~> 1.0, >= 1.0.0) ast-merge! - ast-merge-git! - ast-template! - bash-merge! - benchmark (~> 0.5, >= 0.5.0) - binary-merge! bundler-audit (~> 0.9.3) - citrus-toml-merge! - commonmarker-merge! + cgi (~> 0.5) debug (>= 1.1) - dotenv-merge! - erb (~> 6.0, >= 6.0.4) + erb (~> 6.0, >= 6.0.6) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.0) - go-merge! irb (~> 1.17) - json-merge! kettle-dev (~> 2.0, >= 2.2.25) - kettle-drift (~> 1.0, >= 1.0.5) - kettle-jem! - kettle-soup-cover (~> 1.0, >= 1.1.3) + kettle-soup-cover (~> 3.0, >= 3.0.3) kettle-test (~> 2.0, >= 2.0.9) - kramdown (~> 2.5, >= 2.5.1) - kramdown-merge! + kramdown (~> 2.5, >= 2.5.2) kramdown-parser-gfm (~> 1.1) - markdown-merge! - markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) - parslet-toml-merge! - plain-merge! - prism-merge! - psych-merge! rake (~> 13.0) rbs (>= 3.0) - rbs-merge! rdoc (~> 6.11) - reek (~> 6.5) + reek (~> 6.5, >= 6.5.0) require_bench (~> 1.0, >= 1.0.4) - rubocop-lts (~> 24.1.0) - rubocop-on-rbs (~> 2.0) + rubocop-gradual (~> 0.4, >= 0.4.0) + rubocop-lts (~> 24.2, >= 24.2.1) + rubocop-lts-rspec (~> 1.0, >= 1.0.5) + rubocop-minitest (~> 0.40, >= 0.40.0) + rubocop-on-rbs (~> 2.0, >= 2.0.0) rubocop-packaging (~> 0.6, >= 0.6.0) - rubocop-rspec (~> 3.6) - rubocop-ruby3_2 (~> 3.0.0) - ruby-merge! + rubocop-ruby3_2 (~> 3.0, >= 3.0.6) ruby-progressbar (~> 1.13) - rust-merge! - smorg-rb! - standard (>= 1.50) + standard (~> 1.56, >= 1.56.0) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) - toml-merge! tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) - typescript-merge! - yaml-converter (~> 0.1) - yaml-merge! - yard (~> 0.9, >= 0.9.44) - yard-fence (~> 0.9, >= 0.9.1) + webrick (~> 1.9) + yaml-converter (~> 0.2, >= 0.2.3) + yard (~> 0.9, >= 0.9.45) + yard-fence (~> 0.9, >= 0.9.6) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) - yard-timekeeper (~> 0.1) - yard-yaml (~> 0.1, >= 0.1.2) - zip-merge! + yard-timekeeper (~> 0.2, >= 0.2.4) + yard-yaml (~> 0.2, >= 0.2.3) CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af ansi (1.6.0) sha256=ac9ea0c0ea8d32fb4e271348e609963ac78882f34b73836c2a02b3622e666658 appraisal2 (3.2.0) sha256=ccd0b767ac4060cd7af6d16747459b6990f49c39c7b4fb1f7d1146b1e97c492f + appraisal2-rubocop (1.0.0) sha256=b71410fbb014befda5340605a605b7f6f3f012739baf0acc5b4351b592c3258d ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 - ast-crispr (7.1.0) - ast-crispr-markdown-markly (7.1.0) - ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) - ast-merge-git (7.1.0) - ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 - bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd - binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 + cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 - citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 - commonmarker (2.9.0-x86_64-linux) - commonmarker-merge (7.1.0) concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 - docile (1.4.1) sha256=96159be799bfa73cdb721b840e9802126e4e03dfc26863db73647204c727f21e - dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -730,31 +470,24 @@ CHECKSUMS dry-schema (1.16.0) sha256=cd3aaeabc0f1af66ec82a29096d4c4fb92a0a58b9dae29a22b1bbceb78985727 dry-types (1.9.1) sha256=baebeecdb9f8395d6c9d227b62011279440943e3ef2468fe8ccc1ba11467f178 emoji_regex (15.0.0) sha256=a508b2c0bee561169564e0aec96085020c900520d335e5533fd8e78e59493829 - erb (6.0.5) sha256=858e63488cb796c9daba8b6e9ff4b3879c395022049be9a66a8e00980e612eac + erb (6.0.6) sha256=a9b24986700f5bf127c4f297c5403c3ca41b83b0a316c0cd09a096b56e644ae5 gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f - go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 - json-merge (7.1.0) kettle-dev (2.3.7) sha256=eb370113cd030d03cbe2d33b31c99858951017e5ad21a17e9ed89dc3770028ee - kettle-drift (1.0.6) - kettle-jem (7.1.0) kettle-rb (0.1.4) sha256=9cef7ce4f7021666b7222292f29051e51eaf042e8a5db11f3f4dd72f74243fc1 - kettle-soup-cover (1.1.3) sha256=a373827da22a7131d093afd32945e5b7d7a10a01ebfdded8fd2cb8230d69c8ad + kettle-soup-cover (3.0.4) kettle-test (2.0.11) sha256=c710c90f7ab79d51f9452f0c09f5f90657e7a893f63583855c164d0b1b107ab2 + kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa - kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 - markdown-merge (7.1.0) - markly (0.16.0) - markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-aarch64-linux-gnu) sha256=1269fb644a6de405057a53dd5c762b1209b43ca7424f839454d3dbc677c31a8f nokogiri (1.19.4-aarch64-linux-musl) sha256=35c65b9ce72b3bb03207bdbe7067915019dc18c1b9b59139684bd6690fdd01af @@ -768,20 +501,15 @@ CHECKSUMS parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 - parslet-toml-merge (7.1.0) - plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 - prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 - psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 - rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb @@ -799,35 +527,37 @@ CHECKSUMS rspec_junit_formatter (0.6.0) sha256=40dde674e6ae4e6cc0ff560da25497677e34fefd2338cc467a8972f602b62b15 rubocop (1.88.2) sha256=8def251c90cd955feb4daa3edc0ab56893250c4ce90ef81e6c80c03f9a939bbf rubocop-ast (1.50.0) sha256=b9ca88300da0803ee222ad20cdb30494c0a784eed06fdc35d254b06d662788db + rubocop-capybara (2.23.0) sha256=f9ea1ba3a7561ee8e88cf76fc378ce517ce5327155f305ee7b5c2500e5aee357 + rubocop-env (0.1.0) sha256=5ab9a259e71822bf514c8e900a9b68cc2f74ccc87d5493efcd03213f3068e718 + rubocop-factory_bot (2.28.0) sha256=4b17fc02124444173317e131759d195b0d762844a71a29fe8139c1105d92f0cb rubocop-gradual (0.4.0) sha256=9c7e584e6fef6c2539266a193a4572c970c22f99046fd6b0305bdde6228f96ad - rubocop-lts (24.1.0) sha256=9dcad4db2da2fe2f1f77f98c917d70e7c43eded703da14cd201d4be52a9272aa + rubocop-lts (24.2.2) sha256=be6c745e1bb61daebd6af3cc3227c60f95be9f642a080773cad7df14c5f9f174 + rubocop-lts-rspec (1.0.5) sha256=439552fd27440802cc499889e013bffa28aadc41adae5d4dfff3d984a2a809b4 rubocop-md (2.0.4) sha256=0d076b6b5e99dea2ddc928c4bd702497decb9a8400da7808091e02ebcafcfb93 + rubocop-minitest (0.40.0) sha256=353c698199115f12151144cf0b5a96f69bb9d77b660cf6536df2c4250c672a9d rubocop-on-rbs (2.0.0) sha256=ce74d1b3d5daead19f4b611623656c185821dfc9aed9c7079bb1e5d7d7c464be rubocop-packaging (0.6.0) sha256=fb92bd0fb48e6f8cdb1648d2249b0cd51c2497dcc87340132d22f01edbf558a7 rubocop-performance (1.26.1) sha256=cd19b936ff196df85829d264b522fd4f98b6c89ad271fa52744a8c11b8f71834 rubocop-rake (0.7.1) sha256=3797f2b6810c3e9df7376c26d5f44f3475eda59eb1adc38e6f62ecf027cbae4d rubocop-rspec (3.10.2) sha256=0b3e2ecc592cd10ecbf0095bb58d1e357905276e069643523cc19eb7495f65e2 + rubocop-rspec-extra (0.3.0) sha256=ee4b6484d0332a0d23c4a465eeb607e41888eb3d4ed479f850b9f5212514f787 + rubocop-rspec_rails (2.32.0) sha256=4a0d641c72f6ebb957534f539d9d0a62c47abd8ce0d0aeee1ef4701e892a9100 rubocop-ruby3_2 (3.0.7) sha256=f53dd6d286fb05186214fc6ec116783e7f837030918e8931c05de773e98f8466 rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 - ruby-merge (7.1.0) ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 - rust-merge (7.1.0) - service_actor (3.9.4) silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 - simplecov (0.22.0) sha256=fe2622c7834ff23b98066bb0a854284b2729a569ac659f82621fc22ef36213a5 - simplecov-cobertura (3.2.0) sha256=70d702658677fcb20e5aceb6915ccf8bc62ff2ccd38b62b3ad5c9db5c0888740 + simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 + simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 - simplecov-html (0.13.2) sha256=bd0b8e54e7c2d7685927e8d6286466359b6f16b18cb0df47b508e8d73c777246 - simplecov-lcov (0.9.0) sha256=7a77a31e200a595ed4b0249493056efd0c920601f53d2ef135ca34ee796346cd simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc - simplecov_json_formatter (0.1.4) sha256=529418fbe8de1713ac2b2d612aa3daa56d316975d307244399fa4838c601b428 - smorg-rb (7.1.0) + simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed sorbet-runtime (0.6.13347) sha256=54e7221d9f4b63f58aec79f3043752a9ba7810347c6ae0d903531591cc2d5f01 standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b standard-performance (1.9.0) sha256=49483d31be448292951d80e5e67cdcb576c2502103c7b40aec6f1b6e9c88e3f2 + standard-rspec (0.5.0) sha256=64d396524a65af47f5331b423d8cdd313e0267401647bb7892489ca89dad2973 standard-rubocop-lts (2.0.10) sha256=89708a505b7d8b24d2ac399a7520fcb9e764abc2ecb4289b631b5fe0e3b76617 stone_checksums (1.0.6) sha256=c775f830513d6c6ab26e31d1a5fbecd4c4e39002663d4d9f8fa96e97990b5298 stringio (3.2.0) sha256=c37cb2e58b4ffbd33fe5cd948c05934af997b36e0b6ca6fdf43afa234cf222e1 @@ -837,21 +567,17 @@ CHECKSUMS timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.4) sha256=33b926958f504525bba3ed511ab66fbcbf8ef30390815e931436b30f27ffcad0 - toml (0.3.0) - toml-merge (7.1.0) - toml-rb (4.2.0) tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-aarch64-linux) sha256=55ffc7c87868cb45658338363d9eba51b4a8b0259aa88e4de368d2bd1d52fea4 tree_sitter_language_pack (1.13.3-arm64-darwin) sha256=bc2498db605f212a1dbd2465ed3f65190d7da786f6ed5d30fcf958121aeb4a5c tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 - typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 + webrick (1.9.2) sha256=beb4a15fc474defed24a3bda4ffd88a490d517c9e4e6118c3edce59e45864131 yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 - yaml-merge (7.1.0) yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd @@ -859,7 +585,6 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 - zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH diff --git a/gems/ast-merge/README.md b/gems/ast-merge/README.md index bf0c8c062..eb322157f 100644 --- a/gems/ast-merge/README.md +++ b/gems/ast-merge/README.md @@ -307,7 +307,7 @@ The `Ast::Merge` module is organized into several namespaces, each with detailed | Tokens to Remember | [![Gem name][⛳️name-img]][⛳️gem-name] [![Gem namespace][⛳️namespace-img]][⛳️gem-namespace] | |-------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | Works with MRI Ruby 4 | [![Ruby current Compat][💎ruby-c-i]][🚎11-c-wf]| -| Support & Community | [![Join Me on Daily.dev's RubyFriends][✉️ruby-friends-img]][✉️ruby-friends] [![Live Chat on Discord][✉️discord-invite-img-ftb]][✉️discord-invite] [![Get help from me on Upwork][👨🏼‍🏫expsup-upwork-img]][👨🏼‍🏫expsup-upwork] [![Get help from me on Codementor][👨🏼‍🏫expsup-codementor-img]][👨🏼‍🏫expsup-codementor] | +| Support & Community | [![Join Me on Daily.dev's RubyFriends][✉️ruby-friends-img]][✉️ruby-friends] [![Get help from RubyForum][✉️ruby-forum-img]][✉️ruby-forum] [![Live Chat on Discord][✉️discord-invite-img-ftb]][✉️discord-invite] [![Get help from me on Upwork][👨🏼‍🏫expsup-upwork-img]][👨🏼‍🏫expsup-upwork] [![Get help from me on Codementor][👨🏼‍🏫expsup-codementor-img]][👨🏼‍🏫expsup-codementor] | | Source | [![Source on GitLab.com][📜src-gl-img]][📜src-gl] [![Source on CodeBerg.org][📜src-cb-img]][📜src-cb] [![Source on Github.com][📜src-gh-img]][📜src-gh] [![The best SHA: dQw4w9WgXcQ!][🧮kloc-img]][🧮kloc] | | Documentation | [![Current release on RubyDoc.info][📜docs-cr-rd-img]][🚎yard-current] [![YARD on Galtzo.com][📜docs-head-rd-img]][🚎yard-head] [![Maintainer Blog][🚂maint-blog-img]][🚂maint-blog] [![GitLab Wiki][📜gl-wiki-img]][📜gl-wiki] [![GitHub Wiki][📜gh-wiki-img]][📜gh-wiki] | | Compliance | [![License: AGPL-3.0-only OR PolyForm-Small-Business-1.0.0][📄license-img]][📄license] [![Apache license compatibility: Category X][📄license-compat-img]][📄license-compat] [![📄ilo-declaration-img]][📄ilo-declaration] [![Security Policy][🔐security-img]][🔐security] [![Contributor Covenant 2.1][🪇conduct-img]][🪇conduct] [![SemVer 2.0.0][📌semver-img]][📌semver] | @@ -526,6 +526,8 @@ If none of the available licenses suit your use case, please [contact us](mailto [✉️discord-invite-img-ftb]: https://img.shields.io/discord/1373797679469170758?style=for-the-badge&logo=discord [✉️ruby-friends-img]: https://img.shields.io/badge/daily.dev-%F0%9F%92%8E_Ruby_Friends-0A0A0A?style=for-the-badge&logo=dailydotdev&logoColor=white [✉️ruby-friends]: https://app.daily.dev/squads/rubyfriends +[✉️ruby-forum-img]: https://img.shields.io/badge/RubyForum-Help-CC342D?style=for-the-badge&logo=ruby&logoColor=white +[✉️ruby-forum]: https://www.rubyforum.org/c/help/8 [✇bundle-group-pattern]: https://gist.github.com/pboling/4564780 [⛳️gem-namespace]: https://github.com/structuredmerge/structuredmerge-ruby/tree/main/gems/ast-merge [⛳️namespace-img]: https://img.shields.io/badge/namespace-Ast::Merge-3C2D2D.svg?style=square&logo=ruby&logoColor=white diff --git a/gems/ast-merge/bin/yard b/gems/ast-merge/bin/yard index 5d516ad6f..a7e8b6eed 100755 --- a/gems/ast-merge/bin/yard +++ b/gems/ast-merge/bin/yard @@ -12,4 +12,4 @@ # `yard` / `bin/yard`. Keep this binstub as a handoff to the task so # humans and tools that reach for `bin/yard` still run the full docs # workflow with post-processing hooks. -exec('bundle', 'exec', 'rake', 'yard') +exec("bundle", "exec", "rake", "yard") diff --git a/gems/ast-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile b/gems/ast-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile index b8392fab0..e69de29bb 100644 --- a/gems/ast-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile +++ b/gems/ast-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile @@ -1,2 +0,0 @@ -# Ruby >= 2.1 -gem 'benchmark', '~> 0.5', '>= 0.5.0' # Removed from Std Lib in Ruby 4.0 diff --git a/gems/ast-merge/gemfiles/modular/benchmark/vHEAD.gemfile b/gems/ast-merge/gemfiles/modular/benchmark/vHEAD.gemfile index af214aafa..e69de29bb 100644 --- a/gems/ast-merge/gemfiles/modular/benchmark/vHEAD.gemfile +++ b/gems/ast-merge/gemfiles/modular/benchmark/vHEAD.gemfile @@ -1,2 +0,0 @@ -# Ruby >= 2.1 -gem 'benchmark', github: 'ruby/benchmark', branch: 'master' diff --git a/gems/ast-merge/gemfiles/modular/cgi/r4/v0.5.gemfile b/gems/ast-merge/gemfiles/modular/cgi/r4/v0.5.gemfile new file mode 100644 index 000000000..19ed967c3 --- /dev/null +++ b/gems/ast-merge/gemfiles/modular/cgi/r4/v0.5.gemfile @@ -0,0 +1 @@ +gem "cgi", "~> 0.5" diff --git a/gems/ast-merge/gemfiles/modular/cgi/vHEAD.gemfile b/gems/ast-merge/gemfiles/modular/cgi/vHEAD.gemfile new file mode 100644 index 000000000..ef8b816ce --- /dev/null +++ b/gems/ast-merge/gemfiles/modular/cgi/vHEAD.gemfile @@ -0,0 +1 @@ +gem "cgi", ">= 0.5" diff --git a/gems/ast-merge/gemfiles/modular/coverage.gemfile b/gems/ast-merge/gemfiles/modular/coverage.gemfile index f96d50954..52d737872 100644 --- a/gems/ast-merge/gemfiles/modular/coverage.gemfile +++ b/gems/ast-merge/gemfiles/modular/coverage.gemfile @@ -4,11 +4,11 @@ # Set KETTLE_DEV_DEV=true for local development with path-based dependencies. # When false (default / CI), remote released gems are used. -if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? +if ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false").zero? # Coverage (remote/released) platform :mri do - gem 'kettle-soup-cover', '~> 1.0', '>= 1.1.3', require: false + gem "kettle-soup-cover", "~> 3.0", ">= 3.0.3", require: false end else - eval_gemfile 'coverage_local.gemfile' + eval_gemfile "coverage_local.gemfile" end diff --git a/gems/ast-merge/gemfiles/modular/coverage_local.gemfile b/gems/ast-merge/gemfiles/modular/coverage_local.gemfile index ad77cc251..c950b8d78 100644 --- a/gems/ast-merge/gemfiles/modular/coverage_local.gemfile +++ b/gems/ast-merge/gemfiles/modular/coverage_local.gemfile @@ -3,31 +3,53 @@ # Local path overrides for development. # Loaded by the associated non-local gemfile when KETTLE_DEV_DEV != "false". -require 'nomono/bundler' unless defined?(Nomono) +# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. +# Bundler records that dependency during Gemfile evaluation, but it does not +# activate that exact version before the immediate `require "nomono/bundler"`. +# If multiple compatible nomono versions are installed, RubyGems may activate +# the newest installed version while Gemfile.lock pins an older compatible one; +# Bundler then aborts with "already activated nomono X, but your Gemfile +# requires nomono Y". Prefer the locked compatible version when present, then +# activate it explicitly before requiring the Bundler DSL extension used below. +nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] +nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) +if File.file?(nomono_lockfile) + nomono_locked_spec = Bundler::LockfileParser + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == "nomono" } + nomono_locked = nomono_locked_spec && + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + if nomono_locked + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] + end +end +Kernel.send(:gem, "nomono", *nomono_activation_requirements) +require "nomono/bundler" local_gems = %w[kettle-dev kettle-test kettle-soup-cover kettle-drift] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) local_gems_to_eval = local_gems - %w[ast-merge] - declared_gems -# export KETTLE_DEV_DEV=/path/to/kettle-rb +# export KETTLE_DEV_DEV=/path/to/my platform :mri do eval_nomono_gems( gems: local_gems_to_eval, - prefix: 'KETTLE_DEV', - path_env: 'KETTLE_DEV_DEV', - vendored_gems_env: 'VENDORED_GEMS', - vendor_gem_dir_env: 'VENDOR_GEM_DIR', - debug_env: 'KETTLE_DEV_DEBUG' + prefix: "KETTLE_DEV", + path_env: "KETTLE_DEV_DEV", + vendored_gems_env: "VENDORED_GEMS", + vendor_gem_dir_env: "VENDOR_GEM_DIR", + debug_env: "KETTLE_DEV_DEBUG" ) - if ENV.fetch('GALTZO_FLOSS_DEV', 'false').casecmp('false') != 0 + if ENV.fetch("GALTZO_FLOSS_DEV", "false").casecmp("false") != 0 eval_nomono_gems( gems: %w[turbo_tests2], - prefix: 'GALTZO_FLOSS', - path_env: 'GALTZO_FLOSS_DEV', - vendored_gems_env: 'GALTZO_FLOSS_VENDORED_GEMS', - vendor_gem_dir_env: 'GALTZO_FLOSS_VENDOR_GEM_DIR', - debug_env: 'GALTZO_FLOSS_DEBUG' + prefix: "GALTZO_FLOSS", + path_env: "GALTZO_FLOSS_DEV", + vendored_gems_env: "GALTZO_FLOSS_VENDORED_GEMS", + vendor_gem_dir_env: "GALTZO_FLOSS_VENDOR_GEM_DIR", + debug_env: "GALTZO_FLOSS_DEBUG" ) end end diff --git a/gems/ast-merge/gemfiles/modular/debug.gemfile b/gems/ast-merge/gemfiles/modular/debug.gemfile index eed8d4d1e..4e15b1a3a 100644 --- a/gems/ast-merge/gemfiles/modular/debug.gemfile +++ b/gems/ast-merge/gemfiles/modular/debug.gemfile @@ -13,10 +13,10 @@ platform :mri do # Debugging - Ensure ENV["DEBUG"] == "true" to use debuggers within spec suite # Use binding.break, binding.b, or debugger in code - gem 'debug', '>= 1.1' # ruby >= 2.7 + gem "debug", ">= 1.1" # ruby >= 2.7 # Dev Console - Binding.pry - Irb replacement # gem "pry", "~> 0.14" # ruby >= 2.0 end -gem 'gem_bench', '~> 2.0', '>= 2.0.5' +gem "gem_bench", "~> 2.0", ">= 2.0.5" diff --git a/gems/ast-merge/gemfiles/modular/documentation.gemfile b/gems/ast-merge/gemfiles/modular/documentation.gemfile index dff5cc108..d8215416e 100644 --- a/gems/ast-merge/gemfiles/modular/documentation.gemfile +++ b/gems/ast-merge/gemfiles/modular/documentation.gemfile @@ -7,20 +7,20 @@ # # Documentation -gem 'kramdown', '~> 2.5', '>= 2.5.1', require: false # Ruby >= 2.5 -gem 'kramdown-parser-gfm', '~> 1.1', require: false # Ruby >= 2.3 -gem 'yaml-converter', '~> 0.1', require: false # Ruby >= 3.2 -gem 'yard', '~> 0.9', '>= 0.9.44', require: false -gem 'yard-junk', '~> 0.1', '>= 0.1.0', require: false # Ruby >= 3.1 -gem 'yard-relative_markdown_links', '~> 0.6', require: false +gem "kramdown", "~> 2.5", ">= 2.5.2", require: false # Ruby >= 2.5 +gem "kramdown-parser-gfm", "~> 1.1", require: false # Ruby >= 2.3 +gem "yaml-converter", "~> 0.2", ">= 0.2.3", require: false # Ruby >= 3.2 +gem "yard", "~> 0.9", ">= 0.9.45", require: false +gem "yard-junk", "~> 0.1", ">= 0.1.0", require: false # Ruby >= 3.1 +gem "yard-relative_markdown_links", "~> 0.6", require: false -if ENV.fetch('GALTZO_FLOSS_DEV', 'false').casecmp('false').zero? - gem 'yard-fence', '~> 0.9', '>= 0.9.1', require: false # Ruby >= 3.2 - gem 'yard-timekeeper', '~> 0.1', require: false - gem 'yard-yaml', '~> 0.1', '>= 0.1.2', require: false +if ENV.fetch("GALTZO_FLOSS_DEV", "false").casecmp("false").zero? + gem "yard-fence", "~> 0.9", ">= 0.9.6", require: false # Ruby >= 3.2 + gem "yard-timekeeper", "~> 0.2", ">= 0.2.4", require: false + gem "yard-yaml", "~> 0.2", ">= 0.2.3", require: false else - eval_gemfile 'documentation_local.gemfile' + eval_gemfile "documentation_local.gemfile" end # Std Lib extractions -gem 'rdoc', '~> 6.11', require: false unless ENV.fetch('KJ_FRAMEWORK_MATRIX_GEM', '') == 'rdoc' +gem "rdoc", "~> 6.11", require: false unless ENV.fetch("KJ_FRAMEWORK_MATRIX_GEM", "") == "rdoc" diff --git a/gems/ast-merge/gemfiles/modular/documentation_local.gemfile b/gems/ast-merge/gemfiles/modular/documentation_local.gemfile index 4d4c2bd95..b1bc573f7 100644 --- a/gems/ast-merge/gemfiles/modular/documentation_local.gemfile +++ b/gems/ast-merge/gemfiles/modular/documentation_local.gemfile @@ -3,16 +3,40 @@ # Local path overrides for development. # Loaded by the associated non-local gemfile when GALTZO_FLOSS_DEV != "false". -require 'nomono/bundler' unless defined?(Nomono) +# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. +# Bundler records that dependency during Gemfile evaluation, but it does not +# activate that exact version before the immediate `require "nomono/bundler"`. +# If multiple compatible nomono versions are installed, RubyGems may activate +# the newest installed version while Gemfile.lock pins an older compatible one; +# Bundler then aborts with "already activated nomono X, but your Gemfile +# requires nomono Y". Prefer the locked compatible version when present, then +# activate it explicitly before requiring the Bundler DSL extension used below. +nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] +nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) +if File.file?(nomono_lockfile) + nomono_locked_spec = Bundler::LockfileParser + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == "nomono" } + nomono_locked = nomono_locked_spec && + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + if nomono_locked + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] + end +end +Kernel.send(:gem, "nomono", *nomono_activation_requirements) +require "nomono/bundler" local_gems = %w[yard-fence yard-timekeeper yard-yaml] +declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) +local_gems_to_eval = local_gems - %w[ast-merge] - declared_gems # export GALTZO_FLOSS_DEV=/path/to/galtzo-floss eval_nomono_gems( - gems: local_gems, - prefix: 'GALTZO_FLOSS', - path_env: 'GALTZO_FLOSS_DEV', - vendored_gems_env: 'GALTZO_FLOSS_VENDORED_GEMS', - vendor_gem_dir_env: 'GALTZO_FLOSS_VENDOR_GEM_DIR', - debug_env: 'GALTZO_FLOSS_DEBUG' + gems: local_gems_to_eval, + prefix: "GALTZO_FLOSS", + path_env: "GALTZO_FLOSS_DEV", + vendored_gems_env: "GALTZO_FLOSS_VENDORED_GEMS", + vendor_gem_dir_env: "GALTZO_FLOSS_VENDOR_GEM_DIR", + debug_env: "GALTZO_FLOSS_DEBUG" ) diff --git a/gems/ast-merge/gemfiles/modular/erb/r2/v3.0.gemfile b/gems/ast-merge/gemfiles/modular/erb/r2/v3.0.gemfile index 7c83a239b..c03bd8d85 100644 --- a/gems/ast-merge/gemfiles/modular/erb/r2/v3.0.gemfile +++ b/gems/ast-merge/gemfiles/modular/erb/r2/v3.0.gemfile @@ -1 +1 @@ -gem 'erb', '~> 3.0' # ruby >= 2.7.0 +gem "erb", "~> 3.0" # ruby >= 2.7.0 diff --git a/gems/ast-merge/gemfiles/modular/erb/r3/v5.0.gemfile b/gems/ast-merge/gemfiles/modular/erb/r3/v5.0.gemfile index 0e3bf1b97..1bd029cc1 100644 --- a/gems/ast-merge/gemfiles/modular/erb/r3/v5.0.gemfile +++ b/gems/ast-merge/gemfiles/modular/erb/r3/v5.0.gemfile @@ -1 +1 @@ -gem 'erb', '~> 6.0', '>= 6.0.4' # ruby >= 3.2.0 +gem "erb", "~> 6.0", ">= 6.0.6" # ruby >= 3.2.0 diff --git a/gems/ast-merge/gemfiles/modular/erb/r4/v5.0.gemfile b/gems/ast-merge/gemfiles/modular/erb/r4/v5.0.gemfile index 0e3bf1b97..1bd029cc1 100644 --- a/gems/ast-merge/gemfiles/modular/erb/r4/v5.0.gemfile +++ b/gems/ast-merge/gemfiles/modular/erb/r4/v5.0.gemfile @@ -1 +1 @@ -gem 'erb', '~> 6.0', '>= 6.0.4' # ruby >= 3.2.0 +gem "erb", "~> 6.0", ">= 6.0.6" # ruby >= 3.2.0 diff --git a/gems/ast-merge/gemfiles/modular/erb/vHEAD.gemfile b/gems/ast-merge/gemfiles/modular/erb/vHEAD.gemfile index ea0101185..48fee4218 100644 --- a/gems/ast-merge/gemfiles/modular/erb/vHEAD.gemfile +++ b/gems/ast-merge/gemfiles/modular/erb/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 3.2 -gem 'erb', github: 'ruby/erb', branch: 'master' +gem "erb", github: "ruby/erb", branch: "master" diff --git a/gems/ast-merge/gemfiles/modular/json/truffleruby_22_3.gemfile b/gems/ast-merge/gemfiles/modular/json/truffleruby_22_3.gemfile new file mode 100644 index 000000000..b0e69ab11 --- /dev/null +++ b/gems/ast-merge/gemfiles/modular/json/truffleruby_22_3.gemfile @@ -0,0 +1,6 @@ +# frozen_string_literal: true + +if RUBY_ENGINE == "truffleruby" && RUBY_ENGINE_VERSION.start_with?("22.3") + # TruffleRuby 22.3 ships the json default gem from its emulated MRI Ruby. + gem "json", "= 2.5.1" +end diff --git a/gems/ast-merge/gemfiles/modular/json/truffleruby_23_0.gemfile b/gems/ast-merge/gemfiles/modular/json/truffleruby_23_0.gemfile new file mode 100644 index 000000000..7b2660a2b --- /dev/null +++ b/gems/ast-merge/gemfiles/modular/json/truffleruby_23_0.gemfile @@ -0,0 +1,6 @@ +# frozen_string_literal: true + +if RUBY_ENGINE == "truffleruby" && RUBY_ENGINE_VERSION.start_with?("23.0") + # TruffleRuby 23.0 ships the json default gem from its emulated MRI Ruby. + gem "json", "= 2.6.1" +end diff --git a/gems/ast-merge/gemfiles/modular/json/truffleruby_23_1.gemfile b/gems/ast-merge/gemfiles/modular/json/truffleruby_23_1.gemfile new file mode 100644 index 000000000..dfa21f2e4 --- /dev/null +++ b/gems/ast-merge/gemfiles/modular/json/truffleruby_23_1.gemfile @@ -0,0 +1,6 @@ +# frozen_string_literal: true + +if RUBY_ENGINE == "truffleruby" && RUBY_ENGINE_VERSION.start_with?("23.1") + # TruffleRuby 23.1 ships the json default gem from its emulated MRI Ruby. + gem "json", "= 2.6.3" +end diff --git a/gems/ast-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile b/gems/ast-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile index e27f1bbae..42e9d9bd4 100644 --- a/gems/ast-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile +++ b/gems/ast-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 -gem 'mutex_m', '~> 0.2' +gem "mutex_m", "~> 0.2" diff --git a/gems/ast-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile b/gems/ast-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile index e27f1bbae..42e9d9bd4 100644 --- a/gems/ast-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile +++ b/gems/ast-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 -gem 'mutex_m', '~> 0.2' +gem "mutex_m", "~> 0.2" diff --git a/gems/ast-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile b/gems/ast-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile index e27f1bbae..42e9d9bd4 100644 --- a/gems/ast-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile +++ b/gems/ast-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 -gem 'mutex_m', '~> 0.2' +gem "mutex_m", "~> 0.2" diff --git a/gems/ast-merge/gemfiles/modular/mutex_m/vHEAD.gemfile b/gems/ast-merge/gemfiles/modular/mutex_m/vHEAD.gemfile index 9dac2f6cb..8af3b6fca 100644 --- a/gems/ast-merge/gemfiles/modular/mutex_m/vHEAD.gemfile +++ b/gems/ast-merge/gemfiles/modular/mutex_m/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 (dependency of omniauth) -gem 'mutex_m', github: 'ruby/mutex_m', branch: 'master' +gem "mutex_m", github: "ruby/mutex_m", branch: "master" diff --git a/gems/ast-merge/gemfiles/modular/optional.gemfile b/gems/ast-merge/gemfiles/modular/optional.gemfile index 74f15a196..80bc45196 100644 --- a/gems/ast-merge/gemfiles/modular/optional.gemfile +++ b/gems/ast-merge/gemfiles/modular/optional.gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -# To retain during ast-merge templating: +# To retain during kettle-jem templating: # kettle-jem:freeze # # ... your code # kettle-jem:unfreeze @@ -9,9 +9,8 @@ # Optional dependencies are not depended on directly, but may be used if present. # Required for curated binstubs generated by kettle-jem install -gem 'rbs', '>= 3.0', require: false # ruby >= 3.1 -gem 'stone_checksums', '~> 1.0', '>= 1.0.3', require: false # ruby >= 2.2 +gem "rbs", ">= 3.0", require: false # ruby >= 3.1 # Required for kettle-pre-release # URL parsing with Unicode support (falls back to URI if not available) -gem 'addressable', '>= 2.8', '< 3' # ruby >= 2.2 +gem "addressable", ">= 2.8", "< 3" # ruby >= 2.2 diff --git a/gems/ast-merge/gemfiles/modular/rspec.gemfile b/gems/ast-merge/gemfiles/modular/rspec.gemfile index 2af210a41..72fdf8b7f 100644 --- a/gems/ast-merge/gemfiles/modular/rspec.gemfile +++ b/gems/ast-merge/gemfiles/modular/rspec.gemfile @@ -1,4 +1,4 @@ -gem 'rspec_junit_formatter', - github: 'pboling/rspec_junit_formatter', - branch: 'main', - ref: '9e6bcaaedd49477b62878ed568dc4ada5cc7cb5e' +gem "rspec_junit_formatter", + github: "pboling/rspec_junit_formatter", + branch: "main", + ref: "9e6bcaaedd49477b62878ed568dc4ada5cc7cb5e" diff --git a/gems/ast-merge/gemfiles/modular/runtime_heads.gemfile b/gems/ast-merge/gemfiles/modular/runtime_heads.gemfile index 78bdc2227..02f134c7f 100644 --- a/gems/ast-merge/gemfiles/modular/runtime_heads.gemfile +++ b/gems/ast-merge/gemfiles/modular/runtime_heads.gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -# To retain during ast-merge templating: +# To retain during kettle-jem templating: # kettle-jem:freeze # # ... your code # kettle-jem:unfreeze @@ -8,7 +8,4 @@ # Test against HEAD of runtime dependencies so we can proactively file bugs -# Ruby >= 2.2 -gem 'version_gem', github: 'ruby-oauth/version_gem', branch: 'main' - -eval_gemfile('x_std_libs/vHEAD.gemfile') +eval_gemfile("x_std_libs/vHEAD.gemfile") diff --git a/gems/ast-merge/gemfiles/modular/stringio/r2/v3.0.gemfile b/gems/ast-merge/gemfiles/modular/stringio/r2/v3.0.gemfile index 3616f4e3a..e85bb18ee 100644 --- a/gems/ast-merge/gemfiles/modular/stringio/r2/v3.0.gemfile +++ b/gems/ast-merge/gemfiles/modular/stringio/r2/v3.0.gemfile @@ -2,4 +2,4 @@ # NOT SEMVER # Version 3.0.7 dropped support for Ruby <= 2.7 # Version 3.0.0 dropped support for Ruby <= 2.4 -gem 'stringio', '>= 3.0' +gem "stringio", ">= 3.0" diff --git a/gems/ast-merge/gemfiles/modular/stringio/r3/v3.0.gemfile b/gems/ast-merge/gemfiles/modular/stringio/r3/v3.0.gemfile index 3616f4e3a..e85bb18ee 100644 --- a/gems/ast-merge/gemfiles/modular/stringio/r3/v3.0.gemfile +++ b/gems/ast-merge/gemfiles/modular/stringio/r3/v3.0.gemfile @@ -2,4 +2,4 @@ # NOT SEMVER # Version 3.0.7 dropped support for Ruby <= 2.7 # Version 3.0.0 dropped support for Ruby <= 2.4 -gem 'stringio', '>= 3.0' +gem "stringio", ">= 3.0" diff --git a/gems/ast-merge/gemfiles/modular/stringio/r4/v3.0.gemfile b/gems/ast-merge/gemfiles/modular/stringio/r4/v3.0.gemfile index 3616f4e3a..e85bb18ee 100644 --- a/gems/ast-merge/gemfiles/modular/stringio/r4/v3.0.gemfile +++ b/gems/ast-merge/gemfiles/modular/stringio/r4/v3.0.gemfile @@ -2,4 +2,4 @@ # NOT SEMVER # Version 3.0.7 dropped support for Ruby <= 2.7 # Version 3.0.0 dropped support for Ruby <= 2.4 -gem 'stringio', '>= 3.0' +gem "stringio", ">= 3.0" diff --git a/gems/ast-merge/gemfiles/modular/stringio/vHEAD.gemfile b/gems/ast-merge/gemfiles/modular/stringio/vHEAD.gemfile index 78f5f5d8a..5f2a74126 100644 --- a/gems/ast-merge/gemfiles/modular/stringio/vHEAD.gemfile +++ b/gems/ast-merge/gemfiles/modular/stringio/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 (dependency of omniauth) -gem 'stringio', github: 'ruby/stringio', branch: 'master' +gem "stringio", github: "ruby/stringio", branch: "master" diff --git a/gems/ast-merge/gemfiles/modular/style.gemfile b/gems/ast-merge/gemfiles/modular/style.gemfile index 002341f21..35de4dcd6 100644 --- a/gems/ast-merge/gemfiles/modular/style.gemfile +++ b/gems/ast-merge/gemfiles/modular/style.gemfile @@ -1,28 +1,31 @@ # frozen_string_literal: true -# To retain during ast-merge templating: +# To retain during kettle-jem templating: # kettle-jem:freeze # # ... your code # kettle-jem:unfreeze # -# We run rubocop on the latest version of Ruby, -# but in support of the oldest supported version of Ruby +# Style tasks run on the latest Ruby; RuboCop-LTS selects the compatibility +# rules for the configured Ruby floor independently from task dependency floors. -gem 'reek', '~> 6.5' +gem "reek", "~> 6.5", ">= 6.5.0" platform :mri do - gem 'rubocop-on-rbs', '~> 2.0' # ruby >= 3.2.0 + gem "appraisal2-rubocop", "~> 1.0", ">= 1.0.0", require: false + gem "rubocop-gradual", "~> 0.4", ">= 0.4.0" + gem "rubocop-minitest", "~> 0.40", ">= 0.40.0" + gem "rubocop-on-rbs", "~> 2.0", ">= 2.0.0" # ruby >= 3.2.0 # gem "rubocop", "~> 1.73", ">= 1.73.2" # constrained by standard - gem 'rubocop-packaging', '~> 0.6', '>= 0.6.0' - gem 'standard', '>= 1.50' + gem "rubocop-packaging", "~> 0.6", ">= 0.6.0" + gem "standard", "~> 1.56", ">= 1.56.0" - if ENV.fetch('RUBOCOP_LTS_LOCAL', 'false').casecmp('false').zero? - gem 'rubocop-lts', '~> 24.1.0' - # "rubocop-lts-rspec" can't add here until other gems are updated. - gem 'rubocop-rspec', '~> 3.6' - gem 'rubocop-ruby3_2', '~> 3.0.0' + if ENV.fetch("RUBOCOP_LTS_LOCAL", "false").casecmp("false").zero? + declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) + gem "rubocop-lts", "~> 24.2", ">= 24.2.1" unless declared_gems.include?("rubocop-lts") + gem "rubocop-lts-rspec", "~> 1.0", ">= 1.0.5" unless declared_gems.include?("rubocop-lts-rspec") + gem "rubocop-ruby3_2", "~> 3.0", ">= 3.0.6" unless declared_gems.include?("rubocop-ruby3_2") else - eval_gemfile('style_local.gemfile') + eval_gemfile("style_local.gemfile") end end diff --git a/gems/ast-merge/gemfiles/modular/style_local.gemfile b/gems/ast-merge/gemfiles/modular/style_local.gemfile index ce75bbe21..a003c7b12 100644 --- a/gems/ast-merge/gemfiles/modular/style_local.gemfile +++ b/gems/ast-merge/gemfiles/modular/style_local.gemfile @@ -1,24 +1,48 @@ # frozen_string_literal: true -# We run rubocop on the latest version of Ruby, -# but in support of the oldest supported version of Ruby +# Style tasks run on the latest Ruby; RuboCop-LTS selects the compatibility +# rules for the configured Ruby floor independently from task dependency floors. # Local path overrides for development. # Loaded by the associated non-local gemfile when RUBOCOP_LTS_LOCAL != "false". -require 'nomono/bundler' unless defined?(Nomono) +# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. +# Bundler records that dependency during Gemfile evaluation, but it does not +# activate that exact version before the immediate `require "nomono/bundler"`. +# If multiple compatible nomono versions are installed, RubyGems may activate +# the newest installed version while Gemfile.lock pins an older compatible one; +# Bundler then aborts with "already activated nomono X, but your Gemfile +# requires nomono Y". Prefer the locked compatible version when present, then +# activate it explicitly before requiring the Bundler DSL extension used below. +nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] +nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) +if File.file?(nomono_lockfile) + nomono_locked_spec = Bundler::LockfileParser + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == "nomono" } + nomono_locked = nomono_locked_spec && + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + if nomono_locked + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] + end +end +Kernel.send(:gem, "nomono", *nomono_activation_requirements) +require "nomono/bundler" local_gems = %w[rubocop-lts rubocop-lts-rspec rubocop-ruby3_2 standard-rubocop-lts] +declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) +local_gems_to_eval = local_gems - %w[ast-merge] - declared_gems # export VENDORED_GEMS=rubocop-lts,rubocop-lts-rspec,rubocop-ruby3_2,standard-rubocop-lts platform :mri do eval_nomono_gems( - gems: local_gems, - prefix: 'RUBOCOP_LTS', - path_env: 'RUBOCOP_LTS_LOCAL', - vendored_gems_env: 'VENDORED_GEMS', - vendor_gem_dir_env: 'VENDOR_GEM_DIR', - debug_env: 'RUBOCOP_LTS_DEBUG', - root: %w[src rubocop-lts] + gems: local_gems_to_eval, + prefix: "RUBOCOP_LTS", + path_env: "RUBOCOP_LTS_LOCAL", + vendored_gems_env: "VENDORED_GEMS", + vendor_gem_dir_env: "VENDOR_GEM_DIR", + debug_env: "RUBOCOP_LTS_DEBUG", + root: ["src", "rubocop-lts"] ) end diff --git a/gems/ast-merge/gemfiles/modular/templating.gemfile b/gems/ast-merge/gemfiles/modular/templating.gemfile index 2ddc9433f..47138ffbb 100644 --- a/gems/ast-merge/gemfiles/modular/templating.gemfile +++ b/gems/ast-merge/gemfiles/modular/templating.gemfile @@ -1,24 +1,24 @@ # frozen_string_literal: true -structuredmerge_remote = ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false').zero? -kettle_remote = ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? +structuredmerge_remote = ENV.fetch("STRUCTUREDMERGE_DEV", "false").casecmp("false").zero? +kettle_remote = ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false").zero? if structuredmerge_remote # Parser dependencies for released installs. - gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' + gem "tree_sitter_language_pack", "~> 1.13", ">= 1.13.3" # Merge recipes for released installs. - gem 'kettle-jem', '>= 7.0' + gem "kettle-jem", ">= 7.0" end if kettle_remote # Template/plugin checks for released installs. - gem 'kettle-drift', '~> 1.0', '>= 1.0.5', require: false + gem "kettle-drift", "~> 1.0", ">= 1.0.6", require: false end # Set STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local development with path-based dependencies. # When false (default / CI), released kettle-jem brings merge gems and parser dependencies. # Local path overrides bring the same dependencies from sibling gemspecs. # -# Set KETTLE_DEV_DEV=/path/to/kettle-rb for local development with Kettle plugin gems. +# Set KETTLE_DEV_DEV=/path/to/my for local development with Kettle plugin gems. # When false (default / CI), released Kettle plugin gems are used. -eval_gemfile 'templating_local.gemfile' unless structuredmerge_remote && kettle_remote +eval_gemfile "templating_local.gemfile" unless structuredmerge_remote && kettle_remote diff --git a/gems/ast-merge/gemfiles/modular/templating_local.gemfile b/gems/ast-merge/gemfiles/modular/templating_local.gemfile index 8270c7815..efcd3bad8 100644 --- a/gems/ast-merge/gemfiles/modular/templating_local.gemfile +++ b/gems/ast-merge/gemfiles/modular/templating_local.gemfile @@ -4,7 +4,29 @@ # Loaded by the associated non-local gemfile when STRUCTUREDMERGE_DEV or KETTLE_DEV_DEV # is not "false". -require 'nomono/bundler' unless defined?(Nomono) +# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. +# Bundler records that dependency during Gemfile evaluation, but it does not +# activate that exact version before the immediate `require "nomono/bundler"`. +# If multiple compatible nomono versions are installed, RubyGems may activate +# the newest installed version while Gemfile.lock pins an older compatible one; +# Bundler then aborts with "already activated nomono X, but your Gemfile +# requires nomono Y". Prefer the locked compatible version when present, then +# activate it explicitly before requiring the Bundler DSL extension used below. +nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] +nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) +if File.file?(nomono_lockfile) + nomono_locked_spec = Bundler::LockfileParser + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == "nomono" } + nomono_locked = nomono_locked_spec && + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + if nomono_locked + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] + end +end +Kernel.send(:gem, "nomono", *nomono_activation_requirements) +require "nomono/bundler" structuredmerge_local_gems = %w[ tree_haver @@ -47,25 +69,25 @@ structuredmerge_local_gems_to_eval = structuredmerge_local_gems - %w[ast-merge] kettle_dev_local_gems_to_eval = kettle_dev_local_gems - %w[ast-merge] - declared_gems platform :mri do - if ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false') != 0 + if ENV.fetch("STRUCTUREDMERGE_DEV", "false").casecmp("false") != 0 eval_nomono_gems( gems: structuredmerge_local_gems_to_eval, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - vendored_gems_env: 'VENDORED_GEMS', - vendor_gem_dir_env: 'VENDOR_GEM_DIR', - debug_env: 'STRUCTUREDMERGE_DEBUG' + prefix: "STRUCTUREDMERGE", + path_env: "STRUCTUREDMERGE_DEV", + vendored_gems_env: "VENDORED_GEMS", + vendor_gem_dir_env: "VENDOR_GEM_DIR", + debug_env: "STRUCTUREDMERGE_DEBUG" ) end - if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false') != 0 + if ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false") != 0 eval_nomono_gems( gems: kettle_dev_local_gems_to_eval, - prefix: 'KETTLE_DEV', - path_env: 'KETTLE_DEV_DEV', - vendored_gems_env: 'VENDORED_GEMS', - vendor_gem_dir_env: 'VENDOR_GEM_DIR', - debug_env: 'KETTLE_DEV_DEBUG' + prefix: "KETTLE_DEV", + path_env: "KETTLE_DEV_DEV", + vendored_gems_env: "VENDORED_GEMS", + vendor_gem_dir_env: "VENDOR_GEM_DIR", + debug_env: "KETTLE_DEV_DEBUG" ) end end diff --git a/gems/ast-merge/gemfiles/modular/webrick/r4/v1.9.gemfile b/gems/ast-merge/gemfiles/modular/webrick/r4/v1.9.gemfile new file mode 100644 index 000000000..eaab4a473 --- /dev/null +++ b/gems/ast-merge/gemfiles/modular/webrick/r4/v1.9.gemfile @@ -0,0 +1 @@ +gem "webrick", "~> 1.9" diff --git a/gems/ast-merge/gemfiles/modular/webrick/vHEAD.gemfile b/gems/ast-merge/gemfiles/modular/webrick/vHEAD.gemfile new file mode 100644 index 000000000..8a789b634 --- /dev/null +++ b/gems/ast-merge/gemfiles/modular/webrick/vHEAD.gemfile @@ -0,0 +1 @@ +gem "webrick", ">= 1.9" diff --git a/gems/ast-merge/gemfiles/modular/x_std_libs.gemfile b/gems/ast-merge/gemfiles/modular/x_std_libs.gemfile index b1f43c097..77aad43f2 100644 --- a/gems/ast-merge/gemfiles/modular/x_std_libs.gemfile +++ b/gems/ast-merge/gemfiles/modular/x_std_libs.gemfile @@ -1,12 +1,12 @@ ### Std Lib Extracted Gems ruby_version = Gem::Version.new(RUBY_VERSION) -if ruby_version >= Gem::Version.new('4.0') - eval_gemfile 'x_std_libs/r4/libs.gemfile' -elsif ruby_version >= Gem::Version.new('3.2') - eval_gemfile 'x_std_libs/r3/libs.gemfile' -elsif ruby_version >= Gem::Version.new('3.1') - eval_gemfile 'x_std_libs/r3.1/libs.gemfile' +if ruby_version >= Gem::Version.new("4.0") + eval_gemfile "x_std_libs/r4/libs.gemfile" +elsif ruby_version >= Gem::Version.new("3.2") + eval_gemfile "x_std_libs/r3/libs.gemfile" +elsif ruby_version >= Gem::Version.new("3.1") + eval_gemfile "x_std_libs/r3.1/libs.gemfile" else - eval_gemfile 'x_std_libs/r2/libs.gemfile' + eval_gemfile "x_std_libs/r2/libs.gemfile" end diff --git a/gems/ast-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile b/gems/ast-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile index 16a5e3d70..441c4f03a 100644 --- a/gems/ast-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile +++ b/gems/ast-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile @@ -1,3 +1,3 @@ -eval_gemfile '../../erb/r2/v3.0.gemfile' -eval_gemfile '../../mutex_m/r2/v0.3.gemfile' -eval_gemfile '../../stringio/r2/v3.0.gemfile' +eval_gemfile "../../erb/r2/v3.0.gemfile" +eval_gemfile "../../mutex_m/r2/v0.3.gemfile" +eval_gemfile "../../stringio/r2/v3.0.gemfile" diff --git a/gems/ast-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile b/gems/ast-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile index 220ff95c1..c293a3ddd 100644 --- a/gems/ast-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile +++ b/gems/ast-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile @@ -1,3 +1,3 @@ -eval_gemfile '../../erb/r3/v5.0.gemfile' -eval_gemfile '../../mutex_m/r3/v0.3.gemfile' -eval_gemfile '../../stringio/r3/v3.0.gemfile' +eval_gemfile "../../erb/r3/v5.0.gemfile" +eval_gemfile "../../mutex_m/r3/v0.3.gemfile" +eval_gemfile "../../stringio/r3/v3.0.gemfile" diff --git a/gems/ast-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile b/gems/ast-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile index bd4e884df..eb5574247 100644 --- a/gems/ast-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile +++ b/gems/ast-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile @@ -1,4 +1,6 @@ -eval_gemfile '../../erb/r4/v5.0.gemfile' -eval_gemfile '../../mutex_m/r4/v0.3.gemfile' -eval_gemfile '../../stringio/r4/v3.0.gemfile' -eval_gemfile '../../benchmark/r4/v0.5.gemfile' +eval_gemfile "../../erb/r4/v5.0.gemfile" +eval_gemfile "../../mutex_m/r4/v0.3.gemfile" +eval_gemfile "../../stringio/r4/v3.0.gemfile" +eval_gemfile "../../benchmark/r4/v0.5.gemfile" +eval_gemfile "../../cgi/r4/v0.5.gemfile" +eval_gemfile "../../webrick/r4/v1.9.gemfile" diff --git a/gems/ast-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile b/gems/ast-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile index 91f383c11..d4d5b16c9 100644 --- a/gems/ast-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile +++ b/gems/ast-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile @@ -1,4 +1,6 @@ -eval_gemfile '../erb/vHEAD.gemfile' -eval_gemfile '../mutex_m/vHEAD.gemfile' -eval_gemfile '../stringio/vHEAD.gemfile' -eval_gemfile '../benchmark/vHEAD.gemfile' +eval_gemfile "../erb/vHEAD.gemfile" +eval_gemfile "../mutex_m/vHEAD.gemfile" +eval_gemfile "../stringio/vHEAD.gemfile" +eval_gemfile "../benchmark/vHEAD.gemfile" +eval_gemfile "../cgi/vHEAD.gemfile" +eval_gemfile "../webrick/vHEAD.gemfile" diff --git a/gems/markdown-merge/.kettle-drift.lock b/gems/markdown-merge/.kettle-drift.lock index 9be384c91..43dfedd67 100644 --- a/gems/markdown-merge/.kettle-drift.lock +++ b/gems/markdown-merge/.kettle-drift.lock @@ -1,130 +1,10 @@ { - "(direct_sibling_local ||\nENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?)": [ - { - "file": "Gemfile", - "lines": [ - 80, - 120, - 160, - 200, - 240, - 280, - 320, - 360, - 400 - ] - } - ], - ".find { |spec| spec.name == 'nomono' }\nnomono_locked = nomono_locked_spec &&": [ - { - "file": "Gemfile", - "lines": [ - 91, - 131, - 171, - 211, - 251, - 291, - 331, - 371, - 411 - ] - } - ], - "ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?)\ndirect_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV')": [ - { - "file": "Gemfile", - "lines": [ - 81, - 121, - 161, - 201, - 241, - 281, - 321, - 361, - 401 - ] - } - ], - "Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version)\nnomono_activation_requirements = [\"= #{nomono_locked_spec.version}\"] if nomono_locked": [ - { - "file": "Gemfile", - "lines": [ - 93, - 133, - 173, - 213, - 253, - 293, - 333, - 373, - 413 - ] - } - ], - "Kernel.send(:gem, 'nomono', *nomono_activation_requirements)\nrequire 'nomono/bundler'": [ - { - "file": "Gemfile", - "lines": [ - 96, - 136, - 176, - 216, - 256, - 296, - 336, - 376, - 416 - ] - } - ], - "direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV')\ndirect_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil)": [ - { - "file": "Gemfile", - "lines": [ - 82, - 122, - 162, - 202, - 242, - 282, - 322, - 362, - 402 - ] - } - ], "eval_nomono_gems(\ngems: direct_sibling_gems,": [ { "file": "Gemfile", "lines": [ 60, - 100, - 140, - 180, - 220, - 260, - 300, - 340, - 380, - 420 - ] - } - ], - "gems: direct_sibling_gems,\nprefix: 'STRUCTUREDMERGE',": [ - { - "file": "Gemfile", - "lines": [ - 101, - 141, - 181, - 221, - 261, - 301, - 341, - 381, - 421 + 100 ] } ], @@ -133,31 +13,7 @@ "file": "Gemfile", "lines": [ 43, - 87, - 127, - 167, - 207, - 247, - 287, - 327, - 367, - 407 - ] - } - ], - "if direct_sibling_dev_was_set\nENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original": [ - { - "file": "Gemfile", - "lines": [ - 110, - 150, - 190, - 230, - 270, - 310, - 350, - 390, - 430 + 87 ] } ], @@ -166,15 +22,7 @@ "file": "Gemfile", "lines": [ 35, - 79, - 119, - 159, - 199, - 239, - 279, - 319, - 359, - 399 + 79 ] } ], @@ -183,31 +31,7 @@ "file": "Gemfile", "lines": [ 69, - 109, - 149, - 189, - 229, - 269, - 309, - 349, - 389, - 429 - ] - } - ], - "nomono_activation_requirements = nomono_requirements\nnomono_lockfile = File.expand_path('Gemfile.lock', __dir__)": [ - { - "file": "Gemfile", - "lines": [ - 85, - 125, - 165, - 205, - 245, - 285, - 325, - 365, - 405 + 109 ] } ], @@ -216,15 +40,7 @@ "file": "Gemfile", "lines": [ 48, - 92, - 132, - 172, - 212, - 252, - 292, - 332, - 372, - 412 + 92 ] } ], @@ -233,104 +49,7 @@ "file": "Gemfile", "lines": [ 44, - 88, - 128, - 168, - 208, - 248, - 288, - 328, - 368, - 408 - ] - } - ], - "nomono_lockfile = File.expand_path('Gemfile.lock', __dir__)\nif File.file?(nomono_lockfile)": [ - { - "file": "Gemfile", - "lines": [ - 86, - 126, - 166, - 206, - 246, - 286, - 326, - 366, - 406 - ] - } - ], - "path_env: 'STRUCTUREDMERGE_DEV',\nroot: %w[src my structuredmerge]": [ - { - "file": "Gemfile", - "lines": [ - 103, - 143, - 183, - 223, - 263, - 303, - 343, - 383, - 423 - ] - } - ], - "prefix: 'STRUCTUREDMERGE',\npath_env: 'STRUCTUREDMERGE_DEV',": [ - { - "file": "Gemfile", - "lines": [ - 102, - 142, - 182, - 222, - 262, - 302, - 342, - 382, - 422 - ] - } - ], - "require 'nomono/bundler'\nENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local": [ - { - "file": "Gemfile", - "lines": [ - 97, - 137, - 177, - 217, - 257, - 297, - 337, - 377, - 417 - ] - } - ], - "rescue LoadError\nwarn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.'": [ - { - "file": "Gemfile", - "lines": [ - 106, - 146, - 186, - 226, - 266, - 306, - 346, - 386, - 426 - ] - } - ], - "vendored_gems_env: 'VENDORED_GEMS',\nvendor_gem_dir_env: 'VENDOR_GEM_DIR',": [ - { - "file": "gemfiles/modular/templating_local.gemfile", - "lines": [ - 58, - 69 + 88 ] } ] diff --git a/gems/markdown-merge/.structuredmerge/kettle-jem.yml b/gems/markdown-merge/.structuredmerge/kettle-jem.yml index 4577fd1cd..01215c8a8 100644 --- a/gems/markdown-merge/.structuredmerge/kettle-jem.yml +++ b/gems/markdown-merge/.structuredmerge/kettle-jem.yml @@ -246,6 +246,59 @@ templates: - Gemfile - certs/pboling.pem - tmp/.gitignore + - gemfiles/modular/benchmark/r4/v0.5.gemfile + - gemfiles/modular/benchmark/vHEAD.gemfile + - gemfiles/modular/cgi/r4/v0.5.gemfile + - gemfiles/modular/cgi/vHEAD.gemfile + - gemfiles/modular/coverage.gemfile + - gemfiles/modular/coverage_local.gemfile + - gemfiles/modular/debug.gemfile + - gemfiles/modular/documentation.gemfile + - gemfiles/modular/documentation_local.gemfile + - gemfiles/modular/erb/r2.3/default.gemfile + - gemfiles/modular/erb/r2.6/v2.2.gemfile + - gemfiles/modular/erb/r2/v3.0.gemfile + - gemfiles/modular/erb/r3.1/v4.0.gemfile + - gemfiles/modular/erb/r3/v5.0.gemfile + - gemfiles/modular/erb/r4/v5.0.gemfile + - gemfiles/modular/erb/vHEAD.gemfile + - gemfiles/modular/json/truffleruby_22_3.gemfile + - gemfiles/modular/json/truffleruby_23_0.gemfile + - gemfiles/modular/json/truffleruby_23_1.gemfile + - gemfiles/modular/mutex_m/r2.4/v0.1.gemfile + - gemfiles/modular/mutex_m/r2/v0.3.gemfile + - gemfiles/modular/mutex_m/r3/v0.3.gemfile + - gemfiles/modular/mutex_m/r4/v0.3.gemfile + - gemfiles/modular/mutex_m/vHEAD.gemfile + - gemfiles/modular/optional.gemfile + - gemfiles/modular/recording/r2.3/recording.gemfile + - gemfiles/modular/recording/r2.4/recording.gemfile + - gemfiles/modular/recording/r2.5/recording.gemfile + - gemfiles/modular/recording/r3/recording.gemfile + - gemfiles/modular/recording/r4/recording.gemfile + - gemfiles/modular/recording/vHEAD.gemfile + - gemfiles/modular/rspec.gemfile + - gemfiles/modular/runtime_heads.gemfile + - gemfiles/modular/stringio/r2.4/v0.0.2.gemfile + - gemfiles/modular/stringio/r2/v3.0.gemfile + - gemfiles/modular/stringio/r3/v3.0.gemfile + - gemfiles/modular/stringio/r4/v3.0.gemfile + - gemfiles/modular/stringio/vHEAD.gemfile + - gemfiles/modular/style.gemfile + - gemfiles/modular/style_local.gemfile + - gemfiles/modular/templating.gemfile + - gemfiles/modular/templating_local.gemfile + - gemfiles/modular/webrick/r4/v1.9.gemfile + - gemfiles/modular/webrick/vHEAD.gemfile + - gemfiles/modular/x_std_libs.gemfile + - gemfiles/modular/x_std_libs/r2.3/libs.gemfile + - gemfiles/modular/x_std_libs/r2.4/libs.gemfile + - gemfiles/modular/x_std_libs/r2.6/libs.gemfile + - gemfiles/modular/x_std_libs/r2/libs.gemfile + - gemfiles/modular/x_std_libs/r3.1/libs.gemfile + - gemfiles/modular/x_std_libs/r3/libs.gemfile + - gemfiles/modular/x_std_libs/r4/libs.gemfile + - gemfiles/modular/x_std_libs/vHEAD.gemfile - source: lib/gem/version.rb target: lib/markdown/merge/version.rb - source: sig/gem.rbs diff --git a/gems/markdown-merge/Gemfile b/gems/markdown-merge/Gemfile index 87b20c8ce..8c5ec5563 100644 --- a/gems/markdown-merge/Gemfile +++ b/gems/markdown-merge/Gemfile @@ -6,7 +6,7 @@ # kettle-jem will then preserve content between those markers across template runs. # kettle-jem:unfreeze -source 'https://gem.coop' +source "https://gem.coop" git_source(:codeberg) { |repo_name| "https://codeberg.org/#{repo_name}" } git_source(:gitlab) { |repo_name| "https://gitlab.com/#{repo_name}" } @@ -19,18 +19,62 @@ git_source(:gitlab) { |repo_name| "https://gitlab.com/#{repo_name}" } gemspec # Local workspace dependency wiring for *_local.gemfile overrides -nomono_requirements = ['~> 1.0', '>= 1.0.8'] -gem 'nomono', *nomono_requirements, require: false # ruby >= 2.2 +nomono_requirements = ["~> 1.0", ">= 1.0.8"] +gem "nomono", *nomono_requirements, require: false # ruby >= 2.2 # Direct sibling dependencies (env-switched via STRUCTUREDMERGE_DEV) direct_sibling_gems = %w[ ast-merge tree_haver ] -direct_sibling_dev = ENV.fetch('STRUCTUREDMERGE_DEV', '') +direct_sibling_dev = ENV.fetch("STRUCTUREDMERGE_DEV", "") direct_sibling_local = !direct_sibling_dev.empty? && !%w[false 0 no off].include?(direct_sibling_dev.downcase) -direct_sibling_templating = ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? +direct_sibling_templating = ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? + +if direct_sibling_gems.any? && + (direct_sibling_local || + ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero?) + direct_sibling_dev_was_set = ENV.key?("STRUCTUREDMERGE_DEV") + direct_sibling_dev_original = ENV.fetch("STRUCTUREDMERGE_DEV", nil) + begin + nomono_activation_requirements = nomono_requirements + nomono_lockfile = File.expand_path("Gemfile.lock", __dir__) + if File.file?(nomono_lockfile) + nomono_locked_spec = Bundler::LockfileParser + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == "nomono" } + nomono_locked = nomono_locked_spec && + Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) + if nomono_locked + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] + end + end + Kernel.send(:gem, "nomono", *nomono_activation_requirements) + require "nomono/bundler" + if direct_sibling_templating && !direct_sibling_local + ENV["STRUCTUREDMERGE_DEV"] = File.expand_path("..", __dir__) + end + + eval_nomono_gems( + gems: direct_sibling_gems, + prefix: "STRUCTUREDMERGE", + path_env: "STRUCTUREDMERGE_DEV", + root: ["src", "my", "structuredmerge"] + ) + rescue LoadError + warn "Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies." + ensure + if direct_sibling_templating && !direct_sibling_local + if direct_sibling_dev_was_set + ENV["STRUCTUREDMERGE_DEV"] = direct_sibling_dev_original + else + ENV.delete("STRUCTUREDMERGE_DEV") + end + end + end +end if direct_sibling_gems.any? && (direct_sibling_local || @@ -73,28 +117,28 @@ if direct_sibling_gems.any? && end # Use released TSLP with the Ruby ABI platform-gem fix. -gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' +gem "tree_sitter_language_pack", "~> 1.13", ">= 1.13.3" # Templating (env-switched: STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local paths) -eval_gemfile 'gemfiles/modular/templating.gemfile' if ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? +eval_gemfile "gemfiles/modular/templating.gemfile" if ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? # Debugging -eval_gemfile 'gemfiles/modular/debug.gemfile' +eval_gemfile "gemfiles/modular/debug.gemfile" # Code Coverage (env-switched: KETTLE_DEV_DEV=true for local paths) -eval_gemfile 'gemfiles/modular/coverage.gemfile' +eval_gemfile "gemfiles/modular/coverage.gemfile" # Linting -eval_gemfile 'gemfiles/modular/style.gemfile' +eval_gemfile "gemfiles/modular/style.gemfile" # Documentation -eval_gemfile 'gemfiles/modular/documentation.gemfile' +eval_gemfile "gemfiles/modular/documentation.gemfile" # Optional -eval_gemfile 'gemfiles/modular/optional.gemfile' +eval_gemfile "gemfiles/modular/optional.gemfile" ### Std Lib Extracted Gems -eval_gemfile 'gemfiles/modular/x_std_libs.gemfile' +eval_gemfile "gemfiles/modular/x_std_libs.gemfile" # See unlocked_deps appraisal for more details on irb inclusion -gem 'irb', '~> 1.17' # ruby >= 2.7 +gem "irb", "~> 1.17" # ruby >= 2.7 diff --git a/gems/markdown-merge/Gemfile.lock b/gems/markdown-merge/Gemfile.lock index d5c75a907..4beb142d5 100644 --- a/gems/markdown-merge/Gemfile.lock +++ b/gems/markdown-merge/Gemfile.lock @@ -6,6 +6,282 @@ PATH tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly + specs: + ast-crispr-markdown-markly (7.1.0) + ast-crispr (= 7.1.0) + markly-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism + specs: + ast-crispr-ruby-prism (7.1.0) + ast-crispr (= 7.1.0) + prism-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr + specs: + ast-crispr (7.1.0) + ast-merge (= 7.1.0) + service_actor (~> 3.9) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git + specs: + ast-merge-git (7.1.0) + ast-merge (= 7.1.0) + json-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge + specs: + ast-merge (7.1.0) + benchmark + token-resolver (~> 2.0, >= 2.0.4) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template + specs: + ast-template (7.1.0) + ast-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge + specs: + bash-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge + specs: + binary-merge (7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge + specs: + citrus-toml-merge (7.1.0) + toml-merge (= 7.1.0) + toml-rb (~> 4.1) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge + specs: + commonmarker-merge (7.1.0) + commonmarker (~> 2.2) + markdown-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge + specs: + dotenv-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge + specs: + go-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge + specs: + json-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem + specs: + kettle-jem (7.1.0) + addressable (>= 2.8, < 3) + ast-crispr-markdown-markly (= 7.1.0) + ast-crispr-ruby-prism (= 7.1.0) + ast-merge (= 7.1.0) + bash-merge (= 7.1.0) + citrus-toml-merge (= 7.1.0) + commonmarker-merge (= 7.1.0) + dotenv-merge (= 7.1.0) + json-merge (= 7.1.0) + kettle-dev (~> 2.3, >= 2.3.5) + kettle-rb (~> 0.1, >= 0.1.4) + kramdown-merge (= 7.1.0) + markdown-merge (= 7.1.0) + markly-merge (= 7.1.0) + prism-merge (= 7.1.0) + psych-merge (= 7.1.0) + rbs (>= 3.10) + rbs-merge (= 7.1.0) + ruby-merge (= 7.1.0) + token-resolver (~> 2.0, >= 2.0.4) + toml-merge (= 7.1.0) + toml-rb (~> 4.2) + tree_haver (= 7.1.0) + yaml-merge (= 7.1.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge + specs: + kramdown-merge (7.1.0) + kramdown (~> 2.5) + markdown-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge + specs: + markly-merge (7.1.0) + markdown-merge (= 7.1.0) + markly (~> 0.9) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge + specs: + parslet-toml-merge (7.1.0) + toml (~> 0.3) + toml-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge + specs: + plain-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge + specs: + prism-merge (7.1.0) + prism (~> 1.6) + ruby-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge + specs: + psych-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + yaml-merge (= 7.1.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge + specs: + rbs-merge (7.1.0) + ast-merge (= 7.1.0) + rbs (>= 3.10) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge + specs: + ruby-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge + specs: + rust-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb + specs: + smorg-rb (7.1.0) + ast-merge (= 7.1.0) + ast-merge-git (= 7.1.0) + go-merge (= 7.1.0) + json-merge (= 7.1.0) + kettle-jem (= 7.1.0) + markly-merge (= 7.1.0) + plain-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge + specs: + toml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver + specs: + tree_haver (7.1.0) + citrus (~> 3.0) + parslet (~> 2.0) + tree_sitter_language_pack (>= 1.13.2, < 2.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge + specs: + typescript-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge + specs: + yaml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge + specs: + zip-merge (7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /var/home/pboling/src/my/kettle-dev/kettle-drift + specs: + kettle-drift (1.0.6) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /var/home/pboling/src/my/kettle-dev/kettle-soup-cover + specs: + kettle-soup-cover (3.0.4) + kettle-wash (~> 0.1, >= 0.1.0) + simplecov (>= 1.0) + simplecov-cobertura (>= 4.0) + simplecov-console (~> 0.9, >= 0.9.5) + simplecov-rcov (~> 0.3, >= 0.3.7) + simplecov_lcov_formatter (~> 0.9, >= 0.9.0) + GEM remote: https://gem.coop/ specs: @@ -16,20 +292,24 @@ GEM bundler (>= 1.17.3) rake (>= 10) thor (>= 0.14) + appraisal2-rubocop (1.0.0) + appraisal2 (>= 3.1.4) + rubocop (>= 1.0) + version_gem (~> 1.1, >= 1.1.14) ast (2.4.3) - ast-merge (7.1.0) - benchmark - token-resolver (~> 2.0, >= 2.0.4) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) backports (3.25.3) benchmark (0.5.0) bigdecimal (4.1.2) bundler-audit (0.9.3) bundler (>= 1.2.0) thor (~> 1.0) + cgi (0.5.2) citrus (3.0.2) cmdparse (3.0.7) + commonmarker (2.9.0-aarch64-linux) + commonmarker (2.9.0-aarch64-linux-musl) + commonmarker (2.9.0-arm64-darwin) + commonmarker (2.9.0-x86_64-linux) concurrent-ruby (1.3.8) date (3.5.1) debug (1.11.1) @@ -38,7 +318,6 @@ GEM delegate (0.6.1) diff-lcs (1.6.2) diffy (3.4.4) - docile (1.4.1) dry-configurable (1.4.0) dry-core (~> 1.0) zeitwerk (~> 2.6) @@ -69,7 +348,7 @@ GEM dry-logic (~> 1.4) zeitwerk (~> 2.6) emoji_regex (15.0.0) - erb (6.0.5) + erb (6.0.6) gem_bench (2.0.5) bundler (>= 1.14) version_gem (~> 1.1, >= 1.1.4) @@ -94,15 +373,6 @@ GEM kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) kettle-rb (0.1.4) - kettle-soup-cover (1.1.3) - simplecov (~> 0.22) - simplecov-cobertura (~> 3.0) - simplecov-console (~> 0.9, >= 0.9.3) - simplecov-html (~> 0.13, >= 0.13.1) - simplecov-lcov (~> 0.8) - simplecov-rcov (~> 0.3, >= 0.3.7) - simplecov_json_formatter (~> 0.1, >= 0.1.4) - version_gem (~> 1.1, >= 1.1.9) kettle-test (2.0.11) appraisal2 (~> 3.0, >= 3.0.6) backports (~> 3.0) @@ -114,6 +384,8 @@ GEM silent_stream (~> 1.0, >= 1.0.12) timecop-rspec (~> 1.0, >= 1.0.3) turbo_tests2 (~> 3.1, >= 3.1.12) + kettle-wash (0.1.1) + version_gem (~> 1.1, >= 1.1.14) kramdown (2.5.2) rexml (>= 3.4.4) kramdown-parser-gfm (1.1.0) @@ -121,6 +393,7 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) + markly (0.16.0) mutex_m (0.3.0) nokogiri (1.19.4-aarch64-linux-gnu) racc (~> 1.4) @@ -128,13 +401,11 @@ GEM racc (~> 1.4) nokogiri (1.19.4-arm64-darwin) racc (~> 1.4) - nokogiri (1.19.4-x86_64-darwin) - racc (~> 1.4) nokogiri (1.19.4-x86_64-linux-gnu) racc (~> 1.4) nokogiri (1.19.4-x86_64-linux-musl) racc (~> 1.4) - nomono (1.0.8) + nomono (1.0.9) openssl (4.0.2) ostruct (0.6.3) parallel (1.28.0) @@ -210,6 +481,14 @@ GEM rubocop-ast (1.50.0) parser (>= 3.3.7.2) prism (~> 1.7) + rubocop-capybara (2.23.0) + lint_roller (~> 1.1) + rubocop (~> 1.81) + rubocop-env (0.1.0) + rubocop + rubocop-factory_bot (2.28.0) + lint_roller (~> 1.1) + rubocop (~> 1.72, >= 1.72.1) rubocop-gradual (0.4.0) benchmark diff-lcs (>= 1.2.0, < 2.0) @@ -217,13 +496,26 @@ GEM parallel (~> 1.10) rainbow (>= 2.2.2, < 4.0) rubocop (~> 1.0) - rubocop-lts (24.1.0) - rubocop-ruby3_2 (>= 3.0.0, < 4) - standard-rubocop-lts (>= 2.0.2, < 3) - version_gem (>= 1.1.2, < 3) + rubocop-lts (24.2.2) + rubocop-ruby3_2 (~> 3.0, >= 3.0.1) + standard-rubocop-lts (~> 2.0, >= 2.0.3) + version_gem (~> 1.1, >= 1.1.13) + rubocop-lts-rspec (1.0.5) + rubocop (~> 1.84, >= 1.84.2) + rubocop-env (~> 0.1, >= 0.1.0) + rubocop-factory_bot (~> 2.28, >= 2.28.0) + rubocop-rspec (~> 3.9, >= 3.9.0) + rubocop-rspec-extra (~> 0.3, >= 0.3.0) + standard (~> 1.54, >= 1.54.0) + standard-rspec (~> 0.5, >= 0.5.0) + version_gem (~> 1.1, >= 1.1.13) rubocop-md (2.0.4) lint_roller (~> 1.1) rubocop (>= 1.72.1) + rubocop-minitest (0.40.0) + lint_roller (~> 1.1) + rubocop (>= 1.75.0, < 2.0) + rubocop-ast (>= 1.38.0, < 2.0) rubocop-on-rbs (2.0.0) lint_roller (~> 1.1) rbs (~> 4.0) @@ -243,6 +535,13 @@ GEM lint_roller (~> 1.1) regexp_parser (>= 2.0) rubocop (~> 1.86, >= 1.86.2) + rubocop-rspec-extra (0.3.0) + lint_roller (~> 1.1) + rubocop (>= 1.72.1, < 2.0) + rubocop-rspec_rails (2.32.0) + lint_roller (~> 1.1) + rubocop (~> 1.72, >= 1.72.1) + rubocop-rspec (~> 3.5) rubocop-ruby3_2 (3.0.7) rubocop-gradual (~> 0.3, >= 0.3.6) rubocop-md (~> 2.0, >= 2.0.4) @@ -257,25 +556,23 @@ GEM ruby-progressbar (1.13.0) ruby_engine (2.0.3) ruby_version (1.0.3) + service_actor (3.9.4) + zeitwerk (>= 1.0) silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) - simplecov (0.22.0) - docile (~> 1.1) - simplecov-html (~> 0.11) - simplecov_json_formatter (~> 0.1) - simplecov-cobertura (3.2.0) + simplecov (1.0.2) + simplecov-cobertura (4.0.0) rexml - simplecov (~> 0.19) + simplecov (~> 1.0) simplecov-console (0.9.5) ansi simplecov terminal-table - simplecov-html (0.13.2) - simplecov-lcov (0.9.0) simplecov-rcov (0.3.7) simplecov (>= 0.4.1) - simplecov_json_formatter (0.1.4) + simplecov_lcov_formatter (0.9.0) + simplecov (>= 0.18) sorbet-runtime (0.6.13347) standard (1.56.0) language_server-protocol (~> 3.17.0.2) @@ -289,6 +586,12 @@ GEM standard-performance (1.9.0) lint_roller (~> 1.1) rubocop-performance (~> 1.26.0) + standard-rspec (0.5.0) + lint_roller (>= 1.0) + rubocop-capybara (~> 2.23) + rubocop-factory_bot (~> 2.27) + rubocop-rspec (~> 3.9) + rubocop-rspec_rails (~> 2.31) standard-rubocop-lts (2.0.10) standard (~> 1.54, >= 1.54.0) standard-custom (~> 1.0, >= 1.0.2) @@ -309,17 +612,15 @@ GEM token-resolver (2.0.4) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.13) - tree_haver (7.1.0) - citrus (~> 3.0) - parslet (~> 2.0) - tree_sitter_language_pack (>= 1.13.2, < 2.0) - version_gem (~> 1.1, >= 1.1.9) + toml (0.3.0) + parslet (>= 1.8.0, < 3.0.0) + toml-rb (4.2.0) + citrus (~> 3.0, > 3.0) + racc (~> 1.7) tree_sitter_language_pack (1.13.3-aarch64-linux) sorbet-runtime (~> 0.5) tree_sitter_language_pack (1.13.3-arm64-darwin) sorbet-runtime (~> 0.5) - tree_sitter_language_pack (1.13.3-x86_64-darwin) - sorbet-runtime (~> 0.5) tree_sitter_language_pack (1.13.3-x86_64-linux) sorbet-runtime (~> 0.5) tsort (0.2.0) @@ -331,6 +632,7 @@ GEM unicode-emoji (~> 4.1) unicode-emoji (4.2.0) version_gem (1.1.14) + webrick (1.9.2) yaml-converter (0.2.3) hexapdf (>= 1.8, < 2) kramdown (>= 2.4, < 3) @@ -361,70 +663,120 @@ PLATFORMS aarch64-linux-gnu aarch64-linux-musl arm64-darwin - x86_64-darwin + x86_64-linux x86_64-linux-gnu x86_64-linux-musl DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) + appraisal2-rubocop (~> 1.0, >= 1.0.0) + ast-crispr! + ast-crispr-markdown-markly! + ast-crispr-ruby-prism! + ast-merge! + ast-merge-git! + ast-template! + bash-merge! benchmark (~> 0.5, >= 0.5.0) + binary-merge! bundler-audit (~> 0.9.3) + cgi (~> 0.5) + citrus-toml-merge! + commonmarker-merge! debug (>= 1.1) - erb (~> 6.0, >= 6.0.4) + dotenv-merge! + erb (~> 6.0, >= 6.0.6) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.0) + go-merge! irb (~> 1.17) + json-merge! kettle-dev (~> 2.0, >= 2.2.25) - kettle-soup-cover (~> 1.0, >= 1.1.3) + kettle-drift! + kettle-jem! + kettle-soup-cover! kettle-test (~> 2.0, >= 2.0.9) - kramdown (~> 2.5, >= 2.5.1) + kramdown (~> 2.5, >= 2.5.2) + kramdown-merge! kramdown-parser-gfm (~> 1.1) markdown-merge! + markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) + parslet-toml-merge! + plain-merge! + prism-merge! + psych-merge! rake (~> 13.0) rbs (>= 3.0) + rbs-merge! rdoc (~> 6.11) - reek (~> 6.5) + reek (~> 6.5, >= 6.5.0) require_bench (~> 1.0, >= 1.0.4) - rubocop-lts (~> 24.1.0) - rubocop-on-rbs (~> 2.0) + rubocop-gradual (~> 0.4, >= 0.4.0) + rubocop-lts (~> 24.2, >= 24.2.1) + rubocop-lts-rspec (~> 1.0, >= 1.0.5) + rubocop-minitest (~> 0.40, >= 0.40.0) + rubocop-on-rbs (~> 2.0, >= 2.0.0) rubocop-packaging (~> 0.6, >= 0.6.0) - rubocop-rspec (~> 3.6) - rubocop-ruby3_2 (~> 3.0.0) + rubocop-ruby3_2 (~> 3.0, >= 3.0.6) + ruby-merge! ruby-progressbar (~> 1.13) - standard (>= 1.50) + rust-merge! + smorg-rb! + standard (~> 1.56, >= 1.56.0) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) + toml-merge! + tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) - yaml-converter (~> 0.1) - yard (~> 0.9, >= 0.9.44) - yard-fence (~> 0.9, >= 0.9.1) + typescript-merge! + webrick (~> 1.9) + yaml-converter (~> 0.2, >= 0.2.3) + yaml-merge! + yard (~> 0.9, >= 0.9.45) + yard-fence (~> 0.9, >= 0.9.6) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) - yard-timekeeper (~> 0.1) - yard-yaml (~> 0.1, >= 0.1.2) + yard-timekeeper (~> 0.2, >= 0.2.4) + yard-yaml (~> 0.2, >= 0.2.3) + zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af ansi (1.6.0) sha256=ac9ea0c0ea8d32fb4e271348e609963ac78882f34b73836c2a02b3622e666658 appraisal2 (3.2.0) sha256=ccd0b767ac4060cd7af6d16747459b6990f49c39c7b4fb1f7d1146b1e97c492f + appraisal2-rubocop (1.0.0) sha256=b71410fbb014befda5340605a605b7f6f3f012739baf0acc5b4351b592c3258d ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 + ast-crispr (7.1.0) + ast-crispr-markdown-markly (7.1.0) + ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) + ast-merge-git (7.1.0) + ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 + bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd + binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 + cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 + citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 + commonmarker (2.9.0-aarch64-linux) sha256=e2b4aadb9a2cfa4e206582641ce3a49465549ac1ed4c289fdd63b78d8f24579c + commonmarker (2.9.0-aarch64-linux-musl) sha256=1cf4d2821f2a7e64945f1ed7c4eeced586fdb27ea7fe7337788802cf8f57cfca + commonmarker (2.9.0-arm64-darwin) sha256=1748dbfa4f5813b0d2a14bb4bbfa65a4ec293aa1c825016d60029ee0e132b046 + commonmarker (2.9.0-x86_64-linux) sha256=8cfe92970eef585a19ddf6613224b91cab64d6029834661bda801f877c9c7f43 + commonmarker-merge (7.1.0) concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 - docile (1.4.1) sha256=96159be799bfa73cdb721b840e9802126e4e03dfc26863db73647204c727f21e + dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -433,47 +785,59 @@ CHECKSUMS dry-schema (1.16.0) sha256=cd3aaeabc0f1af66ec82a29096d4c4fb92a0a58b9dae29a22b1bbceb78985727 dry-types (1.9.1) sha256=baebeecdb9f8395d6c9d227b62011279440943e3ef2468fe8ccc1ba11467f178 emoji_regex (15.0.0) sha256=a508b2c0bee561169564e0aec96085020c900520d335e5533fd8e78e59493829 - erb (6.0.5) sha256=858e63488cb796c9daba8b6e9ff4b3879c395022049be9a66a8e00980e612eac + erb (6.0.6) sha256=a9b24986700f5bf127c4f297c5403c3ca41b83b0a316c0cd09a096b56e644ae5 gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f + go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 + json-merge (7.1.0) kettle-dev (2.3.7) sha256=eb370113cd030d03cbe2d33b31c99858951017e5ad21a17e9ed89dc3770028ee + kettle-drift (1.0.6) + kettle-jem (7.1.0) kettle-rb (0.1.4) sha256=9cef7ce4f7021666b7222292f29051e51eaf042e8a5db11f3f4dd72f74243fc1 - kettle-soup-cover (1.1.3) sha256=a373827da22a7131d093afd32945e5b7d7a10a01ebfdded8fd2cb8230d69c8ad + kettle-soup-cover (3.0.4) kettle-test (2.0.11) sha256=c710c90f7ab79d51f9452f0c09f5f90657e7a893f63583855c164d0b1b107ab2 + kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa + kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 markdown-merge (7.1.0) + markly (0.16.0) sha256=6f70d79e385b1efc9e171f74c81628826259039fe6c778e03c3924c71dac5511 + markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-aarch64-linux-gnu) sha256=1269fb644a6de405057a53dd5c762b1209b43ca7424f839454d3dbc677c31a8f nokogiri (1.19.4-aarch64-linux-musl) sha256=35c65b9ce72b3bb03207bdbe7067915019dc18c1b9b59139684bd6690fdd01af nokogiri (1.19.4-arm64-darwin) sha256=a46db9853286e6597b36ebc6953817d15acf3a299583eb3f89fdc6f91dd63527 - nokogiri (1.19.4-x86_64-darwin) sha256=7fd17057d3e1f00e9954a74b3cd76595d3d4a5ef233b7ed9599047c204f70551 nokogiri (1.19.4-x86_64-linux-gnu) sha256=379fae440b28915e3f19d752ce2dcf8465ed2b2fbefd2a7ca0dd497bc981a06a nokogiri (1.19.4-x86_64-linux-musl) sha256=17dfb7c1fa194ae02fbf7c51a7afc8d278045ab3fdacfd86f91d02d7b274470b - nomono (1.0.8) sha256=bf4b9b426cbf216ab17b70db474f691b8ae1f1e29de8db4b0ecd405e6e7e1c80 + nomono (1.0.9) openssl (4.0.2) sha256=1037ad2868ae58df9ad917891c0c0f9815a1172f6846d4bcdd508e4c2ee747c2 ostruct (0.6.3) sha256=95a2ed4a4bd1d190784e666b47b2d3f078e4a9efda2fccf18f84ddc6538ed912 parallel (1.28.0) sha256=33e6de1484baf2524792d178b0913fc8eb94c628d6cfe45599ad4458c638c970 parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 + parslet-toml-merge (7.1.0) + plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 + prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 + psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 + rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb @@ -491,31 +855,41 @@ CHECKSUMS rspec_junit_formatter (0.6.0) sha256=40dde674e6ae4e6cc0ff560da25497677e34fefd2338cc467a8972f602b62b15 rubocop (1.88.2) sha256=8def251c90cd955feb4daa3edc0ab56893250c4ce90ef81e6c80c03f9a939bbf rubocop-ast (1.50.0) sha256=b9ca88300da0803ee222ad20cdb30494c0a784eed06fdc35d254b06d662788db + rubocop-capybara (2.23.0) sha256=f9ea1ba3a7561ee8e88cf76fc378ce517ce5327155f305ee7b5c2500e5aee357 + rubocop-env (0.1.0) sha256=5ab9a259e71822bf514c8e900a9b68cc2f74ccc87d5493efcd03213f3068e718 + rubocop-factory_bot (2.28.0) sha256=4b17fc02124444173317e131759d195b0d762844a71a29fe8139c1105d92f0cb rubocop-gradual (0.4.0) sha256=9c7e584e6fef6c2539266a193a4572c970c22f99046fd6b0305bdde6228f96ad - rubocop-lts (24.1.0) sha256=9dcad4db2da2fe2f1f77f98c917d70e7c43eded703da14cd201d4be52a9272aa + rubocop-lts (24.2.2) sha256=be6c745e1bb61daebd6af3cc3227c60f95be9f642a080773cad7df14c5f9f174 + rubocop-lts-rspec (1.0.5) sha256=439552fd27440802cc499889e013bffa28aadc41adae5d4dfff3d984a2a809b4 rubocop-md (2.0.4) sha256=0d076b6b5e99dea2ddc928c4bd702497decb9a8400da7808091e02ebcafcfb93 + rubocop-minitest (0.40.0) sha256=353c698199115f12151144cf0b5a96f69bb9d77b660cf6536df2c4250c672a9d rubocop-on-rbs (2.0.0) sha256=ce74d1b3d5daead19f4b611623656c185821dfc9aed9c7079bb1e5d7d7c464be rubocop-packaging (0.6.0) sha256=fb92bd0fb48e6f8cdb1648d2249b0cd51c2497dcc87340132d22f01edbf558a7 rubocop-performance (1.26.1) sha256=cd19b936ff196df85829d264b522fd4f98b6c89ad271fa52744a8c11b8f71834 rubocop-rake (0.7.1) sha256=3797f2b6810c3e9df7376c26d5f44f3475eda59eb1adc38e6f62ecf027cbae4d rubocop-rspec (3.10.2) sha256=0b3e2ecc592cd10ecbf0095bb58d1e357905276e069643523cc19eb7495f65e2 + rubocop-rspec-extra (0.3.0) sha256=ee4b6484d0332a0d23c4a465eeb607e41888eb3d4ed479f850b9f5212514f787 + rubocop-rspec_rails (2.32.0) sha256=4a0d641c72f6ebb957534f539d9d0a62c47abd8ce0d0aeee1ef4701e892a9100 rubocop-ruby3_2 (3.0.7) sha256=f53dd6d286fb05186214fc6ec116783e7f837030918e8931c05de773e98f8466 rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 + ruby-merge (7.1.0) ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 + rust-merge (7.1.0) + service_actor (3.9.4) sha256=e63b523630b9a7e62959b2a90113b08d2565b5de9c148557b281ef847c9539ce silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 - simplecov (0.22.0) sha256=fe2622c7834ff23b98066bb0a854284b2729a569ac659f82621fc22ef36213a5 - simplecov-cobertura (3.2.0) sha256=70d702658677fcb20e5aceb6915ccf8bc62ff2ccd38b62b3ad5c9db5c0888740 + simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 + simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 - simplecov-html (0.13.2) sha256=bd0b8e54e7c2d7685927e8d6286466359b6f16b18cb0df47b508e8d73c777246 - simplecov-lcov (0.9.0) sha256=7a77a31e200a595ed4b0249493056efd0c920601f53d2ef135ca34ee796346cd simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc - simplecov_json_formatter (0.1.4) sha256=529418fbe8de1713ac2b2d612aa3daa56d316975d307244399fa4838c601b428 + simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed + smorg-rb (7.1.0) sorbet-runtime (0.6.13347) sha256=54e7221d9f4b63f58aec79f3043752a9ba7810347c6ae0d903531591cc2d5f01 standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b standard-performance (1.9.0) sha256=49483d31be448292951d80e5e67cdcb576c2502103c7b40aec6f1b6e9c88e3f2 + standard-rspec (0.5.0) sha256=64d396524a65af47f5331b423d8cdd313e0267401647bb7892489ca89dad2973 standard-rubocop-lts (2.0.10) sha256=89708a505b7d8b24d2ac399a7520fcb9e764abc2ecb4289b631b5fe0e3b76617 stone_checksums (1.0.6) sha256=c775f830513d6c6ab26e31d1a5fbecd4c4e39002663d4d9f8fa96e97990b5298 stringio (3.2.0) sha256=c37cb2e58b4ffbd33fe5cd948c05934af997b36e0b6ca6fdf43afa234cf222e1 @@ -525,17 +899,22 @@ CHECKSUMS timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.4) sha256=33b926958f504525bba3ed511ab66fbcbf8ef30390815e931436b30f27ffcad0 + toml (0.3.0) sha256=0a91d0f76a9036e84e44f95693b12f58d358c1df3ac8e3b5271f2056ecc6e4b9 + toml-merge (7.1.0) + toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-aarch64-linux) sha256=55ffc7c87868cb45658338363d9eba51b4a8b0259aa88e4de368d2bd1d52fea4 tree_sitter_language_pack (1.13.3-arm64-darwin) sha256=bc2498db605f212a1dbd2465ed3f65190d7da786f6ed5d30fcf958121aeb4a5c - tree_sitter_language_pack (1.13.3-x86_64-darwin) sha256=061f7da6e1cc4ba936fad436ee0653d7dfdfa4aa879cf555403e3aa373d43966 tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 + typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 + webrick (1.9.2) sha256=beb4a15fc474defed24a3bda4ffd88a490d517c9e4e6118c3edce59e45864131 yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 + yaml-merge (7.1.0) yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd @@ -543,6 +922,7 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 + zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH diff --git a/gems/markdown-merge/README.md b/gems/markdown-merge/README.md index fda6a3071..c7d130ac5 100644 --- a/gems/markdown-merge/README.md +++ b/gems/markdown-merge/README.md @@ -84,7 +84,7 @@ Signatures computed by default for common Markdown block elements: | Tokens to Remember | [![Gem name][⛳️name-img]][⛳️gem-name] [![Gem namespace][⛳️namespace-img]][⛳️gem-namespace] | |-------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | Works with MRI Ruby 4 | [![Ruby current Compat][💎ruby-c-i]][🚎11-c-wf]| -| Support & Community | [![Join Me on Daily.dev's RubyFriends][✉️ruby-friends-img]][✉️ruby-friends] [![Live Chat on Discord][✉️discord-invite-img-ftb]][✉️discord-invite] [![Get help from me on Upwork][👨🏼‍🏫expsup-upwork-img]][👨🏼‍🏫expsup-upwork] [![Get help from me on Codementor][👨🏼‍🏫expsup-codementor-img]][👨🏼‍🏫expsup-codementor] | +| Support & Community | [![Join Me on Daily.dev's RubyFriends][✉️ruby-friends-img]][✉️ruby-friends] [![Get help from RubyForum][✉️ruby-forum-img]][✉️ruby-forum] [![Live Chat on Discord][✉️discord-invite-img-ftb]][✉️discord-invite] [![Get help from me on Upwork][👨🏼‍🏫expsup-upwork-img]][👨🏼‍🏫expsup-upwork] [![Get help from me on Codementor][👨🏼‍🏫expsup-codementor-img]][👨🏼‍🏫expsup-codementor] | | Source | [![Source on GitLab.com][📜src-gl-img]][📜src-gl] [![Source on CodeBerg.org][📜src-cb-img]][📜src-cb] [![Source on Github.com][📜src-gh-img]][📜src-gh] [![The best SHA: dQw4w9WgXcQ!][🧮kloc-img]][🧮kloc] | | Documentation | [![Current release on RubyDoc.info][📜docs-cr-rd-img]][🚎yard-current] [![YARD on Galtzo.com][📜docs-head-rd-img]][🚎yard-head] [![Maintainer Blog][🚂maint-blog-img]][🚂maint-blog] [![GitLab Wiki][📜gl-wiki-img]][📜gl-wiki] [![GitHub Wiki][📜gh-wiki-img]][📜gh-wiki] | | Compliance | [![License: AGPL-3.0-only OR PolyForm-Small-Business-1.0.0][📄license-img]][📄license] [![Apache license compatibility: Category X][📄license-compat-img]][📄license-compat] [![📄ilo-declaration-img]][📄ilo-declaration] [![Security Policy][🔐security-img]][🔐security] [![Contributor Covenant 2.1][🪇conduct-img]][🪇conduct] [![SemVer 2.0.0][📌semver-img]][📌semver] | @@ -567,6 +567,8 @@ If none of the available licenses suit your use case, please [contact us](mailto [✉️discord-invite-img-ftb]: https://img.shields.io/discord/1373797679469170758?style=for-the-badge&logo=discord [✉️ruby-friends-img]: https://img.shields.io/badge/daily.dev-%F0%9F%92%8E_Ruby_Friends-0A0A0A?style=for-the-badge&logo=dailydotdev&logoColor=white [✉️ruby-friends]: https://app.daily.dev/squads/rubyfriends +[✉️ruby-forum-img]: https://img.shields.io/badge/RubyForum-Help-CC342D?style=for-the-badge&logo=ruby&logoColor=white +[✉️ruby-forum]: https://www.rubyforum.org/c/help/8 [✇bundle-group-pattern]: https://gist.github.com/pboling/4564780 [⛳️gem-namespace]: https://github.com/structuredmerge/structuredmerge-ruby/tree/main/gems/markdown-merge [⛳️namespace-img]: https://img.shields.io/badge/namespace-Markdown::Merge-3C2D2D.svg?style=square&logo=ruby&logoColor=white diff --git a/gems/markdown-merge/Rakefile b/gems/markdown-merge/Rakefile index 335c98aab..2be51dd98 100644 --- a/gems/markdown-merge/Rakefile +++ b/gems/markdown-merge/Rakefile @@ -130,23 +130,23 @@ end ### DUPLICATE DRIFT TASKS begin - require 'kettle/drift' + require "kettle/drift" Kettle::Drift.install_tasks rescue LoadError - desc('(stub) kettle:drift:check is unavailable') - task('kettle:drift:check') do + desc("(stub) kettle:drift:check is unavailable") + task("kettle:drift:check") do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc('(stub) kettle:drift:update is unavailable') - task('kettle:drift:update') do + desc("(stub) kettle:drift:update is unavailable") + task("kettle:drift:update") do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc('(stub) kettle:drift:force_update is unavailable') - task('kettle:drift:force_update') do + desc("(stub) kettle:drift:force_update is unavailable") + task("kettle:drift:force_update") do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc('(stub) kettle:drift is unavailable') - task('kettle:drift' => 'kettle:drift:update') + desc("(stub) kettle:drift is unavailable") + task("kettle:drift" => "kettle:drift:update") end ### TEMPLATING TASKS diff --git a/gems/markdown-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile b/gems/markdown-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile index b8392fab0..dec650815 100644 --- a/gems/markdown-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile +++ b/gems/markdown-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.1 -gem 'benchmark', '~> 0.5', '>= 0.5.0' # Removed from Std Lib in Ruby 4.0 +gem "benchmark", "~> 0.5", ">= 0.5.0" # Removed from Std Lib in Ruby 4.0 diff --git a/gems/markdown-merge/gemfiles/modular/benchmark/vHEAD.gemfile b/gems/markdown-merge/gemfiles/modular/benchmark/vHEAD.gemfile index af214aafa..e1eb20c5e 100644 --- a/gems/markdown-merge/gemfiles/modular/benchmark/vHEAD.gemfile +++ b/gems/markdown-merge/gemfiles/modular/benchmark/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.1 -gem 'benchmark', github: 'ruby/benchmark', branch: 'master' +gem "benchmark", github: "ruby/benchmark", branch: "master" diff --git a/gems/markdown-merge/gemfiles/modular/cgi/r4/v0.5.gemfile b/gems/markdown-merge/gemfiles/modular/cgi/r4/v0.5.gemfile new file mode 100644 index 000000000..19ed967c3 --- /dev/null +++ b/gems/markdown-merge/gemfiles/modular/cgi/r4/v0.5.gemfile @@ -0,0 +1 @@ +gem "cgi", "~> 0.5" diff --git a/gems/markdown-merge/gemfiles/modular/cgi/vHEAD.gemfile b/gems/markdown-merge/gemfiles/modular/cgi/vHEAD.gemfile new file mode 100644 index 000000000..ef8b816ce --- /dev/null +++ b/gems/markdown-merge/gemfiles/modular/cgi/vHEAD.gemfile @@ -0,0 +1 @@ +gem "cgi", ">= 0.5" diff --git a/gems/markdown-merge/gemfiles/modular/coverage.gemfile b/gems/markdown-merge/gemfiles/modular/coverage.gemfile index f96d50954..52d737872 100644 --- a/gems/markdown-merge/gemfiles/modular/coverage.gemfile +++ b/gems/markdown-merge/gemfiles/modular/coverage.gemfile @@ -4,11 +4,11 @@ # Set KETTLE_DEV_DEV=true for local development with path-based dependencies. # When false (default / CI), remote released gems are used. -if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? +if ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false").zero? # Coverage (remote/released) platform :mri do - gem 'kettle-soup-cover', '~> 1.0', '>= 1.1.3', require: false + gem "kettle-soup-cover", "~> 3.0", ">= 3.0.3", require: false end else - eval_gemfile 'coverage_local.gemfile' + eval_gemfile "coverage_local.gemfile" end diff --git a/gems/markdown-merge/gemfiles/modular/coverage_local.gemfile b/gems/markdown-merge/gemfiles/modular/coverage_local.gemfile index 77080d72c..bac3538d7 100644 --- a/gems/markdown-merge/gemfiles/modular/coverage_local.gemfile +++ b/gems/markdown-merge/gemfiles/modular/coverage_local.gemfile @@ -3,31 +3,53 @@ # Local path overrides for development. # Loaded by the associated non-local gemfile when KETTLE_DEV_DEV != "false". -require 'nomono/bundler' unless defined?(Nomono) +# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. +# Bundler records that dependency during Gemfile evaluation, but it does not +# activate that exact version before the immediate `require "nomono/bundler"`. +# If multiple compatible nomono versions are installed, RubyGems may activate +# the newest installed version while Gemfile.lock pins an older compatible one; +# Bundler then aborts with "already activated nomono X, but your Gemfile +# requires nomono Y". Prefer the locked compatible version when present, then +# activate it explicitly before requiring the Bundler DSL extension used below. +nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] +nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) +if File.file?(nomono_lockfile) + nomono_locked_spec = Bundler::LockfileParser + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == "nomono" } + nomono_locked = nomono_locked_spec && + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + if nomono_locked + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] + end +end +Kernel.send(:gem, "nomono", *nomono_activation_requirements) +require "nomono/bundler" local_gems = %w[kettle-dev kettle-test kettle-soup-cover kettle-drift] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) local_gems_to_eval = local_gems - %w[markdown-merge] - declared_gems -# export KETTLE_DEV_DEV=/path/to/kettle-rb +# export KETTLE_DEV_DEV=/path/to/my platform :mri do eval_nomono_gems( gems: local_gems_to_eval, - prefix: 'KETTLE_DEV', - path_env: 'KETTLE_DEV_DEV', - vendored_gems_env: 'VENDORED_GEMS', - vendor_gem_dir_env: 'VENDOR_GEM_DIR', - debug_env: 'KETTLE_DEV_DEBUG' + prefix: "KETTLE_DEV", + path_env: "KETTLE_DEV_DEV", + vendored_gems_env: "VENDORED_GEMS", + vendor_gem_dir_env: "VENDOR_GEM_DIR", + debug_env: "KETTLE_DEV_DEBUG" ) - if ENV.fetch('GALTZO_FLOSS_DEV', 'false').casecmp('false') != 0 + if ENV.fetch("GALTZO_FLOSS_DEV", "false").casecmp("false") != 0 eval_nomono_gems( gems: %w[turbo_tests2], - prefix: 'GALTZO_FLOSS', - path_env: 'GALTZO_FLOSS_DEV', - vendored_gems_env: 'GALTZO_FLOSS_VENDORED_GEMS', - vendor_gem_dir_env: 'GALTZO_FLOSS_VENDOR_GEM_DIR', - debug_env: 'GALTZO_FLOSS_DEBUG' + prefix: "GALTZO_FLOSS", + path_env: "GALTZO_FLOSS_DEV", + vendored_gems_env: "GALTZO_FLOSS_VENDORED_GEMS", + vendor_gem_dir_env: "GALTZO_FLOSS_VENDOR_GEM_DIR", + debug_env: "GALTZO_FLOSS_DEBUG" ) end end diff --git a/gems/markdown-merge/gemfiles/modular/debug.gemfile b/gems/markdown-merge/gemfiles/modular/debug.gemfile index eed8d4d1e..4e15b1a3a 100644 --- a/gems/markdown-merge/gemfiles/modular/debug.gemfile +++ b/gems/markdown-merge/gemfiles/modular/debug.gemfile @@ -13,10 +13,10 @@ platform :mri do # Debugging - Ensure ENV["DEBUG"] == "true" to use debuggers within spec suite # Use binding.break, binding.b, or debugger in code - gem 'debug', '>= 1.1' # ruby >= 2.7 + gem "debug", ">= 1.1" # ruby >= 2.7 # Dev Console - Binding.pry - Irb replacement # gem "pry", "~> 0.14" # ruby >= 2.0 end -gem 'gem_bench', '~> 2.0', '>= 2.0.5' +gem "gem_bench", "~> 2.0", ">= 2.0.5" diff --git a/gems/markdown-merge/gemfiles/modular/documentation.gemfile b/gems/markdown-merge/gemfiles/modular/documentation.gemfile index dff5cc108..d8215416e 100644 --- a/gems/markdown-merge/gemfiles/modular/documentation.gemfile +++ b/gems/markdown-merge/gemfiles/modular/documentation.gemfile @@ -7,20 +7,20 @@ # # Documentation -gem 'kramdown', '~> 2.5', '>= 2.5.1', require: false # Ruby >= 2.5 -gem 'kramdown-parser-gfm', '~> 1.1', require: false # Ruby >= 2.3 -gem 'yaml-converter', '~> 0.1', require: false # Ruby >= 3.2 -gem 'yard', '~> 0.9', '>= 0.9.44', require: false -gem 'yard-junk', '~> 0.1', '>= 0.1.0', require: false # Ruby >= 3.1 -gem 'yard-relative_markdown_links', '~> 0.6', require: false +gem "kramdown", "~> 2.5", ">= 2.5.2", require: false # Ruby >= 2.5 +gem "kramdown-parser-gfm", "~> 1.1", require: false # Ruby >= 2.3 +gem "yaml-converter", "~> 0.2", ">= 0.2.3", require: false # Ruby >= 3.2 +gem "yard", "~> 0.9", ">= 0.9.45", require: false +gem "yard-junk", "~> 0.1", ">= 0.1.0", require: false # Ruby >= 3.1 +gem "yard-relative_markdown_links", "~> 0.6", require: false -if ENV.fetch('GALTZO_FLOSS_DEV', 'false').casecmp('false').zero? - gem 'yard-fence', '~> 0.9', '>= 0.9.1', require: false # Ruby >= 3.2 - gem 'yard-timekeeper', '~> 0.1', require: false - gem 'yard-yaml', '~> 0.1', '>= 0.1.2', require: false +if ENV.fetch("GALTZO_FLOSS_DEV", "false").casecmp("false").zero? + gem "yard-fence", "~> 0.9", ">= 0.9.6", require: false # Ruby >= 3.2 + gem "yard-timekeeper", "~> 0.2", ">= 0.2.4", require: false + gem "yard-yaml", "~> 0.2", ">= 0.2.3", require: false else - eval_gemfile 'documentation_local.gemfile' + eval_gemfile "documentation_local.gemfile" end # Std Lib extractions -gem 'rdoc', '~> 6.11', require: false unless ENV.fetch('KJ_FRAMEWORK_MATRIX_GEM', '') == 'rdoc' +gem "rdoc", "~> 6.11", require: false unless ENV.fetch("KJ_FRAMEWORK_MATRIX_GEM", "") == "rdoc" diff --git a/gems/markdown-merge/gemfiles/modular/documentation_local.gemfile b/gems/markdown-merge/gemfiles/modular/documentation_local.gemfile index 4d4c2bd95..61e166aa0 100644 --- a/gems/markdown-merge/gemfiles/modular/documentation_local.gemfile +++ b/gems/markdown-merge/gemfiles/modular/documentation_local.gemfile @@ -3,16 +3,40 @@ # Local path overrides for development. # Loaded by the associated non-local gemfile when GALTZO_FLOSS_DEV != "false". -require 'nomono/bundler' unless defined?(Nomono) +# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. +# Bundler records that dependency during Gemfile evaluation, but it does not +# activate that exact version before the immediate `require "nomono/bundler"`. +# If multiple compatible nomono versions are installed, RubyGems may activate +# the newest installed version while Gemfile.lock pins an older compatible one; +# Bundler then aborts with "already activated nomono X, but your Gemfile +# requires nomono Y". Prefer the locked compatible version when present, then +# activate it explicitly before requiring the Bundler DSL extension used below. +nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] +nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) +if File.file?(nomono_lockfile) + nomono_locked_spec = Bundler::LockfileParser + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == "nomono" } + nomono_locked = nomono_locked_spec && + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + if nomono_locked + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] + end +end +Kernel.send(:gem, "nomono", *nomono_activation_requirements) +require "nomono/bundler" local_gems = %w[yard-fence yard-timekeeper yard-yaml] +declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) +local_gems_to_eval = local_gems - %w[markdown-merge] - declared_gems # export GALTZO_FLOSS_DEV=/path/to/galtzo-floss eval_nomono_gems( - gems: local_gems, - prefix: 'GALTZO_FLOSS', - path_env: 'GALTZO_FLOSS_DEV', - vendored_gems_env: 'GALTZO_FLOSS_VENDORED_GEMS', - vendor_gem_dir_env: 'GALTZO_FLOSS_VENDOR_GEM_DIR', - debug_env: 'GALTZO_FLOSS_DEBUG' + gems: local_gems_to_eval, + prefix: "GALTZO_FLOSS", + path_env: "GALTZO_FLOSS_DEV", + vendored_gems_env: "GALTZO_FLOSS_VENDORED_GEMS", + vendor_gem_dir_env: "GALTZO_FLOSS_VENDOR_GEM_DIR", + debug_env: "GALTZO_FLOSS_DEBUG" ) diff --git a/gems/markdown-merge/gemfiles/modular/erb/r2/v3.0.gemfile b/gems/markdown-merge/gemfiles/modular/erb/r2/v3.0.gemfile index 7c83a239b..c03bd8d85 100644 --- a/gems/markdown-merge/gemfiles/modular/erb/r2/v3.0.gemfile +++ b/gems/markdown-merge/gemfiles/modular/erb/r2/v3.0.gemfile @@ -1 +1 @@ -gem 'erb', '~> 3.0' # ruby >= 2.7.0 +gem "erb", "~> 3.0" # ruby >= 2.7.0 diff --git a/gems/markdown-merge/gemfiles/modular/erb/r3/v5.0.gemfile b/gems/markdown-merge/gemfiles/modular/erb/r3/v5.0.gemfile index 0e3bf1b97..1bd029cc1 100644 --- a/gems/markdown-merge/gemfiles/modular/erb/r3/v5.0.gemfile +++ b/gems/markdown-merge/gemfiles/modular/erb/r3/v5.0.gemfile @@ -1 +1 @@ -gem 'erb', '~> 6.0', '>= 6.0.4' # ruby >= 3.2.0 +gem "erb", "~> 6.0", ">= 6.0.6" # ruby >= 3.2.0 diff --git a/gems/markdown-merge/gemfiles/modular/erb/r4/v5.0.gemfile b/gems/markdown-merge/gemfiles/modular/erb/r4/v5.0.gemfile index 0e3bf1b97..1bd029cc1 100644 --- a/gems/markdown-merge/gemfiles/modular/erb/r4/v5.0.gemfile +++ b/gems/markdown-merge/gemfiles/modular/erb/r4/v5.0.gemfile @@ -1 +1 @@ -gem 'erb', '~> 6.0', '>= 6.0.4' # ruby >= 3.2.0 +gem "erb", "~> 6.0", ">= 6.0.6" # ruby >= 3.2.0 diff --git a/gems/markdown-merge/gemfiles/modular/erb/vHEAD.gemfile b/gems/markdown-merge/gemfiles/modular/erb/vHEAD.gemfile index ea0101185..48fee4218 100644 --- a/gems/markdown-merge/gemfiles/modular/erb/vHEAD.gemfile +++ b/gems/markdown-merge/gemfiles/modular/erb/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 3.2 -gem 'erb', github: 'ruby/erb', branch: 'master' +gem "erb", github: "ruby/erb", branch: "master" diff --git a/gems/markdown-merge/gemfiles/modular/json/truffleruby_22_3.gemfile b/gems/markdown-merge/gemfiles/modular/json/truffleruby_22_3.gemfile new file mode 100644 index 000000000..b0e69ab11 --- /dev/null +++ b/gems/markdown-merge/gemfiles/modular/json/truffleruby_22_3.gemfile @@ -0,0 +1,6 @@ +# frozen_string_literal: true + +if RUBY_ENGINE == "truffleruby" && RUBY_ENGINE_VERSION.start_with?("22.3") + # TruffleRuby 22.3 ships the json default gem from its emulated MRI Ruby. + gem "json", "= 2.5.1" +end diff --git a/gems/markdown-merge/gemfiles/modular/json/truffleruby_23_0.gemfile b/gems/markdown-merge/gemfiles/modular/json/truffleruby_23_0.gemfile new file mode 100644 index 000000000..7b2660a2b --- /dev/null +++ b/gems/markdown-merge/gemfiles/modular/json/truffleruby_23_0.gemfile @@ -0,0 +1,6 @@ +# frozen_string_literal: true + +if RUBY_ENGINE == "truffleruby" && RUBY_ENGINE_VERSION.start_with?("23.0") + # TruffleRuby 23.0 ships the json default gem from its emulated MRI Ruby. + gem "json", "= 2.6.1" +end diff --git a/gems/markdown-merge/gemfiles/modular/json/truffleruby_23_1.gemfile b/gems/markdown-merge/gemfiles/modular/json/truffleruby_23_1.gemfile new file mode 100644 index 000000000..dfa21f2e4 --- /dev/null +++ b/gems/markdown-merge/gemfiles/modular/json/truffleruby_23_1.gemfile @@ -0,0 +1,6 @@ +# frozen_string_literal: true + +if RUBY_ENGINE == "truffleruby" && RUBY_ENGINE_VERSION.start_with?("23.1") + # TruffleRuby 23.1 ships the json default gem from its emulated MRI Ruby. + gem "json", "= 2.6.3" +end diff --git a/gems/markdown-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile b/gems/markdown-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile index e27f1bbae..42e9d9bd4 100644 --- a/gems/markdown-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile +++ b/gems/markdown-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 -gem 'mutex_m', '~> 0.2' +gem "mutex_m", "~> 0.2" diff --git a/gems/markdown-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile b/gems/markdown-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile index e27f1bbae..42e9d9bd4 100644 --- a/gems/markdown-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile +++ b/gems/markdown-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 -gem 'mutex_m', '~> 0.2' +gem "mutex_m", "~> 0.2" diff --git a/gems/markdown-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile b/gems/markdown-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile index e27f1bbae..42e9d9bd4 100644 --- a/gems/markdown-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile +++ b/gems/markdown-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 -gem 'mutex_m', '~> 0.2' +gem "mutex_m", "~> 0.2" diff --git a/gems/markdown-merge/gemfiles/modular/mutex_m/vHEAD.gemfile b/gems/markdown-merge/gemfiles/modular/mutex_m/vHEAD.gemfile index 9dac2f6cb..8af3b6fca 100644 --- a/gems/markdown-merge/gemfiles/modular/mutex_m/vHEAD.gemfile +++ b/gems/markdown-merge/gemfiles/modular/mutex_m/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 (dependency of omniauth) -gem 'mutex_m', github: 'ruby/mutex_m', branch: 'master' +gem "mutex_m", github: "ruby/mutex_m", branch: "master" diff --git a/gems/markdown-merge/gemfiles/modular/optional.gemfile b/gems/markdown-merge/gemfiles/modular/optional.gemfile index 630cd20cd..80bc45196 100644 --- a/gems/markdown-merge/gemfiles/modular/optional.gemfile +++ b/gems/markdown-merge/gemfiles/modular/optional.gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -# To retain during markdown-merge templating: +# To retain during kettle-jem templating: # kettle-jem:freeze # # ... your code # kettle-jem:unfreeze @@ -9,9 +9,8 @@ # Optional dependencies are not depended on directly, but may be used if present. # Required for curated binstubs generated by kettle-jem install -gem 'rbs', '>= 3.0', require: false # ruby >= 3.1 -gem 'stone_checksums', '~> 1.0', '>= 1.0.3', require: false # ruby >= 2.2 +gem "rbs", ">= 3.0", require: false # ruby >= 3.1 # Required for kettle-pre-release # URL parsing with Unicode support (falls back to URI if not available) -gem 'addressable', '>= 2.8', '< 3' # ruby >= 2.2 +gem "addressable", ">= 2.8", "< 3" # ruby >= 2.2 diff --git a/gems/markdown-merge/gemfiles/modular/rspec.gemfile b/gems/markdown-merge/gemfiles/modular/rspec.gemfile index 2af210a41..72fdf8b7f 100644 --- a/gems/markdown-merge/gemfiles/modular/rspec.gemfile +++ b/gems/markdown-merge/gemfiles/modular/rspec.gemfile @@ -1,4 +1,4 @@ -gem 'rspec_junit_formatter', - github: 'pboling/rspec_junit_formatter', - branch: 'main', - ref: '9e6bcaaedd49477b62878ed568dc4ada5cc7cb5e' +gem "rspec_junit_formatter", + github: "pboling/rspec_junit_formatter", + branch: "main", + ref: "9e6bcaaedd49477b62878ed568dc4ada5cc7cb5e" diff --git a/gems/markdown-merge/gemfiles/modular/runtime_heads.gemfile b/gems/markdown-merge/gemfiles/modular/runtime_heads.gemfile index d9c70acc8..02f134c7f 100644 --- a/gems/markdown-merge/gemfiles/modular/runtime_heads.gemfile +++ b/gems/markdown-merge/gemfiles/modular/runtime_heads.gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -# To retain during markdown-merge templating: +# To retain during kettle-jem templating: # kettle-jem:freeze # # ... your code # kettle-jem:unfreeze @@ -8,7 +8,4 @@ # Test against HEAD of runtime dependencies so we can proactively file bugs -# Ruby >= 2.2 -gem 'version_gem', github: 'ruby-oauth/version_gem', branch: 'main' - -eval_gemfile('x_std_libs/vHEAD.gemfile') +eval_gemfile("x_std_libs/vHEAD.gemfile") diff --git a/gems/markdown-merge/gemfiles/modular/stringio/r2/v3.0.gemfile b/gems/markdown-merge/gemfiles/modular/stringio/r2/v3.0.gemfile index 3616f4e3a..e85bb18ee 100644 --- a/gems/markdown-merge/gemfiles/modular/stringio/r2/v3.0.gemfile +++ b/gems/markdown-merge/gemfiles/modular/stringio/r2/v3.0.gemfile @@ -2,4 +2,4 @@ # NOT SEMVER # Version 3.0.7 dropped support for Ruby <= 2.7 # Version 3.0.0 dropped support for Ruby <= 2.4 -gem 'stringio', '>= 3.0' +gem "stringio", ">= 3.0" diff --git a/gems/markdown-merge/gemfiles/modular/stringio/r3/v3.0.gemfile b/gems/markdown-merge/gemfiles/modular/stringio/r3/v3.0.gemfile index 3616f4e3a..e85bb18ee 100644 --- a/gems/markdown-merge/gemfiles/modular/stringio/r3/v3.0.gemfile +++ b/gems/markdown-merge/gemfiles/modular/stringio/r3/v3.0.gemfile @@ -2,4 +2,4 @@ # NOT SEMVER # Version 3.0.7 dropped support for Ruby <= 2.7 # Version 3.0.0 dropped support for Ruby <= 2.4 -gem 'stringio', '>= 3.0' +gem "stringio", ">= 3.0" diff --git a/gems/markdown-merge/gemfiles/modular/stringio/r4/v3.0.gemfile b/gems/markdown-merge/gemfiles/modular/stringio/r4/v3.0.gemfile index 3616f4e3a..e85bb18ee 100644 --- a/gems/markdown-merge/gemfiles/modular/stringio/r4/v3.0.gemfile +++ b/gems/markdown-merge/gemfiles/modular/stringio/r4/v3.0.gemfile @@ -2,4 +2,4 @@ # NOT SEMVER # Version 3.0.7 dropped support for Ruby <= 2.7 # Version 3.0.0 dropped support for Ruby <= 2.4 -gem 'stringio', '>= 3.0' +gem "stringio", ">= 3.0" diff --git a/gems/markdown-merge/gemfiles/modular/stringio/vHEAD.gemfile b/gems/markdown-merge/gemfiles/modular/stringio/vHEAD.gemfile index 78f5f5d8a..5f2a74126 100644 --- a/gems/markdown-merge/gemfiles/modular/stringio/vHEAD.gemfile +++ b/gems/markdown-merge/gemfiles/modular/stringio/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 (dependency of omniauth) -gem 'stringio', github: 'ruby/stringio', branch: 'master' +gem "stringio", github: "ruby/stringio", branch: "master" diff --git a/gems/markdown-merge/gemfiles/modular/style.gemfile b/gems/markdown-merge/gemfiles/modular/style.gemfile index 1721b9ee3..35de4dcd6 100644 --- a/gems/markdown-merge/gemfiles/modular/style.gemfile +++ b/gems/markdown-merge/gemfiles/modular/style.gemfile @@ -1,28 +1,31 @@ # frozen_string_literal: true -# To retain during markdown-merge templating: +# To retain during kettle-jem templating: # kettle-jem:freeze # # ... your code # kettle-jem:unfreeze # -# We run rubocop on the latest version of Ruby, -# but in support of the oldest supported version of Ruby +# Style tasks run on the latest Ruby; RuboCop-LTS selects the compatibility +# rules for the configured Ruby floor independently from task dependency floors. -gem 'reek', '~> 6.5' +gem "reek", "~> 6.5", ">= 6.5.0" platform :mri do - gem 'rubocop-on-rbs', '~> 2.0' # ruby >= 3.2.0 + gem "appraisal2-rubocop", "~> 1.0", ">= 1.0.0", require: false + gem "rubocop-gradual", "~> 0.4", ">= 0.4.0" + gem "rubocop-minitest", "~> 0.40", ">= 0.40.0" + gem "rubocop-on-rbs", "~> 2.0", ">= 2.0.0" # ruby >= 3.2.0 # gem "rubocop", "~> 1.73", ">= 1.73.2" # constrained by standard - gem 'rubocop-packaging', '~> 0.6', '>= 0.6.0' - gem 'standard', '>= 1.50' + gem "rubocop-packaging", "~> 0.6", ">= 0.6.0" + gem "standard", "~> 1.56", ">= 1.56.0" - if ENV.fetch('RUBOCOP_LTS_LOCAL', 'false').casecmp('false').zero? - gem 'rubocop-lts', '~> 24.1.0' - # "rubocop-lts-rspec" can't add here until other gems are updated. - gem 'rubocop-rspec', '~> 3.6' - gem 'rubocop-ruby3_2', '~> 3.0.0' + if ENV.fetch("RUBOCOP_LTS_LOCAL", "false").casecmp("false").zero? + declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) + gem "rubocop-lts", "~> 24.2", ">= 24.2.1" unless declared_gems.include?("rubocop-lts") + gem "rubocop-lts-rspec", "~> 1.0", ">= 1.0.5" unless declared_gems.include?("rubocop-lts-rspec") + gem "rubocop-ruby3_2", "~> 3.0", ">= 3.0.6" unless declared_gems.include?("rubocop-ruby3_2") else - eval_gemfile('style_local.gemfile') + eval_gemfile("style_local.gemfile") end end diff --git a/gems/markdown-merge/gemfiles/modular/style_local.gemfile b/gems/markdown-merge/gemfiles/modular/style_local.gemfile index ce75bbe21..9c53346ee 100644 --- a/gems/markdown-merge/gemfiles/modular/style_local.gemfile +++ b/gems/markdown-merge/gemfiles/modular/style_local.gemfile @@ -1,24 +1,48 @@ # frozen_string_literal: true -# We run rubocop on the latest version of Ruby, -# but in support of the oldest supported version of Ruby +# Style tasks run on the latest Ruby; RuboCop-LTS selects the compatibility +# rules for the configured Ruby floor independently from task dependency floors. # Local path overrides for development. # Loaded by the associated non-local gemfile when RUBOCOP_LTS_LOCAL != "false". -require 'nomono/bundler' unless defined?(Nomono) +# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. +# Bundler records that dependency during Gemfile evaluation, but it does not +# activate that exact version before the immediate `require "nomono/bundler"`. +# If multiple compatible nomono versions are installed, RubyGems may activate +# the newest installed version while Gemfile.lock pins an older compatible one; +# Bundler then aborts with "already activated nomono X, but your Gemfile +# requires nomono Y". Prefer the locked compatible version when present, then +# activate it explicitly before requiring the Bundler DSL extension used below. +nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] +nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) +if File.file?(nomono_lockfile) + nomono_locked_spec = Bundler::LockfileParser + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == "nomono" } + nomono_locked = nomono_locked_spec && + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + if nomono_locked + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] + end +end +Kernel.send(:gem, "nomono", *nomono_activation_requirements) +require "nomono/bundler" local_gems = %w[rubocop-lts rubocop-lts-rspec rubocop-ruby3_2 standard-rubocop-lts] +declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) +local_gems_to_eval = local_gems - %w[markdown-merge] - declared_gems # export VENDORED_GEMS=rubocop-lts,rubocop-lts-rspec,rubocop-ruby3_2,standard-rubocop-lts platform :mri do eval_nomono_gems( - gems: local_gems, - prefix: 'RUBOCOP_LTS', - path_env: 'RUBOCOP_LTS_LOCAL', - vendored_gems_env: 'VENDORED_GEMS', - vendor_gem_dir_env: 'VENDOR_GEM_DIR', - debug_env: 'RUBOCOP_LTS_DEBUG', - root: %w[src rubocop-lts] + gems: local_gems_to_eval, + prefix: "RUBOCOP_LTS", + path_env: "RUBOCOP_LTS_LOCAL", + vendored_gems_env: "VENDORED_GEMS", + vendor_gem_dir_env: "VENDOR_GEM_DIR", + debug_env: "RUBOCOP_LTS_DEBUG", + root: ["src", "rubocop-lts"] ) end diff --git a/gems/markdown-merge/gemfiles/modular/templating.gemfile b/gems/markdown-merge/gemfiles/modular/templating.gemfile index 2ddc9433f..47138ffbb 100644 --- a/gems/markdown-merge/gemfiles/modular/templating.gemfile +++ b/gems/markdown-merge/gemfiles/modular/templating.gemfile @@ -1,24 +1,24 @@ # frozen_string_literal: true -structuredmerge_remote = ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false').zero? -kettle_remote = ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? +structuredmerge_remote = ENV.fetch("STRUCTUREDMERGE_DEV", "false").casecmp("false").zero? +kettle_remote = ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false").zero? if structuredmerge_remote # Parser dependencies for released installs. - gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' + gem "tree_sitter_language_pack", "~> 1.13", ">= 1.13.3" # Merge recipes for released installs. - gem 'kettle-jem', '>= 7.0' + gem "kettle-jem", ">= 7.0" end if kettle_remote # Template/plugin checks for released installs. - gem 'kettle-drift', '~> 1.0', '>= 1.0.5', require: false + gem "kettle-drift", "~> 1.0", ">= 1.0.6", require: false end # Set STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local development with path-based dependencies. # When false (default / CI), released kettle-jem brings merge gems and parser dependencies. # Local path overrides bring the same dependencies from sibling gemspecs. # -# Set KETTLE_DEV_DEV=/path/to/kettle-rb for local development with Kettle plugin gems. +# Set KETTLE_DEV_DEV=/path/to/my for local development with Kettle plugin gems. # When false (default / CI), released Kettle plugin gems are used. -eval_gemfile 'templating_local.gemfile' unless structuredmerge_remote && kettle_remote +eval_gemfile "templating_local.gemfile" unless structuredmerge_remote && kettle_remote diff --git a/gems/markdown-merge/gemfiles/modular/templating_local.gemfile b/gems/markdown-merge/gemfiles/modular/templating_local.gemfile index 4494a8bb5..ddaba77fd 100644 --- a/gems/markdown-merge/gemfiles/modular/templating_local.gemfile +++ b/gems/markdown-merge/gemfiles/modular/templating_local.gemfile @@ -4,7 +4,29 @@ # Loaded by the associated non-local gemfile when STRUCTUREDMERGE_DEV or KETTLE_DEV_DEV # is not "false". -require 'nomono/bundler' unless defined?(Nomono) +# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. +# Bundler records that dependency during Gemfile evaluation, but it does not +# activate that exact version before the immediate `require "nomono/bundler"`. +# If multiple compatible nomono versions are installed, RubyGems may activate +# the newest installed version while Gemfile.lock pins an older compatible one; +# Bundler then aborts with "already activated nomono X, but your Gemfile +# requires nomono Y". Prefer the locked compatible version when present, then +# activate it explicitly before requiring the Bundler DSL extension used below. +nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] +nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) +if File.file?(nomono_lockfile) + nomono_locked_spec = Bundler::LockfileParser + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == "nomono" } + nomono_locked = nomono_locked_spec && + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + if nomono_locked + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] + end +end +Kernel.send(:gem, "nomono", *nomono_activation_requirements) +require "nomono/bundler" structuredmerge_local_gems = %w[ tree_haver @@ -47,25 +69,25 @@ structuredmerge_local_gems_to_eval = structuredmerge_local_gems - %w[markdown-me kettle_dev_local_gems_to_eval = kettle_dev_local_gems - %w[markdown-merge] - declared_gems platform :mri do - if ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false') != 0 + if ENV.fetch("STRUCTUREDMERGE_DEV", "false").casecmp("false") != 0 eval_nomono_gems( gems: structuredmerge_local_gems_to_eval, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - vendored_gems_env: 'VENDORED_GEMS', - vendor_gem_dir_env: 'VENDOR_GEM_DIR', - debug_env: 'STRUCTUREDMERGE_DEBUG' + prefix: "STRUCTUREDMERGE", + path_env: "STRUCTUREDMERGE_DEV", + vendored_gems_env: "VENDORED_GEMS", + vendor_gem_dir_env: "VENDOR_GEM_DIR", + debug_env: "STRUCTUREDMERGE_DEBUG" ) end - if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false') != 0 + if ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false") != 0 eval_nomono_gems( gems: kettle_dev_local_gems_to_eval, - prefix: 'KETTLE_DEV', - path_env: 'KETTLE_DEV_DEV', - vendored_gems_env: 'VENDORED_GEMS', - vendor_gem_dir_env: 'VENDOR_GEM_DIR', - debug_env: 'KETTLE_DEV_DEBUG' + prefix: "KETTLE_DEV", + path_env: "KETTLE_DEV_DEV", + vendored_gems_env: "VENDORED_GEMS", + vendor_gem_dir_env: "VENDOR_GEM_DIR", + debug_env: "KETTLE_DEV_DEBUG" ) end end diff --git a/gems/markdown-merge/gemfiles/modular/webrick/r4/v1.9.gemfile b/gems/markdown-merge/gemfiles/modular/webrick/r4/v1.9.gemfile new file mode 100644 index 000000000..eaab4a473 --- /dev/null +++ b/gems/markdown-merge/gemfiles/modular/webrick/r4/v1.9.gemfile @@ -0,0 +1 @@ +gem "webrick", "~> 1.9" diff --git a/gems/markdown-merge/gemfiles/modular/webrick/vHEAD.gemfile b/gems/markdown-merge/gemfiles/modular/webrick/vHEAD.gemfile new file mode 100644 index 000000000..8a789b634 --- /dev/null +++ b/gems/markdown-merge/gemfiles/modular/webrick/vHEAD.gemfile @@ -0,0 +1 @@ +gem "webrick", ">= 1.9" diff --git a/gems/markdown-merge/gemfiles/modular/x_std_libs.gemfile b/gems/markdown-merge/gemfiles/modular/x_std_libs.gemfile index b1f43c097..77aad43f2 100644 --- a/gems/markdown-merge/gemfiles/modular/x_std_libs.gemfile +++ b/gems/markdown-merge/gemfiles/modular/x_std_libs.gemfile @@ -1,12 +1,12 @@ ### Std Lib Extracted Gems ruby_version = Gem::Version.new(RUBY_VERSION) -if ruby_version >= Gem::Version.new('4.0') - eval_gemfile 'x_std_libs/r4/libs.gemfile' -elsif ruby_version >= Gem::Version.new('3.2') - eval_gemfile 'x_std_libs/r3/libs.gemfile' -elsif ruby_version >= Gem::Version.new('3.1') - eval_gemfile 'x_std_libs/r3.1/libs.gemfile' +if ruby_version >= Gem::Version.new("4.0") + eval_gemfile "x_std_libs/r4/libs.gemfile" +elsif ruby_version >= Gem::Version.new("3.2") + eval_gemfile "x_std_libs/r3/libs.gemfile" +elsif ruby_version >= Gem::Version.new("3.1") + eval_gemfile "x_std_libs/r3.1/libs.gemfile" else - eval_gemfile 'x_std_libs/r2/libs.gemfile' + eval_gemfile "x_std_libs/r2/libs.gemfile" end diff --git a/gems/markdown-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile b/gems/markdown-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile index 16a5e3d70..441c4f03a 100644 --- a/gems/markdown-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile +++ b/gems/markdown-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile @@ -1,3 +1,3 @@ -eval_gemfile '../../erb/r2/v3.0.gemfile' -eval_gemfile '../../mutex_m/r2/v0.3.gemfile' -eval_gemfile '../../stringio/r2/v3.0.gemfile' +eval_gemfile "../../erb/r2/v3.0.gemfile" +eval_gemfile "../../mutex_m/r2/v0.3.gemfile" +eval_gemfile "../../stringio/r2/v3.0.gemfile" diff --git a/gems/markdown-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile b/gems/markdown-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile index 220ff95c1..c293a3ddd 100644 --- a/gems/markdown-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile +++ b/gems/markdown-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile @@ -1,3 +1,3 @@ -eval_gemfile '../../erb/r3/v5.0.gemfile' -eval_gemfile '../../mutex_m/r3/v0.3.gemfile' -eval_gemfile '../../stringio/r3/v3.0.gemfile' +eval_gemfile "../../erb/r3/v5.0.gemfile" +eval_gemfile "../../mutex_m/r3/v0.3.gemfile" +eval_gemfile "../../stringio/r3/v3.0.gemfile" diff --git a/gems/markdown-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile b/gems/markdown-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile index bd4e884df..eb5574247 100644 --- a/gems/markdown-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile +++ b/gems/markdown-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile @@ -1,4 +1,6 @@ -eval_gemfile '../../erb/r4/v5.0.gemfile' -eval_gemfile '../../mutex_m/r4/v0.3.gemfile' -eval_gemfile '../../stringio/r4/v3.0.gemfile' -eval_gemfile '../../benchmark/r4/v0.5.gemfile' +eval_gemfile "../../erb/r4/v5.0.gemfile" +eval_gemfile "../../mutex_m/r4/v0.3.gemfile" +eval_gemfile "../../stringio/r4/v3.0.gemfile" +eval_gemfile "../../benchmark/r4/v0.5.gemfile" +eval_gemfile "../../cgi/r4/v0.5.gemfile" +eval_gemfile "../../webrick/r4/v1.9.gemfile" diff --git a/gems/markdown-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile b/gems/markdown-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile index 91f383c11..d4d5b16c9 100644 --- a/gems/markdown-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile +++ b/gems/markdown-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile @@ -1,4 +1,6 @@ -eval_gemfile '../erb/vHEAD.gemfile' -eval_gemfile '../mutex_m/vHEAD.gemfile' -eval_gemfile '../stringio/vHEAD.gemfile' -eval_gemfile '../benchmark/vHEAD.gemfile' +eval_gemfile "../erb/vHEAD.gemfile" +eval_gemfile "../mutex_m/vHEAD.gemfile" +eval_gemfile "../stringio/vHEAD.gemfile" +eval_gemfile "../benchmark/vHEAD.gemfile" +eval_gemfile "../cgi/vHEAD.gemfile" +eval_gemfile "../webrick/vHEAD.gemfile" diff --git a/gems/markdown-merge/lib/markdown/merge/version.rb b/gems/markdown-merge/lib/markdown/merge/version.rb index c8ba076ae..fe631f91a 100644 --- a/gems/markdown-merge/lib/markdown/merge/version.rb +++ b/gems/markdown-merge/lib/markdown/merge/version.rb @@ -3,7 +3,7 @@ module Markdown module Merge module Version - VERSION = '7.1.0' + VERSION = "7.1.0" end VERSION = Version::VERSION # Traditional Constant Location end diff --git a/gems/prism-merge/.kettle-drift.lock b/gems/prism-merge/.kettle-drift.lock index 92caaa150..bf85fa76f 100644 --- a/gems/prism-merge/.kettle-drift.lock +++ b/gems/prism-merge/.kettle-drift.lock @@ -1,130 +1,10 @@ { - "(direct_sibling_local ||\nENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?)": [ - { - "file": "Gemfile", - "lines": [ - 79, - 119, - 159, - 199, - 239, - 279, - 319, - 359, - 399 - ] - } - ], - ".find { |spec| spec.name == 'nomono' }\nnomono_locked = nomono_locked_spec &&": [ - { - "file": "Gemfile", - "lines": [ - 90, - 130, - 170, - 210, - 250, - 290, - 330, - 370, - 410 - ] - } - ], - "ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?)\ndirect_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV')": [ - { - "file": "Gemfile", - "lines": [ - 80, - 120, - 160, - 200, - 240, - 280, - 320, - 360, - 400 - ] - } - ], - "Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version)\nnomono_activation_requirements = [\"= #{nomono_locked_spec.version}\"] if nomono_locked": [ - { - "file": "Gemfile", - "lines": [ - 92, - 132, - 172, - 212, - 252, - 292, - 332, - 372, - 412 - ] - } - ], - "Kernel.send(:gem, 'nomono', *nomono_activation_requirements)\nrequire 'nomono/bundler'": [ - { - "file": "Gemfile", - "lines": [ - 95, - 135, - 175, - 215, - 255, - 295, - 335, - 375, - 415 - ] - } - ], - "direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV')\ndirect_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil)": [ - { - "file": "Gemfile", - "lines": [ - 81, - 121, - 161, - 201, - 241, - 281, - 321, - 361, - 401 - ] - } - ], "eval_nomono_gems(\ngems: direct_sibling_gems,": [ { "file": "Gemfile", "lines": [ 59, - 99, - 139, - 179, - 219, - 259, - 299, - 339, - 379, - 419 - ] - } - ], - "gems: direct_sibling_gems,\nprefix: 'STRUCTUREDMERGE',": [ - { - "file": "Gemfile", - "lines": [ - 100, - 140, - 180, - 220, - 260, - 300, - 340, - 380, - 420 + 99 ] } ], @@ -133,31 +13,7 @@ "file": "Gemfile", "lines": [ 42, - 86, - 126, - 166, - 206, - 246, - 286, - 326, - 366, - 406 - ] - } - ], - "if direct_sibling_dev_was_set\nENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original": [ - { - "file": "Gemfile", - "lines": [ - 109, - 149, - 189, - 229, - 269, - 309, - 349, - 389, - 429 + 86 ] } ], @@ -166,15 +22,7 @@ "file": "Gemfile", "lines": [ 34, - 78, - 118, - 158, - 198, - 238, - 278, - 318, - 358, - 398 + 78 ] } ], @@ -183,31 +31,7 @@ "file": "Gemfile", "lines": [ 68, - 108, - 148, - 188, - 228, - 268, - 308, - 348, - 388, - 428 - ] - } - ], - "nomono_activation_requirements = nomono_requirements\nnomono_lockfile = File.expand_path('Gemfile.lock', __dir__)": [ - { - "file": "Gemfile", - "lines": [ - 84, - 124, - 164, - 204, - 244, - 284, - 324, - 364, - 404 + 108 ] } ], @@ -216,15 +40,7 @@ "file": "Gemfile", "lines": [ 47, - 91, - 131, - 171, - 211, - 251, - 291, - 331, - 371, - 411 + 91 ] } ], @@ -233,104 +49,7 @@ "file": "Gemfile", "lines": [ 43, - 87, - 127, - 167, - 207, - 247, - 287, - 327, - 367, - 407 - ] - } - ], - "nomono_lockfile = File.expand_path('Gemfile.lock', __dir__)\nif File.file?(nomono_lockfile)": [ - { - "file": "Gemfile", - "lines": [ - 85, - 125, - 165, - 205, - 245, - 285, - 325, - 365, - 405 - ] - } - ], - "path_env: 'STRUCTUREDMERGE_DEV',\nroot: %w[src my structuredmerge]": [ - { - "file": "Gemfile", - "lines": [ - 102, - 142, - 182, - 222, - 262, - 302, - 342, - 382, - 422 - ] - } - ], - "prefix: 'STRUCTUREDMERGE',\npath_env: 'STRUCTUREDMERGE_DEV',": [ - { - "file": "Gemfile", - "lines": [ - 101, - 141, - 181, - 221, - 261, - 301, - 341, - 381, - 421 - ] - } - ], - "require 'nomono/bundler'\nENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local": [ - { - "file": "Gemfile", - "lines": [ - 96, - 136, - 176, - 216, - 256, - 296, - 336, - 376, - 416 - ] - } - ], - "rescue LoadError\nwarn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.'": [ - { - "file": "Gemfile", - "lines": [ - 105, - 145, - 185, - 225, - 265, - 305, - 345, - 385, - 425 - ] - } - ], - "vendored_gems_env: 'VENDORED_GEMS',\nvendor_gem_dir_env: 'VENDOR_GEM_DIR',": [ - { - "file": "gemfiles/modular/templating_local.gemfile", - "lines": [ - 58, - 69 + 87 ] } ] diff --git a/gems/prism-merge/.rubocop_gradual.lock b/gems/prism-merge/.rubocop_gradual.lock deleted file mode 100644 index 2e07f1473..000000000 --- a/gems/prism-merge/.rubocop_gradual.lock +++ /dev/null @@ -1,693 +0,0 @@ -{ - ".simplecov:3138125134": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "Rakefile:22363789": [ - [18, 121, 17, "Layout/LineLength: Line is too long. [137/120]", 174264873], - [79, 3, 1023, "Metrics/BlockLength: Block has too many lines. [32/25]", 54868638], - [163, 121, 22, "Layout/LineLength: Line is too long. [142/120]", 1367093088], - [166, 121, 18, "Layout/LineLength: Line is too long. [138/120]", 3881946477] - ], - "gemfiles/modular/benchmark/r4/v0.5.gemfile:3644720371": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/benchmark/vHEAD.gemfile:2838879269": [ - [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/erb/r2/v3.0.gemfile:1688285565": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] - ], - "gemfiles/modular/erb/r3/v5.0.gemfile:2150258305": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] - ], - "gemfiles/modular/erb/r4/v5.0.gemfile:2150258305": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] - ], - "gemfiles/modular/erb/vHEAD.gemfile:981929959": [ - [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/mutex_m/r2/v0.3.gemfile:4055275004": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/mutex_m/r3/v0.3.gemfile:4055275004": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/mutex_m/r4/v0.3.gemfile:4055275004": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/mutex_m/vHEAD.gemfile:556854763": [ - [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/rspec.gemfile:2263543889": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] - ], - "gemfiles/modular/stringio/r2/v3.0.gemfile:821604304": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/stringio/r3/v3.0.gemfile:821604304": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/stringio/r4/v3.0.gemfile:821604304": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/stringio/vHEAD.gemfile:1045839691": [ - [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/x_std_libs.gemfile:2324400122": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/x_std_libs/r2/libs.gemfile:36276542": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] - ], - "gemfiles/modular/x_std_libs/r3/libs.gemfile:4030570297": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] - ], - "gemfiles/modular/x_std_libs/r4/libs.gemfile:909736663": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] - ], - "gemfiles/modular/x_std_libs/vHEAD.gemfile:907917303": [ - [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] - ], - "lib/prism-merge.rb:226590672": [ - [1, 1, 0, "Naming/FileName: The name of this source file (`prism-merge.rb`) should use snake_case.", 5381] - ], - "lib/prism/merge.rb:1325756945": [ - [12, 3, 12, "Style/Documentation: Missing top-level documentation comment for `module Prism::Merge`.", 2866359175], - [12, 3, 52397, "Metrics/ModuleLength: Module has too many lines. [1199/100]", 1955834049], - [13, 5, 11, "Style/ModuleFunction: Use `module_function` instead of `extend self`.", 1210897631], - [24, 5, 16, "Style/Documentation: Missing top-level documentation comment for `class Prism::Merge::ParseError`.", 362242086], - [120, 5, 1996, "Metrics/MethodLength: Method has too many lines. [42/10]", 709892915], - [165, 5, 1804, "Metrics/MethodLength: Method has too many lines. [37/10]", 3641862107], - [205, 5, 1012, "Metrics/MethodLength: Method has too many lines. [23/10]", 3112984532], - [243, 5, 695, "Metrics/MethodLength: Method has too many lines. [17/10]", 321495946], - [263, 5, 1801, "Metrics/MethodLength: Method has too many lines. [37/10]", 3355654893], - [264, 121, 5, "Layout/LineLength: Line is too long. [125/120]", 180584319], - [303, 5, 7357, "Metrics/AbcSize: Assignment Branch Condition size for `ruby_structured_edit_batch_report_projection` is too high. [<1, 31, 0> 31.02/17]", 2583247591], - [303, 5, 7357, "Metrics/MethodLength: Method has too many lines. [139/10]", 2583247591], - [304, 121, 5, "Layout/LineLength: Line is too long. [125/120]", 180584319], - [323, 121, 25, "Layout/LineLength: Line is too long. [145/120]", 949635646], - [361, 121, 42, "Layout/LineLength: Line is too long. [162/120]", 1330685294], - [445, 5, 932, "Metrics/AbcSize: Assignment Branch Condition size for `parse_ruby` is too high. [<3, 17, 7> 18.63/17]", 2894794051], - [445, 5, 932, "Metrics/MethodLength: Method has too many lines. [23/10]", 2894794051], - [473, 5, 491, "Metrics/MethodLength: Method has too many lines. [12/10]", 3211170428], - [488, 5, 3333, "Metrics/AbcSize: Assignment Branch Condition size for `parse_ruby_normalized` is too high. [<20, 68, 28> 76.21/17]", 3141190358], - [488, 5, 3333, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `parse_ruby_normalized` is too high. [23/7]", 3141190358], - [488, 5, 3333, "Metrics/MethodLength: Method has too many lines. [72/10]", 3141190358], - [488, 5, 3333, "Metrics/PerceivedComplexity: Perceived complexity for `parse_ruby_normalized` is too high. [23/8]", 3141190358], - [570, 5, 3671, "Metrics/AbcSize: Assignment Branch Condition size for `apply_edit_projection` is too high. [<14, 62, 19> 66.34/17]", 1859418783], - [570, 5, 3671, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `apply_edit_projection` is too high. [12/7]", 1859418783], - [570, 5, 3671, "Metrics/MethodLength: Method has too many lines. [66/10]", 1859418783], - [570, 5, 3671, "Metrics/PerceivedComplexity: Perceived complexity for `apply_edit_projection` is too high. [13/8]", 1859418783], - [616, 18, 176, "Style/StringConcatenation: Prefer string interpolation to string concatenation.", 3247522762], - [649, 5, 1505, "Metrics/MethodLength: Method has too many lines. [33/10]", 2499202345], - [649, 19, 292, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [10/5]", 676979469], - [710, 5, 583, "Metrics/MethodLength: Method has too many lines. [13/10]", 1484312517], - [727, 5, 551, "Metrics/AbcSize: Assignment Branch Condition size for `normalize_ruby_require_aliases` is too high. [<11, 15, 7> 19.87/17]", 2507514607], - [727, 5, 551, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `normalize_ruby_require_aliases` is too high. [8/7]", 2507514607], - [727, 5, 551, "Metrics/MethodLength: Method has too many lines. [17/10]", 2507514607], - [748, 5, 304, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `ruby_dsl_call_node` is too high. [8/7]", 2466841613], - [771, 5, 1305, "Metrics/AbcSize: Assignment Branch Condition size for `merge_ruby_with_reviewed_nested_outputs` is too high. [<7, 17, 5> 19.05/17]", 3657868136], - [771, 5, 1305, "Metrics/MethodLength: Method has too many lines. [27/10]", 3657868136], - [771, 48, 140, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 132256850], - [804, 5, 1015, "Metrics/MethodLength: Method has too many lines. [17/10]", 757789356], - [814, 121, 70, "Layout/LineLength: Line is too long. [190/120]", 1956194284], - [827, 5, 928, "Metrics/MethodLength: Method has too many lines. [16/10]", 1039420596], - [837, 121, 17, "Layout/LineLength: Line is too long. [137/120]", 3013228499], - [849, 5, 1003, "Metrics/MethodLength: Method has too many lines. [17/10]", 3313354796], - [859, 121, 62, "Layout/LineLength: Line is too long. [182/120]", 1636990749], - [872, 5, 936, "Metrics/MethodLength: Method has too many lines. [16/10]", 2825710110], - [882, 121, 17, "Layout/LineLength: Line is too long. [137/120]", 3013228499], - [906, 5, 662, "Metrics/MethodLength: Method has too many lines. [19/10]", 772959042], - [927, 7, 11, "Style/MultilineBlockChain: Avoid multi-line chains of blocks.", 848344986], - [930, 5, 849, "Metrics/AbcSize: Assignment Branch Condition size for `prism_ruby_discovered_surfaces` is too high. [<12, 16, 6> 20.88/17]", 2509812469], - [930, 5, 849, "Metrics/MethodLength: Method has too many lines. [23/10]", 2509812469], - [961, 5, 1195, "Metrics/AbcSize: Assignment Branch Condition size for `prism_ruby_surfaces_for_owner` is too high. [<6, 19, 3> 20.15/17]", 1713430182], - [961, 5, 1195, "Metrics/MethodLength: Method has too many lines. [20/10]", 1713430182], - [986, 5, 1216, "Metrics/AbcSize: Assignment Branch Condition size for `prism_ruby_example_surfaces` is too high. [<4, 20, 2> 20.49/17]", 2225356615], - [986, 5, 1216, "Metrics/MethodLength: Method has too many lines. [22/10]", 2225356615], - [1058, 5, 421, "Metrics/MethodLength: Method has too many lines. [14/10]", 26440736], - [1089, 5, 827, "Metrics/MethodLength: Method has too many lines. [18/10]", 4288402374], - [1130, 5, 876, "Metrics/MethodLength: Method has too many lines. [23/10]", 3423854231], - [1168, 5, 1155, "Metrics/AbcSize: Assignment Branch Condition size for `prism_comment_node` is too high. [<1, 22, 0> 22.02/17]", 4287909739], - [1168, 5, 1155, "Metrics/MethodLength: Method has too many lines. [28/10]", 4287909739], - [1199, 5, 888, "Metrics/MethodLength: Method has too many lines. [27/10]", 3798554661], - [1251, 5, 920, "Metrics/MethodLength: Method has too many lines. [23/10]", 917985568] - ], - "lib/prism/merge/begin_node_clause_body_merger.rb:1042804537": [ - [5, 5, 31, "Style/Documentation: Missing top-level documentation comment for `class Prism::Merge::BeginNodeClauseBodyMerger`.", 1242162299], - [19, 7, 1511, "Metrics/AbcSize: Assignment Branch Condition size for `merge` is too high. [<5, 37, 1> 37.35/17]", 3275719934], - [19, 7, 1511, "Metrics/MethodLength: Method has too many lines. [32/10]", 3275719934] - ], - "lib/prism/merge/begin_node_clause_body_support.rb:787370708": [ - [5, 5, 32, "Style/Documentation: Missing top-level documentation comment for `class Prism::Merge::BeginNodeClauseBodySupport`.", 3341069278], - [5, 5, 7504, "Metrics/ClassLength: Class has too many lines. [142/100]", 1403116805], - [8, 21, 100, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 4145084810], - [22, 7, 937, "Metrics/AbcSize: Assignment Branch Condition size for `clause_header_end_line` is too high. [<5, 29, 16> 33.5/17]", 2050282033], - [22, 7, 937, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `clause_header_end_line` is too high. [16/7]", 2050282033], - [22, 7, 937, "Metrics/MethodLength: Method has too many lines. [14/10]", 2050282033], - [22, 7, 937, "Metrics/PerceivedComplexity: Perceived complexity for `clause_header_end_line` is too high. [16/8]", 2050282033], - [35, 63, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], - [55, 9, 23, "Style/StringConcatenation: Prefer string interpolation to string concatenation.", 1178765246], - [58, 7, 419, "Metrics/MethodLength: Method has too many lines. [11/10]", 3825428834], - [81, 7, 2396, "Metrics/AbcSize: Assignment Branch Condition size for `clause_body_components` is too high. [<11, 30, 16> 35.74/17]", 199420029], - [81, 7, 2396, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `clause_body_components` is too high. [13/7]", 199420029], - [81, 7, 2396, "Metrics/MethodLength: Method has too many lines. [39/10]", 199420029], - [81, 7, 2396, "Metrics/PerceivedComplexity: Perceived complexity for `clause_body_components` is too high. [14/8]", 199420029], - [126, 30, 23, "Style/StringConcatenation: Prefer string interpolation to string concatenation.", 1178765246], - [164, 7, 862, "Metrics/AbcSize: Assignment Branch Condition size for `clause_bodies_have_matching_statements?` is too high. [<3, 19, 2> 19.34/17]", 4182083840], - [164, 7, 862, "Metrics/MethodLength: Method has too many lines. [15/10]", 4182083840] - ], - "lib/prism/merge/begin_node_clause_header_emitter.rb:2991300768": [ - [5, 5, 34, "Style/Documentation: Missing top-level documentation comment for `class Prism::Merge::BeginNodeClauseHeaderEmitter`.", 217025096], - [14, 7, 1600, "Metrics/AbcSize: Assignment Branch Condition size for `emit` is too high. [<10, 22, 17> 29.55/17]", 4242535078], - [14, 7, 1600, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `emit` is too high. [11/7]", 4242535078], - [14, 7, 1600, "Metrics/MethodLength: Method has too many lines. [25/10]", 4242535078], - [14, 7, 1600, "Metrics/PerceivedComplexity: Perceived complexity for `emit` is too high. [11/8]", 4242535078], - [14, 15, 164, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [8/5]", 2644486585] - ], - "lib/prism/merge/begin_node_merge_planner.rb:3840396716": [ - [5, 5, 27, "Style/Documentation: Missing top-level documentation comment for `class Prism::Merge::BeginNodeMergePlanner`.", 3356052894], - [5, 5, 9876, "Metrics/ClassLength: Class has too many lines. [185/100]", 148070692], - [30, 7, 2144, "Metrics/AbcSize: Assignment Branch Condition size for `plan` is too high. [<15, 34, 11> 38.76/17]", 3596380485], - [30, 7, 2144, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `plan` is too high. [10/7]", 3596380485], - [30, 7, 2144, "Metrics/MethodLength: Method has too many lines. [39/10]", 3596380485], - [30, 7, 2144, "Metrics/PerceivedComplexity: Perceived complexity for `plan` is too high. [11/8]", 3596380485], - [84, 7, 4383, "Metrics/AbcSize: Assignment Branch Condition size for `build_shared_clause_step` is too high. [<19, 70, 24> 76.4/17]", 2837542267], - [84, 7, 4383, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `build_shared_clause_step` is too high. [16/7]", 2837542267], - [84, 7, 4383, "Metrics/MethodLength: Method has too many lines. [73/10]", 2837542267], - [84, 7, 4383, "Metrics/PerceivedComplexity: Perceived complexity for `build_shared_clause_step` is too high. [18/8]", 2837542267], - [103, 121, 59, "Layout/LineLength: Line is too long. [179/120]", 357928082], - [105, 121, 55, "Layout/LineLength: Line is too long. [175/120]", 1163790852], - [142, 121, 35, "Layout/LineLength: Line is too long. [155/120]", 3447647282], - [143, 121, 40, "Layout/LineLength: Line is too long. [160/120]", 1267386383], - [167, 7, 2428, "Metrics/AbcSize: Assignment Branch Condition size for `build_unmatched_clause_step` is too high. [<2, 28, 21> 35.06/17]", 2984621385], - [167, 7, 2428, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `build_unmatched_clause_step` is too high. [17/7]", 2984621385], - [167, 7, 2428, "Metrics/MethodLength: Method has too many lines. [38/10]", 2984621385], - [167, 7, 2428, "Metrics/PerceivedComplexity: Perceived complexity for `build_unmatched_clause_step` is too high. [19/8]", 2984621385], - [188, 121, 25, "Layout/LineLength: Line is too long. [145/120]", 549521717], - [198, 121, 25, "Layout/LineLength: Line is too long. [145/120]", 619697310] - ], - "lib/prism/merge/begin_node_plan_emitter.rb:372252499": [ - [5, 5, 26, "Style/Documentation: Missing top-level documentation comment for `class Prism::Merge::BeginNodePlanEmitter`.", 926648201], - [14, 7, 740, "Metrics/MethodLength: Method has too many lines. [16/10]", 2040521865], - [14, 15, 105, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 1812434716], - [36, 7, 1205, "Metrics/MethodLength: Method has too many lines. [24/10]", 4164487211], - [36, 20, 127, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 466430575], - [76, 7, 1308, "Metrics/AbcSize: Assignment Branch Condition size for `emit_copied_unmatched_clause` is too high. [<6, 30, 11> 32.51/17]", 1339054986], - [76, 7, 1308, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `emit_copied_unmatched_clause` is too high. [10/7]", 1339054986], - [76, 7, 1308, "Metrics/MethodLength: Method has too many lines. [21/10]", 1339054986], - [76, 7, 1308, "Metrics/PerceivedComplexity: Perceived complexity for `emit_copied_unmatched_clause` is too high. [10/8]", 1339054986], - [76, 39, 146, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 2474530127] - ], - "lib/prism/merge/begin_node_rescue_semantics.rb:2034041801": [ - [5, 5, 30, "Style/Documentation: Missing top-level documentation comment for `class Prism::Merge::BeginNodeRescueSemantics`.", 4100560642], - [5, 5, 9899, "Metrics/ClassLength: Class has too many lines. [198/100]", 4227917508], - [13, 7, 1953, "Metrics/AbcSize: Assignment Branch Condition size for `normalized_clause_body_and_header_source` is too high. [<9, 13, 21> 26.29/17]", 1895019213], - [13, 7, 1953, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `normalized_clause_body_and_header_source` is too high. [15/7]", 1895019213], - [13, 7, 1953, "Metrics/MethodLength: Method has too many lines. [26/10]", 1895019213], - [13, 7, 1953, "Metrics/PerceivedComplexity: Perceived complexity for `normalized_clause_body_and_header_source` is too high. [17/8]", 1895019213], - [80, 7, 530, "Metrics/AbcSize: Assignment Branch Condition size for `local_variable_read_names_in` is too high. [<1, 16, 9> 18.38/17]", 2555890222], - [80, 7, 530, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `local_variable_read_names_in` is too high. [8/7]", 2555890222], - [80, 7, 530, "Metrics/MethodLength: Method has too many lines. [12/10]", 2555890222], - [80, 7, 530, "Metrics/PerceivedComplexity: Perceived complexity for `local_variable_read_names_in` is too high. [9/8]", 2555890222], - [134, 7, 724, "Metrics/AbcSize: Assignment Branch Condition size for `rewrite_local_reference_in_source` is too high. [<6, 18, 9> 21/17]", 2089802992], - [134, 7, 724, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `rewrite_local_reference_in_source` is too high. [9/7]", 2089802992], - [134, 7, 724, "Metrics/MethodLength: Method has too many lines. [12/10]", 2089802992], - [134, 7, 724, "Metrics/PerceivedComplexity: Perceived complexity for `rewrite_local_reference_in_source` is too high. [9/8]", 2089802992], - [182, 85, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], - [194, 7, 1233, "Metrics/AbcSize: Assignment Branch Condition size for `collect_source_defined_exception_definitions` is too high. [<4, 22, 9> 24.1/17]", 1970916346], - [194, 7, 1233, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `collect_source_defined_exception_definitions` is too high. [10/7]", 1970916346], - [194, 7, 1233, "Metrics/MethodLength: Method has too many lines. [24/10]", 1970916346] - ], - "lib/prism/merge/begin_node_structure.rb:1232724245": [ - [5, 5, 24, "Style/Documentation: Missing top-level documentation comment for `class Prism::Merge::BeginNodeStructure`.", 3506219929], - [5, 5, 4080, "Metrics/ClassLength: Class has too many lines. [101/100]", 1611393241], - [21, 7, 375, "Metrics/AbcSize: Assignment Branch Condition size for `boundary_lines` is too high. [<0, 28, 7> 28.86/17]", 3399008793], - [21, 7, 375, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `boundary_lines` is too high. [8/7]", 3399008793], - [33, 7, 251, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `clause_start_line` is too high. [8/7]", 1553904487], - [43, 7, 407, "Metrics/MethodLength: Method has too many lines. [12/10]", 3851339415], - [59, 7, 1089, "Metrics/AbcSize: Assignment Branch Condition size for `clause_regions` is too high. [<9, 38, 9> 40.07/17]", 1916795013], - [59, 7, 1089, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `clause_regions` is too high. [10/7]", 1916795013], - [59, 7, 1089, "Metrics/MethodLength: Method has too many lines. [22/10]", 1916795013], - [59, 7, 1089, "Metrics/PerceivedComplexity: Perceived complexity for `clause_regions` is too high. [10/8]", 1916795013], - [86, 7, 613, "Metrics/AbcSize: Assignment Branch Condition size for `clause_nodes_by_type` is too high. [<9, 19, 4> 21.4/17]", 1693909219], - [86, 7, 613, "Metrics/MethodLength: Method has too many lines. [12/10]", 1693909219], - [102, 11, 19, "Naming/PredicatePrefix: Rename `has_clause_or_body?` to `clause_or_body?`.", 2163996991], - [106, 7, 598, "Metrics/AbcSize: Assignment Branch Condition size for `line_map_for` is too high. [<13, 15, 6> 20.74/17]", 191778789] - ], - "lib/prism/merge/block_directive_detector.rb:3698866715": [ - [9, 5, 5028, "Metrics/ClassLength: Class has too many lines. [121/100]", 2587374670], - [10, 7, 1976, "Metrics/AbcSize: Assignment Branch Condition size for `promote_spans_to_nodes` is too high. [<23, 42, 32> 57.59/17]", 1038475655], - [10, 7, 1976, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `promote_spans_to_nodes` is too high. [24/7]", 1038475655], - [10, 7, 1976, "Metrics/MethodLength: Method has too many lines. [37/10]", 1038475655], - [10, 7, 1976, "Metrics/PerceivedComplexity: Perceived complexity for `promote_spans_to_nodes` is too high. [25/8]", 1038475655], - [35, 11, 7, "Style/MultilineBlockChain: Avoid multi-line chains of blocks.", 4045560504], - [108, 7, 832, "Metrics/MethodLength: Method has too many lines. [23/10]", 3204610677], - [134, 7, 722, "Metrics/AbcSize: Assignment Branch Condition size for `rebuild_statements` is too high. [<15, 17, 9> 24.39/17]", 3809085226], - [134, 7, 722, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `rebuild_statements` is too high. [10/7]", 3809085226], - [134, 7, 722, "Metrics/MethodLength: Method has too many lines. [15/10]", 3809085226], - [134, 7, 722, "Metrics/PerceivedComplexity: Perceived complexity for `rebuild_statements` is too high. [10/8]", 3809085226] - ], - "lib/prism/merge/comment/block.rb:3606937725": [ - [65, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 1573406415] - ], - "lib/prism/merge/comment/parser.rb:1277632686": [ - [31, 9, 1747, "Metrics/AbcSize: Assignment Branch Condition size for `parse` is too high. [<10, 28, 8> 30.79/17]", 2837146927], - [31, 9, 1747, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `parse` is too high. [8/7]", 2837146927], - [31, 9, 1747, "Metrics/MethodLength: Method has too many lines. [34/10]", 2837146927], - [31, 9, 1747, "Metrics/PerceivedComplexity: Perceived complexity for `parse` is too high. [9/8]", 2837146927], - [38, 11, 1390, "Metrics/BlockLength: Block has too many lines. [26/25]", 1396583578] - ], - "lib/prism/merge/comment_only_file_merger.rb:808070956": [ - [5, 5, 27, "Style/Documentation: Missing top-level documentation comment for `class Prism::Merge::CommentOnlyFileMerger`.", 1927029952], - [5, 5, 11907, "Metrics/ClassLength: Class has too many lines. [256/100]", 2729825792], - [27, 7, 1628, "Metrics/AbcSize: Assignment Branch Condition size for `merge` is too high. [<15, 32, 8> 36.24/17]", 2481561114], - [27, 7, 1628, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `merge` is too high. [8/7]", 2481561114], - [27, 7, 1628, "Metrics/MethodLength: Method has too many lines. [34/10]", 2481561114], - [78, 7, 661, "Metrics/MethodLength: Method has too many lines. [18/10]", 1523408112], - [100, 7, 1781, "Metrics/AbcSize: Assignment Branch Condition size for `build_output_plan` is too high. [<10, 34, 20> 40.69/17]", 994360926], - [100, 7, 1781, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `build_output_plan` is too high. [17/7]", 994360926], - [100, 7, 1781, "Metrics/MethodLength: Method has too many lines. [30/10]", 994360926], - [100, 7, 1781, "Metrics/PerceivedComplexity: Perceived complexity for `build_output_plan` is too high. [19/8]", 994360926], - [123, 121, 21, "Layout/LineLength: Line is too long. [141/120]", 530225423], - [149, 7, 1486, "Metrics/AbcSize: Assignment Branch Condition size for `add_comment_node_to_result` is too high. [<7, 34, 22> 41.1/17]", 1181795760], - [149, 7, 1486, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `add_comment_node_to_result` is too high. [16/7]", 1181795760], - [149, 7, 1486, "Metrics/MethodLength: Method has too many lines. [29/10]", 1181795760], - [149, 7, 1486, "Metrics/PerceivedComplexity: Perceived complexity for `add_comment_node_to_result` is too high. [20/8]", 1181795760], - [185, 7, 693, "Metrics/MethodLength: Method has too many lines. [16/10]", 3008008109], - [205, 7, 1035, "Metrics/AbcSize: Assignment Branch Condition size for `emit_layout_gap_to_result` is too high. [<6, 24, 11> 27.07/17]", 3441550295], - [205, 7, 1035, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `emit_layout_gap_to_result` is too high. [9/7]", 3441550295], - [205, 7, 1035, "Metrics/MethodLength: Method has too many lines. [17/10]", 3441550295], - [205, 7, 1035, "Metrics/PerceivedComplexity: Perceived complexity for `emit_layout_gap_to_result` is too high. [10/8]", 3441550295], - [230, 7, 665, "Metrics/AbcSize: Assignment Branch Condition size for `emit_comment_only_prefix_lines` is too high. [<5, 21, 4> 21.95/17]", 1939505075], - [243, 7, 942, "Metrics/MethodLength: Method has too many lines. [19/10]", 2012616838] - ], - "lib/prism/merge/file_analysis.rb:3845044313": [ - [16, 5, 56738, "Metrics/ClassLength: Class has too many lines. [631/100]", 2915560491], - [19, 7, 28, "Style/Documentation: Missing top-level documentation comment for `class Prism::Merge::FileAnalysis::NativeCommentAugmenter`.", 2321467727], - [19, 7, 5712, "Metrics/ClassLength: Class has too many lines. [121/100]", 3225634005], - [22, 9, 605, "Metrics/MethodLength: Method has too many lines. [16/10]", 3935631704], - [47, 9, 2672, "Metrics/AbcSize: Assignment Branch Condition size for `build!` is too high. [<19, 55, 23> 62.57/17]", 3140666915], - [47, 9, 2672, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `build!` is too high. [22/7]", 3140666915], - [47, 9, 2672, "Metrics/MethodLength: Method has too many lines. [47/10]", 3140666915], - [47, 9, 2672, "Metrics/PerceivedComplexity: Perceived complexity for `build!` is too high. [22/8]", 3140666915], - [120, 9, 779, "Metrics/AbcSize: Assignment Branch Condition size for `attach_orphan_region_to_nearest_owner` is too high. [<4, 18, 3> 18.68/17]", 714646861], - [120, 9, 779, "Metrics/MethodLength: Method has too many lines. [15/10]", 714646861], - [212, 7, 1703, "Metrics/MethodLength: Method has too many lines. [19/10]", 3233444968], - [350, 7, 686, "Metrics/AbcSize: Assignment Branch Condition size for `leading_comments_for_owner` is too high. [<7, 23, 9> 25.67/17]", 4287196323], - [350, 7, 686, "Metrics/MethodLength: Method has too many lines. [13/10]", 4287196323], - [373, 7, 1177, "Metrics/MethodLength: Method has too many lines. [23/10]", 853358252], - [415, 7, 587, "Metrics/MethodLength: Method has too many lines. [13/10]", 241044926], - [481, 7, 1099, "Metrics/AbcSize: Assignment Branch Condition size for `frozen_node?` is too high. [<3, 16, 7> 17.72/17]", 1886536218], - [481, 7, 1099, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `frozen_node?` is too high. [8/7]", 1886536218], - [615, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5858904], - [616, 121, 10, "Layout/LineLength: Line is too long. [130/120]", 442686854], - [687, 7, 779, "Metrics/AbcSize: Assignment Branch Condition size for `split_first_owner_preamble_entries` is too high. [<9, 20, 10> 24.1/17]", 2477766314], - [687, 7, 779, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `split_first_owner_preamble_entries` is too high. [9/7]", 2477766314], - [687, 7, 779, "Metrics/MethodLength: Method has too many lines. [11/10]", 2477766314], - [687, 7, 779, "Metrics/PerceivedComplexity: Perceived complexity for `split_first_owner_preamble_entries` is too high. [9/8]", 2477766314], - [697, 9, 11, "Style/MultilineBlockChain: Avoid multi-line chains of blocks.", 848344986], - [744, 7, 768, "Metrics/MethodLength: Method has too many lines. [15/10]", 3855207561], - [770, 7, 609, "Metrics/MethodLength: Method has too many lines. [15/10]", 3157294863], - [856, 7, 2509, "Metrics/AbcSize: Assignment Branch Condition size for `extract_and_integrate_all_nodes` is too high. [<11, 29, 16> 34.9/17]", 1138957888], - [856, 7, 2509, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `extract_and_integrate_all_nodes` is too high. [14/7]", 1138957888], - [856, 7, 2509, "Metrics/MethodLength: Method has too many lines. [32/10]", 1138957888], - [856, 7, 2509, "Metrics/PerceivedComplexity: Perceived complexity for `extract_and_integrate_all_nodes` is too high. [16/8]", 1138957888], - [925, 7, 1325, "Metrics/AbcSize: Assignment Branch Condition size for `extract_nodes_with_comments` is too high. [<3, 25, 7> 26.13/17]", 1498557944], - [925, 7, 1325, "Metrics/MethodLength: Method has too many lines. [23/10]", 1498557944], - [1037, 7, 11892, "Metrics/AbcSize: Assignment Branch Condition size for `compute_node_signature` is too high. [<19, 176, 83> 195.5/17]", 2654183611], - [1037, 7, 11892, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `compute_node_signature` is too high. [75/7]", 2654183611], - [1037, 7, 11892, "Metrics/MethodLength: Method has too many lines. [132/10]", 2654183611], - [1037, 7, 11892, "Metrics/PerceivedComplexity: Perceived complexity for `compute_node_signature` is too high. [61/8]", 2654183611], - [1098, 88, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], - [1102, 24, 300, "Metrics/BlockNesting: Avoid more than 3 levels of block nesting.", 2690302041], - [1102, 55, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], - [1313, 7, 680, "Metrics/AbcSize: Assignment Branch Condition size for `detect_gemspec_block_var` is too high. [<3, 22, 15> 26.8/17]", 3676370299], - [1313, 7, 680, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `detect_gemspec_block_var` is too high. [14/7]", 3676370299], - [1313, 7, 680, "Metrics/MethodLength: Method has too many lines. [14/10]", 3676370299], - [1313, 7, 680, "Metrics/PerceivedComplexity: Perceived complexity for `detect_gemspec_block_var` is too high. [14/8]", 3676370299] - ], - "lib/prism/merge/freeze_node.rb:2471800311": [ - [67, 7, 577, "Metrics/MethodLength: Method has too many lines. [11/10]", 2189574632], - [67, 21, 186, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [8/5]", 1006469938], - [124, 7, 2888, "Metrics/AbcSize: Assignment Branch Condition size for `validate_structure!` is too high. [<13, 32, 33> 47.77/17]", 3621186151], - [124, 7, 2888, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `validate_structure!` is too high. [24/7]", 3621186151], - [124, 7, 2888, "Metrics/MethodLength: Method has too many lines. [38/10]", 3621186151], - [124, 7, 2888, "Metrics/PerceivedComplexity: Perceived complexity for `validate_structure!` is too high. [25/8]", 3621186151] - ], - "lib/prism/merge/merge_result.rb:1970522956": [ - [9, 5, 12561, "Metrics/ClassLength: Class has too many lines. [238/100]", 3020348188], - [67, 7, 5058, "Metrics/AbcSize: Assignment Branch Condition size for `add_node` is too high. [<25, 54, 38> 70.6/17]", 2165268226], - [67, 7, 5058, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `add_node` is too high. [22/7]", 2165268226], - [67, 7, 5058, "Metrics/MethodLength: Method has too many lines. [94/10]", 2165268226], - [67, 7, 5058, "Metrics/PerceivedComplexity: Perceived complexity for `add_node` is too high. [31/8]", 2165268226], - [74, 9, 1617, "Metrics/BlockLength: Block has too many lines. [34/25]", 3544860826], - [175, 38, 40, "Style/StringConcatenation: Prefer string interpolation to string concatenation.", 3558364074], - [193, 9, 24, "Style/StringConcatenation: Prefer string interpolation to string concatenation.", 1750147806], - [219, 7, 901, "Metrics/AbcSize: Assignment Branch Condition size for `debug_output` is too high. [<5, 29, 5> 29.85/17]", 2776830125], - [219, 7, 901, "Metrics/MethodLength: Method has too many lines. [25/10]", 2776830125], - [296, 7, 903, "Metrics/MethodLength: Method has too many lines. [18/10]", 2752342414] - ], - "lib/prism/merge/method_match_refiner.rb:1593340636": [ - [103, 7, 705, "Metrics/AbcSize: Assignment Branch Condition size for `extract_param_names` is too high. [<2, 37, 16> 40.36/17]", 3200522215], - [103, 7, 705, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `extract_param_names` is too high. [17/7]", 3200522215], - [103, 7, 705, "Metrics/MethodLength: Method has too many lines. [11/10]", 3200522215], - [103, 7, 705, "Metrics/PerceivedComplexity: Perceived complexity for `extract_param_names` is too high. [17/8]", 3200522215], - [111, 49, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], - [114, 65, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765] - ], - "lib/prism/merge/nested_statement_walker.rb:3826169704": [ - [24, 7, 695, "Metrics/MethodLength: Method has too many lines. [16/10]", 3744912119], - [45, 7, 518, "Metrics/MethodLength: Method has too many lines. [12/10]", 2978518157] - ], - "lib/prism/merge/nocov_node.rb:2336029940": [ - [52, 19, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765] - ], - "lib/prism/merge/node_body_layout.rb:1642074264": [ - [5, 5, 20, "Style/Documentation: Missing top-level documentation comment for `class Prism::Merge::NodeBodyLayout`.", 1262407425], - [5, 5, 5858, "Metrics/ClassLength: Class has too many lines. [127/100]", 2663802475], - [14, 7, 413, "Metrics/AbcSize: Assignment Branch Condition size for `body_text` is too high. [<2, 17, 5> 17.83/17]", 1825622248], - [28, 9, 23, "Style/StringConcatenation: Prefer string interpolation to string concatenation.", 1178765246], - [31, 7, 241, "Metrics/AbcSize: Assignment Branch Condition size for `opening_line_text` is too high. [<0, 17, 1> 17.03/17]", 1468915915], - [37, 7, 237, "Metrics/AbcSize: Assignment Branch Condition size for `closing_line_text` is too high. [<0, 18, 1> 18.03/17]", 4077830027], - [73, 7, 1058, "Metrics/AbcSize: Assignment Branch Condition size for `statements_node` is too high. [<1, 30, 11> 31.97/17]", 4004813764], - [73, 7, 1058, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `statements_node` is too high. [12/7]", 4004813764], - [73, 7, 1058, "Metrics/MethodLength: Method has too many lines. [20/10]", 4004813764], - [73, 7, 1058, "Metrics/PerceivedComplexity: Perceived complexity for `statements_node` is too high. [10/8]", 4004813764], - [100, 7, 567, "Metrics/AbcSize: Assignment Branch Condition size for `body_start_line` is too high. [<1, 24, 4> 24.35/17]", 2388795687], - [103, 121, 17, "Layout/LineLength: Line is too long. [137/120]", 503895268], - [111, 7, 863, "Metrics/AbcSize: Assignment Branch Condition size for `body_end_line` is too high. [<2, 38, 7> 38.69/17]", 60007760], - [111, 7, 863, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `body_end_line` is too high. [8/7]", 60007760], - [111, 7, 863, "Metrics/MethodLength: Method has too many lines. [11/10]", 60007760], - [114, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 2068513341], - [116, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 270242779] - ], - "lib/prism/merge/node_emission_support.rb:388716709": [ - [5, 5, 25, "Style/Documentation: Missing top-level documentation comment for `class Prism::Merge::NodeEmissionSupport`.", 1335077453], - [5, 5, 42322, "Metrics/ClassLength: Class has too many lines. [775/100]", 2081266710], - [14, 7, 2734, "Metrics/AbcSize: Assignment Branch Condition size for `emit_dest_prefix_lines` is too high. [<18, 54, 18> 59.7/17]", 4241256208], - [14, 7, 2734, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `emit_dest_prefix_lines` is too high. [16/7]", 4241256208], - [14, 7, 2734, "Metrics/MethodLength: Method has too many lines. [54/10]", 4241256208], - [14, 7, 2734, "Metrics/PerceivedComplexity: Perceived complexity for `emit_dest_prefix_lines` is too high. [17/8]", 4241256208], - [19, 121, 1, "Layout/LineLength: Line is too long. [121/120]", 177656], - [20, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 3503445075], - [81, 7, 2526, "Metrics/AbcSize: Assignment Branch Condition size for `emit_removed_destination_node_comments` is too high. [<15, 38, 6> 41.29/17]", 3275408633], - [81, 7, 2526, "Metrics/MethodLength: Method has too many lines. [63/10]", 3275408633], - [153, 7, 1430, "Metrics/AbcSize: Assignment Branch Condition size for `emit_dest_gap_lines` is too high. [<7, 19, 11> 23.04/17]", 2013951205], - [153, 7, 1430, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `emit_dest_gap_lines` is too high. [9/7]", 2013951205], - [153, 7, 1430, "Metrics/MethodLength: Method has too many lines. [27/10]", 2013951205], - [153, 7, 1430, "Metrics/PerceivedComplexity: Perceived complexity for `emit_dest_gap_lines` is too high. [9/8]", 2013951205], - [154, 36, 21, "Style/NumericPredicate: Use `last_output_line.zero?` instead of `last_output_line == 0`.", 1942859694], - [160, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 3276957001], - [187, 7, 9316, "Metrics/AbcSize: Assignment Branch Condition size for `emit_matched_template_node` is too high. [<52, 122, 45> 140.0/17]", 605812917], - [187, 7, 9316, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `emit_matched_template_node` is too high. [43/7]", 605812917], - [187, 7, 9316, "Metrics/MethodLength: Method has too many lines. [151/10]", 605812917], - [187, 7, 9316, "Metrics/PerceivedComplexity: Perceived complexity for `emit_matched_template_node` is too high. [45/8]", 605812917], - [269, 121, 22, "Layout/LineLength: Line is too long. [142/120]", 2775680224], - [301, 121, 10, "Layout/LineLength: Line is too long. [130/120]", 249577804], - [331, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 2267103911], - [361, 121, 27, "Layout/LineLength: Line is too long. [147/120]", 988398654], - [373, 7, 6908, "Metrics/AbcSize: Assignment Branch Condition size for `emit_node` is too high. [<44, 90, 54> 113.8/17]", 2848614159], - [373, 7, 6908, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `emit_node` is too high. [38/7]", 2848614159], - [373, 7, 6908, "Metrics/MethodLength: Method has too many lines. [135/10]", 2848614159], - [373, 7, 6908, "Metrics/PerceivedComplexity: Perceived complexity for `emit_node` is too high. [44/8]", 2848614159], - [388, 121, 25, "Layout/LineLength: Line is too long. [145/120]", 3628174615], - [475, 121, 15, "Layout/LineLength: Line is too long. [135/120]", 650150522], - [480, 15, 379, "Metrics/BlockNesting: Avoid more than 3 levels of block nesting.", 3006808047], - [519, 121, 7, "Layout/LineLength: Line is too long. [127/120]", 2020907649], - [536, 7, 1166, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `filter_previous_destination_owned_template_leading_comments` is too high. [8/7]", 2076094754], - [536, 7, 1166, "Metrics/MethodLength: Method has too many lines. [15/10]", 2076094754], - [536, 71, 13, "Lint/UnusedMethodArgument: Unused method argument - `template_node`.", 1616609802], - [587, 7, 973, "Metrics/MethodLength: Method has too many lines. [15/10]", 1892360110], - [587, 60, 172, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [7/5]", 2784840176], - [588, 121, 5, "Layout/LineLength: Line is too long. [125/120]", 169966263], - [614, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2087656651], - [627, 7, 873, "Metrics/AbcSize: Assignment Branch Condition size for `previous_template_gap_already_precedes_leading_comments?` is too high. [<5, 19, 11> 22.52/17]", 268778340], - [627, 7, 873, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `previous_template_gap_already_precedes_leading_comments?` is too high. [9/7]", 268778340], - [627, 7, 873, "Metrics/MethodLength: Method has too many lines. [13/10]", 268778340], - [627, 7, 873, "Metrics/PerceivedComplexity: Perceived complexity for `previous_template_gap_already_precedes_leading_comments?` is too high. [9/8]", 268778340], - [636, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 618947799], - [696, 7, 457, "Metrics/MethodLength: Method has too many lines. [11/10]", 349820622], - [724, 7, 758, "Metrics/AbcSize: Assignment Branch Condition size for `partial_same_line_node?` is too high. [<8, 31, 5> 32.4/17]", 1768803955], - [775, 7, 597, "Metrics/MethodLength: Method has too many lines. [12/10]", 2742538822], - [775, 40, 67, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 725821220], - [792, 7, 552, "Metrics/MethodLength: Method has too many lines. [12/10]", 4255654885], - [815, 7, 845, "Metrics/MethodLength: Method has too many lines. [13/10]", 3468050888], - [846, 7, 1097, "Metrics/AbcSize: Assignment Branch Condition size for `filter_emitted_template_leading_comments` is too high. [<6, 18, 3> 19.21/17]", 2091395187], - [846, 7, 1097, "Metrics/MethodLength: Method has too many lines. [17/10]", 2091395187], - [882, 7, 822, "Metrics/MethodLength: Method has too many lines. [13/10]", 3499946440], - [899, 7, 1359, "Metrics/AbcSize: Assignment Branch Condition size for `collapse_matched_template_leading_prefix` is too high. [<7, 22, 10> 25.16/17]", 3976364089], - [899, 7, 1359, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `collapse_matched_template_leading_prefix` is too high. [9/7]", 3976364089], - [899, 7, 1359, "Metrics/MethodLength: Method has too many lines. [21/10]", 3976364089], - [899, 7, 1359, "Metrics/PerceivedComplexity: Perceived complexity for `collapse_matched_template_leading_prefix` is too high. [9/8]", 3976364089], - [943, 121, 37, "Layout/LineLength: Line is too long. [157/120]", 3703011298], - [947, 7, 746, "Metrics/MethodLength: Method has too many lines. [17/10]", 3532927627] - ], - "lib/prism/merge/partial_template_merger.rb:2303997532": [ - [14, 7, 826, "Metrics/MethodLength: Method has too many lines. [14/10]", 713706122], - [14, 21, 329, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [12/5]", 2768355468], - [55, 7, 487, "Metrics/MethodLength: Method has too many lines. [11/10]", 447766477], - [75, 7, 520, "Metrics/AbcSize: Assignment Branch Condition size for `node_to_text` is too high. [<1, 19, 6> 19.95/17]", 1593952791], - [84, 46, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765] - ], - "lib/prism/merge/recursive_merge_policy.rb:4204303290": [ - [5, 5, 26, "Style/Documentation: Missing top-level documentation comment for `class Prism::Merge::RecursiveMergePolicy`.", 1329613257], - [12, 7, 1132, "Metrics/AbcSize: Assignment Branch Condition size for `should_merge?` is too high. [<4, 25, 15> 29.43/17]", 4123619949], - [12, 7, 1132, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `should_merge?` is too high. [14/7]", 4123619949], - [12, 7, 1132, "Metrics/MethodLength: Method has too many lines. [20/10]", 4123619949], - [12, 7, 1132, "Metrics/PerceivedComplexity: Perceived complexity for `should_merge?` is too high. [13/8]", 4123619949], - [47, 7, 398, "Metrics/MethodLength: Method has too many lines. [18/10]", 385694759] - ], - "lib/prism/merge/recursive_node_body_merger.rb:1132596837": [ - [5, 5, 29, "Style/Documentation: Missing top-level documentation comment for `class Prism::Merge::RecursiveNodeBodyMerger`.", 3703318859], - [5, 5, 18505, "Metrics/ClassLength: Class has too many lines. [333/100]", 3196902308], - [12, 7, 12756, "Metrics/AbcSize: Assignment Branch Condition size for `merge` is too high. [<78, 262, 90> 287.8/17]", 1909933362], - [12, 7, 12756, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `merge` is too high. [70/7]", 1909933362], - [12, 7, 12756, "Metrics/MethodLength: Method has too many lines. [215/10]", 1909933362], - [12, 7, 12756, "Metrics/PerceivedComplexity: Perceived complexity for `merge` is too high. [75/8]", 1909933362], - [27, 121, 10, "Layout/LineLength: Line is too long. [130/120]", 929875726], - [62, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 518709914], - [67, 121, 10, "Layout/LineLength: Line is too long. [130/120]", 366676207], - [266, 7, 1221, "Metrics/AbcSize: Assignment Branch Condition size for `remap_inner_unresolved_review_state!` is too high. [<8, 22, 6> 24.17/17]", 3210674006], - [266, 7, 1221, "Metrics/MethodLength: Method has too many lines. [21/10]", 3210674006], - [293, 7, 1121, "Metrics/AbcSize: Assignment Branch Condition size for `remap_inner_unresolved_case` is too high. [<6, 24, 0> 24.74/17]", 3468635549], - [293, 7, 1121, "Metrics/MethodLength: Method has too many lines. [15/10]", 3468635549], - [376, 7, 826, "Metrics/AbcSize: Assignment Branch Condition size for `emit_trailing_layout_gap_lines` is too high. [<6, 18, 9> 21/17]", 2158299973], - [376, 7, 826, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `emit_trailing_layout_gap_lines` is too high. [8/7]", 2158299973], - [376, 7, 826, "Metrics/MethodLength: Method has too many lines. [17/10]", 2158299973], - [376, 7, 826, "Metrics/PerceivedComplexity: Perceived complexity for `emit_trailing_layout_gap_lines` is too high. [9/8]", 2158299973] - ], - "lib/prism/merge/ruby_doc_surface_analyzer.rb:3389668357": [ - [7, 5, 7100, "Metrics/ClassLength: Class has too many lines. [162/100]", 77379508], - [50, 7, 1408, "Metrics/AbcSize: Assignment Branch Condition size for `build_doc_comment_surface` is too high. [<10, 25, 5> 27.39/17]", 2414553577], - [50, 7, 1408, "Metrics/MethodLength: Method has too many lines. [28/10]", 2414553577], - [91, 7, 1256, "Metrics/AbcSize: Assignment Branch Condition size for `build_example_surface` is too high. [<4, 23, 2> 23.43/17]", 4074178203], - [91, 7, 1256, "Metrics/MethodLength: Method has too many lines. [25/10]", 4074178203], - [131, 7, 555, "Metrics/AbcSize: Assignment Branch Condition size for `doc_comment_entries` is too high. [<8, 18, 6> 20.59/17]", 358090808] - ], - "lib/prism/merge/scaffold_chunk_remover.rb:1404116850": [ - [34, 7, 2064, "Metrics/AbcSize: Assignment Branch Condition size for `call` is too high. [<21, 62, 22> 69.06/17]", 3983172586], - [34, 7, 2064, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `call` is too high. [21/7]", 3983172586], - [34, 7, 2064, "Metrics/MethodLength: Method has too many lines. [39/10]", 3983172586], - [34, 7, 2064, "Metrics/PerceivedComplexity: Perceived complexity for `call` is too high. [21/8]", 3983172586] - ], - "lib/prism/merge/smart_merger.rb:3814529034": [ - [48, 5, 42561, "Metrics/ClassLength: Class has too many lines. [603/100]", 3828655257], - [96, 7, 2032, "Metrics/MethodLength: Method has too many lines. [24/10]", 4118525224], - [96, 21, 595, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [18/5]", 1562155096], - [171, 7, 1325, "Metrics/AbcSize: Assignment Branch Condition size for `merge_with_debug` is too high. [<3, 24, 19> 30.76/17]", 605983530], - [171, 7, 1325, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `merge_with_debug` is too high. [20/7]", 605983530], - [171, 7, 1325, "Metrics/MethodLength: Method has too many lines. [27/10]", 605983530], - [171, 7, 1325, "Metrics/PerceivedComplexity: Perceived complexity for `merge_with_debug` is too high. [20/8]", 605983530], - [310, 7, 664, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `frozen_node?` is too high. [8/7]", 2577924190], - [352, 7, 508, "Metrics/MethodLength: Method has too many lines. [13/10]", 1368018500], - [442, 7, 1155, "Metrics/AbcSize: Assignment Branch Condition size for `build_signature_map` is too high. [<11, 16, 8> 21/17]", 3956321005], - [442, 7, 1155, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `build_signature_map` is too high. [8/7]", 3956321005], - [442, 7, 1155, "Metrics/MethodLength: Method has too many lines. [16/10]", 3956321005], - [483, 7, 2731, "Metrics/AbcSize: Assignment Branch Condition size for `preference_for_node` is too high. [<7, 22, 20> 30.55/17]", 1325207598], - [483, 7, 2731, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `preference_for_node` is too high. [21/7]", 1325207598], - [483, 7, 2731, "Metrics/MethodLength: Method has too many lines. [25/10]", 1325207598], - [483, 7, 2731, "Metrics/PerceivedComplexity: Perceived complexity for `preference_for_node` is too high. [21/8]", 1325207598], - [659, 32, 73, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 2261515417], - [670, 35, 79, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 1350141395], - [681, 42, 63, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 2615605084], - [852, 35, 213, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [8/5]", 720547751] - ], - "lib/prism/merge/source_line_lookup.rb:1098479933": [ - [5, 5, 23, "Style/Documentation: Missing top-level documentation comment for `module Prism::Merge::SourceLineLookup`.", 2168434862] - ], - "lib/prism/merge/top_level_merge_runner.rb:1106437552": [ - [38, 5, 61468, "Metrics/ClassLength: Class has too many lines. [1156/100]", 150648557], - [66, 7, 5196, "Metrics/AbcSize: Assignment Branch Condition size for `merge` is too high. [<22, 68, 9> 72.03/17]", 176450457], - [66, 7, 5196, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `merge` is too high. [9/7]", 176450457], - [66, 7, 5196, "Metrics/MethodLength: Method has too many lines. [75/10]", 176450457], - [66, 7, 5196, "Metrics/PerceivedComplexity: Perceived complexity for `merge` is too high. [10/8]", 176450457], - [162, 7, 2023, "Metrics/AbcSize: Assignment Branch Condition size for `start_runtime_session!` is too high. [<5, 48, 1> 48.27/17]", 2943824289], - [162, 7, 2023, "Metrics/MethodLength: Method has too many lines. [44/10]", 2943824289], - [212, 7, 1765, "Metrics/AbcSize: Assignment Branch Condition size for `complete_runtime_session!` is too high. [<2, 21, 9> 22.93/17]", 2968004900], - [212, 7, 1765, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `complete_runtime_session!` is too high. [8/7]", 2968004900], - [212, 7, 1765, "Metrics/MethodLength: Method has too many lines. [36/10]", 2968004900], - [212, 7, 1765, "Metrics/PerceivedComplexity: Perceived complexity for `complete_runtime_session!` is too high. [10/8]", 2968004900], - [229, 121, 11, "Layout/LineLength: Line is too long. [131/120]", 3907470478], - [254, 7, 584, "Metrics/MethodLength: Method has too many lines. [14/10]", 1615217394], - [272, 7, 589, "Metrics/AbcSize: Assignment Branch Condition size for `runtime_document_surface` is too high. [<1, 19, 1> 19.05/17]", 1835005228], - [272, 7, 589, "Metrics/MethodLength: Method has too many lines. [12/10]", 1835005228], - [288, 7, 3192, "Metrics/AbcSize: Assignment Branch Condition size for `register_discovered_surface_operations!` is too high. [<12, 60, 9> 61.85/17]", 3059111269], - [288, 7, 3192, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `register_discovered_surface_operations!` is too high. [10/7]", 3059111269], - [288, 7, 3192, "Metrics/MethodLength: Method has too many lines. [65/10]", 3059111269], - [288, 7, 3192, "Metrics/PerceivedComplexity: Perceived complexity for `register_discovered_surface_operations!` is too high. [10/8]", 3059111269], - [297, 9, 2237, "Metrics/BlockLength: Block has too many lines. [44/25]", 809738986], - [399, 7, 1643, "Metrics/AbcSize: Assignment Branch Condition size for `execute_child_operations!` is too high. [<5, 33, 5> 33.75/17]", 1049305146], - [399, 7, 1643, "Metrics/MethodLength: Method has too many lines. [36/10]", 1049305146], - [400, 9, 1570, "Metrics/BlockLength: Block has too many lines. [29/25]", 1597985402], - [404, 9, 31, "Style/MultilineBlockChain: Avoid multi-line chains of blocks.", 3553388257], - [448, 7, 631, "Metrics/MethodLength: Method has too many lines. [15/10]", 1652116821], - [466, 7, 1306, "Metrics/AbcSize: Assignment Branch Condition size for `merge_runtime_surface` is too high. [<2, 18, 4> 18.55/17]", 1347264970], - [466, 7, 1306, "Metrics/MethodLength: Method has too many lines. [29/10]", 1347264970], - [500, 7, 1393, "Metrics/AbcSize: Assignment Branch Condition size for `merge_runtime_doc_comment_surface` is too high. [<4, 23, 5> 23.87/17]", 3745645404], - [500, 7, 1393, "Metrics/MethodLength: Method has too many lines. [29/10]", 3745645404], - [534, 7, 826, "Metrics/AbcSize: Assignment Branch Condition size for `apply_runtime_doc_children` is too high. [<5, 24, 7> 25.5/17]", 1386022126], - [534, 7, 826, "Metrics/MethodLength: Method has too many lines. [15/10]", 1386022126], - [542, 16, 27, "Style/MultilineBlockChain: Avoid multi-line chains of blocks.", 1443167664], - [546, 9, 24, "Style/MultilineBlockChain: Avoid multi-line chains of blocks.", 644874689], - [554, 7, 1438, "Metrics/AbcSize: Assignment Branch Condition size for `apply_runtime_example_child` is too high. [<10, 44, 10> 46.22/17]", 2594444962], - [554, 7, 1438, "Metrics/MethodLength: Method has too many lines. [25/10]", 2594444962], - [556, 121, 11, "Layout/LineLength: Line is too long. [131/120]", 3651736697], - [599, 7, 518, "Metrics/MethodLength: Method has too many lines. [11/10]", 523939757], - [623, 7, 753, "Metrics/MethodLength: Method has too many lines. [15/10]", 3406860674], - [683, 7, 1514, "Metrics/AbcSize: Assignment Branch Condition size for `compute_similarity_pairs` is too high. [<17, 42, 11> 46.63/17]", 103276977], - [683, 7, 1514, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `compute_similarity_pairs` is too high. [11/7]", 103276977], - [683, 7, 1514, "Metrics/MethodLength: Method has too many lines. [27/10]", 103276977], - [683, 7, 1514, "Metrics/PerceivedComplexity: Perceived complexity for `compute_similarity_pairs` is too high. [11/8]", 103276977], - [735, 7, 545, "Metrics/MethodLength: Method has too many lines. [12/10]", 398381329], - [763, 7, 586, "Metrics/MethodLength: Method has too many lines. [11/10]", 1559638959], - [843, 7, 640, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `collect_nested_signatures` is too high. [10/7]", 3947424552], - [843, 7, 640, "Metrics/MethodLength: Method has too many lines. [13/10]", 3947424552], - [843, 7, 640, "Metrics/PerceivedComplexity: Perceived complexity for `collect_nested_signatures` is too high. [10/8]", 3947424552], - [845, 12, 9, "Style/NumericPredicate: Use `depth.positive?` instead of `depth > 0`.", 2180768870], - [869, 7, 1297, "Metrics/AbcSize: Assignment Branch Condition size for `nested_statement_children` is too high. [<2, 50, 17> 52.85/17]", 3818826989], - [869, 7, 1297, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `nested_statement_children` is too high. [17/7]", 3818826989], - [869, 7, 1297, "Metrics/MethodLength: Method has too many lines. [19/10]", 3818826989], - [869, 7, 1297, "Metrics/PerceivedComplexity: Perceived complexity for `nested_statement_children` is too high. [15/8]", 3818826989], - [877, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 3315454453], - [882, 93, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], - [883, 89, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], - [884, 93, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], - [899, 7, 754, "Metrics/AbcSize: Assignment Branch Condition size for `prepare_comment_augmenters!` is too high. [<1, 19, 0> 19.03/17]", 311364642], - [899, 7, 754, "Metrics/MethodLength: Method has too many lines. [12/10]", 311364642], - [1003, 7, 1707, "Metrics/AbcSize: Assignment Branch Condition size for `retained_owner_plan` is too high. [<16, 40, 12> 44.72/17]", 375532236], - [1003, 7, 1707, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `retained_owner_plan` is too high. [13/7]", 375532236], - [1003, 7, 1707, "Metrics/MethodLength: Method has too many lines. [33/10]", 375532236], - [1003, 7, 1707, "Metrics/PerceivedComplexity: Perceived complexity for `retained_owner_plan` is too high. [13/8]", 375532236], - [1003, 55, 17, "Lint/UnusedMethodArgument: Unused method argument - `dest_by_signature`.", 379778684], - [1024, 9, 250, "Style/CombinableLoops: Combine this loop with the previous loop.", 3315024098], - [1031, 121, 5, "Layout/LineLength: Line is too long. [125/120]", 180543822], - [1048, 7, 4811, "Metrics/AbcSize: Assignment Branch Condition size for `process_dest_node` is too high. [<23, 71, 16> 76.33/17]", 329713352], - [1048, 7, 4811, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `process_dest_node` is too high. [13/7]", 329713352], - [1048, 7, 4811, "Metrics/MethodLength: Method has too many lines. [90/10]", 329713352], - [1048, 7, 4811, "Metrics/PerceivedComplexity: Perceived complexity for `process_dest_node` is too high. [17/8]", 329713352], - [1048, 28, 279, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [9/5]", 2321512478], - [1190, 7, 757, "Metrics/MethodLength: Method has too many lines. [19/10]", 3306507447], - [1228, 44, 189, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 215272527], - [1259, 7, 888, "Metrics/MethodLength: Method has too many lines. [17/10]", 2638200013], - [1259, 31, 189, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [9/5]", 50070642], - [1281, 7, 719, "Metrics/MethodLength: Method has too many lines. [13/10]", 530865591], - [1299, 7, 1393, "Metrics/AbcSize: Assignment Branch Condition size for `process_non_recursive_match` is too high. [<10, 23, 7> 26.04/17]", 324106576], - [1299, 7, 1393, "Metrics/MethodLength: Method has too many lines. [29/10]", 324106576], - [1333, 7, 1106, "Metrics/AbcSize: Assignment Branch Condition size for `process_unresolved_non_recursive_match` is too high. [<3, 19, 3> 19.47/17]", 1476652897], - [1333, 7, 1106, "Metrics/MethodLength: Method has too many lines. [26/10]", 1476652897], - [1374, 7, 1935, "Metrics/AbcSize: Assignment Branch Condition size for `record_unresolved_match_case!` is too high. [<4, 26, 3> 26.48/17]", 456739474], - [1374, 7, 1935, "Metrics/MethodLength: Method has too many lines. [37/10]", 456739474], - [1459, 7, 1067, "Metrics/AbcSize: Assignment Branch Condition size for `advance_last_output_dest_line` is too high. [<6, 19, 6> 20.81/17]", 331135500], - [1459, 7, 1067, "Metrics/MethodLength: Method has too many lines. [11/10]", 331135500], - [1459, 40, 181, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 2038823112] - ], - "lib/prism/merge/wrapper_comment_support.rb:3046735928": [ - [5, 5, 27, "Style/Documentation: Missing top-level documentation comment for `class Prism::Merge::WrapperCommentSupport`.", 2211657316], - [5, 5, 17765, "Metrics/ClassLength: Class has too many lines. [358/100]", 370100972], - [14, 7, 3072, "Metrics/AbcSize: Assignment Branch Condition size for `filtered_leading_comments_for` is too high. [<26, 58, 27> 69.06/17]", 934788024], - [14, 7, 3072, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `filtered_leading_comments_for` is too high. [24/7]", 934788024], - [14, 7, 3072, "Metrics/MethodLength: Method has too many lines. [48/10]", 934788024], - [14, 7, 3072, "Metrics/PerceivedComplexity: Perceived complexity for `filtered_leading_comments_for` is too high. [27/8]", 934788024], - [24, 121, 10, "Layout/LineLength: Line is too long. [130/120]", 366676207], - [65, 11, 68, "Style/MultilineBlockChain: Avoid multi-line chains of blocks.", 2360366291], - [74, 73, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], - [95, 7, 1446, "Metrics/AbcSize: Assignment Branch Condition size for `emit_leading_comments` is too high. [<8, 16, 13> 22.11/17]", 86315238], - [95, 7, 1446, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `emit_leading_comments` is too high. [9/7]", 86315238], - [95, 7, 1446, "Metrics/MethodLength: Method has too many lines. [31/10]", 86315238], - [95, 7, 1446, "Metrics/PerceivedComplexity: Perceived complexity for `emit_leading_comments` is too high. [11/8]", 86315238], - [95, 32, 73, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 2261515417], - [98, 9, 1234, "Metrics/BlockLength: Block has too many lines. [28/25]", 357181412], - [134, 7, 953, "Metrics/MethodLength: Method has too many lines. [19/10]", 3183807785], - [134, 35, 79, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 1350141395], - [162, 7, 1228, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `emit_comment_region` is too high. [10/7]", 2201645681], - [162, 7, 1228, "Metrics/MethodLength: Method has too many lines. [31/10]", 2201645681], - [162, 7, 1228, "Metrics/PerceivedComplexity: Perceived complexity for `emit_comment_region` is too high. [11/8]", 2201645681], - [162, 30, 67, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 191987245], - [163, 29, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], - [202, 7, 777, "Metrics/MethodLength: Method has too many lines. [18/10]", 4073303022], - [202, 30, 68, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 3851519454], - [208, 9, 8, "Style/MultilineBlockChain: Avoid multi-line chains of blocks.", 359222635], - [226, 7, 1080, "Metrics/MethodLength: Method has too many lines. [27/10]", 296167644], - [226, 42, 63, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 2615605084], - [260, 7, 689, "Metrics/AbcSize: Assignment Branch Condition size for `append_inline_comment_entries` is too high. [<7, 19, 8> 21.77/17]", 1575903523], - [260, 7, 689, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `append_inline_comment_entries` is too high. [8/7]", 1575903523], - [260, 7, 689, "Metrics/MethodLength: Method has too many lines. [16/10]", 1575903523], - [260, 7, 689, "Metrics/PerceivedComplexity: Perceived complexity for `append_inline_comment_entries` is too high. [9/8]", 1575903523], - [288, 7, 607, "Metrics/AbcSize: Assignment Branch Condition size for `line_inline_comment_entries` is too high. [<3, 18, 7> 19.54/17]", 2131701672], - [288, 7, 607, "Metrics/MethodLength: Method has too many lines. [12/10]", 2131701672], - [338, 7, 1023, "Metrics/MethodLength: Method has too many lines. [19/10]", 2409125040], - [363, 7, 854, "Metrics/AbcSize: Assignment Branch Condition size for `runtime_doc_comment_operation_for` is too high. [<4, 24, 13> 27.59/17]", 1109173425], - [363, 7, 854, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `runtime_doc_comment_operation_for` is too high. [10/7]", 1109173425], - [363, 7, 854, "Metrics/MethodLength: Method has too many lines. [11/10]", 1109173425], - [363, 7, 854, "Metrics/PerceivedComplexity: Perceived complexity for `runtime_doc_comment_operation_for` is too high. [10/8]", 1109173425], - [373, 121, 10, "Layout/LineLength: Line is too long. [130/120]", 1843406524], - [381, 7, 755, "Metrics/AbcSize: Assignment Branch Condition size for `build_runtime_leading_region` is too high. [<5, 18, 4> 19.1/17]", 3130034424], - [381, 7, 755, "Metrics/MethodLength: Method has too many lines. [14/10]", 3130034424], - [411, 7, 850, "Metrics/AbcSize: Assignment Branch Condition size for `runtime_line_numbers_for` is too high. [<6, 26, 6> 27.35/17]", 966446340] - ], - "prism-merge.gemspec:2052428369": [ - [128, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 2821357214], - [143, 121, 50, "Layout/LineLength: Line is too long. [170/120]", 3888612416], - [144, 121, 29, "Layout/LineLength: Line is too long. [149/120]", 981994949], - [151, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 4229808912] - ], - "spec/fixtures/reproducible/04_gemspec_duplication/destination.rb:971498360": [ - [25, 1, 8292, "Metrics/BlockLength: Block has too many lines. [110/25]", 1251580584], - [32, 121, 317, "Layout/LineLength: Line is too long. [437/120]", 1870252497], - [184, 121, 34, "Layout/LineLength: Line is too long. [154/120]", 4147388508], - [199, 121, 50, "Layout/LineLength: Line is too long. [170/120]", 3888612416], - [200, 121, 29, "Layout/LineLength: Line is too long. [149/120]", 981994949], - [207, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 4229808912] - ], - "spec/fixtures/reproducible/04_gemspec_duplication/template.rb:1741222365": [ - [19, 1, 4121, "Metrics/BlockLength: Block has too many lines. [71/25]", 547880907], - [26, 121, 317, "Layout/LineLength: Line is too long. [437/120]", 1870252497] - ], - "spec/fixtures/reproducible/05_gemspec_orphan_duplication/destination.rb:2573186797": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177634] - ], - "spec/fixtures/reproducible/05_gemspec_orphan_duplication/result.rb:2573186797": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177634] - ], - "spec/fixtures/reproducible/05_gemspec_orphan_duplication/template.rb:1825302441": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177634] - ], - "spec/fixtures_integration_spec.rb:3086023041": [ - [7, 1, 23038, "Metrics/BlockLength: Block has too many lines. [521/25]", 1776221706], - [66, 121, 26, "Layout/LineLength: Line is too long. [146/120]", 1448895712], - [72, 3, 1302, "Metrics/BlockLength: Block has too many lines. [30/25]", 2973641144], - [106, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5858795], - [113, 3, 1679, "Metrics/BlockLength: Block has too many lines. [38/25]", 2954972744], - [419, 3, 7512, "Metrics/BlockLength: Block has too many lines. [149/25]", 2278210376] - ], - "spec/reproducible_merge_spec.rb:2334824632": [ - [6, 1, 2420, "Metrics/BlockLength: Block has too many lines. [50/25]", 2207509489], - [39, 121, 13, "Layout/LineLength: Line is too long. [133/120]", 1416718429] - ] -} diff --git a/gems/prism-merge/.structuredmerge/kettle-jem.yml b/gems/prism-merge/.structuredmerge/kettle-jem.yml index d695380c6..c4e09505d 100644 --- a/gems/prism-merge/.structuredmerge/kettle-jem.yml +++ b/gems/prism-merge/.structuredmerge/kettle-jem.yml @@ -246,6 +246,59 @@ templates: - Gemfile - certs/pboling.pem - tmp/.gitignore + - gemfiles/modular/benchmark/r4/v0.5.gemfile + - gemfiles/modular/benchmark/vHEAD.gemfile + - gemfiles/modular/cgi/r4/v0.5.gemfile + - gemfiles/modular/cgi/vHEAD.gemfile + - gemfiles/modular/coverage.gemfile + - gemfiles/modular/coverage_local.gemfile + - gemfiles/modular/debug.gemfile + - gemfiles/modular/documentation.gemfile + - gemfiles/modular/documentation_local.gemfile + - gemfiles/modular/erb/r2.3/default.gemfile + - gemfiles/modular/erb/r2.6/v2.2.gemfile + - gemfiles/modular/erb/r2/v3.0.gemfile + - gemfiles/modular/erb/r3.1/v4.0.gemfile + - gemfiles/modular/erb/r3/v5.0.gemfile + - gemfiles/modular/erb/r4/v5.0.gemfile + - gemfiles/modular/erb/vHEAD.gemfile + - gemfiles/modular/json/truffleruby_22_3.gemfile + - gemfiles/modular/json/truffleruby_23_0.gemfile + - gemfiles/modular/json/truffleruby_23_1.gemfile + - gemfiles/modular/mutex_m/r2.4/v0.1.gemfile + - gemfiles/modular/mutex_m/r2/v0.3.gemfile + - gemfiles/modular/mutex_m/r3/v0.3.gemfile + - gemfiles/modular/mutex_m/r4/v0.3.gemfile + - gemfiles/modular/mutex_m/vHEAD.gemfile + - gemfiles/modular/optional.gemfile + - gemfiles/modular/recording/r2.3/recording.gemfile + - gemfiles/modular/recording/r2.4/recording.gemfile + - gemfiles/modular/recording/r2.5/recording.gemfile + - gemfiles/modular/recording/r3/recording.gemfile + - gemfiles/modular/recording/r4/recording.gemfile + - gemfiles/modular/recording/vHEAD.gemfile + - gemfiles/modular/rspec.gemfile + - gemfiles/modular/runtime_heads.gemfile + - gemfiles/modular/stringio/r2.4/v0.0.2.gemfile + - gemfiles/modular/stringio/r2/v3.0.gemfile + - gemfiles/modular/stringio/r3/v3.0.gemfile + - gemfiles/modular/stringio/r4/v3.0.gemfile + - gemfiles/modular/stringio/vHEAD.gemfile + - gemfiles/modular/style.gemfile + - gemfiles/modular/style_local.gemfile + - gemfiles/modular/templating.gemfile + - gemfiles/modular/templating_local.gemfile + - gemfiles/modular/webrick/r4/v1.9.gemfile + - gemfiles/modular/webrick/vHEAD.gemfile + - gemfiles/modular/x_std_libs.gemfile + - gemfiles/modular/x_std_libs/r2.3/libs.gemfile + - gemfiles/modular/x_std_libs/r2.4/libs.gemfile + - gemfiles/modular/x_std_libs/r2.6/libs.gemfile + - gemfiles/modular/x_std_libs/r2/libs.gemfile + - gemfiles/modular/x_std_libs/r3.1/libs.gemfile + - gemfiles/modular/x_std_libs/r3/libs.gemfile + - gemfiles/modular/x_std_libs/r4/libs.gemfile + - gemfiles/modular/x_std_libs/vHEAD.gemfile - source: lib/gem/version.rb target: lib/prism/merge/version.rb - source: sig/gem.rbs diff --git a/gems/prism-merge/Gemfile b/gems/prism-merge/Gemfile index 4b305f1cc..a7d94af3a 100644 --- a/gems/prism-merge/Gemfile +++ b/gems/prism-merge/Gemfile @@ -71,6 +71,46 @@ if direct_sibling_gems.any? && end end +if direct_sibling_gems.any? && + (direct_sibling_local || + ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) + direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') + direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) + begin + nomono_activation_requirements = nomono_requirements + nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) + if File.file?(nomono_lockfile) + nomono_locked_spec = Bundler::LockfileParser + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } + nomono_locked = nomono_locked_spec && + Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked + end + Kernel.send(:gem, 'nomono', *nomono_activation_requirements) + require 'nomono/bundler' + ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local + + eval_nomono_gems( + gems: direct_sibling_gems, + prefix: 'STRUCTUREDMERGE', + path_env: 'STRUCTUREDMERGE_DEV', + root: %w[src my structuredmerge] + ) + rescue LoadError + warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' + ensure + if direct_sibling_templating && !direct_sibling_local + if direct_sibling_dev_was_set + ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original + else + ENV.delete('STRUCTUREDMERGE_DEV') + end + end + end +end + # Use released TSLP with the Ruby ABI platform-gem fix. gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' diff --git a/gems/prism-merge/Gemfile.lock b/gems/prism-merge/Gemfile.lock index 6dbb0e631..4980ae0e8 100644 --- a/gems/prism-merge/Gemfile.lock +++ b/gems/prism-merge/Gemfile.lock @@ -6,196 +6,6 @@ PATH ruby-merge (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly - specs: - ast-crispr-markdown-markly (7.1.0) - ast-crispr (= 7.1.0) - markly-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism - specs: - ast-crispr-ruby-prism (7.1.0) - ast-crispr (= 7.1.0) - prism-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr - specs: - ast-crispr (7.1.0) - ast-merge (= 7.1.0) - service_actor (~> 3.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git - specs: - ast-merge-git (7.1.0) - ast-merge (= 7.1.0) - json-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge - specs: - ast-merge (7.1.0) - benchmark - token-resolver (~> 2.0, >= 2.0.4) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template - specs: - ast-template (7.1.0) - ast-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge - specs: - bash-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge - specs: - binary-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge - specs: - citrus-toml-merge (7.1.0) - toml-merge (= 7.1.0) - toml-rb (~> 4.1) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge - specs: - commonmarker-merge (7.1.0) - commonmarker (~> 2.2) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge - specs: - dotenv-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge - specs: - go-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge - specs: - json-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem - specs: - kettle-jem (7.1.0) - addressable (>= 2.8, < 3) - ast-crispr-markdown-markly (= 7.1.0) - ast-crispr-ruby-prism (= 7.1.0) - ast-merge (= 7.1.0) - bash-merge (= 7.1.0) - citrus-toml-merge (= 7.1.0) - commonmarker-merge (= 7.1.0) - dotenv-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-dev (~> 2.3, >= 2.3.5) - kettle-rb (~> 0.1, >= 0.1.4) - kramdown-merge (= 7.1.0) - markdown-merge (= 7.1.0) - markly-merge (= 7.1.0) - prism-merge (= 7.1.0) - psych-merge (= 7.1.0) - rbs (>= 3.10) - rbs-merge (= 7.1.0) - ruby-merge (= 7.1.0) - token-resolver (~> 2.0, >= 2.0.4) - toml-merge (= 7.1.0) - toml-rb (~> 4.2) - tree_haver (= 7.1.0) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge - specs: - kramdown-merge (7.1.0) - kramdown (~> 2.5) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge - specs: - markdown-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge - specs: - markly-merge (7.1.0) - markdown-merge (= 7.1.0) - markly (~> 0.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge - specs: - parslet-toml-merge (7.1.0) - toml (~> 0.3) - toml-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge - specs: - plain-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge - specs: - psych-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge - specs: - rbs-merge (7.1.0) - ast-merge (= 7.1.0) - rbs (>= 3.10) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - PATH remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge specs: @@ -204,67 +14,6 @@ PATH tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge - specs: - rust-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb - specs: - smorg-rb (7.1.0) - ast-merge (= 7.1.0) - ast-merge-git (= 7.1.0) - go-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-jem (= 7.1.0) - markly-merge (= 7.1.0) - plain-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge - specs: - toml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver - specs: - tree_haver (7.1.0) - citrus (~> 3.0) - parslet (~> 2.0) - tree_sitter_language_pack (>= 1.13.2, < 2.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge - specs: - typescript-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge - specs: - yaml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge - specs: - zip-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - GEM remote: https://gem.coop/ specs: @@ -275,16 +24,25 @@ GEM bundler (>= 1.17.3) rake (>= 10) thor (>= 0.14) + appraisal2-rubocop (1.0.0) + appraisal2 (>= 3.1.4) + rubocop (>= 1.0) + version_gem (~> 1.1, >= 1.1.14) ast (2.4.3) + ast-merge (7.1.0) + benchmark + token-resolver (~> 2.0, >= 2.0.4) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) backports (3.25.3) benchmark (0.5.0) bigdecimal (4.1.2) bundler-audit (0.9.3) bundler (>= 1.2.0) thor (~> 1.0) + cgi (0.5.2) citrus (3.0.2) cmdparse (3.0.7) - commonmarker (2.9.0-x86_64-linux) concurrent-ruby (1.3.8) date (3.5.1) debug (1.11.1) @@ -293,7 +51,6 @@ GEM delegate (0.6.1) diff-lcs (1.6.2) diffy (3.4.4) - docile (1.4.1) dry-configurable (1.4.0) dry-core (~> 1.0) zeitwerk (~> 2.6) @@ -324,7 +81,7 @@ GEM dry-logic (~> 1.4) zeitwerk (~> 2.6) emoji_regex (15.0.0) - erb (6.0.5) + erb (6.0.6) gem_bench (2.0.5) bundler (>= 1.14) version_gem (~> 1.1, >= 1.1.4) @@ -348,18 +105,14 @@ GEM kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) - kettle-drift (1.0.6) - version_gem (~> 1.1, >= 1.1.14) kettle-rb (0.1.4) - kettle-soup-cover (1.1.3) - simplecov (~> 0.22) - simplecov-cobertura (~> 3.0) - simplecov-console (~> 0.9, >= 0.9.3) - simplecov-html (~> 0.13, >= 0.13.1) - simplecov-lcov (~> 0.8) + kettle-soup-cover (3.0.4) + kettle-wash (~> 0.1, >= 0.1.0) + simplecov (>= 1.0) + simplecov-cobertura (>= 4.0) + simplecov-console (~> 0.9, >= 0.9.5) simplecov-rcov (~> 0.3, >= 0.3.7) - simplecov_json_formatter (~> 0.1, >= 0.1.4) - version_gem (~> 1.1, >= 1.1.9) + simplecov_lcov_formatter (~> 0.9, >= 0.9.0) kettle-test (2.0.11) appraisal2 (~> 3.0, >= 3.0.6) backports (~> 3.0) @@ -371,6 +124,8 @@ GEM silent_stream (~> 1.0, >= 1.0.12) timecop-rspec (~> 1.0, >= 1.0.3) turbo_tests2 (~> 3.1, >= 3.1.12) + kettle-wash (0.1.1) + version_gem (~> 1.1, >= 1.1.14) kramdown (2.5.2) rexml (>= 3.4.4) kramdown-parser-gfm (1.1.0) @@ -378,11 +133,10 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) - markly (0.16.0) mutex_m (0.3.0) nokogiri (1.19.4-x86_64-linux-gnu) racc (~> 1.4) - nomono (1.0.8) + nomono (1.0.9) openssl (4.0.2) ostruct (0.6.3) parallel (1.28.0) @@ -458,6 +212,14 @@ GEM rubocop-ast (1.50.0) parser (>= 3.3.7.2) prism (~> 1.7) + rubocop-capybara (2.23.0) + lint_roller (~> 1.1) + rubocop (~> 1.81) + rubocop-env (0.1.0) + rubocop + rubocop-factory_bot (2.28.0) + lint_roller (~> 1.1) + rubocop (~> 1.72, >= 1.72.1) rubocop-gradual (0.4.0) benchmark diff-lcs (>= 1.2.0, < 2.0) @@ -465,13 +227,26 @@ GEM parallel (~> 1.10) rainbow (>= 2.2.2, < 4.0) rubocop (~> 1.0) - rubocop-lts (24.1.0) - rubocop-ruby3_2 (>= 3.0.0, < 4) - standard-rubocop-lts (>= 2.0.2, < 3) - version_gem (>= 1.1.2, < 3) + rubocop-lts (24.2.2) + rubocop-ruby3_2 (~> 3.0, >= 3.0.1) + standard-rubocop-lts (~> 2.0, >= 2.0.3) + version_gem (~> 1.1, >= 1.1.13) + rubocop-lts-rspec (1.0.5) + rubocop (~> 1.84, >= 1.84.2) + rubocop-env (~> 0.1, >= 0.1.0) + rubocop-factory_bot (~> 2.28, >= 2.28.0) + rubocop-rspec (~> 3.9, >= 3.9.0) + rubocop-rspec-extra (~> 0.3, >= 0.3.0) + standard (~> 1.54, >= 1.54.0) + standard-rspec (~> 0.5, >= 0.5.0) + version_gem (~> 1.1, >= 1.1.13) rubocop-md (2.0.4) lint_roller (~> 1.1) rubocop (>= 1.72.1) + rubocop-minitest (0.40.0) + lint_roller (~> 1.1) + rubocop (>= 1.75.0, < 2.0) + rubocop-ast (>= 1.38.0, < 2.0) rubocop-on-rbs (2.0.0) lint_roller (~> 1.1) rbs (~> 4.0) @@ -491,6 +266,13 @@ GEM lint_roller (~> 1.1) regexp_parser (>= 2.0) rubocop (~> 1.86, >= 1.86.2) + rubocop-rspec-extra (0.3.0) + lint_roller (~> 1.1) + rubocop (>= 1.72.1, < 2.0) + rubocop-rspec_rails (2.32.0) + lint_roller (~> 1.1) + rubocop (~> 1.72, >= 1.72.1) + rubocop-rspec (~> 3.5) rubocop-ruby3_2 (3.0.7) rubocop-gradual (~> 0.3, >= 0.3.6) rubocop-md (~> 2.0, >= 2.0.4) @@ -505,28 +287,22 @@ GEM ruby-progressbar (1.13.0) ruby_engine (2.0.3) ruby_version (1.0.3) - service_actor (3.9.4) - zeitwerk (>= 1.0) silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) - simplecov (0.22.0) - docile (~> 1.1) - simplecov-html (~> 0.11) - simplecov_json_formatter (~> 0.1) - simplecov-cobertura (3.2.0) + simplecov (1.0.2) + simplecov-cobertura (4.0.0) rexml - simplecov (~> 0.19) + simplecov (~> 1.0) simplecov-console (0.9.5) ansi simplecov terminal-table - simplecov-html (0.13.2) - simplecov-lcov (0.9.0) simplecov-rcov (0.3.7) simplecov (>= 0.4.1) - simplecov_json_formatter (0.1.4) - sorbet-runtime (0.6.13342) + simplecov_lcov_formatter (0.9.0) + simplecov (>= 0.18) + sorbet-runtime (0.6.13347) standard (1.56.0) language_server-protocol (~> 3.17.0.2) lint_roller (~> 1.0) @@ -539,6 +315,12 @@ GEM standard-performance (1.9.0) lint_roller (~> 1.1) rubocop-performance (~> 1.26.0) + standard-rspec (0.5.0) + lint_roller (>= 1.0) + rubocop-capybara (~> 2.23) + rubocop-factory_bot (~> 2.27) + rubocop-rspec (~> 3.9) + rubocop-rspec_rails (~> 2.31) standard-rubocop-lts (2.0.10) standard (~> 1.54, >= 1.54.0) standard-custom (~> 1.0, >= 1.0.2) @@ -559,11 +341,11 @@ GEM token-resolver (2.0.4) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.13) - toml (0.3.0) - parslet (>= 1.8.0, < 3.0.0) - toml-rb (4.2.0) - citrus (~> 3.0, > 3.0) - racc (~> 1.7) + tree_haver (7.1.0) + citrus (~> 3.0) + parslet (~> 2.0) + tree_sitter_language_pack (>= 1.13.2, < 2.0) + version_gem (~> 1.1, >= 1.1.9) tree_sitter_language_pack (1.13.3-x86_64-linux) sorbet-runtime (~> 0.5) tsort (0.2.0) @@ -575,6 +357,7 @@ GEM unicode-emoji (~> 4.1) unicode-emoji (4.2.0) version_gem (1.1.14) + webrick (1.9.2) yaml-converter (0.2.3) hexapdf (>= 1.8, < 2) kramdown (>= 2.4, < 3) @@ -607,104 +390,70 @@ PLATFORMS DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) - ast-crispr! - ast-crispr-markdown-markly! - ast-crispr-ruby-prism! - ast-merge! - ast-merge-git! - ast-template! - bash-merge! + appraisal2-rubocop (~> 1.0, >= 1.0.0) benchmark (~> 0.5, >= 0.5.0) - binary-merge! bundler-audit (~> 0.9.3) - citrus-toml-merge! - commonmarker-merge! + cgi (~> 0.5) debug (>= 1.1) - dotenv-merge! - erb (~> 6.0, >= 6.0.4) + erb (~> 6.0, >= 6.0.6) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.0) - go-merge! irb (~> 1.17) - json-merge! kettle-dev (~> 2.0, >= 2.2.25) - kettle-drift (~> 1.0, >= 1.0.5) - kettle-jem! - kettle-soup-cover (~> 1.0, >= 1.1.3) + kettle-soup-cover (~> 3.0, >= 3.0.3) kettle-test (~> 2.0, >= 2.0.9) - kramdown (~> 2.5, >= 2.5.1) - kramdown-merge! + kramdown (~> 2.5, >= 2.5.2) kramdown-parser-gfm (~> 1.1) - markdown-merge! - markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) - parslet-toml-merge! - plain-merge! prism-merge! - psych-merge! rake (~> 13.0) rbs (>= 3.0) - rbs-merge! rdoc (~> 6.11) - reek (~> 6.5) + reek (~> 6.5, >= 6.5.0) require_bench (~> 1.0, >= 1.0.4) - rubocop-lts (~> 24.1.0) - rubocop-on-rbs (~> 2.0) + rubocop-gradual (~> 0.4, >= 0.4.0) + rubocop-lts (~> 24.2, >= 24.2.1) + rubocop-lts-rspec (~> 1.0, >= 1.0.5) + rubocop-minitest (~> 0.40, >= 0.40.0) + rubocop-on-rbs (~> 2.0, >= 2.0.0) rubocop-packaging (~> 0.6, >= 0.6.0) - rubocop-rspec (~> 3.6) - rubocop-ruby3_2 (~> 3.0.0) + rubocop-ruby3_2 (~> 3.0, >= 3.0.6) ruby-merge! ruby-progressbar (~> 1.13) - rust-merge! - smorg-rb! - standard (>= 1.50) + standard (~> 1.56, >= 1.56.0) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) - toml-merge! - tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) - typescript-merge! - yaml-converter (~> 0.1) - yaml-merge! - yard (~> 0.9, >= 0.9.44) - yard-fence (~> 0.9, >= 0.9.1) + webrick (~> 1.9) + yaml-converter (~> 0.2, >= 0.2.3) + yard (~> 0.9, >= 0.9.45) + yard-fence (~> 0.9, >= 0.9.6) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) - yard-timekeeper (~> 0.1) - yard-yaml (~> 0.1, >= 0.1.2) - zip-merge! + yard-timekeeper (~> 0.2, >= 0.2.4) + yard-yaml (~> 0.2, >= 0.2.3) CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af ansi (1.6.0) sha256=ac9ea0c0ea8d32fb4e271348e609963ac78882f34b73836c2a02b3622e666658 appraisal2 (3.2.0) sha256=ccd0b767ac4060cd7af6d16747459b6990f49c39c7b4fb1f7d1146b1e97c492f + appraisal2-rubocop (1.0.0) sha256=b71410fbb014befda5340605a605b7f6f3f012739baf0acc5b4351b592c3258d ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 - ast-crispr (7.1.0) - ast-crispr-markdown-markly (7.1.0) - ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) - ast-merge-git (7.1.0) - ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 - bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd - binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 + cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 - citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 - commonmarker (2.9.0-x86_64-linux) sha256=8cfe92970eef585a19ddf6613224b91cab64d6029834661bda801f877c9c7f43 - commonmarker-merge (7.1.0) concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 - docile (1.4.1) sha256=96159be799bfa73cdb721b840e9802126e4e03dfc26863db73647204c727f21e - dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -713,54 +462,43 @@ CHECKSUMS dry-schema (1.16.0) sha256=cd3aaeabc0f1af66ec82a29096d4c4fb92a0a58b9dae29a22b1bbceb78985727 dry-types (1.9.1) sha256=baebeecdb9f8395d6c9d227b62011279440943e3ef2468fe8ccc1ba11467f178 emoji_regex (15.0.0) sha256=a508b2c0bee561169564e0aec96085020c900520d335e5533fd8e78e59493829 - erb (6.0.5) sha256=858e63488cb796c9daba8b6e9ff4b3879c395022049be9a66a8e00980e612eac + erb (6.0.6) sha256=a9b24986700f5bf127c4f297c5403c3ca41b83b0a316c0cd09a096b56e644ae5 gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f - go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 - json-merge (7.1.0) kettle-dev (2.3.7) sha256=eb370113cd030d03cbe2d33b31c99858951017e5ad21a17e9ed89dc3770028ee - kettle-drift (1.0.6) sha256=46eda08fa4411d1f3c6682a95eef1c9df4e94611b3949f49d4c7b43c0ed356a3 - kettle-jem (7.1.0) kettle-rb (0.1.4) sha256=9cef7ce4f7021666b7222292f29051e51eaf042e8a5db11f3f4dd72f74243fc1 - kettle-soup-cover (1.1.3) sha256=a373827da22a7131d093afd32945e5b7d7a10a01ebfdded8fd2cb8230d69c8ad + kettle-soup-cover (3.0.4) kettle-test (2.0.11) sha256=c710c90f7ab79d51f9452f0c09f5f90657e7a893f63583855c164d0b1b107ab2 + kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa - kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 - markdown-merge (7.1.0) - markly (0.16.0) sha256=6f70d79e385b1efc9e171f74c81628826259039fe6c778e03c3924c71dac5511 - markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-x86_64-linux-gnu) sha256=379fae440b28915e3f19d752ce2dcf8465ed2b2fbefd2a7ca0dd497bc981a06a - nomono (1.0.8) sha256=bf4b9b426cbf216ab17b70db474f691b8ae1f1e29de8db4b0ecd405e6e7e1c80 + nomono (1.0.9) openssl (4.0.2) sha256=1037ad2868ae58df9ad917891c0c0f9815a1172f6846d4bcdd508e4c2ee747c2 ostruct (0.6.3) sha256=95a2ed4a4bd1d190784e666b47b2d3f078e4a9efda2fccf18f84ddc6538ed912 parallel (1.28.0) sha256=33e6de1484baf2524792d178b0913fc8eb94c628d6cfe45599ad4458c638c970 parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 - parslet-toml-merge (7.1.0) - plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 - psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 - rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb @@ -778,35 +516,38 @@ CHECKSUMS rspec_junit_formatter (0.6.0) sha256=40dde674e6ae4e6cc0ff560da25497677e34fefd2338cc467a8972f602b62b15 rubocop (1.88.2) sha256=8def251c90cd955feb4daa3edc0ab56893250c4ce90ef81e6c80c03f9a939bbf rubocop-ast (1.50.0) sha256=b9ca88300da0803ee222ad20cdb30494c0a784eed06fdc35d254b06d662788db + rubocop-capybara (2.23.0) sha256=f9ea1ba3a7561ee8e88cf76fc378ce517ce5327155f305ee7b5c2500e5aee357 + rubocop-env (0.1.0) sha256=5ab9a259e71822bf514c8e900a9b68cc2f74ccc87d5493efcd03213f3068e718 + rubocop-factory_bot (2.28.0) sha256=4b17fc02124444173317e131759d195b0d762844a71a29fe8139c1105d92f0cb rubocop-gradual (0.4.0) sha256=9c7e584e6fef6c2539266a193a4572c970c22f99046fd6b0305bdde6228f96ad - rubocop-lts (24.1.0) sha256=9dcad4db2da2fe2f1f77f98c917d70e7c43eded703da14cd201d4be52a9272aa + rubocop-lts (24.2.2) sha256=be6c745e1bb61daebd6af3cc3227c60f95be9f642a080773cad7df14c5f9f174 + rubocop-lts-rspec (1.0.5) sha256=439552fd27440802cc499889e013bffa28aadc41adae5d4dfff3d984a2a809b4 rubocop-md (2.0.4) sha256=0d076b6b5e99dea2ddc928c4bd702497decb9a8400da7808091e02ebcafcfb93 + rubocop-minitest (0.40.0) sha256=353c698199115f12151144cf0b5a96f69bb9d77b660cf6536df2c4250c672a9d rubocop-on-rbs (2.0.0) sha256=ce74d1b3d5daead19f4b611623656c185821dfc9aed9c7079bb1e5d7d7c464be rubocop-packaging (0.6.0) sha256=fb92bd0fb48e6f8cdb1648d2249b0cd51c2497dcc87340132d22f01edbf558a7 rubocop-performance (1.26.1) sha256=cd19b936ff196df85829d264b522fd4f98b6c89ad271fa52744a8c11b8f71834 rubocop-rake (0.7.1) sha256=3797f2b6810c3e9df7376c26d5f44f3475eda59eb1adc38e6f62ecf027cbae4d rubocop-rspec (3.10.2) sha256=0b3e2ecc592cd10ecbf0095bb58d1e357905276e069643523cc19eb7495f65e2 + rubocop-rspec-extra (0.3.0) sha256=ee4b6484d0332a0d23c4a465eeb607e41888eb3d4ed479f850b9f5212514f787 + rubocop-rspec_rails (2.32.0) sha256=4a0d641c72f6ebb957534f539d9d0a62c47abd8ce0d0aeee1ef4701e892a9100 rubocop-ruby3_2 (3.0.7) sha256=f53dd6d286fb05186214fc6ec116783e7f837030918e8931c05de773e98f8466 rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 ruby-merge (7.1.0) ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 - rust-merge (7.1.0) - service_actor (3.9.4) sha256=e63b523630b9a7e62959b2a90113b08d2565b5de9c148557b281ef847c9539ce silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 - simplecov (0.22.0) sha256=fe2622c7834ff23b98066bb0a854284b2729a569ac659f82621fc22ef36213a5 - simplecov-cobertura (3.2.0) sha256=70d702658677fcb20e5aceb6915ccf8bc62ff2ccd38b62b3ad5c9db5c0888740 + simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 + simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 - simplecov-html (0.13.2) sha256=bd0b8e54e7c2d7685927e8d6286466359b6f16b18cb0df47b508e8d73c777246 - simplecov-lcov (0.9.0) sha256=7a77a31e200a595ed4b0249493056efd0c920601f53d2ef135ca34ee796346cd simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc - simplecov_json_formatter (0.1.4) sha256=529418fbe8de1713ac2b2d612aa3daa56d316975d307244399fa4838c601b428 - smorg-rb (7.1.0) - sorbet-runtime (0.6.13342) sha256=dbeb9892597f593ed2b29e38018912787f6c4e0c4b736d8af0d6bd3c63bde3c3 + simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed + sorbet-runtime (0.6.13347) sha256=54e7221d9f4b63f58aec79f3043752a9ba7810347c6ae0d903531591cc2d5f01 standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b standard-performance (1.9.0) sha256=49483d31be448292951d80e5e67cdcb576c2502103c7b40aec6f1b6e9c88e3f2 + standard-rspec (0.5.0) sha256=64d396524a65af47f5331b423d8cdd313e0267401647bb7892489ca89dad2973 standard-rubocop-lts (2.0.10) sha256=89708a505b7d8b24d2ac399a7520fcb9e764abc2ecb4289b631b5fe0e3b76617 stone_checksums (1.0.6) sha256=c775f830513d6c6ab26e31d1a5fbecd4c4e39002663d4d9f8fa96e97990b5298 stringio (3.2.0) sha256=c37cb2e58b4ffbd33fe5cd948c05934af997b36e0b6ca6fdf43afa234cf222e1 @@ -816,19 +557,15 @@ CHECKSUMS timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.4) sha256=33b926958f504525bba3ed511ab66fbcbf8ef30390815e931436b30f27ffcad0 - toml (0.3.0) sha256=0a91d0f76a9036e84e44f95693b12f58d358c1df3ac8e3b5271f2056ecc6e4b9 - toml-merge (7.1.0) - toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 - typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 + webrick (1.9.2) sha256=beb4a15fc474defed24a3bda4ffd88a490d517c9e4e6118c3edce59e45864131 yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 - yaml-merge (7.1.0) yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd @@ -836,7 +573,6 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 - zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH diff --git a/gems/prism-merge/README.md b/gems/prism-merge/README.md index 21296ce94..f6907f5c9 100644 --- a/gems/prism-merge/README.md +++ b/gems/prism-merge/README.md @@ -73,7 +73,7 @@ File.write("merged.rb", result) | Tokens to Remember | [![Gem name][⛳️name-img]][⛳️gem-name] [![Gem namespace][⛳️namespace-img]][⛳️gem-namespace] | |-------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | Works with MRI Ruby 4 | [![Ruby current Compat][💎ruby-c-i]][🚎11-c-wf]| -| Support & Community | [![Join Me on Daily.dev's RubyFriends][✉️ruby-friends-img]][✉️ruby-friends] [![Live Chat on Discord][✉️discord-invite-img-ftb]][✉️discord-invite] [![Get help from me on Upwork][👨🏼‍🏫expsup-upwork-img]][👨🏼‍🏫expsup-upwork] [![Get help from me on Codementor][👨🏼‍🏫expsup-codementor-img]][👨🏼‍🏫expsup-codementor] | +| Support & Community | [![Join Me on Daily.dev's RubyFriends][✉️ruby-friends-img]][✉️ruby-friends] [![Get help from RubyForum][✉️ruby-forum-img]][✉️ruby-forum] [![Live Chat on Discord][✉️discord-invite-img-ftb]][✉️discord-invite] [![Get help from me on Upwork][👨🏼‍🏫expsup-upwork-img]][👨🏼‍🏫expsup-upwork] [![Get help from me on Codementor][👨🏼‍🏫expsup-codementor-img]][👨🏼‍🏫expsup-codementor] | | Source | [![Source on GitLab.com][📜src-gl-img]][📜src-gl] [![Source on CodeBerg.org][📜src-cb-img]][📜src-cb] [![Source on Github.com][📜src-gh-img]][📜src-gh] [![The best SHA: dQw4w9WgXcQ!][🧮kloc-img]][🧮kloc] | | Documentation | [![Current release on RubyDoc.info][📜docs-cr-rd-img]][🚎yard-current] [![YARD on Galtzo.com][📜docs-head-rd-img]][🚎yard-head] [![Maintainer Blog][🚂maint-blog-img]][🚂maint-blog] [![GitLab Wiki][📜gl-wiki-img]][📜gl-wiki] [![GitHub Wiki][📜gh-wiki-img]][📜gh-wiki] | | Compliance | [![License: AGPL-3.0-only OR PolyForm-Small-Business-1.0.0][📄license-img]][📄license] [![Apache license compatibility: Category X][📄license-compat-img]][📄license-compat] [![📄ilo-declaration-img]][📄ilo-declaration] [![Security Policy][🔐security-img]][🔐security] [![Contributor Covenant 2.1][🪇conduct-img]][🪇conduct] [![SemVer 2.0.0][📌semver-img]][📌semver] | @@ -1160,6 +1160,8 @@ If none of the available licenses suit your use case, please [contact us](mailto [✉️discord-invite-img-ftb]: https://img.shields.io/discord/1373797679469170758?style=for-the-badge&logo=discord [✉️ruby-friends-img]: https://img.shields.io/badge/daily.dev-%F0%9F%92%8E_Ruby_Friends-0A0A0A?style=for-the-badge&logo=dailydotdev&logoColor=white [✉️ruby-friends]: https://app.daily.dev/squads/rubyfriends +[✉️ruby-forum-img]: https://img.shields.io/badge/RubyForum-Help-CC342D?style=for-the-badge&logo=ruby&logoColor=white +[✉️ruby-forum]: https://www.rubyforum.org/c/help/8 [✇bundle-group-pattern]: https://gist.github.com/pboling/4564780 [⛳️gem-namespace]: https://github.com/structuredmerge/structuredmerge-ruby/tree/main/gems/prism-merge [⛳️namespace-img]: https://img.shields.io/badge/namespace-Prism::Merge-3C2D2D.svg?style=square&logo=ruby&logoColor=white diff --git a/gems/prism-merge/gemfiles/modular/cgi/r4/v0.5.gemfile b/gems/prism-merge/gemfiles/modular/cgi/r4/v0.5.gemfile new file mode 100644 index 000000000..17ad97260 --- /dev/null +++ b/gems/prism-merge/gemfiles/modular/cgi/r4/v0.5.gemfile @@ -0,0 +1 @@ +gem 'cgi', '~> 0.5' diff --git a/gems/prism-merge/gemfiles/modular/cgi/vHEAD.gemfile b/gems/prism-merge/gemfiles/modular/cgi/vHEAD.gemfile new file mode 100644 index 000000000..650fbf033 --- /dev/null +++ b/gems/prism-merge/gemfiles/modular/cgi/vHEAD.gemfile @@ -0,0 +1 @@ +gem 'cgi', '>= 0.5' diff --git a/gems/prism-merge/gemfiles/modular/coverage.gemfile b/gems/prism-merge/gemfiles/modular/coverage.gemfile index f96d50954..b93014b6b 100644 --- a/gems/prism-merge/gemfiles/modular/coverage.gemfile +++ b/gems/prism-merge/gemfiles/modular/coverage.gemfile @@ -7,7 +7,7 @@ if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? # Coverage (remote/released) platform :mri do - gem 'kettle-soup-cover', '~> 1.0', '>= 1.1.3', require: false + gem 'kettle-soup-cover', '~> 3.0', '>= 3.0.3', require: false end else eval_gemfile 'coverage_local.gemfile' diff --git a/gems/prism-merge/gemfiles/modular/coverage_local.gemfile b/gems/prism-merge/gemfiles/modular/coverage_local.gemfile index 520a2d791..ab0e08fd4 100644 --- a/gems/prism-merge/gemfiles/modular/coverage_local.gemfile +++ b/gems/prism-merge/gemfiles/modular/coverage_local.gemfile @@ -3,13 +3,33 @@ # Local path overrides for development. # Loaded by the associated non-local gemfile when KETTLE_DEV_DEV != "false". -require 'nomono/bundler' unless defined?(Nomono) +# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. +# Bundler records that dependency during Gemfile evaluation, but it does not +# activate that exact version before the immediate `require "nomono/bundler"`. +# If multiple compatible nomono versions are installed, RubyGems may activate +# the newest installed version while Gemfile.lock pins an older compatible one; +# Bundler then aborts with "already activated nomono X, but your Gemfile +# requires nomono Y". Prefer the locked compatible version when present, then +# activate it explicitly before requiring the Bundler DSL extension used below. +nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] +nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) +if File.file?(nomono_lockfile) + nomono_locked_spec = Bundler::LockfileParser + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } + nomono_locked = nomono_locked_spec && + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked +end +Kernel.send(:gem, 'nomono', *nomono_activation_requirements) +require 'nomono/bundler' local_gems = %w[kettle-dev kettle-test kettle-soup-cover kettle-drift] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) local_gems_to_eval = local_gems - %w[prism-merge] - declared_gems -# export KETTLE_DEV_DEV=/path/to/kettle-rb +# export KETTLE_DEV_DEV=/path/to/my platform :mri do eval_nomono_gems( gems: local_gems_to_eval, diff --git a/gems/prism-merge/gemfiles/modular/documentation.gemfile b/gems/prism-merge/gemfiles/modular/documentation.gemfile index dff5cc108..9d4535f12 100644 --- a/gems/prism-merge/gemfiles/modular/documentation.gemfile +++ b/gems/prism-merge/gemfiles/modular/documentation.gemfile @@ -7,17 +7,17 @@ # # Documentation -gem 'kramdown', '~> 2.5', '>= 2.5.1', require: false # Ruby >= 2.5 +gem 'kramdown', '~> 2.5', '>= 2.5.2', require: false # Ruby >= 2.5 gem 'kramdown-parser-gfm', '~> 1.1', require: false # Ruby >= 2.3 -gem 'yaml-converter', '~> 0.1', require: false # Ruby >= 3.2 -gem 'yard', '~> 0.9', '>= 0.9.44', require: false +gem 'yaml-converter', '~> 0.2', '>= 0.2.3', require: false # Ruby >= 3.2 +gem 'yard', '~> 0.9', '>= 0.9.45', require: false gem 'yard-junk', '~> 0.1', '>= 0.1.0', require: false # Ruby >= 3.1 gem 'yard-relative_markdown_links', '~> 0.6', require: false if ENV.fetch('GALTZO_FLOSS_DEV', 'false').casecmp('false').zero? - gem 'yard-fence', '~> 0.9', '>= 0.9.1', require: false # Ruby >= 3.2 - gem 'yard-timekeeper', '~> 0.1', require: false - gem 'yard-yaml', '~> 0.1', '>= 0.1.2', require: false + gem 'yard-fence', '~> 0.9', '>= 0.9.6', require: false # Ruby >= 3.2 + gem 'yard-timekeeper', '~> 0.2', '>= 0.2.4', require: false + gem 'yard-yaml', '~> 0.2', '>= 0.2.3', require: false else eval_gemfile 'documentation_local.gemfile' end diff --git a/gems/prism-merge/gemfiles/modular/documentation_local.gemfile b/gems/prism-merge/gemfiles/modular/documentation_local.gemfile index 4d4c2bd95..b596a588d 100644 --- a/gems/prism-merge/gemfiles/modular/documentation_local.gemfile +++ b/gems/prism-merge/gemfiles/modular/documentation_local.gemfile @@ -3,13 +3,35 @@ # Local path overrides for development. # Loaded by the associated non-local gemfile when GALTZO_FLOSS_DEV != "false". -require 'nomono/bundler' unless defined?(Nomono) +# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. +# Bundler records that dependency during Gemfile evaluation, but it does not +# activate that exact version before the immediate `require "nomono/bundler"`. +# If multiple compatible nomono versions are installed, RubyGems may activate +# the newest installed version while Gemfile.lock pins an older compatible one; +# Bundler then aborts with "already activated nomono X, but your Gemfile +# requires nomono Y". Prefer the locked compatible version when present, then +# activate it explicitly before requiring the Bundler DSL extension used below. +nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] +nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) +if File.file?(nomono_lockfile) + nomono_locked_spec = Bundler::LockfileParser + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } + nomono_locked = nomono_locked_spec && + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked +end +Kernel.send(:gem, 'nomono', *nomono_activation_requirements) +require 'nomono/bundler' local_gems = %w[yard-fence yard-timekeeper yard-yaml] +declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) +local_gems_to_eval = local_gems - %w[prism-merge] - declared_gems # export GALTZO_FLOSS_DEV=/path/to/galtzo-floss eval_nomono_gems( - gems: local_gems, + gems: local_gems_to_eval, prefix: 'GALTZO_FLOSS', path_env: 'GALTZO_FLOSS_DEV', vendored_gems_env: 'GALTZO_FLOSS_VENDORED_GEMS', diff --git a/gems/prism-merge/gemfiles/modular/erb/r3/v5.0.gemfile b/gems/prism-merge/gemfiles/modular/erb/r3/v5.0.gemfile index 0e3bf1b97..ec7ff451f 100644 --- a/gems/prism-merge/gemfiles/modular/erb/r3/v5.0.gemfile +++ b/gems/prism-merge/gemfiles/modular/erb/r3/v5.0.gemfile @@ -1 +1 @@ -gem 'erb', '~> 6.0', '>= 6.0.4' # ruby >= 3.2.0 +gem 'erb', '~> 6.0', '>= 6.0.6' # ruby >= 3.2.0 diff --git a/gems/prism-merge/gemfiles/modular/erb/r4/v5.0.gemfile b/gems/prism-merge/gemfiles/modular/erb/r4/v5.0.gemfile index 0e3bf1b97..ec7ff451f 100644 --- a/gems/prism-merge/gemfiles/modular/erb/r4/v5.0.gemfile +++ b/gems/prism-merge/gemfiles/modular/erb/r4/v5.0.gemfile @@ -1 +1 @@ -gem 'erb', '~> 6.0', '>= 6.0.4' # ruby >= 3.2.0 +gem 'erb', '~> 6.0', '>= 6.0.6' # ruby >= 3.2.0 diff --git a/gems/prism-merge/gemfiles/modular/json/truffleruby_22_3.gemfile b/gems/prism-merge/gemfiles/modular/json/truffleruby_22_3.gemfile new file mode 100644 index 000000000..9b2f8d96a --- /dev/null +++ b/gems/prism-merge/gemfiles/modular/json/truffleruby_22_3.gemfile @@ -0,0 +1,6 @@ +# frozen_string_literal: true + +if RUBY_ENGINE == 'truffleruby' && RUBY_ENGINE_VERSION.start_with?('22.3') + # TruffleRuby 22.3 ships the json default gem from its emulated MRI Ruby. + gem 'json', '= 2.5.1' +end diff --git a/gems/prism-merge/gemfiles/modular/json/truffleruby_23_0.gemfile b/gems/prism-merge/gemfiles/modular/json/truffleruby_23_0.gemfile new file mode 100644 index 000000000..d787a5ef4 --- /dev/null +++ b/gems/prism-merge/gemfiles/modular/json/truffleruby_23_0.gemfile @@ -0,0 +1,6 @@ +# frozen_string_literal: true + +if RUBY_ENGINE == 'truffleruby' && RUBY_ENGINE_VERSION.start_with?('23.0') + # TruffleRuby 23.0 ships the json default gem from its emulated MRI Ruby. + gem 'json', '= 2.6.1' +end diff --git a/gems/prism-merge/gemfiles/modular/json/truffleruby_23_1.gemfile b/gems/prism-merge/gemfiles/modular/json/truffleruby_23_1.gemfile new file mode 100644 index 000000000..d78486b0e --- /dev/null +++ b/gems/prism-merge/gemfiles/modular/json/truffleruby_23_1.gemfile @@ -0,0 +1,6 @@ +# frozen_string_literal: true + +if RUBY_ENGINE == 'truffleruby' && RUBY_ENGINE_VERSION.start_with?('23.1') + # TruffleRuby 23.1 ships the json default gem from its emulated MRI Ruby. + gem 'json', '= 2.6.3' +end diff --git a/gems/prism-merge/gemfiles/modular/optional.gemfile b/gems/prism-merge/gemfiles/modular/optional.gemfile index 3cf3a085e..9ea429538 100644 --- a/gems/prism-merge/gemfiles/modular/optional.gemfile +++ b/gems/prism-merge/gemfiles/modular/optional.gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -# To retain during prism-merge templating: +# To retain during kettle-jem templating: # kettle-jem:freeze # # ... your code # kettle-jem:unfreeze @@ -10,7 +10,6 @@ # Required for curated binstubs generated by kettle-jem install gem 'rbs', '>= 3.0', require: false # ruby >= 3.1 -gem 'stone_checksums', '~> 1.0', '>= 1.0.3', require: false # ruby >= 2.2 # Required for kettle-pre-release # URL parsing with Unicode support (falls back to URI if not available) diff --git a/gems/prism-merge/gemfiles/modular/runtime_heads.gemfile b/gems/prism-merge/gemfiles/modular/runtime_heads.gemfile index 1cafc66f0..ebf17c529 100644 --- a/gems/prism-merge/gemfiles/modular/runtime_heads.gemfile +++ b/gems/prism-merge/gemfiles/modular/runtime_heads.gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -# To retain during prism-merge templating: +# To retain during kettle-jem templating: # kettle-jem:freeze # # ... your code # kettle-jem:unfreeze @@ -8,7 +8,4 @@ # Test against HEAD of runtime dependencies so we can proactively file bugs -# Ruby >= 2.2 -gem 'version_gem', github: 'ruby-oauth/version_gem', branch: 'main' - eval_gemfile('x_std_libs/vHEAD.gemfile') diff --git a/gems/prism-merge/gemfiles/modular/style.gemfile b/gems/prism-merge/gemfiles/modular/style.gemfile index 7ed8d8323..4dbcc02c0 100644 --- a/gems/prism-merge/gemfiles/modular/style.gemfile +++ b/gems/prism-merge/gemfiles/modular/style.gemfile @@ -1,27 +1,30 @@ # frozen_string_literal: true -# To retain during prism-merge templating: +# To retain during kettle-jem templating: # kettle-jem:freeze # # ... your code # kettle-jem:unfreeze # -# We run rubocop on the latest version of Ruby, -# but in support of the oldest supported version of Ruby +# Style tasks run on the latest Ruby; RuboCop-LTS selects the compatibility +# rules for the configured Ruby floor independently from task dependency floors. -gem 'reek', '~> 6.5' +gem 'reek', '~> 6.5', '>= 6.5.0' platform :mri do - gem 'rubocop-on-rbs', '~> 2.0' # ruby >= 3.2.0 + gem 'appraisal2-rubocop', '~> 1.0', '>= 1.0.0', require: false + gem 'rubocop-gradual', '~> 0.4', '>= 0.4.0' + gem 'rubocop-minitest', '~> 0.40', '>= 0.40.0' + gem 'rubocop-on-rbs', '~> 2.0', '>= 2.0.0' # ruby >= 3.2.0 # gem "rubocop", "~> 1.73", ">= 1.73.2" # constrained by standard gem 'rubocop-packaging', '~> 0.6', '>= 0.6.0' - gem 'standard', '>= 1.50' + gem 'standard', '~> 1.56', '>= 1.56.0' if ENV.fetch('RUBOCOP_LTS_LOCAL', 'false').casecmp('false').zero? - gem 'rubocop-lts', '~> 24.1.0' - # "rubocop-lts-rspec" can't add here until other gems are updated. - gem 'rubocop-rspec', '~> 3.6' - gem 'rubocop-ruby3_2', '~> 3.0.0' + declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) + gem 'rubocop-lts', '~> 24.2', '>= 24.2.1' unless declared_gems.include?('rubocop-lts') + gem 'rubocop-lts-rspec', '~> 1.0', '>= 1.0.5' unless declared_gems.include?('rubocop-lts-rspec') + gem 'rubocop-ruby3_2', '~> 3.0', '>= 3.0.6' unless declared_gems.include?('rubocop-ruby3_2') else eval_gemfile('style_local.gemfile') end diff --git a/gems/prism-merge/gemfiles/modular/style_local.gemfile b/gems/prism-merge/gemfiles/modular/style_local.gemfile index ce75bbe21..e8e9d2ad4 100644 --- a/gems/prism-merge/gemfiles/modular/style_local.gemfile +++ b/gems/prism-merge/gemfiles/modular/style_local.gemfile @@ -1,19 +1,41 @@ # frozen_string_literal: true -# We run rubocop on the latest version of Ruby, -# but in support of the oldest supported version of Ruby +# Style tasks run on the latest Ruby; RuboCop-LTS selects the compatibility +# rules for the configured Ruby floor independently from task dependency floors. # Local path overrides for development. # Loaded by the associated non-local gemfile when RUBOCOP_LTS_LOCAL != "false". -require 'nomono/bundler' unless defined?(Nomono) +# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. +# Bundler records that dependency during Gemfile evaluation, but it does not +# activate that exact version before the immediate `require "nomono/bundler"`. +# If multiple compatible nomono versions are installed, RubyGems may activate +# the newest installed version while Gemfile.lock pins an older compatible one; +# Bundler then aborts with "already activated nomono X, but your Gemfile +# requires nomono Y". Prefer the locked compatible version when present, then +# activate it explicitly before requiring the Bundler DSL extension used below. +nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] +nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) +if File.file?(nomono_lockfile) + nomono_locked_spec = Bundler::LockfileParser + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } + nomono_locked = nomono_locked_spec && + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked +end +Kernel.send(:gem, 'nomono', *nomono_activation_requirements) +require 'nomono/bundler' local_gems = %w[rubocop-lts rubocop-lts-rspec rubocop-ruby3_2 standard-rubocop-lts] +declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) +local_gems_to_eval = local_gems - %w[prism-merge] - declared_gems # export VENDORED_GEMS=rubocop-lts,rubocop-lts-rspec,rubocop-ruby3_2,standard-rubocop-lts platform :mri do eval_nomono_gems( - gems: local_gems, + gems: local_gems_to_eval, prefix: 'RUBOCOP_LTS', path_env: 'RUBOCOP_LTS_LOCAL', vendored_gems_env: 'VENDORED_GEMS', diff --git a/gems/prism-merge/gemfiles/modular/templating.gemfile b/gems/prism-merge/gemfiles/modular/templating.gemfile index 2ddc9433f..a672de184 100644 --- a/gems/prism-merge/gemfiles/modular/templating.gemfile +++ b/gems/prism-merge/gemfiles/modular/templating.gemfile @@ -12,13 +12,13 @@ end if kettle_remote # Template/plugin checks for released installs. - gem 'kettle-drift', '~> 1.0', '>= 1.0.5', require: false + gem 'kettle-drift', '~> 1.0', '>= 1.0.6', require: false end # Set STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local development with path-based dependencies. # When false (default / CI), released kettle-jem brings merge gems and parser dependencies. # Local path overrides bring the same dependencies from sibling gemspecs. # -# Set KETTLE_DEV_DEV=/path/to/kettle-rb for local development with Kettle plugin gems. +# Set KETTLE_DEV_DEV=/path/to/my for local development with Kettle plugin gems. # When false (default / CI), released Kettle plugin gems are used. eval_gemfile 'templating_local.gemfile' unless structuredmerge_remote && kettle_remote diff --git a/gems/prism-merge/gemfiles/modular/templating_local.gemfile b/gems/prism-merge/gemfiles/modular/templating_local.gemfile index 3baae4e42..e6d5d15bc 100644 --- a/gems/prism-merge/gemfiles/modular/templating_local.gemfile +++ b/gems/prism-merge/gemfiles/modular/templating_local.gemfile @@ -4,7 +4,27 @@ # Loaded by the associated non-local gemfile when STRUCTUREDMERGE_DEV or KETTLE_DEV_DEV # is not "false". -require 'nomono/bundler' unless defined?(Nomono) +# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. +# Bundler records that dependency during Gemfile evaluation, but it does not +# activate that exact version before the immediate `require "nomono/bundler"`. +# If multiple compatible nomono versions are installed, RubyGems may activate +# the newest installed version while Gemfile.lock pins an older compatible one; +# Bundler then aborts with "already activated nomono X, but your Gemfile +# requires nomono Y". Prefer the locked compatible version when present, then +# activate it explicitly before requiring the Bundler DSL extension used below. +nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] +nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) +if File.file?(nomono_lockfile) + nomono_locked_spec = Bundler::LockfileParser + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } + nomono_locked = nomono_locked_spec && + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked +end +Kernel.send(:gem, 'nomono', *nomono_activation_requirements) +require 'nomono/bundler' structuredmerge_local_gems = %w[ tree_haver diff --git a/gems/prism-merge/gemfiles/modular/webrick/r4/v1.9.gemfile b/gems/prism-merge/gemfiles/modular/webrick/r4/v1.9.gemfile new file mode 100644 index 000000000..b1329ba84 --- /dev/null +++ b/gems/prism-merge/gemfiles/modular/webrick/r4/v1.9.gemfile @@ -0,0 +1 @@ +gem 'webrick', '~> 1.9' diff --git a/gems/prism-merge/gemfiles/modular/webrick/vHEAD.gemfile b/gems/prism-merge/gemfiles/modular/webrick/vHEAD.gemfile new file mode 100644 index 000000000..c7e6f81a1 --- /dev/null +++ b/gems/prism-merge/gemfiles/modular/webrick/vHEAD.gemfile @@ -0,0 +1 @@ +gem 'webrick', '>= 1.9' diff --git a/gems/prism-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile b/gems/prism-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile index bd4e884df..e2f6501eb 100644 --- a/gems/prism-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile +++ b/gems/prism-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile @@ -2,3 +2,5 @@ eval_gemfile '../../erb/r4/v5.0.gemfile' eval_gemfile '../../mutex_m/r4/v0.3.gemfile' eval_gemfile '../../stringio/r4/v3.0.gemfile' eval_gemfile '../../benchmark/r4/v0.5.gemfile' +eval_gemfile '../../cgi/r4/v0.5.gemfile' +eval_gemfile '../../webrick/r4/v1.9.gemfile' diff --git a/gems/prism-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile b/gems/prism-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile index 91f383c11..ab75cccf1 100644 --- a/gems/prism-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile +++ b/gems/prism-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile @@ -2,3 +2,5 @@ eval_gemfile '../erb/vHEAD.gemfile' eval_gemfile '../mutex_m/vHEAD.gemfile' eval_gemfile '../stringio/vHEAD.gemfile' eval_gemfile '../benchmark/vHEAD.gemfile' +eval_gemfile '../cgi/vHEAD.gemfile' +eval_gemfile '../webrick/vHEAD.gemfile' diff --git a/gems/prism-merge/lib/prism/merge/version.rb b/gems/prism-merge/lib/prism/merge/version.rb index 29398c390..c5d5bca42 100644 --- a/gems/prism-merge/lib/prism/merge/version.rb +++ b/gems/prism-merge/lib/prism/merge/version.rb @@ -3,7 +3,7 @@ module Prism module Merge module Version - VERSION = '7.1.0' + VERSION = "7.1.0" end VERSION = Version::VERSION # Traditional Constant Location end diff --git a/gems/tree_haver/Gemfile.lock b/gems/tree_haver/Gemfile.lock index 2c4b3dedd..90221f993 100644 --- a/gems/tree_haver/Gemfile.lock +++ b/gems/tree_haver/Gemfile.lock @@ -7,6 +7,264 @@ PATH tree_sitter_language_pack (>= 1.13.2, < 2.0) version_gem (~> 1.1, >= 1.1.9) +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly + specs: + ast-crispr-markdown-markly (7.1.0) + ast-crispr (= 7.1.0) + markly-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism + specs: + ast-crispr-ruby-prism (7.1.0) + ast-crispr (= 7.1.0) + prism-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr + specs: + ast-crispr (7.1.0) + ast-merge (= 7.1.0) + service_actor (~> 3.9) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git + specs: + ast-merge-git (7.1.0) + ast-merge (= 7.1.0) + json-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge + specs: + ast-merge (7.1.0) + benchmark + token-resolver (~> 2.0, >= 2.0.4) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template + specs: + ast-template (7.1.0) + ast-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge + specs: + bash-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge + specs: + binary-merge (7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge + specs: + citrus-toml-merge (7.1.0) + toml-merge (= 7.1.0) + toml-rb (~> 4.1) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge + specs: + commonmarker-merge (7.1.0) + commonmarker (~> 2.2) + markdown-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge + specs: + dotenv-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge + specs: + go-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge + specs: + json-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem + specs: + kettle-jem (7.1.0) + addressable (>= 2.8, < 3) + ast-crispr-markdown-markly (= 7.1.0) + ast-crispr-ruby-prism (= 7.1.0) + ast-merge (= 7.1.0) + bash-merge (= 7.1.0) + citrus-toml-merge (= 7.1.0) + commonmarker-merge (= 7.1.0) + dotenv-merge (= 7.1.0) + json-merge (= 7.1.0) + kettle-dev (~> 2.3, >= 2.3.5) + kettle-rb (~> 0.1, >= 0.1.4) + kramdown-merge (= 7.1.0) + markdown-merge (= 7.1.0) + markly-merge (= 7.1.0) + prism-merge (= 7.1.0) + psych-merge (= 7.1.0) + rbs (>= 3.10) + rbs-merge (= 7.1.0) + ruby-merge (= 7.1.0) + token-resolver (~> 2.0, >= 2.0.4) + toml-merge (= 7.1.0) + toml-rb (~> 4.2) + tree_haver (= 7.1.0) + yaml-merge (= 7.1.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge + specs: + kramdown-merge (7.1.0) + kramdown (~> 2.5) + markdown-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge + specs: + markdown-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge + specs: + markly-merge (7.1.0) + markdown-merge (= 7.1.0) + markly (~> 0.9) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge + specs: + parslet-toml-merge (7.1.0) + toml (~> 0.3) + toml-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge + specs: + plain-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge + specs: + prism-merge (7.1.0) + prism (~> 1.6) + ruby-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge + specs: + psych-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + yaml-merge (= 7.1.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge + specs: + rbs-merge (7.1.0) + ast-merge (= 7.1.0) + rbs (>= 3.10) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge + specs: + ruby-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge + specs: + rust-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb + specs: + smorg-rb (7.1.0) + ast-merge (= 7.1.0) + ast-merge-git (= 7.1.0) + go-merge (= 7.1.0) + json-merge (= 7.1.0) + kettle-jem (= 7.1.0) + markly-merge (= 7.1.0) + plain-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge + specs: + toml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge + specs: + typescript-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge + specs: + yaml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge + specs: + zip-merge (7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + GEM remote: https://gem.coop/ specs: @@ -31,6 +289,8 @@ GEM cgi (0.5.2) citrus (3.0.2) cmdparse (3.0.7) + commonmarker (2.9.0-x86_64-linux) + commonmarker (2.9.0-x86_64-linux-musl) concurrent-ruby (1.3.8) date (3.5.1) debug (1.11.1) @@ -93,6 +353,8 @@ GEM kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) + kettle-drift (1.0.6) + version_gem (~> 1.1, >= 1.1.14) kettle-rb (0.1.5) kettle-soup-cover (3.0.4) kettle-wash (~> 0.1, >= 0.1.0) @@ -121,6 +383,7 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) + markly (0.16.0) mutex_m (0.3.0) nokogiri (1.19.4-x86_64-linux-gnu) racc (~> 1.4) @@ -277,6 +540,8 @@ GEM ruby-progressbar (1.13.0) ruby_engine (2.0.3) ruby_version (1.0.3) + service_actor (3.9.4) + zeitwerk (>= 1.0) silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) @@ -328,6 +593,9 @@ GEM delegate (~> 0.1) rspec (~> 3.0) timecop (>= 0.7, < 1) + token-resolver (2.0.5) + parslet (~> 2.0) + version_gem (~> 1.1, >= 1.1.14) toml (0.3.0) parslet (>= 1.8.0, < 3.0.0) toml-rb (4.2.0) @@ -379,23 +647,46 @@ DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) appraisal2-rubocop (~> 1.0, >= 1.0.0) + ast-crispr! + ast-crispr-markdown-markly! + ast-crispr-ruby-prism! + ast-merge! + ast-merge-git! + ast-template! + bash-merge! benchmark (~> 0.5, >= 0.5.0) + binary-merge! bundler-audit (~> 0.9.3) cgi (~> 0.5) + citrus-toml-merge! + commonmarker-merge! debug (>= 1.1) + dotenv-merge! erb (~> 6.0, >= 6.0.6) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.0) + go-merge! irb (~> 1.17) + json-merge! kettle-dev (~> 2.0, >= 2.2.25) + kettle-drift (~> 1.0, >= 1.0.6) + kettle-jem! kettle-soup-cover (~> 3.0, >= 3.0.3) kettle-test (~> 2.0, >= 2.0.9) kramdown (~> 2.5, >= 2.5.2) + kramdown-merge! kramdown-parser-gfm (~> 1.1) + markdown-merge! + markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) + parslet-toml-merge! + plain-merge! + prism-merge! + psych-merge! rake (~> 13.0) rbs (>= 3.0) + rbs-merge! rdoc (~> 6.11) reek (~> 6.5, >= 6.5.0) require_bench (~> 1.0, >= 1.0.4) @@ -406,21 +697,28 @@ DEPENDENCIES rubocop-on-rbs (~> 2.0, >= 2.0.0) rubocop-packaging (~> 0.6, >= 0.6.0) rubocop-ruby3_2 (~> 3.0, >= 3.0.6) + ruby-merge! ruby-progressbar (~> 1.13) + rust-merge! + smorg-rb! standard (~> 1.56, >= 1.56.0) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) toml (~> 0.3) + toml-merge! toml-rb (~> 4.1) tree_haver! + typescript-merge! webrick (~> 1.9) yaml-converter (~> 0.2, >= 0.2.3) + yaml-merge! yard (~> 0.9, >= 0.9.45) yard-fence (~> 0.9, >= 0.9.6) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) yard-timekeeper (~> 0.2, >= 0.2.4) yard-yaml (~> 0.2, >= 0.2.3) + zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af @@ -428,19 +726,32 @@ CHECKSUMS appraisal2 (3.2.0) sha256=ccd0b767ac4060cd7af6d16747459b6990f49c39c7b4fb1f7d1146b1e97c492f appraisal2-rubocop (1.0.0) sha256=b71410fbb014befda5340605a605b7f6f3f012739baf0acc5b4351b592c3258d ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 + ast-crispr (7.1.0) + ast-crispr-markdown-markly (7.1.0) + ast-crispr-ruby-prism (7.1.0) + ast-merge (7.1.0) + ast-merge-git (7.1.0) + ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 + bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd + binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 + citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 + commonmarker (2.9.0-x86_64-linux) sha256=8cfe92970eef585a19ddf6613224b91cab64d6029834661bda801f877c9c7f43 + commonmarker (2.9.0-x86_64-linux-musl) sha256=293921398b839f79ceaf55010e061357e34f053822c3b003cd0be6686176335e + commonmarker-merge (7.1.0) concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 + dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -453,20 +764,28 @@ CHECKSUMS gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f + go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 + json-merge (7.1.0) kettle-dev (2.3.8) sha256=9d716ff21c660a730cb4e8d41e2e2f0630a28167a354b6e2924e242102aef72c + kettle-drift (1.0.6) sha256=46eda08fa4411d1f3c6682a95eef1c9df4e94611b3949f49d4c7b43c0ed356a3 + kettle-jem (7.1.0) kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f kettle-soup-cover (3.0.4) kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa + kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 + markdown-merge (7.1.0) + markly (0.16.0) sha256=6f70d79e385b1efc9e171f74c81628826259039fe6c778e03c3924c71dac5511 + markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-x86_64-linux-gnu) sha256=379fae440b28915e3f19d752ce2dcf8465ed2b2fbefd2a7ca0dd497bc981a06a nokogiri (1.19.4-x86_64-linux-musl) sha256=17dfb7c1fa194ae02fbf7c51a7afc8d278045ab3fdacfd86f91d02d7b274470b @@ -477,15 +796,20 @@ CHECKSUMS parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 + parslet-toml-merge (7.1.0) + plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 + prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 + psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 + rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb @@ -520,15 +844,19 @@ CHECKSUMS rubocop-rspec_rails (2.32.0) sha256=4a0d641c72f6ebb957534f539d9d0a62c47abd8ce0d0aeee1ef4701e892a9100 rubocop-ruby3_2 (3.0.7) sha256=f53dd6d286fb05186214fc6ec116783e7f837030918e8931c05de773e98f8466 rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 + ruby-merge (7.1.0) ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 + rust-merge (7.1.0) + service_actor (3.9.4) sha256=e63b523630b9a7e62959b2a90113b08d2565b5de9c148557b281ef847c9539ce silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed + smorg-rb (7.1.0) sorbet-runtime (0.6.13347) sha256=54e7221d9f4b63f58aec79f3043752a9ba7810347c6ae0d903531591cc2d5f01 standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b @@ -542,17 +870,21 @@ CHECKSUMS thor (1.5.0) sha256=e3a9e55fe857e44859ce104a84675ab6e8cd59c650a49106a05f55f136425e73 timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 + token-resolver (2.0.5) sha256=b852f924287ffb58a440856e862b056c8ad97e74b4b2526cee43e0771f40c25c toml (0.3.0) sha256=0a91d0f76a9036e84e44f95693b12f58d358c1df3ac8e3b5271f2056ecc6e4b9 + toml-merge (7.1.0) toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 + typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 webrick (1.9.2) sha256=beb4a15fc474defed24a3bda4ffd88a490d517c9e4e6118c3edce59e45864131 yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 + yaml-merge (7.1.0) yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd @@ -560,6 +892,7 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 + zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH From 283efa4a67efa4131cd001328bf53070535746e4 Mon Sep 17 00:00:00 2001 From: "Peter H. Boling" Date: Tue, 21 Jul 2026 13:51:07 -0600 Subject: [PATCH 118/188] =?UTF-8?q?=F0=9F=8E=A8=20Template=20bootstrap=20b?= =?UTF-8?q?y=20kettle-jem=20v7.1.0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gems/ast-crispr-ruby-prism/Gemfile.lock | 329 +++++++- gems/markdown-merge/.rubocop_gradual.lock | 626 ---------------- gems/markdown-merge/Gemfile | 70 +- gems/markdown-merge/Gemfile.lock | 343 +-------- gems/markdown-merge/Rakefile | 18 +- .../modular/benchmark/r4/v0.5.gemfile | 2 +- .../gemfiles/modular/benchmark/vHEAD.gemfile | 2 +- .../gemfiles/modular/cgi/r4/v0.5.gemfile | 2 +- .../gemfiles/modular/cgi/vHEAD.gemfile | 2 +- .../gemfiles/modular/coverage.gemfile | 6 +- .../gemfiles/modular/coverage_local.gemfile | 42 +- .../gemfiles/modular/debug.gemfile | 4 +- .../gemfiles/modular/documentation.gemfile | 24 +- .../modular/documentation_local.gemfile | 30 +- .../gemfiles/modular/erb/r2/v3.0.gemfile | 2 +- .../gemfiles/modular/erb/r3/v5.0.gemfile | 2 +- .../gemfiles/modular/erb/r4/v5.0.gemfile | 2 +- .../gemfiles/modular/erb/vHEAD.gemfile | 2 +- .../modular/json/truffleruby_22_3.gemfile | 4 +- .../modular/json/truffleruby_23_0.gemfile | 4 +- .../modular/json/truffleruby_23_1.gemfile | 4 +- .../gemfiles/modular/mutex_m/r2/v0.3.gemfile | 2 +- .../gemfiles/modular/mutex_m/r3/v0.3.gemfile | 2 +- .../gemfiles/modular/mutex_m/r4/v0.3.gemfile | 2 +- .../gemfiles/modular/mutex_m/vHEAD.gemfile | 2 +- .../gemfiles/modular/optional.gemfile | 4 +- .../gemfiles/modular/rspec.gemfile | 8 +- .../gemfiles/modular/runtime_heads.gemfile | 2 +- .../gemfiles/modular/stringio/r2/v3.0.gemfile | 2 +- .../gemfiles/modular/stringio/r3/v3.0.gemfile | 2 +- .../gemfiles/modular/stringio/r4/v3.0.gemfile | 2 +- .../gemfiles/modular/stringio/vHEAD.gemfile | 2 +- .../gemfiles/modular/style.gemfile | 24 +- .../gemfiles/modular/style_local.gemfile | 32 +- .../gemfiles/modular/templating.gemfile | 12 +- .../gemfiles/modular/templating_local.gemfile | 44 +- .../gemfiles/modular/webrick/r4/v1.9.gemfile | 2 +- .../gemfiles/modular/webrick/vHEAD.gemfile | 2 +- .../gemfiles/modular/x_std_libs.gemfile | 14 +- .../modular/x_std_libs/r2/libs.gemfile | 6 +- .../modular/x_std_libs/r3/libs.gemfile | 6 +- .../modular/x_std_libs/r4/libs.gemfile | 12 +- .../gemfiles/modular/x_std_libs/vHEAD.gemfile | 12 +- gems/markly-merge/Gemfile.lock | 376 +++++++++- gems/prism-merge/.rubocop_gradual.lock | 707 ++++++++++++++++++ gems/prism-merge/Gemfile.lock | 20 +- gems/prism-merge/lib/prism/merge/version.rb | 2 +- 47 files changed, 1587 insertions(+), 1234 deletions(-) delete mode 100644 gems/markdown-merge/.rubocop_gradual.lock create mode 100644 gems/prism-merge/.rubocop_gradual.lock diff --git a/gems/ast-crispr-ruby-prism/Gemfile.lock b/gems/ast-crispr-ruby-prism/Gemfile.lock index f61c2cbde..14dba8d00 100644 --- a/gems/ast-crispr-ruby-prism/Gemfile.lock +++ b/gems/ast-crispr-ruby-prism/Gemfile.lock @@ -7,7 +7,15 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly + specs: + ast-crispr-markdown-markly (7.1.0) + ast-crispr (= 7.1.0) + markly-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr specs: ast-crispr (7.1.0) ast-merge (= 7.1.0) @@ -15,13 +23,248 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/prism-merge + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git + specs: + ast-merge-git (7.1.0) + ast-merge (= 7.1.0) + json-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge + specs: + ast-merge (7.1.0) + benchmark + token-resolver (~> 2.0, >= 2.0.4) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template + specs: + ast-template (7.1.0) + ast-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge + specs: + bash-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge + specs: + binary-merge (7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge + specs: + citrus-toml-merge (7.1.0) + toml-merge (= 7.1.0) + toml-rb (~> 4.1) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge + specs: + commonmarker-merge (7.1.0) + commonmarker (~> 2.2) + markdown-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge + specs: + dotenv-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge + specs: + go-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge + specs: + json-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem + specs: + kettle-jem (7.1.0) + addressable (>= 2.8, < 3) + ast-crispr-markdown-markly (= 7.1.0) + ast-crispr-ruby-prism (= 7.1.0) + ast-merge (= 7.1.0) + bash-merge (= 7.1.0) + citrus-toml-merge (= 7.1.0) + commonmarker-merge (= 7.1.0) + dotenv-merge (= 7.1.0) + json-merge (= 7.1.0) + kettle-dev (~> 2.3, >= 2.3.5) + kettle-rb (~> 0.1, >= 0.1.4) + kramdown-merge (= 7.1.0) + markdown-merge (= 7.1.0) + markly-merge (= 7.1.0) + prism-merge (= 7.1.0) + psych-merge (= 7.1.0) + rbs (>= 3.10) + rbs-merge (= 7.1.0) + ruby-merge (= 7.1.0) + token-resolver (~> 2.0, >= 2.0.4) + toml-merge (= 7.1.0) + toml-rb (~> 4.2) + tree_haver (= 7.1.0) + yaml-merge (= 7.1.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge + specs: + kramdown-merge (7.1.0) + kramdown (~> 2.5) + markdown-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge + specs: + markdown-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge + specs: + markly-merge (7.1.0) + markdown-merge (= 7.1.0) + markly (~> 0.9) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge + specs: + parslet-toml-merge (7.1.0) + toml (~> 0.3) + toml-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge + specs: + plain-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge specs: prism-merge (7.1.0) prism (~> 1.6) ruby-merge (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge + specs: + psych-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + yaml-merge (= 7.1.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge + specs: + rbs-merge (7.1.0) + ast-merge (= 7.1.0) + rbs (>= 3.10) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge + specs: + ruby-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge + specs: + rust-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb + specs: + smorg-rb (7.1.0) + ast-merge (= 7.1.0) + ast-merge-git (= 7.1.0) + go-merge (= 7.1.0) + json-merge (= 7.1.0) + kettle-jem (= 7.1.0) + markly-merge (= 7.1.0) + plain-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge + specs: + toml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver + specs: + tree_haver (7.1.0) + citrus (~> 3.0) + parslet (~> 2.0) + tree_sitter_language_pack (>= 1.13.2, < 2.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge + specs: + typescript-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge + specs: + yaml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge + specs: + zip-merge (7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + GEM remote: https://gem.coop/ specs: @@ -37,11 +280,6 @@ GEM rubocop (>= 1.0) version_gem (~> 1.1, >= 1.1.14) ast (2.4.3) - ast-merge (7.1.0) - benchmark - token-resolver (~> 2.0, >= 2.0.4) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) backports (3.25.3) benchmark (0.5.0) bigdecimal (4.1.2) @@ -51,6 +289,7 @@ GEM cgi (0.5.2) citrus (3.0.2) cmdparse (3.0.7) + commonmarker (2.9.0-x86_64-linux) concurrent-ruby (1.3.8) date (3.5.1) debug (1.11.1) @@ -113,6 +352,8 @@ GEM kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) + kettle-drift (1.0.6) + version_gem (~> 1.1, >= 1.1.14) kettle-rb (0.1.5) kettle-soup-cover (3.0.4) kettle-wash (~> 0.1, >= 0.1.0) @@ -141,6 +382,7 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) + markly (0.16.0) mutex_m (0.3.0) nokogiri (1.19.4-x86_64-linux-gnu) racc (~> 1.4) @@ -292,10 +534,6 @@ GEM lint_roller (~> 1.1) rubocop (~> 1.72, >= 1.72.1) rubocop-ast (>= 1.44.0, < 2.0) - ruby-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) ruby-progressbar (1.13.0) ruby_engine (2.0.3) ruby_version (1.0.3) @@ -355,11 +593,11 @@ GEM token-resolver (2.0.5) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.14) - tree_haver (7.1.0) - citrus (~> 3.0) - parslet (~> 2.0) - tree_sitter_language_pack (>= 1.13.2, < 2.0) - version_gem (~> 1.1, >= 1.1.9) + toml (0.3.0) + parslet (>= 1.8.0, < 3.0.0) + toml-rb (4.2.0) + citrus (~> 3.0, > 3.0) + racc (~> 1.7) tree_sitter_language_pack (1.13.3-x86_64-linux) sorbet-runtime (~> 0.5) tsort (0.2.0) @@ -405,25 +643,45 @@ DEPENDENCIES appraisal2 (~> 3.0, >= 3.0.6) appraisal2-rubocop (~> 1.0, >= 1.0.0) ast-crispr! + ast-crispr-markdown-markly! ast-crispr-ruby-prism! + ast-merge! + ast-merge-git! + ast-template! + bash-merge! benchmark (~> 0.5, >= 0.5.0) + binary-merge! bundler-audit (~> 0.9.3) cgi (~> 0.5) + citrus-toml-merge! + commonmarker-merge! debug (>= 1.1) + dotenv-merge! erb (~> 6.0, >= 6.0.6) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.0) + go-merge! irb (~> 1.17) + json-merge! kettle-dev (~> 2.0, >= 2.2.25) + kettle-drift (~> 1.0, >= 1.0.6) + kettle-jem! kettle-soup-cover (~> 3.0, >= 3.0.3) kettle-test (~> 2.0, >= 2.0.9) kramdown (~> 2.5, >= 2.5.2) + kramdown-merge! kramdown-parser-gfm (~> 1.1) + markdown-merge! + markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) + parslet-toml-merge! + plain-merge! prism-merge! + psych-merge! rake (~> 13.0) rbs (>= 3.0) + rbs-merge! rdoc (~> 6.11) reek (~> 6.5, >= 6.5.0) require_bench (~> 1.0, >= 1.0.4) @@ -434,19 +692,27 @@ DEPENDENCIES rubocop-on-rbs (~> 2.0, >= 2.0.0) rubocop-packaging (~> 0.6, >= 0.6.0) rubocop-ruby3_2 (~> 3.0, >= 3.0.6) + ruby-merge! ruby-progressbar (~> 1.13) + rust-merge! + smorg-rb! standard (~> 1.56, >= 1.56.0) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) + toml-merge! + tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) + typescript-merge! webrick (~> 1.9) yaml-converter (~> 0.2, >= 0.2.3) + yaml-merge! yard (~> 0.9, >= 0.9.45) yard-fence (~> 0.9, >= 0.9.6) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) yard-timekeeper (~> 0.2, >= 0.2.4) yard-yaml (~> 0.2, >= 0.2.3) + zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af @@ -455,21 +721,30 @@ CHECKSUMS appraisal2-rubocop (1.0.0) sha256=b71410fbb014befda5340605a605b7f6f3f012739baf0acc5b4351b592c3258d ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 ast-crispr (7.1.0) + ast-crispr-markdown-markly (7.1.0) ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) + ast-merge-git (7.1.0) + ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 + bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd + binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 + citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 + commonmarker (2.9.0-x86_64-linux) sha256=8cfe92970eef585a19ddf6613224b91cab64d6029834661bda801f877c9c7f43 + commonmarker-merge (7.1.0) concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 + dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -482,20 +757,28 @@ CHECKSUMS gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f + go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 + json-merge (7.1.0) kettle-dev (2.3.8) sha256=9d716ff21c660a730cb4e8d41e2e2f0630a28167a354b6e2924e242102aef72c + kettle-drift (1.0.6) sha256=46eda08fa4411d1f3c6682a95eef1c9df4e94611b3949f49d4c7b43c0ed356a3 + kettle-jem (7.1.0) kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f kettle-soup-cover (3.0.4) kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa + kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 + markdown-merge (7.1.0) + markly (0.16.0) sha256=6f70d79e385b1efc9e171f74c81628826259039fe6c778e03c3924c71dac5511 + markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-x86_64-linux-gnu) sha256=379fae440b28915e3f19d752ce2dcf8465ed2b2fbefd2a7ca0dd497bc981a06a nomono (1.0.9) @@ -505,16 +788,20 @@ CHECKSUMS parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 + parslet-toml-merge (7.1.0) + plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 + psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 + rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb @@ -553,6 +840,7 @@ CHECKSUMS ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 + rust-merge (7.1.0) service_actor (3.9.4) sha256=e63b523630b9a7e62959b2a90113b08d2565b5de9c148557b281ef847c9539ce silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 @@ -560,6 +848,7 @@ CHECKSUMS simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed + smorg-rb (7.1.0) sorbet-runtime (0.6.13347) sha256=54e7221d9f4b63f58aec79f3043752a9ba7810347c6ae0d903531591cc2d5f01 standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b @@ -573,16 +862,21 @@ CHECKSUMS thor (1.5.0) sha256=e3a9e55fe857e44859ce104a84675ab6e8cd59c650a49106a05f55f136425e73 timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 - token-resolver (2.0.5) + token-resolver (2.0.5) sha256=b852f924287ffb58a440856e862b056c8ad97e74b4b2526cee43e0771f40c25c + toml (0.3.0) sha256=0a91d0f76a9036e84e44f95693b12f58d358c1df3ac8e3b5271f2056ecc6e4b9 + toml-merge (7.1.0) + toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 + typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 webrick (1.9.2) sha256=beb4a15fc474defed24a3bda4ffd88a490d517c9e4e6118c3edce59e45864131 yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 + yaml-merge (7.1.0) yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd @@ -590,6 +884,7 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 + zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH diff --git a/gems/markdown-merge/.rubocop_gradual.lock b/gems/markdown-merge/.rubocop_gradual.lock deleted file mode 100644 index a9d21a76a..000000000 --- a/gems/markdown-merge/.rubocop_gradual.lock +++ /dev/null @@ -1,626 +0,0 @@ -{ - ".simplecov:862493710": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "Rakefile:1018150957": [ - [18, 121, 17, "Layout/LineLength: Line is too long. [137/120]", 174264873], - [79, 3, 1023, "Metrics/BlockLength: Block has too many lines. [32/25]", 54868638], - [163, 121, 22, "Layout/LineLength: Line is too long. [142/120]", 1367093088], - [166, 121, 18, "Layout/LineLength: Line is too long. [138/120]", 3881946477] - ], - "gemfiles/modular/benchmark/r4/v0.5.gemfile:3644720371": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/benchmark/vHEAD.gemfile:2838879269": [ - [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/erb/r2/v3.0.gemfile:1688285565": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] - ], - "gemfiles/modular/erb/r3/v5.0.gemfile:2150258305": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] - ], - "gemfiles/modular/erb/r4/v5.0.gemfile:2150258305": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] - ], - "gemfiles/modular/erb/vHEAD.gemfile:981929959": [ - [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/mutex_m/r2/v0.3.gemfile:4055275004": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/mutex_m/r3/v0.3.gemfile:4055275004": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/mutex_m/r4/v0.3.gemfile:4055275004": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/mutex_m/vHEAD.gemfile:556854763": [ - [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/rspec.gemfile:2263543889": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] - ], - "gemfiles/modular/stringio/r2/v3.0.gemfile:821604304": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/stringio/r3/v3.0.gemfile:821604304": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/stringio/r4/v3.0.gemfile:821604304": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/stringio/vHEAD.gemfile:1045839691": [ - [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/x_std_libs.gemfile:2324400122": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/x_std_libs/r2/libs.gemfile:36276542": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] - ], - "gemfiles/modular/x_std_libs/r3/libs.gemfile:4030570297": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] - ], - "gemfiles/modular/x_std_libs/r4/libs.gemfile:909736663": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] - ], - "gemfiles/modular/x_std_libs/vHEAD.gemfile:907917303": [ - [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] - ], - "lib/markdown-merge.rb:1671676898": [ - [1, 1, 0, "Naming/FileName: The name of this source file (`markdown-merge.rb`) should use snake_case.", 5381] - ], - "lib/markdown/merge.rb:4220853366": [ - [11, 3, 12, "Style/Documentation: Missing top-level documentation comment for `module Markdown::Merge`.", 2866359175], - [11, 3, 24210, "Metrics/ModuleLength: Module has too many lines. [579/100]", 4268495043], - [23, 5, 16, "Style/Documentation: Missing top-level documentation comment for `class Markdown::Merge::ParseError`.", 362242086], - [120, 5, 1014, "Metrics/MethodLength: Method has too many lines. [24/10]", 650805533], - [150, 5, 678, "Metrics/AbcSize: Assignment Branch Condition size for `match_markdown_owners` is too high. [<10, 23, 8> 26.32/17]", 2124140148], - [150, 5, 678, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `match_markdown_owners` is too high. [9/7]", 2124140148], - [150, 5, 678, "Metrics/PerceivedComplexity: Perceived complexity for `match_markdown_owners` is too high. [9/8]", 2124140148], - [163, 5, 1188, "Metrics/AbcSize: Assignment Branch Condition size for `merge_markdown` is too high. [<10, 25, 8> 28.09/17]", 3592129796], - [163, 5, 1188, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `merge_markdown` is too high. [9/7]", 3592129796], - [163, 5, 1188, "Metrics/MethodLength: Method has too many lines. [23/10]", 3592129796], - [163, 5, 1188, "Metrics/PerceivedComplexity: Perceived complexity for `merge_markdown` is too high. [9/8]", 3592129796], - [192, 5, 513, "Metrics/MethodLength: Method has too many lines. [13/10]", 912081106], - [210, 5, 747, "Metrics/MethodLength: Method has too many lines. [16/10]", 3172863125], - [241, 5, 1513, "Metrics/AbcSize: Assignment Branch Condition size for `apply_markdown_delegated_child_outputs` is too high. [<16, 37, 9> 41.3/17]", 3320736661], - [241, 5, 1513, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `apply_markdown_delegated_child_outputs` is too high. [10/7]", 3320736661], - [241, 5, 1513, "Metrics/MethodLength: Method has too many lines. [30/10]", 3320736661], - [241, 5, 1513, "Metrics/PerceivedComplexity: Perceived complexity for `apply_markdown_delegated_child_outputs` is too high. [10/8]", 3320736661], - [279, 5, 1058, "Metrics/MethodLength: Method has too many lines. [23/10]", 2000305522], - [306, 5, 1103, "Metrics/MethodLength: Method has too many lines. [23/10]", 2615729942], - [306, 52, 144, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 3050457682], - [334, 5, 817, "Metrics/MethodLength: Method has too many lines. [13/10]", 322304706], - [339, 121, 74, "Layout/LineLength: Line is too long. [194/120]", 2378183959], - [352, 5, 805, "Metrics/MethodLength: Method has too many lines. [13/10]", 935244360], - [357, 121, 66, "Layout/LineLength: Line is too long. [186/120]", 2974266470], - [370, 5, 722, "Metrics/MethodLength: Method has too many lines. [12/10]", 1758487766], - [375, 121, 17, "Layout/LineLength: Line is too long. [137/120]", 3013228499], - [387, 5, 730, "Metrics/MethodLength: Method has too many lines. [12/10]", 3297037131], - [392, 121, 17, "Layout/LineLength: Line is too long. [137/120]", 3013228499], - [418, 5, 1584, "Metrics/AbcSize: Assignment Branch Condition size for `collect_markdown_owners` is too high. [<21, 32, 13> 40.42/17]", 572024212], - [418, 5, 1584, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `collect_markdown_owners` is too high. [11/7]", 572024212], - [418, 5, 1584, "Metrics/MethodLength: Method has too many lines. [45/10]", 572024212], - [418, 5, 1584, "Metrics/PerceivedComplexity: Perceived complexity for `collect_markdown_owners` is too high. [11/8]", 572024212], - [472, 5, 1147, "Metrics/AbcSize: Assignment Branch Condition size for `markdown_owner_start_indices` is too high. [<21, 22, 11> 32.34/17]", 12516264], - [472, 5, 1147, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `markdown_owner_start_indices` is too high. [9/7]", 12516264], - [472, 5, 1147, "Metrics/MethodLength: Method has too many lines. [33/10]", 12516264], - [472, 5, 1147, "Metrics/PerceivedComplexity: Perceived complexity for `markdown_owner_start_indices` is too high. [9/8]", 12516264], - [513, 5, 602, "Metrics/AbcSize: Assignment Branch Condition size for `collect_markdown_sections` is too high. [<9, 20, 6> 22.74/17]", 1946206422], - [513, 5, 602, "Metrics/MethodLength: Method has too many lines. [14/10]", 1946206422], - [521, 7, 11, "Style/MultilineBlockChain: Avoid multi-line chains of blocks.", 848344986], - [532, 5, 1097, "Metrics/AbcSize: Assignment Branch Condition size for `markdown_fence_ranges` is too high. [<19, 21, 11> 30.38/17]", 2035260313], - [532, 5, 1097, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `markdown_fence_ranges` is too high. [8/7]", 2035260313], - [532, 5, 1097, "Metrics/MethodLength: Method has too many lines. [31/10]", 2035260313], - [548, 13, 227, "Metrics/BlockNesting: Avoid more than 3 levels of block nesting.", 1054958538], - [570, 5, 323, "Metrics/MethodLength: Method has too many lines. [14/10]", 2041170985], - [606, 5, 549, "Metrics/MethodLength: Method has too many lines. [12/10]", 2513777426] - ], - "lib/markdown/merge/backend_support.rb:1910609966": [ - [6, 5, 7153, "Metrics/ModuleLength: Module has too many lines. [161/100]", 606467501], - [18, 7, 524, "Metrics/MethodLength: Method has too many lines. [13/10]", 2550700841], - [34, 7, 913, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `configure_markdown_only_language_class!` is too high. [9/7]", 2175633707], - [34, 7, 913, "Metrics/MethodLength: Method has too many lines. [14/10]", 2175633707], - [34, 7, 913, "Metrics/PerceivedComplexity: Perceived complexity for `configure_markdown_only_language_class!` is too high. [10/8]", 2175633707], - [37, 11, 658, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `from_library` is too high. [9/7]", 353826273], - [37, 11, 658, "Metrics/PerceivedComplexity: Perceived complexity for `from_library` is too high. [10/8]", 353826273], - [44, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1312231069], - [54, 7, 1263, "Metrics/AbcSize: Assignment Branch Condition size for `configure_node_link_and_navigation!` is too high. [<3, 28, 3> 28.32/17]", 122101535], - [54, 7, 1263, "Metrics/MethodLength: Method has too many lines. [20/10]", 122101535], - [82, 7, 1148, "Metrics/MethodLength: Method has too many lines. [18/10]", 1393059075], - [108, 7, 976, "Metrics/MethodLength: Method has too many lines. [24/10]", 2694447150], - [142, 7, 618, "Metrics/MethodLength: Method has too many lines. [11/10]", 2027069469], - [160, 7, 888, "Metrics/MethodLength: Method has too many lines. [21/10]", 3721642530] - ], - "lib/markdown/merge/cleanse/block_spacing.rb:2917446564": [ - [32, 7, 7186, "Metrics/ClassLength: Class has too many lines. [138/100]", 1732896955], - [132, 9, 465, "Metrics/AbcSize: Assignment Branch Condition size for `fix` is too high. [<6, 16, 5> 17.8/17]", 341373851], - [150, 9, 1964, "Metrics/AbcSize: Assignment Branch Condition size for `analyze` is too high. [<9, 25, 16> 31.02/17]", 2558819309], - [150, 9, 1964, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `analyze` is too high. [14/7]", 2558819309], - [150, 9, 1964, "Metrics/MethodLength: Method has too many lines. [23/10]", 2558819309], - [150, 9, 1964, "Metrics/PerceivedComplexity: Perceived complexity for `analyze` is too high. [14/8]", 2558819309], - [160, 25, 7, "Style/NumericPredicate: Use `idx.positive?` instead of `idx > 0`.", 1825176542], - [192, 40, 20, "Style/NumericPredicate: Use `html_block_depth.positive?` instead of `html_block_depth > 0`.", 3208734130] - ], - "lib/markdown/merge/cleanse/code_fence_spacing.rb:1353147449": [ - [161, 9, 1524, "Metrics/AbcSize: Assignment Branch Condition size for `code_blocks` is too high. [<18, 20, 12> 29.46/17]", 2467942971], - [161, 9, 1524, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `code_blocks` is too high. [12/7]", 2467942971], - [161, 9, 1524, "Metrics/MethodLength: Method has too many lines. [35/10]", 2467942971], - [161, 9, 1524, "Metrics/PerceivedComplexity: Perceived complexity for `code_blocks` is too high. [12/8]", 2467942971], - [169, 11, 1293, "Metrics/BlockLength: Block has too many lines. [27/25]", 3238939023], - [249, 9, 884, "Metrics/AbcSize: Assignment Branch Condition size for `parse_fence_line` is too high. [<7, 15, 6> 17.61/17]", 1033947369], - [249, 9, 884, "Metrics/MethodLength: Method has too many lines. [19/10]", 1033947369] - ], - "lib/markdown/merge/cleanse/condensed_link_refs.rb:3659937794": [ - [85, 7, 12174, "Metrics/ClassLength: Class has too many lines. [115/100]", 3309007721], - [200, 9, 874, "Metrics/AbcSize: Assignment Branch Condition size for `definitions` is too high. [<6, 14, 10> 18.22/17]", 1976258109], - [200, 9, 874, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `definitions` is too high. [9/7]", 1976258109], - [200, 9, 874, "Metrics/MethodLength: Method has too many lines. [13/10]", 1976258109], - [200, 9, 874, "Metrics/PerceivedComplexity: Perceived complexity for `definitions` is too high. [9/8]", 1976258109], - [213, 43, 17, "Style/NumericPredicate: Use `first_bracket.positive?` instead of `first_bracket > 0`.", 1095960710], - [273, 13, 30, "Naming/PredicatePrefix: Rename `has_content_before_definition?` to `content_before_definition?`.", 213744570], - [298, 9, 997, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `parse_line` is too high. [9/7]", 2139717575], - [298, 9, 997, "Metrics/MethodLength: Method has too many lines. [13/10]", 2139717575], - [298, 9, 997, "Metrics/PerceivedComplexity: Perceived complexity for `parse_line` is too high. [9/8]", 2139717575], - [352, 9, 1214, "Metrics/AbcSize: Assignment Branch Condition size for `expand_line` is too high. [<10, 20, 17> 28.09/17]", 149412459], - [352, 9, 1214, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `expand_line` is too high. [14/7]", 149412459], - [352, 9, 1214, "Metrics/MethodLength: Method has too many lines. [21/10]", 149412459], - [352, 9, 1214, "Metrics/PerceivedComplexity: Perceived complexity for `expand_line` is too high. [15/8]", 149412459], - [358, 37, 17, "Style/NumericPredicate: Use `first_bracket.positive?` instead of `first_bracket > 0`.", 1095960710] - ], - "lib/markdown/merge/cleanse/templating_corruption.rb:3945009912": [ - [59, 9, 384, "Metrics/AbcSize: Assignment Branch Condition size for `append_issues` is too high. [<0, 17, 2> 17.12/17]", 2550677275] - ], - "lib/markdown/merge/code_block_merger.rb:1362562532": [ - [32, 5, 27618, "Metrics/ClassLength: Class has too many lines. [554/100]", 1891552237], - [120, 7, 543, "Metrics/MethodLength: Method has too many lines. [11/10]", 625040368], - [120, 28, 92, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 3691835500], - [135, 7, 666, "Metrics/MethodLength: Method has too many lines. [13/10]", 4153783419], - [156, 7, 2796, "Metrics/AbcSize: Assignment Branch Condition size for `merge_code_blocks_with_runtime` is too high. [<5, 52, 11> 53.39/17]", 4194925058], - [156, 7, 2796, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `merge_code_blocks_with_runtime` is too high. [10/7]", 4194925058], - [156, 7, 2796, "Metrics/MethodLength: Method has too many lines. [63/10]", 4194925058], - [156, 7, 2796, "Metrics/PerceivedComplexity: Perceived complexity for `merge_code_blocks_with_runtime` is too high. [12/8]", 4194925058], - [156, 41, 125, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 1827509670], - [227, 7, 1778, "Metrics/AbcSize: Assignment Branch Condition size for `build_runtime_operation` is too high. [<3, 24, 4> 24.52/17]", 3746845105], - [227, 7, 1778, "Metrics/MethodLength: Method has too many lines. [31/10]", 3746845105], - [227, 34, 86, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 3153149164], - [239, 39, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], - [290, 7, 528, "Metrics/MethodLength: Method has too many lines. [14/10]", 3045714289], - [307, 7, 2407, "Metrics/AbcSize: Assignment Branch Condition size for `merge_runtime_surface` is too high. [<1, 50, 7> 50.5/17]", 3818534251], - [307, 7, 2407, "Metrics/MethodLength: Method has too many lines. [53/10]", 3818534251], - [365, 7, 2502, "Metrics/AbcSize: Assignment Branch Condition size for `perform_code_block_merge` is too high. [<8, 34, 16> 38.42/17]", 3120245149], - [365, 7, 2502, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `perform_code_block_merge` is too high. [14/7]", 3120245149], - [365, 7, 2502, "Metrics/MethodLength: Method has too many lines. [57/10]", 3120245149], - [365, 7, 2502, "Metrics/PerceivedComplexity: Perceived complexity for `perform_code_block_merge` is too high. [16/8]", 3120245149], - [365, 35, 83, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 2137984385], - [435, 7, 1289, "Metrics/MethodLength: Method has too many lines. [33/10]", 3304634912], - [435, 43, 154, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [8/5]", 2516842130], - [473, 7, 755, "Metrics/MethodLength: Method has too many lines. [15/10]", 2207072637], - [473, 35, 127, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [7/5]", 2610889879], - [492, 38, 167, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [8/5]", 372116680], - [492, 121, 3, "Layout/LineLength: Line is too long. [123/120]", 193417996], - [506, 37, 166, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [8/5]", 321759336], - [506, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5861061], - [547, 19, 20, "Style/StringConcatenation: Prefer string interpolation to string concatenation.", 3860798338], - [574, 9, 109, "Lint/RescueException: Avoid rescuing the `Exception` class. Perhaps you meant to rescue `StandardError`?", 2421726137], - [575, 21, 50, "Style/ClassEqualityComparison: Use `instance_of?(::RSpec::Mocks::MockExpectationError)` instead of comparing classes.", 952914844], - [592, 9, 797, "Metrics/MethodLength: Method has too many lines. [18/10]", 4001935536], - [622, 9, 800, "Metrics/MethodLength: Method has too many lines. [18/10]", 2519636656], - [652, 9, 798, "Metrics/MethodLength: Method has too many lines. [18/10]", 2048436912], - [680, 9, 1160, "Metrics/MethodLength: Method has too many lines. [26/10]", 45677001], - [718, 9, 798, "Metrics/MethodLength: Method has too many lines. [18/10]", 3475080240] - ], - "lib/markdown/merge/comment_tracker.rb:167569374": [ - [19, 7, 374, "Metrics/MethodLength: Method has too many lines. [11/10]", 3280949001] - ], - "lib/markdown/merge/conflict_resolver.rb:686298490": [ - [29, 5, 6207, "Metrics/ClassLength: Class has too many lines. [122/100]", 3761260950], - [57, 7, 1217, "Metrics/MethodLength: Method has too many lines. [32/10]", 3372247297], - [57, 55, 14, "Lint/UnusedMethodArgument: Unused method argument - `template_index`.", 1809801172], - [57, 72, 10, "Lint/UnusedMethodArgument: Unused method argument - `dest_index`.", 2703999490], - [112, 7, 1811, "Metrics/AbcSize: Assignment Branch Condition size for `unresolved_resolution` is too high. [<6, 22, 5> 23.35/17]", 391291522], - [112, 7, 1811, "Metrics/MethodLength: Method has too many lines. [39/10]", 391291522], - [161, 7, 605, "Metrics/MethodLength: Method has too many lines. [12/10]", 577293020] - ], - "lib/markdown/merge/file_aligner.rb:841305081": [ - [27, 5, 19046, "Metrics/ClassLength: Class has too many lines. [364/100]", 3915220059], - [57, 7, 1853, "Metrics/AbcSize: Assignment Branch Condition size for `apply_match_refiner!` is too high. [<13, 31, 14> 36.41/17]", 3500652553], - [57, 7, 1853, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `apply_match_refiner!` is too high. [15/7]", 3500652553], - [57, 7, 1853, "Metrics/MethodLength: Method has too many lines. [35/10]", 3500652553], - [57, 7, 1853, "Metrics/PerceivedComplexity: Perceived complexity for `apply_match_refiner!` is too high. [15/8]", 3500652553], - [112, 7, 312, "Metrics/MethodLength: Method has too many lines. [11/10]", 2670750985], - [132, 9, 46, "Lint/HashCompareByIdentity: Use `Hash#compare_by_identity` instead of using `object_id` for keys.", 4265307642], - [133, 11, 78, "Lint/HashCompareByIdentity: Use `Hash#compare_by_identity` instead of using `object_id` for keys.", 1464832319], - [139, 7, 644, "Metrics/AbcSize: Assignment Branch Condition size for `build_heading_owner_paths` is too high. [<8, 20, 8> 22.98/17]", 2892981198], - [139, 7, 644, "Metrics/MethodLength: Method has too many lines. [13/10]", 2892981198], - [176, 7, 1056, "Metrics/AbcSize: Assignment Branch Condition size for `adjacent_section_hijack_repair_compatible?` is too high. [<4, 25, 8> 26.55/17]", 2068902935], - [176, 7, 1056, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `adjacent_section_hijack_repair_compatible?` is too high. [8/7]", 2068902935], - [176, 7, 1056, "Metrics/MethodLength: Method has too many lines. [11/10]", 2068902935], - [204, 7, 685, "Metrics/MethodLength: Method has too many lines. [12/10]", 3293058437], - [221, 7, 762, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `next_same_owner_match_for_template_only_entry` is too high. [8/7]", 681984620], - [250, 7, 829, "Metrics/MethodLength: Method has too many lines. [15/10]", 3104261185], - [309, 7, 759, "Metrics/MethodLength: Method has too many lines. [11/10]", 4043392433], - [342, 7, 540, "Metrics/AbcSize: Assignment Branch Condition size for `synthetic_section_label_paragraph?` is too high. [<3, 15, 11> 18.84/17]", 569218077], - [342, 7, 540, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `synthetic_section_label_paragraph?` is too high. [9/7]", 569218077], - [342, 7, 540, "Metrics/PerceivedComplexity: Perceived complexity for `synthetic_section_label_paragraph?` is too high. [9/8]", 569218077], - [347, 38, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], - [385, 47, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], - [385, 85, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], - [429, 7, 792, "Metrics/AbcSize: Assignment Branch Condition size for `neighboring_heading_signatures` is too high. [<7, 17, 8> 20.05/17]", 653610323], - [429, 7, 792, "Metrics/MethodLength: Method has too many lines. [14/10]", 653610323], - [466, 7, 879, "Metrics/AbcSize: Assignment Branch Condition size for `first_list_item_anchor` is too high. [<6, 22, 9> 24.52/17]", 1144304252], - [466, 7, 879, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `first_list_item_anchor` is too high. [9/7]", 1144304252], - [466, 7, 879, "Metrics/MethodLength: Method has too many lines. [21/10]", 1144304252], - [466, 7, 879, "Metrics/PerceivedComplexity: Perceived complexity for `first_list_item_anchor` is too high. [10/8]", 1144304252] - ], - "lib/markdown/merge/file_analysis.rb:4222490806": [ - [41, 5, 21729, "Metrics/ClassLength: Class has too many lines. [414/100]", 3545476722], - [185, 7, 2960, "Metrics/AbcSize: Assignment Branch Condition size for `compute_parser_signature` is too high. [<13, 36, 18> 42.3/17]", 1002271909], - [185, 7, 2960, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `compute_parser_signature` is too high. [17/7]", 1002271909], - [185, 7, 2960, "Metrics/MethodLength: Method has too many lines. [42/10]", 1002271909], - [185, 7, 2960, "Metrics/PerceivedComplexity: Perceived complexity for `compute_parser_signature` is too high. [11/8]", 1002271909], - [292, 7, 640, "Metrics/AbcSize: Assignment Branch Condition size for `heading_section_owners` is too high. [<5, 16, 3> 17.03/17]", 2368833202], - [292, 7, 640, "Metrics/MethodLength: Method has too many lines. [14/10]", 2368833202], - [311, 7, 763, "Metrics/AbcSize: Assignment Branch Condition size for `link_definition_owners` is too high. [<2, 19, 7> 20.35/17]", 2205544068], - [311, 7, 763, "Metrics/MethodLength: Method has too many lines. [16/10]", 2205544068], - [348, 7, 1577, "Metrics/AbcSize: Assignment Branch Condition size for `table_row_owners` is too high. [<16, 43, 17> 48.93/17]", 363370243], - [348, 7, 1577, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `table_row_owners` is too high. [16/7]", 363370243], - [348, 7, 1577, "Metrics/MethodLength: Method has too many lines. [34/10]", 363370243], - [348, 7, 1577, "Metrics/PerceivedComplexity: Perceived complexity for `table_row_owners` is too high. [16/8]", 363370243], - [408, 7, 689, "Metrics/MethodLength: Method has too many lines. [14/10]", 590050144], - [448, 7, 546, "Metrics/MethodLength: Method has too many lines. [18/10]", 1600631533], - [471, 7, 653, "Metrics/MethodLength: Method has too many lines. [15/10]", 4205564731], - [492, 7, 897, "Metrics/AbcSize: Assignment Branch Condition size for `inline_link_reference_at` is too high. [<6, 17, 11> 21.12/17]", 1855615733], - [492, 7, 897, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `inline_link_reference_at` is too high. [8/7]", 1855615733], - [492, 7, 897, "Metrics/MethodLength: Method has too many lines. [19/10]", 1855615733], - [517, 33, 83, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [7/5]", 2884863618], - [530, 7, 348, "Metrics/MethodLength: Method has too many lines. [13/10]", 3731533636], - [559, 7, 777, "Metrics/MethodLength: Method has too many lines. [14/10]", 1287754637], - [597, 7, 558, "Metrics/MethodLength: Method has too many lines. [15/10]", 3417342515] - ], - "lib/markdown/merge/file_analysis_base.rb:678024820": [ - [37, 5, 26494, "Metrics/ClassLength: Class has too many lines. [405/100]", 2769422452], - [60, 7, 1360, "Metrics/MethodLength: Method has too many lines. [18/10]", 90913983], - [261, 7, 3539, "Metrics/AbcSize: Assignment Branch Condition size for `compute_parser_signature` is too high. [<16, 43, 19> 49.66/17]", 3466910865], - [261, 7, 3539, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `compute_parser_signature` is too high. [18/7]", 3466910865], - [261, 7, 3539, "Metrics/MethodLength: Method has too many lines. [45/10]", 3466910865], - [261, 7, 3539, "Metrics/PerceivedComplexity: Perceived complexity for `compute_parser_signature` is too high. [11/8]", 3466910865], - [467, 7, 1153, "Metrics/AbcSize: Assignment Branch Condition size for `collect_top_level_nodes_with_gaps` is too high. [<10, 16, 7> 20.12/17]", 2190890907], - [467, 7, 1153, "Metrics/MethodLength: Method has too many lines. [18/10]", 2190890907], - [524, 7, 944, "Metrics/AbcSize: Assignment Branch Condition size for `integrate_gap_nodes` is too high. [<10, 14, 9> 19.42/17]", 2618792164], - [524, 7, 944, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `integrate_gap_nodes` is too high. [9/7]", 2618792164], - [524, 7, 944, "Metrics/MethodLength: Method has too many lines. [17/10]", 2618792164], - [524, 7, 944, "Metrics/PerceivedComplexity: Perceived complexity for `integrate_gap_nodes` is too high. [9/8]", 2618792164], - [536, 50, 7, "Style/NumericPredicate: Use `idx.positive?` instead of `idx > 0`.", 1825176542], - [565, 7, 2225, "Metrics/AbcSize: Assignment Branch Condition size for `find_freeze_markers` is too high. [<16, 30, 15> 37.16/17]", 263815919], - [565, 7, 2225, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `find_freeze_markers` is too high. [16/7]", 263815919], - [565, 7, 2225, "Metrics/MethodLength: Method has too many lines. [39/10]", 263815919], - [565, 7, 2225, "Metrics/PerceivedComplexity: Perceived complexity for `find_freeze_markers` is too high. [16/8]", 263815919], - [588, 15, 101, "Metrics/BlockNesting: Avoid more than 3 levels of block nesting.", 2762675417], - [611, 23, 26, "Metrics/BlockNesting: Avoid more than 3 levels of block nesting.", 2775329597], - [630, 7, 708, "Metrics/MethodLength: Method has too many lines. [19/10]", 1535336850], - [663, 7, 859, "Metrics/MethodLength: Method has too many lines. [19/10]", 1633852183], - [706, 7, 595, "Metrics/MethodLength: Method has too many lines. [14/10]", 2922601775], - [730, 7, 1145, "Metrics/AbcSize: Assignment Branch Condition size for `integrate_nodes_with_freeze_blocks` is too high. [<12, 17, 16> 26.25/17]", 2481642790], - [730, 7, 1145, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `integrate_nodes_with_freeze_blocks` is too high. [13/7]", 2481642790], - [730, 7, 1145, "Metrics/MethodLength: Method has too many lines. [22/10]", 2481642790], - [730, 7, 1145, "Metrics/PerceivedComplexity: Perceived complexity for `integrate_nodes_with_freeze_blocks` is too high. [13/8]", 2481642790] - ], - "lib/markdown/merge/freeze_node.rb:2861044075": [ - [39, 21, 86, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [7/5]", 4263110221] - ], - "lib/markdown/merge/gap_line_node.rb:2230943204": [ - [40, 7, 461, "Metrics/MethodLength: Method has too many lines. [11/10]", 1038026861], - [75, 7, 1087, "Metrics/MethodLength: Method has too many lines. [17/10]", 690589617], - [75, 7, 1087, "Metrics/PerceivedComplexity: Perceived complexity for `signature` is too high. [10/8]", 690589617], - [76, 27, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765] - ], - "lib/markdown/merge/link_definition_node.rb:526538026": [ - [54, 7, 413, "Metrics/MethodLength: Method has too many lines. [11/10]", 449561622] - ], - "lib/markdown/merge/link_parser.rb:1096919687": [ - [30, 5, 12509, "Metrics/ClassLength: Class has too many lines. [179/100]", 1758727291], - [168, 7, 459, "Metrics/MethodLength: Method has too many lines. [11/10]", 518494532], - [239, 7, 945, "Metrics/AbcSize: Assignment Branch Condition size for `build_link_tree` is too high. [<12, 18, 13> 25.24/17]", 3590515429], - [239, 7, 945, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `build_link_tree` is too high. [10/7]", 3590515429], - [239, 7, 945, "Metrics/MethodLength: Method has too many lines. [19/10]", 3590515429], - [239, 7, 945, "Metrics/PerceivedComplexity: Perceived complexity for `build_link_tree` is too high. [10/8]", 3590515429], - [297, 7, 738, "Metrics/AbcSize: Assignment Branch Condition size for `find_constructs` is too high. [<9, 9, 15> 19.67/17]", 1944426624], - [297, 7, 738, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `find_constructs` is too high. [9/7]", 1944426624], - [297, 7, 738, "Metrics/MethodLength: Method has too many lines. [20/10]", 1944426624], - [297, 7, 738, "Metrics/PerceivedComplexity: Perceived complexity for `find_constructs` is too high. [10/8]", 1944426624], - [308, 31, 7, "Style/NumericPredicate: Use `idx.positive?` instead of `idx > 0`.", 1825176542], - [326, 7, 1492, "Metrics/AbcSize: Assignment Branch Condition size for `try_parse_construct_at` is too high. [<7, 26, 13> 29.9/17]", 751157862], - [326, 7, 1492, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `try_parse_construct_at` is too high. [9/7]", 751157862], - [326, 7, 1492, "Metrics/MethodLength: Method has too many lines. [32/10]", 751157862], - [326, 7, 1492, "Metrics/PerceivedComplexity: Perceived complexity for `try_parse_construct_at` is too high. [10/8]", 751157862], - [371, 7, 332, "Metrics/MethodLength: Method has too many lines. [13/10]", 766454795], - [381, 27, 10, "Style/NumericPredicate: Use `depth.zero?` instead of `depth == 0`.", 3245914040], - [389, 7, 679, "Metrics/AbcSize: Assignment Branch Condition size for `find_paren_end` is too high. [<12, 5, 12> 17.69/17]", 3435642705], - [389, 7, 679, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `find_paren_end` is too high. [10/7]", 3435642705], - [389, 7, 679, "Metrics/MethodLength: Method has too many lines. [24/10]", 3435642705], - [389, 7, 679, "Metrics/PerceivedComplexity: Perceived complexity for `find_paren_end` is too high. [10/8]", 3435642705], - [410, 29, 10, "Style/NumericPredicate: Use `depth.zero?` instead of `depth == 0`.", 3245914040] - ], - "lib/markdown/merge/link_reference_rehydrator.rb:2522597032": [ - [28, 5, 10014, "Metrics/ClassLength: Class has too many lines. [171/100]", 3685995823], - [89, 7, 955, "Metrics/AbcSize: Assignment Branch Condition size for `rehydrate` is too high. [<6, 21, 4> 22.2/17]", 4193701], - [89, 7, 955, "Metrics/MethodLength: Method has too many lines. [12/10]", 4193701], - [138, 7, 1280, "Metrics/MethodLength: Method has too many lines. [20/10]", 2243922075], - [138, 7, 1280, "Metrics/PerceivedComplexity: Perceived complexity for `collect_nested_replacements` is too high. [10/8]", 2243922075], - [181, 7, 1844, "Metrics/AbcSize: Assignment Branch Condition size for `process_parent_with_children` is too high. [<11, 30, 10> 33.48/17]", 1412317448], - [181, 7, 1844, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `process_parent_with_children` is too high. [9/7]", 1412317448], - [181, 7, 1844, "Metrics/MethodLength: Method has too many lines. [29/10]", 1412317448], - [181, 7, 1844, "Metrics/PerceivedComplexity: Perceived complexity for `process_parent_with_children` is too high. [9/8]", 1412317448], - [230, 7, 672, "Metrics/AbcSize: Assignment Branch Condition size for `build_definition_maps` is too high. [<18, 18, 5> 25.94/17]", 2626750147], - [230, 7, 672, "Metrics/MethodLength: Method has too many lines. [15/10]", 2626750147], - [265, 7, 594, "Metrics/MethodLength: Method has too many lines. [21/10]", 1835317302], - [292, 7, 598, "Metrics/MethodLength: Method has too many lines. [21/10]", 1975952876] - ], - "lib/markdown/merge/list_match_refiner.rb:2863813265": [ - [28, 7, 760, "Metrics/AbcSize: Assignment Branch Condition size for `compute_similarity` is too high. [<6, 20, 4> 21.26/17]", 4078625426], - [28, 7, 760, "Metrics/MethodLength: Method has too many lines. [13/10]", 4078625426] - ], - "lib/markdown/merge/list_merger.rb:1304801063": [ - [33, 5, 10963, "Metrics/ClassLength: Class has too many lines. [214/100]", 602699468], - [48, 7, 1267, "Metrics/MethodLength: Method has too many lines. [22/10]", 3289445396], - [48, 22, 295, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [8/5]", 992893951], - [76, 20, 23, "Style/StringConcatenation: Prefer string interpolation to string concatenation.", 1178765246], - [86, 7, 474, "Metrics/MethodLength: Method has too many lines. [14/10]", 3392803095], - [110, 7, 2384, "Metrics/AbcSize: Assignment Branch Condition size for `align_items` is too high. [<29, 55, 24> 66.65/17]", 452537823], - [110, 7, 2384, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `align_items` is too high. [22/7]", 452537823], - [110, 7, 2384, "Metrics/MethodLength: Method has too many lines. [44/10]", 452537823], - [110, 7, 2384, "Metrics/PerceivedComplexity: Perceived complexity for `align_items` is too high. [23/8]", 452537823], - [179, 7, 2546, "Metrics/AbcSize: Assignment Branch Condition size for `emit_lines` is too high. [<24, 40, 13> 48.43/17]", 2868796461], - [179, 7, 2546, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `emit_lines` is too high. [10/7]", 2868796461], - [179, 7, 2546, "Metrics/MethodLength: Method has too many lines. [48/10]", 2868796461], - [179, 7, 2546, "Metrics/PerceivedComplexity: Perceived complexity for `emit_lines` is too high. [9/8]", 2868796461], - [179, 21, 167, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [9/5]", 3110781545], - [186, 9, 2214, "Metrics/BlockLength: Block has too many lines. [41/25]", 27504812], - [267, 7, 1113, "Metrics/MethodLength: Method has too many lines. [21/10]", 2701858480], - [267, 32, 165, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [9/5]", 4189168652] - ], - "lib/markdown/merge/merge_result.rb:3204455982": [ - [35, 5, 18456, "Metrics/ClassLength: Class has too many lines. [336/100]", 549816393], - [47, 21, 99, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [7/5]", 1708164346], - [99, 11, 18, "Naming/PredicatePrefix: Rename `has_frozen_blocks?` to `frozen_blocks?`.", 2714608976], - [174, 7, 987, "Metrics/MethodLength: Method has too many lines. [14/10]", 199512025], - [178, 121, 23, "Layout/LineLength: Line is too long. [143/120]", 2749193064], - [197, 7, 719, "Metrics/MethodLength: Method has too many lines. [11/10]", 3478479763], - [214, 7, 3130, "Metrics/AbcSize: Assignment Branch Condition size for `apply_grouped_delegated_block!` is too high. [<37, 72, 21> 83.63/17]", 3965639779], - [214, 7, 3130, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `apply_grouped_delegated_block!` is too high. [21/7]", 3965639779], - [214, 7, 3130, "Metrics/MethodLength: Method has too many lines. [49/10]", 3965639779], - [214, 7, 3130, "Metrics/PerceivedComplexity: Perceived complexity for `apply_grouped_delegated_block!` is too high. [21/8]", 3965639779], - [218, 121, 55, "Layout/LineLength: Line is too long. [175/120]", 2758428109], - [227, 9, 22, "Style/MultilineBlockChain: Avoid multi-line chains of blocks.", 3561198282], - [232, 9, 22, "Style/MultilineBlockChain: Avoid multi-line chains of blocks.", 3561198282], - [237, 9, 22, "Style/MultilineBlockChain: Avoid multi-line chains of blocks.", 3561198282], - [267, 7, 956, "Metrics/AbcSize: Assignment Branch Condition size for `apply_output_range_resolutions_descending!` is too high. [<8, 26, 8> 28.35/17]", 410698269], - [267, 7, 956, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `apply_output_range_resolutions_descending!` is too high. [8/7]", 410698269], - [267, 7, 956, "Metrics/MethodLength: Method has too many lines. [13/10]", 410698269], - [269, 121, 9, "Layout/LineLength: Line is too long. [129/120]", 1650842885], - [304, 7, 1607, "Metrics/AbcSize: Assignment Branch Condition size for `remap_delegated_cases_after_apply` is too high. [<5, 20, 1> 20.64/17]", 2805002106], - [304, 7, 1607, "Metrics/MethodLength: Method has too many lines. [25/10]", 2805002106], - [304, 44, 174, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [7/5]", 2563452319], - [352, 7, 664, "Metrics/MethodLength: Method has too many lines. [13/10]", 2283269648], - [402, 7, 605, "Metrics/MethodLength: Method has too many lines. [12/10]", 219211686], - [418, 7, 622, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `sanitize_review_state_metadata` is too high. [8/7]", 656017698], - [418, 7, 622, "Metrics/MethodLength: Method has too many lines. [16/10]", 656017698], - [439, 7, 1110, "Metrics/AbcSize: Assignment Branch Condition size for `validate_review_state_compatibility!` is too high. [<7, 18, 13> 23.28/17]", 3899925007], - [439, 7, 1110, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `validate_review_state_compatibility!` is too high. [11/7]", 3899925007], - [439, 7, 1110, "Metrics/MethodLength: Method has too many lines. [18/10]", 3899925007], - [439, 7, 1110, "Metrics/PerceivedComplexity: Perceived complexity for `validate_review_state_compatibility!` is too high. [11/8]", 3899925007], - [453, 121, 9, "Layout/LineLength: Line is too long. [129/120]", 2530059826], - [460, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5861331] - ], - "lib/markdown/merge/output_builder.rb:48145848": [ - [23, 5, 8640, "Metrics/ClassLength: Class has too many lines. [115/100]", 1155429967], - [47, 7, 2071, "Metrics/AbcSize: Assignment Branch Condition size for `add_node_source` is too high. [<6, 15, 12> 20.12/17]", 555854176], - [47, 7, 2071, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `add_node_source` is too high. [12/7]", 555854176], - [47, 7, 2071, "Metrics/MethodLength: Method has too many lines. [15/10]", 555854176], - [47, 7, 2071, "Metrics/PerceivedComplexity: Perceived complexity for `add_node_source` is too high. [12/8]", 555854176], - [60, 121, 43, "Layout/LineLength: Line is too long. [163/120]", 527167630], - [61, 121, 67, "Layout/LineLength: Line is too long. [187/120]", 2893319489], - [62, 121, 43, "Layout/LineLength: Line is too long. [163/120]", 2876999963], - [63, 121, 74, "Layout/LineLength: Line is too long. [194/120]", 4139918410], - [92, 38, 9, "Style/NumericPredicate: Use `count.positive?` instead of `count > 0`.", 3986027816], - [122, 7, 370, "Metrics/MethodLength: Method has too many lines. [11/10]", 616591631], - [224, 7, 878, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `extract_parser_node_source` is too high. [10/7]", 227721314], - [224, 7, 878, "Metrics/MethodLength: Method has too many lines. [13/10]", 227721314], - [224, 7, 878, "Metrics/PerceivedComplexity: Perceived complexity for `extract_parser_node_source` is too high. [11/8]", 227721314] - ], - "lib/markdown/merge/partial_template_merger.rb:3110525012": [ - [32, 5, 20691, "Metrics/ClassLength: Class has too many lines. [336/100]", 496419120], - [71, 7, 1040, "Metrics/MethodLength: Method has too many lines. [17/10]", 2144648319], - [71, 21, 417, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [14/5]", 1226086326], - [109, 7, 1065, "Metrics/AbcSize: Assignment Branch Condition size for `merge` is too high. [<7, 19, 6> 21.12/17]", 3976180000], - [109, 7, 1065, "Metrics/MethodLength: Method has too many lines. [25/10]", 3976180000], - [145, 7, 912, "Metrics/MethodLength: Method has too many lines. [15/10]", 2077585004], - [265, 7, 1401, "Metrics/AbcSize: Assignment Branch Condition size for `find_section_end` is too high. [<8, 28, 11> 31.13/17]", 1420600674], - [265, 7, 1401, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `find_section_end` is too high. [10/7]", 1420600674], - [265, 7, 1401, "Metrics/MethodLength: Method has too many lines. [20/10]", 1420600674], - [265, 7, 1401, "Metrics/PerceivedComplexity: Perceived complexity for `find_section_end` is too high. [10/8]", 1420600674], - [311, 7, 1101, "Metrics/AbcSize: Assignment Branch Condition size for `node_to_source` is too high. [<6, 15, 15> 22.05/17]", 3635207151], - [311, 7, 1101, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `node_to_source` is too high. [13/7]", 3635207151], - [311, 7, 1101, "Metrics/MethodLength: Method has too many lines. [20/10]", 3635207151], - [311, 7, 1101, "Metrics/PerceivedComplexity: Perceived complexity for `node_to_source` is too high. [14/8]", 3635207151], - [318, 20, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], - [323, 42, 14, "Style/NumericPredicate: Use `start_line.positive?` instead of `start_line > 0`.", 792111162], - [345, 7, 643, "Metrics/MethodLength: Method has too many lines. [17/10]", 998852567], - [364, 34, 10, "Style/NumericPredicate: Use `value.zero?` instead of `value == 0`.", 4076387742], - [367, 7, 2760, "Metrics/AbcSize: Assignment Branch Condition size for `preserved_destination_insertions` is too high. [<19, 28, 14> 36.62/17]", 414221184], - [367, 7, 2760, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `preserved_destination_insertions` is too high. [13/7]", 414221184], - [367, 7, 2760, "Metrics/MethodLength: Method has too many lines. [49/10]", 414221184], - [367, 7, 2760, "Metrics/PerceivedComplexity: Perceived complexity for `preserved_destination_insertions` is too high. [15/8]", 414221184], - [381, 121, 7, "Layout/LineLength: Line is too long. [127/120]", 682972477], - [426, 7, 1058, "Metrics/MethodLength: Method has too many lines. [16/10]", 932075153], - [475, 7, 1040, "Metrics/AbcSize: Assignment Branch Condition size for `render_template_with_preserved_insertions` is too high. [<10, 18, 10> 22.89/17]", 1699694974], - [475, 7, 1040, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `render_template_with_preserved_insertions` is too high. [9/7]", 1699694974], - [475, 7, 1040, "Metrics/MethodLength: Method has too many lines. [21/10]", 1699694974], - [475, 7, 1040, "Metrics/PerceivedComplexity: Perceived complexity for `render_template_with_preserved_insertions` is too high. [9/8]", 1699694974], - [504, 7, 454, "Metrics/MethodLength: Method has too many lines. [12/10]", 3433907112] - ], - "lib/markdown/merge/preservation_support.rb:3687269889": [ - [13, 5, 10105, "Metrics/ModuleLength: Module has too many lines. [212/100]", 674454], - [24, 7, 572, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `standalone_comment_node?` is too high. [9/7]", 349869031], - [24, 7, 572, "Metrics/PerceivedComplexity: Perceived complexity for `standalone_comment_node?` is too high. [9/8]", 349869031], - [116, 7, 655, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `remove_plan_preserved_comment_regions` is too high. [8/7]", 2103873816], - [116, 7, 655, "Metrics/MethodLength: Method has too many lines. [12/10]", 2103873816], - [178, 7, 1301, "Metrics/AbcSize: Assignment Branch Condition size for `remove_plan_comment_insertion_specs` is too high. [<5, 22, 8> 23.94/17]", 698043371], - [178, 7, 1301, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `remove_plan_comment_insertion_specs` is too high. [9/7]", 698043371], - [178, 7, 1301, "Metrics/MethodLength: Method has too many lines. [22/10]", 698043371], - [178, 7, 1301, "Metrics/PerceivedComplexity: Perceived complexity for `remove_plan_comment_insertion_specs` is too high. [9/8]", 698043371], - [193, 9, 7, "Style/MultilineBlockChain: Avoid multi-line chains of blocks.", 4045570401], - [217, 7, 737, "Metrics/MethodLength: Method has too many lines. [13/10]", 3882071587], - [248, 28, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], - [271, 7, 704, "Metrics/MethodLength: Method has too many lines. [13/10]", 2605835865], - [271, 52, 139, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 1766111143] - ], - "lib/markdown/merge/smart_merger.rb:1245982439": [ - [151, 7, 1405, "Metrics/MethodLength: Method has too many lines. [19/10]", 2830703815], - [151, 21, 501, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [13/5]", 1104874368], - [229, 7, 1140, "Metrics/AbcSize: Assignment Branch Condition size for `node_to_source` is too high. [<5, 15, 9> 18.19/17]", 1515173572], - [229, 7, 1140, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `node_to_source` is too high. [9/7]", 1515173572], - [229, 7, 1140, "Metrics/MethodLength: Method has too many lines. [13/10]", 1515173572], - [229, 7, 1140, "Metrics/PerceivedComplexity: Perceived complexity for `node_to_source` is too high. [10/8]", 1515173572] - ], - "lib/markdown/merge/smart_merger_base.rb:950545235": [ - [43, 5, 59104, "Metrics/ClassLength: Class has too many lines. [984/100]", 1046238359], - [148, 7, 3731, "Metrics/AbcSize: Assignment Branch Condition size for `initialize` is too high. [<20, 19, 10> 29.34/17]", 50319656], - [148, 7, 3731, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `initialize` is too high. [11/7]", 50319656], - [148, 7, 3731, "Metrics/MethodLength: Method has too many lines. [66/10]", 50319656], - [148, 7, 3731, "Metrics/PerceivedComplexity: Perceived complexity for `initialize` is too high. [9/8]", 50319656], - [148, 21, 606, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [17/5]", 4006929896], - [294, 7, 1760, "Metrics/AbcSize: Assignment Branch Condition size for `merge_result` is too high. [<15, 19, 7> 25.2/17]", 3628731818], - [294, 7, 1760, "Metrics/MethodLength: Method has too many lines. [31/10]", 3628731818], - [297, 25, 1662, "Metrics/BlockLength: Block has too many lines. [28/25]", 1167387512], - [343, 7, 1195, "Metrics/AbcSize: Assignment Branch Condition size for `merge_with_debug` is too high. [<3, 20, 17> 26.42/17]", 1763663260], - [343, 7, 1195, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `merge_with_debug` is too high. [18/7]", 1763663260], - [343, 7, 1195, "Metrics/MethodLength: Method has too many lines. [27/10]", 1763663260], - [343, 7, 1195, "Metrics/PerceivedComplexity: Perceived complexity for `merge_with_debug` is too high. [18/8]", 1763663260], - [383, 7, 1862, "Metrics/AbcSize: Assignment Branch Condition size for `prepare_runtime_session!` is too high. [<4, 24, 1> 24.35/17]", 546014873], - [383, 7, 1862, "Metrics/MethodLength: Method has too many lines. [45/10]", 546014873], - [432, 7, 1064, "Metrics/MethodLength: Method has too many lines. [21/10]", 214902707], - [490, 7, 438, "Metrics/MethodLength: Method has too many lines. [11/10]", 1759076310], - [505, 31, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], - [529, 7, 788, "Metrics/MethodLength: Method has too many lines. [13/10]", 690316762], - [553, 7, 1538, "Metrics/AbcSize: Assignment Branch Condition size for `collapse_cross_source_preamble_prefixes` is too high. [<9, 18, 6> 21/17]", 1970988374], - [553, 7, 1538, "Metrics/MethodLength: Method has too many lines. [25/10]", 1970988374], - [586, 7, 644, "Metrics/AbcSize: Assignment Branch Condition size for `leading_standalone_comment_run` is too high. [<8, 14, 7> 17.58/17]", 4188914818], - [586, 7, 644, "Metrics/MethodLength: Method has too many lines. [17/10]", 4188914818], - [614, 7, 1576, "Metrics/AbcSize: Assignment Branch Condition size for `process_alignment` is too high. [<15, 14, 10> 22.83/17]", 3967135783], - [614, 7, 1576, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `process_alignment` is too high. [11/7]", 3967135783], - [614, 7, 1576, "Metrics/MethodLength: Method has too many lines. [31/10]", 3967135783], - [614, 7, 1576, "Metrics/PerceivedComplexity: Perceived complexity for `process_alignment` is too high. [9/8]", 3967135783], - [656, 7, 2871, "Metrics/AbcSize: Assignment Branch Condition size for `process_match_to_builder` is too high. [<17, 39, 19> 46.59/17]", 608053079], - [656, 7, 2871, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `process_match_to_builder` is too high. [19/7]", 608053079], - [656, 7, 2871, "Metrics/MethodLength: Method has too many lines. [50/10]", 608053079], - [656, 7, 2871, "Metrics/PerceivedComplexity: Perceived complexity for `process_match_to_builder` is too high. [18/8]", 608053079], - [720, 7, 867, "Metrics/MethodLength: Method has too many lines. [18/10]", 2946023513], - [764, 7, 670, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `consumed_link_definitions_within` is too high. [8/7]", 2596009659], - [764, 7, 670, "Metrics/MethodLength: Method has too many lines. [11/10]", 2596009659], - [774, 9, 8, "Style/MultilineBlockChain: Avoid multi-line chains of blocks.", 359839059], - [782, 45, 50, "Style/ClassEqualityComparison: Use `instance_of?(::RSpec::Mocks::MockExpectationError)` instead of comparing classes.", 952914844], - [797, 7, 939, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `apply_node_typing` is too high. [8/7]", 2526108526], - [797, 7, 939, "Metrics/MethodLength: Method has too many lines. [14/10]", 2526108526], - [849, 7, 1297, "Metrics/AbcSize: Assignment Branch Condition size for `try_inner_merge_list_to_builder` is too high. [<8, 20, 8> 22.98/17]", 2844551967], - [849, 7, 1297, "Metrics/MethodLength: Method has too many lines. [25/10]", 2844551967], - [849, 42, 71, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 3479074024], - [885, 7, 1361, "Metrics/AbcSize: Assignment Branch Condition size for `try_inner_merge_code_block_to_builder` is too high. [<7, 19, 6> 21.12/17]", 2468334280], - [885, 7, 1361, "Metrics/MethodLength: Method has too many lines. [29/10]", 2468334280], - [885, 48, 71, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 3479074024], - [918, 7, 1923, "Metrics/AbcSize: Assignment Branch Condition size for `remap_delegated_unresolved_cases` is too high. [<8, 23, 5> 24.86/17]", 2261924082], - [918, 7, 1923, "Metrics/MethodLength: Method has too many lines. [35/10]", 2261924082], - [922, 9, 1535, "Metrics/BlockLength: Block has too many lines. [31/25]", 838301956], - [983, 7, 657, "Metrics/MethodLength: Method has too many lines. [15/10]", 4047906352], - [1027, 7, 411, "Metrics/MethodLength: Method has too many lines. [13/10]", 4206078535], - [1053, 7, 3160, "Metrics/AbcSize: Assignment Branch Condition size for `process_dest_only_to_builder` is too high. [<14, 41, 24> 49.53/17]", 1311626075], - [1053, 7, 3160, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `process_dest_only_to_builder` is too high. [25/7]", 1311626075], - [1053, 7, 3160, "Metrics/MethodLength: Method has too many lines. [51/10]", 1311626075], - [1053, 7, 3160, "Metrics/PerceivedComplexity: Perceived complexity for `process_dest_only_to_builder` is too high. [25/8]", 1311626075], - [1053, 39, 177, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [7/5]", 2740785193], - [1167, 7, 395, "Metrics/MethodLength: Method has too many lines. [11/10]", 433430016], - [1204, 7, 465, "Metrics/MethodLength: Method has too many lines. [12/10]", 1101864061], - [1261, 7, 861, "Metrics/MethodLength: Method has too many lines. [16/10]", 2380789170], - [1314, 121, 3, "Layout/LineLength: Line is too long. [123/120]", 193431734], - [1317, 7, 1039, "Metrics/AbcSize: Assignment Branch Condition size for `kept_node_for_link_ownership` is too high. [<4, 17, 9> 19.65/17]", 849664480], - [1317, 7, 1039, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `kept_node_for_link_ownership` is too high. [8/7]", 849664480], - [1317, 7, 1039, "Metrics/MethodLength: Method has too many lines. [24/10]", 849664480], - [1348, 7, 797, "Metrics/MethodLength: Method has too many lines. [12/10]", 3928797316], - [1384, 7, 610, "Metrics/AbcSize: Assignment Branch Condition size for `link_reference_signatures_within` is too high. [<6, 15, 6> 17.23/17]", 2255263809], - [1390, 121, 1, "Layout/LineLength: Line is too long. [121/120]", 177625], - [1457, 7, 1360, "Metrics/MethodLength: Method has too many lines. [19/10]", 1607654950] - ], - "lib/markdown/merge/table_match_algorithm.rb:784102633": [ - [31, 5, 17084, "Metrics/ClassLength: Class has too many lines. [241/100]", 3870100216], - [71, 21, 130, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 2234186342], - [86, 7, 537, "Metrics/MethodLength: Method has too many lines. [11/10]", 695685542], - [112, 7, 872, "Metrics/AbcSize: Assignment Branch Condition size for `levenshtein_distance` is too high. [<13, 29, 8> 32.77/17]", 3623880915], - [112, 7, 872, "Metrics/MethodLength: Method has too many lines. [20/10]", 3623880915], - [264, 7, 1291, "Metrics/AbcSize: Assignment Branch Condition size for `collect_text_recursive` is too high. [<5, 22, 13> 26.04/17]", 1898702827], - [264, 7, 1291, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `collect_text_recursive` is too high. [12/7]", 1898702827], - [264, 7, 1291, "Metrics/MethodLength: Method has too many lines. [26/10]", 1898702827], - [264, 7, 1291, "Metrics/PerceivedComplexity: Perceived complexity for `collect_text_recursive` is too high. [15/8]", 1898702827], - [292, 24, 43, "Metrics/BlockNesting: Avoid more than 3 levels of block nesting.", 2747201274], - [303, 7, 644, "Metrics/AbcSize: Assignment Branch Condition size for `compute_header_match` is too high. [<6, 20, 9> 22.74/17]", 2910662900], - [303, 7, 644, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `compute_header_match` is too high. [10/7]", 2910662900], - [303, 7, 644, "Metrics/MethodLength: Method has too many lines. [11/10]", 2910662900], - [303, 7, 644, "Metrics/PerceivedComplexity: Perceived complexity for `compute_header_match` is too high. [10/8]", 2910662900], - [330, 7, 927, "Metrics/AbcSize: Assignment Branch Condition size for `compute_first_column_match` is too high. [<14, 22, 14> 29.6/17]", 2043865784], - [330, 7, 927, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `compute_first_column_match` is too high. [14/7]", 2043865784], - [330, 7, 927, "Metrics/MethodLength: Method has too many lines. [15/10]", 2043865784], - [330, 7, 927, "Metrics/PerceivedComplexity: Perceived complexity for `compute_first_column_match` is too high. [14/8]", 2043865784], - [331, 28, 19, "Style/SymbolProc: Pass `&:first` as an argument to `map` instead of a block.", 2561207191], - [332, 28, 19, "Style/SymbolProc: Pass `&:first` as an argument to `map` instead of a block.", 2561207191], - [352, 9, 15, "Style/NumericPredicate: Use `total_cells.positive?` instead of `total_cells > 0`.", 1010733923], - [362, 7, 1037, "Metrics/AbcSize: Assignment Branch Condition size for `compute_row_content_match` is too high. [<10, 15, 12> 21.66/17]", 1855353124], - [362, 7, 1037, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `compute_row_content_match` is too high. [11/7]", 1855353124], - [362, 7, 1037, "Metrics/MethodLength: Method has too many lines. [21/10]", 1855353124], - [362, 7, 1037, "Metrics/PerceivedComplexity: Perceived complexity for `compute_row_content_match` is too high. [11/8]", 1855353124], - [404, 23, 14, "Style/NumericPredicate: Use `max_cells.zero?` instead of `max_cells == 0`.", 2427124139], - [423, 7, 1091, "Metrics/AbcSize: Assignment Branch Condition size for `compute_total_cells_match` is too high. [<14, 18, 12> 25.77/17]", 413080451], - [423, 7, 1091, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `compute_total_cells_match` is too high. [11/7]", 413080451], - [423, 7, 1091, "Metrics/MethodLength: Method has too many lines. [24/10]", 413080451], - [423, 7, 1091, "Metrics/PerceivedComplexity: Perceived complexity for `compute_total_cells_match` is too high. [11/8]", 413080451], - [492, 23, 17, "Style/NumericPredicate: Use `total_weight.zero?` instead of `total_weight == 0`.", 3158357864] - ], - "lib/markdown/merge/table_match_refiner.rb:4203940079": [ - [118, 35, 50, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 1492696344] - ], - "lib/markdown/merge/whitespace_normalizer.rb:121777318": [ - [33, 5, 6779, "Metrics/ClassLength: Class has too many lines. [115/100]", 3048764740], - [103, 7, 418, "Metrics/MethodLength: Method has too many lines. [11/10]", 3165373284], - [126, 7, 1750, "Metrics/AbcSize: Assignment Branch Condition size for `collapse_excessive_blank_lines` is too high. [<12, 12, 10> 19.7/17]", 1435694128], - [126, 7, 1750, "Metrics/MethodLength: Method has too many lines. [36/10]", 1435694128], - [188, 7, 1270, "Metrics/AbcSize: Assignment Branch Condition size for `remove_blank_lines_between_link_refs` is too high. [<12, 22, 13> 28.23/17]", 1324661552], - [188, 7, 1270, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `remove_blank_lines_between_link_refs` is too high. [9/7]", 1324661552], - [188, 7, 1270, "Metrics/MethodLength: Method has too many lines. [29/10]", 1324661552], - [188, 7, 1270, "Metrics/PerceivedComplexity: Perceived complexity for `remove_blank_lines_between_link_refs` is too high. [10/8]", 1324661552], - [207, 15, 54, "Metrics/BlockNesting: Avoid more than 3 levels of block nesting.", 831575245] - ], - "lib/markdown/merge/wrapper_support.rb:1758973456": [ - [6, 5, 7266, "Metrics/ModuleLength: Module has too many lines. [161/100]", 2849920033], - [29, 7, 1214, "Metrics/MethodLength: Method has too many lines. [19/10]", 1280688859], - [29, 19, 250, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [8/5]", 4150728370], - [78, 7, 1452, "Metrics/MethodLength: Method has too many lines. [18/10]", 3670315588], - [78, 43, 286, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [8/5]", 3809385913], - [127, 7, 592, "Metrics/MethodLength: Method has too many lines. [12/10]", 3827282628] - ], - "markdown-merge.gemspec:3964894686": [ - [128, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 2821357214], - [143, 121, 50, "Layout/LineLength: Line is too long. [170/120]", 3888612416], - [144, 121, 29, "Layout/LineLength: Line is too long. [149/120]", 981994949], - [151, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 4229808912] - ], - "spec/fixtures_integration_spec.rb:762722167": [ - [3, 1, 17188, "Metrics/BlockLength: Block has too many lines. [403/25]", 3093659447], - [41, 121, 5, "Layout/LineLength: Line is too long. [125/120]", 180560828] - ] -} diff --git a/gems/markdown-merge/Gemfile b/gems/markdown-merge/Gemfile index 8c5ec5563..054b7aa20 100644 --- a/gems/markdown-merge/Gemfile +++ b/gems/markdown-merge/Gemfile @@ -6,7 +6,7 @@ # kettle-jem will then preserve content between those markers across template runs. # kettle-jem:unfreeze -source "https://gem.coop" +source 'https://gem.coop' git_source(:codeberg) { |repo_name| "https://codeberg.org/#{repo_name}" } git_source(:gitlab) { |repo_name| "https://gitlab.com/#{repo_name}" } @@ -19,58 +19,54 @@ git_source(:gitlab) { |repo_name| "https://gitlab.com/#{repo_name}" } gemspec # Local workspace dependency wiring for *_local.gemfile overrides -nomono_requirements = ["~> 1.0", ">= 1.0.8"] -gem "nomono", *nomono_requirements, require: false # ruby >= 2.2 +nomono_requirements = ['~> 1.0', '>= 1.0.8'] +gem 'nomono', *nomono_requirements, require: false # ruby >= 2.2 # Direct sibling dependencies (env-switched via STRUCTUREDMERGE_DEV) direct_sibling_gems = %w[ ast-merge tree_haver ] -direct_sibling_dev = ENV.fetch("STRUCTUREDMERGE_DEV", "") +direct_sibling_dev = ENV.fetch('STRUCTUREDMERGE_DEV', '') direct_sibling_local = !direct_sibling_dev.empty? && !%w[false 0 no off].include?(direct_sibling_dev.downcase) -direct_sibling_templating = ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? +direct_sibling_templating = ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero?) - direct_sibling_dev_was_set = ENV.key?("STRUCTUREDMERGE_DEV") - direct_sibling_dev_original = ENV.fetch("STRUCTUREDMERGE_DEV", nil) + (direct_sibling_local || + ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) + direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') + direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) begin nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path("Gemfile.lock", __dir__) + nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == "nomono" } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - if nomono_locked - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] - end - end - Kernel.send(:gem, "nomono", *nomono_activation_requirements) - require "nomono/bundler" - if direct_sibling_templating && !direct_sibling_local - ENV["STRUCTUREDMERGE_DEV"] = File.expand_path("..", __dir__) + Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked end + Kernel.send(:gem, 'nomono', *nomono_activation_requirements) + require 'nomono/bundler' + ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local eval_nomono_gems( gems: direct_sibling_gems, - prefix: "STRUCTUREDMERGE", - path_env: "STRUCTUREDMERGE_DEV", - root: ["src", "my", "structuredmerge"] + prefix: 'STRUCTUREDMERGE', + path_env: 'STRUCTUREDMERGE_DEV', + root: %w[src my structuredmerge] ) rescue LoadError - warn "Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies." + warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' ensure if direct_sibling_templating && !direct_sibling_local if direct_sibling_dev_was_set - ENV["STRUCTUREDMERGE_DEV"] = direct_sibling_dev_original + ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original else - ENV.delete("STRUCTUREDMERGE_DEV") + ENV.delete('STRUCTUREDMERGE_DEV') end end end @@ -117,28 +113,28 @@ if direct_sibling_gems.any? && end # Use released TSLP with the Ruby ABI platform-gem fix. -gem "tree_sitter_language_pack", "~> 1.13", ">= 1.13.3" +gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' # Templating (env-switched: STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local paths) -eval_gemfile "gemfiles/modular/templating.gemfile" if ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? +eval_gemfile 'gemfiles/modular/templating.gemfile' if ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? # Debugging -eval_gemfile "gemfiles/modular/debug.gemfile" +eval_gemfile 'gemfiles/modular/debug.gemfile' # Code Coverage (env-switched: KETTLE_DEV_DEV=true for local paths) -eval_gemfile "gemfiles/modular/coverage.gemfile" +eval_gemfile 'gemfiles/modular/coverage.gemfile' # Linting -eval_gemfile "gemfiles/modular/style.gemfile" +eval_gemfile 'gemfiles/modular/style.gemfile' # Documentation -eval_gemfile "gemfiles/modular/documentation.gemfile" +eval_gemfile 'gemfiles/modular/documentation.gemfile' # Optional -eval_gemfile "gemfiles/modular/optional.gemfile" +eval_gemfile 'gemfiles/modular/optional.gemfile' ### Std Lib Extracted Gems -eval_gemfile "gemfiles/modular/x_std_libs.gemfile" +eval_gemfile 'gemfiles/modular/x_std_libs.gemfile' # See unlocked_deps appraisal for more details on irb inclusion -gem "irb", "~> 1.17" # ruby >= 2.7 +gem 'irb', '~> 1.17' # ruby >= 2.7 diff --git a/gems/markdown-merge/Gemfile.lock b/gems/markdown-merge/Gemfile.lock index 4beb142d5..4a182daa3 100644 --- a/gems/markdown-merge/Gemfile.lock +++ b/gems/markdown-merge/Gemfile.lock @@ -6,38 +6,6 @@ PATH tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly - specs: - ast-crispr-markdown-markly (7.1.0) - ast-crispr (= 7.1.0) - markly-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism - specs: - ast-crispr-ruby-prism (7.1.0) - ast-crispr (= 7.1.0) - prism-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr - specs: - ast-crispr (7.1.0) - ast-merge (= 7.1.0) - service_actor (~> 3.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git - specs: - ast-merge-git (7.1.0) - ast-merge (= 7.1.0) - json-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - PATH remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge specs: @@ -47,192 +15,6 @@ PATH tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template - specs: - ast-template (7.1.0) - ast-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge - specs: - bash-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge - specs: - binary-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge - specs: - citrus-toml-merge (7.1.0) - toml-merge (= 7.1.0) - toml-rb (~> 4.1) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge - specs: - commonmarker-merge (7.1.0) - commonmarker (~> 2.2) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge - specs: - dotenv-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge - specs: - go-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge - specs: - json-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem - specs: - kettle-jem (7.1.0) - addressable (>= 2.8, < 3) - ast-crispr-markdown-markly (= 7.1.0) - ast-crispr-ruby-prism (= 7.1.0) - ast-merge (= 7.1.0) - bash-merge (= 7.1.0) - citrus-toml-merge (= 7.1.0) - commonmarker-merge (= 7.1.0) - dotenv-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-dev (~> 2.3, >= 2.3.5) - kettle-rb (~> 0.1, >= 0.1.4) - kramdown-merge (= 7.1.0) - markdown-merge (= 7.1.0) - markly-merge (= 7.1.0) - prism-merge (= 7.1.0) - psych-merge (= 7.1.0) - rbs (>= 3.10) - rbs-merge (= 7.1.0) - ruby-merge (= 7.1.0) - token-resolver (~> 2.0, >= 2.0.4) - toml-merge (= 7.1.0) - toml-rb (~> 4.2) - tree_haver (= 7.1.0) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge - specs: - kramdown-merge (7.1.0) - kramdown (~> 2.5) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge - specs: - markly-merge (7.1.0) - markdown-merge (= 7.1.0) - markly (~> 0.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge - specs: - parslet-toml-merge (7.1.0) - toml (~> 0.3) - toml-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge - specs: - plain-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge - specs: - prism-merge (7.1.0) - prism (~> 1.6) - ruby-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge - specs: - psych-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge - specs: - rbs-merge (7.1.0) - ast-merge (= 7.1.0) - rbs (>= 3.10) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge - specs: - ruby-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge - specs: - rust-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb - specs: - smorg-rb (7.1.0) - ast-merge (= 7.1.0) - ast-merge-git (= 7.1.0) - go-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-jem (= 7.1.0) - markly-merge (= 7.1.0) - plain-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge - specs: - toml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - PATH remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver specs: @@ -242,46 +24,6 @@ PATH tree_sitter_language_pack (>= 1.13.2, < 2.0) version_gem (~> 1.1, >= 1.1.9) -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge - specs: - typescript-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge - specs: - yaml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge - specs: - zip-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /var/home/pboling/src/my/kettle-dev/kettle-drift - specs: - kettle-drift (1.0.6) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /var/home/pboling/src/my/kettle-dev/kettle-soup-cover - specs: - kettle-soup-cover (3.0.4) - kettle-wash (~> 0.1, >= 0.1.0) - simplecov (>= 1.0) - simplecov-cobertura (>= 4.0) - simplecov-console (~> 0.9, >= 0.9.5) - simplecov-rcov (~> 0.3, >= 0.3.7) - simplecov_lcov_formatter (~> 0.9, >= 0.9.0) - GEM remote: https://gem.coop/ specs: @@ -306,10 +48,6 @@ GEM cgi (0.5.2) citrus (3.0.2) cmdparse (3.0.7) - commonmarker (2.9.0-aarch64-linux) - commonmarker (2.9.0-aarch64-linux-musl) - commonmarker (2.9.0-arm64-darwin) - commonmarker (2.9.0-x86_64-linux) concurrent-ruby (1.3.8) date (3.5.1) debug (1.11.1) @@ -373,6 +111,13 @@ GEM kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) kettle-rb (0.1.4) + kettle-soup-cover (3.0.4) + kettle-wash (~> 0.1, >= 0.1.0) + simplecov (>= 1.0) + simplecov-cobertura (>= 4.0) + simplecov-console (~> 0.9, >= 0.9.5) + simplecov-rcov (~> 0.3, >= 0.3.7) + simplecov_lcov_formatter (~> 0.9, >= 0.9.0) kettle-test (2.0.11) appraisal2 (~> 3.0, >= 3.0.6) backports (~> 3.0) @@ -393,7 +138,6 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) - markly (0.16.0) mutex_m (0.3.0) nokogiri (1.19.4-aarch64-linux-gnu) racc (~> 1.4) @@ -556,8 +300,6 @@ GEM ruby-progressbar (1.13.0) ruby_engine (2.0.3) ruby_version (1.0.3) - service_actor (3.9.4) - zeitwerk (>= 1.0) silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) @@ -612,11 +354,6 @@ GEM token-resolver (2.0.4) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.13) - toml (0.3.0) - parslet (>= 1.8.0, < 3.0.0) - toml-rb (4.2.0) - citrus (~> 3.0, > 3.0) - racc (~> 1.7) tree_sitter_language_pack (1.13.3-aarch64-linux) sorbet-runtime (~> 0.5) tree_sitter_language_pack (1.13.3-arm64-darwin) @@ -671,46 +408,25 @@ DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) appraisal2-rubocop (~> 1.0, >= 1.0.0) - ast-crispr! - ast-crispr-markdown-markly! - ast-crispr-ruby-prism! ast-merge! - ast-merge-git! - ast-template! - bash-merge! benchmark (~> 0.5, >= 0.5.0) - binary-merge! bundler-audit (~> 0.9.3) cgi (~> 0.5) - citrus-toml-merge! - commonmarker-merge! debug (>= 1.1) - dotenv-merge! erb (~> 6.0, >= 6.0.6) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.0) - go-merge! irb (~> 1.17) - json-merge! kettle-dev (~> 2.0, >= 2.2.25) - kettle-drift! - kettle-jem! - kettle-soup-cover! + kettle-soup-cover (~> 3.0, >= 3.0.3) kettle-test (~> 2.0, >= 2.0.9) kramdown (~> 2.5, >= 2.5.2) - kramdown-merge! kramdown-parser-gfm (~> 1.1) markdown-merge! - markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) - parslet-toml-merge! - plain-merge! - prism-merge! - psych-merge! rake (~> 13.0) rbs (>= 3.0) - rbs-merge! rdoc (~> 6.11) reek (~> 6.5, >= 6.5.0) require_bench (~> 1.0, >= 1.0.4) @@ -721,27 +437,20 @@ DEPENDENCIES rubocop-on-rbs (~> 2.0, >= 2.0.0) rubocop-packaging (~> 0.6, >= 0.6.0) rubocop-ruby3_2 (~> 3.0, >= 3.0.6) - ruby-merge! ruby-progressbar (~> 1.13) - rust-merge! - smorg-rb! standard (~> 1.56, >= 1.56.0) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) - toml-merge! tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) - typescript-merge! webrick (~> 1.9) yaml-converter (~> 0.2, >= 0.2.3) - yaml-merge! yard (~> 0.9, >= 0.9.45) yard-fence (~> 0.9, >= 0.9.6) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) yard-timekeeper (~> 0.2, >= 0.2.4) yard-yaml (~> 0.2, >= 0.2.3) - zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af @@ -749,34 +458,20 @@ CHECKSUMS appraisal2 (3.2.0) sha256=ccd0b767ac4060cd7af6d16747459b6990f49c39c7b4fb1f7d1146b1e97c492f appraisal2-rubocop (1.0.0) sha256=b71410fbb014befda5340605a605b7f6f3f012739baf0acc5b4351b592c3258d ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 - ast-crispr (7.1.0) - ast-crispr-markdown-markly (7.1.0) - ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) - ast-merge-git (7.1.0) - ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 - bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd - binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 - citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 - commonmarker (2.9.0-aarch64-linux) sha256=e2b4aadb9a2cfa4e206582641ce3a49465549ac1ed4c289fdd63b78d8f24579c - commonmarker (2.9.0-aarch64-linux-musl) sha256=1cf4d2821f2a7e64945f1ed7c4eeced586fdb27ea7fe7337788802cf8f57cfca - commonmarker (2.9.0-arm64-darwin) sha256=1748dbfa4f5813b0d2a14bb4bbfa65a4ec293aa1c825016d60029ee0e132b046 - commonmarker (2.9.0-x86_64-linux) sha256=8cfe92970eef585a19ddf6613224b91cab64d6029834661bda801f877c9c7f43 - commonmarker-merge (7.1.0) concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 - dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -789,28 +484,21 @@ CHECKSUMS gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f - go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 - json-merge (7.1.0) kettle-dev (2.3.7) sha256=eb370113cd030d03cbe2d33b31c99858951017e5ad21a17e9ed89dc3770028ee - kettle-drift (1.0.6) - kettle-jem (7.1.0) kettle-rb (0.1.4) sha256=9cef7ce4f7021666b7222292f29051e51eaf042e8a5db11f3f4dd72f74243fc1 kettle-soup-cover (3.0.4) kettle-test (2.0.11) sha256=c710c90f7ab79d51f9452f0c09f5f90657e7a893f63583855c164d0b1b107ab2 kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa - kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 markdown-merge (7.1.0) - markly (0.16.0) sha256=6f70d79e385b1efc9e171f74c81628826259039fe6c778e03c3924c71dac5511 - markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-aarch64-linux-gnu) sha256=1269fb644a6de405057a53dd5c762b1209b43ca7424f839454d3dbc677c31a8f nokogiri (1.19.4-aarch64-linux-musl) sha256=35c65b9ce72b3bb03207bdbe7067915019dc18c1b9b59139684bd6690fdd01af @@ -824,20 +512,15 @@ CHECKSUMS parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 - parslet-toml-merge (7.1.0) - plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 - prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 - psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 - rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb @@ -872,19 +555,15 @@ CHECKSUMS rubocop-rspec_rails (2.32.0) sha256=4a0d641c72f6ebb957534f539d9d0a62c47abd8ce0d0aeee1ef4701e892a9100 rubocop-ruby3_2 (3.0.7) sha256=f53dd6d286fb05186214fc6ec116783e7f837030918e8931c05de773e98f8466 rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 - ruby-merge (7.1.0) ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 - rust-merge (7.1.0) - service_actor (3.9.4) sha256=e63b523630b9a7e62959b2a90113b08d2565b5de9c148557b281ef847c9539ce silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed - smorg-rb (7.1.0) sorbet-runtime (0.6.13347) sha256=54e7221d9f4b63f58aec79f3043752a9ba7810347c6ae0d903531591cc2d5f01 standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b @@ -899,22 +578,17 @@ CHECKSUMS timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.4) sha256=33b926958f504525bba3ed511ab66fbcbf8ef30390815e931436b30f27ffcad0 - toml (0.3.0) sha256=0a91d0f76a9036e84e44f95693b12f58d358c1df3ac8e3b5271f2056ecc6e4b9 - toml-merge (7.1.0) - toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-aarch64-linux) sha256=55ffc7c87868cb45658338363d9eba51b4a8b0259aa88e4de368d2bd1d52fea4 tree_sitter_language_pack (1.13.3-arm64-darwin) sha256=bc2498db605f212a1dbd2465ed3f65190d7da786f6ed5d30fcf958121aeb4a5c tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 - typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 webrick (1.9.2) sha256=beb4a15fc474defed24a3bda4ffd88a490d517c9e4e6118c3edce59e45864131 yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 - yaml-merge (7.1.0) yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd @@ -922,7 +596,6 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 - zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH diff --git a/gems/markdown-merge/Rakefile b/gems/markdown-merge/Rakefile index 2be51dd98..335c98aab 100644 --- a/gems/markdown-merge/Rakefile +++ b/gems/markdown-merge/Rakefile @@ -130,23 +130,23 @@ end ### DUPLICATE DRIFT TASKS begin - require "kettle/drift" + require 'kettle/drift' Kettle::Drift.install_tasks rescue LoadError - desc("(stub) kettle:drift:check is unavailable") - task("kettle:drift:check") do + desc('(stub) kettle:drift:check is unavailable') + task('kettle:drift:check') do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc("(stub) kettle:drift:update is unavailable") - task("kettle:drift:update") do + desc('(stub) kettle:drift:update is unavailable') + task('kettle:drift:update') do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc("(stub) kettle:drift:force_update is unavailable") - task("kettle:drift:force_update") do + desc('(stub) kettle:drift:force_update is unavailable') + task('kettle:drift:force_update') do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc("(stub) kettle:drift is unavailable") - task("kettle:drift" => "kettle:drift:update") + desc('(stub) kettle:drift is unavailable') + task('kettle:drift' => 'kettle:drift:update') end ### TEMPLATING TASKS diff --git a/gems/markdown-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile b/gems/markdown-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile index dec650815..b8392fab0 100644 --- a/gems/markdown-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile +++ b/gems/markdown-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.1 -gem "benchmark", "~> 0.5", ">= 0.5.0" # Removed from Std Lib in Ruby 4.0 +gem 'benchmark', '~> 0.5', '>= 0.5.0' # Removed from Std Lib in Ruby 4.0 diff --git a/gems/markdown-merge/gemfiles/modular/benchmark/vHEAD.gemfile b/gems/markdown-merge/gemfiles/modular/benchmark/vHEAD.gemfile index e1eb20c5e..af214aafa 100644 --- a/gems/markdown-merge/gemfiles/modular/benchmark/vHEAD.gemfile +++ b/gems/markdown-merge/gemfiles/modular/benchmark/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.1 -gem "benchmark", github: "ruby/benchmark", branch: "master" +gem 'benchmark', github: 'ruby/benchmark', branch: 'master' diff --git a/gems/markdown-merge/gemfiles/modular/cgi/r4/v0.5.gemfile b/gems/markdown-merge/gemfiles/modular/cgi/r4/v0.5.gemfile index 19ed967c3..17ad97260 100644 --- a/gems/markdown-merge/gemfiles/modular/cgi/r4/v0.5.gemfile +++ b/gems/markdown-merge/gemfiles/modular/cgi/r4/v0.5.gemfile @@ -1 +1 @@ -gem "cgi", "~> 0.5" +gem 'cgi', '~> 0.5' diff --git a/gems/markdown-merge/gemfiles/modular/cgi/vHEAD.gemfile b/gems/markdown-merge/gemfiles/modular/cgi/vHEAD.gemfile index ef8b816ce..650fbf033 100644 --- a/gems/markdown-merge/gemfiles/modular/cgi/vHEAD.gemfile +++ b/gems/markdown-merge/gemfiles/modular/cgi/vHEAD.gemfile @@ -1 +1 @@ -gem "cgi", ">= 0.5" +gem 'cgi', '>= 0.5' diff --git a/gems/markdown-merge/gemfiles/modular/coverage.gemfile b/gems/markdown-merge/gemfiles/modular/coverage.gemfile index 52d737872..b93014b6b 100644 --- a/gems/markdown-merge/gemfiles/modular/coverage.gemfile +++ b/gems/markdown-merge/gemfiles/modular/coverage.gemfile @@ -4,11 +4,11 @@ # Set KETTLE_DEV_DEV=true for local development with path-based dependencies. # When false (default / CI), remote released gems are used. -if ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false").zero? +if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? # Coverage (remote/released) platform :mri do - gem "kettle-soup-cover", "~> 3.0", ">= 3.0.3", require: false + gem 'kettle-soup-cover', '~> 3.0', '>= 3.0.3', require: false end else - eval_gemfile "coverage_local.gemfile" + eval_gemfile 'coverage_local.gemfile' end diff --git a/gems/markdown-merge/gemfiles/modular/coverage_local.gemfile b/gems/markdown-merge/gemfiles/modular/coverage_local.gemfile index bac3538d7..647eab77a 100644 --- a/gems/markdown-merge/gemfiles/modular/coverage_local.gemfile +++ b/gems/markdown-merge/gemfiles/modular/coverage_local.gemfile @@ -11,21 +11,19 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] -nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) +nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] +nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == "nomono" } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - if nomono_locked - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] - end + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked end -Kernel.send(:gem, "nomono", *nomono_activation_requirements) -require "nomono/bundler" +Kernel.send(:gem, 'nomono', *nomono_activation_requirements) +require 'nomono/bundler' local_gems = %w[kettle-dev kettle-test kettle-soup-cover kettle-drift] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) @@ -35,21 +33,21 @@ local_gems_to_eval = local_gems - %w[markdown-merge] - declared_gems platform :mri do eval_nomono_gems( gems: local_gems_to_eval, - prefix: "KETTLE_DEV", - path_env: "KETTLE_DEV_DEV", - vendored_gems_env: "VENDORED_GEMS", - vendor_gem_dir_env: "VENDOR_GEM_DIR", - debug_env: "KETTLE_DEV_DEBUG" + prefix: 'KETTLE_DEV', + path_env: 'KETTLE_DEV_DEV', + vendored_gems_env: 'VENDORED_GEMS', + vendor_gem_dir_env: 'VENDOR_GEM_DIR', + debug_env: 'KETTLE_DEV_DEBUG' ) - if ENV.fetch("GALTZO_FLOSS_DEV", "false").casecmp("false") != 0 + if ENV.fetch('GALTZO_FLOSS_DEV', 'false').casecmp('false') != 0 eval_nomono_gems( gems: %w[turbo_tests2], - prefix: "GALTZO_FLOSS", - path_env: "GALTZO_FLOSS_DEV", - vendored_gems_env: "GALTZO_FLOSS_VENDORED_GEMS", - vendor_gem_dir_env: "GALTZO_FLOSS_VENDOR_GEM_DIR", - debug_env: "GALTZO_FLOSS_DEBUG" + prefix: 'GALTZO_FLOSS', + path_env: 'GALTZO_FLOSS_DEV', + vendored_gems_env: 'GALTZO_FLOSS_VENDORED_GEMS', + vendor_gem_dir_env: 'GALTZO_FLOSS_VENDOR_GEM_DIR', + debug_env: 'GALTZO_FLOSS_DEBUG' ) end end diff --git a/gems/markdown-merge/gemfiles/modular/debug.gemfile b/gems/markdown-merge/gemfiles/modular/debug.gemfile index 4e15b1a3a..eed8d4d1e 100644 --- a/gems/markdown-merge/gemfiles/modular/debug.gemfile +++ b/gems/markdown-merge/gemfiles/modular/debug.gemfile @@ -13,10 +13,10 @@ platform :mri do # Debugging - Ensure ENV["DEBUG"] == "true" to use debuggers within spec suite # Use binding.break, binding.b, or debugger in code - gem "debug", ">= 1.1" # ruby >= 2.7 + gem 'debug', '>= 1.1' # ruby >= 2.7 # Dev Console - Binding.pry - Irb replacement # gem "pry", "~> 0.14" # ruby >= 2.0 end -gem "gem_bench", "~> 2.0", ">= 2.0.5" +gem 'gem_bench', '~> 2.0', '>= 2.0.5' diff --git a/gems/markdown-merge/gemfiles/modular/documentation.gemfile b/gems/markdown-merge/gemfiles/modular/documentation.gemfile index d8215416e..9d4535f12 100644 --- a/gems/markdown-merge/gemfiles/modular/documentation.gemfile +++ b/gems/markdown-merge/gemfiles/modular/documentation.gemfile @@ -7,20 +7,20 @@ # # Documentation -gem "kramdown", "~> 2.5", ">= 2.5.2", require: false # Ruby >= 2.5 -gem "kramdown-parser-gfm", "~> 1.1", require: false # Ruby >= 2.3 -gem "yaml-converter", "~> 0.2", ">= 0.2.3", require: false # Ruby >= 3.2 -gem "yard", "~> 0.9", ">= 0.9.45", require: false -gem "yard-junk", "~> 0.1", ">= 0.1.0", require: false # Ruby >= 3.1 -gem "yard-relative_markdown_links", "~> 0.6", require: false +gem 'kramdown', '~> 2.5', '>= 2.5.2', require: false # Ruby >= 2.5 +gem 'kramdown-parser-gfm', '~> 1.1', require: false # Ruby >= 2.3 +gem 'yaml-converter', '~> 0.2', '>= 0.2.3', require: false # Ruby >= 3.2 +gem 'yard', '~> 0.9', '>= 0.9.45', require: false +gem 'yard-junk', '~> 0.1', '>= 0.1.0', require: false # Ruby >= 3.1 +gem 'yard-relative_markdown_links', '~> 0.6', require: false -if ENV.fetch("GALTZO_FLOSS_DEV", "false").casecmp("false").zero? - gem "yard-fence", "~> 0.9", ">= 0.9.6", require: false # Ruby >= 3.2 - gem "yard-timekeeper", "~> 0.2", ">= 0.2.4", require: false - gem "yard-yaml", "~> 0.2", ">= 0.2.3", require: false +if ENV.fetch('GALTZO_FLOSS_DEV', 'false').casecmp('false').zero? + gem 'yard-fence', '~> 0.9', '>= 0.9.6', require: false # Ruby >= 3.2 + gem 'yard-timekeeper', '~> 0.2', '>= 0.2.4', require: false + gem 'yard-yaml', '~> 0.2', '>= 0.2.3', require: false else - eval_gemfile "documentation_local.gemfile" + eval_gemfile 'documentation_local.gemfile' end # Std Lib extractions -gem "rdoc", "~> 6.11", require: false unless ENV.fetch("KJ_FRAMEWORK_MATRIX_GEM", "") == "rdoc" +gem 'rdoc', '~> 6.11', require: false unless ENV.fetch('KJ_FRAMEWORK_MATRIX_GEM', '') == 'rdoc' diff --git a/gems/markdown-merge/gemfiles/modular/documentation_local.gemfile b/gems/markdown-merge/gemfiles/modular/documentation_local.gemfile index 61e166aa0..598b23cdd 100644 --- a/gems/markdown-merge/gemfiles/modular/documentation_local.gemfile +++ b/gems/markdown-merge/gemfiles/modular/documentation_local.gemfile @@ -11,21 +11,19 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] -nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) +nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] +nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == "nomono" } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - if nomono_locked - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] - end + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked end -Kernel.send(:gem, "nomono", *nomono_activation_requirements) -require "nomono/bundler" +Kernel.send(:gem, 'nomono', *nomono_activation_requirements) +require 'nomono/bundler' local_gems = %w[yard-fence yard-timekeeper yard-yaml] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) @@ -34,9 +32,9 @@ local_gems_to_eval = local_gems - %w[markdown-merge] - declared_gems # export GALTZO_FLOSS_DEV=/path/to/galtzo-floss eval_nomono_gems( gems: local_gems_to_eval, - prefix: "GALTZO_FLOSS", - path_env: "GALTZO_FLOSS_DEV", - vendored_gems_env: "GALTZO_FLOSS_VENDORED_GEMS", - vendor_gem_dir_env: "GALTZO_FLOSS_VENDOR_GEM_DIR", - debug_env: "GALTZO_FLOSS_DEBUG" + prefix: 'GALTZO_FLOSS', + path_env: 'GALTZO_FLOSS_DEV', + vendored_gems_env: 'GALTZO_FLOSS_VENDORED_GEMS', + vendor_gem_dir_env: 'GALTZO_FLOSS_VENDOR_GEM_DIR', + debug_env: 'GALTZO_FLOSS_DEBUG' ) diff --git a/gems/markdown-merge/gemfiles/modular/erb/r2/v3.0.gemfile b/gems/markdown-merge/gemfiles/modular/erb/r2/v3.0.gemfile index c03bd8d85..7c83a239b 100644 --- a/gems/markdown-merge/gemfiles/modular/erb/r2/v3.0.gemfile +++ b/gems/markdown-merge/gemfiles/modular/erb/r2/v3.0.gemfile @@ -1 +1 @@ -gem "erb", "~> 3.0" # ruby >= 2.7.0 +gem 'erb', '~> 3.0' # ruby >= 2.7.0 diff --git a/gems/markdown-merge/gemfiles/modular/erb/r3/v5.0.gemfile b/gems/markdown-merge/gemfiles/modular/erb/r3/v5.0.gemfile index 1bd029cc1..ec7ff451f 100644 --- a/gems/markdown-merge/gemfiles/modular/erb/r3/v5.0.gemfile +++ b/gems/markdown-merge/gemfiles/modular/erb/r3/v5.0.gemfile @@ -1 +1 @@ -gem "erb", "~> 6.0", ">= 6.0.6" # ruby >= 3.2.0 +gem 'erb', '~> 6.0', '>= 6.0.6' # ruby >= 3.2.0 diff --git a/gems/markdown-merge/gemfiles/modular/erb/r4/v5.0.gemfile b/gems/markdown-merge/gemfiles/modular/erb/r4/v5.0.gemfile index 1bd029cc1..ec7ff451f 100644 --- a/gems/markdown-merge/gemfiles/modular/erb/r4/v5.0.gemfile +++ b/gems/markdown-merge/gemfiles/modular/erb/r4/v5.0.gemfile @@ -1 +1 @@ -gem "erb", "~> 6.0", ">= 6.0.6" # ruby >= 3.2.0 +gem 'erb', '~> 6.0', '>= 6.0.6' # ruby >= 3.2.0 diff --git a/gems/markdown-merge/gemfiles/modular/erb/vHEAD.gemfile b/gems/markdown-merge/gemfiles/modular/erb/vHEAD.gemfile index 48fee4218..ea0101185 100644 --- a/gems/markdown-merge/gemfiles/modular/erb/vHEAD.gemfile +++ b/gems/markdown-merge/gemfiles/modular/erb/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 3.2 -gem "erb", github: "ruby/erb", branch: "master" +gem 'erb', github: 'ruby/erb', branch: 'master' diff --git a/gems/markdown-merge/gemfiles/modular/json/truffleruby_22_3.gemfile b/gems/markdown-merge/gemfiles/modular/json/truffleruby_22_3.gemfile index b0e69ab11..9b2f8d96a 100644 --- a/gems/markdown-merge/gemfiles/modular/json/truffleruby_22_3.gemfile +++ b/gems/markdown-merge/gemfiles/modular/json/truffleruby_22_3.gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -if RUBY_ENGINE == "truffleruby" && RUBY_ENGINE_VERSION.start_with?("22.3") +if RUBY_ENGINE == 'truffleruby' && RUBY_ENGINE_VERSION.start_with?('22.3') # TruffleRuby 22.3 ships the json default gem from its emulated MRI Ruby. - gem "json", "= 2.5.1" + gem 'json', '= 2.5.1' end diff --git a/gems/markdown-merge/gemfiles/modular/json/truffleruby_23_0.gemfile b/gems/markdown-merge/gemfiles/modular/json/truffleruby_23_0.gemfile index 7b2660a2b..d787a5ef4 100644 --- a/gems/markdown-merge/gemfiles/modular/json/truffleruby_23_0.gemfile +++ b/gems/markdown-merge/gemfiles/modular/json/truffleruby_23_0.gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -if RUBY_ENGINE == "truffleruby" && RUBY_ENGINE_VERSION.start_with?("23.0") +if RUBY_ENGINE == 'truffleruby' && RUBY_ENGINE_VERSION.start_with?('23.0') # TruffleRuby 23.0 ships the json default gem from its emulated MRI Ruby. - gem "json", "= 2.6.1" + gem 'json', '= 2.6.1' end diff --git a/gems/markdown-merge/gemfiles/modular/json/truffleruby_23_1.gemfile b/gems/markdown-merge/gemfiles/modular/json/truffleruby_23_1.gemfile index dfa21f2e4..d78486b0e 100644 --- a/gems/markdown-merge/gemfiles/modular/json/truffleruby_23_1.gemfile +++ b/gems/markdown-merge/gemfiles/modular/json/truffleruby_23_1.gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -if RUBY_ENGINE == "truffleruby" && RUBY_ENGINE_VERSION.start_with?("23.1") +if RUBY_ENGINE == 'truffleruby' && RUBY_ENGINE_VERSION.start_with?('23.1') # TruffleRuby 23.1 ships the json default gem from its emulated MRI Ruby. - gem "json", "= 2.6.3" + gem 'json', '= 2.6.3' end diff --git a/gems/markdown-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile b/gems/markdown-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile index 42e9d9bd4..e27f1bbae 100644 --- a/gems/markdown-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile +++ b/gems/markdown-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 -gem "mutex_m", "~> 0.2" +gem 'mutex_m', '~> 0.2' diff --git a/gems/markdown-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile b/gems/markdown-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile index 42e9d9bd4..e27f1bbae 100644 --- a/gems/markdown-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile +++ b/gems/markdown-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 -gem "mutex_m", "~> 0.2" +gem 'mutex_m', '~> 0.2' diff --git a/gems/markdown-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile b/gems/markdown-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile index 42e9d9bd4..e27f1bbae 100644 --- a/gems/markdown-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile +++ b/gems/markdown-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 -gem "mutex_m", "~> 0.2" +gem 'mutex_m', '~> 0.2' diff --git a/gems/markdown-merge/gemfiles/modular/mutex_m/vHEAD.gemfile b/gems/markdown-merge/gemfiles/modular/mutex_m/vHEAD.gemfile index 8af3b6fca..9dac2f6cb 100644 --- a/gems/markdown-merge/gemfiles/modular/mutex_m/vHEAD.gemfile +++ b/gems/markdown-merge/gemfiles/modular/mutex_m/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 (dependency of omniauth) -gem "mutex_m", github: "ruby/mutex_m", branch: "master" +gem 'mutex_m', github: 'ruby/mutex_m', branch: 'master' diff --git a/gems/markdown-merge/gemfiles/modular/optional.gemfile b/gems/markdown-merge/gemfiles/modular/optional.gemfile index 80bc45196..9ea429538 100644 --- a/gems/markdown-merge/gemfiles/modular/optional.gemfile +++ b/gems/markdown-merge/gemfiles/modular/optional.gemfile @@ -9,8 +9,8 @@ # Optional dependencies are not depended on directly, but may be used if present. # Required for curated binstubs generated by kettle-jem install -gem "rbs", ">= 3.0", require: false # ruby >= 3.1 +gem 'rbs', '>= 3.0', require: false # ruby >= 3.1 # Required for kettle-pre-release # URL parsing with Unicode support (falls back to URI if not available) -gem "addressable", ">= 2.8", "< 3" # ruby >= 2.2 +gem 'addressable', '>= 2.8', '< 3' # ruby >= 2.2 diff --git a/gems/markdown-merge/gemfiles/modular/rspec.gemfile b/gems/markdown-merge/gemfiles/modular/rspec.gemfile index 72fdf8b7f..2af210a41 100644 --- a/gems/markdown-merge/gemfiles/modular/rspec.gemfile +++ b/gems/markdown-merge/gemfiles/modular/rspec.gemfile @@ -1,4 +1,4 @@ -gem "rspec_junit_formatter", - github: "pboling/rspec_junit_formatter", - branch: "main", - ref: "9e6bcaaedd49477b62878ed568dc4ada5cc7cb5e" +gem 'rspec_junit_formatter', + github: 'pboling/rspec_junit_formatter', + branch: 'main', + ref: '9e6bcaaedd49477b62878ed568dc4ada5cc7cb5e' diff --git a/gems/markdown-merge/gemfiles/modular/runtime_heads.gemfile b/gems/markdown-merge/gemfiles/modular/runtime_heads.gemfile index 02f134c7f..ebf17c529 100644 --- a/gems/markdown-merge/gemfiles/modular/runtime_heads.gemfile +++ b/gems/markdown-merge/gemfiles/modular/runtime_heads.gemfile @@ -8,4 +8,4 @@ # Test against HEAD of runtime dependencies so we can proactively file bugs -eval_gemfile("x_std_libs/vHEAD.gemfile") +eval_gemfile('x_std_libs/vHEAD.gemfile') diff --git a/gems/markdown-merge/gemfiles/modular/stringio/r2/v3.0.gemfile b/gems/markdown-merge/gemfiles/modular/stringio/r2/v3.0.gemfile index e85bb18ee..3616f4e3a 100644 --- a/gems/markdown-merge/gemfiles/modular/stringio/r2/v3.0.gemfile +++ b/gems/markdown-merge/gemfiles/modular/stringio/r2/v3.0.gemfile @@ -2,4 +2,4 @@ # NOT SEMVER # Version 3.0.7 dropped support for Ruby <= 2.7 # Version 3.0.0 dropped support for Ruby <= 2.4 -gem "stringio", ">= 3.0" +gem 'stringio', '>= 3.0' diff --git a/gems/markdown-merge/gemfiles/modular/stringio/r3/v3.0.gemfile b/gems/markdown-merge/gemfiles/modular/stringio/r3/v3.0.gemfile index e85bb18ee..3616f4e3a 100644 --- a/gems/markdown-merge/gemfiles/modular/stringio/r3/v3.0.gemfile +++ b/gems/markdown-merge/gemfiles/modular/stringio/r3/v3.0.gemfile @@ -2,4 +2,4 @@ # NOT SEMVER # Version 3.0.7 dropped support for Ruby <= 2.7 # Version 3.0.0 dropped support for Ruby <= 2.4 -gem "stringio", ">= 3.0" +gem 'stringio', '>= 3.0' diff --git a/gems/markdown-merge/gemfiles/modular/stringio/r4/v3.0.gemfile b/gems/markdown-merge/gemfiles/modular/stringio/r4/v3.0.gemfile index e85bb18ee..3616f4e3a 100644 --- a/gems/markdown-merge/gemfiles/modular/stringio/r4/v3.0.gemfile +++ b/gems/markdown-merge/gemfiles/modular/stringio/r4/v3.0.gemfile @@ -2,4 +2,4 @@ # NOT SEMVER # Version 3.0.7 dropped support for Ruby <= 2.7 # Version 3.0.0 dropped support for Ruby <= 2.4 -gem "stringio", ">= 3.0" +gem 'stringio', '>= 3.0' diff --git a/gems/markdown-merge/gemfiles/modular/stringio/vHEAD.gemfile b/gems/markdown-merge/gemfiles/modular/stringio/vHEAD.gemfile index 5f2a74126..78f5f5d8a 100644 --- a/gems/markdown-merge/gemfiles/modular/stringio/vHEAD.gemfile +++ b/gems/markdown-merge/gemfiles/modular/stringio/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 (dependency of omniauth) -gem "stringio", github: "ruby/stringio", branch: "master" +gem 'stringio', github: 'ruby/stringio', branch: 'master' diff --git a/gems/markdown-merge/gemfiles/modular/style.gemfile b/gems/markdown-merge/gemfiles/modular/style.gemfile index 35de4dcd6..4dbcc02c0 100644 --- a/gems/markdown-merge/gemfiles/modular/style.gemfile +++ b/gems/markdown-merge/gemfiles/modular/style.gemfile @@ -9,23 +9,23 @@ # Style tasks run on the latest Ruby; RuboCop-LTS selects the compatibility # rules for the configured Ruby floor independently from task dependency floors. -gem "reek", "~> 6.5", ">= 6.5.0" +gem 'reek', '~> 6.5', '>= 6.5.0' platform :mri do - gem "appraisal2-rubocop", "~> 1.0", ">= 1.0.0", require: false - gem "rubocop-gradual", "~> 0.4", ">= 0.4.0" - gem "rubocop-minitest", "~> 0.40", ">= 0.40.0" - gem "rubocop-on-rbs", "~> 2.0", ">= 2.0.0" # ruby >= 3.2.0 + gem 'appraisal2-rubocop', '~> 1.0', '>= 1.0.0', require: false + gem 'rubocop-gradual', '~> 0.4', '>= 0.4.0' + gem 'rubocop-minitest', '~> 0.40', '>= 0.40.0' + gem 'rubocop-on-rbs', '~> 2.0', '>= 2.0.0' # ruby >= 3.2.0 # gem "rubocop", "~> 1.73", ">= 1.73.2" # constrained by standard - gem "rubocop-packaging", "~> 0.6", ">= 0.6.0" - gem "standard", "~> 1.56", ">= 1.56.0" + gem 'rubocop-packaging', '~> 0.6', '>= 0.6.0' + gem 'standard', '~> 1.56', '>= 1.56.0' - if ENV.fetch("RUBOCOP_LTS_LOCAL", "false").casecmp("false").zero? + if ENV.fetch('RUBOCOP_LTS_LOCAL', 'false').casecmp('false').zero? declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) - gem "rubocop-lts", "~> 24.2", ">= 24.2.1" unless declared_gems.include?("rubocop-lts") - gem "rubocop-lts-rspec", "~> 1.0", ">= 1.0.5" unless declared_gems.include?("rubocop-lts-rspec") - gem "rubocop-ruby3_2", "~> 3.0", ">= 3.0.6" unless declared_gems.include?("rubocop-ruby3_2") + gem 'rubocop-lts', '~> 24.2', '>= 24.2.1' unless declared_gems.include?('rubocop-lts') + gem 'rubocop-lts-rspec', '~> 1.0', '>= 1.0.5' unless declared_gems.include?('rubocop-lts-rspec') + gem 'rubocop-ruby3_2', '~> 3.0', '>= 3.0.6' unless declared_gems.include?('rubocop-ruby3_2') else - eval_gemfile("style_local.gemfile") + eval_gemfile('style_local.gemfile') end end diff --git a/gems/markdown-merge/gemfiles/modular/style_local.gemfile b/gems/markdown-merge/gemfiles/modular/style_local.gemfile index 9c53346ee..9ac180b1b 100644 --- a/gems/markdown-merge/gemfiles/modular/style_local.gemfile +++ b/gems/markdown-merge/gemfiles/modular/style_local.gemfile @@ -14,21 +14,19 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] -nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) +nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] +nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == "nomono" } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - if nomono_locked - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] - end + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked end -Kernel.send(:gem, "nomono", *nomono_activation_requirements) -require "nomono/bundler" +Kernel.send(:gem, 'nomono', *nomono_activation_requirements) +require 'nomono/bundler' local_gems = %w[rubocop-lts rubocop-lts-rspec rubocop-ruby3_2 standard-rubocop-lts] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) @@ -38,11 +36,11 @@ local_gems_to_eval = local_gems - %w[markdown-merge] - declared_gems platform :mri do eval_nomono_gems( gems: local_gems_to_eval, - prefix: "RUBOCOP_LTS", - path_env: "RUBOCOP_LTS_LOCAL", - vendored_gems_env: "VENDORED_GEMS", - vendor_gem_dir_env: "VENDOR_GEM_DIR", - debug_env: "RUBOCOP_LTS_DEBUG", - root: ["src", "rubocop-lts"] + prefix: 'RUBOCOP_LTS', + path_env: 'RUBOCOP_LTS_LOCAL', + vendored_gems_env: 'VENDORED_GEMS', + vendor_gem_dir_env: 'VENDOR_GEM_DIR', + debug_env: 'RUBOCOP_LTS_DEBUG', + root: %w[src rubocop-lts] ) end diff --git a/gems/markdown-merge/gemfiles/modular/templating.gemfile b/gems/markdown-merge/gemfiles/modular/templating.gemfile index 47138ffbb..a672de184 100644 --- a/gems/markdown-merge/gemfiles/modular/templating.gemfile +++ b/gems/markdown-merge/gemfiles/modular/templating.gemfile @@ -1,18 +1,18 @@ # frozen_string_literal: true -structuredmerge_remote = ENV.fetch("STRUCTUREDMERGE_DEV", "false").casecmp("false").zero? -kettle_remote = ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false").zero? +structuredmerge_remote = ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false').zero? +kettle_remote = ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? if structuredmerge_remote # Parser dependencies for released installs. - gem "tree_sitter_language_pack", "~> 1.13", ">= 1.13.3" + gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' # Merge recipes for released installs. - gem "kettle-jem", ">= 7.0" + gem 'kettle-jem', '>= 7.0' end if kettle_remote # Template/plugin checks for released installs. - gem "kettle-drift", "~> 1.0", ">= 1.0.6", require: false + gem 'kettle-drift', '~> 1.0', '>= 1.0.6', require: false end # Set STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local development with path-based dependencies. @@ -21,4 +21,4 @@ end # # Set KETTLE_DEV_DEV=/path/to/my for local development with Kettle plugin gems. # When false (default / CI), released Kettle plugin gems are used. -eval_gemfile "templating_local.gemfile" unless structuredmerge_remote && kettle_remote +eval_gemfile 'templating_local.gemfile' unless structuredmerge_remote && kettle_remote diff --git a/gems/markdown-merge/gemfiles/modular/templating_local.gemfile b/gems/markdown-merge/gemfiles/modular/templating_local.gemfile index ddaba77fd..586e485d9 100644 --- a/gems/markdown-merge/gemfiles/modular/templating_local.gemfile +++ b/gems/markdown-merge/gemfiles/modular/templating_local.gemfile @@ -12,21 +12,19 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] -nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) +nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] +nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == "nomono" } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - if nomono_locked - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] - end + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked end -Kernel.send(:gem, "nomono", *nomono_activation_requirements) -require "nomono/bundler" +Kernel.send(:gem, 'nomono', *nomono_activation_requirements) +require 'nomono/bundler' structuredmerge_local_gems = %w[ tree_haver @@ -69,25 +67,25 @@ structuredmerge_local_gems_to_eval = structuredmerge_local_gems - %w[markdown-me kettle_dev_local_gems_to_eval = kettle_dev_local_gems - %w[markdown-merge] - declared_gems platform :mri do - if ENV.fetch("STRUCTUREDMERGE_DEV", "false").casecmp("false") != 0 + if ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false') != 0 eval_nomono_gems( gems: structuredmerge_local_gems_to_eval, - prefix: "STRUCTUREDMERGE", - path_env: "STRUCTUREDMERGE_DEV", - vendored_gems_env: "VENDORED_GEMS", - vendor_gem_dir_env: "VENDOR_GEM_DIR", - debug_env: "STRUCTUREDMERGE_DEBUG" + prefix: 'STRUCTUREDMERGE', + path_env: 'STRUCTUREDMERGE_DEV', + vendored_gems_env: 'VENDORED_GEMS', + vendor_gem_dir_env: 'VENDOR_GEM_DIR', + debug_env: 'STRUCTUREDMERGE_DEBUG' ) end - if ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false") != 0 + if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false') != 0 eval_nomono_gems( gems: kettle_dev_local_gems_to_eval, - prefix: "KETTLE_DEV", - path_env: "KETTLE_DEV_DEV", - vendored_gems_env: "VENDORED_GEMS", - vendor_gem_dir_env: "VENDOR_GEM_DIR", - debug_env: "KETTLE_DEV_DEBUG" + prefix: 'KETTLE_DEV', + path_env: 'KETTLE_DEV_DEV', + vendored_gems_env: 'VENDORED_GEMS', + vendor_gem_dir_env: 'VENDOR_GEM_DIR', + debug_env: 'KETTLE_DEV_DEBUG' ) end end diff --git a/gems/markdown-merge/gemfiles/modular/webrick/r4/v1.9.gemfile b/gems/markdown-merge/gemfiles/modular/webrick/r4/v1.9.gemfile index eaab4a473..b1329ba84 100644 --- a/gems/markdown-merge/gemfiles/modular/webrick/r4/v1.9.gemfile +++ b/gems/markdown-merge/gemfiles/modular/webrick/r4/v1.9.gemfile @@ -1 +1 @@ -gem "webrick", "~> 1.9" +gem 'webrick', '~> 1.9' diff --git a/gems/markdown-merge/gemfiles/modular/webrick/vHEAD.gemfile b/gems/markdown-merge/gemfiles/modular/webrick/vHEAD.gemfile index 8a789b634..c7e6f81a1 100644 --- a/gems/markdown-merge/gemfiles/modular/webrick/vHEAD.gemfile +++ b/gems/markdown-merge/gemfiles/modular/webrick/vHEAD.gemfile @@ -1 +1 @@ -gem "webrick", ">= 1.9" +gem 'webrick', '>= 1.9' diff --git a/gems/markdown-merge/gemfiles/modular/x_std_libs.gemfile b/gems/markdown-merge/gemfiles/modular/x_std_libs.gemfile index 77aad43f2..b1f43c097 100644 --- a/gems/markdown-merge/gemfiles/modular/x_std_libs.gemfile +++ b/gems/markdown-merge/gemfiles/modular/x_std_libs.gemfile @@ -1,12 +1,12 @@ ### Std Lib Extracted Gems ruby_version = Gem::Version.new(RUBY_VERSION) -if ruby_version >= Gem::Version.new("4.0") - eval_gemfile "x_std_libs/r4/libs.gemfile" -elsif ruby_version >= Gem::Version.new("3.2") - eval_gemfile "x_std_libs/r3/libs.gemfile" -elsif ruby_version >= Gem::Version.new("3.1") - eval_gemfile "x_std_libs/r3.1/libs.gemfile" +if ruby_version >= Gem::Version.new('4.0') + eval_gemfile 'x_std_libs/r4/libs.gemfile' +elsif ruby_version >= Gem::Version.new('3.2') + eval_gemfile 'x_std_libs/r3/libs.gemfile' +elsif ruby_version >= Gem::Version.new('3.1') + eval_gemfile 'x_std_libs/r3.1/libs.gemfile' else - eval_gemfile "x_std_libs/r2/libs.gemfile" + eval_gemfile 'x_std_libs/r2/libs.gemfile' end diff --git a/gems/markdown-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile b/gems/markdown-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile index 441c4f03a..16a5e3d70 100644 --- a/gems/markdown-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile +++ b/gems/markdown-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile @@ -1,3 +1,3 @@ -eval_gemfile "../../erb/r2/v3.0.gemfile" -eval_gemfile "../../mutex_m/r2/v0.3.gemfile" -eval_gemfile "../../stringio/r2/v3.0.gemfile" +eval_gemfile '../../erb/r2/v3.0.gemfile' +eval_gemfile '../../mutex_m/r2/v0.3.gemfile' +eval_gemfile '../../stringio/r2/v3.0.gemfile' diff --git a/gems/markdown-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile b/gems/markdown-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile index c293a3ddd..220ff95c1 100644 --- a/gems/markdown-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile +++ b/gems/markdown-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile @@ -1,3 +1,3 @@ -eval_gemfile "../../erb/r3/v5.0.gemfile" -eval_gemfile "../../mutex_m/r3/v0.3.gemfile" -eval_gemfile "../../stringio/r3/v3.0.gemfile" +eval_gemfile '../../erb/r3/v5.0.gemfile' +eval_gemfile '../../mutex_m/r3/v0.3.gemfile' +eval_gemfile '../../stringio/r3/v3.0.gemfile' diff --git a/gems/markdown-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile b/gems/markdown-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile index eb5574247..e2f6501eb 100644 --- a/gems/markdown-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile +++ b/gems/markdown-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile @@ -1,6 +1,6 @@ -eval_gemfile "../../erb/r4/v5.0.gemfile" -eval_gemfile "../../mutex_m/r4/v0.3.gemfile" -eval_gemfile "../../stringio/r4/v3.0.gemfile" -eval_gemfile "../../benchmark/r4/v0.5.gemfile" -eval_gemfile "../../cgi/r4/v0.5.gemfile" -eval_gemfile "../../webrick/r4/v1.9.gemfile" +eval_gemfile '../../erb/r4/v5.0.gemfile' +eval_gemfile '../../mutex_m/r4/v0.3.gemfile' +eval_gemfile '../../stringio/r4/v3.0.gemfile' +eval_gemfile '../../benchmark/r4/v0.5.gemfile' +eval_gemfile '../../cgi/r4/v0.5.gemfile' +eval_gemfile '../../webrick/r4/v1.9.gemfile' diff --git a/gems/markdown-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile b/gems/markdown-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile index d4d5b16c9..ab75cccf1 100644 --- a/gems/markdown-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile +++ b/gems/markdown-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile @@ -1,6 +1,6 @@ -eval_gemfile "../erb/vHEAD.gemfile" -eval_gemfile "../mutex_m/vHEAD.gemfile" -eval_gemfile "../stringio/vHEAD.gemfile" -eval_gemfile "../benchmark/vHEAD.gemfile" -eval_gemfile "../cgi/vHEAD.gemfile" -eval_gemfile "../webrick/vHEAD.gemfile" +eval_gemfile '../erb/vHEAD.gemfile' +eval_gemfile '../mutex_m/vHEAD.gemfile' +eval_gemfile '../stringio/vHEAD.gemfile' +eval_gemfile '../benchmark/vHEAD.gemfile' +eval_gemfile '../cgi/vHEAD.gemfile' +eval_gemfile '../webrick/vHEAD.gemfile' diff --git a/gems/markly-merge/Gemfile.lock b/gems/markly-merge/Gemfile.lock index 6eb29530a..781c75345 100644 --- a/gems/markly-merge/Gemfile.lock +++ b/gems/markly-merge/Gemfile.lock @@ -6,6 +6,265 @@ PATH markly (~> 0.9) version_gem (~> 1.1, >= 1.1.9) +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly + specs: + ast-crispr-markdown-markly (7.1.0) + ast-crispr (= 7.1.0) + markly-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism + specs: + ast-crispr-ruby-prism (7.1.0) + ast-crispr (= 7.1.0) + prism-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr + specs: + ast-crispr (7.1.0) + ast-merge (= 7.1.0) + service_actor (~> 3.9) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git + specs: + ast-merge-git (7.1.0) + ast-merge (= 7.1.0) + json-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge + specs: + ast-merge (7.1.0) + benchmark + token-resolver (~> 2.0, >= 2.0.4) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template + specs: + ast-template (7.1.0) + ast-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge + specs: + bash-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge + specs: + binary-merge (7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge + specs: + citrus-toml-merge (7.1.0) + toml-merge (= 7.1.0) + toml-rb (~> 4.1) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge + specs: + commonmarker-merge (7.1.0) + commonmarker (~> 2.2) + markdown-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge + specs: + dotenv-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge + specs: + go-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge + specs: + json-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem + specs: + kettle-jem (7.1.0) + addressable (>= 2.8, < 3) + ast-crispr-markdown-markly (= 7.1.0) + ast-crispr-ruby-prism (= 7.1.0) + ast-merge (= 7.1.0) + bash-merge (= 7.1.0) + citrus-toml-merge (= 7.1.0) + commonmarker-merge (= 7.1.0) + dotenv-merge (= 7.1.0) + json-merge (= 7.1.0) + kettle-dev (~> 2.3, >= 2.3.5) + kettle-rb (~> 0.1, >= 0.1.4) + kramdown-merge (= 7.1.0) + markdown-merge (= 7.1.0) + markly-merge (= 7.1.0) + prism-merge (= 7.1.0) + psych-merge (= 7.1.0) + rbs (>= 3.10) + rbs-merge (= 7.1.0) + ruby-merge (= 7.1.0) + token-resolver (~> 2.0, >= 2.0.4) + toml-merge (= 7.1.0) + toml-rb (~> 4.2) + tree_haver (= 7.1.0) + yaml-merge (= 7.1.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge + specs: + kramdown-merge (7.1.0) + kramdown (~> 2.5) + markdown-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge + specs: + markdown-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge + specs: + parslet-toml-merge (7.1.0) + toml (~> 0.3) + toml-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge + specs: + plain-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge + specs: + prism-merge (7.1.0) + prism (~> 1.6) + ruby-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge + specs: + psych-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + yaml-merge (= 7.1.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge + specs: + rbs-merge (7.1.0) + ast-merge (= 7.1.0) + rbs (>= 3.10) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge + specs: + ruby-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge + specs: + rust-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb + specs: + smorg-rb (7.1.0) + ast-merge (= 7.1.0) + ast-merge-git (= 7.1.0) + go-merge (= 7.1.0) + json-merge (= 7.1.0) + kettle-jem (= 7.1.0) + markly-merge (= 7.1.0) + plain-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge + specs: + toml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver + specs: + tree_haver (7.1.0) + citrus (~> 3.0) + parslet (~> 2.0) + tree_sitter_language_pack (>= 1.13.2, < 2.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge + specs: + typescript-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge + specs: + yaml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge + specs: + zip-merge (7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + GEM remote: https://gem.coop/ specs: @@ -17,11 +276,6 @@ GEM rake (>= 10) thor (>= 0.14) ast (2.4.3) - ast-merge (7.1.0) - benchmark - token-resolver (~> 2.0, >= 2.0.4) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) backports (3.25.3) benchmark (0.5.0) bigdecimal (4.1.2) @@ -30,6 +284,7 @@ GEM thor (~> 1.0) citrus (3.0.2) cmdparse (3.0.7) + commonmarker (2.9.0-x86_64-linux) concurrent-ruby (1.3.8) date (3.5.1) debug (1.11.1) @@ -93,6 +348,8 @@ GEM kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) + kettle-drift (1.0.6) + version_gem (~> 1.1, >= 1.1.14) kettle-rb (0.1.4) kettle-soup-cover (1.1.3) simplecov (~> 0.22) @@ -121,10 +378,6 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) - markdown-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) markly (0.16.0) mutex_m (0.3.0) nokogiri (1.19.4-x86_64-linux-gnu) @@ -252,6 +505,8 @@ GEM ruby-progressbar (1.13.0) ruby_engine (2.0.3) ruby_version (1.0.3) + service_actor (3.9.4) + zeitwerk (>= 1.0) silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) @@ -303,12 +558,12 @@ GEM timecop (>= 0.7, < 1) token-resolver (2.0.4) parslet (~> 2.0) - version_gem (~> 1.1, >= 1.1.14) - tree_haver (7.1.0) - citrus (~> 3.0) - parslet (~> 2.0) - tree_sitter_language_pack (>= 1.13.2, < 2.0) - version_gem (~> 1.1, >= 1.1.9) + version_gem (~> 1.1, >= 1.1.13) + toml (0.3.0) + parslet (>= 1.8.0, < 3.0.0) + toml-rb (4.2.0) + citrus (~> 3.0, > 3.0) + racc (~> 1.7) tree_sitter_language_pack (1.13.3-x86_64-linux) sorbet-runtime (~> 0.5) tsort (0.2.0) @@ -352,23 +607,45 @@ PLATFORMS DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) + ast-crispr! + ast-crispr-markdown-markly! + ast-crispr-ruby-prism! + ast-merge! + ast-merge-git! + ast-template! + bash-merge! benchmark (~> 0.5, >= 0.5.0) + binary-merge! bundler-audit (~> 0.9.3) + citrus-toml-merge! + commonmarker-merge! debug (>= 1.1) + dotenv-merge! erb (~> 6.0, >= 6.0.4) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.0) + go-merge! irb (~> 1.17) + json-merge! kettle-dev (~> 2.0, >= 2.2.25) + kettle-drift (~> 1.0, >= 1.0.5) + kettle-jem! kettle-soup-cover (~> 1.0, >= 1.1.3) kettle-test (~> 2.0, >= 2.0.9) kramdown (~> 2.5, >= 2.5.1) + kramdown-merge! kramdown-parser-gfm (~> 1.1) + markdown-merge! markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) + parslet-toml-merge! + plain-merge! + prism-merge! + psych-merge! rake (~> 13.0) rbs (>= 3.0) + rbs-merge! rdoc (~> 6.11) reek (~> 6.5) require_bench (~> 1.0, >= 1.0.4) @@ -377,31 +654,49 @@ DEPENDENCIES rubocop-packaging (~> 0.6, >= 0.6.0) rubocop-rspec (~> 3.6) rubocop-ruby3_2 (~> 3.0.0) + ruby-merge! ruby-progressbar (~> 1.13) + rust-merge! + smorg-rb! standard (>= 1.50) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) + toml-merge! + tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) + typescript-merge! yaml-converter (~> 0.1) + yaml-merge! yard (~> 0.9, >= 0.9.44) yard-fence (~> 0.9, >= 0.9.1) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) yard-timekeeper (~> 0.1) yard-yaml (~> 0.1, >= 0.1.2) + zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af ansi (1.6.0) sha256=ac9ea0c0ea8d32fb4e271348e609963ac78882f34b73836c2a02b3622e666658 appraisal2 (3.2.0) sha256=ccd0b767ac4060cd7af6d16747459b6990f49c39c7b4fb1f7d1146b1e97c492f ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 + ast-crispr (7.1.0) + ast-crispr-markdown-markly (7.1.0) + ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) + ast-merge-git (7.1.0) + ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 + bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd + binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 + citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 + commonmarker (2.9.0-x86_64-linux) sha256=8cfe92970eef585a19ddf6613224b91cab64d6029834661bda801f877c9c7f43 + commonmarker-merge (7.1.0) concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 @@ -409,6 +704,7 @@ CHECKSUMS diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 docile (1.4.1) sha256=96159be799bfa73cdb721b840e9802126e4e03dfc26863db73647204c727f21e + dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -421,15 +717,20 @@ CHECKSUMS gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f + go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 + json-merge (7.1.0) kettle-dev (2.3.7) sha256=eb370113cd030d03cbe2d33b31c99858951017e5ad21a17e9ed89dc3770028ee + kettle-drift (1.0.6) sha256=46eda08fa4411d1f3c6682a95eef1c9df4e94611b3949f49d4c7b43c0ed356a3 + kettle-jem (7.1.0) kettle-rb (0.1.4) sha256=9cef7ce4f7021666b7222292f29051e51eaf042e8a5db11f3f4dd72f74243fc1 kettle-soup-cover (1.1.3) sha256=a373827da22a7131d093afd32945e5b7d7a10a01ebfdded8fd2cb8230d69c8ad kettle-test (2.0.11) sha256=c710c90f7ab79d51f9452f0c09f5f90657e7a893f63583855c164d0b1b107ab2 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa + kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 @@ -446,15 +747,20 @@ CHECKSUMS parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 + parslet-toml-merge (7.1.0) + plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 + prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 + psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 + rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb @@ -482,9 +788,12 @@ CHECKSUMS rubocop-rspec (3.10.2) sha256=0b3e2ecc592cd10ecbf0095bb58d1e357905276e069643523cc19eb7495f65e2 rubocop-ruby3_2 (3.0.7) sha256=f53dd6d286fb05186214fc6ec116783e7f837030918e8931c05de773e98f8466 rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 + ruby-merge (7.1.0) ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 + rust-merge (7.1.0) + service_actor (3.9.4) sha256=e63b523630b9a7e62959b2a90113b08d2565b5de9c148557b281ef847c9539ce silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (0.22.0) sha256=fe2622c7834ff23b98066bb0a854284b2729a569ac659f82621fc22ef36213a5 simplecov-cobertura (3.2.0) sha256=70d702658677fcb20e5aceb6915ccf8bc62ff2ccd38b62b3ad5c9db5c0888740 @@ -493,6 +802,7 @@ CHECKSUMS simplecov-lcov (0.9.0) sha256=7a77a31e200a595ed4b0249493056efd0c920601f53d2ef135ca34ee796346cd simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_json_formatter (0.1.4) sha256=529418fbe8de1713ac2b2d612aa3daa56d316975d307244399fa4838c601b428 + smorg-rb (7.1.0) sorbet-runtime (0.6.13342) sha256=dbeb9892597f593ed2b29e38018912787f6c4e0c4b736d8af0d6bd3c63bde3c3 standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b @@ -506,22 +816,28 @@ CHECKSUMS timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.4) sha256=33b926958f504525bba3ed511ab66fbcbf8ef30390815e931436b30f27ffcad0 + toml (0.3.0) sha256=0a91d0f76a9036e84e44f95693b12f58d358c1df3ac8e3b5271f2056ecc6e4b9 + toml-merge (7.1.0) + toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 tree_haver (7.1.0) - tree_sitter_language_pack (1.13.3-x86_64-linux) - tsort (0.2.0) - turbo_tests2 (3.2.0) - unicode-display_width (3.2.0) - unicode-emoji (4.2.0) - version_gem (1.1.14) - yaml-converter (0.2.3) - yard (0.9.45) - yard-fence (0.9.6) - yard-junk (0.1.0) - yard-relative_markdown_links (0.6.0) - yard-timekeeper (0.2.4) - yard-yaml (0.2.3) - zeitwerk (2.8.2) - zlib (3.2.3) + tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 + tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f + turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 + typescript-merge (7.1.0) + unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 + unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f + version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 + yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 + yaml-merge (7.1.0) + yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 + yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 + yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd + yard-relative_markdown_links (0.6.0) sha256=3e5ffa85cbad9bac70bee5421774b190fb25d3bdf489323a5b3534f647d1a70e + yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a + yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 + zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 + zip-merge (7.1.0) + zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH 4.0.16 diff --git a/gems/prism-merge/.rubocop_gradual.lock b/gems/prism-merge/.rubocop_gradual.lock new file mode 100644 index 000000000..f60d8c7a3 --- /dev/null +++ b/gems/prism-merge/.rubocop_gradual.lock @@ -0,0 +1,707 @@ +{ + ".simplecov:3138125134": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "Rakefile:22363789": [ + [18, 121, 17, "Layout/LineLength: Line is too long. [137/120]", 174264873], + [79, 3, 1023, "Metrics/BlockLength: Block has too many lines. [32/25]", 54868638], + [163, 121, 22, "Layout/LineLength: Line is too long. [142/120]", 1367093088], + [166, 121, 18, "Layout/LineLength: Line is too long. [138/120]", 3881946477] + ], + "gemfiles/modular/benchmark/r4/v0.5.gemfile:3644720371": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/benchmark/vHEAD.gemfile:2838879269": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/cgi/r4/v0.5.gemfile:367169322": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/cgi/vHEAD.gemfile:2729540777": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/erb/r2/v3.0.gemfile:1688285565": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/erb/r3/v5.0.gemfile:2394062339": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/erb/r4/v5.0.gemfile:2394062339": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/erb/vHEAD.gemfile:981929959": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/mutex_m/r2/v0.3.gemfile:4055275004": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/mutex_m/r3/v0.3.gemfile:4055275004": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/mutex_m/r4/v0.3.gemfile:4055275004": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/mutex_m/vHEAD.gemfile:556854763": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/rspec.gemfile:2263543889": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/stringio/r2/v3.0.gemfile:821604304": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/stringio/r3/v3.0.gemfile:821604304": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/stringio/r4/v3.0.gemfile:821604304": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/stringio/vHEAD.gemfile:1045839691": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/webrick/r4/v1.9.gemfile:3092661193": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/webrick/vHEAD.gemfile:3867684682": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/x_std_libs.gemfile:2324400122": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/x_std_libs/r2/libs.gemfile:36276542": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] + ], + "gemfiles/modular/x_std_libs/r3/libs.gemfile:4030570297": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] + ], + "gemfiles/modular/x_std_libs/r4/libs.gemfile:732451732": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] + ], + "gemfiles/modular/x_std_libs/vHEAD.gemfile:2390363993": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] + ], + "lib/prism-merge.rb:226590672": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`prism-merge.rb`) should use snake_case.", 5381] + ], + "lib/prism/merge.rb:1325756945": [ + [12, 3, 12, "Style/Documentation: Missing top-level documentation comment for `module Prism::Merge`.", 2866359175], + [12, 3, 52397, "Metrics/ModuleLength: Module has too many lines. [1199/100]", 1955834049], + [13, 5, 11, "Style/ModuleFunction: Use `module_function` instead of `extend self`.", 1210897631], + [24, 5, 16, "Style/Documentation: Missing top-level documentation comment for `class Prism::Merge::ParseError`.", 362242086], + [120, 5, 1996, "Metrics/MethodLength: Method has too many lines. [42/10]", 709892915], + [165, 5, 1804, "Metrics/MethodLength: Method has too many lines. [37/10]", 3641862107], + [205, 5, 1012, "Metrics/MethodLength: Method has too many lines. [23/10]", 3112984532], + [243, 5, 695, "Metrics/MethodLength: Method has too many lines. [17/10]", 321495946], + [263, 5, 1801, "Metrics/MethodLength: Method has too many lines. [37/10]", 3355654893], + [264, 121, 5, "Layout/LineLength: Line is too long. [125/120]", 180584319], + [303, 5, 7357, "Metrics/AbcSize: Assignment Branch Condition size for `ruby_structured_edit_batch_report_projection` is too high. [<1, 31, 0> 31.02/17]", 2583247591], + [303, 5, 7357, "Metrics/MethodLength: Method has too many lines. [139/10]", 2583247591], + [304, 121, 5, "Layout/LineLength: Line is too long. [125/120]", 180584319], + [323, 121, 25, "Layout/LineLength: Line is too long. [145/120]", 949635646], + [361, 121, 42, "Layout/LineLength: Line is too long. [162/120]", 1330685294], + [445, 5, 932, "Metrics/AbcSize: Assignment Branch Condition size for `parse_ruby` is too high. [<3, 17, 7> 18.63/17]", 2894794051], + [445, 5, 932, "Metrics/MethodLength: Method has too many lines. [23/10]", 2894794051], + [473, 5, 491, "Metrics/MethodLength: Method has too many lines. [12/10]", 3211170428], + [488, 5, 3333, "Metrics/AbcSize: Assignment Branch Condition size for `parse_ruby_normalized` is too high. [<20, 68, 28> 76.21/17]", 3141190358], + [488, 5, 3333, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `parse_ruby_normalized` is too high. [23/7]", 3141190358], + [488, 5, 3333, "Metrics/MethodLength: Method has too many lines. [72/10]", 3141190358], + [488, 5, 3333, "Metrics/PerceivedComplexity: Perceived complexity for `parse_ruby_normalized` is too high. [23/8]", 3141190358], + [570, 5, 3671, "Metrics/AbcSize: Assignment Branch Condition size for `apply_edit_projection` is too high. [<14, 62, 19> 66.34/17]", 1859418783], + [570, 5, 3671, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `apply_edit_projection` is too high. [12/7]", 1859418783], + [570, 5, 3671, "Metrics/MethodLength: Method has too many lines. [66/10]", 1859418783], + [570, 5, 3671, "Metrics/PerceivedComplexity: Perceived complexity for `apply_edit_projection` is too high. [13/8]", 1859418783], + [616, 18, 176, "Style/StringConcatenation: Prefer string interpolation to string concatenation.", 3247522762], + [649, 5, 1505, "Metrics/MethodLength: Method has too many lines. [33/10]", 2499202345], + [649, 19, 292, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [10/5]", 676979469], + [710, 5, 583, "Metrics/MethodLength: Method has too many lines. [13/10]", 1484312517], + [727, 5, 551, "Metrics/AbcSize: Assignment Branch Condition size for `normalize_ruby_require_aliases` is too high. [<11, 15, 7> 19.87/17]", 2507514607], + [727, 5, 551, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `normalize_ruby_require_aliases` is too high. [8/7]", 2507514607], + [727, 5, 551, "Metrics/MethodLength: Method has too many lines. [17/10]", 2507514607], + [748, 5, 304, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `ruby_dsl_call_node` is too high. [8/7]", 2466841613], + [771, 5, 1305, "Metrics/AbcSize: Assignment Branch Condition size for `merge_ruby_with_reviewed_nested_outputs` is too high. [<7, 17, 5> 19.05/17]", 3657868136], + [771, 5, 1305, "Metrics/MethodLength: Method has too many lines. [27/10]", 3657868136], + [771, 48, 140, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 132256850], + [804, 5, 1015, "Metrics/MethodLength: Method has too many lines. [17/10]", 757789356], + [814, 121, 70, "Layout/LineLength: Line is too long. [190/120]", 1956194284], + [827, 5, 928, "Metrics/MethodLength: Method has too many lines. [16/10]", 1039420596], + [837, 121, 17, "Layout/LineLength: Line is too long. [137/120]", 3013228499], + [849, 5, 1003, "Metrics/MethodLength: Method has too many lines. [17/10]", 3313354796], + [859, 121, 62, "Layout/LineLength: Line is too long. [182/120]", 1636990749], + [872, 5, 936, "Metrics/MethodLength: Method has too many lines. [16/10]", 2825710110], + [882, 121, 17, "Layout/LineLength: Line is too long. [137/120]", 3013228499], + [906, 5, 662, "Metrics/MethodLength: Method has too many lines. [19/10]", 772959042], + [927, 7, 11, "Style/MultilineBlockChain: Avoid multi-line chains of blocks.", 848344986], + [930, 5, 849, "Metrics/AbcSize: Assignment Branch Condition size for `prism_ruby_discovered_surfaces` is too high. [<12, 16, 6> 20.88/17]", 2509812469], + [930, 5, 849, "Metrics/MethodLength: Method has too many lines. [23/10]", 2509812469], + [961, 5, 1195, "Metrics/AbcSize: Assignment Branch Condition size for `prism_ruby_surfaces_for_owner` is too high. [<6, 19, 3> 20.15/17]", 1713430182], + [961, 5, 1195, "Metrics/MethodLength: Method has too many lines. [20/10]", 1713430182], + [986, 5, 1216, "Metrics/AbcSize: Assignment Branch Condition size for `prism_ruby_example_surfaces` is too high. [<4, 20, 2> 20.49/17]", 2225356615], + [986, 5, 1216, "Metrics/MethodLength: Method has too many lines. [22/10]", 2225356615], + [1058, 5, 421, "Metrics/MethodLength: Method has too many lines. [14/10]", 26440736], + [1089, 5, 827, "Metrics/MethodLength: Method has too many lines. [18/10]", 4288402374], + [1130, 5, 876, "Metrics/MethodLength: Method has too many lines. [23/10]", 3423854231], + [1168, 5, 1155, "Metrics/AbcSize: Assignment Branch Condition size for `prism_comment_node` is too high. [<1, 22, 0> 22.02/17]", 4287909739], + [1168, 5, 1155, "Metrics/MethodLength: Method has too many lines. [28/10]", 4287909739], + [1199, 5, 888, "Metrics/MethodLength: Method has too many lines. [27/10]", 3798554661], + [1251, 5, 920, "Metrics/MethodLength: Method has too many lines. [23/10]", 917985568] + ], + "lib/prism/merge/begin_node_clause_body_merger.rb:1042804537": [ + [5, 5, 31, "Style/Documentation: Missing top-level documentation comment for `class Prism::Merge::BeginNodeClauseBodyMerger`.", 1242162299], + [19, 7, 1511, "Metrics/AbcSize: Assignment Branch Condition size for `merge` is too high. [<5, 37, 1> 37.35/17]", 3275719934], + [19, 7, 1511, "Metrics/MethodLength: Method has too many lines. [32/10]", 3275719934] + ], + "lib/prism/merge/begin_node_clause_body_support.rb:787370708": [ + [5, 5, 32, "Style/Documentation: Missing top-level documentation comment for `class Prism::Merge::BeginNodeClauseBodySupport`.", 3341069278], + [5, 5, 7504, "Metrics/ClassLength: Class has too many lines. [142/100]", 1403116805], + [8, 21, 100, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 4145084810], + [22, 7, 937, "Metrics/AbcSize: Assignment Branch Condition size for `clause_header_end_line` is too high. [<5, 29, 16> 33.5/17]", 2050282033], + [22, 7, 937, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `clause_header_end_line` is too high. [16/7]", 2050282033], + [22, 7, 937, "Metrics/MethodLength: Method has too many lines. [14/10]", 2050282033], + [22, 7, 937, "Metrics/PerceivedComplexity: Perceived complexity for `clause_header_end_line` is too high. [16/8]", 2050282033], + [35, 63, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], + [55, 9, 23, "Style/StringConcatenation: Prefer string interpolation to string concatenation.", 1178765246], + [58, 7, 419, "Metrics/MethodLength: Method has too many lines. [11/10]", 3825428834], + [81, 7, 2396, "Metrics/AbcSize: Assignment Branch Condition size for `clause_body_components` is too high. [<11, 30, 16> 35.74/17]", 199420029], + [81, 7, 2396, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `clause_body_components` is too high. [13/7]", 199420029], + [81, 7, 2396, "Metrics/MethodLength: Method has too many lines. [39/10]", 199420029], + [81, 7, 2396, "Metrics/PerceivedComplexity: Perceived complexity for `clause_body_components` is too high. [14/8]", 199420029], + [126, 30, 23, "Style/StringConcatenation: Prefer string interpolation to string concatenation.", 1178765246], + [164, 7, 862, "Metrics/AbcSize: Assignment Branch Condition size for `clause_bodies_have_matching_statements?` is too high. [<3, 19, 2> 19.34/17]", 4182083840], + [164, 7, 862, "Metrics/MethodLength: Method has too many lines. [15/10]", 4182083840] + ], + "lib/prism/merge/begin_node_clause_header_emitter.rb:2991300768": [ + [5, 5, 34, "Style/Documentation: Missing top-level documentation comment for `class Prism::Merge::BeginNodeClauseHeaderEmitter`.", 217025096], + [14, 7, 1600, "Metrics/AbcSize: Assignment Branch Condition size for `emit` is too high. [<10, 22, 17> 29.55/17]", 4242535078], + [14, 7, 1600, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `emit` is too high. [11/7]", 4242535078], + [14, 7, 1600, "Metrics/MethodLength: Method has too many lines. [25/10]", 4242535078], + [14, 7, 1600, "Metrics/PerceivedComplexity: Perceived complexity for `emit` is too high. [11/8]", 4242535078], + [14, 15, 164, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [8/5]", 2644486585] + ], + "lib/prism/merge/begin_node_merge_planner.rb:3840396716": [ + [5, 5, 27, "Style/Documentation: Missing top-level documentation comment for `class Prism::Merge::BeginNodeMergePlanner`.", 3356052894], + [5, 5, 9876, "Metrics/ClassLength: Class has too many lines. [185/100]", 148070692], + [30, 7, 2144, "Metrics/AbcSize: Assignment Branch Condition size for `plan` is too high. [<15, 34, 11> 38.76/17]", 3596380485], + [30, 7, 2144, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `plan` is too high. [10/7]", 3596380485], + [30, 7, 2144, "Metrics/MethodLength: Method has too many lines. [39/10]", 3596380485], + [30, 7, 2144, "Metrics/PerceivedComplexity: Perceived complexity for `plan` is too high. [11/8]", 3596380485], + [84, 7, 4383, "Metrics/AbcSize: Assignment Branch Condition size for `build_shared_clause_step` is too high. [<19, 70, 24> 76.4/17]", 2837542267], + [84, 7, 4383, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `build_shared_clause_step` is too high. [16/7]", 2837542267], + [84, 7, 4383, "Metrics/MethodLength: Method has too many lines. [73/10]", 2837542267], + [84, 7, 4383, "Metrics/PerceivedComplexity: Perceived complexity for `build_shared_clause_step` is too high. [18/8]", 2837542267], + [103, 121, 59, "Layout/LineLength: Line is too long. [179/120]", 357928082], + [105, 121, 55, "Layout/LineLength: Line is too long. [175/120]", 1163790852], + [142, 121, 35, "Layout/LineLength: Line is too long. [155/120]", 3447647282], + [143, 121, 40, "Layout/LineLength: Line is too long. [160/120]", 1267386383], + [167, 7, 2428, "Metrics/AbcSize: Assignment Branch Condition size for `build_unmatched_clause_step` is too high. [<2, 28, 21> 35.06/17]", 2984621385], + [167, 7, 2428, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `build_unmatched_clause_step` is too high. [17/7]", 2984621385], + [167, 7, 2428, "Metrics/MethodLength: Method has too many lines. [38/10]", 2984621385], + [167, 7, 2428, "Metrics/PerceivedComplexity: Perceived complexity for `build_unmatched_clause_step` is too high. [19/8]", 2984621385], + [188, 121, 25, "Layout/LineLength: Line is too long. [145/120]", 549521717], + [198, 121, 25, "Layout/LineLength: Line is too long. [145/120]", 619697310] + ], + "lib/prism/merge/begin_node_plan_emitter.rb:372252499": [ + [5, 5, 26, "Style/Documentation: Missing top-level documentation comment for `class Prism::Merge::BeginNodePlanEmitter`.", 926648201], + [14, 7, 740, "Metrics/MethodLength: Method has too many lines. [16/10]", 2040521865], + [14, 15, 105, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 1812434716], + [36, 7, 1205, "Metrics/MethodLength: Method has too many lines. [24/10]", 4164487211], + [36, 20, 127, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 466430575], + [76, 7, 1308, "Metrics/AbcSize: Assignment Branch Condition size for `emit_copied_unmatched_clause` is too high. [<6, 30, 11> 32.51/17]", 1339054986], + [76, 7, 1308, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `emit_copied_unmatched_clause` is too high. [10/7]", 1339054986], + [76, 7, 1308, "Metrics/MethodLength: Method has too many lines. [21/10]", 1339054986], + [76, 7, 1308, "Metrics/PerceivedComplexity: Perceived complexity for `emit_copied_unmatched_clause` is too high. [10/8]", 1339054986], + [76, 39, 146, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 2474530127] + ], + "lib/prism/merge/begin_node_rescue_semantics.rb:2034041801": [ + [5, 5, 30, "Style/Documentation: Missing top-level documentation comment for `class Prism::Merge::BeginNodeRescueSemantics`.", 4100560642], + [5, 5, 9899, "Metrics/ClassLength: Class has too many lines. [198/100]", 4227917508], + [13, 7, 1953, "Metrics/AbcSize: Assignment Branch Condition size for `normalized_clause_body_and_header_source` is too high. [<9, 13, 21> 26.29/17]", 1895019213], + [13, 7, 1953, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `normalized_clause_body_and_header_source` is too high. [15/7]", 1895019213], + [13, 7, 1953, "Metrics/MethodLength: Method has too many lines. [26/10]", 1895019213], + [13, 7, 1953, "Metrics/PerceivedComplexity: Perceived complexity for `normalized_clause_body_and_header_source` is too high. [17/8]", 1895019213], + [80, 7, 530, "Metrics/AbcSize: Assignment Branch Condition size for `local_variable_read_names_in` is too high. [<1, 16, 9> 18.38/17]", 2555890222], + [80, 7, 530, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `local_variable_read_names_in` is too high. [8/7]", 2555890222], + [80, 7, 530, "Metrics/MethodLength: Method has too many lines. [12/10]", 2555890222], + [80, 7, 530, "Metrics/PerceivedComplexity: Perceived complexity for `local_variable_read_names_in` is too high. [9/8]", 2555890222], + [134, 7, 724, "Metrics/AbcSize: Assignment Branch Condition size for `rewrite_local_reference_in_source` is too high. [<6, 18, 9> 21/17]", 2089802992], + [134, 7, 724, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `rewrite_local_reference_in_source` is too high. [9/7]", 2089802992], + [134, 7, 724, "Metrics/MethodLength: Method has too many lines. [12/10]", 2089802992], + [134, 7, 724, "Metrics/PerceivedComplexity: Perceived complexity for `rewrite_local_reference_in_source` is too high. [9/8]", 2089802992], + [182, 85, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], + [194, 7, 1233, "Metrics/AbcSize: Assignment Branch Condition size for `collect_source_defined_exception_definitions` is too high. [<4, 22, 9> 24.1/17]", 1970916346], + [194, 7, 1233, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `collect_source_defined_exception_definitions` is too high. [10/7]", 1970916346], + [194, 7, 1233, "Metrics/MethodLength: Method has too many lines. [24/10]", 1970916346] + ], + "lib/prism/merge/begin_node_structure.rb:1232724245": [ + [5, 5, 24, "Style/Documentation: Missing top-level documentation comment for `class Prism::Merge::BeginNodeStructure`.", 3506219929], + [5, 5, 4080, "Metrics/ClassLength: Class has too many lines. [101/100]", 1611393241], + [21, 7, 375, "Metrics/AbcSize: Assignment Branch Condition size for `boundary_lines` is too high. [<0, 28, 7> 28.86/17]", 3399008793], + [21, 7, 375, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `boundary_lines` is too high. [8/7]", 3399008793], + [33, 7, 251, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `clause_start_line` is too high. [8/7]", 1553904487], + [43, 7, 407, "Metrics/MethodLength: Method has too many lines. [12/10]", 3851339415], + [59, 7, 1089, "Metrics/AbcSize: Assignment Branch Condition size for `clause_regions` is too high. [<9, 38, 9> 40.07/17]", 1916795013], + [59, 7, 1089, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `clause_regions` is too high. [10/7]", 1916795013], + [59, 7, 1089, "Metrics/MethodLength: Method has too many lines. [22/10]", 1916795013], + [59, 7, 1089, "Metrics/PerceivedComplexity: Perceived complexity for `clause_regions` is too high. [10/8]", 1916795013], + [86, 7, 613, "Metrics/AbcSize: Assignment Branch Condition size for `clause_nodes_by_type` is too high. [<9, 19, 4> 21.4/17]", 1693909219], + [86, 7, 613, "Metrics/MethodLength: Method has too many lines. [12/10]", 1693909219], + [102, 11, 19, "Naming/PredicatePrefix: Rename `has_clause_or_body?` to `clause_or_body?`.", 2163996991], + [106, 7, 598, "Metrics/AbcSize: Assignment Branch Condition size for `line_map_for` is too high. [<13, 15, 6> 20.74/17]", 191778789] + ], + "lib/prism/merge/block_directive_detector.rb:3698866715": [ + [9, 5, 5028, "Metrics/ClassLength: Class has too many lines. [121/100]", 2587374670], + [10, 7, 1976, "Metrics/AbcSize: Assignment Branch Condition size for `promote_spans_to_nodes` is too high. [<23, 42, 32> 57.59/17]", 1038475655], + [10, 7, 1976, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `promote_spans_to_nodes` is too high. [24/7]", 1038475655], + [10, 7, 1976, "Metrics/MethodLength: Method has too many lines. [37/10]", 1038475655], + [10, 7, 1976, "Metrics/PerceivedComplexity: Perceived complexity for `promote_spans_to_nodes` is too high. [25/8]", 1038475655], + [35, 11, 7, "Style/MultilineBlockChain: Avoid multi-line chains of blocks.", 4045560504], + [108, 7, 832, "Metrics/MethodLength: Method has too many lines. [23/10]", 3204610677], + [134, 7, 722, "Metrics/AbcSize: Assignment Branch Condition size for `rebuild_statements` is too high. [<15, 17, 9> 24.39/17]", 3809085226], + [134, 7, 722, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `rebuild_statements` is too high. [10/7]", 3809085226], + [134, 7, 722, "Metrics/MethodLength: Method has too many lines. [15/10]", 3809085226], + [134, 7, 722, "Metrics/PerceivedComplexity: Perceived complexity for `rebuild_statements` is too high. [10/8]", 3809085226] + ], + "lib/prism/merge/comment/block.rb:3606937725": [ + [65, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 1573406415] + ], + "lib/prism/merge/comment/parser.rb:1277632686": [ + [31, 9, 1747, "Metrics/AbcSize: Assignment Branch Condition size for `parse` is too high. [<10, 28, 8> 30.79/17]", 2837146927], + [31, 9, 1747, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `parse` is too high. [8/7]", 2837146927], + [31, 9, 1747, "Metrics/MethodLength: Method has too many lines. [34/10]", 2837146927], + [31, 9, 1747, "Metrics/PerceivedComplexity: Perceived complexity for `parse` is too high. [9/8]", 2837146927], + [38, 11, 1390, "Metrics/BlockLength: Block has too many lines. [26/25]", 1396583578] + ], + "lib/prism/merge/comment_only_file_merger.rb:808070956": [ + [5, 5, 27, "Style/Documentation: Missing top-level documentation comment for `class Prism::Merge::CommentOnlyFileMerger`.", 1927029952], + [5, 5, 11907, "Metrics/ClassLength: Class has too many lines. [256/100]", 2729825792], + [27, 7, 1628, "Metrics/AbcSize: Assignment Branch Condition size for `merge` is too high. [<15, 32, 8> 36.24/17]", 2481561114], + [27, 7, 1628, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `merge` is too high. [8/7]", 2481561114], + [27, 7, 1628, "Metrics/MethodLength: Method has too many lines. [34/10]", 2481561114], + [78, 7, 661, "Metrics/MethodLength: Method has too many lines. [18/10]", 1523408112], + [100, 7, 1781, "Metrics/AbcSize: Assignment Branch Condition size for `build_output_plan` is too high. [<10, 34, 20> 40.69/17]", 994360926], + [100, 7, 1781, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `build_output_plan` is too high. [17/7]", 994360926], + [100, 7, 1781, "Metrics/MethodLength: Method has too many lines. [30/10]", 994360926], + [100, 7, 1781, "Metrics/PerceivedComplexity: Perceived complexity for `build_output_plan` is too high. [19/8]", 994360926], + [123, 121, 21, "Layout/LineLength: Line is too long. [141/120]", 530225423], + [149, 7, 1486, "Metrics/AbcSize: Assignment Branch Condition size for `add_comment_node_to_result` is too high. [<7, 34, 22> 41.1/17]", 1181795760], + [149, 7, 1486, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `add_comment_node_to_result` is too high. [16/7]", 1181795760], + [149, 7, 1486, "Metrics/MethodLength: Method has too many lines. [29/10]", 1181795760], + [149, 7, 1486, "Metrics/PerceivedComplexity: Perceived complexity for `add_comment_node_to_result` is too high. [20/8]", 1181795760], + [185, 7, 693, "Metrics/MethodLength: Method has too many lines. [16/10]", 3008008109], + [205, 7, 1035, "Metrics/AbcSize: Assignment Branch Condition size for `emit_layout_gap_to_result` is too high. [<6, 24, 11> 27.07/17]", 3441550295], + [205, 7, 1035, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `emit_layout_gap_to_result` is too high. [9/7]", 3441550295], + [205, 7, 1035, "Metrics/MethodLength: Method has too many lines. [17/10]", 3441550295], + [205, 7, 1035, "Metrics/PerceivedComplexity: Perceived complexity for `emit_layout_gap_to_result` is too high. [10/8]", 3441550295], + [230, 7, 665, "Metrics/AbcSize: Assignment Branch Condition size for `emit_comment_only_prefix_lines` is too high. [<5, 21, 4> 21.95/17]", 1939505075], + [243, 7, 942, "Metrics/MethodLength: Method has too many lines. [19/10]", 2012616838] + ], + "lib/prism/merge/file_analysis.rb:3845044313": [ + [16, 5, 56738, "Metrics/ClassLength: Class has too many lines. [631/100]", 2915560491], + [19, 7, 28, "Style/Documentation: Missing top-level documentation comment for `class Prism::Merge::FileAnalysis::NativeCommentAugmenter`.", 2321467727], + [19, 7, 5712, "Metrics/ClassLength: Class has too many lines. [121/100]", 3225634005], + [22, 9, 605, "Metrics/MethodLength: Method has too many lines. [16/10]", 3935631704], + [47, 9, 2672, "Metrics/AbcSize: Assignment Branch Condition size for `build!` is too high. [<19, 55, 23> 62.57/17]", 3140666915], + [47, 9, 2672, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `build!` is too high. [22/7]", 3140666915], + [47, 9, 2672, "Metrics/MethodLength: Method has too many lines. [47/10]", 3140666915], + [47, 9, 2672, "Metrics/PerceivedComplexity: Perceived complexity for `build!` is too high. [22/8]", 3140666915], + [120, 9, 779, "Metrics/AbcSize: Assignment Branch Condition size for `attach_orphan_region_to_nearest_owner` is too high. [<4, 18, 3> 18.68/17]", 714646861], + [120, 9, 779, "Metrics/MethodLength: Method has too many lines. [15/10]", 714646861], + [212, 7, 1703, "Metrics/MethodLength: Method has too many lines. [19/10]", 3233444968], + [350, 7, 686, "Metrics/AbcSize: Assignment Branch Condition size for `leading_comments_for_owner` is too high. [<7, 23, 9> 25.67/17]", 4287196323], + [350, 7, 686, "Metrics/MethodLength: Method has too many lines. [13/10]", 4287196323], + [373, 7, 1177, "Metrics/MethodLength: Method has too many lines. [23/10]", 853358252], + [415, 7, 587, "Metrics/MethodLength: Method has too many lines. [13/10]", 241044926], + [481, 7, 1099, "Metrics/AbcSize: Assignment Branch Condition size for `frozen_node?` is too high. [<3, 16, 7> 17.72/17]", 1886536218], + [481, 7, 1099, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `frozen_node?` is too high. [8/7]", 1886536218], + [615, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5858904], + [616, 121, 10, "Layout/LineLength: Line is too long. [130/120]", 442686854], + [687, 7, 779, "Metrics/AbcSize: Assignment Branch Condition size for `split_first_owner_preamble_entries` is too high. [<9, 20, 10> 24.1/17]", 2477766314], + [687, 7, 779, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `split_first_owner_preamble_entries` is too high. [9/7]", 2477766314], + [687, 7, 779, "Metrics/MethodLength: Method has too many lines. [11/10]", 2477766314], + [687, 7, 779, "Metrics/PerceivedComplexity: Perceived complexity for `split_first_owner_preamble_entries` is too high. [9/8]", 2477766314], + [697, 9, 11, "Style/MultilineBlockChain: Avoid multi-line chains of blocks.", 848344986], + [744, 7, 768, "Metrics/MethodLength: Method has too many lines. [15/10]", 3855207561], + [770, 7, 609, "Metrics/MethodLength: Method has too many lines. [15/10]", 3157294863], + [856, 7, 2509, "Metrics/AbcSize: Assignment Branch Condition size for `extract_and_integrate_all_nodes` is too high. [<11, 29, 16> 34.9/17]", 1138957888], + [856, 7, 2509, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `extract_and_integrate_all_nodes` is too high. [14/7]", 1138957888], + [856, 7, 2509, "Metrics/MethodLength: Method has too many lines. [32/10]", 1138957888], + [856, 7, 2509, "Metrics/PerceivedComplexity: Perceived complexity for `extract_and_integrate_all_nodes` is too high. [16/8]", 1138957888], + [925, 7, 1325, "Metrics/AbcSize: Assignment Branch Condition size for `extract_nodes_with_comments` is too high. [<3, 25, 7> 26.13/17]", 1498557944], + [925, 7, 1325, "Metrics/MethodLength: Method has too many lines. [23/10]", 1498557944], + [1037, 7, 11892, "Metrics/AbcSize: Assignment Branch Condition size for `compute_node_signature` is too high. [<19, 176, 83> 195.5/17]", 2654183611], + [1037, 7, 11892, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `compute_node_signature` is too high. [75/7]", 2654183611], + [1037, 7, 11892, "Metrics/MethodLength: Method has too many lines. [132/10]", 2654183611], + [1037, 7, 11892, "Metrics/PerceivedComplexity: Perceived complexity for `compute_node_signature` is too high. [61/8]", 2654183611], + [1098, 88, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], + [1102, 24, 300, "Metrics/BlockNesting: Avoid more than 3 levels of block nesting.", 2690302041], + [1102, 55, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], + [1313, 7, 680, "Metrics/AbcSize: Assignment Branch Condition size for `detect_gemspec_block_var` is too high. [<3, 22, 15> 26.8/17]", 3676370299], + [1313, 7, 680, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `detect_gemspec_block_var` is too high. [14/7]", 3676370299], + [1313, 7, 680, "Metrics/MethodLength: Method has too many lines. [14/10]", 3676370299], + [1313, 7, 680, "Metrics/PerceivedComplexity: Perceived complexity for `detect_gemspec_block_var` is too high. [14/8]", 3676370299] + ], + "lib/prism/merge/freeze_node.rb:2471800311": [ + [67, 7, 577, "Metrics/MethodLength: Method has too many lines. [11/10]", 2189574632], + [67, 21, 186, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [8/5]", 1006469938], + [124, 7, 2888, "Metrics/AbcSize: Assignment Branch Condition size for `validate_structure!` is too high. [<13, 32, 33> 47.77/17]", 3621186151], + [124, 7, 2888, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `validate_structure!` is too high. [24/7]", 3621186151], + [124, 7, 2888, "Metrics/MethodLength: Method has too many lines. [38/10]", 3621186151], + [124, 7, 2888, "Metrics/PerceivedComplexity: Perceived complexity for `validate_structure!` is too high. [25/8]", 3621186151] + ], + "lib/prism/merge/merge_result.rb:1970522956": [ + [9, 5, 12561, "Metrics/ClassLength: Class has too many lines. [238/100]", 3020348188], + [67, 7, 5058, "Metrics/AbcSize: Assignment Branch Condition size for `add_node` is too high. [<25, 54, 38> 70.6/17]", 2165268226], + [67, 7, 5058, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `add_node` is too high. [22/7]", 2165268226], + [67, 7, 5058, "Metrics/MethodLength: Method has too many lines. [94/10]", 2165268226], + [67, 7, 5058, "Metrics/PerceivedComplexity: Perceived complexity for `add_node` is too high. [31/8]", 2165268226], + [74, 9, 1617, "Metrics/BlockLength: Block has too many lines. [34/25]", 3544860826], + [175, 38, 40, "Style/StringConcatenation: Prefer string interpolation to string concatenation.", 3558364074], + [193, 9, 24, "Style/StringConcatenation: Prefer string interpolation to string concatenation.", 1750147806], + [219, 7, 901, "Metrics/AbcSize: Assignment Branch Condition size for `debug_output` is too high. [<5, 29, 5> 29.85/17]", 2776830125], + [219, 7, 901, "Metrics/MethodLength: Method has too many lines. [25/10]", 2776830125], + [296, 7, 903, "Metrics/MethodLength: Method has too many lines. [18/10]", 2752342414] + ], + "lib/prism/merge/method_match_refiner.rb:1593340636": [ + [103, 7, 705, "Metrics/AbcSize: Assignment Branch Condition size for `extract_param_names` is too high. [<2, 37, 16> 40.36/17]", 3200522215], + [103, 7, 705, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `extract_param_names` is too high. [17/7]", 3200522215], + [103, 7, 705, "Metrics/MethodLength: Method has too many lines. [11/10]", 3200522215], + [103, 7, 705, "Metrics/PerceivedComplexity: Perceived complexity for `extract_param_names` is too high. [17/8]", 3200522215], + [111, 49, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], + [114, 65, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765] + ], + "lib/prism/merge/nested_statement_walker.rb:3826169704": [ + [24, 7, 695, "Metrics/MethodLength: Method has too many lines. [16/10]", 3744912119], + [45, 7, 518, "Metrics/MethodLength: Method has too many lines. [12/10]", 2978518157] + ], + "lib/prism/merge/nocov_node.rb:2336029940": [ + [52, 19, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765] + ], + "lib/prism/merge/node_body_layout.rb:1642074264": [ + [5, 5, 20, "Style/Documentation: Missing top-level documentation comment for `class Prism::Merge::NodeBodyLayout`.", 1262407425], + [5, 5, 5858, "Metrics/ClassLength: Class has too many lines. [127/100]", 2663802475], + [14, 7, 413, "Metrics/AbcSize: Assignment Branch Condition size for `body_text` is too high. [<2, 17, 5> 17.83/17]", 1825622248], + [28, 9, 23, "Style/StringConcatenation: Prefer string interpolation to string concatenation.", 1178765246], + [31, 7, 241, "Metrics/AbcSize: Assignment Branch Condition size for `opening_line_text` is too high. [<0, 17, 1> 17.03/17]", 1468915915], + [37, 7, 237, "Metrics/AbcSize: Assignment Branch Condition size for `closing_line_text` is too high. [<0, 18, 1> 18.03/17]", 4077830027], + [73, 7, 1058, "Metrics/AbcSize: Assignment Branch Condition size for `statements_node` is too high. [<1, 30, 11> 31.97/17]", 4004813764], + [73, 7, 1058, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `statements_node` is too high. [12/7]", 4004813764], + [73, 7, 1058, "Metrics/MethodLength: Method has too many lines. [20/10]", 4004813764], + [73, 7, 1058, "Metrics/PerceivedComplexity: Perceived complexity for `statements_node` is too high. [10/8]", 4004813764], + [100, 7, 567, "Metrics/AbcSize: Assignment Branch Condition size for `body_start_line` is too high. [<1, 24, 4> 24.35/17]", 2388795687], + [103, 121, 17, "Layout/LineLength: Line is too long. [137/120]", 503895268], + [111, 7, 863, "Metrics/AbcSize: Assignment Branch Condition size for `body_end_line` is too high. [<2, 38, 7> 38.69/17]", 60007760], + [111, 7, 863, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `body_end_line` is too high. [8/7]", 60007760], + [111, 7, 863, "Metrics/MethodLength: Method has too many lines. [11/10]", 60007760], + [114, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 2068513341], + [116, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 270242779] + ], + "lib/prism/merge/node_emission_support.rb:388716709": [ + [5, 5, 25, "Style/Documentation: Missing top-level documentation comment for `class Prism::Merge::NodeEmissionSupport`.", 1335077453], + [5, 5, 42322, "Metrics/ClassLength: Class has too many lines. [775/100]", 2081266710], + [14, 7, 2734, "Metrics/AbcSize: Assignment Branch Condition size for `emit_dest_prefix_lines` is too high. [<18, 54, 18> 59.7/17]", 4241256208], + [14, 7, 2734, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `emit_dest_prefix_lines` is too high. [16/7]", 4241256208], + [14, 7, 2734, "Metrics/MethodLength: Method has too many lines. [54/10]", 4241256208], + [14, 7, 2734, "Metrics/PerceivedComplexity: Perceived complexity for `emit_dest_prefix_lines` is too high. [17/8]", 4241256208], + [19, 121, 1, "Layout/LineLength: Line is too long. [121/120]", 177656], + [20, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 3503445075], + [81, 7, 2526, "Metrics/AbcSize: Assignment Branch Condition size for `emit_removed_destination_node_comments` is too high. [<15, 38, 6> 41.29/17]", 3275408633], + [81, 7, 2526, "Metrics/MethodLength: Method has too many lines. [63/10]", 3275408633], + [153, 7, 1430, "Metrics/AbcSize: Assignment Branch Condition size for `emit_dest_gap_lines` is too high. [<7, 19, 11> 23.04/17]", 2013951205], + [153, 7, 1430, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `emit_dest_gap_lines` is too high. [9/7]", 2013951205], + [153, 7, 1430, "Metrics/MethodLength: Method has too many lines. [27/10]", 2013951205], + [153, 7, 1430, "Metrics/PerceivedComplexity: Perceived complexity for `emit_dest_gap_lines` is too high. [9/8]", 2013951205], + [154, 36, 21, "Style/NumericPredicate: Use `last_output_line.zero?` instead of `last_output_line == 0`.", 1942859694], + [160, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 3276957001], + [187, 7, 9316, "Metrics/AbcSize: Assignment Branch Condition size for `emit_matched_template_node` is too high. [<52, 122, 45> 140.0/17]", 605812917], + [187, 7, 9316, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `emit_matched_template_node` is too high. [43/7]", 605812917], + [187, 7, 9316, "Metrics/MethodLength: Method has too many lines. [151/10]", 605812917], + [187, 7, 9316, "Metrics/PerceivedComplexity: Perceived complexity for `emit_matched_template_node` is too high. [45/8]", 605812917], + [269, 121, 22, "Layout/LineLength: Line is too long. [142/120]", 2775680224], + [301, 121, 10, "Layout/LineLength: Line is too long. [130/120]", 249577804], + [331, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 2267103911], + [361, 121, 27, "Layout/LineLength: Line is too long. [147/120]", 988398654], + [373, 7, 6908, "Metrics/AbcSize: Assignment Branch Condition size for `emit_node` is too high. [<44, 90, 54> 113.8/17]", 2848614159], + [373, 7, 6908, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `emit_node` is too high. [38/7]", 2848614159], + [373, 7, 6908, "Metrics/MethodLength: Method has too many lines. [135/10]", 2848614159], + [373, 7, 6908, "Metrics/PerceivedComplexity: Perceived complexity for `emit_node` is too high. [44/8]", 2848614159], + [388, 121, 25, "Layout/LineLength: Line is too long. [145/120]", 3628174615], + [475, 121, 15, "Layout/LineLength: Line is too long. [135/120]", 650150522], + [480, 15, 379, "Metrics/BlockNesting: Avoid more than 3 levels of block nesting.", 3006808047], + [519, 121, 7, "Layout/LineLength: Line is too long. [127/120]", 2020907649], + [536, 7, 1166, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `filter_previous_destination_owned_template_leading_comments` is too high. [8/7]", 2076094754], + [536, 7, 1166, "Metrics/MethodLength: Method has too many lines. [15/10]", 2076094754], + [536, 71, 13, "Lint/UnusedMethodArgument: Unused method argument - `template_node`.", 1616609802], + [587, 7, 973, "Metrics/MethodLength: Method has too many lines. [15/10]", 1892360110], + [587, 60, 172, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [7/5]", 2784840176], + [588, 121, 5, "Layout/LineLength: Line is too long. [125/120]", 169966263], + [614, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2087656651], + [627, 7, 873, "Metrics/AbcSize: Assignment Branch Condition size for `previous_template_gap_already_precedes_leading_comments?` is too high. [<5, 19, 11> 22.52/17]", 268778340], + [627, 7, 873, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `previous_template_gap_already_precedes_leading_comments?` is too high. [9/7]", 268778340], + [627, 7, 873, "Metrics/MethodLength: Method has too many lines. [13/10]", 268778340], + [627, 7, 873, "Metrics/PerceivedComplexity: Perceived complexity for `previous_template_gap_already_precedes_leading_comments?` is too high. [9/8]", 268778340], + [636, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 618947799], + [696, 7, 457, "Metrics/MethodLength: Method has too many lines. [11/10]", 349820622], + [724, 7, 758, "Metrics/AbcSize: Assignment Branch Condition size for `partial_same_line_node?` is too high. [<8, 31, 5> 32.4/17]", 1768803955], + [775, 7, 597, "Metrics/MethodLength: Method has too many lines. [12/10]", 2742538822], + [775, 40, 67, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 725821220], + [792, 7, 552, "Metrics/MethodLength: Method has too many lines. [12/10]", 4255654885], + [815, 7, 845, "Metrics/MethodLength: Method has too many lines. [13/10]", 3468050888], + [846, 7, 1097, "Metrics/AbcSize: Assignment Branch Condition size for `filter_emitted_template_leading_comments` is too high. [<6, 18, 3> 19.21/17]", 2091395187], + [846, 7, 1097, "Metrics/MethodLength: Method has too many lines. [17/10]", 2091395187], + [882, 7, 822, "Metrics/MethodLength: Method has too many lines. [13/10]", 3499946440], + [899, 7, 1359, "Metrics/AbcSize: Assignment Branch Condition size for `collapse_matched_template_leading_prefix` is too high. [<7, 22, 10> 25.16/17]", 3976364089], + [899, 7, 1359, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `collapse_matched_template_leading_prefix` is too high. [9/7]", 3976364089], + [899, 7, 1359, "Metrics/MethodLength: Method has too many lines. [21/10]", 3976364089], + [899, 7, 1359, "Metrics/PerceivedComplexity: Perceived complexity for `collapse_matched_template_leading_prefix` is too high. [9/8]", 3976364089], + [943, 121, 37, "Layout/LineLength: Line is too long. [157/120]", 3703011298], + [947, 7, 746, "Metrics/MethodLength: Method has too many lines. [17/10]", 3532927627] + ], + "lib/prism/merge/partial_template_merger.rb:2303997532": [ + [14, 7, 826, "Metrics/MethodLength: Method has too many lines. [14/10]", 713706122], + [14, 21, 329, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [12/5]", 2768355468], + [55, 7, 487, "Metrics/MethodLength: Method has too many lines. [11/10]", 447766477], + [75, 7, 520, "Metrics/AbcSize: Assignment Branch Condition size for `node_to_text` is too high. [<1, 19, 6> 19.95/17]", 1593952791], + [84, 46, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765] + ], + "lib/prism/merge/recursive_merge_policy.rb:4204303290": [ + [5, 5, 26, "Style/Documentation: Missing top-level documentation comment for `class Prism::Merge::RecursiveMergePolicy`.", 1329613257], + [12, 7, 1132, "Metrics/AbcSize: Assignment Branch Condition size for `should_merge?` is too high. [<4, 25, 15> 29.43/17]", 4123619949], + [12, 7, 1132, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `should_merge?` is too high. [14/7]", 4123619949], + [12, 7, 1132, "Metrics/MethodLength: Method has too many lines. [20/10]", 4123619949], + [12, 7, 1132, "Metrics/PerceivedComplexity: Perceived complexity for `should_merge?` is too high. [13/8]", 4123619949], + [47, 7, 398, "Metrics/MethodLength: Method has too many lines. [18/10]", 385694759] + ], + "lib/prism/merge/recursive_node_body_merger.rb:1132596837": [ + [5, 5, 29, "Style/Documentation: Missing top-level documentation comment for `class Prism::Merge::RecursiveNodeBodyMerger`.", 3703318859], + [5, 5, 18505, "Metrics/ClassLength: Class has too many lines. [333/100]", 3196902308], + [12, 7, 12756, "Metrics/AbcSize: Assignment Branch Condition size for `merge` is too high. [<78, 262, 90> 287.8/17]", 1909933362], + [12, 7, 12756, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `merge` is too high. [70/7]", 1909933362], + [12, 7, 12756, "Metrics/MethodLength: Method has too many lines. [215/10]", 1909933362], + [12, 7, 12756, "Metrics/PerceivedComplexity: Perceived complexity for `merge` is too high. [75/8]", 1909933362], + [27, 121, 10, "Layout/LineLength: Line is too long. [130/120]", 929875726], + [62, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 518709914], + [67, 121, 10, "Layout/LineLength: Line is too long. [130/120]", 366676207], + [266, 7, 1221, "Metrics/AbcSize: Assignment Branch Condition size for `remap_inner_unresolved_review_state!` is too high. [<8, 22, 6> 24.17/17]", 3210674006], + [266, 7, 1221, "Metrics/MethodLength: Method has too many lines. [21/10]", 3210674006], + [293, 7, 1121, "Metrics/AbcSize: Assignment Branch Condition size for `remap_inner_unresolved_case` is too high. [<6, 24, 0> 24.74/17]", 3468635549], + [293, 7, 1121, "Metrics/MethodLength: Method has too many lines. [15/10]", 3468635549], + [376, 7, 826, "Metrics/AbcSize: Assignment Branch Condition size for `emit_trailing_layout_gap_lines` is too high. [<6, 18, 9> 21/17]", 2158299973], + [376, 7, 826, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `emit_trailing_layout_gap_lines` is too high. [8/7]", 2158299973], + [376, 7, 826, "Metrics/MethodLength: Method has too many lines. [17/10]", 2158299973], + [376, 7, 826, "Metrics/PerceivedComplexity: Perceived complexity for `emit_trailing_layout_gap_lines` is too high. [9/8]", 2158299973] + ], + "lib/prism/merge/ruby_doc_surface_analyzer.rb:3389668357": [ + [7, 5, 7100, "Metrics/ClassLength: Class has too many lines. [162/100]", 77379508], + [50, 7, 1408, "Metrics/AbcSize: Assignment Branch Condition size for `build_doc_comment_surface` is too high. [<10, 25, 5> 27.39/17]", 2414553577], + [50, 7, 1408, "Metrics/MethodLength: Method has too many lines. [28/10]", 2414553577], + [91, 7, 1256, "Metrics/AbcSize: Assignment Branch Condition size for `build_example_surface` is too high. [<4, 23, 2> 23.43/17]", 4074178203], + [91, 7, 1256, "Metrics/MethodLength: Method has too many lines. [25/10]", 4074178203], + [131, 7, 555, "Metrics/AbcSize: Assignment Branch Condition size for `doc_comment_entries` is too high. [<8, 18, 6> 20.59/17]", 358090808] + ], + "lib/prism/merge/scaffold_chunk_remover.rb:1404116850": [ + [34, 7, 2064, "Metrics/AbcSize: Assignment Branch Condition size for `call` is too high. [<21, 62, 22> 69.06/17]", 3983172586], + [34, 7, 2064, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `call` is too high. [21/7]", 3983172586], + [34, 7, 2064, "Metrics/MethodLength: Method has too many lines. [39/10]", 3983172586], + [34, 7, 2064, "Metrics/PerceivedComplexity: Perceived complexity for `call` is too high. [21/8]", 3983172586] + ], + "lib/prism/merge/smart_merger.rb:3814529034": [ + [48, 5, 42561, "Metrics/ClassLength: Class has too many lines. [603/100]", 3828655257], + [96, 7, 2032, "Metrics/MethodLength: Method has too many lines. [24/10]", 4118525224], + [96, 21, 595, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [18/5]", 1562155096], + [171, 7, 1325, "Metrics/AbcSize: Assignment Branch Condition size for `merge_with_debug` is too high. [<3, 24, 19> 30.76/17]", 605983530], + [171, 7, 1325, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `merge_with_debug` is too high. [20/7]", 605983530], + [171, 7, 1325, "Metrics/MethodLength: Method has too many lines. [27/10]", 605983530], + [171, 7, 1325, "Metrics/PerceivedComplexity: Perceived complexity for `merge_with_debug` is too high. [20/8]", 605983530], + [310, 7, 664, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `frozen_node?` is too high. [8/7]", 2577924190], + [352, 7, 508, "Metrics/MethodLength: Method has too many lines. [13/10]", 1368018500], + [442, 7, 1155, "Metrics/AbcSize: Assignment Branch Condition size for `build_signature_map` is too high. [<11, 16, 8> 21/17]", 3956321005], + [442, 7, 1155, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `build_signature_map` is too high. [8/7]", 3956321005], + [442, 7, 1155, "Metrics/MethodLength: Method has too many lines. [16/10]", 3956321005], + [483, 7, 2731, "Metrics/AbcSize: Assignment Branch Condition size for `preference_for_node` is too high. [<7, 22, 20> 30.55/17]", 1325207598], + [483, 7, 2731, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `preference_for_node` is too high. [21/7]", 1325207598], + [483, 7, 2731, "Metrics/MethodLength: Method has too many lines. [25/10]", 1325207598], + [483, 7, 2731, "Metrics/PerceivedComplexity: Perceived complexity for `preference_for_node` is too high. [21/8]", 1325207598], + [659, 32, 73, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 2261515417], + [670, 35, 79, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 1350141395], + [681, 42, 63, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 2615605084], + [852, 35, 213, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [8/5]", 720547751] + ], + "lib/prism/merge/source_line_lookup.rb:1098479933": [ + [5, 5, 23, "Style/Documentation: Missing top-level documentation comment for `module Prism::Merge::SourceLineLookup`.", 2168434862] + ], + "lib/prism/merge/top_level_merge_runner.rb:1106437552": [ + [38, 5, 61468, "Metrics/ClassLength: Class has too many lines. [1156/100]", 150648557], + [66, 7, 5196, "Metrics/AbcSize: Assignment Branch Condition size for `merge` is too high. [<22, 68, 9> 72.03/17]", 176450457], + [66, 7, 5196, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `merge` is too high. [9/7]", 176450457], + [66, 7, 5196, "Metrics/MethodLength: Method has too many lines. [75/10]", 176450457], + [66, 7, 5196, "Metrics/PerceivedComplexity: Perceived complexity for `merge` is too high. [10/8]", 176450457], + [162, 7, 2023, "Metrics/AbcSize: Assignment Branch Condition size for `start_runtime_session!` is too high. [<5, 48, 1> 48.27/17]", 2943824289], + [162, 7, 2023, "Metrics/MethodLength: Method has too many lines. [44/10]", 2943824289], + [212, 7, 1765, "Metrics/AbcSize: Assignment Branch Condition size for `complete_runtime_session!` is too high. [<2, 21, 9> 22.93/17]", 2968004900], + [212, 7, 1765, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `complete_runtime_session!` is too high. [8/7]", 2968004900], + [212, 7, 1765, "Metrics/MethodLength: Method has too many lines. [36/10]", 2968004900], + [212, 7, 1765, "Metrics/PerceivedComplexity: Perceived complexity for `complete_runtime_session!` is too high. [10/8]", 2968004900], + [229, 121, 11, "Layout/LineLength: Line is too long. [131/120]", 3907470478], + [254, 7, 584, "Metrics/MethodLength: Method has too many lines. [14/10]", 1615217394], + [272, 7, 589, "Metrics/AbcSize: Assignment Branch Condition size for `runtime_document_surface` is too high. [<1, 19, 1> 19.05/17]", 1835005228], + [272, 7, 589, "Metrics/MethodLength: Method has too many lines. [12/10]", 1835005228], + [288, 7, 3192, "Metrics/AbcSize: Assignment Branch Condition size for `register_discovered_surface_operations!` is too high. [<12, 60, 9> 61.85/17]", 3059111269], + [288, 7, 3192, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `register_discovered_surface_operations!` is too high. [10/7]", 3059111269], + [288, 7, 3192, "Metrics/MethodLength: Method has too many lines. [65/10]", 3059111269], + [288, 7, 3192, "Metrics/PerceivedComplexity: Perceived complexity for `register_discovered_surface_operations!` is too high. [10/8]", 3059111269], + [297, 9, 2237, "Metrics/BlockLength: Block has too many lines. [44/25]", 809738986], + [399, 7, 1643, "Metrics/AbcSize: Assignment Branch Condition size for `execute_child_operations!` is too high. [<5, 33, 5> 33.75/17]", 1049305146], + [399, 7, 1643, "Metrics/MethodLength: Method has too many lines. [36/10]", 1049305146], + [400, 9, 1570, "Metrics/BlockLength: Block has too many lines. [29/25]", 1597985402], + [404, 9, 31, "Style/MultilineBlockChain: Avoid multi-line chains of blocks.", 3553388257], + [448, 7, 631, "Metrics/MethodLength: Method has too many lines. [15/10]", 1652116821], + [466, 7, 1306, "Metrics/AbcSize: Assignment Branch Condition size for `merge_runtime_surface` is too high. [<2, 18, 4> 18.55/17]", 1347264970], + [466, 7, 1306, "Metrics/MethodLength: Method has too many lines. [29/10]", 1347264970], + [500, 7, 1393, "Metrics/AbcSize: Assignment Branch Condition size for `merge_runtime_doc_comment_surface` is too high. [<4, 23, 5> 23.87/17]", 3745645404], + [500, 7, 1393, "Metrics/MethodLength: Method has too many lines. [29/10]", 3745645404], + [534, 7, 826, "Metrics/AbcSize: Assignment Branch Condition size for `apply_runtime_doc_children` is too high. [<5, 24, 7> 25.5/17]", 1386022126], + [534, 7, 826, "Metrics/MethodLength: Method has too many lines. [15/10]", 1386022126], + [542, 16, 27, "Style/MultilineBlockChain: Avoid multi-line chains of blocks.", 1443167664], + [546, 9, 24, "Style/MultilineBlockChain: Avoid multi-line chains of blocks.", 644874689], + [554, 7, 1438, "Metrics/AbcSize: Assignment Branch Condition size for `apply_runtime_example_child` is too high. [<10, 44, 10> 46.22/17]", 2594444962], + [554, 7, 1438, "Metrics/MethodLength: Method has too many lines. [25/10]", 2594444962], + [556, 121, 11, "Layout/LineLength: Line is too long. [131/120]", 3651736697], + [599, 7, 518, "Metrics/MethodLength: Method has too many lines. [11/10]", 523939757], + [623, 7, 753, "Metrics/MethodLength: Method has too many lines. [15/10]", 3406860674], + [683, 7, 1514, "Metrics/AbcSize: Assignment Branch Condition size for `compute_similarity_pairs` is too high. [<17, 42, 11> 46.63/17]", 103276977], + [683, 7, 1514, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `compute_similarity_pairs` is too high. [11/7]", 103276977], + [683, 7, 1514, "Metrics/MethodLength: Method has too many lines. [27/10]", 103276977], + [683, 7, 1514, "Metrics/PerceivedComplexity: Perceived complexity for `compute_similarity_pairs` is too high. [11/8]", 103276977], + [735, 7, 545, "Metrics/MethodLength: Method has too many lines. [12/10]", 398381329], + [763, 7, 586, "Metrics/MethodLength: Method has too many lines. [11/10]", 1559638959], + [843, 7, 640, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `collect_nested_signatures` is too high. [10/7]", 3947424552], + [843, 7, 640, "Metrics/MethodLength: Method has too many lines. [13/10]", 3947424552], + [843, 7, 640, "Metrics/PerceivedComplexity: Perceived complexity for `collect_nested_signatures` is too high. [10/8]", 3947424552], + [845, 12, 9, "Style/NumericPredicate: Use `depth.positive?` instead of `depth > 0`.", 2180768870], + [869, 7, 1297, "Metrics/AbcSize: Assignment Branch Condition size for `nested_statement_children` is too high. [<2, 50, 17> 52.85/17]", 3818826989], + [869, 7, 1297, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `nested_statement_children` is too high. [17/7]", 3818826989], + [869, 7, 1297, "Metrics/MethodLength: Method has too many lines. [19/10]", 3818826989], + [869, 7, 1297, "Metrics/PerceivedComplexity: Perceived complexity for `nested_statement_children` is too high. [15/8]", 3818826989], + [877, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 3315454453], + [882, 93, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], + [883, 89, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], + [884, 93, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], + [899, 7, 754, "Metrics/AbcSize: Assignment Branch Condition size for `prepare_comment_augmenters!` is too high. [<1, 19, 0> 19.03/17]", 311364642], + [899, 7, 754, "Metrics/MethodLength: Method has too many lines. [12/10]", 311364642], + [1003, 7, 1707, "Metrics/AbcSize: Assignment Branch Condition size for `retained_owner_plan` is too high. [<16, 40, 12> 44.72/17]", 375532236], + [1003, 7, 1707, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `retained_owner_plan` is too high. [13/7]", 375532236], + [1003, 7, 1707, "Metrics/MethodLength: Method has too many lines. [33/10]", 375532236], + [1003, 7, 1707, "Metrics/PerceivedComplexity: Perceived complexity for `retained_owner_plan` is too high. [13/8]", 375532236], + [1003, 55, 17, "Lint/UnusedMethodArgument: Unused method argument - `dest_by_signature`.", 379778684], + [1024, 9, 250, "Style/CombinableLoops: Combine this loop with the previous loop.", 3315024098], + [1031, 121, 5, "Layout/LineLength: Line is too long. [125/120]", 180543822], + [1048, 7, 4811, "Metrics/AbcSize: Assignment Branch Condition size for `process_dest_node` is too high. [<23, 71, 16> 76.33/17]", 329713352], + [1048, 7, 4811, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `process_dest_node` is too high. [13/7]", 329713352], + [1048, 7, 4811, "Metrics/MethodLength: Method has too many lines. [90/10]", 329713352], + [1048, 7, 4811, "Metrics/PerceivedComplexity: Perceived complexity for `process_dest_node` is too high. [17/8]", 329713352], + [1048, 28, 279, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [9/5]", 2321512478], + [1190, 7, 757, "Metrics/MethodLength: Method has too many lines. [19/10]", 3306507447], + [1228, 44, 189, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 215272527], + [1259, 7, 888, "Metrics/MethodLength: Method has too many lines. [17/10]", 2638200013], + [1259, 31, 189, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [9/5]", 50070642], + [1281, 7, 719, "Metrics/MethodLength: Method has too many lines. [13/10]", 530865591], + [1299, 7, 1393, "Metrics/AbcSize: Assignment Branch Condition size for `process_non_recursive_match` is too high. [<10, 23, 7> 26.04/17]", 324106576], + [1299, 7, 1393, "Metrics/MethodLength: Method has too many lines. [29/10]", 324106576], + [1333, 7, 1106, "Metrics/AbcSize: Assignment Branch Condition size for `process_unresolved_non_recursive_match` is too high. [<3, 19, 3> 19.47/17]", 1476652897], + [1333, 7, 1106, "Metrics/MethodLength: Method has too many lines. [26/10]", 1476652897], + [1374, 7, 1935, "Metrics/AbcSize: Assignment Branch Condition size for `record_unresolved_match_case!` is too high. [<4, 26, 3> 26.48/17]", 456739474], + [1374, 7, 1935, "Metrics/MethodLength: Method has too many lines. [37/10]", 456739474], + [1459, 7, 1067, "Metrics/AbcSize: Assignment Branch Condition size for `advance_last_output_dest_line` is too high. [<6, 19, 6> 20.81/17]", 331135500], + [1459, 7, 1067, "Metrics/MethodLength: Method has too many lines. [11/10]", 331135500], + [1459, 40, 181, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 2038823112] + ], + "lib/prism/merge/wrapper_comment_support.rb:3046735928": [ + [5, 5, 27, "Style/Documentation: Missing top-level documentation comment for `class Prism::Merge::WrapperCommentSupport`.", 2211657316], + [5, 5, 17765, "Metrics/ClassLength: Class has too many lines. [358/100]", 370100972], + [14, 7, 3072, "Metrics/AbcSize: Assignment Branch Condition size for `filtered_leading_comments_for` is too high. [<26, 58, 27> 69.06/17]", 934788024], + [14, 7, 3072, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `filtered_leading_comments_for` is too high. [24/7]", 934788024], + [14, 7, 3072, "Metrics/MethodLength: Method has too many lines. [48/10]", 934788024], + [14, 7, 3072, "Metrics/PerceivedComplexity: Perceived complexity for `filtered_leading_comments_for` is too high. [27/8]", 934788024], + [24, 121, 10, "Layout/LineLength: Line is too long. [130/120]", 366676207], + [65, 11, 68, "Style/MultilineBlockChain: Avoid multi-line chains of blocks.", 2360366291], + [74, 73, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], + [95, 7, 1446, "Metrics/AbcSize: Assignment Branch Condition size for `emit_leading_comments` is too high. [<8, 16, 13> 22.11/17]", 86315238], + [95, 7, 1446, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `emit_leading_comments` is too high. [9/7]", 86315238], + [95, 7, 1446, "Metrics/MethodLength: Method has too many lines. [31/10]", 86315238], + [95, 7, 1446, "Metrics/PerceivedComplexity: Perceived complexity for `emit_leading_comments` is too high. [11/8]", 86315238], + [95, 32, 73, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 2261515417], + [98, 9, 1234, "Metrics/BlockLength: Block has too many lines. [28/25]", 357181412], + [134, 7, 953, "Metrics/MethodLength: Method has too many lines. [19/10]", 3183807785], + [134, 35, 79, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 1350141395], + [162, 7, 1228, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `emit_comment_region` is too high. [10/7]", 2201645681], + [162, 7, 1228, "Metrics/MethodLength: Method has too many lines. [31/10]", 2201645681], + [162, 7, 1228, "Metrics/PerceivedComplexity: Perceived complexity for `emit_comment_region` is too high. [11/8]", 2201645681], + [162, 30, 67, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 191987245], + [163, 29, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], + [202, 7, 777, "Metrics/MethodLength: Method has too many lines. [18/10]", 4073303022], + [202, 30, 68, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 3851519454], + [208, 9, 8, "Style/MultilineBlockChain: Avoid multi-line chains of blocks.", 359222635], + [226, 7, 1080, "Metrics/MethodLength: Method has too many lines. [27/10]", 296167644], + [226, 42, 63, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 2615605084], + [260, 7, 689, "Metrics/AbcSize: Assignment Branch Condition size for `append_inline_comment_entries` is too high. [<7, 19, 8> 21.77/17]", 1575903523], + [260, 7, 689, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `append_inline_comment_entries` is too high. [8/7]", 1575903523], + [260, 7, 689, "Metrics/MethodLength: Method has too many lines. [16/10]", 1575903523], + [260, 7, 689, "Metrics/PerceivedComplexity: Perceived complexity for `append_inline_comment_entries` is too high. [9/8]", 1575903523], + [288, 7, 607, "Metrics/AbcSize: Assignment Branch Condition size for `line_inline_comment_entries` is too high. [<3, 18, 7> 19.54/17]", 2131701672], + [288, 7, 607, "Metrics/MethodLength: Method has too many lines. [12/10]", 2131701672], + [338, 7, 1023, "Metrics/MethodLength: Method has too many lines. [19/10]", 2409125040], + [363, 7, 854, "Metrics/AbcSize: Assignment Branch Condition size for `runtime_doc_comment_operation_for` is too high. [<4, 24, 13> 27.59/17]", 1109173425], + [363, 7, 854, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `runtime_doc_comment_operation_for` is too high. [10/7]", 1109173425], + [363, 7, 854, "Metrics/MethodLength: Method has too many lines. [11/10]", 1109173425], + [363, 7, 854, "Metrics/PerceivedComplexity: Perceived complexity for `runtime_doc_comment_operation_for` is too high. [10/8]", 1109173425], + [373, 121, 10, "Layout/LineLength: Line is too long. [130/120]", 1843406524], + [381, 7, 755, "Metrics/AbcSize: Assignment Branch Condition size for `build_runtime_leading_region` is too high. [<5, 18, 4> 19.1/17]", 3130034424], + [381, 7, 755, "Metrics/MethodLength: Method has too many lines. [14/10]", 3130034424], + [411, 7, 850, "Metrics/AbcSize: Assignment Branch Condition size for `runtime_line_numbers_for` is too high. [<6, 26, 6> 27.35/17]", 966446340] + ], + "prism-merge.gemspec:2052428369": [ + [128, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 2821357214], + [143, 121, 50, "Layout/LineLength: Line is too long. [170/120]", 3888612416], + [144, 121, 29, "Layout/LineLength: Line is too long. [149/120]", 981994949], + [151, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 4229808912] + ], + "spec/fixtures/reproducible/04_gemspec_duplication/destination.rb:971498360": [ + [25, 1, 8292, "Metrics/BlockLength: Block has too many lines. [110/25]", 1251580584], + [32, 121, 317, "Layout/LineLength: Line is too long. [437/120]", 1870252497], + [184, 121, 34, "Layout/LineLength: Line is too long. [154/120]", 4147388508], + [199, 121, 50, "Layout/LineLength: Line is too long. [170/120]", 3888612416], + [200, 121, 29, "Layout/LineLength: Line is too long. [149/120]", 981994949], + [207, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 4229808912] + ], + "spec/fixtures/reproducible/04_gemspec_duplication/template.rb:1741222365": [ + [19, 1, 4121, "Metrics/BlockLength: Block has too many lines. [71/25]", 547880907], + [26, 121, 317, "Layout/LineLength: Line is too long. [437/120]", 1870252497] + ], + "spec/fixtures/reproducible/05_gemspec_orphan_duplication/destination.rb:2573186797": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177634] + ], + "spec/fixtures/reproducible/05_gemspec_orphan_duplication/result.rb:2573186797": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177634] + ], + "spec/fixtures/reproducible/05_gemspec_orphan_duplication/template.rb:1825302441": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177634] + ], + "spec/fixtures_integration_spec.rb:3086023041": [ + [7, 1, 23038, "Metrics/BlockLength: Block has too many lines. [521/25]", 1776221706], + [66, 121, 26, "Layout/LineLength: Line is too long. [146/120]", 1448895712], + [72, 3, 1302, "Metrics/BlockLength: Block has too many lines. [30/25]", 2973641144], + [106, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5858795], + [113, 3, 1679, "Metrics/BlockLength: Block has too many lines. [38/25]", 2954972744], + [419, 3, 7512, "Metrics/BlockLength: Block has too many lines. [149/25]", 2278210376] + ], + "spec/reproducible_merge_spec.rb:2334824632": [ + [6, 1, 2420, "Metrics/BlockLength: Block has too many lines. [50/25]", 2207509489], + [39, 121, 13, "Layout/LineLength: Line is too long. [133/120]", 1416718429] + ] +} diff --git a/gems/prism-merge/Gemfile.lock b/gems/prism-merge/Gemfile.lock index 4980ae0e8..29db0326c 100644 --- a/gems/prism-merge/Gemfile.lock +++ b/gems/prism-merge/Gemfile.lock @@ -7,7 +7,7 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge specs: ruby-merge (7.1.0) ast-merge (= 7.1.0) @@ -100,12 +100,12 @@ GEM rdoc (>= 4.0.0) reline (>= 0.4.2) json (2.21.1) - kettle-dev (2.3.7) + kettle-dev (2.3.8) emoji_regex (>= 15.0) kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) - kettle-rb (0.1.4) + kettle-rb (0.1.5) kettle-soup-cover (3.0.4) kettle-wash (~> 0.1, >= 0.1.0) simplecov (>= 1.0) @@ -113,7 +113,7 @@ GEM simplecov-console (~> 0.9, >= 0.9.5) simplecov-rcov (~> 0.3, >= 0.3.7) simplecov_lcov_formatter (~> 0.9, >= 0.9.0) - kettle-test (2.0.11) + kettle-test (2.0.12) appraisal2 (~> 3.0, >= 3.0.6) backports (~> 3.0) rspec (~> 3.0) @@ -338,9 +338,9 @@ GEM delegate (~> 0.1) rspec (~> 3.0) timecop (>= 0.7, < 1) - token-resolver (2.0.4) + token-resolver (2.0.5) parslet (~> 2.0) - version_gem (~> 1.1, >= 1.1.13) + version_gem (~> 1.1, >= 1.1.14) tree_haver (7.1.0) citrus (~> 3.0) parslet (~> 2.0) @@ -470,10 +470,10 @@ CHECKSUMS io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 - kettle-dev (2.3.7) sha256=eb370113cd030d03cbe2d33b31c99858951017e5ad21a17e9ed89dc3770028ee - kettle-rb (0.1.4) sha256=9cef7ce4f7021666b7222292f29051e51eaf042e8a5db11f3f4dd72f74243fc1 + kettle-dev (2.3.8) sha256=9d716ff21c660a730cb4e8d41e2e2f0630a28167a354b6e2924e242102aef72c + kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f kettle-soup-cover (3.0.4) - kettle-test (2.0.11) sha256=c710c90f7ab79d51f9452f0c09f5f90657e7a893f63583855c164d0b1b107ab2 + kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 @@ -556,7 +556,7 @@ CHECKSUMS thor (1.5.0) sha256=e3a9e55fe857e44859ce104a84675ab6e8cd59c650a49106a05f55f136425e73 timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 - token-resolver (2.0.4) sha256=33b926958f504525bba3ed511ab66fbcbf8ef30390815e931436b30f27ffcad0 + token-resolver (2.0.5) tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f diff --git a/gems/prism-merge/lib/prism/merge/version.rb b/gems/prism-merge/lib/prism/merge/version.rb index c5d5bca42..29398c390 100644 --- a/gems/prism-merge/lib/prism/merge/version.rb +++ b/gems/prism-merge/lib/prism/merge/version.rb @@ -3,7 +3,7 @@ module Prism module Merge module Version - VERSION = "7.1.0" + VERSION = '7.1.0' end VERSION = Version::VERSION # Traditional Constant Location end From c0ef2ce41a5dd804a09e09cb16826862f389251e Mon Sep 17 00:00:00 2001 From: "Peter H. Boling" Date: Tue, 21 Jul 2026 13:51:15 -0600 Subject: [PATCH 119/188] =?UTF-8?q?=F0=9F=8E=A8=20Template=20bootstrap=20b?= =?UTF-8?q?y=20kettle-jem=20v7.1.0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gems/ast-crispr-markdown-markly/Gemfile.lock | 379 +++++++++-- gems/ast-merge/Gemfile | 70 +- gems/ast-merge/Rakefile | 18 +- gems/ast-merge/bin/yard | 2 +- .../gemfiles/modular/cgi/r4/v0.5.gemfile | 2 +- .../gemfiles/modular/cgi/vHEAD.gemfile | 2 +- .../gemfiles/modular/coverage.gemfile | 6 +- .../gemfiles/modular/coverage_local.gemfile | 42 +- gems/ast-merge/gemfiles/modular/debug.gemfile | 4 +- .../gemfiles/modular/documentation.gemfile | 24 +- .../modular/documentation_local.gemfile | 30 +- .../gemfiles/modular/erb/r2/v3.0.gemfile | 2 +- .../gemfiles/modular/erb/r3/v5.0.gemfile | 2 +- .../gemfiles/modular/erb/r4/v5.0.gemfile | 2 +- .../gemfiles/modular/erb/vHEAD.gemfile | 2 +- .../modular/json/truffleruby_22_3.gemfile | 4 +- .../modular/json/truffleruby_23_0.gemfile | 4 +- .../modular/json/truffleruby_23_1.gemfile | 4 +- .../gemfiles/modular/mutex_m/r2/v0.3.gemfile | 2 +- .../gemfiles/modular/mutex_m/r3/v0.3.gemfile | 2 +- .../gemfiles/modular/mutex_m/r4/v0.3.gemfile | 2 +- .../gemfiles/modular/mutex_m/vHEAD.gemfile | 2 +- gems/markdown-merge/.rubocop_gradual.lock | 640 ++++++++++++++++++ gems/markdown-merge/Gemfile.lock | 22 +- .../lib/markdown/merge/version.rb | 2 +- gems/markly-merge/.kettle-drift.lock | 288 +------- .../.structuredmerge/kettle-jem.yml | 53 ++ gems/markly-merge/Gemfile | 72 +- gems/markly-merge/Gemfile.lock | 339 +--------- gems/markly-merge/Rakefile | 18 +- gems/markly-merge/lib/markly/merge/version.rb | 2 +- gems/prism-merge/Gemfile.lock | 337 ++++++++- 32 files changed, 1571 insertions(+), 809 deletions(-) create mode 100644 gems/markdown-merge/.rubocop_gradual.lock diff --git a/gems/ast-crispr-markdown-markly/Gemfile.lock b/gems/ast-crispr-markdown-markly/Gemfile.lock index 061fc6b84..748092bc7 100644 --- a/gems/ast-crispr-markdown-markly/Gemfile.lock +++ b/gems/ast-crispr-markdown-markly/Gemfile.lock @@ -6,6 +6,265 @@ PATH markly-merge (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism + specs: + ast-crispr-ruby-prism (7.1.0) + ast-crispr (= 7.1.0) + prism-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr + specs: + ast-crispr (7.1.0) + ast-merge (= 7.1.0) + service_actor (~> 3.9) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git + specs: + ast-merge-git (7.1.0) + ast-merge (= 7.1.0) + json-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge + specs: + ast-merge (7.1.0) + benchmark + token-resolver (~> 2.0, >= 2.0.4) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template + specs: + ast-template (7.1.0) + ast-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge + specs: + bash-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge + specs: + binary-merge (7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge + specs: + citrus-toml-merge (7.1.0) + toml-merge (= 7.1.0) + toml-rb (~> 4.1) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge + specs: + commonmarker-merge (7.1.0) + commonmarker (~> 2.2) + markdown-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge + specs: + dotenv-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge + specs: + go-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge + specs: + json-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem + specs: + kettle-jem (7.1.0) + addressable (>= 2.8, < 3) + ast-crispr-markdown-markly (= 7.1.0) + ast-crispr-ruby-prism (= 7.1.0) + ast-merge (= 7.1.0) + bash-merge (= 7.1.0) + citrus-toml-merge (= 7.1.0) + commonmarker-merge (= 7.1.0) + dotenv-merge (= 7.1.0) + json-merge (= 7.1.0) + kettle-dev (~> 2.3, >= 2.3.5) + kettle-rb (~> 0.1, >= 0.1.4) + kramdown-merge (= 7.1.0) + markdown-merge (= 7.1.0) + markly-merge (= 7.1.0) + prism-merge (= 7.1.0) + psych-merge (= 7.1.0) + rbs (>= 3.10) + rbs-merge (= 7.1.0) + ruby-merge (= 7.1.0) + token-resolver (~> 2.0, >= 2.0.4) + toml-merge (= 7.1.0) + toml-rb (~> 4.2) + tree_haver (= 7.1.0) + yaml-merge (= 7.1.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge + specs: + kramdown-merge (7.1.0) + kramdown (~> 2.5) + markdown-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge + specs: + markdown-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge + specs: + markly-merge (7.1.0) + markdown-merge (= 7.1.0) + markly (~> 0.9) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge + specs: + parslet-toml-merge (7.1.0) + toml (~> 0.3) + toml-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge + specs: + plain-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge + specs: + prism-merge (7.1.0) + prism (~> 1.6) + ruby-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge + specs: + psych-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + yaml-merge (= 7.1.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge + specs: + rbs-merge (7.1.0) + ast-merge (= 7.1.0) + rbs (>= 3.10) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge + specs: + ruby-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge + specs: + rust-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb + specs: + smorg-rb (7.1.0) + ast-merge (= 7.1.0) + ast-merge-git (= 7.1.0) + go-merge (= 7.1.0) + json-merge (= 7.1.0) + kettle-jem (= 7.1.0) + markly-merge (= 7.1.0) + plain-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge + specs: + toml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver + specs: + tree_haver (7.1.0) + citrus (~> 3.0) + parslet (~> 2.0) + tree_sitter_language_pack (>= 1.13.2, < 2.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge + specs: + typescript-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge + specs: + yaml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge + specs: + zip-merge (7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + GEM remote: https://gem.coop/ specs: @@ -17,15 +276,6 @@ GEM rake (>= 10) thor (>= 0.14) ast (2.4.3) - ast-crispr (7.1.0) - ast-merge (= 7.1.0) - service_actor (~> 3.9) - version_gem (~> 1.1, >= 1.1.9) - ast-merge (7.1.0) - benchmark - token-resolver (~> 2.0, >= 2.0.4) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) backports (3.25.3) benchmark (0.5.0) bigdecimal (4.1.2) @@ -34,6 +284,7 @@ GEM thor (~> 1.0) citrus (3.0.2) cmdparse (3.0.7) + commonmarker (2.9.0-x86_64-linux) concurrent-ruby (1.3.8) date (3.5.1) debug (1.11.1) @@ -97,6 +348,8 @@ GEM kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) + kettle-drift (1.0.6) + version_gem (~> 1.1, >= 1.1.14) kettle-rb (0.1.4) kettle-soup-cover (1.1.3) simplecov (~> 0.22) @@ -125,15 +378,7 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) - markdown-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) markly (0.16.0) - markly-merge (7.1.0) - markdown-merge (= 7.1.0) - markly (~> 0.9) - version_gem (~> 1.1, >= 1.1.9) mutex_m (0.3.0) nokogiri (1.19.4-x86_64-linux-gnu) racc (~> 1.4) @@ -313,12 +558,12 @@ GEM timecop (>= 0.7, < 1) token-resolver (2.0.4) parslet (~> 2.0) - version_gem (~> 1.1, >= 1.1.14) - tree_haver (7.1.0) - citrus (~> 3.0) - parslet (~> 2.0) - tree_sitter_language_pack (>= 1.13.2, < 2.0) - version_gem (~> 1.1, >= 1.1.9) + version_gem (~> 1.1, >= 1.1.13) + toml (0.3.0) + parslet (>= 1.8.0, < 3.0.0) + toml-rb (4.2.0) + citrus (~> 3.0, > 3.0) + racc (~> 1.7) tree_sitter_language_pack (1.13.3-x86_64-linux) sorbet-runtime (~> 0.5) tsort (0.2.0) @@ -362,23 +607,45 @@ PLATFORMS DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) + ast-crispr! ast-crispr-markdown-markly! + ast-crispr-ruby-prism! + ast-merge! + ast-merge-git! + ast-template! + bash-merge! benchmark (~> 0.5, >= 0.5.0) + binary-merge! bundler-audit (~> 0.9.3) + citrus-toml-merge! + commonmarker-merge! debug (>= 1.1) + dotenv-merge! erb (~> 6.0, >= 6.0.4) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.0) + go-merge! irb (~> 1.17) + json-merge! kettle-dev (~> 2.0, >= 2.2.25) + kettle-drift (~> 1.0, >= 1.0.5) + kettle-jem! kettle-soup-cover (~> 1.0, >= 1.1.3) kettle-test (~> 2.0, >= 2.0.9) kramdown (~> 2.5, >= 2.5.1) + kramdown-merge! kramdown-parser-gfm (~> 1.1) + markdown-merge! + markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) + parslet-toml-merge! + plain-merge! + prism-merge! + psych-merge! rake (~> 13.0) rbs (>= 3.0) + rbs-merge! rdoc (~> 6.11) reek (~> 6.5) require_bench (~> 1.0, >= 1.0.4) @@ -387,18 +654,26 @@ DEPENDENCIES rubocop-packaging (~> 0.6, >= 0.6.0) rubocop-rspec (~> 3.6) rubocop-ruby3_2 (~> 3.0.0) + ruby-merge! ruby-progressbar (~> 1.13) + rust-merge! + smorg-rb! standard (>= 1.50) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) + toml-merge! + tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) + typescript-merge! yaml-converter (~> 0.1) + yaml-merge! yard (~> 0.9, >= 0.9.44) yard-fence (~> 0.9, >= 0.9.1) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) yard-timekeeper (~> 0.1) yard-yaml (~> 0.1, >= 0.1.2) + zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af @@ -407,13 +682,21 @@ CHECKSUMS ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 ast-crispr (7.1.0) ast-crispr-markdown-markly (7.1.0) + ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) + ast-merge-git (7.1.0) + ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 + bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd + binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 + citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 + commonmarker (2.9.0-x86_64-linux) sha256=8cfe92970eef585a19ddf6613224b91cab64d6029834661bda801f877c9c7f43 + commonmarker-merge (7.1.0) concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 @@ -421,6 +704,7 @@ CHECKSUMS diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 docile (1.4.1) sha256=96159be799bfa73cdb721b840e9802126e4e03dfc26863db73647204c727f21e + dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -433,15 +717,20 @@ CHECKSUMS gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f + go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 + json-merge (7.1.0) kettle-dev (2.3.7) sha256=eb370113cd030d03cbe2d33b31c99858951017e5ad21a17e9ed89dc3770028ee + kettle-drift (1.0.6) sha256=46eda08fa4411d1f3c6682a95eef1c9df4e94611b3949f49d4c7b43c0ed356a3 + kettle-jem (7.1.0) kettle-rb (0.1.4) sha256=9cef7ce4f7021666b7222292f29051e51eaf042e8a5db11f3f4dd72f74243fc1 kettle-soup-cover (1.1.3) sha256=a373827da22a7131d093afd32945e5b7d7a10a01ebfdded8fd2cb8230d69c8ad kettle-test (2.0.11) sha256=c710c90f7ab79d51f9452f0c09f5f90657e7a893f63583855c164d0b1b107ab2 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa + kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 @@ -458,15 +747,20 @@ CHECKSUMS parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 + parslet-toml-merge (7.1.0) + plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 + prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 + psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 + rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb @@ -494,9 +788,11 @@ CHECKSUMS rubocop-rspec (3.10.2) sha256=0b3e2ecc592cd10ecbf0095bb58d1e357905276e069643523cc19eb7495f65e2 rubocop-ruby3_2 (3.0.7) sha256=f53dd6d286fb05186214fc6ec116783e7f837030918e8931c05de773e98f8466 rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 + ruby-merge (7.1.0) ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 + rust-merge (7.1.0) service_actor (3.9.4) sha256=e63b523630b9a7e62959b2a90113b08d2565b5de9c148557b281ef847c9539ce silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (0.22.0) sha256=fe2622c7834ff23b98066bb0a854284b2729a569ac659f82621fc22ef36213a5 @@ -506,6 +802,7 @@ CHECKSUMS simplecov-lcov (0.9.0) sha256=7a77a31e200a595ed4b0249493056efd0c920601f53d2ef135ca34ee796346cd simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_json_formatter (0.1.4) sha256=529418fbe8de1713ac2b2d612aa3daa56d316975d307244399fa4838c601b428 + smorg-rb (7.1.0) sorbet-runtime (0.6.13342) sha256=dbeb9892597f593ed2b29e38018912787f6c4e0c4b736d8af0d6bd3c63bde3c3 standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b @@ -519,22 +816,28 @@ CHECKSUMS timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.4) sha256=33b926958f504525bba3ed511ab66fbcbf8ef30390815e931436b30f27ffcad0 + toml (0.3.0) sha256=0a91d0f76a9036e84e44f95693b12f58d358c1df3ac8e3b5271f2056ecc6e4b9 + toml-merge (7.1.0) + toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 tree_haver (7.1.0) - tree_sitter_language_pack (1.13.3-x86_64-linux) - tsort (0.2.0) - turbo_tests2 (3.2.0) - unicode-display_width (3.2.0) - unicode-emoji (4.2.0) - version_gem (1.1.14) - yaml-converter (0.2.3) - yard (0.9.45) - yard-fence (0.9.6) - yard-junk (0.1.0) - yard-relative_markdown_links (0.6.0) - yard-timekeeper (0.2.4) - yard-yaml (0.2.3) - zeitwerk (2.8.2) - zlib (3.2.3) + tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 + tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f + turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 + typescript-merge (7.1.0) + unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 + unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f + version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 + yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 + yaml-merge (7.1.0) + yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 + yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 + yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd + yard-relative_markdown_links (0.6.0) sha256=3e5ffa85cbad9bac70bee5421774b190fb25d3bdf489323a5b3534f647d1a70e + yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a + yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 + zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 + zip-merge (7.1.0) + zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH 4.0.16 diff --git a/gems/ast-merge/Gemfile b/gems/ast-merge/Gemfile index 899442f22..f29c1384d 100644 --- a/gems/ast-merge/Gemfile +++ b/gems/ast-merge/Gemfile @@ -6,7 +6,7 @@ # kettle-jem will then preserve content between those markers across template runs. # kettle-jem:unfreeze -source "https://gem.coop" +source 'https://gem.coop' git_source(:codeberg) { |repo_name| "https://codeberg.org/#{repo_name}" } git_source(:gitlab) { |repo_name| "https://gitlab.com/#{repo_name}" } @@ -19,57 +19,53 @@ git_source(:gitlab) { |repo_name| "https://gitlab.com/#{repo_name}" } gemspec # Local workspace dependency wiring for *_local.gemfile overrides -nomono_requirements = ["~> 1.0", ">= 1.0.8"] -gem "nomono", *nomono_requirements, require: false # ruby >= 2.2 +nomono_requirements = ['~> 1.0', '>= 1.0.8'] +gem 'nomono', *nomono_requirements, require: false # ruby >= 2.2 # Direct sibling dependencies (env-switched via STRUCTUREDMERGE_DEV) direct_sibling_gems = %w[ tree_haver ] -direct_sibling_dev = ENV.fetch("STRUCTUREDMERGE_DEV", "") +direct_sibling_dev = ENV.fetch('STRUCTUREDMERGE_DEV', '') direct_sibling_local = !direct_sibling_dev.empty? && !%w[false 0 no off].include?(direct_sibling_dev.downcase) -direct_sibling_templating = ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? +direct_sibling_templating = ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero?) - direct_sibling_dev_was_set = ENV.key?("STRUCTUREDMERGE_DEV") - direct_sibling_dev_original = ENV.fetch("STRUCTUREDMERGE_DEV", nil) + (direct_sibling_local || + ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) + direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') + direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) begin nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path("Gemfile.lock", __dir__) + nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == "nomono" } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - if nomono_locked - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] - end - end - Kernel.send(:gem, "nomono", *nomono_activation_requirements) - require "nomono/bundler" - if direct_sibling_templating && !direct_sibling_local - ENV["STRUCTUREDMERGE_DEV"] = File.expand_path("..", __dir__) + Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked end + Kernel.send(:gem, 'nomono', *nomono_activation_requirements) + require 'nomono/bundler' + ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local eval_nomono_gems( gems: direct_sibling_gems, - prefix: "STRUCTUREDMERGE", - path_env: "STRUCTUREDMERGE_DEV", - root: ["src", "my", "structuredmerge"] + prefix: 'STRUCTUREDMERGE', + path_env: 'STRUCTUREDMERGE_DEV', + root: %w[src my structuredmerge] ) rescue LoadError - warn "Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies." + warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' ensure if direct_sibling_templating && !direct_sibling_local if direct_sibling_dev_was_set - ENV["STRUCTUREDMERGE_DEV"] = direct_sibling_dev_original + ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original else - ENV.delete("STRUCTUREDMERGE_DEV") + ENV.delete('STRUCTUREDMERGE_DEV') end end end @@ -116,28 +112,28 @@ if direct_sibling_gems.any? && end # Use released TSLP with the Ruby ABI platform-gem fix. -gem "tree_sitter_language_pack", "~> 1.13", ">= 1.13.3" +gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' # Templating (env-switched: STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local paths) -eval_gemfile "gemfiles/modular/templating.gemfile" if ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? +eval_gemfile 'gemfiles/modular/templating.gemfile' if ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? # Debugging -eval_gemfile "gemfiles/modular/debug.gemfile" +eval_gemfile 'gemfiles/modular/debug.gemfile' # Code Coverage (env-switched: KETTLE_DEV_DEV=true for local paths) -eval_gemfile "gemfiles/modular/coverage.gemfile" +eval_gemfile 'gemfiles/modular/coverage.gemfile' # Linting -eval_gemfile "gemfiles/modular/style.gemfile" +eval_gemfile 'gemfiles/modular/style.gemfile' # Documentation -eval_gemfile "gemfiles/modular/documentation.gemfile" +eval_gemfile 'gemfiles/modular/documentation.gemfile' # Optional -eval_gemfile "gemfiles/modular/optional.gemfile" +eval_gemfile 'gemfiles/modular/optional.gemfile' ### Std Lib Extracted Gems -eval_gemfile "gemfiles/modular/x_std_libs.gemfile" +eval_gemfile 'gemfiles/modular/x_std_libs.gemfile' # See unlocked_deps appraisal for more details on irb inclusion -gem "irb", "~> 1.17" # ruby >= 2.7 +gem 'irb', '~> 1.17' # ruby >= 2.7 diff --git a/gems/ast-merge/Rakefile b/gems/ast-merge/Rakefile index 6b4e21dec..339c9a3cb 100644 --- a/gems/ast-merge/Rakefile +++ b/gems/ast-merge/Rakefile @@ -130,23 +130,23 @@ end ### DUPLICATE DRIFT TASKS begin - require "kettle/drift" + require 'kettle/drift' Kettle::Drift.install_tasks rescue LoadError - desc("(stub) kettle:drift:check is unavailable") - task("kettle:drift:check") do + desc('(stub) kettle:drift:check is unavailable') + task('kettle:drift:check') do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc("(stub) kettle:drift:update is unavailable") - task("kettle:drift:update") do + desc('(stub) kettle:drift:update is unavailable') + task('kettle:drift:update') do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc("(stub) kettle:drift:force_update is unavailable") - task("kettle:drift:force_update") do + desc('(stub) kettle:drift:force_update is unavailable') + task('kettle:drift:force_update') do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc("(stub) kettle:drift is unavailable") - task("kettle:drift" => "kettle:drift:update") + desc('(stub) kettle:drift is unavailable') + task('kettle:drift' => 'kettle:drift:update') end ### TEMPLATING TASKS diff --git a/gems/ast-merge/bin/yard b/gems/ast-merge/bin/yard index a7e8b6eed..5d516ad6f 100755 --- a/gems/ast-merge/bin/yard +++ b/gems/ast-merge/bin/yard @@ -12,4 +12,4 @@ # `yard` / `bin/yard`. Keep this binstub as a handoff to the task so # humans and tools that reach for `bin/yard` still run the full docs # workflow with post-processing hooks. -exec("bundle", "exec", "rake", "yard") +exec('bundle', 'exec', 'rake', 'yard') diff --git a/gems/ast-merge/gemfiles/modular/cgi/r4/v0.5.gemfile b/gems/ast-merge/gemfiles/modular/cgi/r4/v0.5.gemfile index 19ed967c3..17ad97260 100644 --- a/gems/ast-merge/gemfiles/modular/cgi/r4/v0.5.gemfile +++ b/gems/ast-merge/gemfiles/modular/cgi/r4/v0.5.gemfile @@ -1 +1 @@ -gem "cgi", "~> 0.5" +gem 'cgi', '~> 0.5' diff --git a/gems/ast-merge/gemfiles/modular/cgi/vHEAD.gemfile b/gems/ast-merge/gemfiles/modular/cgi/vHEAD.gemfile index ef8b816ce..650fbf033 100644 --- a/gems/ast-merge/gemfiles/modular/cgi/vHEAD.gemfile +++ b/gems/ast-merge/gemfiles/modular/cgi/vHEAD.gemfile @@ -1 +1 @@ -gem "cgi", ">= 0.5" +gem 'cgi', '>= 0.5' diff --git a/gems/ast-merge/gemfiles/modular/coverage.gemfile b/gems/ast-merge/gemfiles/modular/coverage.gemfile index 52d737872..b93014b6b 100644 --- a/gems/ast-merge/gemfiles/modular/coverage.gemfile +++ b/gems/ast-merge/gemfiles/modular/coverage.gemfile @@ -4,11 +4,11 @@ # Set KETTLE_DEV_DEV=true for local development with path-based dependencies. # When false (default / CI), remote released gems are used. -if ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false").zero? +if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? # Coverage (remote/released) platform :mri do - gem "kettle-soup-cover", "~> 3.0", ">= 3.0.3", require: false + gem 'kettle-soup-cover', '~> 3.0', '>= 3.0.3', require: false end else - eval_gemfile "coverage_local.gemfile" + eval_gemfile 'coverage_local.gemfile' end diff --git a/gems/ast-merge/gemfiles/modular/coverage_local.gemfile b/gems/ast-merge/gemfiles/modular/coverage_local.gemfile index c950b8d78..f556973ee 100644 --- a/gems/ast-merge/gemfiles/modular/coverage_local.gemfile +++ b/gems/ast-merge/gemfiles/modular/coverage_local.gemfile @@ -11,21 +11,19 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] -nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) +nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] +nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == "nomono" } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - if nomono_locked - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] - end + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked end -Kernel.send(:gem, "nomono", *nomono_activation_requirements) -require "nomono/bundler" +Kernel.send(:gem, 'nomono', *nomono_activation_requirements) +require 'nomono/bundler' local_gems = %w[kettle-dev kettle-test kettle-soup-cover kettle-drift] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) @@ -35,21 +33,21 @@ local_gems_to_eval = local_gems - %w[ast-merge] - declared_gems platform :mri do eval_nomono_gems( gems: local_gems_to_eval, - prefix: "KETTLE_DEV", - path_env: "KETTLE_DEV_DEV", - vendored_gems_env: "VENDORED_GEMS", - vendor_gem_dir_env: "VENDOR_GEM_DIR", - debug_env: "KETTLE_DEV_DEBUG" + prefix: 'KETTLE_DEV', + path_env: 'KETTLE_DEV_DEV', + vendored_gems_env: 'VENDORED_GEMS', + vendor_gem_dir_env: 'VENDOR_GEM_DIR', + debug_env: 'KETTLE_DEV_DEBUG' ) - if ENV.fetch("GALTZO_FLOSS_DEV", "false").casecmp("false") != 0 + if ENV.fetch('GALTZO_FLOSS_DEV', 'false').casecmp('false') != 0 eval_nomono_gems( gems: %w[turbo_tests2], - prefix: "GALTZO_FLOSS", - path_env: "GALTZO_FLOSS_DEV", - vendored_gems_env: "GALTZO_FLOSS_VENDORED_GEMS", - vendor_gem_dir_env: "GALTZO_FLOSS_VENDOR_GEM_DIR", - debug_env: "GALTZO_FLOSS_DEBUG" + prefix: 'GALTZO_FLOSS', + path_env: 'GALTZO_FLOSS_DEV', + vendored_gems_env: 'GALTZO_FLOSS_VENDORED_GEMS', + vendor_gem_dir_env: 'GALTZO_FLOSS_VENDOR_GEM_DIR', + debug_env: 'GALTZO_FLOSS_DEBUG' ) end end diff --git a/gems/ast-merge/gemfiles/modular/debug.gemfile b/gems/ast-merge/gemfiles/modular/debug.gemfile index 4e15b1a3a..eed8d4d1e 100644 --- a/gems/ast-merge/gemfiles/modular/debug.gemfile +++ b/gems/ast-merge/gemfiles/modular/debug.gemfile @@ -13,10 +13,10 @@ platform :mri do # Debugging - Ensure ENV["DEBUG"] == "true" to use debuggers within spec suite # Use binding.break, binding.b, or debugger in code - gem "debug", ">= 1.1" # ruby >= 2.7 + gem 'debug', '>= 1.1' # ruby >= 2.7 # Dev Console - Binding.pry - Irb replacement # gem "pry", "~> 0.14" # ruby >= 2.0 end -gem "gem_bench", "~> 2.0", ">= 2.0.5" +gem 'gem_bench', '~> 2.0', '>= 2.0.5' diff --git a/gems/ast-merge/gemfiles/modular/documentation.gemfile b/gems/ast-merge/gemfiles/modular/documentation.gemfile index d8215416e..9d4535f12 100644 --- a/gems/ast-merge/gemfiles/modular/documentation.gemfile +++ b/gems/ast-merge/gemfiles/modular/documentation.gemfile @@ -7,20 +7,20 @@ # # Documentation -gem "kramdown", "~> 2.5", ">= 2.5.2", require: false # Ruby >= 2.5 -gem "kramdown-parser-gfm", "~> 1.1", require: false # Ruby >= 2.3 -gem "yaml-converter", "~> 0.2", ">= 0.2.3", require: false # Ruby >= 3.2 -gem "yard", "~> 0.9", ">= 0.9.45", require: false -gem "yard-junk", "~> 0.1", ">= 0.1.0", require: false # Ruby >= 3.1 -gem "yard-relative_markdown_links", "~> 0.6", require: false +gem 'kramdown', '~> 2.5', '>= 2.5.2', require: false # Ruby >= 2.5 +gem 'kramdown-parser-gfm', '~> 1.1', require: false # Ruby >= 2.3 +gem 'yaml-converter', '~> 0.2', '>= 0.2.3', require: false # Ruby >= 3.2 +gem 'yard', '~> 0.9', '>= 0.9.45', require: false +gem 'yard-junk', '~> 0.1', '>= 0.1.0', require: false # Ruby >= 3.1 +gem 'yard-relative_markdown_links', '~> 0.6', require: false -if ENV.fetch("GALTZO_FLOSS_DEV", "false").casecmp("false").zero? - gem "yard-fence", "~> 0.9", ">= 0.9.6", require: false # Ruby >= 3.2 - gem "yard-timekeeper", "~> 0.2", ">= 0.2.4", require: false - gem "yard-yaml", "~> 0.2", ">= 0.2.3", require: false +if ENV.fetch('GALTZO_FLOSS_DEV', 'false').casecmp('false').zero? + gem 'yard-fence', '~> 0.9', '>= 0.9.6', require: false # Ruby >= 3.2 + gem 'yard-timekeeper', '~> 0.2', '>= 0.2.4', require: false + gem 'yard-yaml', '~> 0.2', '>= 0.2.3', require: false else - eval_gemfile "documentation_local.gemfile" + eval_gemfile 'documentation_local.gemfile' end # Std Lib extractions -gem "rdoc", "~> 6.11", require: false unless ENV.fetch("KJ_FRAMEWORK_MATRIX_GEM", "") == "rdoc" +gem 'rdoc', '~> 6.11', require: false unless ENV.fetch('KJ_FRAMEWORK_MATRIX_GEM', '') == 'rdoc' diff --git a/gems/ast-merge/gemfiles/modular/documentation_local.gemfile b/gems/ast-merge/gemfiles/modular/documentation_local.gemfile index b1bc573f7..3c1453057 100644 --- a/gems/ast-merge/gemfiles/modular/documentation_local.gemfile +++ b/gems/ast-merge/gemfiles/modular/documentation_local.gemfile @@ -11,21 +11,19 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] -nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) +nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] +nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == "nomono" } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - if nomono_locked - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] - end + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked end -Kernel.send(:gem, "nomono", *nomono_activation_requirements) -require "nomono/bundler" +Kernel.send(:gem, 'nomono', *nomono_activation_requirements) +require 'nomono/bundler' local_gems = %w[yard-fence yard-timekeeper yard-yaml] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) @@ -34,9 +32,9 @@ local_gems_to_eval = local_gems - %w[ast-merge] - declared_gems # export GALTZO_FLOSS_DEV=/path/to/galtzo-floss eval_nomono_gems( gems: local_gems_to_eval, - prefix: "GALTZO_FLOSS", - path_env: "GALTZO_FLOSS_DEV", - vendored_gems_env: "GALTZO_FLOSS_VENDORED_GEMS", - vendor_gem_dir_env: "GALTZO_FLOSS_VENDOR_GEM_DIR", - debug_env: "GALTZO_FLOSS_DEBUG" + prefix: 'GALTZO_FLOSS', + path_env: 'GALTZO_FLOSS_DEV', + vendored_gems_env: 'GALTZO_FLOSS_VENDORED_GEMS', + vendor_gem_dir_env: 'GALTZO_FLOSS_VENDOR_GEM_DIR', + debug_env: 'GALTZO_FLOSS_DEBUG' ) diff --git a/gems/ast-merge/gemfiles/modular/erb/r2/v3.0.gemfile b/gems/ast-merge/gemfiles/modular/erb/r2/v3.0.gemfile index c03bd8d85..7c83a239b 100644 --- a/gems/ast-merge/gemfiles/modular/erb/r2/v3.0.gemfile +++ b/gems/ast-merge/gemfiles/modular/erb/r2/v3.0.gemfile @@ -1 +1 @@ -gem "erb", "~> 3.0" # ruby >= 2.7.0 +gem 'erb', '~> 3.0' # ruby >= 2.7.0 diff --git a/gems/ast-merge/gemfiles/modular/erb/r3/v5.0.gemfile b/gems/ast-merge/gemfiles/modular/erb/r3/v5.0.gemfile index 1bd029cc1..ec7ff451f 100644 --- a/gems/ast-merge/gemfiles/modular/erb/r3/v5.0.gemfile +++ b/gems/ast-merge/gemfiles/modular/erb/r3/v5.0.gemfile @@ -1 +1 @@ -gem "erb", "~> 6.0", ">= 6.0.6" # ruby >= 3.2.0 +gem 'erb', '~> 6.0', '>= 6.0.6' # ruby >= 3.2.0 diff --git a/gems/ast-merge/gemfiles/modular/erb/r4/v5.0.gemfile b/gems/ast-merge/gemfiles/modular/erb/r4/v5.0.gemfile index 1bd029cc1..ec7ff451f 100644 --- a/gems/ast-merge/gemfiles/modular/erb/r4/v5.0.gemfile +++ b/gems/ast-merge/gemfiles/modular/erb/r4/v5.0.gemfile @@ -1 +1 @@ -gem "erb", "~> 6.0", ">= 6.0.6" # ruby >= 3.2.0 +gem 'erb', '~> 6.0', '>= 6.0.6' # ruby >= 3.2.0 diff --git a/gems/ast-merge/gemfiles/modular/erb/vHEAD.gemfile b/gems/ast-merge/gemfiles/modular/erb/vHEAD.gemfile index 48fee4218..ea0101185 100644 --- a/gems/ast-merge/gemfiles/modular/erb/vHEAD.gemfile +++ b/gems/ast-merge/gemfiles/modular/erb/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 3.2 -gem "erb", github: "ruby/erb", branch: "master" +gem 'erb', github: 'ruby/erb', branch: 'master' diff --git a/gems/ast-merge/gemfiles/modular/json/truffleruby_22_3.gemfile b/gems/ast-merge/gemfiles/modular/json/truffleruby_22_3.gemfile index b0e69ab11..9b2f8d96a 100644 --- a/gems/ast-merge/gemfiles/modular/json/truffleruby_22_3.gemfile +++ b/gems/ast-merge/gemfiles/modular/json/truffleruby_22_3.gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -if RUBY_ENGINE == "truffleruby" && RUBY_ENGINE_VERSION.start_with?("22.3") +if RUBY_ENGINE == 'truffleruby' && RUBY_ENGINE_VERSION.start_with?('22.3') # TruffleRuby 22.3 ships the json default gem from its emulated MRI Ruby. - gem "json", "= 2.5.1" + gem 'json', '= 2.5.1' end diff --git a/gems/ast-merge/gemfiles/modular/json/truffleruby_23_0.gemfile b/gems/ast-merge/gemfiles/modular/json/truffleruby_23_0.gemfile index 7b2660a2b..d787a5ef4 100644 --- a/gems/ast-merge/gemfiles/modular/json/truffleruby_23_0.gemfile +++ b/gems/ast-merge/gemfiles/modular/json/truffleruby_23_0.gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -if RUBY_ENGINE == "truffleruby" && RUBY_ENGINE_VERSION.start_with?("23.0") +if RUBY_ENGINE == 'truffleruby' && RUBY_ENGINE_VERSION.start_with?('23.0') # TruffleRuby 23.0 ships the json default gem from its emulated MRI Ruby. - gem "json", "= 2.6.1" + gem 'json', '= 2.6.1' end diff --git a/gems/ast-merge/gemfiles/modular/json/truffleruby_23_1.gemfile b/gems/ast-merge/gemfiles/modular/json/truffleruby_23_1.gemfile index dfa21f2e4..d78486b0e 100644 --- a/gems/ast-merge/gemfiles/modular/json/truffleruby_23_1.gemfile +++ b/gems/ast-merge/gemfiles/modular/json/truffleruby_23_1.gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -if RUBY_ENGINE == "truffleruby" && RUBY_ENGINE_VERSION.start_with?("23.1") +if RUBY_ENGINE == 'truffleruby' && RUBY_ENGINE_VERSION.start_with?('23.1') # TruffleRuby 23.1 ships the json default gem from its emulated MRI Ruby. - gem "json", "= 2.6.3" + gem 'json', '= 2.6.3' end diff --git a/gems/ast-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile b/gems/ast-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile index 42e9d9bd4..e27f1bbae 100644 --- a/gems/ast-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile +++ b/gems/ast-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 -gem "mutex_m", "~> 0.2" +gem 'mutex_m', '~> 0.2' diff --git a/gems/ast-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile b/gems/ast-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile index 42e9d9bd4..e27f1bbae 100644 --- a/gems/ast-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile +++ b/gems/ast-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 -gem "mutex_m", "~> 0.2" +gem 'mutex_m', '~> 0.2' diff --git a/gems/ast-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile b/gems/ast-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile index 42e9d9bd4..e27f1bbae 100644 --- a/gems/ast-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile +++ b/gems/ast-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 -gem "mutex_m", "~> 0.2" +gem 'mutex_m', '~> 0.2' diff --git a/gems/ast-merge/gemfiles/modular/mutex_m/vHEAD.gemfile b/gems/ast-merge/gemfiles/modular/mutex_m/vHEAD.gemfile index 8af3b6fca..9dac2f6cb 100644 --- a/gems/ast-merge/gemfiles/modular/mutex_m/vHEAD.gemfile +++ b/gems/ast-merge/gemfiles/modular/mutex_m/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 (dependency of omniauth) -gem "mutex_m", github: "ruby/mutex_m", branch: "master" +gem 'mutex_m', github: 'ruby/mutex_m', branch: 'master' diff --git a/gems/markdown-merge/.rubocop_gradual.lock b/gems/markdown-merge/.rubocop_gradual.lock new file mode 100644 index 000000000..74676f0f9 --- /dev/null +++ b/gems/markdown-merge/.rubocop_gradual.lock @@ -0,0 +1,640 @@ +{ + ".simplecov:862493710": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "Rakefile:1018150957": [ + [18, 121, 17, "Layout/LineLength: Line is too long. [137/120]", 174264873], + [79, 3, 1023, "Metrics/BlockLength: Block has too many lines. [32/25]", 54868638], + [163, 121, 22, "Layout/LineLength: Line is too long. [142/120]", 1367093088], + [166, 121, 18, "Layout/LineLength: Line is too long. [138/120]", 3881946477] + ], + "gemfiles/modular/benchmark/r4/v0.5.gemfile:3644720371": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/benchmark/vHEAD.gemfile:2838879269": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/cgi/r4/v0.5.gemfile:367169322": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/cgi/vHEAD.gemfile:2729540777": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/erb/r2/v3.0.gemfile:1688285565": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/erb/r3/v5.0.gemfile:2394062339": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/erb/r4/v5.0.gemfile:2394062339": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/erb/vHEAD.gemfile:981929959": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/mutex_m/r2/v0.3.gemfile:4055275004": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/mutex_m/r3/v0.3.gemfile:4055275004": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/mutex_m/r4/v0.3.gemfile:4055275004": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/mutex_m/vHEAD.gemfile:556854763": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/rspec.gemfile:2263543889": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/stringio/r2/v3.0.gemfile:821604304": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/stringio/r3/v3.0.gemfile:821604304": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/stringio/r4/v3.0.gemfile:821604304": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/stringio/vHEAD.gemfile:1045839691": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/webrick/r4/v1.9.gemfile:3092661193": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/webrick/vHEAD.gemfile:3867684682": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/x_std_libs.gemfile:2324400122": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/x_std_libs/r2/libs.gemfile:36276542": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] + ], + "gemfiles/modular/x_std_libs/r3/libs.gemfile:4030570297": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] + ], + "gemfiles/modular/x_std_libs/r4/libs.gemfile:732451732": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] + ], + "gemfiles/modular/x_std_libs/vHEAD.gemfile:2390363993": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] + ], + "lib/markdown-merge.rb:1671676898": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`markdown-merge.rb`) should use snake_case.", 5381] + ], + "lib/markdown/merge.rb:4220853366": [ + [11, 3, 12, "Style/Documentation: Missing top-level documentation comment for `module Markdown::Merge`.", 2866359175], + [11, 3, 24210, "Metrics/ModuleLength: Module has too many lines. [579/100]", 4268495043], + [23, 5, 16, "Style/Documentation: Missing top-level documentation comment for `class Markdown::Merge::ParseError`.", 362242086], + [120, 5, 1014, "Metrics/MethodLength: Method has too many lines. [24/10]", 650805533], + [150, 5, 678, "Metrics/AbcSize: Assignment Branch Condition size for `match_markdown_owners` is too high. [<10, 23, 8> 26.32/17]", 2124140148], + [150, 5, 678, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `match_markdown_owners` is too high. [9/7]", 2124140148], + [150, 5, 678, "Metrics/PerceivedComplexity: Perceived complexity for `match_markdown_owners` is too high. [9/8]", 2124140148], + [163, 5, 1188, "Metrics/AbcSize: Assignment Branch Condition size for `merge_markdown` is too high. [<10, 25, 8> 28.09/17]", 3592129796], + [163, 5, 1188, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `merge_markdown` is too high. [9/7]", 3592129796], + [163, 5, 1188, "Metrics/MethodLength: Method has too many lines. [23/10]", 3592129796], + [163, 5, 1188, "Metrics/PerceivedComplexity: Perceived complexity for `merge_markdown` is too high. [9/8]", 3592129796], + [192, 5, 513, "Metrics/MethodLength: Method has too many lines. [13/10]", 912081106], + [210, 5, 747, "Metrics/MethodLength: Method has too many lines. [16/10]", 3172863125], + [241, 5, 1513, "Metrics/AbcSize: Assignment Branch Condition size for `apply_markdown_delegated_child_outputs` is too high. [<16, 37, 9> 41.3/17]", 3320736661], + [241, 5, 1513, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `apply_markdown_delegated_child_outputs` is too high. [10/7]", 3320736661], + [241, 5, 1513, "Metrics/MethodLength: Method has too many lines. [30/10]", 3320736661], + [241, 5, 1513, "Metrics/PerceivedComplexity: Perceived complexity for `apply_markdown_delegated_child_outputs` is too high. [10/8]", 3320736661], + [279, 5, 1058, "Metrics/MethodLength: Method has too many lines. [23/10]", 2000305522], + [306, 5, 1103, "Metrics/MethodLength: Method has too many lines. [23/10]", 2615729942], + [306, 52, 144, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 3050457682], + [334, 5, 817, "Metrics/MethodLength: Method has too many lines. [13/10]", 322304706], + [339, 121, 74, "Layout/LineLength: Line is too long. [194/120]", 2378183959], + [352, 5, 805, "Metrics/MethodLength: Method has too many lines. [13/10]", 935244360], + [357, 121, 66, "Layout/LineLength: Line is too long. [186/120]", 2974266470], + [370, 5, 722, "Metrics/MethodLength: Method has too many lines. [12/10]", 1758487766], + [375, 121, 17, "Layout/LineLength: Line is too long. [137/120]", 3013228499], + [387, 5, 730, "Metrics/MethodLength: Method has too many lines. [12/10]", 3297037131], + [392, 121, 17, "Layout/LineLength: Line is too long. [137/120]", 3013228499], + [418, 5, 1584, "Metrics/AbcSize: Assignment Branch Condition size for `collect_markdown_owners` is too high. [<21, 32, 13> 40.42/17]", 572024212], + [418, 5, 1584, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `collect_markdown_owners` is too high. [11/7]", 572024212], + [418, 5, 1584, "Metrics/MethodLength: Method has too many lines. [45/10]", 572024212], + [418, 5, 1584, "Metrics/PerceivedComplexity: Perceived complexity for `collect_markdown_owners` is too high. [11/8]", 572024212], + [472, 5, 1147, "Metrics/AbcSize: Assignment Branch Condition size for `markdown_owner_start_indices` is too high. [<21, 22, 11> 32.34/17]", 12516264], + [472, 5, 1147, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `markdown_owner_start_indices` is too high. [9/7]", 12516264], + [472, 5, 1147, "Metrics/MethodLength: Method has too many lines. [33/10]", 12516264], + [472, 5, 1147, "Metrics/PerceivedComplexity: Perceived complexity for `markdown_owner_start_indices` is too high. [9/8]", 12516264], + [513, 5, 602, "Metrics/AbcSize: Assignment Branch Condition size for `collect_markdown_sections` is too high. [<9, 20, 6> 22.74/17]", 1946206422], + [513, 5, 602, "Metrics/MethodLength: Method has too many lines. [14/10]", 1946206422], + [521, 7, 11, "Style/MultilineBlockChain: Avoid multi-line chains of blocks.", 848344986], + [532, 5, 1097, "Metrics/AbcSize: Assignment Branch Condition size for `markdown_fence_ranges` is too high. [<19, 21, 11> 30.38/17]", 2035260313], + [532, 5, 1097, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `markdown_fence_ranges` is too high. [8/7]", 2035260313], + [532, 5, 1097, "Metrics/MethodLength: Method has too many lines. [31/10]", 2035260313], + [548, 13, 227, "Metrics/BlockNesting: Avoid more than 3 levels of block nesting.", 1054958538], + [570, 5, 323, "Metrics/MethodLength: Method has too many lines. [14/10]", 2041170985], + [606, 5, 549, "Metrics/MethodLength: Method has too many lines. [12/10]", 2513777426] + ], + "lib/markdown/merge/backend_support.rb:1910609966": [ + [6, 5, 7153, "Metrics/ModuleLength: Module has too many lines. [161/100]", 606467501], + [18, 7, 524, "Metrics/MethodLength: Method has too many lines. [13/10]", 2550700841], + [34, 7, 913, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `configure_markdown_only_language_class!` is too high. [9/7]", 2175633707], + [34, 7, 913, "Metrics/MethodLength: Method has too many lines. [14/10]", 2175633707], + [34, 7, 913, "Metrics/PerceivedComplexity: Perceived complexity for `configure_markdown_only_language_class!` is too high. [10/8]", 2175633707], + [37, 11, 658, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `from_library` is too high. [9/7]", 353826273], + [37, 11, 658, "Metrics/PerceivedComplexity: Perceived complexity for `from_library` is too high. [10/8]", 353826273], + [44, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1312231069], + [54, 7, 1263, "Metrics/AbcSize: Assignment Branch Condition size for `configure_node_link_and_navigation!` is too high. [<3, 28, 3> 28.32/17]", 122101535], + [54, 7, 1263, "Metrics/MethodLength: Method has too many lines. [20/10]", 122101535], + [82, 7, 1148, "Metrics/MethodLength: Method has too many lines. [18/10]", 1393059075], + [108, 7, 976, "Metrics/MethodLength: Method has too many lines. [24/10]", 2694447150], + [142, 7, 618, "Metrics/MethodLength: Method has too many lines. [11/10]", 2027069469], + [160, 7, 888, "Metrics/MethodLength: Method has too many lines. [21/10]", 3721642530] + ], + "lib/markdown/merge/cleanse/block_spacing.rb:2917446564": [ + [32, 7, 7186, "Metrics/ClassLength: Class has too many lines. [138/100]", 1732896955], + [132, 9, 465, "Metrics/AbcSize: Assignment Branch Condition size for `fix` is too high. [<6, 16, 5> 17.8/17]", 341373851], + [150, 9, 1964, "Metrics/AbcSize: Assignment Branch Condition size for `analyze` is too high. [<9, 25, 16> 31.02/17]", 2558819309], + [150, 9, 1964, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `analyze` is too high. [14/7]", 2558819309], + [150, 9, 1964, "Metrics/MethodLength: Method has too many lines. [23/10]", 2558819309], + [150, 9, 1964, "Metrics/PerceivedComplexity: Perceived complexity for `analyze` is too high. [14/8]", 2558819309], + [160, 25, 7, "Style/NumericPredicate: Use `idx.positive?` instead of `idx > 0`.", 1825176542], + [192, 40, 20, "Style/NumericPredicate: Use `html_block_depth.positive?` instead of `html_block_depth > 0`.", 3208734130] + ], + "lib/markdown/merge/cleanse/code_fence_spacing.rb:1353147449": [ + [161, 9, 1524, "Metrics/AbcSize: Assignment Branch Condition size for `code_blocks` is too high. [<18, 20, 12> 29.46/17]", 2467942971], + [161, 9, 1524, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `code_blocks` is too high. [12/7]", 2467942971], + [161, 9, 1524, "Metrics/MethodLength: Method has too many lines. [35/10]", 2467942971], + [161, 9, 1524, "Metrics/PerceivedComplexity: Perceived complexity for `code_blocks` is too high. [12/8]", 2467942971], + [169, 11, 1293, "Metrics/BlockLength: Block has too many lines. [27/25]", 3238939023], + [249, 9, 884, "Metrics/AbcSize: Assignment Branch Condition size for `parse_fence_line` is too high. [<7, 15, 6> 17.61/17]", 1033947369], + [249, 9, 884, "Metrics/MethodLength: Method has too many lines. [19/10]", 1033947369] + ], + "lib/markdown/merge/cleanse/condensed_link_refs.rb:3659937794": [ + [85, 7, 12174, "Metrics/ClassLength: Class has too many lines. [115/100]", 3309007721], + [200, 9, 874, "Metrics/AbcSize: Assignment Branch Condition size for `definitions` is too high. [<6, 14, 10> 18.22/17]", 1976258109], + [200, 9, 874, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `definitions` is too high. [9/7]", 1976258109], + [200, 9, 874, "Metrics/MethodLength: Method has too many lines. [13/10]", 1976258109], + [200, 9, 874, "Metrics/PerceivedComplexity: Perceived complexity for `definitions` is too high. [9/8]", 1976258109], + [213, 43, 17, "Style/NumericPredicate: Use `first_bracket.positive?` instead of `first_bracket > 0`.", 1095960710], + [273, 13, 30, "Naming/PredicatePrefix: Rename `has_content_before_definition?` to `content_before_definition?`.", 213744570], + [298, 9, 997, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `parse_line` is too high. [9/7]", 2139717575], + [298, 9, 997, "Metrics/MethodLength: Method has too many lines. [13/10]", 2139717575], + [298, 9, 997, "Metrics/PerceivedComplexity: Perceived complexity for `parse_line` is too high. [9/8]", 2139717575], + [352, 9, 1214, "Metrics/AbcSize: Assignment Branch Condition size for `expand_line` is too high. [<10, 20, 17> 28.09/17]", 149412459], + [352, 9, 1214, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `expand_line` is too high. [14/7]", 149412459], + [352, 9, 1214, "Metrics/MethodLength: Method has too many lines. [21/10]", 149412459], + [352, 9, 1214, "Metrics/PerceivedComplexity: Perceived complexity for `expand_line` is too high. [15/8]", 149412459], + [358, 37, 17, "Style/NumericPredicate: Use `first_bracket.positive?` instead of `first_bracket > 0`.", 1095960710] + ], + "lib/markdown/merge/cleanse/templating_corruption.rb:3945009912": [ + [59, 9, 384, "Metrics/AbcSize: Assignment Branch Condition size for `append_issues` is too high. [<0, 17, 2> 17.12/17]", 2550677275] + ], + "lib/markdown/merge/code_block_merger.rb:1362562532": [ + [32, 5, 27618, "Metrics/ClassLength: Class has too many lines. [554/100]", 1891552237], + [120, 7, 543, "Metrics/MethodLength: Method has too many lines. [11/10]", 625040368], + [120, 28, 92, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 3691835500], + [135, 7, 666, "Metrics/MethodLength: Method has too many lines. [13/10]", 4153783419], + [156, 7, 2796, "Metrics/AbcSize: Assignment Branch Condition size for `merge_code_blocks_with_runtime` is too high. [<5, 52, 11> 53.39/17]", 4194925058], + [156, 7, 2796, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `merge_code_blocks_with_runtime` is too high. [10/7]", 4194925058], + [156, 7, 2796, "Metrics/MethodLength: Method has too many lines. [63/10]", 4194925058], + [156, 7, 2796, "Metrics/PerceivedComplexity: Perceived complexity for `merge_code_blocks_with_runtime` is too high. [12/8]", 4194925058], + [156, 41, 125, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 1827509670], + [227, 7, 1778, "Metrics/AbcSize: Assignment Branch Condition size for `build_runtime_operation` is too high. [<3, 24, 4> 24.52/17]", 3746845105], + [227, 7, 1778, "Metrics/MethodLength: Method has too many lines. [31/10]", 3746845105], + [227, 34, 86, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 3153149164], + [239, 39, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], + [290, 7, 528, "Metrics/MethodLength: Method has too many lines. [14/10]", 3045714289], + [307, 7, 2407, "Metrics/AbcSize: Assignment Branch Condition size for `merge_runtime_surface` is too high. [<1, 50, 7> 50.5/17]", 3818534251], + [307, 7, 2407, "Metrics/MethodLength: Method has too many lines. [53/10]", 3818534251], + [365, 7, 2502, "Metrics/AbcSize: Assignment Branch Condition size for `perform_code_block_merge` is too high. [<8, 34, 16> 38.42/17]", 3120245149], + [365, 7, 2502, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `perform_code_block_merge` is too high. [14/7]", 3120245149], + [365, 7, 2502, "Metrics/MethodLength: Method has too many lines. [57/10]", 3120245149], + [365, 7, 2502, "Metrics/PerceivedComplexity: Perceived complexity for `perform_code_block_merge` is too high. [16/8]", 3120245149], + [365, 35, 83, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 2137984385], + [435, 7, 1289, "Metrics/MethodLength: Method has too many lines. [33/10]", 3304634912], + [435, 43, 154, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [8/5]", 2516842130], + [473, 7, 755, "Metrics/MethodLength: Method has too many lines. [15/10]", 2207072637], + [473, 35, 127, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [7/5]", 2610889879], + [492, 38, 167, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [8/5]", 372116680], + [492, 121, 3, "Layout/LineLength: Line is too long. [123/120]", 193417996], + [506, 37, 166, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [8/5]", 321759336], + [506, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5861061], + [547, 19, 20, "Style/StringConcatenation: Prefer string interpolation to string concatenation.", 3860798338], + [574, 9, 109, "Lint/RescueException: Avoid rescuing the `Exception` class. Perhaps you meant to rescue `StandardError`?", 2421726137], + [575, 21, 50, "Style/ClassEqualityComparison: Use `instance_of?(::RSpec::Mocks::MockExpectationError)` instead of comparing classes.", 952914844], + [592, 9, 797, "Metrics/MethodLength: Method has too many lines. [18/10]", 4001935536], + [622, 9, 800, "Metrics/MethodLength: Method has too many lines. [18/10]", 2519636656], + [652, 9, 798, "Metrics/MethodLength: Method has too many lines. [18/10]", 2048436912], + [680, 9, 1160, "Metrics/MethodLength: Method has too many lines. [26/10]", 45677001], + [718, 9, 798, "Metrics/MethodLength: Method has too many lines. [18/10]", 3475080240] + ], + "lib/markdown/merge/comment_tracker.rb:167569374": [ + [19, 7, 374, "Metrics/MethodLength: Method has too many lines. [11/10]", 3280949001] + ], + "lib/markdown/merge/conflict_resolver.rb:686298490": [ + [29, 5, 6207, "Metrics/ClassLength: Class has too many lines. [122/100]", 3761260950], + [57, 7, 1217, "Metrics/MethodLength: Method has too many lines. [32/10]", 3372247297], + [57, 55, 14, "Lint/UnusedMethodArgument: Unused method argument - `template_index`.", 1809801172], + [57, 72, 10, "Lint/UnusedMethodArgument: Unused method argument - `dest_index`.", 2703999490], + [112, 7, 1811, "Metrics/AbcSize: Assignment Branch Condition size for `unresolved_resolution` is too high. [<6, 22, 5> 23.35/17]", 391291522], + [112, 7, 1811, "Metrics/MethodLength: Method has too many lines. [39/10]", 391291522], + [161, 7, 605, "Metrics/MethodLength: Method has too many lines. [12/10]", 577293020] + ], + "lib/markdown/merge/file_aligner.rb:841305081": [ + [27, 5, 19046, "Metrics/ClassLength: Class has too many lines. [364/100]", 3915220059], + [57, 7, 1853, "Metrics/AbcSize: Assignment Branch Condition size for `apply_match_refiner!` is too high. [<13, 31, 14> 36.41/17]", 3500652553], + [57, 7, 1853, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `apply_match_refiner!` is too high. [15/7]", 3500652553], + [57, 7, 1853, "Metrics/MethodLength: Method has too many lines. [35/10]", 3500652553], + [57, 7, 1853, "Metrics/PerceivedComplexity: Perceived complexity for `apply_match_refiner!` is too high. [15/8]", 3500652553], + [112, 7, 312, "Metrics/MethodLength: Method has too many lines. [11/10]", 2670750985], + [132, 9, 46, "Lint/HashCompareByIdentity: Use `Hash#compare_by_identity` instead of using `object_id` for keys.", 4265307642], + [133, 11, 78, "Lint/HashCompareByIdentity: Use `Hash#compare_by_identity` instead of using `object_id` for keys.", 1464832319], + [139, 7, 644, "Metrics/AbcSize: Assignment Branch Condition size for `build_heading_owner_paths` is too high. [<8, 20, 8> 22.98/17]", 2892981198], + [139, 7, 644, "Metrics/MethodLength: Method has too many lines. [13/10]", 2892981198], + [176, 7, 1056, "Metrics/AbcSize: Assignment Branch Condition size for `adjacent_section_hijack_repair_compatible?` is too high. [<4, 25, 8> 26.55/17]", 2068902935], + [176, 7, 1056, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `adjacent_section_hijack_repair_compatible?` is too high. [8/7]", 2068902935], + [176, 7, 1056, "Metrics/MethodLength: Method has too many lines. [11/10]", 2068902935], + [204, 7, 685, "Metrics/MethodLength: Method has too many lines. [12/10]", 3293058437], + [221, 7, 762, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `next_same_owner_match_for_template_only_entry` is too high. [8/7]", 681984620], + [250, 7, 829, "Metrics/MethodLength: Method has too many lines. [15/10]", 3104261185], + [309, 7, 759, "Metrics/MethodLength: Method has too many lines. [11/10]", 4043392433], + [342, 7, 540, "Metrics/AbcSize: Assignment Branch Condition size for `synthetic_section_label_paragraph?` is too high. [<3, 15, 11> 18.84/17]", 569218077], + [342, 7, 540, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `synthetic_section_label_paragraph?` is too high. [9/7]", 569218077], + [342, 7, 540, "Metrics/PerceivedComplexity: Perceived complexity for `synthetic_section_label_paragraph?` is too high. [9/8]", 569218077], + [347, 38, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], + [385, 47, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], + [385, 85, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], + [429, 7, 792, "Metrics/AbcSize: Assignment Branch Condition size for `neighboring_heading_signatures` is too high. [<7, 17, 8> 20.05/17]", 653610323], + [429, 7, 792, "Metrics/MethodLength: Method has too many lines. [14/10]", 653610323], + [466, 7, 879, "Metrics/AbcSize: Assignment Branch Condition size for `first_list_item_anchor` is too high. [<6, 22, 9> 24.52/17]", 1144304252], + [466, 7, 879, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `first_list_item_anchor` is too high. [9/7]", 1144304252], + [466, 7, 879, "Metrics/MethodLength: Method has too many lines. [21/10]", 1144304252], + [466, 7, 879, "Metrics/PerceivedComplexity: Perceived complexity for `first_list_item_anchor` is too high. [10/8]", 1144304252] + ], + "lib/markdown/merge/file_analysis.rb:4222490806": [ + [41, 5, 21729, "Metrics/ClassLength: Class has too many lines. [414/100]", 3545476722], + [185, 7, 2960, "Metrics/AbcSize: Assignment Branch Condition size for `compute_parser_signature` is too high. [<13, 36, 18> 42.3/17]", 1002271909], + [185, 7, 2960, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `compute_parser_signature` is too high. [17/7]", 1002271909], + [185, 7, 2960, "Metrics/MethodLength: Method has too many lines. [42/10]", 1002271909], + [185, 7, 2960, "Metrics/PerceivedComplexity: Perceived complexity for `compute_parser_signature` is too high. [11/8]", 1002271909], + [292, 7, 640, "Metrics/AbcSize: Assignment Branch Condition size for `heading_section_owners` is too high. [<5, 16, 3> 17.03/17]", 2368833202], + [292, 7, 640, "Metrics/MethodLength: Method has too many lines. [14/10]", 2368833202], + [311, 7, 763, "Metrics/AbcSize: Assignment Branch Condition size for `link_definition_owners` is too high. [<2, 19, 7> 20.35/17]", 2205544068], + [311, 7, 763, "Metrics/MethodLength: Method has too many lines. [16/10]", 2205544068], + [348, 7, 1577, "Metrics/AbcSize: Assignment Branch Condition size for `table_row_owners` is too high. [<16, 43, 17> 48.93/17]", 363370243], + [348, 7, 1577, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `table_row_owners` is too high. [16/7]", 363370243], + [348, 7, 1577, "Metrics/MethodLength: Method has too many lines. [34/10]", 363370243], + [348, 7, 1577, "Metrics/PerceivedComplexity: Perceived complexity for `table_row_owners` is too high. [16/8]", 363370243], + [408, 7, 689, "Metrics/MethodLength: Method has too many lines. [14/10]", 590050144], + [448, 7, 546, "Metrics/MethodLength: Method has too many lines. [18/10]", 1600631533], + [471, 7, 653, "Metrics/MethodLength: Method has too many lines. [15/10]", 4205564731], + [492, 7, 897, "Metrics/AbcSize: Assignment Branch Condition size for `inline_link_reference_at` is too high. [<6, 17, 11> 21.12/17]", 1855615733], + [492, 7, 897, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `inline_link_reference_at` is too high. [8/7]", 1855615733], + [492, 7, 897, "Metrics/MethodLength: Method has too many lines. [19/10]", 1855615733], + [517, 33, 83, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [7/5]", 2884863618], + [530, 7, 348, "Metrics/MethodLength: Method has too many lines. [13/10]", 3731533636], + [559, 7, 777, "Metrics/MethodLength: Method has too many lines. [14/10]", 1287754637], + [597, 7, 558, "Metrics/MethodLength: Method has too many lines. [15/10]", 3417342515] + ], + "lib/markdown/merge/file_analysis_base.rb:678024820": [ + [37, 5, 26494, "Metrics/ClassLength: Class has too many lines. [405/100]", 2769422452], + [60, 7, 1360, "Metrics/MethodLength: Method has too many lines. [18/10]", 90913983], + [261, 7, 3539, "Metrics/AbcSize: Assignment Branch Condition size for `compute_parser_signature` is too high. [<16, 43, 19> 49.66/17]", 3466910865], + [261, 7, 3539, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `compute_parser_signature` is too high. [18/7]", 3466910865], + [261, 7, 3539, "Metrics/MethodLength: Method has too many lines. [45/10]", 3466910865], + [261, 7, 3539, "Metrics/PerceivedComplexity: Perceived complexity for `compute_parser_signature` is too high. [11/8]", 3466910865], + [467, 7, 1153, "Metrics/AbcSize: Assignment Branch Condition size for `collect_top_level_nodes_with_gaps` is too high. [<10, 16, 7> 20.12/17]", 2190890907], + [467, 7, 1153, "Metrics/MethodLength: Method has too many lines. [18/10]", 2190890907], + [524, 7, 944, "Metrics/AbcSize: Assignment Branch Condition size for `integrate_gap_nodes` is too high. [<10, 14, 9> 19.42/17]", 2618792164], + [524, 7, 944, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `integrate_gap_nodes` is too high. [9/7]", 2618792164], + [524, 7, 944, "Metrics/MethodLength: Method has too many lines. [17/10]", 2618792164], + [524, 7, 944, "Metrics/PerceivedComplexity: Perceived complexity for `integrate_gap_nodes` is too high. [9/8]", 2618792164], + [536, 50, 7, "Style/NumericPredicate: Use `idx.positive?` instead of `idx > 0`.", 1825176542], + [565, 7, 2225, "Metrics/AbcSize: Assignment Branch Condition size for `find_freeze_markers` is too high. [<16, 30, 15> 37.16/17]", 263815919], + [565, 7, 2225, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `find_freeze_markers` is too high. [16/7]", 263815919], + [565, 7, 2225, "Metrics/MethodLength: Method has too many lines. [39/10]", 263815919], + [565, 7, 2225, "Metrics/PerceivedComplexity: Perceived complexity for `find_freeze_markers` is too high. [16/8]", 263815919], + [588, 15, 101, "Metrics/BlockNesting: Avoid more than 3 levels of block nesting.", 2762675417], + [611, 23, 26, "Metrics/BlockNesting: Avoid more than 3 levels of block nesting.", 2775329597], + [630, 7, 708, "Metrics/MethodLength: Method has too many lines. [19/10]", 1535336850], + [663, 7, 859, "Metrics/MethodLength: Method has too many lines. [19/10]", 1633852183], + [706, 7, 595, "Metrics/MethodLength: Method has too many lines. [14/10]", 2922601775], + [730, 7, 1145, "Metrics/AbcSize: Assignment Branch Condition size for `integrate_nodes_with_freeze_blocks` is too high. [<12, 17, 16> 26.25/17]", 2481642790], + [730, 7, 1145, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `integrate_nodes_with_freeze_blocks` is too high. [13/7]", 2481642790], + [730, 7, 1145, "Metrics/MethodLength: Method has too many lines. [22/10]", 2481642790], + [730, 7, 1145, "Metrics/PerceivedComplexity: Perceived complexity for `integrate_nodes_with_freeze_blocks` is too high. [13/8]", 2481642790] + ], + "lib/markdown/merge/freeze_node.rb:2861044075": [ + [39, 21, 86, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [7/5]", 4263110221] + ], + "lib/markdown/merge/gap_line_node.rb:2230943204": [ + [40, 7, 461, "Metrics/MethodLength: Method has too many lines. [11/10]", 1038026861], + [75, 7, 1087, "Metrics/MethodLength: Method has too many lines. [17/10]", 690589617], + [75, 7, 1087, "Metrics/PerceivedComplexity: Perceived complexity for `signature` is too high. [10/8]", 690589617], + [76, 27, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765] + ], + "lib/markdown/merge/link_definition_node.rb:526538026": [ + [54, 7, 413, "Metrics/MethodLength: Method has too many lines. [11/10]", 449561622] + ], + "lib/markdown/merge/link_parser.rb:1096919687": [ + [30, 5, 12509, "Metrics/ClassLength: Class has too many lines. [179/100]", 1758727291], + [168, 7, 459, "Metrics/MethodLength: Method has too many lines. [11/10]", 518494532], + [239, 7, 945, "Metrics/AbcSize: Assignment Branch Condition size for `build_link_tree` is too high. [<12, 18, 13> 25.24/17]", 3590515429], + [239, 7, 945, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `build_link_tree` is too high. [10/7]", 3590515429], + [239, 7, 945, "Metrics/MethodLength: Method has too many lines. [19/10]", 3590515429], + [239, 7, 945, "Metrics/PerceivedComplexity: Perceived complexity for `build_link_tree` is too high. [10/8]", 3590515429], + [297, 7, 738, "Metrics/AbcSize: Assignment Branch Condition size for `find_constructs` is too high. [<9, 9, 15> 19.67/17]", 1944426624], + [297, 7, 738, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `find_constructs` is too high. [9/7]", 1944426624], + [297, 7, 738, "Metrics/MethodLength: Method has too many lines. [20/10]", 1944426624], + [297, 7, 738, "Metrics/PerceivedComplexity: Perceived complexity for `find_constructs` is too high. [10/8]", 1944426624], + [308, 31, 7, "Style/NumericPredicate: Use `idx.positive?` instead of `idx > 0`.", 1825176542], + [326, 7, 1492, "Metrics/AbcSize: Assignment Branch Condition size for `try_parse_construct_at` is too high. [<7, 26, 13> 29.9/17]", 751157862], + [326, 7, 1492, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `try_parse_construct_at` is too high. [9/7]", 751157862], + [326, 7, 1492, "Metrics/MethodLength: Method has too many lines. [32/10]", 751157862], + [326, 7, 1492, "Metrics/PerceivedComplexity: Perceived complexity for `try_parse_construct_at` is too high. [10/8]", 751157862], + [371, 7, 332, "Metrics/MethodLength: Method has too many lines. [13/10]", 766454795], + [381, 27, 10, "Style/NumericPredicate: Use `depth.zero?` instead of `depth == 0`.", 3245914040], + [389, 7, 679, "Metrics/AbcSize: Assignment Branch Condition size for `find_paren_end` is too high. [<12, 5, 12> 17.69/17]", 3435642705], + [389, 7, 679, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `find_paren_end` is too high. [10/7]", 3435642705], + [389, 7, 679, "Metrics/MethodLength: Method has too many lines. [24/10]", 3435642705], + [389, 7, 679, "Metrics/PerceivedComplexity: Perceived complexity for `find_paren_end` is too high. [10/8]", 3435642705], + [410, 29, 10, "Style/NumericPredicate: Use `depth.zero?` instead of `depth == 0`.", 3245914040] + ], + "lib/markdown/merge/link_reference_rehydrator.rb:2522597032": [ + [28, 5, 10014, "Metrics/ClassLength: Class has too many lines. [171/100]", 3685995823], + [89, 7, 955, "Metrics/AbcSize: Assignment Branch Condition size for `rehydrate` is too high. [<6, 21, 4> 22.2/17]", 4193701], + [89, 7, 955, "Metrics/MethodLength: Method has too many lines. [12/10]", 4193701], + [138, 7, 1280, "Metrics/MethodLength: Method has too many lines. [20/10]", 2243922075], + [138, 7, 1280, "Metrics/PerceivedComplexity: Perceived complexity for `collect_nested_replacements` is too high. [10/8]", 2243922075], + [181, 7, 1844, "Metrics/AbcSize: Assignment Branch Condition size for `process_parent_with_children` is too high. [<11, 30, 10> 33.48/17]", 1412317448], + [181, 7, 1844, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `process_parent_with_children` is too high. [9/7]", 1412317448], + [181, 7, 1844, "Metrics/MethodLength: Method has too many lines. [29/10]", 1412317448], + [181, 7, 1844, "Metrics/PerceivedComplexity: Perceived complexity for `process_parent_with_children` is too high. [9/8]", 1412317448], + [230, 7, 672, "Metrics/AbcSize: Assignment Branch Condition size for `build_definition_maps` is too high. [<18, 18, 5> 25.94/17]", 2626750147], + [230, 7, 672, "Metrics/MethodLength: Method has too many lines. [15/10]", 2626750147], + [265, 7, 594, "Metrics/MethodLength: Method has too many lines. [21/10]", 1835317302], + [292, 7, 598, "Metrics/MethodLength: Method has too many lines. [21/10]", 1975952876] + ], + "lib/markdown/merge/list_match_refiner.rb:2863813265": [ + [28, 7, 760, "Metrics/AbcSize: Assignment Branch Condition size for `compute_similarity` is too high. [<6, 20, 4> 21.26/17]", 4078625426], + [28, 7, 760, "Metrics/MethodLength: Method has too many lines. [13/10]", 4078625426] + ], + "lib/markdown/merge/list_merger.rb:1304801063": [ + [33, 5, 10963, "Metrics/ClassLength: Class has too many lines. [214/100]", 602699468], + [48, 7, 1267, "Metrics/MethodLength: Method has too many lines. [22/10]", 3289445396], + [48, 22, 295, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [8/5]", 992893951], + [76, 20, 23, "Style/StringConcatenation: Prefer string interpolation to string concatenation.", 1178765246], + [86, 7, 474, "Metrics/MethodLength: Method has too many lines. [14/10]", 3392803095], + [110, 7, 2384, "Metrics/AbcSize: Assignment Branch Condition size for `align_items` is too high. [<29, 55, 24> 66.65/17]", 452537823], + [110, 7, 2384, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `align_items` is too high. [22/7]", 452537823], + [110, 7, 2384, "Metrics/MethodLength: Method has too many lines. [44/10]", 452537823], + [110, 7, 2384, "Metrics/PerceivedComplexity: Perceived complexity for `align_items` is too high. [23/8]", 452537823], + [179, 7, 2546, "Metrics/AbcSize: Assignment Branch Condition size for `emit_lines` is too high. [<24, 40, 13> 48.43/17]", 2868796461], + [179, 7, 2546, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `emit_lines` is too high. [10/7]", 2868796461], + [179, 7, 2546, "Metrics/MethodLength: Method has too many lines. [48/10]", 2868796461], + [179, 7, 2546, "Metrics/PerceivedComplexity: Perceived complexity for `emit_lines` is too high. [9/8]", 2868796461], + [179, 21, 167, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [9/5]", 3110781545], + [186, 9, 2214, "Metrics/BlockLength: Block has too many lines. [41/25]", 27504812], + [267, 7, 1113, "Metrics/MethodLength: Method has too many lines. [21/10]", 2701858480], + [267, 32, 165, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [9/5]", 4189168652] + ], + "lib/markdown/merge/merge_result.rb:3204455982": [ + [35, 5, 18456, "Metrics/ClassLength: Class has too many lines. [336/100]", 549816393], + [47, 21, 99, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [7/5]", 1708164346], + [99, 11, 18, "Naming/PredicatePrefix: Rename `has_frozen_blocks?` to `frozen_blocks?`.", 2714608976], + [174, 7, 987, "Metrics/MethodLength: Method has too many lines. [14/10]", 199512025], + [178, 121, 23, "Layout/LineLength: Line is too long. [143/120]", 2749193064], + [197, 7, 719, "Metrics/MethodLength: Method has too many lines. [11/10]", 3478479763], + [214, 7, 3130, "Metrics/AbcSize: Assignment Branch Condition size for `apply_grouped_delegated_block!` is too high. [<37, 72, 21> 83.63/17]", 3965639779], + [214, 7, 3130, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `apply_grouped_delegated_block!` is too high. [21/7]", 3965639779], + [214, 7, 3130, "Metrics/MethodLength: Method has too many lines. [49/10]", 3965639779], + [214, 7, 3130, "Metrics/PerceivedComplexity: Perceived complexity for `apply_grouped_delegated_block!` is too high. [21/8]", 3965639779], + [218, 121, 55, "Layout/LineLength: Line is too long. [175/120]", 2758428109], + [227, 9, 22, "Style/MultilineBlockChain: Avoid multi-line chains of blocks.", 3561198282], + [232, 9, 22, "Style/MultilineBlockChain: Avoid multi-line chains of blocks.", 3561198282], + [237, 9, 22, "Style/MultilineBlockChain: Avoid multi-line chains of blocks.", 3561198282], + [267, 7, 956, "Metrics/AbcSize: Assignment Branch Condition size for `apply_output_range_resolutions_descending!` is too high. [<8, 26, 8> 28.35/17]", 410698269], + [267, 7, 956, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `apply_output_range_resolutions_descending!` is too high. [8/7]", 410698269], + [267, 7, 956, "Metrics/MethodLength: Method has too many lines. [13/10]", 410698269], + [269, 121, 9, "Layout/LineLength: Line is too long. [129/120]", 1650842885], + [304, 7, 1607, "Metrics/AbcSize: Assignment Branch Condition size for `remap_delegated_cases_after_apply` is too high. [<5, 20, 1> 20.64/17]", 2805002106], + [304, 7, 1607, "Metrics/MethodLength: Method has too many lines. [25/10]", 2805002106], + [304, 44, 174, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [7/5]", 2563452319], + [352, 7, 664, "Metrics/MethodLength: Method has too many lines. [13/10]", 2283269648], + [402, 7, 605, "Metrics/MethodLength: Method has too many lines. [12/10]", 219211686], + [418, 7, 622, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `sanitize_review_state_metadata` is too high. [8/7]", 656017698], + [418, 7, 622, "Metrics/MethodLength: Method has too many lines. [16/10]", 656017698], + [439, 7, 1110, "Metrics/AbcSize: Assignment Branch Condition size for `validate_review_state_compatibility!` is too high. [<7, 18, 13> 23.28/17]", 3899925007], + [439, 7, 1110, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `validate_review_state_compatibility!` is too high. [11/7]", 3899925007], + [439, 7, 1110, "Metrics/MethodLength: Method has too many lines. [18/10]", 3899925007], + [439, 7, 1110, "Metrics/PerceivedComplexity: Perceived complexity for `validate_review_state_compatibility!` is too high. [11/8]", 3899925007], + [453, 121, 9, "Layout/LineLength: Line is too long. [129/120]", 2530059826], + [460, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5861331] + ], + "lib/markdown/merge/output_builder.rb:48145848": [ + [23, 5, 8640, "Metrics/ClassLength: Class has too many lines. [115/100]", 1155429967], + [47, 7, 2071, "Metrics/AbcSize: Assignment Branch Condition size for `add_node_source` is too high. [<6, 15, 12> 20.12/17]", 555854176], + [47, 7, 2071, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `add_node_source` is too high. [12/7]", 555854176], + [47, 7, 2071, "Metrics/MethodLength: Method has too many lines. [15/10]", 555854176], + [47, 7, 2071, "Metrics/PerceivedComplexity: Perceived complexity for `add_node_source` is too high. [12/8]", 555854176], + [60, 121, 43, "Layout/LineLength: Line is too long. [163/120]", 527167630], + [61, 121, 67, "Layout/LineLength: Line is too long. [187/120]", 2893319489], + [62, 121, 43, "Layout/LineLength: Line is too long. [163/120]", 2876999963], + [63, 121, 74, "Layout/LineLength: Line is too long. [194/120]", 4139918410], + [92, 38, 9, "Style/NumericPredicate: Use `count.positive?` instead of `count > 0`.", 3986027816], + [122, 7, 370, "Metrics/MethodLength: Method has too many lines. [11/10]", 616591631], + [224, 7, 878, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `extract_parser_node_source` is too high. [10/7]", 227721314], + [224, 7, 878, "Metrics/MethodLength: Method has too many lines. [13/10]", 227721314], + [224, 7, 878, "Metrics/PerceivedComplexity: Perceived complexity for `extract_parser_node_source` is too high. [11/8]", 227721314] + ], + "lib/markdown/merge/partial_template_merger.rb:3110525012": [ + [32, 5, 20691, "Metrics/ClassLength: Class has too many lines. [336/100]", 496419120], + [71, 7, 1040, "Metrics/MethodLength: Method has too many lines. [17/10]", 2144648319], + [71, 21, 417, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [14/5]", 1226086326], + [109, 7, 1065, "Metrics/AbcSize: Assignment Branch Condition size for `merge` is too high. [<7, 19, 6> 21.12/17]", 3976180000], + [109, 7, 1065, "Metrics/MethodLength: Method has too many lines. [25/10]", 3976180000], + [145, 7, 912, "Metrics/MethodLength: Method has too many lines. [15/10]", 2077585004], + [265, 7, 1401, "Metrics/AbcSize: Assignment Branch Condition size for `find_section_end` is too high. [<8, 28, 11> 31.13/17]", 1420600674], + [265, 7, 1401, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `find_section_end` is too high. [10/7]", 1420600674], + [265, 7, 1401, "Metrics/MethodLength: Method has too many lines. [20/10]", 1420600674], + [265, 7, 1401, "Metrics/PerceivedComplexity: Perceived complexity for `find_section_end` is too high. [10/8]", 1420600674], + [311, 7, 1101, "Metrics/AbcSize: Assignment Branch Condition size for `node_to_source` is too high. [<6, 15, 15> 22.05/17]", 3635207151], + [311, 7, 1101, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `node_to_source` is too high. [13/7]", 3635207151], + [311, 7, 1101, "Metrics/MethodLength: Method has too many lines. [20/10]", 3635207151], + [311, 7, 1101, "Metrics/PerceivedComplexity: Perceived complexity for `node_to_source` is too high. [14/8]", 3635207151], + [318, 20, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], + [323, 42, 14, "Style/NumericPredicate: Use `start_line.positive?` instead of `start_line > 0`.", 792111162], + [345, 7, 643, "Metrics/MethodLength: Method has too many lines. [17/10]", 998852567], + [364, 34, 10, "Style/NumericPredicate: Use `value.zero?` instead of `value == 0`.", 4076387742], + [367, 7, 2760, "Metrics/AbcSize: Assignment Branch Condition size for `preserved_destination_insertions` is too high. [<19, 28, 14> 36.62/17]", 414221184], + [367, 7, 2760, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `preserved_destination_insertions` is too high. [13/7]", 414221184], + [367, 7, 2760, "Metrics/MethodLength: Method has too many lines. [49/10]", 414221184], + [367, 7, 2760, "Metrics/PerceivedComplexity: Perceived complexity for `preserved_destination_insertions` is too high. [15/8]", 414221184], + [381, 121, 7, "Layout/LineLength: Line is too long. [127/120]", 682972477], + [426, 7, 1058, "Metrics/MethodLength: Method has too many lines. [16/10]", 932075153], + [475, 7, 1040, "Metrics/AbcSize: Assignment Branch Condition size for `render_template_with_preserved_insertions` is too high. [<10, 18, 10> 22.89/17]", 1699694974], + [475, 7, 1040, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `render_template_with_preserved_insertions` is too high. [9/7]", 1699694974], + [475, 7, 1040, "Metrics/MethodLength: Method has too many lines. [21/10]", 1699694974], + [475, 7, 1040, "Metrics/PerceivedComplexity: Perceived complexity for `render_template_with_preserved_insertions` is too high. [9/8]", 1699694974], + [504, 7, 454, "Metrics/MethodLength: Method has too many lines. [12/10]", 3433907112] + ], + "lib/markdown/merge/preservation_support.rb:3687269889": [ + [13, 5, 10105, "Metrics/ModuleLength: Module has too many lines. [212/100]", 674454], + [24, 7, 572, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `standalone_comment_node?` is too high. [9/7]", 349869031], + [24, 7, 572, "Metrics/PerceivedComplexity: Perceived complexity for `standalone_comment_node?` is too high. [9/8]", 349869031], + [116, 7, 655, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `remove_plan_preserved_comment_regions` is too high. [8/7]", 2103873816], + [116, 7, 655, "Metrics/MethodLength: Method has too many lines. [12/10]", 2103873816], + [178, 7, 1301, "Metrics/AbcSize: Assignment Branch Condition size for `remove_plan_comment_insertion_specs` is too high. [<5, 22, 8> 23.94/17]", 698043371], + [178, 7, 1301, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `remove_plan_comment_insertion_specs` is too high. [9/7]", 698043371], + [178, 7, 1301, "Metrics/MethodLength: Method has too many lines. [22/10]", 698043371], + [178, 7, 1301, "Metrics/PerceivedComplexity: Perceived complexity for `remove_plan_comment_insertion_specs` is too high. [9/8]", 698043371], + [193, 9, 7, "Style/MultilineBlockChain: Avoid multi-line chains of blocks.", 4045570401], + [217, 7, 737, "Metrics/MethodLength: Method has too many lines. [13/10]", 3882071587], + [248, 28, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], + [271, 7, 704, "Metrics/MethodLength: Method has too many lines. [13/10]", 2605835865], + [271, 52, 139, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 1766111143] + ], + "lib/markdown/merge/smart_merger.rb:1245982439": [ + [151, 7, 1405, "Metrics/MethodLength: Method has too many lines. [19/10]", 2830703815], + [151, 21, 501, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [13/5]", 1104874368], + [229, 7, 1140, "Metrics/AbcSize: Assignment Branch Condition size for `node_to_source` is too high. [<5, 15, 9> 18.19/17]", 1515173572], + [229, 7, 1140, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `node_to_source` is too high. [9/7]", 1515173572], + [229, 7, 1140, "Metrics/MethodLength: Method has too many lines. [13/10]", 1515173572], + [229, 7, 1140, "Metrics/PerceivedComplexity: Perceived complexity for `node_to_source` is too high. [10/8]", 1515173572] + ], + "lib/markdown/merge/smart_merger_base.rb:950545235": [ + [43, 5, 59104, "Metrics/ClassLength: Class has too many lines. [984/100]", 1046238359], + [148, 7, 3731, "Metrics/AbcSize: Assignment Branch Condition size for `initialize` is too high. [<20, 19, 10> 29.34/17]", 50319656], + [148, 7, 3731, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `initialize` is too high. [11/7]", 50319656], + [148, 7, 3731, "Metrics/MethodLength: Method has too many lines. [66/10]", 50319656], + [148, 7, 3731, "Metrics/PerceivedComplexity: Perceived complexity for `initialize` is too high. [9/8]", 50319656], + [148, 21, 606, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [17/5]", 4006929896], + [294, 7, 1760, "Metrics/AbcSize: Assignment Branch Condition size for `merge_result` is too high. [<15, 19, 7> 25.2/17]", 3628731818], + [294, 7, 1760, "Metrics/MethodLength: Method has too many lines. [31/10]", 3628731818], + [297, 25, 1662, "Metrics/BlockLength: Block has too many lines. [28/25]", 1167387512], + [343, 7, 1195, "Metrics/AbcSize: Assignment Branch Condition size for `merge_with_debug` is too high. [<3, 20, 17> 26.42/17]", 1763663260], + [343, 7, 1195, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `merge_with_debug` is too high. [18/7]", 1763663260], + [343, 7, 1195, "Metrics/MethodLength: Method has too many lines. [27/10]", 1763663260], + [343, 7, 1195, "Metrics/PerceivedComplexity: Perceived complexity for `merge_with_debug` is too high. [18/8]", 1763663260], + [383, 7, 1862, "Metrics/AbcSize: Assignment Branch Condition size for `prepare_runtime_session!` is too high. [<4, 24, 1> 24.35/17]", 546014873], + [383, 7, 1862, "Metrics/MethodLength: Method has too many lines. [45/10]", 546014873], + [432, 7, 1064, "Metrics/MethodLength: Method has too many lines. [21/10]", 214902707], + [490, 7, 438, "Metrics/MethodLength: Method has too many lines. [11/10]", 1759076310], + [505, 31, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], + [529, 7, 788, "Metrics/MethodLength: Method has too many lines. [13/10]", 690316762], + [553, 7, 1538, "Metrics/AbcSize: Assignment Branch Condition size for `collapse_cross_source_preamble_prefixes` is too high. [<9, 18, 6> 21/17]", 1970988374], + [553, 7, 1538, "Metrics/MethodLength: Method has too many lines. [25/10]", 1970988374], + [586, 7, 644, "Metrics/AbcSize: Assignment Branch Condition size for `leading_standalone_comment_run` is too high. [<8, 14, 7> 17.58/17]", 4188914818], + [586, 7, 644, "Metrics/MethodLength: Method has too many lines. [17/10]", 4188914818], + [614, 7, 1576, "Metrics/AbcSize: Assignment Branch Condition size for `process_alignment` is too high. [<15, 14, 10> 22.83/17]", 3967135783], + [614, 7, 1576, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `process_alignment` is too high. [11/7]", 3967135783], + [614, 7, 1576, "Metrics/MethodLength: Method has too many lines. [31/10]", 3967135783], + [614, 7, 1576, "Metrics/PerceivedComplexity: Perceived complexity for `process_alignment` is too high. [9/8]", 3967135783], + [656, 7, 2871, "Metrics/AbcSize: Assignment Branch Condition size for `process_match_to_builder` is too high. [<17, 39, 19> 46.59/17]", 608053079], + [656, 7, 2871, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `process_match_to_builder` is too high. [19/7]", 608053079], + [656, 7, 2871, "Metrics/MethodLength: Method has too many lines. [50/10]", 608053079], + [656, 7, 2871, "Metrics/PerceivedComplexity: Perceived complexity for `process_match_to_builder` is too high. [18/8]", 608053079], + [720, 7, 867, "Metrics/MethodLength: Method has too many lines. [18/10]", 2946023513], + [764, 7, 670, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `consumed_link_definitions_within` is too high. [8/7]", 2596009659], + [764, 7, 670, "Metrics/MethodLength: Method has too many lines. [11/10]", 2596009659], + [774, 9, 8, "Style/MultilineBlockChain: Avoid multi-line chains of blocks.", 359839059], + [782, 45, 50, "Style/ClassEqualityComparison: Use `instance_of?(::RSpec::Mocks::MockExpectationError)` instead of comparing classes.", 952914844], + [797, 7, 939, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `apply_node_typing` is too high. [8/7]", 2526108526], + [797, 7, 939, "Metrics/MethodLength: Method has too many lines. [14/10]", 2526108526], + [849, 7, 1297, "Metrics/AbcSize: Assignment Branch Condition size for `try_inner_merge_list_to_builder` is too high. [<8, 20, 8> 22.98/17]", 2844551967], + [849, 7, 1297, "Metrics/MethodLength: Method has too many lines. [25/10]", 2844551967], + [849, 42, 71, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 3479074024], + [885, 7, 1361, "Metrics/AbcSize: Assignment Branch Condition size for `try_inner_merge_code_block_to_builder` is too high. [<7, 19, 6> 21.12/17]", 2468334280], + [885, 7, 1361, "Metrics/MethodLength: Method has too many lines. [29/10]", 2468334280], + [885, 48, 71, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 3479074024], + [918, 7, 1923, "Metrics/AbcSize: Assignment Branch Condition size for `remap_delegated_unresolved_cases` is too high. [<8, 23, 5> 24.86/17]", 2261924082], + [918, 7, 1923, "Metrics/MethodLength: Method has too many lines. [35/10]", 2261924082], + [922, 9, 1535, "Metrics/BlockLength: Block has too many lines. [31/25]", 838301956], + [983, 7, 657, "Metrics/MethodLength: Method has too many lines. [15/10]", 4047906352], + [1027, 7, 411, "Metrics/MethodLength: Method has too many lines. [13/10]", 4206078535], + [1053, 7, 3160, "Metrics/AbcSize: Assignment Branch Condition size for `process_dest_only_to_builder` is too high. [<14, 41, 24> 49.53/17]", 1311626075], + [1053, 7, 3160, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `process_dest_only_to_builder` is too high. [25/7]", 1311626075], + [1053, 7, 3160, "Metrics/MethodLength: Method has too many lines. [51/10]", 1311626075], + [1053, 7, 3160, "Metrics/PerceivedComplexity: Perceived complexity for `process_dest_only_to_builder` is too high. [25/8]", 1311626075], + [1053, 39, 177, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [7/5]", 2740785193], + [1167, 7, 395, "Metrics/MethodLength: Method has too many lines. [11/10]", 433430016], + [1204, 7, 465, "Metrics/MethodLength: Method has too many lines. [12/10]", 1101864061], + [1261, 7, 861, "Metrics/MethodLength: Method has too many lines. [16/10]", 2380789170], + [1314, 121, 3, "Layout/LineLength: Line is too long. [123/120]", 193431734], + [1317, 7, 1039, "Metrics/AbcSize: Assignment Branch Condition size for `kept_node_for_link_ownership` is too high. [<4, 17, 9> 19.65/17]", 849664480], + [1317, 7, 1039, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `kept_node_for_link_ownership` is too high. [8/7]", 849664480], + [1317, 7, 1039, "Metrics/MethodLength: Method has too many lines. [24/10]", 849664480], + [1348, 7, 797, "Metrics/MethodLength: Method has too many lines. [12/10]", 3928797316], + [1384, 7, 610, "Metrics/AbcSize: Assignment Branch Condition size for `link_reference_signatures_within` is too high. [<6, 15, 6> 17.23/17]", 2255263809], + [1390, 121, 1, "Layout/LineLength: Line is too long. [121/120]", 177625], + [1457, 7, 1360, "Metrics/MethodLength: Method has too many lines. [19/10]", 1607654950] + ], + "lib/markdown/merge/table_match_algorithm.rb:784102633": [ + [31, 5, 17084, "Metrics/ClassLength: Class has too many lines. [241/100]", 3870100216], + [71, 21, 130, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 2234186342], + [86, 7, 537, "Metrics/MethodLength: Method has too many lines. [11/10]", 695685542], + [112, 7, 872, "Metrics/AbcSize: Assignment Branch Condition size for `levenshtein_distance` is too high. [<13, 29, 8> 32.77/17]", 3623880915], + [112, 7, 872, "Metrics/MethodLength: Method has too many lines. [20/10]", 3623880915], + [264, 7, 1291, "Metrics/AbcSize: Assignment Branch Condition size for `collect_text_recursive` is too high. [<5, 22, 13> 26.04/17]", 1898702827], + [264, 7, 1291, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `collect_text_recursive` is too high. [12/7]", 1898702827], + [264, 7, 1291, "Metrics/MethodLength: Method has too many lines. [26/10]", 1898702827], + [264, 7, 1291, "Metrics/PerceivedComplexity: Perceived complexity for `collect_text_recursive` is too high. [15/8]", 1898702827], + [292, 24, 43, "Metrics/BlockNesting: Avoid more than 3 levels of block nesting.", 2747201274], + [303, 7, 644, "Metrics/AbcSize: Assignment Branch Condition size for `compute_header_match` is too high. [<6, 20, 9> 22.74/17]", 2910662900], + [303, 7, 644, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `compute_header_match` is too high. [10/7]", 2910662900], + [303, 7, 644, "Metrics/MethodLength: Method has too many lines. [11/10]", 2910662900], + [303, 7, 644, "Metrics/PerceivedComplexity: Perceived complexity for `compute_header_match` is too high. [10/8]", 2910662900], + [330, 7, 927, "Metrics/AbcSize: Assignment Branch Condition size for `compute_first_column_match` is too high. [<14, 22, 14> 29.6/17]", 2043865784], + [330, 7, 927, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `compute_first_column_match` is too high. [14/7]", 2043865784], + [330, 7, 927, "Metrics/MethodLength: Method has too many lines. [15/10]", 2043865784], + [330, 7, 927, "Metrics/PerceivedComplexity: Perceived complexity for `compute_first_column_match` is too high. [14/8]", 2043865784], + [331, 28, 19, "Style/SymbolProc: Pass `&:first` as an argument to `map` instead of a block.", 2561207191], + [332, 28, 19, "Style/SymbolProc: Pass `&:first` as an argument to `map` instead of a block.", 2561207191], + [352, 9, 15, "Style/NumericPredicate: Use `total_cells.positive?` instead of `total_cells > 0`.", 1010733923], + [362, 7, 1037, "Metrics/AbcSize: Assignment Branch Condition size for `compute_row_content_match` is too high. [<10, 15, 12> 21.66/17]", 1855353124], + [362, 7, 1037, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `compute_row_content_match` is too high. [11/7]", 1855353124], + [362, 7, 1037, "Metrics/MethodLength: Method has too many lines. [21/10]", 1855353124], + [362, 7, 1037, "Metrics/PerceivedComplexity: Perceived complexity for `compute_row_content_match` is too high. [11/8]", 1855353124], + [404, 23, 14, "Style/NumericPredicate: Use `max_cells.zero?` instead of `max_cells == 0`.", 2427124139], + [423, 7, 1091, "Metrics/AbcSize: Assignment Branch Condition size for `compute_total_cells_match` is too high. [<14, 18, 12> 25.77/17]", 413080451], + [423, 7, 1091, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `compute_total_cells_match` is too high. [11/7]", 413080451], + [423, 7, 1091, "Metrics/MethodLength: Method has too many lines. [24/10]", 413080451], + [423, 7, 1091, "Metrics/PerceivedComplexity: Perceived complexity for `compute_total_cells_match` is too high. [11/8]", 413080451], + [492, 23, 17, "Style/NumericPredicate: Use `total_weight.zero?` instead of `total_weight == 0`.", 3158357864] + ], + "lib/markdown/merge/table_match_refiner.rb:4203940079": [ + [118, 35, 50, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 1492696344] + ], + "lib/markdown/merge/whitespace_normalizer.rb:121777318": [ + [33, 5, 6779, "Metrics/ClassLength: Class has too many lines. [115/100]", 3048764740], + [103, 7, 418, "Metrics/MethodLength: Method has too many lines. [11/10]", 3165373284], + [126, 7, 1750, "Metrics/AbcSize: Assignment Branch Condition size for `collapse_excessive_blank_lines` is too high. [<12, 12, 10> 19.7/17]", 1435694128], + [126, 7, 1750, "Metrics/MethodLength: Method has too many lines. [36/10]", 1435694128], + [188, 7, 1270, "Metrics/AbcSize: Assignment Branch Condition size for `remove_blank_lines_between_link_refs` is too high. [<12, 22, 13> 28.23/17]", 1324661552], + [188, 7, 1270, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `remove_blank_lines_between_link_refs` is too high. [9/7]", 1324661552], + [188, 7, 1270, "Metrics/MethodLength: Method has too many lines. [29/10]", 1324661552], + [188, 7, 1270, "Metrics/PerceivedComplexity: Perceived complexity for `remove_blank_lines_between_link_refs` is too high. [10/8]", 1324661552], + [207, 15, 54, "Metrics/BlockNesting: Avoid more than 3 levels of block nesting.", 831575245] + ], + "lib/markdown/merge/wrapper_support.rb:1758973456": [ + [6, 5, 7266, "Metrics/ModuleLength: Module has too many lines. [161/100]", 2849920033], + [29, 7, 1214, "Metrics/MethodLength: Method has too many lines. [19/10]", 1280688859], + [29, 19, 250, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [8/5]", 4150728370], + [78, 7, 1452, "Metrics/MethodLength: Method has too many lines. [18/10]", 3670315588], + [78, 43, 286, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [8/5]", 3809385913], + [127, 7, 592, "Metrics/MethodLength: Method has too many lines. [12/10]", 3827282628] + ], + "markdown-merge.gemspec:3964894686": [ + [128, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 2821357214], + [143, 121, 50, "Layout/LineLength: Line is too long. [170/120]", 3888612416], + [144, 121, 29, "Layout/LineLength: Line is too long. [149/120]", 981994949], + [151, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 4229808912] + ], + "spec/fixtures_integration_spec.rb:762722167": [ + [3, 1, 17188, "Metrics/BlockLength: Block has too many lines. [403/25]", 3093659447], + [41, 121, 5, "Layout/LineLength: Line is too long. [125/120]", 180560828] + ] +} diff --git a/gems/markdown-merge/Gemfile.lock b/gems/markdown-merge/Gemfile.lock index 4a182daa3..32524e741 100644 --- a/gems/markdown-merge/Gemfile.lock +++ b/gems/markdown-merge/Gemfile.lock @@ -7,7 +7,7 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/ast-merge specs: ast-merge (7.1.0) benchmark @@ -16,7 +16,7 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/tree_haver specs: tree_haver (7.1.0) citrus (~> 3.0) @@ -105,12 +105,12 @@ GEM rdoc (>= 4.0.0) reline (>= 0.4.2) json (2.21.1) - kettle-dev (2.3.7) + kettle-dev (2.3.8) emoji_regex (>= 15.0) kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) - kettle-rb (0.1.4) + kettle-rb (0.1.5) kettle-soup-cover (3.0.4) kettle-wash (~> 0.1, >= 0.1.0) simplecov (>= 1.0) @@ -118,7 +118,7 @@ GEM simplecov-console (~> 0.9, >= 0.9.5) simplecov-rcov (~> 0.3, >= 0.3.7) simplecov_lcov_formatter (~> 0.9, >= 0.9.0) - kettle-test (2.0.11) + kettle-test (2.0.12) appraisal2 (~> 3.0, >= 3.0.6) backports (~> 3.0) rspec (~> 3.0) @@ -351,9 +351,9 @@ GEM delegate (~> 0.1) rspec (~> 3.0) timecop (>= 0.7, < 1) - token-resolver (2.0.4) + token-resolver (2.0.5) parslet (~> 2.0) - version_gem (~> 1.1, >= 1.1.13) + version_gem (~> 1.1, >= 1.1.14) tree_sitter_language_pack (1.13.3-aarch64-linux) sorbet-runtime (~> 0.5) tree_sitter_language_pack (1.13.3-arm64-darwin) @@ -488,10 +488,10 @@ CHECKSUMS io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 - kettle-dev (2.3.7) sha256=eb370113cd030d03cbe2d33b31c99858951017e5ad21a17e9ed89dc3770028ee - kettle-rb (0.1.4) sha256=9cef7ce4f7021666b7222292f29051e51eaf042e8a5db11f3f4dd72f74243fc1 + kettle-dev (2.3.8) sha256=9d716ff21c660a730cb4e8d41e2e2f0630a28167a354b6e2924e242102aef72c + kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f kettle-soup-cover (3.0.4) - kettle-test (2.0.11) sha256=c710c90f7ab79d51f9452f0c09f5f90657e7a893f63583855c164d0b1b107ab2 + kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 @@ -577,7 +577,7 @@ CHECKSUMS thor (1.5.0) sha256=e3a9e55fe857e44859ce104a84675ab6e8cd59c650a49106a05f55f136425e73 timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 - token-resolver (2.0.4) sha256=33b926958f504525bba3ed511ab66fbcbf8ef30390815e931436b30f27ffcad0 + token-resolver (2.0.5) sha256=b852f924287ffb58a440856e862b056c8ad97e74b4b2526cee43e0771f40c25c tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-aarch64-linux) sha256=55ffc7c87868cb45658338363d9eba51b4a8b0259aa88e4de368d2bd1d52fea4 tree_sitter_language_pack (1.13.3-arm64-darwin) sha256=bc2498db605f212a1dbd2465ed3f65190d7da786f6ed5d30fcf958121aeb4a5c diff --git a/gems/markdown-merge/lib/markdown/merge/version.rb b/gems/markdown-merge/lib/markdown/merge/version.rb index fe631f91a..c8ba076ae 100644 --- a/gems/markdown-merge/lib/markdown/merge/version.rb +++ b/gems/markdown-merge/lib/markdown/merge/version.rb @@ -3,7 +3,7 @@ module Markdown module Merge module Version - VERSION = "7.1.0" + VERSION = '7.1.0' end VERSION = Version::VERSION # Traditional Constant Location end diff --git a/gems/markly-merge/.kettle-drift.lock b/gems/markly-merge/.kettle-drift.lock index 92caaa150..d28e306b0 100644 --- a/gems/markly-merge/.kettle-drift.lock +++ b/gems/markly-merge/.kettle-drift.lock @@ -1,130 +1,10 @@ { - "(direct_sibling_local ||\nENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?)": [ - { - "file": "Gemfile", - "lines": [ - 79, - 119, - 159, - 199, - 239, - 279, - 319, - 359, - 399 - ] - } - ], - ".find { |spec| spec.name == 'nomono' }\nnomono_locked = nomono_locked_spec &&": [ - { - "file": "Gemfile", - "lines": [ - 90, - 130, - 170, - 210, - 250, - 290, - 330, - 370, - 410 - ] - } - ], - "ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?)\ndirect_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV')": [ - { - "file": "Gemfile", - "lines": [ - 80, - 120, - 160, - 200, - 240, - 280, - 320, - 360, - 400 - ] - } - ], - "Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version)\nnomono_activation_requirements = [\"= #{nomono_locked_spec.version}\"] if nomono_locked": [ - { - "file": "Gemfile", - "lines": [ - 92, - 132, - 172, - 212, - 252, - 292, - 332, - 372, - 412 - ] - } - ], - "Kernel.send(:gem, 'nomono', *nomono_activation_requirements)\nrequire 'nomono/bundler'": [ - { - "file": "Gemfile", - "lines": [ - 95, - 135, - 175, - 215, - 255, - 295, - 335, - 375, - 415 - ] - } - ], - "direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV')\ndirect_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil)": [ - { - "file": "Gemfile", - "lines": [ - 81, - 121, - 161, - 201, - 241, - 281, - 321, - 361, - 401 - ] - } - ], "eval_nomono_gems(\ngems: direct_sibling_gems,": [ { "file": "Gemfile", "lines": [ 59, - 99, - 139, - 179, - 219, - 259, - 299, - 339, - 379, - 419 - ] - } - ], - "gems: direct_sibling_gems,\nprefix: 'STRUCTUREDMERGE',": [ - { - "file": "Gemfile", - "lines": [ - 100, - 140, - 180, - 220, - 260, - 300, - 340, - 380, - 420 + 99 ] } ], @@ -133,31 +13,7 @@ "file": "Gemfile", "lines": [ 42, - 86, - 126, - 166, - 206, - 246, - 286, - 326, - 366, - 406 - ] - } - ], - "if direct_sibling_dev_was_set\nENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original": [ - { - "file": "Gemfile", - "lines": [ - 109, - 149, - 189, - 229, - 269, - 309, - 349, - 389, - 429 + 86 ] } ], @@ -166,15 +22,7 @@ "file": "Gemfile", "lines": [ 34, - 78, - 118, - 158, - 198, - 238, - 278, - 318, - 358, - 398 + 78 ] } ], @@ -183,31 +31,7 @@ "file": "Gemfile", "lines": [ 68, - 108, - 148, - 188, - 228, - 268, - 308, - 348, - 388, - 428 - ] - } - ], - "nomono_activation_requirements = nomono_requirements\nnomono_lockfile = File.expand_path('Gemfile.lock', __dir__)": [ - { - "file": "Gemfile", - "lines": [ - 84, - 124, - 164, - 204, - 244, - 284, - 324, - 364, - 404 + 108 ] } ], @@ -216,15 +40,7 @@ "file": "Gemfile", "lines": [ 47, - 91, - 131, - 171, - 211, - 251, - 291, - 331, - 371, - 411 + 91 ] } ], @@ -233,95 +49,7 @@ "file": "Gemfile", "lines": [ 43, - 87, - 127, - 167, - 207, - 247, - 287, - 327, - 367, - 407 - ] - } - ], - "nomono_lockfile = File.expand_path('Gemfile.lock', __dir__)\nif File.file?(nomono_lockfile)": [ - { - "file": "Gemfile", - "lines": [ - 85, - 125, - 165, - 205, - 245, - 285, - 325, - 365, - 405 - ] - } - ], - "path_env: 'STRUCTUREDMERGE_DEV',\nroot: %w[src my structuredmerge]": [ - { - "file": "Gemfile", - "lines": [ - 102, - 142, - 182, - 222, - 262, - 302, - 342, - 382, - 422 - ] - } - ], - "prefix: 'STRUCTUREDMERGE',\npath_env: 'STRUCTUREDMERGE_DEV',": [ - { - "file": "Gemfile", - "lines": [ - 101, - 141, - 181, - 221, - 261, - 301, - 341, - 381, - 421 - ] - } - ], - "require 'nomono/bundler'\nENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local": [ - { - "file": "Gemfile", - "lines": [ - 96, - 136, - 176, - 216, - 256, - 296, - 336, - 376, - 416 - ] - } - ], - "rescue LoadError\nwarn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.'": [ - { - "file": "Gemfile", - "lines": [ - 105, - 145, - 185, - 225, - 265, - 305, - 345, - 385, - 425 + 87 ] } ], @@ -329,8 +57,8 @@ { "file": "gemfiles/modular/templating_local.gemfile", "lines": [ - 58, - 69 + 55, + 66 ] } ] diff --git a/gems/markly-merge/.structuredmerge/kettle-jem.yml b/gems/markly-merge/.structuredmerge/kettle-jem.yml index 9a10cc72a..f745a91c1 100644 --- a/gems/markly-merge/.structuredmerge/kettle-jem.yml +++ b/gems/markly-merge/.structuredmerge/kettle-jem.yml @@ -246,6 +246,59 @@ templates: - Gemfile - certs/pboling.pem - tmp/.gitignore + - gemfiles/modular/benchmark/r4/v0.5.gemfile + - gemfiles/modular/benchmark/vHEAD.gemfile + - gemfiles/modular/cgi/r4/v0.5.gemfile + - gemfiles/modular/cgi/vHEAD.gemfile + - gemfiles/modular/coverage.gemfile + - gemfiles/modular/coverage_local.gemfile + - gemfiles/modular/debug.gemfile + - gemfiles/modular/documentation.gemfile + - gemfiles/modular/documentation_local.gemfile + - gemfiles/modular/erb/r2.3/default.gemfile + - gemfiles/modular/erb/r2.6/v2.2.gemfile + - gemfiles/modular/erb/r2/v3.0.gemfile + - gemfiles/modular/erb/r3.1/v4.0.gemfile + - gemfiles/modular/erb/r3/v5.0.gemfile + - gemfiles/modular/erb/r4/v5.0.gemfile + - gemfiles/modular/erb/vHEAD.gemfile + - gemfiles/modular/json/truffleruby_22_3.gemfile + - gemfiles/modular/json/truffleruby_23_0.gemfile + - gemfiles/modular/json/truffleruby_23_1.gemfile + - gemfiles/modular/mutex_m/r2.4/v0.1.gemfile + - gemfiles/modular/mutex_m/r2/v0.3.gemfile + - gemfiles/modular/mutex_m/r3/v0.3.gemfile + - gemfiles/modular/mutex_m/r4/v0.3.gemfile + - gemfiles/modular/mutex_m/vHEAD.gemfile + - gemfiles/modular/optional.gemfile + - gemfiles/modular/recording/r2.3/recording.gemfile + - gemfiles/modular/recording/r2.4/recording.gemfile + - gemfiles/modular/recording/r2.5/recording.gemfile + - gemfiles/modular/recording/r3/recording.gemfile + - gemfiles/modular/recording/r4/recording.gemfile + - gemfiles/modular/recording/vHEAD.gemfile + - gemfiles/modular/rspec.gemfile + - gemfiles/modular/runtime_heads.gemfile + - gemfiles/modular/stringio/r2.4/v0.0.2.gemfile + - gemfiles/modular/stringio/r2/v3.0.gemfile + - gemfiles/modular/stringio/r3/v3.0.gemfile + - gemfiles/modular/stringio/r4/v3.0.gemfile + - gemfiles/modular/stringio/vHEAD.gemfile + - gemfiles/modular/style.gemfile + - gemfiles/modular/style_local.gemfile + - gemfiles/modular/templating.gemfile + - gemfiles/modular/templating_local.gemfile + - gemfiles/modular/webrick/r4/v1.9.gemfile + - gemfiles/modular/webrick/vHEAD.gemfile + - gemfiles/modular/x_std_libs.gemfile + - gemfiles/modular/x_std_libs/r2.3/libs.gemfile + - gemfiles/modular/x_std_libs/r2.4/libs.gemfile + - gemfiles/modular/x_std_libs/r2.6/libs.gemfile + - gemfiles/modular/x_std_libs/r2/libs.gemfile + - gemfiles/modular/x_std_libs/r3.1/libs.gemfile + - gemfiles/modular/x_std_libs/r3/libs.gemfile + - gemfiles/modular/x_std_libs/r4/libs.gemfile + - gemfiles/modular/x_std_libs/vHEAD.gemfile - source: lib/gem/version.rb target: lib/markly/merge/version.rb - source: sig/gem.rbs diff --git a/gems/markly-merge/Gemfile b/gems/markly-merge/Gemfile index 39eb74956..823b869e5 100644 --- a/gems/markly-merge/Gemfile +++ b/gems/markly-merge/Gemfile @@ -6,7 +6,7 @@ # kettle-jem will then preserve content between those markers across template runs. # kettle-jem:unfreeze -source 'https://gem.coop' +source "https://gem.coop" git_source(:codeberg) { |repo_name| "https://codeberg.org/#{repo_name}" } git_source(:gitlab) { |repo_name| "https://gitlab.com/#{repo_name}" } @@ -19,17 +19,61 @@ git_source(:gitlab) { |repo_name| "https://gitlab.com/#{repo_name}" } gemspec # Local workspace dependency wiring for *_local.gemfile overrides -nomono_requirements = ['~> 1.0', '>= 1.0.8'] -gem 'nomono', *nomono_requirements, require: false # ruby >= 2.2 +nomono_requirements = ["~> 1.0", ">= 1.0.8"] +gem "nomono", *nomono_requirements, require: false # ruby >= 2.2 # Direct sibling dependencies (env-switched via STRUCTUREDMERGE_DEV) direct_sibling_gems = %w[ markdown-merge ] -direct_sibling_dev = ENV.fetch('STRUCTUREDMERGE_DEV', '') +direct_sibling_dev = ENV.fetch("STRUCTUREDMERGE_DEV", "") direct_sibling_local = !direct_sibling_dev.empty? && !%w[false 0 no off].include?(direct_sibling_dev.downcase) -direct_sibling_templating = ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? +direct_sibling_templating = ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? + +if direct_sibling_gems.any? && + (direct_sibling_local || + ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero?) + direct_sibling_dev_was_set = ENV.key?("STRUCTUREDMERGE_DEV") + direct_sibling_dev_original = ENV.fetch("STRUCTUREDMERGE_DEV", nil) + begin + nomono_activation_requirements = nomono_requirements + nomono_lockfile = File.expand_path("Gemfile.lock", __dir__) + if File.file?(nomono_lockfile) + nomono_locked_spec = Bundler::LockfileParser + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == "nomono" } + nomono_locked = nomono_locked_spec && + Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) + if nomono_locked + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] + end + end + Kernel.send(:gem, "nomono", *nomono_activation_requirements) + require "nomono/bundler" + if direct_sibling_templating && !direct_sibling_local + ENV["STRUCTUREDMERGE_DEV"] = File.expand_path("..", __dir__) + end + + eval_nomono_gems( + gems: direct_sibling_gems, + prefix: "STRUCTUREDMERGE", + path_env: "STRUCTUREDMERGE_DEV", + root: ["src", "my", "structuredmerge"] + ) + rescue LoadError + warn "Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies." + ensure + if direct_sibling_templating && !direct_sibling_local + if direct_sibling_dev_was_set + ENV["STRUCTUREDMERGE_DEV"] = direct_sibling_dev_original + else + ENV.delete("STRUCTUREDMERGE_DEV") + end + end + end +end if direct_sibling_gems.any? && (direct_sibling_local || @@ -72,28 +116,28 @@ if direct_sibling_gems.any? && end # Use released TSLP with the Ruby ABI platform-gem fix. -gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' +gem "tree_sitter_language_pack", "~> 1.13", ">= 1.13.3" # Templating (env-switched: STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local paths) -eval_gemfile 'gemfiles/modular/templating.gemfile' if ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? +eval_gemfile "gemfiles/modular/templating.gemfile" if ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? # Debugging -eval_gemfile 'gemfiles/modular/debug.gemfile' +eval_gemfile "gemfiles/modular/debug.gemfile" # Code Coverage (env-switched: KETTLE_DEV_DEV=true for local paths) -eval_gemfile 'gemfiles/modular/coverage.gemfile' +eval_gemfile "gemfiles/modular/coverage.gemfile" # Linting -eval_gemfile 'gemfiles/modular/style.gemfile' +eval_gemfile "gemfiles/modular/style.gemfile" # Documentation -eval_gemfile 'gemfiles/modular/documentation.gemfile' +eval_gemfile "gemfiles/modular/documentation.gemfile" # Optional -eval_gemfile 'gemfiles/modular/optional.gemfile' +eval_gemfile "gemfiles/modular/optional.gemfile" ### Std Lib Extracted Gems -eval_gemfile 'gemfiles/modular/x_std_libs.gemfile' +eval_gemfile "gemfiles/modular/x_std_libs.gemfile" # See unlocked_deps appraisal for more details on irb inclusion -gem 'irb', '~> 1.17' # ruby >= 2.7 +gem "irb", "~> 1.17" # ruby >= 2.7 diff --git a/gems/markly-merge/Gemfile.lock b/gems/markly-merge/Gemfile.lock index 781c75345..83f633660 100644 --- a/gems/markly-merge/Gemfile.lock +++ b/gems/markly-merge/Gemfile.lock @@ -6,146 +6,6 @@ PATH markly (~> 0.9) version_gem (~> 1.1, >= 1.1.9) -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly - specs: - ast-crispr-markdown-markly (7.1.0) - ast-crispr (= 7.1.0) - markly-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism - specs: - ast-crispr-ruby-prism (7.1.0) - ast-crispr (= 7.1.0) - prism-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr - specs: - ast-crispr (7.1.0) - ast-merge (= 7.1.0) - service_actor (~> 3.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git - specs: - ast-merge-git (7.1.0) - ast-merge (= 7.1.0) - json-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge - specs: - ast-merge (7.1.0) - benchmark - token-resolver (~> 2.0, >= 2.0.4) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template - specs: - ast-template (7.1.0) - ast-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge - specs: - bash-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge - specs: - binary-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge - specs: - citrus-toml-merge (7.1.0) - toml-merge (= 7.1.0) - toml-rb (~> 4.1) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge - specs: - commonmarker-merge (7.1.0) - commonmarker (~> 2.2) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge - specs: - dotenv-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge - specs: - go-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge - specs: - json-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem - specs: - kettle-jem (7.1.0) - addressable (>= 2.8, < 3) - ast-crispr-markdown-markly (= 7.1.0) - ast-crispr-ruby-prism (= 7.1.0) - ast-merge (= 7.1.0) - bash-merge (= 7.1.0) - citrus-toml-merge (= 7.1.0) - commonmarker-merge (= 7.1.0) - dotenv-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-dev (~> 2.3, >= 2.3.5) - kettle-rb (~> 0.1, >= 0.1.4) - kramdown-merge (= 7.1.0) - markdown-merge (= 7.1.0) - markly-merge (= 7.1.0) - prism-merge (= 7.1.0) - psych-merge (= 7.1.0) - rbs (>= 3.10) - rbs-merge (= 7.1.0) - ruby-merge (= 7.1.0) - token-resolver (~> 2.0, >= 2.0.4) - toml-merge (= 7.1.0) - toml-rb (~> 4.2) - tree_haver (= 7.1.0) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge - specs: - kramdown-merge (7.1.0) - kramdown (~> 2.5) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - PATH remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge specs: @@ -154,117 +14,6 @@ PATH tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge - specs: - parslet-toml-merge (7.1.0) - toml (~> 0.3) - toml-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge - specs: - plain-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge - specs: - prism-merge (7.1.0) - prism (~> 1.6) - ruby-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge - specs: - psych-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge - specs: - rbs-merge (7.1.0) - ast-merge (= 7.1.0) - rbs (>= 3.10) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge - specs: - ruby-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge - specs: - rust-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb - specs: - smorg-rb (7.1.0) - ast-merge (= 7.1.0) - ast-merge-git (= 7.1.0) - go-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-jem (= 7.1.0) - markly-merge (= 7.1.0) - plain-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge - specs: - toml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver - specs: - tree_haver (7.1.0) - citrus (~> 3.0) - parslet (~> 2.0) - tree_sitter_language_pack (>= 1.13.2, < 2.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge - specs: - typescript-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge - specs: - yaml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge - specs: - zip-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - GEM remote: https://gem.coop/ specs: @@ -276,6 +25,11 @@ GEM rake (>= 10) thor (>= 0.14) ast (2.4.3) + ast-merge (7.1.0) + benchmark + token-resolver (~> 2.0, >= 2.0.4) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) backports (3.25.3) benchmark (0.5.0) bigdecimal (4.1.2) @@ -284,7 +38,6 @@ GEM thor (~> 1.0) citrus (3.0.2) cmdparse (3.0.7) - commonmarker (2.9.0-x86_64-linux) concurrent-ruby (1.3.8) date (3.5.1) debug (1.11.1) @@ -348,8 +101,6 @@ GEM kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) - kettle-drift (1.0.6) - version_gem (~> 1.1, >= 1.1.14) kettle-rb (0.1.4) kettle-soup-cover (1.1.3) simplecov (~> 0.22) @@ -382,7 +133,7 @@ GEM mutex_m (0.3.0) nokogiri (1.19.4-x86_64-linux-gnu) racc (~> 1.4) - nomono (1.0.8) + nomono (1.0.9) openssl (4.0.2) ostruct (0.6.3) parallel (1.28.0) @@ -505,8 +256,6 @@ GEM ruby-progressbar (1.13.0) ruby_engine (2.0.3) ruby_version (1.0.3) - service_actor (3.9.4) - zeitwerk (>= 1.0) silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) @@ -526,7 +275,7 @@ GEM simplecov-rcov (0.3.7) simplecov (>= 0.4.1) simplecov_json_formatter (0.1.4) - sorbet-runtime (0.6.13342) + sorbet-runtime (0.6.13347) standard (1.56.0) language_server-protocol (~> 3.17.0.2) lint_roller (~> 1.0) @@ -559,11 +308,11 @@ GEM token-resolver (2.0.4) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.13) - toml (0.3.0) - parslet (>= 1.8.0, < 3.0.0) - toml-rb (4.2.0) - citrus (~> 3.0, > 3.0) - racc (~> 1.7) + tree_haver (7.1.0) + citrus (~> 3.0) + parslet (~> 2.0) + tree_sitter_language_pack (>= 1.13.2, < 2.0) + version_gem (~> 1.1, >= 1.1.9) tree_sitter_language_pack (1.13.3-x86_64-linux) sorbet-runtime (~> 0.5) tsort (0.2.0) @@ -607,45 +356,24 @@ PLATFORMS DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) - ast-crispr! - ast-crispr-markdown-markly! - ast-crispr-ruby-prism! - ast-merge! - ast-merge-git! - ast-template! - bash-merge! benchmark (~> 0.5, >= 0.5.0) - binary-merge! bundler-audit (~> 0.9.3) - citrus-toml-merge! - commonmarker-merge! debug (>= 1.1) - dotenv-merge! erb (~> 6.0, >= 6.0.4) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.0) - go-merge! irb (~> 1.17) - json-merge! kettle-dev (~> 2.0, >= 2.2.25) - kettle-drift (~> 1.0, >= 1.0.5) - kettle-jem! kettle-soup-cover (~> 1.0, >= 1.1.3) kettle-test (~> 2.0, >= 2.0.9) kramdown (~> 2.5, >= 2.5.1) - kramdown-merge! kramdown-parser-gfm (~> 1.1) markdown-merge! markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) - parslet-toml-merge! - plain-merge! - prism-merge! - psych-merge! rake (~> 13.0) rbs (>= 3.0) - rbs-merge! rdoc (~> 6.11) reek (~> 6.5) require_bench (~> 1.0, >= 1.0.4) @@ -654,49 +382,31 @@ DEPENDENCIES rubocop-packaging (~> 0.6, >= 0.6.0) rubocop-rspec (~> 3.6) rubocop-ruby3_2 (~> 3.0.0) - ruby-merge! ruby-progressbar (~> 1.13) - rust-merge! - smorg-rb! standard (>= 1.50) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) - toml-merge! - tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) - typescript-merge! yaml-converter (~> 0.1) - yaml-merge! yard (~> 0.9, >= 0.9.44) yard-fence (~> 0.9, >= 0.9.1) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) yard-timekeeper (~> 0.1) yard-yaml (~> 0.1, >= 0.1.2) - zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af ansi (1.6.0) sha256=ac9ea0c0ea8d32fb4e271348e609963ac78882f34b73836c2a02b3622e666658 appraisal2 (3.2.0) sha256=ccd0b767ac4060cd7af6d16747459b6990f49c39c7b4fb1f7d1146b1e97c492f ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 - ast-crispr (7.1.0) - ast-crispr-markdown-markly (7.1.0) - ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) - ast-merge-git (7.1.0) - ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 - bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd - binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 - citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 - commonmarker (2.9.0-x86_64-linux) sha256=8cfe92970eef585a19ddf6613224b91cab64d6029834661bda801f877c9c7f43 - commonmarker-merge (7.1.0) concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 @@ -704,7 +414,6 @@ CHECKSUMS diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 docile (1.4.1) sha256=96159be799bfa73cdb721b840e9802126e4e03dfc26863db73647204c727f21e - dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -717,20 +426,15 @@ CHECKSUMS gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f - go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 - json-merge (7.1.0) kettle-dev (2.3.7) sha256=eb370113cd030d03cbe2d33b31c99858951017e5ad21a17e9ed89dc3770028ee - kettle-drift (1.0.6) sha256=46eda08fa4411d1f3c6682a95eef1c9df4e94611b3949f49d4c7b43c0ed356a3 - kettle-jem (7.1.0) kettle-rb (0.1.4) sha256=9cef7ce4f7021666b7222292f29051e51eaf042e8a5db11f3f4dd72f74243fc1 kettle-soup-cover (1.1.3) sha256=a373827da22a7131d093afd32945e5b7d7a10a01ebfdded8fd2cb8230d69c8ad kettle-test (2.0.11) sha256=c710c90f7ab79d51f9452f0c09f5f90657e7a893f63583855c164d0b1b107ab2 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa - kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 @@ -740,27 +444,22 @@ CHECKSUMS markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-x86_64-linux-gnu) sha256=379fae440b28915e3f19d752ce2dcf8465ed2b2fbefd2a7ca0dd497bc981a06a - nomono (1.0.8) sha256=bf4b9b426cbf216ab17b70db474f691b8ae1f1e29de8db4b0ecd405e6e7e1c80 + nomono (1.0.9) openssl (4.0.2) sha256=1037ad2868ae58df9ad917891c0c0f9815a1172f6846d4bcdd508e4c2ee747c2 ostruct (0.6.3) sha256=95a2ed4a4bd1d190784e666b47b2d3f078e4a9efda2fccf18f84ddc6538ed912 parallel (1.28.0) sha256=33e6de1484baf2524792d178b0913fc8eb94c628d6cfe45599ad4458c638c970 parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 - parslet-toml-merge (7.1.0) - plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 - prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 - psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 - rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb @@ -788,12 +487,9 @@ CHECKSUMS rubocop-rspec (3.10.2) sha256=0b3e2ecc592cd10ecbf0095bb58d1e357905276e069643523cc19eb7495f65e2 rubocop-ruby3_2 (3.0.7) sha256=f53dd6d286fb05186214fc6ec116783e7f837030918e8931c05de773e98f8466 rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 - ruby-merge (7.1.0) ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 - rust-merge (7.1.0) - service_actor (3.9.4) sha256=e63b523630b9a7e62959b2a90113b08d2565b5de9c148557b281ef847c9539ce silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (0.22.0) sha256=fe2622c7834ff23b98066bb0a854284b2729a569ac659f82621fc22ef36213a5 simplecov-cobertura (3.2.0) sha256=70d702658677fcb20e5aceb6915ccf8bc62ff2ccd38b62b3ad5c9db5c0888740 @@ -802,8 +498,7 @@ CHECKSUMS simplecov-lcov (0.9.0) sha256=7a77a31e200a595ed4b0249493056efd0c920601f53d2ef135ca34ee796346cd simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_json_formatter (0.1.4) sha256=529418fbe8de1713ac2b2d612aa3daa56d316975d307244399fa4838c601b428 - smorg-rb (7.1.0) - sorbet-runtime (0.6.13342) sha256=dbeb9892597f593ed2b29e38018912787f6c4e0c4b736d8af0d6bd3c63bde3c3 + sorbet-runtime (0.6.13347) sha256=54e7221d9f4b63f58aec79f3043752a9ba7810347c6ae0d903531591cc2d5f01 standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b standard-performance (1.9.0) sha256=49483d31be448292951d80e5e67cdcb576c2502103c7b40aec6f1b6e9c88e3f2 @@ -816,19 +511,14 @@ CHECKSUMS timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.4) sha256=33b926958f504525bba3ed511ab66fbcbf8ef30390815e931436b30f27ffcad0 - toml (0.3.0) sha256=0a91d0f76a9036e84e44f95693b12f58d358c1df3ac8e3b5271f2056ecc6e4b9 - toml-merge (7.1.0) - toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 - typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 - yaml-merge (7.1.0) yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd @@ -836,7 +526,6 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 - zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH diff --git a/gems/markly-merge/Rakefile b/gems/markly-merge/Rakefile index 9946d12a1..319456e08 100644 --- a/gems/markly-merge/Rakefile +++ b/gems/markly-merge/Rakefile @@ -130,23 +130,23 @@ end ### DUPLICATE DRIFT TASKS begin - require 'kettle/drift' + require "kettle/drift" Kettle::Drift.install_tasks rescue LoadError - desc('(stub) kettle:drift:check is unavailable') - task('kettle:drift:check') do + desc("(stub) kettle:drift:check is unavailable") + task("kettle:drift:check") do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc('(stub) kettle:drift:update is unavailable') - task('kettle:drift:update') do + desc("(stub) kettle:drift:update is unavailable") + task("kettle:drift:update") do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc('(stub) kettle:drift:force_update is unavailable') - task('kettle:drift:force_update') do + desc("(stub) kettle:drift:force_update is unavailable") + task("kettle:drift:force_update") do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc('(stub) kettle:drift is unavailable') - task('kettle:drift' => 'kettle:drift:update') + desc("(stub) kettle:drift is unavailable") + task("kettle:drift" => "kettle:drift:update") end ### TEMPLATING TASKS diff --git a/gems/markly-merge/lib/markly/merge/version.rb b/gems/markly-merge/lib/markly/merge/version.rb index 3bfd8e9b0..b4ff2ffeb 100644 --- a/gems/markly-merge/lib/markly/merge/version.rb +++ b/gems/markly-merge/lib/markly/merge/version.rb @@ -3,7 +3,7 @@ module Markly module Merge module Version - VERSION = '7.1.0' + VERSION = "7.1.0" end VERSION = Version::VERSION # Traditional Constant Location end diff --git a/gems/prism-merge/Gemfile.lock b/gems/prism-merge/Gemfile.lock index 29db0326c..7462d794e 100644 --- a/gems/prism-merge/Gemfile.lock +++ b/gems/prism-merge/Gemfile.lock @@ -7,13 +7,264 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly + specs: + ast-crispr-markdown-markly (7.1.0) + ast-crispr (= 7.1.0) + markly-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism + specs: + ast-crispr-ruby-prism (7.1.0) + ast-crispr (= 7.1.0) + prism-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr + specs: + ast-crispr (7.1.0) + ast-merge (= 7.1.0) + service_actor (~> 3.9) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git + specs: + ast-merge-git (7.1.0) + ast-merge (= 7.1.0) + json-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge + specs: + ast-merge (7.1.0) + benchmark + token-resolver (~> 2.0, >= 2.0.4) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template + specs: + ast-template (7.1.0) + ast-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge + specs: + bash-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge + specs: + binary-merge (7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge + specs: + citrus-toml-merge (7.1.0) + toml-merge (= 7.1.0) + toml-rb (~> 4.1) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge + specs: + commonmarker-merge (7.1.0) + commonmarker (~> 2.2) + markdown-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge + specs: + dotenv-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge + specs: + go-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge + specs: + json-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem + specs: + kettle-jem (7.1.0) + addressable (>= 2.8, < 3) + ast-crispr-markdown-markly (= 7.1.0) + ast-crispr-ruby-prism (= 7.1.0) + ast-merge (= 7.1.0) + bash-merge (= 7.1.0) + citrus-toml-merge (= 7.1.0) + commonmarker-merge (= 7.1.0) + dotenv-merge (= 7.1.0) + json-merge (= 7.1.0) + kettle-dev (~> 2.3, >= 2.3.5) + kettle-rb (~> 0.1, >= 0.1.4) + kramdown-merge (= 7.1.0) + markdown-merge (= 7.1.0) + markly-merge (= 7.1.0) + prism-merge (= 7.1.0) + psych-merge (= 7.1.0) + rbs (>= 3.10) + rbs-merge (= 7.1.0) + ruby-merge (= 7.1.0) + token-resolver (~> 2.0, >= 2.0.4) + toml-merge (= 7.1.0) + toml-rb (~> 4.2) + tree_haver (= 7.1.0) + yaml-merge (= 7.1.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge + specs: + kramdown-merge (7.1.0) + kramdown (~> 2.5) + markdown-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge + specs: + markdown-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge + specs: + markly-merge (7.1.0) + markdown-merge (= 7.1.0) + markly (~> 0.9) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge + specs: + parslet-toml-merge (7.1.0) + toml (~> 0.3) + toml-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge + specs: + plain-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge + specs: + psych-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + yaml-merge (= 7.1.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge + specs: + rbs-merge (7.1.0) + ast-merge (= 7.1.0) + rbs (>= 3.10) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge specs: ruby-merge (7.1.0) ast-merge (= 7.1.0) tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge + specs: + rust-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb + specs: + smorg-rb (7.1.0) + ast-merge (= 7.1.0) + ast-merge-git (= 7.1.0) + go-merge (= 7.1.0) + json-merge (= 7.1.0) + kettle-jem (= 7.1.0) + markly-merge (= 7.1.0) + plain-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge + specs: + toml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver + specs: + tree_haver (7.1.0) + citrus (~> 3.0) + parslet (~> 2.0) + tree_sitter_language_pack (>= 1.13.2, < 2.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge + specs: + typescript-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge + specs: + yaml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge + specs: + zip-merge (7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + GEM remote: https://gem.coop/ specs: @@ -29,11 +280,6 @@ GEM rubocop (>= 1.0) version_gem (~> 1.1, >= 1.1.14) ast (2.4.3) - ast-merge (7.1.0) - benchmark - token-resolver (~> 2.0, >= 2.0.4) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) backports (3.25.3) benchmark (0.5.0) bigdecimal (4.1.2) @@ -43,6 +289,7 @@ GEM cgi (0.5.2) citrus (3.0.2) cmdparse (3.0.7) + commonmarker (2.9.0-x86_64-linux) concurrent-ruby (1.3.8) date (3.5.1) debug (1.11.1) @@ -105,6 +352,8 @@ GEM kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) + kettle-drift (1.0.6) + version_gem (~> 1.1, >= 1.1.14) kettle-rb (0.1.5) kettle-soup-cover (3.0.4) kettle-wash (~> 0.1, >= 0.1.0) @@ -133,6 +382,7 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) + markly (0.16.0) mutex_m (0.3.0) nokogiri (1.19.4-x86_64-linux-gnu) racc (~> 1.4) @@ -287,6 +537,8 @@ GEM ruby-progressbar (1.13.0) ruby_engine (2.0.3) ruby_version (1.0.3) + service_actor (3.9.4) + zeitwerk (>= 1.0) silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) @@ -341,11 +593,11 @@ GEM token-resolver (2.0.5) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.14) - tree_haver (7.1.0) - citrus (~> 3.0) - parslet (~> 2.0) - tree_sitter_language_pack (>= 1.13.2, < 2.0) - version_gem (~> 1.1, >= 1.1.9) + toml (0.3.0) + parslet (>= 1.8.0, < 3.0.0) + toml-rb (4.2.0) + citrus (~> 3.0, > 3.0) + racc (~> 1.7) tree_sitter_language_pack (1.13.3-x86_64-linux) sorbet-runtime (~> 0.5) tsort (0.2.0) @@ -391,24 +643,46 @@ DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) appraisal2-rubocop (~> 1.0, >= 1.0.0) + ast-crispr! + ast-crispr-markdown-markly! + ast-crispr-ruby-prism! + ast-merge! + ast-merge-git! + ast-template! + bash-merge! benchmark (~> 0.5, >= 0.5.0) + binary-merge! bundler-audit (~> 0.9.3) cgi (~> 0.5) + citrus-toml-merge! + commonmarker-merge! debug (>= 1.1) + dotenv-merge! erb (~> 6.0, >= 6.0.6) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.0) + go-merge! irb (~> 1.17) + json-merge! kettle-dev (~> 2.0, >= 2.2.25) + kettle-drift (~> 1.0, >= 1.0.6) + kettle-jem! kettle-soup-cover (~> 3.0, >= 3.0.3) kettle-test (~> 2.0, >= 2.0.9) kramdown (~> 2.5, >= 2.5.2) + kramdown-merge! kramdown-parser-gfm (~> 1.1) + markdown-merge! + markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) + parslet-toml-merge! + plain-merge! prism-merge! + psych-merge! rake (~> 13.0) rbs (>= 3.0) + rbs-merge! rdoc (~> 6.11) reek (~> 6.5, >= 6.5.0) require_bench (~> 1.0, >= 1.0.4) @@ -421,18 +695,25 @@ DEPENDENCIES rubocop-ruby3_2 (~> 3.0, >= 3.0.6) ruby-merge! ruby-progressbar (~> 1.13) + rust-merge! + smorg-rb! standard (~> 1.56, >= 1.56.0) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) + toml-merge! + tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) + typescript-merge! webrick (~> 1.9) yaml-converter (~> 0.2, >= 0.2.3) + yaml-merge! yard (~> 0.9, >= 0.9.45) yard-fence (~> 0.9, >= 0.9.6) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) yard-timekeeper (~> 0.2, >= 0.2.4) yard-yaml (~> 0.2, >= 0.2.3) + zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af @@ -440,20 +721,31 @@ CHECKSUMS appraisal2 (3.2.0) sha256=ccd0b767ac4060cd7af6d16747459b6990f49c39c7b4fb1f7d1146b1e97c492f appraisal2-rubocop (1.0.0) sha256=b71410fbb014befda5340605a605b7f6f3f012739baf0acc5b4351b592c3258d ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 + ast-crispr (7.1.0) + ast-crispr-markdown-markly (7.1.0) + ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) + ast-merge-git (7.1.0) + ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 + bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd + binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 + citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 + commonmarker (2.9.0-x86_64-linux) sha256=8cfe92970eef585a19ddf6613224b91cab64d6029834661bda801f877c9c7f43 + commonmarker-merge (7.1.0) concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 + dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -466,20 +758,28 @@ CHECKSUMS gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f + go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 + json-merge (7.1.0) kettle-dev (2.3.8) sha256=9d716ff21c660a730cb4e8d41e2e2f0630a28167a354b6e2924e242102aef72c + kettle-drift (1.0.6) sha256=46eda08fa4411d1f3c6682a95eef1c9df4e94611b3949f49d4c7b43c0ed356a3 + kettle-jem (7.1.0) kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f kettle-soup-cover (3.0.4) kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa + kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 + markdown-merge (7.1.0) + markly (0.16.0) sha256=6f70d79e385b1efc9e171f74c81628826259039fe6c778e03c3924c71dac5511 + markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-x86_64-linux-gnu) sha256=379fae440b28915e3f19d752ce2dcf8465ed2b2fbefd2a7ca0dd497bc981a06a nomono (1.0.9) @@ -489,16 +789,20 @@ CHECKSUMS parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 + parslet-toml-merge (7.1.0) + plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 + psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 + rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb @@ -537,12 +841,15 @@ CHECKSUMS ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 + rust-merge (7.1.0) + service_actor (3.9.4) sha256=e63b523630b9a7e62959b2a90113b08d2565b5de9c148557b281ef847c9539ce silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed + smorg-rb (7.1.0) sorbet-runtime (0.6.13347) sha256=54e7221d9f4b63f58aec79f3043752a9ba7810347c6ae0d903531591cc2d5f01 standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b @@ -556,16 +863,21 @@ CHECKSUMS thor (1.5.0) sha256=e3a9e55fe857e44859ce104a84675ab6e8cd59c650a49106a05f55f136425e73 timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 - token-resolver (2.0.5) + token-resolver (2.0.5) sha256=b852f924287ffb58a440856e862b056c8ad97e74b4b2526cee43e0771f40c25c + toml (0.3.0) sha256=0a91d0f76a9036e84e44f95693b12f58d358c1df3ac8e3b5271f2056ecc6e4b9 + toml-merge (7.1.0) + toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 + typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 webrick (1.9.2) sha256=beb4a15fc474defed24a3bda4ffd88a490d517c9e4e6118c3edce59e45864131 yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 + yaml-merge (7.1.0) yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd @@ -573,6 +885,7 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 + zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH From a1d1b2a53036e8abe031aa4ef41a330f361538ed Mon Sep 17 00:00:00 2001 From: "Peter H. Boling" Date: Tue, 21 Jul 2026 13:51:42 -0600 Subject: [PATCH 120/188] =?UTF-8?q?=F0=9F=8E=A8=20Template=20bootstrap=20b?= =?UTF-8?q?y=20kettle-jem=20v7.1.0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../.kettle-drift.lock | 293 +---------- .../.rubocop_gradual.lock | 120 ----- .../.structuredmerge/kettle-jem.yml | 53 ++ gems/ast-crispr-markdown-markly/Gemfile | 40 ++ gems/ast-crispr-markdown-markly/Gemfile.lock | 470 +++++------------- gems/ast-crispr-markdown-markly/README.md | 4 +- .../gemfiles/modular/cgi/r4/v0.5.gemfile | 1 + .../gemfiles/modular/cgi/vHEAD.gemfile | 1 + .../gemfiles/modular/coverage.gemfile | 2 +- .../gemfiles/modular/coverage_local.gemfile | 24 +- .../gemfiles/modular/documentation.gemfile | 12 +- .../modular/documentation_local.gemfile | 26 +- .../gemfiles/modular/erb/r3/v5.0.gemfile | 2 +- .../gemfiles/modular/erb/r4/v5.0.gemfile | 2 +- .../modular/json/truffleruby_22_3.gemfile | 6 + .../modular/json/truffleruby_23_0.gemfile | 6 + .../modular/json/truffleruby_23_1.gemfile | 6 + .../gemfiles/modular/mutex_m/r2/v0.3.gemfile | 2 +- .../gemfiles/modular/mutex_m/r3/v0.3.gemfile | 2 +- .../gemfiles/modular/mutex_m/r4/v0.3.gemfile | 2 +- .../gemfiles/modular/mutex_m/vHEAD.gemfile | 2 +- .../gemfiles/modular/optional.gemfile | 7 +- .../gemfiles/modular/rspec.gemfile | 8 +- .../gemfiles/modular/runtime_heads.gemfile | 7 +- .../gemfiles/modular/stringio/r2/v3.0.gemfile | 2 +- .../gemfiles/modular/stringio/r3/v3.0.gemfile | 2 +- .../gemfiles/modular/stringio/r4/v3.0.gemfile | 2 +- .../gemfiles/modular/stringio/vHEAD.gemfile | 2 +- .../gemfiles/modular/style.gemfile | 29 +- .../gemfiles/modular/style_local.gemfile | 44 +- .../gemfiles/modular/templating.gemfile | 14 +- .../gemfiles/modular/templating_local.gemfile | 48 +- .../gemfiles/modular/webrick/r4/v1.9.gemfile | 1 + .../gemfiles/modular/webrick/vHEAD.gemfile | 1 + .../gemfiles/modular/x_std_libs.gemfile | 14 +- .../modular/x_std_libs/r2/libs.gemfile | 6 +- .../modular/x_std_libs/r3/libs.gemfile | 6 +- .../modular/x_std_libs/r4/libs.gemfile | 10 +- .../gemfiles/modular/x_std_libs/vHEAD.gemfile | 10 +- .../lib/ast/crispr/markdown/markly/version.rb | 2 +- .../gemfiles/modular/optional.gemfile | 4 +- gems/ast-merge/gemfiles/modular/rspec.gemfile | 8 +- .../gemfiles/modular/runtime_heads.gemfile | 2 +- .../gemfiles/modular/stringio/r2/v3.0.gemfile | 2 +- .../gemfiles/modular/stringio/r3/v3.0.gemfile | 2 +- .../gemfiles/modular/stringio/r4/v3.0.gemfile | 2 +- .../gemfiles/modular/stringio/vHEAD.gemfile | 2 +- gems/ast-merge/gemfiles/modular/style.gemfile | 24 +- .../gemfiles/modular/style_local.gemfile | 32 +- .../gemfiles/modular/templating.gemfile | 12 +- .../gemfiles/modular/templating_local.gemfile | 44 +- .../gemfiles/modular/webrick/r4/v1.9.gemfile | 2 +- .../gemfiles/modular/webrick/vHEAD.gemfile | 2 +- .../gemfiles/modular/x_std_libs.gemfile | 14 +- .../modular/x_std_libs/r2/libs.gemfile | 6 +- .../modular/x_std_libs/r3/libs.gemfile | 6 +- .../modular/x_std_libs/r4/libs.gemfile | 12 +- .../gemfiles/modular/x_std_libs/vHEAD.gemfile | 12 +- gems/ast-merge/lib/ast/merge/version.rb | 2 +- gems/json-merge/.kettle-drift.lock | 308 +----------- .../.structuredmerge/kettle-jem.yml | 53 ++ gems/json-merge/Gemfile | 72 ++- gems/json-merge/Gemfile.lock | 347 ++++++++++++- gems/json-merge/Rakefile | 18 +- gems/json-merge/lib/json/merge/version.rb | 2 +- gems/markdown-merge/Gemfile.lock | 325 +++++++++++- gems/markly-merge/.kettle-drift.lock | 9 - gems/markly-merge/.rubocop_gradual.lock | 22 +- gems/markly-merge/Gemfile | 70 ++- gems/markly-merge/Gemfile.lock | 161 +++--- gems/markly-merge/README.md | 4 +- gems/markly-merge/Rakefile | 18 +- .../gemfiles/modular/cgi/r4/v0.5.gemfile | 1 + .../gemfiles/modular/cgi/vHEAD.gemfile | 1 + .../gemfiles/modular/coverage.gemfile | 2 +- .../gemfiles/modular/coverage_local.gemfile | 24 +- .../gemfiles/modular/documentation.gemfile | 12 +- .../modular/documentation_local.gemfile | 26 +- .../gemfiles/modular/erb/r3/v5.0.gemfile | 2 +- .../gemfiles/modular/erb/r4/v5.0.gemfile | 2 +- .../modular/json/truffleruby_22_3.gemfile | 6 + .../modular/json/truffleruby_23_0.gemfile | 6 + .../modular/json/truffleruby_23_1.gemfile | 6 + .../gemfiles/modular/optional.gemfile | 3 +- .../gemfiles/modular/runtime_heads.gemfile | 5 +- .../gemfiles/modular/style.gemfile | 23 +- .../gemfiles/modular/style_local.gemfile | 30 +- .../gemfiles/modular/templating.gemfile | 4 +- .../gemfiles/modular/templating_local.gemfile | 22 +- .../gemfiles/modular/webrick/r4/v1.9.gemfile | 1 + .../gemfiles/modular/webrick/vHEAD.gemfile | 1 + .../modular/x_std_libs/r4/libs.gemfile | 2 + .../gemfiles/modular/x_std_libs/vHEAD.gemfile | 2 + gems/markly-merge/lib/markly/merge/version.rb | 2 +- 94 files changed, 1621 insertions(+), 1452 deletions(-) delete mode 100644 gems/ast-crispr-markdown-markly/.rubocop_gradual.lock create mode 100644 gems/ast-crispr-markdown-markly/gemfiles/modular/cgi/r4/v0.5.gemfile create mode 100644 gems/ast-crispr-markdown-markly/gemfiles/modular/cgi/vHEAD.gemfile create mode 100644 gems/ast-crispr-markdown-markly/gemfiles/modular/json/truffleruby_22_3.gemfile create mode 100644 gems/ast-crispr-markdown-markly/gemfiles/modular/json/truffleruby_23_0.gemfile create mode 100644 gems/ast-crispr-markdown-markly/gemfiles/modular/json/truffleruby_23_1.gemfile create mode 100644 gems/ast-crispr-markdown-markly/gemfiles/modular/webrick/r4/v1.9.gemfile create mode 100644 gems/ast-crispr-markdown-markly/gemfiles/modular/webrick/vHEAD.gemfile create mode 100644 gems/markly-merge/gemfiles/modular/cgi/r4/v0.5.gemfile create mode 100644 gems/markly-merge/gemfiles/modular/cgi/vHEAD.gemfile create mode 100644 gems/markly-merge/gemfiles/modular/json/truffleruby_22_3.gemfile create mode 100644 gems/markly-merge/gemfiles/modular/json/truffleruby_23_0.gemfile create mode 100644 gems/markly-merge/gemfiles/modular/json/truffleruby_23_1.gemfile create mode 100644 gems/markly-merge/gemfiles/modular/webrick/r4/v1.9.gemfile create mode 100644 gems/markly-merge/gemfiles/modular/webrick/vHEAD.gemfile diff --git a/gems/ast-crispr-markdown-markly/.kettle-drift.lock b/gems/ast-crispr-markdown-markly/.kettle-drift.lock index 9be384c91..43dfedd67 100644 --- a/gems/ast-crispr-markdown-markly/.kettle-drift.lock +++ b/gems/ast-crispr-markdown-markly/.kettle-drift.lock @@ -1,130 +1,10 @@ { - "(direct_sibling_local ||\nENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?)": [ - { - "file": "Gemfile", - "lines": [ - 80, - 120, - 160, - 200, - 240, - 280, - 320, - 360, - 400 - ] - } - ], - ".find { |spec| spec.name == 'nomono' }\nnomono_locked = nomono_locked_spec &&": [ - { - "file": "Gemfile", - "lines": [ - 91, - 131, - 171, - 211, - 251, - 291, - 331, - 371, - 411 - ] - } - ], - "ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?)\ndirect_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV')": [ - { - "file": "Gemfile", - "lines": [ - 81, - 121, - 161, - 201, - 241, - 281, - 321, - 361, - 401 - ] - } - ], - "Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version)\nnomono_activation_requirements = [\"= #{nomono_locked_spec.version}\"] if nomono_locked": [ - { - "file": "Gemfile", - "lines": [ - 93, - 133, - 173, - 213, - 253, - 293, - 333, - 373, - 413 - ] - } - ], - "Kernel.send(:gem, 'nomono', *nomono_activation_requirements)\nrequire 'nomono/bundler'": [ - { - "file": "Gemfile", - "lines": [ - 96, - 136, - 176, - 216, - 256, - 296, - 336, - 376, - 416 - ] - } - ], - "direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV')\ndirect_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil)": [ - { - "file": "Gemfile", - "lines": [ - 82, - 122, - 162, - 202, - 242, - 282, - 322, - 362, - 402 - ] - } - ], "eval_nomono_gems(\ngems: direct_sibling_gems,": [ { "file": "Gemfile", "lines": [ 60, - 100, - 140, - 180, - 220, - 260, - 300, - 340, - 380, - 420 - ] - } - ], - "gems: direct_sibling_gems,\nprefix: 'STRUCTUREDMERGE',": [ - { - "file": "Gemfile", - "lines": [ - 101, - 141, - 181, - 221, - 261, - 301, - 341, - 381, - 421 + 100 ] } ], @@ -133,31 +13,7 @@ "file": "Gemfile", "lines": [ 43, - 87, - 127, - 167, - 207, - 247, - 287, - 327, - 367, - 407 - ] - } - ], - "if direct_sibling_dev_was_set\nENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original": [ - { - "file": "Gemfile", - "lines": [ - 110, - 150, - 190, - 230, - 270, - 310, - 350, - 390, - 430 + 87 ] } ], @@ -166,15 +22,7 @@ "file": "Gemfile", "lines": [ 35, - 79, - 119, - 159, - 199, - 239, - 279, - 319, - 359, - 399 + 79 ] } ], @@ -183,31 +31,7 @@ "file": "Gemfile", "lines": [ 69, - 109, - 149, - 189, - 229, - 269, - 309, - 349, - 389, - 429 - ] - } - ], - "nomono_activation_requirements = nomono_requirements\nnomono_lockfile = File.expand_path('Gemfile.lock', __dir__)": [ - { - "file": "Gemfile", - "lines": [ - 85, - 125, - 165, - 205, - 245, - 285, - 325, - 365, - 405 + 109 ] } ], @@ -216,15 +40,7 @@ "file": "Gemfile", "lines": [ 48, - 92, - 132, - 172, - 212, - 252, - 292, - 332, - 372, - 412 + 92 ] } ], @@ -233,104 +49,7 @@ "file": "Gemfile", "lines": [ 44, - 88, - 128, - 168, - 208, - 248, - 288, - 328, - 368, - 408 - ] - } - ], - "nomono_lockfile = File.expand_path('Gemfile.lock', __dir__)\nif File.file?(nomono_lockfile)": [ - { - "file": "Gemfile", - "lines": [ - 86, - 126, - 166, - 206, - 246, - 286, - 326, - 366, - 406 - ] - } - ], - "path_env: 'STRUCTUREDMERGE_DEV',\nroot: %w[src my structuredmerge]": [ - { - "file": "Gemfile", - "lines": [ - 103, - 143, - 183, - 223, - 263, - 303, - 343, - 383, - 423 - ] - } - ], - "prefix: 'STRUCTUREDMERGE',\npath_env: 'STRUCTUREDMERGE_DEV',": [ - { - "file": "Gemfile", - "lines": [ - 102, - 142, - 182, - 222, - 262, - 302, - 342, - 382, - 422 - ] - } - ], - "require 'nomono/bundler'\nENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local": [ - { - "file": "Gemfile", - "lines": [ - 97, - 137, - 177, - 217, - 257, - 297, - 337, - 377, - 417 - ] - } - ], - "rescue LoadError\nwarn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.'": [ - { - "file": "Gemfile", - "lines": [ - 106, - 146, - 186, - 226, - 266, - 306, - 346, - 386, - 426 - ] - } - ], - "vendored_gems_env: 'VENDORED_GEMS',\nvendor_gem_dir_env: 'VENDOR_GEM_DIR',": [ - { - "file": "gemfiles/modular/templating_local.gemfile", - "lines": [ - 58, - 69 + 88 ] } ] diff --git a/gems/ast-crispr-markdown-markly/.rubocop_gradual.lock b/gems/ast-crispr-markdown-markly/.rubocop_gradual.lock deleted file mode 100644 index 5268548d5..000000000 --- a/gems/ast-crispr-markdown-markly/.rubocop_gradual.lock +++ /dev/null @@ -1,120 +0,0 @@ -{ - ".simplecov:971555246": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "Rakefile:4085821453": [ - [18, 121, 17, "Layout/LineLength: Line is too long. [137/120]", 174264873], - [79, 3, 1023, "Metrics/BlockLength: Block has too many lines. [32/25]", 54868638], - [163, 121, 22, "Layout/LineLength: Line is too long. [142/120]", 1367093088], - [166, 121, 18, "Layout/LineLength: Line is too long. [138/120]", 3881946477] - ], - "ast-crispr-markdown-markly.gemspec:1188642188": [ - [128, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 2821357214], - [143, 121, 50, "Layout/LineLength: Line is too long. [170/120]", 3888612416], - [144, 121, 29, "Layout/LineLength: Line is too long. [149/120]", 981994949], - [151, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 4229808912] - ], - "gemfiles/modular/benchmark/r4/v0.5.gemfile:3644720371": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/benchmark/vHEAD.gemfile:2838879269": [ - [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/erb/r2/v3.0.gemfile:1688285565": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] - ], - "gemfiles/modular/erb/r3/v5.0.gemfile:2150258305": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] - ], - "gemfiles/modular/erb/r4/v5.0.gemfile:2150258305": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] - ], - "gemfiles/modular/erb/vHEAD.gemfile:981929959": [ - [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/mutex_m/r2/v0.3.gemfile:4055275004": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/mutex_m/r3/v0.3.gemfile:4055275004": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/mutex_m/r4/v0.3.gemfile:4055275004": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/mutex_m/vHEAD.gemfile:556854763": [ - [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/rspec.gemfile:2263543889": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] - ], - "gemfiles/modular/stringio/r2/v3.0.gemfile:821604304": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/stringio/r3/v3.0.gemfile:821604304": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/stringio/r4/v3.0.gemfile:821604304": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/stringio/vHEAD.gemfile:1045839691": [ - [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/x_std_libs.gemfile:2324400122": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/x_std_libs/r2/libs.gemfile:36276542": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] - ], - "gemfiles/modular/x_std_libs/r3/libs.gemfile:4030570297": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] - ], - "gemfiles/modular/x_std_libs/r4/libs.gemfile:909736663": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] - ], - "gemfiles/modular/x_std_libs/vHEAD.gemfile:907917303": [ - [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] - ], - "lib/ast-crispr-markdown-markly.rb:374208510": [ - [1, 1, 0, "Naming/FileName: The name of this source file (`ast-crispr-markdown-markly.rb`) should use snake_case.", 5381] - ], - "lib/ast/crispr/markdown/markly.rb:1124197915": [ - [11, 7, 13, "Style/Documentation: Missing top-level documentation comment for `module Ast::Crispr::Markdown::Markly`.", 95841343], - [14, 9, 13, "Style/Documentation: Missing top-level documentation comment for `class Ast::Crispr::Markdown::Markly::Adapter`.", 2579377404], - [23, 11, 695, "Metrics/MethodLength: Method has too many lines. [15/10]", 2384506812], - [49, 13, 87, "Style/RaiseArgs: Provide an exception class and message as arguments to `raise`.", 1878059440], - [52, 11, 1781, "Metrics/MethodLength: Method has too many lines. [39/10]", 2020253431], - [95, 9, 16, "Style/Documentation: Missing top-level documentation comment for `module Ast::Crispr::Markdown::Markly::Selectors`.", 2133324825], - [95, 9, 8840, "Metrics/ModuleLength: Module has too many lines. [186/100]", 1134016796], - [98, 11, 1452, "Metrics/AbcSize: Assignment Branch Condition size for `heading_section` is too high. [<2, 21, 7> 22.23/17]", 1578141243], - [98, 11, 1452, "Metrics/MethodLength: Method has too many lines. [30/10]", 1578141243], - [98, 30, 73, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 515735878], - [132, 11, 1397, "Metrics/AbcSize: Assignment Branch Condition size for `link_definition` is too high. [<2, 22, 8> 23.49/17]", 2035221200], - [132, 11, 1397, "Metrics/MethodLength: Method has too many lines. [29/10]", 2035221200], - [132, 30, 68, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 2927391196], - [165, 11, 1236, "Metrics/MethodLength: Method has too many lines. [27/10]", 2705412671], - [196, 11, 1632, "Metrics/AbcSize: Assignment Branch Condition size for `inline_reference` is too high. [<2, 25, 7> 26.04/17]", 2822954343], - [196, 11, 1632, "Metrics/MethodLength: Method has too many lines. [32/10]", 2822954343], - [196, 31, 79, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 871966347], - [232, 11, 3009, "Metrics/AbcSize: Assignment Branch Condition size for `html_comment_block` is too high. [<14, 43, 23> 50.73/17]", 1757586727], - [232, 11, 3009, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `html_comment_block` is too high. [18/7]", 1757586727], - [232, 11, 3009, "Metrics/MethodLength: Method has too many lines. [56/10]", 1757586727], - [232, 11, 3009, "Metrics/PerceivedComplexity: Perceived complexity for `html_comment_block` is too high. [18/8]", 1757586727], - [232, 33, 148, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [8/5]", 4247948333], - [244, 23, 2311, "Metrics/BlockLength: Block has too many lines. [43/25]", 3166751632], - [249, 121, 5, "Layout/LineLength: Line is too long. [125/120]", 236074548] - ], - "spec/ast/crispr/markdown/markly_spec.rb:479377118": [ - [3, 1, 13025, "Metrics/BlockLength: Block has too many lines. [238/25]", 467937705], - [28, 3, 10314, "Metrics/BlockLength: Block has too many lines. [182/25]", 3591393606], - [132, 121, 35, "Layout/LineLength: Line is too long. [155/120]", 2413317061], - [134, 121, 34, "Layout/LineLength: Line is too long. [154/120]", 3021964175], - [152, 121, 37, "Layout/LineLength: Line is too long. [157/120]", 3082451518], - [154, 121, 34, "Layout/LineLength: Line is too long. [154/120]", 3021964175], - [267, 3, 1687, "Metrics/BlockLength: Block has too many lines. [33/25]", 4221412326] - ] -} diff --git a/gems/ast-crispr-markdown-markly/.structuredmerge/kettle-jem.yml b/gems/ast-crispr-markdown-markly/.structuredmerge/kettle-jem.yml index 2880a0c69..e93b16bb5 100644 --- a/gems/ast-crispr-markdown-markly/.structuredmerge/kettle-jem.yml +++ b/gems/ast-crispr-markdown-markly/.structuredmerge/kettle-jem.yml @@ -246,6 +246,59 @@ templates: - Gemfile - certs/pboling.pem - tmp/.gitignore + - gemfiles/modular/benchmark/r4/v0.5.gemfile + - gemfiles/modular/benchmark/vHEAD.gemfile + - gemfiles/modular/cgi/r4/v0.5.gemfile + - gemfiles/modular/cgi/vHEAD.gemfile + - gemfiles/modular/coverage.gemfile + - gemfiles/modular/coverage_local.gemfile + - gemfiles/modular/debug.gemfile + - gemfiles/modular/documentation.gemfile + - gemfiles/modular/documentation_local.gemfile + - gemfiles/modular/erb/r2.3/default.gemfile + - gemfiles/modular/erb/r2.6/v2.2.gemfile + - gemfiles/modular/erb/r2/v3.0.gemfile + - gemfiles/modular/erb/r3.1/v4.0.gemfile + - gemfiles/modular/erb/r3/v5.0.gemfile + - gemfiles/modular/erb/r4/v5.0.gemfile + - gemfiles/modular/erb/vHEAD.gemfile + - gemfiles/modular/json/truffleruby_22_3.gemfile + - gemfiles/modular/json/truffleruby_23_0.gemfile + - gemfiles/modular/json/truffleruby_23_1.gemfile + - gemfiles/modular/mutex_m/r2.4/v0.1.gemfile + - gemfiles/modular/mutex_m/r2/v0.3.gemfile + - gemfiles/modular/mutex_m/r3/v0.3.gemfile + - gemfiles/modular/mutex_m/r4/v0.3.gemfile + - gemfiles/modular/mutex_m/vHEAD.gemfile + - gemfiles/modular/optional.gemfile + - gemfiles/modular/recording/r2.3/recording.gemfile + - gemfiles/modular/recording/r2.4/recording.gemfile + - gemfiles/modular/recording/r2.5/recording.gemfile + - gemfiles/modular/recording/r3/recording.gemfile + - gemfiles/modular/recording/r4/recording.gemfile + - gemfiles/modular/recording/vHEAD.gemfile + - gemfiles/modular/rspec.gemfile + - gemfiles/modular/runtime_heads.gemfile + - gemfiles/modular/stringio/r2.4/v0.0.2.gemfile + - gemfiles/modular/stringio/r2/v3.0.gemfile + - gemfiles/modular/stringio/r3/v3.0.gemfile + - gemfiles/modular/stringio/r4/v3.0.gemfile + - gemfiles/modular/stringio/vHEAD.gemfile + - gemfiles/modular/style.gemfile + - gemfiles/modular/style_local.gemfile + - gemfiles/modular/templating.gemfile + - gemfiles/modular/templating_local.gemfile + - gemfiles/modular/webrick/r4/v1.9.gemfile + - gemfiles/modular/webrick/vHEAD.gemfile + - gemfiles/modular/x_std_libs.gemfile + - gemfiles/modular/x_std_libs/r2.3/libs.gemfile + - gemfiles/modular/x_std_libs/r2.4/libs.gemfile + - gemfiles/modular/x_std_libs/r2.6/libs.gemfile + - gemfiles/modular/x_std_libs/r2/libs.gemfile + - gemfiles/modular/x_std_libs/r3.1/libs.gemfile + - gemfiles/modular/x_std_libs/r3/libs.gemfile + - gemfiles/modular/x_std_libs/r4/libs.gemfile + - gemfiles/modular/x_std_libs/vHEAD.gemfile - source: lib/gem/version.rb target: lib/ast/crispr/markdown/markly/version.rb - source: sig/gem.rbs diff --git a/gems/ast-crispr-markdown-markly/Gemfile b/gems/ast-crispr-markdown-markly/Gemfile index 5a0323233..ea63fb092 100644 --- a/gems/ast-crispr-markdown-markly/Gemfile +++ b/gems/ast-crispr-markdown-markly/Gemfile @@ -72,6 +72,46 @@ if direct_sibling_gems.any? && end end +if direct_sibling_gems.any? && + (direct_sibling_local || + ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) + direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') + direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) + begin + nomono_activation_requirements = nomono_requirements + nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) + if File.file?(nomono_lockfile) + nomono_locked_spec = Bundler::LockfileParser + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } + nomono_locked = nomono_locked_spec && + Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked + end + Kernel.send(:gem, 'nomono', *nomono_activation_requirements) + require 'nomono/bundler' + ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local + + eval_nomono_gems( + gems: direct_sibling_gems, + prefix: 'STRUCTUREDMERGE', + path_env: 'STRUCTUREDMERGE_DEV', + root: %w[src my structuredmerge] + ) + rescue LoadError + warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' + ensure + if direct_sibling_templating && !direct_sibling_local + if direct_sibling_dev_was_set + ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original + else + ENV.delete('STRUCTUREDMERGE_DEV') + end + end + end +end + # Use released TSLP with the Ruby ABI platform-gem fix. gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' diff --git a/gems/ast-crispr-markdown-markly/Gemfile.lock b/gems/ast-crispr-markdown-markly/Gemfile.lock index 748092bc7..360e6f3a9 100644 --- a/gems/ast-crispr-markdown-markly/Gemfile.lock +++ b/gems/ast-crispr-markdown-markly/Gemfile.lock @@ -6,14 +6,6 @@ PATH markly-merge (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism - specs: - ast-crispr-ruby-prism (7.1.0) - ast-crispr (= 7.1.0) - prism-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - PATH remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr specs: @@ -22,130 +14,6 @@ PATH service_actor (~> 3.9) version_gem (~> 1.1, >= 1.1.9) -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git - specs: - ast-merge-git (7.1.0) - ast-merge (= 7.1.0) - json-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge - specs: - ast-merge (7.1.0) - benchmark - token-resolver (~> 2.0, >= 2.0.4) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template - specs: - ast-template (7.1.0) - ast-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge - specs: - bash-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge - specs: - binary-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge - specs: - citrus-toml-merge (7.1.0) - toml-merge (= 7.1.0) - toml-rb (~> 4.1) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge - specs: - commonmarker-merge (7.1.0) - commonmarker (~> 2.2) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge - specs: - dotenv-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge - specs: - go-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge - specs: - json-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem - specs: - kettle-jem (7.1.0) - addressable (>= 2.8, < 3) - ast-crispr-markdown-markly (= 7.1.0) - ast-crispr-ruby-prism (= 7.1.0) - ast-merge (= 7.1.0) - bash-merge (= 7.1.0) - citrus-toml-merge (= 7.1.0) - commonmarker-merge (= 7.1.0) - dotenv-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-dev (~> 2.3, >= 2.3.5) - kettle-rb (~> 0.1, >= 0.1.4) - kramdown-merge (= 7.1.0) - markdown-merge (= 7.1.0) - markly-merge (= 7.1.0) - prism-merge (= 7.1.0) - psych-merge (= 7.1.0) - rbs (>= 3.10) - rbs-merge (= 7.1.0) - ruby-merge (= 7.1.0) - token-resolver (~> 2.0, >= 2.0.4) - toml-merge (= 7.1.0) - toml-rb (~> 4.2) - tree_haver (= 7.1.0) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge - specs: - kramdown-merge (7.1.0) - kramdown (~> 2.5) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge - specs: - markdown-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - PATH remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge specs: @@ -154,117 +22,6 @@ PATH markly (~> 0.9) version_gem (~> 1.1, >= 1.1.9) -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge - specs: - parslet-toml-merge (7.1.0) - toml (~> 0.3) - toml-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge - specs: - plain-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge - specs: - prism-merge (7.1.0) - prism (~> 1.6) - ruby-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge - specs: - psych-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge - specs: - rbs-merge (7.1.0) - ast-merge (= 7.1.0) - rbs (>= 3.10) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge - specs: - ruby-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge - specs: - rust-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb - specs: - smorg-rb (7.1.0) - ast-merge (= 7.1.0) - ast-merge-git (= 7.1.0) - go-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-jem (= 7.1.0) - markly-merge (= 7.1.0) - plain-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge - specs: - toml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver - specs: - tree_haver (7.1.0) - citrus (~> 3.0) - parslet (~> 2.0) - tree_sitter_language_pack (>= 1.13.2, < 2.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge - specs: - typescript-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge - specs: - yaml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge - specs: - zip-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - GEM remote: https://gem.coop/ specs: @@ -275,16 +32,25 @@ GEM bundler (>= 1.17.3) rake (>= 10) thor (>= 0.14) + appraisal2-rubocop (1.0.0) + appraisal2 (>= 3.1.4) + rubocop (>= 1.0) + version_gem (~> 1.1, >= 1.1.14) ast (2.4.3) + ast-merge (7.1.0) + benchmark + token-resolver (~> 2.0, >= 2.0.4) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) backports (3.25.3) benchmark (0.5.0) bigdecimal (4.1.2) bundler-audit (0.9.3) bundler (>= 1.2.0) thor (~> 1.0) + cgi (0.5.2) citrus (3.0.2) cmdparse (3.0.7) - commonmarker (2.9.0-x86_64-linux) concurrent-ruby (1.3.8) date (3.5.1) debug (1.11.1) @@ -293,7 +59,6 @@ GEM delegate (0.6.1) diff-lcs (1.6.2) diffy (3.4.4) - docile (1.4.1) dry-configurable (1.4.0) dry-core (~> 1.0) zeitwerk (~> 2.6) @@ -324,7 +89,7 @@ GEM dry-logic (~> 1.4) zeitwerk (~> 2.6) emoji_regex (15.0.0) - erb (6.0.5) + erb (6.0.6) gem_bench (2.0.5) bundler (>= 1.14) version_gem (~> 1.1, >= 1.1.4) @@ -348,18 +113,14 @@ GEM kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) - kettle-drift (1.0.6) - version_gem (~> 1.1, >= 1.1.14) kettle-rb (0.1.4) - kettle-soup-cover (1.1.3) - simplecov (~> 0.22) - simplecov-cobertura (~> 3.0) - simplecov-console (~> 0.9, >= 0.9.3) - simplecov-html (~> 0.13, >= 0.13.1) - simplecov-lcov (~> 0.8) + kettle-soup-cover (3.0.4) + kettle-wash (~> 0.1, >= 0.1.0) + simplecov (>= 1.0) + simplecov-cobertura (>= 4.0) + simplecov-console (~> 0.9, >= 0.9.5) simplecov-rcov (~> 0.3, >= 0.3.7) - simplecov_json_formatter (~> 0.1, >= 0.1.4) - version_gem (~> 1.1, >= 1.1.9) + simplecov_lcov_formatter (~> 0.9, >= 0.9.0) kettle-test (2.0.11) appraisal2 (~> 3.0, >= 3.0.6) backports (~> 3.0) @@ -371,6 +132,8 @@ GEM silent_stream (~> 1.0, >= 1.0.12) timecop-rspec (~> 1.0, >= 1.0.3) turbo_tests2 (~> 3.1, >= 3.1.12) + kettle-wash (0.1.1) + version_gem (~> 1.1, >= 1.1.14) kramdown (2.5.2) rexml (>= 3.4.4) kramdown-parser-gfm (1.1.0) @@ -378,11 +141,15 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) + markdown-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) markly (0.16.0) mutex_m (0.3.0) nokogiri (1.19.4-x86_64-linux-gnu) racc (~> 1.4) - nomono (1.0.8) + nomono (1.0.9) openssl (4.0.2) ostruct (0.6.3) parallel (1.28.0) @@ -458,6 +225,14 @@ GEM rubocop-ast (1.50.0) parser (>= 3.3.7.2) prism (~> 1.7) + rubocop-capybara (2.23.0) + lint_roller (~> 1.1) + rubocop (~> 1.81) + rubocop-env (0.1.0) + rubocop + rubocop-factory_bot (2.28.0) + lint_roller (~> 1.1) + rubocop (~> 1.72, >= 1.72.1) rubocop-gradual (0.4.0) benchmark diff-lcs (>= 1.2.0, < 2.0) @@ -465,13 +240,26 @@ GEM parallel (~> 1.10) rainbow (>= 2.2.2, < 4.0) rubocop (~> 1.0) - rubocop-lts (24.1.0) - rubocop-ruby3_2 (>= 3.0.0, < 4) - standard-rubocop-lts (>= 2.0.2, < 3) - version_gem (>= 1.1.2, < 3) + rubocop-lts (24.2.2) + rubocop-ruby3_2 (~> 3.0, >= 3.0.1) + standard-rubocop-lts (~> 2.0, >= 2.0.3) + version_gem (~> 1.1, >= 1.1.13) + rubocop-lts-rspec (1.0.5) + rubocop (~> 1.84, >= 1.84.2) + rubocop-env (~> 0.1, >= 0.1.0) + rubocop-factory_bot (~> 2.28, >= 2.28.0) + rubocop-rspec (~> 3.9, >= 3.9.0) + rubocop-rspec-extra (~> 0.3, >= 0.3.0) + standard (~> 1.54, >= 1.54.0) + standard-rspec (~> 0.5, >= 0.5.0) + version_gem (~> 1.1, >= 1.1.13) rubocop-md (2.0.4) lint_roller (~> 1.1) rubocop (>= 1.72.1) + rubocop-minitest (0.40.0) + lint_roller (~> 1.1) + rubocop (>= 1.75.0, < 2.0) + rubocop-ast (>= 1.38.0, < 2.0) rubocop-on-rbs (2.0.0) lint_roller (~> 1.1) rbs (~> 4.0) @@ -491,6 +279,13 @@ GEM lint_roller (~> 1.1) regexp_parser (>= 2.0) rubocop (~> 1.86, >= 1.86.2) + rubocop-rspec-extra (0.3.0) + lint_roller (~> 1.1) + rubocop (>= 1.72.1, < 2.0) + rubocop-rspec_rails (2.32.0) + lint_roller (~> 1.1) + rubocop (~> 1.72, >= 1.72.1) + rubocop-rspec (~> 3.5) rubocop-ruby3_2 (3.0.7) rubocop-gradual (~> 0.3, >= 0.3.6) rubocop-md (~> 2.0, >= 2.0.4) @@ -510,23 +305,19 @@ GEM silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) - simplecov (0.22.0) - docile (~> 1.1) - simplecov-html (~> 0.11) - simplecov_json_formatter (~> 0.1) - simplecov-cobertura (3.2.0) + simplecov (1.0.2) + simplecov-cobertura (4.0.0) rexml - simplecov (~> 0.19) + simplecov (~> 1.0) simplecov-console (0.9.5) ansi simplecov terminal-table - simplecov-html (0.13.2) - simplecov-lcov (0.9.0) simplecov-rcov (0.3.7) simplecov (>= 0.4.1) - simplecov_json_formatter (0.1.4) - sorbet-runtime (0.6.13342) + simplecov_lcov_formatter (0.9.0) + simplecov (>= 0.18) + sorbet-runtime (0.6.13347) standard (1.56.0) language_server-protocol (~> 3.17.0.2) lint_roller (~> 1.0) @@ -539,6 +330,12 @@ GEM standard-performance (1.9.0) lint_roller (~> 1.1) rubocop-performance (~> 1.26.0) + standard-rspec (0.5.0) + lint_roller (>= 1.0) + rubocop-capybara (~> 2.23) + rubocop-factory_bot (~> 2.27) + rubocop-rspec (~> 3.9) + rubocop-rspec_rails (~> 2.31) standard-rubocop-lts (2.0.10) standard (~> 1.54, >= 1.54.0) standard-custom (~> 1.0, >= 1.0.2) @@ -559,11 +356,11 @@ GEM token-resolver (2.0.4) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.13) - toml (0.3.0) - parslet (>= 1.8.0, < 3.0.0) - toml-rb (4.2.0) - citrus (~> 3.0, > 3.0) - racc (~> 1.7) + tree_haver (7.1.0) + citrus (~> 3.0) + parslet (~> 2.0) + tree_sitter_language_pack (>= 1.13.2, < 2.0) + version_gem (~> 1.1, >= 1.1.9) tree_sitter_language_pack (1.13.3-x86_64-linux) sorbet-runtime (~> 0.5) tsort (0.2.0) @@ -575,6 +372,7 @@ GEM unicode-emoji (~> 4.1) unicode-emoji (4.2.0) version_gem (1.1.14) + webrick (1.9.2) yaml-converter (0.2.3) hexapdf (>= 1.8, < 2) kramdown (>= 2.4, < 3) @@ -607,104 +405,73 @@ PLATFORMS DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) + appraisal2-rubocop (~> 1.0, >= 1.0.0) ast-crispr! ast-crispr-markdown-markly! - ast-crispr-ruby-prism! - ast-merge! - ast-merge-git! - ast-template! - bash-merge! benchmark (~> 0.5, >= 0.5.0) - binary-merge! bundler-audit (~> 0.9.3) - citrus-toml-merge! - commonmarker-merge! + cgi (~> 0.5) debug (>= 1.1) - dotenv-merge! - erb (~> 6.0, >= 6.0.4) + erb (~> 6.0, >= 6.0.6) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.0) - go-merge! irb (~> 1.17) - json-merge! kettle-dev (~> 2.0, >= 2.2.25) - kettle-drift (~> 1.0, >= 1.0.5) - kettle-jem! - kettle-soup-cover (~> 1.0, >= 1.1.3) + kettle-soup-cover (~> 3.0, >= 3.0.3) kettle-test (~> 2.0, >= 2.0.9) - kramdown (~> 2.5, >= 2.5.1) - kramdown-merge! + kramdown (~> 2.5, >= 2.5.2) kramdown-parser-gfm (~> 1.1) - markdown-merge! markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) - parslet-toml-merge! - plain-merge! - prism-merge! - psych-merge! rake (~> 13.0) rbs (>= 3.0) - rbs-merge! rdoc (~> 6.11) - reek (~> 6.5) + reek (~> 6.5, >= 6.5.0) require_bench (~> 1.0, >= 1.0.4) - rubocop-lts (~> 24.1.0) - rubocop-on-rbs (~> 2.0) + rubocop-gradual (~> 0.4, >= 0.4.0) + rubocop-lts (~> 24.2, >= 24.2.1) + rubocop-lts-rspec (~> 1.0, >= 1.0.5) + rubocop-minitest (~> 0.40, >= 0.40.0) + rubocop-on-rbs (~> 2.0, >= 2.0.0) rubocop-packaging (~> 0.6, >= 0.6.0) - rubocop-rspec (~> 3.6) - rubocop-ruby3_2 (~> 3.0.0) - ruby-merge! + rubocop-ruby3_2 (~> 3.0, >= 3.0.6) ruby-progressbar (~> 1.13) - rust-merge! - smorg-rb! - standard (>= 1.50) + standard (~> 1.56, >= 1.56.0) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) - toml-merge! - tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) - typescript-merge! - yaml-converter (~> 0.1) - yaml-merge! - yard (~> 0.9, >= 0.9.44) - yard-fence (~> 0.9, >= 0.9.1) + webrick (~> 1.9) + yaml-converter (~> 0.2, >= 0.2.3) + yard (~> 0.9, >= 0.9.45) + yard-fence (~> 0.9, >= 0.9.6) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) - yard-timekeeper (~> 0.1) - yard-yaml (~> 0.1, >= 0.1.2) - zip-merge! + yard-timekeeper (~> 0.2, >= 0.2.4) + yard-yaml (~> 0.2, >= 0.2.3) CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af ansi (1.6.0) sha256=ac9ea0c0ea8d32fb4e271348e609963ac78882f34b73836c2a02b3622e666658 appraisal2 (3.2.0) sha256=ccd0b767ac4060cd7af6d16747459b6990f49c39c7b4fb1f7d1146b1e97c492f + appraisal2-rubocop (1.0.0) sha256=b71410fbb014befda5340605a605b7f6f3f012739baf0acc5b4351b592c3258d ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 ast-crispr (7.1.0) ast-crispr-markdown-markly (7.1.0) - ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) - ast-merge-git (7.1.0) - ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 - bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd - binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 + cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 - citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 - commonmarker (2.9.0-x86_64-linux) sha256=8cfe92970eef585a19ddf6613224b91cab64d6029834661bda801f877c9c7f43 - commonmarker-merge (7.1.0) concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 - docile (1.4.1) sha256=96159be799bfa73cdb721b840e9802126e4e03dfc26863db73647204c727f21e - dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -713,24 +480,20 @@ CHECKSUMS dry-schema (1.16.0) sha256=cd3aaeabc0f1af66ec82a29096d4c4fb92a0a58b9dae29a22b1bbceb78985727 dry-types (1.9.1) sha256=baebeecdb9f8395d6c9d227b62011279440943e3ef2468fe8ccc1ba11467f178 emoji_regex (15.0.0) sha256=a508b2c0bee561169564e0aec96085020c900520d335e5533fd8e78e59493829 - erb (6.0.5) sha256=858e63488cb796c9daba8b6e9ff4b3879c395022049be9a66a8e00980e612eac + erb (6.0.6) sha256=a9b24986700f5bf127c4f297c5403c3ca41b83b0a316c0cd09a096b56e644ae5 gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f - go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 - json-merge (7.1.0) kettle-dev (2.3.7) sha256=eb370113cd030d03cbe2d33b31c99858951017e5ad21a17e9ed89dc3770028ee - kettle-drift (1.0.6) sha256=46eda08fa4411d1f3c6682a95eef1c9df4e94611b3949f49d4c7b43c0ed356a3 - kettle-jem (7.1.0) kettle-rb (0.1.4) sha256=9cef7ce4f7021666b7222292f29051e51eaf042e8a5db11f3f4dd72f74243fc1 - kettle-soup-cover (1.1.3) sha256=a373827da22a7131d093afd32945e5b7d7a10a01ebfdded8fd2cb8230d69c8ad + kettle-soup-cover (3.0.4) kettle-test (2.0.11) sha256=c710c90f7ab79d51f9452f0c09f5f90657e7a893f63583855c164d0b1b107ab2 + kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa - kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 @@ -740,27 +503,22 @@ CHECKSUMS markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-x86_64-linux-gnu) sha256=379fae440b28915e3f19d752ce2dcf8465ed2b2fbefd2a7ca0dd497bc981a06a - nomono (1.0.8) sha256=bf4b9b426cbf216ab17b70db474f691b8ae1f1e29de8db4b0ecd405e6e7e1c80 + nomono (1.0.9) openssl (4.0.2) sha256=1037ad2868ae58df9ad917891c0c0f9815a1172f6846d4bcdd508e4c2ee747c2 ostruct (0.6.3) sha256=95a2ed4a4bd1d190784e666b47b2d3f078e4a9efda2fccf18f84ddc6538ed912 parallel (1.28.0) sha256=33e6de1484baf2524792d178b0913fc8eb94c628d6cfe45599ad4458c638c970 parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 - parslet-toml-merge (7.1.0) - plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 - prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 - psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 - rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb @@ -778,35 +536,38 @@ CHECKSUMS rspec_junit_formatter (0.6.0) sha256=40dde674e6ae4e6cc0ff560da25497677e34fefd2338cc467a8972f602b62b15 rubocop (1.88.2) sha256=8def251c90cd955feb4daa3edc0ab56893250c4ce90ef81e6c80c03f9a939bbf rubocop-ast (1.50.0) sha256=b9ca88300da0803ee222ad20cdb30494c0a784eed06fdc35d254b06d662788db + rubocop-capybara (2.23.0) sha256=f9ea1ba3a7561ee8e88cf76fc378ce517ce5327155f305ee7b5c2500e5aee357 + rubocop-env (0.1.0) sha256=5ab9a259e71822bf514c8e900a9b68cc2f74ccc87d5493efcd03213f3068e718 + rubocop-factory_bot (2.28.0) sha256=4b17fc02124444173317e131759d195b0d762844a71a29fe8139c1105d92f0cb rubocop-gradual (0.4.0) sha256=9c7e584e6fef6c2539266a193a4572c970c22f99046fd6b0305bdde6228f96ad - rubocop-lts (24.1.0) sha256=9dcad4db2da2fe2f1f77f98c917d70e7c43eded703da14cd201d4be52a9272aa + rubocop-lts (24.2.2) sha256=be6c745e1bb61daebd6af3cc3227c60f95be9f642a080773cad7df14c5f9f174 + rubocop-lts-rspec (1.0.5) sha256=439552fd27440802cc499889e013bffa28aadc41adae5d4dfff3d984a2a809b4 rubocop-md (2.0.4) sha256=0d076b6b5e99dea2ddc928c4bd702497decb9a8400da7808091e02ebcafcfb93 + rubocop-minitest (0.40.0) sha256=353c698199115f12151144cf0b5a96f69bb9d77b660cf6536df2c4250c672a9d rubocop-on-rbs (2.0.0) sha256=ce74d1b3d5daead19f4b611623656c185821dfc9aed9c7079bb1e5d7d7c464be rubocop-packaging (0.6.0) sha256=fb92bd0fb48e6f8cdb1648d2249b0cd51c2497dcc87340132d22f01edbf558a7 rubocop-performance (1.26.1) sha256=cd19b936ff196df85829d264b522fd4f98b6c89ad271fa52744a8c11b8f71834 rubocop-rake (0.7.1) sha256=3797f2b6810c3e9df7376c26d5f44f3475eda59eb1adc38e6f62ecf027cbae4d rubocop-rspec (3.10.2) sha256=0b3e2ecc592cd10ecbf0095bb58d1e357905276e069643523cc19eb7495f65e2 + rubocop-rspec-extra (0.3.0) sha256=ee4b6484d0332a0d23c4a465eeb607e41888eb3d4ed479f850b9f5212514f787 + rubocop-rspec_rails (2.32.0) sha256=4a0d641c72f6ebb957534f539d9d0a62c47abd8ce0d0aeee1ef4701e892a9100 rubocop-ruby3_2 (3.0.7) sha256=f53dd6d286fb05186214fc6ec116783e7f837030918e8931c05de773e98f8466 rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 - ruby-merge (7.1.0) ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 - rust-merge (7.1.0) service_actor (3.9.4) sha256=e63b523630b9a7e62959b2a90113b08d2565b5de9c148557b281ef847c9539ce silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 - simplecov (0.22.0) sha256=fe2622c7834ff23b98066bb0a854284b2729a569ac659f82621fc22ef36213a5 - simplecov-cobertura (3.2.0) sha256=70d702658677fcb20e5aceb6915ccf8bc62ff2ccd38b62b3ad5c9db5c0888740 + simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 + simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 - simplecov-html (0.13.2) sha256=bd0b8e54e7c2d7685927e8d6286466359b6f16b18cb0df47b508e8d73c777246 - simplecov-lcov (0.9.0) sha256=7a77a31e200a595ed4b0249493056efd0c920601f53d2ef135ca34ee796346cd simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc - simplecov_json_formatter (0.1.4) sha256=529418fbe8de1713ac2b2d612aa3daa56d316975d307244399fa4838c601b428 - smorg-rb (7.1.0) - sorbet-runtime (0.6.13342) sha256=dbeb9892597f593ed2b29e38018912787f6c4e0c4b736d8af0d6bd3c63bde3c3 + simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed + sorbet-runtime (0.6.13347) sha256=54e7221d9f4b63f58aec79f3043752a9ba7810347c6ae0d903531591cc2d5f01 standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b standard-performance (1.9.0) sha256=49483d31be448292951d80e5e67cdcb576c2502103c7b40aec6f1b6e9c88e3f2 + standard-rspec (0.5.0) sha256=64d396524a65af47f5331b423d8cdd313e0267401647bb7892489ca89dad2973 standard-rubocop-lts (2.0.10) sha256=89708a505b7d8b24d2ac399a7520fcb9e764abc2ecb4289b631b5fe0e3b76617 stone_checksums (1.0.6) sha256=c775f830513d6c6ab26e31d1a5fbecd4c4e39002663d4d9f8fa96e97990b5298 stringio (3.2.0) sha256=c37cb2e58b4ffbd33fe5cd948c05934af997b36e0b6ca6fdf43afa234cf222e1 @@ -816,19 +577,15 @@ CHECKSUMS timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.4) sha256=33b926958f504525bba3ed511ab66fbcbf8ef30390815e931436b30f27ffcad0 - toml (0.3.0) sha256=0a91d0f76a9036e84e44f95693b12f58d358c1df3ac8e3b5271f2056ecc6e4b9 - toml-merge (7.1.0) - toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 - typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 + webrick (1.9.2) sha256=beb4a15fc474defed24a3bda4ffd88a490d517c9e4e6118c3edce59e45864131 yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 - yaml-merge (7.1.0) yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd @@ -836,7 +593,6 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 - zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH diff --git a/gems/ast-crispr-markdown-markly/README.md b/gems/ast-crispr-markdown-markly/README.md index 6e7bc7285..6714b2fe9 100644 --- a/gems/ast-crispr-markdown-markly/README.md +++ b/gems/ast-crispr-markdown-markly/README.md @@ -36,7 +36,7 @@ I've summarized my thoughts in [this blog post](https://dev.to/galtzo/hostile-ta | Tokens to Remember | [![Gem name][⛳️name-img]][⛳️gem-name] [![Gem namespace][⛳️namespace-img]][⛳️gem-namespace] | |-------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | Works with MRI Ruby 4 | [![Ruby current Compat][💎ruby-c-i]][🚎11-c-wf]| -| Support & Community | [![Join Me on Daily.dev's RubyFriends][✉️ruby-friends-img]][✉️ruby-friends] [![Live Chat on Discord][✉️discord-invite-img-ftb]][✉️discord-invite] [![Get help from me on Upwork][👨🏼‍🏫expsup-upwork-img]][👨🏼‍🏫expsup-upwork] [![Get help from me on Codementor][👨🏼‍🏫expsup-codementor-img]][👨🏼‍🏫expsup-codementor] | +| Support & Community | [![Join Me on Daily.dev's RubyFriends][✉️ruby-friends-img]][✉️ruby-friends] [![Get help from RubyForum][✉️ruby-forum-img]][✉️ruby-forum] [![Live Chat on Discord][✉️discord-invite-img-ftb]][✉️discord-invite] [![Get help from me on Upwork][👨🏼‍🏫expsup-upwork-img]][👨🏼‍🏫expsup-upwork] [![Get help from me on Codementor][👨🏼‍🏫expsup-codementor-img]][👨🏼‍🏫expsup-codementor] | | Source | [![Source on GitLab.com][📜src-gl-img]][📜src-gl] [![Source on CodeBerg.org][📜src-cb-img]][📜src-cb] [![Source on Github.com][📜src-gh-img]][📜src-gh] [![The best SHA: dQw4w9WgXcQ!][🧮kloc-img]][🧮kloc] | | Documentation | [![Current release on RubyDoc.info][📜docs-cr-rd-img]][🚎yard-current] [![YARD on Galtzo.com][📜docs-head-rd-img]][🚎yard-head] [![Maintainer Blog][🚂maint-blog-img]][🚂maint-blog] [![GitLab Wiki][📜gl-wiki-img]][📜gl-wiki] [![GitHub Wiki][📜gh-wiki-img]][📜gh-wiki] | | Compliance | [![License: AGPL-3.0-only OR PolyForm-Small-Business-1.0.0][📄license-img]][📄license] [![Apache license compatibility: Category X][📄license-compat-img]][📄license-compat] [![📄ilo-declaration-img]][📄ilo-declaration] [![Security Policy][🔐security-img]][🔐security] [![Contributor Covenant 2.1][🪇conduct-img]][🪇conduct] [![SemVer 2.0.0][📌semver-img]][📌semver] | @@ -202,6 +202,8 @@ If none of the available licenses suit your use case, please [contact us](mailto [✉️discord-invite-img-ftb]: https://img.shields.io/discord/1373797679469170758?style=for-the-badge&logo=discord [✉️ruby-friends-img]: https://img.shields.io/badge/daily.dev-%F0%9F%92%8E_Ruby_Friends-0A0A0A?style=for-the-badge&logo=dailydotdev&logoColor=white [✉️ruby-friends]: https://app.daily.dev/squads/rubyfriends +[✉️ruby-forum-img]: https://img.shields.io/badge/RubyForum-Help-CC342D?style=for-the-badge&logo=ruby&logoColor=white +[✉️ruby-forum]: https://www.rubyforum.org/c/help/8 [✇bundle-group-pattern]: https://gist.github.com/pboling/4564780 [⛳️gem-namespace]: https://github.com/structuredmerge/structuredmerge-ruby/tree/main/gems/ast-crispr-markdown-markly [⛳️namespace-img]: https://img.shields.io/badge/namespace-Ast::Crispr::Markdown::Markly-3C2D2D.svg?style=square&logo=ruby&logoColor=white diff --git a/gems/ast-crispr-markdown-markly/gemfiles/modular/cgi/r4/v0.5.gemfile b/gems/ast-crispr-markdown-markly/gemfiles/modular/cgi/r4/v0.5.gemfile new file mode 100644 index 000000000..17ad97260 --- /dev/null +++ b/gems/ast-crispr-markdown-markly/gemfiles/modular/cgi/r4/v0.5.gemfile @@ -0,0 +1 @@ +gem 'cgi', '~> 0.5' diff --git a/gems/ast-crispr-markdown-markly/gemfiles/modular/cgi/vHEAD.gemfile b/gems/ast-crispr-markdown-markly/gemfiles/modular/cgi/vHEAD.gemfile new file mode 100644 index 000000000..650fbf033 --- /dev/null +++ b/gems/ast-crispr-markdown-markly/gemfiles/modular/cgi/vHEAD.gemfile @@ -0,0 +1 @@ +gem 'cgi', '>= 0.5' diff --git a/gems/ast-crispr-markdown-markly/gemfiles/modular/coverage.gemfile b/gems/ast-crispr-markdown-markly/gemfiles/modular/coverage.gemfile index f96d50954..b93014b6b 100644 --- a/gems/ast-crispr-markdown-markly/gemfiles/modular/coverage.gemfile +++ b/gems/ast-crispr-markdown-markly/gemfiles/modular/coverage.gemfile @@ -7,7 +7,7 @@ if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? # Coverage (remote/released) platform :mri do - gem 'kettle-soup-cover', '~> 1.0', '>= 1.1.3', require: false + gem 'kettle-soup-cover', '~> 3.0', '>= 3.0.3', require: false end else eval_gemfile 'coverage_local.gemfile' diff --git a/gems/ast-crispr-markdown-markly/gemfiles/modular/coverage_local.gemfile b/gems/ast-crispr-markdown-markly/gemfiles/modular/coverage_local.gemfile index 41c5f3b55..30b548eee 100644 --- a/gems/ast-crispr-markdown-markly/gemfiles/modular/coverage_local.gemfile +++ b/gems/ast-crispr-markdown-markly/gemfiles/modular/coverage_local.gemfile @@ -3,13 +3,33 @@ # Local path overrides for development. # Loaded by the associated non-local gemfile when KETTLE_DEV_DEV != "false". -require 'nomono/bundler' unless defined?(Nomono) +# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. +# Bundler records that dependency during Gemfile evaluation, but it does not +# activate that exact version before the immediate `require "nomono/bundler"`. +# If multiple compatible nomono versions are installed, RubyGems may activate +# the newest installed version while Gemfile.lock pins an older compatible one; +# Bundler then aborts with "already activated nomono X, but your Gemfile +# requires nomono Y". Prefer the locked compatible version when present, then +# activate it explicitly before requiring the Bundler DSL extension used below. +nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] +nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) +if File.file?(nomono_lockfile) + nomono_locked_spec = Bundler::LockfileParser + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } + nomono_locked = nomono_locked_spec && + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked +end +Kernel.send(:gem, 'nomono', *nomono_activation_requirements) +require 'nomono/bundler' local_gems = %w[kettle-dev kettle-test kettle-soup-cover kettle-drift] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) local_gems_to_eval = local_gems - %w[ast-crispr-markdown-markly] - declared_gems -# export KETTLE_DEV_DEV=/path/to/kettle-rb +# export KETTLE_DEV_DEV=/path/to/my platform :mri do eval_nomono_gems( gems: local_gems_to_eval, diff --git a/gems/ast-crispr-markdown-markly/gemfiles/modular/documentation.gemfile b/gems/ast-crispr-markdown-markly/gemfiles/modular/documentation.gemfile index dff5cc108..9d4535f12 100644 --- a/gems/ast-crispr-markdown-markly/gemfiles/modular/documentation.gemfile +++ b/gems/ast-crispr-markdown-markly/gemfiles/modular/documentation.gemfile @@ -7,17 +7,17 @@ # # Documentation -gem 'kramdown', '~> 2.5', '>= 2.5.1', require: false # Ruby >= 2.5 +gem 'kramdown', '~> 2.5', '>= 2.5.2', require: false # Ruby >= 2.5 gem 'kramdown-parser-gfm', '~> 1.1', require: false # Ruby >= 2.3 -gem 'yaml-converter', '~> 0.1', require: false # Ruby >= 3.2 -gem 'yard', '~> 0.9', '>= 0.9.44', require: false +gem 'yaml-converter', '~> 0.2', '>= 0.2.3', require: false # Ruby >= 3.2 +gem 'yard', '~> 0.9', '>= 0.9.45', require: false gem 'yard-junk', '~> 0.1', '>= 0.1.0', require: false # Ruby >= 3.1 gem 'yard-relative_markdown_links', '~> 0.6', require: false if ENV.fetch('GALTZO_FLOSS_DEV', 'false').casecmp('false').zero? - gem 'yard-fence', '~> 0.9', '>= 0.9.1', require: false # Ruby >= 3.2 - gem 'yard-timekeeper', '~> 0.1', require: false - gem 'yard-yaml', '~> 0.1', '>= 0.1.2', require: false + gem 'yard-fence', '~> 0.9', '>= 0.9.6', require: false # Ruby >= 3.2 + gem 'yard-timekeeper', '~> 0.2', '>= 0.2.4', require: false + gem 'yard-yaml', '~> 0.2', '>= 0.2.3', require: false else eval_gemfile 'documentation_local.gemfile' end diff --git a/gems/ast-crispr-markdown-markly/gemfiles/modular/documentation_local.gemfile b/gems/ast-crispr-markdown-markly/gemfiles/modular/documentation_local.gemfile index 4d4c2bd95..faff9cff7 100644 --- a/gems/ast-crispr-markdown-markly/gemfiles/modular/documentation_local.gemfile +++ b/gems/ast-crispr-markdown-markly/gemfiles/modular/documentation_local.gemfile @@ -3,13 +3,35 @@ # Local path overrides for development. # Loaded by the associated non-local gemfile when GALTZO_FLOSS_DEV != "false". -require 'nomono/bundler' unless defined?(Nomono) +# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. +# Bundler records that dependency during Gemfile evaluation, but it does not +# activate that exact version before the immediate `require "nomono/bundler"`. +# If multiple compatible nomono versions are installed, RubyGems may activate +# the newest installed version while Gemfile.lock pins an older compatible one; +# Bundler then aborts with "already activated nomono X, but your Gemfile +# requires nomono Y". Prefer the locked compatible version when present, then +# activate it explicitly before requiring the Bundler DSL extension used below. +nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] +nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) +if File.file?(nomono_lockfile) + nomono_locked_spec = Bundler::LockfileParser + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } + nomono_locked = nomono_locked_spec && + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked +end +Kernel.send(:gem, 'nomono', *nomono_activation_requirements) +require 'nomono/bundler' local_gems = %w[yard-fence yard-timekeeper yard-yaml] +declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) +local_gems_to_eval = local_gems - %w[ast-crispr-markdown-markly] - declared_gems # export GALTZO_FLOSS_DEV=/path/to/galtzo-floss eval_nomono_gems( - gems: local_gems, + gems: local_gems_to_eval, prefix: 'GALTZO_FLOSS', path_env: 'GALTZO_FLOSS_DEV', vendored_gems_env: 'GALTZO_FLOSS_VENDORED_GEMS', diff --git a/gems/ast-crispr-markdown-markly/gemfiles/modular/erb/r3/v5.0.gemfile b/gems/ast-crispr-markdown-markly/gemfiles/modular/erb/r3/v5.0.gemfile index 0e3bf1b97..ec7ff451f 100644 --- a/gems/ast-crispr-markdown-markly/gemfiles/modular/erb/r3/v5.0.gemfile +++ b/gems/ast-crispr-markdown-markly/gemfiles/modular/erb/r3/v5.0.gemfile @@ -1 +1 @@ -gem 'erb', '~> 6.0', '>= 6.0.4' # ruby >= 3.2.0 +gem 'erb', '~> 6.0', '>= 6.0.6' # ruby >= 3.2.0 diff --git a/gems/ast-crispr-markdown-markly/gemfiles/modular/erb/r4/v5.0.gemfile b/gems/ast-crispr-markdown-markly/gemfiles/modular/erb/r4/v5.0.gemfile index 0e3bf1b97..ec7ff451f 100644 --- a/gems/ast-crispr-markdown-markly/gemfiles/modular/erb/r4/v5.0.gemfile +++ b/gems/ast-crispr-markdown-markly/gemfiles/modular/erb/r4/v5.0.gemfile @@ -1 +1 @@ -gem 'erb', '~> 6.0', '>= 6.0.4' # ruby >= 3.2.0 +gem 'erb', '~> 6.0', '>= 6.0.6' # ruby >= 3.2.0 diff --git a/gems/ast-crispr-markdown-markly/gemfiles/modular/json/truffleruby_22_3.gemfile b/gems/ast-crispr-markdown-markly/gemfiles/modular/json/truffleruby_22_3.gemfile new file mode 100644 index 000000000..9b2f8d96a --- /dev/null +++ b/gems/ast-crispr-markdown-markly/gemfiles/modular/json/truffleruby_22_3.gemfile @@ -0,0 +1,6 @@ +# frozen_string_literal: true + +if RUBY_ENGINE == 'truffleruby' && RUBY_ENGINE_VERSION.start_with?('22.3') + # TruffleRuby 22.3 ships the json default gem from its emulated MRI Ruby. + gem 'json', '= 2.5.1' +end diff --git a/gems/ast-crispr-markdown-markly/gemfiles/modular/json/truffleruby_23_0.gemfile b/gems/ast-crispr-markdown-markly/gemfiles/modular/json/truffleruby_23_0.gemfile new file mode 100644 index 000000000..d787a5ef4 --- /dev/null +++ b/gems/ast-crispr-markdown-markly/gemfiles/modular/json/truffleruby_23_0.gemfile @@ -0,0 +1,6 @@ +# frozen_string_literal: true + +if RUBY_ENGINE == 'truffleruby' && RUBY_ENGINE_VERSION.start_with?('23.0') + # TruffleRuby 23.0 ships the json default gem from its emulated MRI Ruby. + gem 'json', '= 2.6.1' +end diff --git a/gems/ast-crispr-markdown-markly/gemfiles/modular/json/truffleruby_23_1.gemfile b/gems/ast-crispr-markdown-markly/gemfiles/modular/json/truffleruby_23_1.gemfile new file mode 100644 index 000000000..d78486b0e --- /dev/null +++ b/gems/ast-crispr-markdown-markly/gemfiles/modular/json/truffleruby_23_1.gemfile @@ -0,0 +1,6 @@ +# frozen_string_literal: true + +if RUBY_ENGINE == 'truffleruby' && RUBY_ENGINE_VERSION.start_with?('23.1') + # TruffleRuby 23.1 ships the json default gem from its emulated MRI Ruby. + gem 'json', '= 2.6.3' +end diff --git a/gems/ast-crispr-markdown-markly/gemfiles/modular/mutex_m/r2/v0.3.gemfile b/gems/ast-crispr-markdown-markly/gemfiles/modular/mutex_m/r2/v0.3.gemfile index e27f1bbae..42e9d9bd4 100644 --- a/gems/ast-crispr-markdown-markly/gemfiles/modular/mutex_m/r2/v0.3.gemfile +++ b/gems/ast-crispr-markdown-markly/gemfiles/modular/mutex_m/r2/v0.3.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 -gem 'mutex_m', '~> 0.2' +gem "mutex_m", "~> 0.2" diff --git a/gems/ast-crispr-markdown-markly/gemfiles/modular/mutex_m/r3/v0.3.gemfile b/gems/ast-crispr-markdown-markly/gemfiles/modular/mutex_m/r3/v0.3.gemfile index e27f1bbae..42e9d9bd4 100644 --- a/gems/ast-crispr-markdown-markly/gemfiles/modular/mutex_m/r3/v0.3.gemfile +++ b/gems/ast-crispr-markdown-markly/gemfiles/modular/mutex_m/r3/v0.3.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 -gem 'mutex_m', '~> 0.2' +gem "mutex_m", "~> 0.2" diff --git a/gems/ast-crispr-markdown-markly/gemfiles/modular/mutex_m/r4/v0.3.gemfile b/gems/ast-crispr-markdown-markly/gemfiles/modular/mutex_m/r4/v0.3.gemfile index e27f1bbae..42e9d9bd4 100644 --- a/gems/ast-crispr-markdown-markly/gemfiles/modular/mutex_m/r4/v0.3.gemfile +++ b/gems/ast-crispr-markdown-markly/gemfiles/modular/mutex_m/r4/v0.3.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 -gem 'mutex_m', '~> 0.2' +gem "mutex_m", "~> 0.2" diff --git a/gems/ast-crispr-markdown-markly/gemfiles/modular/mutex_m/vHEAD.gemfile b/gems/ast-crispr-markdown-markly/gemfiles/modular/mutex_m/vHEAD.gemfile index 9dac2f6cb..8af3b6fca 100644 --- a/gems/ast-crispr-markdown-markly/gemfiles/modular/mutex_m/vHEAD.gemfile +++ b/gems/ast-crispr-markdown-markly/gemfiles/modular/mutex_m/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 (dependency of omniauth) -gem 'mutex_m', github: 'ruby/mutex_m', branch: 'master' +gem "mutex_m", github: "ruby/mutex_m", branch: "master" diff --git a/gems/ast-crispr-markdown-markly/gemfiles/modular/optional.gemfile b/gems/ast-crispr-markdown-markly/gemfiles/modular/optional.gemfile index 942b2a369..80bc45196 100644 --- a/gems/ast-crispr-markdown-markly/gemfiles/modular/optional.gemfile +++ b/gems/ast-crispr-markdown-markly/gemfiles/modular/optional.gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -# To retain during ast-crispr-markdown-markly templating: +# To retain during kettle-jem templating: # kettle-jem:freeze # # ... your code # kettle-jem:unfreeze @@ -9,9 +9,8 @@ # Optional dependencies are not depended on directly, but may be used if present. # Required for curated binstubs generated by kettle-jem install -gem 'rbs', '>= 3.0', require: false # ruby >= 3.1 -gem 'stone_checksums', '~> 1.0', '>= 1.0.3', require: false # ruby >= 2.2 +gem "rbs", ">= 3.0", require: false # ruby >= 3.1 # Required for kettle-pre-release # URL parsing with Unicode support (falls back to URI if not available) -gem 'addressable', '>= 2.8', '< 3' # ruby >= 2.2 +gem "addressable", ">= 2.8", "< 3" # ruby >= 2.2 diff --git a/gems/ast-crispr-markdown-markly/gemfiles/modular/rspec.gemfile b/gems/ast-crispr-markdown-markly/gemfiles/modular/rspec.gemfile index 2af210a41..72fdf8b7f 100644 --- a/gems/ast-crispr-markdown-markly/gemfiles/modular/rspec.gemfile +++ b/gems/ast-crispr-markdown-markly/gemfiles/modular/rspec.gemfile @@ -1,4 +1,4 @@ -gem 'rspec_junit_formatter', - github: 'pboling/rspec_junit_formatter', - branch: 'main', - ref: '9e6bcaaedd49477b62878ed568dc4ada5cc7cb5e' +gem "rspec_junit_formatter", + github: "pboling/rspec_junit_formatter", + branch: "main", + ref: "9e6bcaaedd49477b62878ed568dc4ada5cc7cb5e" diff --git a/gems/ast-crispr-markdown-markly/gemfiles/modular/runtime_heads.gemfile b/gems/ast-crispr-markdown-markly/gemfiles/modular/runtime_heads.gemfile index 00205cc5f..02f134c7f 100644 --- a/gems/ast-crispr-markdown-markly/gemfiles/modular/runtime_heads.gemfile +++ b/gems/ast-crispr-markdown-markly/gemfiles/modular/runtime_heads.gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -# To retain during ast-crispr-markdown-markly templating: +# To retain during kettle-jem templating: # kettle-jem:freeze # # ... your code # kettle-jem:unfreeze @@ -8,7 +8,4 @@ # Test against HEAD of runtime dependencies so we can proactively file bugs -# Ruby >= 2.2 -gem 'version_gem', github: 'ruby-oauth/version_gem', branch: 'main' - -eval_gemfile('x_std_libs/vHEAD.gemfile') +eval_gemfile("x_std_libs/vHEAD.gemfile") diff --git a/gems/ast-crispr-markdown-markly/gemfiles/modular/stringio/r2/v3.0.gemfile b/gems/ast-crispr-markdown-markly/gemfiles/modular/stringio/r2/v3.0.gemfile index 3616f4e3a..e85bb18ee 100644 --- a/gems/ast-crispr-markdown-markly/gemfiles/modular/stringio/r2/v3.0.gemfile +++ b/gems/ast-crispr-markdown-markly/gemfiles/modular/stringio/r2/v3.0.gemfile @@ -2,4 +2,4 @@ # NOT SEMVER # Version 3.0.7 dropped support for Ruby <= 2.7 # Version 3.0.0 dropped support for Ruby <= 2.4 -gem 'stringio', '>= 3.0' +gem "stringio", ">= 3.0" diff --git a/gems/ast-crispr-markdown-markly/gemfiles/modular/stringio/r3/v3.0.gemfile b/gems/ast-crispr-markdown-markly/gemfiles/modular/stringio/r3/v3.0.gemfile index 3616f4e3a..e85bb18ee 100644 --- a/gems/ast-crispr-markdown-markly/gemfiles/modular/stringio/r3/v3.0.gemfile +++ b/gems/ast-crispr-markdown-markly/gemfiles/modular/stringio/r3/v3.0.gemfile @@ -2,4 +2,4 @@ # NOT SEMVER # Version 3.0.7 dropped support for Ruby <= 2.7 # Version 3.0.0 dropped support for Ruby <= 2.4 -gem 'stringio', '>= 3.0' +gem "stringio", ">= 3.0" diff --git a/gems/ast-crispr-markdown-markly/gemfiles/modular/stringio/r4/v3.0.gemfile b/gems/ast-crispr-markdown-markly/gemfiles/modular/stringio/r4/v3.0.gemfile index 3616f4e3a..e85bb18ee 100644 --- a/gems/ast-crispr-markdown-markly/gemfiles/modular/stringio/r4/v3.0.gemfile +++ b/gems/ast-crispr-markdown-markly/gemfiles/modular/stringio/r4/v3.0.gemfile @@ -2,4 +2,4 @@ # NOT SEMVER # Version 3.0.7 dropped support for Ruby <= 2.7 # Version 3.0.0 dropped support for Ruby <= 2.4 -gem 'stringio', '>= 3.0' +gem "stringio", ">= 3.0" diff --git a/gems/ast-crispr-markdown-markly/gemfiles/modular/stringio/vHEAD.gemfile b/gems/ast-crispr-markdown-markly/gemfiles/modular/stringio/vHEAD.gemfile index 78f5f5d8a..5f2a74126 100644 --- a/gems/ast-crispr-markdown-markly/gemfiles/modular/stringio/vHEAD.gemfile +++ b/gems/ast-crispr-markdown-markly/gemfiles/modular/stringio/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 (dependency of omniauth) -gem 'stringio', github: 'ruby/stringio', branch: 'master' +gem "stringio", github: "ruby/stringio", branch: "master" diff --git a/gems/ast-crispr-markdown-markly/gemfiles/modular/style.gemfile b/gems/ast-crispr-markdown-markly/gemfiles/modular/style.gemfile index 58fdd6d59..35de4dcd6 100644 --- a/gems/ast-crispr-markdown-markly/gemfiles/modular/style.gemfile +++ b/gems/ast-crispr-markdown-markly/gemfiles/modular/style.gemfile @@ -1,28 +1,31 @@ # frozen_string_literal: true -# To retain during ast-crispr-markdown-markly templating: +# To retain during kettle-jem templating: # kettle-jem:freeze # # ... your code # kettle-jem:unfreeze # -# We run rubocop on the latest version of Ruby, -# but in support of the oldest supported version of Ruby +# Style tasks run on the latest Ruby; RuboCop-LTS selects the compatibility +# rules for the configured Ruby floor independently from task dependency floors. -gem 'reek', '~> 6.5' +gem "reek", "~> 6.5", ">= 6.5.0" platform :mri do - gem 'rubocop-on-rbs', '~> 2.0' # ruby >= 3.2.0 + gem "appraisal2-rubocop", "~> 1.0", ">= 1.0.0", require: false + gem "rubocop-gradual", "~> 0.4", ">= 0.4.0" + gem "rubocop-minitest", "~> 0.40", ">= 0.40.0" + gem "rubocop-on-rbs", "~> 2.0", ">= 2.0.0" # ruby >= 3.2.0 # gem "rubocop", "~> 1.73", ">= 1.73.2" # constrained by standard - gem 'rubocop-packaging', '~> 0.6', '>= 0.6.0' - gem 'standard', '>= 1.50' + gem "rubocop-packaging", "~> 0.6", ">= 0.6.0" + gem "standard", "~> 1.56", ">= 1.56.0" - if ENV.fetch('RUBOCOP_LTS_LOCAL', 'false').casecmp('false').zero? - gem 'rubocop-lts', '~> 24.1.0' - # "rubocop-lts-rspec" can't add here until other gems are updated. - gem 'rubocop-rspec', '~> 3.6' - gem 'rubocop-ruby3_2', '~> 3.0.0' + if ENV.fetch("RUBOCOP_LTS_LOCAL", "false").casecmp("false").zero? + declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) + gem "rubocop-lts", "~> 24.2", ">= 24.2.1" unless declared_gems.include?("rubocop-lts") + gem "rubocop-lts-rspec", "~> 1.0", ">= 1.0.5" unless declared_gems.include?("rubocop-lts-rspec") + gem "rubocop-ruby3_2", "~> 3.0", ">= 3.0.6" unless declared_gems.include?("rubocop-ruby3_2") else - eval_gemfile('style_local.gemfile') + eval_gemfile("style_local.gemfile") end end diff --git a/gems/ast-crispr-markdown-markly/gemfiles/modular/style_local.gemfile b/gems/ast-crispr-markdown-markly/gemfiles/modular/style_local.gemfile index ce75bbe21..ef961a7cf 100644 --- a/gems/ast-crispr-markdown-markly/gemfiles/modular/style_local.gemfile +++ b/gems/ast-crispr-markdown-markly/gemfiles/modular/style_local.gemfile @@ -1,24 +1,48 @@ # frozen_string_literal: true -# We run rubocop on the latest version of Ruby, -# but in support of the oldest supported version of Ruby +# Style tasks run on the latest Ruby; RuboCop-LTS selects the compatibility +# rules for the configured Ruby floor independently from task dependency floors. # Local path overrides for development. # Loaded by the associated non-local gemfile when RUBOCOP_LTS_LOCAL != "false". -require 'nomono/bundler' unless defined?(Nomono) +# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. +# Bundler records that dependency during Gemfile evaluation, but it does not +# activate that exact version before the immediate `require "nomono/bundler"`. +# If multiple compatible nomono versions are installed, RubyGems may activate +# the newest installed version while Gemfile.lock pins an older compatible one; +# Bundler then aborts with "already activated nomono X, but your Gemfile +# requires nomono Y". Prefer the locked compatible version when present, then +# activate it explicitly before requiring the Bundler DSL extension used below. +nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] +nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) +if File.file?(nomono_lockfile) + nomono_locked_spec = Bundler::LockfileParser + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == "nomono" } + nomono_locked = nomono_locked_spec && + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + if nomono_locked + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] + end +end +Kernel.send(:gem, "nomono", *nomono_activation_requirements) +require "nomono/bundler" local_gems = %w[rubocop-lts rubocop-lts-rspec rubocop-ruby3_2 standard-rubocop-lts] +declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) +local_gems_to_eval = local_gems - %w[ast-crispr-markdown-markly] - declared_gems # export VENDORED_GEMS=rubocop-lts,rubocop-lts-rspec,rubocop-ruby3_2,standard-rubocop-lts platform :mri do eval_nomono_gems( - gems: local_gems, - prefix: 'RUBOCOP_LTS', - path_env: 'RUBOCOP_LTS_LOCAL', - vendored_gems_env: 'VENDORED_GEMS', - vendor_gem_dir_env: 'VENDOR_GEM_DIR', - debug_env: 'RUBOCOP_LTS_DEBUG', - root: %w[src rubocop-lts] + gems: local_gems_to_eval, + prefix: "RUBOCOP_LTS", + path_env: "RUBOCOP_LTS_LOCAL", + vendored_gems_env: "VENDORED_GEMS", + vendor_gem_dir_env: "VENDOR_GEM_DIR", + debug_env: "RUBOCOP_LTS_DEBUG", + root: ["src", "rubocop-lts"] ) end diff --git a/gems/ast-crispr-markdown-markly/gemfiles/modular/templating.gemfile b/gems/ast-crispr-markdown-markly/gemfiles/modular/templating.gemfile index 2ddc9433f..47138ffbb 100644 --- a/gems/ast-crispr-markdown-markly/gemfiles/modular/templating.gemfile +++ b/gems/ast-crispr-markdown-markly/gemfiles/modular/templating.gemfile @@ -1,24 +1,24 @@ # frozen_string_literal: true -structuredmerge_remote = ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false').zero? -kettle_remote = ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? +structuredmerge_remote = ENV.fetch("STRUCTUREDMERGE_DEV", "false").casecmp("false").zero? +kettle_remote = ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false").zero? if structuredmerge_remote # Parser dependencies for released installs. - gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' + gem "tree_sitter_language_pack", "~> 1.13", ">= 1.13.3" # Merge recipes for released installs. - gem 'kettle-jem', '>= 7.0' + gem "kettle-jem", ">= 7.0" end if kettle_remote # Template/plugin checks for released installs. - gem 'kettle-drift', '~> 1.0', '>= 1.0.5', require: false + gem "kettle-drift", "~> 1.0", ">= 1.0.6", require: false end # Set STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local development with path-based dependencies. # When false (default / CI), released kettle-jem brings merge gems and parser dependencies. # Local path overrides bring the same dependencies from sibling gemspecs. # -# Set KETTLE_DEV_DEV=/path/to/kettle-rb for local development with Kettle plugin gems. +# Set KETTLE_DEV_DEV=/path/to/my for local development with Kettle plugin gems. # When false (default / CI), released Kettle plugin gems are used. -eval_gemfile 'templating_local.gemfile' unless structuredmerge_remote && kettle_remote +eval_gemfile "templating_local.gemfile" unless structuredmerge_remote && kettle_remote diff --git a/gems/ast-crispr-markdown-markly/gemfiles/modular/templating_local.gemfile b/gems/ast-crispr-markdown-markly/gemfiles/modular/templating_local.gemfile index 9c7e3c58a..fee33c6c0 100644 --- a/gems/ast-crispr-markdown-markly/gemfiles/modular/templating_local.gemfile +++ b/gems/ast-crispr-markdown-markly/gemfiles/modular/templating_local.gemfile @@ -4,7 +4,29 @@ # Loaded by the associated non-local gemfile when STRUCTUREDMERGE_DEV or KETTLE_DEV_DEV # is not "false". -require 'nomono/bundler' unless defined?(Nomono) +# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. +# Bundler records that dependency during Gemfile evaluation, but it does not +# activate that exact version before the immediate `require "nomono/bundler"`. +# If multiple compatible nomono versions are installed, RubyGems may activate +# the newest installed version while Gemfile.lock pins an older compatible one; +# Bundler then aborts with "already activated nomono X, but your Gemfile +# requires nomono Y". Prefer the locked compatible version when present, then +# activate it explicitly before requiring the Bundler DSL extension used below. +nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] +nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) +if File.file?(nomono_lockfile) + nomono_locked_spec = Bundler::LockfileParser + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == "nomono" } + nomono_locked = nomono_locked_spec && + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + if nomono_locked + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] + end +end +Kernel.send(:gem, "nomono", *nomono_activation_requirements) +require "nomono/bundler" structuredmerge_local_gems = %w[ tree_haver @@ -47,25 +69,25 @@ structuredmerge_local_gems_to_eval = structuredmerge_local_gems - %w[ast-crispr- kettle_dev_local_gems_to_eval = kettle_dev_local_gems - %w[ast-crispr-markdown-markly] - declared_gems platform :mri do - if ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false') != 0 + if ENV.fetch("STRUCTUREDMERGE_DEV", "false").casecmp("false") != 0 eval_nomono_gems( gems: structuredmerge_local_gems_to_eval, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - vendored_gems_env: 'VENDORED_GEMS', - vendor_gem_dir_env: 'VENDOR_GEM_DIR', - debug_env: 'STRUCTUREDMERGE_DEBUG' + prefix: "STRUCTUREDMERGE", + path_env: "STRUCTUREDMERGE_DEV", + vendored_gems_env: "VENDORED_GEMS", + vendor_gem_dir_env: "VENDOR_GEM_DIR", + debug_env: "STRUCTUREDMERGE_DEBUG" ) end - if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false') != 0 + if ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false") != 0 eval_nomono_gems( gems: kettle_dev_local_gems_to_eval, - prefix: 'KETTLE_DEV', - path_env: 'KETTLE_DEV_DEV', - vendored_gems_env: 'VENDORED_GEMS', - vendor_gem_dir_env: 'VENDOR_GEM_DIR', - debug_env: 'KETTLE_DEV_DEBUG' + prefix: "KETTLE_DEV", + path_env: "KETTLE_DEV_DEV", + vendored_gems_env: "VENDORED_GEMS", + vendor_gem_dir_env: "VENDOR_GEM_DIR", + debug_env: "KETTLE_DEV_DEBUG" ) end end diff --git a/gems/ast-crispr-markdown-markly/gemfiles/modular/webrick/r4/v1.9.gemfile b/gems/ast-crispr-markdown-markly/gemfiles/modular/webrick/r4/v1.9.gemfile new file mode 100644 index 000000000..eaab4a473 --- /dev/null +++ b/gems/ast-crispr-markdown-markly/gemfiles/modular/webrick/r4/v1.9.gemfile @@ -0,0 +1 @@ +gem "webrick", "~> 1.9" diff --git a/gems/ast-crispr-markdown-markly/gemfiles/modular/webrick/vHEAD.gemfile b/gems/ast-crispr-markdown-markly/gemfiles/modular/webrick/vHEAD.gemfile new file mode 100644 index 000000000..8a789b634 --- /dev/null +++ b/gems/ast-crispr-markdown-markly/gemfiles/modular/webrick/vHEAD.gemfile @@ -0,0 +1 @@ +gem "webrick", ">= 1.9" diff --git a/gems/ast-crispr-markdown-markly/gemfiles/modular/x_std_libs.gemfile b/gems/ast-crispr-markdown-markly/gemfiles/modular/x_std_libs.gemfile index b1f43c097..77aad43f2 100644 --- a/gems/ast-crispr-markdown-markly/gemfiles/modular/x_std_libs.gemfile +++ b/gems/ast-crispr-markdown-markly/gemfiles/modular/x_std_libs.gemfile @@ -1,12 +1,12 @@ ### Std Lib Extracted Gems ruby_version = Gem::Version.new(RUBY_VERSION) -if ruby_version >= Gem::Version.new('4.0') - eval_gemfile 'x_std_libs/r4/libs.gemfile' -elsif ruby_version >= Gem::Version.new('3.2') - eval_gemfile 'x_std_libs/r3/libs.gemfile' -elsif ruby_version >= Gem::Version.new('3.1') - eval_gemfile 'x_std_libs/r3.1/libs.gemfile' +if ruby_version >= Gem::Version.new("4.0") + eval_gemfile "x_std_libs/r4/libs.gemfile" +elsif ruby_version >= Gem::Version.new("3.2") + eval_gemfile "x_std_libs/r3/libs.gemfile" +elsif ruby_version >= Gem::Version.new("3.1") + eval_gemfile "x_std_libs/r3.1/libs.gemfile" else - eval_gemfile 'x_std_libs/r2/libs.gemfile' + eval_gemfile "x_std_libs/r2/libs.gemfile" end diff --git a/gems/ast-crispr-markdown-markly/gemfiles/modular/x_std_libs/r2/libs.gemfile b/gems/ast-crispr-markdown-markly/gemfiles/modular/x_std_libs/r2/libs.gemfile index 16a5e3d70..441c4f03a 100644 --- a/gems/ast-crispr-markdown-markly/gemfiles/modular/x_std_libs/r2/libs.gemfile +++ b/gems/ast-crispr-markdown-markly/gemfiles/modular/x_std_libs/r2/libs.gemfile @@ -1,3 +1,3 @@ -eval_gemfile '../../erb/r2/v3.0.gemfile' -eval_gemfile '../../mutex_m/r2/v0.3.gemfile' -eval_gemfile '../../stringio/r2/v3.0.gemfile' +eval_gemfile "../../erb/r2/v3.0.gemfile" +eval_gemfile "../../mutex_m/r2/v0.3.gemfile" +eval_gemfile "../../stringio/r2/v3.0.gemfile" diff --git a/gems/ast-crispr-markdown-markly/gemfiles/modular/x_std_libs/r3/libs.gemfile b/gems/ast-crispr-markdown-markly/gemfiles/modular/x_std_libs/r3/libs.gemfile index 220ff95c1..c293a3ddd 100644 --- a/gems/ast-crispr-markdown-markly/gemfiles/modular/x_std_libs/r3/libs.gemfile +++ b/gems/ast-crispr-markdown-markly/gemfiles/modular/x_std_libs/r3/libs.gemfile @@ -1,3 +1,3 @@ -eval_gemfile '../../erb/r3/v5.0.gemfile' -eval_gemfile '../../mutex_m/r3/v0.3.gemfile' -eval_gemfile '../../stringio/r3/v3.0.gemfile' +eval_gemfile "../../erb/r3/v5.0.gemfile" +eval_gemfile "../../mutex_m/r3/v0.3.gemfile" +eval_gemfile "../../stringio/r3/v3.0.gemfile" diff --git a/gems/ast-crispr-markdown-markly/gemfiles/modular/x_std_libs/r4/libs.gemfile b/gems/ast-crispr-markdown-markly/gemfiles/modular/x_std_libs/r4/libs.gemfile index bd4e884df..eb5574247 100644 --- a/gems/ast-crispr-markdown-markly/gemfiles/modular/x_std_libs/r4/libs.gemfile +++ b/gems/ast-crispr-markdown-markly/gemfiles/modular/x_std_libs/r4/libs.gemfile @@ -1,4 +1,6 @@ -eval_gemfile '../../erb/r4/v5.0.gemfile' -eval_gemfile '../../mutex_m/r4/v0.3.gemfile' -eval_gemfile '../../stringio/r4/v3.0.gemfile' -eval_gemfile '../../benchmark/r4/v0.5.gemfile' +eval_gemfile "../../erb/r4/v5.0.gemfile" +eval_gemfile "../../mutex_m/r4/v0.3.gemfile" +eval_gemfile "../../stringio/r4/v3.0.gemfile" +eval_gemfile "../../benchmark/r4/v0.5.gemfile" +eval_gemfile "../../cgi/r4/v0.5.gemfile" +eval_gemfile "../../webrick/r4/v1.9.gemfile" diff --git a/gems/ast-crispr-markdown-markly/gemfiles/modular/x_std_libs/vHEAD.gemfile b/gems/ast-crispr-markdown-markly/gemfiles/modular/x_std_libs/vHEAD.gemfile index 91f383c11..d4d5b16c9 100644 --- a/gems/ast-crispr-markdown-markly/gemfiles/modular/x_std_libs/vHEAD.gemfile +++ b/gems/ast-crispr-markdown-markly/gemfiles/modular/x_std_libs/vHEAD.gemfile @@ -1,4 +1,6 @@ -eval_gemfile '../erb/vHEAD.gemfile' -eval_gemfile '../mutex_m/vHEAD.gemfile' -eval_gemfile '../stringio/vHEAD.gemfile' -eval_gemfile '../benchmark/vHEAD.gemfile' +eval_gemfile "../erb/vHEAD.gemfile" +eval_gemfile "../mutex_m/vHEAD.gemfile" +eval_gemfile "../stringio/vHEAD.gemfile" +eval_gemfile "../benchmark/vHEAD.gemfile" +eval_gemfile "../cgi/vHEAD.gemfile" +eval_gemfile "../webrick/vHEAD.gemfile" diff --git a/gems/ast-crispr-markdown-markly/lib/ast/crispr/markdown/markly/version.rb b/gems/ast-crispr-markdown-markly/lib/ast/crispr/markdown/markly/version.rb index ba5f0b149..e184c556f 100644 --- a/gems/ast-crispr-markdown-markly/lib/ast/crispr/markdown/markly/version.rb +++ b/gems/ast-crispr-markdown-markly/lib/ast/crispr/markdown/markly/version.rb @@ -5,7 +5,7 @@ module Crispr module Markdown module Markly module Version - VERSION = '7.1.0' + VERSION = "7.1.0" end VERSION = Version::VERSION # Traditional Constant Location end diff --git a/gems/ast-merge/gemfiles/modular/optional.gemfile b/gems/ast-merge/gemfiles/modular/optional.gemfile index 80bc45196..9ea429538 100644 --- a/gems/ast-merge/gemfiles/modular/optional.gemfile +++ b/gems/ast-merge/gemfiles/modular/optional.gemfile @@ -9,8 +9,8 @@ # Optional dependencies are not depended on directly, but may be used if present. # Required for curated binstubs generated by kettle-jem install -gem "rbs", ">= 3.0", require: false # ruby >= 3.1 +gem 'rbs', '>= 3.0', require: false # ruby >= 3.1 # Required for kettle-pre-release # URL parsing with Unicode support (falls back to URI if not available) -gem "addressable", ">= 2.8", "< 3" # ruby >= 2.2 +gem 'addressable', '>= 2.8', '< 3' # ruby >= 2.2 diff --git a/gems/ast-merge/gemfiles/modular/rspec.gemfile b/gems/ast-merge/gemfiles/modular/rspec.gemfile index 72fdf8b7f..2af210a41 100644 --- a/gems/ast-merge/gemfiles/modular/rspec.gemfile +++ b/gems/ast-merge/gemfiles/modular/rspec.gemfile @@ -1,4 +1,4 @@ -gem "rspec_junit_formatter", - github: "pboling/rspec_junit_formatter", - branch: "main", - ref: "9e6bcaaedd49477b62878ed568dc4ada5cc7cb5e" +gem 'rspec_junit_formatter', + github: 'pboling/rspec_junit_formatter', + branch: 'main', + ref: '9e6bcaaedd49477b62878ed568dc4ada5cc7cb5e' diff --git a/gems/ast-merge/gemfiles/modular/runtime_heads.gemfile b/gems/ast-merge/gemfiles/modular/runtime_heads.gemfile index 02f134c7f..ebf17c529 100644 --- a/gems/ast-merge/gemfiles/modular/runtime_heads.gemfile +++ b/gems/ast-merge/gemfiles/modular/runtime_heads.gemfile @@ -8,4 +8,4 @@ # Test against HEAD of runtime dependencies so we can proactively file bugs -eval_gemfile("x_std_libs/vHEAD.gemfile") +eval_gemfile('x_std_libs/vHEAD.gemfile') diff --git a/gems/ast-merge/gemfiles/modular/stringio/r2/v3.0.gemfile b/gems/ast-merge/gemfiles/modular/stringio/r2/v3.0.gemfile index e85bb18ee..3616f4e3a 100644 --- a/gems/ast-merge/gemfiles/modular/stringio/r2/v3.0.gemfile +++ b/gems/ast-merge/gemfiles/modular/stringio/r2/v3.0.gemfile @@ -2,4 +2,4 @@ # NOT SEMVER # Version 3.0.7 dropped support for Ruby <= 2.7 # Version 3.0.0 dropped support for Ruby <= 2.4 -gem "stringio", ">= 3.0" +gem 'stringio', '>= 3.0' diff --git a/gems/ast-merge/gemfiles/modular/stringio/r3/v3.0.gemfile b/gems/ast-merge/gemfiles/modular/stringio/r3/v3.0.gemfile index e85bb18ee..3616f4e3a 100644 --- a/gems/ast-merge/gemfiles/modular/stringio/r3/v3.0.gemfile +++ b/gems/ast-merge/gemfiles/modular/stringio/r3/v3.0.gemfile @@ -2,4 +2,4 @@ # NOT SEMVER # Version 3.0.7 dropped support for Ruby <= 2.7 # Version 3.0.0 dropped support for Ruby <= 2.4 -gem "stringio", ">= 3.0" +gem 'stringio', '>= 3.0' diff --git a/gems/ast-merge/gemfiles/modular/stringio/r4/v3.0.gemfile b/gems/ast-merge/gemfiles/modular/stringio/r4/v3.0.gemfile index e85bb18ee..3616f4e3a 100644 --- a/gems/ast-merge/gemfiles/modular/stringio/r4/v3.0.gemfile +++ b/gems/ast-merge/gemfiles/modular/stringio/r4/v3.0.gemfile @@ -2,4 +2,4 @@ # NOT SEMVER # Version 3.0.7 dropped support for Ruby <= 2.7 # Version 3.0.0 dropped support for Ruby <= 2.4 -gem "stringio", ">= 3.0" +gem 'stringio', '>= 3.0' diff --git a/gems/ast-merge/gemfiles/modular/stringio/vHEAD.gemfile b/gems/ast-merge/gemfiles/modular/stringio/vHEAD.gemfile index 5f2a74126..78f5f5d8a 100644 --- a/gems/ast-merge/gemfiles/modular/stringio/vHEAD.gemfile +++ b/gems/ast-merge/gemfiles/modular/stringio/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 (dependency of omniauth) -gem "stringio", github: "ruby/stringio", branch: "master" +gem 'stringio', github: 'ruby/stringio', branch: 'master' diff --git a/gems/ast-merge/gemfiles/modular/style.gemfile b/gems/ast-merge/gemfiles/modular/style.gemfile index 35de4dcd6..4dbcc02c0 100644 --- a/gems/ast-merge/gemfiles/modular/style.gemfile +++ b/gems/ast-merge/gemfiles/modular/style.gemfile @@ -9,23 +9,23 @@ # Style tasks run on the latest Ruby; RuboCop-LTS selects the compatibility # rules for the configured Ruby floor independently from task dependency floors. -gem "reek", "~> 6.5", ">= 6.5.0" +gem 'reek', '~> 6.5', '>= 6.5.0' platform :mri do - gem "appraisal2-rubocop", "~> 1.0", ">= 1.0.0", require: false - gem "rubocop-gradual", "~> 0.4", ">= 0.4.0" - gem "rubocop-minitest", "~> 0.40", ">= 0.40.0" - gem "rubocop-on-rbs", "~> 2.0", ">= 2.0.0" # ruby >= 3.2.0 + gem 'appraisal2-rubocop', '~> 1.0', '>= 1.0.0', require: false + gem 'rubocop-gradual', '~> 0.4', '>= 0.4.0' + gem 'rubocop-minitest', '~> 0.40', '>= 0.40.0' + gem 'rubocop-on-rbs', '~> 2.0', '>= 2.0.0' # ruby >= 3.2.0 # gem "rubocop", "~> 1.73", ">= 1.73.2" # constrained by standard - gem "rubocop-packaging", "~> 0.6", ">= 0.6.0" - gem "standard", "~> 1.56", ">= 1.56.0" + gem 'rubocop-packaging', '~> 0.6', '>= 0.6.0' + gem 'standard', '~> 1.56', '>= 1.56.0' - if ENV.fetch("RUBOCOP_LTS_LOCAL", "false").casecmp("false").zero? + if ENV.fetch('RUBOCOP_LTS_LOCAL', 'false').casecmp('false').zero? declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) - gem "rubocop-lts", "~> 24.2", ">= 24.2.1" unless declared_gems.include?("rubocop-lts") - gem "rubocop-lts-rspec", "~> 1.0", ">= 1.0.5" unless declared_gems.include?("rubocop-lts-rspec") - gem "rubocop-ruby3_2", "~> 3.0", ">= 3.0.6" unless declared_gems.include?("rubocop-ruby3_2") + gem 'rubocop-lts', '~> 24.2', '>= 24.2.1' unless declared_gems.include?('rubocop-lts') + gem 'rubocop-lts-rspec', '~> 1.0', '>= 1.0.5' unless declared_gems.include?('rubocop-lts-rspec') + gem 'rubocop-ruby3_2', '~> 3.0', '>= 3.0.6' unless declared_gems.include?('rubocop-ruby3_2') else - eval_gemfile("style_local.gemfile") + eval_gemfile('style_local.gemfile') end end diff --git a/gems/ast-merge/gemfiles/modular/style_local.gemfile b/gems/ast-merge/gemfiles/modular/style_local.gemfile index a003c7b12..e4a06d74e 100644 --- a/gems/ast-merge/gemfiles/modular/style_local.gemfile +++ b/gems/ast-merge/gemfiles/modular/style_local.gemfile @@ -14,21 +14,19 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] -nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) +nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] +nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == "nomono" } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - if nomono_locked - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] - end + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked end -Kernel.send(:gem, "nomono", *nomono_activation_requirements) -require "nomono/bundler" +Kernel.send(:gem, 'nomono', *nomono_activation_requirements) +require 'nomono/bundler' local_gems = %w[rubocop-lts rubocop-lts-rspec rubocop-ruby3_2 standard-rubocop-lts] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) @@ -38,11 +36,11 @@ local_gems_to_eval = local_gems - %w[ast-merge] - declared_gems platform :mri do eval_nomono_gems( gems: local_gems_to_eval, - prefix: "RUBOCOP_LTS", - path_env: "RUBOCOP_LTS_LOCAL", - vendored_gems_env: "VENDORED_GEMS", - vendor_gem_dir_env: "VENDOR_GEM_DIR", - debug_env: "RUBOCOP_LTS_DEBUG", - root: ["src", "rubocop-lts"] + prefix: 'RUBOCOP_LTS', + path_env: 'RUBOCOP_LTS_LOCAL', + vendored_gems_env: 'VENDORED_GEMS', + vendor_gem_dir_env: 'VENDOR_GEM_DIR', + debug_env: 'RUBOCOP_LTS_DEBUG', + root: %w[src rubocop-lts] ) end diff --git a/gems/ast-merge/gemfiles/modular/templating.gemfile b/gems/ast-merge/gemfiles/modular/templating.gemfile index 47138ffbb..a672de184 100644 --- a/gems/ast-merge/gemfiles/modular/templating.gemfile +++ b/gems/ast-merge/gemfiles/modular/templating.gemfile @@ -1,18 +1,18 @@ # frozen_string_literal: true -structuredmerge_remote = ENV.fetch("STRUCTUREDMERGE_DEV", "false").casecmp("false").zero? -kettle_remote = ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false").zero? +structuredmerge_remote = ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false').zero? +kettle_remote = ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? if structuredmerge_remote # Parser dependencies for released installs. - gem "tree_sitter_language_pack", "~> 1.13", ">= 1.13.3" + gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' # Merge recipes for released installs. - gem "kettle-jem", ">= 7.0" + gem 'kettle-jem', '>= 7.0' end if kettle_remote # Template/plugin checks for released installs. - gem "kettle-drift", "~> 1.0", ">= 1.0.6", require: false + gem 'kettle-drift', '~> 1.0', '>= 1.0.6', require: false end # Set STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local development with path-based dependencies. @@ -21,4 +21,4 @@ end # # Set KETTLE_DEV_DEV=/path/to/my for local development with Kettle plugin gems. # When false (default / CI), released Kettle plugin gems are used. -eval_gemfile "templating_local.gemfile" unless structuredmerge_remote && kettle_remote +eval_gemfile 'templating_local.gemfile' unless structuredmerge_remote && kettle_remote diff --git a/gems/ast-merge/gemfiles/modular/templating_local.gemfile b/gems/ast-merge/gemfiles/modular/templating_local.gemfile index efcd3bad8..cd50e9a1e 100644 --- a/gems/ast-merge/gemfiles/modular/templating_local.gemfile +++ b/gems/ast-merge/gemfiles/modular/templating_local.gemfile @@ -12,21 +12,19 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] -nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) +nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] +nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == "nomono" } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - if nomono_locked - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] - end + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked end -Kernel.send(:gem, "nomono", *nomono_activation_requirements) -require "nomono/bundler" +Kernel.send(:gem, 'nomono', *nomono_activation_requirements) +require 'nomono/bundler' structuredmerge_local_gems = %w[ tree_haver @@ -69,25 +67,25 @@ structuredmerge_local_gems_to_eval = structuredmerge_local_gems - %w[ast-merge] kettle_dev_local_gems_to_eval = kettle_dev_local_gems - %w[ast-merge] - declared_gems platform :mri do - if ENV.fetch("STRUCTUREDMERGE_DEV", "false").casecmp("false") != 0 + if ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false') != 0 eval_nomono_gems( gems: structuredmerge_local_gems_to_eval, - prefix: "STRUCTUREDMERGE", - path_env: "STRUCTUREDMERGE_DEV", - vendored_gems_env: "VENDORED_GEMS", - vendor_gem_dir_env: "VENDOR_GEM_DIR", - debug_env: "STRUCTUREDMERGE_DEBUG" + prefix: 'STRUCTUREDMERGE', + path_env: 'STRUCTUREDMERGE_DEV', + vendored_gems_env: 'VENDORED_GEMS', + vendor_gem_dir_env: 'VENDOR_GEM_DIR', + debug_env: 'STRUCTUREDMERGE_DEBUG' ) end - if ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false") != 0 + if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false') != 0 eval_nomono_gems( gems: kettle_dev_local_gems_to_eval, - prefix: "KETTLE_DEV", - path_env: "KETTLE_DEV_DEV", - vendored_gems_env: "VENDORED_GEMS", - vendor_gem_dir_env: "VENDOR_GEM_DIR", - debug_env: "KETTLE_DEV_DEBUG" + prefix: 'KETTLE_DEV', + path_env: 'KETTLE_DEV_DEV', + vendored_gems_env: 'VENDORED_GEMS', + vendor_gem_dir_env: 'VENDOR_GEM_DIR', + debug_env: 'KETTLE_DEV_DEBUG' ) end end diff --git a/gems/ast-merge/gemfiles/modular/webrick/r4/v1.9.gemfile b/gems/ast-merge/gemfiles/modular/webrick/r4/v1.9.gemfile index eaab4a473..b1329ba84 100644 --- a/gems/ast-merge/gemfiles/modular/webrick/r4/v1.9.gemfile +++ b/gems/ast-merge/gemfiles/modular/webrick/r4/v1.9.gemfile @@ -1 +1 @@ -gem "webrick", "~> 1.9" +gem 'webrick', '~> 1.9' diff --git a/gems/ast-merge/gemfiles/modular/webrick/vHEAD.gemfile b/gems/ast-merge/gemfiles/modular/webrick/vHEAD.gemfile index 8a789b634..c7e6f81a1 100644 --- a/gems/ast-merge/gemfiles/modular/webrick/vHEAD.gemfile +++ b/gems/ast-merge/gemfiles/modular/webrick/vHEAD.gemfile @@ -1 +1 @@ -gem "webrick", ">= 1.9" +gem 'webrick', '>= 1.9' diff --git a/gems/ast-merge/gemfiles/modular/x_std_libs.gemfile b/gems/ast-merge/gemfiles/modular/x_std_libs.gemfile index 77aad43f2..b1f43c097 100644 --- a/gems/ast-merge/gemfiles/modular/x_std_libs.gemfile +++ b/gems/ast-merge/gemfiles/modular/x_std_libs.gemfile @@ -1,12 +1,12 @@ ### Std Lib Extracted Gems ruby_version = Gem::Version.new(RUBY_VERSION) -if ruby_version >= Gem::Version.new("4.0") - eval_gemfile "x_std_libs/r4/libs.gemfile" -elsif ruby_version >= Gem::Version.new("3.2") - eval_gemfile "x_std_libs/r3/libs.gemfile" -elsif ruby_version >= Gem::Version.new("3.1") - eval_gemfile "x_std_libs/r3.1/libs.gemfile" +if ruby_version >= Gem::Version.new('4.0') + eval_gemfile 'x_std_libs/r4/libs.gemfile' +elsif ruby_version >= Gem::Version.new('3.2') + eval_gemfile 'x_std_libs/r3/libs.gemfile' +elsif ruby_version >= Gem::Version.new('3.1') + eval_gemfile 'x_std_libs/r3.1/libs.gemfile' else - eval_gemfile "x_std_libs/r2/libs.gemfile" + eval_gemfile 'x_std_libs/r2/libs.gemfile' end diff --git a/gems/ast-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile b/gems/ast-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile index 441c4f03a..16a5e3d70 100644 --- a/gems/ast-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile +++ b/gems/ast-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile @@ -1,3 +1,3 @@ -eval_gemfile "../../erb/r2/v3.0.gemfile" -eval_gemfile "../../mutex_m/r2/v0.3.gemfile" -eval_gemfile "../../stringio/r2/v3.0.gemfile" +eval_gemfile '../../erb/r2/v3.0.gemfile' +eval_gemfile '../../mutex_m/r2/v0.3.gemfile' +eval_gemfile '../../stringio/r2/v3.0.gemfile' diff --git a/gems/ast-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile b/gems/ast-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile index c293a3ddd..220ff95c1 100644 --- a/gems/ast-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile +++ b/gems/ast-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile @@ -1,3 +1,3 @@ -eval_gemfile "../../erb/r3/v5.0.gemfile" -eval_gemfile "../../mutex_m/r3/v0.3.gemfile" -eval_gemfile "../../stringio/r3/v3.0.gemfile" +eval_gemfile '../../erb/r3/v5.0.gemfile' +eval_gemfile '../../mutex_m/r3/v0.3.gemfile' +eval_gemfile '../../stringio/r3/v3.0.gemfile' diff --git a/gems/ast-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile b/gems/ast-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile index eb5574247..e2f6501eb 100644 --- a/gems/ast-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile +++ b/gems/ast-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile @@ -1,6 +1,6 @@ -eval_gemfile "../../erb/r4/v5.0.gemfile" -eval_gemfile "../../mutex_m/r4/v0.3.gemfile" -eval_gemfile "../../stringio/r4/v3.0.gemfile" -eval_gemfile "../../benchmark/r4/v0.5.gemfile" -eval_gemfile "../../cgi/r4/v0.5.gemfile" -eval_gemfile "../../webrick/r4/v1.9.gemfile" +eval_gemfile '../../erb/r4/v5.0.gemfile' +eval_gemfile '../../mutex_m/r4/v0.3.gemfile' +eval_gemfile '../../stringio/r4/v3.0.gemfile' +eval_gemfile '../../benchmark/r4/v0.5.gemfile' +eval_gemfile '../../cgi/r4/v0.5.gemfile' +eval_gemfile '../../webrick/r4/v1.9.gemfile' diff --git a/gems/ast-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile b/gems/ast-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile index d4d5b16c9..ab75cccf1 100644 --- a/gems/ast-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile +++ b/gems/ast-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile @@ -1,6 +1,6 @@ -eval_gemfile "../erb/vHEAD.gemfile" -eval_gemfile "../mutex_m/vHEAD.gemfile" -eval_gemfile "../stringio/vHEAD.gemfile" -eval_gemfile "../benchmark/vHEAD.gemfile" -eval_gemfile "../cgi/vHEAD.gemfile" -eval_gemfile "../webrick/vHEAD.gemfile" +eval_gemfile '../erb/vHEAD.gemfile' +eval_gemfile '../mutex_m/vHEAD.gemfile' +eval_gemfile '../stringio/vHEAD.gemfile' +eval_gemfile '../benchmark/vHEAD.gemfile' +eval_gemfile '../cgi/vHEAD.gemfile' +eval_gemfile '../webrick/vHEAD.gemfile' diff --git a/gems/ast-merge/lib/ast/merge/version.rb b/gems/ast-merge/lib/ast/merge/version.rb index 3ef823f4d..6e7dc90f7 100644 --- a/gems/ast-merge/lib/ast/merge/version.rb +++ b/gems/ast-merge/lib/ast/merge/version.rb @@ -3,7 +3,7 @@ module Ast module Merge module Version - VERSION = "7.1.0" + VERSION = '7.1.0' end VERSION = Version::VERSION # Traditional Constant Location end diff --git a/gems/json-merge/.kettle-drift.lock b/gems/json-merge/.kettle-drift.lock index c94914817..2ee9dae31 100644 --- a/gems/json-merge/.kettle-drift.lock +++ b/gems/json-merge/.kettle-drift.lock @@ -1,138 +1,10 @@ { - "(direct_sibling_local ||\nENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?)": [ - { - "file": "Gemfile", - "lines": [ - 80, - 120, - 160, - 200, - 240, - 280, - 320, - 360, - 400, - 440 - ] - } - ], - ".find { |spec| spec.name == 'nomono' }\nnomono_locked = nomono_locked_spec &&": [ - { - "file": "Gemfile", - "lines": [ - 91, - 131, - 171, - 211, - 251, - 291, - 331, - 371, - 411, - 451 - ] - } - ], - "ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?)\ndirect_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV')": [ - { - "file": "Gemfile", - "lines": [ - 81, - 121, - 161, - 201, - 241, - 281, - 321, - 361, - 401, - 441 - ] - } - ], - "Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version)\nnomono_activation_requirements = [\"= #{nomono_locked_spec.version}\"] if nomono_locked": [ - { - "file": "Gemfile", - "lines": [ - 93, - 133, - 173, - 213, - 253, - 293, - 333, - 373, - 413, - 453 - ] - } - ], - "Kernel.send(:gem, 'nomono', *nomono_activation_requirements)\nrequire 'nomono/bundler'": [ - { - "file": "Gemfile", - "lines": [ - 96, - 136, - 176, - 216, - 256, - 296, - 336, - 376, - 416, - 456 - ] - } - ], - "direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV')\ndirect_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil)": [ - { - "file": "Gemfile", - "lines": [ - 82, - 122, - 162, - 202, - 242, - 282, - 322, - 362, - 402, - 442 - ] - } - ], "eval_nomono_gems(\ngems: direct_sibling_gems,": [ { "file": "Gemfile", "lines": [ 60, - 100, - 140, - 180, - 220, - 260, - 300, - 340, - 380, - 420, - 460 - ] - } - ], - "gems: direct_sibling_gems,\nprefix: 'STRUCTUREDMERGE',": [ - { - "file": "Gemfile", - "lines": [ - 101, - 141, - 181, - 221, - 261, - 301, - 341, - 381, - 421, - 461 + 100 ] } ], @@ -141,33 +13,7 @@ "file": "Gemfile", "lines": [ 43, - 87, - 127, - 167, - 207, - 247, - 287, - 327, - 367, - 407, - 447 - ] - } - ], - "if direct_sibling_dev_was_set\nENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original": [ - { - "file": "Gemfile", - "lines": [ - 110, - 150, - 190, - 230, - 270, - 310, - 350, - 390, - 430, - 470 + 87 ] } ], @@ -176,16 +22,7 @@ "file": "Gemfile", "lines": [ 35, - 79, - 119, - 159, - 199, - 239, - 279, - 319, - 359, - 399, - 439 + 79 ] } ], @@ -194,33 +31,7 @@ "file": "Gemfile", "lines": [ 69, - 109, - 149, - 189, - 229, - 269, - 309, - 349, - 389, - 429, - 469 - ] - } - ], - "nomono_activation_requirements = nomono_requirements\nnomono_lockfile = File.expand_path('Gemfile.lock', __dir__)": [ - { - "file": "Gemfile", - "lines": [ - 85, - 125, - 165, - 205, - 245, - 285, - 325, - 365, - 405, - 445 + 109 ] } ], @@ -229,16 +40,7 @@ "file": "Gemfile", "lines": [ 48, - 92, - 132, - 172, - 212, - 252, - 292, - 332, - 372, - 412, - 452 + 92 ] } ], @@ -247,101 +49,7 @@ "file": "Gemfile", "lines": [ 44, - 88, - 128, - 168, - 208, - 248, - 288, - 328, - 368, - 408, - 448 - ] - } - ], - "nomono_lockfile = File.expand_path('Gemfile.lock', __dir__)\nif File.file?(nomono_lockfile)": [ - { - "file": "Gemfile", - "lines": [ - 86, - 126, - 166, - 206, - 246, - 286, - 326, - 366, - 406, - 446 - ] - } - ], - "path_env: 'STRUCTUREDMERGE_DEV',\nroot: %w[src my structuredmerge]": [ - { - "file": "Gemfile", - "lines": [ - 103, - 143, - 183, - 223, - 263, - 303, - 343, - 383, - 423, - 463 - ] - } - ], - "prefix: 'STRUCTUREDMERGE',\npath_env: 'STRUCTUREDMERGE_DEV',": [ - { - "file": "Gemfile", - "lines": [ - 102, - 142, - 182, - 222, - 262, - 302, - 342, - 382, - 422, - 462 - ] - } - ], - "require 'nomono/bundler'\nENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local": [ - { - "file": "Gemfile", - "lines": [ - 97, - 137, - 177, - 217, - 257, - 297, - 337, - 377, - 417, - 457 - ] - } - ], - "rescue LoadError\nwarn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.'": [ - { - "file": "Gemfile", - "lines": [ - 106, - 146, - 186, - 226, - 266, - 306, - 346, - 386, - 426, - 466 + 88 ] } ], @@ -349,8 +57,8 @@ { "file": "gemfiles/modular/templating_local.gemfile", "lines": [ - 58, - 69 + 55, + 66 ] } ] diff --git a/gems/json-merge/.structuredmerge/kettle-jem.yml b/gems/json-merge/.structuredmerge/kettle-jem.yml index cf9684e3b..adc4b3666 100644 --- a/gems/json-merge/.structuredmerge/kettle-jem.yml +++ b/gems/json-merge/.structuredmerge/kettle-jem.yml @@ -246,6 +246,59 @@ templates: - Gemfile - certs/pboling.pem - tmp/.gitignore + - gemfiles/modular/benchmark/r4/v0.5.gemfile + - gemfiles/modular/benchmark/vHEAD.gemfile + - gemfiles/modular/cgi/r4/v0.5.gemfile + - gemfiles/modular/cgi/vHEAD.gemfile + - gemfiles/modular/coverage.gemfile + - gemfiles/modular/coverage_local.gemfile + - gemfiles/modular/debug.gemfile + - gemfiles/modular/documentation.gemfile + - gemfiles/modular/documentation_local.gemfile + - gemfiles/modular/erb/r2.3/default.gemfile + - gemfiles/modular/erb/r2.6/v2.2.gemfile + - gemfiles/modular/erb/r2/v3.0.gemfile + - gemfiles/modular/erb/r3.1/v4.0.gemfile + - gemfiles/modular/erb/r3/v5.0.gemfile + - gemfiles/modular/erb/r4/v5.0.gemfile + - gemfiles/modular/erb/vHEAD.gemfile + - gemfiles/modular/json/truffleruby_22_3.gemfile + - gemfiles/modular/json/truffleruby_23_0.gemfile + - gemfiles/modular/json/truffleruby_23_1.gemfile + - gemfiles/modular/mutex_m/r2.4/v0.1.gemfile + - gemfiles/modular/mutex_m/r2/v0.3.gemfile + - gemfiles/modular/mutex_m/r3/v0.3.gemfile + - gemfiles/modular/mutex_m/r4/v0.3.gemfile + - gemfiles/modular/mutex_m/vHEAD.gemfile + - gemfiles/modular/optional.gemfile + - gemfiles/modular/recording/r2.3/recording.gemfile + - gemfiles/modular/recording/r2.4/recording.gemfile + - gemfiles/modular/recording/r2.5/recording.gemfile + - gemfiles/modular/recording/r3/recording.gemfile + - gemfiles/modular/recording/r4/recording.gemfile + - gemfiles/modular/recording/vHEAD.gemfile + - gemfiles/modular/rspec.gemfile + - gemfiles/modular/runtime_heads.gemfile + - gemfiles/modular/stringio/r2.4/v0.0.2.gemfile + - gemfiles/modular/stringio/r2/v3.0.gemfile + - gemfiles/modular/stringio/r3/v3.0.gemfile + - gemfiles/modular/stringio/r4/v3.0.gemfile + - gemfiles/modular/stringio/vHEAD.gemfile + - gemfiles/modular/style.gemfile + - gemfiles/modular/style_local.gemfile + - gemfiles/modular/templating.gemfile + - gemfiles/modular/templating_local.gemfile + - gemfiles/modular/webrick/r4/v1.9.gemfile + - gemfiles/modular/webrick/vHEAD.gemfile + - gemfiles/modular/x_std_libs.gemfile + - gemfiles/modular/x_std_libs/r2.3/libs.gemfile + - gemfiles/modular/x_std_libs/r2.4/libs.gemfile + - gemfiles/modular/x_std_libs/r2.6/libs.gemfile + - gemfiles/modular/x_std_libs/r2/libs.gemfile + - gemfiles/modular/x_std_libs/r3.1/libs.gemfile + - gemfiles/modular/x_std_libs/r3/libs.gemfile + - gemfiles/modular/x_std_libs/r4/libs.gemfile + - gemfiles/modular/x_std_libs/vHEAD.gemfile - source: lib/gem/version.rb target: lib/json/merge/version.rb - source: sig/gem.rbs diff --git a/gems/json-merge/Gemfile b/gems/json-merge/Gemfile index d495355f6..c664c31b9 100644 --- a/gems/json-merge/Gemfile +++ b/gems/json-merge/Gemfile @@ -6,7 +6,7 @@ # kettle-jem will then preserve content between those markers across template runs. # kettle-jem:unfreeze -source 'https://gem.coop' +source "https://gem.coop" git_source(:codeberg) { |repo_name| "https://codeberg.org/#{repo_name}" } git_source(:gitlab) { |repo_name| "https://gitlab.com/#{repo_name}" } @@ -19,18 +19,62 @@ git_source(:gitlab) { |repo_name| "https://gitlab.com/#{repo_name}" } gemspec # Local workspace dependency wiring for *_local.gemfile overrides -nomono_requirements = ['~> 1.0', '>= 1.0.8'] -gem 'nomono', *nomono_requirements, require: false # ruby >= 2.2 +nomono_requirements = ["~> 1.0", ">= 1.0.8"] +gem "nomono", *nomono_requirements, require: false # ruby >= 2.2 # Direct sibling dependencies (env-switched via STRUCTUREDMERGE_DEV) direct_sibling_gems = %w[ ast-merge tree_haver ] -direct_sibling_dev = ENV.fetch('STRUCTUREDMERGE_DEV', '') +direct_sibling_dev = ENV.fetch("STRUCTUREDMERGE_DEV", "") direct_sibling_local = !direct_sibling_dev.empty? && !%w[false 0 no off].include?(direct_sibling_dev.downcase) -direct_sibling_templating = ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? +direct_sibling_templating = ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? + +if direct_sibling_gems.any? && + (direct_sibling_local || + ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero?) + direct_sibling_dev_was_set = ENV.key?("STRUCTUREDMERGE_DEV") + direct_sibling_dev_original = ENV.fetch("STRUCTUREDMERGE_DEV", nil) + begin + nomono_activation_requirements = nomono_requirements + nomono_lockfile = File.expand_path("Gemfile.lock", __dir__) + if File.file?(nomono_lockfile) + nomono_locked_spec = Bundler::LockfileParser + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == "nomono" } + nomono_locked = nomono_locked_spec && + Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) + if nomono_locked + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] + end + end + Kernel.send(:gem, "nomono", *nomono_activation_requirements) + require "nomono/bundler" + if direct_sibling_templating && !direct_sibling_local + ENV["STRUCTUREDMERGE_DEV"] = File.expand_path("..", __dir__) + end + + eval_nomono_gems( + gems: direct_sibling_gems, + prefix: "STRUCTUREDMERGE", + path_env: "STRUCTUREDMERGE_DEV", + root: ["src", "my", "structuredmerge"] + ) + rescue LoadError + warn "Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies." + ensure + if direct_sibling_templating && !direct_sibling_local + if direct_sibling_dev_was_set + ENV["STRUCTUREDMERGE_DEV"] = direct_sibling_dev_original + else + ENV.delete("STRUCTUREDMERGE_DEV") + end + end + end +end if direct_sibling_gems.any? && (direct_sibling_local || @@ -73,28 +117,28 @@ if direct_sibling_gems.any? && end # Use released TSLP with the Ruby ABI platform-gem fix. -gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' +gem "tree_sitter_language_pack", "~> 1.13", ">= 1.13.3" # Templating (env-switched: STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local paths) -eval_gemfile 'gemfiles/modular/templating.gemfile' if ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? +eval_gemfile "gemfiles/modular/templating.gemfile" if ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? # Debugging -eval_gemfile 'gemfiles/modular/debug.gemfile' +eval_gemfile "gemfiles/modular/debug.gemfile" # Code Coverage (env-switched: KETTLE_DEV_DEV=true for local paths) -eval_gemfile 'gemfiles/modular/coverage.gemfile' +eval_gemfile "gemfiles/modular/coverage.gemfile" # Linting -eval_gemfile 'gemfiles/modular/style.gemfile' +eval_gemfile "gemfiles/modular/style.gemfile" # Documentation -eval_gemfile 'gemfiles/modular/documentation.gemfile' +eval_gemfile "gemfiles/modular/documentation.gemfile" # Optional -eval_gemfile 'gemfiles/modular/optional.gemfile' +eval_gemfile "gemfiles/modular/optional.gemfile" ### Std Lib Extracted Gems -eval_gemfile 'gemfiles/modular/x_std_libs.gemfile' +eval_gemfile "gemfiles/modular/x_std_libs.gemfile" # See unlocked_deps appraisal for more details on irb inclusion -gem 'irb', '~> 1.17' # ruby >= 2.7 +gem "irb", "~> 1.17" # ruby >= 2.7 diff --git a/gems/json-merge/Gemfile.lock b/gems/json-merge/Gemfile.lock index 12feb9711..382e1616f 100644 --- a/gems/json-merge/Gemfile.lock +++ b/gems/json-merge/Gemfile.lock @@ -6,6 +6,265 @@ PATH tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly + specs: + ast-crispr-markdown-markly (7.1.0) + ast-crispr (= 7.1.0) + markly-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism + specs: + ast-crispr-ruby-prism (7.1.0) + ast-crispr (= 7.1.0) + prism-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr + specs: + ast-crispr (7.1.0) + ast-merge (= 7.1.0) + service_actor (~> 3.9) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git + specs: + ast-merge-git (7.1.0) + ast-merge (= 7.1.0) + json-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge + specs: + ast-merge (7.1.0) + benchmark + token-resolver (~> 2.0, >= 2.0.4) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template + specs: + ast-template (7.1.0) + ast-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge + specs: + bash-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge + specs: + binary-merge (7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge + specs: + citrus-toml-merge (7.1.0) + toml-merge (= 7.1.0) + toml-rb (~> 4.1) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge + specs: + commonmarker-merge (7.1.0) + commonmarker (~> 2.2) + markdown-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge + specs: + dotenv-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge + specs: + go-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem + specs: + kettle-jem (7.1.0) + addressable (>= 2.8, < 3) + ast-crispr-markdown-markly (= 7.1.0) + ast-crispr-ruby-prism (= 7.1.0) + ast-merge (= 7.1.0) + bash-merge (= 7.1.0) + citrus-toml-merge (= 7.1.0) + commonmarker-merge (= 7.1.0) + dotenv-merge (= 7.1.0) + json-merge (= 7.1.0) + kettle-dev (~> 2.3, >= 2.3.5) + kettle-rb (~> 0.1, >= 0.1.4) + kramdown-merge (= 7.1.0) + markdown-merge (= 7.1.0) + markly-merge (= 7.1.0) + prism-merge (= 7.1.0) + psych-merge (= 7.1.0) + rbs (>= 3.10) + rbs-merge (= 7.1.0) + ruby-merge (= 7.1.0) + token-resolver (~> 2.0, >= 2.0.4) + toml-merge (= 7.1.0) + toml-rb (~> 4.2) + tree_haver (= 7.1.0) + yaml-merge (= 7.1.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge + specs: + kramdown-merge (7.1.0) + kramdown (~> 2.5) + markdown-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge + specs: + markdown-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge + specs: + markly-merge (7.1.0) + markdown-merge (= 7.1.0) + markly (~> 0.9) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge + specs: + parslet-toml-merge (7.1.0) + toml (~> 0.3) + toml-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge + specs: + plain-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge + specs: + prism-merge (7.1.0) + prism (~> 1.6) + ruby-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge + specs: + psych-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + yaml-merge (= 7.1.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge + specs: + rbs-merge (7.1.0) + ast-merge (= 7.1.0) + rbs (>= 3.10) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge + specs: + ruby-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge + specs: + rust-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb + specs: + smorg-rb (7.1.0) + ast-merge (= 7.1.0) + ast-merge-git (= 7.1.0) + go-merge (= 7.1.0) + json-merge (= 7.1.0) + kettle-jem (= 7.1.0) + markly-merge (= 7.1.0) + plain-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge + specs: + toml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver + specs: + tree_haver (7.1.0) + citrus (~> 3.0) + parslet (~> 2.0) + tree_sitter_language_pack (>= 1.13.2, < 2.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge + specs: + typescript-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge + specs: + yaml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge + specs: + zip-merge (7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + GEM remote: https://gem.coop/ specs: @@ -17,11 +276,6 @@ GEM rake (>= 10) thor (>= 0.14) ast (2.4.3) - ast-merge (7.1.0) - benchmark - token-resolver (~> 2.0, >= 2.0.4) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) backports (3.25.3) benchmark (0.5.0) bigdecimal (4.1.2) @@ -30,6 +284,7 @@ GEM thor (~> 1.0) citrus (3.0.2) cmdparse (3.0.7) + commonmarker (2.9.0-x86_64-linux) concurrent-ruby (1.3.8) date (3.5.1) debug (1.11.1) @@ -93,6 +348,8 @@ GEM kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) + kettle-drift (1.0.6) + version_gem (~> 1.1, >= 1.1.14) kettle-rb (0.1.4) kettle-soup-cover (1.1.3) simplecov (~> 0.22) @@ -121,6 +378,7 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) + markly (0.16.0) mutex_m (0.3.0) nokogiri (1.19.4-aarch64-linux-gnu) racc (~> 1.4) @@ -132,7 +390,7 @@ GEM racc (~> 1.4) nokogiri (1.19.4-x86_64-linux-musl) racc (~> 1.4) - nomono (1.0.8) + nomono (1.0.9) openssl (4.0.2) ostruct (0.6.3) parallel (1.28.0) @@ -255,6 +513,8 @@ GEM ruby-progressbar (1.13.0) ruby_engine (2.0.3) ruby_version (1.0.3) + service_actor (3.9.4) + zeitwerk (>= 1.0) silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) @@ -307,11 +567,11 @@ GEM token-resolver (2.0.4) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.13) - tree_haver (7.1.0) - citrus (~> 3.0) - parslet (~> 2.0) - tree_sitter_language_pack (>= 1.13.2, < 2.0) - version_gem (~> 1.1, >= 1.1.9) + toml (0.3.0) + parslet (>= 1.8.0, < 3.0.0) + toml-rb (4.2.0) + citrus (~> 3.0, > 3.0) + racc (~> 1.7) tree_sitter_language_pack (1.13.3-aarch64-linux) sorbet-runtime (~> 0.5) tree_sitter_language_pack (1.13.3-arm64-darwin) @@ -368,23 +628,45 @@ PLATFORMS DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) + ast-crispr! + ast-crispr-markdown-markly! + ast-crispr-ruby-prism! + ast-merge! + ast-merge-git! + ast-template! + bash-merge! benchmark (~> 0.5, >= 0.5.0) + binary-merge! bundler-audit (~> 0.9.3) + citrus-toml-merge! + commonmarker-merge! debug (>= 1.1) + dotenv-merge! erb (~> 6.0, >= 6.0.4) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.0) + go-merge! irb (~> 1.17) json-merge! kettle-dev (~> 2.0, >= 2.2.25) + kettle-drift (~> 1.0, >= 1.0.5) + kettle-jem! kettle-soup-cover (~> 1.0, >= 1.1.3) kettle-test (~> 2.0, >= 2.0.9) kramdown (~> 2.5, >= 2.5.1) + kramdown-merge! kramdown-parser-gfm (~> 1.1) + markdown-merge! + markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) + parslet-toml-merge! + plain-merge! + prism-merge! + psych-merge! rake (~> 13.0) rbs (>= 3.0) + rbs-merge! rdoc (~> 6.11) reek (~> 6.5) require_bench (~> 1.0, >= 1.0.4) @@ -393,31 +675,49 @@ DEPENDENCIES rubocop-packaging (~> 0.6, >= 0.6.0) rubocop-rspec (~> 3.6) rubocop-ruby3_2 (~> 3.0.0) + ruby-merge! ruby-progressbar (~> 1.13) + rust-merge! + smorg-rb! standard (>= 1.50) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) + toml-merge! + tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) + typescript-merge! yaml-converter (~> 0.1) + yaml-merge! yard (~> 0.9, >= 0.9.44) yard-fence (~> 0.9, >= 0.9.1) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) yard-timekeeper (~> 0.1) yard-yaml (~> 0.1, >= 0.1.2) + zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af ansi (1.6.0) sha256=ac9ea0c0ea8d32fb4e271348e609963ac78882f34b73836c2a02b3622e666658 appraisal2 (3.2.0) sha256=ccd0b767ac4060cd7af6d16747459b6990f49c39c7b4fb1f7d1146b1e97c492f ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 + ast-crispr (7.1.0) + ast-crispr-markdown-markly (7.1.0) + ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) + ast-merge-git (7.1.0) + ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 + bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd + binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 + citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 + commonmarker (2.9.0-x86_64-linux) + commonmarker-merge (7.1.0) concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 @@ -425,6 +725,7 @@ CHECKSUMS diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 docile (1.4.1) sha256=96159be799bfa73cdb721b840e9802126e4e03dfc26863db73647204c727f21e + dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -437,42 +738,54 @@ CHECKSUMS gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f + go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 json-merge (7.1.0) kettle-dev (2.3.7) sha256=eb370113cd030d03cbe2d33b31c99858951017e5ad21a17e9ed89dc3770028ee + kettle-drift (1.0.6) + kettle-jem (7.1.0) kettle-rb (0.1.4) sha256=9cef7ce4f7021666b7222292f29051e51eaf042e8a5db11f3f4dd72f74243fc1 kettle-soup-cover (1.1.3) sha256=a373827da22a7131d093afd32945e5b7d7a10a01ebfdded8fd2cb8230d69c8ad kettle-test (2.0.11) sha256=c710c90f7ab79d51f9452f0c09f5f90657e7a893f63583855c164d0b1b107ab2 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa + kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 + markdown-merge (7.1.0) + markly (0.16.0) + markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-aarch64-linux-gnu) sha256=1269fb644a6de405057a53dd5c762b1209b43ca7424f839454d3dbc677c31a8f nokogiri (1.19.4-aarch64-linux-musl) sha256=35c65b9ce72b3bb03207bdbe7067915019dc18c1b9b59139684bd6690fdd01af nokogiri (1.19.4-arm64-darwin) sha256=a46db9853286e6597b36ebc6953817d15acf3a299583eb3f89fdc6f91dd63527 nokogiri (1.19.4-x86_64-linux-gnu) sha256=379fae440b28915e3f19d752ce2dcf8465ed2b2fbefd2a7ca0dd497bc981a06a nokogiri (1.19.4-x86_64-linux-musl) sha256=17dfb7c1fa194ae02fbf7c51a7afc8d278045ab3fdacfd86f91d02d7b274470b - nomono (1.0.8) sha256=bf4b9b426cbf216ab17b70db474f691b8ae1f1e29de8db4b0ecd405e6e7e1c80 + nomono (1.0.9) openssl (4.0.2) sha256=1037ad2868ae58df9ad917891c0c0f9815a1172f6846d4bcdd508e4c2ee747c2 ostruct (0.6.3) sha256=95a2ed4a4bd1d190784e666b47b2d3f078e4a9efda2fccf18f84ddc6538ed912 parallel (1.28.0) sha256=33e6de1484baf2524792d178b0913fc8eb94c628d6cfe45599ad4458c638c970 parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 + parslet-toml-merge (7.1.0) + plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 + prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 + psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 + rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb @@ -500,9 +813,12 @@ CHECKSUMS rubocop-rspec (3.10.2) sha256=0b3e2ecc592cd10ecbf0095bb58d1e357905276e069643523cc19eb7495f65e2 rubocop-ruby3_2 (3.0.7) sha256=f53dd6d286fb05186214fc6ec116783e7f837030918e8931c05de773e98f8466 rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 + ruby-merge (7.1.0) ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 + rust-merge (7.1.0) + service_actor (3.9.4) silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (0.22.0) sha256=fe2622c7834ff23b98066bb0a854284b2729a569ac659f82621fc22ef36213a5 simplecov-cobertura (3.2.0) sha256=70d702658677fcb20e5aceb6915ccf8bc62ff2ccd38b62b3ad5c9db5c0888740 @@ -511,6 +827,7 @@ CHECKSUMS simplecov-lcov (0.9.0) sha256=7a77a31e200a595ed4b0249493056efd0c920601f53d2ef135ca34ee796346cd simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_json_formatter (0.1.4) sha256=529418fbe8de1713ac2b2d612aa3daa56d316975d307244399fa4838c601b428 + smorg-rb (7.1.0) sorbet-runtime (0.6.13347) sha256=54e7221d9f4b63f58aec79f3043752a9ba7810347c6ae0d903531591cc2d5f01 standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b @@ -524,16 +841,21 @@ CHECKSUMS timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.4) sha256=33b926958f504525bba3ed511ab66fbcbf8ef30390815e931436b30f27ffcad0 + toml (0.3.0) + toml-merge (7.1.0) + toml-rb (4.2.0) tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-aarch64-linux) sha256=55ffc7c87868cb45658338363d9eba51b4a8b0259aa88e4de368d2bd1d52fea4 tree_sitter_language_pack (1.13.3-arm64-darwin) sha256=bc2498db605f212a1dbd2465ed3f65190d7da786f6ed5d30fcf958121aeb4a5c tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 + typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 + yaml-merge (7.1.0) yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd @@ -541,6 +863,7 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 + zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH diff --git a/gems/json-merge/Rakefile b/gems/json-merge/Rakefile index cd3637459..eb14b860c 100644 --- a/gems/json-merge/Rakefile +++ b/gems/json-merge/Rakefile @@ -130,23 +130,23 @@ end ### DUPLICATE DRIFT TASKS begin - require 'kettle/drift' + require "kettle/drift" Kettle::Drift.install_tasks rescue LoadError - desc('(stub) kettle:drift:check is unavailable') - task('kettle:drift:check') do + desc("(stub) kettle:drift:check is unavailable") + task("kettle:drift:check") do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc('(stub) kettle:drift:update is unavailable') - task('kettle:drift:update') do + desc("(stub) kettle:drift:update is unavailable") + task("kettle:drift:update") do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc('(stub) kettle:drift:force_update is unavailable') - task('kettle:drift:force_update') do + desc("(stub) kettle:drift:force_update is unavailable") + task("kettle:drift:force_update") do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc('(stub) kettle:drift is unavailable') - task('kettle:drift' => 'kettle:drift:update') + desc("(stub) kettle:drift is unavailable") + task("kettle:drift" => "kettle:drift:update") end ### TEMPLATING TASKS diff --git a/gems/json-merge/lib/json/merge/version.rb b/gems/json-merge/lib/json/merge/version.rb index 13f521eb3..d02d9f1a5 100644 --- a/gems/json-merge/lib/json/merge/version.rb +++ b/gems/json-merge/lib/json/merge/version.rb @@ -3,7 +3,7 @@ module Json module Merge module Version - VERSION = '7.1.0' + VERSION = "7.1.0" end VERSION = Version::VERSION # Traditional Constant Location end diff --git a/gems/markdown-merge/Gemfile.lock b/gems/markdown-merge/Gemfile.lock index 32524e741..82db2ab53 100644 --- a/gems/markdown-merge/Gemfile.lock +++ b/gems/markdown-merge/Gemfile.lock @@ -7,7 +7,39 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/ast-merge + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly + specs: + ast-crispr-markdown-markly (7.1.0) + ast-crispr (= 7.1.0) + markly-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism + specs: + ast-crispr-ruby-prism (7.1.0) + ast-crispr (= 7.1.0) + prism-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr + specs: + ast-crispr (7.1.0) + ast-merge (= 7.1.0) + service_actor (~> 3.9) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git + specs: + ast-merge-git (7.1.0) + ast-merge (= 7.1.0) + json-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge specs: ast-merge (7.1.0) benchmark @@ -16,7 +48,193 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/tree_haver + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template + specs: + ast-template (7.1.0) + ast-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge + specs: + bash-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge + specs: + binary-merge (7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge + specs: + citrus-toml-merge (7.1.0) + toml-merge (= 7.1.0) + toml-rb (~> 4.1) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge + specs: + commonmarker-merge (7.1.0) + commonmarker (~> 2.2) + markdown-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge + specs: + dotenv-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge + specs: + go-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge + specs: + json-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem + specs: + kettle-jem (7.1.0) + addressable (>= 2.8, < 3) + ast-crispr-markdown-markly (= 7.1.0) + ast-crispr-ruby-prism (= 7.1.0) + ast-merge (= 7.1.0) + bash-merge (= 7.1.0) + citrus-toml-merge (= 7.1.0) + commonmarker-merge (= 7.1.0) + dotenv-merge (= 7.1.0) + json-merge (= 7.1.0) + kettle-dev (~> 2.3, >= 2.3.5) + kettle-rb (~> 0.1, >= 0.1.4) + kramdown-merge (= 7.1.0) + markdown-merge (= 7.1.0) + markly-merge (= 7.1.0) + prism-merge (= 7.1.0) + psych-merge (= 7.1.0) + rbs (>= 3.10) + rbs-merge (= 7.1.0) + ruby-merge (= 7.1.0) + token-resolver (~> 2.0, >= 2.0.4) + toml-merge (= 7.1.0) + toml-rb (~> 4.2) + tree_haver (= 7.1.0) + yaml-merge (= 7.1.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge + specs: + kramdown-merge (7.1.0) + kramdown (~> 2.5) + markdown-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge + specs: + markly-merge (7.1.0) + markdown-merge (= 7.1.0) + markly (~> 0.9) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge + specs: + parslet-toml-merge (7.1.0) + toml (~> 0.3) + toml-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge + specs: + plain-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge + specs: + prism-merge (7.1.0) + prism (~> 1.6) + ruby-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge + specs: + psych-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + yaml-merge (= 7.1.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge + specs: + rbs-merge (7.1.0) + ast-merge (= 7.1.0) + rbs (>= 3.10) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge + specs: + ruby-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge + specs: + rust-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb + specs: + smorg-rb (7.1.0) + ast-merge (= 7.1.0) + ast-merge-git (= 7.1.0) + go-merge (= 7.1.0) + json-merge (= 7.1.0) + kettle-jem (= 7.1.0) + markly-merge (= 7.1.0) + plain-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge + specs: + toml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver specs: tree_haver (7.1.0) citrus (~> 3.0) @@ -24,6 +242,29 @@ PATH tree_sitter_language_pack (>= 1.13.2, < 2.0) version_gem (~> 1.1, >= 1.1.9) +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge + specs: + typescript-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge + specs: + yaml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge + specs: + zip-merge (7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + GEM remote: https://gem.coop/ specs: @@ -48,6 +289,11 @@ GEM cgi (0.5.2) citrus (3.0.2) cmdparse (3.0.7) + commonmarker (2.9.0-aarch64-linux) + commonmarker (2.9.0-aarch64-linux-musl) + commonmarker (2.9.0-arm64-darwin) + commonmarker (2.9.0-x86_64-linux) + commonmarker (2.9.0-x86_64-linux-musl) concurrent-ruby (1.3.8) date (3.5.1) debug (1.11.1) @@ -110,6 +356,8 @@ GEM kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) + kettle-drift (1.0.6) + version_gem (~> 1.1, >= 1.1.14) kettle-rb (0.1.5) kettle-soup-cover (3.0.4) kettle-wash (~> 0.1, >= 0.1.0) @@ -138,6 +386,7 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) + markly (0.16.0) mutex_m (0.3.0) nokogiri (1.19.4-aarch64-linux-gnu) racc (~> 1.4) @@ -300,6 +549,8 @@ GEM ruby-progressbar (1.13.0) ruby_engine (2.0.3) ruby_version (1.0.3) + service_actor (3.9.4) + zeitwerk (>= 1.0) silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) @@ -354,6 +605,11 @@ GEM token-resolver (2.0.5) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.14) + toml (0.3.0) + parslet (>= 1.8.0, < 3.0.0) + toml-rb (4.2.0) + citrus (~> 3.0, > 3.0) + racc (~> 1.7) tree_sitter_language_pack (1.13.3-aarch64-linux) sorbet-runtime (~> 0.5) tree_sitter_language_pack (1.13.3-arm64-darwin) @@ -408,25 +664,46 @@ DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) appraisal2-rubocop (~> 1.0, >= 1.0.0) + ast-crispr! + ast-crispr-markdown-markly! + ast-crispr-ruby-prism! ast-merge! + ast-merge-git! + ast-template! + bash-merge! benchmark (~> 0.5, >= 0.5.0) + binary-merge! bundler-audit (~> 0.9.3) cgi (~> 0.5) + citrus-toml-merge! + commonmarker-merge! debug (>= 1.1) + dotenv-merge! erb (~> 6.0, >= 6.0.6) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.0) + go-merge! irb (~> 1.17) + json-merge! kettle-dev (~> 2.0, >= 2.2.25) + kettle-drift (~> 1.0, >= 1.0.6) + kettle-jem! kettle-soup-cover (~> 3.0, >= 3.0.3) kettle-test (~> 2.0, >= 2.0.9) kramdown (~> 2.5, >= 2.5.2) + kramdown-merge! kramdown-parser-gfm (~> 1.1) markdown-merge! + markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) + parslet-toml-merge! + plain-merge! + prism-merge! + psych-merge! rake (~> 13.0) rbs (>= 3.0) + rbs-merge! rdoc (~> 6.11) reek (~> 6.5, >= 6.5.0) require_bench (~> 1.0, >= 1.0.4) @@ -437,20 +714,27 @@ DEPENDENCIES rubocop-on-rbs (~> 2.0, >= 2.0.0) rubocop-packaging (~> 0.6, >= 0.6.0) rubocop-ruby3_2 (~> 3.0, >= 3.0.6) + ruby-merge! ruby-progressbar (~> 1.13) + rust-merge! + smorg-rb! standard (~> 1.56, >= 1.56.0) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) + toml-merge! tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) + typescript-merge! webrick (~> 1.9) yaml-converter (~> 0.2, >= 0.2.3) + yaml-merge! yard (~> 0.9, >= 0.9.45) yard-fence (~> 0.9, >= 0.9.6) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) yard-timekeeper (~> 0.2, >= 0.2.4) yard-yaml (~> 0.2, >= 0.2.3) + zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af @@ -458,20 +742,35 @@ CHECKSUMS appraisal2 (3.2.0) sha256=ccd0b767ac4060cd7af6d16747459b6990f49c39c7b4fb1f7d1146b1e97c492f appraisal2-rubocop (1.0.0) sha256=b71410fbb014befda5340605a605b7f6f3f012739baf0acc5b4351b592c3258d ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 + ast-crispr (7.1.0) + ast-crispr-markdown-markly (7.1.0) + ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) + ast-merge-git (7.1.0) + ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 + bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd + binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 + citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 + commonmarker (2.9.0-aarch64-linux) sha256=e2b4aadb9a2cfa4e206582641ce3a49465549ac1ed4c289fdd63b78d8f24579c + commonmarker (2.9.0-aarch64-linux-musl) sha256=1cf4d2821f2a7e64945f1ed7c4eeced586fdb27ea7fe7337788802cf8f57cfca + commonmarker (2.9.0-arm64-darwin) sha256=1748dbfa4f5813b0d2a14bb4bbfa65a4ec293aa1c825016d60029ee0e132b046 + commonmarker (2.9.0-x86_64-linux) sha256=8cfe92970eef585a19ddf6613224b91cab64d6029834661bda801f877c9c7f43 + commonmarker (2.9.0-x86_64-linux-musl) sha256=293921398b839f79ceaf55010e061357e34f053822c3b003cd0be6686176335e + commonmarker-merge (7.1.0) concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 + dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -484,21 +783,28 @@ CHECKSUMS gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f + go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 + json-merge (7.1.0) kettle-dev (2.3.8) sha256=9d716ff21c660a730cb4e8d41e2e2f0630a28167a354b6e2924e242102aef72c + kettle-drift (1.0.6) sha256=46eda08fa4411d1f3c6682a95eef1c9df4e94611b3949f49d4c7b43c0ed356a3 + kettle-jem (7.1.0) kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f kettle-soup-cover (3.0.4) kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa + kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 markdown-merge (7.1.0) + markly (0.16.0) sha256=6f70d79e385b1efc9e171f74c81628826259039fe6c778e03c3924c71dac5511 + markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-aarch64-linux-gnu) sha256=1269fb644a6de405057a53dd5c762b1209b43ca7424f839454d3dbc677c31a8f nokogiri (1.19.4-aarch64-linux-musl) sha256=35c65b9ce72b3bb03207bdbe7067915019dc18c1b9b59139684bd6690fdd01af @@ -512,15 +818,20 @@ CHECKSUMS parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 + parslet-toml-merge (7.1.0) + plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 + prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 + psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 + rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb @@ -555,15 +866,19 @@ CHECKSUMS rubocop-rspec_rails (2.32.0) sha256=4a0d641c72f6ebb957534f539d9d0a62c47abd8ce0d0aeee1ef4701e892a9100 rubocop-ruby3_2 (3.0.7) sha256=f53dd6d286fb05186214fc6ec116783e7f837030918e8931c05de773e98f8466 rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 + ruby-merge (7.1.0) ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 + rust-merge (7.1.0) + service_actor (3.9.4) sha256=e63b523630b9a7e62959b2a90113b08d2565b5de9c148557b281ef847c9539ce silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed + smorg-rb (7.1.0) sorbet-runtime (0.6.13347) sha256=54e7221d9f4b63f58aec79f3043752a9ba7810347c6ae0d903531591cc2d5f01 standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b @@ -578,17 +893,22 @@ CHECKSUMS timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.5) sha256=b852f924287ffb58a440856e862b056c8ad97e74b4b2526cee43e0771f40c25c + toml (0.3.0) sha256=0a91d0f76a9036e84e44f95693b12f58d358c1df3ac8e3b5271f2056ecc6e4b9 + toml-merge (7.1.0) + toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-aarch64-linux) sha256=55ffc7c87868cb45658338363d9eba51b4a8b0259aa88e4de368d2bd1d52fea4 tree_sitter_language_pack (1.13.3-arm64-darwin) sha256=bc2498db605f212a1dbd2465ed3f65190d7da786f6ed5d30fcf958121aeb4a5c tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 + typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 webrick (1.9.2) sha256=beb4a15fc474defed24a3bda4ffd88a490d517c9e4e6118c3edce59e45864131 yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 + yaml-merge (7.1.0) yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd @@ -596,6 +916,7 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 + zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH diff --git a/gems/markly-merge/.kettle-drift.lock b/gems/markly-merge/.kettle-drift.lock index d28e306b0..bf85fa76f 100644 --- a/gems/markly-merge/.kettle-drift.lock +++ b/gems/markly-merge/.kettle-drift.lock @@ -52,14 +52,5 @@ 87 ] } - ], - "vendored_gems_env: 'VENDORED_GEMS',\nvendor_gem_dir_env: 'VENDOR_GEM_DIR',": [ - { - "file": "gemfiles/modular/templating_local.gemfile", - "lines": [ - 55, - 66 - ] - } ] } diff --git a/gems/markly-merge/.rubocop_gradual.lock b/gems/markly-merge/.rubocop_gradual.lock index 25c0e24b6..48b28907e 100644 --- a/gems/markly-merge/.rubocop_gradual.lock +++ b/gems/markly-merge/.rubocop_gradual.lock @@ -15,13 +15,20 @@ [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] ], + "gemfiles/modular/cgi/r4/v0.5.gemfile:367169322": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/cgi/vHEAD.gemfile:2729540777": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], "gemfiles/modular/erb/r2/v3.0.gemfile:1688285565": [ [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] ], - "gemfiles/modular/erb/r3/v5.0.gemfile:2150258305": [ + "gemfiles/modular/erb/r3/v5.0.gemfile:2394062339": [ [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] ], - "gemfiles/modular/erb/r4/v5.0.gemfile:2150258305": [ + "gemfiles/modular/erb/r4/v5.0.gemfile:2394062339": [ [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] ], "gemfiles/modular/erb/vHEAD.gemfile:981929959": [ @@ -57,6 +64,13 @@ [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] ], + "gemfiles/modular/webrick/r4/v1.9.gemfile:3092661193": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/webrick/vHEAD.gemfile:3867684682": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], "gemfiles/modular/x_std_libs.gemfile:2324400122": [ [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] ], @@ -66,10 +80,10 @@ "gemfiles/modular/x_std_libs/r3/libs.gemfile:4030570297": [ [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] ], - "gemfiles/modular/x_std_libs/r4/libs.gemfile:909736663": [ + "gemfiles/modular/x_std_libs/r4/libs.gemfile:732451732": [ [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] ], - "gemfiles/modular/x_std_libs/vHEAD.gemfile:907917303": [ + "gemfiles/modular/x_std_libs/vHEAD.gemfile:2390363993": [ [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] ], diff --git a/gems/markly-merge/Gemfile b/gems/markly-merge/Gemfile index 823b869e5..df0ad8be7 100644 --- a/gems/markly-merge/Gemfile +++ b/gems/markly-merge/Gemfile @@ -6,7 +6,7 @@ # kettle-jem will then preserve content between those markers across template runs. # kettle-jem:unfreeze -source "https://gem.coop" +source 'https://gem.coop' git_source(:codeberg) { |repo_name| "https://codeberg.org/#{repo_name}" } git_source(:gitlab) { |repo_name| "https://gitlab.com/#{repo_name}" } @@ -19,57 +19,53 @@ git_source(:gitlab) { |repo_name| "https://gitlab.com/#{repo_name}" } gemspec # Local workspace dependency wiring for *_local.gemfile overrides -nomono_requirements = ["~> 1.0", ">= 1.0.8"] -gem "nomono", *nomono_requirements, require: false # ruby >= 2.2 +nomono_requirements = ['~> 1.0', '>= 1.0.8'] +gem 'nomono', *nomono_requirements, require: false # ruby >= 2.2 # Direct sibling dependencies (env-switched via STRUCTUREDMERGE_DEV) direct_sibling_gems = %w[ markdown-merge ] -direct_sibling_dev = ENV.fetch("STRUCTUREDMERGE_DEV", "") +direct_sibling_dev = ENV.fetch('STRUCTUREDMERGE_DEV', '') direct_sibling_local = !direct_sibling_dev.empty? && !%w[false 0 no off].include?(direct_sibling_dev.downcase) -direct_sibling_templating = ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? +direct_sibling_templating = ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero?) - direct_sibling_dev_was_set = ENV.key?("STRUCTUREDMERGE_DEV") - direct_sibling_dev_original = ENV.fetch("STRUCTUREDMERGE_DEV", nil) + (direct_sibling_local || + ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) + direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') + direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) begin nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path("Gemfile.lock", __dir__) + nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == "nomono" } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - if nomono_locked - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] - end - end - Kernel.send(:gem, "nomono", *nomono_activation_requirements) - require "nomono/bundler" - if direct_sibling_templating && !direct_sibling_local - ENV["STRUCTUREDMERGE_DEV"] = File.expand_path("..", __dir__) + Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked end + Kernel.send(:gem, 'nomono', *nomono_activation_requirements) + require 'nomono/bundler' + ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local eval_nomono_gems( gems: direct_sibling_gems, - prefix: "STRUCTUREDMERGE", - path_env: "STRUCTUREDMERGE_DEV", - root: ["src", "my", "structuredmerge"] + prefix: 'STRUCTUREDMERGE', + path_env: 'STRUCTUREDMERGE_DEV', + root: %w[src my structuredmerge] ) rescue LoadError - warn "Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies." + warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' ensure if direct_sibling_templating && !direct_sibling_local if direct_sibling_dev_was_set - ENV["STRUCTUREDMERGE_DEV"] = direct_sibling_dev_original + ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original else - ENV.delete("STRUCTUREDMERGE_DEV") + ENV.delete('STRUCTUREDMERGE_DEV') end end end @@ -116,28 +112,28 @@ if direct_sibling_gems.any? && end # Use released TSLP with the Ruby ABI platform-gem fix. -gem "tree_sitter_language_pack", "~> 1.13", ">= 1.13.3" +gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' # Templating (env-switched: STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local paths) -eval_gemfile "gemfiles/modular/templating.gemfile" if ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? +eval_gemfile 'gemfiles/modular/templating.gemfile' if ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? # Debugging -eval_gemfile "gemfiles/modular/debug.gemfile" +eval_gemfile 'gemfiles/modular/debug.gemfile' # Code Coverage (env-switched: KETTLE_DEV_DEV=true for local paths) -eval_gemfile "gemfiles/modular/coverage.gemfile" +eval_gemfile 'gemfiles/modular/coverage.gemfile' # Linting -eval_gemfile "gemfiles/modular/style.gemfile" +eval_gemfile 'gemfiles/modular/style.gemfile' # Documentation -eval_gemfile "gemfiles/modular/documentation.gemfile" +eval_gemfile 'gemfiles/modular/documentation.gemfile' # Optional -eval_gemfile "gemfiles/modular/optional.gemfile" +eval_gemfile 'gemfiles/modular/optional.gemfile' ### Std Lib Extracted Gems -eval_gemfile "gemfiles/modular/x_std_libs.gemfile" +eval_gemfile 'gemfiles/modular/x_std_libs.gemfile' # See unlocked_deps appraisal for more details on irb inclusion -gem "irb", "~> 1.17" # ruby >= 2.7 +gem 'irb', '~> 1.17' # ruby >= 2.7 diff --git a/gems/markly-merge/Gemfile.lock b/gems/markly-merge/Gemfile.lock index 83f633660..4ae183f20 100644 --- a/gems/markly-merge/Gemfile.lock +++ b/gems/markly-merge/Gemfile.lock @@ -7,7 +7,7 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge specs: markdown-merge (7.1.0) ast-merge (= 7.1.0) @@ -24,6 +24,10 @@ GEM bundler (>= 1.17.3) rake (>= 10) thor (>= 0.14) + appraisal2-rubocop (1.0.0) + appraisal2 (>= 3.1.4) + rubocop (>= 1.0) + version_gem (~> 1.1, >= 1.1.14) ast (2.4.3) ast-merge (7.1.0) benchmark @@ -36,6 +40,7 @@ GEM bundler-audit (0.9.3) bundler (>= 1.2.0) thor (~> 1.0) + cgi (0.5.2) citrus (3.0.2) cmdparse (3.0.7) concurrent-ruby (1.3.8) @@ -46,7 +51,6 @@ GEM delegate (0.6.1) diff-lcs (1.6.2) diffy (3.4.4) - docile (1.4.1) dry-configurable (1.4.0) dry-core (~> 1.0) zeitwerk (~> 2.6) @@ -77,7 +81,7 @@ GEM dry-logic (~> 1.4) zeitwerk (~> 2.6) emoji_regex (15.0.0) - erb (6.0.5) + erb (6.0.6) gem_bench (2.0.5) bundler (>= 1.14) version_gem (~> 1.1, >= 1.1.4) @@ -96,22 +100,20 @@ GEM rdoc (>= 4.0.0) reline (>= 0.4.2) json (2.21.1) - kettle-dev (2.3.7) + kettle-dev (2.3.8) emoji_regex (>= 15.0) kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) - kettle-rb (0.1.4) - kettle-soup-cover (1.1.3) - simplecov (~> 0.22) - simplecov-cobertura (~> 3.0) - simplecov-console (~> 0.9, >= 0.9.3) - simplecov-html (~> 0.13, >= 0.13.1) - simplecov-lcov (~> 0.8) + kettle-rb (0.1.5) + kettle-soup-cover (3.0.4) + kettle-wash (~> 0.1, >= 0.1.0) + simplecov (>= 1.0) + simplecov-cobertura (>= 4.0) + simplecov-console (~> 0.9, >= 0.9.5) simplecov-rcov (~> 0.3, >= 0.3.7) - simplecov_json_formatter (~> 0.1, >= 0.1.4) - version_gem (~> 1.1, >= 1.1.9) - kettle-test (2.0.11) + simplecov_lcov_formatter (~> 0.9, >= 0.9.0) + kettle-test (2.0.12) appraisal2 (~> 3.0, >= 3.0.6) backports (~> 3.0) rspec (~> 3.0) @@ -122,6 +124,8 @@ GEM silent_stream (~> 1.0, >= 1.0.12) timecop-rspec (~> 1.0, >= 1.0.3) turbo_tests2 (~> 3.1, >= 3.1.12) + kettle-wash (0.1.1) + version_gem (~> 1.1, >= 1.1.14) kramdown (2.5.2) rexml (>= 3.4.4) kramdown-parser-gfm (1.1.0) @@ -209,6 +213,14 @@ GEM rubocop-ast (1.50.0) parser (>= 3.3.7.2) prism (~> 1.7) + rubocop-capybara (2.23.0) + lint_roller (~> 1.1) + rubocop (~> 1.81) + rubocop-env (0.1.0) + rubocop + rubocop-factory_bot (2.28.0) + lint_roller (~> 1.1) + rubocop (~> 1.72, >= 1.72.1) rubocop-gradual (0.4.0) benchmark diff-lcs (>= 1.2.0, < 2.0) @@ -216,13 +228,26 @@ GEM parallel (~> 1.10) rainbow (>= 2.2.2, < 4.0) rubocop (~> 1.0) - rubocop-lts (24.1.0) - rubocop-ruby3_2 (>= 3.0.0, < 4) - standard-rubocop-lts (>= 2.0.2, < 3) - version_gem (>= 1.1.2, < 3) + rubocop-lts (24.2.2) + rubocop-ruby3_2 (~> 3.0, >= 3.0.1) + standard-rubocop-lts (~> 2.0, >= 2.0.3) + version_gem (~> 1.1, >= 1.1.13) + rubocop-lts-rspec (1.0.5) + rubocop (~> 1.84, >= 1.84.2) + rubocop-env (~> 0.1, >= 0.1.0) + rubocop-factory_bot (~> 2.28, >= 2.28.0) + rubocop-rspec (~> 3.9, >= 3.9.0) + rubocop-rspec-extra (~> 0.3, >= 0.3.0) + standard (~> 1.54, >= 1.54.0) + standard-rspec (~> 0.5, >= 0.5.0) + version_gem (~> 1.1, >= 1.1.13) rubocop-md (2.0.4) lint_roller (~> 1.1) rubocop (>= 1.72.1) + rubocop-minitest (0.40.0) + lint_roller (~> 1.1) + rubocop (>= 1.75.0, < 2.0) + rubocop-ast (>= 1.38.0, < 2.0) rubocop-on-rbs (2.0.0) lint_roller (~> 1.1) rbs (~> 4.0) @@ -242,6 +267,13 @@ GEM lint_roller (~> 1.1) regexp_parser (>= 2.0) rubocop (~> 1.86, >= 1.86.2) + rubocop-rspec-extra (0.3.0) + lint_roller (~> 1.1) + rubocop (>= 1.72.1, < 2.0) + rubocop-rspec_rails (2.32.0) + lint_roller (~> 1.1) + rubocop (~> 1.72, >= 1.72.1) + rubocop-rspec (~> 3.5) rubocop-ruby3_2 (3.0.7) rubocop-gradual (~> 0.3, >= 0.3.6) rubocop-md (~> 2.0, >= 2.0.4) @@ -259,22 +291,18 @@ GEM silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) - simplecov (0.22.0) - docile (~> 1.1) - simplecov-html (~> 0.11) - simplecov_json_formatter (~> 0.1) - simplecov-cobertura (3.2.0) + simplecov (1.0.2) + simplecov-cobertura (4.0.0) rexml - simplecov (~> 0.19) + simplecov (~> 1.0) simplecov-console (0.9.5) ansi simplecov terminal-table - simplecov-html (0.13.2) - simplecov-lcov (0.9.0) simplecov-rcov (0.3.7) simplecov (>= 0.4.1) - simplecov_json_formatter (0.1.4) + simplecov_lcov_formatter (0.9.0) + simplecov (>= 0.18) sorbet-runtime (0.6.13347) standard (1.56.0) language_server-protocol (~> 3.17.0.2) @@ -288,6 +316,12 @@ GEM standard-performance (1.9.0) lint_roller (~> 1.1) rubocop-performance (~> 1.26.0) + standard-rspec (0.5.0) + lint_roller (>= 1.0) + rubocop-capybara (~> 2.23) + rubocop-factory_bot (~> 2.27) + rubocop-rspec (~> 3.9) + rubocop-rspec_rails (~> 2.31) standard-rubocop-lts (2.0.10) standard (~> 1.54, >= 1.54.0) standard-custom (~> 1.0, >= 1.0.2) @@ -305,9 +339,9 @@ GEM delegate (~> 0.1) rspec (~> 3.0) timecop (>= 0.7, < 1) - token-resolver (2.0.4) + token-resolver (2.0.5) parslet (~> 2.0) - version_gem (~> 1.1, >= 1.1.13) + version_gem (~> 1.1, >= 1.1.14) tree_haver (7.1.0) citrus (~> 3.0) parslet (~> 2.0) @@ -324,6 +358,7 @@ GEM unicode-emoji (~> 4.1) unicode-emoji (4.2.0) version_gem (1.1.14) + webrick (1.9.2) yaml-converter (0.2.3) hexapdf (>= 1.8, < 2) kramdown (>= 2.4, < 3) @@ -356,17 +391,19 @@ PLATFORMS DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) + appraisal2-rubocop (~> 1.0, >= 1.0.0) benchmark (~> 0.5, >= 0.5.0) bundler-audit (~> 0.9.3) + cgi (~> 0.5) debug (>= 1.1) - erb (~> 6.0, >= 6.0.4) + erb (~> 6.0, >= 6.0.6) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.0) irb (~> 1.17) kettle-dev (~> 2.0, >= 2.2.25) - kettle-soup-cover (~> 1.0, >= 1.1.3) + kettle-soup-cover (~> 3.0, >= 3.0.3) kettle-test (~> 2.0, >= 2.0.9) - kramdown (~> 2.5, >= 2.5.1) + kramdown (~> 2.5, >= 2.5.2) kramdown-parser-gfm (~> 1.1) markdown-merge! markly-merge! @@ -375,36 +412,41 @@ DEPENDENCIES rake (~> 13.0) rbs (>= 3.0) rdoc (~> 6.11) - reek (~> 6.5) + reek (~> 6.5, >= 6.5.0) require_bench (~> 1.0, >= 1.0.4) - rubocop-lts (~> 24.1.0) - rubocop-on-rbs (~> 2.0) + rubocop-gradual (~> 0.4, >= 0.4.0) + rubocop-lts (~> 24.2, >= 24.2.1) + rubocop-lts-rspec (~> 1.0, >= 1.0.5) + rubocop-minitest (~> 0.40, >= 0.40.0) + rubocop-on-rbs (~> 2.0, >= 2.0.0) rubocop-packaging (~> 0.6, >= 0.6.0) - rubocop-rspec (~> 3.6) - rubocop-ruby3_2 (~> 3.0.0) + rubocop-ruby3_2 (~> 3.0, >= 3.0.6) ruby-progressbar (~> 1.13) - standard (>= 1.50) + standard (~> 1.56, >= 1.56.0) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) tree_sitter_language_pack (~> 1.13, >= 1.13.3) - yaml-converter (~> 0.1) - yard (~> 0.9, >= 0.9.44) - yard-fence (~> 0.9, >= 0.9.1) + webrick (~> 1.9) + yaml-converter (~> 0.2, >= 0.2.3) + yard (~> 0.9, >= 0.9.45) + yard-fence (~> 0.9, >= 0.9.6) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) - yard-timekeeper (~> 0.1) - yard-yaml (~> 0.1, >= 0.1.2) + yard-timekeeper (~> 0.2, >= 0.2.4) + yard-yaml (~> 0.2, >= 0.2.3) CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af ansi (1.6.0) sha256=ac9ea0c0ea8d32fb4e271348e609963ac78882f34b73836c2a02b3622e666658 appraisal2 (3.2.0) sha256=ccd0b767ac4060cd7af6d16747459b6990f49c39c7b4fb1f7d1146b1e97c492f + appraisal2-rubocop (1.0.0) sha256=b71410fbb014befda5340605a605b7f6f3f012739baf0acc5b4351b592c3258d ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 ast-merge (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 + cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 @@ -413,7 +455,6 @@ CHECKSUMS delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 - docile (1.4.1) sha256=96159be799bfa73cdb721b840e9802126e4e03dfc26863db73647204c727f21e dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -422,7 +463,7 @@ CHECKSUMS dry-schema (1.16.0) sha256=cd3aaeabc0f1af66ec82a29096d4c4fb92a0a58b9dae29a22b1bbceb78985727 dry-types (1.9.1) sha256=baebeecdb9f8395d6c9d227b62011279440943e3ef2468fe8ccc1ba11467f178 emoji_regex (15.0.0) sha256=a508b2c0bee561169564e0aec96085020c900520d335e5533fd8e78e59493829 - erb (6.0.5) sha256=858e63488cb796c9daba8b6e9ff4b3879c395022049be9a66a8e00980e612eac + erb (6.0.6) sha256=a9b24986700f5bf127c4f297c5403c3ca41b83b0a316c0cd09a096b56e644ae5 gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f @@ -430,10 +471,11 @@ CHECKSUMS io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 - kettle-dev (2.3.7) sha256=eb370113cd030d03cbe2d33b31c99858951017e5ad21a17e9ed89dc3770028ee - kettle-rb (0.1.4) sha256=9cef7ce4f7021666b7222292f29051e51eaf042e8a5db11f3f4dd72f74243fc1 - kettle-soup-cover (1.1.3) sha256=a373827da22a7131d093afd32945e5b7d7a10a01ebfdded8fd2cb8230d69c8ad - kettle-test (2.0.11) sha256=c710c90f7ab79d51f9452f0c09f5f90657e7a893f63583855c164d0b1b107ab2 + kettle-dev (2.3.8) sha256=9d716ff21c660a730cb4e8d41e2e2f0630a28167a354b6e2924e242102aef72c + kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f + kettle-soup-cover (3.0.4) + kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 + kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 @@ -477,31 +519,37 @@ CHECKSUMS rspec_junit_formatter (0.6.0) sha256=40dde674e6ae4e6cc0ff560da25497677e34fefd2338cc467a8972f602b62b15 rubocop (1.88.2) sha256=8def251c90cd955feb4daa3edc0ab56893250c4ce90ef81e6c80c03f9a939bbf rubocop-ast (1.50.0) sha256=b9ca88300da0803ee222ad20cdb30494c0a784eed06fdc35d254b06d662788db + rubocop-capybara (2.23.0) sha256=f9ea1ba3a7561ee8e88cf76fc378ce517ce5327155f305ee7b5c2500e5aee357 + rubocop-env (0.1.0) sha256=5ab9a259e71822bf514c8e900a9b68cc2f74ccc87d5493efcd03213f3068e718 + rubocop-factory_bot (2.28.0) sha256=4b17fc02124444173317e131759d195b0d762844a71a29fe8139c1105d92f0cb rubocop-gradual (0.4.0) sha256=9c7e584e6fef6c2539266a193a4572c970c22f99046fd6b0305bdde6228f96ad - rubocop-lts (24.1.0) sha256=9dcad4db2da2fe2f1f77f98c917d70e7c43eded703da14cd201d4be52a9272aa + rubocop-lts (24.2.2) sha256=be6c745e1bb61daebd6af3cc3227c60f95be9f642a080773cad7df14c5f9f174 + rubocop-lts-rspec (1.0.5) sha256=439552fd27440802cc499889e013bffa28aadc41adae5d4dfff3d984a2a809b4 rubocop-md (2.0.4) sha256=0d076b6b5e99dea2ddc928c4bd702497decb9a8400da7808091e02ebcafcfb93 + rubocop-minitest (0.40.0) sha256=353c698199115f12151144cf0b5a96f69bb9d77b660cf6536df2c4250c672a9d rubocop-on-rbs (2.0.0) sha256=ce74d1b3d5daead19f4b611623656c185821dfc9aed9c7079bb1e5d7d7c464be rubocop-packaging (0.6.0) sha256=fb92bd0fb48e6f8cdb1648d2249b0cd51c2497dcc87340132d22f01edbf558a7 rubocop-performance (1.26.1) sha256=cd19b936ff196df85829d264b522fd4f98b6c89ad271fa52744a8c11b8f71834 rubocop-rake (0.7.1) sha256=3797f2b6810c3e9df7376c26d5f44f3475eda59eb1adc38e6f62ecf027cbae4d rubocop-rspec (3.10.2) sha256=0b3e2ecc592cd10ecbf0095bb58d1e357905276e069643523cc19eb7495f65e2 + rubocop-rspec-extra (0.3.0) sha256=ee4b6484d0332a0d23c4a465eeb607e41888eb3d4ed479f850b9f5212514f787 + rubocop-rspec_rails (2.32.0) sha256=4a0d641c72f6ebb957534f539d9d0a62c47abd8ce0d0aeee1ef4701e892a9100 rubocop-ruby3_2 (3.0.7) sha256=f53dd6d286fb05186214fc6ec116783e7f837030918e8931c05de773e98f8466 rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 - simplecov (0.22.0) sha256=fe2622c7834ff23b98066bb0a854284b2729a569ac659f82621fc22ef36213a5 - simplecov-cobertura (3.2.0) sha256=70d702658677fcb20e5aceb6915ccf8bc62ff2ccd38b62b3ad5c9db5c0888740 + simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 + simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 - simplecov-html (0.13.2) sha256=bd0b8e54e7c2d7685927e8d6286466359b6f16b18cb0df47b508e8d73c777246 - simplecov-lcov (0.9.0) sha256=7a77a31e200a595ed4b0249493056efd0c920601f53d2ef135ca34ee796346cd simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc - simplecov_json_formatter (0.1.4) sha256=529418fbe8de1713ac2b2d612aa3daa56d316975d307244399fa4838c601b428 + simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed sorbet-runtime (0.6.13347) sha256=54e7221d9f4b63f58aec79f3043752a9ba7810347c6ae0d903531591cc2d5f01 standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b standard-performance (1.9.0) sha256=49483d31be448292951d80e5e67cdcb576c2502103c7b40aec6f1b6e9c88e3f2 + standard-rspec (0.5.0) sha256=64d396524a65af47f5331b423d8cdd313e0267401647bb7892489ca89dad2973 standard-rubocop-lts (2.0.10) sha256=89708a505b7d8b24d2ac399a7520fcb9e764abc2ecb4289b631b5fe0e3b76617 stone_checksums (1.0.6) sha256=c775f830513d6c6ab26e31d1a5fbecd4c4e39002663d4d9f8fa96e97990b5298 stringio (3.2.0) sha256=c37cb2e58b4ffbd33fe5cd948c05934af997b36e0b6ca6fdf43afa234cf222e1 @@ -510,7 +558,7 @@ CHECKSUMS thor (1.5.0) sha256=e3a9e55fe857e44859ce104a84675ab6e8cd59c650a49106a05f55f136425e73 timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 - token-resolver (2.0.4) sha256=33b926958f504525bba3ed511ab66fbcbf8ef30390815e931436b30f27ffcad0 + token-resolver (2.0.5) tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f @@ -518,6 +566,7 @@ CHECKSUMS unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 + webrick (1.9.2) sha256=beb4a15fc474defed24a3bda4ffd88a490d517c9e4e6118c3edce59e45864131 yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 diff --git a/gems/markly-merge/README.md b/gems/markly-merge/README.md index 8e02fe057..d440703e7 100644 --- a/gems/markly-merge/README.md +++ b/gems/markly-merge/README.md @@ -93,7 +93,7 @@ File.write("merged.md", result.to_markdown) | Tokens to Remember | [![Gem name][⛳️name-img]][⛳️gem-name] [![Gem namespace][⛳️namespace-img]][⛳️gem-namespace] | |-------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | Works with MRI Ruby 4 | [![Ruby current Compat][💎ruby-c-i]][🚎11-c-wf]| -| Support & Community | [![Join Me on Daily.dev's RubyFriends][✉️ruby-friends-img]][✉️ruby-friends] [![Live Chat on Discord][✉️discord-invite-img-ftb]][✉️discord-invite] [![Get help from me on Upwork][👨🏼‍🏫expsup-upwork-img]][👨🏼‍🏫expsup-upwork] [![Get help from me on Codementor][👨🏼‍🏫expsup-codementor-img]][👨🏼‍🏫expsup-codementor] | +| Support & Community | [![Join Me on Daily.dev's RubyFriends][✉️ruby-friends-img]][✉️ruby-friends] [![Get help from RubyForum][✉️ruby-forum-img]][✉️ruby-forum] [![Live Chat on Discord][✉️discord-invite-img-ftb]][✉️discord-invite] [![Get help from me on Upwork][👨🏼‍🏫expsup-upwork-img]][👨🏼‍🏫expsup-upwork] [![Get help from me on Codementor][👨🏼‍🏫expsup-codementor-img]][👨🏼‍🏫expsup-codementor] | | Source | [![Source on GitLab.com][📜src-gl-img]][📜src-gl] [![Source on CodeBerg.org][📜src-cb-img]][📜src-cb] [![Source on Github.com][📜src-gh-img]][📜src-gh] [![The best SHA: dQw4w9WgXcQ!][🧮kloc-img]][🧮kloc] | | Documentation | [![Current release on RubyDoc.info][📜docs-cr-rd-img]][🚎yard-current] [![YARD on Galtzo.com][📜docs-head-rd-img]][🚎yard-head] [![Maintainer Blog][🚂maint-blog-img]][🚂maint-blog] [![GitLab Wiki][📜gl-wiki-img]][📜gl-wiki] [![GitHub Wiki][📜gh-wiki-img]][📜gh-wiki] | | Compliance | [![License: AGPL-3.0-only OR PolyForm-Small-Business-1.0.0][📄license-img]][📄license] [![Apache license compatibility: Category X][📄license-compat-img]][📄license-compat] [![📄ilo-declaration-img]][📄ilo-declaration] [![Security Policy][🔐security-img]][🔐security] [![Contributor Covenant 2.1][🪇conduct-img]][🪇conduct] [![SemVer 2.0.0][📌semver-img]][📌semver] | @@ -330,6 +330,8 @@ If none of the available licenses suit your use case, please [contact us](mailto [✉️discord-invite-img-ftb]: https://img.shields.io/discord/1373797679469170758?style=for-the-badge&logo=discord [✉️ruby-friends-img]: https://img.shields.io/badge/daily.dev-%F0%9F%92%8E_Ruby_Friends-0A0A0A?style=for-the-badge&logo=dailydotdev&logoColor=white [✉️ruby-friends]: https://app.daily.dev/squads/rubyfriends +[✉️ruby-forum-img]: https://img.shields.io/badge/RubyForum-Help-CC342D?style=for-the-badge&logo=ruby&logoColor=white +[✉️ruby-forum]: https://www.rubyforum.org/c/help/8 [✇bundle-group-pattern]: https://gist.github.com/pboling/4564780 [⛳️gem-namespace]: https://github.com/structuredmerge/structuredmerge-ruby/tree/main/gems/markly-merge [⛳️namespace-img]: https://img.shields.io/badge/namespace-Markly::Merge-3C2D2D.svg?style=square&logo=ruby&logoColor=white diff --git a/gems/markly-merge/Rakefile b/gems/markly-merge/Rakefile index 319456e08..9946d12a1 100644 --- a/gems/markly-merge/Rakefile +++ b/gems/markly-merge/Rakefile @@ -130,23 +130,23 @@ end ### DUPLICATE DRIFT TASKS begin - require "kettle/drift" + require 'kettle/drift' Kettle::Drift.install_tasks rescue LoadError - desc("(stub) kettle:drift:check is unavailable") - task("kettle:drift:check") do + desc('(stub) kettle:drift:check is unavailable') + task('kettle:drift:check') do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc("(stub) kettle:drift:update is unavailable") - task("kettle:drift:update") do + desc('(stub) kettle:drift:update is unavailable') + task('kettle:drift:update') do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc("(stub) kettle:drift:force_update is unavailable") - task("kettle:drift:force_update") do + desc('(stub) kettle:drift:force_update is unavailable') + task('kettle:drift:force_update') do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc("(stub) kettle:drift is unavailable") - task("kettle:drift" => "kettle:drift:update") + desc('(stub) kettle:drift is unavailable') + task('kettle:drift' => 'kettle:drift:update') end ### TEMPLATING TASKS diff --git a/gems/markly-merge/gemfiles/modular/cgi/r4/v0.5.gemfile b/gems/markly-merge/gemfiles/modular/cgi/r4/v0.5.gemfile new file mode 100644 index 000000000..17ad97260 --- /dev/null +++ b/gems/markly-merge/gemfiles/modular/cgi/r4/v0.5.gemfile @@ -0,0 +1 @@ +gem 'cgi', '~> 0.5' diff --git a/gems/markly-merge/gemfiles/modular/cgi/vHEAD.gemfile b/gems/markly-merge/gemfiles/modular/cgi/vHEAD.gemfile new file mode 100644 index 000000000..650fbf033 --- /dev/null +++ b/gems/markly-merge/gemfiles/modular/cgi/vHEAD.gemfile @@ -0,0 +1 @@ +gem 'cgi', '>= 0.5' diff --git a/gems/markly-merge/gemfiles/modular/coverage.gemfile b/gems/markly-merge/gemfiles/modular/coverage.gemfile index f96d50954..b93014b6b 100644 --- a/gems/markly-merge/gemfiles/modular/coverage.gemfile +++ b/gems/markly-merge/gemfiles/modular/coverage.gemfile @@ -7,7 +7,7 @@ if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? # Coverage (remote/released) platform :mri do - gem 'kettle-soup-cover', '~> 1.0', '>= 1.1.3', require: false + gem 'kettle-soup-cover', '~> 3.0', '>= 3.0.3', require: false end else eval_gemfile 'coverage_local.gemfile' diff --git a/gems/markly-merge/gemfiles/modular/coverage_local.gemfile b/gems/markly-merge/gemfiles/modular/coverage_local.gemfile index 1d935f465..250bbbdb1 100644 --- a/gems/markly-merge/gemfiles/modular/coverage_local.gemfile +++ b/gems/markly-merge/gemfiles/modular/coverage_local.gemfile @@ -3,13 +3,33 @@ # Local path overrides for development. # Loaded by the associated non-local gemfile when KETTLE_DEV_DEV != "false". -require 'nomono/bundler' unless defined?(Nomono) +# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. +# Bundler records that dependency during Gemfile evaluation, but it does not +# activate that exact version before the immediate `require "nomono/bundler"`. +# If multiple compatible nomono versions are installed, RubyGems may activate +# the newest installed version while Gemfile.lock pins an older compatible one; +# Bundler then aborts with "already activated nomono X, but your Gemfile +# requires nomono Y". Prefer the locked compatible version when present, then +# activate it explicitly before requiring the Bundler DSL extension used below. +nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] +nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) +if File.file?(nomono_lockfile) + nomono_locked_spec = Bundler::LockfileParser + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } + nomono_locked = nomono_locked_spec && + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked +end +Kernel.send(:gem, 'nomono', *nomono_activation_requirements) +require 'nomono/bundler' local_gems = %w[kettle-dev kettle-test kettle-soup-cover kettle-drift] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) local_gems_to_eval = local_gems - %w[markly-merge] - declared_gems -# export KETTLE_DEV_DEV=/path/to/kettle-rb +# export KETTLE_DEV_DEV=/path/to/my platform :mri do eval_nomono_gems( gems: local_gems_to_eval, diff --git a/gems/markly-merge/gemfiles/modular/documentation.gemfile b/gems/markly-merge/gemfiles/modular/documentation.gemfile index dff5cc108..9d4535f12 100644 --- a/gems/markly-merge/gemfiles/modular/documentation.gemfile +++ b/gems/markly-merge/gemfiles/modular/documentation.gemfile @@ -7,17 +7,17 @@ # # Documentation -gem 'kramdown', '~> 2.5', '>= 2.5.1', require: false # Ruby >= 2.5 +gem 'kramdown', '~> 2.5', '>= 2.5.2', require: false # Ruby >= 2.5 gem 'kramdown-parser-gfm', '~> 1.1', require: false # Ruby >= 2.3 -gem 'yaml-converter', '~> 0.1', require: false # Ruby >= 3.2 -gem 'yard', '~> 0.9', '>= 0.9.44', require: false +gem 'yaml-converter', '~> 0.2', '>= 0.2.3', require: false # Ruby >= 3.2 +gem 'yard', '~> 0.9', '>= 0.9.45', require: false gem 'yard-junk', '~> 0.1', '>= 0.1.0', require: false # Ruby >= 3.1 gem 'yard-relative_markdown_links', '~> 0.6', require: false if ENV.fetch('GALTZO_FLOSS_DEV', 'false').casecmp('false').zero? - gem 'yard-fence', '~> 0.9', '>= 0.9.1', require: false # Ruby >= 3.2 - gem 'yard-timekeeper', '~> 0.1', require: false - gem 'yard-yaml', '~> 0.1', '>= 0.1.2', require: false + gem 'yard-fence', '~> 0.9', '>= 0.9.6', require: false # Ruby >= 3.2 + gem 'yard-timekeeper', '~> 0.2', '>= 0.2.4', require: false + gem 'yard-yaml', '~> 0.2', '>= 0.2.3', require: false else eval_gemfile 'documentation_local.gemfile' end diff --git a/gems/markly-merge/gemfiles/modular/documentation_local.gemfile b/gems/markly-merge/gemfiles/modular/documentation_local.gemfile index 4d4c2bd95..8608c4052 100644 --- a/gems/markly-merge/gemfiles/modular/documentation_local.gemfile +++ b/gems/markly-merge/gemfiles/modular/documentation_local.gemfile @@ -3,13 +3,35 @@ # Local path overrides for development. # Loaded by the associated non-local gemfile when GALTZO_FLOSS_DEV != "false". -require 'nomono/bundler' unless defined?(Nomono) +# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. +# Bundler records that dependency during Gemfile evaluation, but it does not +# activate that exact version before the immediate `require "nomono/bundler"`. +# If multiple compatible nomono versions are installed, RubyGems may activate +# the newest installed version while Gemfile.lock pins an older compatible one; +# Bundler then aborts with "already activated nomono X, but your Gemfile +# requires nomono Y". Prefer the locked compatible version when present, then +# activate it explicitly before requiring the Bundler DSL extension used below. +nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] +nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) +if File.file?(nomono_lockfile) + nomono_locked_spec = Bundler::LockfileParser + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } + nomono_locked = nomono_locked_spec && + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked +end +Kernel.send(:gem, 'nomono', *nomono_activation_requirements) +require 'nomono/bundler' local_gems = %w[yard-fence yard-timekeeper yard-yaml] +declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) +local_gems_to_eval = local_gems - %w[markly-merge] - declared_gems # export GALTZO_FLOSS_DEV=/path/to/galtzo-floss eval_nomono_gems( - gems: local_gems, + gems: local_gems_to_eval, prefix: 'GALTZO_FLOSS', path_env: 'GALTZO_FLOSS_DEV', vendored_gems_env: 'GALTZO_FLOSS_VENDORED_GEMS', diff --git a/gems/markly-merge/gemfiles/modular/erb/r3/v5.0.gemfile b/gems/markly-merge/gemfiles/modular/erb/r3/v5.0.gemfile index 0e3bf1b97..ec7ff451f 100644 --- a/gems/markly-merge/gemfiles/modular/erb/r3/v5.0.gemfile +++ b/gems/markly-merge/gemfiles/modular/erb/r3/v5.0.gemfile @@ -1 +1 @@ -gem 'erb', '~> 6.0', '>= 6.0.4' # ruby >= 3.2.0 +gem 'erb', '~> 6.0', '>= 6.0.6' # ruby >= 3.2.0 diff --git a/gems/markly-merge/gemfiles/modular/erb/r4/v5.0.gemfile b/gems/markly-merge/gemfiles/modular/erb/r4/v5.0.gemfile index 0e3bf1b97..ec7ff451f 100644 --- a/gems/markly-merge/gemfiles/modular/erb/r4/v5.0.gemfile +++ b/gems/markly-merge/gemfiles/modular/erb/r4/v5.0.gemfile @@ -1 +1 @@ -gem 'erb', '~> 6.0', '>= 6.0.4' # ruby >= 3.2.0 +gem 'erb', '~> 6.0', '>= 6.0.6' # ruby >= 3.2.0 diff --git a/gems/markly-merge/gemfiles/modular/json/truffleruby_22_3.gemfile b/gems/markly-merge/gemfiles/modular/json/truffleruby_22_3.gemfile new file mode 100644 index 000000000..9b2f8d96a --- /dev/null +++ b/gems/markly-merge/gemfiles/modular/json/truffleruby_22_3.gemfile @@ -0,0 +1,6 @@ +# frozen_string_literal: true + +if RUBY_ENGINE == 'truffleruby' && RUBY_ENGINE_VERSION.start_with?('22.3') + # TruffleRuby 22.3 ships the json default gem from its emulated MRI Ruby. + gem 'json', '= 2.5.1' +end diff --git a/gems/markly-merge/gemfiles/modular/json/truffleruby_23_0.gemfile b/gems/markly-merge/gemfiles/modular/json/truffleruby_23_0.gemfile new file mode 100644 index 000000000..d787a5ef4 --- /dev/null +++ b/gems/markly-merge/gemfiles/modular/json/truffleruby_23_0.gemfile @@ -0,0 +1,6 @@ +# frozen_string_literal: true + +if RUBY_ENGINE == 'truffleruby' && RUBY_ENGINE_VERSION.start_with?('23.0') + # TruffleRuby 23.0 ships the json default gem from its emulated MRI Ruby. + gem 'json', '= 2.6.1' +end diff --git a/gems/markly-merge/gemfiles/modular/json/truffleruby_23_1.gemfile b/gems/markly-merge/gemfiles/modular/json/truffleruby_23_1.gemfile new file mode 100644 index 000000000..d78486b0e --- /dev/null +++ b/gems/markly-merge/gemfiles/modular/json/truffleruby_23_1.gemfile @@ -0,0 +1,6 @@ +# frozen_string_literal: true + +if RUBY_ENGINE == 'truffleruby' && RUBY_ENGINE_VERSION.start_with?('23.1') + # TruffleRuby 23.1 ships the json default gem from its emulated MRI Ruby. + gem 'json', '= 2.6.3' +end diff --git a/gems/markly-merge/gemfiles/modular/optional.gemfile b/gems/markly-merge/gemfiles/modular/optional.gemfile index b1c66733b..9ea429538 100644 --- a/gems/markly-merge/gemfiles/modular/optional.gemfile +++ b/gems/markly-merge/gemfiles/modular/optional.gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -# To retain during markly-merge templating: +# To retain during kettle-jem templating: # kettle-jem:freeze # # ... your code # kettle-jem:unfreeze @@ -10,7 +10,6 @@ # Required for curated binstubs generated by kettle-jem install gem 'rbs', '>= 3.0', require: false # ruby >= 3.1 -gem 'stone_checksums', '~> 1.0', '>= 1.0.3', require: false # ruby >= 2.2 # Required for kettle-pre-release # URL parsing with Unicode support (falls back to URI if not available) diff --git a/gems/markly-merge/gemfiles/modular/runtime_heads.gemfile b/gems/markly-merge/gemfiles/modular/runtime_heads.gemfile index b0ad3212e..ebf17c529 100644 --- a/gems/markly-merge/gemfiles/modular/runtime_heads.gemfile +++ b/gems/markly-merge/gemfiles/modular/runtime_heads.gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -# To retain during markly-merge templating: +# To retain during kettle-jem templating: # kettle-jem:freeze # # ... your code # kettle-jem:unfreeze @@ -8,7 +8,4 @@ # Test against HEAD of runtime dependencies so we can proactively file bugs -# Ruby >= 2.2 -gem 'version_gem', github: 'ruby-oauth/version_gem', branch: 'main' - eval_gemfile('x_std_libs/vHEAD.gemfile') diff --git a/gems/markly-merge/gemfiles/modular/style.gemfile b/gems/markly-merge/gemfiles/modular/style.gemfile index 36aff36d3..4dbcc02c0 100644 --- a/gems/markly-merge/gemfiles/modular/style.gemfile +++ b/gems/markly-merge/gemfiles/modular/style.gemfile @@ -1,27 +1,30 @@ # frozen_string_literal: true -# To retain during markly-merge templating: +# To retain during kettle-jem templating: # kettle-jem:freeze # # ... your code # kettle-jem:unfreeze # -# We run rubocop on the latest version of Ruby, -# but in support of the oldest supported version of Ruby +# Style tasks run on the latest Ruby; RuboCop-LTS selects the compatibility +# rules for the configured Ruby floor independently from task dependency floors. -gem 'reek', '~> 6.5' +gem 'reek', '~> 6.5', '>= 6.5.0' platform :mri do - gem 'rubocop-on-rbs', '~> 2.0' # ruby >= 3.2.0 + gem 'appraisal2-rubocop', '~> 1.0', '>= 1.0.0', require: false + gem 'rubocop-gradual', '~> 0.4', '>= 0.4.0' + gem 'rubocop-minitest', '~> 0.40', '>= 0.40.0' + gem 'rubocop-on-rbs', '~> 2.0', '>= 2.0.0' # ruby >= 3.2.0 # gem "rubocop", "~> 1.73", ">= 1.73.2" # constrained by standard gem 'rubocop-packaging', '~> 0.6', '>= 0.6.0' - gem 'standard', '>= 1.50' + gem 'standard', '~> 1.56', '>= 1.56.0' if ENV.fetch('RUBOCOP_LTS_LOCAL', 'false').casecmp('false').zero? - gem 'rubocop-lts', '~> 24.1.0' - # "rubocop-lts-rspec" can't add here until other gems are updated. - gem 'rubocop-rspec', '~> 3.6' - gem 'rubocop-ruby3_2', '~> 3.0.0' + declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) + gem 'rubocop-lts', '~> 24.2', '>= 24.2.1' unless declared_gems.include?('rubocop-lts') + gem 'rubocop-lts-rspec', '~> 1.0', '>= 1.0.5' unless declared_gems.include?('rubocop-lts-rspec') + gem 'rubocop-ruby3_2', '~> 3.0', '>= 3.0.6' unless declared_gems.include?('rubocop-ruby3_2') else eval_gemfile('style_local.gemfile') end diff --git a/gems/markly-merge/gemfiles/modular/style_local.gemfile b/gems/markly-merge/gemfiles/modular/style_local.gemfile index ce75bbe21..f586e8ecb 100644 --- a/gems/markly-merge/gemfiles/modular/style_local.gemfile +++ b/gems/markly-merge/gemfiles/modular/style_local.gemfile @@ -1,19 +1,41 @@ # frozen_string_literal: true -# We run rubocop on the latest version of Ruby, -# but in support of the oldest supported version of Ruby +# Style tasks run on the latest Ruby; RuboCop-LTS selects the compatibility +# rules for the configured Ruby floor independently from task dependency floors. # Local path overrides for development. # Loaded by the associated non-local gemfile when RUBOCOP_LTS_LOCAL != "false". -require 'nomono/bundler' unless defined?(Nomono) +# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. +# Bundler records that dependency during Gemfile evaluation, but it does not +# activate that exact version before the immediate `require "nomono/bundler"`. +# If multiple compatible nomono versions are installed, RubyGems may activate +# the newest installed version while Gemfile.lock pins an older compatible one; +# Bundler then aborts with "already activated nomono X, but your Gemfile +# requires nomono Y". Prefer the locked compatible version when present, then +# activate it explicitly before requiring the Bundler DSL extension used below. +nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] +nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) +if File.file?(nomono_lockfile) + nomono_locked_spec = Bundler::LockfileParser + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } + nomono_locked = nomono_locked_spec && + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked +end +Kernel.send(:gem, 'nomono', *nomono_activation_requirements) +require 'nomono/bundler' local_gems = %w[rubocop-lts rubocop-lts-rspec rubocop-ruby3_2 standard-rubocop-lts] +declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) +local_gems_to_eval = local_gems - %w[markly-merge] - declared_gems # export VENDORED_GEMS=rubocop-lts,rubocop-lts-rspec,rubocop-ruby3_2,standard-rubocop-lts platform :mri do eval_nomono_gems( - gems: local_gems, + gems: local_gems_to_eval, prefix: 'RUBOCOP_LTS', path_env: 'RUBOCOP_LTS_LOCAL', vendored_gems_env: 'VENDORED_GEMS', diff --git a/gems/markly-merge/gemfiles/modular/templating.gemfile b/gems/markly-merge/gemfiles/modular/templating.gemfile index 2ddc9433f..a672de184 100644 --- a/gems/markly-merge/gemfiles/modular/templating.gemfile +++ b/gems/markly-merge/gemfiles/modular/templating.gemfile @@ -12,13 +12,13 @@ end if kettle_remote # Template/plugin checks for released installs. - gem 'kettle-drift', '~> 1.0', '>= 1.0.5', require: false + gem 'kettle-drift', '~> 1.0', '>= 1.0.6', require: false end # Set STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local development with path-based dependencies. # When false (default / CI), released kettle-jem brings merge gems and parser dependencies. # Local path overrides bring the same dependencies from sibling gemspecs. # -# Set KETTLE_DEV_DEV=/path/to/kettle-rb for local development with Kettle plugin gems. +# Set KETTLE_DEV_DEV=/path/to/my for local development with Kettle plugin gems. # When false (default / CI), released Kettle plugin gems are used. eval_gemfile 'templating_local.gemfile' unless structuredmerge_remote && kettle_remote diff --git a/gems/markly-merge/gemfiles/modular/templating_local.gemfile b/gems/markly-merge/gemfiles/modular/templating_local.gemfile index 1f527e065..4b7f13294 100644 --- a/gems/markly-merge/gemfiles/modular/templating_local.gemfile +++ b/gems/markly-merge/gemfiles/modular/templating_local.gemfile @@ -4,7 +4,27 @@ # Loaded by the associated non-local gemfile when STRUCTUREDMERGE_DEV or KETTLE_DEV_DEV # is not "false". -require 'nomono/bundler' unless defined?(Nomono) +# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. +# Bundler records that dependency during Gemfile evaluation, but it does not +# activate that exact version before the immediate `require "nomono/bundler"`. +# If multiple compatible nomono versions are installed, RubyGems may activate +# the newest installed version while Gemfile.lock pins an older compatible one; +# Bundler then aborts with "already activated nomono X, but your Gemfile +# requires nomono Y". Prefer the locked compatible version when present, then +# activate it explicitly before requiring the Bundler DSL extension used below. +nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] +nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) +if File.file?(nomono_lockfile) + nomono_locked_spec = Bundler::LockfileParser + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } + nomono_locked = nomono_locked_spec && + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked +end +Kernel.send(:gem, 'nomono', *nomono_activation_requirements) +require 'nomono/bundler' structuredmerge_local_gems = %w[ tree_haver diff --git a/gems/markly-merge/gemfiles/modular/webrick/r4/v1.9.gemfile b/gems/markly-merge/gemfiles/modular/webrick/r4/v1.9.gemfile new file mode 100644 index 000000000..b1329ba84 --- /dev/null +++ b/gems/markly-merge/gemfiles/modular/webrick/r4/v1.9.gemfile @@ -0,0 +1 @@ +gem 'webrick', '~> 1.9' diff --git a/gems/markly-merge/gemfiles/modular/webrick/vHEAD.gemfile b/gems/markly-merge/gemfiles/modular/webrick/vHEAD.gemfile new file mode 100644 index 000000000..c7e6f81a1 --- /dev/null +++ b/gems/markly-merge/gemfiles/modular/webrick/vHEAD.gemfile @@ -0,0 +1 @@ +gem 'webrick', '>= 1.9' diff --git a/gems/markly-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile b/gems/markly-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile index bd4e884df..e2f6501eb 100644 --- a/gems/markly-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile +++ b/gems/markly-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile @@ -2,3 +2,5 @@ eval_gemfile '../../erb/r4/v5.0.gemfile' eval_gemfile '../../mutex_m/r4/v0.3.gemfile' eval_gemfile '../../stringio/r4/v3.0.gemfile' eval_gemfile '../../benchmark/r4/v0.5.gemfile' +eval_gemfile '../../cgi/r4/v0.5.gemfile' +eval_gemfile '../../webrick/r4/v1.9.gemfile' diff --git a/gems/markly-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile b/gems/markly-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile index 91f383c11..ab75cccf1 100644 --- a/gems/markly-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile +++ b/gems/markly-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile @@ -2,3 +2,5 @@ eval_gemfile '../erb/vHEAD.gemfile' eval_gemfile '../mutex_m/vHEAD.gemfile' eval_gemfile '../stringio/vHEAD.gemfile' eval_gemfile '../benchmark/vHEAD.gemfile' +eval_gemfile '../cgi/vHEAD.gemfile' +eval_gemfile '../webrick/vHEAD.gemfile' diff --git a/gems/markly-merge/lib/markly/merge/version.rb b/gems/markly-merge/lib/markly/merge/version.rb index b4ff2ffeb..3bfd8e9b0 100644 --- a/gems/markly-merge/lib/markly/merge/version.rb +++ b/gems/markly-merge/lib/markly/merge/version.rb @@ -3,7 +3,7 @@ module Markly module Merge module Version - VERSION = "7.1.0" + VERSION = '7.1.0' end VERSION = Version::VERSION # Traditional Constant Location end From b66e58accef58331f4213287b27d4b93b163543b Mon Sep 17 00:00:00 2001 From: "Peter H. Boling" Date: Tue, 21 Jul 2026 13:51:46 -0600 Subject: [PATCH 121/188] =?UTF-8?q?=F0=9F=8E=A8=20Template=20bootstrap=20b?= =?UTF-8?q?y=20kettle-jem=20v7.1.0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../.rubocop_gradual.lock | 134 +++++++ gems/ast-crispr-markdown-markly/Gemfile.lock | 22 +- .../gemfiles/modular/mutex_m/r2/v0.3.gemfile | 2 +- .../gemfiles/modular/mutex_m/r3/v0.3.gemfile | 2 +- .../gemfiles/modular/mutex_m/r4/v0.3.gemfile | 2 +- .../gemfiles/modular/mutex_m/vHEAD.gemfile | 2 +- .../gemfiles/modular/optional.gemfile | 4 +- .../gemfiles/modular/rspec.gemfile | 8 +- .../gemfiles/modular/runtime_heads.gemfile | 2 +- .../gemfiles/modular/stringio/r2/v3.0.gemfile | 2 +- .../gemfiles/modular/stringio/r3/v3.0.gemfile | 2 +- .../gemfiles/modular/stringio/r4/v3.0.gemfile | 2 +- .../gemfiles/modular/stringio/vHEAD.gemfile | 2 +- .../gemfiles/modular/style.gemfile | 24 +- .../gemfiles/modular/style_local.gemfile | 32 +- .../gemfiles/modular/templating.gemfile | 12 +- .../gemfiles/modular/templating_local.gemfile | 44 ++- .../gemfiles/modular/webrick/r4/v1.9.gemfile | 2 +- .../gemfiles/modular/webrick/vHEAD.gemfile | 2 +- .../gemfiles/modular/x_std_libs.gemfile | 14 +- .../modular/x_std_libs/r2/libs.gemfile | 6 +- .../modular/x_std_libs/r3/libs.gemfile | 6 +- .../modular/x_std_libs/r4/libs.gemfile | 12 +- .../gemfiles/modular/x_std_libs/vHEAD.gemfile | 12 +- .../lib/ast/crispr/markdown/markly/version.rb | 2 +- gems/json-merge/.kettle-drift.lock | 9 - gems/json-merge/README.md | 4 +- .../modular/benchmark/r4/v0.5.gemfile | 2 +- .../gemfiles/modular/benchmark/vHEAD.gemfile | 2 +- .../gemfiles/modular/cgi/r4/v0.5.gemfile | 1 + .../gemfiles/modular/cgi/vHEAD.gemfile | 1 + .../gemfiles/modular/coverage.gemfile | 6 +- .../gemfiles/modular/coverage_local.gemfile | 48 ++- .../json-merge/gemfiles/modular/debug.gemfile | 4 +- .../gemfiles/modular/documentation.gemfile | 24 +- .../modular/documentation_local.gemfile | 38 +- .../gemfiles/modular/erb/r2/v3.0.gemfile | 2 +- .../gemfiles/modular/erb/r3/v5.0.gemfile | 2 +- .../gemfiles/modular/erb/r4/v5.0.gemfile | 2 +- .../gemfiles/modular/erb/vHEAD.gemfile | 2 +- .../modular/json/truffleruby_22_3.gemfile | 6 + .../modular/json/truffleruby_23_0.gemfile | 6 + .../modular/json/truffleruby_23_1.gemfile | 6 + .../gemfiles/modular/mutex_m/r2/v0.3.gemfile | 2 +- .../gemfiles/modular/mutex_m/r3/v0.3.gemfile | 2 +- .../gemfiles/modular/mutex_m/r4/v0.3.gemfile | 2 +- .../gemfiles/modular/mutex_m/vHEAD.gemfile | 2 +- .../gemfiles/modular/optional.gemfile | 7 +- .../json-merge/gemfiles/modular/rspec.gemfile | 8 +- .../gemfiles/modular/runtime_heads.gemfile | 7 +- .../gemfiles/modular/stringio/r2/v3.0.gemfile | 2 +- .../gemfiles/modular/stringio/r3/v3.0.gemfile | 2 +- .../gemfiles/modular/stringio/r4/v3.0.gemfile | 2 +- .../gemfiles/modular/stringio/vHEAD.gemfile | 2 +- .../json-merge/gemfiles/modular/style.gemfile | 29 +- .../gemfiles/modular/style_local.gemfile | 44 ++- .../gemfiles/modular/templating.gemfile | 14 +- .../gemfiles/modular/templating_local.gemfile | 48 ++- .../gemfiles/modular/webrick/r4/v1.9.gemfile | 1 + .../gemfiles/modular/webrick/vHEAD.gemfile | 1 + .../gemfiles/modular/x_std_libs.gemfile | 14 +- .../modular/x_std_libs/r2/libs.gemfile | 6 +- .../modular/x_std_libs/r3/libs.gemfile | 6 +- .../modular/x_std_libs/r4/libs.gemfile | 10 +- .../gemfiles/modular/x_std_libs/vHEAD.gemfile | 10 +- gems/markly-merge/Gemfile.lock | 335 +++++++++++++++++- 66 files changed, 813 insertions(+), 262 deletions(-) create mode 100644 gems/ast-crispr-markdown-markly/.rubocop_gradual.lock create mode 100644 gems/json-merge/gemfiles/modular/cgi/r4/v0.5.gemfile create mode 100644 gems/json-merge/gemfiles/modular/cgi/vHEAD.gemfile create mode 100644 gems/json-merge/gemfiles/modular/json/truffleruby_22_3.gemfile create mode 100644 gems/json-merge/gemfiles/modular/json/truffleruby_23_0.gemfile create mode 100644 gems/json-merge/gemfiles/modular/json/truffleruby_23_1.gemfile create mode 100644 gems/json-merge/gemfiles/modular/webrick/r4/v1.9.gemfile create mode 100644 gems/json-merge/gemfiles/modular/webrick/vHEAD.gemfile diff --git a/gems/ast-crispr-markdown-markly/.rubocop_gradual.lock b/gems/ast-crispr-markdown-markly/.rubocop_gradual.lock new file mode 100644 index 000000000..e357dcb0e --- /dev/null +++ b/gems/ast-crispr-markdown-markly/.rubocop_gradual.lock @@ -0,0 +1,134 @@ +{ + ".simplecov:971555246": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "Rakefile:4085821453": [ + [18, 121, 17, "Layout/LineLength: Line is too long. [137/120]", 174264873], + [79, 3, 1023, "Metrics/BlockLength: Block has too many lines. [32/25]", 54868638], + [163, 121, 22, "Layout/LineLength: Line is too long. [142/120]", 1367093088], + [166, 121, 18, "Layout/LineLength: Line is too long. [138/120]", 3881946477] + ], + "ast-crispr-markdown-markly.gemspec:1188642188": [ + [128, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 2821357214], + [143, 121, 50, "Layout/LineLength: Line is too long. [170/120]", 3888612416], + [144, 121, 29, "Layout/LineLength: Line is too long. [149/120]", 981994949], + [151, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 4229808912] + ], + "gemfiles/modular/benchmark/r4/v0.5.gemfile:3644720371": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/benchmark/vHEAD.gemfile:2838879269": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/cgi/r4/v0.5.gemfile:367169322": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/cgi/vHEAD.gemfile:2729540777": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/erb/r2/v3.0.gemfile:1688285565": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/erb/r3/v5.0.gemfile:2394062339": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/erb/r4/v5.0.gemfile:2394062339": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/erb/vHEAD.gemfile:981929959": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/mutex_m/r2/v0.3.gemfile:4055275004": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/mutex_m/r3/v0.3.gemfile:4055275004": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/mutex_m/r4/v0.3.gemfile:4055275004": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/mutex_m/vHEAD.gemfile:556854763": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/rspec.gemfile:2263543889": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/stringio/r2/v3.0.gemfile:821604304": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/stringio/r3/v3.0.gemfile:821604304": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/stringio/r4/v3.0.gemfile:821604304": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/stringio/vHEAD.gemfile:1045839691": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/webrick/r4/v1.9.gemfile:3092661193": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/webrick/vHEAD.gemfile:3867684682": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/x_std_libs.gemfile:2324400122": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/x_std_libs/r2/libs.gemfile:36276542": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] + ], + "gemfiles/modular/x_std_libs/r3/libs.gemfile:4030570297": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] + ], + "gemfiles/modular/x_std_libs/r4/libs.gemfile:732451732": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] + ], + "gemfiles/modular/x_std_libs/vHEAD.gemfile:2390363993": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] + ], + "lib/ast-crispr-markdown-markly.rb:374208510": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`ast-crispr-markdown-markly.rb`) should use snake_case.", 5381] + ], + "lib/ast/crispr/markdown/markly.rb:1124197915": [ + [11, 7, 13, "Style/Documentation: Missing top-level documentation comment for `module Ast::Crispr::Markdown::Markly`.", 95841343], + [14, 9, 13, "Style/Documentation: Missing top-level documentation comment for `class Ast::Crispr::Markdown::Markly::Adapter`.", 2579377404], + [23, 11, 695, "Metrics/MethodLength: Method has too many lines. [15/10]", 2384506812], + [49, 13, 87, "Style/RaiseArgs: Provide an exception class and message as arguments to `raise`.", 1878059440], + [52, 11, 1781, "Metrics/MethodLength: Method has too many lines. [39/10]", 2020253431], + [95, 9, 16, "Style/Documentation: Missing top-level documentation comment for `module Ast::Crispr::Markdown::Markly::Selectors`.", 2133324825], + [95, 9, 8840, "Metrics/ModuleLength: Module has too many lines. [186/100]", 1134016796], + [98, 11, 1452, "Metrics/AbcSize: Assignment Branch Condition size for `heading_section` is too high. [<2, 21, 7> 22.23/17]", 1578141243], + [98, 11, 1452, "Metrics/MethodLength: Method has too many lines. [30/10]", 1578141243], + [98, 30, 73, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 515735878], + [132, 11, 1397, "Metrics/AbcSize: Assignment Branch Condition size for `link_definition` is too high. [<2, 22, 8> 23.49/17]", 2035221200], + [132, 11, 1397, "Metrics/MethodLength: Method has too many lines. [29/10]", 2035221200], + [132, 30, 68, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 2927391196], + [165, 11, 1236, "Metrics/MethodLength: Method has too many lines. [27/10]", 2705412671], + [196, 11, 1632, "Metrics/AbcSize: Assignment Branch Condition size for `inline_reference` is too high. [<2, 25, 7> 26.04/17]", 2822954343], + [196, 11, 1632, "Metrics/MethodLength: Method has too many lines. [32/10]", 2822954343], + [196, 31, 79, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 871966347], + [232, 11, 3009, "Metrics/AbcSize: Assignment Branch Condition size for `html_comment_block` is too high. [<14, 43, 23> 50.73/17]", 1757586727], + [232, 11, 3009, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `html_comment_block` is too high. [18/7]", 1757586727], + [232, 11, 3009, "Metrics/MethodLength: Method has too many lines. [56/10]", 1757586727], + [232, 11, 3009, "Metrics/PerceivedComplexity: Perceived complexity for `html_comment_block` is too high. [18/8]", 1757586727], + [232, 33, 148, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [8/5]", 4247948333], + [244, 23, 2311, "Metrics/BlockLength: Block has too many lines. [43/25]", 3166751632], + [249, 121, 5, "Layout/LineLength: Line is too long. [125/120]", 236074548] + ], + "spec/ast/crispr/markdown/markly_spec.rb:479377118": [ + [3, 1, 13025, "Metrics/BlockLength: Block has too many lines. [238/25]", 467937705], + [28, 3, 10314, "Metrics/BlockLength: Block has too many lines. [182/25]", 3591393606], + [132, 121, 35, "Layout/LineLength: Line is too long. [155/120]", 2413317061], + [134, 121, 34, "Layout/LineLength: Line is too long. [154/120]", 3021964175], + [152, 121, 37, "Layout/LineLength: Line is too long. [157/120]", 3082451518], + [154, 121, 34, "Layout/LineLength: Line is too long. [154/120]", 3021964175], + [267, 3, 1687, "Metrics/BlockLength: Block has too many lines. [33/25]", 4221412326] + ] +} diff --git a/gems/ast-crispr-markdown-markly/Gemfile.lock b/gems/ast-crispr-markdown-markly/Gemfile.lock index 360e6f3a9..e394d7157 100644 --- a/gems/ast-crispr-markdown-markly/Gemfile.lock +++ b/gems/ast-crispr-markdown-markly/Gemfile.lock @@ -7,7 +7,7 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr specs: ast-crispr (7.1.0) ast-merge (= 7.1.0) @@ -15,7 +15,7 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/markly-merge specs: markly-merge (7.1.0) markdown-merge (= 7.1.0) @@ -108,12 +108,12 @@ GEM rdoc (>= 4.0.0) reline (>= 0.4.2) json (2.21.1) - kettle-dev (2.3.7) + kettle-dev (2.3.8) emoji_regex (>= 15.0) kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) - kettle-rb (0.1.4) + kettle-rb (0.1.5) kettle-soup-cover (3.0.4) kettle-wash (~> 0.1, >= 0.1.0) simplecov (>= 1.0) @@ -121,7 +121,7 @@ GEM simplecov-console (~> 0.9, >= 0.9.5) simplecov-rcov (~> 0.3, >= 0.3.7) simplecov_lcov_formatter (~> 0.9, >= 0.9.0) - kettle-test (2.0.11) + kettle-test (2.0.12) appraisal2 (~> 3.0, >= 3.0.6) backports (~> 3.0) rspec (~> 3.0) @@ -353,9 +353,9 @@ GEM delegate (~> 0.1) rspec (~> 3.0) timecop (>= 0.7, < 1) - token-resolver (2.0.4) + token-resolver (2.0.5) parslet (~> 2.0) - version_gem (~> 1.1, >= 1.1.13) + version_gem (~> 1.1, >= 1.1.14) tree_haver (7.1.0) citrus (~> 3.0) parslet (~> 2.0) @@ -488,10 +488,10 @@ CHECKSUMS io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 - kettle-dev (2.3.7) sha256=eb370113cd030d03cbe2d33b31c99858951017e5ad21a17e9ed89dc3770028ee - kettle-rb (0.1.4) sha256=9cef7ce4f7021666b7222292f29051e51eaf042e8a5db11f3f4dd72f74243fc1 + kettle-dev (2.3.8) sha256=9d716ff21c660a730cb4e8d41e2e2f0630a28167a354b6e2924e242102aef72c + kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f kettle-soup-cover (3.0.4) - kettle-test (2.0.11) sha256=c710c90f7ab79d51f9452f0c09f5f90657e7a893f63583855c164d0b1b107ab2 + kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 @@ -576,7 +576,7 @@ CHECKSUMS thor (1.5.0) sha256=e3a9e55fe857e44859ce104a84675ab6e8cd59c650a49106a05f55f136425e73 timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 - token-resolver (2.0.4) sha256=33b926958f504525bba3ed511ab66fbcbf8ef30390815e931436b30f27ffcad0 + token-resolver (2.0.5) tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f diff --git a/gems/ast-crispr-markdown-markly/gemfiles/modular/mutex_m/r2/v0.3.gemfile b/gems/ast-crispr-markdown-markly/gemfiles/modular/mutex_m/r2/v0.3.gemfile index 42e9d9bd4..e27f1bbae 100644 --- a/gems/ast-crispr-markdown-markly/gemfiles/modular/mutex_m/r2/v0.3.gemfile +++ b/gems/ast-crispr-markdown-markly/gemfiles/modular/mutex_m/r2/v0.3.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 -gem "mutex_m", "~> 0.2" +gem 'mutex_m', '~> 0.2' diff --git a/gems/ast-crispr-markdown-markly/gemfiles/modular/mutex_m/r3/v0.3.gemfile b/gems/ast-crispr-markdown-markly/gemfiles/modular/mutex_m/r3/v0.3.gemfile index 42e9d9bd4..e27f1bbae 100644 --- a/gems/ast-crispr-markdown-markly/gemfiles/modular/mutex_m/r3/v0.3.gemfile +++ b/gems/ast-crispr-markdown-markly/gemfiles/modular/mutex_m/r3/v0.3.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 -gem "mutex_m", "~> 0.2" +gem 'mutex_m', '~> 0.2' diff --git a/gems/ast-crispr-markdown-markly/gemfiles/modular/mutex_m/r4/v0.3.gemfile b/gems/ast-crispr-markdown-markly/gemfiles/modular/mutex_m/r4/v0.3.gemfile index 42e9d9bd4..e27f1bbae 100644 --- a/gems/ast-crispr-markdown-markly/gemfiles/modular/mutex_m/r4/v0.3.gemfile +++ b/gems/ast-crispr-markdown-markly/gemfiles/modular/mutex_m/r4/v0.3.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 -gem "mutex_m", "~> 0.2" +gem 'mutex_m', '~> 0.2' diff --git a/gems/ast-crispr-markdown-markly/gemfiles/modular/mutex_m/vHEAD.gemfile b/gems/ast-crispr-markdown-markly/gemfiles/modular/mutex_m/vHEAD.gemfile index 8af3b6fca..9dac2f6cb 100644 --- a/gems/ast-crispr-markdown-markly/gemfiles/modular/mutex_m/vHEAD.gemfile +++ b/gems/ast-crispr-markdown-markly/gemfiles/modular/mutex_m/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 (dependency of omniauth) -gem "mutex_m", github: "ruby/mutex_m", branch: "master" +gem 'mutex_m', github: 'ruby/mutex_m', branch: 'master' diff --git a/gems/ast-crispr-markdown-markly/gemfiles/modular/optional.gemfile b/gems/ast-crispr-markdown-markly/gemfiles/modular/optional.gemfile index 80bc45196..9ea429538 100644 --- a/gems/ast-crispr-markdown-markly/gemfiles/modular/optional.gemfile +++ b/gems/ast-crispr-markdown-markly/gemfiles/modular/optional.gemfile @@ -9,8 +9,8 @@ # Optional dependencies are not depended on directly, but may be used if present. # Required for curated binstubs generated by kettle-jem install -gem "rbs", ">= 3.0", require: false # ruby >= 3.1 +gem 'rbs', '>= 3.0', require: false # ruby >= 3.1 # Required for kettle-pre-release # URL parsing with Unicode support (falls back to URI if not available) -gem "addressable", ">= 2.8", "< 3" # ruby >= 2.2 +gem 'addressable', '>= 2.8', '< 3' # ruby >= 2.2 diff --git a/gems/ast-crispr-markdown-markly/gemfiles/modular/rspec.gemfile b/gems/ast-crispr-markdown-markly/gemfiles/modular/rspec.gemfile index 72fdf8b7f..2af210a41 100644 --- a/gems/ast-crispr-markdown-markly/gemfiles/modular/rspec.gemfile +++ b/gems/ast-crispr-markdown-markly/gemfiles/modular/rspec.gemfile @@ -1,4 +1,4 @@ -gem "rspec_junit_formatter", - github: "pboling/rspec_junit_formatter", - branch: "main", - ref: "9e6bcaaedd49477b62878ed568dc4ada5cc7cb5e" +gem 'rspec_junit_formatter', + github: 'pboling/rspec_junit_formatter', + branch: 'main', + ref: '9e6bcaaedd49477b62878ed568dc4ada5cc7cb5e' diff --git a/gems/ast-crispr-markdown-markly/gemfiles/modular/runtime_heads.gemfile b/gems/ast-crispr-markdown-markly/gemfiles/modular/runtime_heads.gemfile index 02f134c7f..ebf17c529 100644 --- a/gems/ast-crispr-markdown-markly/gemfiles/modular/runtime_heads.gemfile +++ b/gems/ast-crispr-markdown-markly/gemfiles/modular/runtime_heads.gemfile @@ -8,4 +8,4 @@ # Test against HEAD of runtime dependencies so we can proactively file bugs -eval_gemfile("x_std_libs/vHEAD.gemfile") +eval_gemfile('x_std_libs/vHEAD.gemfile') diff --git a/gems/ast-crispr-markdown-markly/gemfiles/modular/stringio/r2/v3.0.gemfile b/gems/ast-crispr-markdown-markly/gemfiles/modular/stringio/r2/v3.0.gemfile index e85bb18ee..3616f4e3a 100644 --- a/gems/ast-crispr-markdown-markly/gemfiles/modular/stringio/r2/v3.0.gemfile +++ b/gems/ast-crispr-markdown-markly/gemfiles/modular/stringio/r2/v3.0.gemfile @@ -2,4 +2,4 @@ # NOT SEMVER # Version 3.0.7 dropped support for Ruby <= 2.7 # Version 3.0.0 dropped support for Ruby <= 2.4 -gem "stringio", ">= 3.0" +gem 'stringio', '>= 3.0' diff --git a/gems/ast-crispr-markdown-markly/gemfiles/modular/stringio/r3/v3.0.gemfile b/gems/ast-crispr-markdown-markly/gemfiles/modular/stringio/r3/v3.0.gemfile index e85bb18ee..3616f4e3a 100644 --- a/gems/ast-crispr-markdown-markly/gemfiles/modular/stringio/r3/v3.0.gemfile +++ b/gems/ast-crispr-markdown-markly/gemfiles/modular/stringio/r3/v3.0.gemfile @@ -2,4 +2,4 @@ # NOT SEMVER # Version 3.0.7 dropped support for Ruby <= 2.7 # Version 3.0.0 dropped support for Ruby <= 2.4 -gem "stringio", ">= 3.0" +gem 'stringio', '>= 3.0' diff --git a/gems/ast-crispr-markdown-markly/gemfiles/modular/stringio/r4/v3.0.gemfile b/gems/ast-crispr-markdown-markly/gemfiles/modular/stringio/r4/v3.0.gemfile index e85bb18ee..3616f4e3a 100644 --- a/gems/ast-crispr-markdown-markly/gemfiles/modular/stringio/r4/v3.0.gemfile +++ b/gems/ast-crispr-markdown-markly/gemfiles/modular/stringio/r4/v3.0.gemfile @@ -2,4 +2,4 @@ # NOT SEMVER # Version 3.0.7 dropped support for Ruby <= 2.7 # Version 3.0.0 dropped support for Ruby <= 2.4 -gem "stringio", ">= 3.0" +gem 'stringio', '>= 3.0' diff --git a/gems/ast-crispr-markdown-markly/gemfiles/modular/stringio/vHEAD.gemfile b/gems/ast-crispr-markdown-markly/gemfiles/modular/stringio/vHEAD.gemfile index 5f2a74126..78f5f5d8a 100644 --- a/gems/ast-crispr-markdown-markly/gemfiles/modular/stringio/vHEAD.gemfile +++ b/gems/ast-crispr-markdown-markly/gemfiles/modular/stringio/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 (dependency of omniauth) -gem "stringio", github: "ruby/stringio", branch: "master" +gem 'stringio', github: 'ruby/stringio', branch: 'master' diff --git a/gems/ast-crispr-markdown-markly/gemfiles/modular/style.gemfile b/gems/ast-crispr-markdown-markly/gemfiles/modular/style.gemfile index 35de4dcd6..4dbcc02c0 100644 --- a/gems/ast-crispr-markdown-markly/gemfiles/modular/style.gemfile +++ b/gems/ast-crispr-markdown-markly/gemfiles/modular/style.gemfile @@ -9,23 +9,23 @@ # Style tasks run on the latest Ruby; RuboCop-LTS selects the compatibility # rules for the configured Ruby floor independently from task dependency floors. -gem "reek", "~> 6.5", ">= 6.5.0" +gem 'reek', '~> 6.5', '>= 6.5.0' platform :mri do - gem "appraisal2-rubocop", "~> 1.0", ">= 1.0.0", require: false - gem "rubocop-gradual", "~> 0.4", ">= 0.4.0" - gem "rubocop-minitest", "~> 0.40", ">= 0.40.0" - gem "rubocop-on-rbs", "~> 2.0", ">= 2.0.0" # ruby >= 3.2.0 + gem 'appraisal2-rubocop', '~> 1.0', '>= 1.0.0', require: false + gem 'rubocop-gradual', '~> 0.4', '>= 0.4.0' + gem 'rubocop-minitest', '~> 0.40', '>= 0.40.0' + gem 'rubocop-on-rbs', '~> 2.0', '>= 2.0.0' # ruby >= 3.2.0 # gem "rubocop", "~> 1.73", ">= 1.73.2" # constrained by standard - gem "rubocop-packaging", "~> 0.6", ">= 0.6.0" - gem "standard", "~> 1.56", ">= 1.56.0" + gem 'rubocop-packaging', '~> 0.6', '>= 0.6.0' + gem 'standard', '~> 1.56', '>= 1.56.0' - if ENV.fetch("RUBOCOP_LTS_LOCAL", "false").casecmp("false").zero? + if ENV.fetch('RUBOCOP_LTS_LOCAL', 'false').casecmp('false').zero? declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) - gem "rubocop-lts", "~> 24.2", ">= 24.2.1" unless declared_gems.include?("rubocop-lts") - gem "rubocop-lts-rspec", "~> 1.0", ">= 1.0.5" unless declared_gems.include?("rubocop-lts-rspec") - gem "rubocop-ruby3_2", "~> 3.0", ">= 3.0.6" unless declared_gems.include?("rubocop-ruby3_2") + gem 'rubocop-lts', '~> 24.2', '>= 24.2.1' unless declared_gems.include?('rubocop-lts') + gem 'rubocop-lts-rspec', '~> 1.0', '>= 1.0.5' unless declared_gems.include?('rubocop-lts-rspec') + gem 'rubocop-ruby3_2', '~> 3.0', '>= 3.0.6' unless declared_gems.include?('rubocop-ruby3_2') else - eval_gemfile("style_local.gemfile") + eval_gemfile('style_local.gemfile') end end diff --git a/gems/ast-crispr-markdown-markly/gemfiles/modular/style_local.gemfile b/gems/ast-crispr-markdown-markly/gemfiles/modular/style_local.gemfile index ef961a7cf..96bd46552 100644 --- a/gems/ast-crispr-markdown-markly/gemfiles/modular/style_local.gemfile +++ b/gems/ast-crispr-markdown-markly/gemfiles/modular/style_local.gemfile @@ -14,21 +14,19 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] -nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) +nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] +nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == "nomono" } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - if nomono_locked - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] - end + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked end -Kernel.send(:gem, "nomono", *nomono_activation_requirements) -require "nomono/bundler" +Kernel.send(:gem, 'nomono', *nomono_activation_requirements) +require 'nomono/bundler' local_gems = %w[rubocop-lts rubocop-lts-rspec rubocop-ruby3_2 standard-rubocop-lts] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) @@ -38,11 +36,11 @@ local_gems_to_eval = local_gems - %w[ast-crispr-markdown-markly] - declared_gems platform :mri do eval_nomono_gems( gems: local_gems_to_eval, - prefix: "RUBOCOP_LTS", - path_env: "RUBOCOP_LTS_LOCAL", - vendored_gems_env: "VENDORED_GEMS", - vendor_gem_dir_env: "VENDOR_GEM_DIR", - debug_env: "RUBOCOP_LTS_DEBUG", - root: ["src", "rubocop-lts"] + prefix: 'RUBOCOP_LTS', + path_env: 'RUBOCOP_LTS_LOCAL', + vendored_gems_env: 'VENDORED_GEMS', + vendor_gem_dir_env: 'VENDOR_GEM_DIR', + debug_env: 'RUBOCOP_LTS_DEBUG', + root: %w[src rubocop-lts] ) end diff --git a/gems/ast-crispr-markdown-markly/gemfiles/modular/templating.gemfile b/gems/ast-crispr-markdown-markly/gemfiles/modular/templating.gemfile index 47138ffbb..a672de184 100644 --- a/gems/ast-crispr-markdown-markly/gemfiles/modular/templating.gemfile +++ b/gems/ast-crispr-markdown-markly/gemfiles/modular/templating.gemfile @@ -1,18 +1,18 @@ # frozen_string_literal: true -structuredmerge_remote = ENV.fetch("STRUCTUREDMERGE_DEV", "false").casecmp("false").zero? -kettle_remote = ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false").zero? +structuredmerge_remote = ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false').zero? +kettle_remote = ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? if structuredmerge_remote # Parser dependencies for released installs. - gem "tree_sitter_language_pack", "~> 1.13", ">= 1.13.3" + gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' # Merge recipes for released installs. - gem "kettle-jem", ">= 7.0" + gem 'kettle-jem', '>= 7.0' end if kettle_remote # Template/plugin checks for released installs. - gem "kettle-drift", "~> 1.0", ">= 1.0.6", require: false + gem 'kettle-drift', '~> 1.0', '>= 1.0.6', require: false end # Set STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local development with path-based dependencies. @@ -21,4 +21,4 @@ end # # Set KETTLE_DEV_DEV=/path/to/my for local development with Kettle plugin gems. # When false (default / CI), released Kettle plugin gems are used. -eval_gemfile "templating_local.gemfile" unless structuredmerge_remote && kettle_remote +eval_gemfile 'templating_local.gemfile' unless structuredmerge_remote && kettle_remote diff --git a/gems/ast-crispr-markdown-markly/gemfiles/modular/templating_local.gemfile b/gems/ast-crispr-markdown-markly/gemfiles/modular/templating_local.gemfile index fee33c6c0..558511bf4 100644 --- a/gems/ast-crispr-markdown-markly/gemfiles/modular/templating_local.gemfile +++ b/gems/ast-crispr-markdown-markly/gemfiles/modular/templating_local.gemfile @@ -12,21 +12,19 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] -nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) +nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] +nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == "nomono" } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - if nomono_locked - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] - end + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked end -Kernel.send(:gem, "nomono", *nomono_activation_requirements) -require "nomono/bundler" +Kernel.send(:gem, 'nomono', *nomono_activation_requirements) +require 'nomono/bundler' structuredmerge_local_gems = %w[ tree_haver @@ -69,25 +67,25 @@ structuredmerge_local_gems_to_eval = structuredmerge_local_gems - %w[ast-crispr- kettle_dev_local_gems_to_eval = kettle_dev_local_gems - %w[ast-crispr-markdown-markly] - declared_gems platform :mri do - if ENV.fetch("STRUCTUREDMERGE_DEV", "false").casecmp("false") != 0 + if ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false') != 0 eval_nomono_gems( gems: structuredmerge_local_gems_to_eval, - prefix: "STRUCTUREDMERGE", - path_env: "STRUCTUREDMERGE_DEV", - vendored_gems_env: "VENDORED_GEMS", - vendor_gem_dir_env: "VENDOR_GEM_DIR", - debug_env: "STRUCTUREDMERGE_DEBUG" + prefix: 'STRUCTUREDMERGE', + path_env: 'STRUCTUREDMERGE_DEV', + vendored_gems_env: 'VENDORED_GEMS', + vendor_gem_dir_env: 'VENDOR_GEM_DIR', + debug_env: 'STRUCTUREDMERGE_DEBUG' ) end - if ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false") != 0 + if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false') != 0 eval_nomono_gems( gems: kettle_dev_local_gems_to_eval, - prefix: "KETTLE_DEV", - path_env: "KETTLE_DEV_DEV", - vendored_gems_env: "VENDORED_GEMS", - vendor_gem_dir_env: "VENDOR_GEM_DIR", - debug_env: "KETTLE_DEV_DEBUG" + prefix: 'KETTLE_DEV', + path_env: 'KETTLE_DEV_DEV', + vendored_gems_env: 'VENDORED_GEMS', + vendor_gem_dir_env: 'VENDOR_GEM_DIR', + debug_env: 'KETTLE_DEV_DEBUG' ) end end diff --git a/gems/ast-crispr-markdown-markly/gemfiles/modular/webrick/r4/v1.9.gemfile b/gems/ast-crispr-markdown-markly/gemfiles/modular/webrick/r4/v1.9.gemfile index eaab4a473..b1329ba84 100644 --- a/gems/ast-crispr-markdown-markly/gemfiles/modular/webrick/r4/v1.9.gemfile +++ b/gems/ast-crispr-markdown-markly/gemfiles/modular/webrick/r4/v1.9.gemfile @@ -1 +1 @@ -gem "webrick", "~> 1.9" +gem 'webrick', '~> 1.9' diff --git a/gems/ast-crispr-markdown-markly/gemfiles/modular/webrick/vHEAD.gemfile b/gems/ast-crispr-markdown-markly/gemfiles/modular/webrick/vHEAD.gemfile index 8a789b634..c7e6f81a1 100644 --- a/gems/ast-crispr-markdown-markly/gemfiles/modular/webrick/vHEAD.gemfile +++ b/gems/ast-crispr-markdown-markly/gemfiles/modular/webrick/vHEAD.gemfile @@ -1 +1 @@ -gem "webrick", ">= 1.9" +gem 'webrick', '>= 1.9' diff --git a/gems/ast-crispr-markdown-markly/gemfiles/modular/x_std_libs.gemfile b/gems/ast-crispr-markdown-markly/gemfiles/modular/x_std_libs.gemfile index 77aad43f2..b1f43c097 100644 --- a/gems/ast-crispr-markdown-markly/gemfiles/modular/x_std_libs.gemfile +++ b/gems/ast-crispr-markdown-markly/gemfiles/modular/x_std_libs.gemfile @@ -1,12 +1,12 @@ ### Std Lib Extracted Gems ruby_version = Gem::Version.new(RUBY_VERSION) -if ruby_version >= Gem::Version.new("4.0") - eval_gemfile "x_std_libs/r4/libs.gemfile" -elsif ruby_version >= Gem::Version.new("3.2") - eval_gemfile "x_std_libs/r3/libs.gemfile" -elsif ruby_version >= Gem::Version.new("3.1") - eval_gemfile "x_std_libs/r3.1/libs.gemfile" +if ruby_version >= Gem::Version.new('4.0') + eval_gemfile 'x_std_libs/r4/libs.gemfile' +elsif ruby_version >= Gem::Version.new('3.2') + eval_gemfile 'x_std_libs/r3/libs.gemfile' +elsif ruby_version >= Gem::Version.new('3.1') + eval_gemfile 'x_std_libs/r3.1/libs.gemfile' else - eval_gemfile "x_std_libs/r2/libs.gemfile" + eval_gemfile 'x_std_libs/r2/libs.gemfile' end diff --git a/gems/ast-crispr-markdown-markly/gemfiles/modular/x_std_libs/r2/libs.gemfile b/gems/ast-crispr-markdown-markly/gemfiles/modular/x_std_libs/r2/libs.gemfile index 441c4f03a..16a5e3d70 100644 --- a/gems/ast-crispr-markdown-markly/gemfiles/modular/x_std_libs/r2/libs.gemfile +++ b/gems/ast-crispr-markdown-markly/gemfiles/modular/x_std_libs/r2/libs.gemfile @@ -1,3 +1,3 @@ -eval_gemfile "../../erb/r2/v3.0.gemfile" -eval_gemfile "../../mutex_m/r2/v0.3.gemfile" -eval_gemfile "../../stringio/r2/v3.0.gemfile" +eval_gemfile '../../erb/r2/v3.0.gemfile' +eval_gemfile '../../mutex_m/r2/v0.3.gemfile' +eval_gemfile '../../stringio/r2/v3.0.gemfile' diff --git a/gems/ast-crispr-markdown-markly/gemfiles/modular/x_std_libs/r3/libs.gemfile b/gems/ast-crispr-markdown-markly/gemfiles/modular/x_std_libs/r3/libs.gemfile index c293a3ddd..220ff95c1 100644 --- a/gems/ast-crispr-markdown-markly/gemfiles/modular/x_std_libs/r3/libs.gemfile +++ b/gems/ast-crispr-markdown-markly/gemfiles/modular/x_std_libs/r3/libs.gemfile @@ -1,3 +1,3 @@ -eval_gemfile "../../erb/r3/v5.0.gemfile" -eval_gemfile "../../mutex_m/r3/v0.3.gemfile" -eval_gemfile "../../stringio/r3/v3.0.gemfile" +eval_gemfile '../../erb/r3/v5.0.gemfile' +eval_gemfile '../../mutex_m/r3/v0.3.gemfile' +eval_gemfile '../../stringio/r3/v3.0.gemfile' diff --git a/gems/ast-crispr-markdown-markly/gemfiles/modular/x_std_libs/r4/libs.gemfile b/gems/ast-crispr-markdown-markly/gemfiles/modular/x_std_libs/r4/libs.gemfile index eb5574247..e2f6501eb 100644 --- a/gems/ast-crispr-markdown-markly/gemfiles/modular/x_std_libs/r4/libs.gemfile +++ b/gems/ast-crispr-markdown-markly/gemfiles/modular/x_std_libs/r4/libs.gemfile @@ -1,6 +1,6 @@ -eval_gemfile "../../erb/r4/v5.0.gemfile" -eval_gemfile "../../mutex_m/r4/v0.3.gemfile" -eval_gemfile "../../stringio/r4/v3.0.gemfile" -eval_gemfile "../../benchmark/r4/v0.5.gemfile" -eval_gemfile "../../cgi/r4/v0.5.gemfile" -eval_gemfile "../../webrick/r4/v1.9.gemfile" +eval_gemfile '../../erb/r4/v5.0.gemfile' +eval_gemfile '../../mutex_m/r4/v0.3.gemfile' +eval_gemfile '../../stringio/r4/v3.0.gemfile' +eval_gemfile '../../benchmark/r4/v0.5.gemfile' +eval_gemfile '../../cgi/r4/v0.5.gemfile' +eval_gemfile '../../webrick/r4/v1.9.gemfile' diff --git a/gems/ast-crispr-markdown-markly/gemfiles/modular/x_std_libs/vHEAD.gemfile b/gems/ast-crispr-markdown-markly/gemfiles/modular/x_std_libs/vHEAD.gemfile index d4d5b16c9..ab75cccf1 100644 --- a/gems/ast-crispr-markdown-markly/gemfiles/modular/x_std_libs/vHEAD.gemfile +++ b/gems/ast-crispr-markdown-markly/gemfiles/modular/x_std_libs/vHEAD.gemfile @@ -1,6 +1,6 @@ -eval_gemfile "../erb/vHEAD.gemfile" -eval_gemfile "../mutex_m/vHEAD.gemfile" -eval_gemfile "../stringio/vHEAD.gemfile" -eval_gemfile "../benchmark/vHEAD.gemfile" -eval_gemfile "../cgi/vHEAD.gemfile" -eval_gemfile "../webrick/vHEAD.gemfile" +eval_gemfile '../erb/vHEAD.gemfile' +eval_gemfile '../mutex_m/vHEAD.gemfile' +eval_gemfile '../stringio/vHEAD.gemfile' +eval_gemfile '../benchmark/vHEAD.gemfile' +eval_gemfile '../cgi/vHEAD.gemfile' +eval_gemfile '../webrick/vHEAD.gemfile' diff --git a/gems/ast-crispr-markdown-markly/lib/ast/crispr/markdown/markly/version.rb b/gems/ast-crispr-markdown-markly/lib/ast/crispr/markdown/markly/version.rb index e184c556f..ba5f0b149 100644 --- a/gems/ast-crispr-markdown-markly/lib/ast/crispr/markdown/markly/version.rb +++ b/gems/ast-crispr-markdown-markly/lib/ast/crispr/markdown/markly/version.rb @@ -5,7 +5,7 @@ module Crispr module Markdown module Markly module Version - VERSION = "7.1.0" + VERSION = '7.1.0' end VERSION = Version::VERSION # Traditional Constant Location end diff --git a/gems/json-merge/.kettle-drift.lock b/gems/json-merge/.kettle-drift.lock index 2ee9dae31..43dfedd67 100644 --- a/gems/json-merge/.kettle-drift.lock +++ b/gems/json-merge/.kettle-drift.lock @@ -52,14 +52,5 @@ 88 ] } - ], - "vendored_gems_env: 'VENDORED_GEMS',\nvendor_gem_dir_env: 'VENDOR_GEM_DIR',": [ - { - "file": "gemfiles/modular/templating_local.gemfile", - "lines": [ - 55, - 66 - ] - } ] } diff --git a/gems/json-merge/README.md b/gems/json-merge/README.md index b2f5382b8..3d77bee09 100644 --- a/gems/json-merge/README.md +++ b/gems/json-merge/README.md @@ -85,7 +85,7 @@ File.write("merged.json", result.to_json) | Tokens to Remember | [![Gem name][⛳️name-img]][⛳️gem-name] [![Gem namespace][⛳️namespace-img]][⛳️gem-namespace] | |-------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | Works with MRI Ruby 4 | [![Ruby current Compat][💎ruby-c-i]][🚎11-c-wf]| -| Support & Community | [![Join Me on Daily.dev's RubyFriends][✉️ruby-friends-img]][✉️ruby-friends] [![Live Chat on Discord][✉️discord-invite-img-ftb]][✉️discord-invite] [![Get help from me on Upwork][👨🏼‍🏫expsup-upwork-img]][👨🏼‍🏫expsup-upwork] [![Get help from me on Codementor][👨🏼‍🏫expsup-codementor-img]][👨🏼‍🏫expsup-codementor] | +| Support & Community | [![Join Me on Daily.dev's RubyFriends][✉️ruby-friends-img]][✉️ruby-friends] [![Get help from RubyForum][✉️ruby-forum-img]][✉️ruby-forum] [![Live Chat on Discord][✉️discord-invite-img-ftb]][✉️discord-invite] [![Get help from me on Upwork][👨🏼‍🏫expsup-upwork-img]][👨🏼‍🏫expsup-upwork] [![Get help from me on Codementor][👨🏼‍🏫expsup-codementor-img]][👨🏼‍🏫expsup-codementor] | | Source | [![Source on GitLab.com][📜src-gl-img]][📜src-gl] [![Source on CodeBerg.org][📜src-cb-img]][📜src-cb] [![Source on Github.com][📜src-gh-img]][📜src-gh] [![The best SHA: dQw4w9WgXcQ!][🧮kloc-img]][🧮kloc] | | Documentation | [![Current release on RubyDoc.info][📜docs-cr-rd-img]][🚎yard-current] [![YARD on Galtzo.com][📜docs-head-rd-img]][🚎yard-head] [![Maintainer Blog][🚂maint-blog-img]][🚂maint-blog] [![GitLab Wiki][📜gl-wiki-img]][📜gl-wiki] [![GitHub Wiki][📜gh-wiki-img]][📜gh-wiki] | | Compliance | [![License: AGPL-3.0-only OR PolyForm-Small-Business-1.0.0][📄license-img]][📄license] [![Apache license compatibility: Category X][📄license-compat-img]][📄license-compat] [![📄ilo-declaration-img]][📄ilo-declaration] [![Security Policy][🔐security-img]][🔐security] [![Contributor Covenant 2.1][🪇conduct-img]][🪇conduct] [![SemVer 2.0.0][📌semver-img]][📌semver] | @@ -464,6 +464,8 @@ If none of the available licenses suit your use case, please [contact us](mailto [✉️discord-invite-img-ftb]: https://img.shields.io/discord/1373797679469170758?style=for-the-badge&logo=discord [✉️ruby-friends-img]: https://img.shields.io/badge/daily.dev-%F0%9F%92%8E_Ruby_Friends-0A0A0A?style=for-the-badge&logo=dailydotdev&logoColor=white [✉️ruby-friends]: https://app.daily.dev/squads/rubyfriends +[✉️ruby-forum-img]: https://img.shields.io/badge/RubyForum-Help-CC342D?style=for-the-badge&logo=ruby&logoColor=white +[✉️ruby-forum]: https://www.rubyforum.org/c/help/8 [✇bundle-group-pattern]: https://gist.github.com/pboling/4564780 [⛳️gem-namespace]: https://github.com/structuredmerge/structuredmerge-ruby/tree/main/gems/json-merge [⛳️namespace-img]: https://img.shields.io/badge/namespace-Json::Merge-3C2D2D.svg?style=square&logo=ruby&logoColor=white diff --git a/gems/json-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile b/gems/json-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile index b8392fab0..dec650815 100644 --- a/gems/json-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile +++ b/gems/json-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.1 -gem 'benchmark', '~> 0.5', '>= 0.5.0' # Removed from Std Lib in Ruby 4.0 +gem "benchmark", "~> 0.5", ">= 0.5.0" # Removed from Std Lib in Ruby 4.0 diff --git a/gems/json-merge/gemfiles/modular/benchmark/vHEAD.gemfile b/gems/json-merge/gemfiles/modular/benchmark/vHEAD.gemfile index af214aafa..e1eb20c5e 100644 --- a/gems/json-merge/gemfiles/modular/benchmark/vHEAD.gemfile +++ b/gems/json-merge/gemfiles/modular/benchmark/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.1 -gem 'benchmark', github: 'ruby/benchmark', branch: 'master' +gem "benchmark", github: "ruby/benchmark", branch: "master" diff --git a/gems/json-merge/gemfiles/modular/cgi/r4/v0.5.gemfile b/gems/json-merge/gemfiles/modular/cgi/r4/v0.5.gemfile new file mode 100644 index 000000000..19ed967c3 --- /dev/null +++ b/gems/json-merge/gemfiles/modular/cgi/r4/v0.5.gemfile @@ -0,0 +1 @@ +gem "cgi", "~> 0.5" diff --git a/gems/json-merge/gemfiles/modular/cgi/vHEAD.gemfile b/gems/json-merge/gemfiles/modular/cgi/vHEAD.gemfile new file mode 100644 index 000000000..ef8b816ce --- /dev/null +++ b/gems/json-merge/gemfiles/modular/cgi/vHEAD.gemfile @@ -0,0 +1 @@ +gem "cgi", ">= 0.5" diff --git a/gems/json-merge/gemfiles/modular/coverage.gemfile b/gems/json-merge/gemfiles/modular/coverage.gemfile index f96d50954..52d737872 100644 --- a/gems/json-merge/gemfiles/modular/coverage.gemfile +++ b/gems/json-merge/gemfiles/modular/coverage.gemfile @@ -4,11 +4,11 @@ # Set KETTLE_DEV_DEV=true for local development with path-based dependencies. # When false (default / CI), remote released gems are used. -if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? +if ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false").zero? # Coverage (remote/released) platform :mri do - gem 'kettle-soup-cover', '~> 1.0', '>= 1.1.3', require: false + gem "kettle-soup-cover", "~> 3.0", ">= 3.0.3", require: false end else - eval_gemfile 'coverage_local.gemfile' + eval_gemfile "coverage_local.gemfile" end diff --git a/gems/json-merge/gemfiles/modular/coverage_local.gemfile b/gems/json-merge/gemfiles/modular/coverage_local.gemfile index 3c2d562aa..cacdc07c1 100644 --- a/gems/json-merge/gemfiles/modular/coverage_local.gemfile +++ b/gems/json-merge/gemfiles/modular/coverage_local.gemfile @@ -3,31 +3,53 @@ # Local path overrides for development. # Loaded by the associated non-local gemfile when KETTLE_DEV_DEV != "false". -require 'nomono/bundler' unless defined?(Nomono) +# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. +# Bundler records that dependency during Gemfile evaluation, but it does not +# activate that exact version before the immediate `require "nomono/bundler"`. +# If multiple compatible nomono versions are installed, RubyGems may activate +# the newest installed version while Gemfile.lock pins an older compatible one; +# Bundler then aborts with "already activated nomono X, but your Gemfile +# requires nomono Y". Prefer the locked compatible version when present, then +# activate it explicitly before requiring the Bundler DSL extension used below. +nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] +nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) +if File.file?(nomono_lockfile) + nomono_locked_spec = Bundler::LockfileParser + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == "nomono" } + nomono_locked = nomono_locked_spec && + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + if nomono_locked + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] + end +end +Kernel.send(:gem, "nomono", *nomono_activation_requirements) +require "nomono/bundler" local_gems = %w[kettle-dev kettle-test kettle-soup-cover kettle-drift] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) local_gems_to_eval = local_gems - %w[json-merge] - declared_gems -# export KETTLE_DEV_DEV=/path/to/kettle-rb +# export KETTLE_DEV_DEV=/path/to/my platform :mri do eval_nomono_gems( gems: local_gems_to_eval, - prefix: 'KETTLE_DEV', - path_env: 'KETTLE_DEV_DEV', - vendored_gems_env: 'VENDORED_GEMS', - vendor_gem_dir_env: 'VENDOR_GEM_DIR', - debug_env: 'KETTLE_DEV_DEBUG' + prefix: "KETTLE_DEV", + path_env: "KETTLE_DEV_DEV", + vendored_gems_env: "VENDORED_GEMS", + vendor_gem_dir_env: "VENDOR_GEM_DIR", + debug_env: "KETTLE_DEV_DEBUG" ) - if ENV.fetch('GALTZO_FLOSS_DEV', 'false').casecmp('false') != 0 + if ENV.fetch("GALTZO_FLOSS_DEV", "false").casecmp("false") != 0 eval_nomono_gems( gems: %w[turbo_tests2], - prefix: 'GALTZO_FLOSS', - path_env: 'GALTZO_FLOSS_DEV', - vendored_gems_env: 'GALTZO_FLOSS_VENDORED_GEMS', - vendor_gem_dir_env: 'GALTZO_FLOSS_VENDOR_GEM_DIR', - debug_env: 'GALTZO_FLOSS_DEBUG' + prefix: "GALTZO_FLOSS", + path_env: "GALTZO_FLOSS_DEV", + vendored_gems_env: "GALTZO_FLOSS_VENDORED_GEMS", + vendor_gem_dir_env: "GALTZO_FLOSS_VENDOR_GEM_DIR", + debug_env: "GALTZO_FLOSS_DEBUG" ) end end diff --git a/gems/json-merge/gemfiles/modular/debug.gemfile b/gems/json-merge/gemfiles/modular/debug.gemfile index eed8d4d1e..4e15b1a3a 100644 --- a/gems/json-merge/gemfiles/modular/debug.gemfile +++ b/gems/json-merge/gemfiles/modular/debug.gemfile @@ -13,10 +13,10 @@ platform :mri do # Debugging - Ensure ENV["DEBUG"] == "true" to use debuggers within spec suite # Use binding.break, binding.b, or debugger in code - gem 'debug', '>= 1.1' # ruby >= 2.7 + gem "debug", ">= 1.1" # ruby >= 2.7 # Dev Console - Binding.pry - Irb replacement # gem "pry", "~> 0.14" # ruby >= 2.0 end -gem 'gem_bench', '~> 2.0', '>= 2.0.5' +gem "gem_bench", "~> 2.0", ">= 2.0.5" diff --git a/gems/json-merge/gemfiles/modular/documentation.gemfile b/gems/json-merge/gemfiles/modular/documentation.gemfile index dff5cc108..d8215416e 100644 --- a/gems/json-merge/gemfiles/modular/documentation.gemfile +++ b/gems/json-merge/gemfiles/modular/documentation.gemfile @@ -7,20 +7,20 @@ # # Documentation -gem 'kramdown', '~> 2.5', '>= 2.5.1', require: false # Ruby >= 2.5 -gem 'kramdown-parser-gfm', '~> 1.1', require: false # Ruby >= 2.3 -gem 'yaml-converter', '~> 0.1', require: false # Ruby >= 3.2 -gem 'yard', '~> 0.9', '>= 0.9.44', require: false -gem 'yard-junk', '~> 0.1', '>= 0.1.0', require: false # Ruby >= 3.1 -gem 'yard-relative_markdown_links', '~> 0.6', require: false +gem "kramdown", "~> 2.5", ">= 2.5.2", require: false # Ruby >= 2.5 +gem "kramdown-parser-gfm", "~> 1.1", require: false # Ruby >= 2.3 +gem "yaml-converter", "~> 0.2", ">= 0.2.3", require: false # Ruby >= 3.2 +gem "yard", "~> 0.9", ">= 0.9.45", require: false +gem "yard-junk", "~> 0.1", ">= 0.1.0", require: false # Ruby >= 3.1 +gem "yard-relative_markdown_links", "~> 0.6", require: false -if ENV.fetch('GALTZO_FLOSS_DEV', 'false').casecmp('false').zero? - gem 'yard-fence', '~> 0.9', '>= 0.9.1', require: false # Ruby >= 3.2 - gem 'yard-timekeeper', '~> 0.1', require: false - gem 'yard-yaml', '~> 0.1', '>= 0.1.2', require: false +if ENV.fetch("GALTZO_FLOSS_DEV", "false").casecmp("false").zero? + gem "yard-fence", "~> 0.9", ">= 0.9.6", require: false # Ruby >= 3.2 + gem "yard-timekeeper", "~> 0.2", ">= 0.2.4", require: false + gem "yard-yaml", "~> 0.2", ">= 0.2.3", require: false else - eval_gemfile 'documentation_local.gemfile' + eval_gemfile "documentation_local.gemfile" end # Std Lib extractions -gem 'rdoc', '~> 6.11', require: false unless ENV.fetch('KJ_FRAMEWORK_MATRIX_GEM', '') == 'rdoc' +gem "rdoc", "~> 6.11", require: false unless ENV.fetch("KJ_FRAMEWORK_MATRIX_GEM", "") == "rdoc" diff --git a/gems/json-merge/gemfiles/modular/documentation_local.gemfile b/gems/json-merge/gemfiles/modular/documentation_local.gemfile index 4d4c2bd95..65eff94d9 100644 --- a/gems/json-merge/gemfiles/modular/documentation_local.gemfile +++ b/gems/json-merge/gemfiles/modular/documentation_local.gemfile @@ -3,16 +3,40 @@ # Local path overrides for development. # Loaded by the associated non-local gemfile when GALTZO_FLOSS_DEV != "false". -require 'nomono/bundler' unless defined?(Nomono) +# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. +# Bundler records that dependency during Gemfile evaluation, but it does not +# activate that exact version before the immediate `require "nomono/bundler"`. +# If multiple compatible nomono versions are installed, RubyGems may activate +# the newest installed version while Gemfile.lock pins an older compatible one; +# Bundler then aborts with "already activated nomono X, but your Gemfile +# requires nomono Y". Prefer the locked compatible version when present, then +# activate it explicitly before requiring the Bundler DSL extension used below. +nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] +nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) +if File.file?(nomono_lockfile) + nomono_locked_spec = Bundler::LockfileParser + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == "nomono" } + nomono_locked = nomono_locked_spec && + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + if nomono_locked + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] + end +end +Kernel.send(:gem, "nomono", *nomono_activation_requirements) +require "nomono/bundler" local_gems = %w[yard-fence yard-timekeeper yard-yaml] +declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) +local_gems_to_eval = local_gems - %w[json-merge] - declared_gems # export GALTZO_FLOSS_DEV=/path/to/galtzo-floss eval_nomono_gems( - gems: local_gems, - prefix: 'GALTZO_FLOSS', - path_env: 'GALTZO_FLOSS_DEV', - vendored_gems_env: 'GALTZO_FLOSS_VENDORED_GEMS', - vendor_gem_dir_env: 'GALTZO_FLOSS_VENDOR_GEM_DIR', - debug_env: 'GALTZO_FLOSS_DEBUG' + gems: local_gems_to_eval, + prefix: "GALTZO_FLOSS", + path_env: "GALTZO_FLOSS_DEV", + vendored_gems_env: "GALTZO_FLOSS_VENDORED_GEMS", + vendor_gem_dir_env: "GALTZO_FLOSS_VENDOR_GEM_DIR", + debug_env: "GALTZO_FLOSS_DEBUG" ) diff --git a/gems/json-merge/gemfiles/modular/erb/r2/v3.0.gemfile b/gems/json-merge/gemfiles/modular/erb/r2/v3.0.gemfile index 7c83a239b..c03bd8d85 100644 --- a/gems/json-merge/gemfiles/modular/erb/r2/v3.0.gemfile +++ b/gems/json-merge/gemfiles/modular/erb/r2/v3.0.gemfile @@ -1 +1 @@ -gem 'erb', '~> 3.0' # ruby >= 2.7.0 +gem "erb", "~> 3.0" # ruby >= 2.7.0 diff --git a/gems/json-merge/gemfiles/modular/erb/r3/v5.0.gemfile b/gems/json-merge/gemfiles/modular/erb/r3/v5.0.gemfile index 0e3bf1b97..1bd029cc1 100644 --- a/gems/json-merge/gemfiles/modular/erb/r3/v5.0.gemfile +++ b/gems/json-merge/gemfiles/modular/erb/r3/v5.0.gemfile @@ -1 +1 @@ -gem 'erb', '~> 6.0', '>= 6.0.4' # ruby >= 3.2.0 +gem "erb", "~> 6.0", ">= 6.0.6" # ruby >= 3.2.0 diff --git a/gems/json-merge/gemfiles/modular/erb/r4/v5.0.gemfile b/gems/json-merge/gemfiles/modular/erb/r4/v5.0.gemfile index 0e3bf1b97..1bd029cc1 100644 --- a/gems/json-merge/gemfiles/modular/erb/r4/v5.0.gemfile +++ b/gems/json-merge/gemfiles/modular/erb/r4/v5.0.gemfile @@ -1 +1 @@ -gem 'erb', '~> 6.0', '>= 6.0.4' # ruby >= 3.2.0 +gem "erb", "~> 6.0", ">= 6.0.6" # ruby >= 3.2.0 diff --git a/gems/json-merge/gemfiles/modular/erb/vHEAD.gemfile b/gems/json-merge/gemfiles/modular/erb/vHEAD.gemfile index ea0101185..48fee4218 100644 --- a/gems/json-merge/gemfiles/modular/erb/vHEAD.gemfile +++ b/gems/json-merge/gemfiles/modular/erb/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 3.2 -gem 'erb', github: 'ruby/erb', branch: 'master' +gem "erb", github: "ruby/erb", branch: "master" diff --git a/gems/json-merge/gemfiles/modular/json/truffleruby_22_3.gemfile b/gems/json-merge/gemfiles/modular/json/truffleruby_22_3.gemfile new file mode 100644 index 000000000..b0e69ab11 --- /dev/null +++ b/gems/json-merge/gemfiles/modular/json/truffleruby_22_3.gemfile @@ -0,0 +1,6 @@ +# frozen_string_literal: true + +if RUBY_ENGINE == "truffleruby" && RUBY_ENGINE_VERSION.start_with?("22.3") + # TruffleRuby 22.3 ships the json default gem from its emulated MRI Ruby. + gem "json", "= 2.5.1" +end diff --git a/gems/json-merge/gemfiles/modular/json/truffleruby_23_0.gemfile b/gems/json-merge/gemfiles/modular/json/truffleruby_23_0.gemfile new file mode 100644 index 000000000..7b2660a2b --- /dev/null +++ b/gems/json-merge/gemfiles/modular/json/truffleruby_23_0.gemfile @@ -0,0 +1,6 @@ +# frozen_string_literal: true + +if RUBY_ENGINE == "truffleruby" && RUBY_ENGINE_VERSION.start_with?("23.0") + # TruffleRuby 23.0 ships the json default gem from its emulated MRI Ruby. + gem "json", "= 2.6.1" +end diff --git a/gems/json-merge/gemfiles/modular/json/truffleruby_23_1.gemfile b/gems/json-merge/gemfiles/modular/json/truffleruby_23_1.gemfile new file mode 100644 index 000000000..dfa21f2e4 --- /dev/null +++ b/gems/json-merge/gemfiles/modular/json/truffleruby_23_1.gemfile @@ -0,0 +1,6 @@ +# frozen_string_literal: true + +if RUBY_ENGINE == "truffleruby" && RUBY_ENGINE_VERSION.start_with?("23.1") + # TruffleRuby 23.1 ships the json default gem from its emulated MRI Ruby. + gem "json", "= 2.6.3" +end diff --git a/gems/json-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile b/gems/json-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile index e27f1bbae..42e9d9bd4 100644 --- a/gems/json-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile +++ b/gems/json-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 -gem 'mutex_m', '~> 0.2' +gem "mutex_m", "~> 0.2" diff --git a/gems/json-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile b/gems/json-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile index e27f1bbae..42e9d9bd4 100644 --- a/gems/json-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile +++ b/gems/json-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 -gem 'mutex_m', '~> 0.2' +gem "mutex_m", "~> 0.2" diff --git a/gems/json-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile b/gems/json-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile index e27f1bbae..42e9d9bd4 100644 --- a/gems/json-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile +++ b/gems/json-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 -gem 'mutex_m', '~> 0.2' +gem "mutex_m", "~> 0.2" diff --git a/gems/json-merge/gemfiles/modular/mutex_m/vHEAD.gemfile b/gems/json-merge/gemfiles/modular/mutex_m/vHEAD.gemfile index 9dac2f6cb..8af3b6fca 100644 --- a/gems/json-merge/gemfiles/modular/mutex_m/vHEAD.gemfile +++ b/gems/json-merge/gemfiles/modular/mutex_m/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 (dependency of omniauth) -gem 'mutex_m', github: 'ruby/mutex_m', branch: 'master' +gem "mutex_m", github: "ruby/mutex_m", branch: "master" diff --git a/gems/json-merge/gemfiles/modular/optional.gemfile b/gems/json-merge/gemfiles/modular/optional.gemfile index 5ed8dfe9a..80bc45196 100644 --- a/gems/json-merge/gemfiles/modular/optional.gemfile +++ b/gems/json-merge/gemfiles/modular/optional.gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -# To retain during json-merge templating: +# To retain during kettle-jem templating: # kettle-jem:freeze # # ... your code # kettle-jem:unfreeze @@ -9,9 +9,8 @@ # Optional dependencies are not depended on directly, but may be used if present. # Required for curated binstubs generated by kettle-jem install -gem 'rbs', '>= 3.0', require: false # ruby >= 3.1 -gem 'stone_checksums', '~> 1.0', '>= 1.0.3', require: false # ruby >= 2.2 +gem "rbs", ">= 3.0", require: false # ruby >= 3.1 # Required for kettle-pre-release # URL parsing with Unicode support (falls back to URI if not available) -gem 'addressable', '>= 2.8', '< 3' # ruby >= 2.2 +gem "addressable", ">= 2.8", "< 3" # ruby >= 2.2 diff --git a/gems/json-merge/gemfiles/modular/rspec.gemfile b/gems/json-merge/gemfiles/modular/rspec.gemfile index 2af210a41..72fdf8b7f 100644 --- a/gems/json-merge/gemfiles/modular/rspec.gemfile +++ b/gems/json-merge/gemfiles/modular/rspec.gemfile @@ -1,4 +1,4 @@ -gem 'rspec_junit_formatter', - github: 'pboling/rspec_junit_formatter', - branch: 'main', - ref: '9e6bcaaedd49477b62878ed568dc4ada5cc7cb5e' +gem "rspec_junit_formatter", + github: "pboling/rspec_junit_formatter", + branch: "main", + ref: "9e6bcaaedd49477b62878ed568dc4ada5cc7cb5e" diff --git a/gems/json-merge/gemfiles/modular/runtime_heads.gemfile b/gems/json-merge/gemfiles/modular/runtime_heads.gemfile index a6e1ccb82..02f134c7f 100644 --- a/gems/json-merge/gemfiles/modular/runtime_heads.gemfile +++ b/gems/json-merge/gemfiles/modular/runtime_heads.gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -# To retain during json-merge templating: +# To retain during kettle-jem templating: # kettle-jem:freeze # # ... your code # kettle-jem:unfreeze @@ -8,7 +8,4 @@ # Test against HEAD of runtime dependencies so we can proactively file bugs -# Ruby >= 2.2 -gem 'version_gem', github: 'ruby-oauth/version_gem', branch: 'main' - -eval_gemfile('x_std_libs/vHEAD.gemfile') +eval_gemfile("x_std_libs/vHEAD.gemfile") diff --git a/gems/json-merge/gemfiles/modular/stringio/r2/v3.0.gemfile b/gems/json-merge/gemfiles/modular/stringio/r2/v3.0.gemfile index 3616f4e3a..e85bb18ee 100644 --- a/gems/json-merge/gemfiles/modular/stringio/r2/v3.0.gemfile +++ b/gems/json-merge/gemfiles/modular/stringio/r2/v3.0.gemfile @@ -2,4 +2,4 @@ # NOT SEMVER # Version 3.0.7 dropped support for Ruby <= 2.7 # Version 3.0.0 dropped support for Ruby <= 2.4 -gem 'stringio', '>= 3.0' +gem "stringio", ">= 3.0" diff --git a/gems/json-merge/gemfiles/modular/stringio/r3/v3.0.gemfile b/gems/json-merge/gemfiles/modular/stringio/r3/v3.0.gemfile index 3616f4e3a..e85bb18ee 100644 --- a/gems/json-merge/gemfiles/modular/stringio/r3/v3.0.gemfile +++ b/gems/json-merge/gemfiles/modular/stringio/r3/v3.0.gemfile @@ -2,4 +2,4 @@ # NOT SEMVER # Version 3.0.7 dropped support for Ruby <= 2.7 # Version 3.0.0 dropped support for Ruby <= 2.4 -gem 'stringio', '>= 3.0' +gem "stringio", ">= 3.0" diff --git a/gems/json-merge/gemfiles/modular/stringio/r4/v3.0.gemfile b/gems/json-merge/gemfiles/modular/stringio/r4/v3.0.gemfile index 3616f4e3a..e85bb18ee 100644 --- a/gems/json-merge/gemfiles/modular/stringio/r4/v3.0.gemfile +++ b/gems/json-merge/gemfiles/modular/stringio/r4/v3.0.gemfile @@ -2,4 +2,4 @@ # NOT SEMVER # Version 3.0.7 dropped support for Ruby <= 2.7 # Version 3.0.0 dropped support for Ruby <= 2.4 -gem 'stringio', '>= 3.0' +gem "stringio", ">= 3.0" diff --git a/gems/json-merge/gemfiles/modular/stringio/vHEAD.gemfile b/gems/json-merge/gemfiles/modular/stringio/vHEAD.gemfile index 78f5f5d8a..5f2a74126 100644 --- a/gems/json-merge/gemfiles/modular/stringio/vHEAD.gemfile +++ b/gems/json-merge/gemfiles/modular/stringio/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 (dependency of omniauth) -gem 'stringio', github: 'ruby/stringio', branch: 'master' +gem "stringio", github: "ruby/stringio", branch: "master" diff --git a/gems/json-merge/gemfiles/modular/style.gemfile b/gems/json-merge/gemfiles/modular/style.gemfile index 8e3fdd739..35de4dcd6 100644 --- a/gems/json-merge/gemfiles/modular/style.gemfile +++ b/gems/json-merge/gemfiles/modular/style.gemfile @@ -1,28 +1,31 @@ # frozen_string_literal: true -# To retain during json-merge templating: +# To retain during kettle-jem templating: # kettle-jem:freeze # # ... your code # kettle-jem:unfreeze # -# We run rubocop on the latest version of Ruby, -# but in support of the oldest supported version of Ruby +# Style tasks run on the latest Ruby; RuboCop-LTS selects the compatibility +# rules for the configured Ruby floor independently from task dependency floors. -gem 'reek', '~> 6.5' +gem "reek", "~> 6.5", ">= 6.5.0" platform :mri do - gem 'rubocop-on-rbs', '~> 2.0' # ruby >= 3.2.0 + gem "appraisal2-rubocop", "~> 1.0", ">= 1.0.0", require: false + gem "rubocop-gradual", "~> 0.4", ">= 0.4.0" + gem "rubocop-minitest", "~> 0.40", ">= 0.40.0" + gem "rubocop-on-rbs", "~> 2.0", ">= 2.0.0" # ruby >= 3.2.0 # gem "rubocop", "~> 1.73", ">= 1.73.2" # constrained by standard - gem 'rubocop-packaging', '~> 0.6', '>= 0.6.0' - gem 'standard', '>= 1.50' + gem "rubocop-packaging", "~> 0.6", ">= 0.6.0" + gem "standard", "~> 1.56", ">= 1.56.0" - if ENV.fetch('RUBOCOP_LTS_LOCAL', 'false').casecmp('false').zero? - gem 'rubocop-lts', '~> 24.1.0' - # "rubocop-lts-rspec" can't add here until other gems are updated. - gem 'rubocop-rspec', '~> 3.6' - gem 'rubocop-ruby3_2', '~> 3.0.0' + if ENV.fetch("RUBOCOP_LTS_LOCAL", "false").casecmp("false").zero? + declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) + gem "rubocop-lts", "~> 24.2", ">= 24.2.1" unless declared_gems.include?("rubocop-lts") + gem "rubocop-lts-rspec", "~> 1.0", ">= 1.0.5" unless declared_gems.include?("rubocop-lts-rspec") + gem "rubocop-ruby3_2", "~> 3.0", ">= 3.0.6" unless declared_gems.include?("rubocop-ruby3_2") else - eval_gemfile('style_local.gemfile') + eval_gemfile("style_local.gemfile") end end diff --git a/gems/json-merge/gemfiles/modular/style_local.gemfile b/gems/json-merge/gemfiles/modular/style_local.gemfile index ce75bbe21..cdcbeb586 100644 --- a/gems/json-merge/gemfiles/modular/style_local.gemfile +++ b/gems/json-merge/gemfiles/modular/style_local.gemfile @@ -1,24 +1,48 @@ # frozen_string_literal: true -# We run rubocop on the latest version of Ruby, -# but in support of the oldest supported version of Ruby +# Style tasks run on the latest Ruby; RuboCop-LTS selects the compatibility +# rules for the configured Ruby floor independently from task dependency floors. # Local path overrides for development. # Loaded by the associated non-local gemfile when RUBOCOP_LTS_LOCAL != "false". -require 'nomono/bundler' unless defined?(Nomono) +# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. +# Bundler records that dependency during Gemfile evaluation, but it does not +# activate that exact version before the immediate `require "nomono/bundler"`. +# If multiple compatible nomono versions are installed, RubyGems may activate +# the newest installed version while Gemfile.lock pins an older compatible one; +# Bundler then aborts with "already activated nomono X, but your Gemfile +# requires nomono Y". Prefer the locked compatible version when present, then +# activate it explicitly before requiring the Bundler DSL extension used below. +nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] +nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) +if File.file?(nomono_lockfile) + nomono_locked_spec = Bundler::LockfileParser + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == "nomono" } + nomono_locked = nomono_locked_spec && + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + if nomono_locked + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] + end +end +Kernel.send(:gem, "nomono", *nomono_activation_requirements) +require "nomono/bundler" local_gems = %w[rubocop-lts rubocop-lts-rspec rubocop-ruby3_2 standard-rubocop-lts] +declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) +local_gems_to_eval = local_gems - %w[json-merge] - declared_gems # export VENDORED_GEMS=rubocop-lts,rubocop-lts-rspec,rubocop-ruby3_2,standard-rubocop-lts platform :mri do eval_nomono_gems( - gems: local_gems, - prefix: 'RUBOCOP_LTS', - path_env: 'RUBOCOP_LTS_LOCAL', - vendored_gems_env: 'VENDORED_GEMS', - vendor_gem_dir_env: 'VENDOR_GEM_DIR', - debug_env: 'RUBOCOP_LTS_DEBUG', - root: %w[src rubocop-lts] + gems: local_gems_to_eval, + prefix: "RUBOCOP_LTS", + path_env: "RUBOCOP_LTS_LOCAL", + vendored_gems_env: "VENDORED_GEMS", + vendor_gem_dir_env: "VENDOR_GEM_DIR", + debug_env: "RUBOCOP_LTS_DEBUG", + root: ["src", "rubocop-lts"] ) end diff --git a/gems/json-merge/gemfiles/modular/templating.gemfile b/gems/json-merge/gemfiles/modular/templating.gemfile index 2ddc9433f..47138ffbb 100644 --- a/gems/json-merge/gemfiles/modular/templating.gemfile +++ b/gems/json-merge/gemfiles/modular/templating.gemfile @@ -1,24 +1,24 @@ # frozen_string_literal: true -structuredmerge_remote = ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false').zero? -kettle_remote = ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? +structuredmerge_remote = ENV.fetch("STRUCTUREDMERGE_DEV", "false").casecmp("false").zero? +kettle_remote = ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false").zero? if structuredmerge_remote # Parser dependencies for released installs. - gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' + gem "tree_sitter_language_pack", "~> 1.13", ">= 1.13.3" # Merge recipes for released installs. - gem 'kettle-jem', '>= 7.0' + gem "kettle-jem", ">= 7.0" end if kettle_remote # Template/plugin checks for released installs. - gem 'kettle-drift', '~> 1.0', '>= 1.0.5', require: false + gem "kettle-drift", "~> 1.0", ">= 1.0.6", require: false end # Set STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local development with path-based dependencies. # When false (default / CI), released kettle-jem brings merge gems and parser dependencies. # Local path overrides bring the same dependencies from sibling gemspecs. # -# Set KETTLE_DEV_DEV=/path/to/kettle-rb for local development with Kettle plugin gems. +# Set KETTLE_DEV_DEV=/path/to/my for local development with Kettle plugin gems. # When false (default / CI), released Kettle plugin gems are used. -eval_gemfile 'templating_local.gemfile' unless structuredmerge_remote && kettle_remote +eval_gemfile "templating_local.gemfile" unless structuredmerge_remote && kettle_remote diff --git a/gems/json-merge/gemfiles/modular/templating_local.gemfile b/gems/json-merge/gemfiles/modular/templating_local.gemfile index 02662e227..25573dcc8 100644 --- a/gems/json-merge/gemfiles/modular/templating_local.gemfile +++ b/gems/json-merge/gemfiles/modular/templating_local.gemfile @@ -4,7 +4,29 @@ # Loaded by the associated non-local gemfile when STRUCTUREDMERGE_DEV or KETTLE_DEV_DEV # is not "false". -require 'nomono/bundler' unless defined?(Nomono) +# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. +# Bundler records that dependency during Gemfile evaluation, but it does not +# activate that exact version before the immediate `require "nomono/bundler"`. +# If multiple compatible nomono versions are installed, RubyGems may activate +# the newest installed version while Gemfile.lock pins an older compatible one; +# Bundler then aborts with "already activated nomono X, but your Gemfile +# requires nomono Y". Prefer the locked compatible version when present, then +# activate it explicitly before requiring the Bundler DSL extension used below. +nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] +nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) +if File.file?(nomono_lockfile) + nomono_locked_spec = Bundler::LockfileParser + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == "nomono" } + nomono_locked = nomono_locked_spec && + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + if nomono_locked + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] + end +end +Kernel.send(:gem, "nomono", *nomono_activation_requirements) +require "nomono/bundler" structuredmerge_local_gems = %w[ tree_haver @@ -47,25 +69,25 @@ structuredmerge_local_gems_to_eval = structuredmerge_local_gems - %w[json-merge] kettle_dev_local_gems_to_eval = kettle_dev_local_gems - %w[json-merge] - declared_gems platform :mri do - if ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false') != 0 + if ENV.fetch("STRUCTUREDMERGE_DEV", "false").casecmp("false") != 0 eval_nomono_gems( gems: structuredmerge_local_gems_to_eval, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - vendored_gems_env: 'VENDORED_GEMS', - vendor_gem_dir_env: 'VENDOR_GEM_DIR', - debug_env: 'STRUCTUREDMERGE_DEBUG' + prefix: "STRUCTUREDMERGE", + path_env: "STRUCTUREDMERGE_DEV", + vendored_gems_env: "VENDORED_GEMS", + vendor_gem_dir_env: "VENDOR_GEM_DIR", + debug_env: "STRUCTUREDMERGE_DEBUG" ) end - if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false') != 0 + if ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false") != 0 eval_nomono_gems( gems: kettle_dev_local_gems_to_eval, - prefix: 'KETTLE_DEV', - path_env: 'KETTLE_DEV_DEV', - vendored_gems_env: 'VENDORED_GEMS', - vendor_gem_dir_env: 'VENDOR_GEM_DIR', - debug_env: 'KETTLE_DEV_DEBUG' + prefix: "KETTLE_DEV", + path_env: "KETTLE_DEV_DEV", + vendored_gems_env: "VENDORED_GEMS", + vendor_gem_dir_env: "VENDOR_GEM_DIR", + debug_env: "KETTLE_DEV_DEBUG" ) end end diff --git a/gems/json-merge/gemfiles/modular/webrick/r4/v1.9.gemfile b/gems/json-merge/gemfiles/modular/webrick/r4/v1.9.gemfile new file mode 100644 index 000000000..eaab4a473 --- /dev/null +++ b/gems/json-merge/gemfiles/modular/webrick/r4/v1.9.gemfile @@ -0,0 +1 @@ +gem "webrick", "~> 1.9" diff --git a/gems/json-merge/gemfiles/modular/webrick/vHEAD.gemfile b/gems/json-merge/gemfiles/modular/webrick/vHEAD.gemfile new file mode 100644 index 000000000..8a789b634 --- /dev/null +++ b/gems/json-merge/gemfiles/modular/webrick/vHEAD.gemfile @@ -0,0 +1 @@ +gem "webrick", ">= 1.9" diff --git a/gems/json-merge/gemfiles/modular/x_std_libs.gemfile b/gems/json-merge/gemfiles/modular/x_std_libs.gemfile index b1f43c097..77aad43f2 100644 --- a/gems/json-merge/gemfiles/modular/x_std_libs.gemfile +++ b/gems/json-merge/gemfiles/modular/x_std_libs.gemfile @@ -1,12 +1,12 @@ ### Std Lib Extracted Gems ruby_version = Gem::Version.new(RUBY_VERSION) -if ruby_version >= Gem::Version.new('4.0') - eval_gemfile 'x_std_libs/r4/libs.gemfile' -elsif ruby_version >= Gem::Version.new('3.2') - eval_gemfile 'x_std_libs/r3/libs.gemfile' -elsif ruby_version >= Gem::Version.new('3.1') - eval_gemfile 'x_std_libs/r3.1/libs.gemfile' +if ruby_version >= Gem::Version.new("4.0") + eval_gemfile "x_std_libs/r4/libs.gemfile" +elsif ruby_version >= Gem::Version.new("3.2") + eval_gemfile "x_std_libs/r3/libs.gemfile" +elsif ruby_version >= Gem::Version.new("3.1") + eval_gemfile "x_std_libs/r3.1/libs.gemfile" else - eval_gemfile 'x_std_libs/r2/libs.gemfile' + eval_gemfile "x_std_libs/r2/libs.gemfile" end diff --git a/gems/json-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile b/gems/json-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile index 16a5e3d70..441c4f03a 100644 --- a/gems/json-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile +++ b/gems/json-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile @@ -1,3 +1,3 @@ -eval_gemfile '../../erb/r2/v3.0.gemfile' -eval_gemfile '../../mutex_m/r2/v0.3.gemfile' -eval_gemfile '../../stringio/r2/v3.0.gemfile' +eval_gemfile "../../erb/r2/v3.0.gemfile" +eval_gemfile "../../mutex_m/r2/v0.3.gemfile" +eval_gemfile "../../stringio/r2/v3.0.gemfile" diff --git a/gems/json-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile b/gems/json-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile index 220ff95c1..c293a3ddd 100644 --- a/gems/json-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile +++ b/gems/json-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile @@ -1,3 +1,3 @@ -eval_gemfile '../../erb/r3/v5.0.gemfile' -eval_gemfile '../../mutex_m/r3/v0.3.gemfile' -eval_gemfile '../../stringio/r3/v3.0.gemfile' +eval_gemfile "../../erb/r3/v5.0.gemfile" +eval_gemfile "../../mutex_m/r3/v0.3.gemfile" +eval_gemfile "../../stringio/r3/v3.0.gemfile" diff --git a/gems/json-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile b/gems/json-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile index bd4e884df..eb5574247 100644 --- a/gems/json-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile +++ b/gems/json-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile @@ -1,4 +1,6 @@ -eval_gemfile '../../erb/r4/v5.0.gemfile' -eval_gemfile '../../mutex_m/r4/v0.3.gemfile' -eval_gemfile '../../stringio/r4/v3.0.gemfile' -eval_gemfile '../../benchmark/r4/v0.5.gemfile' +eval_gemfile "../../erb/r4/v5.0.gemfile" +eval_gemfile "../../mutex_m/r4/v0.3.gemfile" +eval_gemfile "../../stringio/r4/v3.0.gemfile" +eval_gemfile "../../benchmark/r4/v0.5.gemfile" +eval_gemfile "../../cgi/r4/v0.5.gemfile" +eval_gemfile "../../webrick/r4/v1.9.gemfile" diff --git a/gems/json-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile b/gems/json-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile index 91f383c11..d4d5b16c9 100644 --- a/gems/json-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile +++ b/gems/json-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile @@ -1,4 +1,6 @@ -eval_gemfile '../erb/vHEAD.gemfile' -eval_gemfile '../mutex_m/vHEAD.gemfile' -eval_gemfile '../stringio/vHEAD.gemfile' -eval_gemfile '../benchmark/vHEAD.gemfile' +eval_gemfile "../erb/vHEAD.gemfile" +eval_gemfile "../mutex_m/vHEAD.gemfile" +eval_gemfile "../stringio/vHEAD.gemfile" +eval_gemfile "../benchmark/vHEAD.gemfile" +eval_gemfile "../cgi/vHEAD.gemfile" +eval_gemfile "../webrick/vHEAD.gemfile" diff --git a/gems/markly-merge/Gemfile.lock b/gems/markly-merge/Gemfile.lock index 4ae183f20..3a0d7560d 100644 --- a/gems/markly-merge/Gemfile.lock +++ b/gems/markly-merge/Gemfile.lock @@ -7,13 +7,264 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly + specs: + ast-crispr-markdown-markly (7.1.0) + ast-crispr (= 7.1.0) + markly-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism + specs: + ast-crispr-ruby-prism (7.1.0) + ast-crispr (= 7.1.0) + prism-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr + specs: + ast-crispr (7.1.0) + ast-merge (= 7.1.0) + service_actor (~> 3.9) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git + specs: + ast-merge-git (7.1.0) + ast-merge (= 7.1.0) + json-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge + specs: + ast-merge (7.1.0) + benchmark + token-resolver (~> 2.0, >= 2.0.4) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template + specs: + ast-template (7.1.0) + ast-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge + specs: + bash-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge + specs: + binary-merge (7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge + specs: + citrus-toml-merge (7.1.0) + toml-merge (= 7.1.0) + toml-rb (~> 4.1) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge + specs: + commonmarker-merge (7.1.0) + commonmarker (~> 2.2) + markdown-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge + specs: + dotenv-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge + specs: + go-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge + specs: + json-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem + specs: + kettle-jem (7.1.0) + addressable (>= 2.8, < 3) + ast-crispr-markdown-markly (= 7.1.0) + ast-crispr-ruby-prism (= 7.1.0) + ast-merge (= 7.1.0) + bash-merge (= 7.1.0) + citrus-toml-merge (= 7.1.0) + commonmarker-merge (= 7.1.0) + dotenv-merge (= 7.1.0) + json-merge (= 7.1.0) + kettle-dev (~> 2.3, >= 2.3.5) + kettle-rb (~> 0.1, >= 0.1.4) + kramdown-merge (= 7.1.0) + markdown-merge (= 7.1.0) + markly-merge (= 7.1.0) + prism-merge (= 7.1.0) + psych-merge (= 7.1.0) + rbs (>= 3.10) + rbs-merge (= 7.1.0) + ruby-merge (= 7.1.0) + token-resolver (~> 2.0, >= 2.0.4) + toml-merge (= 7.1.0) + toml-rb (~> 4.2) + tree_haver (= 7.1.0) + yaml-merge (= 7.1.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge + specs: + kramdown-merge (7.1.0) + kramdown (~> 2.5) + markdown-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge specs: markdown-merge (7.1.0) ast-merge (= 7.1.0) tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge + specs: + parslet-toml-merge (7.1.0) + toml (~> 0.3) + toml-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge + specs: + plain-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge + specs: + prism-merge (7.1.0) + prism (~> 1.6) + ruby-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge + specs: + psych-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + yaml-merge (= 7.1.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge + specs: + rbs-merge (7.1.0) + ast-merge (= 7.1.0) + rbs (>= 3.10) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge + specs: + ruby-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge + specs: + rust-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb + specs: + smorg-rb (7.1.0) + ast-merge (= 7.1.0) + ast-merge-git (= 7.1.0) + go-merge (= 7.1.0) + json-merge (= 7.1.0) + kettle-jem (= 7.1.0) + markly-merge (= 7.1.0) + plain-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge + specs: + toml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver + specs: + tree_haver (7.1.0) + citrus (~> 3.0) + parslet (~> 2.0) + tree_sitter_language_pack (>= 1.13.2, < 2.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge + specs: + typescript-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge + specs: + yaml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge + specs: + zip-merge (7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + GEM remote: https://gem.coop/ specs: @@ -29,11 +280,6 @@ GEM rubocop (>= 1.0) version_gem (~> 1.1, >= 1.1.14) ast (2.4.3) - ast-merge (7.1.0) - benchmark - token-resolver (~> 2.0, >= 2.0.4) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) backports (3.25.3) benchmark (0.5.0) bigdecimal (4.1.2) @@ -43,6 +289,7 @@ GEM cgi (0.5.2) citrus (3.0.2) cmdparse (3.0.7) + commonmarker (2.9.0-x86_64-linux) concurrent-ruby (1.3.8) date (3.5.1) debug (1.11.1) @@ -105,6 +352,8 @@ GEM kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) + kettle-drift (1.0.6) + version_gem (~> 1.1, >= 1.1.14) kettle-rb (0.1.5) kettle-soup-cover (3.0.4) kettle-wash (~> 0.1, >= 0.1.0) @@ -288,6 +537,8 @@ GEM ruby-progressbar (1.13.0) ruby_engine (2.0.3) ruby_version (1.0.3) + service_actor (3.9.4) + zeitwerk (>= 1.0) silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) @@ -342,11 +593,11 @@ GEM token-resolver (2.0.5) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.14) - tree_haver (7.1.0) - citrus (~> 3.0) - parslet (~> 2.0) - tree_sitter_language_pack (>= 1.13.2, < 2.0) - version_gem (~> 1.1, >= 1.1.9) + toml (0.3.0) + parslet (>= 1.8.0, < 3.0.0) + toml-rb (4.2.0) + citrus (~> 3.0, > 3.0) + racc (~> 1.7) tree_sitter_language_pack (1.13.3-x86_64-linux) sorbet-runtime (~> 0.5) tsort (0.2.0) @@ -392,25 +643,46 @@ DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) appraisal2-rubocop (~> 1.0, >= 1.0.0) + ast-crispr! + ast-crispr-markdown-markly! + ast-crispr-ruby-prism! + ast-merge! + ast-merge-git! + ast-template! + bash-merge! benchmark (~> 0.5, >= 0.5.0) + binary-merge! bundler-audit (~> 0.9.3) cgi (~> 0.5) + citrus-toml-merge! + commonmarker-merge! debug (>= 1.1) + dotenv-merge! erb (~> 6.0, >= 6.0.6) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.0) + go-merge! irb (~> 1.17) + json-merge! kettle-dev (~> 2.0, >= 2.2.25) + kettle-drift (~> 1.0, >= 1.0.6) + kettle-jem! kettle-soup-cover (~> 3.0, >= 3.0.3) kettle-test (~> 2.0, >= 2.0.9) kramdown (~> 2.5, >= 2.5.2) + kramdown-merge! kramdown-parser-gfm (~> 1.1) markdown-merge! markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) + parslet-toml-merge! + plain-merge! + prism-merge! + psych-merge! rake (~> 13.0) rbs (>= 3.0) + rbs-merge! rdoc (~> 6.11) reek (~> 6.5, >= 6.5.0) require_bench (~> 1.0, >= 1.0.4) @@ -421,19 +693,27 @@ DEPENDENCIES rubocop-on-rbs (~> 2.0, >= 2.0.0) rubocop-packaging (~> 0.6, >= 0.6.0) rubocop-ruby3_2 (~> 3.0, >= 3.0.6) + ruby-merge! ruby-progressbar (~> 1.13) + rust-merge! + smorg-rb! standard (~> 1.56, >= 1.56.0) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) + toml-merge! + tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) + typescript-merge! webrick (~> 1.9) yaml-converter (~> 0.2, >= 0.2.3) + yaml-merge! yard (~> 0.9, >= 0.9.45) yard-fence (~> 0.9, >= 0.9.6) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) yard-timekeeper (~> 0.2, >= 0.2.4) yard-yaml (~> 0.2, >= 0.2.3) + zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af @@ -441,20 +721,31 @@ CHECKSUMS appraisal2 (3.2.0) sha256=ccd0b767ac4060cd7af6d16747459b6990f49c39c7b4fb1f7d1146b1e97c492f appraisal2-rubocop (1.0.0) sha256=b71410fbb014befda5340605a605b7f6f3f012739baf0acc5b4351b592c3258d ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 + ast-crispr (7.1.0) + ast-crispr-markdown-markly (7.1.0) + ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) + ast-merge-git (7.1.0) + ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 + bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd + binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 + citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 + commonmarker (2.9.0-x86_64-linux) sha256=8cfe92970eef585a19ddf6613224b91cab64d6029834661bda801f877c9c7f43 + commonmarker-merge (7.1.0) concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 + dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -467,16 +758,21 @@ CHECKSUMS gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f + go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 + json-merge (7.1.0) kettle-dev (2.3.8) sha256=9d716ff21c660a730cb4e8d41e2e2f0630a28167a354b6e2924e242102aef72c + kettle-drift (1.0.6) sha256=46eda08fa4411d1f3c6682a95eef1c9df4e94611b3949f49d4c7b43c0ed356a3 + kettle-jem (7.1.0) kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f kettle-soup-cover (3.0.4) kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa + kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 @@ -493,15 +789,20 @@ CHECKSUMS parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 + parslet-toml-merge (7.1.0) + plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 + prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 + psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 + rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb @@ -536,15 +837,19 @@ CHECKSUMS rubocop-rspec_rails (2.32.0) sha256=4a0d641c72f6ebb957534f539d9d0a62c47abd8ce0d0aeee1ef4701e892a9100 rubocop-ruby3_2 (3.0.7) sha256=f53dd6d286fb05186214fc6ec116783e7f837030918e8931c05de773e98f8466 rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 + ruby-merge (7.1.0) ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 + rust-merge (7.1.0) + service_actor (3.9.4) sha256=e63b523630b9a7e62959b2a90113b08d2565b5de9c148557b281ef847c9539ce silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed + smorg-rb (7.1.0) sorbet-runtime (0.6.13347) sha256=54e7221d9f4b63f58aec79f3043752a9ba7810347c6ae0d903531591cc2d5f01 standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b @@ -558,16 +863,21 @@ CHECKSUMS thor (1.5.0) sha256=e3a9e55fe857e44859ce104a84675ab6e8cd59c650a49106a05f55f136425e73 timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 - token-resolver (2.0.5) + token-resolver (2.0.5) sha256=b852f924287ffb58a440856e862b056c8ad97e74b4b2526cee43e0771f40c25c + toml (0.3.0) sha256=0a91d0f76a9036e84e44f95693b12f58d358c1df3ac8e3b5271f2056ecc6e4b9 + toml-merge (7.1.0) + toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 + typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 webrick (1.9.2) sha256=beb4a15fc474defed24a3bda4ffd88a490d517c9e4e6118c3edce59e45864131 yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 + yaml-merge (7.1.0) yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd @@ -575,6 +885,7 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 + zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH From 56efbe88d63a178376e7b8bea5bd8e2818873dc7 Mon Sep 17 00:00:00 2001 From: "Peter H. Boling" Date: Tue, 21 Jul 2026 13:51:59 -0600 Subject: [PATCH 122/188] =?UTF-8?q?=F0=9F=8E=A8=20Template=20bootstrap=20b?= =?UTF-8?q?y=20kettle-jem=20v7.1.0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gems/ast-crispr-markdown-markly/Gemfile.lock | 327 +++++++++++- gems/ast-merge-git/.kettle-drift.lock | 308 +----------- .../.structuredmerge/kettle-jem.yml | 53 ++ gems/ast-merge-git/Gemfile | 72 ++- gems/ast-merge-git/Gemfile.lock | 386 ++++++++++++-- gems/ast-merge-git/Rakefile | 18 +- .../lib/ast/merge/git/version.rb | 2 +- gems/json-merge/.rubocop_gradual.lock | 60 ++- gems/json-merge/Gemfile | 70 ++- gems/json-merge/Gemfile.lock | 476 ++++-------------- gems/json-merge/Rakefile | 18 +- .../modular/benchmark/r4/v0.5.gemfile | 2 +- .../gemfiles/modular/benchmark/vHEAD.gemfile | 2 +- .../gemfiles/modular/cgi/r4/v0.5.gemfile | 2 +- .../gemfiles/modular/cgi/vHEAD.gemfile | 2 +- .../gemfiles/modular/coverage.gemfile | 6 +- .../gemfiles/modular/coverage_local.gemfile | 42 +- .../json-merge/gemfiles/modular/debug.gemfile | 4 +- .../gemfiles/modular/documentation.gemfile | 24 +- .../modular/documentation_local.gemfile | 30 +- .../gemfiles/modular/erb/r2/v3.0.gemfile | 2 +- .../gemfiles/modular/erb/r3/v5.0.gemfile | 2 +- .../gemfiles/modular/erb/r4/v5.0.gemfile | 2 +- .../gemfiles/modular/erb/vHEAD.gemfile | 2 +- .../modular/json/truffleruby_22_3.gemfile | 4 +- .../modular/json/truffleruby_23_0.gemfile | 4 +- .../modular/json/truffleruby_23_1.gemfile | 4 +- .../gemfiles/modular/mutex_m/r2/v0.3.gemfile | 2 +- .../gemfiles/modular/mutex_m/r3/v0.3.gemfile | 2 +- .../gemfiles/modular/mutex_m/r4/v0.3.gemfile | 2 +- .../gemfiles/modular/mutex_m/vHEAD.gemfile | 2 +- .../gemfiles/modular/optional.gemfile | 4 +- .../json-merge/gemfiles/modular/rspec.gemfile | 8 +- .../gemfiles/modular/runtime_heads.gemfile | 2 +- .../gemfiles/modular/stringio/r2/v3.0.gemfile | 2 +- .../gemfiles/modular/stringio/r3/v3.0.gemfile | 2 +- .../gemfiles/modular/stringio/r4/v3.0.gemfile | 2 +- .../gemfiles/modular/stringio/vHEAD.gemfile | 2 +- .../json-merge/gemfiles/modular/style.gemfile | 24 +- .../gemfiles/modular/style_local.gemfile | 32 +- .../gemfiles/modular/templating.gemfile | 12 +- .../gemfiles/modular/templating_local.gemfile | 44 +- .../gemfiles/modular/webrick/r4/v1.9.gemfile | 2 +- .../gemfiles/modular/webrick/vHEAD.gemfile | 2 +- .../gemfiles/modular/x_std_libs.gemfile | 14 +- .../modular/x_std_libs/r2/libs.gemfile | 6 +- .../modular/x_std_libs/r3/libs.gemfile | 6 +- .../modular/x_std_libs/r4/libs.gemfile | 12 +- .../gemfiles/modular/x_std_libs/vHEAD.gemfile | 12 +- gems/json-merge/lib/json/merge/version.rb | 2 +- gems/plain-merge/.kettle-drift.lock | 328 +----------- .../.structuredmerge/kettle-jem.yml | 53 ++ gems/plain-merge/Gemfile | 72 ++- gems/plain-merge/Gemfile.lock | 353 ++++++++++++- gems/plain-merge/Rakefile | 18 +- gems/plain-merge/lib/plain/merge/version.rb | 2 +- 56 files changed, 1610 insertions(+), 1338 deletions(-) diff --git a/gems/ast-crispr-markdown-markly/Gemfile.lock b/gems/ast-crispr-markdown-markly/Gemfile.lock index e394d7157..ee3cb0f2e 100644 --- a/gems/ast-crispr-markdown-markly/Gemfile.lock +++ b/gems/ast-crispr-markdown-markly/Gemfile.lock @@ -7,7 +7,15 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism + specs: + ast-crispr-ruby-prism (7.1.0) + ast-crispr (= 7.1.0) + prism-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr specs: ast-crispr (7.1.0) ast-merge (= 7.1.0) @@ -15,13 +23,248 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/markly-merge + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git + specs: + ast-merge-git (7.1.0) + ast-merge (= 7.1.0) + json-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge + specs: + ast-merge (7.1.0) + benchmark + token-resolver (~> 2.0, >= 2.0.4) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template + specs: + ast-template (7.1.0) + ast-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge + specs: + bash-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge + specs: + binary-merge (7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge + specs: + citrus-toml-merge (7.1.0) + toml-merge (= 7.1.0) + toml-rb (~> 4.1) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge + specs: + commonmarker-merge (7.1.0) + commonmarker (~> 2.2) + markdown-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge + specs: + dotenv-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge + specs: + go-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge + specs: + json-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem + specs: + kettle-jem (7.1.0) + addressable (>= 2.8, < 3) + ast-crispr-markdown-markly (= 7.1.0) + ast-crispr-ruby-prism (= 7.1.0) + ast-merge (= 7.1.0) + bash-merge (= 7.1.0) + citrus-toml-merge (= 7.1.0) + commonmarker-merge (= 7.1.0) + dotenv-merge (= 7.1.0) + json-merge (= 7.1.0) + kettle-dev (~> 2.3, >= 2.3.5) + kettle-rb (~> 0.1, >= 0.1.4) + kramdown-merge (= 7.1.0) + markdown-merge (= 7.1.0) + markly-merge (= 7.1.0) + prism-merge (= 7.1.0) + psych-merge (= 7.1.0) + rbs (>= 3.10) + rbs-merge (= 7.1.0) + ruby-merge (= 7.1.0) + token-resolver (~> 2.0, >= 2.0.4) + toml-merge (= 7.1.0) + toml-rb (~> 4.2) + tree_haver (= 7.1.0) + yaml-merge (= 7.1.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge + specs: + kramdown-merge (7.1.0) + kramdown (~> 2.5) + markdown-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge + specs: + markdown-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge specs: markly-merge (7.1.0) markdown-merge (= 7.1.0) markly (~> 0.9) version_gem (~> 1.1, >= 1.1.9) +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge + specs: + parslet-toml-merge (7.1.0) + toml (~> 0.3) + toml-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge + specs: + plain-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge + specs: + prism-merge (7.1.0) + prism (~> 1.6) + ruby-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge + specs: + psych-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + yaml-merge (= 7.1.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge + specs: + rbs-merge (7.1.0) + ast-merge (= 7.1.0) + rbs (>= 3.10) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge + specs: + ruby-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge + specs: + rust-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb + specs: + smorg-rb (7.1.0) + ast-merge (= 7.1.0) + ast-merge-git (= 7.1.0) + go-merge (= 7.1.0) + json-merge (= 7.1.0) + kettle-jem (= 7.1.0) + markly-merge (= 7.1.0) + plain-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge + specs: + toml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver + specs: + tree_haver (7.1.0) + citrus (~> 3.0) + parslet (~> 2.0) + tree_sitter_language_pack (>= 1.13.2, < 2.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge + specs: + typescript-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge + specs: + yaml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge + specs: + zip-merge (7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + GEM remote: https://gem.coop/ specs: @@ -37,11 +280,6 @@ GEM rubocop (>= 1.0) version_gem (~> 1.1, >= 1.1.14) ast (2.4.3) - ast-merge (7.1.0) - benchmark - token-resolver (~> 2.0, >= 2.0.4) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) backports (3.25.3) benchmark (0.5.0) bigdecimal (4.1.2) @@ -51,6 +289,7 @@ GEM cgi (0.5.2) citrus (3.0.2) cmdparse (3.0.7) + commonmarker (2.9.0-x86_64-linux) concurrent-ruby (1.3.8) date (3.5.1) debug (1.11.1) @@ -113,6 +352,8 @@ GEM kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) + kettle-drift (1.0.6) + version_gem (~> 1.1, >= 1.1.14) kettle-rb (0.1.5) kettle-soup-cover (3.0.4) kettle-wash (~> 0.1, >= 0.1.0) @@ -141,10 +382,6 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) - markdown-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) markly (0.16.0) mutex_m (0.3.0) nokogiri (1.19.4-x86_64-linux-gnu) @@ -356,11 +593,11 @@ GEM token-resolver (2.0.5) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.14) - tree_haver (7.1.0) - citrus (~> 3.0) - parslet (~> 2.0) - tree_sitter_language_pack (>= 1.13.2, < 2.0) - version_gem (~> 1.1, >= 1.1.9) + toml (0.3.0) + parslet (>= 1.8.0, < 3.0.0) + toml-rb (4.2.0) + citrus (~> 3.0, > 3.0) + racc (~> 1.7) tree_sitter_language_pack (1.13.3-x86_64-linux) sorbet-runtime (~> 0.5) tsort (0.2.0) @@ -408,24 +645,44 @@ DEPENDENCIES appraisal2-rubocop (~> 1.0, >= 1.0.0) ast-crispr! ast-crispr-markdown-markly! + ast-crispr-ruby-prism! + ast-merge! + ast-merge-git! + ast-template! + bash-merge! benchmark (~> 0.5, >= 0.5.0) + binary-merge! bundler-audit (~> 0.9.3) cgi (~> 0.5) + citrus-toml-merge! + commonmarker-merge! debug (>= 1.1) + dotenv-merge! erb (~> 6.0, >= 6.0.6) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.0) + go-merge! irb (~> 1.17) + json-merge! kettle-dev (~> 2.0, >= 2.2.25) + kettle-drift (~> 1.0, >= 1.0.6) + kettle-jem! kettle-soup-cover (~> 3.0, >= 3.0.3) kettle-test (~> 2.0, >= 2.0.9) kramdown (~> 2.5, >= 2.5.2) + kramdown-merge! kramdown-parser-gfm (~> 1.1) + markdown-merge! markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) + parslet-toml-merge! + plain-merge! + prism-merge! + psych-merge! rake (~> 13.0) rbs (>= 3.0) + rbs-merge! rdoc (~> 6.11) reek (~> 6.5, >= 6.5.0) require_bench (~> 1.0, >= 1.0.4) @@ -436,19 +693,27 @@ DEPENDENCIES rubocop-on-rbs (~> 2.0, >= 2.0.0) rubocop-packaging (~> 0.6, >= 0.6.0) rubocop-ruby3_2 (~> 3.0, >= 3.0.6) + ruby-merge! ruby-progressbar (~> 1.13) + rust-merge! + smorg-rb! standard (~> 1.56, >= 1.56.0) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) + toml-merge! + tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) + typescript-merge! webrick (~> 1.9) yaml-converter (~> 0.2, >= 0.2.3) + yaml-merge! yard (~> 0.9, >= 0.9.45) yard-fence (~> 0.9, >= 0.9.6) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) yard-timekeeper (~> 0.2, >= 0.2.4) yard-yaml (~> 0.2, >= 0.2.3) + zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af @@ -458,20 +723,29 @@ CHECKSUMS ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 ast-crispr (7.1.0) ast-crispr-markdown-markly (7.1.0) + ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) + ast-merge-git (7.1.0) + ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 + bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd + binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 + citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 + commonmarker (2.9.0-x86_64-linux) sha256=8cfe92970eef585a19ddf6613224b91cab64d6029834661bda801f877c9c7f43 + commonmarker-merge (7.1.0) concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 + dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -484,16 +758,21 @@ CHECKSUMS gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f + go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 + json-merge (7.1.0) kettle-dev (2.3.8) sha256=9d716ff21c660a730cb4e8d41e2e2f0630a28167a354b6e2924e242102aef72c + kettle-drift (1.0.6) sha256=46eda08fa4411d1f3c6682a95eef1c9df4e94611b3949f49d4c7b43c0ed356a3 + kettle-jem (7.1.0) kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f kettle-soup-cover (3.0.4) kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa + kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 @@ -510,15 +789,20 @@ CHECKSUMS parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 + parslet-toml-merge (7.1.0) + plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 + prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 + psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 + rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb @@ -553,9 +837,11 @@ CHECKSUMS rubocop-rspec_rails (2.32.0) sha256=4a0d641c72f6ebb957534f539d9d0a62c47abd8ce0d0aeee1ef4701e892a9100 rubocop-ruby3_2 (3.0.7) sha256=f53dd6d286fb05186214fc6ec116783e7f837030918e8931c05de773e98f8466 rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 + ruby-merge (7.1.0) ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 + rust-merge (7.1.0) service_actor (3.9.4) sha256=e63b523630b9a7e62959b2a90113b08d2565b5de9c148557b281ef847c9539ce silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 @@ -563,6 +849,7 @@ CHECKSUMS simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed + smorg-rb (7.1.0) sorbet-runtime (0.6.13347) sha256=54e7221d9f4b63f58aec79f3043752a9ba7810347c6ae0d903531591cc2d5f01 standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b @@ -576,16 +863,21 @@ CHECKSUMS thor (1.5.0) sha256=e3a9e55fe857e44859ce104a84675ab6e8cd59c650a49106a05f55f136425e73 timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 - token-resolver (2.0.5) + token-resolver (2.0.5) sha256=b852f924287ffb58a440856e862b056c8ad97e74b4b2526cee43e0771f40c25c + toml (0.3.0) sha256=0a91d0f76a9036e84e44f95693b12f58d358c1df3ac8e3b5271f2056ecc6e4b9 + toml-merge (7.1.0) + toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 + typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 webrick (1.9.2) sha256=beb4a15fc474defed24a3bda4ffd88a490d517c9e4e6118c3edce59e45864131 yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 + yaml-merge (7.1.0) yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd @@ -593,6 +885,7 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 + zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH diff --git a/gems/ast-merge-git/.kettle-drift.lock b/gems/ast-merge-git/.kettle-drift.lock index c94914817..2ee9dae31 100644 --- a/gems/ast-merge-git/.kettle-drift.lock +++ b/gems/ast-merge-git/.kettle-drift.lock @@ -1,138 +1,10 @@ { - "(direct_sibling_local ||\nENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?)": [ - { - "file": "Gemfile", - "lines": [ - 80, - 120, - 160, - 200, - 240, - 280, - 320, - 360, - 400, - 440 - ] - } - ], - ".find { |spec| spec.name == 'nomono' }\nnomono_locked = nomono_locked_spec &&": [ - { - "file": "Gemfile", - "lines": [ - 91, - 131, - 171, - 211, - 251, - 291, - 331, - 371, - 411, - 451 - ] - } - ], - "ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?)\ndirect_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV')": [ - { - "file": "Gemfile", - "lines": [ - 81, - 121, - 161, - 201, - 241, - 281, - 321, - 361, - 401, - 441 - ] - } - ], - "Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version)\nnomono_activation_requirements = [\"= #{nomono_locked_spec.version}\"] if nomono_locked": [ - { - "file": "Gemfile", - "lines": [ - 93, - 133, - 173, - 213, - 253, - 293, - 333, - 373, - 413, - 453 - ] - } - ], - "Kernel.send(:gem, 'nomono', *nomono_activation_requirements)\nrequire 'nomono/bundler'": [ - { - "file": "Gemfile", - "lines": [ - 96, - 136, - 176, - 216, - 256, - 296, - 336, - 376, - 416, - 456 - ] - } - ], - "direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV')\ndirect_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil)": [ - { - "file": "Gemfile", - "lines": [ - 82, - 122, - 162, - 202, - 242, - 282, - 322, - 362, - 402, - 442 - ] - } - ], "eval_nomono_gems(\ngems: direct_sibling_gems,": [ { "file": "Gemfile", "lines": [ 60, - 100, - 140, - 180, - 220, - 260, - 300, - 340, - 380, - 420, - 460 - ] - } - ], - "gems: direct_sibling_gems,\nprefix: 'STRUCTUREDMERGE',": [ - { - "file": "Gemfile", - "lines": [ - 101, - 141, - 181, - 221, - 261, - 301, - 341, - 381, - 421, - 461 + 100 ] } ], @@ -141,33 +13,7 @@ "file": "Gemfile", "lines": [ 43, - 87, - 127, - 167, - 207, - 247, - 287, - 327, - 367, - 407, - 447 - ] - } - ], - "if direct_sibling_dev_was_set\nENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original": [ - { - "file": "Gemfile", - "lines": [ - 110, - 150, - 190, - 230, - 270, - 310, - 350, - 390, - 430, - 470 + 87 ] } ], @@ -176,16 +22,7 @@ "file": "Gemfile", "lines": [ 35, - 79, - 119, - 159, - 199, - 239, - 279, - 319, - 359, - 399, - 439 + 79 ] } ], @@ -194,33 +31,7 @@ "file": "Gemfile", "lines": [ 69, - 109, - 149, - 189, - 229, - 269, - 309, - 349, - 389, - 429, - 469 - ] - } - ], - "nomono_activation_requirements = nomono_requirements\nnomono_lockfile = File.expand_path('Gemfile.lock', __dir__)": [ - { - "file": "Gemfile", - "lines": [ - 85, - 125, - 165, - 205, - 245, - 285, - 325, - 365, - 405, - 445 + 109 ] } ], @@ -229,16 +40,7 @@ "file": "Gemfile", "lines": [ 48, - 92, - 132, - 172, - 212, - 252, - 292, - 332, - 372, - 412, - 452 + 92 ] } ], @@ -247,101 +49,7 @@ "file": "Gemfile", "lines": [ 44, - 88, - 128, - 168, - 208, - 248, - 288, - 328, - 368, - 408, - 448 - ] - } - ], - "nomono_lockfile = File.expand_path('Gemfile.lock', __dir__)\nif File.file?(nomono_lockfile)": [ - { - "file": "Gemfile", - "lines": [ - 86, - 126, - 166, - 206, - 246, - 286, - 326, - 366, - 406, - 446 - ] - } - ], - "path_env: 'STRUCTUREDMERGE_DEV',\nroot: %w[src my structuredmerge]": [ - { - "file": "Gemfile", - "lines": [ - 103, - 143, - 183, - 223, - 263, - 303, - 343, - 383, - 423, - 463 - ] - } - ], - "prefix: 'STRUCTUREDMERGE',\npath_env: 'STRUCTUREDMERGE_DEV',": [ - { - "file": "Gemfile", - "lines": [ - 102, - 142, - 182, - 222, - 262, - 302, - 342, - 382, - 422, - 462 - ] - } - ], - "require 'nomono/bundler'\nENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local": [ - { - "file": "Gemfile", - "lines": [ - 97, - 137, - 177, - 217, - 257, - 297, - 337, - 377, - 417, - 457 - ] - } - ], - "rescue LoadError\nwarn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.'": [ - { - "file": "Gemfile", - "lines": [ - 106, - 146, - 186, - 226, - 266, - 306, - 346, - 386, - 426, - 466 + 88 ] } ], @@ -349,8 +57,8 @@ { "file": "gemfiles/modular/templating_local.gemfile", "lines": [ - 58, - 69 + 55, + 66 ] } ] diff --git a/gems/ast-merge-git/.structuredmerge/kettle-jem.yml b/gems/ast-merge-git/.structuredmerge/kettle-jem.yml index 276c6e7bb..53f002c15 100644 --- a/gems/ast-merge-git/.structuredmerge/kettle-jem.yml +++ b/gems/ast-merge-git/.structuredmerge/kettle-jem.yml @@ -246,6 +246,59 @@ templates: - Gemfile - certs/pboling.pem - tmp/.gitignore + - gemfiles/modular/benchmark/r4/v0.5.gemfile + - gemfiles/modular/benchmark/vHEAD.gemfile + - gemfiles/modular/cgi/r4/v0.5.gemfile + - gemfiles/modular/cgi/vHEAD.gemfile + - gemfiles/modular/coverage.gemfile + - gemfiles/modular/coverage_local.gemfile + - gemfiles/modular/debug.gemfile + - gemfiles/modular/documentation.gemfile + - gemfiles/modular/documentation_local.gemfile + - gemfiles/modular/erb/r2.3/default.gemfile + - gemfiles/modular/erb/r2.6/v2.2.gemfile + - gemfiles/modular/erb/r2/v3.0.gemfile + - gemfiles/modular/erb/r3.1/v4.0.gemfile + - gemfiles/modular/erb/r3/v5.0.gemfile + - gemfiles/modular/erb/r4/v5.0.gemfile + - gemfiles/modular/erb/vHEAD.gemfile + - gemfiles/modular/json/truffleruby_22_3.gemfile + - gemfiles/modular/json/truffleruby_23_0.gemfile + - gemfiles/modular/json/truffleruby_23_1.gemfile + - gemfiles/modular/mutex_m/r2.4/v0.1.gemfile + - gemfiles/modular/mutex_m/r2/v0.3.gemfile + - gemfiles/modular/mutex_m/r3/v0.3.gemfile + - gemfiles/modular/mutex_m/r4/v0.3.gemfile + - gemfiles/modular/mutex_m/vHEAD.gemfile + - gemfiles/modular/optional.gemfile + - gemfiles/modular/recording/r2.3/recording.gemfile + - gemfiles/modular/recording/r2.4/recording.gemfile + - gemfiles/modular/recording/r2.5/recording.gemfile + - gemfiles/modular/recording/r3/recording.gemfile + - gemfiles/modular/recording/r4/recording.gemfile + - gemfiles/modular/recording/vHEAD.gemfile + - gemfiles/modular/rspec.gemfile + - gemfiles/modular/runtime_heads.gemfile + - gemfiles/modular/stringio/r2.4/v0.0.2.gemfile + - gemfiles/modular/stringio/r2/v3.0.gemfile + - gemfiles/modular/stringio/r3/v3.0.gemfile + - gemfiles/modular/stringio/r4/v3.0.gemfile + - gemfiles/modular/stringio/vHEAD.gemfile + - gemfiles/modular/style.gemfile + - gemfiles/modular/style_local.gemfile + - gemfiles/modular/templating.gemfile + - gemfiles/modular/templating_local.gemfile + - gemfiles/modular/webrick/r4/v1.9.gemfile + - gemfiles/modular/webrick/vHEAD.gemfile + - gemfiles/modular/x_std_libs.gemfile + - gemfiles/modular/x_std_libs/r2.3/libs.gemfile + - gemfiles/modular/x_std_libs/r2.4/libs.gemfile + - gemfiles/modular/x_std_libs/r2.6/libs.gemfile + - gemfiles/modular/x_std_libs/r2/libs.gemfile + - gemfiles/modular/x_std_libs/r3.1/libs.gemfile + - gemfiles/modular/x_std_libs/r3/libs.gemfile + - gemfiles/modular/x_std_libs/r4/libs.gemfile + - gemfiles/modular/x_std_libs/vHEAD.gemfile - source: lib/gem/version.rb target: lib/ast/merge/git/version.rb - source: sig/gem.rbs diff --git a/gems/ast-merge-git/Gemfile b/gems/ast-merge-git/Gemfile index 8ab76ce93..c58dd4f3d 100644 --- a/gems/ast-merge-git/Gemfile +++ b/gems/ast-merge-git/Gemfile @@ -6,7 +6,7 @@ # kettle-jem will then preserve content between those markers across template runs. # kettle-jem:unfreeze -source 'https://gem.coop' +source "https://gem.coop" git_source(:codeberg) { |repo_name| "https://codeberg.org/#{repo_name}" } git_source(:gitlab) { |repo_name| "https://gitlab.com/#{repo_name}" } @@ -19,18 +19,62 @@ git_source(:gitlab) { |repo_name| "https://gitlab.com/#{repo_name}" } gemspec # Local workspace dependency wiring for *_local.gemfile overrides -nomono_requirements = ['~> 1.0', '>= 1.0.8'] -gem 'nomono', *nomono_requirements, require: false # ruby >= 2.2 +nomono_requirements = ["~> 1.0", ">= 1.0.8"] +gem "nomono", *nomono_requirements, require: false # ruby >= 2.2 # Direct sibling dependencies (env-switched via STRUCTUREDMERGE_DEV) direct_sibling_gems = %w[ ast-merge json-merge ] -direct_sibling_dev = ENV.fetch('STRUCTUREDMERGE_DEV', '') +direct_sibling_dev = ENV.fetch("STRUCTUREDMERGE_DEV", "") direct_sibling_local = !direct_sibling_dev.empty? && !%w[false 0 no off].include?(direct_sibling_dev.downcase) -direct_sibling_templating = ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? +direct_sibling_templating = ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? + +if direct_sibling_gems.any? && + (direct_sibling_local || + ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero?) + direct_sibling_dev_was_set = ENV.key?("STRUCTUREDMERGE_DEV") + direct_sibling_dev_original = ENV.fetch("STRUCTUREDMERGE_DEV", nil) + begin + nomono_activation_requirements = nomono_requirements + nomono_lockfile = File.expand_path("Gemfile.lock", __dir__) + if File.file?(nomono_lockfile) + nomono_locked_spec = Bundler::LockfileParser + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == "nomono" } + nomono_locked = nomono_locked_spec && + Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) + if nomono_locked + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] + end + end + Kernel.send(:gem, "nomono", *nomono_activation_requirements) + require "nomono/bundler" + if direct_sibling_templating && !direct_sibling_local + ENV["STRUCTUREDMERGE_DEV"] = File.expand_path("..", __dir__) + end + + eval_nomono_gems( + gems: direct_sibling_gems, + prefix: "STRUCTUREDMERGE", + path_env: "STRUCTUREDMERGE_DEV", + root: ["src", "my", "structuredmerge"] + ) + rescue LoadError + warn "Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies." + ensure + if direct_sibling_templating && !direct_sibling_local + if direct_sibling_dev_was_set + ENV["STRUCTUREDMERGE_DEV"] = direct_sibling_dev_original + else + ENV.delete("STRUCTUREDMERGE_DEV") + end + end + end +end if direct_sibling_gems.any? && (direct_sibling_local || @@ -73,28 +117,28 @@ if direct_sibling_gems.any? && end # Use released TSLP with the Ruby ABI platform-gem fix. -gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' +gem "tree_sitter_language_pack", "~> 1.13", ">= 1.13.3" # Templating (env-switched: STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local paths) -eval_gemfile 'gemfiles/modular/templating.gemfile' if ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? +eval_gemfile "gemfiles/modular/templating.gemfile" if ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? # Debugging -eval_gemfile 'gemfiles/modular/debug.gemfile' +eval_gemfile "gemfiles/modular/debug.gemfile" # Code Coverage (env-switched: KETTLE_DEV_DEV=true for local paths) -eval_gemfile 'gemfiles/modular/coverage.gemfile' +eval_gemfile "gemfiles/modular/coverage.gemfile" # Linting -eval_gemfile 'gemfiles/modular/style.gemfile' +eval_gemfile "gemfiles/modular/style.gemfile" # Documentation -eval_gemfile 'gemfiles/modular/documentation.gemfile' +eval_gemfile "gemfiles/modular/documentation.gemfile" # Optional -eval_gemfile 'gemfiles/modular/optional.gemfile' +eval_gemfile "gemfiles/modular/optional.gemfile" ### Std Lib Extracted Gems -eval_gemfile 'gemfiles/modular/x_std_libs.gemfile' +eval_gemfile "gemfiles/modular/x_std_libs.gemfile" # See unlocked_deps appraisal for more details on irb inclusion -gem 'irb', '~> 1.17' # ruby >= 2.7 +gem "irb", "~> 1.17" # ruby >= 2.7 diff --git a/gems/ast-merge-git/Gemfile.lock b/gems/ast-merge-git/Gemfile.lock index 0de53773d..29ac8d026 100644 --- a/gems/ast-merge-git/Gemfile.lock +++ b/gems/ast-merge-git/Gemfile.lock @@ -6,6 +6,265 @@ PATH json-merge (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly + specs: + ast-crispr-markdown-markly (7.1.0) + ast-crispr (= 7.1.0) + markly-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism + specs: + ast-crispr-ruby-prism (7.1.0) + ast-crispr (= 7.1.0) + prism-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr + specs: + ast-crispr (7.1.0) + ast-merge (= 7.1.0) + service_actor (~> 3.9) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge + specs: + ast-merge (7.1.0) + benchmark + token-resolver (~> 2.0, >= 2.0.4) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template + specs: + ast-template (7.1.0) + ast-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge + specs: + bash-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge + specs: + binary-merge (7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge + specs: + citrus-toml-merge (7.1.0) + toml-merge (= 7.1.0) + toml-rb (~> 4.1) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge + specs: + commonmarker-merge (7.1.0) + commonmarker (~> 2.2) + markdown-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge + specs: + dotenv-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge + specs: + go-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge + specs: + json-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem + specs: + kettle-jem (7.1.0) + addressable (>= 2.8, < 3) + ast-crispr-markdown-markly (= 7.1.0) + ast-crispr-ruby-prism (= 7.1.0) + ast-merge (= 7.1.0) + bash-merge (= 7.1.0) + citrus-toml-merge (= 7.1.0) + commonmarker-merge (= 7.1.0) + dotenv-merge (= 7.1.0) + json-merge (= 7.1.0) + kettle-dev (~> 2.3, >= 2.3.5) + kettle-rb (~> 0.1, >= 0.1.4) + kramdown-merge (= 7.1.0) + markdown-merge (= 7.1.0) + markly-merge (= 7.1.0) + prism-merge (= 7.1.0) + psych-merge (= 7.1.0) + rbs (>= 3.10) + rbs-merge (= 7.1.0) + ruby-merge (= 7.1.0) + token-resolver (~> 2.0, >= 2.0.4) + toml-merge (= 7.1.0) + toml-rb (~> 4.2) + tree_haver (= 7.1.0) + yaml-merge (= 7.1.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge + specs: + kramdown-merge (7.1.0) + kramdown (~> 2.5) + markdown-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge + specs: + markdown-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge + specs: + markly-merge (7.1.0) + markdown-merge (= 7.1.0) + markly (~> 0.9) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge + specs: + parslet-toml-merge (7.1.0) + toml (~> 0.3) + toml-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge + specs: + plain-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge + specs: + prism-merge (7.1.0) + prism (~> 1.6) + ruby-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge + specs: + psych-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + yaml-merge (= 7.1.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge + specs: + rbs-merge (7.1.0) + ast-merge (= 7.1.0) + rbs (>= 3.10) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge + specs: + ruby-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge + specs: + rust-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb + specs: + smorg-rb (7.1.0) + ast-merge (= 7.1.0) + ast-merge-git (= 7.1.0) + go-merge (= 7.1.0) + json-merge (= 7.1.0) + kettle-jem (= 7.1.0) + markly-merge (= 7.1.0) + plain-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge + specs: + toml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver + specs: + tree_haver (7.1.0) + citrus (~> 3.0) + parslet (~> 2.0) + tree_sitter_language_pack (>= 1.13.2, < 2.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge + specs: + typescript-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge + specs: + yaml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge + specs: + zip-merge (7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + GEM remote: https://gem.coop/ specs: @@ -17,11 +276,6 @@ GEM rake (>= 10) thor (>= 0.14) ast (2.4.3) - ast-merge (7.1.0) - benchmark - token-resolver (~> 2.0, >= 2.0.4) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) backports (3.25.3) benchmark (0.5.0) bigdecimal (4.1.2) @@ -30,6 +284,7 @@ GEM thor (~> 1.0) citrus (3.0.2) cmdparse (3.0.7) + commonmarker (2.9.0-x86_64-linux) concurrent-ruby (1.3.8) date (3.5.1) debug (1.11.1) @@ -88,15 +343,13 @@ GEM rdoc (>= 4.0.0) reline (>= 0.4.2) json (2.21.1) - json-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) kettle-dev (2.3.7) emoji_regex (>= 15.0) kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) + kettle-drift (1.0.6) + version_gem (~> 1.1, >= 1.1.14) kettle-rb (0.1.4) kettle-soup-cover (1.1.3) simplecov (~> 0.22) @@ -125,10 +378,11 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) + markly (0.16.0) mutex_m (0.3.0) nokogiri (1.19.4-x86_64-linux-gnu) racc (~> 1.4) - nomono (1.0.8) + nomono (1.0.9) openssl (4.0.2) ostruct (0.6.3) parallel (1.28.0) @@ -251,6 +505,8 @@ GEM ruby-progressbar (1.13.0) ruby_engine (2.0.3) ruby_version (1.0.3) + service_actor (3.9.4) + zeitwerk (>= 1.0) silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) @@ -270,7 +526,7 @@ GEM simplecov-rcov (0.3.7) simplecov (>= 0.4.1) simplecov_json_formatter (0.1.4) - sorbet-runtime (0.6.13342) + sorbet-runtime (0.6.13347) standard (1.56.0) language_server-protocol (~> 3.17.0.2) lint_roller (~> 1.0) @@ -302,12 +558,12 @@ GEM timecop (>= 0.7, < 1) token-resolver (2.0.4) parslet (~> 2.0) - version_gem (~> 1.1, >= 1.1.14) - tree_haver (7.1.0) - citrus (~> 3.0) - parslet (~> 2.0) - tree_sitter_language_pack (>= 1.13.2, < 2.0) - version_gem (~> 1.1, >= 1.1.9) + version_gem (~> 1.1, >= 1.1.13) + toml (0.3.0) + parslet (>= 1.8.0, < 3.0.0) + toml-rb (4.2.0) + citrus (~> 3.0, > 3.0) + racc (~> 1.7) tree_sitter_language_pack (1.13.3-x86_64-linux) sorbet-runtime (~> 0.5) tsort (0.2.0) @@ -351,23 +607,45 @@ PLATFORMS DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) + ast-crispr! + ast-crispr-markdown-markly! + ast-crispr-ruby-prism! + ast-merge! ast-merge-git! + ast-template! + bash-merge! benchmark (~> 0.5, >= 0.5.0) + binary-merge! bundler-audit (~> 0.9.3) + citrus-toml-merge! + commonmarker-merge! debug (>= 1.1) + dotenv-merge! erb (~> 6.0, >= 6.0.4) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.0) + go-merge! irb (~> 1.17) + json-merge! kettle-dev (~> 2.0, >= 2.2.25) + kettle-drift (~> 1.0, >= 1.0.5) + kettle-jem! kettle-soup-cover (~> 1.0, >= 1.1.3) kettle-test (~> 2.0, >= 2.0.9) kramdown (~> 2.5, >= 2.5.1) + kramdown-merge! kramdown-parser-gfm (~> 1.1) + markdown-merge! + markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) + parslet-toml-merge! + plain-merge! + prism-merge! + psych-merge! rake (~> 13.0) rbs (>= 3.0) + rbs-merge! rdoc (~> 6.11) reek (~> 6.5) require_bench (~> 1.0, >= 1.0.4) @@ -376,32 +654,49 @@ DEPENDENCIES rubocop-packaging (~> 0.6, >= 0.6.0) rubocop-rspec (~> 3.6) rubocop-ruby3_2 (~> 3.0.0) + ruby-merge! ruby-progressbar (~> 1.13) + rust-merge! + smorg-rb! standard (>= 1.50) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) + toml-merge! + tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) + typescript-merge! yaml-converter (~> 0.1) + yaml-merge! yard (~> 0.9, >= 0.9.44) yard-fence (~> 0.9, >= 0.9.1) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) yard-timekeeper (~> 0.1) yard-yaml (~> 0.1, >= 0.1.2) + zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af ansi (1.6.0) sha256=ac9ea0c0ea8d32fb4e271348e609963ac78882f34b73836c2a02b3622e666658 appraisal2 (3.2.0) sha256=ccd0b767ac4060cd7af6d16747459b6990f49c39c7b4fb1f7d1146b1e97c492f ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 + ast-crispr (7.1.0) + ast-crispr-markdown-markly (7.1.0) + ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) ast-merge-git (7.1.0) + ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 + bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd + binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 + citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 + commonmarker (2.9.0-x86_64-linux) + commonmarker-merge (7.1.0) concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 @@ -409,6 +704,7 @@ CHECKSUMS diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 docile (1.4.1) sha256=96159be799bfa73cdb721b840e9802126e4e03dfc26863db73647204c727f21e + dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -421,38 +717,50 @@ CHECKSUMS gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f + go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 json-merge (7.1.0) kettle-dev (2.3.7) sha256=eb370113cd030d03cbe2d33b31c99858951017e5ad21a17e9ed89dc3770028ee + kettle-drift (1.0.6) + kettle-jem (7.1.0) kettle-rb (0.1.4) sha256=9cef7ce4f7021666b7222292f29051e51eaf042e8a5db11f3f4dd72f74243fc1 kettle-soup-cover (1.1.3) sha256=a373827da22a7131d093afd32945e5b7d7a10a01ebfdded8fd2cb8230d69c8ad kettle-test (2.0.11) sha256=c710c90f7ab79d51f9452f0c09f5f90657e7a893f63583855c164d0b1b107ab2 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa + kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 + markdown-merge (7.1.0) + markly (0.16.0) + markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-x86_64-linux-gnu) sha256=379fae440b28915e3f19d752ce2dcf8465ed2b2fbefd2a7ca0dd497bc981a06a - nomono (1.0.8) sha256=bf4b9b426cbf216ab17b70db474f691b8ae1f1e29de8db4b0ecd405e6e7e1c80 + nomono (1.0.9) openssl (4.0.2) sha256=1037ad2868ae58df9ad917891c0c0f9815a1172f6846d4bcdd508e4c2ee747c2 ostruct (0.6.3) sha256=95a2ed4a4bd1d190784e666b47b2d3f078e4a9efda2fccf18f84ddc6538ed912 parallel (1.28.0) sha256=33e6de1484baf2524792d178b0913fc8eb94c628d6cfe45599ad4458c638c970 parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 + parslet-toml-merge (7.1.0) + plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 + prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 + psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 + rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb @@ -480,9 +788,12 @@ CHECKSUMS rubocop-rspec (3.10.2) sha256=0b3e2ecc592cd10ecbf0095bb58d1e357905276e069643523cc19eb7495f65e2 rubocop-ruby3_2 (3.0.7) sha256=f53dd6d286fb05186214fc6ec116783e7f837030918e8931c05de773e98f8466 rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 + ruby-merge (7.1.0) ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 + rust-merge (7.1.0) + service_actor (3.9.4) silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (0.22.0) sha256=fe2622c7834ff23b98066bb0a854284b2729a569ac659f82621fc22ef36213a5 simplecov-cobertura (3.2.0) sha256=70d702658677fcb20e5aceb6915ccf8bc62ff2ccd38b62b3ad5c9db5c0888740 @@ -491,7 +802,8 @@ CHECKSUMS simplecov-lcov (0.9.0) sha256=7a77a31e200a595ed4b0249493056efd0c920601f53d2ef135ca34ee796346cd simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_json_formatter (0.1.4) sha256=529418fbe8de1713ac2b2d612aa3daa56d316975d307244399fa4838c601b428 - sorbet-runtime (0.6.13342) sha256=dbeb9892597f593ed2b29e38018912787f6c4e0c4b736d8af0d6bd3c63bde3c3 + smorg-rb (7.1.0) + sorbet-runtime (0.6.13347) sha256=54e7221d9f4b63f58aec79f3043752a9ba7810347c6ae0d903531591cc2d5f01 standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b standard-performance (1.9.0) sha256=49483d31be448292951d80e5e67cdcb576c2502103c7b40aec6f1b6e9c88e3f2 @@ -504,22 +816,28 @@ CHECKSUMS timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.4) sha256=33b926958f504525bba3ed511ab66fbcbf8ef30390815e931436b30f27ffcad0 + toml (0.3.0) + toml-merge (7.1.0) + toml-rb (4.2.0) tree_haver (7.1.0) - tree_sitter_language_pack (1.13.3-x86_64-linux) - tsort (0.2.0) - turbo_tests2 (3.2.0) - unicode-display_width (3.2.0) - unicode-emoji (4.2.0) - version_gem (1.1.14) - yaml-converter (0.2.3) - yard (0.9.45) - yard-fence (0.9.6) - yard-junk (0.1.0) - yard-relative_markdown_links (0.6.0) - yard-timekeeper (0.2.4) - yard-yaml (0.2.3) - zeitwerk (2.8.2) - zlib (3.2.3) + tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 + tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f + turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 + typescript-merge (7.1.0) + unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 + unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f + version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 + yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 + yaml-merge (7.1.0) + yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 + yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 + yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd + yard-relative_markdown_links (0.6.0) sha256=3e5ffa85cbad9bac70bee5421774b190fb25d3bdf489323a5b3534f647d1a70e + yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a + yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 + zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 + zip-merge (7.1.0) + zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH 4.0.16 diff --git a/gems/ast-merge-git/Rakefile b/gems/ast-merge-git/Rakefile index d006f9ed7..0ffccc3a4 100644 --- a/gems/ast-merge-git/Rakefile +++ b/gems/ast-merge-git/Rakefile @@ -130,23 +130,23 @@ end ### DUPLICATE DRIFT TASKS begin - require 'kettle/drift' + require "kettle/drift" Kettle::Drift.install_tasks rescue LoadError - desc('(stub) kettle:drift:check is unavailable') - task('kettle:drift:check') do + desc("(stub) kettle:drift:check is unavailable") + task("kettle:drift:check") do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc('(stub) kettle:drift:update is unavailable') - task('kettle:drift:update') do + desc("(stub) kettle:drift:update is unavailable") + task("kettle:drift:update") do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc('(stub) kettle:drift:force_update is unavailable') - task('kettle:drift:force_update') do + desc("(stub) kettle:drift:force_update is unavailable") + task("kettle:drift:force_update") do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc('(stub) kettle:drift is unavailable') - task('kettle:drift' => 'kettle:drift:update') + desc("(stub) kettle:drift is unavailable") + task("kettle:drift" => "kettle:drift:update") end ### TEMPLATING TASKS diff --git a/gems/ast-merge-git/lib/ast/merge/git/version.rb b/gems/ast-merge-git/lib/ast/merge/git/version.rb index ebc548487..9e917693b 100644 --- a/gems/ast-merge-git/lib/ast/merge/git/version.rb +++ b/gems/ast-merge-git/lib/ast/merge/git/version.rb @@ -4,7 +4,7 @@ module Ast module Merge module Git module Version - VERSION = '7.1.0' + VERSION = "7.1.0" end VERSION = Version::VERSION # Traditional Constant Location end diff --git a/gems/json-merge/.rubocop_gradual.lock b/gems/json-merge/.rubocop_gradual.lock index c11bd924b..711123deb 100644 --- a/gems/json-merge/.rubocop_gradual.lock +++ b/gems/json-merge/.rubocop_gradual.lock @@ -15,13 +15,20 @@ [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] ], + "gemfiles/modular/cgi/r4/v0.5.gemfile:367169322": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/cgi/vHEAD.gemfile:2729540777": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], "gemfiles/modular/erb/r2/v3.0.gemfile:1688285565": [ [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] ], - "gemfiles/modular/erb/r3/v5.0.gemfile:2150258305": [ + "gemfiles/modular/erb/r3/v5.0.gemfile:2394062339": [ [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] ], - "gemfiles/modular/erb/r4/v5.0.gemfile:2150258305": [ + "gemfiles/modular/erb/r4/v5.0.gemfile:2394062339": [ [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] ], "gemfiles/modular/erb/vHEAD.gemfile:981929959": [ @@ -57,6 +64,13 @@ [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] ], + "gemfiles/modular/webrick/r4/v1.9.gemfile:3092661193": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/webrick/vHEAD.gemfile:3867684682": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], "gemfiles/modular/x_std_libs.gemfile:2324400122": [ [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] ], @@ -66,10 +80,10 @@ "gemfiles/modular/x_std_libs/r3/libs.gemfile:4030570297": [ [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] ], - "gemfiles/modular/x_std_libs/r4/libs.gemfile:909736663": [ + "gemfiles/modular/x_std_libs/r4/libs.gemfile:732451732": [ [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] ], - "gemfiles/modular/x_std_libs/vHEAD.gemfile:907917303": [ + "gemfiles/modular/x_std_libs/vHEAD.gemfile:2390363993": [ [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] ], @@ -217,23 +231,23 @@ [16, 5, 6329, "Metrics/ClassLength: Class has too many lines. [140/100]", 1868859478], [183, 7, 586, "Metrics/MethodLength: Method has too many lines. [14/10]", 4015595961] ], - "lib/json/merge/file_analysis.rb:4214581229": [ - [7, 5, 8625, "Metrics/ClassLength: Class has too many lines. [230/100]", 3986988439], + "lib/json/merge/file_analysis.rb:2615144059": [ + [7, 5, 8534, "Metrics/ClassLength: Class has too many lines. [231/100]", 1552473597], [20, 7, 897, "Metrics/MethodLength: Method has too many lines. [16/10]", 2945813957], [83, 9, 6, "Naming/MemoizedInstanceVariableName: Memoized variable `@nodes` does not match method name `statements`. Use `@statements` instead.", 2756313398], [182, 7, 530, "Metrics/MethodLength: Method has too many lines. [12/10]", 2217856870], - [218, 7, 679, "Metrics/AbcSize: Assignment Branch Condition size for `collect_parse_errors` is too high. [<1, 19, 11> 21.98/17]", 1780421309], - [218, 7, 679, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `collect_parse_errors` is too high. [11/7]", 1780421309], - [218, 7, 679, "Metrics/MethodLength: Method has too many lines. [13/10]", 1780421309], - [218, 7, 679, "Metrics/PerceivedComplexity: Perceived complexity for `collect_parse_errors` is too high. [11/8]", 1780421309], - [235, 7, 1373, "Metrics/AbcSize: Assignment Branch Condition size for `extract_freeze_blocks` is too high. [<16, 23, 14> 31.32/17]", 2629976180], - [235, 7, 1373, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `extract_freeze_blocks` is too high. [12/7]", 2629976180], - [235, 7, 1373, "Metrics/MethodLength: Method has too many lines. [33/10]", 2629976180], - [235, 7, 1373, "Metrics/PerceivedComplexity: Perceived complexity for `extract_freeze_blocks` is too high. [14/8]", 2629976180], - [279, 7, 575, "Metrics/AbcSize: Assignment Branch Condition size for `integrate_nodes_and_freeze_blocks` is too high. [<8, 19, 10> 22.91/17]", 1313409663], - [279, 7, 575, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `integrate_nodes_and_freeze_blocks` is too high. [11/7]", 1313409663], - [279, 7, 575, "Metrics/MethodLength: Method has too many lines. [13/10]", 1313409663], - [279, 7, 575, "Metrics/PerceivedComplexity: Perceived complexity for `integrate_nodes_and_freeze_blocks` is too high. [11/8]", 1313409663] + [217, 7, 679, "Metrics/AbcSize: Assignment Branch Condition size for `collect_parse_errors` is too high. [<1, 19, 11> 21.98/17]", 1780421309], + [217, 7, 679, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `collect_parse_errors` is too high. [11/7]", 1780421309], + [217, 7, 679, "Metrics/MethodLength: Method has too many lines. [13/10]", 1780421309], + [217, 7, 679, "Metrics/PerceivedComplexity: Perceived complexity for `collect_parse_errors` is too high. [11/8]", 1780421309], + [234, 7, 1373, "Metrics/AbcSize: Assignment Branch Condition size for `extract_freeze_blocks` is too high. [<16, 23, 14> 31.32/17]", 2629976180], + [234, 7, 1373, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `extract_freeze_blocks` is too high. [12/7]", 2629976180], + [234, 7, 1373, "Metrics/MethodLength: Method has too many lines. [33/10]", 2629976180], + [234, 7, 1373, "Metrics/PerceivedComplexity: Perceived complexity for `extract_freeze_blocks` is too high. [14/8]", 2629976180], + [278, 7, 575, "Metrics/AbcSize: Assignment Branch Condition size for `integrate_nodes_and_freeze_blocks` is too high. [<8, 19, 10> 22.91/17]", 1313409663], + [278, 7, 575, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `integrate_nodes_and_freeze_blocks` is too high. [11/7]", 1313409663], + [278, 7, 575, "Metrics/MethodLength: Method has too many lines. [13/10]", 1313409663], + [278, 7, 575, "Metrics/PerceivedComplexity: Perceived complexity for `integrate_nodes_and_freeze_blocks` is too high. [11/8]", 1313409663] ], "lib/json/merge/freeze_node.rb:340454761": [ [11, 21, 97, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 4181995290] @@ -275,12 +289,12 @@ [188, 7, 574, "Metrics/MethodLength: Method has too many lines. [13/10]", 1857730257], [221, 7, 1053, "Metrics/MethodLength: Method has too many lines. [24/10]", 3329630813] ], - "spec/fixtures_integration_spec.rb:1148249567": [ - [3, 1, 9137, "Metrics/BlockLength: Block has too many lines. [189/25]", 3333617620], + "spec/fixtures_integration_spec.rb:4153476545": [ + [3, 1, 9054, "Metrics/BlockLength: Block has too many lines. [188/25]", 3333617620], [61, 23, 55, "Style/SingleArgumentDig: Use `described_class.json_plan_context[:feature_profile]` instead of `described_class.json_plan_context.dig(:feature_profile)`.", 2689605560], - [116, 60, 25, "Style/SymbolProc: Pass `&:compact` as an argument to `map` instead of a block.", 2107480170], - [124, 59, 25, "Style/SymbolProc: Pass `&:compact` as an argument to `map` instead of a block.", 2107480170], - [188, 3, 801, "Metrics/BlockLength: Block has too many lines. [27/25]", 716259872] + [115, 60, 25, "Style/SymbolProc: Pass `&:compact` as an argument to `map` instead of a block.", 2107480170], + [123, 59, 25, "Style/SymbolProc: Pass `&:compact` as an argument to `map` instead of a block.", 2107480170], + [187, 3, 801, "Metrics/BlockLength: Block has too many lines. [27/25]", 716259872] ], "spec/reproducible_merge_spec.rb:133932627": [ [5, 1, 1854, "Metrics/BlockLength: Block has too many lines. [40/25]", 671932104] diff --git a/gems/json-merge/Gemfile b/gems/json-merge/Gemfile index c664c31b9..5fcfa797e 100644 --- a/gems/json-merge/Gemfile +++ b/gems/json-merge/Gemfile @@ -6,7 +6,7 @@ # kettle-jem will then preserve content between those markers across template runs. # kettle-jem:unfreeze -source "https://gem.coop" +source 'https://gem.coop' git_source(:codeberg) { |repo_name| "https://codeberg.org/#{repo_name}" } git_source(:gitlab) { |repo_name| "https://gitlab.com/#{repo_name}" } @@ -19,58 +19,54 @@ git_source(:gitlab) { |repo_name| "https://gitlab.com/#{repo_name}" } gemspec # Local workspace dependency wiring for *_local.gemfile overrides -nomono_requirements = ["~> 1.0", ">= 1.0.8"] -gem "nomono", *nomono_requirements, require: false # ruby >= 2.2 +nomono_requirements = ['~> 1.0', '>= 1.0.8'] +gem 'nomono', *nomono_requirements, require: false # ruby >= 2.2 # Direct sibling dependencies (env-switched via STRUCTUREDMERGE_DEV) direct_sibling_gems = %w[ ast-merge tree_haver ] -direct_sibling_dev = ENV.fetch("STRUCTUREDMERGE_DEV", "") +direct_sibling_dev = ENV.fetch('STRUCTUREDMERGE_DEV', '') direct_sibling_local = !direct_sibling_dev.empty? && !%w[false 0 no off].include?(direct_sibling_dev.downcase) -direct_sibling_templating = ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? +direct_sibling_templating = ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero?) - direct_sibling_dev_was_set = ENV.key?("STRUCTUREDMERGE_DEV") - direct_sibling_dev_original = ENV.fetch("STRUCTUREDMERGE_DEV", nil) + (direct_sibling_local || + ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) + direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') + direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) begin nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path("Gemfile.lock", __dir__) + nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == "nomono" } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - if nomono_locked - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] - end - end - Kernel.send(:gem, "nomono", *nomono_activation_requirements) - require "nomono/bundler" - if direct_sibling_templating && !direct_sibling_local - ENV["STRUCTUREDMERGE_DEV"] = File.expand_path("..", __dir__) + Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked end + Kernel.send(:gem, 'nomono', *nomono_activation_requirements) + require 'nomono/bundler' + ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local eval_nomono_gems( gems: direct_sibling_gems, - prefix: "STRUCTUREDMERGE", - path_env: "STRUCTUREDMERGE_DEV", - root: ["src", "my", "structuredmerge"] + prefix: 'STRUCTUREDMERGE', + path_env: 'STRUCTUREDMERGE_DEV', + root: %w[src my structuredmerge] ) rescue LoadError - warn "Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies." + warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' ensure if direct_sibling_templating && !direct_sibling_local if direct_sibling_dev_was_set - ENV["STRUCTUREDMERGE_DEV"] = direct_sibling_dev_original + ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original else - ENV.delete("STRUCTUREDMERGE_DEV") + ENV.delete('STRUCTUREDMERGE_DEV') end end end @@ -117,28 +113,28 @@ if direct_sibling_gems.any? && end # Use released TSLP with the Ruby ABI platform-gem fix. -gem "tree_sitter_language_pack", "~> 1.13", ">= 1.13.3" +gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' # Templating (env-switched: STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local paths) -eval_gemfile "gemfiles/modular/templating.gemfile" if ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? +eval_gemfile 'gemfiles/modular/templating.gemfile' if ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? # Debugging -eval_gemfile "gemfiles/modular/debug.gemfile" +eval_gemfile 'gemfiles/modular/debug.gemfile' # Code Coverage (env-switched: KETTLE_DEV_DEV=true for local paths) -eval_gemfile "gemfiles/modular/coverage.gemfile" +eval_gemfile 'gemfiles/modular/coverage.gemfile' # Linting -eval_gemfile "gemfiles/modular/style.gemfile" +eval_gemfile 'gemfiles/modular/style.gemfile' # Documentation -eval_gemfile "gemfiles/modular/documentation.gemfile" +eval_gemfile 'gemfiles/modular/documentation.gemfile' # Optional -eval_gemfile "gemfiles/modular/optional.gemfile" +eval_gemfile 'gemfiles/modular/optional.gemfile' ### Std Lib Extracted Gems -eval_gemfile "gemfiles/modular/x_std_libs.gemfile" +eval_gemfile 'gemfiles/modular/x_std_libs.gemfile' # See unlocked_deps appraisal for more details on irb inclusion -gem "irb", "~> 1.17" # ruby >= 2.7 +gem 'irb', '~> 1.17' # ruby >= 2.7 diff --git a/gems/json-merge/Gemfile.lock b/gems/json-merge/Gemfile.lock index 382e1616f..63bac2522 100644 --- a/gems/json-merge/Gemfile.lock +++ b/gems/json-merge/Gemfile.lock @@ -7,39 +7,7 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly - specs: - ast-crispr-markdown-markly (7.1.0) - ast-crispr (= 7.1.0) - markly-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism - specs: - ast-crispr-ruby-prism (7.1.0) - ast-crispr (= 7.1.0) - prism-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr - specs: - ast-crispr (7.1.0) - ast-merge (= 7.1.0) - service_actor (~> 3.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git - specs: - ast-merge-git (7.1.0) - ast-merge (= 7.1.0) - json-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/ast-merge specs: ast-merge (7.1.0) benchmark @@ -48,193 +16,7 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template - specs: - ast-template (7.1.0) - ast-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge - specs: - bash-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge - specs: - binary-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge - specs: - citrus-toml-merge (7.1.0) - toml-merge (= 7.1.0) - toml-rb (~> 4.1) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge - specs: - commonmarker-merge (7.1.0) - commonmarker (~> 2.2) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge - specs: - dotenv-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge - specs: - go-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem - specs: - kettle-jem (7.1.0) - addressable (>= 2.8, < 3) - ast-crispr-markdown-markly (= 7.1.0) - ast-crispr-ruby-prism (= 7.1.0) - ast-merge (= 7.1.0) - bash-merge (= 7.1.0) - citrus-toml-merge (= 7.1.0) - commonmarker-merge (= 7.1.0) - dotenv-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-dev (~> 2.3, >= 2.3.5) - kettle-rb (~> 0.1, >= 0.1.4) - kramdown-merge (= 7.1.0) - markdown-merge (= 7.1.0) - markly-merge (= 7.1.0) - prism-merge (= 7.1.0) - psych-merge (= 7.1.0) - rbs (>= 3.10) - rbs-merge (= 7.1.0) - ruby-merge (= 7.1.0) - token-resolver (~> 2.0, >= 2.0.4) - toml-merge (= 7.1.0) - toml-rb (~> 4.2) - tree_haver (= 7.1.0) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge - specs: - kramdown-merge (7.1.0) - kramdown (~> 2.5) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge - specs: - markdown-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge - specs: - markly-merge (7.1.0) - markdown-merge (= 7.1.0) - markly (~> 0.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge - specs: - parslet-toml-merge (7.1.0) - toml (~> 0.3) - toml-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge - specs: - plain-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge - specs: - prism-merge (7.1.0) - prism (~> 1.6) - ruby-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge - specs: - psych-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge - specs: - rbs-merge (7.1.0) - ast-merge (= 7.1.0) - rbs (>= 3.10) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge - specs: - ruby-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge - specs: - rust-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb - specs: - smorg-rb (7.1.0) - ast-merge (= 7.1.0) - ast-merge-git (= 7.1.0) - go-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-jem (= 7.1.0) - markly-merge (= 7.1.0) - plain-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge - specs: - toml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/tree_haver specs: tree_haver (7.1.0) citrus (~> 3.0) @@ -242,29 +24,6 @@ PATH tree_sitter_language_pack (>= 1.13.2, < 2.0) version_gem (~> 1.1, >= 1.1.9) -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge - specs: - typescript-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge - specs: - yaml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge - specs: - zip-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - GEM remote: https://gem.coop/ specs: @@ -275,6 +34,10 @@ GEM bundler (>= 1.17.3) rake (>= 10) thor (>= 0.14) + appraisal2-rubocop (1.0.0) + appraisal2 (>= 3.1.4) + rubocop (>= 1.0) + version_gem (~> 1.1, >= 1.1.14) ast (2.4.3) backports (3.25.3) benchmark (0.5.0) @@ -282,9 +45,9 @@ GEM bundler-audit (0.9.3) bundler (>= 1.2.0) thor (~> 1.0) + cgi (0.5.2) citrus (3.0.2) cmdparse (3.0.7) - commonmarker (2.9.0-x86_64-linux) concurrent-ruby (1.3.8) date (3.5.1) debug (1.11.1) @@ -293,7 +56,6 @@ GEM delegate (0.6.1) diff-lcs (1.6.2) diffy (3.4.4) - docile (1.4.1) dry-configurable (1.4.0) dry-core (~> 1.0) zeitwerk (~> 2.6) @@ -324,7 +86,7 @@ GEM dry-logic (~> 1.4) zeitwerk (~> 2.6) emoji_regex (15.0.0) - erb (6.0.5) + erb (6.0.6) gem_bench (2.0.5) bundler (>= 1.14) version_gem (~> 1.1, >= 1.1.4) @@ -343,24 +105,20 @@ GEM rdoc (>= 4.0.0) reline (>= 0.4.2) json (2.21.1) - kettle-dev (2.3.7) + kettle-dev (2.3.8) emoji_regex (>= 15.0) kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) - kettle-drift (1.0.6) - version_gem (~> 1.1, >= 1.1.14) - kettle-rb (0.1.4) - kettle-soup-cover (1.1.3) - simplecov (~> 0.22) - simplecov-cobertura (~> 3.0) - simplecov-console (~> 0.9, >= 0.9.3) - simplecov-html (~> 0.13, >= 0.13.1) - simplecov-lcov (~> 0.8) + kettle-rb (0.1.5) + kettle-soup-cover (3.0.4) + kettle-wash (~> 0.1, >= 0.1.0) + simplecov (>= 1.0) + simplecov-cobertura (>= 4.0) + simplecov-console (~> 0.9, >= 0.9.5) simplecov-rcov (~> 0.3, >= 0.3.7) - simplecov_json_formatter (~> 0.1, >= 0.1.4) - version_gem (~> 1.1, >= 1.1.9) - kettle-test (2.0.11) + simplecov_lcov_formatter (~> 0.9, >= 0.9.0) + kettle-test (2.0.12) appraisal2 (~> 3.0, >= 3.0.6) backports (~> 3.0) rspec (~> 3.0) @@ -371,6 +129,8 @@ GEM silent_stream (~> 1.0, >= 1.0.12) timecop-rspec (~> 1.0, >= 1.0.3) turbo_tests2 (~> 3.1, >= 3.1.12) + kettle-wash (0.1.1) + version_gem (~> 1.1, >= 1.1.14) kramdown (2.5.2) rexml (>= 3.4.4) kramdown-parser-gfm (1.1.0) @@ -378,7 +138,6 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) - markly (0.16.0) mutex_m (0.3.0) nokogiri (1.19.4-aarch64-linux-gnu) racc (~> 1.4) @@ -466,6 +225,14 @@ GEM rubocop-ast (1.50.0) parser (>= 3.3.7.2) prism (~> 1.7) + rubocop-capybara (2.23.0) + lint_roller (~> 1.1) + rubocop (~> 1.81) + rubocop-env (0.1.0) + rubocop + rubocop-factory_bot (2.28.0) + lint_roller (~> 1.1) + rubocop (~> 1.72, >= 1.72.1) rubocop-gradual (0.4.0) benchmark diff-lcs (>= 1.2.0, < 2.0) @@ -473,13 +240,26 @@ GEM parallel (~> 1.10) rainbow (>= 2.2.2, < 4.0) rubocop (~> 1.0) - rubocop-lts (24.1.0) - rubocop-ruby3_2 (>= 3.0.0, < 4) - standard-rubocop-lts (>= 2.0.2, < 3) - version_gem (>= 1.1.2, < 3) + rubocop-lts (24.2.2) + rubocop-ruby3_2 (~> 3.0, >= 3.0.1) + standard-rubocop-lts (~> 2.0, >= 2.0.3) + version_gem (~> 1.1, >= 1.1.13) + rubocop-lts-rspec (1.0.5) + rubocop (~> 1.84, >= 1.84.2) + rubocop-env (~> 0.1, >= 0.1.0) + rubocop-factory_bot (~> 2.28, >= 2.28.0) + rubocop-rspec (~> 3.9, >= 3.9.0) + rubocop-rspec-extra (~> 0.3, >= 0.3.0) + standard (~> 1.54, >= 1.54.0) + standard-rspec (~> 0.5, >= 0.5.0) + version_gem (~> 1.1, >= 1.1.13) rubocop-md (2.0.4) lint_roller (~> 1.1) rubocop (>= 1.72.1) + rubocop-minitest (0.40.0) + lint_roller (~> 1.1) + rubocop (>= 1.75.0, < 2.0) + rubocop-ast (>= 1.38.0, < 2.0) rubocop-on-rbs (2.0.0) lint_roller (~> 1.1) rbs (~> 4.0) @@ -499,6 +279,13 @@ GEM lint_roller (~> 1.1) regexp_parser (>= 2.0) rubocop (~> 1.86, >= 1.86.2) + rubocop-rspec-extra (0.3.0) + lint_roller (~> 1.1) + rubocop (>= 1.72.1, < 2.0) + rubocop-rspec_rails (2.32.0) + lint_roller (~> 1.1) + rubocop (~> 1.72, >= 1.72.1) + rubocop-rspec (~> 3.5) rubocop-ruby3_2 (3.0.7) rubocop-gradual (~> 0.3, >= 0.3.6) rubocop-md (~> 2.0, >= 2.0.4) @@ -513,27 +300,21 @@ GEM ruby-progressbar (1.13.0) ruby_engine (2.0.3) ruby_version (1.0.3) - service_actor (3.9.4) - zeitwerk (>= 1.0) silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) - simplecov (0.22.0) - docile (~> 1.1) - simplecov-html (~> 0.11) - simplecov_json_formatter (~> 0.1) - simplecov-cobertura (3.2.0) + simplecov (1.0.2) + simplecov-cobertura (4.0.0) rexml - simplecov (~> 0.19) + simplecov (~> 1.0) simplecov-console (0.9.5) ansi simplecov terminal-table - simplecov-html (0.13.2) - simplecov-lcov (0.9.0) simplecov-rcov (0.3.7) simplecov (>= 0.4.1) - simplecov_json_formatter (0.1.4) + simplecov_lcov_formatter (0.9.0) + simplecov (>= 0.18) sorbet-runtime (0.6.13347) standard (1.56.0) language_server-protocol (~> 3.17.0.2) @@ -547,6 +328,12 @@ GEM standard-performance (1.9.0) lint_roller (~> 1.1) rubocop-performance (~> 1.26.0) + standard-rspec (0.5.0) + lint_roller (>= 1.0) + rubocop-capybara (~> 2.23) + rubocop-factory_bot (~> 2.27) + rubocop-rspec (~> 3.9) + rubocop-rspec_rails (~> 2.31) standard-rubocop-lts (2.0.10) standard (~> 1.54, >= 1.54.0) standard-custom (~> 1.0, >= 1.0.2) @@ -564,14 +351,9 @@ GEM delegate (~> 0.1) rspec (~> 3.0) timecop (>= 0.7, < 1) - token-resolver (2.0.4) + token-resolver (2.0.5) parslet (~> 2.0) - version_gem (~> 1.1, >= 1.1.13) - toml (0.3.0) - parslet (>= 1.8.0, < 3.0.0) - toml-rb (4.2.0) - citrus (~> 3.0, > 3.0) - racc (~> 1.7) + version_gem (~> 1.1, >= 1.1.14) tree_sitter_language_pack (1.13.3-aarch64-linux) sorbet-runtime (~> 0.5) tree_sitter_language_pack (1.13.3-arm64-darwin) @@ -587,6 +369,7 @@ GEM unicode-emoji (~> 4.1) unicode-emoji (4.2.0) version_gem (1.1.14) + webrick (1.9.2) yaml-converter (0.2.3) hexapdf (>= 1.8, < 2) kramdown (>= 2.4, < 3) @@ -628,104 +411,71 @@ PLATFORMS DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) - ast-crispr! - ast-crispr-markdown-markly! - ast-crispr-ruby-prism! + appraisal2-rubocop (~> 1.0, >= 1.0.0) ast-merge! - ast-merge-git! - ast-template! - bash-merge! benchmark (~> 0.5, >= 0.5.0) - binary-merge! bundler-audit (~> 0.9.3) - citrus-toml-merge! - commonmarker-merge! + cgi (~> 0.5) debug (>= 1.1) - dotenv-merge! - erb (~> 6.0, >= 6.0.4) + erb (~> 6.0, >= 6.0.6) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.0) - go-merge! irb (~> 1.17) json-merge! kettle-dev (~> 2.0, >= 2.2.25) - kettle-drift (~> 1.0, >= 1.0.5) - kettle-jem! - kettle-soup-cover (~> 1.0, >= 1.1.3) + kettle-soup-cover (~> 3.0, >= 3.0.3) kettle-test (~> 2.0, >= 2.0.9) - kramdown (~> 2.5, >= 2.5.1) - kramdown-merge! + kramdown (~> 2.5, >= 2.5.2) kramdown-parser-gfm (~> 1.1) - markdown-merge! - markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) - parslet-toml-merge! - plain-merge! - prism-merge! - psych-merge! rake (~> 13.0) rbs (>= 3.0) - rbs-merge! rdoc (~> 6.11) - reek (~> 6.5) + reek (~> 6.5, >= 6.5.0) require_bench (~> 1.0, >= 1.0.4) - rubocop-lts (~> 24.1.0) - rubocop-on-rbs (~> 2.0) + rubocop-gradual (~> 0.4, >= 0.4.0) + rubocop-lts (~> 24.2, >= 24.2.1) + rubocop-lts-rspec (~> 1.0, >= 1.0.5) + rubocop-minitest (~> 0.40, >= 0.40.0) + rubocop-on-rbs (~> 2.0, >= 2.0.0) rubocop-packaging (~> 0.6, >= 0.6.0) - rubocop-rspec (~> 3.6) - rubocop-ruby3_2 (~> 3.0.0) - ruby-merge! + rubocop-ruby3_2 (~> 3.0, >= 3.0.6) ruby-progressbar (~> 1.13) - rust-merge! - smorg-rb! - standard (>= 1.50) + standard (~> 1.56, >= 1.56.0) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) - toml-merge! tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) - typescript-merge! - yaml-converter (~> 0.1) - yaml-merge! - yard (~> 0.9, >= 0.9.44) - yard-fence (~> 0.9, >= 0.9.1) + webrick (~> 1.9) + yaml-converter (~> 0.2, >= 0.2.3) + yard (~> 0.9, >= 0.9.45) + yard-fence (~> 0.9, >= 0.9.6) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) - yard-timekeeper (~> 0.1) - yard-yaml (~> 0.1, >= 0.1.2) - zip-merge! + yard-timekeeper (~> 0.2, >= 0.2.4) + yard-yaml (~> 0.2, >= 0.2.3) CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af ansi (1.6.0) sha256=ac9ea0c0ea8d32fb4e271348e609963ac78882f34b73836c2a02b3622e666658 appraisal2 (3.2.0) sha256=ccd0b767ac4060cd7af6d16747459b6990f49c39c7b4fb1f7d1146b1e97c492f + appraisal2-rubocop (1.0.0) sha256=b71410fbb014befda5340605a605b7f6f3f012739baf0acc5b4351b592c3258d ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 - ast-crispr (7.1.0) - ast-crispr-markdown-markly (7.1.0) - ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) - ast-merge-git (7.1.0) - ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 - bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd - binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 + cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 - citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 - commonmarker (2.9.0-x86_64-linux) - commonmarker-merge (7.1.0) concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 - docile (1.4.1) sha256=96159be799bfa73cdb721b840e9802126e4e03dfc26863db73647204c727f21e - dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -734,31 +484,25 @@ CHECKSUMS dry-schema (1.16.0) sha256=cd3aaeabc0f1af66ec82a29096d4c4fb92a0a58b9dae29a22b1bbceb78985727 dry-types (1.9.1) sha256=baebeecdb9f8395d6c9d227b62011279440943e3ef2468fe8ccc1ba11467f178 emoji_regex (15.0.0) sha256=a508b2c0bee561169564e0aec96085020c900520d335e5533fd8e78e59493829 - erb (6.0.5) sha256=858e63488cb796c9daba8b6e9ff4b3879c395022049be9a66a8e00980e612eac + erb (6.0.6) sha256=a9b24986700f5bf127c4f297c5403c3ca41b83b0a316c0cd09a096b56e644ae5 gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f - go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 json-merge (7.1.0) - kettle-dev (2.3.7) sha256=eb370113cd030d03cbe2d33b31c99858951017e5ad21a17e9ed89dc3770028ee - kettle-drift (1.0.6) - kettle-jem (7.1.0) - kettle-rb (0.1.4) sha256=9cef7ce4f7021666b7222292f29051e51eaf042e8a5db11f3f4dd72f74243fc1 - kettle-soup-cover (1.1.3) sha256=a373827da22a7131d093afd32945e5b7d7a10a01ebfdded8fd2cb8230d69c8ad - kettle-test (2.0.11) sha256=c710c90f7ab79d51f9452f0c09f5f90657e7a893f63583855c164d0b1b107ab2 + kettle-dev (2.3.8) sha256=9d716ff21c660a730cb4e8d41e2e2f0630a28167a354b6e2924e242102aef72c + kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f + kettle-soup-cover (3.0.4) + kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 + kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa - kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 - markdown-merge (7.1.0) - markly (0.16.0) - markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-aarch64-linux-gnu) sha256=1269fb644a6de405057a53dd5c762b1209b43ca7424f839454d3dbc677c31a8f nokogiri (1.19.4-aarch64-linux-musl) sha256=35c65b9ce72b3bb03207bdbe7067915019dc18c1b9b59139684bd6690fdd01af @@ -772,20 +516,15 @@ CHECKSUMS parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 - parslet-toml-merge (7.1.0) - plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 - prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 - psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 - rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb @@ -803,35 +542,37 @@ CHECKSUMS rspec_junit_formatter (0.6.0) sha256=40dde674e6ae4e6cc0ff560da25497677e34fefd2338cc467a8972f602b62b15 rubocop (1.88.2) sha256=8def251c90cd955feb4daa3edc0ab56893250c4ce90ef81e6c80c03f9a939bbf rubocop-ast (1.50.0) sha256=b9ca88300da0803ee222ad20cdb30494c0a784eed06fdc35d254b06d662788db + rubocop-capybara (2.23.0) sha256=f9ea1ba3a7561ee8e88cf76fc378ce517ce5327155f305ee7b5c2500e5aee357 + rubocop-env (0.1.0) sha256=5ab9a259e71822bf514c8e900a9b68cc2f74ccc87d5493efcd03213f3068e718 + rubocop-factory_bot (2.28.0) sha256=4b17fc02124444173317e131759d195b0d762844a71a29fe8139c1105d92f0cb rubocop-gradual (0.4.0) sha256=9c7e584e6fef6c2539266a193a4572c970c22f99046fd6b0305bdde6228f96ad - rubocop-lts (24.1.0) sha256=9dcad4db2da2fe2f1f77f98c917d70e7c43eded703da14cd201d4be52a9272aa + rubocop-lts (24.2.2) sha256=be6c745e1bb61daebd6af3cc3227c60f95be9f642a080773cad7df14c5f9f174 + rubocop-lts-rspec (1.0.5) sha256=439552fd27440802cc499889e013bffa28aadc41adae5d4dfff3d984a2a809b4 rubocop-md (2.0.4) sha256=0d076b6b5e99dea2ddc928c4bd702497decb9a8400da7808091e02ebcafcfb93 + rubocop-minitest (0.40.0) sha256=353c698199115f12151144cf0b5a96f69bb9d77b660cf6536df2c4250c672a9d rubocop-on-rbs (2.0.0) sha256=ce74d1b3d5daead19f4b611623656c185821dfc9aed9c7079bb1e5d7d7c464be rubocop-packaging (0.6.0) sha256=fb92bd0fb48e6f8cdb1648d2249b0cd51c2497dcc87340132d22f01edbf558a7 rubocop-performance (1.26.1) sha256=cd19b936ff196df85829d264b522fd4f98b6c89ad271fa52744a8c11b8f71834 rubocop-rake (0.7.1) sha256=3797f2b6810c3e9df7376c26d5f44f3475eda59eb1adc38e6f62ecf027cbae4d rubocop-rspec (3.10.2) sha256=0b3e2ecc592cd10ecbf0095bb58d1e357905276e069643523cc19eb7495f65e2 + rubocop-rspec-extra (0.3.0) sha256=ee4b6484d0332a0d23c4a465eeb607e41888eb3d4ed479f850b9f5212514f787 + rubocop-rspec_rails (2.32.0) sha256=4a0d641c72f6ebb957534f539d9d0a62c47abd8ce0d0aeee1ef4701e892a9100 rubocop-ruby3_2 (3.0.7) sha256=f53dd6d286fb05186214fc6ec116783e7f837030918e8931c05de773e98f8466 rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 - ruby-merge (7.1.0) ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 - rust-merge (7.1.0) - service_actor (3.9.4) silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 - simplecov (0.22.0) sha256=fe2622c7834ff23b98066bb0a854284b2729a569ac659f82621fc22ef36213a5 - simplecov-cobertura (3.2.0) sha256=70d702658677fcb20e5aceb6915ccf8bc62ff2ccd38b62b3ad5c9db5c0888740 + simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 + simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 - simplecov-html (0.13.2) sha256=bd0b8e54e7c2d7685927e8d6286466359b6f16b18cb0df47b508e8d73c777246 - simplecov-lcov (0.9.0) sha256=7a77a31e200a595ed4b0249493056efd0c920601f53d2ef135ca34ee796346cd simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc - simplecov_json_formatter (0.1.4) sha256=529418fbe8de1713ac2b2d612aa3daa56d316975d307244399fa4838c601b428 - smorg-rb (7.1.0) + simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed sorbet-runtime (0.6.13347) sha256=54e7221d9f4b63f58aec79f3043752a9ba7810347c6ae0d903531591cc2d5f01 standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b standard-performance (1.9.0) sha256=49483d31be448292951d80e5e67cdcb576c2502103c7b40aec6f1b6e9c88e3f2 + standard-rspec (0.5.0) sha256=64d396524a65af47f5331b423d8cdd313e0267401647bb7892489ca89dad2973 standard-rubocop-lts (2.0.10) sha256=89708a505b7d8b24d2ac399a7520fcb9e764abc2ecb4289b631b5fe0e3b76617 stone_checksums (1.0.6) sha256=c775f830513d6c6ab26e31d1a5fbecd4c4e39002663d4d9f8fa96e97990b5298 stringio (3.2.0) sha256=c37cb2e58b4ffbd33fe5cd948c05934af997b36e0b6ca6fdf43afa234cf222e1 @@ -840,22 +581,18 @@ CHECKSUMS thor (1.5.0) sha256=e3a9e55fe857e44859ce104a84675ab6e8cd59c650a49106a05f55f136425e73 timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 - token-resolver (2.0.4) sha256=33b926958f504525bba3ed511ab66fbcbf8ef30390815e931436b30f27ffcad0 - toml (0.3.0) - toml-merge (7.1.0) - toml-rb (4.2.0) + token-resolver (2.0.5) sha256=b852f924287ffb58a440856e862b056c8ad97e74b4b2526cee43e0771f40c25c tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-aarch64-linux) sha256=55ffc7c87868cb45658338363d9eba51b4a8b0259aa88e4de368d2bd1d52fea4 tree_sitter_language_pack (1.13.3-arm64-darwin) sha256=bc2498db605f212a1dbd2465ed3f65190d7da786f6ed5d30fcf958121aeb4a5c tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 - typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 + webrick (1.9.2) sha256=beb4a15fc474defed24a3bda4ffd88a490d517c9e4e6118c3edce59e45864131 yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 - yaml-merge (7.1.0) yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd @@ -863,7 +600,6 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 - zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH diff --git a/gems/json-merge/Rakefile b/gems/json-merge/Rakefile index eb14b860c..cd3637459 100644 --- a/gems/json-merge/Rakefile +++ b/gems/json-merge/Rakefile @@ -130,23 +130,23 @@ end ### DUPLICATE DRIFT TASKS begin - require "kettle/drift" + require 'kettle/drift' Kettle::Drift.install_tasks rescue LoadError - desc("(stub) kettle:drift:check is unavailable") - task("kettle:drift:check") do + desc('(stub) kettle:drift:check is unavailable') + task('kettle:drift:check') do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc("(stub) kettle:drift:update is unavailable") - task("kettle:drift:update") do + desc('(stub) kettle:drift:update is unavailable') + task('kettle:drift:update') do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc("(stub) kettle:drift:force_update is unavailable") - task("kettle:drift:force_update") do + desc('(stub) kettle:drift:force_update is unavailable') + task('kettle:drift:force_update') do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc("(stub) kettle:drift is unavailable") - task("kettle:drift" => "kettle:drift:update") + desc('(stub) kettle:drift is unavailable') + task('kettle:drift' => 'kettle:drift:update') end ### TEMPLATING TASKS diff --git a/gems/json-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile b/gems/json-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile index dec650815..b8392fab0 100644 --- a/gems/json-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile +++ b/gems/json-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.1 -gem "benchmark", "~> 0.5", ">= 0.5.0" # Removed from Std Lib in Ruby 4.0 +gem 'benchmark', '~> 0.5', '>= 0.5.0' # Removed from Std Lib in Ruby 4.0 diff --git a/gems/json-merge/gemfiles/modular/benchmark/vHEAD.gemfile b/gems/json-merge/gemfiles/modular/benchmark/vHEAD.gemfile index e1eb20c5e..af214aafa 100644 --- a/gems/json-merge/gemfiles/modular/benchmark/vHEAD.gemfile +++ b/gems/json-merge/gemfiles/modular/benchmark/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.1 -gem "benchmark", github: "ruby/benchmark", branch: "master" +gem 'benchmark', github: 'ruby/benchmark', branch: 'master' diff --git a/gems/json-merge/gemfiles/modular/cgi/r4/v0.5.gemfile b/gems/json-merge/gemfiles/modular/cgi/r4/v0.5.gemfile index 19ed967c3..17ad97260 100644 --- a/gems/json-merge/gemfiles/modular/cgi/r4/v0.5.gemfile +++ b/gems/json-merge/gemfiles/modular/cgi/r4/v0.5.gemfile @@ -1 +1 @@ -gem "cgi", "~> 0.5" +gem 'cgi', '~> 0.5' diff --git a/gems/json-merge/gemfiles/modular/cgi/vHEAD.gemfile b/gems/json-merge/gemfiles/modular/cgi/vHEAD.gemfile index ef8b816ce..650fbf033 100644 --- a/gems/json-merge/gemfiles/modular/cgi/vHEAD.gemfile +++ b/gems/json-merge/gemfiles/modular/cgi/vHEAD.gemfile @@ -1 +1 @@ -gem "cgi", ">= 0.5" +gem 'cgi', '>= 0.5' diff --git a/gems/json-merge/gemfiles/modular/coverage.gemfile b/gems/json-merge/gemfiles/modular/coverage.gemfile index 52d737872..b93014b6b 100644 --- a/gems/json-merge/gemfiles/modular/coverage.gemfile +++ b/gems/json-merge/gemfiles/modular/coverage.gemfile @@ -4,11 +4,11 @@ # Set KETTLE_DEV_DEV=true for local development with path-based dependencies. # When false (default / CI), remote released gems are used. -if ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false").zero? +if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? # Coverage (remote/released) platform :mri do - gem "kettle-soup-cover", "~> 3.0", ">= 3.0.3", require: false + gem 'kettle-soup-cover', '~> 3.0', '>= 3.0.3', require: false end else - eval_gemfile "coverage_local.gemfile" + eval_gemfile 'coverage_local.gemfile' end diff --git a/gems/json-merge/gemfiles/modular/coverage_local.gemfile b/gems/json-merge/gemfiles/modular/coverage_local.gemfile index cacdc07c1..b6836b5de 100644 --- a/gems/json-merge/gemfiles/modular/coverage_local.gemfile +++ b/gems/json-merge/gemfiles/modular/coverage_local.gemfile @@ -11,21 +11,19 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] -nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) +nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] +nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == "nomono" } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - if nomono_locked - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] - end + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked end -Kernel.send(:gem, "nomono", *nomono_activation_requirements) -require "nomono/bundler" +Kernel.send(:gem, 'nomono', *nomono_activation_requirements) +require 'nomono/bundler' local_gems = %w[kettle-dev kettle-test kettle-soup-cover kettle-drift] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) @@ -35,21 +33,21 @@ local_gems_to_eval = local_gems - %w[json-merge] - declared_gems platform :mri do eval_nomono_gems( gems: local_gems_to_eval, - prefix: "KETTLE_DEV", - path_env: "KETTLE_DEV_DEV", - vendored_gems_env: "VENDORED_GEMS", - vendor_gem_dir_env: "VENDOR_GEM_DIR", - debug_env: "KETTLE_DEV_DEBUG" + prefix: 'KETTLE_DEV', + path_env: 'KETTLE_DEV_DEV', + vendored_gems_env: 'VENDORED_GEMS', + vendor_gem_dir_env: 'VENDOR_GEM_DIR', + debug_env: 'KETTLE_DEV_DEBUG' ) - if ENV.fetch("GALTZO_FLOSS_DEV", "false").casecmp("false") != 0 + if ENV.fetch('GALTZO_FLOSS_DEV', 'false').casecmp('false') != 0 eval_nomono_gems( gems: %w[turbo_tests2], - prefix: "GALTZO_FLOSS", - path_env: "GALTZO_FLOSS_DEV", - vendored_gems_env: "GALTZO_FLOSS_VENDORED_GEMS", - vendor_gem_dir_env: "GALTZO_FLOSS_VENDOR_GEM_DIR", - debug_env: "GALTZO_FLOSS_DEBUG" + prefix: 'GALTZO_FLOSS', + path_env: 'GALTZO_FLOSS_DEV', + vendored_gems_env: 'GALTZO_FLOSS_VENDORED_GEMS', + vendor_gem_dir_env: 'GALTZO_FLOSS_VENDOR_GEM_DIR', + debug_env: 'GALTZO_FLOSS_DEBUG' ) end end diff --git a/gems/json-merge/gemfiles/modular/debug.gemfile b/gems/json-merge/gemfiles/modular/debug.gemfile index 4e15b1a3a..eed8d4d1e 100644 --- a/gems/json-merge/gemfiles/modular/debug.gemfile +++ b/gems/json-merge/gemfiles/modular/debug.gemfile @@ -13,10 +13,10 @@ platform :mri do # Debugging - Ensure ENV["DEBUG"] == "true" to use debuggers within spec suite # Use binding.break, binding.b, or debugger in code - gem "debug", ">= 1.1" # ruby >= 2.7 + gem 'debug', '>= 1.1' # ruby >= 2.7 # Dev Console - Binding.pry - Irb replacement # gem "pry", "~> 0.14" # ruby >= 2.0 end -gem "gem_bench", "~> 2.0", ">= 2.0.5" +gem 'gem_bench', '~> 2.0', '>= 2.0.5' diff --git a/gems/json-merge/gemfiles/modular/documentation.gemfile b/gems/json-merge/gemfiles/modular/documentation.gemfile index d8215416e..9d4535f12 100644 --- a/gems/json-merge/gemfiles/modular/documentation.gemfile +++ b/gems/json-merge/gemfiles/modular/documentation.gemfile @@ -7,20 +7,20 @@ # # Documentation -gem "kramdown", "~> 2.5", ">= 2.5.2", require: false # Ruby >= 2.5 -gem "kramdown-parser-gfm", "~> 1.1", require: false # Ruby >= 2.3 -gem "yaml-converter", "~> 0.2", ">= 0.2.3", require: false # Ruby >= 3.2 -gem "yard", "~> 0.9", ">= 0.9.45", require: false -gem "yard-junk", "~> 0.1", ">= 0.1.0", require: false # Ruby >= 3.1 -gem "yard-relative_markdown_links", "~> 0.6", require: false +gem 'kramdown', '~> 2.5', '>= 2.5.2', require: false # Ruby >= 2.5 +gem 'kramdown-parser-gfm', '~> 1.1', require: false # Ruby >= 2.3 +gem 'yaml-converter', '~> 0.2', '>= 0.2.3', require: false # Ruby >= 3.2 +gem 'yard', '~> 0.9', '>= 0.9.45', require: false +gem 'yard-junk', '~> 0.1', '>= 0.1.0', require: false # Ruby >= 3.1 +gem 'yard-relative_markdown_links', '~> 0.6', require: false -if ENV.fetch("GALTZO_FLOSS_DEV", "false").casecmp("false").zero? - gem "yard-fence", "~> 0.9", ">= 0.9.6", require: false # Ruby >= 3.2 - gem "yard-timekeeper", "~> 0.2", ">= 0.2.4", require: false - gem "yard-yaml", "~> 0.2", ">= 0.2.3", require: false +if ENV.fetch('GALTZO_FLOSS_DEV', 'false').casecmp('false').zero? + gem 'yard-fence', '~> 0.9', '>= 0.9.6', require: false # Ruby >= 3.2 + gem 'yard-timekeeper', '~> 0.2', '>= 0.2.4', require: false + gem 'yard-yaml', '~> 0.2', '>= 0.2.3', require: false else - eval_gemfile "documentation_local.gemfile" + eval_gemfile 'documentation_local.gemfile' end # Std Lib extractions -gem "rdoc", "~> 6.11", require: false unless ENV.fetch("KJ_FRAMEWORK_MATRIX_GEM", "") == "rdoc" +gem 'rdoc', '~> 6.11', require: false unless ENV.fetch('KJ_FRAMEWORK_MATRIX_GEM', '') == 'rdoc' diff --git a/gems/json-merge/gemfiles/modular/documentation_local.gemfile b/gems/json-merge/gemfiles/modular/documentation_local.gemfile index 65eff94d9..35970ca76 100644 --- a/gems/json-merge/gemfiles/modular/documentation_local.gemfile +++ b/gems/json-merge/gemfiles/modular/documentation_local.gemfile @@ -11,21 +11,19 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] -nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) +nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] +nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == "nomono" } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - if nomono_locked - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] - end + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked end -Kernel.send(:gem, "nomono", *nomono_activation_requirements) -require "nomono/bundler" +Kernel.send(:gem, 'nomono', *nomono_activation_requirements) +require 'nomono/bundler' local_gems = %w[yard-fence yard-timekeeper yard-yaml] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) @@ -34,9 +32,9 @@ local_gems_to_eval = local_gems - %w[json-merge] - declared_gems # export GALTZO_FLOSS_DEV=/path/to/galtzo-floss eval_nomono_gems( gems: local_gems_to_eval, - prefix: "GALTZO_FLOSS", - path_env: "GALTZO_FLOSS_DEV", - vendored_gems_env: "GALTZO_FLOSS_VENDORED_GEMS", - vendor_gem_dir_env: "GALTZO_FLOSS_VENDOR_GEM_DIR", - debug_env: "GALTZO_FLOSS_DEBUG" + prefix: 'GALTZO_FLOSS', + path_env: 'GALTZO_FLOSS_DEV', + vendored_gems_env: 'GALTZO_FLOSS_VENDORED_GEMS', + vendor_gem_dir_env: 'GALTZO_FLOSS_VENDOR_GEM_DIR', + debug_env: 'GALTZO_FLOSS_DEBUG' ) diff --git a/gems/json-merge/gemfiles/modular/erb/r2/v3.0.gemfile b/gems/json-merge/gemfiles/modular/erb/r2/v3.0.gemfile index c03bd8d85..7c83a239b 100644 --- a/gems/json-merge/gemfiles/modular/erb/r2/v3.0.gemfile +++ b/gems/json-merge/gemfiles/modular/erb/r2/v3.0.gemfile @@ -1 +1 @@ -gem "erb", "~> 3.0" # ruby >= 2.7.0 +gem 'erb', '~> 3.0' # ruby >= 2.7.0 diff --git a/gems/json-merge/gemfiles/modular/erb/r3/v5.0.gemfile b/gems/json-merge/gemfiles/modular/erb/r3/v5.0.gemfile index 1bd029cc1..ec7ff451f 100644 --- a/gems/json-merge/gemfiles/modular/erb/r3/v5.0.gemfile +++ b/gems/json-merge/gemfiles/modular/erb/r3/v5.0.gemfile @@ -1 +1 @@ -gem "erb", "~> 6.0", ">= 6.0.6" # ruby >= 3.2.0 +gem 'erb', '~> 6.0', '>= 6.0.6' # ruby >= 3.2.0 diff --git a/gems/json-merge/gemfiles/modular/erb/r4/v5.0.gemfile b/gems/json-merge/gemfiles/modular/erb/r4/v5.0.gemfile index 1bd029cc1..ec7ff451f 100644 --- a/gems/json-merge/gemfiles/modular/erb/r4/v5.0.gemfile +++ b/gems/json-merge/gemfiles/modular/erb/r4/v5.0.gemfile @@ -1 +1 @@ -gem "erb", "~> 6.0", ">= 6.0.6" # ruby >= 3.2.0 +gem 'erb', '~> 6.0', '>= 6.0.6' # ruby >= 3.2.0 diff --git a/gems/json-merge/gemfiles/modular/erb/vHEAD.gemfile b/gems/json-merge/gemfiles/modular/erb/vHEAD.gemfile index 48fee4218..ea0101185 100644 --- a/gems/json-merge/gemfiles/modular/erb/vHEAD.gemfile +++ b/gems/json-merge/gemfiles/modular/erb/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 3.2 -gem "erb", github: "ruby/erb", branch: "master" +gem 'erb', github: 'ruby/erb', branch: 'master' diff --git a/gems/json-merge/gemfiles/modular/json/truffleruby_22_3.gemfile b/gems/json-merge/gemfiles/modular/json/truffleruby_22_3.gemfile index b0e69ab11..9b2f8d96a 100644 --- a/gems/json-merge/gemfiles/modular/json/truffleruby_22_3.gemfile +++ b/gems/json-merge/gemfiles/modular/json/truffleruby_22_3.gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -if RUBY_ENGINE == "truffleruby" && RUBY_ENGINE_VERSION.start_with?("22.3") +if RUBY_ENGINE == 'truffleruby' && RUBY_ENGINE_VERSION.start_with?('22.3') # TruffleRuby 22.3 ships the json default gem from its emulated MRI Ruby. - gem "json", "= 2.5.1" + gem 'json', '= 2.5.1' end diff --git a/gems/json-merge/gemfiles/modular/json/truffleruby_23_0.gemfile b/gems/json-merge/gemfiles/modular/json/truffleruby_23_0.gemfile index 7b2660a2b..d787a5ef4 100644 --- a/gems/json-merge/gemfiles/modular/json/truffleruby_23_0.gemfile +++ b/gems/json-merge/gemfiles/modular/json/truffleruby_23_0.gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -if RUBY_ENGINE == "truffleruby" && RUBY_ENGINE_VERSION.start_with?("23.0") +if RUBY_ENGINE == 'truffleruby' && RUBY_ENGINE_VERSION.start_with?('23.0') # TruffleRuby 23.0 ships the json default gem from its emulated MRI Ruby. - gem "json", "= 2.6.1" + gem 'json', '= 2.6.1' end diff --git a/gems/json-merge/gemfiles/modular/json/truffleruby_23_1.gemfile b/gems/json-merge/gemfiles/modular/json/truffleruby_23_1.gemfile index dfa21f2e4..d78486b0e 100644 --- a/gems/json-merge/gemfiles/modular/json/truffleruby_23_1.gemfile +++ b/gems/json-merge/gemfiles/modular/json/truffleruby_23_1.gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -if RUBY_ENGINE == "truffleruby" && RUBY_ENGINE_VERSION.start_with?("23.1") +if RUBY_ENGINE == 'truffleruby' && RUBY_ENGINE_VERSION.start_with?('23.1') # TruffleRuby 23.1 ships the json default gem from its emulated MRI Ruby. - gem "json", "= 2.6.3" + gem 'json', '= 2.6.3' end diff --git a/gems/json-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile b/gems/json-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile index 42e9d9bd4..e27f1bbae 100644 --- a/gems/json-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile +++ b/gems/json-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 -gem "mutex_m", "~> 0.2" +gem 'mutex_m', '~> 0.2' diff --git a/gems/json-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile b/gems/json-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile index 42e9d9bd4..e27f1bbae 100644 --- a/gems/json-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile +++ b/gems/json-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 -gem "mutex_m", "~> 0.2" +gem 'mutex_m', '~> 0.2' diff --git a/gems/json-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile b/gems/json-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile index 42e9d9bd4..e27f1bbae 100644 --- a/gems/json-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile +++ b/gems/json-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 -gem "mutex_m", "~> 0.2" +gem 'mutex_m', '~> 0.2' diff --git a/gems/json-merge/gemfiles/modular/mutex_m/vHEAD.gemfile b/gems/json-merge/gemfiles/modular/mutex_m/vHEAD.gemfile index 8af3b6fca..9dac2f6cb 100644 --- a/gems/json-merge/gemfiles/modular/mutex_m/vHEAD.gemfile +++ b/gems/json-merge/gemfiles/modular/mutex_m/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 (dependency of omniauth) -gem "mutex_m", github: "ruby/mutex_m", branch: "master" +gem 'mutex_m', github: 'ruby/mutex_m', branch: 'master' diff --git a/gems/json-merge/gemfiles/modular/optional.gemfile b/gems/json-merge/gemfiles/modular/optional.gemfile index 80bc45196..9ea429538 100644 --- a/gems/json-merge/gemfiles/modular/optional.gemfile +++ b/gems/json-merge/gemfiles/modular/optional.gemfile @@ -9,8 +9,8 @@ # Optional dependencies are not depended on directly, but may be used if present. # Required for curated binstubs generated by kettle-jem install -gem "rbs", ">= 3.0", require: false # ruby >= 3.1 +gem 'rbs', '>= 3.0', require: false # ruby >= 3.1 # Required for kettle-pre-release # URL parsing with Unicode support (falls back to URI if not available) -gem "addressable", ">= 2.8", "< 3" # ruby >= 2.2 +gem 'addressable', '>= 2.8', '< 3' # ruby >= 2.2 diff --git a/gems/json-merge/gemfiles/modular/rspec.gemfile b/gems/json-merge/gemfiles/modular/rspec.gemfile index 72fdf8b7f..2af210a41 100644 --- a/gems/json-merge/gemfiles/modular/rspec.gemfile +++ b/gems/json-merge/gemfiles/modular/rspec.gemfile @@ -1,4 +1,4 @@ -gem "rspec_junit_formatter", - github: "pboling/rspec_junit_formatter", - branch: "main", - ref: "9e6bcaaedd49477b62878ed568dc4ada5cc7cb5e" +gem 'rspec_junit_formatter', + github: 'pboling/rspec_junit_formatter', + branch: 'main', + ref: '9e6bcaaedd49477b62878ed568dc4ada5cc7cb5e' diff --git a/gems/json-merge/gemfiles/modular/runtime_heads.gemfile b/gems/json-merge/gemfiles/modular/runtime_heads.gemfile index 02f134c7f..ebf17c529 100644 --- a/gems/json-merge/gemfiles/modular/runtime_heads.gemfile +++ b/gems/json-merge/gemfiles/modular/runtime_heads.gemfile @@ -8,4 +8,4 @@ # Test against HEAD of runtime dependencies so we can proactively file bugs -eval_gemfile("x_std_libs/vHEAD.gemfile") +eval_gemfile('x_std_libs/vHEAD.gemfile') diff --git a/gems/json-merge/gemfiles/modular/stringio/r2/v3.0.gemfile b/gems/json-merge/gemfiles/modular/stringio/r2/v3.0.gemfile index e85bb18ee..3616f4e3a 100644 --- a/gems/json-merge/gemfiles/modular/stringio/r2/v3.0.gemfile +++ b/gems/json-merge/gemfiles/modular/stringio/r2/v3.0.gemfile @@ -2,4 +2,4 @@ # NOT SEMVER # Version 3.0.7 dropped support for Ruby <= 2.7 # Version 3.0.0 dropped support for Ruby <= 2.4 -gem "stringio", ">= 3.0" +gem 'stringio', '>= 3.0' diff --git a/gems/json-merge/gemfiles/modular/stringio/r3/v3.0.gemfile b/gems/json-merge/gemfiles/modular/stringio/r3/v3.0.gemfile index e85bb18ee..3616f4e3a 100644 --- a/gems/json-merge/gemfiles/modular/stringio/r3/v3.0.gemfile +++ b/gems/json-merge/gemfiles/modular/stringio/r3/v3.0.gemfile @@ -2,4 +2,4 @@ # NOT SEMVER # Version 3.0.7 dropped support for Ruby <= 2.7 # Version 3.0.0 dropped support for Ruby <= 2.4 -gem "stringio", ">= 3.0" +gem 'stringio', '>= 3.0' diff --git a/gems/json-merge/gemfiles/modular/stringio/r4/v3.0.gemfile b/gems/json-merge/gemfiles/modular/stringio/r4/v3.0.gemfile index e85bb18ee..3616f4e3a 100644 --- a/gems/json-merge/gemfiles/modular/stringio/r4/v3.0.gemfile +++ b/gems/json-merge/gemfiles/modular/stringio/r4/v3.0.gemfile @@ -2,4 +2,4 @@ # NOT SEMVER # Version 3.0.7 dropped support for Ruby <= 2.7 # Version 3.0.0 dropped support for Ruby <= 2.4 -gem "stringio", ">= 3.0" +gem 'stringio', '>= 3.0' diff --git a/gems/json-merge/gemfiles/modular/stringio/vHEAD.gemfile b/gems/json-merge/gemfiles/modular/stringio/vHEAD.gemfile index 5f2a74126..78f5f5d8a 100644 --- a/gems/json-merge/gemfiles/modular/stringio/vHEAD.gemfile +++ b/gems/json-merge/gemfiles/modular/stringio/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 (dependency of omniauth) -gem "stringio", github: "ruby/stringio", branch: "master" +gem 'stringio', github: 'ruby/stringio', branch: 'master' diff --git a/gems/json-merge/gemfiles/modular/style.gemfile b/gems/json-merge/gemfiles/modular/style.gemfile index 35de4dcd6..4dbcc02c0 100644 --- a/gems/json-merge/gemfiles/modular/style.gemfile +++ b/gems/json-merge/gemfiles/modular/style.gemfile @@ -9,23 +9,23 @@ # Style tasks run on the latest Ruby; RuboCop-LTS selects the compatibility # rules for the configured Ruby floor independently from task dependency floors. -gem "reek", "~> 6.5", ">= 6.5.0" +gem 'reek', '~> 6.5', '>= 6.5.0' platform :mri do - gem "appraisal2-rubocop", "~> 1.0", ">= 1.0.0", require: false - gem "rubocop-gradual", "~> 0.4", ">= 0.4.0" - gem "rubocop-minitest", "~> 0.40", ">= 0.40.0" - gem "rubocop-on-rbs", "~> 2.0", ">= 2.0.0" # ruby >= 3.2.0 + gem 'appraisal2-rubocop', '~> 1.0', '>= 1.0.0', require: false + gem 'rubocop-gradual', '~> 0.4', '>= 0.4.0' + gem 'rubocop-minitest', '~> 0.40', '>= 0.40.0' + gem 'rubocop-on-rbs', '~> 2.0', '>= 2.0.0' # ruby >= 3.2.0 # gem "rubocop", "~> 1.73", ">= 1.73.2" # constrained by standard - gem "rubocop-packaging", "~> 0.6", ">= 0.6.0" - gem "standard", "~> 1.56", ">= 1.56.0" + gem 'rubocop-packaging', '~> 0.6', '>= 0.6.0' + gem 'standard', '~> 1.56', '>= 1.56.0' - if ENV.fetch("RUBOCOP_LTS_LOCAL", "false").casecmp("false").zero? + if ENV.fetch('RUBOCOP_LTS_LOCAL', 'false').casecmp('false').zero? declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) - gem "rubocop-lts", "~> 24.2", ">= 24.2.1" unless declared_gems.include?("rubocop-lts") - gem "rubocop-lts-rspec", "~> 1.0", ">= 1.0.5" unless declared_gems.include?("rubocop-lts-rspec") - gem "rubocop-ruby3_2", "~> 3.0", ">= 3.0.6" unless declared_gems.include?("rubocop-ruby3_2") + gem 'rubocop-lts', '~> 24.2', '>= 24.2.1' unless declared_gems.include?('rubocop-lts') + gem 'rubocop-lts-rspec', '~> 1.0', '>= 1.0.5' unless declared_gems.include?('rubocop-lts-rspec') + gem 'rubocop-ruby3_2', '~> 3.0', '>= 3.0.6' unless declared_gems.include?('rubocop-ruby3_2') else - eval_gemfile("style_local.gemfile") + eval_gemfile('style_local.gemfile') end end diff --git a/gems/json-merge/gemfiles/modular/style_local.gemfile b/gems/json-merge/gemfiles/modular/style_local.gemfile index cdcbeb586..269a58c92 100644 --- a/gems/json-merge/gemfiles/modular/style_local.gemfile +++ b/gems/json-merge/gemfiles/modular/style_local.gemfile @@ -14,21 +14,19 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] -nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) +nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] +nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == "nomono" } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - if nomono_locked - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] - end + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked end -Kernel.send(:gem, "nomono", *nomono_activation_requirements) -require "nomono/bundler" +Kernel.send(:gem, 'nomono', *nomono_activation_requirements) +require 'nomono/bundler' local_gems = %w[rubocop-lts rubocop-lts-rspec rubocop-ruby3_2 standard-rubocop-lts] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) @@ -38,11 +36,11 @@ local_gems_to_eval = local_gems - %w[json-merge] - declared_gems platform :mri do eval_nomono_gems( gems: local_gems_to_eval, - prefix: "RUBOCOP_LTS", - path_env: "RUBOCOP_LTS_LOCAL", - vendored_gems_env: "VENDORED_GEMS", - vendor_gem_dir_env: "VENDOR_GEM_DIR", - debug_env: "RUBOCOP_LTS_DEBUG", - root: ["src", "rubocop-lts"] + prefix: 'RUBOCOP_LTS', + path_env: 'RUBOCOP_LTS_LOCAL', + vendored_gems_env: 'VENDORED_GEMS', + vendor_gem_dir_env: 'VENDOR_GEM_DIR', + debug_env: 'RUBOCOP_LTS_DEBUG', + root: %w[src rubocop-lts] ) end diff --git a/gems/json-merge/gemfiles/modular/templating.gemfile b/gems/json-merge/gemfiles/modular/templating.gemfile index 47138ffbb..a672de184 100644 --- a/gems/json-merge/gemfiles/modular/templating.gemfile +++ b/gems/json-merge/gemfiles/modular/templating.gemfile @@ -1,18 +1,18 @@ # frozen_string_literal: true -structuredmerge_remote = ENV.fetch("STRUCTUREDMERGE_DEV", "false").casecmp("false").zero? -kettle_remote = ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false").zero? +structuredmerge_remote = ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false').zero? +kettle_remote = ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? if structuredmerge_remote # Parser dependencies for released installs. - gem "tree_sitter_language_pack", "~> 1.13", ">= 1.13.3" + gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' # Merge recipes for released installs. - gem "kettle-jem", ">= 7.0" + gem 'kettle-jem', '>= 7.0' end if kettle_remote # Template/plugin checks for released installs. - gem "kettle-drift", "~> 1.0", ">= 1.0.6", require: false + gem 'kettle-drift', '~> 1.0', '>= 1.0.6', require: false end # Set STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local development with path-based dependencies. @@ -21,4 +21,4 @@ end # # Set KETTLE_DEV_DEV=/path/to/my for local development with Kettle plugin gems. # When false (default / CI), released Kettle plugin gems are used. -eval_gemfile "templating_local.gemfile" unless structuredmerge_remote && kettle_remote +eval_gemfile 'templating_local.gemfile' unless structuredmerge_remote && kettle_remote diff --git a/gems/json-merge/gemfiles/modular/templating_local.gemfile b/gems/json-merge/gemfiles/modular/templating_local.gemfile index 25573dcc8..3a458a7d0 100644 --- a/gems/json-merge/gemfiles/modular/templating_local.gemfile +++ b/gems/json-merge/gemfiles/modular/templating_local.gemfile @@ -12,21 +12,19 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] -nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) +nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] +nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == "nomono" } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - if nomono_locked - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] - end + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked end -Kernel.send(:gem, "nomono", *nomono_activation_requirements) -require "nomono/bundler" +Kernel.send(:gem, 'nomono', *nomono_activation_requirements) +require 'nomono/bundler' structuredmerge_local_gems = %w[ tree_haver @@ -69,25 +67,25 @@ structuredmerge_local_gems_to_eval = structuredmerge_local_gems - %w[json-merge] kettle_dev_local_gems_to_eval = kettle_dev_local_gems - %w[json-merge] - declared_gems platform :mri do - if ENV.fetch("STRUCTUREDMERGE_DEV", "false").casecmp("false") != 0 + if ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false') != 0 eval_nomono_gems( gems: structuredmerge_local_gems_to_eval, - prefix: "STRUCTUREDMERGE", - path_env: "STRUCTUREDMERGE_DEV", - vendored_gems_env: "VENDORED_GEMS", - vendor_gem_dir_env: "VENDOR_GEM_DIR", - debug_env: "STRUCTUREDMERGE_DEBUG" + prefix: 'STRUCTUREDMERGE', + path_env: 'STRUCTUREDMERGE_DEV', + vendored_gems_env: 'VENDORED_GEMS', + vendor_gem_dir_env: 'VENDOR_GEM_DIR', + debug_env: 'STRUCTUREDMERGE_DEBUG' ) end - if ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false") != 0 + if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false') != 0 eval_nomono_gems( gems: kettle_dev_local_gems_to_eval, - prefix: "KETTLE_DEV", - path_env: "KETTLE_DEV_DEV", - vendored_gems_env: "VENDORED_GEMS", - vendor_gem_dir_env: "VENDOR_GEM_DIR", - debug_env: "KETTLE_DEV_DEBUG" + prefix: 'KETTLE_DEV', + path_env: 'KETTLE_DEV_DEV', + vendored_gems_env: 'VENDORED_GEMS', + vendor_gem_dir_env: 'VENDOR_GEM_DIR', + debug_env: 'KETTLE_DEV_DEBUG' ) end end diff --git a/gems/json-merge/gemfiles/modular/webrick/r4/v1.9.gemfile b/gems/json-merge/gemfiles/modular/webrick/r4/v1.9.gemfile index eaab4a473..b1329ba84 100644 --- a/gems/json-merge/gemfiles/modular/webrick/r4/v1.9.gemfile +++ b/gems/json-merge/gemfiles/modular/webrick/r4/v1.9.gemfile @@ -1 +1 @@ -gem "webrick", "~> 1.9" +gem 'webrick', '~> 1.9' diff --git a/gems/json-merge/gemfiles/modular/webrick/vHEAD.gemfile b/gems/json-merge/gemfiles/modular/webrick/vHEAD.gemfile index 8a789b634..c7e6f81a1 100644 --- a/gems/json-merge/gemfiles/modular/webrick/vHEAD.gemfile +++ b/gems/json-merge/gemfiles/modular/webrick/vHEAD.gemfile @@ -1 +1 @@ -gem "webrick", ">= 1.9" +gem 'webrick', '>= 1.9' diff --git a/gems/json-merge/gemfiles/modular/x_std_libs.gemfile b/gems/json-merge/gemfiles/modular/x_std_libs.gemfile index 77aad43f2..b1f43c097 100644 --- a/gems/json-merge/gemfiles/modular/x_std_libs.gemfile +++ b/gems/json-merge/gemfiles/modular/x_std_libs.gemfile @@ -1,12 +1,12 @@ ### Std Lib Extracted Gems ruby_version = Gem::Version.new(RUBY_VERSION) -if ruby_version >= Gem::Version.new("4.0") - eval_gemfile "x_std_libs/r4/libs.gemfile" -elsif ruby_version >= Gem::Version.new("3.2") - eval_gemfile "x_std_libs/r3/libs.gemfile" -elsif ruby_version >= Gem::Version.new("3.1") - eval_gemfile "x_std_libs/r3.1/libs.gemfile" +if ruby_version >= Gem::Version.new('4.0') + eval_gemfile 'x_std_libs/r4/libs.gemfile' +elsif ruby_version >= Gem::Version.new('3.2') + eval_gemfile 'x_std_libs/r3/libs.gemfile' +elsif ruby_version >= Gem::Version.new('3.1') + eval_gemfile 'x_std_libs/r3.1/libs.gemfile' else - eval_gemfile "x_std_libs/r2/libs.gemfile" + eval_gemfile 'x_std_libs/r2/libs.gemfile' end diff --git a/gems/json-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile b/gems/json-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile index 441c4f03a..16a5e3d70 100644 --- a/gems/json-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile +++ b/gems/json-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile @@ -1,3 +1,3 @@ -eval_gemfile "../../erb/r2/v3.0.gemfile" -eval_gemfile "../../mutex_m/r2/v0.3.gemfile" -eval_gemfile "../../stringio/r2/v3.0.gemfile" +eval_gemfile '../../erb/r2/v3.0.gemfile' +eval_gemfile '../../mutex_m/r2/v0.3.gemfile' +eval_gemfile '../../stringio/r2/v3.0.gemfile' diff --git a/gems/json-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile b/gems/json-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile index c293a3ddd..220ff95c1 100644 --- a/gems/json-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile +++ b/gems/json-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile @@ -1,3 +1,3 @@ -eval_gemfile "../../erb/r3/v5.0.gemfile" -eval_gemfile "../../mutex_m/r3/v0.3.gemfile" -eval_gemfile "../../stringio/r3/v3.0.gemfile" +eval_gemfile '../../erb/r3/v5.0.gemfile' +eval_gemfile '../../mutex_m/r3/v0.3.gemfile' +eval_gemfile '../../stringio/r3/v3.0.gemfile' diff --git a/gems/json-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile b/gems/json-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile index eb5574247..e2f6501eb 100644 --- a/gems/json-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile +++ b/gems/json-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile @@ -1,6 +1,6 @@ -eval_gemfile "../../erb/r4/v5.0.gemfile" -eval_gemfile "../../mutex_m/r4/v0.3.gemfile" -eval_gemfile "../../stringio/r4/v3.0.gemfile" -eval_gemfile "../../benchmark/r4/v0.5.gemfile" -eval_gemfile "../../cgi/r4/v0.5.gemfile" -eval_gemfile "../../webrick/r4/v1.9.gemfile" +eval_gemfile '../../erb/r4/v5.0.gemfile' +eval_gemfile '../../mutex_m/r4/v0.3.gemfile' +eval_gemfile '../../stringio/r4/v3.0.gemfile' +eval_gemfile '../../benchmark/r4/v0.5.gemfile' +eval_gemfile '../../cgi/r4/v0.5.gemfile' +eval_gemfile '../../webrick/r4/v1.9.gemfile' diff --git a/gems/json-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile b/gems/json-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile index d4d5b16c9..ab75cccf1 100644 --- a/gems/json-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile +++ b/gems/json-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile @@ -1,6 +1,6 @@ -eval_gemfile "../erb/vHEAD.gemfile" -eval_gemfile "../mutex_m/vHEAD.gemfile" -eval_gemfile "../stringio/vHEAD.gemfile" -eval_gemfile "../benchmark/vHEAD.gemfile" -eval_gemfile "../cgi/vHEAD.gemfile" -eval_gemfile "../webrick/vHEAD.gemfile" +eval_gemfile '../erb/vHEAD.gemfile' +eval_gemfile '../mutex_m/vHEAD.gemfile' +eval_gemfile '../stringio/vHEAD.gemfile' +eval_gemfile '../benchmark/vHEAD.gemfile' +eval_gemfile '../cgi/vHEAD.gemfile' +eval_gemfile '../webrick/vHEAD.gemfile' diff --git a/gems/json-merge/lib/json/merge/version.rb b/gems/json-merge/lib/json/merge/version.rb index d02d9f1a5..13f521eb3 100644 --- a/gems/json-merge/lib/json/merge/version.rb +++ b/gems/json-merge/lib/json/merge/version.rb @@ -3,7 +3,7 @@ module Json module Merge module Version - VERSION = "7.1.0" + VERSION = '7.1.0' end VERSION = Version::VERSION # Traditional Constant Location end diff --git a/gems/plain-merge/.kettle-drift.lock b/gems/plain-merge/.kettle-drift.lock index d230c1285..2ee9dae31 100644 --- a/gems/plain-merge/.kettle-drift.lock +++ b/gems/plain-merge/.kettle-drift.lock @@ -1,146 +1,10 @@ { - "(direct_sibling_local ||\nENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?)": [ - { - "file": "Gemfile", - "lines": [ - 80, - 120, - 160, - 200, - 240, - 280, - 320, - 360, - 400, - 440, - 480 - ] - } - ], - ".find { |spec| spec.name == 'nomono' }\nnomono_locked = nomono_locked_spec &&": [ - { - "file": "Gemfile", - "lines": [ - 91, - 131, - 171, - 211, - 251, - 291, - 331, - 371, - 411, - 451, - 491 - ] - } - ], - "ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?)\ndirect_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV')": [ - { - "file": "Gemfile", - "lines": [ - 81, - 121, - 161, - 201, - 241, - 281, - 321, - 361, - 401, - 441, - 481 - ] - } - ], - "Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version)\nnomono_activation_requirements = [\"= #{nomono_locked_spec.version}\"] if nomono_locked": [ - { - "file": "Gemfile", - "lines": [ - 93, - 133, - 173, - 213, - 253, - 293, - 333, - 373, - 413, - 453, - 493 - ] - } - ], - "Kernel.send(:gem, 'nomono', *nomono_activation_requirements)\nrequire 'nomono/bundler'": [ - { - "file": "Gemfile", - "lines": [ - 96, - 136, - 176, - 216, - 256, - 296, - 336, - 376, - 416, - 456, - 496 - ] - } - ], - "direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV')\ndirect_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil)": [ - { - "file": "Gemfile", - "lines": [ - 82, - 122, - 162, - 202, - 242, - 282, - 322, - 362, - 402, - 442, - 482 - ] - } - ], "eval_nomono_gems(\ngems: direct_sibling_gems,": [ { "file": "Gemfile", "lines": [ 60, - 100, - 140, - 180, - 220, - 260, - 300, - 340, - 380, - 420, - 460, - 500 - ] - } - ], - "gems: direct_sibling_gems,\nprefix: 'STRUCTUREDMERGE',": [ - { - "file": "Gemfile", - "lines": [ - 101, - 141, - 181, - 221, - 261, - 301, - 341, - 381, - 421, - 461, - 501 + 100 ] } ], @@ -149,35 +13,7 @@ "file": "Gemfile", "lines": [ 43, - 87, - 127, - 167, - 207, - 247, - 287, - 327, - 367, - 407, - 447, - 487 - ] - } - ], - "if direct_sibling_dev_was_set\nENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original": [ - { - "file": "Gemfile", - "lines": [ - 110, - 150, - 190, - 230, - 270, - 310, - 350, - 390, - 430, - 470, - 510 + 87 ] } ], @@ -186,17 +22,7 @@ "file": "Gemfile", "lines": [ 35, - 79, - 119, - 159, - 199, - 239, - 279, - 319, - 359, - 399, - 439, - 479 + 79 ] } ], @@ -205,35 +31,7 @@ "file": "Gemfile", "lines": [ 69, - 109, - 149, - 189, - 229, - 269, - 309, - 349, - 389, - 429, - 469, - 509 - ] - } - ], - "nomono_activation_requirements = nomono_requirements\nnomono_lockfile = File.expand_path('Gemfile.lock', __dir__)": [ - { - "file": "Gemfile", - "lines": [ - 85, - 125, - 165, - 205, - 245, - 285, - 325, - 365, - 405, - 445, - 485 + 109 ] } ], @@ -242,17 +40,7 @@ "file": "Gemfile", "lines": [ 48, - 92, - 132, - 172, - 212, - 252, - 292, - 332, - 372, - 412, - 452, - 492 + 92 ] } ], @@ -261,107 +49,7 @@ "file": "Gemfile", "lines": [ 44, - 88, - 128, - 168, - 208, - 248, - 288, - 328, - 368, - 408, - 448, - 488 - ] - } - ], - "nomono_lockfile = File.expand_path('Gemfile.lock', __dir__)\nif File.file?(nomono_lockfile)": [ - { - "file": "Gemfile", - "lines": [ - 86, - 126, - 166, - 206, - 246, - 286, - 326, - 366, - 406, - 446, - 486 - ] - } - ], - "path_env: 'STRUCTUREDMERGE_DEV',\nroot: %w[src my structuredmerge]": [ - { - "file": "Gemfile", - "lines": [ - 103, - 143, - 183, - 223, - 263, - 303, - 343, - 383, - 423, - 463, - 503 - ] - } - ], - "prefix: 'STRUCTUREDMERGE',\npath_env: 'STRUCTUREDMERGE_DEV',": [ - { - "file": "Gemfile", - "lines": [ - 102, - 142, - 182, - 222, - 262, - 302, - 342, - 382, - 422, - 462, - 502 - ] - } - ], - "require 'nomono/bundler'\nENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local": [ - { - "file": "Gemfile", - "lines": [ - 97, - 137, - 177, - 217, - 257, - 297, - 337, - 377, - 417, - 457, - 497 - ] - } - ], - "rescue LoadError\nwarn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.'": [ - { - "file": "Gemfile", - "lines": [ - 106, - 146, - 186, - 226, - 266, - 306, - 346, - 386, - 426, - 466, - 506 + 88 ] } ], @@ -369,8 +57,8 @@ { "file": "gemfiles/modular/templating_local.gemfile", "lines": [ - 58, - 69 + 55, + 66 ] } ] diff --git a/gems/plain-merge/.structuredmerge/kettle-jem.yml b/gems/plain-merge/.structuredmerge/kettle-jem.yml index c990945f1..d011d45d1 100644 --- a/gems/plain-merge/.structuredmerge/kettle-jem.yml +++ b/gems/plain-merge/.structuredmerge/kettle-jem.yml @@ -246,6 +246,59 @@ templates: - Gemfile - certs/pboling.pem - tmp/.gitignore + - gemfiles/modular/benchmark/r4/v0.5.gemfile + - gemfiles/modular/benchmark/vHEAD.gemfile + - gemfiles/modular/cgi/r4/v0.5.gemfile + - gemfiles/modular/cgi/vHEAD.gemfile + - gemfiles/modular/coverage.gemfile + - gemfiles/modular/coverage_local.gemfile + - gemfiles/modular/debug.gemfile + - gemfiles/modular/documentation.gemfile + - gemfiles/modular/documentation_local.gemfile + - gemfiles/modular/erb/r2.3/default.gemfile + - gemfiles/modular/erb/r2.6/v2.2.gemfile + - gemfiles/modular/erb/r2/v3.0.gemfile + - gemfiles/modular/erb/r3.1/v4.0.gemfile + - gemfiles/modular/erb/r3/v5.0.gemfile + - gemfiles/modular/erb/r4/v5.0.gemfile + - gemfiles/modular/erb/vHEAD.gemfile + - gemfiles/modular/json/truffleruby_22_3.gemfile + - gemfiles/modular/json/truffleruby_23_0.gemfile + - gemfiles/modular/json/truffleruby_23_1.gemfile + - gemfiles/modular/mutex_m/r2.4/v0.1.gemfile + - gemfiles/modular/mutex_m/r2/v0.3.gemfile + - gemfiles/modular/mutex_m/r3/v0.3.gemfile + - gemfiles/modular/mutex_m/r4/v0.3.gemfile + - gemfiles/modular/mutex_m/vHEAD.gemfile + - gemfiles/modular/optional.gemfile + - gemfiles/modular/recording/r2.3/recording.gemfile + - gemfiles/modular/recording/r2.4/recording.gemfile + - gemfiles/modular/recording/r2.5/recording.gemfile + - gemfiles/modular/recording/r3/recording.gemfile + - gemfiles/modular/recording/r4/recording.gemfile + - gemfiles/modular/recording/vHEAD.gemfile + - gemfiles/modular/rspec.gemfile + - gemfiles/modular/runtime_heads.gemfile + - gemfiles/modular/stringio/r2.4/v0.0.2.gemfile + - gemfiles/modular/stringio/r2/v3.0.gemfile + - gemfiles/modular/stringio/r3/v3.0.gemfile + - gemfiles/modular/stringio/r4/v3.0.gemfile + - gemfiles/modular/stringio/vHEAD.gemfile + - gemfiles/modular/style.gemfile + - gemfiles/modular/style_local.gemfile + - gemfiles/modular/templating.gemfile + - gemfiles/modular/templating_local.gemfile + - gemfiles/modular/webrick/r4/v1.9.gemfile + - gemfiles/modular/webrick/vHEAD.gemfile + - gemfiles/modular/x_std_libs.gemfile + - gemfiles/modular/x_std_libs/r2.3/libs.gemfile + - gemfiles/modular/x_std_libs/r2.4/libs.gemfile + - gemfiles/modular/x_std_libs/r2.6/libs.gemfile + - gemfiles/modular/x_std_libs/r2/libs.gemfile + - gemfiles/modular/x_std_libs/r3.1/libs.gemfile + - gemfiles/modular/x_std_libs/r3/libs.gemfile + - gemfiles/modular/x_std_libs/r4/libs.gemfile + - gemfiles/modular/x_std_libs/vHEAD.gemfile - source: lib/gem/version.rb target: lib/plain/merge/version.rb - source: sig/gem.rbs diff --git a/gems/plain-merge/Gemfile b/gems/plain-merge/Gemfile index 968f861b4..341ca42a6 100644 --- a/gems/plain-merge/Gemfile +++ b/gems/plain-merge/Gemfile @@ -6,7 +6,7 @@ # kettle-jem will then preserve content between those markers across template runs. # kettle-jem:unfreeze -source 'https://gem.coop' +source "https://gem.coop" git_source(:codeberg) { |repo_name| "https://codeberg.org/#{repo_name}" } git_source(:gitlab) { |repo_name| "https://gitlab.com/#{repo_name}" } @@ -19,18 +19,62 @@ git_source(:gitlab) { |repo_name| "https://gitlab.com/#{repo_name}" } gemspec # Local workspace dependency wiring for *_local.gemfile overrides -nomono_requirements = ['~> 1.0', '>= 1.0.8'] -gem 'nomono', *nomono_requirements, require: false # ruby >= 2.2 +nomono_requirements = ["~> 1.0", ">= 1.0.8"] +gem "nomono", *nomono_requirements, require: false # ruby >= 2.2 # Direct sibling dependencies (env-switched via STRUCTUREDMERGE_DEV) direct_sibling_gems = %w[ ast-merge tree_haver ] -direct_sibling_dev = ENV.fetch('STRUCTUREDMERGE_DEV', '') +direct_sibling_dev = ENV.fetch("STRUCTUREDMERGE_DEV", "") direct_sibling_local = !direct_sibling_dev.empty? && !%w[false 0 no off].include?(direct_sibling_dev.downcase) -direct_sibling_templating = ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? +direct_sibling_templating = ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? + +if direct_sibling_gems.any? && + (direct_sibling_local || + ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero?) + direct_sibling_dev_was_set = ENV.key?("STRUCTUREDMERGE_DEV") + direct_sibling_dev_original = ENV.fetch("STRUCTUREDMERGE_DEV", nil) + begin + nomono_activation_requirements = nomono_requirements + nomono_lockfile = File.expand_path("Gemfile.lock", __dir__) + if File.file?(nomono_lockfile) + nomono_locked_spec = Bundler::LockfileParser + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == "nomono" } + nomono_locked = nomono_locked_spec && + Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) + if nomono_locked + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] + end + end + Kernel.send(:gem, "nomono", *nomono_activation_requirements) + require "nomono/bundler" + if direct_sibling_templating && !direct_sibling_local + ENV["STRUCTUREDMERGE_DEV"] = File.expand_path("..", __dir__) + end + + eval_nomono_gems( + gems: direct_sibling_gems, + prefix: "STRUCTUREDMERGE", + path_env: "STRUCTUREDMERGE_DEV", + root: ["src", "my", "structuredmerge"] + ) + rescue LoadError + warn "Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies." + ensure + if direct_sibling_templating && !direct_sibling_local + if direct_sibling_dev_was_set + ENV["STRUCTUREDMERGE_DEV"] = direct_sibling_dev_original + else + ENV.delete("STRUCTUREDMERGE_DEV") + end + end + end +end if direct_sibling_gems.any? && (direct_sibling_local || @@ -73,28 +117,28 @@ if direct_sibling_gems.any? && end # Use released TSLP with the Ruby ABI platform-gem fix. -gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' +gem "tree_sitter_language_pack", "~> 1.13", ">= 1.13.3" # Templating (env-switched: STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local paths) -eval_gemfile 'gemfiles/modular/templating.gemfile' if ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? +eval_gemfile "gemfiles/modular/templating.gemfile" if ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? # Debugging -eval_gemfile 'gemfiles/modular/debug.gemfile' +eval_gemfile "gemfiles/modular/debug.gemfile" # Code Coverage (env-switched: KETTLE_DEV_DEV=true for local paths) -eval_gemfile 'gemfiles/modular/coverage.gemfile' +eval_gemfile "gemfiles/modular/coverage.gemfile" # Linting -eval_gemfile 'gemfiles/modular/style.gemfile' +eval_gemfile "gemfiles/modular/style.gemfile" # Documentation -eval_gemfile 'gemfiles/modular/documentation.gemfile' +eval_gemfile "gemfiles/modular/documentation.gemfile" # Optional -eval_gemfile 'gemfiles/modular/optional.gemfile' +eval_gemfile "gemfiles/modular/optional.gemfile" ### Std Lib Extracted Gems -eval_gemfile 'gemfiles/modular/x_std_libs.gemfile' +eval_gemfile "gemfiles/modular/x_std_libs.gemfile" # See unlocked_deps appraisal for more details on irb inclusion -gem 'irb', '~> 1.17' # ruby >= 2.7 +gem "irb", "~> 1.17" # ruby >= 2.7 diff --git a/gems/plain-merge/Gemfile.lock b/gems/plain-merge/Gemfile.lock index 3ed635795..22a00467a 100644 --- a/gems/plain-merge/Gemfile.lock +++ b/gems/plain-merge/Gemfile.lock @@ -6,6 +6,265 @@ PATH tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly + specs: + ast-crispr-markdown-markly (7.1.0) + ast-crispr (= 7.1.0) + markly-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism + specs: + ast-crispr-ruby-prism (7.1.0) + ast-crispr (= 7.1.0) + prism-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr + specs: + ast-crispr (7.1.0) + ast-merge (= 7.1.0) + service_actor (~> 3.9) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git + specs: + ast-merge-git (7.1.0) + ast-merge (= 7.1.0) + json-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge + specs: + ast-merge (7.1.0) + benchmark + token-resolver (~> 2.0, >= 2.0.4) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template + specs: + ast-template (7.1.0) + ast-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge + specs: + bash-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge + specs: + binary-merge (7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge + specs: + citrus-toml-merge (7.1.0) + toml-merge (= 7.1.0) + toml-rb (~> 4.1) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge + specs: + commonmarker-merge (7.1.0) + commonmarker (~> 2.2) + markdown-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge + specs: + dotenv-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge + specs: + go-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge + specs: + json-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem + specs: + kettle-jem (7.1.0) + addressable (>= 2.8, < 3) + ast-crispr-markdown-markly (= 7.1.0) + ast-crispr-ruby-prism (= 7.1.0) + ast-merge (= 7.1.0) + bash-merge (= 7.1.0) + citrus-toml-merge (= 7.1.0) + commonmarker-merge (= 7.1.0) + dotenv-merge (= 7.1.0) + json-merge (= 7.1.0) + kettle-dev (~> 2.3, >= 2.3.5) + kettle-rb (~> 0.1, >= 0.1.4) + kramdown-merge (= 7.1.0) + markdown-merge (= 7.1.0) + markly-merge (= 7.1.0) + prism-merge (= 7.1.0) + psych-merge (= 7.1.0) + rbs (>= 3.10) + rbs-merge (= 7.1.0) + ruby-merge (= 7.1.0) + token-resolver (~> 2.0, >= 2.0.4) + toml-merge (= 7.1.0) + toml-rb (~> 4.2) + tree_haver (= 7.1.0) + yaml-merge (= 7.1.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge + specs: + kramdown-merge (7.1.0) + kramdown (~> 2.5) + markdown-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge + specs: + markdown-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge + specs: + markly-merge (7.1.0) + markdown-merge (= 7.1.0) + markly (~> 0.9) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge + specs: + parslet-toml-merge (7.1.0) + toml (~> 0.3) + toml-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge + specs: + prism-merge (7.1.0) + prism (~> 1.6) + ruby-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge + specs: + psych-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + yaml-merge (= 7.1.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge + specs: + rbs-merge (7.1.0) + ast-merge (= 7.1.0) + rbs (>= 3.10) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge + specs: + ruby-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge + specs: + rust-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb + specs: + smorg-rb (7.1.0) + ast-merge (= 7.1.0) + ast-merge-git (= 7.1.0) + go-merge (= 7.1.0) + json-merge (= 7.1.0) + kettle-jem (= 7.1.0) + markly-merge (= 7.1.0) + plain-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge + specs: + toml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver + specs: + tree_haver (7.1.0) + citrus (~> 3.0) + parslet (~> 2.0) + tree_sitter_language_pack (>= 1.13.2, < 2.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge + specs: + typescript-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge + specs: + yaml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge + specs: + zip-merge (7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + GEM remote: https://gem.coop/ specs: @@ -17,11 +276,6 @@ GEM rake (>= 10) thor (>= 0.14) ast (2.4.3) - ast-merge (7.1.0) - benchmark - token-resolver (~> 2.0, >= 2.0.4) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) backports (3.25.3) benchmark (0.5.0) bigdecimal (4.1.2) @@ -30,6 +284,12 @@ GEM thor (~> 1.0) citrus (3.0.2) cmdparse (3.0.7) + commonmarker (2.9.0-aarch64-linux) + commonmarker (2.9.0-aarch64-linux-musl) + commonmarker (2.9.0-arm64-darwin) + commonmarker (2.9.0-x86_64-darwin) + commonmarker (2.9.0-x86_64-linux) + commonmarker (2.9.0-x86_64-linux-musl) concurrent-ruby (1.3.8) date (3.5.1) debug (1.11.1) @@ -93,6 +353,8 @@ GEM kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) + kettle-drift (1.0.6) + version_gem (~> 1.1, >= 1.1.14) kettle-rb (0.1.4) kettle-soup-cover (1.1.3) simplecov (~> 0.22) @@ -121,6 +383,7 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) + markly (0.16.0) mutex_m (0.3.0) nokogiri (1.19.4-aarch64-linux-gnu) racc (~> 1.4) @@ -257,6 +520,8 @@ GEM ruby-progressbar (1.13.0) ruby_engine (2.0.3) ruby_version (1.0.3) + service_actor (3.9.4) + zeitwerk (>= 1.0) silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) @@ -309,11 +574,11 @@ GEM token-resolver (2.0.4) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.13) - tree_haver (7.1.0) - citrus (~> 3.0) - parslet (~> 2.0) - tree_sitter_language_pack (>= 1.13.2, < 2.0) - version_gem (~> 1.1, >= 1.1.9) + toml (0.3.0) + parslet (>= 1.8.0, < 3.0.0) + toml-rb (4.2.0) + citrus (~> 3.0, > 3.0) + racc (~> 1.7) tree_sitter_language_pack (1.13.3-aarch64-linux) sorbet-runtime (~> 0.5) tree_sitter_language_pack (1.13.3-arm64-darwin) @@ -368,23 +633,45 @@ PLATFORMS DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) + ast-crispr! + ast-crispr-markdown-markly! + ast-crispr-ruby-prism! + ast-merge! + ast-merge-git! + ast-template! + bash-merge! benchmark (~> 0.5, >= 0.5.0) + binary-merge! bundler-audit (~> 0.9.3) + citrus-toml-merge! + commonmarker-merge! debug (>= 1.1) + dotenv-merge! erb (~> 6.0, >= 6.0.4) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.0) + go-merge! irb (~> 1.17) + json-merge! kettle-dev (~> 2.0, >= 2.2.25) + kettle-drift (~> 1.0, >= 1.0.5) + kettle-jem! kettle-soup-cover (~> 1.0, >= 1.1.3) kettle-test (~> 2.0, >= 2.0.9) kramdown (~> 2.5, >= 2.5.1) + kramdown-merge! kramdown-parser-gfm (~> 1.1) + markdown-merge! + markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) + parslet-toml-merge! plain-merge! + prism-merge! + psych-merge! rake (~> 13.0) rbs (>= 3.0) + rbs-merge! rdoc (~> 6.11) reek (~> 6.5) require_bench (~> 1.0, >= 1.0.4) @@ -393,31 +680,54 @@ DEPENDENCIES rubocop-packaging (~> 0.6, >= 0.6.0) rubocop-rspec (~> 3.6) rubocop-ruby3_2 (~> 3.0.0) + ruby-merge! ruby-progressbar (~> 1.13) + rust-merge! + smorg-rb! standard (>= 1.50) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) + toml-merge! + tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) + typescript-merge! yaml-converter (~> 0.1) + yaml-merge! yard (~> 0.9, >= 0.9.44) yard-fence (~> 0.9, >= 0.9.1) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) yard-timekeeper (~> 0.1) yard-yaml (~> 0.1, >= 0.1.2) + zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af ansi (1.6.0) sha256=ac9ea0c0ea8d32fb4e271348e609963ac78882f34b73836c2a02b3622e666658 appraisal2 (3.2.0) sha256=ccd0b767ac4060cd7af6d16747459b6990f49c39c7b4fb1f7d1146b1e97c492f ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 + ast-crispr (7.1.0) + ast-crispr-markdown-markly (7.1.0) + ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) + ast-merge-git (7.1.0) + ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 + bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd + binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 + citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 + commonmarker (2.9.0-aarch64-linux) sha256=e2b4aadb9a2cfa4e206582641ce3a49465549ac1ed4c289fdd63b78d8f24579c + commonmarker (2.9.0-aarch64-linux-musl) sha256=1cf4d2821f2a7e64945f1ed7c4eeced586fdb27ea7fe7337788802cf8f57cfca + commonmarker (2.9.0-arm64-darwin) sha256=1748dbfa4f5813b0d2a14bb4bbfa65a4ec293aa1c825016d60029ee0e132b046 + commonmarker (2.9.0-x86_64-darwin) sha256=0a9914ccfd2f5d2a59c7bd0dda4fe90eb084cf513b477e499008e09ec9d6edd6 + commonmarker (2.9.0-x86_64-linux) sha256=8cfe92970eef585a19ddf6613224b91cab64d6029834661bda801f877c9c7f43 + commonmarker (2.9.0-x86_64-linux-musl) sha256=293921398b839f79ceaf55010e061357e34f053822c3b003cd0be6686176335e + commonmarker-merge (7.1.0) concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 @@ -425,6 +735,7 @@ CHECKSUMS diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 docile (1.4.1) sha256=96159be799bfa73cdb721b840e9802126e4e03dfc26863db73647204c727f21e + dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -437,19 +748,27 @@ CHECKSUMS gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f + go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 + json-merge (7.1.0) kettle-dev (2.3.7) sha256=eb370113cd030d03cbe2d33b31c99858951017e5ad21a17e9ed89dc3770028ee + kettle-drift (1.0.6) sha256=46eda08fa4411d1f3c6682a95eef1c9df4e94611b3949f49d4c7b43c0ed356a3 + kettle-jem (7.1.0) kettle-rb (0.1.4) sha256=9cef7ce4f7021666b7222292f29051e51eaf042e8a5db11f3f4dd72f74243fc1 kettle-soup-cover (1.1.3) sha256=a373827da22a7131d093afd32945e5b7d7a10a01ebfdded8fd2cb8230d69c8ad kettle-test (2.0.11) sha256=c710c90f7ab79d51f9452f0c09f5f90657e7a893f63583855c164d0b1b107ab2 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa + kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 + markdown-merge (7.1.0) + markly (0.16.0) sha256=6f70d79e385b1efc9e171f74c81628826259039fe6c778e03c3924c71dac5511 + markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-aarch64-linux-gnu) sha256=1269fb644a6de405057a53dd5c762b1209b43ca7424f839454d3dbc677c31a8f nokogiri (1.19.4-aarch64-linux-musl) sha256=35c65b9ce72b3bb03207bdbe7067915019dc18c1b9b59139684bd6690fdd01af @@ -464,16 +783,20 @@ CHECKSUMS parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 + parslet-toml-merge (7.1.0) plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 + prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 + psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 + rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb @@ -501,9 +824,12 @@ CHECKSUMS rubocop-rspec (3.10.2) sha256=0b3e2ecc592cd10ecbf0095bb58d1e357905276e069643523cc19eb7495f65e2 rubocop-ruby3_2 (3.0.7) sha256=f53dd6d286fb05186214fc6ec116783e7f837030918e8931c05de773e98f8466 rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 + ruby-merge (7.1.0) ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 + rust-merge (7.1.0) + service_actor (3.9.4) sha256=e63b523630b9a7e62959b2a90113b08d2565b5de9c148557b281ef847c9539ce silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (0.22.0) sha256=fe2622c7834ff23b98066bb0a854284b2729a569ac659f82621fc22ef36213a5 simplecov-cobertura (3.2.0) sha256=70d702658677fcb20e5aceb6915ccf8bc62ff2ccd38b62b3ad5c9db5c0888740 @@ -512,6 +838,7 @@ CHECKSUMS simplecov-lcov (0.9.0) sha256=7a77a31e200a595ed4b0249493056efd0c920601f53d2ef135ca34ee796346cd simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_json_formatter (0.1.4) sha256=529418fbe8de1713ac2b2d612aa3daa56d316975d307244399fa4838c601b428 + smorg-rb (7.1.0) sorbet-runtime (0.6.13347) sha256=54e7221d9f4b63f58aec79f3043752a9ba7810347c6ae0d903531591cc2d5f01 standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b @@ -525,6 +852,9 @@ CHECKSUMS timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.4) sha256=33b926958f504525bba3ed511ab66fbcbf8ef30390815e931436b30f27ffcad0 + toml (0.3.0) sha256=0a91d0f76a9036e84e44f95693b12f58d358c1df3ac8e3b5271f2056ecc6e4b9 + toml-merge (7.1.0) + toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-aarch64-linux) sha256=55ffc7c87868cb45658338363d9eba51b4a8b0259aa88e4de368d2bd1d52fea4 tree_sitter_language_pack (1.13.3-arm64-darwin) sha256=bc2498db605f212a1dbd2465ed3f65190d7da786f6ed5d30fcf958121aeb4a5c @@ -532,10 +862,12 @@ CHECKSUMS tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 + typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 + yaml-merge (7.1.0) yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd @@ -543,6 +875,7 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 + zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH diff --git a/gems/plain-merge/Rakefile b/gems/plain-merge/Rakefile index c1132c880..571409183 100644 --- a/gems/plain-merge/Rakefile +++ b/gems/plain-merge/Rakefile @@ -130,23 +130,23 @@ end ### DUPLICATE DRIFT TASKS begin - require 'kettle/drift' + require "kettle/drift" Kettle::Drift.install_tasks rescue LoadError - desc('(stub) kettle:drift:check is unavailable') - task('kettle:drift:check') do + desc("(stub) kettle:drift:check is unavailable") + task("kettle:drift:check") do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc('(stub) kettle:drift:update is unavailable') - task('kettle:drift:update') do + desc("(stub) kettle:drift:update is unavailable") + task("kettle:drift:update") do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc('(stub) kettle:drift:force_update is unavailable') - task('kettle:drift:force_update') do + desc("(stub) kettle:drift:force_update is unavailable") + task("kettle:drift:force_update") do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc('(stub) kettle:drift is unavailable') - task('kettle:drift' => 'kettle:drift:update') + desc("(stub) kettle:drift is unavailable") + task("kettle:drift" => "kettle:drift:update") end ### TEMPLATING TASKS diff --git a/gems/plain-merge/lib/plain/merge/version.rb b/gems/plain-merge/lib/plain/merge/version.rb index e6b3a5844..aab4f67c1 100644 --- a/gems/plain-merge/lib/plain/merge/version.rb +++ b/gems/plain-merge/lib/plain/merge/version.rb @@ -3,7 +3,7 @@ module Plain module Merge module Version - VERSION = '7.1.0' + VERSION = "7.1.0" end VERSION = Version::VERSION # Traditional Constant Location end From afe5fbec385eab16f6bf89d8d1a7c46ef2c6da25 Mon Sep 17 00:00:00 2001 From: "Peter H. Boling" Date: Tue, 21 Jul 2026 13:52:25 -0600 Subject: [PATCH 123/188] =?UTF-8?q?=F0=9F=8E=A8=20Template=20bootstrap=20b?= =?UTF-8?q?y=20kettle-jem=20v7.1.0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gems/ast-crispr-markdown-markly/Gemfile.lock | 347 +------------ gems/ast-merge-git/.kettle-drift.lock | 9 - gems/ast-merge-git/.rubocop_gradual.lock | 22 +- gems/ast-merge-git/Gemfile | 70 ++- gems/ast-merge-git/Gemfile.lock | 481 ++++-------------- gems/ast-merge-git/README.md | 4 +- gems/ast-merge-git/Rakefile | 18 +- .../gemfiles/modular/cgi/r4/v0.5.gemfile | 1 + .../gemfiles/modular/cgi/vHEAD.gemfile | 1 + .../gemfiles/modular/coverage.gemfile | 2 +- .../gemfiles/modular/coverage_local.gemfile | 24 +- .../gemfiles/modular/documentation.gemfile | 12 +- .../modular/documentation_local.gemfile | 26 +- .../gemfiles/modular/erb/r3/v5.0.gemfile | 2 +- .../gemfiles/modular/erb/r4/v5.0.gemfile | 2 +- .../modular/json/truffleruby_22_3.gemfile | 6 + .../modular/json/truffleruby_23_0.gemfile | 6 + .../modular/json/truffleruby_23_1.gemfile | 6 + .../gemfiles/modular/optional.gemfile | 3 +- .../gemfiles/modular/runtime_heads.gemfile | 5 +- .../gemfiles/modular/style.gemfile | 23 +- .../gemfiles/modular/style_local.gemfile | 30 +- .../gemfiles/modular/templating.gemfile | 4 +- .../gemfiles/modular/templating_local.gemfile | 22 +- .../gemfiles/modular/webrick/r4/v1.9.gemfile | 1 + .../gemfiles/modular/webrick/vHEAD.gemfile | 1 + .../modular/x_std_libs/r4/libs.gemfile | 2 + .../gemfiles/modular/x_std_libs/vHEAD.gemfile | 2 + .../lib/ast/merge/git/version.rb | 2 +- gems/bash-merge/.kettle-drift.lock | 288 +---------- .../.structuredmerge/kettle-jem.yml | 53 ++ gems/bash-merge/Gemfile | 72 ++- gems/bash-merge/Gemfile.lock | 355 ++++++++++++- gems/bash-merge/Rakefile | 18 +- gems/bash-merge/lib/bash/merge/version.rb | 2 +- gems/json-merge/Gemfile.lock | 30 +- gems/plain-merge/.kettle-drift.lock | 9 - gems/plain-merge/Gemfile.lock | 476 ++++------------- gems/plain-merge/README.md | 4 +- gems/plain-merge/bin/yard | 2 +- .../modular/benchmark/r4/v0.5.gemfile | 2 +- .../gemfiles/modular/benchmark/vHEAD.gemfile | 2 +- .../gemfiles/modular/cgi/r4/v0.5.gemfile | 1 + .../gemfiles/modular/cgi/vHEAD.gemfile | 1 + .../gemfiles/modular/coverage.gemfile | 6 +- .../gemfiles/modular/coverage_local.gemfile | 48 +- .../gemfiles/modular/debug.gemfile | 4 +- .../gemfiles/modular/documentation.gemfile | 24 +- .../modular/documentation_local.gemfile | 38 +- .../gemfiles/modular/erb/r2/v3.0.gemfile | 2 +- .../gemfiles/modular/erb/r3/v5.0.gemfile | 2 +- .../gemfiles/modular/erb/r4/v5.0.gemfile | 2 +- .../gemfiles/modular/erb/vHEAD.gemfile | 2 +- .../modular/json/truffleruby_22_3.gemfile | 6 + .../modular/json/truffleruby_23_0.gemfile | 6 + .../modular/json/truffleruby_23_1.gemfile | 6 + .../gemfiles/modular/mutex_m/r2/v0.3.gemfile | 2 +- .../gemfiles/modular/mutex_m/r3/v0.3.gemfile | 2 +- .../gemfiles/modular/mutex_m/r4/v0.3.gemfile | 2 +- .../gemfiles/modular/mutex_m/vHEAD.gemfile | 2 +- .../gemfiles/modular/optional.gemfile | 7 +- .../gemfiles/modular/rspec.gemfile | 8 +- .../gemfiles/modular/runtime_heads.gemfile | 7 +- .../gemfiles/modular/stringio/r2/v3.0.gemfile | 2 +- .../gemfiles/modular/stringio/r3/v3.0.gemfile | 2 +- .../gemfiles/modular/stringio/r4/v3.0.gemfile | 2 +- .../gemfiles/modular/stringio/vHEAD.gemfile | 2 +- .../gemfiles/modular/style.gemfile | 29 +- .../gemfiles/modular/style_local.gemfile | 44 +- .../gemfiles/modular/templating.gemfile | 14 +- .../gemfiles/modular/templating_local.gemfile | 48 +- .../gemfiles/modular/webrick/r4/v1.9.gemfile | 1 + .../gemfiles/modular/webrick/vHEAD.gemfile | 1 + .../gemfiles/modular/x_std_libs.gemfile | 14 +- .../modular/x_std_libs/r2/libs.gemfile | 6 +- .../modular/x_std_libs/r3/libs.gemfile | 6 +- .../modular/x_std_libs/r4/libs.gemfile | 10 +- .../gemfiles/modular/x_std_libs/vHEAD.gemfile | 10 +- gems/prism-merge/Gemfile.lock | 346 +------------ gems/ruby-merge/Gemfile.lock | 351 +------------ 80 files changed, 1188 insertions(+), 2325 deletions(-) create mode 100644 gems/ast-merge-git/gemfiles/modular/cgi/r4/v0.5.gemfile create mode 100644 gems/ast-merge-git/gemfiles/modular/cgi/vHEAD.gemfile create mode 100644 gems/ast-merge-git/gemfiles/modular/json/truffleruby_22_3.gemfile create mode 100644 gems/ast-merge-git/gemfiles/modular/json/truffleruby_23_0.gemfile create mode 100644 gems/ast-merge-git/gemfiles/modular/json/truffleruby_23_1.gemfile create mode 100644 gems/ast-merge-git/gemfiles/modular/webrick/r4/v1.9.gemfile create mode 100644 gems/ast-merge-git/gemfiles/modular/webrick/vHEAD.gemfile create mode 100644 gems/plain-merge/gemfiles/modular/cgi/r4/v0.5.gemfile create mode 100644 gems/plain-merge/gemfiles/modular/cgi/vHEAD.gemfile create mode 100644 gems/plain-merge/gemfiles/modular/json/truffleruby_22_3.gemfile create mode 100644 gems/plain-merge/gemfiles/modular/json/truffleruby_23_0.gemfile create mode 100644 gems/plain-merge/gemfiles/modular/json/truffleruby_23_1.gemfile create mode 100644 gems/plain-merge/gemfiles/modular/webrick/r4/v1.9.gemfile create mode 100644 gems/plain-merge/gemfiles/modular/webrick/vHEAD.gemfile diff --git a/gems/ast-crispr-markdown-markly/Gemfile.lock b/gems/ast-crispr-markdown-markly/Gemfile.lock index ee3cb0f2e..2f2742716 100644 --- a/gems/ast-crispr-markdown-markly/Gemfile.lock +++ b/gems/ast-crispr-markdown-markly/Gemfile.lock @@ -6,265 +6,6 @@ PATH markly-merge (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism - specs: - ast-crispr-ruby-prism (7.1.0) - ast-crispr (= 7.1.0) - prism-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr - specs: - ast-crispr (7.1.0) - ast-merge (= 7.1.0) - service_actor (~> 3.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git - specs: - ast-merge-git (7.1.0) - ast-merge (= 7.1.0) - json-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge - specs: - ast-merge (7.1.0) - benchmark - token-resolver (~> 2.0, >= 2.0.4) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template - specs: - ast-template (7.1.0) - ast-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge - specs: - bash-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge - specs: - binary-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge - specs: - citrus-toml-merge (7.1.0) - toml-merge (= 7.1.0) - toml-rb (~> 4.1) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge - specs: - commonmarker-merge (7.1.0) - commonmarker (~> 2.2) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge - specs: - dotenv-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge - specs: - go-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge - specs: - json-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem - specs: - kettle-jem (7.1.0) - addressable (>= 2.8, < 3) - ast-crispr-markdown-markly (= 7.1.0) - ast-crispr-ruby-prism (= 7.1.0) - ast-merge (= 7.1.0) - bash-merge (= 7.1.0) - citrus-toml-merge (= 7.1.0) - commonmarker-merge (= 7.1.0) - dotenv-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-dev (~> 2.3, >= 2.3.5) - kettle-rb (~> 0.1, >= 0.1.4) - kramdown-merge (= 7.1.0) - markdown-merge (= 7.1.0) - markly-merge (= 7.1.0) - prism-merge (= 7.1.0) - psych-merge (= 7.1.0) - rbs (>= 3.10) - rbs-merge (= 7.1.0) - ruby-merge (= 7.1.0) - token-resolver (~> 2.0, >= 2.0.4) - toml-merge (= 7.1.0) - toml-rb (~> 4.2) - tree_haver (= 7.1.0) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge - specs: - kramdown-merge (7.1.0) - kramdown (~> 2.5) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge - specs: - markdown-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge - specs: - markly-merge (7.1.0) - markdown-merge (= 7.1.0) - markly (~> 0.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge - specs: - parslet-toml-merge (7.1.0) - toml (~> 0.3) - toml-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge - specs: - plain-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge - specs: - prism-merge (7.1.0) - prism (~> 1.6) - ruby-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge - specs: - psych-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge - specs: - rbs-merge (7.1.0) - ast-merge (= 7.1.0) - rbs (>= 3.10) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge - specs: - ruby-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge - specs: - rust-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb - specs: - smorg-rb (7.1.0) - ast-merge (= 7.1.0) - ast-merge-git (= 7.1.0) - go-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-jem (= 7.1.0) - markly-merge (= 7.1.0) - plain-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge - specs: - toml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver - specs: - tree_haver (7.1.0) - citrus (~> 3.0) - parslet (~> 2.0) - tree_sitter_language_pack (>= 1.13.2, < 2.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge - specs: - typescript-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge - specs: - yaml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge - specs: - zip-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - GEM remote: https://gem.coop/ specs: @@ -280,6 +21,15 @@ GEM rubocop (>= 1.0) version_gem (~> 1.1, >= 1.1.14) ast (2.4.3) + ast-crispr (7.1.0) + ast-merge (= 7.1.0) + service_actor (~> 3.9) + version_gem (~> 1.1, >= 1.1.9) + ast-merge (7.1.0) + benchmark + token-resolver (~> 2.0, >= 2.0.4) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) backports (3.25.3) benchmark (0.5.0) bigdecimal (4.1.2) @@ -289,7 +39,6 @@ GEM cgi (0.5.2) citrus (3.0.2) cmdparse (3.0.7) - commonmarker (2.9.0-x86_64-linux) concurrent-ruby (1.3.8) date (3.5.1) debug (1.11.1) @@ -352,8 +101,6 @@ GEM kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) - kettle-drift (1.0.6) - version_gem (~> 1.1, >= 1.1.14) kettle-rb (0.1.5) kettle-soup-cover (3.0.4) kettle-wash (~> 0.1, >= 0.1.0) @@ -382,7 +129,15 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) + markdown-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) markly (0.16.0) + markly-merge (7.1.0) + markdown-merge (= 7.1.0) + markly (~> 0.9) + version_gem (~> 1.1, >= 1.1.9) mutex_m (0.3.0) nokogiri (1.19.4-x86_64-linux-gnu) racc (~> 1.4) @@ -593,11 +348,11 @@ GEM token-resolver (2.0.5) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.14) - toml (0.3.0) - parslet (>= 1.8.0, < 3.0.0) - toml-rb (4.2.0) - citrus (~> 3.0, > 3.0) - racc (~> 1.7) + tree_haver (7.1.0) + citrus (~> 3.0) + parslet (~> 2.0) + tree_sitter_language_pack (>= 1.13.2, < 2.0) + version_gem (~> 1.1, >= 1.1.9) tree_sitter_language_pack (1.13.3-x86_64-linux) sorbet-runtime (~> 0.5) tsort (0.2.0) @@ -643,46 +398,24 @@ DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) appraisal2-rubocop (~> 1.0, >= 1.0.0) - ast-crispr! ast-crispr-markdown-markly! - ast-crispr-ruby-prism! - ast-merge! - ast-merge-git! - ast-template! - bash-merge! benchmark (~> 0.5, >= 0.5.0) - binary-merge! bundler-audit (~> 0.9.3) cgi (~> 0.5) - citrus-toml-merge! - commonmarker-merge! debug (>= 1.1) - dotenv-merge! erb (~> 6.0, >= 6.0.6) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.0) - go-merge! irb (~> 1.17) - json-merge! kettle-dev (~> 2.0, >= 2.2.25) - kettle-drift (~> 1.0, >= 1.0.6) - kettle-jem! kettle-soup-cover (~> 3.0, >= 3.0.3) kettle-test (~> 2.0, >= 2.0.9) kramdown (~> 2.5, >= 2.5.2) - kramdown-merge! kramdown-parser-gfm (~> 1.1) - markdown-merge! - markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) - parslet-toml-merge! - plain-merge! - prism-merge! - psych-merge! rake (~> 13.0) rbs (>= 3.0) - rbs-merge! rdoc (~> 6.11) reek (~> 6.5, >= 6.5.0) require_bench (~> 1.0, >= 1.0.4) @@ -693,27 +426,19 @@ DEPENDENCIES rubocop-on-rbs (~> 2.0, >= 2.0.0) rubocop-packaging (~> 0.6, >= 0.6.0) rubocop-ruby3_2 (~> 3.0, >= 3.0.6) - ruby-merge! ruby-progressbar (~> 1.13) - rust-merge! - smorg-rb! standard (~> 1.56, >= 1.56.0) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) - toml-merge! - tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) - typescript-merge! webrick (~> 1.9) yaml-converter (~> 0.2, >= 0.2.3) - yaml-merge! yard (~> 0.9, >= 0.9.45) yard-fence (~> 0.9, >= 0.9.6) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) yard-timekeeper (~> 0.2, >= 0.2.4) yard-yaml (~> 0.2, >= 0.2.3) - zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af @@ -723,29 +448,20 @@ CHECKSUMS ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 ast-crispr (7.1.0) ast-crispr-markdown-markly (7.1.0) - ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) - ast-merge-git (7.1.0) - ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 - bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd - binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 - citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 - commonmarker (2.9.0-x86_64-linux) sha256=8cfe92970eef585a19ddf6613224b91cab64d6029834661bda801f877c9c7f43 - commonmarker-merge (7.1.0) concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 - dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -758,21 +474,16 @@ CHECKSUMS gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f - go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 - json-merge (7.1.0) kettle-dev (2.3.8) sha256=9d716ff21c660a730cb4e8d41e2e2f0630a28167a354b6e2924e242102aef72c - kettle-drift (1.0.6) sha256=46eda08fa4411d1f3c6682a95eef1c9df4e94611b3949f49d4c7b43c0ed356a3 - kettle-jem (7.1.0) kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f kettle-soup-cover (3.0.4) kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa - kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 @@ -789,20 +500,15 @@ CHECKSUMS parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 - parslet-toml-merge (7.1.0) - plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 - prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 - psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 - rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb @@ -837,11 +543,9 @@ CHECKSUMS rubocop-rspec_rails (2.32.0) sha256=4a0d641c72f6ebb957534f539d9d0a62c47abd8ce0d0aeee1ef4701e892a9100 rubocop-ruby3_2 (3.0.7) sha256=f53dd6d286fb05186214fc6ec116783e7f837030918e8931c05de773e98f8466 rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 - ruby-merge (7.1.0) ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 - rust-merge (7.1.0) service_actor (3.9.4) sha256=e63b523630b9a7e62959b2a90113b08d2565b5de9c148557b281ef847c9539ce silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 @@ -849,7 +553,6 @@ CHECKSUMS simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed - smorg-rb (7.1.0) sorbet-runtime (0.6.13347) sha256=54e7221d9f4b63f58aec79f3043752a9ba7810347c6ae0d903531591cc2d5f01 standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b @@ -864,20 +567,15 @@ CHECKSUMS timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.5) sha256=b852f924287ffb58a440856e862b056c8ad97e74b4b2526cee43e0771f40c25c - toml (0.3.0) sha256=0a91d0f76a9036e84e44f95693b12f58d358c1df3ac8e3b5271f2056ecc6e4b9 - toml-merge (7.1.0) - toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 - typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 webrick (1.9.2) sha256=beb4a15fc474defed24a3bda4ffd88a490d517c9e4e6118c3edce59e45864131 yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 - yaml-merge (7.1.0) yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd @@ -885,7 +583,6 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 - zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH diff --git a/gems/ast-merge-git/.kettle-drift.lock b/gems/ast-merge-git/.kettle-drift.lock index 2ee9dae31..43dfedd67 100644 --- a/gems/ast-merge-git/.kettle-drift.lock +++ b/gems/ast-merge-git/.kettle-drift.lock @@ -52,14 +52,5 @@ 88 ] } - ], - "vendored_gems_env: 'VENDORED_GEMS',\nvendor_gem_dir_env: 'VENDOR_GEM_DIR',": [ - { - "file": "gemfiles/modular/templating_local.gemfile", - "lines": [ - 55, - 66 - ] - } ] } diff --git a/gems/ast-merge-git/.rubocop_gradual.lock b/gems/ast-merge-git/.rubocop_gradual.lock index ff0066794..2aee40552 100644 --- a/gems/ast-merge-git/.rubocop_gradual.lock +++ b/gems/ast-merge-git/.rubocop_gradual.lock @@ -21,13 +21,20 @@ [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] ], + "gemfiles/modular/cgi/r4/v0.5.gemfile:367169322": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/cgi/vHEAD.gemfile:2729540777": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], "gemfiles/modular/erb/r2/v3.0.gemfile:1688285565": [ [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] ], - "gemfiles/modular/erb/r3/v5.0.gemfile:2150258305": [ + "gemfiles/modular/erb/r3/v5.0.gemfile:2394062339": [ [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] ], - "gemfiles/modular/erb/r4/v5.0.gemfile:2150258305": [ + "gemfiles/modular/erb/r4/v5.0.gemfile:2394062339": [ [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] ], "gemfiles/modular/erb/vHEAD.gemfile:981929959": [ @@ -63,6 +70,13 @@ [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] ], + "gemfiles/modular/webrick/r4/v1.9.gemfile:3092661193": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/webrick/vHEAD.gemfile:3867684682": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], "gemfiles/modular/x_std_libs.gemfile:2324400122": [ [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] ], @@ -72,10 +86,10 @@ "gemfiles/modular/x_std_libs/r3/libs.gemfile:4030570297": [ [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] ], - "gemfiles/modular/x_std_libs/r4/libs.gemfile:909736663": [ + "gemfiles/modular/x_std_libs/r4/libs.gemfile:732451732": [ [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] ], - "gemfiles/modular/x_std_libs/vHEAD.gemfile:907917303": [ + "gemfiles/modular/x_std_libs/vHEAD.gemfile:2390363993": [ [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] ], diff --git a/gems/ast-merge-git/Gemfile b/gems/ast-merge-git/Gemfile index c58dd4f3d..17419a301 100644 --- a/gems/ast-merge-git/Gemfile +++ b/gems/ast-merge-git/Gemfile @@ -6,7 +6,7 @@ # kettle-jem will then preserve content between those markers across template runs. # kettle-jem:unfreeze -source "https://gem.coop" +source 'https://gem.coop' git_source(:codeberg) { |repo_name| "https://codeberg.org/#{repo_name}" } git_source(:gitlab) { |repo_name| "https://gitlab.com/#{repo_name}" } @@ -19,58 +19,54 @@ git_source(:gitlab) { |repo_name| "https://gitlab.com/#{repo_name}" } gemspec # Local workspace dependency wiring for *_local.gemfile overrides -nomono_requirements = ["~> 1.0", ">= 1.0.8"] -gem "nomono", *nomono_requirements, require: false # ruby >= 2.2 +nomono_requirements = ['~> 1.0', '>= 1.0.8'] +gem 'nomono', *nomono_requirements, require: false # ruby >= 2.2 # Direct sibling dependencies (env-switched via STRUCTUREDMERGE_DEV) direct_sibling_gems = %w[ ast-merge json-merge ] -direct_sibling_dev = ENV.fetch("STRUCTUREDMERGE_DEV", "") +direct_sibling_dev = ENV.fetch('STRUCTUREDMERGE_DEV', '') direct_sibling_local = !direct_sibling_dev.empty? && !%w[false 0 no off].include?(direct_sibling_dev.downcase) -direct_sibling_templating = ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? +direct_sibling_templating = ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero?) - direct_sibling_dev_was_set = ENV.key?("STRUCTUREDMERGE_DEV") - direct_sibling_dev_original = ENV.fetch("STRUCTUREDMERGE_DEV", nil) + (direct_sibling_local || + ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) + direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') + direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) begin nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path("Gemfile.lock", __dir__) + nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == "nomono" } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - if nomono_locked - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] - end - end - Kernel.send(:gem, "nomono", *nomono_activation_requirements) - require "nomono/bundler" - if direct_sibling_templating && !direct_sibling_local - ENV["STRUCTUREDMERGE_DEV"] = File.expand_path("..", __dir__) + Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked end + Kernel.send(:gem, 'nomono', *nomono_activation_requirements) + require 'nomono/bundler' + ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local eval_nomono_gems( gems: direct_sibling_gems, - prefix: "STRUCTUREDMERGE", - path_env: "STRUCTUREDMERGE_DEV", - root: ["src", "my", "structuredmerge"] + prefix: 'STRUCTUREDMERGE', + path_env: 'STRUCTUREDMERGE_DEV', + root: %w[src my structuredmerge] ) rescue LoadError - warn "Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies." + warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' ensure if direct_sibling_templating && !direct_sibling_local if direct_sibling_dev_was_set - ENV["STRUCTUREDMERGE_DEV"] = direct_sibling_dev_original + ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original else - ENV.delete("STRUCTUREDMERGE_DEV") + ENV.delete('STRUCTUREDMERGE_DEV') end end end @@ -117,28 +113,28 @@ if direct_sibling_gems.any? && end # Use released TSLP with the Ruby ABI platform-gem fix. -gem "tree_sitter_language_pack", "~> 1.13", ">= 1.13.3" +gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' # Templating (env-switched: STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local paths) -eval_gemfile "gemfiles/modular/templating.gemfile" if ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? +eval_gemfile 'gemfiles/modular/templating.gemfile' if ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? # Debugging -eval_gemfile "gemfiles/modular/debug.gemfile" +eval_gemfile 'gemfiles/modular/debug.gemfile' # Code Coverage (env-switched: KETTLE_DEV_DEV=true for local paths) -eval_gemfile "gemfiles/modular/coverage.gemfile" +eval_gemfile 'gemfiles/modular/coverage.gemfile' # Linting -eval_gemfile "gemfiles/modular/style.gemfile" +eval_gemfile 'gemfiles/modular/style.gemfile' # Documentation -eval_gemfile "gemfiles/modular/documentation.gemfile" +eval_gemfile 'gemfiles/modular/documentation.gemfile' # Optional -eval_gemfile "gemfiles/modular/optional.gemfile" +eval_gemfile 'gemfiles/modular/optional.gemfile' ### Std Lib Extracted Gems -eval_gemfile "gemfiles/modular/x_std_libs.gemfile" +eval_gemfile 'gemfiles/modular/x_std_libs.gemfile' # See unlocked_deps appraisal for more details on irb inclusion -gem "irb", "~> 1.17" # ruby >= 2.7 +gem 'irb', '~> 1.17' # ruby >= 2.7 diff --git a/gems/ast-merge-git/Gemfile.lock b/gems/ast-merge-git/Gemfile.lock index 29ac8d026..1a44ab5de 100644 --- a/gems/ast-merge-git/Gemfile.lock +++ b/gems/ast-merge-git/Gemfile.lock @@ -7,31 +7,7 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly - specs: - ast-crispr-markdown-markly (7.1.0) - ast-crispr (= 7.1.0) - markly-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism - specs: - ast-crispr-ruby-prism (7.1.0) - ast-crispr (= 7.1.0) - prism-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr - specs: - ast-crispr (7.1.0) - ast-merge (= 7.1.0) - service_actor (~> 3.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/ast-merge specs: ast-merge (7.1.0) benchmark @@ -40,231 +16,13 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template - specs: - ast-template (7.1.0) - ast-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge - specs: - bash-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge - specs: - binary-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge - specs: - citrus-toml-merge (7.1.0) - toml-merge (= 7.1.0) - toml-rb (~> 4.1) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge - specs: - commonmarker-merge (7.1.0) - commonmarker (~> 2.2) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge - specs: - dotenv-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge - specs: - go-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/json-merge specs: json-merge (7.1.0) ast-merge (= 7.1.0) tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem - specs: - kettle-jem (7.1.0) - addressable (>= 2.8, < 3) - ast-crispr-markdown-markly (= 7.1.0) - ast-crispr-ruby-prism (= 7.1.0) - ast-merge (= 7.1.0) - bash-merge (= 7.1.0) - citrus-toml-merge (= 7.1.0) - commonmarker-merge (= 7.1.0) - dotenv-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-dev (~> 2.3, >= 2.3.5) - kettle-rb (~> 0.1, >= 0.1.4) - kramdown-merge (= 7.1.0) - markdown-merge (= 7.1.0) - markly-merge (= 7.1.0) - prism-merge (= 7.1.0) - psych-merge (= 7.1.0) - rbs (>= 3.10) - rbs-merge (= 7.1.0) - ruby-merge (= 7.1.0) - token-resolver (~> 2.0, >= 2.0.4) - toml-merge (= 7.1.0) - toml-rb (~> 4.2) - tree_haver (= 7.1.0) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge - specs: - kramdown-merge (7.1.0) - kramdown (~> 2.5) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge - specs: - markdown-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge - specs: - markly-merge (7.1.0) - markdown-merge (= 7.1.0) - markly (~> 0.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge - specs: - parslet-toml-merge (7.1.0) - toml (~> 0.3) - toml-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge - specs: - plain-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge - specs: - prism-merge (7.1.0) - prism (~> 1.6) - ruby-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge - specs: - psych-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge - specs: - rbs-merge (7.1.0) - ast-merge (= 7.1.0) - rbs (>= 3.10) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge - specs: - ruby-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge - specs: - rust-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb - specs: - smorg-rb (7.1.0) - ast-merge (= 7.1.0) - ast-merge-git (= 7.1.0) - go-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-jem (= 7.1.0) - markly-merge (= 7.1.0) - plain-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge - specs: - toml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver - specs: - tree_haver (7.1.0) - citrus (~> 3.0) - parslet (~> 2.0) - tree_sitter_language_pack (>= 1.13.2, < 2.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge - specs: - typescript-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge - specs: - yaml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge - specs: - zip-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - GEM remote: https://gem.coop/ specs: @@ -275,6 +33,10 @@ GEM bundler (>= 1.17.3) rake (>= 10) thor (>= 0.14) + appraisal2-rubocop (1.0.0) + appraisal2 (>= 3.1.4) + rubocop (>= 1.0) + version_gem (~> 1.1, >= 1.1.14) ast (2.4.3) backports (3.25.3) benchmark (0.5.0) @@ -282,9 +44,9 @@ GEM bundler-audit (0.9.3) bundler (>= 1.2.0) thor (~> 1.0) + cgi (0.5.2) citrus (3.0.2) cmdparse (3.0.7) - commonmarker (2.9.0-x86_64-linux) concurrent-ruby (1.3.8) date (3.5.1) debug (1.11.1) @@ -293,7 +55,6 @@ GEM delegate (0.6.1) diff-lcs (1.6.2) diffy (3.4.4) - docile (1.4.1) dry-configurable (1.4.0) dry-core (~> 1.0) zeitwerk (~> 2.6) @@ -324,7 +85,7 @@ GEM dry-logic (~> 1.4) zeitwerk (~> 2.6) emoji_regex (15.0.0) - erb (6.0.5) + erb (6.0.6) gem_bench (2.0.5) bundler (>= 1.14) version_gem (~> 1.1, >= 1.1.4) @@ -343,24 +104,20 @@ GEM rdoc (>= 4.0.0) reline (>= 0.4.2) json (2.21.1) - kettle-dev (2.3.7) + kettle-dev (2.3.8) emoji_regex (>= 15.0) kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) - kettle-drift (1.0.6) - version_gem (~> 1.1, >= 1.1.14) - kettle-rb (0.1.4) - kettle-soup-cover (1.1.3) - simplecov (~> 0.22) - simplecov-cobertura (~> 3.0) - simplecov-console (~> 0.9, >= 0.9.3) - simplecov-html (~> 0.13, >= 0.13.1) - simplecov-lcov (~> 0.8) + kettle-rb (0.1.5) + kettle-soup-cover (3.0.4) + kettle-wash (~> 0.1, >= 0.1.0) + simplecov (>= 1.0) + simplecov-cobertura (>= 4.0) + simplecov-console (~> 0.9, >= 0.9.5) simplecov-rcov (~> 0.3, >= 0.3.7) - simplecov_json_formatter (~> 0.1, >= 0.1.4) - version_gem (~> 1.1, >= 1.1.9) - kettle-test (2.0.11) + simplecov_lcov_formatter (~> 0.9, >= 0.9.0) + kettle-test (2.0.12) appraisal2 (~> 3.0, >= 3.0.6) backports (~> 3.0) rspec (~> 3.0) @@ -371,6 +128,8 @@ GEM silent_stream (~> 1.0, >= 1.0.12) timecop-rspec (~> 1.0, >= 1.0.3) turbo_tests2 (~> 3.1, >= 3.1.12) + kettle-wash (0.1.1) + version_gem (~> 1.1, >= 1.1.14) kramdown (2.5.2) rexml (>= 3.4.4) kramdown-parser-gfm (1.1.0) @@ -378,7 +137,6 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) - markly (0.16.0) mutex_m (0.3.0) nokogiri (1.19.4-x86_64-linux-gnu) racc (~> 1.4) @@ -458,6 +216,14 @@ GEM rubocop-ast (1.50.0) parser (>= 3.3.7.2) prism (~> 1.7) + rubocop-capybara (2.23.0) + lint_roller (~> 1.1) + rubocop (~> 1.81) + rubocop-env (0.1.0) + rubocop + rubocop-factory_bot (2.28.0) + lint_roller (~> 1.1) + rubocop (~> 1.72, >= 1.72.1) rubocop-gradual (0.4.0) benchmark diff-lcs (>= 1.2.0, < 2.0) @@ -465,13 +231,26 @@ GEM parallel (~> 1.10) rainbow (>= 2.2.2, < 4.0) rubocop (~> 1.0) - rubocop-lts (24.1.0) - rubocop-ruby3_2 (>= 3.0.0, < 4) - standard-rubocop-lts (>= 2.0.2, < 3) - version_gem (>= 1.1.2, < 3) + rubocop-lts (24.2.2) + rubocop-ruby3_2 (~> 3.0, >= 3.0.1) + standard-rubocop-lts (~> 2.0, >= 2.0.3) + version_gem (~> 1.1, >= 1.1.13) + rubocop-lts-rspec (1.0.5) + rubocop (~> 1.84, >= 1.84.2) + rubocop-env (~> 0.1, >= 0.1.0) + rubocop-factory_bot (~> 2.28, >= 2.28.0) + rubocop-rspec (~> 3.9, >= 3.9.0) + rubocop-rspec-extra (~> 0.3, >= 0.3.0) + standard (~> 1.54, >= 1.54.0) + standard-rspec (~> 0.5, >= 0.5.0) + version_gem (~> 1.1, >= 1.1.13) rubocop-md (2.0.4) lint_roller (~> 1.1) rubocop (>= 1.72.1) + rubocop-minitest (0.40.0) + lint_roller (~> 1.1) + rubocop (>= 1.75.0, < 2.0) + rubocop-ast (>= 1.38.0, < 2.0) rubocop-on-rbs (2.0.0) lint_roller (~> 1.1) rbs (~> 4.0) @@ -491,6 +270,13 @@ GEM lint_roller (~> 1.1) regexp_parser (>= 2.0) rubocop (~> 1.86, >= 1.86.2) + rubocop-rspec-extra (0.3.0) + lint_roller (~> 1.1) + rubocop (>= 1.72.1, < 2.0) + rubocop-rspec_rails (2.32.0) + lint_roller (~> 1.1) + rubocop (~> 1.72, >= 1.72.1) + rubocop-rspec (~> 3.5) rubocop-ruby3_2 (3.0.7) rubocop-gradual (~> 0.3, >= 0.3.6) rubocop-md (~> 2.0, >= 2.0.4) @@ -505,27 +291,21 @@ GEM ruby-progressbar (1.13.0) ruby_engine (2.0.3) ruby_version (1.0.3) - service_actor (3.9.4) - zeitwerk (>= 1.0) silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) - simplecov (0.22.0) - docile (~> 1.1) - simplecov-html (~> 0.11) - simplecov_json_formatter (~> 0.1) - simplecov-cobertura (3.2.0) + simplecov (1.0.2) + simplecov-cobertura (4.0.0) rexml - simplecov (~> 0.19) + simplecov (~> 1.0) simplecov-console (0.9.5) ansi simplecov terminal-table - simplecov-html (0.13.2) - simplecov-lcov (0.9.0) simplecov-rcov (0.3.7) simplecov (>= 0.4.1) - simplecov_json_formatter (0.1.4) + simplecov_lcov_formatter (0.9.0) + simplecov (>= 0.18) sorbet-runtime (0.6.13347) standard (1.56.0) language_server-protocol (~> 3.17.0.2) @@ -539,6 +319,12 @@ GEM standard-performance (1.9.0) lint_roller (~> 1.1) rubocop-performance (~> 1.26.0) + standard-rspec (0.5.0) + lint_roller (>= 1.0) + rubocop-capybara (~> 2.23) + rubocop-factory_bot (~> 2.27) + rubocop-rspec (~> 3.9) + rubocop-rspec_rails (~> 2.31) standard-rubocop-lts (2.0.10) standard (~> 1.54, >= 1.54.0) standard-custom (~> 1.0, >= 1.0.2) @@ -556,14 +342,14 @@ GEM delegate (~> 0.1) rspec (~> 3.0) timecop (>= 0.7, < 1) - token-resolver (2.0.4) + token-resolver (2.0.5) parslet (~> 2.0) - version_gem (~> 1.1, >= 1.1.13) - toml (0.3.0) - parslet (>= 1.8.0, < 3.0.0) - toml-rb (4.2.0) - citrus (~> 3.0, > 3.0) - racc (~> 1.7) + version_gem (~> 1.1, >= 1.1.14) + tree_haver (7.1.0) + citrus (~> 3.0) + parslet (~> 2.0) + tree_sitter_language_pack (>= 1.13.2, < 2.0) + version_gem (~> 1.1, >= 1.1.9) tree_sitter_language_pack (1.13.3-x86_64-linux) sorbet-runtime (~> 0.5) tsort (0.2.0) @@ -575,6 +361,7 @@ GEM unicode-emoji (~> 4.1) unicode-emoji (4.2.0) version_gem (1.1.14) + webrick (1.9.2) yaml-converter (0.2.3) hexapdf (>= 1.8, < 2) kramdown (>= 2.4, < 3) @@ -607,104 +394,72 @@ PLATFORMS DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) - ast-crispr! - ast-crispr-markdown-markly! - ast-crispr-ruby-prism! + appraisal2-rubocop (~> 1.0, >= 1.0.0) ast-merge! ast-merge-git! - ast-template! - bash-merge! benchmark (~> 0.5, >= 0.5.0) - binary-merge! bundler-audit (~> 0.9.3) - citrus-toml-merge! - commonmarker-merge! + cgi (~> 0.5) debug (>= 1.1) - dotenv-merge! - erb (~> 6.0, >= 6.0.4) + erb (~> 6.0, >= 6.0.6) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.0) - go-merge! irb (~> 1.17) json-merge! kettle-dev (~> 2.0, >= 2.2.25) - kettle-drift (~> 1.0, >= 1.0.5) - kettle-jem! - kettle-soup-cover (~> 1.0, >= 1.1.3) + kettle-soup-cover (~> 3.0, >= 3.0.3) kettle-test (~> 2.0, >= 2.0.9) - kramdown (~> 2.5, >= 2.5.1) - kramdown-merge! + kramdown (~> 2.5, >= 2.5.2) kramdown-parser-gfm (~> 1.1) - markdown-merge! - markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) - parslet-toml-merge! - plain-merge! - prism-merge! - psych-merge! rake (~> 13.0) rbs (>= 3.0) - rbs-merge! rdoc (~> 6.11) - reek (~> 6.5) + reek (~> 6.5, >= 6.5.0) require_bench (~> 1.0, >= 1.0.4) - rubocop-lts (~> 24.1.0) - rubocop-on-rbs (~> 2.0) + rubocop-gradual (~> 0.4, >= 0.4.0) + rubocop-lts (~> 24.2, >= 24.2.1) + rubocop-lts-rspec (~> 1.0, >= 1.0.5) + rubocop-minitest (~> 0.40, >= 0.40.0) + rubocop-on-rbs (~> 2.0, >= 2.0.0) rubocop-packaging (~> 0.6, >= 0.6.0) - rubocop-rspec (~> 3.6) - rubocop-ruby3_2 (~> 3.0.0) - ruby-merge! + rubocop-ruby3_2 (~> 3.0, >= 3.0.6) ruby-progressbar (~> 1.13) - rust-merge! - smorg-rb! - standard (>= 1.50) + standard (~> 1.56, >= 1.56.0) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) - toml-merge! - tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) - typescript-merge! - yaml-converter (~> 0.1) - yaml-merge! - yard (~> 0.9, >= 0.9.44) - yard-fence (~> 0.9, >= 0.9.1) + webrick (~> 1.9) + yaml-converter (~> 0.2, >= 0.2.3) + yard (~> 0.9, >= 0.9.45) + yard-fence (~> 0.9, >= 0.9.6) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) - yard-timekeeper (~> 0.1) - yard-yaml (~> 0.1, >= 0.1.2) - zip-merge! + yard-timekeeper (~> 0.2, >= 0.2.4) + yard-yaml (~> 0.2, >= 0.2.3) CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af ansi (1.6.0) sha256=ac9ea0c0ea8d32fb4e271348e609963ac78882f34b73836c2a02b3622e666658 appraisal2 (3.2.0) sha256=ccd0b767ac4060cd7af6d16747459b6990f49c39c7b4fb1f7d1146b1e97c492f + appraisal2-rubocop (1.0.0) sha256=b71410fbb014befda5340605a605b7f6f3f012739baf0acc5b4351b592c3258d ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 - ast-crispr (7.1.0) - ast-crispr-markdown-markly (7.1.0) - ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) ast-merge-git (7.1.0) - ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 - bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd - binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 + cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 - citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 - commonmarker (2.9.0-x86_64-linux) - commonmarker-merge (7.1.0) concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 - docile (1.4.1) sha256=96159be799bfa73cdb721b840e9802126e4e03dfc26863db73647204c727f21e - dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -713,31 +468,25 @@ CHECKSUMS dry-schema (1.16.0) sha256=cd3aaeabc0f1af66ec82a29096d4c4fb92a0a58b9dae29a22b1bbceb78985727 dry-types (1.9.1) sha256=baebeecdb9f8395d6c9d227b62011279440943e3ef2468fe8ccc1ba11467f178 emoji_regex (15.0.0) sha256=a508b2c0bee561169564e0aec96085020c900520d335e5533fd8e78e59493829 - erb (6.0.5) sha256=858e63488cb796c9daba8b6e9ff4b3879c395022049be9a66a8e00980e612eac + erb (6.0.6) sha256=a9b24986700f5bf127c4f297c5403c3ca41b83b0a316c0cd09a096b56e644ae5 gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f - go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 json-merge (7.1.0) - kettle-dev (2.3.7) sha256=eb370113cd030d03cbe2d33b31c99858951017e5ad21a17e9ed89dc3770028ee - kettle-drift (1.0.6) - kettle-jem (7.1.0) - kettle-rb (0.1.4) sha256=9cef7ce4f7021666b7222292f29051e51eaf042e8a5db11f3f4dd72f74243fc1 - kettle-soup-cover (1.1.3) sha256=a373827da22a7131d093afd32945e5b7d7a10a01ebfdded8fd2cb8230d69c8ad - kettle-test (2.0.11) sha256=c710c90f7ab79d51f9452f0c09f5f90657e7a893f63583855c164d0b1b107ab2 + kettle-dev (2.3.8) sha256=9d716ff21c660a730cb4e8d41e2e2f0630a28167a354b6e2924e242102aef72c + kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f + kettle-soup-cover (3.0.4) + kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 + kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa - kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 - markdown-merge (7.1.0) - markly (0.16.0) - markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-x86_64-linux-gnu) sha256=379fae440b28915e3f19d752ce2dcf8465ed2b2fbefd2a7ca0dd497bc981a06a nomono (1.0.9) @@ -747,20 +496,15 @@ CHECKSUMS parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 - parslet-toml-merge (7.1.0) - plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 - prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 - psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 - rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb @@ -778,35 +522,37 @@ CHECKSUMS rspec_junit_formatter (0.6.0) sha256=40dde674e6ae4e6cc0ff560da25497677e34fefd2338cc467a8972f602b62b15 rubocop (1.88.2) sha256=8def251c90cd955feb4daa3edc0ab56893250c4ce90ef81e6c80c03f9a939bbf rubocop-ast (1.50.0) sha256=b9ca88300da0803ee222ad20cdb30494c0a784eed06fdc35d254b06d662788db + rubocop-capybara (2.23.0) sha256=f9ea1ba3a7561ee8e88cf76fc378ce517ce5327155f305ee7b5c2500e5aee357 + rubocop-env (0.1.0) sha256=5ab9a259e71822bf514c8e900a9b68cc2f74ccc87d5493efcd03213f3068e718 + rubocop-factory_bot (2.28.0) sha256=4b17fc02124444173317e131759d195b0d762844a71a29fe8139c1105d92f0cb rubocop-gradual (0.4.0) sha256=9c7e584e6fef6c2539266a193a4572c970c22f99046fd6b0305bdde6228f96ad - rubocop-lts (24.1.0) sha256=9dcad4db2da2fe2f1f77f98c917d70e7c43eded703da14cd201d4be52a9272aa + rubocop-lts (24.2.2) sha256=be6c745e1bb61daebd6af3cc3227c60f95be9f642a080773cad7df14c5f9f174 + rubocop-lts-rspec (1.0.5) sha256=439552fd27440802cc499889e013bffa28aadc41adae5d4dfff3d984a2a809b4 rubocop-md (2.0.4) sha256=0d076b6b5e99dea2ddc928c4bd702497decb9a8400da7808091e02ebcafcfb93 + rubocop-minitest (0.40.0) sha256=353c698199115f12151144cf0b5a96f69bb9d77b660cf6536df2c4250c672a9d rubocop-on-rbs (2.0.0) sha256=ce74d1b3d5daead19f4b611623656c185821dfc9aed9c7079bb1e5d7d7c464be rubocop-packaging (0.6.0) sha256=fb92bd0fb48e6f8cdb1648d2249b0cd51c2497dcc87340132d22f01edbf558a7 rubocop-performance (1.26.1) sha256=cd19b936ff196df85829d264b522fd4f98b6c89ad271fa52744a8c11b8f71834 rubocop-rake (0.7.1) sha256=3797f2b6810c3e9df7376c26d5f44f3475eda59eb1adc38e6f62ecf027cbae4d rubocop-rspec (3.10.2) sha256=0b3e2ecc592cd10ecbf0095bb58d1e357905276e069643523cc19eb7495f65e2 + rubocop-rspec-extra (0.3.0) sha256=ee4b6484d0332a0d23c4a465eeb607e41888eb3d4ed479f850b9f5212514f787 + rubocop-rspec_rails (2.32.0) sha256=4a0d641c72f6ebb957534f539d9d0a62c47abd8ce0d0aeee1ef4701e892a9100 rubocop-ruby3_2 (3.0.7) sha256=f53dd6d286fb05186214fc6ec116783e7f837030918e8931c05de773e98f8466 rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 - ruby-merge (7.1.0) ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 - rust-merge (7.1.0) - service_actor (3.9.4) silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 - simplecov (0.22.0) sha256=fe2622c7834ff23b98066bb0a854284b2729a569ac659f82621fc22ef36213a5 - simplecov-cobertura (3.2.0) sha256=70d702658677fcb20e5aceb6915ccf8bc62ff2ccd38b62b3ad5c9db5c0888740 + simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 + simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 - simplecov-html (0.13.2) sha256=bd0b8e54e7c2d7685927e8d6286466359b6f16b18cb0df47b508e8d73c777246 - simplecov-lcov (0.9.0) sha256=7a77a31e200a595ed4b0249493056efd0c920601f53d2ef135ca34ee796346cd simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc - simplecov_json_formatter (0.1.4) sha256=529418fbe8de1713ac2b2d612aa3daa56d316975d307244399fa4838c601b428 - smorg-rb (7.1.0) + simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed sorbet-runtime (0.6.13347) sha256=54e7221d9f4b63f58aec79f3043752a9ba7810347c6ae0d903531591cc2d5f01 standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b standard-performance (1.9.0) sha256=49483d31be448292951d80e5e67cdcb576c2502103c7b40aec6f1b6e9c88e3f2 + standard-rspec (0.5.0) sha256=64d396524a65af47f5331b423d8cdd313e0267401647bb7892489ca89dad2973 standard-rubocop-lts (2.0.10) sha256=89708a505b7d8b24d2ac399a7520fcb9e764abc2ecb4289b631b5fe0e3b76617 stone_checksums (1.0.6) sha256=c775f830513d6c6ab26e31d1a5fbecd4c4e39002663d4d9f8fa96e97990b5298 stringio (3.2.0) sha256=c37cb2e58b4ffbd33fe5cd948c05934af997b36e0b6ca6fdf43afa234cf222e1 @@ -815,20 +561,16 @@ CHECKSUMS thor (1.5.0) sha256=e3a9e55fe857e44859ce104a84675ab6e8cd59c650a49106a05f55f136425e73 timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 - token-resolver (2.0.4) sha256=33b926958f504525bba3ed511ab66fbcbf8ef30390815e931436b30f27ffcad0 - toml (0.3.0) - toml-merge (7.1.0) - toml-rb (4.2.0) + token-resolver (2.0.5) sha256=b852f924287ffb58a440856e862b056c8ad97e74b4b2526cee43e0771f40c25c tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 - typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 + webrick (1.9.2) sha256=beb4a15fc474defed24a3bda4ffd88a490d517c9e4e6118c3edce59e45864131 yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 - yaml-merge (7.1.0) yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd @@ -836,7 +578,6 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 - zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH diff --git a/gems/ast-merge-git/README.md b/gems/ast-merge-git/README.md index 6206226da..dfcb1b559 100644 --- a/gems/ast-merge-git/README.md +++ b/gems/ast-merge-git/README.md @@ -35,7 +35,7 @@ I've summarized my thoughts in [this blog post](https://dev.to/galtzo/hostile-ta | Tokens to Remember | [![Gem name][⛳️name-img]][⛳️gem-name] [![Gem namespace][⛳️namespace-img]][⛳️gem-namespace] | |-------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | Works with MRI Ruby 4 | [![Ruby current Compat][💎ruby-c-i]][🚎11-c-wf]| -| Support & Community | [![Join Me on Daily.dev's RubyFriends][✉️ruby-friends-img]][✉️ruby-friends] [![Live Chat on Discord][✉️discord-invite-img-ftb]][✉️discord-invite] [![Get help from me on Upwork][👨🏼‍🏫expsup-upwork-img]][👨🏼‍🏫expsup-upwork] [![Get help from me on Codementor][👨🏼‍🏫expsup-codementor-img]][👨🏼‍🏫expsup-codementor] | +| Support & Community | [![Join Me on Daily.dev's RubyFriends][✉️ruby-friends-img]][✉️ruby-friends] [![Get help from RubyForum][✉️ruby-forum-img]][✉️ruby-forum] [![Live Chat on Discord][✉️discord-invite-img-ftb]][✉️discord-invite] [![Get help from me on Upwork][👨🏼‍🏫expsup-upwork-img]][👨🏼‍🏫expsup-upwork] [![Get help from me on Codementor][👨🏼‍🏫expsup-codementor-img]][👨🏼‍🏫expsup-codementor] | | Source | [![Source on GitLab.com][📜src-gl-img]][📜src-gl] [![Source on CodeBerg.org][📜src-cb-img]][📜src-cb] [![Source on Github.com][📜src-gh-img]][📜src-gh] [![The best SHA: dQw4w9WgXcQ!][🧮kloc-img]][🧮kloc] | | Documentation | [![Current release on RubyDoc.info][📜docs-cr-rd-img]][🚎yard-current] [![YARD on Galtzo.com][📜docs-head-rd-img]][🚎yard-head] [![Maintainer Blog][🚂maint-blog-img]][🚂maint-blog] [![GitLab Wiki][📜gl-wiki-img]][📜gl-wiki] [![GitHub Wiki][📜gh-wiki-img]][📜gh-wiki] | | Compliance | [![License: AGPL-3.0-only OR PolyForm-Small-Business-1.0.0][📄license-img]][📄license] [![Apache license compatibility: Category X][📄license-compat-img]][📄license-compat] [![📄ilo-declaration-img]][📄ilo-declaration] [![Security Policy][🔐security-img]][🔐security] [![Contributor Covenant 2.1][🪇conduct-img]][🪇conduct] [![SemVer 2.0.0][📌semver-img]][📌semver] | @@ -180,6 +180,8 @@ If none of the available licenses suit your use case, please [contact us](mailto [✉️discord-invite-img-ftb]: https://img.shields.io/discord/1373797679469170758?style=for-the-badge&logo=discord [✉️ruby-friends-img]: https://img.shields.io/badge/daily.dev-%F0%9F%92%8E_Ruby_Friends-0A0A0A?style=for-the-badge&logo=dailydotdev&logoColor=white [✉️ruby-friends]: https://app.daily.dev/squads/rubyfriends +[✉️ruby-forum-img]: https://img.shields.io/badge/RubyForum-Help-CC342D?style=for-the-badge&logo=ruby&logoColor=white +[✉️ruby-forum]: https://www.rubyforum.org/c/help/8 [✇bundle-group-pattern]: https://gist.github.com/pboling/4564780 [⛳️gem-namespace]: https://github.com/structuredmerge/structuredmerge-ruby/tree/main/gems/ast-merge-git [⛳️namespace-img]: https://img.shields.io/badge/namespace-Ast::Merge::Git-3C2D2D.svg?style=square&logo=ruby&logoColor=white diff --git a/gems/ast-merge-git/Rakefile b/gems/ast-merge-git/Rakefile index 0ffccc3a4..d006f9ed7 100644 --- a/gems/ast-merge-git/Rakefile +++ b/gems/ast-merge-git/Rakefile @@ -130,23 +130,23 @@ end ### DUPLICATE DRIFT TASKS begin - require "kettle/drift" + require 'kettle/drift' Kettle::Drift.install_tasks rescue LoadError - desc("(stub) kettle:drift:check is unavailable") - task("kettle:drift:check") do + desc('(stub) kettle:drift:check is unavailable') + task('kettle:drift:check') do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc("(stub) kettle:drift:update is unavailable") - task("kettle:drift:update") do + desc('(stub) kettle:drift:update is unavailable') + task('kettle:drift:update') do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc("(stub) kettle:drift:force_update is unavailable") - task("kettle:drift:force_update") do + desc('(stub) kettle:drift:force_update is unavailable') + task('kettle:drift:force_update') do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc("(stub) kettle:drift is unavailable") - task("kettle:drift" => "kettle:drift:update") + desc('(stub) kettle:drift is unavailable') + task('kettle:drift' => 'kettle:drift:update') end ### TEMPLATING TASKS diff --git a/gems/ast-merge-git/gemfiles/modular/cgi/r4/v0.5.gemfile b/gems/ast-merge-git/gemfiles/modular/cgi/r4/v0.5.gemfile new file mode 100644 index 000000000..17ad97260 --- /dev/null +++ b/gems/ast-merge-git/gemfiles/modular/cgi/r4/v0.5.gemfile @@ -0,0 +1 @@ +gem 'cgi', '~> 0.5' diff --git a/gems/ast-merge-git/gemfiles/modular/cgi/vHEAD.gemfile b/gems/ast-merge-git/gemfiles/modular/cgi/vHEAD.gemfile new file mode 100644 index 000000000..650fbf033 --- /dev/null +++ b/gems/ast-merge-git/gemfiles/modular/cgi/vHEAD.gemfile @@ -0,0 +1 @@ +gem 'cgi', '>= 0.5' diff --git a/gems/ast-merge-git/gemfiles/modular/coverage.gemfile b/gems/ast-merge-git/gemfiles/modular/coverage.gemfile index f96d50954..b93014b6b 100644 --- a/gems/ast-merge-git/gemfiles/modular/coverage.gemfile +++ b/gems/ast-merge-git/gemfiles/modular/coverage.gemfile @@ -7,7 +7,7 @@ if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? # Coverage (remote/released) platform :mri do - gem 'kettle-soup-cover', '~> 1.0', '>= 1.1.3', require: false + gem 'kettle-soup-cover', '~> 3.0', '>= 3.0.3', require: false end else eval_gemfile 'coverage_local.gemfile' diff --git a/gems/ast-merge-git/gemfiles/modular/coverage_local.gemfile b/gems/ast-merge-git/gemfiles/modular/coverage_local.gemfile index 8b58b7cdb..069ac0fbb 100644 --- a/gems/ast-merge-git/gemfiles/modular/coverage_local.gemfile +++ b/gems/ast-merge-git/gemfiles/modular/coverage_local.gemfile @@ -3,13 +3,33 @@ # Local path overrides for development. # Loaded by the associated non-local gemfile when KETTLE_DEV_DEV != "false". -require 'nomono/bundler' unless defined?(Nomono) +# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. +# Bundler records that dependency during Gemfile evaluation, but it does not +# activate that exact version before the immediate `require "nomono/bundler"`. +# If multiple compatible nomono versions are installed, RubyGems may activate +# the newest installed version while Gemfile.lock pins an older compatible one; +# Bundler then aborts with "already activated nomono X, but your Gemfile +# requires nomono Y". Prefer the locked compatible version when present, then +# activate it explicitly before requiring the Bundler DSL extension used below. +nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] +nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) +if File.file?(nomono_lockfile) + nomono_locked_spec = Bundler::LockfileParser + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } + nomono_locked = nomono_locked_spec && + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked +end +Kernel.send(:gem, 'nomono', *nomono_activation_requirements) +require 'nomono/bundler' local_gems = %w[kettle-dev kettle-test kettle-soup-cover kettle-drift] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) local_gems_to_eval = local_gems - %w[ast-merge-git] - declared_gems -# export KETTLE_DEV_DEV=/path/to/kettle-rb +# export KETTLE_DEV_DEV=/path/to/my platform :mri do eval_nomono_gems( gems: local_gems_to_eval, diff --git a/gems/ast-merge-git/gemfiles/modular/documentation.gemfile b/gems/ast-merge-git/gemfiles/modular/documentation.gemfile index dff5cc108..9d4535f12 100644 --- a/gems/ast-merge-git/gemfiles/modular/documentation.gemfile +++ b/gems/ast-merge-git/gemfiles/modular/documentation.gemfile @@ -7,17 +7,17 @@ # # Documentation -gem 'kramdown', '~> 2.5', '>= 2.5.1', require: false # Ruby >= 2.5 +gem 'kramdown', '~> 2.5', '>= 2.5.2', require: false # Ruby >= 2.5 gem 'kramdown-parser-gfm', '~> 1.1', require: false # Ruby >= 2.3 -gem 'yaml-converter', '~> 0.1', require: false # Ruby >= 3.2 -gem 'yard', '~> 0.9', '>= 0.9.44', require: false +gem 'yaml-converter', '~> 0.2', '>= 0.2.3', require: false # Ruby >= 3.2 +gem 'yard', '~> 0.9', '>= 0.9.45', require: false gem 'yard-junk', '~> 0.1', '>= 0.1.0', require: false # Ruby >= 3.1 gem 'yard-relative_markdown_links', '~> 0.6', require: false if ENV.fetch('GALTZO_FLOSS_DEV', 'false').casecmp('false').zero? - gem 'yard-fence', '~> 0.9', '>= 0.9.1', require: false # Ruby >= 3.2 - gem 'yard-timekeeper', '~> 0.1', require: false - gem 'yard-yaml', '~> 0.1', '>= 0.1.2', require: false + gem 'yard-fence', '~> 0.9', '>= 0.9.6', require: false # Ruby >= 3.2 + gem 'yard-timekeeper', '~> 0.2', '>= 0.2.4', require: false + gem 'yard-yaml', '~> 0.2', '>= 0.2.3', require: false else eval_gemfile 'documentation_local.gemfile' end diff --git a/gems/ast-merge-git/gemfiles/modular/documentation_local.gemfile b/gems/ast-merge-git/gemfiles/modular/documentation_local.gemfile index 4d4c2bd95..abee56f26 100644 --- a/gems/ast-merge-git/gemfiles/modular/documentation_local.gemfile +++ b/gems/ast-merge-git/gemfiles/modular/documentation_local.gemfile @@ -3,13 +3,35 @@ # Local path overrides for development. # Loaded by the associated non-local gemfile when GALTZO_FLOSS_DEV != "false". -require 'nomono/bundler' unless defined?(Nomono) +# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. +# Bundler records that dependency during Gemfile evaluation, but it does not +# activate that exact version before the immediate `require "nomono/bundler"`. +# If multiple compatible nomono versions are installed, RubyGems may activate +# the newest installed version while Gemfile.lock pins an older compatible one; +# Bundler then aborts with "already activated nomono X, but your Gemfile +# requires nomono Y". Prefer the locked compatible version when present, then +# activate it explicitly before requiring the Bundler DSL extension used below. +nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] +nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) +if File.file?(nomono_lockfile) + nomono_locked_spec = Bundler::LockfileParser + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } + nomono_locked = nomono_locked_spec && + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked +end +Kernel.send(:gem, 'nomono', *nomono_activation_requirements) +require 'nomono/bundler' local_gems = %w[yard-fence yard-timekeeper yard-yaml] +declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) +local_gems_to_eval = local_gems - %w[ast-merge-git] - declared_gems # export GALTZO_FLOSS_DEV=/path/to/galtzo-floss eval_nomono_gems( - gems: local_gems, + gems: local_gems_to_eval, prefix: 'GALTZO_FLOSS', path_env: 'GALTZO_FLOSS_DEV', vendored_gems_env: 'GALTZO_FLOSS_VENDORED_GEMS', diff --git a/gems/ast-merge-git/gemfiles/modular/erb/r3/v5.0.gemfile b/gems/ast-merge-git/gemfiles/modular/erb/r3/v5.0.gemfile index 0e3bf1b97..ec7ff451f 100644 --- a/gems/ast-merge-git/gemfiles/modular/erb/r3/v5.0.gemfile +++ b/gems/ast-merge-git/gemfiles/modular/erb/r3/v5.0.gemfile @@ -1 +1 @@ -gem 'erb', '~> 6.0', '>= 6.0.4' # ruby >= 3.2.0 +gem 'erb', '~> 6.0', '>= 6.0.6' # ruby >= 3.2.0 diff --git a/gems/ast-merge-git/gemfiles/modular/erb/r4/v5.0.gemfile b/gems/ast-merge-git/gemfiles/modular/erb/r4/v5.0.gemfile index 0e3bf1b97..ec7ff451f 100644 --- a/gems/ast-merge-git/gemfiles/modular/erb/r4/v5.0.gemfile +++ b/gems/ast-merge-git/gemfiles/modular/erb/r4/v5.0.gemfile @@ -1 +1 @@ -gem 'erb', '~> 6.0', '>= 6.0.4' # ruby >= 3.2.0 +gem 'erb', '~> 6.0', '>= 6.0.6' # ruby >= 3.2.0 diff --git a/gems/ast-merge-git/gemfiles/modular/json/truffleruby_22_3.gemfile b/gems/ast-merge-git/gemfiles/modular/json/truffleruby_22_3.gemfile new file mode 100644 index 000000000..9b2f8d96a --- /dev/null +++ b/gems/ast-merge-git/gemfiles/modular/json/truffleruby_22_3.gemfile @@ -0,0 +1,6 @@ +# frozen_string_literal: true + +if RUBY_ENGINE == 'truffleruby' && RUBY_ENGINE_VERSION.start_with?('22.3') + # TruffleRuby 22.3 ships the json default gem from its emulated MRI Ruby. + gem 'json', '= 2.5.1' +end diff --git a/gems/ast-merge-git/gemfiles/modular/json/truffleruby_23_0.gemfile b/gems/ast-merge-git/gemfiles/modular/json/truffleruby_23_0.gemfile new file mode 100644 index 000000000..d787a5ef4 --- /dev/null +++ b/gems/ast-merge-git/gemfiles/modular/json/truffleruby_23_0.gemfile @@ -0,0 +1,6 @@ +# frozen_string_literal: true + +if RUBY_ENGINE == 'truffleruby' && RUBY_ENGINE_VERSION.start_with?('23.0') + # TruffleRuby 23.0 ships the json default gem from its emulated MRI Ruby. + gem 'json', '= 2.6.1' +end diff --git a/gems/ast-merge-git/gemfiles/modular/json/truffleruby_23_1.gemfile b/gems/ast-merge-git/gemfiles/modular/json/truffleruby_23_1.gemfile new file mode 100644 index 000000000..d78486b0e --- /dev/null +++ b/gems/ast-merge-git/gemfiles/modular/json/truffleruby_23_1.gemfile @@ -0,0 +1,6 @@ +# frozen_string_literal: true + +if RUBY_ENGINE == 'truffleruby' && RUBY_ENGINE_VERSION.start_with?('23.1') + # TruffleRuby 23.1 ships the json default gem from its emulated MRI Ruby. + gem 'json', '= 2.6.3' +end diff --git a/gems/ast-merge-git/gemfiles/modular/optional.gemfile b/gems/ast-merge-git/gemfiles/modular/optional.gemfile index d254d7d3c..9ea429538 100644 --- a/gems/ast-merge-git/gemfiles/modular/optional.gemfile +++ b/gems/ast-merge-git/gemfiles/modular/optional.gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -# To retain during ast-merge-git templating: +# To retain during kettle-jem templating: # kettle-jem:freeze # # ... your code # kettle-jem:unfreeze @@ -10,7 +10,6 @@ # Required for curated binstubs generated by kettle-jem install gem 'rbs', '>= 3.0', require: false # ruby >= 3.1 -gem 'stone_checksums', '~> 1.0', '>= 1.0.3', require: false # ruby >= 2.2 # Required for kettle-pre-release # URL parsing with Unicode support (falls back to URI if not available) diff --git a/gems/ast-merge-git/gemfiles/modular/runtime_heads.gemfile b/gems/ast-merge-git/gemfiles/modular/runtime_heads.gemfile index f5084bf14..ebf17c529 100644 --- a/gems/ast-merge-git/gemfiles/modular/runtime_heads.gemfile +++ b/gems/ast-merge-git/gemfiles/modular/runtime_heads.gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -# To retain during ast-merge-git templating: +# To retain during kettle-jem templating: # kettle-jem:freeze # # ... your code # kettle-jem:unfreeze @@ -8,7 +8,4 @@ # Test against HEAD of runtime dependencies so we can proactively file bugs -# Ruby >= 2.2 -gem 'version_gem', github: 'ruby-oauth/version_gem', branch: 'main' - eval_gemfile('x_std_libs/vHEAD.gemfile') diff --git a/gems/ast-merge-git/gemfiles/modular/style.gemfile b/gems/ast-merge-git/gemfiles/modular/style.gemfile index a740fe017..4dbcc02c0 100644 --- a/gems/ast-merge-git/gemfiles/modular/style.gemfile +++ b/gems/ast-merge-git/gemfiles/modular/style.gemfile @@ -1,27 +1,30 @@ # frozen_string_literal: true -# To retain during ast-merge-git templating: +# To retain during kettle-jem templating: # kettle-jem:freeze # # ... your code # kettle-jem:unfreeze # -# We run rubocop on the latest version of Ruby, -# but in support of the oldest supported version of Ruby +# Style tasks run on the latest Ruby; RuboCop-LTS selects the compatibility +# rules for the configured Ruby floor independently from task dependency floors. -gem 'reek', '~> 6.5' +gem 'reek', '~> 6.5', '>= 6.5.0' platform :mri do - gem 'rubocop-on-rbs', '~> 2.0' # ruby >= 3.2.0 + gem 'appraisal2-rubocop', '~> 1.0', '>= 1.0.0', require: false + gem 'rubocop-gradual', '~> 0.4', '>= 0.4.0' + gem 'rubocop-minitest', '~> 0.40', '>= 0.40.0' + gem 'rubocop-on-rbs', '~> 2.0', '>= 2.0.0' # ruby >= 3.2.0 # gem "rubocop", "~> 1.73", ">= 1.73.2" # constrained by standard gem 'rubocop-packaging', '~> 0.6', '>= 0.6.0' - gem 'standard', '>= 1.50' + gem 'standard', '~> 1.56', '>= 1.56.0' if ENV.fetch('RUBOCOP_LTS_LOCAL', 'false').casecmp('false').zero? - gem 'rubocop-lts', '~> 24.1.0' - # "rubocop-lts-rspec" can't add here until other gems are updated. - gem 'rubocop-rspec', '~> 3.6' - gem 'rubocop-ruby3_2', '~> 3.0.0' + declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) + gem 'rubocop-lts', '~> 24.2', '>= 24.2.1' unless declared_gems.include?('rubocop-lts') + gem 'rubocop-lts-rspec', '~> 1.0', '>= 1.0.5' unless declared_gems.include?('rubocop-lts-rspec') + gem 'rubocop-ruby3_2', '~> 3.0', '>= 3.0.6' unless declared_gems.include?('rubocop-ruby3_2') else eval_gemfile('style_local.gemfile') end diff --git a/gems/ast-merge-git/gemfiles/modular/style_local.gemfile b/gems/ast-merge-git/gemfiles/modular/style_local.gemfile index ce75bbe21..fb5e432a6 100644 --- a/gems/ast-merge-git/gemfiles/modular/style_local.gemfile +++ b/gems/ast-merge-git/gemfiles/modular/style_local.gemfile @@ -1,19 +1,41 @@ # frozen_string_literal: true -# We run rubocop on the latest version of Ruby, -# but in support of the oldest supported version of Ruby +# Style tasks run on the latest Ruby; RuboCop-LTS selects the compatibility +# rules for the configured Ruby floor independently from task dependency floors. # Local path overrides for development. # Loaded by the associated non-local gemfile when RUBOCOP_LTS_LOCAL != "false". -require 'nomono/bundler' unless defined?(Nomono) +# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. +# Bundler records that dependency during Gemfile evaluation, but it does not +# activate that exact version before the immediate `require "nomono/bundler"`. +# If multiple compatible nomono versions are installed, RubyGems may activate +# the newest installed version while Gemfile.lock pins an older compatible one; +# Bundler then aborts with "already activated nomono X, but your Gemfile +# requires nomono Y". Prefer the locked compatible version when present, then +# activate it explicitly before requiring the Bundler DSL extension used below. +nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] +nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) +if File.file?(nomono_lockfile) + nomono_locked_spec = Bundler::LockfileParser + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } + nomono_locked = nomono_locked_spec && + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked +end +Kernel.send(:gem, 'nomono', *nomono_activation_requirements) +require 'nomono/bundler' local_gems = %w[rubocop-lts rubocop-lts-rspec rubocop-ruby3_2 standard-rubocop-lts] +declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) +local_gems_to_eval = local_gems - %w[ast-merge-git] - declared_gems # export VENDORED_GEMS=rubocop-lts,rubocop-lts-rspec,rubocop-ruby3_2,standard-rubocop-lts platform :mri do eval_nomono_gems( - gems: local_gems, + gems: local_gems_to_eval, prefix: 'RUBOCOP_LTS', path_env: 'RUBOCOP_LTS_LOCAL', vendored_gems_env: 'VENDORED_GEMS', diff --git a/gems/ast-merge-git/gemfiles/modular/templating.gemfile b/gems/ast-merge-git/gemfiles/modular/templating.gemfile index 2ddc9433f..a672de184 100644 --- a/gems/ast-merge-git/gemfiles/modular/templating.gemfile +++ b/gems/ast-merge-git/gemfiles/modular/templating.gemfile @@ -12,13 +12,13 @@ end if kettle_remote # Template/plugin checks for released installs. - gem 'kettle-drift', '~> 1.0', '>= 1.0.5', require: false + gem 'kettle-drift', '~> 1.0', '>= 1.0.6', require: false end # Set STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local development with path-based dependencies. # When false (default / CI), released kettle-jem brings merge gems and parser dependencies. # Local path overrides bring the same dependencies from sibling gemspecs. # -# Set KETTLE_DEV_DEV=/path/to/kettle-rb for local development with Kettle plugin gems. +# Set KETTLE_DEV_DEV=/path/to/my for local development with Kettle plugin gems. # When false (default / CI), released Kettle plugin gems are used. eval_gemfile 'templating_local.gemfile' unless structuredmerge_remote && kettle_remote diff --git a/gems/ast-merge-git/gemfiles/modular/templating_local.gemfile b/gems/ast-merge-git/gemfiles/modular/templating_local.gemfile index 7d1f61d98..81c35f81e 100644 --- a/gems/ast-merge-git/gemfiles/modular/templating_local.gemfile +++ b/gems/ast-merge-git/gemfiles/modular/templating_local.gemfile @@ -4,7 +4,27 @@ # Loaded by the associated non-local gemfile when STRUCTUREDMERGE_DEV or KETTLE_DEV_DEV # is not "false". -require 'nomono/bundler' unless defined?(Nomono) +# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. +# Bundler records that dependency during Gemfile evaluation, but it does not +# activate that exact version before the immediate `require "nomono/bundler"`. +# If multiple compatible nomono versions are installed, RubyGems may activate +# the newest installed version while Gemfile.lock pins an older compatible one; +# Bundler then aborts with "already activated nomono X, but your Gemfile +# requires nomono Y". Prefer the locked compatible version when present, then +# activate it explicitly before requiring the Bundler DSL extension used below. +nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] +nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) +if File.file?(nomono_lockfile) + nomono_locked_spec = Bundler::LockfileParser + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } + nomono_locked = nomono_locked_spec && + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked +end +Kernel.send(:gem, 'nomono', *nomono_activation_requirements) +require 'nomono/bundler' structuredmerge_local_gems = %w[ tree_haver diff --git a/gems/ast-merge-git/gemfiles/modular/webrick/r4/v1.9.gemfile b/gems/ast-merge-git/gemfiles/modular/webrick/r4/v1.9.gemfile new file mode 100644 index 000000000..b1329ba84 --- /dev/null +++ b/gems/ast-merge-git/gemfiles/modular/webrick/r4/v1.9.gemfile @@ -0,0 +1 @@ +gem 'webrick', '~> 1.9' diff --git a/gems/ast-merge-git/gemfiles/modular/webrick/vHEAD.gemfile b/gems/ast-merge-git/gemfiles/modular/webrick/vHEAD.gemfile new file mode 100644 index 000000000..c7e6f81a1 --- /dev/null +++ b/gems/ast-merge-git/gemfiles/modular/webrick/vHEAD.gemfile @@ -0,0 +1 @@ +gem 'webrick', '>= 1.9' diff --git a/gems/ast-merge-git/gemfiles/modular/x_std_libs/r4/libs.gemfile b/gems/ast-merge-git/gemfiles/modular/x_std_libs/r4/libs.gemfile index bd4e884df..e2f6501eb 100644 --- a/gems/ast-merge-git/gemfiles/modular/x_std_libs/r4/libs.gemfile +++ b/gems/ast-merge-git/gemfiles/modular/x_std_libs/r4/libs.gemfile @@ -2,3 +2,5 @@ eval_gemfile '../../erb/r4/v5.0.gemfile' eval_gemfile '../../mutex_m/r4/v0.3.gemfile' eval_gemfile '../../stringio/r4/v3.0.gemfile' eval_gemfile '../../benchmark/r4/v0.5.gemfile' +eval_gemfile '../../cgi/r4/v0.5.gemfile' +eval_gemfile '../../webrick/r4/v1.9.gemfile' diff --git a/gems/ast-merge-git/gemfiles/modular/x_std_libs/vHEAD.gemfile b/gems/ast-merge-git/gemfiles/modular/x_std_libs/vHEAD.gemfile index 91f383c11..ab75cccf1 100644 --- a/gems/ast-merge-git/gemfiles/modular/x_std_libs/vHEAD.gemfile +++ b/gems/ast-merge-git/gemfiles/modular/x_std_libs/vHEAD.gemfile @@ -2,3 +2,5 @@ eval_gemfile '../erb/vHEAD.gemfile' eval_gemfile '../mutex_m/vHEAD.gemfile' eval_gemfile '../stringio/vHEAD.gemfile' eval_gemfile '../benchmark/vHEAD.gemfile' +eval_gemfile '../cgi/vHEAD.gemfile' +eval_gemfile '../webrick/vHEAD.gemfile' diff --git a/gems/ast-merge-git/lib/ast/merge/git/version.rb b/gems/ast-merge-git/lib/ast/merge/git/version.rb index 9e917693b..ebc548487 100644 --- a/gems/ast-merge-git/lib/ast/merge/git/version.rb +++ b/gems/ast-merge-git/lib/ast/merge/git/version.rb @@ -4,7 +4,7 @@ module Ast module Merge module Git module Version - VERSION = "7.1.0" + VERSION = '7.1.0' end VERSION = Version::VERSION # Traditional Constant Location end diff --git a/gems/bash-merge/.kettle-drift.lock b/gems/bash-merge/.kettle-drift.lock index 9be384c91..2ee9dae31 100644 --- a/gems/bash-merge/.kettle-drift.lock +++ b/gems/bash-merge/.kettle-drift.lock @@ -1,130 +1,10 @@ { - "(direct_sibling_local ||\nENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?)": [ - { - "file": "Gemfile", - "lines": [ - 80, - 120, - 160, - 200, - 240, - 280, - 320, - 360, - 400 - ] - } - ], - ".find { |spec| spec.name == 'nomono' }\nnomono_locked = nomono_locked_spec &&": [ - { - "file": "Gemfile", - "lines": [ - 91, - 131, - 171, - 211, - 251, - 291, - 331, - 371, - 411 - ] - } - ], - "ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?)\ndirect_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV')": [ - { - "file": "Gemfile", - "lines": [ - 81, - 121, - 161, - 201, - 241, - 281, - 321, - 361, - 401 - ] - } - ], - "Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version)\nnomono_activation_requirements = [\"= #{nomono_locked_spec.version}\"] if nomono_locked": [ - { - "file": "Gemfile", - "lines": [ - 93, - 133, - 173, - 213, - 253, - 293, - 333, - 373, - 413 - ] - } - ], - "Kernel.send(:gem, 'nomono', *nomono_activation_requirements)\nrequire 'nomono/bundler'": [ - { - "file": "Gemfile", - "lines": [ - 96, - 136, - 176, - 216, - 256, - 296, - 336, - 376, - 416 - ] - } - ], - "direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV')\ndirect_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil)": [ - { - "file": "Gemfile", - "lines": [ - 82, - 122, - 162, - 202, - 242, - 282, - 322, - 362, - 402 - ] - } - ], "eval_nomono_gems(\ngems: direct_sibling_gems,": [ { "file": "Gemfile", "lines": [ 60, - 100, - 140, - 180, - 220, - 260, - 300, - 340, - 380, - 420 - ] - } - ], - "gems: direct_sibling_gems,\nprefix: 'STRUCTUREDMERGE',": [ - { - "file": "Gemfile", - "lines": [ - 101, - 141, - 181, - 221, - 261, - 301, - 341, - 381, - 421 + 100 ] } ], @@ -133,31 +13,7 @@ "file": "Gemfile", "lines": [ 43, - 87, - 127, - 167, - 207, - 247, - 287, - 327, - 367, - 407 - ] - } - ], - "if direct_sibling_dev_was_set\nENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original": [ - { - "file": "Gemfile", - "lines": [ - 110, - 150, - 190, - 230, - 270, - 310, - 350, - 390, - 430 + 87 ] } ], @@ -166,15 +22,7 @@ "file": "Gemfile", "lines": [ 35, - 79, - 119, - 159, - 199, - 239, - 279, - 319, - 359, - 399 + 79 ] } ], @@ -183,31 +31,7 @@ "file": "Gemfile", "lines": [ 69, - 109, - 149, - 189, - 229, - 269, - 309, - 349, - 389, - 429 - ] - } - ], - "nomono_activation_requirements = nomono_requirements\nnomono_lockfile = File.expand_path('Gemfile.lock', __dir__)": [ - { - "file": "Gemfile", - "lines": [ - 85, - 125, - 165, - 205, - 245, - 285, - 325, - 365, - 405 + 109 ] } ], @@ -216,15 +40,7 @@ "file": "Gemfile", "lines": [ 48, - 92, - 132, - 172, - 212, - 252, - 292, - 332, - 372, - 412 + 92 ] } ], @@ -233,95 +49,7 @@ "file": "Gemfile", "lines": [ 44, - 88, - 128, - 168, - 208, - 248, - 288, - 328, - 368, - 408 - ] - } - ], - "nomono_lockfile = File.expand_path('Gemfile.lock', __dir__)\nif File.file?(nomono_lockfile)": [ - { - "file": "Gemfile", - "lines": [ - 86, - 126, - 166, - 206, - 246, - 286, - 326, - 366, - 406 - ] - } - ], - "path_env: 'STRUCTUREDMERGE_DEV',\nroot: %w[src my structuredmerge]": [ - { - "file": "Gemfile", - "lines": [ - 103, - 143, - 183, - 223, - 263, - 303, - 343, - 383, - 423 - ] - } - ], - "prefix: 'STRUCTUREDMERGE',\npath_env: 'STRUCTUREDMERGE_DEV',": [ - { - "file": "Gemfile", - "lines": [ - 102, - 142, - 182, - 222, - 262, - 302, - 342, - 382, - 422 - ] - } - ], - "require 'nomono/bundler'\nENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local": [ - { - "file": "Gemfile", - "lines": [ - 97, - 137, - 177, - 217, - 257, - 297, - 337, - 377, - 417 - ] - } - ], - "rescue LoadError\nwarn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.'": [ - { - "file": "Gemfile", - "lines": [ - 106, - 146, - 186, - 226, - 266, - 306, - 346, - 386, - 426 + 88 ] } ], @@ -329,8 +57,8 @@ { "file": "gemfiles/modular/templating_local.gemfile", "lines": [ - 58, - 69 + 55, + 66 ] } ] diff --git a/gems/bash-merge/.structuredmerge/kettle-jem.yml b/gems/bash-merge/.structuredmerge/kettle-jem.yml index 11d9d916a..b7d640fd2 100644 --- a/gems/bash-merge/.structuredmerge/kettle-jem.yml +++ b/gems/bash-merge/.structuredmerge/kettle-jem.yml @@ -246,6 +246,59 @@ templates: - Gemfile - certs/pboling.pem - tmp/.gitignore + - gemfiles/modular/benchmark/r4/v0.5.gemfile + - gemfiles/modular/benchmark/vHEAD.gemfile + - gemfiles/modular/cgi/r4/v0.5.gemfile + - gemfiles/modular/cgi/vHEAD.gemfile + - gemfiles/modular/coverage.gemfile + - gemfiles/modular/coverage_local.gemfile + - gemfiles/modular/debug.gemfile + - gemfiles/modular/documentation.gemfile + - gemfiles/modular/documentation_local.gemfile + - gemfiles/modular/erb/r2.3/default.gemfile + - gemfiles/modular/erb/r2.6/v2.2.gemfile + - gemfiles/modular/erb/r2/v3.0.gemfile + - gemfiles/modular/erb/r3.1/v4.0.gemfile + - gemfiles/modular/erb/r3/v5.0.gemfile + - gemfiles/modular/erb/r4/v5.0.gemfile + - gemfiles/modular/erb/vHEAD.gemfile + - gemfiles/modular/json/truffleruby_22_3.gemfile + - gemfiles/modular/json/truffleruby_23_0.gemfile + - gemfiles/modular/json/truffleruby_23_1.gemfile + - gemfiles/modular/mutex_m/r2.4/v0.1.gemfile + - gemfiles/modular/mutex_m/r2/v0.3.gemfile + - gemfiles/modular/mutex_m/r3/v0.3.gemfile + - gemfiles/modular/mutex_m/r4/v0.3.gemfile + - gemfiles/modular/mutex_m/vHEAD.gemfile + - gemfiles/modular/optional.gemfile + - gemfiles/modular/recording/r2.3/recording.gemfile + - gemfiles/modular/recording/r2.4/recording.gemfile + - gemfiles/modular/recording/r2.5/recording.gemfile + - gemfiles/modular/recording/r3/recording.gemfile + - gemfiles/modular/recording/r4/recording.gemfile + - gemfiles/modular/recording/vHEAD.gemfile + - gemfiles/modular/rspec.gemfile + - gemfiles/modular/runtime_heads.gemfile + - gemfiles/modular/stringio/r2.4/v0.0.2.gemfile + - gemfiles/modular/stringio/r2/v3.0.gemfile + - gemfiles/modular/stringio/r3/v3.0.gemfile + - gemfiles/modular/stringio/r4/v3.0.gemfile + - gemfiles/modular/stringio/vHEAD.gemfile + - gemfiles/modular/style.gemfile + - gemfiles/modular/style_local.gemfile + - gemfiles/modular/templating.gemfile + - gemfiles/modular/templating_local.gemfile + - gemfiles/modular/webrick/r4/v1.9.gemfile + - gemfiles/modular/webrick/vHEAD.gemfile + - gemfiles/modular/x_std_libs.gemfile + - gemfiles/modular/x_std_libs/r2.3/libs.gemfile + - gemfiles/modular/x_std_libs/r2.4/libs.gemfile + - gemfiles/modular/x_std_libs/r2.6/libs.gemfile + - gemfiles/modular/x_std_libs/r2/libs.gemfile + - gemfiles/modular/x_std_libs/r3.1/libs.gemfile + - gemfiles/modular/x_std_libs/r3/libs.gemfile + - gemfiles/modular/x_std_libs/r4/libs.gemfile + - gemfiles/modular/x_std_libs/vHEAD.gemfile - source: lib/gem/version.rb target: lib/bash/merge/version.rb - source: sig/gem.rbs diff --git a/gems/bash-merge/Gemfile b/gems/bash-merge/Gemfile index 1ae73d47b..7643beb21 100644 --- a/gems/bash-merge/Gemfile +++ b/gems/bash-merge/Gemfile @@ -6,7 +6,7 @@ # kettle-jem will then preserve content between those markers across template runs. # kettle-jem:unfreeze -source 'https://gem.coop' +source "https://gem.coop" git_source(:codeberg) { |repo_name| "https://codeberg.org/#{repo_name}" } git_source(:gitlab) { |repo_name| "https://gitlab.com/#{repo_name}" } @@ -19,18 +19,62 @@ git_source(:gitlab) { |repo_name| "https://gitlab.com/#{repo_name}" } gemspec # Local workspace dependency wiring for *_local.gemfile overrides -nomono_requirements = ['~> 1.0', '>= 1.0.8'] -gem 'nomono', *nomono_requirements, require: false # ruby >= 2.2 +nomono_requirements = ["~> 1.0", ">= 1.0.8"] +gem "nomono", *nomono_requirements, require: false # ruby >= 2.2 # Direct sibling dependencies (env-switched via STRUCTUREDMERGE_DEV) direct_sibling_gems = %w[ ast-merge tree_haver ] -direct_sibling_dev = ENV.fetch('STRUCTUREDMERGE_DEV', '') +direct_sibling_dev = ENV.fetch("STRUCTUREDMERGE_DEV", "") direct_sibling_local = !direct_sibling_dev.empty? && !%w[false 0 no off].include?(direct_sibling_dev.downcase) -direct_sibling_templating = ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? +direct_sibling_templating = ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? + +if direct_sibling_gems.any? && + (direct_sibling_local || + ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero?) + direct_sibling_dev_was_set = ENV.key?("STRUCTUREDMERGE_DEV") + direct_sibling_dev_original = ENV.fetch("STRUCTUREDMERGE_DEV", nil) + begin + nomono_activation_requirements = nomono_requirements + nomono_lockfile = File.expand_path("Gemfile.lock", __dir__) + if File.file?(nomono_lockfile) + nomono_locked_spec = Bundler::LockfileParser + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == "nomono" } + nomono_locked = nomono_locked_spec && + Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) + if nomono_locked + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] + end + end + Kernel.send(:gem, "nomono", *nomono_activation_requirements) + require "nomono/bundler" + if direct_sibling_templating && !direct_sibling_local + ENV["STRUCTUREDMERGE_DEV"] = File.expand_path("..", __dir__) + end + + eval_nomono_gems( + gems: direct_sibling_gems, + prefix: "STRUCTUREDMERGE", + path_env: "STRUCTUREDMERGE_DEV", + root: ["src", "my", "structuredmerge"] + ) + rescue LoadError + warn "Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies." + ensure + if direct_sibling_templating && !direct_sibling_local + if direct_sibling_dev_was_set + ENV["STRUCTUREDMERGE_DEV"] = direct_sibling_dev_original + else + ENV.delete("STRUCTUREDMERGE_DEV") + end + end + end +end if direct_sibling_gems.any? && (direct_sibling_local || @@ -73,28 +117,28 @@ if direct_sibling_gems.any? && end # Use released TSLP with the Ruby ABI platform-gem fix. -gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' +gem "tree_sitter_language_pack", "~> 1.13", ">= 1.13.3" # Templating (env-switched: STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local paths) -eval_gemfile 'gemfiles/modular/templating.gemfile' if ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? +eval_gemfile "gemfiles/modular/templating.gemfile" if ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? # Debugging -eval_gemfile 'gemfiles/modular/debug.gemfile' +eval_gemfile "gemfiles/modular/debug.gemfile" # Code Coverage (env-switched: KETTLE_DEV_DEV=true for local paths) -eval_gemfile 'gemfiles/modular/coverage.gemfile' +eval_gemfile "gemfiles/modular/coverage.gemfile" # Linting -eval_gemfile 'gemfiles/modular/style.gemfile' +eval_gemfile "gemfiles/modular/style.gemfile" # Documentation -eval_gemfile 'gemfiles/modular/documentation.gemfile' +eval_gemfile "gemfiles/modular/documentation.gemfile" # Optional -eval_gemfile 'gemfiles/modular/optional.gemfile' +eval_gemfile "gemfiles/modular/optional.gemfile" ### Std Lib Extracted Gems -eval_gemfile 'gemfiles/modular/x_std_libs.gemfile' +eval_gemfile "gemfiles/modular/x_std_libs.gemfile" # See unlocked_deps appraisal for more details on irb inclusion -gem 'irb', '~> 1.17' # ruby >= 2.7 +gem "irb", "~> 1.17" # ruby >= 2.7 diff --git a/gems/bash-merge/Gemfile.lock b/gems/bash-merge/Gemfile.lock index 7fa545fae..60ec6e4a8 100644 --- a/gems/bash-merge/Gemfile.lock +++ b/gems/bash-merge/Gemfile.lock @@ -6,6 +6,265 @@ PATH tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.14) +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly + specs: + ast-crispr-markdown-markly (7.1.0) + ast-crispr (= 7.1.0) + markly-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism + specs: + ast-crispr-ruby-prism (7.1.0) + ast-crispr (= 7.1.0) + prism-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr + specs: + ast-crispr (7.1.0) + ast-merge (= 7.1.0) + service_actor (~> 3.9) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git + specs: + ast-merge-git (7.1.0) + ast-merge (= 7.1.0) + json-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge + specs: + ast-merge (7.1.0) + benchmark + token-resolver (~> 2.0, >= 2.0.4) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template + specs: + ast-template (7.1.0) + ast-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge + specs: + binary-merge (7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge + specs: + citrus-toml-merge (7.1.0) + toml-merge (= 7.1.0) + toml-rb (~> 4.1) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge + specs: + commonmarker-merge (7.1.0) + commonmarker (~> 2.2) + markdown-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge + specs: + dotenv-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge + specs: + go-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge + specs: + json-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem + specs: + kettle-jem (7.1.0) + addressable (>= 2.8, < 3) + ast-crispr-markdown-markly (= 7.1.0) + ast-crispr-ruby-prism (= 7.1.0) + ast-merge (= 7.1.0) + bash-merge (= 7.1.0) + citrus-toml-merge (= 7.1.0) + commonmarker-merge (= 7.1.0) + dotenv-merge (= 7.1.0) + json-merge (= 7.1.0) + kettle-dev (~> 2.3, >= 2.3.5) + kettle-rb (~> 0.1, >= 0.1.4) + kramdown-merge (= 7.1.0) + markdown-merge (= 7.1.0) + markly-merge (= 7.1.0) + prism-merge (= 7.1.0) + psych-merge (= 7.1.0) + rbs (>= 3.10) + rbs-merge (= 7.1.0) + ruby-merge (= 7.1.0) + token-resolver (~> 2.0, >= 2.0.4) + toml-merge (= 7.1.0) + toml-rb (~> 4.2) + tree_haver (= 7.1.0) + yaml-merge (= 7.1.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge + specs: + kramdown-merge (7.1.0) + kramdown (~> 2.5) + markdown-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge + specs: + markdown-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge + specs: + markly-merge (7.1.0) + markdown-merge (= 7.1.0) + markly (~> 0.9) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge + specs: + parslet-toml-merge (7.1.0) + toml (~> 0.3) + toml-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge + specs: + plain-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge + specs: + prism-merge (7.1.0) + prism (~> 1.6) + ruby-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge + specs: + psych-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + yaml-merge (= 7.1.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge + specs: + rbs-merge (7.1.0) + ast-merge (= 7.1.0) + rbs (>= 3.10) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge + specs: + ruby-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge + specs: + rust-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb + specs: + smorg-rb (7.1.0) + ast-merge (= 7.1.0) + ast-merge-git (= 7.1.0) + go-merge (= 7.1.0) + json-merge (= 7.1.0) + kettle-jem (= 7.1.0) + markly-merge (= 7.1.0) + plain-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge + specs: + toml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver + specs: + tree_haver (7.1.0) + citrus (~> 3.0) + parslet (~> 2.0) + tree_sitter_language_pack (>= 1.13.2, < 2.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge + specs: + typescript-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge + specs: + yaml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge + specs: + zip-merge (7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + GEM remote: https://gem.coop/ specs: @@ -17,11 +276,6 @@ GEM rake (>= 10) thor (>= 0.14) ast (2.4.3) - ast-merge (7.1.0) - benchmark - token-resolver (~> 2.0, >= 2.0.4) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) backports (3.25.3) benchmark (0.5.0) bigdecimal (4.1.2) @@ -30,6 +284,7 @@ GEM thor (~> 1.0) citrus (3.0.2) cmdparse (3.0.7) + commonmarker (2.9.0-x86_64-linux) concurrent-ruby (1.3.8) date (3.5.1) debug (1.11.1) @@ -93,6 +348,8 @@ GEM kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) + kettle-drift (1.0.6) + version_gem (~> 1.1, >= 1.1.14) kettle-rb (0.1.4) kettle-soup-cover (1.1.3) simplecov (~> 0.22) @@ -121,6 +378,7 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) + markly (0.16.0) mutex_m (0.3.0) nokogiri (1.19.4-aarch64-linux-gnu) racc (~> 1.4) @@ -128,13 +386,11 @@ GEM racc (~> 1.4) nokogiri (1.19.4-arm64-darwin) racc (~> 1.4) - nokogiri (1.19.4-x86_64-darwin) - racc (~> 1.4) nokogiri (1.19.4-x86_64-linux-gnu) racc (~> 1.4) nokogiri (1.19.4-x86_64-linux-musl) racc (~> 1.4) - nomono (1.0.8) + nomono (1.0.9) openssl (4.0.2) ostruct (0.6.3) parallel (1.28.0) @@ -257,6 +513,8 @@ GEM ruby-progressbar (1.13.0) ruby_engine (2.0.3) ruby_version (1.0.3) + service_actor (3.9.4) + zeitwerk (>= 1.0) silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) @@ -309,17 +567,15 @@ GEM token-resolver (2.0.4) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.13) - tree_haver (7.1.0) - citrus (~> 3.0) - parslet (~> 2.0) - tree_sitter_language_pack (>= 1.13.2, < 2.0) - version_gem (~> 1.1, >= 1.1.9) + toml (0.3.0) + parslet (>= 1.8.0, < 3.0.0) + toml-rb (4.2.0) + citrus (~> 3.0, > 3.0) + racc (~> 1.7) tree_sitter_language_pack (1.13.3-aarch64-linux) sorbet-runtime (~> 0.5) tree_sitter_language_pack (1.13.3-arm64-darwin) sorbet-runtime (~> 0.5) - tree_sitter_language_pack (1.13.3-x86_64-darwin) - sorbet-runtime (~> 0.5) tree_sitter_language_pack (1.13.3-x86_64-linux) sorbet-runtime (~> 0.5) tsort (0.2.0) @@ -361,30 +617,52 @@ PLATFORMS aarch64-linux-gnu aarch64-linux-musl arm64-darwin - x86_64-darwin + x86_64-linux x86_64-linux-gnu x86_64-linux-musl DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.2, >= 3.2.0) + ast-crispr! + ast-crispr-markdown-markly! + ast-crispr-ruby-prism! + ast-merge! + ast-merge-git! + ast-template! bash-merge! benchmark (~> 0.5, >= 0.5.0) + binary-merge! bundler-audit (~> 0.9.3) + citrus-toml-merge! + commonmarker-merge! debug (>= 1.1) + dotenv-merge! erb (~> 6.0, >= 6.0.4) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.4) + go-merge! irb (~> 1.17) + json-merge! kettle-dev (~> 2.3, >= 2.3.7) + kettle-drift (~> 1.0, >= 1.0.5) + kettle-jem! kettle-soup-cover (~> 1.0, >= 1.1.3) kettle-test (~> 2.0, >= 2.0.11) kramdown (~> 2.5, >= 2.5.1) + kramdown-merge! kramdown-parser-gfm (~> 1.1) + markdown-merge! + markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) + parslet-toml-merge! + plain-merge! + prism-merge! + psych-merge! rake (~> 13.0) rbs (>= 3.0) + rbs-merge! rdoc (~> 6.11) reek (~> 6.5) require_bench (~> 1.0, >= 1.0.4) @@ -393,33 +671,50 @@ DEPENDENCIES rubocop-packaging (~> 0.6, >= 0.6.0) rubocop-rspec (~> 3.6) rubocop-ruby3_2 (~> 3.0.0) + ruby-merge! ruby-progressbar (~> 1.13) + rust-merge! + smorg-rb! standard (>= 1.50) stone_checksums (~> 1.0, >= 1.0.6, >= 1.0.3) stringio (>= 3.0) + toml-merge! + tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) turbo_tests2 (~> 3.2, >= 3.2.0) + typescript-merge! yaml-converter (~> 0.1) + yaml-merge! yard (~> 0.9, >= 0.9.44) yard-fence (~> 0.9, >= 0.9.1) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) yard-timekeeper (~> 0.1) yard-yaml (~> 0.1, >= 0.1.2) + zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af ansi (1.6.0) sha256=ac9ea0c0ea8d32fb4e271348e609963ac78882f34b73836c2a02b3622e666658 appraisal2 (3.2.0) sha256=ccd0b767ac4060cd7af6d16747459b6990f49c39c7b4fb1f7d1146b1e97c492f ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 + ast-crispr (7.1.0) + ast-crispr-markdown-markly (7.1.0) + ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) + ast-merge-git (7.1.0) + ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd + binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 + citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 + commonmarker (2.9.0-x86_64-linux) + commonmarker-merge (7.1.0) concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 @@ -427,6 +722,7 @@ CHECKSUMS diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 docile (1.4.1) sha256=96159be799bfa73cdb721b840e9802126e4e03dfc26863db73647204c727f21e + dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -439,42 +735,54 @@ CHECKSUMS gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f + go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 + json-merge (7.1.0) kettle-dev (2.3.7) sha256=eb370113cd030d03cbe2d33b31c99858951017e5ad21a17e9ed89dc3770028ee + kettle-drift (1.0.6) + kettle-jem (7.1.0) kettle-rb (0.1.4) sha256=9cef7ce4f7021666b7222292f29051e51eaf042e8a5db11f3f4dd72f74243fc1 kettle-soup-cover (1.1.3) sha256=a373827da22a7131d093afd32945e5b7d7a10a01ebfdded8fd2cb8230d69c8ad kettle-test (2.0.11) sha256=c710c90f7ab79d51f9452f0c09f5f90657e7a893f63583855c164d0b1b107ab2 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa + kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 + markdown-merge (7.1.0) + markly (0.16.0) + markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-aarch64-linux-gnu) sha256=1269fb644a6de405057a53dd5c762b1209b43ca7424f839454d3dbc677c31a8f nokogiri (1.19.4-aarch64-linux-musl) sha256=35c65b9ce72b3bb03207bdbe7067915019dc18c1b9b59139684bd6690fdd01af nokogiri (1.19.4-arm64-darwin) sha256=a46db9853286e6597b36ebc6953817d15acf3a299583eb3f89fdc6f91dd63527 - nokogiri (1.19.4-x86_64-darwin) sha256=7fd17057d3e1f00e9954a74b3cd76595d3d4a5ef233b7ed9599047c204f70551 nokogiri (1.19.4-x86_64-linux-gnu) sha256=379fae440b28915e3f19d752ce2dcf8465ed2b2fbefd2a7ca0dd497bc981a06a nokogiri (1.19.4-x86_64-linux-musl) sha256=17dfb7c1fa194ae02fbf7c51a7afc8d278045ab3fdacfd86f91d02d7b274470b - nomono (1.0.8) sha256=bf4b9b426cbf216ab17b70db474f691b8ae1f1e29de8db4b0ecd405e6e7e1c80 + nomono (1.0.9) openssl (4.0.2) sha256=1037ad2868ae58df9ad917891c0c0f9815a1172f6846d4bcdd508e4c2ee747c2 ostruct (0.6.3) sha256=95a2ed4a4bd1d190784e666b47b2d3f078e4a9efda2fccf18f84ddc6538ed912 parallel (1.28.0) sha256=33e6de1484baf2524792d178b0913fc8eb94c628d6cfe45599ad4458c638c970 parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 + parslet-toml-merge (7.1.0) + plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 + prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 + psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 + rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb @@ -502,9 +810,12 @@ CHECKSUMS rubocop-rspec (3.10.2) sha256=0b3e2ecc592cd10ecbf0095bb58d1e357905276e069643523cc19eb7495f65e2 rubocop-ruby3_2 (3.0.7) sha256=f53dd6d286fb05186214fc6ec116783e7f837030918e8931c05de773e98f8466 rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 + ruby-merge (7.1.0) ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 + rust-merge (7.1.0) + service_actor (3.9.4) silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (0.22.0) sha256=fe2622c7834ff23b98066bb0a854284b2729a569ac659f82621fc22ef36213a5 simplecov-cobertura (3.2.0) sha256=70d702658677fcb20e5aceb6915ccf8bc62ff2ccd38b62b3ad5c9db5c0888740 @@ -513,6 +824,7 @@ CHECKSUMS simplecov-lcov (0.9.0) sha256=7a77a31e200a595ed4b0249493056efd0c920601f53d2ef135ca34ee796346cd simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_json_formatter (0.1.4) sha256=529418fbe8de1713ac2b2d612aa3daa56d316975d307244399fa4838c601b428 + smorg-rb (7.1.0) sorbet-runtime (0.6.13347) sha256=54e7221d9f4b63f58aec79f3043752a9ba7810347c6ae0d903531591cc2d5f01 standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b @@ -526,17 +838,21 @@ CHECKSUMS timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.4) sha256=33b926958f504525bba3ed511ab66fbcbf8ef30390815e931436b30f27ffcad0 + toml (0.3.0) + toml-merge (7.1.0) + toml-rb (4.2.0) tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-aarch64-linux) sha256=55ffc7c87868cb45658338363d9eba51b4a8b0259aa88e4de368d2bd1d52fea4 tree_sitter_language_pack (1.13.3-arm64-darwin) sha256=bc2498db605f212a1dbd2465ed3f65190d7da786f6ed5d30fcf958121aeb4a5c - tree_sitter_language_pack (1.13.3-x86_64-darwin) sha256=061f7da6e1cc4ba936fad436ee0653d7dfdfa4aa879cf555403e3aa373d43966 tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 + typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 + yaml-merge (7.1.0) yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd @@ -544,6 +860,7 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 + zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH diff --git a/gems/bash-merge/Rakefile b/gems/bash-merge/Rakefile index 056589299..3301f1a7e 100644 --- a/gems/bash-merge/Rakefile +++ b/gems/bash-merge/Rakefile @@ -130,23 +130,23 @@ end ### DUPLICATE DRIFT TASKS begin - require 'kettle/drift' + require "kettle/drift" Kettle::Drift.install_tasks rescue LoadError - desc('(stub) kettle:drift:check is unavailable') - task('kettle:drift:check') do + desc("(stub) kettle:drift:check is unavailable") + task("kettle:drift:check") do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc('(stub) kettle:drift:update is unavailable') - task('kettle:drift:update') do + desc("(stub) kettle:drift:update is unavailable") + task("kettle:drift:update") do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc('(stub) kettle:drift:force_update is unavailable') - task('kettle:drift:force_update') do + desc("(stub) kettle:drift:force_update is unavailable") + task("kettle:drift:force_update") do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc('(stub) kettle:drift is unavailable') - task('kettle:drift' => 'kettle:drift:update') + desc("(stub) kettle:drift is unavailable") + task("kettle:drift" => "kettle:drift:update") end ### TEMPLATING TASKS diff --git a/gems/bash-merge/lib/bash/merge/version.rb b/gems/bash-merge/lib/bash/merge/version.rb index 55b28eb7d..54229c5dd 100644 --- a/gems/bash-merge/lib/bash/merge/version.rb +++ b/gems/bash-merge/lib/bash/merge/version.rb @@ -3,7 +3,7 @@ module Bash module Merge module Version - VERSION = '7.1.0' + VERSION = "7.1.0" end VERSION = Version::VERSION # Traditional Constant Location end diff --git a/gems/json-merge/Gemfile.lock b/gems/json-merge/Gemfile.lock index 63bac2522..c7c31e8b4 100644 --- a/gems/json-merge/Gemfile.lock +++ b/gems/json-merge/Gemfile.lock @@ -6,24 +6,6 @@ PATH tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) -PATH - remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/ast-merge - specs: - ast-merge (7.1.0) - benchmark - token-resolver (~> 2.0, >= 2.0.4) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/tree_haver - specs: - tree_haver (7.1.0) - citrus (~> 3.0) - parslet (~> 2.0) - tree_sitter_language_pack (>= 1.13.2, < 2.0) - version_gem (~> 1.1, >= 1.1.9) - GEM remote: https://gem.coop/ specs: @@ -39,6 +21,11 @@ GEM rubocop (>= 1.0) version_gem (~> 1.1, >= 1.1.14) ast (2.4.3) + ast-merge (7.1.0) + benchmark + token-resolver (~> 2.0, >= 2.0.4) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) backports (3.25.3) benchmark (0.5.0) bigdecimal (4.1.2) @@ -354,6 +341,11 @@ GEM token-resolver (2.0.5) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.14) + tree_haver (7.1.0) + citrus (~> 3.0) + parslet (~> 2.0) + tree_sitter_language_pack (>= 1.13.2, < 2.0) + version_gem (~> 1.1, >= 1.1.9) tree_sitter_language_pack (1.13.3-aarch64-linux) sorbet-runtime (~> 0.5) tree_sitter_language_pack (1.13.3-arm64-darwin) @@ -412,7 +404,6 @@ DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) appraisal2-rubocop (~> 1.0, >= 1.0.0) - ast-merge! benchmark (~> 0.5, >= 0.5.0) bundler-audit (~> 0.9.3) cgi (~> 0.5) @@ -445,7 +436,6 @@ DEPENDENCIES standard (~> 1.56, >= 1.56.0) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) - tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) webrick (~> 1.9) yaml-converter (~> 0.2, >= 0.2.3) diff --git a/gems/plain-merge/.kettle-drift.lock b/gems/plain-merge/.kettle-drift.lock index 2ee9dae31..43dfedd67 100644 --- a/gems/plain-merge/.kettle-drift.lock +++ b/gems/plain-merge/.kettle-drift.lock @@ -52,14 +52,5 @@ 88 ] } - ], - "vendored_gems_env: 'VENDORED_GEMS',\nvendor_gem_dir_env: 'VENDOR_GEM_DIR',": [ - { - "file": "gemfiles/modular/templating_local.gemfile", - "lines": [ - 55, - 66 - ] - } ] } diff --git a/gems/plain-merge/Gemfile.lock b/gems/plain-merge/Gemfile.lock index 22a00467a..3d2206f77 100644 --- a/gems/plain-merge/Gemfile.lock +++ b/gems/plain-merge/Gemfile.lock @@ -6,38 +6,6 @@ PATH tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly - specs: - ast-crispr-markdown-markly (7.1.0) - ast-crispr (= 7.1.0) - markly-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism - specs: - ast-crispr-ruby-prism (7.1.0) - ast-crispr (= 7.1.0) - prism-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr - specs: - ast-crispr (7.1.0) - ast-merge (= 7.1.0) - service_actor (~> 3.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git - specs: - ast-merge-git (7.1.0) - ast-merge (= 7.1.0) - json-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - PATH remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge specs: @@ -47,192 +15,6 @@ PATH tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template - specs: - ast-template (7.1.0) - ast-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge - specs: - bash-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge - specs: - binary-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge - specs: - citrus-toml-merge (7.1.0) - toml-merge (= 7.1.0) - toml-rb (~> 4.1) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge - specs: - commonmarker-merge (7.1.0) - commonmarker (~> 2.2) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge - specs: - dotenv-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge - specs: - go-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge - specs: - json-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem - specs: - kettle-jem (7.1.0) - addressable (>= 2.8, < 3) - ast-crispr-markdown-markly (= 7.1.0) - ast-crispr-ruby-prism (= 7.1.0) - ast-merge (= 7.1.0) - bash-merge (= 7.1.0) - citrus-toml-merge (= 7.1.0) - commonmarker-merge (= 7.1.0) - dotenv-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-dev (~> 2.3, >= 2.3.5) - kettle-rb (~> 0.1, >= 0.1.4) - kramdown-merge (= 7.1.0) - markdown-merge (= 7.1.0) - markly-merge (= 7.1.0) - prism-merge (= 7.1.0) - psych-merge (= 7.1.0) - rbs (>= 3.10) - rbs-merge (= 7.1.0) - ruby-merge (= 7.1.0) - token-resolver (~> 2.0, >= 2.0.4) - toml-merge (= 7.1.0) - toml-rb (~> 4.2) - tree_haver (= 7.1.0) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge - specs: - kramdown-merge (7.1.0) - kramdown (~> 2.5) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge - specs: - markdown-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge - specs: - markly-merge (7.1.0) - markdown-merge (= 7.1.0) - markly (~> 0.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge - specs: - parslet-toml-merge (7.1.0) - toml (~> 0.3) - toml-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge - specs: - prism-merge (7.1.0) - prism (~> 1.6) - ruby-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge - specs: - psych-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge - specs: - rbs-merge (7.1.0) - ast-merge (= 7.1.0) - rbs (>= 3.10) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge - specs: - ruby-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge - specs: - rust-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb - specs: - smorg-rb (7.1.0) - ast-merge (= 7.1.0) - ast-merge-git (= 7.1.0) - go-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-jem (= 7.1.0) - markly-merge (= 7.1.0) - plain-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge - specs: - toml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - PATH remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver specs: @@ -242,29 +24,6 @@ PATH tree_sitter_language_pack (>= 1.13.2, < 2.0) version_gem (~> 1.1, >= 1.1.9) -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge - specs: - typescript-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge - specs: - yaml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge - specs: - zip-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - GEM remote: https://gem.coop/ specs: @@ -275,6 +34,10 @@ GEM bundler (>= 1.17.3) rake (>= 10) thor (>= 0.14) + appraisal2-rubocop (1.0.0) + appraisal2 (>= 3.1.4) + rubocop (>= 1.0) + version_gem (~> 1.1, >= 1.1.14) ast (2.4.3) backports (3.25.3) benchmark (0.5.0) @@ -282,14 +45,9 @@ GEM bundler-audit (0.9.3) bundler (>= 1.2.0) thor (~> 1.0) + cgi (0.5.2) citrus (3.0.2) cmdparse (3.0.7) - commonmarker (2.9.0-aarch64-linux) - commonmarker (2.9.0-aarch64-linux-musl) - commonmarker (2.9.0-arm64-darwin) - commonmarker (2.9.0-x86_64-darwin) - commonmarker (2.9.0-x86_64-linux) - commonmarker (2.9.0-x86_64-linux-musl) concurrent-ruby (1.3.8) date (3.5.1) debug (1.11.1) @@ -298,7 +56,6 @@ GEM delegate (0.6.1) diff-lcs (1.6.2) diffy (3.4.4) - docile (1.4.1) dry-configurable (1.4.0) dry-core (~> 1.0) zeitwerk (~> 2.6) @@ -329,7 +86,7 @@ GEM dry-logic (~> 1.4) zeitwerk (~> 2.6) emoji_regex (15.0.0) - erb (6.0.5) + erb (6.0.6) gem_bench (2.0.5) bundler (>= 1.14) version_gem (~> 1.1, >= 1.1.4) @@ -353,18 +110,14 @@ GEM kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) - kettle-drift (1.0.6) - version_gem (~> 1.1, >= 1.1.14) kettle-rb (0.1.4) - kettle-soup-cover (1.1.3) - simplecov (~> 0.22) - simplecov-cobertura (~> 3.0) - simplecov-console (~> 0.9, >= 0.9.3) - simplecov-html (~> 0.13, >= 0.13.1) - simplecov-lcov (~> 0.8) + kettle-soup-cover (3.0.4) + kettle-wash (~> 0.1, >= 0.1.0) + simplecov (>= 1.0) + simplecov-cobertura (>= 4.0) + simplecov-console (~> 0.9, >= 0.9.5) simplecov-rcov (~> 0.3, >= 0.3.7) - simplecov_json_formatter (~> 0.1, >= 0.1.4) - version_gem (~> 1.1, >= 1.1.9) + simplecov_lcov_formatter (~> 0.9, >= 0.9.0) kettle-test (2.0.11) appraisal2 (~> 3.0, >= 3.0.6) backports (~> 3.0) @@ -376,6 +129,8 @@ GEM silent_stream (~> 1.0, >= 1.0.12) timecop-rspec (~> 1.0, >= 1.0.3) turbo_tests2 (~> 3.1, >= 3.1.12) + kettle-wash (0.1.1) + version_gem (~> 1.1, >= 1.1.14) kramdown (2.5.2) rexml (>= 3.4.4) kramdown-parser-gfm (1.1.0) @@ -383,7 +138,6 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) - markly (0.16.0) mutex_m (0.3.0) nokogiri (1.19.4-aarch64-linux-gnu) racc (~> 1.4) @@ -391,13 +145,11 @@ GEM racc (~> 1.4) nokogiri (1.19.4-arm64-darwin) racc (~> 1.4) - nokogiri (1.19.4-x86_64-darwin) - racc (~> 1.4) nokogiri (1.19.4-x86_64-linux-gnu) racc (~> 1.4) nokogiri (1.19.4-x86_64-linux-musl) racc (~> 1.4) - nomono (1.0.8) + nomono (1.0.9) openssl (4.0.2) ostruct (0.6.3) parallel (1.28.0) @@ -473,6 +225,14 @@ GEM rubocop-ast (1.50.0) parser (>= 3.3.7.2) prism (~> 1.7) + rubocop-capybara (2.23.0) + lint_roller (~> 1.1) + rubocop (~> 1.81) + rubocop-env (0.1.0) + rubocop + rubocop-factory_bot (2.28.0) + lint_roller (~> 1.1) + rubocop (~> 1.72, >= 1.72.1) rubocop-gradual (0.4.0) benchmark diff-lcs (>= 1.2.0, < 2.0) @@ -480,13 +240,26 @@ GEM parallel (~> 1.10) rainbow (>= 2.2.2, < 4.0) rubocop (~> 1.0) - rubocop-lts (24.1.0) - rubocop-ruby3_2 (>= 3.0.0, < 4) - standard-rubocop-lts (>= 2.0.2, < 3) - version_gem (>= 1.1.2, < 3) + rubocop-lts (24.2.2) + rubocop-ruby3_2 (~> 3.0, >= 3.0.1) + standard-rubocop-lts (~> 2.0, >= 2.0.3) + version_gem (~> 1.1, >= 1.1.13) + rubocop-lts-rspec (1.0.5) + rubocop (~> 1.84, >= 1.84.2) + rubocop-env (~> 0.1, >= 0.1.0) + rubocop-factory_bot (~> 2.28, >= 2.28.0) + rubocop-rspec (~> 3.9, >= 3.9.0) + rubocop-rspec-extra (~> 0.3, >= 0.3.0) + standard (~> 1.54, >= 1.54.0) + standard-rspec (~> 0.5, >= 0.5.0) + version_gem (~> 1.1, >= 1.1.13) rubocop-md (2.0.4) lint_roller (~> 1.1) rubocop (>= 1.72.1) + rubocop-minitest (0.40.0) + lint_roller (~> 1.1) + rubocop (>= 1.75.0, < 2.0) + rubocop-ast (>= 1.38.0, < 2.0) rubocop-on-rbs (2.0.0) lint_roller (~> 1.1) rbs (~> 4.0) @@ -506,6 +279,13 @@ GEM lint_roller (~> 1.1) regexp_parser (>= 2.0) rubocop (~> 1.86, >= 1.86.2) + rubocop-rspec-extra (0.3.0) + lint_roller (~> 1.1) + rubocop (>= 1.72.1, < 2.0) + rubocop-rspec_rails (2.32.0) + lint_roller (~> 1.1) + rubocop (~> 1.72, >= 1.72.1) + rubocop-rspec (~> 3.5) rubocop-ruby3_2 (3.0.7) rubocop-gradual (~> 0.3, >= 0.3.6) rubocop-md (~> 2.0, >= 2.0.4) @@ -520,27 +300,21 @@ GEM ruby-progressbar (1.13.0) ruby_engine (2.0.3) ruby_version (1.0.3) - service_actor (3.9.4) - zeitwerk (>= 1.0) silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) - simplecov (0.22.0) - docile (~> 1.1) - simplecov-html (~> 0.11) - simplecov_json_formatter (~> 0.1) - simplecov-cobertura (3.2.0) + simplecov (1.0.2) + simplecov-cobertura (4.0.0) rexml - simplecov (~> 0.19) + simplecov (~> 1.0) simplecov-console (0.9.5) ansi simplecov terminal-table - simplecov-html (0.13.2) - simplecov-lcov (0.9.0) simplecov-rcov (0.3.7) simplecov (>= 0.4.1) - simplecov_json_formatter (0.1.4) + simplecov_lcov_formatter (0.9.0) + simplecov (>= 0.18) sorbet-runtime (0.6.13347) standard (1.56.0) language_server-protocol (~> 3.17.0.2) @@ -554,6 +328,12 @@ GEM standard-performance (1.9.0) lint_roller (~> 1.1) rubocop-performance (~> 1.26.0) + standard-rspec (0.5.0) + lint_roller (>= 1.0) + rubocop-capybara (~> 2.23) + rubocop-factory_bot (~> 2.27) + rubocop-rspec (~> 3.9) + rubocop-rspec_rails (~> 2.31) standard-rubocop-lts (2.0.10) standard (~> 1.54, >= 1.54.0) standard-custom (~> 1.0, >= 1.0.2) @@ -574,17 +354,10 @@ GEM token-resolver (2.0.4) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.13) - toml (0.3.0) - parslet (>= 1.8.0, < 3.0.0) - toml-rb (4.2.0) - citrus (~> 3.0, > 3.0) - racc (~> 1.7) tree_sitter_language_pack (1.13.3-aarch64-linux) sorbet-runtime (~> 0.5) tree_sitter_language_pack (1.13.3-arm64-darwin) sorbet-runtime (~> 0.5) - tree_sitter_language_pack (1.13.3-x86_64-darwin) - sorbet-runtime (~> 0.5) tree_sitter_language_pack (1.13.3-x86_64-linux) sorbet-runtime (~> 0.5) tsort (0.2.0) @@ -596,6 +369,7 @@ GEM unicode-emoji (~> 4.1) unicode-emoji (4.2.0) version_gem (1.1.14) + webrick (1.9.2) yaml-converter (0.2.3) hexapdf (>= 1.8, < 2) kramdown (>= 2.4, < 3) @@ -626,116 +400,78 @@ PLATFORMS aarch64-linux-gnu aarch64-linux-musl arm64-darwin - x86_64-darwin + x86_64-linux x86_64-linux-gnu x86_64-linux-musl DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) - ast-crispr! - ast-crispr-markdown-markly! - ast-crispr-ruby-prism! + appraisal2-rubocop (~> 1.0, >= 1.0.0) ast-merge! - ast-merge-git! - ast-template! - bash-merge! benchmark (~> 0.5, >= 0.5.0) - binary-merge! bundler-audit (~> 0.9.3) - citrus-toml-merge! - commonmarker-merge! + cgi (~> 0.5) debug (>= 1.1) - dotenv-merge! - erb (~> 6.0, >= 6.0.4) + erb (~> 6.0, >= 6.0.6) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.0) - go-merge! irb (~> 1.17) - json-merge! kettle-dev (~> 2.0, >= 2.2.25) - kettle-drift (~> 1.0, >= 1.0.5) - kettle-jem! - kettle-soup-cover (~> 1.0, >= 1.1.3) + kettle-soup-cover (~> 3.0, >= 3.0.3) kettle-test (~> 2.0, >= 2.0.9) - kramdown (~> 2.5, >= 2.5.1) - kramdown-merge! + kramdown (~> 2.5, >= 2.5.2) kramdown-parser-gfm (~> 1.1) - markdown-merge! - markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) - parslet-toml-merge! plain-merge! - prism-merge! - psych-merge! rake (~> 13.0) rbs (>= 3.0) - rbs-merge! rdoc (~> 6.11) - reek (~> 6.5) + reek (~> 6.5, >= 6.5.0) require_bench (~> 1.0, >= 1.0.4) - rubocop-lts (~> 24.1.0) - rubocop-on-rbs (~> 2.0) + rubocop-gradual (~> 0.4, >= 0.4.0) + rubocop-lts (~> 24.2, >= 24.2.1) + rubocop-lts-rspec (~> 1.0, >= 1.0.5) + rubocop-minitest (~> 0.40, >= 0.40.0) + rubocop-on-rbs (~> 2.0, >= 2.0.0) rubocop-packaging (~> 0.6, >= 0.6.0) - rubocop-rspec (~> 3.6) - rubocop-ruby3_2 (~> 3.0.0) - ruby-merge! + rubocop-ruby3_2 (~> 3.0, >= 3.0.6) ruby-progressbar (~> 1.13) - rust-merge! - smorg-rb! - standard (>= 1.50) + standard (~> 1.56, >= 1.56.0) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) - toml-merge! tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) - typescript-merge! - yaml-converter (~> 0.1) - yaml-merge! - yard (~> 0.9, >= 0.9.44) - yard-fence (~> 0.9, >= 0.9.1) + webrick (~> 1.9) + yaml-converter (~> 0.2, >= 0.2.3) + yard (~> 0.9, >= 0.9.45) + yard-fence (~> 0.9, >= 0.9.6) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) - yard-timekeeper (~> 0.1) - yard-yaml (~> 0.1, >= 0.1.2) - zip-merge! + yard-timekeeper (~> 0.2, >= 0.2.4) + yard-yaml (~> 0.2, >= 0.2.3) CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af ansi (1.6.0) sha256=ac9ea0c0ea8d32fb4e271348e609963ac78882f34b73836c2a02b3622e666658 appraisal2 (3.2.0) sha256=ccd0b767ac4060cd7af6d16747459b6990f49c39c7b4fb1f7d1146b1e97c492f + appraisal2-rubocop (1.0.0) sha256=b71410fbb014befda5340605a605b7f6f3f012739baf0acc5b4351b592c3258d ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 - ast-crispr (7.1.0) - ast-crispr-markdown-markly (7.1.0) - ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) - ast-merge-git (7.1.0) - ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 - bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd - binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 + cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 - citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 - commonmarker (2.9.0-aarch64-linux) sha256=e2b4aadb9a2cfa4e206582641ce3a49465549ac1ed4c289fdd63b78d8f24579c - commonmarker (2.9.0-aarch64-linux-musl) sha256=1cf4d2821f2a7e64945f1ed7c4eeced586fdb27ea7fe7337788802cf8f57cfca - commonmarker (2.9.0-arm64-darwin) sha256=1748dbfa4f5813b0d2a14bb4bbfa65a4ec293aa1c825016d60029ee0e132b046 - commonmarker (2.9.0-x86_64-darwin) sha256=0a9914ccfd2f5d2a59c7bd0dda4fe90eb084cf513b477e499008e09ec9d6edd6 - commonmarker (2.9.0-x86_64-linux) sha256=8cfe92970eef585a19ddf6613224b91cab64d6029834661bda801f877c9c7f43 - commonmarker (2.9.0-x86_64-linux-musl) sha256=293921398b839f79ceaf55010e061357e34f053822c3b003cd0be6686176335e - commonmarker-merge (7.1.0) concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 - docile (1.4.1) sha256=96159be799bfa73cdb721b840e9802126e4e03dfc26863db73647204c727f21e - dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -744,59 +480,47 @@ CHECKSUMS dry-schema (1.16.0) sha256=cd3aaeabc0f1af66ec82a29096d4c4fb92a0a58b9dae29a22b1bbceb78985727 dry-types (1.9.1) sha256=baebeecdb9f8395d6c9d227b62011279440943e3ef2468fe8ccc1ba11467f178 emoji_regex (15.0.0) sha256=a508b2c0bee561169564e0aec96085020c900520d335e5533fd8e78e59493829 - erb (6.0.5) sha256=858e63488cb796c9daba8b6e9ff4b3879c395022049be9a66a8e00980e612eac + erb (6.0.6) sha256=a9b24986700f5bf127c4f297c5403c3ca41b83b0a316c0cd09a096b56e644ae5 gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f - go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 - json-merge (7.1.0) kettle-dev (2.3.7) sha256=eb370113cd030d03cbe2d33b31c99858951017e5ad21a17e9ed89dc3770028ee - kettle-drift (1.0.6) sha256=46eda08fa4411d1f3c6682a95eef1c9df4e94611b3949f49d4c7b43c0ed356a3 - kettle-jem (7.1.0) kettle-rb (0.1.4) sha256=9cef7ce4f7021666b7222292f29051e51eaf042e8a5db11f3f4dd72f74243fc1 - kettle-soup-cover (1.1.3) sha256=a373827da22a7131d093afd32945e5b7d7a10a01ebfdded8fd2cb8230d69c8ad + kettle-soup-cover (3.0.4) kettle-test (2.0.11) sha256=c710c90f7ab79d51f9452f0c09f5f90657e7a893f63583855c164d0b1b107ab2 + kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa - kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 - markdown-merge (7.1.0) - markly (0.16.0) sha256=6f70d79e385b1efc9e171f74c81628826259039fe6c778e03c3924c71dac5511 - markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-aarch64-linux-gnu) sha256=1269fb644a6de405057a53dd5c762b1209b43ca7424f839454d3dbc677c31a8f nokogiri (1.19.4-aarch64-linux-musl) sha256=35c65b9ce72b3bb03207bdbe7067915019dc18c1b9b59139684bd6690fdd01af nokogiri (1.19.4-arm64-darwin) sha256=a46db9853286e6597b36ebc6953817d15acf3a299583eb3f89fdc6f91dd63527 - nokogiri (1.19.4-x86_64-darwin) sha256=7fd17057d3e1f00e9954a74b3cd76595d3d4a5ef233b7ed9599047c204f70551 nokogiri (1.19.4-x86_64-linux-gnu) sha256=379fae440b28915e3f19d752ce2dcf8465ed2b2fbefd2a7ca0dd497bc981a06a nokogiri (1.19.4-x86_64-linux-musl) sha256=17dfb7c1fa194ae02fbf7c51a7afc8d278045ab3fdacfd86f91d02d7b274470b - nomono (1.0.8) sha256=bf4b9b426cbf216ab17b70db474f691b8ae1f1e29de8db4b0ecd405e6e7e1c80 + nomono (1.0.9) openssl (4.0.2) sha256=1037ad2868ae58df9ad917891c0c0f9815a1172f6846d4bcdd508e4c2ee747c2 ostruct (0.6.3) sha256=95a2ed4a4bd1d190784e666b47b2d3f078e4a9efda2fccf18f84ddc6538ed912 parallel (1.28.0) sha256=33e6de1484baf2524792d178b0913fc8eb94c628d6cfe45599ad4458c638c970 parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 - parslet-toml-merge (7.1.0) plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 - prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 - psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 - rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb @@ -814,35 +538,37 @@ CHECKSUMS rspec_junit_formatter (0.6.0) sha256=40dde674e6ae4e6cc0ff560da25497677e34fefd2338cc467a8972f602b62b15 rubocop (1.88.2) sha256=8def251c90cd955feb4daa3edc0ab56893250c4ce90ef81e6c80c03f9a939bbf rubocop-ast (1.50.0) sha256=b9ca88300da0803ee222ad20cdb30494c0a784eed06fdc35d254b06d662788db + rubocop-capybara (2.23.0) sha256=f9ea1ba3a7561ee8e88cf76fc378ce517ce5327155f305ee7b5c2500e5aee357 + rubocop-env (0.1.0) sha256=5ab9a259e71822bf514c8e900a9b68cc2f74ccc87d5493efcd03213f3068e718 + rubocop-factory_bot (2.28.0) sha256=4b17fc02124444173317e131759d195b0d762844a71a29fe8139c1105d92f0cb rubocop-gradual (0.4.0) sha256=9c7e584e6fef6c2539266a193a4572c970c22f99046fd6b0305bdde6228f96ad - rubocop-lts (24.1.0) sha256=9dcad4db2da2fe2f1f77f98c917d70e7c43eded703da14cd201d4be52a9272aa + rubocop-lts (24.2.2) sha256=be6c745e1bb61daebd6af3cc3227c60f95be9f642a080773cad7df14c5f9f174 + rubocop-lts-rspec (1.0.5) sha256=439552fd27440802cc499889e013bffa28aadc41adae5d4dfff3d984a2a809b4 rubocop-md (2.0.4) sha256=0d076b6b5e99dea2ddc928c4bd702497decb9a8400da7808091e02ebcafcfb93 + rubocop-minitest (0.40.0) sha256=353c698199115f12151144cf0b5a96f69bb9d77b660cf6536df2c4250c672a9d rubocop-on-rbs (2.0.0) sha256=ce74d1b3d5daead19f4b611623656c185821dfc9aed9c7079bb1e5d7d7c464be rubocop-packaging (0.6.0) sha256=fb92bd0fb48e6f8cdb1648d2249b0cd51c2497dcc87340132d22f01edbf558a7 rubocop-performance (1.26.1) sha256=cd19b936ff196df85829d264b522fd4f98b6c89ad271fa52744a8c11b8f71834 rubocop-rake (0.7.1) sha256=3797f2b6810c3e9df7376c26d5f44f3475eda59eb1adc38e6f62ecf027cbae4d rubocop-rspec (3.10.2) sha256=0b3e2ecc592cd10ecbf0095bb58d1e357905276e069643523cc19eb7495f65e2 + rubocop-rspec-extra (0.3.0) sha256=ee4b6484d0332a0d23c4a465eeb607e41888eb3d4ed479f850b9f5212514f787 + rubocop-rspec_rails (2.32.0) sha256=4a0d641c72f6ebb957534f539d9d0a62c47abd8ce0d0aeee1ef4701e892a9100 rubocop-ruby3_2 (3.0.7) sha256=f53dd6d286fb05186214fc6ec116783e7f837030918e8931c05de773e98f8466 rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 - ruby-merge (7.1.0) ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 - rust-merge (7.1.0) - service_actor (3.9.4) sha256=e63b523630b9a7e62959b2a90113b08d2565b5de9c148557b281ef847c9539ce silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 - simplecov (0.22.0) sha256=fe2622c7834ff23b98066bb0a854284b2729a569ac659f82621fc22ef36213a5 - simplecov-cobertura (3.2.0) sha256=70d702658677fcb20e5aceb6915ccf8bc62ff2ccd38b62b3ad5c9db5c0888740 + simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 + simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 - simplecov-html (0.13.2) sha256=bd0b8e54e7c2d7685927e8d6286466359b6f16b18cb0df47b508e8d73c777246 - simplecov-lcov (0.9.0) sha256=7a77a31e200a595ed4b0249493056efd0c920601f53d2ef135ca34ee796346cd simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc - simplecov_json_formatter (0.1.4) sha256=529418fbe8de1713ac2b2d612aa3daa56d316975d307244399fa4838c601b428 - smorg-rb (7.1.0) + simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed sorbet-runtime (0.6.13347) sha256=54e7221d9f4b63f58aec79f3043752a9ba7810347c6ae0d903531591cc2d5f01 standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b standard-performance (1.9.0) sha256=49483d31be448292951d80e5e67cdcb576c2502103c7b40aec6f1b6e9c88e3f2 + standard-rspec (0.5.0) sha256=64d396524a65af47f5331b423d8cdd313e0267401647bb7892489ca89dad2973 standard-rubocop-lts (2.0.10) sha256=89708a505b7d8b24d2ac399a7520fcb9e764abc2ecb4289b631b5fe0e3b76617 stone_checksums (1.0.6) sha256=c775f830513d6c6ab26e31d1a5fbecd4c4e39002663d4d9f8fa96e97990b5298 stringio (3.2.0) sha256=c37cb2e58b4ffbd33fe5cd948c05934af997b36e0b6ca6fdf43afa234cf222e1 @@ -852,22 +578,17 @@ CHECKSUMS timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.4) sha256=33b926958f504525bba3ed511ab66fbcbf8ef30390815e931436b30f27ffcad0 - toml (0.3.0) sha256=0a91d0f76a9036e84e44f95693b12f58d358c1df3ac8e3b5271f2056ecc6e4b9 - toml-merge (7.1.0) - toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-aarch64-linux) sha256=55ffc7c87868cb45658338363d9eba51b4a8b0259aa88e4de368d2bd1d52fea4 tree_sitter_language_pack (1.13.3-arm64-darwin) sha256=bc2498db605f212a1dbd2465ed3f65190d7da786f6ed5d30fcf958121aeb4a5c - tree_sitter_language_pack (1.13.3-x86_64-darwin) sha256=061f7da6e1cc4ba936fad436ee0653d7dfdfa4aa879cf555403e3aa373d43966 tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 - typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 + webrick (1.9.2) sha256=beb4a15fc474defed24a3bda4ffd88a490d517c9e4e6118c3edce59e45864131 yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 - yaml-merge (7.1.0) yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd @@ -875,7 +596,6 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 - zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH diff --git a/gems/plain-merge/README.md b/gems/plain-merge/README.md index 9aef5369a..197f6ae4e 100644 --- a/gems/plain-merge/README.md +++ b/gems/plain-merge/README.md @@ -35,7 +35,7 @@ I've summarized my thoughts in [this blog post](https://dev.to/galtzo/hostile-ta | Tokens to Remember | [![Gem name][⛳️name-img]][⛳️gem-name] [![Gem namespace][⛳️namespace-img]][⛳️gem-namespace] | |-------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | Works with MRI Ruby 4 | [![Ruby current Compat][💎ruby-c-i]][🚎11-c-wf]| -| Support & Community | [![Join Me on Daily.dev's RubyFriends][✉️ruby-friends-img]][✉️ruby-friends] [![Live Chat on Discord][✉️discord-invite-img-ftb]][✉️discord-invite] [![Get help from me on Upwork][👨🏼‍🏫expsup-upwork-img]][👨🏼‍🏫expsup-upwork] [![Get help from me on Codementor][👨🏼‍🏫expsup-codementor-img]][👨🏼‍🏫expsup-codementor] | +| Support & Community | [![Join Me on Daily.dev's RubyFriends][✉️ruby-friends-img]][✉️ruby-friends] [![Get help from RubyForum][✉️ruby-forum-img]][✉️ruby-forum] [![Live Chat on Discord][✉️discord-invite-img-ftb]][✉️discord-invite] [![Get help from me on Upwork][👨🏼‍🏫expsup-upwork-img]][👨🏼‍🏫expsup-upwork] [![Get help from me on Codementor][👨🏼‍🏫expsup-codementor-img]][👨🏼‍🏫expsup-codementor] | | Source | [![Source on GitLab.com][📜src-gl-img]][📜src-gl] [![Source on CodeBerg.org][📜src-cb-img]][📜src-cb] [![Source on Github.com][📜src-gh-img]][📜src-gh] [![The best SHA: dQw4w9WgXcQ!][🧮kloc-img]][🧮kloc] | | Documentation | [![Current release on RubyDoc.info][📜docs-cr-rd-img]][🚎yard-current] [![YARD on Galtzo.com][📜docs-head-rd-img]][🚎yard-head] [![Maintainer Blog][🚂maint-blog-img]][🚂maint-blog] [![GitLab Wiki][📜gl-wiki-img]][📜gl-wiki] [![GitHub Wiki][📜gh-wiki-img]][📜gh-wiki] | | Compliance | [![License: AGPL-3.0-only OR PolyForm-Small-Business-1.0.0][📄license-img]][📄license] [![Apache license compatibility: Category X][📄license-compat-img]][📄license-compat] [![📄ilo-declaration-img]][📄ilo-declaration] [![Security Policy][🔐security-img]][🔐security] [![Contributor Covenant 2.1][🪇conduct-img]][🪇conduct] [![SemVer 2.0.0][📌semver-img]][📌semver] | @@ -173,6 +173,8 @@ If none of the available licenses suit your use case, please [contact us](mailto [✉️discord-invite-img-ftb]: https://img.shields.io/discord/1373797679469170758?style=for-the-badge&logo=discord [✉️ruby-friends-img]: https://img.shields.io/badge/daily.dev-%F0%9F%92%8E_Ruby_Friends-0A0A0A?style=for-the-badge&logo=dailydotdev&logoColor=white [✉️ruby-friends]: https://app.daily.dev/squads/rubyfriends +[✉️ruby-forum-img]: https://img.shields.io/badge/RubyForum-Help-CC342D?style=for-the-badge&logo=ruby&logoColor=white +[✉️ruby-forum]: https://www.rubyforum.org/c/help/8 [✇bundle-group-pattern]: https://gist.github.com/pboling/4564780 [⛳️gem-namespace]: https://github.com/structuredmerge/structuredmerge-ruby/tree/main/gems/plain-merge [⛳️namespace-img]: https://img.shields.io/badge/namespace-Plain::Merge-3C2D2D.svg?style=square&logo=ruby&logoColor=white diff --git a/gems/plain-merge/bin/yard b/gems/plain-merge/bin/yard index 5d516ad6f..a7e8b6eed 100755 --- a/gems/plain-merge/bin/yard +++ b/gems/plain-merge/bin/yard @@ -12,4 +12,4 @@ # `yard` / `bin/yard`. Keep this binstub as a handoff to the task so # humans and tools that reach for `bin/yard` still run the full docs # workflow with post-processing hooks. -exec('bundle', 'exec', 'rake', 'yard') +exec("bundle", "exec", "rake", "yard") diff --git a/gems/plain-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile b/gems/plain-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile index b8392fab0..dec650815 100644 --- a/gems/plain-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile +++ b/gems/plain-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.1 -gem 'benchmark', '~> 0.5', '>= 0.5.0' # Removed from Std Lib in Ruby 4.0 +gem "benchmark", "~> 0.5", ">= 0.5.0" # Removed from Std Lib in Ruby 4.0 diff --git a/gems/plain-merge/gemfiles/modular/benchmark/vHEAD.gemfile b/gems/plain-merge/gemfiles/modular/benchmark/vHEAD.gemfile index af214aafa..e1eb20c5e 100644 --- a/gems/plain-merge/gemfiles/modular/benchmark/vHEAD.gemfile +++ b/gems/plain-merge/gemfiles/modular/benchmark/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.1 -gem 'benchmark', github: 'ruby/benchmark', branch: 'master' +gem "benchmark", github: "ruby/benchmark", branch: "master" diff --git a/gems/plain-merge/gemfiles/modular/cgi/r4/v0.5.gemfile b/gems/plain-merge/gemfiles/modular/cgi/r4/v0.5.gemfile new file mode 100644 index 000000000..19ed967c3 --- /dev/null +++ b/gems/plain-merge/gemfiles/modular/cgi/r4/v0.5.gemfile @@ -0,0 +1 @@ +gem "cgi", "~> 0.5" diff --git a/gems/plain-merge/gemfiles/modular/cgi/vHEAD.gemfile b/gems/plain-merge/gemfiles/modular/cgi/vHEAD.gemfile new file mode 100644 index 000000000..ef8b816ce --- /dev/null +++ b/gems/plain-merge/gemfiles/modular/cgi/vHEAD.gemfile @@ -0,0 +1 @@ +gem "cgi", ">= 0.5" diff --git a/gems/plain-merge/gemfiles/modular/coverage.gemfile b/gems/plain-merge/gemfiles/modular/coverage.gemfile index f96d50954..52d737872 100644 --- a/gems/plain-merge/gemfiles/modular/coverage.gemfile +++ b/gems/plain-merge/gemfiles/modular/coverage.gemfile @@ -4,11 +4,11 @@ # Set KETTLE_DEV_DEV=true for local development with path-based dependencies. # When false (default / CI), remote released gems are used. -if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? +if ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false").zero? # Coverage (remote/released) platform :mri do - gem 'kettle-soup-cover', '~> 1.0', '>= 1.1.3', require: false + gem "kettle-soup-cover", "~> 3.0", ">= 3.0.3", require: false end else - eval_gemfile 'coverage_local.gemfile' + eval_gemfile "coverage_local.gemfile" end diff --git a/gems/plain-merge/gemfiles/modular/coverage_local.gemfile b/gems/plain-merge/gemfiles/modular/coverage_local.gemfile index f7cb16530..c333a0abc 100644 --- a/gems/plain-merge/gemfiles/modular/coverage_local.gemfile +++ b/gems/plain-merge/gemfiles/modular/coverage_local.gemfile @@ -3,31 +3,53 @@ # Local path overrides for development. # Loaded by the associated non-local gemfile when KETTLE_DEV_DEV != "false". -require 'nomono/bundler' unless defined?(Nomono) +# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. +# Bundler records that dependency during Gemfile evaluation, but it does not +# activate that exact version before the immediate `require "nomono/bundler"`. +# If multiple compatible nomono versions are installed, RubyGems may activate +# the newest installed version while Gemfile.lock pins an older compatible one; +# Bundler then aborts with "already activated nomono X, but your Gemfile +# requires nomono Y". Prefer the locked compatible version when present, then +# activate it explicitly before requiring the Bundler DSL extension used below. +nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] +nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) +if File.file?(nomono_lockfile) + nomono_locked_spec = Bundler::LockfileParser + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == "nomono" } + nomono_locked = nomono_locked_spec && + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + if nomono_locked + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] + end +end +Kernel.send(:gem, "nomono", *nomono_activation_requirements) +require "nomono/bundler" local_gems = %w[kettle-dev kettle-test kettle-soup-cover kettle-drift] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) local_gems_to_eval = local_gems - %w[plain-merge] - declared_gems -# export KETTLE_DEV_DEV=/path/to/kettle-rb +# export KETTLE_DEV_DEV=/path/to/my platform :mri do eval_nomono_gems( gems: local_gems_to_eval, - prefix: 'KETTLE_DEV', - path_env: 'KETTLE_DEV_DEV', - vendored_gems_env: 'VENDORED_GEMS', - vendor_gem_dir_env: 'VENDOR_GEM_DIR', - debug_env: 'KETTLE_DEV_DEBUG' + prefix: "KETTLE_DEV", + path_env: "KETTLE_DEV_DEV", + vendored_gems_env: "VENDORED_GEMS", + vendor_gem_dir_env: "VENDOR_GEM_DIR", + debug_env: "KETTLE_DEV_DEBUG" ) - if ENV.fetch('GALTZO_FLOSS_DEV', 'false').casecmp('false') != 0 + if ENV.fetch("GALTZO_FLOSS_DEV", "false").casecmp("false") != 0 eval_nomono_gems( gems: %w[turbo_tests2], - prefix: 'GALTZO_FLOSS', - path_env: 'GALTZO_FLOSS_DEV', - vendored_gems_env: 'GALTZO_FLOSS_VENDORED_GEMS', - vendor_gem_dir_env: 'GALTZO_FLOSS_VENDOR_GEM_DIR', - debug_env: 'GALTZO_FLOSS_DEBUG' + prefix: "GALTZO_FLOSS", + path_env: "GALTZO_FLOSS_DEV", + vendored_gems_env: "GALTZO_FLOSS_VENDORED_GEMS", + vendor_gem_dir_env: "GALTZO_FLOSS_VENDOR_GEM_DIR", + debug_env: "GALTZO_FLOSS_DEBUG" ) end end diff --git a/gems/plain-merge/gemfiles/modular/debug.gemfile b/gems/plain-merge/gemfiles/modular/debug.gemfile index eed8d4d1e..4e15b1a3a 100644 --- a/gems/plain-merge/gemfiles/modular/debug.gemfile +++ b/gems/plain-merge/gemfiles/modular/debug.gemfile @@ -13,10 +13,10 @@ platform :mri do # Debugging - Ensure ENV["DEBUG"] == "true" to use debuggers within spec suite # Use binding.break, binding.b, or debugger in code - gem 'debug', '>= 1.1' # ruby >= 2.7 + gem "debug", ">= 1.1" # ruby >= 2.7 # Dev Console - Binding.pry - Irb replacement # gem "pry", "~> 0.14" # ruby >= 2.0 end -gem 'gem_bench', '~> 2.0', '>= 2.0.5' +gem "gem_bench", "~> 2.0", ">= 2.0.5" diff --git a/gems/plain-merge/gemfiles/modular/documentation.gemfile b/gems/plain-merge/gemfiles/modular/documentation.gemfile index dff5cc108..d8215416e 100644 --- a/gems/plain-merge/gemfiles/modular/documentation.gemfile +++ b/gems/plain-merge/gemfiles/modular/documentation.gemfile @@ -7,20 +7,20 @@ # # Documentation -gem 'kramdown', '~> 2.5', '>= 2.5.1', require: false # Ruby >= 2.5 -gem 'kramdown-parser-gfm', '~> 1.1', require: false # Ruby >= 2.3 -gem 'yaml-converter', '~> 0.1', require: false # Ruby >= 3.2 -gem 'yard', '~> 0.9', '>= 0.9.44', require: false -gem 'yard-junk', '~> 0.1', '>= 0.1.0', require: false # Ruby >= 3.1 -gem 'yard-relative_markdown_links', '~> 0.6', require: false +gem "kramdown", "~> 2.5", ">= 2.5.2", require: false # Ruby >= 2.5 +gem "kramdown-parser-gfm", "~> 1.1", require: false # Ruby >= 2.3 +gem "yaml-converter", "~> 0.2", ">= 0.2.3", require: false # Ruby >= 3.2 +gem "yard", "~> 0.9", ">= 0.9.45", require: false +gem "yard-junk", "~> 0.1", ">= 0.1.0", require: false # Ruby >= 3.1 +gem "yard-relative_markdown_links", "~> 0.6", require: false -if ENV.fetch('GALTZO_FLOSS_DEV', 'false').casecmp('false').zero? - gem 'yard-fence', '~> 0.9', '>= 0.9.1', require: false # Ruby >= 3.2 - gem 'yard-timekeeper', '~> 0.1', require: false - gem 'yard-yaml', '~> 0.1', '>= 0.1.2', require: false +if ENV.fetch("GALTZO_FLOSS_DEV", "false").casecmp("false").zero? + gem "yard-fence", "~> 0.9", ">= 0.9.6", require: false # Ruby >= 3.2 + gem "yard-timekeeper", "~> 0.2", ">= 0.2.4", require: false + gem "yard-yaml", "~> 0.2", ">= 0.2.3", require: false else - eval_gemfile 'documentation_local.gemfile' + eval_gemfile "documentation_local.gemfile" end # Std Lib extractions -gem 'rdoc', '~> 6.11', require: false unless ENV.fetch('KJ_FRAMEWORK_MATRIX_GEM', '') == 'rdoc' +gem "rdoc", "~> 6.11", require: false unless ENV.fetch("KJ_FRAMEWORK_MATRIX_GEM", "") == "rdoc" diff --git a/gems/plain-merge/gemfiles/modular/documentation_local.gemfile b/gems/plain-merge/gemfiles/modular/documentation_local.gemfile index 4d4c2bd95..c0407019d 100644 --- a/gems/plain-merge/gemfiles/modular/documentation_local.gemfile +++ b/gems/plain-merge/gemfiles/modular/documentation_local.gemfile @@ -3,16 +3,40 @@ # Local path overrides for development. # Loaded by the associated non-local gemfile when GALTZO_FLOSS_DEV != "false". -require 'nomono/bundler' unless defined?(Nomono) +# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. +# Bundler records that dependency during Gemfile evaluation, but it does not +# activate that exact version before the immediate `require "nomono/bundler"`. +# If multiple compatible nomono versions are installed, RubyGems may activate +# the newest installed version while Gemfile.lock pins an older compatible one; +# Bundler then aborts with "already activated nomono X, but your Gemfile +# requires nomono Y". Prefer the locked compatible version when present, then +# activate it explicitly before requiring the Bundler DSL extension used below. +nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] +nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) +if File.file?(nomono_lockfile) + nomono_locked_spec = Bundler::LockfileParser + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == "nomono" } + nomono_locked = nomono_locked_spec && + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + if nomono_locked + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] + end +end +Kernel.send(:gem, "nomono", *nomono_activation_requirements) +require "nomono/bundler" local_gems = %w[yard-fence yard-timekeeper yard-yaml] +declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) +local_gems_to_eval = local_gems - %w[plain-merge] - declared_gems # export GALTZO_FLOSS_DEV=/path/to/galtzo-floss eval_nomono_gems( - gems: local_gems, - prefix: 'GALTZO_FLOSS', - path_env: 'GALTZO_FLOSS_DEV', - vendored_gems_env: 'GALTZO_FLOSS_VENDORED_GEMS', - vendor_gem_dir_env: 'GALTZO_FLOSS_VENDOR_GEM_DIR', - debug_env: 'GALTZO_FLOSS_DEBUG' + gems: local_gems_to_eval, + prefix: "GALTZO_FLOSS", + path_env: "GALTZO_FLOSS_DEV", + vendored_gems_env: "GALTZO_FLOSS_VENDORED_GEMS", + vendor_gem_dir_env: "GALTZO_FLOSS_VENDOR_GEM_DIR", + debug_env: "GALTZO_FLOSS_DEBUG" ) diff --git a/gems/plain-merge/gemfiles/modular/erb/r2/v3.0.gemfile b/gems/plain-merge/gemfiles/modular/erb/r2/v3.0.gemfile index 7c83a239b..c03bd8d85 100644 --- a/gems/plain-merge/gemfiles/modular/erb/r2/v3.0.gemfile +++ b/gems/plain-merge/gemfiles/modular/erb/r2/v3.0.gemfile @@ -1 +1 @@ -gem 'erb', '~> 3.0' # ruby >= 2.7.0 +gem "erb", "~> 3.0" # ruby >= 2.7.0 diff --git a/gems/plain-merge/gemfiles/modular/erb/r3/v5.0.gemfile b/gems/plain-merge/gemfiles/modular/erb/r3/v5.0.gemfile index 0e3bf1b97..1bd029cc1 100644 --- a/gems/plain-merge/gemfiles/modular/erb/r3/v5.0.gemfile +++ b/gems/plain-merge/gemfiles/modular/erb/r3/v5.0.gemfile @@ -1 +1 @@ -gem 'erb', '~> 6.0', '>= 6.0.4' # ruby >= 3.2.0 +gem "erb", "~> 6.0", ">= 6.0.6" # ruby >= 3.2.0 diff --git a/gems/plain-merge/gemfiles/modular/erb/r4/v5.0.gemfile b/gems/plain-merge/gemfiles/modular/erb/r4/v5.0.gemfile index 0e3bf1b97..1bd029cc1 100644 --- a/gems/plain-merge/gemfiles/modular/erb/r4/v5.0.gemfile +++ b/gems/plain-merge/gemfiles/modular/erb/r4/v5.0.gemfile @@ -1 +1 @@ -gem 'erb', '~> 6.0', '>= 6.0.4' # ruby >= 3.2.0 +gem "erb", "~> 6.0", ">= 6.0.6" # ruby >= 3.2.0 diff --git a/gems/plain-merge/gemfiles/modular/erb/vHEAD.gemfile b/gems/plain-merge/gemfiles/modular/erb/vHEAD.gemfile index ea0101185..48fee4218 100644 --- a/gems/plain-merge/gemfiles/modular/erb/vHEAD.gemfile +++ b/gems/plain-merge/gemfiles/modular/erb/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 3.2 -gem 'erb', github: 'ruby/erb', branch: 'master' +gem "erb", github: "ruby/erb", branch: "master" diff --git a/gems/plain-merge/gemfiles/modular/json/truffleruby_22_3.gemfile b/gems/plain-merge/gemfiles/modular/json/truffleruby_22_3.gemfile new file mode 100644 index 000000000..b0e69ab11 --- /dev/null +++ b/gems/plain-merge/gemfiles/modular/json/truffleruby_22_3.gemfile @@ -0,0 +1,6 @@ +# frozen_string_literal: true + +if RUBY_ENGINE == "truffleruby" && RUBY_ENGINE_VERSION.start_with?("22.3") + # TruffleRuby 22.3 ships the json default gem from its emulated MRI Ruby. + gem "json", "= 2.5.1" +end diff --git a/gems/plain-merge/gemfiles/modular/json/truffleruby_23_0.gemfile b/gems/plain-merge/gemfiles/modular/json/truffleruby_23_0.gemfile new file mode 100644 index 000000000..7b2660a2b --- /dev/null +++ b/gems/plain-merge/gemfiles/modular/json/truffleruby_23_0.gemfile @@ -0,0 +1,6 @@ +# frozen_string_literal: true + +if RUBY_ENGINE == "truffleruby" && RUBY_ENGINE_VERSION.start_with?("23.0") + # TruffleRuby 23.0 ships the json default gem from its emulated MRI Ruby. + gem "json", "= 2.6.1" +end diff --git a/gems/plain-merge/gemfiles/modular/json/truffleruby_23_1.gemfile b/gems/plain-merge/gemfiles/modular/json/truffleruby_23_1.gemfile new file mode 100644 index 000000000..dfa21f2e4 --- /dev/null +++ b/gems/plain-merge/gemfiles/modular/json/truffleruby_23_1.gemfile @@ -0,0 +1,6 @@ +# frozen_string_literal: true + +if RUBY_ENGINE == "truffleruby" && RUBY_ENGINE_VERSION.start_with?("23.1") + # TruffleRuby 23.1 ships the json default gem from its emulated MRI Ruby. + gem "json", "= 2.6.3" +end diff --git a/gems/plain-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile b/gems/plain-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile index e27f1bbae..42e9d9bd4 100644 --- a/gems/plain-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile +++ b/gems/plain-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 -gem 'mutex_m', '~> 0.2' +gem "mutex_m", "~> 0.2" diff --git a/gems/plain-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile b/gems/plain-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile index e27f1bbae..42e9d9bd4 100644 --- a/gems/plain-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile +++ b/gems/plain-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 -gem 'mutex_m', '~> 0.2' +gem "mutex_m", "~> 0.2" diff --git a/gems/plain-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile b/gems/plain-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile index e27f1bbae..42e9d9bd4 100644 --- a/gems/plain-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile +++ b/gems/plain-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 -gem 'mutex_m', '~> 0.2' +gem "mutex_m", "~> 0.2" diff --git a/gems/plain-merge/gemfiles/modular/mutex_m/vHEAD.gemfile b/gems/plain-merge/gemfiles/modular/mutex_m/vHEAD.gemfile index 9dac2f6cb..8af3b6fca 100644 --- a/gems/plain-merge/gemfiles/modular/mutex_m/vHEAD.gemfile +++ b/gems/plain-merge/gemfiles/modular/mutex_m/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 (dependency of omniauth) -gem 'mutex_m', github: 'ruby/mutex_m', branch: 'master' +gem "mutex_m", github: "ruby/mutex_m", branch: "master" diff --git a/gems/plain-merge/gemfiles/modular/optional.gemfile b/gems/plain-merge/gemfiles/modular/optional.gemfile index 4f0d2c048..80bc45196 100644 --- a/gems/plain-merge/gemfiles/modular/optional.gemfile +++ b/gems/plain-merge/gemfiles/modular/optional.gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -# To retain during plain-merge templating: +# To retain during kettle-jem templating: # kettle-jem:freeze # # ... your code # kettle-jem:unfreeze @@ -9,9 +9,8 @@ # Optional dependencies are not depended on directly, but may be used if present. # Required for curated binstubs generated by kettle-jem install -gem 'rbs', '>= 3.0', require: false # ruby >= 3.1 -gem 'stone_checksums', '~> 1.0', '>= 1.0.3', require: false # ruby >= 2.2 +gem "rbs", ">= 3.0", require: false # ruby >= 3.1 # Required for kettle-pre-release # URL parsing with Unicode support (falls back to URI if not available) -gem 'addressable', '>= 2.8', '< 3' # ruby >= 2.2 +gem "addressable", ">= 2.8", "< 3" # ruby >= 2.2 diff --git a/gems/plain-merge/gemfiles/modular/rspec.gemfile b/gems/plain-merge/gemfiles/modular/rspec.gemfile index 2af210a41..72fdf8b7f 100644 --- a/gems/plain-merge/gemfiles/modular/rspec.gemfile +++ b/gems/plain-merge/gemfiles/modular/rspec.gemfile @@ -1,4 +1,4 @@ -gem 'rspec_junit_formatter', - github: 'pboling/rspec_junit_formatter', - branch: 'main', - ref: '9e6bcaaedd49477b62878ed568dc4ada5cc7cb5e' +gem "rspec_junit_formatter", + github: "pboling/rspec_junit_formatter", + branch: "main", + ref: "9e6bcaaedd49477b62878ed568dc4ada5cc7cb5e" diff --git a/gems/plain-merge/gemfiles/modular/runtime_heads.gemfile b/gems/plain-merge/gemfiles/modular/runtime_heads.gemfile index 3ef1bc7c4..02f134c7f 100644 --- a/gems/plain-merge/gemfiles/modular/runtime_heads.gemfile +++ b/gems/plain-merge/gemfiles/modular/runtime_heads.gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -# To retain during plain-merge templating: +# To retain during kettle-jem templating: # kettle-jem:freeze # # ... your code # kettle-jem:unfreeze @@ -8,7 +8,4 @@ # Test against HEAD of runtime dependencies so we can proactively file bugs -# Ruby >= 2.2 -gem 'version_gem', github: 'ruby-oauth/version_gem', branch: 'main' - -eval_gemfile('x_std_libs/vHEAD.gemfile') +eval_gemfile("x_std_libs/vHEAD.gemfile") diff --git a/gems/plain-merge/gemfiles/modular/stringio/r2/v3.0.gemfile b/gems/plain-merge/gemfiles/modular/stringio/r2/v3.0.gemfile index 3616f4e3a..e85bb18ee 100644 --- a/gems/plain-merge/gemfiles/modular/stringio/r2/v3.0.gemfile +++ b/gems/plain-merge/gemfiles/modular/stringio/r2/v3.0.gemfile @@ -2,4 +2,4 @@ # NOT SEMVER # Version 3.0.7 dropped support for Ruby <= 2.7 # Version 3.0.0 dropped support for Ruby <= 2.4 -gem 'stringio', '>= 3.0' +gem "stringio", ">= 3.0" diff --git a/gems/plain-merge/gemfiles/modular/stringio/r3/v3.0.gemfile b/gems/plain-merge/gemfiles/modular/stringio/r3/v3.0.gemfile index 3616f4e3a..e85bb18ee 100644 --- a/gems/plain-merge/gemfiles/modular/stringio/r3/v3.0.gemfile +++ b/gems/plain-merge/gemfiles/modular/stringio/r3/v3.0.gemfile @@ -2,4 +2,4 @@ # NOT SEMVER # Version 3.0.7 dropped support for Ruby <= 2.7 # Version 3.0.0 dropped support for Ruby <= 2.4 -gem 'stringio', '>= 3.0' +gem "stringio", ">= 3.0" diff --git a/gems/plain-merge/gemfiles/modular/stringio/r4/v3.0.gemfile b/gems/plain-merge/gemfiles/modular/stringio/r4/v3.0.gemfile index 3616f4e3a..e85bb18ee 100644 --- a/gems/plain-merge/gemfiles/modular/stringio/r4/v3.0.gemfile +++ b/gems/plain-merge/gemfiles/modular/stringio/r4/v3.0.gemfile @@ -2,4 +2,4 @@ # NOT SEMVER # Version 3.0.7 dropped support for Ruby <= 2.7 # Version 3.0.0 dropped support for Ruby <= 2.4 -gem 'stringio', '>= 3.0' +gem "stringio", ">= 3.0" diff --git a/gems/plain-merge/gemfiles/modular/stringio/vHEAD.gemfile b/gems/plain-merge/gemfiles/modular/stringio/vHEAD.gemfile index 78f5f5d8a..5f2a74126 100644 --- a/gems/plain-merge/gemfiles/modular/stringio/vHEAD.gemfile +++ b/gems/plain-merge/gemfiles/modular/stringio/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 (dependency of omniauth) -gem 'stringio', github: 'ruby/stringio', branch: 'master' +gem "stringio", github: "ruby/stringio", branch: "master" diff --git a/gems/plain-merge/gemfiles/modular/style.gemfile b/gems/plain-merge/gemfiles/modular/style.gemfile index ac75224d5..35de4dcd6 100644 --- a/gems/plain-merge/gemfiles/modular/style.gemfile +++ b/gems/plain-merge/gemfiles/modular/style.gemfile @@ -1,28 +1,31 @@ # frozen_string_literal: true -# To retain during plain-merge templating: +# To retain during kettle-jem templating: # kettle-jem:freeze # # ... your code # kettle-jem:unfreeze # -# We run rubocop on the latest version of Ruby, -# but in support of the oldest supported version of Ruby +# Style tasks run on the latest Ruby; RuboCop-LTS selects the compatibility +# rules for the configured Ruby floor independently from task dependency floors. -gem 'reek', '~> 6.5' +gem "reek", "~> 6.5", ">= 6.5.0" platform :mri do - gem 'rubocop-on-rbs', '~> 2.0' # ruby >= 3.2.0 + gem "appraisal2-rubocop", "~> 1.0", ">= 1.0.0", require: false + gem "rubocop-gradual", "~> 0.4", ">= 0.4.0" + gem "rubocop-minitest", "~> 0.40", ">= 0.40.0" + gem "rubocop-on-rbs", "~> 2.0", ">= 2.0.0" # ruby >= 3.2.0 # gem "rubocop", "~> 1.73", ">= 1.73.2" # constrained by standard - gem 'rubocop-packaging', '~> 0.6', '>= 0.6.0' - gem 'standard', '>= 1.50' + gem "rubocop-packaging", "~> 0.6", ">= 0.6.0" + gem "standard", "~> 1.56", ">= 1.56.0" - if ENV.fetch('RUBOCOP_LTS_LOCAL', 'false').casecmp('false').zero? - gem 'rubocop-lts', '~> 24.1.0' - # "rubocop-lts-rspec" can't add here until other gems are updated. - gem 'rubocop-rspec', '~> 3.6' - gem 'rubocop-ruby3_2', '~> 3.0.0' + if ENV.fetch("RUBOCOP_LTS_LOCAL", "false").casecmp("false").zero? + declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) + gem "rubocop-lts", "~> 24.2", ">= 24.2.1" unless declared_gems.include?("rubocop-lts") + gem "rubocop-lts-rspec", "~> 1.0", ">= 1.0.5" unless declared_gems.include?("rubocop-lts-rspec") + gem "rubocop-ruby3_2", "~> 3.0", ">= 3.0.6" unless declared_gems.include?("rubocop-ruby3_2") else - eval_gemfile('style_local.gemfile') + eval_gemfile("style_local.gemfile") end end diff --git a/gems/plain-merge/gemfiles/modular/style_local.gemfile b/gems/plain-merge/gemfiles/modular/style_local.gemfile index ce75bbe21..b702870a0 100644 --- a/gems/plain-merge/gemfiles/modular/style_local.gemfile +++ b/gems/plain-merge/gemfiles/modular/style_local.gemfile @@ -1,24 +1,48 @@ # frozen_string_literal: true -# We run rubocop on the latest version of Ruby, -# but in support of the oldest supported version of Ruby +# Style tasks run on the latest Ruby; RuboCop-LTS selects the compatibility +# rules for the configured Ruby floor independently from task dependency floors. # Local path overrides for development. # Loaded by the associated non-local gemfile when RUBOCOP_LTS_LOCAL != "false". -require 'nomono/bundler' unless defined?(Nomono) +# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. +# Bundler records that dependency during Gemfile evaluation, but it does not +# activate that exact version before the immediate `require "nomono/bundler"`. +# If multiple compatible nomono versions are installed, RubyGems may activate +# the newest installed version while Gemfile.lock pins an older compatible one; +# Bundler then aborts with "already activated nomono X, but your Gemfile +# requires nomono Y". Prefer the locked compatible version when present, then +# activate it explicitly before requiring the Bundler DSL extension used below. +nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] +nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) +if File.file?(nomono_lockfile) + nomono_locked_spec = Bundler::LockfileParser + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == "nomono" } + nomono_locked = nomono_locked_spec && + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + if nomono_locked + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] + end +end +Kernel.send(:gem, "nomono", *nomono_activation_requirements) +require "nomono/bundler" local_gems = %w[rubocop-lts rubocop-lts-rspec rubocop-ruby3_2 standard-rubocop-lts] +declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) +local_gems_to_eval = local_gems - %w[plain-merge] - declared_gems # export VENDORED_GEMS=rubocop-lts,rubocop-lts-rspec,rubocop-ruby3_2,standard-rubocop-lts platform :mri do eval_nomono_gems( - gems: local_gems, - prefix: 'RUBOCOP_LTS', - path_env: 'RUBOCOP_LTS_LOCAL', - vendored_gems_env: 'VENDORED_GEMS', - vendor_gem_dir_env: 'VENDOR_GEM_DIR', - debug_env: 'RUBOCOP_LTS_DEBUG', - root: %w[src rubocop-lts] + gems: local_gems_to_eval, + prefix: "RUBOCOP_LTS", + path_env: "RUBOCOP_LTS_LOCAL", + vendored_gems_env: "VENDORED_GEMS", + vendor_gem_dir_env: "VENDOR_GEM_DIR", + debug_env: "RUBOCOP_LTS_DEBUG", + root: ["src", "rubocop-lts"] ) end diff --git a/gems/plain-merge/gemfiles/modular/templating.gemfile b/gems/plain-merge/gemfiles/modular/templating.gemfile index 2ddc9433f..47138ffbb 100644 --- a/gems/plain-merge/gemfiles/modular/templating.gemfile +++ b/gems/plain-merge/gemfiles/modular/templating.gemfile @@ -1,24 +1,24 @@ # frozen_string_literal: true -structuredmerge_remote = ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false').zero? -kettle_remote = ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? +structuredmerge_remote = ENV.fetch("STRUCTUREDMERGE_DEV", "false").casecmp("false").zero? +kettle_remote = ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false").zero? if structuredmerge_remote # Parser dependencies for released installs. - gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' + gem "tree_sitter_language_pack", "~> 1.13", ">= 1.13.3" # Merge recipes for released installs. - gem 'kettle-jem', '>= 7.0' + gem "kettle-jem", ">= 7.0" end if kettle_remote # Template/plugin checks for released installs. - gem 'kettle-drift', '~> 1.0', '>= 1.0.5', require: false + gem "kettle-drift", "~> 1.0", ">= 1.0.6", require: false end # Set STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local development with path-based dependencies. # When false (default / CI), released kettle-jem brings merge gems and parser dependencies. # Local path overrides bring the same dependencies from sibling gemspecs. # -# Set KETTLE_DEV_DEV=/path/to/kettle-rb for local development with Kettle plugin gems. +# Set KETTLE_DEV_DEV=/path/to/my for local development with Kettle plugin gems. # When false (default / CI), released Kettle plugin gems are used. -eval_gemfile 'templating_local.gemfile' unless structuredmerge_remote && kettle_remote +eval_gemfile "templating_local.gemfile" unless structuredmerge_remote && kettle_remote diff --git a/gems/plain-merge/gemfiles/modular/templating_local.gemfile b/gems/plain-merge/gemfiles/modular/templating_local.gemfile index ea82c146d..71738416a 100644 --- a/gems/plain-merge/gemfiles/modular/templating_local.gemfile +++ b/gems/plain-merge/gemfiles/modular/templating_local.gemfile @@ -4,7 +4,29 @@ # Loaded by the associated non-local gemfile when STRUCTUREDMERGE_DEV or KETTLE_DEV_DEV # is not "false". -require 'nomono/bundler' unless defined?(Nomono) +# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. +# Bundler records that dependency during Gemfile evaluation, but it does not +# activate that exact version before the immediate `require "nomono/bundler"`. +# If multiple compatible nomono versions are installed, RubyGems may activate +# the newest installed version while Gemfile.lock pins an older compatible one; +# Bundler then aborts with "already activated nomono X, but your Gemfile +# requires nomono Y". Prefer the locked compatible version when present, then +# activate it explicitly before requiring the Bundler DSL extension used below. +nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] +nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) +if File.file?(nomono_lockfile) + nomono_locked_spec = Bundler::LockfileParser + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == "nomono" } + nomono_locked = nomono_locked_spec && + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + if nomono_locked + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] + end +end +Kernel.send(:gem, "nomono", *nomono_activation_requirements) +require "nomono/bundler" structuredmerge_local_gems = %w[ tree_haver @@ -47,25 +69,25 @@ structuredmerge_local_gems_to_eval = structuredmerge_local_gems - %w[plain-merge kettle_dev_local_gems_to_eval = kettle_dev_local_gems - %w[plain-merge] - declared_gems platform :mri do - if ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false') != 0 + if ENV.fetch("STRUCTUREDMERGE_DEV", "false").casecmp("false") != 0 eval_nomono_gems( gems: structuredmerge_local_gems_to_eval, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - vendored_gems_env: 'VENDORED_GEMS', - vendor_gem_dir_env: 'VENDOR_GEM_DIR', - debug_env: 'STRUCTUREDMERGE_DEBUG' + prefix: "STRUCTUREDMERGE", + path_env: "STRUCTUREDMERGE_DEV", + vendored_gems_env: "VENDORED_GEMS", + vendor_gem_dir_env: "VENDOR_GEM_DIR", + debug_env: "STRUCTUREDMERGE_DEBUG" ) end - if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false') != 0 + if ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false") != 0 eval_nomono_gems( gems: kettle_dev_local_gems_to_eval, - prefix: 'KETTLE_DEV', - path_env: 'KETTLE_DEV_DEV', - vendored_gems_env: 'VENDORED_GEMS', - vendor_gem_dir_env: 'VENDOR_GEM_DIR', - debug_env: 'KETTLE_DEV_DEBUG' + prefix: "KETTLE_DEV", + path_env: "KETTLE_DEV_DEV", + vendored_gems_env: "VENDORED_GEMS", + vendor_gem_dir_env: "VENDOR_GEM_DIR", + debug_env: "KETTLE_DEV_DEBUG" ) end end diff --git a/gems/plain-merge/gemfiles/modular/webrick/r4/v1.9.gemfile b/gems/plain-merge/gemfiles/modular/webrick/r4/v1.9.gemfile new file mode 100644 index 000000000..eaab4a473 --- /dev/null +++ b/gems/plain-merge/gemfiles/modular/webrick/r4/v1.9.gemfile @@ -0,0 +1 @@ +gem "webrick", "~> 1.9" diff --git a/gems/plain-merge/gemfiles/modular/webrick/vHEAD.gemfile b/gems/plain-merge/gemfiles/modular/webrick/vHEAD.gemfile new file mode 100644 index 000000000..8a789b634 --- /dev/null +++ b/gems/plain-merge/gemfiles/modular/webrick/vHEAD.gemfile @@ -0,0 +1 @@ +gem "webrick", ">= 1.9" diff --git a/gems/plain-merge/gemfiles/modular/x_std_libs.gemfile b/gems/plain-merge/gemfiles/modular/x_std_libs.gemfile index b1f43c097..77aad43f2 100644 --- a/gems/plain-merge/gemfiles/modular/x_std_libs.gemfile +++ b/gems/plain-merge/gemfiles/modular/x_std_libs.gemfile @@ -1,12 +1,12 @@ ### Std Lib Extracted Gems ruby_version = Gem::Version.new(RUBY_VERSION) -if ruby_version >= Gem::Version.new('4.0') - eval_gemfile 'x_std_libs/r4/libs.gemfile' -elsif ruby_version >= Gem::Version.new('3.2') - eval_gemfile 'x_std_libs/r3/libs.gemfile' -elsif ruby_version >= Gem::Version.new('3.1') - eval_gemfile 'x_std_libs/r3.1/libs.gemfile' +if ruby_version >= Gem::Version.new("4.0") + eval_gemfile "x_std_libs/r4/libs.gemfile" +elsif ruby_version >= Gem::Version.new("3.2") + eval_gemfile "x_std_libs/r3/libs.gemfile" +elsif ruby_version >= Gem::Version.new("3.1") + eval_gemfile "x_std_libs/r3.1/libs.gemfile" else - eval_gemfile 'x_std_libs/r2/libs.gemfile' + eval_gemfile "x_std_libs/r2/libs.gemfile" end diff --git a/gems/plain-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile b/gems/plain-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile index 16a5e3d70..441c4f03a 100644 --- a/gems/plain-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile +++ b/gems/plain-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile @@ -1,3 +1,3 @@ -eval_gemfile '../../erb/r2/v3.0.gemfile' -eval_gemfile '../../mutex_m/r2/v0.3.gemfile' -eval_gemfile '../../stringio/r2/v3.0.gemfile' +eval_gemfile "../../erb/r2/v3.0.gemfile" +eval_gemfile "../../mutex_m/r2/v0.3.gemfile" +eval_gemfile "../../stringio/r2/v3.0.gemfile" diff --git a/gems/plain-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile b/gems/plain-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile index 220ff95c1..c293a3ddd 100644 --- a/gems/plain-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile +++ b/gems/plain-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile @@ -1,3 +1,3 @@ -eval_gemfile '../../erb/r3/v5.0.gemfile' -eval_gemfile '../../mutex_m/r3/v0.3.gemfile' -eval_gemfile '../../stringio/r3/v3.0.gemfile' +eval_gemfile "../../erb/r3/v5.0.gemfile" +eval_gemfile "../../mutex_m/r3/v0.3.gemfile" +eval_gemfile "../../stringio/r3/v3.0.gemfile" diff --git a/gems/plain-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile b/gems/plain-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile index bd4e884df..eb5574247 100644 --- a/gems/plain-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile +++ b/gems/plain-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile @@ -1,4 +1,6 @@ -eval_gemfile '../../erb/r4/v5.0.gemfile' -eval_gemfile '../../mutex_m/r4/v0.3.gemfile' -eval_gemfile '../../stringio/r4/v3.0.gemfile' -eval_gemfile '../../benchmark/r4/v0.5.gemfile' +eval_gemfile "../../erb/r4/v5.0.gemfile" +eval_gemfile "../../mutex_m/r4/v0.3.gemfile" +eval_gemfile "../../stringio/r4/v3.0.gemfile" +eval_gemfile "../../benchmark/r4/v0.5.gemfile" +eval_gemfile "../../cgi/r4/v0.5.gemfile" +eval_gemfile "../../webrick/r4/v1.9.gemfile" diff --git a/gems/plain-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile b/gems/plain-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile index 91f383c11..d4d5b16c9 100644 --- a/gems/plain-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile +++ b/gems/plain-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile @@ -1,4 +1,6 @@ -eval_gemfile '../erb/vHEAD.gemfile' -eval_gemfile '../mutex_m/vHEAD.gemfile' -eval_gemfile '../stringio/vHEAD.gemfile' -eval_gemfile '../benchmark/vHEAD.gemfile' +eval_gemfile "../erb/vHEAD.gemfile" +eval_gemfile "../mutex_m/vHEAD.gemfile" +eval_gemfile "../stringio/vHEAD.gemfile" +eval_gemfile "../benchmark/vHEAD.gemfile" +eval_gemfile "../cgi/vHEAD.gemfile" +eval_gemfile "../webrick/vHEAD.gemfile" diff --git a/gems/prism-merge/Gemfile.lock b/gems/prism-merge/Gemfile.lock index 7462d794e..c17d43db9 100644 --- a/gems/prism-merge/Gemfile.lock +++ b/gems/prism-merge/Gemfile.lock @@ -6,265 +6,6 @@ PATH ruby-merge (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly - specs: - ast-crispr-markdown-markly (7.1.0) - ast-crispr (= 7.1.0) - markly-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism - specs: - ast-crispr-ruby-prism (7.1.0) - ast-crispr (= 7.1.0) - prism-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr - specs: - ast-crispr (7.1.0) - ast-merge (= 7.1.0) - service_actor (~> 3.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git - specs: - ast-merge-git (7.1.0) - ast-merge (= 7.1.0) - json-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge - specs: - ast-merge (7.1.0) - benchmark - token-resolver (~> 2.0, >= 2.0.4) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template - specs: - ast-template (7.1.0) - ast-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge - specs: - bash-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge - specs: - binary-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge - specs: - citrus-toml-merge (7.1.0) - toml-merge (= 7.1.0) - toml-rb (~> 4.1) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge - specs: - commonmarker-merge (7.1.0) - commonmarker (~> 2.2) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge - specs: - dotenv-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge - specs: - go-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge - specs: - json-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem - specs: - kettle-jem (7.1.0) - addressable (>= 2.8, < 3) - ast-crispr-markdown-markly (= 7.1.0) - ast-crispr-ruby-prism (= 7.1.0) - ast-merge (= 7.1.0) - bash-merge (= 7.1.0) - citrus-toml-merge (= 7.1.0) - commonmarker-merge (= 7.1.0) - dotenv-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-dev (~> 2.3, >= 2.3.5) - kettle-rb (~> 0.1, >= 0.1.4) - kramdown-merge (= 7.1.0) - markdown-merge (= 7.1.0) - markly-merge (= 7.1.0) - prism-merge (= 7.1.0) - psych-merge (= 7.1.0) - rbs (>= 3.10) - rbs-merge (= 7.1.0) - ruby-merge (= 7.1.0) - token-resolver (~> 2.0, >= 2.0.4) - toml-merge (= 7.1.0) - toml-rb (~> 4.2) - tree_haver (= 7.1.0) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge - specs: - kramdown-merge (7.1.0) - kramdown (~> 2.5) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge - specs: - markdown-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge - specs: - markly-merge (7.1.0) - markdown-merge (= 7.1.0) - markly (~> 0.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge - specs: - parslet-toml-merge (7.1.0) - toml (~> 0.3) - toml-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge - specs: - plain-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge - specs: - psych-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge - specs: - rbs-merge (7.1.0) - ast-merge (= 7.1.0) - rbs (>= 3.10) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge - specs: - ruby-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge - specs: - rust-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb - specs: - smorg-rb (7.1.0) - ast-merge (= 7.1.0) - ast-merge-git (= 7.1.0) - go-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-jem (= 7.1.0) - markly-merge (= 7.1.0) - plain-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge - specs: - toml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver - specs: - tree_haver (7.1.0) - citrus (~> 3.0) - parslet (~> 2.0) - tree_sitter_language_pack (>= 1.13.2, < 2.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge - specs: - typescript-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge - specs: - yaml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge - specs: - zip-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - GEM remote: https://gem.coop/ specs: @@ -280,6 +21,11 @@ GEM rubocop (>= 1.0) version_gem (~> 1.1, >= 1.1.14) ast (2.4.3) + ast-merge (7.1.0) + benchmark + token-resolver (~> 2.0, >= 2.0.4) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) backports (3.25.3) benchmark (0.5.0) bigdecimal (4.1.2) @@ -289,7 +35,6 @@ GEM cgi (0.5.2) citrus (3.0.2) cmdparse (3.0.7) - commonmarker (2.9.0-x86_64-linux) concurrent-ruby (1.3.8) date (3.5.1) debug (1.11.1) @@ -352,8 +97,6 @@ GEM kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) - kettle-drift (1.0.6) - version_gem (~> 1.1, >= 1.1.14) kettle-rb (0.1.5) kettle-soup-cover (3.0.4) kettle-wash (~> 0.1, >= 0.1.0) @@ -382,7 +125,6 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) - markly (0.16.0) mutex_m (0.3.0) nokogiri (1.19.4-x86_64-linux-gnu) racc (~> 1.4) @@ -534,11 +276,13 @@ GEM lint_roller (~> 1.1) rubocop (~> 1.72, >= 1.72.1) rubocop-ast (>= 1.44.0, < 2.0) + ruby-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) ruby-progressbar (1.13.0) ruby_engine (2.0.3) ruby_version (1.0.3) - service_actor (3.9.4) - zeitwerk (>= 1.0) silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) @@ -593,11 +337,11 @@ GEM token-resolver (2.0.5) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.14) - toml (0.3.0) - parslet (>= 1.8.0, < 3.0.0) - toml-rb (4.2.0) - citrus (~> 3.0, > 3.0) - racc (~> 1.7) + tree_haver (7.1.0) + citrus (~> 3.0) + parslet (~> 2.0) + tree_sitter_language_pack (>= 1.13.2, < 2.0) + version_gem (~> 1.1, >= 1.1.9) tree_sitter_language_pack (1.13.3-x86_64-linux) sorbet-runtime (~> 0.5) tsort (0.2.0) @@ -643,46 +387,24 @@ DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) appraisal2-rubocop (~> 1.0, >= 1.0.0) - ast-crispr! - ast-crispr-markdown-markly! - ast-crispr-ruby-prism! - ast-merge! - ast-merge-git! - ast-template! - bash-merge! benchmark (~> 0.5, >= 0.5.0) - binary-merge! bundler-audit (~> 0.9.3) cgi (~> 0.5) - citrus-toml-merge! - commonmarker-merge! debug (>= 1.1) - dotenv-merge! erb (~> 6.0, >= 6.0.6) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.0) - go-merge! irb (~> 1.17) - json-merge! kettle-dev (~> 2.0, >= 2.2.25) - kettle-drift (~> 1.0, >= 1.0.6) - kettle-jem! kettle-soup-cover (~> 3.0, >= 3.0.3) kettle-test (~> 2.0, >= 2.0.9) kramdown (~> 2.5, >= 2.5.2) - kramdown-merge! kramdown-parser-gfm (~> 1.1) - markdown-merge! - markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) - parslet-toml-merge! - plain-merge! prism-merge! - psych-merge! rake (~> 13.0) rbs (>= 3.0) - rbs-merge! rdoc (~> 6.11) reek (~> 6.5, >= 6.5.0) require_bench (~> 1.0, >= 1.0.4) @@ -693,27 +415,19 @@ DEPENDENCIES rubocop-on-rbs (~> 2.0, >= 2.0.0) rubocop-packaging (~> 0.6, >= 0.6.0) rubocop-ruby3_2 (~> 3.0, >= 3.0.6) - ruby-merge! ruby-progressbar (~> 1.13) - rust-merge! - smorg-rb! standard (~> 1.56, >= 1.56.0) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) - toml-merge! - tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) - typescript-merge! webrick (~> 1.9) yaml-converter (~> 0.2, >= 0.2.3) - yaml-merge! yard (~> 0.9, >= 0.9.45) yard-fence (~> 0.9, >= 0.9.6) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) yard-timekeeper (~> 0.2, >= 0.2.4) yard-yaml (~> 0.2, >= 0.2.3) - zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af @@ -721,31 +435,20 @@ CHECKSUMS appraisal2 (3.2.0) sha256=ccd0b767ac4060cd7af6d16747459b6990f49c39c7b4fb1f7d1146b1e97c492f appraisal2-rubocop (1.0.0) sha256=b71410fbb014befda5340605a605b7f6f3f012739baf0acc5b4351b592c3258d ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 - ast-crispr (7.1.0) - ast-crispr-markdown-markly (7.1.0) - ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) - ast-merge-git (7.1.0) - ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 - bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd - binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 - citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 - commonmarker (2.9.0-x86_64-linux) sha256=8cfe92970eef585a19ddf6613224b91cab64d6029834661bda801f877c9c7f43 - commonmarker-merge (7.1.0) concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 - dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -758,28 +461,20 @@ CHECKSUMS gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f - go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 - json-merge (7.1.0) kettle-dev (2.3.8) sha256=9d716ff21c660a730cb4e8d41e2e2f0630a28167a354b6e2924e242102aef72c - kettle-drift (1.0.6) sha256=46eda08fa4411d1f3c6682a95eef1c9df4e94611b3949f49d4c7b43c0ed356a3 - kettle-jem (7.1.0) kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f kettle-soup-cover (3.0.4) kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa - kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 - markdown-merge (7.1.0) - markly (0.16.0) sha256=6f70d79e385b1efc9e171f74c81628826259039fe6c778e03c3924c71dac5511 - markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-x86_64-linux-gnu) sha256=379fae440b28915e3f19d752ce2dcf8465ed2b2fbefd2a7ca0dd497bc981a06a nomono (1.0.9) @@ -789,20 +484,16 @@ CHECKSUMS parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 - parslet-toml-merge (7.1.0) - plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 - psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 - rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb @@ -841,15 +532,12 @@ CHECKSUMS ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 - rust-merge (7.1.0) - service_actor (3.9.4) sha256=e63b523630b9a7e62959b2a90113b08d2565b5de9c148557b281ef847c9539ce silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed - smorg-rb (7.1.0) sorbet-runtime (0.6.13347) sha256=54e7221d9f4b63f58aec79f3043752a9ba7810347c6ae0d903531591cc2d5f01 standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b @@ -864,20 +552,15 @@ CHECKSUMS timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.5) sha256=b852f924287ffb58a440856e862b056c8ad97e74b4b2526cee43e0771f40c25c - toml (0.3.0) sha256=0a91d0f76a9036e84e44f95693b12f58d358c1df3ac8e3b5271f2056ecc6e4b9 - toml-merge (7.1.0) - toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 - typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 webrick (1.9.2) sha256=beb4a15fc474defed24a3bda4ffd88a490d517c9e4e6118c3edce59e45864131 yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 - yaml-merge (7.1.0) yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd @@ -885,7 +568,6 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 - zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH diff --git a/gems/ruby-merge/Gemfile.lock b/gems/ruby-merge/Gemfile.lock index d8086ca99..4f9f1b1b1 100644 --- a/gems/ruby-merge/Gemfile.lock +++ b/gems/ruby-merge/Gemfile.lock @@ -6,265 +6,6 @@ PATH tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly - specs: - ast-crispr-markdown-markly (7.1.0) - ast-crispr (= 7.1.0) - markly-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism - specs: - ast-crispr-ruby-prism (7.1.0) - ast-crispr (= 7.1.0) - prism-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr - specs: - ast-crispr (7.1.0) - ast-merge (= 7.1.0) - service_actor (~> 3.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git - specs: - ast-merge-git (7.1.0) - ast-merge (= 7.1.0) - json-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge - specs: - ast-merge (7.1.0) - benchmark - token-resolver (~> 2.0, >= 2.0.4) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template - specs: - ast-template (7.1.0) - ast-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge - specs: - bash-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge - specs: - binary-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge - specs: - citrus-toml-merge (7.1.0) - toml-merge (= 7.1.0) - toml-rb (~> 4.1) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge - specs: - commonmarker-merge (7.1.0) - commonmarker (~> 2.2) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge - specs: - dotenv-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge - specs: - go-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge - specs: - json-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem - specs: - kettle-jem (7.1.0) - addressable (>= 2.8, < 3) - ast-crispr-markdown-markly (= 7.1.0) - ast-crispr-ruby-prism (= 7.1.0) - ast-merge (= 7.1.0) - bash-merge (= 7.1.0) - citrus-toml-merge (= 7.1.0) - commonmarker-merge (= 7.1.0) - dotenv-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-dev (~> 2.3, >= 2.3.5) - kettle-rb (~> 0.1, >= 0.1.4) - kramdown-merge (= 7.1.0) - markdown-merge (= 7.1.0) - markly-merge (= 7.1.0) - prism-merge (= 7.1.0) - psych-merge (= 7.1.0) - rbs (>= 3.10) - rbs-merge (= 7.1.0) - ruby-merge (= 7.1.0) - token-resolver (~> 2.0, >= 2.0.4) - toml-merge (= 7.1.0) - toml-rb (~> 4.2) - tree_haver (= 7.1.0) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge - specs: - kramdown-merge (7.1.0) - kramdown (~> 2.5) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge - specs: - markdown-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge - specs: - markly-merge (7.1.0) - markdown-merge (= 7.1.0) - markly (~> 0.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge - specs: - parslet-toml-merge (7.1.0) - toml (~> 0.3) - toml-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge - specs: - plain-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge - specs: - prism-merge (7.1.0) - prism (~> 1.6) - ruby-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge - specs: - psych-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge - specs: - rbs-merge (7.1.0) - ast-merge (= 7.1.0) - rbs (>= 3.10) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge - specs: - rust-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb - specs: - smorg-rb (7.1.0) - ast-merge (= 7.1.0) - ast-merge-git (= 7.1.0) - go-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-jem (= 7.1.0) - markly-merge (= 7.1.0) - plain-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge - specs: - toml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver - specs: - tree_haver (7.1.0) - citrus (~> 3.0) - parslet (~> 2.0) - tree_sitter_language_pack (>= 1.13.2, < 2.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge - specs: - typescript-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge - specs: - yaml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge - specs: - zip-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - GEM remote: https://gem.coop/ specs: @@ -280,6 +21,11 @@ GEM rubocop (>= 1.0) version_gem (~> 1.1, >= 1.1.14) ast (2.4.3) + ast-merge (7.1.0) + benchmark + token-resolver (~> 2.0, >= 2.0.4) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) backports (3.25.3) benchmark (0.5.0) bigdecimal (4.1.2) @@ -289,11 +35,6 @@ GEM cgi (0.5.2) citrus (3.0.2) cmdparse (3.0.7) - commonmarker (2.9.0-aarch64-linux) - commonmarker (2.9.0-aarch64-linux-musl) - commonmarker (2.9.0-arm64-darwin) - commonmarker (2.9.0-x86_64-linux) - commonmarker (2.9.0-x86_64-linux-musl) concurrent-ruby (1.3.8) date (3.5.1) debug (1.11.1) @@ -356,8 +97,6 @@ GEM kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) - kettle-drift (1.0.6) - version_gem (~> 1.1, >= 1.1.14) kettle-rb (0.1.5) kettle-soup-cover (3.0.4) kettle-wash (~> 0.1, >= 0.1.0) @@ -386,7 +125,6 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) - markly (0.16.0) mutex_m (0.3.0) nokogiri (1.19.4-aarch64-linux-gnu) racc (~> 1.4) @@ -549,8 +287,6 @@ GEM ruby-progressbar (1.13.0) ruby_engine (2.0.3) ruby_version (1.0.3) - service_actor (3.9.4) - zeitwerk (>= 1.0) silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) @@ -605,11 +341,11 @@ GEM token-resolver (2.0.5) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.14) - toml (0.3.0) - parslet (>= 1.8.0, < 3.0.0) - toml-rb (4.2.0) - citrus (~> 3.0, > 3.0) - racc (~> 1.7) + tree_haver (7.1.0) + citrus (~> 3.0) + parslet (~> 2.0) + tree_sitter_language_pack (>= 1.13.2, < 2.0) + version_gem (~> 1.1, >= 1.1.9) tree_sitter_language_pack (1.13.3-aarch64-linux) sorbet-runtime (~> 0.5) tree_sitter_language_pack (1.13.3-arm64-darwin) @@ -664,46 +400,23 @@ DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) appraisal2-rubocop (~> 1.0, >= 1.0.0) - ast-crispr! - ast-crispr-markdown-markly! - ast-crispr-ruby-prism! - ast-merge! - ast-merge-git! - ast-template! - bash-merge! benchmark (~> 0.5, >= 0.5.0) - binary-merge! bundler-audit (~> 0.9.3) cgi (~> 0.5) - citrus-toml-merge! - commonmarker-merge! debug (>= 1.1) - dotenv-merge! erb (~> 6.0, >= 6.0.6) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.0) - go-merge! irb (~> 1.17) - json-merge! kettle-dev (~> 2.0, >= 2.2.25) - kettle-drift (~> 1.0, >= 1.0.6) - kettle-jem! kettle-soup-cover (~> 3.0, >= 3.0.3) kettle-test (~> 2.0, >= 2.0.9) kramdown (~> 2.5, >= 2.5.2) - kramdown-merge! kramdown-parser-gfm (~> 1.1) - markdown-merge! - markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) - parslet-toml-merge! - plain-merge! - prism-merge! - psych-merge! rake (~> 13.0) rbs (>= 3.0) - rbs-merge! rdoc (~> 6.11) reek (~> 6.5, >= 6.5.0) require_bench (~> 1.0, >= 1.0.4) @@ -716,25 +429,18 @@ DEPENDENCIES rubocop-ruby3_2 (~> 3.0, >= 3.0.6) ruby-merge! ruby-progressbar (~> 1.13) - rust-merge! - smorg-rb! standard (~> 1.56, >= 1.56.0) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) - toml-merge! - tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) - typescript-merge! webrick (~> 1.9) yaml-converter (~> 0.2, >= 0.2.3) - yaml-merge! yard (~> 0.9, >= 0.9.45) yard-fence (~> 0.9, >= 0.9.6) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) yard-timekeeper (~> 0.2, >= 0.2.4) yard-yaml (~> 0.2, >= 0.2.3) - zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af @@ -742,35 +448,20 @@ CHECKSUMS appraisal2 (3.2.0) sha256=ccd0b767ac4060cd7af6d16747459b6990f49c39c7b4fb1f7d1146b1e97c492f appraisal2-rubocop (1.0.0) sha256=b71410fbb014befda5340605a605b7f6f3f012739baf0acc5b4351b592c3258d ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 - ast-crispr (7.1.0) - ast-crispr-markdown-markly (7.1.0) - ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) - ast-merge-git (7.1.0) - ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 - bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd - binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 - citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 - commonmarker (2.9.0-aarch64-linux) sha256=e2b4aadb9a2cfa4e206582641ce3a49465549ac1ed4c289fdd63b78d8f24579c - commonmarker (2.9.0-aarch64-linux-musl) sha256=1cf4d2821f2a7e64945f1ed7c4eeced586fdb27ea7fe7337788802cf8f57cfca - commonmarker (2.9.0-arm64-darwin) sha256=1748dbfa4f5813b0d2a14bb4bbfa65a4ec293aa1c825016d60029ee0e132b046 - commonmarker (2.9.0-x86_64-linux) sha256=8cfe92970eef585a19ddf6613224b91cab64d6029834661bda801f877c9c7f43 - commonmarker (2.9.0-x86_64-linux-musl) sha256=293921398b839f79ceaf55010e061357e34f053822c3b003cd0be6686176335e - commonmarker-merge (7.1.0) concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 - dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -783,28 +474,20 @@ CHECKSUMS gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f - go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 - json-merge (7.1.0) kettle-dev (2.3.8) sha256=9d716ff21c660a730cb4e8d41e2e2f0630a28167a354b6e2924e242102aef72c - kettle-drift (1.0.6) sha256=46eda08fa4411d1f3c6682a95eef1c9df4e94611b3949f49d4c7b43c0ed356a3 - kettle-jem (7.1.0) kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f kettle-soup-cover (3.0.4) kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa - kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 - markdown-merge (7.1.0) - markly (0.16.0) sha256=6f70d79e385b1efc9e171f74c81628826259039fe6c778e03c3924c71dac5511 - markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-aarch64-linux-gnu) sha256=1269fb644a6de405057a53dd5c762b1209b43ca7424f839454d3dbc677c31a8f nokogiri (1.19.4-aarch64-linux-musl) sha256=35c65b9ce72b3bb03207bdbe7067915019dc18c1b9b59139684bd6690fdd01af @@ -818,20 +501,15 @@ CHECKSUMS parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 - parslet-toml-merge (7.1.0) - plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 - prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 - psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 - rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb @@ -870,15 +548,12 @@ CHECKSUMS ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 - rust-merge (7.1.0) - service_actor (3.9.4) sha256=e63b523630b9a7e62959b2a90113b08d2565b5de9c148557b281ef847c9539ce silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed - smorg-rb (7.1.0) sorbet-runtime (0.6.13347) sha256=54e7221d9f4b63f58aec79f3043752a9ba7810347c6ae0d903531591cc2d5f01 standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b @@ -893,22 +568,17 @@ CHECKSUMS timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.5) sha256=b852f924287ffb58a440856e862b056c8ad97e74b4b2526cee43e0771f40c25c - toml (0.3.0) sha256=0a91d0f76a9036e84e44f95693b12f58d358c1df3ac8e3b5271f2056ecc6e4b9 - toml-merge (7.1.0) - toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-aarch64-linux) sha256=55ffc7c87868cb45658338363d9eba51b4a8b0259aa88e4de368d2bd1d52fea4 tree_sitter_language_pack (1.13.3-arm64-darwin) sha256=bc2498db605f212a1dbd2465ed3f65190d7da786f6ed5d30fcf958121aeb4a5c tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 - typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 webrick (1.9.2) sha256=beb4a15fc474defed24a3bda4ffd88a490d517c9e4e6118c3edce59e45864131 yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 - yaml-merge (7.1.0) yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd @@ -916,7 +586,6 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 - zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH From 348517fb78545f5341408c5db03c8d54755bb3d7 Mon Sep 17 00:00:00 2001 From: "Peter H. Boling" Date: Tue, 21 Jul 2026 13:52:33 -0600 Subject: [PATCH 124/188] =?UTF-8?q?=F0=9F=8E=A8=20Template=20bootstrap=20b?= =?UTF-8?q?y=20kettle-jem=20v7.1.0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gems/ast-merge-git/Gemfile.lock | 322 +++++++++++++++- gems/bash-merge/.kettle-drift.lock | 9 - gems/bash-merge/README.md | 4 +- gems/bash-merge/bash-merge.gemspec | 88 ++--- .../modular/benchmark/r4/v0.5.gemfile | 2 +- .../gemfiles/modular/benchmark/vHEAD.gemfile | 2 +- .../gemfiles/modular/cgi/r4/v0.5.gemfile | 1 + .../gemfiles/modular/cgi/vHEAD.gemfile | 1 + .../gemfiles/modular/coverage.gemfile | 6 +- .../gemfiles/modular/coverage_local.gemfile | 48 ++- .../bash-merge/gemfiles/modular/debug.gemfile | 4 +- .../gemfiles/modular/documentation.gemfile | 24 +- .../modular/documentation_local.gemfile | 38 +- .../gemfiles/modular/erb/r2/v3.0.gemfile | 2 +- .../gemfiles/modular/erb/r3/v5.0.gemfile | 2 +- .../gemfiles/modular/erb/r4/v5.0.gemfile | 2 +- .../gemfiles/modular/erb/vHEAD.gemfile | 2 +- .../modular/json/truffleruby_22_3.gemfile | 6 + .../modular/json/truffleruby_23_0.gemfile | 6 + .../modular/json/truffleruby_23_1.gemfile | 6 + .../gemfiles/modular/mutex_m/r2/v0.3.gemfile | 2 +- .../gemfiles/modular/mutex_m/r3/v0.3.gemfile | 2 +- .../gemfiles/modular/mutex_m/r4/v0.3.gemfile | 2 +- .../gemfiles/modular/mutex_m/vHEAD.gemfile | 2 +- .../gemfiles/modular/optional.gemfile | 7 +- .../bash-merge/gemfiles/modular/rspec.gemfile | 8 +- .../gemfiles/modular/runtime_heads.gemfile | 7 +- .../gemfiles/modular/stringio/r2/v3.0.gemfile | 2 +- .../gemfiles/modular/stringio/r3/v3.0.gemfile | 2 +- .../gemfiles/modular/stringio/r4/v3.0.gemfile | 2 +- .../gemfiles/modular/stringio/vHEAD.gemfile | 2 +- .../bash-merge/gemfiles/modular/style.gemfile | 29 +- .../gemfiles/modular/style_local.gemfile | 44 ++- .../gemfiles/modular/templating.gemfile | 14 +- .../gemfiles/modular/templating_local.gemfile | 48 ++- .../gemfiles/modular/webrick/r4/v1.9.gemfile | 1 + .../gemfiles/modular/webrick/vHEAD.gemfile | 1 + .../gemfiles/modular/x_std_libs.gemfile | 14 +- .../modular/x_std_libs/r2/libs.gemfile | 6 +- .../modular/x_std_libs/r3/libs.gemfile | 6 +- .../modular/x_std_libs/r4/libs.gemfile | 10 +- .../gemfiles/modular/x_std_libs/vHEAD.gemfile | 10 +- gems/dotenv-merge/Gemfile.lock | 353 +++++++++++++++++- gems/plain-merge/.rubocop_gradual.lock | 22 +- gems/plain-merge/Gemfile | 70 ++-- gems/plain-merge/Gemfile.lock | 22 +- gems/plain-merge/Rakefile | 18 +- gems/plain-merge/bin/yard | 2 +- .../modular/benchmark/r4/v0.5.gemfile | 2 +- .../gemfiles/modular/benchmark/vHEAD.gemfile | 2 +- .../gemfiles/modular/cgi/r4/v0.5.gemfile | 2 +- .../gemfiles/modular/cgi/vHEAD.gemfile | 2 +- .../gemfiles/modular/coverage.gemfile | 6 +- .../gemfiles/modular/coverage_local.gemfile | 42 +-- .../gemfiles/modular/debug.gemfile | 4 +- .../gemfiles/modular/documentation.gemfile | 24 +- .../modular/documentation_local.gemfile | 30 +- .../gemfiles/modular/erb/r2/v3.0.gemfile | 2 +- .../gemfiles/modular/erb/r3/v5.0.gemfile | 2 +- .../gemfiles/modular/erb/r4/v5.0.gemfile | 2 +- .../gemfiles/modular/erb/vHEAD.gemfile | 2 +- .../modular/json/truffleruby_22_3.gemfile | 4 +- .../modular/json/truffleruby_23_0.gemfile | 4 +- .../modular/json/truffleruby_23_1.gemfile | 4 +- .../gemfiles/modular/mutex_m/r2/v0.3.gemfile | 2 +- .../gemfiles/modular/mutex_m/r3/v0.3.gemfile | 2 +- .../gemfiles/modular/mutex_m/r4/v0.3.gemfile | 2 +- .../gemfiles/modular/mutex_m/vHEAD.gemfile | 2 +- .../gemfiles/modular/optional.gemfile | 4 +- .../gemfiles/modular/rspec.gemfile | 8 +- .../gemfiles/modular/runtime_heads.gemfile | 2 +- .../gemfiles/modular/stringio/r2/v3.0.gemfile | 2 +- .../gemfiles/modular/stringio/r3/v3.0.gemfile | 2 +- .../gemfiles/modular/stringio/r4/v3.0.gemfile | 2 +- .../gemfiles/modular/stringio/vHEAD.gemfile | 2 +- .../gemfiles/modular/style.gemfile | 24 +- .../gemfiles/modular/style_local.gemfile | 32 +- .../gemfiles/modular/templating.gemfile | 12 +- .../gemfiles/modular/templating_local.gemfile | 44 ++- .../gemfiles/modular/webrick/r4/v1.9.gemfile | 2 +- .../gemfiles/modular/webrick/vHEAD.gemfile | 2 +- .../gemfiles/modular/x_std_libs.gemfile | 14 +- .../modular/x_std_libs/r2/libs.gemfile | 6 +- .../modular/x_std_libs/r3/libs.gemfile | 6 +- .../modular/x_std_libs/r4/libs.gemfile | 12 +- .../gemfiles/modular/x_std_libs/vHEAD.gemfile | 12 +- gems/plain-merge/lib/plain/merge/version.rb | 2 +- gems/tree_haver/Gemfile.lock | 333 ----------------- 88 files changed, 1186 insertions(+), 762 deletions(-) create mode 100644 gems/bash-merge/gemfiles/modular/cgi/r4/v0.5.gemfile create mode 100644 gems/bash-merge/gemfiles/modular/cgi/vHEAD.gemfile create mode 100644 gems/bash-merge/gemfiles/modular/json/truffleruby_22_3.gemfile create mode 100644 gems/bash-merge/gemfiles/modular/json/truffleruby_23_0.gemfile create mode 100644 gems/bash-merge/gemfiles/modular/json/truffleruby_23_1.gemfile create mode 100644 gems/bash-merge/gemfiles/modular/webrick/r4/v1.9.gemfile create mode 100644 gems/bash-merge/gemfiles/modular/webrick/vHEAD.gemfile diff --git a/gems/ast-merge-git/Gemfile.lock b/gems/ast-merge-git/Gemfile.lock index 1a44ab5de..9867fa004 100644 --- a/gems/ast-merge-git/Gemfile.lock +++ b/gems/ast-merge-git/Gemfile.lock @@ -7,7 +7,31 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/ast-merge + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly + specs: + ast-crispr-markdown-markly (7.1.0) + ast-crispr (= 7.1.0) + markly-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism + specs: + ast-crispr-ruby-prism (7.1.0) + ast-crispr (= 7.1.0) + prism-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr + specs: + ast-crispr (7.1.0) + ast-merge (= 7.1.0) + service_actor (~> 3.9) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge specs: ast-merge (7.1.0) benchmark @@ -16,13 +40,231 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/json-merge + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template + specs: + ast-template (7.1.0) + ast-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge + specs: + bash-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge + specs: + binary-merge (7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge + specs: + citrus-toml-merge (7.1.0) + toml-merge (= 7.1.0) + toml-rb (~> 4.1) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge + specs: + commonmarker-merge (7.1.0) + commonmarker (~> 2.2) + markdown-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge + specs: + dotenv-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge + specs: + go-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge specs: json-merge (7.1.0) ast-merge (= 7.1.0) tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem + specs: + kettle-jem (7.1.0) + addressable (>= 2.8, < 3) + ast-crispr-markdown-markly (= 7.1.0) + ast-crispr-ruby-prism (= 7.1.0) + ast-merge (= 7.1.0) + bash-merge (= 7.1.0) + citrus-toml-merge (= 7.1.0) + commonmarker-merge (= 7.1.0) + dotenv-merge (= 7.1.0) + json-merge (= 7.1.0) + kettle-dev (~> 2.3, >= 2.3.5) + kettle-rb (~> 0.1, >= 0.1.4) + kramdown-merge (= 7.1.0) + markdown-merge (= 7.1.0) + markly-merge (= 7.1.0) + prism-merge (= 7.1.0) + psych-merge (= 7.1.0) + rbs (>= 3.10) + rbs-merge (= 7.1.0) + ruby-merge (= 7.1.0) + token-resolver (~> 2.0, >= 2.0.4) + toml-merge (= 7.1.0) + toml-rb (~> 4.2) + tree_haver (= 7.1.0) + yaml-merge (= 7.1.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge + specs: + kramdown-merge (7.1.0) + kramdown (~> 2.5) + markdown-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge + specs: + markdown-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge + specs: + markly-merge (7.1.0) + markdown-merge (= 7.1.0) + markly (~> 0.9) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge + specs: + parslet-toml-merge (7.1.0) + toml (~> 0.3) + toml-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge + specs: + plain-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge + specs: + prism-merge (7.1.0) + prism (~> 1.6) + ruby-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge + specs: + psych-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + yaml-merge (= 7.1.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge + specs: + rbs-merge (7.1.0) + ast-merge (= 7.1.0) + rbs (>= 3.10) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge + specs: + ruby-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge + specs: + rust-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb + specs: + smorg-rb (7.1.0) + ast-merge (= 7.1.0) + ast-merge-git (= 7.1.0) + go-merge (= 7.1.0) + json-merge (= 7.1.0) + kettle-jem (= 7.1.0) + markly-merge (= 7.1.0) + plain-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge + specs: + toml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver + specs: + tree_haver (7.1.0) + citrus (~> 3.0) + parslet (~> 2.0) + tree_sitter_language_pack (>= 1.13.2, < 2.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge + specs: + typescript-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge + specs: + yaml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge + specs: + zip-merge (7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + GEM remote: https://gem.coop/ specs: @@ -47,6 +289,7 @@ GEM cgi (0.5.2) citrus (3.0.2) cmdparse (3.0.7) + commonmarker (2.9.0-x86_64-linux) concurrent-ruby (1.3.8) date (3.5.1) debug (1.11.1) @@ -109,6 +352,8 @@ GEM kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) + kettle-drift (1.0.6) + version_gem (~> 1.1, >= 1.1.14) kettle-rb (0.1.5) kettle-soup-cover (3.0.4) kettle-wash (~> 0.1, >= 0.1.0) @@ -137,6 +382,7 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) + markly (0.16.0) mutex_m (0.3.0) nokogiri (1.19.4-x86_64-linux-gnu) racc (~> 1.4) @@ -291,6 +537,8 @@ GEM ruby-progressbar (1.13.0) ruby_engine (2.0.3) ruby_version (1.0.3) + service_actor (3.9.4) + zeitwerk (>= 1.0) silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) @@ -345,11 +593,11 @@ GEM token-resolver (2.0.5) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.14) - tree_haver (7.1.0) - citrus (~> 3.0) - parslet (~> 2.0) - tree_sitter_language_pack (>= 1.13.2, < 2.0) - version_gem (~> 1.1, >= 1.1.9) + toml (0.3.0) + parslet (>= 1.8.0, < 3.0.0) + toml-rb (4.2.0) + citrus (~> 3.0, > 3.0) + racc (~> 1.7) tree_sitter_language_pack (1.13.3-x86_64-linux) sorbet-runtime (~> 0.5) tsort (0.2.0) @@ -395,26 +643,46 @@ DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) appraisal2-rubocop (~> 1.0, >= 1.0.0) + ast-crispr! + ast-crispr-markdown-markly! + ast-crispr-ruby-prism! ast-merge! ast-merge-git! + ast-template! + bash-merge! benchmark (~> 0.5, >= 0.5.0) + binary-merge! bundler-audit (~> 0.9.3) cgi (~> 0.5) + citrus-toml-merge! + commonmarker-merge! debug (>= 1.1) + dotenv-merge! erb (~> 6.0, >= 6.0.6) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.0) + go-merge! irb (~> 1.17) json-merge! kettle-dev (~> 2.0, >= 2.2.25) + kettle-drift (~> 1.0, >= 1.0.6) + kettle-jem! kettle-soup-cover (~> 3.0, >= 3.0.3) kettle-test (~> 2.0, >= 2.0.9) kramdown (~> 2.5, >= 2.5.2) + kramdown-merge! kramdown-parser-gfm (~> 1.1) + markdown-merge! + markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) + parslet-toml-merge! + plain-merge! + prism-merge! + psych-merge! rake (~> 13.0) rbs (>= 3.0) + rbs-merge! rdoc (~> 6.11) reek (~> 6.5, >= 6.5.0) require_bench (~> 1.0, >= 1.0.4) @@ -425,19 +693,27 @@ DEPENDENCIES rubocop-on-rbs (~> 2.0, >= 2.0.0) rubocop-packaging (~> 0.6, >= 0.6.0) rubocop-ruby3_2 (~> 3.0, >= 3.0.6) + ruby-merge! ruby-progressbar (~> 1.13) + rust-merge! + smorg-rb! standard (~> 1.56, >= 1.56.0) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) + toml-merge! + tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) + typescript-merge! webrick (~> 1.9) yaml-converter (~> 0.2, >= 0.2.3) + yaml-merge! yard (~> 0.9, >= 0.9.45) yard-fence (~> 0.9, >= 0.9.6) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) yard-timekeeper (~> 0.2, >= 0.2.4) yard-yaml (~> 0.2, >= 0.2.3) + zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af @@ -445,21 +721,31 @@ CHECKSUMS appraisal2 (3.2.0) sha256=ccd0b767ac4060cd7af6d16747459b6990f49c39c7b4fb1f7d1146b1e97c492f appraisal2-rubocop (1.0.0) sha256=b71410fbb014befda5340605a605b7f6f3f012739baf0acc5b4351b592c3258d ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 + ast-crispr (7.1.0) + ast-crispr-markdown-markly (7.1.0) + ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) ast-merge-git (7.1.0) + ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 + bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd + binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 + citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 + commonmarker (2.9.0-x86_64-linux) sha256=8cfe92970eef585a19ddf6613224b91cab64d6029834661bda801f877c9c7f43 + commonmarker-merge (7.1.0) concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 + dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -472,21 +758,28 @@ CHECKSUMS gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f + go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 json-merge (7.1.0) kettle-dev (2.3.8) sha256=9d716ff21c660a730cb4e8d41e2e2f0630a28167a354b6e2924e242102aef72c + kettle-drift (1.0.6) sha256=46eda08fa4411d1f3c6682a95eef1c9df4e94611b3949f49d4c7b43c0ed356a3 + kettle-jem (7.1.0) kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f kettle-soup-cover (3.0.4) kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa + kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 + markdown-merge (7.1.0) + markly (0.16.0) sha256=6f70d79e385b1efc9e171f74c81628826259039fe6c778e03c3924c71dac5511 + markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-x86_64-linux-gnu) sha256=379fae440b28915e3f19d752ce2dcf8465ed2b2fbefd2a7ca0dd497bc981a06a nomono (1.0.9) @@ -496,15 +789,20 @@ CHECKSUMS parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 + parslet-toml-merge (7.1.0) + plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 + prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 + psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 + rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb @@ -539,15 +837,19 @@ CHECKSUMS rubocop-rspec_rails (2.32.0) sha256=4a0d641c72f6ebb957534f539d9d0a62c47abd8ce0d0aeee1ef4701e892a9100 rubocop-ruby3_2 (3.0.7) sha256=f53dd6d286fb05186214fc6ec116783e7f837030918e8931c05de773e98f8466 rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 + ruby-merge (7.1.0) ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 + rust-merge (7.1.0) + service_actor (3.9.4) sha256=e63b523630b9a7e62959b2a90113b08d2565b5de9c148557b281ef847c9539ce silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed + smorg-rb (7.1.0) sorbet-runtime (0.6.13347) sha256=54e7221d9f4b63f58aec79f3043752a9ba7810347c6ae0d903531591cc2d5f01 standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b @@ -562,15 +864,20 @@ CHECKSUMS timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.5) sha256=b852f924287ffb58a440856e862b056c8ad97e74b4b2526cee43e0771f40c25c + toml (0.3.0) sha256=0a91d0f76a9036e84e44f95693b12f58d358c1df3ac8e3b5271f2056ecc6e4b9 + toml-merge (7.1.0) + toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 + typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 webrick (1.9.2) sha256=beb4a15fc474defed24a3bda4ffd88a490d517c9e4e6118c3edce59e45864131 yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 + yaml-merge (7.1.0) yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd @@ -578,6 +885,7 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 + zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH diff --git a/gems/bash-merge/.kettle-drift.lock b/gems/bash-merge/.kettle-drift.lock index 2ee9dae31..43dfedd67 100644 --- a/gems/bash-merge/.kettle-drift.lock +++ b/gems/bash-merge/.kettle-drift.lock @@ -52,14 +52,5 @@ 88 ] } - ], - "vendored_gems_env: 'VENDORED_GEMS',\nvendor_gem_dir_env: 'VENDOR_GEM_DIR',": [ - { - "file": "gemfiles/modular/templating_local.gemfile", - "lines": [ - 55, - 66 - ] - } ] } diff --git a/gems/bash-merge/README.md b/gems/bash-merge/README.md index 2e1055710..1f1c39220 100644 --- a/gems/bash-merge/README.md +++ b/gems/bash-merge/README.md @@ -75,7 +75,7 @@ File.write("merged.sh", result.to_bash) | Tokens to Remember | [![Gem name][⛳️name-img]][⛳️gem-name] [![Gem namespace][⛳️namespace-img]][⛳️gem-namespace] | |-------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | Works with MRI Ruby 4 | [![Ruby current Compat][💎ruby-c-i]][🚎11-c-wf]| -| Support & Community | [![Join Me on Daily.dev's RubyFriends][✉️ruby-friends-img]][✉️ruby-friends] [![Live Chat on Discord][✉️discord-invite-img-ftb]][✉️discord-invite] [![Get help from me on Upwork][👨🏼‍🏫expsup-upwork-img]][👨🏼‍🏫expsup-upwork] [![Get help from me on Codementor][👨🏼‍🏫expsup-codementor-img]][👨🏼‍🏫expsup-codementor] | +| Support & Community | [![Join Me on Daily.dev's RubyFriends][✉️ruby-friends-img]][✉️ruby-friends] [![Get help from RubyForum][✉️ruby-forum-img]][✉️ruby-forum] [![Live Chat on Discord][✉️discord-invite-img-ftb]][✉️discord-invite] [![Get help from me on Upwork][👨🏼‍🏫expsup-upwork-img]][👨🏼‍🏫expsup-upwork] [![Get help from me on Codementor][👨🏼‍🏫expsup-codementor-img]][👨🏼‍🏫expsup-codementor] | | Source | [![Source on GitLab.com][📜src-gl-img]][📜src-gl] [![Source on CodeBerg.org][📜src-cb-img]][📜src-cb] [![Source on Github.com][📜src-gh-img]][📜src-gh] [![The best SHA: dQw4w9WgXcQ!][🧮kloc-img]][🧮kloc] | | Documentation | [![Current release on RubyDoc.info][📜docs-cr-rd-img]][🚎yard-current] [![YARD on Galtzo.com][📜docs-head-rd-img]][🚎yard-head] [![Maintainer Blog][🚂maint-blog-img]][🚂maint-blog] [![GitLab Wiki][📜gl-wiki-img]][📜gl-wiki] [![GitHub Wiki][📜gh-wiki-img]][📜gh-wiki] | | Compliance | [![License: AGPL-3.0-only OR PolyForm-Small-Business-1.0.0][📄license-img]][📄license] [![Apache license compatibility: Category X][📄license-compat-img]][📄license-compat] [![📄ilo-declaration-img]][📄ilo-declaration] [![Security Policy][🔐security-img]][🔐security] [![Contributor Covenant 2.1][🪇conduct-img]][🪇conduct] [![SemVer 2.0.0][📌semver-img]][📌semver] | @@ -319,6 +319,8 @@ If none of the available licenses suit your use case, please [contact us](mailto [✉️discord-invite-img-ftb]: https://img.shields.io/discord/1373797679469170758?style=for-the-badge&logo=discord [✉️ruby-friends-img]: https://img.shields.io/badge/daily.dev-%F0%9F%92%8E_Ruby_Friends-0A0A0A?style=for-the-badge&logo=dailydotdev&logoColor=white [✉️ruby-friends]: https://app.daily.dev/squads/rubyfriends +[✉️ruby-forum-img]: https://img.shields.io/badge/RubyForum-Help-CC342D?style=for-the-badge&logo=ruby&logoColor=white +[✉️ruby-forum]: https://www.rubyforum.org/c/help/8 [✇bundle-group-pattern]: https://gist.github.com/pboling/4564780 [⛳️gem-namespace]: https://github.com/structuredmerge/structuredmerge-ruby/tree/main/gems/bash-merge [⛳️namespace-img]: https://img.shields.io/badge/namespace-Bash::Merge-3C2D2D.svg?style=square&logo=ruby&logoColor=white diff --git a/gems/bash-merge/bash-merge.gemspec b/gems/bash-merge/bash-merge.gemspec index 2e634fb4e..cccdf1dac 100644 --- a/gems/bash-merge/bash-merge.gemspec +++ b/gems/bash-merge/bash-merge.gemspec @@ -9,47 +9,47 @@ Gem::Specification.new do |spec| spec.name = 'bash-merge' spec.version = Module.new.tap { |mod| Kernel.load("#{__dir__}/lib/bash/merge/version.rb", mod) }::Bash::Merge::Version::VERSION - spec.authors = ['Peter H. Boling'] - spec.email = ['floss@galtzo.com'] + spec.authors = ["Peter H. Boling"] + spec.email = ["floss@galtzo.com"] spec.summary = '☯️ Structured Merge Bash analysis and merge for Ruby' spec.description = '☯️ Bash statement, comment, freeze-block, and template merge behavior for Structured Merge.' spec.homepage = 'https://github.com/structuredmerge/structuredmerge-ruby' - spec.licenses = ['AGPL-3.0-only', 'PolyForm-Small-Business-1.0.0'] - spec.required_ruby_version = '>= 4.0.0' + spec.licenses = ["AGPL-3.0-only", "PolyForm-Small-Business-1.0.0"] + spec.required_ruby_version = ">= 4.0.0" # Linux distros often package gems and securely certify them independent # of the official RubyGem certification process. Allowed via ENV["SKIP_GEM_SIGNING"] # Ref: https://gitlab.com/ruby-oauth/version_gem/-/issues/3 # Hence, only enable signing if `SKIP_GEM_SIGNING` is not set in ENV. # See CONTRIBUTING.md - unless ENV.include?('SKIP_GEM_SIGNING') - user_cert = "certs/#{ENV.fetch('GEM_CERT_USER', ENV['USER'])}.pem" + unless ENV.include?("SKIP_GEM_SIGNING") + user_cert = "certs/#{ENV.fetch("GEM_CERT_USER", ENV["USER"])}.pem" cert_file_path = File.join(__dir__, user_cert) - cert_chain = cert_file_path.split(',') + cert_chain = cert_file_path.split(",") cert_chain.select! { |fp| File.exist?(fp) } if cert_file_path && cert_chain.any? spec.cert_chain = cert_chain - if $PROGRAM_NAME.end_with?('gem') && ARGV[0] == 'build' - spec.signing_key = File.join(Gem.user_home, '.ssh', 'gem-private_key.pem') + if $PROGRAM_NAME.end_with?("gem") && ARGV[0] == "build" + spec.signing_key = File.join(Gem.user_home, ".ssh", "gem-private_key.pem") end end end - spec.metadata['homepage_uri'] = 'https://structuredmerge.org' - spec.metadata['source_code_uri'] = "#{spec.homepage}/tree/v#{spec.version}" - spec.metadata['changelog_uri'] = "#{spec.homepage}/blob/v#{spec.version}/CHANGELOG.md" - spec.metadata['bug_tracker_uri'] = "#{spec.homepage}/issues" - spec.metadata['documentation_uri'] = "https://www.rubydoc.info/gems/#{spec.name}/#{spec.version}" - spec.metadata['funding_uri'] = 'https://github.com/sponsors/pboling' - spec.metadata['wiki_uri'] = "#{spec.homepage}/wiki" - spec.metadata['news_uri'] = "https://www.railsbling.com/tags/#{spec.name}" - spec.metadata['discord_uri'] = 'https://discord.gg/3qme4XHNKN' - spec.metadata['rubygems_mfa_required'] = 'true' + spec.metadata["homepage_uri"] = "https://structuredmerge.org" + spec.metadata["source_code_uri"] = "#{spec.homepage}/tree/v#{spec.version}" + spec.metadata["changelog_uri"] = "#{spec.homepage}/blob/v#{spec.version}/CHANGELOG.md" + spec.metadata["bug_tracker_uri"] = "#{spec.homepage}/issues" + spec.metadata["documentation_uri"] = "https://www.rubydoc.info/gems/#{spec.name}/#{spec.version}" + spec.metadata["funding_uri"] = "https://github.com/sponsors/pboling" + spec.metadata["wiki_uri"] = "#{spec.homepage}/wiki" + spec.metadata["news_uri"] = "https://www.railsbling.com/tags/#{spec.name}" + spec.metadata["discord_uri"] = "https://discord.gg/3qme4XHNKN" + spec.metadata["rubygems_mfa_required"] = "true" enumerate_package_files = lambda do |root| - Dir.glob(File.join(root, '**', '*'), File::FNM_DOTMATCH).select do |path| - File.file?(path) && !['.', '..'].include?(File.basename(path)) + Dir.glob(File.join(root, "**", "*"), File::FNM_DOTMATCH).select do |path| + File.file?(path) && ![".", ".."].include?(File.basename(path)) end end package_metadata_files = %w[ @@ -69,25 +69,25 @@ Gem::Specification.new do |spec| *enumerate_package_files.call('exe') ] spec.rdoc_options += [ - '--title', + "--title", "#{spec.name} - #{spec.summary}", - '--main', - 'README.md', - '--exclude', - '^sig/', - '--line-numbers', - '--inline-source', - '--quiet' + "--main", + "README.md", + "--exclude", + "^sig/", + "--line-numbers", + "--inline-source", + "--quiet" ] - spec.bindir = 'exe' + spec.bindir = "exe" # Listed files are the relative paths from bindir above. spec.executables = [] - spec.require_paths = ['lib'] + spec.require_paths = ["lib"] # Utilities spec.add_dependency 'ast-merge', "= #{spec.version}" spec.add_dependency 'tree_haver', "= #{spec.version}" - spec.add_dependency('version_gem', '~> 1.1', '>= 1.1.14') # ruby >= 2.2.0 + spec.add_dependency("version_gem", "~> 1.1", ">= 1.1.14") # ruby >= 2.2.0 # NOTE: It is preferable to list development dependencies in the gemspec due to increased # visibility and discoverability. @@ -103,26 +103,30 @@ Gem::Specification.new do |spec| # and preferably a modular one (see gemfiles/modular/*.gemfile). # Dev, Test, & Release Tasks - spec.add_development_dependency('kettle-dev', '~> 2.3', '>= 2.3.7') # ruby >= 4.0.0 + spec.add_development_dependency("kettle-dev", "~> 2.3", ">= 2.3.7") # ruby >= 4.0.0 # Security - spec.add_development_dependency('bundler-audit', '~> 0.9.3') # ruby >= 2.0.0 + spec.add_development_dependency("bundler-audit", "~> 0.9.3") # ruby >= 2.0.0 # Tasks - spec.add_development_dependency('rake', '~> 13.0') # ruby >= 2.2.0 + spec.add_development_dependency("rake", "~> 13.0") # ruby >= 2.2.0 # Debugging - spec.add_development_dependency('require_bench', '~> 1.0', '>= 1.0.4') # ruby >= 2.2.0 + spec.add_development_dependency("require_bench", "~> 1.0", ">= 1.0.4") # ruby >= 2.2.0 # Testing - spec.add_development_dependency('appraisal2', '~> 3.2', '>= 3.2.0') # ruby >= 1.8.7, for testing against multiple versions of dependencies - spec.add_development_dependency('kettle-test', '~> 2.0', '>= 2.0.11') # ruby >= 4.0.0 - spec.add_development_dependency('turbo_tests2', '~> 3.2', '>= 3.2.0') # ruby >= 2.4.0, default kettle-test runner + spec.add_development_dependency("appraisal2", "~> 3.2", ">= 3.2.0") # ruby >= 1.8.7, for testing against multiple versions of dependencies + spec.add_development_dependency("kettle-test", "~> 2.0", ">= 2.0.12") # ruby >= 4.0.0 + spec.add_development_dependency("turbo_tests2", "~> 3.2", ">= 3.2.0") # ruby >= 2.4.0, default kettle-test runner # Releasing - spec.add_development_dependency('ruby-progressbar', '~> 1.13') # ruby >= 0 - spec.add_development_dependency('stone_checksums', '~> 1.0', '>= 1.0.6') # ruby >= 2.2.0 + spec.add_development_dependency("ruby-progressbar", "~> 1.13") # ruby >= 0 + spec.add_development_dependency("stone_checksums", "~> 1.0", ">= 1.0.6") # ruby >= 2.2.0 + # Development tasks + # The cake is a lie. erb v2.2, the oldest release, was never compatible with Ruby 2.3. + # This means we have no choice but to use the erb that shipped with Ruby 2.3 + # /opt/hostedtoolcache/Ruby/2.3.8/x64/lib/ruby/gems/2.3.0/gems/erb-2.2.2/lib/erb.rb:670:in `prepare_trim_mode': undefined method `match?' for "-":String (NoMethodError) # spec.add_development_dependency("erb", ">= 2.2") # ruby >= 2.3.0, not SemVer, old rubies get dropped in a patch. - spec.add_development_dependency('gitmoji-regex', '~> 2.0', '>= 2.0.4') # ruby >= 2.4 + spec.add_development_dependency("gitmoji-regex", "~> 2.0", ">= 2.0.4") # ruby >= 2.4 end diff --git a/gems/bash-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile b/gems/bash-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile index b8392fab0..dec650815 100644 --- a/gems/bash-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile +++ b/gems/bash-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.1 -gem 'benchmark', '~> 0.5', '>= 0.5.0' # Removed from Std Lib in Ruby 4.0 +gem "benchmark", "~> 0.5", ">= 0.5.0" # Removed from Std Lib in Ruby 4.0 diff --git a/gems/bash-merge/gemfiles/modular/benchmark/vHEAD.gemfile b/gems/bash-merge/gemfiles/modular/benchmark/vHEAD.gemfile index af214aafa..e1eb20c5e 100644 --- a/gems/bash-merge/gemfiles/modular/benchmark/vHEAD.gemfile +++ b/gems/bash-merge/gemfiles/modular/benchmark/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.1 -gem 'benchmark', github: 'ruby/benchmark', branch: 'master' +gem "benchmark", github: "ruby/benchmark", branch: "master" diff --git a/gems/bash-merge/gemfiles/modular/cgi/r4/v0.5.gemfile b/gems/bash-merge/gemfiles/modular/cgi/r4/v0.5.gemfile new file mode 100644 index 000000000..19ed967c3 --- /dev/null +++ b/gems/bash-merge/gemfiles/modular/cgi/r4/v0.5.gemfile @@ -0,0 +1 @@ +gem "cgi", "~> 0.5" diff --git a/gems/bash-merge/gemfiles/modular/cgi/vHEAD.gemfile b/gems/bash-merge/gemfiles/modular/cgi/vHEAD.gemfile new file mode 100644 index 000000000..ef8b816ce --- /dev/null +++ b/gems/bash-merge/gemfiles/modular/cgi/vHEAD.gemfile @@ -0,0 +1 @@ +gem "cgi", ">= 0.5" diff --git a/gems/bash-merge/gemfiles/modular/coverage.gemfile b/gems/bash-merge/gemfiles/modular/coverage.gemfile index f96d50954..52d737872 100644 --- a/gems/bash-merge/gemfiles/modular/coverage.gemfile +++ b/gems/bash-merge/gemfiles/modular/coverage.gemfile @@ -4,11 +4,11 @@ # Set KETTLE_DEV_DEV=true for local development with path-based dependencies. # When false (default / CI), remote released gems are used. -if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? +if ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false").zero? # Coverage (remote/released) platform :mri do - gem 'kettle-soup-cover', '~> 1.0', '>= 1.1.3', require: false + gem "kettle-soup-cover", "~> 3.0", ">= 3.0.3", require: false end else - eval_gemfile 'coverage_local.gemfile' + eval_gemfile "coverage_local.gemfile" end diff --git a/gems/bash-merge/gemfiles/modular/coverage_local.gemfile b/gems/bash-merge/gemfiles/modular/coverage_local.gemfile index 552281690..6b6462501 100644 --- a/gems/bash-merge/gemfiles/modular/coverage_local.gemfile +++ b/gems/bash-merge/gemfiles/modular/coverage_local.gemfile @@ -3,31 +3,53 @@ # Local path overrides for development. # Loaded by the associated non-local gemfile when KETTLE_DEV_DEV != "false". -require 'nomono/bundler' unless defined?(Nomono) +# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. +# Bundler records that dependency during Gemfile evaluation, but it does not +# activate that exact version before the immediate `require "nomono/bundler"`. +# If multiple compatible nomono versions are installed, RubyGems may activate +# the newest installed version while Gemfile.lock pins an older compatible one; +# Bundler then aborts with "already activated nomono X, but your Gemfile +# requires nomono Y". Prefer the locked compatible version when present, then +# activate it explicitly before requiring the Bundler DSL extension used below. +nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] +nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) +if File.file?(nomono_lockfile) + nomono_locked_spec = Bundler::LockfileParser + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == "nomono" } + nomono_locked = nomono_locked_spec && + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + if nomono_locked + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] + end +end +Kernel.send(:gem, "nomono", *nomono_activation_requirements) +require "nomono/bundler" local_gems = %w[kettle-dev kettle-test kettle-soup-cover kettle-drift] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) local_gems_to_eval = local_gems - %w[bash-merge] - declared_gems -# export KETTLE_DEV_DEV=/path/to/kettle-rb +# export KETTLE_DEV_DEV=/path/to/my platform :mri do eval_nomono_gems( gems: local_gems_to_eval, - prefix: 'KETTLE_DEV', - path_env: 'KETTLE_DEV_DEV', - vendored_gems_env: 'VENDORED_GEMS', - vendor_gem_dir_env: 'VENDOR_GEM_DIR', - debug_env: 'KETTLE_DEV_DEBUG' + prefix: "KETTLE_DEV", + path_env: "KETTLE_DEV_DEV", + vendored_gems_env: "VENDORED_GEMS", + vendor_gem_dir_env: "VENDOR_GEM_DIR", + debug_env: "KETTLE_DEV_DEBUG" ) - if ENV.fetch('GALTZO_FLOSS_DEV', 'false').casecmp('false') != 0 + if ENV.fetch("GALTZO_FLOSS_DEV", "false").casecmp("false") != 0 eval_nomono_gems( gems: %w[turbo_tests2], - prefix: 'GALTZO_FLOSS', - path_env: 'GALTZO_FLOSS_DEV', - vendored_gems_env: 'GALTZO_FLOSS_VENDORED_GEMS', - vendor_gem_dir_env: 'GALTZO_FLOSS_VENDOR_GEM_DIR', - debug_env: 'GALTZO_FLOSS_DEBUG' + prefix: "GALTZO_FLOSS", + path_env: "GALTZO_FLOSS_DEV", + vendored_gems_env: "GALTZO_FLOSS_VENDORED_GEMS", + vendor_gem_dir_env: "GALTZO_FLOSS_VENDOR_GEM_DIR", + debug_env: "GALTZO_FLOSS_DEBUG" ) end end diff --git a/gems/bash-merge/gemfiles/modular/debug.gemfile b/gems/bash-merge/gemfiles/modular/debug.gemfile index eed8d4d1e..4e15b1a3a 100644 --- a/gems/bash-merge/gemfiles/modular/debug.gemfile +++ b/gems/bash-merge/gemfiles/modular/debug.gemfile @@ -13,10 +13,10 @@ platform :mri do # Debugging - Ensure ENV["DEBUG"] == "true" to use debuggers within spec suite # Use binding.break, binding.b, or debugger in code - gem 'debug', '>= 1.1' # ruby >= 2.7 + gem "debug", ">= 1.1" # ruby >= 2.7 # Dev Console - Binding.pry - Irb replacement # gem "pry", "~> 0.14" # ruby >= 2.0 end -gem 'gem_bench', '~> 2.0', '>= 2.0.5' +gem "gem_bench", "~> 2.0", ">= 2.0.5" diff --git a/gems/bash-merge/gemfiles/modular/documentation.gemfile b/gems/bash-merge/gemfiles/modular/documentation.gemfile index dff5cc108..d8215416e 100644 --- a/gems/bash-merge/gemfiles/modular/documentation.gemfile +++ b/gems/bash-merge/gemfiles/modular/documentation.gemfile @@ -7,20 +7,20 @@ # # Documentation -gem 'kramdown', '~> 2.5', '>= 2.5.1', require: false # Ruby >= 2.5 -gem 'kramdown-parser-gfm', '~> 1.1', require: false # Ruby >= 2.3 -gem 'yaml-converter', '~> 0.1', require: false # Ruby >= 3.2 -gem 'yard', '~> 0.9', '>= 0.9.44', require: false -gem 'yard-junk', '~> 0.1', '>= 0.1.0', require: false # Ruby >= 3.1 -gem 'yard-relative_markdown_links', '~> 0.6', require: false +gem "kramdown", "~> 2.5", ">= 2.5.2", require: false # Ruby >= 2.5 +gem "kramdown-parser-gfm", "~> 1.1", require: false # Ruby >= 2.3 +gem "yaml-converter", "~> 0.2", ">= 0.2.3", require: false # Ruby >= 3.2 +gem "yard", "~> 0.9", ">= 0.9.45", require: false +gem "yard-junk", "~> 0.1", ">= 0.1.0", require: false # Ruby >= 3.1 +gem "yard-relative_markdown_links", "~> 0.6", require: false -if ENV.fetch('GALTZO_FLOSS_DEV', 'false').casecmp('false').zero? - gem 'yard-fence', '~> 0.9', '>= 0.9.1', require: false # Ruby >= 3.2 - gem 'yard-timekeeper', '~> 0.1', require: false - gem 'yard-yaml', '~> 0.1', '>= 0.1.2', require: false +if ENV.fetch("GALTZO_FLOSS_DEV", "false").casecmp("false").zero? + gem "yard-fence", "~> 0.9", ">= 0.9.6", require: false # Ruby >= 3.2 + gem "yard-timekeeper", "~> 0.2", ">= 0.2.4", require: false + gem "yard-yaml", "~> 0.2", ">= 0.2.3", require: false else - eval_gemfile 'documentation_local.gemfile' + eval_gemfile "documentation_local.gemfile" end # Std Lib extractions -gem 'rdoc', '~> 6.11', require: false unless ENV.fetch('KJ_FRAMEWORK_MATRIX_GEM', '') == 'rdoc' +gem "rdoc", "~> 6.11", require: false unless ENV.fetch("KJ_FRAMEWORK_MATRIX_GEM", "") == "rdoc" diff --git a/gems/bash-merge/gemfiles/modular/documentation_local.gemfile b/gems/bash-merge/gemfiles/modular/documentation_local.gemfile index 4d4c2bd95..3dc825c13 100644 --- a/gems/bash-merge/gemfiles/modular/documentation_local.gemfile +++ b/gems/bash-merge/gemfiles/modular/documentation_local.gemfile @@ -3,16 +3,40 @@ # Local path overrides for development. # Loaded by the associated non-local gemfile when GALTZO_FLOSS_DEV != "false". -require 'nomono/bundler' unless defined?(Nomono) +# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. +# Bundler records that dependency during Gemfile evaluation, but it does not +# activate that exact version before the immediate `require "nomono/bundler"`. +# If multiple compatible nomono versions are installed, RubyGems may activate +# the newest installed version while Gemfile.lock pins an older compatible one; +# Bundler then aborts with "already activated nomono X, but your Gemfile +# requires nomono Y". Prefer the locked compatible version when present, then +# activate it explicitly before requiring the Bundler DSL extension used below. +nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] +nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) +if File.file?(nomono_lockfile) + nomono_locked_spec = Bundler::LockfileParser + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == "nomono" } + nomono_locked = nomono_locked_spec && + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + if nomono_locked + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] + end +end +Kernel.send(:gem, "nomono", *nomono_activation_requirements) +require "nomono/bundler" local_gems = %w[yard-fence yard-timekeeper yard-yaml] +declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) +local_gems_to_eval = local_gems - %w[bash-merge] - declared_gems # export GALTZO_FLOSS_DEV=/path/to/galtzo-floss eval_nomono_gems( - gems: local_gems, - prefix: 'GALTZO_FLOSS', - path_env: 'GALTZO_FLOSS_DEV', - vendored_gems_env: 'GALTZO_FLOSS_VENDORED_GEMS', - vendor_gem_dir_env: 'GALTZO_FLOSS_VENDOR_GEM_DIR', - debug_env: 'GALTZO_FLOSS_DEBUG' + gems: local_gems_to_eval, + prefix: "GALTZO_FLOSS", + path_env: "GALTZO_FLOSS_DEV", + vendored_gems_env: "GALTZO_FLOSS_VENDORED_GEMS", + vendor_gem_dir_env: "GALTZO_FLOSS_VENDOR_GEM_DIR", + debug_env: "GALTZO_FLOSS_DEBUG" ) diff --git a/gems/bash-merge/gemfiles/modular/erb/r2/v3.0.gemfile b/gems/bash-merge/gemfiles/modular/erb/r2/v3.0.gemfile index 7c83a239b..c03bd8d85 100644 --- a/gems/bash-merge/gemfiles/modular/erb/r2/v3.0.gemfile +++ b/gems/bash-merge/gemfiles/modular/erb/r2/v3.0.gemfile @@ -1 +1 @@ -gem 'erb', '~> 3.0' # ruby >= 2.7.0 +gem "erb", "~> 3.0" # ruby >= 2.7.0 diff --git a/gems/bash-merge/gemfiles/modular/erb/r3/v5.0.gemfile b/gems/bash-merge/gemfiles/modular/erb/r3/v5.0.gemfile index 0e3bf1b97..1bd029cc1 100644 --- a/gems/bash-merge/gemfiles/modular/erb/r3/v5.0.gemfile +++ b/gems/bash-merge/gemfiles/modular/erb/r3/v5.0.gemfile @@ -1 +1 @@ -gem 'erb', '~> 6.0', '>= 6.0.4' # ruby >= 3.2.0 +gem "erb", "~> 6.0", ">= 6.0.6" # ruby >= 3.2.0 diff --git a/gems/bash-merge/gemfiles/modular/erb/r4/v5.0.gemfile b/gems/bash-merge/gemfiles/modular/erb/r4/v5.0.gemfile index 0e3bf1b97..1bd029cc1 100644 --- a/gems/bash-merge/gemfiles/modular/erb/r4/v5.0.gemfile +++ b/gems/bash-merge/gemfiles/modular/erb/r4/v5.0.gemfile @@ -1 +1 @@ -gem 'erb', '~> 6.0', '>= 6.0.4' # ruby >= 3.2.0 +gem "erb", "~> 6.0", ">= 6.0.6" # ruby >= 3.2.0 diff --git a/gems/bash-merge/gemfiles/modular/erb/vHEAD.gemfile b/gems/bash-merge/gemfiles/modular/erb/vHEAD.gemfile index ea0101185..48fee4218 100644 --- a/gems/bash-merge/gemfiles/modular/erb/vHEAD.gemfile +++ b/gems/bash-merge/gemfiles/modular/erb/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 3.2 -gem 'erb', github: 'ruby/erb', branch: 'master' +gem "erb", github: "ruby/erb", branch: "master" diff --git a/gems/bash-merge/gemfiles/modular/json/truffleruby_22_3.gemfile b/gems/bash-merge/gemfiles/modular/json/truffleruby_22_3.gemfile new file mode 100644 index 000000000..b0e69ab11 --- /dev/null +++ b/gems/bash-merge/gemfiles/modular/json/truffleruby_22_3.gemfile @@ -0,0 +1,6 @@ +# frozen_string_literal: true + +if RUBY_ENGINE == "truffleruby" && RUBY_ENGINE_VERSION.start_with?("22.3") + # TruffleRuby 22.3 ships the json default gem from its emulated MRI Ruby. + gem "json", "= 2.5.1" +end diff --git a/gems/bash-merge/gemfiles/modular/json/truffleruby_23_0.gemfile b/gems/bash-merge/gemfiles/modular/json/truffleruby_23_0.gemfile new file mode 100644 index 000000000..7b2660a2b --- /dev/null +++ b/gems/bash-merge/gemfiles/modular/json/truffleruby_23_0.gemfile @@ -0,0 +1,6 @@ +# frozen_string_literal: true + +if RUBY_ENGINE == "truffleruby" && RUBY_ENGINE_VERSION.start_with?("23.0") + # TruffleRuby 23.0 ships the json default gem from its emulated MRI Ruby. + gem "json", "= 2.6.1" +end diff --git a/gems/bash-merge/gemfiles/modular/json/truffleruby_23_1.gemfile b/gems/bash-merge/gemfiles/modular/json/truffleruby_23_1.gemfile new file mode 100644 index 000000000..dfa21f2e4 --- /dev/null +++ b/gems/bash-merge/gemfiles/modular/json/truffleruby_23_1.gemfile @@ -0,0 +1,6 @@ +# frozen_string_literal: true + +if RUBY_ENGINE == "truffleruby" && RUBY_ENGINE_VERSION.start_with?("23.1") + # TruffleRuby 23.1 ships the json default gem from its emulated MRI Ruby. + gem "json", "= 2.6.3" +end diff --git a/gems/bash-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile b/gems/bash-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile index e27f1bbae..42e9d9bd4 100644 --- a/gems/bash-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile +++ b/gems/bash-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 -gem 'mutex_m', '~> 0.2' +gem "mutex_m", "~> 0.2" diff --git a/gems/bash-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile b/gems/bash-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile index e27f1bbae..42e9d9bd4 100644 --- a/gems/bash-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile +++ b/gems/bash-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 -gem 'mutex_m', '~> 0.2' +gem "mutex_m", "~> 0.2" diff --git a/gems/bash-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile b/gems/bash-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile index e27f1bbae..42e9d9bd4 100644 --- a/gems/bash-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile +++ b/gems/bash-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 -gem 'mutex_m', '~> 0.2' +gem "mutex_m", "~> 0.2" diff --git a/gems/bash-merge/gemfiles/modular/mutex_m/vHEAD.gemfile b/gems/bash-merge/gemfiles/modular/mutex_m/vHEAD.gemfile index 9dac2f6cb..8af3b6fca 100644 --- a/gems/bash-merge/gemfiles/modular/mutex_m/vHEAD.gemfile +++ b/gems/bash-merge/gemfiles/modular/mutex_m/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 (dependency of omniauth) -gem 'mutex_m', github: 'ruby/mutex_m', branch: 'master' +gem "mutex_m", github: "ruby/mutex_m", branch: "master" diff --git a/gems/bash-merge/gemfiles/modular/optional.gemfile b/gems/bash-merge/gemfiles/modular/optional.gemfile index 831371a19..80bc45196 100644 --- a/gems/bash-merge/gemfiles/modular/optional.gemfile +++ b/gems/bash-merge/gemfiles/modular/optional.gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -# To retain during bash-merge templating: +# To retain during kettle-jem templating: # kettle-jem:freeze # # ... your code # kettle-jem:unfreeze @@ -9,9 +9,8 @@ # Optional dependencies are not depended on directly, but may be used if present. # Required for curated binstubs generated by kettle-jem install -gem 'rbs', '>= 3.0', require: false # ruby >= 3.1 -gem 'stone_checksums', '~> 1.0', '>= 1.0.3', require: false # ruby >= 2.2 +gem "rbs", ">= 3.0", require: false # ruby >= 3.1 # Required for kettle-pre-release # URL parsing with Unicode support (falls back to URI if not available) -gem 'addressable', '>= 2.8', '< 3' # ruby >= 2.2 +gem "addressable", ">= 2.8", "< 3" # ruby >= 2.2 diff --git a/gems/bash-merge/gemfiles/modular/rspec.gemfile b/gems/bash-merge/gemfiles/modular/rspec.gemfile index 2af210a41..72fdf8b7f 100644 --- a/gems/bash-merge/gemfiles/modular/rspec.gemfile +++ b/gems/bash-merge/gemfiles/modular/rspec.gemfile @@ -1,4 +1,4 @@ -gem 'rspec_junit_formatter', - github: 'pboling/rspec_junit_formatter', - branch: 'main', - ref: '9e6bcaaedd49477b62878ed568dc4ada5cc7cb5e' +gem "rspec_junit_formatter", + github: "pboling/rspec_junit_formatter", + branch: "main", + ref: "9e6bcaaedd49477b62878ed568dc4ada5cc7cb5e" diff --git a/gems/bash-merge/gemfiles/modular/runtime_heads.gemfile b/gems/bash-merge/gemfiles/modular/runtime_heads.gemfile index 282073e0d..02f134c7f 100644 --- a/gems/bash-merge/gemfiles/modular/runtime_heads.gemfile +++ b/gems/bash-merge/gemfiles/modular/runtime_heads.gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -# To retain during bash-merge templating: +# To retain during kettle-jem templating: # kettle-jem:freeze # # ... your code # kettle-jem:unfreeze @@ -8,7 +8,4 @@ # Test against HEAD of runtime dependencies so we can proactively file bugs -# Ruby >= 2.2 -gem 'version_gem', github: 'ruby-oauth/version_gem', branch: 'main' - -eval_gemfile('x_std_libs/vHEAD.gemfile') +eval_gemfile("x_std_libs/vHEAD.gemfile") diff --git a/gems/bash-merge/gemfiles/modular/stringio/r2/v3.0.gemfile b/gems/bash-merge/gemfiles/modular/stringio/r2/v3.0.gemfile index 3616f4e3a..e85bb18ee 100644 --- a/gems/bash-merge/gemfiles/modular/stringio/r2/v3.0.gemfile +++ b/gems/bash-merge/gemfiles/modular/stringio/r2/v3.0.gemfile @@ -2,4 +2,4 @@ # NOT SEMVER # Version 3.0.7 dropped support for Ruby <= 2.7 # Version 3.0.0 dropped support for Ruby <= 2.4 -gem 'stringio', '>= 3.0' +gem "stringio", ">= 3.0" diff --git a/gems/bash-merge/gemfiles/modular/stringio/r3/v3.0.gemfile b/gems/bash-merge/gemfiles/modular/stringio/r3/v3.0.gemfile index 3616f4e3a..e85bb18ee 100644 --- a/gems/bash-merge/gemfiles/modular/stringio/r3/v3.0.gemfile +++ b/gems/bash-merge/gemfiles/modular/stringio/r3/v3.0.gemfile @@ -2,4 +2,4 @@ # NOT SEMVER # Version 3.0.7 dropped support for Ruby <= 2.7 # Version 3.0.0 dropped support for Ruby <= 2.4 -gem 'stringio', '>= 3.0' +gem "stringio", ">= 3.0" diff --git a/gems/bash-merge/gemfiles/modular/stringio/r4/v3.0.gemfile b/gems/bash-merge/gemfiles/modular/stringio/r4/v3.0.gemfile index 3616f4e3a..e85bb18ee 100644 --- a/gems/bash-merge/gemfiles/modular/stringio/r4/v3.0.gemfile +++ b/gems/bash-merge/gemfiles/modular/stringio/r4/v3.0.gemfile @@ -2,4 +2,4 @@ # NOT SEMVER # Version 3.0.7 dropped support for Ruby <= 2.7 # Version 3.0.0 dropped support for Ruby <= 2.4 -gem 'stringio', '>= 3.0' +gem "stringio", ">= 3.0" diff --git a/gems/bash-merge/gemfiles/modular/stringio/vHEAD.gemfile b/gems/bash-merge/gemfiles/modular/stringio/vHEAD.gemfile index 78f5f5d8a..5f2a74126 100644 --- a/gems/bash-merge/gemfiles/modular/stringio/vHEAD.gemfile +++ b/gems/bash-merge/gemfiles/modular/stringio/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 (dependency of omniauth) -gem 'stringio', github: 'ruby/stringio', branch: 'master' +gem "stringio", github: "ruby/stringio", branch: "master" diff --git a/gems/bash-merge/gemfiles/modular/style.gemfile b/gems/bash-merge/gemfiles/modular/style.gemfile index 515974f89..35de4dcd6 100644 --- a/gems/bash-merge/gemfiles/modular/style.gemfile +++ b/gems/bash-merge/gemfiles/modular/style.gemfile @@ -1,28 +1,31 @@ # frozen_string_literal: true -# To retain during bash-merge templating: +# To retain during kettle-jem templating: # kettle-jem:freeze # # ... your code # kettle-jem:unfreeze # -# We run rubocop on the latest version of Ruby, -# but in support of the oldest supported version of Ruby +# Style tasks run on the latest Ruby; RuboCop-LTS selects the compatibility +# rules for the configured Ruby floor independently from task dependency floors. -gem 'reek', '~> 6.5' +gem "reek", "~> 6.5", ">= 6.5.0" platform :mri do - gem 'rubocop-on-rbs', '~> 2.0' # ruby >= 3.2.0 + gem "appraisal2-rubocop", "~> 1.0", ">= 1.0.0", require: false + gem "rubocop-gradual", "~> 0.4", ">= 0.4.0" + gem "rubocop-minitest", "~> 0.40", ">= 0.40.0" + gem "rubocop-on-rbs", "~> 2.0", ">= 2.0.0" # ruby >= 3.2.0 # gem "rubocop", "~> 1.73", ">= 1.73.2" # constrained by standard - gem 'rubocop-packaging', '~> 0.6', '>= 0.6.0' - gem 'standard', '>= 1.50' + gem "rubocop-packaging", "~> 0.6", ">= 0.6.0" + gem "standard", "~> 1.56", ">= 1.56.0" - if ENV.fetch('RUBOCOP_LTS_LOCAL', 'false').casecmp('false').zero? - gem 'rubocop-lts', '~> 24.1.0' - # "rubocop-lts-rspec" can't add here until other gems are updated. - gem 'rubocop-rspec', '~> 3.6' - gem 'rubocop-ruby3_2', '~> 3.0.0' + if ENV.fetch("RUBOCOP_LTS_LOCAL", "false").casecmp("false").zero? + declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) + gem "rubocop-lts", "~> 24.2", ">= 24.2.1" unless declared_gems.include?("rubocop-lts") + gem "rubocop-lts-rspec", "~> 1.0", ">= 1.0.5" unless declared_gems.include?("rubocop-lts-rspec") + gem "rubocop-ruby3_2", "~> 3.0", ">= 3.0.6" unless declared_gems.include?("rubocop-ruby3_2") else - eval_gemfile('style_local.gemfile') + eval_gemfile("style_local.gemfile") end end diff --git a/gems/bash-merge/gemfiles/modular/style_local.gemfile b/gems/bash-merge/gemfiles/modular/style_local.gemfile index ce75bbe21..db620af4f 100644 --- a/gems/bash-merge/gemfiles/modular/style_local.gemfile +++ b/gems/bash-merge/gemfiles/modular/style_local.gemfile @@ -1,24 +1,48 @@ # frozen_string_literal: true -# We run rubocop on the latest version of Ruby, -# but in support of the oldest supported version of Ruby +# Style tasks run on the latest Ruby; RuboCop-LTS selects the compatibility +# rules for the configured Ruby floor independently from task dependency floors. # Local path overrides for development. # Loaded by the associated non-local gemfile when RUBOCOP_LTS_LOCAL != "false". -require 'nomono/bundler' unless defined?(Nomono) +# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. +# Bundler records that dependency during Gemfile evaluation, but it does not +# activate that exact version before the immediate `require "nomono/bundler"`. +# If multiple compatible nomono versions are installed, RubyGems may activate +# the newest installed version while Gemfile.lock pins an older compatible one; +# Bundler then aborts with "already activated nomono X, but your Gemfile +# requires nomono Y". Prefer the locked compatible version when present, then +# activate it explicitly before requiring the Bundler DSL extension used below. +nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] +nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) +if File.file?(nomono_lockfile) + nomono_locked_spec = Bundler::LockfileParser + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == "nomono" } + nomono_locked = nomono_locked_spec && + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + if nomono_locked + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] + end +end +Kernel.send(:gem, "nomono", *nomono_activation_requirements) +require "nomono/bundler" local_gems = %w[rubocop-lts rubocop-lts-rspec rubocop-ruby3_2 standard-rubocop-lts] +declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) +local_gems_to_eval = local_gems - %w[bash-merge] - declared_gems # export VENDORED_GEMS=rubocop-lts,rubocop-lts-rspec,rubocop-ruby3_2,standard-rubocop-lts platform :mri do eval_nomono_gems( - gems: local_gems, - prefix: 'RUBOCOP_LTS', - path_env: 'RUBOCOP_LTS_LOCAL', - vendored_gems_env: 'VENDORED_GEMS', - vendor_gem_dir_env: 'VENDOR_GEM_DIR', - debug_env: 'RUBOCOP_LTS_DEBUG', - root: %w[src rubocop-lts] + gems: local_gems_to_eval, + prefix: "RUBOCOP_LTS", + path_env: "RUBOCOP_LTS_LOCAL", + vendored_gems_env: "VENDORED_GEMS", + vendor_gem_dir_env: "VENDOR_GEM_DIR", + debug_env: "RUBOCOP_LTS_DEBUG", + root: ["src", "rubocop-lts"] ) end diff --git a/gems/bash-merge/gemfiles/modular/templating.gemfile b/gems/bash-merge/gemfiles/modular/templating.gemfile index 2ddc9433f..47138ffbb 100644 --- a/gems/bash-merge/gemfiles/modular/templating.gemfile +++ b/gems/bash-merge/gemfiles/modular/templating.gemfile @@ -1,24 +1,24 @@ # frozen_string_literal: true -structuredmerge_remote = ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false').zero? -kettle_remote = ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? +structuredmerge_remote = ENV.fetch("STRUCTUREDMERGE_DEV", "false").casecmp("false").zero? +kettle_remote = ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false").zero? if structuredmerge_remote # Parser dependencies for released installs. - gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' + gem "tree_sitter_language_pack", "~> 1.13", ">= 1.13.3" # Merge recipes for released installs. - gem 'kettle-jem', '>= 7.0' + gem "kettle-jem", ">= 7.0" end if kettle_remote # Template/plugin checks for released installs. - gem 'kettle-drift', '~> 1.0', '>= 1.0.5', require: false + gem "kettle-drift", "~> 1.0", ">= 1.0.6", require: false end # Set STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local development with path-based dependencies. # When false (default / CI), released kettle-jem brings merge gems and parser dependencies. # Local path overrides bring the same dependencies from sibling gemspecs. # -# Set KETTLE_DEV_DEV=/path/to/kettle-rb for local development with Kettle plugin gems. +# Set KETTLE_DEV_DEV=/path/to/my for local development with Kettle plugin gems. # When false (default / CI), released Kettle plugin gems are used. -eval_gemfile 'templating_local.gemfile' unless structuredmerge_remote && kettle_remote +eval_gemfile "templating_local.gemfile" unless structuredmerge_remote && kettle_remote diff --git a/gems/bash-merge/gemfiles/modular/templating_local.gemfile b/gems/bash-merge/gemfiles/modular/templating_local.gemfile index ba50191c2..c11a4162a 100644 --- a/gems/bash-merge/gemfiles/modular/templating_local.gemfile +++ b/gems/bash-merge/gemfiles/modular/templating_local.gemfile @@ -4,7 +4,29 @@ # Loaded by the associated non-local gemfile when STRUCTUREDMERGE_DEV or KETTLE_DEV_DEV # is not "false". -require 'nomono/bundler' unless defined?(Nomono) +# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. +# Bundler records that dependency during Gemfile evaluation, but it does not +# activate that exact version before the immediate `require "nomono/bundler"`. +# If multiple compatible nomono versions are installed, RubyGems may activate +# the newest installed version while Gemfile.lock pins an older compatible one; +# Bundler then aborts with "already activated nomono X, but your Gemfile +# requires nomono Y". Prefer the locked compatible version when present, then +# activate it explicitly before requiring the Bundler DSL extension used below. +nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] +nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) +if File.file?(nomono_lockfile) + nomono_locked_spec = Bundler::LockfileParser + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == "nomono" } + nomono_locked = nomono_locked_spec && + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + if nomono_locked + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] + end +end +Kernel.send(:gem, "nomono", *nomono_activation_requirements) +require "nomono/bundler" structuredmerge_local_gems = %w[ tree_haver @@ -47,25 +69,25 @@ structuredmerge_local_gems_to_eval = structuredmerge_local_gems - %w[bash-merge] kettle_dev_local_gems_to_eval = kettle_dev_local_gems - %w[bash-merge] - declared_gems platform :mri do - if ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false') != 0 + if ENV.fetch("STRUCTUREDMERGE_DEV", "false").casecmp("false") != 0 eval_nomono_gems( gems: structuredmerge_local_gems_to_eval, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - vendored_gems_env: 'VENDORED_GEMS', - vendor_gem_dir_env: 'VENDOR_GEM_DIR', - debug_env: 'STRUCTUREDMERGE_DEBUG' + prefix: "STRUCTUREDMERGE", + path_env: "STRUCTUREDMERGE_DEV", + vendored_gems_env: "VENDORED_GEMS", + vendor_gem_dir_env: "VENDOR_GEM_DIR", + debug_env: "STRUCTUREDMERGE_DEBUG" ) end - if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false') != 0 + if ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false") != 0 eval_nomono_gems( gems: kettle_dev_local_gems_to_eval, - prefix: 'KETTLE_DEV', - path_env: 'KETTLE_DEV_DEV', - vendored_gems_env: 'VENDORED_GEMS', - vendor_gem_dir_env: 'VENDOR_GEM_DIR', - debug_env: 'KETTLE_DEV_DEBUG' + prefix: "KETTLE_DEV", + path_env: "KETTLE_DEV_DEV", + vendored_gems_env: "VENDORED_GEMS", + vendor_gem_dir_env: "VENDOR_GEM_DIR", + debug_env: "KETTLE_DEV_DEBUG" ) end end diff --git a/gems/bash-merge/gemfiles/modular/webrick/r4/v1.9.gemfile b/gems/bash-merge/gemfiles/modular/webrick/r4/v1.9.gemfile new file mode 100644 index 000000000..eaab4a473 --- /dev/null +++ b/gems/bash-merge/gemfiles/modular/webrick/r4/v1.9.gemfile @@ -0,0 +1 @@ +gem "webrick", "~> 1.9" diff --git a/gems/bash-merge/gemfiles/modular/webrick/vHEAD.gemfile b/gems/bash-merge/gemfiles/modular/webrick/vHEAD.gemfile new file mode 100644 index 000000000..8a789b634 --- /dev/null +++ b/gems/bash-merge/gemfiles/modular/webrick/vHEAD.gemfile @@ -0,0 +1 @@ +gem "webrick", ">= 1.9" diff --git a/gems/bash-merge/gemfiles/modular/x_std_libs.gemfile b/gems/bash-merge/gemfiles/modular/x_std_libs.gemfile index b1f43c097..77aad43f2 100644 --- a/gems/bash-merge/gemfiles/modular/x_std_libs.gemfile +++ b/gems/bash-merge/gemfiles/modular/x_std_libs.gemfile @@ -1,12 +1,12 @@ ### Std Lib Extracted Gems ruby_version = Gem::Version.new(RUBY_VERSION) -if ruby_version >= Gem::Version.new('4.0') - eval_gemfile 'x_std_libs/r4/libs.gemfile' -elsif ruby_version >= Gem::Version.new('3.2') - eval_gemfile 'x_std_libs/r3/libs.gemfile' -elsif ruby_version >= Gem::Version.new('3.1') - eval_gemfile 'x_std_libs/r3.1/libs.gemfile' +if ruby_version >= Gem::Version.new("4.0") + eval_gemfile "x_std_libs/r4/libs.gemfile" +elsif ruby_version >= Gem::Version.new("3.2") + eval_gemfile "x_std_libs/r3/libs.gemfile" +elsif ruby_version >= Gem::Version.new("3.1") + eval_gemfile "x_std_libs/r3.1/libs.gemfile" else - eval_gemfile 'x_std_libs/r2/libs.gemfile' + eval_gemfile "x_std_libs/r2/libs.gemfile" end diff --git a/gems/bash-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile b/gems/bash-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile index 16a5e3d70..441c4f03a 100644 --- a/gems/bash-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile +++ b/gems/bash-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile @@ -1,3 +1,3 @@ -eval_gemfile '../../erb/r2/v3.0.gemfile' -eval_gemfile '../../mutex_m/r2/v0.3.gemfile' -eval_gemfile '../../stringio/r2/v3.0.gemfile' +eval_gemfile "../../erb/r2/v3.0.gemfile" +eval_gemfile "../../mutex_m/r2/v0.3.gemfile" +eval_gemfile "../../stringio/r2/v3.0.gemfile" diff --git a/gems/bash-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile b/gems/bash-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile index 220ff95c1..c293a3ddd 100644 --- a/gems/bash-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile +++ b/gems/bash-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile @@ -1,3 +1,3 @@ -eval_gemfile '../../erb/r3/v5.0.gemfile' -eval_gemfile '../../mutex_m/r3/v0.3.gemfile' -eval_gemfile '../../stringio/r3/v3.0.gemfile' +eval_gemfile "../../erb/r3/v5.0.gemfile" +eval_gemfile "../../mutex_m/r3/v0.3.gemfile" +eval_gemfile "../../stringio/r3/v3.0.gemfile" diff --git a/gems/bash-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile b/gems/bash-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile index bd4e884df..eb5574247 100644 --- a/gems/bash-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile +++ b/gems/bash-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile @@ -1,4 +1,6 @@ -eval_gemfile '../../erb/r4/v5.0.gemfile' -eval_gemfile '../../mutex_m/r4/v0.3.gemfile' -eval_gemfile '../../stringio/r4/v3.0.gemfile' -eval_gemfile '../../benchmark/r4/v0.5.gemfile' +eval_gemfile "../../erb/r4/v5.0.gemfile" +eval_gemfile "../../mutex_m/r4/v0.3.gemfile" +eval_gemfile "../../stringio/r4/v3.0.gemfile" +eval_gemfile "../../benchmark/r4/v0.5.gemfile" +eval_gemfile "../../cgi/r4/v0.5.gemfile" +eval_gemfile "../../webrick/r4/v1.9.gemfile" diff --git a/gems/bash-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile b/gems/bash-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile index 91f383c11..d4d5b16c9 100644 --- a/gems/bash-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile +++ b/gems/bash-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile @@ -1,4 +1,6 @@ -eval_gemfile '../erb/vHEAD.gemfile' -eval_gemfile '../mutex_m/vHEAD.gemfile' -eval_gemfile '../stringio/vHEAD.gemfile' -eval_gemfile '../benchmark/vHEAD.gemfile' +eval_gemfile "../erb/vHEAD.gemfile" +eval_gemfile "../mutex_m/vHEAD.gemfile" +eval_gemfile "../stringio/vHEAD.gemfile" +eval_gemfile "../benchmark/vHEAD.gemfile" +eval_gemfile "../cgi/vHEAD.gemfile" +eval_gemfile "../webrick/vHEAD.gemfile" diff --git a/gems/dotenv-merge/Gemfile.lock b/gems/dotenv-merge/Gemfile.lock index c67ab899d..178d59d07 100644 --- a/gems/dotenv-merge/Gemfile.lock +++ b/gems/dotenv-merge/Gemfile.lock @@ -6,6 +6,265 @@ PATH tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.14) +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly + specs: + ast-crispr-markdown-markly (7.1.0) + ast-crispr (= 7.1.0) + markly-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism + specs: + ast-crispr-ruby-prism (7.1.0) + ast-crispr (= 7.1.0) + prism-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr + specs: + ast-crispr (7.1.0) + ast-merge (= 7.1.0) + service_actor (~> 3.9) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git + specs: + ast-merge-git (7.1.0) + ast-merge (= 7.1.0) + json-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge + specs: + ast-merge (7.1.0) + benchmark + token-resolver (~> 2.0, >= 2.0.4) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template + specs: + ast-template (7.1.0) + ast-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge + specs: + bash-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge + specs: + binary-merge (7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge + specs: + citrus-toml-merge (7.1.0) + toml-merge (= 7.1.0) + toml-rb (~> 4.1) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge + specs: + commonmarker-merge (7.1.0) + commonmarker (~> 2.2) + markdown-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge + specs: + go-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge + specs: + json-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem + specs: + kettle-jem (7.1.0) + addressable (>= 2.8, < 3) + ast-crispr-markdown-markly (= 7.1.0) + ast-crispr-ruby-prism (= 7.1.0) + ast-merge (= 7.1.0) + bash-merge (= 7.1.0) + citrus-toml-merge (= 7.1.0) + commonmarker-merge (= 7.1.0) + dotenv-merge (= 7.1.0) + json-merge (= 7.1.0) + kettle-dev (~> 2.3, >= 2.3.5) + kettle-rb (~> 0.1, >= 0.1.4) + kramdown-merge (= 7.1.0) + markdown-merge (= 7.1.0) + markly-merge (= 7.1.0) + prism-merge (= 7.1.0) + psych-merge (= 7.1.0) + rbs (>= 3.10) + rbs-merge (= 7.1.0) + ruby-merge (= 7.1.0) + token-resolver (~> 2.0, >= 2.0.4) + toml-merge (= 7.1.0) + toml-rb (~> 4.2) + tree_haver (= 7.1.0) + yaml-merge (= 7.1.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge + specs: + kramdown-merge (7.1.0) + kramdown (~> 2.5) + markdown-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge + specs: + markdown-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge + specs: + markly-merge (7.1.0) + markdown-merge (= 7.1.0) + markly (~> 0.9) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge + specs: + parslet-toml-merge (7.1.0) + toml (~> 0.3) + toml-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge + specs: + plain-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge + specs: + prism-merge (7.1.0) + prism (~> 1.6) + ruby-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge + specs: + psych-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + yaml-merge (= 7.1.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge + specs: + rbs-merge (7.1.0) + ast-merge (= 7.1.0) + rbs (>= 3.10) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge + specs: + ruby-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge + specs: + rust-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb + specs: + smorg-rb (7.1.0) + ast-merge (= 7.1.0) + ast-merge-git (= 7.1.0) + go-merge (= 7.1.0) + json-merge (= 7.1.0) + kettle-jem (= 7.1.0) + markly-merge (= 7.1.0) + plain-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge + specs: + toml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver + specs: + tree_haver (7.1.0) + citrus (~> 3.0) + parslet (~> 2.0) + tree_sitter_language_pack (>= 1.13.2, < 2.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge + specs: + typescript-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge + specs: + yaml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge + specs: + zip-merge (7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + GEM remote: https://gem.coop/ specs: @@ -17,11 +276,6 @@ GEM rake (>= 10) thor (>= 0.14) ast (2.4.3) - ast-merge (7.1.0) - benchmark - token-resolver (~> 2.0, >= 2.0.4) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) backports (3.25.3) benchmark (0.5.0) bigdecimal (4.1.2) @@ -30,6 +284,12 @@ GEM thor (~> 1.0) citrus (3.0.2) cmdparse (3.0.7) + commonmarker (2.9.0-aarch64-linux) + commonmarker (2.9.0-aarch64-linux-musl) + commonmarker (2.9.0-arm64-darwin) + commonmarker (2.9.0-x86_64-darwin) + commonmarker (2.9.0-x86_64-linux) + commonmarker (2.9.0-x86_64-linux-musl) concurrent-ruby (1.3.8) date (3.5.1) debug (1.11.1) @@ -93,6 +353,8 @@ GEM kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) + kettle-drift (1.0.6) + version_gem (~> 1.1, >= 1.1.14) kettle-rb (0.1.4) kettle-soup-cover (1.1.3) simplecov (~> 0.22) @@ -121,6 +383,7 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) + markly (0.16.0) mutex_m (0.3.0) nokogiri (1.19.4-aarch64-linux-gnu) racc (~> 1.4) @@ -257,6 +520,8 @@ GEM ruby-progressbar (1.13.0) ruby_engine (2.0.3) ruby_version (1.0.3) + service_actor (3.9.4) + zeitwerk (>= 1.0) silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) @@ -309,11 +574,11 @@ GEM token-resolver (2.0.4) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.13) - tree_haver (7.1.0) - citrus (~> 3.0) - parslet (~> 2.0) - tree_sitter_language_pack (>= 1.13.2, < 2.0) - version_gem (~> 1.1, >= 1.1.9) + toml (0.3.0) + parslet (>= 1.8.0, < 3.0.0) + toml-rb (4.2.0) + citrus (~> 3.0, > 3.0) + racc (~> 1.7) tree_sitter_language_pack (1.13.3-aarch64-linux) sorbet-runtime (~> 0.5) tree_sitter_language_pack (1.13.3-arm64-darwin) @@ -368,23 +633,45 @@ PLATFORMS DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.2, >= 3.2.0) + ast-crispr! + ast-crispr-markdown-markly! + ast-crispr-ruby-prism! + ast-merge! + ast-merge-git! + ast-template! + bash-merge! benchmark (~> 0.5, >= 0.5.0) + binary-merge! bundler-audit (~> 0.9.3) + citrus-toml-merge! + commonmarker-merge! debug (>= 1.1) dotenv-merge! erb (~> 6.0, >= 6.0.4) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.4) + go-merge! irb (~> 1.17) + json-merge! kettle-dev (~> 2.3, >= 2.3.7) + kettle-drift (~> 1.0, >= 1.0.5) + kettle-jem! kettle-soup-cover (~> 1.0, >= 1.1.3) kettle-test (~> 2.0, >= 2.0.11) kramdown (~> 2.5, >= 2.5.1) + kramdown-merge! kramdown-parser-gfm (~> 1.1) + markdown-merge! + markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) + parslet-toml-merge! + plain-merge! + prism-merge! + psych-merge! rake (~> 13.0) rbs (>= 3.0) + rbs-merge! rdoc (~> 6.11) reek (~> 6.5) require_bench (~> 1.0, >= 1.0.4) @@ -393,32 +680,55 @@ DEPENDENCIES rubocop-packaging (~> 0.6, >= 0.6.0) rubocop-rspec (~> 3.6) rubocop-ruby3_2 (~> 3.0.0) + ruby-merge! ruby-progressbar (~> 1.13) + rust-merge! + smorg-rb! standard (>= 1.50) stone_checksums (~> 1.0, >= 1.0.6, >= 1.0.3) stringio (>= 3.0) + toml-merge! + tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) turbo_tests2 (~> 3.2, >= 3.2.0) + typescript-merge! yaml-converter (~> 0.1) + yaml-merge! yard (~> 0.9, >= 0.9.44) yard-fence (~> 0.9, >= 0.9.1) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) yard-timekeeper (~> 0.1) yard-yaml (~> 0.1, >= 0.1.2) + zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af ansi (1.6.0) sha256=ac9ea0c0ea8d32fb4e271348e609963ac78882f34b73836c2a02b3622e666658 appraisal2 (3.2.0) sha256=ccd0b767ac4060cd7af6d16747459b6990f49c39c7b4fb1f7d1146b1e97c492f ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 + ast-crispr (7.1.0) + ast-crispr-markdown-markly (7.1.0) + ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) + ast-merge-git (7.1.0) + ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 + bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd + binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 + citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 + commonmarker (2.9.0-aarch64-linux) sha256=e2b4aadb9a2cfa4e206582641ce3a49465549ac1ed4c289fdd63b78d8f24579c + commonmarker (2.9.0-aarch64-linux-musl) sha256=1cf4d2821f2a7e64945f1ed7c4eeced586fdb27ea7fe7337788802cf8f57cfca + commonmarker (2.9.0-arm64-darwin) sha256=1748dbfa4f5813b0d2a14bb4bbfa65a4ec293aa1c825016d60029ee0e132b046 + commonmarker (2.9.0-x86_64-darwin) sha256=0a9914ccfd2f5d2a59c7bd0dda4fe90eb084cf513b477e499008e09ec9d6edd6 + commonmarker (2.9.0-x86_64-linux) sha256=8cfe92970eef585a19ddf6613224b91cab64d6029834661bda801f877c9c7f43 + commonmarker (2.9.0-x86_64-linux-musl) sha256=293921398b839f79ceaf55010e061357e34f053822c3b003cd0be6686176335e + commonmarker-merge (7.1.0) concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 @@ -439,19 +749,27 @@ CHECKSUMS gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f + go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 + json-merge (7.1.0) kettle-dev (2.3.7) sha256=eb370113cd030d03cbe2d33b31c99858951017e5ad21a17e9ed89dc3770028ee + kettle-drift (1.0.6) sha256=46eda08fa4411d1f3c6682a95eef1c9df4e94611b3949f49d4c7b43c0ed356a3 + kettle-jem (7.1.0) kettle-rb (0.1.4) sha256=9cef7ce4f7021666b7222292f29051e51eaf042e8a5db11f3f4dd72f74243fc1 kettle-soup-cover (1.1.3) sha256=a373827da22a7131d093afd32945e5b7d7a10a01ebfdded8fd2cb8230d69c8ad kettle-test (2.0.11) sha256=c710c90f7ab79d51f9452f0c09f5f90657e7a893f63583855c164d0b1b107ab2 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa + kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 + markdown-merge (7.1.0) + markly (0.16.0) sha256=6f70d79e385b1efc9e171f74c81628826259039fe6c778e03c3924c71dac5511 + markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-aarch64-linux-gnu) sha256=1269fb644a6de405057a53dd5c762b1209b43ca7424f839454d3dbc677c31a8f nokogiri (1.19.4-aarch64-linux-musl) sha256=35c65b9ce72b3bb03207bdbe7067915019dc18c1b9b59139684bd6690fdd01af @@ -466,15 +784,20 @@ CHECKSUMS parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 + parslet-toml-merge (7.1.0) + plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 + prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 + psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 + rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb @@ -502,9 +825,12 @@ CHECKSUMS rubocop-rspec (3.10.2) sha256=0b3e2ecc592cd10ecbf0095bb58d1e357905276e069643523cc19eb7495f65e2 rubocop-ruby3_2 (3.0.7) sha256=f53dd6d286fb05186214fc6ec116783e7f837030918e8931c05de773e98f8466 rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 + ruby-merge (7.1.0) ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 + rust-merge (7.1.0) + service_actor (3.9.4) sha256=e63b523630b9a7e62959b2a90113b08d2565b5de9c148557b281ef847c9539ce silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (0.22.0) sha256=fe2622c7834ff23b98066bb0a854284b2729a569ac659f82621fc22ef36213a5 simplecov-cobertura (3.2.0) sha256=70d702658677fcb20e5aceb6915ccf8bc62ff2ccd38b62b3ad5c9db5c0888740 @@ -513,6 +839,7 @@ CHECKSUMS simplecov-lcov (0.9.0) sha256=7a77a31e200a595ed4b0249493056efd0c920601f53d2ef135ca34ee796346cd simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_json_formatter (0.1.4) sha256=529418fbe8de1713ac2b2d612aa3daa56d316975d307244399fa4838c601b428 + smorg-rb (7.1.0) sorbet-runtime (0.6.13347) sha256=54e7221d9f4b63f58aec79f3043752a9ba7810347c6ae0d903531591cc2d5f01 standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b @@ -526,6 +853,9 @@ CHECKSUMS timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.4) sha256=33b926958f504525bba3ed511ab66fbcbf8ef30390815e931436b30f27ffcad0 + toml (0.3.0) sha256=0a91d0f76a9036e84e44f95693b12f58d358c1df3ac8e3b5271f2056ecc6e4b9 + toml-merge (7.1.0) + toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-aarch64-linux) sha256=55ffc7c87868cb45658338363d9eba51b4a8b0259aa88e4de368d2bd1d52fea4 tree_sitter_language_pack (1.13.3-arm64-darwin) sha256=bc2498db605f212a1dbd2465ed3f65190d7da786f6ed5d30fcf958121aeb4a5c @@ -533,10 +863,12 @@ CHECKSUMS tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 + typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 + yaml-merge (7.1.0) yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd @@ -544,6 +876,7 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 + zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH diff --git a/gems/plain-merge/.rubocop_gradual.lock b/gems/plain-merge/.rubocop_gradual.lock index 2200cf1b9..c6e4bae1d 100644 --- a/gems/plain-merge/.rubocop_gradual.lock +++ b/gems/plain-merge/.rubocop_gradual.lock @@ -15,13 +15,20 @@ [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] ], + "gemfiles/modular/cgi/r4/v0.5.gemfile:367169322": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/cgi/vHEAD.gemfile:2729540777": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], "gemfiles/modular/erb/r2/v3.0.gemfile:1688285565": [ [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] ], - "gemfiles/modular/erb/r3/v5.0.gemfile:2150258305": [ + "gemfiles/modular/erb/r3/v5.0.gemfile:2394062339": [ [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] ], - "gemfiles/modular/erb/r4/v5.0.gemfile:2150258305": [ + "gemfiles/modular/erb/r4/v5.0.gemfile:2394062339": [ [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] ], "gemfiles/modular/erb/vHEAD.gemfile:981929959": [ @@ -57,6 +64,13 @@ [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] ], + "gemfiles/modular/webrick/r4/v1.9.gemfile:3092661193": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/webrick/vHEAD.gemfile:3867684682": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], "gemfiles/modular/x_std_libs.gemfile:2324400122": [ [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] ], @@ -66,10 +80,10 @@ "gemfiles/modular/x_std_libs/r3/libs.gemfile:4030570297": [ [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] ], - "gemfiles/modular/x_std_libs/r4/libs.gemfile:909736663": [ + "gemfiles/modular/x_std_libs/r4/libs.gemfile:732451732": [ [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] ], - "gemfiles/modular/x_std_libs/vHEAD.gemfile:907917303": [ + "gemfiles/modular/x_std_libs/vHEAD.gemfile:2390363993": [ [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] ], diff --git a/gems/plain-merge/Gemfile b/gems/plain-merge/Gemfile index 341ca42a6..48f5d6a97 100644 --- a/gems/plain-merge/Gemfile +++ b/gems/plain-merge/Gemfile @@ -6,7 +6,7 @@ # kettle-jem will then preserve content between those markers across template runs. # kettle-jem:unfreeze -source "https://gem.coop" +source 'https://gem.coop' git_source(:codeberg) { |repo_name| "https://codeberg.org/#{repo_name}" } git_source(:gitlab) { |repo_name| "https://gitlab.com/#{repo_name}" } @@ -19,58 +19,54 @@ git_source(:gitlab) { |repo_name| "https://gitlab.com/#{repo_name}" } gemspec # Local workspace dependency wiring for *_local.gemfile overrides -nomono_requirements = ["~> 1.0", ">= 1.0.8"] -gem "nomono", *nomono_requirements, require: false # ruby >= 2.2 +nomono_requirements = ['~> 1.0', '>= 1.0.8'] +gem 'nomono', *nomono_requirements, require: false # ruby >= 2.2 # Direct sibling dependencies (env-switched via STRUCTUREDMERGE_DEV) direct_sibling_gems = %w[ ast-merge tree_haver ] -direct_sibling_dev = ENV.fetch("STRUCTUREDMERGE_DEV", "") +direct_sibling_dev = ENV.fetch('STRUCTUREDMERGE_DEV', '') direct_sibling_local = !direct_sibling_dev.empty? && !%w[false 0 no off].include?(direct_sibling_dev.downcase) -direct_sibling_templating = ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? +direct_sibling_templating = ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero?) - direct_sibling_dev_was_set = ENV.key?("STRUCTUREDMERGE_DEV") - direct_sibling_dev_original = ENV.fetch("STRUCTUREDMERGE_DEV", nil) + (direct_sibling_local || + ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) + direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') + direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) begin nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path("Gemfile.lock", __dir__) + nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == "nomono" } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - if nomono_locked - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] - end - end - Kernel.send(:gem, "nomono", *nomono_activation_requirements) - require "nomono/bundler" - if direct_sibling_templating && !direct_sibling_local - ENV["STRUCTUREDMERGE_DEV"] = File.expand_path("..", __dir__) + Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked end + Kernel.send(:gem, 'nomono', *nomono_activation_requirements) + require 'nomono/bundler' + ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local eval_nomono_gems( gems: direct_sibling_gems, - prefix: "STRUCTUREDMERGE", - path_env: "STRUCTUREDMERGE_DEV", - root: ["src", "my", "structuredmerge"] + prefix: 'STRUCTUREDMERGE', + path_env: 'STRUCTUREDMERGE_DEV', + root: %w[src my structuredmerge] ) rescue LoadError - warn "Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies." + warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' ensure if direct_sibling_templating && !direct_sibling_local if direct_sibling_dev_was_set - ENV["STRUCTUREDMERGE_DEV"] = direct_sibling_dev_original + ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original else - ENV.delete("STRUCTUREDMERGE_DEV") + ENV.delete('STRUCTUREDMERGE_DEV') end end end @@ -117,28 +113,28 @@ if direct_sibling_gems.any? && end # Use released TSLP with the Ruby ABI platform-gem fix. -gem "tree_sitter_language_pack", "~> 1.13", ">= 1.13.3" +gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' # Templating (env-switched: STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local paths) -eval_gemfile "gemfiles/modular/templating.gemfile" if ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? +eval_gemfile 'gemfiles/modular/templating.gemfile' if ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? # Debugging -eval_gemfile "gemfiles/modular/debug.gemfile" +eval_gemfile 'gemfiles/modular/debug.gemfile' # Code Coverage (env-switched: KETTLE_DEV_DEV=true for local paths) -eval_gemfile "gemfiles/modular/coverage.gemfile" +eval_gemfile 'gemfiles/modular/coverage.gemfile' # Linting -eval_gemfile "gemfiles/modular/style.gemfile" +eval_gemfile 'gemfiles/modular/style.gemfile' # Documentation -eval_gemfile "gemfiles/modular/documentation.gemfile" +eval_gemfile 'gemfiles/modular/documentation.gemfile' # Optional -eval_gemfile "gemfiles/modular/optional.gemfile" +eval_gemfile 'gemfiles/modular/optional.gemfile' ### Std Lib Extracted Gems -eval_gemfile "gemfiles/modular/x_std_libs.gemfile" +eval_gemfile 'gemfiles/modular/x_std_libs.gemfile' # See unlocked_deps appraisal for more details on irb inclusion -gem "irb", "~> 1.17" # ruby >= 2.7 +gem 'irb', '~> 1.17' # ruby >= 2.7 diff --git a/gems/plain-merge/Gemfile.lock b/gems/plain-merge/Gemfile.lock index 3d2206f77..ab1102eda 100644 --- a/gems/plain-merge/Gemfile.lock +++ b/gems/plain-merge/Gemfile.lock @@ -7,7 +7,7 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/ast-merge specs: ast-merge (7.1.0) benchmark @@ -16,7 +16,7 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/tree_haver specs: tree_haver (7.1.0) citrus (~> 3.0) @@ -105,12 +105,12 @@ GEM rdoc (>= 4.0.0) reline (>= 0.4.2) json (2.21.1) - kettle-dev (2.3.7) + kettle-dev (2.3.8) emoji_regex (>= 15.0) kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) - kettle-rb (0.1.4) + kettle-rb (0.1.5) kettle-soup-cover (3.0.4) kettle-wash (~> 0.1, >= 0.1.0) simplecov (>= 1.0) @@ -118,7 +118,7 @@ GEM simplecov-console (~> 0.9, >= 0.9.5) simplecov-rcov (~> 0.3, >= 0.3.7) simplecov_lcov_formatter (~> 0.9, >= 0.9.0) - kettle-test (2.0.11) + kettle-test (2.0.12) appraisal2 (~> 3.0, >= 3.0.6) backports (~> 3.0) rspec (~> 3.0) @@ -351,9 +351,9 @@ GEM delegate (~> 0.1) rspec (~> 3.0) timecop (>= 0.7, < 1) - token-resolver (2.0.4) + token-resolver (2.0.5) parslet (~> 2.0) - version_gem (~> 1.1, >= 1.1.13) + version_gem (~> 1.1, >= 1.1.14) tree_sitter_language_pack (1.13.3-aarch64-linux) sorbet-runtime (~> 0.5) tree_sitter_language_pack (1.13.3-arm64-darwin) @@ -488,10 +488,10 @@ CHECKSUMS io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 - kettle-dev (2.3.7) sha256=eb370113cd030d03cbe2d33b31c99858951017e5ad21a17e9ed89dc3770028ee - kettle-rb (0.1.4) sha256=9cef7ce4f7021666b7222292f29051e51eaf042e8a5db11f3f4dd72f74243fc1 + kettle-dev (2.3.8) sha256=9d716ff21c660a730cb4e8d41e2e2f0630a28167a354b6e2924e242102aef72c + kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f kettle-soup-cover (3.0.4) - kettle-test (2.0.11) sha256=c710c90f7ab79d51f9452f0c09f5f90657e7a893f63583855c164d0b1b107ab2 + kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 @@ -577,7 +577,7 @@ CHECKSUMS thor (1.5.0) sha256=e3a9e55fe857e44859ce104a84675ab6e8cd59c650a49106a05f55f136425e73 timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 - token-resolver (2.0.4) sha256=33b926958f504525bba3ed511ab66fbcbf8ef30390815e931436b30f27ffcad0 + token-resolver (2.0.5) sha256=b852f924287ffb58a440856e862b056c8ad97e74b4b2526cee43e0771f40c25c tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-aarch64-linux) sha256=55ffc7c87868cb45658338363d9eba51b4a8b0259aa88e4de368d2bd1d52fea4 tree_sitter_language_pack (1.13.3-arm64-darwin) sha256=bc2498db605f212a1dbd2465ed3f65190d7da786f6ed5d30fcf958121aeb4a5c diff --git a/gems/plain-merge/Rakefile b/gems/plain-merge/Rakefile index 571409183..c1132c880 100644 --- a/gems/plain-merge/Rakefile +++ b/gems/plain-merge/Rakefile @@ -130,23 +130,23 @@ end ### DUPLICATE DRIFT TASKS begin - require "kettle/drift" + require 'kettle/drift' Kettle::Drift.install_tasks rescue LoadError - desc("(stub) kettle:drift:check is unavailable") - task("kettle:drift:check") do + desc('(stub) kettle:drift:check is unavailable') + task('kettle:drift:check') do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc("(stub) kettle:drift:update is unavailable") - task("kettle:drift:update") do + desc('(stub) kettle:drift:update is unavailable') + task('kettle:drift:update') do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc("(stub) kettle:drift:force_update is unavailable") - task("kettle:drift:force_update") do + desc('(stub) kettle:drift:force_update is unavailable') + task('kettle:drift:force_update') do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc("(stub) kettle:drift is unavailable") - task("kettle:drift" => "kettle:drift:update") + desc('(stub) kettle:drift is unavailable') + task('kettle:drift' => 'kettle:drift:update') end ### TEMPLATING TASKS diff --git a/gems/plain-merge/bin/yard b/gems/plain-merge/bin/yard index a7e8b6eed..5d516ad6f 100755 --- a/gems/plain-merge/bin/yard +++ b/gems/plain-merge/bin/yard @@ -12,4 +12,4 @@ # `yard` / `bin/yard`. Keep this binstub as a handoff to the task so # humans and tools that reach for `bin/yard` still run the full docs # workflow with post-processing hooks. -exec("bundle", "exec", "rake", "yard") +exec('bundle', 'exec', 'rake', 'yard') diff --git a/gems/plain-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile b/gems/plain-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile index dec650815..b8392fab0 100644 --- a/gems/plain-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile +++ b/gems/plain-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.1 -gem "benchmark", "~> 0.5", ">= 0.5.0" # Removed from Std Lib in Ruby 4.0 +gem 'benchmark', '~> 0.5', '>= 0.5.0' # Removed from Std Lib in Ruby 4.0 diff --git a/gems/plain-merge/gemfiles/modular/benchmark/vHEAD.gemfile b/gems/plain-merge/gemfiles/modular/benchmark/vHEAD.gemfile index e1eb20c5e..af214aafa 100644 --- a/gems/plain-merge/gemfiles/modular/benchmark/vHEAD.gemfile +++ b/gems/plain-merge/gemfiles/modular/benchmark/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.1 -gem "benchmark", github: "ruby/benchmark", branch: "master" +gem 'benchmark', github: 'ruby/benchmark', branch: 'master' diff --git a/gems/plain-merge/gemfiles/modular/cgi/r4/v0.5.gemfile b/gems/plain-merge/gemfiles/modular/cgi/r4/v0.5.gemfile index 19ed967c3..17ad97260 100644 --- a/gems/plain-merge/gemfiles/modular/cgi/r4/v0.5.gemfile +++ b/gems/plain-merge/gemfiles/modular/cgi/r4/v0.5.gemfile @@ -1 +1 @@ -gem "cgi", "~> 0.5" +gem 'cgi', '~> 0.5' diff --git a/gems/plain-merge/gemfiles/modular/cgi/vHEAD.gemfile b/gems/plain-merge/gemfiles/modular/cgi/vHEAD.gemfile index ef8b816ce..650fbf033 100644 --- a/gems/plain-merge/gemfiles/modular/cgi/vHEAD.gemfile +++ b/gems/plain-merge/gemfiles/modular/cgi/vHEAD.gemfile @@ -1 +1 @@ -gem "cgi", ">= 0.5" +gem 'cgi', '>= 0.5' diff --git a/gems/plain-merge/gemfiles/modular/coverage.gemfile b/gems/plain-merge/gemfiles/modular/coverage.gemfile index 52d737872..b93014b6b 100644 --- a/gems/plain-merge/gemfiles/modular/coverage.gemfile +++ b/gems/plain-merge/gemfiles/modular/coverage.gemfile @@ -4,11 +4,11 @@ # Set KETTLE_DEV_DEV=true for local development with path-based dependencies. # When false (default / CI), remote released gems are used. -if ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false").zero? +if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? # Coverage (remote/released) platform :mri do - gem "kettle-soup-cover", "~> 3.0", ">= 3.0.3", require: false + gem 'kettle-soup-cover', '~> 3.0', '>= 3.0.3', require: false end else - eval_gemfile "coverage_local.gemfile" + eval_gemfile 'coverage_local.gemfile' end diff --git a/gems/plain-merge/gemfiles/modular/coverage_local.gemfile b/gems/plain-merge/gemfiles/modular/coverage_local.gemfile index c333a0abc..e40a42a87 100644 --- a/gems/plain-merge/gemfiles/modular/coverage_local.gemfile +++ b/gems/plain-merge/gemfiles/modular/coverage_local.gemfile @@ -11,21 +11,19 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] -nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) +nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] +nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == "nomono" } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - if nomono_locked - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] - end + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked end -Kernel.send(:gem, "nomono", *nomono_activation_requirements) -require "nomono/bundler" +Kernel.send(:gem, 'nomono', *nomono_activation_requirements) +require 'nomono/bundler' local_gems = %w[kettle-dev kettle-test kettle-soup-cover kettle-drift] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) @@ -35,21 +33,21 @@ local_gems_to_eval = local_gems - %w[plain-merge] - declared_gems platform :mri do eval_nomono_gems( gems: local_gems_to_eval, - prefix: "KETTLE_DEV", - path_env: "KETTLE_DEV_DEV", - vendored_gems_env: "VENDORED_GEMS", - vendor_gem_dir_env: "VENDOR_GEM_DIR", - debug_env: "KETTLE_DEV_DEBUG" + prefix: 'KETTLE_DEV', + path_env: 'KETTLE_DEV_DEV', + vendored_gems_env: 'VENDORED_GEMS', + vendor_gem_dir_env: 'VENDOR_GEM_DIR', + debug_env: 'KETTLE_DEV_DEBUG' ) - if ENV.fetch("GALTZO_FLOSS_DEV", "false").casecmp("false") != 0 + if ENV.fetch('GALTZO_FLOSS_DEV', 'false').casecmp('false') != 0 eval_nomono_gems( gems: %w[turbo_tests2], - prefix: "GALTZO_FLOSS", - path_env: "GALTZO_FLOSS_DEV", - vendored_gems_env: "GALTZO_FLOSS_VENDORED_GEMS", - vendor_gem_dir_env: "GALTZO_FLOSS_VENDOR_GEM_DIR", - debug_env: "GALTZO_FLOSS_DEBUG" + prefix: 'GALTZO_FLOSS', + path_env: 'GALTZO_FLOSS_DEV', + vendored_gems_env: 'GALTZO_FLOSS_VENDORED_GEMS', + vendor_gem_dir_env: 'GALTZO_FLOSS_VENDOR_GEM_DIR', + debug_env: 'GALTZO_FLOSS_DEBUG' ) end end diff --git a/gems/plain-merge/gemfiles/modular/debug.gemfile b/gems/plain-merge/gemfiles/modular/debug.gemfile index 4e15b1a3a..eed8d4d1e 100644 --- a/gems/plain-merge/gemfiles/modular/debug.gemfile +++ b/gems/plain-merge/gemfiles/modular/debug.gemfile @@ -13,10 +13,10 @@ platform :mri do # Debugging - Ensure ENV["DEBUG"] == "true" to use debuggers within spec suite # Use binding.break, binding.b, or debugger in code - gem "debug", ">= 1.1" # ruby >= 2.7 + gem 'debug', '>= 1.1' # ruby >= 2.7 # Dev Console - Binding.pry - Irb replacement # gem "pry", "~> 0.14" # ruby >= 2.0 end -gem "gem_bench", "~> 2.0", ">= 2.0.5" +gem 'gem_bench', '~> 2.0', '>= 2.0.5' diff --git a/gems/plain-merge/gemfiles/modular/documentation.gemfile b/gems/plain-merge/gemfiles/modular/documentation.gemfile index d8215416e..9d4535f12 100644 --- a/gems/plain-merge/gemfiles/modular/documentation.gemfile +++ b/gems/plain-merge/gemfiles/modular/documentation.gemfile @@ -7,20 +7,20 @@ # # Documentation -gem "kramdown", "~> 2.5", ">= 2.5.2", require: false # Ruby >= 2.5 -gem "kramdown-parser-gfm", "~> 1.1", require: false # Ruby >= 2.3 -gem "yaml-converter", "~> 0.2", ">= 0.2.3", require: false # Ruby >= 3.2 -gem "yard", "~> 0.9", ">= 0.9.45", require: false -gem "yard-junk", "~> 0.1", ">= 0.1.0", require: false # Ruby >= 3.1 -gem "yard-relative_markdown_links", "~> 0.6", require: false +gem 'kramdown', '~> 2.5', '>= 2.5.2', require: false # Ruby >= 2.5 +gem 'kramdown-parser-gfm', '~> 1.1', require: false # Ruby >= 2.3 +gem 'yaml-converter', '~> 0.2', '>= 0.2.3', require: false # Ruby >= 3.2 +gem 'yard', '~> 0.9', '>= 0.9.45', require: false +gem 'yard-junk', '~> 0.1', '>= 0.1.0', require: false # Ruby >= 3.1 +gem 'yard-relative_markdown_links', '~> 0.6', require: false -if ENV.fetch("GALTZO_FLOSS_DEV", "false").casecmp("false").zero? - gem "yard-fence", "~> 0.9", ">= 0.9.6", require: false # Ruby >= 3.2 - gem "yard-timekeeper", "~> 0.2", ">= 0.2.4", require: false - gem "yard-yaml", "~> 0.2", ">= 0.2.3", require: false +if ENV.fetch('GALTZO_FLOSS_DEV', 'false').casecmp('false').zero? + gem 'yard-fence', '~> 0.9', '>= 0.9.6', require: false # Ruby >= 3.2 + gem 'yard-timekeeper', '~> 0.2', '>= 0.2.4', require: false + gem 'yard-yaml', '~> 0.2', '>= 0.2.3', require: false else - eval_gemfile "documentation_local.gemfile" + eval_gemfile 'documentation_local.gemfile' end # Std Lib extractions -gem "rdoc", "~> 6.11", require: false unless ENV.fetch("KJ_FRAMEWORK_MATRIX_GEM", "") == "rdoc" +gem 'rdoc', '~> 6.11', require: false unless ENV.fetch('KJ_FRAMEWORK_MATRIX_GEM', '') == 'rdoc' diff --git a/gems/plain-merge/gemfiles/modular/documentation_local.gemfile b/gems/plain-merge/gemfiles/modular/documentation_local.gemfile index c0407019d..1f2016c3b 100644 --- a/gems/plain-merge/gemfiles/modular/documentation_local.gemfile +++ b/gems/plain-merge/gemfiles/modular/documentation_local.gemfile @@ -11,21 +11,19 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] -nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) +nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] +nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == "nomono" } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - if nomono_locked - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] - end + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked end -Kernel.send(:gem, "nomono", *nomono_activation_requirements) -require "nomono/bundler" +Kernel.send(:gem, 'nomono', *nomono_activation_requirements) +require 'nomono/bundler' local_gems = %w[yard-fence yard-timekeeper yard-yaml] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) @@ -34,9 +32,9 @@ local_gems_to_eval = local_gems - %w[plain-merge] - declared_gems # export GALTZO_FLOSS_DEV=/path/to/galtzo-floss eval_nomono_gems( gems: local_gems_to_eval, - prefix: "GALTZO_FLOSS", - path_env: "GALTZO_FLOSS_DEV", - vendored_gems_env: "GALTZO_FLOSS_VENDORED_GEMS", - vendor_gem_dir_env: "GALTZO_FLOSS_VENDOR_GEM_DIR", - debug_env: "GALTZO_FLOSS_DEBUG" + prefix: 'GALTZO_FLOSS', + path_env: 'GALTZO_FLOSS_DEV', + vendored_gems_env: 'GALTZO_FLOSS_VENDORED_GEMS', + vendor_gem_dir_env: 'GALTZO_FLOSS_VENDOR_GEM_DIR', + debug_env: 'GALTZO_FLOSS_DEBUG' ) diff --git a/gems/plain-merge/gemfiles/modular/erb/r2/v3.0.gemfile b/gems/plain-merge/gemfiles/modular/erb/r2/v3.0.gemfile index c03bd8d85..7c83a239b 100644 --- a/gems/plain-merge/gemfiles/modular/erb/r2/v3.0.gemfile +++ b/gems/plain-merge/gemfiles/modular/erb/r2/v3.0.gemfile @@ -1 +1 @@ -gem "erb", "~> 3.0" # ruby >= 2.7.0 +gem 'erb', '~> 3.0' # ruby >= 2.7.0 diff --git a/gems/plain-merge/gemfiles/modular/erb/r3/v5.0.gemfile b/gems/plain-merge/gemfiles/modular/erb/r3/v5.0.gemfile index 1bd029cc1..ec7ff451f 100644 --- a/gems/plain-merge/gemfiles/modular/erb/r3/v5.0.gemfile +++ b/gems/plain-merge/gemfiles/modular/erb/r3/v5.0.gemfile @@ -1 +1 @@ -gem "erb", "~> 6.0", ">= 6.0.6" # ruby >= 3.2.0 +gem 'erb', '~> 6.0', '>= 6.0.6' # ruby >= 3.2.0 diff --git a/gems/plain-merge/gemfiles/modular/erb/r4/v5.0.gemfile b/gems/plain-merge/gemfiles/modular/erb/r4/v5.0.gemfile index 1bd029cc1..ec7ff451f 100644 --- a/gems/plain-merge/gemfiles/modular/erb/r4/v5.0.gemfile +++ b/gems/plain-merge/gemfiles/modular/erb/r4/v5.0.gemfile @@ -1 +1 @@ -gem "erb", "~> 6.0", ">= 6.0.6" # ruby >= 3.2.0 +gem 'erb', '~> 6.0', '>= 6.0.6' # ruby >= 3.2.0 diff --git a/gems/plain-merge/gemfiles/modular/erb/vHEAD.gemfile b/gems/plain-merge/gemfiles/modular/erb/vHEAD.gemfile index 48fee4218..ea0101185 100644 --- a/gems/plain-merge/gemfiles/modular/erb/vHEAD.gemfile +++ b/gems/plain-merge/gemfiles/modular/erb/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 3.2 -gem "erb", github: "ruby/erb", branch: "master" +gem 'erb', github: 'ruby/erb', branch: 'master' diff --git a/gems/plain-merge/gemfiles/modular/json/truffleruby_22_3.gemfile b/gems/plain-merge/gemfiles/modular/json/truffleruby_22_3.gemfile index b0e69ab11..9b2f8d96a 100644 --- a/gems/plain-merge/gemfiles/modular/json/truffleruby_22_3.gemfile +++ b/gems/plain-merge/gemfiles/modular/json/truffleruby_22_3.gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -if RUBY_ENGINE == "truffleruby" && RUBY_ENGINE_VERSION.start_with?("22.3") +if RUBY_ENGINE == 'truffleruby' && RUBY_ENGINE_VERSION.start_with?('22.3') # TruffleRuby 22.3 ships the json default gem from its emulated MRI Ruby. - gem "json", "= 2.5.1" + gem 'json', '= 2.5.1' end diff --git a/gems/plain-merge/gemfiles/modular/json/truffleruby_23_0.gemfile b/gems/plain-merge/gemfiles/modular/json/truffleruby_23_0.gemfile index 7b2660a2b..d787a5ef4 100644 --- a/gems/plain-merge/gemfiles/modular/json/truffleruby_23_0.gemfile +++ b/gems/plain-merge/gemfiles/modular/json/truffleruby_23_0.gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -if RUBY_ENGINE == "truffleruby" && RUBY_ENGINE_VERSION.start_with?("23.0") +if RUBY_ENGINE == 'truffleruby' && RUBY_ENGINE_VERSION.start_with?('23.0') # TruffleRuby 23.0 ships the json default gem from its emulated MRI Ruby. - gem "json", "= 2.6.1" + gem 'json', '= 2.6.1' end diff --git a/gems/plain-merge/gemfiles/modular/json/truffleruby_23_1.gemfile b/gems/plain-merge/gemfiles/modular/json/truffleruby_23_1.gemfile index dfa21f2e4..d78486b0e 100644 --- a/gems/plain-merge/gemfiles/modular/json/truffleruby_23_1.gemfile +++ b/gems/plain-merge/gemfiles/modular/json/truffleruby_23_1.gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -if RUBY_ENGINE == "truffleruby" && RUBY_ENGINE_VERSION.start_with?("23.1") +if RUBY_ENGINE == 'truffleruby' && RUBY_ENGINE_VERSION.start_with?('23.1') # TruffleRuby 23.1 ships the json default gem from its emulated MRI Ruby. - gem "json", "= 2.6.3" + gem 'json', '= 2.6.3' end diff --git a/gems/plain-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile b/gems/plain-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile index 42e9d9bd4..e27f1bbae 100644 --- a/gems/plain-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile +++ b/gems/plain-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 -gem "mutex_m", "~> 0.2" +gem 'mutex_m', '~> 0.2' diff --git a/gems/plain-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile b/gems/plain-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile index 42e9d9bd4..e27f1bbae 100644 --- a/gems/plain-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile +++ b/gems/plain-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 -gem "mutex_m", "~> 0.2" +gem 'mutex_m', '~> 0.2' diff --git a/gems/plain-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile b/gems/plain-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile index 42e9d9bd4..e27f1bbae 100644 --- a/gems/plain-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile +++ b/gems/plain-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 -gem "mutex_m", "~> 0.2" +gem 'mutex_m', '~> 0.2' diff --git a/gems/plain-merge/gemfiles/modular/mutex_m/vHEAD.gemfile b/gems/plain-merge/gemfiles/modular/mutex_m/vHEAD.gemfile index 8af3b6fca..9dac2f6cb 100644 --- a/gems/plain-merge/gemfiles/modular/mutex_m/vHEAD.gemfile +++ b/gems/plain-merge/gemfiles/modular/mutex_m/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 (dependency of omniauth) -gem "mutex_m", github: "ruby/mutex_m", branch: "master" +gem 'mutex_m', github: 'ruby/mutex_m', branch: 'master' diff --git a/gems/plain-merge/gemfiles/modular/optional.gemfile b/gems/plain-merge/gemfiles/modular/optional.gemfile index 80bc45196..9ea429538 100644 --- a/gems/plain-merge/gemfiles/modular/optional.gemfile +++ b/gems/plain-merge/gemfiles/modular/optional.gemfile @@ -9,8 +9,8 @@ # Optional dependencies are not depended on directly, but may be used if present. # Required for curated binstubs generated by kettle-jem install -gem "rbs", ">= 3.0", require: false # ruby >= 3.1 +gem 'rbs', '>= 3.0', require: false # ruby >= 3.1 # Required for kettle-pre-release # URL parsing with Unicode support (falls back to URI if not available) -gem "addressable", ">= 2.8", "< 3" # ruby >= 2.2 +gem 'addressable', '>= 2.8', '< 3' # ruby >= 2.2 diff --git a/gems/plain-merge/gemfiles/modular/rspec.gemfile b/gems/plain-merge/gemfiles/modular/rspec.gemfile index 72fdf8b7f..2af210a41 100644 --- a/gems/plain-merge/gemfiles/modular/rspec.gemfile +++ b/gems/plain-merge/gemfiles/modular/rspec.gemfile @@ -1,4 +1,4 @@ -gem "rspec_junit_formatter", - github: "pboling/rspec_junit_formatter", - branch: "main", - ref: "9e6bcaaedd49477b62878ed568dc4ada5cc7cb5e" +gem 'rspec_junit_formatter', + github: 'pboling/rspec_junit_formatter', + branch: 'main', + ref: '9e6bcaaedd49477b62878ed568dc4ada5cc7cb5e' diff --git a/gems/plain-merge/gemfiles/modular/runtime_heads.gemfile b/gems/plain-merge/gemfiles/modular/runtime_heads.gemfile index 02f134c7f..ebf17c529 100644 --- a/gems/plain-merge/gemfiles/modular/runtime_heads.gemfile +++ b/gems/plain-merge/gemfiles/modular/runtime_heads.gemfile @@ -8,4 +8,4 @@ # Test against HEAD of runtime dependencies so we can proactively file bugs -eval_gemfile("x_std_libs/vHEAD.gemfile") +eval_gemfile('x_std_libs/vHEAD.gemfile') diff --git a/gems/plain-merge/gemfiles/modular/stringio/r2/v3.0.gemfile b/gems/plain-merge/gemfiles/modular/stringio/r2/v3.0.gemfile index e85bb18ee..3616f4e3a 100644 --- a/gems/plain-merge/gemfiles/modular/stringio/r2/v3.0.gemfile +++ b/gems/plain-merge/gemfiles/modular/stringio/r2/v3.0.gemfile @@ -2,4 +2,4 @@ # NOT SEMVER # Version 3.0.7 dropped support for Ruby <= 2.7 # Version 3.0.0 dropped support for Ruby <= 2.4 -gem "stringio", ">= 3.0" +gem 'stringio', '>= 3.0' diff --git a/gems/plain-merge/gemfiles/modular/stringio/r3/v3.0.gemfile b/gems/plain-merge/gemfiles/modular/stringio/r3/v3.0.gemfile index e85bb18ee..3616f4e3a 100644 --- a/gems/plain-merge/gemfiles/modular/stringio/r3/v3.0.gemfile +++ b/gems/plain-merge/gemfiles/modular/stringio/r3/v3.0.gemfile @@ -2,4 +2,4 @@ # NOT SEMVER # Version 3.0.7 dropped support for Ruby <= 2.7 # Version 3.0.0 dropped support for Ruby <= 2.4 -gem "stringio", ">= 3.0" +gem 'stringio', '>= 3.0' diff --git a/gems/plain-merge/gemfiles/modular/stringio/r4/v3.0.gemfile b/gems/plain-merge/gemfiles/modular/stringio/r4/v3.0.gemfile index e85bb18ee..3616f4e3a 100644 --- a/gems/plain-merge/gemfiles/modular/stringio/r4/v3.0.gemfile +++ b/gems/plain-merge/gemfiles/modular/stringio/r4/v3.0.gemfile @@ -2,4 +2,4 @@ # NOT SEMVER # Version 3.0.7 dropped support for Ruby <= 2.7 # Version 3.0.0 dropped support for Ruby <= 2.4 -gem "stringio", ">= 3.0" +gem 'stringio', '>= 3.0' diff --git a/gems/plain-merge/gemfiles/modular/stringio/vHEAD.gemfile b/gems/plain-merge/gemfiles/modular/stringio/vHEAD.gemfile index 5f2a74126..78f5f5d8a 100644 --- a/gems/plain-merge/gemfiles/modular/stringio/vHEAD.gemfile +++ b/gems/plain-merge/gemfiles/modular/stringio/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 (dependency of omniauth) -gem "stringio", github: "ruby/stringio", branch: "master" +gem 'stringio', github: 'ruby/stringio', branch: 'master' diff --git a/gems/plain-merge/gemfiles/modular/style.gemfile b/gems/plain-merge/gemfiles/modular/style.gemfile index 35de4dcd6..4dbcc02c0 100644 --- a/gems/plain-merge/gemfiles/modular/style.gemfile +++ b/gems/plain-merge/gemfiles/modular/style.gemfile @@ -9,23 +9,23 @@ # Style tasks run on the latest Ruby; RuboCop-LTS selects the compatibility # rules for the configured Ruby floor independently from task dependency floors. -gem "reek", "~> 6.5", ">= 6.5.0" +gem 'reek', '~> 6.5', '>= 6.5.0' platform :mri do - gem "appraisal2-rubocop", "~> 1.0", ">= 1.0.0", require: false - gem "rubocop-gradual", "~> 0.4", ">= 0.4.0" - gem "rubocop-minitest", "~> 0.40", ">= 0.40.0" - gem "rubocop-on-rbs", "~> 2.0", ">= 2.0.0" # ruby >= 3.2.0 + gem 'appraisal2-rubocop', '~> 1.0', '>= 1.0.0', require: false + gem 'rubocop-gradual', '~> 0.4', '>= 0.4.0' + gem 'rubocop-minitest', '~> 0.40', '>= 0.40.0' + gem 'rubocop-on-rbs', '~> 2.0', '>= 2.0.0' # ruby >= 3.2.0 # gem "rubocop", "~> 1.73", ">= 1.73.2" # constrained by standard - gem "rubocop-packaging", "~> 0.6", ">= 0.6.0" - gem "standard", "~> 1.56", ">= 1.56.0" + gem 'rubocop-packaging', '~> 0.6', '>= 0.6.0' + gem 'standard', '~> 1.56', '>= 1.56.0' - if ENV.fetch("RUBOCOP_LTS_LOCAL", "false").casecmp("false").zero? + if ENV.fetch('RUBOCOP_LTS_LOCAL', 'false').casecmp('false').zero? declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) - gem "rubocop-lts", "~> 24.2", ">= 24.2.1" unless declared_gems.include?("rubocop-lts") - gem "rubocop-lts-rspec", "~> 1.0", ">= 1.0.5" unless declared_gems.include?("rubocop-lts-rspec") - gem "rubocop-ruby3_2", "~> 3.0", ">= 3.0.6" unless declared_gems.include?("rubocop-ruby3_2") + gem 'rubocop-lts', '~> 24.2', '>= 24.2.1' unless declared_gems.include?('rubocop-lts') + gem 'rubocop-lts-rspec', '~> 1.0', '>= 1.0.5' unless declared_gems.include?('rubocop-lts-rspec') + gem 'rubocop-ruby3_2', '~> 3.0', '>= 3.0.6' unless declared_gems.include?('rubocop-ruby3_2') else - eval_gemfile("style_local.gemfile") + eval_gemfile('style_local.gemfile') end end diff --git a/gems/plain-merge/gemfiles/modular/style_local.gemfile b/gems/plain-merge/gemfiles/modular/style_local.gemfile index b702870a0..9b6846285 100644 --- a/gems/plain-merge/gemfiles/modular/style_local.gemfile +++ b/gems/plain-merge/gemfiles/modular/style_local.gemfile @@ -14,21 +14,19 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] -nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) +nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] +nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == "nomono" } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - if nomono_locked - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] - end + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked end -Kernel.send(:gem, "nomono", *nomono_activation_requirements) -require "nomono/bundler" +Kernel.send(:gem, 'nomono', *nomono_activation_requirements) +require 'nomono/bundler' local_gems = %w[rubocop-lts rubocop-lts-rspec rubocop-ruby3_2 standard-rubocop-lts] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) @@ -38,11 +36,11 @@ local_gems_to_eval = local_gems - %w[plain-merge] - declared_gems platform :mri do eval_nomono_gems( gems: local_gems_to_eval, - prefix: "RUBOCOP_LTS", - path_env: "RUBOCOP_LTS_LOCAL", - vendored_gems_env: "VENDORED_GEMS", - vendor_gem_dir_env: "VENDOR_GEM_DIR", - debug_env: "RUBOCOP_LTS_DEBUG", - root: ["src", "rubocop-lts"] + prefix: 'RUBOCOP_LTS', + path_env: 'RUBOCOP_LTS_LOCAL', + vendored_gems_env: 'VENDORED_GEMS', + vendor_gem_dir_env: 'VENDOR_GEM_DIR', + debug_env: 'RUBOCOP_LTS_DEBUG', + root: %w[src rubocop-lts] ) end diff --git a/gems/plain-merge/gemfiles/modular/templating.gemfile b/gems/plain-merge/gemfiles/modular/templating.gemfile index 47138ffbb..a672de184 100644 --- a/gems/plain-merge/gemfiles/modular/templating.gemfile +++ b/gems/plain-merge/gemfiles/modular/templating.gemfile @@ -1,18 +1,18 @@ # frozen_string_literal: true -structuredmerge_remote = ENV.fetch("STRUCTUREDMERGE_DEV", "false").casecmp("false").zero? -kettle_remote = ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false").zero? +structuredmerge_remote = ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false').zero? +kettle_remote = ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? if structuredmerge_remote # Parser dependencies for released installs. - gem "tree_sitter_language_pack", "~> 1.13", ">= 1.13.3" + gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' # Merge recipes for released installs. - gem "kettle-jem", ">= 7.0" + gem 'kettle-jem', '>= 7.0' end if kettle_remote # Template/plugin checks for released installs. - gem "kettle-drift", "~> 1.0", ">= 1.0.6", require: false + gem 'kettle-drift', '~> 1.0', '>= 1.0.6', require: false end # Set STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local development with path-based dependencies. @@ -21,4 +21,4 @@ end # # Set KETTLE_DEV_DEV=/path/to/my for local development with Kettle plugin gems. # When false (default / CI), released Kettle plugin gems are used. -eval_gemfile "templating_local.gemfile" unless structuredmerge_remote && kettle_remote +eval_gemfile 'templating_local.gemfile' unless structuredmerge_remote && kettle_remote diff --git a/gems/plain-merge/gemfiles/modular/templating_local.gemfile b/gems/plain-merge/gemfiles/modular/templating_local.gemfile index 71738416a..b10c084e9 100644 --- a/gems/plain-merge/gemfiles/modular/templating_local.gemfile +++ b/gems/plain-merge/gemfiles/modular/templating_local.gemfile @@ -12,21 +12,19 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] -nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) +nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] +nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == "nomono" } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - if nomono_locked - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] - end + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked end -Kernel.send(:gem, "nomono", *nomono_activation_requirements) -require "nomono/bundler" +Kernel.send(:gem, 'nomono', *nomono_activation_requirements) +require 'nomono/bundler' structuredmerge_local_gems = %w[ tree_haver @@ -69,25 +67,25 @@ structuredmerge_local_gems_to_eval = structuredmerge_local_gems - %w[plain-merge kettle_dev_local_gems_to_eval = kettle_dev_local_gems - %w[plain-merge] - declared_gems platform :mri do - if ENV.fetch("STRUCTUREDMERGE_DEV", "false").casecmp("false") != 0 + if ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false') != 0 eval_nomono_gems( gems: structuredmerge_local_gems_to_eval, - prefix: "STRUCTUREDMERGE", - path_env: "STRUCTUREDMERGE_DEV", - vendored_gems_env: "VENDORED_GEMS", - vendor_gem_dir_env: "VENDOR_GEM_DIR", - debug_env: "STRUCTUREDMERGE_DEBUG" + prefix: 'STRUCTUREDMERGE', + path_env: 'STRUCTUREDMERGE_DEV', + vendored_gems_env: 'VENDORED_GEMS', + vendor_gem_dir_env: 'VENDOR_GEM_DIR', + debug_env: 'STRUCTUREDMERGE_DEBUG' ) end - if ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false") != 0 + if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false') != 0 eval_nomono_gems( gems: kettle_dev_local_gems_to_eval, - prefix: "KETTLE_DEV", - path_env: "KETTLE_DEV_DEV", - vendored_gems_env: "VENDORED_GEMS", - vendor_gem_dir_env: "VENDOR_GEM_DIR", - debug_env: "KETTLE_DEV_DEBUG" + prefix: 'KETTLE_DEV', + path_env: 'KETTLE_DEV_DEV', + vendored_gems_env: 'VENDORED_GEMS', + vendor_gem_dir_env: 'VENDOR_GEM_DIR', + debug_env: 'KETTLE_DEV_DEBUG' ) end end diff --git a/gems/plain-merge/gemfiles/modular/webrick/r4/v1.9.gemfile b/gems/plain-merge/gemfiles/modular/webrick/r4/v1.9.gemfile index eaab4a473..b1329ba84 100644 --- a/gems/plain-merge/gemfiles/modular/webrick/r4/v1.9.gemfile +++ b/gems/plain-merge/gemfiles/modular/webrick/r4/v1.9.gemfile @@ -1 +1 @@ -gem "webrick", "~> 1.9" +gem 'webrick', '~> 1.9' diff --git a/gems/plain-merge/gemfiles/modular/webrick/vHEAD.gemfile b/gems/plain-merge/gemfiles/modular/webrick/vHEAD.gemfile index 8a789b634..c7e6f81a1 100644 --- a/gems/plain-merge/gemfiles/modular/webrick/vHEAD.gemfile +++ b/gems/plain-merge/gemfiles/modular/webrick/vHEAD.gemfile @@ -1 +1 @@ -gem "webrick", ">= 1.9" +gem 'webrick', '>= 1.9' diff --git a/gems/plain-merge/gemfiles/modular/x_std_libs.gemfile b/gems/plain-merge/gemfiles/modular/x_std_libs.gemfile index 77aad43f2..b1f43c097 100644 --- a/gems/plain-merge/gemfiles/modular/x_std_libs.gemfile +++ b/gems/plain-merge/gemfiles/modular/x_std_libs.gemfile @@ -1,12 +1,12 @@ ### Std Lib Extracted Gems ruby_version = Gem::Version.new(RUBY_VERSION) -if ruby_version >= Gem::Version.new("4.0") - eval_gemfile "x_std_libs/r4/libs.gemfile" -elsif ruby_version >= Gem::Version.new("3.2") - eval_gemfile "x_std_libs/r3/libs.gemfile" -elsif ruby_version >= Gem::Version.new("3.1") - eval_gemfile "x_std_libs/r3.1/libs.gemfile" +if ruby_version >= Gem::Version.new('4.0') + eval_gemfile 'x_std_libs/r4/libs.gemfile' +elsif ruby_version >= Gem::Version.new('3.2') + eval_gemfile 'x_std_libs/r3/libs.gemfile' +elsif ruby_version >= Gem::Version.new('3.1') + eval_gemfile 'x_std_libs/r3.1/libs.gemfile' else - eval_gemfile "x_std_libs/r2/libs.gemfile" + eval_gemfile 'x_std_libs/r2/libs.gemfile' end diff --git a/gems/plain-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile b/gems/plain-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile index 441c4f03a..16a5e3d70 100644 --- a/gems/plain-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile +++ b/gems/plain-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile @@ -1,3 +1,3 @@ -eval_gemfile "../../erb/r2/v3.0.gemfile" -eval_gemfile "../../mutex_m/r2/v0.3.gemfile" -eval_gemfile "../../stringio/r2/v3.0.gemfile" +eval_gemfile '../../erb/r2/v3.0.gemfile' +eval_gemfile '../../mutex_m/r2/v0.3.gemfile' +eval_gemfile '../../stringio/r2/v3.0.gemfile' diff --git a/gems/plain-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile b/gems/plain-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile index c293a3ddd..220ff95c1 100644 --- a/gems/plain-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile +++ b/gems/plain-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile @@ -1,3 +1,3 @@ -eval_gemfile "../../erb/r3/v5.0.gemfile" -eval_gemfile "../../mutex_m/r3/v0.3.gemfile" -eval_gemfile "../../stringio/r3/v3.0.gemfile" +eval_gemfile '../../erb/r3/v5.0.gemfile' +eval_gemfile '../../mutex_m/r3/v0.3.gemfile' +eval_gemfile '../../stringio/r3/v3.0.gemfile' diff --git a/gems/plain-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile b/gems/plain-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile index eb5574247..e2f6501eb 100644 --- a/gems/plain-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile +++ b/gems/plain-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile @@ -1,6 +1,6 @@ -eval_gemfile "../../erb/r4/v5.0.gemfile" -eval_gemfile "../../mutex_m/r4/v0.3.gemfile" -eval_gemfile "../../stringio/r4/v3.0.gemfile" -eval_gemfile "../../benchmark/r4/v0.5.gemfile" -eval_gemfile "../../cgi/r4/v0.5.gemfile" -eval_gemfile "../../webrick/r4/v1.9.gemfile" +eval_gemfile '../../erb/r4/v5.0.gemfile' +eval_gemfile '../../mutex_m/r4/v0.3.gemfile' +eval_gemfile '../../stringio/r4/v3.0.gemfile' +eval_gemfile '../../benchmark/r4/v0.5.gemfile' +eval_gemfile '../../cgi/r4/v0.5.gemfile' +eval_gemfile '../../webrick/r4/v1.9.gemfile' diff --git a/gems/plain-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile b/gems/plain-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile index d4d5b16c9..ab75cccf1 100644 --- a/gems/plain-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile +++ b/gems/plain-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile @@ -1,6 +1,6 @@ -eval_gemfile "../erb/vHEAD.gemfile" -eval_gemfile "../mutex_m/vHEAD.gemfile" -eval_gemfile "../stringio/vHEAD.gemfile" -eval_gemfile "../benchmark/vHEAD.gemfile" -eval_gemfile "../cgi/vHEAD.gemfile" -eval_gemfile "../webrick/vHEAD.gemfile" +eval_gemfile '../erb/vHEAD.gemfile' +eval_gemfile '../mutex_m/vHEAD.gemfile' +eval_gemfile '../stringio/vHEAD.gemfile' +eval_gemfile '../benchmark/vHEAD.gemfile' +eval_gemfile '../cgi/vHEAD.gemfile' +eval_gemfile '../webrick/vHEAD.gemfile' diff --git a/gems/plain-merge/lib/plain/merge/version.rb b/gems/plain-merge/lib/plain/merge/version.rb index aab4f67c1..e6b3a5844 100644 --- a/gems/plain-merge/lib/plain/merge/version.rb +++ b/gems/plain-merge/lib/plain/merge/version.rb @@ -3,7 +3,7 @@ module Plain module Merge module Version - VERSION = "7.1.0" + VERSION = '7.1.0' end VERSION = Version::VERSION # Traditional Constant Location end diff --git a/gems/tree_haver/Gemfile.lock b/gems/tree_haver/Gemfile.lock index 90221f993..2c4b3dedd 100644 --- a/gems/tree_haver/Gemfile.lock +++ b/gems/tree_haver/Gemfile.lock @@ -7,264 +7,6 @@ PATH tree_sitter_language_pack (>= 1.13.2, < 2.0) version_gem (~> 1.1, >= 1.1.9) -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly - specs: - ast-crispr-markdown-markly (7.1.0) - ast-crispr (= 7.1.0) - markly-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism - specs: - ast-crispr-ruby-prism (7.1.0) - ast-crispr (= 7.1.0) - prism-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr - specs: - ast-crispr (7.1.0) - ast-merge (= 7.1.0) - service_actor (~> 3.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git - specs: - ast-merge-git (7.1.0) - ast-merge (= 7.1.0) - json-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge - specs: - ast-merge (7.1.0) - benchmark - token-resolver (~> 2.0, >= 2.0.4) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template - specs: - ast-template (7.1.0) - ast-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge - specs: - bash-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge - specs: - binary-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge - specs: - citrus-toml-merge (7.1.0) - toml-merge (= 7.1.0) - toml-rb (~> 4.1) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge - specs: - commonmarker-merge (7.1.0) - commonmarker (~> 2.2) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge - specs: - dotenv-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge - specs: - go-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge - specs: - json-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem - specs: - kettle-jem (7.1.0) - addressable (>= 2.8, < 3) - ast-crispr-markdown-markly (= 7.1.0) - ast-crispr-ruby-prism (= 7.1.0) - ast-merge (= 7.1.0) - bash-merge (= 7.1.0) - citrus-toml-merge (= 7.1.0) - commonmarker-merge (= 7.1.0) - dotenv-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-dev (~> 2.3, >= 2.3.5) - kettle-rb (~> 0.1, >= 0.1.4) - kramdown-merge (= 7.1.0) - markdown-merge (= 7.1.0) - markly-merge (= 7.1.0) - prism-merge (= 7.1.0) - psych-merge (= 7.1.0) - rbs (>= 3.10) - rbs-merge (= 7.1.0) - ruby-merge (= 7.1.0) - token-resolver (~> 2.0, >= 2.0.4) - toml-merge (= 7.1.0) - toml-rb (~> 4.2) - tree_haver (= 7.1.0) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge - specs: - kramdown-merge (7.1.0) - kramdown (~> 2.5) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge - specs: - markdown-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge - specs: - markly-merge (7.1.0) - markdown-merge (= 7.1.0) - markly (~> 0.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge - specs: - parslet-toml-merge (7.1.0) - toml (~> 0.3) - toml-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge - specs: - plain-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge - specs: - prism-merge (7.1.0) - prism (~> 1.6) - ruby-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge - specs: - psych-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge - specs: - rbs-merge (7.1.0) - ast-merge (= 7.1.0) - rbs (>= 3.10) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge - specs: - ruby-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge - specs: - rust-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb - specs: - smorg-rb (7.1.0) - ast-merge (= 7.1.0) - ast-merge-git (= 7.1.0) - go-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-jem (= 7.1.0) - markly-merge (= 7.1.0) - plain-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge - specs: - toml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge - specs: - typescript-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge - specs: - yaml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge - specs: - zip-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - GEM remote: https://gem.coop/ specs: @@ -289,8 +31,6 @@ GEM cgi (0.5.2) citrus (3.0.2) cmdparse (3.0.7) - commonmarker (2.9.0-x86_64-linux) - commonmarker (2.9.0-x86_64-linux-musl) concurrent-ruby (1.3.8) date (3.5.1) debug (1.11.1) @@ -353,8 +93,6 @@ GEM kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) - kettle-drift (1.0.6) - version_gem (~> 1.1, >= 1.1.14) kettle-rb (0.1.5) kettle-soup-cover (3.0.4) kettle-wash (~> 0.1, >= 0.1.0) @@ -383,7 +121,6 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) - markly (0.16.0) mutex_m (0.3.0) nokogiri (1.19.4-x86_64-linux-gnu) racc (~> 1.4) @@ -540,8 +277,6 @@ GEM ruby-progressbar (1.13.0) ruby_engine (2.0.3) ruby_version (1.0.3) - service_actor (3.9.4) - zeitwerk (>= 1.0) silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) @@ -593,9 +328,6 @@ GEM delegate (~> 0.1) rspec (~> 3.0) timecop (>= 0.7, < 1) - token-resolver (2.0.5) - parslet (~> 2.0) - version_gem (~> 1.1, >= 1.1.14) toml (0.3.0) parslet (>= 1.8.0, < 3.0.0) toml-rb (4.2.0) @@ -647,46 +379,23 @@ DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) appraisal2-rubocop (~> 1.0, >= 1.0.0) - ast-crispr! - ast-crispr-markdown-markly! - ast-crispr-ruby-prism! - ast-merge! - ast-merge-git! - ast-template! - bash-merge! benchmark (~> 0.5, >= 0.5.0) - binary-merge! bundler-audit (~> 0.9.3) cgi (~> 0.5) - citrus-toml-merge! - commonmarker-merge! debug (>= 1.1) - dotenv-merge! erb (~> 6.0, >= 6.0.6) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.0) - go-merge! irb (~> 1.17) - json-merge! kettle-dev (~> 2.0, >= 2.2.25) - kettle-drift (~> 1.0, >= 1.0.6) - kettle-jem! kettle-soup-cover (~> 3.0, >= 3.0.3) kettle-test (~> 2.0, >= 2.0.9) kramdown (~> 2.5, >= 2.5.2) - kramdown-merge! kramdown-parser-gfm (~> 1.1) - markdown-merge! - markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) - parslet-toml-merge! - plain-merge! - prism-merge! - psych-merge! rake (~> 13.0) rbs (>= 3.0) - rbs-merge! rdoc (~> 6.11) reek (~> 6.5, >= 6.5.0) require_bench (~> 1.0, >= 1.0.4) @@ -697,28 +406,21 @@ DEPENDENCIES rubocop-on-rbs (~> 2.0, >= 2.0.0) rubocop-packaging (~> 0.6, >= 0.6.0) rubocop-ruby3_2 (~> 3.0, >= 3.0.6) - ruby-merge! ruby-progressbar (~> 1.13) - rust-merge! - smorg-rb! standard (~> 1.56, >= 1.56.0) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) toml (~> 0.3) - toml-merge! toml-rb (~> 4.1) tree_haver! - typescript-merge! webrick (~> 1.9) yaml-converter (~> 0.2, >= 0.2.3) - yaml-merge! yard (~> 0.9, >= 0.9.45) yard-fence (~> 0.9, >= 0.9.6) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) yard-timekeeper (~> 0.2, >= 0.2.4) yard-yaml (~> 0.2, >= 0.2.3) - zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af @@ -726,32 +428,19 @@ CHECKSUMS appraisal2 (3.2.0) sha256=ccd0b767ac4060cd7af6d16747459b6990f49c39c7b4fb1f7d1146b1e97c492f appraisal2-rubocop (1.0.0) sha256=b71410fbb014befda5340605a605b7f6f3f012739baf0acc5b4351b592c3258d ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 - ast-crispr (7.1.0) - ast-crispr-markdown-markly (7.1.0) - ast-crispr-ruby-prism (7.1.0) - ast-merge (7.1.0) - ast-merge-git (7.1.0) - ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 - bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd - binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 - citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 - commonmarker (2.9.0-x86_64-linux) sha256=8cfe92970eef585a19ddf6613224b91cab64d6029834661bda801f877c9c7f43 - commonmarker (2.9.0-x86_64-linux-musl) sha256=293921398b839f79ceaf55010e061357e34f053822c3b003cd0be6686176335e - commonmarker-merge (7.1.0) concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 - dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -764,28 +453,20 @@ CHECKSUMS gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f - go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 - json-merge (7.1.0) kettle-dev (2.3.8) sha256=9d716ff21c660a730cb4e8d41e2e2f0630a28167a354b6e2924e242102aef72c - kettle-drift (1.0.6) sha256=46eda08fa4411d1f3c6682a95eef1c9df4e94611b3949f49d4c7b43c0ed356a3 - kettle-jem (7.1.0) kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f kettle-soup-cover (3.0.4) kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa - kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 - markdown-merge (7.1.0) - markly (0.16.0) sha256=6f70d79e385b1efc9e171f74c81628826259039fe6c778e03c3924c71dac5511 - markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-x86_64-linux-gnu) sha256=379fae440b28915e3f19d752ce2dcf8465ed2b2fbefd2a7ca0dd497bc981a06a nokogiri (1.19.4-x86_64-linux-musl) sha256=17dfb7c1fa194ae02fbf7c51a7afc8d278045ab3fdacfd86f91d02d7b274470b @@ -796,20 +477,15 @@ CHECKSUMS parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 - parslet-toml-merge (7.1.0) - plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 - prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 - psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 - rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb @@ -844,19 +520,15 @@ CHECKSUMS rubocop-rspec_rails (2.32.0) sha256=4a0d641c72f6ebb957534f539d9d0a62c47abd8ce0d0aeee1ef4701e892a9100 rubocop-ruby3_2 (3.0.7) sha256=f53dd6d286fb05186214fc6ec116783e7f837030918e8931c05de773e98f8466 rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 - ruby-merge (7.1.0) ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 - rust-merge (7.1.0) - service_actor (3.9.4) sha256=e63b523630b9a7e62959b2a90113b08d2565b5de9c148557b281ef847c9539ce silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed - smorg-rb (7.1.0) sorbet-runtime (0.6.13347) sha256=54e7221d9f4b63f58aec79f3043752a9ba7810347c6ae0d903531591cc2d5f01 standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b @@ -870,21 +542,17 @@ CHECKSUMS thor (1.5.0) sha256=e3a9e55fe857e44859ce104a84675ab6e8cd59c650a49106a05f55f136425e73 timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 - token-resolver (2.0.5) sha256=b852f924287ffb58a440856e862b056c8ad97e74b4b2526cee43e0771f40c25c toml (0.3.0) sha256=0a91d0f76a9036e84e44f95693b12f58d358c1df3ac8e3b5271f2056ecc6e4b9 - toml-merge (7.1.0) toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 - typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 webrick (1.9.2) sha256=beb4a15fc474defed24a3bda4ffd88a490d517c9e4e6118c3edce59e45864131 yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 - yaml-merge (7.1.0) yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd @@ -892,7 +560,6 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 - zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH From 5597e8e6181dd9b145abd5c944a3b28d3014ac16 Mon Sep 17 00:00:00 2001 From: "Peter H. Boling" Date: Tue, 21 Jul 2026 13:52:47 -0600 Subject: [PATCH 125/188] =?UTF-8?q?=F0=9F=8E=A8=20Template=20bootstrap=20b?= =?UTF-8?q?y=20kettle-jem=20v7.1.0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gems/bash-merge/.rubocop_gradual.lock | 27 +- gems/bash-merge/Gemfile | 70 ++- gems/bash-merge/Gemfile.lock | 480 ++++-------------- gems/bash-merge/Rakefile | 18 +- gems/bash-merge/bash-merge.gemspec | 84 +-- .../modular/benchmark/r4/v0.5.gemfile | 2 +- .../gemfiles/modular/benchmark/vHEAD.gemfile | 2 +- .../gemfiles/modular/cgi/r4/v0.5.gemfile | 2 +- .../gemfiles/modular/cgi/vHEAD.gemfile | 2 +- .../gemfiles/modular/coverage.gemfile | 6 +- .../gemfiles/modular/coverage_local.gemfile | 42 +- .../bash-merge/gemfiles/modular/debug.gemfile | 4 +- .../gemfiles/modular/documentation.gemfile | 24 +- .../modular/documentation_local.gemfile | 30 +- .../gemfiles/modular/erb/r2/v3.0.gemfile | 2 +- .../gemfiles/modular/erb/r3/v5.0.gemfile | 2 +- .../gemfiles/modular/erb/r4/v5.0.gemfile | 2 +- .../gemfiles/modular/erb/vHEAD.gemfile | 2 +- .../modular/json/truffleruby_22_3.gemfile | 4 +- .../modular/json/truffleruby_23_0.gemfile | 4 +- .../modular/json/truffleruby_23_1.gemfile | 4 +- .../gemfiles/modular/mutex_m/r2/v0.3.gemfile | 2 +- .../gemfiles/modular/mutex_m/r3/v0.3.gemfile | 2 +- .../gemfiles/modular/mutex_m/r4/v0.3.gemfile | 2 +- .../gemfiles/modular/mutex_m/vHEAD.gemfile | 2 +- .../gemfiles/modular/optional.gemfile | 4 +- .../bash-merge/gemfiles/modular/rspec.gemfile | 8 +- .../gemfiles/modular/runtime_heads.gemfile | 2 +- .../gemfiles/modular/stringio/r2/v3.0.gemfile | 2 +- .../gemfiles/modular/stringio/r3/v3.0.gemfile | 2 +- .../gemfiles/modular/stringio/r4/v3.0.gemfile | 2 +- .../gemfiles/modular/stringio/vHEAD.gemfile | 2 +- .../bash-merge/gemfiles/modular/style.gemfile | 24 +- .../gemfiles/modular/style_local.gemfile | 32 +- .../gemfiles/modular/templating.gemfile | 12 +- .../gemfiles/modular/templating_local.gemfile | 44 +- .../gemfiles/modular/webrick/r4/v1.9.gemfile | 2 +- .../gemfiles/modular/webrick/vHEAD.gemfile | 2 +- .../gemfiles/modular/x_std_libs.gemfile | 14 +- .../modular/x_std_libs/r2/libs.gemfile | 6 +- .../modular/x_std_libs/r3/libs.gemfile | 6 +- .../modular/x_std_libs/r4/libs.gemfile | 12 +- .../gemfiles/modular/x_std_libs/vHEAD.gemfile | 12 +- gems/bash-merge/lib/bash/merge/version.rb | 2 +- gems/dotenv-merge/.kettle-drift.lock | 288 +---------- .../.structuredmerge/kettle-jem.yml | 53 ++ gems/dotenv-merge/Gemfile | 72 ++- gems/dotenv-merge/Gemfile.lock | 34 +- gems/dotenv-merge/Rakefile | 18 +- gems/dotenv-merge/lib/dotenv/merge/version.rb | 2 +- gems/plain-merge/Gemfile.lock | 325 +++++++++++- gems/rbs-merge/Gemfile.lock | 350 ++++++++++++- 52 files changed, 1176 insertions(+), 977 deletions(-) diff --git a/gems/bash-merge/.rubocop_gradual.lock b/gems/bash-merge/.rubocop_gradual.lock index f57de1aca..6e1ef9a7d 100644 --- a/gems/bash-merge/.rubocop_gradual.lock +++ b/gems/bash-merge/.rubocop_gradual.lock @@ -8,9 +8,10 @@ [163, 121, 22, "Layout/LineLength: Line is too long. [142/120]", 1367093088], [166, 121, 18, "Layout/LineLength: Line is too long. [138/120]", 3881946477] ], - "bash-merge.gemspec:4057981445": [ + "bash-merge.gemspec:1539117488": [ [118, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 2821357214], - [126, 121, 29, "Layout/LineLength: Line is too long. [149/120]", 981994949] + [129, 121, 50, "Layout/LineLength: Line is too long. [170/120]", 3888612416], + [130, 121, 29, "Layout/LineLength: Line is too long. [149/120]", 981994949] ], "gemfiles/modular/benchmark/r4/v0.5.gemfile:3644720371": [ [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] @@ -19,13 +20,20 @@ [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] ], + "gemfiles/modular/cgi/r4/v0.5.gemfile:367169322": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/cgi/vHEAD.gemfile:2729540777": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], "gemfiles/modular/erb/r2/v3.0.gemfile:1688285565": [ [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] ], - "gemfiles/modular/erb/r3/v5.0.gemfile:2150258305": [ + "gemfiles/modular/erb/r3/v5.0.gemfile:2394062339": [ [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] ], - "gemfiles/modular/erb/r4/v5.0.gemfile:2150258305": [ + "gemfiles/modular/erb/r4/v5.0.gemfile:2394062339": [ [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] ], "gemfiles/modular/erb/vHEAD.gemfile:981929959": [ @@ -61,6 +69,13 @@ [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] ], + "gemfiles/modular/webrick/r4/v1.9.gemfile:3092661193": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/webrick/vHEAD.gemfile:3867684682": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], "gemfiles/modular/x_std_libs.gemfile:2324400122": [ [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] ], @@ -70,10 +85,10 @@ "gemfiles/modular/x_std_libs/r3/libs.gemfile:4030570297": [ [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] ], - "gemfiles/modular/x_std_libs/r4/libs.gemfile:909736663": [ + "gemfiles/modular/x_std_libs/r4/libs.gemfile:732451732": [ [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] ], - "gemfiles/modular/x_std_libs/vHEAD.gemfile:907917303": [ + "gemfiles/modular/x_std_libs/vHEAD.gemfile:2390363993": [ [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] ], diff --git a/gems/bash-merge/Gemfile b/gems/bash-merge/Gemfile index 7643beb21..2cd91c5fd 100644 --- a/gems/bash-merge/Gemfile +++ b/gems/bash-merge/Gemfile @@ -6,7 +6,7 @@ # kettle-jem will then preserve content between those markers across template runs. # kettle-jem:unfreeze -source "https://gem.coop" +source 'https://gem.coop' git_source(:codeberg) { |repo_name| "https://codeberg.org/#{repo_name}" } git_source(:gitlab) { |repo_name| "https://gitlab.com/#{repo_name}" } @@ -19,58 +19,54 @@ git_source(:gitlab) { |repo_name| "https://gitlab.com/#{repo_name}" } gemspec # Local workspace dependency wiring for *_local.gemfile overrides -nomono_requirements = ["~> 1.0", ">= 1.0.8"] -gem "nomono", *nomono_requirements, require: false # ruby >= 2.2 +nomono_requirements = ['~> 1.0', '>= 1.0.8'] +gem 'nomono', *nomono_requirements, require: false # ruby >= 2.2 # Direct sibling dependencies (env-switched via STRUCTUREDMERGE_DEV) direct_sibling_gems = %w[ ast-merge tree_haver ] -direct_sibling_dev = ENV.fetch("STRUCTUREDMERGE_DEV", "") +direct_sibling_dev = ENV.fetch('STRUCTUREDMERGE_DEV', '') direct_sibling_local = !direct_sibling_dev.empty? && !%w[false 0 no off].include?(direct_sibling_dev.downcase) -direct_sibling_templating = ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? +direct_sibling_templating = ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero?) - direct_sibling_dev_was_set = ENV.key?("STRUCTUREDMERGE_DEV") - direct_sibling_dev_original = ENV.fetch("STRUCTUREDMERGE_DEV", nil) + (direct_sibling_local || + ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) + direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') + direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) begin nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path("Gemfile.lock", __dir__) + nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == "nomono" } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - if nomono_locked - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] - end - end - Kernel.send(:gem, "nomono", *nomono_activation_requirements) - require "nomono/bundler" - if direct_sibling_templating && !direct_sibling_local - ENV["STRUCTUREDMERGE_DEV"] = File.expand_path("..", __dir__) + Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked end + Kernel.send(:gem, 'nomono', *nomono_activation_requirements) + require 'nomono/bundler' + ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local eval_nomono_gems( gems: direct_sibling_gems, - prefix: "STRUCTUREDMERGE", - path_env: "STRUCTUREDMERGE_DEV", - root: ["src", "my", "structuredmerge"] + prefix: 'STRUCTUREDMERGE', + path_env: 'STRUCTUREDMERGE_DEV', + root: %w[src my structuredmerge] ) rescue LoadError - warn "Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies." + warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' ensure if direct_sibling_templating && !direct_sibling_local if direct_sibling_dev_was_set - ENV["STRUCTUREDMERGE_DEV"] = direct_sibling_dev_original + ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original else - ENV.delete("STRUCTUREDMERGE_DEV") + ENV.delete('STRUCTUREDMERGE_DEV') end end end @@ -117,28 +113,28 @@ if direct_sibling_gems.any? && end # Use released TSLP with the Ruby ABI platform-gem fix. -gem "tree_sitter_language_pack", "~> 1.13", ">= 1.13.3" +gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' # Templating (env-switched: STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local paths) -eval_gemfile "gemfiles/modular/templating.gemfile" if ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? +eval_gemfile 'gemfiles/modular/templating.gemfile' if ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? # Debugging -eval_gemfile "gemfiles/modular/debug.gemfile" +eval_gemfile 'gemfiles/modular/debug.gemfile' # Code Coverage (env-switched: KETTLE_DEV_DEV=true for local paths) -eval_gemfile "gemfiles/modular/coverage.gemfile" +eval_gemfile 'gemfiles/modular/coverage.gemfile' # Linting -eval_gemfile "gemfiles/modular/style.gemfile" +eval_gemfile 'gemfiles/modular/style.gemfile' # Documentation -eval_gemfile "gemfiles/modular/documentation.gemfile" +eval_gemfile 'gemfiles/modular/documentation.gemfile' # Optional -eval_gemfile "gemfiles/modular/optional.gemfile" +eval_gemfile 'gemfiles/modular/optional.gemfile' ### Std Lib Extracted Gems -eval_gemfile "gemfiles/modular/x_std_libs.gemfile" +eval_gemfile 'gemfiles/modular/x_std_libs.gemfile' # See unlocked_deps appraisal for more details on irb inclusion -gem "irb", "~> 1.17" # ruby >= 2.7 +gem 'irb', '~> 1.17' # ruby >= 2.7 diff --git a/gems/bash-merge/Gemfile.lock b/gems/bash-merge/Gemfile.lock index 60ec6e4a8..056b27a3d 100644 --- a/gems/bash-merge/Gemfile.lock +++ b/gems/bash-merge/Gemfile.lock @@ -7,39 +7,7 @@ PATH version_gem (~> 1.1, >= 1.1.14) PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly - specs: - ast-crispr-markdown-markly (7.1.0) - ast-crispr (= 7.1.0) - markly-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism - specs: - ast-crispr-ruby-prism (7.1.0) - ast-crispr (= 7.1.0) - prism-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr - specs: - ast-crispr (7.1.0) - ast-merge (= 7.1.0) - service_actor (~> 3.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git - specs: - ast-merge-git (7.1.0) - ast-merge (= 7.1.0) - json-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/ast-merge specs: ast-merge (7.1.0) benchmark @@ -48,193 +16,7 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template - specs: - ast-template (7.1.0) - ast-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge - specs: - binary-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge - specs: - citrus-toml-merge (7.1.0) - toml-merge (= 7.1.0) - toml-rb (~> 4.1) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge - specs: - commonmarker-merge (7.1.0) - commonmarker (~> 2.2) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge - specs: - dotenv-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge - specs: - go-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge - specs: - json-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem - specs: - kettle-jem (7.1.0) - addressable (>= 2.8, < 3) - ast-crispr-markdown-markly (= 7.1.0) - ast-crispr-ruby-prism (= 7.1.0) - ast-merge (= 7.1.0) - bash-merge (= 7.1.0) - citrus-toml-merge (= 7.1.0) - commonmarker-merge (= 7.1.0) - dotenv-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-dev (~> 2.3, >= 2.3.5) - kettle-rb (~> 0.1, >= 0.1.4) - kramdown-merge (= 7.1.0) - markdown-merge (= 7.1.0) - markly-merge (= 7.1.0) - prism-merge (= 7.1.0) - psych-merge (= 7.1.0) - rbs (>= 3.10) - rbs-merge (= 7.1.0) - ruby-merge (= 7.1.0) - token-resolver (~> 2.0, >= 2.0.4) - toml-merge (= 7.1.0) - toml-rb (~> 4.2) - tree_haver (= 7.1.0) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge - specs: - kramdown-merge (7.1.0) - kramdown (~> 2.5) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge - specs: - markdown-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge - specs: - markly-merge (7.1.0) - markdown-merge (= 7.1.0) - markly (~> 0.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge - specs: - parslet-toml-merge (7.1.0) - toml (~> 0.3) - toml-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge - specs: - plain-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge - specs: - prism-merge (7.1.0) - prism (~> 1.6) - ruby-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge - specs: - psych-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge - specs: - rbs-merge (7.1.0) - ast-merge (= 7.1.0) - rbs (>= 3.10) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge - specs: - ruby-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge - specs: - rust-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb - specs: - smorg-rb (7.1.0) - ast-merge (= 7.1.0) - ast-merge-git (= 7.1.0) - go-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-jem (= 7.1.0) - markly-merge (= 7.1.0) - plain-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge - specs: - toml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/tree_haver specs: tree_haver (7.1.0) citrus (~> 3.0) @@ -242,29 +24,6 @@ PATH tree_sitter_language_pack (>= 1.13.2, < 2.0) version_gem (~> 1.1, >= 1.1.9) -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge - specs: - typescript-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge - specs: - yaml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge - specs: - zip-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - GEM remote: https://gem.coop/ specs: @@ -275,6 +34,10 @@ GEM bundler (>= 1.17.3) rake (>= 10) thor (>= 0.14) + appraisal2-rubocop (1.0.0) + appraisal2 (>= 3.1.4) + rubocop (>= 1.0) + version_gem (~> 1.1, >= 1.1.14) ast (2.4.3) backports (3.25.3) benchmark (0.5.0) @@ -282,9 +45,9 @@ GEM bundler-audit (0.9.3) bundler (>= 1.2.0) thor (~> 1.0) + cgi (0.5.2) citrus (3.0.2) cmdparse (3.0.7) - commonmarker (2.9.0-x86_64-linux) concurrent-ruby (1.3.8) date (3.5.1) debug (1.11.1) @@ -293,7 +56,6 @@ GEM delegate (0.6.1) diff-lcs (1.6.2) diffy (3.4.4) - docile (1.4.1) dry-configurable (1.4.0) dry-core (~> 1.0) zeitwerk (~> 2.6) @@ -324,7 +86,7 @@ GEM dry-logic (~> 1.4) zeitwerk (~> 2.6) emoji_regex (15.0.0) - erb (6.0.5) + erb (6.0.6) gem_bench (2.0.5) bundler (>= 1.14) version_gem (~> 1.1, >= 1.1.4) @@ -343,24 +105,20 @@ GEM rdoc (>= 4.0.0) reline (>= 0.4.2) json (2.21.1) - kettle-dev (2.3.7) + kettle-dev (2.3.8) emoji_regex (>= 15.0) kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) - kettle-drift (1.0.6) - version_gem (~> 1.1, >= 1.1.14) - kettle-rb (0.1.4) - kettle-soup-cover (1.1.3) - simplecov (~> 0.22) - simplecov-cobertura (~> 3.0) - simplecov-console (~> 0.9, >= 0.9.3) - simplecov-html (~> 0.13, >= 0.13.1) - simplecov-lcov (~> 0.8) + kettle-rb (0.1.5) + kettle-soup-cover (3.0.4) + kettle-wash (~> 0.1, >= 0.1.0) + simplecov (>= 1.0) + simplecov-cobertura (>= 4.0) + simplecov-console (~> 0.9, >= 0.9.5) simplecov-rcov (~> 0.3, >= 0.3.7) - simplecov_json_formatter (~> 0.1, >= 0.1.4) - version_gem (~> 1.1, >= 1.1.9) - kettle-test (2.0.11) + simplecov_lcov_formatter (~> 0.9, >= 0.9.0) + kettle-test (2.0.12) appraisal2 (~> 3.0, >= 3.0.6) backports (~> 3.0) rspec (~> 3.0) @@ -371,6 +129,8 @@ GEM silent_stream (~> 1.0, >= 1.0.12) timecop-rspec (~> 1.0, >= 1.0.3) turbo_tests2 (~> 3.1, >= 3.1.12) + kettle-wash (0.1.1) + version_gem (~> 1.1, >= 1.1.14) kramdown (2.5.2) rexml (>= 3.4.4) kramdown-parser-gfm (1.1.0) @@ -378,7 +138,6 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) - markly (0.16.0) mutex_m (0.3.0) nokogiri (1.19.4-aarch64-linux-gnu) racc (~> 1.4) @@ -466,6 +225,14 @@ GEM rubocop-ast (1.50.0) parser (>= 3.3.7.2) prism (~> 1.7) + rubocop-capybara (2.23.0) + lint_roller (~> 1.1) + rubocop (~> 1.81) + rubocop-env (0.1.0) + rubocop + rubocop-factory_bot (2.28.0) + lint_roller (~> 1.1) + rubocop (~> 1.72, >= 1.72.1) rubocop-gradual (0.4.0) benchmark diff-lcs (>= 1.2.0, < 2.0) @@ -473,13 +240,26 @@ GEM parallel (~> 1.10) rainbow (>= 2.2.2, < 4.0) rubocop (~> 1.0) - rubocop-lts (24.1.0) - rubocop-ruby3_2 (>= 3.0.0, < 4) - standard-rubocop-lts (>= 2.0.2, < 3) - version_gem (>= 1.1.2, < 3) + rubocop-lts (24.2.2) + rubocop-ruby3_2 (~> 3.0, >= 3.0.1) + standard-rubocop-lts (~> 2.0, >= 2.0.3) + version_gem (~> 1.1, >= 1.1.13) + rubocop-lts-rspec (1.0.5) + rubocop (~> 1.84, >= 1.84.2) + rubocop-env (~> 0.1, >= 0.1.0) + rubocop-factory_bot (~> 2.28, >= 2.28.0) + rubocop-rspec (~> 3.9, >= 3.9.0) + rubocop-rspec-extra (~> 0.3, >= 0.3.0) + standard (~> 1.54, >= 1.54.0) + standard-rspec (~> 0.5, >= 0.5.0) + version_gem (~> 1.1, >= 1.1.13) rubocop-md (2.0.4) lint_roller (~> 1.1) rubocop (>= 1.72.1) + rubocop-minitest (0.40.0) + lint_roller (~> 1.1) + rubocop (>= 1.75.0, < 2.0) + rubocop-ast (>= 1.38.0, < 2.0) rubocop-on-rbs (2.0.0) lint_roller (~> 1.1) rbs (~> 4.0) @@ -499,6 +279,13 @@ GEM lint_roller (~> 1.1) regexp_parser (>= 2.0) rubocop (~> 1.86, >= 1.86.2) + rubocop-rspec-extra (0.3.0) + lint_roller (~> 1.1) + rubocop (>= 1.72.1, < 2.0) + rubocop-rspec_rails (2.32.0) + lint_roller (~> 1.1) + rubocop (~> 1.72, >= 1.72.1) + rubocop-rspec (~> 3.5) rubocop-ruby3_2 (3.0.7) rubocop-gradual (~> 0.3, >= 0.3.6) rubocop-md (~> 2.0, >= 2.0.4) @@ -513,27 +300,21 @@ GEM ruby-progressbar (1.13.0) ruby_engine (2.0.3) ruby_version (1.0.3) - service_actor (3.9.4) - zeitwerk (>= 1.0) silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) - simplecov (0.22.0) - docile (~> 1.1) - simplecov-html (~> 0.11) - simplecov_json_formatter (~> 0.1) - simplecov-cobertura (3.2.0) + simplecov (1.0.2) + simplecov-cobertura (4.0.0) rexml - simplecov (~> 0.19) + simplecov (~> 1.0) simplecov-console (0.9.5) ansi simplecov terminal-table - simplecov-html (0.13.2) - simplecov-lcov (0.9.0) simplecov-rcov (0.3.7) simplecov (>= 0.4.1) - simplecov_json_formatter (0.1.4) + simplecov_lcov_formatter (0.9.0) + simplecov (>= 0.18) sorbet-runtime (0.6.13347) standard (1.56.0) language_server-protocol (~> 3.17.0.2) @@ -547,6 +328,12 @@ GEM standard-performance (1.9.0) lint_roller (~> 1.1) rubocop-performance (~> 1.26.0) + standard-rspec (0.5.0) + lint_roller (>= 1.0) + rubocop-capybara (~> 2.23) + rubocop-factory_bot (~> 2.27) + rubocop-rspec (~> 3.9) + rubocop-rspec_rails (~> 2.31) standard-rubocop-lts (2.0.10) standard (~> 1.54, >= 1.54.0) standard-custom (~> 1.0, >= 1.0.2) @@ -564,14 +351,9 @@ GEM delegate (~> 0.1) rspec (~> 3.0) timecop (>= 0.7, < 1) - token-resolver (2.0.4) + token-resolver (2.0.5) parslet (~> 2.0) - version_gem (~> 1.1, >= 1.1.13) - toml (0.3.0) - parslet (>= 1.8.0, < 3.0.0) - toml-rb (4.2.0) - citrus (~> 3.0, > 3.0) - racc (~> 1.7) + version_gem (~> 1.1, >= 1.1.14) tree_sitter_language_pack (1.13.3-aarch64-linux) sorbet-runtime (~> 0.5) tree_sitter_language_pack (1.13.3-arm64-darwin) @@ -587,6 +369,7 @@ GEM unicode-emoji (~> 4.1) unicode-emoji (4.2.0) version_gem (1.1.14) + webrick (1.9.2) yaml-converter (0.2.3) hexapdf (>= 1.8, < 2) kramdown (>= 2.4, < 3) @@ -624,105 +407,73 @@ PLATFORMS DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.2, >= 3.2.0) - ast-crispr! - ast-crispr-markdown-markly! - ast-crispr-ruby-prism! + appraisal2-rubocop (~> 1.0, >= 1.0.0) ast-merge! - ast-merge-git! - ast-template! bash-merge! benchmark (~> 0.5, >= 0.5.0) - binary-merge! bundler-audit (~> 0.9.3) - citrus-toml-merge! - commonmarker-merge! + cgi (~> 0.5) debug (>= 1.1) - dotenv-merge! - erb (~> 6.0, >= 6.0.4) + erb (~> 6.0, >= 6.0.6) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.4) - go-merge! irb (~> 1.17) - json-merge! kettle-dev (~> 2.3, >= 2.3.7) - kettle-drift (~> 1.0, >= 1.0.5) - kettle-jem! - kettle-soup-cover (~> 1.0, >= 1.1.3) - kettle-test (~> 2.0, >= 2.0.11) - kramdown (~> 2.5, >= 2.5.1) - kramdown-merge! + kettle-soup-cover (~> 3.0, >= 3.0.3) + kettle-test (~> 2.0, >= 2.0.12) + kramdown (~> 2.5, >= 2.5.2) kramdown-parser-gfm (~> 1.1) - markdown-merge! - markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) - parslet-toml-merge! - plain-merge! - prism-merge! - psych-merge! rake (~> 13.0) rbs (>= 3.0) - rbs-merge! rdoc (~> 6.11) - reek (~> 6.5) + reek (~> 6.5, >= 6.5.0) require_bench (~> 1.0, >= 1.0.4) - rubocop-lts (~> 24.1.0) - rubocop-on-rbs (~> 2.0) + rubocop-gradual (~> 0.4, >= 0.4.0) + rubocop-lts (~> 24.2, >= 24.2.1) + rubocop-lts-rspec (~> 1.0, >= 1.0.5) + rubocop-minitest (~> 0.40, >= 0.40.0) + rubocop-on-rbs (~> 2.0, >= 2.0.0) rubocop-packaging (~> 0.6, >= 0.6.0) - rubocop-rspec (~> 3.6) - rubocop-ruby3_2 (~> 3.0.0) - ruby-merge! + rubocop-ruby3_2 (~> 3.0, >= 3.0.6) ruby-progressbar (~> 1.13) - rust-merge! - smorg-rb! - standard (>= 1.50) - stone_checksums (~> 1.0, >= 1.0.6, >= 1.0.3) + standard (~> 1.56, >= 1.56.0) + stone_checksums (~> 1.0, >= 1.0.6) stringio (>= 3.0) - toml-merge! tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) turbo_tests2 (~> 3.2, >= 3.2.0) - typescript-merge! - yaml-converter (~> 0.1) - yaml-merge! - yard (~> 0.9, >= 0.9.44) - yard-fence (~> 0.9, >= 0.9.1) + webrick (~> 1.9) + yaml-converter (~> 0.2, >= 0.2.3) + yard (~> 0.9, >= 0.9.45) + yard-fence (~> 0.9, >= 0.9.6) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) - yard-timekeeper (~> 0.1) - yard-yaml (~> 0.1, >= 0.1.2) - zip-merge! + yard-timekeeper (~> 0.2, >= 0.2.4) + yard-yaml (~> 0.2, >= 0.2.3) CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af ansi (1.6.0) sha256=ac9ea0c0ea8d32fb4e271348e609963ac78882f34b73836c2a02b3622e666658 appraisal2 (3.2.0) sha256=ccd0b767ac4060cd7af6d16747459b6990f49c39c7b4fb1f7d1146b1e97c492f + appraisal2-rubocop (1.0.0) sha256=b71410fbb014befda5340605a605b7f6f3f012739baf0acc5b4351b592c3258d ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 - ast-crispr (7.1.0) - ast-crispr-markdown-markly (7.1.0) - ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) - ast-merge-git (7.1.0) - ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd - binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 + cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 - citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 - commonmarker (2.9.0-x86_64-linux) - commonmarker-merge (7.1.0) concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 - docile (1.4.1) sha256=96159be799bfa73cdb721b840e9802126e4e03dfc26863db73647204c727f21e - dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -731,31 +482,24 @@ CHECKSUMS dry-schema (1.16.0) sha256=cd3aaeabc0f1af66ec82a29096d4c4fb92a0a58b9dae29a22b1bbceb78985727 dry-types (1.9.1) sha256=baebeecdb9f8395d6c9d227b62011279440943e3ef2468fe8ccc1ba11467f178 emoji_regex (15.0.0) sha256=a508b2c0bee561169564e0aec96085020c900520d335e5533fd8e78e59493829 - erb (6.0.5) sha256=858e63488cb796c9daba8b6e9ff4b3879c395022049be9a66a8e00980e612eac + erb (6.0.6) sha256=a9b24986700f5bf127c4f297c5403c3ca41b83b0a316c0cd09a096b56e644ae5 gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f - go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 - json-merge (7.1.0) - kettle-dev (2.3.7) sha256=eb370113cd030d03cbe2d33b31c99858951017e5ad21a17e9ed89dc3770028ee - kettle-drift (1.0.6) - kettle-jem (7.1.0) - kettle-rb (0.1.4) sha256=9cef7ce4f7021666b7222292f29051e51eaf042e8a5db11f3f4dd72f74243fc1 - kettle-soup-cover (1.1.3) sha256=a373827da22a7131d093afd32945e5b7d7a10a01ebfdded8fd2cb8230d69c8ad - kettle-test (2.0.11) sha256=c710c90f7ab79d51f9452f0c09f5f90657e7a893f63583855c164d0b1b107ab2 + kettle-dev (2.3.8) sha256=9d716ff21c660a730cb4e8d41e2e2f0630a28167a354b6e2924e242102aef72c + kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f + kettle-soup-cover (3.0.4) + kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 + kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa - kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 - markdown-merge (7.1.0) - markly (0.16.0) - markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-aarch64-linux-gnu) sha256=1269fb644a6de405057a53dd5c762b1209b43ca7424f839454d3dbc677c31a8f nokogiri (1.19.4-aarch64-linux-musl) sha256=35c65b9ce72b3bb03207bdbe7067915019dc18c1b9b59139684bd6690fdd01af @@ -769,20 +513,15 @@ CHECKSUMS parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 - parslet-toml-merge (7.1.0) - plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 - prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 - psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 - rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb @@ -800,35 +539,37 @@ CHECKSUMS rspec_junit_formatter (0.6.0) sha256=40dde674e6ae4e6cc0ff560da25497677e34fefd2338cc467a8972f602b62b15 rubocop (1.88.2) sha256=8def251c90cd955feb4daa3edc0ab56893250c4ce90ef81e6c80c03f9a939bbf rubocop-ast (1.50.0) sha256=b9ca88300da0803ee222ad20cdb30494c0a784eed06fdc35d254b06d662788db + rubocop-capybara (2.23.0) sha256=f9ea1ba3a7561ee8e88cf76fc378ce517ce5327155f305ee7b5c2500e5aee357 + rubocop-env (0.1.0) sha256=5ab9a259e71822bf514c8e900a9b68cc2f74ccc87d5493efcd03213f3068e718 + rubocop-factory_bot (2.28.0) sha256=4b17fc02124444173317e131759d195b0d762844a71a29fe8139c1105d92f0cb rubocop-gradual (0.4.0) sha256=9c7e584e6fef6c2539266a193a4572c970c22f99046fd6b0305bdde6228f96ad - rubocop-lts (24.1.0) sha256=9dcad4db2da2fe2f1f77f98c917d70e7c43eded703da14cd201d4be52a9272aa + rubocop-lts (24.2.2) sha256=be6c745e1bb61daebd6af3cc3227c60f95be9f642a080773cad7df14c5f9f174 + rubocop-lts-rspec (1.0.5) sha256=439552fd27440802cc499889e013bffa28aadc41adae5d4dfff3d984a2a809b4 rubocop-md (2.0.4) sha256=0d076b6b5e99dea2ddc928c4bd702497decb9a8400da7808091e02ebcafcfb93 + rubocop-minitest (0.40.0) sha256=353c698199115f12151144cf0b5a96f69bb9d77b660cf6536df2c4250c672a9d rubocop-on-rbs (2.0.0) sha256=ce74d1b3d5daead19f4b611623656c185821dfc9aed9c7079bb1e5d7d7c464be rubocop-packaging (0.6.0) sha256=fb92bd0fb48e6f8cdb1648d2249b0cd51c2497dcc87340132d22f01edbf558a7 rubocop-performance (1.26.1) sha256=cd19b936ff196df85829d264b522fd4f98b6c89ad271fa52744a8c11b8f71834 rubocop-rake (0.7.1) sha256=3797f2b6810c3e9df7376c26d5f44f3475eda59eb1adc38e6f62ecf027cbae4d rubocop-rspec (3.10.2) sha256=0b3e2ecc592cd10ecbf0095bb58d1e357905276e069643523cc19eb7495f65e2 + rubocop-rspec-extra (0.3.0) sha256=ee4b6484d0332a0d23c4a465eeb607e41888eb3d4ed479f850b9f5212514f787 + rubocop-rspec_rails (2.32.0) sha256=4a0d641c72f6ebb957534f539d9d0a62c47abd8ce0d0aeee1ef4701e892a9100 rubocop-ruby3_2 (3.0.7) sha256=f53dd6d286fb05186214fc6ec116783e7f837030918e8931c05de773e98f8466 rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 - ruby-merge (7.1.0) ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 - rust-merge (7.1.0) - service_actor (3.9.4) silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 - simplecov (0.22.0) sha256=fe2622c7834ff23b98066bb0a854284b2729a569ac659f82621fc22ef36213a5 - simplecov-cobertura (3.2.0) sha256=70d702658677fcb20e5aceb6915ccf8bc62ff2ccd38b62b3ad5c9db5c0888740 + simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 + simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 - simplecov-html (0.13.2) sha256=bd0b8e54e7c2d7685927e8d6286466359b6f16b18cb0df47b508e8d73c777246 - simplecov-lcov (0.9.0) sha256=7a77a31e200a595ed4b0249493056efd0c920601f53d2ef135ca34ee796346cd simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc - simplecov_json_formatter (0.1.4) sha256=529418fbe8de1713ac2b2d612aa3daa56d316975d307244399fa4838c601b428 - smorg-rb (7.1.0) + simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed sorbet-runtime (0.6.13347) sha256=54e7221d9f4b63f58aec79f3043752a9ba7810347c6ae0d903531591cc2d5f01 standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b standard-performance (1.9.0) sha256=49483d31be448292951d80e5e67cdcb576c2502103c7b40aec6f1b6e9c88e3f2 + standard-rspec (0.5.0) sha256=64d396524a65af47f5331b423d8cdd313e0267401647bb7892489ca89dad2973 standard-rubocop-lts (2.0.10) sha256=89708a505b7d8b24d2ac399a7520fcb9e764abc2ecb4289b631b5fe0e3b76617 stone_checksums (1.0.6) sha256=c775f830513d6c6ab26e31d1a5fbecd4c4e39002663d4d9f8fa96e97990b5298 stringio (3.2.0) sha256=c37cb2e58b4ffbd33fe5cd948c05934af997b36e0b6ca6fdf43afa234cf222e1 @@ -837,22 +578,18 @@ CHECKSUMS thor (1.5.0) sha256=e3a9e55fe857e44859ce104a84675ab6e8cd59c650a49106a05f55f136425e73 timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 - token-resolver (2.0.4) sha256=33b926958f504525bba3ed511ab66fbcbf8ef30390815e931436b30f27ffcad0 - toml (0.3.0) - toml-merge (7.1.0) - toml-rb (4.2.0) + token-resolver (2.0.5) sha256=b852f924287ffb58a440856e862b056c8ad97e74b4b2526cee43e0771f40c25c tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-aarch64-linux) sha256=55ffc7c87868cb45658338363d9eba51b4a8b0259aa88e4de368d2bd1d52fea4 tree_sitter_language_pack (1.13.3-arm64-darwin) sha256=bc2498db605f212a1dbd2465ed3f65190d7da786f6ed5d30fcf958121aeb4a5c tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 - typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 + webrick (1.9.2) sha256=beb4a15fc474defed24a3bda4ffd88a490d517c9e4e6118c3edce59e45864131 yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 - yaml-merge (7.1.0) yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd @@ -860,7 +597,6 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 - zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH diff --git a/gems/bash-merge/Rakefile b/gems/bash-merge/Rakefile index 3301f1a7e..056589299 100644 --- a/gems/bash-merge/Rakefile +++ b/gems/bash-merge/Rakefile @@ -130,23 +130,23 @@ end ### DUPLICATE DRIFT TASKS begin - require "kettle/drift" + require 'kettle/drift' Kettle::Drift.install_tasks rescue LoadError - desc("(stub) kettle:drift:check is unavailable") - task("kettle:drift:check") do + desc('(stub) kettle:drift:check is unavailable') + task('kettle:drift:check') do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc("(stub) kettle:drift:update is unavailable") - task("kettle:drift:update") do + desc('(stub) kettle:drift:update is unavailable') + task('kettle:drift:update') do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc("(stub) kettle:drift:force_update is unavailable") - task("kettle:drift:force_update") do + desc('(stub) kettle:drift:force_update is unavailable') + task('kettle:drift:force_update') do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc("(stub) kettle:drift is unavailable") - task("kettle:drift" => "kettle:drift:update") + desc('(stub) kettle:drift is unavailable') + task('kettle:drift' => 'kettle:drift:update') end ### TEMPLATING TASKS diff --git a/gems/bash-merge/bash-merge.gemspec b/gems/bash-merge/bash-merge.gemspec index cccdf1dac..86240b5af 100644 --- a/gems/bash-merge/bash-merge.gemspec +++ b/gems/bash-merge/bash-merge.gemspec @@ -9,47 +9,47 @@ Gem::Specification.new do |spec| spec.name = 'bash-merge' spec.version = Module.new.tap { |mod| Kernel.load("#{__dir__}/lib/bash/merge/version.rb", mod) }::Bash::Merge::Version::VERSION - spec.authors = ["Peter H. Boling"] - spec.email = ["floss@galtzo.com"] + spec.authors = ['Peter H. Boling'] + spec.email = ['floss@galtzo.com'] spec.summary = '☯️ Structured Merge Bash analysis and merge for Ruby' spec.description = '☯️ Bash statement, comment, freeze-block, and template merge behavior for Structured Merge.' spec.homepage = 'https://github.com/structuredmerge/structuredmerge-ruby' - spec.licenses = ["AGPL-3.0-only", "PolyForm-Small-Business-1.0.0"] - spec.required_ruby_version = ">= 4.0.0" + spec.licenses = ['AGPL-3.0-only', 'PolyForm-Small-Business-1.0.0'] + spec.required_ruby_version = '>= 4.0.0' # Linux distros often package gems and securely certify them independent # of the official RubyGem certification process. Allowed via ENV["SKIP_GEM_SIGNING"] # Ref: https://gitlab.com/ruby-oauth/version_gem/-/issues/3 # Hence, only enable signing if `SKIP_GEM_SIGNING` is not set in ENV. # See CONTRIBUTING.md - unless ENV.include?("SKIP_GEM_SIGNING") - user_cert = "certs/#{ENV.fetch("GEM_CERT_USER", ENV["USER"])}.pem" + unless ENV.include?('SKIP_GEM_SIGNING') + user_cert = "certs/#{ENV.fetch('GEM_CERT_USER', ENV['USER'])}.pem" cert_file_path = File.join(__dir__, user_cert) - cert_chain = cert_file_path.split(",") + cert_chain = cert_file_path.split(',') cert_chain.select! { |fp| File.exist?(fp) } if cert_file_path && cert_chain.any? spec.cert_chain = cert_chain - if $PROGRAM_NAME.end_with?("gem") && ARGV[0] == "build" - spec.signing_key = File.join(Gem.user_home, ".ssh", "gem-private_key.pem") + if $PROGRAM_NAME.end_with?('gem') && ARGV[0] == 'build' + spec.signing_key = File.join(Gem.user_home, '.ssh', 'gem-private_key.pem') end end end - spec.metadata["homepage_uri"] = "https://structuredmerge.org" - spec.metadata["source_code_uri"] = "#{spec.homepage}/tree/v#{spec.version}" - spec.metadata["changelog_uri"] = "#{spec.homepage}/blob/v#{spec.version}/CHANGELOG.md" - spec.metadata["bug_tracker_uri"] = "#{spec.homepage}/issues" - spec.metadata["documentation_uri"] = "https://www.rubydoc.info/gems/#{spec.name}/#{spec.version}" - spec.metadata["funding_uri"] = "https://github.com/sponsors/pboling" - spec.metadata["wiki_uri"] = "#{spec.homepage}/wiki" - spec.metadata["news_uri"] = "https://www.railsbling.com/tags/#{spec.name}" - spec.metadata["discord_uri"] = "https://discord.gg/3qme4XHNKN" - spec.metadata["rubygems_mfa_required"] = "true" + spec.metadata['homepage_uri'] = 'https://structuredmerge.org' + spec.metadata['source_code_uri'] = "#{spec.homepage}/tree/v#{spec.version}" + spec.metadata['changelog_uri'] = "#{spec.homepage}/blob/v#{spec.version}/CHANGELOG.md" + spec.metadata['bug_tracker_uri'] = "#{spec.homepage}/issues" + spec.metadata['documentation_uri'] = "https://www.rubydoc.info/gems/#{spec.name}/#{spec.version}" + spec.metadata['funding_uri'] = 'https://github.com/sponsors/pboling' + spec.metadata['wiki_uri'] = "#{spec.homepage}/wiki" + spec.metadata['news_uri'] = "https://www.railsbling.com/tags/#{spec.name}" + spec.metadata['discord_uri'] = 'https://discord.gg/3qme4XHNKN' + spec.metadata['rubygems_mfa_required'] = 'true' enumerate_package_files = lambda do |root| - Dir.glob(File.join(root, "**", "*"), File::FNM_DOTMATCH).select do |path| - File.file?(path) && ![".", ".."].include?(File.basename(path)) + Dir.glob(File.join(root, '**', '*'), File::FNM_DOTMATCH).select do |path| + File.file?(path) && !['.', '..'].include?(File.basename(path)) end end package_metadata_files = %w[ @@ -69,25 +69,25 @@ Gem::Specification.new do |spec| *enumerate_package_files.call('exe') ] spec.rdoc_options += [ - "--title", + '--title', "#{spec.name} - #{spec.summary}", - "--main", - "README.md", - "--exclude", - "^sig/", - "--line-numbers", - "--inline-source", - "--quiet" + '--main', + 'README.md', + '--exclude', + '^sig/', + '--line-numbers', + '--inline-source', + '--quiet' ] - spec.bindir = "exe" + spec.bindir = 'exe' # Listed files are the relative paths from bindir above. spec.executables = [] - spec.require_paths = ["lib"] + spec.require_paths = ['lib'] # Utilities spec.add_dependency 'ast-merge', "= #{spec.version}" spec.add_dependency 'tree_haver', "= #{spec.version}" - spec.add_dependency("version_gem", "~> 1.1", ">= 1.1.14") # ruby >= 2.2.0 + spec.add_dependency('version_gem', '~> 1.1', '>= 1.1.14') # ruby >= 2.2.0 # NOTE: It is preferable to list development dependencies in the gemspec due to increased # visibility and discoverability. @@ -103,30 +103,30 @@ Gem::Specification.new do |spec| # and preferably a modular one (see gemfiles/modular/*.gemfile). # Dev, Test, & Release Tasks - spec.add_development_dependency("kettle-dev", "~> 2.3", ">= 2.3.7") # ruby >= 4.0.0 + spec.add_development_dependency('kettle-dev', '~> 2.3', '>= 2.3.7') # ruby >= 4.0.0 # Security - spec.add_development_dependency("bundler-audit", "~> 0.9.3") # ruby >= 2.0.0 + spec.add_development_dependency('bundler-audit', '~> 0.9.3') # ruby >= 2.0.0 # Tasks - spec.add_development_dependency("rake", "~> 13.0") # ruby >= 2.2.0 + spec.add_development_dependency('rake', '~> 13.0') # ruby >= 2.2.0 # Debugging - spec.add_development_dependency("require_bench", "~> 1.0", ">= 1.0.4") # ruby >= 2.2.0 + spec.add_development_dependency('require_bench', '~> 1.0', '>= 1.0.4') # ruby >= 2.2.0 # Testing - spec.add_development_dependency("appraisal2", "~> 3.2", ">= 3.2.0") # ruby >= 1.8.7, for testing against multiple versions of dependencies - spec.add_development_dependency("kettle-test", "~> 2.0", ">= 2.0.12") # ruby >= 4.0.0 - spec.add_development_dependency("turbo_tests2", "~> 3.2", ">= 3.2.0") # ruby >= 2.4.0, default kettle-test runner + spec.add_development_dependency('appraisal2', '~> 3.2', '>= 3.2.0') # ruby >= 1.8.7, for testing against multiple versions of dependencies + spec.add_development_dependency('kettle-test', '~> 2.0', '>= 2.0.12') # ruby >= 4.0.0 + spec.add_development_dependency('turbo_tests2', '~> 3.2', '>= 3.2.0') # ruby >= 2.4.0, default kettle-test runner # Releasing - spec.add_development_dependency("ruby-progressbar", "~> 1.13") # ruby >= 0 - spec.add_development_dependency("stone_checksums", "~> 1.0", ">= 1.0.6") # ruby >= 2.2.0 + spec.add_development_dependency('ruby-progressbar', '~> 1.13') # ruby >= 0 + spec.add_development_dependency('stone_checksums', '~> 1.0', '>= 1.0.6') # ruby >= 2.2.0 # Development tasks # The cake is a lie. erb v2.2, the oldest release, was never compatible with Ruby 2.3. # This means we have no choice but to use the erb that shipped with Ruby 2.3 # /opt/hostedtoolcache/Ruby/2.3.8/x64/lib/ruby/gems/2.3.0/gems/erb-2.2.2/lib/erb.rb:670:in `prepare_trim_mode': undefined method `match?' for "-":String (NoMethodError) # spec.add_development_dependency("erb", ">= 2.2") # ruby >= 2.3.0, not SemVer, old rubies get dropped in a patch. - spec.add_development_dependency("gitmoji-regex", "~> 2.0", ">= 2.0.4") # ruby >= 2.4 + spec.add_development_dependency('gitmoji-regex', '~> 2.0', '>= 2.0.4') # ruby >= 2.4 end diff --git a/gems/bash-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile b/gems/bash-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile index dec650815..b8392fab0 100644 --- a/gems/bash-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile +++ b/gems/bash-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.1 -gem "benchmark", "~> 0.5", ">= 0.5.0" # Removed from Std Lib in Ruby 4.0 +gem 'benchmark', '~> 0.5', '>= 0.5.0' # Removed from Std Lib in Ruby 4.0 diff --git a/gems/bash-merge/gemfiles/modular/benchmark/vHEAD.gemfile b/gems/bash-merge/gemfiles/modular/benchmark/vHEAD.gemfile index e1eb20c5e..af214aafa 100644 --- a/gems/bash-merge/gemfiles/modular/benchmark/vHEAD.gemfile +++ b/gems/bash-merge/gemfiles/modular/benchmark/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.1 -gem "benchmark", github: "ruby/benchmark", branch: "master" +gem 'benchmark', github: 'ruby/benchmark', branch: 'master' diff --git a/gems/bash-merge/gemfiles/modular/cgi/r4/v0.5.gemfile b/gems/bash-merge/gemfiles/modular/cgi/r4/v0.5.gemfile index 19ed967c3..17ad97260 100644 --- a/gems/bash-merge/gemfiles/modular/cgi/r4/v0.5.gemfile +++ b/gems/bash-merge/gemfiles/modular/cgi/r4/v0.5.gemfile @@ -1 +1 @@ -gem "cgi", "~> 0.5" +gem 'cgi', '~> 0.5' diff --git a/gems/bash-merge/gemfiles/modular/cgi/vHEAD.gemfile b/gems/bash-merge/gemfiles/modular/cgi/vHEAD.gemfile index ef8b816ce..650fbf033 100644 --- a/gems/bash-merge/gemfiles/modular/cgi/vHEAD.gemfile +++ b/gems/bash-merge/gemfiles/modular/cgi/vHEAD.gemfile @@ -1 +1 @@ -gem "cgi", ">= 0.5" +gem 'cgi', '>= 0.5' diff --git a/gems/bash-merge/gemfiles/modular/coverage.gemfile b/gems/bash-merge/gemfiles/modular/coverage.gemfile index 52d737872..b93014b6b 100644 --- a/gems/bash-merge/gemfiles/modular/coverage.gemfile +++ b/gems/bash-merge/gemfiles/modular/coverage.gemfile @@ -4,11 +4,11 @@ # Set KETTLE_DEV_DEV=true for local development with path-based dependencies. # When false (default / CI), remote released gems are used. -if ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false").zero? +if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? # Coverage (remote/released) platform :mri do - gem "kettle-soup-cover", "~> 3.0", ">= 3.0.3", require: false + gem 'kettle-soup-cover', '~> 3.0', '>= 3.0.3', require: false end else - eval_gemfile "coverage_local.gemfile" + eval_gemfile 'coverage_local.gemfile' end diff --git a/gems/bash-merge/gemfiles/modular/coverage_local.gemfile b/gems/bash-merge/gemfiles/modular/coverage_local.gemfile index 6b6462501..8ac9a4a35 100644 --- a/gems/bash-merge/gemfiles/modular/coverage_local.gemfile +++ b/gems/bash-merge/gemfiles/modular/coverage_local.gemfile @@ -11,21 +11,19 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] -nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) +nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] +nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == "nomono" } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - if nomono_locked - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] - end + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked end -Kernel.send(:gem, "nomono", *nomono_activation_requirements) -require "nomono/bundler" +Kernel.send(:gem, 'nomono', *nomono_activation_requirements) +require 'nomono/bundler' local_gems = %w[kettle-dev kettle-test kettle-soup-cover kettle-drift] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) @@ -35,21 +33,21 @@ local_gems_to_eval = local_gems - %w[bash-merge] - declared_gems platform :mri do eval_nomono_gems( gems: local_gems_to_eval, - prefix: "KETTLE_DEV", - path_env: "KETTLE_DEV_DEV", - vendored_gems_env: "VENDORED_GEMS", - vendor_gem_dir_env: "VENDOR_GEM_DIR", - debug_env: "KETTLE_DEV_DEBUG" + prefix: 'KETTLE_DEV', + path_env: 'KETTLE_DEV_DEV', + vendored_gems_env: 'VENDORED_GEMS', + vendor_gem_dir_env: 'VENDOR_GEM_DIR', + debug_env: 'KETTLE_DEV_DEBUG' ) - if ENV.fetch("GALTZO_FLOSS_DEV", "false").casecmp("false") != 0 + if ENV.fetch('GALTZO_FLOSS_DEV', 'false').casecmp('false') != 0 eval_nomono_gems( gems: %w[turbo_tests2], - prefix: "GALTZO_FLOSS", - path_env: "GALTZO_FLOSS_DEV", - vendored_gems_env: "GALTZO_FLOSS_VENDORED_GEMS", - vendor_gem_dir_env: "GALTZO_FLOSS_VENDOR_GEM_DIR", - debug_env: "GALTZO_FLOSS_DEBUG" + prefix: 'GALTZO_FLOSS', + path_env: 'GALTZO_FLOSS_DEV', + vendored_gems_env: 'GALTZO_FLOSS_VENDORED_GEMS', + vendor_gem_dir_env: 'GALTZO_FLOSS_VENDOR_GEM_DIR', + debug_env: 'GALTZO_FLOSS_DEBUG' ) end end diff --git a/gems/bash-merge/gemfiles/modular/debug.gemfile b/gems/bash-merge/gemfiles/modular/debug.gemfile index 4e15b1a3a..eed8d4d1e 100644 --- a/gems/bash-merge/gemfiles/modular/debug.gemfile +++ b/gems/bash-merge/gemfiles/modular/debug.gemfile @@ -13,10 +13,10 @@ platform :mri do # Debugging - Ensure ENV["DEBUG"] == "true" to use debuggers within spec suite # Use binding.break, binding.b, or debugger in code - gem "debug", ">= 1.1" # ruby >= 2.7 + gem 'debug', '>= 1.1' # ruby >= 2.7 # Dev Console - Binding.pry - Irb replacement # gem "pry", "~> 0.14" # ruby >= 2.0 end -gem "gem_bench", "~> 2.0", ">= 2.0.5" +gem 'gem_bench', '~> 2.0', '>= 2.0.5' diff --git a/gems/bash-merge/gemfiles/modular/documentation.gemfile b/gems/bash-merge/gemfiles/modular/documentation.gemfile index d8215416e..9d4535f12 100644 --- a/gems/bash-merge/gemfiles/modular/documentation.gemfile +++ b/gems/bash-merge/gemfiles/modular/documentation.gemfile @@ -7,20 +7,20 @@ # # Documentation -gem "kramdown", "~> 2.5", ">= 2.5.2", require: false # Ruby >= 2.5 -gem "kramdown-parser-gfm", "~> 1.1", require: false # Ruby >= 2.3 -gem "yaml-converter", "~> 0.2", ">= 0.2.3", require: false # Ruby >= 3.2 -gem "yard", "~> 0.9", ">= 0.9.45", require: false -gem "yard-junk", "~> 0.1", ">= 0.1.0", require: false # Ruby >= 3.1 -gem "yard-relative_markdown_links", "~> 0.6", require: false +gem 'kramdown', '~> 2.5', '>= 2.5.2', require: false # Ruby >= 2.5 +gem 'kramdown-parser-gfm', '~> 1.1', require: false # Ruby >= 2.3 +gem 'yaml-converter', '~> 0.2', '>= 0.2.3', require: false # Ruby >= 3.2 +gem 'yard', '~> 0.9', '>= 0.9.45', require: false +gem 'yard-junk', '~> 0.1', '>= 0.1.0', require: false # Ruby >= 3.1 +gem 'yard-relative_markdown_links', '~> 0.6', require: false -if ENV.fetch("GALTZO_FLOSS_DEV", "false").casecmp("false").zero? - gem "yard-fence", "~> 0.9", ">= 0.9.6", require: false # Ruby >= 3.2 - gem "yard-timekeeper", "~> 0.2", ">= 0.2.4", require: false - gem "yard-yaml", "~> 0.2", ">= 0.2.3", require: false +if ENV.fetch('GALTZO_FLOSS_DEV', 'false').casecmp('false').zero? + gem 'yard-fence', '~> 0.9', '>= 0.9.6', require: false # Ruby >= 3.2 + gem 'yard-timekeeper', '~> 0.2', '>= 0.2.4', require: false + gem 'yard-yaml', '~> 0.2', '>= 0.2.3', require: false else - eval_gemfile "documentation_local.gemfile" + eval_gemfile 'documentation_local.gemfile' end # Std Lib extractions -gem "rdoc", "~> 6.11", require: false unless ENV.fetch("KJ_FRAMEWORK_MATRIX_GEM", "") == "rdoc" +gem 'rdoc', '~> 6.11', require: false unless ENV.fetch('KJ_FRAMEWORK_MATRIX_GEM', '') == 'rdoc' diff --git a/gems/bash-merge/gemfiles/modular/documentation_local.gemfile b/gems/bash-merge/gemfiles/modular/documentation_local.gemfile index 3dc825c13..844682e59 100644 --- a/gems/bash-merge/gemfiles/modular/documentation_local.gemfile +++ b/gems/bash-merge/gemfiles/modular/documentation_local.gemfile @@ -11,21 +11,19 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] -nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) +nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] +nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == "nomono" } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - if nomono_locked - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] - end + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked end -Kernel.send(:gem, "nomono", *nomono_activation_requirements) -require "nomono/bundler" +Kernel.send(:gem, 'nomono', *nomono_activation_requirements) +require 'nomono/bundler' local_gems = %w[yard-fence yard-timekeeper yard-yaml] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) @@ -34,9 +32,9 @@ local_gems_to_eval = local_gems - %w[bash-merge] - declared_gems # export GALTZO_FLOSS_DEV=/path/to/galtzo-floss eval_nomono_gems( gems: local_gems_to_eval, - prefix: "GALTZO_FLOSS", - path_env: "GALTZO_FLOSS_DEV", - vendored_gems_env: "GALTZO_FLOSS_VENDORED_GEMS", - vendor_gem_dir_env: "GALTZO_FLOSS_VENDOR_GEM_DIR", - debug_env: "GALTZO_FLOSS_DEBUG" + prefix: 'GALTZO_FLOSS', + path_env: 'GALTZO_FLOSS_DEV', + vendored_gems_env: 'GALTZO_FLOSS_VENDORED_GEMS', + vendor_gem_dir_env: 'GALTZO_FLOSS_VENDOR_GEM_DIR', + debug_env: 'GALTZO_FLOSS_DEBUG' ) diff --git a/gems/bash-merge/gemfiles/modular/erb/r2/v3.0.gemfile b/gems/bash-merge/gemfiles/modular/erb/r2/v3.0.gemfile index c03bd8d85..7c83a239b 100644 --- a/gems/bash-merge/gemfiles/modular/erb/r2/v3.0.gemfile +++ b/gems/bash-merge/gemfiles/modular/erb/r2/v3.0.gemfile @@ -1 +1 @@ -gem "erb", "~> 3.0" # ruby >= 2.7.0 +gem 'erb', '~> 3.0' # ruby >= 2.7.0 diff --git a/gems/bash-merge/gemfiles/modular/erb/r3/v5.0.gemfile b/gems/bash-merge/gemfiles/modular/erb/r3/v5.0.gemfile index 1bd029cc1..ec7ff451f 100644 --- a/gems/bash-merge/gemfiles/modular/erb/r3/v5.0.gemfile +++ b/gems/bash-merge/gemfiles/modular/erb/r3/v5.0.gemfile @@ -1 +1 @@ -gem "erb", "~> 6.0", ">= 6.0.6" # ruby >= 3.2.0 +gem 'erb', '~> 6.0', '>= 6.0.6' # ruby >= 3.2.0 diff --git a/gems/bash-merge/gemfiles/modular/erb/r4/v5.0.gemfile b/gems/bash-merge/gemfiles/modular/erb/r4/v5.0.gemfile index 1bd029cc1..ec7ff451f 100644 --- a/gems/bash-merge/gemfiles/modular/erb/r4/v5.0.gemfile +++ b/gems/bash-merge/gemfiles/modular/erb/r4/v5.0.gemfile @@ -1 +1 @@ -gem "erb", "~> 6.0", ">= 6.0.6" # ruby >= 3.2.0 +gem 'erb', '~> 6.0', '>= 6.0.6' # ruby >= 3.2.0 diff --git a/gems/bash-merge/gemfiles/modular/erb/vHEAD.gemfile b/gems/bash-merge/gemfiles/modular/erb/vHEAD.gemfile index 48fee4218..ea0101185 100644 --- a/gems/bash-merge/gemfiles/modular/erb/vHEAD.gemfile +++ b/gems/bash-merge/gemfiles/modular/erb/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 3.2 -gem "erb", github: "ruby/erb", branch: "master" +gem 'erb', github: 'ruby/erb', branch: 'master' diff --git a/gems/bash-merge/gemfiles/modular/json/truffleruby_22_3.gemfile b/gems/bash-merge/gemfiles/modular/json/truffleruby_22_3.gemfile index b0e69ab11..9b2f8d96a 100644 --- a/gems/bash-merge/gemfiles/modular/json/truffleruby_22_3.gemfile +++ b/gems/bash-merge/gemfiles/modular/json/truffleruby_22_3.gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -if RUBY_ENGINE == "truffleruby" && RUBY_ENGINE_VERSION.start_with?("22.3") +if RUBY_ENGINE == 'truffleruby' && RUBY_ENGINE_VERSION.start_with?('22.3') # TruffleRuby 22.3 ships the json default gem from its emulated MRI Ruby. - gem "json", "= 2.5.1" + gem 'json', '= 2.5.1' end diff --git a/gems/bash-merge/gemfiles/modular/json/truffleruby_23_0.gemfile b/gems/bash-merge/gemfiles/modular/json/truffleruby_23_0.gemfile index 7b2660a2b..d787a5ef4 100644 --- a/gems/bash-merge/gemfiles/modular/json/truffleruby_23_0.gemfile +++ b/gems/bash-merge/gemfiles/modular/json/truffleruby_23_0.gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -if RUBY_ENGINE == "truffleruby" && RUBY_ENGINE_VERSION.start_with?("23.0") +if RUBY_ENGINE == 'truffleruby' && RUBY_ENGINE_VERSION.start_with?('23.0') # TruffleRuby 23.0 ships the json default gem from its emulated MRI Ruby. - gem "json", "= 2.6.1" + gem 'json', '= 2.6.1' end diff --git a/gems/bash-merge/gemfiles/modular/json/truffleruby_23_1.gemfile b/gems/bash-merge/gemfiles/modular/json/truffleruby_23_1.gemfile index dfa21f2e4..d78486b0e 100644 --- a/gems/bash-merge/gemfiles/modular/json/truffleruby_23_1.gemfile +++ b/gems/bash-merge/gemfiles/modular/json/truffleruby_23_1.gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -if RUBY_ENGINE == "truffleruby" && RUBY_ENGINE_VERSION.start_with?("23.1") +if RUBY_ENGINE == 'truffleruby' && RUBY_ENGINE_VERSION.start_with?('23.1') # TruffleRuby 23.1 ships the json default gem from its emulated MRI Ruby. - gem "json", "= 2.6.3" + gem 'json', '= 2.6.3' end diff --git a/gems/bash-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile b/gems/bash-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile index 42e9d9bd4..e27f1bbae 100644 --- a/gems/bash-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile +++ b/gems/bash-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 -gem "mutex_m", "~> 0.2" +gem 'mutex_m', '~> 0.2' diff --git a/gems/bash-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile b/gems/bash-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile index 42e9d9bd4..e27f1bbae 100644 --- a/gems/bash-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile +++ b/gems/bash-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 -gem "mutex_m", "~> 0.2" +gem 'mutex_m', '~> 0.2' diff --git a/gems/bash-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile b/gems/bash-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile index 42e9d9bd4..e27f1bbae 100644 --- a/gems/bash-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile +++ b/gems/bash-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 -gem "mutex_m", "~> 0.2" +gem 'mutex_m', '~> 0.2' diff --git a/gems/bash-merge/gemfiles/modular/mutex_m/vHEAD.gemfile b/gems/bash-merge/gemfiles/modular/mutex_m/vHEAD.gemfile index 8af3b6fca..9dac2f6cb 100644 --- a/gems/bash-merge/gemfiles/modular/mutex_m/vHEAD.gemfile +++ b/gems/bash-merge/gemfiles/modular/mutex_m/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 (dependency of omniauth) -gem "mutex_m", github: "ruby/mutex_m", branch: "master" +gem 'mutex_m', github: 'ruby/mutex_m', branch: 'master' diff --git a/gems/bash-merge/gemfiles/modular/optional.gemfile b/gems/bash-merge/gemfiles/modular/optional.gemfile index 80bc45196..9ea429538 100644 --- a/gems/bash-merge/gemfiles/modular/optional.gemfile +++ b/gems/bash-merge/gemfiles/modular/optional.gemfile @@ -9,8 +9,8 @@ # Optional dependencies are not depended on directly, but may be used if present. # Required for curated binstubs generated by kettle-jem install -gem "rbs", ">= 3.0", require: false # ruby >= 3.1 +gem 'rbs', '>= 3.0', require: false # ruby >= 3.1 # Required for kettle-pre-release # URL parsing with Unicode support (falls back to URI if not available) -gem "addressable", ">= 2.8", "< 3" # ruby >= 2.2 +gem 'addressable', '>= 2.8', '< 3' # ruby >= 2.2 diff --git a/gems/bash-merge/gemfiles/modular/rspec.gemfile b/gems/bash-merge/gemfiles/modular/rspec.gemfile index 72fdf8b7f..2af210a41 100644 --- a/gems/bash-merge/gemfiles/modular/rspec.gemfile +++ b/gems/bash-merge/gemfiles/modular/rspec.gemfile @@ -1,4 +1,4 @@ -gem "rspec_junit_formatter", - github: "pboling/rspec_junit_formatter", - branch: "main", - ref: "9e6bcaaedd49477b62878ed568dc4ada5cc7cb5e" +gem 'rspec_junit_formatter', + github: 'pboling/rspec_junit_formatter', + branch: 'main', + ref: '9e6bcaaedd49477b62878ed568dc4ada5cc7cb5e' diff --git a/gems/bash-merge/gemfiles/modular/runtime_heads.gemfile b/gems/bash-merge/gemfiles/modular/runtime_heads.gemfile index 02f134c7f..ebf17c529 100644 --- a/gems/bash-merge/gemfiles/modular/runtime_heads.gemfile +++ b/gems/bash-merge/gemfiles/modular/runtime_heads.gemfile @@ -8,4 +8,4 @@ # Test against HEAD of runtime dependencies so we can proactively file bugs -eval_gemfile("x_std_libs/vHEAD.gemfile") +eval_gemfile('x_std_libs/vHEAD.gemfile') diff --git a/gems/bash-merge/gemfiles/modular/stringio/r2/v3.0.gemfile b/gems/bash-merge/gemfiles/modular/stringio/r2/v3.0.gemfile index e85bb18ee..3616f4e3a 100644 --- a/gems/bash-merge/gemfiles/modular/stringio/r2/v3.0.gemfile +++ b/gems/bash-merge/gemfiles/modular/stringio/r2/v3.0.gemfile @@ -2,4 +2,4 @@ # NOT SEMVER # Version 3.0.7 dropped support for Ruby <= 2.7 # Version 3.0.0 dropped support for Ruby <= 2.4 -gem "stringio", ">= 3.0" +gem 'stringio', '>= 3.0' diff --git a/gems/bash-merge/gemfiles/modular/stringio/r3/v3.0.gemfile b/gems/bash-merge/gemfiles/modular/stringio/r3/v3.0.gemfile index e85bb18ee..3616f4e3a 100644 --- a/gems/bash-merge/gemfiles/modular/stringio/r3/v3.0.gemfile +++ b/gems/bash-merge/gemfiles/modular/stringio/r3/v3.0.gemfile @@ -2,4 +2,4 @@ # NOT SEMVER # Version 3.0.7 dropped support for Ruby <= 2.7 # Version 3.0.0 dropped support for Ruby <= 2.4 -gem "stringio", ">= 3.0" +gem 'stringio', '>= 3.0' diff --git a/gems/bash-merge/gemfiles/modular/stringio/r4/v3.0.gemfile b/gems/bash-merge/gemfiles/modular/stringio/r4/v3.0.gemfile index e85bb18ee..3616f4e3a 100644 --- a/gems/bash-merge/gemfiles/modular/stringio/r4/v3.0.gemfile +++ b/gems/bash-merge/gemfiles/modular/stringio/r4/v3.0.gemfile @@ -2,4 +2,4 @@ # NOT SEMVER # Version 3.0.7 dropped support for Ruby <= 2.7 # Version 3.0.0 dropped support for Ruby <= 2.4 -gem "stringio", ">= 3.0" +gem 'stringio', '>= 3.0' diff --git a/gems/bash-merge/gemfiles/modular/stringio/vHEAD.gemfile b/gems/bash-merge/gemfiles/modular/stringio/vHEAD.gemfile index 5f2a74126..78f5f5d8a 100644 --- a/gems/bash-merge/gemfiles/modular/stringio/vHEAD.gemfile +++ b/gems/bash-merge/gemfiles/modular/stringio/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 (dependency of omniauth) -gem "stringio", github: "ruby/stringio", branch: "master" +gem 'stringio', github: 'ruby/stringio', branch: 'master' diff --git a/gems/bash-merge/gemfiles/modular/style.gemfile b/gems/bash-merge/gemfiles/modular/style.gemfile index 35de4dcd6..4dbcc02c0 100644 --- a/gems/bash-merge/gemfiles/modular/style.gemfile +++ b/gems/bash-merge/gemfiles/modular/style.gemfile @@ -9,23 +9,23 @@ # Style tasks run on the latest Ruby; RuboCop-LTS selects the compatibility # rules for the configured Ruby floor independently from task dependency floors. -gem "reek", "~> 6.5", ">= 6.5.0" +gem 'reek', '~> 6.5', '>= 6.5.0' platform :mri do - gem "appraisal2-rubocop", "~> 1.0", ">= 1.0.0", require: false - gem "rubocop-gradual", "~> 0.4", ">= 0.4.0" - gem "rubocop-minitest", "~> 0.40", ">= 0.40.0" - gem "rubocop-on-rbs", "~> 2.0", ">= 2.0.0" # ruby >= 3.2.0 + gem 'appraisal2-rubocop', '~> 1.0', '>= 1.0.0', require: false + gem 'rubocop-gradual', '~> 0.4', '>= 0.4.0' + gem 'rubocop-minitest', '~> 0.40', '>= 0.40.0' + gem 'rubocop-on-rbs', '~> 2.0', '>= 2.0.0' # ruby >= 3.2.0 # gem "rubocop", "~> 1.73", ">= 1.73.2" # constrained by standard - gem "rubocop-packaging", "~> 0.6", ">= 0.6.0" - gem "standard", "~> 1.56", ">= 1.56.0" + gem 'rubocop-packaging', '~> 0.6', '>= 0.6.0' + gem 'standard', '~> 1.56', '>= 1.56.0' - if ENV.fetch("RUBOCOP_LTS_LOCAL", "false").casecmp("false").zero? + if ENV.fetch('RUBOCOP_LTS_LOCAL', 'false').casecmp('false').zero? declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) - gem "rubocop-lts", "~> 24.2", ">= 24.2.1" unless declared_gems.include?("rubocop-lts") - gem "rubocop-lts-rspec", "~> 1.0", ">= 1.0.5" unless declared_gems.include?("rubocop-lts-rspec") - gem "rubocop-ruby3_2", "~> 3.0", ">= 3.0.6" unless declared_gems.include?("rubocop-ruby3_2") + gem 'rubocop-lts', '~> 24.2', '>= 24.2.1' unless declared_gems.include?('rubocop-lts') + gem 'rubocop-lts-rspec', '~> 1.0', '>= 1.0.5' unless declared_gems.include?('rubocop-lts-rspec') + gem 'rubocop-ruby3_2', '~> 3.0', '>= 3.0.6' unless declared_gems.include?('rubocop-ruby3_2') else - eval_gemfile("style_local.gemfile") + eval_gemfile('style_local.gemfile') end end diff --git a/gems/bash-merge/gemfiles/modular/style_local.gemfile b/gems/bash-merge/gemfiles/modular/style_local.gemfile index db620af4f..f507995c2 100644 --- a/gems/bash-merge/gemfiles/modular/style_local.gemfile +++ b/gems/bash-merge/gemfiles/modular/style_local.gemfile @@ -14,21 +14,19 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] -nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) +nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] +nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == "nomono" } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - if nomono_locked - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] - end + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked end -Kernel.send(:gem, "nomono", *nomono_activation_requirements) -require "nomono/bundler" +Kernel.send(:gem, 'nomono', *nomono_activation_requirements) +require 'nomono/bundler' local_gems = %w[rubocop-lts rubocop-lts-rspec rubocop-ruby3_2 standard-rubocop-lts] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) @@ -38,11 +36,11 @@ local_gems_to_eval = local_gems - %w[bash-merge] - declared_gems platform :mri do eval_nomono_gems( gems: local_gems_to_eval, - prefix: "RUBOCOP_LTS", - path_env: "RUBOCOP_LTS_LOCAL", - vendored_gems_env: "VENDORED_GEMS", - vendor_gem_dir_env: "VENDOR_GEM_DIR", - debug_env: "RUBOCOP_LTS_DEBUG", - root: ["src", "rubocop-lts"] + prefix: 'RUBOCOP_LTS', + path_env: 'RUBOCOP_LTS_LOCAL', + vendored_gems_env: 'VENDORED_GEMS', + vendor_gem_dir_env: 'VENDOR_GEM_DIR', + debug_env: 'RUBOCOP_LTS_DEBUG', + root: %w[src rubocop-lts] ) end diff --git a/gems/bash-merge/gemfiles/modular/templating.gemfile b/gems/bash-merge/gemfiles/modular/templating.gemfile index 47138ffbb..a672de184 100644 --- a/gems/bash-merge/gemfiles/modular/templating.gemfile +++ b/gems/bash-merge/gemfiles/modular/templating.gemfile @@ -1,18 +1,18 @@ # frozen_string_literal: true -structuredmerge_remote = ENV.fetch("STRUCTUREDMERGE_DEV", "false").casecmp("false").zero? -kettle_remote = ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false").zero? +structuredmerge_remote = ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false').zero? +kettle_remote = ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? if structuredmerge_remote # Parser dependencies for released installs. - gem "tree_sitter_language_pack", "~> 1.13", ">= 1.13.3" + gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' # Merge recipes for released installs. - gem "kettle-jem", ">= 7.0" + gem 'kettle-jem', '>= 7.0' end if kettle_remote # Template/plugin checks for released installs. - gem "kettle-drift", "~> 1.0", ">= 1.0.6", require: false + gem 'kettle-drift', '~> 1.0', '>= 1.0.6', require: false end # Set STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local development with path-based dependencies. @@ -21,4 +21,4 @@ end # # Set KETTLE_DEV_DEV=/path/to/my for local development with Kettle plugin gems. # When false (default / CI), released Kettle plugin gems are used. -eval_gemfile "templating_local.gemfile" unless structuredmerge_remote && kettle_remote +eval_gemfile 'templating_local.gemfile' unless structuredmerge_remote && kettle_remote diff --git a/gems/bash-merge/gemfiles/modular/templating_local.gemfile b/gems/bash-merge/gemfiles/modular/templating_local.gemfile index c11a4162a..1607637e0 100644 --- a/gems/bash-merge/gemfiles/modular/templating_local.gemfile +++ b/gems/bash-merge/gemfiles/modular/templating_local.gemfile @@ -12,21 +12,19 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] -nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) +nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] +nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == "nomono" } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - if nomono_locked - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] - end + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked end -Kernel.send(:gem, "nomono", *nomono_activation_requirements) -require "nomono/bundler" +Kernel.send(:gem, 'nomono', *nomono_activation_requirements) +require 'nomono/bundler' structuredmerge_local_gems = %w[ tree_haver @@ -69,25 +67,25 @@ structuredmerge_local_gems_to_eval = structuredmerge_local_gems - %w[bash-merge] kettle_dev_local_gems_to_eval = kettle_dev_local_gems - %w[bash-merge] - declared_gems platform :mri do - if ENV.fetch("STRUCTUREDMERGE_DEV", "false").casecmp("false") != 0 + if ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false') != 0 eval_nomono_gems( gems: structuredmerge_local_gems_to_eval, - prefix: "STRUCTUREDMERGE", - path_env: "STRUCTUREDMERGE_DEV", - vendored_gems_env: "VENDORED_GEMS", - vendor_gem_dir_env: "VENDOR_GEM_DIR", - debug_env: "STRUCTUREDMERGE_DEBUG" + prefix: 'STRUCTUREDMERGE', + path_env: 'STRUCTUREDMERGE_DEV', + vendored_gems_env: 'VENDORED_GEMS', + vendor_gem_dir_env: 'VENDOR_GEM_DIR', + debug_env: 'STRUCTUREDMERGE_DEBUG' ) end - if ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false") != 0 + if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false') != 0 eval_nomono_gems( gems: kettle_dev_local_gems_to_eval, - prefix: "KETTLE_DEV", - path_env: "KETTLE_DEV_DEV", - vendored_gems_env: "VENDORED_GEMS", - vendor_gem_dir_env: "VENDOR_GEM_DIR", - debug_env: "KETTLE_DEV_DEBUG" + prefix: 'KETTLE_DEV', + path_env: 'KETTLE_DEV_DEV', + vendored_gems_env: 'VENDORED_GEMS', + vendor_gem_dir_env: 'VENDOR_GEM_DIR', + debug_env: 'KETTLE_DEV_DEBUG' ) end end diff --git a/gems/bash-merge/gemfiles/modular/webrick/r4/v1.9.gemfile b/gems/bash-merge/gemfiles/modular/webrick/r4/v1.9.gemfile index eaab4a473..b1329ba84 100644 --- a/gems/bash-merge/gemfiles/modular/webrick/r4/v1.9.gemfile +++ b/gems/bash-merge/gemfiles/modular/webrick/r4/v1.9.gemfile @@ -1 +1 @@ -gem "webrick", "~> 1.9" +gem 'webrick', '~> 1.9' diff --git a/gems/bash-merge/gemfiles/modular/webrick/vHEAD.gemfile b/gems/bash-merge/gemfiles/modular/webrick/vHEAD.gemfile index 8a789b634..c7e6f81a1 100644 --- a/gems/bash-merge/gemfiles/modular/webrick/vHEAD.gemfile +++ b/gems/bash-merge/gemfiles/modular/webrick/vHEAD.gemfile @@ -1 +1 @@ -gem "webrick", ">= 1.9" +gem 'webrick', '>= 1.9' diff --git a/gems/bash-merge/gemfiles/modular/x_std_libs.gemfile b/gems/bash-merge/gemfiles/modular/x_std_libs.gemfile index 77aad43f2..b1f43c097 100644 --- a/gems/bash-merge/gemfiles/modular/x_std_libs.gemfile +++ b/gems/bash-merge/gemfiles/modular/x_std_libs.gemfile @@ -1,12 +1,12 @@ ### Std Lib Extracted Gems ruby_version = Gem::Version.new(RUBY_VERSION) -if ruby_version >= Gem::Version.new("4.0") - eval_gemfile "x_std_libs/r4/libs.gemfile" -elsif ruby_version >= Gem::Version.new("3.2") - eval_gemfile "x_std_libs/r3/libs.gemfile" -elsif ruby_version >= Gem::Version.new("3.1") - eval_gemfile "x_std_libs/r3.1/libs.gemfile" +if ruby_version >= Gem::Version.new('4.0') + eval_gemfile 'x_std_libs/r4/libs.gemfile' +elsif ruby_version >= Gem::Version.new('3.2') + eval_gemfile 'x_std_libs/r3/libs.gemfile' +elsif ruby_version >= Gem::Version.new('3.1') + eval_gemfile 'x_std_libs/r3.1/libs.gemfile' else - eval_gemfile "x_std_libs/r2/libs.gemfile" + eval_gemfile 'x_std_libs/r2/libs.gemfile' end diff --git a/gems/bash-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile b/gems/bash-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile index 441c4f03a..16a5e3d70 100644 --- a/gems/bash-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile +++ b/gems/bash-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile @@ -1,3 +1,3 @@ -eval_gemfile "../../erb/r2/v3.0.gemfile" -eval_gemfile "../../mutex_m/r2/v0.3.gemfile" -eval_gemfile "../../stringio/r2/v3.0.gemfile" +eval_gemfile '../../erb/r2/v3.0.gemfile' +eval_gemfile '../../mutex_m/r2/v0.3.gemfile' +eval_gemfile '../../stringio/r2/v3.0.gemfile' diff --git a/gems/bash-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile b/gems/bash-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile index c293a3ddd..220ff95c1 100644 --- a/gems/bash-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile +++ b/gems/bash-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile @@ -1,3 +1,3 @@ -eval_gemfile "../../erb/r3/v5.0.gemfile" -eval_gemfile "../../mutex_m/r3/v0.3.gemfile" -eval_gemfile "../../stringio/r3/v3.0.gemfile" +eval_gemfile '../../erb/r3/v5.0.gemfile' +eval_gemfile '../../mutex_m/r3/v0.3.gemfile' +eval_gemfile '../../stringio/r3/v3.0.gemfile' diff --git a/gems/bash-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile b/gems/bash-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile index eb5574247..e2f6501eb 100644 --- a/gems/bash-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile +++ b/gems/bash-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile @@ -1,6 +1,6 @@ -eval_gemfile "../../erb/r4/v5.0.gemfile" -eval_gemfile "../../mutex_m/r4/v0.3.gemfile" -eval_gemfile "../../stringio/r4/v3.0.gemfile" -eval_gemfile "../../benchmark/r4/v0.5.gemfile" -eval_gemfile "../../cgi/r4/v0.5.gemfile" -eval_gemfile "../../webrick/r4/v1.9.gemfile" +eval_gemfile '../../erb/r4/v5.0.gemfile' +eval_gemfile '../../mutex_m/r4/v0.3.gemfile' +eval_gemfile '../../stringio/r4/v3.0.gemfile' +eval_gemfile '../../benchmark/r4/v0.5.gemfile' +eval_gemfile '../../cgi/r4/v0.5.gemfile' +eval_gemfile '../../webrick/r4/v1.9.gemfile' diff --git a/gems/bash-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile b/gems/bash-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile index d4d5b16c9..ab75cccf1 100644 --- a/gems/bash-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile +++ b/gems/bash-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile @@ -1,6 +1,6 @@ -eval_gemfile "../erb/vHEAD.gemfile" -eval_gemfile "../mutex_m/vHEAD.gemfile" -eval_gemfile "../stringio/vHEAD.gemfile" -eval_gemfile "../benchmark/vHEAD.gemfile" -eval_gemfile "../cgi/vHEAD.gemfile" -eval_gemfile "../webrick/vHEAD.gemfile" +eval_gemfile '../erb/vHEAD.gemfile' +eval_gemfile '../mutex_m/vHEAD.gemfile' +eval_gemfile '../stringio/vHEAD.gemfile' +eval_gemfile '../benchmark/vHEAD.gemfile' +eval_gemfile '../cgi/vHEAD.gemfile' +eval_gemfile '../webrick/vHEAD.gemfile' diff --git a/gems/bash-merge/lib/bash/merge/version.rb b/gems/bash-merge/lib/bash/merge/version.rb index 54229c5dd..55b28eb7d 100644 --- a/gems/bash-merge/lib/bash/merge/version.rb +++ b/gems/bash-merge/lib/bash/merge/version.rb @@ -3,7 +3,7 @@ module Bash module Merge module Version - VERSION = "7.1.0" + VERSION = '7.1.0' end VERSION = Version::VERSION # Traditional Constant Location end diff --git a/gems/dotenv-merge/.kettle-drift.lock b/gems/dotenv-merge/.kettle-drift.lock index 9be384c91..2ee9dae31 100644 --- a/gems/dotenv-merge/.kettle-drift.lock +++ b/gems/dotenv-merge/.kettle-drift.lock @@ -1,130 +1,10 @@ { - "(direct_sibling_local ||\nENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?)": [ - { - "file": "Gemfile", - "lines": [ - 80, - 120, - 160, - 200, - 240, - 280, - 320, - 360, - 400 - ] - } - ], - ".find { |spec| spec.name == 'nomono' }\nnomono_locked = nomono_locked_spec &&": [ - { - "file": "Gemfile", - "lines": [ - 91, - 131, - 171, - 211, - 251, - 291, - 331, - 371, - 411 - ] - } - ], - "ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?)\ndirect_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV')": [ - { - "file": "Gemfile", - "lines": [ - 81, - 121, - 161, - 201, - 241, - 281, - 321, - 361, - 401 - ] - } - ], - "Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version)\nnomono_activation_requirements = [\"= #{nomono_locked_spec.version}\"] if nomono_locked": [ - { - "file": "Gemfile", - "lines": [ - 93, - 133, - 173, - 213, - 253, - 293, - 333, - 373, - 413 - ] - } - ], - "Kernel.send(:gem, 'nomono', *nomono_activation_requirements)\nrequire 'nomono/bundler'": [ - { - "file": "Gemfile", - "lines": [ - 96, - 136, - 176, - 216, - 256, - 296, - 336, - 376, - 416 - ] - } - ], - "direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV')\ndirect_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil)": [ - { - "file": "Gemfile", - "lines": [ - 82, - 122, - 162, - 202, - 242, - 282, - 322, - 362, - 402 - ] - } - ], "eval_nomono_gems(\ngems: direct_sibling_gems,": [ { "file": "Gemfile", "lines": [ 60, - 100, - 140, - 180, - 220, - 260, - 300, - 340, - 380, - 420 - ] - } - ], - "gems: direct_sibling_gems,\nprefix: 'STRUCTUREDMERGE',": [ - { - "file": "Gemfile", - "lines": [ - 101, - 141, - 181, - 221, - 261, - 301, - 341, - 381, - 421 + 100 ] } ], @@ -133,31 +13,7 @@ "file": "Gemfile", "lines": [ 43, - 87, - 127, - 167, - 207, - 247, - 287, - 327, - 367, - 407 - ] - } - ], - "if direct_sibling_dev_was_set\nENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original": [ - { - "file": "Gemfile", - "lines": [ - 110, - 150, - 190, - 230, - 270, - 310, - 350, - 390, - 430 + 87 ] } ], @@ -166,15 +22,7 @@ "file": "Gemfile", "lines": [ 35, - 79, - 119, - 159, - 199, - 239, - 279, - 319, - 359, - 399 + 79 ] } ], @@ -183,31 +31,7 @@ "file": "Gemfile", "lines": [ 69, - 109, - 149, - 189, - 229, - 269, - 309, - 349, - 389, - 429 - ] - } - ], - "nomono_activation_requirements = nomono_requirements\nnomono_lockfile = File.expand_path('Gemfile.lock', __dir__)": [ - { - "file": "Gemfile", - "lines": [ - 85, - 125, - 165, - 205, - 245, - 285, - 325, - 365, - 405 + 109 ] } ], @@ -216,15 +40,7 @@ "file": "Gemfile", "lines": [ 48, - 92, - 132, - 172, - 212, - 252, - 292, - 332, - 372, - 412 + 92 ] } ], @@ -233,95 +49,7 @@ "file": "Gemfile", "lines": [ 44, - 88, - 128, - 168, - 208, - 248, - 288, - 328, - 368, - 408 - ] - } - ], - "nomono_lockfile = File.expand_path('Gemfile.lock', __dir__)\nif File.file?(nomono_lockfile)": [ - { - "file": "Gemfile", - "lines": [ - 86, - 126, - 166, - 206, - 246, - 286, - 326, - 366, - 406 - ] - } - ], - "path_env: 'STRUCTUREDMERGE_DEV',\nroot: %w[src my structuredmerge]": [ - { - "file": "Gemfile", - "lines": [ - 103, - 143, - 183, - 223, - 263, - 303, - 343, - 383, - 423 - ] - } - ], - "prefix: 'STRUCTUREDMERGE',\npath_env: 'STRUCTUREDMERGE_DEV',": [ - { - "file": "Gemfile", - "lines": [ - 102, - 142, - 182, - 222, - 262, - 302, - 342, - 382, - 422 - ] - } - ], - "require 'nomono/bundler'\nENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local": [ - { - "file": "Gemfile", - "lines": [ - 97, - 137, - 177, - 217, - 257, - 297, - 337, - 377, - 417 - ] - } - ], - "rescue LoadError\nwarn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.'": [ - { - "file": "Gemfile", - "lines": [ - 106, - 146, - 186, - 226, - 266, - 306, - 346, - 386, - 426 + 88 ] } ], @@ -329,8 +57,8 @@ { "file": "gemfiles/modular/templating_local.gemfile", "lines": [ - 58, - 69 + 55, + 66 ] } ] diff --git a/gems/dotenv-merge/.structuredmerge/kettle-jem.yml b/gems/dotenv-merge/.structuredmerge/kettle-jem.yml index 2fdedc239..6950419f1 100644 --- a/gems/dotenv-merge/.structuredmerge/kettle-jem.yml +++ b/gems/dotenv-merge/.structuredmerge/kettle-jem.yml @@ -246,6 +246,59 @@ templates: - Gemfile - certs/pboling.pem - tmp/.gitignore + - gemfiles/modular/benchmark/r4/v0.5.gemfile + - gemfiles/modular/benchmark/vHEAD.gemfile + - gemfiles/modular/cgi/r4/v0.5.gemfile + - gemfiles/modular/cgi/vHEAD.gemfile + - gemfiles/modular/coverage.gemfile + - gemfiles/modular/coverage_local.gemfile + - gemfiles/modular/debug.gemfile + - gemfiles/modular/documentation.gemfile + - gemfiles/modular/documentation_local.gemfile + - gemfiles/modular/erb/r2.3/default.gemfile + - gemfiles/modular/erb/r2.6/v2.2.gemfile + - gemfiles/modular/erb/r2/v3.0.gemfile + - gemfiles/modular/erb/r3.1/v4.0.gemfile + - gemfiles/modular/erb/r3/v5.0.gemfile + - gemfiles/modular/erb/r4/v5.0.gemfile + - gemfiles/modular/erb/vHEAD.gemfile + - gemfiles/modular/json/truffleruby_22_3.gemfile + - gemfiles/modular/json/truffleruby_23_0.gemfile + - gemfiles/modular/json/truffleruby_23_1.gemfile + - gemfiles/modular/mutex_m/r2.4/v0.1.gemfile + - gemfiles/modular/mutex_m/r2/v0.3.gemfile + - gemfiles/modular/mutex_m/r3/v0.3.gemfile + - gemfiles/modular/mutex_m/r4/v0.3.gemfile + - gemfiles/modular/mutex_m/vHEAD.gemfile + - gemfiles/modular/optional.gemfile + - gemfiles/modular/recording/r2.3/recording.gemfile + - gemfiles/modular/recording/r2.4/recording.gemfile + - gemfiles/modular/recording/r2.5/recording.gemfile + - gemfiles/modular/recording/r3/recording.gemfile + - gemfiles/modular/recording/r4/recording.gemfile + - gemfiles/modular/recording/vHEAD.gemfile + - gemfiles/modular/rspec.gemfile + - gemfiles/modular/runtime_heads.gemfile + - gemfiles/modular/stringio/r2.4/v0.0.2.gemfile + - gemfiles/modular/stringio/r2/v3.0.gemfile + - gemfiles/modular/stringio/r3/v3.0.gemfile + - gemfiles/modular/stringio/r4/v3.0.gemfile + - gemfiles/modular/stringio/vHEAD.gemfile + - gemfiles/modular/style.gemfile + - gemfiles/modular/style_local.gemfile + - gemfiles/modular/templating.gemfile + - gemfiles/modular/templating_local.gemfile + - gemfiles/modular/webrick/r4/v1.9.gemfile + - gemfiles/modular/webrick/vHEAD.gemfile + - gemfiles/modular/x_std_libs.gemfile + - gemfiles/modular/x_std_libs/r2.3/libs.gemfile + - gemfiles/modular/x_std_libs/r2.4/libs.gemfile + - gemfiles/modular/x_std_libs/r2.6/libs.gemfile + - gemfiles/modular/x_std_libs/r2/libs.gemfile + - gemfiles/modular/x_std_libs/r3.1/libs.gemfile + - gemfiles/modular/x_std_libs/r3/libs.gemfile + - gemfiles/modular/x_std_libs/r4/libs.gemfile + - gemfiles/modular/x_std_libs/vHEAD.gemfile - source: lib/gem/version.rb target: lib/dotenv/merge/version.rb - source: sig/gem.rbs diff --git a/gems/dotenv-merge/Gemfile b/gems/dotenv-merge/Gemfile index ce8f1c741..0d90044b7 100644 --- a/gems/dotenv-merge/Gemfile +++ b/gems/dotenv-merge/Gemfile @@ -6,7 +6,7 @@ # kettle-jem will then preserve content between those markers across template runs. # kettle-jem:unfreeze -source 'https://gem.coop' +source "https://gem.coop" git_source(:codeberg) { |repo_name| "https://codeberg.org/#{repo_name}" } git_source(:gitlab) { |repo_name| "https://gitlab.com/#{repo_name}" } @@ -19,18 +19,62 @@ git_source(:gitlab) { |repo_name| "https://gitlab.com/#{repo_name}" } gemspec # Local workspace dependency wiring for *_local.gemfile overrides -nomono_requirements = ['~> 1.0', '>= 1.0.8'] -gem 'nomono', *nomono_requirements, require: false # ruby >= 2.2 +nomono_requirements = ["~> 1.0", ">= 1.0.8"] +gem "nomono", *nomono_requirements, require: false # ruby >= 2.2 # Direct sibling dependencies (env-switched via STRUCTUREDMERGE_DEV) direct_sibling_gems = %w[ ast-merge tree_haver ] -direct_sibling_dev = ENV.fetch('STRUCTUREDMERGE_DEV', '') +direct_sibling_dev = ENV.fetch("STRUCTUREDMERGE_DEV", "") direct_sibling_local = !direct_sibling_dev.empty? && !%w[false 0 no off].include?(direct_sibling_dev.downcase) -direct_sibling_templating = ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? +direct_sibling_templating = ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? + +if direct_sibling_gems.any? && + (direct_sibling_local || + ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero?) + direct_sibling_dev_was_set = ENV.key?("STRUCTUREDMERGE_DEV") + direct_sibling_dev_original = ENV.fetch("STRUCTUREDMERGE_DEV", nil) + begin + nomono_activation_requirements = nomono_requirements + nomono_lockfile = File.expand_path("Gemfile.lock", __dir__) + if File.file?(nomono_lockfile) + nomono_locked_spec = Bundler::LockfileParser + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == "nomono" } + nomono_locked = nomono_locked_spec && + Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) + if nomono_locked + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] + end + end + Kernel.send(:gem, "nomono", *nomono_activation_requirements) + require "nomono/bundler" + if direct_sibling_templating && !direct_sibling_local + ENV["STRUCTUREDMERGE_DEV"] = File.expand_path("..", __dir__) + end + + eval_nomono_gems( + gems: direct_sibling_gems, + prefix: "STRUCTUREDMERGE", + path_env: "STRUCTUREDMERGE_DEV", + root: ["src", "my", "structuredmerge"] + ) + rescue LoadError + warn "Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies." + ensure + if direct_sibling_templating && !direct_sibling_local + if direct_sibling_dev_was_set + ENV["STRUCTUREDMERGE_DEV"] = direct_sibling_dev_original + else + ENV.delete("STRUCTUREDMERGE_DEV") + end + end + end +end if direct_sibling_gems.any? && (direct_sibling_local || @@ -73,28 +117,28 @@ if direct_sibling_gems.any? && end # Use released TSLP with the Ruby ABI platform-gem fix. -gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' +gem "tree_sitter_language_pack", "~> 1.13", ">= 1.13.3" # Templating (env-switched: STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local paths) -eval_gemfile 'gemfiles/modular/templating.gemfile' if ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? +eval_gemfile "gemfiles/modular/templating.gemfile" if ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? # Debugging -eval_gemfile 'gemfiles/modular/debug.gemfile' +eval_gemfile "gemfiles/modular/debug.gemfile" # Code Coverage (env-switched: KETTLE_DEV_DEV=true for local paths) -eval_gemfile 'gemfiles/modular/coverage.gemfile' +eval_gemfile "gemfiles/modular/coverage.gemfile" # Linting -eval_gemfile 'gemfiles/modular/style.gemfile' +eval_gemfile "gemfiles/modular/style.gemfile" # Documentation -eval_gemfile 'gemfiles/modular/documentation.gemfile' +eval_gemfile "gemfiles/modular/documentation.gemfile" # Optional -eval_gemfile 'gemfiles/modular/optional.gemfile' +eval_gemfile "gemfiles/modular/optional.gemfile" ### Std Lib Extracted Gems -eval_gemfile 'gemfiles/modular/x_std_libs.gemfile' +eval_gemfile "gemfiles/modular/x_std_libs.gemfile" # See unlocked_deps appraisal for more details on irb inclusion -gem 'irb', '~> 1.17' # ruby >= 2.7 +gem "irb", "~> 1.17" # ruby >= 2.7 diff --git a/gems/dotenv-merge/Gemfile.lock b/gems/dotenv-merge/Gemfile.lock index 178d59d07..929c0c5f7 100644 --- a/gems/dotenv-merge/Gemfile.lock +++ b/gems/dotenv-merge/Gemfile.lock @@ -284,12 +284,7 @@ GEM thor (~> 1.0) citrus (3.0.2) cmdparse (3.0.7) - commonmarker (2.9.0-aarch64-linux) - commonmarker (2.9.0-aarch64-linux-musl) - commonmarker (2.9.0-arm64-darwin) - commonmarker (2.9.0-x86_64-darwin) commonmarker (2.9.0-x86_64-linux) - commonmarker (2.9.0-x86_64-linux-musl) concurrent-ruby (1.3.8) date (3.5.1) debug (1.11.1) @@ -391,13 +386,11 @@ GEM racc (~> 1.4) nokogiri (1.19.4-arm64-darwin) racc (~> 1.4) - nokogiri (1.19.4-x86_64-darwin) - racc (~> 1.4) nokogiri (1.19.4-x86_64-linux-gnu) racc (~> 1.4) nokogiri (1.19.4-x86_64-linux-musl) racc (~> 1.4) - nomono (1.0.8) + nomono (1.0.9) openssl (4.0.2) ostruct (0.6.3) parallel (1.28.0) @@ -583,8 +576,6 @@ GEM sorbet-runtime (~> 0.5) tree_sitter_language_pack (1.13.3-arm64-darwin) sorbet-runtime (~> 0.5) - tree_sitter_language_pack (1.13.3-x86_64-darwin) - sorbet-runtime (~> 0.5) tree_sitter_language_pack (1.13.3-x86_64-linux) sorbet-runtime (~> 0.5) tsort (0.2.0) @@ -626,7 +617,7 @@ PLATFORMS aarch64-linux-gnu aarch64-linux-musl arm64-darwin - x86_64-darwin + x86_64-linux x86_64-linux-gnu x86_64-linux-musl @@ -722,12 +713,7 @@ CHECKSUMS citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 - commonmarker (2.9.0-aarch64-linux) sha256=e2b4aadb9a2cfa4e206582641ce3a49465549ac1ed4c289fdd63b78d8f24579c - commonmarker (2.9.0-aarch64-linux-musl) sha256=1cf4d2821f2a7e64945f1ed7c4eeced586fdb27ea7fe7337788802cf8f57cfca - commonmarker (2.9.0-arm64-darwin) sha256=1748dbfa4f5813b0d2a14bb4bbfa65a4ec293aa1c825016d60029ee0e132b046 - commonmarker (2.9.0-x86_64-darwin) sha256=0a9914ccfd2f5d2a59c7bd0dda4fe90eb084cf513b477e499008e09ec9d6edd6 - commonmarker (2.9.0-x86_64-linux) sha256=8cfe92970eef585a19ddf6613224b91cab64d6029834661bda801f877c9c7f43 - commonmarker (2.9.0-x86_64-linux-musl) sha256=293921398b839f79ceaf55010e061357e34f053822c3b003cd0be6686176335e + commonmarker (2.9.0-x86_64-linux) commonmarker-merge (7.1.0) concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 @@ -756,7 +742,7 @@ CHECKSUMS json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 json-merge (7.1.0) kettle-dev (2.3.7) sha256=eb370113cd030d03cbe2d33b31c99858951017e5ad21a17e9ed89dc3770028ee - kettle-drift (1.0.6) sha256=46eda08fa4411d1f3c6682a95eef1c9df4e94611b3949f49d4c7b43c0ed356a3 + kettle-drift (1.0.6) kettle-jem (7.1.0) kettle-rb (0.1.4) sha256=9cef7ce4f7021666b7222292f29051e51eaf042e8a5db11f3f4dd72f74243fc1 kettle-soup-cover (1.1.3) sha256=a373827da22a7131d093afd32945e5b7d7a10a01ebfdded8fd2cb8230d69c8ad @@ -768,16 +754,15 @@ CHECKSUMS lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 markdown-merge (7.1.0) - markly (0.16.0) sha256=6f70d79e385b1efc9e171f74c81628826259039fe6c778e03c3924c71dac5511 + markly (0.16.0) markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-aarch64-linux-gnu) sha256=1269fb644a6de405057a53dd5c762b1209b43ca7424f839454d3dbc677c31a8f nokogiri (1.19.4-aarch64-linux-musl) sha256=35c65b9ce72b3bb03207bdbe7067915019dc18c1b9b59139684bd6690fdd01af nokogiri (1.19.4-arm64-darwin) sha256=a46db9853286e6597b36ebc6953817d15acf3a299583eb3f89fdc6f91dd63527 - nokogiri (1.19.4-x86_64-darwin) sha256=7fd17057d3e1f00e9954a74b3cd76595d3d4a5ef233b7ed9599047c204f70551 nokogiri (1.19.4-x86_64-linux-gnu) sha256=379fae440b28915e3f19d752ce2dcf8465ed2b2fbefd2a7ca0dd497bc981a06a nokogiri (1.19.4-x86_64-linux-musl) sha256=17dfb7c1fa194ae02fbf7c51a7afc8d278045ab3fdacfd86f91d02d7b274470b - nomono (1.0.8) sha256=bf4b9b426cbf216ab17b70db474f691b8ae1f1e29de8db4b0ecd405e6e7e1c80 + nomono (1.0.9) openssl (4.0.2) sha256=1037ad2868ae58df9ad917891c0c0f9815a1172f6846d4bcdd508e4c2ee747c2 ostruct (0.6.3) sha256=95a2ed4a4bd1d190784e666b47b2d3f078e4a9efda2fccf18f84ddc6538ed912 parallel (1.28.0) sha256=33e6de1484baf2524792d178b0913fc8eb94c628d6cfe45599ad4458c638c970 @@ -830,7 +815,7 @@ CHECKSUMS ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 rust-merge (7.1.0) - service_actor (3.9.4) sha256=e63b523630b9a7e62959b2a90113b08d2565b5de9c148557b281ef847c9539ce + service_actor (3.9.4) silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (0.22.0) sha256=fe2622c7834ff23b98066bb0a854284b2729a569ac659f82621fc22ef36213a5 simplecov-cobertura (3.2.0) sha256=70d702658677fcb20e5aceb6915ccf8bc62ff2ccd38b62b3ad5c9db5c0888740 @@ -853,13 +838,12 @@ CHECKSUMS timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.4) sha256=33b926958f504525bba3ed511ab66fbcbf8ef30390815e931436b30f27ffcad0 - toml (0.3.0) sha256=0a91d0f76a9036e84e44f95693b12f58d358c1df3ac8e3b5271f2056ecc6e4b9 + toml (0.3.0) toml-merge (7.1.0) - toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 + toml-rb (4.2.0) tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-aarch64-linux) sha256=55ffc7c87868cb45658338363d9eba51b4a8b0259aa88e4de368d2bd1d52fea4 tree_sitter_language_pack (1.13.3-arm64-darwin) sha256=bc2498db605f212a1dbd2465ed3f65190d7da786f6ed5d30fcf958121aeb4a5c - tree_sitter_language_pack (1.13.3-x86_64-darwin) sha256=061f7da6e1cc4ba936fad436ee0653d7dfdfa4aa879cf555403e3aa373d43966 tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 diff --git a/gems/dotenv-merge/Rakefile b/gems/dotenv-merge/Rakefile index f9c91d66d..0eb280538 100644 --- a/gems/dotenv-merge/Rakefile +++ b/gems/dotenv-merge/Rakefile @@ -130,23 +130,23 @@ end ### DUPLICATE DRIFT TASKS begin - require 'kettle/drift' + require "kettle/drift" Kettle::Drift.install_tasks rescue LoadError - desc('(stub) kettle:drift:check is unavailable') - task('kettle:drift:check') do + desc("(stub) kettle:drift:check is unavailable") + task("kettle:drift:check") do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc('(stub) kettle:drift:update is unavailable') - task('kettle:drift:update') do + desc("(stub) kettle:drift:update is unavailable") + task("kettle:drift:update") do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc('(stub) kettle:drift:force_update is unavailable') - task('kettle:drift:force_update') do + desc("(stub) kettle:drift:force_update is unavailable") + task("kettle:drift:force_update") do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc('(stub) kettle:drift is unavailable') - task('kettle:drift' => 'kettle:drift:update') + desc("(stub) kettle:drift is unavailable") + task("kettle:drift" => "kettle:drift:update") end ### TEMPLATING TASKS diff --git a/gems/dotenv-merge/lib/dotenv/merge/version.rb b/gems/dotenv-merge/lib/dotenv/merge/version.rb index 7808fd0ae..d3d9f5371 100644 --- a/gems/dotenv-merge/lib/dotenv/merge/version.rb +++ b/gems/dotenv-merge/lib/dotenv/merge/version.rb @@ -3,7 +3,7 @@ module Dotenv module Merge module Version - VERSION = '7.1.0' + VERSION = "7.1.0" end VERSION = Version::VERSION # Traditional Constant Location end diff --git a/gems/plain-merge/Gemfile.lock b/gems/plain-merge/Gemfile.lock index ab1102eda..b6bca82a7 100644 --- a/gems/plain-merge/Gemfile.lock +++ b/gems/plain-merge/Gemfile.lock @@ -7,7 +7,39 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/ast-merge + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly + specs: + ast-crispr-markdown-markly (7.1.0) + ast-crispr (= 7.1.0) + markly-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism + specs: + ast-crispr-ruby-prism (7.1.0) + ast-crispr (= 7.1.0) + prism-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr + specs: + ast-crispr (7.1.0) + ast-merge (= 7.1.0) + service_actor (~> 3.9) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git + specs: + ast-merge-git (7.1.0) + ast-merge (= 7.1.0) + json-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge specs: ast-merge (7.1.0) benchmark @@ -16,7 +48,193 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/tree_haver + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template + specs: + ast-template (7.1.0) + ast-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge + specs: + bash-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge + specs: + binary-merge (7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge + specs: + citrus-toml-merge (7.1.0) + toml-merge (= 7.1.0) + toml-rb (~> 4.1) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge + specs: + commonmarker-merge (7.1.0) + commonmarker (~> 2.2) + markdown-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge + specs: + dotenv-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge + specs: + go-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge + specs: + json-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem + specs: + kettle-jem (7.1.0) + addressable (>= 2.8, < 3) + ast-crispr-markdown-markly (= 7.1.0) + ast-crispr-ruby-prism (= 7.1.0) + ast-merge (= 7.1.0) + bash-merge (= 7.1.0) + citrus-toml-merge (= 7.1.0) + commonmarker-merge (= 7.1.0) + dotenv-merge (= 7.1.0) + json-merge (= 7.1.0) + kettle-dev (~> 2.3, >= 2.3.5) + kettle-rb (~> 0.1, >= 0.1.4) + kramdown-merge (= 7.1.0) + markdown-merge (= 7.1.0) + markly-merge (= 7.1.0) + prism-merge (= 7.1.0) + psych-merge (= 7.1.0) + rbs (>= 3.10) + rbs-merge (= 7.1.0) + ruby-merge (= 7.1.0) + token-resolver (~> 2.0, >= 2.0.4) + toml-merge (= 7.1.0) + toml-rb (~> 4.2) + tree_haver (= 7.1.0) + yaml-merge (= 7.1.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge + specs: + kramdown-merge (7.1.0) + kramdown (~> 2.5) + markdown-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge + specs: + markdown-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge + specs: + markly-merge (7.1.0) + markdown-merge (= 7.1.0) + markly (~> 0.9) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge + specs: + parslet-toml-merge (7.1.0) + toml (~> 0.3) + toml-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge + specs: + prism-merge (7.1.0) + prism (~> 1.6) + ruby-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge + specs: + psych-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + yaml-merge (= 7.1.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge + specs: + rbs-merge (7.1.0) + ast-merge (= 7.1.0) + rbs (>= 3.10) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge + specs: + ruby-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge + specs: + rust-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb + specs: + smorg-rb (7.1.0) + ast-merge (= 7.1.0) + ast-merge-git (= 7.1.0) + go-merge (= 7.1.0) + json-merge (= 7.1.0) + kettle-jem (= 7.1.0) + markly-merge (= 7.1.0) + plain-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge + specs: + toml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver specs: tree_haver (7.1.0) citrus (~> 3.0) @@ -24,6 +242,29 @@ PATH tree_sitter_language_pack (>= 1.13.2, < 2.0) version_gem (~> 1.1, >= 1.1.9) +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge + specs: + typescript-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge + specs: + yaml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge + specs: + zip-merge (7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + GEM remote: https://gem.coop/ specs: @@ -48,6 +289,11 @@ GEM cgi (0.5.2) citrus (3.0.2) cmdparse (3.0.7) + commonmarker (2.9.0-aarch64-linux) + commonmarker (2.9.0-aarch64-linux-musl) + commonmarker (2.9.0-arm64-darwin) + commonmarker (2.9.0-x86_64-linux) + commonmarker (2.9.0-x86_64-linux-musl) concurrent-ruby (1.3.8) date (3.5.1) debug (1.11.1) @@ -110,6 +356,8 @@ GEM kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) + kettle-drift (1.0.6) + version_gem (~> 1.1, >= 1.1.14) kettle-rb (0.1.5) kettle-soup-cover (3.0.4) kettle-wash (~> 0.1, >= 0.1.0) @@ -138,6 +386,7 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) + markly (0.16.0) mutex_m (0.3.0) nokogiri (1.19.4-aarch64-linux-gnu) racc (~> 1.4) @@ -300,6 +549,8 @@ GEM ruby-progressbar (1.13.0) ruby_engine (2.0.3) ruby_version (1.0.3) + service_actor (3.9.4) + zeitwerk (>= 1.0) silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) @@ -354,6 +605,11 @@ GEM token-resolver (2.0.5) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.14) + toml (0.3.0) + parslet (>= 1.8.0, < 3.0.0) + toml-rb (4.2.0) + citrus (~> 3.0, > 3.0) + racc (~> 1.7) tree_sitter_language_pack (1.13.3-aarch64-linux) sorbet-runtime (~> 0.5) tree_sitter_language_pack (1.13.3-arm64-darwin) @@ -408,25 +664,46 @@ DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) appraisal2-rubocop (~> 1.0, >= 1.0.0) + ast-crispr! + ast-crispr-markdown-markly! + ast-crispr-ruby-prism! ast-merge! + ast-merge-git! + ast-template! + bash-merge! benchmark (~> 0.5, >= 0.5.0) + binary-merge! bundler-audit (~> 0.9.3) cgi (~> 0.5) + citrus-toml-merge! + commonmarker-merge! debug (>= 1.1) + dotenv-merge! erb (~> 6.0, >= 6.0.6) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.0) + go-merge! irb (~> 1.17) + json-merge! kettle-dev (~> 2.0, >= 2.2.25) + kettle-drift (~> 1.0, >= 1.0.6) + kettle-jem! kettle-soup-cover (~> 3.0, >= 3.0.3) kettle-test (~> 2.0, >= 2.0.9) kramdown (~> 2.5, >= 2.5.2) + kramdown-merge! kramdown-parser-gfm (~> 1.1) + markdown-merge! + markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) + parslet-toml-merge! plain-merge! + prism-merge! + psych-merge! rake (~> 13.0) rbs (>= 3.0) + rbs-merge! rdoc (~> 6.11) reek (~> 6.5, >= 6.5.0) require_bench (~> 1.0, >= 1.0.4) @@ -437,20 +714,27 @@ DEPENDENCIES rubocop-on-rbs (~> 2.0, >= 2.0.0) rubocop-packaging (~> 0.6, >= 0.6.0) rubocop-ruby3_2 (~> 3.0, >= 3.0.6) + ruby-merge! ruby-progressbar (~> 1.13) + rust-merge! + smorg-rb! standard (~> 1.56, >= 1.56.0) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) + toml-merge! tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) + typescript-merge! webrick (~> 1.9) yaml-converter (~> 0.2, >= 0.2.3) + yaml-merge! yard (~> 0.9, >= 0.9.45) yard-fence (~> 0.9, >= 0.9.6) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) yard-timekeeper (~> 0.2, >= 0.2.4) yard-yaml (~> 0.2, >= 0.2.3) + zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af @@ -458,20 +742,35 @@ CHECKSUMS appraisal2 (3.2.0) sha256=ccd0b767ac4060cd7af6d16747459b6990f49c39c7b4fb1f7d1146b1e97c492f appraisal2-rubocop (1.0.0) sha256=b71410fbb014befda5340605a605b7f6f3f012739baf0acc5b4351b592c3258d ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 + ast-crispr (7.1.0) + ast-crispr-markdown-markly (7.1.0) + ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) + ast-merge-git (7.1.0) + ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 + bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd + binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 + citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 + commonmarker (2.9.0-aarch64-linux) sha256=e2b4aadb9a2cfa4e206582641ce3a49465549ac1ed4c289fdd63b78d8f24579c + commonmarker (2.9.0-aarch64-linux-musl) sha256=1cf4d2821f2a7e64945f1ed7c4eeced586fdb27ea7fe7337788802cf8f57cfca + commonmarker (2.9.0-arm64-darwin) sha256=1748dbfa4f5813b0d2a14bb4bbfa65a4ec293aa1c825016d60029ee0e132b046 + commonmarker (2.9.0-x86_64-linux) sha256=8cfe92970eef585a19ddf6613224b91cab64d6029834661bda801f877c9c7f43 + commonmarker (2.9.0-x86_64-linux-musl) sha256=293921398b839f79ceaf55010e061357e34f053822c3b003cd0be6686176335e + commonmarker-merge (7.1.0) concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 + dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -484,20 +783,28 @@ CHECKSUMS gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f + go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 + json-merge (7.1.0) kettle-dev (2.3.8) sha256=9d716ff21c660a730cb4e8d41e2e2f0630a28167a354b6e2924e242102aef72c + kettle-drift (1.0.6) sha256=46eda08fa4411d1f3c6682a95eef1c9df4e94611b3949f49d4c7b43c0ed356a3 + kettle-jem (7.1.0) kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f kettle-soup-cover (3.0.4) kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa + kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 + markdown-merge (7.1.0) + markly (0.16.0) sha256=6f70d79e385b1efc9e171f74c81628826259039fe6c778e03c3924c71dac5511 + markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-aarch64-linux-gnu) sha256=1269fb644a6de405057a53dd5c762b1209b43ca7424f839454d3dbc677c31a8f nokogiri (1.19.4-aarch64-linux-musl) sha256=35c65b9ce72b3bb03207bdbe7067915019dc18c1b9b59139684bd6690fdd01af @@ -511,16 +818,20 @@ CHECKSUMS parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 + parslet-toml-merge (7.1.0) plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 + prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 + psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 + rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb @@ -555,15 +866,19 @@ CHECKSUMS rubocop-rspec_rails (2.32.0) sha256=4a0d641c72f6ebb957534f539d9d0a62c47abd8ce0d0aeee1ef4701e892a9100 rubocop-ruby3_2 (3.0.7) sha256=f53dd6d286fb05186214fc6ec116783e7f837030918e8931c05de773e98f8466 rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 + ruby-merge (7.1.0) ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 + rust-merge (7.1.0) + service_actor (3.9.4) sha256=e63b523630b9a7e62959b2a90113b08d2565b5de9c148557b281ef847c9539ce silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed + smorg-rb (7.1.0) sorbet-runtime (0.6.13347) sha256=54e7221d9f4b63f58aec79f3043752a9ba7810347c6ae0d903531591cc2d5f01 standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b @@ -578,17 +893,22 @@ CHECKSUMS timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.5) sha256=b852f924287ffb58a440856e862b056c8ad97e74b4b2526cee43e0771f40c25c + toml (0.3.0) sha256=0a91d0f76a9036e84e44f95693b12f58d358c1df3ac8e3b5271f2056ecc6e4b9 + toml-merge (7.1.0) + toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-aarch64-linux) sha256=55ffc7c87868cb45658338363d9eba51b4a8b0259aa88e4de368d2bd1d52fea4 tree_sitter_language_pack (1.13.3-arm64-darwin) sha256=bc2498db605f212a1dbd2465ed3f65190d7da786f6ed5d30fcf958121aeb4a5c tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 + typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 webrick (1.9.2) sha256=beb4a15fc474defed24a3bda4ffd88a490d517c9e4e6118c3edce59e45864131 yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 + yaml-merge (7.1.0) yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd @@ -596,6 +916,7 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 + zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH diff --git a/gems/rbs-merge/Gemfile.lock b/gems/rbs-merge/Gemfile.lock index 0e8fa65d7..f26fd3e97 100644 --- a/gems/rbs-merge/Gemfile.lock +++ b/gems/rbs-merge/Gemfile.lock @@ -7,6 +7,264 @@ PATH tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.14) +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly + specs: + ast-crispr-markdown-markly (7.1.0) + ast-crispr (= 7.1.0) + markly-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism + specs: + ast-crispr-ruby-prism (7.1.0) + ast-crispr (= 7.1.0) + prism-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr + specs: + ast-crispr (7.1.0) + ast-merge (= 7.1.0) + service_actor (~> 3.9) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git + specs: + ast-merge-git (7.1.0) + ast-merge (= 7.1.0) + json-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge + specs: + ast-merge (7.1.0) + benchmark + token-resolver (~> 2.0, >= 2.0.4) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template + specs: + ast-template (7.1.0) + ast-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge + specs: + bash-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge + specs: + binary-merge (7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge + specs: + citrus-toml-merge (7.1.0) + toml-merge (= 7.1.0) + toml-rb (~> 4.1) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge + specs: + commonmarker-merge (7.1.0) + commonmarker (~> 2.2) + markdown-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge + specs: + dotenv-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge + specs: + go-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge + specs: + json-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem + specs: + kettle-jem (7.1.0) + addressable (>= 2.8, < 3) + ast-crispr-markdown-markly (= 7.1.0) + ast-crispr-ruby-prism (= 7.1.0) + ast-merge (= 7.1.0) + bash-merge (= 7.1.0) + citrus-toml-merge (= 7.1.0) + commonmarker-merge (= 7.1.0) + dotenv-merge (= 7.1.0) + json-merge (= 7.1.0) + kettle-dev (~> 2.3, >= 2.3.5) + kettle-rb (~> 0.1, >= 0.1.4) + kramdown-merge (= 7.1.0) + markdown-merge (= 7.1.0) + markly-merge (= 7.1.0) + prism-merge (= 7.1.0) + psych-merge (= 7.1.0) + rbs (>= 3.10) + rbs-merge (= 7.1.0) + ruby-merge (= 7.1.0) + token-resolver (~> 2.0, >= 2.0.4) + toml-merge (= 7.1.0) + toml-rb (~> 4.2) + tree_haver (= 7.1.0) + yaml-merge (= 7.1.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge + specs: + kramdown-merge (7.1.0) + kramdown (~> 2.5) + markdown-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge + specs: + markdown-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge + specs: + markly-merge (7.1.0) + markdown-merge (= 7.1.0) + markly (~> 0.9) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge + specs: + parslet-toml-merge (7.1.0) + toml (~> 0.3) + toml-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge + specs: + plain-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge + specs: + prism-merge (7.1.0) + prism (~> 1.6) + ruby-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge + specs: + psych-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + yaml-merge (= 7.1.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge + specs: + ruby-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge + specs: + rust-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb + specs: + smorg-rb (7.1.0) + ast-merge (= 7.1.0) + ast-merge-git (= 7.1.0) + go-merge (= 7.1.0) + json-merge (= 7.1.0) + kettle-jem (= 7.1.0) + markly-merge (= 7.1.0) + plain-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge + specs: + toml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver + specs: + tree_haver (7.1.0) + citrus (~> 3.0) + parslet (~> 2.0) + tree_sitter_language_pack (>= 1.13.2, < 2.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge + specs: + typescript-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge + specs: + yaml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge + specs: + zip-merge (7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + GEM remote: https://gem.coop/ specs: @@ -18,11 +276,6 @@ GEM rake (>= 10) thor (>= 0.14) ast (2.4.3) - ast-merge (7.1.0) - benchmark - token-resolver (~> 2.0, >= 2.0.4) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) backports (3.25.3) benchmark (0.5.0) bigdecimal (4.1.2) @@ -31,6 +284,11 @@ GEM thor (~> 1.0) citrus (3.0.2) cmdparse (3.0.7) + commonmarker (2.9.0-aarch64-linux) + commonmarker (2.9.0-aarch64-linux-musl) + commonmarker (2.9.0-arm64-darwin) + commonmarker (2.9.0-x86_64-linux) + commonmarker (2.9.0-x86_64-linux-musl) concurrent-ruby (1.3.7) date (3.5.1) debug (1.11.1) @@ -94,6 +352,8 @@ GEM kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) + kettle-drift (1.0.6) + version_gem (~> 1.1, >= 1.1.14) kettle-rb (0.1.4) kettle-soup-cover (1.1.3) simplecov (~> 0.22) @@ -122,6 +382,7 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) + markly (0.16.0) mutex_m (0.3.0) nokogiri (1.19.4-aarch64-linux-gnu) racc (~> 1.4) @@ -256,6 +517,8 @@ GEM ruby-progressbar (1.13.0) ruby_engine (2.0.3) ruby_version (1.0.3) + service_actor (3.9.4) + zeitwerk (>= 1.0) silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) @@ -308,11 +571,11 @@ GEM token-resolver (2.0.4) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.13) - tree_haver (7.1.0) - citrus (~> 3.0) - parslet (~> 2.0) - tree_sitter_language_pack (>= 1.13.2, < 2.0) - version_gem (~> 1.1, >= 1.1.9) + toml (0.3.0) + parslet (>= 1.8.0, < 3.0.0) + toml-rb (4.2.0) + citrus (~> 3.0, > 3.0) + racc (~> 1.7) tree_sitter_language_pack (1.13.3-aarch64-linux) sorbet-runtime (~> 0.5) tree_sitter_language_pack (1.13.3-arm64-darwin) @@ -365,20 +628,42 @@ PLATFORMS DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.2, >= 3.2.0) + ast-crispr! + ast-crispr-markdown-markly! + ast-crispr-ruby-prism! + ast-merge! + ast-merge-git! + ast-template! + bash-merge! benchmark (~> 0.5, >= 0.5.0) + binary-merge! bundler-audit (~> 0.9.3) + citrus-toml-merge! + commonmarker-merge! debug (>= 1.1) + dotenv-merge! erb (~> 6.0, >= 6.0.4) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.4) + go-merge! irb (~> 1.17) + json-merge! kettle-dev (~> 2.3, >= 2.3.7) + kettle-drift (~> 1.0, >= 1.0.5) + kettle-jem! kettle-soup-cover (~> 1.0, >= 1.1.3) kettle-test (~> 2.0, >= 2.0.11) kramdown (~> 2.5, >= 2.5.1) + kramdown-merge! kramdown-parser-gfm (~> 1.1) + markdown-merge! + markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) + parslet-toml-merge! + plain-merge! + prism-merge! + psych-merge! rake (~> 13.0) rbs (>= 3.0) rbs-merge! @@ -390,32 +675,54 @@ DEPENDENCIES rubocop-packaging (~> 0.6, >= 0.6.0) rubocop-rspec (~> 3.6) rubocop-ruby3_2 (~> 3.0.0) + ruby-merge! ruby-progressbar (~> 1.13) + rust-merge! + smorg-rb! standard (>= 1.50) stone_checksums (~> 1.0, >= 1.0.6, >= 1.0.3) stringio (>= 3.0) + toml-merge! + tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) turbo_tests2 (~> 3.2, >= 3.2.0) + typescript-merge! yaml-converter (~> 0.1) + yaml-merge! yard (~> 0.9, >= 0.9.44) yard-fence (~> 0.9, >= 0.9.1) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) yard-timekeeper (~> 0.1) yard-yaml (~> 0.1, >= 0.1.2) + zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af ansi (1.6.0) sha256=ac9ea0c0ea8d32fb4e271348e609963ac78882f34b73836c2a02b3622e666658 appraisal2 (3.2.0) sha256=ccd0b767ac4060cd7af6d16747459b6990f49c39c7b4fb1f7d1146b1e97c492f ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 + ast-crispr (7.1.0) + ast-crispr-markdown-markly (7.1.0) + ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) + ast-merge-git (7.1.0) + ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 + bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd + binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 + citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 + commonmarker (2.9.0-aarch64-linux) sha256=e2b4aadb9a2cfa4e206582641ce3a49465549ac1ed4c289fdd63b78d8f24579c + commonmarker (2.9.0-aarch64-linux-musl) sha256=1cf4d2821f2a7e64945f1ed7c4eeced586fdb27ea7fe7337788802cf8f57cfca + commonmarker (2.9.0-arm64-darwin) sha256=1748dbfa4f5813b0d2a14bb4bbfa65a4ec293aa1c825016d60029ee0e132b046 + commonmarker (2.9.0-x86_64-linux) sha256=8cfe92970eef585a19ddf6613224b91cab64d6029834661bda801f877c9c7f43 + commonmarker (2.9.0-x86_64-linux-musl) sha256=293921398b839f79ceaf55010e061357e34f053822c3b003cd0be6686176335e + commonmarker-merge (7.1.0) concurrent-ruby (1.3.7) sha256=4412caec3a5ea2e5fdc52076724c071a81f2c0593d83b2ac8cbb8ca63b3151b0 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 @@ -423,6 +730,7 @@ CHECKSUMS diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 docile (1.4.1) sha256=96159be799bfa73cdb721b840e9802126e4e03dfc26863db73647204c727f21e + dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -435,19 +743,27 @@ CHECKSUMS gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f + go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 + json-merge (7.1.0) kettle-dev (2.3.7) sha256=eb370113cd030d03cbe2d33b31c99858951017e5ad21a17e9ed89dc3770028ee + kettle-drift (1.0.6) sha256=46eda08fa4411d1f3c6682a95eef1c9df4e94611b3949f49d4c7b43c0ed356a3 + kettle-jem (7.1.0) kettle-rb (0.1.4) sha256=9cef7ce4f7021666b7222292f29051e51eaf042e8a5db11f3f4dd72f74243fc1 kettle-soup-cover (1.1.3) sha256=a373827da22a7131d093afd32945e5b7d7a10a01ebfdded8fd2cb8230d69c8ad kettle-test (2.0.11) sha256=c710c90f7ab79d51f9452f0c09f5f90657e7a893f63583855c164d0b1b107ab2 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa + kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 + markdown-merge (7.1.0) + markly (0.16.0) sha256=6f70d79e385b1efc9e171f74c81628826259039fe6c778e03c3924c71dac5511 + markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-aarch64-linux-gnu) sha256=1269fb644a6de405057a53dd5c762b1209b43ca7424f839454d3dbc677c31a8f nokogiri (1.19.4-aarch64-linux-musl) sha256=35c65b9ce72b3bb03207bdbe7067915019dc18c1b9b59139684bd6690fdd01af @@ -461,10 +777,14 @@ CHECKSUMS parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 + parslet-toml-merge (7.1.0) + plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 + prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 + psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a @@ -498,9 +818,12 @@ CHECKSUMS rubocop-rspec (3.10.2) sha256=0b3e2ecc592cd10ecbf0095bb58d1e357905276e069643523cc19eb7495f65e2 rubocop-ruby3_2 (3.0.7) sha256=f53dd6d286fb05186214fc6ec116783e7f837030918e8931c05de773e98f8466 rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 + ruby-merge (7.1.0) ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 + rust-merge (7.1.0) + service_actor (3.9.4) sha256=e63b523630b9a7e62959b2a90113b08d2565b5de9c148557b281ef847c9539ce silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (0.22.0) sha256=fe2622c7834ff23b98066bb0a854284b2729a569ac659f82621fc22ef36213a5 simplecov-cobertura (3.2.0) sha256=70d702658677fcb20e5aceb6915ccf8bc62ff2ccd38b62b3ad5c9db5c0888740 @@ -509,6 +832,7 @@ CHECKSUMS simplecov-lcov (0.9.0) sha256=7a77a31e200a595ed4b0249493056efd0c920601f53d2ef135ca34ee796346cd simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_json_formatter (0.1.4) sha256=529418fbe8de1713ac2b2d612aa3daa56d316975d307244399fa4838c601b428 + smorg-rb (7.1.0) sorbet-runtime (0.6.13347) sha256=54e7221d9f4b63f58aec79f3043752a9ba7810347c6ae0d903531591cc2d5f01 standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b @@ -522,16 +846,21 @@ CHECKSUMS timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.4) sha256=33b926958f504525bba3ed511ab66fbcbf8ef30390815e931436b30f27ffcad0 + toml (0.3.0) sha256=0a91d0f76a9036e84e44f95693b12f58d358c1df3ac8e3b5271f2056ecc6e4b9 + toml-merge (7.1.0) + toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-aarch64-linux) sha256=55ffc7c87868cb45658338363d9eba51b4a8b0259aa88e4de368d2bd1d52fea4 tree_sitter_language_pack (1.13.3-arm64-darwin) sha256=bc2498db605f212a1dbd2465ed3f65190d7da786f6ed5d30fcf958121aeb4a5c tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 + typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 + yaml-merge (7.1.0) yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd @@ -539,6 +868,7 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 + zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH From 02ca7c9986ac62b81c1e0658b1394c0276b74ce6 Mon Sep 17 00:00:00 2001 From: "Peter H. Boling" Date: Tue, 21 Jul 2026 13:52:54 -0600 Subject: [PATCH 126/188] =?UTF-8?q?=F0=9F=8E=A8=20Template=20bootstrap=20b?= =?UTF-8?q?y=20kettle-jem=20v7.1.0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gems/ast-merge/.rubocop_gradual.lock | 2942 +++++++++++++++++ gems/ast-merge/Gemfile.lock | 20 +- gems/bash-merge/Gemfile.lock | 325 +- gems/dotenv-merge/Gemfile.lock | 345 +- gems/html-merge/Gemfile.lock | 453 ++- gems/plain-merge/Gemfile.lock | 351 +- gems/rbs-merge/.kettle-drift.lock | 268 +- .../rbs-merge/.structuredmerge/kettle-jem.yml | 53 + gems/rbs-merge/Gemfile | 72 +- gems/rbs-merge/Gemfile.lock | 324 +- gems/rbs-merge/Rakefile | 18 +- gems/rbs-merge/lib/rbs/merge/version.rb | 2 +- 12 files changed, 3853 insertions(+), 1320 deletions(-) create mode 100644 gems/ast-merge/.rubocop_gradual.lock diff --git a/gems/ast-merge/.rubocop_gradual.lock b/gems/ast-merge/.rubocop_gradual.lock new file mode 100644 index 000000000..a8a3ed8e6 --- /dev/null +++ b/gems/ast-merge/.rubocop_gradual.lock @@ -0,0 +1,2942 @@ +{ + ".simplecov:3463276878": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "Rakefile:429706125": [ + [18, 121, 17, "Layout/LineLength: Line is too long. [137/120]", 174264873], + [79, 3, 1023, "Metrics/BlockLength: Block has too many lines. [32/25]", 54868638], + [163, 121, 22, "Layout/LineLength: Line is too long. [142/120]", 1367093088], + [166, 121, 18, "Layout/LineLength: Line is too long. [138/120]", 3881946477] + ], + "ast-merge.gemspec:1182320030": [ + [16, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1168797721], + [129, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 2821357214], + [144, 121, 50, "Layout/LineLength: Line is too long. [170/120]", 3888612416], + [145, 121, 29, "Layout/LineLength: Line is too long. [149/120]", 981994949], + [152, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 4229808912] + ], + "gemfiles/modular/benchmark/r4/v0.5.gemfile:5381": [ + [1, 1, 0, "Lint/EmptyFile: Empty file detected.", 5381] + ], + "gemfiles/modular/benchmark/vHEAD.gemfile:5381": [ + [1, 1, 0, "Lint/EmptyFile: Empty file detected.", 5381], + [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381] + ], + "gemfiles/modular/cgi/r4/v0.5.gemfile:367169322": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/cgi/vHEAD.gemfile:2729540777": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/erb/r2/v3.0.gemfile:1688285565": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/erb/r3/v5.0.gemfile:2394062339": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/erb/r4/v5.0.gemfile:2394062339": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/erb/vHEAD.gemfile:981929959": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/mutex_m/r2/v0.3.gemfile:4055275004": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/mutex_m/r3/v0.3.gemfile:4055275004": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/mutex_m/r4/v0.3.gemfile:4055275004": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/mutex_m/vHEAD.gemfile:556854763": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/rspec.gemfile:2263543889": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/stringio/r2/v3.0.gemfile:821604304": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/stringio/r3/v3.0.gemfile:821604304": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/stringio/r4/v3.0.gemfile:821604304": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/stringio/vHEAD.gemfile:1045839691": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/webrick/r4/v1.9.gemfile:3092661193": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/webrick/vHEAD.gemfile:3867684682": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/x_std_libs.gemfile:2324400122": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/x_std_libs/r2/libs.gemfile:36276542": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] + ], + "gemfiles/modular/x_std_libs/r3/libs.gemfile:4030570297": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] + ], + "gemfiles/modular/x_std_libs/r4/libs.gemfile:732451732": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] + ], + "gemfiles/modular/x_std_libs/vHEAD.gemfile:2390363993": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] + ], + "lib/ast-merge.rb:3005639624": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`ast-merge.rb`) should use snake_case.", 5381] + ], + "lib/ast/merge.rb:3962755273": [ + [11, 3, 12, "Style/Documentation: Missing top-level documentation comment for `module Ast::Merge`.", 2866359175], + [11, 3, 270298, "Metrics/ModuleLength: Module has too many lines. [5705/100]", 2774418219], + [22, 5, 16, "Style/Documentation: Missing top-level documentation comment for `class Ast::Merge::ParseError`.", 362242086], + [33, 7, 362, "Metrics/AbcSize: Assignment Branch Condition size for `build_message` is too high. [<2, 16, 6> 17.2/17]", 3988736327], + [47, 5, 31, "Style/Documentation: Missing top-level documentation comment for `class Ast::Merge::PlaceholderCollisionError`.", 218924302], + [164, 7, 337, "Metrics/MethodLength: Method has too many lines. [11/10]", 2388996629], + [181, 7, 327, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `to_h` is too high. [8/7]", 979795121], + [312, 7, 383, "Metrics/MethodLength: Method has too many lines. [11/10]", 634650261], + [476, 121, 29, "Layout/LineLength: Line is too long. [149/120]", 3450568485], + [477, 7, 461, "Metrics/MethodLength: Method has too many lines. [12/10]", 43929779], + [494, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 1299979089], + [495, 7, 377, "Metrics/MethodLength: Method has too many lines. [11/10]", 3704151253], + [511, 121, 39, "Layout/LineLength: Line is too long. [159/120]", 85503958], + [512, 7, 447, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `to_h` is too high. [8/7]", 298553749], + [512, 7, 447, "Metrics/MethodLength: Method has too many lines. [12/10]", 298553749], + [541, 121, 25, "Layout/LineLength: Line is too long. [145/120]", 1441148616], + [542, 7, 453, "Metrics/MethodLength: Method has too many lines. [14/10]", 1899007021], + [561, 121, 3, "Layout/LineLength: Line is too long. [123/120]", 193342990], + [562, 7, 400, "Metrics/MethodLength: Method has too many lines. [11/10]", 298553749], + [591, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5860750], + [592, 7, 411, "Metrics/MethodLength: Method has too many lines. [12/10]", 2893925621], + [609, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 3137791633], + [610, 7, 454, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `to_h` is too high. [8/7]", 298553749], + [610, 7, 454, "Metrics/MethodLength: Method has too many lines. [12/10]", 298553749], + [669, 7, 385, "Metrics/MethodLength: Method has too many lines. [11/10]", 794265461], + [706, 7, 419, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `to_h` is too high. [10/7]", 3313546353], + [706, 7, 419, "Metrics/PerceivedComplexity: Perceived complexity for `to_h` is too high. [10/8]", 3313546353], + [756, 121, 11, "Layout/LineLength: Line is too long. [131/120]", 398187770], + [768, 121, 40, "Layout/LineLength: Line is too long. [160/120]", 2746783933], + [815, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5860841], + [823, 121, 156, "Layout/LineLength: Line is too long. [276/120]", 1149525480], + [828, 121, 24, "Layout/LineLength: Line is too long. [144/120]", 2538424426], + [840, 121, 22, "Layout/LineLength: Line is too long. [142/120]", 2285382915], + [850, 121, 7, "Layout/LineLength: Line is too long. [127/120]", 3962419360], + [863, 121, 11, "Layout/LineLength: Line is too long. [131/120]", 398187770], + [865, 121, 16, "Layout/LineLength: Line is too long. [136/120]", 3195178507], + [869, 121, 85, "Layout/LineLength: Line is too long. [205/120]", 4238980637], + [871, 121, 13, "Layout/LineLength: Line is too long. [133/120]", 2678411233], + [873, 121, 39, "Layout/LineLength: Line is too long. [159/120]", 4028520110], + [884, 121, 110, "Layout/LineLength: Line is too long. [230/120]", 3837814921], + [898, 5, 2283, "Metrics/MethodLength: Method has too many lines. [57/10]", 2282416447], + [958, 5, 2654, "Metrics/MethodLength: Method has too many lines. [63/10]", 2491520565], + [1009, 121, 9, "Layout/LineLength: Line is too long. [129/120]", 1823519875], + [1018, 121, 21, "Layout/LineLength: Line is too long. [141/120]", 1874311968], + [1024, 5, 10660, "Metrics/AbcSize: Assignment Branch Condition size for `ruby_downstream_merge_gem_feature_matrix` is too high. [<0, 21, 0> 21/17]", 2277322577], + [1024, 5, 10660, "Metrics/MethodLength: Method has too many lines. [248/10]", 2277322577], + [1275, 5, 1546, "Metrics/MethodLength: Method has too many lines. [37/10]", 208933754], + [1309, 121, 33, "Layout/LineLength: Line is too long. [153/120]", 2658452668], + [1315, 5, 4206, "Metrics/MethodLength: Method has too many lines. [96/10]", 1997530776], + [1392, 121, 5, "Layout/LineLength: Line is too long. [125/120]", 183246985], + [1408, 121, 15, "Layout/LineLength: Line is too long. [135/120]", 3268438356], + [1414, 5, 1598, "Metrics/MethodLength: Method has too many lines. [46/10]", 849757258], + [1457, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1323237892], + [1463, 5, 1164, "Metrics/MethodLength: Method has too many lines. [36/10]", 1477831421], + [1496, 121, 13, "Layout/LineLength: Line is too long. [133/120]", 931876829], + [1502, 5, 1699, "Metrics/MethodLength: Method has too many lines. [43/10]", 1125544678], + [1548, 5, 1016, "Metrics/MethodLength: Method has too many lines. [27/10]", 2194427985], + [1578, 5, 1058, "Metrics/MethodLength: Method has too many lines. [30/10]", 47860722], + [1611, 5, 1186, "Metrics/MethodLength: Method has too many lines. [31/10]", 676863486], + [1639, 121, 21, "Layout/LineLength: Line is too long. [141/120]", 2689509078], + [1645, 5, 1517, "Metrics/MethodLength: Method has too many lines. [41/10]", 3855445172], + [1658, 121, 24, "Layout/LineLength: Line is too long. [144/120]", 817380904], + [1683, 121, 26, "Layout/LineLength: Line is too long. [146/120]", 409671963], + [1689, 5, 2116, "Metrics/MethodLength: Method has too many lines. [61/10]", 524104794], + [1753, 5, 820, "Metrics/MethodLength: Method has too many lines. [12/10]", 1888457180], + [1753, 37, 298, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [10/5]", 789483382], + [1754, 121, 100, "Layout/LineLength: Line is too long. [220/120]", 3288750271], + [1769, 5, 3595, "Metrics/AbcSize: Assignment Branch Condition size for `initial_profile_promotion_policy` is too high. [<9, 20, 0> 21.93/17]", 83685787], + [1769, 5, 3595, "Metrics/MethodLength: Method has too many lines. [77/10]", 83685787], + [1849, 5, 768, "Metrics/MethodLength: Method has too many lines. [17/10]", 314059802], + [1870, 5, 1493, "Metrics/AbcSize: Assignment Branch Condition size for `evaluate_profile_selection_requirement` is too high. [<7, 23, 9> 25.67/17]", 3177555163], + [1870, 5, 1493, "Metrics/MethodLength: Method has too many lines. [29/10]", 3177555163], + [1871, 121, 18, "Layout/LineLength: Line is too long. [138/120]", 2145168012], + [1878, 121, 7, "Layout/LineLength: Line is too long. [127/120]", 683002336], + [1912, 5, 985, "Metrics/AbcSize: Assignment Branch Condition size for `profile_promotion_blocking_reasons` is too high. [<4, 25, 13> 28.46/17]", 1146627465], + [1912, 5, 985, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `profile_promotion_blocking_reasons` is too high. [10/7]", 1146627465], + [1912, 5, 985, "Metrics/MethodLength: Method has too many lines. [18/10]", 1146627465], + [1912, 5, 985, "Metrics/PerceivedComplexity: Perceived complexity for `profile_promotion_blocking_reasons` is too high. [10/8]", 1146627465], + [1933, 5, 3173, "Metrics/AbcSize: Assignment Branch Condition size for `validate_language_backend_profile` is too high. [<25, 68, 20> 75.16/17]", 2100389324], + [1933, 5, 3173, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `validate_language_backend_profile` is too high. [21/7]", 2100389324], + [1933, 5, 3173, "Metrics/MethodLength: Method has too many lines. [60/10]", 2100389324], + [1933, 5, 3173, "Metrics/PerceivedComplexity: Perceived complexity for `validate_language_backend_profile` is too high. [23/8]", 2100389324], + [2005, 5, 1523, "Metrics/AbcSize: Assignment Branch Condition size for `validate_backend_inventory` is too high. [<13, 38, 13> 42.21/17]", 1899037537], + [2005, 5, 1523, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `validate_backend_inventory` is too high. [13/7]", 1899037537], + [2005, 5, 1523, "Metrics/MethodLength: Method has too many lines. [25/10]", 1899037537], + [2005, 5, 1523, "Metrics/PerceivedComplexity: Perceived complexity for `validate_backend_inventory` is too high. [13/8]", 1899037537], + [2048, 5, 906, "Metrics/MethodLength: Method has too many lines. [20/10]", 3137959843], + [2071, 5, 2744, "Metrics/AbcSize: Assignment Branch Condition size for `detect_raw_merge_inconsistencies` is too high. [<8, 43, 21> 48.52/17]", 3717440692], + [2071, 5, 2744, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `detect_raw_merge_inconsistencies` is too high. [17/7]", 3717440692], + [2071, 5, 2744, "Metrics/MethodLength: Method has too many lines. [53/10]", 3717440692], + [2071, 5, 2744, "Metrics/PerceivedComplexity: Perceived complexity for `detect_raw_merge_inconsistencies` is too high. [17/8]", 3717440692], + [2086, 7, 1894, "Metrics/BlockLength: Block has too many lines. [33/25]", 758887611], + [2132, 5, 762, "Metrics/MethodLength: Method has too many lines. [11/10]", 3021402342], + [2146, 5, 490, "Metrics/MethodLength: Method has too many lines. [11/10]", 578473475], + [2160, 5, 881, "Metrics/AbcSize: Assignment Branch Condition size for `execute_independent_commutative_insertions` is too high. [<6, 16, 7> 18.47/17]", 259417386], + [2160, 5, 881, "Metrics/MethodLength: Method has too many lines. [21/10]", 259417386], + [2187, 5, 1107, "Metrics/AbcSize: Assignment Branch Condition size for `execute_independent_keyed_member_edits` is too high. [<10, 31, 15> 35.86/17]", 4271501385], + [2187, 5, 1107, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `execute_independent_keyed_member_edits` is too high. [14/7]", 4271501385], + [2187, 5, 1107, "Metrics/MethodLength: Method has too many lines. [24/10]", 4271501385], + [2187, 5, 1107, "Metrics/PerceivedComplexity: Perceived complexity for `execute_independent_keyed_member_edits` is too high. [14/8]", 4271501385], + [2231, 5, 3149, "Metrics/AbcSize: Assignment Branch Condition size for `parse_compact_ruleset` is too high. [<16, 68, 24> 73.86/17]", 3149098803], + [2231, 5, 3149, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `parse_compact_ruleset` is too high. [22/7]", 3149098803], + [2231, 5, 3149, "Metrics/MethodLength: Method has too many lines. [67/10]", 3149098803], + [2231, 5, 3149, "Metrics/PerceivedComplexity: Perceived complexity for `parse_compact_ruleset` is too high. [23/8]", 3149098803], + [2237, 7, 2544, "Metrics/BlockLength: Block has too many lines. [50/25]", 2484860466], + [2264, 121, 3, "Layout/LineLength: Line is too long. [123/120]", 193420054], + [2310, 5, 2658, "Metrics/AbcSize: Assignment Branch Condition size for `compact_ruleset_feature_profile` is too high. [<11, 67, 38> 77.81/17]", 4022599673], + [2310, 5, 2658, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `compact_ruleset_feature_profile` is too high. [29/7]", 4022599673], + [2310, 5, 2658, "Metrics/MethodLength: Method has too many lines. [66/10]", 4022599673], + [2310, 5, 2658, "Metrics/PerceivedComplexity: Perceived complexity for `compact_ruleset_feature_profile` is too high. [16/8]", 4022599673], + [2328, 7, 2243, "Metrics/BlockLength: Block has too many lines. [47/25]", 965041772], + [2395, 5, 2733, "Metrics/AbcSize: Assignment Branch Condition size for `classify_template_target_path` is too high. [<4, 36, 23> 42.91/17]", 3661828596], + [2395, 5, 2733, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `classify_template_target_path` is too high. [21/7]", 3661828596], + [2395, 5, 2733, "Metrics/MethodLength: Method has too many lines. [39/10]", 3661828596], + [2395, 5, 2733, "Metrics/PerceivedComplexity: Perceived complexity for `classify_template_target_path` is too high. [17/8]", 3661828596], + [2427, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5858795], + [2441, 5, 416, "Metrics/MethodLength: Method has too many lines. [12/10]", 1388641773], + [2484, 5, 388, "Metrics/MethodLength: Method has too many lines. [12/10]", 2360583514], + [2513, 5, 820, "Metrics/MethodLength: Method has too many lines. [13/10]", 354674808], + [2529, 5, 929, "Metrics/AbcSize: Assignment Branch Condition size for `enrich_template_plan_entries` is too high. [<9, 12, 10> 18.03/17]", 2666747528], + [2529, 5, 929, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `enrich_template_plan_entries` is too high. [9/7]", 2666747528], + [2529, 5, 929, "Metrics/MethodLength: Method has too many lines. [19/10]", 2666747528], + [2529, 5, 929, "Metrics/PerceivedComplexity: Perceived complexity for `enrich_template_plan_entries` is too high. [10/8]", 2666747528], + [2552, 5, 1245, "Metrics/AbcSize: Assignment Branch Condition size for `enrich_template_plan_entries_with_token_state` is too high. [<11, 23, 14> 29.09/17]", 1507113977], + [2552, 5, 1245, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `enrich_template_plan_entries_with_token_state` is too high. [13/7]", 1507113977], + [2552, 5, 1245, "Metrics/MethodLength: Method has too many lines. [19/10]", 1507113977], + [2552, 5, 1245, "Metrics/PerceivedComplexity: Perceived complexity for `enrich_template_plan_entries_with_token_state` is too high. [13/8]", 1507113977], + [2576, 5, 1353, "Metrics/AbcSize: Assignment Branch Condition size for `prepare_template_entries` is too high. [<6, 18, 11> 21.93/17]", 2774310942], + [2576, 5, 1353, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `prepare_template_entries` is too high. [11/7]", 2774310942], + [2576, 5, 1353, "Metrics/MethodLength: Method has too many lines. [24/10]", 2774310942], + [2576, 5, 1353, "Metrics/PerceivedComplexity: Perceived complexity for `prepare_template_entries` is too high. [12/8]", 2774310942], + [2606, 5, 1494, "Metrics/AbcSize: Assignment Branch Condition size for `plan_template_execution` is too high. [<8, 22, 17> 28.93/17]", 3876421385], + [2606, 5, 1494, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `plan_template_execution` is too high. [14/7]", 3876421385], + [2606, 5, 1494, "Metrics/MethodLength: Method has too many lines. [29/10]", 3876421385], + [2606, 5, 1494, "Metrics/PerceivedComplexity: Perceived complexity for `plan_template_execution` is too high. [15/8]", 3876421385], + [2607, 7, 1421, "Metrics/BlockLength: Block has too many lines. [27/25]", 2887810383], + [2640, 5, 822, "Metrics/ParameterLists: Method has too many optional parameters. [5/3]", 2749235529], + [2640, 37, 220, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [9/5]", 447165880], + [2641, 121, 29, "Layout/LineLength: Line is too long. [149/120]", 518382509], + [2655, 5, 2060, "Metrics/AbcSize: Assignment Branch Condition size for `preview_template_execution` is too high. [<11, 42, 26> 50.61/17]", 2270817206], + [2655, 5, 2060, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `preview_template_execution` is too high. [25/7]", 2270817206], + [2655, 5, 2060, "Metrics/MethodLength: Method has too many lines. [39/10]", 2270817206], + [2655, 5, 2060, "Metrics/PerceivedComplexity: Perceived complexity for `preview_template_execution` is too high. [23/8]", 2270817206], + [2665, 7, 1809, "Metrics/BlockLength: Block has too many lines. [28/25]", 310337564], + [2703, 5, 2513, "Metrics/AbcSize: Assignment Branch Condition size for `apply_template_execution` is too high. [<14, 50, 25> 57.63/17]", 177708331], + [2703, 5, 2513, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `apply_template_execution` is too high. [26/7]", 177708331], + [2703, 5, 2513, "Metrics/MethodLength: Method has too many lines. [50/10]", 177708331], + [2703, 5, 2513, "Metrics/PerceivedComplexity: Perceived complexity for `apply_template_execution` is too high. [23/8]", 177708331], + [2714, 7, 2239, "Metrics/BlockLength: Block has too many lines. [38/25]", 1651205014], + [2764, 5, 1696, "Metrics/AbcSize: Assignment Branch Condition size for `evaluate_template_tree_convergence` is too high. [<11, 29, 17> 35.37/17]", 2507998041], + [2764, 5, 1696, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `evaluate_template_tree_convergence` is too high. [17/7]", 2507998041], + [2764, 5, 1696, "Metrics/MethodLength: Method has too many lines. [35/10]", 2507998041], + [2764, 5, 1696, "Metrics/ParameterLists: Method has too many optional parameters. [5/3]", 2507998041], + [2764, 5, 1696, "Metrics/PerceivedComplexity: Perceived complexity for `evaluate_template_tree_convergence` is too high. [17/8]", 2507998041], + [2764, 43, 198, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [8/5]", 4214374277], + [2765, 121, 13, "Layout/LineLength: Line is too long. [133/120]", 2983874608], + [2807, 5, 688, "Metrics/MethodLength: Method has too many lines. [15/10]", 3064253784], + [2807, 5, 688, "Metrics/ParameterLists: Method has too many optional parameters. [5/3]", 3064253784], + [2807, 36, 216, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [8/5]", 448029307], + [2808, 121, 31, "Layout/LineLength: Line is too long. [151/120]", 3840139076], + [2851, 5, 664, "Metrics/MethodLength: Method has too many lines. [13/10]", 995637868], + [2851, 5, 664, "Metrics/ParameterLists: Method has too many optional parameters. [5/3]", 995637868], + [2851, 53, 202, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [7/5]", 4227116196], + [2852, 121, 48, "Layout/LineLength: Line is too long. [168/120]", 418683952], + [2869, 5, 649, "Metrics/MethodLength: Method has too many lines. [13/10]", 1831524792], + [2869, 5, 649, "Metrics/ParameterLists: Method has too many optional parameters. [5/3]", 1831524792], + [2869, 54, 178, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [7/5]", 2962381850], + [2870, 121, 24, "Layout/LineLength: Line is too long. [144/120]", 3690915627], + [2887, 5, 1280, "Metrics/AbcSize: Assignment Branch Condition size for `apply_template_tree_execution_to_directory` is too high. [<6, 16, 6> 18.11/17]", 305449363], + [2887, 5, 1280, "Metrics/MethodLength: Method has too many lines. [23/10]", 305449363], + [2887, 5, 1280, "Metrics/ParameterLists: Method has too many optional parameters. [5/3]", 305449363], + [2887, 51, 200, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [7/5]", 1352434212], + [2888, 121, 46, "Layout/LineLength: Line is too long. [166/120]", 1139621482], + [2916, 5, 2199, "Metrics/AbcSize: Assignment Branch Condition size for `report_template_tree_run` is too high. [<15, 42, 31> 54.31/17]", 975627723], + [2916, 5, 2199, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `report_template_tree_run` is too high. [25/7]", 975627723], + [2916, 5, 2199, "Metrics/MethodLength: Method has too many lines. [38/10]", 975627723], + [2916, 5, 2199, "Metrics/PerceivedComplexity: Perceived complexity for `report_template_tree_run` is too high. [26/8]", 975627723], + [2960, 5, 1515, "Metrics/AbcSize: Assignment Branch Condition size for `report_template_directory_apply` is too high. [<13, 35, 21> 42.84/17]", 3710254295], + [2960, 5, 1515, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `report_template_directory_apply` is too high. [17/7]", 3710254295], + [2960, 5, 1515, "Metrics/MethodLength: Method has too many lines. [26/10]", 3710254295], + [2960, 5, 1515, "Metrics/PerceivedComplexity: Perceived complexity for `report_template_directory_apply` is too high. [17/8]", 3710254295], + [2975, 20, 1, "Style/DoubleNegation: Avoid the use of double negation (`!!`).", 177540], + [2992, 5, 1656, "Metrics/AbcSize: Assignment Branch Condition size for `report_template_directory_plan` is too high. [<11, 24, 25> 36.36/17]", 2946319293], + [2992, 5, 1656, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `report_template_directory_plan` is too high. [18/7]", 2946319293], + [2992, 5, 1656, "Metrics/MethodLength: Method has too many lines. [36/10]", 2946319293], + [2992, 5, 1656, "Metrics/PerceivedComplexity: Perceived complexity for `report_template_directory_plan` is too high. [16/8]", 2946319293], + [3064, 7, 9, "Style/MultilineBlockChain: Avoid multi-line chains of blocks.", 3648222389], + [3085, 5, 410, "Metrics/MethodLength: Method has too many lines. [12/10]", 248324428], + [3091, 7, 11, "Style/MultilineBlockChain: Avoid multi-line chains of blocks.", 848344986], + [3135, 5, 712, "Metrics/MethodLength: Method has too many lines. [12/10]", 2500743043], + [3135, 27, 178, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [9/5]", 873705194], + [3135, 121, 10, "Layout/LineLength: Line is too long. [130/120]", 3023611470], + [3161, 42, 167, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 2002181571], + [3174, 5, 1097, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `structured_edit_selection_profile` is too high. [8/7]", 1149325233], + [3174, 5, 1097, "Metrics/MethodLength: Method has too many lines. [14/10]", 1149325233], + [3174, 42, 311, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [11/5]", 3814063337], + [3175, 121, 16, "Layout/LineLength: Line is too long. [136/120]", 198450264], + [3188, 34, 47, "Style/SafeNavigation: Use safe navigation (`&.`) instead of checking if an object exists before calling the method.", 3204815976], + [3193, 5, 869, "Metrics/MethodLength: Method has too many lines. [11/10]", 83957392], + [3193, 41, 250, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [8/5]", 1486072775], + [3194, 121, 13, "Layout/LineLength: Line is too long. [133/120]", 1967186495], + [3204, 36, 47, "Style/SafeNavigation: Use safe navigation (`&.`) instead of checking if an object exists before calling the method.", 3204815976], + [3209, 5, 1156, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `structured_edit_match_profile` is too high. [10/7]", 4112674787], + [3209, 5, 1156, "Metrics/MethodLength: Method has too many lines. [15/10]", 4112674787], + [3209, 5, 1156, "Metrics/PerceivedComplexity: Perceived complexity for `structured_edit_match_profile` is too high. [10/8]", 4112674787], + [3209, 38, 321, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [12/5]", 823565876], + [3210, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5859667], + [3211, 121, 7, "Layout/LineLength: Line is too long. [127/120]", 3673982236], + [3229, 5, 933, "Metrics/MethodLength: Method has too many lines. [14/10]", 2099388915], + [3229, 37, 319, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [12/5]", 250907892], + [3230, 121, 1, "Layout/LineLength: Line is too long. [121/120]", 177545], + [3231, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 4154814685], + [3248, 5, 907, "Metrics/MethodLength: Method has too many lines. [12/10]", 2242846328], + [3248, 42, 275, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [9/5]", 246196330], + [3249, 121, 13, "Layout/LineLength: Line is too long. [133/120]", 1439117336], + [3265, 5, 1057, "Metrics/MethodLength: Method has too many lines. [14/10]", 2891607970], + [3265, 44, 323, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [11/5]", 1386547750], + [3266, 121, 19, "Layout/LineLength: Line is too long. [139/120]", 1676243675], + [3267, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 4154814685], + [3284, 5, 1375, "Metrics/AbcSize: Assignment Branch Condition size for `structured_edit_request` is too high. [<11, 25, 10> 29.09/17]", 4153786554], + [3284, 5, 1375, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `structured_edit_request` is too high. [11/7]", 4153786554], + [3284, 5, 1375, "Metrics/MethodLength: Method has too many lines. [16/10]", 4153786554], + [3284, 5, 1375, "Metrics/PerceivedComplexity: Perceived complexity for `structured_edit_request` is too high. [11/8]", 4153786554], + [3284, 32, 370, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [13/5]", 2381882467], + [3285, 121, 1, "Layout/LineLength: Line is too long. [121/120]", 177545], + [3306, 5, 728, "Metrics/MethodLength: Method has too many lines. [11/10]", 4026157473], + [3306, 31, 175, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [8/5]", 773121544], + [3338, 5, 597, "Metrics/MethodLength: Method has too many lines. [11/10]", 4143495860], + [3377, 5, 577, "Metrics/MethodLength: Method has too many lines. [11/10]", 4169131743], + [3392, 5, 1011, "Metrics/AbcSize: Assignment Branch Condition size for `structured_edit_execution_report` is too high. [<7, 16, 7> 18.81/17]", 876221899], + [3392, 5, 1011, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `structured_edit_execution_report` is too high. [8/7]", 876221899], + [3392, 5, 1011, "Metrics/MethodLength: Method has too many lines. [12/10]", 876221899], + [3392, 41, 245, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [9/5]", 2484440861], + [3393, 121, 55, "Layout/LineLength: Line is too long. [175/120]", 4036992717], + [3418, 55, 170, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [7/5]", 668161765], + [3441, 5, 819, "Metrics/MethodLength: Method has too many lines. [12/10]", 2287133436], + [3441, 56, 217, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [9/5]", 3198032135], + [3442, 121, 51, "Layout/LineLength: Line is too long. [171/120]", 3526181051], + [3475, 5, 663, "Metrics/MethodLength: Method has too many lines. [11/10]", 1853778635], + [3484, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 2162352564], + [3516, 5, 663, "Metrics/MethodLength: Method has too many lines. [11/10]", 1132214891], + [3525, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 2162352564], + [3547, 5, 678, "Metrics/MethodLength: Method has too many lines. [11/10]", 556747511], + [3556, 121, 9, "Layout/LineLength: Line is too long. [129/120]", 1808630920], + [3578, 5, 708, "Metrics/MethodLength: Method has too many lines. [11/10]", 3590891170], + [3587, 121, 15, "Layout/LineLength: Line is too long. [135/120]", 1367166441], + [3610, 5, 678, "Metrics/MethodLength: Method has too many lines. [11/10]", 689748855], + [3619, 121, 9, "Layout/LineLength: Line is too long. [129/120]", 1808630920], + [3641, 5, 708, "Metrics/MethodLength: Method has too many lines. [11/10]", 1478642210], + [3650, 121, 15, "Layout/LineLength: Line is too long. [135/120]", 1367166441], + [3674, 5, 663, "Metrics/MethodLength: Method has too many lines. [11/10]", 239506091], + [3683, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 2162352564], + [3705, 5, 693, "Metrics/MethodLength: Method has too many lines. [11/10]", 3803476550], + [3714, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 926808928], + [3737, 5, 728, "Metrics/MethodLength: Method has too many lines. [11/10]", 748161230], + [3746, 121, 21, "Layout/LineLength: Line is too long. [141/120]", 2807086497], + [3768, 5, 758, "Metrics/MethodLength: Method has too many lines. [11/10]", 3900524558], + [3777, 121, 27, "Layout/LineLength: Line is too long. [147/120]", 3463884836], + [3801, 5, 748, "Metrics/MethodLength: Method has too many lines. [11/10]", 2076716686], + [3810, 121, 25, "Layout/LineLength: Line is too long. [145/120]", 609414023], + [3832, 5, 778, "Metrics/MethodLength: Method has too many lines. [11/10]", 867958318], + [3836, 121, 3, "Layout/LineLength: Line is too long. [123/120]", 193343749], + [3841, 121, 31, "Layout/LineLength: Line is too long. [151/120]", 1202823007], + [3865, 5, 728, "Metrics/MethodLength: Method has too many lines. [11/10]", 2078323790], + [3874, 121, 21, "Layout/LineLength: Line is too long. [141/120]", 2807086497], + [3896, 5, 758, "Metrics/MethodLength: Method has too many lines. [11/10]", 121025422], + [3905, 121, 27, "Layout/LineLength: Line is too long. [147/120]", 3463884836], + [3927, 5, 733, "Metrics/MethodLength: Method has too many lines. [11/10]", 1216456558], + [3936, 121, 22, "Layout/LineLength: Line is too long. [142/120]", 145839927], + [3958, 5, 763, "Metrics/MethodLength: Method has too many lines. [11/10]", 2946525998], + [3967, 121, 28, "Layout/LineLength: Line is too long. [148/120]", 275709226], + [3991, 5, 768, "Metrics/MethodLength: Method has too many lines. [11/10]", 3281402414], + [3995, 121, 1, "Layout/LineLength: Line is too long. [121/120]", 177656], + [4000, 121, 29, "Layout/LineLength: Line is too long. [149/120]", 1427340581], + [4037, 121, 7, "Layout/LineLength: Line is too long. [127/120]", 3673982236], + [4094, 121, 3, "Layout/LineLength: Line is too long. [123/120]", 193417070], + [4105, 121, 7, "Layout/LineLength: Line is too long. [127/120]", 2768444], + [4112, 121, 32, "Layout/LineLength: Line is too long. [152/120]", 3833204035], + [4120, 5, 863, "Metrics/MethodLength: Method has too many lines. [11/10]", 3731153486], + [4124, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 4054494590], + [4129, 121, 48, "Layout/LineLength: Line is too long. [168/120]", 2084326338], + [4135, 121, 36, "Layout/LineLength: Line is too long. [156/120]", 4201858364], + [4139, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5861122], + [4143, 5, 873, "Metrics/MethodLength: Method has too many lines. [11/10]", 1866057614], + [4147, 121, 22, "Layout/LineLength: Line is too long. [142/120]", 3893180930], + [4152, 121, 50, "Layout/LineLength: Line is too long. [170/120]", 863421408], + [4158, 121, 40, "Layout/LineLength: Line is too long. [160/120]", 3247130491], + [4162, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1171438608], + [4166, 5, 883, "Metrics/MethodLength: Method has too many lines. [11/10]", 2352924462], + [4166, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5860841], + [4167, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5861334], + [4170, 121, 24, "Layout/LineLength: Line is too long. [144/120]", 465221046], + [4175, 121, 52, "Layout/LineLength: Line is too long. [172/120]", 1922522532], + [4191, 121, 44, "Layout/LineLength: Line is too long. [164/120]", 4067226670], + [4195, 121, 10, "Layout/LineLength: Line is too long. [130/120]", 2033573170], + [4199, 5, 893, "Metrics/MethodLength: Method has too many lines. [11/10]", 1633175534], + [4199, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2087926422], + [4200, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2087421565], + [4203, 121, 26, "Layout/LineLength: Line is too long. [146/120]", 615151909], + [4208, 121, 54, "Layout/LineLength: Line is too long. [174/120]", 884393597], + [4234, 121, 48, "Layout/LineLength: Line is too long. [168/120]", 417844693], + [4238, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 1233681340], + [4242, 5, 903, "Metrics/MethodLength: Method has too many lines. [11/10]", 3964877742], + [4242, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1165873471], + [4243, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1322899615], + [4246, 121, 28, "Layout/LineLength: Line is too long. [148/120]", 3471008807], + [4251, 121, 56, "Layout/LineLength: Line is too long. [176/120]", 627945471], + [4257, 121, 52, "Layout/LineLength: Line is too long. [172/120]", 2960084092], + [4261, 121, 18, "Layout/LineLength: Line is too long. [138/120]", 2148514258], + [4265, 5, 913, "Metrics/MethodLength: Method has too many lines. [11/10]", 385546958], + [4265, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 2970472935], + [4266, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 3808956371], + [4269, 121, 30, "Layout/LineLength: Line is too long. [150/120]", 3412499338], + [4274, 121, 58, "Layout/LineLength: Line is too long. [178/120]", 3274208144], + [4280, 121, 26, "Layout/LineLength: Line is too long. [146/120]", 4275923717], + [4288, 5, 848, "Metrics/MethodLength: Method has too many lines. [11/10]", 457851502], + [4292, 121, 17, "Layout/LineLength: Line is too long. [137/120]", 413805135], + [4297, 121, 45, "Layout/LineLength: Line is too long. [165/120]", 951908917], + [4303, 121, 10, "Layout/LineLength: Line is too long. [130/120]", 1859200227], + [4311, 5, 808, "Metrics/MethodLength: Method has too many lines. [11/10]", 884695726], + [4315, 121, 9, "Layout/LineLength: Line is too long. [129/120]", 2011807620], + [4320, 121, 37, "Layout/LineLength: Line is too long. [157/120]", 384138219], + [4326, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1176320663], + [4334, 5, 798, "Metrics/MethodLength: Method has too many lines. [11/10]", 1422521838], + [4338, 121, 7, "Layout/LineLength: Line is too long. [127/120]", 3247420006], + [4343, 121, 35, "Layout/LineLength: Line is too long. [155/120]", 1408316702], + [4349, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 938465266], + [4357, 5, 803, "Metrics/MethodLength: Method has too many lines. [11/10]", 2370839950], + [4361, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 74128911], + [4366, 121, 36, "Layout/LineLength: Line is too long. [156/120]", 1364659899], + [4372, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 2059517661], + [4380, 5, 803, "Metrics/MethodLength: Method has too many lines. [11/10]", 3379336814], + [4384, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 74128911], + [4389, 121, 36, "Layout/LineLength: Line is too long. [156/120]", 1364659899], + [4437, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 4281772560], + [4445, 5, 833, "Metrics/MethodLength: Method has too many lines. [11/10]", 3245498510], + [4449, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 3542644754], + [4454, 121, 42, "Layout/LineLength: Line is too long. [162/120]", 1916814773], + [4460, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 859690879], + [4468, 5, 833, "Metrics/MethodLength: Method has too many lines. [11/10]", 4138830126], + [4472, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 3542644754], + [4477, 121, 42, "Layout/LineLength: Line is too long. [162/120]", 1916814773], + [4483, 121, 18, "Layout/LineLength: Line is too long. [138/120]", 3880141603], + [4491, 5, 828, "Metrics/MethodLength: Method has too many lines. [11/10]", 3621010990], + [4495, 121, 13, "Layout/LineLength: Line is too long. [133/120]", 3917260126], + [4500, 121, 41, "Layout/LineLength: Line is too long. [161/120]", 1879260859], + [4506, 121, 22, "Layout/LineLength: Line is too long. [142/120]", 1776611011], + [4514, 5, 838, "Metrics/MethodLength: Method has too many lines. [11/10]", 514585454], + [4518, 121, 15, "Layout/LineLength: Line is too long. [135/120]", 1353518231], + [4523, 121, 43, "Layout/LineLength: Line is too long. [163/120]", 1228459824], + [4529, 121, 38, "Layout/LineLength: Line is too long. [158/120]", 3932349968], + [4533, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2087903307], + [4537, 5, 878, "Metrics/MethodLength: Method has too many lines. [11/10]", 1525737454], + [4537, 121, 1, "Layout/LineLength: Line is too long. [121/120]", 177548], + [4538, 121, 1, "Layout/LineLength: Line is too long. [121/120]", 177538], + [4541, 121, 23, "Layout/LineLength: Line is too long. [143/120]", 2895681070], + [4546, 121, 51, "Layout/LineLength: Line is too long. [171/120]", 4040662298], + [4552, 121, 10, "Layout/LineLength: Line is too long. [130/120]", 66929045], + [4560, 5, 808, "Metrics/MethodLength: Method has too many lines. [11/10]", 1626746606], + [4564, 121, 9, "Layout/LineLength: Line is too long. [129/120]", 2011807620], + [4569, 121, 37, "Layout/LineLength: Line is too long. [157/120]", 384138219], + [4583, 121, 22, "Layout/LineLength: Line is too long. [142/120]", 849230508], + [4591, 5, 838, "Metrics/MethodLength: Method has too many lines. [11/10]", 3531122670], + [4595, 121, 15, "Layout/LineLength: Line is too long. [135/120]", 1353518231], + [4600, 121, 43, "Layout/LineLength: Line is too long. [163/120]", 1228459824], + [4615, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1176320663], + [4623, 5, 798, "Metrics/MethodLength: Method has too many lines. [11/10]", 1118421486], + [4627, 121, 7, "Layout/LineLength: Line is too long. [127/120]", 3247420006], + [4632, 121, 35, "Layout/LineLength: Line is too long. [155/120]", 1408316702], + [4654, 5, 693, "Metrics/MethodLength: Method has too many lines. [11/10]", 1668406662], + [4663, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 926808928], + [4677, 5, 648, "Metrics/MethodLength: Method has too many lines. [11/10]", 3479836893], + [4686, 121, 3, "Layout/LineLength: Line is too long. [123/120]", 193343749], + [4708, 5, 678, "Metrics/MethodLength: Method has too many lines. [11/10]", 3147549879], + [4717, 121, 9, "Layout/LineLength: Line is too long. [129/120]", 1808630920], + [4752, 5, 677, "Metrics/MethodLength: Method has too many lines. [11/10]", 1206941784], + [4761, 121, 7, "Layout/LineLength: Line is too long. [127/120]", 3937819337], + [4784, 5, 672, "Metrics/MethodLength: Method has too many lines. [11/10]", 3634903061], + [4793, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 2162352564], + [4815, 5, 683, "Metrics/MethodLength: Method has too many lines. [11/10]", 3417053461], + [4824, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 926808928], + [4848, 5, 668, "Metrics/MethodLength: Method has too many lines. [11/10]", 1540762726], + [4857, 121, 9, "Layout/LineLength: Line is too long. [129/120]", 1808630920], + [4879, 5, 698, "Metrics/MethodLength: Method has too many lines. [11/10]", 2804825893], + [4888, 121, 15, "Layout/LineLength: Line is too long. [135/120]", 1367166441], + [4911, 5, 683, "Metrics/MethodLength: Method has too many lines. [11/10]", 3165010613], + [4920, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 926808928], + [4942, 5, 713, "Metrics/MethodLength: Method has too many lines. [11/10]", 2795628035], + [4951, 121, 18, "Layout/LineLength: Line is too long. [138/120]", 497133415], + [4957, 5, 864, "Metrics/MethodLength: Method has too many lines. [12/10]", 1086224878], + [4957, 50, 268, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [9/5]", 4022739767], + [4958, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1607400384], + [4982, 5, 658, "Metrics/MethodLength: Method has too many lines. [11/10]", 3999796489], + [4991, 121, 5, "Layout/LineLength: Line is too long. [125/120]", 102058825], + [5005, 59, 179, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 1569981428], + [5006, 121, 23, "Layout/LineLength: Line is too long. [143/120]", 1515849732], + [5037, 5, 694, "Metrics/MethodLength: Method has too many lines. [11/10]", 3830236120], + [5046, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 2250857971], + [5060, 5, 673, "Metrics/MethodLength: Method has too many lines. [11/10]", 2413908653], + [5069, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 1225026887], + [5083, 5, 663, "Metrics/MethodLength: Method has too many lines. [11/10]", 3935895659], + [5092, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 2162352564], + [5106, 5, 692, "Metrics/MethodLength: Method has too many lines. [11/10]", 3660669627], + [5115, 121, 10, "Layout/LineLength: Line is too long. [130/120]", 3558241761], + [5129, 5, 612, "Metrics/MethodLength: Method has too many lines. [11/10]", 100391811], + [5168, 5, 693, "Metrics/MethodLength: Method has too many lines. [11/10]", 3138587622], + [5177, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 926808928], + [5199, 5, 688, "Metrics/MethodLength: Method has too many lines. [11/10]", 2736088861], + [5208, 121, 13, "Layout/LineLength: Line is too long. [133/120]", 1992103013], + [5231, 5, 678, "Metrics/MethodLength: Method has too many lines. [11/10]", 2275602867], + [5240, 121, 11, "Layout/LineLength: Line is too long. [131/120]", 3598350322], + [5263, 5, 602, "Metrics/MethodLength: Method has too many lines. [11/10]", 3023166371], + [5278, 36, 181, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [7/5]", 1071580945], + [5291, 5, 787, "Metrics/AbcSize: Assignment Branch Condition size for `group_projected_child_review_cases` is too high. [<4, 17, 4> 17.92/17]", 3391527151], + [5291, 5, 787, "Metrics/MethodLength: Method has too many lines. [18/10]", 3391527151], + [5315, 5, 705, "Metrics/MethodLength: Method has too many lines. [13/10]", 2629923275], + [5342, 5, 547, "Metrics/MethodLength: Method has too many lines. [12/10]", 1911190850], + [5367, 5, 1516, "Metrics/AbcSize: Assignment Branch Condition size for `review_projected_child_groups` is too high. [<11, 21, 9> 25.36/17]", 3333110579], + [5367, 5, 1516, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `review_projected_child_groups` is too high. [8/7]", 3333110579], + [5367, 5, 1516, "Metrics/MethodLength: Method has too many lines. [39/10]", 3333110579], + [5367, 5, 1516, "Metrics/PerceivedComplexity: Perceived complexity for `review_projected_child_groups` is too high. [9/8]", 3333110579], + [5401, 7, 7, "Style/MultilineBlockChain: Avoid multi-line chains of blocks.", 4045560504], + [5413, 5, 562, "Metrics/MethodLength: Method has too many lines. [14/10]", 3083915102], + [5432, 5, 1898, "Metrics/AbcSize: Assignment Branch Condition size for `resolve_delegated_child_outputs` is too high. [<11, 21, 6> 24.45/17]", 2739722546], + [5432, 5, 1898, "Metrics/MethodLength: Method has too many lines. [49/10]", 2739722546], + [5487, 5, 942, "Metrics/AbcSize: Assignment Branch Condition size for `execute_nested_merge` is too high. [<3, 17, 6> 18.28/17]", 766157172], + [5487, 5, 942, "Metrics/MethodLength: Method has too many lines. [20/10]", 766157172], + [5487, 29, 144, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 1404367793], + [5514, 5, 652, "Metrics/MethodLength: Method has too many lines. [13/10]", 2105803856], + [5533, 38, 140, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 1682835820], + [5563, 5, 577, "Metrics/MethodLength: Method has too many lines. [12/10]", 2659610443], + [5632, 5, 569, "Metrics/MethodLength: Method has too many lines. [14/10]", 20616641], + [5660, 5, 772, "Metrics/AbcSize: Assignment Branch Condition size for `conformance_manifest_review_request_ids` is too high. [<7, 16, 8> 19.21/17]", 3577418475], + [5660, 5, 772, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `conformance_manifest_review_request_ids` is too high. [9/7]", 3577418475], + [5660, 5, 772, "Metrics/MethodLength: Method has too many lines. [14/10]", 3577418475], + [5660, 5, 772, "Metrics/PerceivedComplexity: Perceived complexity for `conformance_manifest_review_request_ids` is too high. [9/8]", 3577418475], + [5714, 5, 606, "Metrics/MethodLength: Method has too many lines. [11/10]", 2675086662], + [5729, 5, 562, "Metrics/MethodLength: Method has too many lines. [11/10]", 3811715870], + [5744, 5, 578, "Metrics/MethodLength: Method has too many lines. [11/10]", 1776197415], + [5759, 5, 1298, "Metrics/AbcSize: Assignment Branch Condition size for `resolve_conformance_family_context` is too high. [<7, 28, 9> 30.23/17]", 4265202259], + [5759, 5, 1298, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `resolve_conformance_family_context` is too high. [10/7]", 4265202259], + [5759, 5, 1298, "Metrics/MethodLength: Method has too many lines. [23/10]", 4265202259], + [5759, 5, 1298, "Metrics/PerceivedComplexity: Perceived complexity for `resolve_conformance_family_context` is too high. [10/8]", 4265202259], + [5788, 5, 1994, "Metrics/AbcSize: Assignment Branch Condition size for `review_conformance_family_context` is too high. [<12, 24, 10> 28.64/17]", 2834851944], + [5788, 5, 1994, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `review_conformance_family_context` is too high. [10/7]", 2834851944], + [5788, 5, 1994, "Metrics/MethodLength: Method has too many lines. [41/10]", 2834851944], + [5788, 5, 1994, "Metrics/PerceivedComplexity: Perceived complexity for `review_conformance_family_context` is too high. [11/8]", 2834851944], + [5811, 121, 33, "Layout/LineLength: Line is too long. [153/120]", 641612328], + [5848, 5, 1844, "Metrics/AbcSize: Assignment Branch Condition size for `select_conformance_case` is too high. [<2, 43, 14> 45.27/17]", 670673209], + [5848, 5, 1844, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `select_conformance_case` is too high. [14/7]", 670673209], + [5848, 5, 1844, "Metrics/MethodLength: Method has too many lines. [30/10]", 670673209], + [5848, 5, 1844, "Metrics/PerceivedComplexity: Perceived complexity for `select_conformance_case` is too high. [16/8]", 670673209], + [5853, 121, 34, "Layout/LineLength: Line is too long. [154/120]", 2135503892], + [5855, 121, 41, "Layout/LineLength: Line is too long. [161/120]", 3932054828], + [5864, 121, 30, "Layout/LineLength: Line is too long. [150/120]", 3169124957], + [5886, 5, 509, "Metrics/MethodLength: Method has too many lines. [11/10]", 3552283123], + [5975, 5, 4195, "Metrics/AbcSize: Assignment Branch Condition size for `review_conformance_manifest` is too high. [<37, 63, 16> 74.79/17]", 2166560528], + [5975, 5, 4195, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `review_conformance_manifest` is too high. [14/7]", 2166560528], + [5975, 5, 4195, "Metrics/MethodLength: Method has too many lines. [89/10]", 2166560528], + [5975, 5, 4195, "Metrics/PerceivedComplexity: Perceived complexity for `review_conformance_manifest` is too high. [17/8]", 2166560528], + [6040, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 2746826653], + [6056, 121, 47, "Layout/LineLength: Line is too long. [167/120]", 3035993839], + [6078, 5, 676, "Metrics/MethodLength: Method has too many lines. [15/10]", 3048335475], + [6101, 5, 1054, "Metrics/AbcSize: Assignment Branch Condition size for `plan_conformance_suite` is too high. [<11, 18, 8> 22.56/17]", 1855254788], + [6101, 5, 1054, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `plan_conformance_suite` is too high. [8/7]", 1855254788], + [6101, 5, 1054, "Metrics/MethodLength: Method has too many lines. [25/10]", 1855254788], + [6101, 31, 84, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 172854173], + [6166, 5, 1274, "Metrics/AbcSize: Assignment Branch Condition size for `plan_named_conformance_suites_with_diagnostics` is too high. [<11, 21, 7> 24.72/17]", 3991300730], + [6166, 5, 1274, "Metrics/MethodLength: Method has too many lines. [27/10]", 3991300730], + [6193, 121, 47, "Layout/LineLength: Line is too long. [167/120]", 3035993839], + [6258, 5, 2071, "Metrics/AbcSize: Assignment Branch Condition size for `review_decision_for_family_context` is too high. [<7, 22, 16> 28.09/17]", 4245377184], + [6258, 5, 2071, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `review_decision_for_family_context` is too high. [12/7]", 4245377184], + [6258, 5, 2071, "Metrics/MethodLength: Method has too many lines. [46/10]", 4245377184], + [6258, 5, 2071, "Metrics/PerceivedComplexity: Perceived complexity for `review_decision_for_family_context` is too high. [12/8]", 4245377184], + [6263, 7, 1766, "Metrics/BlockLength: Block has too many lines. [40/25]", 65448241], + [6315, 5, 686, "Metrics/MethodLength: Method has too many lines. [13/10]", 4030291682] + ], + "lib/ast/merge/ast_node.rb:2037773320": [ + [44, 5, 7086, "Metrics/ClassLength: Class has too many lines. [114/100]", 201314721], + [220, 11, 10, "Naming/PredicatePrefix: Rename `has_error?` to `error?`.", 946854183] + ], + "lib/ast/merge/comment/attachment.rb:2388154769": [ + [42, 23, 180, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [9/5]", 3775370530], + [75, 24, 2, "Lint/SafeNavigationConsistency: Use `.` instead of unnecessary `&.`.", 5858765], + [81, 25, 2, "Lint/SafeNavigationConsistency: Use `.` instead of unnecessary `&.`.", 5858765], + [114, 9, 410, "Metrics/AbcSize: Assignment Branch Condition size for `inspect` is too high. [<1, 17, 4> 17.49/17]", 605978105], + [115, 32, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765] + ], + "lib/ast/merge/comment/augmenter.rb:633395157": [ + [12, 7, 13967, "Metrics/ClassLength: Class has too many lines. [291/100]", 2806660144], + [33, 9, 721, "Metrics/MethodLength: Method has too many lines. [16/10]", 200402816], + [33, 23, 91, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [7/5]", 2938734913], + [64, 9, 1335, "Metrics/AbcSize: Assignment Branch Condition size for `build!` is too high. [<12, 29, 6> 31.95/17]", 3904283188], + [64, 9, 1335, "Metrics/MethodLength: Method has too many lines. [22/10]", 3904283188], + [94, 9, 867, "Metrics/AbcSize: Assignment Branch Condition size for `infer_leading_comments` is too high. [<8, 19, 14> 24.92/17]", 1941464872], + [94, 9, 867, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `infer_leading_comments` is too high. [11/7]", 1941464872], + [94, 9, 867, "Metrics/MethodLength: Method has too many lines. [20/10]", 1941464872], + [94, 9, 867, "Metrics/PerceivedComplexity: Perceived complexity for `infer_leading_comments` is too high. [12/8]", 1941464872], + [122, 9, 429, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `infer_inline_comments` is too high. [8/7]", 2688935834], + [133, 9, 934, "Metrics/AbcSize: Assignment Branch Condition size for `infer_trailing_comments` is too high. [<8, 21, 18> 28.79/17]", 1551855281], + [133, 9, 934, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `infer_trailing_comments` is too high. [15/7]", 1551855281], + [133, 9, 934, "Metrics/MethodLength: Method has too many lines. [20/10]", 1551855281], + [133, 9, 934, "Metrics/PerceivedComplexity: Perceived complexity for `infer_trailing_comments` is too high. [15/8]", 1551855281], + [160, 9, 488, "Metrics/AbcSize: Assignment Branch Condition size for `infer_postlude!` is too high. [<5, 17, 8> 19.44/17]", 2562637949], + [160, 9, 488, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `infer_postlude!` is too high. [8/7]", 2562637949], + [173, 9, 1529, "Metrics/AbcSize: Assignment Branch Condition size for `infer_remaining_regions!` is too high. [<12, 27, 23> 37.44/17]", 3911657050], + [173, 9, 1529, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `infer_remaining_regions!` is too high. [18/7]", 3911657050], + [173, 9, 1529, "Metrics/MethodLength: Method has too many lines. [28/10]", 3911657050], + [173, 9, 1529, "Metrics/PerceivedComplexity: Perceived complexity for `infer_remaining_regions!` is too high. [20/8]", 3911657050], + [216, 9, 507, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `split_preamble_group` is too high. [8/7]", 336784898], + [231, 9, 588, "Metrics/MethodLength: Method has too many lines. [17/10]", 3445626532], + [274, 9, 965, "Metrics/AbcSize: Assignment Branch Condition size for `build_region` is too high. [<6, 17, 7> 19.34/17]", 344809006], + [274, 9, 965, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `build_region` is too high. [8/7]", 344809006], + [274, 9, 965, "Metrics/MethodLength: Method has too many lines. [24/10]", 344809006] + ], + "lib/ast/merge/comment/block.rb:3806757604": [ + [31, 7, 6754, "Metrics/ClassLength: Class has too many lines. [106/100]", 2308582303], + [57, 9, 1059, "Metrics/AbcSize: Assignment Branch Condition size for `initialize` is too high. [<12, 13, 14> 22.56/17]", 2656171724], + [57, 9, 1059, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `initialize` is too high. [14/7]", 2656171724], + [57, 9, 1059, "Metrics/MethodLength: Method has too many lines. [21/10]", 2656171724], + [57, 9, 1059, "Metrics/PerceivedComplexity: Perceived complexity for `initialize` is too high. [15/8]", 2656171724], + [113, 9, 511, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `freeze_action` is too high. [9/7]", 55014877], + [113, 9, 511, "Metrics/MethodLength: Method has too many lines. [12/10]", 55014877], + [113, 9, 511, "Metrics/PerceivedComplexity: Perceived complexity for `freeze_action` is too high. [9/8]", 55014877], + [181, 9, 439, "Metrics/AbcSize: Assignment Branch Condition size for `first_meaningful_content` is too high. [<2, 16, 11> 19.52/17]", 680479883], + [181, 9, 439, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `first_meaningful_content` is too high. [11/7]", 680479883], + [181, 9, 439, "Metrics/PerceivedComplexity: Perceived complexity for `first_meaningful_content` is too high. [12/8]", 680479883], + [197, 9, 765, "Metrics/AbcSize: Assignment Branch Condition size for `extract_block_content` is too high. [<7, 24, 9> 26.57/17]", 621871624], + [197, 9, 765, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `extract_block_content` is too high. [9/7]", 621871624], + [197, 9, 765, "Metrics/PerceivedComplexity: Perceived complexity for `extract_block_content` is too high. [9/8]", 621871624] + ], + "lib/ast/merge/comment/c_style_tracker_base.rb:1569556520": [ + [22, 7, 15053, "Metrics/ClassLength: Class has too many lines. [284/100]", 3599183270], + [83, 9, 509, "Metrics/MethodLength: Method has too many lines. [11/10]", 1639553915], + [102, 9, 492, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `leading_comments_before` is too high. [8/7]", 3127043491], + [102, 9, 492, "Metrics/MethodLength: Method has too many lines. [11/10]", 3127043491], + [124, 9, 487, "Metrics/MethodLength: Method has too many lines. [11/10]", 1869933531], + [176, 9, 713, "Metrics/AbcSize: Assignment Branch Condition size for `trailing_comments_after` is too high. [<6, 12, 13> 18.68/17]", 543703521], + [176, 9, 713, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `trailing_comments_after` is too high. [11/7]", 543703521], + [176, 9, 713, "Metrics/MethodLength: Method has too many lines. [14/10]", 543703521], + [176, 9, 713, "Metrics/PerceivedComplexity: Perceived complexity for `trailing_comments_after` is too high. [11/8]", 543703521], + [184, 121, 1, "Layout/LineLength: Line is too long. [121/120]", 177549], + [202, 9, 598, "Metrics/MethodLength: Method has too many lines. [12/10]", 1628921093], + [222, 9, 1271, "Metrics/MethodLength: Method has too many lines. [21/10]", 612335469], + [222, 35, 137, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 1823300034], + [329, 35, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], + [348, 9, 2271, "Metrics/AbcSize: Assignment Branch Condition size for `extract_comments` is too high. [<17, 32, 13> 38.5/17]", 2751274968], + [348, 9, 2271, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `extract_comments` is too high. [14/7]", 2751274968], + [348, 9, 2271, "Metrics/MethodLength: Method has too many lines. [59/10]", 2751274968], + [348, 9, 2271, "Metrics/PerceivedComplexity: Perceived complexity for `extract_comments` is too high. [14/8]", 2751274968], + [353, 11, 2045, "Metrics/BlockLength: Block has too many lines. [52/25]", 575665179], + [418, 9, 659, "Metrics/MethodLength: Method has too many lines. [15/10]", 177254901], + [439, 71, 4, "Lint/UnusedMethodArgument: Unused method argument - `line`.", 2087656651], + [439, 78, 8, "Lint/UnusedMethodArgument: Unused method argument - `line_num`.", 622661090] + ], + "lib/ast/merge/comment/hash_tracker_base.rb:861186417": [ + [32, 7, 19362, "Metrics/ClassLength: Class has too many lines. [221/100]", 1031055222], + [118, 9, 444, "Metrics/MethodLength: Method has too many lines. [11/10]", 3347260807], + [142, 9, 921, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `leading_comments_before` is too high. [8/7]", 415734636], + [142, 9, 921, "Metrics/MethodLength: Method has too many lines. [11/10]", 415734636], + [172, 9, 440, "Metrics/MethodLength: Method has too many lines. [11/10]", 2464474004], + [225, 9, 623, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `trailing_comments_after` is too high. [10/7]", 543703521], + [225, 9, 623, "Metrics/MethodLength: Method has too many lines. [12/10]", 543703521], + [225, 9, 623, "Metrics/PerceivedComplexity: Perceived complexity for `trailing_comments_after` is too high. [10/8]", 543703521], + [249, 9, 551, "Metrics/MethodLength: Method has too many lines. [12/10]", 2783654570], + [278, 9, 1271, "Metrics/MethodLength: Method has too many lines. [21/10]", 612335469], + [278, 35, 137, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 1823300034], + [374, 35, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], + [439, 9, 826, "Metrics/MethodLength: Method has too many lines. [12/10]", 1706632542] + ], + "lib/ast/merge/comment/parser.rb:2674748021": [ + [34, 7, 8372, "Metrics/ClassLength: Class has too many lines. [141/100]", 2541983664], + [84, 9, 357, "Metrics/MethodLength: Method has too many lines. [12/10]", 2265493710], + [104, 9, 545, "Metrics/AbcSize: Assignment Branch Condition size for `auto_detect_style` is too high. [<5, 17, 7> 19.05/17]", 868366444], + [104, 9, 545, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `auto_detect_style` is too high. [8/7]", 868366444], + [125, 9, 1650, "Metrics/AbcSize: Assignment Branch Condition size for `parse_line_comments` is too high. [<8, 28, 7> 29.95/17]", 1511562163], + [125, 9, 1650, "Metrics/MethodLength: Method has too many lines. [31/10]", 1511562163], + [176, 9, 2670, "Metrics/AbcSize: Assignment Branch Condition size for `parse_with_block_comments` is too high. [<15, 47, 15> 51.57/17]", 2963765048], + [176, 9, 2670, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `parse_with_block_comments` is too high. [15/7]", 2963765048], + [176, 9, 2670, "Metrics/MethodLength: Method has too many lines. [47/10]", 2963765048], + [176, 9, 2670, "Metrics/PerceivedComplexity: Perceived complexity for `parse_with_block_comments` is too high. [16/8]", 2963765048], + [181, 11, 2390, "Metrics/BlockLength: Block has too many lines. [40/25]", 3720582340] + ], + "lib/ast/merge/comment/quoted_hash_line_parser.rb:2878420841": [ + [74, 9, 458, "Metrics/MethodLength: Method has too many lines. [11/10]", 1526360697], + [91, 9, 620, "Metrics/AbcSize: Assignment Branch Condition size for `inline_result` is too high. [<3, 16, 6> 17.35/17]", 2706755447], + [91, 9, 620, "Metrics/MethodLength: Method has too many lines. [14/10]", 2706755447] + ], + "lib/ast/merge/comment/region_merge_policy.rb:176745155": [ + [23, 23, 98, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 1029631546], + [55, 9, 423, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `freeze_sensitive?` is too high. [8/7]", 4102661282], + [61, 41, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], + [61, 85, 2, "Lint/SafeNavigationConsistency: Use `.` instead of unnecessary `&.`.", 5858765], + [96, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 3491399903] + ], + "lib/ast/merge/comment/style.rb:3045051983": [ + [27, 7, 9109, "Metrics/ClassLength: Class has too many lines. [143/100]", 131723516], + [142, 11, 911, "Metrics/MethodLength: Method has too many lines. [17/10]", 355862493], + [142, 23, 164, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [8/5]", 668558018], + [203, 23, 164, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [8/5]", 668558018] + ], + "lib/ast/merge/comment/tracked_hash_adapter.rb:3235547929": [ + [99, 11, 553, "Metrics/AbcSize: Assignment Branch Condition size for `line_text_from` is too high. [<4, 20, 4> 20.78/17]", 2680273536], + [99, 11, 553, "Metrics/MethodLength: Method has too many lines. [13/10]", 2680273536] + ], + "lib/ast/merge/comment_layout_emission_support.rb:3192614990": [ + [12, 5, 14039, "Metrics/ModuleLength: Module has too many lines. [287/100]", 2115648988], + [18, 40, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], + [29, 40, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], + [88, 43, 149, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 1025246092], + [100, 7, 916, "Metrics/MethodLength: Method has too many lines. [11/10]", 3294772058], + [100, 57, 163, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 1661656204], + [122, 7, 730, "Metrics/MethodLength: Method has too many lines. [13/10]", 2493279555], + [139, 62, 6, "Lint/UnusedMethodArgument: Unused method argument - `owners`.", 1719502071], + [193, 7, 477, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `retained_owner_leading_gap_for` is too high. [8/7]", 974771614], + [193, 7, 477, "Metrics/PerceivedComplexity: Perceived complexity for `retained_owner_leading_gap_for` is too high. [9/8]", 974771614], + [194, 40, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], + [220, 23, 24, "Style/SafeNavigation: Use safe navigation (`&.`) instead of checking if an object exists before calling the method.", 1487466207], + [243, 7, 1015, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `root_boundary_lines_for` is too high. [11/7]", 2612519600], + [243, 7, 1015, "Metrics/MethodLength: Method has too many lines. [13/10]", 2612519600], + [243, 7, 1015, "Metrics/PerceivedComplexity: Perceived complexity for `root_boundary_lines_for` is too high. [11/8]", 2612519600], + [247, 34, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], + [271, 7, 959, "Metrics/AbcSize: Assignment Branch Condition size for `owner_bound_root_boundary_lines_for` is too high. [<8, 22, 17> 28.93/17]", 238225688], + [271, 7, 959, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `owner_bound_root_boundary_lines_for` is too high. [16/7]", 238225688], + [271, 7, 959, "Metrics/MethodLength: Method has too many lines. [17/10]", 238225688], + [271, 7, 959, "Metrics/PerceivedComplexity: Perceived complexity for `owner_bound_root_boundary_lines_for` is too high. [15/8]", 238225688], + [307, 7, 912, "Metrics/AbcSize: Assignment Branch Condition size for `root_boundary_range` is too high. [<6, 22, 12> 25.77/17]", 2821370782], + [307, 7, 912, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `root_boundary_range` is too high. [11/7]", 2821370782], + [307, 7, 912, "Metrics/MethodLength: Method has too many lines. [21/10]", 2821370782], + [307, 7, 912, "Metrics/PerceivedComplexity: Perceived complexity for `root_boundary_range` is too high. [12/8]", 2821370782], + [350, 7, 401, "Metrics/MethodLength: Method has too many lines. [11/10]", 559624650] + ], + "lib/ast/merge/composite_match_refiner.rb:1718969703": [ + [58, 7, 668, "Metrics/MethodLength: Method has too many lines. [14/10]", 2649148714] + ], + "lib/ast/merge/conflict_resolver_base.rb:765343263": [ + [69, 5, 14959, "Metrics/ClassLength: Class has too many lines. [170/100]", 633092728], + [156, 7, 919, "Metrics/MethodLength: Method has too many lines. [13/10]", 1701319380], + [156, 21, 200, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [9/5]", 3369976202], + [367, 7, 972, "Metrics/MethodLength: Method has too many lines. [22/10]", 2870739148], + [434, 47, 13, "Style/NumericPredicate: Use `recursive.positive?` instead of `recursive > 0`.", 462999281], + [436, 99, 14, "Style/NumericPredicate: Use `recursive.zero?` instead of `recursive == 0`.", 2394069519] + ], + "lib/ast/merge/content_match_refiner.rb:3628272158": [ + [47, 5, 7719, "Metrics/ClassLength: Class has too many lines. [108/100]", 651494487], + [87, 7, 750, "Metrics/MethodLength: Method has too many lines. [17/10]", 3624290009], + [165, 37, 48, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 953994744], + [232, 7, 846, "Metrics/AbcSize: Assignment Branch Condition size for `levenshtein_distance` is too high. [<13, 29, 8> 32.77/17]", 3597737347], + [232, 7, 846, "Metrics/MethodLength: Method has too many lines. [20/10]", 3597737347] + ], + "lib/ast/merge/debug_logger.rb:1783610128": [ + [72, 5, 7614, "Metrics/ModuleLength: Module has too many lines. [118/100]", 736598454], + [85, 121, 7, "Layout/LineLength: Line is too long. [127/120]", 941621], + [206, 7, 584, "Metrics/AbcSize: Assignment Branch Condition size for `time` is too high. [<3, 17, 2> 17.38/17]", 3468868523], + [206, 7, 584, "Metrics/MethodLength: Method has too many lines. [14/10]", 3468868523], + [269, 7, 450, "Metrics/PerceivedComplexity: Perceived complexity for `extract_lines` is too high. [9/8]", 680738666], + [287, 7, 11, "Style/ModuleFunction: Use `module_function` instead of `extend self`.", 1210897631] + ], + "lib/ast/merge/detector/base.rb:343830240": [ + [175, 25, 73, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 2991095115] + ], + "lib/ast/merge/detector/fenced_code_block.rb:3555142063": [ + [36, 7, 6302, "Metrics/ClassLength: Class has too many lines. [116/100]", 852968953], + [71, 9, 2492, "Metrics/AbcSize: Assignment Branch Condition size for `detect_all` is too high. [<31, 28, 12> 43.46/17]", 3575218793], + [71, 9, 2492, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `detect_all` is too high. [11/7]", 3575218793], + [71, 9, 2492, "Metrics/MethodLength: Method has too many lines. [54/10]", 3575218793], + [71, 9, 2492, "Metrics/PerceivedComplexity: Perceived complexity for `detect_all` is too high. [13/8]", 3575218793], + [84, 11, 2060, "Metrics/BlockLength: Block has too many lines. [41/25]", 1744553779] + ], + "lib/ast/merge/detector/mergeable.rb:354817747": [ + [54, 7, 11933, "Metrics/ModuleLength: Module has too many lines. [140/100]", 1453034870], + [162, 9, 601, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `build_region_configs` is too high. [8/7]", 1278024890], + [162, 9, 601, "Metrics/MethodLength: Method has too many lines. [16/10]", 1278024890], + [189, 9, 1054, "Metrics/AbcSize: Assignment Branch Condition size for `extract_regions` is too high. [<11, 16, 3> 19.65/17]", 663241096], + [189, 9, 1054, "Metrics/MethodLength: Method has too many lines. [20/10]", 663241096], + [285, 9, 1005, "Metrics/AbcSize: Assignment Branch Condition size for `merge_and_substitute_regions` is too high. [<16, 19, 4> 25.16/17]", 4123525156], + [285, 9, 1005, "Metrics/MethodLength: Method has too many lines. [16/10]", 4123525156], + [318, 9, 1369, "Metrics/AbcSize: Assignment Branch Condition size for `merge_region` is too high. [<11, 20, 14> 26.78/17]", 746321843], + [318, 9, 1369, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `merge_region` is too high. [15/7]", 746321843], + [318, 9, 1369, "Metrics/MethodLength: Method has too many lines. [16/10]", 746321843], + [318, 9, 1369, "Metrics/PerceivedComplexity: Perceived complexity for `merge_region` is too high. [15/8]", 746321843] + ], + "lib/ast/merge/detector/toml_frontmatter.rb:3255696517": [ + [50, 9, 892, "Metrics/MethodLength: Method has too many lines. [20/10]", 3132005303] + ], + "lib/ast/merge/detector/yaml_frontmatter.rb:2551474823": [ + [49, 9, 958, "Metrics/MethodLength: Method has too many lines. [20/10]", 3132005303] + ], + "lib/ast/merge/diff_mapper_base.rb:3204989377": [ + [22, 5, 7793, "Metrics/ClassLength: Class has too many lines. [141/100]", 2217731166], + [80, 7, 2598, "Metrics/AbcSize: Assignment Branch Condition size for `parse_diff` is too high. [<21, 31, 15> 40.34/17]", 939898835], + [80, 7, 2598, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `parse_diff` is too high. [16/7]", 939898835], + [80, 7, 2598, "Metrics/MethodLength: Method has too many lines. [65/10]", 939898835], + [80, 7, 2598, "Metrics/PerceivedComplexity: Perceived complexity for `parse_diff` is too high. [12/8]", 939898835], + [90, 9, 2162, "Metrics/BlockLength: Block has too many lines. [50/25]", 3403609416], + [169, 7, 394, "Metrics/MethodLength: Method has too many lines. [11/10]", 2028641628] + ], + "lib/ast/merge/emitter_base.rb:4280054392": [ + [26, 5, 14922, "Metrics/ClassLength: Class has too many lines. [232/100]", 2015391034], + [95, 7, 653, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `emit_comment_region` is too high. [9/7]", 24580929], + [95, 7, 653, "Metrics/MethodLength: Method has too many lines. [12/10]", 24580929], + [95, 7, 653, "Metrics/PerceivedComplexity: Perceived complexity for `emit_comment_region` is too high. [9/8]", 24580929], + [120, 7, 1311, "Metrics/AbcSize: Assignment Branch Condition size for `emit_comment_attachment` is too high. [<5, 25, 16> 30.1/17]", 964928813], + [120, 7, 1311, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `emit_comment_attachment` is too high. [17/7]", 964928813], + [120, 7, 1311, "Metrics/MethodLength: Method has too many lines. [17/10]", 964928813], + [120, 7, 1311, "Metrics/PerceivedComplexity: Perceived complexity for `emit_comment_attachment` is too high. [17/8]", 964928813], + [120, 34, 127, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 628879795], + [152, 7, 984, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `emit_layout_gap` is too high. [8/7]", 1954418889], + [152, 7, 984, "Metrics/MethodLength: Method has too many lines. [13/10]", 1954418889], + [152, 7, 984, "Metrics/PerceivedComplexity: Perceived complexity for `emit_layout_gap` is too high. [9/8]", 1954418889], + [152, 26, 136, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 3839882587], + [183, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5861198], + [184, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2087656651], + [186, 7, 1307, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `emit_layout_attachment` is too high. [9/7]", 708408665], + [186, 7, 1307, "Metrics/MethodLength: Method has too many lines. [26/10]", 708408665], + [186, 7, 1307, "Metrics/PerceivedComplexity: Perceived complexity for `emit_layout_attachment` is too high. [9/8]", 708408665], + [186, 33, 218, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [8/5]", 1552587384], + [187, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 1763090185], + [189, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1371312610], + [271, 31, 17, "Style/NumericPredicate: Use `@indent_level.positive?` instead of `@indent_level > 0`.", 1892475678], + [317, 56, 12, "Lint/UnusedMethodArgument: Unused method argument - `current_line`. You can also write as `inline_comment_region_target_column(*)` if you want the method to accept any arguments but don't care about them.", 2091263933], + [321, 42, 6, "Lint/UnusedMethodArgument: Unused method argument - `region`.", 2124512157], + [321, 51, 13, "Lint/UnusedMethodArgument: Unused method argument - `target_column`.", 3246375805], + [336, 7, 1141, "Metrics/AbcSize: Assignment Branch Condition size for `inline_comment_node_text` is too high. [<6, 29, 8> 30.68/17]", 2583471562], + [336, 7, 1141, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `inline_comment_node_text` is too high. [9/7]", 2583471562], + [336, 7, 1141, "Metrics/MethodLength: Method has too many lines. [22/10]", 2583471562], + [336, 7, 1141, "Metrics/PerceivedComplexity: Perceived complexity for `inline_comment_node_text` is too high. [9/8]", 2583471562], + [354, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5861626], + [365, 7, 510, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `emit_region_gap_lines` is too high. [8/7]", 1999747697], + [365, 7, 510, "Metrics/PerceivedComplexity: Perceived complexity for `emit_region_gap_lines` is too high. [9/8]", 1999747697] + ], + "lib/ast/merge/emitter_line_metadata_support.rb:3153033769": [ + [5, 5, 33, "Style/Documentation: Missing top-level documentation comment for `module Ast::Merge::EmitterLineMetadataSupport`.", 2926748997], + [23, 7, 541, "Metrics/MethodLength: Method has too many lines. [12/10]", 2407359355] + ], + "lib/ast/merge/file_aligner_base.rb:2160333224": [ + [13, 5, 8206, "Metrics/ClassLength: Class has too many lines. [203/100]", 2982381587], + [27, 7, 2329, "Metrics/AbcSize: Assignment Branch Condition size for `align` is too high. [<19, 39, 14> 45.59/17]", 1243937217], + [27, 7, 2329, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `align` is too high. [14/7]", 1243937217], + [27, 7, 2329, "Metrics/MethodLength: Method has too many lines. [56/10]", 1243937217], + [27, 7, 2329, "Metrics/PerceivedComplexity: Perceived complexity for `align` is too high. [14/8]", 1243937217], + [167, 7, 655, "Metrics/MethodLength: Method has too many lines. [14/10]", 2468821688], + [199, 7, 455, "Metrics/MethodLength: Method has too many lines. [13/10]", 2361153066], + [218, 7, 1557, "Metrics/AbcSize: Assignment Branch Condition size for `apply_match_refiner!` is too high. [<10, 28, 12> 32.06/17]", 2386945712], + [218, 7, 1557, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `apply_match_refiner!` is too high. [13/7]", 2386945712], + [218, 7, 1557, "Metrics/MethodLength: Method has too many lines. [31/10]", 2386945712], + [218, 7, 1557, "Metrics/PerceivedComplexity: Perceived complexity for `apply_match_refiner!` is too high. [13/8]", 2386945712] + ], + "lib/ast/merge/file_analyzable.rb:607555963": [ + [36, 5, 31229, "Metrics/ModuleLength: Module has too many lines. [316/100]", 1247752256], + [99, 19, 9, "Style/NumericPredicate: Use `index.negative?` instead of `index < 0`.", 4215255415], + [148, 7, 793, "Metrics/MethodLength: Method has too many lines. [22/10]", 1467470910], + [202, 7, 771, "Metrics/MethodLength: Method has too many lines. [16/10]", 1412317163], + [344, 7, 844, "Metrics/MethodLength: Method has too many lines. [12/10]", 2335919661], + [369, 7, 730, "Metrics/MethodLength: Method has too many lines. [11/10]", 1047958652], + [431, 7, 863, "Metrics/AbcSize: Assignment Branch Condition size for `normalize_layout_owned_comment_attachment` is too high. [<0, 20, 4> 20.4/17]", 3284843691], + [431, 7, 863, "Metrics/MethodLength: Method has too many lines. [17/10]", 3284843691], + [481, 7, 683, "Metrics/MethodLength: Method has too many lines. [15/10]", 241044926], + [520, 14, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], + [614, 7, 6095, "Metrics/AbcSize: Assignment Branch Condition size for `generate_signature` is too high. [<4, 21, 13> 25.02/17]", 2828809875], + [614, 7, 6095, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `generate_signature` is too high. [11/7]", 2828809875], + [614, 7, 6095, "Metrics/MethodLength: Method has too many lines. [30/10]", 2828809875], + [614, 7, 6095, "Metrics/PerceivedComplexity: Perceived complexity for `generate_signature` is too high. [14/8]", 2828809875], + [676, 24, 390, "Metrics/BlockNesting: Avoid more than 3 levels of block nesting.", 3279112483] + ], + "lib/ast/merge/freeze_node_base.rb:2110274026": [ + [59, 5, 14572, "Metrics/ClassLength: Class has too many lines. [171/100]", 3038607603], + [108, 25, 545, "Style/MutableConstant: Freeze mutable objects assigned to constants.", 2366014160], + [186, 9, 1100, "Metrics/MethodLength: Method has too many lines. [15/10]", 2506841532], + [288, 7, 758, "Metrics/MethodLength: Method has too many lines. [11/10]", 136868205], + [288, 21, 276, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [11/5]", 1720059801], + [335, 7, 660, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `reason` is too high. [8/7]", 3127566048], + [418, 20, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765] + ], + "lib/ast/merge/healer.rb:3642412735": [ + [18, 7, 588, "Metrics/MethodLength: Method has too many lines. [15/10]", 3172269921], + [18, 17, 84, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 1781025196], + [41, 7, 687, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `filter_items` is too high. [8/7]", 1200842691], + [41, 7, 687, "Metrics/MethodLength: Method has too many lines. [17/10]", 1200842691], + [41, 7, 687, "Metrics/PerceivedComplexity: Perceived complexity for `filter_items` is too high. [9/8]", 1200842691], + [41, 23, 130, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [8/5]", 33939503] + ], + "lib/ast/merge/jaccard_similarity.rb:678558736": [ + [87, 19, 1, "Naming/MethodParameterName: Method parameter must be at least 3 characters long.", 177604], + [87, 22, 1, "Naming/MethodParameterName: Method parameter must be at least 3 characters long.", 177607] + ], + "lib/ast/merge/key_path_partial_template_merger_base.rb:1818613864": [ + [22, 5, 6114, "Metrics/ClassLength: Class has too many lines. [155/100]", 1269962119], + [43, 21, 214, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [8/5]", 3637591635], + [68, 7, 489, "Metrics/MethodLength: Method has too many lines. [12/10]", 3170411580], + [118, 7, 640, "Metrics/AbcSize: Assignment Branch Condition size for `find_key_path` is too high. [<8, 14, 10> 18.97/17]", 2613403604], + [118, 7, 640, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `find_key_path` is too high. [8/7]", 2613403604], + [118, 7, 640, "Metrics/MethodLength: Method has too many lines. [16/10]", 2613403604], + [118, 7, 640, "Metrics/PerceivedComplexity: Perceived complexity for `find_key_path` is too high. [9/8]", 2613403604], + [140, 7, 536, "Metrics/MethodLength: Method has too many lines. [17/10]", 3598062652], + [168, 7, 804, "Metrics/MethodLength: Method has too many lines. [19/10]", 2773364183] + ], + "lib/ast/merge/layout.rb:3670500101": [ + [23, 36, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765] + ], + "lib/ast/merge/layout/augmenter.rb:3229088287": [ + [8, 7, 5440, "Metrics/ClassLength: Class has too many lines. [128/100]", 2306720287], + [23, 23, 125, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [7/5]", 3395039982], + [55, 9, 1795, "Metrics/AbcSize: Assignment Branch Condition size for `build!` is too high. [<20, 32, 17> 41.39/17]", 3542913254], + [55, 9, 1795, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `build!` is too high. [15/7]", 3542913254], + [55, 9, 1795, "Metrics/MethodLength: Method has too many lines. [43/10]", 3542913254], + [55, 9, 1795, "Metrics/PerceivedComplexity: Perceived complexity for `build!` is too high. [15/8]", 3542913254], + [60, 11, 1227, "Metrics/BlockLength: Block has too many lines. [29/25]", 55360131], + [107, 9, 504, "Metrics/MethodLength: Method has too many lines. [16/10]", 1953725517] + ], + "lib/ast/merge/layout/gap.rb:1678106201": [ + [11, 7, 7558, "Metrics/ClassLength: Class has too many lines. [151/100]", 2254377349], + [23, 9, 655, "Metrics/MethodLength: Method has too many lines. [11/10]", 3584854768], + [23, 23, 146, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [9/5]", 361396001], + [157, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5859545], + [162, 9, 303, "Metrics/MethodLength: Method has too many lines. [12/10]", 2236444774], + [203, 9, 688, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `validate_adjacency!` is too high. [10/7]", 1112786311], + [203, 9, 688, "Metrics/MethodLength: Method has too many lines. [13/10]", 1112786311] + ], + "lib/ast/merge/line_range_support.rb:773479830": [ + [13, 7, 430, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `object_start_line` is too high. [8/7]", 2485070052], + [13, 7, 430, "Metrics/PerceivedComplexity: Perceived complexity for `object_start_line` is too high. [9/8]", 2485070052], + [25, 7, 414, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `object_end_line` is too high. [8/7]", 3545256164], + [25, 7, 414, "Metrics/PerceivedComplexity: Perceived complexity for `object_end_line` is too high. [9/8]", 3545256164] + ], + "lib/ast/merge/match_refiner_base.rb:1760054866": [ + [248, 7, 503, "Metrics/MethodLength: Method has too many lines. [11/10]", 2844230268], + [275, 7, 1056, "Metrics/AbcSize: Assignment Branch Condition size for `greedy_match` is too high. [<9, 24, 8> 26.85/17]", 2497617815], + [275, 7, 1056, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `greedy_match` is too high. [8/7]", 2497617815], + [275, 7, 1056, "Metrics/MethodLength: Method has too many lines. [24/10]", 2497617815] + ], + "lib/ast/merge/merge_result_base.rb:1342312150": [ + [17, 5, 19111, "Metrics/ClassLength: Class has too many lines. [341/100]", 1211564896], + [88, 21, 187, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [7/5]", 1067369198], + [202, 7, 843, "Metrics/AbcSize: Assignment Branch Condition size for `normalize_blank_line_runs!` is too high. [<12, 12, 10> 19.7/17]", 2347011594], + [202, 7, 843, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `normalize_blank_line_runs!` is too high. [9/7]", 2347011594], + [202, 7, 843, "Metrics/MethodLength: Method has too many lines. [22/10]", 2347011594], + [202, 7, 843, "Metrics/PerceivedComplexity: Perceived complexity for `normalize_blank_line_runs!` is too high. [10/8]", 2347011594], + [242, 7, 1004, "Metrics/MethodLength: Method has too many lines. [21/10]", 59539336], + [242, 35, 211, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [8/5]", 709487711], + [281, 7, 602, "Metrics/MethodLength: Method has too many lines. [13/10]", 320027623], + [356, 7, 927, "Metrics/AbcSize: Assignment Branch Condition size for `validate_review_state_compatibility!` is too high. [<8, 15, 4> 17.46/17]", 1596840080], + [356, 7, 927, "Metrics/MethodLength: Method has too many lines. [16/10]", 1596840080], + [418, 7, 936, "Metrics/AbcSize: Assignment Branch Condition size for `review_state_metadata` is too high. [<7, 18, 4> 19.72/17]", 4128292066], + [418, 7, 936, "Metrics/MethodLength: Method has too many lines. [14/10]", 4128292066], + [428, 121, 11, "Layout/LineLength: Line is too long. [131/120]", 20421901], + [453, 7, 1194, "Metrics/MethodLength: Method has too many lines. [21/10]", 4289697646], + [463, 121, 56, "Layout/LineLength: Line is too long. [176/120]", 3342583337] + ], + "lib/ast/merge/merger_config.rb:3582657829": [ + [46, 5, 10581, "Metrics/ClassLength: Class has too many lines. [148/100]", 1598770872], + [96, 21, 234, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [7/5]", 720509970] + ], + "lib/ast/merge/navigable/injection_point_finder.rb:4117743218": [ + [45, 9, 1707, "Metrics/AbcSize: Assignment Branch Condition size for `find` is too high. [<9, 18, 17> 26.34/17]", 1445381162], + [45, 9, 1707, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `find` is too high. [15/7]", 1445381162], + [45, 9, 1707, "Metrics/MethodLength: Method has too many lines. [28/10]", 1445381162], + [45, 9, 1707, "Metrics/PerceivedComplexity: Perceived complexity for `find` is too high. [16/8]", 1445381162], + [45, 17, 156, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [7/5]", 3876813166] + ], + "lib/ast/merge/navigable/statement.rb:3050515622": [ + [42, 7, 11078, "Metrics/ClassLength: Class has too many lines. [179/100]", 2550894515], + [96, 11, 550, "Metrics/AbcSize: Assignment Branch Condition size for `find_matching` is too high. [<7, 16, 12> 21.19/17]", 3492534565], + [96, 11, 550, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `find_matching` is too high. [12/7]", 3492534565], + [96, 11, 550, "Metrics/PerceivedComplexity: Perceived complexity for `find_matching` is too high. [12/8]", 3492534565], + [222, 13, 20, "Naming/PredicatePrefix: Rename `has_tree_navigation?` to `tree_navigation?`.", 733442156] + ], + "lib/ast/merge/node_typing.rb:4008165135": [ + [175, 9, 694, "Metrics/MethodLength: Method has too many lines. [12/10]", 777909930], + [213, 9, 891, "Metrics/AbcSize: Assignment Branch Condition size for `find_typing_callable` is too high. [<3, 23, 13> 26.59/17]", 3835052858], + [213, 9, 891, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `find_typing_callable` is too high. [14/7]", 3835052858], + [213, 9, 891, "Metrics/PerceivedComplexity: Perceived complexity for `find_typing_callable` is too high. [14/8]", 3835052858] + ], + "lib/ast/merge/node_wrapper_base.rb:3796877358": [ + [62, 5, 10228, "Metrics/ClassLength: Class has too many lines. [135/100]", 3832956007], + [92, 21, 81, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 4261369704] + ], + "lib/ast/merge/owner_selection.rb:2568070127": [ + [9, 7, 757, "Metrics/MethodLength: Method has too many lines. [13/10]", 2069564552] + ], + "lib/ast/merge/partial_template_merger_base.rb:2252899061": [ + [27, 5, 16780, "Metrics/ClassLength: Class has too many lines. [266/100]", 2205844189], + [48, 23, 81, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 2112244807], + [106, 7, 757, "Metrics/MethodLength: Method has too many lines. [11/10]", 571708764], + [106, 21, 293, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [11/5]", 871709580], + [135, 7, 788, "Metrics/AbcSize: Assignment Branch Condition size for `merge` is too high. [<4, 19, 5> 20.05/17]", 467674580], + [135, 7, 788, "Metrics/MethodLength: Method has too many lines. [13/10]", 467674580], + [213, 7, 533, "Metrics/AbcSize: Assignment Branch Condition size for `normalize_matcher` is too high. [<7, 20, 6> 22.02/17]", 1798972396], + [238, 7, 922, "Metrics/MethodLength: Method has too many lines. [25/10]", 1846154069], + [242, 25, 37, "Style/StringConcatenation: Prefer string interpolation to string concatenation.", 939456830], + [251, 25, 31, "Style/StringConcatenation: Prefer string interpolation to string concatenation.", 1024894473], + [268, 7, 1905, "Metrics/AbcSize: Assignment Branch Condition size for `perform_section_merge` is too high. [<13, 15, 2> 19.95/17]", 2711014340], + [268, 7, 1905, "Metrics/MethodLength: Method has too many lines. [34/10]", 2711014340], + [316, 50, 15, "Lint/UnusedMethodArgument: Unused method argument - `section_context`.", 2872123372], + [334, 7, 690, "Metrics/MethodLength: Method has too many lines. [14/10]", 1807124523], + [367, 7, 1122, "Metrics/AbcSize: Assignment Branch Condition size for `build_merged_content` is too high. [<1, 29, 14> 32.22/17]", 3938410418], + [367, 7, 1122, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `build_merged_content` is too high. [15/7]", 3938410418], + [367, 7, 1122, "Metrics/MethodLength: Method has too many lines. [18/10]", 3938410418], + [367, 7, 1122, "Metrics/PerceivedComplexity: Perceived complexity for `build_merged_content` is too high. [15/8]", 3938410418], + [397, 7, 596, "Metrics/MethodLength: Method has too many lines. [12/10]", 2602121883], + [397, 32, 144, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [7/5]", 1463491208], + [414, 7, 1589, "Metrics/AbcSize: Assignment Branch Condition size for `source_splice_plan_for` is too high. [<6, 18, 9> 21/17]", 2889667289], + [414, 7, 1589, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `source_splice_plan_for` is too high. [9/7]", 2889667289], + [414, 7, 1589, "Metrics/MethodLength: Method has too many lines. [30/10]", 2889667289], + [414, 7, 1589, "Metrics/PerceivedComplexity: Perceived complexity for `source_splice_plan_for` is too high. [9/8]", 2889667289] + ], + "lib/ast/merge/recipe/config.rb:3990762705": [ + [54, 7, 14970, "Metrics/ClassLength: Class has too many lines. [296/100]", 2492031021], + [142, 9, 673, "Metrics/MethodLength: Method has too many lines. [12/10]", 3011978845], + [170, 9, 484, "Metrics/MethodLength: Method has too many lines. [15/10]", 183356432], + [246, 9, 710, "Metrics/AbcSize: Assignment Branch Condition size for `parse_injection` is too high. [<8, 13, 8> 17.23/17]", 641239814], + [246, 9, 710, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `parse_injection` is too high. [9/7]", 641239814], + [246, 9, 710, "Metrics/MethodLength: Method has too many lines. [16/10]", 641239814], + [246, 9, 710, "Metrics/PerceivedComplexity: Perceived complexity for `parse_injection` is too high. [9/8]", 641239814], + [278, 9, 871, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `parse_step` is too high. [8/7]", 3989307721], + [278, 9, 871, "Metrics/MethodLength: Method has too many lines. [20/10]", 3989307721], + [338, 9, 1758, "Metrics/AbcSize: Assignment Branch Condition size for `parse_step_merge_overrides` is too high. [<11, 43, 25> 50.94/17]", 806370438], + [338, 9, 1758, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `parse_step_merge_overrides` is too high. [22/7]", 806370438], + [338, 9, 1758, "Metrics/MethodLength: Method has too many lines. [30/10]", 806370438], + [338, 9, 1758, "Metrics/PerceivedComplexity: Perceived complexity for `parse_step_merge_overrides` is too high. [22/8]", 806370438], + [373, 9, 566, "Metrics/MethodLength: Method has too many lines. [14/10]", 3671206955], + [391, 9, 547, "Metrics/MethodLength: Method has too many lines. [16/10]", 3273587697], + [459, 9, 799, "Metrics/AbcSize: Assignment Branch Condition size for `validate_injection!` is too high. [<2, 15, 12> 19.31/17]", 1665903587], + [459, 9, 799, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `validate_injection!` is too high. [13/7]", 1665903587], + [459, 9, 799, "Metrics/MethodLength: Method has too many lines. [11/10]", 1665903587], + [459, 9, 799, "Metrics/PerceivedComplexity: Perceived complexity for `validate_injection!` is too high. [13/8]", 1665903587] + ], + "lib/ast/merge/recipe/preset.rb:2311326866": [ + [195, 9, 662, "Metrics/MethodLength: Method has too many lines. [12/10]", 1640897447] + ], + "lib/ast/merge/recipe/runner.rb:2243867806": [ + [27, 7, 28612, "Metrics/ClassLength: Class has too many lines. [547/100]", 79000832], + [73, 121, 28, "Layout/LineLength: Line is too long. [148/120]", 1411864995], + [77, 23, 136, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [8/5]", 1636278032], + [92, 9, 849, "Metrics/MethodLength: Method has too many lines. [14/10]", 3083064345], + [128, 24, 129, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 2642826282], + [210, 9, 788, "Metrics/MethodLength: Method has too many lines. [23/10]", 743008161], + [241, 9, 3397, "Metrics/AbcSize: Assignment Branch Condition size for `create_partial_template_merger` is too high. [<3, 52, 16> 54.49/17]", 2086180075], + [241, 9, 3397, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `create_partial_template_merger` is too high. [14/7]", 2086180075], + [241, 9, 3397, "Metrics/MethodLength: Method has too many lines. [63/10]", 2086180075], + [241, 9, 3397, "Metrics/PerceivedComplexity: Perceived complexity for `create_partial_template_merger` is too high. [13/8]", 2086180075], + [250, 121, 11, "Layout/LineLength: Line is too long. [131/120]", 2857356312], + [274, 121, 1, "Layout/LineLength: Line is too long. [121/120]", 177538], + [312, 9, 2210, "Metrics/AbcSize: Assignment Branch Condition size for `create_smart_merger` is too high. [<1, 39, 7> 39.64/17]", 1694660188], + [312, 9, 2210, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `create_smart_merger` is too high. [8/7]", 1694660188], + [312, 9, 2210, "Metrics/MethodLength: Method has too many lines. [45/10]", 1694660188], + [357, 121, 5, "Layout/LineLength: Line is too long. [125/120]", 195423462], + [370, 9, 1087, "Metrics/MethodLength: Method has too many lines. [24/10]", 3850049530], + [370, 31, 124, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 3466458723], + [401, 9, 1008, "Metrics/MethodLength: Method has too many lines. [19/10]", 2010895303], + [401, 25, 143, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [8/5]", 2360959504], + [424, 9, 1263, "Metrics/AbcSize: Assignment Branch Condition size for `execute_partial_merge_step` is too high. [<3, 22, 1> 22.23/17]", 2850918453], + [424, 9, 1263, "Metrics/MethodLength: Method has too many lines. [25/10]", 2850918453], + [453, 9, 835, "Metrics/MethodLength: Method has too many lines. [14/10]", 1478843287], + [471, 9, 808, "Metrics/MethodLength: Method has too many lines. [15/10]", 1127254660], + [471, 37, 155, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [8/5]", 838578768], + [491, 9, 1126, "Metrics/AbcSize: Assignment Branch Condition size for `normalize_smart_merge_result` is too high. [<8, 17, 12> 22.29/17]", 1786697339], + [491, 9, 1126, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `normalize_smart_merge_result` is too high. [9/7]", 1786697339], + [491, 9, 1126, "Metrics/MethodLength: Method has too many lines. [23/10]", 1786697339], + [491, 9, 1126, "Metrics/PerceivedComplexity: Perceived complexity for `normalize_smart_merge_result` is too high. [11/8]", 1786697339], + [518, 9, 2523, "Metrics/AbcSize: Assignment Branch Condition size for `normalize_script_step_result` is too high. [<5, 40, 32> 51.47/17]", 2162420067], + [518, 9, 2523, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `normalize_script_step_result` is too high. [26/7]", 2162420067], + [518, 9, 2523, "Metrics/MethodLength: Method has too many lines. [48/10]", 2162420067], + [518, 9, 2523, "Metrics/PerceivedComplexity: Perceived complexity for `normalize_script_step_result` is too high. [29/8]", 2162420067], + [547, 121, 18, "Layout/LineLength: Line is too long. [138/120]", 93872446], + [556, 121, 56, "Layout/LineLength: Line is too long. [176/120]", 1527250939], + [586, 11, 155, "Style/HashTransformKeys: Prefer `transform_keys` over `each_with_object`.", 837503672], + [591, 9, 698, "Metrics/MethodLength: Method has too many lines. [11/10]", 1116310304], + [635, 9, 2582, "Metrics/AbcSize: Assignment Branch Condition size for `create_result_from_steps` is too high. [<8, 30, 31> 43.87/17]", 2040042265], + [635, 9, 2582, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `create_result_from_steps` is too high. [23/7]", 2040042265], + [635, 9, 2582, "Metrics/MethodLength: Method has too many lines. [60/10]", 2040042265], + [635, 9, 2582, "Metrics/PerceivedComplexity: Perceived complexity for `create_result_from_steps` is too high. [27/8]", 2040042265], + [635, 37, 133, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 789257106], + [649, 42, 40, "Style/SymbolProc: Pass `&:has_anchor` as an argument to `any?` instead of a block.", 4233626321] + ], + "lib/ast/merge/recipe/script_loader.rb:1397873218": [ + [145, 9, 1126, "Metrics/AbcSize: Assignment Branch Condition size for `load_script_file` is too high. [<6, 19, 4> 20.32/17]", 3417625171], + [145, 9, 1126, "Metrics/MethodLength: Method has too many lines. [17/10]", 3417625171] + ], + "lib/ast/merge/rspec/comment_behavior_matrix_adapters.rb:3429217018": [ + [9, 46, 341, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [9/5]", 532439002], + [31, 9, 901, "Metrics/MethodLength: Method has too many lines. [11/10]", 584608092], + [31, 59, 308, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [8/5]", 883491898], + [54, 9, 1269, "Metrics/MethodLength: Method has too many lines. [20/10]", 1021031182], + [65, 51, 6, "Lint/UnusedBlockArgument: Unused block argument - `inline`. If it's necessary, use `_` or `_inline` as an argument name to indicate that it won't be used.", 1605470060], + [69, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 4226982364], + [70, 121, 11, "Layout/LineLength: Line is too long. [131/120]", 1440420861] + ], + "lib/ast/merge/rspec/conformance_fixtures.rb:1295759615": [ + [6, 7, 26, "Style/Documentation: Missing top-level documentation comment for `module Ast::Merge::RSpec::ConformanceFixtures`.", 90066768], + [9, 9, 1432, "Metrics/AbcSize: Assignment Branch Condition size for `normalize_conformance_fixture_support` is too high. [<10, 30, 33> 45.71/17]", 518714108], + [9, 9, 1432, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `normalize_conformance_fixture_support` is too high. [33/7]", 518714108], + [9, 9, 1432, "Metrics/MethodLength: Method has too many lines. [25/10]", 518714108], + [9, 9, 1432, "Metrics/PerceivedComplexity: Perceived complexity for `normalize_conformance_fixture_support` is too high. [31/8]", 518714108] + ], + "lib/ast/merge/rspec/dependency_tags_config.rb:3604516304": [ + [30, 1, 2102, "Metrics/BlockLength: Block has too many lines. [26/25]", 113766065] + ], + "lib/ast/merge/rspec/merge_gem_registry.rb:3009576030": [ + [58, 7, 12129, "Metrics/ModuleLength: Module has too many lines. [158/100]", 335549747], + [90, 9, 780, "Metrics/MethodLength: Method has too many lines. [14/10]", 978965737], + [90, 21, 99, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 3580433546], + [118, 9, 650, "Metrics/MethodLength: Method has too many lines. [12/10]", 3143160805], + [118, 31, 130, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 2575863904], + [143, 9, 823, "Metrics/MethodLength: Method has too many lines. [17/10]", 4033116153], + [200, 9, 765, "Metrics/AbcSize: Assignment Branch Condition size for `register_known_gems` is too high. [<3, 17, 3> 17.52/17]", 1367620151], + [200, 9, 765, "Metrics/MethodLength: Method has too many lines. [17/10]", 1367620151] + ], + "lib/ast/merge/rspec/shared_examples.rb:151517887": [ + [27, 121, 3, "Layout/LineLength: Line is too long. [123/120]", 193426019], + [31, 121, 7, "Layout/LineLength: Line is too long. [127/120]", 330577472] + ], + "lib/ast/merge/rspec/shared_examples/comment_behavior_matrix.rb:3695671858": [ + [36, 1, 27847, "Metrics/BlockLength: Block has too many lines. [540/25]", 3796645407], + [38, 55, 15, "Style/SymbolProc: Pass `&:value` as an argument to `lambda` instead of a block.", 1808354951], + [42, 64, 23, "Style/SymbolProc: Pass `&:statements` as an argument to `lambda` instead of a block.", 277221641], + [69, 3, 4455, "Metrics/BlockLength: Block has too many lines. [82/25]", 3672334777], + [72, 5, 1763, "Metrics/BlockLength: Block has too many lines. [34/25]", 164750821], + [165, 3, 22093, "Metrics/BlockLength: Block has too many lines. [429/25]", 229312375], + [292, 5, 1918, "Metrics/BlockLength: Block has too many lines. [29/25]", 1312741055], + [323, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1902517440], + [325, 121, 5, "Layout/LineLength: Line is too long. [125/120]", 173482512], + [328, 121, 5, "Layout/LineLength: Line is too long. [125/120]", 167607404], + [476, 5, 1605, "Metrics/BlockLength: Block has too many lines. [35/25]", 1943633697], + [677, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1902517440] + ], + "lib/ast/merge/rspec/shared_examples/conflict_resolver_base.rb:624045197": [ + [30, 1, 7893, "Metrics/BlockLength: Block has too many lines. [197/25]", 3450672926], + [37, 3, 1372, "Metrics/BlockLength: Block has too many lines. [33/25]", 3389152504], + [83, 3, 1206, "Metrics/BlockLength: Block has too many lines. [35/25]", 1580202348], + [128, 3, 1177, "Metrics/BlockLength: Block has too many lines. [33/25]", 2178974049], + [215, 3, 2443, "Metrics/BlockLength: Block has too many lines. [51/25]", 2538475273], + [219, 5, 1909, "Metrics/BlockLength: Block has too many lines. [35/25]", 880175101], + [279, 1, 2518, "Metrics/BlockLength: Block has too many lines. [74/25]", 958151448], + [286, 3, 2235, "Metrics/BlockLength: Block has too many lines. [70/25]", 2123260684], + [391, 1, 1317, "Metrics/BlockLength: Block has too many lines. [37/25]", 2321517041], + [439, 1, 1639, "Metrics/BlockLength: Block has too many lines. [37/25]", 276150366] + ], + "lib/ast/merge/rspec/shared_examples/debug_logger.rb:2747003588": [ + [23, 1, 4741, "Metrics/BlockLength: Block has too many lines. [121/25]", 3341338388], + [47, 3, 976, "Metrics/BlockLength: Block has too many lines. [27/25]", 2640321404], + [85, 3, 1452, "Metrics/BlockLength: Block has too many lines. [34/25]", 554663062] + ], + "lib/ast/merge/rspec/shared_examples/feature_profile.rb:4172143324": [ + [30, 1, 4249, "Metrics/BlockLength: Block has too many lines. [53/25]", 3787230403] + ], + "lib/ast/merge/rspec/shared_examples/file_analyzable.rb:2391547213": [ + [44, 1, 6468, "Metrics/BlockLength: Block has too many lines. [145/25]", 3744642916] + ], + "lib/ast/merge/rspec/shared_examples/freeze_node_base.rb:1711126715": [ + [23, 1, 5952, "Metrics/BlockLength: Block has too many lines. [157/25]", 3152271039], + [29, 3, 2836, "Metrics/BlockLength: Block has too many lines. [69/25]", 2082270913], + [115, 3, 1552, "Metrics/BlockLength: Block has too many lines. [46/25]", 4180117745] + ], + "lib/ast/merge/rspec/shared_examples/layout_attachment.rb:4130619694": [ + [30, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 1263574869], + [31, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 4282300883] + ], + "lib/ast/merge/rspec/shared_examples/layout_augmenter.rb:1928277603": [ + [18, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1311107624], + [19, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1311107624] + ], + "lib/ast/merge/rspec/shared_examples/merge_result_base.rb:2962043558": [ + [18, 1, 2330, "Metrics/BlockLength: Block has too many lines. [67/25]", 3496673178], + [53, 3, 1271, "Metrics/BlockLength: Block has too many lines. [42/25]", 2278976858] + ], + "lib/ast/merge/rspec/shared_examples/merger_config.rb:2413785902": [ + [18, 1, 8240, "Metrics/BlockLength: Block has too many lines. [193/25]", 3665443345], + [57, 3, 1628, "Metrics/BlockLength: Block has too many lines. [32/25]", 7828299], + [98, 3, 1266, "Metrics/BlockLength: Block has too many lines. [28/25]", 317929439], + [159, 3, 1740, "Metrics/BlockLength: Block has too many lines. [42/25]", 1736487820], + [217, 3, 1373, "Metrics/BlockLength: Block has too many lines. [30/25]", 442933563] + ], + "lib/ast/merge/rspec/shared_examples/recipe_preset_contract.rb:1495545061": [ + [7, 1, 2558, "Metrics/BlockLength: Block has too many lines. [51/25]", 4091815632] + ], + "lib/ast/merge/rspec/shared_examples/removal_mode_compliance.rb:3645548199": [ + [24, 1, 1860, "Metrics/BlockLength: Block has too many lines. [33/25]", 1115825136] + ], + "lib/ast/merge/rspec/shared_examples/reproducible_merge.rb:2276592459": [ + [51, 1, 2030, "Metrics/BlockLength: Block has too many lines. [52/25]", 563553381] + ], + "lib/ast/merge/rspec/shared_examples/reproducible_partial_merge.rb:524436129": [ + [3, 1, 2321, "Metrics/BlockLength: Block has too many lines. [44/25]", 3206099540] + ], + "lib/ast/merge/rspec/shared_examples/retained_blank_gap_compliance.rb:2798862618": [ + [3, 1, 1409, "Metrics/BlockLength: Block has too many lines. [34/25]", 3708955218] + ], + "lib/ast/merge/rspec/shared_examples/runtime_debug_contract.rb:4244040583": [ + [8, 1, 2808, "Metrics/BlockLength: Block has too many lines. [48/25]", 3274492878] + ], + "lib/ast/merge/rspec/shared_examples/unresolved_helper_contract.rb:2916431464": [ + [9, 1, 5998, "Metrics/BlockLength: Block has too many lines. [126/25]", 4174562424], + [94, 3, 1515, "Metrics/BlockLength: Block has too many lines. [32/25]", 1928238376] + ], + "lib/ast/merge/rspec/shared_examples/unresolved_review_state_transport_contract.rb:3368966854": [ + [14, 1, 3386, "Metrics/BlockLength: Block has too many lines. [68/25]", 2910343214], + [65, 3, 317, "Metrics/MethodLength: Method has too many lines. [12/10]", 2653897690] + ], + "lib/ast/merge/rspec/shared_examples/unresolved_runtime_contract.rb:1424234700": [ + [10, 1, 2652, "Metrics/BlockLength: Block has too many lines. [42/25]", 960283638], + [31, 121, 10, "Layout/LineLength: Line is too long. [130/120]", 2892620242], + [46, 121, 3, "Layout/LineLength: Line is too long. [123/120]", 193437756] + ], + "lib/ast/merge/rspec/shared_examples/unresolved_runtime_debug_contract.rb:2897026147": [ + [25, 121, 18, "Layout/LineLength: Line is too long. [138/120]", 2418171787], + [26, 121, 5, "Layout/LineLength: Line is too long. [125/120]", 235635831] + ], + "lib/ast/merge/ruleset/config.rb:4242726919": [ + [7, 7, 3664, "Metrics/ClassLength: Class has too many lines. [101/100]", 1968929597], + [36, 9, 933, "Metrics/MethodLength: Method has too many lines. [15/10]", 3334511209], + [36, 23, 319, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [15/5]", 1652945408], + [65, 9, 515, "Metrics/AbcSize: Assignment Branch Condition size for `to_h` is too high. [<0, 18, 3> 18.25/17]", 2614325513], + [65, 9, 515, "Metrics/MethodLength: Method has too many lines. [14/10]", 2614325513] + ], + "lib/ast/merge/ruleset/feature_profile.rb:3980745364": [ + [12, 7, 6054, "Metrics/ClassLength: Class has too many lines. [155/100]", 2818730231], + [29, 9, 1351, "Metrics/AbcSize: Assignment Branch Condition size for `initialize` is too high. [<17, 18, 7> 25.73/17]", 2248702332], + [29, 9, 1351, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `initialize` is too high. [8/7]", 2248702332], + [29, 9, 1351, "Metrics/MethodLength: Method has too many lines. [17/10]", 2248702332], + [29, 23, 422, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [14/5]", 1415781648], + [138, 9, 1509, "Metrics/AbcSize: Assignment Branch Condition size for `to_h` is too high. [<0, 36, 6> 36.5/17]", 3793816437], + [138, 9, 1509, "Metrics/MethodLength: Method has too many lines. [31/10]", 3793816437] + ], + "lib/ast/merge/ruleset/parser.rb:698282871": [ + [7, 7, 9396, "Metrics/ClassLength: Class has too many lines. [199/100]", 1305123525], + [43, 9, 473, "Metrics/AbcSize: Assignment Branch Condition size for `parse` is too high. [<0, 17, 2> 17.12/17]", 1400394586], + [43, 9, 473, "Metrics/MethodLength: Method has too many lines. [12/10]", 1400394586], + [71, 9, 1053, "Metrics/MethodLength: Method has too many lines. [24/10]", 1569959910], + [101, 9, 1123, "Metrics/AbcSize: Assignment Branch Condition size for `parse_single_value_directive!` is too high. [<7, 13, 10> 17.83/17]", 706129883], + [101, 9, 1123, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `parse_single_value_directive!` is too high. [8/7]", 706129883], + [101, 9, 1123, "Metrics/MethodLength: Method has too many lines. [24/10]", 706129883], + [170, 9, 605, "Metrics/MethodLength: Method has too many lines. [11/10]", 336127382], + [186, 9, 687, "Metrics/MethodLength: Method has too many lines. [11/10]", 2962844982] + ], + "lib/ast/merge/ruleset/profile_vocabulary.rb:2359837647": [ + [7, 7, 3956, "Metrics/ModuleLength: Module has too many lines. [107/100]", 1680256705] + ], + "lib/ast/merge/ruleset/runtime_declaration.rb:1016848190": [ + [18, 9, 819, "Metrics/AbcSize: Assignment Branch Condition size for `initialize` is too high. [<11, 13, 5> 17.75/17]", 4043304883], + [18, 9, 819, "Metrics/MethodLength: Method has too many lines. [11/10]", 4043304883], + [18, 23, 240, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [8/5]", 3868000276], + [49, 9, 551, "Metrics/MethodLength: Method has too many lines. [13/10]", 448215861] + ], + "lib/ast/merge/ruleset/runtime_translator.rb:3255492631": [ + [9, 11, 816, "Metrics/MethodLength: Method has too many lines. [19/10]", 225301385], + [31, 11, 986, "Metrics/AbcSize: Assignment Branch Condition size for `feature_profile` is too high. [<1, 17, 0> 17.03/17]", 1395467476], + [31, 11, 986, "Metrics/MethodLength: Method has too many lines. [19/10]", 1395467476] + ], + "lib/ast/merge/ruleset/support_style_resolver.rb:508975884": [ + [9, 11, 864, "Metrics/MethodLength: Method has too many lines. [22/10]", 3902551296] + ], + "lib/ast/merge/runtime/child_result.rb:4083710804": [ + [16, 9, 698, "Metrics/AbcSize: Assignment Branch Condition size for `initialize` is too high. [<7, 16, 2> 17.58/17]", 2208366179], + [16, 23, 227, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [7/5]", 3688358290], + [38, 9, 584, "Metrics/MethodLength: Method has too many lines. [11/10]", 3113479157], + [55, 11, 106, "Style/HashTransformKeys: Prefer `transform_keys` over `each_with_object`.", 4262612225] + ], + "lib/ast/merge/runtime/delegate.rb:3607371286": [ + [17, 23, 285, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [10/5]", 2793452069] + ], + "lib/ast/merge/runtime/diagnostic.rb:805162185": [ + [10, 23, 72, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 1875462867] + ], + "lib/ast/merge/runtime/operation.rb:1030261783": [ + [20, 9, 767, "Metrics/MethodLength: Method has too many lines. [11/10]", 2728174753], + [20, 23, 278, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [10/5]", 694444911], + [100, 9, 617, "Metrics/AbcSize: Assignment Branch Condition size for `to_h` is too high. [<2, 24, 6> 24.82/17]", 1175382849], + [100, 9, 617, "Metrics/MethodLength: Method has too many lines. [11/10]", 1175382849] + ], + "lib/ast/merge/runtime/resolution_case.rb:250040454": [ + [8, 9, 707, "Metrics/AbcSize: Assignment Branch Condition size for `from_h` is too high. [<1, 19, 6> 19.95/17]", 2592154170], + [29, 23, 189, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [7/5]", 818714714], + [81, 11, 111, "Style/HashTransformKeys: Prefer `transform_keys` over `each_with_object`.", 2712537644] + ], + "lib/ast/merge/runtime/root_session_support.rb:1917388966": [ + [10, 9, 2153, "Metrics/AbcSize: Assignment Branch Condition size for `start_runtime_root_session!` is too high. [<5, 20, 3> 20.83/17]", 1888056651], + [10, 9, 2153, "Metrics/MethodLength: Method has too many lines. [41/10]", 1888056651], + [10, 40, 421, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [14/5]", 2297301282], + [60, 121, 10, "Layout/LineLength: Line is too long. [130/120]", 2312419928], + [68, 9, 771, "Metrics/MethodLength: Method has too many lines. [13/10]", 1787620786], + [68, 43, 191, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 3635875424] + ], + "lib/ast/merge/runtime/session.rb:628419040": [ + [66, 9, 1203, "Metrics/AbcSize: Assignment Branch Condition size for `summary` is too high. [<5, 43, 13> 45.2/17]", 550888870], + [66, 9, 1203, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `summary` is too high. [14/7]", 550888870], + [66, 9, 1203, "Metrics/MethodLength: Method has too many lines. [20/10]", 550888870], + [66, 9, 1203, "Metrics/PerceivedComplexity: Perceived complexity for `summary` is too high. [14/8]", 550888870] + ], + "lib/ast/merge/runtime/surface.rb:3684795905": [ + [17, 23, 230, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [8/5]", 469229117], + [44, 9, 418, "Metrics/MethodLength: Method has too many lines. [11/10]", 998969973] + ], + "lib/ast/merge/section_typing.rb:4261989256": [ + [112, 9, 710, "Metrics/MethodLength: Method has too many lines. [15/10]", 3600335459], + [176, 9, 67, "Lint/MissingSuper: Call `super` to initialize state of the parent class.", 4077537758], + [216, 9, 85, "Lint/MissingSuper: Call `super` to initialize state of the parent class.", 3648782014], + [245, 9, 1446, "Metrics/AbcSize: Assignment Branch Condition size for `merge_sections` is too high. [<13, 20, 12> 26.7/17]", 525095633], + [245, 9, 1446, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `merge_sections` is too high. [12/7]", 525095633], + [245, 9, 1446, "Metrics/MethodLength: Method has too many lines. [28/10]", 525095633], + [245, 9, 1446, "Metrics/PerceivedComplexity: Perceived complexity for `merge_sections` is too high. [13/8]", 525095633] + ], + "lib/ast/merge/smart_merger_base.rb:1823596106": [ + [109, 5, 15324, "Metrics/ClassLength: Class has too many lines. [172/100]", 3547407870], + [214, 7, 1974, "Metrics/AbcSize: Assignment Branch Condition size for `initialize` is too high. [<20, 14, 5> 24.92/17]", 2211610736], + [214, 7, 1974, "Metrics/MethodLength: Method has too many lines. [23/10]", 2211610736], + [214, 21, 443, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [15/5]", 1530523783], + [424, 7, 1312, "Metrics/AbcSize: Assignment Branch Condition size for `parse_and_analyze` is too high. [<7, 25, 11> 28.2/17]", 1640248187], + [424, 7, 1312, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `parse_and_analyze` is too high. [10/7]", 1640248187], + [424, 7, 1312, "Metrics/MethodLength: Method has too many lines. [15/10]", 1640248187], + [424, 7, 1312, "Metrics/PerceivedComplexity: Perceived complexity for `parse_and_analyze` is too high. [10/8]", 1640248187], + [517, 12, 52, "Style/NumericPredicate: Use `result_class.instance_method(:initialize).arity.zero?` instead of `result_class.instance_method(:initialize).arity == 0`.", 1312375552] + ], + "lib/ast/merge/source_region_report_support.rb:31261288": [ + [10, 5, 9026, "Metrics/ModuleLength: Module has too many lines. [204/100]", 3211817308], + [13, 7, 1175, "Metrics/MethodLength: Method has too many lines. [19/10]", 351011969], + [13, 49, 232, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [7/5]", 1034046028], + [38, 7, 1409, "Metrics/AbcSize: Assignment Branch Condition size for `source_blank_line_ownership_regions` is too high. [<9, 23, 11> 27.04/17]", 280304508], + [38, 7, 1409, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `source_blank_line_ownership_regions` is too high. [9/7]", 280304508], + [38, 7, 1409, "Metrics/MethodLength: Method has too many lines. [26/10]", 280304508], + [38, 7, 1409, "Metrics/PerceivedComplexity: Perceived complexity for `source_blank_line_ownership_regions` is too high. [11/8]", 280304508], + [69, 7, 1345, "Metrics/AbcSize: Assignment Branch Condition size for `source_interleaved_regions_for_report` is too high. [<10, 13, 6> 17.46/17]", 253205841], + [69, 7, 1345, "Metrics/MethodLength: Method has too many lines. [32/10]", 253205841], + [109, 7, 1638, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `source_interstitial_region_for_report` is too high. [11/7]", 2543419072], + [109, 7, 1638, "Metrics/MethodLength: Method has too many lines. [32/10]", 2543419072], + [109, 7, 1638, "Metrics/PerceivedComplexity: Perceived complexity for `source_interstitial_region_for_report` is too high. [10/8]", 2543419072], + [109, 48, 133, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 2244283058], + [168, 7, 455, "Metrics/MethodLength: Method has too many lines. [12/10]", 1734550115], + [184, 7, 1444, "Metrics/AbcSize: Assignment Branch Condition size for `source_comment_block_attachment` is too high. [<7, 27, 17> 32.66/17]", 2744031837], + [184, 7, 1444, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `source_comment_block_attachment` is too high. [14/7]", 2744031837], + [184, 7, 1444, "Metrics/MethodLength: Method has too many lines. [21/10]", 2744031837], + [184, 7, 1444, "Metrics/PerceivedComplexity: Perceived complexity for `source_comment_block_attachment` is too high. [15/8]", 2744031837], + [184, 42, 133, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 2758724348], + [192, 121, 1, "Layout/LineLength: Line is too long. [121/120]", 177625] + ], + "lib/ast/merge/structural_edit/boundary.rb:2838060197": [ + [20, 23, 93, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 3901214537], + [41, 38, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], + [51, 38, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], + [60, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2087440865] + ], + "lib/ast/merge/structural_edit/boundary_support.rb:3537000977": [ + [32, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5861061], + [33, 121, 5, "Layout/LineLength: Line is too long. [125/120]", 97596930] + ], + "lib/ast/merge/structural_edit/plan_set.rb:538463647": [ + [116, 121, 42, "Layout/LineLength: Line is too long. [162/120]", 2855200692] + ], + "lib/ast/merge/structural_edit/rehome_plan.rb:2152178780": [ + [23, 23, 123, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 3433617242], + [100, 9, 519, "Metrics/MethodLength: Method has too many lines. [11/10]", 318006380], + [136, 121, 48, "Layout/LineLength: Line is too long. [168/120]", 2367140872] + ], + "lib/ast/merge/structural_edit/remove_plan.rb:1189569486": [ + [11, 7, 9717, "Metrics/ClassLength: Class has too many lines. [160/100]", 3652701475], + [25, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5861091], + [27, 9, 1409, "Metrics/MethodLength: Method has too many lines. [22/10]", 3344870777], + [27, 23, 255, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [11/5]", 3970946607], + [28, 121, 40, "Layout/LineLength: Line is too long. [160/120]", 1637059282], + [36, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5859104], + [196, 121, 32, "Layout/LineLength: Line is too long. [152/120]", 1617827253], + [224, 9, 1032, "Metrics/MethodLength: Method has too many lines. [20/10]", 968444047] + ], + "lib/ast/merge/structural_edit/remove_plan_support.rb:877461974": [ + [9, 9, 11, "Style/ModuleFunction: Use `module_function` instead of `extend self`.", 1210897631], + [19, 9, 1429, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `build_remove_plan` is too high. [8/7]", 4091314919], + [19, 9, 1429, "Metrics/MethodLength: Method has too many lines. [32/10]", 4091314919] + ], + "lib/ast/merge/structural_edit/splice_plan.rb:2675806114": [ + [39, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1683893295], + [42, 23, 203, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [9/5]", 3653221702], + [113, 9, 517, "Metrics/MethodLength: Method has too many lines. [11/10]", 634912361] + ], + "lib/ast/merge/structured_emitter_provenance_support.rb:445323365": [ + [5, 5, 41, "Style/Documentation: Missing top-level documentation comment for `module Ast::Merge::StructuredEmitterProvenanceSupport`.", 3548518830] + ], + "lib/ast/merge/structured_review_apply_support.rb:3649736380": [ + [5, 5, 35, "Style/Documentation: Missing top-level documentation comment for `module Ast::Merge::StructuredReviewApplySupport`.", 1282380463], + [22, 7, 782, "Metrics/AbcSize: Assignment Branch Condition size for `current_output_span_for` is too high. [<6, 19, 11> 22.76/17]", 4137750179], + [22, 7, 782, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `current_output_span_for` is too high. [8/7]", 4137750179], + [22, 7, 782, "Metrics/MethodLength: Method has too many lines. [14/10]", 4137750179], + [42, 7, 595, "Metrics/MethodLength: Method has too many lines. [12/10]", 2080934521], + [60, 121, 10, "Layout/LineLength: Line is too long. [130/120]", 3151172498] + ], + "lib/ast/merge/text/conflict_resolver.rb:989169286": [ + [19, 7, 9182, "Metrics/ClassLength: Class has too many lines. [159/100]", 1070563745], + [28, 23, 211, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 2639535499], + [53, 9, 2507, "Metrics/AbcSize: Assignment Branch Condition size for `resolve_batch` is too high. [<15, 34, 5> 37.5/17]", 825130797], + [53, 9, 2507, "Metrics/MethodLength: Method has too many lines. [44/10]", 825130797], + [196, 9, 2458, "Metrics/AbcSize: Assignment Branch Condition size for `resolve_matched_pair` is too high. [<2, 30, 11> 32.02/17]", 4037214978], + [196, 9, 2458, "Metrics/MethodLength: Method has too many lines. [46/10]", 4037214978] + ], + "lib/ast/merge/text/file_analysis.rb:1530312707": [ + [106, 9, 1484, "Metrics/AbcSize: Assignment Branch Condition size for `parse_statements` is too high. [<11, 15, 6> 19.54/17]", 1858083071], + [106, 9, 1484, "Metrics/MethodLength: Method has too many lines. [34/10]", 1858083071], + [160, 9, 449, "Metrics/MethodLength: Method has too many lines. [11/10]", 1902035813] + ], + "lib/ast/merge/text/line_node.rb:3385927013": [ + [145, 9, 699, "Metrics/MethodLength: Method has too many lines. [17/10]", 2201872249] + ], + "lib/ast/merge/text/section_splitter.rb:129704488": [ + [141, 9, 1442, "Metrics/AbcSize: Assignment Branch Condition size for `merge_section_lists` is too high. [<13, 20, 6> 24.6/17]", 3551729170], + [141, 9, 1442, "Metrics/MethodLength: Method has too many lines. [23/10]", 3551729170], + [322, 9, 1767, "Metrics/AbcSize: Assignment Branch Condition size for `split` is too high. [<11, 29, 10> 32.59/17]", 2207922758], + [322, 9, 1767, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `split` is too high. [10/7]", 2207922758], + [322, 9, 1767, "Metrics/MethodLength: Method has too many lines. [46/10]", 2207922758], + [322, 9, 1767, "Metrics/PerceivedComplexity: Perceived complexity for `split` is too high. [13/8]", 2207922758], + [328, 11, 1019, "Metrics/BlockLength: Block has too many lines. [26/25]", 1561634792] + ], + "lib/ast/merge/text/smart_merger.rb:2405807903": [ + [67, 9, 831, "Metrics/MethodLength: Method has too many lines. [12/10]", 584426022], + [67, 23, 350, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [10/5]", 3074172637] + ], + "lib/ast/merge/trailing_groups/alignment_sort.rb:2593404330": [ + [40, 9, 513, "Metrics/MethodLength: Method has too many lines. [12/10]", 89360683] + ], + "lib/ast/merge/trailing_groups/core.rb:4231959665": [ + [61, 9, 812, "Metrics/MethodLength: Method has too many lines. [17/10]", 1777526069], + [101, 9, 998, "Metrics/AbcSize: Assignment Branch Condition size for `flush_ready_trailing_groups` is too high. [<8, 18, 15> 24.76/17]", 2397698441], + [101, 9, 998, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `flush_ready_trailing_groups` is too high. [13/7]", 2397698441], + [101, 9, 998, "Metrics/MethodLength: Method has too many lines. [17/10]", 2397698441], + [101, 9, 998, "Metrics/PerceivedComplexity: Perceived complexity for `flush_ready_trailing_groups` is too high. [13/8]", 2397698441] + ], + "lib/ast/merge/trailing_groups/dest_iterate.rb:3897205087": [ + [69, 9, 751, "Metrics/MethodLength: Method has too many lines. [12/10]", 3915657972], + [69, 47, 199, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 2545849044] + ], + "lib/ast/merge/unresolved_support.rb:2881272494": [ + [7, 5, 24, "Style/Documentation: Missing top-level documentation comment for `module Ast::Merge::UnresolvedSupport`.", 990281691], + [7, 5, 4392, "Metrics/ModuleLength: Module has too many lines. [116/100]", 3475162940], + [32, 20, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], + [67, 20, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], + [85, 7, 1038, "Metrics/MethodLength: Method has too many lines. [14/10]", 3139619197], + [85, 40, 338, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [14/5]", 71164914] + ], + "spec/ast/merge/ast_node_spec.rb:1362065144": [ + [3, 1, 8199, "Metrics/BlockLength: Block has too many lines. [254/25]", 1649868231], + [18, 3, 1030, "Metrics/BlockLength: Block has too many lines. [33/25]", 1409835577] + ], + "spec/ast/merge/block_directive_spec.rb:2305756581": [ + [3, 1, 5181, "Metrics/BlockLength: Block has too many lines. [138/25]", 1887900896], + [128, 3, 1391, "Metrics/BlockLength: Block has too many lines. [39/25]", 3626371694] + ], + "spec/ast/merge/comment/attachment_spec.rb:2571833836": [ + [3, 1, 5536, "Metrics/BlockLength: Block has too many lines. [150/25]", 1841571757], + [93, 3, 1639, "Metrics/BlockLength: Block has too many lines. [37/25]", 212730671] + ], + "spec/ast/merge/comment/augmenter_spec.rb:4266625483": [ + [3, 1, 9141, "Metrics/BlockLength: Block has too many lines. [212/25]", 530365996], + [16, 3, 6849, "Metrics/BlockLength: Block has too many lines. [154/25]", 503152628], + [200, 3, 1244, "Metrics/BlockLength: Block has too many lines. [33/25]", 3565041107] + ], + "spec/ast/merge/comment/block_spec.rb:4138473890": [ + [3, 1, 9021, "Metrics/BlockLength: Block has too many lines. [250/25]", 1617505173], + [8, 3, 1115, "Metrics/BlockLength: Block has too many lines. [27/25]", 2958989619], + [93, 3, 1127, "Metrics/BlockLength: Block has too many lines. [33/25]", 196340527], + [123, 45, 16, "Style/StringConcatenation: Prefer string interpolation to string concatenation.", 155572628], + [159, 3, 1432, "Metrics/BlockLength: Block has too many lines. [35/25]", 281400319] + ], + "spec/ast/merge/comment/c_style_tracker_base_spec.rb:3154319400": [ + [3, 1, 5816, "Metrics/BlockLength: Block has too many lines. [133/25]", 680831933], + [100, 3, 1450, "Metrics/BlockLength: Block has too many lines. [35/25]", 4153882185] + ], + "spec/ast/merge/comment/capability_spec.rb:2763521225": [ + [3, 1, 3522, "Metrics/BlockLength: Block has too many lines. [89/25]", 1487980773], + [4, 3, 1954, "Metrics/BlockLength: Block has too many lines. [41/25]", 160187362] + ], + "spec/ast/merge/comment/empty_spec.rb:1801324640": [ + [3, 1, 2584, "Metrics/BlockLength: Block has too many lines. [70/25]", 270179899], + [4, 3, 1047, "Metrics/BlockLength: Block has too many lines. [27/25]", 3056449816] + ], + "spec/ast/merge/comment/hash_tracker_base_spec.rb:3624528747": [ + [3, 1, 9653, "Metrics/BlockLength: Block has too many lines. [271/25]", 3748659406], + [8, 3, 1210, "Metrics/BlockLength: Block has too many lines. [37/25]", 2566766302], + [21, 7, 872, "Metrics/AbcSize: Assignment Branch Condition size for `extract_comments` is too high. [<7, 24, 5> 25.5/17]", 1213080161], + [21, 7, 872, "Metrics/MethodLength: Method has too many lines. [25/10]", 1213080161], + [275, 3, 1171, "Metrics/BlockLength: Block has too many lines. [29/25]", 1425466742] + ], + "spec/ast/merge/comment/line_spec.rb:1487829548": [ + [3, 1, 5291, "Metrics/BlockLength: Block has too many lines. [128/25]", 587604747], + [6, 3, 1573, "Metrics/BlockLength: Block has too many lines. [37/25]", 4105920006] + ], + "spec/ast/merge/comment/parser_spec.rb:2443973508": [ + [3, 1, 9855, "Metrics/BlockLength: Block has too many lines. [237/25]", 404174977], + [4, 3, 1013, "Metrics/BlockLength: Block has too many lines. [26/25]", 182655397], + [38, 3, 1282, "Metrics/BlockLength: Block has too many lines. [28/25]", 2303702609] + ], + "spec/ast/merge/comment/quoted_hash_line_parser_spec.rb:3795390831": [ + [3, 1, 1810, "Metrics/BlockLength: Block has too many lines. [44/25]", 2575838586], + [6, 3, 1700, "Metrics/BlockLength: Block has too many lines. [41/25]", 1553834548] + ], + "spec/ast/merge/comment/region_merge_policy_spec.rb:4175996936": [ + [3, 1, 3618, "Metrics/BlockLength: Block has too many lines. [75/25]", 4006378358], + [11, 3, 2752, "Metrics/BlockLength: Block has too many lines. [52/25]", 494211987] + ], + "spec/ast/merge/comment/region_spec.rb:2674736508": [ + [3, 1, 4033, "Metrics/BlockLength: Block has too many lines. [91/25]", 1828104331] + ], + "spec/ast/merge/comment/style_spec.rb:1875195890": [ + [3, 1, 4040, "Metrics/BlockLength: Block has too many lines. [101/25]", 2759361650] + ], + "spec/ast/merge/comment/support_style_spec.rb:1350169032": [ + [3, 1, 1577, "Metrics/BlockLength: Block has too many lines. [39/25]", 3414039011] + ], + "spec/ast/merge/comment/tracked_hash_adapter_spec.rb:1256807736": [ + [3, 1, 4482, "Metrics/BlockLength: Block has too many lines. [97/25]", 264417763], + [4, 3, 3101, "Metrics/BlockLength: Block has too many lines. [63/25]", 1050939978], + [81, 3, 1313, "Metrics/BlockLength: Block has too many lines. [30/25]", 515655104] + ], + "spec/ast/merge/comment_layout_emission_support_spec.rb:19704158": [ + [3, 1, 7555, "Metrics/BlockLength: Block has too many lines. [186/25]", 980479163], + [4, 3, 73, "Lint/ConstantDefinitionInBlock: Do not define constants this way within a block.", 3470206647], + [6, 3, 175, "Lint/ConstantDefinitionInBlock: Do not define constants this way within a block.", 622428252], + [16, 3, 93, "Lint/ConstantDefinitionInBlock: Do not define constants this way within a block.", 546547334], + [18, 3, 734, "Lint/ConstantDefinitionInBlock: Do not define constants this way within a block.", 3226190975], + [21, 19, 120, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 3763716348], + [39, 27, 6, "Lint/UnusedMethodArgument: Unused method argument - `owners`. You can also write as `comment_augmenter(*)` if you want the method to accept any arguments but don't care about them.", 1719502071], + [44, 3, 574, "Lint/ConstantDefinitionInBlock: Do not define constants this way within a block.", 1736750341], + [61, 3, 152, "Lint/ConstantDefinitionInBlock: Do not define constants this way within a block.", 1212551629], + [101, 3, 1173, "Metrics/BlockLength: Block has too many lines. [27/25]", 2346194513], + [132, 3, 1624, "Metrics/BlockLength: Block has too many lines. [36/25]", 2359972174] + ], + "spec/ast/merge/comment_spec.rb:81945459": [ + [3, 1, 15888, "Metrics/BlockLength: Block has too many lines. [384/25]", 2229554982], + [4, 3, 3957, "Metrics/BlockLength: Block has too many lines. [84/25]", 660667217], + [5, 5, 1187, "Metrics/BlockLength: Block has too many lines. [26/25]", 241562105], + [105, 3, 1371, "Metrics/BlockLength: Block has too many lines. [30/25]", 1901983597], + [159, 3, 1296, "Metrics/BlockLength: Block has too many lines. [30/25]", 1749880380], + [239, 3, 1151, "Metrics/BlockLength: Block has too many lines. [28/25]", 183967322], + [272, 3, 2004, "Metrics/BlockLength: Block has too many lines. [45/25]", 2594323837], + [349, 3, 3220, "Metrics/BlockLength: Block has too many lines. [83/25]", 790417809], + [350, 5, 2347, "Metrics/BlockLength: Block has too many lines. [60/25]", 4016801881] + ], + "spec/ast/merge/composite_match_refiner_spec.rb:2888297870": [ + [3, 1, 6152, "Metrics/BlockLength: Block has too many lines. [143/25]", 3308692548], + [55, 3, 4118, "Metrics/BlockLength: Block has too many lines. [87/25]", 1405655464] + ], + "spec/ast/merge/conflict_resolver_base_spec.rb:3331938447": [ + [5, 1, 20643, "Metrics/BlockLength: Block has too many lines. [516/25]", 3129196558], + [14, 59, 14, "Lint/UnusedMethodArgument: Unused method argument - `template_index`.", 1809801172], + [14, 76, 10, "Lint/UnusedMethodArgument: Unused method argument - `dest_index`.", 2703999490], + [47, 61, 14, "Lint/UnusedMethodArgument: Unused method argument - `template_index`. You can also write as `resolve_node_pair(*)` if you want the method to accept any arguments but don't care about them.", 1809801172], + [47, 78, 10, "Lint/UnusedMethodArgument: Unused method argument - `dest_index`. You can also write as `resolve_node_pair(*)` if you want the method to accept any arguments but don't care about them.", 2703999490], + [105, 3, 17203, "Metrics/BlockLength: Block has too many lines. [425/25]", 1114912980], + [154, 5, 1797, "Metrics/BlockLength: Block has too many lines. [37/25]", 515146940], + [203, 5, 1373, "Metrics/BlockLength: Block has too many lines. [32/25]", 603210832], + [292, 5, 2874, "Metrics/BlockLength: Block has too many lines. [77/25]", 3918129775], + [341, 7, 1292, "Metrics/BlockLength: Block has too many lines. [34/25]", 1769555944], + [402, 5, 1857, "Metrics/BlockLength: Block has too many lines. [44/25]", 1516406612], + [456, 5, 1209, "Metrics/BlockLength: Block has too many lines. [31/25]", 430489898], + [514, 5, 2021, "Metrics/BlockLength: Block has too many lines. [37/25]", 144128170], + [515, 7, 1953, "Metrics/BlockLength: Block has too many lines. [35/25]", 1574966248], + [567, 5, 1500, "Metrics/BlockLength: Block has too many lines. [40/25]", 2509466150] + ], + "spec/ast/merge/content_match_refiner_spec.rb:4058001158": [ + [3, 1, 14348, "Metrics/BlockLength: Block has too many lines. [318/25]", 1171164704], + [25, 3, 1238, "Metrics/BlockLength: Block has too many lines. [29/25]", 2139810386], + [63, 3, 4077, "Metrics/BlockLength: Block has too many lines. [95/25]", 3471153375], + [325, 3, 2213, "Metrics/BlockLength: Block has too many lines. [37/25]", 3370370915] + ], + "spec/ast/merge/debug_logger_spec.rb:429510168": [ + [3, 1, 17306, "Metrics/BlockLength: Block has too many lines. [358/25]", 2287792973], + [251, 3, 1598, "Metrics/BlockLength: Block has too many lines. [27/25]", 3227542816], + [358, 3, 5118, "Metrics/BlockLength: Block has too many lines. [77/25]", 1759761803] + ], + "spec/ast/merge/detector/base_spec.rb:4157102211": [ + [3, 1, 3172, "Metrics/BlockLength: Block has too many lines. [100/25]", 3745104028], + [11, 7, 498, "Metrics/MethodLength: Method has too many lines. [13/10]", 3178368155], + [49, 3, 900, "Metrics/BlockLength: Block has too many lines. [28/25]", 2333048204] + ], + "spec/ast/merge/detector/fenced_code_block_spec.rb:495797689": [ + [3, 1, 11589, "Metrics/BlockLength: Block has too many lines. [363/25]", 3764545134], + [38, 3, 4467, "Metrics/BlockLength: Block has too many lines. [150/25]", 1597401000], + [41, 5, 1077, "Metrics/BlockLength: Block has too many lines. [31/25]", 2269642514], + [115, 5, 848, "Metrics/BlockLength: Block has too many lines. [27/25]", 1704866975], + [220, 3, 4815, "Metrics/BlockLength: Block has too many lines. [146/25]", 3797214474] + ], + "spec/ast/merge/detector/mergeable_spec.rb:1307688846": [ + [3, 1, 23175, "Metrics/BlockLength: Block has too many lines. [654/25]", 2932391114], + [77, 3, 2079, "Metrics/BlockLength: Block has too many lines. [53/25]", 1093085347], + [177, 3, 2217, "Metrics/BlockLength: Block has too many lines. [69/25]", 926985871], + [188, 5, 948, "Metrics/BlockLength: Block has too many lines. [26/25]", 4186135901], + [225, 5, 898, "Metrics/BlockLength: Block has too many lines. [31/25]", 513446836], + [266, 3, 1168, "Metrics/BlockLength: Block has too many lines. [29/25]", 774699411], + [304, 3, 1188, "Metrics/BlockLength: Block has too many lines. [27/25]", 4282853126], + [339, 3, 918, "Metrics/BlockLength: Block has too many lines. [28/25]", 1759590109], + [372, 3, 870, "Metrics/BlockLength: Block has too many lines. [28/25]", 131542026], + [410, 3, 3768, "Metrics/BlockLength: Block has too many lines. [111/25]", 181819560], + [483, 5, 1536, "Metrics/BlockLength: Block has too many lines. [47/25]", 385085357], + [540, 3, 1891, "Metrics/BlockLength: Block has too many lines. [52/25]", 602757329], + [664, 3, 1927, "Metrics/BlockLength: Block has too many lines. [56/25]", 48062261], + [691, 5, 1146, "Metrics/BlockLength: Block has too many lines. [31/25]", 1961728737], + [721, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 3104497040], + [729, 3, 1625, "Metrics/BlockLength: Block has too many lines. [46/25]", 1570579215] + ], + "spec/ast/merge/detector/region_spec.rb:594725562": [ + [3, 1, 8128, "Metrics/BlockLength: Block has too many lines. [290/25]", 1984713692], + [4, 3, 806, "Metrics/BlockLength: Block has too many lines. [28/25]", 1515087192], + [58, 3, 1236, "Metrics/BlockLength: Block has too many lines. [45/25]", 2464968707], + [128, 3, 1063, "Metrics/BlockLength: Block has too many lines. [33/25]", 239148700], + [250, 3, 2010, "Metrics/BlockLength: Block has too many lines. [76/25]", 2595033382] + ], + "spec/ast/merge/detector/toml_frontmatter_spec.rb:1135160129": [ + [3, 1, 6717, "Metrics/BlockLength: Block has too many lines. [218/25]", 2273975625], + [12, 3, 5534, "Metrics/BlockLength: Block has too many lines. [187/25]", 538920673], + [13, 5, 1456, "Metrics/BlockLength: Block has too many lines. [38/25]", 3113759139] + ], + "spec/ast/merge/detector/yaml_frontmatter_spec.rb:2467934365": [ + [3, 1, 6702, "Metrics/BlockLength: Block has too many lines. [213/25]", 3083039982], + [12, 3, 5056, "Metrics/BlockLength: Block has too many lines. [170/25]", 1889948780], + [13, 5, 1438, "Metrics/BlockLength: Block has too many lines. [38/25]", 1736912391], + [219, 3, 1396, "Metrics/BlockLength: Block has too many lines. [33/25]", 2446467851] + ], + "spec/ast/merge/diff_mapper_base_spec.rb:1771546518": [ + [5, 1, 8521, "Metrics/BlockLength: Block has too many lines. [248/25]", 1057580573], + [22, 9, 44, "Style/InverseMethods: Use `reject` instead of inverting `select`.", 3063843489], + [46, 3, 3878, "Metrics/BlockLength: Block has too many lines. [116/25]", 2874032080], + [47, 5, 1938, "Metrics/BlockLength: Block has too many lines. [48/25]", 1904497583], + [191, 3, 1488, "Metrics/BlockLength: Block has too many lines. [43/25]", 1632956840] + ], + "spec/ast/merge/emitter_base_spec.rb:1099876333": [ + [3, 1, 11967, "Metrics/BlockLength: Block has too many lines. [301/25]", 2970792295], + [56, 3, 4393, "Metrics/BlockLength: Block has too many lines. [102/25]", 3992142376], + [160, 58, 12, "Lint/UnusedMethodArgument: Unused method argument - `current_line`. You can also write as `inline_comment_region_target_column(*)` if you want the method to accept any arguments but don't care about them.", 2091263933], + [164, 44, 6, "Lint/UnusedMethodArgument: Unused method argument - `region`.", 2124512157], + [185, 3, 1815, "Metrics/BlockLength: Block has too many lines. [39/25]", 719023387], + [232, 3, 2233, "Metrics/BlockLength: Block has too many lines. [62/25]", 3754339775], + [338, 3, 1059, "Metrics/BlockLength: Block has too many lines. [26/25]", 375007123] + ], + "spec/ast/merge/fictive_language_harness_spec.rb:1179155480": [ + [6, 1, 6693, "Metrics/BlockLength: Block has too many lines. [143/25]", 245088433], + [7, 3, 1968, "Metrics/BlockLength: Block has too many lines. [36/25]", 4161580169], + [58, 3, 1230, "Metrics/BlockLength: Block has too many lines. [34/25]", 990452676], + [103, 3, 2668, "Metrics/BlockLength: Block has too many lines. [51/25]", 1755027956] + ], + "spec/ast/merge/file_aligner_base_spec.rb:91275387": [ + [5, 1, 9948, "Metrics/BlockLength: Block has too many lines. [217/25]", 3354563411], + [6, 3, 1490, "Metrics/BlockLength: Block has too many lines. [45/25]", 563330990], + [95, 3, 7495, "Metrics/BlockLength: Block has too many lines. [129/25]", 598770279], + [103, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 3749416415], + [163, 5, 1489, "Metrics/BlockLength: Block has too many lines. [26/25]", 2910876949] + ], + "spec/ast/merge/file_analyzable_spec.rb:3816965829": [ + [3, 1, 12458, "Metrics/BlockLength: Block has too many lines. [272/25]", 216138965], + [25, 3, 9603, "Metrics/BlockLength: Block has too many lines. [202/25]", 2508188172], + [297, 3, 1214, "Metrics/BlockLength: Block has too many lines. [30/25]", 777182624] + ], + "spec/ast/merge/freezable_spec.rb:559280324": [ + [5, 1, 5033, "Metrics/BlockLength: Block has too many lines. [123/25]", 3070666859], + [6, 3, 1199, "Metrics/BlockLength: Block has too many lines. [34/25]", 4058875636], + [66, 3, 1530, "Metrics/BlockLength: Block has too many lines. [31/25]", 1670675428] + ], + "spec/ast/merge/freeze_node_base_spec.rb:2962962931": [ + [3, 1, 21887, "Metrics/BlockLength: Block has too many lines. [560/25]", 567315021], + [48, 3, 1369, "Metrics/BlockLength: Block has too many lines. [38/25]", 3363160391], + [131, 3, 2739, "Metrics/BlockLength: Block has too many lines. [56/25]", 2008289622], + [205, 3, 1586, "Metrics/BlockLength: Block has too many lines. [35/25]", 4179606047], + [251, 3, 977, "Metrics/BlockLength: Block has too many lines. [26/25]", 1240612851], + [287, 3, 1130, "Metrics/BlockLength: Block has too many lines. [28/25]", 2511265379], + [322, 3, 5029, "Metrics/BlockLength: Block has too many lines. [126/25]", 739537566], + [598, 3, 3055, "Metrics/BlockLength: Block has too many lines. [81/25]", 145217296] + ], + "spec/ast/merge/healer_spec.rb:877829793": [ + [3, 1, 4896, "Metrics/BlockLength: Block has too many lines. [148/25]", 1074378773], + [19, 3, 1333, "Metrics/BlockLength: Block has too many lines. [38/25]", 2940878263], + [24, 121, 3, "Layout/LineLength: Line is too long. [123/120]", 193432399], + [61, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2085379023], + [67, 3, 2985, "Metrics/BlockLength: Block has too many lines. [93/25]", 4032786576] + ], + "spec/ast/merge/jaccard_similarity_spec.rb:3984307047": [ + [3, 1, 2659, "Metrics/BlockLength: Block has too many lines. [71/25]", 1122516612], + [6, 3, 1484, "Metrics/BlockLength: Block has too many lines. [38/25]", 3367914637], + [55, 3, 1090, "Metrics/BlockLength: Block has too many lines. [28/25]", 2629339264] + ], + "spec/ast/merge/key_path_partial_template_merger_base_spec.rb:2189485360": [ + [5, 1, 5955, "Metrics/BlockLength: Block has too many lines. [138/25]", 91542958], + [35, 3, 1217, "Metrics/BlockLength: Block has too many lines. [33/25]", 2663081123], + [97, 3, 3019, "Metrics/BlockLength: Block has too many lines. [54/25]", 1411952192] + ], + "spec/ast/merge/layout/attachment_spec.rb:3814294426": [ + [3, 1, 1799, "Metrics/BlockLength: Block has too many lines. [34/25]", 1283153367] + ], + "spec/ast/merge/layout/augmenter_spec.rb:3633045915": [ + [3, 1, 4412, "Metrics/BlockLength: Block has too many lines. [92/25]", 2690553031], + [20, 3, 2725, "Metrics/BlockLength: Block has too many lines. [54/25]", 3645203819] + ], + "spec/ast/merge/layout/gap_spec.rb:4232058283": [ + [3, 1, 2758, "Metrics/BlockLength: Block has too many lines. [72/25]", 2052697931], + [9, 3, 1290, "Metrics/BlockLength: Block has too many lines. [28/25]", 3175967312] + ], + "spec/ast/merge/line_range_support_spec.rb:872979873": [ + [3, 1, 1564, "Metrics/BlockLength: Block has too many lines. [35/25]", 1133178812], + [4, 3, 65, "Lint/ConstantDefinitionInBlock: Do not define constants this way within a block.", 2231059390], + [5, 3, 44, "Lint/ConstantDefinitionInBlock: Do not define constants this way within a block.", 1230426940], + [7, 3, 135, "Lint/ConstantDefinitionInBlock: Do not define constants this way within a block.", 1825860348] + ], + "spec/ast/merge/match_refiner_base_spec.rb:3961767223": [ + [3, 1, 10604, "Metrics/BlockLength: Block has too many lines. [301/25]", 4290485382], + [4, 3, 1146, "Metrics/BlockLength: Block has too many lines. [37/25]", 108051658], + [50, 3, 1005, "Metrics/BlockLength: Block has too many lines. [28/25]", 3807648246], + [125, 3, 1026, "Metrics/BlockLength: Block has too many lines. [27/25]", 2896086726], + [162, 3, 4464, "Metrics/BlockLength: Block has too many lines. [114/25]", 2878217135], + [218, 5, 1112, "Metrics/BlockLength: Block has too many lines. [30/25]", 1605825436], + [224, 11, 104, "Style/HashLikeCase: Consider replacing `case-when` with a hash lookup.", 4220899731], + [247, 11, 132, "Style/HashLikeCase: Consider replacing `case-when` with a hash lookup.", 3401820780], + [258, 5, 1642, "Metrics/BlockLength: Block has too many lines. [35/25]", 1288881729], + [337, 3, 1108, "Metrics/BlockLength: Block has too many lines. [33/25]", 2139263963] + ], + "spec/ast/merge/match_score_base_spec.rb:2340739872": [ + [3, 1, 15213, "Metrics/BlockLength: Block has too many lines. [372/25]", 1512747000], + [4, 3, 1553, "Metrics/BlockLength: Block has too many lines. [41/25]", 2789289940], + [43, 20, 2, "Naming/MethodParameterName: Method parameter must be at least 3 characters long.", 5862747], + [43, 24, 2, "Naming/MethodParameterName: Method parameter must be at least 3 characters long.", 5862744], + [56, 3, 1041, "Metrics/BlockLength: Block has too many lines. [29/25]", 3729310115], + [152, 3, 3259, "Metrics/BlockLength: Block has too many lines. [82/25]", 1438003770], + [258, 3, 2199, "Metrics/BlockLength: Block has too many lines. [43/25]", 3386602801], + [320, 3, 1684, "Metrics/BlockLength: Block has too many lines. [35/25]", 3807719546], + [365, 14, 16, "Lint/FloatComparison: Avoid equality comparisons of floats as they are unreliable.", 3787748956], + [369, 3, 1696, "Metrics/BlockLength: Block has too many lines. [36/25]", 3172214426], + [417, 3, 1792, "Metrics/BlockLength: Block has too many lines. [45/25]", 3557977606], + [438, 5, 1121, "Metrics/BlockLength: Block has too many lines. [26/25]", 4236927298] + ], + "spec/ast/merge/merge_result_base_spec.rb:3826389024": [ + [3, 1, 20371, "Metrics/BlockLength: Block has too many lines. [552/25]", 3965341976], + [38, 3, 2735, "Metrics/BlockLength: Block has too many lines. [80/25]", 1103243845], + [312, 3, 1611, "Metrics/BlockLength: Block has too many lines. [39/25]", 1928511417], + [313, 5, 1203, "Metrics/BlockLength: Block has too many lines. [26/25]", 857223227], + [359, 3, 2070, "Metrics/BlockLength: Block has too many lines. [48/25]", 2552826824], + [418, 3, 5769, "Metrics/BlockLength: Block has too many lines. [140/25]", 1457747735], + [544, 5, 1306, "Metrics/BlockLength: Block has too many lines. [29/25]", 2980786372], + [607, 3, 1308, "Metrics/BlockLength: Block has too many lines. [32/25]", 1342704008] + ], + "spec/ast/merge/merger_config_spec.rb:663896662": [ + [5, 1, 7314, "Metrics/BlockLength: Block has too many lines. [189/25]", 1279589310], + [11, 3, 1180, "Metrics/BlockLength: Block has too many lines. [26/25]", 1014009176], + [45, 3, 1151, "Metrics/BlockLength: Block has too many lines. [26/25]", 785276703], + [79, 3, 3574, "Metrics/BlockLength: Block has too many lines. [97/25]", 969726064], + [126, 5, 1158, "Metrics/BlockLength: Block has too many lines. [29/25]", 389808524] + ], + "spec/ast/merge/navigable/injection_point_finder_spec.rb:3693754765": [ + [3, 1, 5152, "Metrics/BlockLength: Block has too many lines. [123/25]", 3265221808], + [15, 3, 4026, "Metrics/BlockLength: Block has too many lines. [96/25]", 1482695302], + [63, 5, 2337, "Metrics/BlockLength: Block has too many lines. [54/25]", 2678200297] + ], + "spec/ast/merge/navigable/injection_point_spec.rb:3295717447": [ + [3, 1, 6032, "Metrics/BlockLength: Block has too many lines. [161/25]", 805025024], + [77, 3, 1083, "Metrics/BlockLength: Block has too many lines. [28/25]", 3091139104] + ], + "spec/ast/merge/navigable/statement_spec.rb:2965726260": [ + [3, 1, 18289, "Metrics/BlockLength: Block has too many lines. [510/25]", 4119203121], + [102, 3, 3570, "Metrics/BlockLength: Block has too many lines. [97/25]", 3287535168], + [156, 5, 2030, "Metrics/BlockLength: Block has too many lines. [51/25]", 3299963733], + [251, 3, 1338, "Metrics/BlockLength: Block has too many lines. [37/25]", 844559624], + [411, 3, 1550, "Metrics/BlockLength: Block has too many lines. [42/25]", 3851790429], + [465, 3, 1372, "Metrics/BlockLength: Block has too many lines. [41/25]", 3782869383] + ], + "spec/ast/merge/node_typing/frozen_wrapper_spec.rb:3823345520": [ + [3, 1, 4532, "Metrics/BlockLength: Block has too many lines. [117/25]", 3944573785] + ], + "spec/ast/merge/node_typing/normalizer_spec.rb:1976431423": [ + [4, 1, 8679, "Metrics/BlockLength: Block has too many lines. [219/25]", 938207310], + [65, 3, 1137, "Metrics/BlockLength: Block has too many lines. [26/25]", 3180807289], + [101, 3, 1404, "Metrics/BlockLength: Block has too many lines. [28/25]", 1094334251], + [216, 3, 875, "Metrics/BlockLength: Block has too many lines. [26/25]", 2755551247] + ], + "spec/ast/merge/node_typing/wrapper_spec.rb:3211588263": [ + [3, 1, 3469, "Metrics/BlockLength: Block has too many lines. [92/25]", 638644563] + ], + "spec/ast/merge/node_typing_spec.rb:4080661389": [ + [3, 1, 12728, "Metrics/BlockLength: Block has too many lines. [333/25]", 3927571381], + [132, 3, 3704, "Metrics/BlockLength: Block has too many lines. [98/25]", 2130243754], + [208, 5, 1267, "Metrics/BlockLength: Block has too many lines. [31/25]", 2816753725], + [265, 3, 1298, "Metrics/BlockLength: Block has too many lines. [33/25]", 3320876250], + [311, 3, 3803, "Metrics/BlockLength: Block has too many lines. [100/25]", 2743470911] + ], + "spec/ast/merge/node_wrapper_base_spec.rb:2252820285": [ + [3, 1, 11681, "Metrics/BlockLength: Block has too many lines. [307/25]", 1698593962], + [32, 3, 2341, "Metrics/BlockLength: Block has too many lines. [68/25]", 1594381363], + [179, 3, 2568, "Metrics/BlockLength: Block has too many lines. [51/25]", 1269052990], + [294, 3, 1252, "Metrics/BlockLength: Block has too many lines. [26/25]", 4220822180], + [329, 3, 1963, "Metrics/BlockLength: Block has too many lines. [39/25]", 1623030031] + ], + "spec/ast/merge/owner_selection_spec.rb:1894901093": [ + [3, 1, 1356, "Metrics/BlockLength: Block has too many lines. [35/25]", 1030003775] + ], + "spec/ast/merge/partial_template_merger_base_spec.rb:3412991027": [ + [3, 1, 7073, "Metrics/BlockLength: Block has too many lines. [145/25]", 3415302240], + [16, 9, 43, "Lint/HashCompareByIdentity: Use `Hash#compare_by_identity` instead of using `object_id` for keys.", 3196404056], + [22, 9, 42, "Lint/HashCompareByIdentity: Use `Hash#compare_by_identity` instead of using `object_id` for keys.", 4116824817], + [48, 20, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], + [96, 3, 4220, "Metrics/BlockLength: Block has too many lines. [68/25]", 3464417459], + [97, 5, 2029, "Metrics/BlockLength: Block has too many lines. [27/25]", 3297854360], + [138, 5, 2122, "Metrics/BlockLength: Block has too many lines. [37/25]", 1592076374] + ], + "spec/ast/merge/recipe/config_spec.rb:3917288551": [ + [3, 1, 21041, "Metrics/BlockLength: Block has too many lines. [611/25]", 2431235923], + [72, 3, 1653, "Metrics/BlockLength: Block has too many lines. [36/25]", 2702780755], + [174, 3, 1465, "Metrics/BlockLength: Block has too many lines. [44/25]", 2326126933], + [226, 3, 3419, "Metrics/BlockLength: Block has too many lines. [89/25]", 798604841], + [327, 3, 1398, "Metrics/BlockLength: Block has too many lines. [34/25]", 3113267700], + [474, 3, 1184, "Metrics/BlockLength: Block has too many lines. [39/25]", 2599756030], + [519, 3, 4630, "Metrics/BlockLength: Block has too many lines. [147/25]", 1245526575] + ], + "spec/ast/merge/recipe/preset_spec.rb:818394232": [ + [3, 1, 6696, "Metrics/BlockLength: Block has too many lines. [173/25]", 3205615892] + ], + "spec/ast/merge/recipe/runner_spec.rb:3689194117": [ + [3, 1, 46798, "Metrics/BlockLength: Block has too many lines. [1104/25]", 3220015076], + [48, 3, 1128, "Metrics/BlockLength: Block has too many lines. [26/25]", 910457645], + [108, 3, 3036, "Metrics/BlockLength: Block has too many lines. [92/25]", 2112378918], + [132, 5, 881, "Metrics/BlockLength: Block has too many lines. [27/25]", 3842010356], + [177, 5, 918, "Metrics/BlockLength: Block has too many lines. [27/25]", 2152367239], + [295, 3, 1383, "Metrics/BlockLength: Block has too many lines. [41/25]", 2141027559], + [362, 3, 1653, "Metrics/BlockLength: Block has too many lines. [33/25]", 1536472295], + [449, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 3960802027], + [497, 3, 7959, "Metrics/BlockLength: Block has too many lines. [200/25]", 3739116912], + [556, 5, 1225, "Metrics/BlockLength: Block has too many lines. [31/25]", 195497726], + [740, 3, 6977, "Metrics/BlockLength: Block has too many lines. [145/25]", 2805535296], + [748, 5, 2241, "Metrics/BlockLength: Block has too many lines. [49/25]", 2552233173], + [805, 5, 3007, "Metrics/BlockLength: Block has too many lines. [59/25]", 708771722], + [877, 5, 1444, "Metrics/BlockLength: Block has too many lines. [26/25]", 3274225022], + [911, 3, 3258, "Metrics/BlockLength: Block has too many lines. [85/25]", 2346849758], + [1012, 3, 2710, "Metrics/BlockLength: Block has too many lines. [71/25]", 3801821877], + [1029, 5, 1547, "Metrics/BlockLength: Block has too many lines. [42/25]", 2962020615], + [1109, 3, 2240, "Metrics/BlockLength: Block has too many lines. [35/25]", 1139957345], + [1115, 121, 26, "Layout/LineLength: Line is too long. [146/120]", 667314941], + [1117, 121, 26, "Layout/LineLength: Line is too long. [146/120]", 667314941], + [1119, 121, 13, "Layout/LineLength: Line is too long. [133/120]", 1801369636], + [1121, 121, 11, "Layout/LineLength: Line is too long. [131/120]", 2652710920], + [1123, 121, 28, "Layout/LineLength: Line is too long. [148/120]", 1375785821], + [1125, 121, 26, "Layout/LineLength: Line is too long. [146/120]", 632755459], + [1160, 121, 26, "Layout/LineLength: Line is too long. [146/120]", 667314941], + [1162, 121, 26, "Layout/LineLength: Line is too long. [146/120]", 667314941], + [1164, 121, 28, "Layout/LineLength: Line is too long. [148/120]", 1375785821], + [1176, 3, 1472, "Metrics/BlockLength: Block has too many lines. [31/25]", 844153987], + [1181, 121, 25, "Layout/LineLength: Line is too long. [145/120]", 1239303812], + [1183, 121, 28, "Layout/LineLength: Line is too long. [148/120]", 1251336963], + [1216, 3, 2277, "Metrics/BlockLength: Block has too many lines. [43/25]", 4287127386], + [1221, 121, 26, "Layout/LineLength: Line is too long. [146/120]", 667314941], + [1223, 121, 11, "Layout/LineLength: Line is too long. [131/120]", 2652710920], + [1225, 121, 28, "Layout/LineLength: Line is too long. [148/120]", 1375785821], + [1227, 121, 26, "Layout/LineLength: Line is too long. [146/120]", 632755459], + [1274, 121, 44, "Layout/LineLength: Line is too long. [164/120]", 3420615328] + ], + "spec/ast/merge/recipe/script_loader_spec.rb:2136892097": [ + [3, 1, 8554, "Metrics/BlockLength: Block has too many lines. [237/25]", 2314425369], + [45, 3, 2842, "Metrics/BlockLength: Block has too many lines. [75/25]", 168902852], + [155, 3, 1400, "Metrics/BlockLength: Block has too many lines. [39/25]", 1611123964] + ], + "spec/ast/merge/rspec/shared_examples/feature_profile_spec.rb:2654837708": [ + [5, 1, 1140, "Metrics/BlockLength: Block has too many lines. [31/25]", 678325840] + ], + "spec/ast/merge/rspec/shared_examples/file_analyzable_spec.rb:1833922303": [ + [58, 3, 970, "Metrics/AbcSize: Assignment Branch Condition size for `detect_freeze_blocks` is too high. [<16, 9, 5> 19.03/17]", 1533823667], + [58, 3, 970, "Metrics/MethodLength: Method has too many lines. [31/10]", 1533823667], + [104, 1, 1216, "Metrics/BlockLength: Block has too many lines. [39/25]", 1009012120], + [105, 3, 1159, "Metrics/BlockLength: Block has too many lines. [38/25]", 1361521205] + ], + "spec/ast/merge/rspec/shared_examples/layout_attachment_spec.rb:714796658": [ + [8, 1, 957, "Metrics/BlockLength: Block has too many lines. [28/25]", 3738990548] + ], + "spec/ast/merge/rspec/shared_examples/recipe_preset_contract_spec.rb:669158728": [ + [6, 1, 1577, "Metrics/BlockLength: Block has too many lines. [41/25]", 2157464290], + [7, 3, 1512, "Metrics/BlockLength: Block has too many lines. [39/25]", 1968160370], + [44, 5, 401, "Metrics/AbcSize: Assignment Branch Condition size for `run_verify_loaded_preset` is too high. [<0, 26, 0> 26/17]", 2960760840] + ], + "spec/ast/merge/rspec/shared_examples/removal_mode_compliance_spec.rb:31388352": [ + [6, 22, 2, "Style/MutableConstant: Freeze mutable objects assigned to constants.", 5861859], + [44, 1, 2546, "Metrics/BlockLength: Block has too many lines. [77/25]", 3740028971], + [45, 3, 1350, "Metrics/BlockLength: Block has too many lines. [41/25]", 2793151667], + [94, 3, 1128, "Metrics/BlockLength: Block has too many lines. [32/25]", 2527000512], + [95, 5, 1081, "Metrics/BlockLength: Block has too many lines. [30/25]", 3825359844] + ], + "spec/ast/merge/rspec/shared_examples/reproducible_partial_merge_spec.rb:2862326360": [ + [19, 3, 600, "Metrics/MethodLength: Method has too many lines. [13/10]", 1542875905] + ], + "spec/ast/merge/rspec/tree_haver_backend_contract_spec.rb:3942689234": [ + [20, 1, 1737, "Metrics/BlockLength: Block has too many lines. [29/25]", 2339568528] + ], + "spec/ast/merge/ruleset/config_spec.rb:1860949041": [ + [3, 1, 9431, "Metrics/BlockLength: Block has too many lines. [236/25]", 4015119559], + [24, 3, 5341, "Metrics/BlockLength: Block has too many lines. [149/25]", 2361087446], + [25, 5, 1064, "Metrics/BlockLength: Block has too many lines. [26/25]", 603056104], + [226, 3, 2125, "Metrics/BlockLength: Block has too many lines. [36/25]", 1640873170] + ], + "spec/ast/merge/ruleset/declaration_objects_spec.rb:3827892270": [ + [3, 1, 1881, "Metrics/BlockLength: Block has too many lines. [47/25]", 1770376910] + ], + "spec/ast/merge/ruleset/feature_profile_spec.rb:2241111096": [ + [3, 1, 4189, "Metrics/BlockLength: Block has too many lines. [86/25]", 1116963550], + [4, 3, 4129, "Metrics/BlockLength: Block has too many lines. [84/25]", 117079811], + [5, 5, 2391, "Metrics/BlockLength: Block has too many lines. [45/25]", 1800077283] + ], + "spec/ast/merge/ruleset/parser_spec.rb:386407767": [ + [3, 1, 5670, "Metrics/BlockLength: Block has too many lines. [144/25]", 3425850453], + [4, 3, 5618, "Metrics/BlockLength: Block has too many lines. [143/25]", 246633759] + ], + "spec/ast/merge/ruleset/profile_vocabulary_spec.rb:2570869276": [ + [3, 1, 2095, "Metrics/BlockLength: Block has too many lines. [46/25]", 3214342662] + ], + "spec/ast/merge/ruleset/support_style_resolver_spec.rb:640167644": [ + [3, 1, 1625, "Metrics/BlockLength: Block has too many lines. [49/25]", 2066834885], + [4, 3, 1559, "Metrics/BlockLength: Block has too many lines. [47/25]", 1169495477] + ], + "spec/ast/merge/runtime_spec.rb:3962589694": [ + [5, 1, 24649, "Metrics/BlockLength: Block has too many lines. [664/25]", 2634021188], + [76, 3, 1459, "Metrics/BlockLength: Block has too many lines. [41/25]", 3744002593], + [125, 3, 1417, "Metrics/BlockLength: Block has too many lines. [33/25]", 4087615381], + [166, 3, 2549, "Metrics/BlockLength: Block has too many lines. [69/25]", 3150260095], + [175, 5, 1068, "Metrics/BlockLength: Block has too many lines. [26/25]", 2933114685], + [247, 3, 1668, "Metrics/BlockLength: Block has too many lines. [39/25]", 2386637993], + [259, 5, 1265, "Metrics/BlockLength: Block has too many lines. [27/25]", 3157806167], + [321, 3, 10884, "Metrics/BlockLength: Block has too many lines. [295/25]", 1889265918], + [322, 5, 1879, "Metrics/BlockLength: Block has too many lines. [46/25]", 2536583521], + [373, 5, 3938, "Metrics/BlockLength: Block has too many lines. [108/25]", 340276027], + [486, 5, 1270, "Metrics/BlockLength: Block has too many lines. [38/25]", 3844174392], + [528, 5, 3728, "Metrics/BlockLength: Block has too many lines. [95/25]", 3779381786], + [630, 3, 3240, "Metrics/BlockLength: Block has too many lines. [84/25]", 3856725067], + [656, 5, 1649, "Metrics/BlockLength: Block has too many lines. [40/25]", 3713662683] + ], + "spec/ast/merge/section_typing_spec.rb:2580971307": [ + [3, 1, 14786, "Metrics/BlockLength: Block has too many lines. [344/25]", 2925587076], + [4, 3, 1940, "Metrics/BlockLength: Block has too many lines. [50/25]", 3362429388], + [67, 3, 3684, "Metrics/BlockLength: Block has too many lines. [96/25]", 3864076664], + [120, 5, 1998, "Metrics/BlockLength: Block has too many lines. [50/25]", 411620722], + [183, 3, 1415, "Metrics/BlockLength: Block has too many lines. [37/25]", 3323012675], + [192, 5, 1124, "Metrics/BlockLength: Block has too many lines. [28/25]", 966216762], + [229, 3, 1610, "Metrics/BlockLength: Block has too many lines. [38/25]", 1499957007], + [229, 121, 17, "Layout/LineLength: Line is too long. [137/120]", 1025596574], + [279, 3, 4437, "Metrics/BlockLength: Block has too many lines. [80/25]", 423587151], + [356, 36, 23, "Style/SymbolProc: Pass `&:unclassified?` as an argument to `find` instead of a block.", 563945984], + [369, 36, 23, "Style/SymbolProc: Pass `&:unclassified?` as an argument to `find` instead of a block.", 563945984], + [375, 3, 1630, "Metrics/BlockLength: Block has too many lines. [31/25]", 1675144727] + ], + "spec/ast/merge/smart_merger_base_spec.rb:1904727390": [ + [3, 1, 13253, "Metrics/BlockLength: Block has too many lines. [398/25]", 3611753358], + [30, 9, 10, "Style/MultilineBlockChain: Avoid multi-line chains of blocks.", 1099697163], + [87, 3, 1851, "Metrics/BlockLength: Block has too many lines. [40/25]", 3729571903], + [210, 3, 925, "Metrics/BlockLength: Block has too many lines. [35/25]", 2001100899], + [344, 3, 709, "Metrics/BlockLength: Block has too many lines. [27/25]", 3041950416], + [415, 3, 1074, "Metrics/BlockLength: Block has too many lines. [35/25]", 956635689], + [416, 5, 1026, "Metrics/BlockLength: Block has too many lines. [33/25]", 1993879652], + [461, 3, 1031, "Metrics/BlockLength: Block has too many lines. [31/25]", 35315996] + ], + "spec/ast/merge/source_region_report_support_spec.rb:3996528026": [ + [3, 1, 5448, "Metrics/BlockLength: Block has too many lines. [186/25]", 2713581049], + [4, 3, 112, "Lint/ConstantDefinitionInBlock: Do not define constants this way within a block.", 3709101366], + [6, 3, 295, "Lint/ConstantDefinitionInBlock: Do not define constants this way within a block.", 1625952400], + [17, 3, 1473, "Metrics/BlockLength: Block has too many lines. [49/25]", 1435042916], + [70, 3, 1887, "Metrics/BlockLength: Block has too many lines. [66/25]", 1773930426], + [159, 3, 1109, "Metrics/BlockLength: Block has too many lines. [38/25]", 1457507554] + ], + "spec/ast/merge/structural_edit/boundary_support_spec.rb:863387845": [ + [3, 1, 4226, "Metrics/BlockLength: Block has too many lines. [86/25]", 1889771490], + [16, 9, 42, "Lint/HashCompareByIdentity: Use `Hash#compare_by_identity` instead of using `object_id` for keys.", 1304492024], + [22, 9, 41, "Lint/HashCompareByIdentity: Use `Hash#compare_by_identity` instead of using `object_id` for keys.", 3828424401], + [59, 3, 1294, "Metrics/BlockLength: Block has too many lines. [26/25]", 3038774774] + ], + "spec/ast/merge/structural_edit/plan_set_spec.rb:3633263362": [ + [3, 1, 5945, "Metrics/BlockLength: Block has too many lines. [180/25]", 3883285271], + [14, 3, 2139, "Metrics/BlockLength: Block has too many lines. [72/25]", 3558415255], + [128, 3, 1412, "Metrics/BlockLength: Block has too many lines. [39/25]", 1216754705] + ], + "spec/ast/merge/structural_edit/remove_plan_spec.rb:3569534665": [ + [3, 1, 6442, "Metrics/BlockLength: Block has too many lines. [134/25]", 3440814588], + [39, 3, 3768, "Metrics/BlockLength: Block has too many lines. [75/25]", 876721813], + [127, 3, 1439, "Metrics/BlockLength: Block has too many lines. [29/25]", 3378195351] + ], + "spec/ast/merge/structural_edit/remove_plan_support_spec.rb:800158061": [ + [3, 1, 2893, "Metrics/BlockLength: Block has too many lines. [62/25]", 3748446914], + [16, 9, 43, "Lint/HashCompareByIdentity: Use `Hash#compare_by_identity` instead of using `object_id` for keys.", 3196404056], + [22, 9, 42, "Lint/HashCompareByIdentity: Use `Hash#compare_by_identity` instead of using `object_id` for keys.", 4116824817], + [29, 3, 2091, "Metrics/BlockLength: Block has too many lines. [39/25]", 1684933040], + [30, 5, 1653, "Metrics/BlockLength: Block has too many lines. [27/25]", 2456404305] + ], + "spec/ast/merge/structural_edit/splice_plan_spec.rb:3331205681": [ + [3, 1, 3159, "Metrics/BlockLength: Block has too many lines. [83/25]", 2234926397], + [16, 3, 1837, "Metrics/BlockLength: Block has too many lines. [46/25]", 2935991482], + [42, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5860750] + ], + "spec/ast/merge/text/conflict_resolver_spec.rb:3810004132": [ + [5, 1, 9102, "Metrics/BlockLength: Block has too many lines. [218/25]", 672115618], + [33, 3, 8206, "Metrics/BlockLength: Block has too many lines. [194/25]", 259803246], + [78, 5, 1920, "Metrics/BlockLength: Block has too many lines. [45/25]", 3965182334], + [139, 5, 1918, "Metrics/BlockLength: Block has too many lines. [44/25]", 3707046125] + ], + "spec/ast/merge/text/file_analysis_spec.rb:3430380445": [ + [5, 1, 8842, "Metrics/BlockLength: Block has too many lines. [205/25]", 4255187284], + [6, 3, 1323, "Metrics/BlockLength: Block has too many lines. [29/25]", 2518912953], + [47, 3, 1830, "Metrics/BlockLength: Block has too many lines. [43/25]", 3685770590], + [135, 3, 1620, "Metrics/BlockLength: Block has too many lines. [35/25]", 3089951119] + ], + "spec/ast/merge/text/line_node_spec.rb:1757790485": [ + [5, 1, 4739, "Metrics/BlockLength: Block has too many lines. [131/25]", 1487875238] + ], + "spec/ast/merge/text/merge_result_spec.rb:589380024": [ + [5, 1, 1541, "Metrics/BlockLength: Block has too many lines. [40/25]", 2828087992] + ], + "spec/ast/merge/text/section_splitter_spec.rb:804308722": [ + [4, 1, 5705, "Metrics/BlockLength: Block has too many lines. [209/25]", 4175363685], + [5, 3, 794, "Metrics/BlockLength: Block has too many lines. [28/25]", 2386862842], + [42, 3, 1126, "Metrics/BlockLength: Block has too many lines. [45/25]", 1507887296], + [95, 3, 746, "Metrics/BlockLength: Block has too many lines. [30/25]", 1759029412], + [131, 3, 1169, "Metrics/BlockLength: Block has too many lines. [45/25]", 1412318991], + [184, 3, 754, "Metrics/BlockLength: Block has too many lines. [30/25]", 2717556691], + [246, 1, 16648, "Metrics/BlockLength: Block has too many lines. [428/25]", 3166834694], + [370, 3, 1640, "Metrics/BlockLength: Block has too many lines. [46/25]", 2049342960], + [424, 3, 3237, "Metrics/BlockLength: Block has too many lines. [102/25]", 2357275144], + [540, 3, 3505, "Metrics/BlockLength: Block has too many lines. [67/25]", 2112469350], + [619, 3, 3586, "Metrics/BlockLength: Block has too many lines. [90/25]", 3866409298], + [620, 5, 1650, "Metrics/BlockLength: Block has too many lines. [48/25]", 289235626], + [622, 9, 1474, "Metrics/AbcSize: Assignment Branch Condition size for `split` is too high. [<8, 21, 7> 23.54/17]", 557655357], + [622, 9, 1474, "Metrics/MethodLength: Method has too many lines. [41/10]", 557655357], + [622, 9, 1474, "Metrics/PerceivedComplexity: Perceived complexity for `split` is too high. [9/8]", 557655357], + [628, 11, 1237, "Metrics/BlockLength: Block has too many lines. [33/25]", 1134667672], + [717, 29, 44, "Style/StringConcatenation: Prefer string interpolation to string concatenation.", 2169354946], + [723, 29, 44, "Style/StringConcatenation: Prefer string interpolation to string concatenation.", 2169354946], + [751, 1, 3128, "Metrics/BlockLength: Block has too many lines. [85/25]", 2082776744], + [769, 3, 1744, "Metrics/BlockLength: Block has too many lines. [46/25]", 223880162], + [770, 5, 1258, "Metrics/BlockLength: Block has too many lines. [31/25]", 2245422869] + ], + "spec/ast/merge/text/smart_merger_spec.rb:4128732567": [ + [3, 1, 8057, "Metrics/BlockLength: Block has too many lines. [210/25]", 1690443322], + [4, 3, 1135, "Metrics/BlockLength: Block has too many lines. [28/25]", 3788979655], + [58, 3, 4438, "Metrics/BlockLength: Block has too many lines. [106/25]", 2613192474], + [187, 3, 1053, "Metrics/BlockLength: Block has too many lines. [26/25]", 803567817], + [220, 3, 892, "Metrics/BlockLength: Block has too many lines. [28/25]", 2001100899] + ], + "spec/ast/merge/text/word_node_spec.rb:1457011521": [ + [5, 1, 3264, "Metrics/BlockLength: Block has too many lines. [74/25]", 677733430] + ], + "spec/ast/merge/token_match_refiner_spec.rb:3180314913": [ + [3, 1, 4000, "Metrics/BlockLength: Block has too many lines. [80/25]", 1630791278], + [8, 3, 2912, "Metrics/BlockLength: Block has too many lines. [60/25]", 529772148] + ], + "spec/ast/merge/trailing_groups/alignment_sort_spec.rb:1594915480": [ + [5, 1, 4710, "Metrics/BlockLength: Block has too many lines. [114/25]", 2499296583], + [14, 3, 2140, "Metrics/BlockLength: Block has too many lines. [47/25]", 3871799493], + [95, 3, 1482, "Metrics/BlockLength: Block has too many lines. [35/25]", 1088314263] + ], + "spec/ast/merge/trailing_groups/core_spec.rb:2651131504": [ + [5, 1, 9601, "Metrics/BlockLength: Block has too many lines. [242/25]", 598045669], + [22, 3, 3728, "Metrics/BlockLength: Block has too many lines. [87/25]", 1304580063], + [119, 3, 3931, "Metrics/BlockLength: Block has too many lines. [99/25]", 2464218479], + [186, 5, 1322, "Metrics/BlockLength: Block has too many lines. [30/25]", 427915501], + [187, 7, 1267, "Metrics/BlockLength: Block has too many lines. [28/25]", 861882691], + [245, 3, 1306, "Metrics/BlockLength: Block has too many lines. [34/25]", 86572459] + ], + "spec/ast/merge/trailing_groups/dest_iterate_spec.rb:3632880085": [ + [5, 1, 5523, "Metrics/BlockLength: Block has too many lines. [131/25]", 3077369183], + [19, 3, 3990, "Metrics/BlockLength: Block has too many lines. [91/25]", 593259616], + [39, 35, 12, "Style/SymbolProc: Pass `&:sig` as an argument to `lambda` instead of a block.", 3587754320], + [54, 33, 23, "Lint/HashCompareByIdentity: Use `Hash#compare_by_identity` instead of using `object_id` for keys.", 384283629], + [89, 35, 13, "Style/SymbolProc: Pass `&:name` as an argument to `lambda` instead of a block.", 3561384234], + [98, 35, 12, "Style/SymbolProc: Pass `&:sig` as an argument to `lambda` instead of a block.", 3587754320], + [113, 35, 12, "Style/SymbolProc: Pass `&:sig` as an argument to `lambda` instead of a block.", 3587754320] + ], + "spec/ast/merge/unresolved_policy_spec.rb:2561713656": [ + [3, 1, 1333, "Metrics/BlockLength: Block has too many lines. [33/25]", 4109547889] + ], + "spec/ast/merge/unresolved_review_state_spec.rb:3186871217": [ + [3, 1, 1038, "Metrics/BlockLength: Block has too many lines. [31/25]", 1325553035] + ], + "spec/ast/merge_rspec_conformance_fixtures_spec.rb:251774004": [ + [5, 1, 2119, "Metrics/BlockLength: Block has too many lines. [55/25]", 1724925683], + [6, 3, 1203, "Metrics/BlockLength: Block has too many lines. [29/25]", 3306863581] + ], + "spec/ast/merge_spec.rb:664670069": [ + [3, 1, 3113, "Metrics/BlockLength: Block has too many lines. [74/25]", 4034649501], + [9, 3, 2227, "Metrics/BlockLength: Block has too many lines. [51/25]", 578300230], + [10, 5, 2182, "Metrics/BlockLength: Block has too many lines. [49/25]", 2758871265] + ], + "spec/base_substrate_spec.rb:2864492094": [ + [5, 1, 5800, "Metrics/BlockLength: Block has too many lines. [143/25]", 784801982], + [6, 3, 192, "Lint/ConstantDefinitionInBlock: Do not define constants this way within a block.", 680981873], + [13, 3, 378, "Lint/ConstantDefinitionInBlock: Do not define constants this way within a block.", 1223797442], + [31, 3, 628, "Lint/ConstantDefinitionInBlock: Do not define constants this way within a block.", 2123191050], + [53, 3, 429, "Lint/ConstantDefinitionInBlock: Do not define constants this way within a block.", 3536712197], + [69, 3, 24, "Lint/ConstantDefinitionInBlock: Do not define constants this way within a block.", 2280792512], + [70, 3, 78, "Lint/ConstantDefinitionInBlock: Do not define constants this way within a block.", 604224776], + [72, 3, 146, "Lint/ConstantDefinitionInBlock: Do not define constants this way within a block.", 3315091322] + ], + "spec/fixtures_integration_spec.rb:1733315771": [ + [595, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5859109], + [758, 121, 54, "Layout/LineLength: Line is too long. [174/120]", 576909008], + [881, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2087900170], + [1810, 3, 816, "Metrics/MethodLength: Method has too many lines. [13/10]", 170960660], + [1810, 39, 213, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [10/5]", 635200700], + [1811, 121, 27, "Layout/LineLength: Line is too long. [147/120]", 3976306097], + [1835, 38, 80, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 3297939075], + [1920, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1745553512], + [1921, 121, 38, "Layout/LineLength: Line is too long. [158/120]", 118067488], + [1922, 121, 5, "Layout/LineLength: Line is too long. [125/120]", 196190368], + [1923, 121, 41, "Layout/LineLength: Line is too long. [161/120]", 3371256193], + [2094, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 3241114703], + [2432, 121, 1, "Layout/LineLength: Line is too long. [121/120]", 177548], + [2571, 121, 1, "Layout/LineLength: Line is too long. [121/120]", 177548], + [2995, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 3697593604], + [2996, 121, 1, "Layout/LineLength: Line is too long. [121/120]", 177548], + [3117, 121, 5, "Layout/LineLength: Line is too long. [125/120]", 179435314], + [3126, 121, 34, "Layout/LineLength: Line is too long. [154/120]", 1182194285], + [3128, 121, 28, "Layout/LineLength: Line is too long. [148/120]", 3886107031], + [3155, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1751849111], + [3156, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 1519587684], + [3157, 121, 11, "Layout/LineLength: Line is too long. [131/120]", 4086262880], + [3174, 121, 10, "Layout/LineLength: Line is too long. [130/120]", 3568081822], + [3175, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 1776876782], + [3177, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5858795], + [3178, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1751849111], + [3180, 121, 73, "Layout/LineLength: Line is too long. [193/120]", 3322243646], + [3182, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1715153206], + [3183, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5858795], + [3184, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 504997180], + [3185, 121, 44, "Layout/LineLength: Line is too long. [164/120]", 1146860021], + [3186, 121, 38, "Layout/LineLength: Line is too long. [158/120]", 2312101607], + [3187, 121, 42, "Layout/LineLength: Line is too long. [162/120]", 1423779161], + [3188, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1900897138], + [3189, 121, 10, "Layout/LineLength: Line is too long. [130/120]", 1689840383], + [3190, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 1589056236], + [3192, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 763176550], + [3198, 121, 16, "Layout/LineLength: Line is too long. [136/120]", 3957871310], + [3200, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 763176550], + [3202, 121, 10, "Layout/LineLength: Line is too long. [130/120]", 919916608], + [3203, 121, 10, "Layout/LineLength: Line is too long. [130/120]", 919916608], + [3204, 121, 16, "Layout/LineLength: Line is too long. [136/120]", 3957871310], + [3205, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 4073040612], + [3206, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 763176550], + [3207, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 667593075], + [3209, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1310972770], + [3210, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 311387795], + [3211, 121, 18, "Layout/LineLength: Line is too long. [138/120]", 724840266], + [3212, 121, 22, "Layout/LineLength: Line is too long. [142/120]", 2555878310], + [3213, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1781078972], + [3214, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5858795], + [3217, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5858795], + [3218, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 1658060570], + [3219, 121, 40, "Layout/LineLength: Line is too long. [160/120]", 3085728851], + [3220, 121, 44, "Layout/LineLength: Line is too long. [164/120]", 3129400559], + [3221, 121, 10, "Layout/LineLength: Line is too long. [130/120]", 3197516464], + [3222, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2087771520], + [3223, 121, 22, "Layout/LineLength: Line is too long. [142/120]", 3837194228], + [3224, 121, 42, "Layout/LineLength: Line is too long. [162/120]", 1312323543], + [3225, 121, 46, "Layout/LineLength: Line is too long. [166/120]", 2356847623], + [3226, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5858795], + [3227, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 3428073441], + [3228, 121, 40, "Layout/LineLength: Line is too long. [160/120]", 2891080552], + [3229, 121, 44, "Layout/LineLength: Line is too long. [164/120]", 3080737172], + [3230, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 170445026], + [3231, 121, 32, "Layout/LineLength: Line is too long. [152/120]", 3240051869], + [3232, 121, 52, "Layout/LineLength: Line is too long. [172/120]", 4266052680], + [3233, 121, 56, "Layout/LineLength: Line is too long. [176/120]", 3376297786], + [3234, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 398435913], + [3235, 121, 26, "Layout/LineLength: Line is too long. [146/120]", 4134940256], + [3236, 121, 46, "Layout/LineLength: Line is too long. [166/120]", 30370035], + [3237, 121, 50, "Layout/LineLength: Line is too long. [170/120]", 2862546359], + [3238, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 1901388514], + [3239, 121, 38, "Layout/LineLength: Line is too long. [158/120]", 838864274], + [3240, 121, 58, "Layout/LineLength: Line is too long. [178/120]", 3437460384], + [3241, 121, 62, "Layout/LineLength: Line is too long. [182/120]", 1567003152], + [3242, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 2609066305], + [3243, 121, 32, "Layout/LineLength: Line is too long. [152/120]", 4043187090], + [3244, 121, 52, "Layout/LineLength: Line is too long. [172/120]", 3866430009], + [3245, 121, 56, "Layout/LineLength: Line is too long. [176/120]", 2182699083], + [3246, 121, 26, "Layout/LineLength: Line is too long. [146/120]", 3958792129], + [3247, 121, 44, "Layout/LineLength: Line is too long. [164/120]", 3449926560], + [3248, 121, 64, "Layout/LineLength: Line is too long. [184/120]", 399774089], + [3249, 121, 68, "Layout/LineLength: Line is too long. [188/120]", 2119246799], + [3251, 121, 32, "Layout/LineLength: Line is too long. [152/120]", 3592658842], + [3252, 121, 18, "Layout/LineLength: Line is too long. [138/120]", 2905723409], + [3253, 121, 38, "Layout/LineLength: Line is too long. [158/120]", 3930305198], + [3254, 121, 42, "Layout/LineLength: Line is too long. [162/120]", 4186230052], + [3255, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5858795], + [3256, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 2700200720], + [3257, 121, 40, "Layout/LineLength: Line is too long. [160/120]", 1630526402], + [3258, 121, 44, "Layout/LineLength: Line is too long. [164/120]", 3669244926], + [3259, 121, 18, "Layout/LineLength: Line is too long. [138/120]", 2814234644], + [3260, 121, 36, "Layout/LineLength: Line is too long. [156/120]", 3109415933], + [3261, 121, 56, "Layout/LineLength: Line is too long. [176/120]", 3643275044], + [3262, 121, 60, "Layout/LineLength: Line is too long. [180/120]", 3825290660], + [3263, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1751849111], + [3264, 121, 24, "Layout/LineLength: Line is too long. [144/120]", 4112285398], + [3265, 121, 44, "Layout/LineLength: Line is too long. [164/120]", 1684279672], + [3266, 121, 48, "Layout/LineLength: Line is too long. [168/120]", 1616506266], + [3268, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5858795], + [3269, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 1330093223], + [3270, 121, 40, "Layout/LineLength: Line is too long. [160/120]", 4084555566], + [3271, 121, 44, "Layout/LineLength: Line is too long. [164/120]", 2466867154], + [3272, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 4088314613], + [3273, 121, 26, "Layout/LineLength: Line is too long. [146/120]", 2416893689], + [3274, 121, 46, "Layout/LineLength: Line is too long. [166/120]", 683312682], + [3275, 121, 50, "Layout/LineLength: Line is too long. [170/120]", 2516517934], + [3276, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 2414563355], + [3277, 121, 38, "Layout/LineLength: Line is too long. [158/120]", 2232595211], + [3278, 121, 58, "Layout/LineLength: Line is too long. [178/120]", 2940789369], + [3279, 121, 62, "Layout/LineLength: Line is too long. [182/120]", 941259913], + [3280, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 2133508098], + [3281, 121, 26, "Layout/LineLength: Line is too long. [146/120]", 1621975014], + [3282, 121, 46, "Layout/LineLength: Line is too long. [166/120]", 35985461], + [3283, 121, 50, "Layout/LineLength: Line is too long. [170/120]", 746016305], + [3284, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 435488100], + [3285, 121, 38, "Layout/LineLength: Line is too long. [158/120]", 2581129172], + [3286, 121, 58, "Layout/LineLength: Line is too long. [178/120]", 3495900774], + [3287, 121, 62, "Layout/LineLength: Line is too long. [182/120]", 1413120342], + [3288, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5858795], + [3289, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 2333800791], + [3290, 121, 40, "Layout/LineLength: Line is too long. [160/120]", 2576906206], + [3291, 121, 44, "Layout/LineLength: Line is too long. [164/120]", 2986659874], + [3292, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 2811932564], + [3293, 121, 32, "Layout/LineLength: Line is too long. [152/120]", 1970813291], + [3294, 121, 52, "Layout/LineLength: Line is too long. [172/120]", 2904941246], + [3295, 121, 56, "Layout/LineLength: Line is too long. [176/120]", 3745922508], + [3296, 121, 32, "Layout/LineLength: Line is too long. [152/120]", 735247237], + [3297, 121, 50, "Layout/LineLength: Line is too long. [170/120]", 3731320885], + [3298, 121, 70, "Layout/LineLength: Line is too long. [190/120]", 3896022034], + [3299, 121, 74, "Layout/LineLength: Line is too long. [194/120]", 2827048584], + [3300, 121, 44, "Layout/LineLength: Line is too long. [164/120]", 2548596663], + [3301, 121, 62, "Layout/LineLength: Line is too long. [182/120]", 3812352018], + [3302, 121, 82, "Layout/LineLength: Line is too long. [202/120]", 1280243910], + [3303, 121, 86, "Layout/LineLength: Line is too long. [206/120]", 1742643292], + [3304, 121, 40, "Layout/LineLength: Line is too long. [160/120]", 3056442430], + [3305, 121, 58, "Layout/LineLength: Line is too long. [178/120]", 3144363287], + [3306, 121, 78, "Layout/LineLength: Line is too long. [198/120]", 477297993], + [3307, 121, 82, "Layout/LineLength: Line is too long. [202/120]", 3657857971], + [3308, 121, 52, "Layout/LineLength: Line is too long. [172/120]", 3913984414], + [3309, 121, 70, "Layout/LineLength: Line is too long. [190/120]", 336201058], + [3310, 121, 90, "Layout/LineLength: Line is too long. [210/120]", 485418789], + [3311, 121, 94, "Layout/LineLength: Line is too long. [214/120]", 453253839], + [3312, 121, 32, "Layout/LineLength: Line is too long. [152/120]", 3673833034], + [3313, 121, 50, "Layout/LineLength: Line is too long. [170/120]", 1552836890], + [3314, 121, 70, "Layout/LineLength: Line is too long. [190/120]", 2714635965], + [3315, 121, 74, "Layout/LineLength: Line is too long. [194/120]", 9336999], + [3316, 121, 44, "Layout/LineLength: Line is too long. [164/120]", 584857208], + [3317, 121, 62, "Layout/LineLength: Line is too long. [182/120]", 1394865213], + [3318, 121, 82, "Layout/LineLength: Line is too long. [202/120]", 3973222761], + [3319, 121, 86, "Layout/LineLength: Line is too long. [206/120]", 2020040051], + [3320, 121, 34, "Layout/LineLength: Line is too long. [154/120]", 3060994335], + [3321, 121, 52, "Layout/LineLength: Line is too long. [172/120]", 196286917], + [3322, 121, 72, "Layout/LineLength: Line is too long. [192/120]", 4168514178], + [3323, 121, 76, "Layout/LineLength: Line is too long. [196/120]", 810581246], + [3324, 121, 46, "Layout/LineLength: Line is too long. [166/120]", 1473417372], + [3325, 121, 64, "Layout/LineLength: Line is too long. [184/120]", 3008376885], + [3326, 121, 84, "Layout/LineLength: Line is too long. [204/120]", 454816400], + [3327, 121, 88, "Layout/LineLength: Line is too long. [208/120]", 1416223705], + [3328, 121, 48, "Layout/LineLength: Line is too long. [168/120]", 2896813919], + [3329, 121, 66, "Layout/LineLength: Line is too long. [186/120]", 957293983], + [3330, 121, 86, "Layout/LineLength: Line is too long. [206/120]", 2118117430], + [3331, 121, 90, "Layout/LineLength: Line is too long. [210/120]", 1367404612], + [3332, 121, 64, "Layout/LineLength: Line is too long. [184/120]", 2459902188], + [3333, 121, 62, "Layout/LineLength: Line is too long. [182/120]", 461483815], + [3334, 121, 62, "Layout/LineLength: Line is too long. [182/120]", 2791596520], + [3335, 121, 60, "Layout/LineLength: Line is too long. [180/120]", 203085787], + [3336, 121, 64, "Layout/LineLength: Line is too long. [184/120]", 2942095139], + [3337, 121, 80, "Layout/LineLength: Line is too long. [200/120]", 131861965], + [3338, 121, 86, "Layout/LineLength: Line is too long. [206/120]", 3340827551], + [3339, 121, 90, "Layout/LineLength: Line is too long. [210/120]", 102582610], + [3340, 121, 94, "Layout/LineLength: Line is too long. [214/120]", 762789354], + [3341, 121, 90, "Layout/LineLength: Line is too long. [210/120]", 3478337442], + [3342, 121, 112, "Layout/LineLength: Line is too long. [232/120]", 4010607435], + [3343, 121, 132, "Layout/LineLength: Line is too long. [252/120]", 3754747587], + [3344, 121, 136, "Layout/LineLength: Line is too long. [256/120]", 379336923], + [3345, 121, 108, "Layout/LineLength: Line is too long. [228/120]", 3366353902], + [3346, 121, 128, "Layout/LineLength: Line is too long. [248/120]", 1686898289], + [3347, 121, 132, "Layout/LineLength: Line is too long. [252/120]", 2005192241], + [3348, 121, 104, "Layout/LineLength: Line is too long. [224/120]", 1868634464], + [3349, 121, 124, "Layout/LineLength: Line is too long. [244/120]", 3939743614], + [3350, 121, 128, "Layout/LineLength: Line is too long. [248/120]", 2978506702], + [3351, 121, 98, "Layout/LineLength: Line is too long. [218/120]", 3909866928], + [3352, 121, 118, "Layout/LineLength: Line is too long. [238/120]", 2853032177], + [3353, 121, 122, "Layout/LineLength: Line is too long. [242/120]", 2968366309], + [3354, 121, 82, "Layout/LineLength: Line is too long. [202/120]", 1753663643], + [3355, 121, 102, "Layout/LineLength: Line is too long. [222/120]", 3387619436], + [3356, 121, 106, "Layout/LineLength: Line is too long. [226/120]", 197895496], + [3357, 121, 78, "Layout/LineLength: Line is too long. [198/120]", 576181861], + [3358, 121, 98, "Layout/LineLength: Line is too long. [218/120]", 2809313444], + [3359, 121, 102, "Layout/LineLength: Line is too long. [222/120]", 3963067112], + [3360, 121, 80, "Layout/LineLength: Line is too long. [200/120]", 1121380327], + [3361, 121, 100, "Layout/LineLength: Line is too long. [220/120]", 31591211], + [3362, 121, 104, "Layout/LineLength: Line is too long. [224/120]", 1946129497], + [3363, 121, 80, "Layout/LineLength: Line is too long. [200/120]", 767185096], + [3364, 121, 100, "Layout/LineLength: Line is too long. [220/120]", 1092646020], + [3365, 121, 104, "Layout/LineLength: Line is too long. [224/120]", 1328841270], + [3366, 121, 74, "Layout/LineLength: Line is too long. [194/120]", 2663749624], + [3367, 121, 74, "Layout/LineLength: Line is too long. [194/120]", 430318647], + [3368, 121, 72, "Layout/LineLength: Line is too long. [192/120]", 1650234037], + [3369, 121, 76, "Layout/LineLength: Line is too long. [196/120]", 1082269805], + [3370, 121, 92, "Layout/LineLength: Line is too long. [212/120]", 316397809], + [3371, 121, 92, "Layout/LineLength: Line is too long. [212/120]", 3145391348], + [3372, 121, 112, "Layout/LineLength: Line is too long. [232/120]", 2808088654], + [3373, 121, 116, "Layout/LineLength: Line is too long. [236/120]", 1035513748], + [3374, 121, 92, "Layout/LineLength: Line is too long. [212/120]", 2552800539], + [3375, 121, 112, "Layout/LineLength: Line is too long. [232/120]", 1727699169], + [3376, 121, 116, "Layout/LineLength: Line is too long. [236/120]", 1171566267], + [3377, 121, 90, "Layout/LineLength: Line is too long. [210/120]", 2994775049], + [3378, 121, 110, "Layout/LineLength: Line is too long. [230/120]", 3860489151], + [3379, 121, 114, "Layout/LineLength: Line is too long. [234/120]", 959496607], + [3380, 121, 94, "Layout/LineLength: Line is too long. [214/120]", 1694222439], + [3381, 121, 114, "Layout/LineLength: Line is too long. [234/120]", 1501186331], + [3382, 121, 118, "Layout/LineLength: Line is too long. [238/120]", 4059659418], + [3383, 121, 110, "Layout/LineLength: Line is too long. [230/120]", 1899868779], + [3384, 121, 130, "Layout/LineLength: Line is too long. [250/120]", 323324279], + [3385, 121, 134, "Layout/LineLength: Line is too long. [254/120]", 3956414359], + [3386, 121, 98, "Layout/LineLength: Line is too long. [218/120]", 3506644741], + [3387, 121, 116, "Layout/LineLength: Line is too long. [236/120]", 936139074], + [3388, 121, 136, "Layout/LineLength: Line is too long. [256/120]", 4153213512], + [3389, 121, 140, "Layout/LineLength: Line is too long. [260/120]", 1491976338], + [3390, 121, 102, "Layout/LineLength: Line is too long. [222/120]", 4061753206], + [3391, 121, 106, "Layout/LineLength: Line is too long. [226/120]", 2410434304], + [3392, 121, 124, "Layout/LineLength: Line is too long. [244/120]", 3518300264], + [3393, 121, 144, "Layout/LineLength: Line is too long. [264/120]", 1040696046], + [3394, 121, 148, "Layout/LineLength: Line is too long. [268/120]", 139604188], + [3395, 121, 120, "Layout/LineLength: Line is too long. [240/120]", 231937793], + [3396, 121, 140, "Layout/LineLength: Line is too long. [260/120]", 1835509805], + [3397, 121, 144, "Layout/LineLength: Line is too long. [264/120]", 1629218396], + [3398, 121, 82, "Layout/LineLength: Line is too long. [202/120]", 2312875700], + [3399, 121, 102, "Layout/LineLength: Line is too long. [222/120]", 2933374083], + [3400, 121, 106, "Layout/LineLength: Line is too long. [226/120]", 1719349671], + [3401, 121, 76, "Layout/LineLength: Line is too long. [196/120]", 2555579810], + [3402, 121, 94, "Layout/LineLength: Line is too long. [214/120]", 2023551624], + [3403, 121, 114, "Layout/LineLength: Line is too long. [234/120]", 955231924], + [3404, 121, 118, "Layout/LineLength: Line is too long. [238/120]", 4232993781], + [3405, 121, 60, "Layout/LineLength: Line is too long. [180/120]", 3472954835], + [3406, 121, 78, "Layout/LineLength: Line is too long. [198/120]", 3211922285], + [3407, 121, 98, "Layout/LineLength: Line is too long. [218/120]", 2874956332], + [3408, 121, 102, "Layout/LineLength: Line is too long. [222/120]", 1360335840], + [3409, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 2135379556], + [3410, 121, 32, "Layout/LineLength: Line is too long. [152/120]", 3242768475], + [3411, 121, 52, "Layout/LineLength: Line is too long. [172/120]", 2789115918], + [3412, 121, 56, "Layout/LineLength: Line is too long. [176/120]", 3346448124], + [3413, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 1538469817], + [3414, 121, 34, "Layout/LineLength: Line is too long. [154/120]", 1543041113], + [3415, 121, 38, "Layout/LineLength: Line is too long. [158/120]", 3344741438], + [3416, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 2188404009], + [3417, 121, 26, "Layout/LineLength: Line is too long. [146/120]", 1330398779], + [3418, 121, 46, "Layout/LineLength: Line is too long. [166/120]", 332468826], + [3419, 121, 50, "Layout/LineLength: Line is too long. [170/120]", 1905397598], + [3420, 121, 28, "Layout/LineLength: Line is too long. [148/120]", 438831062], + [3421, 121, 48, "Layout/LineLength: Line is too long. [168/120]", 3377667334], + [3422, 121, 52, "Layout/LineLength: Line is too long. [172/120]", 3232541734], + [3424, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 2130930429], + [3425, 121, 24, "Layout/LineLength: Line is too long. [144/120]", 3684939371], + [3427, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 2361951097], + [3428, 121, 32, "Layout/LineLength: Line is too long. [152/120]", 1211447462], + [3429, 121, 52, "Layout/LineLength: Line is too long. [172/120]", 3309872691], + [3430, 121, 56, "Layout/LineLength: Line is too long. [176/120]", 360053761], + [3431, 121, 16, "Layout/LineLength: Line is too long. [136/120]", 1310136493], + [3432, 121, 34, "Layout/LineLength: Line is too long. [154/120]", 1950686342], + [3433, 121, 54, "Layout/LineLength: Line is too long. [174/120]", 1397845826], + [3434, 121, 58, "Layout/LineLength: Line is too long. [178/120]", 4191304724], + [3435, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 2354128498], + [3436, 121, 30, "Layout/LineLength: Line is too long. [150/120]", 1865717453], + [3437, 121, 50, "Layout/LineLength: Line is too long. [170/120]", 24220542], + [3438, 121, 54, "Layout/LineLength: Line is too long. [174/120]", 2618612673], + [3441, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 3422918867], + [3442, 121, 16, "Layout/LineLength: Line is too long. [136/120]", 3689431739], + [3486, 121, 47, "Layout/LineLength: Line is too long. [167/120]", 4093564799], + [3492, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1662653970], + [3493, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 3967501655], + [3494, 121, 17, "Layout/LineLength: Line is too long. [137/120]", 2178516622], + [3495, 121, 40, "Layout/LineLength: Line is too long. [160/120]", 1345346561], + [3509, 121, 3, "Layout/LineLength: Line is too long. [123/120]", 193466072], + [3629, 121, 23, "Layout/LineLength: Line is too long. [143/120]", 3612393276], + [3630, 121, 9, "Layout/LineLength: Line is too long. [129/120]", 797303985], + [3633, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 1606320605], + [3653, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 1776876782], + [3657, 121, 7, "Layout/LineLength: Line is too long. [127/120]", 828742791], + [3677, 121, 31, "Layout/LineLength: Line is too long. [151/120]", 3294617581], + [3687, 121, 22, "Layout/LineLength: Line is too long. [142/120]", 3519842846], + [3697, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 1966440909], + [3698, 121, 7, "Layout/LineLength: Line is too long. [127/120]", 830053864], + [3704, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 1606320605], + [3727, 121, 16, "Layout/LineLength: Line is too long. [136/120]", 1340744311], + [3746, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1741893077], + [3747, 121, 7, "Layout/LineLength: Line is too long. [127/120]", 830053865], + [3751, 121, 3, "Layout/LineLength: Line is too long. [123/120]", 193405204], + [3765, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 1401226501], + [3768, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2085352569], + [3771, 121, 17, "Layout/LineLength: Line is too long. [137/120]", 696523922], + [3786, 121, 5, "Layout/LineLength: Line is too long. [125/120]", 182097675], + [3796, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 2746826653], + [4212, 121, 19, "Layout/LineLength: Line is too long. [139/120]", 1138870161], + [4774, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5862609], + [4785, 121, 13, "Layout/LineLength: Line is too long. [133/120]", 2132299307], + [4832, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2087775098], + [4843, 121, 15, "Layout/LineLength: Line is too long. [135/120]", 757851079], + [4879, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5862609], + [4890, 121, 13, "Layout/LineLength: Line is too long. [133/120]", 441649198], + [4913, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2087903295], + [4925, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 170442008], + [4934, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 2102137893], + [4936, 121, 25, "Layout/LineLength: Line is too long. [145/120]", 1888875443], + [4973, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 398433651], + [4984, 121, 19, "Layout/LineLength: Line is too long. [139/120]", 3921367744], + [5007, 121, 10, "Layout/LineLength: Line is too long. [130/120]", 2422819473], + [5013, 121, 5, "Layout/LineLength: Line is too long. [125/120]", 194583095], + [5019, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 1901385496], + [5028, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 490810486], + [5030, 121, 31, "Layout/LineLength: Line is too long. [151/120]", 586287746], + [5034, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1310969752], + [5054, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2087389205], + [5066, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 2609063547], + [5075, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 2102137893], + [5077, 121, 25, "Layout/LineLength: Line is too long. [145/120]", 1370761696], + [5100, 121, 16, "Layout/LineLength: Line is too long. [136/120]", 2208661169], + [5106, 121, 11, "Layout/LineLength: Line is too long. [131/120]", 1862604658], + [5112, 121, 26, "Layout/LineLength: Line is too long. [146/120]", 3958789371], + [5121, 121, 18, "Layout/LineLength: Line is too long. [138/120]", 3449594464], + [5123, 121, 37, "Layout/LineLength: Line is too long. [157/120]", 692050524], + [5127, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 802172558], + [5197, 121, 11, "Layout/LineLength: Line is too long. [131/120]", 2406691660], + [5232, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5862609], + [5243, 121, 13, "Layout/LineLength: Line is too long. [133/120]", 1811982742], + [5270, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 2562189319], + [5276, 121, 3, "Layout/LineLength: Line is too long. [123/120]", 193430346], + [5282, 121, 18, "Layout/LineLength: Line is too long. [138/120]", 2814237166], + [5291, 121, 10, "Layout/LineLength: Line is too long. [130/120]", 2189106693], + [5293, 121, 29, "Layout/LineLength: Line is too long. [149/120]", 3874870868], + [5297, 121, 5, "Layout/LineLength: Line is too long. [125/120]", 179474914], + [5330, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1751845165], + [5341, 121, 17, "Layout/LineLength: Line is too long. [137/120]", 2617230371], + [5345, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5862609], + [5386, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5862609], + [5397, 121, 13, "Layout/LineLength: Line is too long. [133/120]", 3793790598], + [5432, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 4088312783], + [5443, 121, 19, "Layout/LineLength: Line is too long. [139/120]", 3220724736], + [5447, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2087899888], + [5466, 121, 10, "Layout/LineLength: Line is too long. [130/120]", 2552888401], + [5472, 121, 5, "Layout/LineLength: Line is too long. [125/120]", 194583095], + [5478, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 2414559905], + [5487, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 626762179], + [5489, 121, 31, "Layout/LineLength: Line is too long. [151/120]", 3969284923], + [5493, 121, 16, "Layout/LineLength: Line is too long. [136/120]", 1893261414], + [5525, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 2133507320], + [5536, 121, 19, "Layout/LineLength: Line is too long. [139/120]", 2101353476], + [5540, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2087685705], + [5559, 121, 10, "Layout/LineLength: Line is too long. [130/120]", 2431380437], + [5565, 121, 5, "Layout/LineLength: Line is too long. [125/120]", 194583095], + [5571, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 435489438], + [5580, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 1520878209], + [5582, 121, 31, "Layout/LineLength: Line is too long. [151/120]", 2238995076], + [5586, 121, 16, "Layout/LineLength: Line is too long. [136/120]", 2789405913], + [5619, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5862609], + [5630, 121, 13, "Layout/LineLength: Line is too long. [133/120]", 3409328196], + [5653, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2087858069], + [5665, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 2811935086], + [5674, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 2102137893], + [5676, 121, 25, "Layout/LineLength: Line is too long. [145/120]", 1113346693], + [5680, 121, 10, "Layout/LineLength: Line is too long. [130/120]", 3227128786], + [5700, 121, 22, "Layout/LineLength: Line is too long. [142/120]", 48793812], + [5706, 121, 17, "Layout/LineLength: Line is too long. [137/120]", 338440584], + [5712, 121, 32, "Layout/LineLength: Line is too long. [152/120]", 735248703], + [5721, 121, 24, "Layout/LineLength: Line is too long. [144/120]", 927473097], + [5723, 121, 43, "Layout/LineLength: Line is too long. [163/120]", 1394536741], + [5727, 121, 18, "Layout/LineLength: Line is too long. [138/120]", 3134012967], + [5746, 121, 34, "Layout/LineLength: Line is too long. [154/120]", 2967615316], + [5752, 121, 29, "Layout/LineLength: Line is too long. [149/120]", 2810710931], + [5758, 121, 44, "Layout/LineLength: Line is too long. [164/120]", 2548594701], + [5761, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5860796], + [5763, 121, 5, "Layout/LineLength: Line is too long. [125/120]", 182097675], + [5767, 121, 36, "Layout/LineLength: Line is too long. [156/120]", 3549194295], + [5769, 121, 55, "Layout/LineLength: Line is too long. [175/120]", 1074004741], + [5773, 121, 30, "Layout/LineLength: Line is too long. [150/120]", 2874423564], + [5776, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2087576526], + [5778, 121, 5, "Layout/LineLength: Line is too long. [125/120]", 182097675], + [5793, 121, 30, "Layout/LineLength: Line is too long. [150/120]", 1696848307], + [5799, 121, 25, "Layout/LineLength: Line is too long. [145/120]", 2883501659], + [5805, 121, 40, "Layout/LineLength: Line is too long. [160/120]", 3056443076], + [5810, 121, 3, "Layout/LineLength: Line is too long. [123/120]", 193405204], + [5814, 121, 32, "Layout/LineLength: Line is too long. [152/120]", 1487412605], + [5816, 121, 51, "Layout/LineLength: Line is too long. [171/120]", 2021571284], + [5820, 121, 26, "Layout/LineLength: Line is too long. [146/120]", 1975782995], + [5823, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5860796], + [5825, 121, 3, "Layout/LineLength: Line is too long. [123/120]", 193405204], + [5830, 121, 5, "Layout/LineLength: Line is too long. [125/120]", 183236849], + [5839, 121, 42, "Layout/LineLength: Line is too long. [162/120]", 856018753], + [5842, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5862609], + [5845, 121, 37, "Layout/LineLength: Line is too long. [157/120]", 2146546324], + [5851, 121, 52, "Layout/LineLength: Line is too long. [172/120]", 3913983076], + [5854, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 3491931666], + [5856, 121, 9, "Layout/LineLength: Line is too long. [129/120]", 3536323546], + [5860, 121, 44, "Layout/LineLength: Line is too long. [164/120]", 356581191], + [5862, 121, 63, "Layout/LineLength: Line is too long. [183/120]", 4144657639], + [5866, 121, 38, "Layout/LineLength: Line is too long. [158/120]", 1478616653], + [5869, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 1774852021], + [5871, 121, 9, "Layout/LineLength: Line is too long. [129/120]", 3536323546], + [5886, 121, 22, "Layout/LineLength: Line is too long. [142/120]", 3884289787], + [5892, 121, 17, "Layout/LineLength: Line is too long. [137/120]", 1001503687], + [5898, 121, 32, "Layout/LineLength: Line is too long. [152/120]", 3673836976], + [5907, 121, 24, "Layout/LineLength: Line is too long. [144/120]", 3164908550], + [5909, 121, 43, "Layout/LineLength: Line is too long. [163/120]", 1134300778], + [5913, 121, 18, "Layout/LineLength: Line is too long. [138/120]", 1797165224], + [5932, 121, 34, "Layout/LineLength: Line is too long. [154/120]", 2508143995], + [5938, 121, 29, "Layout/LineLength: Line is too long. [149/120]", 3002532188], + [5944, 121, 44, "Layout/LineLength: Line is too long. [164/120]", 584857986], + [5947, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5860796], + [5949, 121, 5, "Layout/LineLength: Line is too long. [125/120]", 182097675], + [5953, 121, 36, "Layout/LineLength: Line is too long. [156/120]", 749691384], + [5955, 121, 55, "Layout/LineLength: Line is too long. [175/120]", 3389354954], + [5959, 121, 30, "Layout/LineLength: Line is too long. [150/120]", 3402045699], + [5962, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2087576526], + [5964, 121, 5, "Layout/LineLength: Line is too long. [125/120]", 182097675], + [5978, 121, 24, "Layout/LineLength: Line is too long. [144/120]", 2447716612], + [5984, 121, 19, "Layout/LineLength: Line is too long. [139/120]", 3201685099], + [5990, 121, 34, "Layout/LineLength: Line is too long. [154/120]", 3060990885], + [5999, 121, 26, "Layout/LineLength: Line is too long. [146/120]", 29396315], + [6001, 121, 45, "Layout/LineLength: Line is too long. [165/120]", 1228645365], + [6005, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 1436742837], + [6024, 121, 36, "Layout/LineLength: Line is too long. [156/120]", 716917214], + [6030, 121, 31, "Layout/LineLength: Line is too long. [151/120]", 2175814211], + [6036, 121, 46, "Layout/LineLength: Line is too long. [166/120]", 1473420390], + [6039, 121, 3, "Layout/LineLength: Line is too long. [123/120]", 193433391], + [6041, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1422839111], + [6045, 121, 38, "Layout/LineLength: Line is too long. [158/120]", 1571170198], + [6047, 121, 57, "Layout/LineLength: Line is too long. [177/120]", 2175059093], + [6051, 121, 32, "Layout/LineLength: Line is too long. [152/120]", 3886666417], + [6054, 121, 5, "Layout/LineLength: Line is too long. [125/120]", 176753677], + [6056, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1422839111], + [6072, 121, 38, "Layout/LineLength: Line is too long. [158/120]", 3471319495], + [6078, 121, 33, "Layout/LineLength: Line is too long. [153/120]", 1274038477], + [6084, 121, 48, "Layout/LineLength: Line is too long. [168/120]", 2896814693], + [6087, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2087576526], + [6089, 121, 7, "Layout/LineLength: Line is too long. [127/120]", 4114086530], + [6093, 121, 40, "Layout/LineLength: Line is too long. [160/120]", 250433828], + [6095, 121, 59, "Layout/LineLength: Line is too long. [179/120]", 3910556848], + [6099, 121, 34, "Layout/LineLength: Line is too long. [154/120]", 4002014976], + [6102, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 3491931666], + [6104, 121, 7, "Layout/LineLength: Line is too long. [127/120]", 4114086530], + [6198, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5861664], + [6212, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2087932582], + [6226, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5861664], + [6242, 121, 80, "Layout/LineLength: Line is too long. [200/120]", 876012844], + [6244, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1756764194], + [6245, 121, 21, "Layout/LineLength: Line is too long. [141/120]", 4173216735], + [6248, 121, 75, "Layout/LineLength: Line is too long. [195/120]", 911964425], + [6249, 121, 5, "Layout/LineLength: Line is too long. [125/120]", 173266907], + [6250, 121, 11, "Layout/LineLength: Line is too long. [131/120]", 1412705933], + [6253, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1756764194], + [6254, 121, 90, "Layout/LineLength: Line is too long. [210/120]", 2605683750], + [6257, 121, 25, "Layout/LineLength: Line is too long. [145/120]", 3182252139], + [6259, 121, 28, "Layout/LineLength: Line is too long. [148/120]", 1652557742], + [6263, 121, 82, "Layout/LineLength: Line is too long. [202/120]", 2240437058], + [6264, 121, 5, "Layout/LineLength: Line is too long. [125/120]", 173266907], + [6265, 121, 101, "Layout/LineLength: Line is too long. [221/120]", 3694598076], + [6267, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5861152], + [6268, 121, 5, "Layout/LineLength: Line is too long. [125/120]", 179079542], + [6269, 121, 76, "Layout/LineLength: Line is too long. [196/120]", 3528944411], + [6272, 121, 27, "Layout/LineLength: Line is too long. [147/120]", 3020159378], + [6274, 121, 28, "Layout/LineLength: Line is too long. [148/120]", 1652557742], + [6280, 121, 84, "Layout/LineLength: Line is too long. [204/120]", 420843234], + [6282, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 1401226501], + [6283, 121, 23, "Layout/LineLength: Line is too long. [143/120]", 442915368], + [6286, 121, 79, "Layout/LineLength: Line is too long. [199/120]", 4212444955], + [6287, 121, 7, "Layout/LineLength: Line is too long. [127/120]", 830053864], + [6288, 121, 13, "Layout/LineLength: Line is too long. [133/120]", 1373660924], + [6291, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 1401226501], + [6292, 121, 94, "Layout/LineLength: Line is too long. [214/120]", 1539225758], + [6295, 121, 27, "Layout/LineLength: Line is too long. [147/120]", 3020159378], + [6297, 121, 30, "Layout/LineLength: Line is too long. [150/120]", 4240691845], + [6301, 121, 86, "Layout/LineLength: Line is too long. [206/120]", 674553335], + [6302, 121, 7, "Layout/LineLength: Line is too long. [127/120]", 830053864], + [6303, 121, 105, "Layout/LineLength: Line is too long. [225/120]", 4163432287], + [6305, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2089555761], + [6306, 121, 7, "Layout/LineLength: Line is too long. [127/120]", 2034687276], + [6307, 121, 80, "Layout/LineLength: Line is too long. [200/120]", 3710905302], + [6310, 121, 29, "Layout/LineLength: Line is too long. [149/120]", 4204667212], + [6312, 121, 30, "Layout/LineLength: Line is too long. [150/120]", 4240691845], + [6318, 121, 76, "Layout/LineLength: Line is too long. [196/120]", 2071493433], + [6320, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2085352569], + [6321, 121, 19, "Layout/LineLength: Line is too long. [139/120]", 2853066942], + [6324, 121, 71, "Layout/LineLength: Line is too long. [191/120]", 2771467828], + [6325, 121, 3, "Layout/LineLength: Line is too long. [123/120]", 193425976], + [6326, 121, 9, "Layout/LineLength: Line is too long. [129/120]", 3025157142], + [6329, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2085352569], + [6330, 121, 86, "Layout/LineLength: Line is too long. [206/120]", 3340824101], + [6333, 121, 23, "Layout/LineLength: Line is too long. [143/120]", 3999804761], + [6335, 121, 26, "Layout/LineLength: Line is too long. [146/120]", 1999310973], + [6339, 121, 78, "Layout/LineLength: Line is too long. [198/120]", 835016333], + [6340, 121, 3, "Layout/LineLength: Line is too long. [123/120]", 193425976], + [6341, 121, 97, "Layout/LineLength: Line is too long. [217/120]", 3575893945], + [6344, 121, 3, "Layout/LineLength: Line is too long. [123/120]", 193405945], + [6345, 121, 72, "Layout/LineLength: Line is too long. [192/120]", 1755858308], + [6348, 121, 25, "Layout/LineLength: Line is too long. [145/120]", 3182252139], + [6350, 121, 26, "Layout/LineLength: Line is too long. [146/120]", 1999310973], + [6356, 121, 70, "Layout/LineLength: Line is too long. [190/120]", 3033080032], + [6358, 121, 1, "Layout/LineLength: Line is too long. [121/120]", 177549], + [6359, 121, 16, "Layout/LineLength: Line is too long. [136/120]", 2720985203], + [6362, 121, 65, "Layout/LineLength: Line is too long. [185/120]", 3233424320], + [6364, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1165873483], + [6367, 121, 1, "Layout/LineLength: Line is too long. [121/120]", 177549], + [6368, 121, 80, "Layout/LineLength: Line is too long. [200/120]", 131859703], + [6371, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 1943494546], + [6373, 121, 23, "Layout/LineLength: Line is too long. [143/120]", 4016166830], + [6377, 121, 72, "Layout/LineLength: Line is too long. [192/120]", 1350760977], + [6379, 121, 91, "Layout/LineLength: Line is too long. [211/120]", 4098706554], + [6383, 121, 66, "Layout/LineLength: Line is too long. [186/120]", 4059724765], + [6386, 121, 22, "Layout/LineLength: Line is too long. [142/120]", 1651955548], + [6388, 121, 23, "Layout/LineLength: Line is too long. [143/120]", 4016166830], + [6394, 121, 54, "Layout/LineLength: Line is too long. [174/120]", 1057495720], + [6397, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 1621971220], + [6400, 121, 49, "Layout/LineLength: Line is too long. [169/120]", 1585717593], + [6406, 121, 64, "Layout/LineLength: Line is too long. [184/120]", 2942094233], + [6409, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 2624667704], + [6411, 121, 15, "Layout/LineLength: Line is too long. [135/120]", 2317051977], + [6415, 121, 56, "Layout/LineLength: Line is too long. [176/120]", 1321610634], + [6417, 121, 75, "Layout/LineLength: Line is too long. [195/120]", 2854688831], + [6421, 121, 50, "Layout/LineLength: Line is too long. [170/120]", 4185465554], + [6424, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 1169781875], + [6426, 121, 15, "Layout/LineLength: Line is too long. [135/120]", 2317051977], + [6432, 121, 50, "Layout/LineLength: Line is too long. [170/120]", 1916545020], + [6435, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1422839111], + [6438, 121, 45, "Layout/LineLength: Line is too long. [165/120]", 910134593], + [6444, 121, 60, "Layout/LineLength: Line is too long. [180/120]", 203086561], + [6447, 121, 10, "Layout/LineLength: Line is too long. [130/120]", 2939363812], + [6449, 121, 13, "Layout/LineLength: Line is too long. [133/120]", 3155638331], + [6453, 121, 52, "Layout/LineLength: Line is too long. [172/120]", 1955758062], + [6455, 121, 71, "Layout/LineLength: Line is too long. [191/120]", 3737424359], + [6459, 121, 46, "Layout/LineLength: Line is too long. [166/120]", 3597620692], + [6462, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 2624667704], + [6464, 121, 13, "Layout/LineLength: Line is too long. [133/120]", 3155638331], + [6470, 121, 52, "Layout/LineLength: Line is too long. [172/120]", 1036052399], + [6473, 121, 7, "Layout/LineLength: Line is too long. [127/120]", 4114086530], + [6476, 121, 47, "Layout/LineLength: Line is too long. [167/120]", 1268266488], + [6482, 121, 62, "Layout/LineLength: Line is too long. [182/120]", 2791598354], + [6485, 121, 11, "Layout/LineLength: Line is too long. [131/120]", 1302589368], + [6487, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 3533902728], + [6491, 121, 54, "Layout/LineLength: Line is too long. [174/120]", 3942276897], + [6493, 121, 73, "Layout/LineLength: Line is too long. [193/120]", 1175941460], + [6497, 121, 48, "Layout/LineLength: Line is too long. [168/120]", 679697318], + [6500, 121, 13, "Layout/LineLength: Line is too long. [133/120]", 28126263], + [6502, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 3533902728], + [6503, 121, 5, "Layout/LineLength: Line is too long. [125/120]", 181895237], + [6508, 121, 52, "Layout/LineLength: Line is too long. [172/120]", 4057848448], + [6511, 121, 7, "Layout/LineLength: Line is too long. [127/120]", 4114086530], + [6514, 121, 47, "Layout/LineLength: Line is too long. [167/120]", 4067769399], + [6520, 121, 62, "Layout/LineLength: Line is too long. [182/120]", 461482909], + [6523, 121, 11, "Layout/LineLength: Line is too long. [131/120]", 1302589368], + [6525, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 3533902728], + [6529, 121, 54, "Layout/LineLength: Line is too long. [174/120]", 3561204590], + [6531, 121, 73, "Layout/LineLength: Line is too long. [193/120]", 880160795], + [6535, 121, 48, "Layout/LineLength: Line is too long. [168/120]", 1614719145], + [6538, 121, 13, "Layout/LineLength: Line is too long. [133/120]", 28126263], + [6540, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 3533902728], + [6541, 121, 5, "Layout/LineLength: Line is too long. [125/120]", 181895237], + [6588, 121, 3, "Layout/LineLength: Line is too long. [123/120]", 193432306], + [6602, 121, 64, "Layout/LineLength: Line is too long. [184/120]", 1645945966], + [6605, 121, 13, "Layout/LineLength: Line is too long. [133/120]", 3212740609], + [6608, 121, 59, "Layout/LineLength: Line is too long. [179/120]", 3982698123], + [6610, 121, 3, "Layout/LineLength: Line is too long. [123/120]", 193425997], + [6614, 121, 74, "Layout/LineLength: Line is too long. [194/120]", 2663750402], + [6617, 121, 17, "Layout/LineLength: Line is too long. [137/120]", 2420297272], + [6619, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 1164389943], + [6623, 121, 66, "Layout/LineLength: Line is too long. [186/120]", 3483121581], + [6625, 121, 85, "Layout/LineLength: Line is too long. [205/120]", 2271668600], + [6629, 121, 60, "Layout/LineLength: Line is too long. [180/120]", 804794365], + [6632, 121, 19, "Layout/LineLength: Line is too long. [139/120]", 3659367004], + [6634, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 1164389943], + [6635, 121, 11, "Layout/LineLength: Line is too long. [131/120]", 561395486], + [6640, 121, 64, "Layout/LineLength: Line is too long. [184/120]", 1251661057], + [6643, 121, 13, "Layout/LineLength: Line is too long. [133/120]", 3212740609], + [6646, 121, 59, "Layout/LineLength: Line is too long. [179/120]", 3210109508], + [6648, 121, 3, "Layout/LineLength: Line is too long. [123/120]", 193425997], + [6652, 121, 74, "Layout/LineLength: Line is too long. [194/120]", 430316685], + [6655, 121, 17, "Layout/LineLength: Line is too long. [137/120]", 2420297272], + [6657, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 1164389943], + [6661, 121, 66, "Layout/LineLength: Line is too long. [186/120]", 2428160226], + [6663, 121, 85, "Layout/LineLength: Line is too long. [205/120]", 2663295671], + [6667, 121, 60, "Layout/LineLength: Line is too long. [180/120]", 2822109938], + [6670, 121, 19, "Layout/LineLength: Line is too long. [139/120]", 3659367004], + [6672, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 1164389943], + [6673, 121, 11, "Layout/LineLength: Line is too long. [131/120]", 561395486], + [6678, 121, 62, "Layout/LineLength: Line is too long. [182/120]", 857639785], + [6681, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 3669622788], + [6684, 121, 57, "Layout/LineLength: Line is too long. [177/120]", 140453799], + [6686, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5860765], + [6690, 121, 72, "Layout/LineLength: Line is too long. [192/120]", 1650236431], + [6693, 121, 16, "Layout/LineLength: Line is too long. [136/120]", 150699323], + [6695, 121, 19, "Layout/LineLength: Line is too long. [139/120]", 50618962], + [6699, 121, 64, "Layout/LineLength: Line is too long. [184/120]", 4205571164], + [6701, 121, 83, "Layout/LineLength: Line is too long. [203/120]", 1549528021], + [6705, 121, 58, "Layout/LineLength: Line is too long. [178/120]", 1325488145], + [6708, 121, 18, "Layout/LineLength: Line is too long. [138/120]", 1510711065], + [6710, 121, 19, "Layout/LineLength: Line is too long. [139/120]", 50618962], + [6716, 121, 66, "Layout/LineLength: Line is too long. [186/120]", 3043205563], + [6719, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 2381137493], + [6722, 121, 61, "Layout/LineLength: Line is too long. [181/120]", 2200345195], + [6724, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2087926498], + [6728, 121, 76, "Layout/LineLength: Line is too long. [196/120]", 1082269527], + [6731, 121, 18, "Layout/LineLength: Line is too long. [138/120]", 1510711065], + [6733, 121, 21, "Layout/LineLength: Line is too long. [141/120]", 1104064739], + [6737, 121, 68, "Layout/LineLength: Line is too long. [188/120]", 1652941658], + [6739, 121, 87, "Layout/LineLength: Line is too long. [207/120]", 1440323819], + [6743, 121, 62, "Layout/LineLength: Line is too long. [182/120]", 802896260], + [6746, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 1943494546], + [6748, 121, 21, "Layout/LineLength: Line is too long. [141/120]", 1104064739], + [6754, 121, 82, "Layout/LineLength: Line is too long. [202/120]", 788730815], + [6756, 121, 7, "Layout/LineLength: Line is too long. [127/120]", 2034687276], + [6757, 121, 22, "Layout/LineLength: Line is too long. [142/120]", 4226330106], + [6760, 121, 77, "Layout/LineLength: Line is too long. [197/120]", 2414796320], + [6761, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1165873470], + [6762, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 3090817832], + [6765, 121, 7, "Layout/LineLength: Line is too long. [127/120]", 2034687276], + [6766, 121, 92, "Layout/LineLength: Line is too long. [212/120]", 2839148677], + [6769, 121, 26, "Layout/LineLength: Line is too long. [146/120]", 2393983240], + [6771, 121, 29, "Layout/LineLength: Line is too long. [149/120]", 2581936864], + [6775, 121, 84, "Layout/LineLength: Line is too long. [204/120]", 3923254945], + [6776, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1165873470], + [6777, 121, 103, "Layout/LineLength: Line is too long. [223/120]", 580639726], + [6779, 121, 3, "Layout/LineLength: Line is too long. [123/120]", 193419246], + [6780, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1756764194], + [6781, 121, 78, "Layout/LineLength: Line is too long. [198/120]", 3202758044], + [6784, 121, 28, "Layout/LineLength: Line is too long. [148/120]", 912651721], + [6786, 121, 29, "Layout/LineLength: Line is too long. [149/120]", 2581936864], + [6790, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1164293389], + [6803, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5860840], + [6804, 121, 88, "Layout/LineLength: Line is too long. [208/120]", 574552570], + [6806, 121, 10, "Layout/LineLength: Line is too long. [130/120]", 3845073641], + [6807, 121, 25, "Layout/LineLength: Line is too long. [145/120]", 543375177], + [6810, 121, 83, "Layout/LineLength: Line is too long. [203/120]", 222410330], + [6811, 121, 9, "Layout/LineLength: Line is too long. [129/120]", 3025157219], + [6812, 121, 15, "Layout/LineLength: Line is too long. [135/120]", 1904561434], + [6815, 121, 10, "Layout/LineLength: Line is too long. [130/120]", 489872984], + [6816, 121, 98, "Layout/LineLength: Line is too long. [218/120]", 97325617], + [6819, 121, 29, "Layout/LineLength: Line is too long. [149/120]", 4204667212], + [6821, 121, 32, "Layout/LineLength: Line is too long. [152/120]", 4062673070], + [6825, 121, 90, "Layout/LineLength: Line is too long. [210/120]", 1451915960], + [6826, 121, 9, "Layout/LineLength: Line is too long. [129/120]", 3025157219], + [6827, 121, 109, "Layout/LineLength: Line is too long. [229/120]", 4200529758], + [6829, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1497831350], + [6830, 121, 9, "Layout/LineLength: Line is too long. [129/120]", 4214367244], + [6831, 121, 84, "Layout/LineLength: Line is too long. [204/120]", 399603517], + [6834, 121, 31, "Layout/LineLength: Line is too long. [151/120]", 3423548875], + [6836, 121, 32, "Layout/LineLength: Line is too long. [152/120]", 4062673070], + [6840, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 3279830097], + [6852, 121, 10, "Layout/LineLength: Line is too long. [130/120]", 659167322], + [6864, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2087926423], + [6865, 121, 57, "Layout/LineLength: Line is too long. [177/120]", 3300294193], + [6867, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 3172850966], + [6868, 121, 27, "Layout/LineLength: Line is too long. [147/120]", 2396187736], + [6871, 121, 87, "Layout/LineLength: Line is too long. [207/120]", 1991888901], + [6872, 121, 11, "Layout/LineLength: Line is too long. [131/120]", 1954380402], + [6873, 121, 17, "Layout/LineLength: Line is too long. [137/120]", 2589970962], + [6876, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 42340644], + [6877, 121, 67, "Layout/LineLength: Line is too long. [187/120]", 479235996], + [6880, 121, 31, "Layout/LineLength: Line is too long. [151/120]", 3423548875], + [6882, 121, 34, "Layout/LineLength: Line is too long. [154/120]", 1462541970], + [6886, 121, 94, "Layout/LineLength: Line is too long. [214/120]", 1373978781], + [6887, 121, 11, "Layout/LineLength: Line is too long. [131/120]", 1954380402], + [6888, 121, 78, "Layout/LineLength: Line is too long. [198/120]", 280641011], + [6890, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 1664110553], + [6891, 121, 11, "Layout/LineLength: Line is too long. [131/120]", 1009650381], + [6892, 121, 88, "Layout/LineLength: Line is too long. [208/120]", 909329343], + [6895, 121, 33, "Layout/LineLength: Line is too long. [153/120]", 2977589831], + [6897, 121, 34, "Layout/LineLength: Line is too long. [154/120]", 1462541970], + [6902, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1165873470], + [6903, 121, 61, "Layout/LineLength: Line is too long. [181/120]", 1904101094], + [6905, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 2229256255], + [6906, 121, 29, "Layout/LineLength: Line is too long. [149/120]", 1839090017], + [6909, 121, 91, "Layout/LineLength: Line is too long. [211/120]", 4260980907], + [6910, 121, 13, "Layout/LineLength: Line is too long. [133/120]", 4253118453], + [6911, 121, 19, "Layout/LineLength: Line is too long. [139/120]", 1536690221], + [6913, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5861152], + [6914, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 209824656], + [6915, 121, 71, "Layout/LineLength: Line is too long. [191/120]", 1530496074], + [6918, 121, 33, "Layout/LineLength: Line is too long. [153/120]", 2977589831], + [6920, 121, 36, "Layout/LineLength: Line is too long. [156/120]", 3261436902], + [6924, 121, 98, "Layout/LineLength: Line is too long. [218/120]", 3762694917], + [6925, 121, 13, "Layout/LineLength: Line is too long. [133/120]", 4253118453], + [6926, 121, 82, "Layout/LineLength: Line is too long. [202/120]", 3196230010], + [6928, 121, 10, "Layout/LineLength: Line is too long. [130/120]", 3165598659], + [6929, 121, 13, "Layout/LineLength: Line is too long. [133/120]", 4264469493], + [6930, 121, 92, "Layout/LineLength: Line is too long. [212/120]", 3140690958], + [6933, 121, 35, "Layout/LineLength: Line is too long. [155/120]", 2999583208], + [6935, 121, 36, "Layout/LineLength: Line is too long. [156/120]", 3261436902], + [6941, 121, 54, "Layout/LineLength: Line is too long. [174/120]", 326070599], + [6944, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 1621971220], + [6947, 121, 49, "Layout/LineLength: Line is too long. [169/120]", 1689000214], + [6953, 121, 64, "Layout/LineLength: Line is too long. [184/120]", 2459904022], + [6956, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 2624667704], + [6958, 121, 15, "Layout/LineLength: Line is too long. [135/120]", 2317051977], + [6962, 121, 56, "Layout/LineLength: Line is too long. [176/120]", 2842872837], + [6964, 121, 75, "Layout/LineLength: Line is too long. [195/120]", 423884656], + [6968, 121, 50, "Layout/LineLength: Line is too long. [170/120]", 2673769885], + [6971, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 1169781875], + [6973, 121, 15, "Layout/LineLength: Line is too long. [135/120]", 2317051977], + [6974, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 2126253911], + [6990, 121, 66, "Layout/LineLength: Line is too long. [186/120]", 2388292564], + [6993, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 2381137493], + [6996, 121, 61, "Layout/LineLength: Line is too long. [181/120]", 1136762660], + [6998, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2087926498], + [7002, 121, 76, "Layout/LineLength: Line is too long. [196/120]", 2555581016], + [7005, 121, 18, "Layout/LineLength: Line is too long. [138/120]", 1510711065], + [7007, 121, 21, "Layout/LineLength: Line is too long. [141/120]", 1104064739], + [7011, 121, 68, "Layout/LineLength: Line is too long. [188/120]", 1986812885], + [7013, 121, 87, "Layout/LineLength: Line is too long. [207/120]", 1864036132], + [7017, 121, 62, "Layout/LineLength: Line is too long. [182/120]", 3590180043], + [7020, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 1943494546], + [7022, 121, 21, "Layout/LineLength: Line is too long. [141/120]", 1104064739], + [7023, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 2382712010], + [7033, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1791534645], + [7038, 121, 50, "Layout/LineLength: Line is too long. [170/120]", 2403815412], + [7041, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1422839111], + [7044, 121, 45, "Layout/LineLength: Line is too long. [165/120]", 4046048864], + [7050, 121, 60, "Layout/LineLength: Line is too long. [180/120]", 3472955113], + [7053, 121, 10, "Layout/LineLength: Line is too long. [130/120]", 2939363812], + [7055, 121, 13, "Layout/LineLength: Line is too long. [133/120]", 3155638331], + [7059, 121, 52, "Layout/LineLength: Line is too long. [172/120]", 3911469720], + [7061, 121, 71, "Layout/LineLength: Line is too long. [191/120]", 272433263], + [7065, 121, 46, "Layout/LineLength: Line is too long. [166/120]", 634420444], + [7068, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 2624667704], + [7070, 121, 13, "Layout/LineLength: Line is too long. [133/120]", 3155638331], + [7071, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2088324682], + [7084, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2087906711], + [7096, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 2135380894], + [7105, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 2102137893], + [7107, 121, 25, "Layout/LineLength: Line is too long. [145/120]", 4280757685], + [7111, 121, 10, "Layout/LineLength: Line is too long. [130/120]", 161599970], + [7145, 121, 7, "Layout/LineLength: Line is too long. [127/120]", 830053789], + [7180, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 2188407955], + [7191, 121, 19, "Layout/LineLength: Line is too long. [139/120]", 3692322233], + [7195, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2087557694], + [7218, 121, 10, "Layout/LineLength: Line is too long. [130/120]", 3197512522], + [7227, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5858840], + [7229, 121, 21, "Layout/LineLength: Line is too long. [141/120]", 85298067], + [7286, 121, 3, "Layout/LineLength: Line is too long. [123/120]", 193418403], + [7292, 121, 3, "Layout/LineLength: Line is too long. [123/120]", 193418403], + [7315, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2087432474], + [7327, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 2361949763], + [7336, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 2102137893], + [7338, 121, 25, "Layout/LineLength: Line is too long. [145/120]", 581045160], + [7342, 121, 10, "Layout/LineLength: Line is too long. [130/120]", 4235011647], + [7361, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1898147766], + [7367, 121, 1, "Layout/LineLength: Line is too long. [121/120]", 177560], + [7373, 121, 16, "Layout/LineLength: Line is too long. [136/120]", 1310140439], + [7382, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 681770239], + [7384, 121, 27, "Layout/LineLength: Line is too long. [147/120]", 3821940657], + [7388, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5862609], + [7408, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5861292], + [7420, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 2354124424], + [7429, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2087922021], + [7431, 121, 23, "Layout/LineLength: Line is too long. [143/120]", 3921370162], + [8024, 121, 24, "Layout/LineLength: Line is too long. [144/120]", 4083054536], + [8052, 121, 24, "Layout/LineLength: Line is too long. [144/120]", 4083054536], + [8081, 121, 24, "Layout/LineLength: Line is too long. [144/120]", 4083054536], + [8139, 121, 42, "Layout/LineLength: Line is too long. [162/120]", 632953222], + [8168, 121, 34, "Layout/LineLength: Line is too long. [154/120]", 732995265], + [8218, 121, 30, "Layout/LineLength: Line is too long. [150/120]", 1886249927], + [8380, 121, 7, "Layout/LineLength: Line is too long. [127/120]", 578751979], + [8381, 121, 11, "Layout/LineLength: Line is too long. [131/120]", 3803540269], + [8390, 121, 17, "Layout/LineLength: Line is too long. [137/120]", 2238403955], + [8391, 121, 25, "Layout/LineLength: Line is too long. [145/120]", 1028441932], + [8392, 121, 29, "Layout/LineLength: Line is too long. [149/120]", 1975950909], + [8447, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1244043798] + ], + "spec/integration/freeze_node_edge_cases_spec.rb:3416491031": [ + [6, 1, 28959, "Metrics/BlockLength: Block has too many lines. [663/25]", 3473768018], + [7, 3, 2985, "Metrics/BlockLength: Block has too many lines. [57/25]", 436154415], + [8, 5, 2934, "Metrics/BlockLength: Block has too many lines. [55/25]", 1963918102], + [78, 3, 6091, "Metrics/BlockLength: Block has too many lines. [136/25]", 232153494], + [98, 5, 3053, "Metrics/BlockLength: Block has too many lines. [69/25]", 1442974101], + [202, 5, 1691, "Metrics/BlockLength: Block has too many lines. [29/25]", 985654389], + [241, 3, 8515, "Metrics/BlockLength: Block has too many lines. [176/25]", 2776676526], + [473, 3, 2024, "Metrics/BlockLength: Block has too many lines. [55/25]", 1048101963], + [474, 5, 890, "Metrics/BlockLength: Block has too many lines. [26/25]", 753961540], + [543, 3, 4511, "Metrics/BlockLength: Block has too many lines. [116/25]", 1227615145], + [693, 3, 1660, "Metrics/BlockLength: Block has too many lines. [43/25]", 1881888061], + [694, 5, 1107, "Metrics/BlockLength: Block has too many lines. [26/25]", 368095693] + ], + "spec/integration/gem_family_section_merge_spec.rb:1744383089": [ + [164, 121, 27, "Layout/LineLength: Line is too long. [147/120]", 93655697] + ], + "spec/integration/integration_spec.rb:2239247043": [ + [14, 1, 4488, "Metrics/BlockLength: Block has too many lines. [88/25]", 206207480], + [15, 3, 3267, "Metrics/BlockLength: Block has too many lines. [62/25]", 1323899085], + [40, 5, 2263, "Metrics/BlockLength: Block has too many lines. [48/25]", 3172595581] + ], + "spec/integration/link_reference_preservation_spec.rb:3764298162": [ + [6, 1, 2646, "Metrics/BlockLength: Block has too many lines. [48/25]", 3396410609], + [19, 3, 2058, "Metrics/BlockLength: Block has too many lines. [33/25]", 163363949] + ], + "spec/integration/markly_merge_spec.rb:3076950975": [ + [3, 1, 22886, "Metrics/BlockLength: Block has too many lines. [670/25]", 1408138744], + [62, 3, 7192, "Metrics/BlockLength: Block has too many lines. [189/25]", 1890889324], + [63, 5, 1678, "Metrics/BlockLength: Block has too many lines. [41/25]", 2587582896], + [115, 5, 1808, "Metrics/BlockLength: Block has too many lines. [48/25]", 3381172795], + [147, 46, 21, "Style/StringConcatenation: Prefer string interpolation to string concatenation.", 451071547], + [171, 5, 1134, "Metrics/BlockLength: Block has too many lines. [30/25]", 2526618199], + [220, 5, 1335, "Metrics/BlockLength: Block has too many lines. [32/25]", 2790596215], + [311, 3, 2008, "Metrics/BlockLength: Block has too many lines. [66/25]", 2640155627], + [394, 3, 1052, "Metrics/BlockLength: Block has too many lines. [27/25]", 3988836255], + [440, 3, 2950, "Metrics/BlockLength: Block has too many lines. [89/25]", 961031348], + [441, 5, 1352, "Metrics/BlockLength: Block has too many lines. [37/25]", 1952365669], + [495, 5, 1550, "Metrics/BlockLength: Block has too many lines. [48/25]", 2400197001], + [561, 3, 1665, "Metrics/BlockLength: Block has too many lines. [52/25]", 3884776329], + [650, 3, 1919, "Metrics/BlockLength: Block has too many lines. [57/25]", 2594646583], + [725, 3, 1644, "Metrics/BlockLength: Block has too many lines. [45/25]", 2348710811], + [791, 3, 1600, "Metrics/BlockLength: Block has too many lines. [46/25]", 3683503747] + ], + "spec/integration/partial_template_merger_table_merge_spec.rb:3504046892": [ + [7, 1, 7402, "Metrics/BlockLength: Block has too many lines. [164/25]", 3368892126], + [9, 3, 2986, "Metrics/BlockLength: Block has too many lines. [67/25]", 2267114449], + [65, 5, 1359, "Metrics/BlockLength: Block has too many lines. [28/25]", 3145143002], + [102, 3, 997, "Metrics/BlockLength: Block has too many lines. [26/25]", 3156068215], + [147, 3, 3009, "Metrics/BlockLength: Block has too many lines. [65/25]", 994160212], + [202, 5, 1401, "Metrics/BlockLength: Block has too many lines. [28/25]", 3038951618] + ], + "spec/integration/table_formatting_preservation_spec.rb:3943985446": [ + [6, 1, 3086, "Metrics/BlockLength: Block has too many lines. [56/25]", 2210897849], + [19, 3, 2374, "Metrics/BlockLength: Block has too many lines. [40/25]", 668961519], + [33, 5, 1847, "Metrics/BlockLength: Block has too many lines. [28/25]", 3433318963] + ], + "spec/integration/text_merge_spec.rb:884566200": [ + [6, 1, 7747, "Metrics/BlockLength: Block has too many lines. [204/25]", 2372984305], + [60, 3, 1113, "Metrics/BlockLength: Block has too many lines. [34/25]", 3399970957], + [67, 5, 860, "Metrics/BlockLength: Block has too many lines. [27/25]", 2337191560], + [103, 3, 916, "Metrics/BlockLength: Block has too many lines. [28/25]", 4082963348], + [149, 3, 3001, "Metrics/BlockLength: Block has too many lines. [74/25]", 7776854] + ], + "spec/support/fictive_language_harness.rb:1770581700": [ + [85, 7, 733, "Metrics/AbcSize: Assignment Branch Condition size for `extract_comments` is too high. [<5, 16, 5> 17.49/17]", 1127096515], + [85, 7, 733, "Metrics/MethodLength: Method has too many lines. [22/10]", 1127096515], + [117, 21, 129, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 681912759], + [182, 7, 1084, "Metrics/AbcSize: Assignment Branch Condition size for `parse_statements` is too high. [<9, 28, 7> 30.23/17]", 3123785685], + [182, 7, 1084, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `parse_statements` is too high. [8/7]", 3123785685], + [182, 7, 1084, "Metrics/MethodLength: Method has too many lines. [24/10]", 3123785685], + [233, 5, 9879, "Metrics/ClassLength: Class has too many lines. [228/100]", 3231256134], + [236, 21, 208, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 2970487173], + [257, 7, 1981, "Metrics/AbcSize: Assignment Branch Condition size for `resolve_batch` is too high. [<16, 32, 4> 36/17]", 4125392918], + [257, 7, 1981, "Metrics/MethodLength: Method has too many lines. [42/10]", 4125392918], + [342, 7, 778, "Metrics/MethodLength: Method has too many lines. [18/10]", 4189873983], + [364, 7, 844, "Metrics/MethodLength: Method has too many lines. [19/10]", 526186683], + [449, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2087956942], + [464, 7, 1065, "Metrics/AbcSize: Assignment Branch Condition size for `collapse_template_preamble_prefix_region` is too high. [<6, 24, 11> 27.07/17]", 2332280467], + [464, 7, 1065, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `collapse_template_preamble_prefix_region` is too high. [10/7]", 2332280467], + [464, 7, 1065, "Metrics/MethodLength: Method has too many lines. [20/10]", 2332280467], + [464, 7, 1065, "Metrics/PerceivedComplexity: Perceived complexity for `collapse_template_preamble_prefix_region` is too high. [10/8]", 2332280467] + ], + "spec/support/testable_node.rb:1110514732": [ + [10, 7, 573, "Metrics/MethodLength: Method has too many lines. [12/10]", 798847435], + [10, 22, 226, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [10/5]", 2319398994], + [40, 7, 642, "Metrics/AbcSize: Assignment Branch Condition size for `initialize` is too high. [<11, 14, 6> 18.79/17]", 2249578474], + [40, 21, 131, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [10/5]", 1786967686] + ] +} diff --git a/gems/ast-merge/Gemfile.lock b/gems/ast-merge/Gemfile.lock index 9227411b9..b6ded927e 100644 --- a/gems/ast-merge/Gemfile.lock +++ b/gems/ast-merge/Gemfile.lock @@ -8,7 +8,7 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/tree_haver specs: tree_haver (7.1.0) citrus (~> 3.0) @@ -97,12 +97,12 @@ GEM rdoc (>= 4.0.0) reline (>= 0.4.2) json (2.21.1) - kettle-dev (2.3.7) + kettle-dev (2.3.8) emoji_regex (>= 15.0) kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) - kettle-rb (0.1.4) + kettle-rb (0.1.5) kettle-soup-cover (3.0.4) kettle-wash (~> 0.1, >= 0.1.0) simplecov (>= 1.0) @@ -110,7 +110,7 @@ GEM simplecov-console (~> 0.9, >= 0.9.5) simplecov-rcov (~> 0.3, >= 0.3.7) simplecov_lcov_formatter (~> 0.9, >= 0.9.0) - kettle-test (2.0.11) + kettle-test (2.0.12) appraisal2 (~> 3.0, >= 3.0.6) backports (~> 3.0) rspec (~> 3.0) @@ -343,9 +343,9 @@ GEM delegate (~> 0.1) rspec (~> 3.0) timecop (>= 0.7, < 1) - token-resolver (2.0.4) + token-resolver (2.0.5) parslet (~> 2.0) - version_gem (~> 1.1, >= 1.1.13) + version_gem (~> 1.1, >= 1.1.14) tree_sitter_language_pack (1.13.3-aarch64-linux) sorbet-runtime (~> 0.5) tree_sitter_language_pack (1.13.3-arm64-darwin) @@ -478,10 +478,10 @@ CHECKSUMS io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 - kettle-dev (2.3.7) sha256=eb370113cd030d03cbe2d33b31c99858951017e5ad21a17e9ed89dc3770028ee - kettle-rb (0.1.4) sha256=9cef7ce4f7021666b7222292f29051e51eaf042e8a5db11f3f4dd72f74243fc1 + kettle-dev (2.3.8) sha256=9d716ff21c660a730cb4e8d41e2e2f0630a28167a354b6e2924e242102aef72c + kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f kettle-soup-cover (3.0.4) - kettle-test (2.0.11) sha256=c710c90f7ab79d51f9452f0c09f5f90657e7a893f63583855c164d0b1b107ab2 + kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 @@ -566,7 +566,7 @@ CHECKSUMS thor (1.5.0) sha256=e3a9e55fe857e44859ce104a84675ab6e8cd59c650a49106a05f55f136425e73 timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 - token-resolver (2.0.4) sha256=33b926958f504525bba3ed511ab66fbcbf8ef30390815e931436b30f27ffcad0 + token-resolver (2.0.5) sha256=b852f924287ffb58a440856e862b056c8ad97e74b4b2526cee43e0771f40c25c tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-aarch64-linux) sha256=55ffc7c87868cb45658338363d9eba51b4a8b0259aa88e4de368d2bd1d52fea4 tree_sitter_language_pack (1.13.3-arm64-darwin) sha256=bc2498db605f212a1dbd2465ed3f65190d7da786f6ed5d30fcf958121aeb4a5c diff --git a/gems/bash-merge/Gemfile.lock b/gems/bash-merge/Gemfile.lock index 056b27a3d..9c7966743 100644 --- a/gems/bash-merge/Gemfile.lock +++ b/gems/bash-merge/Gemfile.lock @@ -7,7 +7,39 @@ PATH version_gem (~> 1.1, >= 1.1.14) PATH - remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/ast-merge + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly + specs: + ast-crispr-markdown-markly (7.1.0) + ast-crispr (= 7.1.0) + markly-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism + specs: + ast-crispr-ruby-prism (7.1.0) + ast-crispr (= 7.1.0) + prism-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr + specs: + ast-crispr (7.1.0) + ast-merge (= 7.1.0) + service_actor (~> 3.9) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git + specs: + ast-merge-git (7.1.0) + ast-merge (= 7.1.0) + json-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge specs: ast-merge (7.1.0) benchmark @@ -16,7 +48,193 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/tree_haver + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template + specs: + ast-template (7.1.0) + ast-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge + specs: + binary-merge (7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge + specs: + citrus-toml-merge (7.1.0) + toml-merge (= 7.1.0) + toml-rb (~> 4.1) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge + specs: + commonmarker-merge (7.1.0) + commonmarker (~> 2.2) + markdown-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge + specs: + dotenv-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge + specs: + go-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge + specs: + json-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem + specs: + kettle-jem (7.1.0) + addressable (>= 2.8, < 3) + ast-crispr-markdown-markly (= 7.1.0) + ast-crispr-ruby-prism (= 7.1.0) + ast-merge (= 7.1.0) + bash-merge (= 7.1.0) + citrus-toml-merge (= 7.1.0) + commonmarker-merge (= 7.1.0) + dotenv-merge (= 7.1.0) + json-merge (= 7.1.0) + kettle-dev (~> 2.3, >= 2.3.5) + kettle-rb (~> 0.1, >= 0.1.4) + kramdown-merge (= 7.1.0) + markdown-merge (= 7.1.0) + markly-merge (= 7.1.0) + prism-merge (= 7.1.0) + psych-merge (= 7.1.0) + rbs (>= 3.10) + rbs-merge (= 7.1.0) + ruby-merge (= 7.1.0) + token-resolver (~> 2.0, >= 2.0.4) + toml-merge (= 7.1.0) + toml-rb (~> 4.2) + tree_haver (= 7.1.0) + yaml-merge (= 7.1.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge + specs: + kramdown-merge (7.1.0) + kramdown (~> 2.5) + markdown-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge + specs: + markdown-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge + specs: + markly-merge (7.1.0) + markdown-merge (= 7.1.0) + markly (~> 0.9) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge + specs: + parslet-toml-merge (7.1.0) + toml (~> 0.3) + toml-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge + specs: + plain-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge + specs: + prism-merge (7.1.0) + prism (~> 1.6) + ruby-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge + specs: + psych-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + yaml-merge (= 7.1.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge + specs: + rbs-merge (7.1.0) + ast-merge (= 7.1.0) + rbs (>= 3.10) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge + specs: + ruby-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge + specs: + rust-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb + specs: + smorg-rb (7.1.0) + ast-merge (= 7.1.0) + ast-merge-git (= 7.1.0) + go-merge (= 7.1.0) + json-merge (= 7.1.0) + kettle-jem (= 7.1.0) + markly-merge (= 7.1.0) + plain-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge + specs: + toml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver specs: tree_haver (7.1.0) citrus (~> 3.0) @@ -24,6 +242,29 @@ PATH tree_sitter_language_pack (>= 1.13.2, < 2.0) version_gem (~> 1.1, >= 1.1.9) +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge + specs: + typescript-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge + specs: + yaml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge + specs: + zip-merge (7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + GEM remote: https://gem.coop/ specs: @@ -48,6 +289,11 @@ GEM cgi (0.5.2) citrus (3.0.2) cmdparse (3.0.7) + commonmarker (2.9.0-aarch64-linux) + commonmarker (2.9.0-aarch64-linux-musl) + commonmarker (2.9.0-arm64-darwin) + commonmarker (2.9.0-x86_64-linux) + commonmarker (2.9.0-x86_64-linux-musl) concurrent-ruby (1.3.8) date (3.5.1) debug (1.11.1) @@ -110,6 +356,8 @@ GEM kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) + kettle-drift (1.0.6) + version_gem (~> 1.1, >= 1.1.14) kettle-rb (0.1.5) kettle-soup-cover (3.0.4) kettle-wash (~> 0.1, >= 0.1.0) @@ -138,6 +386,7 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) + markly (0.16.0) mutex_m (0.3.0) nokogiri (1.19.4-aarch64-linux-gnu) racc (~> 1.4) @@ -300,6 +549,8 @@ GEM ruby-progressbar (1.13.0) ruby_engine (2.0.3) ruby_version (1.0.3) + service_actor (3.9.4) + zeitwerk (>= 1.0) silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) @@ -354,6 +605,11 @@ GEM token-resolver (2.0.5) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.14) + toml (0.3.0) + parslet (>= 1.8.0, < 3.0.0) + toml-rb (4.2.0) + citrus (~> 3.0, > 3.0) + racc (~> 1.7) tree_sitter_language_pack (1.13.3-aarch64-linux) sorbet-runtime (~> 0.5) tree_sitter_language_pack (1.13.3-arm64-darwin) @@ -408,25 +664,46 @@ DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.2, >= 3.2.0) appraisal2-rubocop (~> 1.0, >= 1.0.0) + ast-crispr! + ast-crispr-markdown-markly! + ast-crispr-ruby-prism! ast-merge! + ast-merge-git! + ast-template! bash-merge! benchmark (~> 0.5, >= 0.5.0) + binary-merge! bundler-audit (~> 0.9.3) cgi (~> 0.5) + citrus-toml-merge! + commonmarker-merge! debug (>= 1.1) + dotenv-merge! erb (~> 6.0, >= 6.0.6) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.4) + go-merge! irb (~> 1.17) + json-merge! kettle-dev (~> 2.3, >= 2.3.7) + kettle-drift (~> 1.0, >= 1.0.6) + kettle-jem! kettle-soup-cover (~> 3.0, >= 3.0.3) kettle-test (~> 2.0, >= 2.0.12) kramdown (~> 2.5, >= 2.5.2) + kramdown-merge! kramdown-parser-gfm (~> 1.1) + markdown-merge! + markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) + parslet-toml-merge! + plain-merge! + prism-merge! + psych-merge! rake (~> 13.0) rbs (>= 3.0) + rbs-merge! rdoc (~> 6.11) reek (~> 6.5, >= 6.5.0) require_bench (~> 1.0, >= 1.0.4) @@ -437,21 +714,28 @@ DEPENDENCIES rubocop-on-rbs (~> 2.0, >= 2.0.0) rubocop-packaging (~> 0.6, >= 0.6.0) rubocop-ruby3_2 (~> 3.0, >= 3.0.6) + ruby-merge! ruby-progressbar (~> 1.13) + rust-merge! + smorg-rb! standard (~> 1.56, >= 1.56.0) stone_checksums (~> 1.0, >= 1.0.6) stringio (>= 3.0) + toml-merge! tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) turbo_tests2 (~> 3.2, >= 3.2.0) + typescript-merge! webrick (~> 1.9) yaml-converter (~> 0.2, >= 0.2.3) + yaml-merge! yard (~> 0.9, >= 0.9.45) yard-fence (~> 0.9, >= 0.9.6) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) yard-timekeeper (~> 0.2, >= 0.2.4) yard-yaml (~> 0.2, >= 0.2.3) + zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af @@ -459,21 +743,35 @@ CHECKSUMS appraisal2 (3.2.0) sha256=ccd0b767ac4060cd7af6d16747459b6990f49c39c7b4fb1f7d1146b1e97c492f appraisal2-rubocop (1.0.0) sha256=b71410fbb014befda5340605a605b7f6f3f012739baf0acc5b4351b592c3258d ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 + ast-crispr (7.1.0) + ast-crispr-markdown-markly (7.1.0) + ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) + ast-merge-git (7.1.0) + ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd + binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 + citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 + commonmarker (2.9.0-aarch64-linux) sha256=e2b4aadb9a2cfa4e206582641ce3a49465549ac1ed4c289fdd63b78d8f24579c + commonmarker (2.9.0-aarch64-linux-musl) sha256=1cf4d2821f2a7e64945f1ed7c4eeced586fdb27ea7fe7337788802cf8f57cfca + commonmarker (2.9.0-arm64-darwin) sha256=1748dbfa4f5813b0d2a14bb4bbfa65a4ec293aa1c825016d60029ee0e132b046 + commonmarker (2.9.0-x86_64-linux) sha256=8cfe92970eef585a19ddf6613224b91cab64d6029834661bda801f877c9c7f43 + commonmarker (2.9.0-x86_64-linux-musl) sha256=293921398b839f79ceaf55010e061357e34f053822c3b003cd0be6686176335e + commonmarker-merge (7.1.0) concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 + dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -486,20 +784,28 @@ CHECKSUMS gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f + go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 + json-merge (7.1.0) kettle-dev (2.3.8) sha256=9d716ff21c660a730cb4e8d41e2e2f0630a28167a354b6e2924e242102aef72c + kettle-drift (1.0.6) sha256=46eda08fa4411d1f3c6682a95eef1c9df4e94611b3949f49d4c7b43c0ed356a3 + kettle-jem (7.1.0) kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f kettle-soup-cover (3.0.4) kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa + kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 + markdown-merge (7.1.0) + markly (0.16.0) sha256=6f70d79e385b1efc9e171f74c81628826259039fe6c778e03c3924c71dac5511 + markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-aarch64-linux-gnu) sha256=1269fb644a6de405057a53dd5c762b1209b43ca7424f839454d3dbc677c31a8f nokogiri (1.19.4-aarch64-linux-musl) sha256=35c65b9ce72b3bb03207bdbe7067915019dc18c1b9b59139684bd6690fdd01af @@ -513,15 +819,20 @@ CHECKSUMS parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 + parslet-toml-merge (7.1.0) + plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 + prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 + psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 + rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb @@ -556,15 +867,19 @@ CHECKSUMS rubocop-rspec_rails (2.32.0) sha256=4a0d641c72f6ebb957534f539d9d0a62c47abd8ce0d0aeee1ef4701e892a9100 rubocop-ruby3_2 (3.0.7) sha256=f53dd6d286fb05186214fc6ec116783e7f837030918e8931c05de773e98f8466 rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 + ruby-merge (7.1.0) ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 + rust-merge (7.1.0) + service_actor (3.9.4) sha256=e63b523630b9a7e62959b2a90113b08d2565b5de9c148557b281ef847c9539ce silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed + smorg-rb (7.1.0) sorbet-runtime (0.6.13347) sha256=54e7221d9f4b63f58aec79f3043752a9ba7810347c6ae0d903531591cc2d5f01 standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b @@ -579,17 +894,22 @@ CHECKSUMS timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.5) sha256=b852f924287ffb58a440856e862b056c8ad97e74b4b2526cee43e0771f40c25c + toml (0.3.0) sha256=0a91d0f76a9036e84e44f95693b12f58d358c1df3ac8e3b5271f2056ecc6e4b9 + toml-merge (7.1.0) + toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-aarch64-linux) sha256=55ffc7c87868cb45658338363d9eba51b4a8b0259aa88e4de368d2bd1d52fea4 tree_sitter_language_pack (1.13.3-arm64-darwin) sha256=bc2498db605f212a1dbd2465ed3f65190d7da786f6ed5d30fcf958121aeb4a5c tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 + typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 webrick (1.9.2) sha256=beb4a15fc474defed24a3bda4ffd88a490d517c9e4e6118c3edce59e45864131 yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 + yaml-merge (7.1.0) yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd @@ -597,6 +917,7 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 + zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH diff --git a/gems/dotenv-merge/Gemfile.lock b/gems/dotenv-merge/Gemfile.lock index 929c0c5f7..ebf1b62ec 100644 --- a/gems/dotenv-merge/Gemfile.lock +++ b/gems/dotenv-merge/Gemfile.lock @@ -6,265 +6,6 @@ PATH tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.14) -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly - specs: - ast-crispr-markdown-markly (7.1.0) - ast-crispr (= 7.1.0) - markly-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism - specs: - ast-crispr-ruby-prism (7.1.0) - ast-crispr (= 7.1.0) - prism-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr - specs: - ast-crispr (7.1.0) - ast-merge (= 7.1.0) - service_actor (~> 3.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git - specs: - ast-merge-git (7.1.0) - ast-merge (= 7.1.0) - json-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge - specs: - ast-merge (7.1.0) - benchmark - token-resolver (~> 2.0, >= 2.0.4) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template - specs: - ast-template (7.1.0) - ast-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge - specs: - bash-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge - specs: - binary-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge - specs: - citrus-toml-merge (7.1.0) - toml-merge (= 7.1.0) - toml-rb (~> 4.1) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge - specs: - commonmarker-merge (7.1.0) - commonmarker (~> 2.2) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge - specs: - go-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge - specs: - json-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem - specs: - kettle-jem (7.1.0) - addressable (>= 2.8, < 3) - ast-crispr-markdown-markly (= 7.1.0) - ast-crispr-ruby-prism (= 7.1.0) - ast-merge (= 7.1.0) - bash-merge (= 7.1.0) - citrus-toml-merge (= 7.1.0) - commonmarker-merge (= 7.1.0) - dotenv-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-dev (~> 2.3, >= 2.3.5) - kettle-rb (~> 0.1, >= 0.1.4) - kramdown-merge (= 7.1.0) - markdown-merge (= 7.1.0) - markly-merge (= 7.1.0) - prism-merge (= 7.1.0) - psych-merge (= 7.1.0) - rbs (>= 3.10) - rbs-merge (= 7.1.0) - ruby-merge (= 7.1.0) - token-resolver (~> 2.0, >= 2.0.4) - toml-merge (= 7.1.0) - toml-rb (~> 4.2) - tree_haver (= 7.1.0) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge - specs: - kramdown-merge (7.1.0) - kramdown (~> 2.5) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge - specs: - markdown-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge - specs: - markly-merge (7.1.0) - markdown-merge (= 7.1.0) - markly (~> 0.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge - specs: - parslet-toml-merge (7.1.0) - toml (~> 0.3) - toml-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge - specs: - plain-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge - specs: - prism-merge (7.1.0) - prism (~> 1.6) - ruby-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge - specs: - psych-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge - specs: - rbs-merge (7.1.0) - ast-merge (= 7.1.0) - rbs (>= 3.10) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge - specs: - ruby-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge - specs: - rust-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb - specs: - smorg-rb (7.1.0) - ast-merge (= 7.1.0) - ast-merge-git (= 7.1.0) - go-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-jem (= 7.1.0) - markly-merge (= 7.1.0) - plain-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge - specs: - toml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver - specs: - tree_haver (7.1.0) - citrus (~> 3.0) - parslet (~> 2.0) - tree_sitter_language_pack (>= 1.13.2, < 2.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge - specs: - typescript-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge - specs: - yaml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge - specs: - zip-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - GEM remote: https://gem.coop/ specs: @@ -276,6 +17,11 @@ GEM rake (>= 10) thor (>= 0.14) ast (2.4.3) + ast-merge (7.1.0) + benchmark + token-resolver (~> 2.0, >= 2.0.4) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) backports (3.25.3) benchmark (0.5.0) bigdecimal (4.1.2) @@ -284,7 +30,6 @@ GEM thor (~> 1.0) citrus (3.0.2) cmdparse (3.0.7) - commonmarker (2.9.0-x86_64-linux) concurrent-ruby (1.3.8) date (3.5.1) debug (1.11.1) @@ -348,8 +93,6 @@ GEM kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) - kettle-drift (1.0.6) - version_gem (~> 1.1, >= 1.1.14) kettle-rb (0.1.4) kettle-soup-cover (1.1.3) simplecov (~> 0.22) @@ -378,7 +121,6 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) - markly (0.16.0) mutex_m (0.3.0) nokogiri (1.19.4-aarch64-linux-gnu) racc (~> 1.4) @@ -513,8 +255,6 @@ GEM ruby-progressbar (1.13.0) ruby_engine (2.0.3) ruby_version (1.0.3) - service_actor (3.9.4) - zeitwerk (>= 1.0) silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) @@ -566,12 +306,12 @@ GEM timecop (>= 0.7, < 1) token-resolver (2.0.4) parslet (~> 2.0) - version_gem (~> 1.1, >= 1.1.13) - toml (0.3.0) - parslet (>= 1.8.0, < 3.0.0) - toml-rb (4.2.0) - citrus (~> 3.0, > 3.0) - racc (~> 1.7) + version_gem (~> 1.1, >= 1.1.14) + tree_haver (7.1.0) + citrus (~> 3.0) + parslet (~> 2.0) + tree_sitter_language_pack (>= 1.13.2, < 2.0) + version_gem (~> 1.1, >= 1.1.9) tree_sitter_language_pack (1.13.3-aarch64-linux) sorbet-runtime (~> 0.5) tree_sitter_language_pack (1.13.3-arm64-darwin) @@ -624,45 +364,23 @@ PLATFORMS DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.2, >= 3.2.0) - ast-crispr! - ast-crispr-markdown-markly! - ast-crispr-ruby-prism! - ast-merge! - ast-merge-git! - ast-template! - bash-merge! benchmark (~> 0.5, >= 0.5.0) - binary-merge! bundler-audit (~> 0.9.3) - citrus-toml-merge! - commonmarker-merge! debug (>= 1.1) dotenv-merge! erb (~> 6.0, >= 6.0.4) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.4) - go-merge! irb (~> 1.17) - json-merge! kettle-dev (~> 2.3, >= 2.3.7) - kettle-drift (~> 1.0, >= 1.0.5) - kettle-jem! kettle-soup-cover (~> 1.0, >= 1.1.3) kettle-test (~> 2.0, >= 2.0.11) kramdown (~> 2.5, >= 2.5.1) - kramdown-merge! kramdown-parser-gfm (~> 1.1) - markdown-merge! - markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) - parslet-toml-merge! - plain-merge! - prism-merge! - psych-merge! rake (~> 13.0) rbs (>= 3.0) - rbs-merge! rdoc (~> 6.11) reek (~> 6.5) require_bench (~> 1.0, >= 1.0.4) @@ -671,50 +389,32 @@ DEPENDENCIES rubocop-packaging (~> 0.6, >= 0.6.0) rubocop-rspec (~> 3.6) rubocop-ruby3_2 (~> 3.0.0) - ruby-merge! ruby-progressbar (~> 1.13) - rust-merge! - smorg-rb! standard (>= 1.50) stone_checksums (~> 1.0, >= 1.0.6, >= 1.0.3) stringio (>= 3.0) - toml-merge! - tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) turbo_tests2 (~> 3.2, >= 3.2.0) - typescript-merge! yaml-converter (~> 0.1) - yaml-merge! yard (~> 0.9, >= 0.9.44) yard-fence (~> 0.9, >= 0.9.1) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) yard-timekeeper (~> 0.1) yard-yaml (~> 0.1, >= 0.1.2) - zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af ansi (1.6.0) sha256=ac9ea0c0ea8d32fb4e271348e609963ac78882f34b73836c2a02b3622e666658 appraisal2 (3.2.0) sha256=ccd0b767ac4060cd7af6d16747459b6990f49c39c7b4fb1f7d1146b1e97c492f ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 - ast-crispr (7.1.0) - ast-crispr-markdown-markly (7.1.0) - ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) - ast-merge-git (7.1.0) - ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 - bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd - binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 - citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 - commonmarker (2.9.0-x86_64-linux) - commonmarker-merge (7.1.0) concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 @@ -735,27 +435,19 @@ CHECKSUMS gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f - go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 - json-merge (7.1.0) kettle-dev (2.3.7) sha256=eb370113cd030d03cbe2d33b31c99858951017e5ad21a17e9ed89dc3770028ee - kettle-drift (1.0.6) - kettle-jem (7.1.0) kettle-rb (0.1.4) sha256=9cef7ce4f7021666b7222292f29051e51eaf042e8a5db11f3f4dd72f74243fc1 kettle-soup-cover (1.1.3) sha256=a373827da22a7131d093afd32945e5b7d7a10a01ebfdded8fd2cb8230d69c8ad kettle-test (2.0.11) sha256=c710c90f7ab79d51f9452f0c09f5f90657e7a893f63583855c164d0b1b107ab2 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa - kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 - markdown-merge (7.1.0) - markly (0.16.0) - markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-aarch64-linux-gnu) sha256=1269fb644a6de405057a53dd5c762b1209b43ca7424f839454d3dbc677c31a8f nokogiri (1.19.4-aarch64-linux-musl) sha256=35c65b9ce72b3bb03207bdbe7067915019dc18c1b9b59139684bd6690fdd01af @@ -769,20 +461,15 @@ CHECKSUMS parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 - parslet-toml-merge (7.1.0) - plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 - prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 - psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 - rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb @@ -810,12 +497,9 @@ CHECKSUMS rubocop-rspec (3.10.2) sha256=0b3e2ecc592cd10ecbf0095bb58d1e357905276e069643523cc19eb7495f65e2 rubocop-ruby3_2 (3.0.7) sha256=f53dd6d286fb05186214fc6ec116783e7f837030918e8931c05de773e98f8466 rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 - ruby-merge (7.1.0) ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 - rust-merge (7.1.0) - service_actor (3.9.4) silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (0.22.0) sha256=fe2622c7834ff23b98066bb0a854284b2729a569ac659f82621fc22ef36213a5 simplecov-cobertura (3.2.0) sha256=70d702658677fcb20e5aceb6915ccf8bc62ff2ccd38b62b3ad5c9db5c0888740 @@ -824,7 +508,6 @@ CHECKSUMS simplecov-lcov (0.9.0) sha256=7a77a31e200a595ed4b0249493056efd0c920601f53d2ef135ca34ee796346cd simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_json_formatter (0.1.4) sha256=529418fbe8de1713ac2b2d612aa3daa56d316975d307244399fa4838c601b428 - smorg-rb (7.1.0) sorbet-runtime (0.6.13347) sha256=54e7221d9f4b63f58aec79f3043752a9ba7810347c6ae0d903531591cc2d5f01 standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b @@ -838,21 +521,16 @@ CHECKSUMS timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.4) sha256=33b926958f504525bba3ed511ab66fbcbf8ef30390815e931436b30f27ffcad0 - toml (0.3.0) - toml-merge (7.1.0) - toml-rb (4.2.0) tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-aarch64-linux) sha256=55ffc7c87868cb45658338363d9eba51b4a8b0259aa88e4de368d2bd1d52fea4 tree_sitter_language_pack (1.13.3-arm64-darwin) sha256=bc2498db605f212a1dbd2465ed3f65190d7da786f6ed5d30fcf958121aeb4a5c tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 - typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 - yaml-merge (7.1.0) yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd @@ -860,7 +538,6 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 - zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH diff --git a/gems/html-merge/Gemfile.lock b/gems/html-merge/Gemfile.lock index 4def849ed..34b357c6c 100644 --- a/gems/html-merge/Gemfile.lock +++ b/gems/html-merge/Gemfile.lock @@ -7,6 +7,273 @@ PATH tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly + specs: + ast-crispr-markdown-markly (7.1.0) + ast-crispr (= 7.1.0) + markly-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism + specs: + ast-crispr-ruby-prism (7.1.0) + ast-crispr (= 7.1.0) + prism-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr + specs: + ast-crispr (7.1.0) + ast-merge (= 7.1.0) + service_actor (~> 3.9) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git + specs: + ast-merge-git (7.1.0) + ast-merge (= 7.1.0) + json-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge + specs: + ast-merge (7.1.0) + benchmark + token-resolver (~> 2.0, >= 2.0.4) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template + specs: + ast-template (7.1.0) + ast-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge + specs: + bash-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge + specs: + binary-merge (7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge + specs: + citrus-toml-merge (7.1.0) + toml-merge (= 7.1.0) + toml-rb (~> 4.1) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge + specs: + commonmarker-merge (7.1.0) + commonmarker (~> 2.2) + markdown-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge + specs: + dotenv-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge + specs: + go-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge + specs: + json-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem + specs: + kettle-jem (7.1.0) + addressable (>= 2.8, < 3) + ast-crispr-markdown-markly (= 7.1.0) + ast-crispr-ruby-prism (= 7.1.0) + ast-merge (= 7.1.0) + bash-merge (= 7.1.0) + citrus-toml-merge (= 7.1.0) + commonmarker-merge (= 7.1.0) + dotenv-merge (= 7.1.0) + json-merge (= 7.1.0) + kettle-dev (~> 2.3, >= 2.3.5) + kettle-rb (~> 0.1, >= 0.1.4) + kramdown-merge (= 7.1.0) + markdown-merge (= 7.1.0) + markly-merge (= 7.1.0) + prism-merge (= 7.1.0) + psych-merge (= 7.1.0) + rbs (>= 3.10) + rbs-merge (= 7.1.0) + ruby-merge (= 7.1.0) + token-resolver (~> 2.0, >= 2.0.4) + toml-merge (= 7.1.0) + toml-rb (~> 4.2) + tree_haver (= 7.1.0) + yaml-merge (= 7.1.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge + specs: + kramdown-merge (7.1.0) + kramdown (~> 2.5) + markdown-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge + specs: + markdown-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge + specs: + markly-merge (7.1.0) + markdown-merge (= 7.1.0) + markly (~> 0.9) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge + specs: + parslet-toml-merge (7.1.0) + toml (~> 0.3) + toml-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge + specs: + plain-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge + specs: + prism-merge (7.1.0) + prism (~> 1.6) + ruby-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge + specs: + psych-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + yaml-merge (= 7.1.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge + specs: + rbs-merge (7.1.0) + ast-merge (= 7.1.0) + rbs (>= 3.10) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge + specs: + ruby-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge + specs: + rust-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb + specs: + smorg-rb (7.1.0) + ast-merge (= 7.1.0) + ast-merge-git (= 7.1.0) + go-merge (= 7.1.0) + json-merge (= 7.1.0) + kettle-jem (= 7.1.0) + markly-merge (= 7.1.0) + plain-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge + specs: + toml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver + specs: + tree_haver (7.1.0) + citrus (~> 3.0) + parslet (~> 2.0) + tree_sitter_language_pack (>= 1.13.2, < 2.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge + specs: + typescript-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge + specs: + yaml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge + specs: + zip-merge (7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + GEM remote: https://gem.coop/ specs: @@ -22,25 +289,19 @@ GEM rubocop (>= 1.0) version_gem (~> 1.1, >= 1.1.14) ast (2.4.3) - ast-crispr (7.1.0) - ast-merge (= 7.1.0) - service_actor (~> 3.9) - version_gem (~> 1.1, >= 1.1.9) - ast-merge (7.1.0) - benchmark - token-resolver (~> 2.0, >= 2.0.4) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) + backports (3.25.3) benchmark (0.5.0) bigdecimal (4.1.2) cgi (0.5.2) citrus (3.0.2) cmdparse (3.0.7) + commonmarker (2.9.0-x86_64-linux) concurrent-ruby (1.3.8) date (3.5.1) debug (1.11.1) irb (~> 1.10) reline (>= 0.3.8) + delegate (0.6.1) diff-lcs (1.6.2) diffy (3.4.4) dry-configurable (1.4.0) @@ -72,6 +333,7 @@ GEM dry-inflector (~> 1.0) dry-logic (~> 1.4) zeitwerk (~> 2.6) + emoji_regex (15.0.0) erb (6.0.5) gem_bench (2.0.5) bundler (>= 1.14) @@ -89,6 +351,14 @@ GEM rdoc (>= 4.0.0) reline (>= 0.4.2) json (2.21.1) + kettle-dev (2.3.8) + emoji_regex (>= 15.0) + kettle-rb (~> 0.1, >= 0.1.2) + kettle-test (~> 2.0, >= 2.0.4) + ruby-progressbar (~> 1.13) + kettle-drift (1.0.6) + version_gem (~> 1.1, >= 1.1.14) + kettle-rb (0.1.5) kettle-soup-cover (3.0.3) kettle-wash (~> 0.1, >= 0.1.0) simplecov (>= 1.0) @@ -96,7 +366,18 @@ GEM simplecov-console (~> 0.9, >= 0.9.5) simplecov-rcov (~> 0.3, >= 0.3.7) simplecov_lcov_formatter (~> 0.9, >= 0.9.0) - kettle-wash (0.1.0) + kettle-test (2.0.12) + appraisal2 (~> 3.0, >= 3.0.6) + backports (~> 3.0) + rspec (~> 3.0) + rspec-block_is_expected (~> 1.0, >= 1.0.6) + rspec-pending_for (~> 0.1, >= 0.1.20) + rspec-stubbed_env (~> 1.0, >= 1.0.6) + rspec_junit_formatter (~> 0.6) + silent_stream (~> 1.0, >= 1.0.12) + timecop-rspec (~> 1.0, >= 1.0.3) + turbo_tests2 (~> 3.1, >= 3.1.12) + kettle-wash (0.1.1) version_gem (~> 1.1, >= 1.1.14) kramdown (2.5.2) rexml (>= 3.4.4) @@ -105,6 +386,7 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) + markly (0.16.0) mutex_m (0.3.0) nokogiri (1.19.4-x86_64-linux-gnu) racc (~> 1.4) @@ -112,6 +394,8 @@ GEM openssl (4.0.2) ostruct (0.6.3) parallel (1.28.0) + parallel_tests (5.7.0) + parallel parser (3.3.12.0) ast (~> 2.4.1) racc @@ -127,9 +411,6 @@ GEM racc (1.8.1) rainbow (3.1.1) rake (13.4.2) - rake-compiler-dock (1.12.0) - rb_sys (0.9.127) - rake-compiler-dock (= 1.12.0) rbs (4.0.3) logger prism (>= 1.6.0) @@ -148,6 +429,27 @@ GEM reline (0.6.3) io-console (~> 0.5) rexml (3.4.4) + rspec (3.13.2) + rspec-core (~> 3.13.0) + rspec-expectations (~> 3.13.0) + rspec-mocks (~> 3.13.0) + rspec-block_is_expected (1.0.6) + rspec-core (3.13.6) + rspec-support (~> 3.13.0) + rspec-expectations (3.13.5) + diff-lcs (>= 1.2.0, < 2.0) + rspec-support (~> 3.13.0) + rspec-mocks (3.13.8) + diff-lcs (>= 1.2.0, < 2.0) + rspec-support (~> 3.13.0) + rspec-pending_for (0.1.21) + rspec-core (~> 3.0) + ruby_engine (~> 2.0) + ruby_version (~> 1.0) + rspec-stubbed_env (1.0.6) + rspec-support (3.13.7) + rspec_junit_formatter (0.6.0) + rspec-core (>= 2, < 4, != 2.12.0) rubocop (1.88.2) json (~> 2.3) language_server-protocol (~> 3.17.0.2) @@ -235,8 +537,13 @@ GEM rubocop (~> 1.72, >= 1.72.1) rubocop-ast (>= 1.44.0, < 2.0) ruby-progressbar (1.13.0) + ruby_engine (2.0.3) + ruby_version (1.0.3) service_actor (3.9.4) zeitwerk (>= 1.0) + silent_stream (1.0.12) + logger (~> 1.2) + version_gem (>= 1.1.8, < 3) simplecov (1.0.2) simplecov-cobertura (4.0.0) rexml @@ -278,17 +585,26 @@ GEM terminal-table (4.0.0) unicode-display_width (>= 1.1.1, < 4) thor (1.5.0) - token-resolver (2.0.4) + timecop (0.9.11) + timecop-rspec (1.0.3) + delegate (~> 0.1) + rspec (~> 3.0) + timecop (>= 0.7, < 1) + token-resolver (2.0.5) parslet (~> 2.0) - version_gem (~> 1.1, >= 1.1.13) - tree_haver (7.1.0) - citrus (~> 3.0) - parslet (~> 2.0) - tree_sitter_language_pack (>= 1.9.0.pre.rc.40, < 2.0) - version_gem (~> 1.1, >= 1.1.9) -tree_sitter_language_pack (1.13.3-x86_64-linux) - sorbet-runtime (~> 0.5) + version_gem (~> 1.1, >= 1.1.14) + toml (0.3.0) + parslet (>= 1.8.0, < 3.0.0) + toml-rb (4.2.0) + citrus (~> 3.0, > 3.0) + racc (~> 1.7) + tree_sitter_language_pack (1.13.3-x86_64-linux) + sorbet-runtime (~> 0.5) tsort (0.2.0) + turbo_tests2 (3.2.0) + parallel_tests (>= 3.3.0, < 6) + rspec (>= 3.10) + version_gem (~> 1.1, >= 1.1.14) unicode-display_width (3.2.0) unicode-emoji (~> 4.1) unicode-emoji (4.2.0) @@ -325,19 +641,42 @@ PLATFORMS DEPENDENCIES addressable (>= 2.8, < 3) appraisal2-rubocop (~> 1.0, >= 1.0.0) + ast-crispr! + ast-crispr-markdown-markly! + ast-crispr-ruby-prism! + ast-merge! + ast-merge-git! + ast-template! + bash-merge! benchmark (~> 0.5, >= 0.5.0) + binary-merge! cgi (~> 0.5) + citrus-toml-merge! + commonmarker-merge! debug (>= 1.1) + dotenv-merge! erb (~> 6.0, >= 6.0.5) gem_bench (~> 2.0, >= 2.0.5) + go-merge! html-merge! irb (~> 1.17) + json-merge! + kettle-drift (~> 1.0, >= 1.0.5) + kettle-jem! kettle-soup-cover (~> 3.0, >= 3.0.3) kramdown (~> 2.5, >= 2.5.2) + kramdown-merge! kramdown-parser-gfm (~> 1.1) + markdown-merge! + markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) + parslet-toml-merge! + plain-merge! + prism-merge! + psych-merge! rbs (>= 3.0) + rbs-merge! rdoc (~> 6.11) reek (~> 6.5, >= 6.5.0) rubocop-gradual (~> 0.4, >= 0.4.0) @@ -347,17 +686,25 @@ DEPENDENCIES rubocop-on-rbs (~> 2.0, >= 2.0.0) rubocop-packaging (~> 0.6, >= 0.6.0) rubocop-ruby3_2 (~> 3.0, >= 3.0.6) + ruby-merge! + rust-merge! + smorg-rb! standard (~> 1.56, >= 1.56.0) stringio (>= 3.0) + toml-merge! + tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) + typescript-merge! webrick (~> 1.9) yaml-converter (~> 0.2, >= 0.2.3) + yaml-merge! yard (~> 0.9, >= 0.9.45) yard-fence (~> 0.9, >= 0.9.6) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) yard-timekeeper (~> 0.2, >= 0.2.4) yard-yaml (~> 0.2, >= 0.2.3) + zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af @@ -366,17 +713,29 @@ CHECKSUMS appraisal2-rubocop (1.0.0) sha256=b71410fbb014befda5340605a605b7f6f3f012739baf0acc5b4351b592c3258d ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 ast-crispr (7.1.0) + ast-crispr-markdown-markly (7.1.0) + ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) + ast-merge-git (7.1.0) + ast-template (7.1.0) + backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 + bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd + binary-merge (7.1.0) cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 + citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 + commonmarker (2.9.0-x86_64-linux) sha256=8cfe92970eef585a19ddf6613224b91cab64d6029834661bda801f877c9c7f43 + commonmarker-merge (7.1.0) concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 + delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 + dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -384,45 +743,70 @@ CHECKSUMS dry-logic (1.6.0) sha256=da6fedbc0f90fc41f9b0cc7e6f05f5d529d1efaef6c8dcc8e0733f685745cea2 dry-schema (1.16.0) sha256=cd3aaeabc0f1af66ec82a29096d4c4fb92a0a58b9dae29a22b1bbceb78985727 dry-types (1.9.1) sha256=baebeecdb9f8395d6c9d227b62011279440943e3ef2468fe8ccc1ba11467f178 + emoji_regex (15.0.0) sha256=a508b2c0bee561169564e0aec96085020c900520d335e5533fd8e78e59493829 erb (6.0.5) sha256=858e63488cb796c9daba8b6e9ff4b3879c395022049be9a66a8e00980e612eac gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 + go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 html-merge (7.1.0) io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 + json-merge (7.1.0) + kettle-dev (2.3.8) sha256=9d716ff21c660a730cb4e8d41e2e2f0630a28167a354b6e2924e242102aef72c + kettle-drift (1.0.6) sha256=46eda08fa4411d1f3c6682a95eef1c9df4e94611b3949f49d4c7b43c0ed356a3 + kettle-jem (7.1.0) + kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f kettle-soup-cover (3.0.3) sha256=5919649be35690e4580299a41ac7c44a9548a7ca38561ffdd3c683c9d63e6f9b - kettle-wash (0.1.0) sha256=5c04b3900d0957339e7c7d9997bbd804599b68bde002e6f47f4e28a0eea22ea7 + kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 + kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa + kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 + markdown-merge (7.1.0) + markly (0.16.0) sha256=6f70d79e385b1efc9e171f74c81628826259039fe6c778e03c3924c71dac5511 + markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-x86_64-linux-gnu) sha256=379fae440b28915e3f19d752ce2dcf8465ed2b2fbefd2a7ca0dd497bc981a06a nomono (1.0.8) sha256=bf4b9b426cbf216ab17b70db474f691b8ae1f1e29de8db4b0ecd405e6e7e1c80 openssl (4.0.2) sha256=1037ad2868ae58df9ad917891c0c0f9815a1172f6846d4bcdd508e4c2ee747c2 ostruct (0.6.3) sha256=95a2ed4a4bd1d190784e666b47b2d3f078e4a9efda2fccf18f84ddc6538ed912 parallel (1.28.0) sha256=33e6de1484baf2524792d178b0913fc8eb94c628d6cfe45599ad4458c638c970 + parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 + parslet-toml-merge (7.1.0) + plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 + prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 + psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 - rake-compiler-dock (1.12.0) sha256=f13205c2738f3d2053afcd03491a9e4541b22a59a0bfc53fc8bc883bd8188023 - rb_sys (0.9.127) sha256=e9f90df3bb0577472d26d96127d5b5774b98f44de881e7d36aeefd28d6337847 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 + rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb reline (0.6.3) sha256=1198b04973565b36ec0f11542ab3f5cfeeec34823f4e54cebde90968092b1835 rexml (3.4.4) sha256=19e0a2c3425dfbf2d4fc1189747bdb2f849b6c5e74180401b15734bc97b5d142 + rspec (3.13.2) sha256=206284a08ad798e61f86d7ca3e376718d52c0bc944626b2349266f239f820587 + rspec-block_is_expected (1.0.6) sha256=bbad3dc30eba93becf4dcb3fd1bff5f37f6e212ab5cbf6132c07edba6ff74282 + rspec-core (3.13.6) sha256=a8823c6411667b60a8bca135364351dda34cd55e44ff94c4be4633b37d828b2d + rspec-expectations (3.13.5) sha256=33a4d3a1d95060aea4c94e9f237030a8f9eae5615e9bd85718fe3a09e4b58836 + rspec-mocks (3.13.8) sha256=086ad3d3d17533f4237643de0b5c42f04b66348c28bf6b9c2d3f4a3b01af1d47 + rspec-pending_for (0.1.21) sha256=c87fda50c20f8faca72d9cfa6a936abffd37860343f14aced95bbb29b8ae96bf + rspec-stubbed_env (1.0.6) sha256=6467a6eb0f72146d443ffb0c5a2a549d8812e59c04fbc81e03cd914ebf1f28dc + rspec-support (3.13.7) sha256=0640e5570872aafefd79867901deeeeb40b0c9875a36b983d85f54fb7381c47c + rspec_junit_formatter (0.6.0) sha256=40dde674e6ae4e6cc0ff560da25497677e34fefd2338cc467a8972f602b62b15 rubocop (1.88.2) sha256=8def251c90cd955feb4daa3edc0ab56893250c4ce90ef81e6c80c03f9a939bbf rubocop-ast (1.50.0) sha256=b9ca88300da0803ee222ad20cdb30494c0a784eed06fdc35d254b06d662788db rubocop-capybara (2.23.0) sha256=f9ea1ba3a7561ee8e88cf76fc378ce517ce5327155f305ee7b5c2500e5aee357 @@ -442,13 +826,19 @@ CHECKSUMS rubocop-rspec_rails (2.32.0) sha256=4a0d641c72f6ebb957534f539d9d0a62c47abd8ce0d0aeee1ef4701e892a9100 rubocop-ruby3_2 (3.0.7) sha256=f53dd6d286fb05186214fc6ec116783e7f837030918e8931c05de773e98f8466 rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 + ruby-merge (7.1.0) ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 + ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa + ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 + rust-merge (7.1.0) service_actor (3.9.4) sha256=e63b523630b9a7e62959b2a90113b08d2565b5de9c148557b281ef847c9539ce + silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed + smorg-rb (7.1.0) sorbet-runtime (0.6.13342) sha256=dbeb9892597f593ed2b29e38018912787f6c4e0c4b736d8af0d6bd3c63bde3c3 standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b @@ -459,15 +849,23 @@ CHECKSUMS strscan (3.1.8) sha256=aae2db611a225559f21ffbb71765c9a4e60fd262534a9ea84f4f11c7f32f679e terminal-table (4.0.0) sha256=f504793203f8251b2ea7c7068333053f0beeea26093ec9962e62ea79f94301d2 thor (1.5.0) sha256=e3a9e55fe857e44859ce104a84675ab6e8cd59c650a49106a05f55f136425e73 - token-resolver (2.0.4) sha256=33b926958f504525bba3ed511ab66fbcbf8ef30390815e931436b30f27ffcad0 + timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 + timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 + token-resolver (2.0.5) sha256=b852f924287ffb58a440856e862b056c8ad97e74b4b2526cee43e0771f40c25c + toml (0.3.0) sha256=0a91d0f76a9036e84e44f95693b12f58d358c1df3ac8e3b5271f2056ecc6e4b9 + toml-merge (7.1.0) + toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 tree_haver (7.1.0) - tree_sitter_language_pack (1.13.2) + tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f + turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 + typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 webrick (1.9.2) sha256=beb4a15fc474defed24a3bda4ffd88a490d517c9e4e6118c3edce59e45864131 yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 + yaml-merge (7.1.0) yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd @@ -475,6 +873,7 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 + zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH diff --git a/gems/plain-merge/Gemfile.lock b/gems/plain-merge/Gemfile.lock index b6bca82a7..330d474ad 100644 --- a/gems/plain-merge/Gemfile.lock +++ b/gems/plain-merge/Gemfile.lock @@ -6,265 +6,6 @@ PATH tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly - specs: - ast-crispr-markdown-markly (7.1.0) - ast-crispr (= 7.1.0) - markly-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism - specs: - ast-crispr-ruby-prism (7.1.0) - ast-crispr (= 7.1.0) - prism-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr - specs: - ast-crispr (7.1.0) - ast-merge (= 7.1.0) - service_actor (~> 3.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git - specs: - ast-merge-git (7.1.0) - ast-merge (= 7.1.0) - json-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge - specs: - ast-merge (7.1.0) - benchmark - token-resolver (~> 2.0, >= 2.0.4) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template - specs: - ast-template (7.1.0) - ast-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge - specs: - bash-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge - specs: - binary-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge - specs: - citrus-toml-merge (7.1.0) - toml-merge (= 7.1.0) - toml-rb (~> 4.1) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge - specs: - commonmarker-merge (7.1.0) - commonmarker (~> 2.2) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge - specs: - dotenv-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge - specs: - go-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge - specs: - json-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem - specs: - kettle-jem (7.1.0) - addressable (>= 2.8, < 3) - ast-crispr-markdown-markly (= 7.1.0) - ast-crispr-ruby-prism (= 7.1.0) - ast-merge (= 7.1.0) - bash-merge (= 7.1.0) - citrus-toml-merge (= 7.1.0) - commonmarker-merge (= 7.1.0) - dotenv-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-dev (~> 2.3, >= 2.3.5) - kettle-rb (~> 0.1, >= 0.1.4) - kramdown-merge (= 7.1.0) - markdown-merge (= 7.1.0) - markly-merge (= 7.1.0) - prism-merge (= 7.1.0) - psych-merge (= 7.1.0) - rbs (>= 3.10) - rbs-merge (= 7.1.0) - ruby-merge (= 7.1.0) - token-resolver (~> 2.0, >= 2.0.4) - toml-merge (= 7.1.0) - toml-rb (~> 4.2) - tree_haver (= 7.1.0) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge - specs: - kramdown-merge (7.1.0) - kramdown (~> 2.5) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge - specs: - markdown-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge - specs: - markly-merge (7.1.0) - markdown-merge (= 7.1.0) - markly (~> 0.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge - specs: - parslet-toml-merge (7.1.0) - toml (~> 0.3) - toml-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge - specs: - prism-merge (7.1.0) - prism (~> 1.6) - ruby-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge - specs: - psych-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge - specs: - rbs-merge (7.1.0) - ast-merge (= 7.1.0) - rbs (>= 3.10) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge - specs: - ruby-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge - specs: - rust-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb - specs: - smorg-rb (7.1.0) - ast-merge (= 7.1.0) - ast-merge-git (= 7.1.0) - go-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-jem (= 7.1.0) - markly-merge (= 7.1.0) - plain-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge - specs: - toml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver - specs: - tree_haver (7.1.0) - citrus (~> 3.0) - parslet (~> 2.0) - tree_sitter_language_pack (>= 1.13.2, < 2.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge - specs: - typescript-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge - specs: - yaml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge - specs: - zip-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - GEM remote: https://gem.coop/ specs: @@ -280,6 +21,11 @@ GEM rubocop (>= 1.0) version_gem (~> 1.1, >= 1.1.14) ast (2.4.3) + ast-merge (7.1.0) + benchmark + token-resolver (~> 2.0, >= 2.0.4) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) backports (3.25.3) benchmark (0.5.0) bigdecimal (4.1.2) @@ -289,11 +35,6 @@ GEM cgi (0.5.2) citrus (3.0.2) cmdparse (3.0.7) - commonmarker (2.9.0-aarch64-linux) - commonmarker (2.9.0-aarch64-linux-musl) - commonmarker (2.9.0-arm64-darwin) - commonmarker (2.9.0-x86_64-linux) - commonmarker (2.9.0-x86_64-linux-musl) concurrent-ruby (1.3.8) date (3.5.1) debug (1.11.1) @@ -356,8 +97,6 @@ GEM kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) - kettle-drift (1.0.6) - version_gem (~> 1.1, >= 1.1.14) kettle-rb (0.1.5) kettle-soup-cover (3.0.4) kettle-wash (~> 0.1, >= 0.1.0) @@ -386,7 +125,6 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) - markly (0.16.0) mutex_m (0.3.0) nokogiri (1.19.4-aarch64-linux-gnu) racc (~> 1.4) @@ -549,8 +287,6 @@ GEM ruby-progressbar (1.13.0) ruby_engine (2.0.3) ruby_version (1.0.3) - service_actor (3.9.4) - zeitwerk (>= 1.0) silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) @@ -605,11 +341,11 @@ GEM token-resolver (2.0.5) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.14) - toml (0.3.0) - parslet (>= 1.8.0, < 3.0.0) - toml-rb (4.2.0) - citrus (~> 3.0, > 3.0) - racc (~> 1.7) + tree_haver (7.1.0) + citrus (~> 3.0) + parslet (~> 2.0) + tree_sitter_language_pack (>= 1.13.2, < 2.0) + version_gem (~> 1.1, >= 1.1.9) tree_sitter_language_pack (1.13.3-aarch64-linux) sorbet-runtime (~> 0.5) tree_sitter_language_pack (1.13.3-arm64-darwin) @@ -664,46 +400,24 @@ DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) appraisal2-rubocop (~> 1.0, >= 1.0.0) - ast-crispr! - ast-crispr-markdown-markly! - ast-crispr-ruby-prism! - ast-merge! - ast-merge-git! - ast-template! - bash-merge! benchmark (~> 0.5, >= 0.5.0) - binary-merge! bundler-audit (~> 0.9.3) cgi (~> 0.5) - citrus-toml-merge! - commonmarker-merge! debug (>= 1.1) - dotenv-merge! erb (~> 6.0, >= 6.0.6) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.0) - go-merge! irb (~> 1.17) - json-merge! kettle-dev (~> 2.0, >= 2.2.25) - kettle-drift (~> 1.0, >= 1.0.6) - kettle-jem! kettle-soup-cover (~> 3.0, >= 3.0.3) kettle-test (~> 2.0, >= 2.0.9) kramdown (~> 2.5, >= 2.5.2) - kramdown-merge! kramdown-parser-gfm (~> 1.1) - markdown-merge! - markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) - parslet-toml-merge! plain-merge! - prism-merge! - psych-merge! rake (~> 13.0) rbs (>= 3.0) - rbs-merge! rdoc (~> 6.11) reek (~> 6.5, >= 6.5.0) require_bench (~> 1.0, >= 1.0.4) @@ -714,27 +428,19 @@ DEPENDENCIES rubocop-on-rbs (~> 2.0, >= 2.0.0) rubocop-packaging (~> 0.6, >= 0.6.0) rubocop-ruby3_2 (~> 3.0, >= 3.0.6) - ruby-merge! ruby-progressbar (~> 1.13) - rust-merge! - smorg-rb! standard (~> 1.56, >= 1.56.0) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) - toml-merge! - tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) - typescript-merge! webrick (~> 1.9) yaml-converter (~> 0.2, >= 0.2.3) - yaml-merge! yard (~> 0.9, >= 0.9.45) yard-fence (~> 0.9, >= 0.9.6) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) yard-timekeeper (~> 0.2, >= 0.2.4) yard-yaml (~> 0.2, >= 0.2.3) - zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af @@ -742,35 +448,20 @@ CHECKSUMS appraisal2 (3.2.0) sha256=ccd0b767ac4060cd7af6d16747459b6990f49c39c7b4fb1f7d1146b1e97c492f appraisal2-rubocop (1.0.0) sha256=b71410fbb014befda5340605a605b7f6f3f012739baf0acc5b4351b592c3258d ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 - ast-crispr (7.1.0) - ast-crispr-markdown-markly (7.1.0) - ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) - ast-merge-git (7.1.0) - ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 - bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd - binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 - citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 - commonmarker (2.9.0-aarch64-linux) sha256=e2b4aadb9a2cfa4e206582641ce3a49465549ac1ed4c289fdd63b78d8f24579c - commonmarker (2.9.0-aarch64-linux-musl) sha256=1cf4d2821f2a7e64945f1ed7c4eeced586fdb27ea7fe7337788802cf8f57cfca - commonmarker (2.9.0-arm64-darwin) sha256=1748dbfa4f5813b0d2a14bb4bbfa65a4ec293aa1c825016d60029ee0e132b046 - commonmarker (2.9.0-x86_64-linux) sha256=8cfe92970eef585a19ddf6613224b91cab64d6029834661bda801f877c9c7f43 - commonmarker (2.9.0-x86_64-linux-musl) sha256=293921398b839f79ceaf55010e061357e34f053822c3b003cd0be6686176335e - commonmarker-merge (7.1.0) concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 - dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -783,28 +474,20 @@ CHECKSUMS gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f - go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 - json-merge (7.1.0) kettle-dev (2.3.8) sha256=9d716ff21c660a730cb4e8d41e2e2f0630a28167a354b6e2924e242102aef72c - kettle-drift (1.0.6) sha256=46eda08fa4411d1f3c6682a95eef1c9df4e94611b3949f49d4c7b43c0ed356a3 - kettle-jem (7.1.0) kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f kettle-soup-cover (3.0.4) kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa - kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 - markdown-merge (7.1.0) - markly (0.16.0) sha256=6f70d79e385b1efc9e171f74c81628826259039fe6c778e03c3924c71dac5511 - markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-aarch64-linux-gnu) sha256=1269fb644a6de405057a53dd5c762b1209b43ca7424f839454d3dbc677c31a8f nokogiri (1.19.4-aarch64-linux-musl) sha256=35c65b9ce72b3bb03207bdbe7067915019dc18c1b9b59139684bd6690fdd01af @@ -818,20 +501,16 @@ CHECKSUMS parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 - parslet-toml-merge (7.1.0) plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 - prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 - psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 - rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb @@ -866,19 +545,15 @@ CHECKSUMS rubocop-rspec_rails (2.32.0) sha256=4a0d641c72f6ebb957534f539d9d0a62c47abd8ce0d0aeee1ef4701e892a9100 rubocop-ruby3_2 (3.0.7) sha256=f53dd6d286fb05186214fc6ec116783e7f837030918e8931c05de773e98f8466 rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 - ruby-merge (7.1.0) ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 - rust-merge (7.1.0) - service_actor (3.9.4) sha256=e63b523630b9a7e62959b2a90113b08d2565b5de9c148557b281ef847c9539ce silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed - smorg-rb (7.1.0) sorbet-runtime (0.6.13347) sha256=54e7221d9f4b63f58aec79f3043752a9ba7810347c6ae0d903531591cc2d5f01 standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b @@ -893,22 +568,17 @@ CHECKSUMS timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.5) sha256=b852f924287ffb58a440856e862b056c8ad97e74b4b2526cee43e0771f40c25c - toml (0.3.0) sha256=0a91d0f76a9036e84e44f95693b12f58d358c1df3ac8e3b5271f2056ecc6e4b9 - toml-merge (7.1.0) - toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-aarch64-linux) sha256=55ffc7c87868cb45658338363d9eba51b4a8b0259aa88e4de368d2bd1d52fea4 tree_sitter_language_pack (1.13.3-arm64-darwin) sha256=bc2498db605f212a1dbd2465ed3f65190d7da786f6ed5d30fcf958121aeb4a5c tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 - typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 webrick (1.9.2) sha256=beb4a15fc474defed24a3bda4ffd88a490d517c9e4e6118c3edce59e45864131 yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 - yaml-merge (7.1.0) yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd @@ -916,7 +586,6 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 - zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH diff --git a/gems/rbs-merge/.kettle-drift.lock b/gems/rbs-merge/.kettle-drift.lock index 09df60df7..2ee9dae31 100644 --- a/gems/rbs-merge/.kettle-drift.lock +++ b/gems/rbs-merge/.kettle-drift.lock @@ -1,122 +1,10 @@ { - "(direct_sibling_local ||\nENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?)": [ - { - "file": "Gemfile", - "lines": [ - 80, - 120, - 160, - 200, - 240, - 280, - 320, - 360 - ] - } - ], - ".find { |spec| spec.name == 'nomono' }\nnomono_locked = nomono_locked_spec &&": [ - { - "file": "Gemfile", - "lines": [ - 91, - 131, - 171, - 211, - 251, - 291, - 331, - 371 - ] - } - ], - "ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?)\ndirect_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV')": [ - { - "file": "Gemfile", - "lines": [ - 81, - 121, - 161, - 201, - 241, - 281, - 321, - 361 - ] - } - ], - "Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version)\nnomono_activation_requirements = [\"= #{nomono_locked_spec.version}\"] if nomono_locked": [ - { - "file": "Gemfile", - "lines": [ - 93, - 133, - 173, - 213, - 253, - 293, - 333, - 373 - ] - } - ], - "Kernel.send(:gem, 'nomono', *nomono_activation_requirements)\nrequire 'nomono/bundler'": [ - { - "file": "Gemfile", - "lines": [ - 96, - 136, - 176, - 216, - 256, - 296, - 336, - 376 - ] - } - ], - "direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV')\ndirect_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil)": [ - { - "file": "Gemfile", - "lines": [ - 82, - 122, - 162, - 202, - 242, - 282, - 322, - 362 - ] - } - ], "eval_nomono_gems(\ngems: direct_sibling_gems,": [ { "file": "Gemfile", "lines": [ 60, - 100, - 140, - 180, - 220, - 260, - 300, - 340, - 380 - ] - } - ], - "gems: direct_sibling_gems,\nprefix: 'STRUCTUREDMERGE',": [ - { - "file": "Gemfile", - "lines": [ - 101, - 141, - 181, - 221, - 261, - 301, - 341, - 381 + 100 ] } ], @@ -125,29 +13,7 @@ "file": "Gemfile", "lines": [ 43, - 87, - 127, - 167, - 207, - 247, - 287, - 327, - 367 - ] - } - ], - "if direct_sibling_dev_was_set\nENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original": [ - { - "file": "Gemfile", - "lines": [ - 110, - 150, - 190, - 230, - 270, - 310, - 350, - 390 + 87 ] } ], @@ -156,14 +22,7 @@ "file": "Gemfile", "lines": [ 35, - 79, - 119, - 159, - 199, - 239, - 279, - 319, - 359 + 79 ] } ], @@ -172,29 +31,7 @@ "file": "Gemfile", "lines": [ 69, - 109, - 149, - 189, - 229, - 269, - 309, - 349, - 389 - ] - } - ], - "nomono_activation_requirements = nomono_requirements\nnomono_lockfile = File.expand_path('Gemfile.lock', __dir__)": [ - { - "file": "Gemfile", - "lines": [ - 85, - 125, - 165, - 205, - 245, - 285, - 325, - 365 + 109 ] } ], @@ -203,14 +40,7 @@ "file": "Gemfile", "lines": [ 48, - 92, - 132, - 172, - 212, - 252, - 292, - 332, - 372 + 92 ] } ], @@ -219,89 +49,7 @@ "file": "Gemfile", "lines": [ 44, - 88, - 128, - 168, - 208, - 248, - 288, - 328, - 368 - ] - } - ], - "nomono_lockfile = File.expand_path('Gemfile.lock', __dir__)\nif File.file?(nomono_lockfile)": [ - { - "file": "Gemfile", - "lines": [ - 86, - 126, - 166, - 206, - 246, - 286, - 326, - 366 - ] - } - ], - "path_env: 'STRUCTUREDMERGE_DEV',\nroot: %w[src my structuredmerge]": [ - { - "file": "Gemfile", - "lines": [ - 103, - 143, - 183, - 223, - 263, - 303, - 343, - 383 - ] - } - ], - "prefix: 'STRUCTUREDMERGE',\npath_env: 'STRUCTUREDMERGE_DEV',": [ - { - "file": "Gemfile", - "lines": [ - 102, - 142, - 182, - 222, - 262, - 302, - 342, - 382 - ] - } - ], - "require 'nomono/bundler'\nENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local": [ - { - "file": "Gemfile", - "lines": [ - 97, - 137, - 177, - 217, - 257, - 297, - 337, - 377 - ] - } - ], - "rescue LoadError\nwarn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.'": [ - { - "file": "Gemfile", - "lines": [ - 106, - 146, - 186, - 226, - 266, - 306, - 346, - 386 + 88 ] } ], @@ -309,8 +57,8 @@ { "file": "gemfiles/modular/templating_local.gemfile", "lines": [ - 60, - 71 + 55, + 66 ] } ] diff --git a/gems/rbs-merge/.structuredmerge/kettle-jem.yml b/gems/rbs-merge/.structuredmerge/kettle-jem.yml index cd952effb..840d75cc3 100644 --- a/gems/rbs-merge/.structuredmerge/kettle-jem.yml +++ b/gems/rbs-merge/.structuredmerge/kettle-jem.yml @@ -246,6 +246,59 @@ templates: - Gemfile - certs/pboling.pem - tmp/.gitignore + - gemfiles/modular/benchmark/r4/v0.5.gemfile + - gemfiles/modular/benchmark/vHEAD.gemfile + - gemfiles/modular/cgi/r4/v0.5.gemfile + - gemfiles/modular/cgi/vHEAD.gemfile + - gemfiles/modular/coverage.gemfile + - gemfiles/modular/coverage_local.gemfile + - gemfiles/modular/debug.gemfile + - gemfiles/modular/documentation.gemfile + - gemfiles/modular/documentation_local.gemfile + - gemfiles/modular/erb/r2.3/default.gemfile + - gemfiles/modular/erb/r2.6/v2.2.gemfile + - gemfiles/modular/erb/r2/v3.0.gemfile + - gemfiles/modular/erb/r3.1/v4.0.gemfile + - gemfiles/modular/erb/r3/v5.0.gemfile + - gemfiles/modular/erb/r4/v5.0.gemfile + - gemfiles/modular/erb/vHEAD.gemfile + - gemfiles/modular/json/truffleruby_22_3.gemfile + - gemfiles/modular/json/truffleruby_23_0.gemfile + - gemfiles/modular/json/truffleruby_23_1.gemfile + - gemfiles/modular/mutex_m/r2.4/v0.1.gemfile + - gemfiles/modular/mutex_m/r2/v0.3.gemfile + - gemfiles/modular/mutex_m/r3/v0.3.gemfile + - gemfiles/modular/mutex_m/r4/v0.3.gemfile + - gemfiles/modular/mutex_m/vHEAD.gemfile + - gemfiles/modular/optional.gemfile + - gemfiles/modular/recording/r2.3/recording.gemfile + - gemfiles/modular/recording/r2.4/recording.gemfile + - gemfiles/modular/recording/r2.5/recording.gemfile + - gemfiles/modular/recording/r3/recording.gemfile + - gemfiles/modular/recording/r4/recording.gemfile + - gemfiles/modular/recording/vHEAD.gemfile + - gemfiles/modular/rspec.gemfile + - gemfiles/modular/runtime_heads.gemfile + - gemfiles/modular/stringio/r2.4/v0.0.2.gemfile + - gemfiles/modular/stringio/r2/v3.0.gemfile + - gemfiles/modular/stringio/r3/v3.0.gemfile + - gemfiles/modular/stringio/r4/v3.0.gemfile + - gemfiles/modular/stringio/vHEAD.gemfile + - gemfiles/modular/style.gemfile + - gemfiles/modular/style_local.gemfile + - gemfiles/modular/templating.gemfile + - gemfiles/modular/templating_local.gemfile + - gemfiles/modular/webrick/r4/v1.9.gemfile + - gemfiles/modular/webrick/vHEAD.gemfile + - gemfiles/modular/x_std_libs.gemfile + - gemfiles/modular/x_std_libs/r2.3/libs.gemfile + - gemfiles/modular/x_std_libs/r2.4/libs.gemfile + - gemfiles/modular/x_std_libs/r2.6/libs.gemfile + - gemfiles/modular/x_std_libs/r2/libs.gemfile + - gemfiles/modular/x_std_libs/r3.1/libs.gemfile + - gemfiles/modular/x_std_libs/r3/libs.gemfile + - gemfiles/modular/x_std_libs/r4/libs.gemfile + - gemfiles/modular/x_std_libs/vHEAD.gemfile - source: lib/gem/version.rb target: lib/rbs/merge/version.rb - source: sig/gem.rbs diff --git a/gems/rbs-merge/Gemfile b/gems/rbs-merge/Gemfile index 52f1380c2..68dfabe9b 100644 --- a/gems/rbs-merge/Gemfile +++ b/gems/rbs-merge/Gemfile @@ -6,7 +6,7 @@ # kettle-jem will then preserve content between those markers across template runs. # kettle-jem:unfreeze -source 'https://gem.coop' +source "https://gem.coop" git_source(:codeberg) { |repo_name| "https://codeberg.org/#{repo_name}" } git_source(:gitlab) { |repo_name| "https://gitlab.com/#{repo_name}" } @@ -19,18 +19,62 @@ git_source(:gitlab) { |repo_name| "https://gitlab.com/#{repo_name}" } gemspec # Local workspace dependency wiring for *_local.gemfile overrides -nomono_requirements = ['~> 1.0', '>= 1.0.8'] -gem 'nomono', *nomono_requirements, require: false # ruby >= 2.2 +nomono_requirements = ["~> 1.0", ">= 1.0.8"] +gem "nomono", *nomono_requirements, require: false # ruby >= 2.2 # Direct sibling dependencies (env-switched via STRUCTUREDMERGE_DEV) direct_sibling_gems = %w[ ast-merge tree_haver ] -direct_sibling_dev = ENV.fetch('STRUCTUREDMERGE_DEV', '') +direct_sibling_dev = ENV.fetch("STRUCTUREDMERGE_DEV", "") direct_sibling_local = !direct_sibling_dev.empty? && !%w[false 0 no off].include?(direct_sibling_dev.downcase) -direct_sibling_templating = ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? +direct_sibling_templating = ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? + +if direct_sibling_gems.any? && + (direct_sibling_local || + ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero?) + direct_sibling_dev_was_set = ENV.key?("STRUCTUREDMERGE_DEV") + direct_sibling_dev_original = ENV.fetch("STRUCTUREDMERGE_DEV", nil) + begin + nomono_activation_requirements = nomono_requirements + nomono_lockfile = File.expand_path("Gemfile.lock", __dir__) + if File.file?(nomono_lockfile) + nomono_locked_spec = Bundler::LockfileParser + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == "nomono" } + nomono_locked = nomono_locked_spec && + Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) + if nomono_locked + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] + end + end + Kernel.send(:gem, "nomono", *nomono_activation_requirements) + require "nomono/bundler" + if direct_sibling_templating && !direct_sibling_local + ENV["STRUCTUREDMERGE_DEV"] = File.expand_path("..", __dir__) + end + + eval_nomono_gems( + gems: direct_sibling_gems, + prefix: "STRUCTUREDMERGE", + path_env: "STRUCTUREDMERGE_DEV", + root: ["src", "my", "structuredmerge"] + ) + rescue LoadError + warn "Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies." + ensure + if direct_sibling_templating && !direct_sibling_local + if direct_sibling_dev_was_set + ENV["STRUCTUREDMERGE_DEV"] = direct_sibling_dev_original + else + ENV.delete("STRUCTUREDMERGE_DEV") + end + end + end +end if direct_sibling_gems.any? && (direct_sibling_local || @@ -73,28 +117,28 @@ if direct_sibling_gems.any? && end # Use released TSLP with the Ruby ABI platform-gem fix. -gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' +gem "tree_sitter_language_pack", "~> 1.13", ">= 1.13.3" # Templating (env-switched: STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local paths) -eval_gemfile 'gemfiles/modular/templating.gemfile' if ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? +eval_gemfile "gemfiles/modular/templating.gemfile" if ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? # Debugging -eval_gemfile 'gemfiles/modular/debug.gemfile' +eval_gemfile "gemfiles/modular/debug.gemfile" # Code Coverage (env-switched: KETTLE_DEV_DEV=true for local paths) -eval_gemfile 'gemfiles/modular/coverage.gemfile' +eval_gemfile "gemfiles/modular/coverage.gemfile" # Linting -eval_gemfile 'gemfiles/modular/style.gemfile' +eval_gemfile "gemfiles/modular/style.gemfile" # Documentation -eval_gemfile 'gemfiles/modular/documentation.gemfile' +eval_gemfile "gemfiles/modular/documentation.gemfile" # Optional -eval_gemfile 'gemfiles/modular/optional.gemfile' +eval_gemfile "gemfiles/modular/optional.gemfile" ### Std Lib Extracted Gems -eval_gemfile 'gemfiles/modular/x_std_libs.gemfile' +eval_gemfile "gemfiles/modular/x_std_libs.gemfile" # See unlocked_deps appraisal for more details on irb inclusion -gem 'irb', '~> 1.17' # ruby >= 2.7 +gem "irb", "~> 1.17" # ruby >= 2.7 diff --git a/gems/rbs-merge/Gemfile.lock b/gems/rbs-merge/Gemfile.lock index f26fd3e97..3627aade6 100644 --- a/gems/rbs-merge/Gemfile.lock +++ b/gems/rbs-merge/Gemfile.lock @@ -7,38 +7,6 @@ PATH tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.14) -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly - specs: - ast-crispr-markdown-markly (7.1.0) - ast-crispr (= 7.1.0) - markly-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism - specs: - ast-crispr-ruby-prism (7.1.0) - ast-crispr (= 7.1.0) - prism-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr - specs: - ast-crispr (7.1.0) - ast-merge (= 7.1.0) - service_actor (~> 3.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git - specs: - ast-merge-git (7.1.0) - ast-merge (= 7.1.0) - json-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - PATH remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge specs: @@ -48,191 +16,6 @@ PATH tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template - specs: - ast-template (7.1.0) - ast-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge - specs: - bash-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge - specs: - binary-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge - specs: - citrus-toml-merge (7.1.0) - toml-merge (= 7.1.0) - toml-rb (~> 4.1) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge - specs: - commonmarker-merge (7.1.0) - commonmarker (~> 2.2) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge - specs: - dotenv-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge - specs: - go-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge - specs: - json-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem - specs: - kettle-jem (7.1.0) - addressable (>= 2.8, < 3) - ast-crispr-markdown-markly (= 7.1.0) - ast-crispr-ruby-prism (= 7.1.0) - ast-merge (= 7.1.0) - bash-merge (= 7.1.0) - citrus-toml-merge (= 7.1.0) - commonmarker-merge (= 7.1.0) - dotenv-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-dev (~> 2.3, >= 2.3.5) - kettle-rb (~> 0.1, >= 0.1.4) - kramdown-merge (= 7.1.0) - markdown-merge (= 7.1.0) - markly-merge (= 7.1.0) - prism-merge (= 7.1.0) - psych-merge (= 7.1.0) - rbs (>= 3.10) - rbs-merge (= 7.1.0) - ruby-merge (= 7.1.0) - token-resolver (~> 2.0, >= 2.0.4) - toml-merge (= 7.1.0) - toml-rb (~> 4.2) - tree_haver (= 7.1.0) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge - specs: - kramdown-merge (7.1.0) - kramdown (~> 2.5) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge - specs: - markdown-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge - specs: - markly-merge (7.1.0) - markdown-merge (= 7.1.0) - markly (~> 0.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge - specs: - parslet-toml-merge (7.1.0) - toml (~> 0.3) - toml-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge - specs: - plain-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge - specs: - prism-merge (7.1.0) - prism (~> 1.6) - ruby-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge - specs: - psych-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge - specs: - ruby-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge - specs: - rust-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb - specs: - smorg-rb (7.1.0) - ast-merge (= 7.1.0) - ast-merge-git (= 7.1.0) - go-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-jem (= 7.1.0) - markly-merge (= 7.1.0) - plain-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge - specs: - toml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - PATH remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver specs: @@ -242,29 +25,6 @@ PATH tree_sitter_language_pack (>= 1.13.2, < 2.0) version_gem (~> 1.1, >= 1.1.9) -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge - specs: - typescript-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge - specs: - yaml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge - specs: - zip-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - GEM remote: https://gem.coop/ specs: @@ -284,11 +44,6 @@ GEM thor (~> 1.0) citrus (3.0.2) cmdparse (3.0.7) - commonmarker (2.9.0-aarch64-linux) - commonmarker (2.9.0-aarch64-linux-musl) - commonmarker (2.9.0-arm64-darwin) - commonmarker (2.9.0-x86_64-linux) - commonmarker (2.9.0-x86_64-linux-musl) concurrent-ruby (1.3.7) date (3.5.1) debug (1.11.1) @@ -352,8 +107,6 @@ GEM kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) - kettle-drift (1.0.6) - version_gem (~> 1.1, >= 1.1.14) kettle-rb (0.1.4) kettle-soup-cover (1.1.3) simplecov (~> 0.22) @@ -382,7 +135,6 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) - markly (0.16.0) mutex_m (0.3.0) nokogiri (1.19.4-aarch64-linux-gnu) racc (~> 1.4) @@ -394,7 +146,7 @@ GEM racc (~> 1.4) nokogiri (1.19.4-x86_64-linux-musl) racc (~> 1.4) - nomono (1.0.8) + nomono (1.0.9) openssl (4.0.2) ostruct (0.6.3) parallel (1.28.0) @@ -517,8 +269,6 @@ GEM ruby-progressbar (1.13.0) ruby_engine (2.0.3) ruby_version (1.0.3) - service_actor (3.9.4) - zeitwerk (>= 1.0) silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) @@ -571,11 +321,6 @@ GEM token-resolver (2.0.4) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.13) - toml (0.3.0) - parslet (>= 1.8.0, < 3.0.0) - toml-rb (4.2.0) - citrus (~> 3.0, > 3.0) - racc (~> 1.7) tree_sitter_language_pack (1.13.3-aarch64-linux) sorbet-runtime (~> 0.5) tree_sitter_language_pack (1.13.3-arm64-darwin) @@ -628,42 +373,21 @@ PLATFORMS DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.2, >= 3.2.0) - ast-crispr! - ast-crispr-markdown-markly! - ast-crispr-ruby-prism! ast-merge! - ast-merge-git! - ast-template! - bash-merge! benchmark (~> 0.5, >= 0.5.0) - binary-merge! bundler-audit (~> 0.9.3) - citrus-toml-merge! - commonmarker-merge! debug (>= 1.1) - dotenv-merge! erb (~> 6.0, >= 6.0.4) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.4) - go-merge! irb (~> 1.17) - json-merge! kettle-dev (~> 2.3, >= 2.3.7) - kettle-drift (~> 1.0, >= 1.0.5) - kettle-jem! kettle-soup-cover (~> 1.0, >= 1.1.3) kettle-test (~> 2.0, >= 2.0.11) kramdown (~> 2.5, >= 2.5.1) - kramdown-merge! kramdown-parser-gfm (~> 1.1) - markdown-merge! - markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) - parslet-toml-merge! - plain-merge! - prism-merge! - psych-merge! rake (~> 13.0) rbs (>= 3.0) rbs-merge! @@ -675,54 +399,33 @@ DEPENDENCIES rubocop-packaging (~> 0.6, >= 0.6.0) rubocop-rspec (~> 3.6) rubocop-ruby3_2 (~> 3.0.0) - ruby-merge! ruby-progressbar (~> 1.13) - rust-merge! - smorg-rb! standard (>= 1.50) stone_checksums (~> 1.0, >= 1.0.6, >= 1.0.3) stringio (>= 3.0) - toml-merge! tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) turbo_tests2 (~> 3.2, >= 3.2.0) - typescript-merge! yaml-converter (~> 0.1) - yaml-merge! yard (~> 0.9, >= 0.9.44) yard-fence (~> 0.9, >= 0.9.1) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) yard-timekeeper (~> 0.1) yard-yaml (~> 0.1, >= 0.1.2) - zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af ansi (1.6.0) sha256=ac9ea0c0ea8d32fb4e271348e609963ac78882f34b73836c2a02b3622e666658 appraisal2 (3.2.0) sha256=ccd0b767ac4060cd7af6d16747459b6990f49c39c7b4fb1f7d1146b1e97c492f ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 - ast-crispr (7.1.0) - ast-crispr-markdown-markly (7.1.0) - ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) - ast-merge-git (7.1.0) - ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 - bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd - binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 - citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 - commonmarker (2.9.0-aarch64-linux) sha256=e2b4aadb9a2cfa4e206582641ce3a49465549ac1ed4c289fdd63b78d8f24579c - commonmarker (2.9.0-aarch64-linux-musl) sha256=1cf4d2821f2a7e64945f1ed7c4eeced586fdb27ea7fe7337788802cf8f57cfca - commonmarker (2.9.0-arm64-darwin) sha256=1748dbfa4f5813b0d2a14bb4bbfa65a4ec293aa1c825016d60029ee0e132b046 - commonmarker (2.9.0-x86_64-linux) sha256=8cfe92970eef585a19ddf6613224b91cab64d6029834661bda801f877c9c7f43 - commonmarker (2.9.0-x86_64-linux-musl) sha256=293921398b839f79ceaf55010e061357e34f053822c3b003cd0be6686176335e - commonmarker-merge (7.1.0) concurrent-ruby (1.3.7) sha256=4412caec3a5ea2e5fdc52076724c071a81f2c0593d83b2ac8cbb8ca63b3151b0 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 @@ -730,7 +433,6 @@ CHECKSUMS diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 docile (1.4.1) sha256=96159be799bfa73cdb721b840e9802126e4e03dfc26863db73647204c727f21e - dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -743,48 +445,36 @@ CHECKSUMS gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f - go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 - json-merge (7.1.0) kettle-dev (2.3.7) sha256=eb370113cd030d03cbe2d33b31c99858951017e5ad21a17e9ed89dc3770028ee - kettle-drift (1.0.6) sha256=46eda08fa4411d1f3c6682a95eef1c9df4e94611b3949f49d4c7b43c0ed356a3 - kettle-jem (7.1.0) kettle-rb (0.1.4) sha256=9cef7ce4f7021666b7222292f29051e51eaf042e8a5db11f3f4dd72f74243fc1 kettle-soup-cover (1.1.3) sha256=a373827da22a7131d093afd32945e5b7d7a10a01ebfdded8fd2cb8230d69c8ad kettle-test (2.0.11) sha256=c710c90f7ab79d51f9452f0c09f5f90657e7a893f63583855c164d0b1b107ab2 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa - kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 - markdown-merge (7.1.0) - markly (0.16.0) sha256=6f70d79e385b1efc9e171f74c81628826259039fe6c778e03c3924c71dac5511 - markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-aarch64-linux-gnu) sha256=1269fb644a6de405057a53dd5c762b1209b43ca7424f839454d3dbc677c31a8f nokogiri (1.19.4-aarch64-linux-musl) sha256=35c65b9ce72b3bb03207bdbe7067915019dc18c1b9b59139684bd6690fdd01af nokogiri (1.19.4-arm64-darwin) sha256=a46db9853286e6597b36ebc6953817d15acf3a299583eb3f89fdc6f91dd63527 nokogiri (1.19.4-x86_64-linux-gnu) sha256=379fae440b28915e3f19d752ce2dcf8465ed2b2fbefd2a7ca0dd497bc981a06a nokogiri (1.19.4-x86_64-linux-musl) sha256=17dfb7c1fa194ae02fbf7c51a7afc8d278045ab3fdacfd86f91d02d7b274470b - nomono (1.0.8) sha256=bf4b9b426cbf216ab17b70db474f691b8ae1f1e29de8db4b0ecd405e6e7e1c80 + nomono (1.0.9) openssl (4.0.2) sha256=1037ad2868ae58df9ad917891c0c0f9815a1172f6846d4bcdd508e4c2ee747c2 ostruct (0.6.3) sha256=95a2ed4a4bd1d190784e666b47b2d3f078e4a9efda2fccf18f84ddc6538ed912 parallel (1.28.0) sha256=33e6de1484baf2524792d178b0913fc8eb94c628d6cfe45599ad4458c638c970 parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 - parslet-toml-merge (7.1.0) - plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 - prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 - psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a @@ -818,12 +508,9 @@ CHECKSUMS rubocop-rspec (3.10.2) sha256=0b3e2ecc592cd10ecbf0095bb58d1e357905276e069643523cc19eb7495f65e2 rubocop-ruby3_2 (3.0.7) sha256=f53dd6d286fb05186214fc6ec116783e7f837030918e8931c05de773e98f8466 rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 - ruby-merge (7.1.0) ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 - rust-merge (7.1.0) - service_actor (3.9.4) sha256=e63b523630b9a7e62959b2a90113b08d2565b5de9c148557b281ef847c9539ce silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (0.22.0) sha256=fe2622c7834ff23b98066bb0a854284b2729a569ac659f82621fc22ef36213a5 simplecov-cobertura (3.2.0) sha256=70d702658677fcb20e5aceb6915ccf8bc62ff2ccd38b62b3ad5c9db5c0888740 @@ -832,7 +519,6 @@ CHECKSUMS simplecov-lcov (0.9.0) sha256=7a77a31e200a595ed4b0249493056efd0c920601f53d2ef135ca34ee796346cd simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_json_formatter (0.1.4) sha256=529418fbe8de1713ac2b2d612aa3daa56d316975d307244399fa4838c601b428 - smorg-rb (7.1.0) sorbet-runtime (0.6.13347) sha256=54e7221d9f4b63f58aec79f3043752a9ba7810347c6ae0d903531591cc2d5f01 standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b @@ -846,21 +532,16 @@ CHECKSUMS timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.4) sha256=33b926958f504525bba3ed511ab66fbcbf8ef30390815e931436b30f27ffcad0 - toml (0.3.0) sha256=0a91d0f76a9036e84e44f95693b12f58d358c1df3ac8e3b5271f2056ecc6e4b9 - toml-merge (7.1.0) - toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-aarch64-linux) sha256=55ffc7c87868cb45658338363d9eba51b4a8b0259aa88e4de368d2bd1d52fea4 tree_sitter_language_pack (1.13.3-arm64-darwin) sha256=bc2498db605f212a1dbd2465ed3f65190d7da786f6ed5d30fcf958121aeb4a5c tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 - typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 - yaml-merge (7.1.0) yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd @@ -868,7 +549,6 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 - zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH diff --git a/gems/rbs-merge/Rakefile b/gems/rbs-merge/Rakefile index bd4e18e2d..34f8ffe21 100644 --- a/gems/rbs-merge/Rakefile +++ b/gems/rbs-merge/Rakefile @@ -130,23 +130,23 @@ end ### DUPLICATE DRIFT TASKS begin - require 'kettle/drift' + require "kettle/drift" Kettle::Drift.install_tasks rescue LoadError - desc('(stub) kettle:drift:check is unavailable') - task('kettle:drift:check') do + desc("(stub) kettle:drift:check is unavailable") + task("kettle:drift:check") do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc('(stub) kettle:drift:update is unavailable') - task('kettle:drift:update') do + desc("(stub) kettle:drift:update is unavailable") + task("kettle:drift:update") do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc('(stub) kettle:drift:force_update is unavailable') - task('kettle:drift:force_update') do + desc("(stub) kettle:drift:force_update is unavailable") + task("kettle:drift:force_update") do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc('(stub) kettle:drift is unavailable') - task('kettle:drift' => 'kettle:drift:update') + desc("(stub) kettle:drift is unavailable") + task("kettle:drift" => "kettle:drift:update") end ### TEMPLATING TASKS diff --git a/gems/rbs-merge/lib/rbs/merge/version.rb b/gems/rbs-merge/lib/rbs/merge/version.rb index a96a21ddc..8e09fbec5 100644 --- a/gems/rbs-merge/lib/rbs/merge/version.rb +++ b/gems/rbs-merge/lib/rbs/merge/version.rb @@ -3,7 +3,7 @@ module Rbs module Merge module Version - VERSION = '7.1.0' + VERSION = "7.1.0" end VERSION = Version::VERSION # Traditional Constant Location end From 1ffedbfde1d5414691c3f11686ffa940a37f501f Mon Sep 17 00:00:00 2001 From: "Peter H. Boling" Date: Tue, 21 Jul 2026 13:53:11 -0600 Subject: [PATCH 127/188] =?UTF-8?q?=F0=9F=8E=A8=20Template=20bootstrap=20b?= =?UTF-8?q?y=20kettle-jem=20v7.1.0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Gemfile.lock | 4 +- gems/ast-merge/Gemfile.lock | 333 +++++++++++++++- gems/dotenv-merge/.kettle-drift.lock | 9 - gems/dotenv-merge/.rubocop_gradual.lock | 27 +- gems/dotenv-merge/Gemfile | 70 ++-- gems/dotenv-merge/Gemfile.lock | 191 ++++++---- gems/dotenv-merge/README.md | 4 +- gems/dotenv-merge/Rakefile | 18 +- gems/dotenv-merge/dotenv-merge.gemspec | 6 +- .../gemfiles/modular/cgi/r4/v0.5.gemfile | 1 + .../gemfiles/modular/cgi/vHEAD.gemfile | 1 + .../gemfiles/modular/coverage.gemfile | 2 +- .../gemfiles/modular/coverage_local.gemfile | 24 +- .../gemfiles/modular/documentation.gemfile | 12 +- .../modular/documentation_local.gemfile | 26 +- .../gemfiles/modular/erb/r3/v5.0.gemfile | 2 +- .../gemfiles/modular/erb/r4/v5.0.gemfile | 2 +- .../modular/json/truffleruby_22_3.gemfile | 6 + .../modular/json/truffleruby_23_0.gemfile | 6 + .../modular/json/truffleruby_23_1.gemfile | 6 + .../gemfiles/modular/optional.gemfile | 3 +- .../gemfiles/modular/runtime_heads.gemfile | 5 +- .../gemfiles/modular/style.gemfile | 23 +- .../gemfiles/modular/style_local.gemfile | 30 +- .../gemfiles/modular/templating.gemfile | 4 +- .../gemfiles/modular/templating_local.gemfile | 22 +- .../gemfiles/modular/webrick/r4/v1.9.gemfile | 1 + .../gemfiles/modular/webrick/vHEAD.gemfile | 1 + .../modular/x_std_libs/r4/libs.gemfile | 2 + .../gemfiles/modular/x_std_libs/vHEAD.gemfile | 2 + gems/dotenv-merge/lib/dotenv/merge/version.rb | 2 +- gems/html-merge/.github/workflows/main.yml | 4 +- gems/html-merge/Gemfile | 55 +++ gems/html-merge/Gemfile.lock | 64 ++-- .../gemfiles/modular/templating.gemfile | 2 +- gems/rbs-merge/Gemfile.lock | 32 +- gems/rbs-merge/README.md | 5 +- .../modular/benchmark/r4/v0.5.gemfile | 2 +- .../gemfiles/modular/benchmark/vHEAD.gemfile | 2 +- .../gemfiles/modular/cgi/r4/v0.5.gemfile | 1 + .../gemfiles/modular/cgi/vHEAD.gemfile | 1 + .../gemfiles/modular/coverage.gemfile | 6 +- .../gemfiles/modular/coverage_local.gemfile | 48 ++- gems/rbs-merge/gemfiles/modular/debug.gemfile | 4 +- .../gemfiles/modular/documentation.gemfile | 24 +- .../modular/documentation_local.gemfile | 38 +- .../gemfiles/modular/erb/r2/v3.0.gemfile | 2 +- .../gemfiles/modular/erb/r3/v5.0.gemfile | 2 +- .../gemfiles/modular/erb/r4/v5.0.gemfile | 2 +- .../gemfiles/modular/erb/vHEAD.gemfile | 2 +- .../modular/json/truffleruby_22_3.gemfile | 6 + .../modular/json/truffleruby_23_0.gemfile | 6 + .../modular/json/truffleruby_23_1.gemfile | 6 + .../gemfiles/modular/mutex_m/r2/v0.3.gemfile | 2 +- .../gemfiles/modular/mutex_m/r3/v0.3.gemfile | 2 +- .../gemfiles/modular/mutex_m/r4/v0.3.gemfile | 2 +- .../gemfiles/modular/mutex_m/vHEAD.gemfile | 2 +- .../gemfiles/modular/optional.gemfile | 8 +- gems/rbs-merge/gemfiles/modular/rspec.gemfile | 8 +- .../gemfiles/modular/runtime_heads.gemfile | 7 +- .../gemfiles/modular/stringio/r2/v3.0.gemfile | 2 +- .../gemfiles/modular/stringio/r3/v3.0.gemfile | 2 +- .../gemfiles/modular/stringio/r4/v3.0.gemfile | 2 +- .../gemfiles/modular/stringio/vHEAD.gemfile | 2 +- gems/rbs-merge/gemfiles/modular/style.gemfile | 29 +- .../gemfiles/modular/style_local.gemfile | 44 ++- .../gemfiles/modular/templating.gemfile | 14 +- .../gemfiles/modular/templating_local.gemfile | 48 ++- .../gemfiles/modular/webrick/r4/v1.9.gemfile | 1 + .../gemfiles/modular/webrick/vHEAD.gemfile | 1 + .../gemfiles/modular/x_std_libs.gemfile | 14 +- .../modular/x_std_libs/r2/libs.gemfile | 6 +- .../modular/x_std_libs/r3/libs.gemfile | 6 +- .../modular/x_std_libs/r4/libs.gemfile | 10 +- .../gemfiles/modular/x_std_libs/vHEAD.gemfile | 10 +- gems/rbs-merge/rbs-merge.gemspec | 88 ++--- gems/yaml-merge/.kettle-drift.lock | 268 +------------ .../.structuredmerge/kettle-jem.yml | 53 +++ gems/yaml-merge/Gemfile | 72 +++- gems/yaml-merge/Gemfile.lock | 355 +++++++++++++++++- gems/yaml-merge/Rakefile | 18 +- gems/yaml-merge/lib/yaml/merge/version.rb | 2 +- 82 files changed, 1536 insertions(+), 701 deletions(-) create mode 100644 gems/dotenv-merge/gemfiles/modular/cgi/r4/v0.5.gemfile create mode 100644 gems/dotenv-merge/gemfiles/modular/cgi/vHEAD.gemfile create mode 100644 gems/dotenv-merge/gemfiles/modular/json/truffleruby_22_3.gemfile create mode 100644 gems/dotenv-merge/gemfiles/modular/json/truffleruby_23_0.gemfile create mode 100644 gems/dotenv-merge/gemfiles/modular/json/truffleruby_23_1.gemfile create mode 100644 gems/dotenv-merge/gemfiles/modular/webrick/r4/v1.9.gemfile create mode 100644 gems/dotenv-merge/gemfiles/modular/webrick/vHEAD.gemfile create mode 100644 gems/rbs-merge/gemfiles/modular/cgi/r4/v0.5.gemfile create mode 100644 gems/rbs-merge/gemfiles/modular/cgi/vHEAD.gemfile create mode 100644 gems/rbs-merge/gemfiles/modular/json/truffleruby_22_3.gemfile create mode 100644 gems/rbs-merge/gemfiles/modular/json/truffleruby_23_0.gemfile create mode 100644 gems/rbs-merge/gemfiles/modular/json/truffleruby_23_1.gemfile create mode 100644 gems/rbs-merge/gemfiles/modular/webrick/r4/v1.9.gemfile create mode 100644 gems/rbs-merge/gemfiles/modular/webrick/vHEAD.gemfile diff --git a/Gemfile.lock b/Gemfile.lock index ca9560454..a7a061311 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -313,7 +313,7 @@ GEM kettle-test (~> 2.0, >= 2.0.10) tsort (~> 0.2) kettle-rb (0.1.4) - kettle-test (2.0.11) + kettle-test (2.0.12) appraisal2 (~> 3.0, >= 3.0.6) backports (~> 3.0) rspec (~> 3.0) @@ -496,7 +496,7 @@ CHECKSUMS kettle-family (1.0.1) sha256=6855e944fe48d7b0d154ca0073c544db19e0a2fca246ce4aa3a804fc2b6f71f8 kettle-jem (7.1.0) kettle-rb (0.1.4) sha256=9cef7ce4f7021666b7222292f29051e51eaf042e8a5db11f3f4dd72f74243fc1 - kettle-test (2.0.11) sha256=c710c90f7ab79d51f9452f0c09f5f90657e7a893f63583855c164d0b1b107ab2 + kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa kramdown-merge (7.1.0) logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 diff --git a/gems/ast-merge/Gemfile.lock b/gems/ast-merge/Gemfile.lock index b6ded927e..dc5d8f0a2 100644 --- a/gems/ast-merge/Gemfile.lock +++ b/gems/ast-merge/Gemfile.lock @@ -8,7 +8,233 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/tree_haver + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly + specs: + ast-crispr-markdown-markly (7.1.0) + ast-crispr (= 7.1.0) + markly-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism + specs: + ast-crispr-ruby-prism (7.1.0) + ast-crispr (= 7.1.0) + prism-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr + specs: + ast-crispr (7.1.0) + ast-merge (= 7.1.0) + service_actor (~> 3.9) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git + specs: + ast-merge-git (7.1.0) + ast-merge (= 7.1.0) + json-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template + specs: + ast-template (7.1.0) + ast-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge + specs: + bash-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge + specs: + binary-merge (7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge + specs: + citrus-toml-merge (7.1.0) + toml-merge (= 7.1.0) + toml-rb (~> 4.1) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge + specs: + commonmarker-merge (7.1.0) + commonmarker (~> 2.2) + markdown-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge + specs: + dotenv-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge + specs: + go-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge + specs: + json-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem + specs: + kettle-jem (7.1.0) + addressable (>= 2.8, < 3) + ast-crispr-markdown-markly (= 7.1.0) + ast-crispr-ruby-prism (= 7.1.0) + ast-merge (= 7.1.0) + bash-merge (= 7.1.0) + citrus-toml-merge (= 7.1.0) + commonmarker-merge (= 7.1.0) + dotenv-merge (= 7.1.0) + json-merge (= 7.1.0) + kettle-dev (~> 2.3, >= 2.3.5) + kettle-rb (~> 0.1, >= 0.1.4) + kramdown-merge (= 7.1.0) + markdown-merge (= 7.1.0) + markly-merge (= 7.1.0) + prism-merge (= 7.1.0) + psych-merge (= 7.1.0) + rbs (>= 3.10) + rbs-merge (= 7.1.0) + ruby-merge (= 7.1.0) + token-resolver (~> 2.0, >= 2.0.4) + toml-merge (= 7.1.0) + toml-rb (~> 4.2) + tree_haver (= 7.1.0) + yaml-merge (= 7.1.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge + specs: + kramdown-merge (7.1.0) + kramdown (~> 2.5) + markdown-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge + specs: + markdown-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge + specs: + markly-merge (7.1.0) + markdown-merge (= 7.1.0) + markly (~> 0.9) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge + specs: + parslet-toml-merge (7.1.0) + toml (~> 0.3) + toml-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge + specs: + plain-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge + specs: + prism-merge (7.1.0) + prism (~> 1.6) + ruby-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge + specs: + psych-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + yaml-merge (= 7.1.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge + specs: + rbs-merge (7.1.0) + ast-merge (= 7.1.0) + rbs (>= 3.10) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge + specs: + ruby-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge + specs: + rust-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb + specs: + smorg-rb (7.1.0) + ast-merge (= 7.1.0) + ast-merge-git (= 7.1.0) + go-merge (= 7.1.0) + json-merge (= 7.1.0) + kettle-jem (= 7.1.0) + markly-merge (= 7.1.0) + plain-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge + specs: + toml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver specs: tree_haver (7.1.0) citrus (~> 3.0) @@ -16,6 +242,29 @@ PATH tree_sitter_language_pack (>= 1.13.2, < 2.0) version_gem (~> 1.1, >= 1.1.9) +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge + specs: + typescript-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge + specs: + yaml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge + specs: + zip-merge (7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + GEM remote: https://gem.coop/ specs: @@ -40,6 +289,11 @@ GEM cgi (0.5.2) citrus (3.0.2) cmdparse (3.0.7) + commonmarker (2.9.0-aarch64-linux) + commonmarker (2.9.0-aarch64-linux-musl) + commonmarker (2.9.0-arm64-darwin) + commonmarker (2.9.0-x86_64-linux) + commonmarker (2.9.0-x86_64-linux-musl) concurrent-ruby (1.3.8) date (3.5.1) debug (1.11.1) @@ -102,6 +356,8 @@ GEM kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) + kettle-drift (1.0.6) + version_gem (~> 1.1, >= 1.1.14) kettle-rb (0.1.5) kettle-soup-cover (3.0.4) kettle-wash (~> 0.1, >= 0.1.0) @@ -130,6 +386,7 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) + markly (0.16.0) mutex_m (0.3.0) nokogiri (1.19.4-aarch64-linux-gnu) racc (~> 1.4) @@ -292,6 +549,8 @@ GEM ruby-progressbar (1.13.0) ruby_engine (2.0.3) ruby_version (1.0.3) + service_actor (3.9.4) + zeitwerk (>= 1.0) silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) @@ -346,6 +605,11 @@ GEM token-resolver (2.0.5) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.14) + toml (0.3.0) + parslet (>= 1.8.0, < 3.0.0) + toml-rb (4.2.0) + citrus (~> 3.0, > 3.0) + racc (~> 1.7) tree_sitter_language_pack (1.13.3-aarch64-linux) sorbet-runtime (~> 0.5) tree_sitter_language_pack (1.13.3-arm64-darwin) @@ -400,23 +664,45 @@ DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) appraisal2-rubocop (~> 1.0, >= 1.0.0) + ast-crispr! + ast-crispr-markdown-markly! + ast-crispr-ruby-prism! ast-merge! + ast-merge-git! + ast-template! + bash-merge! + binary-merge! bundler-audit (~> 0.9.3) cgi (~> 0.5) + citrus-toml-merge! + commonmarker-merge! debug (>= 1.1) + dotenv-merge! erb (~> 6.0, >= 6.0.6) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.0) + go-merge! irb (~> 1.17) + json-merge! kettle-dev (~> 2.0, >= 2.2.25) + kettle-drift (~> 1.0, >= 1.0.6) + kettle-jem! kettle-soup-cover (~> 3.0, >= 3.0.3) kettle-test (~> 2.0, >= 2.0.9) kramdown (~> 2.5, >= 2.5.2) + kramdown-merge! kramdown-parser-gfm (~> 1.1) + markdown-merge! + markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) + parslet-toml-merge! + plain-merge! + prism-merge! + psych-merge! rake (~> 13.0) rbs (>= 3.0) + rbs-merge! rdoc (~> 6.11) reek (~> 6.5, >= 6.5.0) require_bench (~> 1.0, >= 1.0.4) @@ -427,20 +713,27 @@ DEPENDENCIES rubocop-on-rbs (~> 2.0, >= 2.0.0) rubocop-packaging (~> 0.6, >= 0.6.0) rubocop-ruby3_2 (~> 3.0, >= 3.0.6) + ruby-merge! ruby-progressbar (~> 1.13) + rust-merge! + smorg-rb! standard (~> 1.56, >= 1.56.0) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) + toml-merge! tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) + typescript-merge! webrick (~> 1.9) yaml-converter (~> 0.2, >= 0.2.3) + yaml-merge! yard (~> 0.9, >= 0.9.45) yard-fence (~> 0.9, >= 0.9.6) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) yard-timekeeper (~> 0.2, >= 0.2.4) yard-yaml (~> 0.2, >= 0.2.3) + zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af @@ -448,20 +741,35 @@ CHECKSUMS appraisal2 (3.2.0) sha256=ccd0b767ac4060cd7af6d16747459b6990f49c39c7b4fb1f7d1146b1e97c492f appraisal2-rubocop (1.0.0) sha256=b71410fbb014befda5340605a605b7f6f3f012739baf0acc5b4351b592c3258d ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 + ast-crispr (7.1.0) + ast-crispr-markdown-markly (7.1.0) + ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) + ast-merge-git (7.1.0) + ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 + bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd + binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 + citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 + commonmarker (2.9.0-aarch64-linux) sha256=e2b4aadb9a2cfa4e206582641ce3a49465549ac1ed4c289fdd63b78d8f24579c + commonmarker (2.9.0-aarch64-linux-musl) sha256=1cf4d2821f2a7e64945f1ed7c4eeced586fdb27ea7fe7337788802cf8f57cfca + commonmarker (2.9.0-arm64-darwin) sha256=1748dbfa4f5813b0d2a14bb4bbfa65a4ec293aa1c825016d60029ee0e132b046 + commonmarker (2.9.0-x86_64-linux) sha256=8cfe92970eef585a19ddf6613224b91cab64d6029834661bda801f877c9c7f43 + commonmarker (2.9.0-x86_64-linux-musl) sha256=293921398b839f79ceaf55010e061357e34f053822c3b003cd0be6686176335e + commonmarker-merge (7.1.0) concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 + dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -474,20 +782,28 @@ CHECKSUMS gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f + go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 + json-merge (7.1.0) kettle-dev (2.3.8) sha256=9d716ff21c660a730cb4e8d41e2e2f0630a28167a354b6e2924e242102aef72c + kettle-drift (1.0.6) sha256=46eda08fa4411d1f3c6682a95eef1c9df4e94611b3949f49d4c7b43c0ed356a3 + kettle-jem (7.1.0) kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f kettle-soup-cover (3.0.4) kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa + kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 + markdown-merge (7.1.0) + markly (0.16.0) sha256=6f70d79e385b1efc9e171f74c81628826259039fe6c778e03c3924c71dac5511 + markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-aarch64-linux-gnu) sha256=1269fb644a6de405057a53dd5c762b1209b43ca7424f839454d3dbc677c31a8f nokogiri (1.19.4-aarch64-linux-musl) sha256=35c65b9ce72b3bb03207bdbe7067915019dc18c1b9b59139684bd6690fdd01af @@ -501,15 +817,20 @@ CHECKSUMS parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 + parslet-toml-merge (7.1.0) + plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 + prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 + psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 + rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb @@ -544,15 +865,19 @@ CHECKSUMS rubocop-rspec_rails (2.32.0) sha256=4a0d641c72f6ebb957534f539d9d0a62c47abd8ce0d0aeee1ef4701e892a9100 rubocop-ruby3_2 (3.0.7) sha256=f53dd6d286fb05186214fc6ec116783e7f837030918e8931c05de773e98f8466 rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 + ruby-merge (7.1.0) ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 + rust-merge (7.1.0) + service_actor (3.9.4) sha256=e63b523630b9a7e62959b2a90113b08d2565b5de9c148557b281ef847c9539ce silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed + smorg-rb (7.1.0) sorbet-runtime (0.6.13347) sha256=54e7221d9f4b63f58aec79f3043752a9ba7810347c6ae0d903531591cc2d5f01 standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b @@ -567,17 +892,22 @@ CHECKSUMS timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.5) sha256=b852f924287ffb58a440856e862b056c8ad97e74b4b2526cee43e0771f40c25c + toml (0.3.0) sha256=0a91d0f76a9036e84e44f95693b12f58d358c1df3ac8e3b5271f2056ecc6e4b9 + toml-merge (7.1.0) + toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-aarch64-linux) sha256=55ffc7c87868cb45658338363d9eba51b4a8b0259aa88e4de368d2bd1d52fea4 tree_sitter_language_pack (1.13.3-arm64-darwin) sha256=bc2498db605f212a1dbd2465ed3f65190d7da786f6ed5d30fcf958121aeb4a5c tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 + typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 webrick (1.9.2) sha256=beb4a15fc474defed24a3bda4ffd88a490d517c9e4e6118c3edce59e45864131 yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 + yaml-merge (7.1.0) yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd @@ -585,6 +915,7 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 + zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH diff --git a/gems/dotenv-merge/.kettle-drift.lock b/gems/dotenv-merge/.kettle-drift.lock index 2ee9dae31..43dfedd67 100644 --- a/gems/dotenv-merge/.kettle-drift.lock +++ b/gems/dotenv-merge/.kettle-drift.lock @@ -52,14 +52,5 @@ 88 ] } - ], - "vendored_gems_env: 'VENDORED_GEMS',\nvendor_gem_dir_env: 'VENDOR_GEM_DIR',": [ - { - "file": "gemfiles/modular/templating_local.gemfile", - "lines": [ - 55, - 66 - ] - } ] } diff --git a/gems/dotenv-merge/.rubocop_gradual.lock b/gems/dotenv-merge/.rubocop_gradual.lock index 861a42a39..cf1f39843 100644 --- a/gems/dotenv-merge/.rubocop_gradual.lock +++ b/gems/dotenv-merge/.rubocop_gradual.lock @@ -8,9 +8,10 @@ [163, 121, 22, "Layout/LineLength: Line is too long. [142/120]", 1367093088], [166, 121, 18, "Layout/LineLength: Line is too long. [138/120]", 3881946477] ], - "dotenv-merge.gemspec:3219964147": [ + "dotenv-merge.gemspec:588032134": [ [125, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 2821357214], - [133, 121, 29, "Layout/LineLength: Line is too long. [149/120]", 981994949] + [136, 121, 50, "Layout/LineLength: Line is too long. [170/120]", 3888612416], + [137, 121, 29, "Layout/LineLength: Line is too long. [149/120]", 981994949] ], "gemfiles/modular/benchmark/r4/v0.5.gemfile:3644720371": [ [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] @@ -19,13 +20,20 @@ [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] ], + "gemfiles/modular/cgi/r4/v0.5.gemfile:367169322": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/cgi/vHEAD.gemfile:2729540777": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], "gemfiles/modular/erb/r2/v3.0.gemfile:1688285565": [ [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] ], - "gemfiles/modular/erb/r3/v5.0.gemfile:2150258305": [ + "gemfiles/modular/erb/r3/v5.0.gemfile:2394062339": [ [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] ], - "gemfiles/modular/erb/r4/v5.0.gemfile:2150258305": [ + "gemfiles/modular/erb/r4/v5.0.gemfile:2394062339": [ [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] ], "gemfiles/modular/erb/vHEAD.gemfile:981929959": [ @@ -61,6 +69,13 @@ [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] ], + "gemfiles/modular/webrick/r4/v1.9.gemfile:3092661193": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/webrick/vHEAD.gemfile:3867684682": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], "gemfiles/modular/x_std_libs.gemfile:2324400122": [ [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] ], @@ -70,10 +85,10 @@ "gemfiles/modular/x_std_libs/r3/libs.gemfile:4030570297": [ [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] ], - "gemfiles/modular/x_std_libs/r4/libs.gemfile:909736663": [ + "gemfiles/modular/x_std_libs/r4/libs.gemfile:732451732": [ [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] ], - "gemfiles/modular/x_std_libs/vHEAD.gemfile:907917303": [ + "gemfiles/modular/x_std_libs/vHEAD.gemfile:2390363993": [ [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] ], diff --git a/gems/dotenv-merge/Gemfile b/gems/dotenv-merge/Gemfile index 0d90044b7..9d53d9366 100644 --- a/gems/dotenv-merge/Gemfile +++ b/gems/dotenv-merge/Gemfile @@ -6,7 +6,7 @@ # kettle-jem will then preserve content between those markers across template runs. # kettle-jem:unfreeze -source "https://gem.coop" +source 'https://gem.coop' git_source(:codeberg) { |repo_name| "https://codeberg.org/#{repo_name}" } git_source(:gitlab) { |repo_name| "https://gitlab.com/#{repo_name}" } @@ -19,58 +19,54 @@ git_source(:gitlab) { |repo_name| "https://gitlab.com/#{repo_name}" } gemspec # Local workspace dependency wiring for *_local.gemfile overrides -nomono_requirements = ["~> 1.0", ">= 1.0.8"] -gem "nomono", *nomono_requirements, require: false # ruby >= 2.2 +nomono_requirements = ['~> 1.0', '>= 1.0.8'] +gem 'nomono', *nomono_requirements, require: false # ruby >= 2.2 # Direct sibling dependencies (env-switched via STRUCTUREDMERGE_DEV) direct_sibling_gems = %w[ ast-merge tree_haver ] -direct_sibling_dev = ENV.fetch("STRUCTUREDMERGE_DEV", "") +direct_sibling_dev = ENV.fetch('STRUCTUREDMERGE_DEV', '') direct_sibling_local = !direct_sibling_dev.empty? && !%w[false 0 no off].include?(direct_sibling_dev.downcase) -direct_sibling_templating = ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? +direct_sibling_templating = ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero?) - direct_sibling_dev_was_set = ENV.key?("STRUCTUREDMERGE_DEV") - direct_sibling_dev_original = ENV.fetch("STRUCTUREDMERGE_DEV", nil) + (direct_sibling_local || + ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) + direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') + direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) begin nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path("Gemfile.lock", __dir__) + nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == "nomono" } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - if nomono_locked - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] - end - end - Kernel.send(:gem, "nomono", *nomono_activation_requirements) - require "nomono/bundler" - if direct_sibling_templating && !direct_sibling_local - ENV["STRUCTUREDMERGE_DEV"] = File.expand_path("..", __dir__) + Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked end + Kernel.send(:gem, 'nomono', *nomono_activation_requirements) + require 'nomono/bundler' + ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local eval_nomono_gems( gems: direct_sibling_gems, - prefix: "STRUCTUREDMERGE", - path_env: "STRUCTUREDMERGE_DEV", - root: ["src", "my", "structuredmerge"] + prefix: 'STRUCTUREDMERGE', + path_env: 'STRUCTUREDMERGE_DEV', + root: %w[src my structuredmerge] ) rescue LoadError - warn "Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies." + warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' ensure if direct_sibling_templating && !direct_sibling_local if direct_sibling_dev_was_set - ENV["STRUCTUREDMERGE_DEV"] = direct_sibling_dev_original + ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original else - ENV.delete("STRUCTUREDMERGE_DEV") + ENV.delete('STRUCTUREDMERGE_DEV') end end end @@ -117,28 +113,28 @@ if direct_sibling_gems.any? && end # Use released TSLP with the Ruby ABI platform-gem fix. -gem "tree_sitter_language_pack", "~> 1.13", ">= 1.13.3" +gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' # Templating (env-switched: STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local paths) -eval_gemfile "gemfiles/modular/templating.gemfile" if ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? +eval_gemfile 'gemfiles/modular/templating.gemfile' if ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? # Debugging -eval_gemfile "gemfiles/modular/debug.gemfile" +eval_gemfile 'gemfiles/modular/debug.gemfile' # Code Coverage (env-switched: KETTLE_DEV_DEV=true for local paths) -eval_gemfile "gemfiles/modular/coverage.gemfile" +eval_gemfile 'gemfiles/modular/coverage.gemfile' # Linting -eval_gemfile "gemfiles/modular/style.gemfile" +eval_gemfile 'gemfiles/modular/style.gemfile' # Documentation -eval_gemfile "gemfiles/modular/documentation.gemfile" +eval_gemfile 'gemfiles/modular/documentation.gemfile' # Optional -eval_gemfile "gemfiles/modular/optional.gemfile" +eval_gemfile 'gemfiles/modular/optional.gemfile' ### Std Lib Extracted Gems -eval_gemfile "gemfiles/modular/x_std_libs.gemfile" +eval_gemfile 'gemfiles/modular/x_std_libs.gemfile' # See unlocked_deps appraisal for more details on irb inclusion -gem "irb", "~> 1.17" # ruby >= 2.7 +gem 'irb', '~> 1.17' # ruby >= 2.7 diff --git a/gems/dotenv-merge/Gemfile.lock b/gems/dotenv-merge/Gemfile.lock index ebf1b62ec..ed1c86be9 100644 --- a/gems/dotenv-merge/Gemfile.lock +++ b/gems/dotenv-merge/Gemfile.lock @@ -6,6 +6,24 @@ PATH tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.14) +PATH + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/ast-merge + specs: + ast-merge (7.1.0) + benchmark + token-resolver (~> 2.0, >= 2.0.4) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/tree_haver + specs: + tree_haver (7.1.0) + citrus (~> 3.0) + parslet (~> 2.0) + tree_sitter_language_pack (>= 1.13.2, < 2.0) + version_gem (~> 1.1, >= 1.1.9) + GEM remote: https://gem.coop/ specs: @@ -16,18 +34,18 @@ GEM bundler (>= 1.17.3) rake (>= 10) thor (>= 0.14) + appraisal2-rubocop (1.0.0) + appraisal2 (>= 3.1.4) + rubocop (>= 1.0) + version_gem (~> 1.1, >= 1.1.14) ast (2.4.3) - ast-merge (7.1.0) - benchmark - token-resolver (~> 2.0, >= 2.0.4) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) backports (3.25.3) benchmark (0.5.0) bigdecimal (4.1.2) bundler-audit (0.9.3) bundler (>= 1.2.0) thor (~> 1.0) + cgi (0.5.2) citrus (3.0.2) cmdparse (3.0.7) concurrent-ruby (1.3.8) @@ -38,7 +56,6 @@ GEM delegate (0.6.1) diff-lcs (1.6.2) diffy (3.4.4) - docile (1.4.1) dry-configurable (1.4.0) dry-core (~> 1.0) zeitwerk (~> 2.6) @@ -69,7 +86,7 @@ GEM dry-logic (~> 1.4) zeitwerk (~> 2.6) emoji_regex (15.0.0) - erb (6.0.5) + erb (6.0.6) gem_bench (2.0.5) bundler (>= 1.14) version_gem (~> 1.1, >= 1.1.4) @@ -88,22 +105,20 @@ GEM rdoc (>= 4.0.0) reline (>= 0.4.2) json (2.21.1) - kettle-dev (2.3.7) + kettle-dev (2.3.8) emoji_regex (>= 15.0) kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) - kettle-rb (0.1.4) - kettle-soup-cover (1.1.3) - simplecov (~> 0.22) - simplecov-cobertura (~> 3.0) - simplecov-console (~> 0.9, >= 0.9.3) - simplecov-html (~> 0.13, >= 0.13.1) - simplecov-lcov (~> 0.8) + kettle-rb (0.1.5) + kettle-soup-cover (3.0.4) + kettle-wash (~> 0.1, >= 0.1.0) + simplecov (>= 1.0) + simplecov-cobertura (>= 4.0) + simplecov-console (~> 0.9, >= 0.9.5) simplecov-rcov (~> 0.3, >= 0.3.7) - simplecov_json_formatter (~> 0.1, >= 0.1.4) - version_gem (~> 1.1, >= 1.1.9) - kettle-test (2.0.11) + simplecov_lcov_formatter (~> 0.9, >= 0.9.0) + kettle-test (2.0.12) appraisal2 (~> 3.0, >= 3.0.6) backports (~> 3.0) rspec (~> 3.0) @@ -114,6 +129,8 @@ GEM silent_stream (~> 1.0, >= 1.0.12) timecop-rspec (~> 1.0, >= 1.0.3) turbo_tests2 (~> 3.1, >= 3.1.12) + kettle-wash (0.1.1) + version_gem (~> 1.1, >= 1.1.14) kramdown (2.5.2) rexml (>= 3.4.4) kramdown-parser-gfm (1.1.0) @@ -208,6 +225,14 @@ GEM rubocop-ast (1.50.0) parser (>= 3.3.7.2) prism (~> 1.7) + rubocop-capybara (2.23.0) + lint_roller (~> 1.1) + rubocop (~> 1.81) + rubocop-env (0.1.0) + rubocop + rubocop-factory_bot (2.28.0) + lint_roller (~> 1.1) + rubocop (~> 1.72, >= 1.72.1) rubocop-gradual (0.4.0) benchmark diff-lcs (>= 1.2.0, < 2.0) @@ -215,13 +240,26 @@ GEM parallel (~> 1.10) rainbow (>= 2.2.2, < 4.0) rubocop (~> 1.0) - rubocop-lts (24.1.0) - rubocop-ruby3_2 (>= 3.0.0, < 4) - standard-rubocop-lts (>= 2.0.2, < 3) - version_gem (>= 1.1.2, < 3) + rubocop-lts (24.2.2) + rubocop-ruby3_2 (~> 3.0, >= 3.0.1) + standard-rubocop-lts (~> 2.0, >= 2.0.3) + version_gem (~> 1.1, >= 1.1.13) + rubocop-lts-rspec (1.0.5) + rubocop (~> 1.84, >= 1.84.2) + rubocop-env (~> 0.1, >= 0.1.0) + rubocop-factory_bot (~> 2.28, >= 2.28.0) + rubocop-rspec (~> 3.9, >= 3.9.0) + rubocop-rspec-extra (~> 0.3, >= 0.3.0) + standard (~> 1.54, >= 1.54.0) + standard-rspec (~> 0.5, >= 0.5.0) + version_gem (~> 1.1, >= 1.1.13) rubocop-md (2.0.4) lint_roller (~> 1.1) rubocop (>= 1.72.1) + rubocop-minitest (0.40.0) + lint_roller (~> 1.1) + rubocop (>= 1.75.0, < 2.0) + rubocop-ast (>= 1.38.0, < 2.0) rubocop-on-rbs (2.0.0) lint_roller (~> 1.1) rbs (~> 4.0) @@ -241,6 +279,13 @@ GEM lint_roller (~> 1.1) regexp_parser (>= 2.0) rubocop (~> 1.86, >= 1.86.2) + rubocop-rspec-extra (0.3.0) + lint_roller (~> 1.1) + rubocop (>= 1.72.1, < 2.0) + rubocop-rspec_rails (2.32.0) + lint_roller (~> 1.1) + rubocop (~> 1.72, >= 1.72.1) + rubocop-rspec (~> 3.5) rubocop-ruby3_2 (3.0.7) rubocop-gradual (~> 0.3, >= 0.3.6) rubocop-md (~> 2.0, >= 2.0.4) @@ -258,22 +303,18 @@ GEM silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) - simplecov (0.22.0) - docile (~> 1.1) - simplecov-html (~> 0.11) - simplecov_json_formatter (~> 0.1) - simplecov-cobertura (3.2.0) + simplecov (1.0.2) + simplecov-cobertura (4.0.0) rexml - simplecov (~> 0.19) + simplecov (~> 1.0) simplecov-console (0.9.5) ansi simplecov terminal-table - simplecov-html (0.13.2) - simplecov-lcov (0.9.0) simplecov-rcov (0.3.7) simplecov (>= 0.4.1) - simplecov_json_formatter (0.1.4) + simplecov_lcov_formatter (0.9.0) + simplecov (>= 0.18) sorbet-runtime (0.6.13347) standard (1.56.0) language_server-protocol (~> 3.17.0.2) @@ -287,6 +328,12 @@ GEM standard-performance (1.9.0) lint_roller (~> 1.1) rubocop-performance (~> 1.26.0) + standard-rspec (0.5.0) + lint_roller (>= 1.0) + rubocop-capybara (~> 2.23) + rubocop-factory_bot (~> 2.27) + rubocop-rspec (~> 3.9) + rubocop-rspec_rails (~> 2.31) standard-rubocop-lts (2.0.10) standard (~> 1.54, >= 1.54.0) standard-custom (~> 1.0, >= 1.0.2) @@ -304,14 +351,9 @@ GEM delegate (~> 0.1) rspec (~> 3.0) timecop (>= 0.7, < 1) - token-resolver (2.0.4) + token-resolver (2.0.5) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.14) - tree_haver (7.1.0) - citrus (~> 3.0) - parslet (~> 2.0) - tree_sitter_language_pack (>= 1.13.2, < 2.0) - version_gem (~> 1.1, >= 1.1.9) tree_sitter_language_pack (1.13.3-aarch64-linux) sorbet-runtime (~> 0.5) tree_sitter_language_pack (1.13.3-arm64-darwin) @@ -327,6 +369,7 @@ GEM unicode-emoji (~> 4.1) unicode-emoji (4.2.0) version_gem (1.1.14) + webrick (1.9.2) yaml-converter (0.2.3) hexapdf (>= 1.8, < 2) kramdown (>= 2.4, < 3) @@ -364,55 +407,64 @@ PLATFORMS DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.2, >= 3.2.0) + appraisal2-rubocop (~> 1.0, >= 1.0.0) + ast-merge! benchmark (~> 0.5, >= 0.5.0) bundler-audit (~> 0.9.3) + cgi (~> 0.5) debug (>= 1.1) dotenv-merge! - erb (~> 6.0, >= 6.0.4) + erb (~> 6.0, >= 6.0.6) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.4) irb (~> 1.17) kettle-dev (~> 2.3, >= 2.3.7) - kettle-soup-cover (~> 1.0, >= 1.1.3) - kettle-test (~> 2.0, >= 2.0.11) - kramdown (~> 2.5, >= 2.5.1) + kettle-soup-cover (~> 3.0, >= 3.0.3) + kettle-test (~> 2.0, >= 2.0.12) + kramdown (~> 2.5, >= 2.5.2) kramdown-parser-gfm (~> 1.1) mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) rake (~> 13.0) rbs (>= 3.0) rdoc (~> 6.11) - reek (~> 6.5) + reek (~> 6.5, >= 6.5.0) require_bench (~> 1.0, >= 1.0.4) - rubocop-lts (~> 24.1.0) - rubocop-on-rbs (~> 2.0) + rubocop-gradual (~> 0.4, >= 0.4.0) + rubocop-lts (~> 24.2, >= 24.2.1) + rubocop-lts-rspec (~> 1.0, >= 1.0.5) + rubocop-minitest (~> 0.40, >= 0.40.0) + rubocop-on-rbs (~> 2.0, >= 2.0.0) rubocop-packaging (~> 0.6, >= 0.6.0) - rubocop-rspec (~> 3.6) - rubocop-ruby3_2 (~> 3.0.0) + rubocop-ruby3_2 (~> 3.0, >= 3.0.6) ruby-progressbar (~> 1.13) - standard (>= 1.50) - stone_checksums (~> 1.0, >= 1.0.6, >= 1.0.3) + standard (~> 1.56, >= 1.56.0) + stone_checksums (~> 1.0, >= 1.0.6) stringio (>= 3.0) + tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) turbo_tests2 (~> 3.2, >= 3.2.0) - yaml-converter (~> 0.1) - yard (~> 0.9, >= 0.9.44) - yard-fence (~> 0.9, >= 0.9.1) + webrick (~> 1.9) + yaml-converter (~> 0.2, >= 0.2.3) + yard (~> 0.9, >= 0.9.45) + yard-fence (~> 0.9, >= 0.9.6) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) - yard-timekeeper (~> 0.1) - yard-yaml (~> 0.1, >= 0.1.2) + yard-timekeeper (~> 0.2, >= 0.2.4) + yard-yaml (~> 0.2, >= 0.2.3) CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af ansi (1.6.0) sha256=ac9ea0c0ea8d32fb4e271348e609963ac78882f34b73836c2a02b3622e666658 appraisal2 (3.2.0) sha256=ccd0b767ac4060cd7af6d16747459b6990f49c39c7b4fb1f7d1146b1e97c492f + appraisal2-rubocop (1.0.0) sha256=b71410fbb014befda5340605a605b7f6f3f012739baf0acc5b4351b592c3258d ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 ast-merge (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 + cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 @@ -421,7 +473,6 @@ CHECKSUMS delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 - docile (1.4.1) sha256=96159be799bfa73cdb721b840e9802126e4e03dfc26863db73647204c727f21e dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 @@ -431,7 +482,7 @@ CHECKSUMS dry-schema (1.16.0) sha256=cd3aaeabc0f1af66ec82a29096d4c4fb92a0a58b9dae29a22b1bbceb78985727 dry-types (1.9.1) sha256=baebeecdb9f8395d6c9d227b62011279440943e3ef2468fe8ccc1ba11467f178 emoji_regex (15.0.0) sha256=a508b2c0bee561169564e0aec96085020c900520d335e5533fd8e78e59493829 - erb (6.0.5) sha256=858e63488cb796c9daba8b6e9ff4b3879c395022049be9a66a8e00980e612eac + erb (6.0.6) sha256=a9b24986700f5bf127c4f297c5403c3ca41b83b0a316c0cd09a096b56e644ae5 gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f @@ -439,10 +490,11 @@ CHECKSUMS io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 - kettle-dev (2.3.7) sha256=eb370113cd030d03cbe2d33b31c99858951017e5ad21a17e9ed89dc3770028ee - kettle-rb (0.1.4) sha256=9cef7ce4f7021666b7222292f29051e51eaf042e8a5db11f3f4dd72f74243fc1 - kettle-soup-cover (1.1.3) sha256=a373827da22a7131d093afd32945e5b7d7a10a01ebfdded8fd2cb8230d69c8ad - kettle-test (2.0.11) sha256=c710c90f7ab79d51f9452f0c09f5f90657e7a893f63583855c164d0b1b107ab2 + kettle-dev (2.3.8) sha256=9d716ff21c660a730cb4e8d41e2e2f0630a28167a354b6e2924e242102aef72c + kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f + kettle-soup-cover (3.0.4) + kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 + kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 @@ -487,31 +539,37 @@ CHECKSUMS rspec_junit_formatter (0.6.0) sha256=40dde674e6ae4e6cc0ff560da25497677e34fefd2338cc467a8972f602b62b15 rubocop (1.88.2) sha256=8def251c90cd955feb4daa3edc0ab56893250c4ce90ef81e6c80c03f9a939bbf rubocop-ast (1.50.0) sha256=b9ca88300da0803ee222ad20cdb30494c0a784eed06fdc35d254b06d662788db + rubocop-capybara (2.23.0) sha256=f9ea1ba3a7561ee8e88cf76fc378ce517ce5327155f305ee7b5c2500e5aee357 + rubocop-env (0.1.0) sha256=5ab9a259e71822bf514c8e900a9b68cc2f74ccc87d5493efcd03213f3068e718 + rubocop-factory_bot (2.28.0) sha256=4b17fc02124444173317e131759d195b0d762844a71a29fe8139c1105d92f0cb rubocop-gradual (0.4.0) sha256=9c7e584e6fef6c2539266a193a4572c970c22f99046fd6b0305bdde6228f96ad - rubocop-lts (24.1.0) sha256=9dcad4db2da2fe2f1f77f98c917d70e7c43eded703da14cd201d4be52a9272aa + rubocop-lts (24.2.2) sha256=be6c745e1bb61daebd6af3cc3227c60f95be9f642a080773cad7df14c5f9f174 + rubocop-lts-rspec (1.0.5) sha256=439552fd27440802cc499889e013bffa28aadc41adae5d4dfff3d984a2a809b4 rubocop-md (2.0.4) sha256=0d076b6b5e99dea2ddc928c4bd702497decb9a8400da7808091e02ebcafcfb93 + rubocop-minitest (0.40.0) sha256=353c698199115f12151144cf0b5a96f69bb9d77b660cf6536df2c4250c672a9d rubocop-on-rbs (2.0.0) sha256=ce74d1b3d5daead19f4b611623656c185821dfc9aed9c7079bb1e5d7d7c464be rubocop-packaging (0.6.0) sha256=fb92bd0fb48e6f8cdb1648d2249b0cd51c2497dcc87340132d22f01edbf558a7 rubocop-performance (1.26.1) sha256=cd19b936ff196df85829d264b522fd4f98b6c89ad271fa52744a8c11b8f71834 rubocop-rake (0.7.1) sha256=3797f2b6810c3e9df7376c26d5f44f3475eda59eb1adc38e6f62ecf027cbae4d rubocop-rspec (3.10.2) sha256=0b3e2ecc592cd10ecbf0095bb58d1e357905276e069643523cc19eb7495f65e2 + rubocop-rspec-extra (0.3.0) sha256=ee4b6484d0332a0d23c4a465eeb607e41888eb3d4ed479f850b9f5212514f787 + rubocop-rspec_rails (2.32.0) sha256=4a0d641c72f6ebb957534f539d9d0a62c47abd8ce0d0aeee1ef4701e892a9100 rubocop-ruby3_2 (3.0.7) sha256=f53dd6d286fb05186214fc6ec116783e7f837030918e8931c05de773e98f8466 rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 - simplecov (0.22.0) sha256=fe2622c7834ff23b98066bb0a854284b2729a569ac659f82621fc22ef36213a5 - simplecov-cobertura (3.2.0) sha256=70d702658677fcb20e5aceb6915ccf8bc62ff2ccd38b62b3ad5c9db5c0888740 + simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 + simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 - simplecov-html (0.13.2) sha256=bd0b8e54e7c2d7685927e8d6286466359b6f16b18cb0df47b508e8d73c777246 - simplecov-lcov (0.9.0) sha256=7a77a31e200a595ed4b0249493056efd0c920601f53d2ef135ca34ee796346cd simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc - simplecov_json_formatter (0.1.4) sha256=529418fbe8de1713ac2b2d612aa3daa56d316975d307244399fa4838c601b428 + simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed sorbet-runtime (0.6.13347) sha256=54e7221d9f4b63f58aec79f3043752a9ba7810347c6ae0d903531591cc2d5f01 standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b standard-performance (1.9.0) sha256=49483d31be448292951d80e5e67cdcb576c2502103c7b40aec6f1b6e9c88e3f2 + standard-rspec (0.5.0) sha256=64d396524a65af47f5331b423d8cdd313e0267401647bb7892489ca89dad2973 standard-rubocop-lts (2.0.10) sha256=89708a505b7d8b24d2ac399a7520fcb9e764abc2ecb4289b631b5fe0e3b76617 stone_checksums (1.0.6) sha256=c775f830513d6c6ab26e31d1a5fbecd4c4e39002663d4d9f8fa96e97990b5298 stringio (3.2.0) sha256=c37cb2e58b4ffbd33fe5cd948c05934af997b36e0b6ca6fdf43afa234cf222e1 @@ -520,7 +578,7 @@ CHECKSUMS thor (1.5.0) sha256=e3a9e55fe857e44859ce104a84675ab6e8cd59c650a49106a05f55f136425e73 timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 - token-resolver (2.0.4) sha256=33b926958f504525bba3ed511ab66fbcbf8ef30390815e931436b30f27ffcad0 + token-resolver (2.0.5) sha256=b852f924287ffb58a440856e862b056c8ad97e74b4b2526cee43e0771f40c25c tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-aarch64-linux) sha256=55ffc7c87868cb45658338363d9eba51b4a8b0259aa88e4de368d2bd1d52fea4 tree_sitter_language_pack (1.13.3-arm64-darwin) sha256=bc2498db605f212a1dbd2465ed3f65190d7da786f6ed5d30fcf958121aeb4a5c @@ -530,6 +588,7 @@ CHECKSUMS unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 + webrick (1.9.2) sha256=beb4a15fc474defed24a3bda4ffd88a490d517c9e4e6118c3edce59e45864131 yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 diff --git a/gems/dotenv-merge/README.md b/gems/dotenv-merge/README.md index 8c8d767f7..00bad96c6 100644 --- a/gems/dotenv-merge/README.md +++ b/gems/dotenv-merge/README.md @@ -72,7 +72,7 @@ File.write("merged.env", result.to_s) | Tokens to Remember | [![Gem name][⛳️name-img]][⛳️gem-name] [![Gem namespace][⛳️namespace-img]][⛳️gem-namespace] | |-------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | Works with MRI Ruby 4 | [![Ruby current Compat][💎ruby-c-i]][🚎11-c-wf]| -| Support & Community | [![Join Me on Daily.dev's RubyFriends][✉️ruby-friends-img]][✉️ruby-friends] [![Live Chat on Discord][✉️discord-invite-img-ftb]][✉️discord-invite] [![Get help from me on Upwork][👨🏼‍🏫expsup-upwork-img]][👨🏼‍🏫expsup-upwork] [![Get help from me on Codementor][👨🏼‍🏫expsup-codementor-img]][👨🏼‍🏫expsup-codementor] | +| Support & Community | [![Join Me on Daily.dev's RubyFriends][✉️ruby-friends-img]][✉️ruby-friends] [![Get help from RubyForum][✉️ruby-forum-img]][✉️ruby-forum] [![Live Chat on Discord][✉️discord-invite-img-ftb]][✉️discord-invite] [![Get help from me on Upwork][👨🏼‍🏫expsup-upwork-img]][👨🏼‍🏫expsup-upwork] [![Get help from me on Codementor][👨🏼‍🏫expsup-codementor-img]][👨🏼‍🏫expsup-codementor] | | Source | [![Source on GitLab.com][📜src-gl-img]][📜src-gl] [![Source on CodeBerg.org][📜src-cb-img]][📜src-cb] [![Source on Github.com][📜src-gh-img]][📜src-gh] [![The best SHA: dQw4w9WgXcQ!][🧮kloc-img]][🧮kloc] | | Documentation | [![Current release on RubyDoc.info][📜docs-cr-rd-img]][🚎yard-current] [![YARD on Galtzo.com][📜docs-head-rd-img]][🚎yard-head] [![Maintainer Blog][🚂maint-blog-img]][🚂maint-blog] [![GitLab Wiki][📜gl-wiki-img]][📜gl-wiki] [![GitHub Wiki][📜gh-wiki-img]][📜gh-wiki] | | Compliance | [![License: AGPL-3.0-only OR PolyForm-Small-Business-1.0.0][📄license-img]][📄license] [![Apache license compatibility: Category X][📄license-compat-img]][📄license-compat] [![📄ilo-declaration-img]][📄ilo-declaration] [![Security Policy][🔐security-img]][🔐security] [![Contributor Covenant 2.1][🪇conduct-img]][🪇conduct] [![SemVer 2.0.0][📌semver-img]][📌semver] | @@ -281,6 +281,8 @@ If none of the available licenses suit your use case, please [contact us](mailto [✉️discord-invite-img-ftb]: https://img.shields.io/discord/1373797679469170758?style=for-the-badge&logo=discord [✉️ruby-friends-img]: https://img.shields.io/badge/daily.dev-%F0%9F%92%8E_Ruby_Friends-0A0A0A?style=for-the-badge&logo=dailydotdev&logoColor=white [✉️ruby-friends]: https://app.daily.dev/squads/rubyfriends +[✉️ruby-forum-img]: https://img.shields.io/badge/RubyForum-Help-CC342D?style=for-the-badge&logo=ruby&logoColor=white +[✉️ruby-forum]: https://www.rubyforum.org/c/help/8 [✇bundle-group-pattern]: https://gist.github.com/pboling/4564780 [⛳️gem-namespace]: https://github.com/structuredmerge/structuredmerge-ruby/tree/main/gems/dotenv-merge [⛳️namespace-img]: https://img.shields.io/badge/namespace-Dotenv::Merge-3C2D2D.svg?style=square&logo=ruby&logoColor=white diff --git a/gems/dotenv-merge/Rakefile b/gems/dotenv-merge/Rakefile index 0eb280538..f9c91d66d 100644 --- a/gems/dotenv-merge/Rakefile +++ b/gems/dotenv-merge/Rakefile @@ -130,23 +130,23 @@ end ### DUPLICATE DRIFT TASKS begin - require "kettle/drift" + require 'kettle/drift' Kettle::Drift.install_tasks rescue LoadError - desc("(stub) kettle:drift:check is unavailable") - task("kettle:drift:check") do + desc('(stub) kettle:drift:check is unavailable') + task('kettle:drift:check') do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc("(stub) kettle:drift:update is unavailable") - task("kettle:drift:update") do + desc('(stub) kettle:drift:update is unavailable') + task('kettle:drift:update') do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc("(stub) kettle:drift:force_update is unavailable") - task("kettle:drift:force_update") do + desc('(stub) kettle:drift:force_update is unavailable') + task('kettle:drift:force_update') do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc("(stub) kettle:drift is unavailable") - task("kettle:drift" => "kettle:drift:update") + desc('(stub) kettle:drift is unavailable') + task('kettle:drift' => 'kettle:drift:update') end ### TEMPLATING TASKS diff --git a/gems/dotenv-merge/dotenv-merge.gemspec b/gems/dotenv-merge/dotenv-merge.gemspec index c57163a6e..0a1c8406a 100644 --- a/gems/dotenv-merge/dotenv-merge.gemspec +++ b/gems/dotenv-merge/dotenv-merge.gemspec @@ -123,13 +123,17 @@ Gem::Specification.new do |spec| # Testing spec.add_development_dependency('appraisal2', '~> 3.2', '>= 3.2.0') # ruby >= 1.8.7, for testing against multiple versions of dependencies - spec.add_development_dependency('kettle-test', '~> 2.0', '>= 2.0.11') # ruby >= 4.0.0 + spec.add_development_dependency('kettle-test', '~> 2.0', '>= 2.0.12') # ruby >= 4.0.0 spec.add_development_dependency('turbo_tests2', '~> 3.2', '>= 3.2.0') # ruby >= 2.4.0, default kettle-test runner # Releasing spec.add_development_dependency('ruby-progressbar', '~> 1.13') # ruby >= 0 spec.add_development_dependency('stone_checksums', '~> 1.0', '>= 1.0.6') # ruby >= 2.2.0 + # Development tasks + # The cake is a lie. erb v2.2, the oldest release, was never compatible with Ruby 2.3. + # This means we have no choice but to use the erb that shipped with Ruby 2.3 + # /opt/hostedtoolcache/Ruby/2.3.8/x64/lib/ruby/gems/2.3.0/gems/erb-2.2.2/lib/erb.rb:670:in `prepare_trim_mode': undefined method `match?' for "-":String (NoMethodError) # spec.add_development_dependency("erb", ">= 2.2") # ruby >= 2.3.0, not SemVer, old rubies get dropped in a patch. spec.add_development_dependency('gitmoji-regex', '~> 2.0', '>= 2.0.4') # ruby >= 2.4 end diff --git a/gems/dotenv-merge/gemfiles/modular/cgi/r4/v0.5.gemfile b/gems/dotenv-merge/gemfiles/modular/cgi/r4/v0.5.gemfile new file mode 100644 index 000000000..17ad97260 --- /dev/null +++ b/gems/dotenv-merge/gemfiles/modular/cgi/r4/v0.5.gemfile @@ -0,0 +1 @@ +gem 'cgi', '~> 0.5' diff --git a/gems/dotenv-merge/gemfiles/modular/cgi/vHEAD.gemfile b/gems/dotenv-merge/gemfiles/modular/cgi/vHEAD.gemfile new file mode 100644 index 000000000..650fbf033 --- /dev/null +++ b/gems/dotenv-merge/gemfiles/modular/cgi/vHEAD.gemfile @@ -0,0 +1 @@ +gem 'cgi', '>= 0.5' diff --git a/gems/dotenv-merge/gemfiles/modular/coverage.gemfile b/gems/dotenv-merge/gemfiles/modular/coverage.gemfile index f96d50954..b93014b6b 100644 --- a/gems/dotenv-merge/gemfiles/modular/coverage.gemfile +++ b/gems/dotenv-merge/gemfiles/modular/coverage.gemfile @@ -7,7 +7,7 @@ if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? # Coverage (remote/released) platform :mri do - gem 'kettle-soup-cover', '~> 1.0', '>= 1.1.3', require: false + gem 'kettle-soup-cover', '~> 3.0', '>= 3.0.3', require: false end else eval_gemfile 'coverage_local.gemfile' diff --git a/gems/dotenv-merge/gemfiles/modular/coverage_local.gemfile b/gems/dotenv-merge/gemfiles/modular/coverage_local.gemfile index 11a48eb36..de5e0061a 100644 --- a/gems/dotenv-merge/gemfiles/modular/coverage_local.gemfile +++ b/gems/dotenv-merge/gemfiles/modular/coverage_local.gemfile @@ -3,13 +3,33 @@ # Local path overrides for development. # Loaded by the associated non-local gemfile when KETTLE_DEV_DEV != "false". -require 'nomono/bundler' unless defined?(Nomono) +# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. +# Bundler records that dependency during Gemfile evaluation, but it does not +# activate that exact version before the immediate `require "nomono/bundler"`. +# If multiple compatible nomono versions are installed, RubyGems may activate +# the newest installed version while Gemfile.lock pins an older compatible one; +# Bundler then aborts with "already activated nomono X, but your Gemfile +# requires nomono Y". Prefer the locked compatible version when present, then +# activate it explicitly before requiring the Bundler DSL extension used below. +nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] +nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) +if File.file?(nomono_lockfile) + nomono_locked_spec = Bundler::LockfileParser + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } + nomono_locked = nomono_locked_spec && + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked +end +Kernel.send(:gem, 'nomono', *nomono_activation_requirements) +require 'nomono/bundler' local_gems = %w[kettle-dev kettle-test kettle-soup-cover kettle-drift] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) local_gems_to_eval = local_gems - %w[dotenv-merge] - declared_gems -# export KETTLE_DEV_DEV=/path/to/kettle-rb +# export KETTLE_DEV_DEV=/path/to/my platform :mri do eval_nomono_gems( gems: local_gems_to_eval, diff --git a/gems/dotenv-merge/gemfiles/modular/documentation.gemfile b/gems/dotenv-merge/gemfiles/modular/documentation.gemfile index dff5cc108..9d4535f12 100644 --- a/gems/dotenv-merge/gemfiles/modular/documentation.gemfile +++ b/gems/dotenv-merge/gemfiles/modular/documentation.gemfile @@ -7,17 +7,17 @@ # # Documentation -gem 'kramdown', '~> 2.5', '>= 2.5.1', require: false # Ruby >= 2.5 +gem 'kramdown', '~> 2.5', '>= 2.5.2', require: false # Ruby >= 2.5 gem 'kramdown-parser-gfm', '~> 1.1', require: false # Ruby >= 2.3 -gem 'yaml-converter', '~> 0.1', require: false # Ruby >= 3.2 -gem 'yard', '~> 0.9', '>= 0.9.44', require: false +gem 'yaml-converter', '~> 0.2', '>= 0.2.3', require: false # Ruby >= 3.2 +gem 'yard', '~> 0.9', '>= 0.9.45', require: false gem 'yard-junk', '~> 0.1', '>= 0.1.0', require: false # Ruby >= 3.1 gem 'yard-relative_markdown_links', '~> 0.6', require: false if ENV.fetch('GALTZO_FLOSS_DEV', 'false').casecmp('false').zero? - gem 'yard-fence', '~> 0.9', '>= 0.9.1', require: false # Ruby >= 3.2 - gem 'yard-timekeeper', '~> 0.1', require: false - gem 'yard-yaml', '~> 0.1', '>= 0.1.2', require: false + gem 'yard-fence', '~> 0.9', '>= 0.9.6', require: false # Ruby >= 3.2 + gem 'yard-timekeeper', '~> 0.2', '>= 0.2.4', require: false + gem 'yard-yaml', '~> 0.2', '>= 0.2.3', require: false else eval_gemfile 'documentation_local.gemfile' end diff --git a/gems/dotenv-merge/gemfiles/modular/documentation_local.gemfile b/gems/dotenv-merge/gemfiles/modular/documentation_local.gemfile index 4d4c2bd95..6217cebe2 100644 --- a/gems/dotenv-merge/gemfiles/modular/documentation_local.gemfile +++ b/gems/dotenv-merge/gemfiles/modular/documentation_local.gemfile @@ -3,13 +3,35 @@ # Local path overrides for development. # Loaded by the associated non-local gemfile when GALTZO_FLOSS_DEV != "false". -require 'nomono/bundler' unless defined?(Nomono) +# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. +# Bundler records that dependency during Gemfile evaluation, but it does not +# activate that exact version before the immediate `require "nomono/bundler"`. +# If multiple compatible nomono versions are installed, RubyGems may activate +# the newest installed version while Gemfile.lock pins an older compatible one; +# Bundler then aborts with "already activated nomono X, but your Gemfile +# requires nomono Y". Prefer the locked compatible version when present, then +# activate it explicitly before requiring the Bundler DSL extension used below. +nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] +nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) +if File.file?(nomono_lockfile) + nomono_locked_spec = Bundler::LockfileParser + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } + nomono_locked = nomono_locked_spec && + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked +end +Kernel.send(:gem, 'nomono', *nomono_activation_requirements) +require 'nomono/bundler' local_gems = %w[yard-fence yard-timekeeper yard-yaml] +declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) +local_gems_to_eval = local_gems - %w[dotenv-merge] - declared_gems # export GALTZO_FLOSS_DEV=/path/to/galtzo-floss eval_nomono_gems( - gems: local_gems, + gems: local_gems_to_eval, prefix: 'GALTZO_FLOSS', path_env: 'GALTZO_FLOSS_DEV', vendored_gems_env: 'GALTZO_FLOSS_VENDORED_GEMS', diff --git a/gems/dotenv-merge/gemfiles/modular/erb/r3/v5.0.gemfile b/gems/dotenv-merge/gemfiles/modular/erb/r3/v5.0.gemfile index 0e3bf1b97..ec7ff451f 100644 --- a/gems/dotenv-merge/gemfiles/modular/erb/r3/v5.0.gemfile +++ b/gems/dotenv-merge/gemfiles/modular/erb/r3/v5.0.gemfile @@ -1 +1 @@ -gem 'erb', '~> 6.0', '>= 6.0.4' # ruby >= 3.2.0 +gem 'erb', '~> 6.0', '>= 6.0.6' # ruby >= 3.2.0 diff --git a/gems/dotenv-merge/gemfiles/modular/erb/r4/v5.0.gemfile b/gems/dotenv-merge/gemfiles/modular/erb/r4/v5.0.gemfile index 0e3bf1b97..ec7ff451f 100644 --- a/gems/dotenv-merge/gemfiles/modular/erb/r4/v5.0.gemfile +++ b/gems/dotenv-merge/gemfiles/modular/erb/r4/v5.0.gemfile @@ -1 +1 @@ -gem 'erb', '~> 6.0', '>= 6.0.4' # ruby >= 3.2.0 +gem 'erb', '~> 6.0', '>= 6.0.6' # ruby >= 3.2.0 diff --git a/gems/dotenv-merge/gemfiles/modular/json/truffleruby_22_3.gemfile b/gems/dotenv-merge/gemfiles/modular/json/truffleruby_22_3.gemfile new file mode 100644 index 000000000..9b2f8d96a --- /dev/null +++ b/gems/dotenv-merge/gemfiles/modular/json/truffleruby_22_3.gemfile @@ -0,0 +1,6 @@ +# frozen_string_literal: true + +if RUBY_ENGINE == 'truffleruby' && RUBY_ENGINE_VERSION.start_with?('22.3') + # TruffleRuby 22.3 ships the json default gem from its emulated MRI Ruby. + gem 'json', '= 2.5.1' +end diff --git a/gems/dotenv-merge/gemfiles/modular/json/truffleruby_23_0.gemfile b/gems/dotenv-merge/gemfiles/modular/json/truffleruby_23_0.gemfile new file mode 100644 index 000000000..d787a5ef4 --- /dev/null +++ b/gems/dotenv-merge/gemfiles/modular/json/truffleruby_23_0.gemfile @@ -0,0 +1,6 @@ +# frozen_string_literal: true + +if RUBY_ENGINE == 'truffleruby' && RUBY_ENGINE_VERSION.start_with?('23.0') + # TruffleRuby 23.0 ships the json default gem from its emulated MRI Ruby. + gem 'json', '= 2.6.1' +end diff --git a/gems/dotenv-merge/gemfiles/modular/json/truffleruby_23_1.gemfile b/gems/dotenv-merge/gemfiles/modular/json/truffleruby_23_1.gemfile new file mode 100644 index 000000000..d78486b0e --- /dev/null +++ b/gems/dotenv-merge/gemfiles/modular/json/truffleruby_23_1.gemfile @@ -0,0 +1,6 @@ +# frozen_string_literal: true + +if RUBY_ENGINE == 'truffleruby' && RUBY_ENGINE_VERSION.start_with?('23.1') + # TruffleRuby 23.1 ships the json default gem from its emulated MRI Ruby. + gem 'json', '= 2.6.3' +end diff --git a/gems/dotenv-merge/gemfiles/modular/optional.gemfile b/gems/dotenv-merge/gemfiles/modular/optional.gemfile index 7893db4ec..9ea429538 100644 --- a/gems/dotenv-merge/gemfiles/modular/optional.gemfile +++ b/gems/dotenv-merge/gemfiles/modular/optional.gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -# To retain during dotenv-merge templating: +# To retain during kettle-jem templating: # kettle-jem:freeze # # ... your code # kettle-jem:unfreeze @@ -10,7 +10,6 @@ # Required for curated binstubs generated by kettle-jem install gem 'rbs', '>= 3.0', require: false # ruby >= 3.1 -gem 'stone_checksums', '~> 1.0', '>= 1.0.3', require: false # ruby >= 2.2 # Required for kettle-pre-release # URL parsing with Unicode support (falls back to URI if not available) diff --git a/gems/dotenv-merge/gemfiles/modular/runtime_heads.gemfile b/gems/dotenv-merge/gemfiles/modular/runtime_heads.gemfile index 3b75162dc..ebf17c529 100644 --- a/gems/dotenv-merge/gemfiles/modular/runtime_heads.gemfile +++ b/gems/dotenv-merge/gemfiles/modular/runtime_heads.gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -# To retain during dotenv-merge templating: +# To retain during kettle-jem templating: # kettle-jem:freeze # # ... your code # kettle-jem:unfreeze @@ -8,7 +8,4 @@ # Test against HEAD of runtime dependencies so we can proactively file bugs -# Ruby >= 2.2 -gem 'version_gem', github: 'ruby-oauth/version_gem', branch: 'main' - eval_gemfile('x_std_libs/vHEAD.gemfile') diff --git a/gems/dotenv-merge/gemfiles/modular/style.gemfile b/gems/dotenv-merge/gemfiles/modular/style.gemfile index 325fe5d0f..4dbcc02c0 100644 --- a/gems/dotenv-merge/gemfiles/modular/style.gemfile +++ b/gems/dotenv-merge/gemfiles/modular/style.gemfile @@ -1,27 +1,30 @@ # frozen_string_literal: true -# To retain during dotenv-merge templating: +# To retain during kettle-jem templating: # kettle-jem:freeze # # ... your code # kettle-jem:unfreeze # -# We run rubocop on the latest version of Ruby, -# but in support of the oldest supported version of Ruby +# Style tasks run on the latest Ruby; RuboCop-LTS selects the compatibility +# rules for the configured Ruby floor independently from task dependency floors. -gem 'reek', '~> 6.5' +gem 'reek', '~> 6.5', '>= 6.5.0' platform :mri do - gem 'rubocop-on-rbs', '~> 2.0' # ruby >= 3.2.0 + gem 'appraisal2-rubocop', '~> 1.0', '>= 1.0.0', require: false + gem 'rubocop-gradual', '~> 0.4', '>= 0.4.0' + gem 'rubocop-minitest', '~> 0.40', '>= 0.40.0' + gem 'rubocop-on-rbs', '~> 2.0', '>= 2.0.0' # ruby >= 3.2.0 # gem "rubocop", "~> 1.73", ">= 1.73.2" # constrained by standard gem 'rubocop-packaging', '~> 0.6', '>= 0.6.0' - gem 'standard', '>= 1.50' + gem 'standard', '~> 1.56', '>= 1.56.0' if ENV.fetch('RUBOCOP_LTS_LOCAL', 'false').casecmp('false').zero? - gem 'rubocop-lts', '~> 24.1.0' - # "rubocop-lts-rspec" can't add here until other gems are updated. - gem 'rubocop-rspec', '~> 3.6' - gem 'rubocop-ruby3_2', '~> 3.0.0' + declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) + gem 'rubocop-lts', '~> 24.2', '>= 24.2.1' unless declared_gems.include?('rubocop-lts') + gem 'rubocop-lts-rspec', '~> 1.0', '>= 1.0.5' unless declared_gems.include?('rubocop-lts-rspec') + gem 'rubocop-ruby3_2', '~> 3.0', '>= 3.0.6' unless declared_gems.include?('rubocop-ruby3_2') else eval_gemfile('style_local.gemfile') end diff --git a/gems/dotenv-merge/gemfiles/modular/style_local.gemfile b/gems/dotenv-merge/gemfiles/modular/style_local.gemfile index ce75bbe21..e6837f6d0 100644 --- a/gems/dotenv-merge/gemfiles/modular/style_local.gemfile +++ b/gems/dotenv-merge/gemfiles/modular/style_local.gemfile @@ -1,19 +1,41 @@ # frozen_string_literal: true -# We run rubocop on the latest version of Ruby, -# but in support of the oldest supported version of Ruby +# Style tasks run on the latest Ruby; RuboCop-LTS selects the compatibility +# rules for the configured Ruby floor independently from task dependency floors. # Local path overrides for development. # Loaded by the associated non-local gemfile when RUBOCOP_LTS_LOCAL != "false". -require 'nomono/bundler' unless defined?(Nomono) +# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. +# Bundler records that dependency during Gemfile evaluation, but it does not +# activate that exact version before the immediate `require "nomono/bundler"`. +# If multiple compatible nomono versions are installed, RubyGems may activate +# the newest installed version while Gemfile.lock pins an older compatible one; +# Bundler then aborts with "already activated nomono X, but your Gemfile +# requires nomono Y". Prefer the locked compatible version when present, then +# activate it explicitly before requiring the Bundler DSL extension used below. +nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] +nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) +if File.file?(nomono_lockfile) + nomono_locked_spec = Bundler::LockfileParser + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } + nomono_locked = nomono_locked_spec && + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked +end +Kernel.send(:gem, 'nomono', *nomono_activation_requirements) +require 'nomono/bundler' local_gems = %w[rubocop-lts rubocop-lts-rspec rubocop-ruby3_2 standard-rubocop-lts] +declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) +local_gems_to_eval = local_gems - %w[dotenv-merge] - declared_gems # export VENDORED_GEMS=rubocop-lts,rubocop-lts-rspec,rubocop-ruby3_2,standard-rubocop-lts platform :mri do eval_nomono_gems( - gems: local_gems, + gems: local_gems_to_eval, prefix: 'RUBOCOP_LTS', path_env: 'RUBOCOP_LTS_LOCAL', vendored_gems_env: 'VENDORED_GEMS', diff --git a/gems/dotenv-merge/gemfiles/modular/templating.gemfile b/gems/dotenv-merge/gemfiles/modular/templating.gemfile index 2ddc9433f..a672de184 100644 --- a/gems/dotenv-merge/gemfiles/modular/templating.gemfile +++ b/gems/dotenv-merge/gemfiles/modular/templating.gemfile @@ -12,13 +12,13 @@ end if kettle_remote # Template/plugin checks for released installs. - gem 'kettle-drift', '~> 1.0', '>= 1.0.5', require: false + gem 'kettle-drift', '~> 1.0', '>= 1.0.6', require: false end # Set STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local development with path-based dependencies. # When false (default / CI), released kettle-jem brings merge gems and parser dependencies. # Local path overrides bring the same dependencies from sibling gemspecs. # -# Set KETTLE_DEV_DEV=/path/to/kettle-rb for local development with Kettle plugin gems. +# Set KETTLE_DEV_DEV=/path/to/my for local development with Kettle plugin gems. # When false (default / CI), released Kettle plugin gems are used. eval_gemfile 'templating_local.gemfile' unless structuredmerge_remote && kettle_remote diff --git a/gems/dotenv-merge/gemfiles/modular/templating_local.gemfile b/gems/dotenv-merge/gemfiles/modular/templating_local.gemfile index 89b22b5f0..0fe97f4b6 100644 --- a/gems/dotenv-merge/gemfiles/modular/templating_local.gemfile +++ b/gems/dotenv-merge/gemfiles/modular/templating_local.gemfile @@ -4,7 +4,27 @@ # Loaded by the associated non-local gemfile when STRUCTUREDMERGE_DEV or KETTLE_DEV_DEV # is not "false". -require 'nomono/bundler' unless defined?(Nomono) +# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. +# Bundler records that dependency during Gemfile evaluation, but it does not +# activate that exact version before the immediate `require "nomono/bundler"`. +# If multiple compatible nomono versions are installed, RubyGems may activate +# the newest installed version while Gemfile.lock pins an older compatible one; +# Bundler then aborts with "already activated nomono X, but your Gemfile +# requires nomono Y". Prefer the locked compatible version when present, then +# activate it explicitly before requiring the Bundler DSL extension used below. +nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] +nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) +if File.file?(nomono_lockfile) + nomono_locked_spec = Bundler::LockfileParser + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } + nomono_locked = nomono_locked_spec && + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked +end +Kernel.send(:gem, 'nomono', *nomono_activation_requirements) +require 'nomono/bundler' structuredmerge_local_gems = %w[ tree_haver diff --git a/gems/dotenv-merge/gemfiles/modular/webrick/r4/v1.9.gemfile b/gems/dotenv-merge/gemfiles/modular/webrick/r4/v1.9.gemfile new file mode 100644 index 000000000..b1329ba84 --- /dev/null +++ b/gems/dotenv-merge/gemfiles/modular/webrick/r4/v1.9.gemfile @@ -0,0 +1 @@ +gem 'webrick', '~> 1.9' diff --git a/gems/dotenv-merge/gemfiles/modular/webrick/vHEAD.gemfile b/gems/dotenv-merge/gemfiles/modular/webrick/vHEAD.gemfile new file mode 100644 index 000000000..c7e6f81a1 --- /dev/null +++ b/gems/dotenv-merge/gemfiles/modular/webrick/vHEAD.gemfile @@ -0,0 +1 @@ +gem 'webrick', '>= 1.9' diff --git a/gems/dotenv-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile b/gems/dotenv-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile index bd4e884df..e2f6501eb 100644 --- a/gems/dotenv-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile +++ b/gems/dotenv-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile @@ -2,3 +2,5 @@ eval_gemfile '../../erb/r4/v5.0.gemfile' eval_gemfile '../../mutex_m/r4/v0.3.gemfile' eval_gemfile '../../stringio/r4/v3.0.gemfile' eval_gemfile '../../benchmark/r4/v0.5.gemfile' +eval_gemfile '../../cgi/r4/v0.5.gemfile' +eval_gemfile '../../webrick/r4/v1.9.gemfile' diff --git a/gems/dotenv-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile b/gems/dotenv-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile index 91f383c11..ab75cccf1 100644 --- a/gems/dotenv-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile +++ b/gems/dotenv-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile @@ -2,3 +2,5 @@ eval_gemfile '../erb/vHEAD.gemfile' eval_gemfile '../mutex_m/vHEAD.gemfile' eval_gemfile '../stringio/vHEAD.gemfile' eval_gemfile '../benchmark/vHEAD.gemfile' +eval_gemfile '../cgi/vHEAD.gemfile' +eval_gemfile '../webrick/vHEAD.gemfile' diff --git a/gems/dotenv-merge/lib/dotenv/merge/version.rb b/gems/dotenv-merge/lib/dotenv/merge/version.rb index d3d9f5371..7808fd0ae 100644 --- a/gems/dotenv-merge/lib/dotenv/merge/version.rb +++ b/gems/dotenv-merge/lib/dotenv/merge/version.rb @@ -3,7 +3,7 @@ module Dotenv module Merge module Version - VERSION = "7.1.0" + VERSION = '7.1.0' end VERSION = Version::VERSION # Traditional Constant Location end diff --git a/gems/html-merge/.github/workflows/main.yml b/gems/html-merge/.github/workflows/main.yml index ebd29185c..34fcca6f0 100644 --- a/gems/html-merge/.github/workflows/main.yml +++ b/gems/html-merge/.github/workflows/main.yml @@ -20,11 +20,11 @@ jobs: - '4.0.6' steps: - - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 + - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 with: persist-credentials: false - name: Set up Ruby - uses: ruby/setup-ruby@003a5c4d8d6321bd302e38f6f0ec593f77f06600 # v1.319.0 + uses: ruby/setup-ruby@a30dfa457ad68707b8b910ac3a244714b61c0626 # v1.320.0 with: ruby-version: ${{ matrix.ruby }} bundler-cache: true diff --git a/gems/html-merge/Gemfile b/gems/html-merge/Gemfile index 8e040de54..1b5444f60 100644 --- a/gems/html-merge/Gemfile +++ b/gems/html-merge/Gemfile @@ -22,6 +22,61 @@ gemspec nomono_requirements = ["~> 1.0", ">= 1.0.8"] gem "nomono", *nomono_requirements, require: false # ruby >= 2.2 +# Direct sibling dependencies (env-switched via STRUCTUREDMERGE_DEV) +direct_sibling_gems = %w[ + ast-merge + ast-crispr + tree_haver +] +direct_sibling_dev = ENV.fetch("STRUCTUREDMERGE_DEV", "") +direct_sibling_local = + !direct_sibling_dev.empty? && !%w[false 0 no off].include?(direct_sibling_dev.downcase) +direct_sibling_templating = ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? + +if direct_sibling_gems.any? && + (direct_sibling_local || + ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero?) + direct_sibling_dev_was_set = ENV.key?("STRUCTUREDMERGE_DEV") + direct_sibling_dev_original = ENV.fetch("STRUCTUREDMERGE_DEV", nil) + begin + nomono_activation_requirements = nomono_requirements + nomono_lockfile = File.expand_path("Gemfile.lock", __dir__) + if File.file?(nomono_lockfile) + nomono_locked_spec = Bundler::LockfileParser + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == "nomono" } + nomono_locked = nomono_locked_spec && + Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) + if nomono_locked + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] + end + end + Kernel.send(:gem, "nomono", *nomono_activation_requirements) + require "nomono/bundler" + if direct_sibling_templating && !direct_sibling_local + ENV["STRUCTUREDMERGE_DEV"] = File.expand_path("..", __dir__) + end + + eval_nomono_gems( + gems: direct_sibling_gems, + prefix: "STRUCTUREDMERGE", + path_env: "STRUCTUREDMERGE_DEV", + root: ["src", "my", "structuredmerge"] + ) + rescue LoadError + warn "Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies." + ensure + if direct_sibling_templating && !direct_sibling_local + if direct_sibling_dev_was_set + ENV["STRUCTUREDMERGE_DEV"] = direct_sibling_dev_original + else + ENV.delete("STRUCTUREDMERGE_DEV") + end + end + end +end + # Use released TSLP with the Ruby ABI platform-gem fix. gem "tree_sitter_language_pack", "~> 1.13", ">= 1.13.3" diff --git a/gems/html-merge/Gemfile.lock b/gems/html-merge/Gemfile.lock index 34b357c6c..a76145aab 100644 --- a/gems/html-merge/Gemfile.lock +++ b/gems/html-merge/Gemfile.lock @@ -390,7 +390,7 @@ GEM mutex_m (0.3.0) nokogiri (1.19.4-x86_64-linux-gnu) racc (~> 1.4) - nomono (1.0.8) + nomono (1.0.9) openssl (4.0.2) ostruct (0.6.3) parallel (1.28.0) @@ -556,7 +556,7 @@ GEM simplecov (>= 0.4.1) simplecov_lcov_formatter (0.9.0) simplecov (>= 0.18) - sorbet-runtime (0.6.13342) + sorbet-runtime (0.6.13347) standard (1.56.0) language_server-protocol (~> 3.17.0.2) lint_roller (~> 1.0) @@ -661,7 +661,7 @@ DEPENDENCIES html-merge! irb (~> 1.17) json-merge! - kettle-drift (~> 1.0, >= 1.0.5) + kettle-drift (~> 1.0, >= 1.0.6) kettle-jem! kettle-soup-cover (~> 3.0, >= 3.0.3) kramdown (~> 2.5, >= 2.5.2) @@ -718,7 +718,7 @@ CHECKSUMS ast-merge (7.1.0) ast-merge-git (7.1.0) ast-template (7.1.0) - backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 + backports (3.25.3) bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd @@ -727,12 +727,12 @@ CHECKSUMS citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 - commonmarker (2.9.0-x86_64-linux) sha256=8cfe92970eef585a19ddf6613224b91cab64d6029834661bda801f877c9c7f43 + commonmarker (2.9.0-x86_64-linux) commonmarker-merge (7.1.0) concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 - delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 + delegate (0.6.1) diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 dotenv-merge (7.1.0) @@ -743,7 +743,7 @@ CHECKSUMS dry-logic (1.6.0) sha256=da6fedbc0f90fc41f9b0cc7e6f05f5d529d1efaef6c8dcc8e0733f685745cea2 dry-schema (1.16.0) sha256=cd3aaeabc0f1af66ec82a29096d4c4fb92a0a58b9dae29a22b1bbceb78985727 dry-types (1.9.1) sha256=baebeecdb9f8395d6c9d227b62011279440943e3ef2468fe8ccc1ba11467f178 - emoji_regex (15.0.0) sha256=a508b2c0bee561169564e0aec96085020c900520d335e5533fd8e78e59493829 + emoji_regex (15.0.0) erb (6.0.5) sha256=858e63488cb796c9daba8b6e9ff4b3879c395022049be9a66a8e00980e612eac gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 @@ -754,12 +754,12 @@ CHECKSUMS irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 json-merge (7.1.0) - kettle-dev (2.3.8) sha256=9d716ff21c660a730cb4e8d41e2e2f0630a28167a354b6e2924e242102aef72c - kettle-drift (1.0.6) sha256=46eda08fa4411d1f3c6682a95eef1c9df4e94611b3949f49d4c7b43c0ed356a3 + kettle-dev (2.3.8) + kettle-drift (1.0.6) kettle-jem (7.1.0) - kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f + kettle-rb (0.1.5) kettle-soup-cover (3.0.3) sha256=5919649be35690e4580299a41ac7c44a9548a7ca38561ffdd3c683c9d63e6f9b - kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 + kettle-test (2.0.12) kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa kramdown-merge (7.1.0) @@ -768,15 +768,15 @@ CHECKSUMS lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 markdown-merge (7.1.0) - markly (0.16.0) sha256=6f70d79e385b1efc9e171f74c81628826259039fe6c778e03c3924c71dac5511 + markly (0.16.0) markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-x86_64-linux-gnu) sha256=379fae440b28915e3f19d752ce2dcf8465ed2b2fbefd2a7ca0dd497bc981a06a - nomono (1.0.8) sha256=bf4b9b426cbf216ab17b70db474f691b8ae1f1e29de8db4b0ecd405e6e7e1c80 + nomono (1.0.9) openssl (4.0.2) sha256=1037ad2868ae58df9ad917891c0c0f9815a1172f6846d4bcdd508e4c2ee747c2 ostruct (0.6.3) sha256=95a2ed4a4bd1d190784e666b47b2d3f078e4a9efda2fccf18f84ddc6538ed912 parallel (1.28.0) sha256=33e6de1484baf2524792d178b0913fc8eb94c628d6cfe45599ad4458c638c970 - parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c + parallel_tests (5.7.0) parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 parslet-toml-merge (7.1.0) @@ -798,15 +798,15 @@ CHECKSUMS regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb reline (0.6.3) sha256=1198b04973565b36ec0f11542ab3f5cfeeec34823f4e54cebde90968092b1835 rexml (3.4.4) sha256=19e0a2c3425dfbf2d4fc1189747bdb2f849b6c5e74180401b15734bc97b5d142 - rspec (3.13.2) sha256=206284a08ad798e61f86d7ca3e376718d52c0bc944626b2349266f239f820587 - rspec-block_is_expected (1.0.6) sha256=bbad3dc30eba93becf4dcb3fd1bff5f37f6e212ab5cbf6132c07edba6ff74282 - rspec-core (3.13.6) sha256=a8823c6411667b60a8bca135364351dda34cd55e44ff94c4be4633b37d828b2d - rspec-expectations (3.13.5) sha256=33a4d3a1d95060aea4c94e9f237030a8f9eae5615e9bd85718fe3a09e4b58836 - rspec-mocks (3.13.8) sha256=086ad3d3d17533f4237643de0b5c42f04b66348c28bf6b9c2d3f4a3b01af1d47 - rspec-pending_for (0.1.21) sha256=c87fda50c20f8faca72d9cfa6a936abffd37860343f14aced95bbb29b8ae96bf - rspec-stubbed_env (1.0.6) sha256=6467a6eb0f72146d443ffb0c5a2a549d8812e59c04fbc81e03cd914ebf1f28dc - rspec-support (3.13.7) sha256=0640e5570872aafefd79867901deeeeb40b0c9875a36b983d85f54fb7381c47c - rspec_junit_formatter (0.6.0) sha256=40dde674e6ae4e6cc0ff560da25497677e34fefd2338cc467a8972f602b62b15 + rspec (3.13.2) + rspec-block_is_expected (1.0.6) + rspec-core (3.13.6) + rspec-expectations (3.13.5) + rspec-mocks (3.13.8) + rspec-pending_for (0.1.21) + rspec-stubbed_env (1.0.6) + rspec-support (3.13.7) + rspec_junit_formatter (0.6.0) rubocop (1.88.2) sha256=8def251c90cd955feb4daa3edc0ab56893250c4ce90ef81e6c80c03f9a939bbf rubocop-ast (1.50.0) sha256=b9ca88300da0803ee222ad20cdb30494c0a784eed06fdc35d254b06d662788db rubocop-capybara (2.23.0) sha256=f9ea1ba3a7561ee8e88cf76fc378ce517ce5327155f305ee7b5c2500e5aee357 @@ -828,18 +828,18 @@ CHECKSUMS rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 ruby-merge (7.1.0) ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 - ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa - ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 + ruby_engine (2.0.3) + ruby_version (1.0.3) rust-merge (7.1.0) service_actor (3.9.4) sha256=e63b523630b9a7e62959b2a90113b08d2565b5de9c148557b281ef847c9539ce - silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 + silent_stream (1.0.12) simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed smorg-rb (7.1.0) - sorbet-runtime (0.6.13342) sha256=dbeb9892597f593ed2b29e38018912787f6c4e0c4b736d8af0d6bd3c63bde3c3 + sorbet-runtime (0.6.13347) sha256=54e7221d9f4b63f58aec79f3043752a9ba7810347c6ae0d903531591cc2d5f01 standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b standard-performance (1.9.0) sha256=49483d31be448292951d80e5e67cdcb576c2502103c7b40aec6f1b6e9c88e3f2 @@ -849,16 +849,16 @@ CHECKSUMS strscan (3.1.8) sha256=aae2db611a225559f21ffbb71765c9a4e60fd262534a9ea84f4f11c7f32f679e terminal-table (4.0.0) sha256=f504793203f8251b2ea7c7068333053f0beeea26093ec9962e62ea79f94301d2 thor (1.5.0) sha256=e3a9e55fe857e44859ce104a84675ab6e8cd59c650a49106a05f55f136425e73 - timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 - timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 + timecop (0.9.11) + timecop-rspec (1.0.3) token-resolver (2.0.5) sha256=b852f924287ffb58a440856e862b056c8ad97e74b4b2526cee43e0771f40c25c - toml (0.3.0) sha256=0a91d0f76a9036e84e44f95693b12f58d358c1df3ac8e3b5271f2056ecc6e4b9 + toml (0.3.0) toml-merge (7.1.0) - toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 + toml-rb (4.2.0) tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f - turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 + turbo_tests2 (3.2.0) typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f diff --git a/gems/html-merge/gemfiles/modular/templating.gemfile b/gems/html-merge/gemfiles/modular/templating.gemfile index cf5529f88..47138ffbb 100644 --- a/gems/html-merge/gemfiles/modular/templating.gemfile +++ b/gems/html-merge/gemfiles/modular/templating.gemfile @@ -12,7 +12,7 @@ end if kettle_remote # Template/plugin checks for released installs. - gem "kettle-drift", "~> 1.0", ">= 1.0.5", require: false + gem "kettle-drift", "~> 1.0", ">= 1.0.6", require: false end # Set STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local development with path-based dependencies. diff --git a/gems/rbs-merge/Gemfile.lock b/gems/rbs-merge/Gemfile.lock index 3627aade6..924c3d39f 100644 --- a/gems/rbs-merge/Gemfile.lock +++ b/gems/rbs-merge/Gemfile.lock @@ -7,24 +7,6 @@ PATH tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.14) -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge - specs: - ast-merge (7.1.0) - benchmark - token-resolver (~> 2.0, >= 2.0.4) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver - specs: - tree_haver (7.1.0) - citrus (~> 3.0) - parslet (~> 2.0) - tree_sitter_language_pack (>= 1.13.2, < 2.0) - version_gem (~> 1.1, >= 1.1.9) - GEM remote: https://gem.coop/ specs: @@ -36,6 +18,11 @@ GEM rake (>= 10) thor (>= 0.14) ast (2.4.3) + ast-merge (7.1.0) + benchmark + token-resolver (~> 2.0, >= 2.0.4) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) backports (3.25.3) benchmark (0.5.0) bigdecimal (4.1.2) @@ -320,7 +307,12 @@ GEM timecop (>= 0.7, < 1) token-resolver (2.0.4) parslet (~> 2.0) - version_gem (~> 1.1, >= 1.1.13) + version_gem (~> 1.1, >= 1.1.14) + tree_haver (7.1.0) + citrus (~> 3.0) + parslet (~> 2.0) + tree_sitter_language_pack (>= 1.13.2, < 2.0) + version_gem (~> 1.1, >= 1.1.9) tree_sitter_language_pack (1.13.3-aarch64-linux) sorbet-runtime (~> 0.5) tree_sitter_language_pack (1.13.3-arm64-darwin) @@ -373,7 +365,6 @@ PLATFORMS DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.2, >= 3.2.0) - ast-merge! benchmark (~> 0.5, >= 0.5.0) bundler-audit (~> 0.9.3) debug (>= 1.1) @@ -403,7 +394,6 @@ DEPENDENCIES standard (>= 1.50) stone_checksums (~> 1.0, >= 1.0.6, >= 1.0.3) stringio (>= 3.0) - tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) turbo_tests2 (~> 3.2, >= 3.2.0) yaml-converter (~> 0.1) diff --git a/gems/rbs-merge/README.md b/gems/rbs-merge/README.md index ead0396ae..c67cd6de6 100644 --- a/gems/rbs-merge/README.md +++ b/gems/rbs-merge/README.md @@ -83,7 +83,7 @@ File.write("merged.rbs", result.to_s) | Tokens to Remember | [![Gem name][⛳️name-img]][⛳️gem-name] [![Gem namespace][⛳️namespace-img]][⛳️gem-namespace] | |-------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | Works with MRI Ruby 4 | [![Ruby current Compat][💎ruby-c-i]][🚎11-c-wf]| -| Support & Community | [![Join Me on Daily.dev's RubyFriends][✉️ruby-friends-img]][✉️ruby-friends] [![Live Chat on Discord][✉️discord-invite-img-ftb]][✉️discord-invite] [![Get help from me on Upwork][👨🏼‍🏫expsup-upwork-img]][👨🏼‍🏫expsup-upwork] [![Get help from me on Codementor][👨🏼‍🏫expsup-codementor-img]][👨🏼‍🏫expsup-codementor] | +| Support & Community | [![Join Me on Daily.dev's RubyFriends][✉️ruby-friends-img]][✉️ruby-friends] [![Get help from RubyForum][✉️ruby-forum-img]][✉️ruby-forum] [![Live Chat on Discord][✉️discord-invite-img-ftb]][✉️discord-invite] [![Get help from me on Upwork][👨🏼‍🏫expsup-upwork-img]][👨🏼‍🏫expsup-upwork] [![Get help from me on Codementor][👨🏼‍🏫expsup-codementor-img]][👨🏼‍🏫expsup-codementor] | | Source | [![Source on GitLab.com][📜src-gl-img]][📜src-gl] [![Source on CodeBerg.org][📜src-cb-img]][📜src-cb] [![Source on Github.com][📜src-gh-img]][📜src-gh] [![The best SHA: dQw4w9WgXcQ!][🧮kloc-img]][🧮kloc] | | Documentation | [![Current release on RubyDoc.info][📜docs-cr-rd-img]][🚎yard-current] [![YARD on Galtzo.com][📜docs-head-rd-img]][🚎yard-head] [![Maintainer Blog][🚂maint-blog-img]][🚂maint-blog] [![GitLab Wiki][📜gl-wiki-img]][📜gl-wiki] [![GitHub Wiki][📜gh-wiki-img]][📜gh-wiki] | | Compliance | [![License: AGPL-3.0-only OR PolyForm-Small-Business-1.0.0][📄license-img]][📄license] [![Apache license compatibility: Category X][📄license-compat-img]][📄license-compat] [![📄ilo-declaration-img]][📄ilo-declaration] [![Security Policy][🔐security-img]][🔐security] [![Contributor Covenant 2.1][🪇conduct-img]][🪇conduct] [![SemVer 2.0.0][📌semver-img]][📌semver] | @@ -503,6 +503,8 @@ If none of the available licenses suit your use case, please [contact us](mailto [✉️discord-invite-img-ftb]: https://img.shields.io/discord/1373797679469170758?style=for-the-badge&logo=discord [✉️ruby-friends-img]: https://img.shields.io/badge/daily.dev-%F0%9F%92%8E_Ruby_Friends-0A0A0A?style=for-the-badge&logo=dailydotdev&logoColor=white [✉️ruby-friends]: https://app.daily.dev/squads/rubyfriends +[✉️ruby-forum-img]: https://img.shields.io/badge/RubyForum-Help-CC342D?style=for-the-badge&logo=ruby&logoColor=white +[✉️ruby-forum]: https://www.rubyforum.org/c/help/8 [✇bundle-group-pattern]: https://gist.github.com/pboling/4564780 [⛳️gem-namespace]: https://github.com/structuredmerge/structuredmerge-ruby/tree/main/gems/rbs-merge [⛳️namespace-img]: https://img.shields.io/badge/namespace-Rbs::Merge-3C2D2D.svg?style=square&logo=ruby&logoColor=white @@ -573,6 +575,7 @@ If none of the available licenses suit your use case, please [contact us](mailto [🖐contrib-rocks]: https://contrib.rocks [🖐contributors]: https://github.com/structuredmerge/structuredmerge-ruby/graphs/contributors [🖐contributors-img]: https://contrib.rocks/image?repo=structuredmerge/structuredmerge-ruby +[🚎contributors-gl]: https://gitlab.com/structuredmerge/structuredmerge-ruby/-/graphs/main [🪇conduct]: https://github.com/structuredmerge/structuredmerge-ruby/blob/main/CODE_OF_CONDUCT.md [🪇conduct-img]: https://img.shields.io/badge/Contributor_Covenant-2.1-259D6C.svg [📌pvc]: http://guides.rubygems.org/patterns/#pessimistic-version-constraint diff --git a/gems/rbs-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile b/gems/rbs-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile index b8392fab0..dec650815 100644 --- a/gems/rbs-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile +++ b/gems/rbs-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.1 -gem 'benchmark', '~> 0.5', '>= 0.5.0' # Removed from Std Lib in Ruby 4.0 +gem "benchmark", "~> 0.5", ">= 0.5.0" # Removed from Std Lib in Ruby 4.0 diff --git a/gems/rbs-merge/gemfiles/modular/benchmark/vHEAD.gemfile b/gems/rbs-merge/gemfiles/modular/benchmark/vHEAD.gemfile index af214aafa..e1eb20c5e 100644 --- a/gems/rbs-merge/gemfiles/modular/benchmark/vHEAD.gemfile +++ b/gems/rbs-merge/gemfiles/modular/benchmark/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.1 -gem 'benchmark', github: 'ruby/benchmark', branch: 'master' +gem "benchmark", github: "ruby/benchmark", branch: "master" diff --git a/gems/rbs-merge/gemfiles/modular/cgi/r4/v0.5.gemfile b/gems/rbs-merge/gemfiles/modular/cgi/r4/v0.5.gemfile new file mode 100644 index 000000000..19ed967c3 --- /dev/null +++ b/gems/rbs-merge/gemfiles/modular/cgi/r4/v0.5.gemfile @@ -0,0 +1 @@ +gem "cgi", "~> 0.5" diff --git a/gems/rbs-merge/gemfiles/modular/cgi/vHEAD.gemfile b/gems/rbs-merge/gemfiles/modular/cgi/vHEAD.gemfile new file mode 100644 index 000000000..ef8b816ce --- /dev/null +++ b/gems/rbs-merge/gemfiles/modular/cgi/vHEAD.gemfile @@ -0,0 +1 @@ +gem "cgi", ">= 0.5" diff --git a/gems/rbs-merge/gemfiles/modular/coverage.gemfile b/gems/rbs-merge/gemfiles/modular/coverage.gemfile index f96d50954..52d737872 100644 --- a/gems/rbs-merge/gemfiles/modular/coverage.gemfile +++ b/gems/rbs-merge/gemfiles/modular/coverage.gemfile @@ -4,11 +4,11 @@ # Set KETTLE_DEV_DEV=true for local development with path-based dependencies. # When false (default / CI), remote released gems are used. -if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? +if ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false").zero? # Coverage (remote/released) platform :mri do - gem 'kettle-soup-cover', '~> 1.0', '>= 1.1.3', require: false + gem "kettle-soup-cover", "~> 3.0", ">= 3.0.3", require: false end else - eval_gemfile 'coverage_local.gemfile' + eval_gemfile "coverage_local.gemfile" end diff --git a/gems/rbs-merge/gemfiles/modular/coverage_local.gemfile b/gems/rbs-merge/gemfiles/modular/coverage_local.gemfile index 4f675c3df..17070985e 100644 --- a/gems/rbs-merge/gemfiles/modular/coverage_local.gemfile +++ b/gems/rbs-merge/gemfiles/modular/coverage_local.gemfile @@ -3,31 +3,53 @@ # Local path overrides for development. # Loaded by the associated non-local gemfile when KETTLE_DEV_DEV != "false". -require 'nomono/bundler' unless defined?(Nomono) +# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. +# Bundler records that dependency during Gemfile evaluation, but it does not +# activate that exact version before the immediate `require "nomono/bundler"`. +# If multiple compatible nomono versions are installed, RubyGems may activate +# the newest installed version while Gemfile.lock pins an older compatible one; +# Bundler then aborts with "already activated nomono X, but your Gemfile +# requires nomono Y". Prefer the locked compatible version when present, then +# activate it explicitly before requiring the Bundler DSL extension used below. +nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] +nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) +if File.file?(nomono_lockfile) + nomono_locked_spec = Bundler::LockfileParser + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == "nomono" } + nomono_locked = nomono_locked_spec && + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + if nomono_locked + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] + end +end +Kernel.send(:gem, "nomono", *nomono_activation_requirements) +require "nomono/bundler" local_gems = %w[kettle-dev kettle-test kettle-soup-cover kettle-drift] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) local_gems_to_eval = local_gems - %w[rbs-merge] - declared_gems -# export KETTLE_DEV_DEV=/path/to/kettle-rb +# export KETTLE_DEV_DEV=/path/to/my platform :mri do eval_nomono_gems( gems: local_gems_to_eval, - prefix: 'KETTLE_DEV', - path_env: 'KETTLE_DEV_DEV', - vendored_gems_env: 'VENDORED_GEMS', - vendor_gem_dir_env: 'VENDOR_GEM_DIR', - debug_env: 'KETTLE_DEV_DEBUG' + prefix: "KETTLE_DEV", + path_env: "KETTLE_DEV_DEV", + vendored_gems_env: "VENDORED_GEMS", + vendor_gem_dir_env: "VENDOR_GEM_DIR", + debug_env: "KETTLE_DEV_DEBUG" ) - if ENV.fetch('GALTZO_FLOSS_DEV', 'false').casecmp('false') != 0 + if ENV.fetch("GALTZO_FLOSS_DEV", "false").casecmp("false") != 0 eval_nomono_gems( gems: %w[turbo_tests2], - prefix: 'GALTZO_FLOSS', - path_env: 'GALTZO_FLOSS_DEV', - vendored_gems_env: 'GALTZO_FLOSS_VENDORED_GEMS', - vendor_gem_dir_env: 'GALTZO_FLOSS_VENDOR_GEM_DIR', - debug_env: 'GALTZO_FLOSS_DEBUG' + prefix: "GALTZO_FLOSS", + path_env: "GALTZO_FLOSS_DEV", + vendored_gems_env: "GALTZO_FLOSS_VENDORED_GEMS", + vendor_gem_dir_env: "GALTZO_FLOSS_VENDOR_GEM_DIR", + debug_env: "GALTZO_FLOSS_DEBUG" ) end end diff --git a/gems/rbs-merge/gemfiles/modular/debug.gemfile b/gems/rbs-merge/gemfiles/modular/debug.gemfile index eed8d4d1e..4e15b1a3a 100644 --- a/gems/rbs-merge/gemfiles/modular/debug.gemfile +++ b/gems/rbs-merge/gemfiles/modular/debug.gemfile @@ -13,10 +13,10 @@ platform :mri do # Debugging - Ensure ENV["DEBUG"] == "true" to use debuggers within spec suite # Use binding.break, binding.b, or debugger in code - gem 'debug', '>= 1.1' # ruby >= 2.7 + gem "debug", ">= 1.1" # ruby >= 2.7 # Dev Console - Binding.pry - Irb replacement # gem "pry", "~> 0.14" # ruby >= 2.0 end -gem 'gem_bench', '~> 2.0', '>= 2.0.5' +gem "gem_bench", "~> 2.0", ">= 2.0.5" diff --git a/gems/rbs-merge/gemfiles/modular/documentation.gemfile b/gems/rbs-merge/gemfiles/modular/documentation.gemfile index dff5cc108..d8215416e 100644 --- a/gems/rbs-merge/gemfiles/modular/documentation.gemfile +++ b/gems/rbs-merge/gemfiles/modular/documentation.gemfile @@ -7,20 +7,20 @@ # # Documentation -gem 'kramdown', '~> 2.5', '>= 2.5.1', require: false # Ruby >= 2.5 -gem 'kramdown-parser-gfm', '~> 1.1', require: false # Ruby >= 2.3 -gem 'yaml-converter', '~> 0.1', require: false # Ruby >= 3.2 -gem 'yard', '~> 0.9', '>= 0.9.44', require: false -gem 'yard-junk', '~> 0.1', '>= 0.1.0', require: false # Ruby >= 3.1 -gem 'yard-relative_markdown_links', '~> 0.6', require: false +gem "kramdown", "~> 2.5", ">= 2.5.2", require: false # Ruby >= 2.5 +gem "kramdown-parser-gfm", "~> 1.1", require: false # Ruby >= 2.3 +gem "yaml-converter", "~> 0.2", ">= 0.2.3", require: false # Ruby >= 3.2 +gem "yard", "~> 0.9", ">= 0.9.45", require: false +gem "yard-junk", "~> 0.1", ">= 0.1.0", require: false # Ruby >= 3.1 +gem "yard-relative_markdown_links", "~> 0.6", require: false -if ENV.fetch('GALTZO_FLOSS_DEV', 'false').casecmp('false').zero? - gem 'yard-fence', '~> 0.9', '>= 0.9.1', require: false # Ruby >= 3.2 - gem 'yard-timekeeper', '~> 0.1', require: false - gem 'yard-yaml', '~> 0.1', '>= 0.1.2', require: false +if ENV.fetch("GALTZO_FLOSS_DEV", "false").casecmp("false").zero? + gem "yard-fence", "~> 0.9", ">= 0.9.6", require: false # Ruby >= 3.2 + gem "yard-timekeeper", "~> 0.2", ">= 0.2.4", require: false + gem "yard-yaml", "~> 0.2", ">= 0.2.3", require: false else - eval_gemfile 'documentation_local.gemfile' + eval_gemfile "documentation_local.gemfile" end # Std Lib extractions -gem 'rdoc', '~> 6.11', require: false unless ENV.fetch('KJ_FRAMEWORK_MATRIX_GEM', '') == 'rdoc' +gem "rdoc", "~> 6.11", require: false unless ENV.fetch("KJ_FRAMEWORK_MATRIX_GEM", "") == "rdoc" diff --git a/gems/rbs-merge/gemfiles/modular/documentation_local.gemfile b/gems/rbs-merge/gemfiles/modular/documentation_local.gemfile index 4d4c2bd95..a8cdf0328 100644 --- a/gems/rbs-merge/gemfiles/modular/documentation_local.gemfile +++ b/gems/rbs-merge/gemfiles/modular/documentation_local.gemfile @@ -3,16 +3,40 @@ # Local path overrides for development. # Loaded by the associated non-local gemfile when GALTZO_FLOSS_DEV != "false". -require 'nomono/bundler' unless defined?(Nomono) +# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. +# Bundler records that dependency during Gemfile evaluation, but it does not +# activate that exact version before the immediate `require "nomono/bundler"`. +# If multiple compatible nomono versions are installed, RubyGems may activate +# the newest installed version while Gemfile.lock pins an older compatible one; +# Bundler then aborts with "already activated nomono X, but your Gemfile +# requires nomono Y". Prefer the locked compatible version when present, then +# activate it explicitly before requiring the Bundler DSL extension used below. +nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] +nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) +if File.file?(nomono_lockfile) + nomono_locked_spec = Bundler::LockfileParser + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == "nomono" } + nomono_locked = nomono_locked_spec && + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + if nomono_locked + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] + end +end +Kernel.send(:gem, "nomono", *nomono_activation_requirements) +require "nomono/bundler" local_gems = %w[yard-fence yard-timekeeper yard-yaml] +declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) +local_gems_to_eval = local_gems - %w[rbs-merge] - declared_gems # export GALTZO_FLOSS_DEV=/path/to/galtzo-floss eval_nomono_gems( - gems: local_gems, - prefix: 'GALTZO_FLOSS', - path_env: 'GALTZO_FLOSS_DEV', - vendored_gems_env: 'GALTZO_FLOSS_VENDORED_GEMS', - vendor_gem_dir_env: 'GALTZO_FLOSS_VENDOR_GEM_DIR', - debug_env: 'GALTZO_FLOSS_DEBUG' + gems: local_gems_to_eval, + prefix: "GALTZO_FLOSS", + path_env: "GALTZO_FLOSS_DEV", + vendored_gems_env: "GALTZO_FLOSS_VENDORED_GEMS", + vendor_gem_dir_env: "GALTZO_FLOSS_VENDOR_GEM_DIR", + debug_env: "GALTZO_FLOSS_DEBUG" ) diff --git a/gems/rbs-merge/gemfiles/modular/erb/r2/v3.0.gemfile b/gems/rbs-merge/gemfiles/modular/erb/r2/v3.0.gemfile index 7c83a239b..c03bd8d85 100644 --- a/gems/rbs-merge/gemfiles/modular/erb/r2/v3.0.gemfile +++ b/gems/rbs-merge/gemfiles/modular/erb/r2/v3.0.gemfile @@ -1 +1 @@ -gem 'erb', '~> 3.0' # ruby >= 2.7.0 +gem "erb", "~> 3.0" # ruby >= 2.7.0 diff --git a/gems/rbs-merge/gemfiles/modular/erb/r3/v5.0.gemfile b/gems/rbs-merge/gemfiles/modular/erb/r3/v5.0.gemfile index 0e3bf1b97..1bd029cc1 100644 --- a/gems/rbs-merge/gemfiles/modular/erb/r3/v5.0.gemfile +++ b/gems/rbs-merge/gemfiles/modular/erb/r3/v5.0.gemfile @@ -1 +1 @@ -gem 'erb', '~> 6.0', '>= 6.0.4' # ruby >= 3.2.0 +gem "erb", "~> 6.0", ">= 6.0.6" # ruby >= 3.2.0 diff --git a/gems/rbs-merge/gemfiles/modular/erb/r4/v5.0.gemfile b/gems/rbs-merge/gemfiles/modular/erb/r4/v5.0.gemfile index 0e3bf1b97..1bd029cc1 100644 --- a/gems/rbs-merge/gemfiles/modular/erb/r4/v5.0.gemfile +++ b/gems/rbs-merge/gemfiles/modular/erb/r4/v5.0.gemfile @@ -1 +1 @@ -gem 'erb', '~> 6.0', '>= 6.0.4' # ruby >= 3.2.0 +gem "erb", "~> 6.0", ">= 6.0.6" # ruby >= 3.2.0 diff --git a/gems/rbs-merge/gemfiles/modular/erb/vHEAD.gemfile b/gems/rbs-merge/gemfiles/modular/erb/vHEAD.gemfile index ea0101185..48fee4218 100644 --- a/gems/rbs-merge/gemfiles/modular/erb/vHEAD.gemfile +++ b/gems/rbs-merge/gemfiles/modular/erb/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 3.2 -gem 'erb', github: 'ruby/erb', branch: 'master' +gem "erb", github: "ruby/erb", branch: "master" diff --git a/gems/rbs-merge/gemfiles/modular/json/truffleruby_22_3.gemfile b/gems/rbs-merge/gemfiles/modular/json/truffleruby_22_3.gemfile new file mode 100644 index 000000000..b0e69ab11 --- /dev/null +++ b/gems/rbs-merge/gemfiles/modular/json/truffleruby_22_3.gemfile @@ -0,0 +1,6 @@ +# frozen_string_literal: true + +if RUBY_ENGINE == "truffleruby" && RUBY_ENGINE_VERSION.start_with?("22.3") + # TruffleRuby 22.3 ships the json default gem from its emulated MRI Ruby. + gem "json", "= 2.5.1" +end diff --git a/gems/rbs-merge/gemfiles/modular/json/truffleruby_23_0.gemfile b/gems/rbs-merge/gemfiles/modular/json/truffleruby_23_0.gemfile new file mode 100644 index 000000000..7b2660a2b --- /dev/null +++ b/gems/rbs-merge/gemfiles/modular/json/truffleruby_23_0.gemfile @@ -0,0 +1,6 @@ +# frozen_string_literal: true + +if RUBY_ENGINE == "truffleruby" && RUBY_ENGINE_VERSION.start_with?("23.0") + # TruffleRuby 23.0 ships the json default gem from its emulated MRI Ruby. + gem "json", "= 2.6.1" +end diff --git a/gems/rbs-merge/gemfiles/modular/json/truffleruby_23_1.gemfile b/gems/rbs-merge/gemfiles/modular/json/truffleruby_23_1.gemfile new file mode 100644 index 000000000..dfa21f2e4 --- /dev/null +++ b/gems/rbs-merge/gemfiles/modular/json/truffleruby_23_1.gemfile @@ -0,0 +1,6 @@ +# frozen_string_literal: true + +if RUBY_ENGINE == "truffleruby" && RUBY_ENGINE_VERSION.start_with?("23.1") + # TruffleRuby 23.1 ships the json default gem from its emulated MRI Ruby. + gem "json", "= 2.6.3" +end diff --git a/gems/rbs-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile b/gems/rbs-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile index e27f1bbae..42e9d9bd4 100644 --- a/gems/rbs-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile +++ b/gems/rbs-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 -gem 'mutex_m', '~> 0.2' +gem "mutex_m", "~> 0.2" diff --git a/gems/rbs-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile b/gems/rbs-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile index e27f1bbae..42e9d9bd4 100644 --- a/gems/rbs-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile +++ b/gems/rbs-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 -gem 'mutex_m', '~> 0.2' +gem "mutex_m", "~> 0.2" diff --git a/gems/rbs-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile b/gems/rbs-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile index e27f1bbae..42e9d9bd4 100644 --- a/gems/rbs-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile +++ b/gems/rbs-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 -gem 'mutex_m', '~> 0.2' +gem "mutex_m", "~> 0.2" diff --git a/gems/rbs-merge/gemfiles/modular/mutex_m/vHEAD.gemfile b/gems/rbs-merge/gemfiles/modular/mutex_m/vHEAD.gemfile index 9dac2f6cb..8af3b6fca 100644 --- a/gems/rbs-merge/gemfiles/modular/mutex_m/vHEAD.gemfile +++ b/gems/rbs-merge/gemfiles/modular/mutex_m/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 (dependency of omniauth) -gem 'mutex_m', github: 'ruby/mutex_m', branch: 'master' +gem "mutex_m", github: "ruby/mutex_m", branch: "master" diff --git a/gems/rbs-merge/gemfiles/modular/optional.gemfile b/gems/rbs-merge/gemfiles/modular/optional.gemfile index 386d3df83..67f689c0f 100644 --- a/gems/rbs-merge/gemfiles/modular/optional.gemfile +++ b/gems/rbs-merge/gemfiles/modular/optional.gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -# To retain during rbs-merge templating: +# To retain during kettle-jem templating: # kettle-jem:freeze # # ... your code # kettle-jem:unfreeze @@ -8,10 +8,6 @@ # Optional dependencies are not depended on directly, but may be used if present. -# Required for curated binstubs generated by kettle-jem install -gem 'rbs', '>= 3.0', require: false # ruby >= 3.1 -gem 'stone_checksums', '~> 1.0', '>= 1.0.3', require: false # ruby >= 2.2 - # Required for kettle-pre-release # URL parsing with Unicode support (falls back to URI if not available) -gem 'addressable', '>= 2.8', '< 3' # ruby >= 2.2 +gem "addressable", ">= 2.8", "< 3" # ruby >= 2.2 diff --git a/gems/rbs-merge/gemfiles/modular/rspec.gemfile b/gems/rbs-merge/gemfiles/modular/rspec.gemfile index 2af210a41..72fdf8b7f 100644 --- a/gems/rbs-merge/gemfiles/modular/rspec.gemfile +++ b/gems/rbs-merge/gemfiles/modular/rspec.gemfile @@ -1,4 +1,4 @@ -gem 'rspec_junit_formatter', - github: 'pboling/rspec_junit_formatter', - branch: 'main', - ref: '9e6bcaaedd49477b62878ed568dc4ada5cc7cb5e' +gem "rspec_junit_formatter", + github: "pboling/rspec_junit_formatter", + branch: "main", + ref: "9e6bcaaedd49477b62878ed568dc4ada5cc7cb5e" diff --git a/gems/rbs-merge/gemfiles/modular/runtime_heads.gemfile b/gems/rbs-merge/gemfiles/modular/runtime_heads.gemfile index cdba52f73..02f134c7f 100644 --- a/gems/rbs-merge/gemfiles/modular/runtime_heads.gemfile +++ b/gems/rbs-merge/gemfiles/modular/runtime_heads.gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -# To retain during rbs-merge templating: +# To retain during kettle-jem templating: # kettle-jem:freeze # # ... your code # kettle-jem:unfreeze @@ -8,7 +8,4 @@ # Test against HEAD of runtime dependencies so we can proactively file bugs -# Ruby >= 2.2 -gem 'version_gem', github: 'ruby-oauth/version_gem', branch: 'main' - -eval_gemfile('x_std_libs/vHEAD.gemfile') +eval_gemfile("x_std_libs/vHEAD.gemfile") diff --git a/gems/rbs-merge/gemfiles/modular/stringio/r2/v3.0.gemfile b/gems/rbs-merge/gemfiles/modular/stringio/r2/v3.0.gemfile index 3616f4e3a..e85bb18ee 100644 --- a/gems/rbs-merge/gemfiles/modular/stringio/r2/v3.0.gemfile +++ b/gems/rbs-merge/gemfiles/modular/stringio/r2/v3.0.gemfile @@ -2,4 +2,4 @@ # NOT SEMVER # Version 3.0.7 dropped support for Ruby <= 2.7 # Version 3.0.0 dropped support for Ruby <= 2.4 -gem 'stringio', '>= 3.0' +gem "stringio", ">= 3.0" diff --git a/gems/rbs-merge/gemfiles/modular/stringio/r3/v3.0.gemfile b/gems/rbs-merge/gemfiles/modular/stringio/r3/v3.0.gemfile index 3616f4e3a..e85bb18ee 100644 --- a/gems/rbs-merge/gemfiles/modular/stringio/r3/v3.0.gemfile +++ b/gems/rbs-merge/gemfiles/modular/stringio/r3/v3.0.gemfile @@ -2,4 +2,4 @@ # NOT SEMVER # Version 3.0.7 dropped support for Ruby <= 2.7 # Version 3.0.0 dropped support for Ruby <= 2.4 -gem 'stringio', '>= 3.0' +gem "stringio", ">= 3.0" diff --git a/gems/rbs-merge/gemfiles/modular/stringio/r4/v3.0.gemfile b/gems/rbs-merge/gemfiles/modular/stringio/r4/v3.0.gemfile index 3616f4e3a..e85bb18ee 100644 --- a/gems/rbs-merge/gemfiles/modular/stringio/r4/v3.0.gemfile +++ b/gems/rbs-merge/gemfiles/modular/stringio/r4/v3.0.gemfile @@ -2,4 +2,4 @@ # NOT SEMVER # Version 3.0.7 dropped support for Ruby <= 2.7 # Version 3.0.0 dropped support for Ruby <= 2.4 -gem 'stringio', '>= 3.0' +gem "stringio", ">= 3.0" diff --git a/gems/rbs-merge/gemfiles/modular/stringio/vHEAD.gemfile b/gems/rbs-merge/gemfiles/modular/stringio/vHEAD.gemfile index 78f5f5d8a..5f2a74126 100644 --- a/gems/rbs-merge/gemfiles/modular/stringio/vHEAD.gemfile +++ b/gems/rbs-merge/gemfiles/modular/stringio/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 (dependency of omniauth) -gem 'stringio', github: 'ruby/stringio', branch: 'master' +gem "stringio", github: "ruby/stringio", branch: "master" diff --git a/gems/rbs-merge/gemfiles/modular/style.gemfile b/gems/rbs-merge/gemfiles/modular/style.gemfile index c1535abe2..35de4dcd6 100644 --- a/gems/rbs-merge/gemfiles/modular/style.gemfile +++ b/gems/rbs-merge/gemfiles/modular/style.gemfile @@ -1,28 +1,31 @@ # frozen_string_literal: true -# To retain during rbs-merge templating: +# To retain during kettle-jem templating: # kettle-jem:freeze # # ... your code # kettle-jem:unfreeze # -# We run rubocop on the latest version of Ruby, -# but in support of the oldest supported version of Ruby +# Style tasks run on the latest Ruby; RuboCop-LTS selects the compatibility +# rules for the configured Ruby floor independently from task dependency floors. -gem 'reek', '~> 6.5' +gem "reek", "~> 6.5", ">= 6.5.0" platform :mri do - gem 'rubocop-on-rbs', '~> 2.0' # ruby >= 3.2.0 + gem "appraisal2-rubocop", "~> 1.0", ">= 1.0.0", require: false + gem "rubocop-gradual", "~> 0.4", ">= 0.4.0" + gem "rubocop-minitest", "~> 0.40", ">= 0.40.0" + gem "rubocop-on-rbs", "~> 2.0", ">= 2.0.0" # ruby >= 3.2.0 # gem "rubocop", "~> 1.73", ">= 1.73.2" # constrained by standard - gem 'rubocop-packaging', '~> 0.6', '>= 0.6.0' - gem 'standard', '>= 1.50' + gem "rubocop-packaging", "~> 0.6", ">= 0.6.0" + gem "standard", "~> 1.56", ">= 1.56.0" - if ENV.fetch('RUBOCOP_LTS_LOCAL', 'false').casecmp('false').zero? - gem 'rubocop-lts', '~> 24.1.0' - # "rubocop-lts-rspec" can't add here until other gems are updated. - gem 'rubocop-rspec', '~> 3.6' - gem 'rubocop-ruby3_2', '~> 3.0.0' + if ENV.fetch("RUBOCOP_LTS_LOCAL", "false").casecmp("false").zero? + declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) + gem "rubocop-lts", "~> 24.2", ">= 24.2.1" unless declared_gems.include?("rubocop-lts") + gem "rubocop-lts-rspec", "~> 1.0", ">= 1.0.5" unless declared_gems.include?("rubocop-lts-rspec") + gem "rubocop-ruby3_2", "~> 3.0", ">= 3.0.6" unless declared_gems.include?("rubocop-ruby3_2") else - eval_gemfile('style_local.gemfile') + eval_gemfile("style_local.gemfile") end end diff --git a/gems/rbs-merge/gemfiles/modular/style_local.gemfile b/gems/rbs-merge/gemfiles/modular/style_local.gemfile index ce75bbe21..dbdea4662 100644 --- a/gems/rbs-merge/gemfiles/modular/style_local.gemfile +++ b/gems/rbs-merge/gemfiles/modular/style_local.gemfile @@ -1,24 +1,48 @@ # frozen_string_literal: true -# We run rubocop on the latest version of Ruby, -# but in support of the oldest supported version of Ruby +# Style tasks run on the latest Ruby; RuboCop-LTS selects the compatibility +# rules for the configured Ruby floor independently from task dependency floors. # Local path overrides for development. # Loaded by the associated non-local gemfile when RUBOCOP_LTS_LOCAL != "false". -require 'nomono/bundler' unless defined?(Nomono) +# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. +# Bundler records that dependency during Gemfile evaluation, but it does not +# activate that exact version before the immediate `require "nomono/bundler"`. +# If multiple compatible nomono versions are installed, RubyGems may activate +# the newest installed version while Gemfile.lock pins an older compatible one; +# Bundler then aborts with "already activated nomono X, but your Gemfile +# requires nomono Y". Prefer the locked compatible version when present, then +# activate it explicitly before requiring the Bundler DSL extension used below. +nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] +nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) +if File.file?(nomono_lockfile) + nomono_locked_spec = Bundler::LockfileParser + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == "nomono" } + nomono_locked = nomono_locked_spec && + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + if nomono_locked + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] + end +end +Kernel.send(:gem, "nomono", *nomono_activation_requirements) +require "nomono/bundler" local_gems = %w[rubocop-lts rubocop-lts-rspec rubocop-ruby3_2 standard-rubocop-lts] +declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) +local_gems_to_eval = local_gems - %w[rbs-merge] - declared_gems # export VENDORED_GEMS=rubocop-lts,rubocop-lts-rspec,rubocop-ruby3_2,standard-rubocop-lts platform :mri do eval_nomono_gems( - gems: local_gems, - prefix: 'RUBOCOP_LTS', - path_env: 'RUBOCOP_LTS_LOCAL', - vendored_gems_env: 'VENDORED_GEMS', - vendor_gem_dir_env: 'VENDOR_GEM_DIR', - debug_env: 'RUBOCOP_LTS_DEBUG', - root: %w[src rubocop-lts] + gems: local_gems_to_eval, + prefix: "RUBOCOP_LTS", + path_env: "RUBOCOP_LTS_LOCAL", + vendored_gems_env: "VENDORED_GEMS", + vendor_gem_dir_env: "VENDOR_GEM_DIR", + debug_env: "RUBOCOP_LTS_DEBUG", + root: ["src", "rubocop-lts"] ) end diff --git a/gems/rbs-merge/gemfiles/modular/templating.gemfile b/gems/rbs-merge/gemfiles/modular/templating.gemfile index 2ddc9433f..47138ffbb 100644 --- a/gems/rbs-merge/gemfiles/modular/templating.gemfile +++ b/gems/rbs-merge/gemfiles/modular/templating.gemfile @@ -1,24 +1,24 @@ # frozen_string_literal: true -structuredmerge_remote = ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false').zero? -kettle_remote = ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? +structuredmerge_remote = ENV.fetch("STRUCTUREDMERGE_DEV", "false").casecmp("false").zero? +kettle_remote = ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false").zero? if structuredmerge_remote # Parser dependencies for released installs. - gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' + gem "tree_sitter_language_pack", "~> 1.13", ">= 1.13.3" # Merge recipes for released installs. - gem 'kettle-jem', '>= 7.0' + gem "kettle-jem", ">= 7.0" end if kettle_remote # Template/plugin checks for released installs. - gem 'kettle-drift', '~> 1.0', '>= 1.0.5', require: false + gem "kettle-drift", "~> 1.0", ">= 1.0.6", require: false end # Set STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local development with path-based dependencies. # When false (default / CI), released kettle-jem brings merge gems and parser dependencies. # Local path overrides bring the same dependencies from sibling gemspecs. # -# Set KETTLE_DEV_DEV=/path/to/kettle-rb for local development with Kettle plugin gems. +# Set KETTLE_DEV_DEV=/path/to/my for local development with Kettle plugin gems. # When false (default / CI), released Kettle plugin gems are used. -eval_gemfile 'templating_local.gemfile' unless structuredmerge_remote && kettle_remote +eval_gemfile "templating_local.gemfile" unless structuredmerge_remote && kettle_remote diff --git a/gems/rbs-merge/gemfiles/modular/templating_local.gemfile b/gems/rbs-merge/gemfiles/modular/templating_local.gemfile index a364d0ce3..3391bac54 100644 --- a/gems/rbs-merge/gemfiles/modular/templating_local.gemfile +++ b/gems/rbs-merge/gemfiles/modular/templating_local.gemfile @@ -4,7 +4,29 @@ # Loaded by the associated non-local gemfile when STRUCTUREDMERGE_DEV or KETTLE_DEV_DEV # is not "false". -require 'nomono/bundler' unless defined?(Nomono) +# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. +# Bundler records that dependency during Gemfile evaluation, but it does not +# activate that exact version before the immediate `require "nomono/bundler"`. +# If multiple compatible nomono versions are installed, RubyGems may activate +# the newest installed version while Gemfile.lock pins an older compatible one; +# Bundler then aborts with "already activated nomono X, but your Gemfile +# requires nomono Y". Prefer the locked compatible version when present, then +# activate it explicitly before requiring the Bundler DSL extension used below. +nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] +nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) +if File.file?(nomono_lockfile) + nomono_locked_spec = Bundler::LockfileParser + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == "nomono" } + nomono_locked = nomono_locked_spec && + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + if nomono_locked + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] + end +end +Kernel.send(:gem, "nomono", *nomono_activation_requirements) +require "nomono/bundler" structuredmerge_local_gems = %w[ tree_haver @@ -47,25 +69,25 @@ structuredmerge_local_gems_to_eval = structuredmerge_local_gems - %w[rbs-merge] kettle_dev_local_gems_to_eval = kettle_dev_local_gems - %w[rbs-merge] - declared_gems platform :mri do - if ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false') != 0 + if ENV.fetch("STRUCTUREDMERGE_DEV", "false").casecmp("false") != 0 eval_nomono_gems( gems: structuredmerge_local_gems_to_eval, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - vendored_gems_env: 'VENDORED_GEMS', - vendor_gem_dir_env: 'VENDOR_GEM_DIR', - debug_env: 'STRUCTUREDMERGE_DEBUG' + prefix: "STRUCTUREDMERGE", + path_env: "STRUCTUREDMERGE_DEV", + vendored_gems_env: "VENDORED_GEMS", + vendor_gem_dir_env: "VENDOR_GEM_DIR", + debug_env: "STRUCTUREDMERGE_DEBUG" ) end - if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false') != 0 + if ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false") != 0 eval_nomono_gems( gems: kettle_dev_local_gems_to_eval, - prefix: 'KETTLE_DEV', - path_env: 'KETTLE_DEV_DEV', - vendored_gems_env: 'VENDORED_GEMS', - vendor_gem_dir_env: 'VENDOR_GEM_DIR', - debug_env: 'KETTLE_DEV_DEBUG' + prefix: "KETTLE_DEV", + path_env: "KETTLE_DEV_DEV", + vendored_gems_env: "VENDORED_GEMS", + vendor_gem_dir_env: "VENDOR_GEM_DIR", + debug_env: "KETTLE_DEV_DEBUG" ) end end diff --git a/gems/rbs-merge/gemfiles/modular/webrick/r4/v1.9.gemfile b/gems/rbs-merge/gemfiles/modular/webrick/r4/v1.9.gemfile new file mode 100644 index 000000000..eaab4a473 --- /dev/null +++ b/gems/rbs-merge/gemfiles/modular/webrick/r4/v1.9.gemfile @@ -0,0 +1 @@ +gem "webrick", "~> 1.9" diff --git a/gems/rbs-merge/gemfiles/modular/webrick/vHEAD.gemfile b/gems/rbs-merge/gemfiles/modular/webrick/vHEAD.gemfile new file mode 100644 index 000000000..8a789b634 --- /dev/null +++ b/gems/rbs-merge/gemfiles/modular/webrick/vHEAD.gemfile @@ -0,0 +1 @@ +gem "webrick", ">= 1.9" diff --git a/gems/rbs-merge/gemfiles/modular/x_std_libs.gemfile b/gems/rbs-merge/gemfiles/modular/x_std_libs.gemfile index b1f43c097..77aad43f2 100644 --- a/gems/rbs-merge/gemfiles/modular/x_std_libs.gemfile +++ b/gems/rbs-merge/gemfiles/modular/x_std_libs.gemfile @@ -1,12 +1,12 @@ ### Std Lib Extracted Gems ruby_version = Gem::Version.new(RUBY_VERSION) -if ruby_version >= Gem::Version.new('4.0') - eval_gemfile 'x_std_libs/r4/libs.gemfile' -elsif ruby_version >= Gem::Version.new('3.2') - eval_gemfile 'x_std_libs/r3/libs.gemfile' -elsif ruby_version >= Gem::Version.new('3.1') - eval_gemfile 'x_std_libs/r3.1/libs.gemfile' +if ruby_version >= Gem::Version.new("4.0") + eval_gemfile "x_std_libs/r4/libs.gemfile" +elsif ruby_version >= Gem::Version.new("3.2") + eval_gemfile "x_std_libs/r3/libs.gemfile" +elsif ruby_version >= Gem::Version.new("3.1") + eval_gemfile "x_std_libs/r3.1/libs.gemfile" else - eval_gemfile 'x_std_libs/r2/libs.gemfile' + eval_gemfile "x_std_libs/r2/libs.gemfile" end diff --git a/gems/rbs-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile b/gems/rbs-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile index 16a5e3d70..441c4f03a 100644 --- a/gems/rbs-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile +++ b/gems/rbs-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile @@ -1,3 +1,3 @@ -eval_gemfile '../../erb/r2/v3.0.gemfile' -eval_gemfile '../../mutex_m/r2/v0.3.gemfile' -eval_gemfile '../../stringio/r2/v3.0.gemfile' +eval_gemfile "../../erb/r2/v3.0.gemfile" +eval_gemfile "../../mutex_m/r2/v0.3.gemfile" +eval_gemfile "../../stringio/r2/v3.0.gemfile" diff --git a/gems/rbs-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile b/gems/rbs-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile index 220ff95c1..c293a3ddd 100644 --- a/gems/rbs-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile +++ b/gems/rbs-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile @@ -1,3 +1,3 @@ -eval_gemfile '../../erb/r3/v5.0.gemfile' -eval_gemfile '../../mutex_m/r3/v0.3.gemfile' -eval_gemfile '../../stringio/r3/v3.0.gemfile' +eval_gemfile "../../erb/r3/v5.0.gemfile" +eval_gemfile "../../mutex_m/r3/v0.3.gemfile" +eval_gemfile "../../stringio/r3/v3.0.gemfile" diff --git a/gems/rbs-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile b/gems/rbs-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile index bd4e884df..eb5574247 100644 --- a/gems/rbs-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile +++ b/gems/rbs-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile @@ -1,4 +1,6 @@ -eval_gemfile '../../erb/r4/v5.0.gemfile' -eval_gemfile '../../mutex_m/r4/v0.3.gemfile' -eval_gemfile '../../stringio/r4/v3.0.gemfile' -eval_gemfile '../../benchmark/r4/v0.5.gemfile' +eval_gemfile "../../erb/r4/v5.0.gemfile" +eval_gemfile "../../mutex_m/r4/v0.3.gemfile" +eval_gemfile "../../stringio/r4/v3.0.gemfile" +eval_gemfile "../../benchmark/r4/v0.5.gemfile" +eval_gemfile "../../cgi/r4/v0.5.gemfile" +eval_gemfile "../../webrick/r4/v1.9.gemfile" diff --git a/gems/rbs-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile b/gems/rbs-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile index 91f383c11..d4d5b16c9 100644 --- a/gems/rbs-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile +++ b/gems/rbs-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile @@ -1,4 +1,6 @@ -eval_gemfile '../erb/vHEAD.gemfile' -eval_gemfile '../mutex_m/vHEAD.gemfile' -eval_gemfile '../stringio/vHEAD.gemfile' -eval_gemfile '../benchmark/vHEAD.gemfile' +eval_gemfile "../erb/vHEAD.gemfile" +eval_gemfile "../mutex_m/vHEAD.gemfile" +eval_gemfile "../stringio/vHEAD.gemfile" +eval_gemfile "../benchmark/vHEAD.gemfile" +eval_gemfile "../cgi/vHEAD.gemfile" +eval_gemfile "../webrick/vHEAD.gemfile" diff --git a/gems/rbs-merge/rbs-merge.gemspec b/gems/rbs-merge/rbs-merge.gemspec index 4d53cd680..fc2844391 100644 --- a/gems/rbs-merge/rbs-merge.gemspec +++ b/gems/rbs-merge/rbs-merge.gemspec @@ -9,47 +9,47 @@ Gem::Specification.new do |spec| spec.name = 'rbs-merge' spec.version = Module.new.tap { |mod| Kernel.load("#{__dir__}/lib/rbs/merge/version.rb", mod) }::Rbs::Merge::Version::VERSION - spec.authors = ['Peter H. Boling'] - spec.email = ['floss@galtzo.com'] + spec.authors = ["Peter H. Boling"] + spec.email = ["floss@galtzo.com"] spec.summary = '☯️ Structured Merge RBS analysis and merge for Ruby' spec.description = '☯️ RBS declaration, comment, freeze-block, and template merge behavior for Structured Merge.' spec.homepage = 'https://github.com/structuredmerge/structuredmerge-ruby' - spec.licenses = ['AGPL-3.0-only', 'PolyForm-Small-Business-1.0.0'] - spec.required_ruby_version = '>= 4.0.0' + spec.licenses = ["AGPL-3.0-only", "PolyForm-Small-Business-1.0.0"] + spec.required_ruby_version = ">= 4.0.0" # Linux distros often package gems and securely certify them independent # of the official RubyGem certification process. Allowed via ENV["SKIP_GEM_SIGNING"] # Ref: https://gitlab.com/ruby-oauth/version_gem/-/issues/3 # Hence, only enable signing if `SKIP_GEM_SIGNING` is not set in ENV. # See CONTRIBUTING.md - unless ENV.include?('SKIP_GEM_SIGNING') - user_cert = "certs/#{ENV.fetch('GEM_CERT_USER', ENV['USER'])}.pem" + unless ENV.include?("SKIP_GEM_SIGNING") + user_cert = "certs/#{ENV.fetch("GEM_CERT_USER", ENV["USER"])}.pem" cert_file_path = File.join(__dir__, user_cert) - cert_chain = cert_file_path.split(',') + cert_chain = cert_file_path.split(",") cert_chain.select! { |fp| File.exist?(fp) } if cert_file_path && cert_chain.any? spec.cert_chain = cert_chain - if $PROGRAM_NAME.end_with?('gem') && ARGV[0] == 'build' - spec.signing_key = File.join(Gem.user_home, '.ssh', 'gem-private_key.pem') + if $PROGRAM_NAME.end_with?("gem") && ARGV[0] == "build" + spec.signing_key = File.join(Gem.user_home, ".ssh", "gem-private_key.pem") end end end - spec.metadata['homepage_uri'] = 'https://structuredmerge.org' - spec.metadata['source_code_uri'] = "#{spec.homepage}/tree/v#{spec.version}" - spec.metadata['changelog_uri'] = "#{spec.homepage}/blob/v#{spec.version}/CHANGELOG.md" - spec.metadata['bug_tracker_uri'] = "#{spec.homepage}/issues" - spec.metadata['documentation_uri'] = "https://www.rubydoc.info/gems/#{spec.name}/#{spec.version}" - spec.metadata['funding_uri'] = 'https://github.com/sponsors/pboling' - spec.metadata['wiki_uri'] = "#{spec.homepage}/wiki" - spec.metadata['news_uri'] = "https://www.railsbling.com/tags/#{spec.name}" - spec.metadata['discord_uri'] = 'https://discord.gg/3qme4XHNKN' - spec.metadata['rubygems_mfa_required'] = 'true' + spec.metadata["homepage_uri"] = "https://structuredmerge.org" + spec.metadata["source_code_uri"] = "#{spec.homepage}/tree/v#{spec.version}" + spec.metadata["changelog_uri"] = "#{spec.homepage}/blob/v#{spec.version}/CHANGELOG.md" + spec.metadata["bug_tracker_uri"] = "#{spec.homepage}/issues" + spec.metadata["documentation_uri"] = "https://www.rubydoc.info/gems/#{spec.name}/#{spec.version}" + spec.metadata["funding_uri"] = "https://github.com/sponsors/pboling" + spec.metadata["wiki_uri"] = "#{spec.homepage}/wiki" + spec.metadata["news_uri"] = "https://www.railsbling.com/tags/#{spec.name}" + spec.metadata["discord_uri"] = "https://discord.gg/3qme4XHNKN" + spec.metadata["rubygems_mfa_required"] = "true" enumerate_package_files = lambda do |root| - Dir.glob(File.join(root, '**', '*'), File::FNM_DOTMATCH).select do |path| - File.file?(path) && !['.', '..'].include?(File.basename(path)) + Dir.glob(File.join(root, "**", "*"), File::FNM_DOTMATCH).select do |path| + File.file?(path) && ![".", ".."].include?(File.basename(path)) end end package_metadata_files = %w[ @@ -69,17 +69,17 @@ Gem::Specification.new do |spec| *enumerate_package_files.call('exe') ] spec.rdoc_options += [ - '--title', + "--title", "#{spec.name} - #{spec.summary}", - '--main', - 'README.md', - '--exclude', - '^sig/', - '--line-numbers', - '--inline-source', - '--quiet' + "--main", + "README.md", + "--exclude", + "^sig/", + "--line-numbers", + "--inline-source", + "--quiet" ] - spec.bindir = 'exe' + spec.bindir = "exe" # Listed files are the relative paths from bindir above. spec.executables = [] @@ -89,13 +89,13 @@ Gem::Specification.new do |spec| # rbs-merge will then preserve content between those markers across template runs. # kettle-jem:unfreeze - spec.require_paths = ['lib'] + spec.require_paths = ["lib"] # Utilities spec.add_dependency 'ast-merge', "= #{spec.version}" spec.add_dependency 'rbs', '>= 3.10' spec.add_dependency 'tree_haver', "= #{spec.version}" - spec.add_dependency('version_gem', '~> 1.1', '>= 1.1.14') # ruby >= 2.2.0 + spec.add_dependency("version_gem", "~> 1.1", ">= 1.1.14") # ruby >= 2.2.0 # NOTE: It is preferable to list development dependencies in the gemspec due to increased # visibility and discoverability. @@ -111,26 +111,30 @@ Gem::Specification.new do |spec| # and preferably a modular one (see gemfiles/modular/*.gemfile). # Dev, Test, & Release Tasks - spec.add_development_dependency('kettle-dev', '~> 2.3', '>= 2.3.7') # ruby >= 4.0.0 + spec.add_development_dependency("kettle-dev", "~> 2.3", ">= 2.3.7") # ruby >= 4.0.0 # Security - spec.add_development_dependency('bundler-audit', '~> 0.9.3') # ruby >= 2.0.0 + spec.add_development_dependency("bundler-audit", "~> 0.9.3") # ruby >= 2.0.0 # Tasks - spec.add_development_dependency('rake', '~> 13.0') # ruby >= 2.2.0 + spec.add_development_dependency("rake", "~> 13.0") # ruby >= 2.2.0 # Debugging - spec.add_development_dependency('require_bench', '~> 1.0', '>= 1.0.4') # ruby >= 2.2.0 + spec.add_development_dependency("require_bench", "~> 1.0", ">= 1.0.4") # ruby >= 2.2.0 # Testing - spec.add_development_dependency('appraisal2', '~> 3.2', '>= 3.2.0') # ruby >= 1.8.7, for testing against multiple versions of dependencies - spec.add_development_dependency('kettle-test', '~> 2.0', '>= 2.0.11') # ruby >= 4.0.0 - spec.add_development_dependency('turbo_tests2', '~> 3.2', '>= 3.2.0') # ruby >= 2.4.0, default kettle-test runner + spec.add_development_dependency("appraisal2", "~> 3.2", ">= 3.2.0") # ruby >= 1.8.7, for testing against multiple versions of dependencies + spec.add_development_dependency("kettle-test", "~> 2.0", ">= 2.0.12") # ruby >= 4.0.0 + spec.add_development_dependency("turbo_tests2", "~> 3.2", ">= 3.2.0") # ruby >= 2.4.0, default kettle-test runner # Releasing - spec.add_development_dependency('ruby-progressbar', '~> 1.13') # ruby >= 0 - spec.add_development_dependency('stone_checksums', '~> 1.0', '>= 1.0.6') # ruby >= 2.2.0 + spec.add_development_dependency("ruby-progressbar", "~> 1.13") # ruby >= 0 + spec.add_development_dependency("stone_checksums", "~> 1.0", ">= 1.0.6") # ruby >= 2.2.0 + # Development tasks + # The cake is a lie. erb v2.2, the oldest release, was never compatible with Ruby 2.3. + # This means we have no choice but to use the erb that shipped with Ruby 2.3 + # /opt/hostedtoolcache/Ruby/2.3.8/x64/lib/ruby/gems/2.3.0/gems/erb-2.2.2/lib/erb.rb:670:in `prepare_trim_mode': undefined method `match?' for "-":String (NoMethodError) # spec.add_development_dependency("erb", ">= 2.2") # ruby >= 2.3.0, not SemVer, old rubies get dropped in a patch. - spec.add_development_dependency('gitmoji-regex', '~> 2.0', '>= 2.0.4') # ruby >= 2.4 + spec.add_development_dependency("gitmoji-regex", "~> 2.0", ">= 2.0.4") # ruby >= 2.4 end diff --git a/gems/yaml-merge/.kettle-drift.lock b/gems/yaml-merge/.kettle-drift.lock index 09df60df7..2ee9dae31 100644 --- a/gems/yaml-merge/.kettle-drift.lock +++ b/gems/yaml-merge/.kettle-drift.lock @@ -1,122 +1,10 @@ { - "(direct_sibling_local ||\nENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?)": [ - { - "file": "Gemfile", - "lines": [ - 80, - 120, - 160, - 200, - 240, - 280, - 320, - 360 - ] - } - ], - ".find { |spec| spec.name == 'nomono' }\nnomono_locked = nomono_locked_spec &&": [ - { - "file": "Gemfile", - "lines": [ - 91, - 131, - 171, - 211, - 251, - 291, - 331, - 371 - ] - } - ], - "ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?)\ndirect_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV')": [ - { - "file": "Gemfile", - "lines": [ - 81, - 121, - 161, - 201, - 241, - 281, - 321, - 361 - ] - } - ], - "Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version)\nnomono_activation_requirements = [\"= #{nomono_locked_spec.version}\"] if nomono_locked": [ - { - "file": "Gemfile", - "lines": [ - 93, - 133, - 173, - 213, - 253, - 293, - 333, - 373 - ] - } - ], - "Kernel.send(:gem, 'nomono', *nomono_activation_requirements)\nrequire 'nomono/bundler'": [ - { - "file": "Gemfile", - "lines": [ - 96, - 136, - 176, - 216, - 256, - 296, - 336, - 376 - ] - } - ], - "direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV')\ndirect_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil)": [ - { - "file": "Gemfile", - "lines": [ - 82, - 122, - 162, - 202, - 242, - 282, - 322, - 362 - ] - } - ], "eval_nomono_gems(\ngems: direct_sibling_gems,": [ { "file": "Gemfile", "lines": [ 60, - 100, - 140, - 180, - 220, - 260, - 300, - 340, - 380 - ] - } - ], - "gems: direct_sibling_gems,\nprefix: 'STRUCTUREDMERGE',": [ - { - "file": "Gemfile", - "lines": [ - 101, - 141, - 181, - 221, - 261, - 301, - 341, - 381 + 100 ] } ], @@ -125,29 +13,7 @@ "file": "Gemfile", "lines": [ 43, - 87, - 127, - 167, - 207, - 247, - 287, - 327, - 367 - ] - } - ], - "if direct_sibling_dev_was_set\nENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original": [ - { - "file": "Gemfile", - "lines": [ - 110, - 150, - 190, - 230, - 270, - 310, - 350, - 390 + 87 ] } ], @@ -156,14 +22,7 @@ "file": "Gemfile", "lines": [ 35, - 79, - 119, - 159, - 199, - 239, - 279, - 319, - 359 + 79 ] } ], @@ -172,29 +31,7 @@ "file": "Gemfile", "lines": [ 69, - 109, - 149, - 189, - 229, - 269, - 309, - 349, - 389 - ] - } - ], - "nomono_activation_requirements = nomono_requirements\nnomono_lockfile = File.expand_path('Gemfile.lock', __dir__)": [ - { - "file": "Gemfile", - "lines": [ - 85, - 125, - 165, - 205, - 245, - 285, - 325, - 365 + 109 ] } ], @@ -203,14 +40,7 @@ "file": "Gemfile", "lines": [ 48, - 92, - 132, - 172, - 212, - 252, - 292, - 332, - 372 + 92 ] } ], @@ -219,89 +49,7 @@ "file": "Gemfile", "lines": [ 44, - 88, - 128, - 168, - 208, - 248, - 288, - 328, - 368 - ] - } - ], - "nomono_lockfile = File.expand_path('Gemfile.lock', __dir__)\nif File.file?(nomono_lockfile)": [ - { - "file": "Gemfile", - "lines": [ - 86, - 126, - 166, - 206, - 246, - 286, - 326, - 366 - ] - } - ], - "path_env: 'STRUCTUREDMERGE_DEV',\nroot: %w[src my structuredmerge]": [ - { - "file": "Gemfile", - "lines": [ - 103, - 143, - 183, - 223, - 263, - 303, - 343, - 383 - ] - } - ], - "prefix: 'STRUCTUREDMERGE',\npath_env: 'STRUCTUREDMERGE_DEV',": [ - { - "file": "Gemfile", - "lines": [ - 102, - 142, - 182, - 222, - 262, - 302, - 342, - 382 - ] - } - ], - "require 'nomono/bundler'\nENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local": [ - { - "file": "Gemfile", - "lines": [ - 97, - 137, - 177, - 217, - 257, - 297, - 337, - 377 - ] - } - ], - "rescue LoadError\nwarn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.'": [ - { - "file": "Gemfile", - "lines": [ - 106, - 146, - 186, - 226, - 266, - 306, - 346, - 386 + 88 ] } ], @@ -309,8 +57,8 @@ { "file": "gemfiles/modular/templating_local.gemfile", "lines": [ - 60, - 71 + 55, + 66 ] } ] diff --git a/gems/yaml-merge/.structuredmerge/kettle-jem.yml b/gems/yaml-merge/.structuredmerge/kettle-jem.yml index c8194e6fd..40020085d 100644 --- a/gems/yaml-merge/.structuredmerge/kettle-jem.yml +++ b/gems/yaml-merge/.structuredmerge/kettle-jem.yml @@ -246,6 +246,59 @@ templates: - Gemfile - certs/pboling.pem - tmp/.gitignore + - gemfiles/modular/benchmark/r4/v0.5.gemfile + - gemfiles/modular/benchmark/vHEAD.gemfile + - gemfiles/modular/cgi/r4/v0.5.gemfile + - gemfiles/modular/cgi/vHEAD.gemfile + - gemfiles/modular/coverage.gemfile + - gemfiles/modular/coverage_local.gemfile + - gemfiles/modular/debug.gemfile + - gemfiles/modular/documentation.gemfile + - gemfiles/modular/documentation_local.gemfile + - gemfiles/modular/erb/r2.3/default.gemfile + - gemfiles/modular/erb/r2.6/v2.2.gemfile + - gemfiles/modular/erb/r2/v3.0.gemfile + - gemfiles/modular/erb/r3.1/v4.0.gemfile + - gemfiles/modular/erb/r3/v5.0.gemfile + - gemfiles/modular/erb/r4/v5.0.gemfile + - gemfiles/modular/erb/vHEAD.gemfile + - gemfiles/modular/json/truffleruby_22_3.gemfile + - gemfiles/modular/json/truffleruby_23_0.gemfile + - gemfiles/modular/json/truffleruby_23_1.gemfile + - gemfiles/modular/mutex_m/r2.4/v0.1.gemfile + - gemfiles/modular/mutex_m/r2/v0.3.gemfile + - gemfiles/modular/mutex_m/r3/v0.3.gemfile + - gemfiles/modular/mutex_m/r4/v0.3.gemfile + - gemfiles/modular/mutex_m/vHEAD.gemfile + - gemfiles/modular/optional.gemfile + - gemfiles/modular/recording/r2.3/recording.gemfile + - gemfiles/modular/recording/r2.4/recording.gemfile + - gemfiles/modular/recording/r2.5/recording.gemfile + - gemfiles/modular/recording/r3/recording.gemfile + - gemfiles/modular/recording/r4/recording.gemfile + - gemfiles/modular/recording/vHEAD.gemfile + - gemfiles/modular/rspec.gemfile + - gemfiles/modular/runtime_heads.gemfile + - gemfiles/modular/stringio/r2.4/v0.0.2.gemfile + - gemfiles/modular/stringio/r2/v3.0.gemfile + - gemfiles/modular/stringio/r3/v3.0.gemfile + - gemfiles/modular/stringio/r4/v3.0.gemfile + - gemfiles/modular/stringio/vHEAD.gemfile + - gemfiles/modular/style.gemfile + - gemfiles/modular/style_local.gemfile + - gemfiles/modular/templating.gemfile + - gemfiles/modular/templating_local.gemfile + - gemfiles/modular/webrick/r4/v1.9.gemfile + - gemfiles/modular/webrick/vHEAD.gemfile + - gemfiles/modular/x_std_libs.gemfile + - gemfiles/modular/x_std_libs/r2.3/libs.gemfile + - gemfiles/modular/x_std_libs/r2.4/libs.gemfile + - gemfiles/modular/x_std_libs/r2.6/libs.gemfile + - gemfiles/modular/x_std_libs/r2/libs.gemfile + - gemfiles/modular/x_std_libs/r3.1/libs.gemfile + - gemfiles/modular/x_std_libs/r3/libs.gemfile + - gemfiles/modular/x_std_libs/r4/libs.gemfile + - gemfiles/modular/x_std_libs/vHEAD.gemfile - source: lib/gem/version.rb target: lib/yaml/merge/version.rb - source: sig/gem.rbs diff --git a/gems/yaml-merge/Gemfile b/gems/yaml-merge/Gemfile index 49b7d5721..d0e176101 100644 --- a/gems/yaml-merge/Gemfile +++ b/gems/yaml-merge/Gemfile @@ -6,7 +6,7 @@ # kettle-jem will then preserve content between those markers across template runs. # kettle-jem:unfreeze -source 'https://gem.coop' +source "https://gem.coop" git_source(:codeberg) { |repo_name| "https://codeberg.org/#{repo_name}" } git_source(:gitlab) { |repo_name| "https://gitlab.com/#{repo_name}" } @@ -19,18 +19,62 @@ git_source(:gitlab) { |repo_name| "https://gitlab.com/#{repo_name}" } gemspec # Local workspace dependency wiring for *_local.gemfile overrides -nomono_requirements = ['~> 1.0', '>= 1.0.8'] -gem 'nomono', *nomono_requirements, require: false # ruby >= 2.2 +nomono_requirements = ["~> 1.0", ">= 1.0.8"] +gem "nomono", *nomono_requirements, require: false # ruby >= 2.2 # Direct sibling dependencies (env-switched via STRUCTUREDMERGE_DEV) direct_sibling_gems = %w[ ast-merge tree_haver ] -direct_sibling_dev = ENV.fetch('STRUCTUREDMERGE_DEV', '') +direct_sibling_dev = ENV.fetch("STRUCTUREDMERGE_DEV", "") direct_sibling_local = !direct_sibling_dev.empty? && !%w[false 0 no off].include?(direct_sibling_dev.downcase) -direct_sibling_templating = ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? +direct_sibling_templating = ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? + +if direct_sibling_gems.any? && + (direct_sibling_local || + ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero?) + direct_sibling_dev_was_set = ENV.key?("STRUCTUREDMERGE_DEV") + direct_sibling_dev_original = ENV.fetch("STRUCTUREDMERGE_DEV", nil) + begin + nomono_activation_requirements = nomono_requirements + nomono_lockfile = File.expand_path("Gemfile.lock", __dir__) + if File.file?(nomono_lockfile) + nomono_locked_spec = Bundler::LockfileParser + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == "nomono" } + nomono_locked = nomono_locked_spec && + Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) + if nomono_locked + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] + end + end + Kernel.send(:gem, "nomono", *nomono_activation_requirements) + require "nomono/bundler" + if direct_sibling_templating && !direct_sibling_local + ENV["STRUCTUREDMERGE_DEV"] = File.expand_path("..", __dir__) + end + + eval_nomono_gems( + gems: direct_sibling_gems, + prefix: "STRUCTUREDMERGE", + path_env: "STRUCTUREDMERGE_DEV", + root: ["src", "my", "structuredmerge"] + ) + rescue LoadError + warn "Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies." + ensure + if direct_sibling_templating && !direct_sibling_local + if direct_sibling_dev_was_set + ENV["STRUCTUREDMERGE_DEV"] = direct_sibling_dev_original + else + ENV.delete("STRUCTUREDMERGE_DEV") + end + end + end +end if direct_sibling_gems.any? && (direct_sibling_local || @@ -73,28 +117,28 @@ if direct_sibling_gems.any? && end # Use released TSLP with the Ruby ABI platform-gem fix. -gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' +gem "tree_sitter_language_pack", "~> 1.13", ">= 1.13.3" # Templating (env-switched: STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local paths) -eval_gemfile 'gemfiles/modular/templating.gemfile' if ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? +eval_gemfile "gemfiles/modular/templating.gemfile" if ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? # Debugging -eval_gemfile 'gemfiles/modular/debug.gemfile' +eval_gemfile "gemfiles/modular/debug.gemfile" # Code Coverage (env-switched: KETTLE_DEV_DEV=true for local paths) -eval_gemfile 'gemfiles/modular/coverage.gemfile' +eval_gemfile "gemfiles/modular/coverage.gemfile" # Linting -eval_gemfile 'gemfiles/modular/style.gemfile' +eval_gemfile "gemfiles/modular/style.gemfile" # Documentation -eval_gemfile 'gemfiles/modular/documentation.gemfile' +eval_gemfile "gemfiles/modular/documentation.gemfile" # Optional -eval_gemfile 'gemfiles/modular/optional.gemfile' +eval_gemfile "gemfiles/modular/optional.gemfile" ### Std Lib Extracted Gems -eval_gemfile 'gemfiles/modular/x_std_libs.gemfile' +eval_gemfile "gemfiles/modular/x_std_libs.gemfile" # See unlocked_deps appraisal for more details on irb inclusion -gem 'irb', '~> 1.17' # ruby >= 2.7 +gem "irb", "~> 1.17" # ruby >= 2.7 diff --git a/gems/yaml-merge/Gemfile.lock b/gems/yaml-merge/Gemfile.lock index ed2bd9afc..d8b3f70aa 100644 --- a/gems/yaml-merge/Gemfile.lock +++ b/gems/yaml-merge/Gemfile.lock @@ -6,6 +6,265 @@ PATH tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly + specs: + ast-crispr-markdown-markly (7.1.0) + ast-crispr (= 7.1.0) + markly-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism + specs: + ast-crispr-ruby-prism (7.1.0) + ast-crispr (= 7.1.0) + prism-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr + specs: + ast-crispr (7.1.0) + ast-merge (= 7.1.0) + service_actor (~> 3.9) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git + specs: + ast-merge-git (7.1.0) + ast-merge (= 7.1.0) + json-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge + specs: + ast-merge (7.1.0) + benchmark + token-resolver (~> 2.0, >= 2.0.4) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template + specs: + ast-template (7.1.0) + ast-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge + specs: + bash-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge + specs: + binary-merge (7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge + specs: + citrus-toml-merge (7.1.0) + toml-merge (= 7.1.0) + toml-rb (~> 4.1) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge + specs: + commonmarker-merge (7.1.0) + commonmarker (~> 2.2) + markdown-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge + specs: + dotenv-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge + specs: + go-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge + specs: + json-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem + specs: + kettle-jem (7.1.0) + addressable (>= 2.8, < 3) + ast-crispr-markdown-markly (= 7.1.0) + ast-crispr-ruby-prism (= 7.1.0) + ast-merge (= 7.1.0) + bash-merge (= 7.1.0) + citrus-toml-merge (= 7.1.0) + commonmarker-merge (= 7.1.0) + dotenv-merge (= 7.1.0) + json-merge (= 7.1.0) + kettle-dev (~> 2.3, >= 2.3.5) + kettle-rb (~> 0.1, >= 0.1.4) + kramdown-merge (= 7.1.0) + markdown-merge (= 7.1.0) + markly-merge (= 7.1.0) + prism-merge (= 7.1.0) + psych-merge (= 7.1.0) + rbs (>= 3.10) + rbs-merge (= 7.1.0) + ruby-merge (= 7.1.0) + token-resolver (~> 2.0, >= 2.0.4) + toml-merge (= 7.1.0) + toml-rb (~> 4.2) + tree_haver (= 7.1.0) + yaml-merge (= 7.1.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge + specs: + kramdown-merge (7.1.0) + kramdown (~> 2.5) + markdown-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge + specs: + markdown-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge + specs: + markly-merge (7.1.0) + markdown-merge (= 7.1.0) + markly (~> 0.9) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge + specs: + parslet-toml-merge (7.1.0) + toml (~> 0.3) + toml-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge + specs: + plain-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge + specs: + prism-merge (7.1.0) + prism (~> 1.6) + ruby-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge + specs: + psych-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + yaml-merge (= 7.1.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge + specs: + rbs-merge (7.1.0) + ast-merge (= 7.1.0) + rbs (>= 3.10) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge + specs: + ruby-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge + specs: + rust-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb + specs: + smorg-rb (7.1.0) + ast-merge (= 7.1.0) + ast-merge-git (= 7.1.0) + go-merge (= 7.1.0) + json-merge (= 7.1.0) + kettle-jem (= 7.1.0) + markly-merge (= 7.1.0) + plain-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge + specs: + toml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver + specs: + tree_haver (7.1.0) + citrus (~> 3.0) + parslet (~> 2.0) + tree_sitter_language_pack (>= 1.13.2, < 2.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge + specs: + typescript-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge + specs: + zip-merge (7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + GEM remote: https://gem.coop/ specs: @@ -17,11 +276,6 @@ GEM rake (>= 10) thor (>= 0.14) ast (2.4.3) - ast-merge (7.1.0) - benchmark - token-resolver (~> 2.0, >= 2.0.4) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) backports (3.25.3) benchmark (0.5.0) bigdecimal (4.1.2) @@ -30,6 +284,7 @@ GEM thor (~> 1.0) citrus (3.0.2) cmdparse (3.0.7) + commonmarker (2.9.0-x86_64-linux) concurrent-ruby (1.3.7) date (3.5.1) debug (1.11.1) @@ -93,6 +348,8 @@ GEM kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) + kettle-drift (1.0.6) + version_gem (~> 1.1, >= 1.1.14) kettle-rb (0.1.4) kettle-soup-cover (1.1.3) simplecov (~> 0.22) @@ -121,6 +378,7 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) + markly (0.16.0) mutex_m (0.3.0) nokogiri (1.19.4-aarch64-linux-gnu) racc (~> 1.4) @@ -128,13 +386,11 @@ GEM racc (~> 1.4) nokogiri (1.19.4-arm64-darwin) racc (~> 1.4) - nokogiri (1.19.4-x86_64-darwin) - racc (~> 1.4) nokogiri (1.19.4-x86_64-linux-gnu) racc (~> 1.4) nokogiri (1.19.4-x86_64-linux-musl) racc (~> 1.4) - nomono (1.0.8) + nomono (1.0.9) openssl (4.0.2) ostruct (0.6.3) parallel (1.28.0) @@ -257,6 +513,8 @@ GEM ruby-progressbar (1.13.0) ruby_engine (2.0.3) ruby_version (1.0.3) + service_actor (3.9.4) + zeitwerk (>= 1.0) silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) @@ -309,17 +567,15 @@ GEM token-resolver (2.0.4) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.13) - tree_haver (7.1.0) - citrus (~> 3.0) - parslet (~> 2.0) - tree_sitter_language_pack (>= 1.13.2, < 2.0) - version_gem (~> 1.1, >= 1.1.9) + toml (0.3.0) + parslet (>= 1.8.0, < 3.0.0) + toml-rb (4.2.0) + citrus (~> 3.0, > 3.0) + racc (~> 1.7) tree_sitter_language_pack (1.13.3-aarch64-linux) sorbet-runtime (~> 0.5) tree_sitter_language_pack (1.13.3-arm64-darwin) sorbet-runtime (~> 0.5) - tree_sitter_language_pack (1.13.3-x86_64-darwin) - sorbet-runtime (~> 0.5) tree_sitter_language_pack (1.13.3-x86_64-linux) sorbet-runtime (~> 0.5) tsort (0.2.0) @@ -361,29 +617,52 @@ PLATFORMS aarch64-linux-gnu aarch64-linux-musl arm64-darwin - x86_64-darwin + x86_64-linux x86_64-linux-gnu x86_64-linux-musl DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) + ast-crispr! + ast-crispr-markdown-markly! + ast-crispr-ruby-prism! + ast-merge! + ast-merge-git! + ast-template! + bash-merge! benchmark (~> 0.5, >= 0.5.0) + binary-merge! bundler-audit (~> 0.9.3) + citrus-toml-merge! + commonmarker-merge! debug (>= 1.1) + dotenv-merge! erb (~> 6.0, >= 6.0.4) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.0) + go-merge! irb (~> 1.17) + json-merge! kettle-dev (~> 2.0, >= 2.2.25) + kettle-drift (~> 1.0, >= 1.0.5) + kettle-jem! kettle-soup-cover (~> 1.0, >= 1.1.3) kettle-test (~> 2.0, >= 2.0.9) kramdown (~> 2.5, >= 2.5.1) + kramdown-merge! kramdown-parser-gfm (~> 1.1) + markdown-merge! + markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) + parslet-toml-merge! + plain-merge! + prism-merge! + psych-merge! rake (~> 13.0) rbs (>= 3.0) + rbs-merge! rdoc (~> 6.11) reek (~> 6.5) require_bench (~> 1.0, >= 1.0.4) @@ -392,11 +671,17 @@ DEPENDENCIES rubocop-packaging (~> 0.6, >= 0.6.0) rubocop-rspec (~> 3.6) rubocop-ruby3_2 (~> 3.0.0) + ruby-merge! ruby-progressbar (~> 1.13) + rust-merge! + smorg-rb! standard (>= 1.50) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) + toml-merge! + tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) + typescript-merge! yaml-converter (~> 0.1) yaml-merge! yard (~> 0.9, >= 0.9.44) @@ -405,19 +690,30 @@ DEPENDENCIES yard-relative_markdown_links (~> 0.6) yard-timekeeper (~> 0.1) yard-yaml (~> 0.1, >= 0.1.2) + zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af ansi (1.6.0) sha256=ac9ea0c0ea8d32fb4e271348e609963ac78882f34b73836c2a02b3622e666658 appraisal2 (3.2.0) sha256=ccd0b767ac4060cd7af6d16747459b6990f49c39c7b4fb1f7d1146b1e97c492f ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 + ast-crispr (7.1.0) + ast-crispr-markdown-markly (7.1.0) + ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) + ast-merge-git (7.1.0) + ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 + bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd + binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 + citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 + commonmarker (2.9.0-x86_64-linux) + commonmarker-merge (7.1.0) concurrent-ruby (1.3.7) sha256=4412caec3a5ea2e5fdc52076724c071a81f2c0593d83b2ac8cbb8ca63b3151b0 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 @@ -425,6 +721,7 @@ CHECKSUMS diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 docile (1.4.1) sha256=96159be799bfa73cdb721b840e9802126e4e03dfc26863db73647204c727f21e + dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -437,42 +734,54 @@ CHECKSUMS gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f + go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 + json-merge (7.1.0) kettle-dev (2.3.7) sha256=eb370113cd030d03cbe2d33b31c99858951017e5ad21a17e9ed89dc3770028ee + kettle-drift (1.0.6) + kettle-jem (7.1.0) kettle-rb (0.1.4) sha256=9cef7ce4f7021666b7222292f29051e51eaf042e8a5db11f3f4dd72f74243fc1 kettle-soup-cover (1.1.3) sha256=a373827da22a7131d093afd32945e5b7d7a10a01ebfdded8fd2cb8230d69c8ad kettle-test (2.0.11) sha256=c710c90f7ab79d51f9452f0c09f5f90657e7a893f63583855c164d0b1b107ab2 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa + kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 + markdown-merge (7.1.0) + markly (0.16.0) + markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-aarch64-linux-gnu) sha256=1269fb644a6de405057a53dd5c762b1209b43ca7424f839454d3dbc677c31a8f nokogiri (1.19.4-aarch64-linux-musl) sha256=35c65b9ce72b3bb03207bdbe7067915019dc18c1b9b59139684bd6690fdd01af nokogiri (1.19.4-arm64-darwin) sha256=a46db9853286e6597b36ebc6953817d15acf3a299583eb3f89fdc6f91dd63527 - nokogiri (1.19.4-x86_64-darwin) sha256=7fd17057d3e1f00e9954a74b3cd76595d3d4a5ef233b7ed9599047c204f70551 nokogiri (1.19.4-x86_64-linux-gnu) sha256=379fae440b28915e3f19d752ce2dcf8465ed2b2fbefd2a7ca0dd497bc981a06a nokogiri (1.19.4-x86_64-linux-musl) sha256=17dfb7c1fa194ae02fbf7c51a7afc8d278045ab3fdacfd86f91d02d7b274470b - nomono (1.0.8) sha256=bf4b9b426cbf216ab17b70db474f691b8ae1f1e29de8db4b0ecd405e6e7e1c80 + nomono (1.0.9) openssl (4.0.2) sha256=1037ad2868ae58df9ad917891c0c0f9815a1172f6846d4bcdd508e4c2ee747c2 ostruct (0.6.3) sha256=95a2ed4a4bd1d190784e666b47b2d3f078e4a9efda2fccf18f84ddc6538ed912 parallel (1.28.0) sha256=33e6de1484baf2524792d178b0913fc8eb94c628d6cfe45599ad4458c638c970 parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 + parslet-toml-merge (7.1.0) + plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 + prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 + psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 + rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb @@ -500,9 +809,12 @@ CHECKSUMS rubocop-rspec (3.10.2) sha256=0b3e2ecc592cd10ecbf0095bb58d1e357905276e069643523cc19eb7495f65e2 rubocop-ruby3_2 (3.0.7) sha256=f53dd6d286fb05186214fc6ec116783e7f837030918e8931c05de773e98f8466 rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 + ruby-merge (7.1.0) ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 + rust-merge (7.1.0) + service_actor (3.9.4) silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (0.22.0) sha256=fe2622c7834ff23b98066bb0a854284b2729a569ac659f82621fc22ef36213a5 simplecov-cobertura (3.2.0) sha256=70d702658677fcb20e5aceb6915ccf8bc62ff2ccd38b62b3ad5c9db5c0888740 @@ -511,6 +823,7 @@ CHECKSUMS simplecov-lcov (0.9.0) sha256=7a77a31e200a595ed4b0249493056efd0c920601f53d2ef135ca34ee796346cd simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_json_formatter (0.1.4) sha256=529418fbe8de1713ac2b2d612aa3daa56d316975d307244399fa4838c601b428 + smorg-rb (7.1.0) sorbet-runtime (0.6.13347) sha256=54e7221d9f4b63f58aec79f3043752a9ba7810347c6ae0d903531591cc2d5f01 standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b @@ -524,13 +837,16 @@ CHECKSUMS timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.4) sha256=33b926958f504525bba3ed511ab66fbcbf8ef30390815e931436b30f27ffcad0 + toml (0.3.0) + toml-merge (7.1.0) + toml-rb (4.2.0) tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-aarch64-linux) sha256=55ffc7c87868cb45658338363d9eba51b4a8b0259aa88e4de368d2bd1d52fea4 tree_sitter_language_pack (1.13.3-arm64-darwin) sha256=bc2498db605f212a1dbd2465ed3f65190d7da786f6ed5d30fcf958121aeb4a5c - tree_sitter_language_pack (1.13.3-x86_64-darwin) sha256=061f7da6e1cc4ba936fad436ee0653d7dfdfa4aa879cf555403e3aa373d43966 tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 + typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 @@ -543,6 +859,7 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 + zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH diff --git a/gems/yaml-merge/Rakefile b/gems/yaml-merge/Rakefile index 337da9a15..1432d5c49 100644 --- a/gems/yaml-merge/Rakefile +++ b/gems/yaml-merge/Rakefile @@ -130,23 +130,23 @@ end ### DUPLICATE DRIFT TASKS begin - require 'kettle/drift' + require "kettle/drift" Kettle::Drift.install_tasks rescue LoadError - desc('(stub) kettle:drift:check is unavailable') - task('kettle:drift:check') do + desc("(stub) kettle:drift:check is unavailable") + task("kettle:drift:check") do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc('(stub) kettle:drift:update is unavailable') - task('kettle:drift:update') do + desc("(stub) kettle:drift:update is unavailable") + task("kettle:drift:update") do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc('(stub) kettle:drift:force_update is unavailable') - task('kettle:drift:force_update') do + desc("(stub) kettle:drift:force_update is unavailable") + task("kettle:drift:force_update") do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc('(stub) kettle:drift is unavailable') - task('kettle:drift' => 'kettle:drift:update') + desc("(stub) kettle:drift is unavailable") + task("kettle:drift" => "kettle:drift:update") end ### TEMPLATING TASKS diff --git a/gems/yaml-merge/lib/yaml/merge/version.rb b/gems/yaml-merge/lib/yaml/merge/version.rb index 418cfb7b8..e1303b9fe 100644 --- a/gems/yaml-merge/lib/yaml/merge/version.rb +++ b/gems/yaml-merge/lib/yaml/merge/version.rb @@ -3,7 +3,7 @@ module Yaml module Merge module Version - VERSION = '7.1.0' + VERSION = "7.1.0" end VERSION = Version::VERSION # Traditional Constant Location end From c8bcb7f04ef11b0ae361487d314ffd16437d2d4d Mon Sep 17 00:00:00 2001 From: "Peter H. Boling" Date: Tue, 21 Jul 2026 13:53:22 -0600 Subject: [PATCH 128/188] =?UTF-8?q?=F0=9F=8E=A8=20Template=20bootstrap=20b?= =?UTF-8?q?y=20kettle-jem=20v7.1.0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gems/dotenv-merge/Gemfile.lock | 30 +- gems/html-merge/Gemfile.lock | 411 +----------------- gems/html-merge/README.md | 58 +-- .../gemfiles/modular/erb/r3/v5.0.gemfile | 2 +- .../gemfiles/modular/erb/r4/v5.0.gemfile | 2 +- .../gemfiles/modular/runtime_heads.gemfile | 3 - .../html-merge/gemfiles/modular/style.gemfile | 2 +- gems/rbs-merge/.kettle-drift.lock | 9 - gems/rbs-merge/.rubocop_gradual.lock | 401 ----------------- gems/rbs-merge/Gemfile | 70 ++- gems/rbs-merge/Gemfile.lock | 182 +++++--- gems/rbs-merge/README.md | 1 - gems/rbs-merge/Rakefile | 18 +- .../modular/benchmark/r4/v0.5.gemfile | 2 +- .../gemfiles/modular/benchmark/vHEAD.gemfile | 2 +- .../gemfiles/modular/cgi/r4/v0.5.gemfile | 2 +- .../gemfiles/modular/cgi/vHEAD.gemfile | 2 +- .../gemfiles/modular/coverage.gemfile | 6 +- .../gemfiles/modular/coverage_local.gemfile | 42 +- gems/rbs-merge/gemfiles/modular/debug.gemfile | 4 +- .../gemfiles/modular/documentation.gemfile | 24 +- .../modular/documentation_local.gemfile | 30 +- .../gemfiles/modular/erb/r2/v3.0.gemfile | 2 +- .../gemfiles/modular/erb/r3/v5.0.gemfile | 2 +- .../gemfiles/modular/erb/r4/v5.0.gemfile | 2 +- .../gemfiles/modular/erb/vHEAD.gemfile | 2 +- .../modular/json/truffleruby_22_3.gemfile | 4 +- .../modular/json/truffleruby_23_0.gemfile | 4 +- .../modular/json/truffleruby_23_1.gemfile | 4 +- .../gemfiles/modular/mutex_m/r2/v0.3.gemfile | 2 +- .../gemfiles/modular/mutex_m/r3/v0.3.gemfile | 2 +- .../gemfiles/modular/mutex_m/r4/v0.3.gemfile | 2 +- .../gemfiles/modular/mutex_m/vHEAD.gemfile | 2 +- .../gemfiles/modular/optional.gemfile | 2 +- gems/rbs-merge/gemfiles/modular/rspec.gemfile | 8 +- .../gemfiles/modular/runtime_heads.gemfile | 2 +- .../gemfiles/modular/stringio/r2/v3.0.gemfile | 2 +- .../gemfiles/modular/stringio/r3/v3.0.gemfile | 2 +- .../gemfiles/modular/stringio/r4/v3.0.gemfile | 2 +- .../gemfiles/modular/stringio/vHEAD.gemfile | 2 +- gems/rbs-merge/gemfiles/modular/style.gemfile | 24 +- .../gemfiles/modular/style_local.gemfile | 32 +- .../gemfiles/modular/templating.gemfile | 12 +- .../gemfiles/modular/templating_local.gemfile | 44 +- .../gemfiles/modular/webrick/r4/v1.9.gemfile | 2 +- .../gemfiles/modular/webrick/vHEAD.gemfile | 2 +- .../gemfiles/modular/x_std_libs.gemfile | 14 +- .../modular/x_std_libs/r2/libs.gemfile | 6 +- .../modular/x_std_libs/r3/libs.gemfile | 6 +- .../modular/x_std_libs/r4/libs.gemfile | 12 +- .../gemfiles/modular/x_std_libs/vHEAD.gemfile | 12 +- gems/toml-merge/Gemfile.lock | 353 ++++++++++++++- 52 files changed, 721 insertions(+), 1149 deletions(-) delete mode 100644 gems/rbs-merge/.rubocop_gradual.lock diff --git a/gems/dotenv-merge/Gemfile.lock b/gems/dotenv-merge/Gemfile.lock index ed1c86be9..ee361ae35 100644 --- a/gems/dotenv-merge/Gemfile.lock +++ b/gems/dotenv-merge/Gemfile.lock @@ -6,24 +6,6 @@ PATH tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.14) -PATH - remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/ast-merge - specs: - ast-merge (7.1.0) - benchmark - token-resolver (~> 2.0, >= 2.0.4) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/tree_haver - specs: - tree_haver (7.1.0) - citrus (~> 3.0) - parslet (~> 2.0) - tree_sitter_language_pack (>= 1.13.2, < 2.0) - version_gem (~> 1.1, >= 1.1.9) - GEM remote: https://gem.coop/ specs: @@ -39,6 +21,11 @@ GEM rubocop (>= 1.0) version_gem (~> 1.1, >= 1.1.14) ast (2.4.3) + ast-merge (7.1.0) + benchmark + token-resolver (~> 2.0, >= 2.0.4) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) backports (3.25.3) benchmark (0.5.0) bigdecimal (4.1.2) @@ -354,6 +341,11 @@ GEM token-resolver (2.0.5) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.14) + tree_haver (7.1.0) + citrus (~> 3.0) + parslet (~> 2.0) + tree_sitter_language_pack (>= 1.13.2, < 2.0) + version_gem (~> 1.1, >= 1.1.9) tree_sitter_language_pack (1.13.3-aarch64-linux) sorbet-runtime (~> 0.5) tree_sitter_language_pack (1.13.3-arm64-darwin) @@ -408,7 +400,6 @@ DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.2, >= 3.2.0) appraisal2-rubocop (~> 1.0, >= 1.0.0) - ast-merge! benchmark (~> 0.5, >= 0.5.0) bundler-audit (~> 0.9.3) cgi (~> 0.5) @@ -441,7 +432,6 @@ DEPENDENCIES standard (~> 1.56, >= 1.56.0) stone_checksums (~> 1.0, >= 1.0.6) stringio (>= 3.0) - tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) turbo_tests2 (~> 3.2, >= 3.2.0) webrick (~> 1.9) diff --git a/gems/html-merge/Gemfile.lock b/gems/html-merge/Gemfile.lock index a76145aab..2f923463a 100644 --- a/gems/html-merge/Gemfile.lock +++ b/gems/html-merge/Gemfile.lock @@ -8,23 +8,7 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly - specs: - ast-crispr-markdown-markly (7.1.0) - ast-crispr (= 7.1.0) - markly-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism - specs: - ast-crispr-ruby-prism (7.1.0) - ast-crispr (= 7.1.0) - prism-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr specs: ast-crispr (7.1.0) ast-merge (= 7.1.0) @@ -32,15 +16,7 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git - specs: - ast-merge-git (7.1.0) - ast-merge (= 7.1.0) - json-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/ast-merge specs: ast-merge (7.1.0) benchmark @@ -49,201 +25,7 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template - specs: - ast-template (7.1.0) - ast-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge - specs: - bash-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge - specs: - binary-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge - specs: - citrus-toml-merge (7.1.0) - toml-merge (= 7.1.0) - toml-rb (~> 4.1) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge - specs: - commonmarker-merge (7.1.0) - commonmarker (~> 2.2) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge - specs: - dotenv-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge - specs: - go-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge - specs: - json-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem - specs: - kettle-jem (7.1.0) - addressable (>= 2.8, < 3) - ast-crispr-markdown-markly (= 7.1.0) - ast-crispr-ruby-prism (= 7.1.0) - ast-merge (= 7.1.0) - bash-merge (= 7.1.0) - citrus-toml-merge (= 7.1.0) - commonmarker-merge (= 7.1.0) - dotenv-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-dev (~> 2.3, >= 2.3.5) - kettle-rb (~> 0.1, >= 0.1.4) - kramdown-merge (= 7.1.0) - markdown-merge (= 7.1.0) - markly-merge (= 7.1.0) - prism-merge (= 7.1.0) - psych-merge (= 7.1.0) - rbs (>= 3.10) - rbs-merge (= 7.1.0) - ruby-merge (= 7.1.0) - token-resolver (~> 2.0, >= 2.0.4) - toml-merge (= 7.1.0) - toml-rb (~> 4.2) - tree_haver (= 7.1.0) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge - specs: - kramdown-merge (7.1.0) - kramdown (~> 2.5) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge - specs: - markdown-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge - specs: - markly-merge (7.1.0) - markdown-merge (= 7.1.0) - markly (~> 0.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge - specs: - parslet-toml-merge (7.1.0) - toml (~> 0.3) - toml-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge - specs: - plain-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge - specs: - prism-merge (7.1.0) - prism (~> 1.6) - ruby-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge - specs: - psych-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge - specs: - rbs-merge (7.1.0) - ast-merge (= 7.1.0) - rbs (>= 3.10) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge - specs: - ruby-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge - specs: - rust-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb - specs: - smorg-rb (7.1.0) - ast-merge (= 7.1.0) - ast-merge-git (= 7.1.0) - go-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-jem (= 7.1.0) - markly-merge (= 7.1.0) - plain-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge - specs: - toml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/tree_haver specs: tree_haver (7.1.0) citrus (~> 3.0) @@ -251,29 +33,6 @@ PATH tree_sitter_language_pack (>= 1.13.2, < 2.0) version_gem (~> 1.1, >= 1.1.9) -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge - specs: - typescript-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge - specs: - yaml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge - specs: - zip-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - GEM remote: https://gem.coop/ specs: @@ -289,19 +48,16 @@ GEM rubocop (>= 1.0) version_gem (~> 1.1, >= 1.1.14) ast (2.4.3) - backports (3.25.3) benchmark (0.5.0) bigdecimal (4.1.2) cgi (0.5.2) citrus (3.0.2) cmdparse (3.0.7) - commonmarker (2.9.0-x86_64-linux) concurrent-ruby (1.3.8) date (3.5.1) debug (1.11.1) irb (~> 1.10) reline (>= 0.3.8) - delegate (0.6.1) diff-lcs (1.6.2) diffy (3.4.4) dry-configurable (1.4.0) @@ -333,8 +89,7 @@ GEM dry-inflector (~> 1.0) dry-logic (~> 1.4) zeitwerk (~> 2.6) - emoji_regex (15.0.0) - erb (6.0.5) + erb (6.0.6) gem_bench (2.0.5) bundler (>= 1.14) version_gem (~> 1.1, >= 1.1.4) @@ -351,32 +106,13 @@ GEM rdoc (>= 4.0.0) reline (>= 0.4.2) json (2.21.1) - kettle-dev (2.3.8) - emoji_regex (>= 15.0) - kettle-rb (~> 0.1, >= 0.1.2) - kettle-test (~> 2.0, >= 2.0.4) - ruby-progressbar (~> 1.13) - kettle-drift (1.0.6) - version_gem (~> 1.1, >= 1.1.14) - kettle-rb (0.1.5) - kettle-soup-cover (3.0.3) + kettle-soup-cover (3.0.4) kettle-wash (~> 0.1, >= 0.1.0) simplecov (>= 1.0) simplecov-cobertura (>= 4.0) simplecov-console (~> 0.9, >= 0.9.5) simplecov-rcov (~> 0.3, >= 0.3.7) simplecov_lcov_formatter (~> 0.9, >= 0.9.0) - kettle-test (2.0.12) - appraisal2 (~> 3.0, >= 3.0.6) - backports (~> 3.0) - rspec (~> 3.0) - rspec-block_is_expected (~> 1.0, >= 1.0.6) - rspec-pending_for (~> 0.1, >= 0.1.20) - rspec-stubbed_env (~> 1.0, >= 1.0.6) - rspec_junit_formatter (~> 0.6) - silent_stream (~> 1.0, >= 1.0.12) - timecop-rspec (~> 1.0, >= 1.0.3) - turbo_tests2 (~> 3.1, >= 3.1.12) kettle-wash (0.1.1) version_gem (~> 1.1, >= 1.1.14) kramdown (2.5.2) @@ -386,7 +122,6 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) - markly (0.16.0) mutex_m (0.3.0) nokogiri (1.19.4-x86_64-linux-gnu) racc (~> 1.4) @@ -394,8 +129,6 @@ GEM openssl (4.0.2) ostruct (0.6.3) parallel (1.28.0) - parallel_tests (5.7.0) - parallel parser (3.3.12.0) ast (~> 2.4.1) racc @@ -429,27 +162,6 @@ GEM reline (0.6.3) io-console (~> 0.5) rexml (3.4.4) - rspec (3.13.2) - rspec-core (~> 3.13.0) - rspec-expectations (~> 3.13.0) - rspec-mocks (~> 3.13.0) - rspec-block_is_expected (1.0.6) - rspec-core (3.13.6) - rspec-support (~> 3.13.0) - rspec-expectations (3.13.5) - diff-lcs (>= 1.2.0, < 2.0) - rspec-support (~> 3.13.0) - rspec-mocks (3.13.8) - diff-lcs (>= 1.2.0, < 2.0) - rspec-support (~> 3.13.0) - rspec-pending_for (0.1.21) - rspec-core (~> 3.0) - ruby_engine (~> 2.0) - ruby_version (~> 1.0) - rspec-stubbed_env (1.0.6) - rspec-support (3.13.7) - rspec_junit_formatter (0.6.0) - rspec-core (>= 2, < 4, != 2.12.0) rubocop (1.88.2) json (~> 2.3) language_server-protocol (~> 3.17.0.2) @@ -495,7 +207,7 @@ GEM rubocop-md (2.0.4) lint_roller (~> 1.1) rubocop (>= 1.72.1) - rubocop-minitest (0.39.1) + rubocop-minitest (0.40.0) lint_roller (~> 1.1) rubocop (>= 1.75.0, < 2.0) rubocop-ast (>= 1.38.0, < 2.0) @@ -537,13 +249,8 @@ GEM rubocop (~> 1.72, >= 1.72.1) rubocop-ast (>= 1.44.0, < 2.0) ruby-progressbar (1.13.0) - ruby_engine (2.0.3) - ruby_version (1.0.3) service_actor (3.9.4) zeitwerk (>= 1.0) - silent_stream (1.0.12) - logger (~> 1.2) - version_gem (>= 1.1.8, < 3) simplecov (1.0.2) simplecov-cobertura (4.0.0) rexml @@ -585,26 +292,12 @@ GEM terminal-table (4.0.0) unicode-display_width (>= 1.1.1, < 4) thor (1.5.0) - timecop (0.9.11) - timecop-rspec (1.0.3) - delegate (~> 0.1) - rspec (~> 3.0) - timecop (>= 0.7, < 1) token-resolver (2.0.5) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.14) - toml (0.3.0) - parslet (>= 1.8.0, < 3.0.0) - toml-rb (4.2.0) - citrus (~> 3.0, > 3.0) - racc (~> 1.7) tree_sitter_language_pack (1.13.3-x86_64-linux) sorbet-runtime (~> 0.5) tsort (0.2.0) - turbo_tests2 (3.2.0) - parallel_tests (>= 3.3.0, < 6) - rspec (>= 3.10) - version_gem (~> 1.1, >= 1.1.14) unicode-display_width (3.2.0) unicode-emoji (~> 4.1) unicode-emoji (4.2.0) @@ -642,69 +335,41 @@ DEPENDENCIES addressable (>= 2.8, < 3) appraisal2-rubocop (~> 1.0, >= 1.0.0) ast-crispr! - ast-crispr-markdown-markly! - ast-crispr-ruby-prism! ast-merge! - ast-merge-git! - ast-template! - bash-merge! benchmark (~> 0.5, >= 0.5.0) - binary-merge! cgi (~> 0.5) - citrus-toml-merge! - commonmarker-merge! debug (>= 1.1) - dotenv-merge! - erb (~> 6.0, >= 6.0.5) + erb (~> 6.0, >= 6.0.6) gem_bench (~> 2.0, >= 2.0.5) - go-merge! html-merge! irb (~> 1.17) - json-merge! - kettle-drift (~> 1.0, >= 1.0.6) - kettle-jem! kettle-soup-cover (~> 3.0, >= 3.0.3) kramdown (~> 2.5, >= 2.5.2) - kramdown-merge! kramdown-parser-gfm (~> 1.1) - markdown-merge! - markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) - parslet-toml-merge! - plain-merge! - prism-merge! - psych-merge! rbs (>= 3.0) - rbs-merge! rdoc (~> 6.11) reek (~> 6.5, >= 6.5.0) rubocop-gradual (~> 0.4, >= 0.4.0) rubocop-lts (~> 24.2, >= 24.2.1) rubocop-lts-rspec (~> 1.0, >= 1.0.5) - rubocop-minitest (~> 0.39, >= 0.39.1) + rubocop-minitest (~> 0.40, >= 0.40.0) rubocop-on-rbs (~> 2.0, >= 2.0.0) rubocop-packaging (~> 0.6, >= 0.6.0) rubocop-ruby3_2 (~> 3.0, >= 3.0.6) - ruby-merge! - rust-merge! - smorg-rb! standard (~> 1.56, >= 1.56.0) stringio (>= 3.0) - toml-merge! tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) - typescript-merge! webrick (~> 1.9) yaml-converter (~> 0.2, >= 0.2.3) - yaml-merge! yard (~> 0.9, >= 0.9.45) yard-fence (~> 0.9, >= 0.9.6) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) yard-timekeeper (~> 0.2, >= 0.2.4) yard-yaml (~> 0.2, >= 0.2.3) - zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af @@ -713,29 +378,17 @@ CHECKSUMS appraisal2-rubocop (1.0.0) sha256=b71410fbb014befda5340605a605b7f6f3f012739baf0acc5b4351b592c3258d ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 ast-crispr (7.1.0) - ast-crispr-markdown-markly (7.1.0) - ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) - ast-merge-git (7.1.0) - ast-template (7.1.0) - backports (3.25.3) - bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd - binary-merge (7.1.0) cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 - citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 - commonmarker (2.9.0-x86_64-linux) - commonmarker-merge (7.1.0) concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 - delegate (0.6.1) diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 - dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -743,70 +396,43 @@ CHECKSUMS dry-logic (1.6.0) sha256=da6fedbc0f90fc41f9b0cc7e6f05f5d529d1efaef6c8dcc8e0733f685745cea2 dry-schema (1.16.0) sha256=cd3aaeabc0f1af66ec82a29096d4c4fb92a0a58b9dae29a22b1bbceb78985727 dry-types (1.9.1) sha256=baebeecdb9f8395d6c9d227b62011279440943e3ef2468fe8ccc1ba11467f178 - emoji_regex (15.0.0) - erb (6.0.5) sha256=858e63488cb796c9daba8b6e9ff4b3879c395022049be9a66a8e00980e612eac + erb (6.0.6) sha256=a9b24986700f5bf127c4f297c5403c3ca41b83b0a316c0cd09a096b56e644ae5 gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 - go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 html-merge (7.1.0) io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 - json-merge (7.1.0) - kettle-dev (2.3.8) - kettle-drift (1.0.6) - kettle-jem (7.1.0) - kettle-rb (0.1.5) - kettle-soup-cover (3.0.3) sha256=5919649be35690e4580299a41ac7c44a9548a7ca38561ffdd3c683c9d63e6f9b - kettle-test (2.0.12) + kettle-soup-cover (3.0.4) kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa - kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 - markdown-merge (7.1.0) - markly (0.16.0) - markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-x86_64-linux-gnu) sha256=379fae440b28915e3f19d752ce2dcf8465ed2b2fbefd2a7ca0dd497bc981a06a nomono (1.0.9) openssl (4.0.2) sha256=1037ad2868ae58df9ad917891c0c0f9815a1172f6846d4bcdd508e4c2ee747c2 ostruct (0.6.3) sha256=95a2ed4a4bd1d190784e666b47b2d3f078e4a9efda2fccf18f84ddc6538ed912 parallel (1.28.0) sha256=33e6de1484baf2524792d178b0913fc8eb94c628d6cfe45599ad4458c638c970 - parallel_tests (5.7.0) parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 - parslet-toml-merge (7.1.0) - plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 - prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 - psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 - rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb reline (0.6.3) sha256=1198b04973565b36ec0f11542ab3f5cfeeec34823f4e54cebde90968092b1835 rexml (3.4.4) sha256=19e0a2c3425dfbf2d4fc1189747bdb2f849b6c5e74180401b15734bc97b5d142 - rspec (3.13.2) - rspec-block_is_expected (1.0.6) - rspec-core (3.13.6) - rspec-expectations (3.13.5) - rspec-mocks (3.13.8) - rspec-pending_for (0.1.21) - rspec-stubbed_env (1.0.6) - rspec-support (3.13.7) - rspec_junit_formatter (0.6.0) rubocop (1.88.2) sha256=8def251c90cd955feb4daa3edc0ab56893250c4ce90ef81e6c80c03f9a939bbf rubocop-ast (1.50.0) sha256=b9ca88300da0803ee222ad20cdb30494c0a784eed06fdc35d254b06d662788db rubocop-capybara (2.23.0) sha256=f9ea1ba3a7561ee8e88cf76fc378ce517ce5327155f305ee7b5c2500e5aee357 @@ -816,7 +442,7 @@ CHECKSUMS rubocop-lts (24.2.2) sha256=be6c745e1bb61daebd6af3cc3227c60f95be9f642a080773cad7df14c5f9f174 rubocop-lts-rspec (1.0.5) sha256=439552fd27440802cc499889e013bffa28aadc41adae5d4dfff3d984a2a809b4 rubocop-md (2.0.4) sha256=0d076b6b5e99dea2ddc928c4bd702497decb9a8400da7808091e02ebcafcfb93 - rubocop-minitest (0.39.1) sha256=998398d6da4026d297f0f9bf709a1eac5f2b6947c24431f94af08138510cf7ed + rubocop-minitest (0.40.0) sha256=353c698199115f12151144cf0b5a96f69bb9d77b660cf6536df2c4250c672a9d rubocop-on-rbs (2.0.0) sha256=ce74d1b3d5daead19f4b611623656c185821dfc9aed9c7079bb1e5d7d7c464be rubocop-packaging (0.6.0) sha256=fb92bd0fb48e6f8cdb1648d2249b0cd51c2497dcc87340132d22f01edbf558a7 rubocop-performance (1.26.1) sha256=cd19b936ff196df85829d264b522fd4f98b6c89ad271fa52744a8c11b8f71834 @@ -826,19 +452,13 @@ CHECKSUMS rubocop-rspec_rails (2.32.0) sha256=4a0d641c72f6ebb957534f539d9d0a62c47abd8ce0d0aeee1ef4701e892a9100 rubocop-ruby3_2 (3.0.7) sha256=f53dd6d286fb05186214fc6ec116783e7f837030918e8931c05de773e98f8466 rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 - ruby-merge (7.1.0) ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 - ruby_engine (2.0.3) - ruby_version (1.0.3) - rust-merge (7.1.0) service_actor (3.9.4) sha256=e63b523630b9a7e62959b2a90113b08d2565b5de9c148557b281ef847c9539ce - silent_stream (1.0.12) simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed - smorg-rb (7.1.0) sorbet-runtime (0.6.13347) sha256=54e7221d9f4b63f58aec79f3043752a9ba7810347c6ae0d903531591cc2d5f01 standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b @@ -849,23 +469,15 @@ CHECKSUMS strscan (3.1.8) sha256=aae2db611a225559f21ffbb71765c9a4e60fd262534a9ea84f4f11c7f32f679e terminal-table (4.0.0) sha256=f504793203f8251b2ea7c7068333053f0beeea26093ec9962e62ea79f94301d2 thor (1.5.0) sha256=e3a9e55fe857e44859ce104a84675ab6e8cd59c650a49106a05f55f136425e73 - timecop (0.9.11) - timecop-rspec (1.0.3) token-resolver (2.0.5) sha256=b852f924287ffb58a440856e862b056c8ad97e74b4b2526cee43e0771f40c25c - toml (0.3.0) - toml-merge (7.1.0) - toml-rb (4.2.0) tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f - turbo_tests2 (3.2.0) - typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 webrick (1.9.2) sha256=beb4a15fc474defed24a3bda4ffd88a490d517c9e4e6118c3edce59e45864131 yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 - yaml-merge (7.1.0) yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd @@ -873,7 +485,6 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 - zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH diff --git a/gems/html-merge/README.md b/gems/html-merge/README.md index 33abdeddf..303712d45 100644 --- a/gems/html-merge/README.md +++ b/gems/html-merge/README.md @@ -1,8 +1,8 @@ -pboling Logo by Aboling0, CC BY-SA 4.0 +structuredmerge Logo by Aboling0, CC BY-SA 4.0 # 💎 Html::Merge -[![Version][👽versioni]][👽version] [![GitHub tag (latest SemVer)][⛳️tag-img]][⛳️tag] [![License: MIT][📄license-img]][📄license] [![Downloads Rank][👽dl-ranki]][👽dl-rank] +[![Version][👽versioni]][👽version] [![GitHub tag (latest SemVer)][⛳️tag-img]][⛳️tag] [![License: MIT][📄license-img]][📄license] [![Downloads Rank][👽dl-ranki]][👽dl-rank] [![CI Current][🚎11-c-wfi]][🚎11-c-wf] `if ci_badges.map(&:color).detect { it != "green"}` ☝️ [let me know][✉️discord-invite], as I may have missed the [discord notification][✉️discord-invite]. @@ -25,7 +25,8 @@ I've summarized my thoughts in [this blog post](https://dev.to/galtzo/hostile-ta | Tokens to Remember | [![Gem name][⛳️name-img]][⛳️gem-name] [![Gem namespace][⛳️namespace-img]][⛳️gem-namespace] | |-------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| Support & Community | [![Join Me on Daily.dev's RubyFriends][✉️ruby-friends-img]][✉️ruby-friends] [![Live Chat on Discord][✉️discord-invite-img-ftb]][✉️discord-invite] [![Get help from me on Upwork][👨🏼‍🏫expsup-upwork-img]][👨🏼‍🏫expsup-upwork] [![Get help from me on Codementor][👨🏼‍🏫expsup-codementor-img]][👨🏼‍🏫expsup-codementor] | +| Works with MRI Ruby 4 | [![Ruby current Compat][💎ruby-c-i]][🚎11-c-wf]| +| Support & Community | [![Join Me on Daily.dev's RubyFriends][✉️ruby-friends-img]][✉️ruby-friends] [![Get help from RubyForum][✉️ruby-forum-img]][✉️ruby-forum] [![Live Chat on Discord][✉️discord-invite-img-ftb]][✉️discord-invite] [![Get help from me on Upwork][👨🏼‍🏫expsup-upwork-img]][👨🏼‍🏫expsup-upwork] [![Get help from me on Codementor][👨🏼‍🏫expsup-codementor-img]][👨🏼‍🏫expsup-codementor] | | Source | [![Source on GitLab.com][📜src-gl-img]][📜src-gl] [![Source on CodeBerg.org][📜src-cb-img]][📜src-cb] [![Source on Github.com][📜src-gh-img]][📜src-gh] [![The best SHA: dQw4w9WgXcQ!][🧮kloc-img]][🧮kloc] | | Documentation | [![Current release on RubyDoc.info][📜docs-cr-rd-img]][🚎yard-current] [![YARD on Galtzo.com][📜docs-head-rd-img]][🚎yard-head] [![Maintainer Blog][🚂maint-blog-img]][🚂maint-blog] [![GitLab Wiki][📜gl-wiki-img]][📜gl-wiki] [![GitHub Wiki][📜gh-wiki-img]][📜gh-wiki] | | Compliance | [![License: MIT][📄license-img]][📄license] [![Apache license compatibility: Category A][📄license-compat-img]][📄license-compat] [![📄ilo-declaration-img]][📄ilo-declaration] [![Security Policy][🔐security-img]][🔐security] [![Contributor Covenant 2.1][🪇conduct-img]][🪇conduct] [![SemVer 2.0.0][📌semver-img]][📌semver] | @@ -103,7 +104,7 @@ For most applications, prefer the [Pessimistic Version Constraint][📌pvc] with For example: ```ruby -spec.add_dependency("html-merge", "~> 0.0") +spec.add_dependency("html-merge", "~> 7.0") ```
        @@ -126,7 +127,7 @@ See [CHANGELOG.md][📌changelog] for a list of releases. The gem is available as open source under the terms of the [MIT](MIT.md) [![License: MIT][📄license-img]][📄license-ref]. -[gh-discussions]: https://github.com/pboling/html-merge/discussions +[gh-discussions]: https://github.com/structuredmerge/structuredmerge-ruby/discussions [⛳liberapay-img]: https://img.shields.io/liberapay/goal/pboling.svg?logo=liberapay&color=a51611&style=flat [⛳liberapay-bottom-img]: https://img.shields.io/liberapay/goal/pboling.svg?style=for-the-badge&logo=liberapay&color=a51611 [⛳liberapay]: https://liberapay.com/pboling/donate @@ -147,13 +148,15 @@ the [MIT](MIT.md) [![License: MIT][📄license-img]][📄license-ref]. [✉️discord-invite-img-ftb]: https://img.shields.io/discord/1373797679469170758?style=for-the-badge&logo=discord [✉️ruby-friends-img]: https://img.shields.io/badge/daily.dev-%F0%9F%92%8E_Ruby_Friends-0A0A0A?style=for-the-badge&logo=dailydotdev&logoColor=white [✉️ruby-friends]: https://app.daily.dev/squads/rubyfriends +[✉️ruby-forum-img]: https://img.shields.io/badge/RubyForum-Help-CC342D?style=for-the-badge&logo=ruby&logoColor=white +[✉️ruby-forum]: https://www.rubyforum.org/c/help/8 [✇bundle-group-pattern]: https://gist.github.com/pboling/4564780 -[⛳️gem-namespace]: https://github.com/pboling/html-merge +[⛳️gem-namespace]: https://github.com/structuredmerge/structuredmerge-ruby/tree/main/gems/html-merge [⛳️namespace-img]: https://img.shields.io/badge/namespace-Html::Merge-3C2D2D.svg?style=square&logo=ruby&logoColor=white [⛳️gem-name]: https://bestgems.org/gems/html-merge [⛳️name-img]: https://img.shields.io/badge/name-html--merge-3C2D2D.svg?style=square&logo=rubygems&logoColor=red -[⛳️tag-img]: https://img.shields.io/github/tag/pboling/html-merge.svg -[⛳️tag]: https://github.com/pboling/html-merge/releases +[⛳️tag-img]: https://img.shields.io/github/tag/structuredmerge/structuredmerge-ruby.svg +[⛳️tag]: https://github.com/structuredmerge/structuredmerge-ruby/releases [🚂maint-blog]: http://www.railsbling.com/tags/html-merge [🚂maint-blog-img]: https://img.shields.io/badge/blog-railsbling-0093D0.svg?style=for-the-badge&logo=rubyonrails&logoColor=orange [🚂maint-contact]: http://www.railsbling.com/contact @@ -188,47 +191,50 @@ the [MIT](MIT.md) [![License: MIT][📄license-img]][📄license-ref]. [💁🏼‍♂️peterboling]: http://www.peterboling.com [🚂railsbling]: http://www.railsbling.com [📜src-gl-img]: https://img.shields.io/badge/GitLab-FBA326?style=for-the-badge&logo=Gitlab&logoColor=orange -[📜src-gl]: https://gitlab.com/pboling/html-merge +[📜src-gl]: https://gitlab.com/structuredmerge/structuredmerge-ruby/-/tree/main/gems/html-merge [📜src-cb-img]: https://img.shields.io/badge/CodeBerg-4893CC?style=for-the-badge&logo=CodeBerg&logoColor=blue -[📜src-cb]: https://codeberg.org/pboling/html-merge +[📜src-cb]: https://codeberg.org/structuredmerge/structuredmerge-ruby/src/branch/main/gems/html-merge [📜src-gh-img]: https://img.shields.io/badge/GitHub-238636?style=for-the-badge&logo=Github&logoColor=green -[📜src-gh]: https://github.com/pboling/html-merge +[📜src-gh]: https://github.com/structuredmerge/structuredmerge-ruby/tree/main/gems/html-merge [📜docs-cr-rd-img]: https://img.shields.io/badge/RubyDoc-Current_Release-943CD2?style=for-the-badge&logo=readthedocs&logoColor=white [📜docs-head-rd-img]: https://img.shields.io/badge/YARD_on_Galtzo.com-HEAD-943CD2?style=for-the-badge&logo=readthedocs&logoColor=white -[📜gl-wiki]: https://gitlab.com/pboling/html-merge/-/wikis/home -[📜gh-wiki]: https://github.com/pboling/html-merge/wiki +[📜gl-wiki]: https://gitlab.com/structuredmerge/structuredmerge-ruby/-/wikis/home +[📜gh-wiki]: https://github.com/structuredmerge/structuredmerge-ruby/wiki [📜gl-wiki-img]: https://img.shields.io/badge/wiki-gitlab-943CD2.svg?style=for-the-badge&logo=gitlab&logoColor=white [📜gh-wiki-img]: https://img.shields.io/badge/wiki-github-943CD2.svg?style=for-the-badge&logo=github&logoColor=white [👽dl-rank]: https://bestgems.org/gems/html-merge [👽dl-ranki]: https://img.shields.io/gem/rd/html-merge.svg [👽version]: https://bestgems.org/gems/html-merge [👽versioni]: https://img.shields.io/gem/v/html-merge.svg -[🤝gh-issues]: https://github.com/pboling/html-merge/issues -[🤝gh-pulls]: https://github.com/pboling/html-merge/pulls -[🤝gl-issues]: https://gitlab.com/pboling/html-merge/-/issues -[🤝gl-pulls]: https://gitlab.com/pboling/html-merge/-/merge_requests -[🤝cb-issues]: https://codeberg.org/pboling/html-merge/issues -[🤝cb-pulls]: https://codeberg.org/pboling/html-merge/pulls +[🚎11-c-wf]: https://github.com/structuredmerge/structuredmerge-ruby/actions/workflows/current.yml +[🚎11-c-wfi]: https://github.com/structuredmerge/structuredmerge-ruby/actions/workflows/current.yml/badge.svg +[💎ruby-c-i]: https://img.shields.io/badge/Ruby-current-CC342D?style=for-the-badge&logo=ruby&logoColor=green +[🤝gh-issues]: https://github.com/structuredmerge/structuredmerge-ruby/issues +[🤝gh-pulls]: https://github.com/structuredmerge/structuredmerge-ruby/pulls +[🤝gl-issues]: https://gitlab.com/structuredmerge/structuredmerge-ruby/-/issues +[🤝gl-pulls]: https://gitlab.com/structuredmerge/structuredmerge-ruby/-/merge_requests +[🤝cb-issues]: https://codeberg.org/structuredmerge/structuredmerge-ruby/issues +[🤝cb-pulls]: https://codeberg.org/structuredmerge/structuredmerge-ruby/pulls [🤝cb-donate]: https://donate.codeberg.org/ -[🤝contributing]: https://github.com/pboling/html-merge/blob/main/CONTRIBUTING.md +[🤝contributing]: https://github.com/structuredmerge/structuredmerge-ruby/blob/main/CONTRIBUTING.md [🖐contrib-rocks]: https://contrib.rocks -[🖐contributors]: https://github.com/pboling/html-merge/graphs/contributors -[🖐contributors-img]: https://contrib.rocks/image?repo=pboling/html-merge -[🪇conduct]: https://github.com/pboling/html-merge/blob/main/CODE_OF_CONDUCT.md +[🖐contributors]: https://github.com/structuredmerge/structuredmerge-ruby/graphs/contributors +[🖐contributors-img]: https://contrib.rocks/image?repo=structuredmerge/structuredmerge-ruby +[🪇conduct]: https://github.com/structuredmerge/structuredmerge-ruby/blob/main/CODE_OF_CONDUCT.md [🪇conduct-img]: https://img.shields.io/badge/Contributor_Covenant-2.1-259D6C.svg [📌pvc]: http://guides.rubygems.org/patterns/#pessimistic-version-constraint [📌semver]: https://semver.org/spec/v2.0.0.html [📌semver-img]: https://img.shields.io/badge/semver-2.0.0-259D6C.svg?style=flat [📌semver-breaking]: https://github.com/semver/semver/issues/716#issuecomment-869336139 [📌major-versions-not-sacred]: https://tom.preston-werner.com/2022/05/23/major-version-numbers-are-not-sacred.html -[📌changelog]: https://github.com/pboling/html-merge/blob/main/CHANGELOG.md +[📌changelog]: https://github.com/structuredmerge/structuredmerge-ruby/blob/main/CHANGELOG.md [📗keep-changelog]: https://keepachangelog.com/en/1.0.0/ [📗keep-changelog-img]: https://img.shields.io/badge/keep--a--changelog-1.0.0-34495e.svg?style=flat [📌gitmoji]: https://gitmoji.dev [📌gitmoji-img]: https://img.shields.io/badge/gitmoji_commits-%20%F0%9F%98%9C%20%F0%9F%98%8D-34495e.svg?style=flat-square [🧮kloc]: https://www.youtube.com/watch?v=dQw4w9WgXcQ [🧮kloc-img]: https://img.shields.io/badge/KLOC-5.053-FFDD67.svg?style=for-the-badge&logo=YouTube&logoColor=blue -[🔐security]: https://github.com/pboling/html-merge/blob/main/SECURITY.md +[🔐security]: https://github.com/structuredmerge/structuredmerge-ruby/blob/main/SECURITY.md [🔐security-img]: https://img.shields.io/badge/security-policy-259D6C.svg?style=flat [📄copyright-notice-explainer]: https://opensource.stackexchange.com/questions/5778/why-do-licenses-such-as-the-mit-license-specify-a-single-year [📄license]: LICENSE.md @@ -241,7 +247,7 @@ the [MIT](MIT.md) [![License: MIT][📄license-img]][📄license-ref]. [🚎yard-current]: http://rubydoc.info/gems/html-merge [🚎yard-head]: https://html-merge.galtzo.com [💎stone_checksums]: https://github.com/galtzo-floss/stone_checksums -[💎SHA_checksums]: https://gitlab.com/pboling/html-merge/-/tree/main/checksums +[💎SHA_checksums]: https://gitlab.com/structuredmerge/structuredmerge-ruby/-/tree/main/checksums [💎rlts]: https://github.com/rubocop-lts/rubocop-lts [💎rlts-img]: https://img.shields.io/badge/code_style_&_linting-rubocop--lts-34495e.svg?plastic&logo=ruby&logoColor=white [💎appraisal2]: https://github.com/appraisal-rb/appraisal2 diff --git a/gems/html-merge/gemfiles/modular/erb/r3/v5.0.gemfile b/gems/html-merge/gemfiles/modular/erb/r3/v5.0.gemfile index 5bde0e077..1bd029cc1 100644 --- a/gems/html-merge/gemfiles/modular/erb/r3/v5.0.gemfile +++ b/gems/html-merge/gemfiles/modular/erb/r3/v5.0.gemfile @@ -1 +1 @@ -gem "erb", "~> 6.0", ">= 6.0.5" # ruby >= 3.2.0 +gem "erb", "~> 6.0", ">= 6.0.6" # ruby >= 3.2.0 diff --git a/gems/html-merge/gemfiles/modular/erb/r4/v5.0.gemfile b/gems/html-merge/gemfiles/modular/erb/r4/v5.0.gemfile index 5bde0e077..1bd029cc1 100644 --- a/gems/html-merge/gemfiles/modular/erb/r4/v5.0.gemfile +++ b/gems/html-merge/gemfiles/modular/erb/r4/v5.0.gemfile @@ -1 +1 @@ -gem "erb", "~> 6.0", ">= 6.0.5" # ruby >= 3.2.0 +gem "erb", "~> 6.0", ">= 6.0.6" # ruby >= 3.2.0 diff --git a/gems/html-merge/gemfiles/modular/runtime_heads.gemfile b/gems/html-merge/gemfiles/modular/runtime_heads.gemfile index 976bd444b..02f134c7f 100644 --- a/gems/html-merge/gemfiles/modular/runtime_heads.gemfile +++ b/gems/html-merge/gemfiles/modular/runtime_heads.gemfile @@ -8,7 +8,4 @@ # Test against HEAD of runtime dependencies so we can proactively file bugs -# Ruby >= 2.2 -gem "version_gem", github: "ruby-oauth/version_gem", branch: "main" - eval_gemfile("x_std_libs/vHEAD.gemfile") diff --git a/gems/html-merge/gemfiles/modular/style.gemfile b/gems/html-merge/gemfiles/modular/style.gemfile index f027dae4d..35de4dcd6 100644 --- a/gems/html-merge/gemfiles/modular/style.gemfile +++ b/gems/html-merge/gemfiles/modular/style.gemfile @@ -14,7 +14,7 @@ gem "reek", "~> 6.5", ">= 6.5.0" platform :mri do gem "appraisal2-rubocop", "~> 1.0", ">= 1.0.0", require: false gem "rubocop-gradual", "~> 0.4", ">= 0.4.0" - gem "rubocop-minitest", "~> 0.39", ">= 0.39.1" + gem "rubocop-minitest", "~> 0.40", ">= 0.40.0" gem "rubocop-on-rbs", "~> 2.0", ">= 2.0.0" # ruby >= 3.2.0 # gem "rubocop", "~> 1.73", ">= 1.73.2" # constrained by standard gem "rubocop-packaging", "~> 0.6", ">= 0.6.0" diff --git a/gems/rbs-merge/.kettle-drift.lock b/gems/rbs-merge/.kettle-drift.lock index 2ee9dae31..43dfedd67 100644 --- a/gems/rbs-merge/.kettle-drift.lock +++ b/gems/rbs-merge/.kettle-drift.lock @@ -52,14 +52,5 @@ 88 ] } - ], - "vendored_gems_env: 'VENDORED_GEMS',\nvendor_gem_dir_env: 'VENDOR_GEM_DIR',": [ - { - "file": "gemfiles/modular/templating_local.gemfile", - "lines": [ - 55, - 66 - ] - } ] } diff --git a/gems/rbs-merge/.rubocop_gradual.lock b/gems/rbs-merge/.rubocop_gradual.lock deleted file mode 100644 index 91b839368..000000000 --- a/gems/rbs-merge/.rubocop_gradual.lock +++ /dev/null @@ -1,401 +0,0 @@ -{ - ".simplecov:2483172942": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "Rakefile:3295679373": [ - [18, 121, 17, "Layout/LineLength: Line is too long. [137/120]", 174264873], - [79, 3, 1023, "Metrics/BlockLength: Block has too many lines. [32/25]", 54868638], - [163, 121, 22, "Layout/LineLength: Line is too long. [142/120]", 1367093088], - [166, 121, 18, "Layout/LineLength: Line is too long. [138/120]", 3881946477] - ], - "gemfiles/modular/benchmark/r4/v0.5.gemfile:3644720371": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/benchmark/vHEAD.gemfile:2838879269": [ - [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/erb/r2/v3.0.gemfile:1688285565": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] - ], - "gemfiles/modular/erb/r3/v5.0.gemfile:2150258305": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] - ], - "gemfiles/modular/erb/r4/v5.0.gemfile:2150258305": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] - ], - "gemfiles/modular/erb/vHEAD.gemfile:981929959": [ - [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/mutex_m/r2/v0.3.gemfile:4055275004": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/mutex_m/r3/v0.3.gemfile:4055275004": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/mutex_m/r4/v0.3.gemfile:4055275004": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/mutex_m/vHEAD.gemfile:556854763": [ - [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/rspec.gemfile:2263543889": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] - ], - "gemfiles/modular/stringio/r2/v3.0.gemfile:821604304": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/stringio/r3/v3.0.gemfile:821604304": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/stringio/r4/v3.0.gemfile:821604304": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/stringio/vHEAD.gemfile:1045839691": [ - [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/x_std_libs.gemfile:2324400122": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/x_std_libs/r2/libs.gemfile:36276542": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] - ], - "gemfiles/modular/x_std_libs/r3/libs.gemfile:4030570297": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] - ], - "gemfiles/modular/x_std_libs/r4/libs.gemfile:909736663": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] - ], - "gemfiles/modular/x_std_libs/vHEAD.gemfile:907917303": [ - [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] - ], - "lib/rbs-merge.rb:334311121": [ - [1, 1, 0, "Naming/FileName: The name of this source file (`rbs-merge.rb`) should use snake_case.", 5381], - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "lib/rbs/merge.rb:1873081658": [ - [17, 3, 12, "Style/Documentation: Missing top-level documentation comment for `module Rbs::Merge`.", 2866359175], - [103, 7, 1197, "Metrics/MethodLength: Method has too many lines. [22/10]", 564456261] - ], - "lib/rbs/merge/backends/rbs_backend.rb:2885387755": [ - [48, 11, 555, "Metrics/MethodLength: Method has too many lines. [13/10]", 2078142514], - [81, 11, 658, "Metrics/MethodLength: Method has too many lines. [11/10]", 324484142], - [172, 11, 527, "Metrics/MethodLength: Method has too many lines. [14/10]", 631898529], - [240, 15, 11, "Naming/PredicatePrefix: Rename `has_errors?` to `errors?`.", 1181419252], - [263, 9, 9332, "Metrics/ClassLength: Class has too many lines. [135/100]", 1906483935], - [290, 11, 1914, "Metrics/AbcSize: Assignment Branch Condition size for `type` is too high. [<0, 9, 23> 24.7/17]", 3636991776], - [290, 11, 1914, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `type` is too high. [24/7]", 3636991776], - [290, 11, 1914, "Metrics/MethodLength: Method has too many lines. [28/10]", 3636991776], - [363, 11, 489, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `end_point` is too high. [8/7]", 844861810], - [504, 27, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765] - ], - "lib/rbs/merge/comment_tracker.rb:1938176986": [ - [28, 7, 767, "Metrics/MethodLength: Method has too many lines. [15/10]", 752916075], - [60, 7, 416, "Metrics/MethodLength: Method has too many lines. [12/10]", 2715172162] - ], - "lib/rbs/merge/conflict_resolver.rb:1305396962": [ - [16, 5, 11045, "Metrics/ClassLength: Class has too many lines. [174/100]", 330576807], - [44, 7, 1614, "Metrics/MethodLength: Method has too many lines. [23/10]", 1004723330], - [44, 45, 14, "Lint/UnusedMethodArgument: Unused method argument - `template_index`.", 1809801172], - [44, 62, 10, "Lint/UnusedMethodArgument: Unused method argument - `dest_index`.", 2703999490], - [122, 7, 717, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `resolve_preference` is too high. [8/7]", 2783267415], - [122, 7, 717, "Metrics/MethodLength: Method has too many lines. [12/10]", 2783267415], - [156, 7, 949, "Metrics/AbcSize: Assignment Branch Condition size for `extract_declaration_text` is too high. [<9, 19, 14> 25.26/17]", 4132302840], - [156, 7, 949, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `extract_declaration_text` is too high. [13/7]", 4132302840], - [156, 7, 949, "Metrics/MethodLength: Method has too many lines. [18/10]", 4132302840], - [156, 7, 949, "Metrics/PerceivedComplexity: Perceived complexity for `extract_declaration_text` is too high. [14/8]", 4132302840], - [181, 39, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], - [279, 7, 565, "Metrics/MethodLength: Method has too many lines. [13/10]", 375776463], - [279, 11, 12, "Naming/PredicatePrefix: Rename `has_members?` to `members?`.", 496913372] - ], - "lib/rbs/merge/file_aligner.rb:157117932": [ - [32, 7, 128, "Lint/UselessMethodDefinition: Useless method definition detected.", 4031328363] - ], - "lib/rbs/merge/file_analysis.rb:4205990536": [ - [23, 5, 20642, "Metrics/ClassLength: Class has too many lines. [403/100]", 3271819659], - [59, 7, 1146, "Metrics/MethodLength: Method has too many lines. [20/10]", 1625645012], - [191, 7, 398, "Metrics/MethodLength: Method has too many lines. [12/10]", 4157341657], - [211, 7, 719, "Metrics/MethodLength: Method has too many lines. [13/10]", 2571132513], - [235, 7, 965, "Metrics/AbcSize: Assignment Branch Condition size for `compute_tree_sitter_signature` is too high. [<3, 5, 21> 21.79/17]", 2963702282], - [235, 7, 965, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `compute_tree_sitter_signature` is too high. [22/7]", 2963702282], - [235, 7, 965, "Metrics/MethodLength: Method has too many lines. [26/10]", 2963702282], - [235, 7, 965, "Metrics/PerceivedComplexity: Perceived complexity for `compute_tree_sitter_signature` is too high. [16/8]", 2963702282], - [269, 7, 996, "Metrics/AbcSize: Assignment Branch Condition size for `extract_tree_sitter_node_name` is too high. [<5, 16, 10> 19.52/17]", 300940102], - [269, 7, 996, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `extract_tree_sitter_node_name` is too high. [11/7]", 300940102], - [269, 7, 996, "Metrics/MethodLength: Method has too many lines. [24/10]", 300940102], - [269, 7, 996, "Metrics/PerceivedComplexity: Perceived complexity for `extract_tree_sitter_node_name` is too high. [11/8]", 300940102], - [320, 7, 834, "Metrics/MethodLength: Method has too many lines. [16/10]", 658496547], - [380, 7, 1612, "Metrics/AbcSize: Assignment Branch Condition size for `extract_tree_sitter_declarations` is too high. [<8, 18, 11> 22.56/17]", 1899595676], - [380, 7, 1612, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `extract_tree_sitter_declarations` is too high. [10/7]", 1899595676], - [380, 7, 1612, "Metrics/MethodLength: Method has too many lines. [23/10]", 1899595676], - [380, 7, 1612, "Metrics/PerceivedComplexity: Perceived complexity for `extract_tree_sitter_declarations` is too high. [11/8]", 1899595676], - [449, 7, 569, "Metrics/MethodLength: Method has too many lines. [13/10]", 210550095], - [471, 7, 1133, "Metrics/AbcSize: Assignment Branch Condition size for `build_freeze_blocks` is too high. [<7, 22, 6> 23.85/17]", 4016218974], - [471, 7, 1133, "Metrics/MethodLength: Method has too many lines. [29/10]", 4016218974], - [528, 7, 486, "Metrics/MethodLength: Method has too many lines. [12/10]", 618123864], - [528, 7, 486, "Metrics/PerceivedComplexity: Perceived complexity for `node_start_line` is too high. [9/8]", 618123864], - [545, 7, 472, "Metrics/MethodLength: Method has too many lines. [12/10]", 1339916888], - [545, 7, 472, "Metrics/PerceivedComplexity: Perceived complexity for `node_end_line` is too high. [9/8]", 1339916888], - [579, 7, 1868, "Metrics/AbcSize: Assignment Branch Condition size for `compute_rbs_gem_signature` is too high. [<0, 45, 23> 50.54/17]", 2652509672], - [579, 7, 1868, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `compute_rbs_gem_signature` is too high. [23/7]", 2652509672], - [579, 7, 1868, "Metrics/MethodLength: Method has too many lines. [43/10]", 2652509672], - [579, 7, 1868, "Metrics/PerceivedComplexity: Perceived complexity for `compute_rbs_gem_signature` is too high. [9/8]", 2652509672] - ], - "lib/rbs/merge/freeze_node.rb:2942544870": [ - [34, 121, 9, "Layout/LineLength: Line is too long. [129/120]", 201145846], - [39, 7, 577, "Metrics/MethodLength: Method has too many lines. [11/10]", 2189574632], - [39, 21, 186, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [8/5]", 1006469938], - [78, 7, 1506, "Metrics/AbcSize: Assignment Branch Condition size for `validate_structure!` is too high. [<12, 12, 17> 24.02/17]", 1543687562], - [78, 7, 1506, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `validate_structure!` is too high. [12/7]", 1543687562], - [78, 7, 1506, "Metrics/MethodLength: Method has too many lines. [25/10]", 1543687562], - [78, 7, 1506, "Metrics/PerceivedComplexity: Perceived complexity for `validate_structure!` is too high. [12/8]", 1543687562], - [150, 7, 891, "Metrics/AbcSize: Assignment Branch Condition size for `extract_node_name` is too high. [<4, 21, 12> 24.52/17]", 1223188123], - [150, 7, 891, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `extract_node_name` is too high. [13/7]", 1223188123], - [150, 7, 891, "Metrics/MethodLength: Method has too many lines. [18/10]", 1223188123], - [150, 7, 891, "Metrics/PerceivedComplexity: Perceived complexity for `extract_node_name` is too high. [13/8]", 1223188123], - [162, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5861336] - ], - "lib/rbs/merge/merge_result.rb:1707720872": [ - [18, 5, 15586, "Metrics/ClassLength: Class has too many lines. [276/100]", 817348545], - [89, 7, 966, "Metrics/MethodLength: Method has too many lines. [14/10]", 3349669346], - [176, 7, 1770, "Metrics/AbcSize: Assignment Branch Condition size for `extract_lines` is too high. [<15, 21, 16> 30.36/17]", 3951991352], - [176, 7, 1770, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `extract_lines` is too high. [15/7]", 3951991352], - [176, 7, 1770, "Metrics/MethodLength: Method has too many lines. [29/10]", 3951991352], - [176, 7, 1770, "Metrics/PerceivedComplexity: Perceived complexity for `extract_lines` is too high. [16/8]", 3951991352], - [226, 44, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], - [232, 7, 606, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `trailing_lines_for` is too high. [9/7]", 518209980], - [232, 7, 606, "Metrics/MethodLength: Method has too many lines. [13/10]", 518209980], - [232, 7, 606, "Metrics/PerceivedComplexity: Perceived complexity for `trailing_lines_for` is too high. [10/8]", 518209980], - [233, 47, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], - [266, 33, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], - [271, 7, 682, "Metrics/AbcSize: Assignment Branch Condition size for `deduplicate_leading_comment_overlap` is too high. [<4, 15, 9> 17.94/17]", 4227245480], - [271, 7, 682, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `deduplicate_leading_comment_overlap` is too high. [8/7]", 4227245480], - [271, 7, 682, "Metrics/MethodLength: Method has too many lines. [11/10]", 4227245480], - [335, 23, 24, "Style/SafeNavigation: Use safe navigation (`&.`) instead of checking if an object exists before calling the method.", 1487466207], - [371, 7, 893, "Metrics/MethodLength: Method has too many lines. [11/10]", 1066420963], - [371, 121, 13, "Layout/LineLength: Line is too long. [133/120]", 2582953496] - ], - "lib/rbs/merge/node_type_normalizer.rb:2788764230": [ - [65, 5, 10747, "Metrics/ModuleLength: Module has too many lines. [199/100]", 63560324], - [250, 9, 693, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `canonical_type_for_node` is too high. [9/7]", 908800634], - [250, 9, 693, "Metrics/MethodLength: Method has too many lines. [16/10]", 908800634], - [250, 9, 693, "Metrics/PerceivedComplexity: Perceived complexity for `canonical_type_for_node` is too high. [9/8]", 908800634], - [323, 9, 689, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `refine_tree_sitter_attribute_type` is too high. [9/7]", 2340352499], - [323, 9, 689, "Metrics/MethodLength: Method has too many lines. [13/10]", 2340352499], - [323, 9, 689, "Metrics/PerceivedComplexity: Perceived complexity for `refine_tree_sitter_attribute_type` is too high. [9/8]", 2340352499], - [343, 9, 475, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `refine_tree_sitter_variable_type` is too high. [8/7]", 536330497], - [343, 9, 475, "Metrics/MethodLength: Method has too many lines. [14/10]", 536330497] - ], - "lib/rbs/merge/node_wrapper.rb:1434186839": [ - [26, 5, 14933, "Metrics/ClassLength: Class has too many lines. [344/100]", 4139761414], - [37, 17, 84, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 366036293], - [264, 7, 831, "Metrics/AbcSize: Assignment Branch Condition size for `text` is too high. [<3, 32, 20> 37.85/17]", 980238327], - [264, 7, 831, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `text` is too high. [18/7]", 980238327], - [264, 7, 831, "Metrics/MethodLength: Method has too many lines. [18/10]", 980238327], - [264, 7, 831, "Metrics/PerceivedComplexity: Perceived complexity for `text` is too high. [20/8]", 980238327], - [268, 47, 2, "Lint/SafeNavigationConsistency: Use `.` instead of unnecessary `&.`.", 5858765], - [280, 22, 14, "Style/NumericPredicate: Use `start_line.positive?` instead of `start_line > 0`.", 792111162], - [301, 7, 1209, "Metrics/AbcSize: Assignment Branch Condition size for `signature` is too high. [<1, 25, 20> 32.03/17]", 4281557215], - [301, 7, 1209, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `signature` is too high. [21/7]", 4281557215], - [301, 7, 1209, "Metrics/MethodLength: Method has too many lines. [45/10]", 4281557215], - [351, 7, 384, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `method_kind` is too high. [8/7]", 563626808], - [351, 7, 384, "Metrics/PerceivedComplexity: Perceived complexity for `method_kind` is too high. [9/8]", 563626808], - [423, 7, 935, "Metrics/MethodLength: Method has too many lines. [21/10]", 3557799127], - [469, 7, 667, "Metrics/AbcSize: Assignment Branch Condition size for `extract_child_texts` is too high. [<6, 16, 8> 18.87/17]", 1979652559], - [469, 7, 667, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `extract_child_texts` is too high. [9/7]", 1979652559], - [469, 7, 667, "Metrics/MethodLength: Method has too many lines. [12/10]", 1979652559], - [469, 7, 667, "Metrics/PerceivedComplexity: Perceived complexity for `extract_child_texts` is too high. [9/8]", 1979652559], - [487, 7, 583, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `extract_tree_sitter_visibility_kind` is too high. [9/7]", 2002684122], - [487, 7, 583, "Metrics/MethodLength: Method has too many lines. [13/10]", 2002684122], - [487, 7, 583, "Metrics/PerceivedComplexity: Perceived complexity for `extract_tree_sitter_visibility_kind` is too high. [9/8]", 2002684122], - [532, 7, 557, "Metrics/MethodLength: Method has too many lines. [14/10]", 1753294094] - ], - "lib/rbs/merge/smart_merger.rb:4114819804": [ - [43, 5, 38956, "Metrics/ClassLength: Class has too many lines. [785/100]", 3732361716], - [85, 7, 1188, "Metrics/MethodLength: Method has too many lines. [17/10]", 2908064588], - [85, 21, 447, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [14/5]", 1344979847], - [181, 7, 805, "Metrics/AbcSize: Assignment Branch Condition size for `perform_merge` is too high. [<6, 15, 8> 18.03/17]", 1638854701], - [181, 7, 805, "Metrics/MethodLength: Method has too many lines. [14/10]", 1638854701], - [207, 7, 572, "Metrics/MethodLength: Method has too many lines. [15/10]", 3471574631], - [290, 7, 621, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `root_boundary_lines_for` is too high. [9/7]", 354795708], - [290, 7, 621, "Metrics/PerceivedComplexity: Perceived complexity for `root_boundary_lines_for` is too high. [9/8]", 354795708], - [291, 34, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], - [323, 9, 44, "Lint/HashCompareByIdentity: Use `Hash#compare_by_identity` instead of using `object_id` for keys.", 748374760], - [326, 7, 794, "Metrics/AbcSize: Assignment Branch Condition size for `root_boundary_range` is too high. [<4, 22, 11> 24.92/17]", 2546634651], - [326, 7, 794, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `root_boundary_range` is too high. [10/7]", 2546634651], - [326, 7, 794, "Metrics/MethodLength: Method has too many lines. [19/10]", 2546634651], - [326, 7, 794, "Metrics/PerceivedComplexity: Perceived complexity for `root_boundary_range` is too high. [11/8]", 2546634651], - [365, 7, 1030, "Metrics/AbcSize: Assignment Branch Condition size for `process_match` is too high. [<1, 22, 7> 23.11/17]", 333057092], - [365, 7, 1030, "Metrics/MethodLength: Method has too many lines. [27/10]", 333057092], - [428, 7, 1830, "Metrics/AbcSize: Assignment Branch Condition size for `removed_declaration_comment_lines` is too high. [<13, 31, 25> 41.89/17]", 276966259], - [428, 7, 1830, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `removed_declaration_comment_lines` is too high. [21/7]", 276966259], - [428, 7, 1830, "Metrics/MethodLength: Method has too many lines. [38/10]", 276966259], - [428, 7, 1830, "Metrics/PerceivedComplexity: Perceived complexity for `removed_declaration_comment_lines` is too high. [24/8]", 276966259], - [476, 7, 675, "Metrics/MethodLength: Method has too many lines. [13/10]", 1415352570], - [502, 7, 2604, "Metrics/AbcSize: Assignment Branch Condition size for `reconstruct_declaration_with_merged_members` is too high. [<19, 23, 22> 37.07/17]", 1250076424], - [502, 7, 2604, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `reconstruct_declaration_with_merged_members` is too high. [17/7]", 1250076424], - [502, 7, 2604, "Metrics/MethodLength: Method has too many lines. [49/10]", 1250076424], - [502, 7, 2604, "Metrics/PerceivedComplexity: Perceived complexity for `reconstruct_declaration_with_merged_members` is too high. [17/8]", 1250076424], - [540, 20, 46, "Style/StringConcatenation: Prefer string interpolation to string concatenation.", 1375387925], - [555, 9, 210, "Style/StringConcatenation: Prefer string interpolation to string concatenation.", 3589424565], - [565, 7, 1271, "Metrics/AbcSize: Assignment Branch Condition size for `recursive_body_lines_for_declaration` is too high. [<8, 23, 9> 25.96/17]", 2123349984], - [565, 7, 1271, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `recursive_body_lines_for_declaration` is too high. [10/7]", 2123349984], - [565, 7, 1271, "Metrics/MethodLength: Method has too many lines. [18/10]", 2123349984], - [565, 7, 1271, "Metrics/PerceivedComplexity: Perceived complexity for `recursive_body_lines_for_declaration` is too high. [10/8]", 2123349984], - [565, 47, 139, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 652517575], - [591, 7, 1910, "Metrics/AbcSize: Assignment Branch Condition size for `merge_member_lines` is too high. [<4, 35, 12> 37.22/17]", 1631109354], - [591, 7, 1910, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `merge_member_lines` is too high. [11/7]", 1631109354], - [591, 7, 1910, "Metrics/MethodLength: Method has too many lines. [42/10]", 1631109354], - [592, 9, 1837, "Metrics/BlockLength: Block has too many lines. [40/25]", 3339652106], - [638, 7, 1779, "Metrics/AbcSize: Assignment Branch Condition size for `align_member_lists` is too high. [<14, 26, 14> 32.68/17]", 3585753868], - [638, 7, 1779, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `align_member_lists` is too high. [14/7]", 3585753868], - [638, 7, 1779, "Metrics/MethodLength: Method has too many lines. [49/10]", 3585753868], - [638, 7, 1779, "Metrics/PerceivedComplexity: Perceived complexity for `align_member_lists` is too high. [15/8]", 3585753868], - [745, 7, 605, "Metrics/AbcSize: Assignment Branch Condition size for `split_top_level_return_type` is too high. [<7, 14, 10> 18.57/17]", 1731525207], - [745, 7, 605, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `split_top_level_return_type` is too high. [8/7]", 1731525207], - [745, 7, 605, "Metrics/MethodLength: Method has too many lines. [17/10]", 1731525207], - [782, 7, 1684, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `extract_statement_lines_with_leading_comments` is too high. [8/7]", 3625004207], - [782, 7, 1684, "Metrics/MethodLength: Method has too many lines. [29/10]", 3625004207], - [782, 7, 1684, "Metrics/PerceivedComplexity: Perceived complexity for `extract_statement_lines_with_leading_comments` is too high. [10/8]", 3625004207], - [869, 33, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], - [874, 7, 840, "Metrics/MethodLength: Method has too many lines. [15/10]", 3400690599], - [895, 39, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], - [982, 23, 24, "Style/SafeNavigation: Use safe navigation (`&.`) instead of checking if an object exists before calling the method.", 1487466207], - [998, 7, 1788, "Metrics/AbcSize: Assignment Branch Condition size for `collapse_cross_source_preamble_prefixes` is too high. [<14, 21, 9> 26.8/17]", 3130187278], - [998, 7, 1788, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `collapse_cross_source_preamble_prefixes` is too high. [9/7]", 3130187278], - [998, 7, 1788, "Metrics/MethodLength: Method has too many lines. [31/10]", 3130187278], - [998, 7, 1788, "Metrics/PerceivedComplexity: Perceived complexity for `collapse_cross_source_preamble_prefixes` is too high. [9/8]", 3130187278], - [1038, 7, 533, "Metrics/MethodLength: Method has too many lines. [15/10]", 4188914818] - ], - "rbs-merge.gemspec:2636606176": [ - [126, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 2821357214], - [134, 121, 29, "Layout/LineLength: Line is too long. [149/120]", 981994949] - ], - "spec/integration/reproducible_merge_spec.rb:4124333249": [ - [9, 1, 6937, "Metrics/BlockLength: Block has too many lines. [155/25]", 1482304086], - [14, 3, 4384, "Metrics/BlockLength: Block has too many lines. [85/25]", 628655161], - [15, 5, 3507, "Metrics/BlockLength: Block has too many lines. [65/25]", 2935184196], - [56, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5858910], - [62, 121, 9, "Layout/LineLength: Line is too long. [129/120]", 50415752], - [87, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1546684737] - ], - "spec/rbs/merge/comment_behavior_matrix_spec.rb:2666227529": [ - [14, 45, 6, "Lint/UnusedBlockArgument: Unused block argument - `inline`. If it's necessary, use `_` or `_inline` as an argument name to indicate that it won't be used.", 1605470060], - [18, 121, 24, "Layout/LineLength: Line is too long. [144/120]", 253885993], - [19, 121, 45, "Layout/LineLength: Line is too long. [165/120]", 1702591521] - ], - "spec/rbs/merge/comment_tracker_spec.rb:1831412931": [ - [5, 1, 14574, "Metrics/BlockLength: Block has too many lines. [306/25]", 1598998757], - [8, 3, 3272, "Metrics/BlockLength: Block has too many lines. [67/25]", 935176133], - [95, 3, 1130, "Metrics/BlockLength: Block has too many lines. [28/25]", 204252301], - [143, 3, 1704, "Metrics/BlockLength: Block has too many lines. [32/25]", 1579622084], - [209, 3, 5815, "Metrics/BlockLength: Block has too many lines. [112/25]", 433112678] - ], - "spec/rbs/merge/conflict_resolver_spec.rb:999961156": [ - [8, 1, 19854, "Metrics/BlockLength: Block has too many lines. [491/25]", 3942921818], - [9, 3, 1428, "Metrics/BlockLength: Block has too many lines. [36/25]", 529294185], - [56, 3, 1199, "Metrics/BlockLength: Block has too many lines. [28/25]", 73504201], - [93, 3, 1277, "Metrics/BlockLength: Block has too many lines. [29/25]", 595351018], - [190, 3, 7078, "Metrics/BlockLength: Block has too many lines. [149/25]", 3739681265], - [296, 5, 1646, "Metrics/BlockLength: Block has too many lines. [33/25]", 3128279135], - [302, 7, 1292, "Metrics/BlockLength: Block has too many lines. [27/25]", 729602127], - [404, 3, 4548, "Metrics/BlockLength: Block has too many lines. [114/25]", 2619563374], - [420, 5, 922, "Metrics/BlockLength: Block has too many lines. [26/25]", 3893264586], - [452, 5, 960, "Metrics/BlockLength: Block has too many lines. [26/25]", 3053707146] - ], - "spec/rbs/merge/file_aligner_spec.rb:2643720547": [ - [7, 1, 21476, "Metrics/BlockLength: Block has too many lines. [555/25]", 4145069110], - [65, 3, 1123, "Metrics/BlockLength: Block has too many lines. [28/25]", 1358831340], - [188, 3, 1226, "Metrics/BlockLength: Block has too many lines. [34/25]", 1337144492], - [246, 3, 4891, "Metrics/BlockLength: Block has too many lines. [152/25]", 125990895], - [436, 3, 1943, "Metrics/BlockLength: Block has too many lines. [34/25]", 4126970167], - [483, 3, 3944, "Metrics/BlockLength: Block has too many lines. [94/25]", 2604333848], - [565, 5, 1328, "Metrics/BlockLength: Block has too many lines. [27/25]", 1994971578] - ], - "spec/rbs/merge/file_analysis_spec.rb:952231308": [ - [15, 1, 54363, "Metrics/BlockLength: Block has too many lines. [1205/25]", 2485884639], - [16, 3, 1272, "Metrics/BlockLength: Block has too many lines. [38/25]", 1778989479], - [17, 5, 1210, "Metrics/BlockLength: Block has too many lines. [37/25]", 1755177515], - [67, 3, 1152, "Metrics/BlockLength: Block has too many lines. [33/25]", 2931980952], - [68, 5, 1083, "Metrics/BlockLength: Block has too many lines. [32/25]", 3589815947], - [136, 3, 982, "Metrics/BlockLength: Block has too many lines. [30/25]", 1355840781], - [137, 5, 929, "Metrics/BlockLength: Block has too many lines. [29/25]", 3738902933], - [200, 3, 1559, "Metrics/BlockLength: Block has too many lines. [30/25]", 3203356148], - [201, 5, 1493, "Metrics/BlockLength: Block has too many lines. [29/25]", 1389049628], - [860, 3, 2525, "Metrics/BlockLength: Block has too many lines. [42/25]", 2701315631], - [861, 5, 2455, "Metrics/BlockLength: Block has too many lines. [41/25]", 1293659790], - [884, 121, 5, "Layout/LineLength: Line is too long. [125/120]", 193270906], - [919, 121, 23, "Layout/LineLength: Line is too long. [143/120]", 115067835], - [948, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5858795], - [954, 3, 3548, "Metrics/BlockLength: Block has too many lines. [59/25]", 2573657607], - [955, 5, 3497, "Metrics/BlockLength: Block has too many lines. [58/25]", 14776664], - [982, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2085251945], - [1017, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 2659900392], - [1038, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 2659900392], - [1091, 3, 1750, "Metrics/BlockLength: Block has too many lines. [29/25]", 460836946], - [1092, 5, 1693, "Metrics/BlockLength: Block has too many lines. [28/25]", 1601111212], - [1135, 3, 1948, "Metrics/BlockLength: Block has too many lines. [41/25]", 4061538475], - [1136, 5, 1892, "Metrics/BlockLength: Block has too many lines. [40/25]", 4081702319], - [1195, 3, 2571, "Metrics/BlockLength: Block has too many lines. [55/25]", 3959149994], - [1265, 3, 2440, "Metrics/BlockLength: Block has too many lines. [52/25]", 2164819729], - [1332, 3, 2008, "Metrics/BlockLength: Block has too many lines. [39/25]", 609327574], - [1379, 3, 1938, "Metrics/BlockLength: Block has too many lines. [38/25]", 361672068], - [1425, 3, 1995, "Metrics/BlockLength: Block has too many lines. [39/25]", 4024875480], - [1472, 3, 1992, "Metrics/BlockLength: Block has too many lines. [39/25]", 1156260241] - ], - "spec/rbs/merge/freeze_node_spec.rb:2278400615": [ - [8, 1, 13268, "Metrics/BlockLength: Block has too many lines. [327/25]", 1590692835], - [9, 3, 2116, "Metrics/BlockLength: Block has too many lines. [43/25]", 4215218715], - [98, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 3784984989], - [99, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1182436848], - [331, 3, 2919, "Metrics/BlockLength: Block has too many lines. [65/25]", 1415484725] - ], - "spec/rbs/merge/merge_result_spec.rb:2449518259": [ - [8, 1, 20574, "Metrics/BlockLength: Block has too many lines. [454/25]", 736738811], - [53, 3, 1244, "Metrics/BlockLength: Block has too many lines. [31/25]", 3686452170] - ], - "spec/rbs/merge/smart_merger_removal_mode_compliance_spec.rb:3475743041": [ - [7, 1, 1860, "Metrics/BlockLength: Block has too many lines. [66/25]", 3469987127], - [8, 3, 1798, "Metrics/BlockLength: Block has too many lines. [65/25]", 778477682] - ], - "spec/rbs/merge/smart_merger_spec.rb:3451189224": [ - [14, 1, 43498, "Metrics/BlockLength: Block has too many lines. [1190/25]", 1106962], - [149, 3, 10886, "Metrics/BlockLength: Block has too many lines. [286/25]", 1693926280], - [315, 5, 985, "Metrics/BlockLength: Block has too many lines. [26/25]", 3397066157], - [351, 5, 1063, "Metrics/BlockLength: Block has too many lines. [26/25]", 2718784043], - [461, 5, 1135, "Metrics/BlockLength: Block has too many lines. [26/25]", 3797285781], - [497, 5, 1213, "Metrics/BlockLength: Block has too many lines. [26/25]", 3686078390], - [536, 3, 2766, "Metrics/BlockLength: Block has too many lines. [84/25]", 3927490181], - [649, 3, 1714, "Metrics/BlockLength: Block has too many lines. [54/25]", 386494661], - [721, 3, 5393, "Metrics/BlockLength: Block has too many lines. [138/25]", 2457897034], - [925, 3, 4479, "Metrics/BlockLength: Block has too many lines. [134/25]", 3856958364], - [926, 5, 1327, "Metrics/BlockLength: Block has too many lines. [33/25]", 4009192695], - [970, 5, 953, "Metrics/BlockLength: Block has too many lines. [29/25]", 902715698], - [1008, 5, 1147, "Metrics/BlockLength: Block has too many lines. [37/25]", 3544491851], - [1058, 5, 955, "Metrics/BlockLength: Block has too many lines. [27/25]", 2688118410], - [1096, 3, 1031, "Metrics/BlockLength: Block has too many lines. [32/25]", 663517347], - [1097, 5, 970, "Metrics/BlockLength: Block has too many lines. [31/25]", 1575476639], - [1135, 3, 882, "Metrics/BlockLength: Block has too many lines. [27/25]", 3845382500], - [1136, 5, 813, "Metrics/BlockLength: Block has too many lines. [26/25]", 1755501948], - [1171, 3, 805, "Metrics/BlockLength: Block has too many lines. [26/25]", 3413285873], - [1204, 3, 2200, "Metrics/BlockLength: Block has too many lines. [70/25]", 3541894760], - [1205, 5, 1202, "Metrics/BlockLength: Block has too many lines. [38/25]", 3971143978], - [1235, 121, 1, "Layout/LineLength: Line is too long. [121/120]", 177610], - [1251, 5, 923, "Metrics/BlockLength: Block has too many lines. [28/25]", 3867507419], - [1288, 3, 1175, "Metrics/BlockLength: Block has too many lines. [36/25]", 1587654554], - [1289, 5, 1103, "Metrics/BlockLength: Block has too many lines. [35/25]", 3885176914], - [1368, 3, 1252, "Metrics/BlockLength: Block has too many lines. [28/25]", 4206068435], - [1407, 3, 1278, "Metrics/BlockLength: Block has too many lines. [28/25]", 1372687996], - [1446, 3, 1265, "Metrics/BlockLength: Block has too many lines. [28/25]", 3208600846], - [1485, 3, 1265, "Metrics/BlockLength: Block has too many lines. [28/25]", 212464082], - [1524, 3, 1262, "Metrics/BlockLength: Block has too many lines. [28/25]", 4277366491] - ], - "spec/rbs/merge_spec.rb:3352331478": [ - [5, 1, 1389, "Metrics/BlockLength: Block has too many lines. [37/25]", 373922011], - [10, 3, 1270, "Metrics/BlockLength: Block has too many lines. [32/25]", 2567886247] - ] -} diff --git a/gems/rbs-merge/Gemfile b/gems/rbs-merge/Gemfile index 68dfabe9b..46cc7fad8 100644 --- a/gems/rbs-merge/Gemfile +++ b/gems/rbs-merge/Gemfile @@ -6,7 +6,7 @@ # kettle-jem will then preserve content between those markers across template runs. # kettle-jem:unfreeze -source "https://gem.coop" +source 'https://gem.coop' git_source(:codeberg) { |repo_name| "https://codeberg.org/#{repo_name}" } git_source(:gitlab) { |repo_name| "https://gitlab.com/#{repo_name}" } @@ -19,58 +19,54 @@ git_source(:gitlab) { |repo_name| "https://gitlab.com/#{repo_name}" } gemspec # Local workspace dependency wiring for *_local.gemfile overrides -nomono_requirements = ["~> 1.0", ">= 1.0.8"] -gem "nomono", *nomono_requirements, require: false # ruby >= 2.2 +nomono_requirements = ['~> 1.0', '>= 1.0.8'] +gem 'nomono', *nomono_requirements, require: false # ruby >= 2.2 # Direct sibling dependencies (env-switched via STRUCTUREDMERGE_DEV) direct_sibling_gems = %w[ ast-merge tree_haver ] -direct_sibling_dev = ENV.fetch("STRUCTUREDMERGE_DEV", "") +direct_sibling_dev = ENV.fetch('STRUCTUREDMERGE_DEV', '') direct_sibling_local = !direct_sibling_dev.empty? && !%w[false 0 no off].include?(direct_sibling_dev.downcase) -direct_sibling_templating = ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? +direct_sibling_templating = ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero?) - direct_sibling_dev_was_set = ENV.key?("STRUCTUREDMERGE_DEV") - direct_sibling_dev_original = ENV.fetch("STRUCTUREDMERGE_DEV", nil) + (direct_sibling_local || + ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) + direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') + direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) begin nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path("Gemfile.lock", __dir__) + nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == "nomono" } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - if nomono_locked - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] - end - end - Kernel.send(:gem, "nomono", *nomono_activation_requirements) - require "nomono/bundler" - if direct_sibling_templating && !direct_sibling_local - ENV["STRUCTUREDMERGE_DEV"] = File.expand_path("..", __dir__) + Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked end + Kernel.send(:gem, 'nomono', *nomono_activation_requirements) + require 'nomono/bundler' + ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local eval_nomono_gems( gems: direct_sibling_gems, - prefix: "STRUCTUREDMERGE", - path_env: "STRUCTUREDMERGE_DEV", - root: ["src", "my", "structuredmerge"] + prefix: 'STRUCTUREDMERGE', + path_env: 'STRUCTUREDMERGE_DEV', + root: %w[src my structuredmerge] ) rescue LoadError - warn "Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies." + warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' ensure if direct_sibling_templating && !direct_sibling_local if direct_sibling_dev_was_set - ENV["STRUCTUREDMERGE_DEV"] = direct_sibling_dev_original + ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original else - ENV.delete("STRUCTUREDMERGE_DEV") + ENV.delete('STRUCTUREDMERGE_DEV') end end end @@ -117,28 +113,28 @@ if direct_sibling_gems.any? && end # Use released TSLP with the Ruby ABI platform-gem fix. -gem "tree_sitter_language_pack", "~> 1.13", ">= 1.13.3" +gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' # Templating (env-switched: STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local paths) -eval_gemfile "gemfiles/modular/templating.gemfile" if ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? +eval_gemfile 'gemfiles/modular/templating.gemfile' if ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? # Debugging -eval_gemfile "gemfiles/modular/debug.gemfile" +eval_gemfile 'gemfiles/modular/debug.gemfile' # Code Coverage (env-switched: KETTLE_DEV_DEV=true for local paths) -eval_gemfile "gemfiles/modular/coverage.gemfile" +eval_gemfile 'gemfiles/modular/coverage.gemfile' # Linting -eval_gemfile "gemfiles/modular/style.gemfile" +eval_gemfile 'gemfiles/modular/style.gemfile' # Documentation -eval_gemfile "gemfiles/modular/documentation.gemfile" +eval_gemfile 'gemfiles/modular/documentation.gemfile' # Optional -eval_gemfile "gemfiles/modular/optional.gemfile" +eval_gemfile 'gemfiles/modular/optional.gemfile' ### Std Lib Extracted Gems -eval_gemfile "gemfiles/modular/x_std_libs.gemfile" +eval_gemfile 'gemfiles/modular/x_std_libs.gemfile' # See unlocked_deps appraisal for more details on irb inclusion -gem "irb", "~> 1.17" # ruby >= 2.7 +gem 'irb', '~> 1.17' # ruby >= 2.7 diff --git a/gems/rbs-merge/Gemfile.lock b/gems/rbs-merge/Gemfile.lock index 924c3d39f..d0b68afbc 100644 --- a/gems/rbs-merge/Gemfile.lock +++ b/gems/rbs-merge/Gemfile.lock @@ -7,6 +7,24 @@ PATH tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.14) +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge + specs: + ast-merge (7.1.0) + benchmark + token-resolver (~> 2.0, >= 2.0.4) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver + specs: + tree_haver (7.1.0) + citrus (~> 3.0) + parslet (~> 2.0) + tree_sitter_language_pack (>= 1.13.2, < 2.0) + version_gem (~> 1.1, >= 1.1.9) + GEM remote: https://gem.coop/ specs: @@ -17,18 +35,18 @@ GEM bundler (>= 1.17.3) rake (>= 10) thor (>= 0.14) + appraisal2-rubocop (1.0.0) + appraisal2 (>= 3.1.4) + rubocop (>= 1.0) + version_gem (~> 1.1, >= 1.1.14) ast (2.4.3) - ast-merge (7.1.0) - benchmark - token-resolver (~> 2.0, >= 2.0.4) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) backports (3.25.3) benchmark (0.5.0) bigdecimal (4.1.2) bundler-audit (0.9.3) bundler (>= 1.2.0) thor (~> 1.0) + cgi (0.5.2) citrus (3.0.2) cmdparse (3.0.7) concurrent-ruby (1.3.7) @@ -39,7 +57,6 @@ GEM delegate (0.6.1) diff-lcs (1.6.2) diffy (3.4.4) - docile (1.4.1) dry-configurable (1.4.0) dry-core (~> 1.0) zeitwerk (~> 2.6) @@ -70,7 +87,7 @@ GEM dry-logic (~> 1.4) zeitwerk (~> 2.6) emoji_regex (15.0.0) - erb (6.0.5) + erb (6.0.6) gem_bench (2.0.5) bundler (>= 1.14) version_gem (~> 1.1, >= 1.1.4) @@ -95,16 +112,14 @@ GEM kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) kettle-rb (0.1.4) - kettle-soup-cover (1.1.3) - simplecov (~> 0.22) - simplecov-cobertura (~> 3.0) - simplecov-console (~> 0.9, >= 0.9.3) - simplecov-html (~> 0.13, >= 0.13.1) - simplecov-lcov (~> 0.8) + kettle-soup-cover (3.0.4) + kettle-wash (~> 0.1, >= 0.1.0) + simplecov (>= 1.0) + simplecov-cobertura (>= 4.0) + simplecov-console (~> 0.9, >= 0.9.5) simplecov-rcov (~> 0.3, >= 0.3.7) - simplecov_json_formatter (~> 0.1, >= 0.1.4) - version_gem (~> 1.1, >= 1.1.9) - kettle-test (2.0.11) + simplecov_lcov_formatter (~> 0.9, >= 0.9.0) + kettle-test (2.0.12) appraisal2 (~> 3.0, >= 3.0.6) backports (~> 3.0) rspec (~> 3.0) @@ -115,6 +130,8 @@ GEM silent_stream (~> 1.0, >= 1.0.12) timecop-rspec (~> 1.0, >= 1.0.3) turbo_tests2 (~> 3.1, >= 3.1.12) + kettle-wash (0.1.1) + version_gem (~> 1.1, >= 1.1.14) kramdown (2.5.2) rexml (>= 3.4.4) kramdown-parser-gfm (1.1.0) @@ -209,6 +226,14 @@ GEM rubocop-ast (1.50.0) parser (>= 3.3.7.2) prism (~> 1.7) + rubocop-capybara (2.23.0) + lint_roller (~> 1.1) + rubocop (~> 1.81) + rubocop-env (0.1.0) + rubocop + rubocop-factory_bot (2.28.0) + lint_roller (~> 1.1) + rubocop (~> 1.72, >= 1.72.1) rubocop-gradual (0.4.0) benchmark diff-lcs (>= 1.2.0, < 2.0) @@ -216,13 +241,26 @@ GEM parallel (~> 1.10) rainbow (>= 2.2.2, < 4.0) rubocop (~> 1.0) - rubocop-lts (24.1.0) - rubocop-ruby3_2 (>= 3.0.0, < 4) - standard-rubocop-lts (>= 2.0.2, < 3) - version_gem (>= 1.1.2, < 3) + rubocop-lts (24.2.2) + rubocop-ruby3_2 (~> 3.0, >= 3.0.1) + standard-rubocop-lts (~> 2.0, >= 2.0.3) + version_gem (~> 1.1, >= 1.1.13) + rubocop-lts-rspec (1.0.5) + rubocop (~> 1.84, >= 1.84.2) + rubocop-env (~> 0.1, >= 0.1.0) + rubocop-factory_bot (~> 2.28, >= 2.28.0) + rubocop-rspec (~> 3.9, >= 3.9.0) + rubocop-rspec-extra (~> 0.3, >= 0.3.0) + standard (~> 1.54, >= 1.54.0) + standard-rspec (~> 0.5, >= 0.5.0) + version_gem (~> 1.1, >= 1.1.13) rubocop-md (2.0.4) lint_roller (~> 1.1) rubocop (>= 1.72.1) + rubocop-minitest (0.40.0) + lint_roller (~> 1.1) + rubocop (>= 1.75.0, < 2.0) + rubocop-ast (>= 1.38.0, < 2.0) rubocop-on-rbs (2.0.0) lint_roller (~> 1.1) rbs (~> 4.0) @@ -242,6 +280,13 @@ GEM lint_roller (~> 1.1) regexp_parser (>= 2.0) rubocop (~> 1.86, >= 1.86.2) + rubocop-rspec-extra (0.3.0) + lint_roller (~> 1.1) + rubocop (>= 1.72.1, < 2.0) + rubocop-rspec_rails (2.32.0) + lint_roller (~> 1.1) + rubocop (~> 1.72, >= 1.72.1) + rubocop-rspec (~> 3.5) rubocop-ruby3_2 (3.0.7) rubocop-gradual (~> 0.3, >= 0.3.6) rubocop-md (~> 2.0, >= 2.0.4) @@ -259,22 +304,18 @@ GEM silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) - simplecov (0.22.0) - docile (~> 1.1) - simplecov-html (~> 0.11) - simplecov_json_formatter (~> 0.1) - simplecov-cobertura (3.2.0) + simplecov (1.0.2) + simplecov-cobertura (4.0.0) rexml - simplecov (~> 0.19) + simplecov (~> 1.0) simplecov-console (0.9.5) ansi simplecov terminal-table - simplecov-html (0.13.2) - simplecov-lcov (0.9.0) simplecov-rcov (0.3.7) simplecov (>= 0.4.1) - simplecov_json_formatter (0.1.4) + simplecov_lcov_formatter (0.9.0) + simplecov (>= 0.18) sorbet-runtime (0.6.13347) standard (1.56.0) language_server-protocol (~> 3.17.0.2) @@ -288,6 +329,12 @@ GEM standard-performance (1.9.0) lint_roller (~> 1.1) rubocop-performance (~> 1.26.0) + standard-rspec (0.5.0) + lint_roller (>= 1.0) + rubocop-capybara (~> 2.23) + rubocop-factory_bot (~> 2.27) + rubocop-rspec (~> 3.9) + rubocop-rspec_rails (~> 2.31) standard-rubocop-lts (2.0.10) standard (~> 1.54, >= 1.54.0) standard-custom (~> 1.0, >= 1.0.2) @@ -307,12 +354,7 @@ GEM timecop (>= 0.7, < 1) token-resolver (2.0.4) parslet (~> 2.0) - version_gem (~> 1.1, >= 1.1.14) - tree_haver (7.1.0) - citrus (~> 3.0) - parslet (~> 2.0) - tree_sitter_language_pack (>= 1.13.2, < 2.0) - version_gem (~> 1.1, >= 1.1.9) + version_gem (~> 1.1, >= 1.1.13) tree_sitter_language_pack (1.13.3-aarch64-linux) sorbet-runtime (~> 0.5) tree_sitter_language_pack (1.13.3-arm64-darwin) @@ -328,6 +370,7 @@ GEM unicode-emoji (~> 4.1) unicode-emoji (4.2.0) version_gem (1.1.14) + webrick (1.9.2) yaml-converter (0.2.3) hexapdf (>= 1.8, < 2) kramdown (>= 2.4, < 3) @@ -365,55 +408,63 @@ PLATFORMS DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.2, >= 3.2.0) + appraisal2-rubocop (~> 1.0, >= 1.0.0) + ast-merge! benchmark (~> 0.5, >= 0.5.0) bundler-audit (~> 0.9.3) + cgi (~> 0.5) debug (>= 1.1) - erb (~> 6.0, >= 6.0.4) + erb (~> 6.0, >= 6.0.6) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.4) irb (~> 1.17) kettle-dev (~> 2.3, >= 2.3.7) - kettle-soup-cover (~> 1.0, >= 1.1.3) - kettle-test (~> 2.0, >= 2.0.11) - kramdown (~> 2.5, >= 2.5.1) + kettle-soup-cover (~> 3.0, >= 3.0.3) + kettle-test (~> 2.0, >= 2.0.12) + kramdown (~> 2.5, >= 2.5.2) kramdown-parser-gfm (~> 1.1) mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) rake (~> 13.0) - rbs (>= 3.0) rbs-merge! rdoc (~> 6.11) - reek (~> 6.5) + reek (~> 6.5, >= 6.5.0) require_bench (~> 1.0, >= 1.0.4) - rubocop-lts (~> 24.1.0) - rubocop-on-rbs (~> 2.0) + rubocop-gradual (~> 0.4, >= 0.4.0) + rubocop-lts (~> 24.2, >= 24.2.1) + rubocop-lts-rspec (~> 1.0, >= 1.0.5) + rubocop-minitest (~> 0.40, >= 0.40.0) + rubocop-on-rbs (~> 2.0, >= 2.0.0) rubocop-packaging (~> 0.6, >= 0.6.0) - rubocop-rspec (~> 3.6) - rubocop-ruby3_2 (~> 3.0.0) + rubocop-ruby3_2 (~> 3.0, >= 3.0.6) ruby-progressbar (~> 1.13) - standard (>= 1.50) - stone_checksums (~> 1.0, >= 1.0.6, >= 1.0.3) + standard (~> 1.56, >= 1.56.0) + stone_checksums (~> 1.0, >= 1.0.6) stringio (>= 3.0) + tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) turbo_tests2 (~> 3.2, >= 3.2.0) - yaml-converter (~> 0.1) - yard (~> 0.9, >= 0.9.44) - yard-fence (~> 0.9, >= 0.9.1) + webrick (~> 1.9) + yaml-converter (~> 0.2, >= 0.2.3) + yard (~> 0.9, >= 0.9.45) + yard-fence (~> 0.9, >= 0.9.6) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) - yard-timekeeper (~> 0.1) - yard-yaml (~> 0.1, >= 0.1.2) + yard-timekeeper (~> 0.2, >= 0.2.4) + yard-yaml (~> 0.2, >= 0.2.3) CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af ansi (1.6.0) sha256=ac9ea0c0ea8d32fb4e271348e609963ac78882f34b73836c2a02b3622e666658 appraisal2 (3.2.0) sha256=ccd0b767ac4060cd7af6d16747459b6990f49c39c7b4fb1f7d1146b1e97c492f + appraisal2-rubocop (1.0.0) sha256=b71410fbb014befda5340605a605b7f6f3f012739baf0acc5b4351b592c3258d ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 ast-merge (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 + cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 concurrent-ruby (1.3.7) sha256=4412caec3a5ea2e5fdc52076724c071a81f2c0593d83b2ac8cbb8ca63b3151b0 @@ -422,7 +473,6 @@ CHECKSUMS delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 - docile (1.4.1) sha256=96159be799bfa73cdb721b840e9802126e4e03dfc26863db73647204c727f21e dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -431,7 +481,7 @@ CHECKSUMS dry-schema (1.16.0) sha256=cd3aaeabc0f1af66ec82a29096d4c4fb92a0a58b9dae29a22b1bbceb78985727 dry-types (1.9.1) sha256=baebeecdb9f8395d6c9d227b62011279440943e3ef2468fe8ccc1ba11467f178 emoji_regex (15.0.0) sha256=a508b2c0bee561169564e0aec96085020c900520d335e5533fd8e78e59493829 - erb (6.0.5) sha256=858e63488cb796c9daba8b6e9ff4b3879c395022049be9a66a8e00980e612eac + erb (6.0.6) sha256=a9b24986700f5bf127c4f297c5403c3ca41b83b0a316c0cd09a096b56e644ae5 gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f @@ -441,8 +491,9 @@ CHECKSUMS json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 kettle-dev (2.3.7) sha256=eb370113cd030d03cbe2d33b31c99858951017e5ad21a17e9ed89dc3770028ee kettle-rb (0.1.4) sha256=9cef7ce4f7021666b7222292f29051e51eaf042e8a5db11f3f4dd72f74243fc1 - kettle-soup-cover (1.1.3) sha256=a373827da22a7131d093afd32945e5b7d7a10a01ebfdded8fd2cb8230d69c8ad - kettle-test (2.0.11) sha256=c710c90f7ab79d51f9452f0c09f5f90657e7a893f63583855c164d0b1b107ab2 + kettle-soup-cover (3.0.4) + kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 + kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 @@ -488,31 +539,37 @@ CHECKSUMS rspec_junit_formatter (0.6.0) sha256=40dde674e6ae4e6cc0ff560da25497677e34fefd2338cc467a8972f602b62b15 rubocop (1.88.2) sha256=8def251c90cd955feb4daa3edc0ab56893250c4ce90ef81e6c80c03f9a939bbf rubocop-ast (1.50.0) sha256=b9ca88300da0803ee222ad20cdb30494c0a784eed06fdc35d254b06d662788db + rubocop-capybara (2.23.0) sha256=f9ea1ba3a7561ee8e88cf76fc378ce517ce5327155f305ee7b5c2500e5aee357 + rubocop-env (0.1.0) sha256=5ab9a259e71822bf514c8e900a9b68cc2f74ccc87d5493efcd03213f3068e718 + rubocop-factory_bot (2.28.0) sha256=4b17fc02124444173317e131759d195b0d762844a71a29fe8139c1105d92f0cb rubocop-gradual (0.4.0) sha256=9c7e584e6fef6c2539266a193a4572c970c22f99046fd6b0305bdde6228f96ad - rubocop-lts (24.1.0) sha256=9dcad4db2da2fe2f1f77f98c917d70e7c43eded703da14cd201d4be52a9272aa + rubocop-lts (24.2.2) sha256=be6c745e1bb61daebd6af3cc3227c60f95be9f642a080773cad7df14c5f9f174 + rubocop-lts-rspec (1.0.5) sha256=439552fd27440802cc499889e013bffa28aadc41adae5d4dfff3d984a2a809b4 rubocop-md (2.0.4) sha256=0d076b6b5e99dea2ddc928c4bd702497decb9a8400da7808091e02ebcafcfb93 + rubocop-minitest (0.40.0) sha256=353c698199115f12151144cf0b5a96f69bb9d77b660cf6536df2c4250c672a9d rubocop-on-rbs (2.0.0) sha256=ce74d1b3d5daead19f4b611623656c185821dfc9aed9c7079bb1e5d7d7c464be rubocop-packaging (0.6.0) sha256=fb92bd0fb48e6f8cdb1648d2249b0cd51c2497dcc87340132d22f01edbf558a7 rubocop-performance (1.26.1) sha256=cd19b936ff196df85829d264b522fd4f98b6c89ad271fa52744a8c11b8f71834 rubocop-rake (0.7.1) sha256=3797f2b6810c3e9df7376c26d5f44f3475eda59eb1adc38e6f62ecf027cbae4d rubocop-rspec (3.10.2) sha256=0b3e2ecc592cd10ecbf0095bb58d1e357905276e069643523cc19eb7495f65e2 + rubocop-rspec-extra (0.3.0) sha256=ee4b6484d0332a0d23c4a465eeb607e41888eb3d4ed479f850b9f5212514f787 + rubocop-rspec_rails (2.32.0) sha256=4a0d641c72f6ebb957534f539d9d0a62c47abd8ce0d0aeee1ef4701e892a9100 rubocop-ruby3_2 (3.0.7) sha256=f53dd6d286fb05186214fc6ec116783e7f837030918e8931c05de773e98f8466 rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 - simplecov (0.22.0) sha256=fe2622c7834ff23b98066bb0a854284b2729a569ac659f82621fc22ef36213a5 - simplecov-cobertura (3.2.0) sha256=70d702658677fcb20e5aceb6915ccf8bc62ff2ccd38b62b3ad5c9db5c0888740 + simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 + simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 - simplecov-html (0.13.2) sha256=bd0b8e54e7c2d7685927e8d6286466359b6f16b18cb0df47b508e8d73c777246 - simplecov-lcov (0.9.0) sha256=7a77a31e200a595ed4b0249493056efd0c920601f53d2ef135ca34ee796346cd simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc - simplecov_json_formatter (0.1.4) sha256=529418fbe8de1713ac2b2d612aa3daa56d316975d307244399fa4838c601b428 + simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed sorbet-runtime (0.6.13347) sha256=54e7221d9f4b63f58aec79f3043752a9ba7810347c6ae0d903531591cc2d5f01 standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b standard-performance (1.9.0) sha256=49483d31be448292951d80e5e67cdcb576c2502103c7b40aec6f1b6e9c88e3f2 + standard-rspec (0.5.0) sha256=64d396524a65af47f5331b423d8cdd313e0267401647bb7892489ca89dad2973 standard-rubocop-lts (2.0.10) sha256=89708a505b7d8b24d2ac399a7520fcb9e764abc2ecb4289b631b5fe0e3b76617 stone_checksums (1.0.6) sha256=c775f830513d6c6ab26e31d1a5fbecd4c4e39002663d4d9f8fa96e97990b5298 stringio (3.2.0) sha256=c37cb2e58b4ffbd33fe5cd948c05934af997b36e0b6ca6fdf43afa234cf222e1 @@ -531,6 +588,7 @@ CHECKSUMS unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 + webrick (1.9.2) sha256=beb4a15fc474defed24a3bda4ffd88a490d517c9e4e6118c3edce59e45864131 yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 diff --git a/gems/rbs-merge/README.md b/gems/rbs-merge/README.md index c67cd6de6..30d32229b 100644 --- a/gems/rbs-merge/README.md +++ b/gems/rbs-merge/README.md @@ -575,7 +575,6 @@ If none of the available licenses suit your use case, please [contact us](mailto [🖐contrib-rocks]: https://contrib.rocks [🖐contributors]: https://github.com/structuredmerge/structuredmerge-ruby/graphs/contributors [🖐contributors-img]: https://contrib.rocks/image?repo=structuredmerge/structuredmerge-ruby -[🚎contributors-gl]: https://gitlab.com/structuredmerge/structuredmerge-ruby/-/graphs/main [🪇conduct]: https://github.com/structuredmerge/structuredmerge-ruby/blob/main/CODE_OF_CONDUCT.md [🪇conduct-img]: https://img.shields.io/badge/Contributor_Covenant-2.1-259D6C.svg [📌pvc]: http://guides.rubygems.org/patterns/#pessimistic-version-constraint diff --git a/gems/rbs-merge/Rakefile b/gems/rbs-merge/Rakefile index 34f8ffe21..bd4e18e2d 100644 --- a/gems/rbs-merge/Rakefile +++ b/gems/rbs-merge/Rakefile @@ -130,23 +130,23 @@ end ### DUPLICATE DRIFT TASKS begin - require "kettle/drift" + require 'kettle/drift' Kettle::Drift.install_tasks rescue LoadError - desc("(stub) kettle:drift:check is unavailable") - task("kettle:drift:check") do + desc('(stub) kettle:drift:check is unavailable') + task('kettle:drift:check') do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc("(stub) kettle:drift:update is unavailable") - task("kettle:drift:update") do + desc('(stub) kettle:drift:update is unavailable') + task('kettle:drift:update') do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc("(stub) kettle:drift:force_update is unavailable") - task("kettle:drift:force_update") do + desc('(stub) kettle:drift:force_update is unavailable') + task('kettle:drift:force_update') do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc("(stub) kettle:drift is unavailable") - task("kettle:drift" => "kettle:drift:update") + desc('(stub) kettle:drift is unavailable') + task('kettle:drift' => 'kettle:drift:update') end ### TEMPLATING TASKS diff --git a/gems/rbs-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile b/gems/rbs-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile index dec650815..b8392fab0 100644 --- a/gems/rbs-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile +++ b/gems/rbs-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.1 -gem "benchmark", "~> 0.5", ">= 0.5.0" # Removed from Std Lib in Ruby 4.0 +gem 'benchmark', '~> 0.5', '>= 0.5.0' # Removed from Std Lib in Ruby 4.0 diff --git a/gems/rbs-merge/gemfiles/modular/benchmark/vHEAD.gemfile b/gems/rbs-merge/gemfiles/modular/benchmark/vHEAD.gemfile index e1eb20c5e..af214aafa 100644 --- a/gems/rbs-merge/gemfiles/modular/benchmark/vHEAD.gemfile +++ b/gems/rbs-merge/gemfiles/modular/benchmark/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.1 -gem "benchmark", github: "ruby/benchmark", branch: "master" +gem 'benchmark', github: 'ruby/benchmark', branch: 'master' diff --git a/gems/rbs-merge/gemfiles/modular/cgi/r4/v0.5.gemfile b/gems/rbs-merge/gemfiles/modular/cgi/r4/v0.5.gemfile index 19ed967c3..17ad97260 100644 --- a/gems/rbs-merge/gemfiles/modular/cgi/r4/v0.5.gemfile +++ b/gems/rbs-merge/gemfiles/modular/cgi/r4/v0.5.gemfile @@ -1 +1 @@ -gem "cgi", "~> 0.5" +gem 'cgi', '~> 0.5' diff --git a/gems/rbs-merge/gemfiles/modular/cgi/vHEAD.gemfile b/gems/rbs-merge/gemfiles/modular/cgi/vHEAD.gemfile index ef8b816ce..650fbf033 100644 --- a/gems/rbs-merge/gemfiles/modular/cgi/vHEAD.gemfile +++ b/gems/rbs-merge/gemfiles/modular/cgi/vHEAD.gemfile @@ -1 +1 @@ -gem "cgi", ">= 0.5" +gem 'cgi', '>= 0.5' diff --git a/gems/rbs-merge/gemfiles/modular/coverage.gemfile b/gems/rbs-merge/gemfiles/modular/coverage.gemfile index 52d737872..b93014b6b 100644 --- a/gems/rbs-merge/gemfiles/modular/coverage.gemfile +++ b/gems/rbs-merge/gemfiles/modular/coverage.gemfile @@ -4,11 +4,11 @@ # Set KETTLE_DEV_DEV=true for local development with path-based dependencies. # When false (default / CI), remote released gems are used. -if ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false").zero? +if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? # Coverage (remote/released) platform :mri do - gem "kettle-soup-cover", "~> 3.0", ">= 3.0.3", require: false + gem 'kettle-soup-cover', '~> 3.0', '>= 3.0.3', require: false end else - eval_gemfile "coverage_local.gemfile" + eval_gemfile 'coverage_local.gemfile' end diff --git a/gems/rbs-merge/gemfiles/modular/coverage_local.gemfile b/gems/rbs-merge/gemfiles/modular/coverage_local.gemfile index 17070985e..f564d6ae4 100644 --- a/gems/rbs-merge/gemfiles/modular/coverage_local.gemfile +++ b/gems/rbs-merge/gemfiles/modular/coverage_local.gemfile @@ -11,21 +11,19 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] -nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) +nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] +nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == "nomono" } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - if nomono_locked - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] - end + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked end -Kernel.send(:gem, "nomono", *nomono_activation_requirements) -require "nomono/bundler" +Kernel.send(:gem, 'nomono', *nomono_activation_requirements) +require 'nomono/bundler' local_gems = %w[kettle-dev kettle-test kettle-soup-cover kettle-drift] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) @@ -35,21 +33,21 @@ local_gems_to_eval = local_gems - %w[rbs-merge] - declared_gems platform :mri do eval_nomono_gems( gems: local_gems_to_eval, - prefix: "KETTLE_DEV", - path_env: "KETTLE_DEV_DEV", - vendored_gems_env: "VENDORED_GEMS", - vendor_gem_dir_env: "VENDOR_GEM_DIR", - debug_env: "KETTLE_DEV_DEBUG" + prefix: 'KETTLE_DEV', + path_env: 'KETTLE_DEV_DEV', + vendored_gems_env: 'VENDORED_GEMS', + vendor_gem_dir_env: 'VENDOR_GEM_DIR', + debug_env: 'KETTLE_DEV_DEBUG' ) - if ENV.fetch("GALTZO_FLOSS_DEV", "false").casecmp("false") != 0 + if ENV.fetch('GALTZO_FLOSS_DEV', 'false').casecmp('false') != 0 eval_nomono_gems( gems: %w[turbo_tests2], - prefix: "GALTZO_FLOSS", - path_env: "GALTZO_FLOSS_DEV", - vendored_gems_env: "GALTZO_FLOSS_VENDORED_GEMS", - vendor_gem_dir_env: "GALTZO_FLOSS_VENDOR_GEM_DIR", - debug_env: "GALTZO_FLOSS_DEBUG" + prefix: 'GALTZO_FLOSS', + path_env: 'GALTZO_FLOSS_DEV', + vendored_gems_env: 'GALTZO_FLOSS_VENDORED_GEMS', + vendor_gem_dir_env: 'GALTZO_FLOSS_VENDOR_GEM_DIR', + debug_env: 'GALTZO_FLOSS_DEBUG' ) end end diff --git a/gems/rbs-merge/gemfiles/modular/debug.gemfile b/gems/rbs-merge/gemfiles/modular/debug.gemfile index 4e15b1a3a..eed8d4d1e 100644 --- a/gems/rbs-merge/gemfiles/modular/debug.gemfile +++ b/gems/rbs-merge/gemfiles/modular/debug.gemfile @@ -13,10 +13,10 @@ platform :mri do # Debugging - Ensure ENV["DEBUG"] == "true" to use debuggers within spec suite # Use binding.break, binding.b, or debugger in code - gem "debug", ">= 1.1" # ruby >= 2.7 + gem 'debug', '>= 1.1' # ruby >= 2.7 # Dev Console - Binding.pry - Irb replacement # gem "pry", "~> 0.14" # ruby >= 2.0 end -gem "gem_bench", "~> 2.0", ">= 2.0.5" +gem 'gem_bench', '~> 2.0', '>= 2.0.5' diff --git a/gems/rbs-merge/gemfiles/modular/documentation.gemfile b/gems/rbs-merge/gemfiles/modular/documentation.gemfile index d8215416e..9d4535f12 100644 --- a/gems/rbs-merge/gemfiles/modular/documentation.gemfile +++ b/gems/rbs-merge/gemfiles/modular/documentation.gemfile @@ -7,20 +7,20 @@ # # Documentation -gem "kramdown", "~> 2.5", ">= 2.5.2", require: false # Ruby >= 2.5 -gem "kramdown-parser-gfm", "~> 1.1", require: false # Ruby >= 2.3 -gem "yaml-converter", "~> 0.2", ">= 0.2.3", require: false # Ruby >= 3.2 -gem "yard", "~> 0.9", ">= 0.9.45", require: false -gem "yard-junk", "~> 0.1", ">= 0.1.0", require: false # Ruby >= 3.1 -gem "yard-relative_markdown_links", "~> 0.6", require: false +gem 'kramdown', '~> 2.5', '>= 2.5.2', require: false # Ruby >= 2.5 +gem 'kramdown-parser-gfm', '~> 1.1', require: false # Ruby >= 2.3 +gem 'yaml-converter', '~> 0.2', '>= 0.2.3', require: false # Ruby >= 3.2 +gem 'yard', '~> 0.9', '>= 0.9.45', require: false +gem 'yard-junk', '~> 0.1', '>= 0.1.0', require: false # Ruby >= 3.1 +gem 'yard-relative_markdown_links', '~> 0.6', require: false -if ENV.fetch("GALTZO_FLOSS_DEV", "false").casecmp("false").zero? - gem "yard-fence", "~> 0.9", ">= 0.9.6", require: false # Ruby >= 3.2 - gem "yard-timekeeper", "~> 0.2", ">= 0.2.4", require: false - gem "yard-yaml", "~> 0.2", ">= 0.2.3", require: false +if ENV.fetch('GALTZO_FLOSS_DEV', 'false').casecmp('false').zero? + gem 'yard-fence', '~> 0.9', '>= 0.9.6', require: false # Ruby >= 3.2 + gem 'yard-timekeeper', '~> 0.2', '>= 0.2.4', require: false + gem 'yard-yaml', '~> 0.2', '>= 0.2.3', require: false else - eval_gemfile "documentation_local.gemfile" + eval_gemfile 'documentation_local.gemfile' end # Std Lib extractions -gem "rdoc", "~> 6.11", require: false unless ENV.fetch("KJ_FRAMEWORK_MATRIX_GEM", "") == "rdoc" +gem 'rdoc', '~> 6.11', require: false unless ENV.fetch('KJ_FRAMEWORK_MATRIX_GEM', '') == 'rdoc' diff --git a/gems/rbs-merge/gemfiles/modular/documentation_local.gemfile b/gems/rbs-merge/gemfiles/modular/documentation_local.gemfile index a8cdf0328..c90c8606e 100644 --- a/gems/rbs-merge/gemfiles/modular/documentation_local.gemfile +++ b/gems/rbs-merge/gemfiles/modular/documentation_local.gemfile @@ -11,21 +11,19 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] -nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) +nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] +nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == "nomono" } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - if nomono_locked - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] - end + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked end -Kernel.send(:gem, "nomono", *nomono_activation_requirements) -require "nomono/bundler" +Kernel.send(:gem, 'nomono', *nomono_activation_requirements) +require 'nomono/bundler' local_gems = %w[yard-fence yard-timekeeper yard-yaml] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) @@ -34,9 +32,9 @@ local_gems_to_eval = local_gems - %w[rbs-merge] - declared_gems # export GALTZO_FLOSS_DEV=/path/to/galtzo-floss eval_nomono_gems( gems: local_gems_to_eval, - prefix: "GALTZO_FLOSS", - path_env: "GALTZO_FLOSS_DEV", - vendored_gems_env: "GALTZO_FLOSS_VENDORED_GEMS", - vendor_gem_dir_env: "GALTZO_FLOSS_VENDOR_GEM_DIR", - debug_env: "GALTZO_FLOSS_DEBUG" + prefix: 'GALTZO_FLOSS', + path_env: 'GALTZO_FLOSS_DEV', + vendored_gems_env: 'GALTZO_FLOSS_VENDORED_GEMS', + vendor_gem_dir_env: 'GALTZO_FLOSS_VENDOR_GEM_DIR', + debug_env: 'GALTZO_FLOSS_DEBUG' ) diff --git a/gems/rbs-merge/gemfiles/modular/erb/r2/v3.0.gemfile b/gems/rbs-merge/gemfiles/modular/erb/r2/v3.0.gemfile index c03bd8d85..7c83a239b 100644 --- a/gems/rbs-merge/gemfiles/modular/erb/r2/v3.0.gemfile +++ b/gems/rbs-merge/gemfiles/modular/erb/r2/v3.0.gemfile @@ -1 +1 @@ -gem "erb", "~> 3.0" # ruby >= 2.7.0 +gem 'erb', '~> 3.0' # ruby >= 2.7.0 diff --git a/gems/rbs-merge/gemfiles/modular/erb/r3/v5.0.gemfile b/gems/rbs-merge/gemfiles/modular/erb/r3/v5.0.gemfile index 1bd029cc1..ec7ff451f 100644 --- a/gems/rbs-merge/gemfiles/modular/erb/r3/v5.0.gemfile +++ b/gems/rbs-merge/gemfiles/modular/erb/r3/v5.0.gemfile @@ -1 +1 @@ -gem "erb", "~> 6.0", ">= 6.0.6" # ruby >= 3.2.0 +gem 'erb', '~> 6.0', '>= 6.0.6' # ruby >= 3.2.0 diff --git a/gems/rbs-merge/gemfiles/modular/erb/r4/v5.0.gemfile b/gems/rbs-merge/gemfiles/modular/erb/r4/v5.0.gemfile index 1bd029cc1..ec7ff451f 100644 --- a/gems/rbs-merge/gemfiles/modular/erb/r4/v5.0.gemfile +++ b/gems/rbs-merge/gemfiles/modular/erb/r4/v5.0.gemfile @@ -1 +1 @@ -gem "erb", "~> 6.0", ">= 6.0.6" # ruby >= 3.2.0 +gem 'erb', '~> 6.0', '>= 6.0.6' # ruby >= 3.2.0 diff --git a/gems/rbs-merge/gemfiles/modular/erb/vHEAD.gemfile b/gems/rbs-merge/gemfiles/modular/erb/vHEAD.gemfile index 48fee4218..ea0101185 100644 --- a/gems/rbs-merge/gemfiles/modular/erb/vHEAD.gemfile +++ b/gems/rbs-merge/gemfiles/modular/erb/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 3.2 -gem "erb", github: "ruby/erb", branch: "master" +gem 'erb', github: 'ruby/erb', branch: 'master' diff --git a/gems/rbs-merge/gemfiles/modular/json/truffleruby_22_3.gemfile b/gems/rbs-merge/gemfiles/modular/json/truffleruby_22_3.gemfile index b0e69ab11..9b2f8d96a 100644 --- a/gems/rbs-merge/gemfiles/modular/json/truffleruby_22_3.gemfile +++ b/gems/rbs-merge/gemfiles/modular/json/truffleruby_22_3.gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -if RUBY_ENGINE == "truffleruby" && RUBY_ENGINE_VERSION.start_with?("22.3") +if RUBY_ENGINE == 'truffleruby' && RUBY_ENGINE_VERSION.start_with?('22.3') # TruffleRuby 22.3 ships the json default gem from its emulated MRI Ruby. - gem "json", "= 2.5.1" + gem 'json', '= 2.5.1' end diff --git a/gems/rbs-merge/gemfiles/modular/json/truffleruby_23_0.gemfile b/gems/rbs-merge/gemfiles/modular/json/truffleruby_23_0.gemfile index 7b2660a2b..d787a5ef4 100644 --- a/gems/rbs-merge/gemfiles/modular/json/truffleruby_23_0.gemfile +++ b/gems/rbs-merge/gemfiles/modular/json/truffleruby_23_0.gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -if RUBY_ENGINE == "truffleruby" && RUBY_ENGINE_VERSION.start_with?("23.0") +if RUBY_ENGINE == 'truffleruby' && RUBY_ENGINE_VERSION.start_with?('23.0') # TruffleRuby 23.0 ships the json default gem from its emulated MRI Ruby. - gem "json", "= 2.6.1" + gem 'json', '= 2.6.1' end diff --git a/gems/rbs-merge/gemfiles/modular/json/truffleruby_23_1.gemfile b/gems/rbs-merge/gemfiles/modular/json/truffleruby_23_1.gemfile index dfa21f2e4..d78486b0e 100644 --- a/gems/rbs-merge/gemfiles/modular/json/truffleruby_23_1.gemfile +++ b/gems/rbs-merge/gemfiles/modular/json/truffleruby_23_1.gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -if RUBY_ENGINE == "truffleruby" && RUBY_ENGINE_VERSION.start_with?("23.1") +if RUBY_ENGINE == 'truffleruby' && RUBY_ENGINE_VERSION.start_with?('23.1') # TruffleRuby 23.1 ships the json default gem from its emulated MRI Ruby. - gem "json", "= 2.6.3" + gem 'json', '= 2.6.3' end diff --git a/gems/rbs-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile b/gems/rbs-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile index 42e9d9bd4..e27f1bbae 100644 --- a/gems/rbs-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile +++ b/gems/rbs-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 -gem "mutex_m", "~> 0.2" +gem 'mutex_m', '~> 0.2' diff --git a/gems/rbs-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile b/gems/rbs-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile index 42e9d9bd4..e27f1bbae 100644 --- a/gems/rbs-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile +++ b/gems/rbs-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 -gem "mutex_m", "~> 0.2" +gem 'mutex_m', '~> 0.2' diff --git a/gems/rbs-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile b/gems/rbs-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile index 42e9d9bd4..e27f1bbae 100644 --- a/gems/rbs-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile +++ b/gems/rbs-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 -gem "mutex_m", "~> 0.2" +gem 'mutex_m', '~> 0.2' diff --git a/gems/rbs-merge/gemfiles/modular/mutex_m/vHEAD.gemfile b/gems/rbs-merge/gemfiles/modular/mutex_m/vHEAD.gemfile index 8af3b6fca..9dac2f6cb 100644 --- a/gems/rbs-merge/gemfiles/modular/mutex_m/vHEAD.gemfile +++ b/gems/rbs-merge/gemfiles/modular/mutex_m/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 (dependency of omniauth) -gem "mutex_m", github: "ruby/mutex_m", branch: "master" +gem 'mutex_m', github: 'ruby/mutex_m', branch: 'master' diff --git a/gems/rbs-merge/gemfiles/modular/optional.gemfile b/gems/rbs-merge/gemfiles/modular/optional.gemfile index 67f689c0f..dad9c8f51 100644 --- a/gems/rbs-merge/gemfiles/modular/optional.gemfile +++ b/gems/rbs-merge/gemfiles/modular/optional.gemfile @@ -10,4 +10,4 @@ # Required for kettle-pre-release # URL parsing with Unicode support (falls back to URI if not available) -gem "addressable", ">= 2.8", "< 3" # ruby >= 2.2 +gem 'addressable', '>= 2.8', '< 3' # ruby >= 2.2 diff --git a/gems/rbs-merge/gemfiles/modular/rspec.gemfile b/gems/rbs-merge/gemfiles/modular/rspec.gemfile index 72fdf8b7f..2af210a41 100644 --- a/gems/rbs-merge/gemfiles/modular/rspec.gemfile +++ b/gems/rbs-merge/gemfiles/modular/rspec.gemfile @@ -1,4 +1,4 @@ -gem "rspec_junit_formatter", - github: "pboling/rspec_junit_formatter", - branch: "main", - ref: "9e6bcaaedd49477b62878ed568dc4ada5cc7cb5e" +gem 'rspec_junit_formatter', + github: 'pboling/rspec_junit_formatter', + branch: 'main', + ref: '9e6bcaaedd49477b62878ed568dc4ada5cc7cb5e' diff --git a/gems/rbs-merge/gemfiles/modular/runtime_heads.gemfile b/gems/rbs-merge/gemfiles/modular/runtime_heads.gemfile index 02f134c7f..ebf17c529 100644 --- a/gems/rbs-merge/gemfiles/modular/runtime_heads.gemfile +++ b/gems/rbs-merge/gemfiles/modular/runtime_heads.gemfile @@ -8,4 +8,4 @@ # Test against HEAD of runtime dependencies so we can proactively file bugs -eval_gemfile("x_std_libs/vHEAD.gemfile") +eval_gemfile('x_std_libs/vHEAD.gemfile') diff --git a/gems/rbs-merge/gemfiles/modular/stringio/r2/v3.0.gemfile b/gems/rbs-merge/gemfiles/modular/stringio/r2/v3.0.gemfile index e85bb18ee..3616f4e3a 100644 --- a/gems/rbs-merge/gemfiles/modular/stringio/r2/v3.0.gemfile +++ b/gems/rbs-merge/gemfiles/modular/stringio/r2/v3.0.gemfile @@ -2,4 +2,4 @@ # NOT SEMVER # Version 3.0.7 dropped support for Ruby <= 2.7 # Version 3.0.0 dropped support for Ruby <= 2.4 -gem "stringio", ">= 3.0" +gem 'stringio', '>= 3.0' diff --git a/gems/rbs-merge/gemfiles/modular/stringio/r3/v3.0.gemfile b/gems/rbs-merge/gemfiles/modular/stringio/r3/v3.0.gemfile index e85bb18ee..3616f4e3a 100644 --- a/gems/rbs-merge/gemfiles/modular/stringio/r3/v3.0.gemfile +++ b/gems/rbs-merge/gemfiles/modular/stringio/r3/v3.0.gemfile @@ -2,4 +2,4 @@ # NOT SEMVER # Version 3.0.7 dropped support for Ruby <= 2.7 # Version 3.0.0 dropped support for Ruby <= 2.4 -gem "stringio", ">= 3.0" +gem 'stringio', '>= 3.0' diff --git a/gems/rbs-merge/gemfiles/modular/stringio/r4/v3.0.gemfile b/gems/rbs-merge/gemfiles/modular/stringio/r4/v3.0.gemfile index e85bb18ee..3616f4e3a 100644 --- a/gems/rbs-merge/gemfiles/modular/stringio/r4/v3.0.gemfile +++ b/gems/rbs-merge/gemfiles/modular/stringio/r4/v3.0.gemfile @@ -2,4 +2,4 @@ # NOT SEMVER # Version 3.0.7 dropped support for Ruby <= 2.7 # Version 3.0.0 dropped support for Ruby <= 2.4 -gem "stringio", ">= 3.0" +gem 'stringio', '>= 3.0' diff --git a/gems/rbs-merge/gemfiles/modular/stringio/vHEAD.gemfile b/gems/rbs-merge/gemfiles/modular/stringio/vHEAD.gemfile index 5f2a74126..78f5f5d8a 100644 --- a/gems/rbs-merge/gemfiles/modular/stringio/vHEAD.gemfile +++ b/gems/rbs-merge/gemfiles/modular/stringio/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 (dependency of omniauth) -gem "stringio", github: "ruby/stringio", branch: "master" +gem 'stringio', github: 'ruby/stringio', branch: 'master' diff --git a/gems/rbs-merge/gemfiles/modular/style.gemfile b/gems/rbs-merge/gemfiles/modular/style.gemfile index 35de4dcd6..4dbcc02c0 100644 --- a/gems/rbs-merge/gemfiles/modular/style.gemfile +++ b/gems/rbs-merge/gemfiles/modular/style.gemfile @@ -9,23 +9,23 @@ # Style tasks run on the latest Ruby; RuboCop-LTS selects the compatibility # rules for the configured Ruby floor independently from task dependency floors. -gem "reek", "~> 6.5", ">= 6.5.0" +gem 'reek', '~> 6.5', '>= 6.5.0' platform :mri do - gem "appraisal2-rubocop", "~> 1.0", ">= 1.0.0", require: false - gem "rubocop-gradual", "~> 0.4", ">= 0.4.0" - gem "rubocop-minitest", "~> 0.40", ">= 0.40.0" - gem "rubocop-on-rbs", "~> 2.0", ">= 2.0.0" # ruby >= 3.2.0 + gem 'appraisal2-rubocop', '~> 1.0', '>= 1.0.0', require: false + gem 'rubocop-gradual', '~> 0.4', '>= 0.4.0' + gem 'rubocop-minitest', '~> 0.40', '>= 0.40.0' + gem 'rubocop-on-rbs', '~> 2.0', '>= 2.0.0' # ruby >= 3.2.0 # gem "rubocop", "~> 1.73", ">= 1.73.2" # constrained by standard - gem "rubocop-packaging", "~> 0.6", ">= 0.6.0" - gem "standard", "~> 1.56", ">= 1.56.0" + gem 'rubocop-packaging', '~> 0.6', '>= 0.6.0' + gem 'standard', '~> 1.56', '>= 1.56.0' - if ENV.fetch("RUBOCOP_LTS_LOCAL", "false").casecmp("false").zero? + if ENV.fetch('RUBOCOP_LTS_LOCAL', 'false').casecmp('false').zero? declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) - gem "rubocop-lts", "~> 24.2", ">= 24.2.1" unless declared_gems.include?("rubocop-lts") - gem "rubocop-lts-rspec", "~> 1.0", ">= 1.0.5" unless declared_gems.include?("rubocop-lts-rspec") - gem "rubocop-ruby3_2", "~> 3.0", ">= 3.0.6" unless declared_gems.include?("rubocop-ruby3_2") + gem 'rubocop-lts', '~> 24.2', '>= 24.2.1' unless declared_gems.include?('rubocop-lts') + gem 'rubocop-lts-rspec', '~> 1.0', '>= 1.0.5' unless declared_gems.include?('rubocop-lts-rspec') + gem 'rubocop-ruby3_2', '~> 3.0', '>= 3.0.6' unless declared_gems.include?('rubocop-ruby3_2') else - eval_gemfile("style_local.gemfile") + eval_gemfile('style_local.gemfile') end end diff --git a/gems/rbs-merge/gemfiles/modular/style_local.gemfile b/gems/rbs-merge/gemfiles/modular/style_local.gemfile index dbdea4662..9f5254808 100644 --- a/gems/rbs-merge/gemfiles/modular/style_local.gemfile +++ b/gems/rbs-merge/gemfiles/modular/style_local.gemfile @@ -14,21 +14,19 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] -nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) +nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] +nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == "nomono" } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - if nomono_locked - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] - end + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked end -Kernel.send(:gem, "nomono", *nomono_activation_requirements) -require "nomono/bundler" +Kernel.send(:gem, 'nomono', *nomono_activation_requirements) +require 'nomono/bundler' local_gems = %w[rubocop-lts rubocop-lts-rspec rubocop-ruby3_2 standard-rubocop-lts] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) @@ -38,11 +36,11 @@ local_gems_to_eval = local_gems - %w[rbs-merge] - declared_gems platform :mri do eval_nomono_gems( gems: local_gems_to_eval, - prefix: "RUBOCOP_LTS", - path_env: "RUBOCOP_LTS_LOCAL", - vendored_gems_env: "VENDORED_GEMS", - vendor_gem_dir_env: "VENDOR_GEM_DIR", - debug_env: "RUBOCOP_LTS_DEBUG", - root: ["src", "rubocop-lts"] + prefix: 'RUBOCOP_LTS', + path_env: 'RUBOCOP_LTS_LOCAL', + vendored_gems_env: 'VENDORED_GEMS', + vendor_gem_dir_env: 'VENDOR_GEM_DIR', + debug_env: 'RUBOCOP_LTS_DEBUG', + root: %w[src rubocop-lts] ) end diff --git a/gems/rbs-merge/gemfiles/modular/templating.gemfile b/gems/rbs-merge/gemfiles/modular/templating.gemfile index 47138ffbb..a672de184 100644 --- a/gems/rbs-merge/gemfiles/modular/templating.gemfile +++ b/gems/rbs-merge/gemfiles/modular/templating.gemfile @@ -1,18 +1,18 @@ # frozen_string_literal: true -structuredmerge_remote = ENV.fetch("STRUCTUREDMERGE_DEV", "false").casecmp("false").zero? -kettle_remote = ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false").zero? +structuredmerge_remote = ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false').zero? +kettle_remote = ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? if structuredmerge_remote # Parser dependencies for released installs. - gem "tree_sitter_language_pack", "~> 1.13", ">= 1.13.3" + gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' # Merge recipes for released installs. - gem "kettle-jem", ">= 7.0" + gem 'kettle-jem', '>= 7.0' end if kettle_remote # Template/plugin checks for released installs. - gem "kettle-drift", "~> 1.0", ">= 1.0.6", require: false + gem 'kettle-drift', '~> 1.0', '>= 1.0.6', require: false end # Set STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local development with path-based dependencies. @@ -21,4 +21,4 @@ end # # Set KETTLE_DEV_DEV=/path/to/my for local development with Kettle plugin gems. # When false (default / CI), released Kettle plugin gems are used. -eval_gemfile "templating_local.gemfile" unless structuredmerge_remote && kettle_remote +eval_gemfile 'templating_local.gemfile' unless structuredmerge_remote && kettle_remote diff --git a/gems/rbs-merge/gemfiles/modular/templating_local.gemfile b/gems/rbs-merge/gemfiles/modular/templating_local.gemfile index 3391bac54..bdeeaa089 100644 --- a/gems/rbs-merge/gemfiles/modular/templating_local.gemfile +++ b/gems/rbs-merge/gemfiles/modular/templating_local.gemfile @@ -12,21 +12,19 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] -nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) +nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] +nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == "nomono" } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - if nomono_locked - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] - end + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked end -Kernel.send(:gem, "nomono", *nomono_activation_requirements) -require "nomono/bundler" +Kernel.send(:gem, 'nomono', *nomono_activation_requirements) +require 'nomono/bundler' structuredmerge_local_gems = %w[ tree_haver @@ -69,25 +67,25 @@ structuredmerge_local_gems_to_eval = structuredmerge_local_gems - %w[rbs-merge] kettle_dev_local_gems_to_eval = kettle_dev_local_gems - %w[rbs-merge] - declared_gems platform :mri do - if ENV.fetch("STRUCTUREDMERGE_DEV", "false").casecmp("false") != 0 + if ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false') != 0 eval_nomono_gems( gems: structuredmerge_local_gems_to_eval, - prefix: "STRUCTUREDMERGE", - path_env: "STRUCTUREDMERGE_DEV", - vendored_gems_env: "VENDORED_GEMS", - vendor_gem_dir_env: "VENDOR_GEM_DIR", - debug_env: "STRUCTUREDMERGE_DEBUG" + prefix: 'STRUCTUREDMERGE', + path_env: 'STRUCTUREDMERGE_DEV', + vendored_gems_env: 'VENDORED_GEMS', + vendor_gem_dir_env: 'VENDOR_GEM_DIR', + debug_env: 'STRUCTUREDMERGE_DEBUG' ) end - if ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false") != 0 + if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false') != 0 eval_nomono_gems( gems: kettle_dev_local_gems_to_eval, - prefix: "KETTLE_DEV", - path_env: "KETTLE_DEV_DEV", - vendored_gems_env: "VENDORED_GEMS", - vendor_gem_dir_env: "VENDOR_GEM_DIR", - debug_env: "KETTLE_DEV_DEBUG" + prefix: 'KETTLE_DEV', + path_env: 'KETTLE_DEV_DEV', + vendored_gems_env: 'VENDORED_GEMS', + vendor_gem_dir_env: 'VENDOR_GEM_DIR', + debug_env: 'KETTLE_DEV_DEBUG' ) end end diff --git a/gems/rbs-merge/gemfiles/modular/webrick/r4/v1.9.gemfile b/gems/rbs-merge/gemfiles/modular/webrick/r4/v1.9.gemfile index eaab4a473..b1329ba84 100644 --- a/gems/rbs-merge/gemfiles/modular/webrick/r4/v1.9.gemfile +++ b/gems/rbs-merge/gemfiles/modular/webrick/r4/v1.9.gemfile @@ -1 +1 @@ -gem "webrick", "~> 1.9" +gem 'webrick', '~> 1.9' diff --git a/gems/rbs-merge/gemfiles/modular/webrick/vHEAD.gemfile b/gems/rbs-merge/gemfiles/modular/webrick/vHEAD.gemfile index 8a789b634..c7e6f81a1 100644 --- a/gems/rbs-merge/gemfiles/modular/webrick/vHEAD.gemfile +++ b/gems/rbs-merge/gemfiles/modular/webrick/vHEAD.gemfile @@ -1 +1 @@ -gem "webrick", ">= 1.9" +gem 'webrick', '>= 1.9' diff --git a/gems/rbs-merge/gemfiles/modular/x_std_libs.gemfile b/gems/rbs-merge/gemfiles/modular/x_std_libs.gemfile index 77aad43f2..b1f43c097 100644 --- a/gems/rbs-merge/gemfiles/modular/x_std_libs.gemfile +++ b/gems/rbs-merge/gemfiles/modular/x_std_libs.gemfile @@ -1,12 +1,12 @@ ### Std Lib Extracted Gems ruby_version = Gem::Version.new(RUBY_VERSION) -if ruby_version >= Gem::Version.new("4.0") - eval_gemfile "x_std_libs/r4/libs.gemfile" -elsif ruby_version >= Gem::Version.new("3.2") - eval_gemfile "x_std_libs/r3/libs.gemfile" -elsif ruby_version >= Gem::Version.new("3.1") - eval_gemfile "x_std_libs/r3.1/libs.gemfile" +if ruby_version >= Gem::Version.new('4.0') + eval_gemfile 'x_std_libs/r4/libs.gemfile' +elsif ruby_version >= Gem::Version.new('3.2') + eval_gemfile 'x_std_libs/r3/libs.gemfile' +elsif ruby_version >= Gem::Version.new('3.1') + eval_gemfile 'x_std_libs/r3.1/libs.gemfile' else - eval_gemfile "x_std_libs/r2/libs.gemfile" + eval_gemfile 'x_std_libs/r2/libs.gemfile' end diff --git a/gems/rbs-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile b/gems/rbs-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile index 441c4f03a..16a5e3d70 100644 --- a/gems/rbs-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile +++ b/gems/rbs-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile @@ -1,3 +1,3 @@ -eval_gemfile "../../erb/r2/v3.0.gemfile" -eval_gemfile "../../mutex_m/r2/v0.3.gemfile" -eval_gemfile "../../stringio/r2/v3.0.gemfile" +eval_gemfile '../../erb/r2/v3.0.gemfile' +eval_gemfile '../../mutex_m/r2/v0.3.gemfile' +eval_gemfile '../../stringio/r2/v3.0.gemfile' diff --git a/gems/rbs-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile b/gems/rbs-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile index c293a3ddd..220ff95c1 100644 --- a/gems/rbs-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile +++ b/gems/rbs-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile @@ -1,3 +1,3 @@ -eval_gemfile "../../erb/r3/v5.0.gemfile" -eval_gemfile "../../mutex_m/r3/v0.3.gemfile" -eval_gemfile "../../stringio/r3/v3.0.gemfile" +eval_gemfile '../../erb/r3/v5.0.gemfile' +eval_gemfile '../../mutex_m/r3/v0.3.gemfile' +eval_gemfile '../../stringio/r3/v3.0.gemfile' diff --git a/gems/rbs-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile b/gems/rbs-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile index eb5574247..e2f6501eb 100644 --- a/gems/rbs-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile +++ b/gems/rbs-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile @@ -1,6 +1,6 @@ -eval_gemfile "../../erb/r4/v5.0.gemfile" -eval_gemfile "../../mutex_m/r4/v0.3.gemfile" -eval_gemfile "../../stringio/r4/v3.0.gemfile" -eval_gemfile "../../benchmark/r4/v0.5.gemfile" -eval_gemfile "../../cgi/r4/v0.5.gemfile" -eval_gemfile "../../webrick/r4/v1.9.gemfile" +eval_gemfile '../../erb/r4/v5.0.gemfile' +eval_gemfile '../../mutex_m/r4/v0.3.gemfile' +eval_gemfile '../../stringio/r4/v3.0.gemfile' +eval_gemfile '../../benchmark/r4/v0.5.gemfile' +eval_gemfile '../../cgi/r4/v0.5.gemfile' +eval_gemfile '../../webrick/r4/v1.9.gemfile' diff --git a/gems/rbs-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile b/gems/rbs-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile index d4d5b16c9..ab75cccf1 100644 --- a/gems/rbs-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile +++ b/gems/rbs-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile @@ -1,6 +1,6 @@ -eval_gemfile "../erb/vHEAD.gemfile" -eval_gemfile "../mutex_m/vHEAD.gemfile" -eval_gemfile "../stringio/vHEAD.gemfile" -eval_gemfile "../benchmark/vHEAD.gemfile" -eval_gemfile "../cgi/vHEAD.gemfile" -eval_gemfile "../webrick/vHEAD.gemfile" +eval_gemfile '../erb/vHEAD.gemfile' +eval_gemfile '../mutex_m/vHEAD.gemfile' +eval_gemfile '../stringio/vHEAD.gemfile' +eval_gemfile '../benchmark/vHEAD.gemfile' +eval_gemfile '../cgi/vHEAD.gemfile' +eval_gemfile '../webrick/vHEAD.gemfile' diff --git a/gems/toml-merge/Gemfile.lock b/gems/toml-merge/Gemfile.lock index ff876b028..75f3b7fce 100644 --- a/gems/toml-merge/Gemfile.lock +++ b/gems/toml-merge/Gemfile.lock @@ -6,6 +6,265 @@ PATH tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly + specs: + ast-crispr-markdown-markly (7.1.0) + ast-crispr (= 7.1.0) + markly-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism + specs: + ast-crispr-ruby-prism (7.1.0) + ast-crispr (= 7.1.0) + prism-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr + specs: + ast-crispr (7.1.0) + ast-merge (= 7.1.0) + service_actor (~> 3.9) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git + specs: + ast-merge-git (7.1.0) + ast-merge (= 7.1.0) + json-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge + specs: + ast-merge (7.1.0) + benchmark + token-resolver (~> 2.0, >= 2.0.4) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template + specs: + ast-template (7.1.0) + ast-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge + specs: + bash-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge + specs: + binary-merge (7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge + specs: + citrus-toml-merge (7.1.0) + toml-merge (= 7.1.0) + toml-rb (~> 4.1) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge + specs: + commonmarker-merge (7.1.0) + commonmarker (~> 2.2) + markdown-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge + specs: + dotenv-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge + specs: + go-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge + specs: + json-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem + specs: + kettle-jem (7.1.0) + addressable (>= 2.8, < 3) + ast-crispr-markdown-markly (= 7.1.0) + ast-crispr-ruby-prism (= 7.1.0) + ast-merge (= 7.1.0) + bash-merge (= 7.1.0) + citrus-toml-merge (= 7.1.0) + commonmarker-merge (= 7.1.0) + dotenv-merge (= 7.1.0) + json-merge (= 7.1.0) + kettle-dev (~> 2.3, >= 2.3.5) + kettle-rb (~> 0.1, >= 0.1.4) + kramdown-merge (= 7.1.0) + markdown-merge (= 7.1.0) + markly-merge (= 7.1.0) + prism-merge (= 7.1.0) + psych-merge (= 7.1.0) + rbs (>= 3.10) + rbs-merge (= 7.1.0) + ruby-merge (= 7.1.0) + token-resolver (~> 2.0, >= 2.0.4) + toml-merge (= 7.1.0) + toml-rb (~> 4.2) + tree_haver (= 7.1.0) + yaml-merge (= 7.1.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge + specs: + kramdown-merge (7.1.0) + kramdown (~> 2.5) + markdown-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge + specs: + markdown-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge + specs: + markly-merge (7.1.0) + markdown-merge (= 7.1.0) + markly (~> 0.9) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge + specs: + parslet-toml-merge (7.1.0) + toml (~> 0.3) + toml-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge + specs: + plain-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge + specs: + prism-merge (7.1.0) + prism (~> 1.6) + ruby-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge + specs: + psych-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + yaml-merge (= 7.1.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge + specs: + rbs-merge (7.1.0) + ast-merge (= 7.1.0) + rbs (>= 3.10) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge + specs: + ruby-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge + specs: + rust-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb + specs: + smorg-rb (7.1.0) + ast-merge (= 7.1.0) + ast-merge-git (= 7.1.0) + go-merge (= 7.1.0) + json-merge (= 7.1.0) + kettle-jem (= 7.1.0) + markly-merge (= 7.1.0) + plain-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver + specs: + tree_haver (7.1.0) + citrus (~> 3.0) + parslet (~> 2.0) + tree_sitter_language_pack (>= 1.13.2, < 2.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge + specs: + typescript-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge + specs: + yaml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge + specs: + zip-merge (7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + GEM remote: https://gem.coop/ specs: @@ -17,11 +276,6 @@ GEM rake (>= 10) thor (>= 0.14) ast (2.4.3) - ast-merge (7.1.0) - benchmark - token-resolver (~> 2.0, >= 2.0.4) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) backports (3.25.3) benchmark (0.5.0) bigdecimal (4.1.2) @@ -30,6 +284,12 @@ GEM thor (~> 1.0) citrus (3.0.2) cmdparse (3.0.7) + commonmarker (2.9.0-aarch64-linux) + commonmarker (2.9.0-aarch64-linux-musl) + commonmarker (2.9.0-arm64-darwin) + commonmarker (2.9.0-x86_64-darwin) + commonmarker (2.9.0-x86_64-linux) + commonmarker (2.9.0-x86_64-linux-musl) concurrent-ruby (1.3.7) date (3.5.1) debug (1.11.1) @@ -93,6 +353,8 @@ GEM kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) + kettle-drift (1.0.6) + version_gem (~> 1.1, >= 1.1.14) kettle-rb (0.1.4) kettle-soup-cover (1.1.3) simplecov (~> 0.22) @@ -121,6 +383,7 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) + markly (0.16.0) mutex_m (0.3.0) nokogiri (1.19.4-aarch64-linux-gnu) racc (~> 1.4) @@ -257,6 +520,8 @@ GEM ruby-progressbar (1.13.0) ruby_engine (2.0.3) ruby_version (1.0.3) + service_actor (3.9.4) + zeitwerk (>= 1.0) silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) @@ -309,11 +574,11 @@ GEM token-resolver (2.0.4) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.13) - tree_haver (7.1.0) - citrus (~> 3.0) - parslet (~> 2.0) - tree_sitter_language_pack (>= 1.13.2, < 2.0) - version_gem (~> 1.1, >= 1.1.9) + toml (0.3.0) + parslet (>= 1.8.0, < 3.0.0) + toml-rb (4.2.0) + citrus (~> 3.0, > 3.0) + racc (~> 1.7) tree_sitter_language_pack (1.13.3-aarch64-linux) sorbet-runtime (~> 0.5) tree_sitter_language_pack (1.13.3-arm64-darwin) @@ -368,22 +633,45 @@ PLATFORMS DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) + ast-crispr! + ast-crispr-markdown-markly! + ast-crispr-ruby-prism! + ast-merge! + ast-merge-git! + ast-template! + bash-merge! benchmark (~> 0.5, >= 0.5.0) + binary-merge! bundler-audit (~> 0.9.3) + citrus-toml-merge! + commonmarker-merge! debug (>= 1.1) + dotenv-merge! erb (~> 6.0, >= 6.0.4) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.0) + go-merge! irb (~> 1.17) + json-merge! kettle-dev (~> 2.0, >= 2.2.25) + kettle-drift (~> 1.0, >= 1.0.5) + kettle-jem! kettle-soup-cover (~> 1.0, >= 1.1.3) kettle-test (~> 2.0, >= 2.0.9) kramdown (~> 2.5, >= 2.5.1) + kramdown-merge! kramdown-parser-gfm (~> 1.1) + markdown-merge! + markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) + parslet-toml-merge! + plain-merge! + prism-merge! + psych-merge! rake (~> 13.0) rbs (>= 3.0) + rbs-merge! rdoc (~> 6.11) reek (~> 6.5) require_bench (~> 1.0, >= 1.0.4) @@ -392,32 +680,54 @@ DEPENDENCIES rubocop-packaging (~> 0.6, >= 0.6.0) rubocop-rspec (~> 3.6) rubocop-ruby3_2 (~> 3.0.0) + ruby-merge! ruby-progressbar (~> 1.13) + rust-merge! + smorg-rb! standard (>= 1.50) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) toml-merge! + tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) + typescript-merge! yaml-converter (~> 0.1) + yaml-merge! yard (~> 0.9, >= 0.9.44) yard-fence (~> 0.9, >= 0.9.1) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) yard-timekeeper (~> 0.1) yard-yaml (~> 0.1, >= 0.1.2) + zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af ansi (1.6.0) sha256=ac9ea0c0ea8d32fb4e271348e609963ac78882f34b73836c2a02b3622e666658 appraisal2 (3.2.0) sha256=ccd0b767ac4060cd7af6d16747459b6990f49c39c7b4fb1f7d1146b1e97c492f ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 + ast-crispr (7.1.0) + ast-crispr-markdown-markly (7.1.0) + ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) + ast-merge-git (7.1.0) + ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 + bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd + binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 + citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 + commonmarker (2.9.0-aarch64-linux) sha256=e2b4aadb9a2cfa4e206582641ce3a49465549ac1ed4c289fdd63b78d8f24579c + commonmarker (2.9.0-aarch64-linux-musl) sha256=1cf4d2821f2a7e64945f1ed7c4eeced586fdb27ea7fe7337788802cf8f57cfca + commonmarker (2.9.0-arm64-darwin) sha256=1748dbfa4f5813b0d2a14bb4bbfa65a4ec293aa1c825016d60029ee0e132b046 + commonmarker (2.9.0-x86_64-darwin) sha256=0a9914ccfd2f5d2a59c7bd0dda4fe90eb084cf513b477e499008e09ec9d6edd6 + commonmarker (2.9.0-x86_64-linux) sha256=8cfe92970eef585a19ddf6613224b91cab64d6029834661bda801f877c9c7f43 + commonmarker (2.9.0-x86_64-linux-musl) sha256=293921398b839f79ceaf55010e061357e34f053822c3b003cd0be6686176335e + commonmarker-merge (7.1.0) concurrent-ruby (1.3.7) sha256=4412caec3a5ea2e5fdc52076724c071a81f2c0593d83b2ac8cbb8ca63b3151b0 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 @@ -425,6 +735,7 @@ CHECKSUMS diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 docile (1.4.1) sha256=96159be799bfa73cdb721b840e9802126e4e03dfc26863db73647204c727f21e + dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -437,19 +748,27 @@ CHECKSUMS gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f + go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 + json-merge (7.1.0) kettle-dev (2.3.7) sha256=eb370113cd030d03cbe2d33b31c99858951017e5ad21a17e9ed89dc3770028ee + kettle-drift (1.0.6) sha256=46eda08fa4411d1f3c6682a95eef1c9df4e94611b3949f49d4c7b43c0ed356a3 + kettle-jem (7.1.0) kettle-rb (0.1.4) sha256=9cef7ce4f7021666b7222292f29051e51eaf042e8a5db11f3f4dd72f74243fc1 kettle-soup-cover (1.1.3) sha256=a373827da22a7131d093afd32945e5b7d7a10a01ebfdded8fd2cb8230d69c8ad kettle-test (2.0.11) sha256=c710c90f7ab79d51f9452f0c09f5f90657e7a893f63583855c164d0b1b107ab2 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa + kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 + markdown-merge (7.1.0) + markly (0.16.0) sha256=6f70d79e385b1efc9e171f74c81628826259039fe6c778e03c3924c71dac5511 + markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-aarch64-linux-gnu) sha256=1269fb644a6de405057a53dd5c762b1209b43ca7424f839454d3dbc677c31a8f nokogiri (1.19.4-aarch64-linux-musl) sha256=35c65b9ce72b3bb03207bdbe7067915019dc18c1b9b59139684bd6690fdd01af @@ -464,15 +783,20 @@ CHECKSUMS parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 + parslet-toml-merge (7.1.0) + plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 + prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 + psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 + rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb @@ -500,9 +824,12 @@ CHECKSUMS rubocop-rspec (3.10.2) sha256=0b3e2ecc592cd10ecbf0095bb58d1e357905276e069643523cc19eb7495f65e2 rubocop-ruby3_2 (3.0.7) sha256=f53dd6d286fb05186214fc6ec116783e7f837030918e8931c05de773e98f8466 rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 + ruby-merge (7.1.0) ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 + rust-merge (7.1.0) + service_actor (3.9.4) sha256=e63b523630b9a7e62959b2a90113b08d2565b5de9c148557b281ef847c9539ce silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (0.22.0) sha256=fe2622c7834ff23b98066bb0a854284b2729a569ac659f82621fc22ef36213a5 simplecov-cobertura (3.2.0) sha256=70d702658677fcb20e5aceb6915ccf8bc62ff2ccd38b62b3ad5c9db5c0888740 @@ -511,6 +838,7 @@ CHECKSUMS simplecov-lcov (0.9.0) sha256=7a77a31e200a595ed4b0249493056efd0c920601f53d2ef135ca34ee796346cd simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_json_formatter (0.1.4) sha256=529418fbe8de1713ac2b2d612aa3daa56d316975d307244399fa4838c601b428 + smorg-rb (7.1.0) sorbet-runtime (0.6.13347) sha256=54e7221d9f4b63f58aec79f3043752a9ba7810347c6ae0d903531591cc2d5f01 standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b @@ -524,7 +852,9 @@ CHECKSUMS timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.4) sha256=33b926958f504525bba3ed511ab66fbcbf8ef30390815e931436b30f27ffcad0 + toml (0.3.0) sha256=0a91d0f76a9036e84e44f95693b12f58d358c1df3ac8e3b5271f2056ecc6e4b9 toml-merge (7.1.0) + toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-aarch64-linux) sha256=55ffc7c87868cb45658338363d9eba51b4a8b0259aa88e4de368d2bd1d52fea4 tree_sitter_language_pack (1.13.3-arm64-darwin) sha256=bc2498db605f212a1dbd2465ed3f65190d7da786f6ed5d30fcf958121aeb4a5c @@ -532,10 +862,12 @@ CHECKSUMS tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 + typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 + yaml-merge (7.1.0) yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd @@ -543,6 +875,7 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 + zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH From 786e679a09eeab93836a25bab7873e7bb9457c89 Mon Sep 17 00:00:00 2001 From: "Peter H. Boling" Date: Tue, 21 Jul 2026 13:53:29 -0600 Subject: [PATCH 129/188] =?UTF-8?q?=F0=9F=8E=A8=20Template=20bootstrap=20b?= =?UTF-8?q?y=20kettle-jem=20v7.1.0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gems/go-merge/Gemfile.lock | 353 ++++++++++++++- gems/html-merge/Gemfile.lock | 395 ++++++++++++++++- gems/rbs-merge/.rubocop_gradual.lock | 413 ++++++++++++++++++ gems/rbs-merge/Gemfile.lock | 22 +- .../lib/rbs/merge/conflict_resolver.rb | 1 + gems/rbs-merge/lib/rbs/merge/smart_merger.rb | 14 +- gems/rbs-merge/lib/rbs/merge/version.rb | 2 +- gems/rbs-merge/rbs-merge.gemspec | 84 ++-- gems/toml-merge/.kettle-drift.lock | 268 +----------- .../.structuredmerge/kettle-jem.yml | 53 +++ gems/toml-merge/Gemfile | 72 ++- gems/toml-merge/Gemfile.lock | 327 +------------- gems/toml-merge/Rakefile | 18 +- gems/toml-merge/lib/toml/merge/version.rb | 2 +- gems/yaml-merge/.kettle-drift.lock | 9 - gems/yaml-merge/README.md | 4 +- .../modular/benchmark/r4/v0.5.gemfile | 2 +- .../gemfiles/modular/benchmark/vHEAD.gemfile | 2 +- .../gemfiles/modular/cgi/r4/v0.5.gemfile | 1 + .../gemfiles/modular/cgi/vHEAD.gemfile | 1 + .../gemfiles/modular/coverage.gemfile | 6 +- .../gemfiles/modular/coverage_local.gemfile | 48 +- .../yaml-merge/gemfiles/modular/debug.gemfile | 4 +- .../gemfiles/modular/documentation.gemfile | 24 +- .../modular/documentation_local.gemfile | 38 +- .../gemfiles/modular/erb/r2/v3.0.gemfile | 2 +- .../gemfiles/modular/erb/r3/v5.0.gemfile | 2 +- .../gemfiles/modular/erb/r4/v5.0.gemfile | 2 +- .../gemfiles/modular/erb/vHEAD.gemfile | 2 +- .../modular/json/truffleruby_22_3.gemfile | 6 + .../modular/json/truffleruby_23_0.gemfile | 6 + .../modular/json/truffleruby_23_1.gemfile | 6 + .../gemfiles/modular/mutex_m/r2/v0.3.gemfile | 2 +- .../gemfiles/modular/mutex_m/r3/v0.3.gemfile | 2 +- .../gemfiles/modular/mutex_m/r4/v0.3.gemfile | 2 +- .../gemfiles/modular/mutex_m/vHEAD.gemfile | 2 +- .../gemfiles/modular/optional.gemfile | 7 +- .../yaml-merge/gemfiles/modular/rspec.gemfile | 8 +- .../gemfiles/modular/runtime_heads.gemfile | 7 +- .../gemfiles/modular/stringio/r2/v3.0.gemfile | 2 +- .../gemfiles/modular/stringio/r3/v3.0.gemfile | 2 +- .../gemfiles/modular/stringio/r4/v3.0.gemfile | 2 +- .../gemfiles/modular/stringio/vHEAD.gemfile | 2 +- .../yaml-merge/gemfiles/modular/style.gemfile | 29 +- .../gemfiles/modular/style_local.gemfile | 44 +- .../gemfiles/modular/templating.gemfile | 14 +- .../gemfiles/modular/templating_local.gemfile | 48 +- .../gemfiles/modular/webrick/r4/v1.9.gemfile | 1 + .../gemfiles/modular/webrick/vHEAD.gemfile | 1 + .../gemfiles/modular/x_std_libs.gemfile | 14 +- .../modular/x_std_libs/r2/libs.gemfile | 6 +- .../modular/x_std_libs/r3/libs.gemfile | 6 +- .../modular/x_std_libs/r4/libs.gemfile | 10 +- .../gemfiles/modular/x_std_libs/vHEAD.gemfile | 10 +- 54 files changed, 1592 insertions(+), 818 deletions(-) create mode 100644 gems/rbs-merge/.rubocop_gradual.lock create mode 100644 gems/yaml-merge/gemfiles/modular/cgi/r4/v0.5.gemfile create mode 100644 gems/yaml-merge/gemfiles/modular/cgi/vHEAD.gemfile create mode 100644 gems/yaml-merge/gemfiles/modular/json/truffleruby_22_3.gemfile create mode 100644 gems/yaml-merge/gemfiles/modular/json/truffleruby_23_0.gemfile create mode 100644 gems/yaml-merge/gemfiles/modular/json/truffleruby_23_1.gemfile create mode 100644 gems/yaml-merge/gemfiles/modular/webrick/r4/v1.9.gemfile create mode 100644 gems/yaml-merge/gemfiles/modular/webrick/vHEAD.gemfile diff --git a/gems/go-merge/Gemfile.lock b/gems/go-merge/Gemfile.lock index f9d69eac5..e15493336 100644 --- a/gems/go-merge/Gemfile.lock +++ b/gems/go-merge/Gemfile.lock @@ -6,6 +6,265 @@ PATH tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly + specs: + ast-crispr-markdown-markly (7.1.0) + ast-crispr (= 7.1.0) + markly-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism + specs: + ast-crispr-ruby-prism (7.1.0) + ast-crispr (= 7.1.0) + prism-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr + specs: + ast-crispr (7.1.0) + ast-merge (= 7.1.0) + service_actor (~> 3.9) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git + specs: + ast-merge-git (7.1.0) + ast-merge (= 7.1.0) + json-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge + specs: + ast-merge (7.1.0) + benchmark + token-resolver (~> 2.0, >= 2.0.4) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template + specs: + ast-template (7.1.0) + ast-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge + specs: + bash-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge + specs: + binary-merge (7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge + specs: + citrus-toml-merge (7.1.0) + toml-merge (= 7.1.0) + toml-rb (~> 4.1) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge + specs: + commonmarker-merge (7.1.0) + commonmarker (~> 2.2) + markdown-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge + specs: + dotenv-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge + specs: + json-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem + specs: + kettle-jem (7.1.0) + addressable (>= 2.8, < 3) + ast-crispr-markdown-markly (= 7.1.0) + ast-crispr-ruby-prism (= 7.1.0) + ast-merge (= 7.1.0) + bash-merge (= 7.1.0) + citrus-toml-merge (= 7.1.0) + commonmarker-merge (= 7.1.0) + dotenv-merge (= 7.1.0) + json-merge (= 7.1.0) + kettle-dev (~> 2.3, >= 2.3.5) + kettle-rb (~> 0.1, >= 0.1.4) + kramdown-merge (= 7.1.0) + markdown-merge (= 7.1.0) + markly-merge (= 7.1.0) + prism-merge (= 7.1.0) + psych-merge (= 7.1.0) + rbs (>= 3.10) + rbs-merge (= 7.1.0) + ruby-merge (= 7.1.0) + token-resolver (~> 2.0, >= 2.0.4) + toml-merge (= 7.1.0) + toml-rb (~> 4.2) + tree_haver (= 7.1.0) + yaml-merge (= 7.1.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge + specs: + kramdown-merge (7.1.0) + kramdown (~> 2.5) + markdown-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge + specs: + markdown-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge + specs: + markly-merge (7.1.0) + markdown-merge (= 7.1.0) + markly (~> 0.9) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge + specs: + parslet-toml-merge (7.1.0) + toml (~> 0.3) + toml-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge + specs: + plain-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge + specs: + prism-merge (7.1.0) + prism (~> 1.6) + ruby-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge + specs: + psych-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + yaml-merge (= 7.1.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge + specs: + rbs-merge (7.1.0) + ast-merge (= 7.1.0) + rbs (>= 3.10) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge + specs: + ruby-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge + specs: + rust-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb + specs: + smorg-rb (7.1.0) + ast-merge (= 7.1.0) + ast-merge-git (= 7.1.0) + go-merge (= 7.1.0) + json-merge (= 7.1.0) + kettle-jem (= 7.1.0) + markly-merge (= 7.1.0) + plain-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge + specs: + toml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver + specs: + tree_haver (7.1.0) + citrus (~> 3.0) + parslet (~> 2.0) + tree_sitter_language_pack (>= 1.13.2, < 2.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge + specs: + typescript-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge + specs: + yaml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge + specs: + zip-merge (7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + GEM remote: https://gem.coop/ specs: @@ -17,11 +276,6 @@ GEM rake (>= 10) thor (>= 0.14) ast (2.4.3) - ast-merge (7.1.0) - benchmark - token-resolver (~> 2.0, >= 2.0.4) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) backports (3.25.3) benchmark (0.5.0) bigdecimal (4.1.2) @@ -30,6 +284,12 @@ GEM thor (~> 1.0) citrus (3.0.2) cmdparse (3.0.7) + commonmarker (2.9.0-aarch64-linux) + commonmarker (2.9.0-aarch64-linux-musl) + commonmarker (2.9.0-arm64-darwin) + commonmarker (2.9.0-x86_64-darwin) + commonmarker (2.9.0-x86_64-linux) + commonmarker (2.9.0-x86_64-linux-musl) concurrent-ruby (1.3.7) date (3.5.1) debug (1.11.1) @@ -93,6 +353,8 @@ GEM kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) + kettle-drift (1.0.6) + version_gem (~> 1.1, >= 1.1.14) kettle-rb (0.1.4) kettle-soup-cover (1.1.3) simplecov (~> 0.22) @@ -121,6 +383,7 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) + markly (0.16.0) mutex_m (0.3.0) nokogiri (1.19.4-aarch64-linux-gnu) racc (~> 1.4) @@ -257,6 +520,8 @@ GEM ruby-progressbar (1.13.0) ruby_engine (2.0.3) ruby_version (1.0.3) + service_actor (3.9.4) + zeitwerk (>= 1.0) silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) @@ -309,11 +574,11 @@ GEM token-resolver (2.0.4) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.13) - tree_haver (7.1.0) - citrus (~> 3.0) - parslet (~> 2.0) - tree_sitter_language_pack (>= 1.13.2, < 2.0) - version_gem (~> 1.1, >= 1.1.9) + toml (0.3.0) + parslet (>= 1.8.0, < 3.0.0) + toml-rb (4.2.0) + citrus (~> 3.0, > 3.0) + racc (~> 1.7) tree_sitter_language_pack (1.13.3-aarch64-linux) sorbet-runtime (~> 0.5) tree_sitter_language_pack (1.13.3-arm64-darwin) @@ -368,23 +633,45 @@ PLATFORMS DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) + ast-crispr! + ast-crispr-markdown-markly! + ast-crispr-ruby-prism! + ast-merge! + ast-merge-git! + ast-template! + bash-merge! benchmark (~> 0.5, >= 0.5.0) + binary-merge! bundler-audit (~> 0.9.3) + citrus-toml-merge! + commonmarker-merge! debug (>= 1.1) + dotenv-merge! erb (~> 6.0, >= 6.0.4) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.0) go-merge! irb (~> 1.17) + json-merge! kettle-dev (~> 2.0, >= 2.2.25) + kettle-drift (~> 1.0, >= 1.0.5) + kettle-jem! kettle-soup-cover (~> 1.0, >= 1.1.3) kettle-test (~> 2.0, >= 2.0.9) kramdown (~> 2.5, >= 2.5.1) + kramdown-merge! kramdown-parser-gfm (~> 1.1) + markdown-merge! + markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) + parslet-toml-merge! + plain-merge! + prism-merge! + psych-merge! rake (~> 13.0) rbs (>= 3.0) + rbs-merge! rdoc (~> 6.11) reek (~> 6.5) require_bench (~> 1.0, >= 1.0.4) @@ -393,31 +680,54 @@ DEPENDENCIES rubocop-packaging (~> 0.6, >= 0.6.0) rubocop-rspec (~> 3.6) rubocop-ruby3_2 (~> 3.0.0) + ruby-merge! ruby-progressbar (~> 1.13) + rust-merge! + smorg-rb! standard (>= 1.50) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) + toml-merge! + tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) + typescript-merge! yaml-converter (~> 0.1) + yaml-merge! yard (~> 0.9, >= 0.9.44) yard-fence (~> 0.9, >= 0.9.1) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) yard-timekeeper (~> 0.1) yard-yaml (~> 0.1, >= 0.1.2) + zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af ansi (1.6.0) sha256=ac9ea0c0ea8d32fb4e271348e609963ac78882f34b73836c2a02b3622e666658 appraisal2 (3.2.0) sha256=ccd0b767ac4060cd7af6d16747459b6990f49c39c7b4fb1f7d1146b1e97c492f ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 + ast-crispr (7.1.0) + ast-crispr-markdown-markly (7.1.0) + ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) + ast-merge-git (7.1.0) + ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 + bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd + binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 + citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 + commonmarker (2.9.0-aarch64-linux) sha256=e2b4aadb9a2cfa4e206582641ce3a49465549ac1ed4c289fdd63b78d8f24579c + commonmarker (2.9.0-aarch64-linux-musl) sha256=1cf4d2821f2a7e64945f1ed7c4eeced586fdb27ea7fe7337788802cf8f57cfca + commonmarker (2.9.0-arm64-darwin) sha256=1748dbfa4f5813b0d2a14bb4bbfa65a4ec293aa1c825016d60029ee0e132b046 + commonmarker (2.9.0-x86_64-darwin) sha256=0a9914ccfd2f5d2a59c7bd0dda4fe90eb084cf513b477e499008e09ec9d6edd6 + commonmarker (2.9.0-x86_64-linux) sha256=8cfe92970eef585a19ddf6613224b91cab64d6029834661bda801f877c9c7f43 + commonmarker (2.9.0-x86_64-linux-musl) sha256=293921398b839f79ceaf55010e061357e34f053822c3b003cd0be6686176335e + commonmarker-merge (7.1.0) concurrent-ruby (1.3.7) sha256=4412caec3a5ea2e5fdc52076724c071a81f2c0593d83b2ac8cbb8ca63b3151b0 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 @@ -425,6 +735,7 @@ CHECKSUMS diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 docile (1.4.1) sha256=96159be799bfa73cdb721b840e9802126e4e03dfc26863db73647204c727f21e + dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -442,15 +753,22 @@ CHECKSUMS io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 + json-merge (7.1.0) kettle-dev (2.3.7) sha256=eb370113cd030d03cbe2d33b31c99858951017e5ad21a17e9ed89dc3770028ee + kettle-drift (1.0.6) sha256=46eda08fa4411d1f3c6682a95eef1c9df4e94611b3949f49d4c7b43c0ed356a3 + kettle-jem (7.1.0) kettle-rb (0.1.4) sha256=9cef7ce4f7021666b7222292f29051e51eaf042e8a5db11f3f4dd72f74243fc1 kettle-soup-cover (1.1.3) sha256=a373827da22a7131d093afd32945e5b7d7a10a01ebfdded8fd2cb8230d69c8ad kettle-test (2.0.11) sha256=c710c90f7ab79d51f9452f0c09f5f90657e7a893f63583855c164d0b1b107ab2 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa + kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 + markdown-merge (7.1.0) + markly (0.16.0) sha256=6f70d79e385b1efc9e171f74c81628826259039fe6c778e03c3924c71dac5511 + markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-aarch64-linux-gnu) sha256=1269fb644a6de405057a53dd5c762b1209b43ca7424f839454d3dbc677c31a8f nokogiri (1.19.4-aarch64-linux-musl) sha256=35c65b9ce72b3bb03207bdbe7067915019dc18c1b9b59139684bd6690fdd01af @@ -465,15 +783,20 @@ CHECKSUMS parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 + parslet-toml-merge (7.1.0) + plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 + prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 + psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 + rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb @@ -501,9 +824,12 @@ CHECKSUMS rubocop-rspec (3.10.2) sha256=0b3e2ecc592cd10ecbf0095bb58d1e357905276e069643523cc19eb7495f65e2 rubocop-ruby3_2 (3.0.7) sha256=f53dd6d286fb05186214fc6ec116783e7f837030918e8931c05de773e98f8466 rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 + ruby-merge (7.1.0) ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 + rust-merge (7.1.0) + service_actor (3.9.4) sha256=e63b523630b9a7e62959b2a90113b08d2565b5de9c148557b281ef847c9539ce silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (0.22.0) sha256=fe2622c7834ff23b98066bb0a854284b2729a569ac659f82621fc22ef36213a5 simplecov-cobertura (3.2.0) sha256=70d702658677fcb20e5aceb6915ccf8bc62ff2ccd38b62b3ad5c9db5c0888740 @@ -512,6 +838,7 @@ CHECKSUMS simplecov-lcov (0.9.0) sha256=7a77a31e200a595ed4b0249493056efd0c920601f53d2ef135ca34ee796346cd simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_json_formatter (0.1.4) sha256=529418fbe8de1713ac2b2d612aa3daa56d316975d307244399fa4838c601b428 + smorg-rb (7.1.0) sorbet-runtime (0.6.13347) sha256=54e7221d9f4b63f58aec79f3043752a9ba7810347c6ae0d903531591cc2d5f01 standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b @@ -525,6 +852,9 @@ CHECKSUMS timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.4) sha256=33b926958f504525bba3ed511ab66fbcbf8ef30390815e931436b30f27ffcad0 + toml (0.3.0) sha256=0a91d0f76a9036e84e44f95693b12f58d358c1df3ac8e3b5271f2056ecc6e4b9 + toml-merge (7.1.0) + toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-aarch64-linux) sha256=55ffc7c87868cb45658338363d9eba51b4a8b0259aa88e4de368d2bd1d52fea4 tree_sitter_language_pack (1.13.3-arm64-darwin) sha256=bc2498db605f212a1dbd2465ed3f65190d7da786f6ed5d30fcf958121aeb4a5c @@ -532,10 +862,12 @@ CHECKSUMS tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 + typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 + yaml-merge (7.1.0) yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd @@ -543,6 +875,7 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 + zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH diff --git a/gems/html-merge/Gemfile.lock b/gems/html-merge/Gemfile.lock index 2f923463a..93edb6e0e 100644 --- a/gems/html-merge/Gemfile.lock +++ b/gems/html-merge/Gemfile.lock @@ -8,7 +8,23 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly + specs: + ast-crispr-markdown-markly (7.1.0) + ast-crispr (= 7.1.0) + markly-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism + specs: + ast-crispr-ruby-prism (7.1.0) + ast-crispr (= 7.1.0) + prism-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr specs: ast-crispr (7.1.0) ast-merge (= 7.1.0) @@ -16,7 +32,15 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/ast-merge + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git + specs: + ast-merge-git (7.1.0) + ast-merge (= 7.1.0) + json-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge specs: ast-merge (7.1.0) benchmark @@ -25,7 +49,201 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/tree_haver + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template + specs: + ast-template (7.1.0) + ast-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge + specs: + bash-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge + specs: + binary-merge (7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge + specs: + citrus-toml-merge (7.1.0) + toml-merge (= 7.1.0) + toml-rb (~> 4.1) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge + specs: + commonmarker-merge (7.1.0) + commonmarker (~> 2.2) + markdown-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge + specs: + dotenv-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge + specs: + go-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge + specs: + json-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem + specs: + kettle-jem (7.1.0) + addressable (>= 2.8, < 3) + ast-crispr-markdown-markly (= 7.1.0) + ast-crispr-ruby-prism (= 7.1.0) + ast-merge (= 7.1.0) + bash-merge (= 7.1.0) + citrus-toml-merge (= 7.1.0) + commonmarker-merge (= 7.1.0) + dotenv-merge (= 7.1.0) + json-merge (= 7.1.0) + kettle-dev (~> 2.3, >= 2.3.5) + kettle-rb (~> 0.1, >= 0.1.4) + kramdown-merge (= 7.1.0) + markdown-merge (= 7.1.0) + markly-merge (= 7.1.0) + prism-merge (= 7.1.0) + psych-merge (= 7.1.0) + rbs (>= 3.10) + rbs-merge (= 7.1.0) + ruby-merge (= 7.1.0) + token-resolver (~> 2.0, >= 2.0.4) + toml-merge (= 7.1.0) + toml-rb (~> 4.2) + tree_haver (= 7.1.0) + yaml-merge (= 7.1.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge + specs: + kramdown-merge (7.1.0) + kramdown (~> 2.5) + markdown-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge + specs: + markdown-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge + specs: + markly-merge (7.1.0) + markdown-merge (= 7.1.0) + markly (~> 0.9) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge + specs: + parslet-toml-merge (7.1.0) + toml (~> 0.3) + toml-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge + specs: + plain-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge + specs: + prism-merge (7.1.0) + prism (~> 1.6) + ruby-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge + specs: + psych-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + yaml-merge (= 7.1.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge + specs: + rbs-merge (7.1.0) + ast-merge (= 7.1.0) + rbs (>= 3.10) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge + specs: + ruby-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge + specs: + rust-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb + specs: + smorg-rb (7.1.0) + ast-merge (= 7.1.0) + ast-merge-git (= 7.1.0) + go-merge (= 7.1.0) + json-merge (= 7.1.0) + kettle-jem (= 7.1.0) + markly-merge (= 7.1.0) + plain-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge + specs: + toml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver specs: tree_haver (7.1.0) citrus (~> 3.0) @@ -33,6 +251,29 @@ PATH tree_sitter_language_pack (>= 1.13.2, < 2.0) version_gem (~> 1.1, >= 1.1.9) +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge + specs: + typescript-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge + specs: + yaml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge + specs: + zip-merge (7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + GEM remote: https://gem.coop/ specs: @@ -48,16 +289,19 @@ GEM rubocop (>= 1.0) version_gem (~> 1.1, >= 1.1.14) ast (2.4.3) + backports (3.25.3) benchmark (0.5.0) bigdecimal (4.1.2) cgi (0.5.2) citrus (3.0.2) cmdparse (3.0.7) + commonmarker (2.9.0-x86_64-linux) concurrent-ruby (1.3.8) date (3.5.1) debug (1.11.1) irb (~> 1.10) reline (>= 0.3.8) + delegate (0.6.1) diff-lcs (1.6.2) diffy (3.4.4) dry-configurable (1.4.0) @@ -89,6 +333,7 @@ GEM dry-inflector (~> 1.0) dry-logic (~> 1.4) zeitwerk (~> 2.6) + emoji_regex (15.0.0) erb (6.0.6) gem_bench (2.0.5) bundler (>= 1.14) @@ -106,6 +351,14 @@ GEM rdoc (>= 4.0.0) reline (>= 0.4.2) json (2.21.1) + kettle-dev (2.3.8) + emoji_regex (>= 15.0) + kettle-rb (~> 0.1, >= 0.1.2) + kettle-test (~> 2.0, >= 2.0.4) + ruby-progressbar (~> 1.13) + kettle-drift (1.0.6) + version_gem (~> 1.1, >= 1.1.14) + kettle-rb (0.1.5) kettle-soup-cover (3.0.4) kettle-wash (~> 0.1, >= 0.1.0) simplecov (>= 1.0) @@ -113,6 +366,17 @@ GEM simplecov-console (~> 0.9, >= 0.9.5) simplecov-rcov (~> 0.3, >= 0.3.7) simplecov_lcov_formatter (~> 0.9, >= 0.9.0) + kettle-test (2.0.12) + appraisal2 (~> 3.0, >= 3.0.6) + backports (~> 3.0) + rspec (~> 3.0) + rspec-block_is_expected (~> 1.0, >= 1.0.6) + rspec-pending_for (~> 0.1, >= 0.1.20) + rspec-stubbed_env (~> 1.0, >= 1.0.6) + rspec_junit_formatter (~> 0.6) + silent_stream (~> 1.0, >= 1.0.12) + timecop-rspec (~> 1.0, >= 1.0.3) + turbo_tests2 (~> 3.1, >= 3.1.12) kettle-wash (0.1.1) version_gem (~> 1.1, >= 1.1.14) kramdown (2.5.2) @@ -122,6 +386,7 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) + markly (0.16.0) mutex_m (0.3.0) nokogiri (1.19.4-x86_64-linux-gnu) racc (~> 1.4) @@ -129,6 +394,8 @@ GEM openssl (4.0.2) ostruct (0.6.3) parallel (1.28.0) + parallel_tests (5.7.0) + parallel parser (3.3.12.0) ast (~> 2.4.1) racc @@ -162,6 +429,27 @@ GEM reline (0.6.3) io-console (~> 0.5) rexml (3.4.4) + rspec (3.13.2) + rspec-core (~> 3.13.0) + rspec-expectations (~> 3.13.0) + rspec-mocks (~> 3.13.0) + rspec-block_is_expected (1.0.6) + rspec-core (3.13.6) + rspec-support (~> 3.13.0) + rspec-expectations (3.13.5) + diff-lcs (>= 1.2.0, < 2.0) + rspec-support (~> 3.13.0) + rspec-mocks (3.13.8) + diff-lcs (>= 1.2.0, < 2.0) + rspec-support (~> 3.13.0) + rspec-pending_for (0.1.21) + rspec-core (~> 3.0) + ruby_engine (~> 2.0) + ruby_version (~> 1.0) + rspec-stubbed_env (1.0.6) + rspec-support (3.13.7) + rspec_junit_formatter (0.6.0) + rspec-core (>= 2, < 4, != 2.12.0) rubocop (1.88.2) json (~> 2.3) language_server-protocol (~> 3.17.0.2) @@ -249,8 +537,13 @@ GEM rubocop (~> 1.72, >= 1.72.1) rubocop-ast (>= 1.44.0, < 2.0) ruby-progressbar (1.13.0) + ruby_engine (2.0.3) + ruby_version (1.0.3) service_actor (3.9.4) zeitwerk (>= 1.0) + silent_stream (1.0.12) + logger (~> 1.2) + version_gem (>= 1.1.8, < 3) simplecov (1.0.2) simplecov-cobertura (4.0.0) rexml @@ -292,12 +585,26 @@ GEM terminal-table (4.0.0) unicode-display_width (>= 1.1.1, < 4) thor (1.5.0) + timecop (0.9.11) + timecop-rspec (1.0.3) + delegate (~> 0.1) + rspec (~> 3.0) + timecop (>= 0.7, < 1) token-resolver (2.0.5) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.14) + toml (0.3.0) + parslet (>= 1.8.0, < 3.0.0) + toml-rb (4.2.0) + citrus (~> 3.0, > 3.0) + racc (~> 1.7) tree_sitter_language_pack (1.13.3-x86_64-linux) sorbet-runtime (~> 0.5) tsort (0.2.0) + turbo_tests2 (3.2.0) + parallel_tests (>= 3.3.0, < 6) + rspec (>= 3.10) + version_gem (~> 1.1, >= 1.1.14) unicode-display_width (3.2.0) unicode-emoji (~> 4.1) unicode-emoji (4.2.0) @@ -335,20 +642,41 @@ DEPENDENCIES addressable (>= 2.8, < 3) appraisal2-rubocop (~> 1.0, >= 1.0.0) ast-crispr! + ast-crispr-markdown-markly! + ast-crispr-ruby-prism! ast-merge! + ast-merge-git! + ast-template! + bash-merge! benchmark (~> 0.5, >= 0.5.0) + binary-merge! cgi (~> 0.5) + citrus-toml-merge! + commonmarker-merge! debug (>= 1.1) + dotenv-merge! erb (~> 6.0, >= 6.0.6) gem_bench (~> 2.0, >= 2.0.5) + go-merge! html-merge! irb (~> 1.17) + json-merge! + kettle-drift (~> 1.0, >= 1.0.6) + kettle-jem! kettle-soup-cover (~> 3.0, >= 3.0.3) kramdown (~> 2.5, >= 2.5.2) + kramdown-merge! kramdown-parser-gfm (~> 1.1) + markdown-merge! + markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) + parslet-toml-merge! + plain-merge! + prism-merge! + psych-merge! rbs (>= 3.0) + rbs-merge! rdoc (~> 6.11) reek (~> 6.5, >= 6.5.0) rubocop-gradual (~> 0.4, >= 0.4.0) @@ -358,18 +686,25 @@ DEPENDENCIES rubocop-on-rbs (~> 2.0, >= 2.0.0) rubocop-packaging (~> 0.6, >= 0.6.0) rubocop-ruby3_2 (~> 3.0, >= 3.0.6) + ruby-merge! + rust-merge! + smorg-rb! standard (~> 1.56, >= 1.56.0) stringio (>= 3.0) + toml-merge! tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) + typescript-merge! webrick (~> 1.9) yaml-converter (~> 0.2, >= 0.2.3) + yaml-merge! yard (~> 0.9, >= 0.9.45) yard-fence (~> 0.9, >= 0.9.6) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) yard-timekeeper (~> 0.2, >= 0.2.4) yard-yaml (~> 0.2, >= 0.2.3) + zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af @@ -378,17 +713,29 @@ CHECKSUMS appraisal2-rubocop (1.0.0) sha256=b71410fbb014befda5340605a605b7f6f3f012739baf0acc5b4351b592c3258d ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 ast-crispr (7.1.0) + ast-crispr-markdown-markly (7.1.0) + ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) + ast-merge-git (7.1.0) + ast-template (7.1.0) + backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 + bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd + binary-merge (7.1.0) cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 + citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 + commonmarker (2.9.0-x86_64-linux) sha256=8cfe92970eef585a19ddf6613224b91cab64d6029834661bda801f877c9c7f43 + commonmarker-merge (7.1.0) concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 + delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 + dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -396,43 +743,70 @@ CHECKSUMS dry-logic (1.6.0) sha256=da6fedbc0f90fc41f9b0cc7e6f05f5d529d1efaef6c8dcc8e0733f685745cea2 dry-schema (1.16.0) sha256=cd3aaeabc0f1af66ec82a29096d4c4fb92a0a58b9dae29a22b1bbceb78985727 dry-types (1.9.1) sha256=baebeecdb9f8395d6c9d227b62011279440943e3ef2468fe8ccc1ba11467f178 + emoji_regex (15.0.0) sha256=a508b2c0bee561169564e0aec96085020c900520d335e5533fd8e78e59493829 erb (6.0.6) sha256=a9b24986700f5bf127c4f297c5403c3ca41b83b0a316c0cd09a096b56e644ae5 gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 + go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 html-merge (7.1.0) io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 + json-merge (7.1.0) + kettle-dev (2.3.8) sha256=9d716ff21c660a730cb4e8d41e2e2f0630a28167a354b6e2924e242102aef72c + kettle-drift (1.0.6) sha256=46eda08fa4411d1f3c6682a95eef1c9df4e94611b3949f49d4c7b43c0ed356a3 + kettle-jem (7.1.0) + kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f kettle-soup-cover (3.0.4) + kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa + kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 + markdown-merge (7.1.0) + markly (0.16.0) sha256=6f70d79e385b1efc9e171f74c81628826259039fe6c778e03c3924c71dac5511 + markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-x86_64-linux-gnu) sha256=379fae440b28915e3f19d752ce2dcf8465ed2b2fbefd2a7ca0dd497bc981a06a nomono (1.0.9) openssl (4.0.2) sha256=1037ad2868ae58df9ad917891c0c0f9815a1172f6846d4bcdd508e4c2ee747c2 ostruct (0.6.3) sha256=95a2ed4a4bd1d190784e666b47b2d3f078e4a9efda2fccf18f84ddc6538ed912 parallel (1.28.0) sha256=33e6de1484baf2524792d178b0913fc8eb94c628d6cfe45599ad4458c638c970 + parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 + parslet-toml-merge (7.1.0) + plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 + prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 + psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 + rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb reline (0.6.3) sha256=1198b04973565b36ec0f11542ab3f5cfeeec34823f4e54cebde90968092b1835 rexml (3.4.4) sha256=19e0a2c3425dfbf2d4fc1189747bdb2f849b6c5e74180401b15734bc97b5d142 + rspec (3.13.2) sha256=206284a08ad798e61f86d7ca3e376718d52c0bc944626b2349266f239f820587 + rspec-block_is_expected (1.0.6) sha256=bbad3dc30eba93becf4dcb3fd1bff5f37f6e212ab5cbf6132c07edba6ff74282 + rspec-core (3.13.6) sha256=a8823c6411667b60a8bca135364351dda34cd55e44ff94c4be4633b37d828b2d + rspec-expectations (3.13.5) sha256=33a4d3a1d95060aea4c94e9f237030a8f9eae5615e9bd85718fe3a09e4b58836 + rspec-mocks (3.13.8) sha256=086ad3d3d17533f4237643de0b5c42f04b66348c28bf6b9c2d3f4a3b01af1d47 + rspec-pending_for (0.1.21) sha256=c87fda50c20f8faca72d9cfa6a936abffd37860343f14aced95bbb29b8ae96bf + rspec-stubbed_env (1.0.6) sha256=6467a6eb0f72146d443ffb0c5a2a549d8812e59c04fbc81e03cd914ebf1f28dc + rspec-support (3.13.7) sha256=0640e5570872aafefd79867901deeeeb40b0c9875a36b983d85f54fb7381c47c + rspec_junit_formatter (0.6.0) sha256=40dde674e6ae4e6cc0ff560da25497677e34fefd2338cc467a8972f602b62b15 rubocop (1.88.2) sha256=8def251c90cd955feb4daa3edc0ab56893250c4ce90ef81e6c80c03f9a939bbf rubocop-ast (1.50.0) sha256=b9ca88300da0803ee222ad20cdb30494c0a784eed06fdc35d254b06d662788db rubocop-capybara (2.23.0) sha256=f9ea1ba3a7561ee8e88cf76fc378ce517ce5327155f305ee7b5c2500e5aee357 @@ -452,13 +826,19 @@ CHECKSUMS rubocop-rspec_rails (2.32.0) sha256=4a0d641c72f6ebb957534f539d9d0a62c47abd8ce0d0aeee1ef4701e892a9100 rubocop-ruby3_2 (3.0.7) sha256=f53dd6d286fb05186214fc6ec116783e7f837030918e8931c05de773e98f8466 rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 + ruby-merge (7.1.0) ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 + ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa + ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 + rust-merge (7.1.0) service_actor (3.9.4) sha256=e63b523630b9a7e62959b2a90113b08d2565b5de9c148557b281ef847c9539ce + silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed + smorg-rb (7.1.0) sorbet-runtime (0.6.13347) sha256=54e7221d9f4b63f58aec79f3043752a9ba7810347c6ae0d903531591cc2d5f01 standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b @@ -469,15 +849,23 @@ CHECKSUMS strscan (3.1.8) sha256=aae2db611a225559f21ffbb71765c9a4e60fd262534a9ea84f4f11c7f32f679e terminal-table (4.0.0) sha256=f504793203f8251b2ea7c7068333053f0beeea26093ec9962e62ea79f94301d2 thor (1.5.0) sha256=e3a9e55fe857e44859ce104a84675ab6e8cd59c650a49106a05f55f136425e73 + timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 + timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.5) sha256=b852f924287ffb58a440856e862b056c8ad97e74b4b2526cee43e0771f40c25c + toml (0.3.0) sha256=0a91d0f76a9036e84e44f95693b12f58d358c1df3ac8e3b5271f2056ecc6e4b9 + toml-merge (7.1.0) + toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f + turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 + typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 webrick (1.9.2) sha256=beb4a15fc474defed24a3bda4ffd88a490d517c9e4e6118c3edce59e45864131 yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 + yaml-merge (7.1.0) yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd @@ -485,6 +873,7 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 + zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH diff --git a/gems/rbs-merge/.rubocop_gradual.lock b/gems/rbs-merge/.rubocop_gradual.lock new file mode 100644 index 000000000..e1f0ad91c --- /dev/null +++ b/gems/rbs-merge/.rubocop_gradual.lock @@ -0,0 +1,413 @@ +{ + ".simplecov:2483172942": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "Rakefile:3295679373": [ + [18, 121, 17, "Layout/LineLength: Line is too long. [137/120]", 174264873], + [79, 3, 1023, "Metrics/BlockLength: Block has too many lines. [32/25]", 54868638], + [163, 121, 22, "Layout/LineLength: Line is too long. [142/120]", 1367093088], + [166, 121, 18, "Layout/LineLength: Line is too long. [138/120]", 3881946477] + ], + "gemfiles/modular/benchmark/r4/v0.5.gemfile:3644720371": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/benchmark/vHEAD.gemfile:2838879269": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/cgi/r4/v0.5.gemfile:367169322": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/cgi/vHEAD.gemfile:2729540777": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/erb/r2/v3.0.gemfile:1688285565": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/erb/r3/v5.0.gemfile:2394062339": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/erb/r4/v5.0.gemfile:2394062339": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/erb/vHEAD.gemfile:981929959": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/mutex_m/r2/v0.3.gemfile:4055275004": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/mutex_m/r3/v0.3.gemfile:4055275004": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/mutex_m/r4/v0.3.gemfile:4055275004": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/mutex_m/vHEAD.gemfile:556854763": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/rspec.gemfile:2263543889": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/stringio/r2/v3.0.gemfile:821604304": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/stringio/r3/v3.0.gemfile:821604304": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/stringio/r4/v3.0.gemfile:821604304": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/stringio/vHEAD.gemfile:1045839691": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/webrick/r4/v1.9.gemfile:3092661193": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/webrick/vHEAD.gemfile:3867684682": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/x_std_libs.gemfile:2324400122": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/x_std_libs/r2/libs.gemfile:36276542": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] + ], + "gemfiles/modular/x_std_libs/r3/libs.gemfile:4030570297": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] + ], + "gemfiles/modular/x_std_libs/r4/libs.gemfile:732451732": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] + ], + "gemfiles/modular/x_std_libs/vHEAD.gemfile:2390363993": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] + ], + "lib/rbs-merge.rb:334311121": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`rbs-merge.rb`) should use snake_case.", 5381], + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "lib/rbs/merge.rb:688136140": [ + [17, 3, 12, "Style/Documentation: Missing top-level documentation comment for `module Rbs::Merge`.", 2866359175], + [104, 7, 1197, "Metrics/MethodLength: Method has too many lines. [22/10]", 564456261] + ], + "lib/rbs/merge/backends/rbs_backend.rb:2885387755": [ + [48, 11, 555, "Metrics/MethodLength: Method has too many lines. [13/10]", 2078142514], + [81, 11, 658, "Metrics/MethodLength: Method has too many lines. [11/10]", 324484142], + [172, 11, 527, "Metrics/MethodLength: Method has too many lines. [14/10]", 631898529], + [240, 15, 11, "Naming/PredicatePrefix: Rename `has_errors?` to `errors?`.", 1181419252], + [263, 9, 9332, "Metrics/ClassLength: Class has too many lines. [135/100]", 1906483935], + [290, 11, 1914, "Metrics/AbcSize: Assignment Branch Condition size for `type` is too high. [<0, 9, 23> 24.7/17]", 3636991776], + [290, 11, 1914, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `type` is too high. [24/7]", 3636991776], + [290, 11, 1914, "Metrics/MethodLength: Method has too many lines. [28/10]", 3636991776], + [363, 11, 489, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `end_point` is too high. [8/7]", 844861810], + [504, 27, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765] + ], + "lib/rbs/merge/comment_tracker.rb:1938176986": [ + [28, 7, 767, "Metrics/MethodLength: Method has too many lines. [15/10]", 752916075], + [60, 7, 416, "Metrics/MethodLength: Method has too many lines. [12/10]", 2715172162] + ], + "lib/rbs/merge/conflict_resolver.rb:16534551": [ + [16, 5, 9993, "Metrics/ClassLength: Class has too many lines. [147/100]", 1570883163], + [46, 7, 1614, "Metrics/MethodLength: Method has too many lines. [23/10]", 1004723330], + [46, 45, 14, "Lint/UnusedMethodArgument: Unused method argument - `template_index`.", 1809801172], + [46, 62, 10, "Lint/UnusedMethodArgument: Unused method argument - `dest_index`.", 2703999490], + [124, 7, 717, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `resolve_preference` is too high. [8/7]", 2783267415], + [124, 7, 717, "Metrics/MethodLength: Method has too many lines. [12/10]", 2783267415], + [158, 7, 949, "Metrics/AbcSize: Assignment Branch Condition size for `extract_declaration_text` is too high. [<9, 19, 14> 25.26/17]", 4132302840], + [158, 7, 949, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `extract_declaration_text` is too high. [13/7]", 4132302840], + [158, 7, 949, "Metrics/MethodLength: Method has too many lines. [18/10]", 4132302840], + [158, 7, 949, "Metrics/PerceivedComplexity: Perceived complexity for `extract_declaration_text` is too high. [14/8]", 4132302840], + [244, 7, 565, "Metrics/MethodLength: Method has too many lines. [13/10]", 375776463], + [244, 11, 12, "Naming/PredicatePrefix: Rename `has_members?` to `members?`.", 496913372] + ], + "lib/rbs/merge/file_aligner.rb:157117932": [ + [32, 7, 128, "Lint/UselessMethodDefinition: Useless method definition detected.", 4031328363] + ], + "lib/rbs/merge/file_analysis.rb:4205990536": [ + [23, 5, 20642, "Metrics/ClassLength: Class has too many lines. [403/100]", 3271819659], + [59, 7, 1146, "Metrics/MethodLength: Method has too many lines. [20/10]", 1625645012], + [191, 7, 398, "Metrics/MethodLength: Method has too many lines. [12/10]", 4157341657], + [211, 7, 719, "Metrics/MethodLength: Method has too many lines. [13/10]", 2571132513], + [235, 7, 965, "Metrics/AbcSize: Assignment Branch Condition size for `compute_tree_sitter_signature` is too high. [<3, 5, 21> 21.79/17]", 2963702282], + [235, 7, 965, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `compute_tree_sitter_signature` is too high. [22/7]", 2963702282], + [235, 7, 965, "Metrics/MethodLength: Method has too many lines. [26/10]", 2963702282], + [235, 7, 965, "Metrics/PerceivedComplexity: Perceived complexity for `compute_tree_sitter_signature` is too high. [16/8]", 2963702282], + [269, 7, 996, "Metrics/AbcSize: Assignment Branch Condition size for `extract_tree_sitter_node_name` is too high. [<5, 16, 10> 19.52/17]", 300940102], + [269, 7, 996, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `extract_tree_sitter_node_name` is too high. [11/7]", 300940102], + [269, 7, 996, "Metrics/MethodLength: Method has too many lines. [24/10]", 300940102], + [269, 7, 996, "Metrics/PerceivedComplexity: Perceived complexity for `extract_tree_sitter_node_name` is too high. [11/8]", 300940102], + [320, 7, 834, "Metrics/MethodLength: Method has too many lines. [16/10]", 658496547], + [380, 7, 1612, "Metrics/AbcSize: Assignment Branch Condition size for `extract_tree_sitter_declarations` is too high. [<8, 18, 11> 22.56/17]", 1899595676], + [380, 7, 1612, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `extract_tree_sitter_declarations` is too high. [10/7]", 1899595676], + [380, 7, 1612, "Metrics/MethodLength: Method has too many lines. [23/10]", 1899595676], + [380, 7, 1612, "Metrics/PerceivedComplexity: Perceived complexity for `extract_tree_sitter_declarations` is too high. [11/8]", 1899595676], + [449, 7, 569, "Metrics/MethodLength: Method has too many lines. [13/10]", 210550095], + [471, 7, 1133, "Metrics/AbcSize: Assignment Branch Condition size for `build_freeze_blocks` is too high. [<7, 22, 6> 23.85/17]", 4016218974], + [471, 7, 1133, "Metrics/MethodLength: Method has too many lines. [29/10]", 4016218974], + [528, 7, 486, "Metrics/MethodLength: Method has too many lines. [12/10]", 618123864], + [528, 7, 486, "Metrics/PerceivedComplexity: Perceived complexity for `node_start_line` is too high. [9/8]", 618123864], + [545, 7, 472, "Metrics/MethodLength: Method has too many lines. [12/10]", 1339916888], + [545, 7, 472, "Metrics/PerceivedComplexity: Perceived complexity for `node_end_line` is too high. [9/8]", 1339916888], + [579, 7, 1868, "Metrics/AbcSize: Assignment Branch Condition size for `compute_rbs_gem_signature` is too high. [<0, 45, 23> 50.54/17]", 2652509672], + [579, 7, 1868, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `compute_rbs_gem_signature` is too high. [23/7]", 2652509672], + [579, 7, 1868, "Metrics/MethodLength: Method has too many lines. [43/10]", 2652509672], + [579, 7, 1868, "Metrics/PerceivedComplexity: Perceived complexity for `compute_rbs_gem_signature` is too high. [9/8]", 2652509672] + ], + "lib/rbs/merge/freeze_node.rb:2942544870": [ + [34, 121, 9, "Layout/LineLength: Line is too long. [129/120]", 201145846], + [39, 7, 577, "Metrics/MethodLength: Method has too many lines. [11/10]", 2189574632], + [39, 21, 186, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [8/5]", 1006469938], + [78, 7, 1506, "Metrics/AbcSize: Assignment Branch Condition size for `validate_structure!` is too high. [<12, 12, 17> 24.02/17]", 1543687562], + [78, 7, 1506, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `validate_structure!` is too high. [12/7]", 1543687562], + [78, 7, 1506, "Metrics/MethodLength: Method has too many lines. [25/10]", 1543687562], + [78, 7, 1506, "Metrics/PerceivedComplexity: Perceived complexity for `validate_structure!` is too high. [12/8]", 1543687562], + [150, 7, 891, "Metrics/AbcSize: Assignment Branch Condition size for `extract_node_name` is too high. [<4, 21, 12> 24.52/17]", 1223188123], + [150, 7, 891, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `extract_node_name` is too high. [13/7]", 1223188123], + [150, 7, 891, "Metrics/MethodLength: Method has too many lines. [18/10]", 1223188123], + [150, 7, 891, "Metrics/PerceivedComplexity: Perceived complexity for `extract_node_name` is too high. [13/8]", 1223188123], + [162, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5861336] + ], + "lib/rbs/merge/merge_result.rb:3535749451": [ + [18, 5, 12502, "Metrics/ClassLength: Class has too many lines. [214/100]", 1397119540], + [91, 7, 966, "Metrics/MethodLength: Method has too many lines. [14/10]", 3349669346], + [178, 7, 1846, "Metrics/AbcSize: Assignment Branch Condition size for `extract_lines` is too high. [<15, 23, 16> 31.78/17]", 1426505008], + [178, 7, 1846, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `extract_lines` is too high. [15/7]", 1426505008], + [178, 7, 1846, "Metrics/MethodLength: Method has too many lines. [31/10]", 1426505008], + [178, 7, 1846, "Metrics/PerceivedComplexity: Perceived complexity for `extract_lines` is too high. [16/8]", 1426505008], + [229, 7, 709, "Metrics/AbcSize: Assignment Branch Condition size for `trailing_lines_for` is too high. [<4, 15, 9> 17.94/17]", 3530206652], + [229, 7, 709, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `trailing_lines_for` is too high. [9/7]", 3530206652], + [229, 7, 709, "Metrics/MethodLength: Method has too many lines. [18/10]", 3530206652], + [229, 7, 709, "Metrics/PerceivedComplexity: Perceived complexity for `trailing_lines_for` is too high. [10/8]", 3530206652], + [230, 47, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], + [252, 7, 475, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `layout_gap_lines_for` is too high. [9/7]", 1865599133], + [252, 7, 475, "Metrics/PerceivedComplexity: Perceived complexity for `layout_gap_lines_for` is too high. [9/8]", 1865599133], + [254, 47, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], + [265, 33, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], + [270, 7, 682, "Metrics/AbcSize: Assignment Branch Condition size for `deduplicate_leading_comment_overlap` is too high. [<4, 15, 9> 17.94/17]", 4227245480], + [270, 7, 682, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `deduplicate_leading_comment_overlap` is too high. [8/7]", 4227245480], + [270, 7, 682, "Metrics/MethodLength: Method has too many lines. [11/10]", 4227245480] + ], + "lib/rbs/merge/node_type_normalizer.rb:2788764230": [ + [65, 5, 10747, "Metrics/ModuleLength: Module has too many lines. [199/100]", 63560324], + [250, 9, 693, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `canonical_type_for_node` is too high. [9/7]", 908800634], + [250, 9, 693, "Metrics/MethodLength: Method has too many lines. [16/10]", 908800634], + [250, 9, 693, "Metrics/PerceivedComplexity: Perceived complexity for `canonical_type_for_node` is too high. [9/8]", 908800634], + [323, 9, 689, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `refine_tree_sitter_attribute_type` is too high. [9/7]", 2340352499], + [323, 9, 689, "Metrics/MethodLength: Method has too many lines. [13/10]", 2340352499], + [323, 9, 689, "Metrics/PerceivedComplexity: Perceived complexity for `refine_tree_sitter_attribute_type` is too high. [9/8]", 2340352499], + [343, 9, 475, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `refine_tree_sitter_variable_type` is too high. [8/7]", 536330497], + [343, 9, 475, "Metrics/MethodLength: Method has too many lines. [14/10]", 536330497] + ], + "lib/rbs/merge/node_wrapper.rb:1434186839": [ + [26, 5, 14933, "Metrics/ClassLength: Class has too many lines. [344/100]", 4139761414], + [37, 17, 84, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 366036293], + [264, 7, 831, "Metrics/AbcSize: Assignment Branch Condition size for `text` is too high. [<3, 32, 20> 37.85/17]", 980238327], + [264, 7, 831, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `text` is too high. [18/7]", 980238327], + [264, 7, 831, "Metrics/MethodLength: Method has too many lines. [18/10]", 980238327], + [264, 7, 831, "Metrics/PerceivedComplexity: Perceived complexity for `text` is too high. [20/8]", 980238327], + [268, 47, 2, "Lint/SafeNavigationConsistency: Use `.` instead of unnecessary `&.`.", 5858765], + [280, 22, 14, "Style/NumericPredicate: Use `start_line.positive?` instead of `start_line > 0`.", 792111162], + [301, 7, 1209, "Metrics/AbcSize: Assignment Branch Condition size for `signature` is too high. [<1, 25, 20> 32.03/17]", 4281557215], + [301, 7, 1209, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `signature` is too high. [21/7]", 4281557215], + [301, 7, 1209, "Metrics/MethodLength: Method has too many lines. [45/10]", 4281557215], + [351, 7, 384, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `method_kind` is too high. [8/7]", 563626808], + [351, 7, 384, "Metrics/PerceivedComplexity: Perceived complexity for `method_kind` is too high. [9/8]", 563626808], + [423, 7, 935, "Metrics/MethodLength: Method has too many lines. [21/10]", 3557799127], + [469, 7, 667, "Metrics/AbcSize: Assignment Branch Condition size for `extract_child_texts` is too high. [<6, 16, 8> 18.87/17]", 1979652559], + [469, 7, 667, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `extract_child_texts` is too high. [9/7]", 1979652559], + [469, 7, 667, "Metrics/MethodLength: Method has too many lines. [12/10]", 1979652559], + [469, 7, 667, "Metrics/PerceivedComplexity: Perceived complexity for `extract_child_texts` is too high. [9/8]", 1979652559], + [487, 7, 583, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `extract_tree_sitter_visibility_kind` is too high. [9/7]", 2002684122], + [487, 7, 583, "Metrics/MethodLength: Method has too many lines. [13/10]", 2002684122], + [487, 7, 583, "Metrics/PerceivedComplexity: Perceived complexity for `extract_tree_sitter_visibility_kind` is too high. [9/8]", 2002684122], + [532, 7, 557, "Metrics/MethodLength: Method has too many lines. [14/10]", 1753294094] + ], + "lib/rbs/merge/smart_merger.rb:30342291": [ + [43, 5, 35445, "Metrics/ClassLength: Class has too many lines. [704/100]", 1644944892], + [87, 7, 1188, "Metrics/MethodLength: Method has too many lines. [17/10]", 2908064588], + [87, 21, 447, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [14/5]", 1344979847], + [183, 7, 805, "Metrics/AbcSize: Assignment Branch Condition size for `perform_merge` is too high. [<6, 15, 8> 18.03/17]", 1638854701], + [183, 7, 805, "Metrics/MethodLength: Method has too many lines. [14/10]", 1638854701], + [209, 7, 572, "Metrics/MethodLength: Method has too many lines. [15/10]", 3471574631], + [306, 7, 1240, "Metrics/AbcSize: Assignment Branch Condition size for `process_match` is too high. [<1, 28, 7> 28.88/17]", 1632629493], + [306, 7, 1240, "Metrics/MethodLength: Method has too many lines. [29/10]", 1632629493], + [371, 7, 550, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `removed_declaration_comment_lines` is too high. [9/7]", 112034646], + [371, 7, 550, "Metrics/MethodLength: Method has too many lines. [12/10]", 112034646], + [371, 7, 550, "Metrics/PerceivedComplexity: Perceived complexity for `removed_declaration_comment_lines` is too high. [9/8]", 112034646], + [400, 7, 675, "Metrics/MethodLength: Method has too many lines. [13/10]", 1415352570], + [426, 7, 2637, "Metrics/AbcSize: Assignment Branch Condition size for `reconstruct_declaration_with_merged_members` is too high. [<20, 23, 22> 37.59/17]", 1250076424], + [426, 7, 2637, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `reconstruct_declaration_with_merged_members` is too high. [17/7]", 1250076424], + [426, 7, 2637, "Metrics/MethodLength: Method has too many lines. [50/10]", 1250076424], + [426, 7, 2637, "Metrics/PerceivedComplexity: Perceived complexity for `reconstruct_declaration_with_merged_members` is too high. [17/8]", 1250076424], + [464, 20, 46, "Style/StringConcatenation: Prefer string interpolation to string concatenation.", 1375387925], + [487, 9, 28, "Style/StringConcatenation: Prefer string interpolation to string concatenation.", 2709565617], + [490, 7, 1524, "Metrics/AbcSize: Assignment Branch Condition size for `recursive_body_lines_for_declaration` is too high. [<8, 23, 9> 25.96/17]", 1351072746], + [490, 7, 1524, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `recursive_body_lines_for_declaration` is too high. [10/7]", 1351072746], + [490, 7, 1524, "Metrics/MethodLength: Method has too many lines. [20/10]", 1351072746], + [490, 7, 1524, "Metrics/PerceivedComplexity: Perceived complexity for `recursive_body_lines_for_declaration` is too high. [10/8]", 1351072746], + [490, 47, 139, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 652517575], + [518, 7, 2987, "Metrics/AbcSize: Assignment Branch Condition size for `merge_member_lines` is too high. [<6, 42, 12> 44.09/17]", 1498622641], + [518, 7, 2987, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `merge_member_lines` is too high. [11/7]", 1498622641], + [518, 7, 2987, "Metrics/MethodLength: Method has too many lines. [74/10]", 1498622641], + [520, 9, 2820, "Metrics/BlockLength: Block has too many lines. [71/25]", 3843526257], + [608, 7, 1779, "Metrics/AbcSize: Assignment Branch Condition size for `align_member_lists` is too high. [<14, 26, 14> 32.68/17]", 3585753868], + [608, 7, 1779, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `align_member_lists` is too high. [14/7]", 3585753868], + [608, 7, 1779, "Metrics/MethodLength: Method has too many lines. [49/10]", 3585753868], + [608, 7, 1779, "Metrics/PerceivedComplexity: Perceived complexity for `align_member_lists` is too high. [15/8]", 3585753868], + [715, 7, 605, "Metrics/AbcSize: Assignment Branch Condition size for `split_top_level_return_type` is too high. [<7, 14, 10> 18.57/17]", 1731525207], + [715, 7, 605, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `split_top_level_return_type` is too high. [8/7]", 1731525207], + [715, 7, 605, "Metrics/MethodLength: Method has too many lines. [17/10]", 1731525207], + [752, 7, 2211, "Metrics/AbcSize: Assignment Branch Condition size for `extract_statement_lines_with_leading_comments` is too high. [<10, 12, 12> 19.7/17]", 3268393611], + [752, 7, 2211, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `extract_statement_lines_with_leading_comments` is too high. [9/7]", 3268393611], + [752, 7, 2211, "Metrics/MethodLength: Method has too many lines. [37/10]", 3268393611], + [752, 7, 2211, "Metrics/PerceivedComplexity: Perceived complexity for `extract_statement_lines_with_leading_comments` is too high. [12/8]", 3268393611], + [752, 56, 235, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 3178974338], + [800, 47, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], + [822, 7, 688, "Metrics/AbcSize: Assignment Branch Condition size for `container_header_lines` is too high. [<8, 12, 11> 18.14/17]", 1754168481], + [822, 7, 688, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `container_header_lines` is too high. [10/7]", 1754168481], + [822, 7, 688, "Metrics/PerceivedComplexity: Perceived complexity for `container_header_lines` is too high. [10/8]", 1754168481], + [849, 35, 148, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 2125883980], + [864, 33, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], + [869, 7, 841, "Metrics/MethodLength: Method has too many lines. [15/10]", 3400690599], + [892, 7, 1788, "Metrics/AbcSize: Assignment Branch Condition size for `collapse_cross_source_preamble_prefixes` is too high. [<14, 21, 9> 26.8/17]", 3130187278], + [892, 7, 1788, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `collapse_cross_source_preamble_prefixes` is too high. [9/7]", 3130187278], + [892, 7, 1788, "Metrics/MethodLength: Method has too many lines. [31/10]", 3130187278], + [892, 7, 1788, "Metrics/PerceivedComplexity: Perceived complexity for `collapse_cross_source_preamble_prefixes` is too high. [9/8]", 3130187278], + [932, 7, 533, "Metrics/MethodLength: Method has too many lines. [15/10]", 4188914818] + ], + "rbs-merge.gemspec:435779253": [ + [126, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 2821357214], + [137, 121, 50, "Layout/LineLength: Line is too long. [170/120]", 3888612416], + [138, 121, 29, "Layout/LineLength: Line is too long. [149/120]", 981994949] + ], + "spec/integration/reproducible_merge_spec.rb:884028812": [ + [9, 1, 7880, "Metrics/BlockLength: Block has too many lines. [181/25]", 921020609], + [14, 3, 4384, "Metrics/BlockLength: Block has too many lines. [85/25]", 628655161], + [15, 5, 3507, "Metrics/BlockLength: Block has too many lines. [65/25]", 2935184196], + [56, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5858910], + [62, 121, 9, "Layout/LineLength: Line is too long. [129/120]", 50415752], + [87, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1546684737], + [133, 3, 1507, "Metrics/BlockLength: Block has too many lines. [37/25]", 1415839468] + ], + "spec/rbs/merge/comment_behavior_matrix_spec.rb:2043528618": [ + [14, 45, 6, "Lint/UnusedBlockArgument: Unused block argument - `inline`. If it's necessary, use `_` or `_inline` as an argument name to indicate that it won't be used.", 1605470060], + [18, 121, 24, "Layout/LineLength: Line is too long. [144/120]", 253885993], + [19, 121, 45, "Layout/LineLength: Line is too long. [165/120]", 1702591521] + ], + "spec/rbs/merge/comment_tracker_spec.rb:1831412931": [ + [5, 1, 14574, "Metrics/BlockLength: Block has too many lines. [306/25]", 1598998757], + [8, 3, 3272, "Metrics/BlockLength: Block has too many lines. [67/25]", 935176133], + [95, 3, 1130, "Metrics/BlockLength: Block has too many lines. [28/25]", 204252301], + [143, 3, 1704, "Metrics/BlockLength: Block has too many lines. [32/25]", 1579622084], + [209, 3, 5815, "Metrics/BlockLength: Block has too many lines. [112/25]", 433112678] + ], + "spec/rbs/merge/conflict_resolver_spec.rb:999961156": [ + [8, 1, 19854, "Metrics/BlockLength: Block has too many lines. [491/25]", 3942921818], + [9, 3, 1428, "Metrics/BlockLength: Block has too many lines. [36/25]", 529294185], + [56, 3, 1199, "Metrics/BlockLength: Block has too many lines. [28/25]", 73504201], + [93, 3, 1277, "Metrics/BlockLength: Block has too many lines. [29/25]", 595351018], + [190, 3, 7078, "Metrics/BlockLength: Block has too many lines. [149/25]", 3739681265], + [296, 5, 1646, "Metrics/BlockLength: Block has too many lines. [33/25]", 3128279135], + [302, 7, 1292, "Metrics/BlockLength: Block has too many lines. [27/25]", 729602127], + [404, 3, 4548, "Metrics/BlockLength: Block has too many lines. [114/25]", 2619563374], + [420, 5, 922, "Metrics/BlockLength: Block has too many lines. [26/25]", 3893264586], + [452, 5, 960, "Metrics/BlockLength: Block has too many lines. [26/25]", 3053707146] + ], + "spec/rbs/merge/file_aligner_spec.rb:2643720547": [ + [7, 1, 21476, "Metrics/BlockLength: Block has too many lines. [555/25]", 4145069110], + [65, 3, 1123, "Metrics/BlockLength: Block has too many lines. [28/25]", 1358831340], + [188, 3, 1226, "Metrics/BlockLength: Block has too many lines. [34/25]", 1337144492], + [246, 3, 4891, "Metrics/BlockLength: Block has too many lines. [152/25]", 125990895], + [436, 3, 1943, "Metrics/BlockLength: Block has too many lines. [34/25]", 4126970167], + [483, 3, 3944, "Metrics/BlockLength: Block has too many lines. [94/25]", 2604333848], + [565, 5, 1328, "Metrics/BlockLength: Block has too many lines. [27/25]", 1994971578] + ], + "spec/rbs/merge/file_analysis_spec.rb:952231308": [ + [15, 1, 54363, "Metrics/BlockLength: Block has too many lines. [1205/25]", 2485884639], + [16, 3, 1272, "Metrics/BlockLength: Block has too many lines. [38/25]", 1778989479], + [17, 5, 1210, "Metrics/BlockLength: Block has too many lines. [37/25]", 1755177515], + [67, 3, 1152, "Metrics/BlockLength: Block has too many lines. [33/25]", 2931980952], + [68, 5, 1083, "Metrics/BlockLength: Block has too many lines. [32/25]", 3589815947], + [136, 3, 982, "Metrics/BlockLength: Block has too many lines. [30/25]", 1355840781], + [137, 5, 929, "Metrics/BlockLength: Block has too many lines. [29/25]", 3738902933], + [200, 3, 1559, "Metrics/BlockLength: Block has too many lines. [30/25]", 3203356148], + [201, 5, 1493, "Metrics/BlockLength: Block has too many lines. [29/25]", 1389049628], + [860, 3, 2525, "Metrics/BlockLength: Block has too many lines. [42/25]", 2701315631], + [861, 5, 2455, "Metrics/BlockLength: Block has too many lines. [41/25]", 1293659790], + [884, 121, 5, "Layout/LineLength: Line is too long. [125/120]", 193270906], + [919, 121, 23, "Layout/LineLength: Line is too long. [143/120]", 115067835], + [948, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5858795], + [954, 3, 3548, "Metrics/BlockLength: Block has too many lines. [59/25]", 2573657607], + [955, 5, 3497, "Metrics/BlockLength: Block has too many lines. [58/25]", 14776664], + [982, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2085251945], + [1017, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 2659900392], + [1038, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 2659900392], + [1091, 3, 1750, "Metrics/BlockLength: Block has too many lines. [29/25]", 460836946], + [1092, 5, 1693, "Metrics/BlockLength: Block has too many lines. [28/25]", 1601111212], + [1135, 3, 1948, "Metrics/BlockLength: Block has too many lines. [41/25]", 4061538475], + [1136, 5, 1892, "Metrics/BlockLength: Block has too many lines. [40/25]", 4081702319], + [1195, 3, 2571, "Metrics/BlockLength: Block has too many lines. [55/25]", 3959149994], + [1265, 3, 2440, "Metrics/BlockLength: Block has too many lines. [52/25]", 2164819729], + [1332, 3, 2008, "Metrics/BlockLength: Block has too many lines. [39/25]", 609327574], + [1379, 3, 1938, "Metrics/BlockLength: Block has too many lines. [38/25]", 361672068], + [1425, 3, 1995, "Metrics/BlockLength: Block has too many lines. [39/25]", 4024875480], + [1472, 3, 1992, "Metrics/BlockLength: Block has too many lines. [39/25]", 1156260241] + ], + "spec/rbs/merge/freeze_node_spec.rb:2278400615": [ + [8, 1, 13268, "Metrics/BlockLength: Block has too many lines. [327/25]", 1590692835], + [9, 3, 2116, "Metrics/BlockLength: Block has too many lines. [43/25]", 4215218715], + [98, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 3784984989], + [99, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1182436848], + [331, 3, 2919, "Metrics/BlockLength: Block has too many lines. [65/25]", 1415484725] + ], + "spec/rbs/merge/merge_result_spec.rb:2449518259": [ + [8, 1, 20574, "Metrics/BlockLength: Block has too many lines. [454/25]", 736738811], + [53, 3, 1244, "Metrics/BlockLength: Block has too many lines. [31/25]", 3686452170] + ], + "spec/rbs/merge/smart_merger_removal_mode_compliance_spec.rb:3475743041": [ + [7, 1, 1860, "Metrics/BlockLength: Block has too many lines. [66/25]", 3469987127], + [8, 3, 1798, "Metrics/BlockLength: Block has too many lines. [65/25]", 778477682] + ], + "spec/rbs/merge/smart_merger_spec.rb:40056830": [ + [14, 1, 46017, "Metrics/BlockLength: Block has too many lines. [1256/25]", 36529752], + [179, 3, 10886, "Metrics/BlockLength: Block has too many lines. [286/25]", 1693926280], + [345, 5, 985, "Metrics/BlockLength: Block has too many lines. [26/25]", 3397066157], + [381, 5, 1063, "Metrics/BlockLength: Block has too many lines. [26/25]", 2718784043], + [491, 5, 1135, "Metrics/BlockLength: Block has too many lines. [26/25]", 3797285781], + [527, 5, 1213, "Metrics/BlockLength: Block has too many lines. [26/25]", 3686078390], + [566, 3, 2766, "Metrics/BlockLength: Block has too many lines. [84/25]", 3927490181], + [679, 3, 1714, "Metrics/BlockLength: Block has too many lines. [54/25]", 386494661], + [751, 3, 5393, "Metrics/BlockLength: Block has too many lines. [138/25]", 2457897034], + [955, 3, 4479, "Metrics/BlockLength: Block has too many lines. [134/25]", 3856958364], + [956, 5, 1327, "Metrics/BlockLength: Block has too many lines. [33/25]", 4009192695], + [1000, 5, 953, "Metrics/BlockLength: Block has too many lines. [29/25]", 902715698], + [1038, 5, 1147, "Metrics/BlockLength: Block has too many lines. [37/25]", 3544491851], + [1088, 5, 955, "Metrics/BlockLength: Block has too many lines. [27/25]", 2688118410], + [1126, 3, 2440, "Metrics/BlockLength: Block has too many lines. [69/25]", 1545633152], + [1127, 5, 970, "Metrics/BlockLength: Block has too many lines. [31/25]", 1575476639], + [1164, 5, 1403, "Metrics/BlockLength: Block has too many lines. [34/25]", 1311674864], + [1207, 3, 882, "Metrics/BlockLength: Block has too many lines. [27/25]", 3845382500], + [1208, 5, 813, "Metrics/BlockLength: Block has too many lines. [26/25]", 1755501948], + [1243, 3, 805, "Metrics/BlockLength: Block has too many lines. [26/25]", 3413285873], + [1276, 3, 2200, "Metrics/BlockLength: Block has too many lines. [70/25]", 3541894760], + [1277, 5, 1202, "Metrics/BlockLength: Block has too many lines. [38/25]", 3971143978], + [1307, 121, 1, "Layout/LineLength: Line is too long. [121/120]", 177610], + [1323, 5, 923, "Metrics/BlockLength: Block has too many lines. [28/25]", 3867507419], + [1360, 3, 1175, "Metrics/BlockLength: Block has too many lines. [36/25]", 1587654554], + [1361, 5, 1103, "Metrics/BlockLength: Block has too many lines. [35/25]", 3885176914], + [1441, 3, 1321, "Metrics/BlockLength: Block has too many lines. [29/25]", 1361304889], + [1481, 3, 1347, "Metrics/BlockLength: Block has too many lines. [29/25]", 1505210076], + [1521, 3, 1334, "Metrics/BlockLength: Block has too many lines. [29/25]", 3208600846], + [1561, 3, 1334, "Metrics/BlockLength: Block has too many lines. [29/25]", 212464082], + [1601, 3, 1331, "Metrics/BlockLength: Block has too many lines. [29/25]", 4277366491] + ], + "spec/rbs/merge_spec.rb:3352331478": [ + [5, 1, 1389, "Metrics/BlockLength: Block has too many lines. [37/25]", 373922011], + [10, 3, 1270, "Metrics/BlockLength: Block has too many lines. [32/25]", 2567886247] + ] +} diff --git a/gems/rbs-merge/Gemfile.lock b/gems/rbs-merge/Gemfile.lock index d0b68afbc..b2c7da8b7 100644 --- a/gems/rbs-merge/Gemfile.lock +++ b/gems/rbs-merge/Gemfile.lock @@ -8,7 +8,7 @@ PATH version_gem (~> 1.1, >= 1.1.14) PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/ast-merge specs: ast-merge (7.1.0) benchmark @@ -17,7 +17,7 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/tree_haver specs: tree_haver (7.1.0) citrus (~> 3.0) @@ -49,7 +49,7 @@ GEM cgi (0.5.2) citrus (3.0.2) cmdparse (3.0.7) - concurrent-ruby (1.3.7) + concurrent-ruby (1.3.8) date (3.5.1) debug (1.11.1) irb (~> 1.10) @@ -106,12 +106,12 @@ GEM rdoc (>= 4.0.0) reline (>= 0.4.2) json (2.21.1) - kettle-dev (2.3.7) + kettle-dev (2.3.8) emoji_regex (>= 15.0) kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) - kettle-rb (0.1.4) + kettle-rb (0.1.5) kettle-soup-cover (3.0.4) kettle-wash (~> 0.1, >= 0.1.0) simplecov (>= 1.0) @@ -352,9 +352,9 @@ GEM delegate (~> 0.1) rspec (~> 3.0) timecop (>= 0.7, < 1) - token-resolver (2.0.4) + token-resolver (2.0.5) parslet (~> 2.0) - version_gem (~> 1.1, >= 1.1.13) + version_gem (~> 1.1, >= 1.1.14) tree_sitter_language_pack (1.13.3-aarch64-linux) sorbet-runtime (~> 0.5) tree_sitter_language_pack (1.13.3-arm64-darwin) @@ -467,7 +467,7 @@ CHECKSUMS cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 - concurrent-ruby (1.3.7) sha256=4412caec3a5ea2e5fdc52076724c071a81f2c0593d83b2ac8cbb8ca63b3151b0 + concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 @@ -489,8 +489,8 @@ CHECKSUMS io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 - kettle-dev (2.3.7) sha256=eb370113cd030d03cbe2d33b31c99858951017e5ad21a17e9ed89dc3770028ee - kettle-rb (0.1.4) sha256=9cef7ce4f7021666b7222292f29051e51eaf042e8a5db11f3f4dd72f74243fc1 + kettle-dev (2.3.8) sha256=9d716ff21c660a730cb4e8d41e2e2f0630a28167a354b6e2924e242102aef72c + kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f kettle-soup-cover (3.0.4) kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 @@ -578,7 +578,7 @@ CHECKSUMS thor (1.5.0) sha256=e3a9e55fe857e44859ce104a84675ab6e8cd59c650a49106a05f55f136425e73 timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 - token-resolver (2.0.4) sha256=33b926958f504525bba3ed511ab66fbcbf8ef30390815e931436b30f27ffcad0 + token-resolver (2.0.5) sha256=b852f924287ffb58a440856e862b056c8ad97e74b4b2526cee43e0771f40c25c tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-aarch64-linux) sha256=55ffc7c87868cb45658338363d9eba51b4a8b0259aa88e4de368d2bd1d52fea4 tree_sitter_language_pack (1.13.3-arm64-darwin) sha256=bc2498db605f212a1dbd2465ed3f65190d7da786f6ed5d30fcf958121aeb4a5c diff --git a/gems/rbs-merge/lib/rbs/merge/conflict_resolver.rb b/gems/rbs-merge/lib/rbs/merge/conflict_resolver.rb index 04437ab03..c9879a20b 100644 --- a/gems/rbs-merge/lib/rbs/merge/conflict_resolver.rb +++ b/gems/rbs-merge/lib/rbs/merge/conflict_resolver.rb @@ -193,6 +193,7 @@ def leading_gap_line_count_for(decl, analysis) blank_line_count_before(region_start, analysis) end + # Get start line for a declaration (works with both backends) def get_decl_start_line(decl) if decl.respond_to?(:start_line) diff --git a/gems/rbs-merge/lib/rbs/merge/smart_merger.rb b/gems/rbs-merge/lib/rbs/merge/smart_merger.rb index 477b97ba4..0b947fa4a 100644 --- a/gems/rbs-merge/lib/rbs/merge/smart_merger.rb +++ b/gems/rbs-merge/lib/rbs/merge/smart_merger.rb @@ -505,13 +505,13 @@ def recursive_body_lines_for_declaration(template_decl, dest_decl, selected_decl if selected_members.empty? return empty_container_header_lines(selected_analysis, start_line: start_line, end_line: end_line) + merge_member_lines(template_members, dest_members, template_owners: template_members, - dest_owners: dest_members) + + dest_owners: dest_members) + empty_container_footer_lines(selected_analysis, start_line: start_line, end_line: end_line) end container_header_lines(selected_decl, selected_analysis) + merge_member_lines(template_members, dest_members, template_owners: template_members, - dest_owners: dest_members) + + dest_owners: dest_members) + container_footer_lines(selected_decl, selected_analysis) end @@ -786,7 +786,12 @@ def extract_statement_lines_with_leading_comments(statement, analysis, comment_s [] end - leading_gap_lines = leading_lines.empty? ? layout_gap_lines_for(statement, analysis, side: :leading, owners: owners) : [] + leading_gap_lines = if leading_lines.empty? + layout_gap_lines_for(statement, analysis, side: :leading, + owners: owners) + else + [] + end leading_gap_lines + leading_lines + extract_raw_statement_lines(statement, analysis) end @@ -847,7 +852,8 @@ def preferred_leading_region(decl, analysis, comment_source_decl: nil, comment_s return [primary_region, analysis, decl] if region_present?(primary_region) if comment_source_decl && comment_source_analysis - source_region = leading_region_for(comment_source_decl, comment_source_analysis, owners: comment_source_owners) + source_region = leading_region_for(comment_source_decl, comment_source_analysis, + owners: comment_source_owners) return [source_region, comment_source_analysis, comment_source_decl] if region_present?(source_region) end diff --git a/gems/rbs-merge/lib/rbs/merge/version.rb b/gems/rbs-merge/lib/rbs/merge/version.rb index 8e09fbec5..a96a21ddc 100644 --- a/gems/rbs-merge/lib/rbs/merge/version.rb +++ b/gems/rbs-merge/lib/rbs/merge/version.rb @@ -3,7 +3,7 @@ module Rbs module Merge module Version - VERSION = "7.1.0" + VERSION = '7.1.0' end VERSION = Version::VERSION # Traditional Constant Location end diff --git a/gems/rbs-merge/rbs-merge.gemspec b/gems/rbs-merge/rbs-merge.gemspec index fc2844391..1734ca282 100644 --- a/gems/rbs-merge/rbs-merge.gemspec +++ b/gems/rbs-merge/rbs-merge.gemspec @@ -9,47 +9,47 @@ Gem::Specification.new do |spec| spec.name = 'rbs-merge' spec.version = Module.new.tap { |mod| Kernel.load("#{__dir__}/lib/rbs/merge/version.rb", mod) }::Rbs::Merge::Version::VERSION - spec.authors = ["Peter H. Boling"] - spec.email = ["floss@galtzo.com"] + spec.authors = ['Peter H. Boling'] + spec.email = ['floss@galtzo.com'] spec.summary = '☯️ Structured Merge RBS analysis and merge for Ruby' spec.description = '☯️ RBS declaration, comment, freeze-block, and template merge behavior for Structured Merge.' spec.homepage = 'https://github.com/structuredmerge/structuredmerge-ruby' - spec.licenses = ["AGPL-3.0-only", "PolyForm-Small-Business-1.0.0"] - spec.required_ruby_version = ">= 4.0.0" + spec.licenses = ['AGPL-3.0-only', 'PolyForm-Small-Business-1.0.0'] + spec.required_ruby_version = '>= 4.0.0' # Linux distros often package gems and securely certify them independent # of the official RubyGem certification process. Allowed via ENV["SKIP_GEM_SIGNING"] # Ref: https://gitlab.com/ruby-oauth/version_gem/-/issues/3 # Hence, only enable signing if `SKIP_GEM_SIGNING` is not set in ENV. # See CONTRIBUTING.md - unless ENV.include?("SKIP_GEM_SIGNING") - user_cert = "certs/#{ENV.fetch("GEM_CERT_USER", ENV["USER"])}.pem" + unless ENV.include?('SKIP_GEM_SIGNING') + user_cert = "certs/#{ENV.fetch('GEM_CERT_USER', ENV['USER'])}.pem" cert_file_path = File.join(__dir__, user_cert) - cert_chain = cert_file_path.split(",") + cert_chain = cert_file_path.split(',') cert_chain.select! { |fp| File.exist?(fp) } if cert_file_path && cert_chain.any? spec.cert_chain = cert_chain - if $PROGRAM_NAME.end_with?("gem") && ARGV[0] == "build" - spec.signing_key = File.join(Gem.user_home, ".ssh", "gem-private_key.pem") + if $PROGRAM_NAME.end_with?('gem') && ARGV[0] == 'build' + spec.signing_key = File.join(Gem.user_home, '.ssh', 'gem-private_key.pem') end end end - spec.metadata["homepage_uri"] = "https://structuredmerge.org" - spec.metadata["source_code_uri"] = "#{spec.homepage}/tree/v#{spec.version}" - spec.metadata["changelog_uri"] = "#{spec.homepage}/blob/v#{spec.version}/CHANGELOG.md" - spec.metadata["bug_tracker_uri"] = "#{spec.homepage}/issues" - spec.metadata["documentation_uri"] = "https://www.rubydoc.info/gems/#{spec.name}/#{spec.version}" - spec.metadata["funding_uri"] = "https://github.com/sponsors/pboling" - spec.metadata["wiki_uri"] = "#{spec.homepage}/wiki" - spec.metadata["news_uri"] = "https://www.railsbling.com/tags/#{spec.name}" - spec.metadata["discord_uri"] = "https://discord.gg/3qme4XHNKN" - spec.metadata["rubygems_mfa_required"] = "true" + spec.metadata['homepage_uri'] = 'https://structuredmerge.org' + spec.metadata['source_code_uri'] = "#{spec.homepage}/tree/v#{spec.version}" + spec.metadata['changelog_uri'] = "#{spec.homepage}/blob/v#{spec.version}/CHANGELOG.md" + spec.metadata['bug_tracker_uri'] = "#{spec.homepage}/issues" + spec.metadata['documentation_uri'] = "https://www.rubydoc.info/gems/#{spec.name}/#{spec.version}" + spec.metadata['funding_uri'] = 'https://github.com/sponsors/pboling' + spec.metadata['wiki_uri'] = "#{spec.homepage}/wiki" + spec.metadata['news_uri'] = "https://www.railsbling.com/tags/#{spec.name}" + spec.metadata['discord_uri'] = 'https://discord.gg/3qme4XHNKN' + spec.metadata['rubygems_mfa_required'] = 'true' enumerate_package_files = lambda do |root| - Dir.glob(File.join(root, "**", "*"), File::FNM_DOTMATCH).select do |path| - File.file?(path) && ![".", ".."].include?(File.basename(path)) + Dir.glob(File.join(root, '**', '*'), File::FNM_DOTMATCH).select do |path| + File.file?(path) && !['.', '..'].include?(File.basename(path)) end end package_metadata_files = %w[ @@ -69,17 +69,17 @@ Gem::Specification.new do |spec| *enumerate_package_files.call('exe') ] spec.rdoc_options += [ - "--title", + '--title', "#{spec.name} - #{spec.summary}", - "--main", - "README.md", - "--exclude", - "^sig/", - "--line-numbers", - "--inline-source", - "--quiet" + '--main', + 'README.md', + '--exclude', + '^sig/', + '--line-numbers', + '--inline-source', + '--quiet' ] - spec.bindir = "exe" + spec.bindir = 'exe' # Listed files are the relative paths from bindir above. spec.executables = [] @@ -89,13 +89,13 @@ Gem::Specification.new do |spec| # rbs-merge will then preserve content between those markers across template runs. # kettle-jem:unfreeze - spec.require_paths = ["lib"] + spec.require_paths = ['lib'] # Utilities spec.add_dependency 'ast-merge', "= #{spec.version}" spec.add_dependency 'rbs', '>= 3.10' spec.add_dependency 'tree_haver', "= #{spec.version}" - spec.add_dependency("version_gem", "~> 1.1", ">= 1.1.14") # ruby >= 2.2.0 + spec.add_dependency('version_gem', '~> 1.1', '>= 1.1.14') # ruby >= 2.2.0 # NOTE: It is preferable to list development dependencies in the gemspec due to increased # visibility and discoverability. @@ -111,30 +111,30 @@ Gem::Specification.new do |spec| # and preferably a modular one (see gemfiles/modular/*.gemfile). # Dev, Test, & Release Tasks - spec.add_development_dependency("kettle-dev", "~> 2.3", ">= 2.3.7") # ruby >= 4.0.0 + spec.add_development_dependency('kettle-dev', '~> 2.3', '>= 2.3.7') # ruby >= 4.0.0 # Security - spec.add_development_dependency("bundler-audit", "~> 0.9.3") # ruby >= 2.0.0 + spec.add_development_dependency('bundler-audit', '~> 0.9.3') # ruby >= 2.0.0 # Tasks - spec.add_development_dependency("rake", "~> 13.0") # ruby >= 2.2.0 + spec.add_development_dependency('rake', '~> 13.0') # ruby >= 2.2.0 # Debugging - spec.add_development_dependency("require_bench", "~> 1.0", ">= 1.0.4") # ruby >= 2.2.0 + spec.add_development_dependency('require_bench', '~> 1.0', '>= 1.0.4') # ruby >= 2.2.0 # Testing - spec.add_development_dependency("appraisal2", "~> 3.2", ">= 3.2.0") # ruby >= 1.8.7, for testing against multiple versions of dependencies - spec.add_development_dependency("kettle-test", "~> 2.0", ">= 2.0.12") # ruby >= 4.0.0 - spec.add_development_dependency("turbo_tests2", "~> 3.2", ">= 3.2.0") # ruby >= 2.4.0, default kettle-test runner + spec.add_development_dependency('appraisal2', '~> 3.2', '>= 3.2.0') # ruby >= 1.8.7, for testing against multiple versions of dependencies + spec.add_development_dependency('kettle-test', '~> 2.0', '>= 2.0.12') # ruby >= 4.0.0 + spec.add_development_dependency('turbo_tests2', '~> 3.2', '>= 3.2.0') # ruby >= 2.4.0, default kettle-test runner # Releasing - spec.add_development_dependency("ruby-progressbar", "~> 1.13") # ruby >= 0 - spec.add_development_dependency("stone_checksums", "~> 1.0", ">= 1.0.6") # ruby >= 2.2.0 + spec.add_development_dependency('ruby-progressbar', '~> 1.13') # ruby >= 0 + spec.add_development_dependency('stone_checksums', '~> 1.0', '>= 1.0.6') # ruby >= 2.2.0 # Development tasks # The cake is a lie. erb v2.2, the oldest release, was never compatible with Ruby 2.3. # This means we have no choice but to use the erb that shipped with Ruby 2.3 # /opt/hostedtoolcache/Ruby/2.3.8/x64/lib/ruby/gems/2.3.0/gems/erb-2.2.2/lib/erb.rb:670:in `prepare_trim_mode': undefined method `match?' for "-":String (NoMethodError) # spec.add_development_dependency("erb", ">= 2.2") # ruby >= 2.3.0, not SemVer, old rubies get dropped in a patch. - spec.add_development_dependency("gitmoji-regex", "~> 2.0", ">= 2.0.4") # ruby >= 2.4 + spec.add_development_dependency('gitmoji-regex', '~> 2.0', '>= 2.0.4') # ruby >= 2.4 end diff --git a/gems/toml-merge/.kettle-drift.lock b/gems/toml-merge/.kettle-drift.lock index 09df60df7..2ee9dae31 100644 --- a/gems/toml-merge/.kettle-drift.lock +++ b/gems/toml-merge/.kettle-drift.lock @@ -1,122 +1,10 @@ { - "(direct_sibling_local ||\nENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?)": [ - { - "file": "Gemfile", - "lines": [ - 80, - 120, - 160, - 200, - 240, - 280, - 320, - 360 - ] - } - ], - ".find { |spec| spec.name == 'nomono' }\nnomono_locked = nomono_locked_spec &&": [ - { - "file": "Gemfile", - "lines": [ - 91, - 131, - 171, - 211, - 251, - 291, - 331, - 371 - ] - } - ], - "ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?)\ndirect_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV')": [ - { - "file": "Gemfile", - "lines": [ - 81, - 121, - 161, - 201, - 241, - 281, - 321, - 361 - ] - } - ], - "Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version)\nnomono_activation_requirements = [\"= #{nomono_locked_spec.version}\"] if nomono_locked": [ - { - "file": "Gemfile", - "lines": [ - 93, - 133, - 173, - 213, - 253, - 293, - 333, - 373 - ] - } - ], - "Kernel.send(:gem, 'nomono', *nomono_activation_requirements)\nrequire 'nomono/bundler'": [ - { - "file": "Gemfile", - "lines": [ - 96, - 136, - 176, - 216, - 256, - 296, - 336, - 376 - ] - } - ], - "direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV')\ndirect_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil)": [ - { - "file": "Gemfile", - "lines": [ - 82, - 122, - 162, - 202, - 242, - 282, - 322, - 362 - ] - } - ], "eval_nomono_gems(\ngems: direct_sibling_gems,": [ { "file": "Gemfile", "lines": [ 60, - 100, - 140, - 180, - 220, - 260, - 300, - 340, - 380 - ] - } - ], - "gems: direct_sibling_gems,\nprefix: 'STRUCTUREDMERGE',": [ - { - "file": "Gemfile", - "lines": [ - 101, - 141, - 181, - 221, - 261, - 301, - 341, - 381 + 100 ] } ], @@ -125,29 +13,7 @@ "file": "Gemfile", "lines": [ 43, - 87, - 127, - 167, - 207, - 247, - 287, - 327, - 367 - ] - } - ], - "if direct_sibling_dev_was_set\nENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original": [ - { - "file": "Gemfile", - "lines": [ - 110, - 150, - 190, - 230, - 270, - 310, - 350, - 390 + 87 ] } ], @@ -156,14 +22,7 @@ "file": "Gemfile", "lines": [ 35, - 79, - 119, - 159, - 199, - 239, - 279, - 319, - 359 + 79 ] } ], @@ -172,29 +31,7 @@ "file": "Gemfile", "lines": [ 69, - 109, - 149, - 189, - 229, - 269, - 309, - 349, - 389 - ] - } - ], - "nomono_activation_requirements = nomono_requirements\nnomono_lockfile = File.expand_path('Gemfile.lock', __dir__)": [ - { - "file": "Gemfile", - "lines": [ - 85, - 125, - 165, - 205, - 245, - 285, - 325, - 365 + 109 ] } ], @@ -203,14 +40,7 @@ "file": "Gemfile", "lines": [ 48, - 92, - 132, - 172, - 212, - 252, - 292, - 332, - 372 + 92 ] } ], @@ -219,89 +49,7 @@ "file": "Gemfile", "lines": [ 44, - 88, - 128, - 168, - 208, - 248, - 288, - 328, - 368 - ] - } - ], - "nomono_lockfile = File.expand_path('Gemfile.lock', __dir__)\nif File.file?(nomono_lockfile)": [ - { - "file": "Gemfile", - "lines": [ - 86, - 126, - 166, - 206, - 246, - 286, - 326, - 366 - ] - } - ], - "path_env: 'STRUCTUREDMERGE_DEV',\nroot: %w[src my structuredmerge]": [ - { - "file": "Gemfile", - "lines": [ - 103, - 143, - 183, - 223, - 263, - 303, - 343, - 383 - ] - } - ], - "prefix: 'STRUCTUREDMERGE',\npath_env: 'STRUCTUREDMERGE_DEV',": [ - { - "file": "Gemfile", - "lines": [ - 102, - 142, - 182, - 222, - 262, - 302, - 342, - 382 - ] - } - ], - "require 'nomono/bundler'\nENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local": [ - { - "file": "Gemfile", - "lines": [ - 97, - 137, - 177, - 217, - 257, - 297, - 337, - 377 - ] - } - ], - "rescue LoadError\nwarn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.'": [ - { - "file": "Gemfile", - "lines": [ - 106, - 146, - 186, - 226, - 266, - 306, - 346, - 386 + 88 ] } ], @@ -309,8 +57,8 @@ { "file": "gemfiles/modular/templating_local.gemfile", "lines": [ - 60, - 71 + 55, + 66 ] } ] diff --git a/gems/toml-merge/.structuredmerge/kettle-jem.yml b/gems/toml-merge/.structuredmerge/kettle-jem.yml index a338630b7..4f24122fd 100644 --- a/gems/toml-merge/.structuredmerge/kettle-jem.yml +++ b/gems/toml-merge/.structuredmerge/kettle-jem.yml @@ -246,6 +246,59 @@ templates: - Gemfile - certs/pboling.pem - tmp/.gitignore + - gemfiles/modular/benchmark/r4/v0.5.gemfile + - gemfiles/modular/benchmark/vHEAD.gemfile + - gemfiles/modular/cgi/r4/v0.5.gemfile + - gemfiles/modular/cgi/vHEAD.gemfile + - gemfiles/modular/coverage.gemfile + - gemfiles/modular/coverage_local.gemfile + - gemfiles/modular/debug.gemfile + - gemfiles/modular/documentation.gemfile + - gemfiles/modular/documentation_local.gemfile + - gemfiles/modular/erb/r2.3/default.gemfile + - gemfiles/modular/erb/r2.6/v2.2.gemfile + - gemfiles/modular/erb/r2/v3.0.gemfile + - gemfiles/modular/erb/r3.1/v4.0.gemfile + - gemfiles/modular/erb/r3/v5.0.gemfile + - gemfiles/modular/erb/r4/v5.0.gemfile + - gemfiles/modular/erb/vHEAD.gemfile + - gemfiles/modular/json/truffleruby_22_3.gemfile + - gemfiles/modular/json/truffleruby_23_0.gemfile + - gemfiles/modular/json/truffleruby_23_1.gemfile + - gemfiles/modular/mutex_m/r2.4/v0.1.gemfile + - gemfiles/modular/mutex_m/r2/v0.3.gemfile + - gemfiles/modular/mutex_m/r3/v0.3.gemfile + - gemfiles/modular/mutex_m/r4/v0.3.gemfile + - gemfiles/modular/mutex_m/vHEAD.gemfile + - gemfiles/modular/optional.gemfile + - gemfiles/modular/recording/r2.3/recording.gemfile + - gemfiles/modular/recording/r2.4/recording.gemfile + - gemfiles/modular/recording/r2.5/recording.gemfile + - gemfiles/modular/recording/r3/recording.gemfile + - gemfiles/modular/recording/r4/recording.gemfile + - gemfiles/modular/recording/vHEAD.gemfile + - gemfiles/modular/rspec.gemfile + - gemfiles/modular/runtime_heads.gemfile + - gemfiles/modular/stringio/r2.4/v0.0.2.gemfile + - gemfiles/modular/stringio/r2/v3.0.gemfile + - gemfiles/modular/stringio/r3/v3.0.gemfile + - gemfiles/modular/stringio/r4/v3.0.gemfile + - gemfiles/modular/stringio/vHEAD.gemfile + - gemfiles/modular/style.gemfile + - gemfiles/modular/style_local.gemfile + - gemfiles/modular/templating.gemfile + - gemfiles/modular/templating_local.gemfile + - gemfiles/modular/webrick/r4/v1.9.gemfile + - gemfiles/modular/webrick/vHEAD.gemfile + - gemfiles/modular/x_std_libs.gemfile + - gemfiles/modular/x_std_libs/r2.3/libs.gemfile + - gemfiles/modular/x_std_libs/r2.4/libs.gemfile + - gemfiles/modular/x_std_libs/r2.6/libs.gemfile + - gemfiles/modular/x_std_libs/r2/libs.gemfile + - gemfiles/modular/x_std_libs/r3.1/libs.gemfile + - gemfiles/modular/x_std_libs/r3/libs.gemfile + - gemfiles/modular/x_std_libs/r4/libs.gemfile + - gemfiles/modular/x_std_libs/vHEAD.gemfile - source: lib/gem/version.rb target: lib/toml/merge/version.rb - source: sig/gem.rbs diff --git a/gems/toml-merge/Gemfile b/gems/toml-merge/Gemfile index 6557bde3e..cee8c0338 100644 --- a/gems/toml-merge/Gemfile +++ b/gems/toml-merge/Gemfile @@ -6,7 +6,7 @@ # kettle-jem will then preserve content between those markers across template runs. # kettle-jem:unfreeze -source 'https://gem.coop' +source "https://gem.coop" git_source(:codeberg) { |repo_name| "https://codeberg.org/#{repo_name}" } git_source(:gitlab) { |repo_name| "https://gitlab.com/#{repo_name}" } @@ -19,18 +19,62 @@ git_source(:gitlab) { |repo_name| "https://gitlab.com/#{repo_name}" } gemspec # Local workspace dependency wiring for *_local.gemfile overrides -nomono_requirements = ['~> 1.0', '>= 1.0.8'] -gem 'nomono', *nomono_requirements, require: false # ruby >= 2.2 +nomono_requirements = ["~> 1.0", ">= 1.0.8"] +gem "nomono", *nomono_requirements, require: false # ruby >= 2.2 # Direct sibling dependencies (env-switched via STRUCTUREDMERGE_DEV) direct_sibling_gems = %w[ ast-merge tree_haver ] -direct_sibling_dev = ENV.fetch('STRUCTUREDMERGE_DEV', '') +direct_sibling_dev = ENV.fetch("STRUCTUREDMERGE_DEV", "") direct_sibling_local = !direct_sibling_dev.empty? && !%w[false 0 no off].include?(direct_sibling_dev.downcase) -direct_sibling_templating = ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? +direct_sibling_templating = ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? + +if direct_sibling_gems.any? && + (direct_sibling_local || + ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero?) + direct_sibling_dev_was_set = ENV.key?("STRUCTUREDMERGE_DEV") + direct_sibling_dev_original = ENV.fetch("STRUCTUREDMERGE_DEV", nil) + begin + nomono_activation_requirements = nomono_requirements + nomono_lockfile = File.expand_path("Gemfile.lock", __dir__) + if File.file?(nomono_lockfile) + nomono_locked_spec = Bundler::LockfileParser + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == "nomono" } + nomono_locked = nomono_locked_spec && + Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) + if nomono_locked + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] + end + end + Kernel.send(:gem, "nomono", *nomono_activation_requirements) + require "nomono/bundler" + if direct_sibling_templating && !direct_sibling_local + ENV["STRUCTUREDMERGE_DEV"] = File.expand_path("..", __dir__) + end + + eval_nomono_gems( + gems: direct_sibling_gems, + prefix: "STRUCTUREDMERGE", + path_env: "STRUCTUREDMERGE_DEV", + root: ["src", "my", "structuredmerge"] + ) + rescue LoadError + warn "Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies." + ensure + if direct_sibling_templating && !direct_sibling_local + if direct_sibling_dev_was_set + ENV["STRUCTUREDMERGE_DEV"] = direct_sibling_dev_original + else + ENV.delete("STRUCTUREDMERGE_DEV") + end + end + end +end if direct_sibling_gems.any? && (direct_sibling_local || @@ -73,28 +117,28 @@ if direct_sibling_gems.any? && end # Use released TSLP with the Ruby ABI platform-gem fix. -gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' +gem "tree_sitter_language_pack", "~> 1.13", ">= 1.13.3" # Templating (env-switched: STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local paths) -eval_gemfile 'gemfiles/modular/templating.gemfile' if ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? +eval_gemfile "gemfiles/modular/templating.gemfile" if ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? # Debugging -eval_gemfile 'gemfiles/modular/debug.gemfile' +eval_gemfile "gemfiles/modular/debug.gemfile" # Code Coverage (env-switched: KETTLE_DEV_DEV=true for local paths) -eval_gemfile 'gemfiles/modular/coverage.gemfile' +eval_gemfile "gemfiles/modular/coverage.gemfile" # Linting -eval_gemfile 'gemfiles/modular/style.gemfile' +eval_gemfile "gemfiles/modular/style.gemfile" # Documentation -eval_gemfile 'gemfiles/modular/documentation.gemfile' +eval_gemfile "gemfiles/modular/documentation.gemfile" # Optional -eval_gemfile 'gemfiles/modular/optional.gemfile' +eval_gemfile "gemfiles/modular/optional.gemfile" ### Std Lib Extracted Gems -eval_gemfile 'gemfiles/modular/x_std_libs.gemfile' +eval_gemfile "gemfiles/modular/x_std_libs.gemfile" # See unlocked_deps appraisal for more details on irb inclusion -gem 'irb', '~> 1.17' # ruby >= 2.7 +gem "irb", "~> 1.17" # ruby >= 2.7 diff --git a/gems/toml-merge/Gemfile.lock b/gems/toml-merge/Gemfile.lock index 75f3b7fce..4eee50fa4 100644 --- a/gems/toml-merge/Gemfile.lock +++ b/gems/toml-merge/Gemfile.lock @@ -6,38 +6,6 @@ PATH tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly - specs: - ast-crispr-markdown-markly (7.1.0) - ast-crispr (= 7.1.0) - markly-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism - specs: - ast-crispr-ruby-prism (7.1.0) - ast-crispr (= 7.1.0) - prism-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr - specs: - ast-crispr (7.1.0) - ast-merge (= 7.1.0) - service_actor (~> 3.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git - specs: - ast-merge-git (7.1.0) - ast-merge (= 7.1.0) - json-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - PATH remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge specs: @@ -47,192 +15,6 @@ PATH tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template - specs: - ast-template (7.1.0) - ast-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge - specs: - bash-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge - specs: - binary-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge - specs: - citrus-toml-merge (7.1.0) - toml-merge (= 7.1.0) - toml-rb (~> 4.1) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge - specs: - commonmarker-merge (7.1.0) - commonmarker (~> 2.2) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge - specs: - dotenv-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge - specs: - go-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge - specs: - json-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem - specs: - kettle-jem (7.1.0) - addressable (>= 2.8, < 3) - ast-crispr-markdown-markly (= 7.1.0) - ast-crispr-ruby-prism (= 7.1.0) - ast-merge (= 7.1.0) - bash-merge (= 7.1.0) - citrus-toml-merge (= 7.1.0) - commonmarker-merge (= 7.1.0) - dotenv-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-dev (~> 2.3, >= 2.3.5) - kettle-rb (~> 0.1, >= 0.1.4) - kramdown-merge (= 7.1.0) - markdown-merge (= 7.1.0) - markly-merge (= 7.1.0) - prism-merge (= 7.1.0) - psych-merge (= 7.1.0) - rbs (>= 3.10) - rbs-merge (= 7.1.0) - ruby-merge (= 7.1.0) - token-resolver (~> 2.0, >= 2.0.4) - toml-merge (= 7.1.0) - toml-rb (~> 4.2) - tree_haver (= 7.1.0) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge - specs: - kramdown-merge (7.1.0) - kramdown (~> 2.5) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge - specs: - markdown-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge - specs: - markly-merge (7.1.0) - markdown-merge (= 7.1.0) - markly (~> 0.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge - specs: - parslet-toml-merge (7.1.0) - toml (~> 0.3) - toml-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge - specs: - plain-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge - specs: - prism-merge (7.1.0) - prism (~> 1.6) - ruby-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge - specs: - psych-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge - specs: - rbs-merge (7.1.0) - ast-merge (= 7.1.0) - rbs (>= 3.10) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge - specs: - ruby-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge - specs: - rust-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb - specs: - smorg-rb (7.1.0) - ast-merge (= 7.1.0) - ast-merge-git (= 7.1.0) - go-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-jem (= 7.1.0) - markly-merge (= 7.1.0) - plain-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - PATH remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver specs: @@ -242,29 +24,6 @@ PATH tree_sitter_language_pack (>= 1.13.2, < 2.0) version_gem (~> 1.1, >= 1.1.9) -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge - specs: - typescript-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge - specs: - yaml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge - specs: - zip-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - GEM remote: https://gem.coop/ specs: @@ -284,12 +43,6 @@ GEM thor (~> 1.0) citrus (3.0.2) cmdparse (3.0.7) - commonmarker (2.9.0-aarch64-linux) - commonmarker (2.9.0-aarch64-linux-musl) - commonmarker (2.9.0-arm64-darwin) - commonmarker (2.9.0-x86_64-darwin) - commonmarker (2.9.0-x86_64-linux) - commonmarker (2.9.0-x86_64-linux-musl) concurrent-ruby (1.3.7) date (3.5.1) debug (1.11.1) @@ -353,8 +106,6 @@ GEM kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) - kettle-drift (1.0.6) - version_gem (~> 1.1, >= 1.1.14) kettle-rb (0.1.4) kettle-soup-cover (1.1.3) simplecov (~> 0.22) @@ -383,7 +134,6 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) - markly (0.16.0) mutex_m (0.3.0) nokogiri (1.19.4-aarch64-linux-gnu) racc (~> 1.4) @@ -397,7 +147,7 @@ GEM racc (~> 1.4) nokogiri (1.19.4-x86_64-linux-musl) racc (~> 1.4) - nomono (1.0.8) + nomono (1.0.9) openssl (4.0.2) ostruct (0.6.3) parallel (1.28.0) @@ -520,8 +270,6 @@ GEM ruby-progressbar (1.13.0) ruby_engine (2.0.3) ruby_version (1.0.3) - service_actor (3.9.4) - zeitwerk (>= 1.0) silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) @@ -574,11 +322,6 @@ GEM token-resolver (2.0.4) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.13) - toml (0.3.0) - parslet (>= 1.8.0, < 3.0.0) - toml-rb (4.2.0) - citrus (~> 3.0, > 3.0) - racc (~> 1.7) tree_sitter_language_pack (1.13.3-aarch64-linux) sorbet-runtime (~> 0.5) tree_sitter_language_pack (1.13.3-arm64-darwin) @@ -633,45 +376,23 @@ PLATFORMS DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) - ast-crispr! - ast-crispr-markdown-markly! - ast-crispr-ruby-prism! ast-merge! - ast-merge-git! - ast-template! - bash-merge! benchmark (~> 0.5, >= 0.5.0) - binary-merge! bundler-audit (~> 0.9.3) - citrus-toml-merge! - commonmarker-merge! debug (>= 1.1) - dotenv-merge! erb (~> 6.0, >= 6.0.4) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.0) - go-merge! irb (~> 1.17) - json-merge! kettle-dev (~> 2.0, >= 2.2.25) - kettle-drift (~> 1.0, >= 1.0.5) - kettle-jem! kettle-soup-cover (~> 1.0, >= 1.1.3) kettle-test (~> 2.0, >= 2.0.9) kramdown (~> 2.5, >= 2.5.1) - kramdown-merge! kramdown-parser-gfm (~> 1.1) - markdown-merge! - markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) - parslet-toml-merge! - plain-merge! - prism-merge! - psych-merge! rake (~> 13.0) rbs (>= 3.0) - rbs-merge! rdoc (~> 6.11) reek (~> 6.5) require_bench (~> 1.0, >= 1.0.4) @@ -680,54 +401,33 @@ DEPENDENCIES rubocop-packaging (~> 0.6, >= 0.6.0) rubocop-rspec (~> 3.6) rubocop-ruby3_2 (~> 3.0.0) - ruby-merge! ruby-progressbar (~> 1.13) - rust-merge! - smorg-rb! standard (>= 1.50) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) toml-merge! tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) - typescript-merge! yaml-converter (~> 0.1) - yaml-merge! yard (~> 0.9, >= 0.9.44) yard-fence (~> 0.9, >= 0.9.1) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) yard-timekeeper (~> 0.1) yard-yaml (~> 0.1, >= 0.1.2) - zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af ansi (1.6.0) sha256=ac9ea0c0ea8d32fb4e271348e609963ac78882f34b73836c2a02b3622e666658 appraisal2 (3.2.0) sha256=ccd0b767ac4060cd7af6d16747459b6990f49c39c7b4fb1f7d1146b1e97c492f ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 - ast-crispr (7.1.0) - ast-crispr-markdown-markly (7.1.0) - ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) - ast-merge-git (7.1.0) - ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 - bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd - binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 - citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 - commonmarker (2.9.0-aarch64-linux) sha256=e2b4aadb9a2cfa4e206582641ce3a49465549ac1ed4c289fdd63b78d8f24579c - commonmarker (2.9.0-aarch64-linux-musl) sha256=1cf4d2821f2a7e64945f1ed7c4eeced586fdb27ea7fe7337788802cf8f57cfca - commonmarker (2.9.0-arm64-darwin) sha256=1748dbfa4f5813b0d2a14bb4bbfa65a4ec293aa1c825016d60029ee0e132b046 - commonmarker (2.9.0-x86_64-darwin) sha256=0a9914ccfd2f5d2a59c7bd0dda4fe90eb084cf513b477e499008e09ec9d6edd6 - commonmarker (2.9.0-x86_64-linux) sha256=8cfe92970eef585a19ddf6613224b91cab64d6029834661bda801f877c9c7f43 - commonmarker (2.9.0-x86_64-linux-musl) sha256=293921398b839f79ceaf55010e061357e34f053822c3b003cd0be6686176335e - commonmarker-merge (7.1.0) concurrent-ruby (1.3.7) sha256=4412caec3a5ea2e5fdc52076724c071a81f2c0593d83b2ac8cbb8ca63b3151b0 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 @@ -735,7 +435,6 @@ CHECKSUMS diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 docile (1.4.1) sha256=96159be799bfa73cdb721b840e9802126e4e03dfc26863db73647204c727f21e - dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -748,27 +447,19 @@ CHECKSUMS gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f - go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 - json-merge (7.1.0) kettle-dev (2.3.7) sha256=eb370113cd030d03cbe2d33b31c99858951017e5ad21a17e9ed89dc3770028ee - kettle-drift (1.0.6) sha256=46eda08fa4411d1f3c6682a95eef1c9df4e94611b3949f49d4c7b43c0ed356a3 - kettle-jem (7.1.0) kettle-rb (0.1.4) sha256=9cef7ce4f7021666b7222292f29051e51eaf042e8a5db11f3f4dd72f74243fc1 kettle-soup-cover (1.1.3) sha256=a373827da22a7131d093afd32945e5b7d7a10a01ebfdded8fd2cb8230d69c8ad kettle-test (2.0.11) sha256=c710c90f7ab79d51f9452f0c09f5f90657e7a893f63583855c164d0b1b107ab2 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa - kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 - markdown-merge (7.1.0) - markly (0.16.0) sha256=6f70d79e385b1efc9e171f74c81628826259039fe6c778e03c3924c71dac5511 - markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-aarch64-linux-gnu) sha256=1269fb644a6de405057a53dd5c762b1209b43ca7424f839454d3dbc677c31a8f nokogiri (1.19.4-aarch64-linux-musl) sha256=35c65b9ce72b3bb03207bdbe7067915019dc18c1b9b59139684bd6690fdd01af @@ -776,27 +467,22 @@ CHECKSUMS nokogiri (1.19.4-x86_64-darwin) sha256=7fd17057d3e1f00e9954a74b3cd76595d3d4a5ef233b7ed9599047c204f70551 nokogiri (1.19.4-x86_64-linux-gnu) sha256=379fae440b28915e3f19d752ce2dcf8465ed2b2fbefd2a7ca0dd497bc981a06a nokogiri (1.19.4-x86_64-linux-musl) sha256=17dfb7c1fa194ae02fbf7c51a7afc8d278045ab3fdacfd86f91d02d7b274470b - nomono (1.0.8) sha256=bf4b9b426cbf216ab17b70db474f691b8ae1f1e29de8db4b0ecd405e6e7e1c80 + nomono (1.0.9) openssl (4.0.2) sha256=1037ad2868ae58df9ad917891c0c0f9815a1172f6846d4bcdd508e4c2ee747c2 ostruct (0.6.3) sha256=95a2ed4a4bd1d190784e666b47b2d3f078e4a9efda2fccf18f84ddc6538ed912 parallel (1.28.0) sha256=33e6de1484baf2524792d178b0913fc8eb94c628d6cfe45599ad4458c638c970 parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 - parslet-toml-merge (7.1.0) - plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 - prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 - psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 - rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb @@ -824,12 +510,9 @@ CHECKSUMS rubocop-rspec (3.10.2) sha256=0b3e2ecc592cd10ecbf0095bb58d1e357905276e069643523cc19eb7495f65e2 rubocop-ruby3_2 (3.0.7) sha256=f53dd6d286fb05186214fc6ec116783e7f837030918e8931c05de773e98f8466 rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 - ruby-merge (7.1.0) ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 - rust-merge (7.1.0) - service_actor (3.9.4) sha256=e63b523630b9a7e62959b2a90113b08d2565b5de9c148557b281ef847c9539ce silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (0.22.0) sha256=fe2622c7834ff23b98066bb0a854284b2729a569ac659f82621fc22ef36213a5 simplecov-cobertura (3.2.0) sha256=70d702658677fcb20e5aceb6915ccf8bc62ff2ccd38b62b3ad5c9db5c0888740 @@ -838,7 +521,6 @@ CHECKSUMS simplecov-lcov (0.9.0) sha256=7a77a31e200a595ed4b0249493056efd0c920601f53d2ef135ca34ee796346cd simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_json_formatter (0.1.4) sha256=529418fbe8de1713ac2b2d612aa3daa56d316975d307244399fa4838c601b428 - smorg-rb (7.1.0) sorbet-runtime (0.6.13347) sha256=54e7221d9f4b63f58aec79f3043752a9ba7810347c6ae0d903531591cc2d5f01 standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b @@ -852,9 +534,7 @@ CHECKSUMS timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.4) sha256=33b926958f504525bba3ed511ab66fbcbf8ef30390815e931436b30f27ffcad0 - toml (0.3.0) sha256=0a91d0f76a9036e84e44f95693b12f58d358c1df3ac8e3b5271f2056ecc6e4b9 toml-merge (7.1.0) - toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-aarch64-linux) sha256=55ffc7c87868cb45658338363d9eba51b4a8b0259aa88e4de368d2bd1d52fea4 tree_sitter_language_pack (1.13.3-arm64-darwin) sha256=bc2498db605f212a1dbd2465ed3f65190d7da786f6ed5d30fcf958121aeb4a5c @@ -862,12 +542,10 @@ CHECKSUMS tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 - typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 - yaml-merge (7.1.0) yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd @@ -875,7 +553,6 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 - zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH diff --git a/gems/toml-merge/Rakefile b/gems/toml-merge/Rakefile index 1038ac780..4d0c02b16 100644 --- a/gems/toml-merge/Rakefile +++ b/gems/toml-merge/Rakefile @@ -130,23 +130,23 @@ end ### DUPLICATE DRIFT TASKS begin - require 'kettle/drift' + require "kettle/drift" Kettle::Drift.install_tasks rescue LoadError - desc('(stub) kettle:drift:check is unavailable') - task('kettle:drift:check') do + desc("(stub) kettle:drift:check is unavailable") + task("kettle:drift:check") do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc('(stub) kettle:drift:update is unavailable') - task('kettle:drift:update') do + desc("(stub) kettle:drift:update is unavailable") + task("kettle:drift:update") do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc('(stub) kettle:drift:force_update is unavailable') - task('kettle:drift:force_update') do + desc("(stub) kettle:drift:force_update is unavailable") + task("kettle:drift:force_update") do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc('(stub) kettle:drift is unavailable') - task('kettle:drift' => 'kettle:drift:update') + desc("(stub) kettle:drift is unavailable") + task("kettle:drift" => "kettle:drift:update") end ### TEMPLATING TASKS diff --git a/gems/toml-merge/lib/toml/merge/version.rb b/gems/toml-merge/lib/toml/merge/version.rb index d9074beaf..91c4e4d84 100644 --- a/gems/toml-merge/lib/toml/merge/version.rb +++ b/gems/toml-merge/lib/toml/merge/version.rb @@ -3,7 +3,7 @@ module Toml module Merge module Version - VERSION = '7.1.0' + VERSION = "7.1.0" end VERSION = Version::VERSION # Traditional Constant Location end diff --git a/gems/yaml-merge/.kettle-drift.lock b/gems/yaml-merge/.kettle-drift.lock index 2ee9dae31..43dfedd67 100644 --- a/gems/yaml-merge/.kettle-drift.lock +++ b/gems/yaml-merge/.kettle-drift.lock @@ -52,14 +52,5 @@ 88 ] } - ], - "vendored_gems_env: 'VENDORED_GEMS',\nvendor_gem_dir_env: 'VENDOR_GEM_DIR',": [ - { - "file": "gemfiles/modular/templating_local.gemfile", - "lines": [ - 55, - 66 - ] - } ] } diff --git a/gems/yaml-merge/README.md b/gems/yaml-merge/README.md index 432f91582..ba32b75e3 100644 --- a/gems/yaml-merge/README.md +++ b/gems/yaml-merge/README.md @@ -36,7 +36,7 @@ I've summarized my thoughts in [this blog post](https://dev.to/galtzo/hostile-ta | Tokens to Remember | [![Gem name][⛳️name-img]][⛳️gem-name] [![Gem namespace][⛳️namespace-img]][⛳️gem-namespace] | |-------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | Works with MRI Ruby 4 | [![Ruby current Compat][💎ruby-c-i]][🚎11-c-wf]| -| Support & Community | [![Join Me on Daily.dev's RubyFriends][✉️ruby-friends-img]][✉️ruby-friends] [![Live Chat on Discord][✉️discord-invite-img-ftb]][✉️discord-invite] [![Get help from me on Upwork][👨🏼‍🏫expsup-upwork-img]][👨🏼‍🏫expsup-upwork] [![Get help from me on Codementor][👨🏼‍🏫expsup-codementor-img]][👨🏼‍🏫expsup-codementor] | +| Support & Community | [![Join Me on Daily.dev's RubyFriends][✉️ruby-friends-img]][✉️ruby-friends] [![Get help from RubyForum][✉️ruby-forum-img]][✉️ruby-forum] [![Live Chat on Discord][✉️discord-invite-img-ftb]][✉️discord-invite] [![Get help from me on Upwork][👨🏼‍🏫expsup-upwork-img]][👨🏼‍🏫expsup-upwork] [![Get help from me on Codementor][👨🏼‍🏫expsup-codementor-img]][👨🏼‍🏫expsup-codementor] | | Source | [![Source on GitLab.com][📜src-gl-img]][📜src-gl] [![Source on CodeBerg.org][📜src-cb-img]][📜src-cb] [![Source on Github.com][📜src-gh-img]][📜src-gh] [![The best SHA: dQw4w9WgXcQ!][🧮kloc-img]][🧮kloc] | | Documentation | [![Current release on RubyDoc.info][📜docs-cr-rd-img]][🚎yard-current] [![YARD on Galtzo.com][📜docs-head-rd-img]][🚎yard-head] [![Maintainer Blog][🚂maint-blog-img]][🚂maint-blog] [![GitLab Wiki][📜gl-wiki-img]][📜gl-wiki] [![GitHub Wiki][📜gh-wiki-img]][📜gh-wiki] | | Compliance | [![License: AGPL-3.0-only OR PolyForm-Small-Business-1.0.0][📄license-img]][📄license] [![Apache license compatibility: Category X][📄license-compat-img]][📄license-compat] [![📄ilo-declaration-img]][📄ilo-declaration] [![Security Policy][🔐security-img]][🔐security] [![Contributor Covenant 2.1][🪇conduct-img]][🪇conduct] [![SemVer 2.0.0][📌semver-img]][📌semver] | @@ -182,6 +182,8 @@ If none of the available licenses suit your use case, please [contact us](mailto [✉️discord-invite-img-ftb]: https://img.shields.io/discord/1373797679469170758?style=for-the-badge&logo=discord [✉️ruby-friends-img]: https://img.shields.io/badge/daily.dev-%F0%9F%92%8E_Ruby_Friends-0A0A0A?style=for-the-badge&logo=dailydotdev&logoColor=white [✉️ruby-friends]: https://app.daily.dev/squads/rubyfriends +[✉️ruby-forum-img]: https://img.shields.io/badge/RubyForum-Help-CC342D?style=for-the-badge&logo=ruby&logoColor=white +[✉️ruby-forum]: https://www.rubyforum.org/c/help/8 [✇bundle-group-pattern]: https://gist.github.com/pboling/4564780 [⛳️gem-namespace]: https://github.com/structuredmerge/structuredmerge-ruby/tree/main/gems/yaml-merge [⛳️namespace-img]: https://img.shields.io/badge/namespace-Yaml::Merge-3C2D2D.svg?style=square&logo=ruby&logoColor=white diff --git a/gems/yaml-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile b/gems/yaml-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile index b8392fab0..dec650815 100644 --- a/gems/yaml-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile +++ b/gems/yaml-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.1 -gem 'benchmark', '~> 0.5', '>= 0.5.0' # Removed from Std Lib in Ruby 4.0 +gem "benchmark", "~> 0.5", ">= 0.5.0" # Removed from Std Lib in Ruby 4.0 diff --git a/gems/yaml-merge/gemfiles/modular/benchmark/vHEAD.gemfile b/gems/yaml-merge/gemfiles/modular/benchmark/vHEAD.gemfile index af214aafa..e1eb20c5e 100644 --- a/gems/yaml-merge/gemfiles/modular/benchmark/vHEAD.gemfile +++ b/gems/yaml-merge/gemfiles/modular/benchmark/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.1 -gem 'benchmark', github: 'ruby/benchmark', branch: 'master' +gem "benchmark", github: "ruby/benchmark", branch: "master" diff --git a/gems/yaml-merge/gemfiles/modular/cgi/r4/v0.5.gemfile b/gems/yaml-merge/gemfiles/modular/cgi/r4/v0.5.gemfile new file mode 100644 index 000000000..19ed967c3 --- /dev/null +++ b/gems/yaml-merge/gemfiles/modular/cgi/r4/v0.5.gemfile @@ -0,0 +1 @@ +gem "cgi", "~> 0.5" diff --git a/gems/yaml-merge/gemfiles/modular/cgi/vHEAD.gemfile b/gems/yaml-merge/gemfiles/modular/cgi/vHEAD.gemfile new file mode 100644 index 000000000..ef8b816ce --- /dev/null +++ b/gems/yaml-merge/gemfiles/modular/cgi/vHEAD.gemfile @@ -0,0 +1 @@ +gem "cgi", ">= 0.5" diff --git a/gems/yaml-merge/gemfiles/modular/coverage.gemfile b/gems/yaml-merge/gemfiles/modular/coverage.gemfile index f96d50954..52d737872 100644 --- a/gems/yaml-merge/gemfiles/modular/coverage.gemfile +++ b/gems/yaml-merge/gemfiles/modular/coverage.gemfile @@ -4,11 +4,11 @@ # Set KETTLE_DEV_DEV=true for local development with path-based dependencies. # When false (default / CI), remote released gems are used. -if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? +if ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false").zero? # Coverage (remote/released) platform :mri do - gem 'kettle-soup-cover', '~> 1.0', '>= 1.1.3', require: false + gem "kettle-soup-cover", "~> 3.0", ">= 3.0.3", require: false end else - eval_gemfile 'coverage_local.gemfile' + eval_gemfile "coverage_local.gemfile" end diff --git a/gems/yaml-merge/gemfiles/modular/coverage_local.gemfile b/gems/yaml-merge/gemfiles/modular/coverage_local.gemfile index 9113ff615..d1441e2fa 100644 --- a/gems/yaml-merge/gemfiles/modular/coverage_local.gemfile +++ b/gems/yaml-merge/gemfiles/modular/coverage_local.gemfile @@ -3,31 +3,53 @@ # Local path overrides for development. # Loaded by the associated non-local gemfile when KETTLE_DEV_DEV != "false". -require 'nomono/bundler' unless defined?(Nomono) +# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. +# Bundler records that dependency during Gemfile evaluation, but it does not +# activate that exact version before the immediate `require "nomono/bundler"`. +# If multiple compatible nomono versions are installed, RubyGems may activate +# the newest installed version while Gemfile.lock pins an older compatible one; +# Bundler then aborts with "already activated nomono X, but your Gemfile +# requires nomono Y". Prefer the locked compatible version when present, then +# activate it explicitly before requiring the Bundler DSL extension used below. +nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] +nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) +if File.file?(nomono_lockfile) + nomono_locked_spec = Bundler::LockfileParser + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == "nomono" } + nomono_locked = nomono_locked_spec && + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + if nomono_locked + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] + end +end +Kernel.send(:gem, "nomono", *nomono_activation_requirements) +require "nomono/bundler" local_gems = %w[kettle-dev kettle-test kettle-soup-cover kettle-drift] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) local_gems_to_eval = local_gems - %w[yaml-merge] - declared_gems -# export KETTLE_DEV_DEV=/path/to/kettle-rb +# export KETTLE_DEV_DEV=/path/to/my platform :mri do eval_nomono_gems( gems: local_gems_to_eval, - prefix: 'KETTLE_DEV', - path_env: 'KETTLE_DEV_DEV', - vendored_gems_env: 'VENDORED_GEMS', - vendor_gem_dir_env: 'VENDOR_GEM_DIR', - debug_env: 'KETTLE_DEV_DEBUG' + prefix: "KETTLE_DEV", + path_env: "KETTLE_DEV_DEV", + vendored_gems_env: "VENDORED_GEMS", + vendor_gem_dir_env: "VENDOR_GEM_DIR", + debug_env: "KETTLE_DEV_DEBUG" ) - if ENV.fetch('GALTZO_FLOSS_DEV', 'false').casecmp('false') != 0 + if ENV.fetch("GALTZO_FLOSS_DEV", "false").casecmp("false") != 0 eval_nomono_gems( gems: %w[turbo_tests2], - prefix: 'GALTZO_FLOSS', - path_env: 'GALTZO_FLOSS_DEV', - vendored_gems_env: 'GALTZO_FLOSS_VENDORED_GEMS', - vendor_gem_dir_env: 'GALTZO_FLOSS_VENDOR_GEM_DIR', - debug_env: 'GALTZO_FLOSS_DEBUG' + prefix: "GALTZO_FLOSS", + path_env: "GALTZO_FLOSS_DEV", + vendored_gems_env: "GALTZO_FLOSS_VENDORED_GEMS", + vendor_gem_dir_env: "GALTZO_FLOSS_VENDOR_GEM_DIR", + debug_env: "GALTZO_FLOSS_DEBUG" ) end end diff --git a/gems/yaml-merge/gemfiles/modular/debug.gemfile b/gems/yaml-merge/gemfiles/modular/debug.gemfile index eed8d4d1e..4e15b1a3a 100644 --- a/gems/yaml-merge/gemfiles/modular/debug.gemfile +++ b/gems/yaml-merge/gemfiles/modular/debug.gemfile @@ -13,10 +13,10 @@ platform :mri do # Debugging - Ensure ENV["DEBUG"] == "true" to use debuggers within spec suite # Use binding.break, binding.b, or debugger in code - gem 'debug', '>= 1.1' # ruby >= 2.7 + gem "debug", ">= 1.1" # ruby >= 2.7 # Dev Console - Binding.pry - Irb replacement # gem "pry", "~> 0.14" # ruby >= 2.0 end -gem 'gem_bench', '~> 2.0', '>= 2.0.5' +gem "gem_bench", "~> 2.0", ">= 2.0.5" diff --git a/gems/yaml-merge/gemfiles/modular/documentation.gemfile b/gems/yaml-merge/gemfiles/modular/documentation.gemfile index dff5cc108..d8215416e 100644 --- a/gems/yaml-merge/gemfiles/modular/documentation.gemfile +++ b/gems/yaml-merge/gemfiles/modular/documentation.gemfile @@ -7,20 +7,20 @@ # # Documentation -gem 'kramdown', '~> 2.5', '>= 2.5.1', require: false # Ruby >= 2.5 -gem 'kramdown-parser-gfm', '~> 1.1', require: false # Ruby >= 2.3 -gem 'yaml-converter', '~> 0.1', require: false # Ruby >= 3.2 -gem 'yard', '~> 0.9', '>= 0.9.44', require: false -gem 'yard-junk', '~> 0.1', '>= 0.1.0', require: false # Ruby >= 3.1 -gem 'yard-relative_markdown_links', '~> 0.6', require: false +gem "kramdown", "~> 2.5", ">= 2.5.2", require: false # Ruby >= 2.5 +gem "kramdown-parser-gfm", "~> 1.1", require: false # Ruby >= 2.3 +gem "yaml-converter", "~> 0.2", ">= 0.2.3", require: false # Ruby >= 3.2 +gem "yard", "~> 0.9", ">= 0.9.45", require: false +gem "yard-junk", "~> 0.1", ">= 0.1.0", require: false # Ruby >= 3.1 +gem "yard-relative_markdown_links", "~> 0.6", require: false -if ENV.fetch('GALTZO_FLOSS_DEV', 'false').casecmp('false').zero? - gem 'yard-fence', '~> 0.9', '>= 0.9.1', require: false # Ruby >= 3.2 - gem 'yard-timekeeper', '~> 0.1', require: false - gem 'yard-yaml', '~> 0.1', '>= 0.1.2', require: false +if ENV.fetch("GALTZO_FLOSS_DEV", "false").casecmp("false").zero? + gem "yard-fence", "~> 0.9", ">= 0.9.6", require: false # Ruby >= 3.2 + gem "yard-timekeeper", "~> 0.2", ">= 0.2.4", require: false + gem "yard-yaml", "~> 0.2", ">= 0.2.3", require: false else - eval_gemfile 'documentation_local.gemfile' + eval_gemfile "documentation_local.gemfile" end # Std Lib extractions -gem 'rdoc', '~> 6.11', require: false unless ENV.fetch('KJ_FRAMEWORK_MATRIX_GEM', '') == 'rdoc' +gem "rdoc", "~> 6.11", require: false unless ENV.fetch("KJ_FRAMEWORK_MATRIX_GEM", "") == "rdoc" diff --git a/gems/yaml-merge/gemfiles/modular/documentation_local.gemfile b/gems/yaml-merge/gemfiles/modular/documentation_local.gemfile index 4d4c2bd95..5ed58acd1 100644 --- a/gems/yaml-merge/gemfiles/modular/documentation_local.gemfile +++ b/gems/yaml-merge/gemfiles/modular/documentation_local.gemfile @@ -3,16 +3,40 @@ # Local path overrides for development. # Loaded by the associated non-local gemfile when GALTZO_FLOSS_DEV != "false". -require 'nomono/bundler' unless defined?(Nomono) +# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. +# Bundler records that dependency during Gemfile evaluation, but it does not +# activate that exact version before the immediate `require "nomono/bundler"`. +# If multiple compatible nomono versions are installed, RubyGems may activate +# the newest installed version while Gemfile.lock pins an older compatible one; +# Bundler then aborts with "already activated nomono X, but your Gemfile +# requires nomono Y". Prefer the locked compatible version when present, then +# activate it explicitly before requiring the Bundler DSL extension used below. +nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] +nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) +if File.file?(nomono_lockfile) + nomono_locked_spec = Bundler::LockfileParser + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == "nomono" } + nomono_locked = nomono_locked_spec && + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + if nomono_locked + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] + end +end +Kernel.send(:gem, "nomono", *nomono_activation_requirements) +require "nomono/bundler" local_gems = %w[yard-fence yard-timekeeper yard-yaml] +declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) +local_gems_to_eval = local_gems - %w[yaml-merge] - declared_gems # export GALTZO_FLOSS_DEV=/path/to/galtzo-floss eval_nomono_gems( - gems: local_gems, - prefix: 'GALTZO_FLOSS', - path_env: 'GALTZO_FLOSS_DEV', - vendored_gems_env: 'GALTZO_FLOSS_VENDORED_GEMS', - vendor_gem_dir_env: 'GALTZO_FLOSS_VENDOR_GEM_DIR', - debug_env: 'GALTZO_FLOSS_DEBUG' + gems: local_gems_to_eval, + prefix: "GALTZO_FLOSS", + path_env: "GALTZO_FLOSS_DEV", + vendored_gems_env: "GALTZO_FLOSS_VENDORED_GEMS", + vendor_gem_dir_env: "GALTZO_FLOSS_VENDOR_GEM_DIR", + debug_env: "GALTZO_FLOSS_DEBUG" ) diff --git a/gems/yaml-merge/gemfiles/modular/erb/r2/v3.0.gemfile b/gems/yaml-merge/gemfiles/modular/erb/r2/v3.0.gemfile index 7c83a239b..c03bd8d85 100644 --- a/gems/yaml-merge/gemfiles/modular/erb/r2/v3.0.gemfile +++ b/gems/yaml-merge/gemfiles/modular/erb/r2/v3.0.gemfile @@ -1 +1 @@ -gem 'erb', '~> 3.0' # ruby >= 2.7.0 +gem "erb", "~> 3.0" # ruby >= 2.7.0 diff --git a/gems/yaml-merge/gemfiles/modular/erb/r3/v5.0.gemfile b/gems/yaml-merge/gemfiles/modular/erb/r3/v5.0.gemfile index 0e3bf1b97..1bd029cc1 100644 --- a/gems/yaml-merge/gemfiles/modular/erb/r3/v5.0.gemfile +++ b/gems/yaml-merge/gemfiles/modular/erb/r3/v5.0.gemfile @@ -1 +1 @@ -gem 'erb', '~> 6.0', '>= 6.0.4' # ruby >= 3.2.0 +gem "erb", "~> 6.0", ">= 6.0.6" # ruby >= 3.2.0 diff --git a/gems/yaml-merge/gemfiles/modular/erb/r4/v5.0.gemfile b/gems/yaml-merge/gemfiles/modular/erb/r4/v5.0.gemfile index 0e3bf1b97..1bd029cc1 100644 --- a/gems/yaml-merge/gemfiles/modular/erb/r4/v5.0.gemfile +++ b/gems/yaml-merge/gemfiles/modular/erb/r4/v5.0.gemfile @@ -1 +1 @@ -gem 'erb', '~> 6.0', '>= 6.0.4' # ruby >= 3.2.0 +gem "erb", "~> 6.0", ">= 6.0.6" # ruby >= 3.2.0 diff --git a/gems/yaml-merge/gemfiles/modular/erb/vHEAD.gemfile b/gems/yaml-merge/gemfiles/modular/erb/vHEAD.gemfile index ea0101185..48fee4218 100644 --- a/gems/yaml-merge/gemfiles/modular/erb/vHEAD.gemfile +++ b/gems/yaml-merge/gemfiles/modular/erb/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 3.2 -gem 'erb', github: 'ruby/erb', branch: 'master' +gem "erb", github: "ruby/erb", branch: "master" diff --git a/gems/yaml-merge/gemfiles/modular/json/truffleruby_22_3.gemfile b/gems/yaml-merge/gemfiles/modular/json/truffleruby_22_3.gemfile new file mode 100644 index 000000000..b0e69ab11 --- /dev/null +++ b/gems/yaml-merge/gemfiles/modular/json/truffleruby_22_3.gemfile @@ -0,0 +1,6 @@ +# frozen_string_literal: true + +if RUBY_ENGINE == "truffleruby" && RUBY_ENGINE_VERSION.start_with?("22.3") + # TruffleRuby 22.3 ships the json default gem from its emulated MRI Ruby. + gem "json", "= 2.5.1" +end diff --git a/gems/yaml-merge/gemfiles/modular/json/truffleruby_23_0.gemfile b/gems/yaml-merge/gemfiles/modular/json/truffleruby_23_0.gemfile new file mode 100644 index 000000000..7b2660a2b --- /dev/null +++ b/gems/yaml-merge/gemfiles/modular/json/truffleruby_23_0.gemfile @@ -0,0 +1,6 @@ +# frozen_string_literal: true + +if RUBY_ENGINE == "truffleruby" && RUBY_ENGINE_VERSION.start_with?("23.0") + # TruffleRuby 23.0 ships the json default gem from its emulated MRI Ruby. + gem "json", "= 2.6.1" +end diff --git a/gems/yaml-merge/gemfiles/modular/json/truffleruby_23_1.gemfile b/gems/yaml-merge/gemfiles/modular/json/truffleruby_23_1.gemfile new file mode 100644 index 000000000..dfa21f2e4 --- /dev/null +++ b/gems/yaml-merge/gemfiles/modular/json/truffleruby_23_1.gemfile @@ -0,0 +1,6 @@ +# frozen_string_literal: true + +if RUBY_ENGINE == "truffleruby" && RUBY_ENGINE_VERSION.start_with?("23.1") + # TruffleRuby 23.1 ships the json default gem from its emulated MRI Ruby. + gem "json", "= 2.6.3" +end diff --git a/gems/yaml-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile b/gems/yaml-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile index e27f1bbae..42e9d9bd4 100644 --- a/gems/yaml-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile +++ b/gems/yaml-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 -gem 'mutex_m', '~> 0.2' +gem "mutex_m", "~> 0.2" diff --git a/gems/yaml-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile b/gems/yaml-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile index e27f1bbae..42e9d9bd4 100644 --- a/gems/yaml-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile +++ b/gems/yaml-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 -gem 'mutex_m', '~> 0.2' +gem "mutex_m", "~> 0.2" diff --git a/gems/yaml-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile b/gems/yaml-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile index e27f1bbae..42e9d9bd4 100644 --- a/gems/yaml-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile +++ b/gems/yaml-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 -gem 'mutex_m', '~> 0.2' +gem "mutex_m", "~> 0.2" diff --git a/gems/yaml-merge/gemfiles/modular/mutex_m/vHEAD.gemfile b/gems/yaml-merge/gemfiles/modular/mutex_m/vHEAD.gemfile index 9dac2f6cb..8af3b6fca 100644 --- a/gems/yaml-merge/gemfiles/modular/mutex_m/vHEAD.gemfile +++ b/gems/yaml-merge/gemfiles/modular/mutex_m/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 (dependency of omniauth) -gem 'mutex_m', github: 'ruby/mutex_m', branch: 'master' +gem "mutex_m", github: "ruby/mutex_m", branch: "master" diff --git a/gems/yaml-merge/gemfiles/modular/optional.gemfile b/gems/yaml-merge/gemfiles/modular/optional.gemfile index bbdb6c5cc..80bc45196 100644 --- a/gems/yaml-merge/gemfiles/modular/optional.gemfile +++ b/gems/yaml-merge/gemfiles/modular/optional.gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -# To retain during yaml-merge templating: +# To retain during kettle-jem templating: # kettle-jem:freeze # # ... your code # kettle-jem:unfreeze @@ -9,9 +9,8 @@ # Optional dependencies are not depended on directly, but may be used if present. # Required for curated binstubs generated by kettle-jem install -gem 'rbs', '>= 3.0', require: false # ruby >= 3.1 -gem 'stone_checksums', '~> 1.0', '>= 1.0.3', require: false # ruby >= 2.2 +gem "rbs", ">= 3.0", require: false # ruby >= 3.1 # Required for kettle-pre-release # URL parsing with Unicode support (falls back to URI if not available) -gem 'addressable', '>= 2.8', '< 3' # ruby >= 2.2 +gem "addressable", ">= 2.8", "< 3" # ruby >= 2.2 diff --git a/gems/yaml-merge/gemfiles/modular/rspec.gemfile b/gems/yaml-merge/gemfiles/modular/rspec.gemfile index 2af210a41..72fdf8b7f 100644 --- a/gems/yaml-merge/gemfiles/modular/rspec.gemfile +++ b/gems/yaml-merge/gemfiles/modular/rspec.gemfile @@ -1,4 +1,4 @@ -gem 'rspec_junit_formatter', - github: 'pboling/rspec_junit_formatter', - branch: 'main', - ref: '9e6bcaaedd49477b62878ed568dc4ada5cc7cb5e' +gem "rspec_junit_formatter", + github: "pboling/rspec_junit_formatter", + branch: "main", + ref: "9e6bcaaedd49477b62878ed568dc4ada5cc7cb5e" diff --git a/gems/yaml-merge/gemfiles/modular/runtime_heads.gemfile b/gems/yaml-merge/gemfiles/modular/runtime_heads.gemfile index 464d83ac1..02f134c7f 100644 --- a/gems/yaml-merge/gemfiles/modular/runtime_heads.gemfile +++ b/gems/yaml-merge/gemfiles/modular/runtime_heads.gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -# To retain during yaml-merge templating: +# To retain during kettle-jem templating: # kettle-jem:freeze # # ... your code # kettle-jem:unfreeze @@ -8,7 +8,4 @@ # Test against HEAD of runtime dependencies so we can proactively file bugs -# Ruby >= 2.2 -gem 'version_gem', github: 'ruby-oauth/version_gem', branch: 'main' - -eval_gemfile('x_std_libs/vHEAD.gemfile') +eval_gemfile("x_std_libs/vHEAD.gemfile") diff --git a/gems/yaml-merge/gemfiles/modular/stringio/r2/v3.0.gemfile b/gems/yaml-merge/gemfiles/modular/stringio/r2/v3.0.gemfile index 3616f4e3a..e85bb18ee 100644 --- a/gems/yaml-merge/gemfiles/modular/stringio/r2/v3.0.gemfile +++ b/gems/yaml-merge/gemfiles/modular/stringio/r2/v3.0.gemfile @@ -2,4 +2,4 @@ # NOT SEMVER # Version 3.0.7 dropped support for Ruby <= 2.7 # Version 3.0.0 dropped support for Ruby <= 2.4 -gem 'stringio', '>= 3.0' +gem "stringio", ">= 3.0" diff --git a/gems/yaml-merge/gemfiles/modular/stringio/r3/v3.0.gemfile b/gems/yaml-merge/gemfiles/modular/stringio/r3/v3.0.gemfile index 3616f4e3a..e85bb18ee 100644 --- a/gems/yaml-merge/gemfiles/modular/stringio/r3/v3.0.gemfile +++ b/gems/yaml-merge/gemfiles/modular/stringio/r3/v3.0.gemfile @@ -2,4 +2,4 @@ # NOT SEMVER # Version 3.0.7 dropped support for Ruby <= 2.7 # Version 3.0.0 dropped support for Ruby <= 2.4 -gem 'stringio', '>= 3.0' +gem "stringio", ">= 3.0" diff --git a/gems/yaml-merge/gemfiles/modular/stringio/r4/v3.0.gemfile b/gems/yaml-merge/gemfiles/modular/stringio/r4/v3.0.gemfile index 3616f4e3a..e85bb18ee 100644 --- a/gems/yaml-merge/gemfiles/modular/stringio/r4/v3.0.gemfile +++ b/gems/yaml-merge/gemfiles/modular/stringio/r4/v3.0.gemfile @@ -2,4 +2,4 @@ # NOT SEMVER # Version 3.0.7 dropped support for Ruby <= 2.7 # Version 3.0.0 dropped support for Ruby <= 2.4 -gem 'stringio', '>= 3.0' +gem "stringio", ">= 3.0" diff --git a/gems/yaml-merge/gemfiles/modular/stringio/vHEAD.gemfile b/gems/yaml-merge/gemfiles/modular/stringio/vHEAD.gemfile index 78f5f5d8a..5f2a74126 100644 --- a/gems/yaml-merge/gemfiles/modular/stringio/vHEAD.gemfile +++ b/gems/yaml-merge/gemfiles/modular/stringio/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 (dependency of omniauth) -gem 'stringio', github: 'ruby/stringio', branch: 'master' +gem "stringio", github: "ruby/stringio", branch: "master" diff --git a/gems/yaml-merge/gemfiles/modular/style.gemfile b/gems/yaml-merge/gemfiles/modular/style.gemfile index b955161bb..35de4dcd6 100644 --- a/gems/yaml-merge/gemfiles/modular/style.gemfile +++ b/gems/yaml-merge/gemfiles/modular/style.gemfile @@ -1,28 +1,31 @@ # frozen_string_literal: true -# To retain during yaml-merge templating: +# To retain during kettle-jem templating: # kettle-jem:freeze # # ... your code # kettle-jem:unfreeze # -# We run rubocop on the latest version of Ruby, -# but in support of the oldest supported version of Ruby +# Style tasks run on the latest Ruby; RuboCop-LTS selects the compatibility +# rules for the configured Ruby floor independently from task dependency floors. -gem 'reek', '~> 6.5' +gem "reek", "~> 6.5", ">= 6.5.0" platform :mri do - gem 'rubocop-on-rbs', '~> 2.0' # ruby >= 3.2.0 + gem "appraisal2-rubocop", "~> 1.0", ">= 1.0.0", require: false + gem "rubocop-gradual", "~> 0.4", ">= 0.4.0" + gem "rubocop-minitest", "~> 0.40", ">= 0.40.0" + gem "rubocop-on-rbs", "~> 2.0", ">= 2.0.0" # ruby >= 3.2.0 # gem "rubocop", "~> 1.73", ">= 1.73.2" # constrained by standard - gem 'rubocop-packaging', '~> 0.6', '>= 0.6.0' - gem 'standard', '>= 1.50' + gem "rubocop-packaging", "~> 0.6", ">= 0.6.0" + gem "standard", "~> 1.56", ">= 1.56.0" - if ENV.fetch('RUBOCOP_LTS_LOCAL', 'false').casecmp('false').zero? - gem 'rubocop-lts', '~> 24.1.0' - # "rubocop-lts-rspec" can't add here until other gems are updated. - gem 'rubocop-rspec', '~> 3.6' - gem 'rubocop-ruby3_2', '~> 3.0.0' + if ENV.fetch("RUBOCOP_LTS_LOCAL", "false").casecmp("false").zero? + declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) + gem "rubocop-lts", "~> 24.2", ">= 24.2.1" unless declared_gems.include?("rubocop-lts") + gem "rubocop-lts-rspec", "~> 1.0", ">= 1.0.5" unless declared_gems.include?("rubocop-lts-rspec") + gem "rubocop-ruby3_2", "~> 3.0", ">= 3.0.6" unless declared_gems.include?("rubocop-ruby3_2") else - eval_gemfile('style_local.gemfile') + eval_gemfile("style_local.gemfile") end end diff --git a/gems/yaml-merge/gemfiles/modular/style_local.gemfile b/gems/yaml-merge/gemfiles/modular/style_local.gemfile index ce75bbe21..255bf2e49 100644 --- a/gems/yaml-merge/gemfiles/modular/style_local.gemfile +++ b/gems/yaml-merge/gemfiles/modular/style_local.gemfile @@ -1,24 +1,48 @@ # frozen_string_literal: true -# We run rubocop on the latest version of Ruby, -# but in support of the oldest supported version of Ruby +# Style tasks run on the latest Ruby; RuboCop-LTS selects the compatibility +# rules for the configured Ruby floor independently from task dependency floors. # Local path overrides for development. # Loaded by the associated non-local gemfile when RUBOCOP_LTS_LOCAL != "false". -require 'nomono/bundler' unless defined?(Nomono) +# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. +# Bundler records that dependency during Gemfile evaluation, but it does not +# activate that exact version before the immediate `require "nomono/bundler"`. +# If multiple compatible nomono versions are installed, RubyGems may activate +# the newest installed version while Gemfile.lock pins an older compatible one; +# Bundler then aborts with "already activated nomono X, but your Gemfile +# requires nomono Y". Prefer the locked compatible version when present, then +# activate it explicitly before requiring the Bundler DSL extension used below. +nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] +nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) +if File.file?(nomono_lockfile) + nomono_locked_spec = Bundler::LockfileParser + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == "nomono" } + nomono_locked = nomono_locked_spec && + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + if nomono_locked + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] + end +end +Kernel.send(:gem, "nomono", *nomono_activation_requirements) +require "nomono/bundler" local_gems = %w[rubocop-lts rubocop-lts-rspec rubocop-ruby3_2 standard-rubocop-lts] +declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) +local_gems_to_eval = local_gems - %w[yaml-merge] - declared_gems # export VENDORED_GEMS=rubocop-lts,rubocop-lts-rspec,rubocop-ruby3_2,standard-rubocop-lts platform :mri do eval_nomono_gems( - gems: local_gems, - prefix: 'RUBOCOP_LTS', - path_env: 'RUBOCOP_LTS_LOCAL', - vendored_gems_env: 'VENDORED_GEMS', - vendor_gem_dir_env: 'VENDOR_GEM_DIR', - debug_env: 'RUBOCOP_LTS_DEBUG', - root: %w[src rubocop-lts] + gems: local_gems_to_eval, + prefix: "RUBOCOP_LTS", + path_env: "RUBOCOP_LTS_LOCAL", + vendored_gems_env: "VENDORED_GEMS", + vendor_gem_dir_env: "VENDOR_GEM_DIR", + debug_env: "RUBOCOP_LTS_DEBUG", + root: ["src", "rubocop-lts"] ) end diff --git a/gems/yaml-merge/gemfiles/modular/templating.gemfile b/gems/yaml-merge/gemfiles/modular/templating.gemfile index 2ddc9433f..47138ffbb 100644 --- a/gems/yaml-merge/gemfiles/modular/templating.gemfile +++ b/gems/yaml-merge/gemfiles/modular/templating.gemfile @@ -1,24 +1,24 @@ # frozen_string_literal: true -structuredmerge_remote = ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false').zero? -kettle_remote = ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? +structuredmerge_remote = ENV.fetch("STRUCTUREDMERGE_DEV", "false").casecmp("false").zero? +kettle_remote = ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false").zero? if structuredmerge_remote # Parser dependencies for released installs. - gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' + gem "tree_sitter_language_pack", "~> 1.13", ">= 1.13.3" # Merge recipes for released installs. - gem 'kettle-jem', '>= 7.0' + gem "kettle-jem", ">= 7.0" end if kettle_remote # Template/plugin checks for released installs. - gem 'kettle-drift', '~> 1.0', '>= 1.0.5', require: false + gem "kettle-drift", "~> 1.0", ">= 1.0.6", require: false end # Set STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local development with path-based dependencies. # When false (default / CI), released kettle-jem brings merge gems and parser dependencies. # Local path overrides bring the same dependencies from sibling gemspecs. # -# Set KETTLE_DEV_DEV=/path/to/kettle-rb for local development with Kettle plugin gems. +# Set KETTLE_DEV_DEV=/path/to/my for local development with Kettle plugin gems. # When false (default / CI), released Kettle plugin gems are used. -eval_gemfile 'templating_local.gemfile' unless structuredmerge_remote && kettle_remote +eval_gemfile "templating_local.gemfile" unless structuredmerge_remote && kettle_remote diff --git a/gems/yaml-merge/gemfiles/modular/templating_local.gemfile b/gems/yaml-merge/gemfiles/modular/templating_local.gemfile index 8a0c2dcd4..88da435ec 100644 --- a/gems/yaml-merge/gemfiles/modular/templating_local.gemfile +++ b/gems/yaml-merge/gemfiles/modular/templating_local.gemfile @@ -4,7 +4,29 @@ # Loaded by the associated non-local gemfile when STRUCTUREDMERGE_DEV or KETTLE_DEV_DEV # is not "false". -require 'nomono/bundler' unless defined?(Nomono) +# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. +# Bundler records that dependency during Gemfile evaluation, but it does not +# activate that exact version before the immediate `require "nomono/bundler"`. +# If multiple compatible nomono versions are installed, RubyGems may activate +# the newest installed version while Gemfile.lock pins an older compatible one; +# Bundler then aborts with "already activated nomono X, but your Gemfile +# requires nomono Y". Prefer the locked compatible version when present, then +# activate it explicitly before requiring the Bundler DSL extension used below. +nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] +nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) +if File.file?(nomono_lockfile) + nomono_locked_spec = Bundler::LockfileParser + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == "nomono" } + nomono_locked = nomono_locked_spec && + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + if nomono_locked + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] + end +end +Kernel.send(:gem, "nomono", *nomono_activation_requirements) +require "nomono/bundler" structuredmerge_local_gems = %w[ tree_haver @@ -47,25 +69,25 @@ structuredmerge_local_gems_to_eval = structuredmerge_local_gems - %w[yaml-merge] kettle_dev_local_gems_to_eval = kettle_dev_local_gems - %w[yaml-merge] - declared_gems platform :mri do - if ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false') != 0 + if ENV.fetch("STRUCTUREDMERGE_DEV", "false").casecmp("false") != 0 eval_nomono_gems( gems: structuredmerge_local_gems_to_eval, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - vendored_gems_env: 'VENDORED_GEMS', - vendor_gem_dir_env: 'VENDOR_GEM_DIR', - debug_env: 'STRUCTUREDMERGE_DEBUG' + prefix: "STRUCTUREDMERGE", + path_env: "STRUCTUREDMERGE_DEV", + vendored_gems_env: "VENDORED_GEMS", + vendor_gem_dir_env: "VENDOR_GEM_DIR", + debug_env: "STRUCTUREDMERGE_DEBUG" ) end - if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false') != 0 + if ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false") != 0 eval_nomono_gems( gems: kettle_dev_local_gems_to_eval, - prefix: 'KETTLE_DEV', - path_env: 'KETTLE_DEV_DEV', - vendored_gems_env: 'VENDORED_GEMS', - vendor_gem_dir_env: 'VENDOR_GEM_DIR', - debug_env: 'KETTLE_DEV_DEBUG' + prefix: "KETTLE_DEV", + path_env: "KETTLE_DEV_DEV", + vendored_gems_env: "VENDORED_GEMS", + vendor_gem_dir_env: "VENDOR_GEM_DIR", + debug_env: "KETTLE_DEV_DEBUG" ) end end diff --git a/gems/yaml-merge/gemfiles/modular/webrick/r4/v1.9.gemfile b/gems/yaml-merge/gemfiles/modular/webrick/r4/v1.9.gemfile new file mode 100644 index 000000000..eaab4a473 --- /dev/null +++ b/gems/yaml-merge/gemfiles/modular/webrick/r4/v1.9.gemfile @@ -0,0 +1 @@ +gem "webrick", "~> 1.9" diff --git a/gems/yaml-merge/gemfiles/modular/webrick/vHEAD.gemfile b/gems/yaml-merge/gemfiles/modular/webrick/vHEAD.gemfile new file mode 100644 index 000000000..8a789b634 --- /dev/null +++ b/gems/yaml-merge/gemfiles/modular/webrick/vHEAD.gemfile @@ -0,0 +1 @@ +gem "webrick", ">= 1.9" diff --git a/gems/yaml-merge/gemfiles/modular/x_std_libs.gemfile b/gems/yaml-merge/gemfiles/modular/x_std_libs.gemfile index b1f43c097..77aad43f2 100644 --- a/gems/yaml-merge/gemfiles/modular/x_std_libs.gemfile +++ b/gems/yaml-merge/gemfiles/modular/x_std_libs.gemfile @@ -1,12 +1,12 @@ ### Std Lib Extracted Gems ruby_version = Gem::Version.new(RUBY_VERSION) -if ruby_version >= Gem::Version.new('4.0') - eval_gemfile 'x_std_libs/r4/libs.gemfile' -elsif ruby_version >= Gem::Version.new('3.2') - eval_gemfile 'x_std_libs/r3/libs.gemfile' -elsif ruby_version >= Gem::Version.new('3.1') - eval_gemfile 'x_std_libs/r3.1/libs.gemfile' +if ruby_version >= Gem::Version.new("4.0") + eval_gemfile "x_std_libs/r4/libs.gemfile" +elsif ruby_version >= Gem::Version.new("3.2") + eval_gemfile "x_std_libs/r3/libs.gemfile" +elsif ruby_version >= Gem::Version.new("3.1") + eval_gemfile "x_std_libs/r3.1/libs.gemfile" else - eval_gemfile 'x_std_libs/r2/libs.gemfile' + eval_gemfile "x_std_libs/r2/libs.gemfile" end diff --git a/gems/yaml-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile b/gems/yaml-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile index 16a5e3d70..441c4f03a 100644 --- a/gems/yaml-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile +++ b/gems/yaml-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile @@ -1,3 +1,3 @@ -eval_gemfile '../../erb/r2/v3.0.gemfile' -eval_gemfile '../../mutex_m/r2/v0.3.gemfile' -eval_gemfile '../../stringio/r2/v3.0.gemfile' +eval_gemfile "../../erb/r2/v3.0.gemfile" +eval_gemfile "../../mutex_m/r2/v0.3.gemfile" +eval_gemfile "../../stringio/r2/v3.0.gemfile" diff --git a/gems/yaml-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile b/gems/yaml-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile index 220ff95c1..c293a3ddd 100644 --- a/gems/yaml-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile +++ b/gems/yaml-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile @@ -1,3 +1,3 @@ -eval_gemfile '../../erb/r3/v5.0.gemfile' -eval_gemfile '../../mutex_m/r3/v0.3.gemfile' -eval_gemfile '../../stringio/r3/v3.0.gemfile' +eval_gemfile "../../erb/r3/v5.0.gemfile" +eval_gemfile "../../mutex_m/r3/v0.3.gemfile" +eval_gemfile "../../stringio/r3/v3.0.gemfile" diff --git a/gems/yaml-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile b/gems/yaml-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile index bd4e884df..eb5574247 100644 --- a/gems/yaml-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile +++ b/gems/yaml-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile @@ -1,4 +1,6 @@ -eval_gemfile '../../erb/r4/v5.0.gemfile' -eval_gemfile '../../mutex_m/r4/v0.3.gemfile' -eval_gemfile '../../stringio/r4/v3.0.gemfile' -eval_gemfile '../../benchmark/r4/v0.5.gemfile' +eval_gemfile "../../erb/r4/v5.0.gemfile" +eval_gemfile "../../mutex_m/r4/v0.3.gemfile" +eval_gemfile "../../stringio/r4/v3.0.gemfile" +eval_gemfile "../../benchmark/r4/v0.5.gemfile" +eval_gemfile "../../cgi/r4/v0.5.gemfile" +eval_gemfile "../../webrick/r4/v1.9.gemfile" diff --git a/gems/yaml-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile b/gems/yaml-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile index 91f383c11..d4d5b16c9 100644 --- a/gems/yaml-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile +++ b/gems/yaml-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile @@ -1,4 +1,6 @@ -eval_gemfile '../erb/vHEAD.gemfile' -eval_gemfile '../mutex_m/vHEAD.gemfile' -eval_gemfile '../stringio/vHEAD.gemfile' -eval_gemfile '../benchmark/vHEAD.gemfile' +eval_gemfile "../erb/vHEAD.gemfile" +eval_gemfile "../mutex_m/vHEAD.gemfile" +eval_gemfile "../stringio/vHEAD.gemfile" +eval_gemfile "../benchmark/vHEAD.gemfile" +eval_gemfile "../cgi/vHEAD.gemfile" +eval_gemfile "../webrick/vHEAD.gemfile" From c7cda9c9d4c5cab947427e154eac62cef8f3c99d Mon Sep 17 00:00:00 2001 From: "Peter H. Boling" Date: Tue, 21 Jul 2026 13:53:39 -0600 Subject: [PATCH 130/188] =?UTF-8?q?=F0=9F=8E=A8=20Template=20bootstrap=20b?= =?UTF-8?q?y=20kettle-jem=20v7.1.0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gems/go-merge/.kettle-drift.lock | 268 +--------- gems/go-merge/.structuredmerge/kettle-jem.yml | 53 ++ gems/go-merge/Gemfile | 72 ++- gems/go-merge/Gemfile.lock | 34 +- gems/go-merge/Rakefile | 18 +- gems/go-merge/lib/go/merge/version.rb | 2 +- gems/rbs-merge/Gemfile.lock | 324 +++++++++++- gems/rust-merge/Gemfile.lock | 353 ++++++++++++- gems/toml-merge/Gemfile.lock | 40 +- gems/yaml-merge/.rubocop_gradual.lock | 133 +++-- gems/yaml-merge/Gemfile | 70 ++- gems/yaml-merge/Gemfile.lock | 480 ++++-------------- gems/yaml-merge/Rakefile | 18 +- .../modular/benchmark/r4/v0.5.gemfile | 2 +- .../gemfiles/modular/benchmark/vHEAD.gemfile | 2 +- .../gemfiles/modular/cgi/r4/v0.5.gemfile | 2 +- .../gemfiles/modular/cgi/vHEAD.gemfile | 2 +- .../gemfiles/modular/coverage.gemfile | 6 +- .../gemfiles/modular/coverage_local.gemfile | 42 +- .../yaml-merge/gemfiles/modular/debug.gemfile | 4 +- .../gemfiles/modular/documentation.gemfile | 24 +- .../modular/documentation_local.gemfile | 30 +- .../gemfiles/modular/erb/r2/v3.0.gemfile | 2 +- .../gemfiles/modular/erb/r3/v5.0.gemfile | 2 +- .../gemfiles/modular/erb/r4/v5.0.gemfile | 2 +- .../gemfiles/modular/erb/vHEAD.gemfile | 2 +- .../modular/json/truffleruby_22_3.gemfile | 4 +- .../modular/json/truffleruby_23_0.gemfile | 4 +- .../modular/json/truffleruby_23_1.gemfile | 4 +- .../gemfiles/modular/mutex_m/r2/v0.3.gemfile | 2 +- .../gemfiles/modular/mutex_m/r3/v0.3.gemfile | 2 +- .../gemfiles/modular/mutex_m/r4/v0.3.gemfile | 2 +- .../gemfiles/modular/mutex_m/vHEAD.gemfile | 2 +- .../gemfiles/modular/optional.gemfile | 4 +- .../yaml-merge/gemfiles/modular/rspec.gemfile | 8 +- .../gemfiles/modular/runtime_heads.gemfile | 2 +- .../gemfiles/modular/stringio/r2/v3.0.gemfile | 2 +- .../gemfiles/modular/stringio/r3/v3.0.gemfile | 2 +- .../gemfiles/modular/stringio/r4/v3.0.gemfile | 2 +- .../gemfiles/modular/stringio/vHEAD.gemfile | 2 +- .../yaml-merge/gemfiles/modular/style.gemfile | 24 +- .../gemfiles/modular/style_local.gemfile | 32 +- .../gemfiles/modular/templating.gemfile | 12 +- .../gemfiles/modular/templating_local.gemfile | 44 +- .../gemfiles/modular/webrick/r4/v1.9.gemfile | 2 +- .../gemfiles/modular/webrick/vHEAD.gemfile | 2 +- .../gemfiles/modular/x_std_libs.gemfile | 14 +- .../modular/x_std_libs/r2/libs.gemfile | 6 +- .../modular/x_std_libs/r3/libs.gemfile | 6 +- .../modular/x_std_libs/r4/libs.gemfile | 12 +- .../gemfiles/modular/x_std_libs/vHEAD.gemfile | 12 +- gems/yaml-merge/lib/yaml/merge.rb | 7 +- .../yaml-merge/lib/yaml/merge/smart_merger.rb | 14 +- gems/yaml-merge/lib/yaml/merge/version.rb | 2 +- 54 files changed, 1235 insertions(+), 983 deletions(-) diff --git a/gems/go-merge/.kettle-drift.lock b/gems/go-merge/.kettle-drift.lock index 09df60df7..2ee9dae31 100644 --- a/gems/go-merge/.kettle-drift.lock +++ b/gems/go-merge/.kettle-drift.lock @@ -1,122 +1,10 @@ { - "(direct_sibling_local ||\nENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?)": [ - { - "file": "Gemfile", - "lines": [ - 80, - 120, - 160, - 200, - 240, - 280, - 320, - 360 - ] - } - ], - ".find { |spec| spec.name == 'nomono' }\nnomono_locked = nomono_locked_spec &&": [ - { - "file": "Gemfile", - "lines": [ - 91, - 131, - 171, - 211, - 251, - 291, - 331, - 371 - ] - } - ], - "ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?)\ndirect_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV')": [ - { - "file": "Gemfile", - "lines": [ - 81, - 121, - 161, - 201, - 241, - 281, - 321, - 361 - ] - } - ], - "Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version)\nnomono_activation_requirements = [\"= #{nomono_locked_spec.version}\"] if nomono_locked": [ - { - "file": "Gemfile", - "lines": [ - 93, - 133, - 173, - 213, - 253, - 293, - 333, - 373 - ] - } - ], - "Kernel.send(:gem, 'nomono', *nomono_activation_requirements)\nrequire 'nomono/bundler'": [ - { - "file": "Gemfile", - "lines": [ - 96, - 136, - 176, - 216, - 256, - 296, - 336, - 376 - ] - } - ], - "direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV')\ndirect_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil)": [ - { - "file": "Gemfile", - "lines": [ - 82, - 122, - 162, - 202, - 242, - 282, - 322, - 362 - ] - } - ], "eval_nomono_gems(\ngems: direct_sibling_gems,": [ { "file": "Gemfile", "lines": [ 60, - 100, - 140, - 180, - 220, - 260, - 300, - 340, - 380 - ] - } - ], - "gems: direct_sibling_gems,\nprefix: 'STRUCTUREDMERGE',": [ - { - "file": "Gemfile", - "lines": [ - 101, - 141, - 181, - 221, - 261, - 301, - 341, - 381 + 100 ] } ], @@ -125,29 +13,7 @@ "file": "Gemfile", "lines": [ 43, - 87, - 127, - 167, - 207, - 247, - 287, - 327, - 367 - ] - } - ], - "if direct_sibling_dev_was_set\nENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original": [ - { - "file": "Gemfile", - "lines": [ - 110, - 150, - 190, - 230, - 270, - 310, - 350, - 390 + 87 ] } ], @@ -156,14 +22,7 @@ "file": "Gemfile", "lines": [ 35, - 79, - 119, - 159, - 199, - 239, - 279, - 319, - 359 + 79 ] } ], @@ -172,29 +31,7 @@ "file": "Gemfile", "lines": [ 69, - 109, - 149, - 189, - 229, - 269, - 309, - 349, - 389 - ] - } - ], - "nomono_activation_requirements = nomono_requirements\nnomono_lockfile = File.expand_path('Gemfile.lock', __dir__)": [ - { - "file": "Gemfile", - "lines": [ - 85, - 125, - 165, - 205, - 245, - 285, - 325, - 365 + 109 ] } ], @@ -203,14 +40,7 @@ "file": "Gemfile", "lines": [ 48, - 92, - 132, - 172, - 212, - 252, - 292, - 332, - 372 + 92 ] } ], @@ -219,89 +49,7 @@ "file": "Gemfile", "lines": [ 44, - 88, - 128, - 168, - 208, - 248, - 288, - 328, - 368 - ] - } - ], - "nomono_lockfile = File.expand_path('Gemfile.lock', __dir__)\nif File.file?(nomono_lockfile)": [ - { - "file": "Gemfile", - "lines": [ - 86, - 126, - 166, - 206, - 246, - 286, - 326, - 366 - ] - } - ], - "path_env: 'STRUCTUREDMERGE_DEV',\nroot: %w[src my structuredmerge]": [ - { - "file": "Gemfile", - "lines": [ - 103, - 143, - 183, - 223, - 263, - 303, - 343, - 383 - ] - } - ], - "prefix: 'STRUCTUREDMERGE',\npath_env: 'STRUCTUREDMERGE_DEV',": [ - { - "file": "Gemfile", - "lines": [ - 102, - 142, - 182, - 222, - 262, - 302, - 342, - 382 - ] - } - ], - "require 'nomono/bundler'\nENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local": [ - { - "file": "Gemfile", - "lines": [ - 97, - 137, - 177, - 217, - 257, - 297, - 337, - 377 - ] - } - ], - "rescue LoadError\nwarn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.'": [ - { - "file": "Gemfile", - "lines": [ - 106, - 146, - 186, - 226, - 266, - 306, - 346, - 386 + 88 ] } ], @@ -309,8 +57,8 @@ { "file": "gemfiles/modular/templating_local.gemfile", "lines": [ - 60, - 71 + 55, + 66 ] } ] diff --git a/gems/go-merge/.structuredmerge/kettle-jem.yml b/gems/go-merge/.structuredmerge/kettle-jem.yml index 30b2f752d..8b545db6c 100644 --- a/gems/go-merge/.structuredmerge/kettle-jem.yml +++ b/gems/go-merge/.structuredmerge/kettle-jem.yml @@ -246,6 +246,59 @@ templates: - Gemfile - certs/pboling.pem - tmp/.gitignore + - gemfiles/modular/benchmark/r4/v0.5.gemfile + - gemfiles/modular/benchmark/vHEAD.gemfile + - gemfiles/modular/cgi/r4/v0.5.gemfile + - gemfiles/modular/cgi/vHEAD.gemfile + - gemfiles/modular/coverage.gemfile + - gemfiles/modular/coverage_local.gemfile + - gemfiles/modular/debug.gemfile + - gemfiles/modular/documentation.gemfile + - gemfiles/modular/documentation_local.gemfile + - gemfiles/modular/erb/r2.3/default.gemfile + - gemfiles/modular/erb/r2.6/v2.2.gemfile + - gemfiles/modular/erb/r2/v3.0.gemfile + - gemfiles/modular/erb/r3.1/v4.0.gemfile + - gemfiles/modular/erb/r3/v5.0.gemfile + - gemfiles/modular/erb/r4/v5.0.gemfile + - gemfiles/modular/erb/vHEAD.gemfile + - gemfiles/modular/json/truffleruby_22_3.gemfile + - gemfiles/modular/json/truffleruby_23_0.gemfile + - gemfiles/modular/json/truffleruby_23_1.gemfile + - gemfiles/modular/mutex_m/r2.4/v0.1.gemfile + - gemfiles/modular/mutex_m/r2/v0.3.gemfile + - gemfiles/modular/mutex_m/r3/v0.3.gemfile + - gemfiles/modular/mutex_m/r4/v0.3.gemfile + - gemfiles/modular/mutex_m/vHEAD.gemfile + - gemfiles/modular/optional.gemfile + - gemfiles/modular/recording/r2.3/recording.gemfile + - gemfiles/modular/recording/r2.4/recording.gemfile + - gemfiles/modular/recording/r2.5/recording.gemfile + - gemfiles/modular/recording/r3/recording.gemfile + - gemfiles/modular/recording/r4/recording.gemfile + - gemfiles/modular/recording/vHEAD.gemfile + - gemfiles/modular/rspec.gemfile + - gemfiles/modular/runtime_heads.gemfile + - gemfiles/modular/stringio/r2.4/v0.0.2.gemfile + - gemfiles/modular/stringio/r2/v3.0.gemfile + - gemfiles/modular/stringio/r3/v3.0.gemfile + - gemfiles/modular/stringio/r4/v3.0.gemfile + - gemfiles/modular/stringio/vHEAD.gemfile + - gemfiles/modular/style.gemfile + - gemfiles/modular/style_local.gemfile + - gemfiles/modular/templating.gemfile + - gemfiles/modular/templating_local.gemfile + - gemfiles/modular/webrick/r4/v1.9.gemfile + - gemfiles/modular/webrick/vHEAD.gemfile + - gemfiles/modular/x_std_libs.gemfile + - gemfiles/modular/x_std_libs/r2.3/libs.gemfile + - gemfiles/modular/x_std_libs/r2.4/libs.gemfile + - gemfiles/modular/x_std_libs/r2.6/libs.gemfile + - gemfiles/modular/x_std_libs/r2/libs.gemfile + - gemfiles/modular/x_std_libs/r3.1/libs.gemfile + - gemfiles/modular/x_std_libs/r3/libs.gemfile + - gemfiles/modular/x_std_libs/r4/libs.gemfile + - gemfiles/modular/x_std_libs/vHEAD.gemfile - source: lib/gem/version.rb target: lib/go/merge/version.rb - source: sig/gem.rbs diff --git a/gems/go-merge/Gemfile b/gems/go-merge/Gemfile index a169cd027..2fd98af90 100644 --- a/gems/go-merge/Gemfile +++ b/gems/go-merge/Gemfile @@ -6,7 +6,7 @@ # kettle-jem will then preserve content between those markers across template runs. # kettle-jem:unfreeze -source 'https://gem.coop' +source "https://gem.coop" git_source(:codeberg) { |repo_name| "https://codeberg.org/#{repo_name}" } git_source(:gitlab) { |repo_name| "https://gitlab.com/#{repo_name}" } @@ -19,18 +19,62 @@ git_source(:gitlab) { |repo_name| "https://gitlab.com/#{repo_name}" } gemspec # Local workspace dependency wiring for *_local.gemfile overrides -nomono_requirements = ['~> 1.0', '>= 1.0.8'] -gem 'nomono', *nomono_requirements, require: false # ruby >= 2.2 +nomono_requirements = ["~> 1.0", ">= 1.0.8"] +gem "nomono", *nomono_requirements, require: false # ruby >= 2.2 # Direct sibling dependencies (env-switched via STRUCTUREDMERGE_DEV) direct_sibling_gems = %w[ ast-merge tree_haver ] -direct_sibling_dev = ENV.fetch('STRUCTUREDMERGE_DEV', '') +direct_sibling_dev = ENV.fetch("STRUCTUREDMERGE_DEV", "") direct_sibling_local = !direct_sibling_dev.empty? && !%w[false 0 no off].include?(direct_sibling_dev.downcase) -direct_sibling_templating = ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? +direct_sibling_templating = ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? + +if direct_sibling_gems.any? && + (direct_sibling_local || + ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero?) + direct_sibling_dev_was_set = ENV.key?("STRUCTUREDMERGE_DEV") + direct_sibling_dev_original = ENV.fetch("STRUCTUREDMERGE_DEV", nil) + begin + nomono_activation_requirements = nomono_requirements + nomono_lockfile = File.expand_path("Gemfile.lock", __dir__) + if File.file?(nomono_lockfile) + nomono_locked_spec = Bundler::LockfileParser + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == "nomono" } + nomono_locked = nomono_locked_spec && + Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) + if nomono_locked + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] + end + end + Kernel.send(:gem, "nomono", *nomono_activation_requirements) + require "nomono/bundler" + if direct_sibling_templating && !direct_sibling_local + ENV["STRUCTUREDMERGE_DEV"] = File.expand_path("..", __dir__) + end + + eval_nomono_gems( + gems: direct_sibling_gems, + prefix: "STRUCTUREDMERGE", + path_env: "STRUCTUREDMERGE_DEV", + root: ["src", "my", "structuredmerge"] + ) + rescue LoadError + warn "Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies." + ensure + if direct_sibling_templating && !direct_sibling_local + if direct_sibling_dev_was_set + ENV["STRUCTUREDMERGE_DEV"] = direct_sibling_dev_original + else + ENV.delete("STRUCTUREDMERGE_DEV") + end + end + end +end if direct_sibling_gems.any? && (direct_sibling_local || @@ -73,28 +117,28 @@ if direct_sibling_gems.any? && end # Use released TSLP with the Ruby ABI platform-gem fix. -gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' +gem "tree_sitter_language_pack", "~> 1.13", ">= 1.13.3" # Templating (env-switched: STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local paths) -eval_gemfile 'gemfiles/modular/templating.gemfile' if ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? +eval_gemfile "gemfiles/modular/templating.gemfile" if ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? # Debugging -eval_gemfile 'gemfiles/modular/debug.gemfile' +eval_gemfile "gemfiles/modular/debug.gemfile" # Code Coverage (env-switched: KETTLE_DEV_DEV=true for local paths) -eval_gemfile 'gemfiles/modular/coverage.gemfile' +eval_gemfile "gemfiles/modular/coverage.gemfile" # Linting -eval_gemfile 'gemfiles/modular/style.gemfile' +eval_gemfile "gemfiles/modular/style.gemfile" # Documentation -eval_gemfile 'gemfiles/modular/documentation.gemfile' +eval_gemfile "gemfiles/modular/documentation.gemfile" # Optional -eval_gemfile 'gemfiles/modular/optional.gemfile' +eval_gemfile "gemfiles/modular/optional.gemfile" ### Std Lib Extracted Gems -eval_gemfile 'gemfiles/modular/x_std_libs.gemfile' +eval_gemfile "gemfiles/modular/x_std_libs.gemfile" # See unlocked_deps appraisal for more details on irb inclusion -gem 'irb', '~> 1.17' # ruby >= 2.7 +gem "irb", "~> 1.17" # ruby >= 2.7 diff --git a/gems/go-merge/Gemfile.lock b/gems/go-merge/Gemfile.lock index e15493336..8e7e9d4e4 100644 --- a/gems/go-merge/Gemfile.lock +++ b/gems/go-merge/Gemfile.lock @@ -284,12 +284,7 @@ GEM thor (~> 1.0) citrus (3.0.2) cmdparse (3.0.7) - commonmarker (2.9.0-aarch64-linux) - commonmarker (2.9.0-aarch64-linux-musl) - commonmarker (2.9.0-arm64-darwin) - commonmarker (2.9.0-x86_64-darwin) commonmarker (2.9.0-x86_64-linux) - commonmarker (2.9.0-x86_64-linux-musl) concurrent-ruby (1.3.7) date (3.5.1) debug (1.11.1) @@ -391,13 +386,11 @@ GEM racc (~> 1.4) nokogiri (1.19.4-arm64-darwin) racc (~> 1.4) - nokogiri (1.19.4-x86_64-darwin) - racc (~> 1.4) nokogiri (1.19.4-x86_64-linux-gnu) racc (~> 1.4) nokogiri (1.19.4-x86_64-linux-musl) racc (~> 1.4) - nomono (1.0.8) + nomono (1.0.9) openssl (4.0.2) ostruct (0.6.3) parallel (1.28.0) @@ -583,8 +576,6 @@ GEM sorbet-runtime (~> 0.5) tree_sitter_language_pack (1.13.3-arm64-darwin) sorbet-runtime (~> 0.5) - tree_sitter_language_pack (1.13.3-x86_64-darwin) - sorbet-runtime (~> 0.5) tree_sitter_language_pack (1.13.3-x86_64-linux) sorbet-runtime (~> 0.5) tsort (0.2.0) @@ -626,7 +617,7 @@ PLATFORMS aarch64-linux-gnu aarch64-linux-musl arm64-darwin - x86_64-darwin + x86_64-linux x86_64-linux-gnu x86_64-linux-musl @@ -721,12 +712,7 @@ CHECKSUMS citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 - commonmarker (2.9.0-aarch64-linux) sha256=e2b4aadb9a2cfa4e206582641ce3a49465549ac1ed4c289fdd63b78d8f24579c - commonmarker (2.9.0-aarch64-linux-musl) sha256=1cf4d2821f2a7e64945f1ed7c4eeced586fdb27ea7fe7337788802cf8f57cfca - commonmarker (2.9.0-arm64-darwin) sha256=1748dbfa4f5813b0d2a14bb4bbfa65a4ec293aa1c825016d60029ee0e132b046 - commonmarker (2.9.0-x86_64-darwin) sha256=0a9914ccfd2f5d2a59c7bd0dda4fe90eb084cf513b477e499008e09ec9d6edd6 - commonmarker (2.9.0-x86_64-linux) sha256=8cfe92970eef585a19ddf6613224b91cab64d6029834661bda801f877c9c7f43 - commonmarker (2.9.0-x86_64-linux-musl) sha256=293921398b839f79ceaf55010e061357e34f053822c3b003cd0be6686176335e + commonmarker (2.9.0-x86_64-linux) commonmarker-merge (7.1.0) concurrent-ruby (1.3.7) sha256=4412caec3a5ea2e5fdc52076724c071a81f2c0593d83b2ac8cbb8ca63b3151b0 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 @@ -755,7 +741,7 @@ CHECKSUMS json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 json-merge (7.1.0) kettle-dev (2.3.7) sha256=eb370113cd030d03cbe2d33b31c99858951017e5ad21a17e9ed89dc3770028ee - kettle-drift (1.0.6) sha256=46eda08fa4411d1f3c6682a95eef1c9df4e94611b3949f49d4c7b43c0ed356a3 + kettle-drift (1.0.6) kettle-jem (7.1.0) kettle-rb (0.1.4) sha256=9cef7ce4f7021666b7222292f29051e51eaf042e8a5db11f3f4dd72f74243fc1 kettle-soup-cover (1.1.3) sha256=a373827da22a7131d093afd32945e5b7d7a10a01ebfdded8fd2cb8230d69c8ad @@ -767,16 +753,15 @@ CHECKSUMS lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 markdown-merge (7.1.0) - markly (0.16.0) sha256=6f70d79e385b1efc9e171f74c81628826259039fe6c778e03c3924c71dac5511 + markly (0.16.0) markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-aarch64-linux-gnu) sha256=1269fb644a6de405057a53dd5c762b1209b43ca7424f839454d3dbc677c31a8f nokogiri (1.19.4-aarch64-linux-musl) sha256=35c65b9ce72b3bb03207bdbe7067915019dc18c1b9b59139684bd6690fdd01af nokogiri (1.19.4-arm64-darwin) sha256=a46db9853286e6597b36ebc6953817d15acf3a299583eb3f89fdc6f91dd63527 - nokogiri (1.19.4-x86_64-darwin) sha256=7fd17057d3e1f00e9954a74b3cd76595d3d4a5ef233b7ed9599047c204f70551 nokogiri (1.19.4-x86_64-linux-gnu) sha256=379fae440b28915e3f19d752ce2dcf8465ed2b2fbefd2a7ca0dd497bc981a06a nokogiri (1.19.4-x86_64-linux-musl) sha256=17dfb7c1fa194ae02fbf7c51a7afc8d278045ab3fdacfd86f91d02d7b274470b - nomono (1.0.8) sha256=bf4b9b426cbf216ab17b70db474f691b8ae1f1e29de8db4b0ecd405e6e7e1c80 + nomono (1.0.9) openssl (4.0.2) sha256=1037ad2868ae58df9ad917891c0c0f9815a1172f6846d4bcdd508e4c2ee747c2 ostruct (0.6.3) sha256=95a2ed4a4bd1d190784e666b47b2d3f078e4a9efda2fccf18f84ddc6538ed912 parallel (1.28.0) sha256=33e6de1484baf2524792d178b0913fc8eb94c628d6cfe45599ad4458c638c970 @@ -829,7 +814,7 @@ CHECKSUMS ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 rust-merge (7.1.0) - service_actor (3.9.4) sha256=e63b523630b9a7e62959b2a90113b08d2565b5de9c148557b281ef847c9539ce + service_actor (3.9.4) silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (0.22.0) sha256=fe2622c7834ff23b98066bb0a854284b2729a569ac659f82621fc22ef36213a5 simplecov-cobertura (3.2.0) sha256=70d702658677fcb20e5aceb6915ccf8bc62ff2ccd38b62b3ad5c9db5c0888740 @@ -852,13 +837,12 @@ CHECKSUMS timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.4) sha256=33b926958f504525bba3ed511ab66fbcbf8ef30390815e931436b30f27ffcad0 - toml (0.3.0) sha256=0a91d0f76a9036e84e44f95693b12f58d358c1df3ac8e3b5271f2056ecc6e4b9 + toml (0.3.0) toml-merge (7.1.0) - toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 + toml-rb (4.2.0) tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-aarch64-linux) sha256=55ffc7c87868cb45658338363d9eba51b4a8b0259aa88e4de368d2bd1d52fea4 tree_sitter_language_pack (1.13.3-arm64-darwin) sha256=bc2498db605f212a1dbd2465ed3f65190d7da786f6ed5d30fcf958121aeb4a5c - tree_sitter_language_pack (1.13.3-x86_64-darwin) sha256=061f7da6e1cc4ba936fad436ee0653d7dfdfa4aa879cf555403e3aa373d43966 tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 diff --git a/gems/go-merge/Rakefile b/gems/go-merge/Rakefile index f0aa98d5f..f7fe74fab 100644 --- a/gems/go-merge/Rakefile +++ b/gems/go-merge/Rakefile @@ -130,23 +130,23 @@ end ### DUPLICATE DRIFT TASKS begin - require 'kettle/drift' + require "kettle/drift" Kettle::Drift.install_tasks rescue LoadError - desc('(stub) kettle:drift:check is unavailable') - task('kettle:drift:check') do + desc("(stub) kettle:drift:check is unavailable") + task("kettle:drift:check") do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc('(stub) kettle:drift:update is unavailable') - task('kettle:drift:update') do + desc("(stub) kettle:drift:update is unavailable") + task("kettle:drift:update") do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc('(stub) kettle:drift:force_update is unavailable') - task('kettle:drift:force_update') do + desc("(stub) kettle:drift:force_update is unavailable") + task("kettle:drift:force_update") do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc('(stub) kettle:drift is unavailable') - task('kettle:drift' => 'kettle:drift:update') + desc("(stub) kettle:drift is unavailable") + task("kettle:drift" => "kettle:drift:update") end ### TEMPLATING TASKS diff --git a/gems/go-merge/lib/go/merge/version.rb b/gems/go-merge/lib/go/merge/version.rb index d576fba8a..7a12d28aa 100644 --- a/gems/go-merge/lib/go/merge/version.rb +++ b/gems/go-merge/lib/go/merge/version.rb @@ -3,7 +3,7 @@ module Go module Merge module Version - VERSION = '7.1.0' + VERSION = "7.1.0" end VERSION = Version::VERSION # Traditional Constant Location end diff --git a/gems/rbs-merge/Gemfile.lock b/gems/rbs-merge/Gemfile.lock index b2c7da8b7..a43cadefc 100644 --- a/gems/rbs-merge/Gemfile.lock +++ b/gems/rbs-merge/Gemfile.lock @@ -8,7 +8,39 @@ PATH version_gem (~> 1.1, >= 1.1.14) PATH - remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/ast-merge + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly + specs: + ast-crispr-markdown-markly (7.1.0) + ast-crispr (= 7.1.0) + markly-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism + specs: + ast-crispr-ruby-prism (7.1.0) + ast-crispr (= 7.1.0) + prism-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr + specs: + ast-crispr (7.1.0) + ast-merge (= 7.1.0) + service_actor (~> 3.9) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git + specs: + ast-merge-git (7.1.0) + ast-merge (= 7.1.0) + json-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge specs: ast-merge (7.1.0) benchmark @@ -17,7 +49,192 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/tree_haver + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template + specs: + ast-template (7.1.0) + ast-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge + specs: + bash-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge + specs: + binary-merge (7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge + specs: + citrus-toml-merge (7.1.0) + toml-merge (= 7.1.0) + toml-rb (~> 4.1) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge + specs: + commonmarker-merge (7.1.0) + commonmarker (~> 2.2) + markdown-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge + specs: + dotenv-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge + specs: + go-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge + specs: + json-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem + specs: + kettle-jem (7.1.0) + addressable (>= 2.8, < 3) + ast-crispr-markdown-markly (= 7.1.0) + ast-crispr-ruby-prism (= 7.1.0) + ast-merge (= 7.1.0) + bash-merge (= 7.1.0) + citrus-toml-merge (= 7.1.0) + commonmarker-merge (= 7.1.0) + dotenv-merge (= 7.1.0) + json-merge (= 7.1.0) + kettle-dev (~> 2.3, >= 2.3.5) + kettle-rb (~> 0.1, >= 0.1.4) + kramdown-merge (= 7.1.0) + markdown-merge (= 7.1.0) + markly-merge (= 7.1.0) + prism-merge (= 7.1.0) + psych-merge (= 7.1.0) + rbs (>= 3.10) + rbs-merge (= 7.1.0) + ruby-merge (= 7.1.0) + token-resolver (~> 2.0, >= 2.0.4) + toml-merge (= 7.1.0) + toml-rb (~> 4.2) + tree_haver (= 7.1.0) + yaml-merge (= 7.1.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge + specs: + kramdown-merge (7.1.0) + kramdown (~> 2.5) + markdown-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge + specs: + markdown-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge + specs: + markly-merge (7.1.0) + markdown-merge (= 7.1.0) + markly (~> 0.9) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge + specs: + parslet-toml-merge (7.1.0) + toml (~> 0.3) + toml-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge + specs: + plain-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge + specs: + prism-merge (7.1.0) + prism (~> 1.6) + ruby-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge + specs: + psych-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + yaml-merge (= 7.1.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge + specs: + ruby-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge + specs: + rust-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb + specs: + smorg-rb (7.1.0) + ast-merge (= 7.1.0) + ast-merge-git (= 7.1.0) + go-merge (= 7.1.0) + json-merge (= 7.1.0) + kettle-jem (= 7.1.0) + markly-merge (= 7.1.0) + plain-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge + specs: + toml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver specs: tree_haver (7.1.0) citrus (~> 3.0) @@ -25,6 +242,29 @@ PATH tree_sitter_language_pack (>= 1.13.2, < 2.0) version_gem (~> 1.1, >= 1.1.9) +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge + specs: + typescript-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge + specs: + yaml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge + specs: + zip-merge (7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + GEM remote: https://gem.coop/ specs: @@ -49,6 +289,11 @@ GEM cgi (0.5.2) citrus (3.0.2) cmdparse (3.0.7) + commonmarker (2.9.0-aarch64-linux) + commonmarker (2.9.0-aarch64-linux-musl) + commonmarker (2.9.0-arm64-darwin) + commonmarker (2.9.0-x86_64-linux) + commonmarker (2.9.0-x86_64-linux-musl) concurrent-ruby (1.3.8) date (3.5.1) debug (1.11.1) @@ -111,6 +356,8 @@ GEM kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) + kettle-drift (1.0.6) + version_gem (~> 1.1, >= 1.1.14) kettle-rb (0.1.5) kettle-soup-cover (3.0.4) kettle-wash (~> 0.1, >= 0.1.0) @@ -139,6 +386,7 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) + markly (0.16.0) mutex_m (0.3.0) nokogiri (1.19.4-aarch64-linux-gnu) racc (~> 1.4) @@ -301,6 +549,8 @@ GEM ruby-progressbar (1.13.0) ruby_engine (2.0.3) ruby_version (1.0.3) + service_actor (3.9.4) + zeitwerk (>= 1.0) silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) @@ -355,6 +605,11 @@ GEM token-resolver (2.0.5) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.14) + toml (0.3.0) + parslet (>= 1.8.0, < 3.0.0) + toml-rb (4.2.0) + citrus (~> 3.0, > 3.0) + racc (~> 1.7) tree_sitter_language_pack (1.13.3-aarch64-linux) sorbet-runtime (~> 0.5) tree_sitter_language_pack (1.13.3-arm64-darwin) @@ -409,22 +664,43 @@ DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.2, >= 3.2.0) appraisal2-rubocop (~> 1.0, >= 1.0.0) + ast-crispr! + ast-crispr-markdown-markly! + ast-crispr-ruby-prism! ast-merge! + ast-merge-git! + ast-template! + bash-merge! benchmark (~> 0.5, >= 0.5.0) + binary-merge! bundler-audit (~> 0.9.3) cgi (~> 0.5) + citrus-toml-merge! + commonmarker-merge! debug (>= 1.1) + dotenv-merge! erb (~> 6.0, >= 6.0.6) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.4) + go-merge! irb (~> 1.17) + json-merge! kettle-dev (~> 2.3, >= 2.3.7) + kettle-drift (~> 1.0, >= 1.0.6) + kettle-jem! kettle-soup-cover (~> 3.0, >= 3.0.3) kettle-test (~> 2.0, >= 2.0.12) kramdown (~> 2.5, >= 2.5.2) + kramdown-merge! kramdown-parser-gfm (~> 1.1) + markdown-merge! + markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) + parslet-toml-merge! + plain-merge! + prism-merge! + psych-merge! rake (~> 13.0) rbs-merge! rdoc (~> 6.11) @@ -437,21 +713,28 @@ DEPENDENCIES rubocop-on-rbs (~> 2.0, >= 2.0.0) rubocop-packaging (~> 0.6, >= 0.6.0) rubocop-ruby3_2 (~> 3.0, >= 3.0.6) + ruby-merge! ruby-progressbar (~> 1.13) + rust-merge! + smorg-rb! standard (~> 1.56, >= 1.56.0) stone_checksums (~> 1.0, >= 1.0.6) stringio (>= 3.0) + toml-merge! tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) turbo_tests2 (~> 3.2, >= 3.2.0) + typescript-merge! webrick (~> 1.9) yaml-converter (~> 0.2, >= 0.2.3) + yaml-merge! yard (~> 0.9, >= 0.9.45) yard-fence (~> 0.9, >= 0.9.6) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) yard-timekeeper (~> 0.2, >= 0.2.4) yard-yaml (~> 0.2, >= 0.2.3) + zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af @@ -459,20 +742,35 @@ CHECKSUMS appraisal2 (3.2.0) sha256=ccd0b767ac4060cd7af6d16747459b6990f49c39c7b4fb1f7d1146b1e97c492f appraisal2-rubocop (1.0.0) sha256=b71410fbb014befda5340605a605b7f6f3f012739baf0acc5b4351b592c3258d ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 + ast-crispr (7.1.0) + ast-crispr-markdown-markly (7.1.0) + ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) + ast-merge-git (7.1.0) + ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 + bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd + binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 + citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 + commonmarker (2.9.0-aarch64-linux) sha256=e2b4aadb9a2cfa4e206582641ce3a49465549ac1ed4c289fdd63b78d8f24579c + commonmarker (2.9.0-aarch64-linux-musl) sha256=1cf4d2821f2a7e64945f1ed7c4eeced586fdb27ea7fe7337788802cf8f57cfca + commonmarker (2.9.0-arm64-darwin) sha256=1748dbfa4f5813b0d2a14bb4bbfa65a4ec293aa1c825016d60029ee0e132b046 + commonmarker (2.9.0-x86_64-linux) sha256=8cfe92970eef585a19ddf6613224b91cab64d6029834661bda801f877c9c7f43 + commonmarker (2.9.0-x86_64-linux-musl) sha256=293921398b839f79ceaf55010e061357e34f053822c3b003cd0be6686176335e + commonmarker-merge (7.1.0) concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 + dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -485,20 +783,28 @@ CHECKSUMS gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f + go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 + json-merge (7.1.0) kettle-dev (2.3.8) sha256=9d716ff21c660a730cb4e8d41e2e2f0630a28167a354b6e2924e242102aef72c + kettle-drift (1.0.6) sha256=46eda08fa4411d1f3c6682a95eef1c9df4e94611b3949f49d4c7b43c0ed356a3 + kettle-jem (7.1.0) kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f kettle-soup-cover (3.0.4) kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa + kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 + markdown-merge (7.1.0) + markly (0.16.0) sha256=6f70d79e385b1efc9e171f74c81628826259039fe6c778e03c3924c71dac5511 + markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-aarch64-linux-gnu) sha256=1269fb644a6de405057a53dd5c762b1209b43ca7424f839454d3dbc677c31a8f nokogiri (1.19.4-aarch64-linux-musl) sha256=35c65b9ce72b3bb03207bdbe7067915019dc18c1b9b59139684bd6690fdd01af @@ -512,10 +818,14 @@ CHECKSUMS parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 + parslet-toml-merge (7.1.0) + plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 + prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 + psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a @@ -556,15 +866,19 @@ CHECKSUMS rubocop-rspec_rails (2.32.0) sha256=4a0d641c72f6ebb957534f539d9d0a62c47abd8ce0d0aeee1ef4701e892a9100 rubocop-ruby3_2 (3.0.7) sha256=f53dd6d286fb05186214fc6ec116783e7f837030918e8931c05de773e98f8466 rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 + ruby-merge (7.1.0) ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 + rust-merge (7.1.0) + service_actor (3.9.4) sha256=e63b523630b9a7e62959b2a90113b08d2565b5de9c148557b281ef847c9539ce silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed + smorg-rb (7.1.0) sorbet-runtime (0.6.13347) sha256=54e7221d9f4b63f58aec79f3043752a9ba7810347c6ae0d903531591cc2d5f01 standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b @@ -579,17 +893,22 @@ CHECKSUMS timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.5) sha256=b852f924287ffb58a440856e862b056c8ad97e74b4b2526cee43e0771f40c25c + toml (0.3.0) sha256=0a91d0f76a9036e84e44f95693b12f58d358c1df3ac8e3b5271f2056ecc6e4b9 + toml-merge (7.1.0) + toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-aarch64-linux) sha256=55ffc7c87868cb45658338363d9eba51b4a8b0259aa88e4de368d2bd1d52fea4 tree_sitter_language_pack (1.13.3-arm64-darwin) sha256=bc2498db605f212a1dbd2465ed3f65190d7da786f6ed5d30fcf958121aeb4a5c tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 + typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 webrick (1.9.2) sha256=beb4a15fc474defed24a3bda4ffd88a490d517c9e4e6118c3edce59e45864131 yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 + yaml-merge (7.1.0) yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd @@ -597,6 +916,7 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 + zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH diff --git a/gems/rust-merge/Gemfile.lock b/gems/rust-merge/Gemfile.lock index 5d8c6b141..01b54bdec 100644 --- a/gems/rust-merge/Gemfile.lock +++ b/gems/rust-merge/Gemfile.lock @@ -6,6 +6,265 @@ PATH tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly + specs: + ast-crispr-markdown-markly (7.1.0) + ast-crispr (= 7.1.0) + markly-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism + specs: + ast-crispr-ruby-prism (7.1.0) + ast-crispr (= 7.1.0) + prism-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr + specs: + ast-crispr (7.1.0) + ast-merge (= 7.1.0) + service_actor (~> 3.9) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git + specs: + ast-merge-git (7.1.0) + ast-merge (= 7.1.0) + json-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge + specs: + ast-merge (7.1.0) + benchmark + token-resolver (~> 2.0, >= 2.0.4) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template + specs: + ast-template (7.1.0) + ast-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge + specs: + bash-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge + specs: + binary-merge (7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge + specs: + citrus-toml-merge (7.1.0) + toml-merge (= 7.1.0) + toml-rb (~> 4.1) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge + specs: + commonmarker-merge (7.1.0) + commonmarker (~> 2.2) + markdown-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge + specs: + dotenv-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge + specs: + go-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge + specs: + json-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem + specs: + kettle-jem (7.1.0) + addressable (>= 2.8, < 3) + ast-crispr-markdown-markly (= 7.1.0) + ast-crispr-ruby-prism (= 7.1.0) + ast-merge (= 7.1.0) + bash-merge (= 7.1.0) + citrus-toml-merge (= 7.1.0) + commonmarker-merge (= 7.1.0) + dotenv-merge (= 7.1.0) + json-merge (= 7.1.0) + kettle-dev (~> 2.3, >= 2.3.5) + kettle-rb (~> 0.1, >= 0.1.4) + kramdown-merge (= 7.1.0) + markdown-merge (= 7.1.0) + markly-merge (= 7.1.0) + prism-merge (= 7.1.0) + psych-merge (= 7.1.0) + rbs (>= 3.10) + rbs-merge (= 7.1.0) + ruby-merge (= 7.1.0) + token-resolver (~> 2.0, >= 2.0.4) + toml-merge (= 7.1.0) + toml-rb (~> 4.2) + tree_haver (= 7.1.0) + yaml-merge (= 7.1.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge + specs: + kramdown-merge (7.1.0) + kramdown (~> 2.5) + markdown-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge + specs: + markdown-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge + specs: + markly-merge (7.1.0) + markdown-merge (= 7.1.0) + markly (~> 0.9) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge + specs: + parslet-toml-merge (7.1.0) + toml (~> 0.3) + toml-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge + specs: + plain-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge + specs: + prism-merge (7.1.0) + prism (~> 1.6) + ruby-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge + specs: + psych-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + yaml-merge (= 7.1.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge + specs: + rbs-merge (7.1.0) + ast-merge (= 7.1.0) + rbs (>= 3.10) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge + specs: + ruby-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb + specs: + smorg-rb (7.1.0) + ast-merge (= 7.1.0) + ast-merge-git (= 7.1.0) + go-merge (= 7.1.0) + json-merge (= 7.1.0) + kettle-jem (= 7.1.0) + markly-merge (= 7.1.0) + plain-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge + specs: + toml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver + specs: + tree_haver (7.1.0) + citrus (~> 3.0) + parslet (~> 2.0) + tree_sitter_language_pack (>= 1.13.2, < 2.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge + specs: + typescript-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge + specs: + yaml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge + specs: + zip-merge (7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + GEM remote: https://gem.coop/ specs: @@ -17,11 +276,6 @@ GEM rake (>= 10) thor (>= 0.14) ast (2.4.3) - ast-merge (7.1.0) - benchmark - token-resolver (~> 2.0, >= 2.0.4) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) backports (3.25.3) benchmark (0.5.0) bigdecimal (4.1.2) @@ -30,6 +284,12 @@ GEM thor (~> 1.0) citrus (3.0.2) cmdparse (3.0.7) + commonmarker (2.9.0-aarch64-linux) + commonmarker (2.9.0-aarch64-linux-musl) + commonmarker (2.9.0-arm64-darwin) + commonmarker (2.9.0-x86_64-darwin) + commonmarker (2.9.0-x86_64-linux) + commonmarker (2.9.0-x86_64-linux-musl) concurrent-ruby (1.3.7) date (3.5.1) debug (1.11.1) @@ -93,6 +353,8 @@ GEM kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) + kettle-drift (1.0.6) + version_gem (~> 1.1, >= 1.1.14) kettle-rb (0.1.4) kettle-soup-cover (1.1.3) simplecov (~> 0.22) @@ -121,6 +383,7 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) + markly (0.16.0) mutex_m (0.3.0) nokogiri (1.19.4-aarch64-linux-gnu) racc (~> 1.4) @@ -257,6 +520,8 @@ GEM ruby-progressbar (1.13.0) ruby_engine (2.0.3) ruby_version (1.0.3) + service_actor (3.9.4) + zeitwerk (>= 1.0) silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) @@ -309,11 +574,11 @@ GEM token-resolver (2.0.4) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.13) - tree_haver (7.1.0) - citrus (~> 3.0) - parslet (~> 2.0) - tree_sitter_language_pack (>= 1.13.2, < 2.0) - version_gem (~> 1.1, >= 1.1.9) + toml (0.3.0) + parslet (>= 1.8.0, < 3.0.0) + toml-rb (4.2.0) + citrus (~> 3.0, > 3.0) + racc (~> 1.7) tree_sitter_language_pack (1.13.3-aarch64-linux) sorbet-runtime (~> 0.5) tree_sitter_language_pack (1.13.3-arm64-darwin) @@ -368,22 +633,45 @@ PLATFORMS DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) + ast-crispr! + ast-crispr-markdown-markly! + ast-crispr-ruby-prism! + ast-merge! + ast-merge-git! + ast-template! + bash-merge! benchmark (~> 0.5, >= 0.5.0) + binary-merge! bundler-audit (~> 0.9.3) + citrus-toml-merge! + commonmarker-merge! debug (>= 1.1) + dotenv-merge! erb (~> 6.0, >= 6.0.4) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.0) + go-merge! irb (~> 1.17) + json-merge! kettle-dev (~> 2.0, >= 2.2.25) + kettle-drift (~> 1.0, >= 1.0.5) + kettle-jem! kettle-soup-cover (~> 1.0, >= 1.1.3) kettle-test (~> 2.0, >= 2.0.9) kramdown (~> 2.5, >= 2.5.1) + kramdown-merge! kramdown-parser-gfm (~> 1.1) + markdown-merge! + markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) + parslet-toml-merge! + plain-merge! + prism-merge! + psych-merge! rake (~> 13.0) rbs (>= 3.0) + rbs-merge! rdoc (~> 6.11) reek (~> 6.5) require_bench (~> 1.0, >= 1.0.4) @@ -392,32 +680,54 @@ DEPENDENCIES rubocop-packaging (~> 0.6, >= 0.6.0) rubocop-rspec (~> 3.6) rubocop-ruby3_2 (~> 3.0.0) + ruby-merge! ruby-progressbar (~> 1.13) rust-merge! + smorg-rb! standard (>= 1.50) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) + toml-merge! + tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) + typescript-merge! yaml-converter (~> 0.1) + yaml-merge! yard (~> 0.9, >= 0.9.44) yard-fence (~> 0.9, >= 0.9.1) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) yard-timekeeper (~> 0.1) yard-yaml (~> 0.1, >= 0.1.2) + zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af ansi (1.6.0) sha256=ac9ea0c0ea8d32fb4e271348e609963ac78882f34b73836c2a02b3622e666658 appraisal2 (3.2.0) sha256=ccd0b767ac4060cd7af6d16747459b6990f49c39c7b4fb1f7d1146b1e97c492f ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 + ast-crispr (7.1.0) + ast-crispr-markdown-markly (7.1.0) + ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) + ast-merge-git (7.1.0) + ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 + bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd + binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 + citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 + commonmarker (2.9.0-aarch64-linux) sha256=e2b4aadb9a2cfa4e206582641ce3a49465549ac1ed4c289fdd63b78d8f24579c + commonmarker (2.9.0-aarch64-linux-musl) sha256=1cf4d2821f2a7e64945f1ed7c4eeced586fdb27ea7fe7337788802cf8f57cfca + commonmarker (2.9.0-arm64-darwin) sha256=1748dbfa4f5813b0d2a14bb4bbfa65a4ec293aa1c825016d60029ee0e132b046 + commonmarker (2.9.0-x86_64-darwin) sha256=0a9914ccfd2f5d2a59c7bd0dda4fe90eb084cf513b477e499008e09ec9d6edd6 + commonmarker (2.9.0-x86_64-linux) sha256=8cfe92970eef585a19ddf6613224b91cab64d6029834661bda801f877c9c7f43 + commonmarker (2.9.0-x86_64-linux-musl) sha256=293921398b839f79ceaf55010e061357e34f053822c3b003cd0be6686176335e + commonmarker-merge (7.1.0) concurrent-ruby (1.3.7) sha256=4412caec3a5ea2e5fdc52076724c071a81f2c0593d83b2ac8cbb8ca63b3151b0 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 @@ -425,6 +735,7 @@ CHECKSUMS diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 docile (1.4.1) sha256=96159be799bfa73cdb721b840e9802126e4e03dfc26863db73647204c727f21e + dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -437,19 +748,27 @@ CHECKSUMS gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f + go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 + json-merge (7.1.0) kettle-dev (2.3.7) sha256=eb370113cd030d03cbe2d33b31c99858951017e5ad21a17e9ed89dc3770028ee + kettle-drift (1.0.6) sha256=46eda08fa4411d1f3c6682a95eef1c9df4e94611b3949f49d4c7b43c0ed356a3 + kettle-jem (7.1.0) kettle-rb (0.1.4) sha256=9cef7ce4f7021666b7222292f29051e51eaf042e8a5db11f3f4dd72f74243fc1 kettle-soup-cover (1.1.3) sha256=a373827da22a7131d093afd32945e5b7d7a10a01ebfdded8fd2cb8230d69c8ad kettle-test (2.0.11) sha256=c710c90f7ab79d51f9452f0c09f5f90657e7a893f63583855c164d0b1b107ab2 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa + kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 + markdown-merge (7.1.0) + markly (0.16.0) sha256=6f70d79e385b1efc9e171f74c81628826259039fe6c778e03c3924c71dac5511 + markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-aarch64-linux-gnu) sha256=1269fb644a6de405057a53dd5c762b1209b43ca7424f839454d3dbc677c31a8f nokogiri (1.19.4-aarch64-linux-musl) sha256=35c65b9ce72b3bb03207bdbe7067915019dc18c1b9b59139684bd6690fdd01af @@ -464,15 +783,20 @@ CHECKSUMS parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 + parslet-toml-merge (7.1.0) + plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 + prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 + psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 + rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb @@ -500,10 +824,12 @@ CHECKSUMS rubocop-rspec (3.10.2) sha256=0b3e2ecc592cd10ecbf0095bb58d1e357905276e069643523cc19eb7495f65e2 rubocop-ruby3_2 (3.0.7) sha256=f53dd6d286fb05186214fc6ec116783e7f837030918e8931c05de773e98f8466 rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 + ruby-merge (7.1.0) ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 rust-merge (7.1.0) + service_actor (3.9.4) sha256=e63b523630b9a7e62959b2a90113b08d2565b5de9c148557b281ef847c9539ce silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (0.22.0) sha256=fe2622c7834ff23b98066bb0a854284b2729a569ac659f82621fc22ef36213a5 simplecov-cobertura (3.2.0) sha256=70d702658677fcb20e5aceb6915ccf8bc62ff2ccd38b62b3ad5c9db5c0888740 @@ -512,6 +838,7 @@ CHECKSUMS simplecov-lcov (0.9.0) sha256=7a77a31e200a595ed4b0249493056efd0c920601f53d2ef135ca34ee796346cd simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_json_formatter (0.1.4) sha256=529418fbe8de1713ac2b2d612aa3daa56d316975d307244399fa4838c601b428 + smorg-rb (7.1.0) sorbet-runtime (0.6.13347) sha256=54e7221d9f4b63f58aec79f3043752a9ba7810347c6ae0d903531591cc2d5f01 standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b @@ -525,6 +852,9 @@ CHECKSUMS timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.4) sha256=33b926958f504525bba3ed511ab66fbcbf8ef30390815e931436b30f27ffcad0 + toml (0.3.0) sha256=0a91d0f76a9036e84e44f95693b12f58d358c1df3ac8e3b5271f2056ecc6e4b9 + toml-merge (7.1.0) + toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-aarch64-linux) sha256=55ffc7c87868cb45658338363d9eba51b4a8b0259aa88e4de368d2bd1d52fea4 tree_sitter_language_pack (1.13.3-arm64-darwin) sha256=bc2498db605f212a1dbd2465ed3f65190d7da786f6ed5d30fcf958121aeb4a5c @@ -532,10 +862,12 @@ CHECKSUMS tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 + typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 + yaml-merge (7.1.0) yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd @@ -543,6 +875,7 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 + zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH diff --git a/gems/toml-merge/Gemfile.lock b/gems/toml-merge/Gemfile.lock index 4eee50fa4..9c60b485c 100644 --- a/gems/toml-merge/Gemfile.lock +++ b/gems/toml-merge/Gemfile.lock @@ -6,24 +6,6 @@ PATH tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge - specs: - ast-merge (7.1.0) - benchmark - token-resolver (~> 2.0, >= 2.0.4) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver - specs: - tree_haver (7.1.0) - citrus (~> 3.0) - parslet (~> 2.0) - tree_sitter_language_pack (>= 1.13.2, < 2.0) - version_gem (~> 1.1, >= 1.1.9) - GEM remote: https://gem.coop/ specs: @@ -35,6 +17,11 @@ GEM rake (>= 10) thor (>= 0.14) ast (2.4.3) + ast-merge (7.1.0) + benchmark + token-resolver (~> 2.0, >= 2.0.4) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) backports (3.25.3) benchmark (0.5.0) bigdecimal (4.1.2) @@ -141,8 +128,6 @@ GEM racc (~> 1.4) nokogiri (1.19.4-arm64-darwin) racc (~> 1.4) - nokogiri (1.19.4-x86_64-darwin) - racc (~> 1.4) nokogiri (1.19.4-x86_64-linux-gnu) racc (~> 1.4) nokogiri (1.19.4-x86_64-linux-musl) @@ -321,13 +306,16 @@ GEM timecop (>= 0.7, < 1) token-resolver (2.0.4) parslet (~> 2.0) - version_gem (~> 1.1, >= 1.1.13) + version_gem (~> 1.1, >= 1.1.14) + tree_haver (7.1.0) + citrus (~> 3.0) + parslet (~> 2.0) + tree_sitter_language_pack (>= 1.13.2, < 2.0) + version_gem (~> 1.1, >= 1.1.9) tree_sitter_language_pack (1.13.3-aarch64-linux) sorbet-runtime (~> 0.5) tree_sitter_language_pack (1.13.3-arm64-darwin) sorbet-runtime (~> 0.5) - tree_sitter_language_pack (1.13.3-x86_64-darwin) - sorbet-runtime (~> 0.5) tree_sitter_language_pack (1.13.3-x86_64-linux) sorbet-runtime (~> 0.5) tsort (0.2.0) @@ -369,14 +357,13 @@ PLATFORMS aarch64-linux-gnu aarch64-linux-musl arm64-darwin - x86_64-darwin + x86_64-linux x86_64-linux-gnu x86_64-linux-musl DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) - ast-merge! benchmark (~> 0.5, >= 0.5.0) bundler-audit (~> 0.9.3) debug (>= 1.1) @@ -406,7 +393,6 @@ DEPENDENCIES stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) toml-merge! - tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) yaml-converter (~> 0.1) yard (~> 0.9, >= 0.9.44) @@ -464,7 +450,6 @@ CHECKSUMS nokogiri (1.19.4-aarch64-linux-gnu) sha256=1269fb644a6de405057a53dd5c762b1209b43ca7424f839454d3dbc677c31a8f nokogiri (1.19.4-aarch64-linux-musl) sha256=35c65b9ce72b3bb03207bdbe7067915019dc18c1b9b59139684bd6690fdd01af nokogiri (1.19.4-arm64-darwin) sha256=a46db9853286e6597b36ebc6953817d15acf3a299583eb3f89fdc6f91dd63527 - nokogiri (1.19.4-x86_64-darwin) sha256=7fd17057d3e1f00e9954a74b3cd76595d3d4a5ef233b7ed9599047c204f70551 nokogiri (1.19.4-x86_64-linux-gnu) sha256=379fae440b28915e3f19d752ce2dcf8465ed2b2fbefd2a7ca0dd497bc981a06a nokogiri (1.19.4-x86_64-linux-musl) sha256=17dfb7c1fa194ae02fbf7c51a7afc8d278045ab3fdacfd86f91d02d7b274470b nomono (1.0.9) @@ -538,7 +523,6 @@ CHECKSUMS tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-aarch64-linux) sha256=55ffc7c87868cb45658338363d9eba51b4a8b0259aa88e4de368d2bd1d52fea4 tree_sitter_language_pack (1.13.3-arm64-darwin) sha256=bc2498db605f212a1dbd2465ed3f65190d7da786f6ed5d30fcf958121aeb4a5c - tree_sitter_language_pack (1.13.3-x86_64-darwin) sha256=061f7da6e1cc4ba936fad436ee0653d7dfdfa4aa879cf555403e3aa373d43966 tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 diff --git a/gems/yaml-merge/.rubocop_gradual.lock b/gems/yaml-merge/.rubocop_gradual.lock index c264c3689..94564a907 100644 --- a/gems/yaml-merge/.rubocop_gradual.lock +++ b/gems/yaml-merge/.rubocop_gradual.lock @@ -15,13 +15,20 @@ [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] ], + "gemfiles/modular/cgi/r4/v0.5.gemfile:367169322": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/cgi/vHEAD.gemfile:2729540777": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], "gemfiles/modular/erb/r2/v3.0.gemfile:1688285565": [ [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] ], - "gemfiles/modular/erb/r3/v5.0.gemfile:2150258305": [ + "gemfiles/modular/erb/r3/v5.0.gemfile:2394062339": [ [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] ], - "gemfiles/modular/erb/r4/v5.0.gemfile:2150258305": [ + "gemfiles/modular/erb/r4/v5.0.gemfile:2394062339": [ [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] ], "gemfiles/modular/erb/vHEAD.gemfile:981929959": [ @@ -57,6 +64,13 @@ [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] ], + "gemfiles/modular/webrick/r4/v1.9.gemfile:3092661193": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/webrick/vHEAD.gemfile:3867684682": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], "gemfiles/modular/x_std_libs.gemfile:2324400122": [ [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] ], @@ -66,48 +80,97 @@ "gemfiles/modular/x_std_libs/r3/libs.gemfile:4030570297": [ [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] ], - "gemfiles/modular/x_std_libs/r4/libs.gemfile:909736663": [ + "gemfiles/modular/x_std_libs/r4/libs.gemfile:732451732": [ [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] ], - "gemfiles/modular/x_std_libs/vHEAD.gemfile:907917303": [ + "gemfiles/modular/x_std_libs/vHEAD.gemfile:2390363993": [ [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] ], "lib/yaml-merge.rb:2387720316": [ [1, 1, 0, "Naming/FileName: The name of this source file (`yaml-merge.rb`) should use snake_case.", 5381] ], - "lib/yaml/merge.rb:1796884563": [ - [10, 3, 12, "Style/Documentation: Missing top-level documentation comment for `module Yaml::Merge`.", 2866359175], - [10, 3, 14840, "Metrics/ModuleLength: Module has too many lines. [356/100]", 2006289345], - [86, 5, 774, "Metrics/MethodLength: Method has too many lines. [17/10]", 3937655844], - [108, 5, 674, "Metrics/AbcSize: Assignment Branch Condition size for `match_yaml_owners` is too high. [<10, 23, 8> 26.32/17]", 2258573674], - [108, 5, 674, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `match_yaml_owners` is too high. [9/7]", 2258573674], - [108, 5, 674, "Metrics/PerceivedComplexity: Perceived complexity for `match_yaml_owners` is too high. [9/8]", 2258573674], - [132, 5, 1298, "Metrics/AbcSize: Assignment Branch Condition size for `merge_yaml_with_parser` is too high. [<6, 17, 8> 19.72/17]", 3115490450], - [132, 5, 1298, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `merge_yaml_with_parser` is too high. [8/7]", 3115490450], - [132, 5, 1298, "Metrics/MethodLength: Method has too many lines. [29/10]", 3115490450], - [181, 5, 925, "Metrics/AbcSize: Assignment Branch Condition size for `yaml_value_from_tree` is too high. [<2, 20, 10> 22.45/17]", 787182706], - [181, 5, 925, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `yaml_value_from_tree` is too high. [9/7]", 787182706], - [181, 5, 925, "Metrics/MethodLength: Method has too many lines. [21/10]", 787182706], - [238, 5, 685, "Metrics/AbcSize: Assignment Branch Condition size for `yaml_scalar_from_text` is too high. [<1, 21, 12> 24.21/17]", 3123350773], - [238, 5, 685, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `yaml_scalar_from_text` is too high. [12/7]", 3123350773], - [238, 5, 685, "Metrics/MethodLength: Method has too many lines. [11/10]", 3123350773], - [238, 5, 685, "Metrics/PerceivedComplexity: Perceived complexity for `yaml_scalar_from_text` is too high. [12/8]", 3123350773], - [255, 5, 334, "Metrics/MethodLength: Method has too many lines. [12/10]", 732082977], - [271, 5, 857, "Metrics/AbcSize: Assignment Branch Condition size for `validate_yaml_node` is too high. [<8, 20, 8> 22.98/17]", 1513454330], - [271, 5, 857, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `validate_yaml_node` is too high. [8/7]", 1513454330], - [271, 5, 857, "Metrics/MethodLength: Method has too many lines. [17/10]", 1513454330], - [271, 5, 857, "Metrics/PerceivedComplexity: Perceived complexity for `validate_yaml_node` is too high. [9/8]", 1513454330], - [289, 121, 25, "Layout/LineLength: Line is too long. [145/120]", 223655047], - [338, 5, 472, "Metrics/MethodLength: Method has too many lines. [12/10]", 3240975354], - [359, 5, 773, "Metrics/MethodLength: Method has too many lines. [16/10]", 3727949237], - [379, 5, 582, "Metrics/AbcSize: Assignment Branch Condition size for `merge_yaml_mappings` is too high. [<3, 17, 6> 18.28/17]", 3352000353], - [379, 5, 582, "Metrics/MethodLength: Method has too many lines. [11/10]", 3352000353] - ], - "spec/fixtures_integration_spec.rb:679605696": [ - [3, 1, 9328, "Metrics/BlockLength: Block has too many lines. [217/25]", 4279594244], + "lib/yaml/merge.rb:4204023408": [ + [11, 3, 12, "Style/Documentation: Missing top-level documentation comment for `module Yaml::Merge`.", 2866359175], + [11, 3, 17029, "Metrics/ModuleLength: Module has too many lines. [402/100]", 893116110], + [85, 5, 767, "Metrics/AbcSize: Assignment Branch Condition size for `parse_yaml` is too high. [<4, 15, 7> 17.03/17]", 2313256161], + [85, 5, 767, "Metrics/MethodLength: Method has too many lines. [11/10]", 2313256161], + [102, 5, 774, "Metrics/MethodLength: Method has too many lines. [17/10]", 3937655844], + [124, 5, 674, "Metrics/AbcSize: Assignment Branch Condition size for `match_yaml_owners` is too high. [<10, 23, 8> 26.32/17]", 2258573674], + [124, 5, 674, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `match_yaml_owners` is too high. [9/7]", 2258573674], + [124, 5, 674, "Metrics/PerceivedComplexity: Perceived complexity for `match_yaml_owners` is too high. [9/8]", 2258573674], + [150, 5, 1483, "Metrics/AbcSize: Assignment Branch Condition size for `merge_yaml_with_parser` is too high. [<6, 19, 8> 21.47/17]", 1965394059], + [150, 5, 1483, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `merge_yaml_with_parser` is too high. [8/7]", 1965394059], + [150, 5, 1483, "Metrics/MethodLength: Method has too many lines. [36/10]", 1965394059], + [239, 5, 925, "Metrics/AbcSize: Assignment Branch Condition size for `yaml_value_from_tree` is too high. [<2, 20, 10> 22.45/17]", 787182706], + [239, 5, 925, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `yaml_value_from_tree` is too high. [9/7]", 787182706], + [239, 5, 925, "Metrics/MethodLength: Method has too many lines. [21/10]", 787182706], + [296, 5, 685, "Metrics/AbcSize: Assignment Branch Condition size for `yaml_scalar_from_text` is too high. [<1, 21, 12> 24.21/17]", 3123350773], + [296, 5, 685, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `yaml_scalar_from_text` is too high. [12/7]", 3123350773], + [296, 5, 685, "Metrics/MethodLength: Method has too many lines. [11/10]", 3123350773], + [296, 5, 685, "Metrics/PerceivedComplexity: Perceived complexity for `yaml_scalar_from_text` is too high. [12/8]", 3123350773], + [313, 5, 334, "Metrics/MethodLength: Method has too many lines. [12/10]", 732082977], + [329, 5, 857, "Metrics/AbcSize: Assignment Branch Condition size for `validate_yaml_node` is too high. [<8, 20, 8> 22.98/17]", 1513454330], + [329, 5, 857, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `validate_yaml_node` is too high. [8/7]", 1513454330], + [329, 5, 857, "Metrics/MethodLength: Method has too many lines. [17/10]", 1513454330], + [329, 5, 857, "Metrics/PerceivedComplexity: Perceived complexity for `validate_yaml_node` is too high. [9/8]", 1513454330], + [347, 121, 25, "Layout/LineLength: Line is too long. [145/120]", 223655047], + [396, 5, 472, "Metrics/MethodLength: Method has too many lines. [12/10]", 3240975354], + [417, 5, 773, "Metrics/MethodLength: Method has too many lines. [16/10]", 3727949237], + [437, 5, 582, "Metrics/AbcSize: Assignment Branch Condition size for `merge_yaml_mappings` is too high. [<3, 17, 6> 18.28/17]", 3352000353], + [437, 5, 582, "Metrics/MethodLength: Method has too many lines. [11/10]", 3352000353] + ], + "lib/yaml/merge/debug_logger.rb:1199302346": [ + [5, 5, 18, "Style/Documentation: Missing top-level documentation comment for `module Yaml::Merge::DebugLogger`.", 2665994874] + ], + "lib/yaml/merge/emitter.rb:3817962687": [ + [5, 5, 13, "Style/Documentation: Missing top-level documentation comment for `class Yaml::Merge::Emitter`.", 2789937437] + ], + "lib/yaml/merge/file_analysis.rb:1154111653": [ + [5, 5, 18, "Style/Documentation: Missing top-level documentation comment for `class Yaml::Merge::FileAnalysis`.", 1343395007], + [79, 7, 463, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `collect_parse_errors` is too high. [9/7]", 2902547790], + [79, 7, 463, "Metrics/PerceivedComplexity: Perceived complexity for `collect_parse_errors` is too high. [9/8]", 2902547790] + ], + "lib/yaml/merge/merge_result.rb:3354357999": [ + [5, 5, 17, "Style/Documentation: Missing top-level documentation comment for `class Yaml::Merge::MergeResult`.", 1573951962], + [51, 7, 411, "Metrics/MethodLength: Method has too many lines. [11/10]", 722307290] + ], + "lib/yaml/merge/node_wrapper.rb:3183359084": [ + [5, 5, 17, "Style/Documentation: Missing top-level documentation comment for `class Yaml::Merge::NodeWrapper`.", 2253907480], + [5, 5, 3624, "Metrics/ClassLength: Class has too many lines. [113/100]", 315603318], + [131, 7, 628, "Metrics/AbcSize: Assignment Branch Condition size for `scalar_text` is too high. [<4, 16, 7> 17.92/17]", 4064538637], + [131, 7, 628, "Metrics/MethodLength: Method has too many lines. [15/10]", 4064538637] + ], + "lib/yaml/merge/smart_merger.rb:3891369900": [ + [5, 5, 17, "Style/Documentation: Missing top-level documentation comment for `class Yaml::Merge::SmartMerger`.", 497427992], + [53, 7, 14, "Style/Documentation: Missing top-level documentation comment for `class Yaml::Merge::SmartMerger::Resolver`.", 246603789], + [53, 7, 11754, "Metrics/ClassLength: Class has too many lines. [222/100]", 3403485685], + [79, 9, 1732, "Metrics/AbcSize: Assignment Branch Condition size for `merge_node_lists` is too high. [<7, 16, 6> 18.47/17]", 450262146], + [79, 9, 1732, "Metrics/MethodLength: Method has too many lines. [34/10]", 450262146], + [79, 29, 145, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 2477726420], + [126, 9, 2387, "Metrics/AbcSize: Assignment Branch Condition size for `merge_matched_nodes` is too high. [<8, 18, 7> 20.9/17]", 2618134068], + [126, 9, 2387, "Metrics/MethodLength: Method has too many lines. [40/10]", 2618134068], + [126, 32, 186, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [8/5]", 3152212802], + [140, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2087424909], + [142, 121, 18, "Layout/LineLength: Line is too long. [138/120]", 2937407567], + [143, 121, 10, "Layout/LineLength: Line is too long. [130/120]", 3781823699], + [170, 9, 2278, "Metrics/AbcSize: Assignment Branch Condition size for `merge_mapping_pair` is too high. [<14, 22, 7> 27/17]", 1090440619], + [170, 9, 2278, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `merge_mapping_pair` is too high. [8/7]", 1090440619], + [170, 9, 2278, "Metrics/MethodLength: Method has too many lines. [42/10]", 1090440619], + [170, 31, 185, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [8/5]", 445012610], + [219, 42, 238, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [8/5]", 3756071712], + [220, 43, 15, "Lint/UnusedMethodArgument: Unused method argument - `template_owners`.", 4125284088], + [220, 83, 22, "Lint/UnusedMethodArgument: Unused method argument - `template_boundary_line`.", 1490012195], + [297, 9, 520, "Metrics/AbcSize: Assignment Branch Condition size for `emit_container_tail` is too high. [<4, 16, 6> 17.55/17]", 3480636332] + ], + "spec/fixtures_integration_spec.rb:2725675905": [ + [3, 1, 10020, "Metrics/BlockLength: Block has too many lines. [235/25]", 4279594244], [34, 3, 2008, "Metrics/BlockLength: Block has too many lines. [29/25]", 645579110], - [105, 3, 812, "Metrics/BlockLength: Block has too many lines. [27/25]", 1239461839] + [105, 3, 812, "Metrics/BlockLength: Block has too many lines. [27/25]", 1239461839], + [154, 121, 1, "Layout/LineLength: Line is too long. [121/120]", 177610] + ], + "spec/retained_blank_gap_spec.rb:3080228732": [ + [5, 1, 914, "Metrics/BlockLength: Block has too many lines. [33/25]", 2851550009] ], "yaml-merge.gemspec:1565151629": [ [128, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 2821357214], diff --git a/gems/yaml-merge/Gemfile b/gems/yaml-merge/Gemfile index d0e176101..f6f9e7e44 100644 --- a/gems/yaml-merge/Gemfile +++ b/gems/yaml-merge/Gemfile @@ -6,7 +6,7 @@ # kettle-jem will then preserve content between those markers across template runs. # kettle-jem:unfreeze -source "https://gem.coop" +source 'https://gem.coop' git_source(:codeberg) { |repo_name| "https://codeberg.org/#{repo_name}" } git_source(:gitlab) { |repo_name| "https://gitlab.com/#{repo_name}" } @@ -19,58 +19,54 @@ git_source(:gitlab) { |repo_name| "https://gitlab.com/#{repo_name}" } gemspec # Local workspace dependency wiring for *_local.gemfile overrides -nomono_requirements = ["~> 1.0", ">= 1.0.8"] -gem "nomono", *nomono_requirements, require: false # ruby >= 2.2 +nomono_requirements = ['~> 1.0', '>= 1.0.8'] +gem 'nomono', *nomono_requirements, require: false # ruby >= 2.2 # Direct sibling dependencies (env-switched via STRUCTUREDMERGE_DEV) direct_sibling_gems = %w[ ast-merge tree_haver ] -direct_sibling_dev = ENV.fetch("STRUCTUREDMERGE_DEV", "") +direct_sibling_dev = ENV.fetch('STRUCTUREDMERGE_DEV', '') direct_sibling_local = !direct_sibling_dev.empty? && !%w[false 0 no off].include?(direct_sibling_dev.downcase) -direct_sibling_templating = ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? +direct_sibling_templating = ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero?) - direct_sibling_dev_was_set = ENV.key?("STRUCTUREDMERGE_DEV") - direct_sibling_dev_original = ENV.fetch("STRUCTUREDMERGE_DEV", nil) + (direct_sibling_local || + ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) + direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') + direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) begin nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path("Gemfile.lock", __dir__) + nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == "nomono" } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - if nomono_locked - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] - end - end - Kernel.send(:gem, "nomono", *nomono_activation_requirements) - require "nomono/bundler" - if direct_sibling_templating && !direct_sibling_local - ENV["STRUCTUREDMERGE_DEV"] = File.expand_path("..", __dir__) + Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked end + Kernel.send(:gem, 'nomono', *nomono_activation_requirements) + require 'nomono/bundler' + ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local eval_nomono_gems( gems: direct_sibling_gems, - prefix: "STRUCTUREDMERGE", - path_env: "STRUCTUREDMERGE_DEV", - root: ["src", "my", "structuredmerge"] + prefix: 'STRUCTUREDMERGE', + path_env: 'STRUCTUREDMERGE_DEV', + root: %w[src my structuredmerge] ) rescue LoadError - warn "Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies." + warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' ensure if direct_sibling_templating && !direct_sibling_local if direct_sibling_dev_was_set - ENV["STRUCTUREDMERGE_DEV"] = direct_sibling_dev_original + ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original else - ENV.delete("STRUCTUREDMERGE_DEV") + ENV.delete('STRUCTUREDMERGE_DEV') end end end @@ -117,28 +113,28 @@ if direct_sibling_gems.any? && end # Use released TSLP with the Ruby ABI platform-gem fix. -gem "tree_sitter_language_pack", "~> 1.13", ">= 1.13.3" +gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' # Templating (env-switched: STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local paths) -eval_gemfile "gemfiles/modular/templating.gemfile" if ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? +eval_gemfile 'gemfiles/modular/templating.gemfile' if ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? # Debugging -eval_gemfile "gemfiles/modular/debug.gemfile" +eval_gemfile 'gemfiles/modular/debug.gemfile' # Code Coverage (env-switched: KETTLE_DEV_DEV=true for local paths) -eval_gemfile "gemfiles/modular/coverage.gemfile" +eval_gemfile 'gemfiles/modular/coverage.gemfile' # Linting -eval_gemfile "gemfiles/modular/style.gemfile" +eval_gemfile 'gemfiles/modular/style.gemfile' # Documentation -eval_gemfile "gemfiles/modular/documentation.gemfile" +eval_gemfile 'gemfiles/modular/documentation.gemfile' # Optional -eval_gemfile "gemfiles/modular/optional.gemfile" +eval_gemfile 'gemfiles/modular/optional.gemfile' ### Std Lib Extracted Gems -eval_gemfile "gemfiles/modular/x_std_libs.gemfile" +eval_gemfile 'gemfiles/modular/x_std_libs.gemfile' # See unlocked_deps appraisal for more details on irb inclusion -gem "irb", "~> 1.17" # ruby >= 2.7 +gem 'irb', '~> 1.17' # ruby >= 2.7 diff --git a/gems/yaml-merge/Gemfile.lock b/gems/yaml-merge/Gemfile.lock index d8b3f70aa..a604c7df6 100644 --- a/gems/yaml-merge/Gemfile.lock +++ b/gems/yaml-merge/Gemfile.lock @@ -7,39 +7,7 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly - specs: - ast-crispr-markdown-markly (7.1.0) - ast-crispr (= 7.1.0) - markly-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism - specs: - ast-crispr-ruby-prism (7.1.0) - ast-crispr (= 7.1.0) - prism-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr - specs: - ast-crispr (7.1.0) - ast-merge (= 7.1.0) - service_actor (~> 3.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git - specs: - ast-merge-git (7.1.0) - ast-merge (= 7.1.0) - json-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/ast-merge specs: ast-merge (7.1.0) benchmark @@ -48,201 +16,7 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template - specs: - ast-template (7.1.0) - ast-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge - specs: - bash-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge - specs: - binary-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge - specs: - citrus-toml-merge (7.1.0) - toml-merge (= 7.1.0) - toml-rb (~> 4.1) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge - specs: - commonmarker-merge (7.1.0) - commonmarker (~> 2.2) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge - specs: - dotenv-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge - specs: - go-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge - specs: - json-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem - specs: - kettle-jem (7.1.0) - addressable (>= 2.8, < 3) - ast-crispr-markdown-markly (= 7.1.0) - ast-crispr-ruby-prism (= 7.1.0) - ast-merge (= 7.1.0) - bash-merge (= 7.1.0) - citrus-toml-merge (= 7.1.0) - commonmarker-merge (= 7.1.0) - dotenv-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-dev (~> 2.3, >= 2.3.5) - kettle-rb (~> 0.1, >= 0.1.4) - kramdown-merge (= 7.1.0) - markdown-merge (= 7.1.0) - markly-merge (= 7.1.0) - prism-merge (= 7.1.0) - psych-merge (= 7.1.0) - rbs (>= 3.10) - rbs-merge (= 7.1.0) - ruby-merge (= 7.1.0) - token-resolver (~> 2.0, >= 2.0.4) - toml-merge (= 7.1.0) - toml-rb (~> 4.2) - tree_haver (= 7.1.0) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge - specs: - kramdown-merge (7.1.0) - kramdown (~> 2.5) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge - specs: - markdown-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge - specs: - markly-merge (7.1.0) - markdown-merge (= 7.1.0) - markly (~> 0.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge - specs: - parslet-toml-merge (7.1.0) - toml (~> 0.3) - toml-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge - specs: - plain-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge - specs: - prism-merge (7.1.0) - prism (~> 1.6) - ruby-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge - specs: - psych-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge - specs: - rbs-merge (7.1.0) - ast-merge (= 7.1.0) - rbs (>= 3.10) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge - specs: - ruby-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge - specs: - rust-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb - specs: - smorg-rb (7.1.0) - ast-merge (= 7.1.0) - ast-merge-git (= 7.1.0) - go-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-jem (= 7.1.0) - markly-merge (= 7.1.0) - plain-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge - specs: - toml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/tree_haver specs: tree_haver (7.1.0) citrus (~> 3.0) @@ -250,21 +24,6 @@ PATH tree_sitter_language_pack (>= 1.13.2, < 2.0) version_gem (~> 1.1, >= 1.1.9) -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge - specs: - typescript-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge - specs: - zip-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - GEM remote: https://gem.coop/ specs: @@ -275,6 +34,10 @@ GEM bundler (>= 1.17.3) rake (>= 10) thor (>= 0.14) + appraisal2-rubocop (1.0.0) + appraisal2 (>= 3.1.4) + rubocop (>= 1.0) + version_gem (~> 1.1, >= 1.1.14) ast (2.4.3) backports (3.25.3) benchmark (0.5.0) @@ -282,10 +45,10 @@ GEM bundler-audit (0.9.3) bundler (>= 1.2.0) thor (~> 1.0) + cgi (0.5.2) citrus (3.0.2) cmdparse (3.0.7) - commonmarker (2.9.0-x86_64-linux) - concurrent-ruby (1.3.7) + concurrent-ruby (1.3.8) date (3.5.1) debug (1.11.1) irb (~> 1.10) @@ -293,7 +56,6 @@ GEM delegate (0.6.1) diff-lcs (1.6.2) diffy (3.4.4) - docile (1.4.1) dry-configurable (1.4.0) dry-core (~> 1.0) zeitwerk (~> 2.6) @@ -324,7 +86,7 @@ GEM dry-logic (~> 1.4) zeitwerk (~> 2.6) emoji_regex (15.0.0) - erb (6.0.5) + erb (6.0.6) gem_bench (2.0.5) bundler (>= 1.14) version_gem (~> 1.1, >= 1.1.4) @@ -343,24 +105,20 @@ GEM rdoc (>= 4.0.0) reline (>= 0.4.2) json (2.21.1) - kettle-dev (2.3.7) + kettle-dev (2.3.8) emoji_regex (>= 15.0) kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) - kettle-drift (1.0.6) - version_gem (~> 1.1, >= 1.1.14) - kettle-rb (0.1.4) - kettle-soup-cover (1.1.3) - simplecov (~> 0.22) - simplecov-cobertura (~> 3.0) - simplecov-console (~> 0.9, >= 0.9.3) - simplecov-html (~> 0.13, >= 0.13.1) - simplecov-lcov (~> 0.8) + kettle-rb (0.1.5) + kettle-soup-cover (3.0.4) + kettle-wash (~> 0.1, >= 0.1.0) + simplecov (>= 1.0) + simplecov-cobertura (>= 4.0) + simplecov-console (~> 0.9, >= 0.9.5) simplecov-rcov (~> 0.3, >= 0.3.7) - simplecov_json_formatter (~> 0.1, >= 0.1.4) - version_gem (~> 1.1, >= 1.1.9) - kettle-test (2.0.11) + simplecov_lcov_formatter (~> 0.9, >= 0.9.0) + kettle-test (2.0.12) appraisal2 (~> 3.0, >= 3.0.6) backports (~> 3.0) rspec (~> 3.0) @@ -371,6 +129,8 @@ GEM silent_stream (~> 1.0, >= 1.0.12) timecop-rspec (~> 1.0, >= 1.0.3) turbo_tests2 (~> 3.1, >= 3.1.12) + kettle-wash (0.1.1) + version_gem (~> 1.1, >= 1.1.14) kramdown (2.5.2) rexml (>= 3.4.4) kramdown-parser-gfm (1.1.0) @@ -378,7 +138,6 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) - markly (0.16.0) mutex_m (0.3.0) nokogiri (1.19.4-aarch64-linux-gnu) racc (~> 1.4) @@ -466,6 +225,14 @@ GEM rubocop-ast (1.50.0) parser (>= 3.3.7.2) prism (~> 1.7) + rubocop-capybara (2.23.0) + lint_roller (~> 1.1) + rubocop (~> 1.81) + rubocop-env (0.1.0) + rubocop + rubocop-factory_bot (2.28.0) + lint_roller (~> 1.1) + rubocop (~> 1.72, >= 1.72.1) rubocop-gradual (0.4.0) benchmark diff-lcs (>= 1.2.0, < 2.0) @@ -473,13 +240,26 @@ GEM parallel (~> 1.10) rainbow (>= 2.2.2, < 4.0) rubocop (~> 1.0) - rubocop-lts (24.1.0) - rubocop-ruby3_2 (>= 3.0.0, < 4) - standard-rubocop-lts (>= 2.0.2, < 3) - version_gem (>= 1.1.2, < 3) + rubocop-lts (24.2.2) + rubocop-ruby3_2 (~> 3.0, >= 3.0.1) + standard-rubocop-lts (~> 2.0, >= 2.0.3) + version_gem (~> 1.1, >= 1.1.13) + rubocop-lts-rspec (1.0.5) + rubocop (~> 1.84, >= 1.84.2) + rubocop-env (~> 0.1, >= 0.1.0) + rubocop-factory_bot (~> 2.28, >= 2.28.0) + rubocop-rspec (~> 3.9, >= 3.9.0) + rubocop-rspec-extra (~> 0.3, >= 0.3.0) + standard (~> 1.54, >= 1.54.0) + standard-rspec (~> 0.5, >= 0.5.0) + version_gem (~> 1.1, >= 1.1.13) rubocop-md (2.0.4) lint_roller (~> 1.1) rubocop (>= 1.72.1) + rubocop-minitest (0.40.0) + lint_roller (~> 1.1) + rubocop (>= 1.75.0, < 2.0) + rubocop-ast (>= 1.38.0, < 2.0) rubocop-on-rbs (2.0.0) lint_roller (~> 1.1) rbs (~> 4.0) @@ -499,6 +279,13 @@ GEM lint_roller (~> 1.1) regexp_parser (>= 2.0) rubocop (~> 1.86, >= 1.86.2) + rubocop-rspec-extra (0.3.0) + lint_roller (~> 1.1) + rubocop (>= 1.72.1, < 2.0) + rubocop-rspec_rails (2.32.0) + lint_roller (~> 1.1) + rubocop (~> 1.72, >= 1.72.1) + rubocop-rspec (~> 3.5) rubocop-ruby3_2 (3.0.7) rubocop-gradual (~> 0.3, >= 0.3.6) rubocop-md (~> 2.0, >= 2.0.4) @@ -513,27 +300,21 @@ GEM ruby-progressbar (1.13.0) ruby_engine (2.0.3) ruby_version (1.0.3) - service_actor (3.9.4) - zeitwerk (>= 1.0) silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) - simplecov (0.22.0) - docile (~> 1.1) - simplecov-html (~> 0.11) - simplecov_json_formatter (~> 0.1) - simplecov-cobertura (3.2.0) + simplecov (1.0.2) + simplecov-cobertura (4.0.0) rexml - simplecov (~> 0.19) + simplecov (~> 1.0) simplecov-console (0.9.5) ansi simplecov terminal-table - simplecov-html (0.13.2) - simplecov-lcov (0.9.0) simplecov-rcov (0.3.7) simplecov (>= 0.4.1) - simplecov_json_formatter (0.1.4) + simplecov_lcov_formatter (0.9.0) + simplecov (>= 0.18) sorbet-runtime (0.6.13347) standard (1.56.0) language_server-protocol (~> 3.17.0.2) @@ -547,6 +328,12 @@ GEM standard-performance (1.9.0) lint_roller (~> 1.1) rubocop-performance (~> 1.26.0) + standard-rspec (0.5.0) + lint_roller (>= 1.0) + rubocop-capybara (~> 2.23) + rubocop-factory_bot (~> 2.27) + rubocop-rspec (~> 3.9) + rubocop-rspec_rails (~> 2.31) standard-rubocop-lts (2.0.10) standard (~> 1.54, >= 1.54.0) standard-custom (~> 1.0, >= 1.0.2) @@ -564,14 +351,9 @@ GEM delegate (~> 0.1) rspec (~> 3.0) timecop (>= 0.7, < 1) - token-resolver (2.0.4) + token-resolver (2.0.5) parslet (~> 2.0) - version_gem (~> 1.1, >= 1.1.13) - toml (0.3.0) - parslet (>= 1.8.0, < 3.0.0) - toml-rb (4.2.0) - citrus (~> 3.0, > 3.0) - racc (~> 1.7) + version_gem (~> 1.1, >= 1.1.14) tree_sitter_language_pack (1.13.3-aarch64-linux) sorbet-runtime (~> 0.5) tree_sitter_language_pack (1.13.3-arm64-darwin) @@ -587,6 +369,7 @@ GEM unicode-emoji (~> 4.1) unicode-emoji (4.2.0) version_gem (1.1.14) + webrick (1.9.2) yaml-converter (0.2.3) hexapdf (>= 1.8, < 2) kramdown (>= 2.4, < 3) @@ -624,104 +407,71 @@ PLATFORMS DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) - ast-crispr! - ast-crispr-markdown-markly! - ast-crispr-ruby-prism! + appraisal2-rubocop (~> 1.0, >= 1.0.0) ast-merge! - ast-merge-git! - ast-template! - bash-merge! benchmark (~> 0.5, >= 0.5.0) - binary-merge! bundler-audit (~> 0.9.3) - citrus-toml-merge! - commonmarker-merge! + cgi (~> 0.5) debug (>= 1.1) - dotenv-merge! - erb (~> 6.0, >= 6.0.4) + erb (~> 6.0, >= 6.0.6) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.0) - go-merge! irb (~> 1.17) - json-merge! kettle-dev (~> 2.0, >= 2.2.25) - kettle-drift (~> 1.0, >= 1.0.5) - kettle-jem! - kettle-soup-cover (~> 1.0, >= 1.1.3) + kettle-soup-cover (~> 3.0, >= 3.0.3) kettle-test (~> 2.0, >= 2.0.9) - kramdown (~> 2.5, >= 2.5.1) - kramdown-merge! + kramdown (~> 2.5, >= 2.5.2) kramdown-parser-gfm (~> 1.1) - markdown-merge! - markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) - parslet-toml-merge! - plain-merge! - prism-merge! - psych-merge! rake (~> 13.0) rbs (>= 3.0) - rbs-merge! rdoc (~> 6.11) - reek (~> 6.5) + reek (~> 6.5, >= 6.5.0) require_bench (~> 1.0, >= 1.0.4) - rubocop-lts (~> 24.1.0) - rubocop-on-rbs (~> 2.0) + rubocop-gradual (~> 0.4, >= 0.4.0) + rubocop-lts (~> 24.2, >= 24.2.1) + rubocop-lts-rspec (~> 1.0, >= 1.0.5) + rubocop-minitest (~> 0.40, >= 0.40.0) + rubocop-on-rbs (~> 2.0, >= 2.0.0) rubocop-packaging (~> 0.6, >= 0.6.0) - rubocop-rspec (~> 3.6) - rubocop-ruby3_2 (~> 3.0.0) - ruby-merge! + rubocop-ruby3_2 (~> 3.0, >= 3.0.6) ruby-progressbar (~> 1.13) - rust-merge! - smorg-rb! - standard (>= 1.50) + standard (~> 1.56, >= 1.56.0) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) - toml-merge! tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) - typescript-merge! - yaml-converter (~> 0.1) + webrick (~> 1.9) + yaml-converter (~> 0.2, >= 0.2.3) yaml-merge! - yard (~> 0.9, >= 0.9.44) - yard-fence (~> 0.9, >= 0.9.1) + yard (~> 0.9, >= 0.9.45) + yard-fence (~> 0.9, >= 0.9.6) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) - yard-timekeeper (~> 0.1) - yard-yaml (~> 0.1, >= 0.1.2) - zip-merge! + yard-timekeeper (~> 0.2, >= 0.2.4) + yard-yaml (~> 0.2, >= 0.2.3) CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af ansi (1.6.0) sha256=ac9ea0c0ea8d32fb4e271348e609963ac78882f34b73836c2a02b3622e666658 appraisal2 (3.2.0) sha256=ccd0b767ac4060cd7af6d16747459b6990f49c39c7b4fb1f7d1146b1e97c492f + appraisal2-rubocop (1.0.0) sha256=b71410fbb014befda5340605a605b7f6f3f012739baf0acc5b4351b592c3258d ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 - ast-crispr (7.1.0) - ast-crispr-markdown-markly (7.1.0) - ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) - ast-merge-git (7.1.0) - ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 - bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd - binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 + cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 - citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 - commonmarker (2.9.0-x86_64-linux) - commonmarker-merge (7.1.0) - concurrent-ruby (1.3.7) sha256=4412caec3a5ea2e5fdc52076724c071a81f2c0593d83b2ac8cbb8ca63b3151b0 + concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 - docile (1.4.1) sha256=96159be799bfa73cdb721b840e9802126e4e03dfc26863db73647204c727f21e - dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -730,31 +480,24 @@ CHECKSUMS dry-schema (1.16.0) sha256=cd3aaeabc0f1af66ec82a29096d4c4fb92a0a58b9dae29a22b1bbceb78985727 dry-types (1.9.1) sha256=baebeecdb9f8395d6c9d227b62011279440943e3ef2468fe8ccc1ba11467f178 emoji_regex (15.0.0) sha256=a508b2c0bee561169564e0aec96085020c900520d335e5533fd8e78e59493829 - erb (6.0.5) sha256=858e63488cb796c9daba8b6e9ff4b3879c395022049be9a66a8e00980e612eac + erb (6.0.6) sha256=a9b24986700f5bf127c4f297c5403c3ca41b83b0a316c0cd09a096b56e644ae5 gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f - go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 - json-merge (7.1.0) - kettle-dev (2.3.7) sha256=eb370113cd030d03cbe2d33b31c99858951017e5ad21a17e9ed89dc3770028ee - kettle-drift (1.0.6) - kettle-jem (7.1.0) - kettle-rb (0.1.4) sha256=9cef7ce4f7021666b7222292f29051e51eaf042e8a5db11f3f4dd72f74243fc1 - kettle-soup-cover (1.1.3) sha256=a373827da22a7131d093afd32945e5b7d7a10a01ebfdded8fd2cb8230d69c8ad - kettle-test (2.0.11) sha256=c710c90f7ab79d51f9452f0c09f5f90657e7a893f63583855c164d0b1b107ab2 + kettle-dev (2.3.8) sha256=9d716ff21c660a730cb4e8d41e2e2f0630a28167a354b6e2924e242102aef72c + kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f + kettle-soup-cover (3.0.4) + kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 + kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa - kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 - markdown-merge (7.1.0) - markly (0.16.0) - markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-aarch64-linux-gnu) sha256=1269fb644a6de405057a53dd5c762b1209b43ca7424f839454d3dbc677c31a8f nokogiri (1.19.4-aarch64-linux-musl) sha256=35c65b9ce72b3bb03207bdbe7067915019dc18c1b9b59139684bd6690fdd01af @@ -768,20 +511,15 @@ CHECKSUMS parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 - parslet-toml-merge (7.1.0) - plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 - prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 - psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 - rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb @@ -799,35 +537,37 @@ CHECKSUMS rspec_junit_formatter (0.6.0) sha256=40dde674e6ae4e6cc0ff560da25497677e34fefd2338cc467a8972f602b62b15 rubocop (1.88.2) sha256=8def251c90cd955feb4daa3edc0ab56893250c4ce90ef81e6c80c03f9a939bbf rubocop-ast (1.50.0) sha256=b9ca88300da0803ee222ad20cdb30494c0a784eed06fdc35d254b06d662788db + rubocop-capybara (2.23.0) sha256=f9ea1ba3a7561ee8e88cf76fc378ce517ce5327155f305ee7b5c2500e5aee357 + rubocop-env (0.1.0) sha256=5ab9a259e71822bf514c8e900a9b68cc2f74ccc87d5493efcd03213f3068e718 + rubocop-factory_bot (2.28.0) sha256=4b17fc02124444173317e131759d195b0d762844a71a29fe8139c1105d92f0cb rubocop-gradual (0.4.0) sha256=9c7e584e6fef6c2539266a193a4572c970c22f99046fd6b0305bdde6228f96ad - rubocop-lts (24.1.0) sha256=9dcad4db2da2fe2f1f77f98c917d70e7c43eded703da14cd201d4be52a9272aa + rubocop-lts (24.2.2) sha256=be6c745e1bb61daebd6af3cc3227c60f95be9f642a080773cad7df14c5f9f174 + rubocop-lts-rspec (1.0.5) sha256=439552fd27440802cc499889e013bffa28aadc41adae5d4dfff3d984a2a809b4 rubocop-md (2.0.4) sha256=0d076b6b5e99dea2ddc928c4bd702497decb9a8400da7808091e02ebcafcfb93 + rubocop-minitest (0.40.0) sha256=353c698199115f12151144cf0b5a96f69bb9d77b660cf6536df2c4250c672a9d rubocop-on-rbs (2.0.0) sha256=ce74d1b3d5daead19f4b611623656c185821dfc9aed9c7079bb1e5d7d7c464be rubocop-packaging (0.6.0) sha256=fb92bd0fb48e6f8cdb1648d2249b0cd51c2497dcc87340132d22f01edbf558a7 rubocop-performance (1.26.1) sha256=cd19b936ff196df85829d264b522fd4f98b6c89ad271fa52744a8c11b8f71834 rubocop-rake (0.7.1) sha256=3797f2b6810c3e9df7376c26d5f44f3475eda59eb1adc38e6f62ecf027cbae4d rubocop-rspec (3.10.2) sha256=0b3e2ecc592cd10ecbf0095bb58d1e357905276e069643523cc19eb7495f65e2 + rubocop-rspec-extra (0.3.0) sha256=ee4b6484d0332a0d23c4a465eeb607e41888eb3d4ed479f850b9f5212514f787 + rubocop-rspec_rails (2.32.0) sha256=4a0d641c72f6ebb957534f539d9d0a62c47abd8ce0d0aeee1ef4701e892a9100 rubocop-ruby3_2 (3.0.7) sha256=f53dd6d286fb05186214fc6ec116783e7f837030918e8931c05de773e98f8466 rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 - ruby-merge (7.1.0) ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 - rust-merge (7.1.0) - service_actor (3.9.4) silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 - simplecov (0.22.0) sha256=fe2622c7834ff23b98066bb0a854284b2729a569ac659f82621fc22ef36213a5 - simplecov-cobertura (3.2.0) sha256=70d702658677fcb20e5aceb6915ccf8bc62ff2ccd38b62b3ad5c9db5c0888740 + simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 + simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 - simplecov-html (0.13.2) sha256=bd0b8e54e7c2d7685927e8d6286466359b6f16b18cb0df47b508e8d73c777246 - simplecov-lcov (0.9.0) sha256=7a77a31e200a595ed4b0249493056efd0c920601f53d2ef135ca34ee796346cd simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc - simplecov_json_formatter (0.1.4) sha256=529418fbe8de1713ac2b2d612aa3daa56d316975d307244399fa4838c601b428 - smorg-rb (7.1.0) + simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed sorbet-runtime (0.6.13347) sha256=54e7221d9f4b63f58aec79f3043752a9ba7810347c6ae0d903531591cc2d5f01 standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b standard-performance (1.9.0) sha256=49483d31be448292951d80e5e67cdcb576c2502103c7b40aec6f1b6e9c88e3f2 + standard-rspec (0.5.0) sha256=64d396524a65af47f5331b423d8cdd313e0267401647bb7892489ca89dad2973 standard-rubocop-lts (2.0.10) sha256=89708a505b7d8b24d2ac399a7520fcb9e764abc2ecb4289b631b5fe0e3b76617 stone_checksums (1.0.6) sha256=c775f830513d6c6ab26e31d1a5fbecd4c4e39002663d4d9f8fa96e97990b5298 stringio (3.2.0) sha256=c37cb2e58b4ffbd33fe5cd948c05934af997b36e0b6ca6fdf43afa234cf222e1 @@ -836,20 +576,17 @@ CHECKSUMS thor (1.5.0) sha256=e3a9e55fe857e44859ce104a84675ab6e8cd59c650a49106a05f55f136425e73 timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 - token-resolver (2.0.4) sha256=33b926958f504525bba3ed511ab66fbcbf8ef30390815e931436b30f27ffcad0 - toml (0.3.0) - toml-merge (7.1.0) - toml-rb (4.2.0) + token-resolver (2.0.5) sha256=b852f924287ffb58a440856e862b056c8ad97e74b4b2526cee43e0771f40c25c tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-aarch64-linux) sha256=55ffc7c87868cb45658338363d9eba51b4a8b0259aa88e4de368d2bd1d52fea4 tree_sitter_language_pack (1.13.3-arm64-darwin) sha256=bc2498db605f212a1dbd2465ed3f65190d7da786f6ed5d30fcf958121aeb4a5c tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 - typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 + webrick (1.9.2) sha256=beb4a15fc474defed24a3bda4ffd88a490d517c9e4e6118c3edce59e45864131 yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 yaml-merge (7.1.0) yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 @@ -859,7 +596,6 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 - zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH diff --git a/gems/yaml-merge/Rakefile b/gems/yaml-merge/Rakefile index 1432d5c49..337da9a15 100644 --- a/gems/yaml-merge/Rakefile +++ b/gems/yaml-merge/Rakefile @@ -130,23 +130,23 @@ end ### DUPLICATE DRIFT TASKS begin - require "kettle/drift" + require 'kettle/drift' Kettle::Drift.install_tasks rescue LoadError - desc("(stub) kettle:drift:check is unavailable") - task("kettle:drift:check") do + desc('(stub) kettle:drift:check is unavailable') + task('kettle:drift:check') do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc("(stub) kettle:drift:update is unavailable") - task("kettle:drift:update") do + desc('(stub) kettle:drift:update is unavailable') + task('kettle:drift:update') do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc("(stub) kettle:drift:force_update is unavailable") - task("kettle:drift:force_update") do + desc('(stub) kettle:drift:force_update is unavailable') + task('kettle:drift:force_update') do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc("(stub) kettle:drift is unavailable") - task("kettle:drift" => "kettle:drift:update") + desc('(stub) kettle:drift is unavailable') + task('kettle:drift' => 'kettle:drift:update') end ### TEMPLATING TASKS diff --git a/gems/yaml-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile b/gems/yaml-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile index dec650815..b8392fab0 100644 --- a/gems/yaml-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile +++ b/gems/yaml-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.1 -gem "benchmark", "~> 0.5", ">= 0.5.0" # Removed from Std Lib in Ruby 4.0 +gem 'benchmark', '~> 0.5', '>= 0.5.0' # Removed from Std Lib in Ruby 4.0 diff --git a/gems/yaml-merge/gemfiles/modular/benchmark/vHEAD.gemfile b/gems/yaml-merge/gemfiles/modular/benchmark/vHEAD.gemfile index e1eb20c5e..af214aafa 100644 --- a/gems/yaml-merge/gemfiles/modular/benchmark/vHEAD.gemfile +++ b/gems/yaml-merge/gemfiles/modular/benchmark/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.1 -gem "benchmark", github: "ruby/benchmark", branch: "master" +gem 'benchmark', github: 'ruby/benchmark', branch: 'master' diff --git a/gems/yaml-merge/gemfiles/modular/cgi/r4/v0.5.gemfile b/gems/yaml-merge/gemfiles/modular/cgi/r4/v0.5.gemfile index 19ed967c3..17ad97260 100644 --- a/gems/yaml-merge/gemfiles/modular/cgi/r4/v0.5.gemfile +++ b/gems/yaml-merge/gemfiles/modular/cgi/r4/v0.5.gemfile @@ -1 +1 @@ -gem "cgi", "~> 0.5" +gem 'cgi', '~> 0.5' diff --git a/gems/yaml-merge/gemfiles/modular/cgi/vHEAD.gemfile b/gems/yaml-merge/gemfiles/modular/cgi/vHEAD.gemfile index ef8b816ce..650fbf033 100644 --- a/gems/yaml-merge/gemfiles/modular/cgi/vHEAD.gemfile +++ b/gems/yaml-merge/gemfiles/modular/cgi/vHEAD.gemfile @@ -1 +1 @@ -gem "cgi", ">= 0.5" +gem 'cgi', '>= 0.5' diff --git a/gems/yaml-merge/gemfiles/modular/coverage.gemfile b/gems/yaml-merge/gemfiles/modular/coverage.gemfile index 52d737872..b93014b6b 100644 --- a/gems/yaml-merge/gemfiles/modular/coverage.gemfile +++ b/gems/yaml-merge/gemfiles/modular/coverage.gemfile @@ -4,11 +4,11 @@ # Set KETTLE_DEV_DEV=true for local development with path-based dependencies. # When false (default / CI), remote released gems are used. -if ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false").zero? +if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? # Coverage (remote/released) platform :mri do - gem "kettle-soup-cover", "~> 3.0", ">= 3.0.3", require: false + gem 'kettle-soup-cover', '~> 3.0', '>= 3.0.3', require: false end else - eval_gemfile "coverage_local.gemfile" + eval_gemfile 'coverage_local.gemfile' end diff --git a/gems/yaml-merge/gemfiles/modular/coverage_local.gemfile b/gems/yaml-merge/gemfiles/modular/coverage_local.gemfile index d1441e2fa..3a33c2f15 100644 --- a/gems/yaml-merge/gemfiles/modular/coverage_local.gemfile +++ b/gems/yaml-merge/gemfiles/modular/coverage_local.gemfile @@ -11,21 +11,19 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] -nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) +nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] +nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == "nomono" } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - if nomono_locked - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] - end + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked end -Kernel.send(:gem, "nomono", *nomono_activation_requirements) -require "nomono/bundler" +Kernel.send(:gem, 'nomono', *nomono_activation_requirements) +require 'nomono/bundler' local_gems = %w[kettle-dev kettle-test kettle-soup-cover kettle-drift] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) @@ -35,21 +33,21 @@ local_gems_to_eval = local_gems - %w[yaml-merge] - declared_gems platform :mri do eval_nomono_gems( gems: local_gems_to_eval, - prefix: "KETTLE_DEV", - path_env: "KETTLE_DEV_DEV", - vendored_gems_env: "VENDORED_GEMS", - vendor_gem_dir_env: "VENDOR_GEM_DIR", - debug_env: "KETTLE_DEV_DEBUG" + prefix: 'KETTLE_DEV', + path_env: 'KETTLE_DEV_DEV', + vendored_gems_env: 'VENDORED_GEMS', + vendor_gem_dir_env: 'VENDOR_GEM_DIR', + debug_env: 'KETTLE_DEV_DEBUG' ) - if ENV.fetch("GALTZO_FLOSS_DEV", "false").casecmp("false") != 0 + if ENV.fetch('GALTZO_FLOSS_DEV', 'false').casecmp('false') != 0 eval_nomono_gems( gems: %w[turbo_tests2], - prefix: "GALTZO_FLOSS", - path_env: "GALTZO_FLOSS_DEV", - vendored_gems_env: "GALTZO_FLOSS_VENDORED_GEMS", - vendor_gem_dir_env: "GALTZO_FLOSS_VENDOR_GEM_DIR", - debug_env: "GALTZO_FLOSS_DEBUG" + prefix: 'GALTZO_FLOSS', + path_env: 'GALTZO_FLOSS_DEV', + vendored_gems_env: 'GALTZO_FLOSS_VENDORED_GEMS', + vendor_gem_dir_env: 'GALTZO_FLOSS_VENDOR_GEM_DIR', + debug_env: 'GALTZO_FLOSS_DEBUG' ) end end diff --git a/gems/yaml-merge/gemfiles/modular/debug.gemfile b/gems/yaml-merge/gemfiles/modular/debug.gemfile index 4e15b1a3a..eed8d4d1e 100644 --- a/gems/yaml-merge/gemfiles/modular/debug.gemfile +++ b/gems/yaml-merge/gemfiles/modular/debug.gemfile @@ -13,10 +13,10 @@ platform :mri do # Debugging - Ensure ENV["DEBUG"] == "true" to use debuggers within spec suite # Use binding.break, binding.b, or debugger in code - gem "debug", ">= 1.1" # ruby >= 2.7 + gem 'debug', '>= 1.1' # ruby >= 2.7 # Dev Console - Binding.pry - Irb replacement # gem "pry", "~> 0.14" # ruby >= 2.0 end -gem "gem_bench", "~> 2.0", ">= 2.0.5" +gem 'gem_bench', '~> 2.0', '>= 2.0.5' diff --git a/gems/yaml-merge/gemfiles/modular/documentation.gemfile b/gems/yaml-merge/gemfiles/modular/documentation.gemfile index d8215416e..9d4535f12 100644 --- a/gems/yaml-merge/gemfiles/modular/documentation.gemfile +++ b/gems/yaml-merge/gemfiles/modular/documentation.gemfile @@ -7,20 +7,20 @@ # # Documentation -gem "kramdown", "~> 2.5", ">= 2.5.2", require: false # Ruby >= 2.5 -gem "kramdown-parser-gfm", "~> 1.1", require: false # Ruby >= 2.3 -gem "yaml-converter", "~> 0.2", ">= 0.2.3", require: false # Ruby >= 3.2 -gem "yard", "~> 0.9", ">= 0.9.45", require: false -gem "yard-junk", "~> 0.1", ">= 0.1.0", require: false # Ruby >= 3.1 -gem "yard-relative_markdown_links", "~> 0.6", require: false +gem 'kramdown', '~> 2.5', '>= 2.5.2', require: false # Ruby >= 2.5 +gem 'kramdown-parser-gfm', '~> 1.1', require: false # Ruby >= 2.3 +gem 'yaml-converter', '~> 0.2', '>= 0.2.3', require: false # Ruby >= 3.2 +gem 'yard', '~> 0.9', '>= 0.9.45', require: false +gem 'yard-junk', '~> 0.1', '>= 0.1.0', require: false # Ruby >= 3.1 +gem 'yard-relative_markdown_links', '~> 0.6', require: false -if ENV.fetch("GALTZO_FLOSS_DEV", "false").casecmp("false").zero? - gem "yard-fence", "~> 0.9", ">= 0.9.6", require: false # Ruby >= 3.2 - gem "yard-timekeeper", "~> 0.2", ">= 0.2.4", require: false - gem "yard-yaml", "~> 0.2", ">= 0.2.3", require: false +if ENV.fetch('GALTZO_FLOSS_DEV', 'false').casecmp('false').zero? + gem 'yard-fence', '~> 0.9', '>= 0.9.6', require: false # Ruby >= 3.2 + gem 'yard-timekeeper', '~> 0.2', '>= 0.2.4', require: false + gem 'yard-yaml', '~> 0.2', '>= 0.2.3', require: false else - eval_gemfile "documentation_local.gemfile" + eval_gemfile 'documentation_local.gemfile' end # Std Lib extractions -gem "rdoc", "~> 6.11", require: false unless ENV.fetch("KJ_FRAMEWORK_MATRIX_GEM", "") == "rdoc" +gem 'rdoc', '~> 6.11', require: false unless ENV.fetch('KJ_FRAMEWORK_MATRIX_GEM', '') == 'rdoc' diff --git a/gems/yaml-merge/gemfiles/modular/documentation_local.gemfile b/gems/yaml-merge/gemfiles/modular/documentation_local.gemfile index 5ed58acd1..20503a7f8 100644 --- a/gems/yaml-merge/gemfiles/modular/documentation_local.gemfile +++ b/gems/yaml-merge/gemfiles/modular/documentation_local.gemfile @@ -11,21 +11,19 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] -nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) +nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] +nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == "nomono" } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - if nomono_locked - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] - end + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked end -Kernel.send(:gem, "nomono", *nomono_activation_requirements) -require "nomono/bundler" +Kernel.send(:gem, 'nomono', *nomono_activation_requirements) +require 'nomono/bundler' local_gems = %w[yard-fence yard-timekeeper yard-yaml] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) @@ -34,9 +32,9 @@ local_gems_to_eval = local_gems - %w[yaml-merge] - declared_gems # export GALTZO_FLOSS_DEV=/path/to/galtzo-floss eval_nomono_gems( gems: local_gems_to_eval, - prefix: "GALTZO_FLOSS", - path_env: "GALTZO_FLOSS_DEV", - vendored_gems_env: "GALTZO_FLOSS_VENDORED_GEMS", - vendor_gem_dir_env: "GALTZO_FLOSS_VENDOR_GEM_DIR", - debug_env: "GALTZO_FLOSS_DEBUG" + prefix: 'GALTZO_FLOSS', + path_env: 'GALTZO_FLOSS_DEV', + vendored_gems_env: 'GALTZO_FLOSS_VENDORED_GEMS', + vendor_gem_dir_env: 'GALTZO_FLOSS_VENDOR_GEM_DIR', + debug_env: 'GALTZO_FLOSS_DEBUG' ) diff --git a/gems/yaml-merge/gemfiles/modular/erb/r2/v3.0.gemfile b/gems/yaml-merge/gemfiles/modular/erb/r2/v3.0.gemfile index c03bd8d85..7c83a239b 100644 --- a/gems/yaml-merge/gemfiles/modular/erb/r2/v3.0.gemfile +++ b/gems/yaml-merge/gemfiles/modular/erb/r2/v3.0.gemfile @@ -1 +1 @@ -gem "erb", "~> 3.0" # ruby >= 2.7.0 +gem 'erb', '~> 3.0' # ruby >= 2.7.0 diff --git a/gems/yaml-merge/gemfiles/modular/erb/r3/v5.0.gemfile b/gems/yaml-merge/gemfiles/modular/erb/r3/v5.0.gemfile index 1bd029cc1..ec7ff451f 100644 --- a/gems/yaml-merge/gemfiles/modular/erb/r3/v5.0.gemfile +++ b/gems/yaml-merge/gemfiles/modular/erb/r3/v5.0.gemfile @@ -1 +1 @@ -gem "erb", "~> 6.0", ">= 6.0.6" # ruby >= 3.2.0 +gem 'erb', '~> 6.0', '>= 6.0.6' # ruby >= 3.2.0 diff --git a/gems/yaml-merge/gemfiles/modular/erb/r4/v5.0.gemfile b/gems/yaml-merge/gemfiles/modular/erb/r4/v5.0.gemfile index 1bd029cc1..ec7ff451f 100644 --- a/gems/yaml-merge/gemfiles/modular/erb/r4/v5.0.gemfile +++ b/gems/yaml-merge/gemfiles/modular/erb/r4/v5.0.gemfile @@ -1 +1 @@ -gem "erb", "~> 6.0", ">= 6.0.6" # ruby >= 3.2.0 +gem 'erb', '~> 6.0', '>= 6.0.6' # ruby >= 3.2.0 diff --git a/gems/yaml-merge/gemfiles/modular/erb/vHEAD.gemfile b/gems/yaml-merge/gemfiles/modular/erb/vHEAD.gemfile index 48fee4218..ea0101185 100644 --- a/gems/yaml-merge/gemfiles/modular/erb/vHEAD.gemfile +++ b/gems/yaml-merge/gemfiles/modular/erb/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 3.2 -gem "erb", github: "ruby/erb", branch: "master" +gem 'erb', github: 'ruby/erb', branch: 'master' diff --git a/gems/yaml-merge/gemfiles/modular/json/truffleruby_22_3.gemfile b/gems/yaml-merge/gemfiles/modular/json/truffleruby_22_3.gemfile index b0e69ab11..9b2f8d96a 100644 --- a/gems/yaml-merge/gemfiles/modular/json/truffleruby_22_3.gemfile +++ b/gems/yaml-merge/gemfiles/modular/json/truffleruby_22_3.gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -if RUBY_ENGINE == "truffleruby" && RUBY_ENGINE_VERSION.start_with?("22.3") +if RUBY_ENGINE == 'truffleruby' && RUBY_ENGINE_VERSION.start_with?('22.3') # TruffleRuby 22.3 ships the json default gem from its emulated MRI Ruby. - gem "json", "= 2.5.1" + gem 'json', '= 2.5.1' end diff --git a/gems/yaml-merge/gemfiles/modular/json/truffleruby_23_0.gemfile b/gems/yaml-merge/gemfiles/modular/json/truffleruby_23_0.gemfile index 7b2660a2b..d787a5ef4 100644 --- a/gems/yaml-merge/gemfiles/modular/json/truffleruby_23_0.gemfile +++ b/gems/yaml-merge/gemfiles/modular/json/truffleruby_23_0.gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -if RUBY_ENGINE == "truffleruby" && RUBY_ENGINE_VERSION.start_with?("23.0") +if RUBY_ENGINE == 'truffleruby' && RUBY_ENGINE_VERSION.start_with?('23.0') # TruffleRuby 23.0 ships the json default gem from its emulated MRI Ruby. - gem "json", "= 2.6.1" + gem 'json', '= 2.6.1' end diff --git a/gems/yaml-merge/gemfiles/modular/json/truffleruby_23_1.gemfile b/gems/yaml-merge/gemfiles/modular/json/truffleruby_23_1.gemfile index dfa21f2e4..d78486b0e 100644 --- a/gems/yaml-merge/gemfiles/modular/json/truffleruby_23_1.gemfile +++ b/gems/yaml-merge/gemfiles/modular/json/truffleruby_23_1.gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -if RUBY_ENGINE == "truffleruby" && RUBY_ENGINE_VERSION.start_with?("23.1") +if RUBY_ENGINE == 'truffleruby' && RUBY_ENGINE_VERSION.start_with?('23.1') # TruffleRuby 23.1 ships the json default gem from its emulated MRI Ruby. - gem "json", "= 2.6.3" + gem 'json', '= 2.6.3' end diff --git a/gems/yaml-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile b/gems/yaml-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile index 42e9d9bd4..e27f1bbae 100644 --- a/gems/yaml-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile +++ b/gems/yaml-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 -gem "mutex_m", "~> 0.2" +gem 'mutex_m', '~> 0.2' diff --git a/gems/yaml-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile b/gems/yaml-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile index 42e9d9bd4..e27f1bbae 100644 --- a/gems/yaml-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile +++ b/gems/yaml-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 -gem "mutex_m", "~> 0.2" +gem 'mutex_m', '~> 0.2' diff --git a/gems/yaml-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile b/gems/yaml-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile index 42e9d9bd4..e27f1bbae 100644 --- a/gems/yaml-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile +++ b/gems/yaml-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 -gem "mutex_m", "~> 0.2" +gem 'mutex_m', '~> 0.2' diff --git a/gems/yaml-merge/gemfiles/modular/mutex_m/vHEAD.gemfile b/gems/yaml-merge/gemfiles/modular/mutex_m/vHEAD.gemfile index 8af3b6fca..9dac2f6cb 100644 --- a/gems/yaml-merge/gemfiles/modular/mutex_m/vHEAD.gemfile +++ b/gems/yaml-merge/gemfiles/modular/mutex_m/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 (dependency of omniauth) -gem "mutex_m", github: "ruby/mutex_m", branch: "master" +gem 'mutex_m', github: 'ruby/mutex_m', branch: 'master' diff --git a/gems/yaml-merge/gemfiles/modular/optional.gemfile b/gems/yaml-merge/gemfiles/modular/optional.gemfile index 80bc45196..9ea429538 100644 --- a/gems/yaml-merge/gemfiles/modular/optional.gemfile +++ b/gems/yaml-merge/gemfiles/modular/optional.gemfile @@ -9,8 +9,8 @@ # Optional dependencies are not depended on directly, but may be used if present. # Required for curated binstubs generated by kettle-jem install -gem "rbs", ">= 3.0", require: false # ruby >= 3.1 +gem 'rbs', '>= 3.0', require: false # ruby >= 3.1 # Required for kettle-pre-release # URL parsing with Unicode support (falls back to URI if not available) -gem "addressable", ">= 2.8", "< 3" # ruby >= 2.2 +gem 'addressable', '>= 2.8', '< 3' # ruby >= 2.2 diff --git a/gems/yaml-merge/gemfiles/modular/rspec.gemfile b/gems/yaml-merge/gemfiles/modular/rspec.gemfile index 72fdf8b7f..2af210a41 100644 --- a/gems/yaml-merge/gemfiles/modular/rspec.gemfile +++ b/gems/yaml-merge/gemfiles/modular/rspec.gemfile @@ -1,4 +1,4 @@ -gem "rspec_junit_formatter", - github: "pboling/rspec_junit_formatter", - branch: "main", - ref: "9e6bcaaedd49477b62878ed568dc4ada5cc7cb5e" +gem 'rspec_junit_formatter', + github: 'pboling/rspec_junit_formatter', + branch: 'main', + ref: '9e6bcaaedd49477b62878ed568dc4ada5cc7cb5e' diff --git a/gems/yaml-merge/gemfiles/modular/runtime_heads.gemfile b/gems/yaml-merge/gemfiles/modular/runtime_heads.gemfile index 02f134c7f..ebf17c529 100644 --- a/gems/yaml-merge/gemfiles/modular/runtime_heads.gemfile +++ b/gems/yaml-merge/gemfiles/modular/runtime_heads.gemfile @@ -8,4 +8,4 @@ # Test against HEAD of runtime dependencies so we can proactively file bugs -eval_gemfile("x_std_libs/vHEAD.gemfile") +eval_gemfile('x_std_libs/vHEAD.gemfile') diff --git a/gems/yaml-merge/gemfiles/modular/stringio/r2/v3.0.gemfile b/gems/yaml-merge/gemfiles/modular/stringio/r2/v3.0.gemfile index e85bb18ee..3616f4e3a 100644 --- a/gems/yaml-merge/gemfiles/modular/stringio/r2/v3.0.gemfile +++ b/gems/yaml-merge/gemfiles/modular/stringio/r2/v3.0.gemfile @@ -2,4 +2,4 @@ # NOT SEMVER # Version 3.0.7 dropped support for Ruby <= 2.7 # Version 3.0.0 dropped support for Ruby <= 2.4 -gem "stringio", ">= 3.0" +gem 'stringio', '>= 3.0' diff --git a/gems/yaml-merge/gemfiles/modular/stringio/r3/v3.0.gemfile b/gems/yaml-merge/gemfiles/modular/stringio/r3/v3.0.gemfile index e85bb18ee..3616f4e3a 100644 --- a/gems/yaml-merge/gemfiles/modular/stringio/r3/v3.0.gemfile +++ b/gems/yaml-merge/gemfiles/modular/stringio/r3/v3.0.gemfile @@ -2,4 +2,4 @@ # NOT SEMVER # Version 3.0.7 dropped support for Ruby <= 2.7 # Version 3.0.0 dropped support for Ruby <= 2.4 -gem "stringio", ">= 3.0" +gem 'stringio', '>= 3.0' diff --git a/gems/yaml-merge/gemfiles/modular/stringio/r4/v3.0.gemfile b/gems/yaml-merge/gemfiles/modular/stringio/r4/v3.0.gemfile index e85bb18ee..3616f4e3a 100644 --- a/gems/yaml-merge/gemfiles/modular/stringio/r4/v3.0.gemfile +++ b/gems/yaml-merge/gemfiles/modular/stringio/r4/v3.0.gemfile @@ -2,4 +2,4 @@ # NOT SEMVER # Version 3.0.7 dropped support for Ruby <= 2.7 # Version 3.0.0 dropped support for Ruby <= 2.4 -gem "stringio", ">= 3.0" +gem 'stringio', '>= 3.0' diff --git a/gems/yaml-merge/gemfiles/modular/stringio/vHEAD.gemfile b/gems/yaml-merge/gemfiles/modular/stringio/vHEAD.gemfile index 5f2a74126..78f5f5d8a 100644 --- a/gems/yaml-merge/gemfiles/modular/stringio/vHEAD.gemfile +++ b/gems/yaml-merge/gemfiles/modular/stringio/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 (dependency of omniauth) -gem "stringio", github: "ruby/stringio", branch: "master" +gem 'stringio', github: 'ruby/stringio', branch: 'master' diff --git a/gems/yaml-merge/gemfiles/modular/style.gemfile b/gems/yaml-merge/gemfiles/modular/style.gemfile index 35de4dcd6..4dbcc02c0 100644 --- a/gems/yaml-merge/gemfiles/modular/style.gemfile +++ b/gems/yaml-merge/gemfiles/modular/style.gemfile @@ -9,23 +9,23 @@ # Style tasks run on the latest Ruby; RuboCop-LTS selects the compatibility # rules for the configured Ruby floor independently from task dependency floors. -gem "reek", "~> 6.5", ">= 6.5.0" +gem 'reek', '~> 6.5', '>= 6.5.0' platform :mri do - gem "appraisal2-rubocop", "~> 1.0", ">= 1.0.0", require: false - gem "rubocop-gradual", "~> 0.4", ">= 0.4.0" - gem "rubocop-minitest", "~> 0.40", ">= 0.40.0" - gem "rubocop-on-rbs", "~> 2.0", ">= 2.0.0" # ruby >= 3.2.0 + gem 'appraisal2-rubocop', '~> 1.0', '>= 1.0.0', require: false + gem 'rubocop-gradual', '~> 0.4', '>= 0.4.0' + gem 'rubocop-minitest', '~> 0.40', '>= 0.40.0' + gem 'rubocop-on-rbs', '~> 2.0', '>= 2.0.0' # ruby >= 3.2.0 # gem "rubocop", "~> 1.73", ">= 1.73.2" # constrained by standard - gem "rubocop-packaging", "~> 0.6", ">= 0.6.0" - gem "standard", "~> 1.56", ">= 1.56.0" + gem 'rubocop-packaging', '~> 0.6', '>= 0.6.0' + gem 'standard', '~> 1.56', '>= 1.56.0' - if ENV.fetch("RUBOCOP_LTS_LOCAL", "false").casecmp("false").zero? + if ENV.fetch('RUBOCOP_LTS_LOCAL', 'false').casecmp('false').zero? declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) - gem "rubocop-lts", "~> 24.2", ">= 24.2.1" unless declared_gems.include?("rubocop-lts") - gem "rubocop-lts-rspec", "~> 1.0", ">= 1.0.5" unless declared_gems.include?("rubocop-lts-rspec") - gem "rubocop-ruby3_2", "~> 3.0", ">= 3.0.6" unless declared_gems.include?("rubocop-ruby3_2") + gem 'rubocop-lts', '~> 24.2', '>= 24.2.1' unless declared_gems.include?('rubocop-lts') + gem 'rubocop-lts-rspec', '~> 1.0', '>= 1.0.5' unless declared_gems.include?('rubocop-lts-rspec') + gem 'rubocop-ruby3_2', '~> 3.0', '>= 3.0.6' unless declared_gems.include?('rubocop-ruby3_2') else - eval_gemfile("style_local.gemfile") + eval_gemfile('style_local.gemfile') end end diff --git a/gems/yaml-merge/gemfiles/modular/style_local.gemfile b/gems/yaml-merge/gemfiles/modular/style_local.gemfile index 255bf2e49..516eb058b 100644 --- a/gems/yaml-merge/gemfiles/modular/style_local.gemfile +++ b/gems/yaml-merge/gemfiles/modular/style_local.gemfile @@ -14,21 +14,19 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] -nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) +nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] +nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == "nomono" } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - if nomono_locked - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] - end + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked end -Kernel.send(:gem, "nomono", *nomono_activation_requirements) -require "nomono/bundler" +Kernel.send(:gem, 'nomono', *nomono_activation_requirements) +require 'nomono/bundler' local_gems = %w[rubocop-lts rubocop-lts-rspec rubocop-ruby3_2 standard-rubocop-lts] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) @@ -38,11 +36,11 @@ local_gems_to_eval = local_gems - %w[yaml-merge] - declared_gems platform :mri do eval_nomono_gems( gems: local_gems_to_eval, - prefix: "RUBOCOP_LTS", - path_env: "RUBOCOP_LTS_LOCAL", - vendored_gems_env: "VENDORED_GEMS", - vendor_gem_dir_env: "VENDOR_GEM_DIR", - debug_env: "RUBOCOP_LTS_DEBUG", - root: ["src", "rubocop-lts"] + prefix: 'RUBOCOP_LTS', + path_env: 'RUBOCOP_LTS_LOCAL', + vendored_gems_env: 'VENDORED_GEMS', + vendor_gem_dir_env: 'VENDOR_GEM_DIR', + debug_env: 'RUBOCOP_LTS_DEBUG', + root: %w[src rubocop-lts] ) end diff --git a/gems/yaml-merge/gemfiles/modular/templating.gemfile b/gems/yaml-merge/gemfiles/modular/templating.gemfile index 47138ffbb..a672de184 100644 --- a/gems/yaml-merge/gemfiles/modular/templating.gemfile +++ b/gems/yaml-merge/gemfiles/modular/templating.gemfile @@ -1,18 +1,18 @@ # frozen_string_literal: true -structuredmerge_remote = ENV.fetch("STRUCTUREDMERGE_DEV", "false").casecmp("false").zero? -kettle_remote = ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false").zero? +structuredmerge_remote = ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false').zero? +kettle_remote = ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? if structuredmerge_remote # Parser dependencies for released installs. - gem "tree_sitter_language_pack", "~> 1.13", ">= 1.13.3" + gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' # Merge recipes for released installs. - gem "kettle-jem", ">= 7.0" + gem 'kettle-jem', '>= 7.0' end if kettle_remote # Template/plugin checks for released installs. - gem "kettle-drift", "~> 1.0", ">= 1.0.6", require: false + gem 'kettle-drift', '~> 1.0', '>= 1.0.6', require: false end # Set STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local development with path-based dependencies. @@ -21,4 +21,4 @@ end # # Set KETTLE_DEV_DEV=/path/to/my for local development with Kettle plugin gems. # When false (default / CI), released Kettle plugin gems are used. -eval_gemfile "templating_local.gemfile" unless structuredmerge_remote && kettle_remote +eval_gemfile 'templating_local.gemfile' unless structuredmerge_remote && kettle_remote diff --git a/gems/yaml-merge/gemfiles/modular/templating_local.gemfile b/gems/yaml-merge/gemfiles/modular/templating_local.gemfile index 88da435ec..0503994a0 100644 --- a/gems/yaml-merge/gemfiles/modular/templating_local.gemfile +++ b/gems/yaml-merge/gemfiles/modular/templating_local.gemfile @@ -12,21 +12,19 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] -nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) +nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] +nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == "nomono" } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - if nomono_locked - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] - end + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked end -Kernel.send(:gem, "nomono", *nomono_activation_requirements) -require "nomono/bundler" +Kernel.send(:gem, 'nomono', *nomono_activation_requirements) +require 'nomono/bundler' structuredmerge_local_gems = %w[ tree_haver @@ -69,25 +67,25 @@ structuredmerge_local_gems_to_eval = structuredmerge_local_gems - %w[yaml-merge] kettle_dev_local_gems_to_eval = kettle_dev_local_gems - %w[yaml-merge] - declared_gems platform :mri do - if ENV.fetch("STRUCTUREDMERGE_DEV", "false").casecmp("false") != 0 + if ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false') != 0 eval_nomono_gems( gems: structuredmerge_local_gems_to_eval, - prefix: "STRUCTUREDMERGE", - path_env: "STRUCTUREDMERGE_DEV", - vendored_gems_env: "VENDORED_GEMS", - vendor_gem_dir_env: "VENDOR_GEM_DIR", - debug_env: "STRUCTUREDMERGE_DEBUG" + prefix: 'STRUCTUREDMERGE', + path_env: 'STRUCTUREDMERGE_DEV', + vendored_gems_env: 'VENDORED_GEMS', + vendor_gem_dir_env: 'VENDOR_GEM_DIR', + debug_env: 'STRUCTUREDMERGE_DEBUG' ) end - if ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false") != 0 + if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false') != 0 eval_nomono_gems( gems: kettle_dev_local_gems_to_eval, - prefix: "KETTLE_DEV", - path_env: "KETTLE_DEV_DEV", - vendored_gems_env: "VENDORED_GEMS", - vendor_gem_dir_env: "VENDOR_GEM_DIR", - debug_env: "KETTLE_DEV_DEBUG" + prefix: 'KETTLE_DEV', + path_env: 'KETTLE_DEV_DEV', + vendored_gems_env: 'VENDORED_GEMS', + vendor_gem_dir_env: 'VENDOR_GEM_DIR', + debug_env: 'KETTLE_DEV_DEBUG' ) end end diff --git a/gems/yaml-merge/gemfiles/modular/webrick/r4/v1.9.gemfile b/gems/yaml-merge/gemfiles/modular/webrick/r4/v1.9.gemfile index eaab4a473..b1329ba84 100644 --- a/gems/yaml-merge/gemfiles/modular/webrick/r4/v1.9.gemfile +++ b/gems/yaml-merge/gemfiles/modular/webrick/r4/v1.9.gemfile @@ -1 +1 @@ -gem "webrick", "~> 1.9" +gem 'webrick', '~> 1.9' diff --git a/gems/yaml-merge/gemfiles/modular/webrick/vHEAD.gemfile b/gems/yaml-merge/gemfiles/modular/webrick/vHEAD.gemfile index 8a789b634..c7e6f81a1 100644 --- a/gems/yaml-merge/gemfiles/modular/webrick/vHEAD.gemfile +++ b/gems/yaml-merge/gemfiles/modular/webrick/vHEAD.gemfile @@ -1 +1 @@ -gem "webrick", ">= 1.9" +gem 'webrick', '>= 1.9' diff --git a/gems/yaml-merge/gemfiles/modular/x_std_libs.gemfile b/gems/yaml-merge/gemfiles/modular/x_std_libs.gemfile index 77aad43f2..b1f43c097 100644 --- a/gems/yaml-merge/gemfiles/modular/x_std_libs.gemfile +++ b/gems/yaml-merge/gemfiles/modular/x_std_libs.gemfile @@ -1,12 +1,12 @@ ### Std Lib Extracted Gems ruby_version = Gem::Version.new(RUBY_VERSION) -if ruby_version >= Gem::Version.new("4.0") - eval_gemfile "x_std_libs/r4/libs.gemfile" -elsif ruby_version >= Gem::Version.new("3.2") - eval_gemfile "x_std_libs/r3/libs.gemfile" -elsif ruby_version >= Gem::Version.new("3.1") - eval_gemfile "x_std_libs/r3.1/libs.gemfile" +if ruby_version >= Gem::Version.new('4.0') + eval_gemfile 'x_std_libs/r4/libs.gemfile' +elsif ruby_version >= Gem::Version.new('3.2') + eval_gemfile 'x_std_libs/r3/libs.gemfile' +elsif ruby_version >= Gem::Version.new('3.1') + eval_gemfile 'x_std_libs/r3.1/libs.gemfile' else - eval_gemfile "x_std_libs/r2/libs.gemfile" + eval_gemfile 'x_std_libs/r2/libs.gemfile' end diff --git a/gems/yaml-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile b/gems/yaml-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile index 441c4f03a..16a5e3d70 100644 --- a/gems/yaml-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile +++ b/gems/yaml-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile @@ -1,3 +1,3 @@ -eval_gemfile "../../erb/r2/v3.0.gemfile" -eval_gemfile "../../mutex_m/r2/v0.3.gemfile" -eval_gemfile "../../stringio/r2/v3.0.gemfile" +eval_gemfile '../../erb/r2/v3.0.gemfile' +eval_gemfile '../../mutex_m/r2/v0.3.gemfile' +eval_gemfile '../../stringio/r2/v3.0.gemfile' diff --git a/gems/yaml-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile b/gems/yaml-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile index c293a3ddd..220ff95c1 100644 --- a/gems/yaml-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile +++ b/gems/yaml-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile @@ -1,3 +1,3 @@ -eval_gemfile "../../erb/r3/v5.0.gemfile" -eval_gemfile "../../mutex_m/r3/v0.3.gemfile" -eval_gemfile "../../stringio/r3/v3.0.gemfile" +eval_gemfile '../../erb/r3/v5.0.gemfile' +eval_gemfile '../../mutex_m/r3/v0.3.gemfile' +eval_gemfile '../../stringio/r3/v3.0.gemfile' diff --git a/gems/yaml-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile b/gems/yaml-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile index eb5574247..e2f6501eb 100644 --- a/gems/yaml-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile +++ b/gems/yaml-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile @@ -1,6 +1,6 @@ -eval_gemfile "../../erb/r4/v5.0.gemfile" -eval_gemfile "../../mutex_m/r4/v0.3.gemfile" -eval_gemfile "../../stringio/r4/v3.0.gemfile" -eval_gemfile "../../benchmark/r4/v0.5.gemfile" -eval_gemfile "../../cgi/r4/v0.5.gemfile" -eval_gemfile "../../webrick/r4/v1.9.gemfile" +eval_gemfile '../../erb/r4/v5.0.gemfile' +eval_gemfile '../../mutex_m/r4/v0.3.gemfile' +eval_gemfile '../../stringio/r4/v3.0.gemfile' +eval_gemfile '../../benchmark/r4/v0.5.gemfile' +eval_gemfile '../../cgi/r4/v0.5.gemfile' +eval_gemfile '../../webrick/r4/v1.9.gemfile' diff --git a/gems/yaml-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile b/gems/yaml-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile index d4d5b16c9..ab75cccf1 100644 --- a/gems/yaml-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile +++ b/gems/yaml-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile @@ -1,6 +1,6 @@ -eval_gemfile "../erb/vHEAD.gemfile" -eval_gemfile "../mutex_m/vHEAD.gemfile" -eval_gemfile "../stringio/vHEAD.gemfile" -eval_gemfile "../benchmark/vHEAD.gemfile" -eval_gemfile "../cgi/vHEAD.gemfile" -eval_gemfile "../webrick/vHEAD.gemfile" +eval_gemfile '../erb/vHEAD.gemfile' +eval_gemfile '../mutex_m/vHEAD.gemfile' +eval_gemfile '../stringio/vHEAD.gemfile' +eval_gemfile '../benchmark/vHEAD.gemfile' +eval_gemfile '../cgi/vHEAD.gemfile' +eval_gemfile '../webrick/vHEAD.gemfile' diff --git a/gems/yaml-merge/lib/yaml/merge.rb b/gems/yaml-merge/lib/yaml/merge.rb index b48d4d1e4..fbd712a01 100644 --- a/gems/yaml-merge/lib/yaml/merge.rb +++ b/gems/yaml-merge/lib/yaml/merge.rb @@ -141,7 +141,8 @@ def merge_yaml(template_source, destination_source, dialect, backend: nil) return unsupported_feature_merge_result("Unsupported YAML backend #{diagnostic_backend}.") end - merge_yaml_with_parser(template_source, destination_source, dialect, backend: requested) do |source, parse_dialect| + merge_yaml_with_parser(template_source, destination_source, dialect, + backend: requested) do |source, parse_dialect| parse_yaml(source, parse_dialect, backend: requested) end end @@ -217,11 +218,11 @@ def parse_tree_sitter_source(language, source, backend: nil) end private_class_method :parse_tree_sitter_source - def with_tree_sitter_backend(backend) + def with_tree_sitter_backend(backend, &block) if backend.to_s.empty? yield else - TreeHaver.with_backend(backend) { yield } + TreeHaver.with_backend(backend, &block) end end private_class_method :with_tree_sitter_backend diff --git a/gems/yaml-merge/lib/yaml/merge/smart_merger.rb b/gems/yaml-merge/lib/yaml/merge/smart_merger.rb index e93c9c3ca..5318e8a20 100644 --- a/gems/yaml-merge/lib/yaml/merge/smart_merger.rb +++ b/gems/yaml-merge/lib/yaml/merge/smart_merger.rb @@ -113,11 +113,9 @@ def merge_node_lists(template_nodes, dest_nodes, template_analysis, dest_analysi dest_nodes.each_with_index do |dest_node, index| next if consumed_dest.include?(index) - if @remove_template_missing_nodes - next - else - emit_node_with_leading_gap(dest_node, dest_analysis, dest_nodes, boundary_line: dest_boundary_line) - end + next if @remove_template_missing_nodes + + emit_node_with_leading_gap(dest_node, dest_analysis, dest_nodes, boundary_line: dest_boundary_line) end end @@ -140,9 +138,9 @@ def merge_matched_nodes(template_node, dest_node, template_analysis, dest_analys ) elsif template_node.mapping_pair? && dest_node.mapping_pair? merge_mapping_pair(template_node, dest_node, template_analysis, dest_analysis, template_owners: template_owners, - dest_owners: dest_owners, - template_boundary_line: template_boundary_line, - dest_boundary_line: dest_boundary_line) + dest_owners: dest_owners, + template_boundary_line: template_boundary_line, + dest_boundary_line: dest_boundary_line) elsif template_node.mapping? && dest_node.mapping? merge_node_lists( template_node.mergeable_children, diff --git a/gems/yaml-merge/lib/yaml/merge/version.rb b/gems/yaml-merge/lib/yaml/merge/version.rb index e1303b9fe..418cfb7b8 100644 --- a/gems/yaml-merge/lib/yaml/merge/version.rb +++ b/gems/yaml-merge/lib/yaml/merge/version.rb @@ -3,7 +3,7 @@ module Yaml module Merge module Version - VERSION = "7.1.0" + VERSION = '7.1.0' end VERSION = Version::VERSION # Traditional Constant Location end From bb937c0d4eefc77bdce56b383c7280cf33398b31 Mon Sep 17 00:00:00 2001 From: "Peter H. Boling" Date: Tue, 21 Jul 2026 13:54:03 -0600 Subject: [PATCH 131/188] =?UTF-8?q?=F0=9F=8E=A8=20Template=20bootstrap=20b?= =?UTF-8?q?y=20kettle-jem=20v7.1.0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gems/go-merge/.kettle-drift.lock | 9 - gems/go-merge/.rubocop_gradual.lock | 48 +- gems/go-merge/Gemfile | 70 ++- gems/go-merge/Gemfile.lock | 480 ++++-------------- gems/go-merge/README.md | 4 +- gems/go-merge/Rakefile | 18 +- .../gemfiles/modular/cgi/r4/v0.5.gemfile | 1 + .../gemfiles/modular/cgi/vHEAD.gemfile | 1 + .../gemfiles/modular/coverage.gemfile | 2 +- .../gemfiles/modular/coverage_local.gemfile | 24 +- .../gemfiles/modular/documentation.gemfile | 12 +- .../modular/documentation_local.gemfile | 26 +- .../gemfiles/modular/erb/r3/v5.0.gemfile | 2 +- .../gemfiles/modular/erb/r4/v5.0.gemfile | 2 +- .../modular/json/truffleruby_22_3.gemfile | 6 + .../modular/json/truffleruby_23_0.gemfile | 6 + .../modular/json/truffleruby_23_1.gemfile | 6 + .../gemfiles/modular/optional.gemfile | 3 +- .../gemfiles/modular/runtime_heads.gemfile | 5 +- gems/go-merge/gemfiles/modular/style.gemfile | 23 +- .../gemfiles/modular/style_local.gemfile | 30 +- .../gemfiles/modular/templating.gemfile | 4 +- .../gemfiles/modular/templating_local.gemfile | 22 +- .../gemfiles/modular/webrick/r4/v1.9.gemfile | 1 + .../gemfiles/modular/webrick/vHEAD.gemfile | 1 + .../modular/x_std_libs/r4/libs.gemfile | 2 + .../gemfiles/modular/x_std_libs/vHEAD.gemfile | 2 + gems/go-merge/lib/go/merge/version.rb | 2 +- gems/rust-merge/.kettle-drift.lock | 273 +--------- .../.structuredmerge/kettle-jem.yml | 53 ++ gems/rust-merge/Gemfile | 72 ++- gems/rust-merge/Gemfile.lock | 175 ++++--- gems/rust-merge/README.md | 4 +- gems/rust-merge/Rakefile | 18 +- .../modular/benchmark/r4/v0.5.gemfile | 2 +- .../gemfiles/modular/benchmark/vHEAD.gemfile | 2 +- .../gemfiles/modular/cgi/r4/v0.5.gemfile | 1 + .../gemfiles/modular/cgi/vHEAD.gemfile | 1 + .../gemfiles/modular/coverage.gemfile | 6 +- .../gemfiles/modular/coverage_local.gemfile | 48 +- .../rust-merge/gemfiles/modular/debug.gemfile | 4 +- .../gemfiles/modular/documentation.gemfile | 24 +- .../modular/documentation_local.gemfile | 38 +- .../gemfiles/modular/erb/r2/v3.0.gemfile | 2 +- .../gemfiles/modular/erb/r3/v5.0.gemfile | 2 +- .../gemfiles/modular/erb/r4/v5.0.gemfile | 2 +- .../gemfiles/modular/erb/vHEAD.gemfile | 2 +- .../modular/json/truffleruby_22_3.gemfile | 6 + .../modular/json/truffleruby_23_0.gemfile | 6 + .../modular/json/truffleruby_23_1.gemfile | 6 + .../gemfiles/modular/mutex_m/r2/v0.3.gemfile | 2 +- .../gemfiles/modular/mutex_m/r3/v0.3.gemfile | 2 +- .../gemfiles/modular/mutex_m/r4/v0.3.gemfile | 2 +- .../gemfiles/modular/mutex_m/vHEAD.gemfile | 2 +- .../gemfiles/modular/optional.gemfile | 7 +- .../rust-merge/gemfiles/modular/rspec.gemfile | 8 +- .../gemfiles/modular/runtime_heads.gemfile | 7 +- .../gemfiles/modular/stringio/r2/v3.0.gemfile | 2 +- .../gemfiles/modular/stringio/r3/v3.0.gemfile | 2 +- .../gemfiles/modular/stringio/r4/v3.0.gemfile | 2 +- .../gemfiles/modular/stringio/vHEAD.gemfile | 2 +- .../rust-merge/gemfiles/modular/style.gemfile | 29 +- .../gemfiles/modular/style_local.gemfile | 44 +- .../gemfiles/modular/templating.gemfile | 14 +- .../gemfiles/modular/templating_local.gemfile | 48 +- .../gemfiles/modular/webrick/r4/v1.9.gemfile | 1 + .../gemfiles/modular/webrick/vHEAD.gemfile | 1 + .../gemfiles/modular/x_std_libs.gemfile | 14 +- .../modular/x_std_libs/r2/libs.gemfile | 6 +- .../modular/x_std_libs/r3/libs.gemfile | 6 +- .../modular/x_std_libs/r4/libs.gemfile | 10 +- .../gemfiles/modular/x_std_libs/vHEAD.gemfile | 10 +- gems/rust-merge/lib/rust/merge/version.rb | 2 +- gems/toml-merge/.kettle-drift.lock | 9 - gems/toml-merge/.rubocop_gradual.lock | 163 +++--- gems/toml-merge/Gemfile | 70 ++- gems/toml-merge/Gemfile.lock | 173 ++++--- gems/toml-merge/README.md | 4 +- gems/toml-merge/Rakefile | 18 +- .../gemfiles/modular/cgi/r4/v0.5.gemfile | 1 + .../gemfiles/modular/cgi/vHEAD.gemfile | 1 + .../gemfiles/modular/coverage.gemfile | 2 +- .../gemfiles/modular/coverage_local.gemfile | 24 +- .../gemfiles/modular/documentation.gemfile | 12 +- .../modular/documentation_local.gemfile | 26 +- .../gemfiles/modular/erb/r3/v5.0.gemfile | 2 +- .../gemfiles/modular/erb/r4/v5.0.gemfile | 2 +- .../modular/json/truffleruby_22_3.gemfile | 6 + .../modular/json/truffleruby_23_0.gemfile | 6 + .../modular/json/truffleruby_23_1.gemfile | 6 + .../gemfiles/modular/optional.gemfile | 3 +- .../gemfiles/modular/runtime_heads.gemfile | 5 +- .../toml-merge/gemfiles/modular/style.gemfile | 23 +- .../gemfiles/modular/style_local.gemfile | 30 +- .../gemfiles/modular/templating.gemfile | 4 +- .../gemfiles/modular/templating_local.gemfile | 22 +- .../gemfiles/modular/webrick/r4/v1.9.gemfile | 1 + .../gemfiles/modular/webrick/vHEAD.gemfile | 1 + .../modular/x_std_libs/r4/libs.gemfile | 2 + .../gemfiles/modular/x_std_libs/vHEAD.gemfile | 2 + .../lib/toml/merge/conflict_resolver.rb | 10 +- gems/toml-merge/lib/toml/merge/version.rb | 2 +- gems/typescript-merge/.kettle-drift.lock | 268 +--------- .../.structuredmerge/kettle-jem.yml | 53 ++ gems/typescript-merge/Gemfile | 72 ++- gems/typescript-merge/Gemfile.lock | 355 ++++++++++++- gems/typescript-merge/Rakefile | 18 +- .../lib/typescript/merge/version.rb | 2 +- gems/yaml-merge/Gemfile.lock | 325 +++++++++++- 109 files changed, 2011 insertions(+), 1494 deletions(-) create mode 100644 gems/go-merge/gemfiles/modular/cgi/r4/v0.5.gemfile create mode 100644 gems/go-merge/gemfiles/modular/cgi/vHEAD.gemfile create mode 100644 gems/go-merge/gemfiles/modular/json/truffleruby_22_3.gemfile create mode 100644 gems/go-merge/gemfiles/modular/json/truffleruby_23_0.gemfile create mode 100644 gems/go-merge/gemfiles/modular/json/truffleruby_23_1.gemfile create mode 100644 gems/go-merge/gemfiles/modular/webrick/r4/v1.9.gemfile create mode 100644 gems/go-merge/gemfiles/modular/webrick/vHEAD.gemfile create mode 100644 gems/rust-merge/gemfiles/modular/cgi/r4/v0.5.gemfile create mode 100644 gems/rust-merge/gemfiles/modular/cgi/vHEAD.gemfile create mode 100644 gems/rust-merge/gemfiles/modular/json/truffleruby_22_3.gemfile create mode 100644 gems/rust-merge/gemfiles/modular/json/truffleruby_23_0.gemfile create mode 100644 gems/rust-merge/gemfiles/modular/json/truffleruby_23_1.gemfile create mode 100644 gems/rust-merge/gemfiles/modular/webrick/r4/v1.9.gemfile create mode 100644 gems/rust-merge/gemfiles/modular/webrick/vHEAD.gemfile create mode 100644 gems/toml-merge/gemfiles/modular/cgi/r4/v0.5.gemfile create mode 100644 gems/toml-merge/gemfiles/modular/cgi/vHEAD.gemfile create mode 100644 gems/toml-merge/gemfiles/modular/json/truffleruby_22_3.gemfile create mode 100644 gems/toml-merge/gemfiles/modular/json/truffleruby_23_0.gemfile create mode 100644 gems/toml-merge/gemfiles/modular/json/truffleruby_23_1.gemfile create mode 100644 gems/toml-merge/gemfiles/modular/webrick/r4/v1.9.gemfile create mode 100644 gems/toml-merge/gemfiles/modular/webrick/vHEAD.gemfile diff --git a/gems/go-merge/.kettle-drift.lock b/gems/go-merge/.kettle-drift.lock index 2ee9dae31..43dfedd67 100644 --- a/gems/go-merge/.kettle-drift.lock +++ b/gems/go-merge/.kettle-drift.lock @@ -52,14 +52,5 @@ 88 ] } - ], - "vendored_gems_env: 'VENDORED_GEMS',\nvendor_gem_dir_env: 'VENDOR_GEM_DIR',": [ - { - "file": "gemfiles/modular/templating_local.gemfile", - "lines": [ - 55, - 66 - ] - } ] } diff --git a/gems/go-merge/.rubocop_gradual.lock b/gems/go-merge/.rubocop_gradual.lock index bb6039651..8256d3420 100644 --- a/gems/go-merge/.rubocop_gradual.lock +++ b/gems/go-merge/.rubocop_gradual.lock @@ -15,13 +15,20 @@ [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] ], + "gemfiles/modular/cgi/r4/v0.5.gemfile:367169322": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/cgi/vHEAD.gemfile:2729540777": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], "gemfiles/modular/erb/r2/v3.0.gemfile:1688285565": [ [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] ], - "gemfiles/modular/erb/r3/v5.0.gemfile:2150258305": [ + "gemfiles/modular/erb/r3/v5.0.gemfile:2394062339": [ [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] ], - "gemfiles/modular/erb/r4/v5.0.gemfile:2150258305": [ + "gemfiles/modular/erb/r4/v5.0.gemfile:2394062339": [ [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] ], "gemfiles/modular/erb/vHEAD.gemfile:981929959": [ @@ -57,6 +64,13 @@ [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] ], + "gemfiles/modular/webrick/r4/v1.9.gemfile:3092661193": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/webrick/vHEAD.gemfile:3867684682": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], "gemfiles/modular/x_std_libs.gemfile:2324400122": [ [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] ], @@ -66,10 +80,10 @@ "gemfiles/modular/x_std_libs/r3/libs.gemfile:4030570297": [ [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] ], - "gemfiles/modular/x_std_libs/r4/libs.gemfile:909736663": [ + "gemfiles/modular/x_std_libs/r4/libs.gemfile:732451732": [ [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] ], - "gemfiles/modular/x_std_libs/vHEAD.gemfile:907917303": [ + "gemfiles/modular/x_std_libs/vHEAD.gemfile:2390363993": [ [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] ], @@ -82,21 +96,21 @@ "lib/go-merge.rb:1938991181": [ [1, 1, 0, "Naming/FileName: The name of this source file (`go-merge.rb`) should use snake_case.", 5381] ], - "lib/go/merge.rb:547557749": [ + "lib/go/merge.rb:1429248778": [ [10, 3, 12, "Style/Documentation: Missing top-level documentation comment for `module Go::Merge`.", 2866359175], - [10, 3, 7242, "Metrics/ModuleLength: Module has too many lines. [173/100]", 2713105462], + [10, 3, 8162, "Metrics/ModuleLength: Module has too many lines. [191/100]", 1602270489], [11, 5, 11, "Style/ModuleFunction: Use `module_function` instead of `extend self`.", 1210897631], - [72, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 1491828652], - [79, 5, 1399, "Metrics/AbcSize: Assignment Branch Condition size for `merge_go` is too high. [<13, 32, 11> 36.25/17]", 3471957286], - [79, 5, 1399, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `merge_go` is too high. [11/7]", 3471957286], - [79, 5, 1399, "Metrics/MethodLength: Method has too many lines. [22/10]", 3471957286], - [79, 5, 1399, "Metrics/PerceivedComplexity: Perceived complexity for `merge_go` is too high. [11/8]", 3471957286], - [98, 34, 7, "Style/MultilineBlockChain: Avoid multi-line chains of blocks.", 4045560504], - [106, 5, 1419, "Metrics/AbcSize: Assignment Branch Condition size for `analyze_go_module` is too high. [<8, 19, 5> 21.21/17]", 525883462], - [106, 5, 1419, "Metrics/MethodLength: Method has too many lines. [40/10]", 525883462] - ], - "spec/fixtures_integration_spec.rb:2854818786": [ - [3, 1, 4677, "Metrics/BlockLength: Block has too many lines. [66/25]", 420437002], + [74, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 1491828652], + [102, 5, 1399, "Metrics/AbcSize: Assignment Branch Condition size for `merge_go` is too high. [<13, 32, 11> 36.25/17]", 3471957286], + [102, 5, 1399, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `merge_go` is too high. [11/7]", 3471957286], + [102, 5, 1399, "Metrics/MethodLength: Method has too many lines. [22/10]", 3471957286], + [102, 5, 1399, "Metrics/PerceivedComplexity: Perceived complexity for `merge_go` is too high. [11/8]", 3471957286], + [121, 34, 7, "Style/MultilineBlockChain: Avoid multi-line chains of blocks.", 4045560504], + [129, 5, 1447, "Metrics/AbcSize: Assignment Branch Condition size for `analyze_go_module` is too high. [<8, 19, 5> 21.21/17]", 1720548769], + [129, 5, 1447, "Metrics/MethodLength: Method has too many lines. [40/10]", 1720548769] + ], + "spec/fixtures_integration_spec.rb:341155994": [ + [3, 1, 5172, "Metrics/BlockLength: Block has too many lines. [76/25]", 420437002], [8, 3, 4420, "Metrics/BlockLength: Block has too many lines. [61/25]", 566085077] ] } diff --git a/gems/go-merge/Gemfile b/gems/go-merge/Gemfile index 2fd98af90..d6bed6bd1 100644 --- a/gems/go-merge/Gemfile +++ b/gems/go-merge/Gemfile @@ -6,7 +6,7 @@ # kettle-jem will then preserve content between those markers across template runs. # kettle-jem:unfreeze -source "https://gem.coop" +source 'https://gem.coop' git_source(:codeberg) { |repo_name| "https://codeberg.org/#{repo_name}" } git_source(:gitlab) { |repo_name| "https://gitlab.com/#{repo_name}" } @@ -19,58 +19,54 @@ git_source(:gitlab) { |repo_name| "https://gitlab.com/#{repo_name}" } gemspec # Local workspace dependency wiring for *_local.gemfile overrides -nomono_requirements = ["~> 1.0", ">= 1.0.8"] -gem "nomono", *nomono_requirements, require: false # ruby >= 2.2 +nomono_requirements = ['~> 1.0', '>= 1.0.8'] +gem 'nomono', *nomono_requirements, require: false # ruby >= 2.2 # Direct sibling dependencies (env-switched via STRUCTUREDMERGE_DEV) direct_sibling_gems = %w[ ast-merge tree_haver ] -direct_sibling_dev = ENV.fetch("STRUCTUREDMERGE_DEV", "") +direct_sibling_dev = ENV.fetch('STRUCTUREDMERGE_DEV', '') direct_sibling_local = !direct_sibling_dev.empty? && !%w[false 0 no off].include?(direct_sibling_dev.downcase) -direct_sibling_templating = ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? +direct_sibling_templating = ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero?) - direct_sibling_dev_was_set = ENV.key?("STRUCTUREDMERGE_DEV") - direct_sibling_dev_original = ENV.fetch("STRUCTUREDMERGE_DEV", nil) + (direct_sibling_local || + ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) + direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') + direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) begin nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path("Gemfile.lock", __dir__) + nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == "nomono" } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - if nomono_locked - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] - end - end - Kernel.send(:gem, "nomono", *nomono_activation_requirements) - require "nomono/bundler" - if direct_sibling_templating && !direct_sibling_local - ENV["STRUCTUREDMERGE_DEV"] = File.expand_path("..", __dir__) + Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked end + Kernel.send(:gem, 'nomono', *nomono_activation_requirements) + require 'nomono/bundler' + ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local eval_nomono_gems( gems: direct_sibling_gems, - prefix: "STRUCTUREDMERGE", - path_env: "STRUCTUREDMERGE_DEV", - root: ["src", "my", "structuredmerge"] + prefix: 'STRUCTUREDMERGE', + path_env: 'STRUCTUREDMERGE_DEV', + root: %w[src my structuredmerge] ) rescue LoadError - warn "Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies." + warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' ensure if direct_sibling_templating && !direct_sibling_local if direct_sibling_dev_was_set - ENV["STRUCTUREDMERGE_DEV"] = direct_sibling_dev_original + ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original else - ENV.delete("STRUCTUREDMERGE_DEV") + ENV.delete('STRUCTUREDMERGE_DEV') end end end @@ -117,28 +113,28 @@ if direct_sibling_gems.any? && end # Use released TSLP with the Ruby ABI platform-gem fix. -gem "tree_sitter_language_pack", "~> 1.13", ">= 1.13.3" +gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' # Templating (env-switched: STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local paths) -eval_gemfile "gemfiles/modular/templating.gemfile" if ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? +eval_gemfile 'gemfiles/modular/templating.gemfile' if ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? # Debugging -eval_gemfile "gemfiles/modular/debug.gemfile" +eval_gemfile 'gemfiles/modular/debug.gemfile' # Code Coverage (env-switched: KETTLE_DEV_DEV=true for local paths) -eval_gemfile "gemfiles/modular/coverage.gemfile" +eval_gemfile 'gemfiles/modular/coverage.gemfile' # Linting -eval_gemfile "gemfiles/modular/style.gemfile" +eval_gemfile 'gemfiles/modular/style.gemfile' # Documentation -eval_gemfile "gemfiles/modular/documentation.gemfile" +eval_gemfile 'gemfiles/modular/documentation.gemfile' # Optional -eval_gemfile "gemfiles/modular/optional.gemfile" +eval_gemfile 'gemfiles/modular/optional.gemfile' ### Std Lib Extracted Gems -eval_gemfile "gemfiles/modular/x_std_libs.gemfile" +eval_gemfile 'gemfiles/modular/x_std_libs.gemfile' # See unlocked_deps appraisal for more details on irb inclusion -gem "irb", "~> 1.17" # ruby >= 2.7 +gem 'irb', '~> 1.17' # ruby >= 2.7 diff --git a/gems/go-merge/Gemfile.lock b/gems/go-merge/Gemfile.lock index 8e7e9d4e4..a833fbf96 100644 --- a/gems/go-merge/Gemfile.lock +++ b/gems/go-merge/Gemfile.lock @@ -7,39 +7,7 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly - specs: - ast-crispr-markdown-markly (7.1.0) - ast-crispr (= 7.1.0) - markly-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism - specs: - ast-crispr-ruby-prism (7.1.0) - ast-crispr (= 7.1.0) - prism-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr - specs: - ast-crispr (7.1.0) - ast-merge (= 7.1.0) - service_actor (~> 3.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git - specs: - ast-merge-git (7.1.0) - ast-merge (= 7.1.0) - json-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/ast-merge specs: ast-merge (7.1.0) benchmark @@ -48,193 +16,7 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template - specs: - ast-template (7.1.0) - ast-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge - specs: - bash-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge - specs: - binary-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge - specs: - citrus-toml-merge (7.1.0) - toml-merge (= 7.1.0) - toml-rb (~> 4.1) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge - specs: - commonmarker-merge (7.1.0) - commonmarker (~> 2.2) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge - specs: - dotenv-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge - specs: - json-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem - specs: - kettle-jem (7.1.0) - addressable (>= 2.8, < 3) - ast-crispr-markdown-markly (= 7.1.0) - ast-crispr-ruby-prism (= 7.1.0) - ast-merge (= 7.1.0) - bash-merge (= 7.1.0) - citrus-toml-merge (= 7.1.0) - commonmarker-merge (= 7.1.0) - dotenv-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-dev (~> 2.3, >= 2.3.5) - kettle-rb (~> 0.1, >= 0.1.4) - kramdown-merge (= 7.1.0) - markdown-merge (= 7.1.0) - markly-merge (= 7.1.0) - prism-merge (= 7.1.0) - psych-merge (= 7.1.0) - rbs (>= 3.10) - rbs-merge (= 7.1.0) - ruby-merge (= 7.1.0) - token-resolver (~> 2.0, >= 2.0.4) - toml-merge (= 7.1.0) - toml-rb (~> 4.2) - tree_haver (= 7.1.0) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge - specs: - kramdown-merge (7.1.0) - kramdown (~> 2.5) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge - specs: - markdown-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge - specs: - markly-merge (7.1.0) - markdown-merge (= 7.1.0) - markly (~> 0.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge - specs: - parslet-toml-merge (7.1.0) - toml (~> 0.3) - toml-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge - specs: - plain-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge - specs: - prism-merge (7.1.0) - prism (~> 1.6) - ruby-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge - specs: - psych-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge - specs: - rbs-merge (7.1.0) - ast-merge (= 7.1.0) - rbs (>= 3.10) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge - specs: - ruby-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge - specs: - rust-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb - specs: - smorg-rb (7.1.0) - ast-merge (= 7.1.0) - ast-merge-git (= 7.1.0) - go-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-jem (= 7.1.0) - markly-merge (= 7.1.0) - plain-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge - specs: - toml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/tree_haver specs: tree_haver (7.1.0) citrus (~> 3.0) @@ -242,29 +24,6 @@ PATH tree_sitter_language_pack (>= 1.13.2, < 2.0) version_gem (~> 1.1, >= 1.1.9) -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge - specs: - typescript-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge - specs: - yaml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge - specs: - zip-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - GEM remote: https://gem.coop/ specs: @@ -275,6 +34,10 @@ GEM bundler (>= 1.17.3) rake (>= 10) thor (>= 0.14) + appraisal2-rubocop (1.0.0) + appraisal2 (>= 3.1.4) + rubocop (>= 1.0) + version_gem (~> 1.1, >= 1.1.14) ast (2.4.3) backports (3.25.3) benchmark (0.5.0) @@ -282,10 +45,10 @@ GEM bundler-audit (0.9.3) bundler (>= 1.2.0) thor (~> 1.0) + cgi (0.5.2) citrus (3.0.2) cmdparse (3.0.7) - commonmarker (2.9.0-x86_64-linux) - concurrent-ruby (1.3.7) + concurrent-ruby (1.3.8) date (3.5.1) debug (1.11.1) irb (~> 1.10) @@ -293,7 +56,6 @@ GEM delegate (0.6.1) diff-lcs (1.6.2) diffy (3.4.4) - docile (1.4.1) dry-configurable (1.4.0) dry-core (~> 1.0) zeitwerk (~> 2.6) @@ -324,7 +86,7 @@ GEM dry-logic (~> 1.4) zeitwerk (~> 2.6) emoji_regex (15.0.0) - erb (6.0.5) + erb (6.0.6) gem_bench (2.0.5) bundler (>= 1.14) version_gem (~> 1.1, >= 1.1.4) @@ -343,24 +105,20 @@ GEM rdoc (>= 4.0.0) reline (>= 0.4.2) json (2.21.1) - kettle-dev (2.3.7) + kettle-dev (2.3.8) emoji_regex (>= 15.0) kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) - kettle-drift (1.0.6) - version_gem (~> 1.1, >= 1.1.14) - kettle-rb (0.1.4) - kettle-soup-cover (1.1.3) - simplecov (~> 0.22) - simplecov-cobertura (~> 3.0) - simplecov-console (~> 0.9, >= 0.9.3) - simplecov-html (~> 0.13, >= 0.13.1) - simplecov-lcov (~> 0.8) + kettle-rb (0.1.5) + kettle-soup-cover (3.0.4) + kettle-wash (~> 0.1, >= 0.1.0) + simplecov (>= 1.0) + simplecov-cobertura (>= 4.0) + simplecov-console (~> 0.9, >= 0.9.5) simplecov-rcov (~> 0.3, >= 0.3.7) - simplecov_json_formatter (~> 0.1, >= 0.1.4) - version_gem (~> 1.1, >= 1.1.9) - kettle-test (2.0.11) + simplecov_lcov_formatter (~> 0.9, >= 0.9.0) + kettle-test (2.0.12) appraisal2 (~> 3.0, >= 3.0.6) backports (~> 3.0) rspec (~> 3.0) @@ -371,6 +129,8 @@ GEM silent_stream (~> 1.0, >= 1.0.12) timecop-rspec (~> 1.0, >= 1.0.3) turbo_tests2 (~> 3.1, >= 3.1.12) + kettle-wash (0.1.1) + version_gem (~> 1.1, >= 1.1.14) kramdown (2.5.2) rexml (>= 3.4.4) kramdown-parser-gfm (1.1.0) @@ -378,7 +138,6 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) - markly (0.16.0) mutex_m (0.3.0) nokogiri (1.19.4-aarch64-linux-gnu) racc (~> 1.4) @@ -466,6 +225,14 @@ GEM rubocop-ast (1.50.0) parser (>= 3.3.7.2) prism (~> 1.7) + rubocop-capybara (2.23.0) + lint_roller (~> 1.1) + rubocop (~> 1.81) + rubocop-env (0.1.0) + rubocop + rubocop-factory_bot (2.28.0) + lint_roller (~> 1.1) + rubocop (~> 1.72, >= 1.72.1) rubocop-gradual (0.4.0) benchmark diff-lcs (>= 1.2.0, < 2.0) @@ -473,13 +240,26 @@ GEM parallel (~> 1.10) rainbow (>= 2.2.2, < 4.0) rubocop (~> 1.0) - rubocop-lts (24.1.0) - rubocop-ruby3_2 (>= 3.0.0, < 4) - standard-rubocop-lts (>= 2.0.2, < 3) - version_gem (>= 1.1.2, < 3) + rubocop-lts (24.2.2) + rubocop-ruby3_2 (~> 3.0, >= 3.0.1) + standard-rubocop-lts (~> 2.0, >= 2.0.3) + version_gem (~> 1.1, >= 1.1.13) + rubocop-lts-rspec (1.0.5) + rubocop (~> 1.84, >= 1.84.2) + rubocop-env (~> 0.1, >= 0.1.0) + rubocop-factory_bot (~> 2.28, >= 2.28.0) + rubocop-rspec (~> 3.9, >= 3.9.0) + rubocop-rspec-extra (~> 0.3, >= 0.3.0) + standard (~> 1.54, >= 1.54.0) + standard-rspec (~> 0.5, >= 0.5.0) + version_gem (~> 1.1, >= 1.1.13) rubocop-md (2.0.4) lint_roller (~> 1.1) rubocop (>= 1.72.1) + rubocop-minitest (0.40.0) + lint_roller (~> 1.1) + rubocop (>= 1.75.0, < 2.0) + rubocop-ast (>= 1.38.0, < 2.0) rubocop-on-rbs (2.0.0) lint_roller (~> 1.1) rbs (~> 4.0) @@ -499,6 +279,13 @@ GEM lint_roller (~> 1.1) regexp_parser (>= 2.0) rubocop (~> 1.86, >= 1.86.2) + rubocop-rspec-extra (0.3.0) + lint_roller (~> 1.1) + rubocop (>= 1.72.1, < 2.0) + rubocop-rspec_rails (2.32.0) + lint_roller (~> 1.1) + rubocop (~> 1.72, >= 1.72.1) + rubocop-rspec (~> 3.5) rubocop-ruby3_2 (3.0.7) rubocop-gradual (~> 0.3, >= 0.3.6) rubocop-md (~> 2.0, >= 2.0.4) @@ -513,27 +300,21 @@ GEM ruby-progressbar (1.13.0) ruby_engine (2.0.3) ruby_version (1.0.3) - service_actor (3.9.4) - zeitwerk (>= 1.0) silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) - simplecov (0.22.0) - docile (~> 1.1) - simplecov-html (~> 0.11) - simplecov_json_formatter (~> 0.1) - simplecov-cobertura (3.2.0) + simplecov (1.0.2) + simplecov-cobertura (4.0.0) rexml - simplecov (~> 0.19) + simplecov (~> 1.0) simplecov-console (0.9.5) ansi simplecov terminal-table - simplecov-html (0.13.2) - simplecov-lcov (0.9.0) simplecov-rcov (0.3.7) simplecov (>= 0.4.1) - simplecov_json_formatter (0.1.4) + simplecov_lcov_formatter (0.9.0) + simplecov (>= 0.18) sorbet-runtime (0.6.13347) standard (1.56.0) language_server-protocol (~> 3.17.0.2) @@ -547,6 +328,12 @@ GEM standard-performance (1.9.0) lint_roller (~> 1.1) rubocop-performance (~> 1.26.0) + standard-rspec (0.5.0) + lint_roller (>= 1.0) + rubocop-capybara (~> 2.23) + rubocop-factory_bot (~> 2.27) + rubocop-rspec (~> 3.9) + rubocop-rspec_rails (~> 2.31) standard-rubocop-lts (2.0.10) standard (~> 1.54, >= 1.54.0) standard-custom (~> 1.0, >= 1.0.2) @@ -564,14 +351,9 @@ GEM delegate (~> 0.1) rspec (~> 3.0) timecop (>= 0.7, < 1) - token-resolver (2.0.4) + token-resolver (2.0.5) parslet (~> 2.0) - version_gem (~> 1.1, >= 1.1.13) - toml (0.3.0) - parslet (>= 1.8.0, < 3.0.0) - toml-rb (4.2.0) - citrus (~> 3.0, > 3.0) - racc (~> 1.7) + version_gem (~> 1.1, >= 1.1.14) tree_sitter_language_pack (1.13.3-aarch64-linux) sorbet-runtime (~> 0.5) tree_sitter_language_pack (1.13.3-arm64-darwin) @@ -587,6 +369,7 @@ GEM unicode-emoji (~> 4.1) unicode-emoji (4.2.0) version_gem (1.1.14) + webrick (1.9.2) yaml-converter (0.2.3) hexapdf (>= 1.8, < 2) kramdown (>= 2.4, < 3) @@ -624,104 +407,71 @@ PLATFORMS DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) - ast-crispr! - ast-crispr-markdown-markly! - ast-crispr-ruby-prism! + appraisal2-rubocop (~> 1.0, >= 1.0.0) ast-merge! - ast-merge-git! - ast-template! - bash-merge! benchmark (~> 0.5, >= 0.5.0) - binary-merge! bundler-audit (~> 0.9.3) - citrus-toml-merge! - commonmarker-merge! + cgi (~> 0.5) debug (>= 1.1) - dotenv-merge! - erb (~> 6.0, >= 6.0.4) + erb (~> 6.0, >= 6.0.6) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.0) go-merge! irb (~> 1.17) - json-merge! kettle-dev (~> 2.0, >= 2.2.25) - kettle-drift (~> 1.0, >= 1.0.5) - kettle-jem! - kettle-soup-cover (~> 1.0, >= 1.1.3) + kettle-soup-cover (~> 3.0, >= 3.0.3) kettle-test (~> 2.0, >= 2.0.9) - kramdown (~> 2.5, >= 2.5.1) - kramdown-merge! + kramdown (~> 2.5, >= 2.5.2) kramdown-parser-gfm (~> 1.1) - markdown-merge! - markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) - parslet-toml-merge! - plain-merge! - prism-merge! - psych-merge! rake (~> 13.0) rbs (>= 3.0) - rbs-merge! rdoc (~> 6.11) - reek (~> 6.5) + reek (~> 6.5, >= 6.5.0) require_bench (~> 1.0, >= 1.0.4) - rubocop-lts (~> 24.1.0) - rubocop-on-rbs (~> 2.0) + rubocop-gradual (~> 0.4, >= 0.4.0) + rubocop-lts (~> 24.2, >= 24.2.1) + rubocop-lts-rspec (~> 1.0, >= 1.0.5) + rubocop-minitest (~> 0.40, >= 0.40.0) + rubocop-on-rbs (~> 2.0, >= 2.0.0) rubocop-packaging (~> 0.6, >= 0.6.0) - rubocop-rspec (~> 3.6) - rubocop-ruby3_2 (~> 3.0.0) - ruby-merge! + rubocop-ruby3_2 (~> 3.0, >= 3.0.6) ruby-progressbar (~> 1.13) - rust-merge! - smorg-rb! - standard (>= 1.50) + standard (~> 1.56, >= 1.56.0) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) - toml-merge! tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) - typescript-merge! - yaml-converter (~> 0.1) - yaml-merge! - yard (~> 0.9, >= 0.9.44) - yard-fence (~> 0.9, >= 0.9.1) + webrick (~> 1.9) + yaml-converter (~> 0.2, >= 0.2.3) + yard (~> 0.9, >= 0.9.45) + yard-fence (~> 0.9, >= 0.9.6) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) - yard-timekeeper (~> 0.1) - yard-yaml (~> 0.1, >= 0.1.2) - zip-merge! + yard-timekeeper (~> 0.2, >= 0.2.4) + yard-yaml (~> 0.2, >= 0.2.3) CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af ansi (1.6.0) sha256=ac9ea0c0ea8d32fb4e271348e609963ac78882f34b73836c2a02b3622e666658 appraisal2 (3.2.0) sha256=ccd0b767ac4060cd7af6d16747459b6990f49c39c7b4fb1f7d1146b1e97c492f + appraisal2-rubocop (1.0.0) sha256=b71410fbb014befda5340605a605b7f6f3f012739baf0acc5b4351b592c3258d ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 - ast-crispr (7.1.0) - ast-crispr-markdown-markly (7.1.0) - ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) - ast-merge-git (7.1.0) - ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 - bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd - binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 + cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 - citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 - commonmarker (2.9.0-x86_64-linux) - commonmarker-merge (7.1.0) - concurrent-ruby (1.3.7) sha256=4412caec3a5ea2e5fdc52076724c071a81f2c0593d83b2ac8cbb8ca63b3151b0 + concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 - docile (1.4.1) sha256=96159be799bfa73cdb721b840e9802126e4e03dfc26863db73647204c727f21e - dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -730,7 +480,7 @@ CHECKSUMS dry-schema (1.16.0) sha256=cd3aaeabc0f1af66ec82a29096d4c4fb92a0a58b9dae29a22b1bbceb78985727 dry-types (1.9.1) sha256=baebeecdb9f8395d6c9d227b62011279440943e3ef2468fe8ccc1ba11467f178 emoji_regex (15.0.0) sha256=a508b2c0bee561169564e0aec96085020c900520d335e5533fd8e78e59493829 - erb (6.0.5) sha256=858e63488cb796c9daba8b6e9ff4b3879c395022049be9a66a8e00980e612eac + erb (6.0.6) sha256=a9b24986700f5bf127c4f297c5403c3ca41b83b0a316c0cd09a096b56e644ae5 gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f @@ -739,22 +489,16 @@ CHECKSUMS io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 - json-merge (7.1.0) - kettle-dev (2.3.7) sha256=eb370113cd030d03cbe2d33b31c99858951017e5ad21a17e9ed89dc3770028ee - kettle-drift (1.0.6) - kettle-jem (7.1.0) - kettle-rb (0.1.4) sha256=9cef7ce4f7021666b7222292f29051e51eaf042e8a5db11f3f4dd72f74243fc1 - kettle-soup-cover (1.1.3) sha256=a373827da22a7131d093afd32945e5b7d7a10a01ebfdded8fd2cb8230d69c8ad - kettle-test (2.0.11) sha256=c710c90f7ab79d51f9452f0c09f5f90657e7a893f63583855c164d0b1b107ab2 + kettle-dev (2.3.8) sha256=9d716ff21c660a730cb4e8d41e2e2f0630a28167a354b6e2924e242102aef72c + kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f + kettle-soup-cover (3.0.4) + kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 + kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa - kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 - markdown-merge (7.1.0) - markly (0.16.0) - markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-aarch64-linux-gnu) sha256=1269fb644a6de405057a53dd5c762b1209b43ca7424f839454d3dbc677c31a8f nokogiri (1.19.4-aarch64-linux-musl) sha256=35c65b9ce72b3bb03207bdbe7067915019dc18c1b9b59139684bd6690fdd01af @@ -768,20 +512,15 @@ CHECKSUMS parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 - parslet-toml-merge (7.1.0) - plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 - prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 - psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 - rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb @@ -799,35 +538,37 @@ CHECKSUMS rspec_junit_formatter (0.6.0) sha256=40dde674e6ae4e6cc0ff560da25497677e34fefd2338cc467a8972f602b62b15 rubocop (1.88.2) sha256=8def251c90cd955feb4daa3edc0ab56893250c4ce90ef81e6c80c03f9a939bbf rubocop-ast (1.50.0) sha256=b9ca88300da0803ee222ad20cdb30494c0a784eed06fdc35d254b06d662788db + rubocop-capybara (2.23.0) sha256=f9ea1ba3a7561ee8e88cf76fc378ce517ce5327155f305ee7b5c2500e5aee357 + rubocop-env (0.1.0) sha256=5ab9a259e71822bf514c8e900a9b68cc2f74ccc87d5493efcd03213f3068e718 + rubocop-factory_bot (2.28.0) sha256=4b17fc02124444173317e131759d195b0d762844a71a29fe8139c1105d92f0cb rubocop-gradual (0.4.0) sha256=9c7e584e6fef6c2539266a193a4572c970c22f99046fd6b0305bdde6228f96ad - rubocop-lts (24.1.0) sha256=9dcad4db2da2fe2f1f77f98c917d70e7c43eded703da14cd201d4be52a9272aa + rubocop-lts (24.2.2) sha256=be6c745e1bb61daebd6af3cc3227c60f95be9f642a080773cad7df14c5f9f174 + rubocop-lts-rspec (1.0.5) sha256=439552fd27440802cc499889e013bffa28aadc41adae5d4dfff3d984a2a809b4 rubocop-md (2.0.4) sha256=0d076b6b5e99dea2ddc928c4bd702497decb9a8400da7808091e02ebcafcfb93 + rubocop-minitest (0.40.0) sha256=353c698199115f12151144cf0b5a96f69bb9d77b660cf6536df2c4250c672a9d rubocop-on-rbs (2.0.0) sha256=ce74d1b3d5daead19f4b611623656c185821dfc9aed9c7079bb1e5d7d7c464be rubocop-packaging (0.6.0) sha256=fb92bd0fb48e6f8cdb1648d2249b0cd51c2497dcc87340132d22f01edbf558a7 rubocop-performance (1.26.1) sha256=cd19b936ff196df85829d264b522fd4f98b6c89ad271fa52744a8c11b8f71834 rubocop-rake (0.7.1) sha256=3797f2b6810c3e9df7376c26d5f44f3475eda59eb1adc38e6f62ecf027cbae4d rubocop-rspec (3.10.2) sha256=0b3e2ecc592cd10ecbf0095bb58d1e357905276e069643523cc19eb7495f65e2 + rubocop-rspec-extra (0.3.0) sha256=ee4b6484d0332a0d23c4a465eeb607e41888eb3d4ed479f850b9f5212514f787 + rubocop-rspec_rails (2.32.0) sha256=4a0d641c72f6ebb957534f539d9d0a62c47abd8ce0d0aeee1ef4701e892a9100 rubocop-ruby3_2 (3.0.7) sha256=f53dd6d286fb05186214fc6ec116783e7f837030918e8931c05de773e98f8466 rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 - ruby-merge (7.1.0) ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 - rust-merge (7.1.0) - service_actor (3.9.4) silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 - simplecov (0.22.0) sha256=fe2622c7834ff23b98066bb0a854284b2729a569ac659f82621fc22ef36213a5 - simplecov-cobertura (3.2.0) sha256=70d702658677fcb20e5aceb6915ccf8bc62ff2ccd38b62b3ad5c9db5c0888740 + simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 + simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 - simplecov-html (0.13.2) sha256=bd0b8e54e7c2d7685927e8d6286466359b6f16b18cb0df47b508e8d73c777246 - simplecov-lcov (0.9.0) sha256=7a77a31e200a595ed4b0249493056efd0c920601f53d2ef135ca34ee796346cd simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc - simplecov_json_formatter (0.1.4) sha256=529418fbe8de1713ac2b2d612aa3daa56d316975d307244399fa4838c601b428 - smorg-rb (7.1.0) + simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed sorbet-runtime (0.6.13347) sha256=54e7221d9f4b63f58aec79f3043752a9ba7810347c6ae0d903531591cc2d5f01 standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b standard-performance (1.9.0) sha256=49483d31be448292951d80e5e67cdcb576c2502103c7b40aec6f1b6e9c88e3f2 + standard-rspec (0.5.0) sha256=64d396524a65af47f5331b423d8cdd313e0267401647bb7892489ca89dad2973 standard-rubocop-lts (2.0.10) sha256=89708a505b7d8b24d2ac399a7520fcb9e764abc2ecb4289b631b5fe0e3b76617 stone_checksums (1.0.6) sha256=c775f830513d6c6ab26e31d1a5fbecd4c4e39002663d4d9f8fa96e97990b5298 stringio (3.2.0) sha256=c37cb2e58b4ffbd33fe5cd948c05934af997b36e0b6ca6fdf43afa234cf222e1 @@ -836,22 +577,18 @@ CHECKSUMS thor (1.5.0) sha256=e3a9e55fe857e44859ce104a84675ab6e8cd59c650a49106a05f55f136425e73 timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 - token-resolver (2.0.4) sha256=33b926958f504525bba3ed511ab66fbcbf8ef30390815e931436b30f27ffcad0 - toml (0.3.0) - toml-merge (7.1.0) - toml-rb (4.2.0) + token-resolver (2.0.5) sha256=b852f924287ffb58a440856e862b056c8ad97e74b4b2526cee43e0771f40c25c tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-aarch64-linux) sha256=55ffc7c87868cb45658338363d9eba51b4a8b0259aa88e4de368d2bd1d52fea4 tree_sitter_language_pack (1.13.3-arm64-darwin) sha256=bc2498db605f212a1dbd2465ed3f65190d7da786f6ed5d30fcf958121aeb4a5c tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 - typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 + webrick (1.9.2) sha256=beb4a15fc474defed24a3bda4ffd88a490d517c9e4e6118c3edce59e45864131 yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 - yaml-merge (7.1.0) yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd @@ -859,7 +596,6 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 - zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH diff --git a/gems/go-merge/README.md b/gems/go-merge/README.md index 46fa466cc..1f9c2792d 100644 --- a/gems/go-merge/README.md +++ b/gems/go-merge/README.md @@ -36,7 +36,7 @@ I've summarized my thoughts in [this blog post](https://dev.to/galtzo/hostile-ta | Tokens to Remember | [![Gem name][⛳️name-img]][⛳️gem-name] [![Gem namespace][⛳️namespace-img]][⛳️gem-namespace] | |-------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | Works with MRI Ruby 4 | [![Ruby current Compat][💎ruby-c-i]][🚎11-c-wf]| -| Support & Community | [![Join Me on Daily.dev's RubyFriends][✉️ruby-friends-img]][✉️ruby-friends] [![Live Chat on Discord][✉️discord-invite-img-ftb]][✉️discord-invite] [![Get help from me on Upwork][👨🏼‍🏫expsup-upwork-img]][👨🏼‍🏫expsup-upwork] [![Get help from me on Codementor][👨🏼‍🏫expsup-codementor-img]][👨🏼‍🏫expsup-codementor] | +| Support & Community | [![Join Me on Daily.dev's RubyFriends][✉️ruby-friends-img]][✉️ruby-friends] [![Get help from RubyForum][✉️ruby-forum-img]][✉️ruby-forum] [![Live Chat on Discord][✉️discord-invite-img-ftb]][✉️discord-invite] [![Get help from me on Upwork][👨🏼‍🏫expsup-upwork-img]][👨🏼‍🏫expsup-upwork] [![Get help from me on Codementor][👨🏼‍🏫expsup-codementor-img]][👨🏼‍🏫expsup-codementor] | | Source | [![Source on GitLab.com][📜src-gl-img]][📜src-gl] [![Source on CodeBerg.org][📜src-cb-img]][📜src-cb] [![Source on Github.com][📜src-gh-img]][📜src-gh] [![The best SHA: dQw4w9WgXcQ!][🧮kloc-img]][🧮kloc] | | Documentation | [![Current release on RubyDoc.info][📜docs-cr-rd-img]][🚎yard-current] [![YARD on Galtzo.com][📜docs-head-rd-img]][🚎yard-head] [![Maintainer Blog][🚂maint-blog-img]][🚂maint-blog] [![GitLab Wiki][📜gl-wiki-img]][📜gl-wiki] [![GitHub Wiki][📜gh-wiki-img]][📜gh-wiki] | | Compliance | [![License: AGPL-3.0-only OR PolyForm-Small-Business-1.0.0][📄license-img]][📄license] [![Apache license compatibility: Category X][📄license-compat-img]][📄license-compat] [![📄ilo-declaration-img]][📄ilo-declaration] [![Security Policy][🔐security-img]][🔐security] [![Contributor Covenant 2.1][🪇conduct-img]][🪇conduct] [![SemVer 2.0.0][📌semver-img]][📌semver] | @@ -181,6 +181,8 @@ If none of the available licenses suit your use case, please [contact us](mailto [✉️discord-invite-img-ftb]: https://img.shields.io/discord/1373797679469170758?style=for-the-badge&logo=discord [✉️ruby-friends-img]: https://img.shields.io/badge/daily.dev-%F0%9F%92%8E_Ruby_Friends-0A0A0A?style=for-the-badge&logo=dailydotdev&logoColor=white [✉️ruby-friends]: https://app.daily.dev/squads/rubyfriends +[✉️ruby-forum-img]: https://img.shields.io/badge/RubyForum-Help-CC342D?style=for-the-badge&logo=ruby&logoColor=white +[✉️ruby-forum]: https://www.rubyforum.org/c/help/8 [✇bundle-group-pattern]: https://gist.github.com/pboling/4564780 [⛳️gem-namespace]: https://github.com/structuredmerge/structuredmerge-ruby/tree/main/gems/go-merge [⛳️namespace-img]: https://img.shields.io/badge/namespace-Go::Merge-3C2D2D.svg?style=square&logo=ruby&logoColor=white diff --git a/gems/go-merge/Rakefile b/gems/go-merge/Rakefile index f7fe74fab..f0aa98d5f 100644 --- a/gems/go-merge/Rakefile +++ b/gems/go-merge/Rakefile @@ -130,23 +130,23 @@ end ### DUPLICATE DRIFT TASKS begin - require "kettle/drift" + require 'kettle/drift' Kettle::Drift.install_tasks rescue LoadError - desc("(stub) kettle:drift:check is unavailable") - task("kettle:drift:check") do + desc('(stub) kettle:drift:check is unavailable') + task('kettle:drift:check') do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc("(stub) kettle:drift:update is unavailable") - task("kettle:drift:update") do + desc('(stub) kettle:drift:update is unavailable') + task('kettle:drift:update') do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc("(stub) kettle:drift:force_update is unavailable") - task("kettle:drift:force_update") do + desc('(stub) kettle:drift:force_update is unavailable') + task('kettle:drift:force_update') do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc("(stub) kettle:drift is unavailable") - task("kettle:drift" => "kettle:drift:update") + desc('(stub) kettle:drift is unavailable') + task('kettle:drift' => 'kettle:drift:update') end ### TEMPLATING TASKS diff --git a/gems/go-merge/gemfiles/modular/cgi/r4/v0.5.gemfile b/gems/go-merge/gemfiles/modular/cgi/r4/v0.5.gemfile new file mode 100644 index 000000000..17ad97260 --- /dev/null +++ b/gems/go-merge/gemfiles/modular/cgi/r4/v0.5.gemfile @@ -0,0 +1 @@ +gem 'cgi', '~> 0.5' diff --git a/gems/go-merge/gemfiles/modular/cgi/vHEAD.gemfile b/gems/go-merge/gemfiles/modular/cgi/vHEAD.gemfile new file mode 100644 index 000000000..650fbf033 --- /dev/null +++ b/gems/go-merge/gemfiles/modular/cgi/vHEAD.gemfile @@ -0,0 +1 @@ +gem 'cgi', '>= 0.5' diff --git a/gems/go-merge/gemfiles/modular/coverage.gemfile b/gems/go-merge/gemfiles/modular/coverage.gemfile index f96d50954..b93014b6b 100644 --- a/gems/go-merge/gemfiles/modular/coverage.gemfile +++ b/gems/go-merge/gemfiles/modular/coverage.gemfile @@ -7,7 +7,7 @@ if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? # Coverage (remote/released) platform :mri do - gem 'kettle-soup-cover', '~> 1.0', '>= 1.1.3', require: false + gem 'kettle-soup-cover', '~> 3.0', '>= 3.0.3', require: false end else eval_gemfile 'coverage_local.gemfile' diff --git a/gems/go-merge/gemfiles/modular/coverage_local.gemfile b/gems/go-merge/gemfiles/modular/coverage_local.gemfile index 04b7eb9db..7586d2d84 100644 --- a/gems/go-merge/gemfiles/modular/coverage_local.gemfile +++ b/gems/go-merge/gemfiles/modular/coverage_local.gemfile @@ -3,13 +3,33 @@ # Local path overrides for development. # Loaded by the associated non-local gemfile when KETTLE_DEV_DEV != "false". -require 'nomono/bundler' unless defined?(Nomono) +# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. +# Bundler records that dependency during Gemfile evaluation, but it does not +# activate that exact version before the immediate `require "nomono/bundler"`. +# If multiple compatible nomono versions are installed, RubyGems may activate +# the newest installed version while Gemfile.lock pins an older compatible one; +# Bundler then aborts with "already activated nomono X, but your Gemfile +# requires nomono Y". Prefer the locked compatible version when present, then +# activate it explicitly before requiring the Bundler DSL extension used below. +nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] +nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) +if File.file?(nomono_lockfile) + nomono_locked_spec = Bundler::LockfileParser + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } + nomono_locked = nomono_locked_spec && + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked +end +Kernel.send(:gem, 'nomono', *nomono_activation_requirements) +require 'nomono/bundler' local_gems = %w[kettle-dev kettle-test kettle-soup-cover kettle-drift] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) local_gems_to_eval = local_gems - %w[go-merge] - declared_gems -# export KETTLE_DEV_DEV=/path/to/kettle-rb +# export KETTLE_DEV_DEV=/path/to/my platform :mri do eval_nomono_gems( gems: local_gems_to_eval, diff --git a/gems/go-merge/gemfiles/modular/documentation.gemfile b/gems/go-merge/gemfiles/modular/documentation.gemfile index dff5cc108..9d4535f12 100644 --- a/gems/go-merge/gemfiles/modular/documentation.gemfile +++ b/gems/go-merge/gemfiles/modular/documentation.gemfile @@ -7,17 +7,17 @@ # # Documentation -gem 'kramdown', '~> 2.5', '>= 2.5.1', require: false # Ruby >= 2.5 +gem 'kramdown', '~> 2.5', '>= 2.5.2', require: false # Ruby >= 2.5 gem 'kramdown-parser-gfm', '~> 1.1', require: false # Ruby >= 2.3 -gem 'yaml-converter', '~> 0.1', require: false # Ruby >= 3.2 -gem 'yard', '~> 0.9', '>= 0.9.44', require: false +gem 'yaml-converter', '~> 0.2', '>= 0.2.3', require: false # Ruby >= 3.2 +gem 'yard', '~> 0.9', '>= 0.9.45', require: false gem 'yard-junk', '~> 0.1', '>= 0.1.0', require: false # Ruby >= 3.1 gem 'yard-relative_markdown_links', '~> 0.6', require: false if ENV.fetch('GALTZO_FLOSS_DEV', 'false').casecmp('false').zero? - gem 'yard-fence', '~> 0.9', '>= 0.9.1', require: false # Ruby >= 3.2 - gem 'yard-timekeeper', '~> 0.1', require: false - gem 'yard-yaml', '~> 0.1', '>= 0.1.2', require: false + gem 'yard-fence', '~> 0.9', '>= 0.9.6', require: false # Ruby >= 3.2 + gem 'yard-timekeeper', '~> 0.2', '>= 0.2.4', require: false + gem 'yard-yaml', '~> 0.2', '>= 0.2.3', require: false else eval_gemfile 'documentation_local.gemfile' end diff --git a/gems/go-merge/gemfiles/modular/documentation_local.gemfile b/gems/go-merge/gemfiles/modular/documentation_local.gemfile index 4d4c2bd95..64c208555 100644 --- a/gems/go-merge/gemfiles/modular/documentation_local.gemfile +++ b/gems/go-merge/gemfiles/modular/documentation_local.gemfile @@ -3,13 +3,35 @@ # Local path overrides for development. # Loaded by the associated non-local gemfile when GALTZO_FLOSS_DEV != "false". -require 'nomono/bundler' unless defined?(Nomono) +# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. +# Bundler records that dependency during Gemfile evaluation, but it does not +# activate that exact version before the immediate `require "nomono/bundler"`. +# If multiple compatible nomono versions are installed, RubyGems may activate +# the newest installed version while Gemfile.lock pins an older compatible one; +# Bundler then aborts with "already activated nomono X, but your Gemfile +# requires nomono Y". Prefer the locked compatible version when present, then +# activate it explicitly before requiring the Bundler DSL extension used below. +nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] +nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) +if File.file?(nomono_lockfile) + nomono_locked_spec = Bundler::LockfileParser + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } + nomono_locked = nomono_locked_spec && + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked +end +Kernel.send(:gem, 'nomono', *nomono_activation_requirements) +require 'nomono/bundler' local_gems = %w[yard-fence yard-timekeeper yard-yaml] +declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) +local_gems_to_eval = local_gems - %w[go-merge] - declared_gems # export GALTZO_FLOSS_DEV=/path/to/galtzo-floss eval_nomono_gems( - gems: local_gems, + gems: local_gems_to_eval, prefix: 'GALTZO_FLOSS', path_env: 'GALTZO_FLOSS_DEV', vendored_gems_env: 'GALTZO_FLOSS_VENDORED_GEMS', diff --git a/gems/go-merge/gemfiles/modular/erb/r3/v5.0.gemfile b/gems/go-merge/gemfiles/modular/erb/r3/v5.0.gemfile index 0e3bf1b97..ec7ff451f 100644 --- a/gems/go-merge/gemfiles/modular/erb/r3/v5.0.gemfile +++ b/gems/go-merge/gemfiles/modular/erb/r3/v5.0.gemfile @@ -1 +1 @@ -gem 'erb', '~> 6.0', '>= 6.0.4' # ruby >= 3.2.0 +gem 'erb', '~> 6.0', '>= 6.0.6' # ruby >= 3.2.0 diff --git a/gems/go-merge/gemfiles/modular/erb/r4/v5.0.gemfile b/gems/go-merge/gemfiles/modular/erb/r4/v5.0.gemfile index 0e3bf1b97..ec7ff451f 100644 --- a/gems/go-merge/gemfiles/modular/erb/r4/v5.0.gemfile +++ b/gems/go-merge/gemfiles/modular/erb/r4/v5.0.gemfile @@ -1 +1 @@ -gem 'erb', '~> 6.0', '>= 6.0.4' # ruby >= 3.2.0 +gem 'erb', '~> 6.0', '>= 6.0.6' # ruby >= 3.2.0 diff --git a/gems/go-merge/gemfiles/modular/json/truffleruby_22_3.gemfile b/gems/go-merge/gemfiles/modular/json/truffleruby_22_3.gemfile new file mode 100644 index 000000000..9b2f8d96a --- /dev/null +++ b/gems/go-merge/gemfiles/modular/json/truffleruby_22_3.gemfile @@ -0,0 +1,6 @@ +# frozen_string_literal: true + +if RUBY_ENGINE == 'truffleruby' && RUBY_ENGINE_VERSION.start_with?('22.3') + # TruffleRuby 22.3 ships the json default gem from its emulated MRI Ruby. + gem 'json', '= 2.5.1' +end diff --git a/gems/go-merge/gemfiles/modular/json/truffleruby_23_0.gemfile b/gems/go-merge/gemfiles/modular/json/truffleruby_23_0.gemfile new file mode 100644 index 000000000..d787a5ef4 --- /dev/null +++ b/gems/go-merge/gemfiles/modular/json/truffleruby_23_0.gemfile @@ -0,0 +1,6 @@ +# frozen_string_literal: true + +if RUBY_ENGINE == 'truffleruby' && RUBY_ENGINE_VERSION.start_with?('23.0') + # TruffleRuby 23.0 ships the json default gem from its emulated MRI Ruby. + gem 'json', '= 2.6.1' +end diff --git a/gems/go-merge/gemfiles/modular/json/truffleruby_23_1.gemfile b/gems/go-merge/gemfiles/modular/json/truffleruby_23_1.gemfile new file mode 100644 index 000000000..d78486b0e --- /dev/null +++ b/gems/go-merge/gemfiles/modular/json/truffleruby_23_1.gemfile @@ -0,0 +1,6 @@ +# frozen_string_literal: true + +if RUBY_ENGINE == 'truffleruby' && RUBY_ENGINE_VERSION.start_with?('23.1') + # TruffleRuby 23.1 ships the json default gem from its emulated MRI Ruby. + gem 'json', '= 2.6.3' +end diff --git a/gems/go-merge/gemfiles/modular/optional.gemfile b/gems/go-merge/gemfiles/modular/optional.gemfile index ca08b46e1..9ea429538 100644 --- a/gems/go-merge/gemfiles/modular/optional.gemfile +++ b/gems/go-merge/gemfiles/modular/optional.gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -# To retain during go-merge templating: +# To retain during kettle-jem templating: # kettle-jem:freeze # # ... your code # kettle-jem:unfreeze @@ -10,7 +10,6 @@ # Required for curated binstubs generated by kettle-jem install gem 'rbs', '>= 3.0', require: false # ruby >= 3.1 -gem 'stone_checksums', '~> 1.0', '>= 1.0.3', require: false # ruby >= 2.2 # Required for kettle-pre-release # URL parsing with Unicode support (falls back to URI if not available) diff --git a/gems/go-merge/gemfiles/modular/runtime_heads.gemfile b/gems/go-merge/gemfiles/modular/runtime_heads.gemfile index 353bc7997..ebf17c529 100644 --- a/gems/go-merge/gemfiles/modular/runtime_heads.gemfile +++ b/gems/go-merge/gemfiles/modular/runtime_heads.gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -# To retain during go-merge templating: +# To retain during kettle-jem templating: # kettle-jem:freeze # # ... your code # kettle-jem:unfreeze @@ -8,7 +8,4 @@ # Test against HEAD of runtime dependencies so we can proactively file bugs -# Ruby >= 2.2 -gem 'version_gem', github: 'ruby-oauth/version_gem', branch: 'main' - eval_gemfile('x_std_libs/vHEAD.gemfile') diff --git a/gems/go-merge/gemfiles/modular/style.gemfile b/gems/go-merge/gemfiles/modular/style.gemfile index 6fbe829c7..4dbcc02c0 100644 --- a/gems/go-merge/gemfiles/modular/style.gemfile +++ b/gems/go-merge/gemfiles/modular/style.gemfile @@ -1,27 +1,30 @@ # frozen_string_literal: true -# To retain during go-merge templating: +# To retain during kettle-jem templating: # kettle-jem:freeze # # ... your code # kettle-jem:unfreeze # -# We run rubocop on the latest version of Ruby, -# but in support of the oldest supported version of Ruby +# Style tasks run on the latest Ruby; RuboCop-LTS selects the compatibility +# rules for the configured Ruby floor independently from task dependency floors. -gem 'reek', '~> 6.5' +gem 'reek', '~> 6.5', '>= 6.5.0' platform :mri do - gem 'rubocop-on-rbs', '~> 2.0' # ruby >= 3.2.0 + gem 'appraisal2-rubocop', '~> 1.0', '>= 1.0.0', require: false + gem 'rubocop-gradual', '~> 0.4', '>= 0.4.0' + gem 'rubocop-minitest', '~> 0.40', '>= 0.40.0' + gem 'rubocop-on-rbs', '~> 2.0', '>= 2.0.0' # ruby >= 3.2.0 # gem "rubocop", "~> 1.73", ">= 1.73.2" # constrained by standard gem 'rubocop-packaging', '~> 0.6', '>= 0.6.0' - gem 'standard', '>= 1.50' + gem 'standard', '~> 1.56', '>= 1.56.0' if ENV.fetch('RUBOCOP_LTS_LOCAL', 'false').casecmp('false').zero? - gem 'rubocop-lts', '~> 24.1.0' - # "rubocop-lts-rspec" can't add here until other gems are updated. - gem 'rubocop-rspec', '~> 3.6' - gem 'rubocop-ruby3_2', '~> 3.0.0' + declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) + gem 'rubocop-lts', '~> 24.2', '>= 24.2.1' unless declared_gems.include?('rubocop-lts') + gem 'rubocop-lts-rspec', '~> 1.0', '>= 1.0.5' unless declared_gems.include?('rubocop-lts-rspec') + gem 'rubocop-ruby3_2', '~> 3.0', '>= 3.0.6' unless declared_gems.include?('rubocop-ruby3_2') else eval_gemfile('style_local.gemfile') end diff --git a/gems/go-merge/gemfiles/modular/style_local.gemfile b/gems/go-merge/gemfiles/modular/style_local.gemfile index ce75bbe21..254e52a24 100644 --- a/gems/go-merge/gemfiles/modular/style_local.gemfile +++ b/gems/go-merge/gemfiles/modular/style_local.gemfile @@ -1,19 +1,41 @@ # frozen_string_literal: true -# We run rubocop on the latest version of Ruby, -# but in support of the oldest supported version of Ruby +# Style tasks run on the latest Ruby; RuboCop-LTS selects the compatibility +# rules for the configured Ruby floor independently from task dependency floors. # Local path overrides for development. # Loaded by the associated non-local gemfile when RUBOCOP_LTS_LOCAL != "false". -require 'nomono/bundler' unless defined?(Nomono) +# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. +# Bundler records that dependency during Gemfile evaluation, but it does not +# activate that exact version before the immediate `require "nomono/bundler"`. +# If multiple compatible nomono versions are installed, RubyGems may activate +# the newest installed version while Gemfile.lock pins an older compatible one; +# Bundler then aborts with "already activated nomono X, but your Gemfile +# requires nomono Y". Prefer the locked compatible version when present, then +# activate it explicitly before requiring the Bundler DSL extension used below. +nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] +nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) +if File.file?(nomono_lockfile) + nomono_locked_spec = Bundler::LockfileParser + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } + nomono_locked = nomono_locked_spec && + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked +end +Kernel.send(:gem, 'nomono', *nomono_activation_requirements) +require 'nomono/bundler' local_gems = %w[rubocop-lts rubocop-lts-rspec rubocop-ruby3_2 standard-rubocop-lts] +declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) +local_gems_to_eval = local_gems - %w[go-merge] - declared_gems # export VENDORED_GEMS=rubocop-lts,rubocop-lts-rspec,rubocop-ruby3_2,standard-rubocop-lts platform :mri do eval_nomono_gems( - gems: local_gems, + gems: local_gems_to_eval, prefix: 'RUBOCOP_LTS', path_env: 'RUBOCOP_LTS_LOCAL', vendored_gems_env: 'VENDORED_GEMS', diff --git a/gems/go-merge/gemfiles/modular/templating.gemfile b/gems/go-merge/gemfiles/modular/templating.gemfile index 2ddc9433f..a672de184 100644 --- a/gems/go-merge/gemfiles/modular/templating.gemfile +++ b/gems/go-merge/gemfiles/modular/templating.gemfile @@ -12,13 +12,13 @@ end if kettle_remote # Template/plugin checks for released installs. - gem 'kettle-drift', '~> 1.0', '>= 1.0.5', require: false + gem 'kettle-drift', '~> 1.0', '>= 1.0.6', require: false end # Set STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local development with path-based dependencies. # When false (default / CI), released kettle-jem brings merge gems and parser dependencies. # Local path overrides bring the same dependencies from sibling gemspecs. # -# Set KETTLE_DEV_DEV=/path/to/kettle-rb for local development with Kettle plugin gems. +# Set KETTLE_DEV_DEV=/path/to/my for local development with Kettle plugin gems. # When false (default / CI), released Kettle plugin gems are used. eval_gemfile 'templating_local.gemfile' unless structuredmerge_remote && kettle_remote diff --git a/gems/go-merge/gemfiles/modular/templating_local.gemfile b/gems/go-merge/gemfiles/modular/templating_local.gemfile index eb14575f9..d365caff2 100644 --- a/gems/go-merge/gemfiles/modular/templating_local.gemfile +++ b/gems/go-merge/gemfiles/modular/templating_local.gemfile @@ -4,7 +4,27 @@ # Loaded by the associated non-local gemfile when STRUCTUREDMERGE_DEV or KETTLE_DEV_DEV # is not "false". -require 'nomono/bundler' unless defined?(Nomono) +# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. +# Bundler records that dependency during Gemfile evaluation, but it does not +# activate that exact version before the immediate `require "nomono/bundler"`. +# If multiple compatible nomono versions are installed, RubyGems may activate +# the newest installed version while Gemfile.lock pins an older compatible one; +# Bundler then aborts with "already activated nomono X, but your Gemfile +# requires nomono Y". Prefer the locked compatible version when present, then +# activate it explicitly before requiring the Bundler DSL extension used below. +nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] +nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) +if File.file?(nomono_lockfile) + nomono_locked_spec = Bundler::LockfileParser + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } + nomono_locked = nomono_locked_spec && + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked +end +Kernel.send(:gem, 'nomono', *nomono_activation_requirements) +require 'nomono/bundler' structuredmerge_local_gems = %w[ tree_haver diff --git a/gems/go-merge/gemfiles/modular/webrick/r4/v1.9.gemfile b/gems/go-merge/gemfiles/modular/webrick/r4/v1.9.gemfile new file mode 100644 index 000000000..b1329ba84 --- /dev/null +++ b/gems/go-merge/gemfiles/modular/webrick/r4/v1.9.gemfile @@ -0,0 +1 @@ +gem 'webrick', '~> 1.9' diff --git a/gems/go-merge/gemfiles/modular/webrick/vHEAD.gemfile b/gems/go-merge/gemfiles/modular/webrick/vHEAD.gemfile new file mode 100644 index 000000000..c7e6f81a1 --- /dev/null +++ b/gems/go-merge/gemfiles/modular/webrick/vHEAD.gemfile @@ -0,0 +1 @@ +gem 'webrick', '>= 1.9' diff --git a/gems/go-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile b/gems/go-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile index bd4e884df..e2f6501eb 100644 --- a/gems/go-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile +++ b/gems/go-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile @@ -2,3 +2,5 @@ eval_gemfile '../../erb/r4/v5.0.gemfile' eval_gemfile '../../mutex_m/r4/v0.3.gemfile' eval_gemfile '../../stringio/r4/v3.0.gemfile' eval_gemfile '../../benchmark/r4/v0.5.gemfile' +eval_gemfile '../../cgi/r4/v0.5.gemfile' +eval_gemfile '../../webrick/r4/v1.9.gemfile' diff --git a/gems/go-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile b/gems/go-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile index 91f383c11..ab75cccf1 100644 --- a/gems/go-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile +++ b/gems/go-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile @@ -2,3 +2,5 @@ eval_gemfile '../erb/vHEAD.gemfile' eval_gemfile '../mutex_m/vHEAD.gemfile' eval_gemfile '../stringio/vHEAD.gemfile' eval_gemfile '../benchmark/vHEAD.gemfile' +eval_gemfile '../cgi/vHEAD.gemfile' +eval_gemfile '../webrick/vHEAD.gemfile' diff --git a/gems/go-merge/lib/go/merge/version.rb b/gems/go-merge/lib/go/merge/version.rb index 7a12d28aa..d576fba8a 100644 --- a/gems/go-merge/lib/go/merge/version.rb +++ b/gems/go-merge/lib/go/merge/version.rb @@ -3,7 +3,7 @@ module Go module Merge module Version - VERSION = "7.1.0" + VERSION = '7.1.0' end VERSION = Version::VERSION # Traditional Constant Location end diff --git a/gems/rust-merge/.kettle-drift.lock b/gems/rust-merge/.kettle-drift.lock index 09df60df7..43dfedd67 100644 --- a/gems/rust-merge/.kettle-drift.lock +++ b/gems/rust-merge/.kettle-drift.lock @@ -1,122 +1,10 @@ { - "(direct_sibling_local ||\nENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?)": [ - { - "file": "Gemfile", - "lines": [ - 80, - 120, - 160, - 200, - 240, - 280, - 320, - 360 - ] - } - ], - ".find { |spec| spec.name == 'nomono' }\nnomono_locked = nomono_locked_spec &&": [ - { - "file": "Gemfile", - "lines": [ - 91, - 131, - 171, - 211, - 251, - 291, - 331, - 371 - ] - } - ], - "ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?)\ndirect_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV')": [ - { - "file": "Gemfile", - "lines": [ - 81, - 121, - 161, - 201, - 241, - 281, - 321, - 361 - ] - } - ], - "Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version)\nnomono_activation_requirements = [\"= #{nomono_locked_spec.version}\"] if nomono_locked": [ - { - "file": "Gemfile", - "lines": [ - 93, - 133, - 173, - 213, - 253, - 293, - 333, - 373 - ] - } - ], - "Kernel.send(:gem, 'nomono', *nomono_activation_requirements)\nrequire 'nomono/bundler'": [ - { - "file": "Gemfile", - "lines": [ - 96, - 136, - 176, - 216, - 256, - 296, - 336, - 376 - ] - } - ], - "direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV')\ndirect_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil)": [ - { - "file": "Gemfile", - "lines": [ - 82, - 122, - 162, - 202, - 242, - 282, - 322, - 362 - ] - } - ], "eval_nomono_gems(\ngems: direct_sibling_gems,": [ { "file": "Gemfile", "lines": [ 60, - 100, - 140, - 180, - 220, - 260, - 300, - 340, - 380 - ] - } - ], - "gems: direct_sibling_gems,\nprefix: 'STRUCTUREDMERGE',": [ - { - "file": "Gemfile", - "lines": [ - 101, - 141, - 181, - 221, - 261, - 301, - 341, - 381 + 100 ] } ], @@ -125,29 +13,7 @@ "file": "Gemfile", "lines": [ 43, - 87, - 127, - 167, - 207, - 247, - 287, - 327, - 367 - ] - } - ], - "if direct_sibling_dev_was_set\nENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original": [ - { - "file": "Gemfile", - "lines": [ - 110, - 150, - 190, - 230, - 270, - 310, - 350, - 390 + 87 ] } ], @@ -156,14 +22,7 @@ "file": "Gemfile", "lines": [ 35, - 79, - 119, - 159, - 199, - 239, - 279, - 319, - 359 + 79 ] } ], @@ -172,29 +31,7 @@ "file": "Gemfile", "lines": [ 69, - 109, - 149, - 189, - 229, - 269, - 309, - 349, - 389 - ] - } - ], - "nomono_activation_requirements = nomono_requirements\nnomono_lockfile = File.expand_path('Gemfile.lock', __dir__)": [ - { - "file": "Gemfile", - "lines": [ - 85, - 125, - 165, - 205, - 245, - 285, - 325, - 365 + 109 ] } ], @@ -203,14 +40,7 @@ "file": "Gemfile", "lines": [ 48, - 92, - 132, - 172, - 212, - 252, - 292, - 332, - 372 + 92 ] } ], @@ -219,98 +49,7 @@ "file": "Gemfile", "lines": [ 44, - 88, - 128, - 168, - 208, - 248, - 288, - 328, - 368 - ] - } - ], - "nomono_lockfile = File.expand_path('Gemfile.lock', __dir__)\nif File.file?(nomono_lockfile)": [ - { - "file": "Gemfile", - "lines": [ - 86, - 126, - 166, - 206, - 246, - 286, - 326, - 366 - ] - } - ], - "path_env: 'STRUCTUREDMERGE_DEV',\nroot: %w[src my structuredmerge]": [ - { - "file": "Gemfile", - "lines": [ - 103, - 143, - 183, - 223, - 263, - 303, - 343, - 383 - ] - } - ], - "prefix: 'STRUCTUREDMERGE',\npath_env: 'STRUCTUREDMERGE_DEV',": [ - { - "file": "Gemfile", - "lines": [ - 102, - 142, - 182, - 222, - 262, - 302, - 342, - 382 - ] - } - ], - "require 'nomono/bundler'\nENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local": [ - { - "file": "Gemfile", - "lines": [ - 97, - 137, - 177, - 217, - 257, - 297, - 337, - 377 - ] - } - ], - "rescue LoadError\nwarn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.'": [ - { - "file": "Gemfile", - "lines": [ - 106, - 146, - 186, - 226, - 266, - 306, - 346, - 386 - ] - } - ], - "vendored_gems_env: 'VENDORED_GEMS',\nvendor_gem_dir_env: 'VENDOR_GEM_DIR',": [ - { - "file": "gemfiles/modular/templating_local.gemfile", - "lines": [ - 60, - 71 + 88 ] } ] diff --git a/gems/rust-merge/.structuredmerge/kettle-jem.yml b/gems/rust-merge/.structuredmerge/kettle-jem.yml index e489166c4..58529b599 100644 --- a/gems/rust-merge/.structuredmerge/kettle-jem.yml +++ b/gems/rust-merge/.structuredmerge/kettle-jem.yml @@ -246,6 +246,59 @@ templates: - Gemfile - certs/pboling.pem - tmp/.gitignore + - gemfiles/modular/benchmark/r4/v0.5.gemfile + - gemfiles/modular/benchmark/vHEAD.gemfile + - gemfiles/modular/cgi/r4/v0.5.gemfile + - gemfiles/modular/cgi/vHEAD.gemfile + - gemfiles/modular/coverage.gemfile + - gemfiles/modular/coverage_local.gemfile + - gemfiles/modular/debug.gemfile + - gemfiles/modular/documentation.gemfile + - gemfiles/modular/documentation_local.gemfile + - gemfiles/modular/erb/r2.3/default.gemfile + - gemfiles/modular/erb/r2.6/v2.2.gemfile + - gemfiles/modular/erb/r2/v3.0.gemfile + - gemfiles/modular/erb/r3.1/v4.0.gemfile + - gemfiles/modular/erb/r3/v5.0.gemfile + - gemfiles/modular/erb/r4/v5.0.gemfile + - gemfiles/modular/erb/vHEAD.gemfile + - gemfiles/modular/json/truffleruby_22_3.gemfile + - gemfiles/modular/json/truffleruby_23_0.gemfile + - gemfiles/modular/json/truffleruby_23_1.gemfile + - gemfiles/modular/mutex_m/r2.4/v0.1.gemfile + - gemfiles/modular/mutex_m/r2/v0.3.gemfile + - gemfiles/modular/mutex_m/r3/v0.3.gemfile + - gemfiles/modular/mutex_m/r4/v0.3.gemfile + - gemfiles/modular/mutex_m/vHEAD.gemfile + - gemfiles/modular/optional.gemfile + - gemfiles/modular/recording/r2.3/recording.gemfile + - gemfiles/modular/recording/r2.4/recording.gemfile + - gemfiles/modular/recording/r2.5/recording.gemfile + - gemfiles/modular/recording/r3/recording.gemfile + - gemfiles/modular/recording/r4/recording.gemfile + - gemfiles/modular/recording/vHEAD.gemfile + - gemfiles/modular/rspec.gemfile + - gemfiles/modular/runtime_heads.gemfile + - gemfiles/modular/stringio/r2.4/v0.0.2.gemfile + - gemfiles/modular/stringio/r2/v3.0.gemfile + - gemfiles/modular/stringio/r3/v3.0.gemfile + - gemfiles/modular/stringio/r4/v3.0.gemfile + - gemfiles/modular/stringio/vHEAD.gemfile + - gemfiles/modular/style.gemfile + - gemfiles/modular/style_local.gemfile + - gemfiles/modular/templating.gemfile + - gemfiles/modular/templating_local.gemfile + - gemfiles/modular/webrick/r4/v1.9.gemfile + - gemfiles/modular/webrick/vHEAD.gemfile + - gemfiles/modular/x_std_libs.gemfile + - gemfiles/modular/x_std_libs/r2.3/libs.gemfile + - gemfiles/modular/x_std_libs/r2.4/libs.gemfile + - gemfiles/modular/x_std_libs/r2.6/libs.gemfile + - gemfiles/modular/x_std_libs/r2/libs.gemfile + - gemfiles/modular/x_std_libs/r3.1/libs.gemfile + - gemfiles/modular/x_std_libs/r3/libs.gemfile + - gemfiles/modular/x_std_libs/r4/libs.gemfile + - gemfiles/modular/x_std_libs/vHEAD.gemfile - source: lib/gem/version.rb target: lib/rust/merge/version.rb - source: sig/gem.rbs diff --git a/gems/rust-merge/Gemfile b/gems/rust-merge/Gemfile index cd826beb6..bb9103ba9 100644 --- a/gems/rust-merge/Gemfile +++ b/gems/rust-merge/Gemfile @@ -6,7 +6,7 @@ # kettle-jem will then preserve content between those markers across template runs. # kettle-jem:unfreeze -source 'https://gem.coop' +source "https://gem.coop" git_source(:codeberg) { |repo_name| "https://codeberg.org/#{repo_name}" } git_source(:gitlab) { |repo_name| "https://gitlab.com/#{repo_name}" } @@ -19,18 +19,62 @@ git_source(:gitlab) { |repo_name| "https://gitlab.com/#{repo_name}" } gemspec # Local workspace dependency wiring for *_local.gemfile overrides -nomono_requirements = ['~> 1.0', '>= 1.0.8'] -gem 'nomono', *nomono_requirements, require: false # ruby >= 2.2 +nomono_requirements = ["~> 1.0", ">= 1.0.8"] +gem "nomono", *nomono_requirements, require: false # ruby >= 2.2 # Direct sibling dependencies (env-switched via STRUCTUREDMERGE_DEV) direct_sibling_gems = %w[ ast-merge tree_haver ] -direct_sibling_dev = ENV.fetch('STRUCTUREDMERGE_DEV', '') +direct_sibling_dev = ENV.fetch("STRUCTUREDMERGE_DEV", "") direct_sibling_local = !direct_sibling_dev.empty? && !%w[false 0 no off].include?(direct_sibling_dev.downcase) -direct_sibling_templating = ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? +direct_sibling_templating = ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? + +if direct_sibling_gems.any? && + (direct_sibling_local || + ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero?) + direct_sibling_dev_was_set = ENV.key?("STRUCTUREDMERGE_DEV") + direct_sibling_dev_original = ENV.fetch("STRUCTUREDMERGE_DEV", nil) + begin + nomono_activation_requirements = nomono_requirements + nomono_lockfile = File.expand_path("Gemfile.lock", __dir__) + if File.file?(nomono_lockfile) + nomono_locked_spec = Bundler::LockfileParser + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == "nomono" } + nomono_locked = nomono_locked_spec && + Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) + if nomono_locked + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] + end + end + Kernel.send(:gem, "nomono", *nomono_activation_requirements) + require "nomono/bundler" + if direct_sibling_templating && !direct_sibling_local + ENV["STRUCTUREDMERGE_DEV"] = File.expand_path("..", __dir__) + end + + eval_nomono_gems( + gems: direct_sibling_gems, + prefix: "STRUCTUREDMERGE", + path_env: "STRUCTUREDMERGE_DEV", + root: ["src", "my", "structuredmerge"] + ) + rescue LoadError + warn "Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies." + ensure + if direct_sibling_templating && !direct_sibling_local + if direct_sibling_dev_was_set + ENV["STRUCTUREDMERGE_DEV"] = direct_sibling_dev_original + else + ENV.delete("STRUCTUREDMERGE_DEV") + end + end + end +end if direct_sibling_gems.any? && (direct_sibling_local || @@ -73,28 +117,28 @@ if direct_sibling_gems.any? && end # Use released TSLP with the Ruby ABI platform-gem fix. -gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' +gem "tree_sitter_language_pack", "~> 1.13", ">= 1.13.3" # Templating (env-switched: STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local paths) -eval_gemfile 'gemfiles/modular/templating.gemfile' if ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? +eval_gemfile "gemfiles/modular/templating.gemfile" if ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? # Debugging -eval_gemfile 'gemfiles/modular/debug.gemfile' +eval_gemfile "gemfiles/modular/debug.gemfile" # Code Coverage (env-switched: KETTLE_DEV_DEV=true for local paths) -eval_gemfile 'gemfiles/modular/coverage.gemfile' +eval_gemfile "gemfiles/modular/coverage.gemfile" # Linting -eval_gemfile 'gemfiles/modular/style.gemfile' +eval_gemfile "gemfiles/modular/style.gemfile" # Documentation -eval_gemfile 'gemfiles/modular/documentation.gemfile' +eval_gemfile "gemfiles/modular/documentation.gemfile" # Optional -eval_gemfile 'gemfiles/modular/optional.gemfile' +eval_gemfile "gemfiles/modular/optional.gemfile" ### Std Lib Extracted Gems -eval_gemfile 'gemfiles/modular/x_std_libs.gemfile' +eval_gemfile "gemfiles/modular/x_std_libs.gemfile" # See unlocked_deps appraisal for more details on irb inclusion -gem 'irb', '~> 1.17' # ruby >= 2.7 +gem "irb", "~> 1.17" # ruby >= 2.7 diff --git a/gems/rust-merge/Gemfile.lock b/gems/rust-merge/Gemfile.lock index 01b54bdec..1991054ad 100644 --- a/gems/rust-merge/Gemfile.lock +++ b/gems/rust-merge/Gemfile.lock @@ -265,6 +265,23 @@ PATH tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) +PATH + remote: /var/home/pboling/src/my/kettle-dev/kettle-drift + specs: + kettle-drift (1.0.6) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /var/home/pboling/src/my/kettle-dev/kettle-soup-cover + specs: + kettle-soup-cover (3.0.4) + kettle-wash (~> 0.1, >= 0.1.0) + simplecov (>= 1.0) + simplecov-cobertura (>= 4.0) + simplecov-console (~> 0.9, >= 0.9.5) + simplecov-rcov (~> 0.3, >= 0.3.7) + simplecov_lcov_formatter (~> 0.9, >= 0.9.0) + GEM remote: https://gem.coop/ specs: @@ -275,6 +292,10 @@ GEM bundler (>= 1.17.3) rake (>= 10) thor (>= 0.14) + appraisal2-rubocop (1.0.0) + appraisal2 (>= 3.1.4) + rubocop (>= 1.0) + version_gem (~> 1.1, >= 1.1.14) ast (2.4.3) backports (3.25.3) benchmark (0.5.0) @@ -282,14 +303,13 @@ GEM bundler-audit (0.9.3) bundler (>= 1.2.0) thor (~> 1.0) + cgi (0.5.2) citrus (3.0.2) cmdparse (3.0.7) commonmarker (2.9.0-aarch64-linux) commonmarker (2.9.0-aarch64-linux-musl) commonmarker (2.9.0-arm64-darwin) - commonmarker (2.9.0-x86_64-darwin) commonmarker (2.9.0-x86_64-linux) - commonmarker (2.9.0-x86_64-linux-musl) concurrent-ruby (1.3.7) date (3.5.1) debug (1.11.1) @@ -298,7 +318,6 @@ GEM delegate (0.6.1) diff-lcs (1.6.2) diffy (3.4.4) - docile (1.4.1) dry-configurable (1.4.0) dry-core (~> 1.0) zeitwerk (~> 2.6) @@ -329,7 +348,7 @@ GEM dry-logic (~> 1.4) zeitwerk (~> 2.6) emoji_regex (15.0.0) - erb (6.0.5) + erb (6.0.6) gem_bench (2.0.5) bundler (>= 1.14) version_gem (~> 1.1, >= 1.1.4) @@ -353,18 +372,7 @@ GEM kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) - kettle-drift (1.0.6) - version_gem (~> 1.1, >= 1.1.14) kettle-rb (0.1.4) - kettle-soup-cover (1.1.3) - simplecov (~> 0.22) - simplecov-cobertura (~> 3.0) - simplecov-console (~> 0.9, >= 0.9.3) - simplecov-html (~> 0.13, >= 0.13.1) - simplecov-lcov (~> 0.8) - simplecov-rcov (~> 0.3, >= 0.3.7) - simplecov_json_formatter (~> 0.1, >= 0.1.4) - version_gem (~> 1.1, >= 1.1.9) kettle-test (2.0.11) appraisal2 (~> 3.0, >= 3.0.6) backports (~> 3.0) @@ -376,6 +384,8 @@ GEM silent_stream (~> 1.0, >= 1.0.12) timecop-rspec (~> 1.0, >= 1.0.3) turbo_tests2 (~> 3.1, >= 3.1.12) + kettle-wash (0.1.1) + version_gem (~> 1.1, >= 1.1.14) kramdown (2.5.2) rexml (>= 3.4.4) kramdown-parser-gfm (1.1.0) @@ -391,13 +401,11 @@ GEM racc (~> 1.4) nokogiri (1.19.4-arm64-darwin) racc (~> 1.4) - nokogiri (1.19.4-x86_64-darwin) - racc (~> 1.4) nokogiri (1.19.4-x86_64-linux-gnu) racc (~> 1.4) nokogiri (1.19.4-x86_64-linux-musl) racc (~> 1.4) - nomono (1.0.8) + nomono (1.0.9) openssl (4.0.2) ostruct (0.6.3) parallel (1.28.0) @@ -473,6 +481,14 @@ GEM rubocop-ast (1.50.0) parser (>= 3.3.7.2) prism (~> 1.7) + rubocop-capybara (2.23.0) + lint_roller (~> 1.1) + rubocop (~> 1.81) + rubocop-env (0.1.0) + rubocop + rubocop-factory_bot (2.28.0) + lint_roller (~> 1.1) + rubocop (~> 1.72, >= 1.72.1) rubocop-gradual (0.4.0) benchmark diff-lcs (>= 1.2.0, < 2.0) @@ -480,13 +496,26 @@ GEM parallel (~> 1.10) rainbow (>= 2.2.2, < 4.0) rubocop (~> 1.0) - rubocop-lts (24.1.0) - rubocop-ruby3_2 (>= 3.0.0, < 4) - standard-rubocop-lts (>= 2.0.2, < 3) - version_gem (>= 1.1.2, < 3) + rubocop-lts (24.2.2) + rubocop-ruby3_2 (~> 3.0, >= 3.0.1) + standard-rubocop-lts (~> 2.0, >= 2.0.3) + version_gem (~> 1.1, >= 1.1.13) + rubocop-lts-rspec (1.0.5) + rubocop (~> 1.84, >= 1.84.2) + rubocop-env (~> 0.1, >= 0.1.0) + rubocop-factory_bot (~> 2.28, >= 2.28.0) + rubocop-rspec (~> 3.9, >= 3.9.0) + rubocop-rspec-extra (~> 0.3, >= 0.3.0) + standard (~> 1.54, >= 1.54.0) + standard-rspec (~> 0.5, >= 0.5.0) + version_gem (~> 1.1, >= 1.1.13) rubocop-md (2.0.4) lint_roller (~> 1.1) rubocop (>= 1.72.1) + rubocop-minitest (0.40.0) + lint_roller (~> 1.1) + rubocop (>= 1.75.0, < 2.0) + rubocop-ast (>= 1.38.0, < 2.0) rubocop-on-rbs (2.0.0) lint_roller (~> 1.1) rbs (~> 4.0) @@ -506,6 +535,13 @@ GEM lint_roller (~> 1.1) regexp_parser (>= 2.0) rubocop (~> 1.86, >= 1.86.2) + rubocop-rspec-extra (0.3.0) + lint_roller (~> 1.1) + rubocop (>= 1.72.1, < 2.0) + rubocop-rspec_rails (2.32.0) + lint_roller (~> 1.1) + rubocop (~> 1.72, >= 1.72.1) + rubocop-rspec (~> 3.5) rubocop-ruby3_2 (3.0.7) rubocop-gradual (~> 0.3, >= 0.3.6) rubocop-md (~> 2.0, >= 2.0.4) @@ -525,22 +561,18 @@ GEM silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) - simplecov (0.22.0) - docile (~> 1.1) - simplecov-html (~> 0.11) - simplecov_json_formatter (~> 0.1) - simplecov-cobertura (3.2.0) + simplecov (1.0.2) + simplecov-cobertura (4.0.0) rexml - simplecov (~> 0.19) + simplecov (~> 1.0) simplecov-console (0.9.5) ansi simplecov terminal-table - simplecov-html (0.13.2) - simplecov-lcov (0.9.0) simplecov-rcov (0.3.7) simplecov (>= 0.4.1) - simplecov_json_formatter (0.1.4) + simplecov_lcov_formatter (0.9.0) + simplecov (>= 0.18) sorbet-runtime (0.6.13347) standard (1.56.0) language_server-protocol (~> 3.17.0.2) @@ -554,6 +586,12 @@ GEM standard-performance (1.9.0) lint_roller (~> 1.1) rubocop-performance (~> 1.26.0) + standard-rspec (0.5.0) + lint_roller (>= 1.0) + rubocop-capybara (~> 2.23) + rubocop-factory_bot (~> 2.27) + rubocop-rspec (~> 3.9) + rubocop-rspec_rails (~> 2.31) standard-rubocop-lts (2.0.10) standard (~> 1.54, >= 1.54.0) standard-custom (~> 1.0, >= 1.0.2) @@ -583,8 +621,6 @@ GEM sorbet-runtime (~> 0.5) tree_sitter_language_pack (1.13.3-arm64-darwin) sorbet-runtime (~> 0.5) - tree_sitter_language_pack (1.13.3-x86_64-darwin) - sorbet-runtime (~> 0.5) tree_sitter_language_pack (1.13.3-x86_64-linux) sorbet-runtime (~> 0.5) tsort (0.2.0) @@ -596,6 +632,7 @@ GEM unicode-emoji (~> 4.1) unicode-emoji (4.2.0) version_gem (1.1.14) + webrick (1.9.2) yaml-converter (0.2.3) hexapdf (>= 1.8, < 2) kramdown (>= 2.4, < 3) @@ -626,13 +663,14 @@ PLATFORMS aarch64-linux-gnu aarch64-linux-musl arm64-darwin - x86_64-darwin + x86_64-linux x86_64-linux-gnu x86_64-linux-musl DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) + appraisal2-rubocop (~> 1.0, >= 1.0.0) ast-crispr! ast-crispr-markdown-markly! ast-crispr-ruby-prism! @@ -643,22 +681,23 @@ DEPENDENCIES benchmark (~> 0.5, >= 0.5.0) binary-merge! bundler-audit (~> 0.9.3) + cgi (~> 0.5) citrus-toml-merge! commonmarker-merge! debug (>= 1.1) dotenv-merge! - erb (~> 6.0, >= 6.0.4) + erb (~> 6.0, >= 6.0.6) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.0) go-merge! irb (~> 1.17) json-merge! kettle-dev (~> 2.0, >= 2.2.25) - kettle-drift (~> 1.0, >= 1.0.5) + kettle-drift! kettle-jem! - kettle-soup-cover (~> 1.0, >= 1.1.3) + kettle-soup-cover! kettle-test (~> 2.0, >= 2.0.9) - kramdown (~> 2.5, >= 2.5.1) + kramdown (~> 2.5, >= 2.5.2) kramdown-merge! kramdown-parser-gfm (~> 1.1) markdown-merge! @@ -673,38 +712,42 @@ DEPENDENCIES rbs (>= 3.0) rbs-merge! rdoc (~> 6.11) - reek (~> 6.5) + reek (~> 6.5, >= 6.5.0) require_bench (~> 1.0, >= 1.0.4) - rubocop-lts (~> 24.1.0) - rubocop-on-rbs (~> 2.0) + rubocop-gradual (~> 0.4, >= 0.4.0) + rubocop-lts (~> 24.2, >= 24.2.1) + rubocop-lts-rspec (~> 1.0, >= 1.0.5) + rubocop-minitest (~> 0.40, >= 0.40.0) + rubocop-on-rbs (~> 2.0, >= 2.0.0) rubocop-packaging (~> 0.6, >= 0.6.0) - rubocop-rspec (~> 3.6) - rubocop-ruby3_2 (~> 3.0.0) + rubocop-ruby3_2 (~> 3.0, >= 3.0.6) ruby-merge! ruby-progressbar (~> 1.13) rust-merge! smorg-rb! - standard (>= 1.50) + standard (~> 1.56, >= 1.56.0) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) toml-merge! tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) typescript-merge! - yaml-converter (~> 0.1) + webrick (~> 1.9) + yaml-converter (~> 0.2, >= 0.2.3) yaml-merge! - yard (~> 0.9, >= 0.9.44) - yard-fence (~> 0.9, >= 0.9.1) + yard (~> 0.9, >= 0.9.45) + yard-fence (~> 0.9, >= 0.9.6) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) - yard-timekeeper (~> 0.1) - yard-yaml (~> 0.1, >= 0.1.2) + yard-timekeeper (~> 0.2, >= 0.2.4) + yard-yaml (~> 0.2, >= 0.2.3) zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af ansi (1.6.0) sha256=ac9ea0c0ea8d32fb4e271348e609963ac78882f34b73836c2a02b3622e666658 appraisal2 (3.2.0) sha256=ccd0b767ac4060cd7af6d16747459b6990f49c39c7b4fb1f7d1146b1e97c492f + appraisal2-rubocop (1.0.0) sha256=b71410fbb014befda5340605a605b7f6f3f012739baf0acc5b4351b592c3258d ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 ast-crispr (7.1.0) ast-crispr-markdown-markly (7.1.0) @@ -718,15 +761,14 @@ CHECKSUMS bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 + cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 commonmarker (2.9.0-aarch64-linux) sha256=e2b4aadb9a2cfa4e206582641ce3a49465549ac1ed4c289fdd63b78d8f24579c commonmarker (2.9.0-aarch64-linux-musl) sha256=1cf4d2821f2a7e64945f1ed7c4eeced586fdb27ea7fe7337788802cf8f57cfca commonmarker (2.9.0-arm64-darwin) sha256=1748dbfa4f5813b0d2a14bb4bbfa65a4ec293aa1c825016d60029ee0e132b046 - commonmarker (2.9.0-x86_64-darwin) sha256=0a9914ccfd2f5d2a59c7bd0dda4fe90eb084cf513b477e499008e09ec9d6edd6 commonmarker (2.9.0-x86_64-linux) sha256=8cfe92970eef585a19ddf6613224b91cab64d6029834661bda801f877c9c7f43 - commonmarker (2.9.0-x86_64-linux-musl) sha256=293921398b839f79ceaf55010e061357e34f053822c3b003cd0be6686176335e commonmarker-merge (7.1.0) concurrent-ruby (1.3.7) sha256=4412caec3a5ea2e5fdc52076724c071a81f2c0593d83b2ac8cbb8ca63b3151b0 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 @@ -734,7 +776,6 @@ CHECKSUMS delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 - docile (1.4.1) sha256=96159be799bfa73cdb721b840e9802126e4e03dfc26863db73647204c727f21e dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 @@ -744,7 +785,7 @@ CHECKSUMS dry-schema (1.16.0) sha256=cd3aaeabc0f1af66ec82a29096d4c4fb92a0a58b9dae29a22b1bbceb78985727 dry-types (1.9.1) sha256=baebeecdb9f8395d6c9d227b62011279440943e3ef2468fe8ccc1ba11467f178 emoji_regex (15.0.0) sha256=a508b2c0bee561169564e0aec96085020c900520d335e5533fd8e78e59493829 - erb (6.0.5) sha256=858e63488cb796c9daba8b6e9ff4b3879c395022049be9a66a8e00980e612eac + erb (6.0.6) sha256=a9b24986700f5bf127c4f297c5403c3ca41b83b0a316c0cd09a096b56e644ae5 gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f @@ -755,11 +796,12 @@ CHECKSUMS json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 json-merge (7.1.0) kettle-dev (2.3.7) sha256=eb370113cd030d03cbe2d33b31c99858951017e5ad21a17e9ed89dc3770028ee - kettle-drift (1.0.6) sha256=46eda08fa4411d1f3c6682a95eef1c9df4e94611b3949f49d4c7b43c0ed356a3 + kettle-drift (1.0.6) kettle-jem (7.1.0) kettle-rb (0.1.4) sha256=9cef7ce4f7021666b7222292f29051e51eaf042e8a5db11f3f4dd72f74243fc1 - kettle-soup-cover (1.1.3) sha256=a373827da22a7131d093afd32945e5b7d7a10a01ebfdded8fd2cb8230d69c8ad + kettle-soup-cover (3.0.4) kettle-test (2.0.11) sha256=c710c90f7ab79d51f9452f0c09f5f90657e7a893f63583855c164d0b1b107ab2 + kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 @@ -773,10 +815,9 @@ CHECKSUMS nokogiri (1.19.4-aarch64-linux-gnu) sha256=1269fb644a6de405057a53dd5c762b1209b43ca7424f839454d3dbc677c31a8f nokogiri (1.19.4-aarch64-linux-musl) sha256=35c65b9ce72b3bb03207bdbe7067915019dc18c1b9b59139684bd6690fdd01af nokogiri (1.19.4-arm64-darwin) sha256=a46db9853286e6597b36ebc6953817d15acf3a299583eb3f89fdc6f91dd63527 - nokogiri (1.19.4-x86_64-darwin) sha256=7fd17057d3e1f00e9954a74b3cd76595d3d4a5ef233b7ed9599047c204f70551 nokogiri (1.19.4-x86_64-linux-gnu) sha256=379fae440b28915e3f19d752ce2dcf8465ed2b2fbefd2a7ca0dd497bc981a06a nokogiri (1.19.4-x86_64-linux-musl) sha256=17dfb7c1fa194ae02fbf7c51a7afc8d278045ab3fdacfd86f91d02d7b274470b - nomono (1.0.8) sha256=bf4b9b426cbf216ab17b70db474f691b8ae1f1e29de8db4b0ecd405e6e7e1c80 + nomono (1.0.9) openssl (4.0.2) sha256=1037ad2868ae58df9ad917891c0c0f9815a1172f6846d4bcdd508e4c2ee747c2 ostruct (0.6.3) sha256=95a2ed4a4bd1d190784e666b47b2d3f078e4a9efda2fccf18f84ddc6538ed912 parallel (1.28.0) sha256=33e6de1484baf2524792d178b0913fc8eb94c628d6cfe45599ad4458c638c970 @@ -814,14 +855,21 @@ CHECKSUMS rspec_junit_formatter (0.6.0) sha256=40dde674e6ae4e6cc0ff560da25497677e34fefd2338cc467a8972f602b62b15 rubocop (1.88.2) sha256=8def251c90cd955feb4daa3edc0ab56893250c4ce90ef81e6c80c03f9a939bbf rubocop-ast (1.50.0) sha256=b9ca88300da0803ee222ad20cdb30494c0a784eed06fdc35d254b06d662788db + rubocop-capybara (2.23.0) sha256=f9ea1ba3a7561ee8e88cf76fc378ce517ce5327155f305ee7b5c2500e5aee357 + rubocop-env (0.1.0) sha256=5ab9a259e71822bf514c8e900a9b68cc2f74ccc87d5493efcd03213f3068e718 + rubocop-factory_bot (2.28.0) sha256=4b17fc02124444173317e131759d195b0d762844a71a29fe8139c1105d92f0cb rubocop-gradual (0.4.0) sha256=9c7e584e6fef6c2539266a193a4572c970c22f99046fd6b0305bdde6228f96ad - rubocop-lts (24.1.0) sha256=9dcad4db2da2fe2f1f77f98c917d70e7c43eded703da14cd201d4be52a9272aa + rubocop-lts (24.2.2) sha256=be6c745e1bb61daebd6af3cc3227c60f95be9f642a080773cad7df14c5f9f174 + rubocop-lts-rspec (1.0.5) sha256=439552fd27440802cc499889e013bffa28aadc41adae5d4dfff3d984a2a809b4 rubocop-md (2.0.4) sha256=0d076b6b5e99dea2ddc928c4bd702497decb9a8400da7808091e02ebcafcfb93 + rubocop-minitest (0.40.0) sha256=353c698199115f12151144cf0b5a96f69bb9d77b660cf6536df2c4250c672a9d rubocop-on-rbs (2.0.0) sha256=ce74d1b3d5daead19f4b611623656c185821dfc9aed9c7079bb1e5d7d7c464be rubocop-packaging (0.6.0) sha256=fb92bd0fb48e6f8cdb1648d2249b0cd51c2497dcc87340132d22f01edbf558a7 rubocop-performance (1.26.1) sha256=cd19b936ff196df85829d264b522fd4f98b6c89ad271fa52744a8c11b8f71834 rubocop-rake (0.7.1) sha256=3797f2b6810c3e9df7376c26d5f44f3475eda59eb1adc38e6f62ecf027cbae4d rubocop-rspec (3.10.2) sha256=0b3e2ecc592cd10ecbf0095bb58d1e357905276e069643523cc19eb7495f65e2 + rubocop-rspec-extra (0.3.0) sha256=ee4b6484d0332a0d23c4a465eeb607e41888eb3d4ed479f850b9f5212514f787 + rubocop-rspec_rails (2.32.0) sha256=4a0d641c72f6ebb957534f539d9d0a62c47abd8ce0d0aeee1ef4701e892a9100 rubocop-ruby3_2 (3.0.7) sha256=f53dd6d286fb05186214fc6ec116783e7f837030918e8931c05de773e98f8466 rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 ruby-merge (7.1.0) @@ -831,18 +879,17 @@ CHECKSUMS rust-merge (7.1.0) service_actor (3.9.4) sha256=e63b523630b9a7e62959b2a90113b08d2565b5de9c148557b281ef847c9539ce silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 - simplecov (0.22.0) sha256=fe2622c7834ff23b98066bb0a854284b2729a569ac659f82621fc22ef36213a5 - simplecov-cobertura (3.2.0) sha256=70d702658677fcb20e5aceb6915ccf8bc62ff2ccd38b62b3ad5c9db5c0888740 + simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 + simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 - simplecov-html (0.13.2) sha256=bd0b8e54e7c2d7685927e8d6286466359b6f16b18cb0df47b508e8d73c777246 - simplecov-lcov (0.9.0) sha256=7a77a31e200a595ed4b0249493056efd0c920601f53d2ef135ca34ee796346cd simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc - simplecov_json_formatter (0.1.4) sha256=529418fbe8de1713ac2b2d612aa3daa56d316975d307244399fa4838c601b428 + simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed smorg-rb (7.1.0) sorbet-runtime (0.6.13347) sha256=54e7221d9f4b63f58aec79f3043752a9ba7810347c6ae0d903531591cc2d5f01 standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b standard-performance (1.9.0) sha256=49483d31be448292951d80e5e67cdcb576c2502103c7b40aec6f1b6e9c88e3f2 + standard-rspec (0.5.0) sha256=64d396524a65af47f5331b423d8cdd313e0267401647bb7892489ca89dad2973 standard-rubocop-lts (2.0.10) sha256=89708a505b7d8b24d2ac399a7520fcb9e764abc2ecb4289b631b5fe0e3b76617 stone_checksums (1.0.6) sha256=c775f830513d6c6ab26e31d1a5fbecd4c4e39002663d4d9f8fa96e97990b5298 stringio (3.2.0) sha256=c37cb2e58b4ffbd33fe5cd948c05934af997b36e0b6ca6fdf43afa234cf222e1 @@ -858,7 +905,6 @@ CHECKSUMS tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-aarch64-linux) sha256=55ffc7c87868cb45658338363d9eba51b4a8b0259aa88e4de368d2bd1d52fea4 tree_sitter_language_pack (1.13.3-arm64-darwin) sha256=bc2498db605f212a1dbd2465ed3f65190d7da786f6ed5d30fcf958121aeb4a5c - tree_sitter_language_pack (1.13.3-x86_64-darwin) sha256=061f7da6e1cc4ba936fad436ee0653d7dfdfa4aa879cf555403e3aa373d43966 tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 @@ -866,6 +912,7 @@ CHECKSUMS unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 + webrick (1.9.2) sha256=beb4a15fc474defed24a3bda4ffd88a490d517c9e4e6118c3edce59e45864131 yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 yaml-merge (7.1.0) yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 diff --git a/gems/rust-merge/README.md b/gems/rust-merge/README.md index 036e48f0d..004ecb1cd 100644 --- a/gems/rust-merge/README.md +++ b/gems/rust-merge/README.md @@ -35,7 +35,7 @@ I've summarized my thoughts in [this blog post](https://dev.to/galtzo/hostile-ta | Tokens to Remember | [![Gem name][⛳️name-img]][⛳️gem-name] [![Gem namespace][⛳️namespace-img]][⛳️gem-namespace] | |-------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | Works with MRI Ruby 4 | [![Ruby current Compat][💎ruby-c-i]][🚎11-c-wf]| -| Support & Community | [![Join Me on Daily.dev's RubyFriends][✉️ruby-friends-img]][✉️ruby-friends] [![Live Chat on Discord][✉️discord-invite-img-ftb]][✉️discord-invite] [![Get help from me on Upwork][👨🏼‍🏫expsup-upwork-img]][👨🏼‍🏫expsup-upwork] [![Get help from me on Codementor][👨🏼‍🏫expsup-codementor-img]][👨🏼‍🏫expsup-codementor] | +| Support & Community | [![Join Me on Daily.dev's RubyFriends][✉️ruby-friends-img]][✉️ruby-friends] [![Get help from RubyForum][✉️ruby-forum-img]][✉️ruby-forum] [![Live Chat on Discord][✉️discord-invite-img-ftb]][✉️discord-invite] [![Get help from me on Upwork][👨🏼‍🏫expsup-upwork-img]][👨🏼‍🏫expsup-upwork] [![Get help from me on Codementor][👨🏼‍🏫expsup-codementor-img]][👨🏼‍🏫expsup-codementor] | | Source | [![Source on GitLab.com][📜src-gl-img]][📜src-gl] [![Source on CodeBerg.org][📜src-cb-img]][📜src-cb] [![Source on Github.com][📜src-gh-img]][📜src-gh] [![The best SHA: dQw4w9WgXcQ!][🧮kloc-img]][🧮kloc] | | Documentation | [![Current release on RubyDoc.info][📜docs-cr-rd-img]][🚎yard-current] [![YARD on Galtzo.com][📜docs-head-rd-img]][🚎yard-head] [![Maintainer Blog][🚂maint-blog-img]][🚂maint-blog] [![GitLab Wiki][📜gl-wiki-img]][📜gl-wiki] [![GitHub Wiki][📜gh-wiki-img]][📜gh-wiki] | | Compliance | [![License: AGPL-3.0-only OR PolyForm-Small-Business-1.0.0][📄license-img]][📄license] [![Apache license compatibility: Category X][📄license-compat-img]][📄license-compat] [![📄ilo-declaration-img]][📄ilo-declaration] [![Security Policy][🔐security-img]][🔐security] [![Contributor Covenant 2.1][🪇conduct-img]][🪇conduct] [![SemVer 2.0.0][📌semver-img]][📌semver] | @@ -180,6 +180,8 @@ If none of the available licenses suit your use case, please [contact us](mailto [✉️discord-invite-img-ftb]: https://img.shields.io/discord/1373797679469170758?style=for-the-badge&logo=discord [✉️ruby-friends-img]: https://img.shields.io/badge/daily.dev-%F0%9F%92%8E_Ruby_Friends-0A0A0A?style=for-the-badge&logo=dailydotdev&logoColor=white [✉️ruby-friends]: https://app.daily.dev/squads/rubyfriends +[✉️ruby-forum-img]: https://img.shields.io/badge/RubyForum-Help-CC342D?style=for-the-badge&logo=ruby&logoColor=white +[✉️ruby-forum]: https://www.rubyforum.org/c/help/8 [✇bundle-group-pattern]: https://gist.github.com/pboling/4564780 [⛳️gem-namespace]: https://github.com/structuredmerge/structuredmerge-ruby/tree/main/gems/rust-merge [⛳️namespace-img]: https://img.shields.io/badge/namespace-Rust::Merge-3C2D2D.svg?style=square&logo=ruby&logoColor=white diff --git a/gems/rust-merge/Rakefile b/gems/rust-merge/Rakefile index 08bf2fd67..0d02f3ef0 100644 --- a/gems/rust-merge/Rakefile +++ b/gems/rust-merge/Rakefile @@ -130,23 +130,23 @@ end ### DUPLICATE DRIFT TASKS begin - require 'kettle/drift' + require "kettle/drift" Kettle::Drift.install_tasks rescue LoadError - desc('(stub) kettle:drift:check is unavailable') - task('kettle:drift:check') do + desc("(stub) kettle:drift:check is unavailable") + task("kettle:drift:check") do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc('(stub) kettle:drift:update is unavailable') - task('kettle:drift:update') do + desc("(stub) kettle:drift:update is unavailable") + task("kettle:drift:update") do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc('(stub) kettle:drift:force_update is unavailable') - task('kettle:drift:force_update') do + desc("(stub) kettle:drift:force_update is unavailable") + task("kettle:drift:force_update") do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc('(stub) kettle:drift is unavailable') - task('kettle:drift' => 'kettle:drift:update') + desc("(stub) kettle:drift is unavailable") + task("kettle:drift" => "kettle:drift:update") end ### TEMPLATING TASKS diff --git a/gems/rust-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile b/gems/rust-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile index b8392fab0..dec650815 100644 --- a/gems/rust-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile +++ b/gems/rust-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.1 -gem 'benchmark', '~> 0.5', '>= 0.5.0' # Removed from Std Lib in Ruby 4.0 +gem "benchmark", "~> 0.5", ">= 0.5.0" # Removed from Std Lib in Ruby 4.0 diff --git a/gems/rust-merge/gemfiles/modular/benchmark/vHEAD.gemfile b/gems/rust-merge/gemfiles/modular/benchmark/vHEAD.gemfile index af214aafa..e1eb20c5e 100644 --- a/gems/rust-merge/gemfiles/modular/benchmark/vHEAD.gemfile +++ b/gems/rust-merge/gemfiles/modular/benchmark/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.1 -gem 'benchmark', github: 'ruby/benchmark', branch: 'master' +gem "benchmark", github: "ruby/benchmark", branch: "master" diff --git a/gems/rust-merge/gemfiles/modular/cgi/r4/v0.5.gemfile b/gems/rust-merge/gemfiles/modular/cgi/r4/v0.5.gemfile new file mode 100644 index 000000000..19ed967c3 --- /dev/null +++ b/gems/rust-merge/gemfiles/modular/cgi/r4/v0.5.gemfile @@ -0,0 +1 @@ +gem "cgi", "~> 0.5" diff --git a/gems/rust-merge/gemfiles/modular/cgi/vHEAD.gemfile b/gems/rust-merge/gemfiles/modular/cgi/vHEAD.gemfile new file mode 100644 index 000000000..ef8b816ce --- /dev/null +++ b/gems/rust-merge/gemfiles/modular/cgi/vHEAD.gemfile @@ -0,0 +1 @@ +gem "cgi", ">= 0.5" diff --git a/gems/rust-merge/gemfiles/modular/coverage.gemfile b/gems/rust-merge/gemfiles/modular/coverage.gemfile index f96d50954..52d737872 100644 --- a/gems/rust-merge/gemfiles/modular/coverage.gemfile +++ b/gems/rust-merge/gemfiles/modular/coverage.gemfile @@ -4,11 +4,11 @@ # Set KETTLE_DEV_DEV=true for local development with path-based dependencies. # When false (default / CI), remote released gems are used. -if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? +if ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false").zero? # Coverage (remote/released) platform :mri do - gem 'kettle-soup-cover', '~> 1.0', '>= 1.1.3', require: false + gem "kettle-soup-cover", "~> 3.0", ">= 3.0.3", require: false end else - eval_gemfile 'coverage_local.gemfile' + eval_gemfile "coverage_local.gemfile" end diff --git a/gems/rust-merge/gemfiles/modular/coverage_local.gemfile b/gems/rust-merge/gemfiles/modular/coverage_local.gemfile index 636b23158..3ec683a62 100644 --- a/gems/rust-merge/gemfiles/modular/coverage_local.gemfile +++ b/gems/rust-merge/gemfiles/modular/coverage_local.gemfile @@ -3,31 +3,53 @@ # Local path overrides for development. # Loaded by the associated non-local gemfile when KETTLE_DEV_DEV != "false". -require 'nomono/bundler' unless defined?(Nomono) +# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. +# Bundler records that dependency during Gemfile evaluation, but it does not +# activate that exact version before the immediate `require "nomono/bundler"`. +# If multiple compatible nomono versions are installed, RubyGems may activate +# the newest installed version while Gemfile.lock pins an older compatible one; +# Bundler then aborts with "already activated nomono X, but your Gemfile +# requires nomono Y". Prefer the locked compatible version when present, then +# activate it explicitly before requiring the Bundler DSL extension used below. +nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] +nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) +if File.file?(nomono_lockfile) + nomono_locked_spec = Bundler::LockfileParser + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == "nomono" } + nomono_locked = nomono_locked_spec && + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + if nomono_locked + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] + end +end +Kernel.send(:gem, "nomono", *nomono_activation_requirements) +require "nomono/bundler" local_gems = %w[kettle-dev kettle-test kettle-soup-cover kettle-drift] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) local_gems_to_eval = local_gems - %w[rust-merge] - declared_gems -# export KETTLE_DEV_DEV=/path/to/kettle-rb +# export KETTLE_DEV_DEV=/path/to/my platform :mri do eval_nomono_gems( gems: local_gems_to_eval, - prefix: 'KETTLE_DEV', - path_env: 'KETTLE_DEV_DEV', - vendored_gems_env: 'VENDORED_GEMS', - vendor_gem_dir_env: 'VENDOR_GEM_DIR', - debug_env: 'KETTLE_DEV_DEBUG' + prefix: "KETTLE_DEV", + path_env: "KETTLE_DEV_DEV", + vendored_gems_env: "VENDORED_GEMS", + vendor_gem_dir_env: "VENDOR_GEM_DIR", + debug_env: "KETTLE_DEV_DEBUG" ) - if ENV.fetch('GALTZO_FLOSS_DEV', 'false').casecmp('false') != 0 + if ENV.fetch("GALTZO_FLOSS_DEV", "false").casecmp("false") != 0 eval_nomono_gems( gems: %w[turbo_tests2], - prefix: 'GALTZO_FLOSS', - path_env: 'GALTZO_FLOSS_DEV', - vendored_gems_env: 'GALTZO_FLOSS_VENDORED_GEMS', - vendor_gem_dir_env: 'GALTZO_FLOSS_VENDOR_GEM_DIR', - debug_env: 'GALTZO_FLOSS_DEBUG' + prefix: "GALTZO_FLOSS", + path_env: "GALTZO_FLOSS_DEV", + vendored_gems_env: "GALTZO_FLOSS_VENDORED_GEMS", + vendor_gem_dir_env: "GALTZO_FLOSS_VENDOR_GEM_DIR", + debug_env: "GALTZO_FLOSS_DEBUG" ) end end diff --git a/gems/rust-merge/gemfiles/modular/debug.gemfile b/gems/rust-merge/gemfiles/modular/debug.gemfile index eed8d4d1e..4e15b1a3a 100644 --- a/gems/rust-merge/gemfiles/modular/debug.gemfile +++ b/gems/rust-merge/gemfiles/modular/debug.gemfile @@ -13,10 +13,10 @@ platform :mri do # Debugging - Ensure ENV["DEBUG"] == "true" to use debuggers within spec suite # Use binding.break, binding.b, or debugger in code - gem 'debug', '>= 1.1' # ruby >= 2.7 + gem "debug", ">= 1.1" # ruby >= 2.7 # Dev Console - Binding.pry - Irb replacement # gem "pry", "~> 0.14" # ruby >= 2.0 end -gem 'gem_bench', '~> 2.0', '>= 2.0.5' +gem "gem_bench", "~> 2.0", ">= 2.0.5" diff --git a/gems/rust-merge/gemfiles/modular/documentation.gemfile b/gems/rust-merge/gemfiles/modular/documentation.gemfile index dff5cc108..d8215416e 100644 --- a/gems/rust-merge/gemfiles/modular/documentation.gemfile +++ b/gems/rust-merge/gemfiles/modular/documentation.gemfile @@ -7,20 +7,20 @@ # # Documentation -gem 'kramdown', '~> 2.5', '>= 2.5.1', require: false # Ruby >= 2.5 -gem 'kramdown-parser-gfm', '~> 1.1', require: false # Ruby >= 2.3 -gem 'yaml-converter', '~> 0.1', require: false # Ruby >= 3.2 -gem 'yard', '~> 0.9', '>= 0.9.44', require: false -gem 'yard-junk', '~> 0.1', '>= 0.1.0', require: false # Ruby >= 3.1 -gem 'yard-relative_markdown_links', '~> 0.6', require: false +gem "kramdown", "~> 2.5", ">= 2.5.2", require: false # Ruby >= 2.5 +gem "kramdown-parser-gfm", "~> 1.1", require: false # Ruby >= 2.3 +gem "yaml-converter", "~> 0.2", ">= 0.2.3", require: false # Ruby >= 3.2 +gem "yard", "~> 0.9", ">= 0.9.45", require: false +gem "yard-junk", "~> 0.1", ">= 0.1.0", require: false # Ruby >= 3.1 +gem "yard-relative_markdown_links", "~> 0.6", require: false -if ENV.fetch('GALTZO_FLOSS_DEV', 'false').casecmp('false').zero? - gem 'yard-fence', '~> 0.9', '>= 0.9.1', require: false # Ruby >= 3.2 - gem 'yard-timekeeper', '~> 0.1', require: false - gem 'yard-yaml', '~> 0.1', '>= 0.1.2', require: false +if ENV.fetch("GALTZO_FLOSS_DEV", "false").casecmp("false").zero? + gem "yard-fence", "~> 0.9", ">= 0.9.6", require: false # Ruby >= 3.2 + gem "yard-timekeeper", "~> 0.2", ">= 0.2.4", require: false + gem "yard-yaml", "~> 0.2", ">= 0.2.3", require: false else - eval_gemfile 'documentation_local.gemfile' + eval_gemfile "documentation_local.gemfile" end # Std Lib extractions -gem 'rdoc', '~> 6.11', require: false unless ENV.fetch('KJ_FRAMEWORK_MATRIX_GEM', '') == 'rdoc' +gem "rdoc", "~> 6.11", require: false unless ENV.fetch("KJ_FRAMEWORK_MATRIX_GEM", "") == "rdoc" diff --git a/gems/rust-merge/gemfiles/modular/documentation_local.gemfile b/gems/rust-merge/gemfiles/modular/documentation_local.gemfile index 4d4c2bd95..3e7919342 100644 --- a/gems/rust-merge/gemfiles/modular/documentation_local.gemfile +++ b/gems/rust-merge/gemfiles/modular/documentation_local.gemfile @@ -3,16 +3,40 @@ # Local path overrides for development. # Loaded by the associated non-local gemfile when GALTZO_FLOSS_DEV != "false". -require 'nomono/bundler' unless defined?(Nomono) +# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. +# Bundler records that dependency during Gemfile evaluation, but it does not +# activate that exact version before the immediate `require "nomono/bundler"`. +# If multiple compatible nomono versions are installed, RubyGems may activate +# the newest installed version while Gemfile.lock pins an older compatible one; +# Bundler then aborts with "already activated nomono X, but your Gemfile +# requires nomono Y". Prefer the locked compatible version when present, then +# activate it explicitly before requiring the Bundler DSL extension used below. +nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] +nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) +if File.file?(nomono_lockfile) + nomono_locked_spec = Bundler::LockfileParser + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == "nomono" } + nomono_locked = nomono_locked_spec && + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + if nomono_locked + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] + end +end +Kernel.send(:gem, "nomono", *nomono_activation_requirements) +require "nomono/bundler" local_gems = %w[yard-fence yard-timekeeper yard-yaml] +declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) +local_gems_to_eval = local_gems - %w[rust-merge] - declared_gems # export GALTZO_FLOSS_DEV=/path/to/galtzo-floss eval_nomono_gems( - gems: local_gems, - prefix: 'GALTZO_FLOSS', - path_env: 'GALTZO_FLOSS_DEV', - vendored_gems_env: 'GALTZO_FLOSS_VENDORED_GEMS', - vendor_gem_dir_env: 'GALTZO_FLOSS_VENDOR_GEM_DIR', - debug_env: 'GALTZO_FLOSS_DEBUG' + gems: local_gems_to_eval, + prefix: "GALTZO_FLOSS", + path_env: "GALTZO_FLOSS_DEV", + vendored_gems_env: "GALTZO_FLOSS_VENDORED_GEMS", + vendor_gem_dir_env: "GALTZO_FLOSS_VENDOR_GEM_DIR", + debug_env: "GALTZO_FLOSS_DEBUG" ) diff --git a/gems/rust-merge/gemfiles/modular/erb/r2/v3.0.gemfile b/gems/rust-merge/gemfiles/modular/erb/r2/v3.0.gemfile index 7c83a239b..c03bd8d85 100644 --- a/gems/rust-merge/gemfiles/modular/erb/r2/v3.0.gemfile +++ b/gems/rust-merge/gemfiles/modular/erb/r2/v3.0.gemfile @@ -1 +1 @@ -gem 'erb', '~> 3.0' # ruby >= 2.7.0 +gem "erb", "~> 3.0" # ruby >= 2.7.0 diff --git a/gems/rust-merge/gemfiles/modular/erb/r3/v5.0.gemfile b/gems/rust-merge/gemfiles/modular/erb/r3/v5.0.gemfile index 0e3bf1b97..1bd029cc1 100644 --- a/gems/rust-merge/gemfiles/modular/erb/r3/v5.0.gemfile +++ b/gems/rust-merge/gemfiles/modular/erb/r3/v5.0.gemfile @@ -1 +1 @@ -gem 'erb', '~> 6.0', '>= 6.0.4' # ruby >= 3.2.0 +gem "erb", "~> 6.0", ">= 6.0.6" # ruby >= 3.2.0 diff --git a/gems/rust-merge/gemfiles/modular/erb/r4/v5.0.gemfile b/gems/rust-merge/gemfiles/modular/erb/r4/v5.0.gemfile index 0e3bf1b97..1bd029cc1 100644 --- a/gems/rust-merge/gemfiles/modular/erb/r4/v5.0.gemfile +++ b/gems/rust-merge/gemfiles/modular/erb/r4/v5.0.gemfile @@ -1 +1 @@ -gem 'erb', '~> 6.0', '>= 6.0.4' # ruby >= 3.2.0 +gem "erb", "~> 6.0", ">= 6.0.6" # ruby >= 3.2.0 diff --git a/gems/rust-merge/gemfiles/modular/erb/vHEAD.gemfile b/gems/rust-merge/gemfiles/modular/erb/vHEAD.gemfile index ea0101185..48fee4218 100644 --- a/gems/rust-merge/gemfiles/modular/erb/vHEAD.gemfile +++ b/gems/rust-merge/gemfiles/modular/erb/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 3.2 -gem 'erb', github: 'ruby/erb', branch: 'master' +gem "erb", github: "ruby/erb", branch: "master" diff --git a/gems/rust-merge/gemfiles/modular/json/truffleruby_22_3.gemfile b/gems/rust-merge/gemfiles/modular/json/truffleruby_22_3.gemfile new file mode 100644 index 000000000..b0e69ab11 --- /dev/null +++ b/gems/rust-merge/gemfiles/modular/json/truffleruby_22_3.gemfile @@ -0,0 +1,6 @@ +# frozen_string_literal: true + +if RUBY_ENGINE == "truffleruby" && RUBY_ENGINE_VERSION.start_with?("22.3") + # TruffleRuby 22.3 ships the json default gem from its emulated MRI Ruby. + gem "json", "= 2.5.1" +end diff --git a/gems/rust-merge/gemfiles/modular/json/truffleruby_23_0.gemfile b/gems/rust-merge/gemfiles/modular/json/truffleruby_23_0.gemfile new file mode 100644 index 000000000..7b2660a2b --- /dev/null +++ b/gems/rust-merge/gemfiles/modular/json/truffleruby_23_0.gemfile @@ -0,0 +1,6 @@ +# frozen_string_literal: true + +if RUBY_ENGINE == "truffleruby" && RUBY_ENGINE_VERSION.start_with?("23.0") + # TruffleRuby 23.0 ships the json default gem from its emulated MRI Ruby. + gem "json", "= 2.6.1" +end diff --git a/gems/rust-merge/gemfiles/modular/json/truffleruby_23_1.gemfile b/gems/rust-merge/gemfiles/modular/json/truffleruby_23_1.gemfile new file mode 100644 index 000000000..dfa21f2e4 --- /dev/null +++ b/gems/rust-merge/gemfiles/modular/json/truffleruby_23_1.gemfile @@ -0,0 +1,6 @@ +# frozen_string_literal: true + +if RUBY_ENGINE == "truffleruby" && RUBY_ENGINE_VERSION.start_with?("23.1") + # TruffleRuby 23.1 ships the json default gem from its emulated MRI Ruby. + gem "json", "= 2.6.3" +end diff --git a/gems/rust-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile b/gems/rust-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile index e27f1bbae..42e9d9bd4 100644 --- a/gems/rust-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile +++ b/gems/rust-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 -gem 'mutex_m', '~> 0.2' +gem "mutex_m", "~> 0.2" diff --git a/gems/rust-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile b/gems/rust-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile index e27f1bbae..42e9d9bd4 100644 --- a/gems/rust-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile +++ b/gems/rust-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 -gem 'mutex_m', '~> 0.2' +gem "mutex_m", "~> 0.2" diff --git a/gems/rust-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile b/gems/rust-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile index e27f1bbae..42e9d9bd4 100644 --- a/gems/rust-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile +++ b/gems/rust-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 -gem 'mutex_m', '~> 0.2' +gem "mutex_m", "~> 0.2" diff --git a/gems/rust-merge/gemfiles/modular/mutex_m/vHEAD.gemfile b/gems/rust-merge/gemfiles/modular/mutex_m/vHEAD.gemfile index 9dac2f6cb..8af3b6fca 100644 --- a/gems/rust-merge/gemfiles/modular/mutex_m/vHEAD.gemfile +++ b/gems/rust-merge/gemfiles/modular/mutex_m/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 (dependency of omniauth) -gem 'mutex_m', github: 'ruby/mutex_m', branch: 'master' +gem "mutex_m", github: "ruby/mutex_m", branch: "master" diff --git a/gems/rust-merge/gemfiles/modular/optional.gemfile b/gems/rust-merge/gemfiles/modular/optional.gemfile index b0914d79f..80bc45196 100644 --- a/gems/rust-merge/gemfiles/modular/optional.gemfile +++ b/gems/rust-merge/gemfiles/modular/optional.gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -# To retain during rust-merge templating: +# To retain during kettle-jem templating: # kettle-jem:freeze # # ... your code # kettle-jem:unfreeze @@ -9,9 +9,8 @@ # Optional dependencies are not depended on directly, but may be used if present. # Required for curated binstubs generated by kettle-jem install -gem 'rbs', '>= 3.0', require: false # ruby >= 3.1 -gem 'stone_checksums', '~> 1.0', '>= 1.0.3', require: false # ruby >= 2.2 +gem "rbs", ">= 3.0", require: false # ruby >= 3.1 # Required for kettle-pre-release # URL parsing with Unicode support (falls back to URI if not available) -gem 'addressable', '>= 2.8', '< 3' # ruby >= 2.2 +gem "addressable", ">= 2.8", "< 3" # ruby >= 2.2 diff --git a/gems/rust-merge/gemfiles/modular/rspec.gemfile b/gems/rust-merge/gemfiles/modular/rspec.gemfile index 2af210a41..72fdf8b7f 100644 --- a/gems/rust-merge/gemfiles/modular/rspec.gemfile +++ b/gems/rust-merge/gemfiles/modular/rspec.gemfile @@ -1,4 +1,4 @@ -gem 'rspec_junit_formatter', - github: 'pboling/rspec_junit_formatter', - branch: 'main', - ref: '9e6bcaaedd49477b62878ed568dc4ada5cc7cb5e' +gem "rspec_junit_formatter", + github: "pboling/rspec_junit_formatter", + branch: "main", + ref: "9e6bcaaedd49477b62878ed568dc4ada5cc7cb5e" diff --git a/gems/rust-merge/gemfiles/modular/runtime_heads.gemfile b/gems/rust-merge/gemfiles/modular/runtime_heads.gemfile index 535e8e238..02f134c7f 100644 --- a/gems/rust-merge/gemfiles/modular/runtime_heads.gemfile +++ b/gems/rust-merge/gemfiles/modular/runtime_heads.gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -# To retain during rust-merge templating: +# To retain during kettle-jem templating: # kettle-jem:freeze # # ... your code # kettle-jem:unfreeze @@ -8,7 +8,4 @@ # Test against HEAD of runtime dependencies so we can proactively file bugs -# Ruby >= 2.2 -gem 'version_gem', github: 'ruby-oauth/version_gem', branch: 'main' - -eval_gemfile('x_std_libs/vHEAD.gemfile') +eval_gemfile("x_std_libs/vHEAD.gemfile") diff --git a/gems/rust-merge/gemfiles/modular/stringio/r2/v3.0.gemfile b/gems/rust-merge/gemfiles/modular/stringio/r2/v3.0.gemfile index 3616f4e3a..e85bb18ee 100644 --- a/gems/rust-merge/gemfiles/modular/stringio/r2/v3.0.gemfile +++ b/gems/rust-merge/gemfiles/modular/stringio/r2/v3.0.gemfile @@ -2,4 +2,4 @@ # NOT SEMVER # Version 3.0.7 dropped support for Ruby <= 2.7 # Version 3.0.0 dropped support for Ruby <= 2.4 -gem 'stringio', '>= 3.0' +gem "stringio", ">= 3.0" diff --git a/gems/rust-merge/gemfiles/modular/stringio/r3/v3.0.gemfile b/gems/rust-merge/gemfiles/modular/stringio/r3/v3.0.gemfile index 3616f4e3a..e85bb18ee 100644 --- a/gems/rust-merge/gemfiles/modular/stringio/r3/v3.0.gemfile +++ b/gems/rust-merge/gemfiles/modular/stringio/r3/v3.0.gemfile @@ -2,4 +2,4 @@ # NOT SEMVER # Version 3.0.7 dropped support for Ruby <= 2.7 # Version 3.0.0 dropped support for Ruby <= 2.4 -gem 'stringio', '>= 3.0' +gem "stringio", ">= 3.0" diff --git a/gems/rust-merge/gemfiles/modular/stringio/r4/v3.0.gemfile b/gems/rust-merge/gemfiles/modular/stringio/r4/v3.0.gemfile index 3616f4e3a..e85bb18ee 100644 --- a/gems/rust-merge/gemfiles/modular/stringio/r4/v3.0.gemfile +++ b/gems/rust-merge/gemfiles/modular/stringio/r4/v3.0.gemfile @@ -2,4 +2,4 @@ # NOT SEMVER # Version 3.0.7 dropped support for Ruby <= 2.7 # Version 3.0.0 dropped support for Ruby <= 2.4 -gem 'stringio', '>= 3.0' +gem "stringio", ">= 3.0" diff --git a/gems/rust-merge/gemfiles/modular/stringio/vHEAD.gemfile b/gems/rust-merge/gemfiles/modular/stringio/vHEAD.gemfile index 78f5f5d8a..5f2a74126 100644 --- a/gems/rust-merge/gemfiles/modular/stringio/vHEAD.gemfile +++ b/gems/rust-merge/gemfiles/modular/stringio/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 (dependency of omniauth) -gem 'stringio', github: 'ruby/stringio', branch: 'master' +gem "stringio", github: "ruby/stringio", branch: "master" diff --git a/gems/rust-merge/gemfiles/modular/style.gemfile b/gems/rust-merge/gemfiles/modular/style.gemfile index 2cab6f19c..35de4dcd6 100644 --- a/gems/rust-merge/gemfiles/modular/style.gemfile +++ b/gems/rust-merge/gemfiles/modular/style.gemfile @@ -1,28 +1,31 @@ # frozen_string_literal: true -# To retain during rust-merge templating: +# To retain during kettle-jem templating: # kettle-jem:freeze # # ... your code # kettle-jem:unfreeze # -# We run rubocop on the latest version of Ruby, -# but in support of the oldest supported version of Ruby +# Style tasks run on the latest Ruby; RuboCop-LTS selects the compatibility +# rules for the configured Ruby floor independently from task dependency floors. -gem 'reek', '~> 6.5' +gem "reek", "~> 6.5", ">= 6.5.0" platform :mri do - gem 'rubocop-on-rbs', '~> 2.0' # ruby >= 3.2.0 + gem "appraisal2-rubocop", "~> 1.0", ">= 1.0.0", require: false + gem "rubocop-gradual", "~> 0.4", ">= 0.4.0" + gem "rubocop-minitest", "~> 0.40", ">= 0.40.0" + gem "rubocop-on-rbs", "~> 2.0", ">= 2.0.0" # ruby >= 3.2.0 # gem "rubocop", "~> 1.73", ">= 1.73.2" # constrained by standard - gem 'rubocop-packaging', '~> 0.6', '>= 0.6.0' - gem 'standard', '>= 1.50' + gem "rubocop-packaging", "~> 0.6", ">= 0.6.0" + gem "standard", "~> 1.56", ">= 1.56.0" - if ENV.fetch('RUBOCOP_LTS_LOCAL', 'false').casecmp('false').zero? - gem 'rubocop-lts', '~> 24.1.0' - # "rubocop-lts-rspec" can't add here until other gems are updated. - gem 'rubocop-rspec', '~> 3.6' - gem 'rubocop-ruby3_2', '~> 3.0.0' + if ENV.fetch("RUBOCOP_LTS_LOCAL", "false").casecmp("false").zero? + declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) + gem "rubocop-lts", "~> 24.2", ">= 24.2.1" unless declared_gems.include?("rubocop-lts") + gem "rubocop-lts-rspec", "~> 1.0", ">= 1.0.5" unless declared_gems.include?("rubocop-lts-rspec") + gem "rubocop-ruby3_2", "~> 3.0", ">= 3.0.6" unless declared_gems.include?("rubocop-ruby3_2") else - eval_gemfile('style_local.gemfile') + eval_gemfile("style_local.gemfile") end end diff --git a/gems/rust-merge/gemfiles/modular/style_local.gemfile b/gems/rust-merge/gemfiles/modular/style_local.gemfile index ce75bbe21..ebe155ab1 100644 --- a/gems/rust-merge/gemfiles/modular/style_local.gemfile +++ b/gems/rust-merge/gemfiles/modular/style_local.gemfile @@ -1,24 +1,48 @@ # frozen_string_literal: true -# We run rubocop on the latest version of Ruby, -# but in support of the oldest supported version of Ruby +# Style tasks run on the latest Ruby; RuboCop-LTS selects the compatibility +# rules for the configured Ruby floor independently from task dependency floors. # Local path overrides for development. # Loaded by the associated non-local gemfile when RUBOCOP_LTS_LOCAL != "false". -require 'nomono/bundler' unless defined?(Nomono) +# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. +# Bundler records that dependency during Gemfile evaluation, but it does not +# activate that exact version before the immediate `require "nomono/bundler"`. +# If multiple compatible nomono versions are installed, RubyGems may activate +# the newest installed version while Gemfile.lock pins an older compatible one; +# Bundler then aborts with "already activated nomono X, but your Gemfile +# requires nomono Y". Prefer the locked compatible version when present, then +# activate it explicitly before requiring the Bundler DSL extension used below. +nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] +nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) +if File.file?(nomono_lockfile) + nomono_locked_spec = Bundler::LockfileParser + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == "nomono" } + nomono_locked = nomono_locked_spec && + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + if nomono_locked + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] + end +end +Kernel.send(:gem, "nomono", *nomono_activation_requirements) +require "nomono/bundler" local_gems = %w[rubocop-lts rubocop-lts-rspec rubocop-ruby3_2 standard-rubocop-lts] +declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) +local_gems_to_eval = local_gems - %w[rust-merge] - declared_gems # export VENDORED_GEMS=rubocop-lts,rubocop-lts-rspec,rubocop-ruby3_2,standard-rubocop-lts platform :mri do eval_nomono_gems( - gems: local_gems, - prefix: 'RUBOCOP_LTS', - path_env: 'RUBOCOP_LTS_LOCAL', - vendored_gems_env: 'VENDORED_GEMS', - vendor_gem_dir_env: 'VENDOR_GEM_DIR', - debug_env: 'RUBOCOP_LTS_DEBUG', - root: %w[src rubocop-lts] + gems: local_gems_to_eval, + prefix: "RUBOCOP_LTS", + path_env: "RUBOCOP_LTS_LOCAL", + vendored_gems_env: "VENDORED_GEMS", + vendor_gem_dir_env: "VENDOR_GEM_DIR", + debug_env: "RUBOCOP_LTS_DEBUG", + root: ["src", "rubocop-lts"] ) end diff --git a/gems/rust-merge/gemfiles/modular/templating.gemfile b/gems/rust-merge/gemfiles/modular/templating.gemfile index 2ddc9433f..47138ffbb 100644 --- a/gems/rust-merge/gemfiles/modular/templating.gemfile +++ b/gems/rust-merge/gemfiles/modular/templating.gemfile @@ -1,24 +1,24 @@ # frozen_string_literal: true -structuredmerge_remote = ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false').zero? -kettle_remote = ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? +structuredmerge_remote = ENV.fetch("STRUCTUREDMERGE_DEV", "false").casecmp("false").zero? +kettle_remote = ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false").zero? if structuredmerge_remote # Parser dependencies for released installs. - gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' + gem "tree_sitter_language_pack", "~> 1.13", ">= 1.13.3" # Merge recipes for released installs. - gem 'kettle-jem', '>= 7.0' + gem "kettle-jem", ">= 7.0" end if kettle_remote # Template/plugin checks for released installs. - gem 'kettle-drift', '~> 1.0', '>= 1.0.5', require: false + gem "kettle-drift", "~> 1.0", ">= 1.0.6", require: false end # Set STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local development with path-based dependencies. # When false (default / CI), released kettle-jem brings merge gems and parser dependencies. # Local path overrides bring the same dependencies from sibling gemspecs. # -# Set KETTLE_DEV_DEV=/path/to/kettle-rb for local development with Kettle plugin gems. +# Set KETTLE_DEV_DEV=/path/to/my for local development with Kettle plugin gems. # When false (default / CI), released Kettle plugin gems are used. -eval_gemfile 'templating_local.gemfile' unless structuredmerge_remote && kettle_remote +eval_gemfile "templating_local.gemfile" unless structuredmerge_remote && kettle_remote diff --git a/gems/rust-merge/gemfiles/modular/templating_local.gemfile b/gems/rust-merge/gemfiles/modular/templating_local.gemfile index 1f2d348bc..129aed87b 100644 --- a/gems/rust-merge/gemfiles/modular/templating_local.gemfile +++ b/gems/rust-merge/gemfiles/modular/templating_local.gemfile @@ -4,7 +4,29 @@ # Loaded by the associated non-local gemfile when STRUCTUREDMERGE_DEV or KETTLE_DEV_DEV # is not "false". -require 'nomono/bundler' unless defined?(Nomono) +# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. +# Bundler records that dependency during Gemfile evaluation, but it does not +# activate that exact version before the immediate `require "nomono/bundler"`. +# If multiple compatible nomono versions are installed, RubyGems may activate +# the newest installed version while Gemfile.lock pins an older compatible one; +# Bundler then aborts with "already activated nomono X, but your Gemfile +# requires nomono Y". Prefer the locked compatible version when present, then +# activate it explicitly before requiring the Bundler DSL extension used below. +nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] +nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) +if File.file?(nomono_lockfile) + nomono_locked_spec = Bundler::LockfileParser + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == "nomono" } + nomono_locked = nomono_locked_spec && + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + if nomono_locked + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] + end +end +Kernel.send(:gem, "nomono", *nomono_activation_requirements) +require "nomono/bundler" structuredmerge_local_gems = %w[ tree_haver @@ -47,25 +69,25 @@ structuredmerge_local_gems_to_eval = structuredmerge_local_gems - %w[rust-merge] kettle_dev_local_gems_to_eval = kettle_dev_local_gems - %w[rust-merge] - declared_gems platform :mri do - if ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false') != 0 + if ENV.fetch("STRUCTUREDMERGE_DEV", "false").casecmp("false") != 0 eval_nomono_gems( gems: structuredmerge_local_gems_to_eval, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - vendored_gems_env: 'VENDORED_GEMS', - vendor_gem_dir_env: 'VENDOR_GEM_DIR', - debug_env: 'STRUCTUREDMERGE_DEBUG' + prefix: "STRUCTUREDMERGE", + path_env: "STRUCTUREDMERGE_DEV", + vendored_gems_env: "VENDORED_GEMS", + vendor_gem_dir_env: "VENDOR_GEM_DIR", + debug_env: "STRUCTUREDMERGE_DEBUG" ) end - if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false') != 0 + if ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false") != 0 eval_nomono_gems( gems: kettle_dev_local_gems_to_eval, - prefix: 'KETTLE_DEV', - path_env: 'KETTLE_DEV_DEV', - vendored_gems_env: 'VENDORED_GEMS', - vendor_gem_dir_env: 'VENDOR_GEM_DIR', - debug_env: 'KETTLE_DEV_DEBUG' + prefix: "KETTLE_DEV", + path_env: "KETTLE_DEV_DEV", + vendored_gems_env: "VENDORED_GEMS", + vendor_gem_dir_env: "VENDOR_GEM_DIR", + debug_env: "KETTLE_DEV_DEBUG" ) end end diff --git a/gems/rust-merge/gemfiles/modular/webrick/r4/v1.9.gemfile b/gems/rust-merge/gemfiles/modular/webrick/r4/v1.9.gemfile new file mode 100644 index 000000000..eaab4a473 --- /dev/null +++ b/gems/rust-merge/gemfiles/modular/webrick/r4/v1.9.gemfile @@ -0,0 +1 @@ +gem "webrick", "~> 1.9" diff --git a/gems/rust-merge/gemfiles/modular/webrick/vHEAD.gemfile b/gems/rust-merge/gemfiles/modular/webrick/vHEAD.gemfile new file mode 100644 index 000000000..8a789b634 --- /dev/null +++ b/gems/rust-merge/gemfiles/modular/webrick/vHEAD.gemfile @@ -0,0 +1 @@ +gem "webrick", ">= 1.9" diff --git a/gems/rust-merge/gemfiles/modular/x_std_libs.gemfile b/gems/rust-merge/gemfiles/modular/x_std_libs.gemfile index b1f43c097..77aad43f2 100644 --- a/gems/rust-merge/gemfiles/modular/x_std_libs.gemfile +++ b/gems/rust-merge/gemfiles/modular/x_std_libs.gemfile @@ -1,12 +1,12 @@ ### Std Lib Extracted Gems ruby_version = Gem::Version.new(RUBY_VERSION) -if ruby_version >= Gem::Version.new('4.0') - eval_gemfile 'x_std_libs/r4/libs.gemfile' -elsif ruby_version >= Gem::Version.new('3.2') - eval_gemfile 'x_std_libs/r3/libs.gemfile' -elsif ruby_version >= Gem::Version.new('3.1') - eval_gemfile 'x_std_libs/r3.1/libs.gemfile' +if ruby_version >= Gem::Version.new("4.0") + eval_gemfile "x_std_libs/r4/libs.gemfile" +elsif ruby_version >= Gem::Version.new("3.2") + eval_gemfile "x_std_libs/r3/libs.gemfile" +elsif ruby_version >= Gem::Version.new("3.1") + eval_gemfile "x_std_libs/r3.1/libs.gemfile" else - eval_gemfile 'x_std_libs/r2/libs.gemfile' + eval_gemfile "x_std_libs/r2/libs.gemfile" end diff --git a/gems/rust-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile b/gems/rust-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile index 16a5e3d70..441c4f03a 100644 --- a/gems/rust-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile +++ b/gems/rust-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile @@ -1,3 +1,3 @@ -eval_gemfile '../../erb/r2/v3.0.gemfile' -eval_gemfile '../../mutex_m/r2/v0.3.gemfile' -eval_gemfile '../../stringio/r2/v3.0.gemfile' +eval_gemfile "../../erb/r2/v3.0.gemfile" +eval_gemfile "../../mutex_m/r2/v0.3.gemfile" +eval_gemfile "../../stringio/r2/v3.0.gemfile" diff --git a/gems/rust-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile b/gems/rust-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile index 220ff95c1..c293a3ddd 100644 --- a/gems/rust-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile +++ b/gems/rust-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile @@ -1,3 +1,3 @@ -eval_gemfile '../../erb/r3/v5.0.gemfile' -eval_gemfile '../../mutex_m/r3/v0.3.gemfile' -eval_gemfile '../../stringio/r3/v3.0.gemfile' +eval_gemfile "../../erb/r3/v5.0.gemfile" +eval_gemfile "../../mutex_m/r3/v0.3.gemfile" +eval_gemfile "../../stringio/r3/v3.0.gemfile" diff --git a/gems/rust-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile b/gems/rust-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile index bd4e884df..eb5574247 100644 --- a/gems/rust-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile +++ b/gems/rust-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile @@ -1,4 +1,6 @@ -eval_gemfile '../../erb/r4/v5.0.gemfile' -eval_gemfile '../../mutex_m/r4/v0.3.gemfile' -eval_gemfile '../../stringio/r4/v3.0.gemfile' -eval_gemfile '../../benchmark/r4/v0.5.gemfile' +eval_gemfile "../../erb/r4/v5.0.gemfile" +eval_gemfile "../../mutex_m/r4/v0.3.gemfile" +eval_gemfile "../../stringio/r4/v3.0.gemfile" +eval_gemfile "../../benchmark/r4/v0.5.gemfile" +eval_gemfile "../../cgi/r4/v0.5.gemfile" +eval_gemfile "../../webrick/r4/v1.9.gemfile" diff --git a/gems/rust-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile b/gems/rust-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile index 91f383c11..d4d5b16c9 100644 --- a/gems/rust-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile +++ b/gems/rust-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile @@ -1,4 +1,6 @@ -eval_gemfile '../erb/vHEAD.gemfile' -eval_gemfile '../mutex_m/vHEAD.gemfile' -eval_gemfile '../stringio/vHEAD.gemfile' -eval_gemfile '../benchmark/vHEAD.gemfile' +eval_gemfile "../erb/vHEAD.gemfile" +eval_gemfile "../mutex_m/vHEAD.gemfile" +eval_gemfile "../stringio/vHEAD.gemfile" +eval_gemfile "../benchmark/vHEAD.gemfile" +eval_gemfile "../cgi/vHEAD.gemfile" +eval_gemfile "../webrick/vHEAD.gemfile" diff --git a/gems/rust-merge/lib/rust/merge/version.rb b/gems/rust-merge/lib/rust/merge/version.rb index 027a1d9e7..4dc09f632 100644 --- a/gems/rust-merge/lib/rust/merge/version.rb +++ b/gems/rust-merge/lib/rust/merge/version.rb @@ -3,7 +3,7 @@ module Rust module Merge module Version - VERSION = '7.1.0' + VERSION = "7.1.0" end VERSION = Version::VERSION # Traditional Constant Location end diff --git a/gems/toml-merge/.kettle-drift.lock b/gems/toml-merge/.kettle-drift.lock index 2ee9dae31..43dfedd67 100644 --- a/gems/toml-merge/.kettle-drift.lock +++ b/gems/toml-merge/.kettle-drift.lock @@ -52,14 +52,5 @@ 88 ] } - ], - "vendored_gems_env: 'VENDORED_GEMS',\nvendor_gem_dir_env: 'VENDOR_GEM_DIR',": [ - { - "file": "gemfiles/modular/templating_local.gemfile", - "lines": [ - 55, - 66 - ] - } ] } diff --git a/gems/toml-merge/.rubocop_gradual.lock b/gems/toml-merge/.rubocop_gradual.lock index 918c85d88..bdd2020da 100644 --- a/gems/toml-merge/.rubocop_gradual.lock +++ b/gems/toml-merge/.rubocop_gradual.lock @@ -15,13 +15,20 @@ [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] ], + "gemfiles/modular/cgi/r4/v0.5.gemfile:367169322": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/cgi/vHEAD.gemfile:2729540777": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], "gemfiles/modular/erb/r2/v3.0.gemfile:1688285565": [ [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] ], - "gemfiles/modular/erb/r3/v5.0.gemfile:2150258305": [ + "gemfiles/modular/erb/r3/v5.0.gemfile:2394062339": [ [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] ], - "gemfiles/modular/erb/r4/v5.0.gemfile:2150258305": [ + "gemfiles/modular/erb/r4/v5.0.gemfile:2394062339": [ [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] ], "gemfiles/modular/erb/vHEAD.gemfile:981929959": [ @@ -57,6 +64,13 @@ [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] ], + "gemfiles/modular/webrick/r4/v1.9.gemfile:3092661193": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/webrick/vHEAD.gemfile:3867684682": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], "gemfiles/modular/x_std_libs.gemfile:2324400122": [ [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] ], @@ -66,10 +80,10 @@ "gemfiles/modular/x_std_libs/r3/libs.gemfile:4030570297": [ [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] ], - "gemfiles/modular/x_std_libs/r4/libs.gemfile:909736663": [ + "gemfiles/modular/x_std_libs/r4/libs.gemfile:732451732": [ [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] ], - "gemfiles/modular/x_std_libs/vHEAD.gemfile:907917303": [ + "gemfiles/modular/x_std_libs/vHEAD.gemfile:2390363993": [ [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] ], @@ -77,9 +91,9 @@ [1, 1, 0, "Naming/FileName: The name of this source file (`toml-merge.rb`) should use snake_case.", 5381], [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] ], - "lib/toml/merge.rb:3069711497": [ - [39, 3, 12193, "Metrics/ModuleLength: Module has too many lines. [231/100]", 1479901406], - [114, 5, 9241, "Metrics/ClassLength: Class has too many lines. [205/100]", 349141169], + "lib/toml/merge.rb:2064372859": [ + [39, 3, 12297, "Metrics/ModuleLength: Module has too many lines. [232/100]", 1479901406], + [114, 5, 9345, "Metrics/ClassLength: Class has too many lines. [206/100]", 282717333], [156, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 1773216188], [165, 7, 709, "Metrics/MethodLength: Method has too many lines. [17/10]", 2355964538], [191, 7, 1280, "Metrics/AbcSize: Assignment Branch Condition size for `merge_toml` is too high. [<6, 16, 6> 18.11/17]", 2322240506], @@ -87,7 +101,7 @@ [195, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 1773216188], [222, 7, 1401, "Metrics/AbcSize: Assignment Branch Condition size for `merge_toml_with_parser` is too high. [<6, 18, 6> 19.9/17]", 3118052892], [222, 7, 1401, "Metrics/MethodLength: Method has too many lines. [24/10]", 3118052892], - [321, 9, 11, "Style/MultilineBlockChain: Avoid multi-line chains of blocks.", 848344986] + [322, 9, 11, "Style/MultilineBlockChain: Avoid multi-line chains of blocks.", 848344986] ], "lib/toml/merge/comment_tracker.rb:743656609": [ [16, 5, 5242, "Metrics/ClassLength: Class has too many lines. [112/100]", 3014190138], @@ -97,63 +111,69 @@ [92, 7, 949, "Metrics/MethodLength: Method has too many lines. [23/10]", 552845000], [92, 7, 949, "Metrics/PerceivedComplexity: Perceived complexity for `build_toml_region` is too high. [9/8]", 552845000] ], - "lib/toml/merge/conflict_resolver.rb:2699752146": [ - [11, 5, 42658, "Metrics/ClassLength: Class has too many lines. [791/100]", 2931993361], - [30, 7, 788, "Metrics/MethodLength: Method has too many lines. [13/10]", 2218400960], - [30, 21, 235, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [9/5]", 788504679], - [31, 121, 22, "Layout/LineLength: Line is too long. [142/120]", 3099130903], - [52, 7, 1676, "Metrics/AbcSize: Assignment Branch Condition size for `resolve_batch` is too high. [<4, 24, 3> 24.52/17]", 623996510], - [52, 7, 1676, "Metrics/MethodLength: Method has too many lines. [29/10]", 623996510], - [53, 9, 1632, "Metrics/BlockLength: Block has too many lines. [27/25]", 3553849414], - [101, 7, 8464, "Metrics/AbcSize: Assignment Branch Condition size for `merge_node_lists_to_emitter` is too high. [<54, 88, 31> 107.8/17]", 3669765511], - [101, 7, 8464, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `merge_node_lists_to_emitter` is too high. [27/7]", 3669765511], - [101, 7, 8464, "Metrics/MethodLength: Method has too many lines. [141/10]", 3669765511], - [101, 7, 8464, "Metrics/PerceivedComplexity: Perceived complexity for `merge_node_lists_to_emitter` is too high. [29/8]", 3669765511], - [146, 9, 5685, "Metrics/BlockLength: Block has too many lines. [102/25]", 464560406], - [286, 7, 2458, "Metrics/AbcSize: Assignment Branch Condition size for `merge_matched_nodes_to_emitter` is too high. [<6, 17, 10> 20.62/17]", 4036358483], - [286, 7, 2458, "Metrics/MethodLength: Method has too many lines. [49/10]", 4036358483], - [286, 7, 2458, "Metrics/PerceivedComplexity: Perceived complexity for `merge_matched_nodes_to_emitter` is too high. [9/8]", 4036358483], - [289, 11, 1647, "Metrics/BlockLength: Block has too many lines. [34/25]", 997955803], - [353, 7, 770, "Metrics/MethodLength: Method has too many lines. [21/10]", 543737609], - [387, 7, 1101, "Metrics/AbcSize: Assignment Branch Condition size for `build_refined_matches` is too high. [<11, 16, 8> 21/17]", 4236016583], - [387, 7, 1101, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `build_refined_matches` is too high. [9/7]", 4236016583], - [387, 7, 1101, "Metrics/MethodLength: Method has too many lines. [18/10]", 4236016583], - [387, 7, 1101, "Metrics/PerceivedComplexity: Perceived complexity for `build_refined_matches` is too high. [9/8]", 4236016583], - [427, 7, 642, "Metrics/AbcSize: Assignment Branch Condition size for `emit_removed_destination_node_inline_comments` is too high. [<4, 20, 5> 21/17]", 2624953678], - [427, 7, 642, "Metrics/MethodLength: Method has too many lines. [11/10]", 2624953678], - [462, 7, 720, "Metrics/MethodLength: Method has too many lines. [11/10]", 4270722493], - [499, 7, 1022, "Metrics/MethodLength: Method has too many lines. [17/10]", 3216685542], - [584, 7, 1854, "Metrics/AbcSize: Assignment Branch Condition size for `emit_leading_region` is too high. [<8, 28, 9> 30.48/17]", 377203837], - [584, 7, 1854, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `emit_leading_region` is too high. [10/7]", 377203837], - [584, 7, 1854, "Metrics/MethodLength: Method has too many lines. [32/10]", 377203837], - [584, 7, 1854, "Metrics/PerceivedComplexity: Perceived complexity for `emit_leading_region` is too high. [10/8]", 377203837], - [685, 7, 1275, "Metrics/AbcSize: Assignment Branch Condition size for `collapse_template_preamble_prefix_region` is too high. [<7, 24, 9> 26.57/17]", 1754222078], - [685, 7, 1275, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `collapse_template_preamble_prefix_region` is too high. [8/7]", 1754222078], - [685, 7, 1275, "Metrics/MethodLength: Method has too many lines. [24/10]", 1754222078], - [716, 7, 662, "Metrics/AbcSize: Assignment Branch Condition size for `root_boundary_lines_for` is too high. [<4, 15, 10> 18.47/17]", 935744348], - [716, 7, 662, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `root_boundary_lines_for` is too high. [9/7]", 935744348], - [716, 7, 662, "Metrics/MethodLength: Method has too many lines. [14/10]", 935744348], - [736, 7, 343, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `region_lines_for` is too high. [8/7]", 399995706], - [753, 7, 614, "Metrics/AbcSize: Assignment Branch Condition size for `dedup_warning_context` is too high. [<0, 20, 10> 22.36/17]", 2011768288], - [753, 7, 614, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `dedup_warning_context` is too high. [11/7]", 2011768288], - [753, 7, 614, "Metrics/PerceivedComplexity: Perceived complexity for `dedup_warning_context` is too high. [11/8]", 2011768288], - [756, 27, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], - [757, 41, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], - [757, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 3287405165], - [783, 7, 1426, "Metrics/MethodLength: Method has too many lines. [34/10]", 1351993853], - [849, 7, 955, "Metrics/MethodLength: Method has too many lines. [21/10]", 3080929417], - [877, 7, 1249, "Metrics/AbcSize: Assignment Branch Condition size for `emit_node_lines` is too high. [<6, 21, 6> 22.65/17]", 3195628693], - [877, 7, 1249, "Metrics/MethodLength: Method has too many lines. [21/10]", 3195628693], - [952, 7, 637, "Metrics/AbcSize: Assignment Branch Condition size for `inline_region_separator` is too high. [<5, 18, 7> 19.95/17]", 2029360360], - [952, 7, 637, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `inline_region_separator` is too high. [8/7]", 2029360360], - [952, 7, 637, "Metrics/MethodLength: Method has too many lines. [12/10]", 2029360360], - [969, 7, 465, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `emit_interstitial_blank_lines` is too high. [9/7]", 1640065866], - [969, 7, 465, "Metrics/PerceivedComplexity: Perceived complexity for `emit_interstitial_blank_lines` is too high. [9/8]", 1640065866], - [981, 7, 620, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `emit_gap_before_node` is too high. [12/7]", 2808239642], - [981, 7, 620, "Metrics/PerceivedComplexity: Perceived complexity for `emit_gap_before_node` is too high. [12/8]", 2808239642], - [983, 36, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], - [998, 7, 526, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `emit_preceding_blank_lines` is too high. [8/7]", 3889743093], - [998, 7, 526, "Metrics/MethodLength: Method has too many lines. [11/10]", 3889743093] + "lib/toml/merge/conflict_resolver.rb:3868701412": [ + [11, 5, 46161, "Metrics/ClassLength: Class has too many lines. [856/100]", 3523973238], + [31, 7, 788, "Metrics/MethodLength: Method has too many lines. [13/10]", 2218400960], + [31, 21, 235, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [9/5]", 788504679], + [32, 121, 22, "Layout/LineLength: Line is too long. [142/120]", 3099130903], + [53, 7, 1676, "Metrics/AbcSize: Assignment Branch Condition size for `resolve_batch` is too high. [<4, 24, 3> 24.52/17]", 623996510], + [53, 7, 1676, "Metrics/MethodLength: Method has too many lines. [29/10]", 623996510], + [54, 9, 1632, "Metrics/BlockLength: Block has too many lines. [27/25]", 3553849414], + [102, 7, 9047, "Metrics/AbcSize: Assignment Branch Condition size for `merge_node_lists_to_emitter` is too high. [<54, 90, 32> 109.7/17]", 4245103177], + [102, 7, 9047, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `merge_node_lists_to_emitter` is too high. [28/7]", 4245103177], + [102, 7, 9047, "Metrics/MethodLength: Method has too many lines. [154/10]", 4245103177], + [102, 7, 9047, "Metrics/PerceivedComplexity: Perceived complexity for `merge_node_lists_to_emitter` is too high. [30/8]", 4245103177], + [151, 9, 6021, "Metrics/BlockLength: Block has too many lines. [112/25]", 464560406], + [301, 7, 2458, "Metrics/AbcSize: Assignment Branch Condition size for `merge_matched_nodes_to_emitter` is too high. [<6, 17, 10> 20.62/17]", 4036358483], + [301, 7, 2458, "Metrics/MethodLength: Method has too many lines. [49/10]", 4036358483], + [301, 7, 2458, "Metrics/PerceivedComplexity: Perceived complexity for `merge_matched_nodes_to_emitter` is too high. [9/8]", 4036358483], + [304, 11, 1647, "Metrics/BlockLength: Block has too many lines. [34/25]", 997955803], + [365, 7, 461, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `canonical_unmatched_pair_list?` is too high. [8/7]", 1900847471], + [374, 7, 731, "Metrics/AbcSize: Assignment Branch Condition size for `merge_unmatched_pair_lists_to_emitter` is too high. [<10, 13, 5> 17.15/17]", 59705578], + [374, 7, 731, "Metrics/MethodLength: Method has too many lines. [12/10]", 59705578], + [382, 9, 8, "Style/MultilineBlockChain: Avoid multi-line chains of blocks.", 359222635], + [393, 7, 770, "Metrics/MethodLength: Method has too many lines. [21/10]", 543737609], + [427, 7, 1101, "Metrics/AbcSize: Assignment Branch Condition size for `build_refined_matches` is too high. [<11, 16, 8> 21/17]", 4236016583], + [427, 7, 1101, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `build_refined_matches` is too high. [9/7]", 4236016583], + [427, 7, 1101, "Metrics/MethodLength: Method has too many lines. [18/10]", 4236016583], + [427, 7, 1101, "Metrics/PerceivedComplexity: Perceived complexity for `build_refined_matches` is too high. [9/8]", 4236016583], + [467, 7, 642, "Metrics/AbcSize: Assignment Branch Condition size for `emit_removed_destination_node_inline_comments` is too high. [<4, 20, 5> 21/17]", 2624953678], + [467, 7, 642, "Metrics/MethodLength: Method has too many lines. [11/10]", 2624953678], + [502, 7, 720, "Metrics/MethodLength: Method has too many lines. [11/10]", 4270722493], + [539, 7, 1022, "Metrics/MethodLength: Method has too many lines. [17/10]", 3216685542], + [624, 7, 1854, "Metrics/AbcSize: Assignment Branch Condition size for `emit_leading_region` is too high. [<8, 28, 9> 30.48/17]", 377203837], + [624, 7, 1854, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `emit_leading_region` is too high. [10/7]", 377203837], + [624, 7, 1854, "Metrics/MethodLength: Method has too many lines. [32/10]", 377203837], + [624, 7, 1854, "Metrics/PerceivedComplexity: Perceived complexity for `emit_leading_region` is too high. [10/8]", 377203837], + [725, 7, 1275, "Metrics/AbcSize: Assignment Branch Condition size for `collapse_template_preamble_prefix_region` is too high. [<7, 24, 9> 26.57/17]", 1754222078], + [725, 7, 1275, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `collapse_template_preamble_prefix_region` is too high. [8/7]", 1754222078], + [725, 7, 1275, "Metrics/MethodLength: Method has too many lines. [24/10]", 1754222078], + [756, 7, 662, "Metrics/AbcSize: Assignment Branch Condition size for `root_boundary_lines_for` is too high. [<4, 15, 10> 18.47/17]", 935744348], + [756, 7, 662, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `root_boundary_lines_for` is too high. [9/7]", 935744348], + [756, 7, 662, "Metrics/MethodLength: Method has too many lines. [14/10]", 935744348], + [776, 7, 343, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `region_lines_for` is too high. [8/7]", 399995706], + [793, 7, 614, "Metrics/AbcSize: Assignment Branch Condition size for `dedup_warning_context` is too high. [<0, 20, 10> 22.36/17]", 2011768288], + [793, 7, 614, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `dedup_warning_context` is too high. [11/7]", 2011768288], + [793, 7, 614, "Metrics/PerceivedComplexity: Perceived complexity for `dedup_warning_context` is too high. [11/8]", 2011768288], + [796, 27, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], + [797, 41, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], + [797, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 3287405165], + [823, 7, 1426, "Metrics/MethodLength: Method has too many lines. [34/10]", 1351993853], + [889, 7, 955, "Metrics/MethodLength: Method has too many lines. [21/10]", 3080929417], + [917, 7, 1249, "Metrics/AbcSize: Assignment Branch Condition size for `emit_node_lines` is too high. [<6, 21, 6> 22.65/17]", 3195628693], + [917, 7, 1249, "Metrics/MethodLength: Method has too many lines. [21/10]", 3195628693], + [992, 7, 637, "Metrics/AbcSize: Assignment Branch Condition size for `inline_region_separator` is too high. [<5, 18, 7> 19.95/17]", 2029360360], + [992, 7, 637, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `inline_region_separator` is too high. [8/7]", 2029360360], + [992, 7, 637, "Metrics/MethodLength: Method has too many lines. [12/10]", 2029360360], + [1009, 7, 465, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `emit_interstitial_blank_lines` is too high. [9/7]", 1640065866], + [1009, 7, 465, "Metrics/PerceivedComplexity: Perceived complexity for `emit_interstitial_blank_lines` is too high. [9/8]", 1640065866], + [1021, 7, 620, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `emit_gap_before_node` is too high. [12/7]", 2808239642], + [1021, 7, 620, "Metrics/PerceivedComplexity: Perceived complexity for `emit_gap_before_node` is too high. [12/8]", 2808239642], + [1023, 36, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], + [1033, 7, 1125, "Metrics/MethodLength: Method has too many lines. [18/10]", 3775496635], + [1033, 39, 300, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [10/5]", 187324165], + [1073, 7, 526, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `emit_preceding_blank_lines` is too high. [8/7]", 3889743093], + [1073, 7, 526, "Metrics/MethodLength: Method has too many lines. [11/10]", 3889743093] ], "lib/toml/merge/file_analysis.rb:2630402533": [ [12, 5, 19537, "Metrics/ClassLength: Class has too many lines. [368/100]", 929433986], @@ -244,10 +264,15 @@ [217, 7, 659, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `levenshtein_distance` is too high. [8/7]", 2658150371], [217, 7, 659, "Metrics/MethodLength: Method has too many lines. [18/10]", 2658150371] ], - "spec/fixtures_integration_spec.rb:3985149016": [ - [3, 1, 12320, "Metrics/BlockLength: Block has too many lines. [273/25]", 2102318823], - [34, 3, 2099, "Metrics/BlockLength: Block has too many lines. [27/25]", 677669008], - [233, 3, 1127, "Metrics/BlockLength: Block has too many lines. [27/25]", 3231986094] + "spec/fixtures_integration_spec.rb:1948553981": [ + [3, 1, 12673, "Metrics/BlockLength: Block has too many lines. [277/25]", 2102318823], + [34, 3, 2178, "Metrics/BlockLength: Block has too many lines. [28/25]", 2701083302], + [233, 3, 1123, "Metrics/BlockLength: Block has too many lines. [27/25]", 3231986094] + ], + "spec/toml/merge/retained_blank_gap_compliance_spec.rb:2776016416": [ + [8, 1, 1072, "Metrics/BlockLength: Block has too many lines. [31/25]", 305562394], + [15, 46, 23, "Style/SymbolProc: Pass `&:statements` as an argument to `lambda` instead of a block.", 277221641], + [16, 37, 15, "Style/SymbolProc: Pass `&:value` as an argument to `lambda` instead of a block.", 1808354951] ], "toml-merge.gemspec:2519299257": [ [128, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 2821357214], diff --git a/gems/toml-merge/Gemfile b/gems/toml-merge/Gemfile index cee8c0338..85cfc5856 100644 --- a/gems/toml-merge/Gemfile +++ b/gems/toml-merge/Gemfile @@ -6,7 +6,7 @@ # kettle-jem will then preserve content between those markers across template runs. # kettle-jem:unfreeze -source "https://gem.coop" +source 'https://gem.coop' git_source(:codeberg) { |repo_name| "https://codeberg.org/#{repo_name}" } git_source(:gitlab) { |repo_name| "https://gitlab.com/#{repo_name}" } @@ -19,58 +19,54 @@ git_source(:gitlab) { |repo_name| "https://gitlab.com/#{repo_name}" } gemspec # Local workspace dependency wiring for *_local.gemfile overrides -nomono_requirements = ["~> 1.0", ">= 1.0.8"] -gem "nomono", *nomono_requirements, require: false # ruby >= 2.2 +nomono_requirements = ['~> 1.0', '>= 1.0.8'] +gem 'nomono', *nomono_requirements, require: false # ruby >= 2.2 # Direct sibling dependencies (env-switched via STRUCTUREDMERGE_DEV) direct_sibling_gems = %w[ ast-merge tree_haver ] -direct_sibling_dev = ENV.fetch("STRUCTUREDMERGE_DEV", "") +direct_sibling_dev = ENV.fetch('STRUCTUREDMERGE_DEV', '') direct_sibling_local = !direct_sibling_dev.empty? && !%w[false 0 no off].include?(direct_sibling_dev.downcase) -direct_sibling_templating = ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? +direct_sibling_templating = ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero?) - direct_sibling_dev_was_set = ENV.key?("STRUCTUREDMERGE_DEV") - direct_sibling_dev_original = ENV.fetch("STRUCTUREDMERGE_DEV", nil) + (direct_sibling_local || + ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) + direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') + direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) begin nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path("Gemfile.lock", __dir__) + nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == "nomono" } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - if nomono_locked - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] - end - end - Kernel.send(:gem, "nomono", *nomono_activation_requirements) - require "nomono/bundler" - if direct_sibling_templating && !direct_sibling_local - ENV["STRUCTUREDMERGE_DEV"] = File.expand_path("..", __dir__) + Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked end + Kernel.send(:gem, 'nomono', *nomono_activation_requirements) + require 'nomono/bundler' + ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local eval_nomono_gems( gems: direct_sibling_gems, - prefix: "STRUCTUREDMERGE", - path_env: "STRUCTUREDMERGE_DEV", - root: ["src", "my", "structuredmerge"] + prefix: 'STRUCTUREDMERGE', + path_env: 'STRUCTUREDMERGE_DEV', + root: %w[src my structuredmerge] ) rescue LoadError - warn "Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies." + warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' ensure if direct_sibling_templating && !direct_sibling_local if direct_sibling_dev_was_set - ENV["STRUCTUREDMERGE_DEV"] = direct_sibling_dev_original + ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original else - ENV.delete("STRUCTUREDMERGE_DEV") + ENV.delete('STRUCTUREDMERGE_DEV') end end end @@ -117,28 +113,28 @@ if direct_sibling_gems.any? && end # Use released TSLP with the Ruby ABI platform-gem fix. -gem "tree_sitter_language_pack", "~> 1.13", ">= 1.13.3" +gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' # Templating (env-switched: STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local paths) -eval_gemfile "gemfiles/modular/templating.gemfile" if ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? +eval_gemfile 'gemfiles/modular/templating.gemfile' if ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? # Debugging -eval_gemfile "gemfiles/modular/debug.gemfile" +eval_gemfile 'gemfiles/modular/debug.gemfile' # Code Coverage (env-switched: KETTLE_DEV_DEV=true for local paths) -eval_gemfile "gemfiles/modular/coverage.gemfile" +eval_gemfile 'gemfiles/modular/coverage.gemfile' # Linting -eval_gemfile "gemfiles/modular/style.gemfile" +eval_gemfile 'gemfiles/modular/style.gemfile' # Documentation -eval_gemfile "gemfiles/modular/documentation.gemfile" +eval_gemfile 'gemfiles/modular/documentation.gemfile' # Optional -eval_gemfile "gemfiles/modular/optional.gemfile" +eval_gemfile 'gemfiles/modular/optional.gemfile' ### Std Lib Extracted Gems -eval_gemfile "gemfiles/modular/x_std_libs.gemfile" +eval_gemfile 'gemfiles/modular/x_std_libs.gemfile' # See unlocked_deps appraisal for more details on irb inclusion -gem "irb", "~> 1.17" # ruby >= 2.7 +gem 'irb', '~> 1.17' # ruby >= 2.7 diff --git a/gems/toml-merge/Gemfile.lock b/gems/toml-merge/Gemfile.lock index 9c60b485c..35b4db3db 100644 --- a/gems/toml-merge/Gemfile.lock +++ b/gems/toml-merge/Gemfile.lock @@ -6,6 +6,24 @@ PATH tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge + specs: + ast-merge (7.1.0) + benchmark + token-resolver (~> 2.0, >= 2.0.4) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver + specs: + tree_haver (7.1.0) + citrus (~> 3.0) + parslet (~> 2.0) + tree_sitter_language_pack (>= 1.13.2, < 2.0) + version_gem (~> 1.1, >= 1.1.9) + GEM remote: https://gem.coop/ specs: @@ -16,18 +34,18 @@ GEM bundler (>= 1.17.3) rake (>= 10) thor (>= 0.14) + appraisal2-rubocop (1.0.0) + appraisal2 (>= 3.1.4) + rubocop (>= 1.0) + version_gem (~> 1.1, >= 1.1.14) ast (2.4.3) - ast-merge (7.1.0) - benchmark - token-resolver (~> 2.0, >= 2.0.4) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) backports (3.25.3) benchmark (0.5.0) bigdecimal (4.1.2) bundler-audit (0.9.3) bundler (>= 1.2.0) thor (~> 1.0) + cgi (0.5.2) citrus (3.0.2) cmdparse (3.0.7) concurrent-ruby (1.3.7) @@ -38,7 +56,6 @@ GEM delegate (0.6.1) diff-lcs (1.6.2) diffy (3.4.4) - docile (1.4.1) dry-configurable (1.4.0) dry-core (~> 1.0) zeitwerk (~> 2.6) @@ -69,7 +86,7 @@ GEM dry-logic (~> 1.4) zeitwerk (~> 2.6) emoji_regex (15.0.0) - erb (6.0.5) + erb (6.0.6) gem_bench (2.0.5) bundler (>= 1.14) version_gem (~> 1.1, >= 1.1.4) @@ -94,15 +111,13 @@ GEM kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) kettle-rb (0.1.4) - kettle-soup-cover (1.1.3) - simplecov (~> 0.22) - simplecov-cobertura (~> 3.0) - simplecov-console (~> 0.9, >= 0.9.3) - simplecov-html (~> 0.13, >= 0.13.1) - simplecov-lcov (~> 0.8) + kettle-soup-cover (3.0.4) + kettle-wash (~> 0.1, >= 0.1.0) + simplecov (>= 1.0) + simplecov-cobertura (>= 4.0) + simplecov-console (~> 0.9, >= 0.9.5) simplecov-rcov (~> 0.3, >= 0.3.7) - simplecov_json_formatter (~> 0.1, >= 0.1.4) - version_gem (~> 1.1, >= 1.1.9) + simplecov_lcov_formatter (~> 0.9, >= 0.9.0) kettle-test (2.0.11) appraisal2 (~> 3.0, >= 3.0.6) backports (~> 3.0) @@ -114,6 +129,8 @@ GEM silent_stream (~> 1.0, >= 1.0.12) timecop-rspec (~> 1.0, >= 1.0.3) turbo_tests2 (~> 3.1, >= 3.1.12) + kettle-wash (0.1.1) + version_gem (~> 1.1, >= 1.1.14) kramdown (2.5.2) rexml (>= 3.4.4) kramdown-parser-gfm (1.1.0) @@ -208,6 +225,14 @@ GEM rubocop-ast (1.50.0) parser (>= 3.3.7.2) prism (~> 1.7) + rubocop-capybara (2.23.0) + lint_roller (~> 1.1) + rubocop (~> 1.81) + rubocop-env (0.1.0) + rubocop + rubocop-factory_bot (2.28.0) + lint_roller (~> 1.1) + rubocop (~> 1.72, >= 1.72.1) rubocop-gradual (0.4.0) benchmark diff-lcs (>= 1.2.0, < 2.0) @@ -215,13 +240,26 @@ GEM parallel (~> 1.10) rainbow (>= 2.2.2, < 4.0) rubocop (~> 1.0) - rubocop-lts (24.1.0) - rubocop-ruby3_2 (>= 3.0.0, < 4) - standard-rubocop-lts (>= 2.0.2, < 3) - version_gem (>= 1.1.2, < 3) + rubocop-lts (24.2.2) + rubocop-ruby3_2 (~> 3.0, >= 3.0.1) + standard-rubocop-lts (~> 2.0, >= 2.0.3) + version_gem (~> 1.1, >= 1.1.13) + rubocop-lts-rspec (1.0.5) + rubocop (~> 1.84, >= 1.84.2) + rubocop-env (~> 0.1, >= 0.1.0) + rubocop-factory_bot (~> 2.28, >= 2.28.0) + rubocop-rspec (~> 3.9, >= 3.9.0) + rubocop-rspec-extra (~> 0.3, >= 0.3.0) + standard (~> 1.54, >= 1.54.0) + standard-rspec (~> 0.5, >= 0.5.0) + version_gem (~> 1.1, >= 1.1.13) rubocop-md (2.0.4) lint_roller (~> 1.1) rubocop (>= 1.72.1) + rubocop-minitest (0.40.0) + lint_roller (~> 1.1) + rubocop (>= 1.75.0, < 2.0) + rubocop-ast (>= 1.38.0, < 2.0) rubocop-on-rbs (2.0.0) lint_roller (~> 1.1) rbs (~> 4.0) @@ -241,6 +279,13 @@ GEM lint_roller (~> 1.1) regexp_parser (>= 2.0) rubocop (~> 1.86, >= 1.86.2) + rubocop-rspec-extra (0.3.0) + lint_roller (~> 1.1) + rubocop (>= 1.72.1, < 2.0) + rubocop-rspec_rails (2.32.0) + lint_roller (~> 1.1) + rubocop (~> 1.72, >= 1.72.1) + rubocop-rspec (~> 3.5) rubocop-ruby3_2 (3.0.7) rubocop-gradual (~> 0.3, >= 0.3.6) rubocop-md (~> 2.0, >= 2.0.4) @@ -258,22 +303,18 @@ GEM silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) - simplecov (0.22.0) - docile (~> 1.1) - simplecov-html (~> 0.11) - simplecov_json_formatter (~> 0.1) - simplecov-cobertura (3.2.0) + simplecov (1.0.2) + simplecov-cobertura (4.0.0) rexml - simplecov (~> 0.19) + simplecov (~> 1.0) simplecov-console (0.9.5) ansi simplecov terminal-table - simplecov-html (0.13.2) - simplecov-lcov (0.9.0) simplecov-rcov (0.3.7) simplecov (>= 0.4.1) - simplecov_json_formatter (0.1.4) + simplecov_lcov_formatter (0.9.0) + simplecov (>= 0.18) sorbet-runtime (0.6.13347) standard (1.56.0) language_server-protocol (~> 3.17.0.2) @@ -287,6 +328,12 @@ GEM standard-performance (1.9.0) lint_roller (~> 1.1) rubocop-performance (~> 1.26.0) + standard-rspec (0.5.0) + lint_roller (>= 1.0) + rubocop-capybara (~> 2.23) + rubocop-factory_bot (~> 2.27) + rubocop-rspec (~> 3.9) + rubocop-rspec_rails (~> 2.31) standard-rubocop-lts (2.0.10) standard (~> 1.54, >= 1.54.0) standard-custom (~> 1.0, >= 1.0.2) @@ -306,12 +353,7 @@ GEM timecop (>= 0.7, < 1) token-resolver (2.0.4) parslet (~> 2.0) - version_gem (~> 1.1, >= 1.1.14) - tree_haver (7.1.0) - citrus (~> 3.0) - parslet (~> 2.0) - tree_sitter_language_pack (>= 1.13.2, < 2.0) - version_gem (~> 1.1, >= 1.1.9) + version_gem (~> 1.1, >= 1.1.13) tree_sitter_language_pack (1.13.3-aarch64-linux) sorbet-runtime (~> 0.5) tree_sitter_language_pack (1.13.3-arm64-darwin) @@ -327,6 +369,7 @@ GEM unicode-emoji (~> 4.1) unicode-emoji (4.2.0) version_gem (1.1.14) + webrick (1.9.2) yaml-converter (0.2.3) hexapdf (>= 1.8, < 2) kramdown (>= 2.4, < 3) @@ -364,54 +407,63 @@ PLATFORMS DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) + appraisal2-rubocop (~> 1.0, >= 1.0.0) + ast-merge! benchmark (~> 0.5, >= 0.5.0) bundler-audit (~> 0.9.3) + cgi (~> 0.5) debug (>= 1.1) - erb (~> 6.0, >= 6.0.4) + erb (~> 6.0, >= 6.0.6) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.0) irb (~> 1.17) kettle-dev (~> 2.0, >= 2.2.25) - kettle-soup-cover (~> 1.0, >= 1.1.3) + kettle-soup-cover (~> 3.0, >= 3.0.3) kettle-test (~> 2.0, >= 2.0.9) - kramdown (~> 2.5, >= 2.5.1) + kramdown (~> 2.5, >= 2.5.2) kramdown-parser-gfm (~> 1.1) mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) rake (~> 13.0) rbs (>= 3.0) rdoc (~> 6.11) - reek (~> 6.5) + reek (~> 6.5, >= 6.5.0) require_bench (~> 1.0, >= 1.0.4) - rubocop-lts (~> 24.1.0) - rubocop-on-rbs (~> 2.0) + rubocop-gradual (~> 0.4, >= 0.4.0) + rubocop-lts (~> 24.2, >= 24.2.1) + rubocop-lts-rspec (~> 1.0, >= 1.0.5) + rubocop-minitest (~> 0.40, >= 0.40.0) + rubocop-on-rbs (~> 2.0, >= 2.0.0) rubocop-packaging (~> 0.6, >= 0.6.0) - rubocop-rspec (~> 3.6) - rubocop-ruby3_2 (~> 3.0.0) + rubocop-ruby3_2 (~> 3.0, >= 3.0.6) ruby-progressbar (~> 1.13) - standard (>= 1.50) + standard (~> 1.56, >= 1.56.0) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) toml-merge! + tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) - yaml-converter (~> 0.1) - yard (~> 0.9, >= 0.9.44) - yard-fence (~> 0.9, >= 0.9.1) + webrick (~> 1.9) + yaml-converter (~> 0.2, >= 0.2.3) + yard (~> 0.9, >= 0.9.45) + yard-fence (~> 0.9, >= 0.9.6) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) - yard-timekeeper (~> 0.1) - yard-yaml (~> 0.1, >= 0.1.2) + yard-timekeeper (~> 0.2, >= 0.2.4) + yard-yaml (~> 0.2, >= 0.2.3) CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af ansi (1.6.0) sha256=ac9ea0c0ea8d32fb4e271348e609963ac78882f34b73836c2a02b3622e666658 appraisal2 (3.2.0) sha256=ccd0b767ac4060cd7af6d16747459b6990f49c39c7b4fb1f7d1146b1e97c492f + appraisal2-rubocop (1.0.0) sha256=b71410fbb014befda5340605a605b7f6f3f012739baf0acc5b4351b592c3258d ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 ast-merge (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 + cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 concurrent-ruby (1.3.7) sha256=4412caec3a5ea2e5fdc52076724c071a81f2c0593d83b2ac8cbb8ca63b3151b0 @@ -420,7 +472,6 @@ CHECKSUMS delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 - docile (1.4.1) sha256=96159be799bfa73cdb721b840e9802126e4e03dfc26863db73647204c727f21e dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -429,7 +480,7 @@ CHECKSUMS dry-schema (1.16.0) sha256=cd3aaeabc0f1af66ec82a29096d4c4fb92a0a58b9dae29a22b1bbceb78985727 dry-types (1.9.1) sha256=baebeecdb9f8395d6c9d227b62011279440943e3ef2468fe8ccc1ba11467f178 emoji_regex (15.0.0) sha256=a508b2c0bee561169564e0aec96085020c900520d335e5533fd8e78e59493829 - erb (6.0.5) sha256=858e63488cb796c9daba8b6e9ff4b3879c395022049be9a66a8e00980e612eac + erb (6.0.6) sha256=a9b24986700f5bf127c4f297c5403c3ca41b83b0a316c0cd09a096b56e644ae5 gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f @@ -439,8 +490,9 @@ CHECKSUMS json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 kettle-dev (2.3.7) sha256=eb370113cd030d03cbe2d33b31c99858951017e5ad21a17e9ed89dc3770028ee kettle-rb (0.1.4) sha256=9cef7ce4f7021666b7222292f29051e51eaf042e8a5db11f3f4dd72f74243fc1 - kettle-soup-cover (1.1.3) sha256=a373827da22a7131d093afd32945e5b7d7a10a01ebfdded8fd2cb8230d69c8ad + kettle-soup-cover (3.0.4) kettle-test (2.0.11) sha256=c710c90f7ab79d51f9452f0c09f5f90657e7a893f63583855c164d0b1b107ab2 + kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 @@ -485,31 +537,37 @@ CHECKSUMS rspec_junit_formatter (0.6.0) sha256=40dde674e6ae4e6cc0ff560da25497677e34fefd2338cc467a8972f602b62b15 rubocop (1.88.2) sha256=8def251c90cd955feb4daa3edc0ab56893250c4ce90ef81e6c80c03f9a939bbf rubocop-ast (1.50.0) sha256=b9ca88300da0803ee222ad20cdb30494c0a784eed06fdc35d254b06d662788db + rubocop-capybara (2.23.0) sha256=f9ea1ba3a7561ee8e88cf76fc378ce517ce5327155f305ee7b5c2500e5aee357 + rubocop-env (0.1.0) sha256=5ab9a259e71822bf514c8e900a9b68cc2f74ccc87d5493efcd03213f3068e718 + rubocop-factory_bot (2.28.0) sha256=4b17fc02124444173317e131759d195b0d762844a71a29fe8139c1105d92f0cb rubocop-gradual (0.4.0) sha256=9c7e584e6fef6c2539266a193a4572c970c22f99046fd6b0305bdde6228f96ad - rubocop-lts (24.1.0) sha256=9dcad4db2da2fe2f1f77f98c917d70e7c43eded703da14cd201d4be52a9272aa + rubocop-lts (24.2.2) sha256=be6c745e1bb61daebd6af3cc3227c60f95be9f642a080773cad7df14c5f9f174 + rubocop-lts-rspec (1.0.5) sha256=439552fd27440802cc499889e013bffa28aadc41adae5d4dfff3d984a2a809b4 rubocop-md (2.0.4) sha256=0d076b6b5e99dea2ddc928c4bd702497decb9a8400da7808091e02ebcafcfb93 + rubocop-minitest (0.40.0) sha256=353c698199115f12151144cf0b5a96f69bb9d77b660cf6536df2c4250c672a9d rubocop-on-rbs (2.0.0) sha256=ce74d1b3d5daead19f4b611623656c185821dfc9aed9c7079bb1e5d7d7c464be rubocop-packaging (0.6.0) sha256=fb92bd0fb48e6f8cdb1648d2249b0cd51c2497dcc87340132d22f01edbf558a7 rubocop-performance (1.26.1) sha256=cd19b936ff196df85829d264b522fd4f98b6c89ad271fa52744a8c11b8f71834 rubocop-rake (0.7.1) sha256=3797f2b6810c3e9df7376c26d5f44f3475eda59eb1adc38e6f62ecf027cbae4d rubocop-rspec (3.10.2) sha256=0b3e2ecc592cd10ecbf0095bb58d1e357905276e069643523cc19eb7495f65e2 + rubocop-rspec-extra (0.3.0) sha256=ee4b6484d0332a0d23c4a465eeb607e41888eb3d4ed479f850b9f5212514f787 + rubocop-rspec_rails (2.32.0) sha256=4a0d641c72f6ebb957534f539d9d0a62c47abd8ce0d0aeee1ef4701e892a9100 rubocop-ruby3_2 (3.0.7) sha256=f53dd6d286fb05186214fc6ec116783e7f837030918e8931c05de773e98f8466 rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 - simplecov (0.22.0) sha256=fe2622c7834ff23b98066bb0a854284b2729a569ac659f82621fc22ef36213a5 - simplecov-cobertura (3.2.0) sha256=70d702658677fcb20e5aceb6915ccf8bc62ff2ccd38b62b3ad5c9db5c0888740 + simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 + simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 - simplecov-html (0.13.2) sha256=bd0b8e54e7c2d7685927e8d6286466359b6f16b18cb0df47b508e8d73c777246 - simplecov-lcov (0.9.0) sha256=7a77a31e200a595ed4b0249493056efd0c920601f53d2ef135ca34ee796346cd simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc - simplecov_json_formatter (0.1.4) sha256=529418fbe8de1713ac2b2d612aa3daa56d316975d307244399fa4838c601b428 + simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed sorbet-runtime (0.6.13347) sha256=54e7221d9f4b63f58aec79f3043752a9ba7810347c6ae0d903531591cc2d5f01 standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b standard-performance (1.9.0) sha256=49483d31be448292951d80e5e67cdcb576c2502103c7b40aec6f1b6e9c88e3f2 + standard-rspec (0.5.0) sha256=64d396524a65af47f5331b423d8cdd313e0267401647bb7892489ca89dad2973 standard-rubocop-lts (2.0.10) sha256=89708a505b7d8b24d2ac399a7520fcb9e764abc2ecb4289b631b5fe0e3b76617 stone_checksums (1.0.6) sha256=c775f830513d6c6ab26e31d1a5fbecd4c4e39002663d4d9f8fa96e97990b5298 stringio (3.2.0) sha256=c37cb2e58b4ffbd33fe5cd948c05934af997b36e0b6ca6fdf43afa234cf222e1 @@ -529,6 +587,7 @@ CHECKSUMS unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 + webrick (1.9.2) sha256=beb4a15fc474defed24a3bda4ffd88a490d517c9e4e6118c3edce59e45864131 yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 diff --git a/gems/toml-merge/README.md b/gems/toml-merge/README.md index 9e1d354b9..fd85558ff 100644 --- a/gems/toml-merge/README.md +++ b/gems/toml-merge/README.md @@ -80,7 +80,7 @@ puts result.content if result.success? | Tokens to Remember | [![Gem name][⛳️name-img]][⛳️gem-name] [![Gem namespace][⛳️namespace-img]][⛳️gem-namespace] | |-------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | Works with MRI Ruby 4 | [![Ruby current Compat][💎ruby-c-i]][🚎11-c-wf]| -| Support & Community | [![Join Me on Daily.dev's RubyFriends][✉️ruby-friends-img]][✉️ruby-friends] [![Live Chat on Discord][✉️discord-invite-img-ftb]][✉️discord-invite] [![Get help from me on Upwork][👨🏼‍🏫expsup-upwork-img]][👨🏼‍🏫expsup-upwork] [![Get help from me on Codementor][👨🏼‍🏫expsup-codementor-img]][👨🏼‍🏫expsup-codementor] | +| Support & Community | [![Join Me on Daily.dev's RubyFriends][✉️ruby-friends-img]][✉️ruby-friends] [![Get help from RubyForum][✉️ruby-forum-img]][✉️ruby-forum] [![Live Chat on Discord][✉️discord-invite-img-ftb]][✉️discord-invite] [![Get help from me on Upwork][👨🏼‍🏫expsup-upwork-img]][👨🏼‍🏫expsup-upwork] [![Get help from me on Codementor][👨🏼‍🏫expsup-codementor-img]][👨🏼‍🏫expsup-codementor] | | Source | [![Source on GitLab.com][📜src-gl-img]][📜src-gl] [![Source on CodeBerg.org][📜src-cb-img]][📜src-cb] [![Source on Github.com][📜src-gh-img]][📜src-gh] [![The best SHA: dQw4w9WgXcQ!][🧮kloc-img]][🧮kloc] | | Documentation | [![Current release on RubyDoc.info][📜docs-cr-rd-img]][🚎yard-current] [![YARD on Galtzo.com][📜docs-head-rd-img]][🚎yard-head] [![Maintainer Blog][🚂maint-blog-img]][🚂maint-blog] [![GitLab Wiki][📜gl-wiki-img]][📜gl-wiki] [![GitHub Wiki][📜gh-wiki-img]][📜gh-wiki] | | Compliance | [![License: AGPL-3.0-only OR PolyForm-Small-Business-1.0.0][📄license-img]][📄license] [![Apache license compatibility: Category X][📄license-compat-img]][📄license-compat] [![📄ilo-declaration-img]][📄ilo-declaration] [![Security Policy][🔐security-img]][🔐security] [![Contributor Covenant 2.1][🪇conduct-img]][🪇conduct] [![SemVer 2.0.0][📌semver-img]][📌semver] | @@ -239,6 +239,8 @@ If none of the available licenses suit your use case, please [contact us](mailto [✉️discord-invite-img-ftb]: https://img.shields.io/discord/1373797679469170758?style=for-the-badge&logo=discord [✉️ruby-friends-img]: https://img.shields.io/badge/daily.dev-%F0%9F%92%8E_Ruby_Friends-0A0A0A?style=for-the-badge&logo=dailydotdev&logoColor=white [✉️ruby-friends]: https://app.daily.dev/squads/rubyfriends +[✉️ruby-forum-img]: https://img.shields.io/badge/RubyForum-Help-CC342D?style=for-the-badge&logo=ruby&logoColor=white +[✉️ruby-forum]: https://www.rubyforum.org/c/help/8 [✇bundle-group-pattern]: https://gist.github.com/pboling/4564780 [⛳️gem-namespace]: https://github.com/structuredmerge/structuredmerge-ruby/tree/main/gems/toml-merge [⛳️namespace-img]: https://img.shields.io/badge/namespace-Toml::Merge-3C2D2D.svg?style=square&logo=ruby&logoColor=white diff --git a/gems/toml-merge/Rakefile b/gems/toml-merge/Rakefile index 4d0c02b16..1038ac780 100644 --- a/gems/toml-merge/Rakefile +++ b/gems/toml-merge/Rakefile @@ -130,23 +130,23 @@ end ### DUPLICATE DRIFT TASKS begin - require "kettle/drift" + require 'kettle/drift' Kettle::Drift.install_tasks rescue LoadError - desc("(stub) kettle:drift:check is unavailable") - task("kettle:drift:check") do + desc('(stub) kettle:drift:check is unavailable') + task('kettle:drift:check') do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc("(stub) kettle:drift:update is unavailable") - task("kettle:drift:update") do + desc('(stub) kettle:drift:update is unavailable') + task('kettle:drift:update') do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc("(stub) kettle:drift:force_update is unavailable") - task("kettle:drift:force_update") do + desc('(stub) kettle:drift:force_update is unavailable') + task('kettle:drift:force_update') do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc("(stub) kettle:drift is unavailable") - task("kettle:drift" => "kettle:drift:update") + desc('(stub) kettle:drift is unavailable') + task('kettle:drift' => 'kettle:drift:update') end ### TEMPLATING TASKS diff --git a/gems/toml-merge/gemfiles/modular/cgi/r4/v0.5.gemfile b/gems/toml-merge/gemfiles/modular/cgi/r4/v0.5.gemfile new file mode 100644 index 000000000..17ad97260 --- /dev/null +++ b/gems/toml-merge/gemfiles/modular/cgi/r4/v0.5.gemfile @@ -0,0 +1 @@ +gem 'cgi', '~> 0.5' diff --git a/gems/toml-merge/gemfiles/modular/cgi/vHEAD.gemfile b/gems/toml-merge/gemfiles/modular/cgi/vHEAD.gemfile new file mode 100644 index 000000000..650fbf033 --- /dev/null +++ b/gems/toml-merge/gemfiles/modular/cgi/vHEAD.gemfile @@ -0,0 +1 @@ +gem 'cgi', '>= 0.5' diff --git a/gems/toml-merge/gemfiles/modular/coverage.gemfile b/gems/toml-merge/gemfiles/modular/coverage.gemfile index f96d50954..b93014b6b 100644 --- a/gems/toml-merge/gemfiles/modular/coverage.gemfile +++ b/gems/toml-merge/gemfiles/modular/coverage.gemfile @@ -7,7 +7,7 @@ if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? # Coverage (remote/released) platform :mri do - gem 'kettle-soup-cover', '~> 1.0', '>= 1.1.3', require: false + gem 'kettle-soup-cover', '~> 3.0', '>= 3.0.3', require: false end else eval_gemfile 'coverage_local.gemfile' diff --git a/gems/toml-merge/gemfiles/modular/coverage_local.gemfile b/gems/toml-merge/gemfiles/modular/coverage_local.gemfile index fe9a8a92e..b0d68d3fe 100644 --- a/gems/toml-merge/gemfiles/modular/coverage_local.gemfile +++ b/gems/toml-merge/gemfiles/modular/coverage_local.gemfile @@ -3,13 +3,33 @@ # Local path overrides for development. # Loaded by the associated non-local gemfile when KETTLE_DEV_DEV != "false". -require 'nomono/bundler' unless defined?(Nomono) +# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. +# Bundler records that dependency during Gemfile evaluation, but it does not +# activate that exact version before the immediate `require "nomono/bundler"`. +# If multiple compatible nomono versions are installed, RubyGems may activate +# the newest installed version while Gemfile.lock pins an older compatible one; +# Bundler then aborts with "already activated nomono X, but your Gemfile +# requires nomono Y". Prefer the locked compatible version when present, then +# activate it explicitly before requiring the Bundler DSL extension used below. +nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] +nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) +if File.file?(nomono_lockfile) + nomono_locked_spec = Bundler::LockfileParser + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } + nomono_locked = nomono_locked_spec && + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked +end +Kernel.send(:gem, 'nomono', *nomono_activation_requirements) +require 'nomono/bundler' local_gems = %w[kettle-dev kettle-test kettle-soup-cover kettle-drift] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) local_gems_to_eval = local_gems - %w[toml-merge] - declared_gems -# export KETTLE_DEV_DEV=/path/to/kettle-rb +# export KETTLE_DEV_DEV=/path/to/my platform :mri do eval_nomono_gems( gems: local_gems_to_eval, diff --git a/gems/toml-merge/gemfiles/modular/documentation.gemfile b/gems/toml-merge/gemfiles/modular/documentation.gemfile index dff5cc108..9d4535f12 100644 --- a/gems/toml-merge/gemfiles/modular/documentation.gemfile +++ b/gems/toml-merge/gemfiles/modular/documentation.gemfile @@ -7,17 +7,17 @@ # # Documentation -gem 'kramdown', '~> 2.5', '>= 2.5.1', require: false # Ruby >= 2.5 +gem 'kramdown', '~> 2.5', '>= 2.5.2', require: false # Ruby >= 2.5 gem 'kramdown-parser-gfm', '~> 1.1', require: false # Ruby >= 2.3 -gem 'yaml-converter', '~> 0.1', require: false # Ruby >= 3.2 -gem 'yard', '~> 0.9', '>= 0.9.44', require: false +gem 'yaml-converter', '~> 0.2', '>= 0.2.3', require: false # Ruby >= 3.2 +gem 'yard', '~> 0.9', '>= 0.9.45', require: false gem 'yard-junk', '~> 0.1', '>= 0.1.0', require: false # Ruby >= 3.1 gem 'yard-relative_markdown_links', '~> 0.6', require: false if ENV.fetch('GALTZO_FLOSS_DEV', 'false').casecmp('false').zero? - gem 'yard-fence', '~> 0.9', '>= 0.9.1', require: false # Ruby >= 3.2 - gem 'yard-timekeeper', '~> 0.1', require: false - gem 'yard-yaml', '~> 0.1', '>= 0.1.2', require: false + gem 'yard-fence', '~> 0.9', '>= 0.9.6', require: false # Ruby >= 3.2 + gem 'yard-timekeeper', '~> 0.2', '>= 0.2.4', require: false + gem 'yard-yaml', '~> 0.2', '>= 0.2.3', require: false else eval_gemfile 'documentation_local.gemfile' end diff --git a/gems/toml-merge/gemfiles/modular/documentation_local.gemfile b/gems/toml-merge/gemfiles/modular/documentation_local.gemfile index 4d4c2bd95..cd296b896 100644 --- a/gems/toml-merge/gemfiles/modular/documentation_local.gemfile +++ b/gems/toml-merge/gemfiles/modular/documentation_local.gemfile @@ -3,13 +3,35 @@ # Local path overrides for development. # Loaded by the associated non-local gemfile when GALTZO_FLOSS_DEV != "false". -require 'nomono/bundler' unless defined?(Nomono) +# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. +# Bundler records that dependency during Gemfile evaluation, but it does not +# activate that exact version before the immediate `require "nomono/bundler"`. +# If multiple compatible nomono versions are installed, RubyGems may activate +# the newest installed version while Gemfile.lock pins an older compatible one; +# Bundler then aborts with "already activated nomono X, but your Gemfile +# requires nomono Y". Prefer the locked compatible version when present, then +# activate it explicitly before requiring the Bundler DSL extension used below. +nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] +nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) +if File.file?(nomono_lockfile) + nomono_locked_spec = Bundler::LockfileParser + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } + nomono_locked = nomono_locked_spec && + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked +end +Kernel.send(:gem, 'nomono', *nomono_activation_requirements) +require 'nomono/bundler' local_gems = %w[yard-fence yard-timekeeper yard-yaml] +declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) +local_gems_to_eval = local_gems - %w[toml-merge] - declared_gems # export GALTZO_FLOSS_DEV=/path/to/galtzo-floss eval_nomono_gems( - gems: local_gems, + gems: local_gems_to_eval, prefix: 'GALTZO_FLOSS', path_env: 'GALTZO_FLOSS_DEV', vendored_gems_env: 'GALTZO_FLOSS_VENDORED_GEMS', diff --git a/gems/toml-merge/gemfiles/modular/erb/r3/v5.0.gemfile b/gems/toml-merge/gemfiles/modular/erb/r3/v5.0.gemfile index 0e3bf1b97..ec7ff451f 100644 --- a/gems/toml-merge/gemfiles/modular/erb/r3/v5.0.gemfile +++ b/gems/toml-merge/gemfiles/modular/erb/r3/v5.0.gemfile @@ -1 +1 @@ -gem 'erb', '~> 6.0', '>= 6.0.4' # ruby >= 3.2.0 +gem 'erb', '~> 6.0', '>= 6.0.6' # ruby >= 3.2.0 diff --git a/gems/toml-merge/gemfiles/modular/erb/r4/v5.0.gemfile b/gems/toml-merge/gemfiles/modular/erb/r4/v5.0.gemfile index 0e3bf1b97..ec7ff451f 100644 --- a/gems/toml-merge/gemfiles/modular/erb/r4/v5.0.gemfile +++ b/gems/toml-merge/gemfiles/modular/erb/r4/v5.0.gemfile @@ -1 +1 @@ -gem 'erb', '~> 6.0', '>= 6.0.4' # ruby >= 3.2.0 +gem 'erb', '~> 6.0', '>= 6.0.6' # ruby >= 3.2.0 diff --git a/gems/toml-merge/gemfiles/modular/json/truffleruby_22_3.gemfile b/gems/toml-merge/gemfiles/modular/json/truffleruby_22_3.gemfile new file mode 100644 index 000000000..9b2f8d96a --- /dev/null +++ b/gems/toml-merge/gemfiles/modular/json/truffleruby_22_3.gemfile @@ -0,0 +1,6 @@ +# frozen_string_literal: true + +if RUBY_ENGINE == 'truffleruby' && RUBY_ENGINE_VERSION.start_with?('22.3') + # TruffleRuby 22.3 ships the json default gem from its emulated MRI Ruby. + gem 'json', '= 2.5.1' +end diff --git a/gems/toml-merge/gemfiles/modular/json/truffleruby_23_0.gemfile b/gems/toml-merge/gemfiles/modular/json/truffleruby_23_0.gemfile new file mode 100644 index 000000000..d787a5ef4 --- /dev/null +++ b/gems/toml-merge/gemfiles/modular/json/truffleruby_23_0.gemfile @@ -0,0 +1,6 @@ +# frozen_string_literal: true + +if RUBY_ENGINE == 'truffleruby' && RUBY_ENGINE_VERSION.start_with?('23.0') + # TruffleRuby 23.0 ships the json default gem from its emulated MRI Ruby. + gem 'json', '= 2.6.1' +end diff --git a/gems/toml-merge/gemfiles/modular/json/truffleruby_23_1.gemfile b/gems/toml-merge/gemfiles/modular/json/truffleruby_23_1.gemfile new file mode 100644 index 000000000..d78486b0e --- /dev/null +++ b/gems/toml-merge/gemfiles/modular/json/truffleruby_23_1.gemfile @@ -0,0 +1,6 @@ +# frozen_string_literal: true + +if RUBY_ENGINE == 'truffleruby' && RUBY_ENGINE_VERSION.start_with?('23.1') + # TruffleRuby 23.1 ships the json default gem from its emulated MRI Ruby. + gem 'json', '= 2.6.3' +end diff --git a/gems/toml-merge/gemfiles/modular/optional.gemfile b/gems/toml-merge/gemfiles/modular/optional.gemfile index 5077c18fc..9ea429538 100644 --- a/gems/toml-merge/gemfiles/modular/optional.gemfile +++ b/gems/toml-merge/gemfiles/modular/optional.gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -# To retain during toml-merge templating: +# To retain during kettle-jem templating: # kettle-jem:freeze # # ... your code # kettle-jem:unfreeze @@ -10,7 +10,6 @@ # Required for curated binstubs generated by kettle-jem install gem 'rbs', '>= 3.0', require: false # ruby >= 3.1 -gem 'stone_checksums', '~> 1.0', '>= 1.0.3', require: false # ruby >= 2.2 # Required for kettle-pre-release # URL parsing with Unicode support (falls back to URI if not available) diff --git a/gems/toml-merge/gemfiles/modular/runtime_heads.gemfile b/gems/toml-merge/gemfiles/modular/runtime_heads.gemfile index 7d08f45a8..ebf17c529 100644 --- a/gems/toml-merge/gemfiles/modular/runtime_heads.gemfile +++ b/gems/toml-merge/gemfiles/modular/runtime_heads.gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -# To retain during toml-merge templating: +# To retain during kettle-jem templating: # kettle-jem:freeze # # ... your code # kettle-jem:unfreeze @@ -8,7 +8,4 @@ # Test against HEAD of runtime dependencies so we can proactively file bugs -# Ruby >= 2.2 -gem 'version_gem', github: 'ruby-oauth/version_gem', branch: 'main' - eval_gemfile('x_std_libs/vHEAD.gemfile') diff --git a/gems/toml-merge/gemfiles/modular/style.gemfile b/gems/toml-merge/gemfiles/modular/style.gemfile index 28d4d120a..4dbcc02c0 100644 --- a/gems/toml-merge/gemfiles/modular/style.gemfile +++ b/gems/toml-merge/gemfiles/modular/style.gemfile @@ -1,27 +1,30 @@ # frozen_string_literal: true -# To retain during toml-merge templating: +# To retain during kettle-jem templating: # kettle-jem:freeze # # ... your code # kettle-jem:unfreeze # -# We run rubocop on the latest version of Ruby, -# but in support of the oldest supported version of Ruby +# Style tasks run on the latest Ruby; RuboCop-LTS selects the compatibility +# rules for the configured Ruby floor independently from task dependency floors. -gem 'reek', '~> 6.5' +gem 'reek', '~> 6.5', '>= 6.5.0' platform :mri do - gem 'rubocop-on-rbs', '~> 2.0' # ruby >= 3.2.0 + gem 'appraisal2-rubocop', '~> 1.0', '>= 1.0.0', require: false + gem 'rubocop-gradual', '~> 0.4', '>= 0.4.0' + gem 'rubocop-minitest', '~> 0.40', '>= 0.40.0' + gem 'rubocop-on-rbs', '~> 2.0', '>= 2.0.0' # ruby >= 3.2.0 # gem "rubocop", "~> 1.73", ">= 1.73.2" # constrained by standard gem 'rubocop-packaging', '~> 0.6', '>= 0.6.0' - gem 'standard', '>= 1.50' + gem 'standard', '~> 1.56', '>= 1.56.0' if ENV.fetch('RUBOCOP_LTS_LOCAL', 'false').casecmp('false').zero? - gem 'rubocop-lts', '~> 24.1.0' - # "rubocop-lts-rspec" can't add here until other gems are updated. - gem 'rubocop-rspec', '~> 3.6' - gem 'rubocop-ruby3_2', '~> 3.0.0' + declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) + gem 'rubocop-lts', '~> 24.2', '>= 24.2.1' unless declared_gems.include?('rubocop-lts') + gem 'rubocop-lts-rspec', '~> 1.0', '>= 1.0.5' unless declared_gems.include?('rubocop-lts-rspec') + gem 'rubocop-ruby3_2', '~> 3.0', '>= 3.0.6' unless declared_gems.include?('rubocop-ruby3_2') else eval_gemfile('style_local.gemfile') end diff --git a/gems/toml-merge/gemfiles/modular/style_local.gemfile b/gems/toml-merge/gemfiles/modular/style_local.gemfile index ce75bbe21..45432d3e9 100644 --- a/gems/toml-merge/gemfiles/modular/style_local.gemfile +++ b/gems/toml-merge/gemfiles/modular/style_local.gemfile @@ -1,19 +1,41 @@ # frozen_string_literal: true -# We run rubocop on the latest version of Ruby, -# but in support of the oldest supported version of Ruby +# Style tasks run on the latest Ruby; RuboCop-LTS selects the compatibility +# rules for the configured Ruby floor independently from task dependency floors. # Local path overrides for development. # Loaded by the associated non-local gemfile when RUBOCOP_LTS_LOCAL != "false". -require 'nomono/bundler' unless defined?(Nomono) +# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. +# Bundler records that dependency during Gemfile evaluation, but it does not +# activate that exact version before the immediate `require "nomono/bundler"`. +# If multiple compatible nomono versions are installed, RubyGems may activate +# the newest installed version while Gemfile.lock pins an older compatible one; +# Bundler then aborts with "already activated nomono X, but your Gemfile +# requires nomono Y". Prefer the locked compatible version when present, then +# activate it explicitly before requiring the Bundler DSL extension used below. +nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] +nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) +if File.file?(nomono_lockfile) + nomono_locked_spec = Bundler::LockfileParser + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } + nomono_locked = nomono_locked_spec && + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked +end +Kernel.send(:gem, 'nomono', *nomono_activation_requirements) +require 'nomono/bundler' local_gems = %w[rubocop-lts rubocop-lts-rspec rubocop-ruby3_2 standard-rubocop-lts] +declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) +local_gems_to_eval = local_gems - %w[toml-merge] - declared_gems # export VENDORED_GEMS=rubocop-lts,rubocop-lts-rspec,rubocop-ruby3_2,standard-rubocop-lts platform :mri do eval_nomono_gems( - gems: local_gems, + gems: local_gems_to_eval, prefix: 'RUBOCOP_LTS', path_env: 'RUBOCOP_LTS_LOCAL', vendored_gems_env: 'VENDORED_GEMS', diff --git a/gems/toml-merge/gemfiles/modular/templating.gemfile b/gems/toml-merge/gemfiles/modular/templating.gemfile index 2ddc9433f..a672de184 100644 --- a/gems/toml-merge/gemfiles/modular/templating.gemfile +++ b/gems/toml-merge/gemfiles/modular/templating.gemfile @@ -12,13 +12,13 @@ end if kettle_remote # Template/plugin checks for released installs. - gem 'kettle-drift', '~> 1.0', '>= 1.0.5', require: false + gem 'kettle-drift', '~> 1.0', '>= 1.0.6', require: false end # Set STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local development with path-based dependencies. # When false (default / CI), released kettle-jem brings merge gems and parser dependencies. # Local path overrides bring the same dependencies from sibling gemspecs. # -# Set KETTLE_DEV_DEV=/path/to/kettle-rb for local development with Kettle plugin gems. +# Set KETTLE_DEV_DEV=/path/to/my for local development with Kettle plugin gems. # When false (default / CI), released Kettle plugin gems are used. eval_gemfile 'templating_local.gemfile' unless structuredmerge_remote && kettle_remote diff --git a/gems/toml-merge/gemfiles/modular/templating_local.gemfile b/gems/toml-merge/gemfiles/modular/templating_local.gemfile index c8aef3699..bdbb4cf69 100644 --- a/gems/toml-merge/gemfiles/modular/templating_local.gemfile +++ b/gems/toml-merge/gemfiles/modular/templating_local.gemfile @@ -4,7 +4,27 @@ # Loaded by the associated non-local gemfile when STRUCTUREDMERGE_DEV or KETTLE_DEV_DEV # is not "false". -require 'nomono/bundler' unless defined?(Nomono) +# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. +# Bundler records that dependency during Gemfile evaluation, but it does not +# activate that exact version before the immediate `require "nomono/bundler"`. +# If multiple compatible nomono versions are installed, RubyGems may activate +# the newest installed version while Gemfile.lock pins an older compatible one; +# Bundler then aborts with "already activated nomono X, but your Gemfile +# requires nomono Y". Prefer the locked compatible version when present, then +# activate it explicitly before requiring the Bundler DSL extension used below. +nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] +nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) +if File.file?(nomono_lockfile) + nomono_locked_spec = Bundler::LockfileParser + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } + nomono_locked = nomono_locked_spec && + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked +end +Kernel.send(:gem, 'nomono', *nomono_activation_requirements) +require 'nomono/bundler' structuredmerge_local_gems = %w[ tree_haver diff --git a/gems/toml-merge/gemfiles/modular/webrick/r4/v1.9.gemfile b/gems/toml-merge/gemfiles/modular/webrick/r4/v1.9.gemfile new file mode 100644 index 000000000..b1329ba84 --- /dev/null +++ b/gems/toml-merge/gemfiles/modular/webrick/r4/v1.9.gemfile @@ -0,0 +1 @@ +gem 'webrick', '~> 1.9' diff --git a/gems/toml-merge/gemfiles/modular/webrick/vHEAD.gemfile b/gems/toml-merge/gemfiles/modular/webrick/vHEAD.gemfile new file mode 100644 index 000000000..c7e6f81a1 --- /dev/null +++ b/gems/toml-merge/gemfiles/modular/webrick/vHEAD.gemfile @@ -0,0 +1 @@ +gem 'webrick', '>= 1.9' diff --git a/gems/toml-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile b/gems/toml-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile index bd4e884df..e2f6501eb 100644 --- a/gems/toml-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile +++ b/gems/toml-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile @@ -2,3 +2,5 @@ eval_gemfile '../../erb/r4/v5.0.gemfile' eval_gemfile '../../mutex_m/r4/v0.3.gemfile' eval_gemfile '../../stringio/r4/v3.0.gemfile' eval_gemfile '../../benchmark/r4/v0.5.gemfile' +eval_gemfile '../../cgi/r4/v0.5.gemfile' +eval_gemfile '../../webrick/r4/v1.9.gemfile' diff --git a/gems/toml-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile b/gems/toml-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile index 91f383c11..ab75cccf1 100644 --- a/gems/toml-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile +++ b/gems/toml-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile @@ -2,3 +2,5 @@ eval_gemfile '../erb/vHEAD.gemfile' eval_gemfile '../mutex_m/vHEAD.gemfile' eval_gemfile '../stringio/vHEAD.gemfile' eval_gemfile '../benchmark/vHEAD.gemfile' +eval_gemfile '../cgi/vHEAD.gemfile' +eval_gemfile '../webrick/vHEAD.gemfile' diff --git a/gems/toml-merge/lib/toml/merge/conflict_resolver.rb b/gems/toml-merge/lib/toml/merge/conflict_resolver.rb index 24edce3b8..cc4ce3771 100644 --- a/gems/toml-merge/lib/toml/merge/conflict_resolver.rb +++ b/gems/toml-merge/lib/toml/merge/conflict_resolver.rb @@ -377,7 +377,9 @@ def merge_unmatched_pair_lists_to_emitter(template_nodes, dest_nodes, template_a prev_emitted_end_line = nil prev_emitted_analysis = nil - entries.sort_by { |node, _analysis| node.respond_to?(:key_name) ? node.key_name.to_s : node.type.to_s }.each do |node, analysis| + entries.sort_by do |node, _analysis| + node.respond_to?(:key_name) ? node.key_name.to_s : node.type.to_s + end.each do |node, analysis| emit_gap_before_node(node, analysis, prev_emitted_end_line, prev_emitted_analysis) emit_node(node, analysis) prev_emitted_end_line = emitted_end_line_for(node) @@ -1049,9 +1051,9 @@ def emit_gap_before_matched_node(selected_node, selected_analysis, template_node [dest_node, dest_analysis] end emit_gap_before_node(alternate_node, alternate_analysis, prev_end_line, prev_analysis) - if selected_node.equal?(template_node) - emit_retained_gap_before_matched_template_node(dest_node, dest_analysis, owners: dest_owners) - end + return unless selected_node.equal?(template_node) + + emit_retained_gap_before_matched_template_node(dest_node, dest_analysis, owners: dest_owners) end def emit_retained_gap_before_matched_template_node(dest_node, dest_analysis, owners: nil) diff --git a/gems/toml-merge/lib/toml/merge/version.rb b/gems/toml-merge/lib/toml/merge/version.rb index 91c4e4d84..d9074beaf 100644 --- a/gems/toml-merge/lib/toml/merge/version.rb +++ b/gems/toml-merge/lib/toml/merge/version.rb @@ -3,7 +3,7 @@ module Toml module Merge module Version - VERSION = "7.1.0" + VERSION = '7.1.0' end VERSION = Version::VERSION # Traditional Constant Location end diff --git a/gems/typescript-merge/.kettle-drift.lock b/gems/typescript-merge/.kettle-drift.lock index 09df60df7..2ee9dae31 100644 --- a/gems/typescript-merge/.kettle-drift.lock +++ b/gems/typescript-merge/.kettle-drift.lock @@ -1,122 +1,10 @@ { - "(direct_sibling_local ||\nENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?)": [ - { - "file": "Gemfile", - "lines": [ - 80, - 120, - 160, - 200, - 240, - 280, - 320, - 360 - ] - } - ], - ".find { |spec| spec.name == 'nomono' }\nnomono_locked = nomono_locked_spec &&": [ - { - "file": "Gemfile", - "lines": [ - 91, - 131, - 171, - 211, - 251, - 291, - 331, - 371 - ] - } - ], - "ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?)\ndirect_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV')": [ - { - "file": "Gemfile", - "lines": [ - 81, - 121, - 161, - 201, - 241, - 281, - 321, - 361 - ] - } - ], - "Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version)\nnomono_activation_requirements = [\"= #{nomono_locked_spec.version}\"] if nomono_locked": [ - { - "file": "Gemfile", - "lines": [ - 93, - 133, - 173, - 213, - 253, - 293, - 333, - 373 - ] - } - ], - "Kernel.send(:gem, 'nomono', *nomono_activation_requirements)\nrequire 'nomono/bundler'": [ - { - "file": "Gemfile", - "lines": [ - 96, - 136, - 176, - 216, - 256, - 296, - 336, - 376 - ] - } - ], - "direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV')\ndirect_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil)": [ - { - "file": "Gemfile", - "lines": [ - 82, - 122, - 162, - 202, - 242, - 282, - 322, - 362 - ] - } - ], "eval_nomono_gems(\ngems: direct_sibling_gems,": [ { "file": "Gemfile", "lines": [ 60, - 100, - 140, - 180, - 220, - 260, - 300, - 340, - 380 - ] - } - ], - "gems: direct_sibling_gems,\nprefix: 'STRUCTUREDMERGE',": [ - { - "file": "Gemfile", - "lines": [ - 101, - 141, - 181, - 221, - 261, - 301, - 341, - 381 + 100 ] } ], @@ -125,29 +13,7 @@ "file": "Gemfile", "lines": [ 43, - 87, - 127, - 167, - 207, - 247, - 287, - 327, - 367 - ] - } - ], - "if direct_sibling_dev_was_set\nENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original": [ - { - "file": "Gemfile", - "lines": [ - 110, - 150, - 190, - 230, - 270, - 310, - 350, - 390 + 87 ] } ], @@ -156,14 +22,7 @@ "file": "Gemfile", "lines": [ 35, - 79, - 119, - 159, - 199, - 239, - 279, - 319, - 359 + 79 ] } ], @@ -172,29 +31,7 @@ "file": "Gemfile", "lines": [ 69, - 109, - 149, - 189, - 229, - 269, - 309, - 349, - 389 - ] - } - ], - "nomono_activation_requirements = nomono_requirements\nnomono_lockfile = File.expand_path('Gemfile.lock', __dir__)": [ - { - "file": "Gemfile", - "lines": [ - 85, - 125, - 165, - 205, - 245, - 285, - 325, - 365 + 109 ] } ], @@ -203,14 +40,7 @@ "file": "Gemfile", "lines": [ 48, - 92, - 132, - 172, - 212, - 252, - 292, - 332, - 372 + 92 ] } ], @@ -219,89 +49,7 @@ "file": "Gemfile", "lines": [ 44, - 88, - 128, - 168, - 208, - 248, - 288, - 328, - 368 - ] - } - ], - "nomono_lockfile = File.expand_path('Gemfile.lock', __dir__)\nif File.file?(nomono_lockfile)": [ - { - "file": "Gemfile", - "lines": [ - 86, - 126, - 166, - 206, - 246, - 286, - 326, - 366 - ] - } - ], - "path_env: 'STRUCTUREDMERGE_DEV',\nroot: %w[src my structuredmerge]": [ - { - "file": "Gemfile", - "lines": [ - 103, - 143, - 183, - 223, - 263, - 303, - 343, - 383 - ] - } - ], - "prefix: 'STRUCTUREDMERGE',\npath_env: 'STRUCTUREDMERGE_DEV',": [ - { - "file": "Gemfile", - "lines": [ - 102, - 142, - 182, - 222, - 262, - 302, - 342, - 382 - ] - } - ], - "require 'nomono/bundler'\nENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local": [ - { - "file": "Gemfile", - "lines": [ - 97, - 137, - 177, - 217, - 257, - 297, - 337, - 377 - ] - } - ], - "rescue LoadError\nwarn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.'": [ - { - "file": "Gemfile", - "lines": [ - 106, - 146, - 186, - 226, - 266, - 306, - 346, - 386 + 88 ] } ], @@ -309,8 +57,8 @@ { "file": "gemfiles/modular/templating_local.gemfile", "lines": [ - 60, - 71 + 55, + 66 ] } ] diff --git a/gems/typescript-merge/.structuredmerge/kettle-jem.yml b/gems/typescript-merge/.structuredmerge/kettle-jem.yml index 3c0e2ae7f..10ccff7d6 100644 --- a/gems/typescript-merge/.structuredmerge/kettle-jem.yml +++ b/gems/typescript-merge/.structuredmerge/kettle-jem.yml @@ -249,6 +249,59 @@ templates: - Gemfile - certs/pboling.pem - tmp/.gitignore + - gemfiles/modular/benchmark/r4/v0.5.gemfile + - gemfiles/modular/benchmark/vHEAD.gemfile + - gemfiles/modular/cgi/r4/v0.5.gemfile + - gemfiles/modular/cgi/vHEAD.gemfile + - gemfiles/modular/coverage.gemfile + - gemfiles/modular/coverage_local.gemfile + - gemfiles/modular/debug.gemfile + - gemfiles/modular/documentation.gemfile + - gemfiles/modular/documentation_local.gemfile + - gemfiles/modular/erb/r2.3/default.gemfile + - gemfiles/modular/erb/r2.6/v2.2.gemfile + - gemfiles/modular/erb/r2/v3.0.gemfile + - gemfiles/modular/erb/r3.1/v4.0.gemfile + - gemfiles/modular/erb/r3/v5.0.gemfile + - gemfiles/modular/erb/r4/v5.0.gemfile + - gemfiles/modular/erb/vHEAD.gemfile + - gemfiles/modular/json/truffleruby_22_3.gemfile + - gemfiles/modular/json/truffleruby_23_0.gemfile + - gemfiles/modular/json/truffleruby_23_1.gemfile + - gemfiles/modular/mutex_m/r2.4/v0.1.gemfile + - gemfiles/modular/mutex_m/r2/v0.3.gemfile + - gemfiles/modular/mutex_m/r3/v0.3.gemfile + - gemfiles/modular/mutex_m/r4/v0.3.gemfile + - gemfiles/modular/mutex_m/vHEAD.gemfile + - gemfiles/modular/optional.gemfile + - gemfiles/modular/recording/r2.3/recording.gemfile + - gemfiles/modular/recording/r2.4/recording.gemfile + - gemfiles/modular/recording/r2.5/recording.gemfile + - gemfiles/modular/recording/r3/recording.gemfile + - gemfiles/modular/recording/r4/recording.gemfile + - gemfiles/modular/recording/vHEAD.gemfile + - gemfiles/modular/rspec.gemfile + - gemfiles/modular/runtime_heads.gemfile + - gemfiles/modular/stringio/r2.4/v0.0.2.gemfile + - gemfiles/modular/stringio/r2/v3.0.gemfile + - gemfiles/modular/stringio/r3/v3.0.gemfile + - gemfiles/modular/stringio/r4/v3.0.gemfile + - gemfiles/modular/stringio/vHEAD.gemfile + - gemfiles/modular/style.gemfile + - gemfiles/modular/style_local.gemfile + - gemfiles/modular/templating.gemfile + - gemfiles/modular/templating_local.gemfile + - gemfiles/modular/webrick/r4/v1.9.gemfile + - gemfiles/modular/webrick/vHEAD.gemfile + - gemfiles/modular/x_std_libs.gemfile + - gemfiles/modular/x_std_libs/r2.3/libs.gemfile + - gemfiles/modular/x_std_libs/r2.4/libs.gemfile + - gemfiles/modular/x_std_libs/r2.6/libs.gemfile + - gemfiles/modular/x_std_libs/r2/libs.gemfile + - gemfiles/modular/x_std_libs/r3.1/libs.gemfile + - gemfiles/modular/x_std_libs/r3/libs.gemfile + - gemfiles/modular/x_std_libs/r4/libs.gemfile + - gemfiles/modular/x_std_libs/vHEAD.gemfile - source: lib/gem/version.rb target: lib/typescript/merge/version.rb - source: sig/gem.rbs diff --git a/gems/typescript-merge/Gemfile b/gems/typescript-merge/Gemfile index 8f2d10c41..a8e900b40 100644 --- a/gems/typescript-merge/Gemfile +++ b/gems/typescript-merge/Gemfile @@ -6,7 +6,7 @@ # kettle-jem will then preserve content between those markers across template runs. # kettle-jem:unfreeze -source 'https://gem.coop' +source "https://gem.coop" git_source(:codeberg) { |repo_name| "https://codeberg.org/#{repo_name}" } git_source(:gitlab) { |repo_name| "https://gitlab.com/#{repo_name}" } @@ -19,18 +19,62 @@ git_source(:gitlab) { |repo_name| "https://gitlab.com/#{repo_name}" } gemspec # Local workspace dependency wiring for *_local.gemfile overrides -nomono_requirements = ['~> 1.0', '>= 1.0.8'] -gem 'nomono', *nomono_requirements, require: false # ruby >= 2.2 +nomono_requirements = ["~> 1.0", ">= 1.0.8"] +gem "nomono", *nomono_requirements, require: false # ruby >= 2.2 # Direct sibling dependencies (env-switched via STRUCTUREDMERGE_DEV) direct_sibling_gems = %w[ ast-merge tree_haver ] -direct_sibling_dev = ENV.fetch('STRUCTUREDMERGE_DEV', '') +direct_sibling_dev = ENV.fetch("STRUCTUREDMERGE_DEV", "") direct_sibling_local = !direct_sibling_dev.empty? && !%w[false 0 no off].include?(direct_sibling_dev.downcase) -direct_sibling_templating = ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? +direct_sibling_templating = ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? + +if direct_sibling_gems.any? && + (direct_sibling_local || + ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero?) + direct_sibling_dev_was_set = ENV.key?("STRUCTUREDMERGE_DEV") + direct_sibling_dev_original = ENV.fetch("STRUCTUREDMERGE_DEV", nil) + begin + nomono_activation_requirements = nomono_requirements + nomono_lockfile = File.expand_path("Gemfile.lock", __dir__) + if File.file?(nomono_lockfile) + nomono_locked_spec = Bundler::LockfileParser + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == "nomono" } + nomono_locked = nomono_locked_spec && + Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) + if nomono_locked + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] + end + end + Kernel.send(:gem, "nomono", *nomono_activation_requirements) + require "nomono/bundler" + if direct_sibling_templating && !direct_sibling_local + ENV["STRUCTUREDMERGE_DEV"] = File.expand_path("..", __dir__) + end + + eval_nomono_gems( + gems: direct_sibling_gems, + prefix: "STRUCTUREDMERGE", + path_env: "STRUCTUREDMERGE_DEV", + root: ["src", "my", "structuredmerge"] + ) + rescue LoadError + warn "Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies." + ensure + if direct_sibling_templating && !direct_sibling_local + if direct_sibling_dev_was_set + ENV["STRUCTUREDMERGE_DEV"] = direct_sibling_dev_original + else + ENV.delete("STRUCTUREDMERGE_DEV") + end + end + end +end if direct_sibling_gems.any? && (direct_sibling_local || @@ -73,28 +117,28 @@ if direct_sibling_gems.any? && end # Use released TSLP with the Ruby ABI platform-gem fix. -gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' +gem "tree_sitter_language_pack", "~> 1.13", ">= 1.13.3" # Templating (env-switched: STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local paths) -eval_gemfile 'gemfiles/modular/templating.gemfile' if ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? +eval_gemfile "gemfiles/modular/templating.gemfile" if ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? # Debugging -eval_gemfile 'gemfiles/modular/debug.gemfile' +eval_gemfile "gemfiles/modular/debug.gemfile" # Code Coverage (env-switched: KETTLE_DEV_DEV=true for local paths) -eval_gemfile 'gemfiles/modular/coverage.gemfile' +eval_gemfile "gemfiles/modular/coverage.gemfile" # Linting -eval_gemfile 'gemfiles/modular/style.gemfile' +eval_gemfile "gemfiles/modular/style.gemfile" # Documentation -eval_gemfile 'gemfiles/modular/documentation.gemfile' +eval_gemfile "gemfiles/modular/documentation.gemfile" # Optional -eval_gemfile 'gemfiles/modular/optional.gemfile' +eval_gemfile "gemfiles/modular/optional.gemfile" ### Std Lib Extracted Gems -eval_gemfile 'gemfiles/modular/x_std_libs.gemfile' +eval_gemfile "gemfiles/modular/x_std_libs.gemfile" # See unlocked_deps appraisal for more details on irb inclusion -gem 'irb', '~> 1.17' # ruby >= 2.7 +gem "irb", "~> 1.17" # ruby >= 2.7 diff --git a/gems/typescript-merge/Gemfile.lock b/gems/typescript-merge/Gemfile.lock index 8b8b3f446..cf6bf2e6e 100644 --- a/gems/typescript-merge/Gemfile.lock +++ b/gems/typescript-merge/Gemfile.lock @@ -6,6 +6,265 @@ PATH tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly + specs: + ast-crispr-markdown-markly (7.1.0) + ast-crispr (= 7.1.0) + markly-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism + specs: + ast-crispr-ruby-prism (7.1.0) + ast-crispr (= 7.1.0) + prism-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr + specs: + ast-crispr (7.1.0) + ast-merge (= 7.1.0) + service_actor (~> 3.9) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git + specs: + ast-merge-git (7.1.0) + ast-merge (= 7.1.0) + json-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge + specs: + ast-merge (7.1.0) + benchmark + token-resolver (~> 2.0, >= 2.0.4) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template + specs: + ast-template (7.1.0) + ast-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge + specs: + bash-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge + specs: + binary-merge (7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge + specs: + citrus-toml-merge (7.1.0) + toml-merge (= 7.1.0) + toml-rb (~> 4.1) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge + specs: + commonmarker-merge (7.1.0) + commonmarker (~> 2.2) + markdown-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge + specs: + dotenv-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge + specs: + go-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge + specs: + json-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem + specs: + kettle-jem (7.1.0) + addressable (>= 2.8, < 3) + ast-crispr-markdown-markly (= 7.1.0) + ast-crispr-ruby-prism (= 7.1.0) + ast-merge (= 7.1.0) + bash-merge (= 7.1.0) + citrus-toml-merge (= 7.1.0) + commonmarker-merge (= 7.1.0) + dotenv-merge (= 7.1.0) + json-merge (= 7.1.0) + kettle-dev (~> 2.3, >= 2.3.5) + kettle-rb (~> 0.1, >= 0.1.4) + kramdown-merge (= 7.1.0) + markdown-merge (= 7.1.0) + markly-merge (= 7.1.0) + prism-merge (= 7.1.0) + psych-merge (= 7.1.0) + rbs (>= 3.10) + rbs-merge (= 7.1.0) + ruby-merge (= 7.1.0) + token-resolver (~> 2.0, >= 2.0.4) + toml-merge (= 7.1.0) + toml-rb (~> 4.2) + tree_haver (= 7.1.0) + yaml-merge (= 7.1.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge + specs: + kramdown-merge (7.1.0) + kramdown (~> 2.5) + markdown-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge + specs: + markdown-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge + specs: + markly-merge (7.1.0) + markdown-merge (= 7.1.0) + markly (~> 0.9) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge + specs: + parslet-toml-merge (7.1.0) + toml (~> 0.3) + toml-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge + specs: + plain-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge + specs: + prism-merge (7.1.0) + prism (~> 1.6) + ruby-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge + specs: + psych-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + yaml-merge (= 7.1.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge + specs: + rbs-merge (7.1.0) + ast-merge (= 7.1.0) + rbs (>= 3.10) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge + specs: + ruby-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge + specs: + rust-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb + specs: + smorg-rb (7.1.0) + ast-merge (= 7.1.0) + ast-merge-git (= 7.1.0) + go-merge (= 7.1.0) + json-merge (= 7.1.0) + kettle-jem (= 7.1.0) + markly-merge (= 7.1.0) + plain-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge + specs: + toml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver + specs: + tree_haver (7.1.0) + citrus (~> 3.0) + parslet (~> 2.0) + tree_sitter_language_pack (>= 1.13.2, < 2.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge + specs: + yaml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge + specs: + zip-merge (7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + GEM remote: https://gem.coop/ specs: @@ -17,11 +276,6 @@ GEM rake (>= 10) thor (>= 0.14) ast (2.4.3) - ast-merge (7.1.0) - benchmark - token-resolver (~> 2.0, >= 2.0.4) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) backports (3.25.3) benchmark (0.5.0) bigdecimal (4.1.2) @@ -30,6 +284,7 @@ GEM thor (~> 1.0) citrus (3.0.2) cmdparse (3.0.7) + commonmarker (2.9.0-x86_64-linux) concurrent-ruby (1.3.7) date (3.5.1) debug (1.11.1) @@ -93,6 +348,8 @@ GEM kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) + kettle-drift (1.0.6) + version_gem (~> 1.1, >= 1.1.14) kettle-rb (0.1.4) kettle-soup-cover (1.1.3) simplecov (~> 0.22) @@ -121,6 +378,7 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) + markly (0.16.0) mutex_m (0.3.0) nokogiri (1.19.4-aarch64-linux-gnu) racc (~> 1.4) @@ -128,13 +386,11 @@ GEM racc (~> 1.4) nokogiri (1.19.4-arm64-darwin) racc (~> 1.4) - nokogiri (1.19.4-x86_64-darwin) - racc (~> 1.4) nokogiri (1.19.4-x86_64-linux-gnu) racc (~> 1.4) nokogiri (1.19.4-x86_64-linux-musl) racc (~> 1.4) - nomono (1.0.8) + nomono (1.0.9) openssl (4.0.2) ostruct (0.6.3) parallel (1.28.0) @@ -257,6 +513,8 @@ GEM ruby-progressbar (1.13.0) ruby_engine (2.0.3) ruby_version (1.0.3) + service_actor (3.9.4) + zeitwerk (>= 1.0) silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) @@ -309,17 +567,15 @@ GEM token-resolver (2.0.4) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.13) - tree_haver (7.1.0) - citrus (~> 3.0) - parslet (~> 2.0) - tree_sitter_language_pack (>= 1.13.2, < 2.0) - version_gem (~> 1.1, >= 1.1.9) + toml (0.3.0) + parslet (>= 1.8.0, < 3.0.0) + toml-rb (4.2.0) + citrus (~> 3.0, > 3.0) + racc (~> 1.7) tree_sitter_language_pack (1.13.3-aarch64-linux) sorbet-runtime (~> 0.5) tree_sitter_language_pack (1.13.3-arm64-darwin) sorbet-runtime (~> 0.5) - tree_sitter_language_pack (1.13.3-x86_64-darwin) - sorbet-runtime (~> 0.5) tree_sitter_language_pack (1.13.3-x86_64-linux) sorbet-runtime (~> 0.5) tsort (0.2.0) @@ -361,29 +617,52 @@ PLATFORMS aarch64-linux-gnu aarch64-linux-musl arm64-darwin - x86_64-darwin + x86_64-linux x86_64-linux-gnu x86_64-linux-musl DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) + ast-crispr! + ast-crispr-markdown-markly! + ast-crispr-ruby-prism! + ast-merge! + ast-merge-git! + ast-template! + bash-merge! benchmark (~> 0.5, >= 0.5.0) + binary-merge! bundler-audit (~> 0.9.3) + citrus-toml-merge! + commonmarker-merge! debug (>= 1.1) + dotenv-merge! erb (~> 6.0, >= 6.0.4) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.0) + go-merge! irb (~> 1.17) + json-merge! kettle-dev (~> 2.0, >= 2.2.25) + kettle-drift (~> 1.0, >= 1.0.5) + kettle-jem! kettle-soup-cover (~> 1.0, >= 1.1.3) kettle-test (~> 2.0, >= 2.0.9) kramdown (~> 2.5, >= 2.5.1) + kramdown-merge! kramdown-parser-gfm (~> 1.1) + markdown-merge! + markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) + parslet-toml-merge! + plain-merge! + prism-merge! + psych-merge! rake (~> 13.0) rbs (>= 3.0) + rbs-merge! rdoc (~> 6.11) reek (~> 6.5) require_bench (~> 1.0, >= 1.0.4) @@ -392,32 +671,49 @@ DEPENDENCIES rubocop-packaging (~> 0.6, >= 0.6.0) rubocop-rspec (~> 3.6) rubocop-ruby3_2 (~> 3.0.0) + ruby-merge! ruby-progressbar (~> 1.13) + rust-merge! + smorg-rb! standard (>= 1.50) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) + toml-merge! + tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) typescript-merge! yaml-converter (~> 0.1) + yaml-merge! yard (~> 0.9, >= 0.9.44) yard-fence (~> 0.9, >= 0.9.1) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) yard-timekeeper (~> 0.1) yard-yaml (~> 0.1, >= 0.1.2) + zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af ansi (1.6.0) sha256=ac9ea0c0ea8d32fb4e271348e609963ac78882f34b73836c2a02b3622e666658 appraisal2 (3.2.0) sha256=ccd0b767ac4060cd7af6d16747459b6990f49c39c7b4fb1f7d1146b1e97c492f ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 + ast-crispr (7.1.0) + ast-crispr-markdown-markly (7.1.0) + ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) + ast-merge-git (7.1.0) + ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 + bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd + binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 + citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 + commonmarker (2.9.0-x86_64-linux) + commonmarker-merge (7.1.0) concurrent-ruby (1.3.7) sha256=4412caec3a5ea2e5fdc52076724c071a81f2c0593d83b2ac8cbb8ca63b3151b0 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 @@ -425,6 +721,7 @@ CHECKSUMS diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 docile (1.4.1) sha256=96159be799bfa73cdb721b840e9802126e4e03dfc26863db73647204c727f21e + dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -437,42 +734,54 @@ CHECKSUMS gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f + go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 + json-merge (7.1.0) kettle-dev (2.3.7) sha256=eb370113cd030d03cbe2d33b31c99858951017e5ad21a17e9ed89dc3770028ee + kettle-drift (1.0.6) + kettle-jem (7.1.0) kettle-rb (0.1.4) sha256=9cef7ce4f7021666b7222292f29051e51eaf042e8a5db11f3f4dd72f74243fc1 kettle-soup-cover (1.1.3) sha256=a373827da22a7131d093afd32945e5b7d7a10a01ebfdded8fd2cb8230d69c8ad kettle-test (2.0.11) sha256=c710c90f7ab79d51f9452f0c09f5f90657e7a893f63583855c164d0b1b107ab2 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa + kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 + markdown-merge (7.1.0) + markly (0.16.0) + markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-aarch64-linux-gnu) sha256=1269fb644a6de405057a53dd5c762b1209b43ca7424f839454d3dbc677c31a8f nokogiri (1.19.4-aarch64-linux-musl) sha256=35c65b9ce72b3bb03207bdbe7067915019dc18c1b9b59139684bd6690fdd01af nokogiri (1.19.4-arm64-darwin) sha256=a46db9853286e6597b36ebc6953817d15acf3a299583eb3f89fdc6f91dd63527 - nokogiri (1.19.4-x86_64-darwin) sha256=7fd17057d3e1f00e9954a74b3cd76595d3d4a5ef233b7ed9599047c204f70551 nokogiri (1.19.4-x86_64-linux-gnu) sha256=379fae440b28915e3f19d752ce2dcf8465ed2b2fbefd2a7ca0dd497bc981a06a nokogiri (1.19.4-x86_64-linux-musl) sha256=17dfb7c1fa194ae02fbf7c51a7afc8d278045ab3fdacfd86f91d02d7b274470b - nomono (1.0.8) sha256=bf4b9b426cbf216ab17b70db474f691b8ae1f1e29de8db4b0ecd405e6e7e1c80 + nomono (1.0.9) openssl (4.0.2) sha256=1037ad2868ae58df9ad917891c0c0f9815a1172f6846d4bcdd508e4c2ee747c2 ostruct (0.6.3) sha256=95a2ed4a4bd1d190784e666b47b2d3f078e4a9efda2fccf18f84ddc6538ed912 parallel (1.28.0) sha256=33e6de1484baf2524792d178b0913fc8eb94c628d6cfe45599ad4458c638c970 parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 + parslet-toml-merge (7.1.0) + plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 + prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 + psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 + rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb @@ -500,9 +809,12 @@ CHECKSUMS rubocop-rspec (3.10.2) sha256=0b3e2ecc592cd10ecbf0095bb58d1e357905276e069643523cc19eb7495f65e2 rubocop-ruby3_2 (3.0.7) sha256=f53dd6d286fb05186214fc6ec116783e7f837030918e8931c05de773e98f8466 rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 + ruby-merge (7.1.0) ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 + rust-merge (7.1.0) + service_actor (3.9.4) silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (0.22.0) sha256=fe2622c7834ff23b98066bb0a854284b2729a569ac659f82621fc22ef36213a5 simplecov-cobertura (3.2.0) sha256=70d702658677fcb20e5aceb6915ccf8bc62ff2ccd38b62b3ad5c9db5c0888740 @@ -511,6 +823,7 @@ CHECKSUMS simplecov-lcov (0.9.0) sha256=7a77a31e200a595ed4b0249493056efd0c920601f53d2ef135ca34ee796346cd simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_json_formatter (0.1.4) sha256=529418fbe8de1713ac2b2d612aa3daa56d316975d307244399fa4838c601b428 + smorg-rb (7.1.0) sorbet-runtime (0.6.13347) sha256=54e7221d9f4b63f58aec79f3043752a9ba7810347c6ae0d903531591cc2d5f01 standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b @@ -524,10 +837,12 @@ CHECKSUMS timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.4) sha256=33b926958f504525bba3ed511ab66fbcbf8ef30390815e931436b30f27ffcad0 + toml (0.3.0) + toml-merge (7.1.0) + toml-rb (4.2.0) tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-aarch64-linux) sha256=55ffc7c87868cb45658338363d9eba51b4a8b0259aa88e4de368d2bd1d52fea4 tree_sitter_language_pack (1.13.3-arm64-darwin) sha256=bc2498db605f212a1dbd2465ed3f65190d7da786f6ed5d30fcf958121aeb4a5c - tree_sitter_language_pack (1.13.3-x86_64-darwin) sha256=061f7da6e1cc4ba936fad436ee0653d7dfdfa4aa879cf555403e3aa373d43966 tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 @@ -536,6 +851,7 @@ CHECKSUMS unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 + yaml-merge (7.1.0) yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd @@ -543,6 +859,7 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 + zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH diff --git a/gems/typescript-merge/Rakefile b/gems/typescript-merge/Rakefile index 001b16d17..891a105cb 100644 --- a/gems/typescript-merge/Rakefile +++ b/gems/typescript-merge/Rakefile @@ -130,23 +130,23 @@ end ### DUPLICATE DRIFT TASKS begin - require 'kettle/drift' + require "kettle/drift" Kettle::Drift.install_tasks rescue LoadError - desc('(stub) kettle:drift:check is unavailable') - task('kettle:drift:check') do + desc("(stub) kettle:drift:check is unavailable") + task("kettle:drift:check") do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc('(stub) kettle:drift:update is unavailable') - task('kettle:drift:update') do + desc("(stub) kettle:drift:update is unavailable") + task("kettle:drift:update") do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc('(stub) kettle:drift:force_update is unavailable') - task('kettle:drift:force_update') do + desc("(stub) kettle:drift:force_update is unavailable") + task("kettle:drift:force_update") do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc('(stub) kettle:drift is unavailable') - task('kettle:drift' => 'kettle:drift:update') + desc("(stub) kettle:drift is unavailable") + task("kettle:drift" => "kettle:drift:update") end ### TEMPLATING TASKS diff --git a/gems/typescript-merge/lib/typescript/merge/version.rb b/gems/typescript-merge/lib/typescript/merge/version.rb index 770779ac0..954f44d95 100644 --- a/gems/typescript-merge/lib/typescript/merge/version.rb +++ b/gems/typescript-merge/lib/typescript/merge/version.rb @@ -3,7 +3,7 @@ module TypeScript module Merge module Version - VERSION = '7.1.0' + VERSION = "7.1.0" end VERSION = Version::VERSION # Traditional Constant Location end diff --git a/gems/yaml-merge/Gemfile.lock b/gems/yaml-merge/Gemfile.lock index a604c7df6..3c9636f76 100644 --- a/gems/yaml-merge/Gemfile.lock +++ b/gems/yaml-merge/Gemfile.lock @@ -7,7 +7,39 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/ast-merge + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly + specs: + ast-crispr-markdown-markly (7.1.0) + ast-crispr (= 7.1.0) + markly-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism + specs: + ast-crispr-ruby-prism (7.1.0) + ast-crispr (= 7.1.0) + prism-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr + specs: + ast-crispr (7.1.0) + ast-merge (= 7.1.0) + service_actor (~> 3.9) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git + specs: + ast-merge-git (7.1.0) + ast-merge (= 7.1.0) + json-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge specs: ast-merge (7.1.0) benchmark @@ -16,7 +48,201 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/tree_haver + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template + specs: + ast-template (7.1.0) + ast-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge + specs: + bash-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge + specs: + binary-merge (7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge + specs: + citrus-toml-merge (7.1.0) + toml-merge (= 7.1.0) + toml-rb (~> 4.1) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge + specs: + commonmarker-merge (7.1.0) + commonmarker (~> 2.2) + markdown-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge + specs: + dotenv-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge + specs: + go-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge + specs: + json-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem + specs: + kettle-jem (7.1.0) + addressable (>= 2.8, < 3) + ast-crispr-markdown-markly (= 7.1.0) + ast-crispr-ruby-prism (= 7.1.0) + ast-merge (= 7.1.0) + bash-merge (= 7.1.0) + citrus-toml-merge (= 7.1.0) + commonmarker-merge (= 7.1.0) + dotenv-merge (= 7.1.0) + json-merge (= 7.1.0) + kettle-dev (~> 2.3, >= 2.3.5) + kettle-rb (~> 0.1, >= 0.1.4) + kramdown-merge (= 7.1.0) + markdown-merge (= 7.1.0) + markly-merge (= 7.1.0) + prism-merge (= 7.1.0) + psych-merge (= 7.1.0) + rbs (>= 3.10) + rbs-merge (= 7.1.0) + ruby-merge (= 7.1.0) + token-resolver (~> 2.0, >= 2.0.4) + toml-merge (= 7.1.0) + toml-rb (~> 4.2) + tree_haver (= 7.1.0) + yaml-merge (= 7.1.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge + specs: + kramdown-merge (7.1.0) + kramdown (~> 2.5) + markdown-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge + specs: + markdown-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge + specs: + markly-merge (7.1.0) + markdown-merge (= 7.1.0) + markly (~> 0.9) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge + specs: + parslet-toml-merge (7.1.0) + toml (~> 0.3) + toml-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge + specs: + plain-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge + specs: + prism-merge (7.1.0) + prism (~> 1.6) + ruby-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge + specs: + psych-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + yaml-merge (= 7.1.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge + specs: + rbs-merge (7.1.0) + ast-merge (= 7.1.0) + rbs (>= 3.10) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge + specs: + ruby-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge + specs: + rust-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb + specs: + smorg-rb (7.1.0) + ast-merge (= 7.1.0) + ast-merge-git (= 7.1.0) + go-merge (= 7.1.0) + json-merge (= 7.1.0) + kettle-jem (= 7.1.0) + markly-merge (= 7.1.0) + plain-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge + specs: + toml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver specs: tree_haver (7.1.0) citrus (~> 3.0) @@ -24,6 +250,21 @@ PATH tree_sitter_language_pack (>= 1.13.2, < 2.0) version_gem (~> 1.1, >= 1.1.9) +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge + specs: + typescript-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge + specs: + zip-merge (7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + GEM remote: https://gem.coop/ specs: @@ -48,6 +289,11 @@ GEM cgi (0.5.2) citrus (3.0.2) cmdparse (3.0.7) + commonmarker (2.9.0-aarch64-linux) + commonmarker (2.9.0-aarch64-linux-musl) + commonmarker (2.9.0-arm64-darwin) + commonmarker (2.9.0-x86_64-linux) + commonmarker (2.9.0-x86_64-linux-musl) concurrent-ruby (1.3.8) date (3.5.1) debug (1.11.1) @@ -110,6 +356,8 @@ GEM kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) + kettle-drift (1.0.6) + version_gem (~> 1.1, >= 1.1.14) kettle-rb (0.1.5) kettle-soup-cover (3.0.4) kettle-wash (~> 0.1, >= 0.1.0) @@ -138,6 +386,7 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) + markly (0.16.0) mutex_m (0.3.0) nokogiri (1.19.4-aarch64-linux-gnu) racc (~> 1.4) @@ -300,6 +549,8 @@ GEM ruby-progressbar (1.13.0) ruby_engine (2.0.3) ruby_version (1.0.3) + service_actor (3.9.4) + zeitwerk (>= 1.0) silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) @@ -354,6 +605,11 @@ GEM token-resolver (2.0.5) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.14) + toml (0.3.0) + parslet (>= 1.8.0, < 3.0.0) + toml-rb (4.2.0) + citrus (~> 3.0, > 3.0) + racc (~> 1.7) tree_sitter_language_pack (1.13.3-aarch64-linux) sorbet-runtime (~> 0.5) tree_sitter_language_pack (1.13.3-arm64-darwin) @@ -408,24 +664,46 @@ DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) appraisal2-rubocop (~> 1.0, >= 1.0.0) + ast-crispr! + ast-crispr-markdown-markly! + ast-crispr-ruby-prism! ast-merge! + ast-merge-git! + ast-template! + bash-merge! benchmark (~> 0.5, >= 0.5.0) + binary-merge! bundler-audit (~> 0.9.3) cgi (~> 0.5) + citrus-toml-merge! + commonmarker-merge! debug (>= 1.1) + dotenv-merge! erb (~> 6.0, >= 6.0.6) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.0) + go-merge! irb (~> 1.17) + json-merge! kettle-dev (~> 2.0, >= 2.2.25) + kettle-drift (~> 1.0, >= 1.0.6) + kettle-jem! kettle-soup-cover (~> 3.0, >= 3.0.3) kettle-test (~> 2.0, >= 2.0.9) kramdown (~> 2.5, >= 2.5.2) + kramdown-merge! kramdown-parser-gfm (~> 1.1) + markdown-merge! + markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) + parslet-toml-merge! + plain-merge! + prism-merge! + psych-merge! rake (~> 13.0) rbs (>= 3.0) + rbs-merge! rdoc (~> 6.11) reek (~> 6.5, >= 6.5.0) require_bench (~> 1.0, >= 1.0.4) @@ -436,12 +714,17 @@ DEPENDENCIES rubocop-on-rbs (~> 2.0, >= 2.0.0) rubocop-packaging (~> 0.6, >= 0.6.0) rubocop-ruby3_2 (~> 3.0, >= 3.0.6) + ruby-merge! ruby-progressbar (~> 1.13) + rust-merge! + smorg-rb! standard (~> 1.56, >= 1.56.0) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) + toml-merge! tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) + typescript-merge! webrick (~> 1.9) yaml-converter (~> 0.2, >= 0.2.3) yaml-merge! @@ -451,6 +734,7 @@ DEPENDENCIES yard-relative_markdown_links (~> 0.6) yard-timekeeper (~> 0.2, >= 0.2.4) yard-yaml (~> 0.2, >= 0.2.3) + zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af @@ -458,20 +742,35 @@ CHECKSUMS appraisal2 (3.2.0) sha256=ccd0b767ac4060cd7af6d16747459b6990f49c39c7b4fb1f7d1146b1e97c492f appraisal2-rubocop (1.0.0) sha256=b71410fbb014befda5340605a605b7f6f3f012739baf0acc5b4351b592c3258d ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 + ast-crispr (7.1.0) + ast-crispr-markdown-markly (7.1.0) + ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) + ast-merge-git (7.1.0) + ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 + bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd + binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 + citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 + commonmarker (2.9.0-aarch64-linux) sha256=e2b4aadb9a2cfa4e206582641ce3a49465549ac1ed4c289fdd63b78d8f24579c + commonmarker (2.9.0-aarch64-linux-musl) sha256=1cf4d2821f2a7e64945f1ed7c4eeced586fdb27ea7fe7337788802cf8f57cfca + commonmarker (2.9.0-arm64-darwin) sha256=1748dbfa4f5813b0d2a14bb4bbfa65a4ec293aa1c825016d60029ee0e132b046 + commonmarker (2.9.0-x86_64-linux) sha256=8cfe92970eef585a19ddf6613224b91cab64d6029834661bda801f877c9c7f43 + commonmarker (2.9.0-x86_64-linux-musl) sha256=293921398b839f79ceaf55010e061357e34f053822c3b003cd0be6686176335e + commonmarker-merge (7.1.0) concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 + dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -484,20 +783,28 @@ CHECKSUMS gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f + go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 + json-merge (7.1.0) kettle-dev (2.3.8) sha256=9d716ff21c660a730cb4e8d41e2e2f0630a28167a354b6e2924e242102aef72c + kettle-drift (1.0.6) sha256=46eda08fa4411d1f3c6682a95eef1c9df4e94611b3949f49d4c7b43c0ed356a3 + kettle-jem (7.1.0) kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f kettle-soup-cover (3.0.4) kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa + kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 + markdown-merge (7.1.0) + markly (0.16.0) sha256=6f70d79e385b1efc9e171f74c81628826259039fe6c778e03c3924c71dac5511 + markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-aarch64-linux-gnu) sha256=1269fb644a6de405057a53dd5c762b1209b43ca7424f839454d3dbc677c31a8f nokogiri (1.19.4-aarch64-linux-musl) sha256=35c65b9ce72b3bb03207bdbe7067915019dc18c1b9b59139684bd6690fdd01af @@ -511,15 +818,20 @@ CHECKSUMS parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 + parslet-toml-merge (7.1.0) + plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 + prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 + psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 + rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb @@ -554,15 +866,19 @@ CHECKSUMS rubocop-rspec_rails (2.32.0) sha256=4a0d641c72f6ebb957534f539d9d0a62c47abd8ce0d0aeee1ef4701e892a9100 rubocop-ruby3_2 (3.0.7) sha256=f53dd6d286fb05186214fc6ec116783e7f837030918e8931c05de773e98f8466 rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 + ruby-merge (7.1.0) ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 + rust-merge (7.1.0) + service_actor (3.9.4) sha256=e63b523630b9a7e62959b2a90113b08d2565b5de9c148557b281ef847c9539ce silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed + smorg-rb (7.1.0) sorbet-runtime (0.6.13347) sha256=54e7221d9f4b63f58aec79f3043752a9ba7810347c6ae0d903531591cc2d5f01 standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b @@ -577,12 +893,16 @@ CHECKSUMS timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.5) sha256=b852f924287ffb58a440856e862b056c8ad97e74b4b2526cee43e0771f40c25c + toml (0.3.0) sha256=0a91d0f76a9036e84e44f95693b12f58d358c1df3ac8e3b5271f2056ecc6e4b9 + toml-merge (7.1.0) + toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-aarch64-linux) sha256=55ffc7c87868cb45658338363d9eba51b4a8b0259aa88e4de368d2bd1d52fea4 tree_sitter_language_pack (1.13.3-arm64-darwin) sha256=bc2498db605f212a1dbd2465ed3f65190d7da786f6ed5d30fcf958121aeb4a5c tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 + typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 @@ -596,6 +916,7 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 + zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH From 221bfc1a38d791aba09fdece314fcadfaf9f1a30 Mon Sep 17 00:00:00 2001 From: "Peter H. Boling" Date: Tue, 21 Jul 2026 13:54:04 -0600 Subject: [PATCH 132/188] =?UTF-8?q?=F0=9F=8E=A8=20Template=20bootstrap=20b?= =?UTF-8?q?y=20kettle-jem=20v7.1.0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gems/rust-merge/Gemfile.lock | 343 +---------------------------------- gems/rust-merge/bin/yard | 2 +- gems/toml-merge/Gemfile.lock | 26 +-- 3 files changed, 22 insertions(+), 349 deletions(-) diff --git a/gems/rust-merge/Gemfile.lock b/gems/rust-merge/Gemfile.lock index 1991054ad..b75f001a3 100644 --- a/gems/rust-merge/Gemfile.lock +++ b/gems/rust-merge/Gemfile.lock @@ -6,38 +6,6 @@ PATH tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly - specs: - ast-crispr-markdown-markly (7.1.0) - ast-crispr (= 7.1.0) - markly-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism - specs: - ast-crispr-ruby-prism (7.1.0) - ast-crispr (= 7.1.0) - prism-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr - specs: - ast-crispr (7.1.0) - ast-merge (= 7.1.0) - service_actor (~> 3.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git - specs: - ast-merge-git (7.1.0) - ast-merge (= 7.1.0) - json-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - PATH remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge specs: @@ -47,192 +15,6 @@ PATH tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template - specs: - ast-template (7.1.0) - ast-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge - specs: - bash-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge - specs: - binary-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge - specs: - citrus-toml-merge (7.1.0) - toml-merge (= 7.1.0) - toml-rb (~> 4.1) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge - specs: - commonmarker-merge (7.1.0) - commonmarker (~> 2.2) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge - specs: - dotenv-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge - specs: - go-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge - specs: - json-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem - specs: - kettle-jem (7.1.0) - addressable (>= 2.8, < 3) - ast-crispr-markdown-markly (= 7.1.0) - ast-crispr-ruby-prism (= 7.1.0) - ast-merge (= 7.1.0) - bash-merge (= 7.1.0) - citrus-toml-merge (= 7.1.0) - commonmarker-merge (= 7.1.0) - dotenv-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-dev (~> 2.3, >= 2.3.5) - kettle-rb (~> 0.1, >= 0.1.4) - kramdown-merge (= 7.1.0) - markdown-merge (= 7.1.0) - markly-merge (= 7.1.0) - prism-merge (= 7.1.0) - psych-merge (= 7.1.0) - rbs (>= 3.10) - rbs-merge (= 7.1.0) - ruby-merge (= 7.1.0) - token-resolver (~> 2.0, >= 2.0.4) - toml-merge (= 7.1.0) - toml-rb (~> 4.2) - tree_haver (= 7.1.0) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge - specs: - kramdown-merge (7.1.0) - kramdown (~> 2.5) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge - specs: - markdown-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge - specs: - markly-merge (7.1.0) - markdown-merge (= 7.1.0) - markly (~> 0.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge - specs: - parslet-toml-merge (7.1.0) - toml (~> 0.3) - toml-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge - specs: - plain-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge - specs: - prism-merge (7.1.0) - prism (~> 1.6) - ruby-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge - specs: - psych-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge - specs: - rbs-merge (7.1.0) - ast-merge (= 7.1.0) - rbs (>= 3.10) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge - specs: - ruby-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb - specs: - smorg-rb (7.1.0) - ast-merge (= 7.1.0) - ast-merge-git (= 7.1.0) - go-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-jem (= 7.1.0) - markly-merge (= 7.1.0) - plain-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge - specs: - toml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - PATH remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver specs: @@ -242,46 +24,6 @@ PATH tree_sitter_language_pack (>= 1.13.2, < 2.0) version_gem (~> 1.1, >= 1.1.9) -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge - specs: - typescript-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge - specs: - yaml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge - specs: - zip-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /var/home/pboling/src/my/kettle-dev/kettle-drift - specs: - kettle-drift (1.0.6) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /var/home/pboling/src/my/kettle-dev/kettle-soup-cover - specs: - kettle-soup-cover (3.0.4) - kettle-wash (~> 0.1, >= 0.1.0) - simplecov (>= 1.0) - simplecov-cobertura (>= 4.0) - simplecov-console (~> 0.9, >= 0.9.5) - simplecov-rcov (~> 0.3, >= 0.3.7) - simplecov_lcov_formatter (~> 0.9, >= 0.9.0) - GEM remote: https://gem.coop/ specs: @@ -306,10 +48,6 @@ GEM cgi (0.5.2) citrus (3.0.2) cmdparse (3.0.7) - commonmarker (2.9.0-aarch64-linux) - commonmarker (2.9.0-aarch64-linux-musl) - commonmarker (2.9.0-arm64-darwin) - commonmarker (2.9.0-x86_64-linux) concurrent-ruby (1.3.7) date (3.5.1) debug (1.11.1) @@ -373,6 +111,13 @@ GEM kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) kettle-rb (0.1.4) + kettle-soup-cover (3.0.4) + kettle-wash (~> 0.1, >= 0.1.0) + simplecov (>= 1.0) + simplecov-cobertura (>= 4.0) + simplecov-console (~> 0.9, >= 0.9.5) + simplecov-rcov (~> 0.3, >= 0.3.7) + simplecov_lcov_formatter (~> 0.9, >= 0.9.0) kettle-test (2.0.11) appraisal2 (~> 3.0, >= 3.0.6) backports (~> 3.0) @@ -393,7 +138,6 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) - markly (0.16.0) mutex_m (0.3.0) nokogiri (1.19.4-aarch64-linux-gnu) racc (~> 1.4) @@ -556,8 +300,6 @@ GEM ruby-progressbar (1.13.0) ruby_engine (2.0.3) ruby_version (1.0.3) - service_actor (3.9.4) - zeitwerk (>= 1.0) silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) @@ -612,11 +354,6 @@ GEM token-resolver (2.0.4) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.13) - toml (0.3.0) - parslet (>= 1.8.0, < 3.0.0) - toml-rb (4.2.0) - citrus (~> 3.0, > 3.0) - racc (~> 1.7) tree_sitter_language_pack (1.13.3-aarch64-linux) sorbet-runtime (~> 0.5) tree_sitter_language_pack (1.13.3-arm64-darwin) @@ -671,46 +408,24 @@ DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) appraisal2-rubocop (~> 1.0, >= 1.0.0) - ast-crispr! - ast-crispr-markdown-markly! - ast-crispr-ruby-prism! ast-merge! - ast-merge-git! - ast-template! - bash-merge! benchmark (~> 0.5, >= 0.5.0) - binary-merge! bundler-audit (~> 0.9.3) cgi (~> 0.5) - citrus-toml-merge! - commonmarker-merge! debug (>= 1.1) - dotenv-merge! erb (~> 6.0, >= 6.0.6) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.0) - go-merge! irb (~> 1.17) - json-merge! kettle-dev (~> 2.0, >= 2.2.25) - kettle-drift! - kettle-jem! - kettle-soup-cover! + kettle-soup-cover (~> 3.0, >= 3.0.3) kettle-test (~> 2.0, >= 2.0.9) kramdown (~> 2.5, >= 2.5.2) - kramdown-merge! kramdown-parser-gfm (~> 1.1) - markdown-merge! - markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) - parslet-toml-merge! - plain-merge! - prism-merge! - psych-merge! rake (~> 13.0) rbs (>= 3.0) - rbs-merge! rdoc (~> 6.11) reek (~> 6.5, >= 6.5.0) require_bench (~> 1.0, >= 1.0.4) @@ -721,27 +436,21 @@ DEPENDENCIES rubocop-on-rbs (~> 2.0, >= 2.0.0) rubocop-packaging (~> 0.6, >= 0.6.0) rubocop-ruby3_2 (~> 3.0, >= 3.0.6) - ruby-merge! ruby-progressbar (~> 1.13) rust-merge! - smorg-rb! standard (~> 1.56, >= 1.56.0) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) - toml-merge! tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) - typescript-merge! webrick (~> 1.9) yaml-converter (~> 0.2, >= 0.2.3) - yaml-merge! yard (~> 0.9, >= 0.9.45) yard-fence (~> 0.9, >= 0.9.6) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) yard-timekeeper (~> 0.2, >= 0.2.4) yard-yaml (~> 0.2, >= 0.2.3) - zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af @@ -749,34 +458,20 @@ CHECKSUMS appraisal2 (3.2.0) sha256=ccd0b767ac4060cd7af6d16747459b6990f49c39c7b4fb1f7d1146b1e97c492f appraisal2-rubocop (1.0.0) sha256=b71410fbb014befda5340605a605b7f6f3f012739baf0acc5b4351b592c3258d ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 - ast-crispr (7.1.0) - ast-crispr-markdown-markly (7.1.0) - ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) - ast-merge-git (7.1.0) - ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 - bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd - binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 - citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 - commonmarker (2.9.0-aarch64-linux) sha256=e2b4aadb9a2cfa4e206582641ce3a49465549ac1ed4c289fdd63b78d8f24579c - commonmarker (2.9.0-aarch64-linux-musl) sha256=1cf4d2821f2a7e64945f1ed7c4eeced586fdb27ea7fe7337788802cf8f57cfca - commonmarker (2.9.0-arm64-darwin) sha256=1748dbfa4f5813b0d2a14bb4bbfa65a4ec293aa1c825016d60029ee0e132b046 - commonmarker (2.9.0-x86_64-linux) sha256=8cfe92970eef585a19ddf6613224b91cab64d6029834661bda801f877c9c7f43 - commonmarker-merge (7.1.0) concurrent-ruby (1.3.7) sha256=4412caec3a5ea2e5fdc52076724c071a81f2c0593d83b2ac8cbb8ca63b3151b0 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 - dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -789,28 +484,20 @@ CHECKSUMS gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f - go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 - json-merge (7.1.0) kettle-dev (2.3.7) sha256=eb370113cd030d03cbe2d33b31c99858951017e5ad21a17e9ed89dc3770028ee - kettle-drift (1.0.6) - kettle-jem (7.1.0) kettle-rb (0.1.4) sha256=9cef7ce4f7021666b7222292f29051e51eaf042e8a5db11f3f4dd72f74243fc1 kettle-soup-cover (3.0.4) kettle-test (2.0.11) sha256=c710c90f7ab79d51f9452f0c09f5f90657e7a893f63583855c164d0b1b107ab2 kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa - kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 - markdown-merge (7.1.0) - markly (0.16.0) sha256=6f70d79e385b1efc9e171f74c81628826259039fe6c778e03c3924c71dac5511 - markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-aarch64-linux-gnu) sha256=1269fb644a6de405057a53dd5c762b1209b43ca7424f839454d3dbc677c31a8f nokogiri (1.19.4-aarch64-linux-musl) sha256=35c65b9ce72b3bb03207bdbe7067915019dc18c1b9b59139684bd6690fdd01af @@ -824,20 +511,15 @@ CHECKSUMS parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 - parslet-toml-merge (7.1.0) - plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 - prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 - psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 - rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb @@ -872,19 +554,16 @@ CHECKSUMS rubocop-rspec_rails (2.32.0) sha256=4a0d641c72f6ebb957534f539d9d0a62c47abd8ce0d0aeee1ef4701e892a9100 rubocop-ruby3_2 (3.0.7) sha256=f53dd6d286fb05186214fc6ec116783e7f837030918e8931c05de773e98f8466 rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 - ruby-merge (7.1.0) ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 rust-merge (7.1.0) - service_actor (3.9.4) sha256=e63b523630b9a7e62959b2a90113b08d2565b5de9c148557b281ef847c9539ce silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed - smorg-rb (7.1.0) sorbet-runtime (0.6.13347) sha256=54e7221d9f4b63f58aec79f3043752a9ba7810347c6ae0d903531591cc2d5f01 standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b @@ -899,22 +578,17 @@ CHECKSUMS timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.4) sha256=33b926958f504525bba3ed511ab66fbcbf8ef30390815e931436b30f27ffcad0 - toml (0.3.0) sha256=0a91d0f76a9036e84e44f95693b12f58d358c1df3ac8e3b5271f2056ecc6e4b9 - toml-merge (7.1.0) - toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-aarch64-linux) sha256=55ffc7c87868cb45658338363d9eba51b4a8b0259aa88e4de368d2bd1d52fea4 tree_sitter_language_pack (1.13.3-arm64-darwin) sha256=bc2498db605f212a1dbd2465ed3f65190d7da786f6ed5d30fcf958121aeb4a5c tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 - typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 webrick (1.9.2) sha256=beb4a15fc474defed24a3bda4ffd88a490d517c9e4e6118c3edce59e45864131 yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 - yaml-merge (7.1.0) yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd @@ -922,7 +596,6 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 - zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH diff --git a/gems/rust-merge/bin/yard b/gems/rust-merge/bin/yard index 5d516ad6f..a7e8b6eed 100755 --- a/gems/rust-merge/bin/yard +++ b/gems/rust-merge/bin/yard @@ -12,4 +12,4 @@ # `yard` / `bin/yard`. Keep this binstub as a handoff to the task so # humans and tools that reach for `bin/yard` still run the full docs # workflow with post-processing hooks. -exec('bundle', 'exec', 'rake', 'yard') +exec("bundle", "exec", "rake", "yard") diff --git a/gems/toml-merge/Gemfile.lock b/gems/toml-merge/Gemfile.lock index 35b4db3db..2b7731f33 100644 --- a/gems/toml-merge/Gemfile.lock +++ b/gems/toml-merge/Gemfile.lock @@ -7,7 +7,7 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/ast-merge specs: ast-merge (7.1.0) benchmark @@ -16,7 +16,7 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/tree_haver specs: tree_haver (7.1.0) citrus (~> 3.0) @@ -48,7 +48,7 @@ GEM cgi (0.5.2) citrus (3.0.2) cmdparse (3.0.7) - concurrent-ruby (1.3.7) + concurrent-ruby (1.3.8) date (3.5.1) debug (1.11.1) irb (~> 1.10) @@ -105,12 +105,12 @@ GEM rdoc (>= 4.0.0) reline (>= 0.4.2) json (2.21.1) - kettle-dev (2.3.7) + kettle-dev (2.3.8) emoji_regex (>= 15.0) kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) - kettle-rb (0.1.4) + kettle-rb (0.1.5) kettle-soup-cover (3.0.4) kettle-wash (~> 0.1, >= 0.1.0) simplecov (>= 1.0) @@ -118,7 +118,7 @@ GEM simplecov-console (~> 0.9, >= 0.9.5) simplecov-rcov (~> 0.3, >= 0.3.7) simplecov_lcov_formatter (~> 0.9, >= 0.9.0) - kettle-test (2.0.11) + kettle-test (2.0.12) appraisal2 (~> 3.0, >= 3.0.6) backports (~> 3.0) rspec (~> 3.0) @@ -351,9 +351,9 @@ GEM delegate (~> 0.1) rspec (~> 3.0) timecop (>= 0.7, < 1) - token-resolver (2.0.4) + token-resolver (2.0.5) parslet (~> 2.0) - version_gem (~> 1.1, >= 1.1.13) + version_gem (~> 1.1, >= 1.1.14) tree_sitter_language_pack (1.13.3-aarch64-linux) sorbet-runtime (~> 0.5) tree_sitter_language_pack (1.13.3-arm64-darwin) @@ -466,7 +466,7 @@ CHECKSUMS cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 - concurrent-ruby (1.3.7) sha256=4412caec3a5ea2e5fdc52076724c071a81f2c0593d83b2ac8cbb8ca63b3151b0 + concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 @@ -488,10 +488,10 @@ CHECKSUMS io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 - kettle-dev (2.3.7) sha256=eb370113cd030d03cbe2d33b31c99858951017e5ad21a17e9ed89dc3770028ee - kettle-rb (0.1.4) sha256=9cef7ce4f7021666b7222292f29051e51eaf042e8a5db11f3f4dd72f74243fc1 + kettle-dev (2.3.8) sha256=9d716ff21c660a730cb4e8d41e2e2f0630a28167a354b6e2924e242102aef72c + kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f kettle-soup-cover (3.0.4) - kettle-test (2.0.11) sha256=c710c90f7ab79d51f9452f0c09f5f90657e7a893f63583855c164d0b1b107ab2 + kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 @@ -576,7 +576,7 @@ CHECKSUMS thor (1.5.0) sha256=e3a9e55fe857e44859ce104a84675ab6e8cd59c650a49106a05f55f136425e73 timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 - token-resolver (2.0.4) sha256=33b926958f504525bba3ed511ab66fbcbf8ef30390815e931436b30f27ffcad0 + token-resolver (2.0.5) sha256=b852f924287ffb58a440856e862b056c8ad97e74b4b2526cee43e0771f40c25c toml-merge (7.1.0) tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-aarch64-linux) sha256=55ffc7c87868cb45658338363d9eba51b4a8b0259aa88e4de368d2bd1d52fea4 From c907072dc87c7255873bde3ea8cd3852a1795632 Mon Sep 17 00:00:00 2001 From: "Peter H. Boling" Date: Tue, 21 Jul 2026 13:54:09 -0600 Subject: [PATCH 133/188] =?UTF-8?q?=F0=9F=8E=A8=20Template=20bootstrap=20b?= =?UTF-8?q?y=20kettle-jem=20v7.1.0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gems/ast-template/Gemfile.lock | 376 ++++++++++++++++-- gems/binary-merge/Gemfile.lock | 352 +++++++++++++++- gems/go-merge/Gemfile.lock | 325 ++++++++++++++- gems/rust-merge/.rubocop_gradual.lock | 46 ++- gems/rust-merge/Gemfile | 70 ++-- gems/rust-merge/Gemfile.lock | 26 +- gems/rust-merge/Rakefile | 18 +- gems/rust-merge/bin/yard | 2 +- .../modular/benchmark/r4/v0.5.gemfile | 2 +- .../gemfiles/modular/benchmark/vHEAD.gemfile | 2 +- .../gemfiles/modular/cgi/r4/v0.5.gemfile | 2 +- .../gemfiles/modular/cgi/vHEAD.gemfile | 2 +- .../gemfiles/modular/coverage.gemfile | 6 +- .../gemfiles/modular/coverage_local.gemfile | 42 +- .../rust-merge/gemfiles/modular/debug.gemfile | 4 +- .../gemfiles/modular/documentation.gemfile | 24 +- .../modular/documentation_local.gemfile | 30 +- .../gemfiles/modular/erb/r2/v3.0.gemfile | 2 +- .../gemfiles/modular/erb/r3/v5.0.gemfile | 2 +- .../gemfiles/modular/erb/r4/v5.0.gemfile | 2 +- .../gemfiles/modular/erb/vHEAD.gemfile | 2 +- .../modular/json/truffleruby_22_3.gemfile | 4 +- .../modular/json/truffleruby_23_0.gemfile | 4 +- .../modular/json/truffleruby_23_1.gemfile | 4 +- .../gemfiles/modular/mutex_m/r2/v0.3.gemfile | 2 +- .../gemfiles/modular/mutex_m/r3/v0.3.gemfile | 2 +- .../gemfiles/modular/mutex_m/r4/v0.3.gemfile | 2 +- .../gemfiles/modular/mutex_m/vHEAD.gemfile | 2 +- .../gemfiles/modular/optional.gemfile | 4 +- .../rust-merge/gemfiles/modular/rspec.gemfile | 8 +- .../gemfiles/modular/runtime_heads.gemfile | 2 +- .../gemfiles/modular/stringio/r2/v3.0.gemfile | 2 +- .../gemfiles/modular/stringio/r3/v3.0.gemfile | 2 +- .../gemfiles/modular/stringio/r4/v3.0.gemfile | 2 +- .../gemfiles/modular/stringio/vHEAD.gemfile | 2 +- .../rust-merge/gemfiles/modular/style.gemfile | 24 +- .../gemfiles/modular/style_local.gemfile | 32 +- .../gemfiles/modular/templating.gemfile | 12 +- .../gemfiles/modular/templating_local.gemfile | 44 +- .../gemfiles/modular/webrick/r4/v1.9.gemfile | 2 +- .../gemfiles/modular/webrick/vHEAD.gemfile | 2 +- .../gemfiles/modular/x_std_libs.gemfile | 14 +- .../modular/x_std_libs/r2/libs.gemfile | 6 +- .../modular/x_std_libs/r3/libs.gemfile | 6 +- .../modular/x_std_libs/r4/libs.gemfile | 12 +- .../gemfiles/modular/x_std_libs/vHEAD.gemfile | 12 +- gems/rust-merge/lib/rust/merge/version.rb | 2 +- gems/toml-merge/Gemfile.lock | 325 ++++++++++++++- gems/typescript-merge/.kettle-drift.lock | 9 - gems/typescript-merge/README.md | 4 +- .../modular/benchmark/r4/v0.5.gemfile | 2 +- .../gemfiles/modular/benchmark/vHEAD.gemfile | 2 +- .../gemfiles/modular/cgi/r4/v0.5.gemfile | 1 + .../gemfiles/modular/cgi/vHEAD.gemfile | 1 + .../gemfiles/modular/coverage.gemfile | 6 +- .../gemfiles/modular/coverage_local.gemfile | 48 ++- .../gemfiles/modular/debug.gemfile | 4 +- .../gemfiles/modular/documentation.gemfile | 24 +- .../modular/documentation_local.gemfile | 38 +- .../gemfiles/modular/erb/r2/v3.0.gemfile | 2 +- .../gemfiles/modular/erb/r3/v5.0.gemfile | 2 +- .../gemfiles/modular/erb/r4/v5.0.gemfile | 2 +- .../gemfiles/modular/erb/vHEAD.gemfile | 2 +- .../modular/json/truffleruby_22_3.gemfile | 6 + .../modular/json/truffleruby_23_0.gemfile | 6 + .../modular/json/truffleruby_23_1.gemfile | 6 + .../gemfiles/modular/mutex_m/r2/v0.3.gemfile | 2 +- .../gemfiles/modular/mutex_m/r3/v0.3.gemfile | 2 +- .../gemfiles/modular/mutex_m/r4/v0.3.gemfile | 2 +- .../gemfiles/modular/mutex_m/vHEAD.gemfile | 2 +- .../gemfiles/modular/optional.gemfile | 7 +- .../gemfiles/modular/rspec.gemfile | 8 +- .../gemfiles/modular/runtime_heads.gemfile | 7 +- .../gemfiles/modular/stringio/r2/v3.0.gemfile | 2 +- .../gemfiles/modular/stringio/r3/v3.0.gemfile | 2 +- .../gemfiles/modular/stringio/r4/v3.0.gemfile | 2 +- .../gemfiles/modular/stringio/vHEAD.gemfile | 2 +- .../gemfiles/modular/style.gemfile | 29 +- .../gemfiles/modular/style_local.gemfile | 44 +- .../gemfiles/modular/templating.gemfile | 14 +- .../gemfiles/modular/templating_local.gemfile | 48 ++- .../gemfiles/modular/webrick/r4/v1.9.gemfile | 1 + .../gemfiles/modular/webrick/vHEAD.gemfile | 1 + .../gemfiles/modular/x_std_libs.gemfile | 14 +- .../modular/x_std_libs/r2/libs.gemfile | 6 +- .../modular/x_std_libs/r3/libs.gemfile | 6 +- .../modular/x_std_libs/r4/libs.gemfile | 10 +- .../gemfiles/modular/x_std_libs/vHEAD.gemfile | 10 +- 88 files changed, 1840 insertions(+), 418 deletions(-) create mode 100644 gems/typescript-merge/gemfiles/modular/cgi/r4/v0.5.gemfile create mode 100644 gems/typescript-merge/gemfiles/modular/cgi/vHEAD.gemfile create mode 100644 gems/typescript-merge/gemfiles/modular/json/truffleruby_22_3.gemfile create mode 100644 gems/typescript-merge/gemfiles/modular/json/truffleruby_23_0.gemfile create mode 100644 gems/typescript-merge/gemfiles/modular/json/truffleruby_23_1.gemfile create mode 100644 gems/typescript-merge/gemfiles/modular/webrick/r4/v1.9.gemfile create mode 100644 gems/typescript-merge/gemfiles/modular/webrick/vHEAD.gemfile diff --git a/gems/ast-template/Gemfile.lock b/gems/ast-template/Gemfile.lock index 4a453ea98..22d1ee19e 100644 --- a/gems/ast-template/Gemfile.lock +++ b/gems/ast-template/Gemfile.lock @@ -5,6 +5,266 @@ PATH ast-merge (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly + specs: + ast-crispr-markdown-markly (7.1.0) + ast-crispr (= 7.1.0) + markly-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism + specs: + ast-crispr-ruby-prism (7.1.0) + ast-crispr (= 7.1.0) + prism-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr + specs: + ast-crispr (7.1.0) + ast-merge (= 7.1.0) + service_actor (~> 3.9) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git + specs: + ast-merge-git (7.1.0) + ast-merge (= 7.1.0) + json-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge + specs: + ast-merge (7.1.0) + benchmark + token-resolver (~> 2.0, >= 2.0.4) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge + specs: + bash-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge + specs: + binary-merge (7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge + specs: + citrus-toml-merge (7.1.0) + toml-merge (= 7.1.0) + toml-rb (~> 4.1) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge + specs: + commonmarker-merge (7.1.0) + commonmarker (~> 2.2) + markdown-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge + specs: + dotenv-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge + specs: + go-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge + specs: + json-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem + specs: + kettle-jem (7.1.0) + addressable (>= 2.8, < 3) + ast-crispr-markdown-markly (= 7.1.0) + ast-crispr-ruby-prism (= 7.1.0) + ast-merge (= 7.1.0) + bash-merge (= 7.1.0) + citrus-toml-merge (= 7.1.0) + commonmarker-merge (= 7.1.0) + dotenv-merge (= 7.1.0) + json-merge (= 7.1.0) + kettle-dev (~> 2.3, >= 2.3.5) + kettle-rb (~> 0.1, >= 0.1.4) + kramdown-merge (= 7.1.0) + markdown-merge (= 7.1.0) + markly-merge (= 7.1.0) + prism-merge (= 7.1.0) + psych-merge (= 7.1.0) + rbs (>= 3.10) + rbs-merge (= 7.1.0) + ruby-merge (= 7.1.0) + token-resolver (~> 2.0, >= 2.0.4) + toml-merge (= 7.1.0) + toml-rb (~> 4.2) + tree_haver (= 7.1.0) + yaml-merge (= 7.1.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge + specs: + kramdown-merge (7.1.0) + kramdown (~> 2.5) + markdown-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge + specs: + markdown-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge + specs: + markly-merge (7.1.0) + markdown-merge (= 7.1.0) + markly (~> 0.9) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge + specs: + parslet-toml-merge (7.1.0) + toml (~> 0.3) + toml-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge + specs: + plain-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge + specs: + prism-merge (7.1.0) + prism (~> 1.6) + ruby-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge + specs: + psych-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + yaml-merge (= 7.1.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge + specs: + rbs-merge (7.1.0) + ast-merge (= 7.1.0) + rbs (>= 3.10) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge + specs: + ruby-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge + specs: + rust-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb + specs: + smorg-rb (7.1.0) + ast-merge (= 7.1.0) + ast-merge-git (= 7.1.0) + go-merge (= 7.1.0) + json-merge (= 7.1.0) + kettle-jem (= 7.1.0) + markly-merge (= 7.1.0) + plain-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge + specs: + toml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver + specs: + tree_haver (7.1.0) + citrus (~> 3.0) + parslet (~> 2.0) + tree_sitter_language_pack (>= 1.13.2, < 2.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge + specs: + typescript-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge + specs: + yaml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge + specs: + zip-merge (7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + GEM remote: https://gem.coop/ specs: @@ -16,11 +276,6 @@ GEM rake (>= 10) thor (>= 0.14) ast (2.4.3) - ast-merge (7.1.0) - benchmark - token-resolver (~> 2.0, >= 2.0.4) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) backports (3.25.3) benchmark (0.5.0) bigdecimal (4.1.2) @@ -29,6 +284,7 @@ GEM thor (~> 1.0) citrus (3.0.2) cmdparse (3.0.7) + commonmarker (2.9.0-x86_64-linux) concurrent-ruby (1.3.7) date (3.5.1) debug (1.11.1) @@ -92,6 +348,8 @@ GEM kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) + kettle-drift (1.0.6) + version_gem (~> 1.1, >= 1.1.14) kettle-rb (0.1.4) kettle-soup-cover (1.1.3) simplecov (~> 0.22) @@ -120,6 +378,7 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) + markly (0.16.0) mutex_m (0.3.0) nokogiri (1.19.4-x86_64-linux-gnu) racc (~> 1.4) @@ -246,6 +505,8 @@ GEM ruby-progressbar (1.13.0) ruby_engine (2.0.3) ruby_version (1.0.3) + service_actor (3.9.4) + zeitwerk (>= 1.0) silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) @@ -297,12 +558,12 @@ GEM timecop (>= 0.7, < 1) token-resolver (2.0.4) parslet (~> 2.0) - version_gem (~> 1.1, >= 1.1.14) - tree_haver (7.1.0) - citrus (~> 3.0) - parslet (~> 2.0) - tree_sitter_language_pack (>= 1.13.2, < 2.0) - version_gem (~> 1.1, >= 1.1.9) + version_gem (~> 1.1, >= 1.1.13) + toml (0.3.0) + parslet (>= 1.8.0, < 3.0.0) + toml-rb (4.2.0) + citrus (~> 3.0, > 3.0) + racc (~> 1.7) tree_sitter_language_pack (1.13.3-x86_64-linux) sorbet-runtime (~> 0.5) tsort (0.2.0) @@ -346,23 +607,45 @@ PLATFORMS DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) + ast-crispr! + ast-crispr-markdown-markly! + ast-crispr-ruby-prism! + ast-merge! + ast-merge-git! ast-template! + bash-merge! benchmark (~> 0.5, >= 0.5.0) + binary-merge! bundler-audit (~> 0.9.3) + citrus-toml-merge! + commonmarker-merge! debug (>= 1.1) + dotenv-merge! erb (~> 6.0, >= 6.0.4) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.0) + go-merge! irb (~> 1.17) + json-merge! kettle-dev (~> 2.0, >= 2.2.25) + kettle-drift (~> 1.0, >= 1.0.5) + kettle-jem! kettle-soup-cover (~> 1.0, >= 1.1.3) kettle-test (~> 2.0, >= 2.0.9) kramdown (~> 2.5, >= 2.5.1) + kramdown-merge! kramdown-parser-gfm (~> 1.1) + markdown-merge! + markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) + parslet-toml-merge! + plain-merge! + prism-merge! + psych-merge! rake (~> 13.0) rbs (>= 3.0) + rbs-merge! rdoc (~> 6.11) reek (~> 6.5) require_bench (~> 1.0, >= 1.0.4) @@ -371,32 +654,49 @@ DEPENDENCIES rubocop-packaging (~> 0.6, >= 0.6.0) rubocop-rspec (~> 3.6) rubocop-ruby3_2 (~> 3.0.0) + ruby-merge! ruby-progressbar (~> 1.13) + rust-merge! + smorg-rb! standard (>= 1.50) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) + toml-merge! + tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) + typescript-merge! yaml-converter (~> 0.1) + yaml-merge! yard (~> 0.9, >= 0.9.44) yard-fence (~> 0.9, >= 0.9.1) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) yard-timekeeper (~> 0.1) yard-yaml (~> 0.1, >= 0.1.2) + zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af ansi (1.6.0) sha256=ac9ea0c0ea8d32fb4e271348e609963ac78882f34b73836c2a02b3622e666658 appraisal2 (3.2.0) sha256=ccd0b767ac4060cd7af6d16747459b6990f49c39c7b4fb1f7d1146b1e97c492f ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 + ast-crispr (7.1.0) + ast-crispr-markdown-markly (7.1.0) + ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) + ast-merge-git (7.1.0) ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 + bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd + binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 + citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 + commonmarker (2.9.0-x86_64-linux) sha256=8cfe92970eef585a19ddf6613224b91cab64d6029834661bda801f877c9c7f43 + commonmarker-merge (7.1.0) concurrent-ruby (1.3.7) sha256=4412caec3a5ea2e5fdc52076724c071a81f2c0593d83b2ac8cbb8ca63b3151b0 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 @@ -404,6 +704,7 @@ CHECKSUMS diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 docile (1.4.1) sha256=96159be799bfa73cdb721b840e9802126e4e03dfc26863db73647204c727f21e + dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -416,19 +717,27 @@ CHECKSUMS gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f + go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 + json-merge (7.1.0) kettle-dev (2.3.7) sha256=eb370113cd030d03cbe2d33b31c99858951017e5ad21a17e9ed89dc3770028ee + kettle-drift (1.0.6) sha256=46eda08fa4411d1f3c6682a95eef1c9df4e94611b3949f49d4c7b43c0ed356a3 + kettle-jem (7.1.0) kettle-rb (0.1.4) sha256=9cef7ce4f7021666b7222292f29051e51eaf042e8a5db11f3f4dd72f74243fc1 kettle-soup-cover (1.1.3) sha256=a373827da22a7131d093afd32945e5b7d7a10a01ebfdded8fd2cb8230d69c8ad kettle-test (2.0.11) sha256=c710c90f7ab79d51f9452f0c09f5f90657e7a893f63583855c164d0b1b107ab2 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa + kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 + markdown-merge (7.1.0) + markly (0.16.0) sha256=6f70d79e385b1efc9e171f74c81628826259039fe6c778e03c3924c71dac5511 + markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-x86_64-linux-gnu) sha256=379fae440b28915e3f19d752ce2dcf8465ed2b2fbefd2a7ca0dd497bc981a06a nomono (1.0.8) sha256=bf4b9b426cbf216ab17b70db474f691b8ae1f1e29de8db4b0ecd405e6e7e1c80 @@ -438,15 +747,20 @@ CHECKSUMS parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 + parslet-toml-merge (7.1.0) + plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 + prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 + psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 + rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb @@ -474,9 +788,12 @@ CHECKSUMS rubocop-rspec (3.10.2) sha256=0b3e2ecc592cd10ecbf0095bb58d1e357905276e069643523cc19eb7495f65e2 rubocop-ruby3_2 (3.0.7) sha256=f53dd6d286fb05186214fc6ec116783e7f837030918e8931c05de773e98f8466 rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 + ruby-merge (7.1.0) ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 + rust-merge (7.1.0) + service_actor (3.9.4) sha256=e63b523630b9a7e62959b2a90113b08d2565b5de9c148557b281ef847c9539ce silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (0.22.0) sha256=fe2622c7834ff23b98066bb0a854284b2729a569ac659f82621fc22ef36213a5 simplecov-cobertura (3.2.0) sha256=70d702658677fcb20e5aceb6915ccf8bc62ff2ccd38b62b3ad5c9db5c0888740 @@ -485,6 +802,7 @@ CHECKSUMS simplecov-lcov (0.9.0) sha256=7a77a31e200a595ed4b0249493056efd0c920601f53d2ef135ca34ee796346cd simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_json_formatter (0.1.4) sha256=529418fbe8de1713ac2b2d612aa3daa56d316975d307244399fa4838c601b428 + smorg-rb (7.1.0) sorbet-runtime (0.6.13342) sha256=dbeb9892597f593ed2b29e38018912787f6c4e0c4b736d8af0d6bd3c63bde3c3 standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b @@ -498,22 +816,28 @@ CHECKSUMS timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.4) sha256=33b926958f504525bba3ed511ab66fbcbf8ef30390815e931436b30f27ffcad0 + toml (0.3.0) sha256=0a91d0f76a9036e84e44f95693b12f58d358c1df3ac8e3b5271f2056ecc6e4b9 + toml-merge (7.1.0) + toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 tree_haver (7.1.0) - tree_sitter_language_pack (1.13.3-x86_64-linux) - tsort (0.2.0) - turbo_tests2 (3.2.0) - unicode-display_width (3.2.0) - unicode-emoji (4.2.0) - version_gem (1.1.14) - yaml-converter (0.2.3) - yard (0.9.45) - yard-fence (0.9.6) - yard-junk (0.1.0) - yard-relative_markdown_links (0.6.0) - yard-timekeeper (0.2.4) - yard-yaml (0.2.3) - zeitwerk (2.8.2) - zlib (3.2.3) + tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 + tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f + turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 + typescript-merge (7.1.0) + unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 + unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f + version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 + yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 + yaml-merge (7.1.0) + yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 + yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 + yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd + yard-relative_markdown_links (0.6.0) sha256=3e5ffa85cbad9bac70bee5421774b190fb25d3bdf489323a5b3534f647d1a70e + yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a + yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 + zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 + zip-merge (7.1.0) + zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH 4.0.16 diff --git a/gems/binary-merge/Gemfile.lock b/gems/binary-merge/Gemfile.lock index 165f9b377..3d244710f 100644 --- a/gems/binary-merge/Gemfile.lock +++ b/gems/binary-merge/Gemfile.lock @@ -5,6 +5,266 @@ PATH tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly + specs: + ast-crispr-markdown-markly (7.1.0) + ast-crispr (= 7.1.0) + markly-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism + specs: + ast-crispr-ruby-prism (7.1.0) + ast-crispr (= 7.1.0) + prism-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr + specs: + ast-crispr (7.1.0) + ast-merge (= 7.1.0) + service_actor (~> 3.9) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git + specs: + ast-merge-git (7.1.0) + ast-merge (= 7.1.0) + json-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge + specs: + ast-merge (7.1.0) + benchmark + token-resolver (~> 2.0, >= 2.0.4) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template + specs: + ast-template (7.1.0) + ast-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge + specs: + bash-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge + specs: + citrus-toml-merge (7.1.0) + toml-merge (= 7.1.0) + toml-rb (~> 4.1) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge + specs: + commonmarker-merge (7.1.0) + commonmarker (~> 2.2) + markdown-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge + specs: + dotenv-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge + specs: + go-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge + specs: + json-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem + specs: + kettle-jem (7.1.0) + addressable (>= 2.8, < 3) + ast-crispr-markdown-markly (= 7.1.0) + ast-crispr-ruby-prism (= 7.1.0) + ast-merge (= 7.1.0) + bash-merge (= 7.1.0) + citrus-toml-merge (= 7.1.0) + commonmarker-merge (= 7.1.0) + dotenv-merge (= 7.1.0) + json-merge (= 7.1.0) + kettle-dev (~> 2.3, >= 2.3.5) + kettle-rb (~> 0.1, >= 0.1.4) + kramdown-merge (= 7.1.0) + markdown-merge (= 7.1.0) + markly-merge (= 7.1.0) + prism-merge (= 7.1.0) + psych-merge (= 7.1.0) + rbs (>= 3.10) + rbs-merge (= 7.1.0) + ruby-merge (= 7.1.0) + token-resolver (~> 2.0, >= 2.0.4) + toml-merge (= 7.1.0) + toml-rb (~> 4.2) + tree_haver (= 7.1.0) + yaml-merge (= 7.1.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge + specs: + kramdown-merge (7.1.0) + kramdown (~> 2.5) + markdown-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge + specs: + markdown-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge + specs: + markly-merge (7.1.0) + markdown-merge (= 7.1.0) + markly (~> 0.9) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge + specs: + parslet-toml-merge (7.1.0) + toml (~> 0.3) + toml-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge + specs: + plain-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge + specs: + prism-merge (7.1.0) + prism (~> 1.6) + ruby-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge + specs: + psych-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + yaml-merge (= 7.1.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge + specs: + rbs-merge (7.1.0) + ast-merge (= 7.1.0) + rbs (>= 3.10) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge + specs: + ruby-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge + specs: + rust-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb + specs: + smorg-rb (7.1.0) + ast-merge (= 7.1.0) + ast-merge-git (= 7.1.0) + go-merge (= 7.1.0) + json-merge (= 7.1.0) + kettle-jem (= 7.1.0) + markly-merge (= 7.1.0) + plain-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge + specs: + toml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver + specs: + tree_haver (7.1.0) + citrus (~> 3.0) + parslet (~> 2.0) + tree_sitter_language_pack (>= 1.13.2, < 2.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge + specs: + typescript-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge + specs: + yaml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge + specs: + zip-merge (7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + GEM remote: https://gem.coop/ specs: @@ -24,6 +284,12 @@ GEM thor (~> 1.0) citrus (3.0.2) cmdparse (3.0.7) + commonmarker (2.9.0-aarch64-linux) + commonmarker (2.9.0-aarch64-linux-musl) + commonmarker (2.9.0-arm64-darwin) + commonmarker (2.9.0-x86_64-darwin) + commonmarker (2.9.0-x86_64-linux) + commonmarker (2.9.0-x86_64-linux-musl) concurrent-ruby (1.3.7) date (3.5.1) debug (1.11.1) @@ -87,6 +353,8 @@ GEM kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) + kettle-drift (1.0.6) + version_gem (~> 1.1, >= 1.1.14) kettle-rb (0.1.4) kettle-soup-cover (1.1.3) simplecov (~> 0.22) @@ -115,6 +383,7 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) + markly (0.16.0) mutex_m (0.3.0) nokogiri (1.19.4-aarch64-linux-gnu) racc (~> 1.4) @@ -251,6 +520,8 @@ GEM ruby-progressbar (1.13.0) ruby_engine (2.0.3) ruby_version (1.0.3) + service_actor (3.9.4) + zeitwerk (>= 1.0) silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) @@ -300,11 +571,14 @@ GEM delegate (~> 0.1) rspec (~> 3.0) timecop (>= 0.7, < 1) - tree_haver (7.1.0) - citrus (~> 3.0) + token-resolver (2.0.5) parslet (~> 2.0) - tree_sitter_language_pack (>= 1.13.2, < 2.0) - version_gem (~> 1.1, >= 1.1.9) + version_gem (~> 1.1, >= 1.1.14) + toml (0.3.0) + parslet (>= 1.8.0, < 3.0.0) + toml-rb (4.2.0) + citrus (~> 3.0, > 3.0) + racc (~> 1.7) tree_sitter_language_pack (1.13.3-aarch64-linux) sorbet-runtime (~> 0.5) tree_sitter_language_pack (1.13.3-arm64-darwin) @@ -359,23 +633,45 @@ PLATFORMS DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) + ast-crispr! + ast-crispr-markdown-markly! + ast-crispr-ruby-prism! + ast-merge! + ast-merge-git! + ast-template! + bash-merge! benchmark (~> 0.5, >= 0.5.0) binary-merge! bundler-audit (~> 0.9.3) + citrus-toml-merge! + commonmarker-merge! debug (>= 1.1) + dotenv-merge! erb (~> 6.0, >= 6.0.4) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.0) + go-merge! irb (~> 1.17) + json-merge! kettle-dev (~> 2.0, >= 2.2.25) + kettle-drift (~> 1.0, >= 1.0.5) + kettle-jem! kettle-soup-cover (~> 1.0, >= 1.1.3) kettle-test (~> 2.0, >= 2.0.9) kramdown (~> 2.5, >= 2.5.1) + kramdown-merge! kramdown-parser-gfm (~> 1.1) + markdown-merge! + markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) + parslet-toml-merge! + plain-merge! + prism-merge! + psych-merge! rake (~> 13.0) rbs (>= 3.0) + rbs-merge! rdoc (~> 6.11) reek (~> 6.5) require_bench (~> 1.0, >= 1.0.4) @@ -384,31 +680,54 @@ DEPENDENCIES rubocop-packaging (~> 0.6, >= 0.6.0) rubocop-rspec (~> 3.6) rubocop-ruby3_2 (~> 3.0.0) + ruby-merge! ruby-progressbar (~> 1.13) + rust-merge! + smorg-rb! standard (>= 1.50) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) + toml-merge! + tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) + typescript-merge! yaml-converter (~> 0.1) + yaml-merge! yard (~> 0.9, >= 0.9.44) yard-fence (~> 0.9, >= 0.9.1) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) yard-timekeeper (~> 0.1) yard-yaml (~> 0.1, >= 0.1.2) + zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af ansi (1.6.0) sha256=ac9ea0c0ea8d32fb4e271348e609963ac78882f34b73836c2a02b3622e666658 appraisal2 (3.2.0) sha256=ccd0b767ac4060cd7af6d16747459b6990f49c39c7b4fb1f7d1146b1e97c492f ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 + ast-crispr (7.1.0) + ast-crispr-markdown-markly (7.1.0) + ast-crispr-ruby-prism (7.1.0) + ast-merge (7.1.0) + ast-merge-git (7.1.0) + ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 + bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 + citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 + commonmarker (2.9.0-aarch64-linux) sha256=e2b4aadb9a2cfa4e206582641ce3a49465549ac1ed4c289fdd63b78d8f24579c + commonmarker (2.9.0-aarch64-linux-musl) sha256=1cf4d2821f2a7e64945f1ed7c4eeced586fdb27ea7fe7337788802cf8f57cfca + commonmarker (2.9.0-arm64-darwin) sha256=1748dbfa4f5813b0d2a14bb4bbfa65a4ec293aa1c825016d60029ee0e132b046 + commonmarker (2.9.0-x86_64-darwin) sha256=0a9914ccfd2f5d2a59c7bd0dda4fe90eb084cf513b477e499008e09ec9d6edd6 + commonmarker (2.9.0-x86_64-linux) sha256=8cfe92970eef585a19ddf6613224b91cab64d6029834661bda801f877c9c7f43 + commonmarker (2.9.0-x86_64-linux-musl) sha256=293921398b839f79ceaf55010e061357e34f053822c3b003cd0be6686176335e + commonmarker-merge (7.1.0) concurrent-ruby (1.3.7) sha256=4412caec3a5ea2e5fdc52076724c071a81f2c0593d83b2ac8cbb8ca63b3151b0 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 @@ -416,6 +735,7 @@ CHECKSUMS diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 docile (1.4.1) sha256=96159be799bfa73cdb721b840e9802126e4e03dfc26863db73647204c727f21e + dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -428,19 +748,27 @@ CHECKSUMS gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f + go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 + json-merge (7.1.0) kettle-dev (2.3.7) sha256=eb370113cd030d03cbe2d33b31c99858951017e5ad21a17e9ed89dc3770028ee + kettle-drift (1.0.6) sha256=46eda08fa4411d1f3c6682a95eef1c9df4e94611b3949f49d4c7b43c0ed356a3 + kettle-jem (7.1.0) kettle-rb (0.1.4) sha256=9cef7ce4f7021666b7222292f29051e51eaf042e8a5db11f3f4dd72f74243fc1 kettle-soup-cover (1.1.3) sha256=a373827da22a7131d093afd32945e5b7d7a10a01ebfdded8fd2cb8230d69c8ad kettle-test (2.0.11) sha256=c710c90f7ab79d51f9452f0c09f5f90657e7a893f63583855c164d0b1b107ab2 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa + kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 + markdown-merge (7.1.0) + markly (0.16.0) sha256=6f70d79e385b1efc9e171f74c81628826259039fe6c778e03c3924c71dac5511 + markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-aarch64-linux-gnu) sha256=1269fb644a6de405057a53dd5c762b1209b43ca7424f839454d3dbc677c31a8f nokogiri (1.19.4-aarch64-linux-musl) sha256=35c65b9ce72b3bb03207bdbe7067915019dc18c1b9b59139684bd6690fdd01af @@ -455,15 +783,20 @@ CHECKSUMS parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 + parslet-toml-merge (7.1.0) + plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 + prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 + psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 + rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb @@ -491,9 +824,12 @@ CHECKSUMS rubocop-rspec (3.10.2) sha256=0b3e2ecc592cd10ecbf0095bb58d1e357905276e069643523cc19eb7495f65e2 rubocop-ruby3_2 (3.0.7) sha256=f53dd6d286fb05186214fc6ec116783e7f837030918e8931c05de773e98f8466 rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 + ruby-merge (7.1.0) ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 + rust-merge (7.1.0) + service_actor (3.9.4) sha256=e63b523630b9a7e62959b2a90113b08d2565b5de9c148557b281ef847c9539ce silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (0.22.0) sha256=fe2622c7834ff23b98066bb0a854284b2729a569ac659f82621fc22ef36213a5 simplecov-cobertura (3.2.0) sha256=70d702658677fcb20e5aceb6915ccf8bc62ff2ccd38b62b3ad5c9db5c0888740 @@ -502,6 +838,7 @@ CHECKSUMS simplecov-lcov (0.9.0) sha256=7a77a31e200a595ed4b0249493056efd0c920601f53d2ef135ca34ee796346cd simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_json_formatter (0.1.4) sha256=529418fbe8de1713ac2b2d612aa3daa56d316975d307244399fa4838c601b428 + smorg-rb (7.1.0) sorbet-runtime (0.6.13347) sha256=54e7221d9f4b63f58aec79f3043752a9ba7810347c6ae0d903531591cc2d5f01 standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b @@ -514,6 +851,10 @@ CHECKSUMS thor (1.5.0) sha256=e3a9e55fe857e44859ce104a84675ab6e8cd59c650a49106a05f55f136425e73 timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 + token-resolver (2.0.5) sha256=b852f924287ffb58a440856e862b056c8ad97e74b4b2526cee43e0771f40c25c + toml (0.3.0) sha256=0a91d0f76a9036e84e44f95693b12f58d358c1df3ac8e3b5271f2056ecc6e4b9 + toml-merge (7.1.0) + toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-aarch64-linux) sha256=55ffc7c87868cb45658338363d9eba51b4a8b0259aa88e4de368d2bd1d52fea4 tree_sitter_language_pack (1.13.3-arm64-darwin) sha256=bc2498db605f212a1dbd2465ed3f65190d7da786f6ed5d30fcf958121aeb4a5c @@ -521,10 +862,12 @@ CHECKSUMS tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 + typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 + yaml-merge (7.1.0) yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd @@ -532,6 +875,7 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 + zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH diff --git a/gems/go-merge/Gemfile.lock b/gems/go-merge/Gemfile.lock index a833fbf96..2b2d6875f 100644 --- a/gems/go-merge/Gemfile.lock +++ b/gems/go-merge/Gemfile.lock @@ -7,7 +7,39 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/ast-merge + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly + specs: + ast-crispr-markdown-markly (7.1.0) + ast-crispr (= 7.1.0) + markly-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism + specs: + ast-crispr-ruby-prism (7.1.0) + ast-crispr (= 7.1.0) + prism-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr + specs: + ast-crispr (7.1.0) + ast-merge (= 7.1.0) + service_actor (~> 3.9) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git + specs: + ast-merge-git (7.1.0) + ast-merge (= 7.1.0) + json-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge specs: ast-merge (7.1.0) benchmark @@ -16,7 +48,193 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/tree_haver + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template + specs: + ast-template (7.1.0) + ast-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge + specs: + bash-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge + specs: + binary-merge (7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge + specs: + citrus-toml-merge (7.1.0) + toml-merge (= 7.1.0) + toml-rb (~> 4.1) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge + specs: + commonmarker-merge (7.1.0) + commonmarker (~> 2.2) + markdown-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge + specs: + dotenv-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge + specs: + json-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem + specs: + kettle-jem (7.1.0) + addressable (>= 2.8, < 3) + ast-crispr-markdown-markly (= 7.1.0) + ast-crispr-ruby-prism (= 7.1.0) + ast-merge (= 7.1.0) + bash-merge (= 7.1.0) + citrus-toml-merge (= 7.1.0) + commonmarker-merge (= 7.1.0) + dotenv-merge (= 7.1.0) + json-merge (= 7.1.0) + kettle-dev (~> 2.3, >= 2.3.5) + kettle-rb (~> 0.1, >= 0.1.4) + kramdown-merge (= 7.1.0) + markdown-merge (= 7.1.0) + markly-merge (= 7.1.0) + prism-merge (= 7.1.0) + psych-merge (= 7.1.0) + rbs (>= 3.10) + rbs-merge (= 7.1.0) + ruby-merge (= 7.1.0) + token-resolver (~> 2.0, >= 2.0.4) + toml-merge (= 7.1.0) + toml-rb (~> 4.2) + tree_haver (= 7.1.0) + yaml-merge (= 7.1.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge + specs: + kramdown-merge (7.1.0) + kramdown (~> 2.5) + markdown-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge + specs: + markdown-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge + specs: + markly-merge (7.1.0) + markdown-merge (= 7.1.0) + markly (~> 0.9) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge + specs: + parslet-toml-merge (7.1.0) + toml (~> 0.3) + toml-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge + specs: + plain-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge + specs: + prism-merge (7.1.0) + prism (~> 1.6) + ruby-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge + specs: + psych-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + yaml-merge (= 7.1.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge + specs: + rbs-merge (7.1.0) + ast-merge (= 7.1.0) + rbs (>= 3.10) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge + specs: + ruby-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge + specs: + rust-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb + specs: + smorg-rb (7.1.0) + ast-merge (= 7.1.0) + ast-merge-git (= 7.1.0) + go-merge (= 7.1.0) + json-merge (= 7.1.0) + kettle-jem (= 7.1.0) + markly-merge (= 7.1.0) + plain-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge + specs: + toml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver specs: tree_haver (7.1.0) citrus (~> 3.0) @@ -24,6 +242,29 @@ PATH tree_sitter_language_pack (>= 1.13.2, < 2.0) version_gem (~> 1.1, >= 1.1.9) +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge + specs: + typescript-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge + specs: + yaml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge + specs: + zip-merge (7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + GEM remote: https://gem.coop/ specs: @@ -48,6 +289,11 @@ GEM cgi (0.5.2) citrus (3.0.2) cmdparse (3.0.7) + commonmarker (2.9.0-aarch64-linux) + commonmarker (2.9.0-aarch64-linux-musl) + commonmarker (2.9.0-arm64-darwin) + commonmarker (2.9.0-x86_64-linux) + commonmarker (2.9.0-x86_64-linux-musl) concurrent-ruby (1.3.8) date (3.5.1) debug (1.11.1) @@ -110,6 +356,8 @@ GEM kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) + kettle-drift (1.0.6) + version_gem (~> 1.1, >= 1.1.14) kettle-rb (0.1.5) kettle-soup-cover (3.0.4) kettle-wash (~> 0.1, >= 0.1.0) @@ -138,6 +386,7 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) + markly (0.16.0) mutex_m (0.3.0) nokogiri (1.19.4-aarch64-linux-gnu) racc (~> 1.4) @@ -300,6 +549,8 @@ GEM ruby-progressbar (1.13.0) ruby_engine (2.0.3) ruby_version (1.0.3) + service_actor (3.9.4) + zeitwerk (>= 1.0) silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) @@ -354,6 +605,11 @@ GEM token-resolver (2.0.5) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.14) + toml (0.3.0) + parslet (>= 1.8.0, < 3.0.0) + toml-rb (4.2.0) + citrus (~> 3.0, > 3.0) + racc (~> 1.7) tree_sitter_language_pack (1.13.3-aarch64-linux) sorbet-runtime (~> 0.5) tree_sitter_language_pack (1.13.3-arm64-darwin) @@ -408,25 +664,46 @@ DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) appraisal2-rubocop (~> 1.0, >= 1.0.0) + ast-crispr! + ast-crispr-markdown-markly! + ast-crispr-ruby-prism! ast-merge! + ast-merge-git! + ast-template! + bash-merge! benchmark (~> 0.5, >= 0.5.0) + binary-merge! bundler-audit (~> 0.9.3) cgi (~> 0.5) + citrus-toml-merge! + commonmarker-merge! debug (>= 1.1) + dotenv-merge! erb (~> 6.0, >= 6.0.6) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.0) go-merge! irb (~> 1.17) + json-merge! kettle-dev (~> 2.0, >= 2.2.25) + kettle-drift (~> 1.0, >= 1.0.6) + kettle-jem! kettle-soup-cover (~> 3.0, >= 3.0.3) kettle-test (~> 2.0, >= 2.0.9) kramdown (~> 2.5, >= 2.5.2) + kramdown-merge! kramdown-parser-gfm (~> 1.1) + markdown-merge! + markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) + parslet-toml-merge! + plain-merge! + prism-merge! + psych-merge! rake (~> 13.0) rbs (>= 3.0) + rbs-merge! rdoc (~> 6.11) reek (~> 6.5, >= 6.5.0) require_bench (~> 1.0, >= 1.0.4) @@ -437,20 +714,27 @@ DEPENDENCIES rubocop-on-rbs (~> 2.0, >= 2.0.0) rubocop-packaging (~> 0.6, >= 0.6.0) rubocop-ruby3_2 (~> 3.0, >= 3.0.6) + ruby-merge! ruby-progressbar (~> 1.13) + rust-merge! + smorg-rb! standard (~> 1.56, >= 1.56.0) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) + toml-merge! tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) + typescript-merge! webrick (~> 1.9) yaml-converter (~> 0.2, >= 0.2.3) + yaml-merge! yard (~> 0.9, >= 0.9.45) yard-fence (~> 0.9, >= 0.9.6) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) yard-timekeeper (~> 0.2, >= 0.2.4) yard-yaml (~> 0.2, >= 0.2.3) + zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af @@ -458,20 +742,35 @@ CHECKSUMS appraisal2 (3.2.0) sha256=ccd0b767ac4060cd7af6d16747459b6990f49c39c7b4fb1f7d1146b1e97c492f appraisal2-rubocop (1.0.0) sha256=b71410fbb014befda5340605a605b7f6f3f012739baf0acc5b4351b592c3258d ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 + ast-crispr (7.1.0) + ast-crispr-markdown-markly (7.1.0) + ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) + ast-merge-git (7.1.0) + ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 + bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd + binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 + citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 + commonmarker (2.9.0-aarch64-linux) sha256=e2b4aadb9a2cfa4e206582641ce3a49465549ac1ed4c289fdd63b78d8f24579c + commonmarker (2.9.0-aarch64-linux-musl) sha256=1cf4d2821f2a7e64945f1ed7c4eeced586fdb27ea7fe7337788802cf8f57cfca + commonmarker (2.9.0-arm64-darwin) sha256=1748dbfa4f5813b0d2a14bb4bbfa65a4ec293aa1c825016d60029ee0e132b046 + commonmarker (2.9.0-x86_64-linux) sha256=8cfe92970eef585a19ddf6613224b91cab64d6029834661bda801f877c9c7f43 + commonmarker (2.9.0-x86_64-linux-musl) sha256=293921398b839f79ceaf55010e061357e34f053822c3b003cd0be6686176335e + commonmarker-merge (7.1.0) concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 + dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -489,16 +788,23 @@ CHECKSUMS io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 + json-merge (7.1.0) kettle-dev (2.3.8) sha256=9d716ff21c660a730cb4e8d41e2e2f0630a28167a354b6e2924e242102aef72c + kettle-drift (1.0.6) sha256=46eda08fa4411d1f3c6682a95eef1c9df4e94611b3949f49d4c7b43c0ed356a3 + kettle-jem (7.1.0) kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f kettle-soup-cover (3.0.4) kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa + kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 + markdown-merge (7.1.0) + markly (0.16.0) sha256=6f70d79e385b1efc9e171f74c81628826259039fe6c778e03c3924c71dac5511 + markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-aarch64-linux-gnu) sha256=1269fb644a6de405057a53dd5c762b1209b43ca7424f839454d3dbc677c31a8f nokogiri (1.19.4-aarch64-linux-musl) sha256=35c65b9ce72b3bb03207bdbe7067915019dc18c1b9b59139684bd6690fdd01af @@ -512,15 +818,20 @@ CHECKSUMS parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 + parslet-toml-merge (7.1.0) + plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 + prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 + psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 + rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb @@ -555,15 +866,19 @@ CHECKSUMS rubocop-rspec_rails (2.32.0) sha256=4a0d641c72f6ebb957534f539d9d0a62c47abd8ce0d0aeee1ef4701e892a9100 rubocop-ruby3_2 (3.0.7) sha256=f53dd6d286fb05186214fc6ec116783e7f837030918e8931c05de773e98f8466 rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 + ruby-merge (7.1.0) ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 + rust-merge (7.1.0) + service_actor (3.9.4) sha256=e63b523630b9a7e62959b2a90113b08d2565b5de9c148557b281ef847c9539ce silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed + smorg-rb (7.1.0) sorbet-runtime (0.6.13347) sha256=54e7221d9f4b63f58aec79f3043752a9ba7810347c6ae0d903531591cc2d5f01 standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b @@ -578,17 +893,22 @@ CHECKSUMS timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.5) sha256=b852f924287ffb58a440856e862b056c8ad97e74b4b2526cee43e0771f40c25c + toml (0.3.0) sha256=0a91d0f76a9036e84e44f95693b12f58d358c1df3ac8e3b5271f2056ecc6e4b9 + toml-merge (7.1.0) + toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-aarch64-linux) sha256=55ffc7c87868cb45658338363d9eba51b4a8b0259aa88e4de368d2bd1d52fea4 tree_sitter_language_pack (1.13.3-arm64-darwin) sha256=bc2498db605f212a1dbd2465ed3f65190d7da786f6ed5d30fcf958121aeb4a5c tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 + typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 webrick (1.9.2) sha256=beb4a15fc474defed24a3bda4ffd88a490d517c9e4e6118c3edce59e45864131 yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 + yaml-merge (7.1.0) yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd @@ -596,6 +916,7 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 + zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH diff --git a/gems/rust-merge/.rubocop_gradual.lock b/gems/rust-merge/.rubocop_gradual.lock index 901628f74..601bbb4d8 100644 --- a/gems/rust-merge/.rubocop_gradual.lock +++ b/gems/rust-merge/.rubocop_gradual.lock @@ -15,13 +15,20 @@ [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] ], + "gemfiles/modular/cgi/r4/v0.5.gemfile:367169322": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/cgi/vHEAD.gemfile:2729540777": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], "gemfiles/modular/erb/r2/v3.0.gemfile:1688285565": [ [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] ], - "gemfiles/modular/erb/r3/v5.0.gemfile:2150258305": [ + "gemfiles/modular/erb/r3/v5.0.gemfile:2394062339": [ [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] ], - "gemfiles/modular/erb/r4/v5.0.gemfile:2150258305": [ + "gemfiles/modular/erb/r4/v5.0.gemfile:2394062339": [ [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] ], "gemfiles/modular/erb/vHEAD.gemfile:981929959": [ @@ -57,6 +64,13 @@ [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] ], + "gemfiles/modular/webrick/r4/v1.9.gemfile:3092661193": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/webrick/vHEAD.gemfile:3867684682": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], "gemfiles/modular/x_std_libs.gemfile:2324400122": [ [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] ], @@ -66,27 +80,27 @@ "gemfiles/modular/x_std_libs/r3/libs.gemfile:4030570297": [ [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] ], - "gemfiles/modular/x_std_libs/r4/libs.gemfile:909736663": [ + "gemfiles/modular/x_std_libs/r4/libs.gemfile:732451732": [ [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] ], - "gemfiles/modular/x_std_libs/vHEAD.gemfile:907917303": [ + "gemfiles/modular/x_std_libs/vHEAD.gemfile:2390363993": [ [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] ], "lib/rust-merge.rb:3264986437": [ [1, 1, 0, "Naming/FileName: The name of this source file (`rust-merge.rb`) should use snake_case.", 5381] ], - "lib/rust/merge.rb:4179218653": [ + "lib/rust/merge.rb:3533487329": [ [10, 3, 12, "Style/Documentation: Missing top-level documentation comment for `module Rust::Merge`.", 2866359175], - [10, 3, 7083, "Metrics/ModuleLength: Module has too many lines. [169/100]", 3787459528], - [68, 121, 22, "Layout/LineLength: Line is too long. [142/120]", 1494061343], - [75, 5, 1405, "Metrics/AbcSize: Assignment Branch Condition size for `merge_rust` is too high. [<13, 32, 11> 36.25/17]", 3235979822], - [75, 5, 1405, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `merge_rust` is too high. [11/7]", 3235979822], - [75, 5, 1405, "Metrics/MethodLength: Method has too many lines. [22/10]", 3235979822], - [75, 5, 1405, "Metrics/PerceivedComplexity: Perceived complexity for `merge_rust` is too high. [11/8]", 3235979822], - [94, 34, 7, "Style/MultilineBlockChain: Avoid multi-line chains of blocks.", 4045560504], - [102, 5, 1442, "Metrics/AbcSize: Assignment Branch Condition size for `analyze_rust_module` is too high. [<8, 19, 5> 21.21/17]", 1212922264], - [102, 5, 1442, "Metrics/MethodLength: Method has too many lines. [41/10]", 1212922264] + [10, 3, 8200, "Metrics/ModuleLength: Module has too many lines. [191/100]", 3069366590], + [75, 121, 22, "Layout/LineLength: Line is too long. [142/120]", 1494061343], + [103, 5, 1405, "Metrics/AbcSize: Assignment Branch Condition size for `merge_rust` is too high. [<13, 32, 11> 36.25/17]", 3235979822], + [103, 5, 1405, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `merge_rust` is too high. [11/7]", 3235979822], + [103, 5, 1405, "Metrics/MethodLength: Method has too many lines. [22/10]", 3235979822], + [103, 5, 1405, "Metrics/PerceivedComplexity: Perceived complexity for `merge_rust` is too high. [11/8]", 3235979822], + [122, 34, 7, "Style/MultilineBlockChain: Avoid multi-line chains of blocks.", 4045560504], + [130, 5, 1470, "Metrics/AbcSize: Assignment Branch Condition size for `analyze_rust_module` is too high. [<8, 19, 5> 21.21/17]", 1652164001], + [130, 5, 1470, "Metrics/MethodLength: Method has too many lines. [41/10]", 1652164001] ], "rust-merge.gemspec:2965445534": [ [128, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 2821357214], @@ -94,8 +108,8 @@ [144, 121, 29, "Layout/LineLength: Line is too long. [149/120]", 981994949], [151, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 4229808912] ], - "spec/fixtures_integration_spec.rb:1865148926": [ - [3, 1, 4160, "Metrics/BlockLength: Block has too many lines. [59/25]", 2367003442], + "spec/fixtures_integration_spec.rb:1615394291": [ + [3, 1, 4667, "Metrics/BlockLength: Block has too many lines. [69/25]", 2367003442], [8, 3, 3901, "Metrics/BlockLength: Block has too many lines. [54/25]", 906300658] ] } diff --git a/gems/rust-merge/Gemfile b/gems/rust-merge/Gemfile index bb9103ba9..0f23f9752 100644 --- a/gems/rust-merge/Gemfile +++ b/gems/rust-merge/Gemfile @@ -6,7 +6,7 @@ # kettle-jem will then preserve content between those markers across template runs. # kettle-jem:unfreeze -source "https://gem.coop" +source 'https://gem.coop' git_source(:codeberg) { |repo_name| "https://codeberg.org/#{repo_name}" } git_source(:gitlab) { |repo_name| "https://gitlab.com/#{repo_name}" } @@ -19,58 +19,54 @@ git_source(:gitlab) { |repo_name| "https://gitlab.com/#{repo_name}" } gemspec # Local workspace dependency wiring for *_local.gemfile overrides -nomono_requirements = ["~> 1.0", ">= 1.0.8"] -gem "nomono", *nomono_requirements, require: false # ruby >= 2.2 +nomono_requirements = ['~> 1.0', '>= 1.0.8'] +gem 'nomono', *nomono_requirements, require: false # ruby >= 2.2 # Direct sibling dependencies (env-switched via STRUCTUREDMERGE_DEV) direct_sibling_gems = %w[ ast-merge tree_haver ] -direct_sibling_dev = ENV.fetch("STRUCTUREDMERGE_DEV", "") +direct_sibling_dev = ENV.fetch('STRUCTUREDMERGE_DEV', '') direct_sibling_local = !direct_sibling_dev.empty? && !%w[false 0 no off].include?(direct_sibling_dev.downcase) -direct_sibling_templating = ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? +direct_sibling_templating = ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero?) - direct_sibling_dev_was_set = ENV.key?("STRUCTUREDMERGE_DEV") - direct_sibling_dev_original = ENV.fetch("STRUCTUREDMERGE_DEV", nil) + (direct_sibling_local || + ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) + direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') + direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) begin nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path("Gemfile.lock", __dir__) + nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == "nomono" } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - if nomono_locked - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] - end - end - Kernel.send(:gem, "nomono", *nomono_activation_requirements) - require "nomono/bundler" - if direct_sibling_templating && !direct_sibling_local - ENV["STRUCTUREDMERGE_DEV"] = File.expand_path("..", __dir__) + Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked end + Kernel.send(:gem, 'nomono', *nomono_activation_requirements) + require 'nomono/bundler' + ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local eval_nomono_gems( gems: direct_sibling_gems, - prefix: "STRUCTUREDMERGE", - path_env: "STRUCTUREDMERGE_DEV", - root: ["src", "my", "structuredmerge"] + prefix: 'STRUCTUREDMERGE', + path_env: 'STRUCTUREDMERGE_DEV', + root: %w[src my structuredmerge] ) rescue LoadError - warn "Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies." + warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' ensure if direct_sibling_templating && !direct_sibling_local if direct_sibling_dev_was_set - ENV["STRUCTUREDMERGE_DEV"] = direct_sibling_dev_original + ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original else - ENV.delete("STRUCTUREDMERGE_DEV") + ENV.delete('STRUCTUREDMERGE_DEV') end end end @@ -117,28 +113,28 @@ if direct_sibling_gems.any? && end # Use released TSLP with the Ruby ABI platform-gem fix. -gem "tree_sitter_language_pack", "~> 1.13", ">= 1.13.3" +gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' # Templating (env-switched: STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local paths) -eval_gemfile "gemfiles/modular/templating.gemfile" if ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? +eval_gemfile 'gemfiles/modular/templating.gemfile' if ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? # Debugging -eval_gemfile "gemfiles/modular/debug.gemfile" +eval_gemfile 'gemfiles/modular/debug.gemfile' # Code Coverage (env-switched: KETTLE_DEV_DEV=true for local paths) -eval_gemfile "gemfiles/modular/coverage.gemfile" +eval_gemfile 'gemfiles/modular/coverage.gemfile' # Linting -eval_gemfile "gemfiles/modular/style.gemfile" +eval_gemfile 'gemfiles/modular/style.gemfile' # Documentation -eval_gemfile "gemfiles/modular/documentation.gemfile" +eval_gemfile 'gemfiles/modular/documentation.gemfile' # Optional -eval_gemfile "gemfiles/modular/optional.gemfile" +eval_gemfile 'gemfiles/modular/optional.gemfile' ### Std Lib Extracted Gems -eval_gemfile "gemfiles/modular/x_std_libs.gemfile" +eval_gemfile 'gemfiles/modular/x_std_libs.gemfile' # See unlocked_deps appraisal for more details on irb inclusion -gem "irb", "~> 1.17" # ruby >= 2.7 +gem 'irb', '~> 1.17' # ruby >= 2.7 diff --git a/gems/rust-merge/Gemfile.lock b/gems/rust-merge/Gemfile.lock index b75f001a3..b8cfee752 100644 --- a/gems/rust-merge/Gemfile.lock +++ b/gems/rust-merge/Gemfile.lock @@ -7,7 +7,7 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/ast-merge specs: ast-merge (7.1.0) benchmark @@ -16,7 +16,7 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/tree_haver specs: tree_haver (7.1.0) citrus (~> 3.0) @@ -48,7 +48,7 @@ GEM cgi (0.5.2) citrus (3.0.2) cmdparse (3.0.7) - concurrent-ruby (1.3.7) + concurrent-ruby (1.3.8) date (3.5.1) debug (1.11.1) irb (~> 1.10) @@ -105,12 +105,12 @@ GEM rdoc (>= 4.0.0) reline (>= 0.4.2) json (2.21.1) - kettle-dev (2.3.7) + kettle-dev (2.3.8) emoji_regex (>= 15.0) kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) - kettle-rb (0.1.4) + kettle-rb (0.1.5) kettle-soup-cover (3.0.4) kettle-wash (~> 0.1, >= 0.1.0) simplecov (>= 1.0) @@ -118,7 +118,7 @@ GEM simplecov-console (~> 0.9, >= 0.9.5) simplecov-rcov (~> 0.3, >= 0.3.7) simplecov_lcov_formatter (~> 0.9, >= 0.9.0) - kettle-test (2.0.11) + kettle-test (2.0.12) appraisal2 (~> 3.0, >= 3.0.6) backports (~> 3.0) rspec (~> 3.0) @@ -351,9 +351,9 @@ GEM delegate (~> 0.1) rspec (~> 3.0) timecop (>= 0.7, < 1) - token-resolver (2.0.4) + token-resolver (2.0.5) parslet (~> 2.0) - version_gem (~> 1.1, >= 1.1.13) + version_gem (~> 1.1, >= 1.1.14) tree_sitter_language_pack (1.13.3-aarch64-linux) sorbet-runtime (~> 0.5) tree_sitter_language_pack (1.13.3-arm64-darwin) @@ -466,7 +466,7 @@ CHECKSUMS cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 - concurrent-ruby (1.3.7) sha256=4412caec3a5ea2e5fdc52076724c071a81f2c0593d83b2ac8cbb8ca63b3151b0 + concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 @@ -488,10 +488,10 @@ CHECKSUMS io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 - kettle-dev (2.3.7) sha256=eb370113cd030d03cbe2d33b31c99858951017e5ad21a17e9ed89dc3770028ee - kettle-rb (0.1.4) sha256=9cef7ce4f7021666b7222292f29051e51eaf042e8a5db11f3f4dd72f74243fc1 + kettle-dev (2.3.8) sha256=9d716ff21c660a730cb4e8d41e2e2f0630a28167a354b6e2924e242102aef72c + kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f kettle-soup-cover (3.0.4) - kettle-test (2.0.11) sha256=c710c90f7ab79d51f9452f0c09f5f90657e7a893f63583855c164d0b1b107ab2 + kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 @@ -577,7 +577,7 @@ CHECKSUMS thor (1.5.0) sha256=e3a9e55fe857e44859ce104a84675ab6e8cd59c650a49106a05f55f136425e73 timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 - token-resolver (2.0.4) sha256=33b926958f504525bba3ed511ab66fbcbf8ef30390815e931436b30f27ffcad0 + token-resolver (2.0.5) sha256=b852f924287ffb58a440856e862b056c8ad97e74b4b2526cee43e0771f40c25c tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-aarch64-linux) sha256=55ffc7c87868cb45658338363d9eba51b4a8b0259aa88e4de368d2bd1d52fea4 tree_sitter_language_pack (1.13.3-arm64-darwin) sha256=bc2498db605f212a1dbd2465ed3f65190d7da786f6ed5d30fcf958121aeb4a5c diff --git a/gems/rust-merge/Rakefile b/gems/rust-merge/Rakefile index 0d02f3ef0..08bf2fd67 100644 --- a/gems/rust-merge/Rakefile +++ b/gems/rust-merge/Rakefile @@ -130,23 +130,23 @@ end ### DUPLICATE DRIFT TASKS begin - require "kettle/drift" + require 'kettle/drift' Kettle::Drift.install_tasks rescue LoadError - desc("(stub) kettle:drift:check is unavailable") - task("kettle:drift:check") do + desc('(stub) kettle:drift:check is unavailable') + task('kettle:drift:check') do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc("(stub) kettle:drift:update is unavailable") - task("kettle:drift:update") do + desc('(stub) kettle:drift:update is unavailable') + task('kettle:drift:update') do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc("(stub) kettle:drift:force_update is unavailable") - task("kettle:drift:force_update") do + desc('(stub) kettle:drift:force_update is unavailable') + task('kettle:drift:force_update') do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc("(stub) kettle:drift is unavailable") - task("kettle:drift" => "kettle:drift:update") + desc('(stub) kettle:drift is unavailable') + task('kettle:drift' => 'kettle:drift:update') end ### TEMPLATING TASKS diff --git a/gems/rust-merge/bin/yard b/gems/rust-merge/bin/yard index a7e8b6eed..5d516ad6f 100755 --- a/gems/rust-merge/bin/yard +++ b/gems/rust-merge/bin/yard @@ -12,4 +12,4 @@ # `yard` / `bin/yard`. Keep this binstub as a handoff to the task so # humans and tools that reach for `bin/yard` still run the full docs # workflow with post-processing hooks. -exec("bundle", "exec", "rake", "yard") +exec('bundle', 'exec', 'rake', 'yard') diff --git a/gems/rust-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile b/gems/rust-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile index dec650815..b8392fab0 100644 --- a/gems/rust-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile +++ b/gems/rust-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.1 -gem "benchmark", "~> 0.5", ">= 0.5.0" # Removed from Std Lib in Ruby 4.0 +gem 'benchmark', '~> 0.5', '>= 0.5.0' # Removed from Std Lib in Ruby 4.0 diff --git a/gems/rust-merge/gemfiles/modular/benchmark/vHEAD.gemfile b/gems/rust-merge/gemfiles/modular/benchmark/vHEAD.gemfile index e1eb20c5e..af214aafa 100644 --- a/gems/rust-merge/gemfiles/modular/benchmark/vHEAD.gemfile +++ b/gems/rust-merge/gemfiles/modular/benchmark/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.1 -gem "benchmark", github: "ruby/benchmark", branch: "master" +gem 'benchmark', github: 'ruby/benchmark', branch: 'master' diff --git a/gems/rust-merge/gemfiles/modular/cgi/r4/v0.5.gemfile b/gems/rust-merge/gemfiles/modular/cgi/r4/v0.5.gemfile index 19ed967c3..17ad97260 100644 --- a/gems/rust-merge/gemfiles/modular/cgi/r4/v0.5.gemfile +++ b/gems/rust-merge/gemfiles/modular/cgi/r4/v0.5.gemfile @@ -1 +1 @@ -gem "cgi", "~> 0.5" +gem 'cgi', '~> 0.5' diff --git a/gems/rust-merge/gemfiles/modular/cgi/vHEAD.gemfile b/gems/rust-merge/gemfiles/modular/cgi/vHEAD.gemfile index ef8b816ce..650fbf033 100644 --- a/gems/rust-merge/gemfiles/modular/cgi/vHEAD.gemfile +++ b/gems/rust-merge/gemfiles/modular/cgi/vHEAD.gemfile @@ -1 +1 @@ -gem "cgi", ">= 0.5" +gem 'cgi', '>= 0.5' diff --git a/gems/rust-merge/gemfiles/modular/coverage.gemfile b/gems/rust-merge/gemfiles/modular/coverage.gemfile index 52d737872..b93014b6b 100644 --- a/gems/rust-merge/gemfiles/modular/coverage.gemfile +++ b/gems/rust-merge/gemfiles/modular/coverage.gemfile @@ -4,11 +4,11 @@ # Set KETTLE_DEV_DEV=true for local development with path-based dependencies. # When false (default / CI), remote released gems are used. -if ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false").zero? +if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? # Coverage (remote/released) platform :mri do - gem "kettle-soup-cover", "~> 3.0", ">= 3.0.3", require: false + gem 'kettle-soup-cover', '~> 3.0', '>= 3.0.3', require: false end else - eval_gemfile "coverage_local.gemfile" + eval_gemfile 'coverage_local.gemfile' end diff --git a/gems/rust-merge/gemfiles/modular/coverage_local.gemfile b/gems/rust-merge/gemfiles/modular/coverage_local.gemfile index 3ec683a62..fb6e4df29 100644 --- a/gems/rust-merge/gemfiles/modular/coverage_local.gemfile +++ b/gems/rust-merge/gemfiles/modular/coverage_local.gemfile @@ -11,21 +11,19 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] -nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) +nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] +nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == "nomono" } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - if nomono_locked - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] - end + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked end -Kernel.send(:gem, "nomono", *nomono_activation_requirements) -require "nomono/bundler" +Kernel.send(:gem, 'nomono', *nomono_activation_requirements) +require 'nomono/bundler' local_gems = %w[kettle-dev kettle-test kettle-soup-cover kettle-drift] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) @@ -35,21 +33,21 @@ local_gems_to_eval = local_gems - %w[rust-merge] - declared_gems platform :mri do eval_nomono_gems( gems: local_gems_to_eval, - prefix: "KETTLE_DEV", - path_env: "KETTLE_DEV_DEV", - vendored_gems_env: "VENDORED_GEMS", - vendor_gem_dir_env: "VENDOR_GEM_DIR", - debug_env: "KETTLE_DEV_DEBUG" + prefix: 'KETTLE_DEV', + path_env: 'KETTLE_DEV_DEV', + vendored_gems_env: 'VENDORED_GEMS', + vendor_gem_dir_env: 'VENDOR_GEM_DIR', + debug_env: 'KETTLE_DEV_DEBUG' ) - if ENV.fetch("GALTZO_FLOSS_DEV", "false").casecmp("false") != 0 + if ENV.fetch('GALTZO_FLOSS_DEV', 'false').casecmp('false') != 0 eval_nomono_gems( gems: %w[turbo_tests2], - prefix: "GALTZO_FLOSS", - path_env: "GALTZO_FLOSS_DEV", - vendored_gems_env: "GALTZO_FLOSS_VENDORED_GEMS", - vendor_gem_dir_env: "GALTZO_FLOSS_VENDOR_GEM_DIR", - debug_env: "GALTZO_FLOSS_DEBUG" + prefix: 'GALTZO_FLOSS', + path_env: 'GALTZO_FLOSS_DEV', + vendored_gems_env: 'GALTZO_FLOSS_VENDORED_GEMS', + vendor_gem_dir_env: 'GALTZO_FLOSS_VENDOR_GEM_DIR', + debug_env: 'GALTZO_FLOSS_DEBUG' ) end end diff --git a/gems/rust-merge/gemfiles/modular/debug.gemfile b/gems/rust-merge/gemfiles/modular/debug.gemfile index 4e15b1a3a..eed8d4d1e 100644 --- a/gems/rust-merge/gemfiles/modular/debug.gemfile +++ b/gems/rust-merge/gemfiles/modular/debug.gemfile @@ -13,10 +13,10 @@ platform :mri do # Debugging - Ensure ENV["DEBUG"] == "true" to use debuggers within spec suite # Use binding.break, binding.b, or debugger in code - gem "debug", ">= 1.1" # ruby >= 2.7 + gem 'debug', '>= 1.1' # ruby >= 2.7 # Dev Console - Binding.pry - Irb replacement # gem "pry", "~> 0.14" # ruby >= 2.0 end -gem "gem_bench", "~> 2.0", ">= 2.0.5" +gem 'gem_bench', '~> 2.0', '>= 2.0.5' diff --git a/gems/rust-merge/gemfiles/modular/documentation.gemfile b/gems/rust-merge/gemfiles/modular/documentation.gemfile index d8215416e..9d4535f12 100644 --- a/gems/rust-merge/gemfiles/modular/documentation.gemfile +++ b/gems/rust-merge/gemfiles/modular/documentation.gemfile @@ -7,20 +7,20 @@ # # Documentation -gem "kramdown", "~> 2.5", ">= 2.5.2", require: false # Ruby >= 2.5 -gem "kramdown-parser-gfm", "~> 1.1", require: false # Ruby >= 2.3 -gem "yaml-converter", "~> 0.2", ">= 0.2.3", require: false # Ruby >= 3.2 -gem "yard", "~> 0.9", ">= 0.9.45", require: false -gem "yard-junk", "~> 0.1", ">= 0.1.0", require: false # Ruby >= 3.1 -gem "yard-relative_markdown_links", "~> 0.6", require: false +gem 'kramdown', '~> 2.5', '>= 2.5.2', require: false # Ruby >= 2.5 +gem 'kramdown-parser-gfm', '~> 1.1', require: false # Ruby >= 2.3 +gem 'yaml-converter', '~> 0.2', '>= 0.2.3', require: false # Ruby >= 3.2 +gem 'yard', '~> 0.9', '>= 0.9.45', require: false +gem 'yard-junk', '~> 0.1', '>= 0.1.0', require: false # Ruby >= 3.1 +gem 'yard-relative_markdown_links', '~> 0.6', require: false -if ENV.fetch("GALTZO_FLOSS_DEV", "false").casecmp("false").zero? - gem "yard-fence", "~> 0.9", ">= 0.9.6", require: false # Ruby >= 3.2 - gem "yard-timekeeper", "~> 0.2", ">= 0.2.4", require: false - gem "yard-yaml", "~> 0.2", ">= 0.2.3", require: false +if ENV.fetch('GALTZO_FLOSS_DEV', 'false').casecmp('false').zero? + gem 'yard-fence', '~> 0.9', '>= 0.9.6', require: false # Ruby >= 3.2 + gem 'yard-timekeeper', '~> 0.2', '>= 0.2.4', require: false + gem 'yard-yaml', '~> 0.2', '>= 0.2.3', require: false else - eval_gemfile "documentation_local.gemfile" + eval_gemfile 'documentation_local.gemfile' end # Std Lib extractions -gem "rdoc", "~> 6.11", require: false unless ENV.fetch("KJ_FRAMEWORK_MATRIX_GEM", "") == "rdoc" +gem 'rdoc', '~> 6.11', require: false unless ENV.fetch('KJ_FRAMEWORK_MATRIX_GEM', '') == 'rdoc' diff --git a/gems/rust-merge/gemfiles/modular/documentation_local.gemfile b/gems/rust-merge/gemfiles/modular/documentation_local.gemfile index 3e7919342..c8755d61e 100644 --- a/gems/rust-merge/gemfiles/modular/documentation_local.gemfile +++ b/gems/rust-merge/gemfiles/modular/documentation_local.gemfile @@ -11,21 +11,19 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] -nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) +nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] +nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == "nomono" } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - if nomono_locked - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] - end + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked end -Kernel.send(:gem, "nomono", *nomono_activation_requirements) -require "nomono/bundler" +Kernel.send(:gem, 'nomono', *nomono_activation_requirements) +require 'nomono/bundler' local_gems = %w[yard-fence yard-timekeeper yard-yaml] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) @@ -34,9 +32,9 @@ local_gems_to_eval = local_gems - %w[rust-merge] - declared_gems # export GALTZO_FLOSS_DEV=/path/to/galtzo-floss eval_nomono_gems( gems: local_gems_to_eval, - prefix: "GALTZO_FLOSS", - path_env: "GALTZO_FLOSS_DEV", - vendored_gems_env: "GALTZO_FLOSS_VENDORED_GEMS", - vendor_gem_dir_env: "GALTZO_FLOSS_VENDOR_GEM_DIR", - debug_env: "GALTZO_FLOSS_DEBUG" + prefix: 'GALTZO_FLOSS', + path_env: 'GALTZO_FLOSS_DEV', + vendored_gems_env: 'GALTZO_FLOSS_VENDORED_GEMS', + vendor_gem_dir_env: 'GALTZO_FLOSS_VENDOR_GEM_DIR', + debug_env: 'GALTZO_FLOSS_DEBUG' ) diff --git a/gems/rust-merge/gemfiles/modular/erb/r2/v3.0.gemfile b/gems/rust-merge/gemfiles/modular/erb/r2/v3.0.gemfile index c03bd8d85..7c83a239b 100644 --- a/gems/rust-merge/gemfiles/modular/erb/r2/v3.0.gemfile +++ b/gems/rust-merge/gemfiles/modular/erb/r2/v3.0.gemfile @@ -1 +1 @@ -gem "erb", "~> 3.0" # ruby >= 2.7.0 +gem 'erb', '~> 3.0' # ruby >= 2.7.0 diff --git a/gems/rust-merge/gemfiles/modular/erb/r3/v5.0.gemfile b/gems/rust-merge/gemfiles/modular/erb/r3/v5.0.gemfile index 1bd029cc1..ec7ff451f 100644 --- a/gems/rust-merge/gemfiles/modular/erb/r3/v5.0.gemfile +++ b/gems/rust-merge/gemfiles/modular/erb/r3/v5.0.gemfile @@ -1 +1 @@ -gem "erb", "~> 6.0", ">= 6.0.6" # ruby >= 3.2.0 +gem 'erb', '~> 6.0', '>= 6.0.6' # ruby >= 3.2.0 diff --git a/gems/rust-merge/gemfiles/modular/erb/r4/v5.0.gemfile b/gems/rust-merge/gemfiles/modular/erb/r4/v5.0.gemfile index 1bd029cc1..ec7ff451f 100644 --- a/gems/rust-merge/gemfiles/modular/erb/r4/v5.0.gemfile +++ b/gems/rust-merge/gemfiles/modular/erb/r4/v5.0.gemfile @@ -1 +1 @@ -gem "erb", "~> 6.0", ">= 6.0.6" # ruby >= 3.2.0 +gem 'erb', '~> 6.0', '>= 6.0.6' # ruby >= 3.2.0 diff --git a/gems/rust-merge/gemfiles/modular/erb/vHEAD.gemfile b/gems/rust-merge/gemfiles/modular/erb/vHEAD.gemfile index 48fee4218..ea0101185 100644 --- a/gems/rust-merge/gemfiles/modular/erb/vHEAD.gemfile +++ b/gems/rust-merge/gemfiles/modular/erb/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 3.2 -gem "erb", github: "ruby/erb", branch: "master" +gem 'erb', github: 'ruby/erb', branch: 'master' diff --git a/gems/rust-merge/gemfiles/modular/json/truffleruby_22_3.gemfile b/gems/rust-merge/gemfiles/modular/json/truffleruby_22_3.gemfile index b0e69ab11..9b2f8d96a 100644 --- a/gems/rust-merge/gemfiles/modular/json/truffleruby_22_3.gemfile +++ b/gems/rust-merge/gemfiles/modular/json/truffleruby_22_3.gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -if RUBY_ENGINE == "truffleruby" && RUBY_ENGINE_VERSION.start_with?("22.3") +if RUBY_ENGINE == 'truffleruby' && RUBY_ENGINE_VERSION.start_with?('22.3') # TruffleRuby 22.3 ships the json default gem from its emulated MRI Ruby. - gem "json", "= 2.5.1" + gem 'json', '= 2.5.1' end diff --git a/gems/rust-merge/gemfiles/modular/json/truffleruby_23_0.gemfile b/gems/rust-merge/gemfiles/modular/json/truffleruby_23_0.gemfile index 7b2660a2b..d787a5ef4 100644 --- a/gems/rust-merge/gemfiles/modular/json/truffleruby_23_0.gemfile +++ b/gems/rust-merge/gemfiles/modular/json/truffleruby_23_0.gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -if RUBY_ENGINE == "truffleruby" && RUBY_ENGINE_VERSION.start_with?("23.0") +if RUBY_ENGINE == 'truffleruby' && RUBY_ENGINE_VERSION.start_with?('23.0') # TruffleRuby 23.0 ships the json default gem from its emulated MRI Ruby. - gem "json", "= 2.6.1" + gem 'json', '= 2.6.1' end diff --git a/gems/rust-merge/gemfiles/modular/json/truffleruby_23_1.gemfile b/gems/rust-merge/gemfiles/modular/json/truffleruby_23_1.gemfile index dfa21f2e4..d78486b0e 100644 --- a/gems/rust-merge/gemfiles/modular/json/truffleruby_23_1.gemfile +++ b/gems/rust-merge/gemfiles/modular/json/truffleruby_23_1.gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -if RUBY_ENGINE == "truffleruby" && RUBY_ENGINE_VERSION.start_with?("23.1") +if RUBY_ENGINE == 'truffleruby' && RUBY_ENGINE_VERSION.start_with?('23.1') # TruffleRuby 23.1 ships the json default gem from its emulated MRI Ruby. - gem "json", "= 2.6.3" + gem 'json', '= 2.6.3' end diff --git a/gems/rust-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile b/gems/rust-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile index 42e9d9bd4..e27f1bbae 100644 --- a/gems/rust-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile +++ b/gems/rust-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 -gem "mutex_m", "~> 0.2" +gem 'mutex_m', '~> 0.2' diff --git a/gems/rust-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile b/gems/rust-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile index 42e9d9bd4..e27f1bbae 100644 --- a/gems/rust-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile +++ b/gems/rust-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 -gem "mutex_m", "~> 0.2" +gem 'mutex_m', '~> 0.2' diff --git a/gems/rust-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile b/gems/rust-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile index 42e9d9bd4..e27f1bbae 100644 --- a/gems/rust-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile +++ b/gems/rust-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 -gem "mutex_m", "~> 0.2" +gem 'mutex_m', '~> 0.2' diff --git a/gems/rust-merge/gemfiles/modular/mutex_m/vHEAD.gemfile b/gems/rust-merge/gemfiles/modular/mutex_m/vHEAD.gemfile index 8af3b6fca..9dac2f6cb 100644 --- a/gems/rust-merge/gemfiles/modular/mutex_m/vHEAD.gemfile +++ b/gems/rust-merge/gemfiles/modular/mutex_m/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 (dependency of omniauth) -gem "mutex_m", github: "ruby/mutex_m", branch: "master" +gem 'mutex_m', github: 'ruby/mutex_m', branch: 'master' diff --git a/gems/rust-merge/gemfiles/modular/optional.gemfile b/gems/rust-merge/gemfiles/modular/optional.gemfile index 80bc45196..9ea429538 100644 --- a/gems/rust-merge/gemfiles/modular/optional.gemfile +++ b/gems/rust-merge/gemfiles/modular/optional.gemfile @@ -9,8 +9,8 @@ # Optional dependencies are not depended on directly, but may be used if present. # Required for curated binstubs generated by kettle-jem install -gem "rbs", ">= 3.0", require: false # ruby >= 3.1 +gem 'rbs', '>= 3.0', require: false # ruby >= 3.1 # Required for kettle-pre-release # URL parsing with Unicode support (falls back to URI if not available) -gem "addressable", ">= 2.8", "< 3" # ruby >= 2.2 +gem 'addressable', '>= 2.8', '< 3' # ruby >= 2.2 diff --git a/gems/rust-merge/gemfiles/modular/rspec.gemfile b/gems/rust-merge/gemfiles/modular/rspec.gemfile index 72fdf8b7f..2af210a41 100644 --- a/gems/rust-merge/gemfiles/modular/rspec.gemfile +++ b/gems/rust-merge/gemfiles/modular/rspec.gemfile @@ -1,4 +1,4 @@ -gem "rspec_junit_formatter", - github: "pboling/rspec_junit_formatter", - branch: "main", - ref: "9e6bcaaedd49477b62878ed568dc4ada5cc7cb5e" +gem 'rspec_junit_formatter', + github: 'pboling/rspec_junit_formatter', + branch: 'main', + ref: '9e6bcaaedd49477b62878ed568dc4ada5cc7cb5e' diff --git a/gems/rust-merge/gemfiles/modular/runtime_heads.gemfile b/gems/rust-merge/gemfiles/modular/runtime_heads.gemfile index 02f134c7f..ebf17c529 100644 --- a/gems/rust-merge/gemfiles/modular/runtime_heads.gemfile +++ b/gems/rust-merge/gemfiles/modular/runtime_heads.gemfile @@ -8,4 +8,4 @@ # Test against HEAD of runtime dependencies so we can proactively file bugs -eval_gemfile("x_std_libs/vHEAD.gemfile") +eval_gemfile('x_std_libs/vHEAD.gemfile') diff --git a/gems/rust-merge/gemfiles/modular/stringio/r2/v3.0.gemfile b/gems/rust-merge/gemfiles/modular/stringio/r2/v3.0.gemfile index e85bb18ee..3616f4e3a 100644 --- a/gems/rust-merge/gemfiles/modular/stringio/r2/v3.0.gemfile +++ b/gems/rust-merge/gemfiles/modular/stringio/r2/v3.0.gemfile @@ -2,4 +2,4 @@ # NOT SEMVER # Version 3.0.7 dropped support for Ruby <= 2.7 # Version 3.0.0 dropped support for Ruby <= 2.4 -gem "stringio", ">= 3.0" +gem 'stringio', '>= 3.0' diff --git a/gems/rust-merge/gemfiles/modular/stringio/r3/v3.0.gemfile b/gems/rust-merge/gemfiles/modular/stringio/r3/v3.0.gemfile index e85bb18ee..3616f4e3a 100644 --- a/gems/rust-merge/gemfiles/modular/stringio/r3/v3.0.gemfile +++ b/gems/rust-merge/gemfiles/modular/stringio/r3/v3.0.gemfile @@ -2,4 +2,4 @@ # NOT SEMVER # Version 3.0.7 dropped support for Ruby <= 2.7 # Version 3.0.0 dropped support for Ruby <= 2.4 -gem "stringio", ">= 3.0" +gem 'stringio', '>= 3.0' diff --git a/gems/rust-merge/gemfiles/modular/stringio/r4/v3.0.gemfile b/gems/rust-merge/gemfiles/modular/stringio/r4/v3.0.gemfile index e85bb18ee..3616f4e3a 100644 --- a/gems/rust-merge/gemfiles/modular/stringio/r4/v3.0.gemfile +++ b/gems/rust-merge/gemfiles/modular/stringio/r4/v3.0.gemfile @@ -2,4 +2,4 @@ # NOT SEMVER # Version 3.0.7 dropped support for Ruby <= 2.7 # Version 3.0.0 dropped support for Ruby <= 2.4 -gem "stringio", ">= 3.0" +gem 'stringio', '>= 3.0' diff --git a/gems/rust-merge/gemfiles/modular/stringio/vHEAD.gemfile b/gems/rust-merge/gemfiles/modular/stringio/vHEAD.gemfile index 5f2a74126..78f5f5d8a 100644 --- a/gems/rust-merge/gemfiles/modular/stringio/vHEAD.gemfile +++ b/gems/rust-merge/gemfiles/modular/stringio/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 (dependency of omniauth) -gem "stringio", github: "ruby/stringio", branch: "master" +gem 'stringio', github: 'ruby/stringio', branch: 'master' diff --git a/gems/rust-merge/gemfiles/modular/style.gemfile b/gems/rust-merge/gemfiles/modular/style.gemfile index 35de4dcd6..4dbcc02c0 100644 --- a/gems/rust-merge/gemfiles/modular/style.gemfile +++ b/gems/rust-merge/gemfiles/modular/style.gemfile @@ -9,23 +9,23 @@ # Style tasks run on the latest Ruby; RuboCop-LTS selects the compatibility # rules for the configured Ruby floor independently from task dependency floors. -gem "reek", "~> 6.5", ">= 6.5.0" +gem 'reek', '~> 6.5', '>= 6.5.0' platform :mri do - gem "appraisal2-rubocop", "~> 1.0", ">= 1.0.0", require: false - gem "rubocop-gradual", "~> 0.4", ">= 0.4.0" - gem "rubocop-minitest", "~> 0.40", ">= 0.40.0" - gem "rubocop-on-rbs", "~> 2.0", ">= 2.0.0" # ruby >= 3.2.0 + gem 'appraisal2-rubocop', '~> 1.0', '>= 1.0.0', require: false + gem 'rubocop-gradual', '~> 0.4', '>= 0.4.0' + gem 'rubocop-minitest', '~> 0.40', '>= 0.40.0' + gem 'rubocop-on-rbs', '~> 2.0', '>= 2.0.0' # ruby >= 3.2.0 # gem "rubocop", "~> 1.73", ">= 1.73.2" # constrained by standard - gem "rubocop-packaging", "~> 0.6", ">= 0.6.0" - gem "standard", "~> 1.56", ">= 1.56.0" + gem 'rubocop-packaging', '~> 0.6', '>= 0.6.0' + gem 'standard', '~> 1.56', '>= 1.56.0' - if ENV.fetch("RUBOCOP_LTS_LOCAL", "false").casecmp("false").zero? + if ENV.fetch('RUBOCOP_LTS_LOCAL', 'false').casecmp('false').zero? declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) - gem "rubocop-lts", "~> 24.2", ">= 24.2.1" unless declared_gems.include?("rubocop-lts") - gem "rubocop-lts-rspec", "~> 1.0", ">= 1.0.5" unless declared_gems.include?("rubocop-lts-rspec") - gem "rubocop-ruby3_2", "~> 3.0", ">= 3.0.6" unless declared_gems.include?("rubocop-ruby3_2") + gem 'rubocop-lts', '~> 24.2', '>= 24.2.1' unless declared_gems.include?('rubocop-lts') + gem 'rubocop-lts-rspec', '~> 1.0', '>= 1.0.5' unless declared_gems.include?('rubocop-lts-rspec') + gem 'rubocop-ruby3_2', '~> 3.0', '>= 3.0.6' unless declared_gems.include?('rubocop-ruby3_2') else - eval_gemfile("style_local.gemfile") + eval_gemfile('style_local.gemfile') end end diff --git a/gems/rust-merge/gemfiles/modular/style_local.gemfile b/gems/rust-merge/gemfiles/modular/style_local.gemfile index ebe155ab1..d2c6290ca 100644 --- a/gems/rust-merge/gemfiles/modular/style_local.gemfile +++ b/gems/rust-merge/gemfiles/modular/style_local.gemfile @@ -14,21 +14,19 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] -nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) +nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] +nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == "nomono" } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - if nomono_locked - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] - end + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked end -Kernel.send(:gem, "nomono", *nomono_activation_requirements) -require "nomono/bundler" +Kernel.send(:gem, 'nomono', *nomono_activation_requirements) +require 'nomono/bundler' local_gems = %w[rubocop-lts rubocop-lts-rspec rubocop-ruby3_2 standard-rubocop-lts] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) @@ -38,11 +36,11 @@ local_gems_to_eval = local_gems - %w[rust-merge] - declared_gems platform :mri do eval_nomono_gems( gems: local_gems_to_eval, - prefix: "RUBOCOP_LTS", - path_env: "RUBOCOP_LTS_LOCAL", - vendored_gems_env: "VENDORED_GEMS", - vendor_gem_dir_env: "VENDOR_GEM_DIR", - debug_env: "RUBOCOP_LTS_DEBUG", - root: ["src", "rubocop-lts"] + prefix: 'RUBOCOP_LTS', + path_env: 'RUBOCOP_LTS_LOCAL', + vendored_gems_env: 'VENDORED_GEMS', + vendor_gem_dir_env: 'VENDOR_GEM_DIR', + debug_env: 'RUBOCOP_LTS_DEBUG', + root: %w[src rubocop-lts] ) end diff --git a/gems/rust-merge/gemfiles/modular/templating.gemfile b/gems/rust-merge/gemfiles/modular/templating.gemfile index 47138ffbb..a672de184 100644 --- a/gems/rust-merge/gemfiles/modular/templating.gemfile +++ b/gems/rust-merge/gemfiles/modular/templating.gemfile @@ -1,18 +1,18 @@ # frozen_string_literal: true -structuredmerge_remote = ENV.fetch("STRUCTUREDMERGE_DEV", "false").casecmp("false").zero? -kettle_remote = ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false").zero? +structuredmerge_remote = ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false').zero? +kettle_remote = ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? if structuredmerge_remote # Parser dependencies for released installs. - gem "tree_sitter_language_pack", "~> 1.13", ">= 1.13.3" + gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' # Merge recipes for released installs. - gem "kettle-jem", ">= 7.0" + gem 'kettle-jem', '>= 7.0' end if kettle_remote # Template/plugin checks for released installs. - gem "kettle-drift", "~> 1.0", ">= 1.0.6", require: false + gem 'kettle-drift', '~> 1.0', '>= 1.0.6', require: false end # Set STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local development with path-based dependencies. @@ -21,4 +21,4 @@ end # # Set KETTLE_DEV_DEV=/path/to/my for local development with Kettle plugin gems. # When false (default / CI), released Kettle plugin gems are used. -eval_gemfile "templating_local.gemfile" unless structuredmerge_remote && kettle_remote +eval_gemfile 'templating_local.gemfile' unless structuredmerge_remote && kettle_remote diff --git a/gems/rust-merge/gemfiles/modular/templating_local.gemfile b/gems/rust-merge/gemfiles/modular/templating_local.gemfile index 129aed87b..a56793c0d 100644 --- a/gems/rust-merge/gemfiles/modular/templating_local.gemfile +++ b/gems/rust-merge/gemfiles/modular/templating_local.gemfile @@ -12,21 +12,19 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] -nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) +nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] +nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == "nomono" } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - if nomono_locked - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] - end + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked end -Kernel.send(:gem, "nomono", *nomono_activation_requirements) -require "nomono/bundler" +Kernel.send(:gem, 'nomono', *nomono_activation_requirements) +require 'nomono/bundler' structuredmerge_local_gems = %w[ tree_haver @@ -69,25 +67,25 @@ structuredmerge_local_gems_to_eval = structuredmerge_local_gems - %w[rust-merge] kettle_dev_local_gems_to_eval = kettle_dev_local_gems - %w[rust-merge] - declared_gems platform :mri do - if ENV.fetch("STRUCTUREDMERGE_DEV", "false").casecmp("false") != 0 + if ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false') != 0 eval_nomono_gems( gems: structuredmerge_local_gems_to_eval, - prefix: "STRUCTUREDMERGE", - path_env: "STRUCTUREDMERGE_DEV", - vendored_gems_env: "VENDORED_GEMS", - vendor_gem_dir_env: "VENDOR_GEM_DIR", - debug_env: "STRUCTUREDMERGE_DEBUG" + prefix: 'STRUCTUREDMERGE', + path_env: 'STRUCTUREDMERGE_DEV', + vendored_gems_env: 'VENDORED_GEMS', + vendor_gem_dir_env: 'VENDOR_GEM_DIR', + debug_env: 'STRUCTUREDMERGE_DEBUG' ) end - if ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false") != 0 + if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false') != 0 eval_nomono_gems( gems: kettle_dev_local_gems_to_eval, - prefix: "KETTLE_DEV", - path_env: "KETTLE_DEV_DEV", - vendored_gems_env: "VENDORED_GEMS", - vendor_gem_dir_env: "VENDOR_GEM_DIR", - debug_env: "KETTLE_DEV_DEBUG" + prefix: 'KETTLE_DEV', + path_env: 'KETTLE_DEV_DEV', + vendored_gems_env: 'VENDORED_GEMS', + vendor_gem_dir_env: 'VENDOR_GEM_DIR', + debug_env: 'KETTLE_DEV_DEBUG' ) end end diff --git a/gems/rust-merge/gemfiles/modular/webrick/r4/v1.9.gemfile b/gems/rust-merge/gemfiles/modular/webrick/r4/v1.9.gemfile index eaab4a473..b1329ba84 100644 --- a/gems/rust-merge/gemfiles/modular/webrick/r4/v1.9.gemfile +++ b/gems/rust-merge/gemfiles/modular/webrick/r4/v1.9.gemfile @@ -1 +1 @@ -gem "webrick", "~> 1.9" +gem 'webrick', '~> 1.9' diff --git a/gems/rust-merge/gemfiles/modular/webrick/vHEAD.gemfile b/gems/rust-merge/gemfiles/modular/webrick/vHEAD.gemfile index 8a789b634..c7e6f81a1 100644 --- a/gems/rust-merge/gemfiles/modular/webrick/vHEAD.gemfile +++ b/gems/rust-merge/gemfiles/modular/webrick/vHEAD.gemfile @@ -1 +1 @@ -gem "webrick", ">= 1.9" +gem 'webrick', '>= 1.9' diff --git a/gems/rust-merge/gemfiles/modular/x_std_libs.gemfile b/gems/rust-merge/gemfiles/modular/x_std_libs.gemfile index 77aad43f2..b1f43c097 100644 --- a/gems/rust-merge/gemfiles/modular/x_std_libs.gemfile +++ b/gems/rust-merge/gemfiles/modular/x_std_libs.gemfile @@ -1,12 +1,12 @@ ### Std Lib Extracted Gems ruby_version = Gem::Version.new(RUBY_VERSION) -if ruby_version >= Gem::Version.new("4.0") - eval_gemfile "x_std_libs/r4/libs.gemfile" -elsif ruby_version >= Gem::Version.new("3.2") - eval_gemfile "x_std_libs/r3/libs.gemfile" -elsif ruby_version >= Gem::Version.new("3.1") - eval_gemfile "x_std_libs/r3.1/libs.gemfile" +if ruby_version >= Gem::Version.new('4.0') + eval_gemfile 'x_std_libs/r4/libs.gemfile' +elsif ruby_version >= Gem::Version.new('3.2') + eval_gemfile 'x_std_libs/r3/libs.gemfile' +elsif ruby_version >= Gem::Version.new('3.1') + eval_gemfile 'x_std_libs/r3.1/libs.gemfile' else - eval_gemfile "x_std_libs/r2/libs.gemfile" + eval_gemfile 'x_std_libs/r2/libs.gemfile' end diff --git a/gems/rust-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile b/gems/rust-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile index 441c4f03a..16a5e3d70 100644 --- a/gems/rust-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile +++ b/gems/rust-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile @@ -1,3 +1,3 @@ -eval_gemfile "../../erb/r2/v3.0.gemfile" -eval_gemfile "../../mutex_m/r2/v0.3.gemfile" -eval_gemfile "../../stringio/r2/v3.0.gemfile" +eval_gemfile '../../erb/r2/v3.0.gemfile' +eval_gemfile '../../mutex_m/r2/v0.3.gemfile' +eval_gemfile '../../stringio/r2/v3.0.gemfile' diff --git a/gems/rust-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile b/gems/rust-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile index c293a3ddd..220ff95c1 100644 --- a/gems/rust-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile +++ b/gems/rust-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile @@ -1,3 +1,3 @@ -eval_gemfile "../../erb/r3/v5.0.gemfile" -eval_gemfile "../../mutex_m/r3/v0.3.gemfile" -eval_gemfile "../../stringio/r3/v3.0.gemfile" +eval_gemfile '../../erb/r3/v5.0.gemfile' +eval_gemfile '../../mutex_m/r3/v0.3.gemfile' +eval_gemfile '../../stringio/r3/v3.0.gemfile' diff --git a/gems/rust-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile b/gems/rust-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile index eb5574247..e2f6501eb 100644 --- a/gems/rust-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile +++ b/gems/rust-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile @@ -1,6 +1,6 @@ -eval_gemfile "../../erb/r4/v5.0.gemfile" -eval_gemfile "../../mutex_m/r4/v0.3.gemfile" -eval_gemfile "../../stringio/r4/v3.0.gemfile" -eval_gemfile "../../benchmark/r4/v0.5.gemfile" -eval_gemfile "../../cgi/r4/v0.5.gemfile" -eval_gemfile "../../webrick/r4/v1.9.gemfile" +eval_gemfile '../../erb/r4/v5.0.gemfile' +eval_gemfile '../../mutex_m/r4/v0.3.gemfile' +eval_gemfile '../../stringio/r4/v3.0.gemfile' +eval_gemfile '../../benchmark/r4/v0.5.gemfile' +eval_gemfile '../../cgi/r4/v0.5.gemfile' +eval_gemfile '../../webrick/r4/v1.9.gemfile' diff --git a/gems/rust-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile b/gems/rust-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile index d4d5b16c9..ab75cccf1 100644 --- a/gems/rust-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile +++ b/gems/rust-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile @@ -1,6 +1,6 @@ -eval_gemfile "../erb/vHEAD.gemfile" -eval_gemfile "../mutex_m/vHEAD.gemfile" -eval_gemfile "../stringio/vHEAD.gemfile" -eval_gemfile "../benchmark/vHEAD.gemfile" -eval_gemfile "../cgi/vHEAD.gemfile" -eval_gemfile "../webrick/vHEAD.gemfile" +eval_gemfile '../erb/vHEAD.gemfile' +eval_gemfile '../mutex_m/vHEAD.gemfile' +eval_gemfile '../stringio/vHEAD.gemfile' +eval_gemfile '../benchmark/vHEAD.gemfile' +eval_gemfile '../cgi/vHEAD.gemfile' +eval_gemfile '../webrick/vHEAD.gemfile' diff --git a/gems/rust-merge/lib/rust/merge/version.rb b/gems/rust-merge/lib/rust/merge/version.rb index 4dc09f632..027a1d9e7 100644 --- a/gems/rust-merge/lib/rust/merge/version.rb +++ b/gems/rust-merge/lib/rust/merge/version.rb @@ -3,7 +3,7 @@ module Rust module Merge module Version - VERSION = "7.1.0" + VERSION = '7.1.0' end VERSION = Version::VERSION # Traditional Constant Location end diff --git a/gems/toml-merge/Gemfile.lock b/gems/toml-merge/Gemfile.lock index 2b7731f33..b5e206094 100644 --- a/gems/toml-merge/Gemfile.lock +++ b/gems/toml-merge/Gemfile.lock @@ -7,7 +7,39 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/ast-merge + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly + specs: + ast-crispr-markdown-markly (7.1.0) + ast-crispr (= 7.1.0) + markly-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism + specs: + ast-crispr-ruby-prism (7.1.0) + ast-crispr (= 7.1.0) + prism-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr + specs: + ast-crispr (7.1.0) + ast-merge (= 7.1.0) + service_actor (~> 3.9) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git + specs: + ast-merge-git (7.1.0) + ast-merge (= 7.1.0) + json-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge specs: ast-merge (7.1.0) benchmark @@ -16,7 +48,193 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/tree_haver + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template + specs: + ast-template (7.1.0) + ast-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge + specs: + bash-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge + specs: + binary-merge (7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge + specs: + citrus-toml-merge (7.1.0) + toml-merge (= 7.1.0) + toml-rb (~> 4.1) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge + specs: + commonmarker-merge (7.1.0) + commonmarker (~> 2.2) + markdown-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge + specs: + dotenv-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge + specs: + go-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge + specs: + json-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem + specs: + kettle-jem (7.1.0) + addressable (>= 2.8, < 3) + ast-crispr-markdown-markly (= 7.1.0) + ast-crispr-ruby-prism (= 7.1.0) + ast-merge (= 7.1.0) + bash-merge (= 7.1.0) + citrus-toml-merge (= 7.1.0) + commonmarker-merge (= 7.1.0) + dotenv-merge (= 7.1.0) + json-merge (= 7.1.0) + kettle-dev (~> 2.3, >= 2.3.5) + kettle-rb (~> 0.1, >= 0.1.4) + kramdown-merge (= 7.1.0) + markdown-merge (= 7.1.0) + markly-merge (= 7.1.0) + prism-merge (= 7.1.0) + psych-merge (= 7.1.0) + rbs (>= 3.10) + rbs-merge (= 7.1.0) + ruby-merge (= 7.1.0) + token-resolver (~> 2.0, >= 2.0.4) + toml-merge (= 7.1.0) + toml-rb (~> 4.2) + tree_haver (= 7.1.0) + yaml-merge (= 7.1.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge + specs: + kramdown-merge (7.1.0) + kramdown (~> 2.5) + markdown-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge + specs: + markdown-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge + specs: + markly-merge (7.1.0) + markdown-merge (= 7.1.0) + markly (~> 0.9) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge + specs: + parslet-toml-merge (7.1.0) + toml (~> 0.3) + toml-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge + specs: + plain-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge + specs: + prism-merge (7.1.0) + prism (~> 1.6) + ruby-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge + specs: + psych-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + yaml-merge (= 7.1.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge + specs: + rbs-merge (7.1.0) + ast-merge (= 7.1.0) + rbs (>= 3.10) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge + specs: + ruby-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge + specs: + rust-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb + specs: + smorg-rb (7.1.0) + ast-merge (= 7.1.0) + ast-merge-git (= 7.1.0) + go-merge (= 7.1.0) + json-merge (= 7.1.0) + kettle-jem (= 7.1.0) + markly-merge (= 7.1.0) + plain-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver specs: tree_haver (7.1.0) citrus (~> 3.0) @@ -24,6 +242,29 @@ PATH tree_sitter_language_pack (>= 1.13.2, < 2.0) version_gem (~> 1.1, >= 1.1.9) +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge + specs: + typescript-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge + specs: + yaml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge + specs: + zip-merge (7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + GEM remote: https://gem.coop/ specs: @@ -48,6 +289,11 @@ GEM cgi (0.5.2) citrus (3.0.2) cmdparse (3.0.7) + commonmarker (2.9.0-aarch64-linux) + commonmarker (2.9.0-aarch64-linux-musl) + commonmarker (2.9.0-arm64-darwin) + commonmarker (2.9.0-x86_64-linux) + commonmarker (2.9.0-x86_64-linux-musl) concurrent-ruby (1.3.8) date (3.5.1) debug (1.11.1) @@ -110,6 +356,8 @@ GEM kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) + kettle-drift (1.0.6) + version_gem (~> 1.1, >= 1.1.14) kettle-rb (0.1.5) kettle-soup-cover (3.0.4) kettle-wash (~> 0.1, >= 0.1.0) @@ -138,6 +386,7 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) + markly (0.16.0) mutex_m (0.3.0) nokogiri (1.19.4-aarch64-linux-gnu) racc (~> 1.4) @@ -300,6 +549,8 @@ GEM ruby-progressbar (1.13.0) ruby_engine (2.0.3) ruby_version (1.0.3) + service_actor (3.9.4) + zeitwerk (>= 1.0) silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) @@ -354,6 +605,11 @@ GEM token-resolver (2.0.5) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.14) + toml (0.3.0) + parslet (>= 1.8.0, < 3.0.0) + toml-rb (4.2.0) + citrus (~> 3.0, > 3.0) + racc (~> 1.7) tree_sitter_language_pack (1.13.3-aarch64-linux) sorbet-runtime (~> 0.5) tree_sitter_language_pack (1.13.3-arm64-darwin) @@ -408,24 +664,46 @@ DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) appraisal2-rubocop (~> 1.0, >= 1.0.0) + ast-crispr! + ast-crispr-markdown-markly! + ast-crispr-ruby-prism! ast-merge! + ast-merge-git! + ast-template! + bash-merge! benchmark (~> 0.5, >= 0.5.0) + binary-merge! bundler-audit (~> 0.9.3) cgi (~> 0.5) + citrus-toml-merge! + commonmarker-merge! debug (>= 1.1) + dotenv-merge! erb (~> 6.0, >= 6.0.6) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.0) + go-merge! irb (~> 1.17) + json-merge! kettle-dev (~> 2.0, >= 2.2.25) + kettle-drift (~> 1.0, >= 1.0.6) + kettle-jem! kettle-soup-cover (~> 3.0, >= 3.0.3) kettle-test (~> 2.0, >= 2.0.9) kramdown (~> 2.5, >= 2.5.2) + kramdown-merge! kramdown-parser-gfm (~> 1.1) + markdown-merge! + markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) + parslet-toml-merge! + plain-merge! + prism-merge! + psych-merge! rake (~> 13.0) rbs (>= 3.0) + rbs-merge! rdoc (~> 6.11) reek (~> 6.5, >= 6.5.0) require_bench (~> 1.0, >= 1.0.4) @@ -436,21 +714,27 @@ DEPENDENCIES rubocop-on-rbs (~> 2.0, >= 2.0.0) rubocop-packaging (~> 0.6, >= 0.6.0) rubocop-ruby3_2 (~> 3.0, >= 3.0.6) + ruby-merge! ruby-progressbar (~> 1.13) + rust-merge! + smorg-rb! standard (~> 1.56, >= 1.56.0) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) toml-merge! tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) + typescript-merge! webrick (~> 1.9) yaml-converter (~> 0.2, >= 0.2.3) + yaml-merge! yard (~> 0.9, >= 0.9.45) yard-fence (~> 0.9, >= 0.9.6) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) yard-timekeeper (~> 0.2, >= 0.2.4) yard-yaml (~> 0.2, >= 0.2.3) + zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af @@ -458,20 +742,35 @@ CHECKSUMS appraisal2 (3.2.0) sha256=ccd0b767ac4060cd7af6d16747459b6990f49c39c7b4fb1f7d1146b1e97c492f appraisal2-rubocop (1.0.0) sha256=b71410fbb014befda5340605a605b7f6f3f012739baf0acc5b4351b592c3258d ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 + ast-crispr (7.1.0) + ast-crispr-markdown-markly (7.1.0) + ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) + ast-merge-git (7.1.0) + ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 + bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd + binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 + citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 + commonmarker (2.9.0-aarch64-linux) sha256=e2b4aadb9a2cfa4e206582641ce3a49465549ac1ed4c289fdd63b78d8f24579c + commonmarker (2.9.0-aarch64-linux-musl) sha256=1cf4d2821f2a7e64945f1ed7c4eeced586fdb27ea7fe7337788802cf8f57cfca + commonmarker (2.9.0-arm64-darwin) sha256=1748dbfa4f5813b0d2a14bb4bbfa65a4ec293aa1c825016d60029ee0e132b046 + commonmarker (2.9.0-x86_64-linux) sha256=8cfe92970eef585a19ddf6613224b91cab64d6029834661bda801f877c9c7f43 + commonmarker (2.9.0-x86_64-linux-musl) sha256=293921398b839f79ceaf55010e061357e34f053822c3b003cd0be6686176335e + commonmarker-merge (7.1.0) concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 + dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -484,20 +783,28 @@ CHECKSUMS gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f + go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 + json-merge (7.1.0) kettle-dev (2.3.8) sha256=9d716ff21c660a730cb4e8d41e2e2f0630a28167a354b6e2924e242102aef72c + kettle-drift (1.0.6) sha256=46eda08fa4411d1f3c6682a95eef1c9df4e94611b3949f49d4c7b43c0ed356a3 + kettle-jem (7.1.0) kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f kettle-soup-cover (3.0.4) kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa + kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 + markdown-merge (7.1.0) + markly (0.16.0) sha256=6f70d79e385b1efc9e171f74c81628826259039fe6c778e03c3924c71dac5511 + markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-aarch64-linux-gnu) sha256=1269fb644a6de405057a53dd5c762b1209b43ca7424f839454d3dbc677c31a8f nokogiri (1.19.4-aarch64-linux-musl) sha256=35c65b9ce72b3bb03207bdbe7067915019dc18c1b9b59139684bd6690fdd01af @@ -511,15 +818,20 @@ CHECKSUMS parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 + parslet-toml-merge (7.1.0) + plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 + prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 + psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 + rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb @@ -554,15 +866,19 @@ CHECKSUMS rubocop-rspec_rails (2.32.0) sha256=4a0d641c72f6ebb957534f539d9d0a62c47abd8ce0d0aeee1ef4701e892a9100 rubocop-ruby3_2 (3.0.7) sha256=f53dd6d286fb05186214fc6ec116783e7f837030918e8931c05de773e98f8466 rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 + ruby-merge (7.1.0) ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 + rust-merge (7.1.0) + service_actor (3.9.4) sha256=e63b523630b9a7e62959b2a90113b08d2565b5de9c148557b281ef847c9539ce silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed + smorg-rb (7.1.0) sorbet-runtime (0.6.13347) sha256=54e7221d9f4b63f58aec79f3043752a9ba7810347c6ae0d903531591cc2d5f01 standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b @@ -577,18 +893,22 @@ CHECKSUMS timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.5) sha256=b852f924287ffb58a440856e862b056c8ad97e74b4b2526cee43e0771f40c25c + toml (0.3.0) sha256=0a91d0f76a9036e84e44f95693b12f58d358c1df3ac8e3b5271f2056ecc6e4b9 toml-merge (7.1.0) + toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-aarch64-linux) sha256=55ffc7c87868cb45658338363d9eba51b4a8b0259aa88e4de368d2bd1d52fea4 tree_sitter_language_pack (1.13.3-arm64-darwin) sha256=bc2498db605f212a1dbd2465ed3f65190d7da786f6ed5d30fcf958121aeb4a5c tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 + typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 webrick (1.9.2) sha256=beb4a15fc474defed24a3bda4ffd88a490d517c9e4e6118c3edce59e45864131 yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 + yaml-merge (7.1.0) yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd @@ -596,6 +916,7 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 + zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH diff --git a/gems/typescript-merge/.kettle-drift.lock b/gems/typescript-merge/.kettle-drift.lock index 2ee9dae31..43dfedd67 100644 --- a/gems/typescript-merge/.kettle-drift.lock +++ b/gems/typescript-merge/.kettle-drift.lock @@ -52,14 +52,5 @@ 88 ] } - ], - "vendored_gems_env: 'VENDORED_GEMS',\nvendor_gem_dir_env: 'VENDOR_GEM_DIR',": [ - { - "file": "gemfiles/modular/templating_local.gemfile", - "lines": [ - 55, - 66 - ] - } ] } diff --git a/gems/typescript-merge/README.md b/gems/typescript-merge/README.md index 54a51307e..6c0815603 100644 --- a/gems/typescript-merge/README.md +++ b/gems/typescript-merge/README.md @@ -35,7 +35,7 @@ I've summarized my thoughts in [this blog post](https://dev.to/galtzo/hostile-ta | Tokens to Remember | [![Gem name][⛳️name-img]][⛳️gem-name] [![Gem namespace][⛳️namespace-img]][⛳️gem-namespace] | |-------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | Works with MRI Ruby 4 | [![Ruby current Compat][💎ruby-c-i]][🚎11-c-wf]| -| Support & Community | [![Join Me on Daily.dev's RubyFriends][✉️ruby-friends-img]][✉️ruby-friends] [![Live Chat on Discord][✉️discord-invite-img-ftb]][✉️discord-invite] [![Get help from me on Upwork][👨🏼‍🏫expsup-upwork-img]][👨🏼‍🏫expsup-upwork] [![Get help from me on Codementor][👨🏼‍🏫expsup-codementor-img]][👨🏼‍🏫expsup-codementor] | +| Support & Community | [![Join Me on Daily.dev's RubyFriends][✉️ruby-friends-img]][✉️ruby-friends] [![Get help from RubyForum][✉️ruby-forum-img]][✉️ruby-forum] [![Live Chat on Discord][✉️discord-invite-img-ftb]][✉️discord-invite] [![Get help from me on Upwork][👨🏼‍🏫expsup-upwork-img]][👨🏼‍🏫expsup-upwork] [![Get help from me on Codementor][👨🏼‍🏫expsup-codementor-img]][👨🏼‍🏫expsup-codementor] | | Source | [![Source on GitLab.com][📜src-gl-img]][📜src-gl] [![Source on CodeBerg.org][📜src-cb-img]][📜src-cb] [![Source on Github.com][📜src-gh-img]][📜src-gh] [![The best SHA: dQw4w9WgXcQ!][🧮kloc-img]][🧮kloc] | | Documentation | [![Current release on RubyDoc.info][📜docs-cr-rd-img]][🚎yard-current] [![YARD on Galtzo.com][📜docs-head-rd-img]][🚎yard-head] [![Maintainer Blog][🚂maint-blog-img]][🚂maint-blog] [![GitLab Wiki][📜gl-wiki-img]][📜gl-wiki] [![GitHub Wiki][📜gh-wiki-img]][📜gh-wiki] | | Compliance | [![License: AGPL-3.0-only OR PolyForm-Small-Business-1.0.0][📄license-img]][📄license] [![Apache license compatibility: Category X][📄license-compat-img]][📄license-compat] [![📄ilo-declaration-img]][📄ilo-declaration] [![Security Policy][🔐security-img]][🔐security] [![Contributor Covenant 2.1][🪇conduct-img]][🪇conduct] [![SemVer 2.0.0][📌semver-img]][📌semver] | @@ -180,6 +180,8 @@ If none of the available licenses suit your use case, please [contact us](mailto [✉️discord-invite-img-ftb]: https://img.shields.io/discord/1373797679469170758?style=for-the-badge&logo=discord [✉️ruby-friends-img]: https://img.shields.io/badge/daily.dev-%F0%9F%92%8E_Ruby_Friends-0A0A0A?style=for-the-badge&logo=dailydotdev&logoColor=white [✉️ruby-friends]: https://app.daily.dev/squads/rubyfriends +[✉️ruby-forum-img]: https://img.shields.io/badge/RubyForum-Help-CC342D?style=for-the-badge&logo=ruby&logoColor=white +[✉️ruby-forum]: https://www.rubyforum.org/c/help/8 [✇bundle-group-pattern]: https://gist.github.com/pboling/4564780 [⛳️gem-namespace]: https://github.com/structuredmerge/structuredmerge-ruby/tree/main/gems/typescript-merge [⛳️namespace-img]: https://img.shields.io/badge/namespace-TypeScript::Merge-3C2D2D.svg?style=square&logo=ruby&logoColor=white diff --git a/gems/typescript-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile b/gems/typescript-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile index b8392fab0..dec650815 100644 --- a/gems/typescript-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile +++ b/gems/typescript-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.1 -gem 'benchmark', '~> 0.5', '>= 0.5.0' # Removed from Std Lib in Ruby 4.0 +gem "benchmark", "~> 0.5", ">= 0.5.0" # Removed from Std Lib in Ruby 4.0 diff --git a/gems/typescript-merge/gemfiles/modular/benchmark/vHEAD.gemfile b/gems/typescript-merge/gemfiles/modular/benchmark/vHEAD.gemfile index af214aafa..e1eb20c5e 100644 --- a/gems/typescript-merge/gemfiles/modular/benchmark/vHEAD.gemfile +++ b/gems/typescript-merge/gemfiles/modular/benchmark/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.1 -gem 'benchmark', github: 'ruby/benchmark', branch: 'master' +gem "benchmark", github: "ruby/benchmark", branch: "master" diff --git a/gems/typescript-merge/gemfiles/modular/cgi/r4/v0.5.gemfile b/gems/typescript-merge/gemfiles/modular/cgi/r4/v0.5.gemfile new file mode 100644 index 000000000..19ed967c3 --- /dev/null +++ b/gems/typescript-merge/gemfiles/modular/cgi/r4/v0.5.gemfile @@ -0,0 +1 @@ +gem "cgi", "~> 0.5" diff --git a/gems/typescript-merge/gemfiles/modular/cgi/vHEAD.gemfile b/gems/typescript-merge/gemfiles/modular/cgi/vHEAD.gemfile new file mode 100644 index 000000000..ef8b816ce --- /dev/null +++ b/gems/typescript-merge/gemfiles/modular/cgi/vHEAD.gemfile @@ -0,0 +1 @@ +gem "cgi", ">= 0.5" diff --git a/gems/typescript-merge/gemfiles/modular/coverage.gemfile b/gems/typescript-merge/gemfiles/modular/coverage.gemfile index f96d50954..52d737872 100644 --- a/gems/typescript-merge/gemfiles/modular/coverage.gemfile +++ b/gems/typescript-merge/gemfiles/modular/coverage.gemfile @@ -4,11 +4,11 @@ # Set KETTLE_DEV_DEV=true for local development with path-based dependencies. # When false (default / CI), remote released gems are used. -if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? +if ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false").zero? # Coverage (remote/released) platform :mri do - gem 'kettle-soup-cover', '~> 1.0', '>= 1.1.3', require: false + gem "kettle-soup-cover", "~> 3.0", ">= 3.0.3", require: false end else - eval_gemfile 'coverage_local.gemfile' + eval_gemfile "coverage_local.gemfile" end diff --git a/gems/typescript-merge/gemfiles/modular/coverage_local.gemfile b/gems/typescript-merge/gemfiles/modular/coverage_local.gemfile index d4b3f134b..3223876bc 100644 --- a/gems/typescript-merge/gemfiles/modular/coverage_local.gemfile +++ b/gems/typescript-merge/gemfiles/modular/coverage_local.gemfile @@ -3,31 +3,53 @@ # Local path overrides for development. # Loaded by the associated non-local gemfile when KETTLE_DEV_DEV != "false". -require 'nomono/bundler' unless defined?(Nomono) +# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. +# Bundler records that dependency during Gemfile evaluation, but it does not +# activate that exact version before the immediate `require "nomono/bundler"`. +# If multiple compatible nomono versions are installed, RubyGems may activate +# the newest installed version while Gemfile.lock pins an older compatible one; +# Bundler then aborts with "already activated nomono X, but your Gemfile +# requires nomono Y". Prefer the locked compatible version when present, then +# activate it explicitly before requiring the Bundler DSL extension used below. +nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] +nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) +if File.file?(nomono_lockfile) + nomono_locked_spec = Bundler::LockfileParser + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == "nomono" } + nomono_locked = nomono_locked_spec && + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + if nomono_locked + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] + end +end +Kernel.send(:gem, "nomono", *nomono_activation_requirements) +require "nomono/bundler" local_gems = %w[kettle-dev kettle-test kettle-soup-cover kettle-drift] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) local_gems_to_eval = local_gems - %w[typescript-merge] - declared_gems -# export KETTLE_DEV_DEV=/path/to/kettle-rb +# export KETTLE_DEV_DEV=/path/to/my platform :mri do eval_nomono_gems( gems: local_gems_to_eval, - prefix: 'KETTLE_DEV', - path_env: 'KETTLE_DEV_DEV', - vendored_gems_env: 'VENDORED_GEMS', - vendor_gem_dir_env: 'VENDOR_GEM_DIR', - debug_env: 'KETTLE_DEV_DEBUG' + prefix: "KETTLE_DEV", + path_env: "KETTLE_DEV_DEV", + vendored_gems_env: "VENDORED_GEMS", + vendor_gem_dir_env: "VENDOR_GEM_DIR", + debug_env: "KETTLE_DEV_DEBUG" ) - if ENV.fetch('GALTZO_FLOSS_DEV', 'false').casecmp('false') != 0 + if ENV.fetch("GALTZO_FLOSS_DEV", "false").casecmp("false") != 0 eval_nomono_gems( gems: %w[turbo_tests2], - prefix: 'GALTZO_FLOSS', - path_env: 'GALTZO_FLOSS_DEV', - vendored_gems_env: 'GALTZO_FLOSS_VENDORED_GEMS', - vendor_gem_dir_env: 'GALTZO_FLOSS_VENDOR_GEM_DIR', - debug_env: 'GALTZO_FLOSS_DEBUG' + prefix: "GALTZO_FLOSS", + path_env: "GALTZO_FLOSS_DEV", + vendored_gems_env: "GALTZO_FLOSS_VENDORED_GEMS", + vendor_gem_dir_env: "GALTZO_FLOSS_VENDOR_GEM_DIR", + debug_env: "GALTZO_FLOSS_DEBUG" ) end end diff --git a/gems/typescript-merge/gemfiles/modular/debug.gemfile b/gems/typescript-merge/gemfiles/modular/debug.gemfile index eed8d4d1e..4e15b1a3a 100644 --- a/gems/typescript-merge/gemfiles/modular/debug.gemfile +++ b/gems/typescript-merge/gemfiles/modular/debug.gemfile @@ -13,10 +13,10 @@ platform :mri do # Debugging - Ensure ENV["DEBUG"] == "true" to use debuggers within spec suite # Use binding.break, binding.b, or debugger in code - gem 'debug', '>= 1.1' # ruby >= 2.7 + gem "debug", ">= 1.1" # ruby >= 2.7 # Dev Console - Binding.pry - Irb replacement # gem "pry", "~> 0.14" # ruby >= 2.0 end -gem 'gem_bench', '~> 2.0', '>= 2.0.5' +gem "gem_bench", "~> 2.0", ">= 2.0.5" diff --git a/gems/typescript-merge/gemfiles/modular/documentation.gemfile b/gems/typescript-merge/gemfiles/modular/documentation.gemfile index dff5cc108..d8215416e 100644 --- a/gems/typescript-merge/gemfiles/modular/documentation.gemfile +++ b/gems/typescript-merge/gemfiles/modular/documentation.gemfile @@ -7,20 +7,20 @@ # # Documentation -gem 'kramdown', '~> 2.5', '>= 2.5.1', require: false # Ruby >= 2.5 -gem 'kramdown-parser-gfm', '~> 1.1', require: false # Ruby >= 2.3 -gem 'yaml-converter', '~> 0.1', require: false # Ruby >= 3.2 -gem 'yard', '~> 0.9', '>= 0.9.44', require: false -gem 'yard-junk', '~> 0.1', '>= 0.1.0', require: false # Ruby >= 3.1 -gem 'yard-relative_markdown_links', '~> 0.6', require: false +gem "kramdown", "~> 2.5", ">= 2.5.2", require: false # Ruby >= 2.5 +gem "kramdown-parser-gfm", "~> 1.1", require: false # Ruby >= 2.3 +gem "yaml-converter", "~> 0.2", ">= 0.2.3", require: false # Ruby >= 3.2 +gem "yard", "~> 0.9", ">= 0.9.45", require: false +gem "yard-junk", "~> 0.1", ">= 0.1.0", require: false # Ruby >= 3.1 +gem "yard-relative_markdown_links", "~> 0.6", require: false -if ENV.fetch('GALTZO_FLOSS_DEV', 'false').casecmp('false').zero? - gem 'yard-fence', '~> 0.9', '>= 0.9.1', require: false # Ruby >= 3.2 - gem 'yard-timekeeper', '~> 0.1', require: false - gem 'yard-yaml', '~> 0.1', '>= 0.1.2', require: false +if ENV.fetch("GALTZO_FLOSS_DEV", "false").casecmp("false").zero? + gem "yard-fence", "~> 0.9", ">= 0.9.6", require: false # Ruby >= 3.2 + gem "yard-timekeeper", "~> 0.2", ">= 0.2.4", require: false + gem "yard-yaml", "~> 0.2", ">= 0.2.3", require: false else - eval_gemfile 'documentation_local.gemfile' + eval_gemfile "documentation_local.gemfile" end # Std Lib extractions -gem 'rdoc', '~> 6.11', require: false unless ENV.fetch('KJ_FRAMEWORK_MATRIX_GEM', '') == 'rdoc' +gem "rdoc", "~> 6.11", require: false unless ENV.fetch("KJ_FRAMEWORK_MATRIX_GEM", "") == "rdoc" diff --git a/gems/typescript-merge/gemfiles/modular/documentation_local.gemfile b/gems/typescript-merge/gemfiles/modular/documentation_local.gemfile index 4d4c2bd95..1d5bbae44 100644 --- a/gems/typescript-merge/gemfiles/modular/documentation_local.gemfile +++ b/gems/typescript-merge/gemfiles/modular/documentation_local.gemfile @@ -3,16 +3,40 @@ # Local path overrides for development. # Loaded by the associated non-local gemfile when GALTZO_FLOSS_DEV != "false". -require 'nomono/bundler' unless defined?(Nomono) +# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. +# Bundler records that dependency during Gemfile evaluation, but it does not +# activate that exact version before the immediate `require "nomono/bundler"`. +# If multiple compatible nomono versions are installed, RubyGems may activate +# the newest installed version while Gemfile.lock pins an older compatible one; +# Bundler then aborts with "already activated nomono X, but your Gemfile +# requires nomono Y". Prefer the locked compatible version when present, then +# activate it explicitly before requiring the Bundler DSL extension used below. +nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] +nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) +if File.file?(nomono_lockfile) + nomono_locked_spec = Bundler::LockfileParser + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == "nomono" } + nomono_locked = nomono_locked_spec && + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + if nomono_locked + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] + end +end +Kernel.send(:gem, "nomono", *nomono_activation_requirements) +require "nomono/bundler" local_gems = %w[yard-fence yard-timekeeper yard-yaml] +declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) +local_gems_to_eval = local_gems - %w[typescript-merge] - declared_gems # export GALTZO_FLOSS_DEV=/path/to/galtzo-floss eval_nomono_gems( - gems: local_gems, - prefix: 'GALTZO_FLOSS', - path_env: 'GALTZO_FLOSS_DEV', - vendored_gems_env: 'GALTZO_FLOSS_VENDORED_GEMS', - vendor_gem_dir_env: 'GALTZO_FLOSS_VENDOR_GEM_DIR', - debug_env: 'GALTZO_FLOSS_DEBUG' + gems: local_gems_to_eval, + prefix: "GALTZO_FLOSS", + path_env: "GALTZO_FLOSS_DEV", + vendored_gems_env: "GALTZO_FLOSS_VENDORED_GEMS", + vendor_gem_dir_env: "GALTZO_FLOSS_VENDOR_GEM_DIR", + debug_env: "GALTZO_FLOSS_DEBUG" ) diff --git a/gems/typescript-merge/gemfiles/modular/erb/r2/v3.0.gemfile b/gems/typescript-merge/gemfiles/modular/erb/r2/v3.0.gemfile index 7c83a239b..c03bd8d85 100644 --- a/gems/typescript-merge/gemfiles/modular/erb/r2/v3.0.gemfile +++ b/gems/typescript-merge/gemfiles/modular/erb/r2/v3.0.gemfile @@ -1 +1 @@ -gem 'erb', '~> 3.0' # ruby >= 2.7.0 +gem "erb", "~> 3.0" # ruby >= 2.7.0 diff --git a/gems/typescript-merge/gemfiles/modular/erb/r3/v5.0.gemfile b/gems/typescript-merge/gemfiles/modular/erb/r3/v5.0.gemfile index 0e3bf1b97..1bd029cc1 100644 --- a/gems/typescript-merge/gemfiles/modular/erb/r3/v5.0.gemfile +++ b/gems/typescript-merge/gemfiles/modular/erb/r3/v5.0.gemfile @@ -1 +1 @@ -gem 'erb', '~> 6.0', '>= 6.0.4' # ruby >= 3.2.0 +gem "erb", "~> 6.0", ">= 6.0.6" # ruby >= 3.2.0 diff --git a/gems/typescript-merge/gemfiles/modular/erb/r4/v5.0.gemfile b/gems/typescript-merge/gemfiles/modular/erb/r4/v5.0.gemfile index 0e3bf1b97..1bd029cc1 100644 --- a/gems/typescript-merge/gemfiles/modular/erb/r4/v5.0.gemfile +++ b/gems/typescript-merge/gemfiles/modular/erb/r4/v5.0.gemfile @@ -1 +1 @@ -gem 'erb', '~> 6.0', '>= 6.0.4' # ruby >= 3.2.0 +gem "erb", "~> 6.0", ">= 6.0.6" # ruby >= 3.2.0 diff --git a/gems/typescript-merge/gemfiles/modular/erb/vHEAD.gemfile b/gems/typescript-merge/gemfiles/modular/erb/vHEAD.gemfile index ea0101185..48fee4218 100644 --- a/gems/typescript-merge/gemfiles/modular/erb/vHEAD.gemfile +++ b/gems/typescript-merge/gemfiles/modular/erb/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 3.2 -gem 'erb', github: 'ruby/erb', branch: 'master' +gem "erb", github: "ruby/erb", branch: "master" diff --git a/gems/typescript-merge/gemfiles/modular/json/truffleruby_22_3.gemfile b/gems/typescript-merge/gemfiles/modular/json/truffleruby_22_3.gemfile new file mode 100644 index 000000000..b0e69ab11 --- /dev/null +++ b/gems/typescript-merge/gemfiles/modular/json/truffleruby_22_3.gemfile @@ -0,0 +1,6 @@ +# frozen_string_literal: true + +if RUBY_ENGINE == "truffleruby" && RUBY_ENGINE_VERSION.start_with?("22.3") + # TruffleRuby 22.3 ships the json default gem from its emulated MRI Ruby. + gem "json", "= 2.5.1" +end diff --git a/gems/typescript-merge/gemfiles/modular/json/truffleruby_23_0.gemfile b/gems/typescript-merge/gemfiles/modular/json/truffleruby_23_0.gemfile new file mode 100644 index 000000000..7b2660a2b --- /dev/null +++ b/gems/typescript-merge/gemfiles/modular/json/truffleruby_23_0.gemfile @@ -0,0 +1,6 @@ +# frozen_string_literal: true + +if RUBY_ENGINE == "truffleruby" && RUBY_ENGINE_VERSION.start_with?("23.0") + # TruffleRuby 23.0 ships the json default gem from its emulated MRI Ruby. + gem "json", "= 2.6.1" +end diff --git a/gems/typescript-merge/gemfiles/modular/json/truffleruby_23_1.gemfile b/gems/typescript-merge/gemfiles/modular/json/truffleruby_23_1.gemfile new file mode 100644 index 000000000..dfa21f2e4 --- /dev/null +++ b/gems/typescript-merge/gemfiles/modular/json/truffleruby_23_1.gemfile @@ -0,0 +1,6 @@ +# frozen_string_literal: true + +if RUBY_ENGINE == "truffleruby" && RUBY_ENGINE_VERSION.start_with?("23.1") + # TruffleRuby 23.1 ships the json default gem from its emulated MRI Ruby. + gem "json", "= 2.6.3" +end diff --git a/gems/typescript-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile b/gems/typescript-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile index e27f1bbae..42e9d9bd4 100644 --- a/gems/typescript-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile +++ b/gems/typescript-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 -gem 'mutex_m', '~> 0.2' +gem "mutex_m", "~> 0.2" diff --git a/gems/typescript-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile b/gems/typescript-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile index e27f1bbae..42e9d9bd4 100644 --- a/gems/typescript-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile +++ b/gems/typescript-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 -gem 'mutex_m', '~> 0.2' +gem "mutex_m", "~> 0.2" diff --git a/gems/typescript-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile b/gems/typescript-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile index e27f1bbae..42e9d9bd4 100644 --- a/gems/typescript-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile +++ b/gems/typescript-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 -gem 'mutex_m', '~> 0.2' +gem "mutex_m", "~> 0.2" diff --git a/gems/typescript-merge/gemfiles/modular/mutex_m/vHEAD.gemfile b/gems/typescript-merge/gemfiles/modular/mutex_m/vHEAD.gemfile index 9dac2f6cb..8af3b6fca 100644 --- a/gems/typescript-merge/gemfiles/modular/mutex_m/vHEAD.gemfile +++ b/gems/typescript-merge/gemfiles/modular/mutex_m/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 (dependency of omniauth) -gem 'mutex_m', github: 'ruby/mutex_m', branch: 'master' +gem "mutex_m", github: "ruby/mutex_m", branch: "master" diff --git a/gems/typescript-merge/gemfiles/modular/optional.gemfile b/gems/typescript-merge/gemfiles/modular/optional.gemfile index f396a8b04..80bc45196 100644 --- a/gems/typescript-merge/gemfiles/modular/optional.gemfile +++ b/gems/typescript-merge/gemfiles/modular/optional.gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -# To retain during typescript-merge templating: +# To retain during kettle-jem templating: # kettle-jem:freeze # # ... your code # kettle-jem:unfreeze @@ -9,9 +9,8 @@ # Optional dependencies are not depended on directly, but may be used if present. # Required for curated binstubs generated by kettle-jem install -gem 'rbs', '>= 3.0', require: false # ruby >= 3.1 -gem 'stone_checksums', '~> 1.0', '>= 1.0.3', require: false # ruby >= 2.2 +gem "rbs", ">= 3.0", require: false # ruby >= 3.1 # Required for kettle-pre-release # URL parsing with Unicode support (falls back to URI if not available) -gem 'addressable', '>= 2.8', '< 3' # ruby >= 2.2 +gem "addressable", ">= 2.8", "< 3" # ruby >= 2.2 diff --git a/gems/typescript-merge/gemfiles/modular/rspec.gemfile b/gems/typescript-merge/gemfiles/modular/rspec.gemfile index 2af210a41..72fdf8b7f 100644 --- a/gems/typescript-merge/gemfiles/modular/rspec.gemfile +++ b/gems/typescript-merge/gemfiles/modular/rspec.gemfile @@ -1,4 +1,4 @@ -gem 'rspec_junit_formatter', - github: 'pboling/rspec_junit_formatter', - branch: 'main', - ref: '9e6bcaaedd49477b62878ed568dc4ada5cc7cb5e' +gem "rspec_junit_formatter", + github: "pboling/rspec_junit_formatter", + branch: "main", + ref: "9e6bcaaedd49477b62878ed568dc4ada5cc7cb5e" diff --git a/gems/typescript-merge/gemfiles/modular/runtime_heads.gemfile b/gems/typescript-merge/gemfiles/modular/runtime_heads.gemfile index 679736c6e..02f134c7f 100644 --- a/gems/typescript-merge/gemfiles/modular/runtime_heads.gemfile +++ b/gems/typescript-merge/gemfiles/modular/runtime_heads.gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -# To retain during typescript-merge templating: +# To retain during kettle-jem templating: # kettle-jem:freeze # # ... your code # kettle-jem:unfreeze @@ -8,7 +8,4 @@ # Test against HEAD of runtime dependencies so we can proactively file bugs -# Ruby >= 2.2 -gem 'version_gem', github: 'ruby-oauth/version_gem', branch: 'main' - -eval_gemfile('x_std_libs/vHEAD.gemfile') +eval_gemfile("x_std_libs/vHEAD.gemfile") diff --git a/gems/typescript-merge/gemfiles/modular/stringio/r2/v3.0.gemfile b/gems/typescript-merge/gemfiles/modular/stringio/r2/v3.0.gemfile index 3616f4e3a..e85bb18ee 100644 --- a/gems/typescript-merge/gemfiles/modular/stringio/r2/v3.0.gemfile +++ b/gems/typescript-merge/gemfiles/modular/stringio/r2/v3.0.gemfile @@ -2,4 +2,4 @@ # NOT SEMVER # Version 3.0.7 dropped support for Ruby <= 2.7 # Version 3.0.0 dropped support for Ruby <= 2.4 -gem 'stringio', '>= 3.0' +gem "stringio", ">= 3.0" diff --git a/gems/typescript-merge/gemfiles/modular/stringio/r3/v3.0.gemfile b/gems/typescript-merge/gemfiles/modular/stringio/r3/v3.0.gemfile index 3616f4e3a..e85bb18ee 100644 --- a/gems/typescript-merge/gemfiles/modular/stringio/r3/v3.0.gemfile +++ b/gems/typescript-merge/gemfiles/modular/stringio/r3/v3.0.gemfile @@ -2,4 +2,4 @@ # NOT SEMVER # Version 3.0.7 dropped support for Ruby <= 2.7 # Version 3.0.0 dropped support for Ruby <= 2.4 -gem 'stringio', '>= 3.0' +gem "stringio", ">= 3.0" diff --git a/gems/typescript-merge/gemfiles/modular/stringio/r4/v3.0.gemfile b/gems/typescript-merge/gemfiles/modular/stringio/r4/v3.0.gemfile index 3616f4e3a..e85bb18ee 100644 --- a/gems/typescript-merge/gemfiles/modular/stringio/r4/v3.0.gemfile +++ b/gems/typescript-merge/gemfiles/modular/stringio/r4/v3.0.gemfile @@ -2,4 +2,4 @@ # NOT SEMVER # Version 3.0.7 dropped support for Ruby <= 2.7 # Version 3.0.0 dropped support for Ruby <= 2.4 -gem 'stringio', '>= 3.0' +gem "stringio", ">= 3.0" diff --git a/gems/typescript-merge/gemfiles/modular/stringio/vHEAD.gemfile b/gems/typescript-merge/gemfiles/modular/stringio/vHEAD.gemfile index 78f5f5d8a..5f2a74126 100644 --- a/gems/typescript-merge/gemfiles/modular/stringio/vHEAD.gemfile +++ b/gems/typescript-merge/gemfiles/modular/stringio/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 (dependency of omniauth) -gem 'stringio', github: 'ruby/stringio', branch: 'master' +gem "stringio", github: "ruby/stringio", branch: "master" diff --git a/gems/typescript-merge/gemfiles/modular/style.gemfile b/gems/typescript-merge/gemfiles/modular/style.gemfile index a74da742f..35de4dcd6 100644 --- a/gems/typescript-merge/gemfiles/modular/style.gemfile +++ b/gems/typescript-merge/gemfiles/modular/style.gemfile @@ -1,28 +1,31 @@ # frozen_string_literal: true -# To retain during typescript-merge templating: +# To retain during kettle-jem templating: # kettle-jem:freeze # # ... your code # kettle-jem:unfreeze # -# We run rubocop on the latest version of Ruby, -# but in support of the oldest supported version of Ruby +# Style tasks run on the latest Ruby; RuboCop-LTS selects the compatibility +# rules for the configured Ruby floor independently from task dependency floors. -gem 'reek', '~> 6.5' +gem "reek", "~> 6.5", ">= 6.5.0" platform :mri do - gem 'rubocop-on-rbs', '~> 2.0' # ruby >= 3.2.0 + gem "appraisal2-rubocop", "~> 1.0", ">= 1.0.0", require: false + gem "rubocop-gradual", "~> 0.4", ">= 0.4.0" + gem "rubocop-minitest", "~> 0.40", ">= 0.40.0" + gem "rubocop-on-rbs", "~> 2.0", ">= 2.0.0" # ruby >= 3.2.0 # gem "rubocop", "~> 1.73", ">= 1.73.2" # constrained by standard - gem 'rubocop-packaging', '~> 0.6', '>= 0.6.0' - gem 'standard', '>= 1.50' + gem "rubocop-packaging", "~> 0.6", ">= 0.6.0" + gem "standard", "~> 1.56", ">= 1.56.0" - if ENV.fetch('RUBOCOP_LTS_LOCAL', 'false').casecmp('false').zero? - gem 'rubocop-lts', '~> 24.1.0' - # "rubocop-lts-rspec" can't add here until other gems are updated. - gem 'rubocop-rspec', '~> 3.6' - gem 'rubocop-ruby3_2', '~> 3.0.0' + if ENV.fetch("RUBOCOP_LTS_LOCAL", "false").casecmp("false").zero? + declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) + gem "rubocop-lts", "~> 24.2", ">= 24.2.1" unless declared_gems.include?("rubocop-lts") + gem "rubocop-lts-rspec", "~> 1.0", ">= 1.0.5" unless declared_gems.include?("rubocop-lts-rspec") + gem "rubocop-ruby3_2", "~> 3.0", ">= 3.0.6" unless declared_gems.include?("rubocop-ruby3_2") else - eval_gemfile('style_local.gemfile') + eval_gemfile("style_local.gemfile") end end diff --git a/gems/typescript-merge/gemfiles/modular/style_local.gemfile b/gems/typescript-merge/gemfiles/modular/style_local.gemfile index ce75bbe21..28167579c 100644 --- a/gems/typescript-merge/gemfiles/modular/style_local.gemfile +++ b/gems/typescript-merge/gemfiles/modular/style_local.gemfile @@ -1,24 +1,48 @@ # frozen_string_literal: true -# We run rubocop on the latest version of Ruby, -# but in support of the oldest supported version of Ruby +# Style tasks run on the latest Ruby; RuboCop-LTS selects the compatibility +# rules for the configured Ruby floor independently from task dependency floors. # Local path overrides for development. # Loaded by the associated non-local gemfile when RUBOCOP_LTS_LOCAL != "false". -require 'nomono/bundler' unless defined?(Nomono) +# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. +# Bundler records that dependency during Gemfile evaluation, but it does not +# activate that exact version before the immediate `require "nomono/bundler"`. +# If multiple compatible nomono versions are installed, RubyGems may activate +# the newest installed version while Gemfile.lock pins an older compatible one; +# Bundler then aborts with "already activated nomono X, but your Gemfile +# requires nomono Y". Prefer the locked compatible version when present, then +# activate it explicitly before requiring the Bundler DSL extension used below. +nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] +nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) +if File.file?(nomono_lockfile) + nomono_locked_spec = Bundler::LockfileParser + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == "nomono" } + nomono_locked = nomono_locked_spec && + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + if nomono_locked + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] + end +end +Kernel.send(:gem, "nomono", *nomono_activation_requirements) +require "nomono/bundler" local_gems = %w[rubocop-lts rubocop-lts-rspec rubocop-ruby3_2 standard-rubocop-lts] +declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) +local_gems_to_eval = local_gems - %w[typescript-merge] - declared_gems # export VENDORED_GEMS=rubocop-lts,rubocop-lts-rspec,rubocop-ruby3_2,standard-rubocop-lts platform :mri do eval_nomono_gems( - gems: local_gems, - prefix: 'RUBOCOP_LTS', - path_env: 'RUBOCOP_LTS_LOCAL', - vendored_gems_env: 'VENDORED_GEMS', - vendor_gem_dir_env: 'VENDOR_GEM_DIR', - debug_env: 'RUBOCOP_LTS_DEBUG', - root: %w[src rubocop-lts] + gems: local_gems_to_eval, + prefix: "RUBOCOP_LTS", + path_env: "RUBOCOP_LTS_LOCAL", + vendored_gems_env: "VENDORED_GEMS", + vendor_gem_dir_env: "VENDOR_GEM_DIR", + debug_env: "RUBOCOP_LTS_DEBUG", + root: ["src", "rubocop-lts"] ) end diff --git a/gems/typescript-merge/gemfiles/modular/templating.gemfile b/gems/typescript-merge/gemfiles/modular/templating.gemfile index 2ddc9433f..47138ffbb 100644 --- a/gems/typescript-merge/gemfiles/modular/templating.gemfile +++ b/gems/typescript-merge/gemfiles/modular/templating.gemfile @@ -1,24 +1,24 @@ # frozen_string_literal: true -structuredmerge_remote = ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false').zero? -kettle_remote = ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? +structuredmerge_remote = ENV.fetch("STRUCTUREDMERGE_DEV", "false").casecmp("false").zero? +kettle_remote = ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false").zero? if structuredmerge_remote # Parser dependencies for released installs. - gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' + gem "tree_sitter_language_pack", "~> 1.13", ">= 1.13.3" # Merge recipes for released installs. - gem 'kettle-jem', '>= 7.0' + gem "kettle-jem", ">= 7.0" end if kettle_remote # Template/plugin checks for released installs. - gem 'kettle-drift', '~> 1.0', '>= 1.0.5', require: false + gem "kettle-drift", "~> 1.0", ">= 1.0.6", require: false end # Set STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local development with path-based dependencies. # When false (default / CI), released kettle-jem brings merge gems and parser dependencies. # Local path overrides bring the same dependencies from sibling gemspecs. # -# Set KETTLE_DEV_DEV=/path/to/kettle-rb for local development with Kettle plugin gems. +# Set KETTLE_DEV_DEV=/path/to/my for local development with Kettle plugin gems. # When false (default / CI), released Kettle plugin gems are used. -eval_gemfile 'templating_local.gemfile' unless structuredmerge_remote && kettle_remote +eval_gemfile "templating_local.gemfile" unless structuredmerge_remote && kettle_remote diff --git a/gems/typescript-merge/gemfiles/modular/templating_local.gemfile b/gems/typescript-merge/gemfiles/modular/templating_local.gemfile index 891bbf93c..b089677ff 100644 --- a/gems/typescript-merge/gemfiles/modular/templating_local.gemfile +++ b/gems/typescript-merge/gemfiles/modular/templating_local.gemfile @@ -4,7 +4,29 @@ # Loaded by the associated non-local gemfile when STRUCTUREDMERGE_DEV or KETTLE_DEV_DEV # is not "false". -require 'nomono/bundler' unless defined?(Nomono) +# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. +# Bundler records that dependency during Gemfile evaluation, but it does not +# activate that exact version before the immediate `require "nomono/bundler"`. +# If multiple compatible nomono versions are installed, RubyGems may activate +# the newest installed version while Gemfile.lock pins an older compatible one; +# Bundler then aborts with "already activated nomono X, but your Gemfile +# requires nomono Y". Prefer the locked compatible version when present, then +# activate it explicitly before requiring the Bundler DSL extension used below. +nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] +nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) +if File.file?(nomono_lockfile) + nomono_locked_spec = Bundler::LockfileParser + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == "nomono" } + nomono_locked = nomono_locked_spec && + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + if nomono_locked + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] + end +end +Kernel.send(:gem, "nomono", *nomono_activation_requirements) +require "nomono/bundler" structuredmerge_local_gems = %w[ tree_haver @@ -47,25 +69,25 @@ structuredmerge_local_gems_to_eval = structuredmerge_local_gems - %w[typescript- kettle_dev_local_gems_to_eval = kettle_dev_local_gems - %w[typescript-merge] - declared_gems platform :mri do - if ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false') != 0 + if ENV.fetch("STRUCTUREDMERGE_DEV", "false").casecmp("false") != 0 eval_nomono_gems( gems: structuredmerge_local_gems_to_eval, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - vendored_gems_env: 'VENDORED_GEMS', - vendor_gem_dir_env: 'VENDOR_GEM_DIR', - debug_env: 'STRUCTUREDMERGE_DEBUG' + prefix: "STRUCTUREDMERGE", + path_env: "STRUCTUREDMERGE_DEV", + vendored_gems_env: "VENDORED_GEMS", + vendor_gem_dir_env: "VENDOR_GEM_DIR", + debug_env: "STRUCTUREDMERGE_DEBUG" ) end - if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false') != 0 + if ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false") != 0 eval_nomono_gems( gems: kettle_dev_local_gems_to_eval, - prefix: 'KETTLE_DEV', - path_env: 'KETTLE_DEV_DEV', - vendored_gems_env: 'VENDORED_GEMS', - vendor_gem_dir_env: 'VENDOR_GEM_DIR', - debug_env: 'KETTLE_DEV_DEBUG' + prefix: "KETTLE_DEV", + path_env: "KETTLE_DEV_DEV", + vendored_gems_env: "VENDORED_GEMS", + vendor_gem_dir_env: "VENDOR_GEM_DIR", + debug_env: "KETTLE_DEV_DEBUG" ) end end diff --git a/gems/typescript-merge/gemfiles/modular/webrick/r4/v1.9.gemfile b/gems/typescript-merge/gemfiles/modular/webrick/r4/v1.9.gemfile new file mode 100644 index 000000000..eaab4a473 --- /dev/null +++ b/gems/typescript-merge/gemfiles/modular/webrick/r4/v1.9.gemfile @@ -0,0 +1 @@ +gem "webrick", "~> 1.9" diff --git a/gems/typescript-merge/gemfiles/modular/webrick/vHEAD.gemfile b/gems/typescript-merge/gemfiles/modular/webrick/vHEAD.gemfile new file mode 100644 index 000000000..8a789b634 --- /dev/null +++ b/gems/typescript-merge/gemfiles/modular/webrick/vHEAD.gemfile @@ -0,0 +1 @@ +gem "webrick", ">= 1.9" diff --git a/gems/typescript-merge/gemfiles/modular/x_std_libs.gemfile b/gems/typescript-merge/gemfiles/modular/x_std_libs.gemfile index b1f43c097..77aad43f2 100644 --- a/gems/typescript-merge/gemfiles/modular/x_std_libs.gemfile +++ b/gems/typescript-merge/gemfiles/modular/x_std_libs.gemfile @@ -1,12 +1,12 @@ ### Std Lib Extracted Gems ruby_version = Gem::Version.new(RUBY_VERSION) -if ruby_version >= Gem::Version.new('4.0') - eval_gemfile 'x_std_libs/r4/libs.gemfile' -elsif ruby_version >= Gem::Version.new('3.2') - eval_gemfile 'x_std_libs/r3/libs.gemfile' -elsif ruby_version >= Gem::Version.new('3.1') - eval_gemfile 'x_std_libs/r3.1/libs.gemfile' +if ruby_version >= Gem::Version.new("4.0") + eval_gemfile "x_std_libs/r4/libs.gemfile" +elsif ruby_version >= Gem::Version.new("3.2") + eval_gemfile "x_std_libs/r3/libs.gemfile" +elsif ruby_version >= Gem::Version.new("3.1") + eval_gemfile "x_std_libs/r3.1/libs.gemfile" else - eval_gemfile 'x_std_libs/r2/libs.gemfile' + eval_gemfile "x_std_libs/r2/libs.gemfile" end diff --git a/gems/typescript-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile b/gems/typescript-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile index 16a5e3d70..441c4f03a 100644 --- a/gems/typescript-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile +++ b/gems/typescript-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile @@ -1,3 +1,3 @@ -eval_gemfile '../../erb/r2/v3.0.gemfile' -eval_gemfile '../../mutex_m/r2/v0.3.gemfile' -eval_gemfile '../../stringio/r2/v3.0.gemfile' +eval_gemfile "../../erb/r2/v3.0.gemfile" +eval_gemfile "../../mutex_m/r2/v0.3.gemfile" +eval_gemfile "../../stringio/r2/v3.0.gemfile" diff --git a/gems/typescript-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile b/gems/typescript-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile index 220ff95c1..c293a3ddd 100644 --- a/gems/typescript-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile +++ b/gems/typescript-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile @@ -1,3 +1,3 @@ -eval_gemfile '../../erb/r3/v5.0.gemfile' -eval_gemfile '../../mutex_m/r3/v0.3.gemfile' -eval_gemfile '../../stringio/r3/v3.0.gemfile' +eval_gemfile "../../erb/r3/v5.0.gemfile" +eval_gemfile "../../mutex_m/r3/v0.3.gemfile" +eval_gemfile "../../stringio/r3/v3.0.gemfile" diff --git a/gems/typescript-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile b/gems/typescript-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile index bd4e884df..eb5574247 100644 --- a/gems/typescript-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile +++ b/gems/typescript-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile @@ -1,4 +1,6 @@ -eval_gemfile '../../erb/r4/v5.0.gemfile' -eval_gemfile '../../mutex_m/r4/v0.3.gemfile' -eval_gemfile '../../stringio/r4/v3.0.gemfile' -eval_gemfile '../../benchmark/r4/v0.5.gemfile' +eval_gemfile "../../erb/r4/v5.0.gemfile" +eval_gemfile "../../mutex_m/r4/v0.3.gemfile" +eval_gemfile "../../stringio/r4/v3.0.gemfile" +eval_gemfile "../../benchmark/r4/v0.5.gemfile" +eval_gemfile "../../cgi/r4/v0.5.gemfile" +eval_gemfile "../../webrick/r4/v1.9.gemfile" diff --git a/gems/typescript-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile b/gems/typescript-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile index 91f383c11..d4d5b16c9 100644 --- a/gems/typescript-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile +++ b/gems/typescript-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile @@ -1,4 +1,6 @@ -eval_gemfile '../erb/vHEAD.gemfile' -eval_gemfile '../mutex_m/vHEAD.gemfile' -eval_gemfile '../stringio/vHEAD.gemfile' -eval_gemfile '../benchmark/vHEAD.gemfile' +eval_gemfile "../erb/vHEAD.gemfile" +eval_gemfile "../mutex_m/vHEAD.gemfile" +eval_gemfile "../stringio/vHEAD.gemfile" +eval_gemfile "../benchmark/vHEAD.gemfile" +eval_gemfile "../cgi/vHEAD.gemfile" +eval_gemfile "../webrick/vHEAD.gemfile" From a4c1be558f57d573fff26aa3f5f3ed03e9574d0c Mon Sep 17 00:00:00 2001 From: "Peter H. Boling" Date: Tue, 21 Jul 2026 13:54:20 -0600 Subject: [PATCH 134/188] =?UTF-8?q?=F0=9F=8E=A8=20Template=20bootstrap=20b?= =?UTF-8?q?y=20kettle-jem=20v7.1.0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gems/ast-template/.kettle-drift.lock | 268 +--------- .../.structuredmerge/kettle-jem.yml | 53 ++ gems/ast-template/Gemfile | 72 ++- gems/ast-template/Gemfile.lock | 20 +- gems/ast-template/Rakefile | 18 +- gems/ast-template/lib/ast/template/version.rb | 2 +- gems/binary-merge/.kettle-drift.lock | 288 +---------- .../.structuredmerge/kettle-jem.yml | 53 ++ gems/binary-merge/Gemfile | 72 ++- gems/binary-merge/Gemfile.lock | 36 +- gems/binary-merge/Rakefile | 18 +- gems/binary-merge/lib/binary/merge/version.rb | 2 +- gems/rust-merge/Gemfile.lock | 325 +++++++++++- gems/typescript-merge/.rubocop_gradual.lock | 48 +- gems/typescript-merge/Gemfile | 70 ++- gems/typescript-merge/Gemfile.lock | 480 ++++-------------- gems/typescript-merge/Rakefile | 18 +- .../modular/benchmark/r4/v0.5.gemfile | 2 +- .../gemfiles/modular/benchmark/vHEAD.gemfile | 2 +- .../gemfiles/modular/cgi/r4/v0.5.gemfile | 2 +- .../gemfiles/modular/cgi/vHEAD.gemfile | 2 +- .../gemfiles/modular/coverage.gemfile | 6 +- .../gemfiles/modular/coverage_local.gemfile | 42 +- .../gemfiles/modular/debug.gemfile | 4 +- .../gemfiles/modular/documentation.gemfile | 24 +- .../modular/documentation_local.gemfile | 30 +- .../gemfiles/modular/erb/r2/v3.0.gemfile | 2 +- .../gemfiles/modular/erb/r3/v5.0.gemfile | 2 +- .../gemfiles/modular/erb/r4/v5.0.gemfile | 2 +- .../gemfiles/modular/erb/vHEAD.gemfile | 2 +- .../modular/json/truffleruby_22_3.gemfile | 4 +- .../modular/json/truffleruby_23_0.gemfile | 4 +- .../modular/json/truffleruby_23_1.gemfile | 4 +- .../gemfiles/modular/mutex_m/r2/v0.3.gemfile | 2 +- .../gemfiles/modular/mutex_m/r3/v0.3.gemfile | 2 +- .../gemfiles/modular/mutex_m/r4/v0.3.gemfile | 2 +- .../gemfiles/modular/mutex_m/vHEAD.gemfile | 2 +- .../gemfiles/modular/optional.gemfile | 4 +- .../gemfiles/modular/rspec.gemfile | 8 +- .../gemfiles/modular/runtime_heads.gemfile | 2 +- .../gemfiles/modular/stringio/r2/v3.0.gemfile | 2 +- .../gemfiles/modular/stringio/r3/v3.0.gemfile | 2 +- .../gemfiles/modular/stringio/r4/v3.0.gemfile | 2 +- .../gemfiles/modular/stringio/vHEAD.gemfile | 2 +- .../gemfiles/modular/style.gemfile | 24 +- .../gemfiles/modular/style_local.gemfile | 32 +- .../gemfiles/modular/templating.gemfile | 12 +- .../gemfiles/modular/templating_local.gemfile | 44 +- .../gemfiles/modular/webrick/r4/v1.9.gemfile | 2 +- .../gemfiles/modular/webrick/vHEAD.gemfile | 2 +- .../gemfiles/modular/x_std_libs.gemfile | 14 +- .../modular/x_std_libs/r2/libs.gemfile | 6 +- .../modular/x_std_libs/r3/libs.gemfile | 6 +- .../modular/x_std_libs/r4/libs.gemfile | 12 +- .../gemfiles/modular/x_std_libs/vHEAD.gemfile | 12 +- .../lib/typescript/merge/version.rb | 2 +- gems/zip-merge/.kettle-drift.lock | 288 +---------- .../zip-merge/.structuredmerge/kettle-jem.yml | 53 ++ gems/zip-merge/Gemfile | 72 ++- gems/zip-merge/Gemfile.lock | 352 ++++++++++++- gems/zip-merge/Rakefile | 18 +- gems/zip-merge/lib/zip/merge/version.rb | 2 +- 62 files changed, 1421 insertions(+), 1539 deletions(-) diff --git a/gems/ast-template/.kettle-drift.lock b/gems/ast-template/.kettle-drift.lock index aa01ca527..d28e306b0 100644 --- a/gems/ast-template/.kettle-drift.lock +++ b/gems/ast-template/.kettle-drift.lock @@ -1,122 +1,10 @@ { - "(direct_sibling_local ||\nENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?)": [ - { - "file": "Gemfile", - "lines": [ - 79, - 119, - 159, - 199, - 239, - 279, - 319, - 359 - ] - } - ], - ".find { |spec| spec.name == 'nomono' }\nnomono_locked = nomono_locked_spec &&": [ - { - "file": "Gemfile", - "lines": [ - 90, - 130, - 170, - 210, - 250, - 290, - 330, - 370 - ] - } - ], - "ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?)\ndirect_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV')": [ - { - "file": "Gemfile", - "lines": [ - 80, - 120, - 160, - 200, - 240, - 280, - 320, - 360 - ] - } - ], - "Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version)\nnomono_activation_requirements = [\"= #{nomono_locked_spec.version}\"] if nomono_locked": [ - { - "file": "Gemfile", - "lines": [ - 92, - 132, - 172, - 212, - 252, - 292, - 332, - 372 - ] - } - ], - "Kernel.send(:gem, 'nomono', *nomono_activation_requirements)\nrequire 'nomono/bundler'": [ - { - "file": "Gemfile", - "lines": [ - 95, - 135, - 175, - 215, - 255, - 295, - 335, - 375 - ] - } - ], - "direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV')\ndirect_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil)": [ - { - "file": "Gemfile", - "lines": [ - 81, - 121, - 161, - 201, - 241, - 281, - 321, - 361 - ] - } - ], "eval_nomono_gems(\ngems: direct_sibling_gems,": [ { "file": "Gemfile", "lines": [ 59, - 99, - 139, - 179, - 219, - 259, - 299, - 339, - 379 - ] - } - ], - "gems: direct_sibling_gems,\nprefix: 'STRUCTUREDMERGE',": [ - { - "file": "Gemfile", - "lines": [ - 100, - 140, - 180, - 220, - 260, - 300, - 340, - 380 + 99 ] } ], @@ -125,29 +13,7 @@ "file": "Gemfile", "lines": [ 42, - 86, - 126, - 166, - 206, - 246, - 286, - 326, - 366 - ] - } - ], - "if direct_sibling_dev_was_set\nENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original": [ - { - "file": "Gemfile", - "lines": [ - 109, - 149, - 189, - 229, - 269, - 309, - 349, - 389 + 86 ] } ], @@ -156,14 +22,7 @@ "file": "Gemfile", "lines": [ 34, - 78, - 118, - 158, - 198, - 238, - 278, - 318, - 358 + 78 ] } ], @@ -172,29 +31,7 @@ "file": "Gemfile", "lines": [ 68, - 108, - 148, - 188, - 228, - 268, - 308, - 348, - 388 - ] - } - ], - "nomono_activation_requirements = nomono_requirements\nnomono_lockfile = File.expand_path('Gemfile.lock', __dir__)": [ - { - "file": "Gemfile", - "lines": [ - 84, - 124, - 164, - 204, - 244, - 284, - 324, - 364 + 108 ] } ], @@ -203,14 +40,7 @@ "file": "Gemfile", "lines": [ 47, - 91, - 131, - 171, - 211, - 251, - 291, - 331, - 371 + 91 ] } ], @@ -219,89 +49,7 @@ "file": "Gemfile", "lines": [ 43, - 87, - 127, - 167, - 207, - 247, - 287, - 327, - 367 - ] - } - ], - "nomono_lockfile = File.expand_path('Gemfile.lock', __dir__)\nif File.file?(nomono_lockfile)": [ - { - "file": "Gemfile", - "lines": [ - 85, - 125, - 165, - 205, - 245, - 285, - 325, - 365 - ] - } - ], - "path_env: 'STRUCTUREDMERGE_DEV',\nroot: %w[src my structuredmerge]": [ - { - "file": "Gemfile", - "lines": [ - 102, - 142, - 182, - 222, - 262, - 302, - 342, - 382 - ] - } - ], - "prefix: 'STRUCTUREDMERGE',\npath_env: 'STRUCTUREDMERGE_DEV',": [ - { - "file": "Gemfile", - "lines": [ - 101, - 141, - 181, - 221, - 261, - 301, - 341, - 381 - ] - } - ], - "require 'nomono/bundler'\nENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local": [ - { - "file": "Gemfile", - "lines": [ - 96, - 136, - 176, - 216, - 256, - 296, - 336, - 376 - ] - } - ], - "rescue LoadError\nwarn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.'": [ - { - "file": "Gemfile", - "lines": [ - 105, - 145, - 185, - 225, - 265, - 305, - 345, - 385 + 87 ] } ], @@ -309,8 +57,8 @@ { "file": "gemfiles/modular/templating_local.gemfile", "lines": [ - 60, - 71 + 55, + 66 ] } ] diff --git a/gems/ast-template/.structuredmerge/kettle-jem.yml b/gems/ast-template/.structuredmerge/kettle-jem.yml index 31c999402..c5dc1f1dc 100644 --- a/gems/ast-template/.structuredmerge/kettle-jem.yml +++ b/gems/ast-template/.structuredmerge/kettle-jem.yml @@ -246,6 +246,59 @@ templates: - Gemfile - certs/pboling.pem - tmp/.gitignore + - gemfiles/modular/benchmark/r4/v0.5.gemfile + - gemfiles/modular/benchmark/vHEAD.gemfile + - gemfiles/modular/cgi/r4/v0.5.gemfile + - gemfiles/modular/cgi/vHEAD.gemfile + - gemfiles/modular/coverage.gemfile + - gemfiles/modular/coverage_local.gemfile + - gemfiles/modular/debug.gemfile + - gemfiles/modular/documentation.gemfile + - gemfiles/modular/documentation_local.gemfile + - gemfiles/modular/erb/r2.3/default.gemfile + - gemfiles/modular/erb/r2.6/v2.2.gemfile + - gemfiles/modular/erb/r2/v3.0.gemfile + - gemfiles/modular/erb/r3.1/v4.0.gemfile + - gemfiles/modular/erb/r3/v5.0.gemfile + - gemfiles/modular/erb/r4/v5.0.gemfile + - gemfiles/modular/erb/vHEAD.gemfile + - gemfiles/modular/json/truffleruby_22_3.gemfile + - gemfiles/modular/json/truffleruby_23_0.gemfile + - gemfiles/modular/json/truffleruby_23_1.gemfile + - gemfiles/modular/mutex_m/r2.4/v0.1.gemfile + - gemfiles/modular/mutex_m/r2/v0.3.gemfile + - gemfiles/modular/mutex_m/r3/v0.3.gemfile + - gemfiles/modular/mutex_m/r4/v0.3.gemfile + - gemfiles/modular/mutex_m/vHEAD.gemfile + - gemfiles/modular/optional.gemfile + - gemfiles/modular/recording/r2.3/recording.gemfile + - gemfiles/modular/recording/r2.4/recording.gemfile + - gemfiles/modular/recording/r2.5/recording.gemfile + - gemfiles/modular/recording/r3/recording.gemfile + - gemfiles/modular/recording/r4/recording.gemfile + - gemfiles/modular/recording/vHEAD.gemfile + - gemfiles/modular/rspec.gemfile + - gemfiles/modular/runtime_heads.gemfile + - gemfiles/modular/stringio/r2.4/v0.0.2.gemfile + - gemfiles/modular/stringio/r2/v3.0.gemfile + - gemfiles/modular/stringio/r3/v3.0.gemfile + - gemfiles/modular/stringio/r4/v3.0.gemfile + - gemfiles/modular/stringio/vHEAD.gemfile + - gemfiles/modular/style.gemfile + - gemfiles/modular/style_local.gemfile + - gemfiles/modular/templating.gemfile + - gemfiles/modular/templating_local.gemfile + - gemfiles/modular/webrick/r4/v1.9.gemfile + - gemfiles/modular/webrick/vHEAD.gemfile + - gemfiles/modular/x_std_libs.gemfile + - gemfiles/modular/x_std_libs/r2.3/libs.gemfile + - gemfiles/modular/x_std_libs/r2.4/libs.gemfile + - gemfiles/modular/x_std_libs/r2.6/libs.gemfile + - gemfiles/modular/x_std_libs/r2/libs.gemfile + - gemfiles/modular/x_std_libs/r3.1/libs.gemfile + - gemfiles/modular/x_std_libs/r3/libs.gemfile + - gemfiles/modular/x_std_libs/r4/libs.gemfile + - gemfiles/modular/x_std_libs/vHEAD.gemfile - source: lib/gem/version.rb target: lib/ast/template/version.rb - source: sig/gem.rbs diff --git a/gems/ast-template/Gemfile b/gems/ast-template/Gemfile index fd343a61f..56948e0a4 100644 --- a/gems/ast-template/Gemfile +++ b/gems/ast-template/Gemfile @@ -6,7 +6,7 @@ # kettle-jem will then preserve content between those markers across template runs. # kettle-jem:unfreeze -source 'https://gem.coop' +source "https://gem.coop" git_source(:codeberg) { |repo_name| "https://codeberg.org/#{repo_name}" } git_source(:gitlab) { |repo_name| "https://gitlab.com/#{repo_name}" } @@ -19,17 +19,61 @@ git_source(:gitlab) { |repo_name| "https://gitlab.com/#{repo_name}" } gemspec # Local workspace dependency wiring for *_local.gemfile overrides -nomono_requirements = ['~> 1.0', '>= 1.0.8'] -gem 'nomono', *nomono_requirements, require: false # ruby >= 2.2 +nomono_requirements = ["~> 1.0", ">= 1.0.8"] +gem "nomono", *nomono_requirements, require: false # ruby >= 2.2 # Direct sibling dependencies (env-switched via STRUCTUREDMERGE_DEV) direct_sibling_gems = %w[ ast-merge ] -direct_sibling_dev = ENV.fetch('STRUCTUREDMERGE_DEV', '') +direct_sibling_dev = ENV.fetch("STRUCTUREDMERGE_DEV", "") direct_sibling_local = !direct_sibling_dev.empty? && !%w[false 0 no off].include?(direct_sibling_dev.downcase) -direct_sibling_templating = ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? +direct_sibling_templating = ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? + +if direct_sibling_gems.any? && + (direct_sibling_local || + ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero?) + direct_sibling_dev_was_set = ENV.key?("STRUCTUREDMERGE_DEV") + direct_sibling_dev_original = ENV.fetch("STRUCTUREDMERGE_DEV", nil) + begin + nomono_activation_requirements = nomono_requirements + nomono_lockfile = File.expand_path("Gemfile.lock", __dir__) + if File.file?(nomono_lockfile) + nomono_locked_spec = Bundler::LockfileParser + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == "nomono" } + nomono_locked = nomono_locked_spec && + Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) + if nomono_locked + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] + end + end + Kernel.send(:gem, "nomono", *nomono_activation_requirements) + require "nomono/bundler" + if direct_sibling_templating && !direct_sibling_local + ENV["STRUCTUREDMERGE_DEV"] = File.expand_path("..", __dir__) + end + + eval_nomono_gems( + gems: direct_sibling_gems, + prefix: "STRUCTUREDMERGE", + path_env: "STRUCTUREDMERGE_DEV", + root: ["src", "my", "structuredmerge"] + ) + rescue LoadError + warn "Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies." + ensure + if direct_sibling_templating && !direct_sibling_local + if direct_sibling_dev_was_set + ENV["STRUCTUREDMERGE_DEV"] = direct_sibling_dev_original + else + ENV.delete("STRUCTUREDMERGE_DEV") + end + end + end +end if direct_sibling_gems.any? && (direct_sibling_local || @@ -72,28 +116,28 @@ if direct_sibling_gems.any? && end # Use released TSLP with the Ruby ABI platform-gem fix. -gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' +gem "tree_sitter_language_pack", "~> 1.13", ">= 1.13.3" # Templating (env-switched: STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local paths) -eval_gemfile 'gemfiles/modular/templating.gemfile' if ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? +eval_gemfile "gemfiles/modular/templating.gemfile" if ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? # Debugging -eval_gemfile 'gemfiles/modular/debug.gemfile' +eval_gemfile "gemfiles/modular/debug.gemfile" # Code Coverage (env-switched: KETTLE_DEV_DEV=true for local paths) -eval_gemfile 'gemfiles/modular/coverage.gemfile' +eval_gemfile "gemfiles/modular/coverage.gemfile" # Linting -eval_gemfile 'gemfiles/modular/style.gemfile' +eval_gemfile "gemfiles/modular/style.gemfile" # Documentation -eval_gemfile 'gemfiles/modular/documentation.gemfile' +eval_gemfile "gemfiles/modular/documentation.gemfile" # Optional -eval_gemfile 'gemfiles/modular/optional.gemfile' +eval_gemfile "gemfiles/modular/optional.gemfile" ### Std Lib Extracted Gems -eval_gemfile 'gemfiles/modular/x_std_libs.gemfile' +eval_gemfile "gemfiles/modular/x_std_libs.gemfile" # See unlocked_deps appraisal for more details on irb inclusion -gem 'irb', '~> 1.17' # ruby >= 2.7 +gem "irb", "~> 1.17" # ruby >= 2.7 diff --git a/gems/ast-template/Gemfile.lock b/gems/ast-template/Gemfile.lock index 22d1ee19e..c202de31e 100644 --- a/gems/ast-template/Gemfile.lock +++ b/gems/ast-template/Gemfile.lock @@ -382,7 +382,7 @@ GEM mutex_m (0.3.0) nokogiri (1.19.4-x86_64-linux-gnu) racc (~> 1.4) - nomono (1.0.8) + nomono (1.0.9) openssl (4.0.2) ostruct (0.6.3) parallel (1.28.0) @@ -526,7 +526,7 @@ GEM simplecov-rcov (0.3.7) simplecov (>= 0.4.1) simplecov_json_formatter (0.1.4) - sorbet-runtime (0.6.13342) + sorbet-runtime (0.6.13347) standard (1.56.0) language_server-protocol (~> 3.17.0.2) lint_roller (~> 1.0) @@ -695,7 +695,7 @@ CHECKSUMS citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 - commonmarker (2.9.0-x86_64-linux) sha256=8cfe92970eef585a19ddf6613224b91cab64d6029834661bda801f877c9c7f43 + commonmarker (2.9.0-x86_64-linux) commonmarker-merge (7.1.0) concurrent-ruby (1.3.7) sha256=4412caec3a5ea2e5fdc52076724c071a81f2c0593d83b2ac8cbb8ca63b3151b0 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 @@ -724,7 +724,7 @@ CHECKSUMS json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 json-merge (7.1.0) kettle-dev (2.3.7) sha256=eb370113cd030d03cbe2d33b31c99858951017e5ad21a17e9ed89dc3770028ee - kettle-drift (1.0.6) sha256=46eda08fa4411d1f3c6682a95eef1c9df4e94611b3949f49d4c7b43c0ed356a3 + kettle-drift (1.0.6) kettle-jem (7.1.0) kettle-rb (0.1.4) sha256=9cef7ce4f7021666b7222292f29051e51eaf042e8a5db11f3f4dd72f74243fc1 kettle-soup-cover (1.1.3) sha256=a373827da22a7131d093afd32945e5b7d7a10a01ebfdded8fd2cb8230d69c8ad @@ -736,11 +736,11 @@ CHECKSUMS lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 markdown-merge (7.1.0) - markly (0.16.0) sha256=6f70d79e385b1efc9e171f74c81628826259039fe6c778e03c3924c71dac5511 + markly (0.16.0) markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-x86_64-linux-gnu) sha256=379fae440b28915e3f19d752ce2dcf8465ed2b2fbefd2a7ca0dd497bc981a06a - nomono (1.0.8) sha256=bf4b9b426cbf216ab17b70db474f691b8ae1f1e29de8db4b0ecd405e6e7e1c80 + nomono (1.0.9) openssl (4.0.2) sha256=1037ad2868ae58df9ad917891c0c0f9815a1172f6846d4bcdd508e4c2ee747c2 ostruct (0.6.3) sha256=95a2ed4a4bd1d190784e666b47b2d3f078e4a9efda2fccf18f84ddc6538ed912 parallel (1.28.0) sha256=33e6de1484baf2524792d178b0913fc8eb94c628d6cfe45599ad4458c638c970 @@ -793,7 +793,7 @@ CHECKSUMS ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 rust-merge (7.1.0) - service_actor (3.9.4) sha256=e63b523630b9a7e62959b2a90113b08d2565b5de9c148557b281ef847c9539ce + service_actor (3.9.4) silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (0.22.0) sha256=fe2622c7834ff23b98066bb0a854284b2729a569ac659f82621fc22ef36213a5 simplecov-cobertura (3.2.0) sha256=70d702658677fcb20e5aceb6915ccf8bc62ff2ccd38b62b3ad5c9db5c0888740 @@ -803,7 +803,7 @@ CHECKSUMS simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_json_formatter (0.1.4) sha256=529418fbe8de1713ac2b2d612aa3daa56d316975d307244399fa4838c601b428 smorg-rb (7.1.0) - sorbet-runtime (0.6.13342) sha256=dbeb9892597f593ed2b29e38018912787f6c4e0c4b736d8af0d6bd3c63bde3c3 + sorbet-runtime (0.6.13347) sha256=54e7221d9f4b63f58aec79f3043752a9ba7810347c6ae0d903531591cc2d5f01 standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b standard-performance (1.9.0) sha256=49483d31be448292951d80e5e67cdcb576c2502103c7b40aec6f1b6e9c88e3f2 @@ -816,9 +816,9 @@ CHECKSUMS timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.4) sha256=33b926958f504525bba3ed511ab66fbcbf8ef30390815e931436b30f27ffcad0 - toml (0.3.0) sha256=0a91d0f76a9036e84e44f95693b12f58d358c1df3ac8e3b5271f2056ecc6e4b9 + toml (0.3.0) toml-merge (7.1.0) - toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 + toml-rb (4.2.0) tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f diff --git a/gems/ast-template/Rakefile b/gems/ast-template/Rakefile index 1da755b67..193fad244 100644 --- a/gems/ast-template/Rakefile +++ b/gems/ast-template/Rakefile @@ -130,23 +130,23 @@ end ### DUPLICATE DRIFT TASKS begin - require 'kettle/drift' + require "kettle/drift" Kettle::Drift.install_tasks rescue LoadError - desc('(stub) kettle:drift:check is unavailable') - task('kettle:drift:check') do + desc("(stub) kettle:drift:check is unavailable") + task("kettle:drift:check") do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc('(stub) kettle:drift:update is unavailable') - task('kettle:drift:update') do + desc("(stub) kettle:drift:update is unavailable") + task("kettle:drift:update") do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc('(stub) kettle:drift:force_update is unavailable') - task('kettle:drift:force_update') do + desc("(stub) kettle:drift:force_update is unavailable") + task("kettle:drift:force_update") do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc('(stub) kettle:drift is unavailable') - task('kettle:drift' => 'kettle:drift:update') + desc("(stub) kettle:drift is unavailable") + task("kettle:drift" => "kettle:drift:update") end ### TEMPLATING TASKS diff --git a/gems/ast-template/lib/ast/template/version.rb b/gems/ast-template/lib/ast/template/version.rb index 0e1e7cf5d..2cf6f7536 100644 --- a/gems/ast-template/lib/ast/template/version.rb +++ b/gems/ast-template/lib/ast/template/version.rb @@ -3,7 +3,7 @@ module Ast module Template module Version - VERSION = '7.1.0' + VERSION = "7.1.0" end VERSION = Version::VERSION # Traditional Constant Location end diff --git a/gems/binary-merge/.kettle-drift.lock b/gems/binary-merge/.kettle-drift.lock index f1287e677..d28e306b0 100644 --- a/gems/binary-merge/.kettle-drift.lock +++ b/gems/binary-merge/.kettle-drift.lock @@ -1,130 +1,10 @@ { - "(direct_sibling_local ||\nENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?)": [ - { - "file": "Gemfile", - "lines": [ - 79, - 119, - 159, - 199, - 239, - 279, - 319, - 359, - 399 - ] - } - ], - ".find { |spec| spec.name == 'nomono' }\nnomono_locked = nomono_locked_spec &&": [ - { - "file": "Gemfile", - "lines": [ - 90, - 130, - 170, - 210, - 250, - 290, - 330, - 370, - 410 - ] - } - ], - "ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?)\ndirect_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV')": [ - { - "file": "Gemfile", - "lines": [ - 80, - 120, - 160, - 200, - 240, - 280, - 320, - 360, - 400 - ] - } - ], - "Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version)\nnomono_activation_requirements = [\"= #{nomono_locked_spec.version}\"] if nomono_locked": [ - { - "file": "Gemfile", - "lines": [ - 92, - 132, - 172, - 212, - 252, - 292, - 332, - 372, - 412 - ] - } - ], - "Kernel.send(:gem, 'nomono', *nomono_activation_requirements)\nrequire 'nomono/bundler'": [ - { - "file": "Gemfile", - "lines": [ - 95, - 135, - 175, - 215, - 255, - 295, - 335, - 375, - 415 - ] - } - ], - "direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV')\ndirect_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil)": [ - { - "file": "Gemfile", - "lines": [ - 81, - 121, - 161, - 201, - 241, - 281, - 321, - 361, - 401 - ] - } - ], "eval_nomono_gems(\ngems: direct_sibling_gems,": [ { "file": "Gemfile", "lines": [ 59, - 99, - 139, - 179, - 219, - 259, - 299, - 339, - 379, - 419 - ] - } - ], - "gems: direct_sibling_gems,\nprefix: 'STRUCTUREDMERGE',": [ - { - "file": "Gemfile", - "lines": [ - 100, - 140, - 180, - 220, - 260, - 300, - 340, - 380, - 420 + 99 ] } ], @@ -133,31 +13,7 @@ "file": "Gemfile", "lines": [ 42, - 86, - 126, - 166, - 206, - 246, - 286, - 326, - 366, - 406 - ] - } - ], - "if direct_sibling_dev_was_set\nENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original": [ - { - "file": "Gemfile", - "lines": [ - 109, - 149, - 189, - 229, - 269, - 309, - 349, - 389, - 429 + 86 ] } ], @@ -166,15 +22,7 @@ "file": "Gemfile", "lines": [ 34, - 78, - 118, - 158, - 198, - 238, - 278, - 318, - 358, - 398 + 78 ] } ], @@ -183,31 +31,7 @@ "file": "Gemfile", "lines": [ 68, - 108, - 148, - 188, - 228, - 268, - 308, - 348, - 388, - 428 - ] - } - ], - "nomono_activation_requirements = nomono_requirements\nnomono_lockfile = File.expand_path('Gemfile.lock', __dir__)": [ - { - "file": "Gemfile", - "lines": [ - 84, - 124, - 164, - 204, - 244, - 284, - 324, - 364, - 404 + 108 ] } ], @@ -216,15 +40,7 @@ "file": "Gemfile", "lines": [ 47, - 91, - 131, - 171, - 211, - 251, - 291, - 331, - 371, - 411 + 91 ] } ], @@ -233,95 +49,7 @@ "file": "Gemfile", "lines": [ 43, - 87, - 127, - 167, - 207, - 247, - 287, - 327, - 367, - 407 - ] - } - ], - "nomono_lockfile = File.expand_path('Gemfile.lock', __dir__)\nif File.file?(nomono_lockfile)": [ - { - "file": "Gemfile", - "lines": [ - 85, - 125, - 165, - 205, - 245, - 285, - 325, - 365, - 405 - ] - } - ], - "path_env: 'STRUCTUREDMERGE_DEV',\nroot: %w[src my structuredmerge]": [ - { - "file": "Gemfile", - "lines": [ - 102, - 142, - 182, - 222, - 262, - 302, - 342, - 382, - 422 - ] - } - ], - "prefix: 'STRUCTUREDMERGE',\npath_env: 'STRUCTUREDMERGE_DEV',": [ - { - "file": "Gemfile", - "lines": [ - 101, - 141, - 181, - 221, - 261, - 301, - 341, - 381, - 421 - ] - } - ], - "require 'nomono/bundler'\nENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local": [ - { - "file": "Gemfile", - "lines": [ - 96, - 136, - 176, - 216, - 256, - 296, - 336, - 376, - 416 - ] - } - ], - "rescue LoadError\nwarn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.'": [ - { - "file": "Gemfile", - "lines": [ - 105, - 145, - 185, - 225, - 265, - 305, - 345, - 385, - 425 + 87 ] } ], @@ -329,8 +57,8 @@ { "file": "gemfiles/modular/templating_local.gemfile", "lines": [ - 60, - 71 + 55, + 66 ] } ] diff --git a/gems/binary-merge/.structuredmerge/kettle-jem.yml b/gems/binary-merge/.structuredmerge/kettle-jem.yml index a5ddade46..12b0dcc81 100644 --- a/gems/binary-merge/.structuredmerge/kettle-jem.yml +++ b/gems/binary-merge/.structuredmerge/kettle-jem.yml @@ -246,6 +246,59 @@ templates: - Gemfile - certs/pboling.pem - tmp/.gitignore + - gemfiles/modular/benchmark/r4/v0.5.gemfile + - gemfiles/modular/benchmark/vHEAD.gemfile + - gemfiles/modular/cgi/r4/v0.5.gemfile + - gemfiles/modular/cgi/vHEAD.gemfile + - gemfiles/modular/coverage.gemfile + - gemfiles/modular/coverage_local.gemfile + - gemfiles/modular/debug.gemfile + - gemfiles/modular/documentation.gemfile + - gemfiles/modular/documentation_local.gemfile + - gemfiles/modular/erb/r2.3/default.gemfile + - gemfiles/modular/erb/r2.6/v2.2.gemfile + - gemfiles/modular/erb/r2/v3.0.gemfile + - gemfiles/modular/erb/r3.1/v4.0.gemfile + - gemfiles/modular/erb/r3/v5.0.gemfile + - gemfiles/modular/erb/r4/v5.0.gemfile + - gemfiles/modular/erb/vHEAD.gemfile + - gemfiles/modular/json/truffleruby_22_3.gemfile + - gemfiles/modular/json/truffleruby_23_0.gemfile + - gemfiles/modular/json/truffleruby_23_1.gemfile + - gemfiles/modular/mutex_m/r2.4/v0.1.gemfile + - gemfiles/modular/mutex_m/r2/v0.3.gemfile + - gemfiles/modular/mutex_m/r3/v0.3.gemfile + - gemfiles/modular/mutex_m/r4/v0.3.gemfile + - gemfiles/modular/mutex_m/vHEAD.gemfile + - gemfiles/modular/optional.gemfile + - gemfiles/modular/recording/r2.3/recording.gemfile + - gemfiles/modular/recording/r2.4/recording.gemfile + - gemfiles/modular/recording/r2.5/recording.gemfile + - gemfiles/modular/recording/r3/recording.gemfile + - gemfiles/modular/recording/r4/recording.gemfile + - gemfiles/modular/recording/vHEAD.gemfile + - gemfiles/modular/rspec.gemfile + - gemfiles/modular/runtime_heads.gemfile + - gemfiles/modular/stringio/r2.4/v0.0.2.gemfile + - gemfiles/modular/stringio/r2/v3.0.gemfile + - gemfiles/modular/stringio/r3/v3.0.gemfile + - gemfiles/modular/stringio/r4/v3.0.gemfile + - gemfiles/modular/stringio/vHEAD.gemfile + - gemfiles/modular/style.gemfile + - gemfiles/modular/style_local.gemfile + - gemfiles/modular/templating.gemfile + - gemfiles/modular/templating_local.gemfile + - gemfiles/modular/webrick/r4/v1.9.gemfile + - gemfiles/modular/webrick/vHEAD.gemfile + - gemfiles/modular/x_std_libs.gemfile + - gemfiles/modular/x_std_libs/r2.3/libs.gemfile + - gemfiles/modular/x_std_libs/r2.4/libs.gemfile + - gemfiles/modular/x_std_libs/r2.6/libs.gemfile + - gemfiles/modular/x_std_libs/r2/libs.gemfile + - gemfiles/modular/x_std_libs/r3.1/libs.gemfile + - gemfiles/modular/x_std_libs/r3/libs.gemfile + - gemfiles/modular/x_std_libs/r4/libs.gemfile + - gemfiles/modular/x_std_libs/vHEAD.gemfile - source: lib/gem/version.rb target: lib/binary/merge/version.rb - source: sig/gem.rbs diff --git a/gems/binary-merge/Gemfile b/gems/binary-merge/Gemfile index ddfe8b458..82cf7e471 100644 --- a/gems/binary-merge/Gemfile +++ b/gems/binary-merge/Gemfile @@ -6,7 +6,7 @@ # kettle-jem will then preserve content between those markers across template runs. # kettle-jem:unfreeze -source 'https://gem.coop' +source "https://gem.coop" git_source(:codeberg) { |repo_name| "https://codeberg.org/#{repo_name}" } git_source(:gitlab) { |repo_name| "https://gitlab.com/#{repo_name}" } @@ -19,17 +19,61 @@ git_source(:gitlab) { |repo_name| "https://gitlab.com/#{repo_name}" } gemspec # Local workspace dependency wiring for *_local.gemfile overrides -nomono_requirements = ['~> 1.0', '>= 1.0.8'] -gem 'nomono', *nomono_requirements, require: false # ruby >= 2.2 +nomono_requirements = ["~> 1.0", ">= 1.0.8"] +gem "nomono", *nomono_requirements, require: false # ruby >= 2.2 # Direct sibling dependencies (env-switched via STRUCTUREDMERGE_DEV) direct_sibling_gems = %w[ tree_haver ] -direct_sibling_dev = ENV.fetch('STRUCTUREDMERGE_DEV', '') +direct_sibling_dev = ENV.fetch("STRUCTUREDMERGE_DEV", "") direct_sibling_local = !direct_sibling_dev.empty? && !%w[false 0 no off].include?(direct_sibling_dev.downcase) -direct_sibling_templating = ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? +direct_sibling_templating = ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? + +if direct_sibling_gems.any? && + (direct_sibling_local || + ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero?) + direct_sibling_dev_was_set = ENV.key?("STRUCTUREDMERGE_DEV") + direct_sibling_dev_original = ENV.fetch("STRUCTUREDMERGE_DEV", nil) + begin + nomono_activation_requirements = nomono_requirements + nomono_lockfile = File.expand_path("Gemfile.lock", __dir__) + if File.file?(nomono_lockfile) + nomono_locked_spec = Bundler::LockfileParser + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == "nomono" } + nomono_locked = nomono_locked_spec && + Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) + if nomono_locked + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] + end + end + Kernel.send(:gem, "nomono", *nomono_activation_requirements) + require "nomono/bundler" + if direct_sibling_templating && !direct_sibling_local + ENV["STRUCTUREDMERGE_DEV"] = File.expand_path("..", __dir__) + end + + eval_nomono_gems( + gems: direct_sibling_gems, + prefix: "STRUCTUREDMERGE", + path_env: "STRUCTUREDMERGE_DEV", + root: ["src", "my", "structuredmerge"] + ) + rescue LoadError + warn "Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies." + ensure + if direct_sibling_templating && !direct_sibling_local + if direct_sibling_dev_was_set + ENV["STRUCTUREDMERGE_DEV"] = direct_sibling_dev_original + else + ENV.delete("STRUCTUREDMERGE_DEV") + end + end + end +end if direct_sibling_gems.any? && (direct_sibling_local || @@ -72,28 +116,28 @@ if direct_sibling_gems.any? && end # Use released TSLP with the Ruby ABI platform-gem fix. -gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' +gem "tree_sitter_language_pack", "~> 1.13", ">= 1.13.3" # Templating (env-switched: STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local paths) -eval_gemfile 'gemfiles/modular/templating.gemfile' if ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? +eval_gemfile "gemfiles/modular/templating.gemfile" if ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? # Debugging -eval_gemfile 'gemfiles/modular/debug.gemfile' +eval_gemfile "gemfiles/modular/debug.gemfile" # Code Coverage (env-switched: KETTLE_DEV_DEV=true for local paths) -eval_gemfile 'gemfiles/modular/coverage.gemfile' +eval_gemfile "gemfiles/modular/coverage.gemfile" # Linting -eval_gemfile 'gemfiles/modular/style.gemfile' +eval_gemfile "gemfiles/modular/style.gemfile" # Documentation -eval_gemfile 'gemfiles/modular/documentation.gemfile' +eval_gemfile "gemfiles/modular/documentation.gemfile" # Optional -eval_gemfile 'gemfiles/modular/optional.gemfile' +eval_gemfile "gemfiles/modular/optional.gemfile" ### Std Lib Extracted Gems -eval_gemfile 'gemfiles/modular/x_std_libs.gemfile' +eval_gemfile "gemfiles/modular/x_std_libs.gemfile" # See unlocked_deps appraisal for more details on irb inclusion -gem 'irb', '~> 1.17' # ruby >= 2.7 +gem "irb", "~> 1.17" # ruby >= 2.7 diff --git a/gems/binary-merge/Gemfile.lock b/gems/binary-merge/Gemfile.lock index 3d244710f..0d0657e16 100644 --- a/gems/binary-merge/Gemfile.lock +++ b/gems/binary-merge/Gemfile.lock @@ -284,12 +284,7 @@ GEM thor (~> 1.0) citrus (3.0.2) cmdparse (3.0.7) - commonmarker (2.9.0-aarch64-linux) - commonmarker (2.9.0-aarch64-linux-musl) - commonmarker (2.9.0-arm64-darwin) - commonmarker (2.9.0-x86_64-darwin) commonmarker (2.9.0-x86_64-linux) - commonmarker (2.9.0-x86_64-linux-musl) concurrent-ruby (1.3.7) date (3.5.1) debug (1.11.1) @@ -391,13 +386,11 @@ GEM racc (~> 1.4) nokogiri (1.19.4-arm64-darwin) racc (~> 1.4) - nokogiri (1.19.4-x86_64-darwin) - racc (~> 1.4) nokogiri (1.19.4-x86_64-linux-gnu) racc (~> 1.4) nokogiri (1.19.4-x86_64-linux-musl) racc (~> 1.4) - nomono (1.0.8) + nomono (1.0.9) openssl (4.0.2) ostruct (0.6.3) parallel (1.28.0) @@ -583,8 +576,6 @@ GEM sorbet-runtime (~> 0.5) tree_sitter_language_pack (1.13.3-arm64-darwin) sorbet-runtime (~> 0.5) - tree_sitter_language_pack (1.13.3-x86_64-darwin) - sorbet-runtime (~> 0.5) tree_sitter_language_pack (1.13.3-x86_64-linux) sorbet-runtime (~> 0.5) tsort (0.2.0) @@ -626,7 +617,7 @@ PLATFORMS aarch64-linux-gnu aarch64-linux-musl arm64-darwin - x86_64-darwin + x86_64-linux x86_64-linux-gnu x86_64-linux-musl @@ -721,12 +712,7 @@ CHECKSUMS citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 - commonmarker (2.9.0-aarch64-linux) sha256=e2b4aadb9a2cfa4e206582641ce3a49465549ac1ed4c289fdd63b78d8f24579c - commonmarker (2.9.0-aarch64-linux-musl) sha256=1cf4d2821f2a7e64945f1ed7c4eeced586fdb27ea7fe7337788802cf8f57cfca - commonmarker (2.9.0-arm64-darwin) sha256=1748dbfa4f5813b0d2a14bb4bbfa65a4ec293aa1c825016d60029ee0e132b046 - commonmarker (2.9.0-x86_64-darwin) sha256=0a9914ccfd2f5d2a59c7bd0dda4fe90eb084cf513b477e499008e09ec9d6edd6 - commonmarker (2.9.0-x86_64-linux) sha256=8cfe92970eef585a19ddf6613224b91cab64d6029834661bda801f877c9c7f43 - commonmarker (2.9.0-x86_64-linux-musl) sha256=293921398b839f79ceaf55010e061357e34f053822c3b003cd0be6686176335e + commonmarker (2.9.0-x86_64-linux) commonmarker-merge (7.1.0) concurrent-ruby (1.3.7) sha256=4412caec3a5ea2e5fdc52076724c071a81f2c0593d83b2ac8cbb8ca63b3151b0 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 @@ -755,7 +741,7 @@ CHECKSUMS json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 json-merge (7.1.0) kettle-dev (2.3.7) sha256=eb370113cd030d03cbe2d33b31c99858951017e5ad21a17e9ed89dc3770028ee - kettle-drift (1.0.6) sha256=46eda08fa4411d1f3c6682a95eef1c9df4e94611b3949f49d4c7b43c0ed356a3 + kettle-drift (1.0.6) kettle-jem (7.1.0) kettle-rb (0.1.4) sha256=9cef7ce4f7021666b7222292f29051e51eaf042e8a5db11f3f4dd72f74243fc1 kettle-soup-cover (1.1.3) sha256=a373827da22a7131d093afd32945e5b7d7a10a01ebfdded8fd2cb8230d69c8ad @@ -767,16 +753,15 @@ CHECKSUMS lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 markdown-merge (7.1.0) - markly (0.16.0) sha256=6f70d79e385b1efc9e171f74c81628826259039fe6c778e03c3924c71dac5511 + markly (0.16.0) markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-aarch64-linux-gnu) sha256=1269fb644a6de405057a53dd5c762b1209b43ca7424f839454d3dbc677c31a8f nokogiri (1.19.4-aarch64-linux-musl) sha256=35c65b9ce72b3bb03207bdbe7067915019dc18c1b9b59139684bd6690fdd01af nokogiri (1.19.4-arm64-darwin) sha256=a46db9853286e6597b36ebc6953817d15acf3a299583eb3f89fdc6f91dd63527 - nokogiri (1.19.4-x86_64-darwin) sha256=7fd17057d3e1f00e9954a74b3cd76595d3d4a5ef233b7ed9599047c204f70551 nokogiri (1.19.4-x86_64-linux-gnu) sha256=379fae440b28915e3f19d752ce2dcf8465ed2b2fbefd2a7ca0dd497bc981a06a nokogiri (1.19.4-x86_64-linux-musl) sha256=17dfb7c1fa194ae02fbf7c51a7afc8d278045ab3fdacfd86f91d02d7b274470b - nomono (1.0.8) sha256=bf4b9b426cbf216ab17b70db474f691b8ae1f1e29de8db4b0ecd405e6e7e1c80 + nomono (1.0.9) openssl (4.0.2) sha256=1037ad2868ae58df9ad917891c0c0f9815a1172f6846d4bcdd508e4c2ee747c2 ostruct (0.6.3) sha256=95a2ed4a4bd1d190784e666b47b2d3f078e4a9efda2fccf18f84ddc6538ed912 parallel (1.28.0) sha256=33e6de1484baf2524792d178b0913fc8eb94c628d6cfe45599ad4458c638c970 @@ -829,7 +814,7 @@ CHECKSUMS ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 rust-merge (7.1.0) - service_actor (3.9.4) sha256=e63b523630b9a7e62959b2a90113b08d2565b5de9c148557b281ef847c9539ce + service_actor (3.9.4) silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (0.22.0) sha256=fe2622c7834ff23b98066bb0a854284b2729a569ac659f82621fc22ef36213a5 simplecov-cobertura (3.2.0) sha256=70d702658677fcb20e5aceb6915ccf8bc62ff2ccd38b62b3ad5c9db5c0888740 @@ -851,14 +836,13 @@ CHECKSUMS thor (1.5.0) sha256=e3a9e55fe857e44859ce104a84675ab6e8cd59c650a49106a05f55f136425e73 timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 - token-resolver (2.0.5) sha256=b852f924287ffb58a440856e862b056c8ad97e74b4b2526cee43e0771f40c25c - toml (0.3.0) sha256=0a91d0f76a9036e84e44f95693b12f58d358c1df3ac8e3b5271f2056ecc6e4b9 + token-resolver (2.0.5) + toml (0.3.0) toml-merge (7.1.0) - toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 + toml-rb (4.2.0) tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-aarch64-linux) sha256=55ffc7c87868cb45658338363d9eba51b4a8b0259aa88e4de368d2bd1d52fea4 tree_sitter_language_pack (1.13.3-arm64-darwin) sha256=bc2498db605f212a1dbd2465ed3f65190d7da786f6ed5d30fcf958121aeb4a5c - tree_sitter_language_pack (1.13.3-x86_64-darwin) sha256=061f7da6e1cc4ba936fad436ee0653d7dfdfa4aa879cf555403e3aa373d43966 tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 diff --git a/gems/binary-merge/Rakefile b/gems/binary-merge/Rakefile index b29d3a04b..ea4ce831d 100644 --- a/gems/binary-merge/Rakefile +++ b/gems/binary-merge/Rakefile @@ -130,23 +130,23 @@ end ### DUPLICATE DRIFT TASKS begin - require 'kettle/drift' + require "kettle/drift" Kettle::Drift.install_tasks rescue LoadError - desc('(stub) kettle:drift:check is unavailable') - task('kettle:drift:check') do + desc("(stub) kettle:drift:check is unavailable") + task("kettle:drift:check") do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc('(stub) kettle:drift:update is unavailable') - task('kettle:drift:update') do + desc("(stub) kettle:drift:update is unavailable") + task("kettle:drift:update") do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc('(stub) kettle:drift:force_update is unavailable') - task('kettle:drift:force_update') do + desc("(stub) kettle:drift:force_update is unavailable") + task("kettle:drift:force_update") do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc('(stub) kettle:drift is unavailable') - task('kettle:drift' => 'kettle:drift:update') + desc("(stub) kettle:drift is unavailable") + task("kettle:drift" => "kettle:drift:update") end ### TEMPLATING TASKS diff --git a/gems/binary-merge/lib/binary/merge/version.rb b/gems/binary-merge/lib/binary/merge/version.rb index d8ae92dfa..bb78df888 100644 --- a/gems/binary-merge/lib/binary/merge/version.rb +++ b/gems/binary-merge/lib/binary/merge/version.rb @@ -3,7 +3,7 @@ module Binary module Merge module Version - VERSION = '7.1.0' + VERSION = "7.1.0" end VERSION = Version::VERSION # Traditional Constant Location end diff --git a/gems/rust-merge/Gemfile.lock b/gems/rust-merge/Gemfile.lock index b8cfee752..906733529 100644 --- a/gems/rust-merge/Gemfile.lock +++ b/gems/rust-merge/Gemfile.lock @@ -7,7 +7,39 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/ast-merge + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly + specs: + ast-crispr-markdown-markly (7.1.0) + ast-crispr (= 7.1.0) + markly-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism + specs: + ast-crispr-ruby-prism (7.1.0) + ast-crispr (= 7.1.0) + prism-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr + specs: + ast-crispr (7.1.0) + ast-merge (= 7.1.0) + service_actor (~> 3.9) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git + specs: + ast-merge-git (7.1.0) + ast-merge (= 7.1.0) + json-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge specs: ast-merge (7.1.0) benchmark @@ -16,7 +48,193 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/tree_haver + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template + specs: + ast-template (7.1.0) + ast-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge + specs: + bash-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge + specs: + binary-merge (7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge + specs: + citrus-toml-merge (7.1.0) + toml-merge (= 7.1.0) + toml-rb (~> 4.1) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge + specs: + commonmarker-merge (7.1.0) + commonmarker (~> 2.2) + markdown-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge + specs: + dotenv-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge + specs: + go-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge + specs: + json-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem + specs: + kettle-jem (7.1.0) + addressable (>= 2.8, < 3) + ast-crispr-markdown-markly (= 7.1.0) + ast-crispr-ruby-prism (= 7.1.0) + ast-merge (= 7.1.0) + bash-merge (= 7.1.0) + citrus-toml-merge (= 7.1.0) + commonmarker-merge (= 7.1.0) + dotenv-merge (= 7.1.0) + json-merge (= 7.1.0) + kettle-dev (~> 2.3, >= 2.3.5) + kettle-rb (~> 0.1, >= 0.1.4) + kramdown-merge (= 7.1.0) + markdown-merge (= 7.1.0) + markly-merge (= 7.1.0) + prism-merge (= 7.1.0) + psych-merge (= 7.1.0) + rbs (>= 3.10) + rbs-merge (= 7.1.0) + ruby-merge (= 7.1.0) + token-resolver (~> 2.0, >= 2.0.4) + toml-merge (= 7.1.0) + toml-rb (~> 4.2) + tree_haver (= 7.1.0) + yaml-merge (= 7.1.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge + specs: + kramdown-merge (7.1.0) + kramdown (~> 2.5) + markdown-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge + specs: + markdown-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge + specs: + markly-merge (7.1.0) + markdown-merge (= 7.1.0) + markly (~> 0.9) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge + specs: + parslet-toml-merge (7.1.0) + toml (~> 0.3) + toml-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge + specs: + plain-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge + specs: + prism-merge (7.1.0) + prism (~> 1.6) + ruby-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge + specs: + psych-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + yaml-merge (= 7.1.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge + specs: + rbs-merge (7.1.0) + ast-merge (= 7.1.0) + rbs (>= 3.10) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge + specs: + ruby-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb + specs: + smorg-rb (7.1.0) + ast-merge (= 7.1.0) + ast-merge-git (= 7.1.0) + go-merge (= 7.1.0) + json-merge (= 7.1.0) + kettle-jem (= 7.1.0) + markly-merge (= 7.1.0) + plain-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge + specs: + toml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver specs: tree_haver (7.1.0) citrus (~> 3.0) @@ -24,6 +242,29 @@ PATH tree_sitter_language_pack (>= 1.13.2, < 2.0) version_gem (~> 1.1, >= 1.1.9) +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge + specs: + typescript-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge + specs: + yaml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge + specs: + zip-merge (7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + GEM remote: https://gem.coop/ specs: @@ -48,6 +289,11 @@ GEM cgi (0.5.2) citrus (3.0.2) cmdparse (3.0.7) + commonmarker (2.9.0-aarch64-linux) + commonmarker (2.9.0-aarch64-linux-musl) + commonmarker (2.9.0-arm64-darwin) + commonmarker (2.9.0-x86_64-linux) + commonmarker (2.9.0-x86_64-linux-musl) concurrent-ruby (1.3.8) date (3.5.1) debug (1.11.1) @@ -110,6 +356,8 @@ GEM kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) + kettle-drift (1.0.6) + version_gem (~> 1.1, >= 1.1.14) kettle-rb (0.1.5) kettle-soup-cover (3.0.4) kettle-wash (~> 0.1, >= 0.1.0) @@ -138,6 +386,7 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) + markly (0.16.0) mutex_m (0.3.0) nokogiri (1.19.4-aarch64-linux-gnu) racc (~> 1.4) @@ -300,6 +549,8 @@ GEM ruby-progressbar (1.13.0) ruby_engine (2.0.3) ruby_version (1.0.3) + service_actor (3.9.4) + zeitwerk (>= 1.0) silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) @@ -354,6 +605,11 @@ GEM token-resolver (2.0.5) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.14) + toml (0.3.0) + parslet (>= 1.8.0, < 3.0.0) + toml-rb (4.2.0) + citrus (~> 3.0, > 3.0) + racc (~> 1.7) tree_sitter_language_pack (1.13.3-aarch64-linux) sorbet-runtime (~> 0.5) tree_sitter_language_pack (1.13.3-arm64-darwin) @@ -408,24 +664,46 @@ DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) appraisal2-rubocop (~> 1.0, >= 1.0.0) + ast-crispr! + ast-crispr-markdown-markly! + ast-crispr-ruby-prism! ast-merge! + ast-merge-git! + ast-template! + bash-merge! benchmark (~> 0.5, >= 0.5.0) + binary-merge! bundler-audit (~> 0.9.3) cgi (~> 0.5) + citrus-toml-merge! + commonmarker-merge! debug (>= 1.1) + dotenv-merge! erb (~> 6.0, >= 6.0.6) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.0) + go-merge! irb (~> 1.17) + json-merge! kettle-dev (~> 2.0, >= 2.2.25) + kettle-drift (~> 1.0, >= 1.0.6) + kettle-jem! kettle-soup-cover (~> 3.0, >= 3.0.3) kettle-test (~> 2.0, >= 2.0.9) kramdown (~> 2.5, >= 2.5.2) + kramdown-merge! kramdown-parser-gfm (~> 1.1) + markdown-merge! + markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) + parslet-toml-merge! + plain-merge! + prism-merge! + psych-merge! rake (~> 13.0) rbs (>= 3.0) + rbs-merge! rdoc (~> 6.11) reek (~> 6.5, >= 6.5.0) require_bench (~> 1.0, >= 1.0.4) @@ -436,21 +714,27 @@ DEPENDENCIES rubocop-on-rbs (~> 2.0, >= 2.0.0) rubocop-packaging (~> 0.6, >= 0.6.0) rubocop-ruby3_2 (~> 3.0, >= 3.0.6) + ruby-merge! ruby-progressbar (~> 1.13) rust-merge! + smorg-rb! standard (~> 1.56, >= 1.56.0) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) + toml-merge! tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) + typescript-merge! webrick (~> 1.9) yaml-converter (~> 0.2, >= 0.2.3) + yaml-merge! yard (~> 0.9, >= 0.9.45) yard-fence (~> 0.9, >= 0.9.6) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) yard-timekeeper (~> 0.2, >= 0.2.4) yard-yaml (~> 0.2, >= 0.2.3) + zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af @@ -458,20 +742,35 @@ CHECKSUMS appraisal2 (3.2.0) sha256=ccd0b767ac4060cd7af6d16747459b6990f49c39c7b4fb1f7d1146b1e97c492f appraisal2-rubocop (1.0.0) sha256=b71410fbb014befda5340605a605b7f6f3f012739baf0acc5b4351b592c3258d ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 + ast-crispr (7.1.0) + ast-crispr-markdown-markly (7.1.0) + ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) + ast-merge-git (7.1.0) + ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 + bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd + binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 + citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 + commonmarker (2.9.0-aarch64-linux) sha256=e2b4aadb9a2cfa4e206582641ce3a49465549ac1ed4c289fdd63b78d8f24579c + commonmarker (2.9.0-aarch64-linux-musl) sha256=1cf4d2821f2a7e64945f1ed7c4eeced586fdb27ea7fe7337788802cf8f57cfca + commonmarker (2.9.0-arm64-darwin) sha256=1748dbfa4f5813b0d2a14bb4bbfa65a4ec293aa1c825016d60029ee0e132b046 + commonmarker (2.9.0-x86_64-linux) sha256=8cfe92970eef585a19ddf6613224b91cab64d6029834661bda801f877c9c7f43 + commonmarker (2.9.0-x86_64-linux-musl) sha256=293921398b839f79ceaf55010e061357e34f053822c3b003cd0be6686176335e + commonmarker-merge (7.1.0) concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 + dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -484,20 +783,28 @@ CHECKSUMS gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f + go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 + json-merge (7.1.0) kettle-dev (2.3.8) sha256=9d716ff21c660a730cb4e8d41e2e2f0630a28167a354b6e2924e242102aef72c + kettle-drift (1.0.6) sha256=46eda08fa4411d1f3c6682a95eef1c9df4e94611b3949f49d4c7b43c0ed356a3 + kettle-jem (7.1.0) kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f kettle-soup-cover (3.0.4) kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa + kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 + markdown-merge (7.1.0) + markly (0.16.0) sha256=6f70d79e385b1efc9e171f74c81628826259039fe6c778e03c3924c71dac5511 + markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-aarch64-linux-gnu) sha256=1269fb644a6de405057a53dd5c762b1209b43ca7424f839454d3dbc677c31a8f nokogiri (1.19.4-aarch64-linux-musl) sha256=35c65b9ce72b3bb03207bdbe7067915019dc18c1b9b59139684bd6690fdd01af @@ -511,15 +818,20 @@ CHECKSUMS parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 + parslet-toml-merge (7.1.0) + plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 + prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 + psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 + rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb @@ -554,16 +866,19 @@ CHECKSUMS rubocop-rspec_rails (2.32.0) sha256=4a0d641c72f6ebb957534f539d9d0a62c47abd8ce0d0aeee1ef4701e892a9100 rubocop-ruby3_2 (3.0.7) sha256=f53dd6d286fb05186214fc6ec116783e7f837030918e8931c05de773e98f8466 rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 + ruby-merge (7.1.0) ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 rust-merge (7.1.0) + service_actor (3.9.4) sha256=e63b523630b9a7e62959b2a90113b08d2565b5de9c148557b281ef847c9539ce silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed + smorg-rb (7.1.0) sorbet-runtime (0.6.13347) sha256=54e7221d9f4b63f58aec79f3043752a9ba7810347c6ae0d903531591cc2d5f01 standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b @@ -578,17 +893,22 @@ CHECKSUMS timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.5) sha256=b852f924287ffb58a440856e862b056c8ad97e74b4b2526cee43e0771f40c25c + toml (0.3.0) sha256=0a91d0f76a9036e84e44f95693b12f58d358c1df3ac8e3b5271f2056ecc6e4b9 + toml-merge (7.1.0) + toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-aarch64-linux) sha256=55ffc7c87868cb45658338363d9eba51b4a8b0259aa88e4de368d2bd1d52fea4 tree_sitter_language_pack (1.13.3-arm64-darwin) sha256=bc2498db605f212a1dbd2465ed3f65190d7da786f6ed5d30fcf958121aeb4a5c tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 + typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 webrick (1.9.2) sha256=beb4a15fc474defed24a3bda4ffd88a490d517c9e4e6118c3edce59e45864131 yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 + yaml-merge (7.1.0) yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd @@ -596,6 +916,7 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 + zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH diff --git a/gems/typescript-merge/.rubocop_gradual.lock b/gems/typescript-merge/.rubocop_gradual.lock index d318188a5..7453b8ac0 100644 --- a/gems/typescript-merge/.rubocop_gradual.lock +++ b/gems/typescript-merge/.rubocop_gradual.lock @@ -15,13 +15,20 @@ [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] ], + "gemfiles/modular/cgi/r4/v0.5.gemfile:367169322": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/cgi/vHEAD.gemfile:2729540777": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], "gemfiles/modular/erb/r2/v3.0.gemfile:1688285565": [ [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] ], - "gemfiles/modular/erb/r3/v5.0.gemfile:2150258305": [ + "gemfiles/modular/erb/r3/v5.0.gemfile:2394062339": [ [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] ], - "gemfiles/modular/erb/r4/v5.0.gemfile:2150258305": [ + "gemfiles/modular/erb/r4/v5.0.gemfile:2394062339": [ [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] ], "gemfiles/modular/erb/vHEAD.gemfile:981929959": [ @@ -57,6 +64,13 @@ [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] ], + "gemfiles/modular/webrick/r4/v1.9.gemfile:3092661193": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/webrick/vHEAD.gemfile:3867684682": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], "gemfiles/modular/x_std_libs.gemfile:2324400122": [ [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] ], @@ -66,31 +80,31 @@ "gemfiles/modular/x_std_libs/r3/libs.gemfile:4030570297": [ [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] ], - "gemfiles/modular/x_std_libs/r4/libs.gemfile:909736663": [ + "gemfiles/modular/x_std_libs/r4/libs.gemfile:732451732": [ [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] ], - "gemfiles/modular/x_std_libs/vHEAD.gemfile:907917303": [ + "gemfiles/modular/x_std_libs/vHEAD.gemfile:2390363993": [ [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] ], "lib/typescript-merge.rb:4058528402": [ [1, 1, 0, "Naming/FileName: The name of this source file (`typescript-merge.rb`) should use snake_case.", 5381] ], - "lib/typescript/merge.rb:3369400219": [ + "lib/typescript/merge.rb:2350258564": [ [10, 3, 12, "Style/Documentation: Missing top-level documentation comment for `module TypeScript::Merge`.", 2866359175], - [10, 3, 7859, "Metrics/ModuleLength: Module has too many lines. [184/100]", 3930211313], + [10, 3, 8831, "Metrics/ModuleLength: Module has too many lines. [202/100]", 2930804409], [11, 5, 11, "Style/ModuleFunction: Use `module_function` instead of `extend self`.", 1210897631], - [72, 121, 28, "Layout/LineLength: Line is too long. [148/120]", 3724408137], - [79, 5, 1427, "Metrics/AbcSize: Assignment Branch Condition size for `merge_type_script` is too high. [<13, 32, 11> 36.25/17]", 626793766], - [79, 5, 1427, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `merge_type_script` is too high. [11/7]", 626793766], - [79, 5, 1427, "Metrics/MethodLength: Method has too many lines. [22/10]", 626793766], - [79, 5, 1427, "Metrics/PerceivedComplexity: Perceived complexity for `merge_type_script` is too high. [11/8]", 626793766], - [98, 34, 7, "Style/MultilineBlockChain: Avoid multi-line chains of blocks.", 4045560504], - [107, 5, 1486, "Metrics/AbcSize: Assignment Branch Condition size for `analyze_type_script_module` is too high. [<8, 19, 5> 21.21/17]", 961716773], - [107, 5, 1486, "Metrics/MethodLength: Method has too many lines. [41/10]", 961716773] - ], - "spec/fixtures_integration_spec.rb:2894274721": [ - [3, 1, 5091, "Metrics/BlockLength: Block has too many lines. [67/25]", 332568190], + [74, 121, 28, "Layout/LineLength: Line is too long. [148/120]", 3724408137], + [102, 5, 1427, "Metrics/AbcSize: Assignment Branch Condition size for `merge_type_script` is too high. [<13, 32, 11> 36.25/17]", 626793766], + [102, 5, 1427, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `merge_type_script` is too high. [11/7]", 626793766], + [102, 5, 1427, "Metrics/MethodLength: Method has too many lines. [22/10]", 626793766], + [102, 5, 1427, "Metrics/PerceivedComplexity: Perceived complexity for `merge_type_script` is too high. [11/8]", 626793766], + [121, 34, 7, "Style/MultilineBlockChain: Avoid multi-line chains of blocks.", 4045560504], + [130, 5, 1514, "Metrics/AbcSize: Assignment Branch Condition size for `analyze_type_script_module` is too high. [<8, 19, 5> 21.21/17]", 3294425022], + [130, 5, 1514, "Metrics/MethodLength: Method has too many lines. [41/10]", 3294425022] + ], + "spec/fixtures_integration_spec.rb:2599076733": [ + [3, 1, 5650, "Metrics/BlockLength: Block has too many lines. [77/25]", 332568190], [8, 3, 4826, "Metrics/BlockLength: Block has too many lines. [62/25]", 3720035714] ], "typescript-merge.gemspec:2469503934": [ diff --git a/gems/typescript-merge/Gemfile b/gems/typescript-merge/Gemfile index a8e900b40..e9d5a84c9 100644 --- a/gems/typescript-merge/Gemfile +++ b/gems/typescript-merge/Gemfile @@ -6,7 +6,7 @@ # kettle-jem will then preserve content between those markers across template runs. # kettle-jem:unfreeze -source "https://gem.coop" +source 'https://gem.coop' git_source(:codeberg) { |repo_name| "https://codeberg.org/#{repo_name}" } git_source(:gitlab) { |repo_name| "https://gitlab.com/#{repo_name}" } @@ -19,58 +19,54 @@ git_source(:gitlab) { |repo_name| "https://gitlab.com/#{repo_name}" } gemspec # Local workspace dependency wiring for *_local.gemfile overrides -nomono_requirements = ["~> 1.0", ">= 1.0.8"] -gem "nomono", *nomono_requirements, require: false # ruby >= 2.2 +nomono_requirements = ['~> 1.0', '>= 1.0.8'] +gem 'nomono', *nomono_requirements, require: false # ruby >= 2.2 # Direct sibling dependencies (env-switched via STRUCTUREDMERGE_DEV) direct_sibling_gems = %w[ ast-merge tree_haver ] -direct_sibling_dev = ENV.fetch("STRUCTUREDMERGE_DEV", "") +direct_sibling_dev = ENV.fetch('STRUCTUREDMERGE_DEV', '') direct_sibling_local = !direct_sibling_dev.empty? && !%w[false 0 no off].include?(direct_sibling_dev.downcase) -direct_sibling_templating = ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? +direct_sibling_templating = ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero?) - direct_sibling_dev_was_set = ENV.key?("STRUCTUREDMERGE_DEV") - direct_sibling_dev_original = ENV.fetch("STRUCTUREDMERGE_DEV", nil) + (direct_sibling_local || + ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) + direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') + direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) begin nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path("Gemfile.lock", __dir__) + nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == "nomono" } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - if nomono_locked - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] - end - end - Kernel.send(:gem, "nomono", *nomono_activation_requirements) - require "nomono/bundler" - if direct_sibling_templating && !direct_sibling_local - ENV["STRUCTUREDMERGE_DEV"] = File.expand_path("..", __dir__) + Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked end + Kernel.send(:gem, 'nomono', *nomono_activation_requirements) + require 'nomono/bundler' + ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local eval_nomono_gems( gems: direct_sibling_gems, - prefix: "STRUCTUREDMERGE", - path_env: "STRUCTUREDMERGE_DEV", - root: ["src", "my", "structuredmerge"] + prefix: 'STRUCTUREDMERGE', + path_env: 'STRUCTUREDMERGE_DEV', + root: %w[src my structuredmerge] ) rescue LoadError - warn "Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies." + warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' ensure if direct_sibling_templating && !direct_sibling_local if direct_sibling_dev_was_set - ENV["STRUCTUREDMERGE_DEV"] = direct_sibling_dev_original + ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original else - ENV.delete("STRUCTUREDMERGE_DEV") + ENV.delete('STRUCTUREDMERGE_DEV') end end end @@ -117,28 +113,28 @@ if direct_sibling_gems.any? && end # Use released TSLP with the Ruby ABI platform-gem fix. -gem "tree_sitter_language_pack", "~> 1.13", ">= 1.13.3" +gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' # Templating (env-switched: STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local paths) -eval_gemfile "gemfiles/modular/templating.gemfile" if ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? +eval_gemfile 'gemfiles/modular/templating.gemfile' if ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? # Debugging -eval_gemfile "gemfiles/modular/debug.gemfile" +eval_gemfile 'gemfiles/modular/debug.gemfile' # Code Coverage (env-switched: KETTLE_DEV_DEV=true for local paths) -eval_gemfile "gemfiles/modular/coverage.gemfile" +eval_gemfile 'gemfiles/modular/coverage.gemfile' # Linting -eval_gemfile "gemfiles/modular/style.gemfile" +eval_gemfile 'gemfiles/modular/style.gemfile' # Documentation -eval_gemfile "gemfiles/modular/documentation.gemfile" +eval_gemfile 'gemfiles/modular/documentation.gemfile' # Optional -eval_gemfile "gemfiles/modular/optional.gemfile" +eval_gemfile 'gemfiles/modular/optional.gemfile' ### Std Lib Extracted Gems -eval_gemfile "gemfiles/modular/x_std_libs.gemfile" +eval_gemfile 'gemfiles/modular/x_std_libs.gemfile' # See unlocked_deps appraisal for more details on irb inclusion -gem "irb", "~> 1.17" # ruby >= 2.7 +gem 'irb', '~> 1.17' # ruby >= 2.7 diff --git a/gems/typescript-merge/Gemfile.lock b/gems/typescript-merge/Gemfile.lock index cf6bf2e6e..2004b395c 100644 --- a/gems/typescript-merge/Gemfile.lock +++ b/gems/typescript-merge/Gemfile.lock @@ -7,39 +7,7 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly - specs: - ast-crispr-markdown-markly (7.1.0) - ast-crispr (= 7.1.0) - markly-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism - specs: - ast-crispr-ruby-prism (7.1.0) - ast-crispr (= 7.1.0) - prism-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr - specs: - ast-crispr (7.1.0) - ast-merge (= 7.1.0) - service_actor (~> 3.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git - specs: - ast-merge-git (7.1.0) - ast-merge (= 7.1.0) - json-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/ast-merge specs: ast-merge (7.1.0) benchmark @@ -48,201 +16,7 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template - specs: - ast-template (7.1.0) - ast-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge - specs: - bash-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge - specs: - binary-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge - specs: - citrus-toml-merge (7.1.0) - toml-merge (= 7.1.0) - toml-rb (~> 4.1) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge - specs: - commonmarker-merge (7.1.0) - commonmarker (~> 2.2) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge - specs: - dotenv-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge - specs: - go-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge - specs: - json-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem - specs: - kettle-jem (7.1.0) - addressable (>= 2.8, < 3) - ast-crispr-markdown-markly (= 7.1.0) - ast-crispr-ruby-prism (= 7.1.0) - ast-merge (= 7.1.0) - bash-merge (= 7.1.0) - citrus-toml-merge (= 7.1.0) - commonmarker-merge (= 7.1.0) - dotenv-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-dev (~> 2.3, >= 2.3.5) - kettle-rb (~> 0.1, >= 0.1.4) - kramdown-merge (= 7.1.0) - markdown-merge (= 7.1.0) - markly-merge (= 7.1.0) - prism-merge (= 7.1.0) - psych-merge (= 7.1.0) - rbs (>= 3.10) - rbs-merge (= 7.1.0) - ruby-merge (= 7.1.0) - token-resolver (~> 2.0, >= 2.0.4) - toml-merge (= 7.1.0) - toml-rb (~> 4.2) - tree_haver (= 7.1.0) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge - specs: - kramdown-merge (7.1.0) - kramdown (~> 2.5) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge - specs: - markdown-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge - specs: - markly-merge (7.1.0) - markdown-merge (= 7.1.0) - markly (~> 0.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge - specs: - parslet-toml-merge (7.1.0) - toml (~> 0.3) - toml-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge - specs: - plain-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge - specs: - prism-merge (7.1.0) - prism (~> 1.6) - ruby-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge - specs: - psych-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge - specs: - rbs-merge (7.1.0) - ast-merge (= 7.1.0) - rbs (>= 3.10) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge - specs: - ruby-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge - specs: - rust-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb - specs: - smorg-rb (7.1.0) - ast-merge (= 7.1.0) - ast-merge-git (= 7.1.0) - go-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-jem (= 7.1.0) - markly-merge (= 7.1.0) - plain-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge - specs: - toml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/tree_haver specs: tree_haver (7.1.0) citrus (~> 3.0) @@ -250,21 +24,6 @@ PATH tree_sitter_language_pack (>= 1.13.2, < 2.0) version_gem (~> 1.1, >= 1.1.9) -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge - specs: - yaml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge - specs: - zip-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - GEM remote: https://gem.coop/ specs: @@ -275,6 +34,10 @@ GEM bundler (>= 1.17.3) rake (>= 10) thor (>= 0.14) + appraisal2-rubocop (1.0.0) + appraisal2 (>= 3.1.4) + rubocop (>= 1.0) + version_gem (~> 1.1, >= 1.1.14) ast (2.4.3) backports (3.25.3) benchmark (0.5.0) @@ -282,10 +45,10 @@ GEM bundler-audit (0.9.3) bundler (>= 1.2.0) thor (~> 1.0) + cgi (0.5.2) citrus (3.0.2) cmdparse (3.0.7) - commonmarker (2.9.0-x86_64-linux) - concurrent-ruby (1.3.7) + concurrent-ruby (1.3.8) date (3.5.1) debug (1.11.1) irb (~> 1.10) @@ -293,7 +56,6 @@ GEM delegate (0.6.1) diff-lcs (1.6.2) diffy (3.4.4) - docile (1.4.1) dry-configurable (1.4.0) dry-core (~> 1.0) zeitwerk (~> 2.6) @@ -324,7 +86,7 @@ GEM dry-logic (~> 1.4) zeitwerk (~> 2.6) emoji_regex (15.0.0) - erb (6.0.5) + erb (6.0.6) gem_bench (2.0.5) bundler (>= 1.14) version_gem (~> 1.1, >= 1.1.4) @@ -343,24 +105,20 @@ GEM rdoc (>= 4.0.0) reline (>= 0.4.2) json (2.21.1) - kettle-dev (2.3.7) + kettle-dev (2.3.8) emoji_regex (>= 15.0) kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) - kettle-drift (1.0.6) - version_gem (~> 1.1, >= 1.1.14) - kettle-rb (0.1.4) - kettle-soup-cover (1.1.3) - simplecov (~> 0.22) - simplecov-cobertura (~> 3.0) - simplecov-console (~> 0.9, >= 0.9.3) - simplecov-html (~> 0.13, >= 0.13.1) - simplecov-lcov (~> 0.8) + kettle-rb (0.1.5) + kettle-soup-cover (3.0.4) + kettle-wash (~> 0.1, >= 0.1.0) + simplecov (>= 1.0) + simplecov-cobertura (>= 4.0) + simplecov-console (~> 0.9, >= 0.9.5) simplecov-rcov (~> 0.3, >= 0.3.7) - simplecov_json_formatter (~> 0.1, >= 0.1.4) - version_gem (~> 1.1, >= 1.1.9) - kettle-test (2.0.11) + simplecov_lcov_formatter (~> 0.9, >= 0.9.0) + kettle-test (2.0.12) appraisal2 (~> 3.0, >= 3.0.6) backports (~> 3.0) rspec (~> 3.0) @@ -371,6 +129,8 @@ GEM silent_stream (~> 1.0, >= 1.0.12) timecop-rspec (~> 1.0, >= 1.0.3) turbo_tests2 (~> 3.1, >= 3.1.12) + kettle-wash (0.1.1) + version_gem (~> 1.1, >= 1.1.14) kramdown (2.5.2) rexml (>= 3.4.4) kramdown-parser-gfm (1.1.0) @@ -378,7 +138,6 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) - markly (0.16.0) mutex_m (0.3.0) nokogiri (1.19.4-aarch64-linux-gnu) racc (~> 1.4) @@ -466,6 +225,14 @@ GEM rubocop-ast (1.50.0) parser (>= 3.3.7.2) prism (~> 1.7) + rubocop-capybara (2.23.0) + lint_roller (~> 1.1) + rubocop (~> 1.81) + rubocop-env (0.1.0) + rubocop + rubocop-factory_bot (2.28.0) + lint_roller (~> 1.1) + rubocop (~> 1.72, >= 1.72.1) rubocop-gradual (0.4.0) benchmark diff-lcs (>= 1.2.0, < 2.0) @@ -473,13 +240,26 @@ GEM parallel (~> 1.10) rainbow (>= 2.2.2, < 4.0) rubocop (~> 1.0) - rubocop-lts (24.1.0) - rubocop-ruby3_2 (>= 3.0.0, < 4) - standard-rubocop-lts (>= 2.0.2, < 3) - version_gem (>= 1.1.2, < 3) + rubocop-lts (24.2.2) + rubocop-ruby3_2 (~> 3.0, >= 3.0.1) + standard-rubocop-lts (~> 2.0, >= 2.0.3) + version_gem (~> 1.1, >= 1.1.13) + rubocop-lts-rspec (1.0.5) + rubocop (~> 1.84, >= 1.84.2) + rubocop-env (~> 0.1, >= 0.1.0) + rubocop-factory_bot (~> 2.28, >= 2.28.0) + rubocop-rspec (~> 3.9, >= 3.9.0) + rubocop-rspec-extra (~> 0.3, >= 0.3.0) + standard (~> 1.54, >= 1.54.0) + standard-rspec (~> 0.5, >= 0.5.0) + version_gem (~> 1.1, >= 1.1.13) rubocop-md (2.0.4) lint_roller (~> 1.1) rubocop (>= 1.72.1) + rubocop-minitest (0.40.0) + lint_roller (~> 1.1) + rubocop (>= 1.75.0, < 2.0) + rubocop-ast (>= 1.38.0, < 2.0) rubocop-on-rbs (2.0.0) lint_roller (~> 1.1) rbs (~> 4.0) @@ -499,6 +279,13 @@ GEM lint_roller (~> 1.1) regexp_parser (>= 2.0) rubocop (~> 1.86, >= 1.86.2) + rubocop-rspec-extra (0.3.0) + lint_roller (~> 1.1) + rubocop (>= 1.72.1, < 2.0) + rubocop-rspec_rails (2.32.0) + lint_roller (~> 1.1) + rubocop (~> 1.72, >= 1.72.1) + rubocop-rspec (~> 3.5) rubocop-ruby3_2 (3.0.7) rubocop-gradual (~> 0.3, >= 0.3.6) rubocop-md (~> 2.0, >= 2.0.4) @@ -513,27 +300,21 @@ GEM ruby-progressbar (1.13.0) ruby_engine (2.0.3) ruby_version (1.0.3) - service_actor (3.9.4) - zeitwerk (>= 1.0) silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) - simplecov (0.22.0) - docile (~> 1.1) - simplecov-html (~> 0.11) - simplecov_json_formatter (~> 0.1) - simplecov-cobertura (3.2.0) + simplecov (1.0.2) + simplecov-cobertura (4.0.0) rexml - simplecov (~> 0.19) + simplecov (~> 1.0) simplecov-console (0.9.5) ansi simplecov terminal-table - simplecov-html (0.13.2) - simplecov-lcov (0.9.0) simplecov-rcov (0.3.7) simplecov (>= 0.4.1) - simplecov_json_formatter (0.1.4) + simplecov_lcov_formatter (0.9.0) + simplecov (>= 0.18) sorbet-runtime (0.6.13347) standard (1.56.0) language_server-protocol (~> 3.17.0.2) @@ -547,6 +328,12 @@ GEM standard-performance (1.9.0) lint_roller (~> 1.1) rubocop-performance (~> 1.26.0) + standard-rspec (0.5.0) + lint_roller (>= 1.0) + rubocop-capybara (~> 2.23) + rubocop-factory_bot (~> 2.27) + rubocop-rspec (~> 3.9) + rubocop-rspec_rails (~> 2.31) standard-rubocop-lts (2.0.10) standard (~> 1.54, >= 1.54.0) standard-custom (~> 1.0, >= 1.0.2) @@ -564,14 +351,9 @@ GEM delegate (~> 0.1) rspec (~> 3.0) timecop (>= 0.7, < 1) - token-resolver (2.0.4) + token-resolver (2.0.5) parslet (~> 2.0) - version_gem (~> 1.1, >= 1.1.13) - toml (0.3.0) - parslet (>= 1.8.0, < 3.0.0) - toml-rb (4.2.0) - citrus (~> 3.0, > 3.0) - racc (~> 1.7) + version_gem (~> 1.1, >= 1.1.14) tree_sitter_language_pack (1.13.3-aarch64-linux) sorbet-runtime (~> 0.5) tree_sitter_language_pack (1.13.3-arm64-darwin) @@ -587,6 +369,7 @@ GEM unicode-emoji (~> 4.1) unicode-emoji (4.2.0) version_gem (1.1.14) + webrick (1.9.2) yaml-converter (0.2.3) hexapdf (>= 1.8, < 2) kramdown (>= 2.4, < 3) @@ -624,104 +407,71 @@ PLATFORMS DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) - ast-crispr! - ast-crispr-markdown-markly! - ast-crispr-ruby-prism! + appraisal2-rubocop (~> 1.0, >= 1.0.0) ast-merge! - ast-merge-git! - ast-template! - bash-merge! benchmark (~> 0.5, >= 0.5.0) - binary-merge! bundler-audit (~> 0.9.3) - citrus-toml-merge! - commonmarker-merge! + cgi (~> 0.5) debug (>= 1.1) - dotenv-merge! - erb (~> 6.0, >= 6.0.4) + erb (~> 6.0, >= 6.0.6) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.0) - go-merge! irb (~> 1.17) - json-merge! kettle-dev (~> 2.0, >= 2.2.25) - kettle-drift (~> 1.0, >= 1.0.5) - kettle-jem! - kettle-soup-cover (~> 1.0, >= 1.1.3) + kettle-soup-cover (~> 3.0, >= 3.0.3) kettle-test (~> 2.0, >= 2.0.9) - kramdown (~> 2.5, >= 2.5.1) - kramdown-merge! + kramdown (~> 2.5, >= 2.5.2) kramdown-parser-gfm (~> 1.1) - markdown-merge! - markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) - parslet-toml-merge! - plain-merge! - prism-merge! - psych-merge! rake (~> 13.0) rbs (>= 3.0) - rbs-merge! rdoc (~> 6.11) - reek (~> 6.5) + reek (~> 6.5, >= 6.5.0) require_bench (~> 1.0, >= 1.0.4) - rubocop-lts (~> 24.1.0) - rubocop-on-rbs (~> 2.0) + rubocop-gradual (~> 0.4, >= 0.4.0) + rubocop-lts (~> 24.2, >= 24.2.1) + rubocop-lts-rspec (~> 1.0, >= 1.0.5) + rubocop-minitest (~> 0.40, >= 0.40.0) + rubocop-on-rbs (~> 2.0, >= 2.0.0) rubocop-packaging (~> 0.6, >= 0.6.0) - rubocop-rspec (~> 3.6) - rubocop-ruby3_2 (~> 3.0.0) - ruby-merge! + rubocop-ruby3_2 (~> 3.0, >= 3.0.6) ruby-progressbar (~> 1.13) - rust-merge! - smorg-rb! - standard (>= 1.50) + standard (~> 1.56, >= 1.56.0) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) - toml-merge! tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) typescript-merge! - yaml-converter (~> 0.1) - yaml-merge! - yard (~> 0.9, >= 0.9.44) - yard-fence (~> 0.9, >= 0.9.1) + webrick (~> 1.9) + yaml-converter (~> 0.2, >= 0.2.3) + yard (~> 0.9, >= 0.9.45) + yard-fence (~> 0.9, >= 0.9.6) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) - yard-timekeeper (~> 0.1) - yard-yaml (~> 0.1, >= 0.1.2) - zip-merge! + yard-timekeeper (~> 0.2, >= 0.2.4) + yard-yaml (~> 0.2, >= 0.2.3) CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af ansi (1.6.0) sha256=ac9ea0c0ea8d32fb4e271348e609963ac78882f34b73836c2a02b3622e666658 appraisal2 (3.2.0) sha256=ccd0b767ac4060cd7af6d16747459b6990f49c39c7b4fb1f7d1146b1e97c492f + appraisal2-rubocop (1.0.0) sha256=b71410fbb014befda5340605a605b7f6f3f012739baf0acc5b4351b592c3258d ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 - ast-crispr (7.1.0) - ast-crispr-markdown-markly (7.1.0) - ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) - ast-merge-git (7.1.0) - ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 - bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd - binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 + cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 - citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 - commonmarker (2.9.0-x86_64-linux) - commonmarker-merge (7.1.0) - concurrent-ruby (1.3.7) sha256=4412caec3a5ea2e5fdc52076724c071a81f2c0593d83b2ac8cbb8ca63b3151b0 + concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 - docile (1.4.1) sha256=96159be799bfa73cdb721b840e9802126e4e03dfc26863db73647204c727f21e - dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -730,31 +480,24 @@ CHECKSUMS dry-schema (1.16.0) sha256=cd3aaeabc0f1af66ec82a29096d4c4fb92a0a58b9dae29a22b1bbceb78985727 dry-types (1.9.1) sha256=baebeecdb9f8395d6c9d227b62011279440943e3ef2468fe8ccc1ba11467f178 emoji_regex (15.0.0) sha256=a508b2c0bee561169564e0aec96085020c900520d335e5533fd8e78e59493829 - erb (6.0.5) sha256=858e63488cb796c9daba8b6e9ff4b3879c395022049be9a66a8e00980e612eac + erb (6.0.6) sha256=a9b24986700f5bf127c4f297c5403c3ca41b83b0a316c0cd09a096b56e644ae5 gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f - go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 - json-merge (7.1.0) - kettle-dev (2.3.7) sha256=eb370113cd030d03cbe2d33b31c99858951017e5ad21a17e9ed89dc3770028ee - kettle-drift (1.0.6) - kettle-jem (7.1.0) - kettle-rb (0.1.4) sha256=9cef7ce4f7021666b7222292f29051e51eaf042e8a5db11f3f4dd72f74243fc1 - kettle-soup-cover (1.1.3) sha256=a373827da22a7131d093afd32945e5b7d7a10a01ebfdded8fd2cb8230d69c8ad - kettle-test (2.0.11) sha256=c710c90f7ab79d51f9452f0c09f5f90657e7a893f63583855c164d0b1b107ab2 + kettle-dev (2.3.8) sha256=9d716ff21c660a730cb4e8d41e2e2f0630a28167a354b6e2924e242102aef72c + kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f + kettle-soup-cover (3.0.4) + kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 + kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa - kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 - markdown-merge (7.1.0) - markly (0.16.0) - markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-aarch64-linux-gnu) sha256=1269fb644a6de405057a53dd5c762b1209b43ca7424f839454d3dbc677c31a8f nokogiri (1.19.4-aarch64-linux-musl) sha256=35c65b9ce72b3bb03207bdbe7067915019dc18c1b9b59139684bd6690fdd01af @@ -768,20 +511,15 @@ CHECKSUMS parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 - parslet-toml-merge (7.1.0) - plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 - prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 - psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 - rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb @@ -799,35 +537,37 @@ CHECKSUMS rspec_junit_formatter (0.6.0) sha256=40dde674e6ae4e6cc0ff560da25497677e34fefd2338cc467a8972f602b62b15 rubocop (1.88.2) sha256=8def251c90cd955feb4daa3edc0ab56893250c4ce90ef81e6c80c03f9a939bbf rubocop-ast (1.50.0) sha256=b9ca88300da0803ee222ad20cdb30494c0a784eed06fdc35d254b06d662788db + rubocop-capybara (2.23.0) sha256=f9ea1ba3a7561ee8e88cf76fc378ce517ce5327155f305ee7b5c2500e5aee357 + rubocop-env (0.1.0) sha256=5ab9a259e71822bf514c8e900a9b68cc2f74ccc87d5493efcd03213f3068e718 + rubocop-factory_bot (2.28.0) sha256=4b17fc02124444173317e131759d195b0d762844a71a29fe8139c1105d92f0cb rubocop-gradual (0.4.0) sha256=9c7e584e6fef6c2539266a193a4572c970c22f99046fd6b0305bdde6228f96ad - rubocop-lts (24.1.0) sha256=9dcad4db2da2fe2f1f77f98c917d70e7c43eded703da14cd201d4be52a9272aa + rubocop-lts (24.2.2) sha256=be6c745e1bb61daebd6af3cc3227c60f95be9f642a080773cad7df14c5f9f174 + rubocop-lts-rspec (1.0.5) sha256=439552fd27440802cc499889e013bffa28aadc41adae5d4dfff3d984a2a809b4 rubocop-md (2.0.4) sha256=0d076b6b5e99dea2ddc928c4bd702497decb9a8400da7808091e02ebcafcfb93 + rubocop-minitest (0.40.0) sha256=353c698199115f12151144cf0b5a96f69bb9d77b660cf6536df2c4250c672a9d rubocop-on-rbs (2.0.0) sha256=ce74d1b3d5daead19f4b611623656c185821dfc9aed9c7079bb1e5d7d7c464be rubocop-packaging (0.6.0) sha256=fb92bd0fb48e6f8cdb1648d2249b0cd51c2497dcc87340132d22f01edbf558a7 rubocop-performance (1.26.1) sha256=cd19b936ff196df85829d264b522fd4f98b6c89ad271fa52744a8c11b8f71834 rubocop-rake (0.7.1) sha256=3797f2b6810c3e9df7376c26d5f44f3475eda59eb1adc38e6f62ecf027cbae4d rubocop-rspec (3.10.2) sha256=0b3e2ecc592cd10ecbf0095bb58d1e357905276e069643523cc19eb7495f65e2 + rubocop-rspec-extra (0.3.0) sha256=ee4b6484d0332a0d23c4a465eeb607e41888eb3d4ed479f850b9f5212514f787 + rubocop-rspec_rails (2.32.0) sha256=4a0d641c72f6ebb957534f539d9d0a62c47abd8ce0d0aeee1ef4701e892a9100 rubocop-ruby3_2 (3.0.7) sha256=f53dd6d286fb05186214fc6ec116783e7f837030918e8931c05de773e98f8466 rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 - ruby-merge (7.1.0) ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 - rust-merge (7.1.0) - service_actor (3.9.4) silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 - simplecov (0.22.0) sha256=fe2622c7834ff23b98066bb0a854284b2729a569ac659f82621fc22ef36213a5 - simplecov-cobertura (3.2.0) sha256=70d702658677fcb20e5aceb6915ccf8bc62ff2ccd38b62b3ad5c9db5c0888740 + simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 + simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 - simplecov-html (0.13.2) sha256=bd0b8e54e7c2d7685927e8d6286466359b6f16b18cb0df47b508e8d73c777246 - simplecov-lcov (0.9.0) sha256=7a77a31e200a595ed4b0249493056efd0c920601f53d2ef135ca34ee796346cd simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc - simplecov_json_formatter (0.1.4) sha256=529418fbe8de1713ac2b2d612aa3daa56d316975d307244399fa4838c601b428 - smorg-rb (7.1.0) + simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed sorbet-runtime (0.6.13347) sha256=54e7221d9f4b63f58aec79f3043752a9ba7810347c6ae0d903531591cc2d5f01 standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b standard-performance (1.9.0) sha256=49483d31be448292951d80e5e67cdcb576c2502103c7b40aec6f1b6e9c88e3f2 + standard-rspec (0.5.0) sha256=64d396524a65af47f5331b423d8cdd313e0267401647bb7892489ca89dad2973 standard-rubocop-lts (2.0.10) sha256=89708a505b7d8b24d2ac399a7520fcb9e764abc2ecb4289b631b5fe0e3b76617 stone_checksums (1.0.6) sha256=c775f830513d6c6ab26e31d1a5fbecd4c4e39002663d4d9f8fa96e97990b5298 stringio (3.2.0) sha256=c37cb2e58b4ffbd33fe5cd948c05934af997b36e0b6ca6fdf43afa234cf222e1 @@ -836,10 +576,7 @@ CHECKSUMS thor (1.5.0) sha256=e3a9e55fe857e44859ce104a84675ab6e8cd59c650a49106a05f55f136425e73 timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 - token-resolver (2.0.4) sha256=33b926958f504525bba3ed511ab66fbcbf8ef30390815e931436b30f27ffcad0 - toml (0.3.0) - toml-merge (7.1.0) - toml-rb (4.2.0) + token-resolver (2.0.5) sha256=b852f924287ffb58a440856e862b056c8ad97e74b4b2526cee43e0771f40c25c tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-aarch64-linux) sha256=55ffc7c87868cb45658338363d9eba51b4a8b0259aa88e4de368d2bd1d52fea4 tree_sitter_language_pack (1.13.3-arm64-darwin) sha256=bc2498db605f212a1dbd2465ed3f65190d7da786f6ed5d30fcf958121aeb4a5c @@ -850,8 +587,8 @@ CHECKSUMS unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 + webrick (1.9.2) sha256=beb4a15fc474defed24a3bda4ffd88a490d517c9e4e6118c3edce59e45864131 yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 - yaml-merge (7.1.0) yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd @@ -859,7 +596,6 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 - zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH diff --git a/gems/typescript-merge/Rakefile b/gems/typescript-merge/Rakefile index 891a105cb..001b16d17 100644 --- a/gems/typescript-merge/Rakefile +++ b/gems/typescript-merge/Rakefile @@ -130,23 +130,23 @@ end ### DUPLICATE DRIFT TASKS begin - require "kettle/drift" + require 'kettle/drift' Kettle::Drift.install_tasks rescue LoadError - desc("(stub) kettle:drift:check is unavailable") - task("kettle:drift:check") do + desc('(stub) kettle:drift:check is unavailable') + task('kettle:drift:check') do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc("(stub) kettle:drift:update is unavailable") - task("kettle:drift:update") do + desc('(stub) kettle:drift:update is unavailable') + task('kettle:drift:update') do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc("(stub) kettle:drift:force_update is unavailable") - task("kettle:drift:force_update") do + desc('(stub) kettle:drift:force_update is unavailable') + task('kettle:drift:force_update') do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc("(stub) kettle:drift is unavailable") - task("kettle:drift" => "kettle:drift:update") + desc('(stub) kettle:drift is unavailable') + task('kettle:drift' => 'kettle:drift:update') end ### TEMPLATING TASKS diff --git a/gems/typescript-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile b/gems/typescript-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile index dec650815..b8392fab0 100644 --- a/gems/typescript-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile +++ b/gems/typescript-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.1 -gem "benchmark", "~> 0.5", ">= 0.5.0" # Removed from Std Lib in Ruby 4.0 +gem 'benchmark', '~> 0.5', '>= 0.5.0' # Removed from Std Lib in Ruby 4.0 diff --git a/gems/typescript-merge/gemfiles/modular/benchmark/vHEAD.gemfile b/gems/typescript-merge/gemfiles/modular/benchmark/vHEAD.gemfile index e1eb20c5e..af214aafa 100644 --- a/gems/typescript-merge/gemfiles/modular/benchmark/vHEAD.gemfile +++ b/gems/typescript-merge/gemfiles/modular/benchmark/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.1 -gem "benchmark", github: "ruby/benchmark", branch: "master" +gem 'benchmark', github: 'ruby/benchmark', branch: 'master' diff --git a/gems/typescript-merge/gemfiles/modular/cgi/r4/v0.5.gemfile b/gems/typescript-merge/gemfiles/modular/cgi/r4/v0.5.gemfile index 19ed967c3..17ad97260 100644 --- a/gems/typescript-merge/gemfiles/modular/cgi/r4/v0.5.gemfile +++ b/gems/typescript-merge/gemfiles/modular/cgi/r4/v0.5.gemfile @@ -1 +1 @@ -gem "cgi", "~> 0.5" +gem 'cgi', '~> 0.5' diff --git a/gems/typescript-merge/gemfiles/modular/cgi/vHEAD.gemfile b/gems/typescript-merge/gemfiles/modular/cgi/vHEAD.gemfile index ef8b816ce..650fbf033 100644 --- a/gems/typescript-merge/gemfiles/modular/cgi/vHEAD.gemfile +++ b/gems/typescript-merge/gemfiles/modular/cgi/vHEAD.gemfile @@ -1 +1 @@ -gem "cgi", ">= 0.5" +gem 'cgi', '>= 0.5' diff --git a/gems/typescript-merge/gemfiles/modular/coverage.gemfile b/gems/typescript-merge/gemfiles/modular/coverage.gemfile index 52d737872..b93014b6b 100644 --- a/gems/typescript-merge/gemfiles/modular/coverage.gemfile +++ b/gems/typescript-merge/gemfiles/modular/coverage.gemfile @@ -4,11 +4,11 @@ # Set KETTLE_DEV_DEV=true for local development with path-based dependencies. # When false (default / CI), remote released gems are used. -if ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false").zero? +if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? # Coverage (remote/released) platform :mri do - gem "kettle-soup-cover", "~> 3.0", ">= 3.0.3", require: false + gem 'kettle-soup-cover', '~> 3.0', '>= 3.0.3', require: false end else - eval_gemfile "coverage_local.gemfile" + eval_gemfile 'coverage_local.gemfile' end diff --git a/gems/typescript-merge/gemfiles/modular/coverage_local.gemfile b/gems/typescript-merge/gemfiles/modular/coverage_local.gemfile index 3223876bc..50e15445a 100644 --- a/gems/typescript-merge/gemfiles/modular/coverage_local.gemfile +++ b/gems/typescript-merge/gemfiles/modular/coverage_local.gemfile @@ -11,21 +11,19 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] -nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) +nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] +nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == "nomono" } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - if nomono_locked - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] - end + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked end -Kernel.send(:gem, "nomono", *nomono_activation_requirements) -require "nomono/bundler" +Kernel.send(:gem, 'nomono', *nomono_activation_requirements) +require 'nomono/bundler' local_gems = %w[kettle-dev kettle-test kettle-soup-cover kettle-drift] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) @@ -35,21 +33,21 @@ local_gems_to_eval = local_gems - %w[typescript-merge] - declared_gems platform :mri do eval_nomono_gems( gems: local_gems_to_eval, - prefix: "KETTLE_DEV", - path_env: "KETTLE_DEV_DEV", - vendored_gems_env: "VENDORED_GEMS", - vendor_gem_dir_env: "VENDOR_GEM_DIR", - debug_env: "KETTLE_DEV_DEBUG" + prefix: 'KETTLE_DEV', + path_env: 'KETTLE_DEV_DEV', + vendored_gems_env: 'VENDORED_GEMS', + vendor_gem_dir_env: 'VENDOR_GEM_DIR', + debug_env: 'KETTLE_DEV_DEBUG' ) - if ENV.fetch("GALTZO_FLOSS_DEV", "false").casecmp("false") != 0 + if ENV.fetch('GALTZO_FLOSS_DEV', 'false').casecmp('false') != 0 eval_nomono_gems( gems: %w[turbo_tests2], - prefix: "GALTZO_FLOSS", - path_env: "GALTZO_FLOSS_DEV", - vendored_gems_env: "GALTZO_FLOSS_VENDORED_GEMS", - vendor_gem_dir_env: "GALTZO_FLOSS_VENDOR_GEM_DIR", - debug_env: "GALTZO_FLOSS_DEBUG" + prefix: 'GALTZO_FLOSS', + path_env: 'GALTZO_FLOSS_DEV', + vendored_gems_env: 'GALTZO_FLOSS_VENDORED_GEMS', + vendor_gem_dir_env: 'GALTZO_FLOSS_VENDOR_GEM_DIR', + debug_env: 'GALTZO_FLOSS_DEBUG' ) end end diff --git a/gems/typescript-merge/gemfiles/modular/debug.gemfile b/gems/typescript-merge/gemfiles/modular/debug.gemfile index 4e15b1a3a..eed8d4d1e 100644 --- a/gems/typescript-merge/gemfiles/modular/debug.gemfile +++ b/gems/typescript-merge/gemfiles/modular/debug.gemfile @@ -13,10 +13,10 @@ platform :mri do # Debugging - Ensure ENV["DEBUG"] == "true" to use debuggers within spec suite # Use binding.break, binding.b, or debugger in code - gem "debug", ">= 1.1" # ruby >= 2.7 + gem 'debug', '>= 1.1' # ruby >= 2.7 # Dev Console - Binding.pry - Irb replacement # gem "pry", "~> 0.14" # ruby >= 2.0 end -gem "gem_bench", "~> 2.0", ">= 2.0.5" +gem 'gem_bench', '~> 2.0', '>= 2.0.5' diff --git a/gems/typescript-merge/gemfiles/modular/documentation.gemfile b/gems/typescript-merge/gemfiles/modular/documentation.gemfile index d8215416e..9d4535f12 100644 --- a/gems/typescript-merge/gemfiles/modular/documentation.gemfile +++ b/gems/typescript-merge/gemfiles/modular/documentation.gemfile @@ -7,20 +7,20 @@ # # Documentation -gem "kramdown", "~> 2.5", ">= 2.5.2", require: false # Ruby >= 2.5 -gem "kramdown-parser-gfm", "~> 1.1", require: false # Ruby >= 2.3 -gem "yaml-converter", "~> 0.2", ">= 0.2.3", require: false # Ruby >= 3.2 -gem "yard", "~> 0.9", ">= 0.9.45", require: false -gem "yard-junk", "~> 0.1", ">= 0.1.0", require: false # Ruby >= 3.1 -gem "yard-relative_markdown_links", "~> 0.6", require: false +gem 'kramdown', '~> 2.5', '>= 2.5.2', require: false # Ruby >= 2.5 +gem 'kramdown-parser-gfm', '~> 1.1', require: false # Ruby >= 2.3 +gem 'yaml-converter', '~> 0.2', '>= 0.2.3', require: false # Ruby >= 3.2 +gem 'yard', '~> 0.9', '>= 0.9.45', require: false +gem 'yard-junk', '~> 0.1', '>= 0.1.0', require: false # Ruby >= 3.1 +gem 'yard-relative_markdown_links', '~> 0.6', require: false -if ENV.fetch("GALTZO_FLOSS_DEV", "false").casecmp("false").zero? - gem "yard-fence", "~> 0.9", ">= 0.9.6", require: false # Ruby >= 3.2 - gem "yard-timekeeper", "~> 0.2", ">= 0.2.4", require: false - gem "yard-yaml", "~> 0.2", ">= 0.2.3", require: false +if ENV.fetch('GALTZO_FLOSS_DEV', 'false').casecmp('false').zero? + gem 'yard-fence', '~> 0.9', '>= 0.9.6', require: false # Ruby >= 3.2 + gem 'yard-timekeeper', '~> 0.2', '>= 0.2.4', require: false + gem 'yard-yaml', '~> 0.2', '>= 0.2.3', require: false else - eval_gemfile "documentation_local.gemfile" + eval_gemfile 'documentation_local.gemfile' end # Std Lib extractions -gem "rdoc", "~> 6.11", require: false unless ENV.fetch("KJ_FRAMEWORK_MATRIX_GEM", "") == "rdoc" +gem 'rdoc', '~> 6.11', require: false unless ENV.fetch('KJ_FRAMEWORK_MATRIX_GEM', '') == 'rdoc' diff --git a/gems/typescript-merge/gemfiles/modular/documentation_local.gemfile b/gems/typescript-merge/gemfiles/modular/documentation_local.gemfile index 1d5bbae44..040d0ef3a 100644 --- a/gems/typescript-merge/gemfiles/modular/documentation_local.gemfile +++ b/gems/typescript-merge/gemfiles/modular/documentation_local.gemfile @@ -11,21 +11,19 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] -nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) +nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] +nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == "nomono" } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - if nomono_locked - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] - end + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked end -Kernel.send(:gem, "nomono", *nomono_activation_requirements) -require "nomono/bundler" +Kernel.send(:gem, 'nomono', *nomono_activation_requirements) +require 'nomono/bundler' local_gems = %w[yard-fence yard-timekeeper yard-yaml] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) @@ -34,9 +32,9 @@ local_gems_to_eval = local_gems - %w[typescript-merge] - declared_gems # export GALTZO_FLOSS_DEV=/path/to/galtzo-floss eval_nomono_gems( gems: local_gems_to_eval, - prefix: "GALTZO_FLOSS", - path_env: "GALTZO_FLOSS_DEV", - vendored_gems_env: "GALTZO_FLOSS_VENDORED_GEMS", - vendor_gem_dir_env: "GALTZO_FLOSS_VENDOR_GEM_DIR", - debug_env: "GALTZO_FLOSS_DEBUG" + prefix: 'GALTZO_FLOSS', + path_env: 'GALTZO_FLOSS_DEV', + vendored_gems_env: 'GALTZO_FLOSS_VENDORED_GEMS', + vendor_gem_dir_env: 'GALTZO_FLOSS_VENDOR_GEM_DIR', + debug_env: 'GALTZO_FLOSS_DEBUG' ) diff --git a/gems/typescript-merge/gemfiles/modular/erb/r2/v3.0.gemfile b/gems/typescript-merge/gemfiles/modular/erb/r2/v3.0.gemfile index c03bd8d85..7c83a239b 100644 --- a/gems/typescript-merge/gemfiles/modular/erb/r2/v3.0.gemfile +++ b/gems/typescript-merge/gemfiles/modular/erb/r2/v3.0.gemfile @@ -1 +1 @@ -gem "erb", "~> 3.0" # ruby >= 2.7.0 +gem 'erb', '~> 3.0' # ruby >= 2.7.0 diff --git a/gems/typescript-merge/gemfiles/modular/erb/r3/v5.0.gemfile b/gems/typescript-merge/gemfiles/modular/erb/r3/v5.0.gemfile index 1bd029cc1..ec7ff451f 100644 --- a/gems/typescript-merge/gemfiles/modular/erb/r3/v5.0.gemfile +++ b/gems/typescript-merge/gemfiles/modular/erb/r3/v5.0.gemfile @@ -1 +1 @@ -gem "erb", "~> 6.0", ">= 6.0.6" # ruby >= 3.2.0 +gem 'erb', '~> 6.0', '>= 6.0.6' # ruby >= 3.2.0 diff --git a/gems/typescript-merge/gemfiles/modular/erb/r4/v5.0.gemfile b/gems/typescript-merge/gemfiles/modular/erb/r4/v5.0.gemfile index 1bd029cc1..ec7ff451f 100644 --- a/gems/typescript-merge/gemfiles/modular/erb/r4/v5.0.gemfile +++ b/gems/typescript-merge/gemfiles/modular/erb/r4/v5.0.gemfile @@ -1 +1 @@ -gem "erb", "~> 6.0", ">= 6.0.6" # ruby >= 3.2.0 +gem 'erb', '~> 6.0', '>= 6.0.6' # ruby >= 3.2.0 diff --git a/gems/typescript-merge/gemfiles/modular/erb/vHEAD.gemfile b/gems/typescript-merge/gemfiles/modular/erb/vHEAD.gemfile index 48fee4218..ea0101185 100644 --- a/gems/typescript-merge/gemfiles/modular/erb/vHEAD.gemfile +++ b/gems/typescript-merge/gemfiles/modular/erb/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 3.2 -gem "erb", github: "ruby/erb", branch: "master" +gem 'erb', github: 'ruby/erb', branch: 'master' diff --git a/gems/typescript-merge/gemfiles/modular/json/truffleruby_22_3.gemfile b/gems/typescript-merge/gemfiles/modular/json/truffleruby_22_3.gemfile index b0e69ab11..9b2f8d96a 100644 --- a/gems/typescript-merge/gemfiles/modular/json/truffleruby_22_3.gemfile +++ b/gems/typescript-merge/gemfiles/modular/json/truffleruby_22_3.gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -if RUBY_ENGINE == "truffleruby" && RUBY_ENGINE_VERSION.start_with?("22.3") +if RUBY_ENGINE == 'truffleruby' && RUBY_ENGINE_VERSION.start_with?('22.3') # TruffleRuby 22.3 ships the json default gem from its emulated MRI Ruby. - gem "json", "= 2.5.1" + gem 'json', '= 2.5.1' end diff --git a/gems/typescript-merge/gemfiles/modular/json/truffleruby_23_0.gemfile b/gems/typescript-merge/gemfiles/modular/json/truffleruby_23_0.gemfile index 7b2660a2b..d787a5ef4 100644 --- a/gems/typescript-merge/gemfiles/modular/json/truffleruby_23_0.gemfile +++ b/gems/typescript-merge/gemfiles/modular/json/truffleruby_23_0.gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -if RUBY_ENGINE == "truffleruby" && RUBY_ENGINE_VERSION.start_with?("23.0") +if RUBY_ENGINE == 'truffleruby' && RUBY_ENGINE_VERSION.start_with?('23.0') # TruffleRuby 23.0 ships the json default gem from its emulated MRI Ruby. - gem "json", "= 2.6.1" + gem 'json', '= 2.6.1' end diff --git a/gems/typescript-merge/gemfiles/modular/json/truffleruby_23_1.gemfile b/gems/typescript-merge/gemfiles/modular/json/truffleruby_23_1.gemfile index dfa21f2e4..d78486b0e 100644 --- a/gems/typescript-merge/gemfiles/modular/json/truffleruby_23_1.gemfile +++ b/gems/typescript-merge/gemfiles/modular/json/truffleruby_23_1.gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -if RUBY_ENGINE == "truffleruby" && RUBY_ENGINE_VERSION.start_with?("23.1") +if RUBY_ENGINE == 'truffleruby' && RUBY_ENGINE_VERSION.start_with?('23.1') # TruffleRuby 23.1 ships the json default gem from its emulated MRI Ruby. - gem "json", "= 2.6.3" + gem 'json', '= 2.6.3' end diff --git a/gems/typescript-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile b/gems/typescript-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile index 42e9d9bd4..e27f1bbae 100644 --- a/gems/typescript-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile +++ b/gems/typescript-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 -gem "mutex_m", "~> 0.2" +gem 'mutex_m', '~> 0.2' diff --git a/gems/typescript-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile b/gems/typescript-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile index 42e9d9bd4..e27f1bbae 100644 --- a/gems/typescript-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile +++ b/gems/typescript-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 -gem "mutex_m", "~> 0.2" +gem 'mutex_m', '~> 0.2' diff --git a/gems/typescript-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile b/gems/typescript-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile index 42e9d9bd4..e27f1bbae 100644 --- a/gems/typescript-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile +++ b/gems/typescript-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 -gem "mutex_m", "~> 0.2" +gem 'mutex_m', '~> 0.2' diff --git a/gems/typescript-merge/gemfiles/modular/mutex_m/vHEAD.gemfile b/gems/typescript-merge/gemfiles/modular/mutex_m/vHEAD.gemfile index 8af3b6fca..9dac2f6cb 100644 --- a/gems/typescript-merge/gemfiles/modular/mutex_m/vHEAD.gemfile +++ b/gems/typescript-merge/gemfiles/modular/mutex_m/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 (dependency of omniauth) -gem "mutex_m", github: "ruby/mutex_m", branch: "master" +gem 'mutex_m', github: 'ruby/mutex_m', branch: 'master' diff --git a/gems/typescript-merge/gemfiles/modular/optional.gemfile b/gems/typescript-merge/gemfiles/modular/optional.gemfile index 80bc45196..9ea429538 100644 --- a/gems/typescript-merge/gemfiles/modular/optional.gemfile +++ b/gems/typescript-merge/gemfiles/modular/optional.gemfile @@ -9,8 +9,8 @@ # Optional dependencies are not depended on directly, but may be used if present. # Required for curated binstubs generated by kettle-jem install -gem "rbs", ">= 3.0", require: false # ruby >= 3.1 +gem 'rbs', '>= 3.0', require: false # ruby >= 3.1 # Required for kettle-pre-release # URL parsing with Unicode support (falls back to URI if not available) -gem "addressable", ">= 2.8", "< 3" # ruby >= 2.2 +gem 'addressable', '>= 2.8', '< 3' # ruby >= 2.2 diff --git a/gems/typescript-merge/gemfiles/modular/rspec.gemfile b/gems/typescript-merge/gemfiles/modular/rspec.gemfile index 72fdf8b7f..2af210a41 100644 --- a/gems/typescript-merge/gemfiles/modular/rspec.gemfile +++ b/gems/typescript-merge/gemfiles/modular/rspec.gemfile @@ -1,4 +1,4 @@ -gem "rspec_junit_formatter", - github: "pboling/rspec_junit_formatter", - branch: "main", - ref: "9e6bcaaedd49477b62878ed568dc4ada5cc7cb5e" +gem 'rspec_junit_formatter', + github: 'pboling/rspec_junit_formatter', + branch: 'main', + ref: '9e6bcaaedd49477b62878ed568dc4ada5cc7cb5e' diff --git a/gems/typescript-merge/gemfiles/modular/runtime_heads.gemfile b/gems/typescript-merge/gemfiles/modular/runtime_heads.gemfile index 02f134c7f..ebf17c529 100644 --- a/gems/typescript-merge/gemfiles/modular/runtime_heads.gemfile +++ b/gems/typescript-merge/gemfiles/modular/runtime_heads.gemfile @@ -8,4 +8,4 @@ # Test against HEAD of runtime dependencies so we can proactively file bugs -eval_gemfile("x_std_libs/vHEAD.gemfile") +eval_gemfile('x_std_libs/vHEAD.gemfile') diff --git a/gems/typescript-merge/gemfiles/modular/stringio/r2/v3.0.gemfile b/gems/typescript-merge/gemfiles/modular/stringio/r2/v3.0.gemfile index e85bb18ee..3616f4e3a 100644 --- a/gems/typescript-merge/gemfiles/modular/stringio/r2/v3.0.gemfile +++ b/gems/typescript-merge/gemfiles/modular/stringio/r2/v3.0.gemfile @@ -2,4 +2,4 @@ # NOT SEMVER # Version 3.0.7 dropped support for Ruby <= 2.7 # Version 3.0.0 dropped support for Ruby <= 2.4 -gem "stringio", ">= 3.0" +gem 'stringio', '>= 3.0' diff --git a/gems/typescript-merge/gemfiles/modular/stringio/r3/v3.0.gemfile b/gems/typescript-merge/gemfiles/modular/stringio/r3/v3.0.gemfile index e85bb18ee..3616f4e3a 100644 --- a/gems/typescript-merge/gemfiles/modular/stringio/r3/v3.0.gemfile +++ b/gems/typescript-merge/gemfiles/modular/stringio/r3/v3.0.gemfile @@ -2,4 +2,4 @@ # NOT SEMVER # Version 3.0.7 dropped support for Ruby <= 2.7 # Version 3.0.0 dropped support for Ruby <= 2.4 -gem "stringio", ">= 3.0" +gem 'stringio', '>= 3.0' diff --git a/gems/typescript-merge/gemfiles/modular/stringio/r4/v3.0.gemfile b/gems/typescript-merge/gemfiles/modular/stringio/r4/v3.0.gemfile index e85bb18ee..3616f4e3a 100644 --- a/gems/typescript-merge/gemfiles/modular/stringio/r4/v3.0.gemfile +++ b/gems/typescript-merge/gemfiles/modular/stringio/r4/v3.0.gemfile @@ -2,4 +2,4 @@ # NOT SEMVER # Version 3.0.7 dropped support for Ruby <= 2.7 # Version 3.0.0 dropped support for Ruby <= 2.4 -gem "stringio", ">= 3.0" +gem 'stringio', '>= 3.0' diff --git a/gems/typescript-merge/gemfiles/modular/stringio/vHEAD.gemfile b/gems/typescript-merge/gemfiles/modular/stringio/vHEAD.gemfile index 5f2a74126..78f5f5d8a 100644 --- a/gems/typescript-merge/gemfiles/modular/stringio/vHEAD.gemfile +++ b/gems/typescript-merge/gemfiles/modular/stringio/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 (dependency of omniauth) -gem "stringio", github: "ruby/stringio", branch: "master" +gem 'stringio', github: 'ruby/stringio', branch: 'master' diff --git a/gems/typescript-merge/gemfiles/modular/style.gemfile b/gems/typescript-merge/gemfiles/modular/style.gemfile index 35de4dcd6..4dbcc02c0 100644 --- a/gems/typescript-merge/gemfiles/modular/style.gemfile +++ b/gems/typescript-merge/gemfiles/modular/style.gemfile @@ -9,23 +9,23 @@ # Style tasks run on the latest Ruby; RuboCop-LTS selects the compatibility # rules for the configured Ruby floor independently from task dependency floors. -gem "reek", "~> 6.5", ">= 6.5.0" +gem 'reek', '~> 6.5', '>= 6.5.0' platform :mri do - gem "appraisal2-rubocop", "~> 1.0", ">= 1.0.0", require: false - gem "rubocop-gradual", "~> 0.4", ">= 0.4.0" - gem "rubocop-minitest", "~> 0.40", ">= 0.40.0" - gem "rubocop-on-rbs", "~> 2.0", ">= 2.0.0" # ruby >= 3.2.0 + gem 'appraisal2-rubocop', '~> 1.0', '>= 1.0.0', require: false + gem 'rubocop-gradual', '~> 0.4', '>= 0.4.0' + gem 'rubocop-minitest', '~> 0.40', '>= 0.40.0' + gem 'rubocop-on-rbs', '~> 2.0', '>= 2.0.0' # ruby >= 3.2.0 # gem "rubocop", "~> 1.73", ">= 1.73.2" # constrained by standard - gem "rubocop-packaging", "~> 0.6", ">= 0.6.0" - gem "standard", "~> 1.56", ">= 1.56.0" + gem 'rubocop-packaging', '~> 0.6', '>= 0.6.0' + gem 'standard', '~> 1.56', '>= 1.56.0' - if ENV.fetch("RUBOCOP_LTS_LOCAL", "false").casecmp("false").zero? + if ENV.fetch('RUBOCOP_LTS_LOCAL', 'false').casecmp('false').zero? declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) - gem "rubocop-lts", "~> 24.2", ">= 24.2.1" unless declared_gems.include?("rubocop-lts") - gem "rubocop-lts-rspec", "~> 1.0", ">= 1.0.5" unless declared_gems.include?("rubocop-lts-rspec") - gem "rubocop-ruby3_2", "~> 3.0", ">= 3.0.6" unless declared_gems.include?("rubocop-ruby3_2") + gem 'rubocop-lts', '~> 24.2', '>= 24.2.1' unless declared_gems.include?('rubocop-lts') + gem 'rubocop-lts-rspec', '~> 1.0', '>= 1.0.5' unless declared_gems.include?('rubocop-lts-rspec') + gem 'rubocop-ruby3_2', '~> 3.0', '>= 3.0.6' unless declared_gems.include?('rubocop-ruby3_2') else - eval_gemfile("style_local.gemfile") + eval_gemfile('style_local.gemfile') end end diff --git a/gems/typescript-merge/gemfiles/modular/style_local.gemfile b/gems/typescript-merge/gemfiles/modular/style_local.gemfile index 28167579c..207bbb175 100644 --- a/gems/typescript-merge/gemfiles/modular/style_local.gemfile +++ b/gems/typescript-merge/gemfiles/modular/style_local.gemfile @@ -14,21 +14,19 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] -nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) +nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] +nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == "nomono" } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - if nomono_locked - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] - end + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked end -Kernel.send(:gem, "nomono", *nomono_activation_requirements) -require "nomono/bundler" +Kernel.send(:gem, 'nomono', *nomono_activation_requirements) +require 'nomono/bundler' local_gems = %w[rubocop-lts rubocop-lts-rspec rubocop-ruby3_2 standard-rubocop-lts] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) @@ -38,11 +36,11 @@ local_gems_to_eval = local_gems - %w[typescript-merge] - declared_gems platform :mri do eval_nomono_gems( gems: local_gems_to_eval, - prefix: "RUBOCOP_LTS", - path_env: "RUBOCOP_LTS_LOCAL", - vendored_gems_env: "VENDORED_GEMS", - vendor_gem_dir_env: "VENDOR_GEM_DIR", - debug_env: "RUBOCOP_LTS_DEBUG", - root: ["src", "rubocop-lts"] + prefix: 'RUBOCOP_LTS', + path_env: 'RUBOCOP_LTS_LOCAL', + vendored_gems_env: 'VENDORED_GEMS', + vendor_gem_dir_env: 'VENDOR_GEM_DIR', + debug_env: 'RUBOCOP_LTS_DEBUG', + root: %w[src rubocop-lts] ) end diff --git a/gems/typescript-merge/gemfiles/modular/templating.gemfile b/gems/typescript-merge/gemfiles/modular/templating.gemfile index 47138ffbb..a672de184 100644 --- a/gems/typescript-merge/gemfiles/modular/templating.gemfile +++ b/gems/typescript-merge/gemfiles/modular/templating.gemfile @@ -1,18 +1,18 @@ # frozen_string_literal: true -structuredmerge_remote = ENV.fetch("STRUCTUREDMERGE_DEV", "false").casecmp("false").zero? -kettle_remote = ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false").zero? +structuredmerge_remote = ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false').zero? +kettle_remote = ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? if structuredmerge_remote # Parser dependencies for released installs. - gem "tree_sitter_language_pack", "~> 1.13", ">= 1.13.3" + gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' # Merge recipes for released installs. - gem "kettle-jem", ">= 7.0" + gem 'kettle-jem', '>= 7.0' end if kettle_remote # Template/plugin checks for released installs. - gem "kettle-drift", "~> 1.0", ">= 1.0.6", require: false + gem 'kettle-drift', '~> 1.0', '>= 1.0.6', require: false end # Set STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local development with path-based dependencies. @@ -21,4 +21,4 @@ end # # Set KETTLE_DEV_DEV=/path/to/my for local development with Kettle plugin gems. # When false (default / CI), released Kettle plugin gems are used. -eval_gemfile "templating_local.gemfile" unless structuredmerge_remote && kettle_remote +eval_gemfile 'templating_local.gemfile' unless structuredmerge_remote && kettle_remote diff --git a/gems/typescript-merge/gemfiles/modular/templating_local.gemfile b/gems/typescript-merge/gemfiles/modular/templating_local.gemfile index b089677ff..997ea7d01 100644 --- a/gems/typescript-merge/gemfiles/modular/templating_local.gemfile +++ b/gems/typescript-merge/gemfiles/modular/templating_local.gemfile @@ -12,21 +12,19 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] -nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) +nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] +nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == "nomono" } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - if nomono_locked - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] - end + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked end -Kernel.send(:gem, "nomono", *nomono_activation_requirements) -require "nomono/bundler" +Kernel.send(:gem, 'nomono', *nomono_activation_requirements) +require 'nomono/bundler' structuredmerge_local_gems = %w[ tree_haver @@ -69,25 +67,25 @@ structuredmerge_local_gems_to_eval = structuredmerge_local_gems - %w[typescript- kettle_dev_local_gems_to_eval = kettle_dev_local_gems - %w[typescript-merge] - declared_gems platform :mri do - if ENV.fetch("STRUCTUREDMERGE_DEV", "false").casecmp("false") != 0 + if ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false') != 0 eval_nomono_gems( gems: structuredmerge_local_gems_to_eval, - prefix: "STRUCTUREDMERGE", - path_env: "STRUCTUREDMERGE_DEV", - vendored_gems_env: "VENDORED_GEMS", - vendor_gem_dir_env: "VENDOR_GEM_DIR", - debug_env: "STRUCTUREDMERGE_DEBUG" + prefix: 'STRUCTUREDMERGE', + path_env: 'STRUCTUREDMERGE_DEV', + vendored_gems_env: 'VENDORED_GEMS', + vendor_gem_dir_env: 'VENDOR_GEM_DIR', + debug_env: 'STRUCTUREDMERGE_DEBUG' ) end - if ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false") != 0 + if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false') != 0 eval_nomono_gems( gems: kettle_dev_local_gems_to_eval, - prefix: "KETTLE_DEV", - path_env: "KETTLE_DEV_DEV", - vendored_gems_env: "VENDORED_GEMS", - vendor_gem_dir_env: "VENDOR_GEM_DIR", - debug_env: "KETTLE_DEV_DEBUG" + prefix: 'KETTLE_DEV', + path_env: 'KETTLE_DEV_DEV', + vendored_gems_env: 'VENDORED_GEMS', + vendor_gem_dir_env: 'VENDOR_GEM_DIR', + debug_env: 'KETTLE_DEV_DEBUG' ) end end diff --git a/gems/typescript-merge/gemfiles/modular/webrick/r4/v1.9.gemfile b/gems/typescript-merge/gemfiles/modular/webrick/r4/v1.9.gemfile index eaab4a473..b1329ba84 100644 --- a/gems/typescript-merge/gemfiles/modular/webrick/r4/v1.9.gemfile +++ b/gems/typescript-merge/gemfiles/modular/webrick/r4/v1.9.gemfile @@ -1 +1 @@ -gem "webrick", "~> 1.9" +gem 'webrick', '~> 1.9' diff --git a/gems/typescript-merge/gemfiles/modular/webrick/vHEAD.gemfile b/gems/typescript-merge/gemfiles/modular/webrick/vHEAD.gemfile index 8a789b634..c7e6f81a1 100644 --- a/gems/typescript-merge/gemfiles/modular/webrick/vHEAD.gemfile +++ b/gems/typescript-merge/gemfiles/modular/webrick/vHEAD.gemfile @@ -1 +1 @@ -gem "webrick", ">= 1.9" +gem 'webrick', '>= 1.9' diff --git a/gems/typescript-merge/gemfiles/modular/x_std_libs.gemfile b/gems/typescript-merge/gemfiles/modular/x_std_libs.gemfile index 77aad43f2..b1f43c097 100644 --- a/gems/typescript-merge/gemfiles/modular/x_std_libs.gemfile +++ b/gems/typescript-merge/gemfiles/modular/x_std_libs.gemfile @@ -1,12 +1,12 @@ ### Std Lib Extracted Gems ruby_version = Gem::Version.new(RUBY_VERSION) -if ruby_version >= Gem::Version.new("4.0") - eval_gemfile "x_std_libs/r4/libs.gemfile" -elsif ruby_version >= Gem::Version.new("3.2") - eval_gemfile "x_std_libs/r3/libs.gemfile" -elsif ruby_version >= Gem::Version.new("3.1") - eval_gemfile "x_std_libs/r3.1/libs.gemfile" +if ruby_version >= Gem::Version.new('4.0') + eval_gemfile 'x_std_libs/r4/libs.gemfile' +elsif ruby_version >= Gem::Version.new('3.2') + eval_gemfile 'x_std_libs/r3/libs.gemfile' +elsif ruby_version >= Gem::Version.new('3.1') + eval_gemfile 'x_std_libs/r3.1/libs.gemfile' else - eval_gemfile "x_std_libs/r2/libs.gemfile" + eval_gemfile 'x_std_libs/r2/libs.gemfile' end diff --git a/gems/typescript-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile b/gems/typescript-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile index 441c4f03a..16a5e3d70 100644 --- a/gems/typescript-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile +++ b/gems/typescript-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile @@ -1,3 +1,3 @@ -eval_gemfile "../../erb/r2/v3.0.gemfile" -eval_gemfile "../../mutex_m/r2/v0.3.gemfile" -eval_gemfile "../../stringio/r2/v3.0.gemfile" +eval_gemfile '../../erb/r2/v3.0.gemfile' +eval_gemfile '../../mutex_m/r2/v0.3.gemfile' +eval_gemfile '../../stringio/r2/v3.0.gemfile' diff --git a/gems/typescript-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile b/gems/typescript-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile index c293a3ddd..220ff95c1 100644 --- a/gems/typescript-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile +++ b/gems/typescript-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile @@ -1,3 +1,3 @@ -eval_gemfile "../../erb/r3/v5.0.gemfile" -eval_gemfile "../../mutex_m/r3/v0.3.gemfile" -eval_gemfile "../../stringio/r3/v3.0.gemfile" +eval_gemfile '../../erb/r3/v5.0.gemfile' +eval_gemfile '../../mutex_m/r3/v0.3.gemfile' +eval_gemfile '../../stringio/r3/v3.0.gemfile' diff --git a/gems/typescript-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile b/gems/typescript-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile index eb5574247..e2f6501eb 100644 --- a/gems/typescript-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile +++ b/gems/typescript-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile @@ -1,6 +1,6 @@ -eval_gemfile "../../erb/r4/v5.0.gemfile" -eval_gemfile "../../mutex_m/r4/v0.3.gemfile" -eval_gemfile "../../stringio/r4/v3.0.gemfile" -eval_gemfile "../../benchmark/r4/v0.5.gemfile" -eval_gemfile "../../cgi/r4/v0.5.gemfile" -eval_gemfile "../../webrick/r4/v1.9.gemfile" +eval_gemfile '../../erb/r4/v5.0.gemfile' +eval_gemfile '../../mutex_m/r4/v0.3.gemfile' +eval_gemfile '../../stringio/r4/v3.0.gemfile' +eval_gemfile '../../benchmark/r4/v0.5.gemfile' +eval_gemfile '../../cgi/r4/v0.5.gemfile' +eval_gemfile '../../webrick/r4/v1.9.gemfile' diff --git a/gems/typescript-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile b/gems/typescript-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile index d4d5b16c9..ab75cccf1 100644 --- a/gems/typescript-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile +++ b/gems/typescript-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile @@ -1,6 +1,6 @@ -eval_gemfile "../erb/vHEAD.gemfile" -eval_gemfile "../mutex_m/vHEAD.gemfile" -eval_gemfile "../stringio/vHEAD.gemfile" -eval_gemfile "../benchmark/vHEAD.gemfile" -eval_gemfile "../cgi/vHEAD.gemfile" -eval_gemfile "../webrick/vHEAD.gemfile" +eval_gemfile '../erb/vHEAD.gemfile' +eval_gemfile '../mutex_m/vHEAD.gemfile' +eval_gemfile '../stringio/vHEAD.gemfile' +eval_gemfile '../benchmark/vHEAD.gemfile' +eval_gemfile '../cgi/vHEAD.gemfile' +eval_gemfile '../webrick/vHEAD.gemfile' diff --git a/gems/typescript-merge/lib/typescript/merge/version.rb b/gems/typescript-merge/lib/typescript/merge/version.rb index 954f44d95..770779ac0 100644 --- a/gems/typescript-merge/lib/typescript/merge/version.rb +++ b/gems/typescript-merge/lib/typescript/merge/version.rb @@ -3,7 +3,7 @@ module TypeScript module Merge module Version - VERSION = "7.1.0" + VERSION = '7.1.0' end VERSION = Version::VERSION # Traditional Constant Location end diff --git a/gems/zip-merge/.kettle-drift.lock b/gems/zip-merge/.kettle-drift.lock index f1287e677..d28e306b0 100644 --- a/gems/zip-merge/.kettle-drift.lock +++ b/gems/zip-merge/.kettle-drift.lock @@ -1,130 +1,10 @@ { - "(direct_sibling_local ||\nENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?)": [ - { - "file": "Gemfile", - "lines": [ - 79, - 119, - 159, - 199, - 239, - 279, - 319, - 359, - 399 - ] - } - ], - ".find { |spec| spec.name == 'nomono' }\nnomono_locked = nomono_locked_spec &&": [ - { - "file": "Gemfile", - "lines": [ - 90, - 130, - 170, - 210, - 250, - 290, - 330, - 370, - 410 - ] - } - ], - "ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?)\ndirect_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV')": [ - { - "file": "Gemfile", - "lines": [ - 80, - 120, - 160, - 200, - 240, - 280, - 320, - 360, - 400 - ] - } - ], - "Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version)\nnomono_activation_requirements = [\"= #{nomono_locked_spec.version}\"] if nomono_locked": [ - { - "file": "Gemfile", - "lines": [ - 92, - 132, - 172, - 212, - 252, - 292, - 332, - 372, - 412 - ] - } - ], - "Kernel.send(:gem, 'nomono', *nomono_activation_requirements)\nrequire 'nomono/bundler'": [ - { - "file": "Gemfile", - "lines": [ - 95, - 135, - 175, - 215, - 255, - 295, - 335, - 375, - 415 - ] - } - ], - "direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV')\ndirect_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil)": [ - { - "file": "Gemfile", - "lines": [ - 81, - 121, - 161, - 201, - 241, - 281, - 321, - 361, - 401 - ] - } - ], "eval_nomono_gems(\ngems: direct_sibling_gems,": [ { "file": "Gemfile", "lines": [ 59, - 99, - 139, - 179, - 219, - 259, - 299, - 339, - 379, - 419 - ] - } - ], - "gems: direct_sibling_gems,\nprefix: 'STRUCTUREDMERGE',": [ - { - "file": "Gemfile", - "lines": [ - 100, - 140, - 180, - 220, - 260, - 300, - 340, - 380, - 420 + 99 ] } ], @@ -133,31 +13,7 @@ "file": "Gemfile", "lines": [ 42, - 86, - 126, - 166, - 206, - 246, - 286, - 326, - 366, - 406 - ] - } - ], - "if direct_sibling_dev_was_set\nENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original": [ - { - "file": "Gemfile", - "lines": [ - 109, - 149, - 189, - 229, - 269, - 309, - 349, - 389, - 429 + 86 ] } ], @@ -166,15 +22,7 @@ "file": "Gemfile", "lines": [ 34, - 78, - 118, - 158, - 198, - 238, - 278, - 318, - 358, - 398 + 78 ] } ], @@ -183,31 +31,7 @@ "file": "Gemfile", "lines": [ 68, - 108, - 148, - 188, - 228, - 268, - 308, - 348, - 388, - 428 - ] - } - ], - "nomono_activation_requirements = nomono_requirements\nnomono_lockfile = File.expand_path('Gemfile.lock', __dir__)": [ - { - "file": "Gemfile", - "lines": [ - 84, - 124, - 164, - 204, - 244, - 284, - 324, - 364, - 404 + 108 ] } ], @@ -216,15 +40,7 @@ "file": "Gemfile", "lines": [ 47, - 91, - 131, - 171, - 211, - 251, - 291, - 331, - 371, - 411 + 91 ] } ], @@ -233,95 +49,7 @@ "file": "Gemfile", "lines": [ 43, - 87, - 127, - 167, - 207, - 247, - 287, - 327, - 367, - 407 - ] - } - ], - "nomono_lockfile = File.expand_path('Gemfile.lock', __dir__)\nif File.file?(nomono_lockfile)": [ - { - "file": "Gemfile", - "lines": [ - 85, - 125, - 165, - 205, - 245, - 285, - 325, - 365, - 405 - ] - } - ], - "path_env: 'STRUCTUREDMERGE_DEV',\nroot: %w[src my structuredmerge]": [ - { - "file": "Gemfile", - "lines": [ - 102, - 142, - 182, - 222, - 262, - 302, - 342, - 382, - 422 - ] - } - ], - "prefix: 'STRUCTUREDMERGE',\npath_env: 'STRUCTUREDMERGE_DEV',": [ - { - "file": "Gemfile", - "lines": [ - 101, - 141, - 181, - 221, - 261, - 301, - 341, - 381, - 421 - ] - } - ], - "require 'nomono/bundler'\nENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local": [ - { - "file": "Gemfile", - "lines": [ - 96, - 136, - 176, - 216, - 256, - 296, - 336, - 376, - 416 - ] - } - ], - "rescue LoadError\nwarn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.'": [ - { - "file": "Gemfile", - "lines": [ - 105, - 145, - 185, - 225, - 265, - 305, - 345, - 385, - 425 + 87 ] } ], @@ -329,8 +57,8 @@ { "file": "gemfiles/modular/templating_local.gemfile", "lines": [ - 60, - 71 + 55, + 66 ] } ] diff --git a/gems/zip-merge/.structuredmerge/kettle-jem.yml b/gems/zip-merge/.structuredmerge/kettle-jem.yml index 76e21b39a..76c718445 100644 --- a/gems/zip-merge/.structuredmerge/kettle-jem.yml +++ b/gems/zip-merge/.structuredmerge/kettle-jem.yml @@ -246,6 +246,59 @@ templates: - Gemfile - certs/pboling.pem - tmp/.gitignore + - gemfiles/modular/benchmark/r4/v0.5.gemfile + - gemfiles/modular/benchmark/vHEAD.gemfile + - gemfiles/modular/cgi/r4/v0.5.gemfile + - gemfiles/modular/cgi/vHEAD.gemfile + - gemfiles/modular/coverage.gemfile + - gemfiles/modular/coverage_local.gemfile + - gemfiles/modular/debug.gemfile + - gemfiles/modular/documentation.gemfile + - gemfiles/modular/documentation_local.gemfile + - gemfiles/modular/erb/r2.3/default.gemfile + - gemfiles/modular/erb/r2.6/v2.2.gemfile + - gemfiles/modular/erb/r2/v3.0.gemfile + - gemfiles/modular/erb/r3.1/v4.0.gemfile + - gemfiles/modular/erb/r3/v5.0.gemfile + - gemfiles/modular/erb/r4/v5.0.gemfile + - gemfiles/modular/erb/vHEAD.gemfile + - gemfiles/modular/json/truffleruby_22_3.gemfile + - gemfiles/modular/json/truffleruby_23_0.gemfile + - gemfiles/modular/json/truffleruby_23_1.gemfile + - gemfiles/modular/mutex_m/r2.4/v0.1.gemfile + - gemfiles/modular/mutex_m/r2/v0.3.gemfile + - gemfiles/modular/mutex_m/r3/v0.3.gemfile + - gemfiles/modular/mutex_m/r4/v0.3.gemfile + - gemfiles/modular/mutex_m/vHEAD.gemfile + - gemfiles/modular/optional.gemfile + - gemfiles/modular/recording/r2.3/recording.gemfile + - gemfiles/modular/recording/r2.4/recording.gemfile + - gemfiles/modular/recording/r2.5/recording.gemfile + - gemfiles/modular/recording/r3/recording.gemfile + - gemfiles/modular/recording/r4/recording.gemfile + - gemfiles/modular/recording/vHEAD.gemfile + - gemfiles/modular/rspec.gemfile + - gemfiles/modular/runtime_heads.gemfile + - gemfiles/modular/stringio/r2.4/v0.0.2.gemfile + - gemfiles/modular/stringio/r2/v3.0.gemfile + - gemfiles/modular/stringio/r3/v3.0.gemfile + - gemfiles/modular/stringio/r4/v3.0.gemfile + - gemfiles/modular/stringio/vHEAD.gemfile + - gemfiles/modular/style.gemfile + - gemfiles/modular/style_local.gemfile + - gemfiles/modular/templating.gemfile + - gemfiles/modular/templating_local.gemfile + - gemfiles/modular/webrick/r4/v1.9.gemfile + - gemfiles/modular/webrick/vHEAD.gemfile + - gemfiles/modular/x_std_libs.gemfile + - gemfiles/modular/x_std_libs/r2.3/libs.gemfile + - gemfiles/modular/x_std_libs/r2.4/libs.gemfile + - gemfiles/modular/x_std_libs/r2.6/libs.gemfile + - gemfiles/modular/x_std_libs/r2/libs.gemfile + - gemfiles/modular/x_std_libs/r3.1/libs.gemfile + - gemfiles/modular/x_std_libs/r3/libs.gemfile + - gemfiles/modular/x_std_libs/r4/libs.gemfile + - gemfiles/modular/x_std_libs/vHEAD.gemfile - source: lib/gem/version.rb target: lib/zip/merge/version.rb - source: sig/gem.rbs diff --git a/gems/zip-merge/Gemfile b/gems/zip-merge/Gemfile index 744d3de89..837a74c72 100644 --- a/gems/zip-merge/Gemfile +++ b/gems/zip-merge/Gemfile @@ -6,7 +6,7 @@ # kettle-jem will then preserve content between those markers across template runs. # kettle-jem:unfreeze -source 'https://gem.coop' +source "https://gem.coop" git_source(:codeberg) { |repo_name| "https://codeberg.org/#{repo_name}" } git_source(:gitlab) { |repo_name| "https://gitlab.com/#{repo_name}" } @@ -19,17 +19,61 @@ git_source(:gitlab) { |repo_name| "https://gitlab.com/#{repo_name}" } gemspec # Local workspace dependency wiring for *_local.gemfile overrides -nomono_requirements = ['~> 1.0', '>= 1.0.8'] -gem 'nomono', *nomono_requirements, require: false # ruby >= 2.2 +nomono_requirements = ["~> 1.0", ">= 1.0.8"] +gem "nomono", *nomono_requirements, require: false # ruby >= 2.2 # Direct sibling dependencies (env-switched via STRUCTUREDMERGE_DEV) direct_sibling_gems = %w[ tree_haver ] -direct_sibling_dev = ENV.fetch('STRUCTUREDMERGE_DEV', '') +direct_sibling_dev = ENV.fetch("STRUCTUREDMERGE_DEV", "") direct_sibling_local = !direct_sibling_dev.empty? && !%w[false 0 no off].include?(direct_sibling_dev.downcase) -direct_sibling_templating = ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? +direct_sibling_templating = ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? + +if direct_sibling_gems.any? && + (direct_sibling_local || + ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero?) + direct_sibling_dev_was_set = ENV.key?("STRUCTUREDMERGE_DEV") + direct_sibling_dev_original = ENV.fetch("STRUCTUREDMERGE_DEV", nil) + begin + nomono_activation_requirements = nomono_requirements + nomono_lockfile = File.expand_path("Gemfile.lock", __dir__) + if File.file?(nomono_lockfile) + nomono_locked_spec = Bundler::LockfileParser + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == "nomono" } + nomono_locked = nomono_locked_spec && + Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) + if nomono_locked + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] + end + end + Kernel.send(:gem, "nomono", *nomono_activation_requirements) + require "nomono/bundler" + if direct_sibling_templating && !direct_sibling_local + ENV["STRUCTUREDMERGE_DEV"] = File.expand_path("..", __dir__) + end + + eval_nomono_gems( + gems: direct_sibling_gems, + prefix: "STRUCTUREDMERGE", + path_env: "STRUCTUREDMERGE_DEV", + root: ["src", "my", "structuredmerge"] + ) + rescue LoadError + warn "Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies." + ensure + if direct_sibling_templating && !direct_sibling_local + if direct_sibling_dev_was_set + ENV["STRUCTUREDMERGE_DEV"] = direct_sibling_dev_original + else + ENV.delete("STRUCTUREDMERGE_DEV") + end + end + end +end if direct_sibling_gems.any? && (direct_sibling_local || @@ -72,28 +116,28 @@ if direct_sibling_gems.any? && end # Use released TSLP with the Ruby ABI platform-gem fix. -gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' +gem "tree_sitter_language_pack", "~> 1.13", ">= 1.13.3" # Templating (env-switched: STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local paths) -eval_gemfile 'gemfiles/modular/templating.gemfile' if ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? +eval_gemfile "gemfiles/modular/templating.gemfile" if ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? # Debugging -eval_gemfile 'gemfiles/modular/debug.gemfile' +eval_gemfile "gemfiles/modular/debug.gemfile" # Code Coverage (env-switched: KETTLE_DEV_DEV=true for local paths) -eval_gemfile 'gemfiles/modular/coverage.gemfile' +eval_gemfile "gemfiles/modular/coverage.gemfile" # Linting -eval_gemfile 'gemfiles/modular/style.gemfile' +eval_gemfile "gemfiles/modular/style.gemfile" # Documentation -eval_gemfile 'gemfiles/modular/documentation.gemfile' +eval_gemfile "gemfiles/modular/documentation.gemfile" # Optional -eval_gemfile 'gemfiles/modular/optional.gemfile' +eval_gemfile "gemfiles/modular/optional.gemfile" ### Std Lib Extracted Gems -eval_gemfile 'gemfiles/modular/x_std_libs.gemfile' +eval_gemfile "gemfiles/modular/x_std_libs.gemfile" # See unlocked_deps appraisal for more details on irb inclusion -gem 'irb', '~> 1.17' # ruby >= 2.7 +gem "irb", "~> 1.17" # ruby >= 2.7 diff --git a/gems/zip-merge/Gemfile.lock b/gems/zip-merge/Gemfile.lock index e9a145486..5dbd033d4 100644 --- a/gems/zip-merge/Gemfile.lock +++ b/gems/zip-merge/Gemfile.lock @@ -5,6 +5,266 @@ PATH tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly + specs: + ast-crispr-markdown-markly (7.1.0) + ast-crispr (= 7.1.0) + markly-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism + specs: + ast-crispr-ruby-prism (7.1.0) + ast-crispr (= 7.1.0) + prism-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr + specs: + ast-crispr (7.1.0) + ast-merge (= 7.1.0) + service_actor (~> 3.9) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git + specs: + ast-merge-git (7.1.0) + ast-merge (= 7.1.0) + json-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge + specs: + ast-merge (7.1.0) + benchmark + token-resolver (~> 2.0, >= 2.0.4) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template + specs: + ast-template (7.1.0) + ast-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge + specs: + bash-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge + specs: + binary-merge (7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge + specs: + citrus-toml-merge (7.1.0) + toml-merge (= 7.1.0) + toml-rb (~> 4.1) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge + specs: + commonmarker-merge (7.1.0) + commonmarker (~> 2.2) + markdown-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge + specs: + dotenv-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge + specs: + go-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge + specs: + json-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem + specs: + kettle-jem (7.1.0) + addressable (>= 2.8, < 3) + ast-crispr-markdown-markly (= 7.1.0) + ast-crispr-ruby-prism (= 7.1.0) + ast-merge (= 7.1.0) + bash-merge (= 7.1.0) + citrus-toml-merge (= 7.1.0) + commonmarker-merge (= 7.1.0) + dotenv-merge (= 7.1.0) + json-merge (= 7.1.0) + kettle-dev (~> 2.3, >= 2.3.5) + kettle-rb (~> 0.1, >= 0.1.4) + kramdown-merge (= 7.1.0) + markdown-merge (= 7.1.0) + markly-merge (= 7.1.0) + prism-merge (= 7.1.0) + psych-merge (= 7.1.0) + rbs (>= 3.10) + rbs-merge (= 7.1.0) + ruby-merge (= 7.1.0) + token-resolver (~> 2.0, >= 2.0.4) + toml-merge (= 7.1.0) + toml-rb (~> 4.2) + tree_haver (= 7.1.0) + yaml-merge (= 7.1.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge + specs: + kramdown-merge (7.1.0) + kramdown (~> 2.5) + markdown-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge + specs: + markdown-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge + specs: + markly-merge (7.1.0) + markdown-merge (= 7.1.0) + markly (~> 0.9) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge + specs: + parslet-toml-merge (7.1.0) + toml (~> 0.3) + toml-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge + specs: + plain-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge + specs: + prism-merge (7.1.0) + prism (~> 1.6) + ruby-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge + specs: + psych-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + yaml-merge (= 7.1.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge + specs: + rbs-merge (7.1.0) + ast-merge (= 7.1.0) + rbs (>= 3.10) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge + specs: + ruby-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge + specs: + rust-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb + specs: + smorg-rb (7.1.0) + ast-merge (= 7.1.0) + ast-merge-git (= 7.1.0) + go-merge (= 7.1.0) + json-merge (= 7.1.0) + kettle-jem (= 7.1.0) + markly-merge (= 7.1.0) + plain-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge + specs: + toml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver + specs: + tree_haver (7.1.0) + citrus (~> 3.0) + parslet (~> 2.0) + tree_sitter_language_pack (>= 1.13.2, < 2.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge + specs: + typescript-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge + specs: + yaml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + GEM remote: https://gem.coop/ specs: @@ -24,6 +284,12 @@ GEM thor (~> 1.0) citrus (3.0.2) cmdparse (3.0.7) + commonmarker (2.9.0-aarch64-linux) + commonmarker (2.9.0-aarch64-linux-musl) + commonmarker (2.9.0-arm64-darwin) + commonmarker (2.9.0-x86_64-darwin) + commonmarker (2.9.0-x86_64-linux) + commonmarker (2.9.0-x86_64-linux-musl) concurrent-ruby (1.3.7) date (3.5.1) debug (1.11.1) @@ -87,6 +353,8 @@ GEM kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) + kettle-drift (1.0.6) + version_gem (~> 1.1, >= 1.1.14) kettle-rb (0.1.4) kettle-soup-cover (1.1.3) simplecov (~> 0.22) @@ -115,6 +383,7 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) + markly (0.16.0) mutex_m (0.3.0) nokogiri (1.19.4-aarch64-linux-gnu) racc (~> 1.4) @@ -251,6 +520,8 @@ GEM ruby-progressbar (1.13.0) ruby_engine (2.0.3) ruby_version (1.0.3) + service_actor (3.9.4) + zeitwerk (>= 1.0) silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) @@ -300,11 +571,14 @@ GEM delegate (~> 0.1) rspec (~> 3.0) timecop (>= 0.7, < 1) - tree_haver (7.1.0) - citrus (~> 3.0) + token-resolver (2.0.5) parslet (~> 2.0) - tree_sitter_language_pack (>= 1.13.2, < 2.0) - version_gem (~> 1.1, >= 1.1.9) + version_gem (~> 1.1, >= 1.1.14) + toml (0.3.0) + parslet (>= 1.8.0, < 3.0.0) + toml-rb (4.2.0) + citrus (~> 3.0, > 3.0) + racc (~> 1.7) tree_sitter_language_pack (1.13.3-aarch64-linux) sorbet-runtime (~> 0.5) tree_sitter_language_pack (1.13.3-arm64-darwin) @@ -359,22 +633,45 @@ PLATFORMS DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) + ast-crispr! + ast-crispr-markdown-markly! + ast-crispr-ruby-prism! + ast-merge! + ast-merge-git! + ast-template! + bash-merge! benchmark (~> 0.5, >= 0.5.0) + binary-merge! bundler-audit (~> 0.9.3) + citrus-toml-merge! + commonmarker-merge! debug (>= 1.1) + dotenv-merge! erb (~> 6.0, >= 6.0.4) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.0) + go-merge! irb (~> 1.17) + json-merge! kettle-dev (~> 2.0, >= 2.2.25) + kettle-drift (~> 1.0, >= 1.0.5) + kettle-jem! kettle-soup-cover (~> 1.0, >= 1.1.3) kettle-test (~> 2.0, >= 2.0.9) kramdown (~> 2.5, >= 2.5.1) + kramdown-merge! kramdown-parser-gfm (~> 1.1) + markdown-merge! + markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) + parslet-toml-merge! + plain-merge! + prism-merge! + psych-merge! rake (~> 13.0) rbs (>= 3.0) + rbs-merge! rdoc (~> 6.11) reek (~> 6.5) require_bench (~> 1.0, >= 1.0.4) @@ -383,12 +680,19 @@ DEPENDENCIES rubocop-packaging (~> 0.6, >= 0.6.0) rubocop-rspec (~> 3.6) rubocop-ruby3_2 (~> 3.0.0) + ruby-merge! ruby-progressbar (~> 1.13) + rust-merge! + smorg-rb! standard (>= 1.50) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) + toml-merge! + tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) + typescript-merge! yaml-converter (~> 0.1) + yaml-merge! yard (~> 0.9, >= 0.9.44) yard-fence (~> 0.9, >= 0.9.1) yard-junk (~> 0.1, >= 0.1.0) @@ -402,12 +706,28 @@ CHECKSUMS ansi (1.6.0) sha256=ac9ea0c0ea8d32fb4e271348e609963ac78882f34b73836c2a02b3622e666658 appraisal2 (3.2.0) sha256=ccd0b767ac4060cd7af6d16747459b6990f49c39c7b4fb1f7d1146b1e97c492f ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 + ast-crispr (7.1.0) + ast-crispr-markdown-markly (7.1.0) + ast-crispr-ruby-prism (7.1.0) + ast-merge (7.1.0) + ast-merge-git (7.1.0) + ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 + bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd + binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 + citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 + commonmarker (2.9.0-aarch64-linux) sha256=e2b4aadb9a2cfa4e206582641ce3a49465549ac1ed4c289fdd63b78d8f24579c + commonmarker (2.9.0-aarch64-linux-musl) sha256=1cf4d2821f2a7e64945f1ed7c4eeced586fdb27ea7fe7337788802cf8f57cfca + commonmarker (2.9.0-arm64-darwin) sha256=1748dbfa4f5813b0d2a14bb4bbfa65a4ec293aa1c825016d60029ee0e132b046 + commonmarker (2.9.0-x86_64-darwin) sha256=0a9914ccfd2f5d2a59c7bd0dda4fe90eb084cf513b477e499008e09ec9d6edd6 + commonmarker (2.9.0-x86_64-linux) sha256=8cfe92970eef585a19ddf6613224b91cab64d6029834661bda801f877c9c7f43 + commonmarker (2.9.0-x86_64-linux-musl) sha256=293921398b839f79ceaf55010e061357e34f053822c3b003cd0be6686176335e + commonmarker-merge (7.1.0) concurrent-ruby (1.3.7) sha256=4412caec3a5ea2e5fdc52076724c071a81f2c0593d83b2ac8cbb8ca63b3151b0 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 @@ -415,6 +735,7 @@ CHECKSUMS diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 docile (1.4.1) sha256=96159be799bfa73cdb721b840e9802126e4e03dfc26863db73647204c727f21e + dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -427,19 +748,27 @@ CHECKSUMS gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f + go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 + json-merge (7.1.0) kettle-dev (2.3.7) sha256=eb370113cd030d03cbe2d33b31c99858951017e5ad21a17e9ed89dc3770028ee + kettle-drift (1.0.6) sha256=46eda08fa4411d1f3c6682a95eef1c9df4e94611b3949f49d4c7b43c0ed356a3 + kettle-jem (7.1.0) kettle-rb (0.1.4) sha256=9cef7ce4f7021666b7222292f29051e51eaf042e8a5db11f3f4dd72f74243fc1 kettle-soup-cover (1.1.3) sha256=a373827da22a7131d093afd32945e5b7d7a10a01ebfdded8fd2cb8230d69c8ad kettle-test (2.0.11) sha256=c710c90f7ab79d51f9452f0c09f5f90657e7a893f63583855c164d0b1b107ab2 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa + kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 + markdown-merge (7.1.0) + markly (0.16.0) sha256=6f70d79e385b1efc9e171f74c81628826259039fe6c778e03c3924c71dac5511 + markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-aarch64-linux-gnu) sha256=1269fb644a6de405057a53dd5c762b1209b43ca7424f839454d3dbc677c31a8f nokogiri (1.19.4-aarch64-linux-musl) sha256=35c65b9ce72b3bb03207bdbe7067915019dc18c1b9b59139684bd6690fdd01af @@ -454,15 +783,20 @@ CHECKSUMS parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 + parslet-toml-merge (7.1.0) + plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 + prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 + psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 + rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb @@ -490,9 +824,12 @@ CHECKSUMS rubocop-rspec (3.10.2) sha256=0b3e2ecc592cd10ecbf0095bb58d1e357905276e069643523cc19eb7495f65e2 rubocop-ruby3_2 (3.0.7) sha256=f53dd6d286fb05186214fc6ec116783e7f837030918e8931c05de773e98f8466 rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 + ruby-merge (7.1.0) ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 + rust-merge (7.1.0) + service_actor (3.9.4) sha256=e63b523630b9a7e62959b2a90113b08d2565b5de9c148557b281ef847c9539ce silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (0.22.0) sha256=fe2622c7834ff23b98066bb0a854284b2729a569ac659f82621fc22ef36213a5 simplecov-cobertura (3.2.0) sha256=70d702658677fcb20e5aceb6915ccf8bc62ff2ccd38b62b3ad5c9db5c0888740 @@ -501,6 +838,7 @@ CHECKSUMS simplecov-lcov (0.9.0) sha256=7a77a31e200a595ed4b0249493056efd0c920601f53d2ef135ca34ee796346cd simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_json_formatter (0.1.4) sha256=529418fbe8de1713ac2b2d612aa3daa56d316975d307244399fa4838c601b428 + smorg-rb (7.1.0) sorbet-runtime (0.6.13347) sha256=54e7221d9f4b63f58aec79f3043752a9ba7810347c6ae0d903531591cc2d5f01 standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b @@ -513,6 +851,10 @@ CHECKSUMS thor (1.5.0) sha256=e3a9e55fe857e44859ce104a84675ab6e8cd59c650a49106a05f55f136425e73 timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 + token-resolver (2.0.5) sha256=b852f924287ffb58a440856e862b056c8ad97e74b4b2526cee43e0771f40c25c + toml (0.3.0) sha256=0a91d0f76a9036e84e44f95693b12f58d358c1df3ac8e3b5271f2056ecc6e4b9 + toml-merge (7.1.0) + toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-aarch64-linux) sha256=55ffc7c87868cb45658338363d9eba51b4a8b0259aa88e4de368d2bd1d52fea4 tree_sitter_language_pack (1.13.3-arm64-darwin) sha256=bc2498db605f212a1dbd2465ed3f65190d7da786f6ed5d30fcf958121aeb4a5c @@ -520,10 +862,12 @@ CHECKSUMS tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 + typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 + yaml-merge (7.1.0) yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd diff --git a/gems/zip-merge/Rakefile b/gems/zip-merge/Rakefile index 752226eed..c56992019 100644 --- a/gems/zip-merge/Rakefile +++ b/gems/zip-merge/Rakefile @@ -130,23 +130,23 @@ end ### DUPLICATE DRIFT TASKS begin - require 'kettle/drift' + require "kettle/drift" Kettle::Drift.install_tasks rescue LoadError - desc('(stub) kettle:drift:check is unavailable') - task('kettle:drift:check') do + desc("(stub) kettle:drift:check is unavailable") + task("kettle:drift:check") do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc('(stub) kettle:drift:update is unavailable') - task('kettle:drift:update') do + desc("(stub) kettle:drift:update is unavailable") + task("kettle:drift:update") do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc('(stub) kettle:drift:force_update is unavailable') - task('kettle:drift:force_update') do + desc("(stub) kettle:drift:force_update is unavailable") + task("kettle:drift:force_update") do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc('(stub) kettle:drift is unavailable') - task('kettle:drift' => 'kettle:drift:update') + desc("(stub) kettle:drift is unavailable") + task("kettle:drift" => "kettle:drift:update") end ### TEMPLATING TASKS diff --git a/gems/zip-merge/lib/zip/merge/version.rb b/gems/zip-merge/lib/zip/merge/version.rb index b04b544a9..7f72cea08 100644 --- a/gems/zip-merge/lib/zip/merge/version.rb +++ b/gems/zip-merge/lib/zip/merge/version.rb @@ -3,7 +3,7 @@ module Zip module Merge module Version - VERSION = '7.1.0' + VERSION = "7.1.0" end VERSION = Version::VERSION # Traditional Constant Location end From 2ae22ad1f4d9e6003a7a28fdaec5ee0089af1d6f Mon Sep 17 00:00:00 2001 From: "Peter H. Boling" Date: Tue, 21 Jul 2026 13:54:47 -0600 Subject: [PATCH 135/188] =?UTF-8?q?=F0=9F=8E=A8=20Template=20bootstrap=20b?= =?UTF-8?q?y=20kettle-jem=20v7.1.0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gems/ast-template/.kettle-drift.lock | 9 - gems/ast-template/.rubocop_gradual.lock | 315 ----------- gems/ast-template/Gemfile | 70 ++- gems/ast-template/Gemfile.lock | 470 ++++------------- gems/ast-template/README.md | 4 +- gems/ast-template/Rakefile | 18 +- .../gemfiles/modular/cgi/r4/v0.5.gemfile | 1 + .../gemfiles/modular/cgi/vHEAD.gemfile | 1 + .../gemfiles/modular/coverage.gemfile | 2 +- .../gemfiles/modular/coverage_local.gemfile | 24 +- .../gemfiles/modular/documentation.gemfile | 12 +- .../modular/documentation_local.gemfile | 26 +- .../gemfiles/modular/erb/r3/v5.0.gemfile | 2 +- .../gemfiles/modular/erb/r4/v5.0.gemfile | 2 +- .../modular/json/truffleruby_22_3.gemfile | 6 + .../modular/json/truffleruby_23_0.gemfile | 6 + .../modular/json/truffleruby_23_1.gemfile | 6 + .../gemfiles/modular/optional.gemfile | 3 +- .../gemfiles/modular/runtime_heads.gemfile | 5 +- .../gemfiles/modular/style.gemfile | 23 +- .../gemfiles/modular/style_local.gemfile | 30 +- .../gemfiles/modular/templating.gemfile | 4 +- .../gemfiles/modular/templating_local.gemfile | 22 +- .../gemfiles/modular/webrick/r4/v1.9.gemfile | 1 + .../gemfiles/modular/webrick/vHEAD.gemfile | 1 + .../modular/x_std_libs/r4/libs.gemfile | 2 + .../gemfiles/modular/x_std_libs/vHEAD.gemfile | 2 + gems/ast-template/lib/ast/template/version.rb | 2 +- gems/binary-merge/.kettle-drift.lock | 9 - gems/binary-merge/.rubocop_gradual.lock | 22 +- gems/binary-merge/Gemfile | 70 ++- gems/binary-merge/Gemfile.lock | 488 ++++------------- gems/binary-merge/README.md | 4 +- gems/binary-merge/Rakefile | 18 +- .../gemfiles/modular/cgi/r4/v0.5.gemfile | 1 + .../gemfiles/modular/cgi/vHEAD.gemfile | 1 + .../gemfiles/modular/coverage.gemfile | 2 +- .../gemfiles/modular/coverage_local.gemfile | 24 +- .../gemfiles/modular/documentation.gemfile | 12 +- .../modular/documentation_local.gemfile | 26 +- .../gemfiles/modular/erb/r3/v5.0.gemfile | 2 +- .../gemfiles/modular/erb/r4/v5.0.gemfile | 2 +- .../modular/json/truffleruby_22_3.gemfile | 6 + .../modular/json/truffleruby_23_0.gemfile | 6 + .../modular/json/truffleruby_23_1.gemfile | 6 + .../gemfiles/modular/optional.gemfile | 3 +- .../gemfiles/modular/runtime_heads.gemfile | 5 +- .../gemfiles/modular/style.gemfile | 23 +- .../gemfiles/modular/style_local.gemfile | 30 +- .../gemfiles/modular/templating.gemfile | 4 +- .../gemfiles/modular/templating_local.gemfile | 22 +- .../gemfiles/modular/webrick/r4/v1.9.gemfile | 1 + .../gemfiles/modular/webrick/vHEAD.gemfile | 1 + .../modular/x_std_libs/r4/libs.gemfile | 2 + .../gemfiles/modular/x_std_libs/vHEAD.gemfile | 2 + gems/binary-merge/lib/binary/merge/version.rb | 2 +- gems/psych-merge/.kettle-drift.lock | 288 +--------- .../.structuredmerge/kettle-jem.yml | 53 ++ gems/psych-merge/Gemfile | 72 ++- gems/psych-merge/Gemfile.lock | 357 ++++++++++++- gems/psych-merge/Rakefile | 18 +- gems/psych-merge/lib/psych/merge/version.rb | 2 +- gems/typescript-merge/Gemfile.lock | 325 +++++++++++- gems/zip-merge/.kettle-drift.lock | 9 - gems/zip-merge/.rubocop_gradual.lock | 129 ----- gems/zip-merge/Gemfile.lock | 492 ++++-------------- gems/zip-merge/README.md | 4 +- gems/zip-merge/bin/yard | 2 +- .../modular/benchmark/r4/v0.5.gemfile | 2 +- .../gemfiles/modular/benchmark/vHEAD.gemfile | 2 +- .../gemfiles/modular/cgi/r4/v0.5.gemfile | 1 + .../gemfiles/modular/cgi/vHEAD.gemfile | 1 + .../gemfiles/modular/coverage.gemfile | 6 +- .../gemfiles/modular/coverage_local.gemfile | 48 +- gems/zip-merge/gemfiles/modular/debug.gemfile | 4 +- .../gemfiles/modular/documentation.gemfile | 24 +- .../modular/documentation_local.gemfile | 38 +- .../gemfiles/modular/erb/r2/v3.0.gemfile | 2 +- .../gemfiles/modular/erb/r3/v5.0.gemfile | 2 +- .../gemfiles/modular/erb/r4/v5.0.gemfile | 2 +- .../gemfiles/modular/erb/vHEAD.gemfile | 2 +- .../modular/json/truffleruby_22_3.gemfile | 6 + .../modular/json/truffleruby_23_0.gemfile | 6 + .../modular/json/truffleruby_23_1.gemfile | 6 + .../gemfiles/modular/mutex_m/r2/v0.3.gemfile | 2 +- .../gemfiles/modular/mutex_m/r3/v0.3.gemfile | 2 +- .../gemfiles/modular/mutex_m/r4/v0.3.gemfile | 2 +- .../gemfiles/modular/mutex_m/vHEAD.gemfile | 2 +- .../gemfiles/modular/optional.gemfile | 7 +- gems/zip-merge/gemfiles/modular/rspec.gemfile | 8 +- .../gemfiles/modular/runtime_heads.gemfile | 7 +- .../gemfiles/modular/stringio/r2/v3.0.gemfile | 2 +- .../gemfiles/modular/stringio/r3/v3.0.gemfile | 2 +- .../gemfiles/modular/stringio/r4/v3.0.gemfile | 2 +- .../gemfiles/modular/stringio/vHEAD.gemfile | 2 +- gems/zip-merge/gemfiles/modular/style.gemfile | 29 +- .../gemfiles/modular/style_local.gemfile | 44 +- .../gemfiles/modular/templating.gemfile | 14 +- .../gemfiles/modular/templating_local.gemfile | 48 +- .../gemfiles/modular/webrick/r4/v1.9.gemfile | 1 + .../gemfiles/modular/webrick/vHEAD.gemfile | 1 + .../gemfiles/modular/x_std_libs.gemfile | 14 +- .../modular/x_std_libs/r2/libs.gemfile | 6 +- .../modular/x_std_libs/r3/libs.gemfile | 6 +- .../modular/x_std_libs/r4/libs.gemfile | 10 +- .../gemfiles/modular/x_std_libs/vHEAD.gemfile | 10 +- 106 files changed, 1737 insertions(+), 2250 deletions(-) delete mode 100644 gems/ast-template/.rubocop_gradual.lock create mode 100644 gems/ast-template/gemfiles/modular/cgi/r4/v0.5.gemfile create mode 100644 gems/ast-template/gemfiles/modular/cgi/vHEAD.gemfile create mode 100644 gems/ast-template/gemfiles/modular/json/truffleruby_22_3.gemfile create mode 100644 gems/ast-template/gemfiles/modular/json/truffleruby_23_0.gemfile create mode 100644 gems/ast-template/gemfiles/modular/json/truffleruby_23_1.gemfile create mode 100644 gems/ast-template/gemfiles/modular/webrick/r4/v1.9.gemfile create mode 100644 gems/ast-template/gemfiles/modular/webrick/vHEAD.gemfile create mode 100644 gems/binary-merge/gemfiles/modular/cgi/r4/v0.5.gemfile create mode 100644 gems/binary-merge/gemfiles/modular/cgi/vHEAD.gemfile create mode 100644 gems/binary-merge/gemfiles/modular/json/truffleruby_22_3.gemfile create mode 100644 gems/binary-merge/gemfiles/modular/json/truffleruby_23_0.gemfile create mode 100644 gems/binary-merge/gemfiles/modular/json/truffleruby_23_1.gemfile create mode 100644 gems/binary-merge/gemfiles/modular/webrick/r4/v1.9.gemfile create mode 100644 gems/binary-merge/gemfiles/modular/webrick/vHEAD.gemfile delete mode 100644 gems/zip-merge/.rubocop_gradual.lock create mode 100644 gems/zip-merge/gemfiles/modular/cgi/r4/v0.5.gemfile create mode 100644 gems/zip-merge/gemfiles/modular/cgi/vHEAD.gemfile create mode 100644 gems/zip-merge/gemfiles/modular/json/truffleruby_22_3.gemfile create mode 100644 gems/zip-merge/gemfiles/modular/json/truffleruby_23_0.gemfile create mode 100644 gems/zip-merge/gemfiles/modular/json/truffleruby_23_1.gemfile create mode 100644 gems/zip-merge/gemfiles/modular/webrick/r4/v1.9.gemfile create mode 100644 gems/zip-merge/gemfiles/modular/webrick/vHEAD.gemfile diff --git a/gems/ast-template/.kettle-drift.lock b/gems/ast-template/.kettle-drift.lock index d28e306b0..bf85fa76f 100644 --- a/gems/ast-template/.kettle-drift.lock +++ b/gems/ast-template/.kettle-drift.lock @@ -52,14 +52,5 @@ 87 ] } - ], - "vendored_gems_env: 'VENDORED_GEMS',\nvendor_gem_dir_env: 'VENDOR_GEM_DIR',": [ - { - "file": "gemfiles/modular/templating_local.gemfile", - "lines": [ - 55, - 66 - ] - } ] } diff --git a/gems/ast-template/.rubocop_gradual.lock b/gems/ast-template/.rubocop_gradual.lock deleted file mode 100644 index 032ac1f2a..000000000 --- a/gems/ast-template/.rubocop_gradual.lock +++ /dev/null @@ -1,315 +0,0 @@ -{ - ".simplecov:3875640430": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "Rakefile:2781279821": [ - [18, 121, 17, "Layout/LineLength: Line is too long. [137/120]", 174264873], - [79, 3, 1023, "Metrics/BlockLength: Block has too many lines. [32/25]", 54868638], - [163, 121, 22, "Layout/LineLength: Line is too long. [142/120]", 1367093088], - [166, 121, 18, "Layout/LineLength: Line is too long. [138/120]", 3881946477] - ], - "ast-template.gemspec:3753841817": [ - [127, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 2821357214], - [142, 121, 50, "Layout/LineLength: Line is too long. [170/120]", 3888612416], - [143, 121, 29, "Layout/LineLength: Line is too long. [149/120]", 981994949], - [150, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 4229808912] - ], - "gemfiles/modular/benchmark/r4/v0.5.gemfile:3644720371": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/benchmark/vHEAD.gemfile:2838879269": [ - [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/erb/r2/v3.0.gemfile:1688285565": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] - ], - "gemfiles/modular/erb/r3/v5.0.gemfile:2150258305": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] - ], - "gemfiles/modular/erb/r4/v5.0.gemfile:2150258305": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] - ], - "gemfiles/modular/erb/vHEAD.gemfile:981929959": [ - [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/mutex_m/r2/v0.3.gemfile:4055275004": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/mutex_m/r3/v0.3.gemfile:4055275004": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/mutex_m/r4/v0.3.gemfile:4055275004": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/mutex_m/vHEAD.gemfile:556854763": [ - [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/rspec.gemfile:2263543889": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] - ], - "gemfiles/modular/stringio/r2/v3.0.gemfile:821604304": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/stringio/r3/v3.0.gemfile:821604304": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/stringio/r4/v3.0.gemfile:821604304": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/stringio/vHEAD.gemfile:1045839691": [ - [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/x_std_libs.gemfile:2324400122": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/x_std_libs/r2/libs.gemfile:36276542": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] - ], - "gemfiles/modular/x_std_libs/r3/libs.gemfile:4030570297": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] - ], - "gemfiles/modular/x_std_libs/r4/libs.gemfile:909736663": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] - ], - "gemfiles/modular/x_std_libs/vHEAD.gemfile:907917303": [ - [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] - ], - "lib/ast-template.rb:1768837856": [ - [1, 1, 0, "Naming/FileName: The name of this source file (`ast-template.rb`) should use snake_case.", 5381] - ], - "lib/ast/template.rb:2086842713": [ - [10, 3, 15, "Style/Documentation: Missing top-level documentation comment for `module Ast::Template`.", 1853069487], - [10, 3, 62364, "Metrics/ModuleLength: Module has too many lines. [1391/100]", 2978788318], - [31, 5, 61575, "Metrics/ClassLength: Class has too many lines. [1370/100]", 1675855509], - [32, 7, 656, "Metrics/MethodLength: Method has too many lines. [12/10]", 4176787264], - [47, 7, 1248, "Metrics/AbcSize: Assignment Branch Condition size for `readme_family_token_values` is too high. [<17, 31, 5> 35.71/17]", 2414018706], - [47, 7, 1248, "Metrics/MethodLength: Method has too many lines. [21/10]", 2414018706], - [78, 7, 915, "Metrics/MethodLength: Method has too many lines. [18/10]", 788116683], - [108, 7, 624, "Metrics/MethodLength: Method has too many lines. [14/10]", 3152255782], - [125, 7, 1499, "Metrics/AbcSize: Assignment Branch Condition size for `run_readme_family_sections_for_package_directories` is too high. [<10, 27, 6> 29.41/17]", 44972847], - [125, 7, 1499, "Metrics/MethodLength: Method has too many lines. [35/10]", 44972847], - [133, 9, 1138, "Metrics/BlockLength: Block has too many lines. [26/25]", 3835793651], - [164, 7, 540, "Metrics/MethodLength: Method has too many lines. [14/10]", 1455912513], - [198, 7, 2052, "Metrics/AbcSize: Assignment Branch Condition size for `default_family_merge_adapter_registry` is too high. [<14, 39, 10> 42.63/17]", 2278087573], - [198, 7, 2052, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `default_family_merge_adapter_registry` is too high. [11/7]", 2278087573], - [198, 7, 2052, "Metrics/MethodLength: Method has too many lines. [56/10]", 2278087573], - [198, 7, 2052, "Metrics/PerceivedComplexity: Perceived complexity for `default_family_merge_adapter_registry` is too high. [11/8]", 2278087573], - [224, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5858795], - [226, 13, 16, "Lint/SuppressedException: Do not suppress exceptions.", 1026572812], - [236, 11, 16, "Lint/SuppressedException: Do not suppress exceptions.", 1026572812], - [251, 13, 16, "Lint/SuppressedException: Do not suppress exceptions.", 1026572812], - [269, 59, 158, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [7/5]", 1840084196], - [270, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2087867783], - [283, 7, 585, "Metrics/MethodLength: Method has too many lines. [11/10]", 3906693384], - [283, 56, 172, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [7/5]", 331060096], - [284, 121, 18, "Layout/LineLength: Line is too long. [138/120]", 1674317416], - [298, 7, 591, "Metrics/MethodLength: Method has too many lines. [11/10]", 3516005727], - [298, 58, 174, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [7/5]", 1025179136], - [299, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 254853645], - [313, 7, 685, "Metrics/MethodLength: Method has too many lines. [12/10]", 3467399181], - [313, 70, 179, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [8/5]", 2059101405], - [314, 121, 25, "Layout/LineLength: Line is too long. [145/120]", 2061684677], - [329, 7, 618, "Metrics/MethodLength: Method has too many lines. [11/10]", 2401761450], - [329, 78, 201, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [8/5]", 4235690185], - [330, 121, 47, "Layout/LineLength: Line is too long. [167/120]", 1064263543], - [364, 55, 164, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [8/5]", 2487000221], - [365, 121, 10, "Layout/LineLength: Line is too long. [130/120]", 3119702098], - [378, 63, 186, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [8/5]", 2803525897], - [379, 121, 32, "Layout/LineLength: Line is too long. [152/120]", 2696213732], - [399, 7, 855, "Metrics/MethodLength: Method has too many lines. [21/10]", 1805387058], - [399, 68, 191, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [8/5]", 2632809545], - [400, 121, 37, "Layout/LineLength: Line is too long. [157/120]", 4190793949], - [424, 7, 942, "Metrics/MethodLength: Method has too many lines. [22/10]", 3830329170], - [424, 87, 210, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [8/5]", 3023644425], - [425, 121, 56, "Layout/LineLength: Line is too long. [176/120]", 517767074], - [450, 7, 1847, "Metrics/AbcSize: Assignment Branch Condition size for `report_template_directory_session_status` is too high. [<14, 49, 27> 57.67/17]", 4110228676], - [450, 7, 1847, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `report_template_directory_session_status` is too high. [27/7]", 4110228676], - [450, 7, 1847, "Metrics/MethodLength: Method has too many lines. [26/10]", 4110228676], - [450, 7, 1847, "Metrics/PerceivedComplexity: Perceived complexity for `report_template_directory_session_status` is too high. [27/8]", 4110228676], - [471, 18, 1, "Style/DoubleNegation: Avoid the use of double negation (`!!`).", 177540], - [488, 7, 639, "Metrics/MethodLength: Method has too many lines. [11/10]", 1159346913], - [503, 7, 2247, "Metrics/AbcSize: Assignment Branch Condition size for `report_template_directory_session_diagnostics` is too high. [<12, 46, 28> 55.17/17]", 42314578], - [503, 7, 2247, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `report_template_directory_session_diagnostics` is too high. [26/7]", 42314578], - [503, 7, 2247, "Metrics/MethodLength: Method has too many lines. [44/10]", 42314578], - [503, 7, 2247, "Metrics/PerceivedComplexity: Perceived complexity for `report_template_directory_session_diagnostics` is too high. [26/8]", 42314578], - [515, 23, 1380, "Metrics/BlockLength: Block has too many lines. [27/25]", 2686192500], - [543, 9, 11, "Style/MultilineBlockChain: Avoid multi-line chains of blocks.", 848344986], - [560, 7, 669, "Metrics/MethodLength: Method has too many lines. [11/10]", 948308474], - [569, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2085362375], - [575, 7, 721, "Metrics/MethodLength: Method has too many lines. [14/10]", 3970823326], - [575, 71, 194, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [8/5]", 3917828873], - [576, 121, 40, "Layout/LineLength: Line is too long. [160/120]", 1017287714], - [593, 7, 921, "Metrics/MethodLength: Method has too many lines. [18/10]", 3608196218], - [593, 90, 213, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [8/5]", 1024049097], - [593, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5861341], - [594, 121, 59, "Layout/LineLength: Line is too long. [179/120]", 2535099243], - [623, 7, 1232, "Metrics/MethodLength: Method has too many lines. [33/10]", 2772161373], - [623, 67, 190, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [8/5]", 767991305], - [624, 121, 36, "Layout/LineLength: Line is too long. [156/120]", 4114753948], - [660, 7, 1317, "Metrics/MethodLength: Method has too many lines. [26/10]", 3490333035], - [660, 86, 209, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [8/5]", 1111567049], - [661, 121, 55, "Layout/LineLength: Line is too long. [175/120]", 3056305766], - [690, 7, 1325, "Metrics/MethodLength: Method has too many lines. [26/10]", 4238651548], - [690, 88, 211, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [8/5]", 4054918473], - [691, 121, 57, "Layout/LineLength: Line is too long. [177/120]", 172214443], - [720, 7, 1370, "Metrics/MethodLength: Method has too many lines. [37/10]", 2622224263], - [720, 76, 205, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [9/5]", 3505072102], - [721, 121, 45, "Layout/LineLength: Line is too long. [165/120]", 4014499349], - [761, 7, 1142, "Metrics/AbcSize: Assignment Branch Condition size for `run_template_directory_session_with_options` is too high. [<2, 28, 13> 30.94/17]", 4142644019], - [761, 7, 1142, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `run_template_directory_session_with_options` is too high. [14/7]", 4142644019], - [761, 7, 1142, "Metrics/MethodLength: Method has too many lines. [19/10]", 4142644019], - [761, 7, 1142, "Metrics/PerceivedComplexity: Perceived complexity for `run_template_directory_session_with_options` is too high. [14/8]", 4142644019], - [783, 7, 1053, "Metrics/AbcSize: Assignment Branch Condition size for `report_template_directory_session_options_configuration` is too high. [<3, 19, 5> 19.87/17]", 4149687719], - [783, 7, 1053, "Metrics/MethodLength: Method has too many lines. [24/10]", 4149687719], - [822, 7, 1015, "Metrics/AbcSize: Assignment Branch Condition size for `report_template_directory_session_profile_configuration` is too high. [<6, 17, 6> 19/17]", 3439042821], - [822, 7, 1015, "Metrics/MethodLength: Method has too many lines. [21/10]", 3439042821], - [846, 7, 741, "Metrics/MethodLength: Method has too many lines. [13/10]", 26059598], - [862, 7, 431, "Metrics/MethodLength: Method has too many lines. [12/10]", 2701838518], - [885, 7, 645, "Metrics/MethodLength: Method has too many lines. [11/10]", 4194104448], - [900, 7, 619, "Metrics/MethodLength: Method has too many lines. [12/10]", 1636858424], - [924, 7, 645, "Metrics/MethodLength: Method has too many lines. [11/10]", 1685536251], - [939, 7, 762, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `run_template_directory_session_runner_request` is too high. [8/7]", 1296256230], - [939, 7, 762, "Metrics/MethodLength: Method has too many lines. [16/10]", 1296256230], - [967, 7, 680, "Metrics/MethodLength: Method has too many lines. [11/10]", 2612182881], - [976, 121, 7, "Layout/LineLength: Line is too long. [127/120]", 3937819337], - [982, 7, 2608, "Metrics/AbcSize: Assignment Branch Condition size for `report_template_directory_session_runner_input` is too high. [<14, 56, 37> 68.56/17]", 1118646956], - [982, 7, 2608, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `report_template_directory_session_runner_input` is too high. [36/7]", 1118646956], - [982, 7, 2608, "Metrics/MethodLength: Method has too many lines. [42/10]", 1118646956], - [982, 7, 2608, "Metrics/PerceivedComplexity: Perceived complexity for `report_template_directory_session_runner_input` is too high. [36/8]", 1118646956], - [1015, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 4185298420], - [1028, 7, 1841, "Metrics/AbcSize: Assignment Branch Condition size for `report_template_directory_session_runner_payload` is too high. [<6, 34, 26> 43.22/17]", 668498009], - [1028, 7, 1841, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `report_template_directory_session_runner_payload` is too high. [25/7]", 668498009], - [1028, 7, 1841, "Metrics/MethodLength: Method has too many lines. [29/10]", 668498009], - [1028, 7, 1841, "Metrics/PerceivedComplexity: Perceived complexity for `report_template_directory_session_runner_payload` is too high. [27/8]", 668498009], - [1052, 121, 9, "Layout/LineLength: Line is too long. [129/120]", 838260297], - [1078, 7, 680, "Metrics/MethodLength: Method has too many lines. [11/10]", 1786285601], - [1087, 121, 7, "Layout/LineLength: Line is too long. [127/120]", 3937819337], - [1093, 7, 727, "Metrics/MethodLength: Method has too many lines. [17/10]", 2883184841], - [1115, 7, 793, "Metrics/MethodLength: Method has too many lines. [21/10]", 3728759813], - [1153, 7, 2638, "Metrics/AbcSize: Assignment Branch Condition size for `report_template_directory_session_inspection` is too high. [<6, 37, 2> 37.54/17]", 2423723700], - [1153, 7, 2638, "Metrics/MethodLength: Method has too many lines. [66/10]", 2423723700], - [1233, 7, 663, "Metrics/MethodLength: Method has too many lines. [11/10]", 835919808], - [1242, 121, 3, "Layout/LineLength: Line is too long. [123/120]", 193343749], - [1248, 7, 639, "Metrics/MethodLength: Method has too many lines. [16/10]", 890869399], - [1279, 7, 1321, "Metrics/AbcSize: Assignment Branch Condition size for `run_template_directory_session_command_payload` is too high. [<1, 27, 12> 29.56/17]", 268857423], - [1279, 7, 1321, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `run_template_directory_session_command_payload` is too high. [13/7]", 268857423], - [1279, 7, 1321, "Metrics/MethodLength: Method has too many lines. [20/10]", 268857423], - [1279, 7, 1321, "Metrics/PerceivedComplexity: Perceived complexity for `run_template_directory_session_command_payload` is too high. [13/8]", 268857423], - [1295, 121, 11, "Layout/LineLength: Line is too long. [131/120]", 2272443568], - [1319, 7, 663, "Metrics/MethodLength: Method has too many lines. [11/10]", 3409839974], - [1328, 121, 3, "Layout/LineLength: Line is too long. [123/120]", 193343749], - [1342, 7, 645, "Metrics/MethodLength: Method has too many lines. [11/10]", 2481445197], - [1365, 7, 685, "Metrics/MethodLength: Method has too many lines. [11/10]", 807027808], - [1374, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 1225026887], - [1388, 7, 663, "Metrics/MethodLength: Method has too many lines. [11/10]", 1570524606], - [1397, 121, 3, "Layout/LineLength: Line is too long. [123/120]", 193343749], - [1403, 7, 589, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `report_session_request_from_runner_request` is too high. [8/7]", 1923077466], - [1403, 7, 589, "Metrics/MethodLength: Method has too many lines. [11/10]", 1923077466], - [1418, 7, 1803, "Metrics/AbcSize: Assignment Branch Condition size for `resolve_template_directory_session_options` is too high. [<3, 38, 28> 47.3/17]", 319878734], - [1418, 7, 1803, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `resolve_template_directory_session_options` is too high. [29/7]", 319878734], - [1418, 7, 1803, "Metrics/MethodLength: Method has too many lines. [22/10]", 319878734], - [1418, 7, 1803, "Metrics/PerceivedComplexity: Perceived complexity for `resolve_template_directory_session_options` is too high. [29/8]", 319878734], - [1458, 7, 1357, "Metrics/AbcSize: Assignment Branch Condition size for `replace_or_insert_markdown_heading_section` is too high. [<18, 33, 18> 41.68/17]", 812459935], - [1458, 7, 1357, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `replace_or_insert_markdown_heading_section` is too high. [12/7]", 812459935], - [1458, 7, 1357, "Metrics/MethodLength: Method has too many lines. [26/10]", 812459935], - [1458, 7, 1357, "Metrics/PerceivedComplexity: Perceived complexity for `replace_or_insert_markdown_heading_section` is too high. [12/8]", 812459935], - [1494, 7, 456, "Metrics/AbcSize: Assignment Branch Condition size for `readme_family_section_insert_index` is too high. [<5, 9, 14> 17.38/17]", 252997882], - [1494, 7, 456, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `readme_family_section_insert_index` is too high. [8/7]", 252997882], - [1494, 7, 456, "Metrics/MethodLength: Method has too many lines. [13/10]", 252997882] - ], - "spec/session_integration_spec.rb:1063469608": [ - [5, 1, 89793, "Metrics/BlockLength: Block has too many lines. [1761/25]", 3162725061], - [31, 3, 612, "Metrics/MethodLength: Method has too many lines. [16/10]", 1402311658], - [50, 3, 2970, "Metrics/BlockLength: Block has too many lines. [60/25]", 2848879838], - [118, 3, 1748, "Metrics/BlockLength: Block has too many lines. [40/25]", 3276283317], - [164, 3, 1582, "Metrics/BlockLength: Block has too many lines. [37/25]", 4190998336], - [237, 3, 2325, "Metrics/BlockLength: Block has too many lines. [51/25]", 3352569469], - [295, 3, 1789, "Metrics/BlockLength: Block has too many lines. [38/25]", 1947005133], - [339, 3, 1944, "Metrics/BlockLength: Block has too many lines. [41/25]", 3993685201], - [386, 3, 1807, "Metrics/BlockLength: Block has too many lines. [38/25]", 4257675897], - [452, 121, 11, "Layout/LineLength: Line is too long. [131/120]", 561412382], - [457, 121, 1, "Layout/LineLength: Line is too long. [121/120]", 177548], - [472, 121, 11, "Layout/LineLength: Line is too long. [131/120]", 561412382], - [477, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2088089918], - [485, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2087412612], - [490, 3, 1758, "Metrics/BlockLength: Block has too many lines. [37/25]", 1520782676], - [548, 121, 1, "Layout/LineLength: Line is too long. [121/120]", 177548], - [554, 121, 34, "Layout/LineLength: Line is too long. [154/120]", 1246048068], - [560, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5858795], - [573, 121, 34, "Layout/LineLength: Line is too long. [154/120]", 1246048068], - [578, 3, 1812, "Metrics/BlockLength: Block has too many lines. [39/25]", 1709538088], - [623, 3, 1428, "Metrics/BlockLength: Block has too many lines. [31/25]", 4067408447], - [660, 3, 1975, "Metrics/BlockLength: Block has too many lines. [49/25]", 432162268], - [716, 3, 1902, "Metrics/BlockLength: Block has too many lines. [45/25]", 2326466404], - [770, 121, 10, "Layout/LineLength: Line is too long. [130/120]", 703289421], - [797, 121, 10, "Layout/LineLength: Line is too long. [130/120]", 703289421], - [818, 3, 1462, "Metrics/BlockLength: Block has too many lines. [35/25]", 1648309772], - [860, 3, 1466, "Metrics/BlockLength: Block has too many lines. [31/25]", 3549227194], - [898, 3, 1656, "Metrics/BlockLength: Block has too many lines. [36/25]", 2643926725], - [956, 121, 1, "Layout/LineLength: Line is too long. [121/120]", 177548], - [963, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 2382627530], - [968, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5858795], - [985, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 2382627530], - [990, 121, 7, "Layout/LineLength: Line is too long. [127/120]", 4114085752], - [998, 121, 7, "Layout/LineLength: Line is too long. [127/120]", 3868965366], - [1004, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 3135429041], - [1011, 121, 19, "Layout/LineLength: Line is too long. [139/120]", 2121600243], - [1016, 121, 9, "Layout/LineLength: Line is too long. [129/120]", 3948574204], - [1034, 121, 19, "Layout/LineLength: Line is too long. [139/120]", 2121600243], - [1038, 3, 1281, "Metrics/BlockLength: Block has too many lines. [31/25]", 1507281102], - [1076, 3, 1329, "Metrics/BlockLength: Block has too many lines. [31/25]", 3185120887], - [1114, 3, 1680, "Metrics/BlockLength: Block has too many lines. [36/25]", 2250099450], - [1115, 121, 3, "Layout/LineLength: Line is too long. [123/120]", 193424063], - [1158, 121, 7, "Layout/LineLength: Line is too long. [127/120]", 4114085752], - [1166, 121, 7, "Layout/LineLength: Line is too long. [127/120]", 3868965366], - [1172, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 3135429041], - [1179, 121, 19, "Layout/LineLength: Line is too long. [139/120]", 2121600243], - [1184, 121, 9, "Layout/LineLength: Line is too long. [129/120]", 3948574204], - [1202, 121, 19, "Layout/LineLength: Line is too long. [139/120]", 2121600243], - [1206, 3, 1628, "Metrics/BlockLength: Block has too many lines. [36/25]", 4066832477], - [1249, 3, 1267, "Metrics/BlockLength: Block has too many lines. [31/25]", 488100020], - [1287, 3, 1404, "Metrics/BlockLength: Block has too many lines. [36/25]", 2415041159], - [1330, 3, 1970, "Metrics/BlockLength: Block has too many lines. [38/25]", 1463232713], - [1376, 121, 3, "Layout/LineLength: Line is too long. [123/120]", 193407726], - [1384, 121, 3, "Layout/LineLength: Line is too long. [123/120]", 193406689], - [1390, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2087900170], - [1397, 121, 15, "Layout/LineLength: Line is too long. [135/120]", 414784060], - [1402, 121, 5, "Layout/LineLength: Line is too long. [125/120]", 179046083], - [1419, 121, 15, "Layout/LineLength: Line is too long. [135/120]", 414784060], - [1540, 121, 1, "Layout/LineLength: Line is too long. [121/120]", 177548], - [1547, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 2382627530], - [1552, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5858795], - [1569, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 2382627530], - [1574, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 1621973742], - [1582, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 1297498406], - [1588, 121, 9, "Layout/LineLength: Line is too long. [129/120]", 2665434363], - [1595, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 1334260795], - [1600, 121, 3, "Layout/LineLength: Line is too long. [123/120]", 193407726], - [1608, 121, 3, "Layout/LineLength: Line is too long. [123/120]", 193406689], - [1614, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2087900170], - [1621, 121, 15, "Layout/LineLength: Line is too long. [135/120]", 414784060], - [1626, 121, 5, "Layout/LineLength: Line is too long. [125/120]", 179046083], - [1644, 121, 15, "Layout/LineLength: Line is too long. [135/120]", 414784060], - [1649, 121, 10, "Layout/LineLength: Line is too long. [130/120]", 3197516464], - [1667, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 1334260795], - [1717, 121, 3, "Layout/LineLength: Line is too long. [123/120]", 193407726], - [1725, 121, 3, "Layout/LineLength: Line is too long. [123/120]", 193406689], - [1731, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2087900170], - [1738, 121, 15, "Layout/LineLength: Line is too long. [135/120]", 414784060], - [1743, 121, 5, "Layout/LineLength: Line is too long. [125/120]", 179046083], - [1760, 121, 15, "Layout/LineLength: Line is too long. [135/120]", 414784060], - [1868, 3, 442, "Metrics/AbcSize: Assignment Branch Condition size for `options_with_resolved_fixture_paths` is too high. [<3, 18, 2> 18.36/17]", 13098503], - [1879, 3, 878, "Metrics/AbcSize: Assignment Branch Condition size for `runner_request_with_resolved_fixture_paths` is too high. [<7, 36, 6> 37.16/17]", 2279422631], - [1879, 3, 878, "Metrics/MethodLength: Method has too many lines. [20/10]", 2279422631], - [1902, 3, 449, "Metrics/AbcSize: Assignment Branch Condition size for `runner_payload_with_resolved_fixture_paths` is too high. [<3, 18, 2> 18.36/17]", 1041394699], - [1948, 3, 932, "Metrics/AbcSize: Assignment Branch Condition size for `resolve_session_inspection_expected_paths` is too high. [<4, 24, 6> 25.06/17]", 616473516], - [1948, 3, 932, "Metrics/MethodLength: Method has too many lines. [17/10]", 616473516], - [2015, 3, 679, "Metrics/AbcSize: Assignment Branch Condition size for `invocation_with_resolved_fixture_paths` is too high. [<5, 20, 4> 21/17]", 2866326769], - [2015, 3, 679, "Metrics/MethodLength: Method has too many lines. [12/10]", 2866326769] - ] -} diff --git a/gems/ast-template/Gemfile b/gems/ast-template/Gemfile index 56948e0a4..0d74ca91d 100644 --- a/gems/ast-template/Gemfile +++ b/gems/ast-template/Gemfile @@ -6,7 +6,7 @@ # kettle-jem will then preserve content between those markers across template runs. # kettle-jem:unfreeze -source "https://gem.coop" +source 'https://gem.coop' git_source(:codeberg) { |repo_name| "https://codeberg.org/#{repo_name}" } git_source(:gitlab) { |repo_name| "https://gitlab.com/#{repo_name}" } @@ -19,57 +19,53 @@ git_source(:gitlab) { |repo_name| "https://gitlab.com/#{repo_name}" } gemspec # Local workspace dependency wiring for *_local.gemfile overrides -nomono_requirements = ["~> 1.0", ">= 1.0.8"] -gem "nomono", *nomono_requirements, require: false # ruby >= 2.2 +nomono_requirements = ['~> 1.0', '>= 1.0.8'] +gem 'nomono', *nomono_requirements, require: false # ruby >= 2.2 # Direct sibling dependencies (env-switched via STRUCTUREDMERGE_DEV) direct_sibling_gems = %w[ ast-merge ] -direct_sibling_dev = ENV.fetch("STRUCTUREDMERGE_DEV", "") +direct_sibling_dev = ENV.fetch('STRUCTUREDMERGE_DEV', '') direct_sibling_local = !direct_sibling_dev.empty? && !%w[false 0 no off].include?(direct_sibling_dev.downcase) -direct_sibling_templating = ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? +direct_sibling_templating = ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero?) - direct_sibling_dev_was_set = ENV.key?("STRUCTUREDMERGE_DEV") - direct_sibling_dev_original = ENV.fetch("STRUCTUREDMERGE_DEV", nil) + (direct_sibling_local || + ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) + direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') + direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) begin nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path("Gemfile.lock", __dir__) + nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == "nomono" } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - if nomono_locked - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] - end - end - Kernel.send(:gem, "nomono", *nomono_activation_requirements) - require "nomono/bundler" - if direct_sibling_templating && !direct_sibling_local - ENV["STRUCTUREDMERGE_DEV"] = File.expand_path("..", __dir__) + Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked end + Kernel.send(:gem, 'nomono', *nomono_activation_requirements) + require 'nomono/bundler' + ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local eval_nomono_gems( gems: direct_sibling_gems, - prefix: "STRUCTUREDMERGE", - path_env: "STRUCTUREDMERGE_DEV", - root: ["src", "my", "structuredmerge"] + prefix: 'STRUCTUREDMERGE', + path_env: 'STRUCTUREDMERGE_DEV', + root: %w[src my structuredmerge] ) rescue LoadError - warn "Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies." + warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' ensure if direct_sibling_templating && !direct_sibling_local if direct_sibling_dev_was_set - ENV["STRUCTUREDMERGE_DEV"] = direct_sibling_dev_original + ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original else - ENV.delete("STRUCTUREDMERGE_DEV") + ENV.delete('STRUCTUREDMERGE_DEV') end end end @@ -116,28 +112,28 @@ if direct_sibling_gems.any? && end # Use released TSLP with the Ruby ABI platform-gem fix. -gem "tree_sitter_language_pack", "~> 1.13", ">= 1.13.3" +gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' # Templating (env-switched: STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local paths) -eval_gemfile "gemfiles/modular/templating.gemfile" if ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? +eval_gemfile 'gemfiles/modular/templating.gemfile' if ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? # Debugging -eval_gemfile "gemfiles/modular/debug.gemfile" +eval_gemfile 'gemfiles/modular/debug.gemfile' # Code Coverage (env-switched: KETTLE_DEV_DEV=true for local paths) -eval_gemfile "gemfiles/modular/coverage.gemfile" +eval_gemfile 'gemfiles/modular/coverage.gemfile' # Linting -eval_gemfile "gemfiles/modular/style.gemfile" +eval_gemfile 'gemfiles/modular/style.gemfile' # Documentation -eval_gemfile "gemfiles/modular/documentation.gemfile" +eval_gemfile 'gemfiles/modular/documentation.gemfile' # Optional -eval_gemfile "gemfiles/modular/optional.gemfile" +eval_gemfile 'gemfiles/modular/optional.gemfile' ### Std Lib Extracted Gems -eval_gemfile "gemfiles/modular/x_std_libs.gemfile" +eval_gemfile 'gemfiles/modular/x_std_libs.gemfile' # See unlocked_deps appraisal for more details on irb inclusion -gem "irb", "~> 1.17" # ruby >= 2.7 +gem 'irb', '~> 1.17' # ruby >= 2.7 diff --git a/gems/ast-template/Gemfile.lock b/gems/ast-template/Gemfile.lock index c202de31e..0889a76c2 100644 --- a/gems/ast-template/Gemfile.lock +++ b/gems/ast-template/Gemfile.lock @@ -5,38 +5,6 @@ PATH ast-merge (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly - specs: - ast-crispr-markdown-markly (7.1.0) - ast-crispr (= 7.1.0) - markly-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism - specs: - ast-crispr-ruby-prism (7.1.0) - ast-crispr (= 7.1.0) - prism-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr - specs: - ast-crispr (7.1.0) - ast-merge (= 7.1.0) - service_actor (~> 3.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git - specs: - ast-merge-git (7.1.0) - ast-merge (= 7.1.0) - json-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - PATH remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge specs: @@ -46,225 +14,6 @@ PATH tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge - specs: - bash-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge - specs: - binary-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge - specs: - citrus-toml-merge (7.1.0) - toml-merge (= 7.1.0) - toml-rb (~> 4.1) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge - specs: - commonmarker-merge (7.1.0) - commonmarker (~> 2.2) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge - specs: - dotenv-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge - specs: - go-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge - specs: - json-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem - specs: - kettle-jem (7.1.0) - addressable (>= 2.8, < 3) - ast-crispr-markdown-markly (= 7.1.0) - ast-crispr-ruby-prism (= 7.1.0) - ast-merge (= 7.1.0) - bash-merge (= 7.1.0) - citrus-toml-merge (= 7.1.0) - commonmarker-merge (= 7.1.0) - dotenv-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-dev (~> 2.3, >= 2.3.5) - kettle-rb (~> 0.1, >= 0.1.4) - kramdown-merge (= 7.1.0) - markdown-merge (= 7.1.0) - markly-merge (= 7.1.0) - prism-merge (= 7.1.0) - psych-merge (= 7.1.0) - rbs (>= 3.10) - rbs-merge (= 7.1.0) - ruby-merge (= 7.1.0) - token-resolver (~> 2.0, >= 2.0.4) - toml-merge (= 7.1.0) - toml-rb (~> 4.2) - tree_haver (= 7.1.0) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge - specs: - kramdown-merge (7.1.0) - kramdown (~> 2.5) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge - specs: - markdown-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge - specs: - markly-merge (7.1.0) - markdown-merge (= 7.1.0) - markly (~> 0.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge - specs: - parslet-toml-merge (7.1.0) - toml (~> 0.3) - toml-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge - specs: - plain-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge - specs: - prism-merge (7.1.0) - prism (~> 1.6) - ruby-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge - specs: - psych-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge - specs: - rbs-merge (7.1.0) - ast-merge (= 7.1.0) - rbs (>= 3.10) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge - specs: - ruby-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge - specs: - rust-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb - specs: - smorg-rb (7.1.0) - ast-merge (= 7.1.0) - ast-merge-git (= 7.1.0) - go-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-jem (= 7.1.0) - markly-merge (= 7.1.0) - plain-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge - specs: - toml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver - specs: - tree_haver (7.1.0) - citrus (~> 3.0) - parslet (~> 2.0) - tree_sitter_language_pack (>= 1.13.2, < 2.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge - specs: - typescript-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge - specs: - yaml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge - specs: - zip-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - GEM remote: https://gem.coop/ specs: @@ -275,6 +24,10 @@ GEM bundler (>= 1.17.3) rake (>= 10) thor (>= 0.14) + appraisal2-rubocop (1.0.0) + appraisal2 (>= 3.1.4) + rubocop (>= 1.0) + version_gem (~> 1.1, >= 1.1.14) ast (2.4.3) backports (3.25.3) benchmark (0.5.0) @@ -282,9 +35,9 @@ GEM bundler-audit (0.9.3) bundler (>= 1.2.0) thor (~> 1.0) + cgi (0.5.2) citrus (3.0.2) cmdparse (3.0.7) - commonmarker (2.9.0-x86_64-linux) concurrent-ruby (1.3.7) date (3.5.1) debug (1.11.1) @@ -293,7 +46,6 @@ GEM delegate (0.6.1) diff-lcs (1.6.2) diffy (3.4.4) - docile (1.4.1) dry-configurable (1.4.0) dry-core (~> 1.0) zeitwerk (~> 2.6) @@ -324,7 +76,7 @@ GEM dry-logic (~> 1.4) zeitwerk (~> 2.6) emoji_regex (15.0.0) - erb (6.0.5) + erb (6.0.6) gem_bench (2.0.5) bundler (>= 1.14) version_gem (~> 1.1, >= 1.1.4) @@ -348,18 +100,14 @@ GEM kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) - kettle-drift (1.0.6) - version_gem (~> 1.1, >= 1.1.14) kettle-rb (0.1.4) - kettle-soup-cover (1.1.3) - simplecov (~> 0.22) - simplecov-cobertura (~> 3.0) - simplecov-console (~> 0.9, >= 0.9.3) - simplecov-html (~> 0.13, >= 0.13.1) - simplecov-lcov (~> 0.8) + kettle-soup-cover (3.0.4) + kettle-wash (~> 0.1, >= 0.1.0) + simplecov (>= 1.0) + simplecov-cobertura (>= 4.0) + simplecov-console (~> 0.9, >= 0.9.5) simplecov-rcov (~> 0.3, >= 0.3.7) - simplecov_json_formatter (~> 0.1, >= 0.1.4) - version_gem (~> 1.1, >= 1.1.9) + simplecov_lcov_formatter (~> 0.9, >= 0.9.0) kettle-test (2.0.11) appraisal2 (~> 3.0, >= 3.0.6) backports (~> 3.0) @@ -371,6 +119,8 @@ GEM silent_stream (~> 1.0, >= 1.0.12) timecop-rspec (~> 1.0, >= 1.0.3) turbo_tests2 (~> 3.1, >= 3.1.12) + kettle-wash (0.1.1) + version_gem (~> 1.1, >= 1.1.14) kramdown (2.5.2) rexml (>= 3.4.4) kramdown-parser-gfm (1.1.0) @@ -378,7 +128,6 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) - markly (0.16.0) mutex_m (0.3.0) nokogiri (1.19.4-x86_64-linux-gnu) racc (~> 1.4) @@ -458,6 +207,14 @@ GEM rubocop-ast (1.50.0) parser (>= 3.3.7.2) prism (~> 1.7) + rubocop-capybara (2.23.0) + lint_roller (~> 1.1) + rubocop (~> 1.81) + rubocop-env (0.1.0) + rubocop + rubocop-factory_bot (2.28.0) + lint_roller (~> 1.1) + rubocop (~> 1.72, >= 1.72.1) rubocop-gradual (0.4.0) benchmark diff-lcs (>= 1.2.0, < 2.0) @@ -465,13 +222,26 @@ GEM parallel (~> 1.10) rainbow (>= 2.2.2, < 4.0) rubocop (~> 1.0) - rubocop-lts (24.1.0) - rubocop-ruby3_2 (>= 3.0.0, < 4) - standard-rubocop-lts (>= 2.0.2, < 3) - version_gem (>= 1.1.2, < 3) + rubocop-lts (24.2.2) + rubocop-ruby3_2 (~> 3.0, >= 3.0.1) + standard-rubocop-lts (~> 2.0, >= 2.0.3) + version_gem (~> 1.1, >= 1.1.13) + rubocop-lts-rspec (1.0.5) + rubocop (~> 1.84, >= 1.84.2) + rubocop-env (~> 0.1, >= 0.1.0) + rubocop-factory_bot (~> 2.28, >= 2.28.0) + rubocop-rspec (~> 3.9, >= 3.9.0) + rubocop-rspec-extra (~> 0.3, >= 0.3.0) + standard (~> 1.54, >= 1.54.0) + standard-rspec (~> 0.5, >= 0.5.0) + version_gem (~> 1.1, >= 1.1.13) rubocop-md (2.0.4) lint_roller (~> 1.1) rubocop (>= 1.72.1) + rubocop-minitest (0.40.0) + lint_roller (~> 1.1) + rubocop (>= 1.75.0, < 2.0) + rubocop-ast (>= 1.38.0, < 2.0) rubocop-on-rbs (2.0.0) lint_roller (~> 1.1) rbs (~> 4.0) @@ -491,6 +261,13 @@ GEM lint_roller (~> 1.1) regexp_parser (>= 2.0) rubocop (~> 1.86, >= 1.86.2) + rubocop-rspec-extra (0.3.0) + lint_roller (~> 1.1) + rubocop (>= 1.72.1, < 2.0) + rubocop-rspec_rails (2.32.0) + lint_roller (~> 1.1) + rubocop (~> 1.72, >= 1.72.1) + rubocop-rspec (~> 3.5) rubocop-ruby3_2 (3.0.7) rubocop-gradual (~> 0.3, >= 0.3.6) rubocop-md (~> 2.0, >= 2.0.4) @@ -505,27 +282,21 @@ GEM ruby-progressbar (1.13.0) ruby_engine (2.0.3) ruby_version (1.0.3) - service_actor (3.9.4) - zeitwerk (>= 1.0) silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) - simplecov (0.22.0) - docile (~> 1.1) - simplecov-html (~> 0.11) - simplecov_json_formatter (~> 0.1) - simplecov-cobertura (3.2.0) + simplecov (1.0.2) + simplecov-cobertura (4.0.0) rexml - simplecov (~> 0.19) + simplecov (~> 1.0) simplecov-console (0.9.5) ansi simplecov terminal-table - simplecov-html (0.13.2) - simplecov-lcov (0.9.0) simplecov-rcov (0.3.7) simplecov (>= 0.4.1) - simplecov_json_formatter (0.1.4) + simplecov_lcov_formatter (0.9.0) + simplecov (>= 0.18) sorbet-runtime (0.6.13347) standard (1.56.0) language_server-protocol (~> 3.17.0.2) @@ -539,6 +310,12 @@ GEM standard-performance (1.9.0) lint_roller (~> 1.1) rubocop-performance (~> 1.26.0) + standard-rspec (0.5.0) + lint_roller (>= 1.0) + rubocop-capybara (~> 2.23) + rubocop-factory_bot (~> 2.27) + rubocop-rspec (~> 3.9) + rubocop-rspec_rails (~> 2.31) standard-rubocop-lts (2.0.10) standard (~> 1.54, >= 1.54.0) standard-custom (~> 1.0, >= 1.0.2) @@ -559,11 +336,11 @@ GEM token-resolver (2.0.4) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.13) - toml (0.3.0) - parslet (>= 1.8.0, < 3.0.0) - toml-rb (4.2.0) - citrus (~> 3.0, > 3.0) - racc (~> 1.7) + tree_haver (7.1.0) + citrus (~> 3.0) + parslet (~> 2.0) + tree_sitter_language_pack (>= 1.13.2, < 2.0) + version_gem (~> 1.1, >= 1.1.9) tree_sitter_language_pack (1.13.3-x86_64-linux) sorbet-runtime (~> 0.5) tsort (0.2.0) @@ -575,6 +352,7 @@ GEM unicode-emoji (~> 4.1) unicode-emoji (4.2.0) version_gem (1.1.14) + webrick (1.9.2) yaml-converter (0.2.3) hexapdf (>= 1.8, < 2) kramdown (>= 2.4, < 3) @@ -607,104 +385,71 @@ PLATFORMS DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) - ast-crispr! - ast-crispr-markdown-markly! - ast-crispr-ruby-prism! + appraisal2-rubocop (~> 1.0, >= 1.0.0) ast-merge! - ast-merge-git! ast-template! - bash-merge! benchmark (~> 0.5, >= 0.5.0) - binary-merge! bundler-audit (~> 0.9.3) - citrus-toml-merge! - commonmarker-merge! + cgi (~> 0.5) debug (>= 1.1) - dotenv-merge! - erb (~> 6.0, >= 6.0.4) + erb (~> 6.0, >= 6.0.6) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.0) - go-merge! irb (~> 1.17) - json-merge! kettle-dev (~> 2.0, >= 2.2.25) - kettle-drift (~> 1.0, >= 1.0.5) - kettle-jem! - kettle-soup-cover (~> 1.0, >= 1.1.3) + kettle-soup-cover (~> 3.0, >= 3.0.3) kettle-test (~> 2.0, >= 2.0.9) - kramdown (~> 2.5, >= 2.5.1) - kramdown-merge! + kramdown (~> 2.5, >= 2.5.2) kramdown-parser-gfm (~> 1.1) - markdown-merge! - markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) - parslet-toml-merge! - plain-merge! - prism-merge! - psych-merge! rake (~> 13.0) rbs (>= 3.0) - rbs-merge! rdoc (~> 6.11) - reek (~> 6.5) + reek (~> 6.5, >= 6.5.0) require_bench (~> 1.0, >= 1.0.4) - rubocop-lts (~> 24.1.0) - rubocop-on-rbs (~> 2.0) + rubocop-gradual (~> 0.4, >= 0.4.0) + rubocop-lts (~> 24.2, >= 24.2.1) + rubocop-lts-rspec (~> 1.0, >= 1.0.5) + rubocop-minitest (~> 0.40, >= 0.40.0) + rubocop-on-rbs (~> 2.0, >= 2.0.0) rubocop-packaging (~> 0.6, >= 0.6.0) - rubocop-rspec (~> 3.6) - rubocop-ruby3_2 (~> 3.0.0) - ruby-merge! + rubocop-ruby3_2 (~> 3.0, >= 3.0.6) ruby-progressbar (~> 1.13) - rust-merge! - smorg-rb! - standard (>= 1.50) + standard (~> 1.56, >= 1.56.0) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) - toml-merge! - tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) - typescript-merge! - yaml-converter (~> 0.1) - yaml-merge! - yard (~> 0.9, >= 0.9.44) - yard-fence (~> 0.9, >= 0.9.1) + webrick (~> 1.9) + yaml-converter (~> 0.2, >= 0.2.3) + yard (~> 0.9, >= 0.9.45) + yard-fence (~> 0.9, >= 0.9.6) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) - yard-timekeeper (~> 0.1) - yard-yaml (~> 0.1, >= 0.1.2) - zip-merge! + yard-timekeeper (~> 0.2, >= 0.2.4) + yard-yaml (~> 0.2, >= 0.2.3) CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af ansi (1.6.0) sha256=ac9ea0c0ea8d32fb4e271348e609963ac78882f34b73836c2a02b3622e666658 appraisal2 (3.2.0) sha256=ccd0b767ac4060cd7af6d16747459b6990f49c39c7b4fb1f7d1146b1e97c492f + appraisal2-rubocop (1.0.0) sha256=b71410fbb014befda5340605a605b7f6f3f012739baf0acc5b4351b592c3258d ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 - ast-crispr (7.1.0) - ast-crispr-markdown-markly (7.1.0) - ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) - ast-merge-git (7.1.0) ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 - bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd - binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 + cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 - citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 - commonmarker (2.9.0-x86_64-linux) - commonmarker-merge (7.1.0) concurrent-ruby (1.3.7) sha256=4412caec3a5ea2e5fdc52076724c071a81f2c0593d83b2ac8cbb8ca63b3151b0 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 - docile (1.4.1) sha256=96159be799bfa73cdb721b840e9802126e4e03dfc26863db73647204c727f21e - dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -713,31 +458,24 @@ CHECKSUMS dry-schema (1.16.0) sha256=cd3aaeabc0f1af66ec82a29096d4c4fb92a0a58b9dae29a22b1bbceb78985727 dry-types (1.9.1) sha256=baebeecdb9f8395d6c9d227b62011279440943e3ef2468fe8ccc1ba11467f178 emoji_regex (15.0.0) sha256=a508b2c0bee561169564e0aec96085020c900520d335e5533fd8e78e59493829 - erb (6.0.5) sha256=858e63488cb796c9daba8b6e9ff4b3879c395022049be9a66a8e00980e612eac + erb (6.0.6) sha256=a9b24986700f5bf127c4f297c5403c3ca41b83b0a316c0cd09a096b56e644ae5 gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f - go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 - json-merge (7.1.0) kettle-dev (2.3.7) sha256=eb370113cd030d03cbe2d33b31c99858951017e5ad21a17e9ed89dc3770028ee - kettle-drift (1.0.6) - kettle-jem (7.1.0) kettle-rb (0.1.4) sha256=9cef7ce4f7021666b7222292f29051e51eaf042e8a5db11f3f4dd72f74243fc1 - kettle-soup-cover (1.1.3) sha256=a373827da22a7131d093afd32945e5b7d7a10a01ebfdded8fd2cb8230d69c8ad + kettle-soup-cover (3.0.4) kettle-test (2.0.11) sha256=c710c90f7ab79d51f9452f0c09f5f90657e7a893f63583855c164d0b1b107ab2 + kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa - kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 - markdown-merge (7.1.0) - markly (0.16.0) - markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-x86_64-linux-gnu) sha256=379fae440b28915e3f19d752ce2dcf8465ed2b2fbefd2a7ca0dd497bc981a06a nomono (1.0.9) @@ -747,20 +485,15 @@ CHECKSUMS parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 - parslet-toml-merge (7.1.0) - plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 - prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 - psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 - rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb @@ -778,35 +511,37 @@ CHECKSUMS rspec_junit_formatter (0.6.0) sha256=40dde674e6ae4e6cc0ff560da25497677e34fefd2338cc467a8972f602b62b15 rubocop (1.88.2) sha256=8def251c90cd955feb4daa3edc0ab56893250c4ce90ef81e6c80c03f9a939bbf rubocop-ast (1.50.0) sha256=b9ca88300da0803ee222ad20cdb30494c0a784eed06fdc35d254b06d662788db + rubocop-capybara (2.23.0) sha256=f9ea1ba3a7561ee8e88cf76fc378ce517ce5327155f305ee7b5c2500e5aee357 + rubocop-env (0.1.0) sha256=5ab9a259e71822bf514c8e900a9b68cc2f74ccc87d5493efcd03213f3068e718 + rubocop-factory_bot (2.28.0) sha256=4b17fc02124444173317e131759d195b0d762844a71a29fe8139c1105d92f0cb rubocop-gradual (0.4.0) sha256=9c7e584e6fef6c2539266a193a4572c970c22f99046fd6b0305bdde6228f96ad - rubocop-lts (24.1.0) sha256=9dcad4db2da2fe2f1f77f98c917d70e7c43eded703da14cd201d4be52a9272aa + rubocop-lts (24.2.2) sha256=be6c745e1bb61daebd6af3cc3227c60f95be9f642a080773cad7df14c5f9f174 + rubocop-lts-rspec (1.0.5) sha256=439552fd27440802cc499889e013bffa28aadc41adae5d4dfff3d984a2a809b4 rubocop-md (2.0.4) sha256=0d076b6b5e99dea2ddc928c4bd702497decb9a8400da7808091e02ebcafcfb93 + rubocop-minitest (0.40.0) sha256=353c698199115f12151144cf0b5a96f69bb9d77b660cf6536df2c4250c672a9d rubocop-on-rbs (2.0.0) sha256=ce74d1b3d5daead19f4b611623656c185821dfc9aed9c7079bb1e5d7d7c464be rubocop-packaging (0.6.0) sha256=fb92bd0fb48e6f8cdb1648d2249b0cd51c2497dcc87340132d22f01edbf558a7 rubocop-performance (1.26.1) sha256=cd19b936ff196df85829d264b522fd4f98b6c89ad271fa52744a8c11b8f71834 rubocop-rake (0.7.1) sha256=3797f2b6810c3e9df7376c26d5f44f3475eda59eb1adc38e6f62ecf027cbae4d rubocop-rspec (3.10.2) sha256=0b3e2ecc592cd10ecbf0095bb58d1e357905276e069643523cc19eb7495f65e2 + rubocop-rspec-extra (0.3.0) sha256=ee4b6484d0332a0d23c4a465eeb607e41888eb3d4ed479f850b9f5212514f787 + rubocop-rspec_rails (2.32.0) sha256=4a0d641c72f6ebb957534f539d9d0a62c47abd8ce0d0aeee1ef4701e892a9100 rubocop-ruby3_2 (3.0.7) sha256=f53dd6d286fb05186214fc6ec116783e7f837030918e8931c05de773e98f8466 rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 - ruby-merge (7.1.0) ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 - rust-merge (7.1.0) - service_actor (3.9.4) silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 - simplecov (0.22.0) sha256=fe2622c7834ff23b98066bb0a854284b2729a569ac659f82621fc22ef36213a5 - simplecov-cobertura (3.2.0) sha256=70d702658677fcb20e5aceb6915ccf8bc62ff2ccd38b62b3ad5c9db5c0888740 + simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 + simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 - simplecov-html (0.13.2) sha256=bd0b8e54e7c2d7685927e8d6286466359b6f16b18cb0df47b508e8d73c777246 - simplecov-lcov (0.9.0) sha256=7a77a31e200a595ed4b0249493056efd0c920601f53d2ef135ca34ee796346cd simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc - simplecov_json_formatter (0.1.4) sha256=529418fbe8de1713ac2b2d612aa3daa56d316975d307244399fa4838c601b428 - smorg-rb (7.1.0) + simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed sorbet-runtime (0.6.13347) sha256=54e7221d9f4b63f58aec79f3043752a9ba7810347c6ae0d903531591cc2d5f01 standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b standard-performance (1.9.0) sha256=49483d31be448292951d80e5e67cdcb576c2502103c7b40aec6f1b6e9c88e3f2 + standard-rspec (0.5.0) sha256=64d396524a65af47f5331b423d8cdd313e0267401647bb7892489ca89dad2973 standard-rubocop-lts (2.0.10) sha256=89708a505b7d8b24d2ac399a7520fcb9e764abc2ecb4289b631b5fe0e3b76617 stone_checksums (1.0.6) sha256=c775f830513d6c6ab26e31d1a5fbecd4c4e39002663d4d9f8fa96e97990b5298 stringio (3.2.0) sha256=c37cb2e58b4ffbd33fe5cd948c05934af997b36e0b6ca6fdf43afa234cf222e1 @@ -816,19 +551,15 @@ CHECKSUMS timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.4) sha256=33b926958f504525bba3ed511ab66fbcbf8ef30390815e931436b30f27ffcad0 - toml (0.3.0) - toml-merge (7.1.0) - toml-rb (4.2.0) tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 - typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 + webrick (1.9.2) sha256=beb4a15fc474defed24a3bda4ffd88a490d517c9e4e6118c3edce59e45864131 yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 - yaml-merge (7.1.0) yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd @@ -836,7 +567,6 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 - zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH diff --git a/gems/ast-template/README.md b/gems/ast-template/README.md index 5d1bbc9a4..09b851482 100644 --- a/gems/ast-template/README.md +++ b/gems/ast-template/README.md @@ -36,7 +36,7 @@ I've summarized my thoughts in [this blog post](https://dev.to/galtzo/hostile-ta | Tokens to Remember | [![Gem name][⛳️name-img]][⛳️gem-name] [![Gem namespace][⛳️namespace-img]][⛳️gem-namespace] | |-------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | Works with MRI Ruby 4 | [![Ruby current Compat][💎ruby-c-i]][🚎11-c-wf]| -| Support & Community | [![Join Me on Daily.dev's RubyFriends][✉️ruby-friends-img]][✉️ruby-friends] [![Live Chat on Discord][✉️discord-invite-img-ftb]][✉️discord-invite] [![Get help from me on Upwork][👨🏼‍🏫expsup-upwork-img]][👨🏼‍🏫expsup-upwork] [![Get help from me on Codementor][👨🏼‍🏫expsup-codementor-img]][👨🏼‍🏫expsup-codementor] | +| Support & Community | [![Join Me on Daily.dev's RubyFriends][✉️ruby-friends-img]][✉️ruby-friends] [![Get help from RubyForum][✉️ruby-forum-img]][✉️ruby-forum] [![Live Chat on Discord][✉️discord-invite-img-ftb]][✉️discord-invite] [![Get help from me on Upwork][👨🏼‍🏫expsup-upwork-img]][👨🏼‍🏫expsup-upwork] [![Get help from me on Codementor][👨🏼‍🏫expsup-codementor-img]][👨🏼‍🏫expsup-codementor] | | Source | [![Source on GitLab.com][📜src-gl-img]][📜src-gl] [![Source on CodeBerg.org][📜src-cb-img]][📜src-cb] [![Source on Github.com][📜src-gh-img]][📜src-gh] [![The best SHA: dQw4w9WgXcQ!][🧮kloc-img]][🧮kloc] | | Documentation | [![Current release on RubyDoc.info][📜docs-cr-rd-img]][🚎yard-current] [![YARD on Galtzo.com][📜docs-head-rd-img]][🚎yard-head] [![Maintainer Blog][🚂maint-blog-img]][🚂maint-blog] [![GitLab Wiki][📜gl-wiki-img]][📜gl-wiki] [![GitHub Wiki][📜gh-wiki-img]][📜gh-wiki] | | Compliance | [![License: AGPL-3.0-only OR PolyForm-Small-Business-1.0.0][📄license-img]][📄license] [![Apache license compatibility: Category X][📄license-compat-img]][📄license-compat] [![📄ilo-declaration-img]][📄ilo-declaration] [![Security Policy][🔐security-img]][🔐security] [![Contributor Covenant 2.1][🪇conduct-img]][🪇conduct] [![SemVer 2.0.0][📌semver-img]][📌semver] | @@ -175,6 +175,8 @@ If none of the available licenses suit your use case, please [contact us](mailto [✉️discord-invite-img-ftb]: https://img.shields.io/discord/1373797679469170758?style=for-the-badge&logo=discord [✉️ruby-friends-img]: https://img.shields.io/badge/daily.dev-%F0%9F%92%8E_Ruby_Friends-0A0A0A?style=for-the-badge&logo=dailydotdev&logoColor=white [✉️ruby-friends]: https://app.daily.dev/squads/rubyfriends +[✉️ruby-forum-img]: https://img.shields.io/badge/RubyForum-Help-CC342D?style=for-the-badge&logo=ruby&logoColor=white +[✉️ruby-forum]: https://www.rubyforum.org/c/help/8 [✇bundle-group-pattern]: https://gist.github.com/pboling/4564780 [⛳️gem-namespace]: https://github.com/structuredmerge/structuredmerge-ruby/tree/main/gems/ast-template [⛳️namespace-img]: https://img.shields.io/badge/namespace-Ast::Template-3C2D2D.svg?style=square&logo=ruby&logoColor=white diff --git a/gems/ast-template/Rakefile b/gems/ast-template/Rakefile index 193fad244..1da755b67 100644 --- a/gems/ast-template/Rakefile +++ b/gems/ast-template/Rakefile @@ -130,23 +130,23 @@ end ### DUPLICATE DRIFT TASKS begin - require "kettle/drift" + require 'kettle/drift' Kettle::Drift.install_tasks rescue LoadError - desc("(stub) kettle:drift:check is unavailable") - task("kettle:drift:check") do + desc('(stub) kettle:drift:check is unavailable') + task('kettle:drift:check') do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc("(stub) kettle:drift:update is unavailable") - task("kettle:drift:update") do + desc('(stub) kettle:drift:update is unavailable') + task('kettle:drift:update') do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc("(stub) kettle:drift:force_update is unavailable") - task("kettle:drift:force_update") do + desc('(stub) kettle:drift:force_update is unavailable') + task('kettle:drift:force_update') do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc("(stub) kettle:drift is unavailable") - task("kettle:drift" => "kettle:drift:update") + desc('(stub) kettle:drift is unavailable') + task('kettle:drift' => 'kettle:drift:update') end ### TEMPLATING TASKS diff --git a/gems/ast-template/gemfiles/modular/cgi/r4/v0.5.gemfile b/gems/ast-template/gemfiles/modular/cgi/r4/v0.5.gemfile new file mode 100644 index 000000000..17ad97260 --- /dev/null +++ b/gems/ast-template/gemfiles/modular/cgi/r4/v0.5.gemfile @@ -0,0 +1 @@ +gem 'cgi', '~> 0.5' diff --git a/gems/ast-template/gemfiles/modular/cgi/vHEAD.gemfile b/gems/ast-template/gemfiles/modular/cgi/vHEAD.gemfile new file mode 100644 index 000000000..650fbf033 --- /dev/null +++ b/gems/ast-template/gemfiles/modular/cgi/vHEAD.gemfile @@ -0,0 +1 @@ +gem 'cgi', '>= 0.5' diff --git a/gems/ast-template/gemfiles/modular/coverage.gemfile b/gems/ast-template/gemfiles/modular/coverage.gemfile index f96d50954..b93014b6b 100644 --- a/gems/ast-template/gemfiles/modular/coverage.gemfile +++ b/gems/ast-template/gemfiles/modular/coverage.gemfile @@ -7,7 +7,7 @@ if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? # Coverage (remote/released) platform :mri do - gem 'kettle-soup-cover', '~> 1.0', '>= 1.1.3', require: false + gem 'kettle-soup-cover', '~> 3.0', '>= 3.0.3', require: false end else eval_gemfile 'coverage_local.gemfile' diff --git a/gems/ast-template/gemfiles/modular/coverage_local.gemfile b/gems/ast-template/gemfiles/modular/coverage_local.gemfile index 1fa671613..d9cfdcb4f 100644 --- a/gems/ast-template/gemfiles/modular/coverage_local.gemfile +++ b/gems/ast-template/gemfiles/modular/coverage_local.gemfile @@ -3,13 +3,33 @@ # Local path overrides for development. # Loaded by the associated non-local gemfile when KETTLE_DEV_DEV != "false". -require 'nomono/bundler' unless defined?(Nomono) +# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. +# Bundler records that dependency during Gemfile evaluation, but it does not +# activate that exact version before the immediate `require "nomono/bundler"`. +# If multiple compatible nomono versions are installed, RubyGems may activate +# the newest installed version while Gemfile.lock pins an older compatible one; +# Bundler then aborts with "already activated nomono X, but your Gemfile +# requires nomono Y". Prefer the locked compatible version when present, then +# activate it explicitly before requiring the Bundler DSL extension used below. +nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] +nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) +if File.file?(nomono_lockfile) + nomono_locked_spec = Bundler::LockfileParser + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } + nomono_locked = nomono_locked_spec && + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked +end +Kernel.send(:gem, 'nomono', *nomono_activation_requirements) +require 'nomono/bundler' local_gems = %w[kettle-dev kettle-test kettle-soup-cover kettle-drift] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) local_gems_to_eval = local_gems - %w[ast-template] - declared_gems -# export KETTLE_DEV_DEV=/path/to/kettle-rb +# export KETTLE_DEV_DEV=/path/to/my platform :mri do eval_nomono_gems( gems: local_gems_to_eval, diff --git a/gems/ast-template/gemfiles/modular/documentation.gemfile b/gems/ast-template/gemfiles/modular/documentation.gemfile index dff5cc108..9d4535f12 100644 --- a/gems/ast-template/gemfiles/modular/documentation.gemfile +++ b/gems/ast-template/gemfiles/modular/documentation.gemfile @@ -7,17 +7,17 @@ # # Documentation -gem 'kramdown', '~> 2.5', '>= 2.5.1', require: false # Ruby >= 2.5 +gem 'kramdown', '~> 2.5', '>= 2.5.2', require: false # Ruby >= 2.5 gem 'kramdown-parser-gfm', '~> 1.1', require: false # Ruby >= 2.3 -gem 'yaml-converter', '~> 0.1', require: false # Ruby >= 3.2 -gem 'yard', '~> 0.9', '>= 0.9.44', require: false +gem 'yaml-converter', '~> 0.2', '>= 0.2.3', require: false # Ruby >= 3.2 +gem 'yard', '~> 0.9', '>= 0.9.45', require: false gem 'yard-junk', '~> 0.1', '>= 0.1.0', require: false # Ruby >= 3.1 gem 'yard-relative_markdown_links', '~> 0.6', require: false if ENV.fetch('GALTZO_FLOSS_DEV', 'false').casecmp('false').zero? - gem 'yard-fence', '~> 0.9', '>= 0.9.1', require: false # Ruby >= 3.2 - gem 'yard-timekeeper', '~> 0.1', require: false - gem 'yard-yaml', '~> 0.1', '>= 0.1.2', require: false + gem 'yard-fence', '~> 0.9', '>= 0.9.6', require: false # Ruby >= 3.2 + gem 'yard-timekeeper', '~> 0.2', '>= 0.2.4', require: false + gem 'yard-yaml', '~> 0.2', '>= 0.2.3', require: false else eval_gemfile 'documentation_local.gemfile' end diff --git a/gems/ast-template/gemfiles/modular/documentation_local.gemfile b/gems/ast-template/gemfiles/modular/documentation_local.gemfile index 4d4c2bd95..8642b1c47 100644 --- a/gems/ast-template/gemfiles/modular/documentation_local.gemfile +++ b/gems/ast-template/gemfiles/modular/documentation_local.gemfile @@ -3,13 +3,35 @@ # Local path overrides for development. # Loaded by the associated non-local gemfile when GALTZO_FLOSS_DEV != "false". -require 'nomono/bundler' unless defined?(Nomono) +# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. +# Bundler records that dependency during Gemfile evaluation, but it does not +# activate that exact version before the immediate `require "nomono/bundler"`. +# If multiple compatible nomono versions are installed, RubyGems may activate +# the newest installed version while Gemfile.lock pins an older compatible one; +# Bundler then aborts with "already activated nomono X, but your Gemfile +# requires nomono Y". Prefer the locked compatible version when present, then +# activate it explicitly before requiring the Bundler DSL extension used below. +nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] +nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) +if File.file?(nomono_lockfile) + nomono_locked_spec = Bundler::LockfileParser + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } + nomono_locked = nomono_locked_spec && + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked +end +Kernel.send(:gem, 'nomono', *nomono_activation_requirements) +require 'nomono/bundler' local_gems = %w[yard-fence yard-timekeeper yard-yaml] +declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) +local_gems_to_eval = local_gems - %w[ast-template] - declared_gems # export GALTZO_FLOSS_DEV=/path/to/galtzo-floss eval_nomono_gems( - gems: local_gems, + gems: local_gems_to_eval, prefix: 'GALTZO_FLOSS', path_env: 'GALTZO_FLOSS_DEV', vendored_gems_env: 'GALTZO_FLOSS_VENDORED_GEMS', diff --git a/gems/ast-template/gemfiles/modular/erb/r3/v5.0.gemfile b/gems/ast-template/gemfiles/modular/erb/r3/v5.0.gemfile index 0e3bf1b97..ec7ff451f 100644 --- a/gems/ast-template/gemfiles/modular/erb/r3/v5.0.gemfile +++ b/gems/ast-template/gemfiles/modular/erb/r3/v5.0.gemfile @@ -1 +1 @@ -gem 'erb', '~> 6.0', '>= 6.0.4' # ruby >= 3.2.0 +gem 'erb', '~> 6.0', '>= 6.0.6' # ruby >= 3.2.0 diff --git a/gems/ast-template/gemfiles/modular/erb/r4/v5.0.gemfile b/gems/ast-template/gemfiles/modular/erb/r4/v5.0.gemfile index 0e3bf1b97..ec7ff451f 100644 --- a/gems/ast-template/gemfiles/modular/erb/r4/v5.0.gemfile +++ b/gems/ast-template/gemfiles/modular/erb/r4/v5.0.gemfile @@ -1 +1 @@ -gem 'erb', '~> 6.0', '>= 6.0.4' # ruby >= 3.2.0 +gem 'erb', '~> 6.0', '>= 6.0.6' # ruby >= 3.2.0 diff --git a/gems/ast-template/gemfiles/modular/json/truffleruby_22_3.gemfile b/gems/ast-template/gemfiles/modular/json/truffleruby_22_3.gemfile new file mode 100644 index 000000000..9b2f8d96a --- /dev/null +++ b/gems/ast-template/gemfiles/modular/json/truffleruby_22_3.gemfile @@ -0,0 +1,6 @@ +# frozen_string_literal: true + +if RUBY_ENGINE == 'truffleruby' && RUBY_ENGINE_VERSION.start_with?('22.3') + # TruffleRuby 22.3 ships the json default gem from its emulated MRI Ruby. + gem 'json', '= 2.5.1' +end diff --git a/gems/ast-template/gemfiles/modular/json/truffleruby_23_0.gemfile b/gems/ast-template/gemfiles/modular/json/truffleruby_23_0.gemfile new file mode 100644 index 000000000..d787a5ef4 --- /dev/null +++ b/gems/ast-template/gemfiles/modular/json/truffleruby_23_0.gemfile @@ -0,0 +1,6 @@ +# frozen_string_literal: true + +if RUBY_ENGINE == 'truffleruby' && RUBY_ENGINE_VERSION.start_with?('23.0') + # TruffleRuby 23.0 ships the json default gem from its emulated MRI Ruby. + gem 'json', '= 2.6.1' +end diff --git a/gems/ast-template/gemfiles/modular/json/truffleruby_23_1.gemfile b/gems/ast-template/gemfiles/modular/json/truffleruby_23_1.gemfile new file mode 100644 index 000000000..d78486b0e --- /dev/null +++ b/gems/ast-template/gemfiles/modular/json/truffleruby_23_1.gemfile @@ -0,0 +1,6 @@ +# frozen_string_literal: true + +if RUBY_ENGINE == 'truffleruby' && RUBY_ENGINE_VERSION.start_with?('23.1') + # TruffleRuby 23.1 ships the json default gem from its emulated MRI Ruby. + gem 'json', '= 2.6.3' +end diff --git a/gems/ast-template/gemfiles/modular/optional.gemfile b/gems/ast-template/gemfiles/modular/optional.gemfile index a6e3ebc87..9ea429538 100644 --- a/gems/ast-template/gemfiles/modular/optional.gemfile +++ b/gems/ast-template/gemfiles/modular/optional.gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -# To retain during ast-template templating: +# To retain during kettle-jem templating: # kettle-jem:freeze # # ... your code # kettle-jem:unfreeze @@ -10,7 +10,6 @@ # Required for curated binstubs generated by kettle-jem install gem 'rbs', '>= 3.0', require: false # ruby >= 3.1 -gem 'stone_checksums', '~> 1.0', '>= 1.0.3', require: false # ruby >= 2.2 # Required for kettle-pre-release # URL parsing with Unicode support (falls back to URI if not available) diff --git a/gems/ast-template/gemfiles/modular/runtime_heads.gemfile b/gems/ast-template/gemfiles/modular/runtime_heads.gemfile index ee76c0095..ebf17c529 100644 --- a/gems/ast-template/gemfiles/modular/runtime_heads.gemfile +++ b/gems/ast-template/gemfiles/modular/runtime_heads.gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -# To retain during ast-template templating: +# To retain during kettle-jem templating: # kettle-jem:freeze # # ... your code # kettle-jem:unfreeze @@ -8,7 +8,4 @@ # Test against HEAD of runtime dependencies so we can proactively file bugs -# Ruby >= 2.2 -gem 'version_gem', github: 'ruby-oauth/version_gem', branch: 'main' - eval_gemfile('x_std_libs/vHEAD.gemfile') diff --git a/gems/ast-template/gemfiles/modular/style.gemfile b/gems/ast-template/gemfiles/modular/style.gemfile index 38dda7711..4dbcc02c0 100644 --- a/gems/ast-template/gemfiles/modular/style.gemfile +++ b/gems/ast-template/gemfiles/modular/style.gemfile @@ -1,27 +1,30 @@ # frozen_string_literal: true -# To retain during ast-template templating: +# To retain during kettle-jem templating: # kettle-jem:freeze # # ... your code # kettle-jem:unfreeze # -# We run rubocop on the latest version of Ruby, -# but in support of the oldest supported version of Ruby +# Style tasks run on the latest Ruby; RuboCop-LTS selects the compatibility +# rules for the configured Ruby floor independently from task dependency floors. -gem 'reek', '~> 6.5' +gem 'reek', '~> 6.5', '>= 6.5.0' platform :mri do - gem 'rubocop-on-rbs', '~> 2.0' # ruby >= 3.2.0 + gem 'appraisal2-rubocop', '~> 1.0', '>= 1.0.0', require: false + gem 'rubocop-gradual', '~> 0.4', '>= 0.4.0' + gem 'rubocop-minitest', '~> 0.40', '>= 0.40.0' + gem 'rubocop-on-rbs', '~> 2.0', '>= 2.0.0' # ruby >= 3.2.0 # gem "rubocop", "~> 1.73", ">= 1.73.2" # constrained by standard gem 'rubocop-packaging', '~> 0.6', '>= 0.6.0' - gem 'standard', '>= 1.50' + gem 'standard', '~> 1.56', '>= 1.56.0' if ENV.fetch('RUBOCOP_LTS_LOCAL', 'false').casecmp('false').zero? - gem 'rubocop-lts', '~> 24.1.0' - # "rubocop-lts-rspec" can't add here until other gems are updated. - gem 'rubocop-rspec', '~> 3.6' - gem 'rubocop-ruby3_2', '~> 3.0.0' + declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) + gem 'rubocop-lts', '~> 24.2', '>= 24.2.1' unless declared_gems.include?('rubocop-lts') + gem 'rubocop-lts-rspec', '~> 1.0', '>= 1.0.5' unless declared_gems.include?('rubocop-lts-rspec') + gem 'rubocop-ruby3_2', '~> 3.0', '>= 3.0.6' unless declared_gems.include?('rubocop-ruby3_2') else eval_gemfile('style_local.gemfile') end diff --git a/gems/ast-template/gemfiles/modular/style_local.gemfile b/gems/ast-template/gemfiles/modular/style_local.gemfile index ce75bbe21..04b7885a8 100644 --- a/gems/ast-template/gemfiles/modular/style_local.gemfile +++ b/gems/ast-template/gemfiles/modular/style_local.gemfile @@ -1,19 +1,41 @@ # frozen_string_literal: true -# We run rubocop on the latest version of Ruby, -# but in support of the oldest supported version of Ruby +# Style tasks run on the latest Ruby; RuboCop-LTS selects the compatibility +# rules for the configured Ruby floor independently from task dependency floors. # Local path overrides for development. # Loaded by the associated non-local gemfile when RUBOCOP_LTS_LOCAL != "false". -require 'nomono/bundler' unless defined?(Nomono) +# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. +# Bundler records that dependency during Gemfile evaluation, but it does not +# activate that exact version before the immediate `require "nomono/bundler"`. +# If multiple compatible nomono versions are installed, RubyGems may activate +# the newest installed version while Gemfile.lock pins an older compatible one; +# Bundler then aborts with "already activated nomono X, but your Gemfile +# requires nomono Y". Prefer the locked compatible version when present, then +# activate it explicitly before requiring the Bundler DSL extension used below. +nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] +nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) +if File.file?(nomono_lockfile) + nomono_locked_spec = Bundler::LockfileParser + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } + nomono_locked = nomono_locked_spec && + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked +end +Kernel.send(:gem, 'nomono', *nomono_activation_requirements) +require 'nomono/bundler' local_gems = %w[rubocop-lts rubocop-lts-rspec rubocop-ruby3_2 standard-rubocop-lts] +declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) +local_gems_to_eval = local_gems - %w[ast-template] - declared_gems # export VENDORED_GEMS=rubocop-lts,rubocop-lts-rspec,rubocop-ruby3_2,standard-rubocop-lts platform :mri do eval_nomono_gems( - gems: local_gems, + gems: local_gems_to_eval, prefix: 'RUBOCOP_LTS', path_env: 'RUBOCOP_LTS_LOCAL', vendored_gems_env: 'VENDORED_GEMS', diff --git a/gems/ast-template/gemfiles/modular/templating.gemfile b/gems/ast-template/gemfiles/modular/templating.gemfile index 2ddc9433f..a672de184 100644 --- a/gems/ast-template/gemfiles/modular/templating.gemfile +++ b/gems/ast-template/gemfiles/modular/templating.gemfile @@ -12,13 +12,13 @@ end if kettle_remote # Template/plugin checks for released installs. - gem 'kettle-drift', '~> 1.0', '>= 1.0.5', require: false + gem 'kettle-drift', '~> 1.0', '>= 1.0.6', require: false end # Set STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local development with path-based dependencies. # When false (default / CI), released kettle-jem brings merge gems and parser dependencies. # Local path overrides bring the same dependencies from sibling gemspecs. # -# Set KETTLE_DEV_DEV=/path/to/kettle-rb for local development with Kettle plugin gems. +# Set KETTLE_DEV_DEV=/path/to/my for local development with Kettle plugin gems. # When false (default / CI), released Kettle plugin gems are used. eval_gemfile 'templating_local.gemfile' unless structuredmerge_remote && kettle_remote diff --git a/gems/ast-template/gemfiles/modular/templating_local.gemfile b/gems/ast-template/gemfiles/modular/templating_local.gemfile index a724adfca..0b0d4c669 100644 --- a/gems/ast-template/gemfiles/modular/templating_local.gemfile +++ b/gems/ast-template/gemfiles/modular/templating_local.gemfile @@ -4,7 +4,27 @@ # Loaded by the associated non-local gemfile when STRUCTUREDMERGE_DEV or KETTLE_DEV_DEV # is not "false". -require 'nomono/bundler' unless defined?(Nomono) +# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. +# Bundler records that dependency during Gemfile evaluation, but it does not +# activate that exact version before the immediate `require "nomono/bundler"`. +# If multiple compatible nomono versions are installed, RubyGems may activate +# the newest installed version while Gemfile.lock pins an older compatible one; +# Bundler then aborts with "already activated nomono X, but your Gemfile +# requires nomono Y". Prefer the locked compatible version when present, then +# activate it explicitly before requiring the Bundler DSL extension used below. +nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] +nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) +if File.file?(nomono_lockfile) + nomono_locked_spec = Bundler::LockfileParser + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } + nomono_locked = nomono_locked_spec && + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked +end +Kernel.send(:gem, 'nomono', *nomono_activation_requirements) +require 'nomono/bundler' structuredmerge_local_gems = %w[ tree_haver diff --git a/gems/ast-template/gemfiles/modular/webrick/r4/v1.9.gemfile b/gems/ast-template/gemfiles/modular/webrick/r4/v1.9.gemfile new file mode 100644 index 000000000..b1329ba84 --- /dev/null +++ b/gems/ast-template/gemfiles/modular/webrick/r4/v1.9.gemfile @@ -0,0 +1 @@ +gem 'webrick', '~> 1.9' diff --git a/gems/ast-template/gemfiles/modular/webrick/vHEAD.gemfile b/gems/ast-template/gemfiles/modular/webrick/vHEAD.gemfile new file mode 100644 index 000000000..c7e6f81a1 --- /dev/null +++ b/gems/ast-template/gemfiles/modular/webrick/vHEAD.gemfile @@ -0,0 +1 @@ +gem 'webrick', '>= 1.9' diff --git a/gems/ast-template/gemfiles/modular/x_std_libs/r4/libs.gemfile b/gems/ast-template/gemfiles/modular/x_std_libs/r4/libs.gemfile index bd4e884df..e2f6501eb 100644 --- a/gems/ast-template/gemfiles/modular/x_std_libs/r4/libs.gemfile +++ b/gems/ast-template/gemfiles/modular/x_std_libs/r4/libs.gemfile @@ -2,3 +2,5 @@ eval_gemfile '../../erb/r4/v5.0.gemfile' eval_gemfile '../../mutex_m/r4/v0.3.gemfile' eval_gemfile '../../stringio/r4/v3.0.gemfile' eval_gemfile '../../benchmark/r4/v0.5.gemfile' +eval_gemfile '../../cgi/r4/v0.5.gemfile' +eval_gemfile '../../webrick/r4/v1.9.gemfile' diff --git a/gems/ast-template/gemfiles/modular/x_std_libs/vHEAD.gemfile b/gems/ast-template/gemfiles/modular/x_std_libs/vHEAD.gemfile index 91f383c11..ab75cccf1 100644 --- a/gems/ast-template/gemfiles/modular/x_std_libs/vHEAD.gemfile +++ b/gems/ast-template/gemfiles/modular/x_std_libs/vHEAD.gemfile @@ -2,3 +2,5 @@ eval_gemfile '../erb/vHEAD.gemfile' eval_gemfile '../mutex_m/vHEAD.gemfile' eval_gemfile '../stringio/vHEAD.gemfile' eval_gemfile '../benchmark/vHEAD.gemfile' +eval_gemfile '../cgi/vHEAD.gemfile' +eval_gemfile '../webrick/vHEAD.gemfile' diff --git a/gems/ast-template/lib/ast/template/version.rb b/gems/ast-template/lib/ast/template/version.rb index 2cf6f7536..0e1e7cf5d 100644 --- a/gems/ast-template/lib/ast/template/version.rb +++ b/gems/ast-template/lib/ast/template/version.rb @@ -3,7 +3,7 @@ module Ast module Template module Version - VERSION = "7.1.0" + VERSION = '7.1.0' end VERSION = Version::VERSION # Traditional Constant Location end diff --git a/gems/binary-merge/.kettle-drift.lock b/gems/binary-merge/.kettle-drift.lock index d28e306b0..bf85fa76f 100644 --- a/gems/binary-merge/.kettle-drift.lock +++ b/gems/binary-merge/.kettle-drift.lock @@ -52,14 +52,5 @@ 87 ] } - ], - "vendored_gems_env: 'VENDORED_GEMS',\nvendor_gem_dir_env: 'VENDOR_GEM_DIR',": [ - { - "file": "gemfiles/modular/templating_local.gemfile", - "lines": [ - 55, - 66 - ] - } ] } diff --git a/gems/binary-merge/.rubocop_gradual.lock b/gems/binary-merge/.rubocop_gradual.lock index 409104dc1..adbcacb1f 100644 --- a/gems/binary-merge/.rubocop_gradual.lock +++ b/gems/binary-merge/.rubocop_gradual.lock @@ -21,13 +21,20 @@ [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] ], + "gemfiles/modular/cgi/r4/v0.5.gemfile:367169322": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/cgi/vHEAD.gemfile:2729540777": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], "gemfiles/modular/erb/r2/v3.0.gemfile:1688285565": [ [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] ], - "gemfiles/modular/erb/r3/v5.0.gemfile:2150258305": [ + "gemfiles/modular/erb/r3/v5.0.gemfile:2394062339": [ [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] ], - "gemfiles/modular/erb/r4/v5.0.gemfile:2150258305": [ + "gemfiles/modular/erb/r4/v5.0.gemfile:2394062339": [ [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] ], "gemfiles/modular/erb/vHEAD.gemfile:981929959": [ @@ -63,6 +70,13 @@ [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] ], + "gemfiles/modular/webrick/r4/v1.9.gemfile:3092661193": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/webrick/vHEAD.gemfile:3867684682": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], "gemfiles/modular/x_std_libs.gemfile:2324400122": [ [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] ], @@ -72,10 +86,10 @@ "gemfiles/modular/x_std_libs/r3/libs.gemfile:4030570297": [ [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] ], - "gemfiles/modular/x_std_libs/r4/libs.gemfile:909736663": [ + "gemfiles/modular/x_std_libs/r4/libs.gemfile:732451732": [ [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] ], - "gemfiles/modular/x_std_libs/vHEAD.gemfile:907917303": [ + "gemfiles/modular/x_std_libs/vHEAD.gemfile:2390363993": [ [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] ], diff --git a/gems/binary-merge/Gemfile b/gems/binary-merge/Gemfile index 82cf7e471..da2fdefd5 100644 --- a/gems/binary-merge/Gemfile +++ b/gems/binary-merge/Gemfile @@ -6,7 +6,7 @@ # kettle-jem will then preserve content between those markers across template runs. # kettle-jem:unfreeze -source "https://gem.coop" +source 'https://gem.coop' git_source(:codeberg) { |repo_name| "https://codeberg.org/#{repo_name}" } git_source(:gitlab) { |repo_name| "https://gitlab.com/#{repo_name}" } @@ -19,57 +19,53 @@ git_source(:gitlab) { |repo_name| "https://gitlab.com/#{repo_name}" } gemspec # Local workspace dependency wiring for *_local.gemfile overrides -nomono_requirements = ["~> 1.0", ">= 1.0.8"] -gem "nomono", *nomono_requirements, require: false # ruby >= 2.2 +nomono_requirements = ['~> 1.0', '>= 1.0.8'] +gem 'nomono', *nomono_requirements, require: false # ruby >= 2.2 # Direct sibling dependencies (env-switched via STRUCTUREDMERGE_DEV) direct_sibling_gems = %w[ tree_haver ] -direct_sibling_dev = ENV.fetch("STRUCTUREDMERGE_DEV", "") +direct_sibling_dev = ENV.fetch('STRUCTUREDMERGE_DEV', '') direct_sibling_local = !direct_sibling_dev.empty? && !%w[false 0 no off].include?(direct_sibling_dev.downcase) -direct_sibling_templating = ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? +direct_sibling_templating = ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero?) - direct_sibling_dev_was_set = ENV.key?("STRUCTUREDMERGE_DEV") - direct_sibling_dev_original = ENV.fetch("STRUCTUREDMERGE_DEV", nil) + (direct_sibling_local || + ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) + direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') + direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) begin nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path("Gemfile.lock", __dir__) + nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == "nomono" } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - if nomono_locked - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] - end - end - Kernel.send(:gem, "nomono", *nomono_activation_requirements) - require "nomono/bundler" - if direct_sibling_templating && !direct_sibling_local - ENV["STRUCTUREDMERGE_DEV"] = File.expand_path("..", __dir__) + Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked end + Kernel.send(:gem, 'nomono', *nomono_activation_requirements) + require 'nomono/bundler' + ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local eval_nomono_gems( gems: direct_sibling_gems, - prefix: "STRUCTUREDMERGE", - path_env: "STRUCTUREDMERGE_DEV", - root: ["src", "my", "structuredmerge"] + prefix: 'STRUCTUREDMERGE', + path_env: 'STRUCTUREDMERGE_DEV', + root: %w[src my structuredmerge] ) rescue LoadError - warn "Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies." + warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' ensure if direct_sibling_templating && !direct_sibling_local if direct_sibling_dev_was_set - ENV["STRUCTUREDMERGE_DEV"] = direct_sibling_dev_original + ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original else - ENV.delete("STRUCTUREDMERGE_DEV") + ENV.delete('STRUCTUREDMERGE_DEV') end end end @@ -116,28 +112,28 @@ if direct_sibling_gems.any? && end # Use released TSLP with the Ruby ABI platform-gem fix. -gem "tree_sitter_language_pack", "~> 1.13", ">= 1.13.3" +gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' # Templating (env-switched: STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local paths) -eval_gemfile "gemfiles/modular/templating.gemfile" if ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? +eval_gemfile 'gemfiles/modular/templating.gemfile' if ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? # Debugging -eval_gemfile "gemfiles/modular/debug.gemfile" +eval_gemfile 'gemfiles/modular/debug.gemfile' # Code Coverage (env-switched: KETTLE_DEV_DEV=true for local paths) -eval_gemfile "gemfiles/modular/coverage.gemfile" +eval_gemfile 'gemfiles/modular/coverage.gemfile' # Linting -eval_gemfile "gemfiles/modular/style.gemfile" +eval_gemfile 'gemfiles/modular/style.gemfile' # Documentation -eval_gemfile "gemfiles/modular/documentation.gemfile" +eval_gemfile 'gemfiles/modular/documentation.gemfile' # Optional -eval_gemfile "gemfiles/modular/optional.gemfile" +eval_gemfile 'gemfiles/modular/optional.gemfile' ### Std Lib Extracted Gems -eval_gemfile "gemfiles/modular/x_std_libs.gemfile" +eval_gemfile 'gemfiles/modular/x_std_libs.gemfile' # See unlocked_deps appraisal for more details on irb inclusion -gem "irb", "~> 1.17" # ruby >= 2.7 +gem 'irb', '~> 1.17' # ruby >= 2.7 diff --git a/gems/binary-merge/Gemfile.lock b/gems/binary-merge/Gemfile.lock index 0d0657e16..e3427b3db 100644 --- a/gems/binary-merge/Gemfile.lock +++ b/gems/binary-merge/Gemfile.lock @@ -6,235 +6,7 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly - specs: - ast-crispr-markdown-markly (7.1.0) - ast-crispr (= 7.1.0) - markly-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism - specs: - ast-crispr-ruby-prism (7.1.0) - ast-crispr (= 7.1.0) - prism-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr - specs: - ast-crispr (7.1.0) - ast-merge (= 7.1.0) - service_actor (~> 3.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git - specs: - ast-merge-git (7.1.0) - ast-merge (= 7.1.0) - json-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge - specs: - ast-merge (7.1.0) - benchmark - token-resolver (~> 2.0, >= 2.0.4) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template - specs: - ast-template (7.1.0) - ast-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge - specs: - bash-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge - specs: - citrus-toml-merge (7.1.0) - toml-merge (= 7.1.0) - toml-rb (~> 4.1) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge - specs: - commonmarker-merge (7.1.0) - commonmarker (~> 2.2) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge - specs: - dotenv-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge - specs: - go-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge - specs: - json-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem - specs: - kettle-jem (7.1.0) - addressable (>= 2.8, < 3) - ast-crispr-markdown-markly (= 7.1.0) - ast-crispr-ruby-prism (= 7.1.0) - ast-merge (= 7.1.0) - bash-merge (= 7.1.0) - citrus-toml-merge (= 7.1.0) - commonmarker-merge (= 7.1.0) - dotenv-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-dev (~> 2.3, >= 2.3.5) - kettle-rb (~> 0.1, >= 0.1.4) - kramdown-merge (= 7.1.0) - markdown-merge (= 7.1.0) - markly-merge (= 7.1.0) - prism-merge (= 7.1.0) - psych-merge (= 7.1.0) - rbs (>= 3.10) - rbs-merge (= 7.1.0) - ruby-merge (= 7.1.0) - token-resolver (~> 2.0, >= 2.0.4) - toml-merge (= 7.1.0) - toml-rb (~> 4.2) - tree_haver (= 7.1.0) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge - specs: - kramdown-merge (7.1.0) - kramdown (~> 2.5) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge - specs: - markdown-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge - specs: - markly-merge (7.1.0) - markdown-merge (= 7.1.0) - markly (~> 0.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge - specs: - parslet-toml-merge (7.1.0) - toml (~> 0.3) - toml-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge - specs: - plain-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge - specs: - prism-merge (7.1.0) - prism (~> 1.6) - ruby-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge - specs: - psych-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge - specs: - rbs-merge (7.1.0) - ast-merge (= 7.1.0) - rbs (>= 3.10) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge - specs: - ruby-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge - specs: - rust-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb - specs: - smorg-rb (7.1.0) - ast-merge (= 7.1.0) - ast-merge-git (= 7.1.0) - go-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-jem (= 7.1.0) - markly-merge (= 7.1.0) - plain-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge - specs: - toml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/tree_haver specs: tree_haver (7.1.0) citrus (~> 3.0) @@ -242,29 +14,6 @@ PATH tree_sitter_language_pack (>= 1.13.2, < 2.0) version_gem (~> 1.1, >= 1.1.9) -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge - specs: - typescript-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge - specs: - yaml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge - specs: - zip-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - GEM remote: https://gem.coop/ specs: @@ -275,6 +24,10 @@ GEM bundler (>= 1.17.3) rake (>= 10) thor (>= 0.14) + appraisal2-rubocop (1.0.0) + appraisal2 (>= 3.1.4) + rubocop (>= 1.0) + version_gem (~> 1.1, >= 1.1.14) ast (2.4.3) backports (3.25.3) benchmark (0.5.0) @@ -282,10 +35,10 @@ GEM bundler-audit (0.9.3) bundler (>= 1.2.0) thor (~> 1.0) + cgi (0.5.2) citrus (3.0.2) cmdparse (3.0.7) - commonmarker (2.9.0-x86_64-linux) - concurrent-ruby (1.3.7) + concurrent-ruby (1.3.8) date (3.5.1) debug (1.11.1) irb (~> 1.10) @@ -293,7 +46,6 @@ GEM delegate (0.6.1) diff-lcs (1.6.2) diffy (3.4.4) - docile (1.4.1) dry-configurable (1.4.0) dry-core (~> 1.0) zeitwerk (~> 2.6) @@ -324,7 +76,7 @@ GEM dry-logic (~> 1.4) zeitwerk (~> 2.6) emoji_regex (15.0.0) - erb (6.0.5) + erb (6.0.6) gem_bench (2.0.5) bundler (>= 1.14) version_gem (~> 1.1, >= 1.1.4) @@ -343,24 +95,20 @@ GEM rdoc (>= 4.0.0) reline (>= 0.4.2) json (2.21.1) - kettle-dev (2.3.7) + kettle-dev (2.3.8) emoji_regex (>= 15.0) kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) - kettle-drift (1.0.6) - version_gem (~> 1.1, >= 1.1.14) - kettle-rb (0.1.4) - kettle-soup-cover (1.1.3) - simplecov (~> 0.22) - simplecov-cobertura (~> 3.0) - simplecov-console (~> 0.9, >= 0.9.3) - simplecov-html (~> 0.13, >= 0.13.1) - simplecov-lcov (~> 0.8) + kettle-rb (0.1.5) + kettle-soup-cover (3.0.4) + kettle-wash (~> 0.1, >= 0.1.0) + simplecov (>= 1.0) + simplecov-cobertura (>= 4.0) + simplecov-console (~> 0.9, >= 0.9.5) simplecov-rcov (~> 0.3, >= 0.3.7) - simplecov_json_formatter (~> 0.1, >= 0.1.4) - version_gem (~> 1.1, >= 1.1.9) - kettle-test (2.0.11) + simplecov_lcov_formatter (~> 0.9, >= 0.9.0) + kettle-test (2.0.12) appraisal2 (~> 3.0, >= 3.0.6) backports (~> 3.0) rspec (~> 3.0) @@ -371,6 +119,8 @@ GEM silent_stream (~> 1.0, >= 1.0.12) timecop-rspec (~> 1.0, >= 1.0.3) turbo_tests2 (~> 3.1, >= 3.1.12) + kettle-wash (0.1.1) + version_gem (~> 1.1, >= 1.1.14) kramdown (2.5.2) rexml (>= 3.4.4) kramdown-parser-gfm (1.1.0) @@ -378,7 +128,6 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) - markly (0.16.0) mutex_m (0.3.0) nokogiri (1.19.4-aarch64-linux-gnu) racc (~> 1.4) @@ -466,6 +215,14 @@ GEM rubocop-ast (1.50.0) parser (>= 3.3.7.2) prism (~> 1.7) + rubocop-capybara (2.23.0) + lint_roller (~> 1.1) + rubocop (~> 1.81) + rubocop-env (0.1.0) + rubocop + rubocop-factory_bot (2.28.0) + lint_roller (~> 1.1) + rubocop (~> 1.72, >= 1.72.1) rubocop-gradual (0.4.0) benchmark diff-lcs (>= 1.2.0, < 2.0) @@ -473,13 +230,26 @@ GEM parallel (~> 1.10) rainbow (>= 2.2.2, < 4.0) rubocop (~> 1.0) - rubocop-lts (24.1.0) - rubocop-ruby3_2 (>= 3.0.0, < 4) - standard-rubocop-lts (>= 2.0.2, < 3) - version_gem (>= 1.1.2, < 3) + rubocop-lts (24.2.2) + rubocop-ruby3_2 (~> 3.0, >= 3.0.1) + standard-rubocop-lts (~> 2.0, >= 2.0.3) + version_gem (~> 1.1, >= 1.1.13) + rubocop-lts-rspec (1.0.5) + rubocop (~> 1.84, >= 1.84.2) + rubocop-env (~> 0.1, >= 0.1.0) + rubocop-factory_bot (~> 2.28, >= 2.28.0) + rubocop-rspec (~> 3.9, >= 3.9.0) + rubocop-rspec-extra (~> 0.3, >= 0.3.0) + standard (~> 1.54, >= 1.54.0) + standard-rspec (~> 0.5, >= 0.5.0) + version_gem (~> 1.1, >= 1.1.13) rubocop-md (2.0.4) lint_roller (~> 1.1) rubocop (>= 1.72.1) + rubocop-minitest (0.40.0) + lint_roller (~> 1.1) + rubocop (>= 1.75.0, < 2.0) + rubocop-ast (>= 1.38.0, < 2.0) rubocop-on-rbs (2.0.0) lint_roller (~> 1.1) rbs (~> 4.0) @@ -499,6 +269,13 @@ GEM lint_roller (~> 1.1) regexp_parser (>= 2.0) rubocop (~> 1.86, >= 1.86.2) + rubocop-rspec-extra (0.3.0) + lint_roller (~> 1.1) + rubocop (>= 1.72.1, < 2.0) + rubocop-rspec_rails (2.32.0) + lint_roller (~> 1.1) + rubocop (~> 1.72, >= 1.72.1) + rubocop-rspec (~> 3.5) rubocop-ruby3_2 (3.0.7) rubocop-gradual (~> 0.3, >= 0.3.6) rubocop-md (~> 2.0, >= 2.0.4) @@ -513,27 +290,21 @@ GEM ruby-progressbar (1.13.0) ruby_engine (2.0.3) ruby_version (1.0.3) - service_actor (3.9.4) - zeitwerk (>= 1.0) silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) - simplecov (0.22.0) - docile (~> 1.1) - simplecov-html (~> 0.11) - simplecov_json_formatter (~> 0.1) - simplecov-cobertura (3.2.0) + simplecov (1.0.2) + simplecov-cobertura (4.0.0) rexml - simplecov (~> 0.19) + simplecov (~> 1.0) simplecov-console (0.9.5) ansi simplecov terminal-table - simplecov-html (0.13.2) - simplecov-lcov (0.9.0) simplecov-rcov (0.3.7) simplecov (>= 0.4.1) - simplecov_json_formatter (0.1.4) + simplecov_lcov_formatter (0.9.0) + simplecov (>= 0.18) sorbet-runtime (0.6.13347) standard (1.56.0) language_server-protocol (~> 3.17.0.2) @@ -547,6 +318,12 @@ GEM standard-performance (1.9.0) lint_roller (~> 1.1) rubocop-performance (~> 1.26.0) + standard-rspec (0.5.0) + lint_roller (>= 1.0) + rubocop-capybara (~> 2.23) + rubocop-factory_bot (~> 2.27) + rubocop-rspec (~> 3.9) + rubocop-rspec_rails (~> 2.31) standard-rubocop-lts (2.0.10) standard (~> 1.54, >= 1.54.0) standard-custom (~> 1.0, >= 1.0.2) @@ -564,14 +341,6 @@ GEM delegate (~> 0.1) rspec (~> 3.0) timecop (>= 0.7, < 1) - token-resolver (2.0.5) - parslet (~> 2.0) - version_gem (~> 1.1, >= 1.1.14) - toml (0.3.0) - parslet (>= 1.8.0, < 3.0.0) - toml-rb (4.2.0) - citrus (~> 3.0, > 3.0) - racc (~> 1.7) tree_sitter_language_pack (1.13.3-aarch64-linux) sorbet-runtime (~> 0.5) tree_sitter_language_pack (1.13.3-arm64-darwin) @@ -587,6 +356,7 @@ GEM unicode-emoji (~> 4.1) unicode-emoji (4.2.0) version_gem (1.1.14) + webrick (1.9.2) yaml-converter (0.2.3) hexapdf (>= 1.8, < 2) kramdown (>= 2.4, < 3) @@ -624,104 +394,70 @@ PLATFORMS DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) - ast-crispr! - ast-crispr-markdown-markly! - ast-crispr-ruby-prism! - ast-merge! - ast-merge-git! - ast-template! - bash-merge! + appraisal2-rubocop (~> 1.0, >= 1.0.0) benchmark (~> 0.5, >= 0.5.0) binary-merge! bundler-audit (~> 0.9.3) - citrus-toml-merge! - commonmarker-merge! + cgi (~> 0.5) debug (>= 1.1) - dotenv-merge! - erb (~> 6.0, >= 6.0.4) + erb (~> 6.0, >= 6.0.6) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.0) - go-merge! irb (~> 1.17) - json-merge! kettle-dev (~> 2.0, >= 2.2.25) - kettle-drift (~> 1.0, >= 1.0.5) - kettle-jem! - kettle-soup-cover (~> 1.0, >= 1.1.3) + kettle-soup-cover (~> 3.0, >= 3.0.3) kettle-test (~> 2.0, >= 2.0.9) - kramdown (~> 2.5, >= 2.5.1) - kramdown-merge! + kramdown (~> 2.5, >= 2.5.2) kramdown-parser-gfm (~> 1.1) - markdown-merge! - markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) - parslet-toml-merge! - plain-merge! - prism-merge! - psych-merge! rake (~> 13.0) rbs (>= 3.0) - rbs-merge! rdoc (~> 6.11) - reek (~> 6.5) + reek (~> 6.5, >= 6.5.0) require_bench (~> 1.0, >= 1.0.4) - rubocop-lts (~> 24.1.0) - rubocop-on-rbs (~> 2.0) + rubocop-gradual (~> 0.4, >= 0.4.0) + rubocop-lts (~> 24.2, >= 24.2.1) + rubocop-lts-rspec (~> 1.0, >= 1.0.5) + rubocop-minitest (~> 0.40, >= 0.40.0) + rubocop-on-rbs (~> 2.0, >= 2.0.0) rubocop-packaging (~> 0.6, >= 0.6.0) - rubocop-rspec (~> 3.6) - rubocop-ruby3_2 (~> 3.0.0) - ruby-merge! + rubocop-ruby3_2 (~> 3.0, >= 3.0.6) ruby-progressbar (~> 1.13) - rust-merge! - smorg-rb! - standard (>= 1.50) + standard (~> 1.56, >= 1.56.0) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) - toml-merge! tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) - typescript-merge! - yaml-converter (~> 0.1) - yaml-merge! - yard (~> 0.9, >= 0.9.44) - yard-fence (~> 0.9, >= 0.9.1) + webrick (~> 1.9) + yaml-converter (~> 0.2, >= 0.2.3) + yard (~> 0.9, >= 0.9.45) + yard-fence (~> 0.9, >= 0.9.6) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) - yard-timekeeper (~> 0.1) - yard-yaml (~> 0.1, >= 0.1.2) - zip-merge! + yard-timekeeper (~> 0.2, >= 0.2.4) + yard-yaml (~> 0.2, >= 0.2.3) CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af ansi (1.6.0) sha256=ac9ea0c0ea8d32fb4e271348e609963ac78882f34b73836c2a02b3622e666658 appraisal2 (3.2.0) sha256=ccd0b767ac4060cd7af6d16747459b6990f49c39c7b4fb1f7d1146b1e97c492f + appraisal2-rubocop (1.0.0) sha256=b71410fbb014befda5340605a605b7f6f3f012739baf0acc5b4351b592c3258d ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 - ast-crispr (7.1.0) - ast-crispr-markdown-markly (7.1.0) - ast-crispr-ruby-prism (7.1.0) - ast-merge (7.1.0) - ast-merge-git (7.1.0) - ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 - bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 + cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 - citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 - commonmarker (2.9.0-x86_64-linux) - commonmarker-merge (7.1.0) - concurrent-ruby (1.3.7) sha256=4412caec3a5ea2e5fdc52076724c071a81f2c0593d83b2ac8cbb8ca63b3151b0 + concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 - docile (1.4.1) sha256=96159be799bfa73cdb721b840e9802126e4e03dfc26863db73647204c727f21e - dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -730,31 +466,24 @@ CHECKSUMS dry-schema (1.16.0) sha256=cd3aaeabc0f1af66ec82a29096d4c4fb92a0a58b9dae29a22b1bbceb78985727 dry-types (1.9.1) sha256=baebeecdb9f8395d6c9d227b62011279440943e3ef2468fe8ccc1ba11467f178 emoji_regex (15.0.0) sha256=a508b2c0bee561169564e0aec96085020c900520d335e5533fd8e78e59493829 - erb (6.0.5) sha256=858e63488cb796c9daba8b6e9ff4b3879c395022049be9a66a8e00980e612eac + erb (6.0.6) sha256=a9b24986700f5bf127c4f297c5403c3ca41b83b0a316c0cd09a096b56e644ae5 gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f - go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 - json-merge (7.1.0) - kettle-dev (2.3.7) sha256=eb370113cd030d03cbe2d33b31c99858951017e5ad21a17e9ed89dc3770028ee - kettle-drift (1.0.6) - kettle-jem (7.1.0) - kettle-rb (0.1.4) sha256=9cef7ce4f7021666b7222292f29051e51eaf042e8a5db11f3f4dd72f74243fc1 - kettle-soup-cover (1.1.3) sha256=a373827da22a7131d093afd32945e5b7d7a10a01ebfdded8fd2cb8230d69c8ad - kettle-test (2.0.11) sha256=c710c90f7ab79d51f9452f0c09f5f90657e7a893f63583855c164d0b1b107ab2 + kettle-dev (2.3.8) sha256=9d716ff21c660a730cb4e8d41e2e2f0630a28167a354b6e2924e242102aef72c + kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f + kettle-soup-cover (3.0.4) + kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 + kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa - kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 - markdown-merge (7.1.0) - markly (0.16.0) - markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-aarch64-linux-gnu) sha256=1269fb644a6de405057a53dd5c762b1209b43ca7424f839454d3dbc677c31a8f nokogiri (1.19.4-aarch64-linux-musl) sha256=35c65b9ce72b3bb03207bdbe7067915019dc18c1b9b59139684bd6690fdd01af @@ -768,20 +497,15 @@ CHECKSUMS parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 - parslet-toml-merge (7.1.0) - plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 - prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 - psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 - rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb @@ -799,35 +523,37 @@ CHECKSUMS rspec_junit_formatter (0.6.0) sha256=40dde674e6ae4e6cc0ff560da25497677e34fefd2338cc467a8972f602b62b15 rubocop (1.88.2) sha256=8def251c90cd955feb4daa3edc0ab56893250c4ce90ef81e6c80c03f9a939bbf rubocop-ast (1.50.0) sha256=b9ca88300da0803ee222ad20cdb30494c0a784eed06fdc35d254b06d662788db + rubocop-capybara (2.23.0) sha256=f9ea1ba3a7561ee8e88cf76fc378ce517ce5327155f305ee7b5c2500e5aee357 + rubocop-env (0.1.0) sha256=5ab9a259e71822bf514c8e900a9b68cc2f74ccc87d5493efcd03213f3068e718 + rubocop-factory_bot (2.28.0) sha256=4b17fc02124444173317e131759d195b0d762844a71a29fe8139c1105d92f0cb rubocop-gradual (0.4.0) sha256=9c7e584e6fef6c2539266a193a4572c970c22f99046fd6b0305bdde6228f96ad - rubocop-lts (24.1.0) sha256=9dcad4db2da2fe2f1f77f98c917d70e7c43eded703da14cd201d4be52a9272aa + rubocop-lts (24.2.2) sha256=be6c745e1bb61daebd6af3cc3227c60f95be9f642a080773cad7df14c5f9f174 + rubocop-lts-rspec (1.0.5) sha256=439552fd27440802cc499889e013bffa28aadc41adae5d4dfff3d984a2a809b4 rubocop-md (2.0.4) sha256=0d076b6b5e99dea2ddc928c4bd702497decb9a8400da7808091e02ebcafcfb93 + rubocop-minitest (0.40.0) sha256=353c698199115f12151144cf0b5a96f69bb9d77b660cf6536df2c4250c672a9d rubocop-on-rbs (2.0.0) sha256=ce74d1b3d5daead19f4b611623656c185821dfc9aed9c7079bb1e5d7d7c464be rubocop-packaging (0.6.0) sha256=fb92bd0fb48e6f8cdb1648d2249b0cd51c2497dcc87340132d22f01edbf558a7 rubocop-performance (1.26.1) sha256=cd19b936ff196df85829d264b522fd4f98b6c89ad271fa52744a8c11b8f71834 rubocop-rake (0.7.1) sha256=3797f2b6810c3e9df7376c26d5f44f3475eda59eb1adc38e6f62ecf027cbae4d rubocop-rspec (3.10.2) sha256=0b3e2ecc592cd10ecbf0095bb58d1e357905276e069643523cc19eb7495f65e2 + rubocop-rspec-extra (0.3.0) sha256=ee4b6484d0332a0d23c4a465eeb607e41888eb3d4ed479f850b9f5212514f787 + rubocop-rspec_rails (2.32.0) sha256=4a0d641c72f6ebb957534f539d9d0a62c47abd8ce0d0aeee1ef4701e892a9100 rubocop-ruby3_2 (3.0.7) sha256=f53dd6d286fb05186214fc6ec116783e7f837030918e8931c05de773e98f8466 rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 - ruby-merge (7.1.0) ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 - rust-merge (7.1.0) - service_actor (3.9.4) silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 - simplecov (0.22.0) sha256=fe2622c7834ff23b98066bb0a854284b2729a569ac659f82621fc22ef36213a5 - simplecov-cobertura (3.2.0) sha256=70d702658677fcb20e5aceb6915ccf8bc62ff2ccd38b62b3ad5c9db5c0888740 + simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 + simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 - simplecov-html (0.13.2) sha256=bd0b8e54e7c2d7685927e8d6286466359b6f16b18cb0df47b508e8d73c777246 - simplecov-lcov (0.9.0) sha256=7a77a31e200a595ed4b0249493056efd0c920601f53d2ef135ca34ee796346cd simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc - simplecov_json_formatter (0.1.4) sha256=529418fbe8de1713ac2b2d612aa3daa56d316975d307244399fa4838c601b428 - smorg-rb (7.1.0) + simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed sorbet-runtime (0.6.13347) sha256=54e7221d9f4b63f58aec79f3043752a9ba7810347c6ae0d903531591cc2d5f01 standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b standard-performance (1.9.0) sha256=49483d31be448292951d80e5e67cdcb576c2502103c7b40aec6f1b6e9c88e3f2 + standard-rspec (0.5.0) sha256=64d396524a65af47f5331b423d8cdd313e0267401647bb7892489ca89dad2973 standard-rubocop-lts (2.0.10) sha256=89708a505b7d8b24d2ac399a7520fcb9e764abc2ecb4289b631b5fe0e3b76617 stone_checksums (1.0.6) sha256=c775f830513d6c6ab26e31d1a5fbecd4c4e39002663d4d9f8fa96e97990b5298 stringio (3.2.0) sha256=c37cb2e58b4ffbd33fe5cd948c05934af997b36e0b6ca6fdf43afa234cf222e1 @@ -836,22 +562,17 @@ CHECKSUMS thor (1.5.0) sha256=e3a9e55fe857e44859ce104a84675ab6e8cd59c650a49106a05f55f136425e73 timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 - token-resolver (2.0.5) - toml (0.3.0) - toml-merge (7.1.0) - toml-rb (4.2.0) tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-aarch64-linux) sha256=55ffc7c87868cb45658338363d9eba51b4a8b0259aa88e4de368d2bd1d52fea4 tree_sitter_language_pack (1.13.3-arm64-darwin) sha256=bc2498db605f212a1dbd2465ed3f65190d7da786f6ed5d30fcf958121aeb4a5c tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 - typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 + webrick (1.9.2) sha256=beb4a15fc474defed24a3bda4ffd88a490d517c9e4e6118c3edce59e45864131 yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 - yaml-merge (7.1.0) yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd @@ -859,7 +580,6 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 - zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH diff --git a/gems/binary-merge/README.md b/gems/binary-merge/README.md index 40951dee9..ae58eccfb 100644 --- a/gems/binary-merge/README.md +++ b/gems/binary-merge/README.md @@ -35,7 +35,7 @@ I've summarized my thoughts in [this blog post](https://dev.to/galtzo/hostile-ta | Tokens to Remember | [![Gem name][⛳️name-img]][⛳️gem-name] [![Gem namespace][⛳️namespace-img]][⛳️gem-namespace] | |-------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | Works with MRI Ruby 4 | [![Ruby current Compat][💎ruby-c-i]][🚎11-c-wf]| -| Support & Community | [![Join Me on Daily.dev's RubyFriends][✉️ruby-friends-img]][✉️ruby-friends] [![Live Chat on Discord][✉️discord-invite-img-ftb]][✉️discord-invite] [![Get help from me on Upwork][👨🏼‍🏫expsup-upwork-img]][👨🏼‍🏫expsup-upwork] [![Get help from me on Codementor][👨🏼‍🏫expsup-codementor-img]][👨🏼‍🏫expsup-codementor] | +| Support & Community | [![Join Me on Daily.dev's RubyFriends][✉️ruby-friends-img]][✉️ruby-friends] [![Get help from RubyForum][✉️ruby-forum-img]][✉️ruby-forum] [![Live Chat on Discord][✉️discord-invite-img-ftb]][✉️discord-invite] [![Get help from me on Upwork][👨🏼‍🏫expsup-upwork-img]][👨🏼‍🏫expsup-upwork] [![Get help from me on Codementor][👨🏼‍🏫expsup-codementor-img]][👨🏼‍🏫expsup-codementor] | | Source | [![Source on GitLab.com][📜src-gl-img]][📜src-gl] [![Source on CodeBerg.org][📜src-cb-img]][📜src-cb] [![Source on Github.com][📜src-gh-img]][📜src-gh] [![The best SHA: dQw4w9WgXcQ!][🧮kloc-img]][🧮kloc] | | Documentation | [![Current release on RubyDoc.info][📜docs-cr-rd-img]][🚎yard-current] [![YARD on Galtzo.com][📜docs-head-rd-img]][🚎yard-head] [![Maintainer Blog][🚂maint-blog-img]][🚂maint-blog] [![GitLab Wiki][📜gl-wiki-img]][📜gl-wiki] [![GitHub Wiki][📜gh-wiki-img]][📜gh-wiki] | | Compliance | [![License: AGPL-3.0-only OR PolyForm-Small-Business-1.0.0][📄license-img]][📄license] [![Apache license compatibility: Category X][📄license-compat-img]][📄license-compat] [![📄ilo-declaration-img]][📄ilo-declaration] [![Security Policy][🔐security-img]][🔐security] [![Contributor Covenant 2.1][🪇conduct-img]][🪇conduct] [![SemVer 2.0.0][📌semver-img]][📌semver] | @@ -174,6 +174,8 @@ If none of the available licenses suit your use case, please [contact us](mailto [✉️discord-invite-img-ftb]: https://img.shields.io/discord/1373797679469170758?style=for-the-badge&logo=discord [✉️ruby-friends-img]: https://img.shields.io/badge/daily.dev-%F0%9F%92%8E_Ruby_Friends-0A0A0A?style=for-the-badge&logo=dailydotdev&logoColor=white [✉️ruby-friends]: https://app.daily.dev/squads/rubyfriends +[✉️ruby-forum-img]: https://img.shields.io/badge/RubyForum-Help-CC342D?style=for-the-badge&logo=ruby&logoColor=white +[✉️ruby-forum]: https://www.rubyforum.org/c/help/8 [✇bundle-group-pattern]: https://gist.github.com/pboling/4564780 [⛳️gem-namespace]: https://github.com/structuredmerge/structuredmerge-ruby/tree/main/gems/binary-merge [⛳️namespace-img]: https://img.shields.io/badge/namespace-Binary::Merge-3C2D2D.svg?style=square&logo=ruby&logoColor=white diff --git a/gems/binary-merge/Rakefile b/gems/binary-merge/Rakefile index ea4ce831d..b29d3a04b 100644 --- a/gems/binary-merge/Rakefile +++ b/gems/binary-merge/Rakefile @@ -130,23 +130,23 @@ end ### DUPLICATE DRIFT TASKS begin - require "kettle/drift" + require 'kettle/drift' Kettle::Drift.install_tasks rescue LoadError - desc("(stub) kettle:drift:check is unavailable") - task("kettle:drift:check") do + desc('(stub) kettle:drift:check is unavailable') + task('kettle:drift:check') do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc("(stub) kettle:drift:update is unavailable") - task("kettle:drift:update") do + desc('(stub) kettle:drift:update is unavailable') + task('kettle:drift:update') do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc("(stub) kettle:drift:force_update is unavailable") - task("kettle:drift:force_update") do + desc('(stub) kettle:drift:force_update is unavailable') + task('kettle:drift:force_update') do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc("(stub) kettle:drift is unavailable") - task("kettle:drift" => "kettle:drift:update") + desc('(stub) kettle:drift is unavailable') + task('kettle:drift' => 'kettle:drift:update') end ### TEMPLATING TASKS diff --git a/gems/binary-merge/gemfiles/modular/cgi/r4/v0.5.gemfile b/gems/binary-merge/gemfiles/modular/cgi/r4/v0.5.gemfile new file mode 100644 index 000000000..17ad97260 --- /dev/null +++ b/gems/binary-merge/gemfiles/modular/cgi/r4/v0.5.gemfile @@ -0,0 +1 @@ +gem 'cgi', '~> 0.5' diff --git a/gems/binary-merge/gemfiles/modular/cgi/vHEAD.gemfile b/gems/binary-merge/gemfiles/modular/cgi/vHEAD.gemfile new file mode 100644 index 000000000..650fbf033 --- /dev/null +++ b/gems/binary-merge/gemfiles/modular/cgi/vHEAD.gemfile @@ -0,0 +1 @@ +gem 'cgi', '>= 0.5' diff --git a/gems/binary-merge/gemfiles/modular/coverage.gemfile b/gems/binary-merge/gemfiles/modular/coverage.gemfile index f96d50954..b93014b6b 100644 --- a/gems/binary-merge/gemfiles/modular/coverage.gemfile +++ b/gems/binary-merge/gemfiles/modular/coverage.gemfile @@ -7,7 +7,7 @@ if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? # Coverage (remote/released) platform :mri do - gem 'kettle-soup-cover', '~> 1.0', '>= 1.1.3', require: false + gem 'kettle-soup-cover', '~> 3.0', '>= 3.0.3', require: false end else eval_gemfile 'coverage_local.gemfile' diff --git a/gems/binary-merge/gemfiles/modular/coverage_local.gemfile b/gems/binary-merge/gemfiles/modular/coverage_local.gemfile index b90265da9..c8874fd0f 100644 --- a/gems/binary-merge/gemfiles/modular/coverage_local.gemfile +++ b/gems/binary-merge/gemfiles/modular/coverage_local.gemfile @@ -3,13 +3,33 @@ # Local path overrides for development. # Loaded by the associated non-local gemfile when KETTLE_DEV_DEV != "false". -require 'nomono/bundler' unless defined?(Nomono) +# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. +# Bundler records that dependency during Gemfile evaluation, but it does not +# activate that exact version before the immediate `require "nomono/bundler"`. +# If multiple compatible nomono versions are installed, RubyGems may activate +# the newest installed version while Gemfile.lock pins an older compatible one; +# Bundler then aborts with "already activated nomono X, but your Gemfile +# requires nomono Y". Prefer the locked compatible version when present, then +# activate it explicitly before requiring the Bundler DSL extension used below. +nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] +nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) +if File.file?(nomono_lockfile) + nomono_locked_spec = Bundler::LockfileParser + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } + nomono_locked = nomono_locked_spec && + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked +end +Kernel.send(:gem, 'nomono', *nomono_activation_requirements) +require 'nomono/bundler' local_gems = %w[kettle-dev kettle-test kettle-soup-cover kettle-drift] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) local_gems_to_eval = local_gems - %w[binary-merge] - declared_gems -# export KETTLE_DEV_DEV=/path/to/kettle-rb +# export KETTLE_DEV_DEV=/path/to/my platform :mri do eval_nomono_gems( gems: local_gems_to_eval, diff --git a/gems/binary-merge/gemfiles/modular/documentation.gemfile b/gems/binary-merge/gemfiles/modular/documentation.gemfile index dff5cc108..9d4535f12 100644 --- a/gems/binary-merge/gemfiles/modular/documentation.gemfile +++ b/gems/binary-merge/gemfiles/modular/documentation.gemfile @@ -7,17 +7,17 @@ # # Documentation -gem 'kramdown', '~> 2.5', '>= 2.5.1', require: false # Ruby >= 2.5 +gem 'kramdown', '~> 2.5', '>= 2.5.2', require: false # Ruby >= 2.5 gem 'kramdown-parser-gfm', '~> 1.1', require: false # Ruby >= 2.3 -gem 'yaml-converter', '~> 0.1', require: false # Ruby >= 3.2 -gem 'yard', '~> 0.9', '>= 0.9.44', require: false +gem 'yaml-converter', '~> 0.2', '>= 0.2.3', require: false # Ruby >= 3.2 +gem 'yard', '~> 0.9', '>= 0.9.45', require: false gem 'yard-junk', '~> 0.1', '>= 0.1.0', require: false # Ruby >= 3.1 gem 'yard-relative_markdown_links', '~> 0.6', require: false if ENV.fetch('GALTZO_FLOSS_DEV', 'false').casecmp('false').zero? - gem 'yard-fence', '~> 0.9', '>= 0.9.1', require: false # Ruby >= 3.2 - gem 'yard-timekeeper', '~> 0.1', require: false - gem 'yard-yaml', '~> 0.1', '>= 0.1.2', require: false + gem 'yard-fence', '~> 0.9', '>= 0.9.6', require: false # Ruby >= 3.2 + gem 'yard-timekeeper', '~> 0.2', '>= 0.2.4', require: false + gem 'yard-yaml', '~> 0.2', '>= 0.2.3', require: false else eval_gemfile 'documentation_local.gemfile' end diff --git a/gems/binary-merge/gemfiles/modular/documentation_local.gemfile b/gems/binary-merge/gemfiles/modular/documentation_local.gemfile index 4d4c2bd95..3ee4ecd47 100644 --- a/gems/binary-merge/gemfiles/modular/documentation_local.gemfile +++ b/gems/binary-merge/gemfiles/modular/documentation_local.gemfile @@ -3,13 +3,35 @@ # Local path overrides for development. # Loaded by the associated non-local gemfile when GALTZO_FLOSS_DEV != "false". -require 'nomono/bundler' unless defined?(Nomono) +# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. +# Bundler records that dependency during Gemfile evaluation, but it does not +# activate that exact version before the immediate `require "nomono/bundler"`. +# If multiple compatible nomono versions are installed, RubyGems may activate +# the newest installed version while Gemfile.lock pins an older compatible one; +# Bundler then aborts with "already activated nomono X, but your Gemfile +# requires nomono Y". Prefer the locked compatible version when present, then +# activate it explicitly before requiring the Bundler DSL extension used below. +nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] +nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) +if File.file?(nomono_lockfile) + nomono_locked_spec = Bundler::LockfileParser + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } + nomono_locked = nomono_locked_spec && + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked +end +Kernel.send(:gem, 'nomono', *nomono_activation_requirements) +require 'nomono/bundler' local_gems = %w[yard-fence yard-timekeeper yard-yaml] +declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) +local_gems_to_eval = local_gems - %w[binary-merge] - declared_gems # export GALTZO_FLOSS_DEV=/path/to/galtzo-floss eval_nomono_gems( - gems: local_gems, + gems: local_gems_to_eval, prefix: 'GALTZO_FLOSS', path_env: 'GALTZO_FLOSS_DEV', vendored_gems_env: 'GALTZO_FLOSS_VENDORED_GEMS', diff --git a/gems/binary-merge/gemfiles/modular/erb/r3/v5.0.gemfile b/gems/binary-merge/gemfiles/modular/erb/r3/v5.0.gemfile index 0e3bf1b97..ec7ff451f 100644 --- a/gems/binary-merge/gemfiles/modular/erb/r3/v5.0.gemfile +++ b/gems/binary-merge/gemfiles/modular/erb/r3/v5.0.gemfile @@ -1 +1 @@ -gem 'erb', '~> 6.0', '>= 6.0.4' # ruby >= 3.2.0 +gem 'erb', '~> 6.0', '>= 6.0.6' # ruby >= 3.2.0 diff --git a/gems/binary-merge/gemfiles/modular/erb/r4/v5.0.gemfile b/gems/binary-merge/gemfiles/modular/erb/r4/v5.0.gemfile index 0e3bf1b97..ec7ff451f 100644 --- a/gems/binary-merge/gemfiles/modular/erb/r4/v5.0.gemfile +++ b/gems/binary-merge/gemfiles/modular/erb/r4/v5.0.gemfile @@ -1 +1 @@ -gem 'erb', '~> 6.0', '>= 6.0.4' # ruby >= 3.2.0 +gem 'erb', '~> 6.0', '>= 6.0.6' # ruby >= 3.2.0 diff --git a/gems/binary-merge/gemfiles/modular/json/truffleruby_22_3.gemfile b/gems/binary-merge/gemfiles/modular/json/truffleruby_22_3.gemfile new file mode 100644 index 000000000..9b2f8d96a --- /dev/null +++ b/gems/binary-merge/gemfiles/modular/json/truffleruby_22_3.gemfile @@ -0,0 +1,6 @@ +# frozen_string_literal: true + +if RUBY_ENGINE == 'truffleruby' && RUBY_ENGINE_VERSION.start_with?('22.3') + # TruffleRuby 22.3 ships the json default gem from its emulated MRI Ruby. + gem 'json', '= 2.5.1' +end diff --git a/gems/binary-merge/gemfiles/modular/json/truffleruby_23_0.gemfile b/gems/binary-merge/gemfiles/modular/json/truffleruby_23_0.gemfile new file mode 100644 index 000000000..d787a5ef4 --- /dev/null +++ b/gems/binary-merge/gemfiles/modular/json/truffleruby_23_0.gemfile @@ -0,0 +1,6 @@ +# frozen_string_literal: true + +if RUBY_ENGINE == 'truffleruby' && RUBY_ENGINE_VERSION.start_with?('23.0') + # TruffleRuby 23.0 ships the json default gem from its emulated MRI Ruby. + gem 'json', '= 2.6.1' +end diff --git a/gems/binary-merge/gemfiles/modular/json/truffleruby_23_1.gemfile b/gems/binary-merge/gemfiles/modular/json/truffleruby_23_1.gemfile new file mode 100644 index 000000000..d78486b0e --- /dev/null +++ b/gems/binary-merge/gemfiles/modular/json/truffleruby_23_1.gemfile @@ -0,0 +1,6 @@ +# frozen_string_literal: true + +if RUBY_ENGINE == 'truffleruby' && RUBY_ENGINE_VERSION.start_with?('23.1') + # TruffleRuby 23.1 ships the json default gem from its emulated MRI Ruby. + gem 'json', '= 2.6.3' +end diff --git a/gems/binary-merge/gemfiles/modular/optional.gemfile b/gems/binary-merge/gemfiles/modular/optional.gemfile index 0508edd79..9ea429538 100644 --- a/gems/binary-merge/gemfiles/modular/optional.gemfile +++ b/gems/binary-merge/gemfiles/modular/optional.gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -# To retain during binary-merge templating: +# To retain during kettle-jem templating: # kettle-jem:freeze # # ... your code # kettle-jem:unfreeze @@ -10,7 +10,6 @@ # Required for curated binstubs generated by kettle-jem install gem 'rbs', '>= 3.0', require: false # ruby >= 3.1 -gem 'stone_checksums', '~> 1.0', '>= 1.0.3', require: false # ruby >= 2.2 # Required for kettle-pre-release # URL parsing with Unicode support (falls back to URI if not available) diff --git a/gems/binary-merge/gemfiles/modular/runtime_heads.gemfile b/gems/binary-merge/gemfiles/modular/runtime_heads.gemfile index ee93b2904..ebf17c529 100644 --- a/gems/binary-merge/gemfiles/modular/runtime_heads.gemfile +++ b/gems/binary-merge/gemfiles/modular/runtime_heads.gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -# To retain during binary-merge templating: +# To retain during kettle-jem templating: # kettle-jem:freeze # # ... your code # kettle-jem:unfreeze @@ -8,7 +8,4 @@ # Test against HEAD of runtime dependencies so we can proactively file bugs -# Ruby >= 2.2 -gem 'version_gem', github: 'ruby-oauth/version_gem', branch: 'main' - eval_gemfile('x_std_libs/vHEAD.gemfile') diff --git a/gems/binary-merge/gemfiles/modular/style.gemfile b/gems/binary-merge/gemfiles/modular/style.gemfile index e70f4178f..4dbcc02c0 100644 --- a/gems/binary-merge/gemfiles/modular/style.gemfile +++ b/gems/binary-merge/gemfiles/modular/style.gemfile @@ -1,27 +1,30 @@ # frozen_string_literal: true -# To retain during binary-merge templating: +# To retain during kettle-jem templating: # kettle-jem:freeze # # ... your code # kettle-jem:unfreeze # -# We run rubocop on the latest version of Ruby, -# but in support of the oldest supported version of Ruby +# Style tasks run on the latest Ruby; RuboCop-LTS selects the compatibility +# rules for the configured Ruby floor independently from task dependency floors. -gem 'reek', '~> 6.5' +gem 'reek', '~> 6.5', '>= 6.5.0' platform :mri do - gem 'rubocop-on-rbs', '~> 2.0' # ruby >= 3.2.0 + gem 'appraisal2-rubocop', '~> 1.0', '>= 1.0.0', require: false + gem 'rubocop-gradual', '~> 0.4', '>= 0.4.0' + gem 'rubocop-minitest', '~> 0.40', '>= 0.40.0' + gem 'rubocop-on-rbs', '~> 2.0', '>= 2.0.0' # ruby >= 3.2.0 # gem "rubocop", "~> 1.73", ">= 1.73.2" # constrained by standard gem 'rubocop-packaging', '~> 0.6', '>= 0.6.0' - gem 'standard', '>= 1.50' + gem 'standard', '~> 1.56', '>= 1.56.0' if ENV.fetch('RUBOCOP_LTS_LOCAL', 'false').casecmp('false').zero? - gem 'rubocop-lts', '~> 24.1.0' - # "rubocop-lts-rspec" can't add here until other gems are updated. - gem 'rubocop-rspec', '~> 3.6' - gem 'rubocop-ruby3_2', '~> 3.0.0' + declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) + gem 'rubocop-lts', '~> 24.2', '>= 24.2.1' unless declared_gems.include?('rubocop-lts') + gem 'rubocop-lts-rspec', '~> 1.0', '>= 1.0.5' unless declared_gems.include?('rubocop-lts-rspec') + gem 'rubocop-ruby3_2', '~> 3.0', '>= 3.0.6' unless declared_gems.include?('rubocop-ruby3_2') else eval_gemfile('style_local.gemfile') end diff --git a/gems/binary-merge/gemfiles/modular/style_local.gemfile b/gems/binary-merge/gemfiles/modular/style_local.gemfile index ce75bbe21..3f95e6d26 100644 --- a/gems/binary-merge/gemfiles/modular/style_local.gemfile +++ b/gems/binary-merge/gemfiles/modular/style_local.gemfile @@ -1,19 +1,41 @@ # frozen_string_literal: true -# We run rubocop on the latest version of Ruby, -# but in support of the oldest supported version of Ruby +# Style tasks run on the latest Ruby; RuboCop-LTS selects the compatibility +# rules for the configured Ruby floor independently from task dependency floors. # Local path overrides for development. # Loaded by the associated non-local gemfile when RUBOCOP_LTS_LOCAL != "false". -require 'nomono/bundler' unless defined?(Nomono) +# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. +# Bundler records that dependency during Gemfile evaluation, but it does not +# activate that exact version before the immediate `require "nomono/bundler"`. +# If multiple compatible nomono versions are installed, RubyGems may activate +# the newest installed version while Gemfile.lock pins an older compatible one; +# Bundler then aborts with "already activated nomono X, but your Gemfile +# requires nomono Y". Prefer the locked compatible version when present, then +# activate it explicitly before requiring the Bundler DSL extension used below. +nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] +nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) +if File.file?(nomono_lockfile) + nomono_locked_spec = Bundler::LockfileParser + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } + nomono_locked = nomono_locked_spec && + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked +end +Kernel.send(:gem, 'nomono', *nomono_activation_requirements) +require 'nomono/bundler' local_gems = %w[rubocop-lts rubocop-lts-rspec rubocop-ruby3_2 standard-rubocop-lts] +declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) +local_gems_to_eval = local_gems - %w[binary-merge] - declared_gems # export VENDORED_GEMS=rubocop-lts,rubocop-lts-rspec,rubocop-ruby3_2,standard-rubocop-lts platform :mri do eval_nomono_gems( - gems: local_gems, + gems: local_gems_to_eval, prefix: 'RUBOCOP_LTS', path_env: 'RUBOCOP_LTS_LOCAL', vendored_gems_env: 'VENDORED_GEMS', diff --git a/gems/binary-merge/gemfiles/modular/templating.gemfile b/gems/binary-merge/gemfiles/modular/templating.gemfile index 2ddc9433f..a672de184 100644 --- a/gems/binary-merge/gemfiles/modular/templating.gemfile +++ b/gems/binary-merge/gemfiles/modular/templating.gemfile @@ -12,13 +12,13 @@ end if kettle_remote # Template/plugin checks for released installs. - gem 'kettle-drift', '~> 1.0', '>= 1.0.5', require: false + gem 'kettle-drift', '~> 1.0', '>= 1.0.6', require: false end # Set STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local development with path-based dependencies. # When false (default / CI), released kettle-jem brings merge gems and parser dependencies. # Local path overrides bring the same dependencies from sibling gemspecs. # -# Set KETTLE_DEV_DEV=/path/to/kettle-rb for local development with Kettle plugin gems. +# Set KETTLE_DEV_DEV=/path/to/my for local development with Kettle plugin gems. # When false (default / CI), released Kettle plugin gems are used. eval_gemfile 'templating_local.gemfile' unless structuredmerge_remote && kettle_remote diff --git a/gems/binary-merge/gemfiles/modular/templating_local.gemfile b/gems/binary-merge/gemfiles/modular/templating_local.gemfile index 44e98421b..d61b5694f 100644 --- a/gems/binary-merge/gemfiles/modular/templating_local.gemfile +++ b/gems/binary-merge/gemfiles/modular/templating_local.gemfile @@ -4,7 +4,27 @@ # Loaded by the associated non-local gemfile when STRUCTUREDMERGE_DEV or KETTLE_DEV_DEV # is not "false". -require 'nomono/bundler' unless defined?(Nomono) +# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. +# Bundler records that dependency during Gemfile evaluation, but it does not +# activate that exact version before the immediate `require "nomono/bundler"`. +# If multiple compatible nomono versions are installed, RubyGems may activate +# the newest installed version while Gemfile.lock pins an older compatible one; +# Bundler then aborts with "already activated nomono X, but your Gemfile +# requires nomono Y". Prefer the locked compatible version when present, then +# activate it explicitly before requiring the Bundler DSL extension used below. +nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] +nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) +if File.file?(nomono_lockfile) + nomono_locked_spec = Bundler::LockfileParser + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } + nomono_locked = nomono_locked_spec && + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked +end +Kernel.send(:gem, 'nomono', *nomono_activation_requirements) +require 'nomono/bundler' structuredmerge_local_gems = %w[ tree_haver diff --git a/gems/binary-merge/gemfiles/modular/webrick/r4/v1.9.gemfile b/gems/binary-merge/gemfiles/modular/webrick/r4/v1.9.gemfile new file mode 100644 index 000000000..b1329ba84 --- /dev/null +++ b/gems/binary-merge/gemfiles/modular/webrick/r4/v1.9.gemfile @@ -0,0 +1 @@ +gem 'webrick', '~> 1.9' diff --git a/gems/binary-merge/gemfiles/modular/webrick/vHEAD.gemfile b/gems/binary-merge/gemfiles/modular/webrick/vHEAD.gemfile new file mode 100644 index 000000000..c7e6f81a1 --- /dev/null +++ b/gems/binary-merge/gemfiles/modular/webrick/vHEAD.gemfile @@ -0,0 +1 @@ +gem 'webrick', '>= 1.9' diff --git a/gems/binary-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile b/gems/binary-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile index bd4e884df..e2f6501eb 100644 --- a/gems/binary-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile +++ b/gems/binary-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile @@ -2,3 +2,5 @@ eval_gemfile '../../erb/r4/v5.0.gemfile' eval_gemfile '../../mutex_m/r4/v0.3.gemfile' eval_gemfile '../../stringio/r4/v3.0.gemfile' eval_gemfile '../../benchmark/r4/v0.5.gemfile' +eval_gemfile '../../cgi/r4/v0.5.gemfile' +eval_gemfile '../../webrick/r4/v1.9.gemfile' diff --git a/gems/binary-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile b/gems/binary-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile index 91f383c11..ab75cccf1 100644 --- a/gems/binary-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile +++ b/gems/binary-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile @@ -2,3 +2,5 @@ eval_gemfile '../erb/vHEAD.gemfile' eval_gemfile '../mutex_m/vHEAD.gemfile' eval_gemfile '../stringio/vHEAD.gemfile' eval_gemfile '../benchmark/vHEAD.gemfile' +eval_gemfile '../cgi/vHEAD.gemfile' +eval_gemfile '../webrick/vHEAD.gemfile' diff --git a/gems/binary-merge/lib/binary/merge/version.rb b/gems/binary-merge/lib/binary/merge/version.rb index bb78df888..d8ae92dfa 100644 --- a/gems/binary-merge/lib/binary/merge/version.rb +++ b/gems/binary-merge/lib/binary/merge/version.rb @@ -3,7 +3,7 @@ module Binary module Merge module Version - VERSION = "7.1.0" + VERSION = '7.1.0' end VERSION = Version::VERSION # Traditional Constant Location end diff --git a/gems/psych-merge/.kettle-drift.lock b/gems/psych-merge/.kettle-drift.lock index 0d135c055..f271dc59e 100644 --- a/gems/psych-merge/.kettle-drift.lock +++ b/gems/psych-merge/.kettle-drift.lock @@ -1,130 +1,10 @@ { - "(direct_sibling_local ||\nENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?)": [ - { - "file": "Gemfile", - "lines": [ - 81, - 121, - 161, - 201, - 241, - 281, - 321, - 361, - 401 - ] - } - ], - ".find { |spec| spec.name == 'nomono' }\nnomono_locked = nomono_locked_spec &&": [ - { - "file": "Gemfile", - "lines": [ - 92, - 132, - 172, - 212, - 252, - 292, - 332, - 372, - 412 - ] - } - ], - "ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?)\ndirect_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV')": [ - { - "file": "Gemfile", - "lines": [ - 82, - 122, - 162, - 202, - 242, - 282, - 322, - 362, - 402 - ] - } - ], - "Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version)\nnomono_activation_requirements = [\"= #{nomono_locked_spec.version}\"] if nomono_locked": [ - { - "file": "Gemfile", - "lines": [ - 94, - 134, - 174, - 214, - 254, - 294, - 334, - 374, - 414 - ] - } - ], - "Kernel.send(:gem, 'nomono', *nomono_activation_requirements)\nrequire 'nomono/bundler'": [ - { - "file": "Gemfile", - "lines": [ - 97, - 137, - 177, - 217, - 257, - 297, - 337, - 377, - 417 - ] - } - ], - "direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV')\ndirect_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil)": [ - { - "file": "Gemfile", - "lines": [ - 83, - 123, - 163, - 203, - 243, - 283, - 323, - 363, - 403 - ] - } - ], "eval_nomono_gems(\ngems: direct_sibling_gems,": [ { "file": "Gemfile", "lines": [ 61, - 101, - 141, - 181, - 221, - 261, - 301, - 341, - 381, - 421 - ] - } - ], - "gems: direct_sibling_gems,\nprefix: 'STRUCTUREDMERGE',": [ - { - "file": "Gemfile", - "lines": [ - 102, - 142, - 182, - 222, - 262, - 302, - 342, - 382, - 422 + 101 ] } ], @@ -133,31 +13,7 @@ "file": "Gemfile", "lines": [ 44, - 88, - 128, - 168, - 208, - 248, - 288, - 328, - 368, - 408 - ] - } - ], - "if direct_sibling_dev_was_set\nENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original": [ - { - "file": "Gemfile", - "lines": [ - 111, - 151, - 191, - 231, - 271, - 311, - 351, - 391, - 431 + 88 ] } ], @@ -166,15 +22,7 @@ "file": "Gemfile", "lines": [ 36, - 80, - 120, - 160, - 200, - 240, - 280, - 320, - 360, - 400 + 80 ] } ], @@ -183,31 +31,7 @@ "file": "Gemfile", "lines": [ 70, - 110, - 150, - 190, - 230, - 270, - 310, - 350, - 390, - 430 - ] - } - ], - "nomono_activation_requirements = nomono_requirements\nnomono_lockfile = File.expand_path('Gemfile.lock', __dir__)": [ - { - "file": "Gemfile", - "lines": [ - 86, - 126, - 166, - 206, - 246, - 286, - 326, - 366, - 406 + 110 ] } ], @@ -216,15 +40,7 @@ "file": "Gemfile", "lines": [ 49, - 93, - 133, - 173, - 213, - 253, - 293, - 333, - 373, - 413 + 93 ] } ], @@ -233,95 +49,7 @@ "file": "Gemfile", "lines": [ 45, - 89, - 129, - 169, - 209, - 249, - 289, - 329, - 369, - 409 - ] - } - ], - "nomono_lockfile = File.expand_path('Gemfile.lock', __dir__)\nif File.file?(nomono_lockfile)": [ - { - "file": "Gemfile", - "lines": [ - 87, - 127, - 167, - 207, - 247, - 287, - 327, - 367, - 407 - ] - } - ], - "path_env: 'STRUCTUREDMERGE_DEV',\nroot: %w[src my structuredmerge]": [ - { - "file": "Gemfile", - "lines": [ - 104, - 144, - 184, - 224, - 264, - 304, - 344, - 384, - 424 - ] - } - ], - "prefix: 'STRUCTUREDMERGE',\npath_env: 'STRUCTUREDMERGE_DEV',": [ - { - "file": "Gemfile", - "lines": [ - 103, - 143, - 183, - 223, - 263, - 303, - 343, - 383, - 423 - ] - } - ], - "require 'nomono/bundler'\nENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local": [ - { - "file": "Gemfile", - "lines": [ - 98, - 138, - 178, - 218, - 258, - 298, - 338, - 378, - 418 - ] - } - ], - "rescue LoadError\nwarn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.'": [ - { - "file": "Gemfile", - "lines": [ - 107, - 147, - 187, - 227, - 267, - 307, - 347, - 387, - 427 + 89 ] } ], @@ -329,8 +57,8 @@ { "file": "gemfiles/modular/templating_local.gemfile", "lines": [ - 60, - 71 + 55, + 66 ] } ] diff --git a/gems/psych-merge/.structuredmerge/kettle-jem.yml b/gems/psych-merge/.structuredmerge/kettle-jem.yml index 050e3df9c..f81c283d6 100644 --- a/gems/psych-merge/.structuredmerge/kettle-jem.yml +++ b/gems/psych-merge/.structuredmerge/kettle-jem.yml @@ -246,6 +246,59 @@ templates: - Gemfile - certs/pboling.pem - tmp/.gitignore + - gemfiles/modular/benchmark/r4/v0.5.gemfile + - gemfiles/modular/benchmark/vHEAD.gemfile + - gemfiles/modular/cgi/r4/v0.5.gemfile + - gemfiles/modular/cgi/vHEAD.gemfile + - gemfiles/modular/coverage.gemfile + - gemfiles/modular/coverage_local.gemfile + - gemfiles/modular/debug.gemfile + - gemfiles/modular/documentation.gemfile + - gemfiles/modular/documentation_local.gemfile + - gemfiles/modular/erb/r2.3/default.gemfile + - gemfiles/modular/erb/r2.6/v2.2.gemfile + - gemfiles/modular/erb/r2/v3.0.gemfile + - gemfiles/modular/erb/r3.1/v4.0.gemfile + - gemfiles/modular/erb/r3/v5.0.gemfile + - gemfiles/modular/erb/r4/v5.0.gemfile + - gemfiles/modular/erb/vHEAD.gemfile + - gemfiles/modular/json/truffleruby_22_3.gemfile + - gemfiles/modular/json/truffleruby_23_0.gemfile + - gemfiles/modular/json/truffleruby_23_1.gemfile + - gemfiles/modular/mutex_m/r2.4/v0.1.gemfile + - gemfiles/modular/mutex_m/r2/v0.3.gemfile + - gemfiles/modular/mutex_m/r3/v0.3.gemfile + - gemfiles/modular/mutex_m/r4/v0.3.gemfile + - gemfiles/modular/mutex_m/vHEAD.gemfile + - gemfiles/modular/optional.gemfile + - gemfiles/modular/recording/r2.3/recording.gemfile + - gemfiles/modular/recording/r2.4/recording.gemfile + - gemfiles/modular/recording/r2.5/recording.gemfile + - gemfiles/modular/recording/r3/recording.gemfile + - gemfiles/modular/recording/r4/recording.gemfile + - gemfiles/modular/recording/vHEAD.gemfile + - gemfiles/modular/rspec.gemfile + - gemfiles/modular/runtime_heads.gemfile + - gemfiles/modular/stringio/r2.4/v0.0.2.gemfile + - gemfiles/modular/stringio/r2/v3.0.gemfile + - gemfiles/modular/stringio/r3/v3.0.gemfile + - gemfiles/modular/stringio/r4/v3.0.gemfile + - gemfiles/modular/stringio/vHEAD.gemfile + - gemfiles/modular/style.gemfile + - gemfiles/modular/style_local.gemfile + - gemfiles/modular/templating.gemfile + - gemfiles/modular/templating_local.gemfile + - gemfiles/modular/webrick/r4/v1.9.gemfile + - gemfiles/modular/webrick/vHEAD.gemfile + - gemfiles/modular/x_std_libs.gemfile + - gemfiles/modular/x_std_libs/r2.3/libs.gemfile + - gemfiles/modular/x_std_libs/r2.4/libs.gemfile + - gemfiles/modular/x_std_libs/r2.6/libs.gemfile + - gemfiles/modular/x_std_libs/r2/libs.gemfile + - gemfiles/modular/x_std_libs/r3.1/libs.gemfile + - gemfiles/modular/x_std_libs/r3/libs.gemfile + - gemfiles/modular/x_std_libs/r4/libs.gemfile + - gemfiles/modular/x_std_libs/vHEAD.gemfile - source: lib/gem/version.rb target: lib/psych/merge/version.rb - source: sig/gem.rbs diff --git a/gems/psych-merge/Gemfile b/gems/psych-merge/Gemfile index 89ea2458f..cafdf299a 100644 --- a/gems/psych-merge/Gemfile +++ b/gems/psych-merge/Gemfile @@ -6,7 +6,7 @@ # kettle-jem will then preserve content between those markers across template runs. # kettle-jem:unfreeze -source 'https://gem.coop' +source "https://gem.coop" git_source(:codeberg) { |repo_name| "https://codeberg.org/#{repo_name}" } git_source(:gitlab) { |repo_name| "https://gitlab.com/#{repo_name}" } @@ -19,8 +19,8 @@ git_source(:gitlab) { |repo_name| "https://gitlab.com/#{repo_name}" } gemspec # Local workspace dependency wiring for *_local.gemfile overrides -nomono_requirements = ['~> 1.0', '>= 1.0.8'] -gem 'nomono', *nomono_requirements, require: false # ruby >= 2.2 +nomono_requirements = ["~> 1.0", ">= 1.0.8"] +gem "nomono", *nomono_requirements, require: false # ruby >= 2.2 # Direct sibling dependencies (env-switched via STRUCTUREDMERGE_DEV) direct_sibling_gems = %w[ @@ -28,10 +28,54 @@ direct_sibling_gems = %w[ tree_haver yaml-merge ] -direct_sibling_dev = ENV.fetch('STRUCTUREDMERGE_DEV', '') +direct_sibling_dev = ENV.fetch("STRUCTUREDMERGE_DEV", "") direct_sibling_local = !direct_sibling_dev.empty? && !%w[false 0 no off].include?(direct_sibling_dev.downcase) -direct_sibling_templating = ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? +direct_sibling_templating = ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? + +if direct_sibling_gems.any? && + (direct_sibling_local || + ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero?) + direct_sibling_dev_was_set = ENV.key?("STRUCTUREDMERGE_DEV") + direct_sibling_dev_original = ENV.fetch("STRUCTUREDMERGE_DEV", nil) + begin + nomono_activation_requirements = nomono_requirements + nomono_lockfile = File.expand_path("Gemfile.lock", __dir__) + if File.file?(nomono_lockfile) + nomono_locked_spec = Bundler::LockfileParser + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == "nomono" } + nomono_locked = nomono_locked_spec && + Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) + if nomono_locked + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] + end + end + Kernel.send(:gem, "nomono", *nomono_activation_requirements) + require "nomono/bundler" + if direct_sibling_templating && !direct_sibling_local + ENV["STRUCTUREDMERGE_DEV"] = File.expand_path("..", __dir__) + end + + eval_nomono_gems( + gems: direct_sibling_gems, + prefix: "STRUCTUREDMERGE", + path_env: "STRUCTUREDMERGE_DEV", + root: ["src", "my", "structuredmerge"] + ) + rescue LoadError + warn "Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies." + ensure + if direct_sibling_templating && !direct_sibling_local + if direct_sibling_dev_was_set + ENV["STRUCTUREDMERGE_DEV"] = direct_sibling_dev_original + else + ENV.delete("STRUCTUREDMERGE_DEV") + end + end + end +end if direct_sibling_gems.any? && (direct_sibling_local || @@ -74,28 +118,28 @@ if direct_sibling_gems.any? && end # Use released TSLP with the Ruby ABI platform-gem fix. -gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' +gem "tree_sitter_language_pack", "~> 1.13", ">= 1.13.3" # Templating (env-switched: STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local paths) -eval_gemfile 'gemfiles/modular/templating.gemfile' if ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? +eval_gemfile "gemfiles/modular/templating.gemfile" if ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? # Debugging -eval_gemfile 'gemfiles/modular/debug.gemfile' +eval_gemfile "gemfiles/modular/debug.gemfile" # Code Coverage (env-switched: KETTLE_DEV_DEV=true for local paths) -eval_gemfile 'gemfiles/modular/coverage.gemfile' +eval_gemfile "gemfiles/modular/coverage.gemfile" # Linting -eval_gemfile 'gemfiles/modular/style.gemfile' +eval_gemfile "gemfiles/modular/style.gemfile" # Documentation -eval_gemfile 'gemfiles/modular/documentation.gemfile' +eval_gemfile "gemfiles/modular/documentation.gemfile" # Optional -eval_gemfile 'gemfiles/modular/optional.gemfile' +eval_gemfile "gemfiles/modular/optional.gemfile" ### Std Lib Extracted Gems -eval_gemfile 'gemfiles/modular/x_std_libs.gemfile' +eval_gemfile "gemfiles/modular/x_std_libs.gemfile" # See unlocked_deps appraisal for more details on irb inclusion -gem 'irb', '~> 1.17' # ruby >= 2.7 +gem "irb", "~> 1.17" # ruby >= 2.7 diff --git a/gems/psych-merge/Gemfile.lock b/gems/psych-merge/Gemfile.lock index a096211db..7929fca2f 100644 --- a/gems/psych-merge/Gemfile.lock +++ b/gems/psych-merge/Gemfile.lock @@ -7,6 +7,264 @@ PATH version_gem (~> 1.1, >= 1.1.9) yaml-merge (= 7.1.0) +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly + specs: + ast-crispr-markdown-markly (7.1.0) + ast-crispr (= 7.1.0) + markly-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism + specs: + ast-crispr-ruby-prism (7.1.0) + ast-crispr (= 7.1.0) + prism-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr + specs: + ast-crispr (7.1.0) + ast-merge (= 7.1.0) + service_actor (~> 3.9) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git + specs: + ast-merge-git (7.1.0) + ast-merge (= 7.1.0) + json-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge + specs: + ast-merge (7.1.0) + benchmark + token-resolver (~> 2.0, >= 2.0.4) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template + specs: + ast-template (7.1.0) + ast-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge + specs: + bash-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge + specs: + binary-merge (7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge + specs: + citrus-toml-merge (7.1.0) + toml-merge (= 7.1.0) + toml-rb (~> 4.1) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge + specs: + commonmarker-merge (7.1.0) + commonmarker (~> 2.2) + markdown-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge + specs: + dotenv-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge + specs: + go-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge + specs: + json-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem + specs: + kettle-jem (7.1.0) + addressable (>= 2.8, < 3) + ast-crispr-markdown-markly (= 7.1.0) + ast-crispr-ruby-prism (= 7.1.0) + ast-merge (= 7.1.0) + bash-merge (= 7.1.0) + citrus-toml-merge (= 7.1.0) + commonmarker-merge (= 7.1.0) + dotenv-merge (= 7.1.0) + json-merge (= 7.1.0) + kettle-dev (~> 2.3, >= 2.3.5) + kettle-rb (~> 0.1, >= 0.1.4) + kramdown-merge (= 7.1.0) + markdown-merge (= 7.1.0) + markly-merge (= 7.1.0) + prism-merge (= 7.1.0) + psych-merge (= 7.1.0) + rbs (>= 3.10) + rbs-merge (= 7.1.0) + ruby-merge (= 7.1.0) + token-resolver (~> 2.0, >= 2.0.4) + toml-merge (= 7.1.0) + toml-rb (~> 4.2) + tree_haver (= 7.1.0) + yaml-merge (= 7.1.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge + specs: + kramdown-merge (7.1.0) + kramdown (~> 2.5) + markdown-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge + specs: + markdown-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge + specs: + markly-merge (7.1.0) + markdown-merge (= 7.1.0) + markly (~> 0.9) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge + specs: + parslet-toml-merge (7.1.0) + toml (~> 0.3) + toml-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge + specs: + plain-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge + specs: + prism-merge (7.1.0) + prism (~> 1.6) + ruby-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge + specs: + rbs-merge (7.1.0) + ast-merge (= 7.1.0) + rbs (>= 3.10) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge + specs: + ruby-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge + specs: + rust-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb + specs: + smorg-rb (7.1.0) + ast-merge (= 7.1.0) + ast-merge-git (= 7.1.0) + go-merge (= 7.1.0) + json-merge (= 7.1.0) + kettle-jem (= 7.1.0) + markly-merge (= 7.1.0) + plain-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge + specs: + toml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver + specs: + tree_haver (7.1.0) + citrus (~> 3.0) + parslet (~> 2.0) + tree_sitter_language_pack (>= 1.13.2, < 2.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge + specs: + typescript-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge + specs: + yaml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge + specs: + zip-merge (7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + GEM remote: https://gem.coop/ specs: @@ -18,11 +276,6 @@ GEM rake (>= 10) thor (>= 0.14) ast (2.4.3) - ast-merge (7.1.0) - benchmark - token-resolver (~> 2.0, >= 2.0.4) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) backports (3.25.3) benchmark (0.5.0) bigdecimal (4.1.2) @@ -31,6 +284,7 @@ GEM thor (~> 1.0) citrus (3.0.2) cmdparse (3.0.7) + commonmarker (2.9.0-x86_64-linux) concurrent-ruby (1.3.7) date (3.5.1) debug (1.11.1) @@ -94,6 +348,8 @@ GEM kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) + kettle-drift (1.0.6) + version_gem (~> 1.1, >= 1.1.14) kettle-rb (0.1.4) kettle-soup-cover (1.1.3) simplecov (~> 0.22) @@ -122,6 +378,7 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) + markly (0.16.0) mutex_m (0.3.0) nokogiri (1.19.4-aarch64-linux-gnu) racc (~> 1.4) @@ -129,13 +386,11 @@ GEM racc (~> 1.4) nokogiri (1.19.4-arm64-darwin) racc (~> 1.4) - nokogiri (1.19.4-x86_64-darwin) - racc (~> 1.4) nokogiri (1.19.4-x86_64-linux-gnu) racc (~> 1.4) nokogiri (1.19.4-x86_64-linux-musl) racc (~> 1.4) - nomono (1.0.8) + nomono (1.0.9) openssl (4.0.2) ostruct (0.6.3) parallel (1.28.0) @@ -258,6 +513,8 @@ GEM ruby-progressbar (1.13.0) ruby_engine (2.0.3) ruby_version (1.0.3) + service_actor (3.9.4) + zeitwerk (>= 1.0) silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) @@ -310,17 +567,15 @@ GEM token-resolver (2.0.4) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.13) - tree_haver (7.1.0) - citrus (~> 3.0) - parslet (~> 2.0) - tree_sitter_language_pack (>= 1.13.2, < 2.0) - version_gem (~> 1.1, >= 1.1.9) + toml (0.3.0) + parslet (>= 1.8.0, < 3.0.0) + toml-rb (4.2.0) + citrus (~> 3.0, > 3.0) + racc (~> 1.7) tree_sitter_language_pack (1.13.3-aarch64-linux) sorbet-runtime (~> 0.5) tree_sitter_language_pack (1.13.3-arm64-darwin) sorbet-runtime (~> 0.5) - tree_sitter_language_pack (1.13.3-x86_64-darwin) - sorbet-runtime (~> 0.5) tree_sitter_language_pack (1.13.3-x86_64-linux) sorbet-runtime (~> 0.5) tsort (0.2.0) @@ -337,10 +592,6 @@ GEM kramdown (>= 2.4, < 3) kramdown-parser-gfm (~> 1.1) version_gem (~> 1.1, >= 1.1.13) - yaml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) yard (0.9.45) yard-fence (0.9.6) rdoc (>= 6.11, < 8) @@ -366,30 +617,52 @@ PLATFORMS aarch64-linux-gnu aarch64-linux-musl arm64-darwin - x86_64-darwin + x86_64-linux x86_64-linux-gnu x86_64-linux-musl DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) + ast-crispr! + ast-crispr-markdown-markly! + ast-crispr-ruby-prism! + ast-merge! + ast-merge-git! + ast-template! + bash-merge! benchmark (~> 0.5, >= 0.5.0) + binary-merge! bundler-audit (~> 0.9.3) + citrus-toml-merge! + commonmarker-merge! debug (>= 1.1) + dotenv-merge! erb (~> 6.0, >= 6.0.4) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.0) + go-merge! irb (~> 1.17) + json-merge! kettle-dev (~> 2.0, >= 2.2.25) + kettle-drift (~> 1.0, >= 1.0.5) + kettle-jem! kettle-soup-cover (~> 1.0, >= 1.1.3) kettle-test (~> 2.0, >= 2.0.9) kramdown (~> 2.5, >= 2.5.1) + kramdown-merge! kramdown-parser-gfm (~> 1.1) + markdown-merge! + markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) + parslet-toml-merge! + plain-merge! + prism-merge! psych-merge! rake (~> 13.0) rbs (>= 3.0) + rbs-merge! rdoc (~> 6.11) reek (~> 6.5) require_bench (~> 1.0, >= 1.0.4) @@ -398,31 +671,49 @@ DEPENDENCIES rubocop-packaging (~> 0.6, >= 0.6.0) rubocop-rspec (~> 3.6) rubocop-ruby3_2 (~> 3.0.0) + ruby-merge! ruby-progressbar (~> 1.13) + rust-merge! + smorg-rb! standard (>= 1.50) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) + toml-merge! + tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) + typescript-merge! yaml-converter (~> 0.1) + yaml-merge! yard (~> 0.9, >= 0.9.44) yard-fence (~> 0.9, >= 0.9.1) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) yard-timekeeper (~> 0.1) yard-yaml (~> 0.1, >= 0.1.2) + zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af ansi (1.6.0) sha256=ac9ea0c0ea8d32fb4e271348e609963ac78882f34b73836c2a02b3622e666658 appraisal2 (3.2.0) sha256=ccd0b767ac4060cd7af6d16747459b6990f49c39c7b4fb1f7d1146b1e97c492f ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 + ast-crispr (7.1.0) + ast-crispr-markdown-markly (7.1.0) + ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) + ast-merge-git (7.1.0) + ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 + bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd + binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 + citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 + commonmarker (2.9.0-x86_64-linux) + commonmarker-merge (7.1.0) concurrent-ruby (1.3.7) sha256=4412caec3a5ea2e5fdc52076724c071a81f2c0593d83b2ac8cbb8ca63b3151b0 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 @@ -430,6 +721,7 @@ CHECKSUMS diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 docile (1.4.1) sha256=96159be799bfa73cdb721b840e9802126e4e03dfc26863db73647204c727f21e + dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -442,36 +734,46 @@ CHECKSUMS gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f + go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 + json-merge (7.1.0) kettle-dev (2.3.7) sha256=eb370113cd030d03cbe2d33b31c99858951017e5ad21a17e9ed89dc3770028ee + kettle-drift (1.0.6) + kettle-jem (7.1.0) kettle-rb (0.1.4) sha256=9cef7ce4f7021666b7222292f29051e51eaf042e8a5db11f3f4dd72f74243fc1 kettle-soup-cover (1.1.3) sha256=a373827da22a7131d093afd32945e5b7d7a10a01ebfdded8fd2cb8230d69c8ad kettle-test (2.0.11) sha256=c710c90f7ab79d51f9452f0c09f5f90657e7a893f63583855c164d0b1b107ab2 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa + kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 + markdown-merge (7.1.0) + markly (0.16.0) + markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-aarch64-linux-gnu) sha256=1269fb644a6de405057a53dd5c762b1209b43ca7424f839454d3dbc677c31a8f nokogiri (1.19.4-aarch64-linux-musl) sha256=35c65b9ce72b3bb03207bdbe7067915019dc18c1b9b59139684bd6690fdd01af nokogiri (1.19.4-arm64-darwin) sha256=a46db9853286e6597b36ebc6953817d15acf3a299583eb3f89fdc6f91dd63527 - nokogiri (1.19.4-x86_64-darwin) sha256=7fd17057d3e1f00e9954a74b3cd76595d3d4a5ef233b7ed9599047c204f70551 nokogiri (1.19.4-x86_64-linux-gnu) sha256=379fae440b28915e3f19d752ce2dcf8465ed2b2fbefd2a7ca0dd497bc981a06a nokogiri (1.19.4-x86_64-linux-musl) sha256=17dfb7c1fa194ae02fbf7c51a7afc8d278045ab3fdacfd86f91d02d7b274470b - nomono (1.0.8) sha256=bf4b9b426cbf216ab17b70db474f691b8ae1f1e29de8db4b0ecd405e6e7e1c80 + nomono (1.0.9) openssl (4.0.2) sha256=1037ad2868ae58df9ad917891c0c0f9815a1172f6846d4bcdd508e4c2ee747c2 ostruct (0.6.3) sha256=95a2ed4a4bd1d190784e666b47b2d3f078e4a9efda2fccf18f84ddc6538ed912 parallel (1.28.0) sha256=33e6de1484baf2524792d178b0913fc8eb94c628d6cfe45599ad4458c638c970 parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 + parslet-toml-merge (7.1.0) + plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 + prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 @@ -479,6 +781,7 @@ CHECKSUMS rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 + rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb @@ -506,9 +809,12 @@ CHECKSUMS rubocop-rspec (3.10.2) sha256=0b3e2ecc592cd10ecbf0095bb58d1e357905276e069643523cc19eb7495f65e2 rubocop-ruby3_2 (3.0.7) sha256=f53dd6d286fb05186214fc6ec116783e7f837030918e8931c05de773e98f8466 rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 + ruby-merge (7.1.0) ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 + rust-merge (7.1.0) + service_actor (3.9.4) silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (0.22.0) sha256=fe2622c7834ff23b98066bb0a854284b2729a569ac659f82621fc22ef36213a5 simplecov-cobertura (3.2.0) sha256=70d702658677fcb20e5aceb6915ccf8bc62ff2ccd38b62b3ad5c9db5c0888740 @@ -517,6 +823,7 @@ CHECKSUMS simplecov-lcov (0.9.0) sha256=7a77a31e200a595ed4b0249493056efd0c920601f53d2ef135ca34ee796346cd simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_json_formatter (0.1.4) sha256=529418fbe8de1713ac2b2d612aa3daa56d316975d307244399fa4838c601b428 + smorg-rb (7.1.0) sorbet-runtime (0.6.13347) sha256=54e7221d9f4b63f58aec79f3043752a9ba7810347c6ae0d903531591cc2d5f01 standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b @@ -530,13 +837,16 @@ CHECKSUMS timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.4) sha256=33b926958f504525bba3ed511ab66fbcbf8ef30390815e931436b30f27ffcad0 + toml (0.3.0) + toml-merge (7.1.0) + toml-rb (4.2.0) tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-aarch64-linux) sha256=55ffc7c87868cb45658338363d9eba51b4a8b0259aa88e4de368d2bd1d52fea4 tree_sitter_language_pack (1.13.3-arm64-darwin) sha256=bc2498db605f212a1dbd2465ed3f65190d7da786f6ed5d30fcf958121aeb4a5c - tree_sitter_language_pack (1.13.3-x86_64-darwin) sha256=061f7da6e1cc4ba936fad436ee0653d7dfdfa4aa879cf555403e3aa373d43966 tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 + typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 @@ -549,6 +859,7 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 + zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH diff --git a/gems/psych-merge/Rakefile b/gems/psych-merge/Rakefile index 0796b339a..8914e2104 100644 --- a/gems/psych-merge/Rakefile +++ b/gems/psych-merge/Rakefile @@ -130,23 +130,23 @@ end ### DUPLICATE DRIFT TASKS begin - require 'kettle/drift' + require "kettle/drift" Kettle::Drift.install_tasks rescue LoadError - desc('(stub) kettle:drift:check is unavailable') - task('kettle:drift:check') do + desc("(stub) kettle:drift:check is unavailable") + task("kettle:drift:check") do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc('(stub) kettle:drift:update is unavailable') - task('kettle:drift:update') do + desc("(stub) kettle:drift:update is unavailable") + task("kettle:drift:update") do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc('(stub) kettle:drift:force_update is unavailable') - task('kettle:drift:force_update') do + desc("(stub) kettle:drift:force_update is unavailable") + task("kettle:drift:force_update") do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc('(stub) kettle:drift is unavailable') - task('kettle:drift' => 'kettle:drift:update') + desc("(stub) kettle:drift is unavailable") + task("kettle:drift" => "kettle:drift:update") end ### TEMPLATING TASKS diff --git a/gems/psych-merge/lib/psych/merge/version.rb b/gems/psych-merge/lib/psych/merge/version.rb index aa65219d4..518f12da4 100644 --- a/gems/psych-merge/lib/psych/merge/version.rb +++ b/gems/psych-merge/lib/psych/merge/version.rb @@ -3,7 +3,7 @@ module Psych module Merge module Version - VERSION = '7.1.0' + VERSION = "7.1.0" end VERSION = Version::VERSION # Traditional Constant Location end diff --git a/gems/typescript-merge/Gemfile.lock b/gems/typescript-merge/Gemfile.lock index 2004b395c..9832ba2a9 100644 --- a/gems/typescript-merge/Gemfile.lock +++ b/gems/typescript-merge/Gemfile.lock @@ -7,7 +7,39 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/ast-merge + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly + specs: + ast-crispr-markdown-markly (7.1.0) + ast-crispr (= 7.1.0) + markly-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism + specs: + ast-crispr-ruby-prism (7.1.0) + ast-crispr (= 7.1.0) + prism-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr + specs: + ast-crispr (7.1.0) + ast-merge (= 7.1.0) + service_actor (~> 3.9) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git + specs: + ast-merge-git (7.1.0) + ast-merge (= 7.1.0) + json-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge specs: ast-merge (7.1.0) benchmark @@ -16,7 +48,201 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/tree_haver + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template + specs: + ast-template (7.1.0) + ast-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge + specs: + bash-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge + specs: + binary-merge (7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge + specs: + citrus-toml-merge (7.1.0) + toml-merge (= 7.1.0) + toml-rb (~> 4.1) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge + specs: + commonmarker-merge (7.1.0) + commonmarker (~> 2.2) + markdown-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge + specs: + dotenv-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge + specs: + go-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge + specs: + json-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem + specs: + kettle-jem (7.1.0) + addressable (>= 2.8, < 3) + ast-crispr-markdown-markly (= 7.1.0) + ast-crispr-ruby-prism (= 7.1.0) + ast-merge (= 7.1.0) + bash-merge (= 7.1.0) + citrus-toml-merge (= 7.1.0) + commonmarker-merge (= 7.1.0) + dotenv-merge (= 7.1.0) + json-merge (= 7.1.0) + kettle-dev (~> 2.3, >= 2.3.5) + kettle-rb (~> 0.1, >= 0.1.4) + kramdown-merge (= 7.1.0) + markdown-merge (= 7.1.0) + markly-merge (= 7.1.0) + prism-merge (= 7.1.0) + psych-merge (= 7.1.0) + rbs (>= 3.10) + rbs-merge (= 7.1.0) + ruby-merge (= 7.1.0) + token-resolver (~> 2.0, >= 2.0.4) + toml-merge (= 7.1.0) + toml-rb (~> 4.2) + tree_haver (= 7.1.0) + yaml-merge (= 7.1.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge + specs: + kramdown-merge (7.1.0) + kramdown (~> 2.5) + markdown-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge + specs: + markdown-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge + specs: + markly-merge (7.1.0) + markdown-merge (= 7.1.0) + markly (~> 0.9) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge + specs: + parslet-toml-merge (7.1.0) + toml (~> 0.3) + toml-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge + specs: + plain-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge + specs: + prism-merge (7.1.0) + prism (~> 1.6) + ruby-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge + specs: + psych-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + yaml-merge (= 7.1.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge + specs: + rbs-merge (7.1.0) + ast-merge (= 7.1.0) + rbs (>= 3.10) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge + specs: + ruby-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge + specs: + rust-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb + specs: + smorg-rb (7.1.0) + ast-merge (= 7.1.0) + ast-merge-git (= 7.1.0) + go-merge (= 7.1.0) + json-merge (= 7.1.0) + kettle-jem (= 7.1.0) + markly-merge (= 7.1.0) + plain-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge + specs: + toml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver specs: tree_haver (7.1.0) citrus (~> 3.0) @@ -24,6 +250,21 @@ PATH tree_sitter_language_pack (>= 1.13.2, < 2.0) version_gem (~> 1.1, >= 1.1.9) +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge + specs: + yaml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge + specs: + zip-merge (7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + GEM remote: https://gem.coop/ specs: @@ -48,6 +289,11 @@ GEM cgi (0.5.2) citrus (3.0.2) cmdparse (3.0.7) + commonmarker (2.9.0-aarch64-linux) + commonmarker (2.9.0-aarch64-linux-musl) + commonmarker (2.9.0-arm64-darwin) + commonmarker (2.9.0-x86_64-linux) + commonmarker (2.9.0-x86_64-linux-musl) concurrent-ruby (1.3.8) date (3.5.1) debug (1.11.1) @@ -110,6 +356,8 @@ GEM kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) + kettle-drift (1.0.6) + version_gem (~> 1.1, >= 1.1.14) kettle-rb (0.1.5) kettle-soup-cover (3.0.4) kettle-wash (~> 0.1, >= 0.1.0) @@ -138,6 +386,7 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) + markly (0.16.0) mutex_m (0.3.0) nokogiri (1.19.4-aarch64-linux-gnu) racc (~> 1.4) @@ -300,6 +549,8 @@ GEM ruby-progressbar (1.13.0) ruby_engine (2.0.3) ruby_version (1.0.3) + service_actor (3.9.4) + zeitwerk (>= 1.0) silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) @@ -354,6 +605,11 @@ GEM token-resolver (2.0.5) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.14) + toml (0.3.0) + parslet (>= 1.8.0, < 3.0.0) + toml-rb (4.2.0) + citrus (~> 3.0, > 3.0) + racc (~> 1.7) tree_sitter_language_pack (1.13.3-aarch64-linux) sorbet-runtime (~> 0.5) tree_sitter_language_pack (1.13.3-arm64-darwin) @@ -408,24 +664,46 @@ DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) appraisal2-rubocop (~> 1.0, >= 1.0.0) + ast-crispr! + ast-crispr-markdown-markly! + ast-crispr-ruby-prism! ast-merge! + ast-merge-git! + ast-template! + bash-merge! benchmark (~> 0.5, >= 0.5.0) + binary-merge! bundler-audit (~> 0.9.3) cgi (~> 0.5) + citrus-toml-merge! + commonmarker-merge! debug (>= 1.1) + dotenv-merge! erb (~> 6.0, >= 6.0.6) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.0) + go-merge! irb (~> 1.17) + json-merge! kettle-dev (~> 2.0, >= 2.2.25) + kettle-drift (~> 1.0, >= 1.0.6) + kettle-jem! kettle-soup-cover (~> 3.0, >= 3.0.3) kettle-test (~> 2.0, >= 2.0.9) kramdown (~> 2.5, >= 2.5.2) + kramdown-merge! kramdown-parser-gfm (~> 1.1) + markdown-merge! + markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) + parslet-toml-merge! + plain-merge! + prism-merge! + psych-merge! rake (~> 13.0) rbs (>= 3.0) + rbs-merge! rdoc (~> 6.11) reek (~> 6.5, >= 6.5.0) require_bench (~> 1.0, >= 1.0.4) @@ -436,21 +714,27 @@ DEPENDENCIES rubocop-on-rbs (~> 2.0, >= 2.0.0) rubocop-packaging (~> 0.6, >= 0.6.0) rubocop-ruby3_2 (~> 3.0, >= 3.0.6) + ruby-merge! ruby-progressbar (~> 1.13) + rust-merge! + smorg-rb! standard (~> 1.56, >= 1.56.0) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) + toml-merge! tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) typescript-merge! webrick (~> 1.9) yaml-converter (~> 0.2, >= 0.2.3) + yaml-merge! yard (~> 0.9, >= 0.9.45) yard-fence (~> 0.9, >= 0.9.6) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) yard-timekeeper (~> 0.2, >= 0.2.4) yard-yaml (~> 0.2, >= 0.2.3) + zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af @@ -458,20 +742,35 @@ CHECKSUMS appraisal2 (3.2.0) sha256=ccd0b767ac4060cd7af6d16747459b6990f49c39c7b4fb1f7d1146b1e97c492f appraisal2-rubocop (1.0.0) sha256=b71410fbb014befda5340605a605b7f6f3f012739baf0acc5b4351b592c3258d ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 + ast-crispr (7.1.0) + ast-crispr-markdown-markly (7.1.0) + ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) + ast-merge-git (7.1.0) + ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 + bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd + binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 + citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 + commonmarker (2.9.0-aarch64-linux) sha256=e2b4aadb9a2cfa4e206582641ce3a49465549ac1ed4c289fdd63b78d8f24579c + commonmarker (2.9.0-aarch64-linux-musl) sha256=1cf4d2821f2a7e64945f1ed7c4eeced586fdb27ea7fe7337788802cf8f57cfca + commonmarker (2.9.0-arm64-darwin) sha256=1748dbfa4f5813b0d2a14bb4bbfa65a4ec293aa1c825016d60029ee0e132b046 + commonmarker (2.9.0-x86_64-linux) sha256=8cfe92970eef585a19ddf6613224b91cab64d6029834661bda801f877c9c7f43 + commonmarker (2.9.0-x86_64-linux-musl) sha256=293921398b839f79ceaf55010e061357e34f053822c3b003cd0be6686176335e + commonmarker-merge (7.1.0) concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 + dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -484,20 +783,28 @@ CHECKSUMS gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f + go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 + json-merge (7.1.0) kettle-dev (2.3.8) sha256=9d716ff21c660a730cb4e8d41e2e2f0630a28167a354b6e2924e242102aef72c + kettle-drift (1.0.6) sha256=46eda08fa4411d1f3c6682a95eef1c9df4e94611b3949f49d4c7b43c0ed356a3 + kettle-jem (7.1.0) kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f kettle-soup-cover (3.0.4) kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa + kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 + markdown-merge (7.1.0) + markly (0.16.0) sha256=6f70d79e385b1efc9e171f74c81628826259039fe6c778e03c3924c71dac5511 + markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-aarch64-linux-gnu) sha256=1269fb644a6de405057a53dd5c762b1209b43ca7424f839454d3dbc677c31a8f nokogiri (1.19.4-aarch64-linux-musl) sha256=35c65b9ce72b3bb03207bdbe7067915019dc18c1b9b59139684bd6690fdd01af @@ -511,15 +818,20 @@ CHECKSUMS parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 + parslet-toml-merge (7.1.0) + plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 + prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 + psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 + rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb @@ -554,15 +866,19 @@ CHECKSUMS rubocop-rspec_rails (2.32.0) sha256=4a0d641c72f6ebb957534f539d9d0a62c47abd8ce0d0aeee1ef4701e892a9100 rubocop-ruby3_2 (3.0.7) sha256=f53dd6d286fb05186214fc6ec116783e7f837030918e8931c05de773e98f8466 rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 + ruby-merge (7.1.0) ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 + rust-merge (7.1.0) + service_actor (3.9.4) sha256=e63b523630b9a7e62959b2a90113b08d2565b5de9c148557b281ef847c9539ce silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed + smorg-rb (7.1.0) sorbet-runtime (0.6.13347) sha256=54e7221d9f4b63f58aec79f3043752a9ba7810347c6ae0d903531591cc2d5f01 standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b @@ -577,6 +893,9 @@ CHECKSUMS timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.5) sha256=b852f924287ffb58a440856e862b056c8ad97e74b4b2526cee43e0771f40c25c + toml (0.3.0) sha256=0a91d0f76a9036e84e44f95693b12f58d358c1df3ac8e3b5271f2056ecc6e4b9 + toml-merge (7.1.0) + toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-aarch64-linux) sha256=55ffc7c87868cb45658338363d9eba51b4a8b0259aa88e4de368d2bd1d52fea4 tree_sitter_language_pack (1.13.3-arm64-darwin) sha256=bc2498db605f212a1dbd2465ed3f65190d7da786f6ed5d30fcf958121aeb4a5c @@ -589,6 +908,7 @@ CHECKSUMS version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 webrick (1.9.2) sha256=beb4a15fc474defed24a3bda4ffd88a490d517c9e4e6118c3edce59e45864131 yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 + yaml-merge (7.1.0) yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd @@ -596,6 +916,7 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 + zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH diff --git a/gems/zip-merge/.kettle-drift.lock b/gems/zip-merge/.kettle-drift.lock index d28e306b0..bf85fa76f 100644 --- a/gems/zip-merge/.kettle-drift.lock +++ b/gems/zip-merge/.kettle-drift.lock @@ -52,14 +52,5 @@ 87 ] } - ], - "vendored_gems_env: 'VENDORED_GEMS',\nvendor_gem_dir_env: 'VENDOR_GEM_DIR',": [ - { - "file": "gemfiles/modular/templating_local.gemfile", - "lines": [ - 55, - 66 - ] - } ] } diff --git a/gems/zip-merge/.rubocop_gradual.lock b/gems/zip-merge/.rubocop_gradual.lock deleted file mode 100644 index 8dd3b1d8e..000000000 --- a/gems/zip-merge/.rubocop_gradual.lock +++ /dev/null @@ -1,129 +0,0 @@ -{ - ".simplecov:1682986702": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "Rakefile:1364122509": [ - [18, 121, 17, "Layout/LineLength: Line is too long. [137/120]", 174264873], - [79, 3, 1023, "Metrics/BlockLength: Block has too many lines. [32/25]", 54868638], - [163, 121, 22, "Layout/LineLength: Line is too long. [142/120]", 1367093088], - [166, 121, 18, "Layout/LineLength: Line is too long. [138/120]", 3881946477] - ], - "gemfiles/modular/benchmark/r4/v0.5.gemfile:3644720371": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/benchmark/vHEAD.gemfile:2838879269": [ - [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/erb/r2/v3.0.gemfile:1688285565": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] - ], - "gemfiles/modular/erb/r3/v5.0.gemfile:2150258305": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] - ], - "gemfiles/modular/erb/r4/v5.0.gemfile:2150258305": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] - ], - "gemfiles/modular/erb/vHEAD.gemfile:981929959": [ - [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/mutex_m/r2/v0.3.gemfile:4055275004": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/mutex_m/r3/v0.3.gemfile:4055275004": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/mutex_m/r4/v0.3.gemfile:4055275004": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/mutex_m/vHEAD.gemfile:556854763": [ - [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/rspec.gemfile:2263543889": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] - ], - "gemfiles/modular/stringio/r2/v3.0.gemfile:821604304": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/stringio/r3/v3.0.gemfile:821604304": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/stringio/r4/v3.0.gemfile:821604304": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/stringio/vHEAD.gemfile:1045839691": [ - [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/x_std_libs.gemfile:2324400122": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/x_std_libs/r2/libs.gemfile:36276542": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] - ], - "gemfiles/modular/x_std_libs/r3/libs.gemfile:4030570297": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] - ], - "gemfiles/modular/x_std_libs/r4/libs.gemfile:909736663": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] - ], - "gemfiles/modular/x_std_libs/vHEAD.gemfile:907917303": [ - [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] - ], - "lib/zip-merge.rb:3510371846": [ - [1, 1, 0, "Naming/FileName: The name of this source file (`zip-merge.rb`) should use snake_case.", 5381] - ], - "lib/zip/merge.rb:773090067": [ - [11, 3, 12, "Style/Documentation: Missing top-level documentation comment for `module Zip::Merge`.", 2866359175], - [11, 3, 18193, "Metrics/ModuleLength: Module has too many lines. [338/100]", 1666420073], - [28, 5, 1463, "Metrics/AbcSize: Assignment Branch Condition size for `parse_zip_inventory` is too high. [<8, 35, 2> 35.96/17]", 1470455386], - [28, 5, 1463, "Metrics/MethodLength: Method has too many lines. [27/10]", 1470455386], - [41, 25, 1, "Style/FormatString: Favor `format` over `String#%`.", 177536], - [47, 7, 11, "Style/MultilineBlockChain: Avoid multi-line chains of blocks.", 848344986], - [59, 5, 3358, "Metrics/AbcSize: Assignment Branch Condition size for `plan_zip_merge` is too high. [<12, 89, 15> 91.05/17]", 1545495603], - [59, 5, 3358, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `plan_zip_merge` is too high. [15/7]", 1545495603], - [59, 5, 3358, "Metrics/MethodLength: Method has too many lines. [48/10]", 1545495603], - [59, 5, 3358, "Metrics/PerceivedComplexity: Perceived complexity for `plan_zip_merge` is too high. [16/8]", 1545495603], - [72, 7, 2478, "Metrics/BlockLength: Block has too many lines. [30/25]", 3037686419], - [88, 121, 15, "Layout/LineLength: Line is too long. [135/120]", 1802769934], - [92, 121, 89, "Layout/LineLength: Line is too long. [209/120]", 1718709417], - [111, 5, 2286, "Metrics/AbcSize: Assignment Branch Condition size for `render_with_raw_preservation` is too high. [<23, 62, 10> 66.88/17]", 4162575274], - [111, 5, 2286, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `render_with_raw_preservation` is too high. [10/7]", 4162575274], - [111, 5, 2286, "Metrics/MethodLength: Method has too many lines. [47/10]", 4162575274], - [162, 5, 490, "Metrics/AbcSize: Assignment Branch Condition size for `new_stored_zip` is too high. [<7, 22, 2> 23.17/17]", 2289929314], - [162, 5, 490, "Metrics/MethodLength: Method has too many lines. [11/10]", 2289929314], - [178, 121, 23, "Layout/LineLength: Line is too long. [143/120]", 1623633543], - [181, 5, 1746, "Metrics/AbcSize: Assignment Branch Condition size for `scan_central_directory` is too high. [<13, 60, 9> 62.05/17]", 646715520], - [181, 5, 1746, "Metrics/MethodLength: Method has too many lines. [29/10]", 646715520], - [226, 5, 1740, "Metrics/AbcSize: Assignment Branch Condition size for `validate_raw_preserve_entry!` is too high. [<2, 47, 6> 47.42/17]", 4239026091], - [226, 5, 1740, "Metrics/MethodLength: Method has too many lines. [27/10]", 4239026091], - [245, 121, 19, "Layout/LineLength: Line is too long. [139/120]", 1538139918], - [249, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2087810907], - [256, 121, 5, "Layout/LineLength: Line is too long. [125/120]", 183183375], - [259, 5, 1446, "Metrics/AbcSize: Assignment Branch Condition size for `unsafe_entries` is too high. [<4, 34, 7> 34.94/17]", 1454765726], - [259, 5, 1446, "Metrics/MethodLength: Method has too many lines. [22/10]", 1454765726], - [269, 121, 25, "Layout/LineLength: Line is too long. [145/120]", 1103610753], - [273, 121, 28, "Layout/LineLength: Line is too long. [148/120]", 29120578], - [277, 121, 25, "Layout/LineLength: Line is too long. [145/120]", 703851376], - [291, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1177002089], - [297, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5862612], - [298, 121, 23, "Layout/LineLength: Line is too long. [143/120]", 739051872], - [305, 5, 453, "Metrics/AbcSize: Assignment Branch Condition size for `raw_local_record_ranges` is too high. [<5, 16, 5> 17.49/17]", 1660364055], - [321, 121, 299, "Layout/LineLength: Line is too long. [419/120]", 1241637532], - [321, 179, 1, "Style/FormatString: Favor `format` over `String#%`.", 177536], - [363, 121, 98, "Layout/LineLength: Line is too long. [218/120]", 302415094] - ], - "spec/fixtures_integration_spec.rb:2046677951": [ - [3, 1, 2065, "Metrics/BlockLength: Block has too many lines. [36/25]", 3161335752] - ], - "zip-merge.gemspec:2138858743": [ - [16, 121, 17, "Layout/LineLength: Line is too long. [137/120]", 3441493590], - [127, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 2821357214], - [142, 121, 50, "Layout/LineLength: Line is too long. [170/120]", 3888612416], - [143, 121, 29, "Layout/LineLength: Line is too long. [149/120]", 981994949], - [150, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 4229808912] - ] -} diff --git a/gems/zip-merge/Gemfile.lock b/gems/zip-merge/Gemfile.lock index 5dbd033d4..c64d45a1b 100644 --- a/gems/zip-merge/Gemfile.lock +++ b/gems/zip-merge/Gemfile.lock @@ -5,241 +5,6 @@ PATH tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly - specs: - ast-crispr-markdown-markly (7.1.0) - ast-crispr (= 7.1.0) - markly-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism - specs: - ast-crispr-ruby-prism (7.1.0) - ast-crispr (= 7.1.0) - prism-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr - specs: - ast-crispr (7.1.0) - ast-merge (= 7.1.0) - service_actor (~> 3.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git - specs: - ast-merge-git (7.1.0) - ast-merge (= 7.1.0) - json-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge - specs: - ast-merge (7.1.0) - benchmark - token-resolver (~> 2.0, >= 2.0.4) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template - specs: - ast-template (7.1.0) - ast-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge - specs: - bash-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge - specs: - binary-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge - specs: - citrus-toml-merge (7.1.0) - toml-merge (= 7.1.0) - toml-rb (~> 4.1) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge - specs: - commonmarker-merge (7.1.0) - commonmarker (~> 2.2) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge - specs: - dotenv-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge - specs: - go-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge - specs: - json-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem - specs: - kettle-jem (7.1.0) - addressable (>= 2.8, < 3) - ast-crispr-markdown-markly (= 7.1.0) - ast-crispr-ruby-prism (= 7.1.0) - ast-merge (= 7.1.0) - bash-merge (= 7.1.0) - citrus-toml-merge (= 7.1.0) - commonmarker-merge (= 7.1.0) - dotenv-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-dev (~> 2.3, >= 2.3.5) - kettle-rb (~> 0.1, >= 0.1.4) - kramdown-merge (= 7.1.0) - markdown-merge (= 7.1.0) - markly-merge (= 7.1.0) - prism-merge (= 7.1.0) - psych-merge (= 7.1.0) - rbs (>= 3.10) - rbs-merge (= 7.1.0) - ruby-merge (= 7.1.0) - token-resolver (~> 2.0, >= 2.0.4) - toml-merge (= 7.1.0) - toml-rb (~> 4.2) - tree_haver (= 7.1.0) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge - specs: - kramdown-merge (7.1.0) - kramdown (~> 2.5) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge - specs: - markdown-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge - specs: - markly-merge (7.1.0) - markdown-merge (= 7.1.0) - markly (~> 0.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge - specs: - parslet-toml-merge (7.1.0) - toml (~> 0.3) - toml-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge - specs: - plain-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge - specs: - prism-merge (7.1.0) - prism (~> 1.6) - ruby-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge - specs: - psych-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge - specs: - rbs-merge (7.1.0) - ast-merge (= 7.1.0) - rbs (>= 3.10) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge - specs: - ruby-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge - specs: - rust-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb - specs: - smorg-rb (7.1.0) - ast-merge (= 7.1.0) - ast-merge-git (= 7.1.0) - go-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-jem (= 7.1.0) - markly-merge (= 7.1.0) - plain-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge - specs: - toml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - PATH remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver specs: @@ -249,22 +14,6 @@ PATH tree_sitter_language_pack (>= 1.13.2, < 2.0) version_gem (~> 1.1, >= 1.1.9) -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge - specs: - typescript-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge - specs: - yaml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - GEM remote: https://gem.coop/ specs: @@ -275,6 +24,10 @@ GEM bundler (>= 1.17.3) rake (>= 10) thor (>= 0.14) + appraisal2-rubocop (1.0.0) + appraisal2 (>= 3.1.4) + rubocop (>= 1.0) + version_gem (~> 1.1, >= 1.1.14) ast (2.4.3) backports (3.25.3) benchmark (0.5.0) @@ -282,14 +35,9 @@ GEM bundler-audit (0.9.3) bundler (>= 1.2.0) thor (~> 1.0) + cgi (0.5.2) citrus (3.0.2) cmdparse (3.0.7) - commonmarker (2.9.0-aarch64-linux) - commonmarker (2.9.0-aarch64-linux-musl) - commonmarker (2.9.0-arm64-darwin) - commonmarker (2.9.0-x86_64-darwin) - commonmarker (2.9.0-x86_64-linux) - commonmarker (2.9.0-x86_64-linux-musl) concurrent-ruby (1.3.7) date (3.5.1) debug (1.11.1) @@ -298,7 +46,6 @@ GEM delegate (0.6.1) diff-lcs (1.6.2) diffy (3.4.4) - docile (1.4.1) dry-configurable (1.4.0) dry-core (~> 1.0) zeitwerk (~> 2.6) @@ -329,7 +76,7 @@ GEM dry-logic (~> 1.4) zeitwerk (~> 2.6) emoji_regex (15.0.0) - erb (6.0.5) + erb (6.0.6) gem_bench (2.0.5) bundler (>= 1.14) version_gem (~> 1.1, >= 1.1.4) @@ -353,18 +100,14 @@ GEM kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) - kettle-drift (1.0.6) - version_gem (~> 1.1, >= 1.1.14) kettle-rb (0.1.4) - kettle-soup-cover (1.1.3) - simplecov (~> 0.22) - simplecov-cobertura (~> 3.0) - simplecov-console (~> 0.9, >= 0.9.3) - simplecov-html (~> 0.13, >= 0.13.1) - simplecov-lcov (~> 0.8) + kettle-soup-cover (3.0.4) + kettle-wash (~> 0.1, >= 0.1.0) + simplecov (>= 1.0) + simplecov-cobertura (>= 4.0) + simplecov-console (~> 0.9, >= 0.9.5) simplecov-rcov (~> 0.3, >= 0.3.7) - simplecov_json_formatter (~> 0.1, >= 0.1.4) - version_gem (~> 1.1, >= 1.1.9) + simplecov_lcov_formatter (~> 0.9, >= 0.9.0) kettle-test (2.0.11) appraisal2 (~> 3.0, >= 3.0.6) backports (~> 3.0) @@ -376,6 +119,8 @@ GEM silent_stream (~> 1.0, >= 1.0.12) timecop-rspec (~> 1.0, >= 1.0.3) turbo_tests2 (~> 3.1, >= 3.1.12) + kettle-wash (0.1.1) + version_gem (~> 1.1, >= 1.1.14) kramdown (2.5.2) rexml (>= 3.4.4) kramdown-parser-gfm (1.1.0) @@ -383,7 +128,6 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) - markly (0.16.0) mutex_m (0.3.0) nokogiri (1.19.4-aarch64-linux-gnu) racc (~> 1.4) @@ -391,13 +135,11 @@ GEM racc (~> 1.4) nokogiri (1.19.4-arm64-darwin) racc (~> 1.4) - nokogiri (1.19.4-x86_64-darwin) - racc (~> 1.4) nokogiri (1.19.4-x86_64-linux-gnu) racc (~> 1.4) nokogiri (1.19.4-x86_64-linux-musl) racc (~> 1.4) - nomono (1.0.8) + nomono (1.0.9) openssl (4.0.2) ostruct (0.6.3) parallel (1.28.0) @@ -473,6 +215,14 @@ GEM rubocop-ast (1.50.0) parser (>= 3.3.7.2) prism (~> 1.7) + rubocop-capybara (2.23.0) + lint_roller (~> 1.1) + rubocop (~> 1.81) + rubocop-env (0.1.0) + rubocop + rubocop-factory_bot (2.28.0) + lint_roller (~> 1.1) + rubocop (~> 1.72, >= 1.72.1) rubocop-gradual (0.4.0) benchmark diff-lcs (>= 1.2.0, < 2.0) @@ -480,13 +230,26 @@ GEM parallel (~> 1.10) rainbow (>= 2.2.2, < 4.0) rubocop (~> 1.0) - rubocop-lts (24.1.0) - rubocop-ruby3_2 (>= 3.0.0, < 4) - standard-rubocop-lts (>= 2.0.2, < 3) - version_gem (>= 1.1.2, < 3) + rubocop-lts (24.2.2) + rubocop-ruby3_2 (~> 3.0, >= 3.0.1) + standard-rubocop-lts (~> 2.0, >= 2.0.3) + version_gem (~> 1.1, >= 1.1.13) + rubocop-lts-rspec (1.0.5) + rubocop (~> 1.84, >= 1.84.2) + rubocop-env (~> 0.1, >= 0.1.0) + rubocop-factory_bot (~> 2.28, >= 2.28.0) + rubocop-rspec (~> 3.9, >= 3.9.0) + rubocop-rspec-extra (~> 0.3, >= 0.3.0) + standard (~> 1.54, >= 1.54.0) + standard-rspec (~> 0.5, >= 0.5.0) + version_gem (~> 1.1, >= 1.1.13) rubocop-md (2.0.4) lint_roller (~> 1.1) rubocop (>= 1.72.1) + rubocop-minitest (0.40.0) + lint_roller (~> 1.1) + rubocop (>= 1.75.0, < 2.0) + rubocop-ast (>= 1.38.0, < 2.0) rubocop-on-rbs (2.0.0) lint_roller (~> 1.1) rbs (~> 4.0) @@ -506,6 +269,13 @@ GEM lint_roller (~> 1.1) regexp_parser (>= 2.0) rubocop (~> 1.86, >= 1.86.2) + rubocop-rspec-extra (0.3.0) + lint_roller (~> 1.1) + rubocop (>= 1.72.1, < 2.0) + rubocop-rspec_rails (2.32.0) + lint_roller (~> 1.1) + rubocop (~> 1.72, >= 1.72.1) + rubocop-rspec (~> 3.5) rubocop-ruby3_2 (3.0.7) rubocop-gradual (~> 0.3, >= 0.3.6) rubocop-md (~> 2.0, >= 2.0.4) @@ -520,27 +290,21 @@ GEM ruby-progressbar (1.13.0) ruby_engine (2.0.3) ruby_version (1.0.3) - service_actor (3.9.4) - zeitwerk (>= 1.0) silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) - simplecov (0.22.0) - docile (~> 1.1) - simplecov-html (~> 0.11) - simplecov_json_formatter (~> 0.1) - simplecov-cobertura (3.2.0) + simplecov (1.0.2) + simplecov-cobertura (4.0.0) rexml - simplecov (~> 0.19) + simplecov (~> 1.0) simplecov-console (0.9.5) ansi simplecov terminal-table - simplecov-html (0.13.2) - simplecov-lcov (0.9.0) simplecov-rcov (0.3.7) simplecov (>= 0.4.1) - simplecov_json_formatter (0.1.4) + simplecov_lcov_formatter (0.9.0) + simplecov (>= 0.18) sorbet-runtime (0.6.13347) standard (1.56.0) language_server-protocol (~> 3.17.0.2) @@ -554,6 +318,12 @@ GEM standard-performance (1.9.0) lint_roller (~> 1.1) rubocop-performance (~> 1.26.0) + standard-rspec (0.5.0) + lint_roller (>= 1.0) + rubocop-capybara (~> 2.23) + rubocop-factory_bot (~> 2.27) + rubocop-rspec (~> 3.9) + rubocop-rspec_rails (~> 2.31) standard-rubocop-lts (2.0.10) standard (~> 1.54, >= 1.54.0) standard-custom (~> 1.0, >= 1.0.2) @@ -571,20 +341,10 @@ GEM delegate (~> 0.1) rspec (~> 3.0) timecop (>= 0.7, < 1) - token-resolver (2.0.5) - parslet (~> 2.0) - version_gem (~> 1.1, >= 1.1.14) - toml (0.3.0) - parslet (>= 1.8.0, < 3.0.0) - toml-rb (4.2.0) - citrus (~> 3.0, > 3.0) - racc (~> 1.7) tree_sitter_language_pack (1.13.3-aarch64-linux) sorbet-runtime (~> 0.5) tree_sitter_language_pack (1.13.3-arm64-darwin) sorbet-runtime (~> 0.5) - tree_sitter_language_pack (1.13.3-x86_64-darwin) - sorbet-runtime (~> 0.5) tree_sitter_language_pack (1.13.3-x86_64-linux) sorbet-runtime (~> 0.5) tsort (0.2.0) @@ -596,6 +356,7 @@ GEM unicode-emoji (~> 4.1) unicode-emoji (4.2.0) version_gem (1.1.14) + webrick (1.9.2) yaml-converter (0.2.3) hexapdf (>= 1.8, < 2) kramdown (>= 2.4, < 3) @@ -626,116 +387,76 @@ PLATFORMS aarch64-linux-gnu aarch64-linux-musl arm64-darwin - x86_64-darwin + x86_64-linux x86_64-linux-gnu x86_64-linux-musl DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) - ast-crispr! - ast-crispr-markdown-markly! - ast-crispr-ruby-prism! - ast-merge! - ast-merge-git! - ast-template! - bash-merge! + appraisal2-rubocop (~> 1.0, >= 1.0.0) benchmark (~> 0.5, >= 0.5.0) - binary-merge! bundler-audit (~> 0.9.3) - citrus-toml-merge! - commonmarker-merge! + cgi (~> 0.5) debug (>= 1.1) - dotenv-merge! - erb (~> 6.0, >= 6.0.4) + erb (~> 6.0, >= 6.0.6) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.0) - go-merge! irb (~> 1.17) - json-merge! kettle-dev (~> 2.0, >= 2.2.25) - kettle-drift (~> 1.0, >= 1.0.5) - kettle-jem! - kettle-soup-cover (~> 1.0, >= 1.1.3) + kettle-soup-cover (~> 3.0, >= 3.0.3) kettle-test (~> 2.0, >= 2.0.9) - kramdown (~> 2.5, >= 2.5.1) - kramdown-merge! + kramdown (~> 2.5, >= 2.5.2) kramdown-parser-gfm (~> 1.1) - markdown-merge! - markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) - parslet-toml-merge! - plain-merge! - prism-merge! - psych-merge! rake (~> 13.0) rbs (>= 3.0) - rbs-merge! rdoc (~> 6.11) - reek (~> 6.5) + reek (~> 6.5, >= 6.5.0) require_bench (~> 1.0, >= 1.0.4) - rubocop-lts (~> 24.1.0) - rubocop-on-rbs (~> 2.0) + rubocop-gradual (~> 0.4, >= 0.4.0) + rubocop-lts (~> 24.2, >= 24.2.1) + rubocop-lts-rspec (~> 1.0, >= 1.0.5) + rubocop-minitest (~> 0.40, >= 0.40.0) + rubocop-on-rbs (~> 2.0, >= 2.0.0) rubocop-packaging (~> 0.6, >= 0.6.0) - rubocop-rspec (~> 3.6) - rubocop-ruby3_2 (~> 3.0.0) - ruby-merge! + rubocop-ruby3_2 (~> 3.0, >= 3.0.6) ruby-progressbar (~> 1.13) - rust-merge! - smorg-rb! - standard (>= 1.50) + standard (~> 1.56, >= 1.56.0) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) - toml-merge! tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) - typescript-merge! - yaml-converter (~> 0.1) - yaml-merge! - yard (~> 0.9, >= 0.9.44) - yard-fence (~> 0.9, >= 0.9.1) + webrick (~> 1.9) + yaml-converter (~> 0.2, >= 0.2.3) + yard (~> 0.9, >= 0.9.45) + yard-fence (~> 0.9, >= 0.9.6) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) - yard-timekeeper (~> 0.1) - yard-yaml (~> 0.1, >= 0.1.2) + yard-timekeeper (~> 0.2, >= 0.2.4) + yard-yaml (~> 0.2, >= 0.2.3) zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af ansi (1.6.0) sha256=ac9ea0c0ea8d32fb4e271348e609963ac78882f34b73836c2a02b3622e666658 appraisal2 (3.2.0) sha256=ccd0b767ac4060cd7af6d16747459b6990f49c39c7b4fb1f7d1146b1e97c492f + appraisal2-rubocop (1.0.0) sha256=b71410fbb014befda5340605a605b7f6f3f012739baf0acc5b4351b592c3258d ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 - ast-crispr (7.1.0) - ast-crispr-markdown-markly (7.1.0) - ast-crispr-ruby-prism (7.1.0) - ast-merge (7.1.0) - ast-merge-git (7.1.0) - ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 - bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd - binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 + cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 - citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 - commonmarker (2.9.0-aarch64-linux) sha256=e2b4aadb9a2cfa4e206582641ce3a49465549ac1ed4c289fdd63b78d8f24579c - commonmarker (2.9.0-aarch64-linux-musl) sha256=1cf4d2821f2a7e64945f1ed7c4eeced586fdb27ea7fe7337788802cf8f57cfca - commonmarker (2.9.0-arm64-darwin) sha256=1748dbfa4f5813b0d2a14bb4bbfa65a4ec293aa1c825016d60029ee0e132b046 - commonmarker (2.9.0-x86_64-darwin) sha256=0a9914ccfd2f5d2a59c7bd0dda4fe90eb084cf513b477e499008e09ec9d6edd6 - commonmarker (2.9.0-x86_64-linux) sha256=8cfe92970eef585a19ddf6613224b91cab64d6029834661bda801f877c9c7f43 - commonmarker (2.9.0-x86_64-linux-musl) sha256=293921398b839f79ceaf55010e061357e34f053822c3b003cd0be6686176335e - commonmarker-merge (7.1.0) concurrent-ruby (1.3.7) sha256=4412caec3a5ea2e5fdc52076724c071a81f2c0593d83b2ac8cbb8ca63b3151b0 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 - docile (1.4.1) sha256=96159be799bfa73cdb721b840e9802126e4e03dfc26863db73647204c727f21e - dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -744,59 +465,46 @@ CHECKSUMS dry-schema (1.16.0) sha256=cd3aaeabc0f1af66ec82a29096d4c4fb92a0a58b9dae29a22b1bbceb78985727 dry-types (1.9.1) sha256=baebeecdb9f8395d6c9d227b62011279440943e3ef2468fe8ccc1ba11467f178 emoji_regex (15.0.0) sha256=a508b2c0bee561169564e0aec96085020c900520d335e5533fd8e78e59493829 - erb (6.0.5) sha256=858e63488cb796c9daba8b6e9ff4b3879c395022049be9a66a8e00980e612eac + erb (6.0.6) sha256=a9b24986700f5bf127c4f297c5403c3ca41b83b0a316c0cd09a096b56e644ae5 gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f - go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 - json-merge (7.1.0) kettle-dev (2.3.7) sha256=eb370113cd030d03cbe2d33b31c99858951017e5ad21a17e9ed89dc3770028ee - kettle-drift (1.0.6) sha256=46eda08fa4411d1f3c6682a95eef1c9df4e94611b3949f49d4c7b43c0ed356a3 - kettle-jem (7.1.0) kettle-rb (0.1.4) sha256=9cef7ce4f7021666b7222292f29051e51eaf042e8a5db11f3f4dd72f74243fc1 - kettle-soup-cover (1.1.3) sha256=a373827da22a7131d093afd32945e5b7d7a10a01ebfdded8fd2cb8230d69c8ad + kettle-soup-cover (3.0.4) kettle-test (2.0.11) sha256=c710c90f7ab79d51f9452f0c09f5f90657e7a893f63583855c164d0b1b107ab2 + kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa - kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 - markdown-merge (7.1.0) - markly (0.16.0) sha256=6f70d79e385b1efc9e171f74c81628826259039fe6c778e03c3924c71dac5511 - markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-aarch64-linux-gnu) sha256=1269fb644a6de405057a53dd5c762b1209b43ca7424f839454d3dbc677c31a8f nokogiri (1.19.4-aarch64-linux-musl) sha256=35c65b9ce72b3bb03207bdbe7067915019dc18c1b9b59139684bd6690fdd01af nokogiri (1.19.4-arm64-darwin) sha256=a46db9853286e6597b36ebc6953817d15acf3a299583eb3f89fdc6f91dd63527 - nokogiri (1.19.4-x86_64-darwin) sha256=7fd17057d3e1f00e9954a74b3cd76595d3d4a5ef233b7ed9599047c204f70551 nokogiri (1.19.4-x86_64-linux-gnu) sha256=379fae440b28915e3f19d752ce2dcf8465ed2b2fbefd2a7ca0dd497bc981a06a nokogiri (1.19.4-x86_64-linux-musl) sha256=17dfb7c1fa194ae02fbf7c51a7afc8d278045ab3fdacfd86f91d02d7b274470b - nomono (1.0.8) sha256=bf4b9b426cbf216ab17b70db474f691b8ae1f1e29de8db4b0ecd405e6e7e1c80 + nomono (1.0.9) openssl (4.0.2) sha256=1037ad2868ae58df9ad917891c0c0f9815a1172f6846d4bcdd508e4c2ee747c2 ostruct (0.6.3) sha256=95a2ed4a4bd1d190784e666b47b2d3f078e4a9efda2fccf18f84ddc6538ed912 parallel (1.28.0) sha256=33e6de1484baf2524792d178b0913fc8eb94c628d6cfe45599ad4458c638c970 parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 - parslet-toml-merge (7.1.0) - plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 - prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 - psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 - rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb @@ -814,35 +522,37 @@ CHECKSUMS rspec_junit_formatter (0.6.0) sha256=40dde674e6ae4e6cc0ff560da25497677e34fefd2338cc467a8972f602b62b15 rubocop (1.88.2) sha256=8def251c90cd955feb4daa3edc0ab56893250c4ce90ef81e6c80c03f9a939bbf rubocop-ast (1.50.0) sha256=b9ca88300da0803ee222ad20cdb30494c0a784eed06fdc35d254b06d662788db + rubocop-capybara (2.23.0) sha256=f9ea1ba3a7561ee8e88cf76fc378ce517ce5327155f305ee7b5c2500e5aee357 + rubocop-env (0.1.0) sha256=5ab9a259e71822bf514c8e900a9b68cc2f74ccc87d5493efcd03213f3068e718 + rubocop-factory_bot (2.28.0) sha256=4b17fc02124444173317e131759d195b0d762844a71a29fe8139c1105d92f0cb rubocop-gradual (0.4.0) sha256=9c7e584e6fef6c2539266a193a4572c970c22f99046fd6b0305bdde6228f96ad - rubocop-lts (24.1.0) sha256=9dcad4db2da2fe2f1f77f98c917d70e7c43eded703da14cd201d4be52a9272aa + rubocop-lts (24.2.2) sha256=be6c745e1bb61daebd6af3cc3227c60f95be9f642a080773cad7df14c5f9f174 + rubocop-lts-rspec (1.0.5) sha256=439552fd27440802cc499889e013bffa28aadc41adae5d4dfff3d984a2a809b4 rubocop-md (2.0.4) sha256=0d076b6b5e99dea2ddc928c4bd702497decb9a8400da7808091e02ebcafcfb93 + rubocop-minitest (0.40.0) sha256=353c698199115f12151144cf0b5a96f69bb9d77b660cf6536df2c4250c672a9d rubocop-on-rbs (2.0.0) sha256=ce74d1b3d5daead19f4b611623656c185821dfc9aed9c7079bb1e5d7d7c464be rubocop-packaging (0.6.0) sha256=fb92bd0fb48e6f8cdb1648d2249b0cd51c2497dcc87340132d22f01edbf558a7 rubocop-performance (1.26.1) sha256=cd19b936ff196df85829d264b522fd4f98b6c89ad271fa52744a8c11b8f71834 rubocop-rake (0.7.1) sha256=3797f2b6810c3e9df7376c26d5f44f3475eda59eb1adc38e6f62ecf027cbae4d rubocop-rspec (3.10.2) sha256=0b3e2ecc592cd10ecbf0095bb58d1e357905276e069643523cc19eb7495f65e2 + rubocop-rspec-extra (0.3.0) sha256=ee4b6484d0332a0d23c4a465eeb607e41888eb3d4ed479f850b9f5212514f787 + rubocop-rspec_rails (2.32.0) sha256=4a0d641c72f6ebb957534f539d9d0a62c47abd8ce0d0aeee1ef4701e892a9100 rubocop-ruby3_2 (3.0.7) sha256=f53dd6d286fb05186214fc6ec116783e7f837030918e8931c05de773e98f8466 rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 - ruby-merge (7.1.0) ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 - rust-merge (7.1.0) - service_actor (3.9.4) sha256=e63b523630b9a7e62959b2a90113b08d2565b5de9c148557b281ef847c9539ce silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 - simplecov (0.22.0) sha256=fe2622c7834ff23b98066bb0a854284b2729a569ac659f82621fc22ef36213a5 - simplecov-cobertura (3.2.0) sha256=70d702658677fcb20e5aceb6915ccf8bc62ff2ccd38b62b3ad5c9db5c0888740 + simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 + simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 - simplecov-html (0.13.2) sha256=bd0b8e54e7c2d7685927e8d6286466359b6f16b18cb0df47b508e8d73c777246 - simplecov-lcov (0.9.0) sha256=7a77a31e200a595ed4b0249493056efd0c920601f53d2ef135ca34ee796346cd simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc - simplecov_json_formatter (0.1.4) sha256=529418fbe8de1713ac2b2d612aa3daa56d316975d307244399fa4838c601b428 - smorg-rb (7.1.0) + simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed sorbet-runtime (0.6.13347) sha256=54e7221d9f4b63f58aec79f3043752a9ba7810347c6ae0d903531591cc2d5f01 standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b standard-performance (1.9.0) sha256=49483d31be448292951d80e5e67cdcb576c2502103c7b40aec6f1b6e9c88e3f2 + standard-rspec (0.5.0) sha256=64d396524a65af47f5331b423d8cdd313e0267401647bb7892489ca89dad2973 standard-rubocop-lts (2.0.10) sha256=89708a505b7d8b24d2ac399a7520fcb9e764abc2ecb4289b631b5fe0e3b76617 stone_checksums (1.0.6) sha256=c775f830513d6c6ab26e31d1a5fbecd4c4e39002663d4d9f8fa96e97990b5298 stringio (3.2.0) sha256=c37cb2e58b4ffbd33fe5cd948c05934af997b36e0b6ca6fdf43afa234cf222e1 @@ -851,23 +561,17 @@ CHECKSUMS thor (1.5.0) sha256=e3a9e55fe857e44859ce104a84675ab6e8cd59c650a49106a05f55f136425e73 timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 - token-resolver (2.0.5) sha256=b852f924287ffb58a440856e862b056c8ad97e74b4b2526cee43e0771f40c25c - toml (0.3.0) sha256=0a91d0f76a9036e84e44f95693b12f58d358c1df3ac8e3b5271f2056ecc6e4b9 - toml-merge (7.1.0) - toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-aarch64-linux) sha256=55ffc7c87868cb45658338363d9eba51b4a8b0259aa88e4de368d2bd1d52fea4 tree_sitter_language_pack (1.13.3-arm64-darwin) sha256=bc2498db605f212a1dbd2465ed3f65190d7da786f6ed5d30fcf958121aeb4a5c - tree_sitter_language_pack (1.13.3-x86_64-darwin) sha256=061f7da6e1cc4ba936fad436ee0653d7dfdfa4aa879cf555403e3aa373d43966 tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 - typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 + webrick (1.9.2) sha256=beb4a15fc474defed24a3bda4ffd88a490d517c9e4e6118c3edce59e45864131 yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 - yaml-merge (7.1.0) yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd diff --git a/gems/zip-merge/README.md b/gems/zip-merge/README.md index 4160921b9..9ad34ea2d 100644 --- a/gems/zip-merge/README.md +++ b/gems/zip-merge/README.md @@ -36,7 +36,7 @@ I've summarized my thoughts in [this blog post](https://dev.to/galtzo/hostile-ta | Tokens to Remember | [![Gem name][⛳️name-img]][⛳️gem-name] [![Gem namespace][⛳️namespace-img]][⛳️gem-namespace] | |-------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | Works with MRI Ruby 4 | [![Ruby current Compat][💎ruby-c-i]][🚎11-c-wf]| -| Support & Community | [![Join Me on Daily.dev's RubyFriends][✉️ruby-friends-img]][✉️ruby-friends] [![Live Chat on Discord][✉️discord-invite-img-ftb]][✉️discord-invite] [![Get help from me on Upwork][👨🏼‍🏫expsup-upwork-img]][👨🏼‍🏫expsup-upwork] [![Get help from me on Codementor][👨🏼‍🏫expsup-codementor-img]][👨🏼‍🏫expsup-codementor] | +| Support & Community | [![Join Me on Daily.dev's RubyFriends][✉️ruby-friends-img]][✉️ruby-friends] [![Get help from RubyForum][✉️ruby-forum-img]][✉️ruby-forum] [![Live Chat on Discord][✉️discord-invite-img-ftb]][✉️discord-invite] [![Get help from me on Upwork][👨🏼‍🏫expsup-upwork-img]][👨🏼‍🏫expsup-upwork] [![Get help from me on Codementor][👨🏼‍🏫expsup-codementor-img]][👨🏼‍🏫expsup-codementor] | | Source | [![Source on GitLab.com][📜src-gl-img]][📜src-gl] [![Source on CodeBerg.org][📜src-cb-img]][📜src-cb] [![Source on Github.com][📜src-gh-img]][📜src-gh] [![The best SHA: dQw4w9WgXcQ!][🧮kloc-img]][🧮kloc] | | Documentation | [![Current release on RubyDoc.info][📜docs-cr-rd-img]][🚎yard-current] [![YARD on Galtzo.com][📜docs-head-rd-img]][🚎yard-head] [![Maintainer Blog][🚂maint-blog-img]][🚂maint-blog] [![GitLab Wiki][📜gl-wiki-img]][📜gl-wiki] [![GitHub Wiki][📜gh-wiki-img]][📜gh-wiki] | | Compliance | [![License: AGPL-3.0-only OR PolyForm-Small-Business-1.0.0][📄license-img]][📄license] [![Apache license compatibility: Category X][📄license-compat-img]][📄license-compat] [![📄ilo-declaration-img]][📄ilo-declaration] [![Security Policy][🔐security-img]][🔐security] [![Contributor Covenant 2.1][🪇conduct-img]][🪇conduct] [![SemVer 2.0.0][📌semver-img]][📌semver] | @@ -182,6 +182,8 @@ If none of the available licenses suit your use case, please [contact us](mailto [✉️discord-invite-img-ftb]: https://img.shields.io/discord/1373797679469170758?style=for-the-badge&logo=discord [✉️ruby-friends-img]: https://img.shields.io/badge/daily.dev-%F0%9F%92%8E_Ruby_Friends-0A0A0A?style=for-the-badge&logo=dailydotdev&logoColor=white [✉️ruby-friends]: https://app.daily.dev/squads/rubyfriends +[✉️ruby-forum-img]: https://img.shields.io/badge/RubyForum-Help-CC342D?style=for-the-badge&logo=ruby&logoColor=white +[✉️ruby-forum]: https://www.rubyforum.org/c/help/8 [✇bundle-group-pattern]: https://gist.github.com/pboling/4564780 [⛳️gem-namespace]: https://github.com/structuredmerge/structuredmerge-ruby/tree/main/gems/zip-merge [⛳️namespace-img]: https://img.shields.io/badge/namespace-Zip::Merge-3C2D2D.svg?style=square&logo=ruby&logoColor=white diff --git a/gems/zip-merge/bin/yard b/gems/zip-merge/bin/yard index 5d516ad6f..a7e8b6eed 100755 --- a/gems/zip-merge/bin/yard +++ b/gems/zip-merge/bin/yard @@ -12,4 +12,4 @@ # `yard` / `bin/yard`. Keep this binstub as a handoff to the task so # humans and tools that reach for `bin/yard` still run the full docs # workflow with post-processing hooks. -exec('bundle', 'exec', 'rake', 'yard') +exec("bundle", "exec", "rake", "yard") diff --git a/gems/zip-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile b/gems/zip-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile index b8392fab0..dec650815 100644 --- a/gems/zip-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile +++ b/gems/zip-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.1 -gem 'benchmark', '~> 0.5', '>= 0.5.0' # Removed from Std Lib in Ruby 4.0 +gem "benchmark", "~> 0.5", ">= 0.5.0" # Removed from Std Lib in Ruby 4.0 diff --git a/gems/zip-merge/gemfiles/modular/benchmark/vHEAD.gemfile b/gems/zip-merge/gemfiles/modular/benchmark/vHEAD.gemfile index af214aafa..e1eb20c5e 100644 --- a/gems/zip-merge/gemfiles/modular/benchmark/vHEAD.gemfile +++ b/gems/zip-merge/gemfiles/modular/benchmark/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.1 -gem 'benchmark', github: 'ruby/benchmark', branch: 'master' +gem "benchmark", github: "ruby/benchmark", branch: "master" diff --git a/gems/zip-merge/gemfiles/modular/cgi/r4/v0.5.gemfile b/gems/zip-merge/gemfiles/modular/cgi/r4/v0.5.gemfile new file mode 100644 index 000000000..19ed967c3 --- /dev/null +++ b/gems/zip-merge/gemfiles/modular/cgi/r4/v0.5.gemfile @@ -0,0 +1 @@ +gem "cgi", "~> 0.5" diff --git a/gems/zip-merge/gemfiles/modular/cgi/vHEAD.gemfile b/gems/zip-merge/gemfiles/modular/cgi/vHEAD.gemfile new file mode 100644 index 000000000..ef8b816ce --- /dev/null +++ b/gems/zip-merge/gemfiles/modular/cgi/vHEAD.gemfile @@ -0,0 +1 @@ +gem "cgi", ">= 0.5" diff --git a/gems/zip-merge/gemfiles/modular/coverage.gemfile b/gems/zip-merge/gemfiles/modular/coverage.gemfile index f96d50954..52d737872 100644 --- a/gems/zip-merge/gemfiles/modular/coverage.gemfile +++ b/gems/zip-merge/gemfiles/modular/coverage.gemfile @@ -4,11 +4,11 @@ # Set KETTLE_DEV_DEV=true for local development with path-based dependencies. # When false (default / CI), remote released gems are used. -if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? +if ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false").zero? # Coverage (remote/released) platform :mri do - gem 'kettle-soup-cover', '~> 1.0', '>= 1.1.3', require: false + gem "kettle-soup-cover", "~> 3.0", ">= 3.0.3", require: false end else - eval_gemfile 'coverage_local.gemfile' + eval_gemfile "coverage_local.gemfile" end diff --git a/gems/zip-merge/gemfiles/modular/coverage_local.gemfile b/gems/zip-merge/gemfiles/modular/coverage_local.gemfile index abd7a28f8..7f013d351 100644 --- a/gems/zip-merge/gemfiles/modular/coverage_local.gemfile +++ b/gems/zip-merge/gemfiles/modular/coverage_local.gemfile @@ -3,31 +3,53 @@ # Local path overrides for development. # Loaded by the associated non-local gemfile when KETTLE_DEV_DEV != "false". -require 'nomono/bundler' unless defined?(Nomono) +# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. +# Bundler records that dependency during Gemfile evaluation, but it does not +# activate that exact version before the immediate `require "nomono/bundler"`. +# If multiple compatible nomono versions are installed, RubyGems may activate +# the newest installed version while Gemfile.lock pins an older compatible one; +# Bundler then aborts with "already activated nomono X, but your Gemfile +# requires nomono Y". Prefer the locked compatible version when present, then +# activate it explicitly before requiring the Bundler DSL extension used below. +nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] +nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) +if File.file?(nomono_lockfile) + nomono_locked_spec = Bundler::LockfileParser + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == "nomono" } + nomono_locked = nomono_locked_spec && + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + if nomono_locked + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] + end +end +Kernel.send(:gem, "nomono", *nomono_activation_requirements) +require "nomono/bundler" local_gems = %w[kettle-dev kettle-test kettle-soup-cover kettle-drift] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) local_gems_to_eval = local_gems - %w[zip-merge] - declared_gems -# export KETTLE_DEV_DEV=/path/to/kettle-rb +# export KETTLE_DEV_DEV=/path/to/my platform :mri do eval_nomono_gems( gems: local_gems_to_eval, - prefix: 'KETTLE_DEV', - path_env: 'KETTLE_DEV_DEV', - vendored_gems_env: 'VENDORED_GEMS', - vendor_gem_dir_env: 'VENDOR_GEM_DIR', - debug_env: 'KETTLE_DEV_DEBUG' + prefix: "KETTLE_DEV", + path_env: "KETTLE_DEV_DEV", + vendored_gems_env: "VENDORED_GEMS", + vendor_gem_dir_env: "VENDOR_GEM_DIR", + debug_env: "KETTLE_DEV_DEBUG" ) - if ENV.fetch('GALTZO_FLOSS_DEV', 'false').casecmp('false') != 0 + if ENV.fetch("GALTZO_FLOSS_DEV", "false").casecmp("false") != 0 eval_nomono_gems( gems: %w[turbo_tests2], - prefix: 'GALTZO_FLOSS', - path_env: 'GALTZO_FLOSS_DEV', - vendored_gems_env: 'GALTZO_FLOSS_VENDORED_GEMS', - vendor_gem_dir_env: 'GALTZO_FLOSS_VENDOR_GEM_DIR', - debug_env: 'GALTZO_FLOSS_DEBUG' + prefix: "GALTZO_FLOSS", + path_env: "GALTZO_FLOSS_DEV", + vendored_gems_env: "GALTZO_FLOSS_VENDORED_GEMS", + vendor_gem_dir_env: "GALTZO_FLOSS_VENDOR_GEM_DIR", + debug_env: "GALTZO_FLOSS_DEBUG" ) end end diff --git a/gems/zip-merge/gemfiles/modular/debug.gemfile b/gems/zip-merge/gemfiles/modular/debug.gemfile index eed8d4d1e..4e15b1a3a 100644 --- a/gems/zip-merge/gemfiles/modular/debug.gemfile +++ b/gems/zip-merge/gemfiles/modular/debug.gemfile @@ -13,10 +13,10 @@ platform :mri do # Debugging - Ensure ENV["DEBUG"] == "true" to use debuggers within spec suite # Use binding.break, binding.b, or debugger in code - gem 'debug', '>= 1.1' # ruby >= 2.7 + gem "debug", ">= 1.1" # ruby >= 2.7 # Dev Console - Binding.pry - Irb replacement # gem "pry", "~> 0.14" # ruby >= 2.0 end -gem 'gem_bench', '~> 2.0', '>= 2.0.5' +gem "gem_bench", "~> 2.0", ">= 2.0.5" diff --git a/gems/zip-merge/gemfiles/modular/documentation.gemfile b/gems/zip-merge/gemfiles/modular/documentation.gemfile index dff5cc108..d8215416e 100644 --- a/gems/zip-merge/gemfiles/modular/documentation.gemfile +++ b/gems/zip-merge/gemfiles/modular/documentation.gemfile @@ -7,20 +7,20 @@ # # Documentation -gem 'kramdown', '~> 2.5', '>= 2.5.1', require: false # Ruby >= 2.5 -gem 'kramdown-parser-gfm', '~> 1.1', require: false # Ruby >= 2.3 -gem 'yaml-converter', '~> 0.1', require: false # Ruby >= 3.2 -gem 'yard', '~> 0.9', '>= 0.9.44', require: false -gem 'yard-junk', '~> 0.1', '>= 0.1.0', require: false # Ruby >= 3.1 -gem 'yard-relative_markdown_links', '~> 0.6', require: false +gem "kramdown", "~> 2.5", ">= 2.5.2", require: false # Ruby >= 2.5 +gem "kramdown-parser-gfm", "~> 1.1", require: false # Ruby >= 2.3 +gem "yaml-converter", "~> 0.2", ">= 0.2.3", require: false # Ruby >= 3.2 +gem "yard", "~> 0.9", ">= 0.9.45", require: false +gem "yard-junk", "~> 0.1", ">= 0.1.0", require: false # Ruby >= 3.1 +gem "yard-relative_markdown_links", "~> 0.6", require: false -if ENV.fetch('GALTZO_FLOSS_DEV', 'false').casecmp('false').zero? - gem 'yard-fence', '~> 0.9', '>= 0.9.1', require: false # Ruby >= 3.2 - gem 'yard-timekeeper', '~> 0.1', require: false - gem 'yard-yaml', '~> 0.1', '>= 0.1.2', require: false +if ENV.fetch("GALTZO_FLOSS_DEV", "false").casecmp("false").zero? + gem "yard-fence", "~> 0.9", ">= 0.9.6", require: false # Ruby >= 3.2 + gem "yard-timekeeper", "~> 0.2", ">= 0.2.4", require: false + gem "yard-yaml", "~> 0.2", ">= 0.2.3", require: false else - eval_gemfile 'documentation_local.gemfile' + eval_gemfile "documentation_local.gemfile" end # Std Lib extractions -gem 'rdoc', '~> 6.11', require: false unless ENV.fetch('KJ_FRAMEWORK_MATRIX_GEM', '') == 'rdoc' +gem "rdoc", "~> 6.11", require: false unless ENV.fetch("KJ_FRAMEWORK_MATRIX_GEM", "") == "rdoc" diff --git a/gems/zip-merge/gemfiles/modular/documentation_local.gemfile b/gems/zip-merge/gemfiles/modular/documentation_local.gemfile index 4d4c2bd95..54b4d5d22 100644 --- a/gems/zip-merge/gemfiles/modular/documentation_local.gemfile +++ b/gems/zip-merge/gemfiles/modular/documentation_local.gemfile @@ -3,16 +3,40 @@ # Local path overrides for development. # Loaded by the associated non-local gemfile when GALTZO_FLOSS_DEV != "false". -require 'nomono/bundler' unless defined?(Nomono) +# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. +# Bundler records that dependency during Gemfile evaluation, but it does not +# activate that exact version before the immediate `require "nomono/bundler"`. +# If multiple compatible nomono versions are installed, RubyGems may activate +# the newest installed version while Gemfile.lock pins an older compatible one; +# Bundler then aborts with "already activated nomono X, but your Gemfile +# requires nomono Y". Prefer the locked compatible version when present, then +# activate it explicitly before requiring the Bundler DSL extension used below. +nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] +nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) +if File.file?(nomono_lockfile) + nomono_locked_spec = Bundler::LockfileParser + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == "nomono" } + nomono_locked = nomono_locked_spec && + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + if nomono_locked + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] + end +end +Kernel.send(:gem, "nomono", *nomono_activation_requirements) +require "nomono/bundler" local_gems = %w[yard-fence yard-timekeeper yard-yaml] +declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) +local_gems_to_eval = local_gems - %w[zip-merge] - declared_gems # export GALTZO_FLOSS_DEV=/path/to/galtzo-floss eval_nomono_gems( - gems: local_gems, - prefix: 'GALTZO_FLOSS', - path_env: 'GALTZO_FLOSS_DEV', - vendored_gems_env: 'GALTZO_FLOSS_VENDORED_GEMS', - vendor_gem_dir_env: 'GALTZO_FLOSS_VENDOR_GEM_DIR', - debug_env: 'GALTZO_FLOSS_DEBUG' + gems: local_gems_to_eval, + prefix: "GALTZO_FLOSS", + path_env: "GALTZO_FLOSS_DEV", + vendored_gems_env: "GALTZO_FLOSS_VENDORED_GEMS", + vendor_gem_dir_env: "GALTZO_FLOSS_VENDOR_GEM_DIR", + debug_env: "GALTZO_FLOSS_DEBUG" ) diff --git a/gems/zip-merge/gemfiles/modular/erb/r2/v3.0.gemfile b/gems/zip-merge/gemfiles/modular/erb/r2/v3.0.gemfile index 7c83a239b..c03bd8d85 100644 --- a/gems/zip-merge/gemfiles/modular/erb/r2/v3.0.gemfile +++ b/gems/zip-merge/gemfiles/modular/erb/r2/v3.0.gemfile @@ -1 +1 @@ -gem 'erb', '~> 3.0' # ruby >= 2.7.0 +gem "erb", "~> 3.0" # ruby >= 2.7.0 diff --git a/gems/zip-merge/gemfiles/modular/erb/r3/v5.0.gemfile b/gems/zip-merge/gemfiles/modular/erb/r3/v5.0.gemfile index 0e3bf1b97..1bd029cc1 100644 --- a/gems/zip-merge/gemfiles/modular/erb/r3/v5.0.gemfile +++ b/gems/zip-merge/gemfiles/modular/erb/r3/v5.0.gemfile @@ -1 +1 @@ -gem 'erb', '~> 6.0', '>= 6.0.4' # ruby >= 3.2.0 +gem "erb", "~> 6.0", ">= 6.0.6" # ruby >= 3.2.0 diff --git a/gems/zip-merge/gemfiles/modular/erb/r4/v5.0.gemfile b/gems/zip-merge/gemfiles/modular/erb/r4/v5.0.gemfile index 0e3bf1b97..1bd029cc1 100644 --- a/gems/zip-merge/gemfiles/modular/erb/r4/v5.0.gemfile +++ b/gems/zip-merge/gemfiles/modular/erb/r4/v5.0.gemfile @@ -1 +1 @@ -gem 'erb', '~> 6.0', '>= 6.0.4' # ruby >= 3.2.0 +gem "erb", "~> 6.0", ">= 6.0.6" # ruby >= 3.2.0 diff --git a/gems/zip-merge/gemfiles/modular/erb/vHEAD.gemfile b/gems/zip-merge/gemfiles/modular/erb/vHEAD.gemfile index ea0101185..48fee4218 100644 --- a/gems/zip-merge/gemfiles/modular/erb/vHEAD.gemfile +++ b/gems/zip-merge/gemfiles/modular/erb/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 3.2 -gem 'erb', github: 'ruby/erb', branch: 'master' +gem "erb", github: "ruby/erb", branch: "master" diff --git a/gems/zip-merge/gemfiles/modular/json/truffleruby_22_3.gemfile b/gems/zip-merge/gemfiles/modular/json/truffleruby_22_3.gemfile new file mode 100644 index 000000000..b0e69ab11 --- /dev/null +++ b/gems/zip-merge/gemfiles/modular/json/truffleruby_22_3.gemfile @@ -0,0 +1,6 @@ +# frozen_string_literal: true + +if RUBY_ENGINE == "truffleruby" && RUBY_ENGINE_VERSION.start_with?("22.3") + # TruffleRuby 22.3 ships the json default gem from its emulated MRI Ruby. + gem "json", "= 2.5.1" +end diff --git a/gems/zip-merge/gemfiles/modular/json/truffleruby_23_0.gemfile b/gems/zip-merge/gemfiles/modular/json/truffleruby_23_0.gemfile new file mode 100644 index 000000000..7b2660a2b --- /dev/null +++ b/gems/zip-merge/gemfiles/modular/json/truffleruby_23_0.gemfile @@ -0,0 +1,6 @@ +# frozen_string_literal: true + +if RUBY_ENGINE == "truffleruby" && RUBY_ENGINE_VERSION.start_with?("23.0") + # TruffleRuby 23.0 ships the json default gem from its emulated MRI Ruby. + gem "json", "= 2.6.1" +end diff --git a/gems/zip-merge/gemfiles/modular/json/truffleruby_23_1.gemfile b/gems/zip-merge/gemfiles/modular/json/truffleruby_23_1.gemfile new file mode 100644 index 000000000..dfa21f2e4 --- /dev/null +++ b/gems/zip-merge/gemfiles/modular/json/truffleruby_23_1.gemfile @@ -0,0 +1,6 @@ +# frozen_string_literal: true + +if RUBY_ENGINE == "truffleruby" && RUBY_ENGINE_VERSION.start_with?("23.1") + # TruffleRuby 23.1 ships the json default gem from its emulated MRI Ruby. + gem "json", "= 2.6.3" +end diff --git a/gems/zip-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile b/gems/zip-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile index e27f1bbae..42e9d9bd4 100644 --- a/gems/zip-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile +++ b/gems/zip-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 -gem 'mutex_m', '~> 0.2' +gem "mutex_m", "~> 0.2" diff --git a/gems/zip-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile b/gems/zip-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile index e27f1bbae..42e9d9bd4 100644 --- a/gems/zip-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile +++ b/gems/zip-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 -gem 'mutex_m', '~> 0.2' +gem "mutex_m", "~> 0.2" diff --git a/gems/zip-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile b/gems/zip-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile index e27f1bbae..42e9d9bd4 100644 --- a/gems/zip-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile +++ b/gems/zip-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 -gem 'mutex_m', '~> 0.2' +gem "mutex_m", "~> 0.2" diff --git a/gems/zip-merge/gemfiles/modular/mutex_m/vHEAD.gemfile b/gems/zip-merge/gemfiles/modular/mutex_m/vHEAD.gemfile index 9dac2f6cb..8af3b6fca 100644 --- a/gems/zip-merge/gemfiles/modular/mutex_m/vHEAD.gemfile +++ b/gems/zip-merge/gemfiles/modular/mutex_m/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 (dependency of omniauth) -gem 'mutex_m', github: 'ruby/mutex_m', branch: 'master' +gem "mutex_m", github: "ruby/mutex_m", branch: "master" diff --git a/gems/zip-merge/gemfiles/modular/optional.gemfile b/gems/zip-merge/gemfiles/modular/optional.gemfile index 92a2d2ce4..80bc45196 100644 --- a/gems/zip-merge/gemfiles/modular/optional.gemfile +++ b/gems/zip-merge/gemfiles/modular/optional.gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -# To retain during zip-merge templating: +# To retain during kettle-jem templating: # kettle-jem:freeze # # ... your code # kettle-jem:unfreeze @@ -9,9 +9,8 @@ # Optional dependencies are not depended on directly, but may be used if present. # Required for curated binstubs generated by kettle-jem install -gem 'rbs', '>= 3.0', require: false # ruby >= 3.1 -gem 'stone_checksums', '~> 1.0', '>= 1.0.3', require: false # ruby >= 2.2 +gem "rbs", ">= 3.0", require: false # ruby >= 3.1 # Required for kettle-pre-release # URL parsing with Unicode support (falls back to URI if not available) -gem 'addressable', '>= 2.8', '< 3' # ruby >= 2.2 +gem "addressable", ">= 2.8", "< 3" # ruby >= 2.2 diff --git a/gems/zip-merge/gemfiles/modular/rspec.gemfile b/gems/zip-merge/gemfiles/modular/rspec.gemfile index 2af210a41..72fdf8b7f 100644 --- a/gems/zip-merge/gemfiles/modular/rspec.gemfile +++ b/gems/zip-merge/gemfiles/modular/rspec.gemfile @@ -1,4 +1,4 @@ -gem 'rspec_junit_formatter', - github: 'pboling/rspec_junit_formatter', - branch: 'main', - ref: '9e6bcaaedd49477b62878ed568dc4ada5cc7cb5e' +gem "rspec_junit_formatter", + github: "pboling/rspec_junit_formatter", + branch: "main", + ref: "9e6bcaaedd49477b62878ed568dc4ada5cc7cb5e" diff --git a/gems/zip-merge/gemfiles/modular/runtime_heads.gemfile b/gems/zip-merge/gemfiles/modular/runtime_heads.gemfile index 2111e802f..02f134c7f 100644 --- a/gems/zip-merge/gemfiles/modular/runtime_heads.gemfile +++ b/gems/zip-merge/gemfiles/modular/runtime_heads.gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -# To retain during zip-merge templating: +# To retain during kettle-jem templating: # kettle-jem:freeze # # ... your code # kettle-jem:unfreeze @@ -8,7 +8,4 @@ # Test against HEAD of runtime dependencies so we can proactively file bugs -# Ruby >= 2.2 -gem 'version_gem', github: 'ruby-oauth/version_gem', branch: 'main' - -eval_gemfile('x_std_libs/vHEAD.gemfile') +eval_gemfile("x_std_libs/vHEAD.gemfile") diff --git a/gems/zip-merge/gemfiles/modular/stringio/r2/v3.0.gemfile b/gems/zip-merge/gemfiles/modular/stringio/r2/v3.0.gemfile index 3616f4e3a..e85bb18ee 100644 --- a/gems/zip-merge/gemfiles/modular/stringio/r2/v3.0.gemfile +++ b/gems/zip-merge/gemfiles/modular/stringio/r2/v3.0.gemfile @@ -2,4 +2,4 @@ # NOT SEMVER # Version 3.0.7 dropped support for Ruby <= 2.7 # Version 3.0.0 dropped support for Ruby <= 2.4 -gem 'stringio', '>= 3.0' +gem "stringio", ">= 3.0" diff --git a/gems/zip-merge/gemfiles/modular/stringio/r3/v3.0.gemfile b/gems/zip-merge/gemfiles/modular/stringio/r3/v3.0.gemfile index 3616f4e3a..e85bb18ee 100644 --- a/gems/zip-merge/gemfiles/modular/stringio/r3/v3.0.gemfile +++ b/gems/zip-merge/gemfiles/modular/stringio/r3/v3.0.gemfile @@ -2,4 +2,4 @@ # NOT SEMVER # Version 3.0.7 dropped support for Ruby <= 2.7 # Version 3.0.0 dropped support for Ruby <= 2.4 -gem 'stringio', '>= 3.0' +gem "stringio", ">= 3.0" diff --git a/gems/zip-merge/gemfiles/modular/stringio/r4/v3.0.gemfile b/gems/zip-merge/gemfiles/modular/stringio/r4/v3.0.gemfile index 3616f4e3a..e85bb18ee 100644 --- a/gems/zip-merge/gemfiles/modular/stringio/r4/v3.0.gemfile +++ b/gems/zip-merge/gemfiles/modular/stringio/r4/v3.0.gemfile @@ -2,4 +2,4 @@ # NOT SEMVER # Version 3.0.7 dropped support for Ruby <= 2.7 # Version 3.0.0 dropped support for Ruby <= 2.4 -gem 'stringio', '>= 3.0' +gem "stringio", ">= 3.0" diff --git a/gems/zip-merge/gemfiles/modular/stringio/vHEAD.gemfile b/gems/zip-merge/gemfiles/modular/stringio/vHEAD.gemfile index 78f5f5d8a..5f2a74126 100644 --- a/gems/zip-merge/gemfiles/modular/stringio/vHEAD.gemfile +++ b/gems/zip-merge/gemfiles/modular/stringio/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 (dependency of omniauth) -gem 'stringio', github: 'ruby/stringio', branch: 'master' +gem "stringio", github: "ruby/stringio", branch: "master" diff --git a/gems/zip-merge/gemfiles/modular/style.gemfile b/gems/zip-merge/gemfiles/modular/style.gemfile index 677db7fb6..35de4dcd6 100644 --- a/gems/zip-merge/gemfiles/modular/style.gemfile +++ b/gems/zip-merge/gemfiles/modular/style.gemfile @@ -1,28 +1,31 @@ # frozen_string_literal: true -# To retain during zip-merge templating: +# To retain during kettle-jem templating: # kettle-jem:freeze # # ... your code # kettle-jem:unfreeze # -# We run rubocop on the latest version of Ruby, -# but in support of the oldest supported version of Ruby +# Style tasks run on the latest Ruby; RuboCop-LTS selects the compatibility +# rules for the configured Ruby floor independently from task dependency floors. -gem 'reek', '~> 6.5' +gem "reek", "~> 6.5", ">= 6.5.0" platform :mri do - gem 'rubocop-on-rbs', '~> 2.0' # ruby >= 3.2.0 + gem "appraisal2-rubocop", "~> 1.0", ">= 1.0.0", require: false + gem "rubocop-gradual", "~> 0.4", ">= 0.4.0" + gem "rubocop-minitest", "~> 0.40", ">= 0.40.0" + gem "rubocop-on-rbs", "~> 2.0", ">= 2.0.0" # ruby >= 3.2.0 # gem "rubocop", "~> 1.73", ">= 1.73.2" # constrained by standard - gem 'rubocop-packaging', '~> 0.6', '>= 0.6.0' - gem 'standard', '>= 1.50' + gem "rubocop-packaging", "~> 0.6", ">= 0.6.0" + gem "standard", "~> 1.56", ">= 1.56.0" - if ENV.fetch('RUBOCOP_LTS_LOCAL', 'false').casecmp('false').zero? - gem 'rubocop-lts', '~> 24.1.0' - # "rubocop-lts-rspec" can't add here until other gems are updated. - gem 'rubocop-rspec', '~> 3.6' - gem 'rubocop-ruby3_2', '~> 3.0.0' + if ENV.fetch("RUBOCOP_LTS_LOCAL", "false").casecmp("false").zero? + declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) + gem "rubocop-lts", "~> 24.2", ">= 24.2.1" unless declared_gems.include?("rubocop-lts") + gem "rubocop-lts-rspec", "~> 1.0", ">= 1.0.5" unless declared_gems.include?("rubocop-lts-rspec") + gem "rubocop-ruby3_2", "~> 3.0", ">= 3.0.6" unless declared_gems.include?("rubocop-ruby3_2") else - eval_gemfile('style_local.gemfile') + eval_gemfile("style_local.gemfile") end end diff --git a/gems/zip-merge/gemfiles/modular/style_local.gemfile b/gems/zip-merge/gemfiles/modular/style_local.gemfile index ce75bbe21..5ac7cf26d 100644 --- a/gems/zip-merge/gemfiles/modular/style_local.gemfile +++ b/gems/zip-merge/gemfiles/modular/style_local.gemfile @@ -1,24 +1,48 @@ # frozen_string_literal: true -# We run rubocop on the latest version of Ruby, -# but in support of the oldest supported version of Ruby +# Style tasks run on the latest Ruby; RuboCop-LTS selects the compatibility +# rules for the configured Ruby floor independently from task dependency floors. # Local path overrides for development. # Loaded by the associated non-local gemfile when RUBOCOP_LTS_LOCAL != "false". -require 'nomono/bundler' unless defined?(Nomono) +# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. +# Bundler records that dependency during Gemfile evaluation, but it does not +# activate that exact version before the immediate `require "nomono/bundler"`. +# If multiple compatible nomono versions are installed, RubyGems may activate +# the newest installed version while Gemfile.lock pins an older compatible one; +# Bundler then aborts with "already activated nomono X, but your Gemfile +# requires nomono Y". Prefer the locked compatible version when present, then +# activate it explicitly before requiring the Bundler DSL extension used below. +nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] +nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) +if File.file?(nomono_lockfile) + nomono_locked_spec = Bundler::LockfileParser + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == "nomono" } + nomono_locked = nomono_locked_spec && + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + if nomono_locked + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] + end +end +Kernel.send(:gem, "nomono", *nomono_activation_requirements) +require "nomono/bundler" local_gems = %w[rubocop-lts rubocop-lts-rspec rubocop-ruby3_2 standard-rubocop-lts] +declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) +local_gems_to_eval = local_gems - %w[zip-merge] - declared_gems # export VENDORED_GEMS=rubocop-lts,rubocop-lts-rspec,rubocop-ruby3_2,standard-rubocop-lts platform :mri do eval_nomono_gems( - gems: local_gems, - prefix: 'RUBOCOP_LTS', - path_env: 'RUBOCOP_LTS_LOCAL', - vendored_gems_env: 'VENDORED_GEMS', - vendor_gem_dir_env: 'VENDOR_GEM_DIR', - debug_env: 'RUBOCOP_LTS_DEBUG', - root: %w[src rubocop-lts] + gems: local_gems_to_eval, + prefix: "RUBOCOP_LTS", + path_env: "RUBOCOP_LTS_LOCAL", + vendored_gems_env: "VENDORED_GEMS", + vendor_gem_dir_env: "VENDOR_GEM_DIR", + debug_env: "RUBOCOP_LTS_DEBUG", + root: ["src", "rubocop-lts"] ) end diff --git a/gems/zip-merge/gemfiles/modular/templating.gemfile b/gems/zip-merge/gemfiles/modular/templating.gemfile index 2ddc9433f..47138ffbb 100644 --- a/gems/zip-merge/gemfiles/modular/templating.gemfile +++ b/gems/zip-merge/gemfiles/modular/templating.gemfile @@ -1,24 +1,24 @@ # frozen_string_literal: true -structuredmerge_remote = ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false').zero? -kettle_remote = ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? +structuredmerge_remote = ENV.fetch("STRUCTUREDMERGE_DEV", "false").casecmp("false").zero? +kettle_remote = ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false").zero? if structuredmerge_remote # Parser dependencies for released installs. - gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' + gem "tree_sitter_language_pack", "~> 1.13", ">= 1.13.3" # Merge recipes for released installs. - gem 'kettle-jem', '>= 7.0' + gem "kettle-jem", ">= 7.0" end if kettle_remote # Template/plugin checks for released installs. - gem 'kettle-drift', '~> 1.0', '>= 1.0.5', require: false + gem "kettle-drift", "~> 1.0", ">= 1.0.6", require: false end # Set STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local development with path-based dependencies. # When false (default / CI), released kettle-jem brings merge gems and parser dependencies. # Local path overrides bring the same dependencies from sibling gemspecs. # -# Set KETTLE_DEV_DEV=/path/to/kettle-rb for local development with Kettle plugin gems. +# Set KETTLE_DEV_DEV=/path/to/my for local development with Kettle plugin gems. # When false (default / CI), released Kettle plugin gems are used. -eval_gemfile 'templating_local.gemfile' unless structuredmerge_remote && kettle_remote +eval_gemfile "templating_local.gemfile" unless structuredmerge_remote && kettle_remote diff --git a/gems/zip-merge/gemfiles/modular/templating_local.gemfile b/gems/zip-merge/gemfiles/modular/templating_local.gemfile index c22693f34..81377c103 100644 --- a/gems/zip-merge/gemfiles/modular/templating_local.gemfile +++ b/gems/zip-merge/gemfiles/modular/templating_local.gemfile @@ -4,7 +4,29 @@ # Loaded by the associated non-local gemfile when STRUCTUREDMERGE_DEV or KETTLE_DEV_DEV # is not "false". -require 'nomono/bundler' unless defined?(Nomono) +# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. +# Bundler records that dependency during Gemfile evaluation, but it does not +# activate that exact version before the immediate `require "nomono/bundler"`. +# If multiple compatible nomono versions are installed, RubyGems may activate +# the newest installed version while Gemfile.lock pins an older compatible one; +# Bundler then aborts with "already activated nomono X, but your Gemfile +# requires nomono Y". Prefer the locked compatible version when present, then +# activate it explicitly before requiring the Bundler DSL extension used below. +nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] +nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) +if File.file?(nomono_lockfile) + nomono_locked_spec = Bundler::LockfileParser + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == "nomono" } + nomono_locked = nomono_locked_spec && + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + if nomono_locked + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] + end +end +Kernel.send(:gem, "nomono", *nomono_activation_requirements) +require "nomono/bundler" structuredmerge_local_gems = %w[ tree_haver @@ -47,25 +69,25 @@ structuredmerge_local_gems_to_eval = structuredmerge_local_gems - %w[zip-merge] kettle_dev_local_gems_to_eval = kettle_dev_local_gems - %w[zip-merge] - declared_gems platform :mri do - if ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false') != 0 + if ENV.fetch("STRUCTUREDMERGE_DEV", "false").casecmp("false") != 0 eval_nomono_gems( gems: structuredmerge_local_gems_to_eval, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - vendored_gems_env: 'VENDORED_GEMS', - vendor_gem_dir_env: 'VENDOR_GEM_DIR', - debug_env: 'STRUCTUREDMERGE_DEBUG' + prefix: "STRUCTUREDMERGE", + path_env: "STRUCTUREDMERGE_DEV", + vendored_gems_env: "VENDORED_GEMS", + vendor_gem_dir_env: "VENDOR_GEM_DIR", + debug_env: "STRUCTUREDMERGE_DEBUG" ) end - if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false') != 0 + if ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false") != 0 eval_nomono_gems( gems: kettle_dev_local_gems_to_eval, - prefix: 'KETTLE_DEV', - path_env: 'KETTLE_DEV_DEV', - vendored_gems_env: 'VENDORED_GEMS', - vendor_gem_dir_env: 'VENDOR_GEM_DIR', - debug_env: 'KETTLE_DEV_DEBUG' + prefix: "KETTLE_DEV", + path_env: "KETTLE_DEV_DEV", + vendored_gems_env: "VENDORED_GEMS", + vendor_gem_dir_env: "VENDOR_GEM_DIR", + debug_env: "KETTLE_DEV_DEBUG" ) end end diff --git a/gems/zip-merge/gemfiles/modular/webrick/r4/v1.9.gemfile b/gems/zip-merge/gemfiles/modular/webrick/r4/v1.9.gemfile new file mode 100644 index 000000000..eaab4a473 --- /dev/null +++ b/gems/zip-merge/gemfiles/modular/webrick/r4/v1.9.gemfile @@ -0,0 +1 @@ +gem "webrick", "~> 1.9" diff --git a/gems/zip-merge/gemfiles/modular/webrick/vHEAD.gemfile b/gems/zip-merge/gemfiles/modular/webrick/vHEAD.gemfile new file mode 100644 index 000000000..8a789b634 --- /dev/null +++ b/gems/zip-merge/gemfiles/modular/webrick/vHEAD.gemfile @@ -0,0 +1 @@ +gem "webrick", ">= 1.9" diff --git a/gems/zip-merge/gemfiles/modular/x_std_libs.gemfile b/gems/zip-merge/gemfiles/modular/x_std_libs.gemfile index b1f43c097..77aad43f2 100644 --- a/gems/zip-merge/gemfiles/modular/x_std_libs.gemfile +++ b/gems/zip-merge/gemfiles/modular/x_std_libs.gemfile @@ -1,12 +1,12 @@ ### Std Lib Extracted Gems ruby_version = Gem::Version.new(RUBY_VERSION) -if ruby_version >= Gem::Version.new('4.0') - eval_gemfile 'x_std_libs/r4/libs.gemfile' -elsif ruby_version >= Gem::Version.new('3.2') - eval_gemfile 'x_std_libs/r3/libs.gemfile' -elsif ruby_version >= Gem::Version.new('3.1') - eval_gemfile 'x_std_libs/r3.1/libs.gemfile' +if ruby_version >= Gem::Version.new("4.0") + eval_gemfile "x_std_libs/r4/libs.gemfile" +elsif ruby_version >= Gem::Version.new("3.2") + eval_gemfile "x_std_libs/r3/libs.gemfile" +elsif ruby_version >= Gem::Version.new("3.1") + eval_gemfile "x_std_libs/r3.1/libs.gemfile" else - eval_gemfile 'x_std_libs/r2/libs.gemfile' + eval_gemfile "x_std_libs/r2/libs.gemfile" end diff --git a/gems/zip-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile b/gems/zip-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile index 16a5e3d70..441c4f03a 100644 --- a/gems/zip-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile +++ b/gems/zip-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile @@ -1,3 +1,3 @@ -eval_gemfile '../../erb/r2/v3.0.gemfile' -eval_gemfile '../../mutex_m/r2/v0.3.gemfile' -eval_gemfile '../../stringio/r2/v3.0.gemfile' +eval_gemfile "../../erb/r2/v3.0.gemfile" +eval_gemfile "../../mutex_m/r2/v0.3.gemfile" +eval_gemfile "../../stringio/r2/v3.0.gemfile" diff --git a/gems/zip-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile b/gems/zip-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile index 220ff95c1..c293a3ddd 100644 --- a/gems/zip-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile +++ b/gems/zip-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile @@ -1,3 +1,3 @@ -eval_gemfile '../../erb/r3/v5.0.gemfile' -eval_gemfile '../../mutex_m/r3/v0.3.gemfile' -eval_gemfile '../../stringio/r3/v3.0.gemfile' +eval_gemfile "../../erb/r3/v5.0.gemfile" +eval_gemfile "../../mutex_m/r3/v0.3.gemfile" +eval_gemfile "../../stringio/r3/v3.0.gemfile" diff --git a/gems/zip-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile b/gems/zip-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile index bd4e884df..eb5574247 100644 --- a/gems/zip-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile +++ b/gems/zip-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile @@ -1,4 +1,6 @@ -eval_gemfile '../../erb/r4/v5.0.gemfile' -eval_gemfile '../../mutex_m/r4/v0.3.gemfile' -eval_gemfile '../../stringio/r4/v3.0.gemfile' -eval_gemfile '../../benchmark/r4/v0.5.gemfile' +eval_gemfile "../../erb/r4/v5.0.gemfile" +eval_gemfile "../../mutex_m/r4/v0.3.gemfile" +eval_gemfile "../../stringio/r4/v3.0.gemfile" +eval_gemfile "../../benchmark/r4/v0.5.gemfile" +eval_gemfile "../../cgi/r4/v0.5.gemfile" +eval_gemfile "../../webrick/r4/v1.9.gemfile" diff --git a/gems/zip-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile b/gems/zip-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile index 91f383c11..d4d5b16c9 100644 --- a/gems/zip-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile +++ b/gems/zip-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile @@ -1,4 +1,6 @@ -eval_gemfile '../erb/vHEAD.gemfile' -eval_gemfile '../mutex_m/vHEAD.gemfile' -eval_gemfile '../stringio/vHEAD.gemfile' -eval_gemfile '../benchmark/vHEAD.gemfile' +eval_gemfile "../erb/vHEAD.gemfile" +eval_gemfile "../mutex_m/vHEAD.gemfile" +eval_gemfile "../stringio/vHEAD.gemfile" +eval_gemfile "../benchmark/vHEAD.gemfile" +eval_gemfile "../cgi/vHEAD.gemfile" +eval_gemfile "../webrick/vHEAD.gemfile" From 27cdaed9cdcae27914ee33b543bec76b0b0698f7 Mon Sep 17 00:00:00 2001 From: "Peter H. Boling" Date: Tue, 21 Jul 2026 13:54:49 -0600 Subject: [PATCH 136/188] =?UTF-8?q?=F0=9F=8E=A8=20Template=20bootstrap=20b?= =?UTF-8?q?y=20kettle-jem=20v7.1.0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gems/ast-template/.rubocop_gradual.lock | 329 ++++++++++++++++++ gems/ast-template/Gemfile.lock | 24 +- gems/zip-merge/.rubocop_gradual.lock | 143 ++++++++ gems/zip-merge/Gemfile | 70 ++-- gems/zip-merge/Rakefile | 18 +- gems/zip-merge/bin/yard | 2 +- .../modular/benchmark/r4/v0.5.gemfile | 2 +- .../gemfiles/modular/benchmark/vHEAD.gemfile | 2 +- .../gemfiles/modular/cgi/r4/v0.5.gemfile | 2 +- .../gemfiles/modular/cgi/vHEAD.gemfile | 2 +- .../gemfiles/modular/coverage.gemfile | 6 +- .../gemfiles/modular/coverage_local.gemfile | 42 ++- gems/zip-merge/gemfiles/modular/debug.gemfile | 4 +- .../gemfiles/modular/documentation.gemfile | 24 +- .../modular/documentation_local.gemfile | 30 +- .../gemfiles/modular/erb/r2/v3.0.gemfile | 2 +- .../gemfiles/modular/erb/r3/v5.0.gemfile | 2 +- .../gemfiles/modular/erb/r4/v5.0.gemfile | 2 +- .../gemfiles/modular/erb/vHEAD.gemfile | 2 +- .../modular/json/truffleruby_22_3.gemfile | 4 +- .../modular/json/truffleruby_23_0.gemfile | 4 +- .../modular/json/truffleruby_23_1.gemfile | 4 +- .../gemfiles/modular/mutex_m/r2/v0.3.gemfile | 2 +- .../gemfiles/modular/mutex_m/r3/v0.3.gemfile | 2 +- .../gemfiles/modular/mutex_m/r4/v0.3.gemfile | 2 +- .../gemfiles/modular/mutex_m/vHEAD.gemfile | 2 +- .../gemfiles/modular/optional.gemfile | 4 +- gems/zip-merge/gemfiles/modular/rspec.gemfile | 8 +- .../gemfiles/modular/runtime_heads.gemfile | 2 +- .../gemfiles/modular/stringio/r2/v3.0.gemfile | 2 +- .../gemfiles/modular/stringio/r3/v3.0.gemfile | 2 +- .../gemfiles/modular/stringio/r4/v3.0.gemfile | 2 +- .../gemfiles/modular/stringio/vHEAD.gemfile | 2 +- gems/zip-merge/gemfiles/modular/style.gemfile | 24 +- .../gemfiles/modular/style_local.gemfile | 32 +- .../gemfiles/modular/templating.gemfile | 12 +- .../gemfiles/modular/templating_local.gemfile | 44 ++- .../gemfiles/modular/webrick/r4/v1.9.gemfile | 2 +- .../gemfiles/modular/webrick/vHEAD.gemfile | 2 +- .../gemfiles/modular/x_std_libs.gemfile | 14 +- .../modular/x_std_libs/r2/libs.gemfile | 6 +- .../modular/x_std_libs/r3/libs.gemfile | 6 +- .../modular/x_std_libs/r4/libs.gemfile | 12 +- .../gemfiles/modular/x_std_libs/vHEAD.gemfile | 12 +- gems/zip-merge/lib/zip/merge/version.rb | 2 +- 45 files changed, 689 insertions(+), 229 deletions(-) create mode 100644 gems/ast-template/.rubocop_gradual.lock create mode 100644 gems/zip-merge/.rubocop_gradual.lock diff --git a/gems/ast-template/.rubocop_gradual.lock b/gems/ast-template/.rubocop_gradual.lock new file mode 100644 index 000000000..941e0afba --- /dev/null +++ b/gems/ast-template/.rubocop_gradual.lock @@ -0,0 +1,329 @@ +{ + ".simplecov:3875640430": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "Rakefile:2781279821": [ + [18, 121, 17, "Layout/LineLength: Line is too long. [137/120]", 174264873], + [79, 3, 1023, "Metrics/BlockLength: Block has too many lines. [32/25]", 54868638], + [163, 121, 22, "Layout/LineLength: Line is too long. [142/120]", 1367093088], + [166, 121, 18, "Layout/LineLength: Line is too long. [138/120]", 3881946477] + ], + "ast-template.gemspec:3753841817": [ + [127, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 2821357214], + [142, 121, 50, "Layout/LineLength: Line is too long. [170/120]", 3888612416], + [143, 121, 29, "Layout/LineLength: Line is too long. [149/120]", 981994949], + [150, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 4229808912] + ], + "gemfiles/modular/benchmark/r4/v0.5.gemfile:3644720371": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/benchmark/vHEAD.gemfile:2838879269": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/cgi/r4/v0.5.gemfile:367169322": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/cgi/vHEAD.gemfile:2729540777": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/erb/r2/v3.0.gemfile:1688285565": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/erb/r3/v5.0.gemfile:2394062339": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/erb/r4/v5.0.gemfile:2394062339": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/erb/vHEAD.gemfile:981929959": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/mutex_m/r2/v0.3.gemfile:4055275004": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/mutex_m/r3/v0.3.gemfile:4055275004": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/mutex_m/r4/v0.3.gemfile:4055275004": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/mutex_m/vHEAD.gemfile:556854763": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/rspec.gemfile:2263543889": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/stringio/r2/v3.0.gemfile:821604304": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/stringio/r3/v3.0.gemfile:821604304": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/stringio/r4/v3.0.gemfile:821604304": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/stringio/vHEAD.gemfile:1045839691": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/webrick/r4/v1.9.gemfile:3092661193": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/webrick/vHEAD.gemfile:3867684682": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/x_std_libs.gemfile:2324400122": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/x_std_libs/r2/libs.gemfile:36276542": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] + ], + "gemfiles/modular/x_std_libs/r3/libs.gemfile:4030570297": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] + ], + "gemfiles/modular/x_std_libs/r4/libs.gemfile:732451732": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] + ], + "gemfiles/modular/x_std_libs/vHEAD.gemfile:2390363993": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] + ], + "lib/ast-template.rb:1768837856": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`ast-template.rb`) should use snake_case.", 5381] + ], + "lib/ast/template.rb:2086842713": [ + [10, 3, 15, "Style/Documentation: Missing top-level documentation comment for `module Ast::Template`.", 1853069487], + [10, 3, 62364, "Metrics/ModuleLength: Module has too many lines. [1391/100]", 2978788318], + [31, 5, 61575, "Metrics/ClassLength: Class has too many lines. [1370/100]", 1675855509], + [32, 7, 656, "Metrics/MethodLength: Method has too many lines. [12/10]", 4176787264], + [47, 7, 1248, "Metrics/AbcSize: Assignment Branch Condition size for `readme_family_token_values` is too high. [<17, 31, 5> 35.71/17]", 2414018706], + [47, 7, 1248, "Metrics/MethodLength: Method has too many lines. [21/10]", 2414018706], + [78, 7, 915, "Metrics/MethodLength: Method has too many lines. [18/10]", 788116683], + [108, 7, 624, "Metrics/MethodLength: Method has too many lines. [14/10]", 3152255782], + [125, 7, 1499, "Metrics/AbcSize: Assignment Branch Condition size for `run_readme_family_sections_for_package_directories` is too high. [<10, 27, 6> 29.41/17]", 44972847], + [125, 7, 1499, "Metrics/MethodLength: Method has too many lines. [35/10]", 44972847], + [133, 9, 1138, "Metrics/BlockLength: Block has too many lines. [26/25]", 3835793651], + [164, 7, 540, "Metrics/MethodLength: Method has too many lines. [14/10]", 1455912513], + [198, 7, 2052, "Metrics/AbcSize: Assignment Branch Condition size for `default_family_merge_adapter_registry` is too high. [<14, 39, 10> 42.63/17]", 2278087573], + [198, 7, 2052, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `default_family_merge_adapter_registry` is too high. [11/7]", 2278087573], + [198, 7, 2052, "Metrics/MethodLength: Method has too many lines. [56/10]", 2278087573], + [198, 7, 2052, "Metrics/PerceivedComplexity: Perceived complexity for `default_family_merge_adapter_registry` is too high. [11/8]", 2278087573], + [224, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5858795], + [226, 13, 16, "Lint/SuppressedException: Do not suppress exceptions.", 1026572812], + [236, 11, 16, "Lint/SuppressedException: Do not suppress exceptions.", 1026572812], + [251, 13, 16, "Lint/SuppressedException: Do not suppress exceptions.", 1026572812], + [269, 59, 158, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [7/5]", 1840084196], + [270, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2087867783], + [283, 7, 585, "Metrics/MethodLength: Method has too many lines. [11/10]", 3906693384], + [283, 56, 172, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [7/5]", 331060096], + [284, 121, 18, "Layout/LineLength: Line is too long. [138/120]", 1674317416], + [298, 7, 591, "Metrics/MethodLength: Method has too many lines. [11/10]", 3516005727], + [298, 58, 174, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [7/5]", 1025179136], + [299, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 254853645], + [313, 7, 685, "Metrics/MethodLength: Method has too many lines. [12/10]", 3467399181], + [313, 70, 179, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [8/5]", 2059101405], + [314, 121, 25, "Layout/LineLength: Line is too long. [145/120]", 2061684677], + [329, 7, 618, "Metrics/MethodLength: Method has too many lines. [11/10]", 2401761450], + [329, 78, 201, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [8/5]", 4235690185], + [330, 121, 47, "Layout/LineLength: Line is too long. [167/120]", 1064263543], + [364, 55, 164, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [8/5]", 2487000221], + [365, 121, 10, "Layout/LineLength: Line is too long. [130/120]", 3119702098], + [378, 63, 186, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [8/5]", 2803525897], + [379, 121, 32, "Layout/LineLength: Line is too long. [152/120]", 2696213732], + [399, 7, 855, "Metrics/MethodLength: Method has too many lines. [21/10]", 1805387058], + [399, 68, 191, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [8/5]", 2632809545], + [400, 121, 37, "Layout/LineLength: Line is too long. [157/120]", 4190793949], + [424, 7, 942, "Metrics/MethodLength: Method has too many lines. [22/10]", 3830329170], + [424, 87, 210, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [8/5]", 3023644425], + [425, 121, 56, "Layout/LineLength: Line is too long. [176/120]", 517767074], + [450, 7, 1847, "Metrics/AbcSize: Assignment Branch Condition size for `report_template_directory_session_status` is too high. [<14, 49, 27> 57.67/17]", 4110228676], + [450, 7, 1847, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `report_template_directory_session_status` is too high. [27/7]", 4110228676], + [450, 7, 1847, "Metrics/MethodLength: Method has too many lines. [26/10]", 4110228676], + [450, 7, 1847, "Metrics/PerceivedComplexity: Perceived complexity for `report_template_directory_session_status` is too high. [27/8]", 4110228676], + [471, 18, 1, "Style/DoubleNegation: Avoid the use of double negation (`!!`).", 177540], + [488, 7, 639, "Metrics/MethodLength: Method has too many lines. [11/10]", 1159346913], + [503, 7, 2247, "Metrics/AbcSize: Assignment Branch Condition size for `report_template_directory_session_diagnostics` is too high. [<12, 46, 28> 55.17/17]", 42314578], + [503, 7, 2247, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `report_template_directory_session_diagnostics` is too high. [26/7]", 42314578], + [503, 7, 2247, "Metrics/MethodLength: Method has too many lines. [44/10]", 42314578], + [503, 7, 2247, "Metrics/PerceivedComplexity: Perceived complexity for `report_template_directory_session_diagnostics` is too high. [26/8]", 42314578], + [515, 23, 1380, "Metrics/BlockLength: Block has too many lines. [27/25]", 2686192500], + [543, 9, 11, "Style/MultilineBlockChain: Avoid multi-line chains of blocks.", 848344986], + [560, 7, 669, "Metrics/MethodLength: Method has too many lines. [11/10]", 948308474], + [569, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2085362375], + [575, 7, 721, "Metrics/MethodLength: Method has too many lines. [14/10]", 3970823326], + [575, 71, 194, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [8/5]", 3917828873], + [576, 121, 40, "Layout/LineLength: Line is too long. [160/120]", 1017287714], + [593, 7, 921, "Metrics/MethodLength: Method has too many lines. [18/10]", 3608196218], + [593, 90, 213, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [8/5]", 1024049097], + [593, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5861341], + [594, 121, 59, "Layout/LineLength: Line is too long. [179/120]", 2535099243], + [623, 7, 1232, "Metrics/MethodLength: Method has too many lines. [33/10]", 2772161373], + [623, 67, 190, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [8/5]", 767991305], + [624, 121, 36, "Layout/LineLength: Line is too long. [156/120]", 4114753948], + [660, 7, 1317, "Metrics/MethodLength: Method has too many lines. [26/10]", 3490333035], + [660, 86, 209, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [8/5]", 1111567049], + [661, 121, 55, "Layout/LineLength: Line is too long. [175/120]", 3056305766], + [690, 7, 1325, "Metrics/MethodLength: Method has too many lines. [26/10]", 4238651548], + [690, 88, 211, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [8/5]", 4054918473], + [691, 121, 57, "Layout/LineLength: Line is too long. [177/120]", 172214443], + [720, 7, 1370, "Metrics/MethodLength: Method has too many lines. [37/10]", 2622224263], + [720, 76, 205, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [9/5]", 3505072102], + [721, 121, 45, "Layout/LineLength: Line is too long. [165/120]", 4014499349], + [761, 7, 1142, "Metrics/AbcSize: Assignment Branch Condition size for `run_template_directory_session_with_options` is too high. [<2, 28, 13> 30.94/17]", 4142644019], + [761, 7, 1142, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `run_template_directory_session_with_options` is too high. [14/7]", 4142644019], + [761, 7, 1142, "Metrics/MethodLength: Method has too many lines. [19/10]", 4142644019], + [761, 7, 1142, "Metrics/PerceivedComplexity: Perceived complexity for `run_template_directory_session_with_options` is too high. [14/8]", 4142644019], + [783, 7, 1053, "Metrics/AbcSize: Assignment Branch Condition size for `report_template_directory_session_options_configuration` is too high. [<3, 19, 5> 19.87/17]", 4149687719], + [783, 7, 1053, "Metrics/MethodLength: Method has too many lines. [24/10]", 4149687719], + [822, 7, 1015, "Metrics/AbcSize: Assignment Branch Condition size for `report_template_directory_session_profile_configuration` is too high. [<6, 17, 6> 19/17]", 3439042821], + [822, 7, 1015, "Metrics/MethodLength: Method has too many lines. [21/10]", 3439042821], + [846, 7, 741, "Metrics/MethodLength: Method has too many lines. [13/10]", 26059598], + [862, 7, 431, "Metrics/MethodLength: Method has too many lines. [12/10]", 2701838518], + [885, 7, 645, "Metrics/MethodLength: Method has too many lines. [11/10]", 4194104448], + [900, 7, 619, "Metrics/MethodLength: Method has too many lines. [12/10]", 1636858424], + [924, 7, 645, "Metrics/MethodLength: Method has too many lines. [11/10]", 1685536251], + [939, 7, 762, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `run_template_directory_session_runner_request` is too high. [8/7]", 1296256230], + [939, 7, 762, "Metrics/MethodLength: Method has too many lines. [16/10]", 1296256230], + [967, 7, 680, "Metrics/MethodLength: Method has too many lines. [11/10]", 2612182881], + [976, 121, 7, "Layout/LineLength: Line is too long. [127/120]", 3937819337], + [982, 7, 2608, "Metrics/AbcSize: Assignment Branch Condition size for `report_template_directory_session_runner_input` is too high. [<14, 56, 37> 68.56/17]", 1118646956], + [982, 7, 2608, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `report_template_directory_session_runner_input` is too high. [36/7]", 1118646956], + [982, 7, 2608, "Metrics/MethodLength: Method has too many lines. [42/10]", 1118646956], + [982, 7, 2608, "Metrics/PerceivedComplexity: Perceived complexity for `report_template_directory_session_runner_input` is too high. [36/8]", 1118646956], + [1015, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 4185298420], + [1028, 7, 1841, "Metrics/AbcSize: Assignment Branch Condition size for `report_template_directory_session_runner_payload` is too high. [<6, 34, 26> 43.22/17]", 668498009], + [1028, 7, 1841, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `report_template_directory_session_runner_payload` is too high. [25/7]", 668498009], + [1028, 7, 1841, "Metrics/MethodLength: Method has too many lines. [29/10]", 668498009], + [1028, 7, 1841, "Metrics/PerceivedComplexity: Perceived complexity for `report_template_directory_session_runner_payload` is too high. [27/8]", 668498009], + [1052, 121, 9, "Layout/LineLength: Line is too long. [129/120]", 838260297], + [1078, 7, 680, "Metrics/MethodLength: Method has too many lines. [11/10]", 1786285601], + [1087, 121, 7, "Layout/LineLength: Line is too long. [127/120]", 3937819337], + [1093, 7, 727, "Metrics/MethodLength: Method has too many lines. [17/10]", 2883184841], + [1115, 7, 793, "Metrics/MethodLength: Method has too many lines. [21/10]", 3728759813], + [1153, 7, 2638, "Metrics/AbcSize: Assignment Branch Condition size for `report_template_directory_session_inspection` is too high. [<6, 37, 2> 37.54/17]", 2423723700], + [1153, 7, 2638, "Metrics/MethodLength: Method has too many lines. [66/10]", 2423723700], + [1233, 7, 663, "Metrics/MethodLength: Method has too many lines. [11/10]", 835919808], + [1242, 121, 3, "Layout/LineLength: Line is too long. [123/120]", 193343749], + [1248, 7, 639, "Metrics/MethodLength: Method has too many lines. [16/10]", 890869399], + [1279, 7, 1321, "Metrics/AbcSize: Assignment Branch Condition size for `run_template_directory_session_command_payload` is too high. [<1, 27, 12> 29.56/17]", 268857423], + [1279, 7, 1321, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `run_template_directory_session_command_payload` is too high. [13/7]", 268857423], + [1279, 7, 1321, "Metrics/MethodLength: Method has too many lines. [20/10]", 268857423], + [1279, 7, 1321, "Metrics/PerceivedComplexity: Perceived complexity for `run_template_directory_session_command_payload` is too high. [13/8]", 268857423], + [1295, 121, 11, "Layout/LineLength: Line is too long. [131/120]", 2272443568], + [1319, 7, 663, "Metrics/MethodLength: Method has too many lines. [11/10]", 3409839974], + [1328, 121, 3, "Layout/LineLength: Line is too long. [123/120]", 193343749], + [1342, 7, 645, "Metrics/MethodLength: Method has too many lines. [11/10]", 2481445197], + [1365, 7, 685, "Metrics/MethodLength: Method has too many lines. [11/10]", 807027808], + [1374, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 1225026887], + [1388, 7, 663, "Metrics/MethodLength: Method has too many lines. [11/10]", 1570524606], + [1397, 121, 3, "Layout/LineLength: Line is too long. [123/120]", 193343749], + [1403, 7, 589, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `report_session_request_from_runner_request` is too high. [8/7]", 1923077466], + [1403, 7, 589, "Metrics/MethodLength: Method has too many lines. [11/10]", 1923077466], + [1418, 7, 1803, "Metrics/AbcSize: Assignment Branch Condition size for `resolve_template_directory_session_options` is too high. [<3, 38, 28> 47.3/17]", 319878734], + [1418, 7, 1803, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `resolve_template_directory_session_options` is too high. [29/7]", 319878734], + [1418, 7, 1803, "Metrics/MethodLength: Method has too many lines. [22/10]", 319878734], + [1418, 7, 1803, "Metrics/PerceivedComplexity: Perceived complexity for `resolve_template_directory_session_options` is too high. [29/8]", 319878734], + [1458, 7, 1357, "Metrics/AbcSize: Assignment Branch Condition size for `replace_or_insert_markdown_heading_section` is too high. [<18, 33, 18> 41.68/17]", 812459935], + [1458, 7, 1357, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `replace_or_insert_markdown_heading_section` is too high. [12/7]", 812459935], + [1458, 7, 1357, "Metrics/MethodLength: Method has too many lines. [26/10]", 812459935], + [1458, 7, 1357, "Metrics/PerceivedComplexity: Perceived complexity for `replace_or_insert_markdown_heading_section` is too high. [12/8]", 812459935], + [1494, 7, 456, "Metrics/AbcSize: Assignment Branch Condition size for `readme_family_section_insert_index` is too high. [<5, 9, 14> 17.38/17]", 252997882], + [1494, 7, 456, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `readme_family_section_insert_index` is too high. [8/7]", 252997882], + [1494, 7, 456, "Metrics/MethodLength: Method has too many lines. [13/10]", 252997882] + ], + "spec/session_integration_spec.rb:1063469608": [ + [5, 1, 89793, "Metrics/BlockLength: Block has too many lines. [1761/25]", 3162725061], + [31, 3, 612, "Metrics/MethodLength: Method has too many lines. [16/10]", 1402311658], + [50, 3, 2970, "Metrics/BlockLength: Block has too many lines. [60/25]", 2848879838], + [118, 3, 1748, "Metrics/BlockLength: Block has too many lines. [40/25]", 3276283317], + [164, 3, 1582, "Metrics/BlockLength: Block has too many lines. [37/25]", 4190998336], + [237, 3, 2325, "Metrics/BlockLength: Block has too many lines. [51/25]", 3352569469], + [295, 3, 1789, "Metrics/BlockLength: Block has too many lines. [38/25]", 1947005133], + [339, 3, 1944, "Metrics/BlockLength: Block has too many lines. [41/25]", 3993685201], + [386, 3, 1807, "Metrics/BlockLength: Block has too many lines. [38/25]", 4257675897], + [452, 121, 11, "Layout/LineLength: Line is too long. [131/120]", 561412382], + [457, 121, 1, "Layout/LineLength: Line is too long. [121/120]", 177548], + [472, 121, 11, "Layout/LineLength: Line is too long. [131/120]", 561412382], + [477, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2088089918], + [485, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2087412612], + [490, 3, 1758, "Metrics/BlockLength: Block has too many lines. [37/25]", 1520782676], + [548, 121, 1, "Layout/LineLength: Line is too long. [121/120]", 177548], + [554, 121, 34, "Layout/LineLength: Line is too long. [154/120]", 1246048068], + [560, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5858795], + [573, 121, 34, "Layout/LineLength: Line is too long. [154/120]", 1246048068], + [578, 3, 1812, "Metrics/BlockLength: Block has too many lines. [39/25]", 1709538088], + [623, 3, 1428, "Metrics/BlockLength: Block has too many lines. [31/25]", 4067408447], + [660, 3, 1975, "Metrics/BlockLength: Block has too many lines. [49/25]", 432162268], + [716, 3, 1902, "Metrics/BlockLength: Block has too many lines. [45/25]", 2326466404], + [770, 121, 10, "Layout/LineLength: Line is too long. [130/120]", 703289421], + [797, 121, 10, "Layout/LineLength: Line is too long. [130/120]", 703289421], + [818, 3, 1462, "Metrics/BlockLength: Block has too many lines. [35/25]", 1648309772], + [860, 3, 1466, "Metrics/BlockLength: Block has too many lines. [31/25]", 3549227194], + [898, 3, 1656, "Metrics/BlockLength: Block has too many lines. [36/25]", 2643926725], + [956, 121, 1, "Layout/LineLength: Line is too long. [121/120]", 177548], + [963, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 2382627530], + [968, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5858795], + [985, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 2382627530], + [990, 121, 7, "Layout/LineLength: Line is too long. [127/120]", 4114085752], + [998, 121, 7, "Layout/LineLength: Line is too long. [127/120]", 3868965366], + [1004, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 3135429041], + [1011, 121, 19, "Layout/LineLength: Line is too long. [139/120]", 2121600243], + [1016, 121, 9, "Layout/LineLength: Line is too long. [129/120]", 3948574204], + [1034, 121, 19, "Layout/LineLength: Line is too long. [139/120]", 2121600243], + [1038, 3, 1281, "Metrics/BlockLength: Block has too many lines. [31/25]", 1507281102], + [1076, 3, 1329, "Metrics/BlockLength: Block has too many lines. [31/25]", 3185120887], + [1114, 3, 1680, "Metrics/BlockLength: Block has too many lines. [36/25]", 2250099450], + [1115, 121, 3, "Layout/LineLength: Line is too long. [123/120]", 193424063], + [1158, 121, 7, "Layout/LineLength: Line is too long. [127/120]", 4114085752], + [1166, 121, 7, "Layout/LineLength: Line is too long. [127/120]", 3868965366], + [1172, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 3135429041], + [1179, 121, 19, "Layout/LineLength: Line is too long. [139/120]", 2121600243], + [1184, 121, 9, "Layout/LineLength: Line is too long. [129/120]", 3948574204], + [1202, 121, 19, "Layout/LineLength: Line is too long. [139/120]", 2121600243], + [1206, 3, 1628, "Metrics/BlockLength: Block has too many lines. [36/25]", 4066832477], + [1249, 3, 1267, "Metrics/BlockLength: Block has too many lines. [31/25]", 488100020], + [1287, 3, 1404, "Metrics/BlockLength: Block has too many lines. [36/25]", 2415041159], + [1330, 3, 1970, "Metrics/BlockLength: Block has too many lines. [38/25]", 1463232713], + [1376, 121, 3, "Layout/LineLength: Line is too long. [123/120]", 193407726], + [1384, 121, 3, "Layout/LineLength: Line is too long. [123/120]", 193406689], + [1390, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2087900170], + [1397, 121, 15, "Layout/LineLength: Line is too long. [135/120]", 414784060], + [1402, 121, 5, "Layout/LineLength: Line is too long. [125/120]", 179046083], + [1419, 121, 15, "Layout/LineLength: Line is too long. [135/120]", 414784060], + [1540, 121, 1, "Layout/LineLength: Line is too long. [121/120]", 177548], + [1547, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 2382627530], + [1552, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5858795], + [1569, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 2382627530], + [1574, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 1621973742], + [1582, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 1297498406], + [1588, 121, 9, "Layout/LineLength: Line is too long. [129/120]", 2665434363], + [1595, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 1334260795], + [1600, 121, 3, "Layout/LineLength: Line is too long. [123/120]", 193407726], + [1608, 121, 3, "Layout/LineLength: Line is too long. [123/120]", 193406689], + [1614, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2087900170], + [1621, 121, 15, "Layout/LineLength: Line is too long. [135/120]", 414784060], + [1626, 121, 5, "Layout/LineLength: Line is too long. [125/120]", 179046083], + [1644, 121, 15, "Layout/LineLength: Line is too long. [135/120]", 414784060], + [1649, 121, 10, "Layout/LineLength: Line is too long. [130/120]", 3197516464], + [1667, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 1334260795], + [1717, 121, 3, "Layout/LineLength: Line is too long. [123/120]", 193407726], + [1725, 121, 3, "Layout/LineLength: Line is too long. [123/120]", 193406689], + [1731, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2087900170], + [1738, 121, 15, "Layout/LineLength: Line is too long. [135/120]", 414784060], + [1743, 121, 5, "Layout/LineLength: Line is too long. [125/120]", 179046083], + [1760, 121, 15, "Layout/LineLength: Line is too long. [135/120]", 414784060], + [1868, 3, 442, "Metrics/AbcSize: Assignment Branch Condition size for `options_with_resolved_fixture_paths` is too high. [<3, 18, 2> 18.36/17]", 13098503], + [1879, 3, 878, "Metrics/AbcSize: Assignment Branch Condition size for `runner_request_with_resolved_fixture_paths` is too high. [<7, 36, 6> 37.16/17]", 2279422631], + [1879, 3, 878, "Metrics/MethodLength: Method has too many lines. [20/10]", 2279422631], + [1902, 3, 449, "Metrics/AbcSize: Assignment Branch Condition size for `runner_payload_with_resolved_fixture_paths` is too high. [<3, 18, 2> 18.36/17]", 1041394699], + [1948, 3, 932, "Metrics/AbcSize: Assignment Branch Condition size for `resolve_session_inspection_expected_paths` is too high. [<4, 24, 6> 25.06/17]", 616473516], + [1948, 3, 932, "Metrics/MethodLength: Method has too many lines. [17/10]", 616473516], + [2015, 3, 679, "Metrics/AbcSize: Assignment Branch Condition size for `invocation_with_resolved_fixture_paths` is too high. [<5, 20, 4> 21/17]", 2866326769], + [2015, 3, 679, "Metrics/MethodLength: Method has too many lines. [12/10]", 2866326769] + ] +} diff --git a/gems/ast-template/Gemfile.lock b/gems/ast-template/Gemfile.lock index 0889a76c2..bfef0cbc0 100644 --- a/gems/ast-template/Gemfile.lock +++ b/gems/ast-template/Gemfile.lock @@ -6,7 +6,7 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/ast-merge specs: ast-merge (7.1.0) benchmark @@ -38,7 +38,7 @@ GEM cgi (0.5.2) citrus (3.0.2) cmdparse (3.0.7) - concurrent-ruby (1.3.7) + concurrent-ruby (1.3.8) date (3.5.1) debug (1.11.1) irb (~> 1.10) @@ -95,12 +95,12 @@ GEM rdoc (>= 4.0.0) reline (>= 0.4.2) json (2.21.1) - kettle-dev (2.3.7) + kettle-dev (2.3.8) emoji_regex (>= 15.0) kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) - kettle-rb (0.1.4) + kettle-rb (0.1.5) kettle-soup-cover (3.0.4) kettle-wash (~> 0.1, >= 0.1.0) simplecov (>= 1.0) @@ -108,7 +108,7 @@ GEM simplecov-console (~> 0.9, >= 0.9.5) simplecov-rcov (~> 0.3, >= 0.3.7) simplecov_lcov_formatter (~> 0.9, >= 0.9.0) - kettle-test (2.0.11) + kettle-test (2.0.12) appraisal2 (~> 3.0, >= 3.0.6) backports (~> 3.0) rspec (~> 3.0) @@ -333,9 +333,9 @@ GEM delegate (~> 0.1) rspec (~> 3.0) timecop (>= 0.7, < 1) - token-resolver (2.0.4) + token-resolver (2.0.5) parslet (~> 2.0) - version_gem (~> 1.1, >= 1.1.13) + version_gem (~> 1.1, >= 1.1.14) tree_haver (7.1.0) citrus (~> 3.0) parslet (~> 2.0) @@ -444,7 +444,7 @@ CHECKSUMS cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 - concurrent-ruby (1.3.7) sha256=4412caec3a5ea2e5fdc52076724c071a81f2c0593d83b2ac8cbb8ca63b3151b0 + concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 @@ -466,10 +466,10 @@ CHECKSUMS io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 - kettle-dev (2.3.7) sha256=eb370113cd030d03cbe2d33b31c99858951017e5ad21a17e9ed89dc3770028ee - kettle-rb (0.1.4) sha256=9cef7ce4f7021666b7222292f29051e51eaf042e8a5db11f3f4dd72f74243fc1 + kettle-dev (2.3.8) sha256=9d716ff21c660a730cb4e8d41e2e2f0630a28167a354b6e2924e242102aef72c + kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f kettle-soup-cover (3.0.4) - kettle-test (2.0.11) sha256=c710c90f7ab79d51f9452f0c09f5f90657e7a893f63583855c164d0b1b107ab2 + kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 @@ -550,7 +550,7 @@ CHECKSUMS thor (1.5.0) sha256=e3a9e55fe857e44859ce104a84675ab6e8cd59c650a49106a05f55f136425e73 timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 - token-resolver (2.0.4) sha256=33b926958f504525bba3ed511ab66fbcbf8ef30390815e931436b30f27ffcad0 + token-resolver (2.0.5) sha256=b852f924287ffb58a440856e862b056c8ad97e74b4b2526cee43e0771f40c25c tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f diff --git a/gems/zip-merge/.rubocop_gradual.lock b/gems/zip-merge/.rubocop_gradual.lock new file mode 100644 index 000000000..81ffacf36 --- /dev/null +++ b/gems/zip-merge/.rubocop_gradual.lock @@ -0,0 +1,143 @@ +{ + ".simplecov:1682986702": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "Rakefile:1364122509": [ + [18, 121, 17, "Layout/LineLength: Line is too long. [137/120]", 174264873], + [79, 3, 1023, "Metrics/BlockLength: Block has too many lines. [32/25]", 54868638], + [163, 121, 22, "Layout/LineLength: Line is too long. [142/120]", 1367093088], + [166, 121, 18, "Layout/LineLength: Line is too long. [138/120]", 3881946477] + ], + "gemfiles/modular/benchmark/r4/v0.5.gemfile:3644720371": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/benchmark/vHEAD.gemfile:2838879269": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/cgi/r4/v0.5.gemfile:367169322": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/cgi/vHEAD.gemfile:2729540777": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/erb/r2/v3.0.gemfile:1688285565": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/erb/r3/v5.0.gemfile:2394062339": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/erb/r4/v5.0.gemfile:2394062339": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/erb/vHEAD.gemfile:981929959": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/mutex_m/r2/v0.3.gemfile:4055275004": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/mutex_m/r3/v0.3.gemfile:4055275004": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/mutex_m/r4/v0.3.gemfile:4055275004": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/mutex_m/vHEAD.gemfile:556854763": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/rspec.gemfile:2263543889": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/stringio/r2/v3.0.gemfile:821604304": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/stringio/r3/v3.0.gemfile:821604304": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/stringio/r4/v3.0.gemfile:821604304": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/stringio/vHEAD.gemfile:1045839691": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/webrick/r4/v1.9.gemfile:3092661193": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/webrick/vHEAD.gemfile:3867684682": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/x_std_libs.gemfile:2324400122": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/x_std_libs/r2/libs.gemfile:36276542": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] + ], + "gemfiles/modular/x_std_libs/r3/libs.gemfile:4030570297": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] + ], + "gemfiles/modular/x_std_libs/r4/libs.gemfile:732451732": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] + ], + "gemfiles/modular/x_std_libs/vHEAD.gemfile:2390363993": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] + ], + "lib/zip-merge.rb:3510371846": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`zip-merge.rb`) should use snake_case.", 5381] + ], + "lib/zip/merge.rb:773090067": [ + [11, 3, 12, "Style/Documentation: Missing top-level documentation comment for `module Zip::Merge`.", 2866359175], + [11, 3, 18193, "Metrics/ModuleLength: Module has too many lines. [338/100]", 1666420073], + [28, 5, 1463, "Metrics/AbcSize: Assignment Branch Condition size for `parse_zip_inventory` is too high. [<8, 35, 2> 35.96/17]", 1470455386], + [28, 5, 1463, "Metrics/MethodLength: Method has too many lines. [27/10]", 1470455386], + [41, 25, 1, "Style/FormatString: Favor `format` over `String#%`.", 177536], + [47, 7, 11, "Style/MultilineBlockChain: Avoid multi-line chains of blocks.", 848344986], + [59, 5, 3358, "Metrics/AbcSize: Assignment Branch Condition size for `plan_zip_merge` is too high. [<12, 89, 15> 91.05/17]", 1545495603], + [59, 5, 3358, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `plan_zip_merge` is too high. [15/7]", 1545495603], + [59, 5, 3358, "Metrics/MethodLength: Method has too many lines. [48/10]", 1545495603], + [59, 5, 3358, "Metrics/PerceivedComplexity: Perceived complexity for `plan_zip_merge` is too high. [16/8]", 1545495603], + [72, 7, 2478, "Metrics/BlockLength: Block has too many lines. [30/25]", 3037686419], + [88, 121, 15, "Layout/LineLength: Line is too long. [135/120]", 1802769934], + [92, 121, 89, "Layout/LineLength: Line is too long. [209/120]", 1718709417], + [111, 5, 2286, "Metrics/AbcSize: Assignment Branch Condition size for `render_with_raw_preservation` is too high. [<23, 62, 10> 66.88/17]", 4162575274], + [111, 5, 2286, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `render_with_raw_preservation` is too high. [10/7]", 4162575274], + [111, 5, 2286, "Metrics/MethodLength: Method has too many lines. [47/10]", 4162575274], + [162, 5, 490, "Metrics/AbcSize: Assignment Branch Condition size for `new_stored_zip` is too high. [<7, 22, 2> 23.17/17]", 2289929314], + [162, 5, 490, "Metrics/MethodLength: Method has too many lines. [11/10]", 2289929314], + [178, 121, 23, "Layout/LineLength: Line is too long. [143/120]", 1623633543], + [181, 5, 1746, "Metrics/AbcSize: Assignment Branch Condition size for `scan_central_directory` is too high. [<13, 60, 9> 62.05/17]", 646715520], + [181, 5, 1746, "Metrics/MethodLength: Method has too many lines. [29/10]", 646715520], + [226, 5, 1740, "Metrics/AbcSize: Assignment Branch Condition size for `validate_raw_preserve_entry!` is too high. [<2, 47, 6> 47.42/17]", 4239026091], + [226, 5, 1740, "Metrics/MethodLength: Method has too many lines. [27/10]", 4239026091], + [245, 121, 19, "Layout/LineLength: Line is too long. [139/120]", 1538139918], + [249, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2087810907], + [256, 121, 5, "Layout/LineLength: Line is too long. [125/120]", 183183375], + [259, 5, 1446, "Metrics/AbcSize: Assignment Branch Condition size for `unsafe_entries` is too high. [<4, 34, 7> 34.94/17]", 1454765726], + [259, 5, 1446, "Metrics/MethodLength: Method has too many lines. [22/10]", 1454765726], + [269, 121, 25, "Layout/LineLength: Line is too long. [145/120]", 1103610753], + [273, 121, 28, "Layout/LineLength: Line is too long. [148/120]", 29120578], + [277, 121, 25, "Layout/LineLength: Line is too long. [145/120]", 703851376], + [291, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1177002089], + [297, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5862612], + [298, 121, 23, "Layout/LineLength: Line is too long. [143/120]", 739051872], + [305, 5, 453, "Metrics/AbcSize: Assignment Branch Condition size for `raw_local_record_ranges` is too high. [<5, 16, 5> 17.49/17]", 1660364055], + [321, 121, 299, "Layout/LineLength: Line is too long. [419/120]", 1241637532], + [321, 179, 1, "Style/FormatString: Favor `format` over `String#%`.", 177536], + [363, 121, 98, "Layout/LineLength: Line is too long. [218/120]", 302415094] + ], + "spec/fixtures_integration_spec.rb:2046677951": [ + [3, 1, 2065, "Metrics/BlockLength: Block has too many lines. [36/25]", 3161335752] + ], + "zip-merge.gemspec:2138858743": [ + [16, 121, 17, "Layout/LineLength: Line is too long. [137/120]", 3441493590], + [127, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 2821357214], + [142, 121, 50, "Layout/LineLength: Line is too long. [170/120]", 3888612416], + [143, 121, 29, "Layout/LineLength: Line is too long. [149/120]", 981994949], + [150, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 4229808912] + ] +} diff --git a/gems/zip-merge/Gemfile b/gems/zip-merge/Gemfile index 837a74c72..fc51a6835 100644 --- a/gems/zip-merge/Gemfile +++ b/gems/zip-merge/Gemfile @@ -6,7 +6,7 @@ # kettle-jem will then preserve content between those markers across template runs. # kettle-jem:unfreeze -source "https://gem.coop" +source 'https://gem.coop' git_source(:codeberg) { |repo_name| "https://codeberg.org/#{repo_name}" } git_source(:gitlab) { |repo_name| "https://gitlab.com/#{repo_name}" } @@ -19,57 +19,53 @@ git_source(:gitlab) { |repo_name| "https://gitlab.com/#{repo_name}" } gemspec # Local workspace dependency wiring for *_local.gemfile overrides -nomono_requirements = ["~> 1.0", ">= 1.0.8"] -gem "nomono", *nomono_requirements, require: false # ruby >= 2.2 +nomono_requirements = ['~> 1.0', '>= 1.0.8'] +gem 'nomono', *nomono_requirements, require: false # ruby >= 2.2 # Direct sibling dependencies (env-switched via STRUCTUREDMERGE_DEV) direct_sibling_gems = %w[ tree_haver ] -direct_sibling_dev = ENV.fetch("STRUCTUREDMERGE_DEV", "") +direct_sibling_dev = ENV.fetch('STRUCTUREDMERGE_DEV', '') direct_sibling_local = !direct_sibling_dev.empty? && !%w[false 0 no off].include?(direct_sibling_dev.downcase) -direct_sibling_templating = ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? +direct_sibling_templating = ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero?) - direct_sibling_dev_was_set = ENV.key?("STRUCTUREDMERGE_DEV") - direct_sibling_dev_original = ENV.fetch("STRUCTUREDMERGE_DEV", nil) + (direct_sibling_local || + ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) + direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') + direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) begin nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path("Gemfile.lock", __dir__) + nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == "nomono" } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - if nomono_locked - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] - end - end - Kernel.send(:gem, "nomono", *nomono_activation_requirements) - require "nomono/bundler" - if direct_sibling_templating && !direct_sibling_local - ENV["STRUCTUREDMERGE_DEV"] = File.expand_path("..", __dir__) + Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked end + Kernel.send(:gem, 'nomono', *nomono_activation_requirements) + require 'nomono/bundler' + ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local eval_nomono_gems( gems: direct_sibling_gems, - prefix: "STRUCTUREDMERGE", - path_env: "STRUCTUREDMERGE_DEV", - root: ["src", "my", "structuredmerge"] + prefix: 'STRUCTUREDMERGE', + path_env: 'STRUCTUREDMERGE_DEV', + root: %w[src my structuredmerge] ) rescue LoadError - warn "Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies." + warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' ensure if direct_sibling_templating && !direct_sibling_local if direct_sibling_dev_was_set - ENV["STRUCTUREDMERGE_DEV"] = direct_sibling_dev_original + ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original else - ENV.delete("STRUCTUREDMERGE_DEV") + ENV.delete('STRUCTUREDMERGE_DEV') end end end @@ -116,28 +112,28 @@ if direct_sibling_gems.any? && end # Use released TSLP with the Ruby ABI platform-gem fix. -gem "tree_sitter_language_pack", "~> 1.13", ">= 1.13.3" +gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' # Templating (env-switched: STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local paths) -eval_gemfile "gemfiles/modular/templating.gemfile" if ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? +eval_gemfile 'gemfiles/modular/templating.gemfile' if ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? # Debugging -eval_gemfile "gemfiles/modular/debug.gemfile" +eval_gemfile 'gemfiles/modular/debug.gemfile' # Code Coverage (env-switched: KETTLE_DEV_DEV=true for local paths) -eval_gemfile "gemfiles/modular/coverage.gemfile" +eval_gemfile 'gemfiles/modular/coverage.gemfile' # Linting -eval_gemfile "gemfiles/modular/style.gemfile" +eval_gemfile 'gemfiles/modular/style.gemfile' # Documentation -eval_gemfile "gemfiles/modular/documentation.gemfile" +eval_gemfile 'gemfiles/modular/documentation.gemfile' # Optional -eval_gemfile "gemfiles/modular/optional.gemfile" +eval_gemfile 'gemfiles/modular/optional.gemfile' ### Std Lib Extracted Gems -eval_gemfile "gemfiles/modular/x_std_libs.gemfile" +eval_gemfile 'gemfiles/modular/x_std_libs.gemfile' # See unlocked_deps appraisal for more details on irb inclusion -gem "irb", "~> 1.17" # ruby >= 2.7 +gem 'irb', '~> 1.17' # ruby >= 2.7 diff --git a/gems/zip-merge/Rakefile b/gems/zip-merge/Rakefile index c56992019..752226eed 100644 --- a/gems/zip-merge/Rakefile +++ b/gems/zip-merge/Rakefile @@ -130,23 +130,23 @@ end ### DUPLICATE DRIFT TASKS begin - require "kettle/drift" + require 'kettle/drift' Kettle::Drift.install_tasks rescue LoadError - desc("(stub) kettle:drift:check is unavailable") - task("kettle:drift:check") do + desc('(stub) kettle:drift:check is unavailable') + task('kettle:drift:check') do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc("(stub) kettle:drift:update is unavailable") - task("kettle:drift:update") do + desc('(stub) kettle:drift:update is unavailable') + task('kettle:drift:update') do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc("(stub) kettle:drift:force_update is unavailable") - task("kettle:drift:force_update") do + desc('(stub) kettle:drift:force_update is unavailable') + task('kettle:drift:force_update') do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc("(stub) kettle:drift is unavailable") - task("kettle:drift" => "kettle:drift:update") + desc('(stub) kettle:drift is unavailable') + task('kettle:drift' => 'kettle:drift:update') end ### TEMPLATING TASKS diff --git a/gems/zip-merge/bin/yard b/gems/zip-merge/bin/yard index a7e8b6eed..5d516ad6f 100755 --- a/gems/zip-merge/bin/yard +++ b/gems/zip-merge/bin/yard @@ -12,4 +12,4 @@ # `yard` / `bin/yard`. Keep this binstub as a handoff to the task so # humans and tools that reach for `bin/yard` still run the full docs # workflow with post-processing hooks. -exec("bundle", "exec", "rake", "yard") +exec('bundle', 'exec', 'rake', 'yard') diff --git a/gems/zip-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile b/gems/zip-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile index dec650815..b8392fab0 100644 --- a/gems/zip-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile +++ b/gems/zip-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.1 -gem "benchmark", "~> 0.5", ">= 0.5.0" # Removed from Std Lib in Ruby 4.0 +gem 'benchmark', '~> 0.5', '>= 0.5.0' # Removed from Std Lib in Ruby 4.0 diff --git a/gems/zip-merge/gemfiles/modular/benchmark/vHEAD.gemfile b/gems/zip-merge/gemfiles/modular/benchmark/vHEAD.gemfile index e1eb20c5e..af214aafa 100644 --- a/gems/zip-merge/gemfiles/modular/benchmark/vHEAD.gemfile +++ b/gems/zip-merge/gemfiles/modular/benchmark/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.1 -gem "benchmark", github: "ruby/benchmark", branch: "master" +gem 'benchmark', github: 'ruby/benchmark', branch: 'master' diff --git a/gems/zip-merge/gemfiles/modular/cgi/r4/v0.5.gemfile b/gems/zip-merge/gemfiles/modular/cgi/r4/v0.5.gemfile index 19ed967c3..17ad97260 100644 --- a/gems/zip-merge/gemfiles/modular/cgi/r4/v0.5.gemfile +++ b/gems/zip-merge/gemfiles/modular/cgi/r4/v0.5.gemfile @@ -1 +1 @@ -gem "cgi", "~> 0.5" +gem 'cgi', '~> 0.5' diff --git a/gems/zip-merge/gemfiles/modular/cgi/vHEAD.gemfile b/gems/zip-merge/gemfiles/modular/cgi/vHEAD.gemfile index ef8b816ce..650fbf033 100644 --- a/gems/zip-merge/gemfiles/modular/cgi/vHEAD.gemfile +++ b/gems/zip-merge/gemfiles/modular/cgi/vHEAD.gemfile @@ -1 +1 @@ -gem "cgi", ">= 0.5" +gem 'cgi', '>= 0.5' diff --git a/gems/zip-merge/gemfiles/modular/coverage.gemfile b/gems/zip-merge/gemfiles/modular/coverage.gemfile index 52d737872..b93014b6b 100644 --- a/gems/zip-merge/gemfiles/modular/coverage.gemfile +++ b/gems/zip-merge/gemfiles/modular/coverage.gemfile @@ -4,11 +4,11 @@ # Set KETTLE_DEV_DEV=true for local development with path-based dependencies. # When false (default / CI), remote released gems are used. -if ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false").zero? +if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? # Coverage (remote/released) platform :mri do - gem "kettle-soup-cover", "~> 3.0", ">= 3.0.3", require: false + gem 'kettle-soup-cover', '~> 3.0', '>= 3.0.3', require: false end else - eval_gemfile "coverage_local.gemfile" + eval_gemfile 'coverage_local.gemfile' end diff --git a/gems/zip-merge/gemfiles/modular/coverage_local.gemfile b/gems/zip-merge/gemfiles/modular/coverage_local.gemfile index 7f013d351..42da84fab 100644 --- a/gems/zip-merge/gemfiles/modular/coverage_local.gemfile +++ b/gems/zip-merge/gemfiles/modular/coverage_local.gemfile @@ -11,21 +11,19 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] -nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) +nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] +nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == "nomono" } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - if nomono_locked - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] - end + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked end -Kernel.send(:gem, "nomono", *nomono_activation_requirements) -require "nomono/bundler" +Kernel.send(:gem, 'nomono', *nomono_activation_requirements) +require 'nomono/bundler' local_gems = %w[kettle-dev kettle-test kettle-soup-cover kettle-drift] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) @@ -35,21 +33,21 @@ local_gems_to_eval = local_gems - %w[zip-merge] - declared_gems platform :mri do eval_nomono_gems( gems: local_gems_to_eval, - prefix: "KETTLE_DEV", - path_env: "KETTLE_DEV_DEV", - vendored_gems_env: "VENDORED_GEMS", - vendor_gem_dir_env: "VENDOR_GEM_DIR", - debug_env: "KETTLE_DEV_DEBUG" + prefix: 'KETTLE_DEV', + path_env: 'KETTLE_DEV_DEV', + vendored_gems_env: 'VENDORED_GEMS', + vendor_gem_dir_env: 'VENDOR_GEM_DIR', + debug_env: 'KETTLE_DEV_DEBUG' ) - if ENV.fetch("GALTZO_FLOSS_DEV", "false").casecmp("false") != 0 + if ENV.fetch('GALTZO_FLOSS_DEV', 'false').casecmp('false') != 0 eval_nomono_gems( gems: %w[turbo_tests2], - prefix: "GALTZO_FLOSS", - path_env: "GALTZO_FLOSS_DEV", - vendored_gems_env: "GALTZO_FLOSS_VENDORED_GEMS", - vendor_gem_dir_env: "GALTZO_FLOSS_VENDOR_GEM_DIR", - debug_env: "GALTZO_FLOSS_DEBUG" + prefix: 'GALTZO_FLOSS', + path_env: 'GALTZO_FLOSS_DEV', + vendored_gems_env: 'GALTZO_FLOSS_VENDORED_GEMS', + vendor_gem_dir_env: 'GALTZO_FLOSS_VENDOR_GEM_DIR', + debug_env: 'GALTZO_FLOSS_DEBUG' ) end end diff --git a/gems/zip-merge/gemfiles/modular/debug.gemfile b/gems/zip-merge/gemfiles/modular/debug.gemfile index 4e15b1a3a..eed8d4d1e 100644 --- a/gems/zip-merge/gemfiles/modular/debug.gemfile +++ b/gems/zip-merge/gemfiles/modular/debug.gemfile @@ -13,10 +13,10 @@ platform :mri do # Debugging - Ensure ENV["DEBUG"] == "true" to use debuggers within spec suite # Use binding.break, binding.b, or debugger in code - gem "debug", ">= 1.1" # ruby >= 2.7 + gem 'debug', '>= 1.1' # ruby >= 2.7 # Dev Console - Binding.pry - Irb replacement # gem "pry", "~> 0.14" # ruby >= 2.0 end -gem "gem_bench", "~> 2.0", ">= 2.0.5" +gem 'gem_bench', '~> 2.0', '>= 2.0.5' diff --git a/gems/zip-merge/gemfiles/modular/documentation.gemfile b/gems/zip-merge/gemfiles/modular/documentation.gemfile index d8215416e..9d4535f12 100644 --- a/gems/zip-merge/gemfiles/modular/documentation.gemfile +++ b/gems/zip-merge/gemfiles/modular/documentation.gemfile @@ -7,20 +7,20 @@ # # Documentation -gem "kramdown", "~> 2.5", ">= 2.5.2", require: false # Ruby >= 2.5 -gem "kramdown-parser-gfm", "~> 1.1", require: false # Ruby >= 2.3 -gem "yaml-converter", "~> 0.2", ">= 0.2.3", require: false # Ruby >= 3.2 -gem "yard", "~> 0.9", ">= 0.9.45", require: false -gem "yard-junk", "~> 0.1", ">= 0.1.0", require: false # Ruby >= 3.1 -gem "yard-relative_markdown_links", "~> 0.6", require: false +gem 'kramdown', '~> 2.5', '>= 2.5.2', require: false # Ruby >= 2.5 +gem 'kramdown-parser-gfm', '~> 1.1', require: false # Ruby >= 2.3 +gem 'yaml-converter', '~> 0.2', '>= 0.2.3', require: false # Ruby >= 3.2 +gem 'yard', '~> 0.9', '>= 0.9.45', require: false +gem 'yard-junk', '~> 0.1', '>= 0.1.0', require: false # Ruby >= 3.1 +gem 'yard-relative_markdown_links', '~> 0.6', require: false -if ENV.fetch("GALTZO_FLOSS_DEV", "false").casecmp("false").zero? - gem "yard-fence", "~> 0.9", ">= 0.9.6", require: false # Ruby >= 3.2 - gem "yard-timekeeper", "~> 0.2", ">= 0.2.4", require: false - gem "yard-yaml", "~> 0.2", ">= 0.2.3", require: false +if ENV.fetch('GALTZO_FLOSS_DEV', 'false').casecmp('false').zero? + gem 'yard-fence', '~> 0.9', '>= 0.9.6', require: false # Ruby >= 3.2 + gem 'yard-timekeeper', '~> 0.2', '>= 0.2.4', require: false + gem 'yard-yaml', '~> 0.2', '>= 0.2.3', require: false else - eval_gemfile "documentation_local.gemfile" + eval_gemfile 'documentation_local.gemfile' end # Std Lib extractions -gem "rdoc", "~> 6.11", require: false unless ENV.fetch("KJ_FRAMEWORK_MATRIX_GEM", "") == "rdoc" +gem 'rdoc', '~> 6.11', require: false unless ENV.fetch('KJ_FRAMEWORK_MATRIX_GEM', '') == 'rdoc' diff --git a/gems/zip-merge/gemfiles/modular/documentation_local.gemfile b/gems/zip-merge/gemfiles/modular/documentation_local.gemfile index 54b4d5d22..770f4274e 100644 --- a/gems/zip-merge/gemfiles/modular/documentation_local.gemfile +++ b/gems/zip-merge/gemfiles/modular/documentation_local.gemfile @@ -11,21 +11,19 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] -nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) +nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] +nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == "nomono" } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - if nomono_locked - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] - end + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked end -Kernel.send(:gem, "nomono", *nomono_activation_requirements) -require "nomono/bundler" +Kernel.send(:gem, 'nomono', *nomono_activation_requirements) +require 'nomono/bundler' local_gems = %w[yard-fence yard-timekeeper yard-yaml] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) @@ -34,9 +32,9 @@ local_gems_to_eval = local_gems - %w[zip-merge] - declared_gems # export GALTZO_FLOSS_DEV=/path/to/galtzo-floss eval_nomono_gems( gems: local_gems_to_eval, - prefix: "GALTZO_FLOSS", - path_env: "GALTZO_FLOSS_DEV", - vendored_gems_env: "GALTZO_FLOSS_VENDORED_GEMS", - vendor_gem_dir_env: "GALTZO_FLOSS_VENDOR_GEM_DIR", - debug_env: "GALTZO_FLOSS_DEBUG" + prefix: 'GALTZO_FLOSS', + path_env: 'GALTZO_FLOSS_DEV', + vendored_gems_env: 'GALTZO_FLOSS_VENDORED_GEMS', + vendor_gem_dir_env: 'GALTZO_FLOSS_VENDOR_GEM_DIR', + debug_env: 'GALTZO_FLOSS_DEBUG' ) diff --git a/gems/zip-merge/gemfiles/modular/erb/r2/v3.0.gemfile b/gems/zip-merge/gemfiles/modular/erb/r2/v3.0.gemfile index c03bd8d85..7c83a239b 100644 --- a/gems/zip-merge/gemfiles/modular/erb/r2/v3.0.gemfile +++ b/gems/zip-merge/gemfiles/modular/erb/r2/v3.0.gemfile @@ -1 +1 @@ -gem "erb", "~> 3.0" # ruby >= 2.7.0 +gem 'erb', '~> 3.0' # ruby >= 2.7.0 diff --git a/gems/zip-merge/gemfiles/modular/erb/r3/v5.0.gemfile b/gems/zip-merge/gemfiles/modular/erb/r3/v5.0.gemfile index 1bd029cc1..ec7ff451f 100644 --- a/gems/zip-merge/gemfiles/modular/erb/r3/v5.0.gemfile +++ b/gems/zip-merge/gemfiles/modular/erb/r3/v5.0.gemfile @@ -1 +1 @@ -gem "erb", "~> 6.0", ">= 6.0.6" # ruby >= 3.2.0 +gem 'erb', '~> 6.0', '>= 6.0.6' # ruby >= 3.2.0 diff --git a/gems/zip-merge/gemfiles/modular/erb/r4/v5.0.gemfile b/gems/zip-merge/gemfiles/modular/erb/r4/v5.0.gemfile index 1bd029cc1..ec7ff451f 100644 --- a/gems/zip-merge/gemfiles/modular/erb/r4/v5.0.gemfile +++ b/gems/zip-merge/gemfiles/modular/erb/r4/v5.0.gemfile @@ -1 +1 @@ -gem "erb", "~> 6.0", ">= 6.0.6" # ruby >= 3.2.0 +gem 'erb', '~> 6.0', '>= 6.0.6' # ruby >= 3.2.0 diff --git a/gems/zip-merge/gemfiles/modular/erb/vHEAD.gemfile b/gems/zip-merge/gemfiles/modular/erb/vHEAD.gemfile index 48fee4218..ea0101185 100644 --- a/gems/zip-merge/gemfiles/modular/erb/vHEAD.gemfile +++ b/gems/zip-merge/gemfiles/modular/erb/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 3.2 -gem "erb", github: "ruby/erb", branch: "master" +gem 'erb', github: 'ruby/erb', branch: 'master' diff --git a/gems/zip-merge/gemfiles/modular/json/truffleruby_22_3.gemfile b/gems/zip-merge/gemfiles/modular/json/truffleruby_22_3.gemfile index b0e69ab11..9b2f8d96a 100644 --- a/gems/zip-merge/gemfiles/modular/json/truffleruby_22_3.gemfile +++ b/gems/zip-merge/gemfiles/modular/json/truffleruby_22_3.gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -if RUBY_ENGINE == "truffleruby" && RUBY_ENGINE_VERSION.start_with?("22.3") +if RUBY_ENGINE == 'truffleruby' && RUBY_ENGINE_VERSION.start_with?('22.3') # TruffleRuby 22.3 ships the json default gem from its emulated MRI Ruby. - gem "json", "= 2.5.1" + gem 'json', '= 2.5.1' end diff --git a/gems/zip-merge/gemfiles/modular/json/truffleruby_23_0.gemfile b/gems/zip-merge/gemfiles/modular/json/truffleruby_23_0.gemfile index 7b2660a2b..d787a5ef4 100644 --- a/gems/zip-merge/gemfiles/modular/json/truffleruby_23_0.gemfile +++ b/gems/zip-merge/gemfiles/modular/json/truffleruby_23_0.gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -if RUBY_ENGINE == "truffleruby" && RUBY_ENGINE_VERSION.start_with?("23.0") +if RUBY_ENGINE == 'truffleruby' && RUBY_ENGINE_VERSION.start_with?('23.0') # TruffleRuby 23.0 ships the json default gem from its emulated MRI Ruby. - gem "json", "= 2.6.1" + gem 'json', '= 2.6.1' end diff --git a/gems/zip-merge/gemfiles/modular/json/truffleruby_23_1.gemfile b/gems/zip-merge/gemfiles/modular/json/truffleruby_23_1.gemfile index dfa21f2e4..d78486b0e 100644 --- a/gems/zip-merge/gemfiles/modular/json/truffleruby_23_1.gemfile +++ b/gems/zip-merge/gemfiles/modular/json/truffleruby_23_1.gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -if RUBY_ENGINE == "truffleruby" && RUBY_ENGINE_VERSION.start_with?("23.1") +if RUBY_ENGINE == 'truffleruby' && RUBY_ENGINE_VERSION.start_with?('23.1') # TruffleRuby 23.1 ships the json default gem from its emulated MRI Ruby. - gem "json", "= 2.6.3" + gem 'json', '= 2.6.3' end diff --git a/gems/zip-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile b/gems/zip-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile index 42e9d9bd4..e27f1bbae 100644 --- a/gems/zip-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile +++ b/gems/zip-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 -gem "mutex_m", "~> 0.2" +gem 'mutex_m', '~> 0.2' diff --git a/gems/zip-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile b/gems/zip-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile index 42e9d9bd4..e27f1bbae 100644 --- a/gems/zip-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile +++ b/gems/zip-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 -gem "mutex_m", "~> 0.2" +gem 'mutex_m', '~> 0.2' diff --git a/gems/zip-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile b/gems/zip-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile index 42e9d9bd4..e27f1bbae 100644 --- a/gems/zip-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile +++ b/gems/zip-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 -gem "mutex_m", "~> 0.2" +gem 'mutex_m', '~> 0.2' diff --git a/gems/zip-merge/gemfiles/modular/mutex_m/vHEAD.gemfile b/gems/zip-merge/gemfiles/modular/mutex_m/vHEAD.gemfile index 8af3b6fca..9dac2f6cb 100644 --- a/gems/zip-merge/gemfiles/modular/mutex_m/vHEAD.gemfile +++ b/gems/zip-merge/gemfiles/modular/mutex_m/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 (dependency of omniauth) -gem "mutex_m", github: "ruby/mutex_m", branch: "master" +gem 'mutex_m', github: 'ruby/mutex_m', branch: 'master' diff --git a/gems/zip-merge/gemfiles/modular/optional.gemfile b/gems/zip-merge/gemfiles/modular/optional.gemfile index 80bc45196..9ea429538 100644 --- a/gems/zip-merge/gemfiles/modular/optional.gemfile +++ b/gems/zip-merge/gemfiles/modular/optional.gemfile @@ -9,8 +9,8 @@ # Optional dependencies are not depended on directly, but may be used if present. # Required for curated binstubs generated by kettle-jem install -gem "rbs", ">= 3.0", require: false # ruby >= 3.1 +gem 'rbs', '>= 3.0', require: false # ruby >= 3.1 # Required for kettle-pre-release # URL parsing with Unicode support (falls back to URI if not available) -gem "addressable", ">= 2.8", "< 3" # ruby >= 2.2 +gem 'addressable', '>= 2.8', '< 3' # ruby >= 2.2 diff --git a/gems/zip-merge/gemfiles/modular/rspec.gemfile b/gems/zip-merge/gemfiles/modular/rspec.gemfile index 72fdf8b7f..2af210a41 100644 --- a/gems/zip-merge/gemfiles/modular/rspec.gemfile +++ b/gems/zip-merge/gemfiles/modular/rspec.gemfile @@ -1,4 +1,4 @@ -gem "rspec_junit_formatter", - github: "pboling/rspec_junit_formatter", - branch: "main", - ref: "9e6bcaaedd49477b62878ed568dc4ada5cc7cb5e" +gem 'rspec_junit_formatter', + github: 'pboling/rspec_junit_formatter', + branch: 'main', + ref: '9e6bcaaedd49477b62878ed568dc4ada5cc7cb5e' diff --git a/gems/zip-merge/gemfiles/modular/runtime_heads.gemfile b/gems/zip-merge/gemfiles/modular/runtime_heads.gemfile index 02f134c7f..ebf17c529 100644 --- a/gems/zip-merge/gemfiles/modular/runtime_heads.gemfile +++ b/gems/zip-merge/gemfiles/modular/runtime_heads.gemfile @@ -8,4 +8,4 @@ # Test against HEAD of runtime dependencies so we can proactively file bugs -eval_gemfile("x_std_libs/vHEAD.gemfile") +eval_gemfile('x_std_libs/vHEAD.gemfile') diff --git a/gems/zip-merge/gemfiles/modular/stringio/r2/v3.0.gemfile b/gems/zip-merge/gemfiles/modular/stringio/r2/v3.0.gemfile index e85bb18ee..3616f4e3a 100644 --- a/gems/zip-merge/gemfiles/modular/stringio/r2/v3.0.gemfile +++ b/gems/zip-merge/gemfiles/modular/stringio/r2/v3.0.gemfile @@ -2,4 +2,4 @@ # NOT SEMVER # Version 3.0.7 dropped support for Ruby <= 2.7 # Version 3.0.0 dropped support for Ruby <= 2.4 -gem "stringio", ">= 3.0" +gem 'stringio', '>= 3.0' diff --git a/gems/zip-merge/gemfiles/modular/stringio/r3/v3.0.gemfile b/gems/zip-merge/gemfiles/modular/stringio/r3/v3.0.gemfile index e85bb18ee..3616f4e3a 100644 --- a/gems/zip-merge/gemfiles/modular/stringio/r3/v3.0.gemfile +++ b/gems/zip-merge/gemfiles/modular/stringio/r3/v3.0.gemfile @@ -2,4 +2,4 @@ # NOT SEMVER # Version 3.0.7 dropped support for Ruby <= 2.7 # Version 3.0.0 dropped support for Ruby <= 2.4 -gem "stringio", ">= 3.0" +gem 'stringio', '>= 3.0' diff --git a/gems/zip-merge/gemfiles/modular/stringio/r4/v3.0.gemfile b/gems/zip-merge/gemfiles/modular/stringio/r4/v3.0.gemfile index e85bb18ee..3616f4e3a 100644 --- a/gems/zip-merge/gemfiles/modular/stringio/r4/v3.0.gemfile +++ b/gems/zip-merge/gemfiles/modular/stringio/r4/v3.0.gemfile @@ -2,4 +2,4 @@ # NOT SEMVER # Version 3.0.7 dropped support for Ruby <= 2.7 # Version 3.0.0 dropped support for Ruby <= 2.4 -gem "stringio", ">= 3.0" +gem 'stringio', '>= 3.0' diff --git a/gems/zip-merge/gemfiles/modular/stringio/vHEAD.gemfile b/gems/zip-merge/gemfiles/modular/stringio/vHEAD.gemfile index 5f2a74126..78f5f5d8a 100644 --- a/gems/zip-merge/gemfiles/modular/stringio/vHEAD.gemfile +++ b/gems/zip-merge/gemfiles/modular/stringio/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 (dependency of omniauth) -gem "stringio", github: "ruby/stringio", branch: "master" +gem 'stringio', github: 'ruby/stringio', branch: 'master' diff --git a/gems/zip-merge/gemfiles/modular/style.gemfile b/gems/zip-merge/gemfiles/modular/style.gemfile index 35de4dcd6..4dbcc02c0 100644 --- a/gems/zip-merge/gemfiles/modular/style.gemfile +++ b/gems/zip-merge/gemfiles/modular/style.gemfile @@ -9,23 +9,23 @@ # Style tasks run on the latest Ruby; RuboCop-LTS selects the compatibility # rules for the configured Ruby floor independently from task dependency floors. -gem "reek", "~> 6.5", ">= 6.5.0" +gem 'reek', '~> 6.5', '>= 6.5.0' platform :mri do - gem "appraisal2-rubocop", "~> 1.0", ">= 1.0.0", require: false - gem "rubocop-gradual", "~> 0.4", ">= 0.4.0" - gem "rubocop-minitest", "~> 0.40", ">= 0.40.0" - gem "rubocop-on-rbs", "~> 2.0", ">= 2.0.0" # ruby >= 3.2.0 + gem 'appraisal2-rubocop', '~> 1.0', '>= 1.0.0', require: false + gem 'rubocop-gradual', '~> 0.4', '>= 0.4.0' + gem 'rubocop-minitest', '~> 0.40', '>= 0.40.0' + gem 'rubocop-on-rbs', '~> 2.0', '>= 2.0.0' # ruby >= 3.2.0 # gem "rubocop", "~> 1.73", ">= 1.73.2" # constrained by standard - gem "rubocop-packaging", "~> 0.6", ">= 0.6.0" - gem "standard", "~> 1.56", ">= 1.56.0" + gem 'rubocop-packaging', '~> 0.6', '>= 0.6.0' + gem 'standard', '~> 1.56', '>= 1.56.0' - if ENV.fetch("RUBOCOP_LTS_LOCAL", "false").casecmp("false").zero? + if ENV.fetch('RUBOCOP_LTS_LOCAL', 'false').casecmp('false').zero? declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) - gem "rubocop-lts", "~> 24.2", ">= 24.2.1" unless declared_gems.include?("rubocop-lts") - gem "rubocop-lts-rspec", "~> 1.0", ">= 1.0.5" unless declared_gems.include?("rubocop-lts-rspec") - gem "rubocop-ruby3_2", "~> 3.0", ">= 3.0.6" unless declared_gems.include?("rubocop-ruby3_2") + gem 'rubocop-lts', '~> 24.2', '>= 24.2.1' unless declared_gems.include?('rubocop-lts') + gem 'rubocop-lts-rspec', '~> 1.0', '>= 1.0.5' unless declared_gems.include?('rubocop-lts-rspec') + gem 'rubocop-ruby3_2', '~> 3.0', '>= 3.0.6' unless declared_gems.include?('rubocop-ruby3_2') else - eval_gemfile("style_local.gemfile") + eval_gemfile('style_local.gemfile') end end diff --git a/gems/zip-merge/gemfiles/modular/style_local.gemfile b/gems/zip-merge/gemfiles/modular/style_local.gemfile index 5ac7cf26d..b034ea58a 100644 --- a/gems/zip-merge/gemfiles/modular/style_local.gemfile +++ b/gems/zip-merge/gemfiles/modular/style_local.gemfile @@ -14,21 +14,19 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] -nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) +nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] +nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == "nomono" } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - if nomono_locked - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] - end + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked end -Kernel.send(:gem, "nomono", *nomono_activation_requirements) -require "nomono/bundler" +Kernel.send(:gem, 'nomono', *nomono_activation_requirements) +require 'nomono/bundler' local_gems = %w[rubocop-lts rubocop-lts-rspec rubocop-ruby3_2 standard-rubocop-lts] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) @@ -38,11 +36,11 @@ local_gems_to_eval = local_gems - %w[zip-merge] - declared_gems platform :mri do eval_nomono_gems( gems: local_gems_to_eval, - prefix: "RUBOCOP_LTS", - path_env: "RUBOCOP_LTS_LOCAL", - vendored_gems_env: "VENDORED_GEMS", - vendor_gem_dir_env: "VENDOR_GEM_DIR", - debug_env: "RUBOCOP_LTS_DEBUG", - root: ["src", "rubocop-lts"] + prefix: 'RUBOCOP_LTS', + path_env: 'RUBOCOP_LTS_LOCAL', + vendored_gems_env: 'VENDORED_GEMS', + vendor_gem_dir_env: 'VENDOR_GEM_DIR', + debug_env: 'RUBOCOP_LTS_DEBUG', + root: %w[src rubocop-lts] ) end diff --git a/gems/zip-merge/gemfiles/modular/templating.gemfile b/gems/zip-merge/gemfiles/modular/templating.gemfile index 47138ffbb..a672de184 100644 --- a/gems/zip-merge/gemfiles/modular/templating.gemfile +++ b/gems/zip-merge/gemfiles/modular/templating.gemfile @@ -1,18 +1,18 @@ # frozen_string_literal: true -structuredmerge_remote = ENV.fetch("STRUCTUREDMERGE_DEV", "false").casecmp("false").zero? -kettle_remote = ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false").zero? +structuredmerge_remote = ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false').zero? +kettle_remote = ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? if structuredmerge_remote # Parser dependencies for released installs. - gem "tree_sitter_language_pack", "~> 1.13", ">= 1.13.3" + gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' # Merge recipes for released installs. - gem "kettle-jem", ">= 7.0" + gem 'kettle-jem', '>= 7.0' end if kettle_remote # Template/plugin checks for released installs. - gem "kettle-drift", "~> 1.0", ">= 1.0.6", require: false + gem 'kettle-drift', '~> 1.0', '>= 1.0.6', require: false end # Set STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local development with path-based dependencies. @@ -21,4 +21,4 @@ end # # Set KETTLE_DEV_DEV=/path/to/my for local development with Kettle plugin gems. # When false (default / CI), released Kettle plugin gems are used. -eval_gemfile "templating_local.gemfile" unless structuredmerge_remote && kettle_remote +eval_gemfile 'templating_local.gemfile' unless structuredmerge_remote && kettle_remote diff --git a/gems/zip-merge/gemfiles/modular/templating_local.gemfile b/gems/zip-merge/gemfiles/modular/templating_local.gemfile index 81377c103..8dbb2f55f 100644 --- a/gems/zip-merge/gemfiles/modular/templating_local.gemfile +++ b/gems/zip-merge/gemfiles/modular/templating_local.gemfile @@ -12,21 +12,19 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] -nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) +nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] +nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == "nomono" } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - if nomono_locked - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] - end + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked end -Kernel.send(:gem, "nomono", *nomono_activation_requirements) -require "nomono/bundler" +Kernel.send(:gem, 'nomono', *nomono_activation_requirements) +require 'nomono/bundler' structuredmerge_local_gems = %w[ tree_haver @@ -69,25 +67,25 @@ structuredmerge_local_gems_to_eval = structuredmerge_local_gems - %w[zip-merge] kettle_dev_local_gems_to_eval = kettle_dev_local_gems - %w[zip-merge] - declared_gems platform :mri do - if ENV.fetch("STRUCTUREDMERGE_DEV", "false").casecmp("false") != 0 + if ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false') != 0 eval_nomono_gems( gems: structuredmerge_local_gems_to_eval, - prefix: "STRUCTUREDMERGE", - path_env: "STRUCTUREDMERGE_DEV", - vendored_gems_env: "VENDORED_GEMS", - vendor_gem_dir_env: "VENDOR_GEM_DIR", - debug_env: "STRUCTUREDMERGE_DEBUG" + prefix: 'STRUCTUREDMERGE', + path_env: 'STRUCTUREDMERGE_DEV', + vendored_gems_env: 'VENDORED_GEMS', + vendor_gem_dir_env: 'VENDOR_GEM_DIR', + debug_env: 'STRUCTUREDMERGE_DEBUG' ) end - if ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false") != 0 + if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false') != 0 eval_nomono_gems( gems: kettle_dev_local_gems_to_eval, - prefix: "KETTLE_DEV", - path_env: "KETTLE_DEV_DEV", - vendored_gems_env: "VENDORED_GEMS", - vendor_gem_dir_env: "VENDOR_GEM_DIR", - debug_env: "KETTLE_DEV_DEBUG" + prefix: 'KETTLE_DEV', + path_env: 'KETTLE_DEV_DEV', + vendored_gems_env: 'VENDORED_GEMS', + vendor_gem_dir_env: 'VENDOR_GEM_DIR', + debug_env: 'KETTLE_DEV_DEBUG' ) end end diff --git a/gems/zip-merge/gemfiles/modular/webrick/r4/v1.9.gemfile b/gems/zip-merge/gemfiles/modular/webrick/r4/v1.9.gemfile index eaab4a473..b1329ba84 100644 --- a/gems/zip-merge/gemfiles/modular/webrick/r4/v1.9.gemfile +++ b/gems/zip-merge/gemfiles/modular/webrick/r4/v1.9.gemfile @@ -1 +1 @@ -gem "webrick", "~> 1.9" +gem 'webrick', '~> 1.9' diff --git a/gems/zip-merge/gemfiles/modular/webrick/vHEAD.gemfile b/gems/zip-merge/gemfiles/modular/webrick/vHEAD.gemfile index 8a789b634..c7e6f81a1 100644 --- a/gems/zip-merge/gemfiles/modular/webrick/vHEAD.gemfile +++ b/gems/zip-merge/gemfiles/modular/webrick/vHEAD.gemfile @@ -1 +1 @@ -gem "webrick", ">= 1.9" +gem 'webrick', '>= 1.9' diff --git a/gems/zip-merge/gemfiles/modular/x_std_libs.gemfile b/gems/zip-merge/gemfiles/modular/x_std_libs.gemfile index 77aad43f2..b1f43c097 100644 --- a/gems/zip-merge/gemfiles/modular/x_std_libs.gemfile +++ b/gems/zip-merge/gemfiles/modular/x_std_libs.gemfile @@ -1,12 +1,12 @@ ### Std Lib Extracted Gems ruby_version = Gem::Version.new(RUBY_VERSION) -if ruby_version >= Gem::Version.new("4.0") - eval_gemfile "x_std_libs/r4/libs.gemfile" -elsif ruby_version >= Gem::Version.new("3.2") - eval_gemfile "x_std_libs/r3/libs.gemfile" -elsif ruby_version >= Gem::Version.new("3.1") - eval_gemfile "x_std_libs/r3.1/libs.gemfile" +if ruby_version >= Gem::Version.new('4.0') + eval_gemfile 'x_std_libs/r4/libs.gemfile' +elsif ruby_version >= Gem::Version.new('3.2') + eval_gemfile 'x_std_libs/r3/libs.gemfile' +elsif ruby_version >= Gem::Version.new('3.1') + eval_gemfile 'x_std_libs/r3.1/libs.gemfile' else - eval_gemfile "x_std_libs/r2/libs.gemfile" + eval_gemfile 'x_std_libs/r2/libs.gemfile' end diff --git a/gems/zip-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile b/gems/zip-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile index 441c4f03a..16a5e3d70 100644 --- a/gems/zip-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile +++ b/gems/zip-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile @@ -1,3 +1,3 @@ -eval_gemfile "../../erb/r2/v3.0.gemfile" -eval_gemfile "../../mutex_m/r2/v0.3.gemfile" -eval_gemfile "../../stringio/r2/v3.0.gemfile" +eval_gemfile '../../erb/r2/v3.0.gemfile' +eval_gemfile '../../mutex_m/r2/v0.3.gemfile' +eval_gemfile '../../stringio/r2/v3.0.gemfile' diff --git a/gems/zip-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile b/gems/zip-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile index c293a3ddd..220ff95c1 100644 --- a/gems/zip-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile +++ b/gems/zip-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile @@ -1,3 +1,3 @@ -eval_gemfile "../../erb/r3/v5.0.gemfile" -eval_gemfile "../../mutex_m/r3/v0.3.gemfile" -eval_gemfile "../../stringio/r3/v3.0.gemfile" +eval_gemfile '../../erb/r3/v5.0.gemfile' +eval_gemfile '../../mutex_m/r3/v0.3.gemfile' +eval_gemfile '../../stringio/r3/v3.0.gemfile' diff --git a/gems/zip-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile b/gems/zip-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile index eb5574247..e2f6501eb 100644 --- a/gems/zip-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile +++ b/gems/zip-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile @@ -1,6 +1,6 @@ -eval_gemfile "../../erb/r4/v5.0.gemfile" -eval_gemfile "../../mutex_m/r4/v0.3.gemfile" -eval_gemfile "../../stringio/r4/v3.0.gemfile" -eval_gemfile "../../benchmark/r4/v0.5.gemfile" -eval_gemfile "../../cgi/r4/v0.5.gemfile" -eval_gemfile "../../webrick/r4/v1.9.gemfile" +eval_gemfile '../../erb/r4/v5.0.gemfile' +eval_gemfile '../../mutex_m/r4/v0.3.gemfile' +eval_gemfile '../../stringio/r4/v3.0.gemfile' +eval_gemfile '../../benchmark/r4/v0.5.gemfile' +eval_gemfile '../../cgi/r4/v0.5.gemfile' +eval_gemfile '../../webrick/r4/v1.9.gemfile' diff --git a/gems/zip-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile b/gems/zip-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile index d4d5b16c9..ab75cccf1 100644 --- a/gems/zip-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile +++ b/gems/zip-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile @@ -1,6 +1,6 @@ -eval_gemfile "../erb/vHEAD.gemfile" -eval_gemfile "../mutex_m/vHEAD.gemfile" -eval_gemfile "../stringio/vHEAD.gemfile" -eval_gemfile "../benchmark/vHEAD.gemfile" -eval_gemfile "../cgi/vHEAD.gemfile" -eval_gemfile "../webrick/vHEAD.gemfile" +eval_gemfile '../erb/vHEAD.gemfile' +eval_gemfile '../mutex_m/vHEAD.gemfile' +eval_gemfile '../stringio/vHEAD.gemfile' +eval_gemfile '../benchmark/vHEAD.gemfile' +eval_gemfile '../cgi/vHEAD.gemfile' +eval_gemfile '../webrick/vHEAD.gemfile' diff --git a/gems/zip-merge/lib/zip/merge/version.rb b/gems/zip-merge/lib/zip/merge/version.rb index 7f72cea08..b04b544a9 100644 --- a/gems/zip-merge/lib/zip/merge/version.rb +++ b/gems/zip-merge/lib/zip/merge/version.rb @@ -3,7 +3,7 @@ module Zip module Merge module Version - VERSION = "7.1.0" + VERSION = '7.1.0' end VERSION = Version::VERSION # Traditional Constant Location end From b660b6b0d299612c1dd68c4b4e19dd803cb43d24 Mon Sep 17 00:00:00 2001 From: "Peter H. Boling" Date: Tue, 21 Jul 2026 13:54:51 -0600 Subject: [PATCH 137/188] =?UTF-8?q?=F0=9F=8E=A8=20Template=20bootstrap=20b?= =?UTF-8?q?y=20kettle-jem=20v7.1.0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gems/binary-merge/Gemfile.lock | 339 +++++++++++++++++- gems/psych-merge/.kettle-drift.lock | 9 - gems/psych-merge/README.md | 5 +- .../modular/benchmark/r4/v0.5.gemfile | 2 +- .../gemfiles/modular/benchmark/vHEAD.gemfile | 2 +- .../gemfiles/modular/cgi/r4/v0.5.gemfile | 1 + .../gemfiles/modular/cgi/vHEAD.gemfile | 1 + .../gemfiles/modular/coverage.gemfile | 6 +- .../gemfiles/modular/coverage_local.gemfile | 48 ++- .../gemfiles/modular/debug.gemfile | 4 +- .../gemfiles/modular/documentation.gemfile | 24 +- .../modular/documentation_local.gemfile | 38 +- .../gemfiles/modular/erb/r2/v3.0.gemfile | 2 +- .../gemfiles/modular/erb/r3/v5.0.gemfile | 2 +- .../gemfiles/modular/erb/r4/v5.0.gemfile | 2 +- .../gemfiles/modular/erb/vHEAD.gemfile | 2 +- .../modular/json/truffleruby_22_3.gemfile | 6 + .../modular/json/truffleruby_23_0.gemfile | 6 + .../modular/json/truffleruby_23_1.gemfile | 6 + .../gemfiles/modular/mutex_m/r2/v0.3.gemfile | 2 +- .../gemfiles/modular/mutex_m/r3/v0.3.gemfile | 2 +- .../gemfiles/modular/mutex_m/r4/v0.3.gemfile | 2 +- .../gemfiles/modular/mutex_m/vHEAD.gemfile | 2 +- .../gemfiles/modular/optional.gemfile | 7 +- .../gemfiles/modular/rspec.gemfile | 8 +- .../gemfiles/modular/runtime_heads.gemfile | 7 +- .../gemfiles/modular/stringio/r2/v3.0.gemfile | 2 +- .../gemfiles/modular/stringio/r3/v3.0.gemfile | 2 +- .../gemfiles/modular/stringio/r4/v3.0.gemfile | 2 +- .../gemfiles/modular/stringio/vHEAD.gemfile | 2 +- .../gemfiles/modular/style.gemfile | 29 +- .../gemfiles/modular/style_local.gemfile | 44 ++- .../gemfiles/modular/templating.gemfile | 14 +- .../gemfiles/modular/templating_local.gemfile | 48 ++- .../gemfiles/modular/webrick/r4/v1.9.gemfile | 1 + .../gemfiles/modular/webrick/vHEAD.gemfile | 1 + .../gemfiles/modular/x_std_libs.gemfile | 14 +- .../modular/x_std_libs/r2/libs.gemfile | 6 +- .../modular/x_std_libs/r3/libs.gemfile | 6 +- .../modular/x_std_libs/r4/libs.gemfile | 10 +- .../gemfiles/modular/x_std_libs/vHEAD.gemfile | 10 +- gems/zip-merge/Gemfile.lock | 18 +- 42 files changed, 596 insertions(+), 148 deletions(-) create mode 100644 gems/psych-merge/gemfiles/modular/cgi/r4/v0.5.gemfile create mode 100644 gems/psych-merge/gemfiles/modular/cgi/vHEAD.gemfile create mode 100644 gems/psych-merge/gemfiles/modular/json/truffleruby_22_3.gemfile create mode 100644 gems/psych-merge/gemfiles/modular/json/truffleruby_23_0.gemfile create mode 100644 gems/psych-merge/gemfiles/modular/json/truffleruby_23_1.gemfile create mode 100644 gems/psych-merge/gemfiles/modular/webrick/r4/v1.9.gemfile create mode 100644 gems/psych-merge/gemfiles/modular/webrick/vHEAD.gemfile diff --git a/gems/binary-merge/Gemfile.lock b/gems/binary-merge/Gemfile.lock index e3427b3db..950783ddf 100644 --- a/gems/binary-merge/Gemfile.lock +++ b/gems/binary-merge/Gemfile.lock @@ -6,7 +6,235 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/tree_haver + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly + specs: + ast-crispr-markdown-markly (7.1.0) + ast-crispr (= 7.1.0) + markly-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism + specs: + ast-crispr-ruby-prism (7.1.0) + ast-crispr (= 7.1.0) + prism-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr + specs: + ast-crispr (7.1.0) + ast-merge (= 7.1.0) + service_actor (~> 3.9) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git + specs: + ast-merge-git (7.1.0) + ast-merge (= 7.1.0) + json-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge + specs: + ast-merge (7.1.0) + benchmark + token-resolver (~> 2.0, >= 2.0.4) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template + specs: + ast-template (7.1.0) + ast-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge + specs: + bash-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge + specs: + citrus-toml-merge (7.1.0) + toml-merge (= 7.1.0) + toml-rb (~> 4.1) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge + specs: + commonmarker-merge (7.1.0) + commonmarker (~> 2.2) + markdown-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge + specs: + dotenv-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge + specs: + go-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge + specs: + json-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem + specs: + kettle-jem (7.1.0) + addressable (>= 2.8, < 3) + ast-crispr-markdown-markly (= 7.1.0) + ast-crispr-ruby-prism (= 7.1.0) + ast-merge (= 7.1.0) + bash-merge (= 7.1.0) + citrus-toml-merge (= 7.1.0) + commonmarker-merge (= 7.1.0) + dotenv-merge (= 7.1.0) + json-merge (= 7.1.0) + kettle-dev (~> 2.3, >= 2.3.5) + kettle-rb (~> 0.1, >= 0.1.4) + kramdown-merge (= 7.1.0) + markdown-merge (= 7.1.0) + markly-merge (= 7.1.0) + prism-merge (= 7.1.0) + psych-merge (= 7.1.0) + rbs (>= 3.10) + rbs-merge (= 7.1.0) + ruby-merge (= 7.1.0) + token-resolver (~> 2.0, >= 2.0.4) + toml-merge (= 7.1.0) + toml-rb (~> 4.2) + tree_haver (= 7.1.0) + yaml-merge (= 7.1.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge + specs: + kramdown-merge (7.1.0) + kramdown (~> 2.5) + markdown-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge + specs: + markdown-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge + specs: + markly-merge (7.1.0) + markdown-merge (= 7.1.0) + markly (~> 0.9) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge + specs: + parslet-toml-merge (7.1.0) + toml (~> 0.3) + toml-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge + specs: + plain-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge + specs: + prism-merge (7.1.0) + prism (~> 1.6) + ruby-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge + specs: + psych-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + yaml-merge (= 7.1.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge + specs: + rbs-merge (7.1.0) + ast-merge (= 7.1.0) + rbs (>= 3.10) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge + specs: + ruby-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge + specs: + rust-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb + specs: + smorg-rb (7.1.0) + ast-merge (= 7.1.0) + ast-merge-git (= 7.1.0) + go-merge (= 7.1.0) + json-merge (= 7.1.0) + kettle-jem (= 7.1.0) + markly-merge (= 7.1.0) + plain-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge + specs: + toml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver specs: tree_haver (7.1.0) citrus (~> 3.0) @@ -14,6 +242,29 @@ PATH tree_sitter_language_pack (>= 1.13.2, < 2.0) version_gem (~> 1.1, >= 1.1.9) +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge + specs: + typescript-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge + specs: + yaml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge + specs: + zip-merge (7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + GEM remote: https://gem.coop/ specs: @@ -38,6 +289,11 @@ GEM cgi (0.5.2) citrus (3.0.2) cmdparse (3.0.7) + commonmarker (2.9.0-aarch64-linux) + commonmarker (2.9.0-aarch64-linux-musl) + commonmarker (2.9.0-arm64-darwin) + commonmarker (2.9.0-x86_64-linux) + commonmarker (2.9.0-x86_64-linux-musl) concurrent-ruby (1.3.8) date (3.5.1) debug (1.11.1) @@ -100,6 +356,8 @@ GEM kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) + kettle-drift (1.0.6) + version_gem (~> 1.1, >= 1.1.14) kettle-rb (0.1.5) kettle-soup-cover (3.0.4) kettle-wash (~> 0.1, >= 0.1.0) @@ -128,6 +386,7 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) + markly (0.16.0) mutex_m (0.3.0) nokogiri (1.19.4-aarch64-linux-gnu) racc (~> 1.4) @@ -290,6 +549,8 @@ GEM ruby-progressbar (1.13.0) ruby_engine (2.0.3) ruby_version (1.0.3) + service_actor (3.9.4) + zeitwerk (>= 1.0) silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) @@ -341,6 +602,14 @@ GEM delegate (~> 0.1) rspec (~> 3.0) timecop (>= 0.7, < 1) + token-resolver (2.0.5) + parslet (~> 2.0) + version_gem (~> 1.1, >= 1.1.14) + toml (0.3.0) + parslet (>= 1.8.0, < 3.0.0) + toml-rb (4.2.0) + citrus (~> 3.0, > 3.0) + racc (~> 1.7) tree_sitter_language_pack (1.13.3-aarch64-linux) sorbet-runtime (~> 0.5) tree_sitter_language_pack (1.13.3-arm64-darwin) @@ -395,24 +664,46 @@ DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) appraisal2-rubocop (~> 1.0, >= 1.0.0) + ast-crispr! + ast-crispr-markdown-markly! + ast-crispr-ruby-prism! + ast-merge! + ast-merge-git! + ast-template! + bash-merge! benchmark (~> 0.5, >= 0.5.0) binary-merge! bundler-audit (~> 0.9.3) cgi (~> 0.5) + citrus-toml-merge! + commonmarker-merge! debug (>= 1.1) + dotenv-merge! erb (~> 6.0, >= 6.0.6) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.0) + go-merge! irb (~> 1.17) + json-merge! kettle-dev (~> 2.0, >= 2.2.25) + kettle-drift (~> 1.0, >= 1.0.6) + kettle-jem! kettle-soup-cover (~> 3.0, >= 3.0.3) kettle-test (~> 2.0, >= 2.0.9) kramdown (~> 2.5, >= 2.5.2) + kramdown-merge! kramdown-parser-gfm (~> 1.1) + markdown-merge! + markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) + parslet-toml-merge! + plain-merge! + prism-merge! + psych-merge! rake (~> 13.0) rbs (>= 3.0) + rbs-merge! rdoc (~> 6.11) reek (~> 6.5, >= 6.5.0) require_bench (~> 1.0, >= 1.0.4) @@ -423,20 +714,27 @@ DEPENDENCIES rubocop-on-rbs (~> 2.0, >= 2.0.0) rubocop-packaging (~> 0.6, >= 0.6.0) rubocop-ruby3_2 (~> 3.0, >= 3.0.6) + ruby-merge! ruby-progressbar (~> 1.13) + rust-merge! + smorg-rb! standard (~> 1.56, >= 1.56.0) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) + toml-merge! tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) + typescript-merge! webrick (~> 1.9) yaml-converter (~> 0.2, >= 0.2.3) + yaml-merge! yard (~> 0.9, >= 0.9.45) yard-fence (~> 0.9, >= 0.9.6) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) yard-timekeeper (~> 0.2, >= 0.2.4) yard-yaml (~> 0.2, >= 0.2.3) + zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af @@ -444,20 +742,35 @@ CHECKSUMS appraisal2 (3.2.0) sha256=ccd0b767ac4060cd7af6d16747459b6990f49c39c7b4fb1f7d1146b1e97c492f appraisal2-rubocop (1.0.0) sha256=b71410fbb014befda5340605a605b7f6f3f012739baf0acc5b4351b592c3258d ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 + ast-crispr (7.1.0) + ast-crispr-markdown-markly (7.1.0) + ast-crispr-ruby-prism (7.1.0) + ast-merge (7.1.0) + ast-merge-git (7.1.0) + ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 + bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 + citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 + commonmarker (2.9.0-aarch64-linux) sha256=e2b4aadb9a2cfa4e206582641ce3a49465549ac1ed4c289fdd63b78d8f24579c + commonmarker (2.9.0-aarch64-linux-musl) sha256=1cf4d2821f2a7e64945f1ed7c4eeced586fdb27ea7fe7337788802cf8f57cfca + commonmarker (2.9.0-arm64-darwin) sha256=1748dbfa4f5813b0d2a14bb4bbfa65a4ec293aa1c825016d60029ee0e132b046 + commonmarker (2.9.0-x86_64-linux) sha256=8cfe92970eef585a19ddf6613224b91cab64d6029834661bda801f877c9c7f43 + commonmarker (2.9.0-x86_64-linux-musl) sha256=293921398b839f79ceaf55010e061357e34f053822c3b003cd0be6686176335e + commonmarker-merge (7.1.0) concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 + dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -470,20 +783,28 @@ CHECKSUMS gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f + go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 + json-merge (7.1.0) kettle-dev (2.3.8) sha256=9d716ff21c660a730cb4e8d41e2e2f0630a28167a354b6e2924e242102aef72c + kettle-drift (1.0.6) sha256=46eda08fa4411d1f3c6682a95eef1c9df4e94611b3949f49d4c7b43c0ed356a3 + kettle-jem (7.1.0) kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f kettle-soup-cover (3.0.4) kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa + kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 + markdown-merge (7.1.0) + markly (0.16.0) sha256=6f70d79e385b1efc9e171f74c81628826259039fe6c778e03c3924c71dac5511 + markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-aarch64-linux-gnu) sha256=1269fb644a6de405057a53dd5c762b1209b43ca7424f839454d3dbc677c31a8f nokogiri (1.19.4-aarch64-linux-musl) sha256=35c65b9ce72b3bb03207bdbe7067915019dc18c1b9b59139684bd6690fdd01af @@ -497,15 +818,20 @@ CHECKSUMS parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 + parslet-toml-merge (7.1.0) + plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 + prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 + psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 + rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb @@ -540,15 +866,19 @@ CHECKSUMS rubocop-rspec_rails (2.32.0) sha256=4a0d641c72f6ebb957534f539d9d0a62c47abd8ce0d0aeee1ef4701e892a9100 rubocop-ruby3_2 (3.0.7) sha256=f53dd6d286fb05186214fc6ec116783e7f837030918e8931c05de773e98f8466 rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 + ruby-merge (7.1.0) ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 + rust-merge (7.1.0) + service_actor (3.9.4) sha256=e63b523630b9a7e62959b2a90113b08d2565b5de9c148557b281ef847c9539ce silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed + smorg-rb (7.1.0) sorbet-runtime (0.6.13347) sha256=54e7221d9f4b63f58aec79f3043752a9ba7810347c6ae0d903531591cc2d5f01 standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b @@ -562,17 +892,23 @@ CHECKSUMS thor (1.5.0) sha256=e3a9e55fe857e44859ce104a84675ab6e8cd59c650a49106a05f55f136425e73 timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 + token-resolver (2.0.5) sha256=b852f924287ffb58a440856e862b056c8ad97e74b4b2526cee43e0771f40c25c + toml (0.3.0) sha256=0a91d0f76a9036e84e44f95693b12f58d358c1df3ac8e3b5271f2056ecc6e4b9 + toml-merge (7.1.0) + toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-aarch64-linux) sha256=55ffc7c87868cb45658338363d9eba51b4a8b0259aa88e4de368d2bd1d52fea4 tree_sitter_language_pack (1.13.3-arm64-darwin) sha256=bc2498db605f212a1dbd2465ed3f65190d7da786f6ed5d30fcf958121aeb4a5c tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 + typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 webrick (1.9.2) sha256=beb4a15fc474defed24a3bda4ffd88a490d517c9e4e6118c3edce59e45864131 yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 + yaml-merge (7.1.0) yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd @@ -580,6 +916,7 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 + zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH diff --git a/gems/psych-merge/.kettle-drift.lock b/gems/psych-merge/.kettle-drift.lock index f271dc59e..67b3ec1cf 100644 --- a/gems/psych-merge/.kettle-drift.lock +++ b/gems/psych-merge/.kettle-drift.lock @@ -52,14 +52,5 @@ 89 ] } - ], - "vendored_gems_env: 'VENDORED_GEMS',\nvendor_gem_dir_env: 'VENDOR_GEM_DIR',": [ - { - "file": "gemfiles/modular/templating_local.gemfile", - "lines": [ - 55, - 66 - ] - } ] } diff --git a/gems/psych-merge/README.md b/gems/psych-merge/README.md index a9ba95cb0..8d0b3412e 100644 --- a/gems/psych-merge/README.md +++ b/gems/psych-merge/README.md @@ -74,7 +74,7 @@ File.write("merged.yml", result.to_yaml) | Tokens to Remember | [![Gem name][⛳️name-img]][⛳️gem-name] [![Gem namespace][⛳️namespace-img]][⛳️gem-namespace] | |-------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | Works with MRI Ruby 4 | [![Ruby current Compat][💎ruby-c-i]][🚎11-c-wf]| -| Support & Community | [![Join Me on Daily.dev's RubyFriends][✉️ruby-friends-img]][✉️ruby-friends] [![Live Chat on Discord][✉️discord-invite-img-ftb]][✉️discord-invite] [![Get help from me on Upwork][👨🏼‍🏫expsup-upwork-img]][👨🏼‍🏫expsup-upwork] [![Get help from me on Codementor][👨🏼‍🏫expsup-codementor-img]][👨🏼‍🏫expsup-codementor] | +| Support & Community | [![Join Me on Daily.dev's RubyFriends][✉️ruby-friends-img]][✉️ruby-friends] [![Get help from RubyForum][✉️ruby-forum-img]][✉️ruby-forum] [![Live Chat on Discord][✉️discord-invite-img-ftb]][✉️discord-invite] [![Get help from me on Upwork][👨🏼‍🏫expsup-upwork-img]][👨🏼‍🏫expsup-upwork] [![Get help from me on Codementor][👨🏼‍🏫expsup-codementor-img]][👨🏼‍🏫expsup-codementor] | | Source | [![Source on GitLab.com][📜src-gl-img]][📜src-gl] [![Source on CodeBerg.org][📜src-cb-img]][📜src-cb] [![Source on Github.com][📜src-gh-img]][📜src-gh] [![The best SHA: dQw4w9WgXcQ!][🧮kloc-img]][🧮kloc] | | Documentation | [![Current release on RubyDoc.info][📜docs-cr-rd-img]][🚎yard-current] [![YARD on Galtzo.com][📜docs-head-rd-img]][🚎yard-head] [![Maintainer Blog][🚂maint-blog-img]][🚂maint-blog] [![GitLab Wiki][📜gl-wiki-img]][📜gl-wiki] [![GitHub Wiki][📜gh-wiki-img]][📜gh-wiki] | | Compliance | [![License: AGPL-3.0-only OR PolyForm-Small-Business-1.0.0][📄license-img]][📄license] [![Apache license compatibility: Category X][📄license-compat-img]][📄license-compat] [![📄ilo-declaration-img]][📄ilo-declaration] [![Security Policy][🔐security-img]][🔐security] [![Contributor Covenant 2.1][🪇conduct-img]][🪇conduct] [![SemVer 2.0.0][📌semver-img]][📌semver] | @@ -374,6 +374,8 @@ If none of the available licenses suit your use case, please [contact us](mailto [✉️discord-invite-img-ftb]: https://img.shields.io/discord/1373797679469170758?style=for-the-badge&logo=discord [✉️ruby-friends-img]: https://img.shields.io/badge/daily.dev-%F0%9F%92%8E_Ruby_Friends-0A0A0A?style=for-the-badge&logo=dailydotdev&logoColor=white [✉️ruby-friends]: https://app.daily.dev/squads/rubyfriends +[✉️ruby-forum-img]: https://img.shields.io/badge/RubyForum-Help-CC342D?style=for-the-badge&logo=ruby&logoColor=white +[✉️ruby-forum]: https://www.rubyforum.org/c/help/8 [✇bundle-group-pattern]: https://gist.github.com/pboling/4564780 [⛳️gem-namespace]: https://github.com/structuredmerge/structuredmerge-ruby/tree/main/gems/psych-merge [⛳️namespace-img]: https://img.shields.io/badge/namespace-Psych::Merge-3C2D2D.svg?style=square&logo=ruby&logoColor=white @@ -444,6 +446,7 @@ If none of the available licenses suit your use case, please [contact us](mailto [🖐contrib-rocks]: https://contrib.rocks [🖐contributors]: https://github.com/structuredmerge/structuredmerge-ruby/graphs/contributors [🖐contributors-img]: https://contrib.rocks/image?repo=structuredmerge/structuredmerge-ruby +[🚎contributors-gl]: https://gitlab.com/structuredmerge/structuredmerge-ruby/-/graphs/main [🪇conduct]: https://github.com/structuredmerge/structuredmerge-ruby/blob/main/CODE_OF_CONDUCT.md [🪇conduct-img]: https://img.shields.io/badge/Contributor_Covenant-2.1-259D6C.svg [📌pvc]: http://guides.rubygems.org/patterns/#pessimistic-version-constraint diff --git a/gems/psych-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile b/gems/psych-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile index b8392fab0..dec650815 100644 --- a/gems/psych-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile +++ b/gems/psych-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.1 -gem 'benchmark', '~> 0.5', '>= 0.5.0' # Removed from Std Lib in Ruby 4.0 +gem "benchmark", "~> 0.5", ">= 0.5.0" # Removed from Std Lib in Ruby 4.0 diff --git a/gems/psych-merge/gemfiles/modular/benchmark/vHEAD.gemfile b/gems/psych-merge/gemfiles/modular/benchmark/vHEAD.gemfile index af214aafa..e1eb20c5e 100644 --- a/gems/psych-merge/gemfiles/modular/benchmark/vHEAD.gemfile +++ b/gems/psych-merge/gemfiles/modular/benchmark/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.1 -gem 'benchmark', github: 'ruby/benchmark', branch: 'master' +gem "benchmark", github: "ruby/benchmark", branch: "master" diff --git a/gems/psych-merge/gemfiles/modular/cgi/r4/v0.5.gemfile b/gems/psych-merge/gemfiles/modular/cgi/r4/v0.5.gemfile new file mode 100644 index 000000000..19ed967c3 --- /dev/null +++ b/gems/psych-merge/gemfiles/modular/cgi/r4/v0.5.gemfile @@ -0,0 +1 @@ +gem "cgi", "~> 0.5" diff --git a/gems/psych-merge/gemfiles/modular/cgi/vHEAD.gemfile b/gems/psych-merge/gemfiles/modular/cgi/vHEAD.gemfile new file mode 100644 index 000000000..ef8b816ce --- /dev/null +++ b/gems/psych-merge/gemfiles/modular/cgi/vHEAD.gemfile @@ -0,0 +1 @@ +gem "cgi", ">= 0.5" diff --git a/gems/psych-merge/gemfiles/modular/coverage.gemfile b/gems/psych-merge/gemfiles/modular/coverage.gemfile index f96d50954..52d737872 100644 --- a/gems/psych-merge/gemfiles/modular/coverage.gemfile +++ b/gems/psych-merge/gemfiles/modular/coverage.gemfile @@ -4,11 +4,11 @@ # Set KETTLE_DEV_DEV=true for local development with path-based dependencies. # When false (default / CI), remote released gems are used. -if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? +if ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false").zero? # Coverage (remote/released) platform :mri do - gem 'kettle-soup-cover', '~> 1.0', '>= 1.1.3', require: false + gem "kettle-soup-cover", "~> 3.0", ">= 3.0.3", require: false end else - eval_gemfile 'coverage_local.gemfile' + eval_gemfile "coverage_local.gemfile" end diff --git a/gems/psych-merge/gemfiles/modular/coverage_local.gemfile b/gems/psych-merge/gemfiles/modular/coverage_local.gemfile index 9b052abb5..5a8d89102 100644 --- a/gems/psych-merge/gemfiles/modular/coverage_local.gemfile +++ b/gems/psych-merge/gemfiles/modular/coverage_local.gemfile @@ -3,31 +3,53 @@ # Local path overrides for development. # Loaded by the associated non-local gemfile when KETTLE_DEV_DEV != "false". -require 'nomono/bundler' unless defined?(Nomono) +# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. +# Bundler records that dependency during Gemfile evaluation, but it does not +# activate that exact version before the immediate `require "nomono/bundler"`. +# If multiple compatible nomono versions are installed, RubyGems may activate +# the newest installed version while Gemfile.lock pins an older compatible one; +# Bundler then aborts with "already activated nomono X, but your Gemfile +# requires nomono Y". Prefer the locked compatible version when present, then +# activate it explicitly before requiring the Bundler DSL extension used below. +nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] +nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) +if File.file?(nomono_lockfile) + nomono_locked_spec = Bundler::LockfileParser + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == "nomono" } + nomono_locked = nomono_locked_spec && + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + if nomono_locked + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] + end +end +Kernel.send(:gem, "nomono", *nomono_activation_requirements) +require "nomono/bundler" local_gems = %w[kettle-dev kettle-test kettle-soup-cover kettle-drift] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) local_gems_to_eval = local_gems - %w[psych-merge] - declared_gems -# export KETTLE_DEV_DEV=/path/to/kettle-rb +# export KETTLE_DEV_DEV=/path/to/my platform :mri do eval_nomono_gems( gems: local_gems_to_eval, - prefix: 'KETTLE_DEV', - path_env: 'KETTLE_DEV_DEV', - vendored_gems_env: 'VENDORED_GEMS', - vendor_gem_dir_env: 'VENDOR_GEM_DIR', - debug_env: 'KETTLE_DEV_DEBUG' + prefix: "KETTLE_DEV", + path_env: "KETTLE_DEV_DEV", + vendored_gems_env: "VENDORED_GEMS", + vendor_gem_dir_env: "VENDOR_GEM_DIR", + debug_env: "KETTLE_DEV_DEBUG" ) - if ENV.fetch('GALTZO_FLOSS_DEV', 'false').casecmp('false') != 0 + if ENV.fetch("GALTZO_FLOSS_DEV", "false").casecmp("false") != 0 eval_nomono_gems( gems: %w[turbo_tests2], - prefix: 'GALTZO_FLOSS', - path_env: 'GALTZO_FLOSS_DEV', - vendored_gems_env: 'GALTZO_FLOSS_VENDORED_GEMS', - vendor_gem_dir_env: 'GALTZO_FLOSS_VENDOR_GEM_DIR', - debug_env: 'GALTZO_FLOSS_DEBUG' + prefix: "GALTZO_FLOSS", + path_env: "GALTZO_FLOSS_DEV", + vendored_gems_env: "GALTZO_FLOSS_VENDORED_GEMS", + vendor_gem_dir_env: "GALTZO_FLOSS_VENDOR_GEM_DIR", + debug_env: "GALTZO_FLOSS_DEBUG" ) end end diff --git a/gems/psych-merge/gemfiles/modular/debug.gemfile b/gems/psych-merge/gemfiles/modular/debug.gemfile index eed8d4d1e..4e15b1a3a 100644 --- a/gems/psych-merge/gemfiles/modular/debug.gemfile +++ b/gems/psych-merge/gemfiles/modular/debug.gemfile @@ -13,10 +13,10 @@ platform :mri do # Debugging - Ensure ENV["DEBUG"] == "true" to use debuggers within spec suite # Use binding.break, binding.b, or debugger in code - gem 'debug', '>= 1.1' # ruby >= 2.7 + gem "debug", ">= 1.1" # ruby >= 2.7 # Dev Console - Binding.pry - Irb replacement # gem "pry", "~> 0.14" # ruby >= 2.0 end -gem 'gem_bench', '~> 2.0', '>= 2.0.5' +gem "gem_bench", "~> 2.0", ">= 2.0.5" diff --git a/gems/psych-merge/gemfiles/modular/documentation.gemfile b/gems/psych-merge/gemfiles/modular/documentation.gemfile index dff5cc108..d8215416e 100644 --- a/gems/psych-merge/gemfiles/modular/documentation.gemfile +++ b/gems/psych-merge/gemfiles/modular/documentation.gemfile @@ -7,20 +7,20 @@ # # Documentation -gem 'kramdown', '~> 2.5', '>= 2.5.1', require: false # Ruby >= 2.5 -gem 'kramdown-parser-gfm', '~> 1.1', require: false # Ruby >= 2.3 -gem 'yaml-converter', '~> 0.1', require: false # Ruby >= 3.2 -gem 'yard', '~> 0.9', '>= 0.9.44', require: false -gem 'yard-junk', '~> 0.1', '>= 0.1.0', require: false # Ruby >= 3.1 -gem 'yard-relative_markdown_links', '~> 0.6', require: false +gem "kramdown", "~> 2.5", ">= 2.5.2", require: false # Ruby >= 2.5 +gem "kramdown-parser-gfm", "~> 1.1", require: false # Ruby >= 2.3 +gem "yaml-converter", "~> 0.2", ">= 0.2.3", require: false # Ruby >= 3.2 +gem "yard", "~> 0.9", ">= 0.9.45", require: false +gem "yard-junk", "~> 0.1", ">= 0.1.0", require: false # Ruby >= 3.1 +gem "yard-relative_markdown_links", "~> 0.6", require: false -if ENV.fetch('GALTZO_FLOSS_DEV', 'false').casecmp('false').zero? - gem 'yard-fence', '~> 0.9', '>= 0.9.1', require: false # Ruby >= 3.2 - gem 'yard-timekeeper', '~> 0.1', require: false - gem 'yard-yaml', '~> 0.1', '>= 0.1.2', require: false +if ENV.fetch("GALTZO_FLOSS_DEV", "false").casecmp("false").zero? + gem "yard-fence", "~> 0.9", ">= 0.9.6", require: false # Ruby >= 3.2 + gem "yard-timekeeper", "~> 0.2", ">= 0.2.4", require: false + gem "yard-yaml", "~> 0.2", ">= 0.2.3", require: false else - eval_gemfile 'documentation_local.gemfile' + eval_gemfile "documentation_local.gemfile" end # Std Lib extractions -gem 'rdoc', '~> 6.11', require: false unless ENV.fetch('KJ_FRAMEWORK_MATRIX_GEM', '') == 'rdoc' +gem "rdoc", "~> 6.11", require: false unless ENV.fetch("KJ_FRAMEWORK_MATRIX_GEM", "") == "rdoc" diff --git a/gems/psych-merge/gemfiles/modular/documentation_local.gemfile b/gems/psych-merge/gemfiles/modular/documentation_local.gemfile index 4d4c2bd95..4604a371b 100644 --- a/gems/psych-merge/gemfiles/modular/documentation_local.gemfile +++ b/gems/psych-merge/gemfiles/modular/documentation_local.gemfile @@ -3,16 +3,40 @@ # Local path overrides for development. # Loaded by the associated non-local gemfile when GALTZO_FLOSS_DEV != "false". -require 'nomono/bundler' unless defined?(Nomono) +# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. +# Bundler records that dependency during Gemfile evaluation, but it does not +# activate that exact version before the immediate `require "nomono/bundler"`. +# If multiple compatible nomono versions are installed, RubyGems may activate +# the newest installed version while Gemfile.lock pins an older compatible one; +# Bundler then aborts with "already activated nomono X, but your Gemfile +# requires nomono Y". Prefer the locked compatible version when present, then +# activate it explicitly before requiring the Bundler DSL extension used below. +nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] +nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) +if File.file?(nomono_lockfile) + nomono_locked_spec = Bundler::LockfileParser + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == "nomono" } + nomono_locked = nomono_locked_spec && + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + if nomono_locked + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] + end +end +Kernel.send(:gem, "nomono", *nomono_activation_requirements) +require "nomono/bundler" local_gems = %w[yard-fence yard-timekeeper yard-yaml] +declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) +local_gems_to_eval = local_gems - %w[psych-merge] - declared_gems # export GALTZO_FLOSS_DEV=/path/to/galtzo-floss eval_nomono_gems( - gems: local_gems, - prefix: 'GALTZO_FLOSS', - path_env: 'GALTZO_FLOSS_DEV', - vendored_gems_env: 'GALTZO_FLOSS_VENDORED_GEMS', - vendor_gem_dir_env: 'GALTZO_FLOSS_VENDOR_GEM_DIR', - debug_env: 'GALTZO_FLOSS_DEBUG' + gems: local_gems_to_eval, + prefix: "GALTZO_FLOSS", + path_env: "GALTZO_FLOSS_DEV", + vendored_gems_env: "GALTZO_FLOSS_VENDORED_GEMS", + vendor_gem_dir_env: "GALTZO_FLOSS_VENDOR_GEM_DIR", + debug_env: "GALTZO_FLOSS_DEBUG" ) diff --git a/gems/psych-merge/gemfiles/modular/erb/r2/v3.0.gemfile b/gems/psych-merge/gemfiles/modular/erb/r2/v3.0.gemfile index 7c83a239b..c03bd8d85 100644 --- a/gems/psych-merge/gemfiles/modular/erb/r2/v3.0.gemfile +++ b/gems/psych-merge/gemfiles/modular/erb/r2/v3.0.gemfile @@ -1 +1 @@ -gem 'erb', '~> 3.0' # ruby >= 2.7.0 +gem "erb", "~> 3.0" # ruby >= 2.7.0 diff --git a/gems/psych-merge/gemfiles/modular/erb/r3/v5.0.gemfile b/gems/psych-merge/gemfiles/modular/erb/r3/v5.0.gemfile index 0e3bf1b97..1bd029cc1 100644 --- a/gems/psych-merge/gemfiles/modular/erb/r3/v5.0.gemfile +++ b/gems/psych-merge/gemfiles/modular/erb/r3/v5.0.gemfile @@ -1 +1 @@ -gem 'erb', '~> 6.0', '>= 6.0.4' # ruby >= 3.2.0 +gem "erb", "~> 6.0", ">= 6.0.6" # ruby >= 3.2.0 diff --git a/gems/psych-merge/gemfiles/modular/erb/r4/v5.0.gemfile b/gems/psych-merge/gemfiles/modular/erb/r4/v5.0.gemfile index 0e3bf1b97..1bd029cc1 100644 --- a/gems/psych-merge/gemfiles/modular/erb/r4/v5.0.gemfile +++ b/gems/psych-merge/gemfiles/modular/erb/r4/v5.0.gemfile @@ -1 +1 @@ -gem 'erb', '~> 6.0', '>= 6.0.4' # ruby >= 3.2.0 +gem "erb", "~> 6.0", ">= 6.0.6" # ruby >= 3.2.0 diff --git a/gems/psych-merge/gemfiles/modular/erb/vHEAD.gemfile b/gems/psych-merge/gemfiles/modular/erb/vHEAD.gemfile index ea0101185..48fee4218 100644 --- a/gems/psych-merge/gemfiles/modular/erb/vHEAD.gemfile +++ b/gems/psych-merge/gemfiles/modular/erb/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 3.2 -gem 'erb', github: 'ruby/erb', branch: 'master' +gem "erb", github: "ruby/erb", branch: "master" diff --git a/gems/psych-merge/gemfiles/modular/json/truffleruby_22_3.gemfile b/gems/psych-merge/gemfiles/modular/json/truffleruby_22_3.gemfile new file mode 100644 index 000000000..b0e69ab11 --- /dev/null +++ b/gems/psych-merge/gemfiles/modular/json/truffleruby_22_3.gemfile @@ -0,0 +1,6 @@ +# frozen_string_literal: true + +if RUBY_ENGINE == "truffleruby" && RUBY_ENGINE_VERSION.start_with?("22.3") + # TruffleRuby 22.3 ships the json default gem from its emulated MRI Ruby. + gem "json", "= 2.5.1" +end diff --git a/gems/psych-merge/gemfiles/modular/json/truffleruby_23_0.gemfile b/gems/psych-merge/gemfiles/modular/json/truffleruby_23_0.gemfile new file mode 100644 index 000000000..7b2660a2b --- /dev/null +++ b/gems/psych-merge/gemfiles/modular/json/truffleruby_23_0.gemfile @@ -0,0 +1,6 @@ +# frozen_string_literal: true + +if RUBY_ENGINE == "truffleruby" && RUBY_ENGINE_VERSION.start_with?("23.0") + # TruffleRuby 23.0 ships the json default gem from its emulated MRI Ruby. + gem "json", "= 2.6.1" +end diff --git a/gems/psych-merge/gemfiles/modular/json/truffleruby_23_1.gemfile b/gems/psych-merge/gemfiles/modular/json/truffleruby_23_1.gemfile new file mode 100644 index 000000000..dfa21f2e4 --- /dev/null +++ b/gems/psych-merge/gemfiles/modular/json/truffleruby_23_1.gemfile @@ -0,0 +1,6 @@ +# frozen_string_literal: true + +if RUBY_ENGINE == "truffleruby" && RUBY_ENGINE_VERSION.start_with?("23.1") + # TruffleRuby 23.1 ships the json default gem from its emulated MRI Ruby. + gem "json", "= 2.6.3" +end diff --git a/gems/psych-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile b/gems/psych-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile index e27f1bbae..42e9d9bd4 100644 --- a/gems/psych-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile +++ b/gems/psych-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 -gem 'mutex_m', '~> 0.2' +gem "mutex_m", "~> 0.2" diff --git a/gems/psych-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile b/gems/psych-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile index e27f1bbae..42e9d9bd4 100644 --- a/gems/psych-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile +++ b/gems/psych-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 -gem 'mutex_m', '~> 0.2' +gem "mutex_m", "~> 0.2" diff --git a/gems/psych-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile b/gems/psych-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile index e27f1bbae..42e9d9bd4 100644 --- a/gems/psych-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile +++ b/gems/psych-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 -gem 'mutex_m', '~> 0.2' +gem "mutex_m", "~> 0.2" diff --git a/gems/psych-merge/gemfiles/modular/mutex_m/vHEAD.gemfile b/gems/psych-merge/gemfiles/modular/mutex_m/vHEAD.gemfile index 9dac2f6cb..8af3b6fca 100644 --- a/gems/psych-merge/gemfiles/modular/mutex_m/vHEAD.gemfile +++ b/gems/psych-merge/gemfiles/modular/mutex_m/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 (dependency of omniauth) -gem 'mutex_m', github: 'ruby/mutex_m', branch: 'master' +gem "mutex_m", github: "ruby/mutex_m", branch: "master" diff --git a/gems/psych-merge/gemfiles/modular/optional.gemfile b/gems/psych-merge/gemfiles/modular/optional.gemfile index b39b0a298..80bc45196 100644 --- a/gems/psych-merge/gemfiles/modular/optional.gemfile +++ b/gems/psych-merge/gemfiles/modular/optional.gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -# To retain during psych-merge templating: +# To retain during kettle-jem templating: # kettle-jem:freeze # # ... your code # kettle-jem:unfreeze @@ -9,9 +9,8 @@ # Optional dependencies are not depended on directly, but may be used if present. # Required for curated binstubs generated by kettle-jem install -gem 'rbs', '>= 3.0', require: false # ruby >= 3.1 -gem 'stone_checksums', '~> 1.0', '>= 1.0.3', require: false # ruby >= 2.2 +gem "rbs", ">= 3.0", require: false # ruby >= 3.1 # Required for kettle-pre-release # URL parsing with Unicode support (falls back to URI if not available) -gem 'addressable', '>= 2.8', '< 3' # ruby >= 2.2 +gem "addressable", ">= 2.8", "< 3" # ruby >= 2.2 diff --git a/gems/psych-merge/gemfiles/modular/rspec.gemfile b/gems/psych-merge/gemfiles/modular/rspec.gemfile index 2af210a41..72fdf8b7f 100644 --- a/gems/psych-merge/gemfiles/modular/rspec.gemfile +++ b/gems/psych-merge/gemfiles/modular/rspec.gemfile @@ -1,4 +1,4 @@ -gem 'rspec_junit_formatter', - github: 'pboling/rspec_junit_formatter', - branch: 'main', - ref: '9e6bcaaedd49477b62878ed568dc4ada5cc7cb5e' +gem "rspec_junit_formatter", + github: "pboling/rspec_junit_formatter", + branch: "main", + ref: "9e6bcaaedd49477b62878ed568dc4ada5cc7cb5e" diff --git a/gems/psych-merge/gemfiles/modular/runtime_heads.gemfile b/gems/psych-merge/gemfiles/modular/runtime_heads.gemfile index d32c0515f..02f134c7f 100644 --- a/gems/psych-merge/gemfiles/modular/runtime_heads.gemfile +++ b/gems/psych-merge/gemfiles/modular/runtime_heads.gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -# To retain during psych-merge templating: +# To retain during kettle-jem templating: # kettle-jem:freeze # # ... your code # kettle-jem:unfreeze @@ -8,7 +8,4 @@ # Test against HEAD of runtime dependencies so we can proactively file bugs -# Ruby >= 2.2 -gem 'version_gem', github: 'ruby-oauth/version_gem', branch: 'main' - -eval_gemfile('x_std_libs/vHEAD.gemfile') +eval_gemfile("x_std_libs/vHEAD.gemfile") diff --git a/gems/psych-merge/gemfiles/modular/stringio/r2/v3.0.gemfile b/gems/psych-merge/gemfiles/modular/stringio/r2/v3.0.gemfile index 3616f4e3a..e85bb18ee 100644 --- a/gems/psych-merge/gemfiles/modular/stringio/r2/v3.0.gemfile +++ b/gems/psych-merge/gemfiles/modular/stringio/r2/v3.0.gemfile @@ -2,4 +2,4 @@ # NOT SEMVER # Version 3.0.7 dropped support for Ruby <= 2.7 # Version 3.0.0 dropped support for Ruby <= 2.4 -gem 'stringio', '>= 3.0' +gem "stringio", ">= 3.0" diff --git a/gems/psych-merge/gemfiles/modular/stringio/r3/v3.0.gemfile b/gems/psych-merge/gemfiles/modular/stringio/r3/v3.0.gemfile index 3616f4e3a..e85bb18ee 100644 --- a/gems/psych-merge/gemfiles/modular/stringio/r3/v3.0.gemfile +++ b/gems/psych-merge/gemfiles/modular/stringio/r3/v3.0.gemfile @@ -2,4 +2,4 @@ # NOT SEMVER # Version 3.0.7 dropped support for Ruby <= 2.7 # Version 3.0.0 dropped support for Ruby <= 2.4 -gem 'stringio', '>= 3.0' +gem "stringio", ">= 3.0" diff --git a/gems/psych-merge/gemfiles/modular/stringio/r4/v3.0.gemfile b/gems/psych-merge/gemfiles/modular/stringio/r4/v3.0.gemfile index 3616f4e3a..e85bb18ee 100644 --- a/gems/psych-merge/gemfiles/modular/stringio/r4/v3.0.gemfile +++ b/gems/psych-merge/gemfiles/modular/stringio/r4/v3.0.gemfile @@ -2,4 +2,4 @@ # NOT SEMVER # Version 3.0.7 dropped support for Ruby <= 2.7 # Version 3.0.0 dropped support for Ruby <= 2.4 -gem 'stringio', '>= 3.0' +gem "stringio", ">= 3.0" diff --git a/gems/psych-merge/gemfiles/modular/stringio/vHEAD.gemfile b/gems/psych-merge/gemfiles/modular/stringio/vHEAD.gemfile index 78f5f5d8a..5f2a74126 100644 --- a/gems/psych-merge/gemfiles/modular/stringio/vHEAD.gemfile +++ b/gems/psych-merge/gemfiles/modular/stringio/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 (dependency of omniauth) -gem 'stringio', github: 'ruby/stringio', branch: 'master' +gem "stringio", github: "ruby/stringio", branch: "master" diff --git a/gems/psych-merge/gemfiles/modular/style.gemfile b/gems/psych-merge/gemfiles/modular/style.gemfile index 562a061fd..35de4dcd6 100644 --- a/gems/psych-merge/gemfiles/modular/style.gemfile +++ b/gems/psych-merge/gemfiles/modular/style.gemfile @@ -1,28 +1,31 @@ # frozen_string_literal: true -# To retain during psych-merge templating: +# To retain during kettle-jem templating: # kettle-jem:freeze # # ... your code # kettle-jem:unfreeze # -# We run rubocop on the latest version of Ruby, -# but in support of the oldest supported version of Ruby +# Style tasks run on the latest Ruby; RuboCop-LTS selects the compatibility +# rules for the configured Ruby floor independently from task dependency floors. -gem 'reek', '~> 6.5' +gem "reek", "~> 6.5", ">= 6.5.0" platform :mri do - gem 'rubocop-on-rbs', '~> 2.0' # ruby >= 3.2.0 + gem "appraisal2-rubocop", "~> 1.0", ">= 1.0.0", require: false + gem "rubocop-gradual", "~> 0.4", ">= 0.4.0" + gem "rubocop-minitest", "~> 0.40", ">= 0.40.0" + gem "rubocop-on-rbs", "~> 2.0", ">= 2.0.0" # ruby >= 3.2.0 # gem "rubocop", "~> 1.73", ">= 1.73.2" # constrained by standard - gem 'rubocop-packaging', '~> 0.6', '>= 0.6.0' - gem 'standard', '>= 1.50' + gem "rubocop-packaging", "~> 0.6", ">= 0.6.0" + gem "standard", "~> 1.56", ">= 1.56.0" - if ENV.fetch('RUBOCOP_LTS_LOCAL', 'false').casecmp('false').zero? - gem 'rubocop-lts', '~> 24.1.0' - # "rubocop-lts-rspec" can't add here until other gems are updated. - gem 'rubocop-rspec', '~> 3.6' - gem 'rubocop-ruby3_2', '~> 3.0.0' + if ENV.fetch("RUBOCOP_LTS_LOCAL", "false").casecmp("false").zero? + declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) + gem "rubocop-lts", "~> 24.2", ">= 24.2.1" unless declared_gems.include?("rubocop-lts") + gem "rubocop-lts-rspec", "~> 1.0", ">= 1.0.5" unless declared_gems.include?("rubocop-lts-rspec") + gem "rubocop-ruby3_2", "~> 3.0", ">= 3.0.6" unless declared_gems.include?("rubocop-ruby3_2") else - eval_gemfile('style_local.gemfile') + eval_gemfile("style_local.gemfile") end end diff --git a/gems/psych-merge/gemfiles/modular/style_local.gemfile b/gems/psych-merge/gemfiles/modular/style_local.gemfile index ce75bbe21..095e215b2 100644 --- a/gems/psych-merge/gemfiles/modular/style_local.gemfile +++ b/gems/psych-merge/gemfiles/modular/style_local.gemfile @@ -1,24 +1,48 @@ # frozen_string_literal: true -# We run rubocop on the latest version of Ruby, -# but in support of the oldest supported version of Ruby +# Style tasks run on the latest Ruby; RuboCop-LTS selects the compatibility +# rules for the configured Ruby floor independently from task dependency floors. # Local path overrides for development. # Loaded by the associated non-local gemfile when RUBOCOP_LTS_LOCAL != "false". -require 'nomono/bundler' unless defined?(Nomono) +# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. +# Bundler records that dependency during Gemfile evaluation, but it does not +# activate that exact version before the immediate `require "nomono/bundler"`. +# If multiple compatible nomono versions are installed, RubyGems may activate +# the newest installed version while Gemfile.lock pins an older compatible one; +# Bundler then aborts with "already activated nomono X, but your Gemfile +# requires nomono Y". Prefer the locked compatible version when present, then +# activate it explicitly before requiring the Bundler DSL extension used below. +nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] +nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) +if File.file?(nomono_lockfile) + nomono_locked_spec = Bundler::LockfileParser + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == "nomono" } + nomono_locked = nomono_locked_spec && + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + if nomono_locked + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] + end +end +Kernel.send(:gem, "nomono", *nomono_activation_requirements) +require "nomono/bundler" local_gems = %w[rubocop-lts rubocop-lts-rspec rubocop-ruby3_2 standard-rubocop-lts] +declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) +local_gems_to_eval = local_gems - %w[psych-merge] - declared_gems # export VENDORED_GEMS=rubocop-lts,rubocop-lts-rspec,rubocop-ruby3_2,standard-rubocop-lts platform :mri do eval_nomono_gems( - gems: local_gems, - prefix: 'RUBOCOP_LTS', - path_env: 'RUBOCOP_LTS_LOCAL', - vendored_gems_env: 'VENDORED_GEMS', - vendor_gem_dir_env: 'VENDOR_GEM_DIR', - debug_env: 'RUBOCOP_LTS_DEBUG', - root: %w[src rubocop-lts] + gems: local_gems_to_eval, + prefix: "RUBOCOP_LTS", + path_env: "RUBOCOP_LTS_LOCAL", + vendored_gems_env: "VENDORED_GEMS", + vendor_gem_dir_env: "VENDOR_GEM_DIR", + debug_env: "RUBOCOP_LTS_DEBUG", + root: ["src", "rubocop-lts"] ) end diff --git a/gems/psych-merge/gemfiles/modular/templating.gemfile b/gems/psych-merge/gemfiles/modular/templating.gemfile index 2ddc9433f..47138ffbb 100644 --- a/gems/psych-merge/gemfiles/modular/templating.gemfile +++ b/gems/psych-merge/gemfiles/modular/templating.gemfile @@ -1,24 +1,24 @@ # frozen_string_literal: true -structuredmerge_remote = ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false').zero? -kettle_remote = ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? +structuredmerge_remote = ENV.fetch("STRUCTUREDMERGE_DEV", "false").casecmp("false").zero? +kettle_remote = ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false").zero? if structuredmerge_remote # Parser dependencies for released installs. - gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' + gem "tree_sitter_language_pack", "~> 1.13", ">= 1.13.3" # Merge recipes for released installs. - gem 'kettle-jem', '>= 7.0' + gem "kettle-jem", ">= 7.0" end if kettle_remote # Template/plugin checks for released installs. - gem 'kettle-drift', '~> 1.0', '>= 1.0.5', require: false + gem "kettle-drift", "~> 1.0", ">= 1.0.6", require: false end # Set STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local development with path-based dependencies. # When false (default / CI), released kettle-jem brings merge gems and parser dependencies. # Local path overrides bring the same dependencies from sibling gemspecs. # -# Set KETTLE_DEV_DEV=/path/to/kettle-rb for local development with Kettle plugin gems. +# Set KETTLE_DEV_DEV=/path/to/my for local development with Kettle plugin gems. # When false (default / CI), released Kettle plugin gems are used. -eval_gemfile 'templating_local.gemfile' unless structuredmerge_remote && kettle_remote +eval_gemfile "templating_local.gemfile" unless structuredmerge_remote && kettle_remote diff --git a/gems/psych-merge/gemfiles/modular/templating_local.gemfile b/gems/psych-merge/gemfiles/modular/templating_local.gemfile index 6febf2acf..a816133a3 100644 --- a/gems/psych-merge/gemfiles/modular/templating_local.gemfile +++ b/gems/psych-merge/gemfiles/modular/templating_local.gemfile @@ -4,7 +4,29 @@ # Loaded by the associated non-local gemfile when STRUCTUREDMERGE_DEV or KETTLE_DEV_DEV # is not "false". -require 'nomono/bundler' unless defined?(Nomono) +# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. +# Bundler records that dependency during Gemfile evaluation, but it does not +# activate that exact version before the immediate `require "nomono/bundler"`. +# If multiple compatible nomono versions are installed, RubyGems may activate +# the newest installed version while Gemfile.lock pins an older compatible one; +# Bundler then aborts with "already activated nomono X, but your Gemfile +# requires nomono Y". Prefer the locked compatible version when present, then +# activate it explicitly before requiring the Bundler DSL extension used below. +nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] +nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) +if File.file?(nomono_lockfile) + nomono_locked_spec = Bundler::LockfileParser + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == "nomono" } + nomono_locked = nomono_locked_spec && + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + if nomono_locked + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] + end +end +Kernel.send(:gem, "nomono", *nomono_activation_requirements) +require "nomono/bundler" structuredmerge_local_gems = %w[ tree_haver @@ -47,25 +69,25 @@ structuredmerge_local_gems_to_eval = structuredmerge_local_gems - %w[psych-merge kettle_dev_local_gems_to_eval = kettle_dev_local_gems - %w[psych-merge] - declared_gems platform :mri do - if ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false') != 0 + if ENV.fetch("STRUCTUREDMERGE_DEV", "false").casecmp("false") != 0 eval_nomono_gems( gems: structuredmerge_local_gems_to_eval, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - vendored_gems_env: 'VENDORED_GEMS', - vendor_gem_dir_env: 'VENDOR_GEM_DIR', - debug_env: 'STRUCTUREDMERGE_DEBUG' + prefix: "STRUCTUREDMERGE", + path_env: "STRUCTUREDMERGE_DEV", + vendored_gems_env: "VENDORED_GEMS", + vendor_gem_dir_env: "VENDOR_GEM_DIR", + debug_env: "STRUCTUREDMERGE_DEBUG" ) end - if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false') != 0 + if ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false") != 0 eval_nomono_gems( gems: kettle_dev_local_gems_to_eval, - prefix: 'KETTLE_DEV', - path_env: 'KETTLE_DEV_DEV', - vendored_gems_env: 'VENDORED_GEMS', - vendor_gem_dir_env: 'VENDOR_GEM_DIR', - debug_env: 'KETTLE_DEV_DEBUG' + prefix: "KETTLE_DEV", + path_env: "KETTLE_DEV_DEV", + vendored_gems_env: "VENDORED_GEMS", + vendor_gem_dir_env: "VENDOR_GEM_DIR", + debug_env: "KETTLE_DEV_DEBUG" ) end end diff --git a/gems/psych-merge/gemfiles/modular/webrick/r4/v1.9.gemfile b/gems/psych-merge/gemfiles/modular/webrick/r4/v1.9.gemfile new file mode 100644 index 000000000..eaab4a473 --- /dev/null +++ b/gems/psych-merge/gemfiles/modular/webrick/r4/v1.9.gemfile @@ -0,0 +1 @@ +gem "webrick", "~> 1.9" diff --git a/gems/psych-merge/gemfiles/modular/webrick/vHEAD.gemfile b/gems/psych-merge/gemfiles/modular/webrick/vHEAD.gemfile new file mode 100644 index 000000000..8a789b634 --- /dev/null +++ b/gems/psych-merge/gemfiles/modular/webrick/vHEAD.gemfile @@ -0,0 +1 @@ +gem "webrick", ">= 1.9" diff --git a/gems/psych-merge/gemfiles/modular/x_std_libs.gemfile b/gems/psych-merge/gemfiles/modular/x_std_libs.gemfile index b1f43c097..77aad43f2 100644 --- a/gems/psych-merge/gemfiles/modular/x_std_libs.gemfile +++ b/gems/psych-merge/gemfiles/modular/x_std_libs.gemfile @@ -1,12 +1,12 @@ ### Std Lib Extracted Gems ruby_version = Gem::Version.new(RUBY_VERSION) -if ruby_version >= Gem::Version.new('4.0') - eval_gemfile 'x_std_libs/r4/libs.gemfile' -elsif ruby_version >= Gem::Version.new('3.2') - eval_gemfile 'x_std_libs/r3/libs.gemfile' -elsif ruby_version >= Gem::Version.new('3.1') - eval_gemfile 'x_std_libs/r3.1/libs.gemfile' +if ruby_version >= Gem::Version.new("4.0") + eval_gemfile "x_std_libs/r4/libs.gemfile" +elsif ruby_version >= Gem::Version.new("3.2") + eval_gemfile "x_std_libs/r3/libs.gemfile" +elsif ruby_version >= Gem::Version.new("3.1") + eval_gemfile "x_std_libs/r3.1/libs.gemfile" else - eval_gemfile 'x_std_libs/r2/libs.gemfile' + eval_gemfile "x_std_libs/r2/libs.gemfile" end diff --git a/gems/psych-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile b/gems/psych-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile index 16a5e3d70..441c4f03a 100644 --- a/gems/psych-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile +++ b/gems/psych-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile @@ -1,3 +1,3 @@ -eval_gemfile '../../erb/r2/v3.0.gemfile' -eval_gemfile '../../mutex_m/r2/v0.3.gemfile' -eval_gemfile '../../stringio/r2/v3.0.gemfile' +eval_gemfile "../../erb/r2/v3.0.gemfile" +eval_gemfile "../../mutex_m/r2/v0.3.gemfile" +eval_gemfile "../../stringio/r2/v3.0.gemfile" diff --git a/gems/psych-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile b/gems/psych-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile index 220ff95c1..c293a3ddd 100644 --- a/gems/psych-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile +++ b/gems/psych-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile @@ -1,3 +1,3 @@ -eval_gemfile '../../erb/r3/v5.0.gemfile' -eval_gemfile '../../mutex_m/r3/v0.3.gemfile' -eval_gemfile '../../stringio/r3/v3.0.gemfile' +eval_gemfile "../../erb/r3/v5.0.gemfile" +eval_gemfile "../../mutex_m/r3/v0.3.gemfile" +eval_gemfile "../../stringio/r3/v3.0.gemfile" diff --git a/gems/psych-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile b/gems/psych-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile index bd4e884df..eb5574247 100644 --- a/gems/psych-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile +++ b/gems/psych-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile @@ -1,4 +1,6 @@ -eval_gemfile '../../erb/r4/v5.0.gemfile' -eval_gemfile '../../mutex_m/r4/v0.3.gemfile' -eval_gemfile '../../stringio/r4/v3.0.gemfile' -eval_gemfile '../../benchmark/r4/v0.5.gemfile' +eval_gemfile "../../erb/r4/v5.0.gemfile" +eval_gemfile "../../mutex_m/r4/v0.3.gemfile" +eval_gemfile "../../stringio/r4/v3.0.gemfile" +eval_gemfile "../../benchmark/r4/v0.5.gemfile" +eval_gemfile "../../cgi/r4/v0.5.gemfile" +eval_gemfile "../../webrick/r4/v1.9.gemfile" diff --git a/gems/psych-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile b/gems/psych-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile index 91f383c11..d4d5b16c9 100644 --- a/gems/psych-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile +++ b/gems/psych-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile @@ -1,4 +1,6 @@ -eval_gemfile '../erb/vHEAD.gemfile' -eval_gemfile '../mutex_m/vHEAD.gemfile' -eval_gemfile '../stringio/vHEAD.gemfile' -eval_gemfile '../benchmark/vHEAD.gemfile' +eval_gemfile "../erb/vHEAD.gemfile" +eval_gemfile "../mutex_m/vHEAD.gemfile" +eval_gemfile "../stringio/vHEAD.gemfile" +eval_gemfile "../benchmark/vHEAD.gemfile" +eval_gemfile "../cgi/vHEAD.gemfile" +eval_gemfile "../webrick/vHEAD.gemfile" diff --git a/gems/zip-merge/Gemfile.lock b/gems/zip-merge/Gemfile.lock index c64d45a1b..2c631e939 100644 --- a/gems/zip-merge/Gemfile.lock +++ b/gems/zip-merge/Gemfile.lock @@ -6,7 +6,7 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/tree_haver specs: tree_haver (7.1.0) citrus (~> 3.0) @@ -38,7 +38,7 @@ GEM cgi (0.5.2) citrus (3.0.2) cmdparse (3.0.7) - concurrent-ruby (1.3.7) + concurrent-ruby (1.3.8) date (3.5.1) debug (1.11.1) irb (~> 1.10) @@ -95,12 +95,12 @@ GEM rdoc (>= 4.0.0) reline (>= 0.4.2) json (2.21.1) - kettle-dev (2.3.7) + kettle-dev (2.3.8) emoji_regex (>= 15.0) kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) - kettle-rb (0.1.4) + kettle-rb (0.1.5) kettle-soup-cover (3.0.4) kettle-wash (~> 0.1, >= 0.1.0) simplecov (>= 1.0) @@ -108,7 +108,7 @@ GEM simplecov-console (~> 0.9, >= 0.9.5) simplecov-rcov (~> 0.3, >= 0.3.7) simplecov_lcov_formatter (~> 0.9, >= 0.9.0) - kettle-test (2.0.11) + kettle-test (2.0.12) appraisal2 (~> 3.0, >= 3.0.6) backports (~> 3.0) rspec (~> 3.0) @@ -451,7 +451,7 @@ CHECKSUMS cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 - concurrent-ruby (1.3.7) sha256=4412caec3a5ea2e5fdc52076724c071a81f2c0593d83b2ac8cbb8ca63b3151b0 + concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 @@ -473,10 +473,10 @@ CHECKSUMS io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 - kettle-dev (2.3.7) sha256=eb370113cd030d03cbe2d33b31c99858951017e5ad21a17e9ed89dc3770028ee - kettle-rb (0.1.4) sha256=9cef7ce4f7021666b7222292f29051e51eaf042e8a5db11f3f4dd72f74243fc1 + kettle-dev (2.3.8) sha256=9d716ff21c660a730cb4e8d41e2e2f0630a28167a354b6e2924e242102aef72c + kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f kettle-soup-cover (3.0.4) - kettle-test (2.0.11) sha256=c710c90f7ab79d51f9452f0c09f5f90657e7a893f63583855c164d0b1b107ab2 + kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 From c71dd3a4b6b52b0eec3c4a0ee7c66c7a64c40b9a Mon Sep 17 00:00:00 2001 From: "Peter H. Boling" Date: Tue, 21 Jul 2026 13:55:09 -0600 Subject: [PATCH 138/188] =?UTF-8?q?=F0=9F=8E=A8=20Template=20bootstrap=20b?= =?UTF-8?q?y=20kettle-jem=20v7.1.0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gems/ast-template/Gemfile.lock | 331 +++++++++++- gems/citrus-toml-merge/.kettle-drift.lock | 268 +--------- .../.structuredmerge/kettle-jem.yml | 53 ++ gems/citrus-toml-merge/Gemfile | 72 ++- gems/citrus-toml-merge/Gemfile.lock | 380 ++++++++++++-- gems/citrus-toml-merge/Rakefile | 18 +- .../lib/citrus/toml/merge/version.rb | 2 +- gems/commonmarker-merge/.kettle-drift.lock | 268 +--------- .../.structuredmerge/kettle-jem.yml | 53 ++ gems/commonmarker-merge/Gemfile | 72 ++- gems/commonmarker-merge/Gemfile.lock | 53 +- gems/commonmarker-merge/Rakefile | 18 +- .../lib/commonmarker/merge/version.rb | 2 +- gems/parslet-toml-merge/.kettle-drift.lock | 268 +--------- .../.structuredmerge/kettle-jem.yml | 53 ++ gems/parslet-toml-merge/Gemfile | 72 ++- gems/parslet-toml-merge/Gemfile.lock | 381 ++++++++++++-- gems/parslet-toml-merge/Rakefile | 18 +- .../lib/parslet/toml/merge/version.rb | 2 +- gems/psych-merge/.rubocop_gradual.lock | 396 ++++++++------- gems/psych-merge/Gemfile | 70 ++- gems/psych-merge/Gemfile.lock | 471 ++++-------------- gems/psych-merge/README.md | 1 - gems/psych-merge/Rakefile | 18 +- .../modular/benchmark/r4/v0.5.gemfile | 2 +- .../gemfiles/modular/benchmark/vHEAD.gemfile | 2 +- .../gemfiles/modular/cgi/r4/v0.5.gemfile | 2 +- .../gemfiles/modular/cgi/vHEAD.gemfile | 2 +- .../gemfiles/modular/coverage.gemfile | 6 +- .../gemfiles/modular/coverage_local.gemfile | 42 +- .../gemfiles/modular/debug.gemfile | 4 +- .../gemfiles/modular/documentation.gemfile | 24 +- .../modular/documentation_local.gemfile | 30 +- .../gemfiles/modular/erb/r2/v3.0.gemfile | 2 +- .../gemfiles/modular/erb/r3/v5.0.gemfile | 2 +- .../gemfiles/modular/erb/r4/v5.0.gemfile | 2 +- .../gemfiles/modular/erb/vHEAD.gemfile | 2 +- .../modular/json/truffleruby_22_3.gemfile | 4 +- .../modular/json/truffleruby_23_0.gemfile | 4 +- .../modular/json/truffleruby_23_1.gemfile | 4 +- .../gemfiles/modular/mutex_m/r2/v0.3.gemfile | 2 +- .../gemfiles/modular/mutex_m/r3/v0.3.gemfile | 2 +- .../gemfiles/modular/mutex_m/r4/v0.3.gemfile | 2 +- .../gemfiles/modular/mutex_m/vHEAD.gemfile | 2 +- .../gemfiles/modular/optional.gemfile | 4 +- .../gemfiles/modular/rspec.gemfile | 8 +- .../gemfiles/modular/runtime_heads.gemfile | 2 +- .../gemfiles/modular/stringio/r2/v3.0.gemfile | 2 +- .../gemfiles/modular/stringio/r3/v3.0.gemfile | 2 +- .../gemfiles/modular/stringio/r4/v3.0.gemfile | 2 +- .../gemfiles/modular/stringio/vHEAD.gemfile | 2 +- .../gemfiles/modular/style.gemfile | 24 +- .../gemfiles/modular/style_local.gemfile | 32 +- .../gemfiles/modular/templating.gemfile | 12 +- .../gemfiles/modular/templating_local.gemfile | 44 +- .../gemfiles/modular/webrick/r4/v1.9.gemfile | 2 +- .../gemfiles/modular/webrick/vHEAD.gemfile | 2 +- .../gemfiles/modular/x_std_libs.gemfile | 14 +- .../modular/x_std_libs/r2/libs.gemfile | 6 +- .../modular/x_std_libs/r3/libs.gemfile | 6 +- .../modular/x_std_libs/r4/libs.gemfile | 12 +- .../gemfiles/modular/x_std_libs/vHEAD.gemfile | 12 +- gems/psych-merge/lib/psych/merge/version.rb | 2 +- gems/zip-merge/Gemfile.lock | 339 ++++++++++++- 64 files changed, 2292 insertions(+), 1719 deletions(-) diff --git a/gems/ast-template/Gemfile.lock b/gems/ast-template/Gemfile.lock index bfef0cbc0..edc7705c6 100644 --- a/gems/ast-template/Gemfile.lock +++ b/gems/ast-template/Gemfile.lock @@ -6,7 +6,39 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/ast-merge + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly + specs: + ast-crispr-markdown-markly (7.1.0) + ast-crispr (= 7.1.0) + markly-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism + specs: + ast-crispr-ruby-prism (7.1.0) + ast-crispr (= 7.1.0) + prism-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr + specs: + ast-crispr (7.1.0) + ast-merge (= 7.1.0) + service_actor (~> 3.9) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git + specs: + ast-merge-git (7.1.0) + ast-merge (= 7.1.0) + json-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge specs: ast-merge (7.1.0) benchmark @@ -14,6 +46,225 @@ PATH tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge + specs: + bash-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge + specs: + binary-merge (7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge + specs: + citrus-toml-merge (7.1.0) + toml-merge (= 7.1.0) + toml-rb (~> 4.1) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge + specs: + commonmarker-merge (7.1.0) + commonmarker (~> 2.2) + markdown-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge + specs: + dotenv-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge + specs: + go-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge + specs: + json-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem + specs: + kettle-jem (7.1.0) + addressable (>= 2.8, < 3) + ast-crispr-markdown-markly (= 7.1.0) + ast-crispr-ruby-prism (= 7.1.0) + ast-merge (= 7.1.0) + bash-merge (= 7.1.0) + citrus-toml-merge (= 7.1.0) + commonmarker-merge (= 7.1.0) + dotenv-merge (= 7.1.0) + json-merge (= 7.1.0) + kettle-dev (~> 2.3, >= 2.3.5) + kettle-rb (~> 0.1, >= 0.1.4) + kramdown-merge (= 7.1.0) + markdown-merge (= 7.1.0) + markly-merge (= 7.1.0) + prism-merge (= 7.1.0) + psych-merge (= 7.1.0) + rbs (>= 3.10) + rbs-merge (= 7.1.0) + ruby-merge (= 7.1.0) + token-resolver (~> 2.0, >= 2.0.4) + toml-merge (= 7.1.0) + toml-rb (~> 4.2) + tree_haver (= 7.1.0) + yaml-merge (= 7.1.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge + specs: + kramdown-merge (7.1.0) + kramdown (~> 2.5) + markdown-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge + specs: + markdown-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge + specs: + markly-merge (7.1.0) + markdown-merge (= 7.1.0) + markly (~> 0.9) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge + specs: + parslet-toml-merge (7.1.0) + toml (~> 0.3) + toml-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge + specs: + plain-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge + specs: + prism-merge (7.1.0) + prism (~> 1.6) + ruby-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge + specs: + psych-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + yaml-merge (= 7.1.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge + specs: + rbs-merge (7.1.0) + ast-merge (= 7.1.0) + rbs (>= 3.10) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge + specs: + ruby-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge + specs: + rust-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb + specs: + smorg-rb (7.1.0) + ast-merge (= 7.1.0) + ast-merge-git (= 7.1.0) + go-merge (= 7.1.0) + json-merge (= 7.1.0) + kettle-jem (= 7.1.0) + markly-merge (= 7.1.0) + plain-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge + specs: + toml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver + specs: + tree_haver (7.1.0) + citrus (~> 3.0) + parslet (~> 2.0) + tree_sitter_language_pack (>= 1.13.2, < 2.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge + specs: + typescript-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge + specs: + yaml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge + specs: + zip-merge (7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + GEM remote: https://gem.coop/ specs: @@ -38,6 +289,7 @@ GEM cgi (0.5.2) citrus (3.0.2) cmdparse (3.0.7) + commonmarker (2.9.0-x86_64-linux) concurrent-ruby (1.3.8) date (3.5.1) debug (1.11.1) @@ -100,6 +352,8 @@ GEM kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) + kettle-drift (1.0.6) + version_gem (~> 1.1, >= 1.1.14) kettle-rb (0.1.5) kettle-soup-cover (3.0.4) kettle-wash (~> 0.1, >= 0.1.0) @@ -128,6 +382,7 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) + markly (0.16.0) mutex_m (0.3.0) nokogiri (1.19.4-x86_64-linux-gnu) racc (~> 1.4) @@ -282,6 +537,8 @@ GEM ruby-progressbar (1.13.0) ruby_engine (2.0.3) ruby_version (1.0.3) + service_actor (3.9.4) + zeitwerk (>= 1.0) silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) @@ -336,11 +593,11 @@ GEM token-resolver (2.0.5) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.14) - tree_haver (7.1.0) - citrus (~> 3.0) - parslet (~> 2.0) - tree_sitter_language_pack (>= 1.13.2, < 2.0) - version_gem (~> 1.1, >= 1.1.9) + toml (0.3.0) + parslet (>= 1.8.0, < 3.0.0) + toml-rb (4.2.0) + citrus (~> 3.0, > 3.0) + racc (~> 1.7) tree_sitter_language_pack (1.13.3-x86_64-linux) sorbet-runtime (~> 0.5) tsort (0.2.0) @@ -386,25 +643,46 @@ DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) appraisal2-rubocop (~> 1.0, >= 1.0.0) + ast-crispr! + ast-crispr-markdown-markly! + ast-crispr-ruby-prism! ast-merge! + ast-merge-git! ast-template! + bash-merge! benchmark (~> 0.5, >= 0.5.0) + binary-merge! bundler-audit (~> 0.9.3) cgi (~> 0.5) + citrus-toml-merge! + commonmarker-merge! debug (>= 1.1) + dotenv-merge! erb (~> 6.0, >= 6.0.6) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.0) + go-merge! irb (~> 1.17) + json-merge! kettle-dev (~> 2.0, >= 2.2.25) + kettle-drift (~> 1.0, >= 1.0.6) + kettle-jem! kettle-soup-cover (~> 3.0, >= 3.0.3) kettle-test (~> 2.0, >= 2.0.9) kramdown (~> 2.5, >= 2.5.2) + kramdown-merge! kramdown-parser-gfm (~> 1.1) + markdown-merge! + markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) + parslet-toml-merge! + plain-merge! + prism-merge! + psych-merge! rake (~> 13.0) rbs (>= 3.0) + rbs-merge! rdoc (~> 6.11) reek (~> 6.5, >= 6.5.0) require_bench (~> 1.0, >= 1.0.4) @@ -415,19 +693,27 @@ DEPENDENCIES rubocop-on-rbs (~> 2.0, >= 2.0.0) rubocop-packaging (~> 0.6, >= 0.6.0) rubocop-ruby3_2 (~> 3.0, >= 3.0.6) + ruby-merge! ruby-progressbar (~> 1.13) + rust-merge! + smorg-rb! standard (~> 1.56, >= 1.56.0) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) + toml-merge! + tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) + typescript-merge! webrick (~> 1.9) yaml-converter (~> 0.2, >= 0.2.3) + yaml-merge! yard (~> 0.9, >= 0.9.45) yard-fence (~> 0.9, >= 0.9.6) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) yard-timekeeper (~> 0.2, >= 0.2.4) yard-yaml (~> 0.2, >= 0.2.3) + zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af @@ -435,21 +721,31 @@ CHECKSUMS appraisal2 (3.2.0) sha256=ccd0b767ac4060cd7af6d16747459b6990f49c39c7b4fb1f7d1146b1e97c492f appraisal2-rubocop (1.0.0) sha256=b71410fbb014befda5340605a605b7f6f3f012739baf0acc5b4351b592c3258d ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 + ast-crispr (7.1.0) + ast-crispr-markdown-markly (7.1.0) + ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) + ast-merge-git (7.1.0) ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 + bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd + binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 + citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 + commonmarker (2.9.0-x86_64-linux) sha256=8cfe92970eef585a19ddf6613224b91cab64d6029834661bda801f877c9c7f43 + commonmarker-merge (7.1.0) concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 + dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -462,20 +758,28 @@ CHECKSUMS gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f + go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 + json-merge (7.1.0) kettle-dev (2.3.8) sha256=9d716ff21c660a730cb4e8d41e2e2f0630a28167a354b6e2924e242102aef72c + kettle-drift (1.0.6) sha256=46eda08fa4411d1f3c6682a95eef1c9df4e94611b3949f49d4c7b43c0ed356a3 + kettle-jem (7.1.0) kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f kettle-soup-cover (3.0.4) kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa + kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 + markdown-merge (7.1.0) + markly (0.16.0) sha256=6f70d79e385b1efc9e171f74c81628826259039fe6c778e03c3924c71dac5511 + markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-x86_64-linux-gnu) sha256=379fae440b28915e3f19d752ce2dcf8465ed2b2fbefd2a7ca0dd497bc981a06a nomono (1.0.9) @@ -485,15 +789,20 @@ CHECKSUMS parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 + parslet-toml-merge (7.1.0) + plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 + prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 + psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 + rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb @@ -528,15 +837,19 @@ CHECKSUMS rubocop-rspec_rails (2.32.0) sha256=4a0d641c72f6ebb957534f539d9d0a62c47abd8ce0d0aeee1ef4701e892a9100 rubocop-ruby3_2 (3.0.7) sha256=f53dd6d286fb05186214fc6ec116783e7f837030918e8931c05de773e98f8466 rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 + ruby-merge (7.1.0) ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 + rust-merge (7.1.0) + service_actor (3.9.4) sha256=e63b523630b9a7e62959b2a90113b08d2565b5de9c148557b281ef847c9539ce silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed + smorg-rb (7.1.0) sorbet-runtime (0.6.13347) sha256=54e7221d9f4b63f58aec79f3043752a9ba7810347c6ae0d903531591cc2d5f01 standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b @@ -551,15 +864,20 @@ CHECKSUMS timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.5) sha256=b852f924287ffb58a440856e862b056c8ad97e74b4b2526cee43e0771f40c25c + toml (0.3.0) sha256=0a91d0f76a9036e84e44f95693b12f58d358c1df3ac8e3b5271f2056ecc6e4b9 + toml-merge (7.1.0) + toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 + typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 webrick (1.9.2) sha256=beb4a15fc474defed24a3bda4ffd88a490d517c9e4e6118c3edce59e45864131 yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 + yaml-merge (7.1.0) yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd @@ -567,6 +885,7 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 + zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH diff --git a/gems/citrus-toml-merge/.kettle-drift.lock b/gems/citrus-toml-merge/.kettle-drift.lock index aa01ca527..d28e306b0 100644 --- a/gems/citrus-toml-merge/.kettle-drift.lock +++ b/gems/citrus-toml-merge/.kettle-drift.lock @@ -1,122 +1,10 @@ { - "(direct_sibling_local ||\nENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?)": [ - { - "file": "Gemfile", - "lines": [ - 79, - 119, - 159, - 199, - 239, - 279, - 319, - 359 - ] - } - ], - ".find { |spec| spec.name == 'nomono' }\nnomono_locked = nomono_locked_spec &&": [ - { - "file": "Gemfile", - "lines": [ - 90, - 130, - 170, - 210, - 250, - 290, - 330, - 370 - ] - } - ], - "ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?)\ndirect_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV')": [ - { - "file": "Gemfile", - "lines": [ - 80, - 120, - 160, - 200, - 240, - 280, - 320, - 360 - ] - } - ], - "Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version)\nnomono_activation_requirements = [\"= #{nomono_locked_spec.version}\"] if nomono_locked": [ - { - "file": "Gemfile", - "lines": [ - 92, - 132, - 172, - 212, - 252, - 292, - 332, - 372 - ] - } - ], - "Kernel.send(:gem, 'nomono', *nomono_activation_requirements)\nrequire 'nomono/bundler'": [ - { - "file": "Gemfile", - "lines": [ - 95, - 135, - 175, - 215, - 255, - 295, - 335, - 375 - ] - } - ], - "direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV')\ndirect_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil)": [ - { - "file": "Gemfile", - "lines": [ - 81, - 121, - 161, - 201, - 241, - 281, - 321, - 361 - ] - } - ], "eval_nomono_gems(\ngems: direct_sibling_gems,": [ { "file": "Gemfile", "lines": [ 59, - 99, - 139, - 179, - 219, - 259, - 299, - 339, - 379 - ] - } - ], - "gems: direct_sibling_gems,\nprefix: 'STRUCTUREDMERGE',": [ - { - "file": "Gemfile", - "lines": [ - 100, - 140, - 180, - 220, - 260, - 300, - 340, - 380 + 99 ] } ], @@ -125,29 +13,7 @@ "file": "Gemfile", "lines": [ 42, - 86, - 126, - 166, - 206, - 246, - 286, - 326, - 366 - ] - } - ], - "if direct_sibling_dev_was_set\nENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original": [ - { - "file": "Gemfile", - "lines": [ - 109, - 149, - 189, - 229, - 269, - 309, - 349, - 389 + 86 ] } ], @@ -156,14 +22,7 @@ "file": "Gemfile", "lines": [ 34, - 78, - 118, - 158, - 198, - 238, - 278, - 318, - 358 + 78 ] } ], @@ -172,29 +31,7 @@ "file": "Gemfile", "lines": [ 68, - 108, - 148, - 188, - 228, - 268, - 308, - 348, - 388 - ] - } - ], - "nomono_activation_requirements = nomono_requirements\nnomono_lockfile = File.expand_path('Gemfile.lock', __dir__)": [ - { - "file": "Gemfile", - "lines": [ - 84, - 124, - 164, - 204, - 244, - 284, - 324, - 364 + 108 ] } ], @@ -203,14 +40,7 @@ "file": "Gemfile", "lines": [ 47, - 91, - 131, - 171, - 211, - 251, - 291, - 331, - 371 + 91 ] } ], @@ -219,89 +49,7 @@ "file": "Gemfile", "lines": [ 43, - 87, - 127, - 167, - 207, - 247, - 287, - 327, - 367 - ] - } - ], - "nomono_lockfile = File.expand_path('Gemfile.lock', __dir__)\nif File.file?(nomono_lockfile)": [ - { - "file": "Gemfile", - "lines": [ - 85, - 125, - 165, - 205, - 245, - 285, - 325, - 365 - ] - } - ], - "path_env: 'STRUCTUREDMERGE_DEV',\nroot: %w[src my structuredmerge]": [ - { - "file": "Gemfile", - "lines": [ - 102, - 142, - 182, - 222, - 262, - 302, - 342, - 382 - ] - } - ], - "prefix: 'STRUCTUREDMERGE',\npath_env: 'STRUCTUREDMERGE_DEV',": [ - { - "file": "Gemfile", - "lines": [ - 101, - 141, - 181, - 221, - 261, - 301, - 341, - 381 - ] - } - ], - "require 'nomono/bundler'\nENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local": [ - { - "file": "Gemfile", - "lines": [ - 96, - 136, - 176, - 216, - 256, - 296, - 336, - 376 - ] - } - ], - "rescue LoadError\nwarn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.'": [ - { - "file": "Gemfile", - "lines": [ - 105, - 145, - 185, - 225, - 265, - 305, - 345, - 385 + 87 ] } ], @@ -309,8 +57,8 @@ { "file": "gemfiles/modular/templating_local.gemfile", "lines": [ - 60, - 71 + 55, + 66 ] } ] diff --git a/gems/citrus-toml-merge/.structuredmerge/kettle-jem.yml b/gems/citrus-toml-merge/.structuredmerge/kettle-jem.yml index 3db063133..fe3da1912 100644 --- a/gems/citrus-toml-merge/.structuredmerge/kettle-jem.yml +++ b/gems/citrus-toml-merge/.structuredmerge/kettle-jem.yml @@ -246,6 +246,59 @@ templates: - Gemfile - certs/pboling.pem - tmp/.gitignore + - gemfiles/modular/benchmark/r4/v0.5.gemfile + - gemfiles/modular/benchmark/vHEAD.gemfile + - gemfiles/modular/cgi/r4/v0.5.gemfile + - gemfiles/modular/cgi/vHEAD.gemfile + - gemfiles/modular/coverage.gemfile + - gemfiles/modular/coverage_local.gemfile + - gemfiles/modular/debug.gemfile + - gemfiles/modular/documentation.gemfile + - gemfiles/modular/documentation_local.gemfile + - gemfiles/modular/erb/r2.3/default.gemfile + - gemfiles/modular/erb/r2.6/v2.2.gemfile + - gemfiles/modular/erb/r2/v3.0.gemfile + - gemfiles/modular/erb/r3.1/v4.0.gemfile + - gemfiles/modular/erb/r3/v5.0.gemfile + - gemfiles/modular/erb/r4/v5.0.gemfile + - gemfiles/modular/erb/vHEAD.gemfile + - gemfiles/modular/json/truffleruby_22_3.gemfile + - gemfiles/modular/json/truffleruby_23_0.gemfile + - gemfiles/modular/json/truffleruby_23_1.gemfile + - gemfiles/modular/mutex_m/r2.4/v0.1.gemfile + - gemfiles/modular/mutex_m/r2/v0.3.gemfile + - gemfiles/modular/mutex_m/r3/v0.3.gemfile + - gemfiles/modular/mutex_m/r4/v0.3.gemfile + - gemfiles/modular/mutex_m/vHEAD.gemfile + - gemfiles/modular/optional.gemfile + - gemfiles/modular/recording/r2.3/recording.gemfile + - gemfiles/modular/recording/r2.4/recording.gemfile + - gemfiles/modular/recording/r2.5/recording.gemfile + - gemfiles/modular/recording/r3/recording.gemfile + - gemfiles/modular/recording/r4/recording.gemfile + - gemfiles/modular/recording/vHEAD.gemfile + - gemfiles/modular/rspec.gemfile + - gemfiles/modular/runtime_heads.gemfile + - gemfiles/modular/stringio/r2.4/v0.0.2.gemfile + - gemfiles/modular/stringio/r2/v3.0.gemfile + - gemfiles/modular/stringio/r3/v3.0.gemfile + - gemfiles/modular/stringio/r4/v3.0.gemfile + - gemfiles/modular/stringio/vHEAD.gemfile + - gemfiles/modular/style.gemfile + - gemfiles/modular/style_local.gemfile + - gemfiles/modular/templating.gemfile + - gemfiles/modular/templating_local.gemfile + - gemfiles/modular/webrick/r4/v1.9.gemfile + - gemfiles/modular/webrick/vHEAD.gemfile + - gemfiles/modular/x_std_libs.gemfile + - gemfiles/modular/x_std_libs/r2.3/libs.gemfile + - gemfiles/modular/x_std_libs/r2.4/libs.gemfile + - gemfiles/modular/x_std_libs/r2.6/libs.gemfile + - gemfiles/modular/x_std_libs/r2/libs.gemfile + - gemfiles/modular/x_std_libs/r3.1/libs.gemfile + - gemfiles/modular/x_std_libs/r3/libs.gemfile + - gemfiles/modular/x_std_libs/r4/libs.gemfile + - gemfiles/modular/x_std_libs/vHEAD.gemfile - source: lib/gem/version.rb target: lib/citrus/toml/merge/version.rb - source: sig/gem.rbs diff --git a/gems/citrus-toml-merge/Gemfile b/gems/citrus-toml-merge/Gemfile index 9faef4ddb..c22b5f38c 100644 --- a/gems/citrus-toml-merge/Gemfile +++ b/gems/citrus-toml-merge/Gemfile @@ -6,7 +6,7 @@ # kettle-jem will then preserve content between those markers across template runs. # kettle-jem:unfreeze -source 'https://gem.coop' +source "https://gem.coop" git_source(:codeberg) { |repo_name| "https://codeberg.org/#{repo_name}" } git_source(:gitlab) { |repo_name| "https://gitlab.com/#{repo_name}" } @@ -19,17 +19,61 @@ git_source(:gitlab) { |repo_name| "https://gitlab.com/#{repo_name}" } gemspec # Local workspace dependency wiring for *_local.gemfile overrides -nomono_requirements = ['~> 1.0', '>= 1.0.8'] -gem 'nomono', *nomono_requirements, require: false # ruby >= 2.2 +nomono_requirements = ["~> 1.0", ">= 1.0.8"] +gem "nomono", *nomono_requirements, require: false # ruby >= 2.2 # Direct sibling dependencies (env-switched via STRUCTUREDMERGE_DEV) direct_sibling_gems = %w[ toml-merge ] -direct_sibling_dev = ENV.fetch('STRUCTUREDMERGE_DEV', '') +direct_sibling_dev = ENV.fetch("STRUCTUREDMERGE_DEV", "") direct_sibling_local = !direct_sibling_dev.empty? && !%w[false 0 no off].include?(direct_sibling_dev.downcase) -direct_sibling_templating = ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? +direct_sibling_templating = ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? + +if direct_sibling_gems.any? && + (direct_sibling_local || + ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero?) + direct_sibling_dev_was_set = ENV.key?("STRUCTUREDMERGE_DEV") + direct_sibling_dev_original = ENV.fetch("STRUCTUREDMERGE_DEV", nil) + begin + nomono_activation_requirements = nomono_requirements + nomono_lockfile = File.expand_path("Gemfile.lock", __dir__) + if File.file?(nomono_lockfile) + nomono_locked_spec = Bundler::LockfileParser + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == "nomono" } + nomono_locked = nomono_locked_spec && + Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) + if nomono_locked + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] + end + end + Kernel.send(:gem, "nomono", *nomono_activation_requirements) + require "nomono/bundler" + if direct_sibling_templating && !direct_sibling_local + ENV["STRUCTUREDMERGE_DEV"] = File.expand_path("..", __dir__) + end + + eval_nomono_gems( + gems: direct_sibling_gems, + prefix: "STRUCTUREDMERGE", + path_env: "STRUCTUREDMERGE_DEV", + root: ["src", "my", "structuredmerge"] + ) + rescue LoadError + warn "Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies." + ensure + if direct_sibling_templating && !direct_sibling_local + if direct_sibling_dev_was_set + ENV["STRUCTUREDMERGE_DEV"] = direct_sibling_dev_original + else + ENV.delete("STRUCTUREDMERGE_DEV") + end + end + end +end if direct_sibling_gems.any? && (direct_sibling_local || @@ -72,28 +116,28 @@ if direct_sibling_gems.any? && end # Use released TSLP with the Ruby ABI platform-gem fix. -gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' +gem "tree_sitter_language_pack", "~> 1.13", ">= 1.13.3" # Templating (env-switched: STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local paths) -eval_gemfile 'gemfiles/modular/templating.gemfile' if ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? +eval_gemfile "gemfiles/modular/templating.gemfile" if ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? # Debugging -eval_gemfile 'gemfiles/modular/debug.gemfile' +eval_gemfile "gemfiles/modular/debug.gemfile" # Code Coverage (env-switched: KETTLE_DEV_DEV=true for local paths) -eval_gemfile 'gemfiles/modular/coverage.gemfile' +eval_gemfile "gemfiles/modular/coverage.gemfile" # Linting -eval_gemfile 'gemfiles/modular/style.gemfile' +eval_gemfile "gemfiles/modular/style.gemfile" # Documentation -eval_gemfile 'gemfiles/modular/documentation.gemfile' +eval_gemfile "gemfiles/modular/documentation.gemfile" # Optional -eval_gemfile 'gemfiles/modular/optional.gemfile' +eval_gemfile "gemfiles/modular/optional.gemfile" ### Std Lib Extracted Gems -eval_gemfile 'gemfiles/modular/x_std_libs.gemfile' +eval_gemfile "gemfiles/modular/x_std_libs.gemfile" # See unlocked_deps appraisal for more details on irb inclusion -gem 'irb', '~> 1.17' # ruby >= 2.7 +gem "irb", "~> 1.17" # ruby >= 2.7 diff --git a/gems/citrus-toml-merge/Gemfile.lock b/gems/citrus-toml-merge/Gemfile.lock index 157f3240f..77d91229f 100644 --- a/gems/citrus-toml-merge/Gemfile.lock +++ b/gems/citrus-toml-merge/Gemfile.lock @@ -6,6 +6,265 @@ PATH toml-rb (~> 4.1) version_gem (~> 1.1, >= 1.1.9) +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly + specs: + ast-crispr-markdown-markly (7.1.0) + ast-crispr (= 7.1.0) + markly-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism + specs: + ast-crispr-ruby-prism (7.1.0) + ast-crispr (= 7.1.0) + prism-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr + specs: + ast-crispr (7.1.0) + ast-merge (= 7.1.0) + service_actor (~> 3.9) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git + specs: + ast-merge-git (7.1.0) + ast-merge (= 7.1.0) + json-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge + specs: + ast-merge (7.1.0) + benchmark + token-resolver (~> 2.0, >= 2.0.4) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template + specs: + ast-template (7.1.0) + ast-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge + specs: + bash-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge + specs: + binary-merge (7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge + specs: + commonmarker-merge (7.1.0) + commonmarker (~> 2.2) + markdown-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge + specs: + dotenv-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge + specs: + go-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge + specs: + json-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem + specs: + kettle-jem (7.1.0) + addressable (>= 2.8, < 3) + ast-crispr-markdown-markly (= 7.1.0) + ast-crispr-ruby-prism (= 7.1.0) + ast-merge (= 7.1.0) + bash-merge (= 7.1.0) + citrus-toml-merge (= 7.1.0) + commonmarker-merge (= 7.1.0) + dotenv-merge (= 7.1.0) + json-merge (= 7.1.0) + kettle-dev (~> 2.3, >= 2.3.5) + kettle-rb (~> 0.1, >= 0.1.4) + kramdown-merge (= 7.1.0) + markdown-merge (= 7.1.0) + markly-merge (= 7.1.0) + prism-merge (= 7.1.0) + psych-merge (= 7.1.0) + rbs (>= 3.10) + rbs-merge (= 7.1.0) + ruby-merge (= 7.1.0) + token-resolver (~> 2.0, >= 2.0.4) + toml-merge (= 7.1.0) + toml-rb (~> 4.2) + tree_haver (= 7.1.0) + yaml-merge (= 7.1.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge + specs: + kramdown-merge (7.1.0) + kramdown (~> 2.5) + markdown-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge + specs: + markdown-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge + specs: + markly-merge (7.1.0) + markdown-merge (= 7.1.0) + markly (~> 0.9) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge + specs: + parslet-toml-merge (7.1.0) + toml (~> 0.3) + toml-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge + specs: + plain-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge + specs: + prism-merge (7.1.0) + prism (~> 1.6) + ruby-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge + specs: + psych-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + yaml-merge (= 7.1.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge + specs: + rbs-merge (7.1.0) + ast-merge (= 7.1.0) + rbs (>= 3.10) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge + specs: + ruby-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge + specs: + rust-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb + specs: + smorg-rb (7.1.0) + ast-merge (= 7.1.0) + ast-merge-git (= 7.1.0) + go-merge (= 7.1.0) + json-merge (= 7.1.0) + kettle-jem (= 7.1.0) + markly-merge (= 7.1.0) + plain-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge + specs: + toml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver + specs: + tree_haver (7.1.0) + citrus (~> 3.0) + parslet (~> 2.0) + tree_sitter_language_pack (>= 1.13.2, < 2.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge + specs: + typescript-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge + specs: + yaml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge + specs: + zip-merge (7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + GEM remote: https://gem.coop/ specs: @@ -17,11 +276,6 @@ GEM rake (>= 10) thor (>= 0.14) ast (2.4.3) - ast-merge (7.1.0) - benchmark - token-resolver (~> 2.0, >= 2.0.4) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) backports (3.25.3) benchmark (0.5.0) bigdecimal (4.1.2) @@ -30,6 +284,7 @@ GEM thor (~> 1.0) citrus (3.0.2) cmdparse (3.0.7) + commonmarker (2.9.0-x86_64-linux) concurrent-ruby (1.3.7) date (3.5.1) debug (1.11.1) @@ -93,6 +348,8 @@ GEM kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) + kettle-drift (1.0.6) + version_gem (~> 1.1, >= 1.1.14) kettle-rb (0.1.4) kettle-soup-cover (1.1.3) simplecov (~> 0.22) @@ -121,10 +378,11 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) + markly (0.16.0) mutex_m (0.3.0) nokogiri (1.19.4-x86_64-linux-gnu) racc (~> 1.4) - nomono (1.0.8) + nomono (1.0.9) openssl (4.0.2) ostruct (0.6.3) parallel (1.28.0) @@ -247,6 +505,8 @@ GEM ruby-progressbar (1.13.0) ruby_engine (2.0.3) ruby_version (1.0.3) + service_actor (3.9.4) + zeitwerk (>= 1.0) silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) @@ -266,7 +526,7 @@ GEM simplecov-rcov (0.3.7) simplecov (>= 0.4.1) simplecov_json_formatter (0.1.4) - sorbet-runtime (0.6.13342) + sorbet-runtime (0.6.13347) standard (1.56.0) language_server-protocol (~> 3.17.0.2) lint_roller (~> 1.0) @@ -299,18 +559,11 @@ GEM token-resolver (2.0.4) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.14) - toml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) + toml (0.3.0) + parslet (>= 1.8.0, < 3.0.0) toml-rb (4.2.0) citrus (~> 3.0, > 3.0) racc (~> 1.7) - tree_haver (7.1.0) - citrus (~> 3.0) - parslet (~> 2.0) - tree_sitter_language_pack (>= 1.13.2, < 2.0) - version_gem (~> 1.1, >= 1.1.9) tree_sitter_language_pack (1.13.3-x86_64-linux) sorbet-runtime (~> 0.5) tsort (0.2.0) @@ -354,23 +607,45 @@ PLATFORMS DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) + ast-crispr! + ast-crispr-markdown-markly! + ast-crispr-ruby-prism! + ast-merge! + ast-merge-git! + ast-template! + bash-merge! benchmark (~> 0.5, >= 0.5.0) + binary-merge! bundler-audit (~> 0.9.3) citrus-toml-merge! + commonmarker-merge! debug (>= 1.1) + dotenv-merge! erb (~> 6.0, >= 6.0.4) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.0) + go-merge! irb (~> 1.17) + json-merge! kettle-dev (~> 2.0, >= 2.2.25) + kettle-drift (~> 1.0, >= 1.0.5) + kettle-jem! kettle-soup-cover (~> 1.0, >= 1.1.3) kettle-test (~> 2.0, >= 2.0.9) kramdown (~> 2.5, >= 2.5.1) + kramdown-merge! kramdown-parser-gfm (~> 1.1) + markdown-merge! + markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) + parslet-toml-merge! + plain-merge! + prism-merge! + psych-merge! rake (~> 13.0) rbs (>= 3.0) + rbs-merge! rdoc (~> 6.11) reek (~> 6.5) require_bench (~> 1.0, >= 1.0.4) @@ -379,32 +654,49 @@ DEPENDENCIES rubocop-packaging (~> 0.6, >= 0.6.0) rubocop-rspec (~> 3.6) rubocop-ruby3_2 (~> 3.0.0) + ruby-merge! ruby-progressbar (~> 1.13) + rust-merge! + smorg-rb! standard (>= 1.50) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) + toml-merge! + tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) + typescript-merge! yaml-converter (~> 0.1) + yaml-merge! yard (~> 0.9, >= 0.9.44) yard-fence (~> 0.9, >= 0.9.1) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) yard-timekeeper (~> 0.1) yard-yaml (~> 0.1, >= 0.1.2) + zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af ansi (1.6.0) sha256=ac9ea0c0ea8d32fb4e271348e609963ac78882f34b73836c2a02b3622e666658 appraisal2 (3.2.0) sha256=ccd0b767ac4060cd7af6d16747459b6990f49c39c7b4fb1f7d1146b1e97c492f ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 + ast-crispr (7.1.0) + ast-crispr-markdown-markly (7.1.0) + ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) + ast-merge-git (7.1.0) + ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 + bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd + binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 + commonmarker (2.9.0-x86_64-linux) + commonmarker-merge (7.1.0) concurrent-ruby (1.3.7) sha256=4412caec3a5ea2e5fdc52076724c071a81f2c0593d83b2ac8cbb8ca63b3151b0 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 @@ -412,6 +704,7 @@ CHECKSUMS diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 docile (1.4.1) sha256=96159be799bfa73cdb721b840e9802126e4e03dfc26863db73647204c727f21e + dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -424,37 +717,50 @@ CHECKSUMS gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f + go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 + json-merge (7.1.0) kettle-dev (2.3.7) sha256=eb370113cd030d03cbe2d33b31c99858951017e5ad21a17e9ed89dc3770028ee + kettle-drift (1.0.6) + kettle-jem (7.1.0) kettle-rb (0.1.4) sha256=9cef7ce4f7021666b7222292f29051e51eaf042e8a5db11f3f4dd72f74243fc1 kettle-soup-cover (1.1.3) sha256=a373827da22a7131d093afd32945e5b7d7a10a01ebfdded8fd2cb8230d69c8ad kettle-test (2.0.11) sha256=c710c90f7ab79d51f9452f0c09f5f90657e7a893f63583855c164d0b1b107ab2 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa + kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 + markdown-merge (7.1.0) + markly (0.16.0) + markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-x86_64-linux-gnu) sha256=379fae440b28915e3f19d752ce2dcf8465ed2b2fbefd2a7ca0dd497bc981a06a - nomono (1.0.8) sha256=bf4b9b426cbf216ab17b70db474f691b8ae1f1e29de8db4b0ecd405e6e7e1c80 + nomono (1.0.9) openssl (4.0.2) sha256=1037ad2868ae58df9ad917891c0c0f9815a1172f6846d4bcdd508e4c2ee747c2 ostruct (0.6.3) sha256=95a2ed4a4bd1d190784e666b47b2d3f078e4a9efda2fccf18f84ddc6538ed912 parallel (1.28.0) sha256=33e6de1484baf2524792d178b0913fc8eb94c628d6cfe45599ad4458c638c970 parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 + parslet-toml-merge (7.1.0) + plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 + prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 + psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 + rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb @@ -482,9 +788,12 @@ CHECKSUMS rubocop-rspec (3.10.2) sha256=0b3e2ecc592cd10ecbf0095bb58d1e357905276e069643523cc19eb7495f65e2 rubocop-ruby3_2 (3.0.7) sha256=f53dd6d286fb05186214fc6ec116783e7f837030918e8931c05de773e98f8466 rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 + ruby-merge (7.1.0) ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 + rust-merge (7.1.0) + service_actor (3.9.4) silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (0.22.0) sha256=fe2622c7834ff23b98066bb0a854284b2729a569ac659f82621fc22ef36213a5 simplecov-cobertura (3.2.0) sha256=70d702658677fcb20e5aceb6915ccf8bc62ff2ccd38b62b3ad5c9db5c0888740 @@ -493,7 +802,8 @@ CHECKSUMS simplecov-lcov (0.9.0) sha256=7a77a31e200a595ed4b0249493056efd0c920601f53d2ef135ca34ee796346cd simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_json_formatter (0.1.4) sha256=529418fbe8de1713ac2b2d612aa3daa56d316975d307244399fa4838c601b428 - sorbet-runtime (0.6.13342) sha256=dbeb9892597f593ed2b29e38018912787f6c4e0c4b736d8af0d6bd3c63bde3c3 + smorg-rb (7.1.0) + sorbet-runtime (0.6.13347) sha256=54e7221d9f4b63f58aec79f3043752a9ba7810347c6ae0d903531591cc2d5f01 standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b standard-performance (1.9.0) sha256=49483d31be448292951d80e5e67cdcb576c2502103c7b40aec6f1b6e9c88e3f2 @@ -506,24 +816,28 @@ CHECKSUMS timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.4) sha256=33b926958f504525bba3ed511ab66fbcbf8ef30390815e931436b30f27ffcad0 + toml (0.3.0) toml-merge (7.1.0) toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 tree_haver (7.1.0) - tree_sitter_language_pack (1.13.3-x86_64-linux) - tsort (0.2.0) - turbo_tests2 (3.2.0) - unicode-display_width (3.2.0) - unicode-emoji (4.2.0) - version_gem (1.1.14) - yaml-converter (0.2.3) - yard (0.9.45) - yard-fence (0.9.6) - yard-junk (0.1.0) - yard-relative_markdown_links (0.6.0) - yard-timekeeper (0.2.4) - yard-yaml (0.2.3) - zeitwerk (2.8.2) - zlib (3.2.3) + tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 + tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f + turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 + typescript-merge (7.1.0) + unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 + unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f + version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 + yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 + yaml-merge (7.1.0) + yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 + yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 + yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd + yard-relative_markdown_links (0.6.0) sha256=3e5ffa85cbad9bac70bee5421774b190fb25d3bdf489323a5b3534f647d1a70e + yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a + yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 + zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 + zip-merge (7.1.0) + zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH 4.0.16 diff --git a/gems/citrus-toml-merge/Rakefile b/gems/citrus-toml-merge/Rakefile index 6077031be..c88ccc855 100644 --- a/gems/citrus-toml-merge/Rakefile +++ b/gems/citrus-toml-merge/Rakefile @@ -130,23 +130,23 @@ end ### DUPLICATE DRIFT TASKS begin - require 'kettle/drift' + require "kettle/drift" Kettle::Drift.install_tasks rescue LoadError - desc('(stub) kettle:drift:check is unavailable') - task('kettle:drift:check') do + desc("(stub) kettle:drift:check is unavailable") + task("kettle:drift:check") do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc('(stub) kettle:drift:update is unavailable') - task('kettle:drift:update') do + desc("(stub) kettle:drift:update is unavailable") + task("kettle:drift:update") do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc('(stub) kettle:drift:force_update is unavailable') - task('kettle:drift:force_update') do + desc("(stub) kettle:drift:force_update is unavailable") + task("kettle:drift:force_update") do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc('(stub) kettle:drift is unavailable') - task('kettle:drift' => 'kettle:drift:update') + desc("(stub) kettle:drift is unavailable") + task("kettle:drift" => "kettle:drift:update") end ### TEMPLATING TASKS diff --git a/gems/citrus-toml-merge/lib/citrus/toml/merge/version.rb b/gems/citrus-toml-merge/lib/citrus/toml/merge/version.rb index 9d400d071..e83bb4f4d 100644 --- a/gems/citrus-toml-merge/lib/citrus/toml/merge/version.rb +++ b/gems/citrus-toml-merge/lib/citrus/toml/merge/version.rb @@ -4,7 +4,7 @@ module Citrus module Toml module Merge module Version - VERSION = '7.1.0' + VERSION = "7.1.0" end VERSION = Version::VERSION # Traditional Constant Location end diff --git a/gems/commonmarker-merge/.kettle-drift.lock b/gems/commonmarker-merge/.kettle-drift.lock index aa01ca527..d28e306b0 100644 --- a/gems/commonmarker-merge/.kettle-drift.lock +++ b/gems/commonmarker-merge/.kettle-drift.lock @@ -1,122 +1,10 @@ { - "(direct_sibling_local ||\nENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?)": [ - { - "file": "Gemfile", - "lines": [ - 79, - 119, - 159, - 199, - 239, - 279, - 319, - 359 - ] - } - ], - ".find { |spec| spec.name == 'nomono' }\nnomono_locked = nomono_locked_spec &&": [ - { - "file": "Gemfile", - "lines": [ - 90, - 130, - 170, - 210, - 250, - 290, - 330, - 370 - ] - } - ], - "ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?)\ndirect_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV')": [ - { - "file": "Gemfile", - "lines": [ - 80, - 120, - 160, - 200, - 240, - 280, - 320, - 360 - ] - } - ], - "Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version)\nnomono_activation_requirements = [\"= #{nomono_locked_spec.version}\"] if nomono_locked": [ - { - "file": "Gemfile", - "lines": [ - 92, - 132, - 172, - 212, - 252, - 292, - 332, - 372 - ] - } - ], - "Kernel.send(:gem, 'nomono', *nomono_activation_requirements)\nrequire 'nomono/bundler'": [ - { - "file": "Gemfile", - "lines": [ - 95, - 135, - 175, - 215, - 255, - 295, - 335, - 375 - ] - } - ], - "direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV')\ndirect_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil)": [ - { - "file": "Gemfile", - "lines": [ - 81, - 121, - 161, - 201, - 241, - 281, - 321, - 361 - ] - } - ], "eval_nomono_gems(\ngems: direct_sibling_gems,": [ { "file": "Gemfile", "lines": [ 59, - 99, - 139, - 179, - 219, - 259, - 299, - 339, - 379 - ] - } - ], - "gems: direct_sibling_gems,\nprefix: 'STRUCTUREDMERGE',": [ - { - "file": "Gemfile", - "lines": [ - 100, - 140, - 180, - 220, - 260, - 300, - 340, - 380 + 99 ] } ], @@ -125,29 +13,7 @@ "file": "Gemfile", "lines": [ 42, - 86, - 126, - 166, - 206, - 246, - 286, - 326, - 366 - ] - } - ], - "if direct_sibling_dev_was_set\nENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original": [ - { - "file": "Gemfile", - "lines": [ - 109, - 149, - 189, - 229, - 269, - 309, - 349, - 389 + 86 ] } ], @@ -156,14 +22,7 @@ "file": "Gemfile", "lines": [ 34, - 78, - 118, - 158, - 198, - 238, - 278, - 318, - 358 + 78 ] } ], @@ -172,29 +31,7 @@ "file": "Gemfile", "lines": [ 68, - 108, - 148, - 188, - 228, - 268, - 308, - 348, - 388 - ] - } - ], - "nomono_activation_requirements = nomono_requirements\nnomono_lockfile = File.expand_path('Gemfile.lock', __dir__)": [ - { - "file": "Gemfile", - "lines": [ - 84, - 124, - 164, - 204, - 244, - 284, - 324, - 364 + 108 ] } ], @@ -203,14 +40,7 @@ "file": "Gemfile", "lines": [ 47, - 91, - 131, - 171, - 211, - 251, - 291, - 331, - 371 + 91 ] } ], @@ -219,89 +49,7 @@ "file": "Gemfile", "lines": [ 43, - 87, - 127, - 167, - 207, - 247, - 287, - 327, - 367 - ] - } - ], - "nomono_lockfile = File.expand_path('Gemfile.lock', __dir__)\nif File.file?(nomono_lockfile)": [ - { - "file": "Gemfile", - "lines": [ - 85, - 125, - 165, - 205, - 245, - 285, - 325, - 365 - ] - } - ], - "path_env: 'STRUCTUREDMERGE_DEV',\nroot: %w[src my structuredmerge]": [ - { - "file": "Gemfile", - "lines": [ - 102, - 142, - 182, - 222, - 262, - 302, - 342, - 382 - ] - } - ], - "prefix: 'STRUCTUREDMERGE',\npath_env: 'STRUCTUREDMERGE_DEV',": [ - { - "file": "Gemfile", - "lines": [ - 101, - 141, - 181, - 221, - 261, - 301, - 341, - 381 - ] - } - ], - "require 'nomono/bundler'\nENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local": [ - { - "file": "Gemfile", - "lines": [ - 96, - 136, - 176, - 216, - 256, - 296, - 336, - 376 - ] - } - ], - "rescue LoadError\nwarn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.'": [ - { - "file": "Gemfile", - "lines": [ - 105, - 145, - 185, - 225, - 265, - 305, - 345, - 385 + 87 ] } ], @@ -309,8 +57,8 @@ { "file": "gemfiles/modular/templating_local.gemfile", "lines": [ - 60, - 71 + 55, + 66 ] } ] diff --git a/gems/commonmarker-merge/.structuredmerge/kettle-jem.yml b/gems/commonmarker-merge/.structuredmerge/kettle-jem.yml index bbb2c1cd6..ee8cba9af 100644 --- a/gems/commonmarker-merge/.structuredmerge/kettle-jem.yml +++ b/gems/commonmarker-merge/.structuredmerge/kettle-jem.yml @@ -246,6 +246,59 @@ templates: - Gemfile - certs/pboling.pem - tmp/.gitignore + - gemfiles/modular/benchmark/r4/v0.5.gemfile + - gemfiles/modular/benchmark/vHEAD.gemfile + - gemfiles/modular/cgi/r4/v0.5.gemfile + - gemfiles/modular/cgi/vHEAD.gemfile + - gemfiles/modular/coverage.gemfile + - gemfiles/modular/coverage_local.gemfile + - gemfiles/modular/debug.gemfile + - gemfiles/modular/documentation.gemfile + - gemfiles/modular/documentation_local.gemfile + - gemfiles/modular/erb/r2.3/default.gemfile + - gemfiles/modular/erb/r2.6/v2.2.gemfile + - gemfiles/modular/erb/r2/v3.0.gemfile + - gemfiles/modular/erb/r3.1/v4.0.gemfile + - gemfiles/modular/erb/r3/v5.0.gemfile + - gemfiles/modular/erb/r4/v5.0.gemfile + - gemfiles/modular/erb/vHEAD.gemfile + - gemfiles/modular/json/truffleruby_22_3.gemfile + - gemfiles/modular/json/truffleruby_23_0.gemfile + - gemfiles/modular/json/truffleruby_23_1.gemfile + - gemfiles/modular/mutex_m/r2.4/v0.1.gemfile + - gemfiles/modular/mutex_m/r2/v0.3.gemfile + - gemfiles/modular/mutex_m/r3/v0.3.gemfile + - gemfiles/modular/mutex_m/r4/v0.3.gemfile + - gemfiles/modular/mutex_m/vHEAD.gemfile + - gemfiles/modular/optional.gemfile + - gemfiles/modular/recording/r2.3/recording.gemfile + - gemfiles/modular/recording/r2.4/recording.gemfile + - gemfiles/modular/recording/r2.5/recording.gemfile + - gemfiles/modular/recording/r3/recording.gemfile + - gemfiles/modular/recording/r4/recording.gemfile + - gemfiles/modular/recording/vHEAD.gemfile + - gemfiles/modular/rspec.gemfile + - gemfiles/modular/runtime_heads.gemfile + - gemfiles/modular/stringio/r2.4/v0.0.2.gemfile + - gemfiles/modular/stringio/r2/v3.0.gemfile + - gemfiles/modular/stringio/r3/v3.0.gemfile + - gemfiles/modular/stringio/r4/v3.0.gemfile + - gemfiles/modular/stringio/vHEAD.gemfile + - gemfiles/modular/style.gemfile + - gemfiles/modular/style_local.gemfile + - gemfiles/modular/templating.gemfile + - gemfiles/modular/templating_local.gemfile + - gemfiles/modular/webrick/r4/v1.9.gemfile + - gemfiles/modular/webrick/vHEAD.gemfile + - gemfiles/modular/x_std_libs.gemfile + - gemfiles/modular/x_std_libs/r2.3/libs.gemfile + - gemfiles/modular/x_std_libs/r2.4/libs.gemfile + - gemfiles/modular/x_std_libs/r2.6/libs.gemfile + - gemfiles/modular/x_std_libs/r2/libs.gemfile + - gemfiles/modular/x_std_libs/r3.1/libs.gemfile + - gemfiles/modular/x_std_libs/r3/libs.gemfile + - gemfiles/modular/x_std_libs/r4/libs.gemfile + - gemfiles/modular/x_std_libs/vHEAD.gemfile - source: lib/gem/version.rb target: lib/commonmarker/merge/version.rb - source: sig/gem.rbs diff --git a/gems/commonmarker-merge/Gemfile b/gems/commonmarker-merge/Gemfile index 258475b9e..e20e30a0b 100644 --- a/gems/commonmarker-merge/Gemfile +++ b/gems/commonmarker-merge/Gemfile @@ -6,7 +6,7 @@ # kettle-jem will then preserve content between those markers across template runs. # kettle-jem:unfreeze -source 'https://gem.coop' +source "https://gem.coop" git_source(:codeberg) { |repo_name| "https://codeberg.org/#{repo_name}" } git_source(:gitlab) { |repo_name| "https://gitlab.com/#{repo_name}" } @@ -19,17 +19,61 @@ git_source(:gitlab) { |repo_name| "https://gitlab.com/#{repo_name}" } gemspec # Local workspace dependency wiring for *_local.gemfile overrides -nomono_requirements = ['~> 1.0', '>= 1.0.8'] -gem 'nomono', *nomono_requirements, require: false # ruby >= 2.2 +nomono_requirements = ["~> 1.0", ">= 1.0.8"] +gem "nomono", *nomono_requirements, require: false # ruby >= 2.2 # Direct sibling dependencies (env-switched via STRUCTUREDMERGE_DEV) direct_sibling_gems = %w[ markdown-merge ] -direct_sibling_dev = ENV.fetch('STRUCTUREDMERGE_DEV', '') +direct_sibling_dev = ENV.fetch("STRUCTUREDMERGE_DEV", "") direct_sibling_local = !direct_sibling_dev.empty? && !%w[false 0 no off].include?(direct_sibling_dev.downcase) -direct_sibling_templating = ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? +direct_sibling_templating = ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? + +if direct_sibling_gems.any? && + (direct_sibling_local || + ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero?) + direct_sibling_dev_was_set = ENV.key?("STRUCTUREDMERGE_DEV") + direct_sibling_dev_original = ENV.fetch("STRUCTUREDMERGE_DEV", nil) + begin + nomono_activation_requirements = nomono_requirements + nomono_lockfile = File.expand_path("Gemfile.lock", __dir__) + if File.file?(nomono_lockfile) + nomono_locked_spec = Bundler::LockfileParser + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == "nomono" } + nomono_locked = nomono_locked_spec && + Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) + if nomono_locked + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] + end + end + Kernel.send(:gem, "nomono", *nomono_activation_requirements) + require "nomono/bundler" + if direct_sibling_templating && !direct_sibling_local + ENV["STRUCTUREDMERGE_DEV"] = File.expand_path("..", __dir__) + end + + eval_nomono_gems( + gems: direct_sibling_gems, + prefix: "STRUCTUREDMERGE", + path_env: "STRUCTUREDMERGE_DEV", + root: ["src", "my", "structuredmerge"] + ) + rescue LoadError + warn "Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies." + ensure + if direct_sibling_templating && !direct_sibling_local + if direct_sibling_dev_was_set + ENV["STRUCTUREDMERGE_DEV"] = direct_sibling_dev_original + else + ENV.delete("STRUCTUREDMERGE_DEV") + end + end + end +end if direct_sibling_gems.any? && (direct_sibling_local || @@ -72,28 +116,28 @@ if direct_sibling_gems.any? && end # Use released TSLP with the Ruby ABI platform-gem fix. -gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' +gem "tree_sitter_language_pack", "~> 1.13", ">= 1.13.3" # Templating (env-switched: STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local paths) -eval_gemfile 'gemfiles/modular/templating.gemfile' if ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? +eval_gemfile "gemfiles/modular/templating.gemfile" if ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? # Debugging -eval_gemfile 'gemfiles/modular/debug.gemfile' +eval_gemfile "gemfiles/modular/debug.gemfile" # Code Coverage (env-switched: KETTLE_DEV_DEV=true for local paths) -eval_gemfile 'gemfiles/modular/coverage.gemfile' +eval_gemfile "gemfiles/modular/coverage.gemfile" # Linting -eval_gemfile 'gemfiles/modular/style.gemfile' +eval_gemfile "gemfiles/modular/style.gemfile" # Documentation -eval_gemfile 'gemfiles/modular/documentation.gemfile' +eval_gemfile "gemfiles/modular/documentation.gemfile" # Optional -eval_gemfile 'gemfiles/modular/optional.gemfile' +eval_gemfile "gemfiles/modular/optional.gemfile" ### Std Lib Extracted Gems -eval_gemfile 'gemfiles/modular/x_std_libs.gemfile' +eval_gemfile "gemfiles/modular/x_std_libs.gemfile" # See unlocked_deps appraisal for more details on irb inclusion -gem 'irb', '~> 1.17' # ruby >= 2.7 +gem "irb", "~> 1.17" # ruby >= 2.7 diff --git a/gems/commonmarker-merge/Gemfile.lock b/gems/commonmarker-merge/Gemfile.lock index b501a520d..f5ac6d9ba 100644 --- a/gems/commonmarker-merge/Gemfile.lock +++ b/gems/commonmarker-merge/Gemfile.lock @@ -6,6 +6,14 @@ PATH markdown-merge (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge + specs: + markdown-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + GEM remote: https://gem.coop/ specs: @@ -122,14 +130,10 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) - markdown-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) mutex_m (0.3.0) nokogiri (1.19.4-x86_64-linux-gnu) racc (~> 1.4) - nomono (1.0.8) + nomono (1.0.9) openssl (4.0.2) ostruct (0.6.3) parallel (1.28.0) @@ -271,7 +275,7 @@ GEM simplecov-rcov (0.3.7) simplecov (>= 0.4.1) simplecov_json_formatter (0.1.4) - sorbet-runtime (0.6.13342) + sorbet-runtime (0.6.13347) standard (1.56.0) language_server-protocol (~> 3.17.0.2) lint_roller (~> 1.0) @@ -303,7 +307,7 @@ GEM timecop (>= 0.7, < 1) token-resolver (2.0.4) parslet (~> 2.0) - version_gem (~> 1.1, >= 1.1.14) + version_gem (~> 1.1, >= 1.1.13) tree_haver (7.1.0) citrus (~> 3.0) parslet (~> 2.0) @@ -365,6 +369,7 @@ DEPENDENCIES kettle-test (~> 2.0, >= 2.0.9) kramdown (~> 2.5, >= 2.5.1) kramdown-parser-gfm (~> 1.1) + markdown-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) rake (~> 13.0) @@ -439,7 +444,7 @@ CHECKSUMS markdown-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-x86_64-linux-gnu) sha256=379fae440b28915e3f19d752ce2dcf8465ed2b2fbefd2a7ca0dd497bc981a06a - nomono (1.0.8) sha256=bf4b9b426cbf216ab17b70db474f691b8ae1f1e29de8db4b0ecd405e6e7e1c80 + nomono (1.0.9) openssl (4.0.2) sha256=1037ad2868ae58df9ad917891c0c0f9815a1172f6846d4bcdd508e4c2ee747c2 ostruct (0.6.3) sha256=95a2ed4a4bd1d190784e666b47b2d3f078e4a9efda2fccf18f84ddc6538ed912 parallel (1.28.0) sha256=33e6de1484baf2524792d178b0913fc8eb94c628d6cfe45599ad4458c638c970 @@ -493,7 +498,7 @@ CHECKSUMS simplecov-lcov (0.9.0) sha256=7a77a31e200a595ed4b0249493056efd0c920601f53d2ef135ca34ee796346cd simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_json_formatter (0.1.4) sha256=529418fbe8de1713ac2b2d612aa3daa56d316975d307244399fa4838c601b428 - sorbet-runtime (0.6.13342) sha256=dbeb9892597f593ed2b29e38018912787f6c4e0c4b736d8af0d6bd3c63bde3c3 + sorbet-runtime (0.6.13347) sha256=54e7221d9f4b63f58aec79f3043752a9ba7810347c6ae0d903531591cc2d5f01 standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b standard-performance (1.9.0) sha256=49483d31be448292951d80e5e67cdcb576c2502103c7b40aec6f1b6e9c88e3f2 @@ -507,21 +512,21 @@ CHECKSUMS timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.4) sha256=33b926958f504525bba3ed511ab66fbcbf8ef30390815e931436b30f27ffcad0 tree_haver (7.1.0) - tree_sitter_language_pack (1.13.3-x86_64-linux) - tsort (0.2.0) - turbo_tests2 (3.2.0) - unicode-display_width (3.2.0) - unicode-emoji (4.2.0) - version_gem (1.1.14) - yaml-converter (0.2.3) - yard (0.9.45) - yard-fence (0.9.6) - yard-junk (0.1.0) - yard-relative_markdown_links (0.6.0) - yard-timekeeper (0.2.4) - yard-yaml (0.2.3) - zeitwerk (2.8.2) - zlib (3.2.3) + tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 + tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f + turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 + unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 + unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f + version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 + yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 + yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 + yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 + yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd + yard-relative_markdown_links (0.6.0) sha256=3e5ffa85cbad9bac70bee5421774b190fb25d3bdf489323a5b3534f647d1a70e + yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a + yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 + zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 + zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH 4.0.16 diff --git a/gems/commonmarker-merge/Rakefile b/gems/commonmarker-merge/Rakefile index 40e72097b..df55d9073 100644 --- a/gems/commonmarker-merge/Rakefile +++ b/gems/commonmarker-merge/Rakefile @@ -130,23 +130,23 @@ end ### DUPLICATE DRIFT TASKS begin - require 'kettle/drift' + require "kettle/drift" Kettle::Drift.install_tasks rescue LoadError - desc('(stub) kettle:drift:check is unavailable') - task('kettle:drift:check') do + desc("(stub) kettle:drift:check is unavailable") + task("kettle:drift:check") do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc('(stub) kettle:drift:update is unavailable') - task('kettle:drift:update') do + desc("(stub) kettle:drift:update is unavailable") + task("kettle:drift:update") do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc('(stub) kettle:drift:force_update is unavailable') - task('kettle:drift:force_update') do + desc("(stub) kettle:drift:force_update is unavailable") + task("kettle:drift:force_update") do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc('(stub) kettle:drift is unavailable') - task('kettle:drift' => 'kettle:drift:update') + desc("(stub) kettle:drift is unavailable") + task("kettle:drift" => "kettle:drift:update") end ### TEMPLATING TASKS diff --git a/gems/commonmarker-merge/lib/commonmarker/merge/version.rb b/gems/commonmarker-merge/lib/commonmarker/merge/version.rb index 477db0695..c84c8d0bb 100644 --- a/gems/commonmarker-merge/lib/commonmarker/merge/version.rb +++ b/gems/commonmarker-merge/lib/commonmarker/merge/version.rb @@ -3,7 +3,7 @@ module Commonmarker module Merge module Version - VERSION = '7.1.0' + VERSION = "7.1.0" end VERSION = Version::VERSION # Traditional Constant Location end diff --git a/gems/parslet-toml-merge/.kettle-drift.lock b/gems/parslet-toml-merge/.kettle-drift.lock index aa01ca527..d28e306b0 100644 --- a/gems/parslet-toml-merge/.kettle-drift.lock +++ b/gems/parslet-toml-merge/.kettle-drift.lock @@ -1,122 +1,10 @@ { - "(direct_sibling_local ||\nENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?)": [ - { - "file": "Gemfile", - "lines": [ - 79, - 119, - 159, - 199, - 239, - 279, - 319, - 359 - ] - } - ], - ".find { |spec| spec.name == 'nomono' }\nnomono_locked = nomono_locked_spec &&": [ - { - "file": "Gemfile", - "lines": [ - 90, - 130, - 170, - 210, - 250, - 290, - 330, - 370 - ] - } - ], - "ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?)\ndirect_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV')": [ - { - "file": "Gemfile", - "lines": [ - 80, - 120, - 160, - 200, - 240, - 280, - 320, - 360 - ] - } - ], - "Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version)\nnomono_activation_requirements = [\"= #{nomono_locked_spec.version}\"] if nomono_locked": [ - { - "file": "Gemfile", - "lines": [ - 92, - 132, - 172, - 212, - 252, - 292, - 332, - 372 - ] - } - ], - "Kernel.send(:gem, 'nomono', *nomono_activation_requirements)\nrequire 'nomono/bundler'": [ - { - "file": "Gemfile", - "lines": [ - 95, - 135, - 175, - 215, - 255, - 295, - 335, - 375 - ] - } - ], - "direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV')\ndirect_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil)": [ - { - "file": "Gemfile", - "lines": [ - 81, - 121, - 161, - 201, - 241, - 281, - 321, - 361 - ] - } - ], "eval_nomono_gems(\ngems: direct_sibling_gems,": [ { "file": "Gemfile", "lines": [ 59, - 99, - 139, - 179, - 219, - 259, - 299, - 339, - 379 - ] - } - ], - "gems: direct_sibling_gems,\nprefix: 'STRUCTUREDMERGE',": [ - { - "file": "Gemfile", - "lines": [ - 100, - 140, - 180, - 220, - 260, - 300, - 340, - 380 + 99 ] } ], @@ -125,29 +13,7 @@ "file": "Gemfile", "lines": [ 42, - 86, - 126, - 166, - 206, - 246, - 286, - 326, - 366 - ] - } - ], - "if direct_sibling_dev_was_set\nENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original": [ - { - "file": "Gemfile", - "lines": [ - 109, - 149, - 189, - 229, - 269, - 309, - 349, - 389 + 86 ] } ], @@ -156,14 +22,7 @@ "file": "Gemfile", "lines": [ 34, - 78, - 118, - 158, - 198, - 238, - 278, - 318, - 358 + 78 ] } ], @@ -172,29 +31,7 @@ "file": "Gemfile", "lines": [ 68, - 108, - 148, - 188, - 228, - 268, - 308, - 348, - 388 - ] - } - ], - "nomono_activation_requirements = nomono_requirements\nnomono_lockfile = File.expand_path('Gemfile.lock', __dir__)": [ - { - "file": "Gemfile", - "lines": [ - 84, - 124, - 164, - 204, - 244, - 284, - 324, - 364 + 108 ] } ], @@ -203,14 +40,7 @@ "file": "Gemfile", "lines": [ 47, - 91, - 131, - 171, - 211, - 251, - 291, - 331, - 371 + 91 ] } ], @@ -219,89 +49,7 @@ "file": "Gemfile", "lines": [ 43, - 87, - 127, - 167, - 207, - 247, - 287, - 327, - 367 - ] - } - ], - "nomono_lockfile = File.expand_path('Gemfile.lock', __dir__)\nif File.file?(nomono_lockfile)": [ - { - "file": "Gemfile", - "lines": [ - 85, - 125, - 165, - 205, - 245, - 285, - 325, - 365 - ] - } - ], - "path_env: 'STRUCTUREDMERGE_DEV',\nroot: %w[src my structuredmerge]": [ - { - "file": "Gemfile", - "lines": [ - 102, - 142, - 182, - 222, - 262, - 302, - 342, - 382 - ] - } - ], - "prefix: 'STRUCTUREDMERGE',\npath_env: 'STRUCTUREDMERGE_DEV',": [ - { - "file": "Gemfile", - "lines": [ - 101, - 141, - 181, - 221, - 261, - 301, - 341, - 381 - ] - } - ], - "require 'nomono/bundler'\nENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local": [ - { - "file": "Gemfile", - "lines": [ - 96, - 136, - 176, - 216, - 256, - 296, - 336, - 376 - ] - } - ], - "rescue LoadError\nwarn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.'": [ - { - "file": "Gemfile", - "lines": [ - 105, - 145, - 185, - 225, - 265, - 305, - 345, - 385 + 87 ] } ], @@ -309,8 +57,8 @@ { "file": "gemfiles/modular/templating_local.gemfile", "lines": [ - 60, - 71 + 55, + 66 ] } ] diff --git a/gems/parslet-toml-merge/.structuredmerge/kettle-jem.yml b/gems/parslet-toml-merge/.structuredmerge/kettle-jem.yml index 473e0314a..0c6f0a684 100644 --- a/gems/parslet-toml-merge/.structuredmerge/kettle-jem.yml +++ b/gems/parslet-toml-merge/.structuredmerge/kettle-jem.yml @@ -246,6 +246,59 @@ templates: - Gemfile - certs/pboling.pem - tmp/.gitignore + - gemfiles/modular/benchmark/r4/v0.5.gemfile + - gemfiles/modular/benchmark/vHEAD.gemfile + - gemfiles/modular/cgi/r4/v0.5.gemfile + - gemfiles/modular/cgi/vHEAD.gemfile + - gemfiles/modular/coverage.gemfile + - gemfiles/modular/coverage_local.gemfile + - gemfiles/modular/debug.gemfile + - gemfiles/modular/documentation.gemfile + - gemfiles/modular/documentation_local.gemfile + - gemfiles/modular/erb/r2.3/default.gemfile + - gemfiles/modular/erb/r2.6/v2.2.gemfile + - gemfiles/modular/erb/r2/v3.0.gemfile + - gemfiles/modular/erb/r3.1/v4.0.gemfile + - gemfiles/modular/erb/r3/v5.0.gemfile + - gemfiles/modular/erb/r4/v5.0.gemfile + - gemfiles/modular/erb/vHEAD.gemfile + - gemfiles/modular/json/truffleruby_22_3.gemfile + - gemfiles/modular/json/truffleruby_23_0.gemfile + - gemfiles/modular/json/truffleruby_23_1.gemfile + - gemfiles/modular/mutex_m/r2.4/v0.1.gemfile + - gemfiles/modular/mutex_m/r2/v0.3.gemfile + - gemfiles/modular/mutex_m/r3/v0.3.gemfile + - gemfiles/modular/mutex_m/r4/v0.3.gemfile + - gemfiles/modular/mutex_m/vHEAD.gemfile + - gemfiles/modular/optional.gemfile + - gemfiles/modular/recording/r2.3/recording.gemfile + - gemfiles/modular/recording/r2.4/recording.gemfile + - gemfiles/modular/recording/r2.5/recording.gemfile + - gemfiles/modular/recording/r3/recording.gemfile + - gemfiles/modular/recording/r4/recording.gemfile + - gemfiles/modular/recording/vHEAD.gemfile + - gemfiles/modular/rspec.gemfile + - gemfiles/modular/runtime_heads.gemfile + - gemfiles/modular/stringio/r2.4/v0.0.2.gemfile + - gemfiles/modular/stringio/r2/v3.0.gemfile + - gemfiles/modular/stringio/r3/v3.0.gemfile + - gemfiles/modular/stringio/r4/v3.0.gemfile + - gemfiles/modular/stringio/vHEAD.gemfile + - gemfiles/modular/style.gemfile + - gemfiles/modular/style_local.gemfile + - gemfiles/modular/templating.gemfile + - gemfiles/modular/templating_local.gemfile + - gemfiles/modular/webrick/r4/v1.9.gemfile + - gemfiles/modular/webrick/vHEAD.gemfile + - gemfiles/modular/x_std_libs.gemfile + - gemfiles/modular/x_std_libs/r2.3/libs.gemfile + - gemfiles/modular/x_std_libs/r2.4/libs.gemfile + - gemfiles/modular/x_std_libs/r2.6/libs.gemfile + - gemfiles/modular/x_std_libs/r2/libs.gemfile + - gemfiles/modular/x_std_libs/r3.1/libs.gemfile + - gemfiles/modular/x_std_libs/r3/libs.gemfile + - gemfiles/modular/x_std_libs/r4/libs.gemfile + - gemfiles/modular/x_std_libs/vHEAD.gemfile - source: lib/gem/version.rb target: lib/parslet/toml/merge/version.rb - source: sig/gem.rbs diff --git a/gems/parslet-toml-merge/Gemfile b/gems/parslet-toml-merge/Gemfile index b9b122118..b5cd0c551 100644 --- a/gems/parslet-toml-merge/Gemfile +++ b/gems/parslet-toml-merge/Gemfile @@ -6,7 +6,7 @@ # kettle-jem will then preserve content between those markers across template runs. # kettle-jem:unfreeze -source 'https://gem.coop' +source "https://gem.coop" git_source(:codeberg) { |repo_name| "https://codeberg.org/#{repo_name}" } git_source(:gitlab) { |repo_name| "https://gitlab.com/#{repo_name}" } @@ -19,17 +19,61 @@ git_source(:gitlab) { |repo_name| "https://gitlab.com/#{repo_name}" } gemspec # Local workspace dependency wiring for *_local.gemfile overrides -nomono_requirements = ['~> 1.0', '>= 1.0.8'] -gem 'nomono', *nomono_requirements, require: false # ruby >= 2.2 +nomono_requirements = ["~> 1.0", ">= 1.0.8"] +gem "nomono", *nomono_requirements, require: false # ruby >= 2.2 # Direct sibling dependencies (env-switched via STRUCTUREDMERGE_DEV) direct_sibling_gems = %w[ toml-merge ] -direct_sibling_dev = ENV.fetch('STRUCTUREDMERGE_DEV', '') +direct_sibling_dev = ENV.fetch("STRUCTUREDMERGE_DEV", "") direct_sibling_local = !direct_sibling_dev.empty? && !%w[false 0 no off].include?(direct_sibling_dev.downcase) -direct_sibling_templating = ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? +direct_sibling_templating = ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? + +if direct_sibling_gems.any? && + (direct_sibling_local || + ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero?) + direct_sibling_dev_was_set = ENV.key?("STRUCTUREDMERGE_DEV") + direct_sibling_dev_original = ENV.fetch("STRUCTUREDMERGE_DEV", nil) + begin + nomono_activation_requirements = nomono_requirements + nomono_lockfile = File.expand_path("Gemfile.lock", __dir__) + if File.file?(nomono_lockfile) + nomono_locked_spec = Bundler::LockfileParser + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == "nomono" } + nomono_locked = nomono_locked_spec && + Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) + if nomono_locked + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] + end + end + Kernel.send(:gem, "nomono", *nomono_activation_requirements) + require "nomono/bundler" + if direct_sibling_templating && !direct_sibling_local + ENV["STRUCTUREDMERGE_DEV"] = File.expand_path("..", __dir__) + end + + eval_nomono_gems( + gems: direct_sibling_gems, + prefix: "STRUCTUREDMERGE", + path_env: "STRUCTUREDMERGE_DEV", + root: ["src", "my", "structuredmerge"] + ) + rescue LoadError + warn "Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies." + ensure + if direct_sibling_templating && !direct_sibling_local + if direct_sibling_dev_was_set + ENV["STRUCTUREDMERGE_DEV"] = direct_sibling_dev_original + else + ENV.delete("STRUCTUREDMERGE_DEV") + end + end + end +end if direct_sibling_gems.any? && (direct_sibling_local || @@ -72,28 +116,28 @@ if direct_sibling_gems.any? && end # Use released TSLP with the Ruby ABI platform-gem fix. -gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' +gem "tree_sitter_language_pack", "~> 1.13", ">= 1.13.3" # Templating (env-switched: STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local paths) -eval_gemfile 'gemfiles/modular/templating.gemfile' if ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? +eval_gemfile "gemfiles/modular/templating.gemfile" if ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? # Debugging -eval_gemfile 'gemfiles/modular/debug.gemfile' +eval_gemfile "gemfiles/modular/debug.gemfile" # Code Coverage (env-switched: KETTLE_DEV_DEV=true for local paths) -eval_gemfile 'gemfiles/modular/coverage.gemfile' +eval_gemfile "gemfiles/modular/coverage.gemfile" # Linting -eval_gemfile 'gemfiles/modular/style.gemfile' +eval_gemfile "gemfiles/modular/style.gemfile" # Documentation -eval_gemfile 'gemfiles/modular/documentation.gemfile' +eval_gemfile "gemfiles/modular/documentation.gemfile" # Optional -eval_gemfile 'gemfiles/modular/optional.gemfile' +eval_gemfile "gemfiles/modular/optional.gemfile" ### Std Lib Extracted Gems -eval_gemfile 'gemfiles/modular/x_std_libs.gemfile' +eval_gemfile "gemfiles/modular/x_std_libs.gemfile" # See unlocked_deps appraisal for more details on irb inclusion -gem 'irb', '~> 1.17' # ruby >= 2.7 +gem "irb", "~> 1.17" # ruby >= 2.7 diff --git a/gems/parslet-toml-merge/Gemfile.lock b/gems/parslet-toml-merge/Gemfile.lock index aa7a45b47..bda5aae9c 100644 --- a/gems/parslet-toml-merge/Gemfile.lock +++ b/gems/parslet-toml-merge/Gemfile.lock @@ -6,6 +6,265 @@ PATH toml-merge (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly + specs: + ast-crispr-markdown-markly (7.1.0) + ast-crispr (= 7.1.0) + markly-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism + specs: + ast-crispr-ruby-prism (7.1.0) + ast-crispr (= 7.1.0) + prism-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr + specs: + ast-crispr (7.1.0) + ast-merge (= 7.1.0) + service_actor (~> 3.9) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git + specs: + ast-merge-git (7.1.0) + ast-merge (= 7.1.0) + json-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge + specs: + ast-merge (7.1.0) + benchmark + token-resolver (~> 2.0, >= 2.0.4) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template + specs: + ast-template (7.1.0) + ast-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge + specs: + bash-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge + specs: + binary-merge (7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge + specs: + citrus-toml-merge (7.1.0) + toml-merge (= 7.1.0) + toml-rb (~> 4.1) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge + specs: + commonmarker-merge (7.1.0) + commonmarker (~> 2.2) + markdown-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge + specs: + dotenv-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge + specs: + go-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge + specs: + json-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem + specs: + kettle-jem (7.1.0) + addressable (>= 2.8, < 3) + ast-crispr-markdown-markly (= 7.1.0) + ast-crispr-ruby-prism (= 7.1.0) + ast-merge (= 7.1.0) + bash-merge (= 7.1.0) + citrus-toml-merge (= 7.1.0) + commonmarker-merge (= 7.1.0) + dotenv-merge (= 7.1.0) + json-merge (= 7.1.0) + kettle-dev (~> 2.3, >= 2.3.5) + kettle-rb (~> 0.1, >= 0.1.4) + kramdown-merge (= 7.1.0) + markdown-merge (= 7.1.0) + markly-merge (= 7.1.0) + prism-merge (= 7.1.0) + psych-merge (= 7.1.0) + rbs (>= 3.10) + rbs-merge (= 7.1.0) + ruby-merge (= 7.1.0) + token-resolver (~> 2.0, >= 2.0.4) + toml-merge (= 7.1.0) + toml-rb (~> 4.2) + tree_haver (= 7.1.0) + yaml-merge (= 7.1.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge + specs: + kramdown-merge (7.1.0) + kramdown (~> 2.5) + markdown-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge + specs: + markdown-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge + specs: + markly-merge (7.1.0) + markdown-merge (= 7.1.0) + markly (~> 0.9) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge + specs: + plain-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge + specs: + prism-merge (7.1.0) + prism (~> 1.6) + ruby-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge + specs: + psych-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + yaml-merge (= 7.1.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge + specs: + rbs-merge (7.1.0) + ast-merge (= 7.1.0) + rbs (>= 3.10) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge + specs: + ruby-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge + specs: + rust-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb + specs: + smorg-rb (7.1.0) + ast-merge (= 7.1.0) + ast-merge-git (= 7.1.0) + go-merge (= 7.1.0) + json-merge (= 7.1.0) + kettle-jem (= 7.1.0) + markly-merge (= 7.1.0) + plain-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge + specs: + toml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver + specs: + tree_haver (7.1.0) + citrus (~> 3.0) + parslet (~> 2.0) + tree_sitter_language_pack (>= 1.13.2, < 2.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge + specs: + typescript-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge + specs: + yaml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge + specs: + zip-merge (7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + GEM remote: https://gem.coop/ specs: @@ -17,11 +276,6 @@ GEM rake (>= 10) thor (>= 0.14) ast (2.4.3) - ast-merge (7.1.0) - benchmark - token-resolver (~> 2.0, >= 2.0.4) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) backports (3.25.3) benchmark (0.5.0) bigdecimal (4.1.2) @@ -30,6 +284,7 @@ GEM thor (~> 1.0) citrus (3.0.2) cmdparse (3.0.7) + commonmarker (2.9.0-x86_64-linux) concurrent-ruby (1.3.7) date (3.5.1) debug (1.11.1) @@ -93,6 +348,8 @@ GEM kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) + kettle-drift (1.0.6) + version_gem (~> 1.1, >= 1.1.14) kettle-rb (0.1.4) kettle-soup-cover (1.1.3) simplecov (~> 0.22) @@ -121,10 +378,11 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) + markly (0.16.0) mutex_m (0.3.0) nokogiri (1.19.4-x86_64-linux-gnu) racc (~> 1.4) - nomono (1.0.8) + nomono (1.0.9) openssl (4.0.2) ostruct (0.6.3) parallel (1.28.0) @@ -247,6 +505,8 @@ GEM ruby-progressbar (1.13.0) ruby_engine (2.0.3) ruby_version (1.0.3) + service_actor (3.9.4) + zeitwerk (>= 1.0) silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) @@ -266,7 +526,7 @@ GEM simplecov-rcov (0.3.7) simplecov (>= 0.4.1) simplecov_json_formatter (0.1.4) - sorbet-runtime (0.6.13342) + sorbet-runtime (0.6.13347) standard (1.56.0) language_server-protocol (~> 3.17.0.2) lint_roller (~> 1.0) @@ -301,15 +561,9 @@ GEM version_gem (~> 1.1, >= 1.1.14) toml (0.3.0) parslet (>= 1.8.0, < 3.0.0) - toml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - tree_haver (7.1.0) - citrus (~> 3.0) - parslet (~> 2.0) - tree_sitter_language_pack (>= 1.13.2, < 2.0) - version_gem (~> 1.1, >= 1.1.9) + toml-rb (4.2.0) + citrus (~> 3.0, > 3.0) + racc (~> 1.7) tree_sitter_language_pack (1.13.3-x86_64-linux) sorbet-runtime (~> 0.5) tsort (0.2.0) @@ -353,23 +607,45 @@ PLATFORMS DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) + ast-crispr! + ast-crispr-markdown-markly! + ast-crispr-ruby-prism! + ast-merge! + ast-merge-git! + ast-template! + bash-merge! benchmark (~> 0.5, >= 0.5.0) + binary-merge! bundler-audit (~> 0.9.3) + citrus-toml-merge! + commonmarker-merge! debug (>= 1.1) + dotenv-merge! erb (~> 6.0, >= 6.0.4) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.0) + go-merge! irb (~> 1.17) + json-merge! kettle-dev (~> 2.0, >= 2.2.25) + kettle-drift (~> 1.0, >= 1.0.5) + kettle-jem! kettle-soup-cover (~> 1.0, >= 1.1.3) kettle-test (~> 2.0, >= 2.0.9) kramdown (~> 2.5, >= 2.5.1) + kramdown-merge! kramdown-parser-gfm (~> 1.1) + markdown-merge! + markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) parslet-toml-merge! + plain-merge! + prism-merge! + psych-merge! rake (~> 13.0) rbs (>= 3.0) + rbs-merge! rdoc (~> 6.11) reek (~> 6.5) require_bench (~> 1.0, >= 1.0.4) @@ -378,31 +654,49 @@ DEPENDENCIES rubocop-packaging (~> 0.6, >= 0.6.0) rubocop-rspec (~> 3.6) rubocop-ruby3_2 (~> 3.0.0) + ruby-merge! ruby-progressbar (~> 1.13) + rust-merge! + smorg-rb! standard (>= 1.50) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) + toml-merge! + tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) + typescript-merge! yaml-converter (~> 0.1) + yaml-merge! yard (~> 0.9, >= 0.9.44) yard-fence (~> 0.9, >= 0.9.1) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) yard-timekeeper (~> 0.1) yard-yaml (~> 0.1, >= 0.1.2) + zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af ansi (1.6.0) sha256=ac9ea0c0ea8d32fb4e271348e609963ac78882f34b73836c2a02b3622e666658 appraisal2 (3.2.0) sha256=ccd0b767ac4060cd7af6d16747459b6990f49c39c7b4fb1f7d1146b1e97c492f ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 + ast-crispr (7.1.0) + ast-crispr-markdown-markly (7.1.0) + ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) + ast-merge-git (7.1.0) + ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 + bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd + binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 + citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 + commonmarker (2.9.0-x86_64-linux) + commonmarker-merge (7.1.0) concurrent-ruby (1.3.7) sha256=4412caec3a5ea2e5fdc52076724c071a81f2c0593d83b2ac8cbb8ca63b3151b0 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 @@ -410,6 +704,7 @@ CHECKSUMS diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 docile (1.4.1) sha256=96159be799bfa73cdb721b840e9802126e4e03dfc26863db73647204c727f21e + dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -422,22 +717,30 @@ CHECKSUMS gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f + go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 + json-merge (7.1.0) kettle-dev (2.3.7) sha256=eb370113cd030d03cbe2d33b31c99858951017e5ad21a17e9ed89dc3770028ee + kettle-drift (1.0.6) + kettle-jem (7.1.0) kettle-rb (0.1.4) sha256=9cef7ce4f7021666b7222292f29051e51eaf042e8a5db11f3f4dd72f74243fc1 kettle-soup-cover (1.1.3) sha256=a373827da22a7131d093afd32945e5b7d7a10a01ebfdded8fd2cb8230d69c8ad kettle-test (2.0.11) sha256=c710c90f7ab79d51f9452f0c09f5f90657e7a893f63583855c164d0b1b107ab2 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa + kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 + markdown-merge (7.1.0) + markly (0.16.0) + markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-x86_64-linux-gnu) sha256=379fae440b28915e3f19d752ce2dcf8465ed2b2fbefd2a7ca0dd497bc981a06a - nomono (1.0.8) sha256=bf4b9b426cbf216ab17b70db474f691b8ae1f1e29de8db4b0ecd405e6e7e1c80 + nomono (1.0.9) openssl (4.0.2) sha256=1037ad2868ae58df9ad917891c0c0f9815a1172f6846d4bcdd508e4c2ee747c2 ostruct (0.6.3) sha256=95a2ed4a4bd1d190784e666b47b2d3f078e4a9efda2fccf18f84ddc6538ed912 parallel (1.28.0) sha256=33e6de1484baf2524792d178b0913fc8eb94c628d6cfe45599ad4458c638c970 @@ -445,15 +748,19 @@ CHECKSUMS parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 parslet-toml-merge (7.1.0) + plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 + prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 + psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 + rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb @@ -481,9 +788,12 @@ CHECKSUMS rubocop-rspec (3.10.2) sha256=0b3e2ecc592cd10ecbf0095bb58d1e357905276e069643523cc19eb7495f65e2 rubocop-ruby3_2 (3.0.7) sha256=f53dd6d286fb05186214fc6ec116783e7f837030918e8931c05de773e98f8466 rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 + ruby-merge (7.1.0) ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 + rust-merge (7.1.0) + service_actor (3.9.4) silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (0.22.0) sha256=fe2622c7834ff23b98066bb0a854284b2729a569ac659f82621fc22ef36213a5 simplecov-cobertura (3.2.0) sha256=70d702658677fcb20e5aceb6915ccf8bc62ff2ccd38b62b3ad5c9db5c0888740 @@ -492,7 +802,8 @@ CHECKSUMS simplecov-lcov (0.9.0) sha256=7a77a31e200a595ed4b0249493056efd0c920601f53d2ef135ca34ee796346cd simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_json_formatter (0.1.4) sha256=529418fbe8de1713ac2b2d612aa3daa56d316975d307244399fa4838c601b428 - sorbet-runtime (0.6.13342) sha256=dbeb9892597f593ed2b29e38018912787f6c4e0c4b736d8af0d6bd3c63bde3c3 + smorg-rb (7.1.0) + sorbet-runtime (0.6.13347) sha256=54e7221d9f4b63f58aec79f3043752a9ba7810347c6ae0d903531591cc2d5f01 standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b standard-performance (1.9.0) sha256=49483d31be448292951d80e5e67cdcb576c2502103c7b40aec6f1b6e9c88e3f2 @@ -507,22 +818,26 @@ CHECKSUMS token-resolver (2.0.4) sha256=33b926958f504525bba3ed511ab66fbcbf8ef30390815e931436b30f27ffcad0 toml (0.3.0) sha256=0a91d0f76a9036e84e44f95693b12f58d358c1df3ac8e3b5271f2056ecc6e4b9 toml-merge (7.1.0) + toml-rb (4.2.0) tree_haver (7.1.0) - tree_sitter_language_pack (1.13.3-x86_64-linux) - tsort (0.2.0) - turbo_tests2 (3.2.0) - unicode-display_width (3.2.0) - unicode-emoji (4.2.0) - version_gem (1.1.14) - yaml-converter (0.2.3) - yard (0.9.45) - yard-fence (0.9.6) - yard-junk (0.1.0) - yard-relative_markdown_links (0.6.0) - yard-timekeeper (0.2.4) - yard-yaml (0.2.3) - zeitwerk (2.8.2) - zlib (3.2.3) + tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 + tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f + turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 + typescript-merge (7.1.0) + unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 + unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f + version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 + yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 + yaml-merge (7.1.0) + yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 + yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 + yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd + yard-relative_markdown_links (0.6.0) sha256=3e5ffa85cbad9bac70bee5421774b190fb25d3bdf489323a5b3534f647d1a70e + yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a + yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 + zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 + zip-merge (7.1.0) + zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH 4.0.16 diff --git a/gems/parslet-toml-merge/Rakefile b/gems/parslet-toml-merge/Rakefile index 79680a6ab..0285d07bd 100644 --- a/gems/parslet-toml-merge/Rakefile +++ b/gems/parslet-toml-merge/Rakefile @@ -130,23 +130,23 @@ end ### DUPLICATE DRIFT TASKS begin - require 'kettle/drift' + require "kettle/drift" Kettle::Drift.install_tasks rescue LoadError - desc('(stub) kettle:drift:check is unavailable') - task('kettle:drift:check') do + desc("(stub) kettle:drift:check is unavailable") + task("kettle:drift:check") do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc('(stub) kettle:drift:update is unavailable') - task('kettle:drift:update') do + desc("(stub) kettle:drift:update is unavailable") + task("kettle:drift:update") do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc('(stub) kettle:drift:force_update is unavailable') - task('kettle:drift:force_update') do + desc("(stub) kettle:drift:force_update is unavailable") + task("kettle:drift:force_update") do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc('(stub) kettle:drift is unavailable') - task('kettle:drift' => 'kettle:drift:update') + desc("(stub) kettle:drift is unavailable") + task("kettle:drift" => "kettle:drift:update") end ### TEMPLATING TASKS diff --git a/gems/parslet-toml-merge/lib/parslet/toml/merge/version.rb b/gems/parslet-toml-merge/lib/parslet/toml/merge/version.rb index 12a67dfd9..f3e9c49e5 100644 --- a/gems/parslet-toml-merge/lib/parslet/toml/merge/version.rb +++ b/gems/parslet-toml-merge/lib/parslet/toml/merge/version.rb @@ -4,7 +4,7 @@ module Parslet module Toml module Merge module Version - VERSION = '7.1.0' + VERSION = "7.1.0" end VERSION = Version::VERSION # Traditional Constant Location end diff --git a/gems/psych-merge/.rubocop_gradual.lock b/gems/psych-merge/.rubocop_gradual.lock index 85e814fd4..f498f05df 100644 --- a/gems/psych-merge/.rubocop_gradual.lock +++ b/gems/psych-merge/.rubocop_gradual.lock @@ -15,13 +15,20 @@ [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] ], + "gemfiles/modular/cgi/r4/v0.5.gemfile:367169322": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/cgi/vHEAD.gemfile:2729540777": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], "gemfiles/modular/erb/r2/v3.0.gemfile:1688285565": [ [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] ], - "gemfiles/modular/erb/r3/v5.0.gemfile:2150258305": [ + "gemfiles/modular/erb/r3/v5.0.gemfile:2394062339": [ [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] ], - "gemfiles/modular/erb/r4/v5.0.gemfile:2150258305": [ + "gemfiles/modular/erb/r4/v5.0.gemfile:2394062339": [ [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] ], "gemfiles/modular/erb/vHEAD.gemfile:981929959": [ @@ -57,6 +64,13 @@ [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] ], + "gemfiles/modular/webrick/r4/v1.9.gemfile:3092661193": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/webrick/vHEAD.gemfile:3867684682": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], "gemfiles/modular/x_std_libs.gemfile:2324400122": [ [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] ], @@ -66,201 +80,201 @@ "gemfiles/modular/x_std_libs/r3/libs.gemfile:4030570297": [ [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] ], - "gemfiles/modular/x_std_libs/r4/libs.gemfile:909736663": [ + "gemfiles/modular/x_std_libs/r4/libs.gemfile:732451732": [ [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] ], - "gemfiles/modular/x_std_libs/vHEAD.gemfile:907917303": [ + "gemfiles/modular/x_std_libs/vHEAD.gemfile:2390363993": [ [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] ], "lib/psych-merge.rb:1330894360": [ [1, 1, 0, "Naming/FileName: The name of this source file (`psych-merge.rb`) should use snake_case.", 5381] ], - "lib/psych/merge.rb:173660101": [ - [38, 3, 9398, "Metrics/ModuleLength: Module has too many lines. [188/100]", 2155600486], - [115, 5, 6353, "Metrics/ClassLength: Class has too many lines. [160/100]", 2805786752], + "lib/psych/merge.rb:3249224633": [ + [38, 3, 9441, "Metrics/ModuleLength: Module has too many lines. [190/100]", 2155600486], + [115, 5, 6396, "Metrics/ClassLength: Class has too many lines. [162/100]", 2805786752], [171, 7, 1593, "Metrics/MethodLength: Method has too many lines. [26/10]", 162695378], [171, 21, 295, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [9/5]", 2742902791], [212, 7, 440, "Metrics/MethodLength: Method has too many lines. [11/10]", 4238054657], - [252, 7, 417, "Metrics/MethodLength: Method has too many lines. [11/10]", 3661776213], - [275, 7, 458, "Metrics/MethodLength: Method has too many lines. [15/10]", 1125262299] + [254, 7, 417, "Metrics/MethodLength: Method has too many lines. [11/10]", 3661776213], + [277, 7, 458, "Metrics/MethodLength: Method has too many lines. [15/10]", 1125262299] ], "lib/psych/merge/comment_tracker.rb:109829813": [ [33, 7, 711, "Metrics/MethodLength: Method has too many lines. [24/10]", 4175176008], [65, 48, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765] ], - "lib/psych/merge/conflict_resolver.rb:1439336560": [ - [24, 5, 98551, "Metrics/ClassLength: Class has too many lines. [1730/100]", 3470480790], - [48, 7, 1257, "Metrics/MethodLength: Method has too many lines. [18/10]", 2709727248], - [48, 21, 354, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [13/5]", 1127138839], - [49, 121, 141, "Layout/LineLength: Line is too long. [261/120]", 84971754], - [63, 121, 22, "Layout/LineLength: Line is too long. [142/120]", 1411495206], - [75, 7, 1316, "Metrics/MethodLength: Method has too many lines. [22/10]", 841707991], - [121, 7, 1128, "Metrics/AbcSize: Assignment Branch Condition size for `build_refined_matches` is too high. [<11, 16, 8> 21/17]", 4214539560], - [121, 7, 1128, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `build_refined_matches` is too high. [9/7]", 4214539560], - [121, 7, 1128, "Metrics/MethodLength: Method has too many lines. [18/10]", 4214539560], - [121, 7, 1128, "Metrics/PerceivedComplexity: Perceived complexity for `build_refined_matches` is too high. [9/8]", 4214539560], - [149, 7, 11524, "Metrics/AbcSize: Assignment Branch Condition size for `merge_nodes_to_emitter` is too high. [<57, 120, 50> 142/17]", 2474480422], - [149, 7, 11524, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `merge_nodes_to_emitter` is too high. [43/7]", 2474480422], - [149, 7, 11524, "Metrics/MethodLength: Method has too many lines. [194/10]", 2474480422], - [149, 7, 11524, "Metrics/PerceivedComplexity: Perceived complexity for `merge_nodes_to_emitter` is too high. [49/8]", 2474480422], - [149, 33, 186, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [7/5]", 421356977], - [150, 121, 10, "Layout/LineLength: Line is too long. [130/120]", 97621789], - [193, 24, 42, "Lint/HashCompareByIdentity: Use `Hash#compare_by_identity` instead of using `object_id` for keys.", 2944491302], - [204, 9, 7819, "Metrics/BlockLength: Block has too many lines. [136/25]", 519912312], - [205, 28, 36, "Lint/HashCompareByIdentity: Use `Hash#compare_by_identity` instead of using `object_id` for keys.", 345161915], - [263, 39, 44, "Lint/HashCompareByIdentity: Use `Hash#compare_by_identity` instead of using `object_id` for keys.", 3425527675], - [270, 39, 44, "Lint/HashCompareByIdentity: Use `Hash#compare_by_identity` instead of using `object_id` for keys.", 3425527675], - [286, 121, 11, "Layout/LineLength: Line is too long. [131/120]", 2818803335], - [330, 37, 44, "Lint/HashCompareByIdentity: Use `Hash#compare_by_identity` instead of using `object_id` for keys.", 3425527675], - [337, 37, 44, "Lint/HashCompareByIdentity: Use `Hash#compare_by_identity` instead of using `object_id` for keys.", 3425527675], - [376, 26, 42, "Lint/HashCompareByIdentity: Use `Hash#compare_by_identity` instead of using `object_id` for keys.", 2944491302], - [391, 24, 42, "Lint/HashCompareByIdentity: Use `Hash#compare_by_identity` instead of using `object_id` for keys.", 2944491302], - [436, 7, 1049, "Metrics/MethodLength: Method has too many lines. [14/10]", 2563450827], - [455, 7, 1990, "Metrics/AbcSize: Assignment Branch Condition size for `emit_supplemental_document_postlude` is too high. [<8, 20, 6> 22.36/17]", 1604415261], - [455, 7, 1990, "Metrics/MethodLength: Method has too many lines. [24/10]", 1604415261], - [501, 7, 982, "Metrics/AbcSize: Assignment Branch Condition size for `emit_nonpreferred_document_postlude_regions` is too high. [<5, 20, 10> 22.91/17]", 7588338], - [501, 7, 982, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `emit_nonpreferred_document_postlude_regions` is too high. [10/7]", 7588338], - [501, 7, 982, "Metrics/MethodLength: Method has too many lines. [17/10]", 7588338], - [501, 7, 982, "Metrics/PerceivedComplexity: Perceived complexity for `emit_nonpreferred_document_postlude_regions` is too high. [11/8]", 7588338], - [523, 7, 429, "Metrics/MethodLength: Method has too many lines. [11/10]", 2317545285], - [551, 7, 1153, "Metrics/MethodLength: Method has too many lines. [27/10]", 2050460902], - [581, 7, 1164, "Metrics/MethodLength: Method has too many lines. [16/10]", 293708573], - [602, 7, 1132, "Metrics/MethodLength: Method has too many lines. [15/10]", 2657257420], - [610, 121, 3, "Layout/LineLength: Line is too long. [123/120]", 193417991], - [624, 68, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], - [627, 19, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], - [630, 7, 718, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `preference_for_pair` is too high. [8/7]", 3339910669], - [630, 7, 718, "Metrics/MethodLength: Method has too many lines. [12/10]", 3339910669], - [656, 7, 1442, "Metrics/MethodLength: Method has too many lines. [34/10]", 3775627321], - [723, 7, 1439, "Metrics/AbcSize: Assignment Branch Condition size for `can_merge_recursively?` is too high. [<0, 18, 13> 22.2/17]", 3986446452], - [723, 7, 1439, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `can_merge_recursively?` is too high. [13/7]", 3986446452], - [723, 7, 1439, "Metrics/MethodLength: Method has too many lines. [11/10]", 3986446452], - [723, 7, 1439, "Metrics/PerceivedComplexity: Perceived complexity for `can_merge_recursively?` is too high. [14/8]", 3986446452], - [754, 7, 368, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `flow_sequence?` is too high. [9/7]", 13791150], - [754, 7, 368, "Metrics/PerceivedComplexity: Perceived complexity for `flow_sequence?` is too high. [9/8]", 13791150], - [765, 7, 452, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `flow_mapping?` is too high. [11/7]", 4104291177], - [765, 7, 452, "Metrics/PerceivedComplexity: Perceived complexity for `flow_mapping?` is too high. [11/8]", 4104291177], - [802, 7, 705, "Metrics/AbcSize: Assignment Branch Condition size for `bare_dash_sequence_item_mapping?` is too high. [<5, 18, 8> 20.32/17]", 625586302], - [802, 7, 705, "Metrics/MethodLength: Method has too many lines. [11/10]", 625586302], - [829, 7, 2511, "Metrics/AbcSize: Assignment Branch Condition size for `emit_recursive_merge` is too high. [<0, 19, 10> 21.47/17]", 3873511358], - [829, 7, 2511, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `emit_recursive_merge` is too high. [9/7]", 3873511358], - [829, 7, 2511, "Metrics/MethodLength: Method has too many lines. [49/10]", 3873511358], - [829, 7, 2511, "Metrics/PerceivedComplexity: Perceived complexity for `emit_recursive_merge` is too high. [11/8]", 3873511358], - [830, 9, 2388, "Metrics/BlockLength: Block has too many lines. [47/25]", 1655278799], - [906, 7, 2400, "Metrics/AbcSize: Assignment Branch Condition size for `emit_recursive_mapping_merge` is too high. [<15, 29, 14> 35.52/17]", 1648233163], - [906, 7, 2400, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `emit_recursive_mapping_merge` is too high. [15/7]", 1648233163], - [906, 7, 2400, "Metrics/MethodLength: Method has too many lines. [44/10]", 1648233163], - [906, 7, 2400, "Metrics/PerceivedComplexity: Perceived complexity for `emit_recursive_mapping_merge` is too high. [17/8]", 1648233163], - [974, 7, 6966, "Metrics/AbcSize: Assignment Branch Condition size for `emit_recursive_sequence_merge` is too high. [<35, 84, 35> 97.5/17]", 2427419647], - [974, 7, 6966, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `emit_recursive_sequence_merge` is too high. [30/7]", 2427419647], - [974, 7, 6966, "Metrics/MethodLength: Method has too many lines. [113/10]", 2427419647], - [974, 7, 6966, "Metrics/PerceivedComplexity: Perceived complexity for `emit_recursive_sequence_merge` is too high. [37/8]", 2427419647], - [1020, 74, 42, "Lint/HashCompareByIdentity: Use `Hash#compare_by_identity` instead of using `object_id` for keys.", 2678193523], - [1023, 9, 3871, "Metrics/BlockLength: Block has too many lines. [72/25]", 4174342864], - [1036, 28, 31, "Lint/HashCompareByIdentity: Use `Hash#compare_by_identity` instead of using `object_id` for keys.", 1010804247], - [1048, 37, 44, "Lint/HashCompareByIdentity: Use `Hash#compare_by_identity` instead of using `object_id` for keys.", 2630532814], - [1064, 28, 44, "Lint/HashCompareByIdentity: Use `Hash#compare_by_identity` instead of using `object_id` for keys.", 2630532814], - [1077, 121, 10, "Layout/LineLength: Line is too long. [130/120]", 2582359665], - [1102, 76, 42, "Lint/HashCompareByIdentity: Use `Hash#compare_by_identity` instead of using `object_id` for keys.", 2678193523], - [1111, 74, 42, "Lint/HashCompareByIdentity: Use `Hash#compare_by_identity` instead of using `object_id` for keys.", 2678193523], - [1115, 7, 1262, "Metrics/AbcSize: Assignment Branch Condition size for `build_sequence_item_matches` is too high. [<11, 13, 2> 17.15/17]", 3127840652], - [1115, 7, 1262, "Metrics/MethodLength: Method has too many lines. [21/10]", 3127840652], - [1146, 7, 3065, "Metrics/AbcSize: Assignment Branch Condition size for `build_refined_sequence_observation_matches` is too high. [<19, 51, 17> 57.02/17]", 2950540403], - [1146, 7, 3065, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `build_refined_sequence_observation_matches` is too high. [18/7]", 2950540403], - [1146, 7, 3065, "Metrics/MethodLength: Method has too many lines. [55/10]", 2950540403], - [1146, 7, 3065, "Metrics/PerceivedComplexity: Perceived complexity for `build_refined_sequence_observation_matches` is too high. [18/8]", 2950540403], - [1209, 9, 24, "Style/MultilineBlockChain: Avoid multi-line chains of blocks.", 32301403], - [1261, 7, 901, "Metrics/MethodLength: Method has too many lines. [14/10]", 3298193773], - [1261, 29, 147, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 3718416672], - [1285, 7, 1642, "Metrics/AbcSize: Assignment Branch Condition size for `emit_node` is too high. [<4, 22, 10> 24.49/17]", 518692521], - [1285, 7, 1642, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `emit_node` is too high. [11/7]", 518692521], - [1285, 7, 1642, "Metrics/MethodLength: Method has too many lines. [32/10]", 518692521], - [1285, 7, 1642, "Metrics/PerceivedComplexity: Perceived complexity for `emit_node` is too high. [11/8]", 518692521], - [1285, 20, 138, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 109777589], - [1331, 7, 1577, "Metrics/AbcSize: Assignment Branch Condition size for `emit_mapping_entry` is too high. [<6, 17, 15> 23.45/17]", 3927797439], - [1331, 7, 1577, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `emit_mapping_entry` is too high. [13/7]", 3927797439], - [1331, 7, 1577, "Metrics/MethodLength: Method has too many lines. [28/10]", 3927797439], - [1331, 7, 1577, "Metrics/PerceivedComplexity: Perceived complexity for `emit_mapping_entry` is too high. [13/8]", 3927797439], - [1331, 29, 148, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 2283756321], - [1375, 7, 1975, "Metrics/AbcSize: Assignment Branch Condition size for `emit_mapping_entry_prelude` is too high. [<9, 26, 16> 31.83/17]", 3449491730], - [1375, 7, 1975, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `emit_mapping_entry_prelude` is too high. [16/7]", 3449491730], - [1375, 7, 1975, "Metrics/MethodLength: Method has too many lines. [35/10]", 3449491730], - [1375, 7, 1975, "Metrics/PerceivedComplexity: Perceived complexity for `emit_mapping_entry_prelude` is too high. [16/8]", 3449491730], - [1419, 7, 1550, "Metrics/AbcSize: Assignment Branch Condition size for `emit_node_prelude` is too high. [<6, 17, 9> 20.15/17]", 4132652846], - [1419, 7, 1550, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `emit_node_prelude` is too high. [10/7]", 4132652846], - [1419, 7, 1550, "Metrics/MethodLength: Method has too many lines. [26/10]", 4132652846], - [1419, 7, 1550, "Metrics/PerceivedComplexity: Perceived complexity for `emit_node_prelude` is too high. [10/8]", 4132652846], - [1463, 7, 1256, "Metrics/AbcSize: Assignment Branch Condition size for `emit_node_first_line` is too high. [<3, 16, 5> 17.03/17]", 809936874], - [1463, 7, 1256, "Metrics/MethodLength: Method has too many lines. [24/10]", 809936874], - [1492, 7, 838, "Metrics/AbcSize: Assignment Branch Condition size for `emit_removed_destination_node_comments` is too high. [<3, 16, 7> 17.72/17]", 1801654574], - [1492, 7, 838, "Metrics/MethodLength: Method has too many lines. [13/10]", 1801654574], - [1531, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2088091358], - [1551, 7, 587, "Metrics/MethodLength: Method has too many lines. [14/10]", 1778584112], - [1594, 7, 1089, "Metrics/AbcSize: Assignment Branch Condition size for `canonical_sequence_item_value` is too high. [<7, 20, 8> 22.65/17]", 2923924756], - [1594, 7, 1089, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `canonical_sequence_item_value` is too high. [9/7]", 2923924756], - [1594, 7, 1089, "Metrics/MethodLength: Method has too many lines. [15/10]", 2923924756], - [1594, 7, 1089, "Metrics/PerceivedComplexity: Perceived complexity for `canonical_sequence_item_value` is too high. [9/8]", 2923924756], - [1621, 7, 918, "Metrics/AbcSize: Assignment Branch Condition size for `sequence_item_observations` is too high. [<7, 26, 9> 28.39/17]", 1736204122], - [1621, 7, 918, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `sequence_item_observations` is too high. [10/7]", 1736204122], - [1621, 7, 918, "Metrics/MethodLength: Method has too many lines. [15/10]", 1736204122], - [1621, 7, 918, "Metrics/PerceivedComplexity: Perceived complexity for `sequence_item_observations` is too high. [10/8]", 1736204122], - [1626, 121, 36, "Layout/LineLength: Line is too long. [156/120]", 3762412176], - [1635, 121, 30, "Layout/LineLength: Line is too long. [150/120]", 4096127909], - [1656, 7, 901, "Metrics/AbcSize: Assignment Branch Condition size for `trimmed_sequence_item_lines` is too high. [<11, 26, 10> 29.95/17]", 4091201884], - [1656, 7, 901, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `trimmed_sequence_item_lines` is too high. [10/7]", 4091201884], - [1656, 7, 901, "Metrics/MethodLength: Method has too many lines. [15/10]", 4091201884], - [1656, 7, 901, "Metrics/PerceivedComplexity: Perceived complexity for `trimmed_sequence_item_lines` is too high. [10/8]", 4091201884], - [1678, 7, 713, "Metrics/AbcSize: Assignment Branch Condition size for `sequence_item_start_line` is too high. [<5, 22, 8> 23.94/17]", 2061460995], - [1712, 11, 61, "Lint/HashCompareByIdentity: Use `Hash#compare_by_identity` instead of using `object_id` for keys.", 1718502596], - [1718, 7, 629, "Metrics/AbcSize: Assignment Branch Condition size for `effective_end_line` is too high. [<4, 14, 10> 17.66/17]", 2226115349], - [1718, 7, 629, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `effective_end_line` is too high. [10/7]", 2226115349], - [1718, 7, 629, "Metrics/PerceivedComplexity: Perceived complexity for `effective_end_line` is too high. [10/8]", 2226115349], - [1722, 41, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], - [1764, 7, 1381, "Metrics/AbcSize: Assignment Branch Condition size for `region_already_emitted?` is too high. [<11, 32, 14> 36.62/17]", 2166775868], - [1764, 7, 1381, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `region_already_emitted?` is too high. [13/7]", 2166775868], - [1764, 7, 1381, "Metrics/MethodLength: Method has too many lines. [26/10]", 2166775868], - [1764, 7, 1381, "Metrics/PerceivedComplexity: Perceived complexity for `region_already_emitted?` is too high. [14/8]", 2166775868], - [1804, 7, 2218, "Metrics/AbcSize: Assignment Branch Condition size for `emit_document_postlude` is too high. [<17, 30, 14> 37.22/17]", 1397438331], - [1804, 7, 2218, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `emit_document_postlude` is too high. [15/7]", 1397438331], - [1804, 7, 2218, "Metrics/MethodLength: Method has too many lines. [27/10]", 1397438331], - [1804, 7, 2218, "Metrics/PerceivedComplexity: Perceived complexity for `emit_document_postlude` is too high. [15/8]", 1397438331], - [1848, 7, 1304, "Metrics/AbcSize: Assignment Branch Condition size for `emit_document_prelude` is too high. [<8, 28, 11> 31.13/17]", 325827008], - [1848, 7, 1304, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `emit_document_prelude` is too high. [12/7]", 325827008], - [1848, 7, 1304, "Metrics/MethodLength: Method has too many lines. [24/10]", 325827008], - [1848, 7, 1304, "Metrics/PerceivedComplexity: Perceived complexity for `emit_document_prelude` is too high. [13/8]", 325827008], - [1896, 9, 48, "Lint/HashCompareByIdentity: Use `Hash#compare_by_identity` instead of using `object_id` for keys.", 2339197345], - [1899, 7, 691, "Metrics/AbcSize: Assignment Branch Condition size for `document_leading_regions_for` is too high. [<5, 19, 14> 24.12/17]", 796439642], - [1899, 7, 691, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `document_leading_regions_for` is too high. [14/7]", 796439642], - [1899, 7, 691, "Metrics/MethodLength: Method has too many lines. [12/10]", 796439642], - [1899, 7, 691, "Metrics/PerceivedComplexity: Perceived complexity for `document_leading_regions_for` is too high. [14/8]", 796439642], - [1928, 7, 646, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `canonical_leading_comment_region` is too high. [10/7]", 1342472091], - [1928, 7, 646, "Metrics/PerceivedComplexity: Perceived complexity for `canonical_leading_comment_region` is too high. [10/8]", 1342472091], - [1942, 7, 1410, "Metrics/AbcSize: Assignment Branch Condition size for `collapse_template_preamble_prefix_region` is too high. [<7, 25, 15> 29.98/17]", 449550851], - [1942, 7, 1410, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `collapse_template_preamble_prefix_region` is too high. [11/7]", 449550851], - [1942, 7, 1410, "Metrics/MethodLength: Method has too many lines. [27/10]", 449550851], - [1942, 7, 1410, "Metrics/PerceivedComplexity: Perceived complexity for `collapse_template_preamble_prefix_region` is too high. [11/8]", 449550851], - [1975, 7, 991, "Metrics/AbcSize: Assignment Branch Condition size for `duplicated_template_preamble_prefix_in_first_node_leading_region?` is too high. [<7, 25, 14> 29.5/17]", 4012549279], - [1975, 7, 991, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `duplicated_template_preamble_prefix_in_first_node_leading_region?` is too high. [12/7]", 4012549279], - [1975, 7, 991, "Metrics/MethodLength: Method has too many lines. [13/10]", 4012549279], - [1975, 7, 991, "Metrics/PerceivedComplexity: Perceived complexity for `duplicated_template_preamble_prefix_in_first_node_leading_region?` is too high. [12/8]", 4012549279], - [2030, 7, 956, "Metrics/AbcSize: Assignment Branch Condition size for `document_trailing_regions_for` is too high. [<6, 16, 12> 20.88/17]", 3560026445], - [2030, 7, 956, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `document_trailing_regions_for` is too high. [12/7]", 3560026445], - [2030, 7, 956, "Metrics/PerceivedComplexity: Perceived complexity for `document_trailing_regions_for` is too high. [12/8]", 3560026445], - [2053, 7, 456, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `deflated_content_end_line` is too high. [8/7]", 3297059340], - [2089, 7, 614, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `leading_gap_line_count_for` is too high. [9/7]", 1127644346], - [2089, 7, 614, "Metrics/PerceivedComplexity: Perceived complexity for `leading_gap_line_count_for` is too high. [10/8]", 1127644346], - [2093, 121, 33, "Layout/LineLength: Line is too long. [153/120]", 2290159738], - [2139, 27, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], - [2168, 31, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], - [2175, 55, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], - [2183, 54, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], - [2191, 56, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], - [2196, 7, 822, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `preferred_leading_comment_region` is too high. [10/7]", 1272157667], - [2196, 7, 822, "Metrics/PerceivedComplexity: Perceived complexity for `preferred_leading_comment_region` is too high. [10/8]", 1272157667], - [2308, 7, 465, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `emit_interstitial_blank_lines` is too high. [9/7]", 1640065866], - [2308, 7, 465, "Metrics/PerceivedComplexity: Perceived complexity for `emit_interstitial_blank_lines` is too high. [9/8]", 1640065866], - [2320, 7, 586, "Metrics/MethodLength: Method has too many lines. [12/10]", 3310131662] + "lib/psych/merge/conflict_resolver.rb:873702721": [ + [24, 5, 98302, "Metrics/ClassLength: Class has too many lines. [1720/100]", 2348154605], + [49, 7, 1257, "Metrics/MethodLength: Method has too many lines. [18/10]", 2709727248], + [49, 21, 354, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [13/5]", 1127138839], + [50, 121, 141, "Layout/LineLength: Line is too long. [261/120]", 84971754], + [64, 121, 22, "Layout/LineLength: Line is too long. [142/120]", 1411495206], + [76, 7, 1316, "Metrics/MethodLength: Method has too many lines. [22/10]", 841707991], + [122, 7, 1128, "Metrics/AbcSize: Assignment Branch Condition size for `build_refined_matches` is too high. [<11, 16, 8> 21/17]", 4214539560], + [122, 7, 1128, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `build_refined_matches` is too high. [9/7]", 4214539560], + [122, 7, 1128, "Metrics/MethodLength: Method has too many lines. [18/10]", 4214539560], + [122, 7, 1128, "Metrics/PerceivedComplexity: Perceived complexity for `build_refined_matches` is too high. [9/8]", 4214539560], + [150, 7, 11524, "Metrics/AbcSize: Assignment Branch Condition size for `merge_nodes_to_emitter` is too high. [<57, 120, 50> 142/17]", 2474480422], + [150, 7, 11524, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `merge_nodes_to_emitter` is too high. [43/7]", 2474480422], + [150, 7, 11524, "Metrics/MethodLength: Method has too many lines. [194/10]", 2474480422], + [150, 7, 11524, "Metrics/PerceivedComplexity: Perceived complexity for `merge_nodes_to_emitter` is too high. [49/8]", 2474480422], + [150, 33, 186, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [7/5]", 421356977], + [151, 121, 10, "Layout/LineLength: Line is too long. [130/120]", 97621789], + [194, 24, 42, "Lint/HashCompareByIdentity: Use `Hash#compare_by_identity` instead of using `object_id` for keys.", 2944491302], + [205, 9, 7819, "Metrics/BlockLength: Block has too many lines. [136/25]", 519912312], + [206, 28, 36, "Lint/HashCompareByIdentity: Use `Hash#compare_by_identity` instead of using `object_id` for keys.", 345161915], + [264, 39, 44, "Lint/HashCompareByIdentity: Use `Hash#compare_by_identity` instead of using `object_id` for keys.", 3425527675], + [271, 39, 44, "Lint/HashCompareByIdentity: Use `Hash#compare_by_identity` instead of using `object_id` for keys.", 3425527675], + [287, 121, 11, "Layout/LineLength: Line is too long. [131/120]", 2818803335], + [331, 37, 44, "Lint/HashCompareByIdentity: Use `Hash#compare_by_identity` instead of using `object_id` for keys.", 3425527675], + [338, 37, 44, "Lint/HashCompareByIdentity: Use `Hash#compare_by_identity` instead of using `object_id` for keys.", 3425527675], + [377, 26, 42, "Lint/HashCompareByIdentity: Use `Hash#compare_by_identity` instead of using `object_id` for keys.", 2944491302], + [392, 24, 42, "Lint/HashCompareByIdentity: Use `Hash#compare_by_identity` instead of using `object_id` for keys.", 2944491302], + [437, 7, 1049, "Metrics/MethodLength: Method has too many lines. [14/10]", 2563450827], + [456, 7, 1990, "Metrics/AbcSize: Assignment Branch Condition size for `emit_supplemental_document_postlude` is too high. [<8, 20, 6> 22.36/17]", 1604415261], + [456, 7, 1990, "Metrics/MethodLength: Method has too many lines. [24/10]", 1604415261], + [502, 7, 982, "Metrics/AbcSize: Assignment Branch Condition size for `emit_nonpreferred_document_postlude_regions` is too high. [<5, 20, 10> 22.91/17]", 7588338], + [502, 7, 982, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `emit_nonpreferred_document_postlude_regions` is too high. [10/7]", 7588338], + [502, 7, 982, "Metrics/MethodLength: Method has too many lines. [17/10]", 7588338], + [502, 7, 982, "Metrics/PerceivedComplexity: Perceived complexity for `emit_nonpreferred_document_postlude_regions` is too high. [11/8]", 7588338], + [524, 7, 429, "Metrics/MethodLength: Method has too many lines. [11/10]", 2317545285], + [552, 7, 1153, "Metrics/MethodLength: Method has too many lines. [27/10]", 2050460902], + [582, 7, 1164, "Metrics/MethodLength: Method has too many lines. [16/10]", 293708573], + [603, 7, 1132, "Metrics/MethodLength: Method has too many lines. [15/10]", 2657257420], + [611, 121, 3, "Layout/LineLength: Line is too long. [123/120]", 193417991], + [625, 68, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], + [628, 19, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], + [631, 7, 718, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `preference_for_pair` is too high. [8/7]", 3339910669], + [631, 7, 718, "Metrics/MethodLength: Method has too many lines. [12/10]", 3339910669], + [657, 7, 1442, "Metrics/MethodLength: Method has too many lines. [34/10]", 3775627321], + [724, 7, 1439, "Metrics/AbcSize: Assignment Branch Condition size for `can_merge_recursively?` is too high. [<0, 18, 13> 22.2/17]", 3986446452], + [724, 7, 1439, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `can_merge_recursively?` is too high. [13/7]", 3986446452], + [724, 7, 1439, "Metrics/MethodLength: Method has too many lines. [11/10]", 3986446452], + [724, 7, 1439, "Metrics/PerceivedComplexity: Perceived complexity for `can_merge_recursively?` is too high. [14/8]", 3986446452], + [755, 7, 368, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `flow_sequence?` is too high. [9/7]", 13791150], + [755, 7, 368, "Metrics/PerceivedComplexity: Perceived complexity for `flow_sequence?` is too high. [9/8]", 13791150], + [766, 7, 452, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `flow_mapping?` is too high. [11/7]", 4104291177], + [766, 7, 452, "Metrics/PerceivedComplexity: Perceived complexity for `flow_mapping?` is too high. [11/8]", 4104291177], + [803, 7, 705, "Metrics/AbcSize: Assignment Branch Condition size for `bare_dash_sequence_item_mapping?` is too high. [<5, 18, 8> 20.32/17]", 625586302], + [803, 7, 705, "Metrics/MethodLength: Method has too many lines. [11/10]", 625586302], + [830, 7, 2511, "Metrics/AbcSize: Assignment Branch Condition size for `emit_recursive_merge` is too high. [<0, 19, 10> 21.47/17]", 3873511358], + [830, 7, 2511, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `emit_recursive_merge` is too high. [9/7]", 3873511358], + [830, 7, 2511, "Metrics/MethodLength: Method has too many lines. [49/10]", 3873511358], + [830, 7, 2511, "Metrics/PerceivedComplexity: Perceived complexity for `emit_recursive_merge` is too high. [11/8]", 3873511358], + [831, 9, 2388, "Metrics/BlockLength: Block has too many lines. [47/25]", 1655278799], + [907, 7, 2400, "Metrics/AbcSize: Assignment Branch Condition size for `emit_recursive_mapping_merge` is too high. [<15, 29, 14> 35.52/17]", 1648233163], + [907, 7, 2400, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `emit_recursive_mapping_merge` is too high. [15/7]", 1648233163], + [907, 7, 2400, "Metrics/MethodLength: Method has too many lines. [44/10]", 1648233163], + [907, 7, 2400, "Metrics/PerceivedComplexity: Perceived complexity for `emit_recursive_mapping_merge` is too high. [17/8]", 1648233163], + [975, 7, 6966, "Metrics/AbcSize: Assignment Branch Condition size for `emit_recursive_sequence_merge` is too high. [<35, 84, 35> 97.5/17]", 2427419647], + [975, 7, 6966, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `emit_recursive_sequence_merge` is too high. [30/7]", 2427419647], + [975, 7, 6966, "Metrics/MethodLength: Method has too many lines. [113/10]", 2427419647], + [975, 7, 6966, "Metrics/PerceivedComplexity: Perceived complexity for `emit_recursive_sequence_merge` is too high. [37/8]", 2427419647], + [1021, 74, 42, "Lint/HashCompareByIdentity: Use `Hash#compare_by_identity` instead of using `object_id` for keys.", 2678193523], + [1024, 9, 3871, "Metrics/BlockLength: Block has too many lines. [72/25]", 4174342864], + [1037, 28, 31, "Lint/HashCompareByIdentity: Use `Hash#compare_by_identity` instead of using `object_id` for keys.", 1010804247], + [1049, 37, 44, "Lint/HashCompareByIdentity: Use `Hash#compare_by_identity` instead of using `object_id` for keys.", 2630532814], + [1065, 28, 44, "Lint/HashCompareByIdentity: Use `Hash#compare_by_identity` instead of using `object_id` for keys.", 2630532814], + [1078, 121, 10, "Layout/LineLength: Line is too long. [130/120]", 2582359665], + [1103, 76, 42, "Lint/HashCompareByIdentity: Use `Hash#compare_by_identity` instead of using `object_id` for keys.", 2678193523], + [1112, 74, 42, "Lint/HashCompareByIdentity: Use `Hash#compare_by_identity` instead of using `object_id` for keys.", 2678193523], + [1116, 7, 1262, "Metrics/AbcSize: Assignment Branch Condition size for `build_sequence_item_matches` is too high. [<11, 13, 2> 17.15/17]", 3127840652], + [1116, 7, 1262, "Metrics/MethodLength: Method has too many lines. [21/10]", 3127840652], + [1147, 7, 3065, "Metrics/AbcSize: Assignment Branch Condition size for `build_refined_sequence_observation_matches` is too high. [<19, 51, 17> 57.02/17]", 2950540403], + [1147, 7, 3065, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `build_refined_sequence_observation_matches` is too high. [18/7]", 2950540403], + [1147, 7, 3065, "Metrics/MethodLength: Method has too many lines. [55/10]", 2950540403], + [1147, 7, 3065, "Metrics/PerceivedComplexity: Perceived complexity for `build_refined_sequence_observation_matches` is too high. [18/8]", 2950540403], + [1210, 9, 24, "Style/MultilineBlockChain: Avoid multi-line chains of blocks.", 32301403], + [1262, 7, 901, "Metrics/MethodLength: Method has too many lines. [14/10]", 3298193773], + [1262, 29, 147, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 3718416672], + [1286, 7, 1642, "Metrics/AbcSize: Assignment Branch Condition size for `emit_node` is too high. [<4, 22, 10> 24.49/17]", 518692521], + [1286, 7, 1642, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `emit_node` is too high. [11/7]", 518692521], + [1286, 7, 1642, "Metrics/MethodLength: Method has too many lines. [32/10]", 518692521], + [1286, 7, 1642, "Metrics/PerceivedComplexity: Perceived complexity for `emit_node` is too high. [11/8]", 518692521], + [1286, 20, 138, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 109777589], + [1332, 7, 1577, "Metrics/AbcSize: Assignment Branch Condition size for `emit_mapping_entry` is too high. [<6, 17, 15> 23.45/17]", 3927797439], + [1332, 7, 1577, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `emit_mapping_entry` is too high. [13/7]", 3927797439], + [1332, 7, 1577, "Metrics/MethodLength: Method has too many lines. [28/10]", 3927797439], + [1332, 7, 1577, "Metrics/PerceivedComplexity: Perceived complexity for `emit_mapping_entry` is too high. [13/8]", 3927797439], + [1332, 29, 148, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 2283756321], + [1376, 7, 1975, "Metrics/AbcSize: Assignment Branch Condition size for `emit_mapping_entry_prelude` is too high. [<9, 26, 16> 31.83/17]", 3449491730], + [1376, 7, 1975, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `emit_mapping_entry_prelude` is too high. [16/7]", 3449491730], + [1376, 7, 1975, "Metrics/MethodLength: Method has too many lines. [35/10]", 3449491730], + [1376, 7, 1975, "Metrics/PerceivedComplexity: Perceived complexity for `emit_mapping_entry_prelude` is too high. [16/8]", 3449491730], + [1420, 7, 1550, "Metrics/AbcSize: Assignment Branch Condition size for `emit_node_prelude` is too high. [<6, 17, 9> 20.15/17]", 4132652846], + [1420, 7, 1550, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `emit_node_prelude` is too high. [10/7]", 4132652846], + [1420, 7, 1550, "Metrics/MethodLength: Method has too many lines. [26/10]", 4132652846], + [1420, 7, 1550, "Metrics/PerceivedComplexity: Perceived complexity for `emit_node_prelude` is too high. [10/8]", 4132652846], + [1464, 7, 1256, "Metrics/AbcSize: Assignment Branch Condition size for `emit_node_first_line` is too high. [<3, 16, 5> 17.03/17]", 809936874], + [1464, 7, 1256, "Metrics/MethodLength: Method has too many lines. [24/10]", 809936874], + [1493, 7, 838, "Metrics/AbcSize: Assignment Branch Condition size for `emit_removed_destination_node_comments` is too high. [<3, 16, 7> 17.72/17]", 1801654574], + [1493, 7, 838, "Metrics/MethodLength: Method has too many lines. [13/10]", 1801654574], + [1532, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2088091358], + [1552, 7, 587, "Metrics/MethodLength: Method has too many lines. [14/10]", 1778584112], + [1595, 7, 1089, "Metrics/AbcSize: Assignment Branch Condition size for `canonical_sequence_item_value` is too high. [<7, 20, 8> 22.65/17]", 2923924756], + [1595, 7, 1089, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `canonical_sequence_item_value` is too high. [9/7]", 2923924756], + [1595, 7, 1089, "Metrics/MethodLength: Method has too many lines. [15/10]", 2923924756], + [1595, 7, 1089, "Metrics/PerceivedComplexity: Perceived complexity for `canonical_sequence_item_value` is too high. [9/8]", 2923924756], + [1622, 7, 918, "Metrics/AbcSize: Assignment Branch Condition size for `sequence_item_observations` is too high. [<7, 26, 9> 28.39/17]", 1736204122], + [1622, 7, 918, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `sequence_item_observations` is too high. [10/7]", 1736204122], + [1622, 7, 918, "Metrics/MethodLength: Method has too many lines. [15/10]", 1736204122], + [1622, 7, 918, "Metrics/PerceivedComplexity: Perceived complexity for `sequence_item_observations` is too high. [10/8]", 1736204122], + [1627, 121, 36, "Layout/LineLength: Line is too long. [156/120]", 3762412176], + [1636, 121, 30, "Layout/LineLength: Line is too long. [150/120]", 4096127909], + [1657, 7, 901, "Metrics/AbcSize: Assignment Branch Condition size for `trimmed_sequence_item_lines` is too high. [<11, 26, 10> 29.95/17]", 4091201884], + [1657, 7, 901, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `trimmed_sequence_item_lines` is too high. [10/7]", 4091201884], + [1657, 7, 901, "Metrics/MethodLength: Method has too many lines. [15/10]", 4091201884], + [1657, 7, 901, "Metrics/PerceivedComplexity: Perceived complexity for `trimmed_sequence_item_lines` is too high. [10/8]", 4091201884], + [1679, 7, 713, "Metrics/AbcSize: Assignment Branch Condition size for `sequence_item_start_line` is too high. [<5, 22, 8> 23.94/17]", 2061460995], + [1713, 11, 61, "Lint/HashCompareByIdentity: Use `Hash#compare_by_identity` instead of using `object_id` for keys.", 1718502596], + [1719, 7, 629, "Metrics/AbcSize: Assignment Branch Condition size for `effective_end_line` is too high. [<4, 14, 10> 17.66/17]", 2226115349], + [1719, 7, 629, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `effective_end_line` is too high. [10/7]", 2226115349], + [1719, 7, 629, "Metrics/PerceivedComplexity: Perceived complexity for `effective_end_line` is too high. [10/8]", 2226115349], + [1723, 41, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], + [1765, 7, 1381, "Metrics/AbcSize: Assignment Branch Condition size for `region_already_emitted?` is too high. [<11, 32, 14> 36.62/17]", 2166775868], + [1765, 7, 1381, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `region_already_emitted?` is too high. [13/7]", 2166775868], + [1765, 7, 1381, "Metrics/MethodLength: Method has too many lines. [26/10]", 2166775868], + [1765, 7, 1381, "Metrics/PerceivedComplexity: Perceived complexity for `region_already_emitted?` is too high. [14/8]", 2166775868], + [1805, 7, 2218, "Metrics/AbcSize: Assignment Branch Condition size for `emit_document_postlude` is too high. [<17, 30, 14> 37.22/17]", 1397438331], + [1805, 7, 2218, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `emit_document_postlude` is too high. [15/7]", 1397438331], + [1805, 7, 2218, "Metrics/MethodLength: Method has too many lines. [27/10]", 1397438331], + [1805, 7, 2218, "Metrics/PerceivedComplexity: Perceived complexity for `emit_document_postlude` is too high. [15/8]", 1397438331], + [1849, 7, 1304, "Metrics/AbcSize: Assignment Branch Condition size for `emit_document_prelude` is too high. [<8, 28, 11> 31.13/17]", 325827008], + [1849, 7, 1304, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `emit_document_prelude` is too high. [12/7]", 325827008], + [1849, 7, 1304, "Metrics/MethodLength: Method has too many lines. [24/10]", 325827008], + [1849, 7, 1304, "Metrics/PerceivedComplexity: Perceived complexity for `emit_document_prelude` is too high. [13/8]", 325827008], + [1897, 9, 48, "Lint/HashCompareByIdentity: Use `Hash#compare_by_identity` instead of using `object_id` for keys.", 2339197345], + [1900, 7, 691, "Metrics/AbcSize: Assignment Branch Condition size for `document_leading_regions_for` is too high. [<5, 19, 14> 24.12/17]", 796439642], + [1900, 7, 691, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `document_leading_regions_for` is too high. [14/7]", 796439642], + [1900, 7, 691, "Metrics/MethodLength: Method has too many lines. [12/10]", 796439642], + [1900, 7, 691, "Metrics/PerceivedComplexity: Perceived complexity for `document_leading_regions_for` is too high. [14/8]", 796439642], + [1929, 7, 646, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `canonical_leading_comment_region` is too high. [10/7]", 1342472091], + [1929, 7, 646, "Metrics/PerceivedComplexity: Perceived complexity for `canonical_leading_comment_region` is too high. [10/8]", 1342472091], + [1943, 7, 1410, "Metrics/AbcSize: Assignment Branch Condition size for `collapse_template_preamble_prefix_region` is too high. [<7, 25, 15> 29.98/17]", 449550851], + [1943, 7, 1410, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `collapse_template_preamble_prefix_region` is too high. [11/7]", 449550851], + [1943, 7, 1410, "Metrics/MethodLength: Method has too many lines. [27/10]", 449550851], + [1943, 7, 1410, "Metrics/PerceivedComplexity: Perceived complexity for `collapse_template_preamble_prefix_region` is too high. [11/8]", 449550851], + [1976, 7, 991, "Metrics/AbcSize: Assignment Branch Condition size for `duplicated_template_preamble_prefix_in_first_node_leading_region?` is too high. [<7, 25, 14> 29.5/17]", 4012549279], + [1976, 7, 991, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `duplicated_template_preamble_prefix_in_first_node_leading_region?` is too high. [12/7]", 4012549279], + [1976, 7, 991, "Metrics/MethodLength: Method has too many lines. [13/10]", 4012549279], + [1976, 7, 991, "Metrics/PerceivedComplexity: Perceived complexity for `duplicated_template_preamble_prefix_in_first_node_leading_region?` is too high. [12/8]", 4012549279], + [2031, 7, 956, "Metrics/AbcSize: Assignment Branch Condition size for `document_trailing_regions_for` is too high. [<6, 16, 12> 20.88/17]", 3560026445], + [2031, 7, 956, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `document_trailing_regions_for` is too high. [12/7]", 3560026445], + [2031, 7, 956, "Metrics/PerceivedComplexity: Perceived complexity for `document_trailing_regions_for` is too high. [12/8]", 3560026445], + [2054, 7, 456, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `deflated_content_end_line` is too high. [8/7]", 3297059340], + [2090, 7, 614, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `leading_gap_line_count_for` is too high. [9/7]", 1127644346], + [2090, 7, 614, "Metrics/PerceivedComplexity: Perceived complexity for `leading_gap_line_count_for` is too high. [10/8]", 1127644346], + [2094, 121, 33, "Layout/LineLength: Line is too long. [153/120]", 2290159738], + [2125, 27, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], + [2154, 31, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], + [2161, 55, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], + [2169, 54, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], + [2177, 56, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], + [2182, 7, 822, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `preferred_leading_comment_region` is too high. [10/7]", 1272157667], + [2182, 7, 822, "Metrics/PerceivedComplexity: Perceived complexity for `preferred_leading_comment_region` is too high. [10/8]", 1272157667], + [2294, 7, 465, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `emit_interstitial_blank_lines` is too high. [9/7]", 1640065866], + [2294, 7, 465, "Metrics/PerceivedComplexity: Perceived complexity for `emit_interstitial_blank_lines` is too high. [9/8]", 1640065866], + [2306, 7, 586, "Metrics/MethodLength: Method has too many lines. [12/10]", 3310131662] ], "lib/psych/merge/debug_logger.rb:110646504": [ [26, 9, 680, "Metrics/MethodLength: Method has too many lines. [12/10]", 1981451425] @@ -286,8 +300,8 @@ [228, 7, 662, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `needs_quoting?` is too high. [10/7]", 172072954], [228, 7, 662, "Metrics/PerceivedComplexity: Perceived complexity for `needs_quoting?` is too high. [10/8]", 172072954] ], - "lib/psych/merge/file_analysis.rb:1868572144": [ - [13, 5, 14981, "Metrics/ClassLength: Class has too many lines. [251/100]", 3755372144], + "lib/psych/merge/file_analysis.rb:2915732648": [ + [13, 5, 15087, "Metrics/ClassLength: Class has too many lines. [253/100]", 3755372144], [37, 7, 1080, "Metrics/MethodLength: Method has too many lines. [15/10]", 4243676919], [203, 7, 533, "Metrics/MethodLength: Method has too many lines. [11/10]", 2772113363], [237, 7, 998, "Metrics/AbcSize: Assignment Branch Condition size for `mapping_entry_attachment` is too high. [<5, 23, 7> 24.56/17]", 3001873728], @@ -295,14 +309,14 @@ [237, 7, 998, "Metrics/MethodLength: Method has too many lines. [13/10]", 3001873728], [267, 7, 809, "Metrics/AbcSize: Assignment Branch Condition size for `full_line_comment_blocks_before` is too high. [<9, 16, 6> 19.31/17]", 2033268754], [267, 7, 809, "Metrics/MethodLength: Method has too many lines. [22/10]", 2033268754], - [329, 7, 1353, "Metrics/AbcSize: Assignment Branch Condition size for `extract_freeze_blocks` is too high. [<12, 20, 12> 26.23/17]", 4244924302], - [329, 7, 1353, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `extract_freeze_blocks` is too high. [10/7]", 4244924302], - [329, 7, 1353, "Metrics/MethodLength: Method has too many lines. [27/10]", 4244924302], - [329, 7, 1353, "Metrics/PerceivedComplexity: Perceived complexity for `extract_freeze_blocks` is too high. [11/8]", 4244924302], - [370, 7, 1756, "Metrics/AbcSize: Assignment Branch Condition size for `integrate_nodes_and_freeze_blocks` is too high. [<11, 28, 19> 35.58/17]", 1233865722], - [370, 7, 1756, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `integrate_nodes_and_freeze_blocks` is too high. [18/7]", 1233865722], - [370, 7, 1756, "Metrics/MethodLength: Method has too many lines. [31/10]", 1233865722], - [370, 7, 1756, "Metrics/PerceivedComplexity: Perceived complexity for `integrate_nodes_and_freeze_blocks` is too high. [19/8]", 1233865722] + [331, 7, 1353, "Metrics/AbcSize: Assignment Branch Condition size for `extract_freeze_blocks` is too high. [<12, 20, 12> 26.23/17]", 4244924302], + [331, 7, 1353, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `extract_freeze_blocks` is too high. [10/7]", 4244924302], + [331, 7, 1353, "Metrics/MethodLength: Method has too many lines. [27/10]", 4244924302], + [331, 7, 1353, "Metrics/PerceivedComplexity: Perceived complexity for `extract_freeze_blocks` is too high. [11/8]", 4244924302], + [372, 7, 1756, "Metrics/AbcSize: Assignment Branch Condition size for `integrate_nodes_and_freeze_blocks` is too high. [<11, 28, 19> 35.58/17]", 1233865722], + [372, 7, 1756, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `integrate_nodes_and_freeze_blocks` is too high. [18/7]", 1233865722], + [372, 7, 1756, "Metrics/MethodLength: Method has too many lines. [31/10]", 1233865722], + [372, 7, 1756, "Metrics/PerceivedComplexity: Perceived complexity for `integrate_nodes_and_freeze_blocks` is too high. [19/8]", 1233865722] ], "lib/psych/merge/freeze_node.rb:3007012923": [ [33, 21, 127, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 1948779238] diff --git a/gems/psych-merge/Gemfile b/gems/psych-merge/Gemfile index cafdf299a..a987c8f84 100644 --- a/gems/psych-merge/Gemfile +++ b/gems/psych-merge/Gemfile @@ -6,7 +6,7 @@ # kettle-jem will then preserve content between those markers across template runs. # kettle-jem:unfreeze -source "https://gem.coop" +source 'https://gem.coop' git_source(:codeberg) { |repo_name| "https://codeberg.org/#{repo_name}" } git_source(:gitlab) { |repo_name| "https://gitlab.com/#{repo_name}" } @@ -19,8 +19,8 @@ git_source(:gitlab) { |repo_name| "https://gitlab.com/#{repo_name}" } gemspec # Local workspace dependency wiring for *_local.gemfile overrides -nomono_requirements = ["~> 1.0", ">= 1.0.8"] -gem "nomono", *nomono_requirements, require: false # ruby >= 2.2 +nomono_requirements = ['~> 1.0', '>= 1.0.8'] +gem 'nomono', *nomono_requirements, require: false # ruby >= 2.2 # Direct sibling dependencies (env-switched via STRUCTUREDMERGE_DEV) direct_sibling_gems = %w[ @@ -28,50 +28,46 @@ direct_sibling_gems = %w[ tree_haver yaml-merge ] -direct_sibling_dev = ENV.fetch("STRUCTUREDMERGE_DEV", "") +direct_sibling_dev = ENV.fetch('STRUCTUREDMERGE_DEV', '') direct_sibling_local = !direct_sibling_dev.empty? && !%w[false 0 no off].include?(direct_sibling_dev.downcase) -direct_sibling_templating = ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? +direct_sibling_templating = ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero?) - direct_sibling_dev_was_set = ENV.key?("STRUCTUREDMERGE_DEV") - direct_sibling_dev_original = ENV.fetch("STRUCTUREDMERGE_DEV", nil) + (direct_sibling_local || + ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) + direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') + direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) begin nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path("Gemfile.lock", __dir__) + nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == "nomono" } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - if nomono_locked - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] - end - end - Kernel.send(:gem, "nomono", *nomono_activation_requirements) - require "nomono/bundler" - if direct_sibling_templating && !direct_sibling_local - ENV["STRUCTUREDMERGE_DEV"] = File.expand_path("..", __dir__) + Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked end + Kernel.send(:gem, 'nomono', *nomono_activation_requirements) + require 'nomono/bundler' + ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local eval_nomono_gems( gems: direct_sibling_gems, - prefix: "STRUCTUREDMERGE", - path_env: "STRUCTUREDMERGE_DEV", - root: ["src", "my", "structuredmerge"] + prefix: 'STRUCTUREDMERGE', + path_env: 'STRUCTUREDMERGE_DEV', + root: %w[src my structuredmerge] ) rescue LoadError - warn "Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies." + warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' ensure if direct_sibling_templating && !direct_sibling_local if direct_sibling_dev_was_set - ENV["STRUCTUREDMERGE_DEV"] = direct_sibling_dev_original + ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original else - ENV.delete("STRUCTUREDMERGE_DEV") + ENV.delete('STRUCTUREDMERGE_DEV') end end end @@ -118,28 +114,28 @@ if direct_sibling_gems.any? && end # Use released TSLP with the Ruby ABI platform-gem fix. -gem "tree_sitter_language_pack", "~> 1.13", ">= 1.13.3" +gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' # Templating (env-switched: STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local paths) -eval_gemfile "gemfiles/modular/templating.gemfile" if ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? +eval_gemfile 'gemfiles/modular/templating.gemfile' if ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? # Debugging -eval_gemfile "gemfiles/modular/debug.gemfile" +eval_gemfile 'gemfiles/modular/debug.gemfile' # Code Coverage (env-switched: KETTLE_DEV_DEV=true for local paths) -eval_gemfile "gemfiles/modular/coverage.gemfile" +eval_gemfile 'gemfiles/modular/coverage.gemfile' # Linting -eval_gemfile "gemfiles/modular/style.gemfile" +eval_gemfile 'gemfiles/modular/style.gemfile' # Documentation -eval_gemfile "gemfiles/modular/documentation.gemfile" +eval_gemfile 'gemfiles/modular/documentation.gemfile' # Optional -eval_gemfile "gemfiles/modular/optional.gemfile" +eval_gemfile 'gemfiles/modular/optional.gemfile' ### Std Lib Extracted Gems -eval_gemfile "gemfiles/modular/x_std_libs.gemfile" +eval_gemfile 'gemfiles/modular/x_std_libs.gemfile' # See unlocked_deps appraisal for more details on irb inclusion -gem "irb", "~> 1.17" # ruby >= 2.7 +gem 'irb', '~> 1.17' # ruby >= 2.7 diff --git a/gems/psych-merge/Gemfile.lock b/gems/psych-merge/Gemfile.lock index 7929fca2f..78be92e6d 100644 --- a/gems/psych-merge/Gemfile.lock +++ b/gems/psych-merge/Gemfile.lock @@ -8,39 +8,7 @@ PATH yaml-merge (= 7.1.0) PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly - specs: - ast-crispr-markdown-markly (7.1.0) - ast-crispr (= 7.1.0) - markly-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism - specs: - ast-crispr-ruby-prism (7.1.0) - ast-crispr (= 7.1.0) - prism-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr - specs: - ast-crispr (7.1.0) - ast-merge (= 7.1.0) - service_actor (~> 3.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git - specs: - ast-merge-git (7.1.0) - ast-merge (= 7.1.0) - json-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/ast-merge specs: ast-merge (7.1.0) benchmark @@ -49,192 +17,7 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template - specs: - ast-template (7.1.0) - ast-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge - specs: - bash-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge - specs: - binary-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge - specs: - citrus-toml-merge (7.1.0) - toml-merge (= 7.1.0) - toml-rb (~> 4.1) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge - specs: - commonmarker-merge (7.1.0) - commonmarker (~> 2.2) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge - specs: - dotenv-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge - specs: - go-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge - specs: - json-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem - specs: - kettle-jem (7.1.0) - addressable (>= 2.8, < 3) - ast-crispr-markdown-markly (= 7.1.0) - ast-crispr-ruby-prism (= 7.1.0) - ast-merge (= 7.1.0) - bash-merge (= 7.1.0) - citrus-toml-merge (= 7.1.0) - commonmarker-merge (= 7.1.0) - dotenv-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-dev (~> 2.3, >= 2.3.5) - kettle-rb (~> 0.1, >= 0.1.4) - kramdown-merge (= 7.1.0) - markdown-merge (= 7.1.0) - markly-merge (= 7.1.0) - prism-merge (= 7.1.0) - psych-merge (= 7.1.0) - rbs (>= 3.10) - rbs-merge (= 7.1.0) - ruby-merge (= 7.1.0) - token-resolver (~> 2.0, >= 2.0.4) - toml-merge (= 7.1.0) - toml-rb (~> 4.2) - tree_haver (= 7.1.0) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge - specs: - kramdown-merge (7.1.0) - kramdown (~> 2.5) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge - specs: - markdown-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge - specs: - markly-merge (7.1.0) - markdown-merge (= 7.1.0) - markly (~> 0.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge - specs: - parslet-toml-merge (7.1.0) - toml (~> 0.3) - toml-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge - specs: - plain-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge - specs: - prism-merge (7.1.0) - prism (~> 1.6) - ruby-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge - specs: - rbs-merge (7.1.0) - ast-merge (= 7.1.0) - rbs (>= 3.10) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge - specs: - ruby-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge - specs: - rust-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb - specs: - smorg-rb (7.1.0) - ast-merge (= 7.1.0) - ast-merge-git (= 7.1.0) - go-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-jem (= 7.1.0) - markly-merge (= 7.1.0) - plain-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge - specs: - toml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/tree_haver specs: tree_haver (7.1.0) citrus (~> 3.0) @@ -243,28 +26,13 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge - specs: - typescript-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge specs: yaml-merge (7.1.0) ast-merge (= 7.1.0) tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge - specs: - zip-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - GEM remote: https://gem.coop/ specs: @@ -275,6 +43,10 @@ GEM bundler (>= 1.17.3) rake (>= 10) thor (>= 0.14) + appraisal2-rubocop (1.0.0) + appraisal2 (>= 3.1.4) + rubocop (>= 1.0) + version_gem (~> 1.1, >= 1.1.14) ast (2.4.3) backports (3.25.3) benchmark (0.5.0) @@ -282,10 +54,10 @@ GEM bundler-audit (0.9.3) bundler (>= 1.2.0) thor (~> 1.0) + cgi (0.5.2) citrus (3.0.2) cmdparse (3.0.7) - commonmarker (2.9.0-x86_64-linux) - concurrent-ruby (1.3.7) + concurrent-ruby (1.3.8) date (3.5.1) debug (1.11.1) irb (~> 1.10) @@ -293,7 +65,6 @@ GEM delegate (0.6.1) diff-lcs (1.6.2) diffy (3.4.4) - docile (1.4.1) dry-configurable (1.4.0) dry-core (~> 1.0) zeitwerk (~> 2.6) @@ -324,7 +95,7 @@ GEM dry-logic (~> 1.4) zeitwerk (~> 2.6) emoji_regex (15.0.0) - erb (6.0.5) + erb (6.0.6) gem_bench (2.0.5) bundler (>= 1.14) version_gem (~> 1.1, >= 1.1.4) @@ -343,24 +114,20 @@ GEM rdoc (>= 4.0.0) reline (>= 0.4.2) json (2.21.1) - kettle-dev (2.3.7) + kettle-dev (2.3.8) emoji_regex (>= 15.0) kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) - kettle-drift (1.0.6) - version_gem (~> 1.1, >= 1.1.14) - kettle-rb (0.1.4) - kettle-soup-cover (1.1.3) - simplecov (~> 0.22) - simplecov-cobertura (~> 3.0) - simplecov-console (~> 0.9, >= 0.9.3) - simplecov-html (~> 0.13, >= 0.13.1) - simplecov-lcov (~> 0.8) + kettle-rb (0.1.5) + kettle-soup-cover (3.0.4) + kettle-wash (~> 0.1, >= 0.1.0) + simplecov (>= 1.0) + simplecov-cobertura (>= 4.0) + simplecov-console (~> 0.9, >= 0.9.5) simplecov-rcov (~> 0.3, >= 0.3.7) - simplecov_json_formatter (~> 0.1, >= 0.1.4) - version_gem (~> 1.1, >= 1.1.9) - kettle-test (2.0.11) + simplecov_lcov_formatter (~> 0.9, >= 0.9.0) + kettle-test (2.0.12) appraisal2 (~> 3.0, >= 3.0.6) backports (~> 3.0) rspec (~> 3.0) @@ -371,6 +138,8 @@ GEM silent_stream (~> 1.0, >= 1.0.12) timecop-rspec (~> 1.0, >= 1.0.3) turbo_tests2 (~> 3.1, >= 3.1.12) + kettle-wash (0.1.1) + version_gem (~> 1.1, >= 1.1.14) kramdown (2.5.2) rexml (>= 3.4.4) kramdown-parser-gfm (1.1.0) @@ -378,7 +147,6 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) - markly (0.16.0) mutex_m (0.3.0) nokogiri (1.19.4-aarch64-linux-gnu) racc (~> 1.4) @@ -466,6 +234,14 @@ GEM rubocop-ast (1.50.0) parser (>= 3.3.7.2) prism (~> 1.7) + rubocop-capybara (2.23.0) + lint_roller (~> 1.1) + rubocop (~> 1.81) + rubocop-env (0.1.0) + rubocop + rubocop-factory_bot (2.28.0) + lint_roller (~> 1.1) + rubocop (~> 1.72, >= 1.72.1) rubocop-gradual (0.4.0) benchmark diff-lcs (>= 1.2.0, < 2.0) @@ -473,13 +249,26 @@ GEM parallel (~> 1.10) rainbow (>= 2.2.2, < 4.0) rubocop (~> 1.0) - rubocop-lts (24.1.0) - rubocop-ruby3_2 (>= 3.0.0, < 4) - standard-rubocop-lts (>= 2.0.2, < 3) - version_gem (>= 1.1.2, < 3) + rubocop-lts (24.2.2) + rubocop-ruby3_2 (~> 3.0, >= 3.0.1) + standard-rubocop-lts (~> 2.0, >= 2.0.3) + version_gem (~> 1.1, >= 1.1.13) + rubocop-lts-rspec (1.0.5) + rubocop (~> 1.84, >= 1.84.2) + rubocop-env (~> 0.1, >= 0.1.0) + rubocop-factory_bot (~> 2.28, >= 2.28.0) + rubocop-rspec (~> 3.9, >= 3.9.0) + rubocop-rspec-extra (~> 0.3, >= 0.3.0) + standard (~> 1.54, >= 1.54.0) + standard-rspec (~> 0.5, >= 0.5.0) + version_gem (~> 1.1, >= 1.1.13) rubocop-md (2.0.4) lint_roller (~> 1.1) rubocop (>= 1.72.1) + rubocop-minitest (0.40.0) + lint_roller (~> 1.1) + rubocop (>= 1.75.0, < 2.0) + rubocop-ast (>= 1.38.0, < 2.0) rubocop-on-rbs (2.0.0) lint_roller (~> 1.1) rbs (~> 4.0) @@ -499,6 +288,13 @@ GEM lint_roller (~> 1.1) regexp_parser (>= 2.0) rubocop (~> 1.86, >= 1.86.2) + rubocop-rspec-extra (0.3.0) + lint_roller (~> 1.1) + rubocop (>= 1.72.1, < 2.0) + rubocop-rspec_rails (2.32.0) + lint_roller (~> 1.1) + rubocop (~> 1.72, >= 1.72.1) + rubocop-rspec (~> 3.5) rubocop-ruby3_2 (3.0.7) rubocop-gradual (~> 0.3, >= 0.3.6) rubocop-md (~> 2.0, >= 2.0.4) @@ -513,27 +309,21 @@ GEM ruby-progressbar (1.13.0) ruby_engine (2.0.3) ruby_version (1.0.3) - service_actor (3.9.4) - zeitwerk (>= 1.0) silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) - simplecov (0.22.0) - docile (~> 1.1) - simplecov-html (~> 0.11) - simplecov_json_formatter (~> 0.1) - simplecov-cobertura (3.2.0) + simplecov (1.0.2) + simplecov-cobertura (4.0.0) rexml - simplecov (~> 0.19) + simplecov (~> 1.0) simplecov-console (0.9.5) ansi simplecov terminal-table - simplecov-html (0.13.2) - simplecov-lcov (0.9.0) simplecov-rcov (0.3.7) simplecov (>= 0.4.1) - simplecov_json_formatter (0.1.4) + simplecov_lcov_formatter (0.9.0) + simplecov (>= 0.18) sorbet-runtime (0.6.13347) standard (1.56.0) language_server-protocol (~> 3.17.0.2) @@ -547,6 +337,12 @@ GEM standard-performance (1.9.0) lint_roller (~> 1.1) rubocop-performance (~> 1.26.0) + standard-rspec (0.5.0) + lint_roller (>= 1.0) + rubocop-capybara (~> 2.23) + rubocop-factory_bot (~> 2.27) + rubocop-rspec (~> 3.9) + rubocop-rspec_rails (~> 2.31) standard-rubocop-lts (2.0.10) standard (~> 1.54, >= 1.54.0) standard-custom (~> 1.0, >= 1.0.2) @@ -564,14 +360,9 @@ GEM delegate (~> 0.1) rspec (~> 3.0) timecop (>= 0.7, < 1) - token-resolver (2.0.4) + token-resolver (2.0.5) parslet (~> 2.0) - version_gem (~> 1.1, >= 1.1.13) - toml (0.3.0) - parslet (>= 1.8.0, < 3.0.0) - toml-rb (4.2.0) - citrus (~> 3.0, > 3.0) - racc (~> 1.7) + version_gem (~> 1.1, >= 1.1.14) tree_sitter_language_pack (1.13.3-aarch64-linux) sorbet-runtime (~> 0.5) tree_sitter_language_pack (1.13.3-arm64-darwin) @@ -587,6 +378,7 @@ GEM unicode-emoji (~> 4.1) unicode-emoji (4.2.0) version_gem (1.1.14) + webrick (1.9.2) yaml-converter (0.2.3) hexapdf (>= 1.8, < 2) kramdown (>= 2.4, < 3) @@ -624,104 +416,72 @@ PLATFORMS DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) - ast-crispr! - ast-crispr-markdown-markly! - ast-crispr-ruby-prism! + appraisal2-rubocop (~> 1.0, >= 1.0.0) ast-merge! - ast-merge-git! - ast-template! - bash-merge! benchmark (~> 0.5, >= 0.5.0) - binary-merge! bundler-audit (~> 0.9.3) - citrus-toml-merge! - commonmarker-merge! + cgi (~> 0.5) debug (>= 1.1) - dotenv-merge! - erb (~> 6.0, >= 6.0.4) + erb (~> 6.0, >= 6.0.6) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.0) - go-merge! irb (~> 1.17) - json-merge! kettle-dev (~> 2.0, >= 2.2.25) - kettle-drift (~> 1.0, >= 1.0.5) - kettle-jem! - kettle-soup-cover (~> 1.0, >= 1.1.3) + kettle-soup-cover (~> 3.0, >= 3.0.3) kettle-test (~> 2.0, >= 2.0.9) - kramdown (~> 2.5, >= 2.5.1) - kramdown-merge! + kramdown (~> 2.5, >= 2.5.2) kramdown-parser-gfm (~> 1.1) - markdown-merge! - markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) - parslet-toml-merge! - plain-merge! - prism-merge! psych-merge! rake (~> 13.0) rbs (>= 3.0) - rbs-merge! rdoc (~> 6.11) - reek (~> 6.5) + reek (~> 6.5, >= 6.5.0) require_bench (~> 1.0, >= 1.0.4) - rubocop-lts (~> 24.1.0) - rubocop-on-rbs (~> 2.0) + rubocop-gradual (~> 0.4, >= 0.4.0) + rubocop-lts (~> 24.2, >= 24.2.1) + rubocop-lts-rspec (~> 1.0, >= 1.0.5) + rubocop-minitest (~> 0.40, >= 0.40.0) + rubocop-on-rbs (~> 2.0, >= 2.0.0) rubocop-packaging (~> 0.6, >= 0.6.0) - rubocop-rspec (~> 3.6) - rubocop-ruby3_2 (~> 3.0.0) - ruby-merge! + rubocop-ruby3_2 (~> 3.0, >= 3.0.6) ruby-progressbar (~> 1.13) - rust-merge! - smorg-rb! - standard (>= 1.50) + standard (~> 1.56, >= 1.56.0) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) - toml-merge! tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) - typescript-merge! - yaml-converter (~> 0.1) + webrick (~> 1.9) + yaml-converter (~> 0.2, >= 0.2.3) yaml-merge! - yard (~> 0.9, >= 0.9.44) - yard-fence (~> 0.9, >= 0.9.1) + yard (~> 0.9, >= 0.9.45) + yard-fence (~> 0.9, >= 0.9.6) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) - yard-timekeeper (~> 0.1) - yard-yaml (~> 0.1, >= 0.1.2) - zip-merge! + yard-timekeeper (~> 0.2, >= 0.2.4) + yard-yaml (~> 0.2, >= 0.2.3) CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af ansi (1.6.0) sha256=ac9ea0c0ea8d32fb4e271348e609963ac78882f34b73836c2a02b3622e666658 appraisal2 (3.2.0) sha256=ccd0b767ac4060cd7af6d16747459b6990f49c39c7b4fb1f7d1146b1e97c492f + appraisal2-rubocop (1.0.0) sha256=b71410fbb014befda5340605a605b7f6f3f012739baf0acc5b4351b592c3258d ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 - ast-crispr (7.1.0) - ast-crispr-markdown-markly (7.1.0) - ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) - ast-merge-git (7.1.0) - ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 - bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd - binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 + cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 - citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 - commonmarker (2.9.0-x86_64-linux) - commonmarker-merge (7.1.0) - concurrent-ruby (1.3.7) sha256=4412caec3a5ea2e5fdc52076724c071a81f2c0593d83b2ac8cbb8ca63b3151b0 + concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 - docile (1.4.1) sha256=96159be799bfa73cdb721b840e9802126e4e03dfc26863db73647204c727f21e - dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -730,31 +490,24 @@ CHECKSUMS dry-schema (1.16.0) sha256=cd3aaeabc0f1af66ec82a29096d4c4fb92a0a58b9dae29a22b1bbceb78985727 dry-types (1.9.1) sha256=baebeecdb9f8395d6c9d227b62011279440943e3ef2468fe8ccc1ba11467f178 emoji_regex (15.0.0) sha256=a508b2c0bee561169564e0aec96085020c900520d335e5533fd8e78e59493829 - erb (6.0.5) sha256=858e63488cb796c9daba8b6e9ff4b3879c395022049be9a66a8e00980e612eac + erb (6.0.6) sha256=a9b24986700f5bf127c4f297c5403c3ca41b83b0a316c0cd09a096b56e644ae5 gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f - go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 - json-merge (7.1.0) - kettle-dev (2.3.7) sha256=eb370113cd030d03cbe2d33b31c99858951017e5ad21a17e9ed89dc3770028ee - kettle-drift (1.0.6) - kettle-jem (7.1.0) - kettle-rb (0.1.4) sha256=9cef7ce4f7021666b7222292f29051e51eaf042e8a5db11f3f4dd72f74243fc1 - kettle-soup-cover (1.1.3) sha256=a373827da22a7131d093afd32945e5b7d7a10a01ebfdded8fd2cb8230d69c8ad - kettle-test (2.0.11) sha256=c710c90f7ab79d51f9452f0c09f5f90657e7a893f63583855c164d0b1b107ab2 + kettle-dev (2.3.8) sha256=9d716ff21c660a730cb4e8d41e2e2f0630a28167a354b6e2924e242102aef72c + kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f + kettle-soup-cover (3.0.4) + kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 + kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa - kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 - markdown-merge (7.1.0) - markly (0.16.0) - markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-aarch64-linux-gnu) sha256=1269fb644a6de405057a53dd5c762b1209b43ca7424f839454d3dbc677c31a8f nokogiri (1.19.4-aarch64-linux-musl) sha256=35c65b9ce72b3bb03207bdbe7067915019dc18c1b9b59139684bd6690fdd01af @@ -768,12 +521,9 @@ CHECKSUMS parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 - parslet-toml-merge (7.1.0) - plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 - prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 @@ -781,7 +531,6 @@ CHECKSUMS rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 - rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb @@ -799,35 +548,37 @@ CHECKSUMS rspec_junit_formatter (0.6.0) sha256=40dde674e6ae4e6cc0ff560da25497677e34fefd2338cc467a8972f602b62b15 rubocop (1.88.2) sha256=8def251c90cd955feb4daa3edc0ab56893250c4ce90ef81e6c80c03f9a939bbf rubocop-ast (1.50.0) sha256=b9ca88300da0803ee222ad20cdb30494c0a784eed06fdc35d254b06d662788db + rubocop-capybara (2.23.0) sha256=f9ea1ba3a7561ee8e88cf76fc378ce517ce5327155f305ee7b5c2500e5aee357 + rubocop-env (0.1.0) sha256=5ab9a259e71822bf514c8e900a9b68cc2f74ccc87d5493efcd03213f3068e718 + rubocop-factory_bot (2.28.0) sha256=4b17fc02124444173317e131759d195b0d762844a71a29fe8139c1105d92f0cb rubocop-gradual (0.4.0) sha256=9c7e584e6fef6c2539266a193a4572c970c22f99046fd6b0305bdde6228f96ad - rubocop-lts (24.1.0) sha256=9dcad4db2da2fe2f1f77f98c917d70e7c43eded703da14cd201d4be52a9272aa + rubocop-lts (24.2.2) sha256=be6c745e1bb61daebd6af3cc3227c60f95be9f642a080773cad7df14c5f9f174 + rubocop-lts-rspec (1.0.5) sha256=439552fd27440802cc499889e013bffa28aadc41adae5d4dfff3d984a2a809b4 rubocop-md (2.0.4) sha256=0d076b6b5e99dea2ddc928c4bd702497decb9a8400da7808091e02ebcafcfb93 + rubocop-minitest (0.40.0) sha256=353c698199115f12151144cf0b5a96f69bb9d77b660cf6536df2c4250c672a9d rubocop-on-rbs (2.0.0) sha256=ce74d1b3d5daead19f4b611623656c185821dfc9aed9c7079bb1e5d7d7c464be rubocop-packaging (0.6.0) sha256=fb92bd0fb48e6f8cdb1648d2249b0cd51c2497dcc87340132d22f01edbf558a7 rubocop-performance (1.26.1) sha256=cd19b936ff196df85829d264b522fd4f98b6c89ad271fa52744a8c11b8f71834 rubocop-rake (0.7.1) sha256=3797f2b6810c3e9df7376c26d5f44f3475eda59eb1adc38e6f62ecf027cbae4d rubocop-rspec (3.10.2) sha256=0b3e2ecc592cd10ecbf0095bb58d1e357905276e069643523cc19eb7495f65e2 + rubocop-rspec-extra (0.3.0) sha256=ee4b6484d0332a0d23c4a465eeb607e41888eb3d4ed479f850b9f5212514f787 + rubocop-rspec_rails (2.32.0) sha256=4a0d641c72f6ebb957534f539d9d0a62c47abd8ce0d0aeee1ef4701e892a9100 rubocop-ruby3_2 (3.0.7) sha256=f53dd6d286fb05186214fc6ec116783e7f837030918e8931c05de773e98f8466 rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 - ruby-merge (7.1.0) ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 - rust-merge (7.1.0) - service_actor (3.9.4) silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 - simplecov (0.22.0) sha256=fe2622c7834ff23b98066bb0a854284b2729a569ac659f82621fc22ef36213a5 - simplecov-cobertura (3.2.0) sha256=70d702658677fcb20e5aceb6915ccf8bc62ff2ccd38b62b3ad5c9db5c0888740 + simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 + simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 - simplecov-html (0.13.2) sha256=bd0b8e54e7c2d7685927e8d6286466359b6f16b18cb0df47b508e8d73c777246 - simplecov-lcov (0.9.0) sha256=7a77a31e200a595ed4b0249493056efd0c920601f53d2ef135ca34ee796346cd simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc - simplecov_json_formatter (0.1.4) sha256=529418fbe8de1713ac2b2d612aa3daa56d316975d307244399fa4838c601b428 - smorg-rb (7.1.0) + simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed sorbet-runtime (0.6.13347) sha256=54e7221d9f4b63f58aec79f3043752a9ba7810347c6ae0d903531591cc2d5f01 standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b standard-performance (1.9.0) sha256=49483d31be448292951d80e5e67cdcb576c2502103c7b40aec6f1b6e9c88e3f2 + standard-rspec (0.5.0) sha256=64d396524a65af47f5331b423d8cdd313e0267401647bb7892489ca89dad2973 standard-rubocop-lts (2.0.10) sha256=89708a505b7d8b24d2ac399a7520fcb9e764abc2ecb4289b631b5fe0e3b76617 stone_checksums (1.0.6) sha256=c775f830513d6c6ab26e31d1a5fbecd4c4e39002663d4d9f8fa96e97990b5298 stringio (3.2.0) sha256=c37cb2e58b4ffbd33fe5cd948c05934af997b36e0b6ca6fdf43afa234cf222e1 @@ -836,20 +587,17 @@ CHECKSUMS thor (1.5.0) sha256=e3a9e55fe857e44859ce104a84675ab6e8cd59c650a49106a05f55f136425e73 timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 - token-resolver (2.0.4) sha256=33b926958f504525bba3ed511ab66fbcbf8ef30390815e931436b30f27ffcad0 - toml (0.3.0) - toml-merge (7.1.0) - toml-rb (4.2.0) + token-resolver (2.0.5) sha256=b852f924287ffb58a440856e862b056c8ad97e74b4b2526cee43e0771f40c25c tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-aarch64-linux) sha256=55ffc7c87868cb45658338363d9eba51b4a8b0259aa88e4de368d2bd1d52fea4 tree_sitter_language_pack (1.13.3-arm64-darwin) sha256=bc2498db605f212a1dbd2465ed3f65190d7da786f6ed5d30fcf958121aeb4a5c tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 - typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 + webrick (1.9.2) sha256=beb4a15fc474defed24a3bda4ffd88a490d517c9e4e6118c3edce59e45864131 yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 yaml-merge (7.1.0) yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 @@ -859,7 +607,6 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 - zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH diff --git a/gems/psych-merge/README.md b/gems/psych-merge/README.md index 8d0b3412e..09794eb5a 100644 --- a/gems/psych-merge/README.md +++ b/gems/psych-merge/README.md @@ -446,7 +446,6 @@ If none of the available licenses suit your use case, please [contact us](mailto [🖐contrib-rocks]: https://contrib.rocks [🖐contributors]: https://github.com/structuredmerge/structuredmerge-ruby/graphs/contributors [🖐contributors-img]: https://contrib.rocks/image?repo=structuredmerge/structuredmerge-ruby -[🚎contributors-gl]: https://gitlab.com/structuredmerge/structuredmerge-ruby/-/graphs/main [🪇conduct]: https://github.com/structuredmerge/structuredmerge-ruby/blob/main/CODE_OF_CONDUCT.md [🪇conduct-img]: https://img.shields.io/badge/Contributor_Covenant-2.1-259D6C.svg [📌pvc]: http://guides.rubygems.org/patterns/#pessimistic-version-constraint diff --git a/gems/psych-merge/Rakefile b/gems/psych-merge/Rakefile index 8914e2104..0796b339a 100644 --- a/gems/psych-merge/Rakefile +++ b/gems/psych-merge/Rakefile @@ -130,23 +130,23 @@ end ### DUPLICATE DRIFT TASKS begin - require "kettle/drift" + require 'kettle/drift' Kettle::Drift.install_tasks rescue LoadError - desc("(stub) kettle:drift:check is unavailable") - task("kettle:drift:check") do + desc('(stub) kettle:drift:check is unavailable') + task('kettle:drift:check') do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc("(stub) kettle:drift:update is unavailable") - task("kettle:drift:update") do + desc('(stub) kettle:drift:update is unavailable') + task('kettle:drift:update') do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc("(stub) kettle:drift:force_update is unavailable") - task("kettle:drift:force_update") do + desc('(stub) kettle:drift:force_update is unavailable') + task('kettle:drift:force_update') do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc("(stub) kettle:drift is unavailable") - task("kettle:drift" => "kettle:drift:update") + desc('(stub) kettle:drift is unavailable') + task('kettle:drift' => 'kettle:drift:update') end ### TEMPLATING TASKS diff --git a/gems/psych-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile b/gems/psych-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile index dec650815..b8392fab0 100644 --- a/gems/psych-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile +++ b/gems/psych-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.1 -gem "benchmark", "~> 0.5", ">= 0.5.0" # Removed from Std Lib in Ruby 4.0 +gem 'benchmark', '~> 0.5', '>= 0.5.0' # Removed from Std Lib in Ruby 4.0 diff --git a/gems/psych-merge/gemfiles/modular/benchmark/vHEAD.gemfile b/gems/psych-merge/gemfiles/modular/benchmark/vHEAD.gemfile index e1eb20c5e..af214aafa 100644 --- a/gems/psych-merge/gemfiles/modular/benchmark/vHEAD.gemfile +++ b/gems/psych-merge/gemfiles/modular/benchmark/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.1 -gem "benchmark", github: "ruby/benchmark", branch: "master" +gem 'benchmark', github: 'ruby/benchmark', branch: 'master' diff --git a/gems/psych-merge/gemfiles/modular/cgi/r4/v0.5.gemfile b/gems/psych-merge/gemfiles/modular/cgi/r4/v0.5.gemfile index 19ed967c3..17ad97260 100644 --- a/gems/psych-merge/gemfiles/modular/cgi/r4/v0.5.gemfile +++ b/gems/psych-merge/gemfiles/modular/cgi/r4/v0.5.gemfile @@ -1 +1 @@ -gem "cgi", "~> 0.5" +gem 'cgi', '~> 0.5' diff --git a/gems/psych-merge/gemfiles/modular/cgi/vHEAD.gemfile b/gems/psych-merge/gemfiles/modular/cgi/vHEAD.gemfile index ef8b816ce..650fbf033 100644 --- a/gems/psych-merge/gemfiles/modular/cgi/vHEAD.gemfile +++ b/gems/psych-merge/gemfiles/modular/cgi/vHEAD.gemfile @@ -1 +1 @@ -gem "cgi", ">= 0.5" +gem 'cgi', '>= 0.5' diff --git a/gems/psych-merge/gemfiles/modular/coverage.gemfile b/gems/psych-merge/gemfiles/modular/coverage.gemfile index 52d737872..b93014b6b 100644 --- a/gems/psych-merge/gemfiles/modular/coverage.gemfile +++ b/gems/psych-merge/gemfiles/modular/coverage.gemfile @@ -4,11 +4,11 @@ # Set KETTLE_DEV_DEV=true for local development with path-based dependencies. # When false (default / CI), remote released gems are used. -if ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false").zero? +if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? # Coverage (remote/released) platform :mri do - gem "kettle-soup-cover", "~> 3.0", ">= 3.0.3", require: false + gem 'kettle-soup-cover', '~> 3.0', '>= 3.0.3', require: false end else - eval_gemfile "coverage_local.gemfile" + eval_gemfile 'coverage_local.gemfile' end diff --git a/gems/psych-merge/gemfiles/modular/coverage_local.gemfile b/gems/psych-merge/gemfiles/modular/coverage_local.gemfile index 5a8d89102..1a6766796 100644 --- a/gems/psych-merge/gemfiles/modular/coverage_local.gemfile +++ b/gems/psych-merge/gemfiles/modular/coverage_local.gemfile @@ -11,21 +11,19 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] -nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) +nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] +nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == "nomono" } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - if nomono_locked - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] - end + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked end -Kernel.send(:gem, "nomono", *nomono_activation_requirements) -require "nomono/bundler" +Kernel.send(:gem, 'nomono', *nomono_activation_requirements) +require 'nomono/bundler' local_gems = %w[kettle-dev kettle-test kettle-soup-cover kettle-drift] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) @@ -35,21 +33,21 @@ local_gems_to_eval = local_gems - %w[psych-merge] - declared_gems platform :mri do eval_nomono_gems( gems: local_gems_to_eval, - prefix: "KETTLE_DEV", - path_env: "KETTLE_DEV_DEV", - vendored_gems_env: "VENDORED_GEMS", - vendor_gem_dir_env: "VENDOR_GEM_DIR", - debug_env: "KETTLE_DEV_DEBUG" + prefix: 'KETTLE_DEV', + path_env: 'KETTLE_DEV_DEV', + vendored_gems_env: 'VENDORED_GEMS', + vendor_gem_dir_env: 'VENDOR_GEM_DIR', + debug_env: 'KETTLE_DEV_DEBUG' ) - if ENV.fetch("GALTZO_FLOSS_DEV", "false").casecmp("false") != 0 + if ENV.fetch('GALTZO_FLOSS_DEV', 'false').casecmp('false') != 0 eval_nomono_gems( gems: %w[turbo_tests2], - prefix: "GALTZO_FLOSS", - path_env: "GALTZO_FLOSS_DEV", - vendored_gems_env: "GALTZO_FLOSS_VENDORED_GEMS", - vendor_gem_dir_env: "GALTZO_FLOSS_VENDOR_GEM_DIR", - debug_env: "GALTZO_FLOSS_DEBUG" + prefix: 'GALTZO_FLOSS', + path_env: 'GALTZO_FLOSS_DEV', + vendored_gems_env: 'GALTZO_FLOSS_VENDORED_GEMS', + vendor_gem_dir_env: 'GALTZO_FLOSS_VENDOR_GEM_DIR', + debug_env: 'GALTZO_FLOSS_DEBUG' ) end end diff --git a/gems/psych-merge/gemfiles/modular/debug.gemfile b/gems/psych-merge/gemfiles/modular/debug.gemfile index 4e15b1a3a..eed8d4d1e 100644 --- a/gems/psych-merge/gemfiles/modular/debug.gemfile +++ b/gems/psych-merge/gemfiles/modular/debug.gemfile @@ -13,10 +13,10 @@ platform :mri do # Debugging - Ensure ENV["DEBUG"] == "true" to use debuggers within spec suite # Use binding.break, binding.b, or debugger in code - gem "debug", ">= 1.1" # ruby >= 2.7 + gem 'debug', '>= 1.1' # ruby >= 2.7 # Dev Console - Binding.pry - Irb replacement # gem "pry", "~> 0.14" # ruby >= 2.0 end -gem "gem_bench", "~> 2.0", ">= 2.0.5" +gem 'gem_bench', '~> 2.0', '>= 2.0.5' diff --git a/gems/psych-merge/gemfiles/modular/documentation.gemfile b/gems/psych-merge/gemfiles/modular/documentation.gemfile index d8215416e..9d4535f12 100644 --- a/gems/psych-merge/gemfiles/modular/documentation.gemfile +++ b/gems/psych-merge/gemfiles/modular/documentation.gemfile @@ -7,20 +7,20 @@ # # Documentation -gem "kramdown", "~> 2.5", ">= 2.5.2", require: false # Ruby >= 2.5 -gem "kramdown-parser-gfm", "~> 1.1", require: false # Ruby >= 2.3 -gem "yaml-converter", "~> 0.2", ">= 0.2.3", require: false # Ruby >= 3.2 -gem "yard", "~> 0.9", ">= 0.9.45", require: false -gem "yard-junk", "~> 0.1", ">= 0.1.0", require: false # Ruby >= 3.1 -gem "yard-relative_markdown_links", "~> 0.6", require: false +gem 'kramdown', '~> 2.5', '>= 2.5.2', require: false # Ruby >= 2.5 +gem 'kramdown-parser-gfm', '~> 1.1', require: false # Ruby >= 2.3 +gem 'yaml-converter', '~> 0.2', '>= 0.2.3', require: false # Ruby >= 3.2 +gem 'yard', '~> 0.9', '>= 0.9.45', require: false +gem 'yard-junk', '~> 0.1', '>= 0.1.0', require: false # Ruby >= 3.1 +gem 'yard-relative_markdown_links', '~> 0.6', require: false -if ENV.fetch("GALTZO_FLOSS_DEV", "false").casecmp("false").zero? - gem "yard-fence", "~> 0.9", ">= 0.9.6", require: false # Ruby >= 3.2 - gem "yard-timekeeper", "~> 0.2", ">= 0.2.4", require: false - gem "yard-yaml", "~> 0.2", ">= 0.2.3", require: false +if ENV.fetch('GALTZO_FLOSS_DEV', 'false').casecmp('false').zero? + gem 'yard-fence', '~> 0.9', '>= 0.9.6', require: false # Ruby >= 3.2 + gem 'yard-timekeeper', '~> 0.2', '>= 0.2.4', require: false + gem 'yard-yaml', '~> 0.2', '>= 0.2.3', require: false else - eval_gemfile "documentation_local.gemfile" + eval_gemfile 'documentation_local.gemfile' end # Std Lib extractions -gem "rdoc", "~> 6.11", require: false unless ENV.fetch("KJ_FRAMEWORK_MATRIX_GEM", "") == "rdoc" +gem 'rdoc', '~> 6.11', require: false unless ENV.fetch('KJ_FRAMEWORK_MATRIX_GEM', '') == 'rdoc' diff --git a/gems/psych-merge/gemfiles/modular/documentation_local.gemfile b/gems/psych-merge/gemfiles/modular/documentation_local.gemfile index 4604a371b..6dbdd12e9 100644 --- a/gems/psych-merge/gemfiles/modular/documentation_local.gemfile +++ b/gems/psych-merge/gemfiles/modular/documentation_local.gemfile @@ -11,21 +11,19 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] -nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) +nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] +nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == "nomono" } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - if nomono_locked - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] - end + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked end -Kernel.send(:gem, "nomono", *nomono_activation_requirements) -require "nomono/bundler" +Kernel.send(:gem, 'nomono', *nomono_activation_requirements) +require 'nomono/bundler' local_gems = %w[yard-fence yard-timekeeper yard-yaml] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) @@ -34,9 +32,9 @@ local_gems_to_eval = local_gems - %w[psych-merge] - declared_gems # export GALTZO_FLOSS_DEV=/path/to/galtzo-floss eval_nomono_gems( gems: local_gems_to_eval, - prefix: "GALTZO_FLOSS", - path_env: "GALTZO_FLOSS_DEV", - vendored_gems_env: "GALTZO_FLOSS_VENDORED_GEMS", - vendor_gem_dir_env: "GALTZO_FLOSS_VENDOR_GEM_DIR", - debug_env: "GALTZO_FLOSS_DEBUG" + prefix: 'GALTZO_FLOSS', + path_env: 'GALTZO_FLOSS_DEV', + vendored_gems_env: 'GALTZO_FLOSS_VENDORED_GEMS', + vendor_gem_dir_env: 'GALTZO_FLOSS_VENDOR_GEM_DIR', + debug_env: 'GALTZO_FLOSS_DEBUG' ) diff --git a/gems/psych-merge/gemfiles/modular/erb/r2/v3.0.gemfile b/gems/psych-merge/gemfiles/modular/erb/r2/v3.0.gemfile index c03bd8d85..7c83a239b 100644 --- a/gems/psych-merge/gemfiles/modular/erb/r2/v3.0.gemfile +++ b/gems/psych-merge/gemfiles/modular/erb/r2/v3.0.gemfile @@ -1 +1 @@ -gem "erb", "~> 3.0" # ruby >= 2.7.0 +gem 'erb', '~> 3.0' # ruby >= 2.7.0 diff --git a/gems/psych-merge/gemfiles/modular/erb/r3/v5.0.gemfile b/gems/psych-merge/gemfiles/modular/erb/r3/v5.0.gemfile index 1bd029cc1..ec7ff451f 100644 --- a/gems/psych-merge/gemfiles/modular/erb/r3/v5.0.gemfile +++ b/gems/psych-merge/gemfiles/modular/erb/r3/v5.0.gemfile @@ -1 +1 @@ -gem "erb", "~> 6.0", ">= 6.0.6" # ruby >= 3.2.0 +gem 'erb', '~> 6.0', '>= 6.0.6' # ruby >= 3.2.0 diff --git a/gems/psych-merge/gemfiles/modular/erb/r4/v5.0.gemfile b/gems/psych-merge/gemfiles/modular/erb/r4/v5.0.gemfile index 1bd029cc1..ec7ff451f 100644 --- a/gems/psych-merge/gemfiles/modular/erb/r4/v5.0.gemfile +++ b/gems/psych-merge/gemfiles/modular/erb/r4/v5.0.gemfile @@ -1 +1 @@ -gem "erb", "~> 6.0", ">= 6.0.6" # ruby >= 3.2.0 +gem 'erb', '~> 6.0', '>= 6.0.6' # ruby >= 3.2.0 diff --git a/gems/psych-merge/gemfiles/modular/erb/vHEAD.gemfile b/gems/psych-merge/gemfiles/modular/erb/vHEAD.gemfile index 48fee4218..ea0101185 100644 --- a/gems/psych-merge/gemfiles/modular/erb/vHEAD.gemfile +++ b/gems/psych-merge/gemfiles/modular/erb/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 3.2 -gem "erb", github: "ruby/erb", branch: "master" +gem 'erb', github: 'ruby/erb', branch: 'master' diff --git a/gems/psych-merge/gemfiles/modular/json/truffleruby_22_3.gemfile b/gems/psych-merge/gemfiles/modular/json/truffleruby_22_3.gemfile index b0e69ab11..9b2f8d96a 100644 --- a/gems/psych-merge/gemfiles/modular/json/truffleruby_22_3.gemfile +++ b/gems/psych-merge/gemfiles/modular/json/truffleruby_22_3.gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -if RUBY_ENGINE == "truffleruby" && RUBY_ENGINE_VERSION.start_with?("22.3") +if RUBY_ENGINE == 'truffleruby' && RUBY_ENGINE_VERSION.start_with?('22.3') # TruffleRuby 22.3 ships the json default gem from its emulated MRI Ruby. - gem "json", "= 2.5.1" + gem 'json', '= 2.5.1' end diff --git a/gems/psych-merge/gemfiles/modular/json/truffleruby_23_0.gemfile b/gems/psych-merge/gemfiles/modular/json/truffleruby_23_0.gemfile index 7b2660a2b..d787a5ef4 100644 --- a/gems/psych-merge/gemfiles/modular/json/truffleruby_23_0.gemfile +++ b/gems/psych-merge/gemfiles/modular/json/truffleruby_23_0.gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -if RUBY_ENGINE == "truffleruby" && RUBY_ENGINE_VERSION.start_with?("23.0") +if RUBY_ENGINE == 'truffleruby' && RUBY_ENGINE_VERSION.start_with?('23.0') # TruffleRuby 23.0 ships the json default gem from its emulated MRI Ruby. - gem "json", "= 2.6.1" + gem 'json', '= 2.6.1' end diff --git a/gems/psych-merge/gemfiles/modular/json/truffleruby_23_1.gemfile b/gems/psych-merge/gemfiles/modular/json/truffleruby_23_1.gemfile index dfa21f2e4..d78486b0e 100644 --- a/gems/psych-merge/gemfiles/modular/json/truffleruby_23_1.gemfile +++ b/gems/psych-merge/gemfiles/modular/json/truffleruby_23_1.gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -if RUBY_ENGINE == "truffleruby" && RUBY_ENGINE_VERSION.start_with?("23.1") +if RUBY_ENGINE == 'truffleruby' && RUBY_ENGINE_VERSION.start_with?('23.1') # TruffleRuby 23.1 ships the json default gem from its emulated MRI Ruby. - gem "json", "= 2.6.3" + gem 'json', '= 2.6.3' end diff --git a/gems/psych-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile b/gems/psych-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile index 42e9d9bd4..e27f1bbae 100644 --- a/gems/psych-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile +++ b/gems/psych-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 -gem "mutex_m", "~> 0.2" +gem 'mutex_m', '~> 0.2' diff --git a/gems/psych-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile b/gems/psych-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile index 42e9d9bd4..e27f1bbae 100644 --- a/gems/psych-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile +++ b/gems/psych-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 -gem "mutex_m", "~> 0.2" +gem 'mutex_m', '~> 0.2' diff --git a/gems/psych-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile b/gems/psych-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile index 42e9d9bd4..e27f1bbae 100644 --- a/gems/psych-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile +++ b/gems/psych-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 -gem "mutex_m", "~> 0.2" +gem 'mutex_m', '~> 0.2' diff --git a/gems/psych-merge/gemfiles/modular/mutex_m/vHEAD.gemfile b/gems/psych-merge/gemfiles/modular/mutex_m/vHEAD.gemfile index 8af3b6fca..9dac2f6cb 100644 --- a/gems/psych-merge/gemfiles/modular/mutex_m/vHEAD.gemfile +++ b/gems/psych-merge/gemfiles/modular/mutex_m/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 (dependency of omniauth) -gem "mutex_m", github: "ruby/mutex_m", branch: "master" +gem 'mutex_m', github: 'ruby/mutex_m', branch: 'master' diff --git a/gems/psych-merge/gemfiles/modular/optional.gemfile b/gems/psych-merge/gemfiles/modular/optional.gemfile index 80bc45196..9ea429538 100644 --- a/gems/psych-merge/gemfiles/modular/optional.gemfile +++ b/gems/psych-merge/gemfiles/modular/optional.gemfile @@ -9,8 +9,8 @@ # Optional dependencies are not depended on directly, but may be used if present. # Required for curated binstubs generated by kettle-jem install -gem "rbs", ">= 3.0", require: false # ruby >= 3.1 +gem 'rbs', '>= 3.0', require: false # ruby >= 3.1 # Required for kettle-pre-release # URL parsing with Unicode support (falls back to URI if not available) -gem "addressable", ">= 2.8", "< 3" # ruby >= 2.2 +gem 'addressable', '>= 2.8', '< 3' # ruby >= 2.2 diff --git a/gems/psych-merge/gemfiles/modular/rspec.gemfile b/gems/psych-merge/gemfiles/modular/rspec.gemfile index 72fdf8b7f..2af210a41 100644 --- a/gems/psych-merge/gemfiles/modular/rspec.gemfile +++ b/gems/psych-merge/gemfiles/modular/rspec.gemfile @@ -1,4 +1,4 @@ -gem "rspec_junit_formatter", - github: "pboling/rspec_junit_formatter", - branch: "main", - ref: "9e6bcaaedd49477b62878ed568dc4ada5cc7cb5e" +gem 'rspec_junit_formatter', + github: 'pboling/rspec_junit_formatter', + branch: 'main', + ref: '9e6bcaaedd49477b62878ed568dc4ada5cc7cb5e' diff --git a/gems/psych-merge/gemfiles/modular/runtime_heads.gemfile b/gems/psych-merge/gemfiles/modular/runtime_heads.gemfile index 02f134c7f..ebf17c529 100644 --- a/gems/psych-merge/gemfiles/modular/runtime_heads.gemfile +++ b/gems/psych-merge/gemfiles/modular/runtime_heads.gemfile @@ -8,4 +8,4 @@ # Test against HEAD of runtime dependencies so we can proactively file bugs -eval_gemfile("x_std_libs/vHEAD.gemfile") +eval_gemfile('x_std_libs/vHEAD.gemfile') diff --git a/gems/psych-merge/gemfiles/modular/stringio/r2/v3.0.gemfile b/gems/psych-merge/gemfiles/modular/stringio/r2/v3.0.gemfile index e85bb18ee..3616f4e3a 100644 --- a/gems/psych-merge/gemfiles/modular/stringio/r2/v3.0.gemfile +++ b/gems/psych-merge/gemfiles/modular/stringio/r2/v3.0.gemfile @@ -2,4 +2,4 @@ # NOT SEMVER # Version 3.0.7 dropped support for Ruby <= 2.7 # Version 3.0.0 dropped support for Ruby <= 2.4 -gem "stringio", ">= 3.0" +gem 'stringio', '>= 3.0' diff --git a/gems/psych-merge/gemfiles/modular/stringio/r3/v3.0.gemfile b/gems/psych-merge/gemfiles/modular/stringio/r3/v3.0.gemfile index e85bb18ee..3616f4e3a 100644 --- a/gems/psych-merge/gemfiles/modular/stringio/r3/v3.0.gemfile +++ b/gems/psych-merge/gemfiles/modular/stringio/r3/v3.0.gemfile @@ -2,4 +2,4 @@ # NOT SEMVER # Version 3.0.7 dropped support for Ruby <= 2.7 # Version 3.0.0 dropped support for Ruby <= 2.4 -gem "stringio", ">= 3.0" +gem 'stringio', '>= 3.0' diff --git a/gems/psych-merge/gemfiles/modular/stringio/r4/v3.0.gemfile b/gems/psych-merge/gemfiles/modular/stringio/r4/v3.0.gemfile index e85bb18ee..3616f4e3a 100644 --- a/gems/psych-merge/gemfiles/modular/stringio/r4/v3.0.gemfile +++ b/gems/psych-merge/gemfiles/modular/stringio/r4/v3.0.gemfile @@ -2,4 +2,4 @@ # NOT SEMVER # Version 3.0.7 dropped support for Ruby <= 2.7 # Version 3.0.0 dropped support for Ruby <= 2.4 -gem "stringio", ">= 3.0" +gem 'stringio', '>= 3.0' diff --git a/gems/psych-merge/gemfiles/modular/stringio/vHEAD.gemfile b/gems/psych-merge/gemfiles/modular/stringio/vHEAD.gemfile index 5f2a74126..78f5f5d8a 100644 --- a/gems/psych-merge/gemfiles/modular/stringio/vHEAD.gemfile +++ b/gems/psych-merge/gemfiles/modular/stringio/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 (dependency of omniauth) -gem "stringio", github: "ruby/stringio", branch: "master" +gem 'stringio', github: 'ruby/stringio', branch: 'master' diff --git a/gems/psych-merge/gemfiles/modular/style.gemfile b/gems/psych-merge/gemfiles/modular/style.gemfile index 35de4dcd6..4dbcc02c0 100644 --- a/gems/psych-merge/gemfiles/modular/style.gemfile +++ b/gems/psych-merge/gemfiles/modular/style.gemfile @@ -9,23 +9,23 @@ # Style tasks run on the latest Ruby; RuboCop-LTS selects the compatibility # rules for the configured Ruby floor independently from task dependency floors. -gem "reek", "~> 6.5", ">= 6.5.0" +gem 'reek', '~> 6.5', '>= 6.5.0' platform :mri do - gem "appraisal2-rubocop", "~> 1.0", ">= 1.0.0", require: false - gem "rubocop-gradual", "~> 0.4", ">= 0.4.0" - gem "rubocop-minitest", "~> 0.40", ">= 0.40.0" - gem "rubocop-on-rbs", "~> 2.0", ">= 2.0.0" # ruby >= 3.2.0 + gem 'appraisal2-rubocop', '~> 1.0', '>= 1.0.0', require: false + gem 'rubocop-gradual', '~> 0.4', '>= 0.4.0' + gem 'rubocop-minitest', '~> 0.40', '>= 0.40.0' + gem 'rubocop-on-rbs', '~> 2.0', '>= 2.0.0' # ruby >= 3.2.0 # gem "rubocop", "~> 1.73", ">= 1.73.2" # constrained by standard - gem "rubocop-packaging", "~> 0.6", ">= 0.6.0" - gem "standard", "~> 1.56", ">= 1.56.0" + gem 'rubocop-packaging', '~> 0.6', '>= 0.6.0' + gem 'standard', '~> 1.56', '>= 1.56.0' - if ENV.fetch("RUBOCOP_LTS_LOCAL", "false").casecmp("false").zero? + if ENV.fetch('RUBOCOP_LTS_LOCAL', 'false').casecmp('false').zero? declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) - gem "rubocop-lts", "~> 24.2", ">= 24.2.1" unless declared_gems.include?("rubocop-lts") - gem "rubocop-lts-rspec", "~> 1.0", ">= 1.0.5" unless declared_gems.include?("rubocop-lts-rspec") - gem "rubocop-ruby3_2", "~> 3.0", ">= 3.0.6" unless declared_gems.include?("rubocop-ruby3_2") + gem 'rubocop-lts', '~> 24.2', '>= 24.2.1' unless declared_gems.include?('rubocop-lts') + gem 'rubocop-lts-rspec', '~> 1.0', '>= 1.0.5' unless declared_gems.include?('rubocop-lts-rspec') + gem 'rubocop-ruby3_2', '~> 3.0', '>= 3.0.6' unless declared_gems.include?('rubocop-ruby3_2') else - eval_gemfile("style_local.gemfile") + eval_gemfile('style_local.gemfile') end end diff --git a/gems/psych-merge/gemfiles/modular/style_local.gemfile b/gems/psych-merge/gemfiles/modular/style_local.gemfile index 095e215b2..ac3ba1d00 100644 --- a/gems/psych-merge/gemfiles/modular/style_local.gemfile +++ b/gems/psych-merge/gemfiles/modular/style_local.gemfile @@ -14,21 +14,19 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] -nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) +nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] +nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == "nomono" } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - if nomono_locked - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] - end + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked end -Kernel.send(:gem, "nomono", *nomono_activation_requirements) -require "nomono/bundler" +Kernel.send(:gem, 'nomono', *nomono_activation_requirements) +require 'nomono/bundler' local_gems = %w[rubocop-lts rubocop-lts-rspec rubocop-ruby3_2 standard-rubocop-lts] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) @@ -38,11 +36,11 @@ local_gems_to_eval = local_gems - %w[psych-merge] - declared_gems platform :mri do eval_nomono_gems( gems: local_gems_to_eval, - prefix: "RUBOCOP_LTS", - path_env: "RUBOCOP_LTS_LOCAL", - vendored_gems_env: "VENDORED_GEMS", - vendor_gem_dir_env: "VENDOR_GEM_DIR", - debug_env: "RUBOCOP_LTS_DEBUG", - root: ["src", "rubocop-lts"] + prefix: 'RUBOCOP_LTS', + path_env: 'RUBOCOP_LTS_LOCAL', + vendored_gems_env: 'VENDORED_GEMS', + vendor_gem_dir_env: 'VENDOR_GEM_DIR', + debug_env: 'RUBOCOP_LTS_DEBUG', + root: %w[src rubocop-lts] ) end diff --git a/gems/psych-merge/gemfiles/modular/templating.gemfile b/gems/psych-merge/gemfiles/modular/templating.gemfile index 47138ffbb..a672de184 100644 --- a/gems/psych-merge/gemfiles/modular/templating.gemfile +++ b/gems/psych-merge/gemfiles/modular/templating.gemfile @@ -1,18 +1,18 @@ # frozen_string_literal: true -structuredmerge_remote = ENV.fetch("STRUCTUREDMERGE_DEV", "false").casecmp("false").zero? -kettle_remote = ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false").zero? +structuredmerge_remote = ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false').zero? +kettle_remote = ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? if structuredmerge_remote # Parser dependencies for released installs. - gem "tree_sitter_language_pack", "~> 1.13", ">= 1.13.3" + gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' # Merge recipes for released installs. - gem "kettle-jem", ">= 7.0" + gem 'kettle-jem', '>= 7.0' end if kettle_remote # Template/plugin checks for released installs. - gem "kettle-drift", "~> 1.0", ">= 1.0.6", require: false + gem 'kettle-drift', '~> 1.0', '>= 1.0.6', require: false end # Set STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local development with path-based dependencies. @@ -21,4 +21,4 @@ end # # Set KETTLE_DEV_DEV=/path/to/my for local development with Kettle plugin gems. # When false (default / CI), released Kettle plugin gems are used. -eval_gemfile "templating_local.gemfile" unless structuredmerge_remote && kettle_remote +eval_gemfile 'templating_local.gemfile' unless structuredmerge_remote && kettle_remote diff --git a/gems/psych-merge/gemfiles/modular/templating_local.gemfile b/gems/psych-merge/gemfiles/modular/templating_local.gemfile index a816133a3..f4f79268d 100644 --- a/gems/psych-merge/gemfiles/modular/templating_local.gemfile +++ b/gems/psych-merge/gemfiles/modular/templating_local.gemfile @@ -12,21 +12,19 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] -nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) +nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] +nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == "nomono" } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - if nomono_locked - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] - end + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked end -Kernel.send(:gem, "nomono", *nomono_activation_requirements) -require "nomono/bundler" +Kernel.send(:gem, 'nomono', *nomono_activation_requirements) +require 'nomono/bundler' structuredmerge_local_gems = %w[ tree_haver @@ -69,25 +67,25 @@ structuredmerge_local_gems_to_eval = structuredmerge_local_gems - %w[psych-merge kettle_dev_local_gems_to_eval = kettle_dev_local_gems - %w[psych-merge] - declared_gems platform :mri do - if ENV.fetch("STRUCTUREDMERGE_DEV", "false").casecmp("false") != 0 + if ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false') != 0 eval_nomono_gems( gems: structuredmerge_local_gems_to_eval, - prefix: "STRUCTUREDMERGE", - path_env: "STRUCTUREDMERGE_DEV", - vendored_gems_env: "VENDORED_GEMS", - vendor_gem_dir_env: "VENDOR_GEM_DIR", - debug_env: "STRUCTUREDMERGE_DEBUG" + prefix: 'STRUCTUREDMERGE', + path_env: 'STRUCTUREDMERGE_DEV', + vendored_gems_env: 'VENDORED_GEMS', + vendor_gem_dir_env: 'VENDOR_GEM_DIR', + debug_env: 'STRUCTUREDMERGE_DEBUG' ) end - if ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false") != 0 + if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false') != 0 eval_nomono_gems( gems: kettle_dev_local_gems_to_eval, - prefix: "KETTLE_DEV", - path_env: "KETTLE_DEV_DEV", - vendored_gems_env: "VENDORED_GEMS", - vendor_gem_dir_env: "VENDOR_GEM_DIR", - debug_env: "KETTLE_DEV_DEBUG" + prefix: 'KETTLE_DEV', + path_env: 'KETTLE_DEV_DEV', + vendored_gems_env: 'VENDORED_GEMS', + vendor_gem_dir_env: 'VENDOR_GEM_DIR', + debug_env: 'KETTLE_DEV_DEBUG' ) end end diff --git a/gems/psych-merge/gemfiles/modular/webrick/r4/v1.9.gemfile b/gems/psych-merge/gemfiles/modular/webrick/r4/v1.9.gemfile index eaab4a473..b1329ba84 100644 --- a/gems/psych-merge/gemfiles/modular/webrick/r4/v1.9.gemfile +++ b/gems/psych-merge/gemfiles/modular/webrick/r4/v1.9.gemfile @@ -1 +1 @@ -gem "webrick", "~> 1.9" +gem 'webrick', '~> 1.9' diff --git a/gems/psych-merge/gemfiles/modular/webrick/vHEAD.gemfile b/gems/psych-merge/gemfiles/modular/webrick/vHEAD.gemfile index 8a789b634..c7e6f81a1 100644 --- a/gems/psych-merge/gemfiles/modular/webrick/vHEAD.gemfile +++ b/gems/psych-merge/gemfiles/modular/webrick/vHEAD.gemfile @@ -1 +1 @@ -gem "webrick", ">= 1.9" +gem 'webrick', '>= 1.9' diff --git a/gems/psych-merge/gemfiles/modular/x_std_libs.gemfile b/gems/psych-merge/gemfiles/modular/x_std_libs.gemfile index 77aad43f2..b1f43c097 100644 --- a/gems/psych-merge/gemfiles/modular/x_std_libs.gemfile +++ b/gems/psych-merge/gemfiles/modular/x_std_libs.gemfile @@ -1,12 +1,12 @@ ### Std Lib Extracted Gems ruby_version = Gem::Version.new(RUBY_VERSION) -if ruby_version >= Gem::Version.new("4.0") - eval_gemfile "x_std_libs/r4/libs.gemfile" -elsif ruby_version >= Gem::Version.new("3.2") - eval_gemfile "x_std_libs/r3/libs.gemfile" -elsif ruby_version >= Gem::Version.new("3.1") - eval_gemfile "x_std_libs/r3.1/libs.gemfile" +if ruby_version >= Gem::Version.new('4.0') + eval_gemfile 'x_std_libs/r4/libs.gemfile' +elsif ruby_version >= Gem::Version.new('3.2') + eval_gemfile 'x_std_libs/r3/libs.gemfile' +elsif ruby_version >= Gem::Version.new('3.1') + eval_gemfile 'x_std_libs/r3.1/libs.gemfile' else - eval_gemfile "x_std_libs/r2/libs.gemfile" + eval_gemfile 'x_std_libs/r2/libs.gemfile' end diff --git a/gems/psych-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile b/gems/psych-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile index 441c4f03a..16a5e3d70 100644 --- a/gems/psych-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile +++ b/gems/psych-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile @@ -1,3 +1,3 @@ -eval_gemfile "../../erb/r2/v3.0.gemfile" -eval_gemfile "../../mutex_m/r2/v0.3.gemfile" -eval_gemfile "../../stringio/r2/v3.0.gemfile" +eval_gemfile '../../erb/r2/v3.0.gemfile' +eval_gemfile '../../mutex_m/r2/v0.3.gemfile' +eval_gemfile '../../stringio/r2/v3.0.gemfile' diff --git a/gems/psych-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile b/gems/psych-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile index c293a3ddd..220ff95c1 100644 --- a/gems/psych-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile +++ b/gems/psych-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile @@ -1,3 +1,3 @@ -eval_gemfile "../../erb/r3/v5.0.gemfile" -eval_gemfile "../../mutex_m/r3/v0.3.gemfile" -eval_gemfile "../../stringio/r3/v3.0.gemfile" +eval_gemfile '../../erb/r3/v5.0.gemfile' +eval_gemfile '../../mutex_m/r3/v0.3.gemfile' +eval_gemfile '../../stringio/r3/v3.0.gemfile' diff --git a/gems/psych-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile b/gems/psych-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile index eb5574247..e2f6501eb 100644 --- a/gems/psych-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile +++ b/gems/psych-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile @@ -1,6 +1,6 @@ -eval_gemfile "../../erb/r4/v5.0.gemfile" -eval_gemfile "../../mutex_m/r4/v0.3.gemfile" -eval_gemfile "../../stringio/r4/v3.0.gemfile" -eval_gemfile "../../benchmark/r4/v0.5.gemfile" -eval_gemfile "../../cgi/r4/v0.5.gemfile" -eval_gemfile "../../webrick/r4/v1.9.gemfile" +eval_gemfile '../../erb/r4/v5.0.gemfile' +eval_gemfile '../../mutex_m/r4/v0.3.gemfile' +eval_gemfile '../../stringio/r4/v3.0.gemfile' +eval_gemfile '../../benchmark/r4/v0.5.gemfile' +eval_gemfile '../../cgi/r4/v0.5.gemfile' +eval_gemfile '../../webrick/r4/v1.9.gemfile' diff --git a/gems/psych-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile b/gems/psych-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile index d4d5b16c9..ab75cccf1 100644 --- a/gems/psych-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile +++ b/gems/psych-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile @@ -1,6 +1,6 @@ -eval_gemfile "../erb/vHEAD.gemfile" -eval_gemfile "../mutex_m/vHEAD.gemfile" -eval_gemfile "../stringio/vHEAD.gemfile" -eval_gemfile "../benchmark/vHEAD.gemfile" -eval_gemfile "../cgi/vHEAD.gemfile" -eval_gemfile "../webrick/vHEAD.gemfile" +eval_gemfile '../erb/vHEAD.gemfile' +eval_gemfile '../mutex_m/vHEAD.gemfile' +eval_gemfile '../stringio/vHEAD.gemfile' +eval_gemfile '../benchmark/vHEAD.gemfile' +eval_gemfile '../cgi/vHEAD.gemfile' +eval_gemfile '../webrick/vHEAD.gemfile' diff --git a/gems/psych-merge/lib/psych/merge/version.rb b/gems/psych-merge/lib/psych/merge/version.rb index 518f12da4..aa65219d4 100644 --- a/gems/psych-merge/lib/psych/merge/version.rb +++ b/gems/psych-merge/lib/psych/merge/version.rb @@ -3,7 +3,7 @@ module Psych module Merge module Version - VERSION = "7.1.0" + VERSION = '7.1.0' end VERSION = Version::VERSION # Traditional Constant Location end diff --git a/gems/zip-merge/Gemfile.lock b/gems/zip-merge/Gemfile.lock index 2c631e939..07dd27b92 100644 --- a/gems/zip-merge/Gemfile.lock +++ b/gems/zip-merge/Gemfile.lock @@ -6,7 +6,242 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/tree_haver + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly + specs: + ast-crispr-markdown-markly (7.1.0) + ast-crispr (= 7.1.0) + markly-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism + specs: + ast-crispr-ruby-prism (7.1.0) + ast-crispr (= 7.1.0) + prism-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr + specs: + ast-crispr (7.1.0) + ast-merge (= 7.1.0) + service_actor (~> 3.9) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git + specs: + ast-merge-git (7.1.0) + ast-merge (= 7.1.0) + json-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge + specs: + ast-merge (7.1.0) + benchmark + token-resolver (~> 2.0, >= 2.0.4) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template + specs: + ast-template (7.1.0) + ast-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge + specs: + bash-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge + specs: + binary-merge (7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge + specs: + citrus-toml-merge (7.1.0) + toml-merge (= 7.1.0) + toml-rb (~> 4.1) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge + specs: + commonmarker-merge (7.1.0) + commonmarker (~> 2.2) + markdown-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge + specs: + dotenv-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge + specs: + go-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge + specs: + json-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem + specs: + kettle-jem (7.1.0) + addressable (>= 2.8, < 3) + ast-crispr-markdown-markly (= 7.1.0) + ast-crispr-ruby-prism (= 7.1.0) + ast-merge (= 7.1.0) + bash-merge (= 7.1.0) + citrus-toml-merge (= 7.1.0) + commonmarker-merge (= 7.1.0) + dotenv-merge (= 7.1.0) + json-merge (= 7.1.0) + kettle-dev (~> 2.3, >= 2.3.5) + kettle-rb (~> 0.1, >= 0.1.4) + kramdown-merge (= 7.1.0) + markdown-merge (= 7.1.0) + markly-merge (= 7.1.0) + prism-merge (= 7.1.0) + psych-merge (= 7.1.0) + rbs (>= 3.10) + rbs-merge (= 7.1.0) + ruby-merge (= 7.1.0) + token-resolver (~> 2.0, >= 2.0.4) + toml-merge (= 7.1.0) + toml-rb (~> 4.2) + tree_haver (= 7.1.0) + yaml-merge (= 7.1.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge + specs: + kramdown-merge (7.1.0) + kramdown (~> 2.5) + markdown-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge + specs: + markdown-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge + specs: + markly-merge (7.1.0) + markdown-merge (= 7.1.0) + markly (~> 0.9) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge + specs: + parslet-toml-merge (7.1.0) + toml (~> 0.3) + toml-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge + specs: + plain-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge + specs: + prism-merge (7.1.0) + prism (~> 1.6) + ruby-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge + specs: + psych-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + yaml-merge (= 7.1.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge + specs: + rbs-merge (7.1.0) + ast-merge (= 7.1.0) + rbs (>= 3.10) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge + specs: + ruby-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge + specs: + rust-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb + specs: + smorg-rb (7.1.0) + ast-merge (= 7.1.0) + ast-merge-git (= 7.1.0) + go-merge (= 7.1.0) + json-merge (= 7.1.0) + kettle-jem (= 7.1.0) + markly-merge (= 7.1.0) + plain-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge + specs: + toml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver specs: tree_haver (7.1.0) citrus (~> 3.0) @@ -14,6 +249,22 @@ PATH tree_sitter_language_pack (>= 1.13.2, < 2.0) version_gem (~> 1.1, >= 1.1.9) +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge + specs: + typescript-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge + specs: + yaml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + GEM remote: https://gem.coop/ specs: @@ -38,6 +289,11 @@ GEM cgi (0.5.2) citrus (3.0.2) cmdparse (3.0.7) + commonmarker (2.9.0-aarch64-linux) + commonmarker (2.9.0-aarch64-linux-musl) + commonmarker (2.9.0-arm64-darwin) + commonmarker (2.9.0-x86_64-linux) + commonmarker (2.9.0-x86_64-linux-musl) concurrent-ruby (1.3.8) date (3.5.1) debug (1.11.1) @@ -100,6 +356,8 @@ GEM kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) + kettle-drift (1.0.6) + version_gem (~> 1.1, >= 1.1.14) kettle-rb (0.1.5) kettle-soup-cover (3.0.4) kettle-wash (~> 0.1, >= 0.1.0) @@ -128,6 +386,7 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) + markly (0.16.0) mutex_m (0.3.0) nokogiri (1.19.4-aarch64-linux-gnu) racc (~> 1.4) @@ -290,6 +549,8 @@ GEM ruby-progressbar (1.13.0) ruby_engine (2.0.3) ruby_version (1.0.3) + service_actor (3.9.4) + zeitwerk (>= 1.0) silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) @@ -341,6 +602,14 @@ GEM delegate (~> 0.1) rspec (~> 3.0) timecop (>= 0.7, < 1) + token-resolver (2.0.5) + parslet (~> 2.0) + version_gem (~> 1.1, >= 1.1.14) + toml (0.3.0) + parslet (>= 1.8.0, < 3.0.0) + toml-rb (4.2.0) + citrus (~> 3.0, > 3.0) + racc (~> 1.7) tree_sitter_language_pack (1.13.3-aarch64-linux) sorbet-runtime (~> 0.5) tree_sitter_language_pack (1.13.3-arm64-darwin) @@ -395,23 +664,46 @@ DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) appraisal2-rubocop (~> 1.0, >= 1.0.0) + ast-crispr! + ast-crispr-markdown-markly! + ast-crispr-ruby-prism! + ast-merge! + ast-merge-git! + ast-template! + bash-merge! benchmark (~> 0.5, >= 0.5.0) + binary-merge! bundler-audit (~> 0.9.3) cgi (~> 0.5) + citrus-toml-merge! + commonmarker-merge! debug (>= 1.1) + dotenv-merge! erb (~> 6.0, >= 6.0.6) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.0) + go-merge! irb (~> 1.17) + json-merge! kettle-dev (~> 2.0, >= 2.2.25) + kettle-drift (~> 1.0, >= 1.0.6) + kettle-jem! kettle-soup-cover (~> 3.0, >= 3.0.3) kettle-test (~> 2.0, >= 2.0.9) kramdown (~> 2.5, >= 2.5.2) + kramdown-merge! kramdown-parser-gfm (~> 1.1) + markdown-merge! + markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) + parslet-toml-merge! + plain-merge! + prism-merge! + psych-merge! rake (~> 13.0) rbs (>= 3.0) + rbs-merge! rdoc (~> 6.11) reek (~> 6.5, >= 6.5.0) require_bench (~> 1.0, >= 1.0.4) @@ -422,14 +714,20 @@ DEPENDENCIES rubocop-on-rbs (~> 2.0, >= 2.0.0) rubocop-packaging (~> 0.6, >= 0.6.0) rubocop-ruby3_2 (~> 3.0, >= 3.0.6) + ruby-merge! ruby-progressbar (~> 1.13) + rust-merge! + smorg-rb! standard (~> 1.56, >= 1.56.0) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) + toml-merge! tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) + typescript-merge! webrick (~> 1.9) yaml-converter (~> 0.2, >= 0.2.3) + yaml-merge! yard (~> 0.9, >= 0.9.45) yard-fence (~> 0.9, >= 0.9.6) yard-junk (~> 0.1, >= 0.1.0) @@ -444,19 +742,35 @@ CHECKSUMS appraisal2 (3.2.0) sha256=ccd0b767ac4060cd7af6d16747459b6990f49c39c7b4fb1f7d1146b1e97c492f appraisal2-rubocop (1.0.0) sha256=b71410fbb014befda5340605a605b7f6f3f012739baf0acc5b4351b592c3258d ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 + ast-crispr (7.1.0) + ast-crispr-markdown-markly (7.1.0) + ast-crispr-ruby-prism (7.1.0) + ast-merge (7.1.0) + ast-merge-git (7.1.0) + ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 + bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd + binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 + citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 + commonmarker (2.9.0-aarch64-linux) sha256=e2b4aadb9a2cfa4e206582641ce3a49465549ac1ed4c289fdd63b78d8f24579c + commonmarker (2.9.0-aarch64-linux-musl) sha256=1cf4d2821f2a7e64945f1ed7c4eeced586fdb27ea7fe7337788802cf8f57cfca + commonmarker (2.9.0-arm64-darwin) sha256=1748dbfa4f5813b0d2a14bb4bbfa65a4ec293aa1c825016d60029ee0e132b046 + commonmarker (2.9.0-x86_64-linux) sha256=8cfe92970eef585a19ddf6613224b91cab64d6029834661bda801f877c9c7f43 + commonmarker (2.9.0-x86_64-linux-musl) sha256=293921398b839f79ceaf55010e061357e34f053822c3b003cd0be6686176335e + commonmarker-merge (7.1.0) concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 + dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -469,20 +783,28 @@ CHECKSUMS gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f + go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 + json-merge (7.1.0) kettle-dev (2.3.8) sha256=9d716ff21c660a730cb4e8d41e2e2f0630a28167a354b6e2924e242102aef72c + kettle-drift (1.0.6) sha256=46eda08fa4411d1f3c6682a95eef1c9df4e94611b3949f49d4c7b43c0ed356a3 + kettle-jem (7.1.0) kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f kettle-soup-cover (3.0.4) kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa + kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 + markdown-merge (7.1.0) + markly (0.16.0) sha256=6f70d79e385b1efc9e171f74c81628826259039fe6c778e03c3924c71dac5511 + markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-aarch64-linux-gnu) sha256=1269fb644a6de405057a53dd5c762b1209b43ca7424f839454d3dbc677c31a8f nokogiri (1.19.4-aarch64-linux-musl) sha256=35c65b9ce72b3bb03207bdbe7067915019dc18c1b9b59139684bd6690fdd01af @@ -496,15 +818,20 @@ CHECKSUMS parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 + parslet-toml-merge (7.1.0) + plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 + prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 + psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 + rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb @@ -539,15 +866,19 @@ CHECKSUMS rubocop-rspec_rails (2.32.0) sha256=4a0d641c72f6ebb957534f539d9d0a62c47abd8ce0d0aeee1ef4701e892a9100 rubocop-ruby3_2 (3.0.7) sha256=f53dd6d286fb05186214fc6ec116783e7f837030918e8931c05de773e98f8466 rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 + ruby-merge (7.1.0) ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 + rust-merge (7.1.0) + service_actor (3.9.4) sha256=e63b523630b9a7e62959b2a90113b08d2565b5de9c148557b281ef847c9539ce silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed + smorg-rb (7.1.0) sorbet-runtime (0.6.13347) sha256=54e7221d9f4b63f58aec79f3043752a9ba7810347c6ae0d903531591cc2d5f01 standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b @@ -561,17 +892,23 @@ CHECKSUMS thor (1.5.0) sha256=e3a9e55fe857e44859ce104a84675ab6e8cd59c650a49106a05f55f136425e73 timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 + token-resolver (2.0.5) sha256=b852f924287ffb58a440856e862b056c8ad97e74b4b2526cee43e0771f40c25c + toml (0.3.0) sha256=0a91d0f76a9036e84e44f95693b12f58d358c1df3ac8e3b5271f2056ecc6e4b9 + toml-merge (7.1.0) + toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-aarch64-linux) sha256=55ffc7c87868cb45658338363d9eba51b4a8b0259aa88e4de368d2bd1d52fea4 tree_sitter_language_pack (1.13.3-arm64-darwin) sha256=bc2498db605f212a1dbd2465ed3f65190d7da786f6ed5d30fcf958121aeb4a5c tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 + typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 webrick (1.9.2) sha256=beb4a15fc474defed24a3bda4ffd88a490d517c9e4e6118c3edce59e45864131 yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 + yaml-merge (7.1.0) yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd From 56ce4098b81938c48c6222158a1851f7ed44a7a9 Mon Sep 17 00:00:00 2001 From: "Peter H. Boling" Date: Tue, 21 Jul 2026 13:55:30 -0600 Subject: [PATCH 139/188] =?UTF-8?q?=F0=9F=8E=A8=20Template=20bootstrap=20b?= =?UTF-8?q?y=20kettle-jem=20v7.1.0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gems/citrus-toml-merge/.kettle-drift.lock | 9 - gems/citrus-toml-merge/.rubocop_gradual.lock | 100 ---- gems/citrus-toml-merge/Gemfile | 70 ++- gems/citrus-toml-merge/Gemfile.lock | 472 ++++------------- gems/citrus-toml-merge/README.md | 4 +- gems/citrus-toml-merge/bin/yard | 2 +- .../modular/benchmark/r4/v0.5.gemfile | 2 +- .../gemfiles/modular/benchmark/vHEAD.gemfile | 2 +- .../gemfiles/modular/cgi/r4/v0.5.gemfile | 1 + .../gemfiles/modular/cgi/vHEAD.gemfile | 1 + .../gemfiles/modular/coverage.gemfile | 6 +- .../gemfiles/modular/coverage_local.gemfile | 48 +- .../gemfiles/modular/debug.gemfile | 4 +- .../gemfiles/modular/documentation.gemfile | 24 +- .../modular/documentation_local.gemfile | 38 +- .../gemfiles/modular/erb/r2/v3.0.gemfile | 2 +- .../gemfiles/modular/erb/r3/v5.0.gemfile | 2 +- .../gemfiles/modular/erb/r4/v5.0.gemfile | 2 +- .../gemfiles/modular/erb/vHEAD.gemfile | 2 +- .../modular/json/truffleruby_22_3.gemfile | 6 + .../modular/json/truffleruby_23_0.gemfile | 6 + .../modular/json/truffleruby_23_1.gemfile | 6 + .../gemfiles/modular/mutex_m/r2/v0.3.gemfile | 2 +- .../gemfiles/modular/mutex_m/r3/v0.3.gemfile | 2 +- .../gemfiles/modular/mutex_m/r4/v0.3.gemfile | 2 +- .../gemfiles/modular/mutex_m/vHEAD.gemfile | 2 +- .../gemfiles/modular/optional.gemfile | 7 +- .../gemfiles/modular/rspec.gemfile | 8 +- .../gemfiles/modular/runtime_heads.gemfile | 7 +- .../gemfiles/modular/stringio/r2/v3.0.gemfile | 2 +- .../gemfiles/modular/stringio/r3/v3.0.gemfile | 2 +- .../gemfiles/modular/stringio/r4/v3.0.gemfile | 2 +- .../gemfiles/modular/stringio/vHEAD.gemfile | 2 +- .../gemfiles/modular/style.gemfile | 29 +- .../gemfiles/modular/style_local.gemfile | 44 +- .../gemfiles/modular/templating.gemfile | 14 +- .../gemfiles/modular/templating_local.gemfile | 48 +- .../gemfiles/modular/webrick/r4/v1.9.gemfile | 1 + .../gemfiles/modular/webrick/vHEAD.gemfile | 1 + .../gemfiles/modular/x_std_libs.gemfile | 14 +- .../modular/x_std_libs/r2/libs.gemfile | 6 +- .../modular/x_std_libs/r3/libs.gemfile | 6 +- .../modular/x_std_libs/r4/libs.gemfile | 10 +- .../gemfiles/modular/x_std_libs/vHEAD.gemfile | 10 +- gems/commonmarker-merge/.kettle-drift.lock | 9 - gems/commonmarker-merge/Gemfile.lock | 482 +++++++++++++++-- gems/commonmarker-merge/README.md | 4 +- .../modular/benchmark/r4/v0.5.gemfile | 2 +- .../gemfiles/modular/benchmark/vHEAD.gemfile | 2 +- .../gemfiles/modular/cgi/r4/v0.5.gemfile | 1 + .../gemfiles/modular/cgi/vHEAD.gemfile | 1 + .../gemfiles/modular/coverage.gemfile | 6 +- .../gemfiles/modular/coverage_local.gemfile | 48 +- .../gemfiles/modular/debug.gemfile | 4 +- .../gemfiles/modular/documentation.gemfile | 24 +- .../modular/documentation_local.gemfile | 38 +- .../gemfiles/modular/erb/r2/v3.0.gemfile | 2 +- .../gemfiles/modular/erb/r3/v5.0.gemfile | 2 +- .../gemfiles/modular/erb/r4/v5.0.gemfile | 2 +- .../gemfiles/modular/erb/vHEAD.gemfile | 2 +- .../modular/json/truffleruby_22_3.gemfile | 6 + .../modular/json/truffleruby_23_0.gemfile | 6 + .../modular/json/truffleruby_23_1.gemfile | 6 + .../gemfiles/modular/mutex_m/r2/v0.3.gemfile | 2 +- .../gemfiles/modular/mutex_m/r3/v0.3.gemfile | 2 +- .../gemfiles/modular/mutex_m/r4/v0.3.gemfile | 2 +- .../gemfiles/modular/mutex_m/vHEAD.gemfile | 2 +- .../gemfiles/modular/optional.gemfile | 7 +- .../gemfiles/modular/rspec.gemfile | 8 +- .../gemfiles/modular/runtime_heads.gemfile | 7 +- .../gemfiles/modular/stringio/r2/v3.0.gemfile | 2 +- .../gemfiles/modular/stringio/r3/v3.0.gemfile | 2 +- .../gemfiles/modular/stringio/r4/v3.0.gemfile | 2 +- .../gemfiles/modular/stringio/vHEAD.gemfile | 2 +- .../gemfiles/modular/style.gemfile | 29 +- .../gemfiles/modular/style_local.gemfile | 44 +- .../gemfiles/modular/templating.gemfile | 14 +- .../gemfiles/modular/templating_local.gemfile | 48 +- .../gemfiles/modular/webrick/r4/v1.9.gemfile | 1 + .../gemfiles/modular/webrick/vHEAD.gemfile | 1 + .../gemfiles/modular/x_std_libs.gemfile | 14 +- .../modular/x_std_libs/r2/libs.gemfile | 6 +- .../modular/x_std_libs/r3/libs.gemfile | 6 +- .../modular/x_std_libs/r4/libs.gemfile | 10 +- .../gemfiles/modular/x_std_libs/vHEAD.gemfile | 10 +- gems/kramdown-merge/.kettle-drift.lock | 268 +--------- .../.structuredmerge/kettle-jem.yml | 53 ++ gems/kramdown-merge/Gemfile | 72 ++- gems/kramdown-merge/Gemfile.lock | 384 ++++++++++++-- gems/kramdown-merge/Rakefile | 18 +- .../lib/kramdown/merge/version.rb | 2 +- gems/parslet-toml-merge/.kettle-drift.lock | 9 - gems/parslet-toml-merge/.rubocop_gradual.lock | 34 +- gems/parslet-toml-merge/Gemfile | 70 ++- gems/parslet-toml-merge/Gemfile.lock | 493 +++++------------- gems/parslet-toml-merge/README.md | 4 +- gems/parslet-toml-merge/Rakefile | 18 +- .../gemfiles/modular/cgi/r4/v0.5.gemfile | 1 + .../gemfiles/modular/cgi/vHEAD.gemfile | 1 + .../gemfiles/modular/coverage.gemfile | 2 +- .../gemfiles/modular/coverage_local.gemfile | 24 +- .../gemfiles/modular/documentation.gemfile | 12 +- .../modular/documentation_local.gemfile | 26 +- .../gemfiles/modular/erb/r3/v5.0.gemfile | 2 +- .../gemfiles/modular/erb/r4/v5.0.gemfile | 2 +- .../modular/json/truffleruby_22_3.gemfile | 6 + .../modular/json/truffleruby_23_0.gemfile | 6 + .../modular/json/truffleruby_23_1.gemfile | 6 + .../gemfiles/modular/optional.gemfile | 3 +- .../gemfiles/modular/runtime_heads.gemfile | 5 +- .../gemfiles/modular/style.gemfile | 23 +- .../gemfiles/modular/style_local.gemfile | 30 +- .../gemfiles/modular/templating.gemfile | 4 +- .../gemfiles/modular/templating_local.gemfile | 22 +- .../gemfiles/modular/webrick/r4/v1.9.gemfile | 1 + .../gemfiles/modular/webrick/vHEAD.gemfile | 1 + .../modular/x_std_libs/r4/libs.gemfile | 2 + .../gemfiles/modular/x_std_libs/vHEAD.gemfile | 2 + .../lib/parslet/toml/merge/version.rb | 2 +- gems/psych-merge/Gemfile.lock | 316 ++++++++++- 120 files changed, 2185 insertions(+), 1637 deletions(-) delete mode 100644 gems/citrus-toml-merge/.rubocop_gradual.lock create mode 100644 gems/citrus-toml-merge/gemfiles/modular/cgi/r4/v0.5.gemfile create mode 100644 gems/citrus-toml-merge/gemfiles/modular/cgi/vHEAD.gemfile create mode 100644 gems/citrus-toml-merge/gemfiles/modular/json/truffleruby_22_3.gemfile create mode 100644 gems/citrus-toml-merge/gemfiles/modular/json/truffleruby_23_0.gemfile create mode 100644 gems/citrus-toml-merge/gemfiles/modular/json/truffleruby_23_1.gemfile create mode 100644 gems/citrus-toml-merge/gemfiles/modular/webrick/r4/v1.9.gemfile create mode 100644 gems/citrus-toml-merge/gemfiles/modular/webrick/vHEAD.gemfile create mode 100644 gems/commonmarker-merge/gemfiles/modular/cgi/r4/v0.5.gemfile create mode 100644 gems/commonmarker-merge/gemfiles/modular/cgi/vHEAD.gemfile create mode 100644 gems/commonmarker-merge/gemfiles/modular/json/truffleruby_22_3.gemfile create mode 100644 gems/commonmarker-merge/gemfiles/modular/json/truffleruby_23_0.gemfile create mode 100644 gems/commonmarker-merge/gemfiles/modular/json/truffleruby_23_1.gemfile create mode 100644 gems/commonmarker-merge/gemfiles/modular/webrick/r4/v1.9.gemfile create mode 100644 gems/commonmarker-merge/gemfiles/modular/webrick/vHEAD.gemfile create mode 100644 gems/parslet-toml-merge/gemfiles/modular/cgi/r4/v0.5.gemfile create mode 100644 gems/parslet-toml-merge/gemfiles/modular/cgi/vHEAD.gemfile create mode 100644 gems/parslet-toml-merge/gemfiles/modular/json/truffleruby_22_3.gemfile create mode 100644 gems/parslet-toml-merge/gemfiles/modular/json/truffleruby_23_0.gemfile create mode 100644 gems/parslet-toml-merge/gemfiles/modular/json/truffleruby_23_1.gemfile create mode 100644 gems/parslet-toml-merge/gemfiles/modular/webrick/r4/v1.9.gemfile create mode 100644 gems/parslet-toml-merge/gemfiles/modular/webrick/vHEAD.gemfile diff --git a/gems/citrus-toml-merge/.kettle-drift.lock b/gems/citrus-toml-merge/.kettle-drift.lock index d28e306b0..bf85fa76f 100644 --- a/gems/citrus-toml-merge/.kettle-drift.lock +++ b/gems/citrus-toml-merge/.kettle-drift.lock @@ -52,14 +52,5 @@ 87 ] } - ], - "vendored_gems_env: 'VENDORED_GEMS',\nvendor_gem_dir_env: 'VENDOR_GEM_DIR',": [ - { - "file": "gemfiles/modular/templating_local.gemfile", - "lines": [ - 55, - 66 - ] - } ] } diff --git a/gems/citrus-toml-merge/.rubocop_gradual.lock b/gems/citrus-toml-merge/.rubocop_gradual.lock deleted file mode 100644 index 6289f37c0..000000000 --- a/gems/citrus-toml-merge/.rubocop_gradual.lock +++ /dev/null @@ -1,100 +0,0 @@ -{ - ".simplecov:362090062": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "Rakefile:1269082253": [ - [18, 121, 17, "Layout/LineLength: Line is too long. [137/120]", 174264873], - [79, 3, 1023, "Metrics/BlockLength: Block has too many lines. [32/25]", 54868638], - [163, 121, 22, "Layout/LineLength: Line is too long. [142/120]", 1367093088], - [166, 121, 18, "Layout/LineLength: Line is too long. [138/120]", 3881946477] - ], - "citrus-toml-merge.gemspec:736400334": [ - [128, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 2821357214], - [143, 121, 50, "Layout/LineLength: Line is too long. [170/120]", 3888612416], - [144, 121, 29, "Layout/LineLength: Line is too long. [149/120]", 981994949], - [151, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 4229808912] - ], - "gemfiles/modular/benchmark/r4/v0.5.gemfile:3644720371": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/benchmark/vHEAD.gemfile:2838879269": [ - [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/erb/r2/v3.0.gemfile:1688285565": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] - ], - "gemfiles/modular/erb/r3/v5.0.gemfile:2150258305": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] - ], - "gemfiles/modular/erb/r4/v5.0.gemfile:2150258305": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] - ], - "gemfiles/modular/erb/vHEAD.gemfile:981929959": [ - [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/mutex_m/r2/v0.3.gemfile:4055275004": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/mutex_m/r3/v0.3.gemfile:4055275004": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/mutex_m/r4/v0.3.gemfile:4055275004": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/mutex_m/vHEAD.gemfile:556854763": [ - [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/rspec.gemfile:2263543889": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] - ], - "gemfiles/modular/stringio/r2/v3.0.gemfile:821604304": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/stringio/r3/v3.0.gemfile:821604304": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/stringio/r4/v3.0.gemfile:821604304": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/stringio/vHEAD.gemfile:1045839691": [ - [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/x_std_libs.gemfile:2324400122": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/x_std_libs/r2/libs.gemfile:36276542": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] - ], - "gemfiles/modular/x_std_libs/r3/libs.gemfile:4030570297": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] - ], - "gemfiles/modular/x_std_libs/r4/libs.gemfile:909736663": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] - ], - "gemfiles/modular/x_std_libs/vHEAD.gemfile:907917303": [ - [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] - ], - "lib/citrus-toml-merge.rb:1706359962": [ - [1, 1, 0, "Naming/FileName: The name of this source file (`citrus-toml-merge.rb`) should use snake_case.", 5381] - ], - "lib/citrus/toml/merge.rb:4256403494": [ - [11, 5, 12, "Style/Documentation: Missing top-level documentation comment for `module Citrus::Toml::Merge`.", 2866359175], - [11, 5, 4979, "Metrics/ModuleLength: Module has too many lines. [104/100]", 3343629788], - [12, 7, 11, "Style/ModuleFunction: Use `module_function` instead of `extend self`.", 1210897631], - [76, 7, 1663, "Metrics/AbcSize: Assignment Branch Condition size for `merge_toml` is too high. [<7, 21, 8> 23.54/17]", 3550313116], - [76, 7, 1663, "Metrics/MethodLength: Method has too many lines. [27/10]", 3550313116], - [139, 7, 17, "Style/Documentation: Missing top-level documentation comment for `class Citrus::Toml::Merge::SmartMerger`.", 497427992] - ], - "spec/fixtures_integration_spec.rb:239117620": [ - [3, 1, 7226, "Metrics/BlockLength: Block has too many lines. [159/25]", 3966119837], - [26, 3, 1318, "Metrics/BlockLength: Block has too many lines. [34/25]", 4255752267], - [64, 3, 2344, "Metrics/BlockLength: Block has too many lines. [36/25]", 228336363], - [114, 3, 1129, "Metrics/BlockLength: Block has too many lines. [27/25]", 2358141919], - [152, 3, 1419, "Metrics/BlockLength: Block has too many lines. [29/25]", 944475815] - ] -} diff --git a/gems/citrus-toml-merge/Gemfile b/gems/citrus-toml-merge/Gemfile index c22b5f38c..fdb945d39 100644 --- a/gems/citrus-toml-merge/Gemfile +++ b/gems/citrus-toml-merge/Gemfile @@ -6,7 +6,7 @@ # kettle-jem will then preserve content between those markers across template runs. # kettle-jem:unfreeze -source "https://gem.coop" +source 'https://gem.coop' git_source(:codeberg) { |repo_name| "https://codeberg.org/#{repo_name}" } git_source(:gitlab) { |repo_name| "https://gitlab.com/#{repo_name}" } @@ -19,57 +19,53 @@ git_source(:gitlab) { |repo_name| "https://gitlab.com/#{repo_name}" } gemspec # Local workspace dependency wiring for *_local.gemfile overrides -nomono_requirements = ["~> 1.0", ">= 1.0.8"] -gem "nomono", *nomono_requirements, require: false # ruby >= 2.2 +nomono_requirements = ['~> 1.0', '>= 1.0.8'] +gem 'nomono', *nomono_requirements, require: false # ruby >= 2.2 # Direct sibling dependencies (env-switched via STRUCTUREDMERGE_DEV) direct_sibling_gems = %w[ toml-merge ] -direct_sibling_dev = ENV.fetch("STRUCTUREDMERGE_DEV", "") +direct_sibling_dev = ENV.fetch('STRUCTUREDMERGE_DEV', '') direct_sibling_local = !direct_sibling_dev.empty? && !%w[false 0 no off].include?(direct_sibling_dev.downcase) -direct_sibling_templating = ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? +direct_sibling_templating = ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero?) - direct_sibling_dev_was_set = ENV.key?("STRUCTUREDMERGE_DEV") - direct_sibling_dev_original = ENV.fetch("STRUCTUREDMERGE_DEV", nil) + (direct_sibling_local || + ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) + direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') + direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) begin nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path("Gemfile.lock", __dir__) + nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == "nomono" } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - if nomono_locked - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] - end - end - Kernel.send(:gem, "nomono", *nomono_activation_requirements) - require "nomono/bundler" - if direct_sibling_templating && !direct_sibling_local - ENV["STRUCTUREDMERGE_DEV"] = File.expand_path("..", __dir__) + Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked end + Kernel.send(:gem, 'nomono', *nomono_activation_requirements) + require 'nomono/bundler' + ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local eval_nomono_gems( gems: direct_sibling_gems, - prefix: "STRUCTUREDMERGE", - path_env: "STRUCTUREDMERGE_DEV", - root: ["src", "my", "structuredmerge"] + prefix: 'STRUCTUREDMERGE', + path_env: 'STRUCTUREDMERGE_DEV', + root: %w[src my structuredmerge] ) rescue LoadError - warn "Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies." + warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' ensure if direct_sibling_templating && !direct_sibling_local if direct_sibling_dev_was_set - ENV["STRUCTUREDMERGE_DEV"] = direct_sibling_dev_original + ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original else - ENV.delete("STRUCTUREDMERGE_DEV") + ENV.delete('STRUCTUREDMERGE_DEV') end end end @@ -116,28 +112,28 @@ if direct_sibling_gems.any? && end # Use released TSLP with the Ruby ABI platform-gem fix. -gem "tree_sitter_language_pack", "~> 1.13", ">= 1.13.3" +gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' # Templating (env-switched: STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local paths) -eval_gemfile "gemfiles/modular/templating.gemfile" if ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? +eval_gemfile 'gemfiles/modular/templating.gemfile' if ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? # Debugging -eval_gemfile "gemfiles/modular/debug.gemfile" +eval_gemfile 'gemfiles/modular/debug.gemfile' # Code Coverage (env-switched: KETTLE_DEV_DEV=true for local paths) -eval_gemfile "gemfiles/modular/coverage.gemfile" +eval_gemfile 'gemfiles/modular/coverage.gemfile' # Linting -eval_gemfile "gemfiles/modular/style.gemfile" +eval_gemfile 'gemfiles/modular/style.gemfile' # Documentation -eval_gemfile "gemfiles/modular/documentation.gemfile" +eval_gemfile 'gemfiles/modular/documentation.gemfile' # Optional -eval_gemfile "gemfiles/modular/optional.gemfile" +eval_gemfile 'gemfiles/modular/optional.gemfile' ### Std Lib Extracted Gems -eval_gemfile "gemfiles/modular/x_std_libs.gemfile" +eval_gemfile 'gemfiles/modular/x_std_libs.gemfile' # See unlocked_deps appraisal for more details on irb inclusion -gem "irb", "~> 1.17" # ruby >= 2.7 +gem 'irb', '~> 1.17' # ruby >= 2.7 diff --git a/gems/citrus-toml-merge/Gemfile.lock b/gems/citrus-toml-merge/Gemfile.lock index 77d91229f..8d782a038 100644 --- a/gems/citrus-toml-merge/Gemfile.lock +++ b/gems/citrus-toml-merge/Gemfile.lock @@ -6,225 +6,6 @@ PATH toml-rb (~> 4.1) version_gem (~> 1.1, >= 1.1.9) -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly - specs: - ast-crispr-markdown-markly (7.1.0) - ast-crispr (= 7.1.0) - markly-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism - specs: - ast-crispr-ruby-prism (7.1.0) - ast-crispr (= 7.1.0) - prism-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr - specs: - ast-crispr (7.1.0) - ast-merge (= 7.1.0) - service_actor (~> 3.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git - specs: - ast-merge-git (7.1.0) - ast-merge (= 7.1.0) - json-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge - specs: - ast-merge (7.1.0) - benchmark - token-resolver (~> 2.0, >= 2.0.4) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template - specs: - ast-template (7.1.0) - ast-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge - specs: - bash-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge - specs: - binary-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge - specs: - commonmarker-merge (7.1.0) - commonmarker (~> 2.2) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge - specs: - dotenv-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge - specs: - go-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge - specs: - json-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem - specs: - kettle-jem (7.1.0) - addressable (>= 2.8, < 3) - ast-crispr-markdown-markly (= 7.1.0) - ast-crispr-ruby-prism (= 7.1.0) - ast-merge (= 7.1.0) - bash-merge (= 7.1.0) - citrus-toml-merge (= 7.1.0) - commonmarker-merge (= 7.1.0) - dotenv-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-dev (~> 2.3, >= 2.3.5) - kettle-rb (~> 0.1, >= 0.1.4) - kramdown-merge (= 7.1.0) - markdown-merge (= 7.1.0) - markly-merge (= 7.1.0) - prism-merge (= 7.1.0) - psych-merge (= 7.1.0) - rbs (>= 3.10) - rbs-merge (= 7.1.0) - ruby-merge (= 7.1.0) - token-resolver (~> 2.0, >= 2.0.4) - toml-merge (= 7.1.0) - toml-rb (~> 4.2) - tree_haver (= 7.1.0) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge - specs: - kramdown-merge (7.1.0) - kramdown (~> 2.5) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge - specs: - markdown-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge - specs: - markly-merge (7.1.0) - markdown-merge (= 7.1.0) - markly (~> 0.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge - specs: - parslet-toml-merge (7.1.0) - toml (~> 0.3) - toml-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge - specs: - plain-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge - specs: - prism-merge (7.1.0) - prism (~> 1.6) - ruby-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge - specs: - psych-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge - specs: - rbs-merge (7.1.0) - ast-merge (= 7.1.0) - rbs (>= 3.10) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge - specs: - ruby-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge - specs: - rust-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb - specs: - smorg-rb (7.1.0) - ast-merge (= 7.1.0) - ast-merge-git (= 7.1.0) - go-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-jem (= 7.1.0) - markly-merge (= 7.1.0) - plain-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - PATH remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge specs: @@ -233,38 +14,6 @@ PATH tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver - specs: - tree_haver (7.1.0) - citrus (~> 3.0) - parslet (~> 2.0) - tree_sitter_language_pack (>= 1.13.2, < 2.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge - specs: - typescript-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge - specs: - yaml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge - specs: - zip-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - GEM remote: https://gem.coop/ specs: @@ -275,16 +24,25 @@ GEM bundler (>= 1.17.3) rake (>= 10) thor (>= 0.14) + appraisal2-rubocop (1.0.0) + appraisal2 (>= 3.1.4) + rubocop (>= 1.0) + version_gem (~> 1.1, >= 1.1.14) ast (2.4.3) + ast-merge (7.1.0) + benchmark + token-resolver (~> 2.0, >= 2.0.4) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) backports (3.25.3) benchmark (0.5.0) bigdecimal (4.1.2) bundler-audit (0.9.3) bundler (>= 1.2.0) thor (~> 1.0) + cgi (0.5.2) citrus (3.0.2) cmdparse (3.0.7) - commonmarker (2.9.0-x86_64-linux) concurrent-ruby (1.3.7) date (3.5.1) debug (1.11.1) @@ -293,7 +51,6 @@ GEM delegate (0.6.1) diff-lcs (1.6.2) diffy (3.4.4) - docile (1.4.1) dry-configurable (1.4.0) dry-core (~> 1.0) zeitwerk (~> 2.6) @@ -324,7 +81,7 @@ GEM dry-logic (~> 1.4) zeitwerk (~> 2.6) emoji_regex (15.0.0) - erb (6.0.5) + erb (6.0.6) gem_bench (2.0.5) bundler (>= 1.14) version_gem (~> 1.1, >= 1.1.4) @@ -348,18 +105,14 @@ GEM kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) - kettle-drift (1.0.6) - version_gem (~> 1.1, >= 1.1.14) kettle-rb (0.1.4) - kettle-soup-cover (1.1.3) - simplecov (~> 0.22) - simplecov-cobertura (~> 3.0) - simplecov-console (~> 0.9, >= 0.9.3) - simplecov-html (~> 0.13, >= 0.13.1) - simplecov-lcov (~> 0.8) + kettle-soup-cover (3.0.4) + kettle-wash (~> 0.1, >= 0.1.0) + simplecov (>= 1.0) + simplecov-cobertura (>= 4.0) + simplecov-console (~> 0.9, >= 0.9.5) simplecov-rcov (~> 0.3, >= 0.3.7) - simplecov_json_formatter (~> 0.1, >= 0.1.4) - version_gem (~> 1.1, >= 1.1.9) + simplecov_lcov_formatter (~> 0.9, >= 0.9.0) kettle-test (2.0.11) appraisal2 (~> 3.0, >= 3.0.6) backports (~> 3.0) @@ -371,6 +124,8 @@ GEM silent_stream (~> 1.0, >= 1.0.12) timecop-rspec (~> 1.0, >= 1.0.3) turbo_tests2 (~> 3.1, >= 3.1.12) + kettle-wash (0.1.1) + version_gem (~> 1.1, >= 1.1.14) kramdown (2.5.2) rexml (>= 3.4.4) kramdown-parser-gfm (1.1.0) @@ -378,7 +133,6 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) - markly (0.16.0) mutex_m (0.3.0) nokogiri (1.19.4-x86_64-linux-gnu) racc (~> 1.4) @@ -458,6 +212,14 @@ GEM rubocop-ast (1.50.0) parser (>= 3.3.7.2) prism (~> 1.7) + rubocop-capybara (2.23.0) + lint_roller (~> 1.1) + rubocop (~> 1.81) + rubocop-env (0.1.0) + rubocop + rubocop-factory_bot (2.28.0) + lint_roller (~> 1.1) + rubocop (~> 1.72, >= 1.72.1) rubocop-gradual (0.4.0) benchmark diff-lcs (>= 1.2.0, < 2.0) @@ -465,13 +227,26 @@ GEM parallel (~> 1.10) rainbow (>= 2.2.2, < 4.0) rubocop (~> 1.0) - rubocop-lts (24.1.0) - rubocop-ruby3_2 (>= 3.0.0, < 4) - standard-rubocop-lts (>= 2.0.2, < 3) - version_gem (>= 1.1.2, < 3) + rubocop-lts (24.2.2) + rubocop-ruby3_2 (~> 3.0, >= 3.0.1) + standard-rubocop-lts (~> 2.0, >= 2.0.3) + version_gem (~> 1.1, >= 1.1.13) + rubocop-lts-rspec (1.0.5) + rubocop (~> 1.84, >= 1.84.2) + rubocop-env (~> 0.1, >= 0.1.0) + rubocop-factory_bot (~> 2.28, >= 2.28.0) + rubocop-rspec (~> 3.9, >= 3.9.0) + rubocop-rspec-extra (~> 0.3, >= 0.3.0) + standard (~> 1.54, >= 1.54.0) + standard-rspec (~> 0.5, >= 0.5.0) + version_gem (~> 1.1, >= 1.1.13) rubocop-md (2.0.4) lint_roller (~> 1.1) rubocop (>= 1.72.1) + rubocop-minitest (0.40.0) + lint_roller (~> 1.1) + rubocop (>= 1.75.0, < 2.0) + rubocop-ast (>= 1.38.0, < 2.0) rubocop-on-rbs (2.0.0) lint_roller (~> 1.1) rbs (~> 4.0) @@ -491,6 +266,13 @@ GEM lint_roller (~> 1.1) regexp_parser (>= 2.0) rubocop (~> 1.86, >= 1.86.2) + rubocop-rspec-extra (0.3.0) + lint_roller (~> 1.1) + rubocop (>= 1.72.1, < 2.0) + rubocop-rspec_rails (2.32.0) + lint_roller (~> 1.1) + rubocop (~> 1.72, >= 1.72.1) + rubocop-rspec (~> 3.5) rubocop-ruby3_2 (3.0.7) rubocop-gradual (~> 0.3, >= 0.3.6) rubocop-md (~> 2.0, >= 2.0.4) @@ -505,27 +287,21 @@ GEM ruby-progressbar (1.13.0) ruby_engine (2.0.3) ruby_version (1.0.3) - service_actor (3.9.4) - zeitwerk (>= 1.0) silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) - simplecov (0.22.0) - docile (~> 1.1) - simplecov-html (~> 0.11) - simplecov_json_formatter (~> 0.1) - simplecov-cobertura (3.2.0) + simplecov (1.0.2) + simplecov-cobertura (4.0.0) rexml - simplecov (~> 0.19) + simplecov (~> 1.0) simplecov-console (0.9.5) ansi simplecov terminal-table - simplecov-html (0.13.2) - simplecov-lcov (0.9.0) simplecov-rcov (0.3.7) simplecov (>= 0.4.1) - simplecov_json_formatter (0.1.4) + simplecov_lcov_formatter (0.9.0) + simplecov (>= 0.18) sorbet-runtime (0.6.13347) standard (1.56.0) language_server-protocol (~> 3.17.0.2) @@ -539,6 +315,12 @@ GEM standard-performance (1.9.0) lint_roller (~> 1.1) rubocop-performance (~> 1.26.0) + standard-rspec (0.5.0) + lint_roller (>= 1.0) + rubocop-capybara (~> 2.23) + rubocop-factory_bot (~> 2.27) + rubocop-rspec (~> 3.9) + rubocop-rspec_rails (~> 2.31) standard-rubocop-lts (2.0.10) standard (~> 1.54, >= 1.54.0) standard-custom (~> 1.0, >= 1.0.2) @@ -558,12 +340,15 @@ GEM timecop (>= 0.7, < 1) token-resolver (2.0.4) parslet (~> 2.0) - version_gem (~> 1.1, >= 1.1.14) - toml (0.3.0) - parslet (>= 1.8.0, < 3.0.0) + version_gem (~> 1.1, >= 1.1.13) toml-rb (4.2.0) citrus (~> 3.0, > 3.0) racc (~> 1.7) + tree_haver (7.1.0) + citrus (~> 3.0) + parslet (~> 2.0) + tree_sitter_language_pack (>= 1.13.2, < 2.0) + version_gem (~> 1.1, >= 1.1.9) tree_sitter_language_pack (1.13.3-x86_64-linux) sorbet-runtime (~> 0.5) tsort (0.2.0) @@ -575,6 +360,7 @@ GEM unicode-emoji (~> 4.1) unicode-emoji (4.2.0) version_gem (1.1.14) + webrick (1.9.2) yaml-converter (0.2.3) hexapdf (>= 1.8, < 2) kramdown (>= 2.4, < 3) @@ -607,104 +393,71 @@ PLATFORMS DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) - ast-crispr! - ast-crispr-markdown-markly! - ast-crispr-ruby-prism! - ast-merge! - ast-merge-git! - ast-template! - bash-merge! + appraisal2-rubocop (~> 1.0, >= 1.0.0) benchmark (~> 0.5, >= 0.5.0) - binary-merge! bundler-audit (~> 0.9.3) + cgi (~> 0.5) citrus-toml-merge! - commonmarker-merge! debug (>= 1.1) - dotenv-merge! - erb (~> 6.0, >= 6.0.4) + erb (~> 6.0, >= 6.0.6) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.0) - go-merge! irb (~> 1.17) - json-merge! kettle-dev (~> 2.0, >= 2.2.25) - kettle-drift (~> 1.0, >= 1.0.5) - kettle-jem! - kettle-soup-cover (~> 1.0, >= 1.1.3) + kettle-soup-cover (~> 3.0, >= 3.0.3) kettle-test (~> 2.0, >= 2.0.9) - kramdown (~> 2.5, >= 2.5.1) - kramdown-merge! + kramdown (~> 2.5, >= 2.5.2) kramdown-parser-gfm (~> 1.1) - markdown-merge! - markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) - parslet-toml-merge! - plain-merge! - prism-merge! - psych-merge! rake (~> 13.0) rbs (>= 3.0) - rbs-merge! rdoc (~> 6.11) - reek (~> 6.5) + reek (~> 6.5, >= 6.5.0) require_bench (~> 1.0, >= 1.0.4) - rubocop-lts (~> 24.1.0) - rubocop-on-rbs (~> 2.0) + rubocop-gradual (~> 0.4, >= 0.4.0) + rubocop-lts (~> 24.2, >= 24.2.1) + rubocop-lts-rspec (~> 1.0, >= 1.0.5) + rubocop-minitest (~> 0.40, >= 0.40.0) + rubocop-on-rbs (~> 2.0, >= 2.0.0) rubocop-packaging (~> 0.6, >= 0.6.0) - rubocop-rspec (~> 3.6) - rubocop-ruby3_2 (~> 3.0.0) - ruby-merge! + rubocop-ruby3_2 (~> 3.0, >= 3.0.6) ruby-progressbar (~> 1.13) - rust-merge! - smorg-rb! - standard (>= 1.50) + standard (~> 1.56, >= 1.56.0) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) toml-merge! - tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) - typescript-merge! - yaml-converter (~> 0.1) - yaml-merge! - yard (~> 0.9, >= 0.9.44) - yard-fence (~> 0.9, >= 0.9.1) + webrick (~> 1.9) + yaml-converter (~> 0.2, >= 0.2.3) + yard (~> 0.9, >= 0.9.45) + yard-fence (~> 0.9, >= 0.9.6) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) - yard-timekeeper (~> 0.1) - yard-yaml (~> 0.1, >= 0.1.2) - zip-merge! + yard-timekeeper (~> 0.2, >= 0.2.4) + yard-yaml (~> 0.2, >= 0.2.3) CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af ansi (1.6.0) sha256=ac9ea0c0ea8d32fb4e271348e609963ac78882f34b73836c2a02b3622e666658 appraisal2 (3.2.0) sha256=ccd0b767ac4060cd7af6d16747459b6990f49c39c7b4fb1f7d1146b1e97c492f + appraisal2-rubocop (1.0.0) sha256=b71410fbb014befda5340605a605b7f6f3f012739baf0acc5b4351b592c3258d ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 - ast-crispr (7.1.0) - ast-crispr-markdown-markly (7.1.0) - ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) - ast-merge-git (7.1.0) - ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 - bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd - binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 + cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 - commonmarker (2.9.0-x86_64-linux) - commonmarker-merge (7.1.0) concurrent-ruby (1.3.7) sha256=4412caec3a5ea2e5fdc52076724c071a81f2c0593d83b2ac8cbb8ca63b3151b0 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 - docile (1.4.1) sha256=96159be799bfa73cdb721b840e9802126e4e03dfc26863db73647204c727f21e - dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -713,31 +466,24 @@ CHECKSUMS dry-schema (1.16.0) sha256=cd3aaeabc0f1af66ec82a29096d4c4fb92a0a58b9dae29a22b1bbceb78985727 dry-types (1.9.1) sha256=baebeecdb9f8395d6c9d227b62011279440943e3ef2468fe8ccc1ba11467f178 emoji_regex (15.0.0) sha256=a508b2c0bee561169564e0aec96085020c900520d335e5533fd8e78e59493829 - erb (6.0.5) sha256=858e63488cb796c9daba8b6e9ff4b3879c395022049be9a66a8e00980e612eac + erb (6.0.6) sha256=a9b24986700f5bf127c4f297c5403c3ca41b83b0a316c0cd09a096b56e644ae5 gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f - go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 - json-merge (7.1.0) kettle-dev (2.3.7) sha256=eb370113cd030d03cbe2d33b31c99858951017e5ad21a17e9ed89dc3770028ee - kettle-drift (1.0.6) - kettle-jem (7.1.0) kettle-rb (0.1.4) sha256=9cef7ce4f7021666b7222292f29051e51eaf042e8a5db11f3f4dd72f74243fc1 - kettle-soup-cover (1.1.3) sha256=a373827da22a7131d093afd32945e5b7d7a10a01ebfdded8fd2cb8230d69c8ad + kettle-soup-cover (3.0.4) kettle-test (2.0.11) sha256=c710c90f7ab79d51f9452f0c09f5f90657e7a893f63583855c164d0b1b107ab2 + kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa - kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 - markdown-merge (7.1.0) - markly (0.16.0) - markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-x86_64-linux-gnu) sha256=379fae440b28915e3f19d752ce2dcf8465ed2b2fbefd2a7ca0dd497bc981a06a nomono (1.0.9) @@ -747,20 +493,15 @@ CHECKSUMS parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 - parslet-toml-merge (7.1.0) - plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 - prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 - psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 - rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb @@ -778,35 +519,37 @@ CHECKSUMS rspec_junit_formatter (0.6.0) sha256=40dde674e6ae4e6cc0ff560da25497677e34fefd2338cc467a8972f602b62b15 rubocop (1.88.2) sha256=8def251c90cd955feb4daa3edc0ab56893250c4ce90ef81e6c80c03f9a939bbf rubocop-ast (1.50.0) sha256=b9ca88300da0803ee222ad20cdb30494c0a784eed06fdc35d254b06d662788db + rubocop-capybara (2.23.0) sha256=f9ea1ba3a7561ee8e88cf76fc378ce517ce5327155f305ee7b5c2500e5aee357 + rubocop-env (0.1.0) sha256=5ab9a259e71822bf514c8e900a9b68cc2f74ccc87d5493efcd03213f3068e718 + rubocop-factory_bot (2.28.0) sha256=4b17fc02124444173317e131759d195b0d762844a71a29fe8139c1105d92f0cb rubocop-gradual (0.4.0) sha256=9c7e584e6fef6c2539266a193a4572c970c22f99046fd6b0305bdde6228f96ad - rubocop-lts (24.1.0) sha256=9dcad4db2da2fe2f1f77f98c917d70e7c43eded703da14cd201d4be52a9272aa + rubocop-lts (24.2.2) sha256=be6c745e1bb61daebd6af3cc3227c60f95be9f642a080773cad7df14c5f9f174 + rubocop-lts-rspec (1.0.5) sha256=439552fd27440802cc499889e013bffa28aadc41adae5d4dfff3d984a2a809b4 rubocop-md (2.0.4) sha256=0d076b6b5e99dea2ddc928c4bd702497decb9a8400da7808091e02ebcafcfb93 + rubocop-minitest (0.40.0) sha256=353c698199115f12151144cf0b5a96f69bb9d77b660cf6536df2c4250c672a9d rubocop-on-rbs (2.0.0) sha256=ce74d1b3d5daead19f4b611623656c185821dfc9aed9c7079bb1e5d7d7c464be rubocop-packaging (0.6.0) sha256=fb92bd0fb48e6f8cdb1648d2249b0cd51c2497dcc87340132d22f01edbf558a7 rubocop-performance (1.26.1) sha256=cd19b936ff196df85829d264b522fd4f98b6c89ad271fa52744a8c11b8f71834 rubocop-rake (0.7.1) sha256=3797f2b6810c3e9df7376c26d5f44f3475eda59eb1adc38e6f62ecf027cbae4d rubocop-rspec (3.10.2) sha256=0b3e2ecc592cd10ecbf0095bb58d1e357905276e069643523cc19eb7495f65e2 + rubocop-rspec-extra (0.3.0) sha256=ee4b6484d0332a0d23c4a465eeb607e41888eb3d4ed479f850b9f5212514f787 + rubocop-rspec_rails (2.32.0) sha256=4a0d641c72f6ebb957534f539d9d0a62c47abd8ce0d0aeee1ef4701e892a9100 rubocop-ruby3_2 (3.0.7) sha256=f53dd6d286fb05186214fc6ec116783e7f837030918e8931c05de773e98f8466 rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 - ruby-merge (7.1.0) ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 - rust-merge (7.1.0) - service_actor (3.9.4) silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 - simplecov (0.22.0) sha256=fe2622c7834ff23b98066bb0a854284b2729a569ac659f82621fc22ef36213a5 - simplecov-cobertura (3.2.0) sha256=70d702658677fcb20e5aceb6915ccf8bc62ff2ccd38b62b3ad5c9db5c0888740 + simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 + simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 - simplecov-html (0.13.2) sha256=bd0b8e54e7c2d7685927e8d6286466359b6f16b18cb0df47b508e8d73c777246 - simplecov-lcov (0.9.0) sha256=7a77a31e200a595ed4b0249493056efd0c920601f53d2ef135ca34ee796346cd simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc - simplecov_json_formatter (0.1.4) sha256=529418fbe8de1713ac2b2d612aa3daa56d316975d307244399fa4838c601b428 - smorg-rb (7.1.0) + simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed sorbet-runtime (0.6.13347) sha256=54e7221d9f4b63f58aec79f3043752a9ba7810347c6ae0d903531591cc2d5f01 standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b standard-performance (1.9.0) sha256=49483d31be448292951d80e5e67cdcb576c2502103c7b40aec6f1b6e9c88e3f2 + standard-rspec (0.5.0) sha256=64d396524a65af47f5331b423d8cdd313e0267401647bb7892489ca89dad2973 standard-rubocop-lts (2.0.10) sha256=89708a505b7d8b24d2ac399a7520fcb9e764abc2ecb4289b631b5fe0e3b76617 stone_checksums (1.0.6) sha256=c775f830513d6c6ab26e31d1a5fbecd4c4e39002663d4d9f8fa96e97990b5298 stringio (3.2.0) sha256=c37cb2e58b4ffbd33fe5cd948c05934af997b36e0b6ca6fdf43afa234cf222e1 @@ -816,19 +559,17 @@ CHECKSUMS timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.4) sha256=33b926958f504525bba3ed511ab66fbcbf8ef30390815e931436b30f27ffcad0 - toml (0.3.0) toml-merge (7.1.0) toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 - typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 + webrick (1.9.2) sha256=beb4a15fc474defed24a3bda4ffd88a490d517c9e4e6118c3edce59e45864131 yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 - yaml-merge (7.1.0) yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd @@ -836,7 +577,6 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 - zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH diff --git a/gems/citrus-toml-merge/README.md b/gems/citrus-toml-merge/README.md index 588d76f25..91a46d4a1 100644 --- a/gems/citrus-toml-merge/README.md +++ b/gems/citrus-toml-merge/README.md @@ -36,7 +36,7 @@ I've summarized my thoughts in [this blog post](https://dev.to/galtzo/hostile-ta | Tokens to Remember | [![Gem name][⛳️name-img]][⛳️gem-name] [![Gem namespace][⛳️namespace-img]][⛳️gem-namespace] | |-------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | Works with MRI Ruby 4 | [![Ruby current Compat][💎ruby-c-i]][🚎11-c-wf]| -| Support & Community | [![Join Me on Daily.dev's RubyFriends][✉️ruby-friends-img]][✉️ruby-friends] [![Live Chat on Discord][✉️discord-invite-img-ftb]][✉️discord-invite] [![Get help from me on Upwork][👨🏼‍🏫expsup-upwork-img]][👨🏼‍🏫expsup-upwork] [![Get help from me on Codementor][👨🏼‍🏫expsup-codementor-img]][👨🏼‍🏫expsup-codementor] | +| Support & Community | [![Join Me on Daily.dev's RubyFriends][✉️ruby-friends-img]][✉️ruby-friends] [![Get help from RubyForum][✉️ruby-forum-img]][✉️ruby-forum] [![Live Chat on Discord][✉️discord-invite-img-ftb]][✉️discord-invite] [![Get help from me on Upwork][👨🏼‍🏫expsup-upwork-img]][👨🏼‍🏫expsup-upwork] [![Get help from me on Codementor][👨🏼‍🏫expsup-codementor-img]][👨🏼‍🏫expsup-codementor] | | Source | [![Source on GitLab.com][📜src-gl-img]][📜src-gl] [![Source on CodeBerg.org][📜src-cb-img]][📜src-cb] [![Source on Github.com][📜src-gh-img]][📜src-gh] [![The best SHA: dQw4w9WgXcQ!][🧮kloc-img]][🧮kloc] | | Documentation | [![Current release on RubyDoc.info][📜docs-cr-rd-img]][🚎yard-current] [![YARD on Galtzo.com][📜docs-head-rd-img]][🚎yard-head] [![Maintainer Blog][🚂maint-blog-img]][🚂maint-blog] [![GitLab Wiki][📜gl-wiki-img]][📜gl-wiki] [![GitHub Wiki][📜gh-wiki-img]][📜gh-wiki] | | Compliance | [![License: AGPL-3.0-only OR PolyForm-Small-Business-1.0.0][📄license-img]][📄license] [![Apache license compatibility: Category X][📄license-compat-img]][📄license-compat] [![📄ilo-declaration-img]][📄ilo-declaration] [![Security Policy][🔐security-img]][🔐security] [![Contributor Covenant 2.1][🪇conduct-img]][🪇conduct] [![SemVer 2.0.0][📌semver-img]][📌semver] | @@ -181,6 +181,8 @@ If none of the available licenses suit your use case, please [contact us](mailto [✉️discord-invite-img-ftb]: https://img.shields.io/discord/1373797679469170758?style=for-the-badge&logo=discord [✉️ruby-friends-img]: https://img.shields.io/badge/daily.dev-%F0%9F%92%8E_Ruby_Friends-0A0A0A?style=for-the-badge&logo=dailydotdev&logoColor=white [✉️ruby-friends]: https://app.daily.dev/squads/rubyfriends +[✉️ruby-forum-img]: https://img.shields.io/badge/RubyForum-Help-CC342D?style=for-the-badge&logo=ruby&logoColor=white +[✉️ruby-forum]: https://www.rubyforum.org/c/help/8 [✇bundle-group-pattern]: https://gist.github.com/pboling/4564780 [⛳️gem-namespace]: https://github.com/structuredmerge/structuredmerge-ruby/tree/main/gems/citrus-toml-merge [⛳️namespace-img]: https://img.shields.io/badge/namespace-Citrus::Toml::Merge-3C2D2D.svg?style=square&logo=ruby&logoColor=white diff --git a/gems/citrus-toml-merge/bin/yard b/gems/citrus-toml-merge/bin/yard index 5d516ad6f..a7e8b6eed 100755 --- a/gems/citrus-toml-merge/bin/yard +++ b/gems/citrus-toml-merge/bin/yard @@ -12,4 +12,4 @@ # `yard` / `bin/yard`. Keep this binstub as a handoff to the task so # humans and tools that reach for `bin/yard` still run the full docs # workflow with post-processing hooks. -exec('bundle', 'exec', 'rake', 'yard') +exec("bundle", "exec", "rake", "yard") diff --git a/gems/citrus-toml-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile b/gems/citrus-toml-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile index b8392fab0..dec650815 100644 --- a/gems/citrus-toml-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile +++ b/gems/citrus-toml-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.1 -gem 'benchmark', '~> 0.5', '>= 0.5.0' # Removed from Std Lib in Ruby 4.0 +gem "benchmark", "~> 0.5", ">= 0.5.0" # Removed from Std Lib in Ruby 4.0 diff --git a/gems/citrus-toml-merge/gemfiles/modular/benchmark/vHEAD.gemfile b/gems/citrus-toml-merge/gemfiles/modular/benchmark/vHEAD.gemfile index af214aafa..e1eb20c5e 100644 --- a/gems/citrus-toml-merge/gemfiles/modular/benchmark/vHEAD.gemfile +++ b/gems/citrus-toml-merge/gemfiles/modular/benchmark/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.1 -gem 'benchmark', github: 'ruby/benchmark', branch: 'master' +gem "benchmark", github: "ruby/benchmark", branch: "master" diff --git a/gems/citrus-toml-merge/gemfiles/modular/cgi/r4/v0.5.gemfile b/gems/citrus-toml-merge/gemfiles/modular/cgi/r4/v0.5.gemfile new file mode 100644 index 000000000..19ed967c3 --- /dev/null +++ b/gems/citrus-toml-merge/gemfiles/modular/cgi/r4/v0.5.gemfile @@ -0,0 +1 @@ +gem "cgi", "~> 0.5" diff --git a/gems/citrus-toml-merge/gemfiles/modular/cgi/vHEAD.gemfile b/gems/citrus-toml-merge/gemfiles/modular/cgi/vHEAD.gemfile new file mode 100644 index 000000000..ef8b816ce --- /dev/null +++ b/gems/citrus-toml-merge/gemfiles/modular/cgi/vHEAD.gemfile @@ -0,0 +1 @@ +gem "cgi", ">= 0.5" diff --git a/gems/citrus-toml-merge/gemfiles/modular/coverage.gemfile b/gems/citrus-toml-merge/gemfiles/modular/coverage.gemfile index f96d50954..52d737872 100644 --- a/gems/citrus-toml-merge/gemfiles/modular/coverage.gemfile +++ b/gems/citrus-toml-merge/gemfiles/modular/coverage.gemfile @@ -4,11 +4,11 @@ # Set KETTLE_DEV_DEV=true for local development with path-based dependencies. # When false (default / CI), remote released gems are used. -if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? +if ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false").zero? # Coverage (remote/released) platform :mri do - gem 'kettle-soup-cover', '~> 1.0', '>= 1.1.3', require: false + gem "kettle-soup-cover", "~> 3.0", ">= 3.0.3", require: false end else - eval_gemfile 'coverage_local.gemfile' + eval_gemfile "coverage_local.gemfile" end diff --git a/gems/citrus-toml-merge/gemfiles/modular/coverage_local.gemfile b/gems/citrus-toml-merge/gemfiles/modular/coverage_local.gemfile index 53a213a49..29d430ced 100644 --- a/gems/citrus-toml-merge/gemfiles/modular/coverage_local.gemfile +++ b/gems/citrus-toml-merge/gemfiles/modular/coverage_local.gemfile @@ -3,31 +3,53 @@ # Local path overrides for development. # Loaded by the associated non-local gemfile when KETTLE_DEV_DEV != "false". -require 'nomono/bundler' unless defined?(Nomono) +# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. +# Bundler records that dependency during Gemfile evaluation, but it does not +# activate that exact version before the immediate `require "nomono/bundler"`. +# If multiple compatible nomono versions are installed, RubyGems may activate +# the newest installed version while Gemfile.lock pins an older compatible one; +# Bundler then aborts with "already activated nomono X, but your Gemfile +# requires nomono Y". Prefer the locked compatible version when present, then +# activate it explicitly before requiring the Bundler DSL extension used below. +nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] +nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) +if File.file?(nomono_lockfile) + nomono_locked_spec = Bundler::LockfileParser + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == "nomono" } + nomono_locked = nomono_locked_spec && + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + if nomono_locked + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] + end +end +Kernel.send(:gem, "nomono", *nomono_activation_requirements) +require "nomono/bundler" local_gems = %w[kettle-dev kettle-test kettle-soup-cover kettle-drift] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) local_gems_to_eval = local_gems - %w[citrus-toml-merge] - declared_gems -# export KETTLE_DEV_DEV=/path/to/kettle-rb +# export KETTLE_DEV_DEV=/path/to/my platform :mri do eval_nomono_gems( gems: local_gems_to_eval, - prefix: 'KETTLE_DEV', - path_env: 'KETTLE_DEV_DEV', - vendored_gems_env: 'VENDORED_GEMS', - vendor_gem_dir_env: 'VENDOR_GEM_DIR', - debug_env: 'KETTLE_DEV_DEBUG' + prefix: "KETTLE_DEV", + path_env: "KETTLE_DEV_DEV", + vendored_gems_env: "VENDORED_GEMS", + vendor_gem_dir_env: "VENDOR_GEM_DIR", + debug_env: "KETTLE_DEV_DEBUG" ) - if ENV.fetch('GALTZO_FLOSS_DEV', 'false').casecmp('false') != 0 + if ENV.fetch("GALTZO_FLOSS_DEV", "false").casecmp("false") != 0 eval_nomono_gems( gems: %w[turbo_tests2], - prefix: 'GALTZO_FLOSS', - path_env: 'GALTZO_FLOSS_DEV', - vendored_gems_env: 'GALTZO_FLOSS_VENDORED_GEMS', - vendor_gem_dir_env: 'GALTZO_FLOSS_VENDOR_GEM_DIR', - debug_env: 'GALTZO_FLOSS_DEBUG' + prefix: "GALTZO_FLOSS", + path_env: "GALTZO_FLOSS_DEV", + vendored_gems_env: "GALTZO_FLOSS_VENDORED_GEMS", + vendor_gem_dir_env: "GALTZO_FLOSS_VENDOR_GEM_DIR", + debug_env: "GALTZO_FLOSS_DEBUG" ) end end diff --git a/gems/citrus-toml-merge/gemfiles/modular/debug.gemfile b/gems/citrus-toml-merge/gemfiles/modular/debug.gemfile index eed8d4d1e..4e15b1a3a 100644 --- a/gems/citrus-toml-merge/gemfiles/modular/debug.gemfile +++ b/gems/citrus-toml-merge/gemfiles/modular/debug.gemfile @@ -13,10 +13,10 @@ platform :mri do # Debugging - Ensure ENV["DEBUG"] == "true" to use debuggers within spec suite # Use binding.break, binding.b, or debugger in code - gem 'debug', '>= 1.1' # ruby >= 2.7 + gem "debug", ">= 1.1" # ruby >= 2.7 # Dev Console - Binding.pry - Irb replacement # gem "pry", "~> 0.14" # ruby >= 2.0 end -gem 'gem_bench', '~> 2.0', '>= 2.0.5' +gem "gem_bench", "~> 2.0", ">= 2.0.5" diff --git a/gems/citrus-toml-merge/gemfiles/modular/documentation.gemfile b/gems/citrus-toml-merge/gemfiles/modular/documentation.gemfile index dff5cc108..d8215416e 100644 --- a/gems/citrus-toml-merge/gemfiles/modular/documentation.gemfile +++ b/gems/citrus-toml-merge/gemfiles/modular/documentation.gemfile @@ -7,20 +7,20 @@ # # Documentation -gem 'kramdown', '~> 2.5', '>= 2.5.1', require: false # Ruby >= 2.5 -gem 'kramdown-parser-gfm', '~> 1.1', require: false # Ruby >= 2.3 -gem 'yaml-converter', '~> 0.1', require: false # Ruby >= 3.2 -gem 'yard', '~> 0.9', '>= 0.9.44', require: false -gem 'yard-junk', '~> 0.1', '>= 0.1.0', require: false # Ruby >= 3.1 -gem 'yard-relative_markdown_links', '~> 0.6', require: false +gem "kramdown", "~> 2.5", ">= 2.5.2", require: false # Ruby >= 2.5 +gem "kramdown-parser-gfm", "~> 1.1", require: false # Ruby >= 2.3 +gem "yaml-converter", "~> 0.2", ">= 0.2.3", require: false # Ruby >= 3.2 +gem "yard", "~> 0.9", ">= 0.9.45", require: false +gem "yard-junk", "~> 0.1", ">= 0.1.0", require: false # Ruby >= 3.1 +gem "yard-relative_markdown_links", "~> 0.6", require: false -if ENV.fetch('GALTZO_FLOSS_DEV', 'false').casecmp('false').zero? - gem 'yard-fence', '~> 0.9', '>= 0.9.1', require: false # Ruby >= 3.2 - gem 'yard-timekeeper', '~> 0.1', require: false - gem 'yard-yaml', '~> 0.1', '>= 0.1.2', require: false +if ENV.fetch("GALTZO_FLOSS_DEV", "false").casecmp("false").zero? + gem "yard-fence", "~> 0.9", ">= 0.9.6", require: false # Ruby >= 3.2 + gem "yard-timekeeper", "~> 0.2", ">= 0.2.4", require: false + gem "yard-yaml", "~> 0.2", ">= 0.2.3", require: false else - eval_gemfile 'documentation_local.gemfile' + eval_gemfile "documentation_local.gemfile" end # Std Lib extractions -gem 'rdoc', '~> 6.11', require: false unless ENV.fetch('KJ_FRAMEWORK_MATRIX_GEM', '') == 'rdoc' +gem "rdoc", "~> 6.11", require: false unless ENV.fetch("KJ_FRAMEWORK_MATRIX_GEM", "") == "rdoc" diff --git a/gems/citrus-toml-merge/gemfiles/modular/documentation_local.gemfile b/gems/citrus-toml-merge/gemfiles/modular/documentation_local.gemfile index 4d4c2bd95..95673b694 100644 --- a/gems/citrus-toml-merge/gemfiles/modular/documentation_local.gemfile +++ b/gems/citrus-toml-merge/gemfiles/modular/documentation_local.gemfile @@ -3,16 +3,40 @@ # Local path overrides for development. # Loaded by the associated non-local gemfile when GALTZO_FLOSS_DEV != "false". -require 'nomono/bundler' unless defined?(Nomono) +# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. +# Bundler records that dependency during Gemfile evaluation, but it does not +# activate that exact version before the immediate `require "nomono/bundler"`. +# If multiple compatible nomono versions are installed, RubyGems may activate +# the newest installed version while Gemfile.lock pins an older compatible one; +# Bundler then aborts with "already activated nomono X, but your Gemfile +# requires nomono Y". Prefer the locked compatible version when present, then +# activate it explicitly before requiring the Bundler DSL extension used below. +nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] +nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) +if File.file?(nomono_lockfile) + nomono_locked_spec = Bundler::LockfileParser + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == "nomono" } + nomono_locked = nomono_locked_spec && + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + if nomono_locked + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] + end +end +Kernel.send(:gem, "nomono", *nomono_activation_requirements) +require "nomono/bundler" local_gems = %w[yard-fence yard-timekeeper yard-yaml] +declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) +local_gems_to_eval = local_gems - %w[citrus-toml-merge] - declared_gems # export GALTZO_FLOSS_DEV=/path/to/galtzo-floss eval_nomono_gems( - gems: local_gems, - prefix: 'GALTZO_FLOSS', - path_env: 'GALTZO_FLOSS_DEV', - vendored_gems_env: 'GALTZO_FLOSS_VENDORED_GEMS', - vendor_gem_dir_env: 'GALTZO_FLOSS_VENDOR_GEM_DIR', - debug_env: 'GALTZO_FLOSS_DEBUG' + gems: local_gems_to_eval, + prefix: "GALTZO_FLOSS", + path_env: "GALTZO_FLOSS_DEV", + vendored_gems_env: "GALTZO_FLOSS_VENDORED_GEMS", + vendor_gem_dir_env: "GALTZO_FLOSS_VENDOR_GEM_DIR", + debug_env: "GALTZO_FLOSS_DEBUG" ) diff --git a/gems/citrus-toml-merge/gemfiles/modular/erb/r2/v3.0.gemfile b/gems/citrus-toml-merge/gemfiles/modular/erb/r2/v3.0.gemfile index 7c83a239b..c03bd8d85 100644 --- a/gems/citrus-toml-merge/gemfiles/modular/erb/r2/v3.0.gemfile +++ b/gems/citrus-toml-merge/gemfiles/modular/erb/r2/v3.0.gemfile @@ -1 +1 @@ -gem 'erb', '~> 3.0' # ruby >= 2.7.0 +gem "erb", "~> 3.0" # ruby >= 2.7.0 diff --git a/gems/citrus-toml-merge/gemfiles/modular/erb/r3/v5.0.gemfile b/gems/citrus-toml-merge/gemfiles/modular/erb/r3/v5.0.gemfile index 0e3bf1b97..1bd029cc1 100644 --- a/gems/citrus-toml-merge/gemfiles/modular/erb/r3/v5.0.gemfile +++ b/gems/citrus-toml-merge/gemfiles/modular/erb/r3/v5.0.gemfile @@ -1 +1 @@ -gem 'erb', '~> 6.0', '>= 6.0.4' # ruby >= 3.2.0 +gem "erb", "~> 6.0", ">= 6.0.6" # ruby >= 3.2.0 diff --git a/gems/citrus-toml-merge/gemfiles/modular/erb/r4/v5.0.gemfile b/gems/citrus-toml-merge/gemfiles/modular/erb/r4/v5.0.gemfile index 0e3bf1b97..1bd029cc1 100644 --- a/gems/citrus-toml-merge/gemfiles/modular/erb/r4/v5.0.gemfile +++ b/gems/citrus-toml-merge/gemfiles/modular/erb/r4/v5.0.gemfile @@ -1 +1 @@ -gem 'erb', '~> 6.0', '>= 6.0.4' # ruby >= 3.2.0 +gem "erb", "~> 6.0", ">= 6.0.6" # ruby >= 3.2.0 diff --git a/gems/citrus-toml-merge/gemfiles/modular/erb/vHEAD.gemfile b/gems/citrus-toml-merge/gemfiles/modular/erb/vHEAD.gemfile index ea0101185..48fee4218 100644 --- a/gems/citrus-toml-merge/gemfiles/modular/erb/vHEAD.gemfile +++ b/gems/citrus-toml-merge/gemfiles/modular/erb/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 3.2 -gem 'erb', github: 'ruby/erb', branch: 'master' +gem "erb", github: "ruby/erb", branch: "master" diff --git a/gems/citrus-toml-merge/gemfiles/modular/json/truffleruby_22_3.gemfile b/gems/citrus-toml-merge/gemfiles/modular/json/truffleruby_22_3.gemfile new file mode 100644 index 000000000..b0e69ab11 --- /dev/null +++ b/gems/citrus-toml-merge/gemfiles/modular/json/truffleruby_22_3.gemfile @@ -0,0 +1,6 @@ +# frozen_string_literal: true + +if RUBY_ENGINE == "truffleruby" && RUBY_ENGINE_VERSION.start_with?("22.3") + # TruffleRuby 22.3 ships the json default gem from its emulated MRI Ruby. + gem "json", "= 2.5.1" +end diff --git a/gems/citrus-toml-merge/gemfiles/modular/json/truffleruby_23_0.gemfile b/gems/citrus-toml-merge/gemfiles/modular/json/truffleruby_23_0.gemfile new file mode 100644 index 000000000..7b2660a2b --- /dev/null +++ b/gems/citrus-toml-merge/gemfiles/modular/json/truffleruby_23_0.gemfile @@ -0,0 +1,6 @@ +# frozen_string_literal: true + +if RUBY_ENGINE == "truffleruby" && RUBY_ENGINE_VERSION.start_with?("23.0") + # TruffleRuby 23.0 ships the json default gem from its emulated MRI Ruby. + gem "json", "= 2.6.1" +end diff --git a/gems/citrus-toml-merge/gemfiles/modular/json/truffleruby_23_1.gemfile b/gems/citrus-toml-merge/gemfiles/modular/json/truffleruby_23_1.gemfile new file mode 100644 index 000000000..dfa21f2e4 --- /dev/null +++ b/gems/citrus-toml-merge/gemfiles/modular/json/truffleruby_23_1.gemfile @@ -0,0 +1,6 @@ +# frozen_string_literal: true + +if RUBY_ENGINE == "truffleruby" && RUBY_ENGINE_VERSION.start_with?("23.1") + # TruffleRuby 23.1 ships the json default gem from its emulated MRI Ruby. + gem "json", "= 2.6.3" +end diff --git a/gems/citrus-toml-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile b/gems/citrus-toml-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile index e27f1bbae..42e9d9bd4 100644 --- a/gems/citrus-toml-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile +++ b/gems/citrus-toml-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 -gem 'mutex_m', '~> 0.2' +gem "mutex_m", "~> 0.2" diff --git a/gems/citrus-toml-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile b/gems/citrus-toml-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile index e27f1bbae..42e9d9bd4 100644 --- a/gems/citrus-toml-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile +++ b/gems/citrus-toml-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 -gem 'mutex_m', '~> 0.2' +gem "mutex_m", "~> 0.2" diff --git a/gems/citrus-toml-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile b/gems/citrus-toml-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile index e27f1bbae..42e9d9bd4 100644 --- a/gems/citrus-toml-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile +++ b/gems/citrus-toml-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 -gem 'mutex_m', '~> 0.2' +gem "mutex_m", "~> 0.2" diff --git a/gems/citrus-toml-merge/gemfiles/modular/mutex_m/vHEAD.gemfile b/gems/citrus-toml-merge/gemfiles/modular/mutex_m/vHEAD.gemfile index 9dac2f6cb..8af3b6fca 100644 --- a/gems/citrus-toml-merge/gemfiles/modular/mutex_m/vHEAD.gemfile +++ b/gems/citrus-toml-merge/gemfiles/modular/mutex_m/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 (dependency of omniauth) -gem 'mutex_m', github: 'ruby/mutex_m', branch: 'master' +gem "mutex_m", github: "ruby/mutex_m", branch: "master" diff --git a/gems/citrus-toml-merge/gemfiles/modular/optional.gemfile b/gems/citrus-toml-merge/gemfiles/modular/optional.gemfile index a882197e1..80bc45196 100644 --- a/gems/citrus-toml-merge/gemfiles/modular/optional.gemfile +++ b/gems/citrus-toml-merge/gemfiles/modular/optional.gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -# To retain during citrus-toml-merge templating: +# To retain during kettle-jem templating: # kettle-jem:freeze # # ... your code # kettle-jem:unfreeze @@ -9,9 +9,8 @@ # Optional dependencies are not depended on directly, but may be used if present. # Required for curated binstubs generated by kettle-jem install -gem 'rbs', '>= 3.0', require: false # ruby >= 3.1 -gem 'stone_checksums', '~> 1.0', '>= 1.0.3', require: false # ruby >= 2.2 +gem "rbs", ">= 3.0", require: false # ruby >= 3.1 # Required for kettle-pre-release # URL parsing with Unicode support (falls back to URI if not available) -gem 'addressable', '>= 2.8', '< 3' # ruby >= 2.2 +gem "addressable", ">= 2.8", "< 3" # ruby >= 2.2 diff --git a/gems/citrus-toml-merge/gemfiles/modular/rspec.gemfile b/gems/citrus-toml-merge/gemfiles/modular/rspec.gemfile index 2af210a41..72fdf8b7f 100644 --- a/gems/citrus-toml-merge/gemfiles/modular/rspec.gemfile +++ b/gems/citrus-toml-merge/gemfiles/modular/rspec.gemfile @@ -1,4 +1,4 @@ -gem 'rspec_junit_formatter', - github: 'pboling/rspec_junit_formatter', - branch: 'main', - ref: '9e6bcaaedd49477b62878ed568dc4ada5cc7cb5e' +gem "rspec_junit_formatter", + github: "pboling/rspec_junit_formatter", + branch: "main", + ref: "9e6bcaaedd49477b62878ed568dc4ada5cc7cb5e" diff --git a/gems/citrus-toml-merge/gemfiles/modular/runtime_heads.gemfile b/gems/citrus-toml-merge/gemfiles/modular/runtime_heads.gemfile index 889fad33e..02f134c7f 100644 --- a/gems/citrus-toml-merge/gemfiles/modular/runtime_heads.gemfile +++ b/gems/citrus-toml-merge/gemfiles/modular/runtime_heads.gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -# To retain during citrus-toml-merge templating: +# To retain during kettle-jem templating: # kettle-jem:freeze # # ... your code # kettle-jem:unfreeze @@ -8,7 +8,4 @@ # Test against HEAD of runtime dependencies so we can proactively file bugs -# Ruby >= 2.2 -gem 'version_gem', github: 'ruby-oauth/version_gem', branch: 'main' - -eval_gemfile('x_std_libs/vHEAD.gemfile') +eval_gemfile("x_std_libs/vHEAD.gemfile") diff --git a/gems/citrus-toml-merge/gemfiles/modular/stringio/r2/v3.0.gemfile b/gems/citrus-toml-merge/gemfiles/modular/stringio/r2/v3.0.gemfile index 3616f4e3a..e85bb18ee 100644 --- a/gems/citrus-toml-merge/gemfiles/modular/stringio/r2/v3.0.gemfile +++ b/gems/citrus-toml-merge/gemfiles/modular/stringio/r2/v3.0.gemfile @@ -2,4 +2,4 @@ # NOT SEMVER # Version 3.0.7 dropped support for Ruby <= 2.7 # Version 3.0.0 dropped support for Ruby <= 2.4 -gem 'stringio', '>= 3.0' +gem "stringio", ">= 3.0" diff --git a/gems/citrus-toml-merge/gemfiles/modular/stringio/r3/v3.0.gemfile b/gems/citrus-toml-merge/gemfiles/modular/stringio/r3/v3.0.gemfile index 3616f4e3a..e85bb18ee 100644 --- a/gems/citrus-toml-merge/gemfiles/modular/stringio/r3/v3.0.gemfile +++ b/gems/citrus-toml-merge/gemfiles/modular/stringio/r3/v3.0.gemfile @@ -2,4 +2,4 @@ # NOT SEMVER # Version 3.0.7 dropped support for Ruby <= 2.7 # Version 3.0.0 dropped support for Ruby <= 2.4 -gem 'stringio', '>= 3.0' +gem "stringio", ">= 3.0" diff --git a/gems/citrus-toml-merge/gemfiles/modular/stringio/r4/v3.0.gemfile b/gems/citrus-toml-merge/gemfiles/modular/stringio/r4/v3.0.gemfile index 3616f4e3a..e85bb18ee 100644 --- a/gems/citrus-toml-merge/gemfiles/modular/stringio/r4/v3.0.gemfile +++ b/gems/citrus-toml-merge/gemfiles/modular/stringio/r4/v3.0.gemfile @@ -2,4 +2,4 @@ # NOT SEMVER # Version 3.0.7 dropped support for Ruby <= 2.7 # Version 3.0.0 dropped support for Ruby <= 2.4 -gem 'stringio', '>= 3.0' +gem "stringio", ">= 3.0" diff --git a/gems/citrus-toml-merge/gemfiles/modular/stringio/vHEAD.gemfile b/gems/citrus-toml-merge/gemfiles/modular/stringio/vHEAD.gemfile index 78f5f5d8a..5f2a74126 100644 --- a/gems/citrus-toml-merge/gemfiles/modular/stringio/vHEAD.gemfile +++ b/gems/citrus-toml-merge/gemfiles/modular/stringio/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 (dependency of omniauth) -gem 'stringio', github: 'ruby/stringio', branch: 'master' +gem "stringio", github: "ruby/stringio", branch: "master" diff --git a/gems/citrus-toml-merge/gemfiles/modular/style.gemfile b/gems/citrus-toml-merge/gemfiles/modular/style.gemfile index 73b898465..35de4dcd6 100644 --- a/gems/citrus-toml-merge/gemfiles/modular/style.gemfile +++ b/gems/citrus-toml-merge/gemfiles/modular/style.gemfile @@ -1,28 +1,31 @@ # frozen_string_literal: true -# To retain during citrus-toml-merge templating: +# To retain during kettle-jem templating: # kettle-jem:freeze # # ... your code # kettle-jem:unfreeze # -# We run rubocop on the latest version of Ruby, -# but in support of the oldest supported version of Ruby +# Style tasks run on the latest Ruby; RuboCop-LTS selects the compatibility +# rules for the configured Ruby floor independently from task dependency floors. -gem 'reek', '~> 6.5' +gem "reek", "~> 6.5", ">= 6.5.0" platform :mri do - gem 'rubocop-on-rbs', '~> 2.0' # ruby >= 3.2.0 + gem "appraisal2-rubocop", "~> 1.0", ">= 1.0.0", require: false + gem "rubocop-gradual", "~> 0.4", ">= 0.4.0" + gem "rubocop-minitest", "~> 0.40", ">= 0.40.0" + gem "rubocop-on-rbs", "~> 2.0", ">= 2.0.0" # ruby >= 3.2.0 # gem "rubocop", "~> 1.73", ">= 1.73.2" # constrained by standard - gem 'rubocop-packaging', '~> 0.6', '>= 0.6.0' - gem 'standard', '>= 1.50' + gem "rubocop-packaging", "~> 0.6", ">= 0.6.0" + gem "standard", "~> 1.56", ">= 1.56.0" - if ENV.fetch('RUBOCOP_LTS_LOCAL', 'false').casecmp('false').zero? - gem 'rubocop-lts', '~> 24.1.0' - # "rubocop-lts-rspec" can't add here until other gems are updated. - gem 'rubocop-rspec', '~> 3.6' - gem 'rubocop-ruby3_2', '~> 3.0.0' + if ENV.fetch("RUBOCOP_LTS_LOCAL", "false").casecmp("false").zero? + declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) + gem "rubocop-lts", "~> 24.2", ">= 24.2.1" unless declared_gems.include?("rubocop-lts") + gem "rubocop-lts-rspec", "~> 1.0", ">= 1.0.5" unless declared_gems.include?("rubocop-lts-rspec") + gem "rubocop-ruby3_2", "~> 3.0", ">= 3.0.6" unless declared_gems.include?("rubocop-ruby3_2") else - eval_gemfile('style_local.gemfile') + eval_gemfile("style_local.gemfile") end end diff --git a/gems/citrus-toml-merge/gemfiles/modular/style_local.gemfile b/gems/citrus-toml-merge/gemfiles/modular/style_local.gemfile index ce75bbe21..9a5e42dce 100644 --- a/gems/citrus-toml-merge/gemfiles/modular/style_local.gemfile +++ b/gems/citrus-toml-merge/gemfiles/modular/style_local.gemfile @@ -1,24 +1,48 @@ # frozen_string_literal: true -# We run rubocop on the latest version of Ruby, -# but in support of the oldest supported version of Ruby +# Style tasks run on the latest Ruby; RuboCop-LTS selects the compatibility +# rules for the configured Ruby floor independently from task dependency floors. # Local path overrides for development. # Loaded by the associated non-local gemfile when RUBOCOP_LTS_LOCAL != "false". -require 'nomono/bundler' unless defined?(Nomono) +# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. +# Bundler records that dependency during Gemfile evaluation, but it does not +# activate that exact version before the immediate `require "nomono/bundler"`. +# If multiple compatible nomono versions are installed, RubyGems may activate +# the newest installed version while Gemfile.lock pins an older compatible one; +# Bundler then aborts with "already activated nomono X, but your Gemfile +# requires nomono Y". Prefer the locked compatible version when present, then +# activate it explicitly before requiring the Bundler DSL extension used below. +nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] +nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) +if File.file?(nomono_lockfile) + nomono_locked_spec = Bundler::LockfileParser + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == "nomono" } + nomono_locked = nomono_locked_spec && + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + if nomono_locked + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] + end +end +Kernel.send(:gem, "nomono", *nomono_activation_requirements) +require "nomono/bundler" local_gems = %w[rubocop-lts rubocop-lts-rspec rubocop-ruby3_2 standard-rubocop-lts] +declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) +local_gems_to_eval = local_gems - %w[citrus-toml-merge] - declared_gems # export VENDORED_GEMS=rubocop-lts,rubocop-lts-rspec,rubocop-ruby3_2,standard-rubocop-lts platform :mri do eval_nomono_gems( - gems: local_gems, - prefix: 'RUBOCOP_LTS', - path_env: 'RUBOCOP_LTS_LOCAL', - vendored_gems_env: 'VENDORED_GEMS', - vendor_gem_dir_env: 'VENDOR_GEM_DIR', - debug_env: 'RUBOCOP_LTS_DEBUG', - root: %w[src rubocop-lts] + gems: local_gems_to_eval, + prefix: "RUBOCOP_LTS", + path_env: "RUBOCOP_LTS_LOCAL", + vendored_gems_env: "VENDORED_GEMS", + vendor_gem_dir_env: "VENDOR_GEM_DIR", + debug_env: "RUBOCOP_LTS_DEBUG", + root: ["src", "rubocop-lts"] ) end diff --git a/gems/citrus-toml-merge/gemfiles/modular/templating.gemfile b/gems/citrus-toml-merge/gemfiles/modular/templating.gemfile index 2ddc9433f..47138ffbb 100644 --- a/gems/citrus-toml-merge/gemfiles/modular/templating.gemfile +++ b/gems/citrus-toml-merge/gemfiles/modular/templating.gemfile @@ -1,24 +1,24 @@ # frozen_string_literal: true -structuredmerge_remote = ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false').zero? -kettle_remote = ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? +structuredmerge_remote = ENV.fetch("STRUCTUREDMERGE_DEV", "false").casecmp("false").zero? +kettle_remote = ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false").zero? if structuredmerge_remote # Parser dependencies for released installs. - gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' + gem "tree_sitter_language_pack", "~> 1.13", ">= 1.13.3" # Merge recipes for released installs. - gem 'kettle-jem', '>= 7.0' + gem "kettle-jem", ">= 7.0" end if kettle_remote # Template/plugin checks for released installs. - gem 'kettle-drift', '~> 1.0', '>= 1.0.5', require: false + gem "kettle-drift", "~> 1.0", ">= 1.0.6", require: false end # Set STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local development with path-based dependencies. # When false (default / CI), released kettle-jem brings merge gems and parser dependencies. # Local path overrides bring the same dependencies from sibling gemspecs. # -# Set KETTLE_DEV_DEV=/path/to/kettle-rb for local development with Kettle plugin gems. +# Set KETTLE_DEV_DEV=/path/to/my for local development with Kettle plugin gems. # When false (default / CI), released Kettle plugin gems are used. -eval_gemfile 'templating_local.gemfile' unless structuredmerge_remote && kettle_remote +eval_gemfile "templating_local.gemfile" unless structuredmerge_remote && kettle_remote diff --git a/gems/citrus-toml-merge/gemfiles/modular/templating_local.gemfile b/gems/citrus-toml-merge/gemfiles/modular/templating_local.gemfile index a5e7c1b5b..cf4c4dd45 100644 --- a/gems/citrus-toml-merge/gemfiles/modular/templating_local.gemfile +++ b/gems/citrus-toml-merge/gemfiles/modular/templating_local.gemfile @@ -4,7 +4,29 @@ # Loaded by the associated non-local gemfile when STRUCTUREDMERGE_DEV or KETTLE_DEV_DEV # is not "false". -require 'nomono/bundler' unless defined?(Nomono) +# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. +# Bundler records that dependency during Gemfile evaluation, but it does not +# activate that exact version before the immediate `require "nomono/bundler"`. +# If multiple compatible nomono versions are installed, RubyGems may activate +# the newest installed version while Gemfile.lock pins an older compatible one; +# Bundler then aborts with "already activated nomono X, but your Gemfile +# requires nomono Y". Prefer the locked compatible version when present, then +# activate it explicitly before requiring the Bundler DSL extension used below. +nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] +nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) +if File.file?(nomono_lockfile) + nomono_locked_spec = Bundler::LockfileParser + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == "nomono" } + nomono_locked = nomono_locked_spec && + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + if nomono_locked + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] + end +end +Kernel.send(:gem, "nomono", *nomono_activation_requirements) +require "nomono/bundler" structuredmerge_local_gems = %w[ tree_haver @@ -47,25 +69,25 @@ structuredmerge_local_gems_to_eval = structuredmerge_local_gems - %w[citrus-toml kettle_dev_local_gems_to_eval = kettle_dev_local_gems - %w[citrus-toml-merge] - declared_gems platform :mri do - if ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false') != 0 + if ENV.fetch("STRUCTUREDMERGE_DEV", "false").casecmp("false") != 0 eval_nomono_gems( gems: structuredmerge_local_gems_to_eval, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - vendored_gems_env: 'VENDORED_GEMS', - vendor_gem_dir_env: 'VENDOR_GEM_DIR', - debug_env: 'STRUCTUREDMERGE_DEBUG' + prefix: "STRUCTUREDMERGE", + path_env: "STRUCTUREDMERGE_DEV", + vendored_gems_env: "VENDORED_GEMS", + vendor_gem_dir_env: "VENDOR_GEM_DIR", + debug_env: "STRUCTUREDMERGE_DEBUG" ) end - if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false') != 0 + if ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false") != 0 eval_nomono_gems( gems: kettle_dev_local_gems_to_eval, - prefix: 'KETTLE_DEV', - path_env: 'KETTLE_DEV_DEV', - vendored_gems_env: 'VENDORED_GEMS', - vendor_gem_dir_env: 'VENDOR_GEM_DIR', - debug_env: 'KETTLE_DEV_DEBUG' + prefix: "KETTLE_DEV", + path_env: "KETTLE_DEV_DEV", + vendored_gems_env: "VENDORED_GEMS", + vendor_gem_dir_env: "VENDOR_GEM_DIR", + debug_env: "KETTLE_DEV_DEBUG" ) end end diff --git a/gems/citrus-toml-merge/gemfiles/modular/webrick/r4/v1.9.gemfile b/gems/citrus-toml-merge/gemfiles/modular/webrick/r4/v1.9.gemfile new file mode 100644 index 000000000..eaab4a473 --- /dev/null +++ b/gems/citrus-toml-merge/gemfiles/modular/webrick/r4/v1.9.gemfile @@ -0,0 +1 @@ +gem "webrick", "~> 1.9" diff --git a/gems/citrus-toml-merge/gemfiles/modular/webrick/vHEAD.gemfile b/gems/citrus-toml-merge/gemfiles/modular/webrick/vHEAD.gemfile new file mode 100644 index 000000000..8a789b634 --- /dev/null +++ b/gems/citrus-toml-merge/gemfiles/modular/webrick/vHEAD.gemfile @@ -0,0 +1 @@ +gem "webrick", ">= 1.9" diff --git a/gems/citrus-toml-merge/gemfiles/modular/x_std_libs.gemfile b/gems/citrus-toml-merge/gemfiles/modular/x_std_libs.gemfile index b1f43c097..77aad43f2 100644 --- a/gems/citrus-toml-merge/gemfiles/modular/x_std_libs.gemfile +++ b/gems/citrus-toml-merge/gemfiles/modular/x_std_libs.gemfile @@ -1,12 +1,12 @@ ### Std Lib Extracted Gems ruby_version = Gem::Version.new(RUBY_VERSION) -if ruby_version >= Gem::Version.new('4.0') - eval_gemfile 'x_std_libs/r4/libs.gemfile' -elsif ruby_version >= Gem::Version.new('3.2') - eval_gemfile 'x_std_libs/r3/libs.gemfile' -elsif ruby_version >= Gem::Version.new('3.1') - eval_gemfile 'x_std_libs/r3.1/libs.gemfile' +if ruby_version >= Gem::Version.new("4.0") + eval_gemfile "x_std_libs/r4/libs.gemfile" +elsif ruby_version >= Gem::Version.new("3.2") + eval_gemfile "x_std_libs/r3/libs.gemfile" +elsif ruby_version >= Gem::Version.new("3.1") + eval_gemfile "x_std_libs/r3.1/libs.gemfile" else - eval_gemfile 'x_std_libs/r2/libs.gemfile' + eval_gemfile "x_std_libs/r2/libs.gemfile" end diff --git a/gems/citrus-toml-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile b/gems/citrus-toml-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile index 16a5e3d70..441c4f03a 100644 --- a/gems/citrus-toml-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile +++ b/gems/citrus-toml-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile @@ -1,3 +1,3 @@ -eval_gemfile '../../erb/r2/v3.0.gemfile' -eval_gemfile '../../mutex_m/r2/v0.3.gemfile' -eval_gemfile '../../stringio/r2/v3.0.gemfile' +eval_gemfile "../../erb/r2/v3.0.gemfile" +eval_gemfile "../../mutex_m/r2/v0.3.gemfile" +eval_gemfile "../../stringio/r2/v3.0.gemfile" diff --git a/gems/citrus-toml-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile b/gems/citrus-toml-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile index 220ff95c1..c293a3ddd 100644 --- a/gems/citrus-toml-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile +++ b/gems/citrus-toml-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile @@ -1,3 +1,3 @@ -eval_gemfile '../../erb/r3/v5.0.gemfile' -eval_gemfile '../../mutex_m/r3/v0.3.gemfile' -eval_gemfile '../../stringio/r3/v3.0.gemfile' +eval_gemfile "../../erb/r3/v5.0.gemfile" +eval_gemfile "../../mutex_m/r3/v0.3.gemfile" +eval_gemfile "../../stringio/r3/v3.0.gemfile" diff --git a/gems/citrus-toml-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile b/gems/citrus-toml-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile index bd4e884df..eb5574247 100644 --- a/gems/citrus-toml-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile +++ b/gems/citrus-toml-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile @@ -1,4 +1,6 @@ -eval_gemfile '../../erb/r4/v5.0.gemfile' -eval_gemfile '../../mutex_m/r4/v0.3.gemfile' -eval_gemfile '../../stringio/r4/v3.0.gemfile' -eval_gemfile '../../benchmark/r4/v0.5.gemfile' +eval_gemfile "../../erb/r4/v5.0.gemfile" +eval_gemfile "../../mutex_m/r4/v0.3.gemfile" +eval_gemfile "../../stringio/r4/v3.0.gemfile" +eval_gemfile "../../benchmark/r4/v0.5.gemfile" +eval_gemfile "../../cgi/r4/v0.5.gemfile" +eval_gemfile "../../webrick/r4/v1.9.gemfile" diff --git a/gems/citrus-toml-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile b/gems/citrus-toml-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile index 91f383c11..d4d5b16c9 100644 --- a/gems/citrus-toml-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile +++ b/gems/citrus-toml-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile @@ -1,4 +1,6 @@ -eval_gemfile '../erb/vHEAD.gemfile' -eval_gemfile '../mutex_m/vHEAD.gemfile' -eval_gemfile '../stringio/vHEAD.gemfile' -eval_gemfile '../benchmark/vHEAD.gemfile' +eval_gemfile "../erb/vHEAD.gemfile" +eval_gemfile "../mutex_m/vHEAD.gemfile" +eval_gemfile "../stringio/vHEAD.gemfile" +eval_gemfile "../benchmark/vHEAD.gemfile" +eval_gemfile "../cgi/vHEAD.gemfile" +eval_gemfile "../webrick/vHEAD.gemfile" diff --git a/gems/commonmarker-merge/.kettle-drift.lock b/gems/commonmarker-merge/.kettle-drift.lock index d28e306b0..bf85fa76f 100644 --- a/gems/commonmarker-merge/.kettle-drift.lock +++ b/gems/commonmarker-merge/.kettle-drift.lock @@ -52,14 +52,5 @@ 87 ] } - ], - "vendored_gems_env: 'VENDORED_GEMS',\nvendor_gem_dir_env: 'VENDOR_GEM_DIR',": [ - { - "file": "gemfiles/modular/templating_local.gemfile", - "lines": [ - 55, - 66 - ] - } ] } diff --git a/gems/commonmarker-merge/Gemfile.lock b/gems/commonmarker-merge/Gemfile.lock index f5ac6d9ba..80cc07aa6 100644 --- a/gems/commonmarker-merge/Gemfile.lock +++ b/gems/commonmarker-merge/Gemfile.lock @@ -6,6 +6,138 @@ PATH markdown-merge (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly + specs: + ast-crispr-markdown-markly (7.1.0) + ast-crispr (= 7.1.0) + markly-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism + specs: + ast-crispr-ruby-prism (7.1.0) + ast-crispr (= 7.1.0) + prism-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr + specs: + ast-crispr (7.1.0) + ast-merge (= 7.1.0) + service_actor (~> 3.9) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git + specs: + ast-merge-git (7.1.0) + ast-merge (= 7.1.0) + json-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge + specs: + ast-merge (7.1.0) + benchmark + token-resolver (~> 2.0, >= 2.0.4) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template + specs: + ast-template (7.1.0) + ast-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge + specs: + bash-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge + specs: + binary-merge (7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge + specs: + citrus-toml-merge (7.1.0) + toml-merge (= 7.1.0) + toml-rb (~> 4.1) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge + specs: + dotenv-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge + specs: + go-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge + specs: + json-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem + specs: + kettle-jem (7.1.0) + addressable (>= 2.8, < 3) + ast-crispr-markdown-markly (= 7.1.0) + ast-crispr-ruby-prism (= 7.1.0) + ast-merge (= 7.1.0) + bash-merge (= 7.1.0) + citrus-toml-merge (= 7.1.0) + commonmarker-merge (= 7.1.0) + dotenv-merge (= 7.1.0) + json-merge (= 7.1.0) + kettle-dev (~> 2.3, >= 2.3.5) + kettle-rb (~> 0.1, >= 0.1.4) + kramdown-merge (= 7.1.0) + markdown-merge (= 7.1.0) + markly-merge (= 7.1.0) + prism-merge (= 7.1.0) + psych-merge (= 7.1.0) + rbs (>= 3.10) + rbs-merge (= 7.1.0) + ruby-merge (= 7.1.0) + token-resolver (~> 2.0, >= 2.0.4) + toml-merge (= 7.1.0) + toml-rb (~> 4.2) + tree_haver (= 7.1.0) + yaml-merge (= 7.1.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge + specs: + kramdown-merge (7.1.0) + kramdown (~> 2.5) + markdown-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + PATH remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge specs: @@ -14,6 +146,142 @@ PATH tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge + specs: + markly-merge (7.1.0) + markdown-merge (= 7.1.0) + markly (~> 0.9) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge + specs: + parslet-toml-merge (7.1.0) + toml (~> 0.3) + toml-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge + specs: + plain-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge + specs: + prism-merge (7.1.0) + prism (~> 1.6) + ruby-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge + specs: + psych-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + yaml-merge (= 7.1.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge + specs: + rbs-merge (7.1.0) + ast-merge (= 7.1.0) + rbs (>= 3.10) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge + specs: + ruby-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge + specs: + rust-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb + specs: + smorg-rb (7.1.0) + ast-merge (= 7.1.0) + ast-merge-git (= 7.1.0) + go-merge (= 7.1.0) + json-merge (= 7.1.0) + kettle-jem (= 7.1.0) + markly-merge (= 7.1.0) + plain-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge + specs: + toml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver + specs: + tree_haver (7.1.0) + citrus (~> 3.0) + parslet (~> 2.0) + tree_sitter_language_pack (>= 1.13.2, < 2.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge + specs: + typescript-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge + specs: + yaml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge + specs: + zip-merge (7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /var/home/pboling/src/my/kettle-dev/kettle-drift + specs: + kettle-drift (1.0.6) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /var/home/pboling/src/my/kettle-dev/kettle-soup-cover + specs: + kettle-soup-cover (3.0.4) + kettle-wash (~> 0.1, >= 0.1.0) + simplecov (>= 1.0) + simplecov-cobertura (>= 4.0) + simplecov-console (~> 0.9, >= 0.9.5) + simplecov-rcov (~> 0.3, >= 0.3.7) + simplecov_lcov_formatter (~> 0.9, >= 0.9.0) + GEM remote: https://gem.coop/ specs: @@ -24,18 +292,18 @@ GEM bundler (>= 1.17.3) rake (>= 10) thor (>= 0.14) + appraisal2-rubocop (1.0.0) + appraisal2 (>= 3.1.4) + rubocop (>= 1.0) + version_gem (~> 1.1, >= 1.1.14) ast (2.4.3) - ast-merge (7.1.0) - benchmark - token-resolver (~> 2.0, >= 2.0.4) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) backports (3.25.3) benchmark (0.5.0) bigdecimal (4.1.2) bundler-audit (0.9.3) bundler (>= 1.2.0) thor (~> 1.0) + cgi (0.5.2) citrus (3.0.2) cmdparse (3.0.7) commonmarker (2.9.0-x86_64-linux) @@ -47,7 +315,6 @@ GEM delegate (0.6.1) diff-lcs (1.6.2) diffy (3.4.4) - docile (1.4.1) dry-configurable (1.4.0) dry-core (~> 1.0) zeitwerk (~> 2.6) @@ -78,7 +345,7 @@ GEM dry-logic (~> 1.4) zeitwerk (~> 2.6) emoji_regex (15.0.0) - erb (6.0.5) + erb (6.0.6) gem_bench (2.0.5) bundler (>= 1.14) version_gem (~> 1.1, >= 1.1.4) @@ -103,15 +370,6 @@ GEM kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) kettle-rb (0.1.4) - kettle-soup-cover (1.1.3) - simplecov (~> 0.22) - simplecov-cobertura (~> 3.0) - simplecov-console (~> 0.9, >= 0.9.3) - simplecov-html (~> 0.13, >= 0.13.1) - simplecov-lcov (~> 0.8) - simplecov-rcov (~> 0.3, >= 0.3.7) - simplecov_json_formatter (~> 0.1, >= 0.1.4) - version_gem (~> 1.1, >= 1.1.9) kettle-test (2.0.11) appraisal2 (~> 3.0, >= 3.0.6) backports (~> 3.0) @@ -123,6 +381,8 @@ GEM silent_stream (~> 1.0, >= 1.0.12) timecop-rspec (~> 1.0, >= 1.0.3) turbo_tests2 (~> 3.1, >= 3.1.12) + kettle-wash (0.1.1) + version_gem (~> 1.1, >= 1.1.14) kramdown (2.5.2) rexml (>= 3.4.4) kramdown-parser-gfm (1.1.0) @@ -130,6 +390,7 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) + markly (0.16.0) mutex_m (0.3.0) nokogiri (1.19.4-x86_64-linux-gnu) racc (~> 1.4) @@ -209,6 +470,14 @@ GEM rubocop-ast (1.50.0) parser (>= 3.3.7.2) prism (~> 1.7) + rubocop-capybara (2.23.0) + lint_roller (~> 1.1) + rubocop (~> 1.81) + rubocop-env (0.1.0) + rubocop + rubocop-factory_bot (2.28.0) + lint_roller (~> 1.1) + rubocop (~> 1.72, >= 1.72.1) rubocop-gradual (0.4.0) benchmark diff-lcs (>= 1.2.0, < 2.0) @@ -216,13 +485,26 @@ GEM parallel (~> 1.10) rainbow (>= 2.2.2, < 4.0) rubocop (~> 1.0) - rubocop-lts (24.1.0) - rubocop-ruby3_2 (>= 3.0.0, < 4) - standard-rubocop-lts (>= 2.0.2, < 3) - version_gem (>= 1.1.2, < 3) + rubocop-lts (24.2.2) + rubocop-ruby3_2 (~> 3.0, >= 3.0.1) + standard-rubocop-lts (~> 2.0, >= 2.0.3) + version_gem (~> 1.1, >= 1.1.13) + rubocop-lts-rspec (1.0.5) + rubocop (~> 1.84, >= 1.84.2) + rubocop-env (~> 0.1, >= 0.1.0) + rubocop-factory_bot (~> 2.28, >= 2.28.0) + rubocop-rspec (~> 3.9, >= 3.9.0) + rubocop-rspec-extra (~> 0.3, >= 0.3.0) + standard (~> 1.54, >= 1.54.0) + standard-rspec (~> 0.5, >= 0.5.0) + version_gem (~> 1.1, >= 1.1.13) rubocop-md (2.0.4) lint_roller (~> 1.1) rubocop (>= 1.72.1) + rubocop-minitest (0.40.0) + lint_roller (~> 1.1) + rubocop (>= 1.75.0, < 2.0) + rubocop-ast (>= 1.38.0, < 2.0) rubocop-on-rbs (2.0.0) lint_roller (~> 1.1) rbs (~> 4.0) @@ -242,6 +524,13 @@ GEM lint_roller (~> 1.1) regexp_parser (>= 2.0) rubocop (~> 1.86, >= 1.86.2) + rubocop-rspec-extra (0.3.0) + lint_roller (~> 1.1) + rubocop (>= 1.72.1, < 2.0) + rubocop-rspec_rails (2.32.0) + lint_roller (~> 1.1) + rubocop (~> 1.72, >= 1.72.1) + rubocop-rspec (~> 3.5) rubocop-ruby3_2 (3.0.7) rubocop-gradual (~> 0.3, >= 0.3.6) rubocop-md (~> 2.0, >= 2.0.4) @@ -256,25 +545,23 @@ GEM ruby-progressbar (1.13.0) ruby_engine (2.0.3) ruby_version (1.0.3) + service_actor (3.9.4) + zeitwerk (>= 1.0) silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) - simplecov (0.22.0) - docile (~> 1.1) - simplecov-html (~> 0.11) - simplecov_json_formatter (~> 0.1) - simplecov-cobertura (3.2.0) + simplecov (1.0.2) + simplecov-cobertura (4.0.0) rexml - simplecov (~> 0.19) + simplecov (~> 1.0) simplecov-console (0.9.5) ansi simplecov terminal-table - simplecov-html (0.13.2) - simplecov-lcov (0.9.0) simplecov-rcov (0.3.7) simplecov (>= 0.4.1) - simplecov_json_formatter (0.1.4) + simplecov_lcov_formatter (0.9.0) + simplecov (>= 0.18) sorbet-runtime (0.6.13347) standard (1.56.0) language_server-protocol (~> 3.17.0.2) @@ -288,6 +575,12 @@ GEM standard-performance (1.9.0) lint_roller (~> 1.1) rubocop-performance (~> 1.26.0) + standard-rspec (0.5.0) + lint_roller (>= 1.0) + rubocop-capybara (~> 2.23) + rubocop-factory_bot (~> 2.27) + rubocop-rspec (~> 3.9) + rubocop-rspec_rails (~> 2.31) standard-rubocop-lts (2.0.10) standard (~> 1.54, >= 1.54.0) standard-custom (~> 1.0, >= 1.0.2) @@ -308,11 +601,11 @@ GEM token-resolver (2.0.4) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.13) - tree_haver (7.1.0) - citrus (~> 3.0) - parslet (~> 2.0) - tree_sitter_language_pack (>= 1.13.2, < 2.0) - version_gem (~> 1.1, >= 1.1.9) + toml (0.3.0) + parslet (>= 1.8.0, < 3.0.0) + toml-rb (4.2.0) + citrus (~> 3.0, > 3.0) + racc (~> 1.7) tree_sitter_language_pack (1.13.3-x86_64-linux) sorbet-runtime (~> 0.5) tsort (0.2.0) @@ -324,6 +617,7 @@ GEM unicode-emoji (~> 4.1) unicode-emoji (4.2.0) version_gem (1.1.14) + webrick (1.9.2) yaml-converter (0.2.3) hexapdf (>= 1.8, < 2) kramdown (>= 2.4, < 3) @@ -356,56 +650,100 @@ PLATFORMS DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) + appraisal2-rubocop (~> 1.0, >= 1.0.0) + ast-crispr! + ast-crispr-markdown-markly! + ast-crispr-ruby-prism! + ast-merge! + ast-merge-git! + ast-template! + bash-merge! benchmark (~> 0.5, >= 0.5.0) + binary-merge! bundler-audit (~> 0.9.3) + cgi (~> 0.5) + citrus-toml-merge! commonmarker-merge! debug (>= 1.1) - erb (~> 6.0, >= 6.0.4) + dotenv-merge! + erb (~> 6.0, >= 6.0.6) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.0) + go-merge! irb (~> 1.17) + json-merge! kettle-dev (~> 2.0, >= 2.2.25) - kettle-soup-cover (~> 1.0, >= 1.1.3) + kettle-drift! + kettle-jem! + kettle-soup-cover! kettle-test (~> 2.0, >= 2.0.9) - kramdown (~> 2.5, >= 2.5.1) + kramdown (~> 2.5, >= 2.5.2) + kramdown-merge! kramdown-parser-gfm (~> 1.1) markdown-merge! + markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) + parslet-toml-merge! + plain-merge! + prism-merge! + psych-merge! rake (~> 13.0) rbs (>= 3.0) + rbs-merge! rdoc (~> 6.11) - reek (~> 6.5) + reek (~> 6.5, >= 6.5.0) require_bench (~> 1.0, >= 1.0.4) - rubocop-lts (~> 24.1.0) - rubocop-on-rbs (~> 2.0) + rubocop-gradual (~> 0.4, >= 0.4.0) + rubocop-lts (~> 24.2, >= 24.2.1) + rubocop-lts-rspec (~> 1.0, >= 1.0.5) + rubocop-minitest (~> 0.40, >= 0.40.0) + rubocop-on-rbs (~> 2.0, >= 2.0.0) rubocop-packaging (~> 0.6, >= 0.6.0) - rubocop-rspec (~> 3.6) - rubocop-ruby3_2 (~> 3.0.0) + rubocop-ruby3_2 (~> 3.0, >= 3.0.6) + ruby-merge! ruby-progressbar (~> 1.13) - standard (>= 1.50) + rust-merge! + smorg-rb! + standard (~> 1.56, >= 1.56.0) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) + toml-merge! + tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) - yaml-converter (~> 0.1) - yard (~> 0.9, >= 0.9.44) - yard-fence (~> 0.9, >= 0.9.1) + typescript-merge! + webrick (~> 1.9) + yaml-converter (~> 0.2, >= 0.2.3) + yaml-merge! + yard (~> 0.9, >= 0.9.45) + yard-fence (~> 0.9, >= 0.9.6) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) - yard-timekeeper (~> 0.1) - yard-yaml (~> 0.1, >= 0.1.2) + yard-timekeeper (~> 0.2, >= 0.2.4) + yard-yaml (~> 0.2, >= 0.2.3) + zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af ansi (1.6.0) sha256=ac9ea0c0ea8d32fb4e271348e609963ac78882f34b73836c2a02b3622e666658 appraisal2 (3.2.0) sha256=ccd0b767ac4060cd7af6d16747459b6990f49c39c7b4fb1f7d1146b1e97c492f + appraisal2-rubocop (1.0.0) sha256=b71410fbb014befda5340605a605b7f6f3f012739baf0acc5b4351b592c3258d ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 + ast-crispr (7.1.0) + ast-crispr-markdown-markly (7.1.0) + ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) + ast-merge-git (7.1.0) + ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 + bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd + binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 + cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 + citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 commonmarker (2.9.0-x86_64-linux) sha256=8cfe92970eef585a19ddf6613224b91cab64d6029834661bda801f877c9c7f43 commonmarker-merge (7.1.0) @@ -415,7 +753,7 @@ CHECKSUMS delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 - docile (1.4.1) sha256=96159be799bfa73cdb721b840e9802126e4e03dfc26863db73647204c727f21e + dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -424,24 +762,32 @@ CHECKSUMS dry-schema (1.16.0) sha256=cd3aaeabc0f1af66ec82a29096d4c4fb92a0a58b9dae29a22b1bbceb78985727 dry-types (1.9.1) sha256=baebeecdb9f8395d6c9d227b62011279440943e3ef2468fe8ccc1ba11467f178 emoji_regex (15.0.0) sha256=a508b2c0bee561169564e0aec96085020c900520d335e5533fd8e78e59493829 - erb (6.0.5) sha256=858e63488cb796c9daba8b6e9ff4b3879c395022049be9a66a8e00980e612eac + erb (6.0.6) sha256=a9b24986700f5bf127c4f297c5403c3ca41b83b0a316c0cd09a096b56e644ae5 gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f + go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 + json-merge (7.1.0) kettle-dev (2.3.7) sha256=eb370113cd030d03cbe2d33b31c99858951017e5ad21a17e9ed89dc3770028ee + kettle-drift (1.0.6) + kettle-jem (7.1.0) kettle-rb (0.1.4) sha256=9cef7ce4f7021666b7222292f29051e51eaf042e8a5db11f3f4dd72f74243fc1 - kettle-soup-cover (1.1.3) sha256=a373827da22a7131d093afd32945e5b7d7a10a01ebfdded8fd2cb8230d69c8ad + kettle-soup-cover (3.0.4) kettle-test (2.0.11) sha256=c710c90f7ab79d51f9452f0c09f5f90657e7a893f63583855c164d0b1b107ab2 + kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa + kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 markdown-merge (7.1.0) + markly (0.16.0) sha256=6f70d79e385b1efc9e171f74c81628826259039fe6c778e03c3924c71dac5511 + markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-x86_64-linux-gnu) sha256=379fae440b28915e3f19d752ce2dcf8465ed2b2fbefd2a7ca0dd497bc981a06a nomono (1.0.9) @@ -451,15 +797,20 @@ CHECKSUMS parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 + parslet-toml-merge (7.1.0) + plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 + prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 + psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 + rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb @@ -477,31 +828,41 @@ CHECKSUMS rspec_junit_formatter (0.6.0) sha256=40dde674e6ae4e6cc0ff560da25497677e34fefd2338cc467a8972f602b62b15 rubocop (1.88.2) sha256=8def251c90cd955feb4daa3edc0ab56893250c4ce90ef81e6c80c03f9a939bbf rubocop-ast (1.50.0) sha256=b9ca88300da0803ee222ad20cdb30494c0a784eed06fdc35d254b06d662788db + rubocop-capybara (2.23.0) sha256=f9ea1ba3a7561ee8e88cf76fc378ce517ce5327155f305ee7b5c2500e5aee357 + rubocop-env (0.1.0) sha256=5ab9a259e71822bf514c8e900a9b68cc2f74ccc87d5493efcd03213f3068e718 + rubocop-factory_bot (2.28.0) sha256=4b17fc02124444173317e131759d195b0d762844a71a29fe8139c1105d92f0cb rubocop-gradual (0.4.0) sha256=9c7e584e6fef6c2539266a193a4572c970c22f99046fd6b0305bdde6228f96ad - rubocop-lts (24.1.0) sha256=9dcad4db2da2fe2f1f77f98c917d70e7c43eded703da14cd201d4be52a9272aa + rubocop-lts (24.2.2) sha256=be6c745e1bb61daebd6af3cc3227c60f95be9f642a080773cad7df14c5f9f174 + rubocop-lts-rspec (1.0.5) sha256=439552fd27440802cc499889e013bffa28aadc41adae5d4dfff3d984a2a809b4 rubocop-md (2.0.4) sha256=0d076b6b5e99dea2ddc928c4bd702497decb9a8400da7808091e02ebcafcfb93 + rubocop-minitest (0.40.0) sha256=353c698199115f12151144cf0b5a96f69bb9d77b660cf6536df2c4250c672a9d rubocop-on-rbs (2.0.0) sha256=ce74d1b3d5daead19f4b611623656c185821dfc9aed9c7079bb1e5d7d7c464be rubocop-packaging (0.6.0) sha256=fb92bd0fb48e6f8cdb1648d2249b0cd51c2497dcc87340132d22f01edbf558a7 rubocop-performance (1.26.1) sha256=cd19b936ff196df85829d264b522fd4f98b6c89ad271fa52744a8c11b8f71834 rubocop-rake (0.7.1) sha256=3797f2b6810c3e9df7376c26d5f44f3475eda59eb1adc38e6f62ecf027cbae4d rubocop-rspec (3.10.2) sha256=0b3e2ecc592cd10ecbf0095bb58d1e357905276e069643523cc19eb7495f65e2 + rubocop-rspec-extra (0.3.0) sha256=ee4b6484d0332a0d23c4a465eeb607e41888eb3d4ed479f850b9f5212514f787 + rubocop-rspec_rails (2.32.0) sha256=4a0d641c72f6ebb957534f539d9d0a62c47abd8ce0d0aeee1ef4701e892a9100 rubocop-ruby3_2 (3.0.7) sha256=f53dd6d286fb05186214fc6ec116783e7f837030918e8931c05de773e98f8466 rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 + ruby-merge (7.1.0) ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 + rust-merge (7.1.0) + service_actor (3.9.4) sha256=e63b523630b9a7e62959b2a90113b08d2565b5de9c148557b281ef847c9539ce silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 - simplecov (0.22.0) sha256=fe2622c7834ff23b98066bb0a854284b2729a569ac659f82621fc22ef36213a5 - simplecov-cobertura (3.2.0) sha256=70d702658677fcb20e5aceb6915ccf8bc62ff2ccd38b62b3ad5c9db5c0888740 + simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 + simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 - simplecov-html (0.13.2) sha256=bd0b8e54e7c2d7685927e8d6286466359b6f16b18cb0df47b508e8d73c777246 - simplecov-lcov (0.9.0) sha256=7a77a31e200a595ed4b0249493056efd0c920601f53d2ef135ca34ee796346cd simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc - simplecov_json_formatter (0.1.4) sha256=529418fbe8de1713ac2b2d612aa3daa56d316975d307244399fa4838c601b428 + simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed + smorg-rb (7.1.0) sorbet-runtime (0.6.13347) sha256=54e7221d9f4b63f58aec79f3043752a9ba7810347c6ae0d903531591cc2d5f01 standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b standard-performance (1.9.0) sha256=49483d31be448292951d80e5e67cdcb576c2502103c7b40aec6f1b6e9c88e3f2 + standard-rspec (0.5.0) sha256=64d396524a65af47f5331b423d8cdd313e0267401647bb7892489ca89dad2973 standard-rubocop-lts (2.0.10) sha256=89708a505b7d8b24d2ac399a7520fcb9e764abc2ecb4289b631b5fe0e3b76617 stone_checksums (1.0.6) sha256=c775f830513d6c6ab26e31d1a5fbecd4c4e39002663d4d9f8fa96e97990b5298 stringio (3.2.0) sha256=c37cb2e58b4ffbd33fe5cd948c05934af997b36e0b6ca6fdf43afa234cf222e1 @@ -511,14 +872,20 @@ CHECKSUMS timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.4) sha256=33b926958f504525bba3ed511ab66fbcbf8ef30390815e931436b30f27ffcad0 + toml (0.3.0) sha256=0a91d0f76a9036e84e44f95693b12f58d358c1df3ac8e3b5271f2056ecc6e4b9 + toml-merge (7.1.0) + toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 + typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 + webrick (1.9.2) sha256=beb4a15fc474defed24a3bda4ffd88a490d517c9e4e6118c3edce59e45864131 yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 + yaml-merge (7.1.0) yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd @@ -526,6 +893,7 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 + zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH diff --git a/gems/commonmarker-merge/README.md b/gems/commonmarker-merge/README.md index e97e1bf91..f67864028 100644 --- a/gems/commonmarker-merge/README.md +++ b/gems/commonmarker-merge/README.md @@ -59,7 +59,7 @@ Section-local `replace_mode` / partial-template behavior still follows its own c | Tokens to Remember | [![Gem name][⛳️name-img]][⛳️gem-name] [![Gem namespace][⛳️namespace-img]][⛳️gem-namespace] | |-------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | Works with MRI Ruby 4 | [![Ruby current Compat][💎ruby-c-i]][🚎11-c-wf]| -| Support & Community | [![Join Me on Daily.dev's RubyFriends][✉️ruby-friends-img]][✉️ruby-friends] [![Live Chat on Discord][✉️discord-invite-img-ftb]][✉️discord-invite] [![Get help from me on Upwork][👨🏼‍🏫expsup-upwork-img]][👨🏼‍🏫expsup-upwork] [![Get help from me on Codementor][👨🏼‍🏫expsup-codementor-img]][👨🏼‍🏫expsup-codementor] | +| Support & Community | [![Join Me on Daily.dev's RubyFriends][✉️ruby-friends-img]][✉️ruby-friends] [![Get help from RubyForum][✉️ruby-forum-img]][✉️ruby-forum] [![Live Chat on Discord][✉️discord-invite-img-ftb]][✉️discord-invite] [![Get help from me on Upwork][👨🏼‍🏫expsup-upwork-img]][👨🏼‍🏫expsup-upwork] [![Get help from me on Codementor][👨🏼‍🏫expsup-codementor-img]][👨🏼‍🏫expsup-codementor] | | Source | [![Source on GitLab.com][📜src-gl-img]][📜src-gl] [![Source on CodeBerg.org][📜src-cb-img]][📜src-cb] [![Source on Github.com][📜src-gh-img]][📜src-gh] [![The best SHA: dQw4w9WgXcQ!][🧮kloc-img]][🧮kloc] | | Documentation | [![Current release on RubyDoc.info][📜docs-cr-rd-img]][🚎yard-current] [![YARD on Galtzo.com][📜docs-head-rd-img]][🚎yard-head] [![Maintainer Blog][🚂maint-blog-img]][🚂maint-blog] [![GitLab Wiki][📜gl-wiki-img]][📜gl-wiki] [![GitHub Wiki][📜gh-wiki-img]][📜gh-wiki] | | Compliance | [![License: AGPL-3.0-only OR PolyForm-Small-Business-1.0.0][📄license-img]][📄license] [![Apache license compatibility: Category X][📄license-compat-img]][📄license-compat] [![📄ilo-declaration-img]][📄ilo-declaration] [![Security Policy][🔐security-img]][🔐security] [![Contributor Covenant 2.1][🪇conduct-img]][🪇conduct] [![SemVer 2.0.0][📌semver-img]][📌semver] | @@ -417,6 +417,8 @@ If none of the available licenses suit your use case, please [contact us](mailto [✉️discord-invite-img-ftb]: https://img.shields.io/discord/1373797679469170758?style=for-the-badge&logo=discord [✉️ruby-friends-img]: https://img.shields.io/badge/daily.dev-%F0%9F%92%8E_Ruby_Friends-0A0A0A?style=for-the-badge&logo=dailydotdev&logoColor=white [✉️ruby-friends]: https://app.daily.dev/squads/rubyfriends +[✉️ruby-forum-img]: https://img.shields.io/badge/RubyForum-Help-CC342D?style=for-the-badge&logo=ruby&logoColor=white +[✉️ruby-forum]: https://www.rubyforum.org/c/help/8 [✇bundle-group-pattern]: https://gist.github.com/pboling/4564780 [⛳️gem-namespace]: https://github.com/structuredmerge/structuredmerge-ruby/tree/main/gems/commonmarker-merge [⛳️namespace-img]: https://img.shields.io/badge/namespace-Commonmarker::Merge-3C2D2D.svg?style=square&logo=ruby&logoColor=white diff --git a/gems/commonmarker-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile b/gems/commonmarker-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile index b8392fab0..dec650815 100644 --- a/gems/commonmarker-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile +++ b/gems/commonmarker-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.1 -gem 'benchmark', '~> 0.5', '>= 0.5.0' # Removed from Std Lib in Ruby 4.0 +gem "benchmark", "~> 0.5", ">= 0.5.0" # Removed from Std Lib in Ruby 4.0 diff --git a/gems/commonmarker-merge/gemfiles/modular/benchmark/vHEAD.gemfile b/gems/commonmarker-merge/gemfiles/modular/benchmark/vHEAD.gemfile index af214aafa..e1eb20c5e 100644 --- a/gems/commonmarker-merge/gemfiles/modular/benchmark/vHEAD.gemfile +++ b/gems/commonmarker-merge/gemfiles/modular/benchmark/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.1 -gem 'benchmark', github: 'ruby/benchmark', branch: 'master' +gem "benchmark", github: "ruby/benchmark", branch: "master" diff --git a/gems/commonmarker-merge/gemfiles/modular/cgi/r4/v0.5.gemfile b/gems/commonmarker-merge/gemfiles/modular/cgi/r4/v0.5.gemfile new file mode 100644 index 000000000..19ed967c3 --- /dev/null +++ b/gems/commonmarker-merge/gemfiles/modular/cgi/r4/v0.5.gemfile @@ -0,0 +1 @@ +gem "cgi", "~> 0.5" diff --git a/gems/commonmarker-merge/gemfiles/modular/cgi/vHEAD.gemfile b/gems/commonmarker-merge/gemfiles/modular/cgi/vHEAD.gemfile new file mode 100644 index 000000000..ef8b816ce --- /dev/null +++ b/gems/commonmarker-merge/gemfiles/modular/cgi/vHEAD.gemfile @@ -0,0 +1 @@ +gem "cgi", ">= 0.5" diff --git a/gems/commonmarker-merge/gemfiles/modular/coverage.gemfile b/gems/commonmarker-merge/gemfiles/modular/coverage.gemfile index f96d50954..52d737872 100644 --- a/gems/commonmarker-merge/gemfiles/modular/coverage.gemfile +++ b/gems/commonmarker-merge/gemfiles/modular/coverage.gemfile @@ -4,11 +4,11 @@ # Set KETTLE_DEV_DEV=true for local development with path-based dependencies. # When false (default / CI), remote released gems are used. -if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? +if ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false").zero? # Coverage (remote/released) platform :mri do - gem 'kettle-soup-cover', '~> 1.0', '>= 1.1.3', require: false + gem "kettle-soup-cover", "~> 3.0", ">= 3.0.3", require: false end else - eval_gemfile 'coverage_local.gemfile' + eval_gemfile "coverage_local.gemfile" end diff --git a/gems/commonmarker-merge/gemfiles/modular/coverage_local.gemfile b/gems/commonmarker-merge/gemfiles/modular/coverage_local.gemfile index 69fdff2b1..e9a2f446c 100644 --- a/gems/commonmarker-merge/gemfiles/modular/coverage_local.gemfile +++ b/gems/commonmarker-merge/gemfiles/modular/coverage_local.gemfile @@ -3,31 +3,53 @@ # Local path overrides for development. # Loaded by the associated non-local gemfile when KETTLE_DEV_DEV != "false". -require 'nomono/bundler' unless defined?(Nomono) +# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. +# Bundler records that dependency during Gemfile evaluation, but it does not +# activate that exact version before the immediate `require "nomono/bundler"`. +# If multiple compatible nomono versions are installed, RubyGems may activate +# the newest installed version while Gemfile.lock pins an older compatible one; +# Bundler then aborts with "already activated nomono X, but your Gemfile +# requires nomono Y". Prefer the locked compatible version when present, then +# activate it explicitly before requiring the Bundler DSL extension used below. +nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] +nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) +if File.file?(nomono_lockfile) + nomono_locked_spec = Bundler::LockfileParser + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == "nomono" } + nomono_locked = nomono_locked_spec && + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + if nomono_locked + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] + end +end +Kernel.send(:gem, "nomono", *nomono_activation_requirements) +require "nomono/bundler" local_gems = %w[kettle-dev kettle-test kettle-soup-cover kettle-drift] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) local_gems_to_eval = local_gems - %w[commonmarker-merge] - declared_gems -# export KETTLE_DEV_DEV=/path/to/kettle-rb +# export KETTLE_DEV_DEV=/path/to/my platform :mri do eval_nomono_gems( gems: local_gems_to_eval, - prefix: 'KETTLE_DEV', - path_env: 'KETTLE_DEV_DEV', - vendored_gems_env: 'VENDORED_GEMS', - vendor_gem_dir_env: 'VENDOR_GEM_DIR', - debug_env: 'KETTLE_DEV_DEBUG' + prefix: "KETTLE_DEV", + path_env: "KETTLE_DEV_DEV", + vendored_gems_env: "VENDORED_GEMS", + vendor_gem_dir_env: "VENDOR_GEM_DIR", + debug_env: "KETTLE_DEV_DEBUG" ) - if ENV.fetch('GALTZO_FLOSS_DEV', 'false').casecmp('false') != 0 + if ENV.fetch("GALTZO_FLOSS_DEV", "false").casecmp("false") != 0 eval_nomono_gems( gems: %w[turbo_tests2], - prefix: 'GALTZO_FLOSS', - path_env: 'GALTZO_FLOSS_DEV', - vendored_gems_env: 'GALTZO_FLOSS_VENDORED_GEMS', - vendor_gem_dir_env: 'GALTZO_FLOSS_VENDOR_GEM_DIR', - debug_env: 'GALTZO_FLOSS_DEBUG' + prefix: "GALTZO_FLOSS", + path_env: "GALTZO_FLOSS_DEV", + vendored_gems_env: "GALTZO_FLOSS_VENDORED_GEMS", + vendor_gem_dir_env: "GALTZO_FLOSS_VENDOR_GEM_DIR", + debug_env: "GALTZO_FLOSS_DEBUG" ) end end diff --git a/gems/commonmarker-merge/gemfiles/modular/debug.gemfile b/gems/commonmarker-merge/gemfiles/modular/debug.gemfile index eed8d4d1e..4e15b1a3a 100644 --- a/gems/commonmarker-merge/gemfiles/modular/debug.gemfile +++ b/gems/commonmarker-merge/gemfiles/modular/debug.gemfile @@ -13,10 +13,10 @@ platform :mri do # Debugging - Ensure ENV["DEBUG"] == "true" to use debuggers within spec suite # Use binding.break, binding.b, or debugger in code - gem 'debug', '>= 1.1' # ruby >= 2.7 + gem "debug", ">= 1.1" # ruby >= 2.7 # Dev Console - Binding.pry - Irb replacement # gem "pry", "~> 0.14" # ruby >= 2.0 end -gem 'gem_bench', '~> 2.0', '>= 2.0.5' +gem "gem_bench", "~> 2.0", ">= 2.0.5" diff --git a/gems/commonmarker-merge/gemfiles/modular/documentation.gemfile b/gems/commonmarker-merge/gemfiles/modular/documentation.gemfile index dff5cc108..d8215416e 100644 --- a/gems/commonmarker-merge/gemfiles/modular/documentation.gemfile +++ b/gems/commonmarker-merge/gemfiles/modular/documentation.gemfile @@ -7,20 +7,20 @@ # # Documentation -gem 'kramdown', '~> 2.5', '>= 2.5.1', require: false # Ruby >= 2.5 -gem 'kramdown-parser-gfm', '~> 1.1', require: false # Ruby >= 2.3 -gem 'yaml-converter', '~> 0.1', require: false # Ruby >= 3.2 -gem 'yard', '~> 0.9', '>= 0.9.44', require: false -gem 'yard-junk', '~> 0.1', '>= 0.1.0', require: false # Ruby >= 3.1 -gem 'yard-relative_markdown_links', '~> 0.6', require: false +gem "kramdown", "~> 2.5", ">= 2.5.2", require: false # Ruby >= 2.5 +gem "kramdown-parser-gfm", "~> 1.1", require: false # Ruby >= 2.3 +gem "yaml-converter", "~> 0.2", ">= 0.2.3", require: false # Ruby >= 3.2 +gem "yard", "~> 0.9", ">= 0.9.45", require: false +gem "yard-junk", "~> 0.1", ">= 0.1.0", require: false # Ruby >= 3.1 +gem "yard-relative_markdown_links", "~> 0.6", require: false -if ENV.fetch('GALTZO_FLOSS_DEV', 'false').casecmp('false').zero? - gem 'yard-fence', '~> 0.9', '>= 0.9.1', require: false # Ruby >= 3.2 - gem 'yard-timekeeper', '~> 0.1', require: false - gem 'yard-yaml', '~> 0.1', '>= 0.1.2', require: false +if ENV.fetch("GALTZO_FLOSS_DEV", "false").casecmp("false").zero? + gem "yard-fence", "~> 0.9", ">= 0.9.6", require: false # Ruby >= 3.2 + gem "yard-timekeeper", "~> 0.2", ">= 0.2.4", require: false + gem "yard-yaml", "~> 0.2", ">= 0.2.3", require: false else - eval_gemfile 'documentation_local.gemfile' + eval_gemfile "documentation_local.gemfile" end # Std Lib extractions -gem 'rdoc', '~> 6.11', require: false unless ENV.fetch('KJ_FRAMEWORK_MATRIX_GEM', '') == 'rdoc' +gem "rdoc", "~> 6.11", require: false unless ENV.fetch("KJ_FRAMEWORK_MATRIX_GEM", "") == "rdoc" diff --git a/gems/commonmarker-merge/gemfiles/modular/documentation_local.gemfile b/gems/commonmarker-merge/gemfiles/modular/documentation_local.gemfile index 4d4c2bd95..2c478d8c9 100644 --- a/gems/commonmarker-merge/gemfiles/modular/documentation_local.gemfile +++ b/gems/commonmarker-merge/gemfiles/modular/documentation_local.gemfile @@ -3,16 +3,40 @@ # Local path overrides for development. # Loaded by the associated non-local gemfile when GALTZO_FLOSS_DEV != "false". -require 'nomono/bundler' unless defined?(Nomono) +# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. +# Bundler records that dependency during Gemfile evaluation, but it does not +# activate that exact version before the immediate `require "nomono/bundler"`. +# If multiple compatible nomono versions are installed, RubyGems may activate +# the newest installed version while Gemfile.lock pins an older compatible one; +# Bundler then aborts with "already activated nomono X, but your Gemfile +# requires nomono Y". Prefer the locked compatible version when present, then +# activate it explicitly before requiring the Bundler DSL extension used below. +nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] +nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) +if File.file?(nomono_lockfile) + nomono_locked_spec = Bundler::LockfileParser + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == "nomono" } + nomono_locked = nomono_locked_spec && + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + if nomono_locked + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] + end +end +Kernel.send(:gem, "nomono", *nomono_activation_requirements) +require "nomono/bundler" local_gems = %w[yard-fence yard-timekeeper yard-yaml] +declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) +local_gems_to_eval = local_gems - %w[commonmarker-merge] - declared_gems # export GALTZO_FLOSS_DEV=/path/to/galtzo-floss eval_nomono_gems( - gems: local_gems, - prefix: 'GALTZO_FLOSS', - path_env: 'GALTZO_FLOSS_DEV', - vendored_gems_env: 'GALTZO_FLOSS_VENDORED_GEMS', - vendor_gem_dir_env: 'GALTZO_FLOSS_VENDOR_GEM_DIR', - debug_env: 'GALTZO_FLOSS_DEBUG' + gems: local_gems_to_eval, + prefix: "GALTZO_FLOSS", + path_env: "GALTZO_FLOSS_DEV", + vendored_gems_env: "GALTZO_FLOSS_VENDORED_GEMS", + vendor_gem_dir_env: "GALTZO_FLOSS_VENDOR_GEM_DIR", + debug_env: "GALTZO_FLOSS_DEBUG" ) diff --git a/gems/commonmarker-merge/gemfiles/modular/erb/r2/v3.0.gemfile b/gems/commonmarker-merge/gemfiles/modular/erb/r2/v3.0.gemfile index 7c83a239b..c03bd8d85 100644 --- a/gems/commonmarker-merge/gemfiles/modular/erb/r2/v3.0.gemfile +++ b/gems/commonmarker-merge/gemfiles/modular/erb/r2/v3.0.gemfile @@ -1 +1 @@ -gem 'erb', '~> 3.0' # ruby >= 2.7.0 +gem "erb", "~> 3.0" # ruby >= 2.7.0 diff --git a/gems/commonmarker-merge/gemfiles/modular/erb/r3/v5.0.gemfile b/gems/commonmarker-merge/gemfiles/modular/erb/r3/v5.0.gemfile index 0e3bf1b97..1bd029cc1 100644 --- a/gems/commonmarker-merge/gemfiles/modular/erb/r3/v5.0.gemfile +++ b/gems/commonmarker-merge/gemfiles/modular/erb/r3/v5.0.gemfile @@ -1 +1 @@ -gem 'erb', '~> 6.0', '>= 6.0.4' # ruby >= 3.2.0 +gem "erb", "~> 6.0", ">= 6.0.6" # ruby >= 3.2.0 diff --git a/gems/commonmarker-merge/gemfiles/modular/erb/r4/v5.0.gemfile b/gems/commonmarker-merge/gemfiles/modular/erb/r4/v5.0.gemfile index 0e3bf1b97..1bd029cc1 100644 --- a/gems/commonmarker-merge/gemfiles/modular/erb/r4/v5.0.gemfile +++ b/gems/commonmarker-merge/gemfiles/modular/erb/r4/v5.0.gemfile @@ -1 +1 @@ -gem 'erb', '~> 6.0', '>= 6.0.4' # ruby >= 3.2.0 +gem "erb", "~> 6.0", ">= 6.0.6" # ruby >= 3.2.0 diff --git a/gems/commonmarker-merge/gemfiles/modular/erb/vHEAD.gemfile b/gems/commonmarker-merge/gemfiles/modular/erb/vHEAD.gemfile index ea0101185..48fee4218 100644 --- a/gems/commonmarker-merge/gemfiles/modular/erb/vHEAD.gemfile +++ b/gems/commonmarker-merge/gemfiles/modular/erb/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 3.2 -gem 'erb', github: 'ruby/erb', branch: 'master' +gem "erb", github: "ruby/erb", branch: "master" diff --git a/gems/commonmarker-merge/gemfiles/modular/json/truffleruby_22_3.gemfile b/gems/commonmarker-merge/gemfiles/modular/json/truffleruby_22_3.gemfile new file mode 100644 index 000000000..b0e69ab11 --- /dev/null +++ b/gems/commonmarker-merge/gemfiles/modular/json/truffleruby_22_3.gemfile @@ -0,0 +1,6 @@ +# frozen_string_literal: true + +if RUBY_ENGINE == "truffleruby" && RUBY_ENGINE_VERSION.start_with?("22.3") + # TruffleRuby 22.3 ships the json default gem from its emulated MRI Ruby. + gem "json", "= 2.5.1" +end diff --git a/gems/commonmarker-merge/gemfiles/modular/json/truffleruby_23_0.gemfile b/gems/commonmarker-merge/gemfiles/modular/json/truffleruby_23_0.gemfile new file mode 100644 index 000000000..7b2660a2b --- /dev/null +++ b/gems/commonmarker-merge/gemfiles/modular/json/truffleruby_23_0.gemfile @@ -0,0 +1,6 @@ +# frozen_string_literal: true + +if RUBY_ENGINE == "truffleruby" && RUBY_ENGINE_VERSION.start_with?("23.0") + # TruffleRuby 23.0 ships the json default gem from its emulated MRI Ruby. + gem "json", "= 2.6.1" +end diff --git a/gems/commonmarker-merge/gemfiles/modular/json/truffleruby_23_1.gemfile b/gems/commonmarker-merge/gemfiles/modular/json/truffleruby_23_1.gemfile new file mode 100644 index 000000000..dfa21f2e4 --- /dev/null +++ b/gems/commonmarker-merge/gemfiles/modular/json/truffleruby_23_1.gemfile @@ -0,0 +1,6 @@ +# frozen_string_literal: true + +if RUBY_ENGINE == "truffleruby" && RUBY_ENGINE_VERSION.start_with?("23.1") + # TruffleRuby 23.1 ships the json default gem from its emulated MRI Ruby. + gem "json", "= 2.6.3" +end diff --git a/gems/commonmarker-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile b/gems/commonmarker-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile index e27f1bbae..42e9d9bd4 100644 --- a/gems/commonmarker-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile +++ b/gems/commonmarker-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 -gem 'mutex_m', '~> 0.2' +gem "mutex_m", "~> 0.2" diff --git a/gems/commonmarker-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile b/gems/commonmarker-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile index e27f1bbae..42e9d9bd4 100644 --- a/gems/commonmarker-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile +++ b/gems/commonmarker-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 -gem 'mutex_m', '~> 0.2' +gem "mutex_m", "~> 0.2" diff --git a/gems/commonmarker-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile b/gems/commonmarker-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile index e27f1bbae..42e9d9bd4 100644 --- a/gems/commonmarker-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile +++ b/gems/commonmarker-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 -gem 'mutex_m', '~> 0.2' +gem "mutex_m", "~> 0.2" diff --git a/gems/commonmarker-merge/gemfiles/modular/mutex_m/vHEAD.gemfile b/gems/commonmarker-merge/gemfiles/modular/mutex_m/vHEAD.gemfile index 9dac2f6cb..8af3b6fca 100644 --- a/gems/commonmarker-merge/gemfiles/modular/mutex_m/vHEAD.gemfile +++ b/gems/commonmarker-merge/gemfiles/modular/mutex_m/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 (dependency of omniauth) -gem 'mutex_m', github: 'ruby/mutex_m', branch: 'master' +gem "mutex_m", github: "ruby/mutex_m", branch: "master" diff --git a/gems/commonmarker-merge/gemfiles/modular/optional.gemfile b/gems/commonmarker-merge/gemfiles/modular/optional.gemfile index 99a0a238e..80bc45196 100644 --- a/gems/commonmarker-merge/gemfiles/modular/optional.gemfile +++ b/gems/commonmarker-merge/gemfiles/modular/optional.gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -# To retain during commonmarker-merge templating: +# To retain during kettle-jem templating: # kettle-jem:freeze # # ... your code # kettle-jem:unfreeze @@ -9,9 +9,8 @@ # Optional dependencies are not depended on directly, but may be used if present. # Required for curated binstubs generated by kettle-jem install -gem 'rbs', '>= 3.0', require: false # ruby >= 3.1 -gem 'stone_checksums', '~> 1.0', '>= 1.0.3', require: false # ruby >= 2.2 +gem "rbs", ">= 3.0", require: false # ruby >= 3.1 # Required for kettle-pre-release # URL parsing with Unicode support (falls back to URI if not available) -gem 'addressable', '>= 2.8', '< 3' # ruby >= 2.2 +gem "addressable", ">= 2.8", "< 3" # ruby >= 2.2 diff --git a/gems/commonmarker-merge/gemfiles/modular/rspec.gemfile b/gems/commonmarker-merge/gemfiles/modular/rspec.gemfile index 2af210a41..72fdf8b7f 100644 --- a/gems/commonmarker-merge/gemfiles/modular/rspec.gemfile +++ b/gems/commonmarker-merge/gemfiles/modular/rspec.gemfile @@ -1,4 +1,4 @@ -gem 'rspec_junit_formatter', - github: 'pboling/rspec_junit_formatter', - branch: 'main', - ref: '9e6bcaaedd49477b62878ed568dc4ada5cc7cb5e' +gem "rspec_junit_formatter", + github: "pboling/rspec_junit_formatter", + branch: "main", + ref: "9e6bcaaedd49477b62878ed568dc4ada5cc7cb5e" diff --git a/gems/commonmarker-merge/gemfiles/modular/runtime_heads.gemfile b/gems/commonmarker-merge/gemfiles/modular/runtime_heads.gemfile index 10d179e46..02f134c7f 100644 --- a/gems/commonmarker-merge/gemfiles/modular/runtime_heads.gemfile +++ b/gems/commonmarker-merge/gemfiles/modular/runtime_heads.gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -# To retain during commonmarker-merge templating: +# To retain during kettle-jem templating: # kettle-jem:freeze # # ... your code # kettle-jem:unfreeze @@ -8,7 +8,4 @@ # Test against HEAD of runtime dependencies so we can proactively file bugs -# Ruby >= 2.2 -gem 'version_gem', github: 'ruby-oauth/version_gem', branch: 'main' - -eval_gemfile('x_std_libs/vHEAD.gemfile') +eval_gemfile("x_std_libs/vHEAD.gemfile") diff --git a/gems/commonmarker-merge/gemfiles/modular/stringio/r2/v3.0.gemfile b/gems/commonmarker-merge/gemfiles/modular/stringio/r2/v3.0.gemfile index 3616f4e3a..e85bb18ee 100644 --- a/gems/commonmarker-merge/gemfiles/modular/stringio/r2/v3.0.gemfile +++ b/gems/commonmarker-merge/gemfiles/modular/stringio/r2/v3.0.gemfile @@ -2,4 +2,4 @@ # NOT SEMVER # Version 3.0.7 dropped support for Ruby <= 2.7 # Version 3.0.0 dropped support for Ruby <= 2.4 -gem 'stringio', '>= 3.0' +gem "stringio", ">= 3.0" diff --git a/gems/commonmarker-merge/gemfiles/modular/stringio/r3/v3.0.gemfile b/gems/commonmarker-merge/gemfiles/modular/stringio/r3/v3.0.gemfile index 3616f4e3a..e85bb18ee 100644 --- a/gems/commonmarker-merge/gemfiles/modular/stringio/r3/v3.0.gemfile +++ b/gems/commonmarker-merge/gemfiles/modular/stringio/r3/v3.0.gemfile @@ -2,4 +2,4 @@ # NOT SEMVER # Version 3.0.7 dropped support for Ruby <= 2.7 # Version 3.0.0 dropped support for Ruby <= 2.4 -gem 'stringio', '>= 3.0' +gem "stringio", ">= 3.0" diff --git a/gems/commonmarker-merge/gemfiles/modular/stringio/r4/v3.0.gemfile b/gems/commonmarker-merge/gemfiles/modular/stringio/r4/v3.0.gemfile index 3616f4e3a..e85bb18ee 100644 --- a/gems/commonmarker-merge/gemfiles/modular/stringio/r4/v3.0.gemfile +++ b/gems/commonmarker-merge/gemfiles/modular/stringio/r4/v3.0.gemfile @@ -2,4 +2,4 @@ # NOT SEMVER # Version 3.0.7 dropped support for Ruby <= 2.7 # Version 3.0.0 dropped support for Ruby <= 2.4 -gem 'stringio', '>= 3.0' +gem "stringio", ">= 3.0" diff --git a/gems/commonmarker-merge/gemfiles/modular/stringio/vHEAD.gemfile b/gems/commonmarker-merge/gemfiles/modular/stringio/vHEAD.gemfile index 78f5f5d8a..5f2a74126 100644 --- a/gems/commonmarker-merge/gemfiles/modular/stringio/vHEAD.gemfile +++ b/gems/commonmarker-merge/gemfiles/modular/stringio/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 (dependency of omniauth) -gem 'stringio', github: 'ruby/stringio', branch: 'master' +gem "stringio", github: "ruby/stringio", branch: "master" diff --git a/gems/commonmarker-merge/gemfiles/modular/style.gemfile b/gems/commonmarker-merge/gemfiles/modular/style.gemfile index 88acc000d..35de4dcd6 100644 --- a/gems/commonmarker-merge/gemfiles/modular/style.gemfile +++ b/gems/commonmarker-merge/gemfiles/modular/style.gemfile @@ -1,28 +1,31 @@ # frozen_string_literal: true -# To retain during commonmarker-merge templating: +# To retain during kettle-jem templating: # kettle-jem:freeze # # ... your code # kettle-jem:unfreeze # -# We run rubocop on the latest version of Ruby, -# but in support of the oldest supported version of Ruby +# Style tasks run on the latest Ruby; RuboCop-LTS selects the compatibility +# rules for the configured Ruby floor independently from task dependency floors. -gem 'reek', '~> 6.5' +gem "reek", "~> 6.5", ">= 6.5.0" platform :mri do - gem 'rubocop-on-rbs', '~> 2.0' # ruby >= 3.2.0 + gem "appraisal2-rubocop", "~> 1.0", ">= 1.0.0", require: false + gem "rubocop-gradual", "~> 0.4", ">= 0.4.0" + gem "rubocop-minitest", "~> 0.40", ">= 0.40.0" + gem "rubocop-on-rbs", "~> 2.0", ">= 2.0.0" # ruby >= 3.2.0 # gem "rubocop", "~> 1.73", ">= 1.73.2" # constrained by standard - gem 'rubocop-packaging', '~> 0.6', '>= 0.6.0' - gem 'standard', '>= 1.50' + gem "rubocop-packaging", "~> 0.6", ">= 0.6.0" + gem "standard", "~> 1.56", ">= 1.56.0" - if ENV.fetch('RUBOCOP_LTS_LOCAL', 'false').casecmp('false').zero? - gem 'rubocop-lts', '~> 24.1.0' - # "rubocop-lts-rspec" can't add here until other gems are updated. - gem 'rubocop-rspec', '~> 3.6' - gem 'rubocop-ruby3_2', '~> 3.0.0' + if ENV.fetch("RUBOCOP_LTS_LOCAL", "false").casecmp("false").zero? + declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) + gem "rubocop-lts", "~> 24.2", ">= 24.2.1" unless declared_gems.include?("rubocop-lts") + gem "rubocop-lts-rspec", "~> 1.0", ">= 1.0.5" unless declared_gems.include?("rubocop-lts-rspec") + gem "rubocop-ruby3_2", "~> 3.0", ">= 3.0.6" unless declared_gems.include?("rubocop-ruby3_2") else - eval_gemfile('style_local.gemfile') + eval_gemfile("style_local.gemfile") end end diff --git a/gems/commonmarker-merge/gemfiles/modular/style_local.gemfile b/gems/commonmarker-merge/gemfiles/modular/style_local.gemfile index ce75bbe21..0e9d987e6 100644 --- a/gems/commonmarker-merge/gemfiles/modular/style_local.gemfile +++ b/gems/commonmarker-merge/gemfiles/modular/style_local.gemfile @@ -1,24 +1,48 @@ # frozen_string_literal: true -# We run rubocop on the latest version of Ruby, -# but in support of the oldest supported version of Ruby +# Style tasks run on the latest Ruby; RuboCop-LTS selects the compatibility +# rules for the configured Ruby floor independently from task dependency floors. # Local path overrides for development. # Loaded by the associated non-local gemfile when RUBOCOP_LTS_LOCAL != "false". -require 'nomono/bundler' unless defined?(Nomono) +# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. +# Bundler records that dependency during Gemfile evaluation, but it does not +# activate that exact version before the immediate `require "nomono/bundler"`. +# If multiple compatible nomono versions are installed, RubyGems may activate +# the newest installed version while Gemfile.lock pins an older compatible one; +# Bundler then aborts with "already activated nomono X, but your Gemfile +# requires nomono Y". Prefer the locked compatible version when present, then +# activate it explicitly before requiring the Bundler DSL extension used below. +nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] +nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) +if File.file?(nomono_lockfile) + nomono_locked_spec = Bundler::LockfileParser + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == "nomono" } + nomono_locked = nomono_locked_spec && + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + if nomono_locked + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] + end +end +Kernel.send(:gem, "nomono", *nomono_activation_requirements) +require "nomono/bundler" local_gems = %w[rubocop-lts rubocop-lts-rspec rubocop-ruby3_2 standard-rubocop-lts] +declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) +local_gems_to_eval = local_gems - %w[commonmarker-merge] - declared_gems # export VENDORED_GEMS=rubocop-lts,rubocop-lts-rspec,rubocop-ruby3_2,standard-rubocop-lts platform :mri do eval_nomono_gems( - gems: local_gems, - prefix: 'RUBOCOP_LTS', - path_env: 'RUBOCOP_LTS_LOCAL', - vendored_gems_env: 'VENDORED_GEMS', - vendor_gem_dir_env: 'VENDOR_GEM_DIR', - debug_env: 'RUBOCOP_LTS_DEBUG', - root: %w[src rubocop-lts] + gems: local_gems_to_eval, + prefix: "RUBOCOP_LTS", + path_env: "RUBOCOP_LTS_LOCAL", + vendored_gems_env: "VENDORED_GEMS", + vendor_gem_dir_env: "VENDOR_GEM_DIR", + debug_env: "RUBOCOP_LTS_DEBUG", + root: ["src", "rubocop-lts"] ) end diff --git a/gems/commonmarker-merge/gemfiles/modular/templating.gemfile b/gems/commonmarker-merge/gemfiles/modular/templating.gemfile index 2ddc9433f..47138ffbb 100644 --- a/gems/commonmarker-merge/gemfiles/modular/templating.gemfile +++ b/gems/commonmarker-merge/gemfiles/modular/templating.gemfile @@ -1,24 +1,24 @@ # frozen_string_literal: true -structuredmerge_remote = ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false').zero? -kettle_remote = ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? +structuredmerge_remote = ENV.fetch("STRUCTUREDMERGE_DEV", "false").casecmp("false").zero? +kettle_remote = ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false").zero? if structuredmerge_remote # Parser dependencies for released installs. - gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' + gem "tree_sitter_language_pack", "~> 1.13", ">= 1.13.3" # Merge recipes for released installs. - gem 'kettle-jem', '>= 7.0' + gem "kettle-jem", ">= 7.0" end if kettle_remote # Template/plugin checks for released installs. - gem 'kettle-drift', '~> 1.0', '>= 1.0.5', require: false + gem "kettle-drift", "~> 1.0", ">= 1.0.6", require: false end # Set STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local development with path-based dependencies. # When false (default / CI), released kettle-jem brings merge gems and parser dependencies. # Local path overrides bring the same dependencies from sibling gemspecs. # -# Set KETTLE_DEV_DEV=/path/to/kettle-rb for local development with Kettle plugin gems. +# Set KETTLE_DEV_DEV=/path/to/my for local development with Kettle plugin gems. # When false (default / CI), released Kettle plugin gems are used. -eval_gemfile 'templating_local.gemfile' unless structuredmerge_remote && kettle_remote +eval_gemfile "templating_local.gemfile" unless structuredmerge_remote && kettle_remote diff --git a/gems/commonmarker-merge/gemfiles/modular/templating_local.gemfile b/gems/commonmarker-merge/gemfiles/modular/templating_local.gemfile index ae9e68e8e..6b5b2916c 100644 --- a/gems/commonmarker-merge/gemfiles/modular/templating_local.gemfile +++ b/gems/commonmarker-merge/gemfiles/modular/templating_local.gemfile @@ -4,7 +4,29 @@ # Loaded by the associated non-local gemfile when STRUCTUREDMERGE_DEV or KETTLE_DEV_DEV # is not "false". -require 'nomono/bundler' unless defined?(Nomono) +# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. +# Bundler records that dependency during Gemfile evaluation, but it does not +# activate that exact version before the immediate `require "nomono/bundler"`. +# If multiple compatible nomono versions are installed, RubyGems may activate +# the newest installed version while Gemfile.lock pins an older compatible one; +# Bundler then aborts with "already activated nomono X, but your Gemfile +# requires nomono Y". Prefer the locked compatible version when present, then +# activate it explicitly before requiring the Bundler DSL extension used below. +nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] +nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) +if File.file?(nomono_lockfile) + nomono_locked_spec = Bundler::LockfileParser + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == "nomono" } + nomono_locked = nomono_locked_spec && + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + if nomono_locked + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] + end +end +Kernel.send(:gem, "nomono", *nomono_activation_requirements) +require "nomono/bundler" structuredmerge_local_gems = %w[ tree_haver @@ -47,25 +69,25 @@ structuredmerge_local_gems_to_eval = structuredmerge_local_gems - %w[commonmarke kettle_dev_local_gems_to_eval = kettle_dev_local_gems - %w[commonmarker-merge] - declared_gems platform :mri do - if ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false') != 0 + if ENV.fetch("STRUCTUREDMERGE_DEV", "false").casecmp("false") != 0 eval_nomono_gems( gems: structuredmerge_local_gems_to_eval, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - vendored_gems_env: 'VENDORED_GEMS', - vendor_gem_dir_env: 'VENDOR_GEM_DIR', - debug_env: 'STRUCTUREDMERGE_DEBUG' + prefix: "STRUCTUREDMERGE", + path_env: "STRUCTUREDMERGE_DEV", + vendored_gems_env: "VENDORED_GEMS", + vendor_gem_dir_env: "VENDOR_GEM_DIR", + debug_env: "STRUCTUREDMERGE_DEBUG" ) end - if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false') != 0 + if ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false") != 0 eval_nomono_gems( gems: kettle_dev_local_gems_to_eval, - prefix: 'KETTLE_DEV', - path_env: 'KETTLE_DEV_DEV', - vendored_gems_env: 'VENDORED_GEMS', - vendor_gem_dir_env: 'VENDOR_GEM_DIR', - debug_env: 'KETTLE_DEV_DEBUG' + prefix: "KETTLE_DEV", + path_env: "KETTLE_DEV_DEV", + vendored_gems_env: "VENDORED_GEMS", + vendor_gem_dir_env: "VENDOR_GEM_DIR", + debug_env: "KETTLE_DEV_DEBUG" ) end end diff --git a/gems/commonmarker-merge/gemfiles/modular/webrick/r4/v1.9.gemfile b/gems/commonmarker-merge/gemfiles/modular/webrick/r4/v1.9.gemfile new file mode 100644 index 000000000..eaab4a473 --- /dev/null +++ b/gems/commonmarker-merge/gemfiles/modular/webrick/r4/v1.9.gemfile @@ -0,0 +1 @@ +gem "webrick", "~> 1.9" diff --git a/gems/commonmarker-merge/gemfiles/modular/webrick/vHEAD.gemfile b/gems/commonmarker-merge/gemfiles/modular/webrick/vHEAD.gemfile new file mode 100644 index 000000000..8a789b634 --- /dev/null +++ b/gems/commonmarker-merge/gemfiles/modular/webrick/vHEAD.gemfile @@ -0,0 +1 @@ +gem "webrick", ">= 1.9" diff --git a/gems/commonmarker-merge/gemfiles/modular/x_std_libs.gemfile b/gems/commonmarker-merge/gemfiles/modular/x_std_libs.gemfile index b1f43c097..77aad43f2 100644 --- a/gems/commonmarker-merge/gemfiles/modular/x_std_libs.gemfile +++ b/gems/commonmarker-merge/gemfiles/modular/x_std_libs.gemfile @@ -1,12 +1,12 @@ ### Std Lib Extracted Gems ruby_version = Gem::Version.new(RUBY_VERSION) -if ruby_version >= Gem::Version.new('4.0') - eval_gemfile 'x_std_libs/r4/libs.gemfile' -elsif ruby_version >= Gem::Version.new('3.2') - eval_gemfile 'x_std_libs/r3/libs.gemfile' -elsif ruby_version >= Gem::Version.new('3.1') - eval_gemfile 'x_std_libs/r3.1/libs.gemfile' +if ruby_version >= Gem::Version.new("4.0") + eval_gemfile "x_std_libs/r4/libs.gemfile" +elsif ruby_version >= Gem::Version.new("3.2") + eval_gemfile "x_std_libs/r3/libs.gemfile" +elsif ruby_version >= Gem::Version.new("3.1") + eval_gemfile "x_std_libs/r3.1/libs.gemfile" else - eval_gemfile 'x_std_libs/r2/libs.gemfile' + eval_gemfile "x_std_libs/r2/libs.gemfile" end diff --git a/gems/commonmarker-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile b/gems/commonmarker-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile index 16a5e3d70..441c4f03a 100644 --- a/gems/commonmarker-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile +++ b/gems/commonmarker-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile @@ -1,3 +1,3 @@ -eval_gemfile '../../erb/r2/v3.0.gemfile' -eval_gemfile '../../mutex_m/r2/v0.3.gemfile' -eval_gemfile '../../stringio/r2/v3.0.gemfile' +eval_gemfile "../../erb/r2/v3.0.gemfile" +eval_gemfile "../../mutex_m/r2/v0.3.gemfile" +eval_gemfile "../../stringio/r2/v3.0.gemfile" diff --git a/gems/commonmarker-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile b/gems/commonmarker-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile index 220ff95c1..c293a3ddd 100644 --- a/gems/commonmarker-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile +++ b/gems/commonmarker-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile @@ -1,3 +1,3 @@ -eval_gemfile '../../erb/r3/v5.0.gemfile' -eval_gemfile '../../mutex_m/r3/v0.3.gemfile' -eval_gemfile '../../stringio/r3/v3.0.gemfile' +eval_gemfile "../../erb/r3/v5.0.gemfile" +eval_gemfile "../../mutex_m/r3/v0.3.gemfile" +eval_gemfile "../../stringio/r3/v3.0.gemfile" diff --git a/gems/commonmarker-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile b/gems/commonmarker-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile index bd4e884df..eb5574247 100644 --- a/gems/commonmarker-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile +++ b/gems/commonmarker-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile @@ -1,4 +1,6 @@ -eval_gemfile '../../erb/r4/v5.0.gemfile' -eval_gemfile '../../mutex_m/r4/v0.3.gemfile' -eval_gemfile '../../stringio/r4/v3.0.gemfile' -eval_gemfile '../../benchmark/r4/v0.5.gemfile' +eval_gemfile "../../erb/r4/v5.0.gemfile" +eval_gemfile "../../mutex_m/r4/v0.3.gemfile" +eval_gemfile "../../stringio/r4/v3.0.gemfile" +eval_gemfile "../../benchmark/r4/v0.5.gemfile" +eval_gemfile "../../cgi/r4/v0.5.gemfile" +eval_gemfile "../../webrick/r4/v1.9.gemfile" diff --git a/gems/commonmarker-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile b/gems/commonmarker-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile index 91f383c11..d4d5b16c9 100644 --- a/gems/commonmarker-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile +++ b/gems/commonmarker-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile @@ -1,4 +1,6 @@ -eval_gemfile '../erb/vHEAD.gemfile' -eval_gemfile '../mutex_m/vHEAD.gemfile' -eval_gemfile '../stringio/vHEAD.gemfile' -eval_gemfile '../benchmark/vHEAD.gemfile' +eval_gemfile "../erb/vHEAD.gemfile" +eval_gemfile "../mutex_m/vHEAD.gemfile" +eval_gemfile "../stringio/vHEAD.gemfile" +eval_gemfile "../benchmark/vHEAD.gemfile" +eval_gemfile "../cgi/vHEAD.gemfile" +eval_gemfile "../webrick/vHEAD.gemfile" diff --git a/gems/kramdown-merge/.kettle-drift.lock b/gems/kramdown-merge/.kettle-drift.lock index aa01ca527..d28e306b0 100644 --- a/gems/kramdown-merge/.kettle-drift.lock +++ b/gems/kramdown-merge/.kettle-drift.lock @@ -1,122 +1,10 @@ { - "(direct_sibling_local ||\nENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?)": [ - { - "file": "Gemfile", - "lines": [ - 79, - 119, - 159, - 199, - 239, - 279, - 319, - 359 - ] - } - ], - ".find { |spec| spec.name == 'nomono' }\nnomono_locked = nomono_locked_spec &&": [ - { - "file": "Gemfile", - "lines": [ - 90, - 130, - 170, - 210, - 250, - 290, - 330, - 370 - ] - } - ], - "ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?)\ndirect_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV')": [ - { - "file": "Gemfile", - "lines": [ - 80, - 120, - 160, - 200, - 240, - 280, - 320, - 360 - ] - } - ], - "Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version)\nnomono_activation_requirements = [\"= #{nomono_locked_spec.version}\"] if nomono_locked": [ - { - "file": "Gemfile", - "lines": [ - 92, - 132, - 172, - 212, - 252, - 292, - 332, - 372 - ] - } - ], - "Kernel.send(:gem, 'nomono', *nomono_activation_requirements)\nrequire 'nomono/bundler'": [ - { - "file": "Gemfile", - "lines": [ - 95, - 135, - 175, - 215, - 255, - 295, - 335, - 375 - ] - } - ], - "direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV')\ndirect_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil)": [ - { - "file": "Gemfile", - "lines": [ - 81, - 121, - 161, - 201, - 241, - 281, - 321, - 361 - ] - } - ], "eval_nomono_gems(\ngems: direct_sibling_gems,": [ { "file": "Gemfile", "lines": [ 59, - 99, - 139, - 179, - 219, - 259, - 299, - 339, - 379 - ] - } - ], - "gems: direct_sibling_gems,\nprefix: 'STRUCTUREDMERGE',": [ - { - "file": "Gemfile", - "lines": [ - 100, - 140, - 180, - 220, - 260, - 300, - 340, - 380 + 99 ] } ], @@ -125,29 +13,7 @@ "file": "Gemfile", "lines": [ 42, - 86, - 126, - 166, - 206, - 246, - 286, - 326, - 366 - ] - } - ], - "if direct_sibling_dev_was_set\nENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original": [ - { - "file": "Gemfile", - "lines": [ - 109, - 149, - 189, - 229, - 269, - 309, - 349, - 389 + 86 ] } ], @@ -156,14 +22,7 @@ "file": "Gemfile", "lines": [ 34, - 78, - 118, - 158, - 198, - 238, - 278, - 318, - 358 + 78 ] } ], @@ -172,29 +31,7 @@ "file": "Gemfile", "lines": [ 68, - 108, - 148, - 188, - 228, - 268, - 308, - 348, - 388 - ] - } - ], - "nomono_activation_requirements = nomono_requirements\nnomono_lockfile = File.expand_path('Gemfile.lock', __dir__)": [ - { - "file": "Gemfile", - "lines": [ - 84, - 124, - 164, - 204, - 244, - 284, - 324, - 364 + 108 ] } ], @@ -203,14 +40,7 @@ "file": "Gemfile", "lines": [ 47, - 91, - 131, - 171, - 211, - 251, - 291, - 331, - 371 + 91 ] } ], @@ -219,89 +49,7 @@ "file": "Gemfile", "lines": [ 43, - 87, - 127, - 167, - 207, - 247, - 287, - 327, - 367 - ] - } - ], - "nomono_lockfile = File.expand_path('Gemfile.lock', __dir__)\nif File.file?(nomono_lockfile)": [ - { - "file": "Gemfile", - "lines": [ - 85, - 125, - 165, - 205, - 245, - 285, - 325, - 365 - ] - } - ], - "path_env: 'STRUCTUREDMERGE_DEV',\nroot: %w[src my structuredmerge]": [ - { - "file": "Gemfile", - "lines": [ - 102, - 142, - 182, - 222, - 262, - 302, - 342, - 382 - ] - } - ], - "prefix: 'STRUCTUREDMERGE',\npath_env: 'STRUCTUREDMERGE_DEV',": [ - { - "file": "Gemfile", - "lines": [ - 101, - 141, - 181, - 221, - 261, - 301, - 341, - 381 - ] - } - ], - "require 'nomono/bundler'\nENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local": [ - { - "file": "Gemfile", - "lines": [ - 96, - 136, - 176, - 216, - 256, - 296, - 336, - 376 - ] - } - ], - "rescue LoadError\nwarn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.'": [ - { - "file": "Gemfile", - "lines": [ - 105, - 145, - 185, - 225, - 265, - 305, - 345, - 385 + 87 ] } ], @@ -309,8 +57,8 @@ { "file": "gemfiles/modular/templating_local.gemfile", "lines": [ - 60, - 71 + 55, + 66 ] } ] diff --git a/gems/kramdown-merge/.structuredmerge/kettle-jem.yml b/gems/kramdown-merge/.structuredmerge/kettle-jem.yml index bbc8009a5..7f8fbc078 100644 --- a/gems/kramdown-merge/.structuredmerge/kettle-jem.yml +++ b/gems/kramdown-merge/.structuredmerge/kettle-jem.yml @@ -246,6 +246,59 @@ templates: - Gemfile - certs/pboling.pem - tmp/.gitignore + - gemfiles/modular/benchmark/r4/v0.5.gemfile + - gemfiles/modular/benchmark/vHEAD.gemfile + - gemfiles/modular/cgi/r4/v0.5.gemfile + - gemfiles/modular/cgi/vHEAD.gemfile + - gemfiles/modular/coverage.gemfile + - gemfiles/modular/coverage_local.gemfile + - gemfiles/modular/debug.gemfile + - gemfiles/modular/documentation.gemfile + - gemfiles/modular/documentation_local.gemfile + - gemfiles/modular/erb/r2.3/default.gemfile + - gemfiles/modular/erb/r2.6/v2.2.gemfile + - gemfiles/modular/erb/r2/v3.0.gemfile + - gemfiles/modular/erb/r3.1/v4.0.gemfile + - gemfiles/modular/erb/r3/v5.0.gemfile + - gemfiles/modular/erb/r4/v5.0.gemfile + - gemfiles/modular/erb/vHEAD.gemfile + - gemfiles/modular/json/truffleruby_22_3.gemfile + - gemfiles/modular/json/truffleruby_23_0.gemfile + - gemfiles/modular/json/truffleruby_23_1.gemfile + - gemfiles/modular/mutex_m/r2.4/v0.1.gemfile + - gemfiles/modular/mutex_m/r2/v0.3.gemfile + - gemfiles/modular/mutex_m/r3/v0.3.gemfile + - gemfiles/modular/mutex_m/r4/v0.3.gemfile + - gemfiles/modular/mutex_m/vHEAD.gemfile + - gemfiles/modular/optional.gemfile + - gemfiles/modular/recording/r2.3/recording.gemfile + - gemfiles/modular/recording/r2.4/recording.gemfile + - gemfiles/modular/recording/r2.5/recording.gemfile + - gemfiles/modular/recording/r3/recording.gemfile + - gemfiles/modular/recording/r4/recording.gemfile + - gemfiles/modular/recording/vHEAD.gemfile + - gemfiles/modular/rspec.gemfile + - gemfiles/modular/runtime_heads.gemfile + - gemfiles/modular/stringio/r2.4/v0.0.2.gemfile + - gemfiles/modular/stringio/r2/v3.0.gemfile + - gemfiles/modular/stringio/r3/v3.0.gemfile + - gemfiles/modular/stringio/r4/v3.0.gemfile + - gemfiles/modular/stringio/vHEAD.gemfile + - gemfiles/modular/style.gemfile + - gemfiles/modular/style_local.gemfile + - gemfiles/modular/templating.gemfile + - gemfiles/modular/templating_local.gemfile + - gemfiles/modular/webrick/r4/v1.9.gemfile + - gemfiles/modular/webrick/vHEAD.gemfile + - gemfiles/modular/x_std_libs.gemfile + - gemfiles/modular/x_std_libs/r2.3/libs.gemfile + - gemfiles/modular/x_std_libs/r2.4/libs.gemfile + - gemfiles/modular/x_std_libs/r2.6/libs.gemfile + - gemfiles/modular/x_std_libs/r2/libs.gemfile + - gemfiles/modular/x_std_libs/r3.1/libs.gemfile + - gemfiles/modular/x_std_libs/r3/libs.gemfile + - gemfiles/modular/x_std_libs/r4/libs.gemfile + - gemfiles/modular/x_std_libs/vHEAD.gemfile - source: lib/gem/version.rb target: lib/kramdown/merge/version.rb - source: sig/gem.rbs diff --git a/gems/kramdown-merge/Gemfile b/gems/kramdown-merge/Gemfile index 713cbb6ea..acdd8fead 100644 --- a/gems/kramdown-merge/Gemfile +++ b/gems/kramdown-merge/Gemfile @@ -6,7 +6,7 @@ # kettle-jem will then preserve content between those markers across template runs. # kettle-jem:unfreeze -source 'https://gem.coop' +source "https://gem.coop" git_source(:codeberg) { |repo_name| "https://codeberg.org/#{repo_name}" } git_source(:gitlab) { |repo_name| "https://gitlab.com/#{repo_name}" } @@ -19,17 +19,61 @@ git_source(:gitlab) { |repo_name| "https://gitlab.com/#{repo_name}" } gemspec # Local workspace dependency wiring for *_local.gemfile overrides -nomono_requirements = ['~> 1.0', '>= 1.0.8'] -gem 'nomono', *nomono_requirements, require: false # ruby >= 2.2 +nomono_requirements = ["~> 1.0", ">= 1.0.8"] +gem "nomono", *nomono_requirements, require: false # ruby >= 2.2 # Direct sibling dependencies (env-switched via STRUCTUREDMERGE_DEV) direct_sibling_gems = %w[ markdown-merge ] -direct_sibling_dev = ENV.fetch('STRUCTUREDMERGE_DEV', '') +direct_sibling_dev = ENV.fetch("STRUCTUREDMERGE_DEV", "") direct_sibling_local = !direct_sibling_dev.empty? && !%w[false 0 no off].include?(direct_sibling_dev.downcase) -direct_sibling_templating = ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? +direct_sibling_templating = ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? + +if direct_sibling_gems.any? && + (direct_sibling_local || + ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero?) + direct_sibling_dev_was_set = ENV.key?("STRUCTUREDMERGE_DEV") + direct_sibling_dev_original = ENV.fetch("STRUCTUREDMERGE_DEV", nil) + begin + nomono_activation_requirements = nomono_requirements + nomono_lockfile = File.expand_path("Gemfile.lock", __dir__) + if File.file?(nomono_lockfile) + nomono_locked_spec = Bundler::LockfileParser + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == "nomono" } + nomono_locked = nomono_locked_spec && + Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) + if nomono_locked + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] + end + end + Kernel.send(:gem, "nomono", *nomono_activation_requirements) + require "nomono/bundler" + if direct_sibling_templating && !direct_sibling_local + ENV["STRUCTUREDMERGE_DEV"] = File.expand_path("..", __dir__) + end + + eval_nomono_gems( + gems: direct_sibling_gems, + prefix: "STRUCTUREDMERGE", + path_env: "STRUCTUREDMERGE_DEV", + root: ["src", "my", "structuredmerge"] + ) + rescue LoadError + warn "Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies." + ensure + if direct_sibling_templating && !direct_sibling_local + if direct_sibling_dev_was_set + ENV["STRUCTUREDMERGE_DEV"] = direct_sibling_dev_original + else + ENV.delete("STRUCTUREDMERGE_DEV") + end + end + end +end if direct_sibling_gems.any? && (direct_sibling_local || @@ -72,28 +116,28 @@ if direct_sibling_gems.any? && end # Use released TSLP with the Ruby ABI platform-gem fix. -gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' +gem "tree_sitter_language_pack", "~> 1.13", ">= 1.13.3" # Templating (env-switched: STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local paths) -eval_gemfile 'gemfiles/modular/templating.gemfile' if ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? +eval_gemfile "gemfiles/modular/templating.gemfile" if ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? # Debugging -eval_gemfile 'gemfiles/modular/debug.gemfile' +eval_gemfile "gemfiles/modular/debug.gemfile" # Code Coverage (env-switched: KETTLE_DEV_DEV=true for local paths) -eval_gemfile 'gemfiles/modular/coverage.gemfile' +eval_gemfile "gemfiles/modular/coverage.gemfile" # Linting -eval_gemfile 'gemfiles/modular/style.gemfile' +eval_gemfile "gemfiles/modular/style.gemfile" # Documentation -eval_gemfile 'gemfiles/modular/documentation.gemfile' +eval_gemfile "gemfiles/modular/documentation.gemfile" # Optional -eval_gemfile 'gemfiles/modular/optional.gemfile' +eval_gemfile "gemfiles/modular/optional.gemfile" ### Std Lib Extracted Gems -eval_gemfile 'gemfiles/modular/x_std_libs.gemfile' +eval_gemfile "gemfiles/modular/x_std_libs.gemfile" # See unlocked_deps appraisal for more details on irb inclusion -gem 'irb', '~> 1.17' # ruby >= 2.7 +gem "irb", "~> 1.17" # ruby >= 2.7 diff --git a/gems/kramdown-merge/Gemfile.lock b/gems/kramdown-merge/Gemfile.lock index f0908ebbb..cfeac5a65 100644 --- a/gems/kramdown-merge/Gemfile.lock +++ b/gems/kramdown-merge/Gemfile.lock @@ -6,6 +6,265 @@ PATH markdown-merge (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly + specs: + ast-crispr-markdown-markly (7.1.0) + ast-crispr (= 7.1.0) + markly-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism + specs: + ast-crispr-ruby-prism (7.1.0) + ast-crispr (= 7.1.0) + prism-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr + specs: + ast-crispr (7.1.0) + ast-merge (= 7.1.0) + service_actor (~> 3.9) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git + specs: + ast-merge-git (7.1.0) + ast-merge (= 7.1.0) + json-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge + specs: + ast-merge (7.1.0) + benchmark + token-resolver (~> 2.0, >= 2.0.4) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template + specs: + ast-template (7.1.0) + ast-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge + specs: + bash-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge + specs: + binary-merge (7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge + specs: + citrus-toml-merge (7.1.0) + toml-merge (= 7.1.0) + toml-rb (~> 4.1) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge + specs: + commonmarker-merge (7.1.0) + commonmarker (~> 2.2) + markdown-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge + specs: + dotenv-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge + specs: + go-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge + specs: + json-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem + specs: + kettle-jem (7.1.0) + addressable (>= 2.8, < 3) + ast-crispr-markdown-markly (= 7.1.0) + ast-crispr-ruby-prism (= 7.1.0) + ast-merge (= 7.1.0) + bash-merge (= 7.1.0) + citrus-toml-merge (= 7.1.0) + commonmarker-merge (= 7.1.0) + dotenv-merge (= 7.1.0) + json-merge (= 7.1.0) + kettle-dev (~> 2.3, >= 2.3.5) + kettle-rb (~> 0.1, >= 0.1.4) + kramdown-merge (= 7.1.0) + markdown-merge (= 7.1.0) + markly-merge (= 7.1.0) + prism-merge (= 7.1.0) + psych-merge (= 7.1.0) + rbs (>= 3.10) + rbs-merge (= 7.1.0) + ruby-merge (= 7.1.0) + token-resolver (~> 2.0, >= 2.0.4) + toml-merge (= 7.1.0) + toml-rb (~> 4.2) + tree_haver (= 7.1.0) + yaml-merge (= 7.1.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge + specs: + markdown-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge + specs: + markly-merge (7.1.0) + markdown-merge (= 7.1.0) + markly (~> 0.9) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge + specs: + parslet-toml-merge (7.1.0) + toml (~> 0.3) + toml-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge + specs: + plain-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge + specs: + prism-merge (7.1.0) + prism (~> 1.6) + ruby-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge + specs: + psych-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + yaml-merge (= 7.1.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge + specs: + rbs-merge (7.1.0) + ast-merge (= 7.1.0) + rbs (>= 3.10) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge + specs: + ruby-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge + specs: + rust-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb + specs: + smorg-rb (7.1.0) + ast-merge (= 7.1.0) + ast-merge-git (= 7.1.0) + go-merge (= 7.1.0) + json-merge (= 7.1.0) + kettle-jem (= 7.1.0) + markly-merge (= 7.1.0) + plain-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge + specs: + toml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver + specs: + tree_haver (7.1.0) + citrus (~> 3.0) + parslet (~> 2.0) + tree_sitter_language_pack (>= 1.13.2, < 2.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge + specs: + typescript-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge + specs: + yaml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge + specs: + zip-merge (7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + GEM remote: https://gem.coop/ specs: @@ -17,11 +276,6 @@ GEM rake (>= 10) thor (>= 0.14) ast (2.4.3) - ast-merge (7.1.0) - benchmark - token-resolver (~> 2.0, >= 2.0.4) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) backports (3.25.3) benchmark (0.5.0) bigdecimal (4.1.2) @@ -30,6 +284,7 @@ GEM thor (~> 1.0) citrus (3.0.2) cmdparse (3.0.7) + commonmarker (2.9.0-x86_64-linux) concurrent-ruby (1.3.7) date (3.5.1) debug (1.11.1) @@ -93,6 +348,8 @@ GEM kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) + kettle-drift (1.0.6) + version_gem (~> 1.1, >= 1.1.14) kettle-rb (0.1.4) kettle-soup-cover (1.1.3) simplecov (~> 0.22) @@ -121,14 +378,11 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) - markdown-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) + markly (0.16.0) mutex_m (0.3.0) nokogiri (1.19.4-x86_64-linux-gnu) racc (~> 1.4) - nomono (1.0.8) + nomono (1.0.9) openssl (4.0.2) ostruct (0.6.3) parallel (1.28.0) @@ -251,6 +505,8 @@ GEM ruby-progressbar (1.13.0) ruby_engine (2.0.3) ruby_version (1.0.3) + service_actor (3.9.4) + zeitwerk (>= 1.0) silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) @@ -270,7 +526,7 @@ GEM simplecov-rcov (0.3.7) simplecov (>= 0.4.1) simplecov_json_formatter (0.1.4) - sorbet-runtime (0.6.13342) + sorbet-runtime (0.6.13347) standard (1.56.0) language_server-protocol (~> 3.17.0.2) lint_roller (~> 1.0) @@ -303,11 +559,11 @@ GEM token-resolver (2.0.4) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.14) - tree_haver (7.1.0) - citrus (~> 3.0) - parslet (~> 2.0) - tree_sitter_language_pack (>= 1.13.2, < 2.0) - version_gem (~> 1.1, >= 1.1.9) + toml (0.3.0) + parslet (>= 1.8.0, < 3.0.0) + toml-rb (4.2.0) + citrus (~> 3.0, > 3.0) + racc (~> 1.7) tree_sitter_language_pack (1.13.3-x86_64-linux) sorbet-runtime (~> 0.5) tsort (0.2.0) @@ -351,23 +607,45 @@ PLATFORMS DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) + ast-crispr! + ast-crispr-markdown-markly! + ast-crispr-ruby-prism! + ast-merge! + ast-merge-git! + ast-template! + bash-merge! benchmark (~> 0.5, >= 0.5.0) + binary-merge! bundler-audit (~> 0.9.3) + citrus-toml-merge! + commonmarker-merge! debug (>= 1.1) + dotenv-merge! erb (~> 6.0, >= 6.0.4) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.0) + go-merge! irb (~> 1.17) + json-merge! kettle-dev (~> 2.0, >= 2.2.25) + kettle-drift (~> 1.0, >= 1.0.5) + kettle-jem! kettle-soup-cover (~> 1.0, >= 1.1.3) kettle-test (~> 2.0, >= 2.0.9) kramdown (~> 2.5, >= 2.5.1) kramdown-merge! kramdown-parser-gfm (~> 1.1) + markdown-merge! + markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) + parslet-toml-merge! + plain-merge! + prism-merge! + psych-merge! rake (~> 13.0) rbs (>= 3.0) + rbs-merge! rdoc (~> 6.11) reek (~> 6.5) require_bench (~> 1.0, >= 1.0.4) @@ -376,31 +654,49 @@ DEPENDENCIES rubocop-packaging (~> 0.6, >= 0.6.0) rubocop-rspec (~> 3.6) rubocop-ruby3_2 (~> 3.0.0) + ruby-merge! ruby-progressbar (~> 1.13) + rust-merge! + smorg-rb! standard (>= 1.50) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) + toml-merge! + tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) + typescript-merge! yaml-converter (~> 0.1) + yaml-merge! yard (~> 0.9, >= 0.9.44) yard-fence (~> 0.9, >= 0.9.1) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) yard-timekeeper (~> 0.1) yard-yaml (~> 0.1, >= 0.1.2) + zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af ansi (1.6.0) sha256=ac9ea0c0ea8d32fb4e271348e609963ac78882f34b73836c2a02b3622e666658 appraisal2 (3.2.0) sha256=ccd0b767ac4060cd7af6d16747459b6990f49c39c7b4fb1f7d1146b1e97c492f ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 + ast-crispr (7.1.0) + ast-crispr-markdown-markly (7.1.0) + ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) + ast-merge-git (7.1.0) + ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 + bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd + binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 + citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 + commonmarker (2.9.0-x86_64-linux) + commonmarker-merge (7.1.0) concurrent-ruby (1.3.7) sha256=4412caec3a5ea2e5fdc52076724c071a81f2c0593d83b2ac8cbb8ca63b3151b0 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 @@ -408,6 +704,7 @@ CHECKSUMS diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 docile (1.4.1) sha256=96159be799bfa73cdb721b840e9802126e4e03dfc26863db73647204c727f21e + dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -420,11 +717,15 @@ CHECKSUMS gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f + go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 + json-merge (7.1.0) kettle-dev (2.3.7) sha256=eb370113cd030d03cbe2d33b31c99858951017e5ad21a17e9ed89dc3770028ee + kettle-drift (1.0.6) + kettle-jem (7.1.0) kettle-rb (0.1.4) sha256=9cef7ce4f7021666b7222292f29051e51eaf042e8a5db11f3f4dd72f74243fc1 kettle-soup-cover (1.1.3) sha256=a373827da22a7131d093afd32945e5b7d7a10a01ebfdded8fd2cb8230d69c8ad kettle-test (2.0.11) sha256=c710c90f7ab79d51f9452f0c09f5f90657e7a893f63583855c164d0b1b107ab2 @@ -435,24 +736,31 @@ CHECKSUMS lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 markdown-merge (7.1.0) + markly (0.16.0) + markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-x86_64-linux-gnu) sha256=379fae440b28915e3f19d752ce2dcf8465ed2b2fbefd2a7ca0dd497bc981a06a - nomono (1.0.8) sha256=bf4b9b426cbf216ab17b70db474f691b8ae1f1e29de8db4b0ecd405e6e7e1c80 + nomono (1.0.9) openssl (4.0.2) sha256=1037ad2868ae58df9ad917891c0c0f9815a1172f6846d4bcdd508e4c2ee747c2 ostruct (0.6.3) sha256=95a2ed4a4bd1d190784e666b47b2d3f078e4a9efda2fccf18f84ddc6538ed912 parallel (1.28.0) sha256=33e6de1484baf2524792d178b0913fc8eb94c628d6cfe45599ad4458c638c970 parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 + parslet-toml-merge (7.1.0) + plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 + prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 + psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 + rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb @@ -480,9 +788,12 @@ CHECKSUMS rubocop-rspec (3.10.2) sha256=0b3e2ecc592cd10ecbf0095bb58d1e357905276e069643523cc19eb7495f65e2 rubocop-ruby3_2 (3.0.7) sha256=f53dd6d286fb05186214fc6ec116783e7f837030918e8931c05de773e98f8466 rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 + ruby-merge (7.1.0) ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 + rust-merge (7.1.0) + service_actor (3.9.4) silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (0.22.0) sha256=fe2622c7834ff23b98066bb0a854284b2729a569ac659f82621fc22ef36213a5 simplecov-cobertura (3.2.0) sha256=70d702658677fcb20e5aceb6915ccf8bc62ff2ccd38b62b3ad5c9db5c0888740 @@ -491,7 +802,8 @@ CHECKSUMS simplecov-lcov (0.9.0) sha256=7a77a31e200a595ed4b0249493056efd0c920601f53d2ef135ca34ee796346cd simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_json_formatter (0.1.4) sha256=529418fbe8de1713ac2b2d612aa3daa56d316975d307244399fa4838c601b428 - sorbet-runtime (0.6.13342) sha256=dbeb9892597f593ed2b29e38018912787f6c4e0c4b736d8af0d6bd3c63bde3c3 + smorg-rb (7.1.0) + sorbet-runtime (0.6.13347) sha256=54e7221d9f4b63f58aec79f3043752a9ba7810347c6ae0d903531591cc2d5f01 standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b standard-performance (1.9.0) sha256=49483d31be448292951d80e5e67cdcb576c2502103c7b40aec6f1b6e9c88e3f2 @@ -504,22 +816,28 @@ CHECKSUMS timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.4) sha256=33b926958f504525bba3ed511ab66fbcbf8ef30390815e931436b30f27ffcad0 + toml (0.3.0) + toml-merge (7.1.0) + toml-rb (4.2.0) tree_haver (7.1.0) - tree_sitter_language_pack (1.13.3-x86_64-linux) - tsort (0.2.0) - turbo_tests2 (3.2.0) - unicode-display_width (3.2.0) - unicode-emoji (4.2.0) - version_gem (1.1.14) - yaml-converter (0.2.3) - yard (0.9.45) - yard-fence (0.9.6) - yard-junk (0.1.0) - yard-relative_markdown_links (0.6.0) - yard-timekeeper (0.2.4) - yard-yaml (0.2.3) - zeitwerk (2.8.2) - zlib (3.2.3) + tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 + tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f + turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 + typescript-merge (7.1.0) + unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 + unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f + version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 + yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 + yaml-merge (7.1.0) + yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 + yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 + yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd + yard-relative_markdown_links (0.6.0) sha256=3e5ffa85cbad9bac70bee5421774b190fb25d3bdf489323a5b3534f647d1a70e + yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a + yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 + zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 + zip-merge (7.1.0) + zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH 4.0.16 diff --git a/gems/kramdown-merge/Rakefile b/gems/kramdown-merge/Rakefile index 794a96e57..98bb2ef06 100644 --- a/gems/kramdown-merge/Rakefile +++ b/gems/kramdown-merge/Rakefile @@ -130,23 +130,23 @@ end ### DUPLICATE DRIFT TASKS begin - require 'kettle/drift' + require "kettle/drift" Kettle::Drift.install_tasks rescue LoadError - desc('(stub) kettle:drift:check is unavailable') - task('kettle:drift:check') do + desc("(stub) kettle:drift:check is unavailable") + task("kettle:drift:check") do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc('(stub) kettle:drift:update is unavailable') - task('kettle:drift:update') do + desc("(stub) kettle:drift:update is unavailable") + task("kettle:drift:update") do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc('(stub) kettle:drift:force_update is unavailable') - task('kettle:drift:force_update') do + desc("(stub) kettle:drift:force_update is unavailable") + task("kettle:drift:force_update") do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc('(stub) kettle:drift is unavailable') - task('kettle:drift' => 'kettle:drift:update') + desc("(stub) kettle:drift is unavailable") + task("kettle:drift" => "kettle:drift:update") end ### TEMPLATING TASKS diff --git a/gems/kramdown-merge/lib/kramdown/merge/version.rb b/gems/kramdown-merge/lib/kramdown/merge/version.rb index feddb4113..058dbe0e1 100644 --- a/gems/kramdown-merge/lib/kramdown/merge/version.rb +++ b/gems/kramdown-merge/lib/kramdown/merge/version.rb @@ -3,7 +3,7 @@ module Kramdown module Merge module Version - VERSION = '7.1.0' + VERSION = "7.1.0" end VERSION = Version::VERSION # Traditional Constant Location end diff --git a/gems/parslet-toml-merge/.kettle-drift.lock b/gems/parslet-toml-merge/.kettle-drift.lock index d28e306b0..bf85fa76f 100644 --- a/gems/parslet-toml-merge/.kettle-drift.lock +++ b/gems/parslet-toml-merge/.kettle-drift.lock @@ -52,14 +52,5 @@ 87 ] } - ], - "vendored_gems_env: 'VENDORED_GEMS',\nvendor_gem_dir_env: 'VENDOR_GEM_DIR',": [ - { - "file": "gemfiles/modular/templating_local.gemfile", - "lines": [ - 55, - 66 - ] - } ] } diff --git a/gems/parslet-toml-merge/.rubocop_gradual.lock b/gems/parslet-toml-merge/.rubocop_gradual.lock index 8b3a18ec9..d241d520e 100644 --- a/gems/parslet-toml-merge/.rubocop_gradual.lock +++ b/gems/parslet-toml-merge/.rubocop_gradual.lock @@ -15,13 +15,20 @@ [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] ], + "gemfiles/modular/cgi/r4/v0.5.gemfile:367169322": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/cgi/vHEAD.gemfile:2729540777": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], "gemfiles/modular/erb/r2/v3.0.gemfile:1688285565": [ [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] ], - "gemfiles/modular/erb/r3/v5.0.gemfile:2150258305": [ + "gemfiles/modular/erb/r3/v5.0.gemfile:2394062339": [ [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] ], - "gemfiles/modular/erb/r4/v5.0.gemfile:2150258305": [ + "gemfiles/modular/erb/r4/v5.0.gemfile:2394062339": [ [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] ], "gemfiles/modular/erb/vHEAD.gemfile:981929959": [ @@ -57,6 +64,13 @@ [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] ], + "gemfiles/modular/webrick/r4/v1.9.gemfile:3092661193": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/webrick/vHEAD.gemfile:3867684682": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], "gemfiles/modular/x_std_libs.gemfile:2324400122": [ [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] ], @@ -66,10 +80,10 @@ "gemfiles/modular/x_std_libs/r3/libs.gemfile:4030570297": [ [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] ], - "gemfiles/modular/x_std_libs/r4/libs.gemfile:909736663": [ + "gemfiles/modular/x_std_libs/r4/libs.gemfile:732451732": [ [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] ], - "gemfiles/modular/x_std_libs/vHEAD.gemfile:907917303": [ + "gemfiles/modular/x_std_libs/vHEAD.gemfile:2390363993": [ [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] ], @@ -90,11 +104,11 @@ [144, 121, 29, "Layout/LineLength: Line is too long. [149/120]", 981994949], [151, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 4229808912] ], - "spec/fixtures_integration_spec.rb:3425150740": [ - [3, 1, 7238, "Metrics/BlockLength: Block has too many lines. [159/25]", 118357210], - [26, 3, 1324, "Metrics/BlockLength: Block has too many lines. [34/25]", 550487180], - [64, 3, 2344, "Metrics/BlockLength: Block has too many lines. [36/25]", 228336363], - [114, 3, 1130, "Metrics/BlockLength: Block has too many lines. [27/25]", 2320497656], - [152, 3, 1425, "Metrics/BlockLength: Block has too many lines. [29/25]", 944475815] + "spec/fixtures_integration_spec.rb:3091334478": [ + [3, 1, 7453, "Metrics/BlockLength: Block has too many lines. [163/25]", 118357210], + [26, 3, 1543, "Metrics/BlockLength: Block has too many lines. [38/25]", 1266787820], + [68, 3, 2344, "Metrics/BlockLength: Block has too many lines. [36/25]", 228336363], + [118, 3, 1126, "Metrics/BlockLength: Block has too many lines. [27/25]", 2320497656], + [156, 3, 1425, "Metrics/BlockLength: Block has too many lines. [29/25]", 944475815] ] } diff --git a/gems/parslet-toml-merge/Gemfile b/gems/parslet-toml-merge/Gemfile index b5cd0c551..5a449aab9 100644 --- a/gems/parslet-toml-merge/Gemfile +++ b/gems/parslet-toml-merge/Gemfile @@ -6,7 +6,7 @@ # kettle-jem will then preserve content between those markers across template runs. # kettle-jem:unfreeze -source "https://gem.coop" +source 'https://gem.coop' git_source(:codeberg) { |repo_name| "https://codeberg.org/#{repo_name}" } git_source(:gitlab) { |repo_name| "https://gitlab.com/#{repo_name}" } @@ -19,57 +19,53 @@ git_source(:gitlab) { |repo_name| "https://gitlab.com/#{repo_name}" } gemspec # Local workspace dependency wiring for *_local.gemfile overrides -nomono_requirements = ["~> 1.0", ">= 1.0.8"] -gem "nomono", *nomono_requirements, require: false # ruby >= 2.2 +nomono_requirements = ['~> 1.0', '>= 1.0.8'] +gem 'nomono', *nomono_requirements, require: false # ruby >= 2.2 # Direct sibling dependencies (env-switched via STRUCTUREDMERGE_DEV) direct_sibling_gems = %w[ toml-merge ] -direct_sibling_dev = ENV.fetch("STRUCTUREDMERGE_DEV", "") +direct_sibling_dev = ENV.fetch('STRUCTUREDMERGE_DEV', '') direct_sibling_local = !direct_sibling_dev.empty? && !%w[false 0 no off].include?(direct_sibling_dev.downcase) -direct_sibling_templating = ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? +direct_sibling_templating = ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero?) - direct_sibling_dev_was_set = ENV.key?("STRUCTUREDMERGE_DEV") - direct_sibling_dev_original = ENV.fetch("STRUCTUREDMERGE_DEV", nil) + (direct_sibling_local || + ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) + direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') + direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) begin nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path("Gemfile.lock", __dir__) + nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == "nomono" } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - if nomono_locked - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] - end - end - Kernel.send(:gem, "nomono", *nomono_activation_requirements) - require "nomono/bundler" - if direct_sibling_templating && !direct_sibling_local - ENV["STRUCTUREDMERGE_DEV"] = File.expand_path("..", __dir__) + Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked end + Kernel.send(:gem, 'nomono', *nomono_activation_requirements) + require 'nomono/bundler' + ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local eval_nomono_gems( gems: direct_sibling_gems, - prefix: "STRUCTUREDMERGE", - path_env: "STRUCTUREDMERGE_DEV", - root: ["src", "my", "structuredmerge"] + prefix: 'STRUCTUREDMERGE', + path_env: 'STRUCTUREDMERGE_DEV', + root: %w[src my structuredmerge] ) rescue LoadError - warn "Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies." + warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' ensure if direct_sibling_templating && !direct_sibling_local if direct_sibling_dev_was_set - ENV["STRUCTUREDMERGE_DEV"] = direct_sibling_dev_original + ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original else - ENV.delete("STRUCTUREDMERGE_DEV") + ENV.delete('STRUCTUREDMERGE_DEV') end end end @@ -116,28 +112,28 @@ if direct_sibling_gems.any? && end # Use released TSLP with the Ruby ABI platform-gem fix. -gem "tree_sitter_language_pack", "~> 1.13", ">= 1.13.3" +gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' # Templating (env-switched: STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local paths) -eval_gemfile "gemfiles/modular/templating.gemfile" if ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? +eval_gemfile 'gemfiles/modular/templating.gemfile' if ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? # Debugging -eval_gemfile "gemfiles/modular/debug.gemfile" +eval_gemfile 'gemfiles/modular/debug.gemfile' # Code Coverage (env-switched: KETTLE_DEV_DEV=true for local paths) -eval_gemfile "gemfiles/modular/coverage.gemfile" +eval_gemfile 'gemfiles/modular/coverage.gemfile' # Linting -eval_gemfile "gemfiles/modular/style.gemfile" +eval_gemfile 'gemfiles/modular/style.gemfile' # Documentation -eval_gemfile "gemfiles/modular/documentation.gemfile" +eval_gemfile 'gemfiles/modular/documentation.gemfile' # Optional -eval_gemfile "gemfiles/modular/optional.gemfile" +eval_gemfile 'gemfiles/modular/optional.gemfile' ### Std Lib Extracted Gems -eval_gemfile "gemfiles/modular/x_std_libs.gemfile" +eval_gemfile 'gemfiles/modular/x_std_libs.gemfile' # See unlocked_deps appraisal for more details on irb inclusion -gem "irb", "~> 1.17" # ruby >= 2.7 +gem 'irb', '~> 1.17' # ruby >= 2.7 diff --git a/gems/parslet-toml-merge/Gemfile.lock b/gems/parslet-toml-merge/Gemfile.lock index bda5aae9c..62614fa1c 100644 --- a/gems/parslet-toml-merge/Gemfile.lock +++ b/gems/parslet-toml-merge/Gemfile.lock @@ -7,264 +7,13 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly - specs: - ast-crispr-markdown-markly (7.1.0) - ast-crispr (= 7.1.0) - markly-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism - specs: - ast-crispr-ruby-prism (7.1.0) - ast-crispr (= 7.1.0) - prism-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr - specs: - ast-crispr (7.1.0) - ast-merge (= 7.1.0) - service_actor (~> 3.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git - specs: - ast-merge-git (7.1.0) - ast-merge (= 7.1.0) - json-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge - specs: - ast-merge (7.1.0) - benchmark - token-resolver (~> 2.0, >= 2.0.4) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template - specs: - ast-template (7.1.0) - ast-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge - specs: - bash-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge - specs: - binary-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge - specs: - citrus-toml-merge (7.1.0) - toml-merge (= 7.1.0) - toml-rb (~> 4.1) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge - specs: - commonmarker-merge (7.1.0) - commonmarker (~> 2.2) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge - specs: - dotenv-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge - specs: - go-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge - specs: - json-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem - specs: - kettle-jem (7.1.0) - addressable (>= 2.8, < 3) - ast-crispr-markdown-markly (= 7.1.0) - ast-crispr-ruby-prism (= 7.1.0) - ast-merge (= 7.1.0) - bash-merge (= 7.1.0) - citrus-toml-merge (= 7.1.0) - commonmarker-merge (= 7.1.0) - dotenv-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-dev (~> 2.3, >= 2.3.5) - kettle-rb (~> 0.1, >= 0.1.4) - kramdown-merge (= 7.1.0) - markdown-merge (= 7.1.0) - markly-merge (= 7.1.0) - prism-merge (= 7.1.0) - psych-merge (= 7.1.0) - rbs (>= 3.10) - rbs-merge (= 7.1.0) - ruby-merge (= 7.1.0) - token-resolver (~> 2.0, >= 2.0.4) - toml-merge (= 7.1.0) - toml-rb (~> 4.2) - tree_haver (= 7.1.0) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge - specs: - kramdown-merge (7.1.0) - kramdown (~> 2.5) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge - specs: - markdown-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge - specs: - markly-merge (7.1.0) - markdown-merge (= 7.1.0) - markly (~> 0.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge - specs: - plain-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge - specs: - prism-merge (7.1.0) - prism (~> 1.6) - ruby-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge - specs: - psych-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge - specs: - rbs-merge (7.1.0) - ast-merge (= 7.1.0) - rbs (>= 3.10) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge - specs: - ruby-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge - specs: - rust-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb - specs: - smorg-rb (7.1.0) - ast-merge (= 7.1.0) - ast-merge-git (= 7.1.0) - go-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-jem (= 7.1.0) - markly-merge (= 7.1.0) - plain-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/toml-merge specs: toml-merge (7.1.0) ast-merge (= 7.1.0) tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver - specs: - tree_haver (7.1.0) - citrus (~> 3.0) - parslet (~> 2.0) - tree_sitter_language_pack (>= 1.13.2, < 2.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge - specs: - typescript-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge - specs: - yaml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge - specs: - zip-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - GEM remote: https://gem.coop/ specs: @@ -275,17 +24,26 @@ GEM bundler (>= 1.17.3) rake (>= 10) thor (>= 0.14) + appraisal2-rubocop (1.0.0) + appraisal2 (>= 3.1.4) + rubocop (>= 1.0) + version_gem (~> 1.1, >= 1.1.14) ast (2.4.3) + ast-merge (7.1.0) + benchmark + token-resolver (~> 2.0, >= 2.0.4) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) backports (3.25.3) benchmark (0.5.0) bigdecimal (4.1.2) bundler-audit (0.9.3) bundler (>= 1.2.0) thor (~> 1.0) + cgi (0.5.2) citrus (3.0.2) cmdparse (3.0.7) - commonmarker (2.9.0-x86_64-linux) - concurrent-ruby (1.3.7) + concurrent-ruby (1.3.8) date (3.5.1) debug (1.11.1) irb (~> 1.10) @@ -293,7 +51,6 @@ GEM delegate (0.6.1) diff-lcs (1.6.2) diffy (3.4.4) - docile (1.4.1) dry-configurable (1.4.0) dry-core (~> 1.0) zeitwerk (~> 2.6) @@ -324,7 +81,7 @@ GEM dry-logic (~> 1.4) zeitwerk (~> 2.6) emoji_regex (15.0.0) - erb (6.0.5) + erb (6.0.6) gem_bench (2.0.5) bundler (>= 1.14) version_gem (~> 1.1, >= 1.1.4) @@ -343,24 +100,20 @@ GEM rdoc (>= 4.0.0) reline (>= 0.4.2) json (2.21.1) - kettle-dev (2.3.7) + kettle-dev (2.3.8) emoji_regex (>= 15.0) kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) - kettle-drift (1.0.6) - version_gem (~> 1.1, >= 1.1.14) - kettle-rb (0.1.4) - kettle-soup-cover (1.1.3) - simplecov (~> 0.22) - simplecov-cobertura (~> 3.0) - simplecov-console (~> 0.9, >= 0.9.3) - simplecov-html (~> 0.13, >= 0.13.1) - simplecov-lcov (~> 0.8) + kettle-rb (0.1.5) + kettle-soup-cover (3.0.4) + kettle-wash (~> 0.1, >= 0.1.0) + simplecov (>= 1.0) + simplecov-cobertura (>= 4.0) + simplecov-console (~> 0.9, >= 0.9.5) simplecov-rcov (~> 0.3, >= 0.3.7) - simplecov_json_formatter (~> 0.1, >= 0.1.4) - version_gem (~> 1.1, >= 1.1.9) - kettle-test (2.0.11) + simplecov_lcov_formatter (~> 0.9, >= 0.9.0) + kettle-test (2.0.12) appraisal2 (~> 3.0, >= 3.0.6) backports (~> 3.0) rspec (~> 3.0) @@ -371,6 +124,8 @@ GEM silent_stream (~> 1.0, >= 1.0.12) timecop-rspec (~> 1.0, >= 1.0.3) turbo_tests2 (~> 3.1, >= 3.1.12) + kettle-wash (0.1.1) + version_gem (~> 1.1, >= 1.1.14) kramdown (2.5.2) rexml (>= 3.4.4) kramdown-parser-gfm (1.1.0) @@ -378,7 +133,6 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) - markly (0.16.0) mutex_m (0.3.0) nokogiri (1.19.4-x86_64-linux-gnu) racc (~> 1.4) @@ -458,6 +212,14 @@ GEM rubocop-ast (1.50.0) parser (>= 3.3.7.2) prism (~> 1.7) + rubocop-capybara (2.23.0) + lint_roller (~> 1.1) + rubocop (~> 1.81) + rubocop-env (0.1.0) + rubocop + rubocop-factory_bot (2.28.0) + lint_roller (~> 1.1) + rubocop (~> 1.72, >= 1.72.1) rubocop-gradual (0.4.0) benchmark diff-lcs (>= 1.2.0, < 2.0) @@ -465,13 +227,26 @@ GEM parallel (~> 1.10) rainbow (>= 2.2.2, < 4.0) rubocop (~> 1.0) - rubocop-lts (24.1.0) - rubocop-ruby3_2 (>= 3.0.0, < 4) - standard-rubocop-lts (>= 2.0.2, < 3) - version_gem (>= 1.1.2, < 3) + rubocop-lts (24.2.2) + rubocop-ruby3_2 (~> 3.0, >= 3.0.1) + standard-rubocop-lts (~> 2.0, >= 2.0.3) + version_gem (~> 1.1, >= 1.1.13) + rubocop-lts-rspec (1.0.5) + rubocop (~> 1.84, >= 1.84.2) + rubocop-env (~> 0.1, >= 0.1.0) + rubocop-factory_bot (~> 2.28, >= 2.28.0) + rubocop-rspec (~> 3.9, >= 3.9.0) + rubocop-rspec-extra (~> 0.3, >= 0.3.0) + standard (~> 1.54, >= 1.54.0) + standard-rspec (~> 0.5, >= 0.5.0) + version_gem (~> 1.1, >= 1.1.13) rubocop-md (2.0.4) lint_roller (~> 1.1) rubocop (>= 1.72.1) + rubocop-minitest (0.40.0) + lint_roller (~> 1.1) + rubocop (>= 1.75.0, < 2.0) + rubocop-ast (>= 1.38.0, < 2.0) rubocop-on-rbs (2.0.0) lint_roller (~> 1.1) rbs (~> 4.0) @@ -491,6 +266,13 @@ GEM lint_roller (~> 1.1) regexp_parser (>= 2.0) rubocop (~> 1.86, >= 1.86.2) + rubocop-rspec-extra (0.3.0) + lint_roller (~> 1.1) + rubocop (>= 1.72.1, < 2.0) + rubocop-rspec_rails (2.32.0) + lint_roller (~> 1.1) + rubocop (~> 1.72, >= 1.72.1) + rubocop-rspec (~> 3.5) rubocop-ruby3_2 (3.0.7) rubocop-gradual (~> 0.3, >= 0.3.6) rubocop-md (~> 2.0, >= 2.0.4) @@ -505,27 +287,21 @@ GEM ruby-progressbar (1.13.0) ruby_engine (2.0.3) ruby_version (1.0.3) - service_actor (3.9.4) - zeitwerk (>= 1.0) silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) - simplecov (0.22.0) - docile (~> 1.1) - simplecov-html (~> 0.11) - simplecov_json_formatter (~> 0.1) - simplecov-cobertura (3.2.0) + simplecov (1.0.2) + simplecov-cobertura (4.0.0) rexml - simplecov (~> 0.19) + simplecov (~> 1.0) simplecov-console (0.9.5) ansi simplecov terminal-table - simplecov-html (0.13.2) - simplecov-lcov (0.9.0) simplecov-rcov (0.3.7) simplecov (>= 0.4.1) - simplecov_json_formatter (0.1.4) + simplecov_lcov_formatter (0.9.0) + simplecov (>= 0.18) sorbet-runtime (0.6.13347) standard (1.56.0) language_server-protocol (~> 3.17.0.2) @@ -539,6 +315,12 @@ GEM standard-performance (1.9.0) lint_roller (~> 1.1) rubocop-performance (~> 1.26.0) + standard-rspec (0.5.0) + lint_roller (>= 1.0) + rubocop-capybara (~> 2.23) + rubocop-factory_bot (~> 2.27) + rubocop-rspec (~> 3.9) + rubocop-rspec_rails (~> 2.31) standard-rubocop-lts (2.0.10) standard (~> 1.54, >= 1.54.0) standard-custom (~> 1.0, >= 1.0.2) @@ -556,14 +338,16 @@ GEM delegate (~> 0.1) rspec (~> 3.0) timecop (>= 0.7, < 1) - token-resolver (2.0.4) + token-resolver (2.0.5) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.14) toml (0.3.0) parslet (>= 1.8.0, < 3.0.0) - toml-rb (4.2.0) - citrus (~> 3.0, > 3.0) - racc (~> 1.7) + tree_haver (7.1.0) + citrus (~> 3.0) + parslet (~> 2.0) + tree_sitter_language_pack (>= 1.13.2, < 2.0) + version_gem (~> 1.1, >= 1.1.9) tree_sitter_language_pack (1.13.3-x86_64-linux) sorbet-runtime (~> 0.5) tsort (0.2.0) @@ -575,6 +359,7 @@ GEM unicode-emoji (~> 4.1) unicode-emoji (4.2.0) version_gem (1.1.14) + webrick (1.9.2) yaml-converter (0.2.3) hexapdf (>= 1.8, < 2) kramdown (>= 2.4, < 3) @@ -607,104 +392,70 @@ PLATFORMS DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) - ast-crispr! - ast-crispr-markdown-markly! - ast-crispr-ruby-prism! - ast-merge! - ast-merge-git! - ast-template! - bash-merge! + appraisal2-rubocop (~> 1.0, >= 1.0.0) benchmark (~> 0.5, >= 0.5.0) - binary-merge! bundler-audit (~> 0.9.3) - citrus-toml-merge! - commonmarker-merge! + cgi (~> 0.5) debug (>= 1.1) - dotenv-merge! - erb (~> 6.0, >= 6.0.4) + erb (~> 6.0, >= 6.0.6) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.0) - go-merge! irb (~> 1.17) - json-merge! kettle-dev (~> 2.0, >= 2.2.25) - kettle-drift (~> 1.0, >= 1.0.5) - kettle-jem! - kettle-soup-cover (~> 1.0, >= 1.1.3) + kettle-soup-cover (~> 3.0, >= 3.0.3) kettle-test (~> 2.0, >= 2.0.9) - kramdown (~> 2.5, >= 2.5.1) - kramdown-merge! + kramdown (~> 2.5, >= 2.5.2) kramdown-parser-gfm (~> 1.1) - markdown-merge! - markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) parslet-toml-merge! - plain-merge! - prism-merge! - psych-merge! rake (~> 13.0) rbs (>= 3.0) - rbs-merge! rdoc (~> 6.11) - reek (~> 6.5) + reek (~> 6.5, >= 6.5.0) require_bench (~> 1.0, >= 1.0.4) - rubocop-lts (~> 24.1.0) - rubocop-on-rbs (~> 2.0) + rubocop-gradual (~> 0.4, >= 0.4.0) + rubocop-lts (~> 24.2, >= 24.2.1) + rubocop-lts-rspec (~> 1.0, >= 1.0.5) + rubocop-minitest (~> 0.40, >= 0.40.0) + rubocop-on-rbs (~> 2.0, >= 2.0.0) rubocop-packaging (~> 0.6, >= 0.6.0) - rubocop-rspec (~> 3.6) - rubocop-ruby3_2 (~> 3.0.0) - ruby-merge! + rubocop-ruby3_2 (~> 3.0, >= 3.0.6) ruby-progressbar (~> 1.13) - rust-merge! - smorg-rb! - standard (>= 1.50) + standard (~> 1.56, >= 1.56.0) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) toml-merge! - tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) - typescript-merge! - yaml-converter (~> 0.1) - yaml-merge! - yard (~> 0.9, >= 0.9.44) - yard-fence (~> 0.9, >= 0.9.1) + webrick (~> 1.9) + yaml-converter (~> 0.2, >= 0.2.3) + yard (~> 0.9, >= 0.9.45) + yard-fence (~> 0.9, >= 0.9.6) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) - yard-timekeeper (~> 0.1) - yard-yaml (~> 0.1, >= 0.1.2) - zip-merge! + yard-timekeeper (~> 0.2, >= 0.2.4) + yard-yaml (~> 0.2, >= 0.2.3) CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af ansi (1.6.0) sha256=ac9ea0c0ea8d32fb4e271348e609963ac78882f34b73836c2a02b3622e666658 appraisal2 (3.2.0) sha256=ccd0b767ac4060cd7af6d16747459b6990f49c39c7b4fb1f7d1146b1e97c492f + appraisal2-rubocop (1.0.0) sha256=b71410fbb014befda5340605a605b7f6f3f012739baf0acc5b4351b592c3258d ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 - ast-crispr (7.1.0) - ast-crispr-markdown-markly (7.1.0) - ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) - ast-merge-git (7.1.0) - ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 - bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd - binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 + cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 - citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 - commonmarker (2.9.0-x86_64-linux) - commonmarker-merge (7.1.0) - concurrent-ruby (1.3.7) sha256=4412caec3a5ea2e5fdc52076724c071a81f2c0593d83b2ac8cbb8ca63b3151b0 + concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 - docile (1.4.1) sha256=96159be799bfa73cdb721b840e9802126e4e03dfc26863db73647204c727f21e - dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -713,31 +464,24 @@ CHECKSUMS dry-schema (1.16.0) sha256=cd3aaeabc0f1af66ec82a29096d4c4fb92a0a58b9dae29a22b1bbceb78985727 dry-types (1.9.1) sha256=baebeecdb9f8395d6c9d227b62011279440943e3ef2468fe8ccc1ba11467f178 emoji_regex (15.0.0) sha256=a508b2c0bee561169564e0aec96085020c900520d335e5533fd8e78e59493829 - erb (6.0.5) sha256=858e63488cb796c9daba8b6e9ff4b3879c395022049be9a66a8e00980e612eac + erb (6.0.6) sha256=a9b24986700f5bf127c4f297c5403c3ca41b83b0a316c0cd09a096b56e644ae5 gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f - go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 - json-merge (7.1.0) - kettle-dev (2.3.7) sha256=eb370113cd030d03cbe2d33b31c99858951017e5ad21a17e9ed89dc3770028ee - kettle-drift (1.0.6) - kettle-jem (7.1.0) - kettle-rb (0.1.4) sha256=9cef7ce4f7021666b7222292f29051e51eaf042e8a5db11f3f4dd72f74243fc1 - kettle-soup-cover (1.1.3) sha256=a373827da22a7131d093afd32945e5b7d7a10a01ebfdded8fd2cb8230d69c8ad - kettle-test (2.0.11) sha256=c710c90f7ab79d51f9452f0c09f5f90657e7a893f63583855c164d0b1b107ab2 + kettle-dev (2.3.8) sha256=9d716ff21c660a730cb4e8d41e2e2f0630a28167a354b6e2924e242102aef72c + kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f + kettle-soup-cover (3.0.4) + kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 + kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa - kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 - markdown-merge (7.1.0) - markly (0.16.0) - markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-x86_64-linux-gnu) sha256=379fae440b28915e3f19d752ce2dcf8465ed2b2fbefd2a7ca0dd497bc981a06a nomono (1.0.9) @@ -748,19 +492,15 @@ CHECKSUMS parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 parslet-toml-merge (7.1.0) - plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 - prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 - psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 - rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb @@ -778,35 +518,37 @@ CHECKSUMS rspec_junit_formatter (0.6.0) sha256=40dde674e6ae4e6cc0ff560da25497677e34fefd2338cc467a8972f602b62b15 rubocop (1.88.2) sha256=8def251c90cd955feb4daa3edc0ab56893250c4ce90ef81e6c80c03f9a939bbf rubocop-ast (1.50.0) sha256=b9ca88300da0803ee222ad20cdb30494c0a784eed06fdc35d254b06d662788db + rubocop-capybara (2.23.0) sha256=f9ea1ba3a7561ee8e88cf76fc378ce517ce5327155f305ee7b5c2500e5aee357 + rubocop-env (0.1.0) sha256=5ab9a259e71822bf514c8e900a9b68cc2f74ccc87d5493efcd03213f3068e718 + rubocop-factory_bot (2.28.0) sha256=4b17fc02124444173317e131759d195b0d762844a71a29fe8139c1105d92f0cb rubocop-gradual (0.4.0) sha256=9c7e584e6fef6c2539266a193a4572c970c22f99046fd6b0305bdde6228f96ad - rubocop-lts (24.1.0) sha256=9dcad4db2da2fe2f1f77f98c917d70e7c43eded703da14cd201d4be52a9272aa + rubocop-lts (24.2.2) sha256=be6c745e1bb61daebd6af3cc3227c60f95be9f642a080773cad7df14c5f9f174 + rubocop-lts-rspec (1.0.5) sha256=439552fd27440802cc499889e013bffa28aadc41adae5d4dfff3d984a2a809b4 rubocop-md (2.0.4) sha256=0d076b6b5e99dea2ddc928c4bd702497decb9a8400da7808091e02ebcafcfb93 + rubocop-minitest (0.40.0) sha256=353c698199115f12151144cf0b5a96f69bb9d77b660cf6536df2c4250c672a9d rubocop-on-rbs (2.0.0) sha256=ce74d1b3d5daead19f4b611623656c185821dfc9aed9c7079bb1e5d7d7c464be rubocop-packaging (0.6.0) sha256=fb92bd0fb48e6f8cdb1648d2249b0cd51c2497dcc87340132d22f01edbf558a7 rubocop-performance (1.26.1) sha256=cd19b936ff196df85829d264b522fd4f98b6c89ad271fa52744a8c11b8f71834 rubocop-rake (0.7.1) sha256=3797f2b6810c3e9df7376c26d5f44f3475eda59eb1adc38e6f62ecf027cbae4d rubocop-rspec (3.10.2) sha256=0b3e2ecc592cd10ecbf0095bb58d1e357905276e069643523cc19eb7495f65e2 + rubocop-rspec-extra (0.3.0) sha256=ee4b6484d0332a0d23c4a465eeb607e41888eb3d4ed479f850b9f5212514f787 + rubocop-rspec_rails (2.32.0) sha256=4a0d641c72f6ebb957534f539d9d0a62c47abd8ce0d0aeee1ef4701e892a9100 rubocop-ruby3_2 (3.0.7) sha256=f53dd6d286fb05186214fc6ec116783e7f837030918e8931c05de773e98f8466 rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 - ruby-merge (7.1.0) ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 - rust-merge (7.1.0) - service_actor (3.9.4) silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 - simplecov (0.22.0) sha256=fe2622c7834ff23b98066bb0a854284b2729a569ac659f82621fc22ef36213a5 - simplecov-cobertura (3.2.0) sha256=70d702658677fcb20e5aceb6915ccf8bc62ff2ccd38b62b3ad5c9db5c0888740 + simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 + simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 - simplecov-html (0.13.2) sha256=bd0b8e54e7c2d7685927e8d6286466359b6f16b18cb0df47b508e8d73c777246 - simplecov-lcov (0.9.0) sha256=7a77a31e200a595ed4b0249493056efd0c920601f53d2ef135ca34ee796346cd simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc - simplecov_json_formatter (0.1.4) sha256=529418fbe8de1713ac2b2d612aa3daa56d316975d307244399fa4838c601b428 - smorg-rb (7.1.0) + simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed sorbet-runtime (0.6.13347) sha256=54e7221d9f4b63f58aec79f3043752a9ba7810347c6ae0d903531591cc2d5f01 standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b standard-performance (1.9.0) sha256=49483d31be448292951d80e5e67cdcb576c2502103c7b40aec6f1b6e9c88e3f2 + standard-rspec (0.5.0) sha256=64d396524a65af47f5331b423d8cdd313e0267401647bb7892489ca89dad2973 standard-rubocop-lts (2.0.10) sha256=89708a505b7d8b24d2ac399a7520fcb9e764abc2ecb4289b631b5fe0e3b76617 stone_checksums (1.0.6) sha256=c775f830513d6c6ab26e31d1a5fbecd4c4e39002663d4d9f8fa96e97990b5298 stringio (3.2.0) sha256=c37cb2e58b4ffbd33fe5cd948c05934af997b36e0b6ca6fdf43afa234cf222e1 @@ -815,20 +557,18 @@ CHECKSUMS thor (1.5.0) sha256=e3a9e55fe857e44859ce104a84675ab6e8cd59c650a49106a05f55f136425e73 timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 - token-resolver (2.0.4) sha256=33b926958f504525bba3ed511ab66fbcbf8ef30390815e931436b30f27ffcad0 + token-resolver (2.0.5) toml (0.3.0) sha256=0a91d0f76a9036e84e44f95693b12f58d358c1df3ac8e3b5271f2056ecc6e4b9 toml-merge (7.1.0) - toml-rb (4.2.0) tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 - typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 + webrick (1.9.2) sha256=beb4a15fc474defed24a3bda4ffd88a490d517c9e4e6118c3edce59e45864131 yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 - yaml-merge (7.1.0) yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd @@ -836,7 +576,6 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 - zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH diff --git a/gems/parslet-toml-merge/README.md b/gems/parslet-toml-merge/README.md index 76f1f2864..4739c0210 100644 --- a/gems/parslet-toml-merge/README.md +++ b/gems/parslet-toml-merge/README.md @@ -36,7 +36,7 @@ I've summarized my thoughts in [this blog post](https://dev.to/galtzo/hostile-ta | Tokens to Remember | [![Gem name][⛳️name-img]][⛳️gem-name] [![Gem namespace][⛳️namespace-img]][⛳️gem-namespace] | |-------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | Works with MRI Ruby 4 | [![Ruby current Compat][💎ruby-c-i]][🚎11-c-wf]| -| Support & Community | [![Join Me on Daily.dev's RubyFriends][✉️ruby-friends-img]][✉️ruby-friends] [![Live Chat on Discord][✉️discord-invite-img-ftb]][✉️discord-invite] [![Get help from me on Upwork][👨🏼‍🏫expsup-upwork-img]][👨🏼‍🏫expsup-upwork] [![Get help from me on Codementor][👨🏼‍🏫expsup-codementor-img]][👨🏼‍🏫expsup-codementor] | +| Support & Community | [![Join Me on Daily.dev's RubyFriends][✉️ruby-friends-img]][✉️ruby-friends] [![Get help from RubyForum][✉️ruby-forum-img]][✉️ruby-forum] [![Live Chat on Discord][✉️discord-invite-img-ftb]][✉️discord-invite] [![Get help from me on Upwork][👨🏼‍🏫expsup-upwork-img]][👨🏼‍🏫expsup-upwork] [![Get help from me on Codementor][👨🏼‍🏫expsup-codementor-img]][👨🏼‍🏫expsup-codementor] | | Source | [![Source on GitLab.com][📜src-gl-img]][📜src-gl] [![Source on CodeBerg.org][📜src-cb-img]][📜src-cb] [![Source on Github.com][📜src-gh-img]][📜src-gh] [![The best SHA: dQw4w9WgXcQ!][🧮kloc-img]][🧮kloc] | | Documentation | [![Current release on RubyDoc.info][📜docs-cr-rd-img]][🚎yard-current] [![YARD on Galtzo.com][📜docs-head-rd-img]][🚎yard-head] [![Maintainer Blog][🚂maint-blog-img]][🚂maint-blog] [![GitLab Wiki][📜gl-wiki-img]][📜gl-wiki] [![GitHub Wiki][📜gh-wiki-img]][📜gh-wiki] | | Compliance | [![License: AGPL-3.0-only OR PolyForm-Small-Business-1.0.0][📄license-img]][📄license] [![Apache license compatibility: Category X][📄license-compat-img]][📄license-compat] [![📄ilo-declaration-img]][📄ilo-declaration] [![Security Policy][🔐security-img]][🔐security] [![Contributor Covenant 2.1][🪇conduct-img]][🪇conduct] [![SemVer 2.0.0][📌semver-img]][📌semver] | @@ -181,6 +181,8 @@ If none of the available licenses suit your use case, please [contact us](mailto [✉️discord-invite-img-ftb]: https://img.shields.io/discord/1373797679469170758?style=for-the-badge&logo=discord [✉️ruby-friends-img]: https://img.shields.io/badge/daily.dev-%F0%9F%92%8E_Ruby_Friends-0A0A0A?style=for-the-badge&logo=dailydotdev&logoColor=white [✉️ruby-friends]: https://app.daily.dev/squads/rubyfriends +[✉️ruby-forum-img]: https://img.shields.io/badge/RubyForum-Help-CC342D?style=for-the-badge&logo=ruby&logoColor=white +[✉️ruby-forum]: https://www.rubyforum.org/c/help/8 [✇bundle-group-pattern]: https://gist.github.com/pboling/4564780 [⛳️gem-namespace]: https://github.com/structuredmerge/structuredmerge-ruby/tree/main/gems/parslet-toml-merge [⛳️namespace-img]: https://img.shields.io/badge/namespace-Parslet::Toml::Merge-3C2D2D.svg?style=square&logo=ruby&logoColor=white diff --git a/gems/parslet-toml-merge/Rakefile b/gems/parslet-toml-merge/Rakefile index 0285d07bd..79680a6ab 100644 --- a/gems/parslet-toml-merge/Rakefile +++ b/gems/parslet-toml-merge/Rakefile @@ -130,23 +130,23 @@ end ### DUPLICATE DRIFT TASKS begin - require "kettle/drift" + require 'kettle/drift' Kettle::Drift.install_tasks rescue LoadError - desc("(stub) kettle:drift:check is unavailable") - task("kettle:drift:check") do + desc('(stub) kettle:drift:check is unavailable') + task('kettle:drift:check') do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc("(stub) kettle:drift:update is unavailable") - task("kettle:drift:update") do + desc('(stub) kettle:drift:update is unavailable') + task('kettle:drift:update') do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc("(stub) kettle:drift:force_update is unavailable") - task("kettle:drift:force_update") do + desc('(stub) kettle:drift:force_update is unavailable') + task('kettle:drift:force_update') do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc("(stub) kettle:drift is unavailable") - task("kettle:drift" => "kettle:drift:update") + desc('(stub) kettle:drift is unavailable') + task('kettle:drift' => 'kettle:drift:update') end ### TEMPLATING TASKS diff --git a/gems/parslet-toml-merge/gemfiles/modular/cgi/r4/v0.5.gemfile b/gems/parslet-toml-merge/gemfiles/modular/cgi/r4/v0.5.gemfile new file mode 100644 index 000000000..17ad97260 --- /dev/null +++ b/gems/parslet-toml-merge/gemfiles/modular/cgi/r4/v0.5.gemfile @@ -0,0 +1 @@ +gem 'cgi', '~> 0.5' diff --git a/gems/parslet-toml-merge/gemfiles/modular/cgi/vHEAD.gemfile b/gems/parslet-toml-merge/gemfiles/modular/cgi/vHEAD.gemfile new file mode 100644 index 000000000..650fbf033 --- /dev/null +++ b/gems/parslet-toml-merge/gemfiles/modular/cgi/vHEAD.gemfile @@ -0,0 +1 @@ +gem 'cgi', '>= 0.5' diff --git a/gems/parslet-toml-merge/gemfiles/modular/coverage.gemfile b/gems/parslet-toml-merge/gemfiles/modular/coverage.gemfile index f96d50954..b93014b6b 100644 --- a/gems/parslet-toml-merge/gemfiles/modular/coverage.gemfile +++ b/gems/parslet-toml-merge/gemfiles/modular/coverage.gemfile @@ -7,7 +7,7 @@ if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? # Coverage (remote/released) platform :mri do - gem 'kettle-soup-cover', '~> 1.0', '>= 1.1.3', require: false + gem 'kettle-soup-cover', '~> 3.0', '>= 3.0.3', require: false end else eval_gemfile 'coverage_local.gemfile' diff --git a/gems/parslet-toml-merge/gemfiles/modular/coverage_local.gemfile b/gems/parslet-toml-merge/gemfiles/modular/coverage_local.gemfile index 946959153..86d310542 100644 --- a/gems/parslet-toml-merge/gemfiles/modular/coverage_local.gemfile +++ b/gems/parslet-toml-merge/gemfiles/modular/coverage_local.gemfile @@ -3,13 +3,33 @@ # Local path overrides for development. # Loaded by the associated non-local gemfile when KETTLE_DEV_DEV != "false". -require 'nomono/bundler' unless defined?(Nomono) +# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. +# Bundler records that dependency during Gemfile evaluation, but it does not +# activate that exact version before the immediate `require "nomono/bundler"`. +# If multiple compatible nomono versions are installed, RubyGems may activate +# the newest installed version while Gemfile.lock pins an older compatible one; +# Bundler then aborts with "already activated nomono X, but your Gemfile +# requires nomono Y". Prefer the locked compatible version when present, then +# activate it explicitly before requiring the Bundler DSL extension used below. +nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] +nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) +if File.file?(nomono_lockfile) + nomono_locked_spec = Bundler::LockfileParser + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } + nomono_locked = nomono_locked_spec && + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked +end +Kernel.send(:gem, 'nomono', *nomono_activation_requirements) +require 'nomono/bundler' local_gems = %w[kettle-dev kettle-test kettle-soup-cover kettle-drift] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) local_gems_to_eval = local_gems - %w[parslet-toml-merge] - declared_gems -# export KETTLE_DEV_DEV=/path/to/kettle-rb +# export KETTLE_DEV_DEV=/path/to/my platform :mri do eval_nomono_gems( gems: local_gems_to_eval, diff --git a/gems/parslet-toml-merge/gemfiles/modular/documentation.gemfile b/gems/parslet-toml-merge/gemfiles/modular/documentation.gemfile index dff5cc108..9d4535f12 100644 --- a/gems/parslet-toml-merge/gemfiles/modular/documentation.gemfile +++ b/gems/parslet-toml-merge/gemfiles/modular/documentation.gemfile @@ -7,17 +7,17 @@ # # Documentation -gem 'kramdown', '~> 2.5', '>= 2.5.1', require: false # Ruby >= 2.5 +gem 'kramdown', '~> 2.5', '>= 2.5.2', require: false # Ruby >= 2.5 gem 'kramdown-parser-gfm', '~> 1.1', require: false # Ruby >= 2.3 -gem 'yaml-converter', '~> 0.1', require: false # Ruby >= 3.2 -gem 'yard', '~> 0.9', '>= 0.9.44', require: false +gem 'yaml-converter', '~> 0.2', '>= 0.2.3', require: false # Ruby >= 3.2 +gem 'yard', '~> 0.9', '>= 0.9.45', require: false gem 'yard-junk', '~> 0.1', '>= 0.1.0', require: false # Ruby >= 3.1 gem 'yard-relative_markdown_links', '~> 0.6', require: false if ENV.fetch('GALTZO_FLOSS_DEV', 'false').casecmp('false').zero? - gem 'yard-fence', '~> 0.9', '>= 0.9.1', require: false # Ruby >= 3.2 - gem 'yard-timekeeper', '~> 0.1', require: false - gem 'yard-yaml', '~> 0.1', '>= 0.1.2', require: false + gem 'yard-fence', '~> 0.9', '>= 0.9.6', require: false # Ruby >= 3.2 + gem 'yard-timekeeper', '~> 0.2', '>= 0.2.4', require: false + gem 'yard-yaml', '~> 0.2', '>= 0.2.3', require: false else eval_gemfile 'documentation_local.gemfile' end diff --git a/gems/parslet-toml-merge/gemfiles/modular/documentation_local.gemfile b/gems/parslet-toml-merge/gemfiles/modular/documentation_local.gemfile index 4d4c2bd95..62ccb64cd 100644 --- a/gems/parslet-toml-merge/gemfiles/modular/documentation_local.gemfile +++ b/gems/parslet-toml-merge/gemfiles/modular/documentation_local.gemfile @@ -3,13 +3,35 @@ # Local path overrides for development. # Loaded by the associated non-local gemfile when GALTZO_FLOSS_DEV != "false". -require 'nomono/bundler' unless defined?(Nomono) +# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. +# Bundler records that dependency during Gemfile evaluation, but it does not +# activate that exact version before the immediate `require "nomono/bundler"`. +# If multiple compatible nomono versions are installed, RubyGems may activate +# the newest installed version while Gemfile.lock pins an older compatible one; +# Bundler then aborts with "already activated nomono X, but your Gemfile +# requires nomono Y". Prefer the locked compatible version when present, then +# activate it explicitly before requiring the Bundler DSL extension used below. +nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] +nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) +if File.file?(nomono_lockfile) + nomono_locked_spec = Bundler::LockfileParser + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } + nomono_locked = nomono_locked_spec && + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked +end +Kernel.send(:gem, 'nomono', *nomono_activation_requirements) +require 'nomono/bundler' local_gems = %w[yard-fence yard-timekeeper yard-yaml] +declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) +local_gems_to_eval = local_gems - %w[parslet-toml-merge] - declared_gems # export GALTZO_FLOSS_DEV=/path/to/galtzo-floss eval_nomono_gems( - gems: local_gems, + gems: local_gems_to_eval, prefix: 'GALTZO_FLOSS', path_env: 'GALTZO_FLOSS_DEV', vendored_gems_env: 'GALTZO_FLOSS_VENDORED_GEMS', diff --git a/gems/parslet-toml-merge/gemfiles/modular/erb/r3/v5.0.gemfile b/gems/parslet-toml-merge/gemfiles/modular/erb/r3/v5.0.gemfile index 0e3bf1b97..ec7ff451f 100644 --- a/gems/parslet-toml-merge/gemfiles/modular/erb/r3/v5.0.gemfile +++ b/gems/parslet-toml-merge/gemfiles/modular/erb/r3/v5.0.gemfile @@ -1 +1 @@ -gem 'erb', '~> 6.0', '>= 6.0.4' # ruby >= 3.2.0 +gem 'erb', '~> 6.0', '>= 6.0.6' # ruby >= 3.2.0 diff --git a/gems/parslet-toml-merge/gemfiles/modular/erb/r4/v5.0.gemfile b/gems/parslet-toml-merge/gemfiles/modular/erb/r4/v5.0.gemfile index 0e3bf1b97..ec7ff451f 100644 --- a/gems/parslet-toml-merge/gemfiles/modular/erb/r4/v5.0.gemfile +++ b/gems/parslet-toml-merge/gemfiles/modular/erb/r4/v5.0.gemfile @@ -1 +1 @@ -gem 'erb', '~> 6.0', '>= 6.0.4' # ruby >= 3.2.0 +gem 'erb', '~> 6.0', '>= 6.0.6' # ruby >= 3.2.0 diff --git a/gems/parslet-toml-merge/gemfiles/modular/json/truffleruby_22_3.gemfile b/gems/parslet-toml-merge/gemfiles/modular/json/truffleruby_22_3.gemfile new file mode 100644 index 000000000..9b2f8d96a --- /dev/null +++ b/gems/parslet-toml-merge/gemfiles/modular/json/truffleruby_22_3.gemfile @@ -0,0 +1,6 @@ +# frozen_string_literal: true + +if RUBY_ENGINE == 'truffleruby' && RUBY_ENGINE_VERSION.start_with?('22.3') + # TruffleRuby 22.3 ships the json default gem from its emulated MRI Ruby. + gem 'json', '= 2.5.1' +end diff --git a/gems/parslet-toml-merge/gemfiles/modular/json/truffleruby_23_0.gemfile b/gems/parslet-toml-merge/gemfiles/modular/json/truffleruby_23_0.gemfile new file mode 100644 index 000000000..d787a5ef4 --- /dev/null +++ b/gems/parslet-toml-merge/gemfiles/modular/json/truffleruby_23_0.gemfile @@ -0,0 +1,6 @@ +# frozen_string_literal: true + +if RUBY_ENGINE == 'truffleruby' && RUBY_ENGINE_VERSION.start_with?('23.0') + # TruffleRuby 23.0 ships the json default gem from its emulated MRI Ruby. + gem 'json', '= 2.6.1' +end diff --git a/gems/parslet-toml-merge/gemfiles/modular/json/truffleruby_23_1.gemfile b/gems/parslet-toml-merge/gemfiles/modular/json/truffleruby_23_1.gemfile new file mode 100644 index 000000000..d78486b0e --- /dev/null +++ b/gems/parslet-toml-merge/gemfiles/modular/json/truffleruby_23_1.gemfile @@ -0,0 +1,6 @@ +# frozen_string_literal: true + +if RUBY_ENGINE == 'truffleruby' && RUBY_ENGINE_VERSION.start_with?('23.1') + # TruffleRuby 23.1 ships the json default gem from its emulated MRI Ruby. + gem 'json', '= 2.6.3' +end diff --git a/gems/parslet-toml-merge/gemfiles/modular/optional.gemfile b/gems/parslet-toml-merge/gemfiles/modular/optional.gemfile index 193b4bdf1..9ea429538 100644 --- a/gems/parslet-toml-merge/gemfiles/modular/optional.gemfile +++ b/gems/parslet-toml-merge/gemfiles/modular/optional.gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -# To retain during parslet-toml-merge templating: +# To retain during kettle-jem templating: # kettle-jem:freeze # # ... your code # kettle-jem:unfreeze @@ -10,7 +10,6 @@ # Required for curated binstubs generated by kettle-jem install gem 'rbs', '>= 3.0', require: false # ruby >= 3.1 -gem 'stone_checksums', '~> 1.0', '>= 1.0.3', require: false # ruby >= 2.2 # Required for kettle-pre-release # URL parsing with Unicode support (falls back to URI if not available) diff --git a/gems/parslet-toml-merge/gemfiles/modular/runtime_heads.gemfile b/gems/parslet-toml-merge/gemfiles/modular/runtime_heads.gemfile index 530311095..ebf17c529 100644 --- a/gems/parslet-toml-merge/gemfiles/modular/runtime_heads.gemfile +++ b/gems/parslet-toml-merge/gemfiles/modular/runtime_heads.gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -# To retain during parslet-toml-merge templating: +# To retain during kettle-jem templating: # kettle-jem:freeze # # ... your code # kettle-jem:unfreeze @@ -8,7 +8,4 @@ # Test against HEAD of runtime dependencies so we can proactively file bugs -# Ruby >= 2.2 -gem 'version_gem', github: 'ruby-oauth/version_gem', branch: 'main' - eval_gemfile('x_std_libs/vHEAD.gemfile') diff --git a/gems/parslet-toml-merge/gemfiles/modular/style.gemfile b/gems/parslet-toml-merge/gemfiles/modular/style.gemfile index 0c3ec227c..4dbcc02c0 100644 --- a/gems/parslet-toml-merge/gemfiles/modular/style.gemfile +++ b/gems/parslet-toml-merge/gemfiles/modular/style.gemfile @@ -1,27 +1,30 @@ # frozen_string_literal: true -# To retain during parslet-toml-merge templating: +# To retain during kettle-jem templating: # kettle-jem:freeze # # ... your code # kettle-jem:unfreeze # -# We run rubocop on the latest version of Ruby, -# but in support of the oldest supported version of Ruby +# Style tasks run on the latest Ruby; RuboCop-LTS selects the compatibility +# rules for the configured Ruby floor independently from task dependency floors. -gem 'reek', '~> 6.5' +gem 'reek', '~> 6.5', '>= 6.5.0' platform :mri do - gem 'rubocop-on-rbs', '~> 2.0' # ruby >= 3.2.0 + gem 'appraisal2-rubocop', '~> 1.0', '>= 1.0.0', require: false + gem 'rubocop-gradual', '~> 0.4', '>= 0.4.0' + gem 'rubocop-minitest', '~> 0.40', '>= 0.40.0' + gem 'rubocop-on-rbs', '~> 2.0', '>= 2.0.0' # ruby >= 3.2.0 # gem "rubocop", "~> 1.73", ">= 1.73.2" # constrained by standard gem 'rubocop-packaging', '~> 0.6', '>= 0.6.0' - gem 'standard', '>= 1.50' + gem 'standard', '~> 1.56', '>= 1.56.0' if ENV.fetch('RUBOCOP_LTS_LOCAL', 'false').casecmp('false').zero? - gem 'rubocop-lts', '~> 24.1.0' - # "rubocop-lts-rspec" can't add here until other gems are updated. - gem 'rubocop-rspec', '~> 3.6' - gem 'rubocop-ruby3_2', '~> 3.0.0' + declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) + gem 'rubocop-lts', '~> 24.2', '>= 24.2.1' unless declared_gems.include?('rubocop-lts') + gem 'rubocop-lts-rspec', '~> 1.0', '>= 1.0.5' unless declared_gems.include?('rubocop-lts-rspec') + gem 'rubocop-ruby3_2', '~> 3.0', '>= 3.0.6' unless declared_gems.include?('rubocop-ruby3_2') else eval_gemfile('style_local.gemfile') end diff --git a/gems/parslet-toml-merge/gemfiles/modular/style_local.gemfile b/gems/parslet-toml-merge/gemfiles/modular/style_local.gemfile index ce75bbe21..12fec3205 100644 --- a/gems/parslet-toml-merge/gemfiles/modular/style_local.gemfile +++ b/gems/parslet-toml-merge/gemfiles/modular/style_local.gemfile @@ -1,19 +1,41 @@ # frozen_string_literal: true -# We run rubocop on the latest version of Ruby, -# but in support of the oldest supported version of Ruby +# Style tasks run on the latest Ruby; RuboCop-LTS selects the compatibility +# rules for the configured Ruby floor independently from task dependency floors. # Local path overrides for development. # Loaded by the associated non-local gemfile when RUBOCOP_LTS_LOCAL != "false". -require 'nomono/bundler' unless defined?(Nomono) +# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. +# Bundler records that dependency during Gemfile evaluation, but it does not +# activate that exact version before the immediate `require "nomono/bundler"`. +# If multiple compatible nomono versions are installed, RubyGems may activate +# the newest installed version while Gemfile.lock pins an older compatible one; +# Bundler then aborts with "already activated nomono X, but your Gemfile +# requires nomono Y". Prefer the locked compatible version when present, then +# activate it explicitly before requiring the Bundler DSL extension used below. +nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] +nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) +if File.file?(nomono_lockfile) + nomono_locked_spec = Bundler::LockfileParser + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } + nomono_locked = nomono_locked_spec && + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked +end +Kernel.send(:gem, 'nomono', *nomono_activation_requirements) +require 'nomono/bundler' local_gems = %w[rubocop-lts rubocop-lts-rspec rubocop-ruby3_2 standard-rubocop-lts] +declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) +local_gems_to_eval = local_gems - %w[parslet-toml-merge] - declared_gems # export VENDORED_GEMS=rubocop-lts,rubocop-lts-rspec,rubocop-ruby3_2,standard-rubocop-lts platform :mri do eval_nomono_gems( - gems: local_gems, + gems: local_gems_to_eval, prefix: 'RUBOCOP_LTS', path_env: 'RUBOCOP_LTS_LOCAL', vendored_gems_env: 'VENDORED_GEMS', diff --git a/gems/parslet-toml-merge/gemfiles/modular/templating.gemfile b/gems/parslet-toml-merge/gemfiles/modular/templating.gemfile index 2ddc9433f..a672de184 100644 --- a/gems/parslet-toml-merge/gemfiles/modular/templating.gemfile +++ b/gems/parslet-toml-merge/gemfiles/modular/templating.gemfile @@ -12,13 +12,13 @@ end if kettle_remote # Template/plugin checks for released installs. - gem 'kettle-drift', '~> 1.0', '>= 1.0.5', require: false + gem 'kettle-drift', '~> 1.0', '>= 1.0.6', require: false end # Set STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local development with path-based dependencies. # When false (default / CI), released kettle-jem brings merge gems and parser dependencies. # Local path overrides bring the same dependencies from sibling gemspecs. # -# Set KETTLE_DEV_DEV=/path/to/kettle-rb for local development with Kettle plugin gems. +# Set KETTLE_DEV_DEV=/path/to/my for local development with Kettle plugin gems. # When false (default / CI), released Kettle plugin gems are used. eval_gemfile 'templating_local.gemfile' unless structuredmerge_remote && kettle_remote diff --git a/gems/parslet-toml-merge/gemfiles/modular/templating_local.gemfile b/gems/parslet-toml-merge/gemfiles/modular/templating_local.gemfile index c4b0a5508..992e7dfe6 100644 --- a/gems/parslet-toml-merge/gemfiles/modular/templating_local.gemfile +++ b/gems/parslet-toml-merge/gemfiles/modular/templating_local.gemfile @@ -4,7 +4,27 @@ # Loaded by the associated non-local gemfile when STRUCTUREDMERGE_DEV or KETTLE_DEV_DEV # is not "false". -require 'nomono/bundler' unless defined?(Nomono) +# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. +# Bundler records that dependency during Gemfile evaluation, but it does not +# activate that exact version before the immediate `require "nomono/bundler"`. +# If multiple compatible nomono versions are installed, RubyGems may activate +# the newest installed version while Gemfile.lock pins an older compatible one; +# Bundler then aborts with "already activated nomono X, but your Gemfile +# requires nomono Y". Prefer the locked compatible version when present, then +# activate it explicitly before requiring the Bundler DSL extension used below. +nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] +nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) +if File.file?(nomono_lockfile) + nomono_locked_spec = Bundler::LockfileParser + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } + nomono_locked = nomono_locked_spec && + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked +end +Kernel.send(:gem, 'nomono', *nomono_activation_requirements) +require 'nomono/bundler' structuredmerge_local_gems = %w[ tree_haver diff --git a/gems/parslet-toml-merge/gemfiles/modular/webrick/r4/v1.9.gemfile b/gems/parslet-toml-merge/gemfiles/modular/webrick/r4/v1.9.gemfile new file mode 100644 index 000000000..b1329ba84 --- /dev/null +++ b/gems/parslet-toml-merge/gemfiles/modular/webrick/r4/v1.9.gemfile @@ -0,0 +1 @@ +gem 'webrick', '~> 1.9' diff --git a/gems/parslet-toml-merge/gemfiles/modular/webrick/vHEAD.gemfile b/gems/parslet-toml-merge/gemfiles/modular/webrick/vHEAD.gemfile new file mode 100644 index 000000000..c7e6f81a1 --- /dev/null +++ b/gems/parslet-toml-merge/gemfiles/modular/webrick/vHEAD.gemfile @@ -0,0 +1 @@ +gem 'webrick', '>= 1.9' diff --git a/gems/parslet-toml-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile b/gems/parslet-toml-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile index bd4e884df..e2f6501eb 100644 --- a/gems/parslet-toml-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile +++ b/gems/parslet-toml-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile @@ -2,3 +2,5 @@ eval_gemfile '../../erb/r4/v5.0.gemfile' eval_gemfile '../../mutex_m/r4/v0.3.gemfile' eval_gemfile '../../stringio/r4/v3.0.gemfile' eval_gemfile '../../benchmark/r4/v0.5.gemfile' +eval_gemfile '../../cgi/r4/v0.5.gemfile' +eval_gemfile '../../webrick/r4/v1.9.gemfile' diff --git a/gems/parslet-toml-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile b/gems/parslet-toml-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile index 91f383c11..ab75cccf1 100644 --- a/gems/parslet-toml-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile +++ b/gems/parslet-toml-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile @@ -2,3 +2,5 @@ eval_gemfile '../erb/vHEAD.gemfile' eval_gemfile '../mutex_m/vHEAD.gemfile' eval_gemfile '../stringio/vHEAD.gemfile' eval_gemfile '../benchmark/vHEAD.gemfile' +eval_gemfile '../cgi/vHEAD.gemfile' +eval_gemfile '../webrick/vHEAD.gemfile' diff --git a/gems/parslet-toml-merge/lib/parslet/toml/merge/version.rb b/gems/parslet-toml-merge/lib/parslet/toml/merge/version.rb index f3e9c49e5..12a67dfd9 100644 --- a/gems/parslet-toml-merge/lib/parslet/toml/merge/version.rb +++ b/gems/parslet-toml-merge/lib/parslet/toml/merge/version.rb @@ -4,7 +4,7 @@ module Parslet module Toml module Merge module Version - VERSION = "7.1.0" + VERSION = '7.1.0' end VERSION = Version::VERSION # Traditional Constant Location end diff --git a/gems/psych-merge/Gemfile.lock b/gems/psych-merge/Gemfile.lock index 78be92e6d..28b4f5b2e 100644 --- a/gems/psych-merge/Gemfile.lock +++ b/gems/psych-merge/Gemfile.lock @@ -8,7 +8,39 @@ PATH yaml-merge (= 7.1.0) PATH - remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/ast-merge + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly + specs: + ast-crispr-markdown-markly (7.1.0) + ast-crispr (= 7.1.0) + markly-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism + specs: + ast-crispr-ruby-prism (7.1.0) + ast-crispr (= 7.1.0) + prism-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr + specs: + ast-crispr (7.1.0) + ast-merge (= 7.1.0) + service_actor (~> 3.9) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git + specs: + ast-merge-git (7.1.0) + ast-merge (= 7.1.0) + json-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge specs: ast-merge (7.1.0) benchmark @@ -17,7 +49,192 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/tree_haver + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template + specs: + ast-template (7.1.0) + ast-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge + specs: + bash-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge + specs: + binary-merge (7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge + specs: + citrus-toml-merge (7.1.0) + toml-merge (= 7.1.0) + toml-rb (~> 4.1) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge + specs: + commonmarker-merge (7.1.0) + commonmarker (~> 2.2) + markdown-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge + specs: + dotenv-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge + specs: + go-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge + specs: + json-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem + specs: + kettle-jem (7.1.0) + addressable (>= 2.8, < 3) + ast-crispr-markdown-markly (= 7.1.0) + ast-crispr-ruby-prism (= 7.1.0) + ast-merge (= 7.1.0) + bash-merge (= 7.1.0) + citrus-toml-merge (= 7.1.0) + commonmarker-merge (= 7.1.0) + dotenv-merge (= 7.1.0) + json-merge (= 7.1.0) + kettle-dev (~> 2.3, >= 2.3.5) + kettle-rb (~> 0.1, >= 0.1.4) + kramdown-merge (= 7.1.0) + markdown-merge (= 7.1.0) + markly-merge (= 7.1.0) + prism-merge (= 7.1.0) + psych-merge (= 7.1.0) + rbs (>= 3.10) + rbs-merge (= 7.1.0) + ruby-merge (= 7.1.0) + token-resolver (~> 2.0, >= 2.0.4) + toml-merge (= 7.1.0) + toml-rb (~> 4.2) + tree_haver (= 7.1.0) + yaml-merge (= 7.1.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge + specs: + kramdown-merge (7.1.0) + kramdown (~> 2.5) + markdown-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge + specs: + markdown-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge + specs: + markly-merge (7.1.0) + markdown-merge (= 7.1.0) + markly (~> 0.9) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge + specs: + parslet-toml-merge (7.1.0) + toml (~> 0.3) + toml-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge + specs: + plain-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge + specs: + prism-merge (7.1.0) + prism (~> 1.6) + ruby-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge + specs: + rbs-merge (7.1.0) + ast-merge (= 7.1.0) + rbs (>= 3.10) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge + specs: + ruby-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge + specs: + rust-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb + specs: + smorg-rb (7.1.0) + ast-merge (= 7.1.0) + ast-merge-git (= 7.1.0) + go-merge (= 7.1.0) + json-merge (= 7.1.0) + kettle-jem (= 7.1.0) + markly-merge (= 7.1.0) + plain-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge + specs: + toml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver specs: tree_haver (7.1.0) citrus (~> 3.0) @@ -26,13 +243,28 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge + remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge + specs: + typescript-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge specs: yaml-merge (7.1.0) ast-merge (= 7.1.0) tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge + specs: + zip-merge (7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + GEM remote: https://gem.coop/ specs: @@ -57,6 +289,11 @@ GEM cgi (0.5.2) citrus (3.0.2) cmdparse (3.0.7) + commonmarker (2.9.0-aarch64-linux) + commonmarker (2.9.0-aarch64-linux-musl) + commonmarker (2.9.0-arm64-darwin) + commonmarker (2.9.0-x86_64-linux) + commonmarker (2.9.0-x86_64-linux-musl) concurrent-ruby (1.3.8) date (3.5.1) debug (1.11.1) @@ -119,6 +356,8 @@ GEM kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) + kettle-drift (1.0.6) + version_gem (~> 1.1, >= 1.1.14) kettle-rb (0.1.5) kettle-soup-cover (3.0.4) kettle-wash (~> 0.1, >= 0.1.0) @@ -147,6 +386,7 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) + markly (0.16.0) mutex_m (0.3.0) nokogiri (1.19.4-aarch64-linux-gnu) racc (~> 1.4) @@ -309,6 +549,8 @@ GEM ruby-progressbar (1.13.0) ruby_engine (2.0.3) ruby_version (1.0.3) + service_actor (3.9.4) + zeitwerk (>= 1.0) silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) @@ -363,6 +605,11 @@ GEM token-resolver (2.0.5) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.14) + toml (0.3.0) + parslet (>= 1.8.0, < 3.0.0) + toml-rb (4.2.0) + citrus (~> 3.0, > 3.0) + racc (~> 1.7) tree_sitter_language_pack (1.13.3-aarch64-linux) sorbet-runtime (~> 0.5) tree_sitter_language_pack (1.13.3-arm64-darwin) @@ -417,25 +664,46 @@ DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) appraisal2-rubocop (~> 1.0, >= 1.0.0) + ast-crispr! + ast-crispr-markdown-markly! + ast-crispr-ruby-prism! ast-merge! + ast-merge-git! + ast-template! + bash-merge! benchmark (~> 0.5, >= 0.5.0) + binary-merge! bundler-audit (~> 0.9.3) cgi (~> 0.5) + citrus-toml-merge! + commonmarker-merge! debug (>= 1.1) + dotenv-merge! erb (~> 6.0, >= 6.0.6) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.0) + go-merge! irb (~> 1.17) + json-merge! kettle-dev (~> 2.0, >= 2.2.25) + kettle-drift (~> 1.0, >= 1.0.6) + kettle-jem! kettle-soup-cover (~> 3.0, >= 3.0.3) kettle-test (~> 2.0, >= 2.0.9) kramdown (~> 2.5, >= 2.5.2) + kramdown-merge! kramdown-parser-gfm (~> 1.1) + markdown-merge! + markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) + parslet-toml-merge! + plain-merge! + prism-merge! psych-merge! rake (~> 13.0) rbs (>= 3.0) + rbs-merge! rdoc (~> 6.11) reek (~> 6.5, >= 6.5.0) require_bench (~> 1.0, >= 1.0.4) @@ -446,12 +714,17 @@ DEPENDENCIES rubocop-on-rbs (~> 2.0, >= 2.0.0) rubocop-packaging (~> 0.6, >= 0.6.0) rubocop-ruby3_2 (~> 3.0, >= 3.0.6) + ruby-merge! ruby-progressbar (~> 1.13) + rust-merge! + smorg-rb! standard (~> 1.56, >= 1.56.0) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) + toml-merge! tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) + typescript-merge! webrick (~> 1.9) yaml-converter (~> 0.2, >= 0.2.3) yaml-merge! @@ -461,6 +734,7 @@ DEPENDENCIES yard-relative_markdown_links (~> 0.6) yard-timekeeper (~> 0.2, >= 0.2.4) yard-yaml (~> 0.2, >= 0.2.3) + zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af @@ -468,20 +742,35 @@ CHECKSUMS appraisal2 (3.2.0) sha256=ccd0b767ac4060cd7af6d16747459b6990f49c39c7b4fb1f7d1146b1e97c492f appraisal2-rubocop (1.0.0) sha256=b71410fbb014befda5340605a605b7f6f3f012739baf0acc5b4351b592c3258d ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 + ast-crispr (7.1.0) + ast-crispr-markdown-markly (7.1.0) + ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) + ast-merge-git (7.1.0) + ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 + bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd + binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 + citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 + commonmarker (2.9.0-aarch64-linux) sha256=e2b4aadb9a2cfa4e206582641ce3a49465549ac1ed4c289fdd63b78d8f24579c + commonmarker (2.9.0-aarch64-linux-musl) sha256=1cf4d2821f2a7e64945f1ed7c4eeced586fdb27ea7fe7337788802cf8f57cfca + commonmarker (2.9.0-arm64-darwin) sha256=1748dbfa4f5813b0d2a14bb4bbfa65a4ec293aa1c825016d60029ee0e132b046 + commonmarker (2.9.0-x86_64-linux) sha256=8cfe92970eef585a19ddf6613224b91cab64d6029834661bda801f877c9c7f43 + commonmarker (2.9.0-x86_64-linux-musl) sha256=293921398b839f79ceaf55010e061357e34f053822c3b003cd0be6686176335e + commonmarker-merge (7.1.0) concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 + dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -494,20 +783,28 @@ CHECKSUMS gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f + go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 + json-merge (7.1.0) kettle-dev (2.3.8) sha256=9d716ff21c660a730cb4e8d41e2e2f0630a28167a354b6e2924e242102aef72c + kettle-drift (1.0.6) sha256=46eda08fa4411d1f3c6682a95eef1c9df4e94611b3949f49d4c7b43c0ed356a3 + kettle-jem (7.1.0) kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f kettle-soup-cover (3.0.4) kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa + kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 + markdown-merge (7.1.0) + markly (0.16.0) sha256=6f70d79e385b1efc9e171f74c81628826259039fe6c778e03c3924c71dac5511 + markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-aarch64-linux-gnu) sha256=1269fb644a6de405057a53dd5c762b1209b43ca7424f839454d3dbc677c31a8f nokogiri (1.19.4-aarch64-linux-musl) sha256=35c65b9ce72b3bb03207bdbe7067915019dc18c1b9b59139684bd6690fdd01af @@ -521,9 +818,12 @@ CHECKSUMS parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 + parslet-toml-merge (7.1.0) + plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 + prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 @@ -531,6 +831,7 @@ CHECKSUMS rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 + rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb @@ -565,15 +866,19 @@ CHECKSUMS rubocop-rspec_rails (2.32.0) sha256=4a0d641c72f6ebb957534f539d9d0a62c47abd8ce0d0aeee1ef4701e892a9100 rubocop-ruby3_2 (3.0.7) sha256=f53dd6d286fb05186214fc6ec116783e7f837030918e8931c05de773e98f8466 rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 + ruby-merge (7.1.0) ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 + rust-merge (7.1.0) + service_actor (3.9.4) sha256=e63b523630b9a7e62959b2a90113b08d2565b5de9c148557b281ef847c9539ce silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed + smorg-rb (7.1.0) sorbet-runtime (0.6.13347) sha256=54e7221d9f4b63f58aec79f3043752a9ba7810347c6ae0d903531591cc2d5f01 standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b @@ -588,12 +893,16 @@ CHECKSUMS timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.5) sha256=b852f924287ffb58a440856e862b056c8ad97e74b4b2526cee43e0771f40c25c + toml (0.3.0) sha256=0a91d0f76a9036e84e44f95693b12f58d358c1df3ac8e3b5271f2056ecc6e4b9 + toml-merge (7.1.0) + toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-aarch64-linux) sha256=55ffc7c87868cb45658338363d9eba51b4a8b0259aa88e4de368d2bd1d52fea4 tree_sitter_language_pack (1.13.3-arm64-darwin) sha256=bc2498db605f212a1dbd2465ed3f65190d7da786f6ed5d30fcf958121aeb4a5c tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 + typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 @@ -607,6 +916,7 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 + zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH From f1f98a4a3631d08aaf693de9255530420560515c Mon Sep 17 00:00:00 2001 From: "Peter H. Boling" Date: Tue, 21 Jul 2026 13:55:35 -0600 Subject: [PATCH 140/188] =?UTF-8?q?=F0=9F=8E=A8=20Template=20bootstrap=20b?= =?UTF-8?q?y=20kettle-jem=20v7.1.0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../.rubocop_gradual.lock | 80 ++-- gems/citrus-toml-merge/Gemfile.lock | 24 +- gems/citrus-toml-merge/Rakefile | 18 +- gems/citrus-toml-merge/bin/yard | 2 +- .../modular/benchmark/r4/v0.5.gemfile | 2 +- .../gemfiles/modular/benchmark/vHEAD.gemfile | 2 +- .../gemfiles/modular/cgi/r4/v0.5.gemfile | 2 +- .../gemfiles/modular/cgi/vHEAD.gemfile | 2 +- .../gemfiles/modular/coverage.gemfile | 6 +- .../gemfiles/modular/coverage_local.gemfile | 42 +-- .../gemfiles/modular/debug.gemfile | 4 +- .../gemfiles/modular/documentation.gemfile | 24 +- .../modular/documentation_local.gemfile | 30 +- .../gemfiles/modular/erb/r2/v3.0.gemfile | 2 +- .../gemfiles/modular/erb/r3/v5.0.gemfile | 2 +- .../gemfiles/modular/erb/r4/v5.0.gemfile | 2 +- .../gemfiles/modular/erb/vHEAD.gemfile | 2 +- .../modular/json/truffleruby_22_3.gemfile | 4 +- .../modular/json/truffleruby_23_0.gemfile | 4 +- .../modular/json/truffleruby_23_1.gemfile | 4 +- .../gemfiles/modular/mutex_m/r2/v0.3.gemfile | 2 +- .../gemfiles/modular/mutex_m/r3/v0.3.gemfile | 2 +- .../gemfiles/modular/mutex_m/r4/v0.3.gemfile | 2 +- .../gemfiles/modular/mutex_m/vHEAD.gemfile | 2 +- .../gemfiles/modular/optional.gemfile | 4 +- .../gemfiles/modular/rspec.gemfile | 8 +- .../gemfiles/modular/runtime_heads.gemfile | 2 +- .../gemfiles/modular/stringio/r2/v3.0.gemfile | 2 +- .../gemfiles/modular/stringio/r3/v3.0.gemfile | 2 +- .../gemfiles/modular/stringio/r4/v3.0.gemfile | 2 +- .../gemfiles/modular/stringio/vHEAD.gemfile | 2 +- .../gemfiles/modular/style.gemfile | 24 +- .../gemfiles/modular/style_local.gemfile | 32 +- .../gemfiles/modular/templating.gemfile | 12 +- .../gemfiles/modular/templating_local.gemfile | 44 ++- .../gemfiles/modular/webrick/r4/v1.9.gemfile | 2 +- .../gemfiles/modular/webrick/vHEAD.gemfile | 2 +- .../gemfiles/modular/x_std_libs.gemfile | 14 +- .../modular/x_std_libs/r2/libs.gemfile | 6 +- .../modular/x_std_libs/r3/libs.gemfile | 6 +- .../modular/x_std_libs/r4/libs.gemfile | 12 +- .../gemfiles/modular/x_std_libs/vHEAD.gemfile | 12 +- .../lib/citrus/toml/merge/version.rb | 2 +- gems/commonmarker-merge/Gemfile.lock | 355 +----------------- gems/commonmarker-merge/bin/yard | 2 +- gems/parslet-toml-merge/Gemfile.lock | 334 +++++++++++++++- 46 files changed, 563 insertions(+), 584 deletions(-) rename gems/{commonmarker-merge => citrus-toml-merge}/.rubocop_gradual.lock (57%) diff --git a/gems/commonmarker-merge/.rubocop_gradual.lock b/gems/citrus-toml-merge/.rubocop_gradual.lock similarity index 57% rename from gems/commonmarker-merge/.rubocop_gradual.lock rename to gems/citrus-toml-merge/.rubocop_gradual.lock index 4c6b37486..da4816993 100644 --- a/gems/commonmarker-merge/.rubocop_gradual.lock +++ b/gems/citrus-toml-merge/.rubocop_gradual.lock @@ -1,14 +1,14 @@ { - ".simplecov:4284607950": [ + ".simplecov:362090062": [ [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] ], - "Rakefile:3938625005": [ + "Rakefile:1269082253": [ [18, 121, 17, "Layout/LineLength: Line is too long. [137/120]", 174264873], [79, 3, 1023, "Metrics/BlockLength: Block has too many lines. [32/25]", 54868638], [163, 121, 22, "Layout/LineLength: Line is too long. [142/120]", 1367093088], [166, 121, 18, "Layout/LineLength: Line is too long. [138/120]", 3881946477] ], - "commonmarker-merge.gemspec:3865151820": [ + "citrus-toml-merge.gemspec:736400334": [ [128, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 2821357214], [143, 121, 50, "Layout/LineLength: Line is too long. [170/120]", 3888612416], [144, 121, 29, "Layout/LineLength: Line is too long. [149/120]", 981994949], @@ -21,13 +21,20 @@ [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] ], + "gemfiles/modular/cgi/r4/v0.5.gemfile:367169322": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/cgi/vHEAD.gemfile:2729540777": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], "gemfiles/modular/erb/r2/v3.0.gemfile:1688285565": [ [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] ], - "gemfiles/modular/erb/r3/v5.0.gemfile:2150258305": [ + "gemfiles/modular/erb/r3/v5.0.gemfile:2394062339": [ [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] ], - "gemfiles/modular/erb/r4/v5.0.gemfile:2150258305": [ + "gemfiles/modular/erb/r4/v5.0.gemfile:2394062339": [ [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] ], "gemfiles/modular/erb/vHEAD.gemfile:981929959": [ @@ -63,6 +70,13 @@ [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] ], + "gemfiles/modular/webrick/r4/v1.9.gemfile:3092661193": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/webrick/vHEAD.gemfile:3867684682": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], "gemfiles/modular/x_std_libs.gemfile:2324400122": [ [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] ], @@ -72,47 +86,29 @@ "gemfiles/modular/x_std_libs/r3/libs.gemfile:4030570297": [ [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] ], - "gemfiles/modular/x_std_libs/r4/libs.gemfile:909736663": [ + "gemfiles/modular/x_std_libs/r4/libs.gemfile:732451732": [ [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] ], - "gemfiles/modular/x_std_libs/vHEAD.gemfile:907917303": [ + "gemfiles/modular/x_std_libs/vHEAD.gemfile:2390363993": [ [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] ], - "lib/commonmarker-merge.rb:2377410954": [ - [1, 1, 0, "Naming/FileName: The name of this source file (`commonmarker-merge.rb`) should use snake_case.", 5381] - ], - "lib/commonmarker/merge.rb:3124175488": [ - [10, 3, 12, "Style/Documentation: Missing top-level documentation comment for `module Commonmarker::Merge`.", 2866359175], - [10, 3, 8154, "Metrics/ModuleLength: Module has too many lines. [187/100]", 3577384442], - [11, 5, 11, "Style/ModuleFunction: Use `module_function` instead of `extend self`.", 1210897631], - [56, 5, 928, "Metrics/MethodLength: Method has too many lines. [24/10]", 2523239963], - [88, 5, 1442, "Metrics/AbcSize: Assignment Branch Condition size for `merge_markdown` is too high. [<11, 31, 11> 34.68/17]", 2548079514], - [88, 5, 1442, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `merge_markdown` is too high. [11/7]", 2548079514], - [88, 5, 1442, "Metrics/MethodLength: Method has too many lines. [27/10]", 2548079514], - [88, 5, 1442, "Metrics/PerceivedComplexity: Perceived complexity for `merge_markdown` is too high. [11/8]", 2548079514], - [122, 5, 613, "Metrics/MethodLength: Method has too many lines. [11/10]", 2967276583], - [122, 52, 144, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 3050457682] - ], - "lib/commonmarker/merge/backend.rb:373392035": [ - [149, 9, 590, "Metrics/AbcSize: Assignment Branch Condition size for `start_point` is too high. [<2, 18, 7> 19.42/17]", 2717016062], - [149, 9, 590, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `start_point` is too high. [8/7]", 2717016062], - [149, 9, 590, "Metrics/MethodLength: Method has too many lines. [15/10]", 2717016062], - [172, 9, 534, "Metrics/AbcSize: Assignment Branch Condition size for `end_point` is too high. [<2, 18, 7> 19.42/17]", 1198128832], - [172, 9, 534, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `end_point` is too high. [8/7]", 1198128832], - [172, 9, 534, "Metrics/MethodLength: Method has too many lines. [15/10]", 1198128832] - ], - "spec/commonmarker/merge/partial_template_merger_integration_spec.rb:3818970621": [ - [5, 1, 4139, "Metrics/BlockLength: Block has too many lines. [107/25]", 3727961890], - [25, 3, 1109, "Metrics/BlockLength: Block has too many lines. [30/25]", 2339832693], - [84, 3, 1236, "Metrics/BlockLength: Block has too many lines. [30/25]", 503179966], - [84, 121, 32, "Layout/LineLength: Line is too long. [152/120]", 567791365] - ], - "spec/fixtures_integration_spec.rb:1689727681": [ - [3, 1, 11865, "Metrics/BlockLength: Block has too many lines. [255/25]", 1947740819], - [16, 3, 1373, "Metrics/BlockLength: Block has too many lines. [30/25]", 489033777], - [128, 3, 1353, "Metrics/BlockLength: Block has too many lines. [26/25]", 2630958569], - [211, 3, 1352, "Metrics/BlockLength: Block has too many lines. [30/25]", 2376182886], - [246, 3, 1402, "Metrics/BlockLength: Block has too many lines. [29/25]", 3678391303] + "lib/citrus-toml-merge.rb:1706359962": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`citrus-toml-merge.rb`) should use snake_case.", 5381] + ], + "lib/citrus/toml/merge.rb:4256403494": [ + [11, 5, 12, "Style/Documentation: Missing top-level documentation comment for `module Citrus::Toml::Merge`.", 2866359175], + [11, 5, 4979, "Metrics/ModuleLength: Module has too many lines. [104/100]", 3343629788], + [12, 7, 11, "Style/ModuleFunction: Use `module_function` instead of `extend self`.", 1210897631], + [76, 7, 1663, "Metrics/AbcSize: Assignment Branch Condition size for `merge_toml` is too high. [<7, 21, 8> 23.54/17]", 3550313116], + [76, 7, 1663, "Metrics/MethodLength: Method has too many lines. [27/10]", 3550313116], + [139, 7, 17, "Style/Documentation: Missing top-level documentation comment for `class Citrus::Toml::Merge::SmartMerger`.", 497427992] + ], + "spec/fixtures_integration_spec.rb:288074396": [ + [3, 1, 7435, "Metrics/BlockLength: Block has too many lines. [163/25]", 3966119837], + [26, 3, 1531, "Metrics/BlockLength: Block has too many lines. [38/25]", 106015755], + [68, 3, 2344, "Metrics/BlockLength: Block has too many lines. [36/25]", 228336363], + [118, 3, 1125, "Metrics/BlockLength: Block has too many lines. [27/25]", 2358141919], + [156, 3, 1419, "Metrics/BlockLength: Block has too many lines. [29/25]", 944475815] ] } diff --git a/gems/citrus-toml-merge/Gemfile.lock b/gems/citrus-toml-merge/Gemfile.lock index 8d782a038..c6a826bf9 100644 --- a/gems/citrus-toml-merge/Gemfile.lock +++ b/gems/citrus-toml-merge/Gemfile.lock @@ -7,7 +7,7 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/toml-merge specs: toml-merge (7.1.0) ast-merge (= 7.1.0) @@ -43,7 +43,7 @@ GEM cgi (0.5.2) citrus (3.0.2) cmdparse (3.0.7) - concurrent-ruby (1.3.7) + concurrent-ruby (1.3.8) date (3.5.1) debug (1.11.1) irb (~> 1.10) @@ -100,12 +100,12 @@ GEM rdoc (>= 4.0.0) reline (>= 0.4.2) json (2.21.1) - kettle-dev (2.3.7) + kettle-dev (2.3.8) emoji_regex (>= 15.0) kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) - kettle-rb (0.1.4) + kettle-rb (0.1.5) kettle-soup-cover (3.0.4) kettle-wash (~> 0.1, >= 0.1.0) simplecov (>= 1.0) @@ -113,7 +113,7 @@ GEM simplecov-console (~> 0.9, >= 0.9.5) simplecov-rcov (~> 0.3, >= 0.3.7) simplecov_lcov_formatter (~> 0.9, >= 0.9.0) - kettle-test (2.0.11) + kettle-test (2.0.12) appraisal2 (~> 3.0, >= 3.0.6) backports (~> 3.0) rspec (~> 3.0) @@ -338,9 +338,9 @@ GEM delegate (~> 0.1) rspec (~> 3.0) timecop (>= 0.7, < 1) - token-resolver (2.0.4) + token-resolver (2.0.5) parslet (~> 2.0) - version_gem (~> 1.1, >= 1.1.13) + version_gem (~> 1.1, >= 1.1.14) toml-rb (4.2.0) citrus (~> 3.0, > 3.0) racc (~> 1.7) @@ -452,7 +452,7 @@ CHECKSUMS citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 - concurrent-ruby (1.3.7) sha256=4412caec3a5ea2e5fdc52076724c071a81f2c0593d83b2ac8cbb8ca63b3151b0 + concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 @@ -474,10 +474,10 @@ CHECKSUMS io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 - kettle-dev (2.3.7) sha256=eb370113cd030d03cbe2d33b31c99858951017e5ad21a17e9ed89dc3770028ee - kettle-rb (0.1.4) sha256=9cef7ce4f7021666b7222292f29051e51eaf042e8a5db11f3f4dd72f74243fc1 + kettle-dev (2.3.8) sha256=9d716ff21c660a730cb4e8d41e2e2f0630a28167a354b6e2924e242102aef72c + kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f kettle-soup-cover (3.0.4) - kettle-test (2.0.11) sha256=c710c90f7ab79d51f9452f0c09f5f90657e7a893f63583855c164d0b1b107ab2 + kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 @@ -558,7 +558,7 @@ CHECKSUMS thor (1.5.0) sha256=e3a9e55fe857e44859ce104a84675ab6e8cd59c650a49106a05f55f136425e73 timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 - token-resolver (2.0.4) sha256=33b926958f504525bba3ed511ab66fbcbf8ef30390815e931436b30f27ffcad0 + token-resolver (2.0.5) toml-merge (7.1.0) toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 tree_haver (7.1.0) diff --git a/gems/citrus-toml-merge/Rakefile b/gems/citrus-toml-merge/Rakefile index c88ccc855..6077031be 100644 --- a/gems/citrus-toml-merge/Rakefile +++ b/gems/citrus-toml-merge/Rakefile @@ -130,23 +130,23 @@ end ### DUPLICATE DRIFT TASKS begin - require "kettle/drift" + require 'kettle/drift' Kettle::Drift.install_tasks rescue LoadError - desc("(stub) kettle:drift:check is unavailable") - task("kettle:drift:check") do + desc('(stub) kettle:drift:check is unavailable') + task('kettle:drift:check') do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc("(stub) kettle:drift:update is unavailable") - task("kettle:drift:update") do + desc('(stub) kettle:drift:update is unavailable') + task('kettle:drift:update') do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc("(stub) kettle:drift:force_update is unavailable") - task("kettle:drift:force_update") do + desc('(stub) kettle:drift:force_update is unavailable') + task('kettle:drift:force_update') do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc("(stub) kettle:drift is unavailable") - task("kettle:drift" => "kettle:drift:update") + desc('(stub) kettle:drift is unavailable') + task('kettle:drift' => 'kettle:drift:update') end ### TEMPLATING TASKS diff --git a/gems/citrus-toml-merge/bin/yard b/gems/citrus-toml-merge/bin/yard index a7e8b6eed..5d516ad6f 100755 --- a/gems/citrus-toml-merge/bin/yard +++ b/gems/citrus-toml-merge/bin/yard @@ -12,4 +12,4 @@ # `yard` / `bin/yard`. Keep this binstub as a handoff to the task so # humans and tools that reach for `bin/yard` still run the full docs # workflow with post-processing hooks. -exec("bundle", "exec", "rake", "yard") +exec('bundle', 'exec', 'rake', 'yard') diff --git a/gems/citrus-toml-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile b/gems/citrus-toml-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile index dec650815..b8392fab0 100644 --- a/gems/citrus-toml-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile +++ b/gems/citrus-toml-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.1 -gem "benchmark", "~> 0.5", ">= 0.5.0" # Removed from Std Lib in Ruby 4.0 +gem 'benchmark', '~> 0.5', '>= 0.5.0' # Removed from Std Lib in Ruby 4.0 diff --git a/gems/citrus-toml-merge/gemfiles/modular/benchmark/vHEAD.gemfile b/gems/citrus-toml-merge/gemfiles/modular/benchmark/vHEAD.gemfile index e1eb20c5e..af214aafa 100644 --- a/gems/citrus-toml-merge/gemfiles/modular/benchmark/vHEAD.gemfile +++ b/gems/citrus-toml-merge/gemfiles/modular/benchmark/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.1 -gem "benchmark", github: "ruby/benchmark", branch: "master" +gem 'benchmark', github: 'ruby/benchmark', branch: 'master' diff --git a/gems/citrus-toml-merge/gemfiles/modular/cgi/r4/v0.5.gemfile b/gems/citrus-toml-merge/gemfiles/modular/cgi/r4/v0.5.gemfile index 19ed967c3..17ad97260 100644 --- a/gems/citrus-toml-merge/gemfiles/modular/cgi/r4/v0.5.gemfile +++ b/gems/citrus-toml-merge/gemfiles/modular/cgi/r4/v0.5.gemfile @@ -1 +1 @@ -gem "cgi", "~> 0.5" +gem 'cgi', '~> 0.5' diff --git a/gems/citrus-toml-merge/gemfiles/modular/cgi/vHEAD.gemfile b/gems/citrus-toml-merge/gemfiles/modular/cgi/vHEAD.gemfile index ef8b816ce..650fbf033 100644 --- a/gems/citrus-toml-merge/gemfiles/modular/cgi/vHEAD.gemfile +++ b/gems/citrus-toml-merge/gemfiles/modular/cgi/vHEAD.gemfile @@ -1 +1 @@ -gem "cgi", ">= 0.5" +gem 'cgi', '>= 0.5' diff --git a/gems/citrus-toml-merge/gemfiles/modular/coverage.gemfile b/gems/citrus-toml-merge/gemfiles/modular/coverage.gemfile index 52d737872..b93014b6b 100644 --- a/gems/citrus-toml-merge/gemfiles/modular/coverage.gemfile +++ b/gems/citrus-toml-merge/gemfiles/modular/coverage.gemfile @@ -4,11 +4,11 @@ # Set KETTLE_DEV_DEV=true for local development with path-based dependencies. # When false (default / CI), remote released gems are used. -if ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false").zero? +if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? # Coverage (remote/released) platform :mri do - gem "kettle-soup-cover", "~> 3.0", ">= 3.0.3", require: false + gem 'kettle-soup-cover', '~> 3.0', '>= 3.0.3', require: false end else - eval_gemfile "coverage_local.gemfile" + eval_gemfile 'coverage_local.gemfile' end diff --git a/gems/citrus-toml-merge/gemfiles/modular/coverage_local.gemfile b/gems/citrus-toml-merge/gemfiles/modular/coverage_local.gemfile index 29d430ced..89702c538 100644 --- a/gems/citrus-toml-merge/gemfiles/modular/coverage_local.gemfile +++ b/gems/citrus-toml-merge/gemfiles/modular/coverage_local.gemfile @@ -11,21 +11,19 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] -nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) +nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] +nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == "nomono" } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - if nomono_locked - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] - end + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked end -Kernel.send(:gem, "nomono", *nomono_activation_requirements) -require "nomono/bundler" +Kernel.send(:gem, 'nomono', *nomono_activation_requirements) +require 'nomono/bundler' local_gems = %w[kettle-dev kettle-test kettle-soup-cover kettle-drift] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) @@ -35,21 +33,21 @@ local_gems_to_eval = local_gems - %w[citrus-toml-merge] - declared_gems platform :mri do eval_nomono_gems( gems: local_gems_to_eval, - prefix: "KETTLE_DEV", - path_env: "KETTLE_DEV_DEV", - vendored_gems_env: "VENDORED_GEMS", - vendor_gem_dir_env: "VENDOR_GEM_DIR", - debug_env: "KETTLE_DEV_DEBUG" + prefix: 'KETTLE_DEV', + path_env: 'KETTLE_DEV_DEV', + vendored_gems_env: 'VENDORED_GEMS', + vendor_gem_dir_env: 'VENDOR_GEM_DIR', + debug_env: 'KETTLE_DEV_DEBUG' ) - if ENV.fetch("GALTZO_FLOSS_DEV", "false").casecmp("false") != 0 + if ENV.fetch('GALTZO_FLOSS_DEV', 'false').casecmp('false') != 0 eval_nomono_gems( gems: %w[turbo_tests2], - prefix: "GALTZO_FLOSS", - path_env: "GALTZO_FLOSS_DEV", - vendored_gems_env: "GALTZO_FLOSS_VENDORED_GEMS", - vendor_gem_dir_env: "GALTZO_FLOSS_VENDOR_GEM_DIR", - debug_env: "GALTZO_FLOSS_DEBUG" + prefix: 'GALTZO_FLOSS', + path_env: 'GALTZO_FLOSS_DEV', + vendored_gems_env: 'GALTZO_FLOSS_VENDORED_GEMS', + vendor_gem_dir_env: 'GALTZO_FLOSS_VENDOR_GEM_DIR', + debug_env: 'GALTZO_FLOSS_DEBUG' ) end end diff --git a/gems/citrus-toml-merge/gemfiles/modular/debug.gemfile b/gems/citrus-toml-merge/gemfiles/modular/debug.gemfile index 4e15b1a3a..eed8d4d1e 100644 --- a/gems/citrus-toml-merge/gemfiles/modular/debug.gemfile +++ b/gems/citrus-toml-merge/gemfiles/modular/debug.gemfile @@ -13,10 +13,10 @@ platform :mri do # Debugging - Ensure ENV["DEBUG"] == "true" to use debuggers within spec suite # Use binding.break, binding.b, or debugger in code - gem "debug", ">= 1.1" # ruby >= 2.7 + gem 'debug', '>= 1.1' # ruby >= 2.7 # Dev Console - Binding.pry - Irb replacement # gem "pry", "~> 0.14" # ruby >= 2.0 end -gem "gem_bench", "~> 2.0", ">= 2.0.5" +gem 'gem_bench', '~> 2.0', '>= 2.0.5' diff --git a/gems/citrus-toml-merge/gemfiles/modular/documentation.gemfile b/gems/citrus-toml-merge/gemfiles/modular/documentation.gemfile index d8215416e..9d4535f12 100644 --- a/gems/citrus-toml-merge/gemfiles/modular/documentation.gemfile +++ b/gems/citrus-toml-merge/gemfiles/modular/documentation.gemfile @@ -7,20 +7,20 @@ # # Documentation -gem "kramdown", "~> 2.5", ">= 2.5.2", require: false # Ruby >= 2.5 -gem "kramdown-parser-gfm", "~> 1.1", require: false # Ruby >= 2.3 -gem "yaml-converter", "~> 0.2", ">= 0.2.3", require: false # Ruby >= 3.2 -gem "yard", "~> 0.9", ">= 0.9.45", require: false -gem "yard-junk", "~> 0.1", ">= 0.1.0", require: false # Ruby >= 3.1 -gem "yard-relative_markdown_links", "~> 0.6", require: false +gem 'kramdown', '~> 2.5', '>= 2.5.2', require: false # Ruby >= 2.5 +gem 'kramdown-parser-gfm', '~> 1.1', require: false # Ruby >= 2.3 +gem 'yaml-converter', '~> 0.2', '>= 0.2.3', require: false # Ruby >= 3.2 +gem 'yard', '~> 0.9', '>= 0.9.45', require: false +gem 'yard-junk', '~> 0.1', '>= 0.1.0', require: false # Ruby >= 3.1 +gem 'yard-relative_markdown_links', '~> 0.6', require: false -if ENV.fetch("GALTZO_FLOSS_DEV", "false").casecmp("false").zero? - gem "yard-fence", "~> 0.9", ">= 0.9.6", require: false # Ruby >= 3.2 - gem "yard-timekeeper", "~> 0.2", ">= 0.2.4", require: false - gem "yard-yaml", "~> 0.2", ">= 0.2.3", require: false +if ENV.fetch('GALTZO_FLOSS_DEV', 'false').casecmp('false').zero? + gem 'yard-fence', '~> 0.9', '>= 0.9.6', require: false # Ruby >= 3.2 + gem 'yard-timekeeper', '~> 0.2', '>= 0.2.4', require: false + gem 'yard-yaml', '~> 0.2', '>= 0.2.3', require: false else - eval_gemfile "documentation_local.gemfile" + eval_gemfile 'documentation_local.gemfile' end # Std Lib extractions -gem "rdoc", "~> 6.11", require: false unless ENV.fetch("KJ_FRAMEWORK_MATRIX_GEM", "") == "rdoc" +gem 'rdoc', '~> 6.11', require: false unless ENV.fetch('KJ_FRAMEWORK_MATRIX_GEM', '') == 'rdoc' diff --git a/gems/citrus-toml-merge/gemfiles/modular/documentation_local.gemfile b/gems/citrus-toml-merge/gemfiles/modular/documentation_local.gemfile index 95673b694..bbd6f96c8 100644 --- a/gems/citrus-toml-merge/gemfiles/modular/documentation_local.gemfile +++ b/gems/citrus-toml-merge/gemfiles/modular/documentation_local.gemfile @@ -11,21 +11,19 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] -nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) +nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] +nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == "nomono" } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - if nomono_locked - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] - end + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked end -Kernel.send(:gem, "nomono", *nomono_activation_requirements) -require "nomono/bundler" +Kernel.send(:gem, 'nomono', *nomono_activation_requirements) +require 'nomono/bundler' local_gems = %w[yard-fence yard-timekeeper yard-yaml] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) @@ -34,9 +32,9 @@ local_gems_to_eval = local_gems - %w[citrus-toml-merge] - declared_gems # export GALTZO_FLOSS_DEV=/path/to/galtzo-floss eval_nomono_gems( gems: local_gems_to_eval, - prefix: "GALTZO_FLOSS", - path_env: "GALTZO_FLOSS_DEV", - vendored_gems_env: "GALTZO_FLOSS_VENDORED_GEMS", - vendor_gem_dir_env: "GALTZO_FLOSS_VENDOR_GEM_DIR", - debug_env: "GALTZO_FLOSS_DEBUG" + prefix: 'GALTZO_FLOSS', + path_env: 'GALTZO_FLOSS_DEV', + vendored_gems_env: 'GALTZO_FLOSS_VENDORED_GEMS', + vendor_gem_dir_env: 'GALTZO_FLOSS_VENDOR_GEM_DIR', + debug_env: 'GALTZO_FLOSS_DEBUG' ) diff --git a/gems/citrus-toml-merge/gemfiles/modular/erb/r2/v3.0.gemfile b/gems/citrus-toml-merge/gemfiles/modular/erb/r2/v3.0.gemfile index c03bd8d85..7c83a239b 100644 --- a/gems/citrus-toml-merge/gemfiles/modular/erb/r2/v3.0.gemfile +++ b/gems/citrus-toml-merge/gemfiles/modular/erb/r2/v3.0.gemfile @@ -1 +1 @@ -gem "erb", "~> 3.0" # ruby >= 2.7.0 +gem 'erb', '~> 3.0' # ruby >= 2.7.0 diff --git a/gems/citrus-toml-merge/gemfiles/modular/erb/r3/v5.0.gemfile b/gems/citrus-toml-merge/gemfiles/modular/erb/r3/v5.0.gemfile index 1bd029cc1..ec7ff451f 100644 --- a/gems/citrus-toml-merge/gemfiles/modular/erb/r3/v5.0.gemfile +++ b/gems/citrus-toml-merge/gemfiles/modular/erb/r3/v5.0.gemfile @@ -1 +1 @@ -gem "erb", "~> 6.0", ">= 6.0.6" # ruby >= 3.2.0 +gem 'erb', '~> 6.0', '>= 6.0.6' # ruby >= 3.2.0 diff --git a/gems/citrus-toml-merge/gemfiles/modular/erb/r4/v5.0.gemfile b/gems/citrus-toml-merge/gemfiles/modular/erb/r4/v5.0.gemfile index 1bd029cc1..ec7ff451f 100644 --- a/gems/citrus-toml-merge/gemfiles/modular/erb/r4/v5.0.gemfile +++ b/gems/citrus-toml-merge/gemfiles/modular/erb/r4/v5.0.gemfile @@ -1 +1 @@ -gem "erb", "~> 6.0", ">= 6.0.6" # ruby >= 3.2.0 +gem 'erb', '~> 6.0', '>= 6.0.6' # ruby >= 3.2.0 diff --git a/gems/citrus-toml-merge/gemfiles/modular/erb/vHEAD.gemfile b/gems/citrus-toml-merge/gemfiles/modular/erb/vHEAD.gemfile index 48fee4218..ea0101185 100644 --- a/gems/citrus-toml-merge/gemfiles/modular/erb/vHEAD.gemfile +++ b/gems/citrus-toml-merge/gemfiles/modular/erb/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 3.2 -gem "erb", github: "ruby/erb", branch: "master" +gem 'erb', github: 'ruby/erb', branch: 'master' diff --git a/gems/citrus-toml-merge/gemfiles/modular/json/truffleruby_22_3.gemfile b/gems/citrus-toml-merge/gemfiles/modular/json/truffleruby_22_3.gemfile index b0e69ab11..9b2f8d96a 100644 --- a/gems/citrus-toml-merge/gemfiles/modular/json/truffleruby_22_3.gemfile +++ b/gems/citrus-toml-merge/gemfiles/modular/json/truffleruby_22_3.gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -if RUBY_ENGINE == "truffleruby" && RUBY_ENGINE_VERSION.start_with?("22.3") +if RUBY_ENGINE == 'truffleruby' && RUBY_ENGINE_VERSION.start_with?('22.3') # TruffleRuby 22.3 ships the json default gem from its emulated MRI Ruby. - gem "json", "= 2.5.1" + gem 'json', '= 2.5.1' end diff --git a/gems/citrus-toml-merge/gemfiles/modular/json/truffleruby_23_0.gemfile b/gems/citrus-toml-merge/gemfiles/modular/json/truffleruby_23_0.gemfile index 7b2660a2b..d787a5ef4 100644 --- a/gems/citrus-toml-merge/gemfiles/modular/json/truffleruby_23_0.gemfile +++ b/gems/citrus-toml-merge/gemfiles/modular/json/truffleruby_23_0.gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -if RUBY_ENGINE == "truffleruby" && RUBY_ENGINE_VERSION.start_with?("23.0") +if RUBY_ENGINE == 'truffleruby' && RUBY_ENGINE_VERSION.start_with?('23.0') # TruffleRuby 23.0 ships the json default gem from its emulated MRI Ruby. - gem "json", "= 2.6.1" + gem 'json', '= 2.6.1' end diff --git a/gems/citrus-toml-merge/gemfiles/modular/json/truffleruby_23_1.gemfile b/gems/citrus-toml-merge/gemfiles/modular/json/truffleruby_23_1.gemfile index dfa21f2e4..d78486b0e 100644 --- a/gems/citrus-toml-merge/gemfiles/modular/json/truffleruby_23_1.gemfile +++ b/gems/citrus-toml-merge/gemfiles/modular/json/truffleruby_23_1.gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -if RUBY_ENGINE == "truffleruby" && RUBY_ENGINE_VERSION.start_with?("23.1") +if RUBY_ENGINE == 'truffleruby' && RUBY_ENGINE_VERSION.start_with?('23.1') # TruffleRuby 23.1 ships the json default gem from its emulated MRI Ruby. - gem "json", "= 2.6.3" + gem 'json', '= 2.6.3' end diff --git a/gems/citrus-toml-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile b/gems/citrus-toml-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile index 42e9d9bd4..e27f1bbae 100644 --- a/gems/citrus-toml-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile +++ b/gems/citrus-toml-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 -gem "mutex_m", "~> 0.2" +gem 'mutex_m', '~> 0.2' diff --git a/gems/citrus-toml-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile b/gems/citrus-toml-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile index 42e9d9bd4..e27f1bbae 100644 --- a/gems/citrus-toml-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile +++ b/gems/citrus-toml-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 -gem "mutex_m", "~> 0.2" +gem 'mutex_m', '~> 0.2' diff --git a/gems/citrus-toml-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile b/gems/citrus-toml-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile index 42e9d9bd4..e27f1bbae 100644 --- a/gems/citrus-toml-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile +++ b/gems/citrus-toml-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 -gem "mutex_m", "~> 0.2" +gem 'mutex_m', '~> 0.2' diff --git a/gems/citrus-toml-merge/gemfiles/modular/mutex_m/vHEAD.gemfile b/gems/citrus-toml-merge/gemfiles/modular/mutex_m/vHEAD.gemfile index 8af3b6fca..9dac2f6cb 100644 --- a/gems/citrus-toml-merge/gemfiles/modular/mutex_m/vHEAD.gemfile +++ b/gems/citrus-toml-merge/gemfiles/modular/mutex_m/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 (dependency of omniauth) -gem "mutex_m", github: "ruby/mutex_m", branch: "master" +gem 'mutex_m', github: 'ruby/mutex_m', branch: 'master' diff --git a/gems/citrus-toml-merge/gemfiles/modular/optional.gemfile b/gems/citrus-toml-merge/gemfiles/modular/optional.gemfile index 80bc45196..9ea429538 100644 --- a/gems/citrus-toml-merge/gemfiles/modular/optional.gemfile +++ b/gems/citrus-toml-merge/gemfiles/modular/optional.gemfile @@ -9,8 +9,8 @@ # Optional dependencies are not depended on directly, but may be used if present. # Required for curated binstubs generated by kettle-jem install -gem "rbs", ">= 3.0", require: false # ruby >= 3.1 +gem 'rbs', '>= 3.0', require: false # ruby >= 3.1 # Required for kettle-pre-release # URL parsing with Unicode support (falls back to URI if not available) -gem "addressable", ">= 2.8", "< 3" # ruby >= 2.2 +gem 'addressable', '>= 2.8', '< 3' # ruby >= 2.2 diff --git a/gems/citrus-toml-merge/gemfiles/modular/rspec.gemfile b/gems/citrus-toml-merge/gemfiles/modular/rspec.gemfile index 72fdf8b7f..2af210a41 100644 --- a/gems/citrus-toml-merge/gemfiles/modular/rspec.gemfile +++ b/gems/citrus-toml-merge/gemfiles/modular/rspec.gemfile @@ -1,4 +1,4 @@ -gem "rspec_junit_formatter", - github: "pboling/rspec_junit_formatter", - branch: "main", - ref: "9e6bcaaedd49477b62878ed568dc4ada5cc7cb5e" +gem 'rspec_junit_formatter', + github: 'pboling/rspec_junit_formatter', + branch: 'main', + ref: '9e6bcaaedd49477b62878ed568dc4ada5cc7cb5e' diff --git a/gems/citrus-toml-merge/gemfiles/modular/runtime_heads.gemfile b/gems/citrus-toml-merge/gemfiles/modular/runtime_heads.gemfile index 02f134c7f..ebf17c529 100644 --- a/gems/citrus-toml-merge/gemfiles/modular/runtime_heads.gemfile +++ b/gems/citrus-toml-merge/gemfiles/modular/runtime_heads.gemfile @@ -8,4 +8,4 @@ # Test against HEAD of runtime dependencies so we can proactively file bugs -eval_gemfile("x_std_libs/vHEAD.gemfile") +eval_gemfile('x_std_libs/vHEAD.gemfile') diff --git a/gems/citrus-toml-merge/gemfiles/modular/stringio/r2/v3.0.gemfile b/gems/citrus-toml-merge/gemfiles/modular/stringio/r2/v3.0.gemfile index e85bb18ee..3616f4e3a 100644 --- a/gems/citrus-toml-merge/gemfiles/modular/stringio/r2/v3.0.gemfile +++ b/gems/citrus-toml-merge/gemfiles/modular/stringio/r2/v3.0.gemfile @@ -2,4 +2,4 @@ # NOT SEMVER # Version 3.0.7 dropped support for Ruby <= 2.7 # Version 3.0.0 dropped support for Ruby <= 2.4 -gem "stringio", ">= 3.0" +gem 'stringio', '>= 3.0' diff --git a/gems/citrus-toml-merge/gemfiles/modular/stringio/r3/v3.0.gemfile b/gems/citrus-toml-merge/gemfiles/modular/stringio/r3/v3.0.gemfile index e85bb18ee..3616f4e3a 100644 --- a/gems/citrus-toml-merge/gemfiles/modular/stringio/r3/v3.0.gemfile +++ b/gems/citrus-toml-merge/gemfiles/modular/stringio/r3/v3.0.gemfile @@ -2,4 +2,4 @@ # NOT SEMVER # Version 3.0.7 dropped support for Ruby <= 2.7 # Version 3.0.0 dropped support for Ruby <= 2.4 -gem "stringio", ">= 3.0" +gem 'stringio', '>= 3.0' diff --git a/gems/citrus-toml-merge/gemfiles/modular/stringio/r4/v3.0.gemfile b/gems/citrus-toml-merge/gemfiles/modular/stringio/r4/v3.0.gemfile index e85bb18ee..3616f4e3a 100644 --- a/gems/citrus-toml-merge/gemfiles/modular/stringio/r4/v3.0.gemfile +++ b/gems/citrus-toml-merge/gemfiles/modular/stringio/r4/v3.0.gemfile @@ -2,4 +2,4 @@ # NOT SEMVER # Version 3.0.7 dropped support for Ruby <= 2.7 # Version 3.0.0 dropped support for Ruby <= 2.4 -gem "stringio", ">= 3.0" +gem 'stringio', '>= 3.0' diff --git a/gems/citrus-toml-merge/gemfiles/modular/stringio/vHEAD.gemfile b/gems/citrus-toml-merge/gemfiles/modular/stringio/vHEAD.gemfile index 5f2a74126..78f5f5d8a 100644 --- a/gems/citrus-toml-merge/gemfiles/modular/stringio/vHEAD.gemfile +++ b/gems/citrus-toml-merge/gemfiles/modular/stringio/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 (dependency of omniauth) -gem "stringio", github: "ruby/stringio", branch: "master" +gem 'stringio', github: 'ruby/stringio', branch: 'master' diff --git a/gems/citrus-toml-merge/gemfiles/modular/style.gemfile b/gems/citrus-toml-merge/gemfiles/modular/style.gemfile index 35de4dcd6..4dbcc02c0 100644 --- a/gems/citrus-toml-merge/gemfiles/modular/style.gemfile +++ b/gems/citrus-toml-merge/gemfiles/modular/style.gemfile @@ -9,23 +9,23 @@ # Style tasks run on the latest Ruby; RuboCop-LTS selects the compatibility # rules for the configured Ruby floor independently from task dependency floors. -gem "reek", "~> 6.5", ">= 6.5.0" +gem 'reek', '~> 6.5', '>= 6.5.0' platform :mri do - gem "appraisal2-rubocop", "~> 1.0", ">= 1.0.0", require: false - gem "rubocop-gradual", "~> 0.4", ">= 0.4.0" - gem "rubocop-minitest", "~> 0.40", ">= 0.40.0" - gem "rubocop-on-rbs", "~> 2.0", ">= 2.0.0" # ruby >= 3.2.0 + gem 'appraisal2-rubocop', '~> 1.0', '>= 1.0.0', require: false + gem 'rubocop-gradual', '~> 0.4', '>= 0.4.0' + gem 'rubocop-minitest', '~> 0.40', '>= 0.40.0' + gem 'rubocop-on-rbs', '~> 2.0', '>= 2.0.0' # ruby >= 3.2.0 # gem "rubocop", "~> 1.73", ">= 1.73.2" # constrained by standard - gem "rubocop-packaging", "~> 0.6", ">= 0.6.0" - gem "standard", "~> 1.56", ">= 1.56.0" + gem 'rubocop-packaging', '~> 0.6', '>= 0.6.0' + gem 'standard', '~> 1.56', '>= 1.56.0' - if ENV.fetch("RUBOCOP_LTS_LOCAL", "false").casecmp("false").zero? + if ENV.fetch('RUBOCOP_LTS_LOCAL', 'false').casecmp('false').zero? declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) - gem "rubocop-lts", "~> 24.2", ">= 24.2.1" unless declared_gems.include?("rubocop-lts") - gem "rubocop-lts-rspec", "~> 1.0", ">= 1.0.5" unless declared_gems.include?("rubocop-lts-rspec") - gem "rubocop-ruby3_2", "~> 3.0", ">= 3.0.6" unless declared_gems.include?("rubocop-ruby3_2") + gem 'rubocop-lts', '~> 24.2', '>= 24.2.1' unless declared_gems.include?('rubocop-lts') + gem 'rubocop-lts-rspec', '~> 1.0', '>= 1.0.5' unless declared_gems.include?('rubocop-lts-rspec') + gem 'rubocop-ruby3_2', '~> 3.0', '>= 3.0.6' unless declared_gems.include?('rubocop-ruby3_2') else - eval_gemfile("style_local.gemfile") + eval_gemfile('style_local.gemfile') end end diff --git a/gems/citrus-toml-merge/gemfiles/modular/style_local.gemfile b/gems/citrus-toml-merge/gemfiles/modular/style_local.gemfile index 9a5e42dce..29d2add9f 100644 --- a/gems/citrus-toml-merge/gemfiles/modular/style_local.gemfile +++ b/gems/citrus-toml-merge/gemfiles/modular/style_local.gemfile @@ -14,21 +14,19 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] -nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) +nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] +nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == "nomono" } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - if nomono_locked - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] - end + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked end -Kernel.send(:gem, "nomono", *nomono_activation_requirements) -require "nomono/bundler" +Kernel.send(:gem, 'nomono', *nomono_activation_requirements) +require 'nomono/bundler' local_gems = %w[rubocop-lts rubocop-lts-rspec rubocop-ruby3_2 standard-rubocop-lts] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) @@ -38,11 +36,11 @@ local_gems_to_eval = local_gems - %w[citrus-toml-merge] - declared_gems platform :mri do eval_nomono_gems( gems: local_gems_to_eval, - prefix: "RUBOCOP_LTS", - path_env: "RUBOCOP_LTS_LOCAL", - vendored_gems_env: "VENDORED_GEMS", - vendor_gem_dir_env: "VENDOR_GEM_DIR", - debug_env: "RUBOCOP_LTS_DEBUG", - root: ["src", "rubocop-lts"] + prefix: 'RUBOCOP_LTS', + path_env: 'RUBOCOP_LTS_LOCAL', + vendored_gems_env: 'VENDORED_GEMS', + vendor_gem_dir_env: 'VENDOR_GEM_DIR', + debug_env: 'RUBOCOP_LTS_DEBUG', + root: %w[src rubocop-lts] ) end diff --git a/gems/citrus-toml-merge/gemfiles/modular/templating.gemfile b/gems/citrus-toml-merge/gemfiles/modular/templating.gemfile index 47138ffbb..a672de184 100644 --- a/gems/citrus-toml-merge/gemfiles/modular/templating.gemfile +++ b/gems/citrus-toml-merge/gemfiles/modular/templating.gemfile @@ -1,18 +1,18 @@ # frozen_string_literal: true -structuredmerge_remote = ENV.fetch("STRUCTUREDMERGE_DEV", "false").casecmp("false").zero? -kettle_remote = ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false").zero? +structuredmerge_remote = ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false').zero? +kettle_remote = ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? if structuredmerge_remote # Parser dependencies for released installs. - gem "tree_sitter_language_pack", "~> 1.13", ">= 1.13.3" + gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' # Merge recipes for released installs. - gem "kettle-jem", ">= 7.0" + gem 'kettle-jem', '>= 7.0' end if kettle_remote # Template/plugin checks for released installs. - gem "kettle-drift", "~> 1.0", ">= 1.0.6", require: false + gem 'kettle-drift', '~> 1.0', '>= 1.0.6', require: false end # Set STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local development with path-based dependencies. @@ -21,4 +21,4 @@ end # # Set KETTLE_DEV_DEV=/path/to/my for local development with Kettle plugin gems. # When false (default / CI), released Kettle plugin gems are used. -eval_gemfile "templating_local.gemfile" unless structuredmerge_remote && kettle_remote +eval_gemfile 'templating_local.gemfile' unless structuredmerge_remote && kettle_remote diff --git a/gems/citrus-toml-merge/gemfiles/modular/templating_local.gemfile b/gems/citrus-toml-merge/gemfiles/modular/templating_local.gemfile index cf4c4dd45..f59e32e90 100644 --- a/gems/citrus-toml-merge/gemfiles/modular/templating_local.gemfile +++ b/gems/citrus-toml-merge/gemfiles/modular/templating_local.gemfile @@ -12,21 +12,19 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] -nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) +nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] +nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == "nomono" } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - if nomono_locked - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] - end + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked end -Kernel.send(:gem, "nomono", *nomono_activation_requirements) -require "nomono/bundler" +Kernel.send(:gem, 'nomono', *nomono_activation_requirements) +require 'nomono/bundler' structuredmerge_local_gems = %w[ tree_haver @@ -69,25 +67,25 @@ structuredmerge_local_gems_to_eval = structuredmerge_local_gems - %w[citrus-toml kettle_dev_local_gems_to_eval = kettle_dev_local_gems - %w[citrus-toml-merge] - declared_gems platform :mri do - if ENV.fetch("STRUCTUREDMERGE_DEV", "false").casecmp("false") != 0 + if ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false') != 0 eval_nomono_gems( gems: structuredmerge_local_gems_to_eval, - prefix: "STRUCTUREDMERGE", - path_env: "STRUCTUREDMERGE_DEV", - vendored_gems_env: "VENDORED_GEMS", - vendor_gem_dir_env: "VENDOR_GEM_DIR", - debug_env: "STRUCTUREDMERGE_DEBUG" + prefix: 'STRUCTUREDMERGE', + path_env: 'STRUCTUREDMERGE_DEV', + vendored_gems_env: 'VENDORED_GEMS', + vendor_gem_dir_env: 'VENDOR_GEM_DIR', + debug_env: 'STRUCTUREDMERGE_DEBUG' ) end - if ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false") != 0 + if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false') != 0 eval_nomono_gems( gems: kettle_dev_local_gems_to_eval, - prefix: "KETTLE_DEV", - path_env: "KETTLE_DEV_DEV", - vendored_gems_env: "VENDORED_GEMS", - vendor_gem_dir_env: "VENDOR_GEM_DIR", - debug_env: "KETTLE_DEV_DEBUG" + prefix: 'KETTLE_DEV', + path_env: 'KETTLE_DEV_DEV', + vendored_gems_env: 'VENDORED_GEMS', + vendor_gem_dir_env: 'VENDOR_GEM_DIR', + debug_env: 'KETTLE_DEV_DEBUG' ) end end diff --git a/gems/citrus-toml-merge/gemfiles/modular/webrick/r4/v1.9.gemfile b/gems/citrus-toml-merge/gemfiles/modular/webrick/r4/v1.9.gemfile index eaab4a473..b1329ba84 100644 --- a/gems/citrus-toml-merge/gemfiles/modular/webrick/r4/v1.9.gemfile +++ b/gems/citrus-toml-merge/gemfiles/modular/webrick/r4/v1.9.gemfile @@ -1 +1 @@ -gem "webrick", "~> 1.9" +gem 'webrick', '~> 1.9' diff --git a/gems/citrus-toml-merge/gemfiles/modular/webrick/vHEAD.gemfile b/gems/citrus-toml-merge/gemfiles/modular/webrick/vHEAD.gemfile index 8a789b634..c7e6f81a1 100644 --- a/gems/citrus-toml-merge/gemfiles/modular/webrick/vHEAD.gemfile +++ b/gems/citrus-toml-merge/gemfiles/modular/webrick/vHEAD.gemfile @@ -1 +1 @@ -gem "webrick", ">= 1.9" +gem 'webrick', '>= 1.9' diff --git a/gems/citrus-toml-merge/gemfiles/modular/x_std_libs.gemfile b/gems/citrus-toml-merge/gemfiles/modular/x_std_libs.gemfile index 77aad43f2..b1f43c097 100644 --- a/gems/citrus-toml-merge/gemfiles/modular/x_std_libs.gemfile +++ b/gems/citrus-toml-merge/gemfiles/modular/x_std_libs.gemfile @@ -1,12 +1,12 @@ ### Std Lib Extracted Gems ruby_version = Gem::Version.new(RUBY_VERSION) -if ruby_version >= Gem::Version.new("4.0") - eval_gemfile "x_std_libs/r4/libs.gemfile" -elsif ruby_version >= Gem::Version.new("3.2") - eval_gemfile "x_std_libs/r3/libs.gemfile" -elsif ruby_version >= Gem::Version.new("3.1") - eval_gemfile "x_std_libs/r3.1/libs.gemfile" +if ruby_version >= Gem::Version.new('4.0') + eval_gemfile 'x_std_libs/r4/libs.gemfile' +elsif ruby_version >= Gem::Version.new('3.2') + eval_gemfile 'x_std_libs/r3/libs.gemfile' +elsif ruby_version >= Gem::Version.new('3.1') + eval_gemfile 'x_std_libs/r3.1/libs.gemfile' else - eval_gemfile "x_std_libs/r2/libs.gemfile" + eval_gemfile 'x_std_libs/r2/libs.gemfile' end diff --git a/gems/citrus-toml-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile b/gems/citrus-toml-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile index 441c4f03a..16a5e3d70 100644 --- a/gems/citrus-toml-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile +++ b/gems/citrus-toml-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile @@ -1,3 +1,3 @@ -eval_gemfile "../../erb/r2/v3.0.gemfile" -eval_gemfile "../../mutex_m/r2/v0.3.gemfile" -eval_gemfile "../../stringio/r2/v3.0.gemfile" +eval_gemfile '../../erb/r2/v3.0.gemfile' +eval_gemfile '../../mutex_m/r2/v0.3.gemfile' +eval_gemfile '../../stringio/r2/v3.0.gemfile' diff --git a/gems/citrus-toml-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile b/gems/citrus-toml-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile index c293a3ddd..220ff95c1 100644 --- a/gems/citrus-toml-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile +++ b/gems/citrus-toml-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile @@ -1,3 +1,3 @@ -eval_gemfile "../../erb/r3/v5.0.gemfile" -eval_gemfile "../../mutex_m/r3/v0.3.gemfile" -eval_gemfile "../../stringio/r3/v3.0.gemfile" +eval_gemfile '../../erb/r3/v5.0.gemfile' +eval_gemfile '../../mutex_m/r3/v0.3.gemfile' +eval_gemfile '../../stringio/r3/v3.0.gemfile' diff --git a/gems/citrus-toml-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile b/gems/citrus-toml-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile index eb5574247..e2f6501eb 100644 --- a/gems/citrus-toml-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile +++ b/gems/citrus-toml-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile @@ -1,6 +1,6 @@ -eval_gemfile "../../erb/r4/v5.0.gemfile" -eval_gemfile "../../mutex_m/r4/v0.3.gemfile" -eval_gemfile "../../stringio/r4/v3.0.gemfile" -eval_gemfile "../../benchmark/r4/v0.5.gemfile" -eval_gemfile "../../cgi/r4/v0.5.gemfile" -eval_gemfile "../../webrick/r4/v1.9.gemfile" +eval_gemfile '../../erb/r4/v5.0.gemfile' +eval_gemfile '../../mutex_m/r4/v0.3.gemfile' +eval_gemfile '../../stringio/r4/v3.0.gemfile' +eval_gemfile '../../benchmark/r4/v0.5.gemfile' +eval_gemfile '../../cgi/r4/v0.5.gemfile' +eval_gemfile '../../webrick/r4/v1.9.gemfile' diff --git a/gems/citrus-toml-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile b/gems/citrus-toml-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile index d4d5b16c9..ab75cccf1 100644 --- a/gems/citrus-toml-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile +++ b/gems/citrus-toml-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile @@ -1,6 +1,6 @@ -eval_gemfile "../erb/vHEAD.gemfile" -eval_gemfile "../mutex_m/vHEAD.gemfile" -eval_gemfile "../stringio/vHEAD.gemfile" -eval_gemfile "../benchmark/vHEAD.gemfile" -eval_gemfile "../cgi/vHEAD.gemfile" -eval_gemfile "../webrick/vHEAD.gemfile" +eval_gemfile '../erb/vHEAD.gemfile' +eval_gemfile '../mutex_m/vHEAD.gemfile' +eval_gemfile '../stringio/vHEAD.gemfile' +eval_gemfile '../benchmark/vHEAD.gemfile' +eval_gemfile '../cgi/vHEAD.gemfile' +eval_gemfile '../webrick/vHEAD.gemfile' diff --git a/gems/citrus-toml-merge/lib/citrus/toml/merge/version.rb b/gems/citrus-toml-merge/lib/citrus/toml/merge/version.rb index e83bb4f4d..9d400d071 100644 --- a/gems/citrus-toml-merge/lib/citrus/toml/merge/version.rb +++ b/gems/citrus-toml-merge/lib/citrus/toml/merge/version.rb @@ -4,7 +4,7 @@ module Citrus module Toml module Merge module Version - VERSION = "7.1.0" + VERSION = '7.1.0' end VERSION = Version::VERSION # Traditional Constant Location end diff --git a/gems/commonmarker-merge/Gemfile.lock b/gems/commonmarker-merge/Gemfile.lock index 80cc07aa6..d04a4644c 100644 --- a/gems/commonmarker-merge/Gemfile.lock +++ b/gems/commonmarker-merge/Gemfile.lock @@ -6,138 +6,6 @@ PATH markdown-merge (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly - specs: - ast-crispr-markdown-markly (7.1.0) - ast-crispr (= 7.1.0) - markly-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism - specs: - ast-crispr-ruby-prism (7.1.0) - ast-crispr (= 7.1.0) - prism-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr - specs: - ast-crispr (7.1.0) - ast-merge (= 7.1.0) - service_actor (~> 3.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git - specs: - ast-merge-git (7.1.0) - ast-merge (= 7.1.0) - json-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge - specs: - ast-merge (7.1.0) - benchmark - token-resolver (~> 2.0, >= 2.0.4) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template - specs: - ast-template (7.1.0) - ast-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge - specs: - bash-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge - specs: - binary-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge - specs: - citrus-toml-merge (7.1.0) - toml-merge (= 7.1.0) - toml-rb (~> 4.1) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge - specs: - dotenv-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge - specs: - go-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge - specs: - json-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem - specs: - kettle-jem (7.1.0) - addressable (>= 2.8, < 3) - ast-crispr-markdown-markly (= 7.1.0) - ast-crispr-ruby-prism (= 7.1.0) - ast-merge (= 7.1.0) - bash-merge (= 7.1.0) - citrus-toml-merge (= 7.1.0) - commonmarker-merge (= 7.1.0) - dotenv-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-dev (~> 2.3, >= 2.3.5) - kettle-rb (~> 0.1, >= 0.1.4) - kramdown-merge (= 7.1.0) - markdown-merge (= 7.1.0) - markly-merge (= 7.1.0) - prism-merge (= 7.1.0) - psych-merge (= 7.1.0) - rbs (>= 3.10) - rbs-merge (= 7.1.0) - ruby-merge (= 7.1.0) - token-resolver (~> 2.0, >= 2.0.4) - toml-merge (= 7.1.0) - toml-rb (~> 4.2) - tree_haver (= 7.1.0) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge - specs: - kramdown-merge (7.1.0) - kramdown (~> 2.5) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - PATH remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge specs: @@ -146,142 +14,6 @@ PATH tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge - specs: - markly-merge (7.1.0) - markdown-merge (= 7.1.0) - markly (~> 0.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge - specs: - parslet-toml-merge (7.1.0) - toml (~> 0.3) - toml-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge - specs: - plain-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge - specs: - prism-merge (7.1.0) - prism (~> 1.6) - ruby-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge - specs: - psych-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge - specs: - rbs-merge (7.1.0) - ast-merge (= 7.1.0) - rbs (>= 3.10) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge - specs: - ruby-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge - specs: - rust-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb - specs: - smorg-rb (7.1.0) - ast-merge (= 7.1.0) - ast-merge-git (= 7.1.0) - go-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-jem (= 7.1.0) - markly-merge (= 7.1.0) - plain-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge - specs: - toml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver - specs: - tree_haver (7.1.0) - citrus (~> 3.0) - parslet (~> 2.0) - tree_sitter_language_pack (>= 1.13.2, < 2.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge - specs: - typescript-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge - specs: - yaml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge - specs: - zip-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /var/home/pboling/src/my/kettle-dev/kettle-drift - specs: - kettle-drift (1.0.6) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /var/home/pboling/src/my/kettle-dev/kettle-soup-cover - specs: - kettle-soup-cover (3.0.4) - kettle-wash (~> 0.1, >= 0.1.0) - simplecov (>= 1.0) - simplecov-cobertura (>= 4.0) - simplecov-console (~> 0.9, >= 0.9.5) - simplecov-rcov (~> 0.3, >= 0.3.7) - simplecov_lcov_formatter (~> 0.9, >= 0.9.0) - GEM remote: https://gem.coop/ specs: @@ -297,6 +29,11 @@ GEM rubocop (>= 1.0) version_gem (~> 1.1, >= 1.1.14) ast (2.4.3) + ast-merge (7.1.0) + benchmark + token-resolver (~> 2.0, >= 2.0.4) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) backports (3.25.3) benchmark (0.5.0) bigdecimal (4.1.2) @@ -370,6 +107,13 @@ GEM kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) kettle-rb (0.1.4) + kettle-soup-cover (3.0.4) + kettle-wash (~> 0.1, >= 0.1.0) + simplecov (>= 1.0) + simplecov-cobertura (>= 4.0) + simplecov-console (~> 0.9, >= 0.9.5) + simplecov-rcov (~> 0.3, >= 0.3.7) + simplecov_lcov_formatter (~> 0.9, >= 0.9.0) kettle-test (2.0.11) appraisal2 (~> 3.0, >= 3.0.6) backports (~> 3.0) @@ -390,7 +134,6 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) - markly (0.16.0) mutex_m (0.3.0) nokogiri (1.19.4-x86_64-linux-gnu) racc (~> 1.4) @@ -545,8 +288,6 @@ GEM ruby-progressbar (1.13.0) ruby_engine (2.0.3) ruby_version (1.0.3) - service_actor (3.9.4) - zeitwerk (>= 1.0) silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) @@ -601,11 +342,11 @@ GEM token-resolver (2.0.4) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.13) - toml (0.3.0) - parslet (>= 1.8.0, < 3.0.0) - toml-rb (4.2.0) - citrus (~> 3.0, > 3.0) - racc (~> 1.7) + tree_haver (7.1.0) + citrus (~> 3.0) + parslet (~> 2.0) + tree_sitter_language_pack (>= 1.13.2, < 2.0) + version_gem (~> 1.1, >= 1.1.9) tree_sitter_language_pack (1.13.3-x86_64-linux) sorbet-runtime (~> 0.5) tsort (0.2.0) @@ -651,46 +392,25 @@ DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) appraisal2-rubocop (~> 1.0, >= 1.0.0) - ast-crispr! - ast-crispr-markdown-markly! - ast-crispr-ruby-prism! - ast-merge! - ast-merge-git! - ast-template! - bash-merge! benchmark (~> 0.5, >= 0.5.0) - binary-merge! bundler-audit (~> 0.9.3) cgi (~> 0.5) - citrus-toml-merge! commonmarker-merge! debug (>= 1.1) - dotenv-merge! erb (~> 6.0, >= 6.0.6) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.0) - go-merge! irb (~> 1.17) - json-merge! kettle-dev (~> 2.0, >= 2.2.25) - kettle-drift! - kettle-jem! - kettle-soup-cover! + kettle-soup-cover (~> 3.0, >= 3.0.3) kettle-test (~> 2.0, >= 2.0.9) kramdown (~> 2.5, >= 2.5.2) - kramdown-merge! kramdown-parser-gfm (~> 1.1) markdown-merge! - markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) - parslet-toml-merge! - plain-merge! - prism-merge! - psych-merge! rake (~> 13.0) rbs (>= 3.0) - rbs-merge! rdoc (~> 6.11) reek (~> 6.5, >= 6.5.0) require_bench (~> 1.0, >= 1.0.4) @@ -701,27 +421,19 @@ DEPENDENCIES rubocop-on-rbs (~> 2.0, >= 2.0.0) rubocop-packaging (~> 0.6, >= 0.6.0) rubocop-ruby3_2 (~> 3.0, >= 3.0.6) - ruby-merge! ruby-progressbar (~> 1.13) - rust-merge! - smorg-rb! standard (~> 1.56, >= 1.56.0) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) - toml-merge! - tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) - typescript-merge! webrick (~> 1.9) yaml-converter (~> 0.2, >= 0.2.3) - yaml-merge! yard (~> 0.9, >= 0.9.45) yard-fence (~> 0.9, >= 0.9.6) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) yard-timekeeper (~> 0.2, >= 0.2.4) yard-yaml (~> 0.2, >= 0.2.3) - zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af @@ -729,21 +441,13 @@ CHECKSUMS appraisal2 (3.2.0) sha256=ccd0b767ac4060cd7af6d16747459b6990f49c39c7b4fb1f7d1146b1e97c492f appraisal2-rubocop (1.0.0) sha256=b71410fbb014befda5340605a605b7f6f3f012739baf0acc5b4351b592c3258d ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 - ast-crispr (7.1.0) - ast-crispr-markdown-markly (7.1.0) - ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) - ast-merge-git (7.1.0) - ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 - bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd - binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 - citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 commonmarker (2.9.0-x86_64-linux) sha256=8cfe92970eef585a19ddf6613224b91cab64d6029834661bda801f877c9c7f43 commonmarker-merge (7.1.0) @@ -753,7 +457,6 @@ CHECKSUMS delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 - dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -766,28 +469,21 @@ CHECKSUMS gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f - go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 - json-merge (7.1.0) kettle-dev (2.3.7) sha256=eb370113cd030d03cbe2d33b31c99858951017e5ad21a17e9ed89dc3770028ee - kettle-drift (1.0.6) - kettle-jem (7.1.0) kettle-rb (0.1.4) sha256=9cef7ce4f7021666b7222292f29051e51eaf042e8a5db11f3f4dd72f74243fc1 kettle-soup-cover (3.0.4) kettle-test (2.0.11) sha256=c710c90f7ab79d51f9452f0c09f5f90657e7a893f63583855c164d0b1b107ab2 kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa - kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 markdown-merge (7.1.0) - markly (0.16.0) sha256=6f70d79e385b1efc9e171f74c81628826259039fe6c778e03c3924c71dac5511 - markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-x86_64-linux-gnu) sha256=379fae440b28915e3f19d752ce2dcf8465ed2b2fbefd2a7ca0dd497bc981a06a nomono (1.0.9) @@ -797,20 +493,15 @@ CHECKSUMS parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 - parslet-toml-merge (7.1.0) - plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 - prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 - psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 - rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb @@ -845,19 +536,15 @@ CHECKSUMS rubocop-rspec_rails (2.32.0) sha256=4a0d641c72f6ebb957534f539d9d0a62c47abd8ce0d0aeee1ef4701e892a9100 rubocop-ruby3_2 (3.0.7) sha256=f53dd6d286fb05186214fc6ec116783e7f837030918e8931c05de773e98f8466 rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 - ruby-merge (7.1.0) ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 - rust-merge (7.1.0) - service_actor (3.9.4) sha256=e63b523630b9a7e62959b2a90113b08d2565b5de9c148557b281ef847c9539ce silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed - smorg-rb (7.1.0) sorbet-runtime (0.6.13347) sha256=54e7221d9f4b63f58aec79f3043752a9ba7810347c6ae0d903531591cc2d5f01 standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b @@ -872,20 +559,15 @@ CHECKSUMS timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.4) sha256=33b926958f504525bba3ed511ab66fbcbf8ef30390815e931436b30f27ffcad0 - toml (0.3.0) sha256=0a91d0f76a9036e84e44f95693b12f58d358c1df3ac8e3b5271f2056ecc6e4b9 - toml-merge (7.1.0) - toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 - typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 webrick (1.9.2) sha256=beb4a15fc474defed24a3bda4ffd88a490d517c9e4e6118c3edce59e45864131 yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 - yaml-merge (7.1.0) yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd @@ -893,7 +575,6 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 - zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH diff --git a/gems/commonmarker-merge/bin/yard b/gems/commonmarker-merge/bin/yard index 5d516ad6f..a7e8b6eed 100755 --- a/gems/commonmarker-merge/bin/yard +++ b/gems/commonmarker-merge/bin/yard @@ -12,4 +12,4 @@ # `yard` / `bin/yard`. Keep this binstub as a handoff to the task so # humans and tools that reach for `bin/yard` still run the full docs # workflow with post-processing hooks. -exec('bundle', 'exec', 'rake', 'yard') +exec("bundle", "exec", "rake", "yard") diff --git a/gems/parslet-toml-merge/Gemfile.lock b/gems/parslet-toml-merge/Gemfile.lock index 62614fa1c..b26ac9b45 100644 --- a/gems/parslet-toml-merge/Gemfile.lock +++ b/gems/parslet-toml-merge/Gemfile.lock @@ -7,13 +7,264 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/toml-merge + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly + specs: + ast-crispr-markdown-markly (7.1.0) + ast-crispr (= 7.1.0) + markly-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism + specs: + ast-crispr-ruby-prism (7.1.0) + ast-crispr (= 7.1.0) + prism-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr + specs: + ast-crispr (7.1.0) + ast-merge (= 7.1.0) + service_actor (~> 3.9) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git + specs: + ast-merge-git (7.1.0) + ast-merge (= 7.1.0) + json-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge + specs: + ast-merge (7.1.0) + benchmark + token-resolver (~> 2.0, >= 2.0.4) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template + specs: + ast-template (7.1.0) + ast-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge + specs: + bash-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge + specs: + binary-merge (7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge + specs: + citrus-toml-merge (7.1.0) + toml-merge (= 7.1.0) + toml-rb (~> 4.1) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge + specs: + commonmarker-merge (7.1.0) + commonmarker (~> 2.2) + markdown-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge + specs: + dotenv-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge + specs: + go-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge + specs: + json-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem + specs: + kettle-jem (7.1.0) + addressable (>= 2.8, < 3) + ast-crispr-markdown-markly (= 7.1.0) + ast-crispr-ruby-prism (= 7.1.0) + ast-merge (= 7.1.0) + bash-merge (= 7.1.0) + citrus-toml-merge (= 7.1.0) + commonmarker-merge (= 7.1.0) + dotenv-merge (= 7.1.0) + json-merge (= 7.1.0) + kettle-dev (~> 2.3, >= 2.3.5) + kettle-rb (~> 0.1, >= 0.1.4) + kramdown-merge (= 7.1.0) + markdown-merge (= 7.1.0) + markly-merge (= 7.1.0) + prism-merge (= 7.1.0) + psych-merge (= 7.1.0) + rbs (>= 3.10) + rbs-merge (= 7.1.0) + ruby-merge (= 7.1.0) + token-resolver (~> 2.0, >= 2.0.4) + toml-merge (= 7.1.0) + toml-rb (~> 4.2) + tree_haver (= 7.1.0) + yaml-merge (= 7.1.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge + specs: + kramdown-merge (7.1.0) + kramdown (~> 2.5) + markdown-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge + specs: + markdown-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge + specs: + markly-merge (7.1.0) + markdown-merge (= 7.1.0) + markly (~> 0.9) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge + specs: + plain-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge + specs: + prism-merge (7.1.0) + prism (~> 1.6) + ruby-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge + specs: + psych-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + yaml-merge (= 7.1.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge + specs: + rbs-merge (7.1.0) + ast-merge (= 7.1.0) + rbs (>= 3.10) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge + specs: + ruby-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge + specs: + rust-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb + specs: + smorg-rb (7.1.0) + ast-merge (= 7.1.0) + ast-merge-git (= 7.1.0) + go-merge (= 7.1.0) + json-merge (= 7.1.0) + kettle-jem (= 7.1.0) + markly-merge (= 7.1.0) + plain-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge specs: toml-merge (7.1.0) ast-merge (= 7.1.0) tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver + specs: + tree_haver (7.1.0) + citrus (~> 3.0) + parslet (~> 2.0) + tree_sitter_language_pack (>= 1.13.2, < 2.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge + specs: + typescript-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge + specs: + yaml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge + specs: + zip-merge (7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + GEM remote: https://gem.coop/ specs: @@ -29,11 +280,6 @@ GEM rubocop (>= 1.0) version_gem (~> 1.1, >= 1.1.14) ast (2.4.3) - ast-merge (7.1.0) - benchmark - token-resolver (~> 2.0, >= 2.0.4) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) backports (3.25.3) benchmark (0.5.0) bigdecimal (4.1.2) @@ -43,6 +289,7 @@ GEM cgi (0.5.2) citrus (3.0.2) cmdparse (3.0.7) + commonmarker (2.9.0-x86_64-linux) concurrent-ruby (1.3.8) date (3.5.1) debug (1.11.1) @@ -105,6 +352,8 @@ GEM kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) + kettle-drift (1.0.6) + version_gem (~> 1.1, >= 1.1.14) kettle-rb (0.1.5) kettle-soup-cover (3.0.4) kettle-wash (~> 0.1, >= 0.1.0) @@ -133,6 +382,7 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) + markly (0.16.0) mutex_m (0.3.0) nokogiri (1.19.4-x86_64-linux-gnu) racc (~> 1.4) @@ -287,6 +537,8 @@ GEM ruby-progressbar (1.13.0) ruby_engine (2.0.3) ruby_version (1.0.3) + service_actor (3.9.4) + zeitwerk (>= 1.0) silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) @@ -343,11 +595,9 @@ GEM version_gem (~> 1.1, >= 1.1.14) toml (0.3.0) parslet (>= 1.8.0, < 3.0.0) - tree_haver (7.1.0) - citrus (~> 3.0) - parslet (~> 2.0) - tree_sitter_language_pack (>= 1.13.2, < 2.0) - version_gem (~> 1.1, >= 1.1.9) + toml-rb (4.2.0) + citrus (~> 3.0, > 3.0) + racc (~> 1.7) tree_sitter_language_pack (1.13.3-x86_64-linux) sorbet-runtime (~> 0.5) tsort (0.2.0) @@ -393,24 +643,46 @@ DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) appraisal2-rubocop (~> 1.0, >= 1.0.0) + ast-crispr! + ast-crispr-markdown-markly! + ast-crispr-ruby-prism! + ast-merge! + ast-merge-git! + ast-template! + bash-merge! benchmark (~> 0.5, >= 0.5.0) + binary-merge! bundler-audit (~> 0.9.3) cgi (~> 0.5) + citrus-toml-merge! + commonmarker-merge! debug (>= 1.1) + dotenv-merge! erb (~> 6.0, >= 6.0.6) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.0) + go-merge! irb (~> 1.17) + json-merge! kettle-dev (~> 2.0, >= 2.2.25) + kettle-drift (~> 1.0, >= 1.0.6) + kettle-jem! kettle-soup-cover (~> 3.0, >= 3.0.3) kettle-test (~> 2.0, >= 2.0.9) kramdown (~> 2.5, >= 2.5.2) + kramdown-merge! kramdown-parser-gfm (~> 1.1) + markdown-merge! + markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) parslet-toml-merge! + plain-merge! + prism-merge! + psych-merge! rake (~> 13.0) rbs (>= 3.0) + rbs-merge! rdoc (~> 6.11) reek (~> 6.5, >= 6.5.0) require_bench (~> 1.0, >= 1.0.4) @@ -421,20 +693,27 @@ DEPENDENCIES rubocop-on-rbs (~> 2.0, >= 2.0.0) rubocop-packaging (~> 0.6, >= 0.6.0) rubocop-ruby3_2 (~> 3.0, >= 3.0.6) + ruby-merge! ruby-progressbar (~> 1.13) + rust-merge! + smorg-rb! standard (~> 1.56, >= 1.56.0) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) toml-merge! + tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) + typescript-merge! webrick (~> 1.9) yaml-converter (~> 0.2, >= 0.2.3) + yaml-merge! yard (~> 0.9, >= 0.9.45) yard-fence (~> 0.9, >= 0.9.6) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) yard-timekeeper (~> 0.2, >= 0.2.4) yard-yaml (~> 0.2, >= 0.2.3) + zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af @@ -442,20 +721,31 @@ CHECKSUMS appraisal2 (3.2.0) sha256=ccd0b767ac4060cd7af6d16747459b6990f49c39c7b4fb1f7d1146b1e97c492f appraisal2-rubocop (1.0.0) sha256=b71410fbb014befda5340605a605b7f6f3f012739baf0acc5b4351b592c3258d ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 + ast-crispr (7.1.0) + ast-crispr-markdown-markly (7.1.0) + ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) + ast-merge-git (7.1.0) + ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 + bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd + binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 + citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 + commonmarker (2.9.0-x86_64-linux) sha256=8cfe92970eef585a19ddf6613224b91cab64d6029834661bda801f877c9c7f43 + commonmarker-merge (7.1.0) concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 + dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -468,20 +758,28 @@ CHECKSUMS gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f + go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 + json-merge (7.1.0) kettle-dev (2.3.8) sha256=9d716ff21c660a730cb4e8d41e2e2f0630a28167a354b6e2924e242102aef72c + kettle-drift (1.0.6) sha256=46eda08fa4411d1f3c6682a95eef1c9df4e94611b3949f49d4c7b43c0ed356a3 + kettle-jem (7.1.0) kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f kettle-soup-cover (3.0.4) kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa + kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 + markdown-merge (7.1.0) + markly (0.16.0) sha256=6f70d79e385b1efc9e171f74c81628826259039fe6c778e03c3924c71dac5511 + markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-x86_64-linux-gnu) sha256=379fae440b28915e3f19d752ce2dcf8465ed2b2fbefd2a7ca0dd497bc981a06a nomono (1.0.9) @@ -492,15 +790,19 @@ CHECKSUMS parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 parslet-toml-merge (7.1.0) + plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 + prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 + psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 + rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb @@ -535,15 +837,19 @@ CHECKSUMS rubocop-rspec_rails (2.32.0) sha256=4a0d641c72f6ebb957534f539d9d0a62c47abd8ce0d0aeee1ef4701e892a9100 rubocop-ruby3_2 (3.0.7) sha256=f53dd6d286fb05186214fc6ec116783e7f837030918e8931c05de773e98f8466 rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 + ruby-merge (7.1.0) ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 + rust-merge (7.1.0) + service_actor (3.9.4) sha256=e63b523630b9a7e62959b2a90113b08d2565b5de9c148557b281ef847c9539ce silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed + smorg-rb (7.1.0) sorbet-runtime (0.6.13347) sha256=54e7221d9f4b63f58aec79f3043752a9ba7810347c6ae0d903531591cc2d5f01 standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b @@ -557,18 +863,21 @@ CHECKSUMS thor (1.5.0) sha256=e3a9e55fe857e44859ce104a84675ab6e8cd59c650a49106a05f55f136425e73 timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 - token-resolver (2.0.5) + token-resolver (2.0.5) sha256=b852f924287ffb58a440856e862b056c8ad97e74b4b2526cee43e0771f40c25c toml (0.3.0) sha256=0a91d0f76a9036e84e44f95693b12f58d358c1df3ac8e3b5271f2056ecc6e4b9 toml-merge (7.1.0) + toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 + typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 webrick (1.9.2) sha256=beb4a15fc474defed24a3bda4ffd88a490d517c9e4e6118c3edce59e45864131 yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 + yaml-merge (7.1.0) yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd @@ -576,6 +885,7 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 + zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH From 9e4cac248e72a9cd3f4ecd5ce39078b3721c9cd9 Mon Sep 17 00:00:00 2001 From: "Peter H. Boling" Date: Tue, 21 Jul 2026 13:55:39 -0600 Subject: [PATCH 141/188] =?UTF-8?q?=F0=9F=8E=A8=20Template=20bootstrap=20b?= =?UTF-8?q?y=20kettle-jem=20v7.1.0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gems/citrus-toml-merge/Gemfile.lock | 333 +++++++++++++++++- gems/commonmarker-merge/.rubocop_gradual.lock | 132 +++++++ gems/commonmarker-merge/Gemfile | 70 ++-- gems/commonmarker-merge/Gemfile.lock | 24 +- gems/commonmarker-merge/Rakefile | 18 +- gems/commonmarker-merge/bin/yard | 2 +- .../modular/benchmark/r4/v0.5.gemfile | 2 +- .../gemfiles/modular/benchmark/vHEAD.gemfile | 2 +- .../gemfiles/modular/cgi/r4/v0.5.gemfile | 2 +- .../gemfiles/modular/cgi/vHEAD.gemfile | 2 +- .../gemfiles/modular/coverage.gemfile | 6 +- .../gemfiles/modular/coverage_local.gemfile | 42 ++- .../gemfiles/modular/debug.gemfile | 4 +- .../gemfiles/modular/documentation.gemfile | 24 +- .../modular/documentation_local.gemfile | 30 +- .../gemfiles/modular/erb/r2/v3.0.gemfile | 2 +- .../gemfiles/modular/erb/r3/v5.0.gemfile | 2 +- .../gemfiles/modular/erb/r4/v5.0.gemfile | 2 +- .../gemfiles/modular/erb/vHEAD.gemfile | 2 +- .../modular/json/truffleruby_22_3.gemfile | 4 +- .../modular/json/truffleruby_23_0.gemfile | 4 +- .../modular/json/truffleruby_23_1.gemfile | 4 +- .../gemfiles/modular/mutex_m/r2/v0.3.gemfile | 2 +- .../gemfiles/modular/mutex_m/r3/v0.3.gemfile | 2 +- .../gemfiles/modular/mutex_m/r4/v0.3.gemfile | 2 +- .../gemfiles/modular/mutex_m/vHEAD.gemfile | 2 +- .../gemfiles/modular/optional.gemfile | 4 +- .../gemfiles/modular/rspec.gemfile | 8 +- .../gemfiles/modular/runtime_heads.gemfile | 2 +- .../gemfiles/modular/stringio/r2/v3.0.gemfile | 2 +- .../gemfiles/modular/stringio/r3/v3.0.gemfile | 2 +- .../gemfiles/modular/stringio/r4/v3.0.gemfile | 2 +- .../gemfiles/modular/stringio/vHEAD.gemfile | 2 +- .../gemfiles/modular/style.gemfile | 24 +- .../gemfiles/modular/style_local.gemfile | 32 +- .../gemfiles/modular/templating.gemfile | 12 +- .../gemfiles/modular/templating_local.gemfile | 44 ++- .../gemfiles/modular/webrick/r4/v1.9.gemfile | 2 +- .../gemfiles/modular/webrick/vHEAD.gemfile | 2 +- .../gemfiles/modular/x_std_libs.gemfile | 14 +- .../modular/x_std_libs/r2/libs.gemfile | 6 +- .../modular/x_std_libs/r3/libs.gemfile | 6 +- .../modular/x_std_libs/r4/libs.gemfile | 12 +- .../gemfiles/modular/x_std_libs/vHEAD.gemfile | 12 +- .../lib/commonmarker/merge/version.rb | 2 +- gems/kettle-jem/Gemfile.lock | 126 ++++++- 46 files changed, 788 insertions(+), 249 deletions(-) create mode 100644 gems/commonmarker-merge/.rubocop_gradual.lock diff --git a/gems/citrus-toml-merge/Gemfile.lock b/gems/citrus-toml-merge/Gemfile.lock index c6a826bf9..b9fafe0af 100644 --- a/gems/citrus-toml-merge/Gemfile.lock +++ b/gems/citrus-toml-merge/Gemfile.lock @@ -7,13 +7,264 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/toml-merge + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly + specs: + ast-crispr-markdown-markly (7.1.0) + ast-crispr (= 7.1.0) + markly-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism + specs: + ast-crispr-ruby-prism (7.1.0) + ast-crispr (= 7.1.0) + prism-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr + specs: + ast-crispr (7.1.0) + ast-merge (= 7.1.0) + service_actor (~> 3.9) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git + specs: + ast-merge-git (7.1.0) + ast-merge (= 7.1.0) + json-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge + specs: + ast-merge (7.1.0) + benchmark + token-resolver (~> 2.0, >= 2.0.4) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template + specs: + ast-template (7.1.0) + ast-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge + specs: + bash-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge + specs: + binary-merge (7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge + specs: + commonmarker-merge (7.1.0) + commonmarker (~> 2.2) + markdown-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge + specs: + dotenv-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge + specs: + go-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge + specs: + json-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem + specs: + kettle-jem (7.1.0) + addressable (>= 2.8, < 3) + ast-crispr-markdown-markly (= 7.1.0) + ast-crispr-ruby-prism (= 7.1.0) + ast-merge (= 7.1.0) + bash-merge (= 7.1.0) + citrus-toml-merge (= 7.1.0) + commonmarker-merge (= 7.1.0) + dotenv-merge (= 7.1.0) + json-merge (= 7.1.0) + kettle-dev (~> 2.3, >= 2.3.5) + kettle-rb (~> 0.1, >= 0.1.4) + kramdown-merge (= 7.1.0) + markdown-merge (= 7.1.0) + markly-merge (= 7.1.0) + prism-merge (= 7.1.0) + psych-merge (= 7.1.0) + rbs (>= 3.10) + rbs-merge (= 7.1.0) + ruby-merge (= 7.1.0) + token-resolver (~> 2.0, >= 2.0.4) + toml-merge (= 7.1.0) + toml-rb (~> 4.2) + tree_haver (= 7.1.0) + yaml-merge (= 7.1.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge + specs: + kramdown-merge (7.1.0) + kramdown (~> 2.5) + markdown-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge + specs: + markdown-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge + specs: + markly-merge (7.1.0) + markdown-merge (= 7.1.0) + markly (~> 0.9) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge + specs: + parslet-toml-merge (7.1.0) + toml (~> 0.3) + toml-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge + specs: + plain-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge + specs: + prism-merge (7.1.0) + prism (~> 1.6) + ruby-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge + specs: + psych-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + yaml-merge (= 7.1.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge + specs: + rbs-merge (7.1.0) + ast-merge (= 7.1.0) + rbs (>= 3.10) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge + specs: + ruby-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge + specs: + rust-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb + specs: + smorg-rb (7.1.0) + ast-merge (= 7.1.0) + ast-merge-git (= 7.1.0) + go-merge (= 7.1.0) + json-merge (= 7.1.0) + kettle-jem (= 7.1.0) + markly-merge (= 7.1.0) + plain-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge specs: toml-merge (7.1.0) ast-merge (= 7.1.0) tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver + specs: + tree_haver (7.1.0) + citrus (~> 3.0) + parslet (~> 2.0) + tree_sitter_language_pack (>= 1.13.2, < 2.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge + specs: + typescript-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge + specs: + yaml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge + specs: + zip-merge (7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + GEM remote: https://gem.coop/ specs: @@ -29,11 +280,6 @@ GEM rubocop (>= 1.0) version_gem (~> 1.1, >= 1.1.14) ast (2.4.3) - ast-merge (7.1.0) - benchmark - token-resolver (~> 2.0, >= 2.0.4) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) backports (3.25.3) benchmark (0.5.0) bigdecimal (4.1.2) @@ -43,6 +289,7 @@ GEM cgi (0.5.2) citrus (3.0.2) cmdparse (3.0.7) + commonmarker (2.9.0-x86_64-linux) concurrent-ruby (1.3.8) date (3.5.1) debug (1.11.1) @@ -105,6 +352,8 @@ GEM kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) + kettle-drift (1.0.6) + version_gem (~> 1.1, >= 1.1.14) kettle-rb (0.1.5) kettle-soup-cover (3.0.4) kettle-wash (~> 0.1, >= 0.1.0) @@ -133,6 +382,7 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) + markly (0.16.0) mutex_m (0.3.0) nokogiri (1.19.4-x86_64-linux-gnu) racc (~> 1.4) @@ -287,6 +537,8 @@ GEM ruby-progressbar (1.13.0) ruby_engine (2.0.3) ruby_version (1.0.3) + service_actor (3.9.4) + zeitwerk (>= 1.0) silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) @@ -341,14 +593,11 @@ GEM token-resolver (2.0.5) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.14) + toml (0.3.0) + parslet (>= 1.8.0, < 3.0.0) toml-rb (4.2.0) citrus (~> 3.0, > 3.0) racc (~> 1.7) - tree_haver (7.1.0) - citrus (~> 3.0) - parslet (~> 2.0) - tree_sitter_language_pack (>= 1.13.2, < 2.0) - version_gem (~> 1.1, >= 1.1.9) tree_sitter_language_pack (1.13.3-x86_64-linux) sorbet-runtime (~> 0.5) tsort (0.2.0) @@ -394,24 +643,46 @@ DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) appraisal2-rubocop (~> 1.0, >= 1.0.0) + ast-crispr! + ast-crispr-markdown-markly! + ast-crispr-ruby-prism! + ast-merge! + ast-merge-git! + ast-template! + bash-merge! benchmark (~> 0.5, >= 0.5.0) + binary-merge! bundler-audit (~> 0.9.3) cgi (~> 0.5) citrus-toml-merge! + commonmarker-merge! debug (>= 1.1) + dotenv-merge! erb (~> 6.0, >= 6.0.6) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.0) + go-merge! irb (~> 1.17) + json-merge! kettle-dev (~> 2.0, >= 2.2.25) + kettle-drift (~> 1.0, >= 1.0.6) + kettle-jem! kettle-soup-cover (~> 3.0, >= 3.0.3) kettle-test (~> 2.0, >= 2.0.9) kramdown (~> 2.5, >= 2.5.2) + kramdown-merge! kramdown-parser-gfm (~> 1.1) + markdown-merge! + markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) + parslet-toml-merge! + plain-merge! + prism-merge! + psych-merge! rake (~> 13.0) rbs (>= 3.0) + rbs-merge! rdoc (~> 6.11) reek (~> 6.5, >= 6.5.0) require_bench (~> 1.0, >= 1.0.4) @@ -422,20 +693,27 @@ DEPENDENCIES rubocop-on-rbs (~> 2.0, >= 2.0.0) rubocop-packaging (~> 0.6, >= 0.6.0) rubocop-ruby3_2 (~> 3.0, >= 3.0.6) + ruby-merge! ruby-progressbar (~> 1.13) + rust-merge! + smorg-rb! standard (~> 1.56, >= 1.56.0) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) toml-merge! + tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) + typescript-merge! webrick (~> 1.9) yaml-converter (~> 0.2, >= 0.2.3) + yaml-merge! yard (~> 0.9, >= 0.9.45) yard-fence (~> 0.9, >= 0.9.6) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) yard-timekeeper (~> 0.2, >= 0.2.4) yard-yaml (~> 0.2, >= 0.2.3) + zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af @@ -443,21 +721,31 @@ CHECKSUMS appraisal2 (3.2.0) sha256=ccd0b767ac4060cd7af6d16747459b6990f49c39c7b4fb1f7d1146b1e97c492f appraisal2-rubocop (1.0.0) sha256=b71410fbb014befda5340605a605b7f6f3f012739baf0acc5b4351b592c3258d ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 + ast-crispr (7.1.0) + ast-crispr-markdown-markly (7.1.0) + ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) + ast-merge-git (7.1.0) + ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 + bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd + binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 + commonmarker (2.9.0-x86_64-linux) sha256=8cfe92970eef585a19ddf6613224b91cab64d6029834661bda801f877c9c7f43 + commonmarker-merge (7.1.0) concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 + dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -470,20 +758,28 @@ CHECKSUMS gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f + go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 + json-merge (7.1.0) kettle-dev (2.3.8) sha256=9d716ff21c660a730cb4e8d41e2e2f0630a28167a354b6e2924e242102aef72c + kettle-drift (1.0.6) sha256=46eda08fa4411d1f3c6682a95eef1c9df4e94611b3949f49d4c7b43c0ed356a3 + kettle-jem (7.1.0) kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f kettle-soup-cover (3.0.4) kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa + kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 + markdown-merge (7.1.0) + markly (0.16.0) sha256=6f70d79e385b1efc9e171f74c81628826259039fe6c778e03c3924c71dac5511 + markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-x86_64-linux-gnu) sha256=379fae440b28915e3f19d752ce2dcf8465ed2b2fbefd2a7ca0dd497bc981a06a nomono (1.0.9) @@ -493,15 +789,20 @@ CHECKSUMS parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 + parslet-toml-merge (7.1.0) + plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 + prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 + psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 + rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb @@ -536,15 +837,19 @@ CHECKSUMS rubocop-rspec_rails (2.32.0) sha256=4a0d641c72f6ebb957534f539d9d0a62c47abd8ce0d0aeee1ef4701e892a9100 rubocop-ruby3_2 (3.0.7) sha256=f53dd6d286fb05186214fc6ec116783e7f837030918e8931c05de773e98f8466 rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 + ruby-merge (7.1.0) ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 + rust-merge (7.1.0) + service_actor (3.9.4) sha256=e63b523630b9a7e62959b2a90113b08d2565b5de9c148557b281ef847c9539ce silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed + smorg-rb (7.1.0) sorbet-runtime (0.6.13347) sha256=54e7221d9f4b63f58aec79f3043752a9ba7810347c6ae0d903531591cc2d5f01 standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b @@ -558,18 +863,21 @@ CHECKSUMS thor (1.5.0) sha256=e3a9e55fe857e44859ce104a84675ab6e8cd59c650a49106a05f55f136425e73 timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 - token-resolver (2.0.5) + token-resolver (2.0.5) sha256=b852f924287ffb58a440856e862b056c8ad97e74b4b2526cee43e0771f40c25c + toml (0.3.0) sha256=0a91d0f76a9036e84e44f95693b12f58d358c1df3ac8e3b5271f2056ecc6e4b9 toml-merge (7.1.0) toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 + typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 webrick (1.9.2) sha256=beb4a15fc474defed24a3bda4ffd88a490d517c9e4e6118c3edce59e45864131 yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 + yaml-merge (7.1.0) yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd @@ -577,6 +885,7 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 + zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH diff --git a/gems/commonmarker-merge/.rubocop_gradual.lock b/gems/commonmarker-merge/.rubocop_gradual.lock new file mode 100644 index 000000000..3242c815a --- /dev/null +++ b/gems/commonmarker-merge/.rubocop_gradual.lock @@ -0,0 +1,132 @@ +{ + ".simplecov:4284607950": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "Rakefile:3938625005": [ + [18, 121, 17, "Layout/LineLength: Line is too long. [137/120]", 174264873], + [79, 3, 1023, "Metrics/BlockLength: Block has too many lines. [32/25]", 54868638], + [163, 121, 22, "Layout/LineLength: Line is too long. [142/120]", 1367093088], + [166, 121, 18, "Layout/LineLength: Line is too long. [138/120]", 3881946477] + ], + "commonmarker-merge.gemspec:3865151820": [ + [128, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 2821357214], + [143, 121, 50, "Layout/LineLength: Line is too long. [170/120]", 3888612416], + [144, 121, 29, "Layout/LineLength: Line is too long. [149/120]", 981994949], + [151, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 4229808912] + ], + "gemfiles/modular/benchmark/r4/v0.5.gemfile:3644720371": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/benchmark/vHEAD.gemfile:2838879269": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/cgi/r4/v0.5.gemfile:367169322": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/cgi/vHEAD.gemfile:2729540777": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/erb/r2/v3.0.gemfile:1688285565": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/erb/r3/v5.0.gemfile:2394062339": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/erb/r4/v5.0.gemfile:2394062339": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/erb/vHEAD.gemfile:981929959": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/mutex_m/r2/v0.3.gemfile:4055275004": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/mutex_m/r3/v0.3.gemfile:4055275004": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/mutex_m/r4/v0.3.gemfile:4055275004": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/mutex_m/vHEAD.gemfile:556854763": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/rspec.gemfile:2263543889": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/stringio/r2/v3.0.gemfile:821604304": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/stringio/r3/v3.0.gemfile:821604304": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/stringio/r4/v3.0.gemfile:821604304": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/stringio/vHEAD.gemfile:1045839691": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/webrick/r4/v1.9.gemfile:3092661193": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/webrick/vHEAD.gemfile:3867684682": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/x_std_libs.gemfile:2324400122": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/x_std_libs/r2/libs.gemfile:36276542": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] + ], + "gemfiles/modular/x_std_libs/r3/libs.gemfile:4030570297": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] + ], + "gemfiles/modular/x_std_libs/r4/libs.gemfile:732451732": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] + ], + "gemfiles/modular/x_std_libs/vHEAD.gemfile:2390363993": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] + ], + "lib/commonmarker-merge.rb:2377410954": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`commonmarker-merge.rb`) should use snake_case.", 5381] + ], + "lib/commonmarker/merge.rb:3124175488": [ + [10, 3, 12, "Style/Documentation: Missing top-level documentation comment for `module Commonmarker::Merge`.", 2866359175], + [10, 3, 8154, "Metrics/ModuleLength: Module has too many lines. [187/100]", 3577384442], + [11, 5, 11, "Style/ModuleFunction: Use `module_function` instead of `extend self`.", 1210897631], + [56, 5, 928, "Metrics/MethodLength: Method has too many lines. [24/10]", 2523239963], + [88, 5, 1442, "Metrics/AbcSize: Assignment Branch Condition size for `merge_markdown` is too high. [<11, 31, 11> 34.68/17]", 2548079514], + [88, 5, 1442, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `merge_markdown` is too high. [11/7]", 2548079514], + [88, 5, 1442, "Metrics/MethodLength: Method has too many lines. [27/10]", 2548079514], + [88, 5, 1442, "Metrics/PerceivedComplexity: Perceived complexity for `merge_markdown` is too high. [11/8]", 2548079514], + [122, 5, 613, "Metrics/MethodLength: Method has too many lines. [11/10]", 2967276583], + [122, 52, 144, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 3050457682] + ], + "lib/commonmarker/merge/backend.rb:373392035": [ + [149, 9, 590, "Metrics/AbcSize: Assignment Branch Condition size for `start_point` is too high. [<2, 18, 7> 19.42/17]", 2717016062], + [149, 9, 590, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `start_point` is too high. [8/7]", 2717016062], + [149, 9, 590, "Metrics/MethodLength: Method has too many lines. [15/10]", 2717016062], + [172, 9, 534, "Metrics/AbcSize: Assignment Branch Condition size for `end_point` is too high. [<2, 18, 7> 19.42/17]", 1198128832], + [172, 9, 534, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `end_point` is too high. [8/7]", 1198128832], + [172, 9, 534, "Metrics/MethodLength: Method has too many lines. [15/10]", 1198128832] + ], + "spec/commonmarker/merge/partial_template_merger_integration_spec.rb:3818970621": [ + [5, 1, 4139, "Metrics/BlockLength: Block has too many lines. [107/25]", 3727961890], + [25, 3, 1109, "Metrics/BlockLength: Block has too many lines. [30/25]", 2339832693], + [84, 3, 1236, "Metrics/BlockLength: Block has too many lines. [30/25]", 503179966], + [84, 121, 32, "Layout/LineLength: Line is too long. [152/120]", 567791365] + ], + "spec/fixtures_integration_spec.rb:1779667956": [ + [3, 1, 13039, "Metrics/BlockLength: Block has too many lines. [276/25]", 2065862761], + [16, 3, 1373, "Metrics/BlockLength: Block has too many lines. [30/25]", 489033777], + [152, 3, 1353, "Metrics/BlockLength: Block has too many lines. [26/25]", 2630958569], + [235, 3, 1352, "Metrics/BlockLength: Block has too many lines. [30/25]", 2376182886], + [270, 3, 1402, "Metrics/BlockLength: Block has too many lines. [29/25]", 3678391303] + ] +} diff --git a/gems/commonmarker-merge/Gemfile b/gems/commonmarker-merge/Gemfile index e20e30a0b..53b4e3eee 100644 --- a/gems/commonmarker-merge/Gemfile +++ b/gems/commonmarker-merge/Gemfile @@ -6,7 +6,7 @@ # kettle-jem will then preserve content between those markers across template runs. # kettle-jem:unfreeze -source "https://gem.coop" +source 'https://gem.coop' git_source(:codeberg) { |repo_name| "https://codeberg.org/#{repo_name}" } git_source(:gitlab) { |repo_name| "https://gitlab.com/#{repo_name}" } @@ -19,57 +19,53 @@ git_source(:gitlab) { |repo_name| "https://gitlab.com/#{repo_name}" } gemspec # Local workspace dependency wiring for *_local.gemfile overrides -nomono_requirements = ["~> 1.0", ">= 1.0.8"] -gem "nomono", *nomono_requirements, require: false # ruby >= 2.2 +nomono_requirements = ['~> 1.0', '>= 1.0.8'] +gem 'nomono', *nomono_requirements, require: false # ruby >= 2.2 # Direct sibling dependencies (env-switched via STRUCTUREDMERGE_DEV) direct_sibling_gems = %w[ markdown-merge ] -direct_sibling_dev = ENV.fetch("STRUCTUREDMERGE_DEV", "") +direct_sibling_dev = ENV.fetch('STRUCTUREDMERGE_DEV', '') direct_sibling_local = !direct_sibling_dev.empty? && !%w[false 0 no off].include?(direct_sibling_dev.downcase) -direct_sibling_templating = ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? +direct_sibling_templating = ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero?) - direct_sibling_dev_was_set = ENV.key?("STRUCTUREDMERGE_DEV") - direct_sibling_dev_original = ENV.fetch("STRUCTUREDMERGE_DEV", nil) + (direct_sibling_local || + ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) + direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') + direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) begin nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path("Gemfile.lock", __dir__) + nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == "nomono" } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - if nomono_locked - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] - end - end - Kernel.send(:gem, "nomono", *nomono_activation_requirements) - require "nomono/bundler" - if direct_sibling_templating && !direct_sibling_local - ENV["STRUCTUREDMERGE_DEV"] = File.expand_path("..", __dir__) + Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked end + Kernel.send(:gem, 'nomono', *nomono_activation_requirements) + require 'nomono/bundler' + ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local eval_nomono_gems( gems: direct_sibling_gems, - prefix: "STRUCTUREDMERGE", - path_env: "STRUCTUREDMERGE_DEV", - root: ["src", "my", "structuredmerge"] + prefix: 'STRUCTUREDMERGE', + path_env: 'STRUCTUREDMERGE_DEV', + root: %w[src my structuredmerge] ) rescue LoadError - warn "Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies." + warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' ensure if direct_sibling_templating && !direct_sibling_local if direct_sibling_dev_was_set - ENV["STRUCTUREDMERGE_DEV"] = direct_sibling_dev_original + ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original else - ENV.delete("STRUCTUREDMERGE_DEV") + ENV.delete('STRUCTUREDMERGE_DEV') end end end @@ -116,28 +112,28 @@ if direct_sibling_gems.any? && end # Use released TSLP with the Ruby ABI platform-gem fix. -gem "tree_sitter_language_pack", "~> 1.13", ">= 1.13.3" +gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' # Templating (env-switched: STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local paths) -eval_gemfile "gemfiles/modular/templating.gemfile" if ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? +eval_gemfile 'gemfiles/modular/templating.gemfile' if ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? # Debugging -eval_gemfile "gemfiles/modular/debug.gemfile" +eval_gemfile 'gemfiles/modular/debug.gemfile' # Code Coverage (env-switched: KETTLE_DEV_DEV=true for local paths) -eval_gemfile "gemfiles/modular/coverage.gemfile" +eval_gemfile 'gemfiles/modular/coverage.gemfile' # Linting -eval_gemfile "gemfiles/modular/style.gemfile" +eval_gemfile 'gemfiles/modular/style.gemfile' # Documentation -eval_gemfile "gemfiles/modular/documentation.gemfile" +eval_gemfile 'gemfiles/modular/documentation.gemfile' # Optional -eval_gemfile "gemfiles/modular/optional.gemfile" +eval_gemfile 'gemfiles/modular/optional.gemfile' ### Std Lib Extracted Gems -eval_gemfile "gemfiles/modular/x_std_libs.gemfile" +eval_gemfile 'gemfiles/modular/x_std_libs.gemfile' # See unlocked_deps appraisal for more details on irb inclusion -gem "irb", "~> 1.17" # ruby >= 2.7 +gem 'irb', '~> 1.17' # ruby >= 2.7 diff --git a/gems/commonmarker-merge/Gemfile.lock b/gems/commonmarker-merge/Gemfile.lock index d04a4644c..54b1d5f1d 100644 --- a/gems/commonmarker-merge/Gemfile.lock +++ b/gems/commonmarker-merge/Gemfile.lock @@ -7,7 +7,7 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge specs: markdown-merge (7.1.0) ast-merge (= 7.1.0) @@ -44,7 +44,7 @@ GEM citrus (3.0.2) cmdparse (3.0.7) commonmarker (2.9.0-x86_64-linux) - concurrent-ruby (1.3.7) + concurrent-ruby (1.3.8) date (3.5.1) debug (1.11.1) irb (~> 1.10) @@ -101,12 +101,12 @@ GEM rdoc (>= 4.0.0) reline (>= 0.4.2) json (2.21.1) - kettle-dev (2.3.7) + kettle-dev (2.3.8) emoji_regex (>= 15.0) kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) - kettle-rb (0.1.4) + kettle-rb (0.1.5) kettle-soup-cover (3.0.4) kettle-wash (~> 0.1, >= 0.1.0) simplecov (>= 1.0) @@ -114,7 +114,7 @@ GEM simplecov-console (~> 0.9, >= 0.9.5) simplecov-rcov (~> 0.3, >= 0.3.7) simplecov_lcov_formatter (~> 0.9, >= 0.9.0) - kettle-test (2.0.11) + kettle-test (2.0.12) appraisal2 (~> 3.0, >= 3.0.6) backports (~> 3.0) rspec (~> 3.0) @@ -339,9 +339,9 @@ GEM delegate (~> 0.1) rspec (~> 3.0) timecop (>= 0.7, < 1) - token-resolver (2.0.4) + token-resolver (2.0.5) parslet (~> 2.0) - version_gem (~> 1.1, >= 1.1.13) + version_gem (~> 1.1, >= 1.1.14) tree_haver (7.1.0) citrus (~> 3.0) parslet (~> 2.0) @@ -451,7 +451,7 @@ CHECKSUMS cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 commonmarker (2.9.0-x86_64-linux) sha256=8cfe92970eef585a19ddf6613224b91cab64d6029834661bda801f877c9c7f43 commonmarker-merge (7.1.0) - concurrent-ruby (1.3.7) sha256=4412caec3a5ea2e5fdc52076724c071a81f2c0593d83b2ac8cbb8ca63b3151b0 + concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 @@ -473,10 +473,10 @@ CHECKSUMS io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 - kettle-dev (2.3.7) sha256=eb370113cd030d03cbe2d33b31c99858951017e5ad21a17e9ed89dc3770028ee - kettle-rb (0.1.4) sha256=9cef7ce4f7021666b7222292f29051e51eaf042e8a5db11f3f4dd72f74243fc1 + kettle-dev (2.3.8) sha256=9d716ff21c660a730cb4e8d41e2e2f0630a28167a354b6e2924e242102aef72c + kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f kettle-soup-cover (3.0.4) - kettle-test (2.0.11) sha256=c710c90f7ab79d51f9452f0c09f5f90657e7a893f63583855c164d0b1b107ab2 + kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 @@ -558,7 +558,7 @@ CHECKSUMS thor (1.5.0) sha256=e3a9e55fe857e44859ce104a84675ab6e8cd59c650a49106a05f55f136425e73 timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 - token-resolver (2.0.4) sha256=33b926958f504525bba3ed511ab66fbcbf8ef30390815e931436b30f27ffcad0 + token-resolver (2.0.5) tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f diff --git a/gems/commonmarker-merge/Rakefile b/gems/commonmarker-merge/Rakefile index df55d9073..40e72097b 100644 --- a/gems/commonmarker-merge/Rakefile +++ b/gems/commonmarker-merge/Rakefile @@ -130,23 +130,23 @@ end ### DUPLICATE DRIFT TASKS begin - require "kettle/drift" + require 'kettle/drift' Kettle::Drift.install_tasks rescue LoadError - desc("(stub) kettle:drift:check is unavailable") - task("kettle:drift:check") do + desc('(stub) kettle:drift:check is unavailable') + task('kettle:drift:check') do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc("(stub) kettle:drift:update is unavailable") - task("kettle:drift:update") do + desc('(stub) kettle:drift:update is unavailable') + task('kettle:drift:update') do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc("(stub) kettle:drift:force_update is unavailable") - task("kettle:drift:force_update") do + desc('(stub) kettle:drift:force_update is unavailable') + task('kettle:drift:force_update') do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc("(stub) kettle:drift is unavailable") - task("kettle:drift" => "kettle:drift:update") + desc('(stub) kettle:drift is unavailable') + task('kettle:drift' => 'kettle:drift:update') end ### TEMPLATING TASKS diff --git a/gems/commonmarker-merge/bin/yard b/gems/commonmarker-merge/bin/yard index a7e8b6eed..5d516ad6f 100755 --- a/gems/commonmarker-merge/bin/yard +++ b/gems/commonmarker-merge/bin/yard @@ -12,4 +12,4 @@ # `yard` / `bin/yard`. Keep this binstub as a handoff to the task so # humans and tools that reach for `bin/yard` still run the full docs # workflow with post-processing hooks. -exec("bundle", "exec", "rake", "yard") +exec('bundle', 'exec', 'rake', 'yard') diff --git a/gems/commonmarker-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile b/gems/commonmarker-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile index dec650815..b8392fab0 100644 --- a/gems/commonmarker-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile +++ b/gems/commonmarker-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.1 -gem "benchmark", "~> 0.5", ">= 0.5.0" # Removed from Std Lib in Ruby 4.0 +gem 'benchmark', '~> 0.5', '>= 0.5.0' # Removed from Std Lib in Ruby 4.0 diff --git a/gems/commonmarker-merge/gemfiles/modular/benchmark/vHEAD.gemfile b/gems/commonmarker-merge/gemfiles/modular/benchmark/vHEAD.gemfile index e1eb20c5e..af214aafa 100644 --- a/gems/commonmarker-merge/gemfiles/modular/benchmark/vHEAD.gemfile +++ b/gems/commonmarker-merge/gemfiles/modular/benchmark/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.1 -gem "benchmark", github: "ruby/benchmark", branch: "master" +gem 'benchmark', github: 'ruby/benchmark', branch: 'master' diff --git a/gems/commonmarker-merge/gemfiles/modular/cgi/r4/v0.5.gemfile b/gems/commonmarker-merge/gemfiles/modular/cgi/r4/v0.5.gemfile index 19ed967c3..17ad97260 100644 --- a/gems/commonmarker-merge/gemfiles/modular/cgi/r4/v0.5.gemfile +++ b/gems/commonmarker-merge/gemfiles/modular/cgi/r4/v0.5.gemfile @@ -1 +1 @@ -gem "cgi", "~> 0.5" +gem 'cgi', '~> 0.5' diff --git a/gems/commonmarker-merge/gemfiles/modular/cgi/vHEAD.gemfile b/gems/commonmarker-merge/gemfiles/modular/cgi/vHEAD.gemfile index ef8b816ce..650fbf033 100644 --- a/gems/commonmarker-merge/gemfiles/modular/cgi/vHEAD.gemfile +++ b/gems/commonmarker-merge/gemfiles/modular/cgi/vHEAD.gemfile @@ -1 +1 @@ -gem "cgi", ">= 0.5" +gem 'cgi', '>= 0.5' diff --git a/gems/commonmarker-merge/gemfiles/modular/coverage.gemfile b/gems/commonmarker-merge/gemfiles/modular/coverage.gemfile index 52d737872..b93014b6b 100644 --- a/gems/commonmarker-merge/gemfiles/modular/coverage.gemfile +++ b/gems/commonmarker-merge/gemfiles/modular/coverage.gemfile @@ -4,11 +4,11 @@ # Set KETTLE_DEV_DEV=true for local development with path-based dependencies. # When false (default / CI), remote released gems are used. -if ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false").zero? +if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? # Coverage (remote/released) platform :mri do - gem "kettle-soup-cover", "~> 3.0", ">= 3.0.3", require: false + gem 'kettle-soup-cover', '~> 3.0', '>= 3.0.3', require: false end else - eval_gemfile "coverage_local.gemfile" + eval_gemfile 'coverage_local.gemfile' end diff --git a/gems/commonmarker-merge/gemfiles/modular/coverage_local.gemfile b/gems/commonmarker-merge/gemfiles/modular/coverage_local.gemfile index e9a2f446c..20610f259 100644 --- a/gems/commonmarker-merge/gemfiles/modular/coverage_local.gemfile +++ b/gems/commonmarker-merge/gemfiles/modular/coverage_local.gemfile @@ -11,21 +11,19 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] -nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) +nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] +nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == "nomono" } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - if nomono_locked - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] - end + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked end -Kernel.send(:gem, "nomono", *nomono_activation_requirements) -require "nomono/bundler" +Kernel.send(:gem, 'nomono', *nomono_activation_requirements) +require 'nomono/bundler' local_gems = %w[kettle-dev kettle-test kettle-soup-cover kettle-drift] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) @@ -35,21 +33,21 @@ local_gems_to_eval = local_gems - %w[commonmarker-merge] - declared_gems platform :mri do eval_nomono_gems( gems: local_gems_to_eval, - prefix: "KETTLE_DEV", - path_env: "KETTLE_DEV_DEV", - vendored_gems_env: "VENDORED_GEMS", - vendor_gem_dir_env: "VENDOR_GEM_DIR", - debug_env: "KETTLE_DEV_DEBUG" + prefix: 'KETTLE_DEV', + path_env: 'KETTLE_DEV_DEV', + vendored_gems_env: 'VENDORED_GEMS', + vendor_gem_dir_env: 'VENDOR_GEM_DIR', + debug_env: 'KETTLE_DEV_DEBUG' ) - if ENV.fetch("GALTZO_FLOSS_DEV", "false").casecmp("false") != 0 + if ENV.fetch('GALTZO_FLOSS_DEV', 'false').casecmp('false') != 0 eval_nomono_gems( gems: %w[turbo_tests2], - prefix: "GALTZO_FLOSS", - path_env: "GALTZO_FLOSS_DEV", - vendored_gems_env: "GALTZO_FLOSS_VENDORED_GEMS", - vendor_gem_dir_env: "GALTZO_FLOSS_VENDOR_GEM_DIR", - debug_env: "GALTZO_FLOSS_DEBUG" + prefix: 'GALTZO_FLOSS', + path_env: 'GALTZO_FLOSS_DEV', + vendored_gems_env: 'GALTZO_FLOSS_VENDORED_GEMS', + vendor_gem_dir_env: 'GALTZO_FLOSS_VENDOR_GEM_DIR', + debug_env: 'GALTZO_FLOSS_DEBUG' ) end end diff --git a/gems/commonmarker-merge/gemfiles/modular/debug.gemfile b/gems/commonmarker-merge/gemfiles/modular/debug.gemfile index 4e15b1a3a..eed8d4d1e 100644 --- a/gems/commonmarker-merge/gemfiles/modular/debug.gemfile +++ b/gems/commonmarker-merge/gemfiles/modular/debug.gemfile @@ -13,10 +13,10 @@ platform :mri do # Debugging - Ensure ENV["DEBUG"] == "true" to use debuggers within spec suite # Use binding.break, binding.b, or debugger in code - gem "debug", ">= 1.1" # ruby >= 2.7 + gem 'debug', '>= 1.1' # ruby >= 2.7 # Dev Console - Binding.pry - Irb replacement # gem "pry", "~> 0.14" # ruby >= 2.0 end -gem "gem_bench", "~> 2.0", ">= 2.0.5" +gem 'gem_bench', '~> 2.0', '>= 2.0.5' diff --git a/gems/commonmarker-merge/gemfiles/modular/documentation.gemfile b/gems/commonmarker-merge/gemfiles/modular/documentation.gemfile index d8215416e..9d4535f12 100644 --- a/gems/commonmarker-merge/gemfiles/modular/documentation.gemfile +++ b/gems/commonmarker-merge/gemfiles/modular/documentation.gemfile @@ -7,20 +7,20 @@ # # Documentation -gem "kramdown", "~> 2.5", ">= 2.5.2", require: false # Ruby >= 2.5 -gem "kramdown-parser-gfm", "~> 1.1", require: false # Ruby >= 2.3 -gem "yaml-converter", "~> 0.2", ">= 0.2.3", require: false # Ruby >= 3.2 -gem "yard", "~> 0.9", ">= 0.9.45", require: false -gem "yard-junk", "~> 0.1", ">= 0.1.0", require: false # Ruby >= 3.1 -gem "yard-relative_markdown_links", "~> 0.6", require: false +gem 'kramdown', '~> 2.5', '>= 2.5.2', require: false # Ruby >= 2.5 +gem 'kramdown-parser-gfm', '~> 1.1', require: false # Ruby >= 2.3 +gem 'yaml-converter', '~> 0.2', '>= 0.2.3', require: false # Ruby >= 3.2 +gem 'yard', '~> 0.9', '>= 0.9.45', require: false +gem 'yard-junk', '~> 0.1', '>= 0.1.0', require: false # Ruby >= 3.1 +gem 'yard-relative_markdown_links', '~> 0.6', require: false -if ENV.fetch("GALTZO_FLOSS_DEV", "false").casecmp("false").zero? - gem "yard-fence", "~> 0.9", ">= 0.9.6", require: false # Ruby >= 3.2 - gem "yard-timekeeper", "~> 0.2", ">= 0.2.4", require: false - gem "yard-yaml", "~> 0.2", ">= 0.2.3", require: false +if ENV.fetch('GALTZO_FLOSS_DEV', 'false').casecmp('false').zero? + gem 'yard-fence', '~> 0.9', '>= 0.9.6', require: false # Ruby >= 3.2 + gem 'yard-timekeeper', '~> 0.2', '>= 0.2.4', require: false + gem 'yard-yaml', '~> 0.2', '>= 0.2.3', require: false else - eval_gemfile "documentation_local.gemfile" + eval_gemfile 'documentation_local.gemfile' end # Std Lib extractions -gem "rdoc", "~> 6.11", require: false unless ENV.fetch("KJ_FRAMEWORK_MATRIX_GEM", "") == "rdoc" +gem 'rdoc', '~> 6.11', require: false unless ENV.fetch('KJ_FRAMEWORK_MATRIX_GEM', '') == 'rdoc' diff --git a/gems/commonmarker-merge/gemfiles/modular/documentation_local.gemfile b/gems/commonmarker-merge/gemfiles/modular/documentation_local.gemfile index 2c478d8c9..9ecf2df17 100644 --- a/gems/commonmarker-merge/gemfiles/modular/documentation_local.gemfile +++ b/gems/commonmarker-merge/gemfiles/modular/documentation_local.gemfile @@ -11,21 +11,19 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] -nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) +nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] +nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == "nomono" } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - if nomono_locked - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] - end + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked end -Kernel.send(:gem, "nomono", *nomono_activation_requirements) -require "nomono/bundler" +Kernel.send(:gem, 'nomono', *nomono_activation_requirements) +require 'nomono/bundler' local_gems = %w[yard-fence yard-timekeeper yard-yaml] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) @@ -34,9 +32,9 @@ local_gems_to_eval = local_gems - %w[commonmarker-merge] - declared_gems # export GALTZO_FLOSS_DEV=/path/to/galtzo-floss eval_nomono_gems( gems: local_gems_to_eval, - prefix: "GALTZO_FLOSS", - path_env: "GALTZO_FLOSS_DEV", - vendored_gems_env: "GALTZO_FLOSS_VENDORED_GEMS", - vendor_gem_dir_env: "GALTZO_FLOSS_VENDOR_GEM_DIR", - debug_env: "GALTZO_FLOSS_DEBUG" + prefix: 'GALTZO_FLOSS', + path_env: 'GALTZO_FLOSS_DEV', + vendored_gems_env: 'GALTZO_FLOSS_VENDORED_GEMS', + vendor_gem_dir_env: 'GALTZO_FLOSS_VENDOR_GEM_DIR', + debug_env: 'GALTZO_FLOSS_DEBUG' ) diff --git a/gems/commonmarker-merge/gemfiles/modular/erb/r2/v3.0.gemfile b/gems/commonmarker-merge/gemfiles/modular/erb/r2/v3.0.gemfile index c03bd8d85..7c83a239b 100644 --- a/gems/commonmarker-merge/gemfiles/modular/erb/r2/v3.0.gemfile +++ b/gems/commonmarker-merge/gemfiles/modular/erb/r2/v3.0.gemfile @@ -1 +1 @@ -gem "erb", "~> 3.0" # ruby >= 2.7.0 +gem 'erb', '~> 3.0' # ruby >= 2.7.0 diff --git a/gems/commonmarker-merge/gemfiles/modular/erb/r3/v5.0.gemfile b/gems/commonmarker-merge/gemfiles/modular/erb/r3/v5.0.gemfile index 1bd029cc1..ec7ff451f 100644 --- a/gems/commonmarker-merge/gemfiles/modular/erb/r3/v5.0.gemfile +++ b/gems/commonmarker-merge/gemfiles/modular/erb/r3/v5.0.gemfile @@ -1 +1 @@ -gem "erb", "~> 6.0", ">= 6.0.6" # ruby >= 3.2.0 +gem 'erb', '~> 6.0', '>= 6.0.6' # ruby >= 3.2.0 diff --git a/gems/commonmarker-merge/gemfiles/modular/erb/r4/v5.0.gemfile b/gems/commonmarker-merge/gemfiles/modular/erb/r4/v5.0.gemfile index 1bd029cc1..ec7ff451f 100644 --- a/gems/commonmarker-merge/gemfiles/modular/erb/r4/v5.0.gemfile +++ b/gems/commonmarker-merge/gemfiles/modular/erb/r4/v5.0.gemfile @@ -1 +1 @@ -gem "erb", "~> 6.0", ">= 6.0.6" # ruby >= 3.2.0 +gem 'erb', '~> 6.0', '>= 6.0.6' # ruby >= 3.2.0 diff --git a/gems/commonmarker-merge/gemfiles/modular/erb/vHEAD.gemfile b/gems/commonmarker-merge/gemfiles/modular/erb/vHEAD.gemfile index 48fee4218..ea0101185 100644 --- a/gems/commonmarker-merge/gemfiles/modular/erb/vHEAD.gemfile +++ b/gems/commonmarker-merge/gemfiles/modular/erb/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 3.2 -gem "erb", github: "ruby/erb", branch: "master" +gem 'erb', github: 'ruby/erb', branch: 'master' diff --git a/gems/commonmarker-merge/gemfiles/modular/json/truffleruby_22_3.gemfile b/gems/commonmarker-merge/gemfiles/modular/json/truffleruby_22_3.gemfile index b0e69ab11..9b2f8d96a 100644 --- a/gems/commonmarker-merge/gemfiles/modular/json/truffleruby_22_3.gemfile +++ b/gems/commonmarker-merge/gemfiles/modular/json/truffleruby_22_3.gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -if RUBY_ENGINE == "truffleruby" && RUBY_ENGINE_VERSION.start_with?("22.3") +if RUBY_ENGINE == 'truffleruby' && RUBY_ENGINE_VERSION.start_with?('22.3') # TruffleRuby 22.3 ships the json default gem from its emulated MRI Ruby. - gem "json", "= 2.5.1" + gem 'json', '= 2.5.1' end diff --git a/gems/commonmarker-merge/gemfiles/modular/json/truffleruby_23_0.gemfile b/gems/commonmarker-merge/gemfiles/modular/json/truffleruby_23_0.gemfile index 7b2660a2b..d787a5ef4 100644 --- a/gems/commonmarker-merge/gemfiles/modular/json/truffleruby_23_0.gemfile +++ b/gems/commonmarker-merge/gemfiles/modular/json/truffleruby_23_0.gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -if RUBY_ENGINE == "truffleruby" && RUBY_ENGINE_VERSION.start_with?("23.0") +if RUBY_ENGINE == 'truffleruby' && RUBY_ENGINE_VERSION.start_with?('23.0') # TruffleRuby 23.0 ships the json default gem from its emulated MRI Ruby. - gem "json", "= 2.6.1" + gem 'json', '= 2.6.1' end diff --git a/gems/commonmarker-merge/gemfiles/modular/json/truffleruby_23_1.gemfile b/gems/commonmarker-merge/gemfiles/modular/json/truffleruby_23_1.gemfile index dfa21f2e4..d78486b0e 100644 --- a/gems/commonmarker-merge/gemfiles/modular/json/truffleruby_23_1.gemfile +++ b/gems/commonmarker-merge/gemfiles/modular/json/truffleruby_23_1.gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -if RUBY_ENGINE == "truffleruby" && RUBY_ENGINE_VERSION.start_with?("23.1") +if RUBY_ENGINE == 'truffleruby' && RUBY_ENGINE_VERSION.start_with?('23.1') # TruffleRuby 23.1 ships the json default gem from its emulated MRI Ruby. - gem "json", "= 2.6.3" + gem 'json', '= 2.6.3' end diff --git a/gems/commonmarker-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile b/gems/commonmarker-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile index 42e9d9bd4..e27f1bbae 100644 --- a/gems/commonmarker-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile +++ b/gems/commonmarker-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 -gem "mutex_m", "~> 0.2" +gem 'mutex_m', '~> 0.2' diff --git a/gems/commonmarker-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile b/gems/commonmarker-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile index 42e9d9bd4..e27f1bbae 100644 --- a/gems/commonmarker-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile +++ b/gems/commonmarker-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 -gem "mutex_m", "~> 0.2" +gem 'mutex_m', '~> 0.2' diff --git a/gems/commonmarker-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile b/gems/commonmarker-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile index 42e9d9bd4..e27f1bbae 100644 --- a/gems/commonmarker-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile +++ b/gems/commonmarker-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 -gem "mutex_m", "~> 0.2" +gem 'mutex_m', '~> 0.2' diff --git a/gems/commonmarker-merge/gemfiles/modular/mutex_m/vHEAD.gemfile b/gems/commonmarker-merge/gemfiles/modular/mutex_m/vHEAD.gemfile index 8af3b6fca..9dac2f6cb 100644 --- a/gems/commonmarker-merge/gemfiles/modular/mutex_m/vHEAD.gemfile +++ b/gems/commonmarker-merge/gemfiles/modular/mutex_m/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 (dependency of omniauth) -gem "mutex_m", github: "ruby/mutex_m", branch: "master" +gem 'mutex_m', github: 'ruby/mutex_m', branch: 'master' diff --git a/gems/commonmarker-merge/gemfiles/modular/optional.gemfile b/gems/commonmarker-merge/gemfiles/modular/optional.gemfile index 80bc45196..9ea429538 100644 --- a/gems/commonmarker-merge/gemfiles/modular/optional.gemfile +++ b/gems/commonmarker-merge/gemfiles/modular/optional.gemfile @@ -9,8 +9,8 @@ # Optional dependencies are not depended on directly, but may be used if present. # Required for curated binstubs generated by kettle-jem install -gem "rbs", ">= 3.0", require: false # ruby >= 3.1 +gem 'rbs', '>= 3.0', require: false # ruby >= 3.1 # Required for kettle-pre-release # URL parsing with Unicode support (falls back to URI if not available) -gem "addressable", ">= 2.8", "< 3" # ruby >= 2.2 +gem 'addressable', '>= 2.8', '< 3' # ruby >= 2.2 diff --git a/gems/commonmarker-merge/gemfiles/modular/rspec.gemfile b/gems/commonmarker-merge/gemfiles/modular/rspec.gemfile index 72fdf8b7f..2af210a41 100644 --- a/gems/commonmarker-merge/gemfiles/modular/rspec.gemfile +++ b/gems/commonmarker-merge/gemfiles/modular/rspec.gemfile @@ -1,4 +1,4 @@ -gem "rspec_junit_formatter", - github: "pboling/rspec_junit_formatter", - branch: "main", - ref: "9e6bcaaedd49477b62878ed568dc4ada5cc7cb5e" +gem 'rspec_junit_formatter', + github: 'pboling/rspec_junit_formatter', + branch: 'main', + ref: '9e6bcaaedd49477b62878ed568dc4ada5cc7cb5e' diff --git a/gems/commonmarker-merge/gemfiles/modular/runtime_heads.gemfile b/gems/commonmarker-merge/gemfiles/modular/runtime_heads.gemfile index 02f134c7f..ebf17c529 100644 --- a/gems/commonmarker-merge/gemfiles/modular/runtime_heads.gemfile +++ b/gems/commonmarker-merge/gemfiles/modular/runtime_heads.gemfile @@ -8,4 +8,4 @@ # Test against HEAD of runtime dependencies so we can proactively file bugs -eval_gemfile("x_std_libs/vHEAD.gemfile") +eval_gemfile('x_std_libs/vHEAD.gemfile') diff --git a/gems/commonmarker-merge/gemfiles/modular/stringio/r2/v3.0.gemfile b/gems/commonmarker-merge/gemfiles/modular/stringio/r2/v3.0.gemfile index e85bb18ee..3616f4e3a 100644 --- a/gems/commonmarker-merge/gemfiles/modular/stringio/r2/v3.0.gemfile +++ b/gems/commonmarker-merge/gemfiles/modular/stringio/r2/v3.0.gemfile @@ -2,4 +2,4 @@ # NOT SEMVER # Version 3.0.7 dropped support for Ruby <= 2.7 # Version 3.0.0 dropped support for Ruby <= 2.4 -gem "stringio", ">= 3.0" +gem 'stringio', '>= 3.0' diff --git a/gems/commonmarker-merge/gemfiles/modular/stringio/r3/v3.0.gemfile b/gems/commonmarker-merge/gemfiles/modular/stringio/r3/v3.0.gemfile index e85bb18ee..3616f4e3a 100644 --- a/gems/commonmarker-merge/gemfiles/modular/stringio/r3/v3.0.gemfile +++ b/gems/commonmarker-merge/gemfiles/modular/stringio/r3/v3.0.gemfile @@ -2,4 +2,4 @@ # NOT SEMVER # Version 3.0.7 dropped support for Ruby <= 2.7 # Version 3.0.0 dropped support for Ruby <= 2.4 -gem "stringio", ">= 3.0" +gem 'stringio', '>= 3.0' diff --git a/gems/commonmarker-merge/gemfiles/modular/stringio/r4/v3.0.gemfile b/gems/commonmarker-merge/gemfiles/modular/stringio/r4/v3.0.gemfile index e85bb18ee..3616f4e3a 100644 --- a/gems/commonmarker-merge/gemfiles/modular/stringio/r4/v3.0.gemfile +++ b/gems/commonmarker-merge/gemfiles/modular/stringio/r4/v3.0.gemfile @@ -2,4 +2,4 @@ # NOT SEMVER # Version 3.0.7 dropped support for Ruby <= 2.7 # Version 3.0.0 dropped support for Ruby <= 2.4 -gem "stringio", ">= 3.0" +gem 'stringio', '>= 3.0' diff --git a/gems/commonmarker-merge/gemfiles/modular/stringio/vHEAD.gemfile b/gems/commonmarker-merge/gemfiles/modular/stringio/vHEAD.gemfile index 5f2a74126..78f5f5d8a 100644 --- a/gems/commonmarker-merge/gemfiles/modular/stringio/vHEAD.gemfile +++ b/gems/commonmarker-merge/gemfiles/modular/stringio/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 (dependency of omniauth) -gem "stringio", github: "ruby/stringio", branch: "master" +gem 'stringio', github: 'ruby/stringio', branch: 'master' diff --git a/gems/commonmarker-merge/gemfiles/modular/style.gemfile b/gems/commonmarker-merge/gemfiles/modular/style.gemfile index 35de4dcd6..4dbcc02c0 100644 --- a/gems/commonmarker-merge/gemfiles/modular/style.gemfile +++ b/gems/commonmarker-merge/gemfiles/modular/style.gemfile @@ -9,23 +9,23 @@ # Style tasks run on the latest Ruby; RuboCop-LTS selects the compatibility # rules for the configured Ruby floor independently from task dependency floors. -gem "reek", "~> 6.5", ">= 6.5.0" +gem 'reek', '~> 6.5', '>= 6.5.0' platform :mri do - gem "appraisal2-rubocop", "~> 1.0", ">= 1.0.0", require: false - gem "rubocop-gradual", "~> 0.4", ">= 0.4.0" - gem "rubocop-minitest", "~> 0.40", ">= 0.40.0" - gem "rubocop-on-rbs", "~> 2.0", ">= 2.0.0" # ruby >= 3.2.0 + gem 'appraisal2-rubocop', '~> 1.0', '>= 1.0.0', require: false + gem 'rubocop-gradual', '~> 0.4', '>= 0.4.0' + gem 'rubocop-minitest', '~> 0.40', '>= 0.40.0' + gem 'rubocop-on-rbs', '~> 2.0', '>= 2.0.0' # ruby >= 3.2.0 # gem "rubocop", "~> 1.73", ">= 1.73.2" # constrained by standard - gem "rubocop-packaging", "~> 0.6", ">= 0.6.0" - gem "standard", "~> 1.56", ">= 1.56.0" + gem 'rubocop-packaging', '~> 0.6', '>= 0.6.0' + gem 'standard', '~> 1.56', '>= 1.56.0' - if ENV.fetch("RUBOCOP_LTS_LOCAL", "false").casecmp("false").zero? + if ENV.fetch('RUBOCOP_LTS_LOCAL', 'false').casecmp('false').zero? declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) - gem "rubocop-lts", "~> 24.2", ">= 24.2.1" unless declared_gems.include?("rubocop-lts") - gem "rubocop-lts-rspec", "~> 1.0", ">= 1.0.5" unless declared_gems.include?("rubocop-lts-rspec") - gem "rubocop-ruby3_2", "~> 3.0", ">= 3.0.6" unless declared_gems.include?("rubocop-ruby3_2") + gem 'rubocop-lts', '~> 24.2', '>= 24.2.1' unless declared_gems.include?('rubocop-lts') + gem 'rubocop-lts-rspec', '~> 1.0', '>= 1.0.5' unless declared_gems.include?('rubocop-lts-rspec') + gem 'rubocop-ruby3_2', '~> 3.0', '>= 3.0.6' unless declared_gems.include?('rubocop-ruby3_2') else - eval_gemfile("style_local.gemfile") + eval_gemfile('style_local.gemfile') end end diff --git a/gems/commonmarker-merge/gemfiles/modular/style_local.gemfile b/gems/commonmarker-merge/gemfiles/modular/style_local.gemfile index 0e9d987e6..31dd7b5be 100644 --- a/gems/commonmarker-merge/gemfiles/modular/style_local.gemfile +++ b/gems/commonmarker-merge/gemfiles/modular/style_local.gemfile @@ -14,21 +14,19 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] -nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) +nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] +nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == "nomono" } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - if nomono_locked - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] - end + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked end -Kernel.send(:gem, "nomono", *nomono_activation_requirements) -require "nomono/bundler" +Kernel.send(:gem, 'nomono', *nomono_activation_requirements) +require 'nomono/bundler' local_gems = %w[rubocop-lts rubocop-lts-rspec rubocop-ruby3_2 standard-rubocop-lts] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) @@ -38,11 +36,11 @@ local_gems_to_eval = local_gems - %w[commonmarker-merge] - declared_gems platform :mri do eval_nomono_gems( gems: local_gems_to_eval, - prefix: "RUBOCOP_LTS", - path_env: "RUBOCOP_LTS_LOCAL", - vendored_gems_env: "VENDORED_GEMS", - vendor_gem_dir_env: "VENDOR_GEM_DIR", - debug_env: "RUBOCOP_LTS_DEBUG", - root: ["src", "rubocop-lts"] + prefix: 'RUBOCOP_LTS', + path_env: 'RUBOCOP_LTS_LOCAL', + vendored_gems_env: 'VENDORED_GEMS', + vendor_gem_dir_env: 'VENDOR_GEM_DIR', + debug_env: 'RUBOCOP_LTS_DEBUG', + root: %w[src rubocop-lts] ) end diff --git a/gems/commonmarker-merge/gemfiles/modular/templating.gemfile b/gems/commonmarker-merge/gemfiles/modular/templating.gemfile index 47138ffbb..a672de184 100644 --- a/gems/commonmarker-merge/gemfiles/modular/templating.gemfile +++ b/gems/commonmarker-merge/gemfiles/modular/templating.gemfile @@ -1,18 +1,18 @@ # frozen_string_literal: true -structuredmerge_remote = ENV.fetch("STRUCTUREDMERGE_DEV", "false").casecmp("false").zero? -kettle_remote = ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false").zero? +structuredmerge_remote = ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false').zero? +kettle_remote = ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? if structuredmerge_remote # Parser dependencies for released installs. - gem "tree_sitter_language_pack", "~> 1.13", ">= 1.13.3" + gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' # Merge recipes for released installs. - gem "kettle-jem", ">= 7.0" + gem 'kettle-jem', '>= 7.0' end if kettle_remote # Template/plugin checks for released installs. - gem "kettle-drift", "~> 1.0", ">= 1.0.6", require: false + gem 'kettle-drift', '~> 1.0', '>= 1.0.6', require: false end # Set STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local development with path-based dependencies. @@ -21,4 +21,4 @@ end # # Set KETTLE_DEV_DEV=/path/to/my for local development with Kettle plugin gems. # When false (default / CI), released Kettle plugin gems are used. -eval_gemfile "templating_local.gemfile" unless structuredmerge_remote && kettle_remote +eval_gemfile 'templating_local.gemfile' unless structuredmerge_remote && kettle_remote diff --git a/gems/commonmarker-merge/gemfiles/modular/templating_local.gemfile b/gems/commonmarker-merge/gemfiles/modular/templating_local.gemfile index 6b5b2916c..b47c25177 100644 --- a/gems/commonmarker-merge/gemfiles/modular/templating_local.gemfile +++ b/gems/commonmarker-merge/gemfiles/modular/templating_local.gemfile @@ -12,21 +12,19 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] -nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) +nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] +nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == "nomono" } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - if nomono_locked - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] - end + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked end -Kernel.send(:gem, "nomono", *nomono_activation_requirements) -require "nomono/bundler" +Kernel.send(:gem, 'nomono', *nomono_activation_requirements) +require 'nomono/bundler' structuredmerge_local_gems = %w[ tree_haver @@ -69,25 +67,25 @@ structuredmerge_local_gems_to_eval = structuredmerge_local_gems - %w[commonmarke kettle_dev_local_gems_to_eval = kettle_dev_local_gems - %w[commonmarker-merge] - declared_gems platform :mri do - if ENV.fetch("STRUCTUREDMERGE_DEV", "false").casecmp("false") != 0 + if ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false') != 0 eval_nomono_gems( gems: structuredmerge_local_gems_to_eval, - prefix: "STRUCTUREDMERGE", - path_env: "STRUCTUREDMERGE_DEV", - vendored_gems_env: "VENDORED_GEMS", - vendor_gem_dir_env: "VENDOR_GEM_DIR", - debug_env: "STRUCTUREDMERGE_DEBUG" + prefix: 'STRUCTUREDMERGE', + path_env: 'STRUCTUREDMERGE_DEV', + vendored_gems_env: 'VENDORED_GEMS', + vendor_gem_dir_env: 'VENDOR_GEM_DIR', + debug_env: 'STRUCTUREDMERGE_DEBUG' ) end - if ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false") != 0 + if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false') != 0 eval_nomono_gems( gems: kettle_dev_local_gems_to_eval, - prefix: "KETTLE_DEV", - path_env: "KETTLE_DEV_DEV", - vendored_gems_env: "VENDORED_GEMS", - vendor_gem_dir_env: "VENDOR_GEM_DIR", - debug_env: "KETTLE_DEV_DEBUG" + prefix: 'KETTLE_DEV', + path_env: 'KETTLE_DEV_DEV', + vendored_gems_env: 'VENDORED_GEMS', + vendor_gem_dir_env: 'VENDOR_GEM_DIR', + debug_env: 'KETTLE_DEV_DEBUG' ) end end diff --git a/gems/commonmarker-merge/gemfiles/modular/webrick/r4/v1.9.gemfile b/gems/commonmarker-merge/gemfiles/modular/webrick/r4/v1.9.gemfile index eaab4a473..b1329ba84 100644 --- a/gems/commonmarker-merge/gemfiles/modular/webrick/r4/v1.9.gemfile +++ b/gems/commonmarker-merge/gemfiles/modular/webrick/r4/v1.9.gemfile @@ -1 +1 @@ -gem "webrick", "~> 1.9" +gem 'webrick', '~> 1.9' diff --git a/gems/commonmarker-merge/gemfiles/modular/webrick/vHEAD.gemfile b/gems/commonmarker-merge/gemfiles/modular/webrick/vHEAD.gemfile index 8a789b634..c7e6f81a1 100644 --- a/gems/commonmarker-merge/gemfiles/modular/webrick/vHEAD.gemfile +++ b/gems/commonmarker-merge/gemfiles/modular/webrick/vHEAD.gemfile @@ -1 +1 @@ -gem "webrick", ">= 1.9" +gem 'webrick', '>= 1.9' diff --git a/gems/commonmarker-merge/gemfiles/modular/x_std_libs.gemfile b/gems/commonmarker-merge/gemfiles/modular/x_std_libs.gemfile index 77aad43f2..b1f43c097 100644 --- a/gems/commonmarker-merge/gemfiles/modular/x_std_libs.gemfile +++ b/gems/commonmarker-merge/gemfiles/modular/x_std_libs.gemfile @@ -1,12 +1,12 @@ ### Std Lib Extracted Gems ruby_version = Gem::Version.new(RUBY_VERSION) -if ruby_version >= Gem::Version.new("4.0") - eval_gemfile "x_std_libs/r4/libs.gemfile" -elsif ruby_version >= Gem::Version.new("3.2") - eval_gemfile "x_std_libs/r3/libs.gemfile" -elsif ruby_version >= Gem::Version.new("3.1") - eval_gemfile "x_std_libs/r3.1/libs.gemfile" +if ruby_version >= Gem::Version.new('4.0') + eval_gemfile 'x_std_libs/r4/libs.gemfile' +elsif ruby_version >= Gem::Version.new('3.2') + eval_gemfile 'x_std_libs/r3/libs.gemfile' +elsif ruby_version >= Gem::Version.new('3.1') + eval_gemfile 'x_std_libs/r3.1/libs.gemfile' else - eval_gemfile "x_std_libs/r2/libs.gemfile" + eval_gemfile 'x_std_libs/r2/libs.gemfile' end diff --git a/gems/commonmarker-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile b/gems/commonmarker-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile index 441c4f03a..16a5e3d70 100644 --- a/gems/commonmarker-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile +++ b/gems/commonmarker-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile @@ -1,3 +1,3 @@ -eval_gemfile "../../erb/r2/v3.0.gemfile" -eval_gemfile "../../mutex_m/r2/v0.3.gemfile" -eval_gemfile "../../stringio/r2/v3.0.gemfile" +eval_gemfile '../../erb/r2/v3.0.gemfile' +eval_gemfile '../../mutex_m/r2/v0.3.gemfile' +eval_gemfile '../../stringio/r2/v3.0.gemfile' diff --git a/gems/commonmarker-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile b/gems/commonmarker-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile index c293a3ddd..220ff95c1 100644 --- a/gems/commonmarker-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile +++ b/gems/commonmarker-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile @@ -1,3 +1,3 @@ -eval_gemfile "../../erb/r3/v5.0.gemfile" -eval_gemfile "../../mutex_m/r3/v0.3.gemfile" -eval_gemfile "../../stringio/r3/v3.0.gemfile" +eval_gemfile '../../erb/r3/v5.0.gemfile' +eval_gemfile '../../mutex_m/r3/v0.3.gemfile' +eval_gemfile '../../stringio/r3/v3.0.gemfile' diff --git a/gems/commonmarker-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile b/gems/commonmarker-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile index eb5574247..e2f6501eb 100644 --- a/gems/commonmarker-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile +++ b/gems/commonmarker-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile @@ -1,6 +1,6 @@ -eval_gemfile "../../erb/r4/v5.0.gemfile" -eval_gemfile "../../mutex_m/r4/v0.3.gemfile" -eval_gemfile "../../stringio/r4/v3.0.gemfile" -eval_gemfile "../../benchmark/r4/v0.5.gemfile" -eval_gemfile "../../cgi/r4/v0.5.gemfile" -eval_gemfile "../../webrick/r4/v1.9.gemfile" +eval_gemfile '../../erb/r4/v5.0.gemfile' +eval_gemfile '../../mutex_m/r4/v0.3.gemfile' +eval_gemfile '../../stringio/r4/v3.0.gemfile' +eval_gemfile '../../benchmark/r4/v0.5.gemfile' +eval_gemfile '../../cgi/r4/v0.5.gemfile' +eval_gemfile '../../webrick/r4/v1.9.gemfile' diff --git a/gems/commonmarker-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile b/gems/commonmarker-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile index d4d5b16c9..ab75cccf1 100644 --- a/gems/commonmarker-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile +++ b/gems/commonmarker-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile @@ -1,6 +1,6 @@ -eval_gemfile "../erb/vHEAD.gemfile" -eval_gemfile "../mutex_m/vHEAD.gemfile" -eval_gemfile "../stringio/vHEAD.gemfile" -eval_gemfile "../benchmark/vHEAD.gemfile" -eval_gemfile "../cgi/vHEAD.gemfile" -eval_gemfile "../webrick/vHEAD.gemfile" +eval_gemfile '../erb/vHEAD.gemfile' +eval_gemfile '../mutex_m/vHEAD.gemfile' +eval_gemfile '../stringio/vHEAD.gemfile' +eval_gemfile '../benchmark/vHEAD.gemfile' +eval_gemfile '../cgi/vHEAD.gemfile' +eval_gemfile '../webrick/vHEAD.gemfile' diff --git a/gems/commonmarker-merge/lib/commonmarker/merge/version.rb b/gems/commonmarker-merge/lib/commonmarker/merge/version.rb index c84c8d0bb..477db0695 100644 --- a/gems/commonmarker-merge/lib/commonmarker/merge/version.rb +++ b/gems/commonmarker-merge/lib/commonmarker/merge/version.rb @@ -3,7 +3,7 @@ module Commonmarker module Merge module Version - VERSION = "7.1.0" + VERSION = '7.1.0' end VERSION = Version::VERSION # Traditional Constant Location end diff --git a/gems/kettle-jem/Gemfile.lock b/gems/kettle-jem/Gemfile.lock index 75b1800a4..86edd6e5f 100644 --- a/gems/kettle-jem/Gemfile.lock +++ b/gems/kettle-jem/Gemfile.lock @@ -43,6 +43,22 @@ PATH prism-merge (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr + specs: + ast-crispr (7.1.0) + ast-merge (= 7.1.0) + service_actor (~> 3.9) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git + specs: + ast-merge-git (7.1.0) + ast-merge (= 7.1.0) + json-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + PATH remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge specs: @@ -52,6 +68,13 @@ PATH tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template + specs: + ast-template (7.1.0) + ast-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + PATH remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge specs: @@ -60,6 +83,13 @@ PATH tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.14) +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge + specs: + binary-merge (7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + PATH remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge specs: @@ -84,6 +114,14 @@ PATH tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.14) +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge + specs: + go-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + PATH remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge specs: @@ -116,6 +154,22 @@ PATH markly (~> 0.9) version_gem (~> 1.1, >= 1.1.9) +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge + specs: + parslet-toml-merge (7.1.0) + toml (~> 0.3) + toml-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge + specs: + plain-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + PATH remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge specs: @@ -150,6 +204,27 @@ PATH tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge + specs: + rust-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb + specs: + smorg-rb (7.1.0) + ast-merge (= 7.1.0) + ast-merge-git (= 7.1.0) + go-merge (= 7.1.0) + json-merge (= 7.1.0) + kettle-jem (= 7.1.0) + markly-merge (= 7.1.0) + plain-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + PATH remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge specs: @@ -167,6 +242,14 @@ PATH tree_sitter_language_pack (>= 1.13.2, < 2.0) version_gem (~> 1.1, >= 1.1.9) +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge + specs: + typescript-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + PATH remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge specs: @@ -175,6 +258,13 @@ PATH tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge + specs: + zip-merge (7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + GEM remote: https://gem.coop/ specs: @@ -190,10 +280,6 @@ GEM rubocop (>= 1.0) version_gem (~> 1.1, >= 1.1.14) ast (2.4.3) - ast-crispr (7.1.0) - ast-merge (= 7.1.0) - service_actor (~> 3.9) - version_gem (~> 1.1, >= 1.1.9) backports (3.25.3) benchmark (0.5.0) bigdecimal (4.1.2) @@ -267,7 +353,7 @@ GEM kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) kettle-drift (1.0.5) - version_gem (~> 1.1, >= 1.1.14) + version_gem (~> 1.1, >= 1.1.13) kettle-rb (0.1.4) kettle-soup-cover (3.0.3) kettle-wash (~> 0.1, >= 0.1.0) @@ -507,6 +593,8 @@ GEM token-resolver (2.0.4) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.13) + toml (0.3.0) + parslet (>= 1.8.0, < 3.0.0) toml-rb (4.2.0) citrus (~> 3.0, > 3.0) racc (~> 1.7) @@ -553,11 +641,15 @@ PLATFORMS DEPENDENCIES appraisal2 (~> 3.2, >= 3.2.0) appraisal2-rubocop (~> 1.0, >= 1.0.0) + ast-crispr! ast-crispr-markdown-markly! ast-crispr-ruby-prism! ast-merge! + ast-merge-git! + ast-template! bash-merge! benchmark (~> 0.5, >= 0.5.0) + binary-merge! bundler-audit (~> 0.9.3) cgi (~> 0.5) citrus-toml-merge! @@ -567,6 +659,7 @@ DEPENDENCIES erb (~> 6.0, >= 6.0.5) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.4) + go-merge! irb (~> 1.17) json-merge! kettle-drift (~> 1.0, >= 1.0.5) @@ -580,6 +673,8 @@ DEPENDENCIES markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) + parslet-toml-merge! + plain-merge! prism-merge! psych-merge! rake (~> 13.0) @@ -596,6 +691,8 @@ DEPENDENCIES rubocop-ruby3_2 (~> 3.0, >= 3.0.6) ruby-merge! ruby-progressbar (~> 1.13) + rust-merge! + smorg-rb! standard (~> 1.56, >= 1.56.0) stone_checksums (~> 1.0, >= 1.0.6) stringio (>= 3.0) @@ -603,6 +700,7 @@ DEPENDENCIES tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) turbo_tests2 (~> 3.2, >= 3.2.0) + typescript-merge! webrick (~> 1.9) yaml-converter (~> 0.2, >= 0.2.3) yaml-merge! @@ -612,6 +710,7 @@ DEPENDENCIES yard-relative_markdown_links (~> 0.6) yard-timekeeper (~> 0.2, >= 0.2.4) yard-yaml (~> 0.2, >= 0.2.3) + zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af @@ -623,10 +722,13 @@ CHECKSUMS ast-crispr-markdown-markly (7.1.0) ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) + ast-merge-git (7.1.0) + ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd + binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 @@ -653,16 +755,17 @@ CHECKSUMS gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f + go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 json-merge (7.1.0) - kettle-dev (2.3.7) - kettle-drift (1.0.5) + kettle-dev (2.3.7) sha256=eb370113cd030d03cbe2d33b31c99858951017e5ad21a17e9ed89dc3770028ee + kettle-drift (1.0.5) sha256=07094e80140a049164142820bdd327c30fcd855bb00697a0a430600a2b5144a2 kettle-jem (7.1.0) kettle-rb (0.1.4) sha256=9cef7ce4f7021666b7222292f29051e51eaf042e8a5db11f3f4dd72f74243fc1 - kettle-soup-cover (3.0.3) + kettle-soup-cover (3.0.3) sha256=5919649be35690e4580299a41ac7c44a9548a7ca38561ffdd3c683c9d63e6f9b kettle-test (2.0.11) sha256=c710c90f7ab79d51f9452f0c09f5f90657e7a893f63583855c164d0b1b107ab2 kettle-wash (0.1.0) sha256=5c04b3900d0957339e7c7d9997bbd804599b68bde002e6f47f4e28a0eea22ea7 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa @@ -683,6 +786,8 @@ CHECKSUMS parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 + parslet-toml-merge (7.1.0) + plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 @@ -733,6 +838,7 @@ CHECKSUMS ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 + rust-merge (7.1.0) service_actor (3.9.4) sha256=e63b523630b9a7e62959b2a90113b08d2565b5de9c148557b281ef847c9539ce silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 @@ -740,6 +846,7 @@ CHECKSUMS simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed + smorg-rb (7.1.0) sorbet-runtime (0.6.13344) sha256=0b4e3310cd10bc814f0d7cfa65db82151103322e75dd63c961546845dd8ba5e5 standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b @@ -754,12 +861,14 @@ CHECKSUMS timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.4) sha256=33b926958f504525bba3ed511ab66fbcbf8ef30390815e931436b30f27ffcad0 + toml (0.3.0) sha256=0a91d0f76a9036e84e44f95693b12f58d358c1df3ac8e3b5271f2056ecc6e4b9 toml-merge (7.1.0) toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 + typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 @@ -773,6 +882,7 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 + zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH From 05a76f68004974abec545b96577a9194ccb70a94 Mon Sep 17 00:00:00 2001 From: "Peter H. Boling" Date: Tue, 21 Jul 2026 13:55:50 -0600 Subject: [PATCH 142/188] =?UTF-8?q?=F0=9F=8E=A8=20Template=20bootstrap=20b?= =?UTF-8?q?y=20kettle-jem=20v7.1.0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gems/commonmarker-merge/Gemfile.lock | 335 +++++++++++- gems/kettle-jem/.github/workflows/ci.yml | 4 +- .../kettle-jem/.github/workflows/coverage.yml | 4 +- gems/kettle-jem/.github/workflows/current.yml | 4 +- .../.github/workflows/dep-heads.yml | 12 +- .../.github/workflows/dependency-review.yml | 2 +- gems/kettle-jem/.github/workflows/heads.yml | 12 +- gems/kettle-jem/.github/workflows/jruby.yml | 4 +- .../.github/workflows/locked_deps.yml | 4 +- .../.github/workflows/opencollective.yml | 4 +- gems/kettle-jem/.github/workflows/style.yml | 4 +- .../.github/workflows/templating.yml | 4 +- gems/kettle-jem/.github/workflows/truffle.yml | 4 +- .../.github/workflows/unlocked_deps.yml | 4 +- .../gemfiles/modular/templating.gemfile | 2 +- gems/kramdown-merge/.kettle-drift.lock | 9 - gems/kramdown-merge/.rubocop_gradual.lock | 34 +- gems/kramdown-merge/Gemfile | 70 ++- gems/kramdown-merge/Gemfile.lock | 495 ++++-------------- gems/kramdown-merge/README.md | 4 +- gems/kramdown-merge/Rakefile | 18 +- .../gemfiles/modular/cgi/r4/v0.5.gemfile | 1 + .../gemfiles/modular/cgi/vHEAD.gemfile | 1 + .../gemfiles/modular/coverage.gemfile | 2 +- .../gemfiles/modular/coverage_local.gemfile | 24 +- .../gemfiles/modular/documentation.gemfile | 12 +- .../modular/documentation_local.gemfile | 26 +- .../gemfiles/modular/erb/r3/v5.0.gemfile | 2 +- .../gemfiles/modular/erb/r4/v5.0.gemfile | 2 +- .../modular/json/truffleruby_22_3.gemfile | 6 + .../modular/json/truffleruby_23_0.gemfile | 6 + .../modular/json/truffleruby_23_1.gemfile | 6 + .../gemfiles/modular/optional.gemfile | 3 +- .../gemfiles/modular/runtime_heads.gemfile | 5 +- .../gemfiles/modular/style.gemfile | 23 +- .../gemfiles/modular/style_local.gemfile | 30 +- .../gemfiles/modular/templating.gemfile | 4 +- .../gemfiles/modular/templating_local.gemfile | 22 +- .../gemfiles/modular/webrick/r4/v1.9.gemfile | 1 + .../gemfiles/modular/webrick/vHEAD.gemfile | 1 + .../modular/x_std_libs/r4/libs.gemfile | 2 + .../gemfiles/modular/x_std_libs/vHEAD.gemfile | 2 + .../lib/kramdown/merge/version.rb | 2 +- gems/smorg-rb/.kettle-drift.lock | 308 +---------- gems/smorg-rb/.structuredmerge/kettle-jem.yml | 53 ++ gems/smorg-rb/Gemfile | 72 ++- gems/smorg-rb/Gemfile.lock | 437 +++++++++++----- gems/smorg-rb/Rakefile | 18 +- gems/smorg-rb/lib/smorg/rb/version.rb | 2 +- 49 files changed, 1123 insertions(+), 983 deletions(-) create mode 100644 gems/kramdown-merge/gemfiles/modular/cgi/r4/v0.5.gemfile create mode 100644 gems/kramdown-merge/gemfiles/modular/cgi/vHEAD.gemfile create mode 100644 gems/kramdown-merge/gemfiles/modular/json/truffleruby_22_3.gemfile create mode 100644 gems/kramdown-merge/gemfiles/modular/json/truffleruby_23_0.gemfile create mode 100644 gems/kramdown-merge/gemfiles/modular/json/truffleruby_23_1.gemfile create mode 100644 gems/kramdown-merge/gemfiles/modular/webrick/r4/v1.9.gemfile create mode 100644 gems/kramdown-merge/gemfiles/modular/webrick/vHEAD.gemfile diff --git a/gems/commonmarker-merge/Gemfile.lock b/gems/commonmarker-merge/Gemfile.lock index 54b1d5f1d..54a484c3d 100644 --- a/gems/commonmarker-merge/Gemfile.lock +++ b/gems/commonmarker-merge/Gemfile.lock @@ -7,13 +7,264 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly + specs: + ast-crispr-markdown-markly (7.1.0) + ast-crispr (= 7.1.0) + markly-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism + specs: + ast-crispr-ruby-prism (7.1.0) + ast-crispr (= 7.1.0) + prism-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr + specs: + ast-crispr (7.1.0) + ast-merge (= 7.1.0) + service_actor (~> 3.9) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git + specs: + ast-merge-git (7.1.0) + ast-merge (= 7.1.0) + json-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge + specs: + ast-merge (7.1.0) + benchmark + token-resolver (~> 2.0, >= 2.0.4) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template + specs: + ast-template (7.1.0) + ast-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge + specs: + bash-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge + specs: + binary-merge (7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge + specs: + citrus-toml-merge (7.1.0) + toml-merge (= 7.1.0) + toml-rb (~> 4.1) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge + specs: + dotenv-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge + specs: + go-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge + specs: + json-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem + specs: + kettle-jem (7.1.0) + addressable (>= 2.8, < 3) + ast-crispr-markdown-markly (= 7.1.0) + ast-crispr-ruby-prism (= 7.1.0) + ast-merge (= 7.1.0) + bash-merge (= 7.1.0) + citrus-toml-merge (= 7.1.0) + commonmarker-merge (= 7.1.0) + dotenv-merge (= 7.1.0) + json-merge (= 7.1.0) + kettle-dev (~> 2.3, >= 2.3.5) + kettle-rb (~> 0.1, >= 0.1.4) + kramdown-merge (= 7.1.0) + markdown-merge (= 7.1.0) + markly-merge (= 7.1.0) + prism-merge (= 7.1.0) + psych-merge (= 7.1.0) + rbs (>= 3.10) + rbs-merge (= 7.1.0) + ruby-merge (= 7.1.0) + token-resolver (~> 2.0, >= 2.0.4) + toml-merge (= 7.1.0) + toml-rb (~> 4.2) + tree_haver (= 7.1.0) + yaml-merge (= 7.1.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge + specs: + kramdown-merge (7.1.0) + kramdown (~> 2.5) + markdown-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge specs: markdown-merge (7.1.0) ast-merge (= 7.1.0) tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge + specs: + markly-merge (7.1.0) + markdown-merge (= 7.1.0) + markly (~> 0.9) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge + specs: + parslet-toml-merge (7.1.0) + toml (~> 0.3) + toml-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge + specs: + plain-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge + specs: + prism-merge (7.1.0) + prism (~> 1.6) + ruby-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge + specs: + psych-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + yaml-merge (= 7.1.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge + specs: + rbs-merge (7.1.0) + ast-merge (= 7.1.0) + rbs (>= 3.10) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge + specs: + ruby-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge + specs: + rust-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb + specs: + smorg-rb (7.1.0) + ast-merge (= 7.1.0) + ast-merge-git (= 7.1.0) + go-merge (= 7.1.0) + json-merge (= 7.1.0) + kettle-jem (= 7.1.0) + markly-merge (= 7.1.0) + plain-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge + specs: + toml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver + specs: + tree_haver (7.1.0) + citrus (~> 3.0) + parslet (~> 2.0) + tree_sitter_language_pack (>= 1.13.2, < 2.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge + specs: + typescript-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge + specs: + yaml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge + specs: + zip-merge (7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + GEM remote: https://gem.coop/ specs: @@ -29,11 +280,6 @@ GEM rubocop (>= 1.0) version_gem (~> 1.1, >= 1.1.14) ast (2.4.3) - ast-merge (7.1.0) - benchmark - token-resolver (~> 2.0, >= 2.0.4) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) backports (3.25.3) benchmark (0.5.0) bigdecimal (4.1.2) @@ -106,6 +352,8 @@ GEM kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) + kettle-drift (1.0.6) + version_gem (~> 1.1, >= 1.1.14) kettle-rb (0.1.5) kettle-soup-cover (3.0.4) kettle-wash (~> 0.1, >= 0.1.0) @@ -134,6 +382,7 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) + markly (0.16.0) mutex_m (0.3.0) nokogiri (1.19.4-x86_64-linux-gnu) racc (~> 1.4) @@ -288,6 +537,8 @@ GEM ruby-progressbar (1.13.0) ruby_engine (2.0.3) ruby_version (1.0.3) + service_actor (3.9.4) + zeitwerk (>= 1.0) silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) @@ -342,11 +593,11 @@ GEM token-resolver (2.0.5) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.14) - tree_haver (7.1.0) - citrus (~> 3.0) - parslet (~> 2.0) - tree_sitter_language_pack (>= 1.13.2, < 2.0) - version_gem (~> 1.1, >= 1.1.9) + toml (0.3.0) + parslet (>= 1.8.0, < 3.0.0) + toml-rb (4.2.0) + citrus (~> 3.0, > 3.0) + racc (~> 1.7) tree_sitter_language_pack (1.13.3-x86_64-linux) sorbet-runtime (~> 0.5) tsort (0.2.0) @@ -392,25 +643,46 @@ DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) appraisal2-rubocop (~> 1.0, >= 1.0.0) + ast-crispr! + ast-crispr-markdown-markly! + ast-crispr-ruby-prism! + ast-merge! + ast-merge-git! + ast-template! + bash-merge! benchmark (~> 0.5, >= 0.5.0) + binary-merge! bundler-audit (~> 0.9.3) cgi (~> 0.5) + citrus-toml-merge! commonmarker-merge! debug (>= 1.1) + dotenv-merge! erb (~> 6.0, >= 6.0.6) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.0) + go-merge! irb (~> 1.17) + json-merge! kettle-dev (~> 2.0, >= 2.2.25) + kettle-drift (~> 1.0, >= 1.0.6) + kettle-jem! kettle-soup-cover (~> 3.0, >= 3.0.3) kettle-test (~> 2.0, >= 2.0.9) kramdown (~> 2.5, >= 2.5.2) + kramdown-merge! kramdown-parser-gfm (~> 1.1) markdown-merge! + markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) + parslet-toml-merge! + plain-merge! + prism-merge! + psych-merge! rake (~> 13.0) rbs (>= 3.0) + rbs-merge! rdoc (~> 6.11) reek (~> 6.5, >= 6.5.0) require_bench (~> 1.0, >= 1.0.4) @@ -421,19 +693,27 @@ DEPENDENCIES rubocop-on-rbs (~> 2.0, >= 2.0.0) rubocop-packaging (~> 0.6, >= 0.6.0) rubocop-ruby3_2 (~> 3.0, >= 3.0.6) + ruby-merge! ruby-progressbar (~> 1.13) + rust-merge! + smorg-rb! standard (~> 1.56, >= 1.56.0) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) + toml-merge! + tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) + typescript-merge! webrick (~> 1.9) yaml-converter (~> 0.2, >= 0.2.3) + yaml-merge! yard (~> 0.9, >= 0.9.45) yard-fence (~> 0.9, >= 0.9.6) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) yard-timekeeper (~> 0.2, >= 0.2.4) yard-yaml (~> 0.2, >= 0.2.3) + zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af @@ -441,13 +721,21 @@ CHECKSUMS appraisal2 (3.2.0) sha256=ccd0b767ac4060cd7af6d16747459b6990f49c39c7b4fb1f7d1146b1e97c492f appraisal2-rubocop (1.0.0) sha256=b71410fbb014befda5340605a605b7f6f3f012739baf0acc5b4351b592c3258d ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 + ast-crispr (7.1.0) + ast-crispr-markdown-markly (7.1.0) + ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) + ast-merge-git (7.1.0) + ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 + bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd + binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 + citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 commonmarker (2.9.0-x86_64-linux) sha256=8cfe92970eef585a19ddf6613224b91cab64d6029834661bda801f877c9c7f43 commonmarker-merge (7.1.0) @@ -457,6 +745,7 @@ CHECKSUMS delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 + dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -469,21 +758,28 @@ CHECKSUMS gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f + go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 + json-merge (7.1.0) kettle-dev (2.3.8) sha256=9d716ff21c660a730cb4e8d41e2e2f0630a28167a354b6e2924e242102aef72c + kettle-drift (1.0.6) sha256=46eda08fa4411d1f3c6682a95eef1c9df4e94611b3949f49d4c7b43c0ed356a3 + kettle-jem (7.1.0) kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f kettle-soup-cover (3.0.4) kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa + kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 markdown-merge (7.1.0) + markly (0.16.0) sha256=6f70d79e385b1efc9e171f74c81628826259039fe6c778e03c3924c71dac5511 + markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-x86_64-linux-gnu) sha256=379fae440b28915e3f19d752ce2dcf8465ed2b2fbefd2a7ca0dd497bc981a06a nomono (1.0.9) @@ -493,15 +789,20 @@ CHECKSUMS parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 + parslet-toml-merge (7.1.0) + plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 + prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 + psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 + rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb @@ -536,15 +837,19 @@ CHECKSUMS rubocop-rspec_rails (2.32.0) sha256=4a0d641c72f6ebb957534f539d9d0a62c47abd8ce0d0aeee1ef4701e892a9100 rubocop-ruby3_2 (3.0.7) sha256=f53dd6d286fb05186214fc6ec116783e7f837030918e8931c05de773e98f8466 rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 + ruby-merge (7.1.0) ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 + rust-merge (7.1.0) + service_actor (3.9.4) sha256=e63b523630b9a7e62959b2a90113b08d2565b5de9c148557b281ef847c9539ce silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed + smorg-rb (7.1.0) sorbet-runtime (0.6.13347) sha256=54e7221d9f4b63f58aec79f3043752a9ba7810347c6ae0d903531591cc2d5f01 standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b @@ -558,16 +863,21 @@ CHECKSUMS thor (1.5.0) sha256=e3a9e55fe857e44859ce104a84675ab6e8cd59c650a49106a05f55f136425e73 timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 - token-resolver (2.0.5) + token-resolver (2.0.5) sha256=b852f924287ffb58a440856e862b056c8ad97e74b4b2526cee43e0771f40c25c + toml (0.3.0) sha256=0a91d0f76a9036e84e44f95693b12f58d358c1df3ac8e3b5271f2056ecc6e4b9 + toml-merge (7.1.0) + toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 + typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 webrick (1.9.2) sha256=beb4a15fc474defed24a3bda4ffd88a490d517c9e4e6118c3edce59e45864131 yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 + yaml-merge (7.1.0) yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd @@ -575,6 +885,7 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 + zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH diff --git a/gems/kettle-jem/.github/workflows/ci.yml b/gems/kettle-jem/.github/workflows/ci.yml index 2d12ab169..540e43d0e 100644 --- a/gems/kettle-jem/.github/workflows/ci.yml +++ b/gems/kettle-jem/.github/workflows/ci.yml @@ -37,10 +37,10 @@ jobs: steps: - name: Checkout kettle-jem - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 + uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 - name: Setup Ruby & RubyGems - uses: ruby/setup-ruby@003a5c4d8d6321bd302e38f6f0ec593f77f06600 # v1.319.0 + uses: ruby/setup-ruby@a30dfa457ad68707b8b910ac3a244714b61c0626 # v1.320.0 with: ruby-version: "${{ matrix.ruby }}" rubygems: "${{ matrix.rubygems }}" diff --git a/gems/kettle-jem/.github/workflows/coverage.yml b/gems/kettle-jem/.github/workflows/coverage.yml index e974040b9..da8a4281a 100644 --- a/gems/kettle-jem/.github/workflows/coverage.yml +++ b/gems/kettle-jem/.github/workflows/coverage.yml @@ -54,12 +54,12 @@ jobs: steps: - name: Checkout - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 + uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 with: persist-credentials: false - name: Setup Ruby & RubyGems - uses: ruby/setup-ruby@003a5c4d8d6321bd302e38f6f0ec593f77f06600 # v1.319.0 + uses: ruby/setup-ruby@a30dfa457ad68707b8b910ac3a244714b61c0626 # v1.320.0 with: ruby-version: "${{ matrix.ruby }}" rubygems: "${{ matrix.rubygems }}" diff --git a/gems/kettle-jem/.github/workflows/current.yml b/gems/kettle-jem/.github/workflows/current.yml index ff24160f1..9e5ea8691 100644 --- a/gems/kettle-jem/.github/workflows/current.yml +++ b/gems/kettle-jem/.github/workflows/current.yml @@ -45,12 +45,12 @@ jobs: steps: - name: Checkout - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 + uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 with: persist-credentials: false - name: Setup Ruby & RubyGems - uses: ruby/setup-ruby@003a5c4d8d6321bd302e38f6f0ec593f77f06600 # v1.319.0 + uses: ruby/setup-ruby@a30dfa457ad68707b8b910ac3a244714b61c0626 # v1.320.0 with: ruby-version: ${{ matrix.ruby }} rubygems: ${{ matrix.rubygems }} diff --git a/gems/kettle-jem/.github/workflows/dep-heads.yml b/gems/kettle-jem/.github/workflows/dep-heads.yml index d632a147a..eea868a13 100644 --- a/gems/kettle-jem/.github/workflows/dep-heads.yml +++ b/gems/kettle-jem/.github/workflows/dep-heads.yml @@ -49,13 +49,13 @@ jobs: steps: - name: Checkout if: ${{ !env.ACT }} - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 + uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 with: persist-credentials: false - name: Setup Ruby & RubyGems if: ${{ !env.ACT }} - uses: ruby/setup-ruby@003a5c4d8d6321bd302e38f6f0ec593f77f06600 # v1.319.0 + uses: ruby/setup-ruby@a30dfa457ad68707b8b910ac3a244714b61c0626 # v1.320.0 with: ruby-version: ${{ matrix.ruby }} rubygems: ${{ matrix.rubygems }} @@ -112,13 +112,13 @@ jobs: steps: - name: Checkout if: ${{ !env.ACT }} - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 + uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 with: persist-credentials: false - name: Setup Ruby & RubyGems if: ${{ !env.ACT }} - uses: ruby/setup-ruby@003a5c4d8d6321bd302e38f6f0ec593f77f06600 # v1.319.0 + uses: ruby/setup-ruby@a30dfa457ad68707b8b910ac3a244714b61c0626 # v1.320.0 with: ruby-version: ${{ matrix.ruby }} rubygems: ${{ matrix.rubygems }} @@ -160,13 +160,13 @@ jobs: steps: - name: Checkout if: ${{ !env.ACT }} - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 + uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 with: persist-credentials: false - name: Setup Ruby & RubyGems if: ${{ !env.ACT }} - uses: ruby/setup-ruby@003a5c4d8d6321bd302e38f6f0ec593f77f06600 # v1.319.0 + uses: ruby/setup-ruby@a30dfa457ad68707b8b910ac3a244714b61c0626 # v1.320.0 with: ruby-version: ${{ matrix.ruby }} rubygems: ${{ matrix.rubygems }} diff --git a/gems/kettle-jem/.github/workflows/dependency-review.yml b/gems/kettle-jem/.github/workflows/dependency-review.yml index ee085b6ff..0316e06bd 100644 --- a/gems/kettle-jem/.github/workflows/dependency-review.yml +++ b/gems/kettle-jem/.github/workflows/dependency-review.yml @@ -15,7 +15,7 @@ jobs: runs-on: ubuntu-latest steps: - name: 'Checkout Repository' - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 + uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 with: persist-credentials: false - name: 'Dependency Review' diff --git a/gems/kettle-jem/.github/workflows/heads.yml b/gems/kettle-jem/.github/workflows/heads.yml index 95b0f24a4..a7b208445 100644 --- a/gems/kettle-jem/.github/workflows/heads.yml +++ b/gems/kettle-jem/.github/workflows/heads.yml @@ -48,13 +48,13 @@ jobs: steps: - name: Checkout if: ${{ !env.ACT }} - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 + uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 with: persist-credentials: false - name: Setup Ruby & RubyGems if: ${{ !env.ACT }} - uses: ruby/setup-ruby@003a5c4d8d6321bd302e38f6f0ec593f77f06600 # v1.319.0 + uses: ruby/setup-ruby@a30dfa457ad68707b8b910ac3a244714b61c0626 # v1.320.0 with: ruby-version: ${{ matrix.ruby }} rubygems: ${{ matrix.rubygems }} @@ -109,13 +109,13 @@ jobs: steps: - name: Checkout if: ${{ !env.ACT }} - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 + uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 with: persist-credentials: false - name: Setup Ruby & RubyGems if: ${{ !env.ACT }} - uses: ruby/setup-ruby@003a5c4d8d6321bd302e38f6f0ec593f77f06600 # v1.319.0 + uses: ruby/setup-ruby@a30dfa457ad68707b8b910ac3a244714b61c0626 # v1.320.0 with: ruby-version: ${{ matrix.ruby }} rubygems: ${{ matrix.rubygems }} @@ -167,13 +167,13 @@ jobs: steps: - name: Checkout if: ${{ !env.ACT }} - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 + uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 with: persist-credentials: false - name: Setup Ruby & RubyGems if: ${{ !env.ACT }} - uses: ruby/setup-ruby@003a5c4d8d6321bd302e38f6f0ec593f77f06600 # v1.319.0 + uses: ruby/setup-ruby@a30dfa457ad68707b8b910ac3a244714b61c0626 # v1.320.0 with: ruby-version: ${{ matrix.ruby }} rubygems: ${{ matrix.rubygems }} diff --git a/gems/kettle-jem/.github/workflows/jruby.yml b/gems/kettle-jem/.github/workflows/jruby.yml index c92a3d1d7..936909741 100644 --- a/gems/kettle-jem/.github/workflows/jruby.yml +++ b/gems/kettle-jem/.github/workflows/jruby.yml @@ -47,13 +47,13 @@ jobs: steps: - name: Checkout if: ${{ !env.ACT }} - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 + uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 with: persist-credentials: false - name: Setup Ruby & RubyGems if: ${{ !env.ACT }} - uses: ruby/setup-ruby@003a5c4d8d6321bd302e38f6f0ec593f77f06600 # v1.319.0 + uses: ruby/setup-ruby@a30dfa457ad68707b8b910ac3a244714b61c0626 # v1.320.0 with: ruby-version: ${{ matrix.ruby }} rubygems: ${{ matrix.rubygems }} diff --git a/gems/kettle-jem/.github/workflows/locked_deps.yml b/gems/kettle-jem/.github/workflows/locked_deps.yml index 1740ee3d8..6ab882686 100644 --- a/gems/kettle-jem/.github/workflows/locked_deps.yml +++ b/gems/kettle-jem/.github/workflows/locked_deps.yml @@ -71,12 +71,12 @@ jobs: steps: - name: Checkout - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 + uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 with: persist-credentials: false - name: Setup Ruby & RubyGems - uses: ruby/setup-ruby@003a5c4d8d6321bd302e38f6f0ec593f77f06600 # v1.319.0 + uses: ruby/setup-ruby@a30dfa457ad68707b8b910ac3a244714b61c0626 # v1.320.0 with: ruby-version: ${{ matrix.ruby }} rubygems: ${{ matrix.rubygems }} diff --git a/gems/kettle-jem/.github/workflows/opencollective.yml b/gems/kettle-jem/.github/workflows/opencollective.yml index 8d1fd4753..5b5c3649f 100644 --- a/gems/kettle-jem/.github/workflows/opencollective.yml +++ b/gems/kettle-jem/.github/workflows/opencollective.yml @@ -16,11 +16,11 @@ jobs: README_UPDATER_TOKEN: ${{ secrets.README_UPDATER_TOKEN }} REPO: ${{ github.repository }} steps: - - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 + - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 with: persist-credentials: false - name: Setup Ruby & RubyGems - uses: ruby/setup-ruby@003a5c4d8d6321bd302e38f6f0ec593f77f06600 # v1.319.0 + uses: ruby/setup-ruby@a30dfa457ad68707b8b910ac3a244714b61c0626 # v1.320.0 with: ruby-version: ruby rubygems: default diff --git a/gems/kettle-jem/.github/workflows/style.yml b/gems/kettle-jem/.github/workflows/style.yml index de17a7678..ec079a197 100644 --- a/gems/kettle-jem/.github/workflows/style.yml +++ b/gems/kettle-jem/.github/workflows/style.yml @@ -42,12 +42,12 @@ jobs: steps: - name: Checkout - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 + uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 with: persist-credentials: false - name: Setup Ruby & RubyGems - uses: ruby/setup-ruby@003a5c4d8d6321bd302e38f6f0ec593f77f06600 # v1.319.0 + uses: ruby/setup-ruby@a30dfa457ad68707b8b910ac3a244714b61c0626 # v1.320.0 with: ruby-version: ${{ matrix.ruby }} rubygems: ${{ matrix.rubygems }} diff --git a/gems/kettle-jem/.github/workflows/templating.yml b/gems/kettle-jem/.github/workflows/templating.yml index e8515054b..56f319ab3 100644 --- a/gems/kettle-jem/.github/workflows/templating.yml +++ b/gems/kettle-jem/.github/workflows/templating.yml @@ -46,12 +46,12 @@ jobs: steps: - name: Checkout - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 + uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 with: persist-credentials: false - name: Setup Ruby & RubyGems - uses: ruby/setup-ruby@003a5c4d8d6321bd302e38f6f0ec593f77f06600 # v1.319.0 + uses: ruby/setup-ruby@a30dfa457ad68707b8b910ac3a244714b61c0626 # v1.320.0 with: ruby-version: ${{ matrix.ruby }} rubygems: ${{ matrix.rubygems }} diff --git a/gems/kettle-jem/.github/workflows/truffle.yml b/gems/kettle-jem/.github/workflows/truffle.yml index b41ba5a5b..334651f3d 100644 --- a/gems/kettle-jem/.github/workflows/truffle.yml +++ b/gems/kettle-jem/.github/workflows/truffle.yml @@ -47,13 +47,13 @@ jobs: steps: - name: Checkout if: ${{ !env.ACT }} - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 + uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 with: persist-credentials: false - name: Setup Ruby & RubyGems if: ${{ !env.ACT }} - uses: ruby/setup-ruby@003a5c4d8d6321bd302e38f6f0ec593f77f06600 # v1.319.0 + uses: ruby/setup-ruby@a30dfa457ad68707b8b910ac3a244714b61c0626 # v1.320.0 with: ruby-version: ${{ matrix.ruby }} rubygems: ${{ matrix.rubygems }} diff --git a/gems/kettle-jem/.github/workflows/unlocked_deps.yml b/gems/kettle-jem/.github/workflows/unlocked_deps.yml index 53346f247..5cb3b4b8c 100644 --- a/gems/kettle-jem/.github/workflows/unlocked_deps.yml +++ b/gems/kettle-jem/.github/workflows/unlocked_deps.yml @@ -62,12 +62,12 @@ jobs: steps: - name: Checkout - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 + uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 with: persist-credentials: false - name: Setup Ruby & RubyGems - uses: ruby/setup-ruby@003a5c4d8d6321bd302e38f6f0ec593f77f06600 # v1.319.0 + uses: ruby/setup-ruby@a30dfa457ad68707b8b910ac3a244714b61c0626 # v1.320.0 with: ruby-version: ${{ matrix.ruby }} rubygems: ${{ matrix.rubygems }} diff --git a/gems/kettle-jem/gemfiles/modular/templating.gemfile b/gems/kettle-jem/gemfiles/modular/templating.gemfile index d1ee9bac6..d5b61b88e 100644 --- a/gems/kettle-jem/gemfiles/modular/templating.gemfile +++ b/gems/kettle-jem/gemfiles/modular/templating.gemfile @@ -10,7 +10,7 @@ end if kettle_remote # Template/plugin checks for released installs. - gem "kettle-drift", "~> 1.0", ">= 1.0.5", require: false + gem "kettle-drift", "~> 1.0", ">= 1.0.6", require: false end # Set STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local development with path-based dependencies. diff --git a/gems/kramdown-merge/.kettle-drift.lock b/gems/kramdown-merge/.kettle-drift.lock index d28e306b0..bf85fa76f 100644 --- a/gems/kramdown-merge/.kettle-drift.lock +++ b/gems/kramdown-merge/.kettle-drift.lock @@ -52,14 +52,5 @@ 87 ] } - ], - "vendored_gems_env: 'VENDORED_GEMS',\nvendor_gem_dir_env: 'VENDOR_GEM_DIR',": [ - { - "file": "gemfiles/modular/templating_local.gemfile", - "lines": [ - 55, - 66 - ] - } ] } diff --git a/gems/kramdown-merge/.rubocop_gradual.lock b/gems/kramdown-merge/.rubocop_gradual.lock index d9d23567b..a7af4b22b 100644 --- a/gems/kramdown-merge/.rubocop_gradual.lock +++ b/gems/kramdown-merge/.rubocop_gradual.lock @@ -15,13 +15,20 @@ [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] ], + "gemfiles/modular/cgi/r4/v0.5.gemfile:367169322": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/cgi/vHEAD.gemfile:2729540777": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], "gemfiles/modular/erb/r2/v3.0.gemfile:1688285565": [ [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] ], - "gemfiles/modular/erb/r3/v5.0.gemfile:2150258305": [ + "gemfiles/modular/erb/r3/v5.0.gemfile:2394062339": [ [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] ], - "gemfiles/modular/erb/r4/v5.0.gemfile:2150258305": [ + "gemfiles/modular/erb/r4/v5.0.gemfile:2394062339": [ [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] ], "gemfiles/modular/erb/vHEAD.gemfile:981929959": [ @@ -57,6 +64,13 @@ [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] ], + "gemfiles/modular/webrick/r4/v1.9.gemfile:3092661193": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/webrick/vHEAD.gemfile:3867684682": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], "gemfiles/modular/x_std_libs.gemfile:2324400122": [ [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] ], @@ -66,10 +80,10 @@ "gemfiles/modular/x_std_libs/r3/libs.gemfile:4030570297": [ [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] ], - "gemfiles/modular/x_std_libs/r4/libs.gemfile:909736663": [ + "gemfiles/modular/x_std_libs/r4/libs.gemfile:732451732": [ [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] ], - "gemfiles/modular/x_std_libs/vHEAD.gemfile:907917303": [ + "gemfiles/modular/x_std_libs/vHEAD.gemfile:2390363993": [ [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] ], @@ -94,17 +108,17 @@ [140, 5, 662, "Metrics/MethodLength: Method has too many lines. [11/10]", 2351504264], [156, 5, 681, "Metrics/MethodLength: Method has too many lines. [11/10]", 1477270603] ], - "lib/kramdown/merge/backend.rb:2821144035": [ + "lib/kramdown/merge/backend.rb:2959746783": [ [5, 5, 14, "Style/Documentation: Missing top-level documentation comment for `module Kramdown::Merge::Backend`.", 1362832539], [13, 7, 14, "Style/Documentation: Missing top-level documentation comment for `class Kramdown::Merge::Backend::Language`.", 3674592793], [30, 7, 12, "Style/Documentation: Missing top-level documentation comment for `class Kramdown::Merge::Backend::Parser`.", 2485220908], [41, 7, 10, "Style/Documentation: Missing top-level documentation comment for `class Kramdown::Merge::Backend::Node`.", 3515419275] ], - "spec/fixtures_integration_spec.rb:3613778634": [ - [3, 1, 11994, "Metrics/BlockLength: Block has too many lines. [261/25]", 885184468], + "spec/fixtures_integration_spec.rb:2561901375": [ + [3, 1, 13168, "Metrics/BlockLength: Block has too many lines. [282/25]", 879285638], [16, 3, 1369, "Metrics/BlockLength: Block has too many lines. [32/25]", 3932999278], - [135, 3, 1345, "Metrics/BlockLength: Block has too many lines. [26/25]", 2630958569], - [218, 3, 1352, "Metrics/BlockLength: Block has too many lines. [30/25]", 2376182886], - [253, 3, 1386, "Metrics/BlockLength: Block has too many lines. [29/25]", 3678391303] + [159, 3, 1345, "Metrics/BlockLength: Block has too many lines. [26/25]", 2630958569], + [242, 3, 1352, "Metrics/BlockLength: Block has too many lines. [30/25]", 2376182886], + [277, 3, 1386, "Metrics/BlockLength: Block has too many lines. [29/25]", 3678391303] ] } diff --git a/gems/kramdown-merge/Gemfile b/gems/kramdown-merge/Gemfile index acdd8fead..8447324a3 100644 --- a/gems/kramdown-merge/Gemfile +++ b/gems/kramdown-merge/Gemfile @@ -6,7 +6,7 @@ # kettle-jem will then preserve content between those markers across template runs. # kettle-jem:unfreeze -source "https://gem.coop" +source 'https://gem.coop' git_source(:codeberg) { |repo_name| "https://codeberg.org/#{repo_name}" } git_source(:gitlab) { |repo_name| "https://gitlab.com/#{repo_name}" } @@ -19,57 +19,53 @@ git_source(:gitlab) { |repo_name| "https://gitlab.com/#{repo_name}" } gemspec # Local workspace dependency wiring for *_local.gemfile overrides -nomono_requirements = ["~> 1.0", ">= 1.0.8"] -gem "nomono", *nomono_requirements, require: false # ruby >= 2.2 +nomono_requirements = ['~> 1.0', '>= 1.0.8'] +gem 'nomono', *nomono_requirements, require: false # ruby >= 2.2 # Direct sibling dependencies (env-switched via STRUCTUREDMERGE_DEV) direct_sibling_gems = %w[ markdown-merge ] -direct_sibling_dev = ENV.fetch("STRUCTUREDMERGE_DEV", "") +direct_sibling_dev = ENV.fetch('STRUCTUREDMERGE_DEV', '') direct_sibling_local = !direct_sibling_dev.empty? && !%w[false 0 no off].include?(direct_sibling_dev.downcase) -direct_sibling_templating = ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? +direct_sibling_templating = ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero?) - direct_sibling_dev_was_set = ENV.key?("STRUCTUREDMERGE_DEV") - direct_sibling_dev_original = ENV.fetch("STRUCTUREDMERGE_DEV", nil) + (direct_sibling_local || + ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) + direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') + direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) begin nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path("Gemfile.lock", __dir__) + nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == "nomono" } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - if nomono_locked - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] - end - end - Kernel.send(:gem, "nomono", *nomono_activation_requirements) - require "nomono/bundler" - if direct_sibling_templating && !direct_sibling_local - ENV["STRUCTUREDMERGE_DEV"] = File.expand_path("..", __dir__) + Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked end + Kernel.send(:gem, 'nomono', *nomono_activation_requirements) + require 'nomono/bundler' + ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local eval_nomono_gems( gems: direct_sibling_gems, - prefix: "STRUCTUREDMERGE", - path_env: "STRUCTUREDMERGE_DEV", - root: ["src", "my", "structuredmerge"] + prefix: 'STRUCTUREDMERGE', + path_env: 'STRUCTUREDMERGE_DEV', + root: %w[src my structuredmerge] ) rescue LoadError - warn "Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies." + warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' ensure if direct_sibling_templating && !direct_sibling_local if direct_sibling_dev_was_set - ENV["STRUCTUREDMERGE_DEV"] = direct_sibling_dev_original + ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original else - ENV.delete("STRUCTUREDMERGE_DEV") + ENV.delete('STRUCTUREDMERGE_DEV') end end end @@ -116,28 +112,28 @@ if direct_sibling_gems.any? && end # Use released TSLP with the Ruby ABI platform-gem fix. -gem "tree_sitter_language_pack", "~> 1.13", ">= 1.13.3" +gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' # Templating (env-switched: STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local paths) -eval_gemfile "gemfiles/modular/templating.gemfile" if ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? +eval_gemfile 'gemfiles/modular/templating.gemfile' if ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? # Debugging -eval_gemfile "gemfiles/modular/debug.gemfile" +eval_gemfile 'gemfiles/modular/debug.gemfile' # Code Coverage (env-switched: KETTLE_DEV_DEV=true for local paths) -eval_gemfile "gemfiles/modular/coverage.gemfile" +eval_gemfile 'gemfiles/modular/coverage.gemfile' # Linting -eval_gemfile "gemfiles/modular/style.gemfile" +eval_gemfile 'gemfiles/modular/style.gemfile' # Documentation -eval_gemfile "gemfiles/modular/documentation.gemfile" +eval_gemfile 'gemfiles/modular/documentation.gemfile' # Optional -eval_gemfile "gemfiles/modular/optional.gemfile" +eval_gemfile 'gemfiles/modular/optional.gemfile' ### Std Lib Extracted Gems -eval_gemfile "gemfiles/modular/x_std_libs.gemfile" +eval_gemfile 'gemfiles/modular/x_std_libs.gemfile' # See unlocked_deps appraisal for more details on irb inclusion -gem "irb", "~> 1.17" # ruby >= 2.7 +gem 'irb', '~> 1.17' # ruby >= 2.7 diff --git a/gems/kramdown-merge/Gemfile.lock b/gems/kramdown-merge/Gemfile.lock index cfeac5a65..f37a96547 100644 --- a/gems/kramdown-merge/Gemfile.lock +++ b/gems/kramdown-merge/Gemfile.lock @@ -7,264 +7,13 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly - specs: - ast-crispr-markdown-markly (7.1.0) - ast-crispr (= 7.1.0) - markly-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism - specs: - ast-crispr-ruby-prism (7.1.0) - ast-crispr (= 7.1.0) - prism-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr - specs: - ast-crispr (7.1.0) - ast-merge (= 7.1.0) - service_actor (~> 3.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git - specs: - ast-merge-git (7.1.0) - ast-merge (= 7.1.0) - json-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge - specs: - ast-merge (7.1.0) - benchmark - token-resolver (~> 2.0, >= 2.0.4) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template - specs: - ast-template (7.1.0) - ast-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge - specs: - bash-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge - specs: - binary-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge - specs: - citrus-toml-merge (7.1.0) - toml-merge (= 7.1.0) - toml-rb (~> 4.1) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge - specs: - commonmarker-merge (7.1.0) - commonmarker (~> 2.2) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge - specs: - dotenv-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge - specs: - go-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge - specs: - json-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem - specs: - kettle-jem (7.1.0) - addressable (>= 2.8, < 3) - ast-crispr-markdown-markly (= 7.1.0) - ast-crispr-ruby-prism (= 7.1.0) - ast-merge (= 7.1.0) - bash-merge (= 7.1.0) - citrus-toml-merge (= 7.1.0) - commonmarker-merge (= 7.1.0) - dotenv-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-dev (~> 2.3, >= 2.3.5) - kettle-rb (~> 0.1, >= 0.1.4) - kramdown-merge (= 7.1.0) - markdown-merge (= 7.1.0) - markly-merge (= 7.1.0) - prism-merge (= 7.1.0) - psych-merge (= 7.1.0) - rbs (>= 3.10) - rbs-merge (= 7.1.0) - ruby-merge (= 7.1.0) - token-resolver (~> 2.0, >= 2.0.4) - toml-merge (= 7.1.0) - toml-rb (~> 4.2) - tree_haver (= 7.1.0) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge specs: markdown-merge (7.1.0) ast-merge (= 7.1.0) tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge - specs: - markly-merge (7.1.0) - markdown-merge (= 7.1.0) - markly (~> 0.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge - specs: - parslet-toml-merge (7.1.0) - toml (~> 0.3) - toml-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge - specs: - plain-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge - specs: - prism-merge (7.1.0) - prism (~> 1.6) - ruby-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge - specs: - psych-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge - specs: - rbs-merge (7.1.0) - ast-merge (= 7.1.0) - rbs (>= 3.10) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge - specs: - ruby-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge - specs: - rust-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb - specs: - smorg-rb (7.1.0) - ast-merge (= 7.1.0) - ast-merge-git (= 7.1.0) - go-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-jem (= 7.1.0) - markly-merge (= 7.1.0) - plain-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge - specs: - toml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver - specs: - tree_haver (7.1.0) - citrus (~> 3.0) - parslet (~> 2.0) - tree_sitter_language_pack (>= 1.13.2, < 2.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge - specs: - typescript-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge - specs: - yaml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge - specs: - zip-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - GEM remote: https://gem.coop/ specs: @@ -275,17 +24,26 @@ GEM bundler (>= 1.17.3) rake (>= 10) thor (>= 0.14) + appraisal2-rubocop (1.0.0) + appraisal2 (>= 3.1.4) + rubocop (>= 1.0) + version_gem (~> 1.1, >= 1.1.14) ast (2.4.3) + ast-merge (7.1.0) + benchmark + token-resolver (~> 2.0, >= 2.0.4) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) backports (3.25.3) benchmark (0.5.0) bigdecimal (4.1.2) bundler-audit (0.9.3) bundler (>= 1.2.0) thor (~> 1.0) + cgi (0.5.2) citrus (3.0.2) cmdparse (3.0.7) - commonmarker (2.9.0-x86_64-linux) - concurrent-ruby (1.3.7) + concurrent-ruby (1.3.8) date (3.5.1) debug (1.11.1) irb (~> 1.10) @@ -293,7 +51,6 @@ GEM delegate (0.6.1) diff-lcs (1.6.2) diffy (3.4.4) - docile (1.4.1) dry-configurable (1.4.0) dry-core (~> 1.0) zeitwerk (~> 2.6) @@ -324,7 +81,7 @@ GEM dry-logic (~> 1.4) zeitwerk (~> 2.6) emoji_regex (15.0.0) - erb (6.0.5) + erb (6.0.6) gem_bench (2.0.5) bundler (>= 1.14) version_gem (~> 1.1, >= 1.1.4) @@ -343,24 +100,20 @@ GEM rdoc (>= 4.0.0) reline (>= 0.4.2) json (2.21.1) - kettle-dev (2.3.7) + kettle-dev (2.3.8) emoji_regex (>= 15.0) kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) - kettle-drift (1.0.6) - version_gem (~> 1.1, >= 1.1.14) - kettle-rb (0.1.4) - kettle-soup-cover (1.1.3) - simplecov (~> 0.22) - simplecov-cobertura (~> 3.0) - simplecov-console (~> 0.9, >= 0.9.3) - simplecov-html (~> 0.13, >= 0.13.1) - simplecov-lcov (~> 0.8) + kettle-rb (0.1.5) + kettle-soup-cover (3.0.4) + kettle-wash (~> 0.1, >= 0.1.0) + simplecov (>= 1.0) + simplecov-cobertura (>= 4.0) + simplecov-console (~> 0.9, >= 0.9.5) simplecov-rcov (~> 0.3, >= 0.3.7) - simplecov_json_formatter (~> 0.1, >= 0.1.4) - version_gem (~> 1.1, >= 1.1.9) - kettle-test (2.0.11) + simplecov_lcov_formatter (~> 0.9, >= 0.9.0) + kettle-test (2.0.12) appraisal2 (~> 3.0, >= 3.0.6) backports (~> 3.0) rspec (~> 3.0) @@ -371,6 +124,8 @@ GEM silent_stream (~> 1.0, >= 1.0.12) timecop-rspec (~> 1.0, >= 1.0.3) turbo_tests2 (~> 3.1, >= 3.1.12) + kettle-wash (0.1.1) + version_gem (~> 1.1, >= 1.1.14) kramdown (2.5.2) rexml (>= 3.4.4) kramdown-parser-gfm (1.1.0) @@ -378,7 +133,6 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) - markly (0.16.0) mutex_m (0.3.0) nokogiri (1.19.4-x86_64-linux-gnu) racc (~> 1.4) @@ -458,6 +212,14 @@ GEM rubocop-ast (1.50.0) parser (>= 3.3.7.2) prism (~> 1.7) + rubocop-capybara (2.23.0) + lint_roller (~> 1.1) + rubocop (~> 1.81) + rubocop-env (0.1.0) + rubocop + rubocop-factory_bot (2.28.0) + lint_roller (~> 1.1) + rubocop (~> 1.72, >= 1.72.1) rubocop-gradual (0.4.0) benchmark diff-lcs (>= 1.2.0, < 2.0) @@ -465,13 +227,26 @@ GEM parallel (~> 1.10) rainbow (>= 2.2.2, < 4.0) rubocop (~> 1.0) - rubocop-lts (24.1.0) - rubocop-ruby3_2 (>= 3.0.0, < 4) - standard-rubocop-lts (>= 2.0.2, < 3) - version_gem (>= 1.1.2, < 3) + rubocop-lts (24.2.2) + rubocop-ruby3_2 (~> 3.0, >= 3.0.1) + standard-rubocop-lts (~> 2.0, >= 2.0.3) + version_gem (~> 1.1, >= 1.1.13) + rubocop-lts-rspec (1.0.5) + rubocop (~> 1.84, >= 1.84.2) + rubocop-env (~> 0.1, >= 0.1.0) + rubocop-factory_bot (~> 2.28, >= 2.28.0) + rubocop-rspec (~> 3.9, >= 3.9.0) + rubocop-rspec-extra (~> 0.3, >= 0.3.0) + standard (~> 1.54, >= 1.54.0) + standard-rspec (~> 0.5, >= 0.5.0) + version_gem (~> 1.1, >= 1.1.13) rubocop-md (2.0.4) lint_roller (~> 1.1) rubocop (>= 1.72.1) + rubocop-minitest (0.40.0) + lint_roller (~> 1.1) + rubocop (>= 1.75.0, < 2.0) + rubocop-ast (>= 1.38.0, < 2.0) rubocop-on-rbs (2.0.0) lint_roller (~> 1.1) rbs (~> 4.0) @@ -491,6 +266,13 @@ GEM lint_roller (~> 1.1) regexp_parser (>= 2.0) rubocop (~> 1.86, >= 1.86.2) + rubocop-rspec-extra (0.3.0) + lint_roller (~> 1.1) + rubocop (>= 1.72.1, < 2.0) + rubocop-rspec_rails (2.32.0) + lint_roller (~> 1.1) + rubocop (~> 1.72, >= 1.72.1) + rubocop-rspec (~> 3.5) rubocop-ruby3_2 (3.0.7) rubocop-gradual (~> 0.3, >= 0.3.6) rubocop-md (~> 2.0, >= 2.0.4) @@ -505,27 +287,21 @@ GEM ruby-progressbar (1.13.0) ruby_engine (2.0.3) ruby_version (1.0.3) - service_actor (3.9.4) - zeitwerk (>= 1.0) silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) - simplecov (0.22.0) - docile (~> 1.1) - simplecov-html (~> 0.11) - simplecov_json_formatter (~> 0.1) - simplecov-cobertura (3.2.0) + simplecov (1.0.2) + simplecov-cobertura (4.0.0) rexml - simplecov (~> 0.19) + simplecov (~> 1.0) simplecov-console (0.9.5) ansi simplecov terminal-table - simplecov-html (0.13.2) - simplecov-lcov (0.9.0) simplecov-rcov (0.3.7) simplecov (>= 0.4.1) - simplecov_json_formatter (0.1.4) + simplecov_lcov_formatter (0.9.0) + simplecov (>= 0.18) sorbet-runtime (0.6.13347) standard (1.56.0) language_server-protocol (~> 3.17.0.2) @@ -539,6 +315,12 @@ GEM standard-performance (1.9.0) lint_roller (~> 1.1) rubocop-performance (~> 1.26.0) + standard-rspec (0.5.0) + lint_roller (>= 1.0) + rubocop-capybara (~> 2.23) + rubocop-factory_bot (~> 2.27) + rubocop-rspec (~> 3.9) + rubocop-rspec_rails (~> 2.31) standard-rubocop-lts (2.0.10) standard (~> 1.54, >= 1.54.0) standard-custom (~> 1.0, >= 1.0.2) @@ -556,14 +338,14 @@ GEM delegate (~> 0.1) rspec (~> 3.0) timecop (>= 0.7, < 1) - token-resolver (2.0.4) + token-resolver (2.0.5) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.14) - toml (0.3.0) - parslet (>= 1.8.0, < 3.0.0) - toml-rb (4.2.0) - citrus (~> 3.0, > 3.0) - racc (~> 1.7) + tree_haver (7.1.0) + citrus (~> 3.0) + parslet (~> 2.0) + tree_sitter_language_pack (>= 1.13.2, < 2.0) + version_gem (~> 1.1, >= 1.1.9) tree_sitter_language_pack (1.13.3-x86_64-linux) sorbet-runtime (~> 0.5) tsort (0.2.0) @@ -575,6 +357,7 @@ GEM unicode-emoji (~> 4.1) unicode-emoji (4.2.0) version_gem (1.1.14) + webrick (1.9.2) yaml-converter (0.2.3) hexapdf (>= 1.8, < 2) kramdown (>= 2.4, < 3) @@ -607,104 +390,69 @@ PLATFORMS DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) - ast-crispr! - ast-crispr-markdown-markly! - ast-crispr-ruby-prism! - ast-merge! - ast-merge-git! - ast-template! - bash-merge! + appraisal2-rubocop (~> 1.0, >= 1.0.0) benchmark (~> 0.5, >= 0.5.0) - binary-merge! bundler-audit (~> 0.9.3) - citrus-toml-merge! - commonmarker-merge! + cgi (~> 0.5) debug (>= 1.1) - dotenv-merge! - erb (~> 6.0, >= 6.0.4) + erb (~> 6.0, >= 6.0.6) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.0) - go-merge! irb (~> 1.17) - json-merge! kettle-dev (~> 2.0, >= 2.2.25) - kettle-drift (~> 1.0, >= 1.0.5) - kettle-jem! - kettle-soup-cover (~> 1.0, >= 1.1.3) + kettle-soup-cover (~> 3.0, >= 3.0.3) kettle-test (~> 2.0, >= 2.0.9) - kramdown (~> 2.5, >= 2.5.1) kramdown-merge! kramdown-parser-gfm (~> 1.1) markdown-merge! - markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) - parslet-toml-merge! - plain-merge! - prism-merge! - psych-merge! rake (~> 13.0) rbs (>= 3.0) - rbs-merge! rdoc (~> 6.11) - reek (~> 6.5) + reek (~> 6.5, >= 6.5.0) require_bench (~> 1.0, >= 1.0.4) - rubocop-lts (~> 24.1.0) - rubocop-on-rbs (~> 2.0) + rubocop-gradual (~> 0.4, >= 0.4.0) + rubocop-lts (~> 24.2, >= 24.2.1) + rubocop-lts-rspec (~> 1.0, >= 1.0.5) + rubocop-minitest (~> 0.40, >= 0.40.0) + rubocop-on-rbs (~> 2.0, >= 2.0.0) rubocop-packaging (~> 0.6, >= 0.6.0) - rubocop-rspec (~> 3.6) - rubocop-ruby3_2 (~> 3.0.0) - ruby-merge! + rubocop-ruby3_2 (~> 3.0, >= 3.0.6) ruby-progressbar (~> 1.13) - rust-merge! - smorg-rb! - standard (>= 1.50) + standard (~> 1.56, >= 1.56.0) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) - toml-merge! - tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) - typescript-merge! - yaml-converter (~> 0.1) - yaml-merge! - yard (~> 0.9, >= 0.9.44) - yard-fence (~> 0.9, >= 0.9.1) + webrick (~> 1.9) + yaml-converter (~> 0.2, >= 0.2.3) + yard (~> 0.9, >= 0.9.45) + yard-fence (~> 0.9, >= 0.9.6) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) - yard-timekeeper (~> 0.1) - yard-yaml (~> 0.1, >= 0.1.2) - zip-merge! + yard-timekeeper (~> 0.2, >= 0.2.4) + yard-yaml (~> 0.2, >= 0.2.3) CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af ansi (1.6.0) sha256=ac9ea0c0ea8d32fb4e271348e609963ac78882f34b73836c2a02b3622e666658 appraisal2 (3.2.0) sha256=ccd0b767ac4060cd7af6d16747459b6990f49c39c7b4fb1f7d1146b1e97c492f + appraisal2-rubocop (1.0.0) sha256=b71410fbb014befda5340605a605b7f6f3f012739baf0acc5b4351b592c3258d ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 - ast-crispr (7.1.0) - ast-crispr-markdown-markly (7.1.0) - ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) - ast-merge-git (7.1.0) - ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 - bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd - binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 + cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 - citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 - commonmarker (2.9.0-x86_64-linux) - commonmarker-merge (7.1.0) - concurrent-ruby (1.3.7) sha256=4412caec3a5ea2e5fdc52076724c071a81f2c0593d83b2ac8cbb8ca63b3151b0 + concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 - docile (1.4.1) sha256=96159be799bfa73cdb721b840e9802126e4e03dfc26863db73647204c727f21e - dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -713,22 +461,19 @@ CHECKSUMS dry-schema (1.16.0) sha256=cd3aaeabc0f1af66ec82a29096d4c4fb92a0a58b9dae29a22b1bbceb78985727 dry-types (1.9.1) sha256=baebeecdb9f8395d6c9d227b62011279440943e3ef2468fe8ccc1ba11467f178 emoji_regex (15.0.0) sha256=a508b2c0bee561169564e0aec96085020c900520d335e5533fd8e78e59493829 - erb (6.0.5) sha256=858e63488cb796c9daba8b6e9ff4b3879c395022049be9a66a8e00980e612eac + erb (6.0.6) sha256=a9b24986700f5bf127c4f297c5403c3ca41b83b0a316c0cd09a096b56e644ae5 gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f - go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 - json-merge (7.1.0) - kettle-dev (2.3.7) sha256=eb370113cd030d03cbe2d33b31c99858951017e5ad21a17e9ed89dc3770028ee - kettle-drift (1.0.6) - kettle-jem (7.1.0) - kettle-rb (0.1.4) sha256=9cef7ce4f7021666b7222292f29051e51eaf042e8a5db11f3f4dd72f74243fc1 - kettle-soup-cover (1.1.3) sha256=a373827da22a7131d093afd32945e5b7d7a10a01ebfdded8fd2cb8230d69c8ad - kettle-test (2.0.11) sha256=c710c90f7ab79d51f9452f0c09f5f90657e7a893f63583855c164d0b1b107ab2 + kettle-dev (2.3.8) sha256=9d716ff21c660a730cb4e8d41e2e2f0630a28167a354b6e2924e242102aef72c + kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f + kettle-soup-cover (3.0.4) + kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 + kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 @@ -736,8 +481,6 @@ CHECKSUMS lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 markdown-merge (7.1.0) - markly (0.16.0) - markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-x86_64-linux-gnu) sha256=379fae440b28915e3f19d752ce2dcf8465ed2b2fbefd2a7ca0dd497bc981a06a nomono (1.0.9) @@ -747,20 +490,15 @@ CHECKSUMS parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 - parslet-toml-merge (7.1.0) - plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 - prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 - psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 - rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb @@ -778,35 +516,37 @@ CHECKSUMS rspec_junit_formatter (0.6.0) sha256=40dde674e6ae4e6cc0ff560da25497677e34fefd2338cc467a8972f602b62b15 rubocop (1.88.2) sha256=8def251c90cd955feb4daa3edc0ab56893250c4ce90ef81e6c80c03f9a939bbf rubocop-ast (1.50.0) sha256=b9ca88300da0803ee222ad20cdb30494c0a784eed06fdc35d254b06d662788db + rubocop-capybara (2.23.0) sha256=f9ea1ba3a7561ee8e88cf76fc378ce517ce5327155f305ee7b5c2500e5aee357 + rubocop-env (0.1.0) sha256=5ab9a259e71822bf514c8e900a9b68cc2f74ccc87d5493efcd03213f3068e718 + rubocop-factory_bot (2.28.0) sha256=4b17fc02124444173317e131759d195b0d762844a71a29fe8139c1105d92f0cb rubocop-gradual (0.4.0) sha256=9c7e584e6fef6c2539266a193a4572c970c22f99046fd6b0305bdde6228f96ad - rubocop-lts (24.1.0) sha256=9dcad4db2da2fe2f1f77f98c917d70e7c43eded703da14cd201d4be52a9272aa + rubocop-lts (24.2.2) sha256=be6c745e1bb61daebd6af3cc3227c60f95be9f642a080773cad7df14c5f9f174 + rubocop-lts-rspec (1.0.5) sha256=439552fd27440802cc499889e013bffa28aadc41adae5d4dfff3d984a2a809b4 rubocop-md (2.0.4) sha256=0d076b6b5e99dea2ddc928c4bd702497decb9a8400da7808091e02ebcafcfb93 + rubocop-minitest (0.40.0) sha256=353c698199115f12151144cf0b5a96f69bb9d77b660cf6536df2c4250c672a9d rubocop-on-rbs (2.0.0) sha256=ce74d1b3d5daead19f4b611623656c185821dfc9aed9c7079bb1e5d7d7c464be rubocop-packaging (0.6.0) sha256=fb92bd0fb48e6f8cdb1648d2249b0cd51c2497dcc87340132d22f01edbf558a7 rubocop-performance (1.26.1) sha256=cd19b936ff196df85829d264b522fd4f98b6c89ad271fa52744a8c11b8f71834 rubocop-rake (0.7.1) sha256=3797f2b6810c3e9df7376c26d5f44f3475eda59eb1adc38e6f62ecf027cbae4d rubocop-rspec (3.10.2) sha256=0b3e2ecc592cd10ecbf0095bb58d1e357905276e069643523cc19eb7495f65e2 + rubocop-rspec-extra (0.3.0) sha256=ee4b6484d0332a0d23c4a465eeb607e41888eb3d4ed479f850b9f5212514f787 + rubocop-rspec_rails (2.32.0) sha256=4a0d641c72f6ebb957534f539d9d0a62c47abd8ce0d0aeee1ef4701e892a9100 rubocop-ruby3_2 (3.0.7) sha256=f53dd6d286fb05186214fc6ec116783e7f837030918e8931c05de773e98f8466 rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 - ruby-merge (7.1.0) ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 - rust-merge (7.1.0) - service_actor (3.9.4) silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 - simplecov (0.22.0) sha256=fe2622c7834ff23b98066bb0a854284b2729a569ac659f82621fc22ef36213a5 - simplecov-cobertura (3.2.0) sha256=70d702658677fcb20e5aceb6915ccf8bc62ff2ccd38b62b3ad5c9db5c0888740 + simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 + simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 - simplecov-html (0.13.2) sha256=bd0b8e54e7c2d7685927e8d6286466359b6f16b18cb0df47b508e8d73c777246 - simplecov-lcov (0.9.0) sha256=7a77a31e200a595ed4b0249493056efd0c920601f53d2ef135ca34ee796346cd simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc - simplecov_json_formatter (0.1.4) sha256=529418fbe8de1713ac2b2d612aa3daa56d316975d307244399fa4838c601b428 - smorg-rb (7.1.0) + simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed sorbet-runtime (0.6.13347) sha256=54e7221d9f4b63f58aec79f3043752a9ba7810347c6ae0d903531591cc2d5f01 standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b standard-performance (1.9.0) sha256=49483d31be448292951d80e5e67cdcb576c2502103c7b40aec6f1b6e9c88e3f2 + standard-rspec (0.5.0) sha256=64d396524a65af47f5331b423d8cdd313e0267401647bb7892489ca89dad2973 standard-rubocop-lts (2.0.10) sha256=89708a505b7d8b24d2ac399a7520fcb9e764abc2ecb4289b631b5fe0e3b76617 stone_checksums (1.0.6) sha256=c775f830513d6c6ab26e31d1a5fbecd4c4e39002663d4d9f8fa96e97990b5298 stringio (3.2.0) sha256=c37cb2e58b4ffbd33fe5cd948c05934af997b36e0b6ca6fdf43afa234cf222e1 @@ -815,20 +555,16 @@ CHECKSUMS thor (1.5.0) sha256=e3a9e55fe857e44859ce104a84675ab6e8cd59c650a49106a05f55f136425e73 timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 - token-resolver (2.0.4) sha256=33b926958f504525bba3ed511ab66fbcbf8ef30390815e931436b30f27ffcad0 - toml (0.3.0) - toml-merge (7.1.0) - toml-rb (4.2.0) + token-resolver (2.0.5) tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 - typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 + webrick (1.9.2) sha256=beb4a15fc474defed24a3bda4ffd88a490d517c9e4e6118c3edce59e45864131 yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 - yaml-merge (7.1.0) yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd @@ -836,7 +572,6 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 - zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH diff --git a/gems/kramdown-merge/README.md b/gems/kramdown-merge/README.md index 1e8161393..dc229a730 100644 --- a/gems/kramdown-merge/README.md +++ b/gems/kramdown-merge/README.md @@ -36,7 +36,7 @@ I've summarized my thoughts in [this blog post](https://dev.to/galtzo/hostile-ta | Tokens to Remember | [![Gem name][⛳️name-img]][⛳️gem-name] [![Gem namespace][⛳️namespace-img]][⛳️gem-namespace] | |-------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | Works with MRI Ruby 4 | [![Ruby current Compat][💎ruby-c-i]][🚎11-c-wf]| -| Support & Community | [![Join Me on Daily.dev's RubyFriends][✉️ruby-friends-img]][✉️ruby-friends] [![Live Chat on Discord][✉️discord-invite-img-ftb]][✉️discord-invite] [![Get help from me on Upwork][👨🏼‍🏫expsup-upwork-img]][👨🏼‍🏫expsup-upwork] [![Get help from me on Codementor][👨🏼‍🏫expsup-codementor-img]][👨🏼‍🏫expsup-codementor] | +| Support & Community | [![Join Me on Daily.dev's RubyFriends][✉️ruby-friends-img]][✉️ruby-friends] [![Get help from RubyForum][✉️ruby-forum-img]][✉️ruby-forum] [![Live Chat on Discord][✉️discord-invite-img-ftb]][✉️discord-invite] [![Get help from me on Upwork][👨🏼‍🏫expsup-upwork-img]][👨🏼‍🏫expsup-upwork] [![Get help from me on Codementor][👨🏼‍🏫expsup-codementor-img]][👨🏼‍🏫expsup-codementor] | | Source | [![Source on GitLab.com][📜src-gl-img]][📜src-gl] [![Source on CodeBerg.org][📜src-cb-img]][📜src-cb] [![Source on Github.com][📜src-gh-img]][📜src-gh] [![The best SHA: dQw4w9WgXcQ!][🧮kloc-img]][🧮kloc] | | Documentation | [![Current release on RubyDoc.info][📜docs-cr-rd-img]][🚎yard-current] [![YARD on Galtzo.com][📜docs-head-rd-img]][🚎yard-head] [![Maintainer Blog][🚂maint-blog-img]][🚂maint-blog] [![GitLab Wiki][📜gl-wiki-img]][📜gl-wiki] [![GitHub Wiki][📜gh-wiki-img]][📜gh-wiki] | | Compliance | [![License: AGPL-3.0-only OR PolyForm-Small-Business-1.0.0][📄license-img]][📄license] [![Apache license compatibility: Category X][📄license-compat-img]][📄license-compat] [![📄ilo-declaration-img]][📄ilo-declaration] [![Security Policy][🔐security-img]][🔐security] [![Contributor Covenant 2.1][🪇conduct-img]][🪇conduct] [![SemVer 2.0.0][📌semver-img]][📌semver] | @@ -181,6 +181,8 @@ If none of the available licenses suit your use case, please [contact us](mailto [✉️discord-invite-img-ftb]: https://img.shields.io/discord/1373797679469170758?style=for-the-badge&logo=discord [✉️ruby-friends-img]: https://img.shields.io/badge/daily.dev-%F0%9F%92%8E_Ruby_Friends-0A0A0A?style=for-the-badge&logo=dailydotdev&logoColor=white [✉️ruby-friends]: https://app.daily.dev/squads/rubyfriends +[✉️ruby-forum-img]: https://img.shields.io/badge/RubyForum-Help-CC342D?style=for-the-badge&logo=ruby&logoColor=white +[✉️ruby-forum]: https://www.rubyforum.org/c/help/8 [✇bundle-group-pattern]: https://gist.github.com/pboling/4564780 [⛳️gem-namespace]: https://github.com/structuredmerge/structuredmerge-ruby/tree/main/gems/kramdown-merge [⛳️namespace-img]: https://img.shields.io/badge/namespace-Kramdown::Merge-3C2D2D.svg?style=square&logo=ruby&logoColor=white diff --git a/gems/kramdown-merge/Rakefile b/gems/kramdown-merge/Rakefile index 98bb2ef06..794a96e57 100644 --- a/gems/kramdown-merge/Rakefile +++ b/gems/kramdown-merge/Rakefile @@ -130,23 +130,23 @@ end ### DUPLICATE DRIFT TASKS begin - require "kettle/drift" + require 'kettle/drift' Kettle::Drift.install_tasks rescue LoadError - desc("(stub) kettle:drift:check is unavailable") - task("kettle:drift:check") do + desc('(stub) kettle:drift:check is unavailable') + task('kettle:drift:check') do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc("(stub) kettle:drift:update is unavailable") - task("kettle:drift:update") do + desc('(stub) kettle:drift:update is unavailable') + task('kettle:drift:update') do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc("(stub) kettle:drift:force_update is unavailable") - task("kettle:drift:force_update") do + desc('(stub) kettle:drift:force_update is unavailable') + task('kettle:drift:force_update') do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc("(stub) kettle:drift is unavailable") - task("kettle:drift" => "kettle:drift:update") + desc('(stub) kettle:drift is unavailable') + task('kettle:drift' => 'kettle:drift:update') end ### TEMPLATING TASKS diff --git a/gems/kramdown-merge/gemfiles/modular/cgi/r4/v0.5.gemfile b/gems/kramdown-merge/gemfiles/modular/cgi/r4/v0.5.gemfile new file mode 100644 index 000000000..17ad97260 --- /dev/null +++ b/gems/kramdown-merge/gemfiles/modular/cgi/r4/v0.5.gemfile @@ -0,0 +1 @@ +gem 'cgi', '~> 0.5' diff --git a/gems/kramdown-merge/gemfiles/modular/cgi/vHEAD.gemfile b/gems/kramdown-merge/gemfiles/modular/cgi/vHEAD.gemfile new file mode 100644 index 000000000..650fbf033 --- /dev/null +++ b/gems/kramdown-merge/gemfiles/modular/cgi/vHEAD.gemfile @@ -0,0 +1 @@ +gem 'cgi', '>= 0.5' diff --git a/gems/kramdown-merge/gemfiles/modular/coverage.gemfile b/gems/kramdown-merge/gemfiles/modular/coverage.gemfile index f96d50954..b93014b6b 100644 --- a/gems/kramdown-merge/gemfiles/modular/coverage.gemfile +++ b/gems/kramdown-merge/gemfiles/modular/coverage.gemfile @@ -7,7 +7,7 @@ if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? # Coverage (remote/released) platform :mri do - gem 'kettle-soup-cover', '~> 1.0', '>= 1.1.3', require: false + gem 'kettle-soup-cover', '~> 3.0', '>= 3.0.3', require: false end else eval_gemfile 'coverage_local.gemfile' diff --git a/gems/kramdown-merge/gemfiles/modular/coverage_local.gemfile b/gems/kramdown-merge/gemfiles/modular/coverage_local.gemfile index b1ca6d13a..6af3acb94 100644 --- a/gems/kramdown-merge/gemfiles/modular/coverage_local.gemfile +++ b/gems/kramdown-merge/gemfiles/modular/coverage_local.gemfile @@ -3,13 +3,33 @@ # Local path overrides for development. # Loaded by the associated non-local gemfile when KETTLE_DEV_DEV != "false". -require 'nomono/bundler' unless defined?(Nomono) +# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. +# Bundler records that dependency during Gemfile evaluation, but it does not +# activate that exact version before the immediate `require "nomono/bundler"`. +# If multiple compatible nomono versions are installed, RubyGems may activate +# the newest installed version while Gemfile.lock pins an older compatible one; +# Bundler then aborts with "already activated nomono X, but your Gemfile +# requires nomono Y". Prefer the locked compatible version when present, then +# activate it explicitly before requiring the Bundler DSL extension used below. +nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] +nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) +if File.file?(nomono_lockfile) + nomono_locked_spec = Bundler::LockfileParser + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } + nomono_locked = nomono_locked_spec && + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked +end +Kernel.send(:gem, 'nomono', *nomono_activation_requirements) +require 'nomono/bundler' local_gems = %w[kettle-dev kettle-test kettle-soup-cover kettle-drift] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) local_gems_to_eval = local_gems - %w[kramdown-merge] - declared_gems -# export KETTLE_DEV_DEV=/path/to/kettle-rb +# export KETTLE_DEV_DEV=/path/to/my platform :mri do eval_nomono_gems( gems: local_gems_to_eval, diff --git a/gems/kramdown-merge/gemfiles/modular/documentation.gemfile b/gems/kramdown-merge/gemfiles/modular/documentation.gemfile index dff5cc108..f9bcfbf4a 100644 --- a/gems/kramdown-merge/gemfiles/modular/documentation.gemfile +++ b/gems/kramdown-merge/gemfiles/modular/documentation.gemfile @@ -6,18 +6,16 @@ # kettle-jem:unfreeze # -# Documentation -gem 'kramdown', '~> 2.5', '>= 2.5.1', require: false # Ruby >= 2.5 gem 'kramdown-parser-gfm', '~> 1.1', require: false # Ruby >= 2.3 -gem 'yaml-converter', '~> 0.1', require: false # Ruby >= 3.2 -gem 'yard', '~> 0.9', '>= 0.9.44', require: false +gem 'yaml-converter', '~> 0.2', '>= 0.2.3', require: false # Ruby >= 3.2 +gem 'yard', '~> 0.9', '>= 0.9.45', require: false gem 'yard-junk', '~> 0.1', '>= 0.1.0', require: false # Ruby >= 3.1 gem 'yard-relative_markdown_links', '~> 0.6', require: false if ENV.fetch('GALTZO_FLOSS_DEV', 'false').casecmp('false').zero? - gem 'yard-fence', '~> 0.9', '>= 0.9.1', require: false # Ruby >= 3.2 - gem 'yard-timekeeper', '~> 0.1', require: false - gem 'yard-yaml', '~> 0.1', '>= 0.1.2', require: false + gem 'yard-fence', '~> 0.9', '>= 0.9.6', require: false # Ruby >= 3.2 + gem 'yard-timekeeper', '~> 0.2', '>= 0.2.4', require: false + gem 'yard-yaml', '~> 0.2', '>= 0.2.3', require: false else eval_gemfile 'documentation_local.gemfile' end diff --git a/gems/kramdown-merge/gemfiles/modular/documentation_local.gemfile b/gems/kramdown-merge/gemfiles/modular/documentation_local.gemfile index 4d4c2bd95..426405c12 100644 --- a/gems/kramdown-merge/gemfiles/modular/documentation_local.gemfile +++ b/gems/kramdown-merge/gemfiles/modular/documentation_local.gemfile @@ -3,13 +3,35 @@ # Local path overrides for development. # Loaded by the associated non-local gemfile when GALTZO_FLOSS_DEV != "false". -require 'nomono/bundler' unless defined?(Nomono) +# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. +# Bundler records that dependency during Gemfile evaluation, but it does not +# activate that exact version before the immediate `require "nomono/bundler"`. +# If multiple compatible nomono versions are installed, RubyGems may activate +# the newest installed version while Gemfile.lock pins an older compatible one; +# Bundler then aborts with "already activated nomono X, but your Gemfile +# requires nomono Y". Prefer the locked compatible version when present, then +# activate it explicitly before requiring the Bundler DSL extension used below. +nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] +nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) +if File.file?(nomono_lockfile) + nomono_locked_spec = Bundler::LockfileParser + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } + nomono_locked = nomono_locked_spec && + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked +end +Kernel.send(:gem, 'nomono', *nomono_activation_requirements) +require 'nomono/bundler' local_gems = %w[yard-fence yard-timekeeper yard-yaml] +declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) +local_gems_to_eval = local_gems - %w[kramdown-merge] - declared_gems # export GALTZO_FLOSS_DEV=/path/to/galtzo-floss eval_nomono_gems( - gems: local_gems, + gems: local_gems_to_eval, prefix: 'GALTZO_FLOSS', path_env: 'GALTZO_FLOSS_DEV', vendored_gems_env: 'GALTZO_FLOSS_VENDORED_GEMS', diff --git a/gems/kramdown-merge/gemfiles/modular/erb/r3/v5.0.gemfile b/gems/kramdown-merge/gemfiles/modular/erb/r3/v5.0.gemfile index 0e3bf1b97..ec7ff451f 100644 --- a/gems/kramdown-merge/gemfiles/modular/erb/r3/v5.0.gemfile +++ b/gems/kramdown-merge/gemfiles/modular/erb/r3/v5.0.gemfile @@ -1 +1 @@ -gem 'erb', '~> 6.0', '>= 6.0.4' # ruby >= 3.2.0 +gem 'erb', '~> 6.0', '>= 6.0.6' # ruby >= 3.2.0 diff --git a/gems/kramdown-merge/gemfiles/modular/erb/r4/v5.0.gemfile b/gems/kramdown-merge/gemfiles/modular/erb/r4/v5.0.gemfile index 0e3bf1b97..ec7ff451f 100644 --- a/gems/kramdown-merge/gemfiles/modular/erb/r4/v5.0.gemfile +++ b/gems/kramdown-merge/gemfiles/modular/erb/r4/v5.0.gemfile @@ -1 +1 @@ -gem 'erb', '~> 6.0', '>= 6.0.4' # ruby >= 3.2.0 +gem 'erb', '~> 6.0', '>= 6.0.6' # ruby >= 3.2.0 diff --git a/gems/kramdown-merge/gemfiles/modular/json/truffleruby_22_3.gemfile b/gems/kramdown-merge/gemfiles/modular/json/truffleruby_22_3.gemfile new file mode 100644 index 000000000..9b2f8d96a --- /dev/null +++ b/gems/kramdown-merge/gemfiles/modular/json/truffleruby_22_3.gemfile @@ -0,0 +1,6 @@ +# frozen_string_literal: true + +if RUBY_ENGINE == 'truffleruby' && RUBY_ENGINE_VERSION.start_with?('22.3') + # TruffleRuby 22.3 ships the json default gem from its emulated MRI Ruby. + gem 'json', '= 2.5.1' +end diff --git a/gems/kramdown-merge/gemfiles/modular/json/truffleruby_23_0.gemfile b/gems/kramdown-merge/gemfiles/modular/json/truffleruby_23_0.gemfile new file mode 100644 index 000000000..d787a5ef4 --- /dev/null +++ b/gems/kramdown-merge/gemfiles/modular/json/truffleruby_23_0.gemfile @@ -0,0 +1,6 @@ +# frozen_string_literal: true + +if RUBY_ENGINE == 'truffleruby' && RUBY_ENGINE_VERSION.start_with?('23.0') + # TruffleRuby 23.0 ships the json default gem from its emulated MRI Ruby. + gem 'json', '= 2.6.1' +end diff --git a/gems/kramdown-merge/gemfiles/modular/json/truffleruby_23_1.gemfile b/gems/kramdown-merge/gemfiles/modular/json/truffleruby_23_1.gemfile new file mode 100644 index 000000000..d78486b0e --- /dev/null +++ b/gems/kramdown-merge/gemfiles/modular/json/truffleruby_23_1.gemfile @@ -0,0 +1,6 @@ +# frozen_string_literal: true + +if RUBY_ENGINE == 'truffleruby' && RUBY_ENGINE_VERSION.start_with?('23.1') + # TruffleRuby 23.1 ships the json default gem from its emulated MRI Ruby. + gem 'json', '= 2.6.3' +end diff --git a/gems/kramdown-merge/gemfiles/modular/optional.gemfile b/gems/kramdown-merge/gemfiles/modular/optional.gemfile index 0a2ae24f4..9ea429538 100644 --- a/gems/kramdown-merge/gemfiles/modular/optional.gemfile +++ b/gems/kramdown-merge/gemfiles/modular/optional.gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -# To retain during kramdown-merge templating: +# To retain during kettle-jem templating: # kettle-jem:freeze # # ... your code # kettle-jem:unfreeze @@ -10,7 +10,6 @@ # Required for curated binstubs generated by kettle-jem install gem 'rbs', '>= 3.0', require: false # ruby >= 3.1 -gem 'stone_checksums', '~> 1.0', '>= 1.0.3', require: false # ruby >= 2.2 # Required for kettle-pre-release # URL parsing with Unicode support (falls back to URI if not available) diff --git a/gems/kramdown-merge/gemfiles/modular/runtime_heads.gemfile b/gems/kramdown-merge/gemfiles/modular/runtime_heads.gemfile index c33be11ea..ebf17c529 100644 --- a/gems/kramdown-merge/gemfiles/modular/runtime_heads.gemfile +++ b/gems/kramdown-merge/gemfiles/modular/runtime_heads.gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -# To retain during kramdown-merge templating: +# To retain during kettle-jem templating: # kettle-jem:freeze # # ... your code # kettle-jem:unfreeze @@ -8,7 +8,4 @@ # Test against HEAD of runtime dependencies so we can proactively file bugs -# Ruby >= 2.2 -gem 'version_gem', github: 'ruby-oauth/version_gem', branch: 'main' - eval_gemfile('x_std_libs/vHEAD.gemfile') diff --git a/gems/kramdown-merge/gemfiles/modular/style.gemfile b/gems/kramdown-merge/gemfiles/modular/style.gemfile index a04a7849a..4dbcc02c0 100644 --- a/gems/kramdown-merge/gemfiles/modular/style.gemfile +++ b/gems/kramdown-merge/gemfiles/modular/style.gemfile @@ -1,27 +1,30 @@ # frozen_string_literal: true -# To retain during kramdown-merge templating: +# To retain during kettle-jem templating: # kettle-jem:freeze # # ... your code # kettle-jem:unfreeze # -# We run rubocop on the latest version of Ruby, -# but in support of the oldest supported version of Ruby +# Style tasks run on the latest Ruby; RuboCop-LTS selects the compatibility +# rules for the configured Ruby floor independently from task dependency floors. -gem 'reek', '~> 6.5' +gem 'reek', '~> 6.5', '>= 6.5.0' platform :mri do - gem 'rubocop-on-rbs', '~> 2.0' # ruby >= 3.2.0 + gem 'appraisal2-rubocop', '~> 1.0', '>= 1.0.0', require: false + gem 'rubocop-gradual', '~> 0.4', '>= 0.4.0' + gem 'rubocop-minitest', '~> 0.40', '>= 0.40.0' + gem 'rubocop-on-rbs', '~> 2.0', '>= 2.0.0' # ruby >= 3.2.0 # gem "rubocop", "~> 1.73", ">= 1.73.2" # constrained by standard gem 'rubocop-packaging', '~> 0.6', '>= 0.6.0' - gem 'standard', '>= 1.50' + gem 'standard', '~> 1.56', '>= 1.56.0' if ENV.fetch('RUBOCOP_LTS_LOCAL', 'false').casecmp('false').zero? - gem 'rubocop-lts', '~> 24.1.0' - # "rubocop-lts-rspec" can't add here until other gems are updated. - gem 'rubocop-rspec', '~> 3.6' - gem 'rubocop-ruby3_2', '~> 3.0.0' + declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) + gem 'rubocop-lts', '~> 24.2', '>= 24.2.1' unless declared_gems.include?('rubocop-lts') + gem 'rubocop-lts-rspec', '~> 1.0', '>= 1.0.5' unless declared_gems.include?('rubocop-lts-rspec') + gem 'rubocop-ruby3_2', '~> 3.0', '>= 3.0.6' unless declared_gems.include?('rubocop-ruby3_2') else eval_gemfile('style_local.gemfile') end diff --git a/gems/kramdown-merge/gemfiles/modular/style_local.gemfile b/gems/kramdown-merge/gemfiles/modular/style_local.gemfile index ce75bbe21..6d918d9a4 100644 --- a/gems/kramdown-merge/gemfiles/modular/style_local.gemfile +++ b/gems/kramdown-merge/gemfiles/modular/style_local.gemfile @@ -1,19 +1,41 @@ # frozen_string_literal: true -# We run rubocop on the latest version of Ruby, -# but in support of the oldest supported version of Ruby +# Style tasks run on the latest Ruby; RuboCop-LTS selects the compatibility +# rules for the configured Ruby floor independently from task dependency floors. # Local path overrides for development. # Loaded by the associated non-local gemfile when RUBOCOP_LTS_LOCAL != "false". -require 'nomono/bundler' unless defined?(Nomono) +# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. +# Bundler records that dependency during Gemfile evaluation, but it does not +# activate that exact version before the immediate `require "nomono/bundler"`. +# If multiple compatible nomono versions are installed, RubyGems may activate +# the newest installed version while Gemfile.lock pins an older compatible one; +# Bundler then aborts with "already activated nomono X, but your Gemfile +# requires nomono Y". Prefer the locked compatible version when present, then +# activate it explicitly before requiring the Bundler DSL extension used below. +nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] +nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) +if File.file?(nomono_lockfile) + nomono_locked_spec = Bundler::LockfileParser + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } + nomono_locked = nomono_locked_spec && + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked +end +Kernel.send(:gem, 'nomono', *nomono_activation_requirements) +require 'nomono/bundler' local_gems = %w[rubocop-lts rubocop-lts-rspec rubocop-ruby3_2 standard-rubocop-lts] +declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) +local_gems_to_eval = local_gems - %w[kramdown-merge] - declared_gems # export VENDORED_GEMS=rubocop-lts,rubocop-lts-rspec,rubocop-ruby3_2,standard-rubocop-lts platform :mri do eval_nomono_gems( - gems: local_gems, + gems: local_gems_to_eval, prefix: 'RUBOCOP_LTS', path_env: 'RUBOCOP_LTS_LOCAL', vendored_gems_env: 'VENDORED_GEMS', diff --git a/gems/kramdown-merge/gemfiles/modular/templating.gemfile b/gems/kramdown-merge/gemfiles/modular/templating.gemfile index 2ddc9433f..a672de184 100644 --- a/gems/kramdown-merge/gemfiles/modular/templating.gemfile +++ b/gems/kramdown-merge/gemfiles/modular/templating.gemfile @@ -12,13 +12,13 @@ end if kettle_remote # Template/plugin checks for released installs. - gem 'kettle-drift', '~> 1.0', '>= 1.0.5', require: false + gem 'kettle-drift', '~> 1.0', '>= 1.0.6', require: false end # Set STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local development with path-based dependencies. # When false (default / CI), released kettle-jem brings merge gems and parser dependencies. # Local path overrides bring the same dependencies from sibling gemspecs. # -# Set KETTLE_DEV_DEV=/path/to/kettle-rb for local development with Kettle plugin gems. +# Set KETTLE_DEV_DEV=/path/to/my for local development with Kettle plugin gems. # When false (default / CI), released Kettle plugin gems are used. eval_gemfile 'templating_local.gemfile' unless structuredmerge_remote && kettle_remote diff --git a/gems/kramdown-merge/gemfiles/modular/templating_local.gemfile b/gems/kramdown-merge/gemfiles/modular/templating_local.gemfile index 2aa60939f..ffde8f59c 100644 --- a/gems/kramdown-merge/gemfiles/modular/templating_local.gemfile +++ b/gems/kramdown-merge/gemfiles/modular/templating_local.gemfile @@ -4,7 +4,27 @@ # Loaded by the associated non-local gemfile when STRUCTUREDMERGE_DEV or KETTLE_DEV_DEV # is not "false". -require 'nomono/bundler' unless defined?(Nomono) +# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. +# Bundler records that dependency during Gemfile evaluation, but it does not +# activate that exact version before the immediate `require "nomono/bundler"`. +# If multiple compatible nomono versions are installed, RubyGems may activate +# the newest installed version while Gemfile.lock pins an older compatible one; +# Bundler then aborts with "already activated nomono X, but your Gemfile +# requires nomono Y". Prefer the locked compatible version when present, then +# activate it explicitly before requiring the Bundler DSL extension used below. +nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] +nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) +if File.file?(nomono_lockfile) + nomono_locked_spec = Bundler::LockfileParser + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } + nomono_locked = nomono_locked_spec && + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked +end +Kernel.send(:gem, 'nomono', *nomono_activation_requirements) +require 'nomono/bundler' structuredmerge_local_gems = %w[ tree_haver diff --git a/gems/kramdown-merge/gemfiles/modular/webrick/r4/v1.9.gemfile b/gems/kramdown-merge/gemfiles/modular/webrick/r4/v1.9.gemfile new file mode 100644 index 000000000..b1329ba84 --- /dev/null +++ b/gems/kramdown-merge/gemfiles/modular/webrick/r4/v1.9.gemfile @@ -0,0 +1 @@ +gem 'webrick', '~> 1.9' diff --git a/gems/kramdown-merge/gemfiles/modular/webrick/vHEAD.gemfile b/gems/kramdown-merge/gemfiles/modular/webrick/vHEAD.gemfile new file mode 100644 index 000000000..c7e6f81a1 --- /dev/null +++ b/gems/kramdown-merge/gemfiles/modular/webrick/vHEAD.gemfile @@ -0,0 +1 @@ +gem 'webrick', '>= 1.9' diff --git a/gems/kramdown-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile b/gems/kramdown-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile index bd4e884df..e2f6501eb 100644 --- a/gems/kramdown-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile +++ b/gems/kramdown-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile @@ -2,3 +2,5 @@ eval_gemfile '../../erb/r4/v5.0.gemfile' eval_gemfile '../../mutex_m/r4/v0.3.gemfile' eval_gemfile '../../stringio/r4/v3.0.gemfile' eval_gemfile '../../benchmark/r4/v0.5.gemfile' +eval_gemfile '../../cgi/r4/v0.5.gemfile' +eval_gemfile '../../webrick/r4/v1.9.gemfile' diff --git a/gems/kramdown-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile b/gems/kramdown-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile index 91f383c11..ab75cccf1 100644 --- a/gems/kramdown-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile +++ b/gems/kramdown-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile @@ -2,3 +2,5 @@ eval_gemfile '../erb/vHEAD.gemfile' eval_gemfile '../mutex_m/vHEAD.gemfile' eval_gemfile '../stringio/vHEAD.gemfile' eval_gemfile '../benchmark/vHEAD.gemfile' +eval_gemfile '../cgi/vHEAD.gemfile' +eval_gemfile '../webrick/vHEAD.gemfile' diff --git a/gems/kramdown-merge/lib/kramdown/merge/version.rb b/gems/kramdown-merge/lib/kramdown/merge/version.rb index 058dbe0e1..feddb4113 100644 --- a/gems/kramdown-merge/lib/kramdown/merge/version.rb +++ b/gems/kramdown-merge/lib/kramdown/merge/version.rb @@ -3,7 +3,7 @@ module Kramdown module Merge module Version - VERSION = "7.1.0" + VERSION = '7.1.0' end VERSION = Version::VERSION # Traditional Constant Location end diff --git a/gems/smorg-rb/.kettle-drift.lock b/gems/smorg-rb/.kettle-drift.lock index 9f7fedda8..2495214ec 100644 --- a/gems/smorg-rb/.kettle-drift.lock +++ b/gems/smorg-rb/.kettle-drift.lock @@ -1,138 +1,10 @@ { - "(direct_sibling_local ||\nENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?)": [ - { - "file": "Gemfile", - "lines": [ - 85, - 125, - 165, - 205, - 245, - 285, - 325, - 365, - 405, - 445 - ] - } - ], - ".find { |spec| spec.name == 'nomono' }\nnomono_locked = nomono_locked_spec &&": [ - { - "file": "Gemfile", - "lines": [ - 96, - 136, - 176, - 216, - 256, - 296, - 336, - 376, - 416, - 456 - ] - } - ], - "ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?)\ndirect_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV')": [ - { - "file": "Gemfile", - "lines": [ - 86, - 126, - 166, - 206, - 246, - 286, - 326, - 366, - 406, - 446 - ] - } - ], - "Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version)\nnomono_activation_requirements = [\"= #{nomono_locked_spec.version}\"] if nomono_locked": [ - { - "file": "Gemfile", - "lines": [ - 98, - 138, - 178, - 218, - 258, - 298, - 338, - 378, - 418, - 458 - ] - } - ], - "Kernel.send(:gem, 'nomono', *nomono_activation_requirements)\nrequire 'nomono/bundler'": [ - { - "file": "Gemfile", - "lines": [ - 101, - 141, - 181, - 221, - 261, - 301, - 341, - 381, - 421, - 461 - ] - } - ], - "direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV')\ndirect_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil)": [ - { - "file": "Gemfile", - "lines": [ - 87, - 127, - 167, - 207, - 247, - 287, - 327, - 367, - 407, - 447 - ] - } - ], "eval_nomono_gems(\ngems: direct_sibling_gems,": [ { "file": "Gemfile", "lines": [ 65, - 105, - 145, - 185, - 225, - 265, - 305, - 345, - 385, - 425, - 465 - ] - } - ], - "gems: direct_sibling_gems,\nprefix: 'STRUCTUREDMERGE',": [ - { - "file": "Gemfile", - "lines": [ - 106, - 146, - 186, - 226, - 266, - 306, - 346, - 386, - 426, - 466 + 105 ] } ], @@ -141,33 +13,7 @@ "file": "Gemfile", "lines": [ 48, - 92, - 132, - 172, - 212, - 252, - 292, - 332, - 372, - 412, - 452 - ] - } - ], - "if direct_sibling_dev_was_set\nENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original": [ - { - "file": "Gemfile", - "lines": [ - 115, - 155, - 195, - 235, - 275, - 315, - 355, - 395, - 435, - 475 + 92 ] } ], @@ -176,16 +22,7 @@ "file": "Gemfile", "lines": [ 40, - 84, - 124, - 164, - 204, - 244, - 284, - 324, - 364, - 404, - 444 + 84 ] } ], @@ -194,33 +31,7 @@ "file": "Gemfile", "lines": [ 74, - 114, - 154, - 194, - 234, - 274, - 314, - 354, - 394, - 434, - 474 - ] - } - ], - "nomono_activation_requirements = nomono_requirements\nnomono_lockfile = File.expand_path('Gemfile.lock', __dir__)": [ - { - "file": "Gemfile", - "lines": [ - 90, - 130, - 170, - 210, - 250, - 290, - 330, - 370, - 410, - 450 + 114 ] } ], @@ -229,16 +40,7 @@ "file": "Gemfile", "lines": [ 53, - 97, - 137, - 177, - 217, - 257, - 297, - 337, - 377, - 417, - 457 + 97 ] } ], @@ -247,101 +49,7 @@ "file": "Gemfile", "lines": [ 49, - 93, - 133, - 173, - 213, - 253, - 293, - 333, - 373, - 413, - 453 - ] - } - ], - "nomono_lockfile = File.expand_path('Gemfile.lock', __dir__)\nif File.file?(nomono_lockfile)": [ - { - "file": "Gemfile", - "lines": [ - 91, - 131, - 171, - 211, - 251, - 291, - 331, - 371, - 411, - 451 - ] - } - ], - "path_env: 'STRUCTUREDMERGE_DEV',\nroot: %w[src my structuredmerge]": [ - { - "file": "Gemfile", - "lines": [ - 108, - 148, - 188, - 228, - 268, - 308, - 348, - 388, - 428, - 468 - ] - } - ], - "prefix: 'STRUCTUREDMERGE',\npath_env: 'STRUCTUREDMERGE_DEV',": [ - { - "file": "Gemfile", - "lines": [ - 107, - 147, - 187, - 227, - 267, - 307, - 347, - 387, - 427, - 467 - ] - } - ], - "require 'nomono/bundler'\nENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local": [ - { - "file": "Gemfile", - "lines": [ - 102, - 142, - 182, - 222, - 262, - 302, - 342, - 382, - 422, - 462 - ] - } - ], - "rescue LoadError\nwarn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.'": [ - { - "file": "Gemfile", - "lines": [ - 111, - 151, - 191, - 231, - 271, - 311, - 351, - 391, - 431, - 471 + 93 ] } ], @@ -349,8 +57,8 @@ { "file": "gemfiles/modular/templating_local.gemfile", "lines": [ - 60, - 71 + 55, + 66 ] } ] diff --git a/gems/smorg-rb/.structuredmerge/kettle-jem.yml b/gems/smorg-rb/.structuredmerge/kettle-jem.yml index c3d4089b4..1f30bbfa6 100644 --- a/gems/smorg-rb/.structuredmerge/kettle-jem.yml +++ b/gems/smorg-rb/.structuredmerge/kettle-jem.yml @@ -249,6 +249,59 @@ templates: - Gemfile - certs/pboling.pem - tmp/.gitignore + - gemfiles/modular/benchmark/r4/v0.5.gemfile + - gemfiles/modular/benchmark/vHEAD.gemfile + - gemfiles/modular/cgi/r4/v0.5.gemfile + - gemfiles/modular/cgi/vHEAD.gemfile + - gemfiles/modular/coverage.gemfile + - gemfiles/modular/coverage_local.gemfile + - gemfiles/modular/debug.gemfile + - gemfiles/modular/documentation.gemfile + - gemfiles/modular/documentation_local.gemfile + - gemfiles/modular/erb/r2.3/default.gemfile + - gemfiles/modular/erb/r2.6/v2.2.gemfile + - gemfiles/modular/erb/r2/v3.0.gemfile + - gemfiles/modular/erb/r3.1/v4.0.gemfile + - gemfiles/modular/erb/r3/v5.0.gemfile + - gemfiles/modular/erb/r4/v5.0.gemfile + - gemfiles/modular/erb/vHEAD.gemfile + - gemfiles/modular/json/truffleruby_22_3.gemfile + - gemfiles/modular/json/truffleruby_23_0.gemfile + - gemfiles/modular/json/truffleruby_23_1.gemfile + - gemfiles/modular/mutex_m/r2.4/v0.1.gemfile + - gemfiles/modular/mutex_m/r2/v0.3.gemfile + - gemfiles/modular/mutex_m/r3/v0.3.gemfile + - gemfiles/modular/mutex_m/r4/v0.3.gemfile + - gemfiles/modular/mutex_m/vHEAD.gemfile + - gemfiles/modular/optional.gemfile + - gemfiles/modular/recording/r2.3/recording.gemfile + - gemfiles/modular/recording/r2.4/recording.gemfile + - gemfiles/modular/recording/r2.5/recording.gemfile + - gemfiles/modular/recording/r3/recording.gemfile + - gemfiles/modular/recording/r4/recording.gemfile + - gemfiles/modular/recording/vHEAD.gemfile + - gemfiles/modular/rspec.gemfile + - gemfiles/modular/runtime_heads.gemfile + - gemfiles/modular/stringio/r2.4/v0.0.2.gemfile + - gemfiles/modular/stringio/r2/v3.0.gemfile + - gemfiles/modular/stringio/r3/v3.0.gemfile + - gemfiles/modular/stringio/r4/v3.0.gemfile + - gemfiles/modular/stringio/vHEAD.gemfile + - gemfiles/modular/style.gemfile + - gemfiles/modular/style_local.gemfile + - gemfiles/modular/templating.gemfile + - gemfiles/modular/templating_local.gemfile + - gemfiles/modular/webrick/r4/v1.9.gemfile + - gemfiles/modular/webrick/vHEAD.gemfile + - gemfiles/modular/x_std_libs.gemfile + - gemfiles/modular/x_std_libs/r2.3/libs.gemfile + - gemfiles/modular/x_std_libs/r2.4/libs.gemfile + - gemfiles/modular/x_std_libs/r2.6/libs.gemfile + - gemfiles/modular/x_std_libs/r2/libs.gemfile + - gemfiles/modular/x_std_libs/r3.1/libs.gemfile + - gemfiles/modular/x_std_libs/r3/libs.gemfile + - gemfiles/modular/x_std_libs/r4/libs.gemfile + - gemfiles/modular/x_std_libs/vHEAD.gemfile - source: lib/gem/version.rb target: lib/smorg/rb/version.rb - source: sig/gem.rbs diff --git a/gems/smorg-rb/Gemfile b/gems/smorg-rb/Gemfile index b3f5e0333..1b2607cc1 100644 --- a/gems/smorg-rb/Gemfile +++ b/gems/smorg-rb/Gemfile @@ -6,7 +6,7 @@ # kettle-jem will then preserve content between those markers across template runs. # kettle-jem:unfreeze -source 'https://gem.coop' +source "https://gem.coop" git_source(:codeberg) { |repo_name| "https://codeberg.org/#{repo_name}" } git_source(:gitlab) { |repo_name| "https://gitlab.com/#{repo_name}" } @@ -19,8 +19,8 @@ git_source(:gitlab) { |repo_name| "https://gitlab.com/#{repo_name}" } gemspec # Local workspace dependency wiring for *_local.gemfile overrides -nomono_requirements = ['~> 1.0', '>= 1.0.8'] -gem 'nomono', *nomono_requirements, require: false # ruby >= 2.2 +nomono_requirements = ["~> 1.0", ">= 1.0.8"] +gem "nomono", *nomono_requirements, require: false # ruby >= 2.2 # Direct sibling dependencies (env-switched via STRUCTUREDMERGE_DEV) direct_sibling_gems = %w[ @@ -32,10 +32,54 @@ direct_sibling_gems = %w[ markly-merge plain-merge ] -direct_sibling_dev = ENV.fetch('STRUCTUREDMERGE_DEV', '') +direct_sibling_dev = ENV.fetch("STRUCTUREDMERGE_DEV", "") direct_sibling_local = !direct_sibling_dev.empty? && !%w[false 0 no off].include?(direct_sibling_dev.downcase) -direct_sibling_templating = ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? +direct_sibling_templating = ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? + +if direct_sibling_gems.any? && + (direct_sibling_local || + ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero?) + direct_sibling_dev_was_set = ENV.key?("STRUCTUREDMERGE_DEV") + direct_sibling_dev_original = ENV.fetch("STRUCTUREDMERGE_DEV", nil) + begin + nomono_activation_requirements = nomono_requirements + nomono_lockfile = File.expand_path("Gemfile.lock", __dir__) + if File.file?(nomono_lockfile) + nomono_locked_spec = Bundler::LockfileParser + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == "nomono" } + nomono_locked = nomono_locked_spec && + Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) + if nomono_locked + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] + end + end + Kernel.send(:gem, "nomono", *nomono_activation_requirements) + require "nomono/bundler" + if direct_sibling_templating && !direct_sibling_local + ENV["STRUCTUREDMERGE_DEV"] = File.expand_path("..", __dir__) + end + + eval_nomono_gems( + gems: direct_sibling_gems, + prefix: "STRUCTUREDMERGE", + path_env: "STRUCTUREDMERGE_DEV", + root: ["src", "my", "structuredmerge"] + ) + rescue LoadError + warn "Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies." + ensure + if direct_sibling_templating && !direct_sibling_local + if direct_sibling_dev_was_set + ENV["STRUCTUREDMERGE_DEV"] = direct_sibling_dev_original + else + ENV.delete("STRUCTUREDMERGE_DEV") + end + end + end +end if direct_sibling_gems.any? && (direct_sibling_local || @@ -78,28 +122,28 @@ if direct_sibling_gems.any? && end # Use released TSLP with the Ruby ABI platform-gem fix. -gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' +gem "tree_sitter_language_pack", "~> 1.13", ">= 1.13.3" # Templating (env-switched: STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local paths) -eval_gemfile 'gemfiles/modular/templating.gemfile' if ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? +eval_gemfile "gemfiles/modular/templating.gemfile" if ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? # Debugging -eval_gemfile 'gemfiles/modular/debug.gemfile' +eval_gemfile "gemfiles/modular/debug.gemfile" # Code Coverage (env-switched: KETTLE_DEV_DEV=true for local paths) -eval_gemfile 'gemfiles/modular/coverage.gemfile' +eval_gemfile "gemfiles/modular/coverage.gemfile" # Linting -eval_gemfile 'gemfiles/modular/style.gemfile' +eval_gemfile "gemfiles/modular/style.gemfile" # Documentation -eval_gemfile 'gemfiles/modular/documentation.gemfile' +eval_gemfile "gemfiles/modular/documentation.gemfile" # Optional -eval_gemfile 'gemfiles/modular/optional.gemfile' +eval_gemfile "gemfiles/modular/optional.gemfile" ### Std Lib Extracted Gems -eval_gemfile 'gemfiles/modular/x_std_libs.gemfile' +eval_gemfile "gemfiles/modular/x_std_libs.gemfile" # See unlocked_deps appraisal for more details on irb inclusion -gem 'irb', '~> 1.17' # ruby >= 2.7 +gem "irb", "~> 1.17" # ruby >= 2.7 diff --git a/gems/smorg-rb/Gemfile.lock b/gems/smorg-rb/Gemfile.lock index 62846af44..0291131b6 100644 --- a/gems/smorg-rb/Gemfile.lock +++ b/gems/smorg-rb/Gemfile.lock @@ -11,59 +11,280 @@ PATH plain-merge (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) -GEM - remote: https://gem.coop/ +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly specs: - addressable (2.9.0) - public_suffix (>= 2.0.2, < 8.0) - ansi (1.6.0) - appraisal2 (3.2.0) - bundler (>= 1.17.3) - rake (>= 10) - thor (>= 0.14) - ast (2.4.3) - ast-crispr (7.1.0) - ast-merge (= 7.1.0) - service_actor (~> 3.9) - version_gem (~> 1.1, >= 1.1.9) ast-crispr-markdown-markly (7.1.0) ast-crispr (= 7.1.0) markly-merge (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism + specs: ast-crispr-ruby-prism (7.1.0) ast-crispr (= 7.1.0) prism-merge (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr + specs: + ast-crispr (7.1.0) + ast-merge (= 7.1.0) + service_actor (~> 3.9) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git + specs: + ast-merge-git (7.1.0) + ast-merge (= 7.1.0) + json-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge + specs: ast-merge (7.1.0) benchmark token-resolver (~> 2.0, >= 2.0.4) tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) - ast-merge-git (7.1.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template + specs: + ast-template (7.1.0) ast-merge (= 7.1.0) - json-merge (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) - backports (3.25.3) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge + specs: bash-merge (7.1.0) ast-merge (= 7.1.0) tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.14) - benchmark (0.5.0) - bigdecimal (4.1.2) - bundler-audit (0.9.3) - bundler (>= 1.2.0) - thor (~> 1.0) - citrus (3.0.2) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge + specs: + binary-merge (7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge + specs: citrus-toml-merge (7.1.0) toml-merge (= 7.1.0) toml-rb (~> 4.1) version_gem (~> 1.1, >= 1.1.9) - cmdparse (3.0.7) - commonmarker (2.9.0-x86_64-linux) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge + specs: commonmarker-merge (7.1.0) commonmarker (~> 2.2) markdown-merge (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge + specs: + dotenv-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge + specs: + go-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge + specs: + json-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem + specs: + kettle-jem (7.1.0) + addressable (>= 2.8, < 3) + ast-crispr-markdown-markly (= 7.1.0) + ast-crispr-ruby-prism (= 7.1.0) + ast-merge (= 7.1.0) + bash-merge (= 7.1.0) + citrus-toml-merge (= 7.1.0) + commonmarker-merge (= 7.1.0) + dotenv-merge (= 7.1.0) + json-merge (= 7.1.0) + kettle-dev (~> 2.3, >= 2.3.5) + kettle-rb (~> 0.1, >= 0.1.4) + kramdown-merge (= 7.1.0) + markdown-merge (= 7.1.0) + markly-merge (= 7.1.0) + prism-merge (= 7.1.0) + psych-merge (= 7.1.0) + rbs (>= 3.10) + rbs-merge (= 7.1.0) + ruby-merge (= 7.1.0) + token-resolver (~> 2.0, >= 2.0.4) + toml-merge (= 7.1.0) + toml-rb (~> 4.2) + tree_haver (= 7.1.0) + yaml-merge (= 7.1.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge + specs: + kramdown-merge (7.1.0) + kramdown (~> 2.5) + markdown-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge + specs: + markdown-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge + specs: + markly-merge (7.1.0) + markdown-merge (= 7.1.0) + markly (~> 0.9) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge + specs: + parslet-toml-merge (7.1.0) + toml (~> 0.3) + toml-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge + specs: + plain-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge + specs: + prism-merge (7.1.0) + prism (~> 1.6) + ruby-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge + specs: + psych-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + yaml-merge (= 7.1.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge + specs: + rbs-merge (7.1.0) + ast-merge (= 7.1.0) + rbs (>= 3.10) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge + specs: + ruby-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge + specs: + rust-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge + specs: + toml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver + specs: + tree_haver (7.1.0) + citrus (~> 3.0) + parslet (~> 2.0) + tree_sitter_language_pack (>= 1.13.2, < 2.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge + specs: + typescript-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge + specs: + yaml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge + specs: + zip-merge (7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +GEM + remote: https://gem.coop/ + specs: + addressable (2.9.0) + public_suffix (>= 2.0.2, < 8.0) + ansi (1.6.0) + appraisal2 (3.2.0) + bundler (>= 1.17.3) + rake (>= 10) + thor (>= 0.14) + ast (2.4.3) + backports (3.25.3) + benchmark (0.5.0) + bigdecimal (4.1.2) + bundler-audit (0.9.3) + bundler (>= 1.2.0) + thor (~> 1.0) + citrus (3.0.2) + cmdparse (3.0.7) + commonmarker (2.9.0-x86_64-linux) concurrent-ruby (1.3.7) date (3.5.1) debug (1.11.1) @@ -73,10 +294,6 @@ GEM diff-lcs (1.6.2) diffy (3.4.4) docile (1.4.1) - dotenv-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) dry-configurable (1.4.0) dry-core (~> 1.0) zeitwerk (~> 2.6) @@ -114,10 +331,6 @@ GEM geom2d (0.4.1) gitmoji-regex (2.0.4) version_gem (~> 1.1, >= 1.1.13) - go-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) hexapdf (1.9.1) cmdparse (~> 3.0, >= 3.0.3) geom2d (~> 0.4, >= 0.4.1) @@ -130,40 +343,13 @@ GEM rdoc (>= 4.0.0) reline (>= 0.4.2) json (2.21.1) - json-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) kettle-dev (2.3.7) emoji_regex (>= 15.0) kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) - kettle-jem (7.1.0) - addressable (>= 2.8, < 3) - ast-crispr-markdown-markly (= 7.1.0) - ast-crispr-ruby-prism (= 7.1.0) - ast-merge (= 7.1.0) - bash-merge (= 7.1.0) - citrus-toml-merge (= 7.1.0) - commonmarker-merge (= 7.1.0) - dotenv-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-dev (~> 2.3, >= 2.3.5) - kettle-rb (~> 0.1, >= 0.1.4) - kramdown-merge (= 7.1.0) - markdown-merge (= 7.1.0) - markly-merge (= 7.1.0) - prism-merge (= 7.1.0) - psych-merge (= 7.1.0) - rbs (>= 3.10) - rbs-merge (= 7.1.0) - ruby-merge (= 7.1.0) - token-resolver (~> 2.0, >= 2.0.4) - toml-merge (= 7.1.0) - toml-rb (~> 4.2) - tree_haver (= 7.1.0) - yaml-merge (= 7.1.0) + kettle-drift (1.0.6) + version_gem (~> 1.1, >= 1.1.14) kettle-rb (0.1.4) kettle-soup-cover (1.1.3) simplecov (~> 0.22) @@ -187,28 +373,16 @@ GEM turbo_tests2 (~> 3.1, >= 3.1.12) kramdown (2.5.2) rexml (>= 3.4.4) - kramdown-merge (7.1.0) - kramdown (~> 2.5) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) kramdown-parser-gfm (1.1.0) kramdown (~> 2.0) language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) - markdown-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) markly (0.16.0) - markly-merge (7.1.0) - markdown-merge (= 7.1.0) - markly (~> 0.9) - version_gem (~> 1.1, >= 1.1.9) mutex_m (0.3.0) nokogiri (1.19.4-x86_64-linux-gnu) racc (~> 1.4) - nomono (1.0.8) + nomono (1.0.9) openssl (4.0.2) ostruct (0.6.3) parallel (1.28.0) @@ -218,26 +392,13 @@ GEM ast (~> 2.4.1) racc parslet (2.0.0) - plain-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) pp (0.6.4) prettyprint prettyprint (0.2.0) prism (1.9.0) - prism-merge (7.1.0) - prism (~> 1.6) - ruby-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) psych (5.4.0) date stringio - psych-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - yaml-merge (= 7.1.0) public_suffix (7.0.5) racc (1.8.1) rainbow (3.1.1) @@ -246,11 +407,6 @@ GEM logger prism (>= 1.6.0) tsort - rbs-merge (7.1.0) - ast-merge (= 7.1.0) - rbs (>= 3.10) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) rdoc (6.17.0) erb psych (>= 4.0.0) @@ -346,10 +502,6 @@ GEM lint_roller (~> 1.1) rubocop (~> 1.72, >= 1.72.1) rubocop-ast (>= 1.44.0, < 2.0) - ruby-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) ruby-progressbar (1.13.0) ruby_engine (2.0.3) ruby_version (1.0.3) @@ -374,7 +526,7 @@ GEM simplecov-rcov (0.3.7) simplecov (>= 0.4.1) simplecov_json_formatter (0.1.4) - sorbet-runtime (0.6.13342) + sorbet-runtime (0.6.13347) standard (1.56.0) language_server-protocol (~> 3.17.0.2) lint_roller (~> 1.0) @@ -406,19 +558,12 @@ GEM timecop (>= 0.7, < 1) token-resolver (2.0.4) parslet (~> 2.0) - version_gem (~> 1.1, >= 1.1.14) - toml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) + version_gem (~> 1.1, >= 1.1.13) + toml (0.3.0) + parslet (>= 1.8.0, < 3.0.0) toml-rb (4.2.0) citrus (~> 3.0, > 3.0) racc (~> 1.7) - tree_haver (7.1.0) - citrus (~> 3.0) - parslet (~> 2.0) - tree_sitter_language_pack (>= 1.13.2, < 2.0) - version_gem (~> 1.1, >= 1.1.9) tree_sitter_language_pack (1.13.3-x86_64-linux) sorbet-runtime (~> 0.5) tsort (0.2.0) @@ -435,10 +580,6 @@ GEM kramdown (>= 2.4, < 3) kramdown-parser-gfm (~> 1.1) version_gem (~> 1.1, >= 1.1.13) - yaml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) yard (0.9.45) yard-fence (0.9.6) rdoc (>= 6.11, < 8) @@ -466,22 +607,45 @@ PLATFORMS DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) + ast-crispr! + ast-crispr-markdown-markly! + ast-crispr-ruby-prism! + ast-merge! + ast-merge-git! + ast-template! + bash-merge! benchmark (~> 0.5, >= 0.5.0) + binary-merge! bundler-audit (~> 0.9.3) + citrus-toml-merge! + commonmarker-merge! debug (>= 1.1) + dotenv-merge! erb (~> 6.0, >= 6.0.4) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.0) + go-merge! irb (~> 1.17) + json-merge! kettle-dev (~> 2.0, >= 2.2.25) + kettle-drift (~> 1.0, >= 1.0.5) + kettle-jem! kettle-soup-cover (~> 1.0, >= 1.1.3) kettle-test (~> 2.0, >= 2.0.9) kramdown (~> 2.5, >= 2.5.1) + kramdown-merge! kramdown-parser-gfm (~> 1.1) + markdown-merge! + markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) + parslet-toml-merge! + plain-merge! + prism-merge! + psych-merge! rake (~> 13.0) rbs (>= 3.0) + rbs-merge! rdoc (~> 6.11) reek (~> 6.5) require_bench (~> 1.0, >= 1.0.4) @@ -490,19 +654,26 @@ DEPENDENCIES rubocop-packaging (~> 0.6, >= 0.6.0) rubocop-rspec (~> 3.6) rubocop-ruby3_2 (~> 3.0.0) + ruby-merge! ruby-progressbar (~> 1.13) + rust-merge! smorg-rb! standard (>= 1.50) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) + toml-merge! + tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) + typescript-merge! yaml-converter (~> 0.1) + yaml-merge! yard (~> 0.9, >= 0.9.44) yard-fence (~> 0.9, >= 0.9.1) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) yard-timekeeper (~> 0.1) yard-yaml (~> 0.1, >= 0.1.2) + zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af @@ -514,10 +685,12 @@ CHECKSUMS ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) ast-merge-git (7.1.0) + ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd + binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 citrus-toml-merge (7.1.0) @@ -551,6 +724,7 @@ CHECKSUMS json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 json-merge (7.1.0) kettle-dev (2.3.7) sha256=eb370113cd030d03cbe2d33b31c99858951017e5ad21a17e9ed89dc3770028ee + kettle-drift (1.0.6) kettle-jem (7.1.0) kettle-rb (0.1.4) sha256=9cef7ce4f7021666b7222292f29051e51eaf042e8a5db11f3f4dd72f74243fc1 kettle-soup-cover (1.1.3) sha256=a373827da22a7131d093afd32945e5b7d7a10a01ebfdded8fd2cb8230d69c8ad @@ -566,13 +740,14 @@ CHECKSUMS markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-x86_64-linux-gnu) sha256=379fae440b28915e3f19d752ce2dcf8465ed2b2fbefd2a7ca0dd497bc981a06a - nomono (1.0.8) sha256=bf4b9b426cbf216ab17b70db474f691b8ae1f1e29de8db4b0ecd405e6e7e1c80 + nomono (1.0.9) openssl (4.0.2) sha256=1037ad2868ae58df9ad917891c0c0f9815a1172f6846d4bcdd508e4c2ee747c2 ostruct (0.6.3) sha256=95a2ed4a4bd1d190784e666b47b2d3f078e4a9efda2fccf18f84ddc6538ed912 parallel (1.28.0) sha256=33e6de1484baf2524792d178b0913fc8eb94c628d6cfe45599ad4458c638c970 parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 + parslet-toml-merge (7.1.0) plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 @@ -617,6 +792,7 @@ CHECKSUMS ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 + rust-merge (7.1.0) service_actor (3.9.4) sha256=e63b523630b9a7e62959b2a90113b08d2565b5de9c148557b281ef847c9539ce silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (0.22.0) sha256=fe2622c7834ff23b98066bb0a854284b2729a569ac659f82621fc22ef36213a5 @@ -627,7 +803,7 @@ CHECKSUMS simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_json_formatter (0.1.4) sha256=529418fbe8de1713ac2b2d612aa3daa56d316975d307244399fa4838c601b428 smorg-rb (7.1.0) - sorbet-runtime (0.6.13342) sha256=dbeb9892597f593ed2b29e38018912787f6c4e0c4b736d8af0d6bd3c63bde3c3 + sorbet-runtime (0.6.13347) sha256=54e7221d9f4b63f58aec79f3043752a9ba7810347c6ae0d903531591cc2d5f01 standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b standard-performance (1.9.0) sha256=49483d31be448292951d80e5e67cdcb576c2502103c7b40aec6f1b6e9c88e3f2 @@ -640,25 +816,28 @@ CHECKSUMS timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.4) sha256=33b926958f504525bba3ed511ab66fbcbf8ef30390815e931436b30f27ffcad0 + toml (0.3.0) toml-merge (7.1.0) toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 tree_haver (7.1.0) - tree_sitter_language_pack (1.13.3-x86_64-linux) - tsort (0.2.0) - turbo_tests2 (3.2.0) - unicode-display_width (3.2.0) - unicode-emoji (4.2.0) - version_gem (1.1.14) - yaml-converter (0.2.3) + tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 + tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f + turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 + typescript-merge (7.1.0) + unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 + unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f + version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 + yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 yaml-merge (7.1.0) - yard (0.9.45) - yard-fence (0.9.6) - yard-junk (0.1.0) - yard-relative_markdown_links (0.6.0) - yard-timekeeper (0.2.4) - yard-yaml (0.2.3) - zeitwerk (2.8.2) - zlib (3.2.3) + yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 + yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 + yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd + yard-relative_markdown_links (0.6.0) sha256=3e5ffa85cbad9bac70bee5421774b190fb25d3bdf489323a5b3534f647d1a70e + yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a + yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 + zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 + zip-merge (7.1.0) + zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH 4.0.16 diff --git a/gems/smorg-rb/Rakefile b/gems/smorg-rb/Rakefile index ba8baf8e9..5fec5aacc 100644 --- a/gems/smorg-rb/Rakefile +++ b/gems/smorg-rb/Rakefile @@ -130,23 +130,23 @@ end ### DUPLICATE DRIFT TASKS begin - require 'kettle/drift' + require "kettle/drift" Kettle::Drift.install_tasks rescue LoadError - desc('(stub) kettle:drift:check is unavailable') - task('kettle:drift:check') do + desc("(stub) kettle:drift:check is unavailable") + task("kettle:drift:check") do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc('(stub) kettle:drift:update is unavailable') - task('kettle:drift:update') do + desc("(stub) kettle:drift:update is unavailable") + task("kettle:drift:update") do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc('(stub) kettle:drift:force_update is unavailable') - task('kettle:drift:force_update') do + desc("(stub) kettle:drift:force_update is unavailable") + task("kettle:drift:force_update") do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc('(stub) kettle:drift is unavailable') - task('kettle:drift' => 'kettle:drift:update') + desc("(stub) kettle:drift is unavailable") + task("kettle:drift" => "kettle:drift:update") end ### TEMPLATING TASKS diff --git a/gems/smorg-rb/lib/smorg/rb/version.rb b/gems/smorg-rb/lib/smorg/rb/version.rb index 8e48f6d11..ef211ba06 100644 --- a/gems/smorg-rb/lib/smorg/rb/version.rb +++ b/gems/smorg-rb/lib/smorg/rb/version.rb @@ -3,7 +3,7 @@ module Smorg module RB module Version - VERSION = '7.1.0' + VERSION = "7.1.0" end VERSION = Version::VERSION # Traditional Constant Location end From 36590e3a136f9b6429aa3ca9693e2e6158651f2c Mon Sep 17 00:00:00 2001 From: "Peter H. Boling" Date: Tue, 21 Jul 2026 13:56:10 -0600 Subject: [PATCH 143/188] =?UTF-8?q?=F0=9F=8E=A8=20Template=20bootstrap=20b?= =?UTF-8?q?y=20kettle-jem=20v7.1.0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gems/kettle-jem/Gemfile.lock | 18 +- gems/kramdown-merge/Gemfile.lock | 337 ++++++++++++- gems/smorg-rb/.kettle-drift.lock | 9 - gems/smorg-rb/.rubocop_gradual.lock | 101 ++-- gems/smorg-rb/Gemfile | 70 ++- gems/smorg-rb/Gemfile.lock | 455 +++++++----------- gems/smorg-rb/README.md | 4 +- gems/smorg-rb/Rakefile | 18 +- .../gemfiles/modular/cgi/r4/v0.5.gemfile | 1 + .../gemfiles/modular/cgi/vHEAD.gemfile | 1 + .../gemfiles/modular/coverage.gemfile | 2 +- .../gemfiles/modular/coverage_local.gemfile | 24 +- .../gemfiles/modular/documentation.gemfile | 12 +- .../modular/documentation_local.gemfile | 26 +- .../gemfiles/modular/erb/r3/v5.0.gemfile | 2 +- .../gemfiles/modular/erb/r4/v5.0.gemfile | 2 +- .../modular/json/truffleruby_22_3.gemfile | 6 + .../modular/json/truffleruby_23_0.gemfile | 6 + .../modular/json/truffleruby_23_1.gemfile | 6 + .../gemfiles/modular/optional.gemfile | 3 +- .../gemfiles/modular/runtime_heads.gemfile | 5 +- gems/smorg-rb/gemfiles/modular/style.gemfile | 23 +- .../gemfiles/modular/style_local.gemfile | 30 +- .../gemfiles/modular/templating.gemfile | 6 +- .../gemfiles/modular/templating_local.gemfile | 22 +- .../gemfiles/modular/webrick/r4/v1.9.gemfile | 1 + .../gemfiles/modular/webrick/vHEAD.gemfile | 1 + .../modular/x_std_libs/r4/libs.gemfile | 2 + .../gemfiles/modular/x_std_libs/vHEAD.gemfile | 2 + gems/smorg-rb/lib/smorg/rb/version.rb | 2 +- gems/smorg-rb/spec/cli_spec.rb | 2 +- 31 files changed, 764 insertions(+), 435 deletions(-) create mode 100644 gems/smorg-rb/gemfiles/modular/cgi/r4/v0.5.gemfile create mode 100644 gems/smorg-rb/gemfiles/modular/cgi/vHEAD.gemfile create mode 100644 gems/smorg-rb/gemfiles/modular/json/truffleruby_22_3.gemfile create mode 100644 gems/smorg-rb/gemfiles/modular/json/truffleruby_23_0.gemfile create mode 100644 gems/smorg-rb/gemfiles/modular/json/truffleruby_23_1.gemfile create mode 100644 gems/smorg-rb/gemfiles/modular/webrick/r4/v1.9.gemfile create mode 100644 gems/smorg-rb/gemfiles/modular/webrick/vHEAD.gemfile diff --git a/gems/kettle-jem/Gemfile.lock b/gems/kettle-jem/Gemfile.lock index 86edd6e5f..15b9580af 100644 --- a/gems/kettle-jem/Gemfile.lock +++ b/gems/kettle-jem/Gemfile.lock @@ -352,8 +352,8 @@ GEM kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) - kettle-drift (1.0.5) - version_gem (~> 1.1, >= 1.1.13) + kettle-drift (1.0.6) + version_gem (~> 1.1, >= 1.1.14) kettle-rb (0.1.4) kettle-soup-cover (3.0.3) kettle-wash (~> 0.1, >= 0.1.0) @@ -386,7 +386,7 @@ GEM mutex_m (0.3.0) nokogiri (1.19.4-x86_64-linux-gnu) racc (~> 1.4) - nomono (1.0.8) + nomono (1.0.9) openssl (4.0.2) ostruct (0.6.3) parallel (1.28.0) @@ -554,7 +554,7 @@ GEM simplecov (>= 0.4.1) simplecov_lcov_formatter (0.9.0) simplecov (>= 0.18) - sorbet-runtime (0.6.13344) + sorbet-runtime (0.6.13347) standard (1.56.0) language_server-protocol (~> 3.17.0.2) lint_roller (~> 1.0) @@ -662,7 +662,7 @@ DEPENDENCIES go-merge! irb (~> 1.17) json-merge! - kettle-drift (~> 1.0, >= 1.0.5) + kettle-drift (~> 1.0, >= 1.0.6) kettle-jem! kettle-soup-cover (~> 3.0, >= 3.0.3) kettle-test (~> 2.0, >= 2.0.11) @@ -762,7 +762,7 @@ CHECKSUMS json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 json-merge (7.1.0) kettle-dev (2.3.7) sha256=eb370113cd030d03cbe2d33b31c99858951017e5ad21a17e9ed89dc3770028ee - kettle-drift (1.0.5) sha256=07094e80140a049164142820bdd327c30fcd855bb00697a0a430600a2b5144a2 + kettle-drift (1.0.6) kettle-jem (7.1.0) kettle-rb (0.1.4) sha256=9cef7ce4f7021666b7222292f29051e51eaf042e8a5db11f3f4dd72f74243fc1 kettle-soup-cover (3.0.3) sha256=5919649be35690e4580299a41ac7c44a9548a7ca38561ffdd3c683c9d63e6f9b @@ -779,7 +779,7 @@ CHECKSUMS markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-x86_64-linux-gnu) sha256=379fae440b28915e3f19d752ce2dcf8465ed2b2fbefd2a7ca0dd497bc981a06a - nomono (1.0.8) sha256=bf4b9b426cbf216ab17b70db474f691b8ae1f1e29de8db4b0ecd405e6e7e1c80 + nomono (1.0.9) openssl (4.0.2) sha256=1037ad2868ae58df9ad917891c0c0f9815a1172f6846d4bcdd508e4c2ee747c2 ostruct (0.6.3) sha256=95a2ed4a4bd1d190784e666b47b2d3f078e4a9efda2fccf18f84ddc6538ed912 parallel (1.28.0) sha256=33e6de1484baf2524792d178b0913fc8eb94c628d6cfe45599ad4458c638c970 @@ -847,7 +847,7 @@ CHECKSUMS simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed smorg-rb (7.1.0) - sorbet-runtime (0.6.13344) sha256=0b4e3310cd10bc814f0d7cfa65db82151103322e75dd63c961546845dd8ba5e5 + sorbet-runtime (0.6.13347) sha256=54e7221d9f4b63f58aec79f3043752a9ba7810347c6ae0d903531591cc2d5f01 standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b standard-performance (1.9.0) sha256=49483d31be448292951d80e5e67cdcb576c2502103c7b40aec6f1b6e9c88e3f2 @@ -861,7 +861,7 @@ CHECKSUMS timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.4) sha256=33b926958f504525bba3ed511ab66fbcbf8ef30390815e931436b30f27ffcad0 - toml (0.3.0) sha256=0a91d0f76a9036e84e44f95693b12f58d358c1df3ac8e3b5271f2056ecc6e4b9 + toml (0.3.0) toml-merge (7.1.0) toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 tree_haver (7.1.0) diff --git a/gems/kramdown-merge/Gemfile.lock b/gems/kramdown-merge/Gemfile.lock index f37a96547..e146710ba 100644 --- a/gems/kramdown-merge/Gemfile.lock +++ b/gems/kramdown-merge/Gemfile.lock @@ -7,13 +7,264 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly + specs: + ast-crispr-markdown-markly (7.1.0) + ast-crispr (= 7.1.0) + markly-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism + specs: + ast-crispr-ruby-prism (7.1.0) + ast-crispr (= 7.1.0) + prism-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr + specs: + ast-crispr (7.1.0) + ast-merge (= 7.1.0) + service_actor (~> 3.9) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git + specs: + ast-merge-git (7.1.0) + ast-merge (= 7.1.0) + json-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge + specs: + ast-merge (7.1.0) + benchmark + token-resolver (~> 2.0, >= 2.0.4) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template + specs: + ast-template (7.1.0) + ast-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge + specs: + bash-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge + specs: + binary-merge (7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge + specs: + citrus-toml-merge (7.1.0) + toml-merge (= 7.1.0) + toml-rb (~> 4.1) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge + specs: + commonmarker-merge (7.1.0) + commonmarker (~> 2.2) + markdown-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge + specs: + dotenv-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge + specs: + go-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge + specs: + json-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem + specs: + kettle-jem (7.1.0) + addressable (>= 2.8, < 3) + ast-crispr-markdown-markly (= 7.1.0) + ast-crispr-ruby-prism (= 7.1.0) + ast-merge (= 7.1.0) + bash-merge (= 7.1.0) + citrus-toml-merge (= 7.1.0) + commonmarker-merge (= 7.1.0) + dotenv-merge (= 7.1.0) + json-merge (= 7.1.0) + kettle-dev (~> 2.3, >= 2.3.5) + kettle-rb (~> 0.1, >= 0.1.4) + kramdown-merge (= 7.1.0) + markdown-merge (= 7.1.0) + markly-merge (= 7.1.0) + prism-merge (= 7.1.0) + psych-merge (= 7.1.0) + rbs (>= 3.10) + rbs-merge (= 7.1.0) + ruby-merge (= 7.1.0) + token-resolver (~> 2.0, >= 2.0.4) + toml-merge (= 7.1.0) + toml-rb (~> 4.2) + tree_haver (= 7.1.0) + yaml-merge (= 7.1.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge specs: markdown-merge (7.1.0) ast-merge (= 7.1.0) tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge + specs: + markly-merge (7.1.0) + markdown-merge (= 7.1.0) + markly (~> 0.9) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge + specs: + parslet-toml-merge (7.1.0) + toml (~> 0.3) + toml-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge + specs: + plain-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge + specs: + prism-merge (7.1.0) + prism (~> 1.6) + ruby-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge + specs: + psych-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + yaml-merge (= 7.1.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge + specs: + rbs-merge (7.1.0) + ast-merge (= 7.1.0) + rbs (>= 3.10) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge + specs: + ruby-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge + specs: + rust-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb + specs: + smorg-rb (7.1.0) + ast-merge (= 7.1.0) + ast-merge-git (= 7.1.0) + go-merge (= 7.1.0) + json-merge (= 7.1.0) + kettle-jem (= 7.1.0) + markly-merge (= 7.1.0) + plain-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge + specs: + toml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver + specs: + tree_haver (7.1.0) + citrus (~> 3.0) + parslet (~> 2.0) + tree_sitter_language_pack (>= 1.13.2, < 2.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge + specs: + typescript-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge + specs: + yaml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge + specs: + zip-merge (7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + GEM remote: https://gem.coop/ specs: @@ -29,11 +280,6 @@ GEM rubocop (>= 1.0) version_gem (~> 1.1, >= 1.1.14) ast (2.4.3) - ast-merge (7.1.0) - benchmark - token-resolver (~> 2.0, >= 2.0.4) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) backports (3.25.3) benchmark (0.5.0) bigdecimal (4.1.2) @@ -43,6 +289,7 @@ GEM cgi (0.5.2) citrus (3.0.2) cmdparse (3.0.7) + commonmarker (2.9.0-x86_64-linux) concurrent-ruby (1.3.8) date (3.5.1) debug (1.11.1) @@ -105,6 +352,8 @@ GEM kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) + kettle-drift (1.0.6) + version_gem (~> 1.1, >= 1.1.14) kettle-rb (0.1.5) kettle-soup-cover (3.0.4) kettle-wash (~> 0.1, >= 0.1.0) @@ -133,6 +382,7 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) + markly (0.16.0) mutex_m (0.3.0) nokogiri (1.19.4-x86_64-linux-gnu) racc (~> 1.4) @@ -287,6 +537,8 @@ GEM ruby-progressbar (1.13.0) ruby_engine (2.0.3) ruby_version (1.0.3) + service_actor (3.9.4) + zeitwerk (>= 1.0) silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) @@ -341,11 +593,11 @@ GEM token-resolver (2.0.5) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.14) - tree_haver (7.1.0) - citrus (~> 3.0) - parslet (~> 2.0) - tree_sitter_language_pack (>= 1.13.2, < 2.0) - version_gem (~> 1.1, >= 1.1.9) + toml (0.3.0) + parslet (>= 1.8.0, < 3.0.0) + toml-rb (4.2.0) + citrus (~> 3.0, > 3.0) + racc (~> 1.7) tree_sitter_language_pack (1.13.3-x86_64-linux) sorbet-runtime (~> 0.5) tsort (0.2.0) @@ -391,24 +643,45 @@ DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) appraisal2-rubocop (~> 1.0, >= 1.0.0) + ast-crispr! + ast-crispr-markdown-markly! + ast-crispr-ruby-prism! + ast-merge! + ast-merge-git! + ast-template! + bash-merge! benchmark (~> 0.5, >= 0.5.0) + binary-merge! bundler-audit (~> 0.9.3) cgi (~> 0.5) + citrus-toml-merge! + commonmarker-merge! debug (>= 1.1) + dotenv-merge! erb (~> 6.0, >= 6.0.6) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.0) + go-merge! irb (~> 1.17) + json-merge! kettle-dev (~> 2.0, >= 2.2.25) + kettle-drift (~> 1.0, >= 1.0.6) + kettle-jem! kettle-soup-cover (~> 3.0, >= 3.0.3) kettle-test (~> 2.0, >= 2.0.9) kramdown-merge! kramdown-parser-gfm (~> 1.1) markdown-merge! + markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) + parslet-toml-merge! + plain-merge! + prism-merge! + psych-merge! rake (~> 13.0) rbs (>= 3.0) + rbs-merge! rdoc (~> 6.11) reek (~> 6.5, >= 6.5.0) require_bench (~> 1.0, >= 1.0.4) @@ -419,19 +692,27 @@ DEPENDENCIES rubocop-on-rbs (~> 2.0, >= 2.0.0) rubocop-packaging (~> 0.6, >= 0.6.0) rubocop-ruby3_2 (~> 3.0, >= 3.0.6) + ruby-merge! ruby-progressbar (~> 1.13) + rust-merge! + smorg-rb! standard (~> 1.56, >= 1.56.0) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) + toml-merge! + tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) + typescript-merge! webrick (~> 1.9) yaml-converter (~> 0.2, >= 0.2.3) + yaml-merge! yard (~> 0.9, >= 0.9.45) yard-fence (~> 0.9, >= 0.9.6) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) yard-timekeeper (~> 0.2, >= 0.2.4) yard-yaml (~> 0.2, >= 0.2.3) + zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af @@ -439,20 +720,31 @@ CHECKSUMS appraisal2 (3.2.0) sha256=ccd0b767ac4060cd7af6d16747459b6990f49c39c7b4fb1f7d1146b1e97c492f appraisal2-rubocop (1.0.0) sha256=b71410fbb014befda5340605a605b7f6f3f012739baf0acc5b4351b592c3258d ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 + ast-crispr (7.1.0) + ast-crispr-markdown-markly (7.1.0) + ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) + ast-merge-git (7.1.0) + ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 + bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd + binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 + citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 + commonmarker (2.9.0-x86_64-linux) sha256=8cfe92970eef585a19ddf6613224b91cab64d6029834661bda801f877c9c7f43 + commonmarker-merge (7.1.0) concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 + dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -465,11 +757,15 @@ CHECKSUMS gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f + go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 + json-merge (7.1.0) kettle-dev (2.3.8) sha256=9d716ff21c660a730cb4e8d41e2e2f0630a28167a354b6e2924e242102aef72c + kettle-drift (1.0.6) sha256=46eda08fa4411d1f3c6682a95eef1c9df4e94611b3949f49d4c7b43c0ed356a3 + kettle-jem (7.1.0) kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f kettle-soup-cover (3.0.4) kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 @@ -481,6 +777,8 @@ CHECKSUMS lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 markdown-merge (7.1.0) + markly (0.16.0) sha256=6f70d79e385b1efc9e171f74c81628826259039fe6c778e03c3924c71dac5511 + markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-x86_64-linux-gnu) sha256=379fae440b28915e3f19d752ce2dcf8465ed2b2fbefd2a7ca0dd497bc981a06a nomono (1.0.9) @@ -490,15 +788,20 @@ CHECKSUMS parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 + parslet-toml-merge (7.1.0) + plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 + prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 + psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 + rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb @@ -533,15 +836,19 @@ CHECKSUMS rubocop-rspec_rails (2.32.0) sha256=4a0d641c72f6ebb957534f539d9d0a62c47abd8ce0d0aeee1ef4701e892a9100 rubocop-ruby3_2 (3.0.7) sha256=f53dd6d286fb05186214fc6ec116783e7f837030918e8931c05de773e98f8466 rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 + ruby-merge (7.1.0) ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 + rust-merge (7.1.0) + service_actor (3.9.4) sha256=e63b523630b9a7e62959b2a90113b08d2565b5de9c148557b281ef847c9539ce silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed + smorg-rb (7.1.0) sorbet-runtime (0.6.13347) sha256=54e7221d9f4b63f58aec79f3043752a9ba7810347c6ae0d903531591cc2d5f01 standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b @@ -555,16 +862,21 @@ CHECKSUMS thor (1.5.0) sha256=e3a9e55fe857e44859ce104a84675ab6e8cd59c650a49106a05f55f136425e73 timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 - token-resolver (2.0.5) + token-resolver (2.0.5) sha256=b852f924287ffb58a440856e862b056c8ad97e74b4b2526cee43e0771f40c25c + toml (0.3.0) sha256=0a91d0f76a9036e84e44f95693b12f58d358c1df3ac8e3b5271f2056ecc6e4b9 + toml-merge (7.1.0) + toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 + typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 webrick (1.9.2) sha256=beb4a15fc474defed24a3bda4ffd88a490d517c9e4e6118c3edce59e45864131 yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 + yaml-merge (7.1.0) yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd @@ -572,6 +884,7 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 + zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH diff --git a/gems/smorg-rb/.kettle-drift.lock b/gems/smorg-rb/.kettle-drift.lock index 2495214ec..b649810f6 100644 --- a/gems/smorg-rb/.kettle-drift.lock +++ b/gems/smorg-rb/.kettle-drift.lock @@ -52,14 +52,5 @@ 93 ] } - ], - "vendored_gems_env: 'VENDORED_GEMS',\nvendor_gem_dir_env: 'VENDOR_GEM_DIR',": [ - { - "file": "gemfiles/modular/templating_local.gemfile", - "lines": [ - 55, - 66 - ] - } ] } diff --git a/gems/smorg-rb/.rubocop_gradual.lock b/gems/smorg-rb/.rubocop_gradual.lock index 2167b9b80..831bba3d6 100644 --- a/gems/smorg-rb/.rubocop_gradual.lock +++ b/gems/smorg-rb/.rubocop_gradual.lock @@ -15,13 +15,20 @@ [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] ], + "gemfiles/modular/cgi/r4/v0.5.gemfile:367169322": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/cgi/vHEAD.gemfile:2729540777": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], "gemfiles/modular/erb/r2/v3.0.gemfile:1688285565": [ [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] ], - "gemfiles/modular/erb/r3/v5.0.gemfile:2150258305": [ + "gemfiles/modular/erb/r3/v5.0.gemfile:2394062339": [ [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] ], - "gemfiles/modular/erb/r4/v5.0.gemfile:2150258305": [ + "gemfiles/modular/erb/r4/v5.0.gemfile:2394062339": [ [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] ], "gemfiles/modular/erb/vHEAD.gemfile:981929959": [ @@ -57,6 +64,13 @@ [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] ], + "gemfiles/modular/webrick/r4/v1.9.gemfile:3092661193": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/webrick/vHEAD.gemfile:3867684682": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], "gemfiles/modular/x_std_libs.gemfile:2324400122": [ [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] ], @@ -66,19 +80,19 @@ "gemfiles/modular/x_std_libs/r3/libs.gemfile:4030570297": [ [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] ], - "gemfiles/modular/x_std_libs/r4/libs.gemfile:909736663": [ + "gemfiles/modular/x_std_libs/r4/libs.gemfile:732451732": [ [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] ], - "gemfiles/modular/x_std_libs/vHEAD.gemfile:907917303": [ + "gemfiles/modular/x_std_libs/vHEAD.gemfile:2390363993": [ [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] ], "lib/smorg-rb.rb:3972809897": [ [1, 1, 0, "Naming/FileName: The name of this source file (`smorg-rb.rb`) should use snake_case.", 5381] ], - "lib/smorg/rb.rb:1319799555": [ + "lib/smorg/rb.rb:1354671286": [ [18, 3, 9, "Style/Documentation: Missing top-level documentation comment for `module Smorg::RB`.", 4021240623], - [18, 3, 32869, "Metrics/ModuleLength: Module has too many lines. [840/100]", 1685453755], + [18, 3, 33704, "Metrics/ModuleLength: Module has too many lines. [859/100]", 1685453755], [26, 5, 660, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `run` is too high. [8/7]", 1065401429], [26, 5, 660, "Metrics/MethodLength: Method has too many lines. [20/10]", 1065401429], [50, 121, 41, "Layout/LineLength: Line is too long. [161/120]", 2633772911], @@ -119,31 +133,31 @@ [493, 5, 468, "Metrics/MethodLength: Method has too many lines. [12/10]", 1242862675], [509, 5, 877, "Metrics/AbcSize: Assignment Branch Condition size for `parse_diff_driver_options` is too high. [<7, 18, 9> 21.31/17]", 2253944408], [509, 5, 877, "Metrics/MethodLength: Method has too many lines. [26/10]", 2253944408], - [572, 5, 776, "Metrics/MethodLength: Method has too many lines. [25/10]", 1858237241], - [600, 5, 609, "Metrics/MethodLength: Method has too many lines. [12/10]", 2842480613], - [616, 5, 1154, "Metrics/MethodLength: Method has too many lines. [27/10]", 1412829863], - [616, 22, 129, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [7/5]", 7400119], - [647, 5, 1483, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `merge_markdown` is too high. [8/7]", 27505255], - [647, 5, 1483, "Metrics/MethodLength: Method has too many lines. [37/10]", 27505255], - [688, 5, 1479, "Metrics/AbcSize: Assignment Branch Condition size for `markdown_theirs_changes_already_present?` is too high. [<16, 31, 12> 36.89/17]", 535500337], - [688, 5, 1479, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `markdown_theirs_changes_already_present?` is too high. [12/7]", 535500337], - [688, 5, 1479, "Metrics/MethodLength: Method has too many lines. [22/10]", 535500337], - [688, 5, 1479, "Metrics/PerceivedComplexity: Perceived complexity for `markdown_theirs_changes_already_present?` is too high. [12/8]", 535500337], - [762, 5, 355, "Metrics/MethodLength: Method has too many lines. [11/10]", 39262550], - [776, 5, 1562, "Metrics/AbcSize: Assignment Branch Condition size for `merge3_result` is too high. [<1, 24, 5> 24.54/17]", 1515385192], - [776, 5, 1562, "Metrics/MethodLength: Method has too many lines. [40/10]", 1515385192], - [819, 5, 450, "Metrics/MethodLength: Method has too many lines. [14/10]", 378355367], - [846, 5, 668, "Metrics/AbcSize: Assignment Branch Condition size for `attribute_files_for_path` is too high. [<5, 17, 8> 19.44/17]", 4267311100], - [846, 5, 668, "Metrics/MethodLength: Method has too many lines. [14/10]", 4267311100], - [864, 5, 885, "Metrics/AbcSize: Assignment Branch Condition size for `apply_attributes` is too high. [<12, 16, 11> 22.83/17]", 2340440569], - [864, 5, 885, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `apply_attributes` is too high. [12/7]", 2340440569], - [864, 5, 885, "Metrics/MethodLength: Method has too many lines. [21/10]", 2340440569], - [864, 5, 885, "Metrics/PerceivedComplexity: Perceived complexity for `apply_attributes` is too high. [10/8]", 2340440569], - [901, 5, 772, "Metrics/AbcSize: Assignment Branch Condition size for `find_conflict_regions` is too high. [<12, 16, 7> 21.19/17]", 2134600144], - [901, 5, 772, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `find_conflict_regions` is too high. [8/7]", 2134600144], - [901, 5, 772, "Metrics/MethodLength: Method has too many lines. [18/10]", 2134600144], - [901, 5, 772, "Metrics/PerceivedComplexity: Perceived complexity for `find_conflict_regions` is too high. [9/8]", 2134600144], - [926, 121, 11, "Layout/LineLength: Line is too long. [131/120]", 1186836706] + [594, 5, 776, "Metrics/MethodLength: Method has too many lines. [25/10]", 1858237241], + [622, 5, 609, "Metrics/MethodLength: Method has too many lines. [12/10]", 2842480613], + [638, 5, 1154, "Metrics/MethodLength: Method has too many lines. [27/10]", 1412829863], + [638, 22, 129, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [7/5]", 7400119], + [669, 5, 1483, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `merge_markdown` is too high. [8/7]", 27505255], + [669, 5, 1483, "Metrics/MethodLength: Method has too many lines. [37/10]", 27505255], + [710, 5, 1479, "Metrics/AbcSize: Assignment Branch Condition size for `markdown_theirs_changes_already_present?` is too high. [<16, 31, 12> 36.89/17]", 535500337], + [710, 5, 1479, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `markdown_theirs_changes_already_present?` is too high. [12/7]", 535500337], + [710, 5, 1479, "Metrics/MethodLength: Method has too many lines. [22/10]", 535500337], + [710, 5, 1479, "Metrics/PerceivedComplexity: Perceived complexity for `markdown_theirs_changes_already_present?` is too high. [12/8]", 535500337], + [784, 5, 355, "Metrics/MethodLength: Method has too many lines. [11/10]", 39262550], + [798, 5, 1562, "Metrics/AbcSize: Assignment Branch Condition size for `merge3_result` is too high. [<1, 24, 5> 24.54/17]", 1515385192], + [798, 5, 1562, "Metrics/MethodLength: Method has too many lines. [40/10]", 1515385192], + [841, 5, 450, "Metrics/MethodLength: Method has too many lines. [14/10]", 378355367], + [868, 5, 668, "Metrics/AbcSize: Assignment Branch Condition size for `attribute_files_for_path` is too high. [<5, 17, 8> 19.44/17]", 4267311100], + [868, 5, 668, "Metrics/MethodLength: Method has too many lines. [14/10]", 4267311100], + [886, 5, 885, "Metrics/AbcSize: Assignment Branch Condition size for `apply_attributes` is too high. [<12, 16, 11> 22.83/17]", 2340440569], + [886, 5, 885, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `apply_attributes` is too high. [12/7]", 2340440569], + [886, 5, 885, "Metrics/MethodLength: Method has too many lines. [21/10]", 2340440569], + [886, 5, 885, "Metrics/PerceivedComplexity: Perceived complexity for `apply_attributes` is too high. [10/8]", 2340440569], + [923, 5, 772, "Metrics/AbcSize: Assignment Branch Condition size for `find_conflict_regions` is too high. [<12, 16, 7> 21.19/17]", 2134600144], + [923, 5, 772, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `find_conflict_regions` is too high. [8/7]", 2134600144], + [923, 5, 772, "Metrics/MethodLength: Method has too many lines. [18/10]", 2134600144], + [923, 5, 772, "Metrics/PerceivedComplexity: Perceived complexity for `find_conflict_regions` is too high. [9/8]", 2134600144], + [948, 121, 11, "Layout/LineLength: Line is too long. [131/120]", 1186836706] ], "smorg-rb.gemspec:3816851383": [ [133, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 2821357214], @@ -151,17 +165,18 @@ [149, 121, 29, "Layout/LineLength: Line is too long. [149/120]", 981994949], [156, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 4229808912] ], - "spec/cli_spec.rb:1901524271": [ - [7, 1, 21116, "Metrics/BlockLength: Block has too many lines. [404/25]", 93750465], - [39, 15, 2, "Style/SpecialGlobalVars: Prefer `$CHILD_STATUS` from the stdlib 'English' module (don't forget to require it) over `$?`.", 5858718], - [103, 5, 7, "Style/MultilineBlockChain: Avoid multi-line chains of blocks.", 4045560504], - [145, 3, 1104, "Metrics/BlockLength: Block has too many lines. [31/25]", 2261544718], - [252, 3, 2568, "Metrics/BlockLength: Block has too many lines. [42/25]", 534998881], - [253, 5, 2506, "Metrics/BlockLength: Block has too many lines. [40/25]", 125340559], - [254, 7, 2429, "Metrics/BlockLength: Block has too many lines. [38/25]", 2347531946], - [316, 3, 1439, "Metrics/BlockLength: Block has too many lines. [28/25]", 3153214813], - [349, 3, 1958, "Metrics/BlockLength: Block has too many lines. [34/25]", 955598497], - [350, 5, 1872, "Metrics/BlockLength: Block has too many lines. [32/25]", 1095476741], - [351, 7, 1799, "Metrics/BlockLength: Block has too many lines. [30/25]", 1248712702] + "spec/cli_spec.rb:3322052048": [ + [7, 1, 22687, "Metrics/BlockLength: Block has too many lines. [429/25]", 1468636595], + [46, 15, 2, "Style/SpecialGlobalVars: Prefer `$CHILD_STATUS` from the stdlib 'English' module (don't forget to require it) over `$?`.", 5858718], + [108, 5, 7, "Style/MultilineBlockChain: Avoid multi-line chains of blocks.", 4045560504], + [150, 3, 1104, "Metrics/BlockLength: Block has too many lines. [31/25]", 2261544718], + [257, 3, 2568, "Metrics/BlockLength: Block has too many lines. [42/25]", 534998881], + [258, 5, 2506, "Metrics/BlockLength: Block has too many lines. [40/25]", 125340559], + [259, 7, 2429, "Metrics/BlockLength: Block has too many lines. [38/25]", 2347531946], + [321, 3, 1439, "Metrics/BlockLength: Block has too many lines. [28/25]", 3153214813], + [354, 3, 1958, "Metrics/BlockLength: Block has too many lines. [34/25]", 955598497], + [355, 5, 1872, "Metrics/BlockLength: Block has too many lines. [32/25]", 1095476741], + [356, 7, 1799, "Metrics/BlockLength: Block has too many lines. [30/25]", 1248712702], + [474, 31, 2, "Style/SpecialGlobalVars: Prefer `$CHILD_STATUS` from the stdlib 'English' module (don't forget to require it) over `$?`.", 5858718] ] } diff --git a/gems/smorg-rb/Gemfile b/gems/smorg-rb/Gemfile index 1b2607cc1..024257b48 100644 --- a/gems/smorg-rb/Gemfile +++ b/gems/smorg-rb/Gemfile @@ -6,7 +6,7 @@ # kettle-jem will then preserve content between those markers across template runs. # kettle-jem:unfreeze -source "https://gem.coop" +source 'https://gem.coop' git_source(:codeberg) { |repo_name| "https://codeberg.org/#{repo_name}" } git_source(:gitlab) { |repo_name| "https://gitlab.com/#{repo_name}" } @@ -19,8 +19,8 @@ git_source(:gitlab) { |repo_name| "https://gitlab.com/#{repo_name}" } gemspec # Local workspace dependency wiring for *_local.gemfile overrides -nomono_requirements = ["~> 1.0", ">= 1.0.8"] -gem "nomono", *nomono_requirements, require: false # ruby >= 2.2 +nomono_requirements = ['~> 1.0', '>= 1.0.8'] +gem 'nomono', *nomono_requirements, require: false # ruby >= 2.2 # Direct sibling dependencies (env-switched via STRUCTUREDMERGE_DEV) direct_sibling_gems = %w[ @@ -32,50 +32,46 @@ direct_sibling_gems = %w[ markly-merge plain-merge ] -direct_sibling_dev = ENV.fetch("STRUCTUREDMERGE_DEV", "") +direct_sibling_dev = ENV.fetch('STRUCTUREDMERGE_DEV', '') direct_sibling_local = !direct_sibling_dev.empty? && !%w[false 0 no off].include?(direct_sibling_dev.downcase) -direct_sibling_templating = ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? +direct_sibling_templating = ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero?) - direct_sibling_dev_was_set = ENV.key?("STRUCTUREDMERGE_DEV") - direct_sibling_dev_original = ENV.fetch("STRUCTUREDMERGE_DEV", nil) + (direct_sibling_local || + ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) + direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') + direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) begin nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path("Gemfile.lock", __dir__) + nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == "nomono" } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - if nomono_locked - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] - end - end - Kernel.send(:gem, "nomono", *nomono_activation_requirements) - require "nomono/bundler" - if direct_sibling_templating && !direct_sibling_local - ENV["STRUCTUREDMERGE_DEV"] = File.expand_path("..", __dir__) + Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked end + Kernel.send(:gem, 'nomono', *nomono_activation_requirements) + require 'nomono/bundler' + ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local eval_nomono_gems( gems: direct_sibling_gems, - prefix: "STRUCTUREDMERGE", - path_env: "STRUCTUREDMERGE_DEV", - root: ["src", "my", "structuredmerge"] + prefix: 'STRUCTUREDMERGE', + path_env: 'STRUCTUREDMERGE_DEV', + root: %w[src my structuredmerge] ) rescue LoadError - warn "Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies." + warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' ensure if direct_sibling_templating && !direct_sibling_local if direct_sibling_dev_was_set - ENV["STRUCTUREDMERGE_DEV"] = direct_sibling_dev_original + ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original else - ENV.delete("STRUCTUREDMERGE_DEV") + ENV.delete('STRUCTUREDMERGE_DEV') end end end @@ -122,28 +118,28 @@ if direct_sibling_gems.any? && end # Use released TSLP with the Ruby ABI platform-gem fix. -gem "tree_sitter_language_pack", "~> 1.13", ">= 1.13.3" +gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' # Templating (env-switched: STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local paths) -eval_gemfile "gemfiles/modular/templating.gemfile" if ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? +eval_gemfile 'gemfiles/modular/templating.gemfile' if ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? # Debugging -eval_gemfile "gemfiles/modular/debug.gemfile" +eval_gemfile 'gemfiles/modular/debug.gemfile' # Code Coverage (env-switched: KETTLE_DEV_DEV=true for local paths) -eval_gemfile "gemfiles/modular/coverage.gemfile" +eval_gemfile 'gemfiles/modular/coverage.gemfile' # Linting -eval_gemfile "gemfiles/modular/style.gemfile" +eval_gemfile 'gemfiles/modular/style.gemfile' # Documentation -eval_gemfile "gemfiles/modular/documentation.gemfile" +eval_gemfile 'gemfiles/modular/documentation.gemfile' # Optional -eval_gemfile "gemfiles/modular/optional.gemfile" +eval_gemfile 'gemfiles/modular/optional.gemfile' ### Std Lib Extracted Gems -eval_gemfile "gemfiles/modular/x_std_libs.gemfile" +eval_gemfile 'gemfiles/modular/x_std_libs.gemfile' # See unlocked_deps appraisal for more details on irb inclusion -gem "irb", "~> 1.17" # ruby >= 2.7 +gem 'irb', '~> 1.17' # ruby >= 2.7 diff --git a/gems/smorg-rb/Gemfile.lock b/gems/smorg-rb/Gemfile.lock index 0291131b6..273bf7bd1 100644 --- a/gems/smorg-rb/Gemfile.lock +++ b/gems/smorg-rb/Gemfile.lock @@ -12,31 +12,7 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly - specs: - ast-crispr-markdown-markly (7.1.0) - ast-crispr (= 7.1.0) - markly-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism - specs: - ast-crispr-ruby-prism (7.1.0) - ast-crispr (= 7.1.0) - prism-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr - specs: - ast-crispr (7.1.0) - ast-merge (= 7.1.0) - service_actor (~> 3.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git specs: ast-merge-git (7.1.0) ast-merge (= 7.1.0) @@ -44,7 +20,7 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/ast-merge specs: ast-merge (7.1.0) benchmark @@ -53,53 +29,7 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template - specs: - ast-template (7.1.0) - ast-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge - specs: - bash-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge - specs: - binary-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge - specs: - citrus-toml-merge (7.1.0) - toml-merge (= 7.1.0) - toml-rb (~> 4.1) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge - specs: - commonmarker-merge (7.1.0) - commonmarker (~> 2.2) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge - specs: - dotenv-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/go-merge specs: go-merge (7.1.0) ast-merge (= 7.1.0) @@ -107,7 +37,7 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/json-merge specs: json-merge (7.1.0) ast-merge (= 7.1.0) @@ -115,7 +45,7 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem specs: kettle-jem (7.1.0) addressable (>= 2.8, < 3) @@ -144,23 +74,7 @@ PATH yaml-merge (= 7.1.0) PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge - specs: - kramdown-merge (7.1.0) - kramdown (~> 2.5) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge - specs: - markdown-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/markly-merge specs: markly-merge (7.1.0) markdown-merge (= 7.1.0) @@ -168,103 +82,13 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge - specs: - parslet-toml-merge (7.1.0) - toml (~> 0.3) - toml-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/plain-merge specs: plain-merge (7.1.0) ast-merge (= 7.1.0) tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge - specs: - prism-merge (7.1.0) - prism (~> 1.6) - ruby-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge - specs: - psych-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge - specs: - rbs-merge (7.1.0) - ast-merge (= 7.1.0) - rbs (>= 3.10) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge - specs: - ruby-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge - specs: - rust-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge - specs: - toml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver - specs: - tree_haver (7.1.0) - citrus (~> 3.0) - parslet (~> 2.0) - tree_sitter_language_pack (>= 1.13.2, < 2.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge - specs: - typescript-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge - specs: - yaml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge - specs: - zip-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - GEM remote: https://gem.coop/ specs: @@ -275,17 +99,46 @@ GEM bundler (>= 1.17.3) rake (>= 10) thor (>= 0.14) + appraisal2-rubocop (1.0.0) + appraisal2 (>= 3.1.4) + rubocop (>= 1.0) + version_gem (~> 1.1, >= 1.1.14) ast (2.4.3) + ast-crispr (7.1.0) + ast-merge (= 7.1.0) + service_actor (~> 3.9) + version_gem (~> 1.1, >= 1.1.9) + ast-crispr-markdown-markly (7.1.0) + ast-crispr (= 7.1.0) + markly-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + ast-crispr-ruby-prism (7.1.0) + ast-crispr (= 7.1.0) + prism-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) backports (3.25.3) + bash-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) benchmark (0.5.0) bigdecimal (4.1.2) bundler-audit (0.9.3) bundler (>= 1.2.0) thor (~> 1.0) + cgi (0.5.2) citrus (3.0.2) + citrus-toml-merge (7.1.0) + toml-merge (= 7.1.0) + toml-rb (~> 4.1) + version_gem (~> 1.1, >= 1.1.9) cmdparse (3.0.7) commonmarker (2.9.0-x86_64-linux) - concurrent-ruby (1.3.7) + commonmarker-merge (7.1.0) + commonmarker (~> 2.2) + markdown-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + concurrent-ruby (1.3.8) date (3.5.1) debug (1.11.1) irb (~> 1.10) @@ -293,7 +146,10 @@ GEM delegate (0.6.1) diff-lcs (1.6.2) diffy (3.4.4) - docile (1.4.1) + dotenv-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) dry-configurable (1.4.0) dry-core (~> 1.0) zeitwerk (~> 2.6) @@ -324,7 +180,7 @@ GEM dry-logic (~> 1.4) zeitwerk (~> 2.6) emoji_regex (15.0.0) - erb (6.0.5) + erb (6.0.6) gem_bench (2.0.5) bundler (>= 1.14) version_gem (~> 1.1, >= 1.1.4) @@ -343,24 +199,20 @@ GEM rdoc (>= 4.0.0) reline (>= 0.4.2) json (2.21.1) - kettle-dev (2.3.7) + kettle-dev (2.3.8) emoji_regex (>= 15.0) kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) - kettle-drift (1.0.6) - version_gem (~> 1.1, >= 1.1.14) - kettle-rb (0.1.4) - kettle-soup-cover (1.1.3) - simplecov (~> 0.22) - simplecov-cobertura (~> 3.0) - simplecov-console (~> 0.9, >= 0.9.3) - simplecov-html (~> 0.13, >= 0.13.1) - simplecov-lcov (~> 0.8) + kettle-rb (0.1.5) + kettle-soup-cover (3.0.4) + kettle-wash (~> 0.1, >= 0.1.0) + simplecov (>= 1.0) + simplecov-cobertura (>= 4.0) + simplecov-console (~> 0.9, >= 0.9.5) simplecov-rcov (~> 0.3, >= 0.3.7) - simplecov_json_formatter (~> 0.1, >= 0.1.4) - version_gem (~> 1.1, >= 1.1.9) - kettle-test (2.0.11) + simplecov_lcov_formatter (~> 0.9, >= 0.9.0) + kettle-test (2.0.12) appraisal2 (~> 3.0, >= 3.0.6) backports (~> 3.0) rspec (~> 3.0) @@ -371,13 +223,23 @@ GEM silent_stream (~> 1.0, >= 1.0.12) timecop-rspec (~> 1.0, >= 1.0.3) turbo_tests2 (~> 3.1, >= 3.1.12) + kettle-wash (0.1.1) + version_gem (~> 1.1, >= 1.1.14) kramdown (2.5.2) rexml (>= 3.4.4) + kramdown-merge (7.1.0) + kramdown (~> 2.5) + markdown-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) kramdown-parser-gfm (1.1.0) kramdown (~> 2.0) language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) + markdown-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) markly (0.16.0) mutex_m (0.3.0) nokogiri (1.19.4-x86_64-linux-gnu) @@ -396,9 +258,18 @@ GEM prettyprint prettyprint (0.2.0) prism (1.9.0) + prism-merge (7.1.0) + prism (~> 1.6) + ruby-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) psych (5.4.0) date stringio + psych-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + yaml-merge (= 7.1.0) public_suffix (7.0.5) racc (1.8.1) rainbow (3.1.1) @@ -407,6 +278,11 @@ GEM logger prism (>= 1.6.0) tsort + rbs-merge (7.1.0) + ast-merge (= 7.1.0) + rbs (>= 3.10) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) rdoc (6.17.0) erb psych (>= 4.0.0) @@ -458,6 +334,14 @@ GEM rubocop-ast (1.50.0) parser (>= 3.3.7.2) prism (~> 1.7) + rubocop-capybara (2.23.0) + lint_roller (~> 1.1) + rubocop (~> 1.81) + rubocop-env (0.1.0) + rubocop + rubocop-factory_bot (2.28.0) + lint_roller (~> 1.1) + rubocop (~> 1.72, >= 1.72.1) rubocop-gradual (0.4.0) benchmark diff-lcs (>= 1.2.0, < 2.0) @@ -465,13 +349,26 @@ GEM parallel (~> 1.10) rainbow (>= 2.2.2, < 4.0) rubocop (~> 1.0) - rubocop-lts (24.1.0) - rubocop-ruby3_2 (>= 3.0.0, < 4) - standard-rubocop-lts (>= 2.0.2, < 3) - version_gem (>= 1.1.2, < 3) + rubocop-lts (24.2.2) + rubocop-ruby3_2 (~> 3.0, >= 3.0.1) + standard-rubocop-lts (~> 2.0, >= 2.0.3) + version_gem (~> 1.1, >= 1.1.13) + rubocop-lts-rspec (1.0.5) + rubocop (~> 1.84, >= 1.84.2) + rubocop-env (~> 0.1, >= 0.1.0) + rubocop-factory_bot (~> 2.28, >= 2.28.0) + rubocop-rspec (~> 3.9, >= 3.9.0) + rubocop-rspec-extra (~> 0.3, >= 0.3.0) + standard (~> 1.54, >= 1.54.0) + standard-rspec (~> 0.5, >= 0.5.0) + version_gem (~> 1.1, >= 1.1.13) rubocop-md (2.0.4) lint_roller (~> 1.1) rubocop (>= 1.72.1) + rubocop-minitest (0.40.0) + lint_roller (~> 1.1) + rubocop (>= 1.75.0, < 2.0) + rubocop-ast (>= 1.38.0, < 2.0) rubocop-on-rbs (2.0.0) lint_roller (~> 1.1) rbs (~> 4.0) @@ -491,6 +388,13 @@ GEM lint_roller (~> 1.1) regexp_parser (>= 2.0) rubocop (~> 1.86, >= 1.86.2) + rubocop-rspec-extra (0.3.0) + lint_roller (~> 1.1) + rubocop (>= 1.72.1, < 2.0) + rubocop-rspec_rails (2.32.0) + lint_roller (~> 1.1) + rubocop (~> 1.72, >= 1.72.1) + rubocop-rspec (~> 3.5) rubocop-ruby3_2 (3.0.7) rubocop-gradual (~> 0.3, >= 0.3.6) rubocop-md (~> 2.0, >= 2.0.4) @@ -502,6 +406,10 @@ GEM lint_roller (~> 1.1) rubocop (~> 1.72, >= 1.72.1) rubocop-ast (>= 1.44.0, < 2.0) + ruby-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) ruby-progressbar (1.13.0) ruby_engine (2.0.3) ruby_version (1.0.3) @@ -510,22 +418,18 @@ GEM silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) - simplecov (0.22.0) - docile (~> 1.1) - simplecov-html (~> 0.11) - simplecov_json_formatter (~> 0.1) - simplecov-cobertura (3.2.0) + simplecov (1.0.2) + simplecov-cobertura (4.0.0) rexml - simplecov (~> 0.19) + simplecov (~> 1.0) simplecov-console (0.9.5) ansi simplecov terminal-table - simplecov-html (0.13.2) - simplecov-lcov (0.9.0) simplecov-rcov (0.3.7) simplecov (>= 0.4.1) - simplecov_json_formatter (0.1.4) + simplecov_lcov_formatter (0.9.0) + simplecov (>= 0.18) sorbet-runtime (0.6.13347) standard (1.56.0) language_server-protocol (~> 3.17.0.2) @@ -539,6 +443,12 @@ GEM standard-performance (1.9.0) lint_roller (~> 1.1) rubocop-performance (~> 1.26.0) + standard-rspec (0.5.0) + lint_roller (>= 1.0) + rubocop-capybara (~> 2.23) + rubocop-factory_bot (~> 2.27) + rubocop-rspec (~> 3.9) + rubocop-rspec_rails (~> 2.31) standard-rubocop-lts (2.0.10) standard (~> 1.54, >= 1.54.0) standard-custom (~> 1.0, >= 1.0.2) @@ -556,14 +466,21 @@ GEM delegate (~> 0.1) rspec (~> 3.0) timecop (>= 0.7, < 1) - token-resolver (2.0.4) + token-resolver (2.0.5) parslet (~> 2.0) - version_gem (~> 1.1, >= 1.1.13) - toml (0.3.0) - parslet (>= 1.8.0, < 3.0.0) + version_gem (~> 1.1, >= 1.1.14) + toml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) toml-rb (4.2.0) citrus (~> 3.0, > 3.0) racc (~> 1.7) + tree_haver (7.1.0) + citrus (~> 3.0) + parslet (~> 2.0) + tree_sitter_language_pack (>= 1.13.2, < 2.0) + version_gem (~> 1.1, >= 1.1.9) tree_sitter_language_pack (1.13.3-x86_64-linux) sorbet-runtime (~> 0.5) tsort (0.2.0) @@ -575,11 +492,16 @@ GEM unicode-emoji (~> 4.1) unicode-emoji (4.2.0) version_gem (1.1.14) + webrick (1.9.2) yaml-converter (0.2.3) hexapdf (>= 1.8, < 2) kramdown (>= 2.4, < 3) kramdown-parser-gfm (~> 1.1) version_gem (~> 1.1, >= 1.1.13) + yaml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) yard (0.9.45) yard-fence (0.9.6) rdoc (>= 6.11, < 8) @@ -607,103 +529,84 @@ PLATFORMS DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) - ast-crispr! - ast-crispr-markdown-markly! - ast-crispr-ruby-prism! + appraisal2-rubocop (~> 1.0, >= 1.0.0) ast-merge! ast-merge-git! - ast-template! - bash-merge! benchmark (~> 0.5, >= 0.5.0) - binary-merge! bundler-audit (~> 0.9.3) - citrus-toml-merge! - commonmarker-merge! + cgi (~> 0.5) debug (>= 1.1) - dotenv-merge! - erb (~> 6.0, >= 6.0.4) + erb (~> 6.0, >= 6.0.6) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.0) go-merge! irb (~> 1.17) json-merge! kettle-dev (~> 2.0, >= 2.2.25) - kettle-drift (~> 1.0, >= 1.0.5) kettle-jem! - kettle-soup-cover (~> 1.0, >= 1.1.3) + kettle-soup-cover (~> 3.0, >= 3.0.3) kettle-test (~> 2.0, >= 2.0.9) - kramdown (~> 2.5, >= 2.5.1) - kramdown-merge! + kramdown (~> 2.5, >= 2.5.2) kramdown-parser-gfm (~> 1.1) - markdown-merge! markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) - parslet-toml-merge! plain-merge! - prism-merge! - psych-merge! rake (~> 13.0) rbs (>= 3.0) - rbs-merge! rdoc (~> 6.11) - reek (~> 6.5) + reek (~> 6.5, >= 6.5.0) require_bench (~> 1.0, >= 1.0.4) - rubocop-lts (~> 24.1.0) - rubocop-on-rbs (~> 2.0) + rubocop-gradual (~> 0.4, >= 0.4.0) + rubocop-lts (~> 24.2, >= 24.2.1) + rubocop-lts-rspec (~> 1.0, >= 1.0.5) + rubocop-minitest (~> 0.40, >= 0.40.0) + rubocop-on-rbs (~> 2.0, >= 2.0.0) rubocop-packaging (~> 0.6, >= 0.6.0) - rubocop-rspec (~> 3.6) - rubocop-ruby3_2 (~> 3.0.0) - ruby-merge! + rubocop-ruby3_2 (~> 3.0, >= 3.0.6) ruby-progressbar (~> 1.13) - rust-merge! smorg-rb! - standard (>= 1.50) + standard (~> 1.56, >= 1.56.0) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) - toml-merge! - tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) - typescript-merge! - yaml-converter (~> 0.1) - yaml-merge! - yard (~> 0.9, >= 0.9.44) - yard-fence (~> 0.9, >= 0.9.1) + webrick (~> 1.9) + yaml-converter (~> 0.2, >= 0.2.3) + yard (~> 0.9, >= 0.9.45) + yard-fence (~> 0.9, >= 0.9.6) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) - yard-timekeeper (~> 0.1) - yard-yaml (~> 0.1, >= 0.1.2) - zip-merge! + yard-timekeeper (~> 0.2, >= 0.2.4) + yard-yaml (~> 0.2, >= 0.2.3) CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af ansi (1.6.0) sha256=ac9ea0c0ea8d32fb4e271348e609963ac78882f34b73836c2a02b3622e666658 appraisal2 (3.2.0) sha256=ccd0b767ac4060cd7af6d16747459b6990f49c39c7b4fb1f7d1146b1e97c492f + appraisal2-rubocop (1.0.0) sha256=b71410fbb014befda5340605a605b7f6f3f012739baf0acc5b4351b592c3258d ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 ast-crispr (7.1.0) ast-crispr-markdown-markly (7.1.0) ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) ast-merge-git (7.1.0) - ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd - binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 + cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 commonmarker (2.9.0-x86_64-linux) sha256=8cfe92970eef585a19ddf6613224b91cab64d6029834661bda801f877c9c7f43 commonmarker-merge (7.1.0) - concurrent-ruby (1.3.7) sha256=4412caec3a5ea2e5fdc52076724c071a81f2c0593d83b2ac8cbb8ca63b3151b0 + concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 - docile (1.4.1) sha256=96159be799bfa73cdb721b840e9802126e4e03dfc26863db73647204c727f21e dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 @@ -713,7 +616,7 @@ CHECKSUMS dry-schema (1.16.0) sha256=cd3aaeabc0f1af66ec82a29096d4c4fb92a0a58b9dae29a22b1bbceb78985727 dry-types (1.9.1) sha256=baebeecdb9f8395d6c9d227b62011279440943e3ef2468fe8ccc1ba11467f178 emoji_regex (15.0.0) sha256=a508b2c0bee561169564e0aec96085020c900520d335e5533fd8e78e59493829 - erb (6.0.5) sha256=858e63488cb796c9daba8b6e9ff4b3879c395022049be9a66a8e00980e612eac + erb (6.0.6) sha256=a9b24986700f5bf127c4f297c5403c3ca41b83b0a316c0cd09a096b56e644ae5 gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f @@ -723,12 +626,12 @@ CHECKSUMS irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 json-merge (7.1.0) - kettle-dev (2.3.7) sha256=eb370113cd030d03cbe2d33b31c99858951017e5ad21a17e9ed89dc3770028ee - kettle-drift (1.0.6) + kettle-dev (2.3.8) sha256=9d716ff21c660a730cb4e8d41e2e2f0630a28167a354b6e2924e242102aef72c kettle-jem (7.1.0) - kettle-rb (0.1.4) sha256=9cef7ce4f7021666b7222292f29051e51eaf042e8a5db11f3f4dd72f74243fc1 - kettle-soup-cover (1.1.3) sha256=a373827da22a7131d093afd32945e5b7d7a10a01ebfdded8fd2cb8230d69c8ad - kettle-test (2.0.11) sha256=c710c90f7ab79d51f9452f0c09f5f90657e7a893f63583855c164d0b1b107ab2 + kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f + kettle-soup-cover (3.0.4) + kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 + kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 @@ -747,7 +650,6 @@ CHECKSUMS parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 - parslet-toml-merge (7.1.0) plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 @@ -778,35 +680,40 @@ CHECKSUMS rspec_junit_formatter (0.6.0) sha256=40dde674e6ae4e6cc0ff560da25497677e34fefd2338cc467a8972f602b62b15 rubocop (1.88.2) sha256=8def251c90cd955feb4daa3edc0ab56893250c4ce90ef81e6c80c03f9a939bbf rubocop-ast (1.50.0) sha256=b9ca88300da0803ee222ad20cdb30494c0a784eed06fdc35d254b06d662788db + rubocop-capybara (2.23.0) sha256=f9ea1ba3a7561ee8e88cf76fc378ce517ce5327155f305ee7b5c2500e5aee357 + rubocop-env (0.1.0) sha256=5ab9a259e71822bf514c8e900a9b68cc2f74ccc87d5493efcd03213f3068e718 + rubocop-factory_bot (2.28.0) sha256=4b17fc02124444173317e131759d195b0d762844a71a29fe8139c1105d92f0cb rubocop-gradual (0.4.0) sha256=9c7e584e6fef6c2539266a193a4572c970c22f99046fd6b0305bdde6228f96ad - rubocop-lts (24.1.0) sha256=9dcad4db2da2fe2f1f77f98c917d70e7c43eded703da14cd201d4be52a9272aa + rubocop-lts (24.2.2) sha256=be6c745e1bb61daebd6af3cc3227c60f95be9f642a080773cad7df14c5f9f174 + rubocop-lts-rspec (1.0.5) sha256=439552fd27440802cc499889e013bffa28aadc41adae5d4dfff3d984a2a809b4 rubocop-md (2.0.4) sha256=0d076b6b5e99dea2ddc928c4bd702497decb9a8400da7808091e02ebcafcfb93 + rubocop-minitest (0.40.0) sha256=353c698199115f12151144cf0b5a96f69bb9d77b660cf6536df2c4250c672a9d rubocop-on-rbs (2.0.0) sha256=ce74d1b3d5daead19f4b611623656c185821dfc9aed9c7079bb1e5d7d7c464be rubocop-packaging (0.6.0) sha256=fb92bd0fb48e6f8cdb1648d2249b0cd51c2497dcc87340132d22f01edbf558a7 rubocop-performance (1.26.1) sha256=cd19b936ff196df85829d264b522fd4f98b6c89ad271fa52744a8c11b8f71834 rubocop-rake (0.7.1) sha256=3797f2b6810c3e9df7376c26d5f44f3475eda59eb1adc38e6f62ecf027cbae4d rubocop-rspec (3.10.2) sha256=0b3e2ecc592cd10ecbf0095bb58d1e357905276e069643523cc19eb7495f65e2 + rubocop-rspec-extra (0.3.0) sha256=ee4b6484d0332a0d23c4a465eeb607e41888eb3d4ed479f850b9f5212514f787 + rubocop-rspec_rails (2.32.0) sha256=4a0d641c72f6ebb957534f539d9d0a62c47abd8ce0d0aeee1ef4701e892a9100 rubocop-ruby3_2 (3.0.7) sha256=f53dd6d286fb05186214fc6ec116783e7f837030918e8931c05de773e98f8466 rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 ruby-merge (7.1.0) ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 - rust-merge (7.1.0) service_actor (3.9.4) sha256=e63b523630b9a7e62959b2a90113b08d2565b5de9c148557b281ef847c9539ce silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 - simplecov (0.22.0) sha256=fe2622c7834ff23b98066bb0a854284b2729a569ac659f82621fc22ef36213a5 - simplecov-cobertura (3.2.0) sha256=70d702658677fcb20e5aceb6915ccf8bc62ff2ccd38b62b3ad5c9db5c0888740 + simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 + simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 - simplecov-html (0.13.2) sha256=bd0b8e54e7c2d7685927e8d6286466359b6f16b18cb0df47b508e8d73c777246 - simplecov-lcov (0.9.0) sha256=7a77a31e200a595ed4b0249493056efd0c920601f53d2ef135ca34ee796346cd simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc - simplecov_json_formatter (0.1.4) sha256=529418fbe8de1713ac2b2d612aa3daa56d316975d307244399fa4838c601b428 + simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed smorg-rb (7.1.0) sorbet-runtime (0.6.13347) sha256=54e7221d9f4b63f58aec79f3043752a9ba7810347c6ae0d903531591cc2d5f01 standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b standard-performance (1.9.0) sha256=49483d31be448292951d80e5e67cdcb576c2502103c7b40aec6f1b6e9c88e3f2 + standard-rspec (0.5.0) sha256=64d396524a65af47f5331b423d8cdd313e0267401647bb7892489ca89dad2973 standard-rubocop-lts (2.0.10) sha256=89708a505b7d8b24d2ac399a7520fcb9e764abc2ecb4289b631b5fe0e3b76617 stone_checksums (1.0.6) sha256=c775f830513d6c6ab26e31d1a5fbecd4c4e39002663d4d9f8fa96e97990b5298 stringio (3.2.0) sha256=c37cb2e58b4ffbd33fe5cd948c05934af997b36e0b6ca6fdf43afa234cf222e1 @@ -815,18 +722,17 @@ CHECKSUMS thor (1.5.0) sha256=e3a9e55fe857e44859ce104a84675ab6e8cd59c650a49106a05f55f136425e73 timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 - token-resolver (2.0.4) sha256=33b926958f504525bba3ed511ab66fbcbf8ef30390815e931436b30f27ffcad0 - toml (0.3.0) + token-resolver (2.0.5) sha256=b852f924287ffb58a440856e862b056c8ad97e74b4b2526cee43e0771f40c25c toml-merge (7.1.0) toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 - typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 + webrick (1.9.2) sha256=beb4a15fc474defed24a3bda4ffd88a490d517c9e4e6118c3edce59e45864131 yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 yaml-merge (7.1.0) yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 @@ -836,7 +742,6 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 - zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH diff --git a/gems/smorg-rb/README.md b/gems/smorg-rb/README.md index 13c7c2c1b..70b61eee7 100644 --- a/gems/smorg-rb/README.md +++ b/gems/smorg-rb/README.md @@ -35,7 +35,7 @@ I've summarized my thoughts in [this blog post](https://dev.to/galtzo/hostile-ta | Tokens to Remember | [![Gem name][⛳️name-img]][⛳️gem-name] [![Gem namespace][⛳️namespace-img]][⛳️gem-namespace] | |-------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | Works with MRI Ruby 4 | [![Ruby current Compat][💎ruby-c-i]][🚎11-c-wf]| -| Support & Community | [![Join Me on Daily.dev's RubyFriends][✉️ruby-friends-img]][✉️ruby-friends] [![Live Chat on Discord][✉️discord-invite-img-ftb]][✉️discord-invite] [![Get help from me on Upwork][👨🏼‍🏫expsup-upwork-img]][👨🏼‍🏫expsup-upwork] [![Get help from me on Codementor][👨🏼‍🏫expsup-codementor-img]][👨🏼‍🏫expsup-codementor] | +| Support & Community | [![Join Me on Daily.dev's RubyFriends][✉️ruby-friends-img]][✉️ruby-friends] [![Get help from RubyForum][✉️ruby-forum-img]][✉️ruby-forum] [![Live Chat on Discord][✉️discord-invite-img-ftb]][✉️discord-invite] [![Get help from me on Upwork][👨🏼‍🏫expsup-upwork-img]][👨🏼‍🏫expsup-upwork] [![Get help from me on Codementor][👨🏼‍🏫expsup-codementor-img]][👨🏼‍🏫expsup-codementor] | | Source | [![Source on GitLab.com][📜src-gl-img]][📜src-gl] [![Source on CodeBerg.org][📜src-cb-img]][📜src-cb] [![Source on Github.com][📜src-gh-img]][📜src-gh] [![The best SHA: dQw4w9WgXcQ!][🧮kloc-img]][🧮kloc] | | Documentation | [![Current release on RubyDoc.info][📜docs-cr-rd-img]][🚎yard-current] [![YARD on Galtzo.com][📜docs-head-rd-img]][🚎yard-head] [![Maintainer Blog][🚂maint-blog-img]][🚂maint-blog] [![GitLab Wiki][📜gl-wiki-img]][📜gl-wiki] [![GitHub Wiki][📜gh-wiki-img]][📜gh-wiki] | | Compliance | [![License: AGPL-3.0-only OR PolyForm-Small-Business-1.0.0][📄license-img]][📄license] [![Apache license compatibility: Category X][📄license-compat-img]][📄license-compat] [![📄ilo-declaration-img]][📄ilo-declaration] [![Security Policy][🔐security-img]][🔐security] [![Contributor Covenant 2.1][🪇conduct-img]][🪇conduct] [![SemVer 2.0.0][📌semver-img]][📌semver] | @@ -169,6 +169,8 @@ If none of the available licenses suit your use case, please [contact us](mailto [✉️discord-invite-img-ftb]: https://img.shields.io/discord/1373797679469170758?style=for-the-badge&logo=discord [✉️ruby-friends-img]: https://img.shields.io/badge/daily.dev-%F0%9F%92%8E_Ruby_Friends-0A0A0A?style=for-the-badge&logo=dailydotdev&logoColor=white [✉️ruby-friends]: https://app.daily.dev/squads/rubyfriends +[✉️ruby-forum-img]: https://img.shields.io/badge/RubyForum-Help-CC342D?style=for-the-badge&logo=ruby&logoColor=white +[✉️ruby-forum]: https://www.rubyforum.org/c/help/8 [✇bundle-group-pattern]: https://gist.github.com/pboling/4564780 [⛳️gem-namespace]: https://github.com/structuredmerge/structuredmerge-ruby/tree/main/gems/smorg-rb [⛳️namespace-img]: https://img.shields.io/badge/namespace-Smorg::RB-3C2D2D.svg?style=square&logo=ruby&logoColor=white diff --git a/gems/smorg-rb/Rakefile b/gems/smorg-rb/Rakefile index 5fec5aacc..ba8baf8e9 100644 --- a/gems/smorg-rb/Rakefile +++ b/gems/smorg-rb/Rakefile @@ -130,23 +130,23 @@ end ### DUPLICATE DRIFT TASKS begin - require "kettle/drift" + require 'kettle/drift' Kettle::Drift.install_tasks rescue LoadError - desc("(stub) kettle:drift:check is unavailable") - task("kettle:drift:check") do + desc('(stub) kettle:drift:check is unavailable') + task('kettle:drift:check') do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc("(stub) kettle:drift:update is unavailable") - task("kettle:drift:update") do + desc('(stub) kettle:drift:update is unavailable') + task('kettle:drift:update') do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc("(stub) kettle:drift:force_update is unavailable") - task("kettle:drift:force_update") do + desc('(stub) kettle:drift:force_update is unavailable') + task('kettle:drift:force_update') do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc("(stub) kettle:drift is unavailable") - task("kettle:drift" => "kettle:drift:update") + desc('(stub) kettle:drift is unavailable') + task('kettle:drift' => 'kettle:drift:update') end ### TEMPLATING TASKS diff --git a/gems/smorg-rb/gemfiles/modular/cgi/r4/v0.5.gemfile b/gems/smorg-rb/gemfiles/modular/cgi/r4/v0.5.gemfile new file mode 100644 index 000000000..17ad97260 --- /dev/null +++ b/gems/smorg-rb/gemfiles/modular/cgi/r4/v0.5.gemfile @@ -0,0 +1 @@ +gem 'cgi', '~> 0.5' diff --git a/gems/smorg-rb/gemfiles/modular/cgi/vHEAD.gemfile b/gems/smorg-rb/gemfiles/modular/cgi/vHEAD.gemfile new file mode 100644 index 000000000..650fbf033 --- /dev/null +++ b/gems/smorg-rb/gemfiles/modular/cgi/vHEAD.gemfile @@ -0,0 +1 @@ +gem 'cgi', '>= 0.5' diff --git a/gems/smorg-rb/gemfiles/modular/coverage.gemfile b/gems/smorg-rb/gemfiles/modular/coverage.gemfile index f96d50954..b93014b6b 100644 --- a/gems/smorg-rb/gemfiles/modular/coverage.gemfile +++ b/gems/smorg-rb/gemfiles/modular/coverage.gemfile @@ -7,7 +7,7 @@ if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? # Coverage (remote/released) platform :mri do - gem 'kettle-soup-cover', '~> 1.0', '>= 1.1.3', require: false + gem 'kettle-soup-cover', '~> 3.0', '>= 3.0.3', require: false end else eval_gemfile 'coverage_local.gemfile' diff --git a/gems/smorg-rb/gemfiles/modular/coverage_local.gemfile b/gems/smorg-rb/gemfiles/modular/coverage_local.gemfile index c687f75ff..aa0a26767 100644 --- a/gems/smorg-rb/gemfiles/modular/coverage_local.gemfile +++ b/gems/smorg-rb/gemfiles/modular/coverage_local.gemfile @@ -3,13 +3,33 @@ # Local path overrides for development. # Loaded by the associated non-local gemfile when KETTLE_DEV_DEV != "false". -require 'nomono/bundler' unless defined?(Nomono) +# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. +# Bundler records that dependency during Gemfile evaluation, but it does not +# activate that exact version before the immediate `require "nomono/bundler"`. +# If multiple compatible nomono versions are installed, RubyGems may activate +# the newest installed version while Gemfile.lock pins an older compatible one; +# Bundler then aborts with "already activated nomono X, but your Gemfile +# requires nomono Y". Prefer the locked compatible version when present, then +# activate it explicitly before requiring the Bundler DSL extension used below. +nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] +nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) +if File.file?(nomono_lockfile) + nomono_locked_spec = Bundler::LockfileParser + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } + nomono_locked = nomono_locked_spec && + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked +end +Kernel.send(:gem, 'nomono', *nomono_activation_requirements) +require 'nomono/bundler' local_gems = %w[kettle-dev kettle-test kettle-soup-cover kettle-drift] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) local_gems_to_eval = local_gems - %w[smorg-rb] - declared_gems -# export KETTLE_DEV_DEV=/path/to/kettle-rb +# export KETTLE_DEV_DEV=/path/to/my platform :mri do eval_nomono_gems( gems: local_gems_to_eval, diff --git a/gems/smorg-rb/gemfiles/modular/documentation.gemfile b/gems/smorg-rb/gemfiles/modular/documentation.gemfile index dff5cc108..9d4535f12 100644 --- a/gems/smorg-rb/gemfiles/modular/documentation.gemfile +++ b/gems/smorg-rb/gemfiles/modular/documentation.gemfile @@ -7,17 +7,17 @@ # # Documentation -gem 'kramdown', '~> 2.5', '>= 2.5.1', require: false # Ruby >= 2.5 +gem 'kramdown', '~> 2.5', '>= 2.5.2', require: false # Ruby >= 2.5 gem 'kramdown-parser-gfm', '~> 1.1', require: false # Ruby >= 2.3 -gem 'yaml-converter', '~> 0.1', require: false # Ruby >= 3.2 -gem 'yard', '~> 0.9', '>= 0.9.44', require: false +gem 'yaml-converter', '~> 0.2', '>= 0.2.3', require: false # Ruby >= 3.2 +gem 'yard', '~> 0.9', '>= 0.9.45', require: false gem 'yard-junk', '~> 0.1', '>= 0.1.0', require: false # Ruby >= 3.1 gem 'yard-relative_markdown_links', '~> 0.6', require: false if ENV.fetch('GALTZO_FLOSS_DEV', 'false').casecmp('false').zero? - gem 'yard-fence', '~> 0.9', '>= 0.9.1', require: false # Ruby >= 3.2 - gem 'yard-timekeeper', '~> 0.1', require: false - gem 'yard-yaml', '~> 0.1', '>= 0.1.2', require: false + gem 'yard-fence', '~> 0.9', '>= 0.9.6', require: false # Ruby >= 3.2 + gem 'yard-timekeeper', '~> 0.2', '>= 0.2.4', require: false + gem 'yard-yaml', '~> 0.2', '>= 0.2.3', require: false else eval_gemfile 'documentation_local.gemfile' end diff --git a/gems/smorg-rb/gemfiles/modular/documentation_local.gemfile b/gems/smorg-rb/gemfiles/modular/documentation_local.gemfile index 4d4c2bd95..57715a749 100644 --- a/gems/smorg-rb/gemfiles/modular/documentation_local.gemfile +++ b/gems/smorg-rb/gemfiles/modular/documentation_local.gemfile @@ -3,13 +3,35 @@ # Local path overrides for development. # Loaded by the associated non-local gemfile when GALTZO_FLOSS_DEV != "false". -require 'nomono/bundler' unless defined?(Nomono) +# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. +# Bundler records that dependency during Gemfile evaluation, but it does not +# activate that exact version before the immediate `require "nomono/bundler"`. +# If multiple compatible nomono versions are installed, RubyGems may activate +# the newest installed version while Gemfile.lock pins an older compatible one; +# Bundler then aborts with "already activated nomono X, but your Gemfile +# requires nomono Y". Prefer the locked compatible version when present, then +# activate it explicitly before requiring the Bundler DSL extension used below. +nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] +nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) +if File.file?(nomono_lockfile) + nomono_locked_spec = Bundler::LockfileParser + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } + nomono_locked = nomono_locked_spec && + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked +end +Kernel.send(:gem, 'nomono', *nomono_activation_requirements) +require 'nomono/bundler' local_gems = %w[yard-fence yard-timekeeper yard-yaml] +declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) +local_gems_to_eval = local_gems - %w[smorg-rb] - declared_gems # export GALTZO_FLOSS_DEV=/path/to/galtzo-floss eval_nomono_gems( - gems: local_gems, + gems: local_gems_to_eval, prefix: 'GALTZO_FLOSS', path_env: 'GALTZO_FLOSS_DEV', vendored_gems_env: 'GALTZO_FLOSS_VENDORED_GEMS', diff --git a/gems/smorg-rb/gemfiles/modular/erb/r3/v5.0.gemfile b/gems/smorg-rb/gemfiles/modular/erb/r3/v5.0.gemfile index 0e3bf1b97..ec7ff451f 100644 --- a/gems/smorg-rb/gemfiles/modular/erb/r3/v5.0.gemfile +++ b/gems/smorg-rb/gemfiles/modular/erb/r3/v5.0.gemfile @@ -1 +1 @@ -gem 'erb', '~> 6.0', '>= 6.0.4' # ruby >= 3.2.0 +gem 'erb', '~> 6.0', '>= 6.0.6' # ruby >= 3.2.0 diff --git a/gems/smorg-rb/gemfiles/modular/erb/r4/v5.0.gemfile b/gems/smorg-rb/gemfiles/modular/erb/r4/v5.0.gemfile index 0e3bf1b97..ec7ff451f 100644 --- a/gems/smorg-rb/gemfiles/modular/erb/r4/v5.0.gemfile +++ b/gems/smorg-rb/gemfiles/modular/erb/r4/v5.0.gemfile @@ -1 +1 @@ -gem 'erb', '~> 6.0', '>= 6.0.4' # ruby >= 3.2.0 +gem 'erb', '~> 6.0', '>= 6.0.6' # ruby >= 3.2.0 diff --git a/gems/smorg-rb/gemfiles/modular/json/truffleruby_22_3.gemfile b/gems/smorg-rb/gemfiles/modular/json/truffleruby_22_3.gemfile new file mode 100644 index 000000000..9b2f8d96a --- /dev/null +++ b/gems/smorg-rb/gemfiles/modular/json/truffleruby_22_3.gemfile @@ -0,0 +1,6 @@ +# frozen_string_literal: true + +if RUBY_ENGINE == 'truffleruby' && RUBY_ENGINE_VERSION.start_with?('22.3') + # TruffleRuby 22.3 ships the json default gem from its emulated MRI Ruby. + gem 'json', '= 2.5.1' +end diff --git a/gems/smorg-rb/gemfiles/modular/json/truffleruby_23_0.gemfile b/gems/smorg-rb/gemfiles/modular/json/truffleruby_23_0.gemfile new file mode 100644 index 000000000..d787a5ef4 --- /dev/null +++ b/gems/smorg-rb/gemfiles/modular/json/truffleruby_23_0.gemfile @@ -0,0 +1,6 @@ +# frozen_string_literal: true + +if RUBY_ENGINE == 'truffleruby' && RUBY_ENGINE_VERSION.start_with?('23.0') + # TruffleRuby 23.0 ships the json default gem from its emulated MRI Ruby. + gem 'json', '= 2.6.1' +end diff --git a/gems/smorg-rb/gemfiles/modular/json/truffleruby_23_1.gemfile b/gems/smorg-rb/gemfiles/modular/json/truffleruby_23_1.gemfile new file mode 100644 index 000000000..d78486b0e --- /dev/null +++ b/gems/smorg-rb/gemfiles/modular/json/truffleruby_23_1.gemfile @@ -0,0 +1,6 @@ +# frozen_string_literal: true + +if RUBY_ENGINE == 'truffleruby' && RUBY_ENGINE_VERSION.start_with?('23.1') + # TruffleRuby 23.1 ships the json default gem from its emulated MRI Ruby. + gem 'json', '= 2.6.3' +end diff --git a/gems/smorg-rb/gemfiles/modular/optional.gemfile b/gems/smorg-rb/gemfiles/modular/optional.gemfile index 8dd341fd6..9ea429538 100644 --- a/gems/smorg-rb/gemfiles/modular/optional.gemfile +++ b/gems/smorg-rb/gemfiles/modular/optional.gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -# To retain during smorg-rb templating: +# To retain during kettle-jem templating: # kettle-jem:freeze # # ... your code # kettle-jem:unfreeze @@ -10,7 +10,6 @@ # Required for curated binstubs generated by kettle-jem install gem 'rbs', '>= 3.0', require: false # ruby >= 3.1 -gem 'stone_checksums', '~> 1.0', '>= 1.0.3', require: false # ruby >= 2.2 # Required for kettle-pre-release # URL parsing with Unicode support (falls back to URI if not available) diff --git a/gems/smorg-rb/gemfiles/modular/runtime_heads.gemfile b/gems/smorg-rb/gemfiles/modular/runtime_heads.gemfile index 4588ef9bb..ebf17c529 100644 --- a/gems/smorg-rb/gemfiles/modular/runtime_heads.gemfile +++ b/gems/smorg-rb/gemfiles/modular/runtime_heads.gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -# To retain during smorg-rb templating: +# To retain during kettle-jem templating: # kettle-jem:freeze # # ... your code # kettle-jem:unfreeze @@ -8,7 +8,4 @@ # Test against HEAD of runtime dependencies so we can proactively file bugs -# Ruby >= 2.2 -gem 'version_gem', github: 'ruby-oauth/version_gem', branch: 'main' - eval_gemfile('x_std_libs/vHEAD.gemfile') diff --git a/gems/smorg-rb/gemfiles/modular/style.gemfile b/gems/smorg-rb/gemfiles/modular/style.gemfile index 9b16d68b4..4dbcc02c0 100644 --- a/gems/smorg-rb/gemfiles/modular/style.gemfile +++ b/gems/smorg-rb/gemfiles/modular/style.gemfile @@ -1,27 +1,30 @@ # frozen_string_literal: true -# To retain during smorg-rb templating: +# To retain during kettle-jem templating: # kettle-jem:freeze # # ... your code # kettle-jem:unfreeze # -# We run rubocop on the latest version of Ruby, -# but in support of the oldest supported version of Ruby +# Style tasks run on the latest Ruby; RuboCop-LTS selects the compatibility +# rules for the configured Ruby floor independently from task dependency floors. -gem 'reek', '~> 6.5' +gem 'reek', '~> 6.5', '>= 6.5.0' platform :mri do - gem 'rubocop-on-rbs', '~> 2.0' # ruby >= 3.2.0 + gem 'appraisal2-rubocop', '~> 1.0', '>= 1.0.0', require: false + gem 'rubocop-gradual', '~> 0.4', '>= 0.4.0' + gem 'rubocop-minitest', '~> 0.40', '>= 0.40.0' + gem 'rubocop-on-rbs', '~> 2.0', '>= 2.0.0' # ruby >= 3.2.0 # gem "rubocop", "~> 1.73", ">= 1.73.2" # constrained by standard gem 'rubocop-packaging', '~> 0.6', '>= 0.6.0' - gem 'standard', '>= 1.50' + gem 'standard', '~> 1.56', '>= 1.56.0' if ENV.fetch('RUBOCOP_LTS_LOCAL', 'false').casecmp('false').zero? - gem 'rubocop-lts', '~> 24.1.0' - # "rubocop-lts-rspec" can't add here until other gems are updated. - gem 'rubocop-rspec', '~> 3.6' - gem 'rubocop-ruby3_2', '~> 3.0.0' + declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) + gem 'rubocop-lts', '~> 24.2', '>= 24.2.1' unless declared_gems.include?('rubocop-lts') + gem 'rubocop-lts-rspec', '~> 1.0', '>= 1.0.5' unless declared_gems.include?('rubocop-lts-rspec') + gem 'rubocop-ruby3_2', '~> 3.0', '>= 3.0.6' unless declared_gems.include?('rubocop-ruby3_2') else eval_gemfile('style_local.gemfile') end diff --git a/gems/smorg-rb/gemfiles/modular/style_local.gemfile b/gems/smorg-rb/gemfiles/modular/style_local.gemfile index ce75bbe21..1a7dc0401 100644 --- a/gems/smorg-rb/gemfiles/modular/style_local.gemfile +++ b/gems/smorg-rb/gemfiles/modular/style_local.gemfile @@ -1,19 +1,41 @@ # frozen_string_literal: true -# We run rubocop on the latest version of Ruby, -# but in support of the oldest supported version of Ruby +# Style tasks run on the latest Ruby; RuboCop-LTS selects the compatibility +# rules for the configured Ruby floor independently from task dependency floors. # Local path overrides for development. # Loaded by the associated non-local gemfile when RUBOCOP_LTS_LOCAL != "false". -require 'nomono/bundler' unless defined?(Nomono) +# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. +# Bundler records that dependency during Gemfile evaluation, but it does not +# activate that exact version before the immediate `require "nomono/bundler"`. +# If multiple compatible nomono versions are installed, RubyGems may activate +# the newest installed version while Gemfile.lock pins an older compatible one; +# Bundler then aborts with "already activated nomono X, but your Gemfile +# requires nomono Y". Prefer the locked compatible version when present, then +# activate it explicitly before requiring the Bundler DSL extension used below. +nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] +nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) +if File.file?(nomono_lockfile) + nomono_locked_spec = Bundler::LockfileParser + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } + nomono_locked = nomono_locked_spec && + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked +end +Kernel.send(:gem, 'nomono', *nomono_activation_requirements) +require 'nomono/bundler' local_gems = %w[rubocop-lts rubocop-lts-rspec rubocop-ruby3_2 standard-rubocop-lts] +declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) +local_gems_to_eval = local_gems - %w[smorg-rb] - declared_gems # export VENDORED_GEMS=rubocop-lts,rubocop-lts-rspec,rubocop-ruby3_2,standard-rubocop-lts platform :mri do eval_nomono_gems( - gems: local_gems, + gems: local_gems_to_eval, prefix: 'RUBOCOP_LTS', path_env: 'RUBOCOP_LTS_LOCAL', vendored_gems_env: 'VENDORED_GEMS', diff --git a/gems/smorg-rb/gemfiles/modular/templating.gemfile b/gems/smorg-rb/gemfiles/modular/templating.gemfile index 2ddc9433f..922a33590 100644 --- a/gems/smorg-rb/gemfiles/modular/templating.gemfile +++ b/gems/smorg-rb/gemfiles/modular/templating.gemfile @@ -6,19 +6,17 @@ kettle_remote = ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? if structuredmerge_remote # Parser dependencies for released installs. gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' - # Merge recipes for released installs. - gem 'kettle-jem', '>= 7.0' end if kettle_remote # Template/plugin checks for released installs. - gem 'kettle-drift', '~> 1.0', '>= 1.0.5', require: false + gem 'kettle-drift', '~> 1.0', '>= 1.0.6', require: false end # Set STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local development with path-based dependencies. # When false (default / CI), released kettle-jem brings merge gems and parser dependencies. # Local path overrides bring the same dependencies from sibling gemspecs. # -# Set KETTLE_DEV_DEV=/path/to/kettle-rb for local development with Kettle plugin gems. +# Set KETTLE_DEV_DEV=/path/to/my for local development with Kettle plugin gems. # When false (default / CI), released Kettle plugin gems are used. eval_gemfile 'templating_local.gemfile' unless structuredmerge_remote && kettle_remote diff --git a/gems/smorg-rb/gemfiles/modular/templating_local.gemfile b/gems/smorg-rb/gemfiles/modular/templating_local.gemfile index 8d9b40c05..93d40919f 100644 --- a/gems/smorg-rb/gemfiles/modular/templating_local.gemfile +++ b/gems/smorg-rb/gemfiles/modular/templating_local.gemfile @@ -4,7 +4,27 @@ # Loaded by the associated non-local gemfile when STRUCTUREDMERGE_DEV or KETTLE_DEV_DEV # is not "false". -require 'nomono/bundler' unless defined?(Nomono) +# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. +# Bundler records that dependency during Gemfile evaluation, but it does not +# activate that exact version before the immediate `require "nomono/bundler"`. +# If multiple compatible nomono versions are installed, RubyGems may activate +# the newest installed version while Gemfile.lock pins an older compatible one; +# Bundler then aborts with "already activated nomono X, but your Gemfile +# requires nomono Y". Prefer the locked compatible version when present, then +# activate it explicitly before requiring the Bundler DSL extension used below. +nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] +nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) +if File.file?(nomono_lockfile) + nomono_locked_spec = Bundler::LockfileParser + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } + nomono_locked = nomono_locked_spec && + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked +end +Kernel.send(:gem, 'nomono', *nomono_activation_requirements) +require 'nomono/bundler' structuredmerge_local_gems = %w[ tree_haver diff --git a/gems/smorg-rb/gemfiles/modular/webrick/r4/v1.9.gemfile b/gems/smorg-rb/gemfiles/modular/webrick/r4/v1.9.gemfile new file mode 100644 index 000000000..b1329ba84 --- /dev/null +++ b/gems/smorg-rb/gemfiles/modular/webrick/r4/v1.9.gemfile @@ -0,0 +1 @@ +gem 'webrick', '~> 1.9' diff --git a/gems/smorg-rb/gemfiles/modular/webrick/vHEAD.gemfile b/gems/smorg-rb/gemfiles/modular/webrick/vHEAD.gemfile new file mode 100644 index 000000000..c7e6f81a1 --- /dev/null +++ b/gems/smorg-rb/gemfiles/modular/webrick/vHEAD.gemfile @@ -0,0 +1 @@ +gem 'webrick', '>= 1.9' diff --git a/gems/smorg-rb/gemfiles/modular/x_std_libs/r4/libs.gemfile b/gems/smorg-rb/gemfiles/modular/x_std_libs/r4/libs.gemfile index bd4e884df..e2f6501eb 100644 --- a/gems/smorg-rb/gemfiles/modular/x_std_libs/r4/libs.gemfile +++ b/gems/smorg-rb/gemfiles/modular/x_std_libs/r4/libs.gemfile @@ -2,3 +2,5 @@ eval_gemfile '../../erb/r4/v5.0.gemfile' eval_gemfile '../../mutex_m/r4/v0.3.gemfile' eval_gemfile '../../stringio/r4/v3.0.gemfile' eval_gemfile '../../benchmark/r4/v0.5.gemfile' +eval_gemfile '../../cgi/r4/v0.5.gemfile' +eval_gemfile '../../webrick/r4/v1.9.gemfile' diff --git a/gems/smorg-rb/gemfiles/modular/x_std_libs/vHEAD.gemfile b/gems/smorg-rb/gemfiles/modular/x_std_libs/vHEAD.gemfile index 91f383c11..ab75cccf1 100644 --- a/gems/smorg-rb/gemfiles/modular/x_std_libs/vHEAD.gemfile +++ b/gems/smorg-rb/gemfiles/modular/x_std_libs/vHEAD.gemfile @@ -2,3 +2,5 @@ eval_gemfile '../erb/vHEAD.gemfile' eval_gemfile '../mutex_m/vHEAD.gemfile' eval_gemfile '../stringio/vHEAD.gemfile' eval_gemfile '../benchmark/vHEAD.gemfile' +eval_gemfile '../cgi/vHEAD.gemfile' +eval_gemfile '../webrick/vHEAD.gemfile' diff --git a/gems/smorg-rb/lib/smorg/rb/version.rb b/gems/smorg-rb/lib/smorg/rb/version.rb index ef211ba06..8e48f6d11 100644 --- a/gems/smorg-rb/lib/smorg/rb/version.rb +++ b/gems/smorg-rb/lib/smorg/rb/version.rb @@ -3,7 +3,7 @@ module Smorg module RB module Version - VERSION = "7.1.0" + VERSION = '7.1.0' end VERSION = Version::VERSION # Traditional Constant Location end diff --git a/gems/smorg-rb/spec/cli_spec.rb b/gems/smorg-rb/spec/cli_spec.rb index 8cf5940f6..b970f1021 100644 --- a/gems/smorg-rb/spec/cli_spec.rb +++ b/gems/smorg-rb/spec/cli_spec.rb @@ -470,7 +470,7 @@ def run_git(dir, *args) stderr = StringIO.new plain_diff = IO.popen([{ 'GIT_CONFIG_NOSYSTEM' => '1' }, 'git', '--no-pager', 'diff', '--no-ext-diff', - '--no-index', old_path, new_path], err: %i[child out], &:read) + '--no-index', old_path, new_path], err: %i[child out], &:read) expect([0, 1]).to include($?.exitstatus) exit_code = described_class.run(['diff-driver', '--path-name', source_pair.fetch('path'), old_path, new_path], stdout: stdout, stderr: stderr) From 19d6d800dbc6449cbf87792d27099113e3408438 Mon Sep 17 00:00:00 2001 From: "Peter H. Boling" Date: Tue, 21 Jul 2026 14:01:49 -0600 Subject: [PATCH 144/188] =?UTF-8?q?=F0=9F=8E=A8=20Template=20bootstrap=20b?= =?UTF-8?q?y=20kettle-jem=20v7.1.0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Gemfile | 2 +- Gemfile.lock | 6 +- .../.github/workflows/dep-heads.yml | 8 +- gems/kettle-jem/.kettle-drift.lock | 6 +- gems/kettle-jem/.rubocop_gradual.lock | 106 +++++- gems/kettle-jem/AGENTS.md | 6 - gems/kettle-jem/CHANGELOG.md | 117 +++--- gems/kettle-jem/Gemfile.lock | 198 +++------- gems/kettle-jem/README.md | 6 +- gems/kettle-jem/Rakefile | 2 +- .../gemfiles/modular/erb/r3/v5.0.gemfile | 2 +- .../gemfiles/modular/erb/r4/v5.0.gemfile | 2 +- .../kettle-jem/gemfiles/modular/style.gemfile | 2 +- gems/kettle-jem/kettle-jem.gemspec | 15 +- gems/kettle-jem/lib/kettle/jem.rb | 100 ++--- .../lib/kettle/jem/tasks/install_task.rb | 6 +- .../e2e/rubygems_thin_vertical_slice_spec.rb | 1 - .../appraisal_helper_and_token_spec.rb | 36 -- .../appraisals_and_gemfile_template_spec.rb | 30 -- .../config_metadata_template_spec.rb | 45 --- .../integration/coverage_template_spec.rb | 5 - .../spec/integration/gemspec_template_spec.rb | 26 -- .../github_workflow_template_spec.rb | 25 -- .../readme_changelog_template_spec.rb | 29 -- .../spec/integration/recipe_planning_spec.rb | 22 -- .../spec/integration/shim_profile_spec.rb | 1 - .../structural_merge_template_spec.rb | 29 -- .../integration/template_bootstrap_spec.rb | 31 -- .../spec/system/install_orchestration_spec.rb | 57 --- gems/parslet-toml-merge/Gemfile.lock | 343 +---------------- gems/psych-merge/Gemfile.lock | 353 +----------------- gems/rbs-merge/Gemfile.lock | 350 +---------------- gems/rust-merge/Gemfile.lock | 351 +---------------- gems/smorg-rb/Gemfile.lock | 135 +++---- gems/toml-merge/Gemfile.lock | 351 +---------------- gems/typescript-merge/Gemfile.lock | 351 +---------------- 36 files changed, 394 insertions(+), 2761 deletions(-) diff --git a/Gemfile b/Gemfile index 7078d7440..d0b400161 100644 --- a/Gemfile +++ b/Gemfile @@ -73,7 +73,7 @@ gem "bundler-audit", "~> 0.9.3" if kettle_dev_dev.casecmp("false").zero? gem "kettle-dev", "~> 2.2", ">= 2.2.25" - gem "kettle-family", ">= 1.0.0" + gem "kettle-family", ">= 1.0.2" gem "kettle-test", "~> 2.0", ">= 2.0.11" end diff --git a/Gemfile.lock b/Gemfile.lock index a7a061311..b271f64bf 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -306,7 +306,7 @@ GEM ruby-progressbar (~> 1.13) kettle-drift (1.0.5) version_gem (~> 1.1, >= 1.1.13) - kettle-family (1.0.1) + kettle-family (1.0.2) command_kit (~> 0.6) command_kit-completion (~> 0.1) kettle-dev (~> 2.3, >= 2.3.4) @@ -428,7 +428,7 @@ DEPENDENCIES json-merge! kettle-dev (~> 2.2, ~> 2.0, >= 2.2.25) kettle-drift (~> 1.0, >= 1.0.5) - kettle-family (>= 1.0.0) + kettle-family (>= 1.0.2) kettle-jem! kettle-test (~> 2.0, >= 2.0.9, >= 2.0.11) kramdown-merge! @@ -493,7 +493,7 @@ CHECKSUMS json-merge (7.1.0) kettle-dev (2.3.7) sha256=eb370113cd030d03cbe2d33b31c99858951017e5ad21a17e9ed89dc3770028ee kettle-drift (1.0.5) sha256=07094e80140a049164142820bdd327c30fcd855bb00697a0a430600a2b5144a2 - kettle-family (1.0.1) sha256=6855e944fe48d7b0d154ca0073c544db19e0a2fca246ce4aa3a804fc2b6f71f8 + kettle-family (1.0.2) sha256=2775638ebd81c0f549316f4a0fc9cdf8f8700c58e8883c7ced0c335c7317fa00 kettle-jem (7.1.0) kettle-rb (0.1.4) sha256=9cef7ce4f7021666b7222292f29051e51eaf042e8a5db11f3f4dd72f74243fc1 kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 diff --git a/gems/kettle-jem/.github/workflows/dep-heads.yml b/gems/kettle-jem/.github/workflows/dep-heads.yml index eea868a13..3d9b0d600 100644 --- a/gems/kettle-jem/.github/workflows/dep-heads.yml +++ b/gems/kettle-jem/.github/workflows/dep-heads.yml @@ -1,5 +1,4 @@ -# Targets the evergreen latest release of ruby, truffleruby, and jruby -# and tests against the HEAD of runtime dependencies +# Targets enabled evergreen Ruby engines and tests against the HEAD of runtime dependencies name: Runtime Deps @ HEAD permissions: @@ -104,6 +103,11 @@ jobs: - ruby: "truffleruby" appraisal: "dep-heads" exec_cmd: "kettle-test" + # TruffleRuby's bundled RubyGems/Bundler path cannot reliably + # bootstrap Appraisal against all configured gem servers here. + # Run directly from the generated appraisal Gemfile instead. + # This makes gemfiles/dep_heads.gemfile required checked-in output + # for repositories using this generated workflow. bundle_gemfile: "gemfiles/dep_heads.gemfile" direct_bundle: true rubygems: default diff --git a/gems/kettle-jem/.kettle-drift.lock b/gems/kettle-jem/.kettle-drift.lock index bc1265c3c..7ed46f616 100644 --- a/gems/kettle-jem/.kettle-drift.lock +++ b/gems/kettle-jem/.kettle-drift.lock @@ -32,9 +32,9 @@ { "file": ".github/workflows/dep-heads.yml", "lines": [ - 44, - 105, - 154 + 43, + 104, + 158 ] } ], diff --git a/gems/kettle-jem/.rubocop_gradual.lock b/gems/kettle-jem/.rubocop_gradual.lock index 4c4440700..d119c60ae 100644 --- a/gems/kettle-jem/.rubocop_gradual.lock +++ b/gems/kettle-jem/.rubocop_gradual.lock @@ -1,23 +1,91 @@ { - "kettle-jem.gemspec:2870345692": [ + "benchmarks/fixtures/skeleton/Gemfile:3218324611": [ + [8, 1, 9, "Gemspec/DevelopmentDependencies: Specify development dependencies in gemspec.", 1499175571] + ], + "benchmarks/kettle_jem_ractor_planning.rb:4068228537": [ + [43, 1, 6, "Style/GlobalStdStream: Use `$stdout` instead of `STDOUT`.", 3356722952], + [466, 8, 66, "Style/RedundantFormat: Use `\"step duration share count\"` directly instead of `format`.", 4013676740], + [622, 6, 309, "Style/RedundantFormat: Use `\"variant +/- min median mean max recipes cmds pr pt fr ft safe f_units pr_job pt_job fr_job ft_job recipes changed\"` directly instead of `format`.", 3979716419] + ], + "kettle-jem.gemspec:2340002234": [ [19, 32, 10, "Gemspec/RequiredRubyVersion: `required_ruby_version` and `TargetRubyVersion` (3.2, which may be specified in .rubocop.yml) should be equal.", 3888670706], - [93, 3, 70, "Gemspec/DependencyVersion: Dependency version specification is required.", 4023754366], - [94, 3, 65, "Gemspec/DependencyVersion: Dependency version specification is required.", 1638532368], - [95, 3, 53, "Gemspec/DependencyVersion: Dependency version specification is required.", 897228968], - [96, 3, 54, "Gemspec/DependencyVersion: Dependency version specification is required.", 1601414454], - [97, 3, 61, "Gemspec/DependencyVersion: Dependency version specification is required.", 2631699923], - [98, 3, 62, "Gemspec/DependencyVersion: Dependency version specification is required.", 3348222081], - [99, 3, 56, "Gemspec/DependencyVersion: Dependency version specification is required.", 3843726476], - [100, 3, 54, "Gemspec/DependencyVersion: Dependency version specification is required.", 3293105462], - [103, 3, 58, "Gemspec/DependencyVersion: Dependency version specification is required.", 670728969], - [104, 3, 58, "Gemspec/DependencyVersion: Dependency version specification is required.", 1722946409], - [105, 3, 56, "Gemspec/DependencyVersion: Dependency version specification is required.", 2273926958], - [106, 3, 55, "Gemspec/DependencyVersion: Dependency version specification is required.", 1475977371], - [107, 3, 55, "Gemspec/DependencyVersion: Dependency version specification is required.", 3458446143], - [109, 3, 53, "Gemspec/DependencyVersion: Dependency version specification is required.", 3112555885], - [110, 3, 54, "Gemspec/DependencyVersion: Dependency version specification is required.", 1663642130], - [112, 3, 54, "Gemspec/DependencyVersion: Dependency version specification is required.", 527713396], - [114, 3, 54, "Gemspec/DependencyVersion: Dependency version specification is required.", 3116501450], - [115, 3, 54, "Gemspec/DependencyVersion: Dependency version specification is required.", 2771890615] + [90, 3, 70, "Gemspec/DependencyVersion: Dependency version specification is required.", 4023754366], + [91, 3, 65, "Gemspec/DependencyVersion: Dependency version specification is required.", 1638532368], + [92, 3, 53, "Gemspec/DependencyVersion: Dependency version specification is required.", 897228968], + [93, 3, 54, "Gemspec/DependencyVersion: Dependency version specification is required.", 1601414454], + [94, 3, 61, "Gemspec/DependencyVersion: Dependency version specification is required.", 2631699923], + [95, 3, 62, "Gemspec/DependencyVersion: Dependency version specification is required.", 3348222081], + [96, 3, 56, "Gemspec/DependencyVersion: Dependency version specification is required.", 3843726476], + [97, 3, 54, "Gemspec/DependencyVersion: Dependency version specification is required.", 3293105462], + [100, 3, 58, "Gemspec/DependencyVersion: Dependency version specification is required.", 670728969], + [101, 3, 58, "Gemspec/DependencyVersion: Dependency version specification is required.", 1722946409], + [102, 3, 56, "Gemspec/DependencyVersion: Dependency version specification is required.", 2273926958], + [103, 3, 55, "Gemspec/DependencyVersion: Dependency version specification is required.", 1475977371], + [104, 3, 55, "Gemspec/DependencyVersion: Dependency version specification is required.", 3458446143], + [106, 3, 53, "Gemspec/DependencyVersion: Dependency version specification is required.", 3112555885], + [107, 3, 54, "Gemspec/DependencyVersion: Dependency version specification is required.", 1663642130], + [109, 3, 54, "Gemspec/DependencyVersion: Dependency version specification is required.", 527713396], + [111, 3, 54, "Gemspec/DependencyVersion: Dependency version specification is required.", 3116501450], + [112, 3, 54, "Gemspec/DependencyVersion: Dependency version specification is required.", 2771890615] + ], + "lib/kettle/jem.rb:435786121": [ + [3854, 9, 10, "ThreadSafety/NewThread: Avoid starting new threads.", 3411682361], + [4255, 9, 32, "Style/SafeNavigation: Use safe navigation (`&.`) instead of checking if an object exists before calling the method.", 2221659486], + [10862, 9, 10, "ThreadSafety/NewThread: Avoid starting new threads.", 3411682361] + ], + "lib/kettle/jem/tasks/install_task.rb:2120658194": [ + [1099, 47, 29, "Style/SafeNavigation: Use safe navigation (`&.`) instead of checking if an object exists before calling the method.", 964126728] + ], + "spec/e2e/rubygems_thin_vertical_slice_spec.rb:3402585310": [ + [3, 1, 58, "RSpec/SpecFilePathFormat: Spec path should end with `kettle/jem*RubyGems_thin_vertical_slice*_spec.rb`.", 3968596449], + [3, 29, 30, "RSpec/DescribeMethod: The second argument to describe should be the method being tested. '#instance' or '.class'.", 3589370396] + ], + "spec/integration/appraisal_helper_and_token_spec.rb:373564999": [ + [3, 1, 67, "RSpec/SpecFilePathFormat: Spec path should end with `kettle/jem*appraisal_helpers_and_template_tokens*_spec.rb`.", 1438226331], + [3, 29, 39, "RSpec/DescribeMethod: The second argument to describe should be the method being tested. '#instance' or '.class'.", 1357968070] + ], + "spec/integration/appraisals_and_gemfile_template_spec.rb:3345248306": [ + [3, 1, 63, "RSpec/SpecFilePathFormat: Spec path should end with `kettle/jem*Appraisals_and_Gemfile_templating*_spec.rb`.", 2367084249], + [3, 29, 35, "RSpec/DescribeMethod: The second argument to describe should be the method being tested. '#instance' or '.class'.", 1539510212] + ], + "spec/integration/config_metadata_template_spec.rb:3920882747": [ + [3, 1, 67, "RSpec/SpecFilePathFormat: Spec path should end with `kettle/jem*configuration_and_metadata_templating*_spec.rb`.", 3610099387], + [3, 29, 39, "RSpec/DescribeMethod: The second argument to describe should be the method being tested. '#instance' or '.class'.", 1907259302] + ], + "spec/integration/coverage_template_spec.rb:3538943565": [ + [3, 1, 66, "RSpec/SpecFilePathFormat: Spec path should end with `kettle/jem*coverage_bootstrap_template_behavior*_spec.rb`.", 823415992], + [3, 29, 38, "RSpec/DescribeMethod: The second argument to describe should be the method being tested. '#instance' or '.class'.", 151296325] + ], + "spec/integration/gemspec_template_spec.rb:3136728880": [ + [3, 1, 48, "RSpec/SpecFilePathFormat: Spec path should end with `kettle/jem*gemspec_templating*_spec.rb`.", 30263623], + [3, 29, 20, "RSpec/DescribeMethod: The second argument to describe should be the method being tested. '#instance' or '.class'.", 2014438586] + ], + "spec/integration/github_workflow_template_spec.rb:3021876464": [ + [3, 1, 56, "RSpec/SpecFilePathFormat: Spec path should end with `kettle/jem*GitHub_workflow_templating*_spec.rb`.", 446190427], + [3, 29, 28, "RSpec/DescribeMethod: The second argument to describe should be the method being tested. '#instance' or '.class'.", 855400678] + ], + "spec/integration/readme_changelog_template_spec.rb:3264156297": [ + [3, 1, 61, "RSpec/SpecFilePathFormat: Spec path should end with `kettle/jem*README_and_changelog_templating*_spec.rb`.", 997155358], + [3, 29, 33, "RSpec/DescribeMethod: The second argument to describe should be the method being tested. '#instance' or '.class'.", 3993812611] + ], + "spec/integration/recipe_planning_spec.rb:1254848899": [ + [3, 1, 71, "RSpec/SpecFilePathFormat: Spec path should end with `kettle/jem*recipe_planning_and_writeintent_behavior*_spec.rb`.", 2828860406], + [3, 29, 43, "RSpec/DescribeMethod: The second argument to describe should be the method being tested. '#instance' or '.class'.", 2383456363] + ], + "spec/integration/shim_profile_spec.rb:3401820158": [ + [3, 1, 53, "RSpec/SpecFilePathFormat: Spec path should end with `kettle/jem*shim_profile_templating*_spec.rb`.", 837334745], + [3, 29, 25, "RSpec/DescribeMethod: The second argument to describe should be the method being tested. '#instance' or '.class'.", 2022445956] + ], + "spec/integration/structural_merge_template_spec.rb:2021995953": [ + [3, 1, 64, "RSpec/SpecFilePathFormat: Spec path should end with `kettle/jem*structural_merge_template_behavior*_spec.rb`.", 1693815617], + [3, 29, 36, "RSpec/DescribeMethod: The second argument to describe should be the method being tested. '#instance' or '.class'.", 3903270460] + ], + "spec/integration/template_bootstrap_spec.rb:539081283": [ + [3, 1, 71, "RSpec/SpecFilePathFormat: Spec path should end with `kettle/jem*template_selection_and_bootstrap_behavior*_spec.rb`.", 2832878461], + [3, 29, 43, "RSpec/DescribeMethod: The second argument to describe should be the method being tested. '#instance' or '.class'.", 1664161888] + ], + "spec/system/install_orchestration_spec.rb:352463012": [ + [3, 1, 70, "RSpec/SpecFilePathFormat: Spec path should end with `kettle/jem*install_and_local_orchestration_behavior*_spec.rb`.", 1687390280], + [3, 29, 42, "RSpec/DescribeMethod: The second argument to describe should be the method being tested. '#instance' or '.class'.", 2090400053] ] } diff --git a/gems/kettle-jem/AGENTS.md b/gems/kettle-jem/AGENTS.md index 577725d3e..d5b41ba19 100644 --- a/gems/kettle-jem/AGENTS.md +++ b/gems/kettle-jem/AGENTS.md @@ -179,12 +179,6 @@ Use the `kettle-jem` executable as the public entrypoint. The `kettle:jem:*` rake tasks are internal orchestration targets that the executable may call after it has prepared the templating environment. -User-facing template output changes must also add an entry to -`lib/kettle/jem/templates/CHANGELOG.transfer.md`. This transfer changelog is -promoted into destination projects, so README, workflow, gemspec, config, -documentation, and other generated-template behavior changes need a concise -transfer entry in addition to the normal project changelog. - **Current defaults** (no flags needed): - **quiet=true** — only phase summary lines shown; use `--verbose` or `KETTLE_JEM_VERBOSE=true` to opt out - **force=true** — non-interactive; use `--interactive` to opt out diff --git a/gems/kettle-jem/CHANGELOG.md b/gems/kettle-jem/CHANGELOG.md index 92eeb6cbc..97247e832 100644 --- a/gems/kettle-jem/CHANGELOG.md +++ b/gems/kettle-jem/CHANGELOG.md @@ -18,61 +18,6 @@ Please file a bug if you notice a violation of semantic versioning. ## [Unreleased] -### Changed - -- Templating now reuses static, shareable regexes and small lookup lists in the - recipe dispatch and template-policy paths instead of reallocating them during - each recipe execution. -- Opt-in recipe-planning Ractor mode now batches worker-safe recipes across a - bounded chunked worker pool instead of spawning one Ractor per recipe, and it - keeps parser/merge paths with known unshareable dependency state on the main - Ractor. -- Templating can now opt into thread-backed recipe planning and file work with - `KETTLE_JEM_THREAD_WORKERS` and `KETTLE_JEM_THREAD_FILE_WORKERS`, providing a - benchmarkable alternative to main-thread and Ractor execution. -- Templating now supports benchmark-oriented skip controls for external - post-template work: `--skip-drift-check`, `--skip-rubocop-gradual`, and - `--skip-binstubs`, with matching `KETTLE_JEM_SKIP_*` environment variables. -- Templating reports now persist phase duration metadata, install command steps - record elapsed duration, and benchmark summaries show recipe-phase time apart - from external command time. -- The benchmark harness now supports `KETTLE_JEM_BENCHMARK_MODE=raw-template` - to compare scoped raw `TemplateTask` runs separately from the default - install-orchestrated one-shot template flow. -- The benchmark harness now defaults worker counts to `1,min(4,n/2),min(8,n/2),n` - instead of only `min(2,n)`, giving higher-core machines a useful default - scaling matrix while keeping low-core hosts bounded. -- Benchmark summaries now show each variant's median percentage delta against - `baseline-main` immediately after the variant name. -- README recipe reports now include sub-step timing metadata, and benchmark - results summarize the baseline README timing breakdown. - -### Fixed - -- Install orchestration now bundles each distinct Bundler environment it will - execute under, and probes RuboCop Gradual tasks with the same environment used - for the eventual command. -- Bundler child commands now strip inherited command-line Git configuration, so - parent `safe.bareRepository=explicit` settings do not break Bundler Git source - caches during templating. -- Generated semantic diff Git driver configuration now consistently uses the - installed `smorg-rb` executable and Git diff driver name for Ruby diffs. -- Generated multi-engine workflow files, including `heads.yml` and - `dep-heads.yml`, now omit JRuby and TruffleRuby jobs when the project config - declares an MRI-only `engines` list. -- `kettle-jem`'s generated development Gemfiles now depend on released - `tree_sitter_language_pack` 1.13.2 or newer by default, while still - allowing templating runs to switch to a local source with - `VENDORED_GEMS=tree_sitter_language_pack` / `VENDOR_GEM_DIR`. -- Gemspec templating now deletes empty generated development-dependency comment - sections through Prism-backed CRISPR structural edits, preventing blank-line - churn before the closing `Gem::Specification` `end`. -- Fixed the `kettle-jem` package manifest so runtime template assets are - included even when the gemspec is loaded from the monorepo root. -- Generated local templating Gemfiles can now route - `tree_sitter_language_pack` through nomono's `VENDORED_GEMS` / - `VENDOR_GEM_DIR` support instead of using a one-off inferred local path. - ### Added - Templating plan reports now include per-recipe duration metadata, template @@ -157,6 +102,33 @@ Please file a bug if you notice a violation of semantic versioning. ### Changed +- Templating now reuses static, shareable regexes and small lookup lists in the + recipe dispatch and template-policy paths instead of reallocating them during + each recipe execution. +- Opt-in recipe-planning Ractor mode now batches worker-safe recipes across a + bounded chunked worker pool instead of spawning one Ractor per recipe, and it + keeps parser/merge paths with known unshareable dependency state on the main + Ractor. +- Templating can now opt into thread-backed recipe planning and file work with + `KETTLE_JEM_THREAD_WORKERS` and `KETTLE_JEM_THREAD_FILE_WORKERS`, providing a + benchmarkable alternative to main-thread and Ractor execution. +- Templating now supports benchmark-oriented skip controls for external + post-template work: `--skip-drift-check`, `--skip-rubocop-gradual`, and + `--skip-binstubs`, with matching `KETTLE_JEM_SKIP_*` environment variables. +- Templating reports now persist phase duration metadata, install command steps + record elapsed duration, and benchmark summaries show recipe-phase time apart + from external command time. +- The benchmark harness now supports `KETTLE_JEM_BENCHMARK_MODE=raw-template` + to compare scoped raw `TemplateTask` runs separately from the default + install-orchestrated one-shot template flow. +- The benchmark harness now defaults worker counts to `1,min(4,n/2),min(8,n/2),n` + instead of only `min(2,n)`, giving higher-core machines a useful default + scaling matrix while keeping low-core hosts bounded. +- Benchmark summaries now show each variant's median percentage delta against + `baseline-main` immediately after the variant name. +- README recipe reports now include sub-step timing metadata, and benchmark + results summarize the baseline README timing breakdown. + - Generated gemspec templates now require `kettle-dev` >= 2.3.7. - kettle-jem now requires `kettle-rb` >= 0.1.4. - Refreshed generated GitHub Actions workflow pins for `ruby/setup-ruby` and @@ -240,12 +212,47 @@ Please file a bug if you notice a violation of semantic versioning. - kettle-jem-template-20260716-002 - Generated gemspec manifests now ship fewer repository-only files by default to reduce downstream distro packaging churn. +- kettle-jem-template-20260720-001 - Generated READMEs can now render + template-managed corporate sponsor logos from project or family config. +- kettle-jem-template-20260720-002 - Generated development Gemfiles now use the + released `tree_sitter_language_pack` gem 1.13.3 or newer by default. +- kettle-jem-template-20260720-003 - Generated StructuredMerge Git diff driver + config now uses the installed `smorg-rb` Ruby driver name. +- kettle-jem-template-20260720-004 - Generated multi-engine workflow files now + omit JRuby and TruffleRuby jobs when project config declares MRI-only engines. +- kettle-jem-template-20260720-005 - Generated README Support & Community rows + now include a RubyForum help badge. + ### Deprecated ### Removed ### Fixed +- Install orchestration now bundles each distinct Bundler environment it will + execute under, and probes RuboCop Gradual tasks with the same environment used + for the eventual command. +- Bundler child commands now strip inherited command-line Git configuration, so + parent `safe.bareRepository=explicit` settings do not break Bundler Git source + caches during templating. +- Generated semantic diff Git driver configuration now consistently uses the + installed `smorg-rb` executable and Git diff driver name for Ruby diffs. +- Generated multi-engine workflow files, including `heads.yml` and + `dep-heads.yml`, now omit JRuby and TruffleRuby jobs when the project config + declares an MRI-only `engines` list. +- `kettle-jem`'s generated development Gemfiles now depend on released + `tree_sitter_language_pack` 1.13.2 or newer by default, while still + allowing templating runs to switch to a local source with + `VENDORED_GEMS=tree_sitter_language_pack` / `VENDOR_GEM_DIR`. +- Gemspec templating now deletes empty generated development-dependency comment + sections through Prism-backed CRISPR structural edits, preventing blank-line + churn before the closing `Gem::Specification` `end`. +- Fixed the `kettle-jem` package manifest so runtime template assets are + included even when the gemspec is loaded from the monorepo root. +- Generated local templating Gemfiles can now route + `tree_sitter_language_pack` through nomono's `VENDORED_GEMS` / + `VENDOR_GEM_DIR` support instead of using a one-off inferred local path. + - Templating setup now respects explicit `STRUCTUREDMERGE_DEV=false` and `KETTLE_DEV_DEV=false` values when reading the kettle-family local install marker, preventing prepare-mode bundle updates from re-enabling stale local diff --git a/gems/kettle-jem/Gemfile.lock b/gems/kettle-jem/Gemfile.lock index 15b9580af..aa3021f07 100644 --- a/gems/kettle-jem/Gemfile.lock +++ b/gems/kettle-jem/Gemfile.lock @@ -28,7 +28,7 @@ PATH yaml-merge (= 7.1.0) PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly specs: ast-crispr-markdown-markly (7.1.0) ast-crispr (= 7.1.0) @@ -36,7 +36,7 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism specs: ast-crispr-ruby-prism (7.1.0) ast-crispr (= 7.1.0) @@ -44,23 +44,7 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr - specs: - ast-crispr (7.1.0) - ast-merge (= 7.1.0) - service_actor (~> 3.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git - specs: - ast-merge-git (7.1.0) - ast-merge (= 7.1.0) - json-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/ast-merge specs: ast-merge (7.1.0) benchmark @@ -69,14 +53,7 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template - specs: - ast-template (7.1.0) - ast-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/bash-merge specs: bash-merge (7.1.0) ast-merge (= 7.1.0) @@ -84,14 +61,7 @@ PATH version_gem (~> 1.1, >= 1.1.14) PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge - specs: - binary-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge specs: citrus-toml-merge (7.1.0) toml-merge (= 7.1.0) @@ -99,7 +69,7 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge specs: commonmarker-merge (7.1.0) commonmarker (~> 2.2) @@ -107,7 +77,7 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge specs: dotenv-merge (7.1.0) ast-merge (= 7.1.0) @@ -115,15 +85,7 @@ PATH version_gem (~> 1.1, >= 1.1.14) PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge - specs: - go-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/json-merge specs: json-merge (7.1.0) ast-merge (= 7.1.0) @@ -131,7 +93,7 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge specs: kramdown-merge (7.1.0) kramdown (~> 2.5) @@ -139,7 +101,7 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge specs: markdown-merge (7.1.0) ast-merge (= 7.1.0) @@ -147,7 +109,7 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/markly-merge specs: markly-merge (7.1.0) markdown-merge (= 7.1.0) @@ -155,23 +117,7 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge - specs: - parslet-toml-merge (7.1.0) - toml (~> 0.3) - toml-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge - specs: - plain-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/prism-merge specs: prism-merge (7.1.0) prism (~> 1.6) @@ -179,7 +125,7 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/psych-merge specs: psych-merge (7.1.0) ast-merge (= 7.1.0) @@ -188,7 +134,7 @@ PATH yaml-merge (= 7.1.0) PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge specs: rbs-merge (7.1.0) ast-merge (= 7.1.0) @@ -197,7 +143,7 @@ PATH version_gem (~> 1.1, >= 1.1.14) PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge specs: ruby-merge (7.1.0) ast-merge (= 7.1.0) @@ -205,28 +151,7 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge - specs: - rust-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb - specs: - smorg-rb (7.1.0) - ast-merge (= 7.1.0) - ast-merge-git (= 7.1.0) - go-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-jem (= 7.1.0) - markly-merge (= 7.1.0) - plain-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/toml-merge specs: toml-merge (7.1.0) ast-merge (= 7.1.0) @@ -234,7 +159,7 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/tree_haver specs: tree_haver (7.1.0) citrus (~> 3.0) @@ -243,28 +168,13 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge - specs: - typescript-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge specs: yaml-merge (7.1.0) ast-merge (= 7.1.0) tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge - specs: - zip-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - GEM remote: https://gem.coop/ specs: @@ -280,6 +190,10 @@ GEM rubocop (>= 1.0) version_gem (~> 1.1, >= 1.1.14) ast (2.4.3) + ast-crispr (7.1.0) + ast-merge (= 7.1.0) + service_actor (~> 3.9) + version_gem (~> 1.1, >= 1.1.9) backports (3.25.3) benchmark (0.5.0) bigdecimal (4.1.2) @@ -328,7 +242,7 @@ GEM dry-logic (~> 1.4) zeitwerk (~> 2.6) emoji_regex (15.0.0) - erb (6.0.5) + erb (6.0.6) gem_bench (2.0.5) bundler (>= 1.14) version_gem (~> 1.1, >= 1.1.4) @@ -347,22 +261,20 @@ GEM rdoc (>= 4.0.0) reline (>= 0.4.2) json (2.21.1) - kettle-dev (2.3.7) + kettle-dev (2.3.8) emoji_regex (>= 15.0) kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) - kettle-drift (1.0.6) - version_gem (~> 1.1, >= 1.1.14) - kettle-rb (0.1.4) - kettle-soup-cover (3.0.3) + kettle-rb (0.1.5) + kettle-soup-cover (3.0.4) kettle-wash (~> 0.1, >= 0.1.0) simplecov (>= 1.0) simplecov-cobertura (>= 4.0) simplecov-console (~> 0.9, >= 0.9.5) simplecov-rcov (~> 0.3, >= 0.3.7) simplecov_lcov_formatter (~> 0.9, >= 0.9.0) - kettle-test (2.0.11) + kettle-test (2.0.12) appraisal2 (~> 3.0, >= 3.0.6) backports (~> 3.0) rspec (~> 3.0) @@ -373,7 +285,7 @@ GEM silent_stream (~> 1.0, >= 1.0.12) timecop-rspec (~> 1.0, >= 1.0.3) turbo_tests2 (~> 3.1, >= 3.1.12) - kettle-wash (0.1.0) + kettle-wash (0.1.1) version_gem (~> 1.1, >= 1.1.14) kramdown (2.5.2) rexml (>= 3.4.4) @@ -493,7 +405,7 @@ GEM rubocop-md (2.0.4) lint_roller (~> 1.1) rubocop (>= 1.72.1) - rubocop-minitest (0.39.1) + rubocop-minitest (0.40.0) lint_roller (~> 1.1) rubocop (>= 1.75.0, < 2.0) rubocop-ast (>= 1.38.0, < 2.0) @@ -590,11 +502,9 @@ GEM delegate (~> 0.1) rspec (~> 3.0) timecop (>= 0.7, < 1) - token-resolver (2.0.4) + token-resolver (2.0.5) parslet (~> 2.0) - version_gem (~> 1.1, >= 1.1.13) - toml (0.3.0) - parslet (>= 1.8.0, < 3.0.0) + version_gem (~> 1.1, >= 1.1.14) toml-rb (4.2.0) citrus (~> 3.0, > 3.0) racc (~> 1.7) @@ -641,31 +551,25 @@ PLATFORMS DEPENDENCIES appraisal2 (~> 3.2, >= 3.2.0) appraisal2-rubocop (~> 1.0, >= 1.0.0) - ast-crispr! ast-crispr-markdown-markly! ast-crispr-ruby-prism! ast-merge! - ast-merge-git! - ast-template! bash-merge! benchmark (~> 0.5, >= 0.5.0) - binary-merge! bundler-audit (~> 0.9.3) cgi (~> 0.5) citrus-toml-merge! commonmarker-merge! debug (>= 1.1) dotenv-merge! - erb (~> 6.0, >= 6.0.5) + erb (~> 6.0, >= 6.0.6) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.4) - go-merge! irb (~> 1.17) json-merge! - kettle-drift (~> 1.0, >= 1.0.6) kettle-jem! kettle-soup-cover (~> 3.0, >= 3.0.3) - kettle-test (~> 2.0, >= 2.0.11) + kettle-test (~> 2.0, >= 2.0.12) kramdown (~> 2.5, >= 2.5.2) kramdown-merge! kramdown-parser-gfm (~> 1.1) @@ -673,8 +577,6 @@ DEPENDENCIES markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) - parslet-toml-merge! - plain-merge! prism-merge! psych-merge! rake (~> 13.0) @@ -685,14 +587,12 @@ DEPENDENCIES rubocop-gradual (~> 0.4, >= 0.4.0) rubocop-lts (~> 24.2, >= 24.2.1) rubocop-lts-rspec (~> 1.0, >= 1.0.5) - rubocop-minitest (~> 0.39, >= 0.39.1) + rubocop-minitest (~> 0.40, >= 0.40.0) rubocop-on-rbs (~> 2.0, >= 2.0.0) rubocop-packaging (~> 0.6, >= 0.6.0) rubocop-ruby3_2 (~> 3.0, >= 3.0.6) ruby-merge! ruby-progressbar (~> 1.13) - rust-merge! - smorg-rb! standard (~> 1.56, >= 1.56.0) stone_checksums (~> 1.0, >= 1.0.6) stringio (>= 3.0) @@ -700,7 +600,6 @@ DEPENDENCIES tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) turbo_tests2 (~> 3.2, >= 3.2.0) - typescript-merge! webrick (~> 1.9) yaml-converter (~> 0.2, >= 0.2.3) yaml-merge! @@ -710,7 +609,6 @@ DEPENDENCIES yard-relative_markdown_links (~> 0.6) yard-timekeeper (~> 0.2, >= 0.2.4) yard-yaml (~> 0.2, >= 0.2.3) - zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af @@ -722,13 +620,10 @@ CHECKSUMS ast-crispr-markdown-markly (7.1.0) ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) - ast-merge-git (7.1.0) - ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd - binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 @@ -751,23 +646,21 @@ CHECKSUMS dry-schema (1.16.0) sha256=cd3aaeabc0f1af66ec82a29096d4c4fb92a0a58b9dae29a22b1bbceb78985727 dry-types (1.9.1) sha256=baebeecdb9f8395d6c9d227b62011279440943e3ef2468fe8ccc1ba11467f178 emoji_regex (15.0.0) sha256=a508b2c0bee561169564e0aec96085020c900520d335e5533fd8e78e59493829 - erb (6.0.5) sha256=858e63488cb796c9daba8b6e9ff4b3879c395022049be9a66a8e00980e612eac + erb (6.0.6) sha256=a9b24986700f5bf127c4f297c5403c3ca41b83b0a316c0cd09a096b56e644ae5 gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f - go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 json-merge (7.1.0) - kettle-dev (2.3.7) sha256=eb370113cd030d03cbe2d33b31c99858951017e5ad21a17e9ed89dc3770028ee - kettle-drift (1.0.6) + kettle-dev (2.3.8) sha256=9d716ff21c660a730cb4e8d41e2e2f0630a28167a354b6e2924e242102aef72c kettle-jem (7.1.0) - kettle-rb (0.1.4) sha256=9cef7ce4f7021666b7222292f29051e51eaf042e8a5db11f3f4dd72f74243fc1 - kettle-soup-cover (3.0.3) sha256=5919649be35690e4580299a41ac7c44a9548a7ca38561ffdd3c683c9d63e6f9b - kettle-test (2.0.11) sha256=c710c90f7ab79d51f9452f0c09f5f90657e7a893f63583855c164d0b1b107ab2 - kettle-wash (0.1.0) sha256=5c04b3900d0957339e7c7d9997bbd804599b68bde002e6f47f4e28a0eea22ea7 + kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f + kettle-soup-cover (3.0.4) + kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 + kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 @@ -786,8 +679,6 @@ CHECKSUMS parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 - parslet-toml-merge (7.1.0) - plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 @@ -824,7 +715,7 @@ CHECKSUMS rubocop-lts (24.2.2) sha256=be6c745e1bb61daebd6af3cc3227c60f95be9f642a080773cad7df14c5f9f174 rubocop-lts-rspec (1.0.5) sha256=439552fd27440802cc499889e013bffa28aadc41adae5d4dfff3d984a2a809b4 rubocop-md (2.0.4) sha256=0d076b6b5e99dea2ddc928c4bd702497decb9a8400da7808091e02ebcafcfb93 - rubocop-minitest (0.39.1) sha256=998398d6da4026d297f0f9bf709a1eac5f2b6947c24431f94af08138510cf7ed + rubocop-minitest (0.40.0) sha256=353c698199115f12151144cf0b5a96f69bb9d77b660cf6536df2c4250c672a9d rubocop-on-rbs (2.0.0) sha256=ce74d1b3d5daead19f4b611623656c185821dfc9aed9c7079bb1e5d7d7c464be rubocop-packaging (0.6.0) sha256=fb92bd0fb48e6f8cdb1648d2249b0cd51c2497dcc87340132d22f01edbf558a7 rubocop-performance (1.26.1) sha256=cd19b936ff196df85829d264b522fd4f98b6c89ad271fa52744a8c11b8f71834 @@ -838,7 +729,6 @@ CHECKSUMS ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 - rust-merge (7.1.0) service_actor (3.9.4) sha256=e63b523630b9a7e62959b2a90113b08d2565b5de9c148557b281ef847c9539ce silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 @@ -846,7 +736,6 @@ CHECKSUMS simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed - smorg-rb (7.1.0) sorbet-runtime (0.6.13347) sha256=54e7221d9f4b63f58aec79f3043752a9ba7810347c6ae0d903531591cc2d5f01 standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b @@ -860,15 +749,13 @@ CHECKSUMS thor (1.5.0) sha256=e3a9e55fe857e44859ce104a84675ab6e8cd59c650a49106a05f55f136425e73 timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 - token-resolver (2.0.4) sha256=33b926958f504525bba3ed511ab66fbcbf8ef30390815e931436b30f27ffcad0 - toml (0.3.0) + token-resolver (2.0.5) sha256=b852f924287ffb58a440856e862b056c8ad97e74b4b2526cee43e0771f40c25c toml-merge (7.1.0) toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 - typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 @@ -882,7 +769,6 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 - zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH diff --git a/gems/kettle-jem/README.md b/gems/kettle-jem/README.md index b52f70a83..880997f55 100644 --- a/gems/kettle-jem/README.md +++ b/gems/kettle-jem/README.md @@ -47,7 +47,7 @@ to build `kettle-jem` extension gems against the supported plugin seam. | Tokens to Remember | [![Gem name][⛳️name-img]][⛳️gem-name] [![Gem namespace][⛳️namespace-img]][⛳️gem-namespace] | |-------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | Works with MRI Ruby 4 | [![Ruby current Compat][💎ruby-c-i]][🚎11-c-wf]| -| Support & Community | [![Join Me on Daily.dev's RubyFriends][✉️ruby-friends-img]][✉️ruby-friends] [![Live Chat on Discord][✉️discord-invite-img-ftb]][✉️discord-invite] [![Get help from me on Upwork][👨🏼‍🏫expsup-upwork-img]][👨🏼‍🏫expsup-upwork] [![Get help from me on Codementor][👨🏼‍🏫expsup-codementor-img]][👨🏼‍🏫expsup-codementor] | +| Support & Community | [![Join Me on Daily.dev's RubyFriends][✉️ruby-friends-img]][✉️ruby-friends] [![Get help from RubyForum][✉️ruby-forum-img]][✉️ruby-forum] [![Live Chat on Discord][✉️discord-invite-img-ftb]][✉️discord-invite] [![Get help from me on Upwork][👨🏼‍🏫expsup-upwork-img]][👨🏼‍🏫expsup-upwork] [![Get help from me on Codementor][👨🏼‍🏫expsup-codementor-img]][👨🏼‍🏫expsup-codementor] | | Source | [![Source on GitLab.com][📜src-gl-img]][📜src-gl] [![Source on CodeBerg.org][📜src-cb-img]][📜src-cb] [![Source on Github.com][📜src-gh-img]][📜src-gh] [![The best SHA: dQw4w9WgXcQ!][🧮kloc-img]][🧮kloc] | | Documentation | [![Current release on RubyDoc.info][📜docs-cr-rd-img]][🚎yard-current] [![YARD on Galtzo.com][📜docs-head-rd-img]][🚎yard-head] [![Maintainer Blog][🚂maint-blog-img]][🚂maint-blog] [![GitLab Wiki][📜gl-wiki-img]][📜gl-wiki] [![GitHub Wiki][📜gh-wiki-img]][📜gh-wiki] | | Compliance | [![License: AGPL-3.0-only OR PolyForm-Small-Business-1.0.0][📄license-img]][📄license] [![Apache license compatibility: Category X][📄license-compat-img]][📄license-compat] [![📄ilo-declaration-img]][📄ilo-declaration] [![Security Policy][🔐security-img]][🔐security] [![Contributor Covenant 2.1][🪇conduct-img]][🪇conduct] [![SemVer 2.0.0][📌semver-img]][📌semver] | @@ -87,6 +87,8 @@ The _amazing_ test matrix is powered by the kettle-dev stack. This gem is part of the StructuredMerge Ruby package family. The implementation inventory, layering model, and backend notes live in the [root package-family guide][sm-family-guide]. Shared behavior is defined by the [StructuredMerge fixtures][sm-family-fixtures] and implemented by the [Go][sm-family-go], [Ruby][sm-family-ruby], [Rust][sm-family-rust], and [TypeScript][sm-family-typescript] repositories. +Merge analysis must enter parsing through `tree_haver`. Parser-specific gems register concrete TreeHaver backends; substrate gems register grammar mappings and keep shared format or language merge behavior in one place. Missing backends fail closed instead of falling back to direct parser-library calls. +
        [sm-family-guide]: https://github.com/structuredmerge/structuredmerge-ruby#package-family @@ -648,6 +650,8 @@ Thanks for RTFM. ☺️ [✉️discord-invite-img-ftb]: https://img.shields.io/discord/1373797679469170758?style=for-the-badge&logo=discord [✉️ruby-friends-img]: https://img.shields.io/badge/daily.dev-%F0%9F%92%8E_Ruby_Friends-0A0A0A?style=for-the-badge&logo=dailydotdev&logoColor=white [✉️ruby-friends]: https://app.daily.dev/squads/rubyfriends +[✉️ruby-forum-img]: https://img.shields.io/badge/RubyForum-Help-CC342D?style=for-the-badge&logo=ruby&logoColor=white +[✉️ruby-forum]: https://www.rubyforum.org/c/help/8 [✇bundle-group-pattern]: https://gist.github.com/pboling/4564780 [⛳️gem-namespace]: https://github.com/structuredmerge/structuredmerge-ruby/tree/main/gems/kettle-jem diff --git a/gems/kettle-jem/Rakefile b/gems/kettle-jem/Rakefile index c9b733eba..d4c7fb289 100644 --- a/gems/kettle-jem/Rakefile +++ b/gems/kettle-jem/Rakefile @@ -6,7 +6,7 @@ # kettle-jem will then preserve content between those markers across template runs. # kettle-jem:unfreeze -# kettle-jem Rakefile v7.1.0 - 2026-07-19 +# kettle-jem Rakefile v7.1.0 - 2026-07-21 # Ruby 2.3 (Safe Navigation) or higher required # # See LICENSE.md for license information. diff --git a/gems/kettle-jem/gemfiles/modular/erb/r3/v5.0.gemfile b/gems/kettle-jem/gemfiles/modular/erb/r3/v5.0.gemfile index 5bde0e077..1bd029cc1 100644 --- a/gems/kettle-jem/gemfiles/modular/erb/r3/v5.0.gemfile +++ b/gems/kettle-jem/gemfiles/modular/erb/r3/v5.0.gemfile @@ -1 +1 @@ -gem "erb", "~> 6.0", ">= 6.0.5" # ruby >= 3.2.0 +gem "erb", "~> 6.0", ">= 6.0.6" # ruby >= 3.2.0 diff --git a/gems/kettle-jem/gemfiles/modular/erb/r4/v5.0.gemfile b/gems/kettle-jem/gemfiles/modular/erb/r4/v5.0.gemfile index 5bde0e077..1bd029cc1 100644 --- a/gems/kettle-jem/gemfiles/modular/erb/r4/v5.0.gemfile +++ b/gems/kettle-jem/gemfiles/modular/erb/r4/v5.0.gemfile @@ -1 +1 @@ -gem "erb", "~> 6.0", ">= 6.0.5" # ruby >= 3.2.0 +gem "erb", "~> 6.0", ">= 6.0.6" # ruby >= 3.2.0 diff --git a/gems/kettle-jem/gemfiles/modular/style.gemfile b/gems/kettle-jem/gemfiles/modular/style.gemfile index f027dae4d..35de4dcd6 100644 --- a/gems/kettle-jem/gemfiles/modular/style.gemfile +++ b/gems/kettle-jem/gemfiles/modular/style.gemfile @@ -14,7 +14,7 @@ gem "reek", "~> 6.5", ">= 6.5.0" platform :mri do gem "appraisal2-rubocop", "~> 1.0", ">= 1.0.0", require: false gem "rubocop-gradual", "~> 0.4", ">= 0.4.0" - gem "rubocop-minitest", "~> 0.39", ">= 0.39.1" + gem "rubocop-minitest", "~> 0.40", ">= 0.40.0" gem "rubocop-on-rbs", "~> 2.0", ">= 2.0.0" # ruby >= 3.2.0 # gem "rubocop", "~> 1.73", ">= 1.73.2" # constrained by standard gem "rubocop-packaging", "~> 0.6", ">= 0.6.0" diff --git a/gems/kettle-jem/kettle-jem.gemspec b/gems/kettle-jem/kettle-jem.gemspec index cde94de51..f378e6c7d 100644 --- a/gems/kettle-jem/kettle-jem.gemspec +++ b/gems/kettle-jem/kettle-jem.gemspec @@ -47,11 +47,8 @@ Gem::Specification.new do |spec| spec.metadata["rubygems_mfa_required"] = "true" enumerate_package_files = lambda do |root| - absolute_root = File.join(__dir__, root) - Dir.glob(File.join(absolute_root, "**", "*"), File::FNM_DOTMATCH).filter_map do |path| - next unless File.file?(path) && ![".", ".."].include?(File.basename(path)) - - path.delete_prefix("#{__dir__}/") + Dir.glob(File.join(root, "**", "*"), File::FNM_DOTMATCH).select do |path| + File.file?(path) && ![".", ".."].include?(File.basename(path)) end end package_metadata_files = %w[ @@ -70,7 +67,7 @@ Gem::Specification.new do |spec| # Executables and executable support scripts *enumerate_package_files.call("exe"), # Extra package files configured by .structuredmerge/kettle-jem.yml - *enumerate_package_files.call("certs") + *Dir.glob("certs/**", File::FNM_DOTMATCH).select { |path| File.file?(path) } ] spec.rdoc_options += [ "--title", @@ -138,13 +135,17 @@ Gem::Specification.new do |spec| # Testing spec.add_development_dependency("appraisal2", "~> 3.2", ">= 3.2.0") # ruby >= 1.8.7, for testing against multiple versions of dependencies - spec.add_development_dependency("kettle-test", "~> 2.0", ">= 2.0.11") # ruby >= 4.0.0 + spec.add_development_dependency("kettle-test", "~> 2.0", ">= 2.0.12") # ruby >= 4.0.0 spec.add_development_dependency("turbo_tests2", "~> 3.2", ">= 3.2.0") # ruby >= 2.4.0, default kettle-test runner # Releasing spec.add_development_dependency("ruby-progressbar", "~> 1.13") # ruby >= 0 spec.add_development_dependency("stone_checksums", "~> 1.0", ">= 1.0.6") # ruby >= 2.2.0 + # Development tasks + # The cake is a lie. erb v2.2, the oldest release, was never compatible with Ruby 2.3. + # This means we have no choice but to use the erb that shipped with Ruby 2.3 + # /opt/hostedtoolcache/Ruby/2.3.8/x64/lib/ruby/gems/2.3.0/gems/erb-2.2.2/lib/erb.rb:670:in `prepare_trim_mode': undefined method `match?' for "-":String (NoMethodError) # spec.add_development_dependency("erb", ">= 2.2") # ruby >= 2.3.0, not SemVer, old rubies get dropped in a patch. spec.add_development_dependency("gitmoji-regex", "~> 2.0", ">= 2.0.4") # ruby >= 2.4 end diff --git a/gems/kettle-jem/lib/kettle/jem.rb b/gems/kettle-jem/lib/kettle/jem.rb index 5c8f15d0c..3053eea4d 100644 --- a/gems/kettle-jem/lib/kettle/jem.rb +++ b/gems/kettle-jem/lib/kettle/jem.rb @@ -341,16 +341,16 @@ class Error < StandardError; end /\Atemplate_obsolete_license_cleanup_/, /\Atemplate_shim_profile_cleanup_/ ]) - GITHUB_ACTIONS_FRAMEWORK_GEMFILE_RECIPE = /\Agithub_actions_framework_gemfile_/.freeze - GITHUB_ACTIONS_OBSOLETE_WORKFLOW_CLEANUP_RECIPE = /\Agithub_actions_obsolete_workflow_cleanup_/.freeze - GITHUB_ACTIONS_OPT_IN_WORKFLOW_CLEANUP_RECIPE = /\Agithub_actions_opt_in_workflow_cleanup_/.freeze - OPENCOLLECTIVE_DISABLED_FILE_CLEANUP_RECIPE = /\Aopencollective_disabled_file_cleanup_/.freeze - TEMPLATE_LEGACY_DESTINATION_CLEANUP_RECIPE = /\Atemplate_legacy_destination_cleanup_/.freeze - TEMPLATE_OBSOLETE_LICENSE_CLEANUP_RECIPE = /\Atemplate_obsolete_license_cleanup_/.freeze - TEMPLATE_SHIM_PROFILE_CLEANUP_RECIPE = /\Atemplate_shim_profile_cleanup_/.freeze - GITHUB_ACTIONS_WORKFLOW_SNIPPETS_RECIPE = /\Agithub_actions_workflow_snippets_/.freeze - TEMPLATE_SOURCE_PREFERENCE_RECIPE = /\Atemplate_source_preference_/.freeze - TEMPLATE_SOURCE_APPLICATION_RECIPE = /\Atemplate_source_application_/.freeze + GITHUB_ACTIONS_FRAMEWORK_GEMFILE_RECIPE = /\Agithub_actions_framework_gemfile_/ + GITHUB_ACTIONS_OBSOLETE_WORKFLOW_CLEANUP_RECIPE = /\Agithub_actions_obsolete_workflow_cleanup_/ + GITHUB_ACTIONS_OPT_IN_WORKFLOW_CLEANUP_RECIPE = /\Agithub_actions_opt_in_workflow_cleanup_/ + OPENCOLLECTIVE_DISABLED_FILE_CLEANUP_RECIPE = /\Aopencollective_disabled_file_cleanup_/ + TEMPLATE_LEGACY_DESTINATION_CLEANUP_RECIPE = /\Atemplate_legacy_destination_cleanup_/ + TEMPLATE_OBSOLETE_LICENSE_CLEANUP_RECIPE = /\Atemplate_obsolete_license_cleanup_/ + TEMPLATE_SHIM_PROFILE_CLEANUP_RECIPE = /\Atemplate_shim_profile_cleanup_/ + GITHUB_ACTIONS_WORKFLOW_SNIPPETS_RECIPE = /\Agithub_actions_workflow_snippets_/ + TEMPLATE_SOURCE_PREFERENCE_RECIPE = /\Atemplate_source_preference_/ + TEMPLATE_SOURCE_APPLICATION_RECIPE = /\Atemplate_source_application_/ DECISION_NO_WRITE_ACTIONS = %w[keep skip].freeze RUBY_TEMPLATE_POLICY_FILE_TYPES = %i[gemfile gemspec appraisals].freeze GEMFILE_POLICY_SELF_DEPENDENCIES = %w[appraisal].freeze @@ -373,11 +373,11 @@ class Error < StandardError; end "jruby" => "jruby", "truffleruby" => "truffleruby" }.freeze - CHANGELOG_TRANSFER_KEY_SEPARATOR = /\s+-\s+/.freeze - CHANGELOG_TRANSFER_KEY_PATTERN = /\Akettle-jem-template-\d{8}-\d{3}\z/.freeze - CHANGELOG_TRANSFER_KEY_SCAN_PATTERN = /\bkettle-jem-template-\d{8}-\d{3}\b/.freeze - README_KLOC_BADGE_PATTERN = /(\[🧮kloc-img\]:\s*https?:\/\/img\.shields\.io\/badge\/KLOC-)(\d+(?:\.\d+)?)(-[^\s]*)/.freeze - CHANGELOG_COVERAGE_KLOC_PATTERN = /-\s*COVERAGE:\s*.+--\s*\d+\/(\d+)\s+lines/i.freeze + CHANGELOG_TRANSFER_KEY_SEPARATOR = /\s+-\s+/ + CHANGELOG_TRANSFER_KEY_PATTERN = /\Akettle-jem-template-\d{8}-\d{3}\z/ + CHANGELOG_TRANSFER_KEY_SCAN_PATTERN = /\bkettle-jem-template-\d{8}-\d{3}\b/ + README_KLOC_BADGE_PATTERN = /(\[🧮kloc-img\]:\s*https?:\/\/img\.shields\.io\/badge\/KLOC-)(\d+(?:\.\d+)?)(-[^\s]*)/ + CHANGELOG_COVERAGE_KLOC_PATTERN = /-\s*COVERAGE:\s*.+--\s*\d+\/(\d+)\s+lines/i RUBY_TEMPLATE_BASENAMES = %w[Gemfile Rakefile Appraisals Appraisal.root.gemfile .simplecov].freeze RUBY_TEMPLATE_SUFFIXES = %w[.gemspec .gemfile].freeze RUBY_TEMPLATE_EXTENSIONS = %w[.rb .rake].freeze @@ -3751,7 +3751,11 @@ def execute_recipe_reports_classified(project_root:, recipes:, facts:, files:, t thread_worker_count: thread_worker_count, thread_spawns: thread_worker_count, thread_recipes: use_threads ? indexed_recipes.length : 0, - main_recipes: use_threads ? 0 : main_only.length + (use_ractors ? 0 : worker_safe.length) + main_recipes: if use_threads + 0 + else + main_only.length + (use_ractors ? 0 : worker_safe.length) + end ) if use_threads reports_by_index.merge!( @@ -3769,26 +3773,26 @@ def execute_recipe_reports_classified(project_root:, recipes:, facts:, files:, t else reports_by_index.merge!( if use_ractors - execute_worker_safe_recipe_reports_ractor( - project_root: project_root, - indexed_recipes: worker_safe, - facts: facts, - files: files, - template_contents: template_contents, - decision_policy: decision_policy, - env: env, - workers: worker_count - ) + execute_worker_safe_recipe_reports_ractor( + project_root: project_root, + indexed_recipes: worker_safe, + facts: facts, + files: files, + template_contents: template_contents, + decision_policy: decision_policy, + env: env, + workers: worker_count + ) else - execute_indexed_recipe_reports( - project_root: project_root, - indexed_recipes: worker_safe, - facts: facts, - files: files, - template_contents: template_contents, - decision_policy: decision_policy, - env: env - ) + execute_indexed_recipe_reports( + project_root: project_root, + indexed_recipes: worker_safe, + facts: facts, + files: files, + template_contents: template_contents, + decision_policy: decision_policy, + env: env + ) end ) reports_by_index.merge!( @@ -4136,13 +4140,15 @@ def with_readme_timing(name) timings << {name: name.to_s, status: "ok", duration_ms: duration_ms_since(started_at)} result rescue => error - timings << { - name: name.to_s, - status: "failed", - duration_ms: duration_ms_since(started_at), - error_class: error.class.name, - error_message: error.message - } if timings && started_at + if timings && started_at + timings << { + name: name.to_s, + status: "failed", + duration_ms: duration_ms_since(started_at), + error_class: error.class.name, + error_message: error.message + } + end raise end @@ -10920,7 +10926,7 @@ def write_intent_from_recipe_report(project_root, recipe_report) relative_path = recipe_report.fetch(:relative_path) action = recipe_report.dig(:metadata, :delete_file) ? :delete : :write - content = action == :write ? recipe_report.fetch(:final_content) : nil + content = (action == :write) ? recipe_report.fetch(:final_content) : nil WriteIntent.new( relative_path: relative_path, absolute_path: File.join(project_root, relative_path), @@ -10974,11 +10980,9 @@ def mkdir_p_core(path) dir = parent end pending.reverse_each do |entry| - begin - Dir.mkdir(entry) unless Dir.exist?(entry) - rescue Errno::EEXIST - nil - end + Dir.mkdir(entry) unless Dir.exist?(entry) + rescue Errno::EEXIST + nil end end diff --git a/gems/kettle-jem/lib/kettle/jem/tasks/install_task.rb b/gems/kettle-jem/lib/kettle/jem/tasks/install_task.rb index a117c7ccc..3341c781d 100644 --- a/gems/kettle-jem/lib/kettle/jem/tasks/install_task.rb +++ b/gems/kettle-jem/lib/kettle/jem/tasks/install_task.rb @@ -595,14 +595,14 @@ def run_bundle_setup_commands(project_root, env:, run_options:, command_runner:) command_runner: command_runner ) ] - if Kettle::Jem::DecisionPolicy.value_to_boolean((run_options || {})[:skip_binstubs]) - steps << { + steps << if Kettle::Jem::DecisionPolicy.value_to_boolean((run_options || {})[:skip_binstubs]) + { name: "bundle_binstubs", status: "skipped", reason: "skip_binstubs" } else - steps << run_command_step( + run_command_step( "bundle_binstubs", bundle_binstubs_command(project_root, env: env), project_root: project_root, diff --git a/gems/kettle-jem/spec/e2e/rubygems_thin_vertical_slice_spec.rb b/gems/kettle-jem/spec/e2e/rubygems_thin_vertical_slice_spec.rb index 8580fc8d4..33e923bfb 100644 --- a/gems/kettle-jem/spec/e2e/rubygems_thin_vertical_slice_spec.rb +++ b/gems/kettle-jem/spec/e2e/rubygems_thin_vertical_slice_spec.rb @@ -71,5 +71,4 @@ ) end end - end diff --git a/gems/kettle-jem/spec/integration/appraisal_helper_and_token_spec.rb b/gems/kettle-jem/spec/integration/appraisal_helper_and_token_spec.rb index 9866dd234..9bad0722c 100644 --- a/gems/kettle-jem/spec/integration/appraisal_helper_and_token_spec.rb +++ b/gems/kettle-jem/spec/integration/appraisal_helper_and_token_spec.rb @@ -92,7 +92,6 @@ RUBY end - it "plans deterministic appraisal matrices from supplied version metadata" do versions = %w[5.0.0 5.1.0 5.2.0 6.0.0 6.1.0 7.0.0 7.1.0 7.2.0].map do |number| {number: number} @@ -146,7 +145,6 @@ ) end - it "detects appraisal Ruby seams and assigns selected versions to buckets" do versions = [ {number: "5.2.8", min_ruby: "2.3"}, @@ -187,7 +185,6 @@ ) end - it "resolves appraisal sub-dependencies from supplied metadata" do resolved = described_class.appraisal_resolve_sub_dependencies( parent_gem: "activerecord", @@ -215,7 +212,6 @@ expect(resolved).to eq("sqlite3" => "1.6.9") end - it "resolves RubyGems version metadata through a cacheable Kettle/Jem resolver" do response = Struct.new(:code, :body) calls = [] @@ -280,7 +276,6 @@ ) end - it "loads gemspec metadata through Kettle/Jem GemSpecReader" do Dir.mktmpdir do |project_root| write_tree( @@ -324,7 +319,6 @@ described_class::GemSpecReader.clear_cache! end - it "ports appraisal CLI config orchestration helpers into Kettle/Jem" do gemspec_content = <<~RUBY Gem::Specification.new do |spec| @@ -422,7 +416,6 @@ def min_ruby_version(gem_name, version) )).to be false end - it "plans stale flat appraisal gemfile cleanup paths" do stale_paths = described_class.appraisal_stale_gemfile_paths( existing_paths: [ @@ -439,7 +432,6 @@ def min_ruby_version(gem_name, version) expect(stale_paths).to eq(["gemfiles/kja-ar-6-1-r2.gemfile"]) end - it "honors author template token config and environment overrides" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -509,7 +501,6 @@ def min_ruby_version(gem_name, version) end end - it "applies author email environment overrides to gemspec and destination config" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -574,7 +565,6 @@ def min_ruby_version(gem_name, version) end end - it "preserves existing multi-author gemspec metadata in packaged gemspec templates" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -612,7 +602,6 @@ def min_ruby_version(gem_name, version) end end - it "derives author names from copyright holders when gemspec authors are absent" do author = described_class.send( :author_facts, @@ -631,7 +620,6 @@ def min_ruby_version(gem_name, version) ) end - it "honors forge user template token config and environment overrides" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -689,7 +677,6 @@ def min_ruby_version(gem_name, version) end end - it "honors supported funding platform template token config and environment overrides" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -746,7 +733,6 @@ def min_ruby_version(gem_name, version) end end - it "normalizes SECURITY.md supported version token from the gem version" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -791,7 +777,6 @@ def min_ruby_version(gem_name, version) end end - it "honors social template token config and environment overrides" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -849,7 +834,6 @@ def min_ruby_version(gem_name, version) end end - it "projects license template tokens from configured licenses" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -927,7 +911,6 @@ def min_ruby_version(gem_name, version) end end - it "uses MIT as the License-Eye compatibility license when MIT is configured" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -975,7 +958,6 @@ def min_ruby_version(gem_name, version) end end - it "formats README metadata SPDX license identifiers as code spans" do block = described_class.readme_metadata_block( package: { @@ -996,7 +978,6 @@ def min_ruby_version(gem_name, version) expect(block).to include("| License | `AGPL-3.0-only` OR `PolyForm-Small-Business-1.0.0` |") end - it "formats README metadata values as Markdown table cells" do block = described_class.readme_metadata_block( package: { @@ -1018,7 +999,6 @@ def min_ruby_version(gem_name, version) expect(block).not_to include("First line\n") end - it "renders optional FOSSA README badge tokens from configuration" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -1044,7 +1024,6 @@ def min_ruby_version(gem_name, version) end end - it "disables coverage integrations across README badges, upload steps, templates, and config cleanup" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -1088,7 +1067,6 @@ def min_ruby_version(gem_name, version) end end - it "keeps coverage integrations active when only README badges are disabled" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -1126,7 +1104,6 @@ def min_ruby_version(gem_name, version) end end - it "supports partial coverage integration disablement" do config = { "integrations" => { @@ -1163,7 +1140,6 @@ def min_ruby_version(gem_name, version) expect(described_class.append_github_actions_coverage_steps(workflow_without_steps, disabled_integrations: [])).to eq(workflow_without_steps) end - it "disables SkyWalking Eyes from boolean keys and disabled lists" do expect(described_class.disabled_integrations( { @@ -1184,7 +1160,6 @@ def min_ruby_version(gem_name, version) )).to include("skywalking-eyes") end - it "defaults SkyWalking Eyes off unless a compatible license is configured" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -1223,7 +1198,6 @@ def min_ruby_version(gem_name, version) end end - it "keeps SkyWalking Eyes enabled for MIT licenses and explicit opt-in" do mit_config = { "templates" => { @@ -1249,7 +1223,6 @@ def min_ruby_version(gem_name, version) ) end - it "applies configured licenses to merged gemspec output" do template = <<~RUBY Gem::Specification.new do |spec| @@ -1275,7 +1248,6 @@ def min_ruby_version(gem_name, version) expect(output).to include('spec.licenses = ["AGPL-3.0-only", "PolyForm-Small-Business-1.0.0"]') end - it "escapes and de-duplicates emoji in gemspec summary and description tokens" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -1322,7 +1294,6 @@ def min_ruby_version(gem_name, version) end end - it "refreshes README metadata during template-source README application" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -1377,7 +1348,6 @@ def min_ruby_version(gem_name, version) end end - it "applies and prunes root license files from configured licenses" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -1434,7 +1404,6 @@ def min_ruby_version(gem_name, version) end end - it "does not package configured named license files in the generated gemspec by default" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -1472,7 +1441,6 @@ def min_ruby_version(gem_name, version) end end - it "renders configured extra package files in the generated gemspec" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -1513,7 +1481,6 @@ def min_ruby_version(gem_name, version) end end - it "does not package multiple configured named license files in the generated gemspec by default" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -1553,7 +1520,6 @@ def min_ruby_version(gem_name, version) end end - it "projects copyright holders from git blame into license templates" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -1657,7 +1623,6 @@ module Example end end - it "falls back to configured author copyright sections when git blame is unavailable" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -1708,5 +1673,4 @@ module Example expect(readme_report.fetch(:final_content)).to include("- #{expected_line}") end end - end diff --git a/gems/kettle-jem/spec/integration/appraisals_and_gemfile_template_spec.rb b/gems/kettle-jem/spec/integration/appraisals_and_gemfile_template_spec.rb index ced361080..712a0f1e9 100644 --- a/gems/kettle-jem/spec/integration/appraisals_and_gemfile_template_spec.rb +++ b/gems/kettle-jem/spec/integration/appraisals_and_gemfile_template_spec.rb @@ -96,7 +96,6 @@ end end - it "keeps Appraisals recording gemfiles only when configured" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -138,7 +137,6 @@ end end - it "ports old Appraisals template behavior without losing custom destination blocks" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -190,7 +188,6 @@ end end - it "preserves destination additions inside same-named Appraisal blocks" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -237,7 +234,6 @@ end end - it "collapses framework appraisals onto standard appraisals without overwriting kept framework gemfiles" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -337,7 +333,6 @@ end end - it "adds configured support gemfiles to standard test Appraisal blocks" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -403,7 +398,6 @@ end end - it "does not add broad standard support gemfiles to collapsed framework appraisals" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -464,7 +458,6 @@ end end - it "adds standard gemfiles beside ordinary support gemfiles while respecting framework fragments" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -531,7 +524,6 @@ end end - it "prunes GitHub workflow appraisal matrix entries below minimum Ruby" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -583,7 +575,6 @@ end end - it "runs TruffleRuby dep-heads directly from the generated appraisal gemfile" do template = File.read(project_root.join("lib/kettle/jem/templates/.github/workflows/dep-heads.yml.example")) @@ -595,7 +586,6 @@ expect(template).to include("run: bundle exec ${{ matrix.exec_cmd }}") end - it "serializes legacy engine setup-ruby workaround in generated CI workflows" do ci = { default_branch: "main", @@ -670,7 +660,6 @@ expect(packaged_workflow).to include(" bundle install --jobs 1") end - it "serializes RSpec status cache steps in generated CI workflows" do ci = { default_branch: "main", @@ -713,7 +702,6 @@ ) end - it "ports old modular Gemfile ruby-bucket eval_gemfile replacement" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -757,7 +745,6 @@ end end - it "preserves destination-only main Gemfile ruby-bucket eval_gemfile entries" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -814,7 +801,6 @@ end end - it "repairs missing main Gemfile recording evals from configured Appraisals" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -875,7 +861,6 @@ end end - it "removes the destination package from the main Gemfile" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -935,7 +920,6 @@ end end - it "merges modular local Gemfile dependency lists while preserving the destination package" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -992,7 +976,6 @@ end end - it "adds configured kettle plugins to the kettle-rb local Gemfile overrides" do runtime = described_class.send( :project_runtime_facts, @@ -1012,7 +995,6 @@ expect(tokens.fetch("KJ|PACKAGE_NAME")).to eq("example") end - it "exposes package summary and description tokens for generated metadata" do tokens = described_class.send( :template_tokens, @@ -1032,7 +1014,6 @@ expect(tokens.fetch("KJ|PACKAGE_DESCRIPTION")).to eq("Example description") end - it "templates spec helper coverage bootstrap before loading the library" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -1085,7 +1066,6 @@ end end - it "preserves destination spec helper support wiring while adding template bootstrap" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -1155,7 +1135,6 @@ end end - it "treats packaged local Gemfiles as template-owned by default" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -1200,7 +1179,6 @@ end end - it "excludes the current gem and already declared gems from documentation local path overrides" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -1234,7 +1212,6 @@ end end - it "generates nomono in the main Gemfile before local workspace overrides need it" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -1268,7 +1245,6 @@ end end - it "does not generate a duplicate nomono dependency in nomono's own main Gemfile" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -1298,7 +1274,6 @@ end end - it "adds nomono bootstrap to existing main Gemfiles before templating local overrides" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -1338,7 +1313,6 @@ end end - it "treats packaged CITATION.cff as template-owned metadata by default" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -1387,7 +1361,6 @@ end end - it "removes the destination package from arbitrary modular Gemfile dependency lists" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -1447,7 +1420,6 @@ end end - it "removes gemspec runtime dependencies from modular Gemfile dependency lists" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -1495,7 +1467,6 @@ end end - it "generates shunted.gemfile entries from resolved development dependency Ruby floors" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -1579,5 +1550,4 @@ def parse_min_ruby(requirement) expect(File.read(File.join(root, "gemfiles/modular/shunted.gemfile"))).to eq(reapplied) end end - end diff --git a/gems/kettle-jem/spec/integration/config_metadata_template_spec.rb b/gems/kettle-jem/spec/integration/config_metadata_template_spec.rb index 856f21bd3..cf231d888 100644 --- a/gems/kettle-jem/spec/integration/config_metadata_template_spec.rb +++ b/gems/kettle-jem/spec/integration/config_metadata_template_spec.rb @@ -92,7 +92,6 @@ end end - it "honors configured project runtime URI tokens when ENV is absent" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -133,7 +132,6 @@ end end - it "syncs ENV-backed values back into kettle config during templating" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -198,7 +196,6 @@ end end - it "prunes legacy kettle config keys after their replacement exists" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -245,7 +242,6 @@ end end - it "migrates legacy-only README top logo mode config" do content = <<~YAML readme: @@ -260,7 +256,6 @@ expect(config.fetch("readme")).not_to have_key("top_logo_mode") end - it "migrates comma-separated legacy README top logo mode config" do content = <<~YAML readme: @@ -275,7 +270,6 @@ expect(config.fetch("readme")).not_to have_key("top_logo_mode") end - it "preserves explicit kettle config values while refreshing the config template" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -319,7 +313,6 @@ end end - it "normalizes combined top logo config when Synopsis H2 logos already exist" do content = <<~YAML readme: @@ -334,7 +327,6 @@ expect(config.dig("readme", "h2_synopsis_logos")).to eq("related-org,ruby") end - it "derives source and forge tokens from git origin when gemspec metadata is absent" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -375,7 +367,6 @@ end end - it "prefers git origin over stale generated gemspec homepage metadata" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -431,7 +422,6 @@ end end - it "merges destination gemspec files entries into the template files assignment" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -492,7 +482,6 @@ end end - it "replaces old broad generated gemspec manifests with the minimal package manifest" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -584,7 +573,6 @@ end end - it "merges recursive config package files without preserving stale frozen files overrides" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -649,7 +637,6 @@ end end - it "unions literal Dir gemspec files assignments from destination and template" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -697,7 +684,6 @@ end end - it "fails hard on unsupported custom nonliteral destination gemspec files assignments" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -742,7 +728,6 @@ end end - it "preserves destination splat files assignments without appending duplicate template splats" do template = <<~RUBY Gem::Specification.new do |spec| @@ -799,7 +784,6 @@ expect(merged.scan(/\*enumerate_package_files\.call\(["']lib["']\)/).size).to eq(1) end - it "supports the generated Dir plus Array gemspec files assignment shape" do template = <<~RUBY Gem::Specification.new do |spec| @@ -859,7 +843,6 @@ expect(merged.scan("spec.files =").size).to eq(1) end - it "projects README top logo template tokens" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -909,7 +892,6 @@ end end - it "allows README logo options to override rendered widths" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -951,7 +933,6 @@ end end - it "renders configured corporate sponsor logos near the top of README" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -1002,7 +983,6 @@ end end - it "renders corporate sponsors inherited from kettle-family environment" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -1053,7 +1033,6 @@ end end - it "keeps generated Synopsis H2 logo HTML when normalizing existing README headings and prunes stale logo refs" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -1111,7 +1090,6 @@ end end - it "separates full template profile from monorepo sub-project URL topology" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -1158,7 +1136,6 @@ end end - it "does not invent a gems path for a monorepo topology when the project is the git root" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -1207,7 +1184,6 @@ end end - it "projects README logo row entries from named logo options" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -1254,7 +1230,6 @@ end end - it "deduplicates README logos by asset while preserving the related-org link" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -1298,7 +1273,6 @@ end end - it "maps legacy README top logo modes to named logo options" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -1340,7 +1314,6 @@ end end - it "projects configured README logo row entries by normalized logo type" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -1396,7 +1369,6 @@ end end - it "fails fast when template application leaves unresolved tokens" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -1426,7 +1398,6 @@ end end - it "reports template checksum drift" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -1476,7 +1447,6 @@ end end - it "reports duplicate drift during template apply runs" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -1521,7 +1491,6 @@ end end - it "skips duplicate drift checks when requested" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -1548,7 +1517,6 @@ end end - it "exposes template root and manifest metadata for adjacent tools" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -1576,7 +1544,6 @@ end end - it "renders self-test and templating diagnostics reports" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -1670,7 +1637,6 @@ end end - it "derives run stats from recipe reports" do stats = described_class.recipe_run_stats( [ @@ -1696,7 +1662,6 @@ ) end - it "reports the Kettle/Jem non-interactive decision policy and recipe defaults" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -1806,7 +1771,6 @@ end end - it "hard-fails decision evaluation only when no fatal default is available" do policy = described_class::DecisionPolicy.from_env({"force" => "true"}) expect do @@ -1820,7 +1784,6 @@ end.to raise_error(Kettle::Jem::Error, /No safe default decision/) end - it "reports git preflight state and lets skip-commit bypass clean-worktree enforcement" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -1854,7 +1817,6 @@ end end - it "loads configured plugins and runs apply-time phase hooks" do plugin_module = Module.new do class << self @@ -1961,7 +1923,6 @@ def register_kettle_jem_plugin(registrar) end end - it "keeps direct sibling runtime dependencies available during lockfile normalization" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -2034,7 +1995,6 @@ def register_kettle_jem_plugin(registrar) end end - it "generates templating-aware main Gemfile nomono wiring for direct sibling runtime dependencies" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -2117,7 +2077,6 @@ def register_kettle_jem_plugin(registrar) end end - it "collapses repeated direct sibling runtime dependency wiring in the main Gemfile" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -2221,7 +2180,6 @@ def register_kettle_jem_plugin(registrar) end end - it "does not path-wire direct sibling dependencies when the sibling directory has a different gemspec name" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -2305,7 +2263,6 @@ def register_kettle_jem_plugin(registrar) end end - it "keeps the nomono requirements assignment before an existing nomono gem call" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -2366,7 +2323,6 @@ def register_kettle_jem_plugin(registrar) end end - it "does not add generic direct sibling wiring for gems already handled by local modular Gemfiles" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -2429,7 +2385,6 @@ def register_kettle_jem_plugin(registrar) end end - it "preserves local modular runtime wiring declared through nomono local gem lists" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) diff --git a/gems/kettle-jem/spec/integration/coverage_template_spec.rb b/gems/kettle-jem/spec/integration/coverage_template_spec.rb index a0a5db9df..d664c2bd1 100644 --- a/gems/kettle-jem/spec/integration/coverage_template_spec.rb +++ b/gems/kettle-jem/spec/integration/coverage_template_spec.rb @@ -38,7 +38,6 @@ expect(output).not_to include("track_files") end - it "removes obsolete .simplecov keep_destination config during config sync" do content = <<~YAML defaults: @@ -59,7 +58,6 @@ expect(output).not_to include(".simplecov:") end - it "normalizes stale spec helper SimpleCov bootstrap without dropping local wiring" do content = <<~RUBY # frozen_string_literal: true @@ -90,7 +88,6 @@ expect(output).not_to include("`.simplecov` is run here") end - it "upgrades modifier-form spec helper SimpleCov bootstrap to the kettle-soup-cover startup block" do content = <<~RUBY # frozen_string_literal: true @@ -119,7 +116,6 @@ expect(output).not_to include("`.simplecov` is run here") end - it "updates old generated SimpleCov files in the same templating pass that removes keep_destination" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -189,5 +185,4 @@ expect(kettle_config.fetch(:final_content)).not_to include(".simplecov:") end end - end diff --git a/gems/kettle-jem/spec/integration/gemspec_template_spec.rb b/gems/kettle-jem/spec/integration/gemspec_template_spec.rb index 92efa3b34..33ac0bddc 100644 --- a/gems/kettle-jem/spec/integration/gemspec_template_spec.rb +++ b/gems/kettle-jem/spec/integration/gemspec_template_spec.rb @@ -94,7 +94,6 @@ end end - it "normalizes preserved gemspec lines to the template block receiver" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -151,7 +150,6 @@ end end - it "lets configured rubygems minimum Ruby override preserved gemspec Ruby floor" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -192,7 +190,6 @@ end end - it "inlines gemspec version loading when minimum Ruby is at least 3.1" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -273,7 +270,6 @@ end end - it "rewrites preserved dependency requirements that interpolate the project version constant" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -341,7 +337,6 @@ module Version end end - it "keeps gemspec legacy version loading with require_relative when minimum Ruby is below 3.1 and at least 2.2" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -392,7 +387,6 @@ module Version end end - it "keeps load-path gemspec legacy version loading only when minimum Ruby is below 2.2" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -441,7 +435,6 @@ module Version end end - it "keeps explicit zero runtime gemspec floor dependency-free for Ruby 1.x compatibility" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -493,7 +486,6 @@ module Version end end - it "removes version_gem dependency and entrypoint references under an old Ruby floor" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -603,7 +595,6 @@ module Version end end - it "does not add the RequiredRubyVersion RuboCop disable for Ruby 2+ runtime floors" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -646,7 +637,6 @@ module Version end end - it "preserves missing runtime gemspec dependencies above the development dependency separator" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -701,7 +691,6 @@ module Version end end - it "keeps the greater version requirement for template-managed gemspec dependencies" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -758,7 +747,6 @@ module Version end end - it "does not duplicate runtime gemspec dependencies as development dependencies" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -809,7 +797,6 @@ module Version end end - it "keeps old runtime dependency customizations above the development dependency note block" do template = <<~RUBY Gem::Specification.new do |spec| @@ -859,7 +846,6 @@ module Version expect(note_index).to be < bundler_audit_index end - it "does not accumulate duplicate blank section separators across repeated gemspec merges" do template = <<~RUBY Gem::Specification.new do |spec| @@ -939,7 +925,6 @@ module Version expect(twice).to eq(once) end - it "replaces executable destination gemspec files assignments with template package collections" do template = <<~RUBY Gem::Specification.new do |spec| @@ -980,7 +965,6 @@ module Version expect(merged).not_to include("IO.popen(%w[git ls-files -z], chdir: __dir__, err: IO::NULL)") end - it "normalizes destination gemspec receiver names while preserving destination-only fields" do template = <<~RUBY Gem::Specification.new do |spec| @@ -1008,7 +992,6 @@ module Version expect(merged).to include('spec.add_dependency("foo", "~> 1.0")') end - it "preserves zero-byte template outputs" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -1043,7 +1026,6 @@ module Version end end - it "sorts runtime gemspec dependencies with RuboCop-compatible gem name ordering" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -1101,7 +1083,6 @@ module Version end end - it "ports old gemspec emoji field replacement without duplicating the Gem::Specification block" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -1179,7 +1160,6 @@ module Version end end - it "preserves multiline heredoc gemspec assignments as whole fields" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -1244,7 +1224,6 @@ module Version end end - it "ports old gemspec freeze block location preservation" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -1313,7 +1292,6 @@ module Version end end - it "preserves gemspec freeze blocks with configured custom freeze tokens" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -1370,7 +1348,6 @@ module Version end end - it "ports old gemspec self-dependency removal while preserving project fields" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -1434,7 +1411,6 @@ module Version end end - it "keeps multiline gemspec descriptions valid when adding the project emoji" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -1485,7 +1461,6 @@ module Version end end - it "keeps squiggly heredoc gemspec descriptions valid when adding the project emoji" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -1546,5 +1521,4 @@ module Version expect(gemspec_content).not_to include("spec.description = 📧") end end - end diff --git a/gems/kettle-jem/spec/integration/github_workflow_template_spec.rb b/gems/kettle-jem/spec/integration/github_workflow_template_spec.rb index 64d9ec9a0..b855d4eee 100644 --- a/gems/kettle-jem/spec/integration/github_workflow_template_spec.rb +++ b/gems/kettle-jem/spec/integration/github_workflow_template_spec.rb @@ -32,7 +32,6 @@ end end - it "removes legacy tests workflow files as obsolete GitHub Actions workflows" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -69,7 +68,6 @@ end end - it "projects configured workflow exec_cmd into GitHub workflow templates" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -115,7 +113,6 @@ end end - it "normalizes obsolete Appraisal-relative workflow exec_cmd values" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -160,7 +157,6 @@ end end - it "fails closed for GitHub YAML template merges when the YAML provider reports a ProcessResult adapter failure" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -211,7 +207,6 @@ end end - it "fails closed for Gemfile template merges when Prism cannot merge the Ruby DSL" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -259,7 +254,6 @@ end end - it "strictly merges arbitrary top-level Gemfile dependencies from a template directory" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -304,7 +298,6 @@ end end - it "strictly merges arbitrary Gemfile dependency blocks and comments from a template directory" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -375,7 +368,6 @@ end end - it "merges custom workflow YAML snippets without replacing destination jobs" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -439,7 +431,6 @@ end end - it "normalizes GitHub Action refs when merging packaged workflow templates" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -488,7 +479,6 @@ end end - it "preserves newer destination GitHub Action SHA pins when accepting workflow templates" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -558,7 +548,6 @@ end end - it "normalizes GitHub Action refs in existing workflows outside the active recipe set" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -603,7 +592,6 @@ end end - it "deletes skipped packaged workflows that already exist" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -646,7 +634,6 @@ end end - it "deletes legacy dashed Ruby workflow files when dotted packaged workflows replace them" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -688,7 +675,6 @@ end end - it "does not allow generated CI Ruby floor below 2.4" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -732,7 +718,6 @@ end end - it "deletes skipped packaged workflows for monorepo subgem profiles" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -774,7 +759,6 @@ end end - it "keeps the packaged Discord notifier workflow opt-in via include" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -819,7 +803,6 @@ end end - it "generates packaged framework workflow matrices only when configured" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -922,7 +905,6 @@ end end - it "prunes packaged workflow files by configured engines and minimum Ruby" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -961,7 +943,6 @@ end end - it "prunes disabled engine jobs from packaged multi-engine workflows" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -1002,7 +983,6 @@ end end - it "prunes versioned engine workflows below minimum Ruby compatibility" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -1062,7 +1042,6 @@ end end - it "prunes packaged gemfile templates below minimum Ruby" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -1098,7 +1077,6 @@ end end - it "prunes packaged recording gemfile templates unless recording is configured" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -1148,7 +1126,6 @@ end end - it "disables checkout credential persistence in packaged GitHub workflows" do workflow_templates = Dir[File.join(described_class::PACKAGED_TEMPLATE_ROOT, ".github/workflows/*.{yml,yaml}.example")] checkout_templates = workflow_templates.select { |path| File.read(path).include?("uses: actions/checkout@") } @@ -1159,7 +1136,6 @@ end end - it "updates root templating bootstrap dependencies before generated templating workflow commands run" do workflow = File.read(File.join(described_class::PACKAGED_TEMPLATE_ROOT, ".github/workflows/templating.yml.example")) @@ -1169,5 +1145,4 @@ expect(workflow).to include("run: bundle update nomono") expect(workflow.index("Update templating bootstrap dependencies")).to be < workflow.index("[Attempt 1] Appraisal") end - end diff --git a/gems/kettle-jem/spec/integration/readme_changelog_template_spec.rb b/gems/kettle-jem/spec/integration/readme_changelog_template_spec.rb index 8c41ec123..f6a2d12cd 100644 --- a/gems/kettle-jem/spec/integration/readme_changelog_template_spec.rb +++ b/gems/kettle-jem/spec/integration/readme_changelog_template_spec.rb @@ -87,7 +87,6 @@ end end - it "creates a package README through the packaged README style API" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -118,7 +117,6 @@ end end - it "merges CHANGELOG templates without replacing release history" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -205,7 +203,6 @@ end end - it "applies transferable changelog entries once while preserving project entries" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -257,7 +254,6 @@ end end - it "applies multiple missed transferable changelog entries without duplicating existing keys" do changelog = <<~MARKDOWN # Changelog @@ -293,7 +289,6 @@ expect(result).to include("- kettle-jem-template-20260716-003 - Second missed transfer.") end - it "keeps the real CHANGELOG template in canonical Unreleased form" do template = File.read(project_root.join("lib/kettle/jem/templates/CHANGELOG.md.example")) @@ -314,7 +309,6 @@ MARKDOWN end - it "fills configured README section partials while preserving unconfigured manual sections" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -371,7 +365,6 @@ end end - it "loads packaged README section partials" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -405,7 +398,6 @@ end end - it "removes Open Collective funding when disabled" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -506,7 +498,6 @@ end end - it "applies the packaged README Open Collective recipe from the canonical template" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -555,7 +546,6 @@ end end - it "updates the README KLOC badge from the current changelog release coverage" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -618,7 +608,6 @@ module Version end end - it "keeps shim-only template files out of full profile inventory" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -648,7 +637,6 @@ module Version end end - it "applies packaged monorepo subgem README badge policy" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -709,7 +697,6 @@ module Version end end - it "honors falsey Open Collective environment variables when config is absent" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -740,7 +727,6 @@ module Version end end - it "lets explicit Open Collective config override falsey environment variables" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -768,7 +754,6 @@ module Version end end - it "uses explicit Open Collective config as the template token source" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -794,7 +779,6 @@ module Version end end - it "uses GitHub funding Open Collective config as the template token source" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -825,7 +809,6 @@ module Version end end - it "defaults Open Collective template content to galtzo-floss when no org can be resolved" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -855,7 +838,6 @@ module Version end end - it "warns when the default Open Collective org differs from the GitHub org" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -880,7 +862,6 @@ module Version end end - it "discovers Open Collective org from environment before .opencollective.yml" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -926,7 +907,6 @@ module Version end end - it "discovers Open Collective org from .opencollective.yml when env is absent" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -950,7 +930,6 @@ module Version end end - it "applies selected template content with projected tokens when configured" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -1031,7 +1010,6 @@ module Version end end - it "applies packaged template files when no project template root exists" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -1101,7 +1079,6 @@ module Version end end - it "trims README compatibility badges from minimum Ruby and engine config" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -1164,7 +1141,6 @@ module Version end end - it "keeps Ruby 2.3 in the untested README support badge set" do template = File.read(project_root.join("lib/kettle/jem/templates/README.md.example")) ruby_2_line = template.lines.find { |line| line.start_with?("| Works with MRI Ruby 2") } @@ -1176,7 +1152,6 @@ module Version expect(template).not_to include("[🚎ruby-2.3-wfi]:") end - it "keeps current runtime badges distinct from prior-current engine badges" do template = File.read(project_root.join("lib/kettle/jem/templates/README.md.example")) ruby_4_line = template.lines.find { |line| line.start_with?("| Works with MRI Ruby 4") } @@ -1192,7 +1167,6 @@ module Version expect(truffleruby_line).to include("[![Truffle Ruby HEAD Compat][💎truby-headi]][🚎3-hd-wf]") end - it "adds missing compatible versioned engine README badges when workflows exist" do readme = <<~MARKDOWN # Example @@ -1236,7 +1210,6 @@ module Version expect(processed).not_to include("[💎truby-33.0i]: https://img.shields.io/badge/Truffle_Ruby-33.0-34BCB1") end - it "keeps same-minor Ruby compatibility badges for patch-level runtime floors" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -1292,7 +1265,6 @@ module Version end end - it "keeps the Ruby 1.8 compatibility badge for a Ruby 1.8.7 runtime floor" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -1340,5 +1312,4 @@ module Version expect(final_content).to match(/^\[💎ruby-1\.9i\]:/) end end - end diff --git a/gems/kettle-jem/spec/integration/recipe_planning_spec.rb b/gems/kettle-jem/spec/integration/recipe_planning_spec.rb index 8de7d050a..b876a60c3 100644 --- a/gems/kettle-jem/spec/integration/recipe_planning_spec.rb +++ b/gems/kettle-jem/spec/integration/recipe_planning_spec.rb @@ -27,7 +27,6 @@ end end - it "deduplicates template source reads while planning recipes" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -59,7 +58,6 @@ end end - it "records recipe timing metadata in top-level and envelope reports" do report = described_class.send(:timed_recipe_report) do { @@ -76,7 +74,6 @@ expect(report.dig(:report_envelope, :report, :metadata, :duration_ms)).to eq(report.dig(:metadata, :duration_ms)) end - it "records phase timing metadata for persisted reports" do events = described_class.event_stream_from_options({}) @@ -92,7 +89,6 @@ ) end - it "records README sub-step timing metadata for README recipe reports" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -127,7 +123,6 @@ end end - it "parses recipe planning strategies from options and env" do expect(described_class.send(:recipe_planning_strategy_for, {}, {})).to eq("sequential") expect(described_class.send(:recipe_planning_strategy_for, {"KETTLE_JEM_RECIPE_PLANNING_STRATEGY" => "classified"}, {})).to eq("classified") @@ -139,7 +134,6 @@ end.to raise_error(ArgumentError, /Unsupported kettle-jem recipe planning strategy/) end - it "parses Ractor recipe planning workers from options and env" do expect(described_class.send(:recipe_planning_workers_for, {}, {})).to eq(0) expect(described_class.send(:recipe_planning_workers_for, {"KETTLE_JEM_RACTOR_WORKERS" => "2"}, {})).to eq(2) @@ -154,7 +148,6 @@ end.to raise_error(ArgumentError, /non-negative integer/) end - it "parses thread recipe planning workers from options and env" do expect(described_class.send(:recipe_planning_thread_workers_for, {}, {})).to eq(0) expect(described_class.send(:recipe_planning_thread_workers_for, {"KETTLE_JEM_THREAD_WORKERS" => "2"}, {})).to eq(2) @@ -169,7 +162,6 @@ end.to raise_error(ArgumentError, /non-negative integer/) end - it "classifies side-effect-free cleanup and template-source recipes as worker-safe" do safe_recipe = { name: "github_actions_obsolete_workflow_cleanup_old", @@ -207,7 +199,6 @@ ).to be(false) end - it "keeps classified recipe planning report output equivalent to sequential planning" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -262,7 +253,6 @@ end end - it "keeps Ractor-backed classified recipe planning equivalent to main-Ractor classified planning" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -365,7 +355,6 @@ end end - it "keeps thread-backed classified recipe planning equivalent to main-Ractor classified planning" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -438,7 +427,6 @@ end end - it "turns changed recipe reports into deterministic write intents" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -473,7 +461,6 @@ end end - it "parses opt-in Ractor file worker counts" do expect(described_class.send(:file_work_workers_for, {}, {})).to eq(0) expect(described_class.send(:file_work_workers_for, {"KETTLE_JEM_RACTOR_FILE_WORKERS" => "3"}, {})).to eq(3) @@ -484,7 +471,6 @@ end.to raise_error(ArgumentError, /non-negative integer/) end - it "parses opt-in thread file worker counts" do expect(described_class.send(:file_work_thread_workers_for, {}, {})).to eq(0) expect(described_class.send(:file_work_thread_workers_for, {"KETTLE_JEM_THREAD_FILE_WORKERS" => "3"}, {})).to eq(3) @@ -495,7 +481,6 @@ end.to raise_error(ArgumentError, /non-negative integer/) end - it "reduces phase write intents into per-file work units" do first_write = described_class::WriteIntent.new( relative_path: "lib/example.rb", @@ -527,7 +512,6 @@ expect(work_units.fetch(1).outcome).to eq(other_write) end - it "rejects file work units that mix relative paths" do write_intent = described_class::WriteIntent.new( relative_path: "lib/example.rb", @@ -542,7 +526,6 @@ end.to raise_error(ArgumentError, /cannot include operations/) end - it "lets one file worker own ordered operations for a path" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -573,7 +556,6 @@ end end - it "can commit independent file work units through Ractors within a phase" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -644,7 +626,6 @@ end end - it "can commit independent file work units through threads within a phase" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -692,7 +673,6 @@ end end - it "commits file outcomes while preserving current apply behavior" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -721,7 +701,6 @@ end end - it "normalizes GitHub remote source URLs structurally" do expect(described_class.normalize_git_source_url("git@github.com:rubythems/them-server.git")).to eq( "https://github.com/rubythems/them-server" @@ -733,5 +712,4 @@ "https://gitlab.com/rubythems/them-server.git" ) end - end diff --git a/gems/kettle-jem/spec/integration/shim_profile_spec.rb b/gems/kettle-jem/spec/integration/shim_profile_spec.rb index 8d03991ae..b29a13516 100644 --- a/gems/kettle-jem/spec/integration/shim_profile_spec.rb +++ b/gems/kettle-jem/spec/integration/shim_profile_spec.rb @@ -131,5 +131,4 @@ expect { described_class.plan_project(root, env: {}) }.not_to raise_error end end - end diff --git a/gems/kettle-jem/spec/integration/structural_merge_template_spec.rb b/gems/kettle-jem/spec/integration/structural_merge_template_spec.rb index 0df2d8032..6c7a49300 100644 --- a/gems/kettle-jem/spec/integration/structural_merge_template_spec.rb +++ b/gems/kettle-jem/spec/integration/structural_merge_template_spec.rb @@ -45,7 +45,6 @@ end end - it "uses JSON structural merge for JSON template files" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -88,7 +87,6 @@ end end - it "uses JSONC structural merge for JSONC template files" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -136,7 +134,6 @@ end end - it "uses RBS structural merge for RBS template files" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -182,7 +179,6 @@ module Version end end - it "loudly rejects explicit Bash structural routing when the node parser is unavailable" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -229,7 +225,6 @@ module Version end end - it "refreshes mise trust after templating mise.toml when mise is available" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -289,7 +284,6 @@ module Version end end - it "preserves coverage thresholds from an existing coverage workflow in generated mise.toml" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -332,7 +326,6 @@ module Version end end - it "preserves coverage thresholds from mise.toml in generated coverage workflow" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -375,7 +368,6 @@ module Version end end - it "generates QLTY coverage uploads with OIDC in the packaged coverage workflow" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -407,7 +399,6 @@ module Version end end - it "bootstraps version_gem touchpoints before bundled setup" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -482,7 +473,6 @@ module Version end end - it "uses configured version_gem namespace before stale entrypoint inference" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -531,7 +521,6 @@ module MCP end end - it "discovers public entrypoint version namespace before stale gemspec metadata" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -586,7 +575,6 @@ module Version end end - it "discovers nested public entrypoint namespace before stale generated version namespace" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -638,7 +626,6 @@ module Version end end - it "does not infer nested implementation namespaces from the public entrypoint" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -693,7 +680,6 @@ module Version end end - it "normalizes generated README badge image URLs consistently with pre-release checks" do expect(described_class.send(:shield_token, "Example::Gem")).to eq("Example::Gem") expect(described_class.send(:license_compat_img, :a)).to include( @@ -701,7 +687,6 @@ module Version ) end - it "places version_gem entrypoint requires from top-level Ruby structure" do content = <<~RUBY # frozen_string_literal: true @@ -731,7 +716,6 @@ def setup expect(updated).to include("Example::Gem::Version.class_eval do") end - it "anchors version_gem relative entrypoint requires after an existing top-level version_gem require" do content = <<~RUBY # frozen_string_literal: true @@ -759,7 +743,6 @@ module Example RUBY end - it "reports setup execution context without load-path inspection" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -820,7 +803,6 @@ module Example end end - it "preserves configured README sections during merge template application" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -934,7 +916,6 @@ module Example end end - it "does not duplicate destination-only README sections already inside a preserved parent section" do template = <<~MARKDOWN # Example @@ -984,7 +965,6 @@ module Example ) end - it "preserves a front Important section that encloses the README badge cloud" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -1045,7 +1025,6 @@ module Example end end - it "only preserves recognized README front sections before the first canonical section" do template = <<~MARKDOWN # Example @@ -1094,7 +1073,6 @@ module Example expect(described_class.send(:preserve_readme_front_sections, "# Example\n", important_destination)).to eq("# Example\n") end - it "merges YAML and TOML template applications with destination values" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -1228,7 +1206,6 @@ module Example end end - it "merges Git driver TOML manifests with destination driver values" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -1302,7 +1279,6 @@ module Example end end - it "restores documentation comments from YAML templates when destination config stripped them" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -1348,7 +1324,6 @@ module Example end end - it "allows YAML template recipes to keep git-style destination comment policy" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -1398,7 +1373,6 @@ module Example end end - it "merges Ruby-family template applications with destination declarations and DSL calls" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -1517,7 +1491,6 @@ def call end end - it "normalizes generated Rakefile section spacing after merge" do rakefile = described_class.send(:normalize_generated_rakefile, <<~RAKE) task :custom do @@ -1533,7 +1506,6 @@ def call expect(rakefile).not_to include("\n\n\n### TEMPLATING TASKS") end - it "passes Ruby method move policy through per-file template strategy config" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -1602,5 +1574,4 @@ def gamma ) end end - end diff --git a/gems/kettle-jem/spec/integration/template_bootstrap_spec.rb b/gems/kettle-jem/spec/integration/template_bootstrap_spec.rb index f58249594..9f0ccb8b7 100644 --- a/gems/kettle-jem/spec/integration/template_bootstrap_spec.rb +++ b/gems/kettle-jem/spec/integration/template_bootstrap_spec.rb @@ -45,7 +45,6 @@ end end - it "bootstraps kettle config from packaged reference template when missing" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -80,7 +79,6 @@ end end - it "removes explicit RuboCop TargetRubyVersion when templating rubocop-lts config" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -135,7 +133,6 @@ end end - it "activates the RSpec RuboCop plugin when templating the RSpec RuboCop overlay" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -172,7 +169,6 @@ end end - it "seeds bootstrap config licenses from the gemspec" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -211,7 +207,6 @@ end end - it "seeds bootstrap config minimum Ruby from the gemspec" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -251,7 +246,6 @@ end end - it "seeds bootstrap config runtime URI values from gemspec metadata" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -283,7 +277,6 @@ end end - it "syncs OpenCollective ENV into bootstrap config funding tokens" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -310,7 +303,6 @@ end end - it "syncs FUNDING_ORG ENV into bootstrap config OpenCollective tokens" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -334,7 +326,6 @@ end end - it "bootstraps full-template Gemfile ownership to avoid merging legacy Gemfile dependency sets" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -358,7 +349,6 @@ end end - it "seeds bootstrap config CI minimum Ruby no lower than 2.4" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -384,7 +374,6 @@ end end - it "bootstraps a monorepo subgem template profile with package-owned entries and Gemfile support files" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -456,7 +445,6 @@ end end - it "bootstraps a monorepo subgem release profile with per-gem harness entries" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -506,7 +494,6 @@ end end - it "renders version_gem Ruby and RBS files from packaged templates" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -551,7 +538,6 @@ end end - it "replaces legacy version files with the packaged version_gem template" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -596,7 +582,6 @@ module Gem end end - it "uses configured RubyGems entrypoint and namespace for version_gem files" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -638,7 +623,6 @@ module Gem end end - it "migrates all legacy nested RBS files into the package-level signature" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -715,7 +699,6 @@ class Tool end end - it "migrates all legacy nested RBS files when the package-level signature is templated" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -779,7 +762,6 @@ class Client end end - it "migrates legacy nested RBS files without requiring a version_gem dependency" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -831,7 +813,6 @@ module Version end end - it "bootstraps a monorepo root template profile with shared documentation entries" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -871,7 +852,6 @@ module Version end end - it "templates a monorepo root without a gemspec and syncs root Gemfile tooling dependencies" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -933,7 +913,6 @@ module Version end end - it "adds released root Gemfile tooling even when local nomono overrides are present" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -985,7 +964,6 @@ module Version end end - it "guards preserved main Gemfile local workspace overrides during templating" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -1045,7 +1023,6 @@ module Version end end - it "collapses duplicate templating guards around main Gemfile local workspace overrides" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -1100,7 +1077,6 @@ module Version end end - it "preserves monorepo root Rakefile tasks during scaffold cleanup" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -1137,7 +1113,6 @@ module Version end end - it "rewrites monorepo subgem README policy document references to source-hosted URLs" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -1203,7 +1178,6 @@ module Version end end - it "exposes canonical repository URL tokens for monorepo subgem templates" do repository = { url: "https://github.com/structuredmerge/structuredmerge-ruby", @@ -1233,7 +1207,6 @@ module Version expect(tokens.fetch("KJ|CHANGELOG:GL_TAGS_URL")).to eq("https://gitlab.com/structuredmerge/structuredmerge-ruby/-/tags") end - it "projects monorepo subgem README output to thin form while preserving destination-owned sections" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -1359,7 +1332,6 @@ module Version end end - it "seeds a default project emoji for monorepo subgems without a README" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -1384,7 +1356,6 @@ module Version end end - it "seeds project emoji from KJ_PROJECT_EMOJI before README or defaults" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -1410,7 +1381,6 @@ module Version end end - it "seeds project emoji from gemspec summary when README has no leading H1" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -1441,5 +1411,4 @@ module Version expect(File.read(File.join(root, ".structuredmerge", "kettle-jem.yml"))).to include("project_emoji: 🥨\n") end end - end diff --git a/gems/kettle-jem/spec/system/install_orchestration_spec.rb b/gems/kettle-jem/spec/system/install_orchestration_spec.rb index f994c6aaa..a9c0c99e5 100644 --- a/gems/kettle-jem/spec/system/install_orchestration_spec.rb +++ b/gems/kettle-jem/spec/system/install_orchestration_spec.rb @@ -45,7 +45,6 @@ end end - it "hard-fails malformed Ruby project entrypoints during preflight" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -73,7 +72,6 @@ end end - it "hard-fails invalid kettle config shape before later discovery" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -100,7 +98,6 @@ end end - it "classifies template entries with files and patterns strategy config" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -147,7 +144,6 @@ end end - it "projects full per-file merge options into recipe metadata and runtime context" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -205,7 +201,6 @@ end end - it "plans packaged template inventory when entries are omitted" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -249,7 +244,6 @@ end end - it "applies remaining-files copy-only and legacy destination policies" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -304,7 +298,6 @@ end end - it "runs install as active apply plus local post-template checks" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -616,7 +609,6 @@ end end - it "applies full templates after accepting a newly bootstrapped config before bundled handoff" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -679,7 +671,6 @@ end end - it "uses KJ_MIN_RUBY during the accepted config one-shot followup apply" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -723,7 +714,6 @@ end end - it "silences Bundler and debug environment for quiet orchestration commands" do expect(Kettle::Jem::Tasks::InstallTask.quiet_command(%w[bundle install], quiet: true)).to eq(%w[bundle install --quiet]) expect(Kettle::Jem::Tasks::InstallTask.quiet_command(%w[bundle install --quiet], quiet: true)).to eq(%w[bundle install --quiet]) @@ -742,7 +732,6 @@ ) end - it "generates only curated documented binstubs" do status = instance_double(Process::Status, success?: false) allow(Open3).to receive(:capture3).and_return(["", "", status]) @@ -752,7 +741,6 @@ ) end - it "omits curated binstubs for gems missing from the destination bundle" do status = instance_double(Process::Status, success?: true) allow(Open3).to receive(:capture3).and_return([ @@ -766,7 +754,6 @@ ) end - it "skips bundled handoff when kettle-jem is absent from the destination bundle" do status = instance_double(Process::Status, success?: true) allow(Open3).to receive(:capture3).and_return([ @@ -782,7 +769,6 @@ ) end - it "runs setup commands when the caller passes Ruby ENV" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -827,7 +813,6 @@ end end - it "runs setup commands without inherited Bundler activation" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -892,7 +877,6 @@ end end - it "uses kettle-family local install roots for templating setup" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -933,7 +917,6 @@ end end - it "detects rake tasks using the same bundle environment as command execution" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -956,7 +939,6 @@ end end - it "skips rubocop gradual autocorrect before probing rake tasks when requested" do expect(Kettle::Jem::Tasks::InstallTask).not_to receive(:rake_task_available?) @@ -967,7 +949,6 @@ ) end - it "runs install follow-up templating whenever the canonical config changes" do report = { recipe_reports: [ @@ -982,7 +963,6 @@ expect(Kettle::Jem::Tasks::InstallTask.config_bootstrap_changed?(report)).to be(true) end - it "skips rubocop gradual autocorrect when the destination Rakefile does not define the task" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -1004,7 +984,6 @@ end end - it "skips curated binstub generation when requested" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -1033,7 +1012,6 @@ end end - it "records command duration metadata for install command steps" do command_runner = lambda do |_command, chdir:, env:, quiet:| expect(chdir).to eq("/project") @@ -1060,7 +1038,6 @@ ) end - it "honors install ENV skip-commit and normalizes lockfiles without templating env overrides" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -1158,7 +1135,6 @@ end end - it "can skip install lockfile normalization from ENV" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -1189,7 +1165,6 @@ end end - it "normalizes lockfiles from the template task without templating env overrides" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -1276,7 +1251,6 @@ end end - it "activates local git hooks when requested by the template task" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -1331,7 +1305,6 @@ end end - it "makes generated git hook scripts executable during template apply" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -1368,7 +1341,6 @@ end end - it "plans local semantic Git driver setup by default" do step = Kettle::Jem::Tasks::InstallTask.git_drivers_step("/example", {}) @@ -1390,7 +1362,6 @@ ) end - it "plans builtin Git diff attributes when requested" do step = Kettle::Jem::Tasks::InstallTask.git_drivers_step("/example", {git_drivers: "builtin-diff"}) @@ -1407,7 +1378,6 @@ )) end - it "normalizes Git driver mode aliases" do expect(Kettle::Jem::Tasks::InstallTask.normalize_git_drivers_mode(nil)).to eq("local") expect(Kettle::Jem::Tasks::InstallTask.normalize_git_drivers_mode("off")).to eq("none") @@ -1420,7 +1390,6 @@ expect(Kettle::Jem::Tasks::InstallTask.normalize_git_drivers_mode("custom")).to eq("custom") end - it "plans a RuboCop-LTS branch switch for local RuboCop-LTS templating" do report = { facts: { @@ -1450,7 +1419,6 @@ ) end - it "skips the RuboCop-LTS branch switch when the local checkout is already on the matrix branch" do report = { facts: { @@ -1477,7 +1445,6 @@ ) end - it "skips the RuboCop-LTS branch switch when templating the RuboCop-LTS checkout itself" do report = { facts: { @@ -1504,7 +1471,6 @@ ) end - it "skips the RuboCop-LTS branch switch when the checkout paths differ only by realpath" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -1541,7 +1507,6 @@ end end - it "does not plan a RuboCop-LTS branch switch when local RuboCop-LTS is disabled" do report = { facts: { @@ -1559,7 +1524,6 @@ )).to be_nil end - it "fails local RuboCop-LTS branch planning when the selected wrapper is unknown" do report = { facts: { @@ -1579,7 +1543,6 @@ }.to raise_error(Kettle::Jem::Error, /Cannot select RUBOCOP_LTS_LOCAL branch/) end - it "executes the RuboCop-LTS branch switch before later orchestration commands" do commands = [] command_runner = lambda do |command, **| @@ -1616,7 +1579,6 @@ ]) end - it "writes managed .gitattributes and local config for local semantic Git driver setup" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -1653,7 +1615,6 @@ end end - it "reports conflicting unmanaged .gitattributes entries" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -1675,7 +1636,6 @@ end end - it "plans local Git driver setup without writing attributes in dry-run mode" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -1689,7 +1649,6 @@ end end - it "plans global Git driver command registration when requested" do step = Kettle::Jem::Tasks::InstallTask.git_drivers_step("/example", {git_drivers: "global"}) @@ -1708,7 +1667,6 @@ expect(step.fetch(:diagnostics)).to include(hash_including(key: "forge_ignores_external_diff_drivers")) end - it "plans global Git driver command removal with unset-all when requested" do step = Kettle::Jem::Tasks::InstallTask.git_drivers_step("/example", {git_drivers: "undo"}) @@ -1727,7 +1685,6 @@ ) end - it "writes include-file Git driver configuration when requested" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -1753,7 +1710,6 @@ end end - it "loads project Git driver manifests for attribute and command planning" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -1789,7 +1745,6 @@ end end - it "keeps committed Git driver manifests on the smorg-rb executable name" do repo_root = project_root.join("../..").expand_path manifest_paths = [ @@ -1807,7 +1762,6 @@ end end - it "rejects unsafe interpolation in committed Git driver manifests" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -1831,7 +1785,6 @@ end end - it "rejects cachetextconv outside explicit textconv profiles" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -1855,7 +1808,6 @@ end end - it "keeps semantic diff commands separate from textconv projections" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -1903,7 +1855,6 @@ end end - it "keeps textconv projections display-only and out of merge inputs" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -1938,7 +1889,6 @@ end end - it "skips Git driver setup when explicitly disabled" do step = Kettle::Jem::Tasks::InstallTask.git_drivers_step("/example", {git_drivers: "none"}) @@ -1950,7 +1900,6 @@ ) end - it "loads canonical structuredmerge kettle-jem config before legacy root config" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -1964,7 +1913,6 @@ end end - it "migrates legacy kettle-jem config to the structuredmerge directory" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -1987,7 +1935,6 @@ end end - it "reports a conflict when canonical and legacy kettle-jem configs both exist" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -2012,7 +1959,6 @@ end end - it "reports gemspec dependency sync through the install task" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -2061,7 +2007,6 @@ end end - it "drops retired kettle-drift gemspec development dependencies during gemspec sync" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -2102,7 +2047,6 @@ end end - it "ports old install post-template project cleanup and safety checks" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) @@ -2211,5 +2155,4 @@ ) end end - end diff --git a/gems/parslet-toml-merge/Gemfile.lock b/gems/parslet-toml-merge/Gemfile.lock index b26ac9b45..145b10cc4 100644 --- a/gems/parslet-toml-merge/Gemfile.lock +++ b/gems/parslet-toml-merge/Gemfile.lock @@ -6,265 +6,6 @@ PATH toml-merge (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly - specs: - ast-crispr-markdown-markly (7.1.0) - ast-crispr (= 7.1.0) - markly-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism - specs: - ast-crispr-ruby-prism (7.1.0) - ast-crispr (= 7.1.0) - prism-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr - specs: - ast-crispr (7.1.0) - ast-merge (= 7.1.0) - service_actor (~> 3.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git - specs: - ast-merge-git (7.1.0) - ast-merge (= 7.1.0) - json-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge - specs: - ast-merge (7.1.0) - benchmark - token-resolver (~> 2.0, >= 2.0.4) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template - specs: - ast-template (7.1.0) - ast-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge - specs: - bash-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge - specs: - binary-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge - specs: - citrus-toml-merge (7.1.0) - toml-merge (= 7.1.0) - toml-rb (~> 4.1) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge - specs: - commonmarker-merge (7.1.0) - commonmarker (~> 2.2) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge - specs: - dotenv-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge - specs: - go-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge - specs: - json-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem - specs: - kettle-jem (7.1.0) - addressable (>= 2.8, < 3) - ast-crispr-markdown-markly (= 7.1.0) - ast-crispr-ruby-prism (= 7.1.0) - ast-merge (= 7.1.0) - bash-merge (= 7.1.0) - citrus-toml-merge (= 7.1.0) - commonmarker-merge (= 7.1.0) - dotenv-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-dev (~> 2.3, >= 2.3.5) - kettle-rb (~> 0.1, >= 0.1.4) - kramdown-merge (= 7.1.0) - markdown-merge (= 7.1.0) - markly-merge (= 7.1.0) - prism-merge (= 7.1.0) - psych-merge (= 7.1.0) - rbs (>= 3.10) - rbs-merge (= 7.1.0) - ruby-merge (= 7.1.0) - token-resolver (~> 2.0, >= 2.0.4) - toml-merge (= 7.1.0) - toml-rb (~> 4.2) - tree_haver (= 7.1.0) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge - specs: - kramdown-merge (7.1.0) - kramdown (~> 2.5) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge - specs: - markdown-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge - specs: - markly-merge (7.1.0) - markdown-merge (= 7.1.0) - markly (~> 0.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge - specs: - plain-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge - specs: - prism-merge (7.1.0) - prism (~> 1.6) - ruby-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge - specs: - psych-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge - specs: - rbs-merge (7.1.0) - ast-merge (= 7.1.0) - rbs (>= 3.10) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge - specs: - ruby-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge - specs: - rust-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb - specs: - smorg-rb (7.1.0) - ast-merge (= 7.1.0) - ast-merge-git (= 7.1.0) - go-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-jem (= 7.1.0) - markly-merge (= 7.1.0) - plain-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge - specs: - toml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver - specs: - tree_haver (7.1.0) - citrus (~> 3.0) - parslet (~> 2.0) - tree_sitter_language_pack (>= 1.13.2, < 2.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge - specs: - typescript-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge - specs: - yaml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge - specs: - zip-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - GEM remote: https://gem.coop/ specs: @@ -280,6 +21,11 @@ GEM rubocop (>= 1.0) version_gem (~> 1.1, >= 1.1.14) ast (2.4.3) + ast-merge (7.1.0) + benchmark + token-resolver (~> 2.0, >= 2.0.4) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) backports (3.25.3) benchmark (0.5.0) bigdecimal (4.1.2) @@ -289,7 +35,6 @@ GEM cgi (0.5.2) citrus (3.0.2) cmdparse (3.0.7) - commonmarker (2.9.0-x86_64-linux) concurrent-ruby (1.3.8) date (3.5.1) debug (1.11.1) @@ -352,8 +97,6 @@ GEM kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) - kettle-drift (1.0.6) - version_gem (~> 1.1, >= 1.1.14) kettle-rb (0.1.5) kettle-soup-cover (3.0.4) kettle-wash (~> 0.1, >= 0.1.0) @@ -382,7 +125,6 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) - markly (0.16.0) mutex_m (0.3.0) nokogiri (1.19.4-x86_64-linux-gnu) racc (~> 1.4) @@ -537,8 +279,6 @@ GEM ruby-progressbar (1.13.0) ruby_engine (2.0.3) ruby_version (1.0.3) - service_actor (3.9.4) - zeitwerk (>= 1.0) silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) @@ -595,9 +335,15 @@ GEM version_gem (~> 1.1, >= 1.1.14) toml (0.3.0) parslet (>= 1.8.0, < 3.0.0) - toml-rb (4.2.0) - citrus (~> 3.0, > 3.0) - racc (~> 1.7) + toml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + tree_haver (7.1.0) + citrus (~> 3.0) + parslet (~> 2.0) + tree_sitter_language_pack (>= 1.13.2, < 2.0) + version_gem (~> 1.1, >= 1.1.9) tree_sitter_language_pack (1.13.3-x86_64-linux) sorbet-runtime (~> 0.5) tsort (0.2.0) @@ -643,46 +389,24 @@ DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) appraisal2-rubocop (~> 1.0, >= 1.0.0) - ast-crispr! - ast-crispr-markdown-markly! - ast-crispr-ruby-prism! - ast-merge! - ast-merge-git! - ast-template! - bash-merge! benchmark (~> 0.5, >= 0.5.0) - binary-merge! bundler-audit (~> 0.9.3) cgi (~> 0.5) - citrus-toml-merge! - commonmarker-merge! debug (>= 1.1) - dotenv-merge! erb (~> 6.0, >= 6.0.6) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.0) - go-merge! irb (~> 1.17) - json-merge! kettle-dev (~> 2.0, >= 2.2.25) - kettle-drift (~> 1.0, >= 1.0.6) - kettle-jem! kettle-soup-cover (~> 3.0, >= 3.0.3) kettle-test (~> 2.0, >= 2.0.9) kramdown (~> 2.5, >= 2.5.2) - kramdown-merge! kramdown-parser-gfm (~> 1.1) - markdown-merge! - markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) parslet-toml-merge! - plain-merge! - prism-merge! - psych-merge! rake (~> 13.0) rbs (>= 3.0) - rbs-merge! rdoc (~> 6.11) reek (~> 6.5, >= 6.5.0) require_bench (~> 1.0, >= 1.0.4) @@ -693,27 +417,19 @@ DEPENDENCIES rubocop-on-rbs (~> 2.0, >= 2.0.0) rubocop-packaging (~> 0.6, >= 0.6.0) rubocop-ruby3_2 (~> 3.0, >= 3.0.6) - ruby-merge! ruby-progressbar (~> 1.13) - rust-merge! - smorg-rb! standard (~> 1.56, >= 1.56.0) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) - toml-merge! - tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) - typescript-merge! webrick (~> 1.9) yaml-converter (~> 0.2, >= 0.2.3) - yaml-merge! yard (~> 0.9, >= 0.9.45) yard-fence (~> 0.9, >= 0.9.6) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) yard-timekeeper (~> 0.2, >= 0.2.4) yard-yaml (~> 0.2, >= 0.2.3) - zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af @@ -721,31 +437,20 @@ CHECKSUMS appraisal2 (3.2.0) sha256=ccd0b767ac4060cd7af6d16747459b6990f49c39c7b4fb1f7d1146b1e97c492f appraisal2-rubocop (1.0.0) sha256=b71410fbb014befda5340605a605b7f6f3f012739baf0acc5b4351b592c3258d ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 - ast-crispr (7.1.0) - ast-crispr-markdown-markly (7.1.0) - ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) - ast-merge-git (7.1.0) - ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 - bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd - binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 - citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 - commonmarker (2.9.0-x86_64-linux) sha256=8cfe92970eef585a19ddf6613224b91cab64d6029834661bda801f877c9c7f43 - commonmarker-merge (7.1.0) concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 - dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -758,28 +463,20 @@ CHECKSUMS gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f - go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 - json-merge (7.1.0) kettle-dev (2.3.8) sha256=9d716ff21c660a730cb4e8d41e2e2f0630a28167a354b6e2924e242102aef72c - kettle-drift (1.0.6) sha256=46eda08fa4411d1f3c6682a95eef1c9df4e94611b3949f49d4c7b43c0ed356a3 - kettle-jem (7.1.0) kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f kettle-soup-cover (3.0.4) kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa - kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 - markdown-merge (7.1.0) - markly (0.16.0) sha256=6f70d79e385b1efc9e171f74c81628826259039fe6c778e03c3924c71dac5511 - markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-x86_64-linux-gnu) sha256=379fae440b28915e3f19d752ce2dcf8465ed2b2fbefd2a7ca0dd497bc981a06a nomono (1.0.9) @@ -790,19 +487,15 @@ CHECKSUMS parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 parslet-toml-merge (7.1.0) - plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 - prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 - psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 - rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb @@ -837,19 +530,15 @@ CHECKSUMS rubocop-rspec_rails (2.32.0) sha256=4a0d641c72f6ebb957534f539d9d0a62c47abd8ce0d0aeee1ef4701e892a9100 rubocop-ruby3_2 (3.0.7) sha256=f53dd6d286fb05186214fc6ec116783e7f837030918e8931c05de773e98f8466 rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 - ruby-merge (7.1.0) ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 - rust-merge (7.1.0) - service_actor (3.9.4) sha256=e63b523630b9a7e62959b2a90113b08d2565b5de9c148557b281ef847c9539ce silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed - smorg-rb (7.1.0) sorbet-runtime (0.6.13347) sha256=54e7221d9f4b63f58aec79f3043752a9ba7810347c6ae0d903531591cc2d5f01 standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b @@ -866,18 +555,15 @@ CHECKSUMS token-resolver (2.0.5) sha256=b852f924287ffb58a440856e862b056c8ad97e74b4b2526cee43e0771f40c25c toml (0.3.0) sha256=0a91d0f76a9036e84e44f95693b12f58d358c1df3ac8e3b5271f2056ecc6e4b9 toml-merge (7.1.0) - toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 - typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 webrick (1.9.2) sha256=beb4a15fc474defed24a3bda4ffd88a490d517c9e4e6118c3edce59e45864131 yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 - yaml-merge (7.1.0) yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd @@ -885,7 +571,6 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 - zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH diff --git a/gems/psych-merge/Gemfile.lock b/gems/psych-merge/Gemfile.lock index 28b4f5b2e..8cb427598 100644 --- a/gems/psych-merge/Gemfile.lock +++ b/gems/psych-merge/Gemfile.lock @@ -7,264 +7,6 @@ PATH version_gem (~> 1.1, >= 1.1.9) yaml-merge (= 7.1.0) -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly - specs: - ast-crispr-markdown-markly (7.1.0) - ast-crispr (= 7.1.0) - markly-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism - specs: - ast-crispr-ruby-prism (7.1.0) - ast-crispr (= 7.1.0) - prism-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr - specs: - ast-crispr (7.1.0) - ast-merge (= 7.1.0) - service_actor (~> 3.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git - specs: - ast-merge-git (7.1.0) - ast-merge (= 7.1.0) - json-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge - specs: - ast-merge (7.1.0) - benchmark - token-resolver (~> 2.0, >= 2.0.4) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template - specs: - ast-template (7.1.0) - ast-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge - specs: - bash-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge - specs: - binary-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge - specs: - citrus-toml-merge (7.1.0) - toml-merge (= 7.1.0) - toml-rb (~> 4.1) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge - specs: - commonmarker-merge (7.1.0) - commonmarker (~> 2.2) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge - specs: - dotenv-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge - specs: - go-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge - specs: - json-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem - specs: - kettle-jem (7.1.0) - addressable (>= 2.8, < 3) - ast-crispr-markdown-markly (= 7.1.0) - ast-crispr-ruby-prism (= 7.1.0) - ast-merge (= 7.1.0) - bash-merge (= 7.1.0) - citrus-toml-merge (= 7.1.0) - commonmarker-merge (= 7.1.0) - dotenv-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-dev (~> 2.3, >= 2.3.5) - kettle-rb (~> 0.1, >= 0.1.4) - kramdown-merge (= 7.1.0) - markdown-merge (= 7.1.0) - markly-merge (= 7.1.0) - prism-merge (= 7.1.0) - psych-merge (= 7.1.0) - rbs (>= 3.10) - rbs-merge (= 7.1.0) - ruby-merge (= 7.1.0) - token-resolver (~> 2.0, >= 2.0.4) - toml-merge (= 7.1.0) - toml-rb (~> 4.2) - tree_haver (= 7.1.0) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge - specs: - kramdown-merge (7.1.0) - kramdown (~> 2.5) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge - specs: - markdown-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge - specs: - markly-merge (7.1.0) - markdown-merge (= 7.1.0) - markly (~> 0.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge - specs: - parslet-toml-merge (7.1.0) - toml (~> 0.3) - toml-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge - specs: - plain-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge - specs: - prism-merge (7.1.0) - prism (~> 1.6) - ruby-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge - specs: - rbs-merge (7.1.0) - ast-merge (= 7.1.0) - rbs (>= 3.10) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge - specs: - ruby-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge - specs: - rust-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb - specs: - smorg-rb (7.1.0) - ast-merge (= 7.1.0) - ast-merge-git (= 7.1.0) - go-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-jem (= 7.1.0) - markly-merge (= 7.1.0) - plain-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge - specs: - toml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver - specs: - tree_haver (7.1.0) - citrus (~> 3.0) - parslet (~> 2.0) - tree_sitter_language_pack (>= 1.13.2, < 2.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge - specs: - typescript-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge - specs: - yaml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge - specs: - zip-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - GEM remote: https://gem.coop/ specs: @@ -280,6 +22,11 @@ GEM rubocop (>= 1.0) version_gem (~> 1.1, >= 1.1.14) ast (2.4.3) + ast-merge (7.1.0) + benchmark + token-resolver (~> 2.0, >= 2.0.4) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) backports (3.25.3) benchmark (0.5.0) bigdecimal (4.1.2) @@ -289,11 +36,6 @@ GEM cgi (0.5.2) citrus (3.0.2) cmdparse (3.0.7) - commonmarker (2.9.0-aarch64-linux) - commonmarker (2.9.0-aarch64-linux-musl) - commonmarker (2.9.0-arm64-darwin) - commonmarker (2.9.0-x86_64-linux) - commonmarker (2.9.0-x86_64-linux-musl) concurrent-ruby (1.3.8) date (3.5.1) debug (1.11.1) @@ -356,8 +98,6 @@ GEM kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) - kettle-drift (1.0.6) - version_gem (~> 1.1, >= 1.1.14) kettle-rb (0.1.5) kettle-soup-cover (3.0.4) kettle-wash (~> 0.1, >= 0.1.0) @@ -386,7 +126,6 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) - markly (0.16.0) mutex_m (0.3.0) nokogiri (1.19.4-aarch64-linux-gnu) racc (~> 1.4) @@ -549,8 +288,6 @@ GEM ruby-progressbar (1.13.0) ruby_engine (2.0.3) ruby_version (1.0.3) - service_actor (3.9.4) - zeitwerk (>= 1.0) silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) @@ -605,11 +342,11 @@ GEM token-resolver (2.0.5) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.14) - toml (0.3.0) - parslet (>= 1.8.0, < 3.0.0) - toml-rb (4.2.0) - citrus (~> 3.0, > 3.0) - racc (~> 1.7) + tree_haver (7.1.0) + citrus (~> 3.0) + parslet (~> 2.0) + tree_sitter_language_pack (>= 1.13.2, < 2.0) + version_gem (~> 1.1, >= 1.1.9) tree_sitter_language_pack (1.13.3-aarch64-linux) sorbet-runtime (~> 0.5) tree_sitter_language_pack (1.13.3-arm64-darwin) @@ -631,6 +368,10 @@ GEM kramdown (>= 2.4, < 3) kramdown-parser-gfm (~> 1.1) version_gem (~> 1.1, >= 1.1.13) + yaml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) yard (0.9.45) yard-fence (0.9.6) rdoc (>= 6.11, < 8) @@ -664,46 +405,24 @@ DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) appraisal2-rubocop (~> 1.0, >= 1.0.0) - ast-crispr! - ast-crispr-markdown-markly! - ast-crispr-ruby-prism! - ast-merge! - ast-merge-git! - ast-template! - bash-merge! benchmark (~> 0.5, >= 0.5.0) - binary-merge! bundler-audit (~> 0.9.3) cgi (~> 0.5) - citrus-toml-merge! - commonmarker-merge! debug (>= 1.1) - dotenv-merge! erb (~> 6.0, >= 6.0.6) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.0) - go-merge! irb (~> 1.17) - json-merge! kettle-dev (~> 2.0, >= 2.2.25) - kettle-drift (~> 1.0, >= 1.0.6) - kettle-jem! kettle-soup-cover (~> 3.0, >= 3.0.3) kettle-test (~> 2.0, >= 2.0.9) kramdown (~> 2.5, >= 2.5.2) - kramdown-merge! kramdown-parser-gfm (~> 1.1) - markdown-merge! - markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) - parslet-toml-merge! - plain-merge! - prism-merge! psych-merge! rake (~> 13.0) rbs (>= 3.0) - rbs-merge! rdoc (~> 6.11) reek (~> 6.5, >= 6.5.0) require_bench (~> 1.0, >= 1.0.4) @@ -714,27 +433,19 @@ DEPENDENCIES rubocop-on-rbs (~> 2.0, >= 2.0.0) rubocop-packaging (~> 0.6, >= 0.6.0) rubocop-ruby3_2 (~> 3.0, >= 3.0.6) - ruby-merge! ruby-progressbar (~> 1.13) - rust-merge! - smorg-rb! standard (~> 1.56, >= 1.56.0) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) - toml-merge! - tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) - typescript-merge! webrick (~> 1.9) yaml-converter (~> 0.2, >= 0.2.3) - yaml-merge! yard (~> 0.9, >= 0.9.45) yard-fence (~> 0.9, >= 0.9.6) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) yard-timekeeper (~> 0.2, >= 0.2.4) yard-yaml (~> 0.2, >= 0.2.3) - zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af @@ -742,35 +453,20 @@ CHECKSUMS appraisal2 (3.2.0) sha256=ccd0b767ac4060cd7af6d16747459b6990f49c39c7b4fb1f7d1146b1e97c492f appraisal2-rubocop (1.0.0) sha256=b71410fbb014befda5340605a605b7f6f3f012739baf0acc5b4351b592c3258d ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 - ast-crispr (7.1.0) - ast-crispr-markdown-markly (7.1.0) - ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) - ast-merge-git (7.1.0) - ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 - bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd - binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 - citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 - commonmarker (2.9.0-aarch64-linux) sha256=e2b4aadb9a2cfa4e206582641ce3a49465549ac1ed4c289fdd63b78d8f24579c - commonmarker (2.9.0-aarch64-linux-musl) sha256=1cf4d2821f2a7e64945f1ed7c4eeced586fdb27ea7fe7337788802cf8f57cfca - commonmarker (2.9.0-arm64-darwin) sha256=1748dbfa4f5813b0d2a14bb4bbfa65a4ec293aa1c825016d60029ee0e132b046 - commonmarker (2.9.0-x86_64-linux) sha256=8cfe92970eef585a19ddf6613224b91cab64d6029834661bda801f877c9c7f43 - commonmarker (2.9.0-x86_64-linux-musl) sha256=293921398b839f79ceaf55010e061357e34f053822c3b003cd0be6686176335e - commonmarker-merge (7.1.0) concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 - dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -783,28 +479,20 @@ CHECKSUMS gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f - go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 - json-merge (7.1.0) kettle-dev (2.3.8) sha256=9d716ff21c660a730cb4e8d41e2e2f0630a28167a354b6e2924e242102aef72c - kettle-drift (1.0.6) sha256=46eda08fa4411d1f3c6682a95eef1c9df4e94611b3949f49d4c7b43c0ed356a3 - kettle-jem (7.1.0) kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f kettle-soup-cover (3.0.4) kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa - kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 - markdown-merge (7.1.0) - markly (0.16.0) sha256=6f70d79e385b1efc9e171f74c81628826259039fe6c778e03c3924c71dac5511 - markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-aarch64-linux-gnu) sha256=1269fb644a6de405057a53dd5c762b1209b43ca7424f839454d3dbc677c31a8f nokogiri (1.19.4-aarch64-linux-musl) sha256=35c65b9ce72b3bb03207bdbe7067915019dc18c1b9b59139684bd6690fdd01af @@ -818,12 +506,9 @@ CHECKSUMS parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 - parslet-toml-merge (7.1.0) - plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 - prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 @@ -831,7 +516,6 @@ CHECKSUMS rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 - rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb @@ -866,19 +550,15 @@ CHECKSUMS rubocop-rspec_rails (2.32.0) sha256=4a0d641c72f6ebb957534f539d9d0a62c47abd8ce0d0aeee1ef4701e892a9100 rubocop-ruby3_2 (3.0.7) sha256=f53dd6d286fb05186214fc6ec116783e7f837030918e8931c05de773e98f8466 rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 - ruby-merge (7.1.0) ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 - rust-merge (7.1.0) - service_actor (3.9.4) sha256=e63b523630b9a7e62959b2a90113b08d2565b5de9c148557b281ef847c9539ce silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed - smorg-rb (7.1.0) sorbet-runtime (0.6.13347) sha256=54e7221d9f4b63f58aec79f3043752a9ba7810347c6ae0d903531591cc2d5f01 standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b @@ -893,16 +573,12 @@ CHECKSUMS timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.5) sha256=b852f924287ffb58a440856e862b056c8ad97e74b4b2526cee43e0771f40c25c - toml (0.3.0) sha256=0a91d0f76a9036e84e44f95693b12f58d358c1df3ac8e3b5271f2056ecc6e4b9 - toml-merge (7.1.0) - toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-aarch64-linux) sha256=55ffc7c87868cb45658338363d9eba51b4a8b0259aa88e4de368d2bd1d52fea4 tree_sitter_language_pack (1.13.3-arm64-darwin) sha256=bc2498db605f212a1dbd2465ed3f65190d7da786f6ed5d30fcf958121aeb4a5c tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 - typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 @@ -916,7 +592,6 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 - zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH diff --git a/gems/rbs-merge/Gemfile.lock b/gems/rbs-merge/Gemfile.lock index a43cadefc..bc3de6c9f 100644 --- a/gems/rbs-merge/Gemfile.lock +++ b/gems/rbs-merge/Gemfile.lock @@ -7,264 +7,6 @@ PATH tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.14) -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly - specs: - ast-crispr-markdown-markly (7.1.0) - ast-crispr (= 7.1.0) - markly-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism - specs: - ast-crispr-ruby-prism (7.1.0) - ast-crispr (= 7.1.0) - prism-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr - specs: - ast-crispr (7.1.0) - ast-merge (= 7.1.0) - service_actor (~> 3.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git - specs: - ast-merge-git (7.1.0) - ast-merge (= 7.1.0) - json-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge - specs: - ast-merge (7.1.0) - benchmark - token-resolver (~> 2.0, >= 2.0.4) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template - specs: - ast-template (7.1.0) - ast-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge - specs: - bash-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge - specs: - binary-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge - specs: - citrus-toml-merge (7.1.0) - toml-merge (= 7.1.0) - toml-rb (~> 4.1) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge - specs: - commonmarker-merge (7.1.0) - commonmarker (~> 2.2) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge - specs: - dotenv-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge - specs: - go-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge - specs: - json-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem - specs: - kettle-jem (7.1.0) - addressable (>= 2.8, < 3) - ast-crispr-markdown-markly (= 7.1.0) - ast-crispr-ruby-prism (= 7.1.0) - ast-merge (= 7.1.0) - bash-merge (= 7.1.0) - citrus-toml-merge (= 7.1.0) - commonmarker-merge (= 7.1.0) - dotenv-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-dev (~> 2.3, >= 2.3.5) - kettle-rb (~> 0.1, >= 0.1.4) - kramdown-merge (= 7.1.0) - markdown-merge (= 7.1.0) - markly-merge (= 7.1.0) - prism-merge (= 7.1.0) - psych-merge (= 7.1.0) - rbs (>= 3.10) - rbs-merge (= 7.1.0) - ruby-merge (= 7.1.0) - token-resolver (~> 2.0, >= 2.0.4) - toml-merge (= 7.1.0) - toml-rb (~> 4.2) - tree_haver (= 7.1.0) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge - specs: - kramdown-merge (7.1.0) - kramdown (~> 2.5) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge - specs: - markdown-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge - specs: - markly-merge (7.1.0) - markdown-merge (= 7.1.0) - markly (~> 0.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge - specs: - parslet-toml-merge (7.1.0) - toml (~> 0.3) - toml-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge - specs: - plain-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge - specs: - prism-merge (7.1.0) - prism (~> 1.6) - ruby-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge - specs: - psych-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge - specs: - ruby-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge - specs: - rust-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb - specs: - smorg-rb (7.1.0) - ast-merge (= 7.1.0) - ast-merge-git (= 7.1.0) - go-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-jem (= 7.1.0) - markly-merge (= 7.1.0) - plain-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge - specs: - toml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver - specs: - tree_haver (7.1.0) - citrus (~> 3.0) - parslet (~> 2.0) - tree_sitter_language_pack (>= 1.13.2, < 2.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge - specs: - typescript-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge - specs: - yaml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge - specs: - zip-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - GEM remote: https://gem.coop/ specs: @@ -280,6 +22,11 @@ GEM rubocop (>= 1.0) version_gem (~> 1.1, >= 1.1.14) ast (2.4.3) + ast-merge (7.1.0) + benchmark + token-resolver (~> 2.0, >= 2.0.4) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) backports (3.25.3) benchmark (0.5.0) bigdecimal (4.1.2) @@ -289,11 +36,6 @@ GEM cgi (0.5.2) citrus (3.0.2) cmdparse (3.0.7) - commonmarker (2.9.0-aarch64-linux) - commonmarker (2.9.0-aarch64-linux-musl) - commonmarker (2.9.0-arm64-darwin) - commonmarker (2.9.0-x86_64-linux) - commonmarker (2.9.0-x86_64-linux-musl) concurrent-ruby (1.3.8) date (3.5.1) debug (1.11.1) @@ -356,8 +98,6 @@ GEM kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) - kettle-drift (1.0.6) - version_gem (~> 1.1, >= 1.1.14) kettle-rb (0.1.5) kettle-soup-cover (3.0.4) kettle-wash (~> 0.1, >= 0.1.0) @@ -386,7 +126,6 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) - markly (0.16.0) mutex_m (0.3.0) nokogiri (1.19.4-aarch64-linux-gnu) racc (~> 1.4) @@ -549,8 +288,6 @@ GEM ruby-progressbar (1.13.0) ruby_engine (2.0.3) ruby_version (1.0.3) - service_actor (3.9.4) - zeitwerk (>= 1.0) silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) @@ -605,11 +342,11 @@ GEM token-resolver (2.0.5) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.14) - toml (0.3.0) - parslet (>= 1.8.0, < 3.0.0) - toml-rb (4.2.0) - citrus (~> 3.0, > 3.0) - racc (~> 1.7) + tree_haver (7.1.0) + citrus (~> 3.0) + parslet (~> 2.0) + tree_sitter_language_pack (>= 1.13.2, < 2.0) + version_gem (~> 1.1, >= 1.1.9) tree_sitter_language_pack (1.13.3-aarch64-linux) sorbet-runtime (~> 0.5) tree_sitter_language_pack (1.13.3-arm64-darwin) @@ -664,43 +401,21 @@ DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.2, >= 3.2.0) appraisal2-rubocop (~> 1.0, >= 1.0.0) - ast-crispr! - ast-crispr-markdown-markly! - ast-crispr-ruby-prism! - ast-merge! - ast-merge-git! - ast-template! - bash-merge! benchmark (~> 0.5, >= 0.5.0) - binary-merge! bundler-audit (~> 0.9.3) cgi (~> 0.5) - citrus-toml-merge! - commonmarker-merge! debug (>= 1.1) - dotenv-merge! erb (~> 6.0, >= 6.0.6) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.4) - go-merge! irb (~> 1.17) - json-merge! kettle-dev (~> 2.3, >= 2.3.7) - kettle-drift (~> 1.0, >= 1.0.6) - kettle-jem! kettle-soup-cover (~> 3.0, >= 3.0.3) kettle-test (~> 2.0, >= 2.0.12) kramdown (~> 2.5, >= 2.5.2) - kramdown-merge! kramdown-parser-gfm (~> 1.1) - markdown-merge! - markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) - parslet-toml-merge! - plain-merge! - prism-merge! - psych-merge! rake (~> 13.0) rbs-merge! rdoc (~> 6.11) @@ -713,28 +428,20 @@ DEPENDENCIES rubocop-on-rbs (~> 2.0, >= 2.0.0) rubocop-packaging (~> 0.6, >= 0.6.0) rubocop-ruby3_2 (~> 3.0, >= 3.0.6) - ruby-merge! ruby-progressbar (~> 1.13) - rust-merge! - smorg-rb! standard (~> 1.56, >= 1.56.0) stone_checksums (~> 1.0, >= 1.0.6) stringio (>= 3.0) - toml-merge! - tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) turbo_tests2 (~> 3.2, >= 3.2.0) - typescript-merge! webrick (~> 1.9) yaml-converter (~> 0.2, >= 0.2.3) - yaml-merge! yard (~> 0.9, >= 0.9.45) yard-fence (~> 0.9, >= 0.9.6) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) yard-timekeeper (~> 0.2, >= 0.2.4) yard-yaml (~> 0.2, >= 0.2.3) - zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af @@ -742,35 +449,20 @@ CHECKSUMS appraisal2 (3.2.0) sha256=ccd0b767ac4060cd7af6d16747459b6990f49c39c7b4fb1f7d1146b1e97c492f appraisal2-rubocop (1.0.0) sha256=b71410fbb014befda5340605a605b7f6f3f012739baf0acc5b4351b592c3258d ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 - ast-crispr (7.1.0) - ast-crispr-markdown-markly (7.1.0) - ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) - ast-merge-git (7.1.0) - ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 - bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd - binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 - citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 - commonmarker (2.9.0-aarch64-linux) sha256=e2b4aadb9a2cfa4e206582641ce3a49465549ac1ed4c289fdd63b78d8f24579c - commonmarker (2.9.0-aarch64-linux-musl) sha256=1cf4d2821f2a7e64945f1ed7c4eeced586fdb27ea7fe7337788802cf8f57cfca - commonmarker (2.9.0-arm64-darwin) sha256=1748dbfa4f5813b0d2a14bb4bbfa65a4ec293aa1c825016d60029ee0e132b046 - commonmarker (2.9.0-x86_64-linux) sha256=8cfe92970eef585a19ddf6613224b91cab64d6029834661bda801f877c9c7f43 - commonmarker (2.9.0-x86_64-linux-musl) sha256=293921398b839f79ceaf55010e061357e34f053822c3b003cd0be6686176335e - commonmarker-merge (7.1.0) concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 - dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -783,28 +475,20 @@ CHECKSUMS gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f - go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 - json-merge (7.1.0) kettle-dev (2.3.8) sha256=9d716ff21c660a730cb4e8d41e2e2f0630a28167a354b6e2924e242102aef72c - kettle-drift (1.0.6) sha256=46eda08fa4411d1f3c6682a95eef1c9df4e94611b3949f49d4c7b43c0ed356a3 - kettle-jem (7.1.0) kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f kettle-soup-cover (3.0.4) kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa - kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 - markdown-merge (7.1.0) - markly (0.16.0) sha256=6f70d79e385b1efc9e171f74c81628826259039fe6c778e03c3924c71dac5511 - markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-aarch64-linux-gnu) sha256=1269fb644a6de405057a53dd5c762b1209b43ca7424f839454d3dbc677c31a8f nokogiri (1.19.4-aarch64-linux-musl) sha256=35c65b9ce72b3bb03207bdbe7067915019dc18c1b9b59139684bd6690fdd01af @@ -818,14 +502,10 @@ CHECKSUMS parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 - parslet-toml-merge (7.1.0) - plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 - prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 - psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a @@ -866,19 +546,15 @@ CHECKSUMS rubocop-rspec_rails (2.32.0) sha256=4a0d641c72f6ebb957534f539d9d0a62c47abd8ce0d0aeee1ef4701e892a9100 rubocop-ruby3_2 (3.0.7) sha256=f53dd6d286fb05186214fc6ec116783e7f837030918e8931c05de773e98f8466 rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 - ruby-merge (7.1.0) ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 - rust-merge (7.1.0) - service_actor (3.9.4) sha256=e63b523630b9a7e62959b2a90113b08d2565b5de9c148557b281ef847c9539ce silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed - smorg-rb (7.1.0) sorbet-runtime (0.6.13347) sha256=54e7221d9f4b63f58aec79f3043752a9ba7810347c6ae0d903531591cc2d5f01 standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b @@ -893,22 +569,17 @@ CHECKSUMS timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.5) sha256=b852f924287ffb58a440856e862b056c8ad97e74b4b2526cee43e0771f40c25c - toml (0.3.0) sha256=0a91d0f76a9036e84e44f95693b12f58d358c1df3ac8e3b5271f2056ecc6e4b9 - toml-merge (7.1.0) - toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-aarch64-linux) sha256=55ffc7c87868cb45658338363d9eba51b4a8b0259aa88e4de368d2bd1d52fea4 tree_sitter_language_pack (1.13.3-arm64-darwin) sha256=bc2498db605f212a1dbd2465ed3f65190d7da786f6ed5d30fcf958121aeb4a5c tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 - typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 webrick (1.9.2) sha256=beb4a15fc474defed24a3bda4ffd88a490d517c9e4e6118c3edce59e45864131 yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 - yaml-merge (7.1.0) yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd @@ -916,7 +587,6 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 - zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH diff --git a/gems/rust-merge/Gemfile.lock b/gems/rust-merge/Gemfile.lock index 906733529..a48079f97 100644 --- a/gems/rust-merge/Gemfile.lock +++ b/gems/rust-merge/Gemfile.lock @@ -6,265 +6,6 @@ PATH tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly - specs: - ast-crispr-markdown-markly (7.1.0) - ast-crispr (= 7.1.0) - markly-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism - specs: - ast-crispr-ruby-prism (7.1.0) - ast-crispr (= 7.1.0) - prism-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr - specs: - ast-crispr (7.1.0) - ast-merge (= 7.1.0) - service_actor (~> 3.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git - specs: - ast-merge-git (7.1.0) - ast-merge (= 7.1.0) - json-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge - specs: - ast-merge (7.1.0) - benchmark - token-resolver (~> 2.0, >= 2.0.4) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template - specs: - ast-template (7.1.0) - ast-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge - specs: - bash-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge - specs: - binary-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge - specs: - citrus-toml-merge (7.1.0) - toml-merge (= 7.1.0) - toml-rb (~> 4.1) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge - specs: - commonmarker-merge (7.1.0) - commonmarker (~> 2.2) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge - specs: - dotenv-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge - specs: - go-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge - specs: - json-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem - specs: - kettle-jem (7.1.0) - addressable (>= 2.8, < 3) - ast-crispr-markdown-markly (= 7.1.0) - ast-crispr-ruby-prism (= 7.1.0) - ast-merge (= 7.1.0) - bash-merge (= 7.1.0) - citrus-toml-merge (= 7.1.0) - commonmarker-merge (= 7.1.0) - dotenv-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-dev (~> 2.3, >= 2.3.5) - kettle-rb (~> 0.1, >= 0.1.4) - kramdown-merge (= 7.1.0) - markdown-merge (= 7.1.0) - markly-merge (= 7.1.0) - prism-merge (= 7.1.0) - psych-merge (= 7.1.0) - rbs (>= 3.10) - rbs-merge (= 7.1.0) - ruby-merge (= 7.1.0) - token-resolver (~> 2.0, >= 2.0.4) - toml-merge (= 7.1.0) - toml-rb (~> 4.2) - tree_haver (= 7.1.0) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge - specs: - kramdown-merge (7.1.0) - kramdown (~> 2.5) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge - specs: - markdown-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge - specs: - markly-merge (7.1.0) - markdown-merge (= 7.1.0) - markly (~> 0.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge - specs: - parslet-toml-merge (7.1.0) - toml (~> 0.3) - toml-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge - specs: - plain-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge - specs: - prism-merge (7.1.0) - prism (~> 1.6) - ruby-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge - specs: - psych-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge - specs: - rbs-merge (7.1.0) - ast-merge (= 7.1.0) - rbs (>= 3.10) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge - specs: - ruby-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb - specs: - smorg-rb (7.1.0) - ast-merge (= 7.1.0) - ast-merge-git (= 7.1.0) - go-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-jem (= 7.1.0) - markly-merge (= 7.1.0) - plain-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge - specs: - toml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver - specs: - tree_haver (7.1.0) - citrus (~> 3.0) - parslet (~> 2.0) - tree_sitter_language_pack (>= 1.13.2, < 2.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge - specs: - typescript-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge - specs: - yaml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge - specs: - zip-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - GEM remote: https://gem.coop/ specs: @@ -280,6 +21,11 @@ GEM rubocop (>= 1.0) version_gem (~> 1.1, >= 1.1.14) ast (2.4.3) + ast-merge (7.1.0) + benchmark + token-resolver (~> 2.0, >= 2.0.4) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) backports (3.25.3) benchmark (0.5.0) bigdecimal (4.1.2) @@ -289,11 +35,6 @@ GEM cgi (0.5.2) citrus (3.0.2) cmdparse (3.0.7) - commonmarker (2.9.0-aarch64-linux) - commonmarker (2.9.0-aarch64-linux-musl) - commonmarker (2.9.0-arm64-darwin) - commonmarker (2.9.0-x86_64-linux) - commonmarker (2.9.0-x86_64-linux-musl) concurrent-ruby (1.3.8) date (3.5.1) debug (1.11.1) @@ -356,8 +97,6 @@ GEM kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) - kettle-drift (1.0.6) - version_gem (~> 1.1, >= 1.1.14) kettle-rb (0.1.5) kettle-soup-cover (3.0.4) kettle-wash (~> 0.1, >= 0.1.0) @@ -386,7 +125,6 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) - markly (0.16.0) mutex_m (0.3.0) nokogiri (1.19.4-aarch64-linux-gnu) racc (~> 1.4) @@ -549,8 +287,6 @@ GEM ruby-progressbar (1.13.0) ruby_engine (2.0.3) ruby_version (1.0.3) - service_actor (3.9.4) - zeitwerk (>= 1.0) silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) @@ -605,11 +341,11 @@ GEM token-resolver (2.0.5) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.14) - toml (0.3.0) - parslet (>= 1.8.0, < 3.0.0) - toml-rb (4.2.0) - citrus (~> 3.0, > 3.0) - racc (~> 1.7) + tree_haver (7.1.0) + citrus (~> 3.0) + parslet (~> 2.0) + tree_sitter_language_pack (>= 1.13.2, < 2.0) + version_gem (~> 1.1, >= 1.1.9) tree_sitter_language_pack (1.13.3-aarch64-linux) sorbet-runtime (~> 0.5) tree_sitter_language_pack (1.13.3-arm64-darwin) @@ -664,46 +400,23 @@ DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) appraisal2-rubocop (~> 1.0, >= 1.0.0) - ast-crispr! - ast-crispr-markdown-markly! - ast-crispr-ruby-prism! - ast-merge! - ast-merge-git! - ast-template! - bash-merge! benchmark (~> 0.5, >= 0.5.0) - binary-merge! bundler-audit (~> 0.9.3) cgi (~> 0.5) - citrus-toml-merge! - commonmarker-merge! debug (>= 1.1) - dotenv-merge! erb (~> 6.0, >= 6.0.6) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.0) - go-merge! irb (~> 1.17) - json-merge! kettle-dev (~> 2.0, >= 2.2.25) - kettle-drift (~> 1.0, >= 1.0.6) - kettle-jem! kettle-soup-cover (~> 3.0, >= 3.0.3) kettle-test (~> 2.0, >= 2.0.9) kramdown (~> 2.5, >= 2.5.2) - kramdown-merge! kramdown-parser-gfm (~> 1.1) - markdown-merge! - markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) - parslet-toml-merge! - plain-merge! - prism-merge! - psych-merge! rake (~> 13.0) rbs (>= 3.0) - rbs-merge! rdoc (~> 6.11) reek (~> 6.5, >= 6.5.0) require_bench (~> 1.0, >= 1.0.4) @@ -714,27 +427,20 @@ DEPENDENCIES rubocop-on-rbs (~> 2.0, >= 2.0.0) rubocop-packaging (~> 0.6, >= 0.6.0) rubocop-ruby3_2 (~> 3.0, >= 3.0.6) - ruby-merge! ruby-progressbar (~> 1.13) rust-merge! - smorg-rb! standard (~> 1.56, >= 1.56.0) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) - toml-merge! - tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) - typescript-merge! webrick (~> 1.9) yaml-converter (~> 0.2, >= 0.2.3) - yaml-merge! yard (~> 0.9, >= 0.9.45) yard-fence (~> 0.9, >= 0.9.6) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) yard-timekeeper (~> 0.2, >= 0.2.4) yard-yaml (~> 0.2, >= 0.2.3) - zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af @@ -742,35 +448,20 @@ CHECKSUMS appraisal2 (3.2.0) sha256=ccd0b767ac4060cd7af6d16747459b6990f49c39c7b4fb1f7d1146b1e97c492f appraisal2-rubocop (1.0.0) sha256=b71410fbb014befda5340605a605b7f6f3f012739baf0acc5b4351b592c3258d ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 - ast-crispr (7.1.0) - ast-crispr-markdown-markly (7.1.0) - ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) - ast-merge-git (7.1.0) - ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 - bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd - binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 - citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 - commonmarker (2.9.0-aarch64-linux) sha256=e2b4aadb9a2cfa4e206582641ce3a49465549ac1ed4c289fdd63b78d8f24579c - commonmarker (2.9.0-aarch64-linux-musl) sha256=1cf4d2821f2a7e64945f1ed7c4eeced586fdb27ea7fe7337788802cf8f57cfca - commonmarker (2.9.0-arm64-darwin) sha256=1748dbfa4f5813b0d2a14bb4bbfa65a4ec293aa1c825016d60029ee0e132b046 - commonmarker (2.9.0-x86_64-linux) sha256=8cfe92970eef585a19ddf6613224b91cab64d6029834661bda801f877c9c7f43 - commonmarker (2.9.0-x86_64-linux-musl) sha256=293921398b839f79ceaf55010e061357e34f053822c3b003cd0be6686176335e - commonmarker-merge (7.1.0) concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 - dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -783,28 +474,20 @@ CHECKSUMS gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f - go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 - json-merge (7.1.0) kettle-dev (2.3.8) sha256=9d716ff21c660a730cb4e8d41e2e2f0630a28167a354b6e2924e242102aef72c - kettle-drift (1.0.6) sha256=46eda08fa4411d1f3c6682a95eef1c9df4e94611b3949f49d4c7b43c0ed356a3 - kettle-jem (7.1.0) kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f kettle-soup-cover (3.0.4) kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa - kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 - markdown-merge (7.1.0) - markly (0.16.0) sha256=6f70d79e385b1efc9e171f74c81628826259039fe6c778e03c3924c71dac5511 - markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-aarch64-linux-gnu) sha256=1269fb644a6de405057a53dd5c762b1209b43ca7424f839454d3dbc677c31a8f nokogiri (1.19.4-aarch64-linux-musl) sha256=35c65b9ce72b3bb03207bdbe7067915019dc18c1b9b59139684bd6690fdd01af @@ -818,20 +501,15 @@ CHECKSUMS parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 - parslet-toml-merge (7.1.0) - plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 - prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 - psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 - rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb @@ -866,19 +544,16 @@ CHECKSUMS rubocop-rspec_rails (2.32.0) sha256=4a0d641c72f6ebb957534f539d9d0a62c47abd8ce0d0aeee1ef4701e892a9100 rubocop-ruby3_2 (3.0.7) sha256=f53dd6d286fb05186214fc6ec116783e7f837030918e8931c05de773e98f8466 rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 - ruby-merge (7.1.0) ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 rust-merge (7.1.0) - service_actor (3.9.4) sha256=e63b523630b9a7e62959b2a90113b08d2565b5de9c148557b281ef847c9539ce silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed - smorg-rb (7.1.0) sorbet-runtime (0.6.13347) sha256=54e7221d9f4b63f58aec79f3043752a9ba7810347c6ae0d903531591cc2d5f01 standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b @@ -893,22 +568,17 @@ CHECKSUMS timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.5) sha256=b852f924287ffb58a440856e862b056c8ad97e74b4b2526cee43e0771f40c25c - toml (0.3.0) sha256=0a91d0f76a9036e84e44f95693b12f58d358c1df3ac8e3b5271f2056ecc6e4b9 - toml-merge (7.1.0) - toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-aarch64-linux) sha256=55ffc7c87868cb45658338363d9eba51b4a8b0259aa88e4de368d2bd1d52fea4 tree_sitter_language_pack (1.13.3-arm64-darwin) sha256=bc2498db605f212a1dbd2465ed3f65190d7da786f6ed5d30fcf958121aeb4a5c tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 - typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 webrick (1.9.2) sha256=beb4a15fc474defed24a3bda4ffd88a490d517c9e4e6118c3edce59e45864131 yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 - yaml-merge (7.1.0) yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd @@ -916,7 +586,6 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 - zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH diff --git a/gems/smorg-rb/Gemfile.lock b/gems/smorg-rb/Gemfile.lock index 273bf7bd1..0f0539ea7 100644 --- a/gems/smorg-rb/Gemfile.lock +++ b/gems/smorg-rb/Gemfile.lock @@ -11,84 +11,6 @@ PATH plain-merge (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) -PATH - remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git - specs: - ast-merge-git (7.1.0) - ast-merge (= 7.1.0) - json-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/ast-merge - specs: - ast-merge (7.1.0) - benchmark - token-resolver (~> 2.0, >= 2.0.4) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/go-merge - specs: - go-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/json-merge - specs: - json-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem - specs: - kettle-jem (7.1.0) - addressable (>= 2.8, < 3) - ast-crispr-markdown-markly (= 7.1.0) - ast-crispr-ruby-prism (= 7.1.0) - ast-merge (= 7.1.0) - bash-merge (= 7.1.0) - citrus-toml-merge (= 7.1.0) - commonmarker-merge (= 7.1.0) - dotenv-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-dev (~> 2.3, >= 2.3.5) - kettle-rb (~> 0.1, >= 0.1.4) - kramdown-merge (= 7.1.0) - markdown-merge (= 7.1.0) - markly-merge (= 7.1.0) - prism-merge (= 7.1.0) - psych-merge (= 7.1.0) - rbs (>= 3.10) - rbs-merge (= 7.1.0) - ruby-merge (= 7.1.0) - token-resolver (~> 2.0, >= 2.0.4) - toml-merge (= 7.1.0) - toml-rb (~> 4.2) - tree_haver (= 7.1.0) - yaml-merge (= 7.1.0) - -PATH - remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/markly-merge - specs: - markly-merge (7.1.0) - markdown-merge (= 7.1.0) - markly (~> 0.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/plain-merge - specs: - plain-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - GEM remote: https://gem.coop/ specs: @@ -116,6 +38,15 @@ GEM ast-crispr (= 7.1.0) prism-merge (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) + ast-merge (7.1.0) + benchmark + token-resolver (~> 2.0, >= 2.0.4) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + ast-merge-git (7.1.0) + ast-merge (= 7.1.0) + json-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) backports (3.25.3) bash-merge (7.1.0) ast-merge (= 7.1.0) @@ -187,6 +118,10 @@ GEM geom2d (0.4.1) gitmoji-regex (2.0.4) version_gem (~> 1.1, >= 1.1.13) + go-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) hexapdf (1.9.1) cmdparse (~> 3.0, >= 3.0.3) geom2d (~> 0.4, >= 0.4.1) @@ -199,11 +134,40 @@ GEM rdoc (>= 4.0.0) reline (>= 0.4.2) json (2.21.1) + json-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) kettle-dev (2.3.8) emoji_regex (>= 15.0) kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) + kettle-jem (7.1.0) + addressable (>= 2.8, < 3) + ast-crispr-markdown-markly (= 7.1.0) + ast-crispr-ruby-prism (= 7.1.0) + ast-merge (= 7.1.0) + bash-merge (= 7.1.0) + citrus-toml-merge (= 7.1.0) + commonmarker-merge (= 7.1.0) + dotenv-merge (= 7.1.0) + json-merge (= 7.1.0) + kettle-dev (~> 2.3, >= 2.3.5) + kettle-rb (~> 0.1, >= 0.1.4) + kramdown-merge (= 7.1.0) + markdown-merge (= 7.1.0) + markly-merge (= 7.1.0) + prism-merge (= 7.1.0) + psych-merge (= 7.1.0) + rbs (>= 3.10) + rbs-merge (= 7.1.0) + ruby-merge (= 7.1.0) + token-resolver (~> 2.0, >= 2.0.4) + toml-merge (= 7.1.0) + toml-rb (~> 4.2) + tree_haver (= 7.1.0) + yaml-merge (= 7.1.0) kettle-rb (0.1.5) kettle-soup-cover (3.0.4) kettle-wash (~> 0.1, >= 0.1.0) @@ -241,6 +205,10 @@ GEM tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) markly (0.16.0) + markly-merge (7.1.0) + markdown-merge (= 7.1.0) + markly (~> 0.9) + version_gem (~> 1.1, >= 1.1.9) mutex_m (0.3.0) nokogiri (1.19.4-x86_64-linux-gnu) racc (~> 1.4) @@ -254,6 +222,10 @@ GEM ast (~> 2.4.1) racc parslet (2.0.0) + plain-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) pp (0.6.4) prettyprint prettyprint (0.2.0) @@ -530,8 +502,6 @@ DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) appraisal2-rubocop (~> 1.0, >= 1.0.0) - ast-merge! - ast-merge-git! benchmark (~> 0.5, >= 0.5.0) bundler-audit (~> 0.9.3) cgi (~> 0.5) @@ -539,19 +509,14 @@ DEPENDENCIES erb (~> 6.0, >= 6.0.6) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.0) - go-merge! irb (~> 1.17) - json-merge! kettle-dev (~> 2.0, >= 2.2.25) - kettle-jem! kettle-soup-cover (~> 3.0, >= 3.0.3) kettle-test (~> 2.0, >= 2.0.9) kramdown (~> 2.5, >= 2.5.2) kramdown-parser-gfm (~> 1.1) - markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) - plain-merge! rake (~> 13.0) rbs (>= 3.0) rdoc (~> 6.11) diff --git a/gems/toml-merge/Gemfile.lock b/gems/toml-merge/Gemfile.lock index b5e206094..5e197a097 100644 --- a/gems/toml-merge/Gemfile.lock +++ b/gems/toml-merge/Gemfile.lock @@ -6,265 +6,6 @@ PATH tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly - specs: - ast-crispr-markdown-markly (7.1.0) - ast-crispr (= 7.1.0) - markly-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism - specs: - ast-crispr-ruby-prism (7.1.0) - ast-crispr (= 7.1.0) - prism-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr - specs: - ast-crispr (7.1.0) - ast-merge (= 7.1.0) - service_actor (~> 3.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git - specs: - ast-merge-git (7.1.0) - ast-merge (= 7.1.0) - json-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge - specs: - ast-merge (7.1.0) - benchmark - token-resolver (~> 2.0, >= 2.0.4) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template - specs: - ast-template (7.1.0) - ast-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge - specs: - bash-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge - specs: - binary-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge - specs: - citrus-toml-merge (7.1.0) - toml-merge (= 7.1.0) - toml-rb (~> 4.1) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge - specs: - commonmarker-merge (7.1.0) - commonmarker (~> 2.2) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge - specs: - dotenv-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge - specs: - go-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge - specs: - json-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem - specs: - kettle-jem (7.1.0) - addressable (>= 2.8, < 3) - ast-crispr-markdown-markly (= 7.1.0) - ast-crispr-ruby-prism (= 7.1.0) - ast-merge (= 7.1.0) - bash-merge (= 7.1.0) - citrus-toml-merge (= 7.1.0) - commonmarker-merge (= 7.1.0) - dotenv-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-dev (~> 2.3, >= 2.3.5) - kettle-rb (~> 0.1, >= 0.1.4) - kramdown-merge (= 7.1.0) - markdown-merge (= 7.1.0) - markly-merge (= 7.1.0) - prism-merge (= 7.1.0) - psych-merge (= 7.1.0) - rbs (>= 3.10) - rbs-merge (= 7.1.0) - ruby-merge (= 7.1.0) - token-resolver (~> 2.0, >= 2.0.4) - toml-merge (= 7.1.0) - toml-rb (~> 4.2) - tree_haver (= 7.1.0) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge - specs: - kramdown-merge (7.1.0) - kramdown (~> 2.5) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge - specs: - markdown-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge - specs: - markly-merge (7.1.0) - markdown-merge (= 7.1.0) - markly (~> 0.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge - specs: - parslet-toml-merge (7.1.0) - toml (~> 0.3) - toml-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge - specs: - plain-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge - specs: - prism-merge (7.1.0) - prism (~> 1.6) - ruby-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge - specs: - psych-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge - specs: - rbs-merge (7.1.0) - ast-merge (= 7.1.0) - rbs (>= 3.10) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge - specs: - ruby-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge - specs: - rust-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb - specs: - smorg-rb (7.1.0) - ast-merge (= 7.1.0) - ast-merge-git (= 7.1.0) - go-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-jem (= 7.1.0) - markly-merge (= 7.1.0) - plain-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver - specs: - tree_haver (7.1.0) - citrus (~> 3.0) - parslet (~> 2.0) - tree_sitter_language_pack (>= 1.13.2, < 2.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge - specs: - typescript-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge - specs: - yaml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge - specs: - zip-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - GEM remote: https://gem.coop/ specs: @@ -280,6 +21,11 @@ GEM rubocop (>= 1.0) version_gem (~> 1.1, >= 1.1.14) ast (2.4.3) + ast-merge (7.1.0) + benchmark + token-resolver (~> 2.0, >= 2.0.4) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) backports (3.25.3) benchmark (0.5.0) bigdecimal (4.1.2) @@ -289,11 +35,6 @@ GEM cgi (0.5.2) citrus (3.0.2) cmdparse (3.0.7) - commonmarker (2.9.0-aarch64-linux) - commonmarker (2.9.0-aarch64-linux-musl) - commonmarker (2.9.0-arm64-darwin) - commonmarker (2.9.0-x86_64-linux) - commonmarker (2.9.0-x86_64-linux-musl) concurrent-ruby (1.3.8) date (3.5.1) debug (1.11.1) @@ -356,8 +97,6 @@ GEM kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) - kettle-drift (1.0.6) - version_gem (~> 1.1, >= 1.1.14) kettle-rb (0.1.5) kettle-soup-cover (3.0.4) kettle-wash (~> 0.1, >= 0.1.0) @@ -386,7 +125,6 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) - markly (0.16.0) mutex_m (0.3.0) nokogiri (1.19.4-aarch64-linux-gnu) racc (~> 1.4) @@ -549,8 +287,6 @@ GEM ruby-progressbar (1.13.0) ruby_engine (2.0.3) ruby_version (1.0.3) - service_actor (3.9.4) - zeitwerk (>= 1.0) silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) @@ -605,11 +341,11 @@ GEM token-resolver (2.0.5) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.14) - toml (0.3.0) - parslet (>= 1.8.0, < 3.0.0) - toml-rb (4.2.0) - citrus (~> 3.0, > 3.0) - racc (~> 1.7) + tree_haver (7.1.0) + citrus (~> 3.0) + parslet (~> 2.0) + tree_sitter_language_pack (>= 1.13.2, < 2.0) + version_gem (~> 1.1, >= 1.1.9) tree_sitter_language_pack (1.13.3-aarch64-linux) sorbet-runtime (~> 0.5) tree_sitter_language_pack (1.13.3-arm64-darwin) @@ -664,46 +400,23 @@ DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) appraisal2-rubocop (~> 1.0, >= 1.0.0) - ast-crispr! - ast-crispr-markdown-markly! - ast-crispr-ruby-prism! - ast-merge! - ast-merge-git! - ast-template! - bash-merge! benchmark (~> 0.5, >= 0.5.0) - binary-merge! bundler-audit (~> 0.9.3) cgi (~> 0.5) - citrus-toml-merge! - commonmarker-merge! debug (>= 1.1) - dotenv-merge! erb (~> 6.0, >= 6.0.6) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.0) - go-merge! irb (~> 1.17) - json-merge! kettle-dev (~> 2.0, >= 2.2.25) - kettle-drift (~> 1.0, >= 1.0.6) - kettle-jem! kettle-soup-cover (~> 3.0, >= 3.0.3) kettle-test (~> 2.0, >= 2.0.9) kramdown (~> 2.5, >= 2.5.2) - kramdown-merge! kramdown-parser-gfm (~> 1.1) - markdown-merge! - markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) - parslet-toml-merge! - plain-merge! - prism-merge! - psych-merge! rake (~> 13.0) rbs (>= 3.0) - rbs-merge! rdoc (~> 6.11) reek (~> 6.5, >= 6.5.0) require_bench (~> 1.0, >= 1.0.4) @@ -714,27 +427,20 @@ DEPENDENCIES rubocop-on-rbs (~> 2.0, >= 2.0.0) rubocop-packaging (~> 0.6, >= 0.6.0) rubocop-ruby3_2 (~> 3.0, >= 3.0.6) - ruby-merge! ruby-progressbar (~> 1.13) - rust-merge! - smorg-rb! standard (~> 1.56, >= 1.56.0) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) toml-merge! - tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) - typescript-merge! webrick (~> 1.9) yaml-converter (~> 0.2, >= 0.2.3) - yaml-merge! yard (~> 0.9, >= 0.9.45) yard-fence (~> 0.9, >= 0.9.6) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) yard-timekeeper (~> 0.2, >= 0.2.4) yard-yaml (~> 0.2, >= 0.2.3) - zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af @@ -742,35 +448,20 @@ CHECKSUMS appraisal2 (3.2.0) sha256=ccd0b767ac4060cd7af6d16747459b6990f49c39c7b4fb1f7d1146b1e97c492f appraisal2-rubocop (1.0.0) sha256=b71410fbb014befda5340605a605b7f6f3f012739baf0acc5b4351b592c3258d ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 - ast-crispr (7.1.0) - ast-crispr-markdown-markly (7.1.0) - ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) - ast-merge-git (7.1.0) - ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 - bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd - binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 - citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 - commonmarker (2.9.0-aarch64-linux) sha256=e2b4aadb9a2cfa4e206582641ce3a49465549ac1ed4c289fdd63b78d8f24579c - commonmarker (2.9.0-aarch64-linux-musl) sha256=1cf4d2821f2a7e64945f1ed7c4eeced586fdb27ea7fe7337788802cf8f57cfca - commonmarker (2.9.0-arm64-darwin) sha256=1748dbfa4f5813b0d2a14bb4bbfa65a4ec293aa1c825016d60029ee0e132b046 - commonmarker (2.9.0-x86_64-linux) sha256=8cfe92970eef585a19ddf6613224b91cab64d6029834661bda801f877c9c7f43 - commonmarker (2.9.0-x86_64-linux-musl) sha256=293921398b839f79ceaf55010e061357e34f053822c3b003cd0be6686176335e - commonmarker-merge (7.1.0) concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 - dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -783,28 +474,20 @@ CHECKSUMS gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f - go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 - json-merge (7.1.0) kettle-dev (2.3.8) sha256=9d716ff21c660a730cb4e8d41e2e2f0630a28167a354b6e2924e242102aef72c - kettle-drift (1.0.6) sha256=46eda08fa4411d1f3c6682a95eef1c9df4e94611b3949f49d4c7b43c0ed356a3 - kettle-jem (7.1.0) kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f kettle-soup-cover (3.0.4) kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa - kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 - markdown-merge (7.1.0) - markly (0.16.0) sha256=6f70d79e385b1efc9e171f74c81628826259039fe6c778e03c3924c71dac5511 - markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-aarch64-linux-gnu) sha256=1269fb644a6de405057a53dd5c762b1209b43ca7424f839454d3dbc677c31a8f nokogiri (1.19.4-aarch64-linux-musl) sha256=35c65b9ce72b3bb03207bdbe7067915019dc18c1b9b59139684bd6690fdd01af @@ -818,20 +501,15 @@ CHECKSUMS parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 - parslet-toml-merge (7.1.0) - plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 - prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 - psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 - rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb @@ -866,19 +544,15 @@ CHECKSUMS rubocop-rspec_rails (2.32.0) sha256=4a0d641c72f6ebb957534f539d9d0a62c47abd8ce0d0aeee1ef4701e892a9100 rubocop-ruby3_2 (3.0.7) sha256=f53dd6d286fb05186214fc6ec116783e7f837030918e8931c05de773e98f8466 rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 - ruby-merge (7.1.0) ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 - rust-merge (7.1.0) - service_actor (3.9.4) sha256=e63b523630b9a7e62959b2a90113b08d2565b5de9c148557b281ef847c9539ce silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed - smorg-rb (7.1.0) sorbet-runtime (0.6.13347) sha256=54e7221d9f4b63f58aec79f3043752a9ba7810347c6ae0d903531591cc2d5f01 standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b @@ -893,22 +567,18 @@ CHECKSUMS timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.5) sha256=b852f924287ffb58a440856e862b056c8ad97e74b4b2526cee43e0771f40c25c - toml (0.3.0) sha256=0a91d0f76a9036e84e44f95693b12f58d358c1df3ac8e3b5271f2056ecc6e4b9 toml-merge (7.1.0) - toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-aarch64-linux) sha256=55ffc7c87868cb45658338363d9eba51b4a8b0259aa88e4de368d2bd1d52fea4 tree_sitter_language_pack (1.13.3-arm64-darwin) sha256=bc2498db605f212a1dbd2465ed3f65190d7da786f6ed5d30fcf958121aeb4a5c tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 - typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 webrick (1.9.2) sha256=beb4a15fc474defed24a3bda4ffd88a490d517c9e4e6118c3edce59e45864131 yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 - yaml-merge (7.1.0) yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd @@ -916,7 +586,6 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 - zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH diff --git a/gems/typescript-merge/Gemfile.lock b/gems/typescript-merge/Gemfile.lock index 9832ba2a9..5c9db1ba3 100644 --- a/gems/typescript-merge/Gemfile.lock +++ b/gems/typescript-merge/Gemfile.lock @@ -6,265 +6,6 @@ PATH tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly - specs: - ast-crispr-markdown-markly (7.1.0) - ast-crispr (= 7.1.0) - markly-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism - specs: - ast-crispr-ruby-prism (7.1.0) - ast-crispr (= 7.1.0) - prism-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr - specs: - ast-crispr (7.1.0) - ast-merge (= 7.1.0) - service_actor (~> 3.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git - specs: - ast-merge-git (7.1.0) - ast-merge (= 7.1.0) - json-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge - specs: - ast-merge (7.1.0) - benchmark - token-resolver (~> 2.0, >= 2.0.4) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template - specs: - ast-template (7.1.0) - ast-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge - specs: - bash-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge - specs: - binary-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge - specs: - citrus-toml-merge (7.1.0) - toml-merge (= 7.1.0) - toml-rb (~> 4.1) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge - specs: - commonmarker-merge (7.1.0) - commonmarker (~> 2.2) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge - specs: - dotenv-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge - specs: - go-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge - specs: - json-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem - specs: - kettle-jem (7.1.0) - addressable (>= 2.8, < 3) - ast-crispr-markdown-markly (= 7.1.0) - ast-crispr-ruby-prism (= 7.1.0) - ast-merge (= 7.1.0) - bash-merge (= 7.1.0) - citrus-toml-merge (= 7.1.0) - commonmarker-merge (= 7.1.0) - dotenv-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-dev (~> 2.3, >= 2.3.5) - kettle-rb (~> 0.1, >= 0.1.4) - kramdown-merge (= 7.1.0) - markdown-merge (= 7.1.0) - markly-merge (= 7.1.0) - prism-merge (= 7.1.0) - psych-merge (= 7.1.0) - rbs (>= 3.10) - rbs-merge (= 7.1.0) - ruby-merge (= 7.1.0) - token-resolver (~> 2.0, >= 2.0.4) - toml-merge (= 7.1.0) - toml-rb (~> 4.2) - tree_haver (= 7.1.0) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge - specs: - kramdown-merge (7.1.0) - kramdown (~> 2.5) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge - specs: - markdown-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge - specs: - markly-merge (7.1.0) - markdown-merge (= 7.1.0) - markly (~> 0.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge - specs: - parslet-toml-merge (7.1.0) - toml (~> 0.3) - toml-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge - specs: - plain-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge - specs: - prism-merge (7.1.0) - prism (~> 1.6) - ruby-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge - specs: - psych-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge - specs: - rbs-merge (7.1.0) - ast-merge (= 7.1.0) - rbs (>= 3.10) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge - specs: - ruby-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge - specs: - rust-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb - specs: - smorg-rb (7.1.0) - ast-merge (= 7.1.0) - ast-merge-git (= 7.1.0) - go-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-jem (= 7.1.0) - markly-merge (= 7.1.0) - plain-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge - specs: - toml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver - specs: - tree_haver (7.1.0) - citrus (~> 3.0) - parslet (~> 2.0) - tree_sitter_language_pack (>= 1.13.2, < 2.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge - specs: - yaml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge - specs: - zip-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - GEM remote: https://gem.coop/ specs: @@ -280,6 +21,11 @@ GEM rubocop (>= 1.0) version_gem (~> 1.1, >= 1.1.14) ast (2.4.3) + ast-merge (7.1.0) + benchmark + token-resolver (~> 2.0, >= 2.0.4) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) backports (3.25.3) benchmark (0.5.0) bigdecimal (4.1.2) @@ -289,11 +35,6 @@ GEM cgi (0.5.2) citrus (3.0.2) cmdparse (3.0.7) - commonmarker (2.9.0-aarch64-linux) - commonmarker (2.9.0-aarch64-linux-musl) - commonmarker (2.9.0-arm64-darwin) - commonmarker (2.9.0-x86_64-linux) - commonmarker (2.9.0-x86_64-linux-musl) concurrent-ruby (1.3.8) date (3.5.1) debug (1.11.1) @@ -356,8 +97,6 @@ GEM kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) - kettle-drift (1.0.6) - version_gem (~> 1.1, >= 1.1.14) kettle-rb (0.1.5) kettle-soup-cover (3.0.4) kettle-wash (~> 0.1, >= 0.1.0) @@ -386,7 +125,6 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) - markly (0.16.0) mutex_m (0.3.0) nokogiri (1.19.4-aarch64-linux-gnu) racc (~> 1.4) @@ -549,8 +287,6 @@ GEM ruby-progressbar (1.13.0) ruby_engine (2.0.3) ruby_version (1.0.3) - service_actor (3.9.4) - zeitwerk (>= 1.0) silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) @@ -605,11 +341,11 @@ GEM token-resolver (2.0.5) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.14) - toml (0.3.0) - parslet (>= 1.8.0, < 3.0.0) - toml-rb (4.2.0) - citrus (~> 3.0, > 3.0) - racc (~> 1.7) + tree_haver (7.1.0) + citrus (~> 3.0) + parslet (~> 2.0) + tree_sitter_language_pack (>= 1.13.2, < 2.0) + version_gem (~> 1.1, >= 1.1.9) tree_sitter_language_pack (1.13.3-aarch64-linux) sorbet-runtime (~> 0.5) tree_sitter_language_pack (1.13.3-arm64-darwin) @@ -664,46 +400,23 @@ DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) appraisal2-rubocop (~> 1.0, >= 1.0.0) - ast-crispr! - ast-crispr-markdown-markly! - ast-crispr-ruby-prism! - ast-merge! - ast-merge-git! - ast-template! - bash-merge! benchmark (~> 0.5, >= 0.5.0) - binary-merge! bundler-audit (~> 0.9.3) cgi (~> 0.5) - citrus-toml-merge! - commonmarker-merge! debug (>= 1.1) - dotenv-merge! erb (~> 6.0, >= 6.0.6) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.0) - go-merge! irb (~> 1.17) - json-merge! kettle-dev (~> 2.0, >= 2.2.25) - kettle-drift (~> 1.0, >= 1.0.6) - kettle-jem! kettle-soup-cover (~> 3.0, >= 3.0.3) kettle-test (~> 2.0, >= 2.0.9) kramdown (~> 2.5, >= 2.5.2) - kramdown-merge! kramdown-parser-gfm (~> 1.1) - markdown-merge! - markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) - parslet-toml-merge! - plain-merge! - prism-merge! - psych-merge! rake (~> 13.0) rbs (>= 3.0) - rbs-merge! rdoc (~> 6.11) reek (~> 6.5, >= 6.5.0) require_bench (~> 1.0, >= 1.0.4) @@ -714,27 +427,20 @@ DEPENDENCIES rubocop-on-rbs (~> 2.0, >= 2.0.0) rubocop-packaging (~> 0.6, >= 0.6.0) rubocop-ruby3_2 (~> 3.0, >= 3.0.6) - ruby-merge! ruby-progressbar (~> 1.13) - rust-merge! - smorg-rb! standard (~> 1.56, >= 1.56.0) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) - toml-merge! - tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) typescript-merge! webrick (~> 1.9) yaml-converter (~> 0.2, >= 0.2.3) - yaml-merge! yard (~> 0.9, >= 0.9.45) yard-fence (~> 0.9, >= 0.9.6) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) yard-timekeeper (~> 0.2, >= 0.2.4) yard-yaml (~> 0.2, >= 0.2.3) - zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af @@ -742,35 +448,20 @@ CHECKSUMS appraisal2 (3.2.0) sha256=ccd0b767ac4060cd7af6d16747459b6990f49c39c7b4fb1f7d1146b1e97c492f appraisal2-rubocop (1.0.0) sha256=b71410fbb014befda5340605a605b7f6f3f012739baf0acc5b4351b592c3258d ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 - ast-crispr (7.1.0) - ast-crispr-markdown-markly (7.1.0) - ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) - ast-merge-git (7.1.0) - ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 - bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd - binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 - citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 - commonmarker (2.9.0-aarch64-linux) sha256=e2b4aadb9a2cfa4e206582641ce3a49465549ac1ed4c289fdd63b78d8f24579c - commonmarker (2.9.0-aarch64-linux-musl) sha256=1cf4d2821f2a7e64945f1ed7c4eeced586fdb27ea7fe7337788802cf8f57cfca - commonmarker (2.9.0-arm64-darwin) sha256=1748dbfa4f5813b0d2a14bb4bbfa65a4ec293aa1c825016d60029ee0e132b046 - commonmarker (2.9.0-x86_64-linux) sha256=8cfe92970eef585a19ddf6613224b91cab64d6029834661bda801f877c9c7f43 - commonmarker (2.9.0-x86_64-linux-musl) sha256=293921398b839f79ceaf55010e061357e34f053822c3b003cd0be6686176335e - commonmarker-merge (7.1.0) concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 - dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -783,28 +474,20 @@ CHECKSUMS gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f - go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 - json-merge (7.1.0) kettle-dev (2.3.8) sha256=9d716ff21c660a730cb4e8d41e2e2f0630a28167a354b6e2924e242102aef72c - kettle-drift (1.0.6) sha256=46eda08fa4411d1f3c6682a95eef1c9df4e94611b3949f49d4c7b43c0ed356a3 - kettle-jem (7.1.0) kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f kettle-soup-cover (3.0.4) kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa - kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 - markdown-merge (7.1.0) - markly (0.16.0) sha256=6f70d79e385b1efc9e171f74c81628826259039fe6c778e03c3924c71dac5511 - markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-aarch64-linux-gnu) sha256=1269fb644a6de405057a53dd5c762b1209b43ca7424f839454d3dbc677c31a8f nokogiri (1.19.4-aarch64-linux-musl) sha256=35c65b9ce72b3bb03207bdbe7067915019dc18c1b9b59139684bd6690fdd01af @@ -818,20 +501,15 @@ CHECKSUMS parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 - parslet-toml-merge (7.1.0) - plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 - prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 - psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 - rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb @@ -866,19 +544,15 @@ CHECKSUMS rubocop-rspec_rails (2.32.0) sha256=4a0d641c72f6ebb957534f539d9d0a62c47abd8ce0d0aeee1ef4701e892a9100 rubocop-ruby3_2 (3.0.7) sha256=f53dd6d286fb05186214fc6ec116783e7f837030918e8931c05de773e98f8466 rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 - ruby-merge (7.1.0) ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 - rust-merge (7.1.0) - service_actor (3.9.4) sha256=e63b523630b9a7e62959b2a90113b08d2565b5de9c148557b281ef847c9539ce silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed - smorg-rb (7.1.0) sorbet-runtime (0.6.13347) sha256=54e7221d9f4b63f58aec79f3043752a9ba7810347c6ae0d903531591cc2d5f01 standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b @@ -893,9 +567,6 @@ CHECKSUMS timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.5) sha256=b852f924287ffb58a440856e862b056c8ad97e74b4b2526cee43e0771f40c25c - toml (0.3.0) sha256=0a91d0f76a9036e84e44f95693b12f58d358c1df3ac8e3b5271f2056ecc6e4b9 - toml-merge (7.1.0) - toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-aarch64-linux) sha256=55ffc7c87868cb45658338363d9eba51b4a8b0259aa88e4de368d2bd1d52fea4 tree_sitter_language_pack (1.13.3-arm64-darwin) sha256=bc2498db605f212a1dbd2465ed3f65190d7da786f6ed5d30fcf958121aeb4a5c @@ -908,7 +579,6 @@ CHECKSUMS version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 webrick (1.9.2) sha256=beb4a15fc474defed24a3bda4ffd88a490d517c9e4e6118c3edce59e45864131 yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 - yaml-merge (7.1.0) yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd @@ -916,7 +586,6 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 - zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH From 4e6b8153f821499c466afaa754b402bc7c000521 Mon Sep 17 00:00:00 2001 From: "Peter H. Boling" Date: Tue, 21 Jul 2026 17:46:57 -0600 Subject: [PATCH 145/188] =?UTF-8?q?=F0=9F=90=9B=20Fix=20SimpleCov=20bootst?= =?UTF-8?q?rap=20templating=20migration?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 3 + gems/kettle-jem/.rubocop_gradual.lock | 10 +- gems/kettle-jem/lib/kettle/jem.rb | 102 ++++++++++++++++++ .../integration/coverage_template_spec.rb | 76 +++++++++++++ 4 files changed, 186 insertions(+), 5 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index cac311d12..78e8880f9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -33,6 +33,9 @@ Please file a bug if you notice a violation of semantic versioning. ### Changed +- `kettle-jem` now migrates existing SimpleCov bootstrap files for packaged + monorepo subgems even when the selected template profile does not otherwise + manage per-gem harness files. - `kettle-jem` RuboCop guidance now treats `.rubocop_gradual.lock` as a work list rather than a baseline, and documents explicit config and inline exceptions for intentional style deviations. diff --git a/gems/kettle-jem/.rubocop_gradual.lock b/gems/kettle-jem/.rubocop_gradual.lock index d119c60ae..79f3e3e25 100644 --- a/gems/kettle-jem/.rubocop_gradual.lock +++ b/gems/kettle-jem/.rubocop_gradual.lock @@ -28,10 +28,10 @@ [111, 3, 54, "Gemspec/DependencyVersion: Dependency version specification is required.", 3116501450], [112, 3, 54, "Gemspec/DependencyVersion: Dependency version specification is required.", 2771890615] ], - "lib/kettle/jem.rb:435786121": [ - [3854, 9, 10, "ThreadSafety/NewThread: Avoid starting new threads.", 3411682361], - [4255, 9, 32, "Style/SafeNavigation: Use safe navigation (`&.`) instead of checking if an object exists before calling the method.", 2221659486], - [10862, 9, 10, "ThreadSafety/NewThread: Avoid starting new threads.", 3411682361] + "lib/kettle/jem.rb:3456284": [ + [3868, 9, 10, "ThreadSafety/NewThread: Avoid starting new threads.", 3411682361], + [4269, 9, 32, "Style/SafeNavigation: Use safe navigation (`&.`) instead of checking if an object exists before calling the method.", 2221659486], + [10931, 9, 10, "ThreadSafety/NewThread: Avoid starting new threads.", 3411682361] ], "lib/kettle/jem/tasks/install_task.rb:2120658194": [ [1099, 47, 29, "Style/SafeNavigation: Use safe navigation (`&.`) instead of checking if an object exists before calling the method.", 964126728] @@ -52,7 +52,7 @@ [3, 1, 67, "RSpec/SpecFilePathFormat: Spec path should end with `kettle/jem*configuration_and_metadata_templating*_spec.rb`.", 3610099387], [3, 29, 39, "RSpec/DescribeMethod: The second argument to describe should be the method being tested. '#instance' or '.class'.", 1907259302] ], - "spec/integration/coverage_template_spec.rb:3538943565": [ + "spec/integration/coverage_template_spec.rb:3265006228": [ [3, 1, 66, "RSpec/SpecFilePathFormat: Spec path should end with `kettle/jem*coverage_bootstrap_template_behavior*_spec.rb`.", 823415992], [3, 29, 38, "RSpec/DescribeMethod: The second argument to describe should be the method being tested. '#instance' or '.class'.", 151296325] ], diff --git a/gems/kettle-jem/lib/kettle/jem.rb b/gems/kettle-jem/lib/kettle/jem.rb index 3053eea4d..d921d6c5e 100644 --- a/gems/kettle-jem/lib/kettle/jem.rb +++ b/gems/kettle-jem/lib/kettle/jem.rb @@ -139,6 +139,10 @@ class Error < StandardError; end "spec/spec_helper.rb" ] + PACKAGED_MODULAR_GEMFILE_TEMPLATE_ENTRIES ).freeze + SIMPLECOV_BOOTSTRAP_TEMPLATE_PATHS = %w[ + .simplecov + spec/spec_helper.rb + ].freeze SHIM_TEMPLATE_STATIC_ENTRIES = [ "README.md", "CHANGELOG.md", @@ -2920,6 +2924,11 @@ def discover_monorepo_root_facts(project_root, kettle_config, env, template_sele opencollective_disabled: opencollective_disabled, include_patterns: template_selection[:include] ) + template_preferences += existing_simplecov_bootstrap_template_preferences( + project_root, + template_config, + template_preferences + ) template_facts[:source_preferences] = template_preferences unless template_preferences.empty? template_tokens = template_tokens(facts, funding) template_facts[:tokens] = template_tokens unless template_tokens.empty? @@ -3146,6 +3155,11 @@ def discover_facts(project_root, env: ENV, run_options: {}) opencollective_disabled: opencollective_disabled, include_patterns: template_selection[:include] ) + template_preferences += existing_simplecov_bootstrap_template_preferences( + project_root, + template_config, + template_preferences + ) template_facts[:source_preferences] = template_preferences unless template_preferences.empty? template_facts[:inactive_packaged_template_cleanups] = inactive_templates unless inactive_templates.empty? shim_cleanups = shim_profile_cleanups(project_root, facts, template_preferences, template_selection: template_selection) @@ -5603,6 +5617,7 @@ def apply_template_source(project_root, recipe, original, facts: nil, env: ENV, def finalize_template_source_content(recipe, content) return finalize_rubocop_config(content) if recipe.fetch(:target_path).to_s == ".rubocop.yml" + return normalize_simplecov_template_source(content) if recipe.fetch(:target_path).to_s == ".simplecov" return normalize_spec_helper_simplecov_template_source(content) if recipe.fetch(:target_path).to_s == "spec/spec_helper.rb" content @@ -6555,11 +6570,65 @@ def simplecov_track_files_call_records(content) def normalize_spec_helper_simplecov_template_source(content) output = remove_duplicate_simplecov_do_cov_bootstrap_blocks(content) output = ensure_spec_helper_simplecov_do_cov_bootstrap(output) + output = remove_obsolete_simplecov_rescue_bootstrap_blocks(output) output = remove_duplicate_simplecov_requires(output) output = ensure_spec_helper_simplecov_config_require(output) ensure_spec_helper_simplecov_start(output) end + def remove_obsolete_simplecov_rescue_bootstrap_blocks(content) + records = obsolete_simplecov_rescue_bootstrap_records(content) + return content if records.empty? + + records.sort_by { |record| -record.fetch(:start_line) }.reduce(content.to_s) do |output, record| + replace_source_range_lines(output, record.fetch(:start_line), expand_line_range_through_following_blanks(output, record.fetch(:end_line)), "") + end + end + + def obsolete_simplecov_rescue_bootstrap_records(content) + result = prism_parse_success(content) + return [] unless result + + complete_bootstrap_present = simplecov_do_cov_bootstrap_records(content).any? { |record| record.fetch(:complete) } + result.value.breadth_first_search_all do |node| + obsolete_simplecov_rescue_bootstrap_node?(node, complete_bootstrap_present: complete_bootstrap_present) + end.map do |node| + { + start_line: node.location.start_line, + end_line: ruby_node_source_end_line(node) + } + end + end + + def obsolete_simplecov_rescue_bootstrap_node?(node, complete_bootstrap_present:) + return false unless node.is_a?(::Prism::BeginNode) + return false unless node.rescue_clause + + calls = prism_call_nodes(node) + has_kettle_soup_cover_require = calls.any? { |call| simplecov_kettle_soup_cover_require_call_node?(call) } + has_simplecov_require = calls.any? { |call| simplecov_require_call_node?(call) } + has_config_require = calls.any? { |call| simplecov_config_require_call_node?(call) } + has_kettle_soup_cover_require && + !has_config_require && + (has_simplecov_require || complete_bootstrap_present) && + calls.all? { |call| simplecov_bootstrap_call_node?(call) || simplecov_load_error_guard_call_node?(call) } + end + + def simplecov_bootstrap_call_node?(node) + simplecov_require_call_node?(node) || + simplecov_config_require_call_node?(node) || + simplecov_kettle_soup_cover_require_call_node?(node) || + simplecov_start_call_node?(node) + end + + def simplecov_load_error_guard_call_node?(node) + return true if node.name == :raise + return true if node.name == :message + return true if node.name == :include? && ruby_string_argument(node) == "kettle" + + false + end + def remove_duplicate_simplecov_do_cov_bootstrap_blocks(content) records = simplecov_do_cov_bootstrap_records(content) return content if records.length <= 1 @@ -14108,6 +14177,39 @@ def template_source_preferences(project_root, config, opencollective_disabled: f end end + def existing_simplecov_bootstrap_template_preferences(project_root, config, preferences) + templates = template_activation_config(config) + return [] unless templates.is_a?(Hash) + + root = template_root(project_root, templates) + return [] unless root.fetch(:kind) == "packaged" + + configured_paths = preferences.map { |preference| preference.fetch(:target_path).to_s }.to_set + SIMPLECOV_BOOTSTRAP_TEMPLATE_PATHS.filter_map do |target_path| + next if configured_paths.include?(target_path) + next unless File.exist?(File.join(project_root, target_path)) + + selected_source = preferred_template_source(root.fetch(:path), target_path) + next unless selected_source + + { + target_path: target_path, + configured_source: target_path, + selected_source: template_source_display_path(root, selected_source), + selection_reason: template_source_selection_reason(target_path, template_source_display_path(root, selected_source)), + apply: templates["apply"] == true, + strategy: "merge", + preference: "template", + add_template_only_nodes: true, + freeze_token: config.dig("defaults", "freeze_token").to_s.empty? ? "kettle-jem" : config.dig("defaults", "freeze_token").to_s, + source_relative_path: selected_source, + source_root: root.fetch(:kind), + source_root_path: root.fetch(:path), + migration: "simplecov_bootstrap" + } + end + end + def template_runtime_config(config, facts, license: {}) result = deep_dup(config) result["rubygems"] = {} unless result["rubygems"].is_a?(Hash) diff --git a/gems/kettle-jem/spec/integration/coverage_template_spec.rb b/gems/kettle-jem/spec/integration/coverage_template_spec.rb index d664c2bd1..ebb7b7943 100644 --- a/gems/kettle-jem/spec/integration/coverage_template_spec.rb +++ b/gems/kettle-jem/spec/integration/coverage_template_spec.rb @@ -185,4 +185,80 @@ expect(kettle_config.fetch(:final_content)).not_to include(".simplecov:") end end + + it "migrates existing SimpleCov bootstrap files for monorepo package profiles that omit harness entries" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-smorg-rb-simplecov-migration", tmp_root) do |root| + write_tree(root, { + "smorg-rb.gemspec" => <<~RUBY, + Gem::Specification.new do |spec| + spec.name = "smorg-rb" + spec.summary = "Example gem" + spec.licenses = ["AGPL-3.0-only", "PolyForm-Small-Business-1.0.0"] + spec.required_ruby_version = ">= 4.0" + end + RUBY + ".structuredmerge/kettle-jem.yml" => <<~YAML, + project_emoji: 💎 + templates: + root: packaged + apply: true + profile: monorepo-subgem-package + entries: + - README.md + - source: gem.gemspec + target: smorg-rb.gemspec + - Gemfile + defaults: + preference: "template" + add_template_only_nodes: true + freeze_token: "kettle-jem" + rubygems: + namespace: Smorg::RB + files: + README.md: + strategy: merge + smorg-rb.gemspec: + strategy: keep_destination + YAML + ".simplecov" => <<~RUBY, + require 'kettle/soup/cover/config' + + SimpleCov.start do + track_files 'lib/**/*.rb' + track_files 'lib/**/*.rake' + track_files 'exe/*.rb' + end + RUBY + "spec/spec_helper.rb" => <<~RUBY + # frozen_string_literal: true + + begin + require 'kettle-soup-cover' + require 'simplecov' if Kettle::Soup::Cover::DO_COV # `.simplecov` is run here! + rescue LoadError => e + raise e unless e.message.include?('kettle') + end + + require 'smorg/rb' + RUBY + }) + + apply = described_class.apply_project(root, env: {}, run_options: {accept: true}) + simplecov = apply.fetch(:recipe_reports).find { |candidate| candidate.fetch(:relative_path) == ".simplecov" } + spec_helper = apply.fetch(:recipe_reports).find { |candidate| candidate.fetch(:relative_path) == "spec/spec_helper.rb" } + + expect(simplecov).not_to be_nil + expect(spec_helper).not_to be_nil + expect(simplecov.fetch(:final_content)).to include('cover "lib/**/*.rb", "lib/**/*.rake", "exe/*.rb"') + expect(simplecov.fetch(:final_content)).not_to include("SimpleCov.start") + expect(simplecov.fetch(:final_content)).not_to include("track_files") + expect(spec_helper.fetch(:final_content)).to include('require "simplecov"') + expect(spec_helper.fetch(:final_content)).to include('require "kettle/soup/cover/config"') + expect(spec_helper.fetch(:final_content)).to include("SimpleCov.start") + expect(spec_helper.fetch(:final_content)).not_to include("require 'kettle-soup-cover'") + expect(spec_helper.fetch(:final_content)).not_to include("`.simplecov` is run here") + end + end end From 418e0f3ff5d37ac012ef960600b7b2f7f3376a31 Mon Sep 17 00:00:00 2001 From: "Peter H. Boling" Date: Tue, 21 Jul 2026 18:00:36 -0600 Subject: [PATCH 146/188] =?UTF-8?q?=F0=9F=8E=A8=20Template=20bootstrap=20b?= =?UTF-8?q?y=20kettle-jem=20v7.1.0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Gemfile | 2 +- Gemfile.lock | 35 +- gems/ast-crispr-ruby-prism/Gemfile.lock | 349 +----------- gems/ast-crispr/.kettle-drift.lock | 144 ++++- gems/ast-crispr/.rubocop_gradual.lock | 2 +- gems/ast-crispr/.simplecov | 8 +- gems/ast-crispr/Gemfile | 40 ++ gems/ast-crispr/Gemfile.lock | 335 +----------- gems/ast-crispr/spec/spec_helper.rb | 7 +- gems/ast-merge-git/Gemfile.lock | 346 +----------- gems/ast-merge/.kettle-drift.lock | 144 ++++- gems/ast-merge/Gemfile | 72 ++- gems/ast-merge/Gemfile.lock | 25 +- gems/ast-merge/Rakefile | 18 +- .../gemfiles/modular/templating.gemfile | 12 +- .../gemfiles/modular/templating_local.gemfile | 44 +- gems/ast-merge/lib/ast/merge/version.rb | 2 +- gems/ast-template/Gemfile.lock | 344 +----------- gems/bash-merge/Gemfile.lock | 351 +----------- gems/binary-merge/Gemfile.lock | 350 +----------- gems/citrus-toml-merge/Gemfile.lock | 342 +----------- gems/commonmarker-merge/Gemfile.lock | 344 +----------- gems/go-merge/Gemfile.lock | 351 +----------- gems/kettle-jem/Gemfile.lock | 46 +- gems/kramdown-merge/Gemfile.lock | 346 +----------- gems/markdown-merge/Gemfile.lock | 351 +----------- gems/markly-merge/Gemfile.lock | 344 +----------- gems/ruby-merge/.kettle-drift.lock | 144 ++++- gems/ruby-merge/.rubocop_gradual.lock | 391 -------------- gems/ruby-merge/.simplecov | 8 +- gems/ruby-merge/Gemfile | 40 ++ gems/ruby-merge/Gemfile.lock | 34 +- gems/ruby-merge/spec/spec_helper.rb | 7 +- gems/smorg-rb/Gemfile.lock | 5 +- gems/smorg-rb/lib/smorg/rb.rb | 22 +- gems/smorg-rb/smorg-rb.gemspec | 1 + gems/smorg-rb/spec/cli_spec.rb | 24 +- gems/tree_haver/.rubocop_gradual.lock | 500 ------------------ gems/tree_haver/.simplecov | 8 +- gems/tree_haver/Gemfile.lock | 4 +- gems/tree_haver/spec/spec_helper.rb | 7 +- gems/yaml-merge/Gemfile.lock | 351 +----------- gems/zip-merge/Gemfile.lock | 350 +----------- 43 files changed, 895 insertions(+), 5755 deletions(-) delete mode 100644 gems/ruby-merge/.rubocop_gradual.lock delete mode 100644 gems/tree_haver/.rubocop_gradual.lock diff --git a/Gemfile b/Gemfile index d0b400161..0fc912c07 100644 --- a/Gemfile +++ b/Gemfile @@ -73,7 +73,7 @@ gem "bundler-audit", "~> 0.9.3" if kettle_dev_dev.casecmp("false").zero? gem "kettle-dev", "~> 2.2", ">= 2.2.25" - gem "kettle-family", ">= 1.0.2" + gem "kettle-family", ">= 1.0.4" gem "kettle-test", "~> 2.0", ">= 2.0.11" end diff --git a/Gemfile.lock b/Gemfile.lock index b271f64bf..cdac97f9b 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -218,6 +218,7 @@ PATH smorg-rb (7.1.0) ast-merge (= 7.1.0) ast-merge-git (= 7.1.0) + diff-lcs (~> 1.5) go-merge (= 7.1.0) json-merge (= 7.1.0) kettle-jem (= 7.1.0) @@ -295,24 +296,24 @@ GEM diff-lcs (1.6.2) docopt_ng (0.7.1) emoji_regex (15.0.0) - erb (6.0.5) + erb (6.0.6) gitmoji-regex (2.0.4) version_gem (~> 1.1, >= 1.1.13) io-console (0.8.2) - kettle-dev (2.3.7) + kettle-dev (2.3.9) emoji_regex (>= 15.0) kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) - kettle-drift (1.0.5) - version_gem (~> 1.1, >= 1.1.13) - kettle-family (1.0.2) + kettle-drift (1.0.6) + version_gem (~> 1.1, >= 1.1.14) + kettle-family (1.0.4) command_kit (~> 0.6) command_kit-completion (~> 0.1) kettle-dev (~> 2.3, >= 2.3.4) kettle-test (~> 2.0, >= 2.0.10) tsort (~> 0.2) - kettle-rb (0.1.4) + kettle-rb (0.1.5) kettle-test (2.0.12) appraisal2 (~> 3.0, >= 3.0.6) backports (~> 3.0) @@ -378,7 +379,7 @@ GEM silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) - sorbet-runtime (0.6.13347) + sorbet-runtime (0.6.13351) stone_checksums (1.0.6) version_gem (~> 1.1, >= 1.1.13) thor (1.5.0) @@ -387,9 +388,9 @@ GEM delegate (~> 0.1) rspec (~> 3.0) timecop (>= 0.7, < 1) - token-resolver (2.0.4) + token-resolver (2.0.5) parslet (~> 2.0) - version_gem (~> 1.1, >= 1.1.13) + version_gem (~> 1.1, >= 1.1.14) toml (0.3.0) parslet (>= 1.8.0, < 3.0.0) toml-rb (4.2.0) @@ -428,7 +429,7 @@ DEPENDENCIES json-merge! kettle-dev (~> 2.2, ~> 2.0, >= 2.2.25) kettle-drift (~> 1.0, >= 1.0.5) - kettle-family (>= 1.0.2) + kettle-family (>= 1.0.4) kettle-jem! kettle-test (~> 2.0, >= 2.0.9, >= 2.0.11) kramdown-merge! @@ -486,16 +487,16 @@ CHECKSUMS docopt_ng (0.7.1) sha256=a024148ee4fa3ab1a8a04411aa4370f39cf2b446e63562097d418b7974a15667 dotenv-merge (7.1.0) emoji_regex (15.0.0) sha256=a508b2c0bee561169564e0aec96085020c900520d335e5533fd8e78e59493829 - erb (6.0.5) sha256=858e63488cb796c9daba8b6e9ff4b3879c395022049be9a66a8e00980e612eac + erb (6.0.6) sha256=a9b24986700f5bf127c4f297c5403c3ca41b83b0a316c0cd09a096b56e644ae5 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f go-merge (7.1.0) io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc json-merge (7.1.0) - kettle-dev (2.3.7) sha256=eb370113cd030d03cbe2d33b31c99858951017e5ad21a17e9ed89dc3770028ee - kettle-drift (1.0.5) sha256=07094e80140a049164142820bdd327c30fcd855bb00697a0a430600a2b5144a2 - kettle-family (1.0.2) sha256=2775638ebd81c0f549316f4a0fc9cdf8f8700c58e8883c7ced0c335c7317fa00 + kettle-dev (2.3.9) + kettle-drift (1.0.6) sha256=46eda08fa4411d1f3c6682a95eef1c9df4e94611b3949f49d4c7b43c0ed356a3 + kettle-family (1.0.4) sha256=bd6d111e997ae07f531c553f86dfd3c8f31eb37d4b3eefaef65655f7d6bc6c51 kettle-jem (7.1.0) - kettle-rb (0.1.4) sha256=9cef7ce4f7021666b7222292f29051e51eaf042e8a5db11f3f4dd72f74243fc1 + kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa kramdown-merge (7.1.0) @@ -537,12 +538,12 @@ CHECKSUMS service_actor (3.9.4) sha256=e63b523630b9a7e62959b2a90113b08d2565b5de9c148557b281ef847c9539ce silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 smorg-rb (7.1.0) - sorbet-runtime (0.6.13347) sha256=54e7221d9f4b63f58aec79f3043752a9ba7810347c6ae0d903531591cc2d5f01 + sorbet-runtime (0.6.13351) sha256=f8fee17c6e3edf835dc6823d26afb9a7c8969c6710d1fabe2fb43f4e0c15c64f stone_checksums (1.0.6) sha256=c775f830513d6c6ab26e31d1a5fbecd4c4e39002663d4d9f8fa96e97990b5298 thor (1.5.0) sha256=e3a9e55fe857e44859ce104a84675ab6e8cd59c650a49106a05f55f136425e73 timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 - token-resolver (2.0.4) sha256=33b926958f504525bba3ed511ab66fbcbf8ef30390815e931436b30f27ffcad0 + token-resolver (2.0.5) sha256=b852f924287ffb58a440856e862b056c8ad97e74b4b2526cee43e0771f40c25c toml (0.3.0) sha256=0a91d0f76a9036e84e44f95693b12f58d358c1df3ac8e3b5271f2056ecc6e4b9 toml-merge (7.1.0) toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 diff --git a/gems/ast-crispr-ruby-prism/Gemfile.lock b/gems/ast-crispr-ruby-prism/Gemfile.lock index 14dba8d00..3b48e1f04 100644 --- a/gems/ast-crispr-ruby-prism/Gemfile.lock +++ b/gems/ast-crispr-ruby-prism/Gemfile.lock @@ -6,265 +6,6 @@ PATH prism-merge (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly - specs: - ast-crispr-markdown-markly (7.1.0) - ast-crispr (= 7.1.0) - markly-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr - specs: - ast-crispr (7.1.0) - ast-merge (= 7.1.0) - service_actor (~> 3.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git - specs: - ast-merge-git (7.1.0) - ast-merge (= 7.1.0) - json-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge - specs: - ast-merge (7.1.0) - benchmark - token-resolver (~> 2.0, >= 2.0.4) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template - specs: - ast-template (7.1.0) - ast-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge - specs: - bash-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge - specs: - binary-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge - specs: - citrus-toml-merge (7.1.0) - toml-merge (= 7.1.0) - toml-rb (~> 4.1) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge - specs: - commonmarker-merge (7.1.0) - commonmarker (~> 2.2) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge - specs: - dotenv-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge - specs: - go-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge - specs: - json-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem - specs: - kettle-jem (7.1.0) - addressable (>= 2.8, < 3) - ast-crispr-markdown-markly (= 7.1.0) - ast-crispr-ruby-prism (= 7.1.0) - ast-merge (= 7.1.0) - bash-merge (= 7.1.0) - citrus-toml-merge (= 7.1.0) - commonmarker-merge (= 7.1.0) - dotenv-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-dev (~> 2.3, >= 2.3.5) - kettle-rb (~> 0.1, >= 0.1.4) - kramdown-merge (= 7.1.0) - markdown-merge (= 7.1.0) - markly-merge (= 7.1.0) - prism-merge (= 7.1.0) - psych-merge (= 7.1.0) - rbs (>= 3.10) - rbs-merge (= 7.1.0) - ruby-merge (= 7.1.0) - token-resolver (~> 2.0, >= 2.0.4) - toml-merge (= 7.1.0) - toml-rb (~> 4.2) - tree_haver (= 7.1.0) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge - specs: - kramdown-merge (7.1.0) - kramdown (~> 2.5) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge - specs: - markdown-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge - specs: - markly-merge (7.1.0) - markdown-merge (= 7.1.0) - markly (~> 0.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge - specs: - parslet-toml-merge (7.1.0) - toml (~> 0.3) - toml-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge - specs: - plain-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge - specs: - prism-merge (7.1.0) - prism (~> 1.6) - ruby-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge - specs: - psych-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge - specs: - rbs-merge (7.1.0) - ast-merge (= 7.1.0) - rbs (>= 3.10) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge - specs: - ruby-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge - specs: - rust-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb - specs: - smorg-rb (7.1.0) - ast-merge (= 7.1.0) - ast-merge-git (= 7.1.0) - go-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-jem (= 7.1.0) - markly-merge (= 7.1.0) - plain-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge - specs: - toml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver - specs: - tree_haver (7.1.0) - citrus (~> 3.0) - parslet (~> 2.0) - tree_sitter_language_pack (>= 1.13.2, < 2.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge - specs: - typescript-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge - specs: - yaml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge - specs: - zip-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - GEM remote: https://gem.coop/ specs: @@ -280,6 +21,15 @@ GEM rubocop (>= 1.0) version_gem (~> 1.1, >= 1.1.14) ast (2.4.3) + ast-crispr (7.1.0) + ast-merge (= 7.1.0) + service_actor (~> 3.9) + version_gem (~> 1.1, >= 1.1.9) + ast-merge (7.1.0) + benchmark + token-resolver (~> 2.0, >= 2.0.4) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) backports (3.25.3) benchmark (0.5.0) bigdecimal (4.1.2) @@ -289,7 +39,6 @@ GEM cgi (0.5.2) citrus (3.0.2) cmdparse (3.0.7) - commonmarker (2.9.0-x86_64-linux) concurrent-ruby (1.3.8) date (3.5.1) debug (1.11.1) @@ -352,8 +101,6 @@ GEM kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) - kettle-drift (1.0.6) - version_gem (~> 1.1, >= 1.1.14) kettle-rb (0.1.5) kettle-soup-cover (3.0.4) kettle-wash (~> 0.1, >= 0.1.0) @@ -382,7 +129,6 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) - markly (0.16.0) mutex_m (0.3.0) nokogiri (1.19.4-x86_64-linux-gnu) racc (~> 1.4) @@ -400,6 +146,10 @@ GEM prettyprint prettyprint (0.2.0) prism (1.9.0) + prism-merge (7.1.0) + prism (~> 1.6) + ruby-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) psych (5.4.0) date stringio @@ -534,6 +284,10 @@ GEM lint_roller (~> 1.1) rubocop (~> 1.72, >= 1.72.1) rubocop-ast (>= 1.44.0, < 2.0) + ruby-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) ruby-progressbar (1.13.0) ruby_engine (2.0.3) ruby_version (1.0.3) @@ -593,11 +347,11 @@ GEM token-resolver (2.0.5) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.14) - toml (0.3.0) - parslet (>= 1.8.0, < 3.0.0) - toml-rb (4.2.0) - citrus (~> 3.0, > 3.0) - racc (~> 1.7) + tree_haver (7.1.0) + citrus (~> 3.0) + parslet (~> 2.0) + tree_sitter_language_pack (>= 1.13.2, < 2.0) + version_gem (~> 1.1, >= 1.1.9) tree_sitter_language_pack (1.13.3-x86_64-linux) sorbet-runtime (~> 0.5) tsort (0.2.0) @@ -642,46 +396,24 @@ DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) appraisal2-rubocop (~> 1.0, >= 1.0.0) - ast-crispr! - ast-crispr-markdown-markly! ast-crispr-ruby-prism! - ast-merge! - ast-merge-git! - ast-template! - bash-merge! benchmark (~> 0.5, >= 0.5.0) - binary-merge! bundler-audit (~> 0.9.3) cgi (~> 0.5) - citrus-toml-merge! - commonmarker-merge! debug (>= 1.1) - dotenv-merge! erb (~> 6.0, >= 6.0.6) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.0) - go-merge! irb (~> 1.17) - json-merge! kettle-dev (~> 2.0, >= 2.2.25) - kettle-drift (~> 1.0, >= 1.0.6) - kettle-jem! kettle-soup-cover (~> 3.0, >= 3.0.3) kettle-test (~> 2.0, >= 2.0.9) kramdown (~> 2.5, >= 2.5.2) - kramdown-merge! kramdown-parser-gfm (~> 1.1) - markdown-merge! - markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) - parslet-toml-merge! - plain-merge! - prism-merge! - psych-merge! rake (~> 13.0) rbs (>= 3.0) - rbs-merge! rdoc (~> 6.11) reek (~> 6.5, >= 6.5.0) require_bench (~> 1.0, >= 1.0.4) @@ -692,27 +424,19 @@ DEPENDENCIES rubocop-on-rbs (~> 2.0, >= 2.0.0) rubocop-packaging (~> 0.6, >= 0.6.0) rubocop-ruby3_2 (~> 3.0, >= 3.0.6) - ruby-merge! ruby-progressbar (~> 1.13) - rust-merge! - smorg-rb! standard (~> 1.56, >= 1.56.0) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) - toml-merge! - tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) - typescript-merge! webrick (~> 1.9) yaml-converter (~> 0.2, >= 0.2.3) - yaml-merge! yard (~> 0.9, >= 0.9.45) yard-fence (~> 0.9, >= 0.9.6) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) yard-timekeeper (~> 0.2, >= 0.2.4) yard-yaml (~> 0.2, >= 0.2.3) - zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af @@ -721,30 +445,21 @@ CHECKSUMS appraisal2-rubocop (1.0.0) sha256=b71410fbb014befda5340605a605b7f6f3f012739baf0acc5b4351b592c3258d ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 ast-crispr (7.1.0) - ast-crispr-markdown-markly (7.1.0) ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) - ast-merge-git (7.1.0) - ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 - bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd - binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 - citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 - commonmarker (2.9.0-x86_64-linux) sha256=8cfe92970eef585a19ddf6613224b91cab64d6029834661bda801f877c9c7f43 - commonmarker-merge (7.1.0) concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 - dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -757,28 +472,20 @@ CHECKSUMS gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f - go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 - json-merge (7.1.0) kettle-dev (2.3.8) sha256=9d716ff21c660a730cb4e8d41e2e2f0630a28167a354b6e2924e242102aef72c - kettle-drift (1.0.6) sha256=46eda08fa4411d1f3c6682a95eef1c9df4e94611b3949f49d4c7b43c0ed356a3 - kettle-jem (7.1.0) kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f kettle-soup-cover (3.0.4) kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa - kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 - markdown-merge (7.1.0) - markly (0.16.0) sha256=6f70d79e385b1efc9e171f74c81628826259039fe6c778e03c3924c71dac5511 - markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-x86_64-linux-gnu) sha256=379fae440b28915e3f19d752ce2dcf8465ed2b2fbefd2a7ca0dd497bc981a06a nomono (1.0.9) @@ -788,20 +495,16 @@ CHECKSUMS parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 - parslet-toml-merge (7.1.0) - plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 - psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 - rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb @@ -840,7 +543,6 @@ CHECKSUMS ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 - rust-merge (7.1.0) service_actor (3.9.4) sha256=e63b523630b9a7e62959b2a90113b08d2565b5de9c148557b281ef847c9539ce silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 @@ -848,7 +550,6 @@ CHECKSUMS simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed - smorg-rb (7.1.0) sorbet-runtime (0.6.13347) sha256=54e7221d9f4b63f58aec79f3043752a9ba7810347c6ae0d903531591cc2d5f01 standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b @@ -863,20 +564,15 @@ CHECKSUMS timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.5) sha256=b852f924287ffb58a440856e862b056c8ad97e74b4b2526cee43e0771f40c25c - toml (0.3.0) sha256=0a91d0f76a9036e84e44f95693b12f58d358c1df3ac8e3b5271f2056ecc6e4b9 - toml-merge (7.1.0) - toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 - typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 webrick (1.9.2) sha256=beb4a15fc474defed24a3bda4ffd88a490d517c9e4e6118c3edce59e45864131 yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 - yaml-merge (7.1.0) yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd @@ -884,7 +580,6 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 - zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH diff --git a/gems/ast-crispr/.kettle-drift.lock b/gems/ast-crispr/.kettle-drift.lock index bf85fa76f..9a486b4b3 100644 --- a/gems/ast-crispr/.kettle-drift.lock +++ b/gems/ast-crispr/.kettle-drift.lock @@ -1,10 +1,74 @@ { + "(direct_sibling_local ||\nENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?)": [ + { + "file": "Gemfile", + "lines": [ + 79, + 119 + ] + } + ], + ".find { |spec| spec.name == 'nomono' }\nnomono_locked = nomono_locked_spec &&": [ + { + "file": "Gemfile", + "lines": [ + 90, + 130 + ] + } + ], + "ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?)\ndirect_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV')": [ + { + "file": "Gemfile", + "lines": [ + 80, + 120 + ] + } + ], + "Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version)\nnomono_activation_requirements = [\"= #{nomono_locked_spec.version}\"] if nomono_locked": [ + { + "file": "Gemfile", + "lines": [ + 92, + 132 + ] + } + ], + "Kernel.send(:gem, 'nomono', *nomono_activation_requirements)\nrequire 'nomono/bundler'": [ + { + "file": "Gemfile", + "lines": [ + 95, + 135 + ] + } + ], + "direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV')\ndirect_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil)": [ + { + "file": "Gemfile", + "lines": [ + 81, + 121 + ] + } + ], "eval_nomono_gems(\ngems: direct_sibling_gems,": [ { "file": "Gemfile", "lines": [ 59, - 99 + 99, + 139 + ] + } + ], + "gems: direct_sibling_gems,\nprefix: 'STRUCTUREDMERGE',": [ + { + "file": "Gemfile", + "lines": [ + 100, + 140 ] } ], @@ -13,7 +77,17 @@ "file": "Gemfile", "lines": [ 42, - 86 + 86, + 126 + ] + } + ], + "if direct_sibling_dev_was_set\nENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original": [ + { + "file": "Gemfile", + "lines": [ + 109, + 149 ] } ], @@ -22,7 +96,8 @@ "file": "Gemfile", "lines": [ 34, - 78 + 78, + 118 ] } ], @@ -31,7 +106,17 @@ "file": "Gemfile", "lines": [ 68, - 108 + 108, + 148 + ] + } + ], + "nomono_activation_requirements = nomono_requirements\nnomono_lockfile = File.expand_path('Gemfile.lock', __dir__)": [ + { + "file": "Gemfile", + "lines": [ + 84, + 124 ] } ], @@ -40,7 +125,8 @@ "file": "Gemfile", "lines": [ 47, - 91 + 91, + 131 ] } ], @@ -49,7 +135,53 @@ "file": "Gemfile", "lines": [ 43, - 87 + 87, + 127 + ] + } + ], + "nomono_lockfile = File.expand_path('Gemfile.lock', __dir__)\nif File.file?(nomono_lockfile)": [ + { + "file": "Gemfile", + "lines": [ + 85, + 125 + ] + } + ], + "path_env: 'STRUCTUREDMERGE_DEV',\nroot: %w[src my structuredmerge]": [ + { + "file": "Gemfile", + "lines": [ + 102, + 142 + ] + } + ], + "prefix: 'STRUCTUREDMERGE',\npath_env: 'STRUCTUREDMERGE_DEV',": [ + { + "file": "Gemfile", + "lines": [ + 101, + 141 + ] + } + ], + "require 'nomono/bundler'\nENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local": [ + { + "file": "Gemfile", + "lines": [ + 96, + 136 + ] + } + ], + "rescue LoadError\nwarn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.'": [ + { + "file": "Gemfile", + "lines": [ + 105, + 145 ] } ] diff --git a/gems/ast-crispr/.rubocop_gradual.lock b/gems/ast-crispr/.rubocop_gradual.lock index 485eae62b..613886555 100644 --- a/gems/ast-crispr/.rubocop_gradual.lock +++ b/gems/ast-crispr/.rubocop_gradual.lock @@ -1,5 +1,5 @@ { - ".simplecov:3928423310": [ + ".simplecov:955928789": [ [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] ], "Rakefile:918344237": [ diff --git a/gems/ast-crispr/.simplecov b/gems/ast-crispr/.simplecov index dd7e12623..e7a9c8ac8 100644 --- a/gems/ast-crispr/.simplecov +++ b/gems/ast-crispr/.simplecov @@ -4,15 +4,11 @@ # ast-crispr will then preserve content between those markers across template runs. # kettle-jem:unfreeze -require 'kettle/soup/cover/config' - # Minimum coverage thresholds are set by kettle-soup-cover. # They are controlled by ENV variables loaded by `mise` from `mise.toml` # (with optional machine-local overrides in `.env.local`). # If the values for minimum coverage need to change, they should be changed both there, # and in 2 places in .github/workflows/coverage.yml. -SimpleCov.start do - track_files 'lib/**/*.rb' - track_files 'lib/**/*.rake' - track_files 'exe/*.rb' +SimpleCov.configure do + cover 'lib/**/*.rb', 'lib/**/*.rake', 'exe/*.rb' end diff --git a/gems/ast-crispr/Gemfile b/gems/ast-crispr/Gemfile index 8ef5bfaca..845a2220b 100644 --- a/gems/ast-crispr/Gemfile +++ b/gems/ast-crispr/Gemfile @@ -111,6 +111,46 @@ if direct_sibling_gems.any? && end end +if direct_sibling_gems.any? && + (direct_sibling_local || + ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) + direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') + direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) + begin + nomono_activation_requirements = nomono_requirements + nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) + if File.file?(nomono_lockfile) + nomono_locked_spec = Bundler::LockfileParser + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } + nomono_locked = nomono_locked_spec && + Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked + end + Kernel.send(:gem, 'nomono', *nomono_activation_requirements) + require 'nomono/bundler' + ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local + + eval_nomono_gems( + gems: direct_sibling_gems, + prefix: 'STRUCTUREDMERGE', + path_env: 'STRUCTUREDMERGE_DEV', + root: %w[src my structuredmerge] + ) + rescue LoadError + warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' + ensure + if direct_sibling_templating && !direct_sibling_local + if direct_sibling_dev_was_set + ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original + else + ENV.delete('STRUCTUREDMERGE_DEV') + end + end + end +end + # Use released TSLP with the Ruby ABI platform-gem fix. gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' diff --git a/gems/ast-crispr/Gemfile.lock b/gems/ast-crispr/Gemfile.lock index cf18533e0..e964cc06b 100644 --- a/gems/ast-crispr/Gemfile.lock +++ b/gems/ast-crispr/Gemfile.lock @@ -7,31 +7,7 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly - specs: - ast-crispr-markdown-markly (7.1.0) - ast-crispr (= 7.1.0) - markly-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism - specs: - ast-crispr-ruby-prism (7.1.0) - ast-crispr (= 7.1.0) - prism-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git - specs: - ast-merge-git (7.1.0) - ast-merge (= 7.1.0) - json-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/ast-merge specs: ast-merge (7.1.0) benchmark @@ -39,232 +15,6 @@ PATH tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template - specs: - ast-template (7.1.0) - ast-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge - specs: - bash-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge - specs: - binary-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge - specs: - citrus-toml-merge (7.1.0) - toml-merge (= 7.1.0) - toml-rb (~> 4.1) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge - specs: - commonmarker-merge (7.1.0) - commonmarker (~> 2.2) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge - specs: - dotenv-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge - specs: - go-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge - specs: - json-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem - specs: - kettle-jem (7.1.0) - addressable (>= 2.8, < 3) - ast-crispr-markdown-markly (= 7.1.0) - ast-crispr-ruby-prism (= 7.1.0) - ast-merge (= 7.1.0) - bash-merge (= 7.1.0) - citrus-toml-merge (= 7.1.0) - commonmarker-merge (= 7.1.0) - dotenv-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-dev (~> 2.3, >= 2.3.5) - kettle-rb (~> 0.1, >= 0.1.4) - kramdown-merge (= 7.1.0) - markdown-merge (= 7.1.0) - markly-merge (= 7.1.0) - prism-merge (= 7.1.0) - psych-merge (= 7.1.0) - rbs (>= 3.10) - rbs-merge (= 7.1.0) - ruby-merge (= 7.1.0) - token-resolver (~> 2.0, >= 2.0.4) - toml-merge (= 7.1.0) - toml-rb (~> 4.2) - tree_haver (= 7.1.0) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge - specs: - kramdown-merge (7.1.0) - kramdown (~> 2.5) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge - specs: - markdown-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge - specs: - markly-merge (7.1.0) - markdown-merge (= 7.1.0) - markly (~> 0.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge - specs: - parslet-toml-merge (7.1.0) - toml (~> 0.3) - toml-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge - specs: - plain-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge - specs: - prism-merge (7.1.0) - prism (~> 1.6) - ruby-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge - specs: - psych-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge - specs: - rbs-merge (7.1.0) - ast-merge (= 7.1.0) - rbs (>= 3.10) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge - specs: - ruby-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge - specs: - rust-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb - specs: - smorg-rb (7.1.0) - ast-merge (= 7.1.0) - ast-merge-git (= 7.1.0) - go-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-jem (= 7.1.0) - markly-merge (= 7.1.0) - plain-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge - specs: - toml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver - specs: - tree_haver (7.1.0) - citrus (~> 3.0) - parslet (~> 2.0) - tree_sitter_language_pack (>= 1.13.2, < 2.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge - specs: - typescript-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge - specs: - yaml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge - specs: - zip-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - GEM remote: https://gem.coop/ specs: @@ -289,7 +39,6 @@ GEM cgi (0.5.2) citrus (3.0.2) cmdparse (3.0.7) - commonmarker (2.9.0-x86_64-linux) concurrent-ruby (1.3.8) date (3.5.1) debug (1.11.1) @@ -347,13 +96,11 @@ GEM rdoc (>= 4.0.0) reline (>= 0.4.2) json (2.21.1) - kettle-dev (2.3.8) + kettle-dev (2.3.9) emoji_regex (>= 15.0) kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) - kettle-drift (1.0.6) - version_gem (~> 1.1, >= 1.1.14) kettle-rb (0.1.5) kettle-soup-cover (3.0.4) kettle-wash (~> 0.1, >= 0.1.0) @@ -382,7 +129,6 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) - markly (0.16.0) mutex_m (0.3.0) nokogiri (1.19.4-x86_64-linux-gnu) racc (~> 1.4) @@ -554,7 +300,7 @@ GEM simplecov (>= 0.4.1) simplecov_lcov_formatter (0.9.0) simplecov (>= 0.18) - sorbet-runtime (0.6.13347) + sorbet-runtime (0.6.13351) standard (1.56.0) language_server-protocol (~> 3.17.0.2) lint_roller (~> 1.0) @@ -593,11 +339,11 @@ GEM token-resolver (2.0.5) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.14) - toml (0.3.0) - parslet (>= 1.8.0, < 3.0.0) - toml-rb (4.2.0) - citrus (~> 3.0, > 3.0) - racc (~> 1.7) + tree_haver (7.1.0) + citrus (~> 3.0) + parslet (~> 2.0) + tree_sitter_language_pack (>= 1.13.2, < 2.0) + version_gem (~> 1.1, >= 1.1.9) tree_sitter_language_pack (1.13.3-x86_64-linux) sorbet-runtime (~> 0.5) tsort (0.2.0) @@ -644,45 +390,24 @@ DEPENDENCIES appraisal2 (~> 3.0, >= 3.0.6) appraisal2-rubocop (~> 1.0, >= 1.0.0) ast-crispr! - ast-crispr-markdown-markly! - ast-crispr-ruby-prism! ast-merge! - ast-merge-git! - ast-template! - bash-merge! benchmark (~> 0.5, >= 0.5.0) - binary-merge! bundler-audit (~> 0.9.3) cgi (~> 0.5) - citrus-toml-merge! - commonmarker-merge! debug (>= 1.1) - dotenv-merge! erb (~> 6.0, >= 6.0.6) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.0) - go-merge! irb (~> 1.17) - json-merge! kettle-dev (~> 2.0, >= 2.2.25) - kettle-drift (~> 1.0, >= 1.0.6) - kettle-jem! kettle-soup-cover (~> 3.0, >= 3.0.3) kettle-test (~> 2.0, >= 2.0.9) kramdown (~> 2.5, >= 2.5.2) - kramdown-merge! kramdown-parser-gfm (~> 1.1) - markdown-merge! - markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) - parslet-toml-merge! - plain-merge! - prism-merge! - psych-merge! rake (~> 13.0) rbs (>= 3.0) - rbs-merge! rdoc (~> 6.11) reek (~> 6.5, >= 6.5.0) require_bench (~> 1.0, >= 1.0.4) @@ -693,27 +418,19 @@ DEPENDENCIES rubocop-on-rbs (~> 2.0, >= 2.0.0) rubocop-packaging (~> 0.6, >= 0.6.0) rubocop-ruby3_2 (~> 3.0, >= 3.0.6) - ruby-merge! ruby-progressbar (~> 1.13) - rust-merge! - smorg-rb! standard (~> 1.56, >= 1.56.0) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) - toml-merge! - tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) - typescript-merge! webrick (~> 1.9) yaml-converter (~> 0.2, >= 0.2.3) - yaml-merge! yard (~> 0.9, >= 0.9.45) yard-fence (~> 0.9, >= 0.9.6) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) yard-timekeeper (~> 0.2, >= 0.2.4) yard-yaml (~> 0.2, >= 0.2.3) - zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af @@ -722,30 +439,20 @@ CHECKSUMS appraisal2-rubocop (1.0.0) sha256=b71410fbb014befda5340605a605b7f6f3f012739baf0acc5b4351b592c3258d ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 ast-crispr (7.1.0) - ast-crispr-markdown-markly (7.1.0) - ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) - ast-merge-git (7.1.0) - ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 - bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd - binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 - citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 - commonmarker (2.9.0-x86_64-linux) sha256=8cfe92970eef585a19ddf6613224b91cab64d6029834661bda801f877c9c7f43 - commonmarker-merge (7.1.0) concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 - dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -758,28 +465,20 @@ CHECKSUMS gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f - go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 - json-merge (7.1.0) - kettle-dev (2.3.8) sha256=9d716ff21c660a730cb4e8d41e2e2f0630a28167a354b6e2924e242102aef72c - kettle-drift (1.0.6) sha256=46eda08fa4411d1f3c6682a95eef1c9df4e94611b3949f49d4c7b43c0ed356a3 - kettle-jem (7.1.0) + kettle-dev (2.3.9) kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f kettle-soup-cover (3.0.4) kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa - kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 - markdown-merge (7.1.0) - markly (0.16.0) sha256=6f70d79e385b1efc9e171f74c81628826259039fe6c778e03c3924c71dac5511 - markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-x86_64-linux-gnu) sha256=379fae440b28915e3f19d752ce2dcf8465ed2b2fbefd2a7ca0dd497bc981a06a nomono (1.0.9) @@ -789,20 +488,15 @@ CHECKSUMS parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 - parslet-toml-merge (7.1.0) - plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 - prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 - psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 - rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb @@ -837,11 +531,9 @@ CHECKSUMS rubocop-rspec_rails (2.32.0) sha256=4a0d641c72f6ebb957534f539d9d0a62c47abd8ce0d0aeee1ef4701e892a9100 rubocop-ruby3_2 (3.0.7) sha256=f53dd6d286fb05186214fc6ec116783e7f837030918e8931c05de773e98f8466 rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 - ruby-merge (7.1.0) ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 - rust-merge (7.1.0) service_actor (3.9.4) sha256=e63b523630b9a7e62959b2a90113b08d2565b5de9c148557b281ef847c9539ce silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 @@ -849,8 +541,7 @@ CHECKSUMS simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed - smorg-rb (7.1.0) - sorbet-runtime (0.6.13347) sha256=54e7221d9f4b63f58aec79f3043752a9ba7810347c6ae0d903531591cc2d5f01 + sorbet-runtime (0.6.13351) sha256=f8fee17c6e3edf835dc6823d26afb9a7c8969c6710d1fabe2fb43f4e0c15c64f standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b standard-performance (1.9.0) sha256=49483d31be448292951d80e5e67cdcb576c2502103c7b40aec6f1b6e9c88e3f2 @@ -864,20 +555,15 @@ CHECKSUMS timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.5) sha256=b852f924287ffb58a440856e862b056c8ad97e74b4b2526cee43e0771f40c25c - toml (0.3.0) sha256=0a91d0f76a9036e84e44f95693b12f58d358c1df3ac8e3b5271f2056ecc6e4b9 - toml-merge (7.1.0) - toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 - typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 webrick (1.9.2) sha256=beb4a15fc474defed24a3bda4ffd88a490d517c9e4e6118c3edce59e45864131 yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 - yaml-merge (7.1.0) yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd @@ -885,7 +571,6 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 - zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH diff --git a/gems/ast-crispr/spec/spec_helper.rb b/gems/ast-crispr/spec/spec_helper.rb index f97c61e87..9bd936172 100644 --- a/gems/ast-crispr/spec/spec_helper.rb +++ b/gems/ast-crispr/spec/spec_helper.rb @@ -8,7 +8,12 @@ # The rescue LoadError handles that scenario. begin require 'kettle-soup-cover' - require 'simplecov' if Kettle::Soup::Cover::DO_COV # `.simplecov` is run here! + if Kettle::Soup::Cover::DO_COV + # Requiring simplecov loads the project-local `.simplecov`. + require 'simplecov' + require 'kettle/soup/cover/config' + SimpleCov.start + end rescue LoadError => e # check the error message and re-raise when unexpected raise e unless e.message.include?('kettle') diff --git a/gems/ast-merge-git/Gemfile.lock b/gems/ast-merge-git/Gemfile.lock index 9867fa004..545ba4616 100644 --- a/gems/ast-merge-git/Gemfile.lock +++ b/gems/ast-merge-git/Gemfile.lock @@ -6,265 +6,6 @@ PATH json-merge (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly - specs: - ast-crispr-markdown-markly (7.1.0) - ast-crispr (= 7.1.0) - markly-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism - specs: - ast-crispr-ruby-prism (7.1.0) - ast-crispr (= 7.1.0) - prism-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr - specs: - ast-crispr (7.1.0) - ast-merge (= 7.1.0) - service_actor (~> 3.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge - specs: - ast-merge (7.1.0) - benchmark - token-resolver (~> 2.0, >= 2.0.4) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template - specs: - ast-template (7.1.0) - ast-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge - specs: - bash-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge - specs: - binary-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge - specs: - citrus-toml-merge (7.1.0) - toml-merge (= 7.1.0) - toml-rb (~> 4.1) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge - specs: - commonmarker-merge (7.1.0) - commonmarker (~> 2.2) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge - specs: - dotenv-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge - specs: - go-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge - specs: - json-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem - specs: - kettle-jem (7.1.0) - addressable (>= 2.8, < 3) - ast-crispr-markdown-markly (= 7.1.0) - ast-crispr-ruby-prism (= 7.1.0) - ast-merge (= 7.1.0) - bash-merge (= 7.1.0) - citrus-toml-merge (= 7.1.0) - commonmarker-merge (= 7.1.0) - dotenv-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-dev (~> 2.3, >= 2.3.5) - kettle-rb (~> 0.1, >= 0.1.4) - kramdown-merge (= 7.1.0) - markdown-merge (= 7.1.0) - markly-merge (= 7.1.0) - prism-merge (= 7.1.0) - psych-merge (= 7.1.0) - rbs (>= 3.10) - rbs-merge (= 7.1.0) - ruby-merge (= 7.1.0) - token-resolver (~> 2.0, >= 2.0.4) - toml-merge (= 7.1.0) - toml-rb (~> 4.2) - tree_haver (= 7.1.0) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge - specs: - kramdown-merge (7.1.0) - kramdown (~> 2.5) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge - specs: - markdown-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge - specs: - markly-merge (7.1.0) - markdown-merge (= 7.1.0) - markly (~> 0.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge - specs: - parslet-toml-merge (7.1.0) - toml (~> 0.3) - toml-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge - specs: - plain-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge - specs: - prism-merge (7.1.0) - prism (~> 1.6) - ruby-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge - specs: - psych-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge - specs: - rbs-merge (7.1.0) - ast-merge (= 7.1.0) - rbs (>= 3.10) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge - specs: - ruby-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge - specs: - rust-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb - specs: - smorg-rb (7.1.0) - ast-merge (= 7.1.0) - ast-merge-git (= 7.1.0) - go-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-jem (= 7.1.0) - markly-merge (= 7.1.0) - plain-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge - specs: - toml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver - specs: - tree_haver (7.1.0) - citrus (~> 3.0) - parslet (~> 2.0) - tree_sitter_language_pack (>= 1.13.2, < 2.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge - specs: - typescript-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge - specs: - yaml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge - specs: - zip-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - GEM remote: https://gem.coop/ specs: @@ -280,6 +21,11 @@ GEM rubocop (>= 1.0) version_gem (~> 1.1, >= 1.1.14) ast (2.4.3) + ast-merge (7.1.0) + benchmark + token-resolver (~> 2.0, >= 2.0.4) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) backports (3.25.3) benchmark (0.5.0) bigdecimal (4.1.2) @@ -289,7 +35,6 @@ GEM cgi (0.5.2) citrus (3.0.2) cmdparse (3.0.7) - commonmarker (2.9.0-x86_64-linux) concurrent-ruby (1.3.8) date (3.5.1) debug (1.11.1) @@ -347,13 +92,15 @@ GEM rdoc (>= 4.0.0) reline (>= 0.4.2) json (2.21.1) + json-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) kettle-dev (2.3.8) emoji_regex (>= 15.0) kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) - kettle-drift (1.0.6) - version_gem (~> 1.1, >= 1.1.14) kettle-rb (0.1.5) kettle-soup-cover (3.0.4) kettle-wash (~> 0.1, >= 0.1.0) @@ -382,7 +129,6 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) - markly (0.16.0) mutex_m (0.3.0) nokogiri (1.19.4-x86_64-linux-gnu) racc (~> 1.4) @@ -537,8 +283,6 @@ GEM ruby-progressbar (1.13.0) ruby_engine (2.0.3) ruby_version (1.0.3) - service_actor (3.9.4) - zeitwerk (>= 1.0) silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) @@ -593,11 +337,11 @@ GEM token-resolver (2.0.5) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.14) - toml (0.3.0) - parslet (>= 1.8.0, < 3.0.0) - toml-rb (4.2.0) - citrus (~> 3.0, > 3.0) - racc (~> 1.7) + tree_haver (7.1.0) + citrus (~> 3.0) + parslet (~> 2.0) + tree_sitter_language_pack (>= 1.13.2, < 2.0) + version_gem (~> 1.1, >= 1.1.9) tree_sitter_language_pack (1.13.3-x86_64-linux) sorbet-runtime (~> 0.5) tsort (0.2.0) @@ -643,46 +387,24 @@ DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) appraisal2-rubocop (~> 1.0, >= 1.0.0) - ast-crispr! - ast-crispr-markdown-markly! - ast-crispr-ruby-prism! - ast-merge! ast-merge-git! - ast-template! - bash-merge! benchmark (~> 0.5, >= 0.5.0) - binary-merge! bundler-audit (~> 0.9.3) cgi (~> 0.5) - citrus-toml-merge! - commonmarker-merge! debug (>= 1.1) - dotenv-merge! erb (~> 6.0, >= 6.0.6) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.0) - go-merge! irb (~> 1.17) - json-merge! kettle-dev (~> 2.0, >= 2.2.25) - kettle-drift (~> 1.0, >= 1.0.6) - kettle-jem! kettle-soup-cover (~> 3.0, >= 3.0.3) kettle-test (~> 2.0, >= 2.0.9) kramdown (~> 2.5, >= 2.5.2) - kramdown-merge! kramdown-parser-gfm (~> 1.1) - markdown-merge! - markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) - parslet-toml-merge! - plain-merge! - prism-merge! - psych-merge! rake (~> 13.0) rbs (>= 3.0) - rbs-merge! rdoc (~> 6.11) reek (~> 6.5, >= 6.5.0) require_bench (~> 1.0, >= 1.0.4) @@ -693,27 +415,19 @@ DEPENDENCIES rubocop-on-rbs (~> 2.0, >= 2.0.0) rubocop-packaging (~> 0.6, >= 0.6.0) rubocop-ruby3_2 (~> 3.0, >= 3.0.6) - ruby-merge! ruby-progressbar (~> 1.13) - rust-merge! - smorg-rb! standard (~> 1.56, >= 1.56.0) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) - toml-merge! - tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) - typescript-merge! webrick (~> 1.9) yaml-converter (~> 0.2, >= 0.2.3) - yaml-merge! yard (~> 0.9, >= 0.9.45) yard-fence (~> 0.9, >= 0.9.6) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) yard-timekeeper (~> 0.2, >= 0.2.4) yard-yaml (~> 0.2, >= 0.2.3) - zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af @@ -721,31 +435,21 @@ CHECKSUMS appraisal2 (3.2.0) sha256=ccd0b767ac4060cd7af6d16747459b6990f49c39c7b4fb1f7d1146b1e97c492f appraisal2-rubocop (1.0.0) sha256=b71410fbb014befda5340605a605b7f6f3f012739baf0acc5b4351b592c3258d ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 - ast-crispr (7.1.0) - ast-crispr-markdown-markly (7.1.0) - ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) ast-merge-git (7.1.0) - ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 - bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd - binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 - citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 - commonmarker (2.9.0-x86_64-linux) sha256=8cfe92970eef585a19ddf6613224b91cab64d6029834661bda801f877c9c7f43 - commonmarker-merge (7.1.0) concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 - dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -758,28 +462,21 @@ CHECKSUMS gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f - go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 json-merge (7.1.0) kettle-dev (2.3.8) sha256=9d716ff21c660a730cb4e8d41e2e2f0630a28167a354b6e2924e242102aef72c - kettle-drift (1.0.6) sha256=46eda08fa4411d1f3c6682a95eef1c9df4e94611b3949f49d4c7b43c0ed356a3 - kettle-jem (7.1.0) kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f kettle-soup-cover (3.0.4) kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa - kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 - markdown-merge (7.1.0) - markly (0.16.0) sha256=6f70d79e385b1efc9e171f74c81628826259039fe6c778e03c3924c71dac5511 - markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-x86_64-linux-gnu) sha256=379fae440b28915e3f19d752ce2dcf8465ed2b2fbefd2a7ca0dd497bc981a06a nomono (1.0.9) @@ -789,20 +486,15 @@ CHECKSUMS parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 - parslet-toml-merge (7.1.0) - plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 - prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 - psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 - rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb @@ -837,19 +529,15 @@ CHECKSUMS rubocop-rspec_rails (2.32.0) sha256=4a0d641c72f6ebb957534f539d9d0a62c47abd8ce0d0aeee1ef4701e892a9100 rubocop-ruby3_2 (3.0.7) sha256=f53dd6d286fb05186214fc6ec116783e7f837030918e8931c05de773e98f8466 rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 - ruby-merge (7.1.0) ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 - rust-merge (7.1.0) - service_actor (3.9.4) sha256=e63b523630b9a7e62959b2a90113b08d2565b5de9c148557b281ef847c9539ce silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed - smorg-rb (7.1.0) sorbet-runtime (0.6.13347) sha256=54e7221d9f4b63f58aec79f3043752a9ba7810347c6ae0d903531591cc2d5f01 standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b @@ -864,20 +552,15 @@ CHECKSUMS timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.5) sha256=b852f924287ffb58a440856e862b056c8ad97e74b4b2526cee43e0771f40c25c - toml (0.3.0) sha256=0a91d0f76a9036e84e44f95693b12f58d358c1df3ac8e3b5271f2056ecc6e4b9 - toml-merge (7.1.0) - toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 - typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 webrick (1.9.2) sha256=beb4a15fc474defed24a3bda4ffd88a490d517c9e4e6118c3edce59e45864131 yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 - yaml-merge (7.1.0) yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd @@ -885,7 +568,6 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 - zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH diff --git a/gems/ast-merge/.kettle-drift.lock b/gems/ast-merge/.kettle-drift.lock index ae8ac3f40..041757eba 100644 --- a/gems/ast-merge/.kettle-drift.lock +++ b/gems/ast-merge/.kettle-drift.lock @@ -1,10 +1,74 @@ { + "(direct_sibling_local ||\nENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?)": [ + { + "file": "Gemfile", + "lines": [ + 79, + 119 + ] + } + ], + ".find { |spec| spec.name == 'nomono' }\nnomono_locked = nomono_locked_spec &&": [ + { + "file": "Gemfile", + "lines": [ + 90, + 130 + ] + } + ], + "ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?)\ndirect_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV')": [ + { + "file": "Gemfile", + "lines": [ + 80, + 120 + ] + } + ], + "Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version)\nnomono_activation_requirements = [\"= #{nomono_locked_spec.version}\"] if nomono_locked": [ + { + "file": "Gemfile", + "lines": [ + 92, + 132 + ] + } + ], + "Kernel.send(:gem, 'nomono', *nomono_activation_requirements)\nrequire 'nomono/bundler'": [ + { + "file": "Gemfile", + "lines": [ + 95, + 135 + ] + } + ], + "direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV')\ndirect_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil)": [ + { + "file": "Gemfile", + "lines": [ + 81, + 121 + ] + } + ], "eval_nomono_gems(\ngems: direct_sibling_gems,": [ { "file": "Gemfile", "lines": [ 59, - 99 + 99, + 139 + ] + } + ], + "gems: direct_sibling_gems,\nprefix: 'STRUCTUREDMERGE',": [ + { + "file": "Gemfile", + "lines": [ + 100, + 140 ] } ], @@ -13,7 +77,17 @@ "file": "Gemfile", "lines": [ 42, - 86 + 86, + 126 + ] + } + ], + "if direct_sibling_dev_was_set\nENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original": [ + { + "file": "Gemfile", + "lines": [ + 109, + 149 ] } ], @@ -22,7 +96,8 @@ "file": "Gemfile", "lines": [ 34, - 78 + 78, + 118 ] } ], @@ -31,7 +106,17 @@ "file": "Gemfile", "lines": [ 68, - 108 + 108, + 148 + ] + } + ], + "nomono_activation_requirements = nomono_requirements\nnomono_lockfile = File.expand_path('Gemfile.lock', __dir__)": [ + { + "file": "Gemfile", + "lines": [ + 84, + 124 ] } ], @@ -40,7 +125,8 @@ "file": "Gemfile", "lines": [ 47, - 91 + 91, + 131 ] } ], @@ -49,7 +135,53 @@ "file": "Gemfile", "lines": [ 43, - 87 + 87, + 127 + ] + } + ], + "nomono_lockfile = File.expand_path('Gemfile.lock', __dir__)\nif File.file?(nomono_lockfile)": [ + { + "file": "Gemfile", + "lines": [ + 85, + 125 + ] + } + ], + "path_env: 'STRUCTUREDMERGE_DEV',\nroot: %w[src my structuredmerge]": [ + { + "file": "Gemfile", + "lines": [ + 102, + 142 + ] + } + ], + "prefix: 'STRUCTUREDMERGE',\npath_env: 'STRUCTUREDMERGE_DEV',": [ + { + "file": "Gemfile", + "lines": [ + 101, + 141 + ] + } + ], + "require 'nomono/bundler'\nENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local": [ + { + "file": "Gemfile", + "lines": [ + 96, + 136 + ] + } + ], + "rescue LoadError\nwarn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.'": [ + { + "file": "Gemfile", + "lines": [ + 105, + 145 ] } ], diff --git a/gems/ast-merge/Gemfile b/gems/ast-merge/Gemfile index f29c1384d..a0f90796e 100644 --- a/gems/ast-merge/Gemfile +++ b/gems/ast-merge/Gemfile @@ -6,7 +6,7 @@ # kettle-jem will then preserve content between those markers across template runs. # kettle-jem:unfreeze -source 'https://gem.coop' +source "https://gem.coop" git_source(:codeberg) { |repo_name| "https://codeberg.org/#{repo_name}" } git_source(:gitlab) { |repo_name| "https://gitlab.com/#{repo_name}" } @@ -19,17 +19,61 @@ git_source(:gitlab) { |repo_name| "https://gitlab.com/#{repo_name}" } gemspec # Local workspace dependency wiring for *_local.gemfile overrides -nomono_requirements = ['~> 1.0', '>= 1.0.8'] -gem 'nomono', *nomono_requirements, require: false # ruby >= 2.2 +nomono_requirements = ["~> 1.0", ">= 1.0.8"] +gem "nomono", *nomono_requirements, require: false # ruby >= 2.2 # Direct sibling dependencies (env-switched via STRUCTUREDMERGE_DEV) direct_sibling_gems = %w[ tree_haver ] -direct_sibling_dev = ENV.fetch('STRUCTUREDMERGE_DEV', '') +direct_sibling_dev = ENV.fetch("STRUCTUREDMERGE_DEV", "") direct_sibling_local = !direct_sibling_dev.empty? && !%w[false 0 no off].include?(direct_sibling_dev.downcase) -direct_sibling_templating = ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? +direct_sibling_templating = ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? + +if direct_sibling_gems.any? && + (direct_sibling_local || + ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero?) + direct_sibling_dev_was_set = ENV.key?("STRUCTUREDMERGE_DEV") + direct_sibling_dev_original = ENV.fetch("STRUCTUREDMERGE_DEV", nil) + begin + nomono_activation_requirements = nomono_requirements + nomono_lockfile = File.expand_path("Gemfile.lock", __dir__) + if File.file?(nomono_lockfile) + nomono_locked_spec = Bundler::LockfileParser + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == "nomono" } + nomono_locked = nomono_locked_spec && + Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) + if nomono_locked + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] + end + end + Kernel.send(:gem, "nomono", *nomono_activation_requirements) + require "nomono/bundler" + if direct_sibling_templating && !direct_sibling_local + ENV["STRUCTUREDMERGE_DEV"] = File.expand_path("..", __dir__) + end + + eval_nomono_gems( + gems: direct_sibling_gems, + prefix: "STRUCTUREDMERGE", + path_env: "STRUCTUREDMERGE_DEV", + root: ["src", "my", "structuredmerge"] + ) + rescue LoadError + warn "Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies." + ensure + if direct_sibling_templating && !direct_sibling_local + if direct_sibling_dev_was_set + ENV["STRUCTUREDMERGE_DEV"] = direct_sibling_dev_original + else + ENV.delete("STRUCTUREDMERGE_DEV") + end + end + end +end if direct_sibling_gems.any? && (direct_sibling_local || @@ -112,28 +156,28 @@ if direct_sibling_gems.any? && end # Use released TSLP with the Ruby ABI platform-gem fix. -gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' +gem "tree_sitter_language_pack", "~> 1.13", ">= 1.13.3" # Templating (env-switched: STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local paths) -eval_gemfile 'gemfiles/modular/templating.gemfile' if ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? +eval_gemfile "gemfiles/modular/templating.gemfile" if ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? # Debugging -eval_gemfile 'gemfiles/modular/debug.gemfile' +eval_gemfile "gemfiles/modular/debug.gemfile" # Code Coverage (env-switched: KETTLE_DEV_DEV=true for local paths) -eval_gemfile 'gemfiles/modular/coverage.gemfile' +eval_gemfile "gemfiles/modular/coverage.gemfile" # Linting -eval_gemfile 'gemfiles/modular/style.gemfile' +eval_gemfile "gemfiles/modular/style.gemfile" # Documentation -eval_gemfile 'gemfiles/modular/documentation.gemfile' +eval_gemfile "gemfiles/modular/documentation.gemfile" # Optional -eval_gemfile 'gemfiles/modular/optional.gemfile' +eval_gemfile "gemfiles/modular/optional.gemfile" ### Std Lib Extracted Gems -eval_gemfile 'gemfiles/modular/x_std_libs.gemfile' +eval_gemfile "gemfiles/modular/x_std_libs.gemfile" # See unlocked_deps appraisal for more details on irb inclusion -gem 'irb', '~> 1.17' # ruby >= 2.7 +gem "irb", "~> 1.17" # ruby >= 2.7 diff --git a/gems/ast-merge/Gemfile.lock b/gems/ast-merge/Gemfile.lock index dc5d8f0a2..a41b6adc3 100644 --- a/gems/ast-merge/Gemfile.lock +++ b/gems/ast-merge/Gemfile.lock @@ -218,6 +218,7 @@ PATH smorg-rb (7.1.0) ast-merge (= 7.1.0) ast-merge-git (= 7.1.0) + diff-lcs (~> 1.5) go-merge (= 7.1.0) json-merge (= 7.1.0) kettle-jem (= 7.1.0) @@ -289,11 +290,7 @@ GEM cgi (0.5.2) citrus (3.0.2) cmdparse (3.0.7) - commonmarker (2.9.0-aarch64-linux) - commonmarker (2.9.0-aarch64-linux-musl) - commonmarker (2.9.0-arm64-darwin) commonmarker (2.9.0-x86_64-linux) - commonmarker (2.9.0-x86_64-linux-musl) concurrent-ruby (1.3.8) date (3.5.1) debug (1.11.1) @@ -566,7 +563,7 @@ GEM simplecov (>= 0.4.1) simplecov_lcov_formatter (0.9.0) simplecov (>= 0.18) - sorbet-runtime (0.6.13347) + sorbet-runtime (0.6.13351) standard (1.56.0) language_server-protocol (~> 3.17.0.2) lint_roller (~> 1.0) @@ -757,11 +754,7 @@ CHECKSUMS citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 - commonmarker (2.9.0-aarch64-linux) sha256=e2b4aadb9a2cfa4e206582641ce3a49465549ac1ed4c289fdd63b78d8f24579c - commonmarker (2.9.0-aarch64-linux-musl) sha256=1cf4d2821f2a7e64945f1ed7c4eeced586fdb27ea7fe7337788802cf8f57cfca - commonmarker (2.9.0-arm64-darwin) sha256=1748dbfa4f5813b0d2a14bb4bbfa65a4ec293aa1c825016d60029ee0e132b046 - commonmarker (2.9.0-x86_64-linux) sha256=8cfe92970eef585a19ddf6613224b91cab64d6029834661bda801f877c9c7f43 - commonmarker (2.9.0-x86_64-linux-musl) sha256=293921398b839f79ceaf55010e061357e34f053822c3b003cd0be6686176335e + commonmarker (2.9.0-x86_64-linux) commonmarker-merge (7.1.0) concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 @@ -789,7 +782,7 @@ CHECKSUMS json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 json-merge (7.1.0) kettle-dev (2.3.8) sha256=9d716ff21c660a730cb4e8d41e2e2f0630a28167a354b6e2924e242102aef72c - kettle-drift (1.0.6) sha256=46eda08fa4411d1f3c6682a95eef1c9df4e94611b3949f49d4c7b43c0ed356a3 + kettle-drift (1.0.6) kettle-jem (7.1.0) kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f kettle-soup-cover (3.0.4) @@ -802,7 +795,7 @@ CHECKSUMS lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 markdown-merge (7.1.0) - markly (0.16.0) sha256=6f70d79e385b1efc9e171f74c81628826259039fe6c778e03c3924c71dac5511 + markly (0.16.0) markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-aarch64-linux-gnu) sha256=1269fb644a6de405057a53dd5c762b1209b43ca7424f839454d3dbc677c31a8f @@ -870,7 +863,7 @@ CHECKSUMS ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 rust-merge (7.1.0) - service_actor (3.9.4) sha256=e63b523630b9a7e62959b2a90113b08d2565b5de9c148557b281ef847c9539ce + service_actor (3.9.4) silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea @@ -878,7 +871,7 @@ CHECKSUMS simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed smorg-rb (7.1.0) - sorbet-runtime (0.6.13347) sha256=54e7221d9f4b63f58aec79f3043752a9ba7810347c6ae0d903531591cc2d5f01 + sorbet-runtime (0.6.13351) sha256=f8fee17c6e3edf835dc6823d26afb9a7c8969c6710d1fabe2fb43f4e0c15c64f standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b standard-performance (1.9.0) sha256=49483d31be448292951d80e5e67cdcb576c2502103c7b40aec6f1b6e9c88e3f2 @@ -892,9 +885,9 @@ CHECKSUMS timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.5) sha256=b852f924287ffb58a440856e862b056c8ad97e74b4b2526cee43e0771f40c25c - toml (0.3.0) sha256=0a91d0f76a9036e84e44f95693b12f58d358c1df3ac8e3b5271f2056ecc6e4b9 + toml (0.3.0) toml-merge (7.1.0) - toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 + toml-rb (4.2.0) tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-aarch64-linux) sha256=55ffc7c87868cb45658338363d9eba51b4a8b0259aa88e4de368d2bd1d52fea4 tree_sitter_language_pack (1.13.3-arm64-darwin) sha256=bc2498db605f212a1dbd2465ed3f65190d7da786f6ed5d30fcf958121aeb4a5c diff --git a/gems/ast-merge/Rakefile b/gems/ast-merge/Rakefile index 339c9a3cb..6b4e21dec 100644 --- a/gems/ast-merge/Rakefile +++ b/gems/ast-merge/Rakefile @@ -130,23 +130,23 @@ end ### DUPLICATE DRIFT TASKS begin - require 'kettle/drift' + require "kettle/drift" Kettle::Drift.install_tasks rescue LoadError - desc('(stub) kettle:drift:check is unavailable') - task('kettle:drift:check') do + desc("(stub) kettle:drift:check is unavailable") + task("kettle:drift:check") do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc('(stub) kettle:drift:update is unavailable') - task('kettle:drift:update') do + desc("(stub) kettle:drift:update is unavailable") + task("kettle:drift:update") do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc('(stub) kettle:drift:force_update is unavailable') - task('kettle:drift:force_update') do + desc("(stub) kettle:drift:force_update is unavailable") + task("kettle:drift:force_update") do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc('(stub) kettle:drift is unavailable') - task('kettle:drift' => 'kettle:drift:update') + desc("(stub) kettle:drift is unavailable") + task("kettle:drift" => "kettle:drift:update") end ### TEMPLATING TASKS diff --git a/gems/ast-merge/gemfiles/modular/templating.gemfile b/gems/ast-merge/gemfiles/modular/templating.gemfile index a672de184..47138ffbb 100644 --- a/gems/ast-merge/gemfiles/modular/templating.gemfile +++ b/gems/ast-merge/gemfiles/modular/templating.gemfile @@ -1,18 +1,18 @@ # frozen_string_literal: true -structuredmerge_remote = ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false').zero? -kettle_remote = ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? +structuredmerge_remote = ENV.fetch("STRUCTUREDMERGE_DEV", "false").casecmp("false").zero? +kettle_remote = ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false").zero? if structuredmerge_remote # Parser dependencies for released installs. - gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' + gem "tree_sitter_language_pack", "~> 1.13", ">= 1.13.3" # Merge recipes for released installs. - gem 'kettle-jem', '>= 7.0' + gem "kettle-jem", ">= 7.0" end if kettle_remote # Template/plugin checks for released installs. - gem 'kettle-drift', '~> 1.0', '>= 1.0.6', require: false + gem "kettle-drift", "~> 1.0", ">= 1.0.6", require: false end # Set STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local development with path-based dependencies. @@ -21,4 +21,4 @@ end # # Set KETTLE_DEV_DEV=/path/to/my for local development with Kettle plugin gems. # When false (default / CI), released Kettle plugin gems are used. -eval_gemfile 'templating_local.gemfile' unless structuredmerge_remote && kettle_remote +eval_gemfile "templating_local.gemfile" unless structuredmerge_remote && kettle_remote diff --git a/gems/ast-merge/gemfiles/modular/templating_local.gemfile b/gems/ast-merge/gemfiles/modular/templating_local.gemfile index cd50e9a1e..efcd3bad8 100644 --- a/gems/ast-merge/gemfiles/modular/templating_local.gemfile +++ b/gems/ast-merge/gemfiles/modular/templating_local.gemfile @@ -12,19 +12,21 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] -nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) +nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] +nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == "nomono" } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + if nomono_locked + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] + end end -Kernel.send(:gem, 'nomono', *nomono_activation_requirements) -require 'nomono/bundler' +Kernel.send(:gem, "nomono", *nomono_activation_requirements) +require "nomono/bundler" structuredmerge_local_gems = %w[ tree_haver @@ -67,25 +69,25 @@ structuredmerge_local_gems_to_eval = structuredmerge_local_gems - %w[ast-merge] kettle_dev_local_gems_to_eval = kettle_dev_local_gems - %w[ast-merge] - declared_gems platform :mri do - if ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false') != 0 + if ENV.fetch("STRUCTUREDMERGE_DEV", "false").casecmp("false") != 0 eval_nomono_gems( gems: structuredmerge_local_gems_to_eval, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - vendored_gems_env: 'VENDORED_GEMS', - vendor_gem_dir_env: 'VENDOR_GEM_DIR', - debug_env: 'STRUCTUREDMERGE_DEBUG' + prefix: "STRUCTUREDMERGE", + path_env: "STRUCTUREDMERGE_DEV", + vendored_gems_env: "VENDORED_GEMS", + vendor_gem_dir_env: "VENDOR_GEM_DIR", + debug_env: "STRUCTUREDMERGE_DEBUG" ) end - if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false') != 0 + if ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false") != 0 eval_nomono_gems( gems: kettle_dev_local_gems_to_eval, - prefix: 'KETTLE_DEV', - path_env: 'KETTLE_DEV_DEV', - vendored_gems_env: 'VENDORED_GEMS', - vendor_gem_dir_env: 'VENDOR_GEM_DIR', - debug_env: 'KETTLE_DEV_DEBUG' + prefix: "KETTLE_DEV", + path_env: "KETTLE_DEV_DEV", + vendored_gems_env: "VENDORED_GEMS", + vendor_gem_dir_env: "VENDOR_GEM_DIR", + debug_env: "KETTLE_DEV_DEBUG" ) end end diff --git a/gems/ast-merge/lib/ast/merge/version.rb b/gems/ast-merge/lib/ast/merge/version.rb index 6e7dc90f7..3ef823f4d 100644 --- a/gems/ast-merge/lib/ast/merge/version.rb +++ b/gems/ast-merge/lib/ast/merge/version.rb @@ -3,7 +3,7 @@ module Ast module Merge module Version - VERSION = '7.1.0' + VERSION = "7.1.0" end VERSION = Version::VERSION # Traditional Constant Location end diff --git a/gems/ast-template/Gemfile.lock b/gems/ast-template/Gemfile.lock index edc7705c6..50e30f7ae 100644 --- a/gems/ast-template/Gemfile.lock +++ b/gems/ast-template/Gemfile.lock @@ -5,266 +5,6 @@ PATH ast-merge (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly - specs: - ast-crispr-markdown-markly (7.1.0) - ast-crispr (= 7.1.0) - markly-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism - specs: - ast-crispr-ruby-prism (7.1.0) - ast-crispr (= 7.1.0) - prism-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr - specs: - ast-crispr (7.1.0) - ast-merge (= 7.1.0) - service_actor (~> 3.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git - specs: - ast-merge-git (7.1.0) - ast-merge (= 7.1.0) - json-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge - specs: - ast-merge (7.1.0) - benchmark - token-resolver (~> 2.0, >= 2.0.4) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge - specs: - bash-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge - specs: - binary-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge - specs: - citrus-toml-merge (7.1.0) - toml-merge (= 7.1.0) - toml-rb (~> 4.1) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge - specs: - commonmarker-merge (7.1.0) - commonmarker (~> 2.2) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge - specs: - dotenv-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge - specs: - go-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge - specs: - json-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem - specs: - kettle-jem (7.1.0) - addressable (>= 2.8, < 3) - ast-crispr-markdown-markly (= 7.1.0) - ast-crispr-ruby-prism (= 7.1.0) - ast-merge (= 7.1.0) - bash-merge (= 7.1.0) - citrus-toml-merge (= 7.1.0) - commonmarker-merge (= 7.1.0) - dotenv-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-dev (~> 2.3, >= 2.3.5) - kettle-rb (~> 0.1, >= 0.1.4) - kramdown-merge (= 7.1.0) - markdown-merge (= 7.1.0) - markly-merge (= 7.1.0) - prism-merge (= 7.1.0) - psych-merge (= 7.1.0) - rbs (>= 3.10) - rbs-merge (= 7.1.0) - ruby-merge (= 7.1.0) - token-resolver (~> 2.0, >= 2.0.4) - toml-merge (= 7.1.0) - toml-rb (~> 4.2) - tree_haver (= 7.1.0) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge - specs: - kramdown-merge (7.1.0) - kramdown (~> 2.5) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge - specs: - markdown-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge - specs: - markly-merge (7.1.0) - markdown-merge (= 7.1.0) - markly (~> 0.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge - specs: - parslet-toml-merge (7.1.0) - toml (~> 0.3) - toml-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge - specs: - plain-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge - specs: - prism-merge (7.1.0) - prism (~> 1.6) - ruby-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge - specs: - psych-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge - specs: - rbs-merge (7.1.0) - ast-merge (= 7.1.0) - rbs (>= 3.10) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge - specs: - ruby-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge - specs: - rust-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb - specs: - smorg-rb (7.1.0) - ast-merge (= 7.1.0) - ast-merge-git (= 7.1.0) - go-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-jem (= 7.1.0) - markly-merge (= 7.1.0) - plain-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge - specs: - toml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver - specs: - tree_haver (7.1.0) - citrus (~> 3.0) - parslet (~> 2.0) - tree_sitter_language_pack (>= 1.13.2, < 2.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge - specs: - typescript-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge - specs: - yaml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge - specs: - zip-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - GEM remote: https://gem.coop/ specs: @@ -280,6 +20,11 @@ GEM rubocop (>= 1.0) version_gem (~> 1.1, >= 1.1.14) ast (2.4.3) + ast-merge (7.1.0) + benchmark + token-resolver (~> 2.0, >= 2.0.4) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) backports (3.25.3) benchmark (0.5.0) bigdecimal (4.1.2) @@ -289,7 +34,6 @@ GEM cgi (0.5.2) citrus (3.0.2) cmdparse (3.0.7) - commonmarker (2.9.0-x86_64-linux) concurrent-ruby (1.3.8) date (3.5.1) debug (1.11.1) @@ -352,8 +96,6 @@ GEM kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) - kettle-drift (1.0.6) - version_gem (~> 1.1, >= 1.1.14) kettle-rb (0.1.5) kettle-soup-cover (3.0.4) kettle-wash (~> 0.1, >= 0.1.0) @@ -382,7 +124,6 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) - markly (0.16.0) mutex_m (0.3.0) nokogiri (1.19.4-x86_64-linux-gnu) racc (~> 1.4) @@ -537,8 +278,6 @@ GEM ruby-progressbar (1.13.0) ruby_engine (2.0.3) ruby_version (1.0.3) - service_actor (3.9.4) - zeitwerk (>= 1.0) silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) @@ -593,11 +332,11 @@ GEM token-resolver (2.0.5) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.14) - toml (0.3.0) - parslet (>= 1.8.0, < 3.0.0) - toml-rb (4.2.0) - citrus (~> 3.0, > 3.0) - racc (~> 1.7) + tree_haver (7.1.0) + citrus (~> 3.0) + parslet (~> 2.0) + tree_sitter_language_pack (>= 1.13.2, < 2.0) + version_gem (~> 1.1, >= 1.1.9) tree_sitter_language_pack (1.13.3-x86_64-linux) sorbet-runtime (~> 0.5) tsort (0.2.0) @@ -643,46 +382,24 @@ DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) appraisal2-rubocop (~> 1.0, >= 1.0.0) - ast-crispr! - ast-crispr-markdown-markly! - ast-crispr-ruby-prism! - ast-merge! - ast-merge-git! ast-template! - bash-merge! benchmark (~> 0.5, >= 0.5.0) - binary-merge! bundler-audit (~> 0.9.3) cgi (~> 0.5) - citrus-toml-merge! - commonmarker-merge! debug (>= 1.1) - dotenv-merge! erb (~> 6.0, >= 6.0.6) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.0) - go-merge! irb (~> 1.17) - json-merge! kettle-dev (~> 2.0, >= 2.2.25) - kettle-drift (~> 1.0, >= 1.0.6) - kettle-jem! kettle-soup-cover (~> 3.0, >= 3.0.3) kettle-test (~> 2.0, >= 2.0.9) kramdown (~> 2.5, >= 2.5.2) - kramdown-merge! kramdown-parser-gfm (~> 1.1) - markdown-merge! - markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) - parslet-toml-merge! - plain-merge! - prism-merge! - psych-merge! rake (~> 13.0) rbs (>= 3.0) - rbs-merge! rdoc (~> 6.11) reek (~> 6.5, >= 6.5.0) require_bench (~> 1.0, >= 1.0.4) @@ -693,27 +410,19 @@ DEPENDENCIES rubocop-on-rbs (~> 2.0, >= 2.0.0) rubocop-packaging (~> 0.6, >= 0.6.0) rubocop-ruby3_2 (~> 3.0, >= 3.0.6) - ruby-merge! ruby-progressbar (~> 1.13) - rust-merge! - smorg-rb! standard (~> 1.56, >= 1.56.0) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) - toml-merge! - tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) - typescript-merge! webrick (~> 1.9) yaml-converter (~> 0.2, >= 0.2.3) - yaml-merge! yard (~> 0.9, >= 0.9.45) yard-fence (~> 0.9, >= 0.9.6) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) yard-timekeeper (~> 0.2, >= 0.2.4) yard-yaml (~> 0.2, >= 0.2.3) - zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af @@ -721,31 +430,21 @@ CHECKSUMS appraisal2 (3.2.0) sha256=ccd0b767ac4060cd7af6d16747459b6990f49c39c7b4fb1f7d1146b1e97c492f appraisal2-rubocop (1.0.0) sha256=b71410fbb014befda5340605a605b7f6f3f012739baf0acc5b4351b592c3258d ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 - ast-crispr (7.1.0) - ast-crispr-markdown-markly (7.1.0) - ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) - ast-merge-git (7.1.0) ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 - bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd - binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 - citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 - commonmarker (2.9.0-x86_64-linux) sha256=8cfe92970eef585a19ddf6613224b91cab64d6029834661bda801f877c9c7f43 - commonmarker-merge (7.1.0) concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 - dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -758,28 +457,20 @@ CHECKSUMS gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f - go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 - json-merge (7.1.0) kettle-dev (2.3.8) sha256=9d716ff21c660a730cb4e8d41e2e2f0630a28167a354b6e2924e242102aef72c - kettle-drift (1.0.6) sha256=46eda08fa4411d1f3c6682a95eef1c9df4e94611b3949f49d4c7b43c0ed356a3 - kettle-jem (7.1.0) kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f kettle-soup-cover (3.0.4) kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa - kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 - markdown-merge (7.1.0) - markly (0.16.0) sha256=6f70d79e385b1efc9e171f74c81628826259039fe6c778e03c3924c71dac5511 - markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-x86_64-linux-gnu) sha256=379fae440b28915e3f19d752ce2dcf8465ed2b2fbefd2a7ca0dd497bc981a06a nomono (1.0.9) @@ -789,20 +480,15 @@ CHECKSUMS parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 - parslet-toml-merge (7.1.0) - plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 - prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 - psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 - rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb @@ -837,19 +523,15 @@ CHECKSUMS rubocop-rspec_rails (2.32.0) sha256=4a0d641c72f6ebb957534f539d9d0a62c47abd8ce0d0aeee1ef4701e892a9100 rubocop-ruby3_2 (3.0.7) sha256=f53dd6d286fb05186214fc6ec116783e7f837030918e8931c05de773e98f8466 rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 - ruby-merge (7.1.0) ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 - rust-merge (7.1.0) - service_actor (3.9.4) sha256=e63b523630b9a7e62959b2a90113b08d2565b5de9c148557b281ef847c9539ce silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed - smorg-rb (7.1.0) sorbet-runtime (0.6.13347) sha256=54e7221d9f4b63f58aec79f3043752a9ba7810347c6ae0d903531591cc2d5f01 standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b @@ -864,20 +546,15 @@ CHECKSUMS timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.5) sha256=b852f924287ffb58a440856e862b056c8ad97e74b4b2526cee43e0771f40c25c - toml (0.3.0) sha256=0a91d0f76a9036e84e44f95693b12f58d358c1df3ac8e3b5271f2056ecc6e4b9 - toml-merge (7.1.0) - toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 - typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 webrick (1.9.2) sha256=beb4a15fc474defed24a3bda4ffd88a490d517c9e4e6118c3edce59e45864131 yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 - yaml-merge (7.1.0) yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd @@ -885,7 +562,6 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 - zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH diff --git a/gems/bash-merge/Gemfile.lock b/gems/bash-merge/Gemfile.lock index 9c7966743..ce30ff59d 100644 --- a/gems/bash-merge/Gemfile.lock +++ b/gems/bash-merge/Gemfile.lock @@ -6,265 +6,6 @@ PATH tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.14) -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly - specs: - ast-crispr-markdown-markly (7.1.0) - ast-crispr (= 7.1.0) - markly-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism - specs: - ast-crispr-ruby-prism (7.1.0) - ast-crispr (= 7.1.0) - prism-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr - specs: - ast-crispr (7.1.0) - ast-merge (= 7.1.0) - service_actor (~> 3.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git - specs: - ast-merge-git (7.1.0) - ast-merge (= 7.1.0) - json-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge - specs: - ast-merge (7.1.0) - benchmark - token-resolver (~> 2.0, >= 2.0.4) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template - specs: - ast-template (7.1.0) - ast-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge - specs: - binary-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge - specs: - citrus-toml-merge (7.1.0) - toml-merge (= 7.1.0) - toml-rb (~> 4.1) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge - specs: - commonmarker-merge (7.1.0) - commonmarker (~> 2.2) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge - specs: - dotenv-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge - specs: - go-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge - specs: - json-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem - specs: - kettle-jem (7.1.0) - addressable (>= 2.8, < 3) - ast-crispr-markdown-markly (= 7.1.0) - ast-crispr-ruby-prism (= 7.1.0) - ast-merge (= 7.1.0) - bash-merge (= 7.1.0) - citrus-toml-merge (= 7.1.0) - commonmarker-merge (= 7.1.0) - dotenv-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-dev (~> 2.3, >= 2.3.5) - kettle-rb (~> 0.1, >= 0.1.4) - kramdown-merge (= 7.1.0) - markdown-merge (= 7.1.0) - markly-merge (= 7.1.0) - prism-merge (= 7.1.0) - psych-merge (= 7.1.0) - rbs (>= 3.10) - rbs-merge (= 7.1.0) - ruby-merge (= 7.1.0) - token-resolver (~> 2.0, >= 2.0.4) - toml-merge (= 7.1.0) - toml-rb (~> 4.2) - tree_haver (= 7.1.0) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge - specs: - kramdown-merge (7.1.0) - kramdown (~> 2.5) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge - specs: - markdown-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge - specs: - markly-merge (7.1.0) - markdown-merge (= 7.1.0) - markly (~> 0.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge - specs: - parslet-toml-merge (7.1.0) - toml (~> 0.3) - toml-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge - specs: - plain-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge - specs: - prism-merge (7.1.0) - prism (~> 1.6) - ruby-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge - specs: - psych-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge - specs: - rbs-merge (7.1.0) - ast-merge (= 7.1.0) - rbs (>= 3.10) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge - specs: - ruby-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge - specs: - rust-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb - specs: - smorg-rb (7.1.0) - ast-merge (= 7.1.0) - ast-merge-git (= 7.1.0) - go-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-jem (= 7.1.0) - markly-merge (= 7.1.0) - plain-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge - specs: - toml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver - specs: - tree_haver (7.1.0) - citrus (~> 3.0) - parslet (~> 2.0) - tree_sitter_language_pack (>= 1.13.2, < 2.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge - specs: - typescript-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge - specs: - yaml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge - specs: - zip-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - GEM remote: https://gem.coop/ specs: @@ -280,6 +21,11 @@ GEM rubocop (>= 1.0) version_gem (~> 1.1, >= 1.1.14) ast (2.4.3) + ast-merge (7.1.0) + benchmark + token-resolver (~> 2.0, >= 2.0.4) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) backports (3.25.3) benchmark (0.5.0) bigdecimal (4.1.2) @@ -289,11 +35,6 @@ GEM cgi (0.5.2) citrus (3.0.2) cmdparse (3.0.7) - commonmarker (2.9.0-aarch64-linux) - commonmarker (2.9.0-aarch64-linux-musl) - commonmarker (2.9.0-arm64-darwin) - commonmarker (2.9.0-x86_64-linux) - commonmarker (2.9.0-x86_64-linux-musl) concurrent-ruby (1.3.8) date (3.5.1) debug (1.11.1) @@ -356,8 +97,6 @@ GEM kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) - kettle-drift (1.0.6) - version_gem (~> 1.1, >= 1.1.14) kettle-rb (0.1.5) kettle-soup-cover (3.0.4) kettle-wash (~> 0.1, >= 0.1.0) @@ -386,7 +125,6 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) - markly (0.16.0) mutex_m (0.3.0) nokogiri (1.19.4-aarch64-linux-gnu) racc (~> 1.4) @@ -549,8 +287,6 @@ GEM ruby-progressbar (1.13.0) ruby_engine (2.0.3) ruby_version (1.0.3) - service_actor (3.9.4) - zeitwerk (>= 1.0) silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) @@ -605,11 +341,11 @@ GEM token-resolver (2.0.5) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.14) - toml (0.3.0) - parslet (>= 1.8.0, < 3.0.0) - toml-rb (4.2.0) - citrus (~> 3.0, > 3.0) - racc (~> 1.7) + tree_haver (7.1.0) + citrus (~> 3.0) + parslet (~> 2.0) + tree_sitter_language_pack (>= 1.13.2, < 2.0) + version_gem (~> 1.1, >= 1.1.9) tree_sitter_language_pack (1.13.3-aarch64-linux) sorbet-runtime (~> 0.5) tree_sitter_language_pack (1.13.3-arm64-darwin) @@ -664,46 +400,24 @@ DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.2, >= 3.2.0) appraisal2-rubocop (~> 1.0, >= 1.0.0) - ast-crispr! - ast-crispr-markdown-markly! - ast-crispr-ruby-prism! - ast-merge! - ast-merge-git! - ast-template! bash-merge! benchmark (~> 0.5, >= 0.5.0) - binary-merge! bundler-audit (~> 0.9.3) cgi (~> 0.5) - citrus-toml-merge! - commonmarker-merge! debug (>= 1.1) - dotenv-merge! erb (~> 6.0, >= 6.0.6) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.4) - go-merge! irb (~> 1.17) - json-merge! kettle-dev (~> 2.3, >= 2.3.7) - kettle-drift (~> 1.0, >= 1.0.6) - kettle-jem! kettle-soup-cover (~> 3.0, >= 3.0.3) kettle-test (~> 2.0, >= 2.0.12) kramdown (~> 2.5, >= 2.5.2) - kramdown-merge! kramdown-parser-gfm (~> 1.1) - markdown-merge! - markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) - parslet-toml-merge! - plain-merge! - prism-merge! - psych-merge! rake (~> 13.0) rbs (>= 3.0) - rbs-merge! rdoc (~> 6.11) reek (~> 6.5, >= 6.5.0) require_bench (~> 1.0, >= 1.0.4) @@ -714,28 +428,20 @@ DEPENDENCIES rubocop-on-rbs (~> 2.0, >= 2.0.0) rubocop-packaging (~> 0.6, >= 0.6.0) rubocop-ruby3_2 (~> 3.0, >= 3.0.6) - ruby-merge! ruby-progressbar (~> 1.13) - rust-merge! - smorg-rb! standard (~> 1.56, >= 1.56.0) stone_checksums (~> 1.0, >= 1.0.6) stringio (>= 3.0) - toml-merge! - tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) turbo_tests2 (~> 3.2, >= 3.2.0) - typescript-merge! webrick (~> 1.9) yaml-converter (~> 0.2, >= 0.2.3) - yaml-merge! yard (~> 0.9, >= 0.9.45) yard-fence (~> 0.9, >= 0.9.6) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) yard-timekeeper (~> 0.2, >= 0.2.4) yard-yaml (~> 0.2, >= 0.2.3) - zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af @@ -743,35 +449,21 @@ CHECKSUMS appraisal2 (3.2.0) sha256=ccd0b767ac4060cd7af6d16747459b6990f49c39c7b4fb1f7d1146b1e97c492f appraisal2-rubocop (1.0.0) sha256=b71410fbb014befda5340605a605b7f6f3f012739baf0acc5b4351b592c3258d ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 - ast-crispr (7.1.0) - ast-crispr-markdown-markly (7.1.0) - ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) - ast-merge-git (7.1.0) - ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd - binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 - citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 - commonmarker (2.9.0-aarch64-linux) sha256=e2b4aadb9a2cfa4e206582641ce3a49465549ac1ed4c289fdd63b78d8f24579c - commonmarker (2.9.0-aarch64-linux-musl) sha256=1cf4d2821f2a7e64945f1ed7c4eeced586fdb27ea7fe7337788802cf8f57cfca - commonmarker (2.9.0-arm64-darwin) sha256=1748dbfa4f5813b0d2a14bb4bbfa65a4ec293aa1c825016d60029ee0e132b046 - commonmarker (2.9.0-x86_64-linux) sha256=8cfe92970eef585a19ddf6613224b91cab64d6029834661bda801f877c9c7f43 - commonmarker (2.9.0-x86_64-linux-musl) sha256=293921398b839f79ceaf55010e061357e34f053822c3b003cd0be6686176335e - commonmarker-merge (7.1.0) concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 - dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -784,28 +476,20 @@ CHECKSUMS gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f - go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 - json-merge (7.1.0) kettle-dev (2.3.8) sha256=9d716ff21c660a730cb4e8d41e2e2f0630a28167a354b6e2924e242102aef72c - kettle-drift (1.0.6) sha256=46eda08fa4411d1f3c6682a95eef1c9df4e94611b3949f49d4c7b43c0ed356a3 - kettle-jem (7.1.0) kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f kettle-soup-cover (3.0.4) kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa - kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 - markdown-merge (7.1.0) - markly (0.16.0) sha256=6f70d79e385b1efc9e171f74c81628826259039fe6c778e03c3924c71dac5511 - markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-aarch64-linux-gnu) sha256=1269fb644a6de405057a53dd5c762b1209b43ca7424f839454d3dbc677c31a8f nokogiri (1.19.4-aarch64-linux-musl) sha256=35c65b9ce72b3bb03207bdbe7067915019dc18c1b9b59139684bd6690fdd01af @@ -819,20 +503,15 @@ CHECKSUMS parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 - parslet-toml-merge (7.1.0) - plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 - prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 - psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 - rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb @@ -867,19 +546,15 @@ CHECKSUMS rubocop-rspec_rails (2.32.0) sha256=4a0d641c72f6ebb957534f539d9d0a62c47abd8ce0d0aeee1ef4701e892a9100 rubocop-ruby3_2 (3.0.7) sha256=f53dd6d286fb05186214fc6ec116783e7f837030918e8931c05de773e98f8466 rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 - ruby-merge (7.1.0) ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 - rust-merge (7.1.0) - service_actor (3.9.4) sha256=e63b523630b9a7e62959b2a90113b08d2565b5de9c148557b281ef847c9539ce silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed - smorg-rb (7.1.0) sorbet-runtime (0.6.13347) sha256=54e7221d9f4b63f58aec79f3043752a9ba7810347c6ae0d903531591cc2d5f01 standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b @@ -894,22 +569,17 @@ CHECKSUMS timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.5) sha256=b852f924287ffb58a440856e862b056c8ad97e74b4b2526cee43e0771f40c25c - toml (0.3.0) sha256=0a91d0f76a9036e84e44f95693b12f58d358c1df3ac8e3b5271f2056ecc6e4b9 - toml-merge (7.1.0) - toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-aarch64-linux) sha256=55ffc7c87868cb45658338363d9eba51b4a8b0259aa88e4de368d2bd1d52fea4 tree_sitter_language_pack (1.13.3-arm64-darwin) sha256=bc2498db605f212a1dbd2465ed3f65190d7da786f6ed5d30fcf958121aeb4a5c tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 - typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 webrick (1.9.2) sha256=beb4a15fc474defed24a3bda4ffd88a490d517c9e4e6118c3edce59e45864131 yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 - yaml-merge (7.1.0) yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd @@ -917,7 +587,6 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 - zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH diff --git a/gems/binary-merge/Gemfile.lock b/gems/binary-merge/Gemfile.lock index 950783ddf..fd83113ee 100644 --- a/gems/binary-merge/Gemfile.lock +++ b/gems/binary-merge/Gemfile.lock @@ -5,266 +5,6 @@ PATH tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly - specs: - ast-crispr-markdown-markly (7.1.0) - ast-crispr (= 7.1.0) - markly-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism - specs: - ast-crispr-ruby-prism (7.1.0) - ast-crispr (= 7.1.0) - prism-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr - specs: - ast-crispr (7.1.0) - ast-merge (= 7.1.0) - service_actor (~> 3.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git - specs: - ast-merge-git (7.1.0) - ast-merge (= 7.1.0) - json-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge - specs: - ast-merge (7.1.0) - benchmark - token-resolver (~> 2.0, >= 2.0.4) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template - specs: - ast-template (7.1.0) - ast-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge - specs: - bash-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge - specs: - citrus-toml-merge (7.1.0) - toml-merge (= 7.1.0) - toml-rb (~> 4.1) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge - specs: - commonmarker-merge (7.1.0) - commonmarker (~> 2.2) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge - specs: - dotenv-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge - specs: - go-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge - specs: - json-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem - specs: - kettle-jem (7.1.0) - addressable (>= 2.8, < 3) - ast-crispr-markdown-markly (= 7.1.0) - ast-crispr-ruby-prism (= 7.1.0) - ast-merge (= 7.1.0) - bash-merge (= 7.1.0) - citrus-toml-merge (= 7.1.0) - commonmarker-merge (= 7.1.0) - dotenv-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-dev (~> 2.3, >= 2.3.5) - kettle-rb (~> 0.1, >= 0.1.4) - kramdown-merge (= 7.1.0) - markdown-merge (= 7.1.0) - markly-merge (= 7.1.0) - prism-merge (= 7.1.0) - psych-merge (= 7.1.0) - rbs (>= 3.10) - rbs-merge (= 7.1.0) - ruby-merge (= 7.1.0) - token-resolver (~> 2.0, >= 2.0.4) - toml-merge (= 7.1.0) - toml-rb (~> 4.2) - tree_haver (= 7.1.0) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge - specs: - kramdown-merge (7.1.0) - kramdown (~> 2.5) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge - specs: - markdown-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge - specs: - markly-merge (7.1.0) - markdown-merge (= 7.1.0) - markly (~> 0.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge - specs: - parslet-toml-merge (7.1.0) - toml (~> 0.3) - toml-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge - specs: - plain-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge - specs: - prism-merge (7.1.0) - prism (~> 1.6) - ruby-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge - specs: - psych-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge - specs: - rbs-merge (7.1.0) - ast-merge (= 7.1.0) - rbs (>= 3.10) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge - specs: - ruby-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge - specs: - rust-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb - specs: - smorg-rb (7.1.0) - ast-merge (= 7.1.0) - ast-merge-git (= 7.1.0) - go-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-jem (= 7.1.0) - markly-merge (= 7.1.0) - plain-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge - specs: - toml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver - specs: - tree_haver (7.1.0) - citrus (~> 3.0) - parslet (~> 2.0) - tree_sitter_language_pack (>= 1.13.2, < 2.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge - specs: - typescript-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge - specs: - yaml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge - specs: - zip-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - GEM remote: https://gem.coop/ specs: @@ -289,11 +29,6 @@ GEM cgi (0.5.2) citrus (3.0.2) cmdparse (3.0.7) - commonmarker (2.9.0-aarch64-linux) - commonmarker (2.9.0-aarch64-linux-musl) - commonmarker (2.9.0-arm64-darwin) - commonmarker (2.9.0-x86_64-linux) - commonmarker (2.9.0-x86_64-linux-musl) concurrent-ruby (1.3.8) date (3.5.1) debug (1.11.1) @@ -356,8 +91,6 @@ GEM kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) - kettle-drift (1.0.6) - version_gem (~> 1.1, >= 1.1.14) kettle-rb (0.1.5) kettle-soup-cover (3.0.4) kettle-wash (~> 0.1, >= 0.1.0) @@ -386,7 +119,6 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) - markly (0.16.0) mutex_m (0.3.0) nokogiri (1.19.4-aarch64-linux-gnu) racc (~> 1.4) @@ -549,8 +281,6 @@ GEM ruby-progressbar (1.13.0) ruby_engine (2.0.3) ruby_version (1.0.3) - service_actor (3.9.4) - zeitwerk (>= 1.0) silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) @@ -602,14 +332,11 @@ GEM delegate (~> 0.1) rspec (~> 3.0) timecop (>= 0.7, < 1) - token-resolver (2.0.5) + tree_haver (7.1.0) + citrus (~> 3.0) parslet (~> 2.0) - version_gem (~> 1.1, >= 1.1.14) - toml (0.3.0) - parslet (>= 1.8.0, < 3.0.0) - toml-rb (4.2.0) - citrus (~> 3.0, > 3.0) - racc (~> 1.7) + tree_sitter_language_pack (>= 1.13.2, < 2.0) + version_gem (~> 1.1, >= 1.1.9) tree_sitter_language_pack (1.13.3-aarch64-linux) sorbet-runtime (~> 0.5) tree_sitter_language_pack (1.13.3-arm64-darwin) @@ -664,46 +391,24 @@ DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) appraisal2-rubocop (~> 1.0, >= 1.0.0) - ast-crispr! - ast-crispr-markdown-markly! - ast-crispr-ruby-prism! - ast-merge! - ast-merge-git! - ast-template! - bash-merge! benchmark (~> 0.5, >= 0.5.0) binary-merge! bundler-audit (~> 0.9.3) cgi (~> 0.5) - citrus-toml-merge! - commonmarker-merge! debug (>= 1.1) - dotenv-merge! erb (~> 6.0, >= 6.0.6) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.0) - go-merge! irb (~> 1.17) - json-merge! kettle-dev (~> 2.0, >= 2.2.25) - kettle-drift (~> 1.0, >= 1.0.6) - kettle-jem! kettle-soup-cover (~> 3.0, >= 3.0.3) kettle-test (~> 2.0, >= 2.0.9) kramdown (~> 2.5, >= 2.5.2) - kramdown-merge! kramdown-parser-gfm (~> 1.1) - markdown-merge! - markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) - parslet-toml-merge! - plain-merge! - prism-merge! - psych-merge! rake (~> 13.0) rbs (>= 3.0) - rbs-merge! rdoc (~> 6.11) reek (~> 6.5, >= 6.5.0) require_bench (~> 1.0, >= 1.0.4) @@ -714,27 +419,19 @@ DEPENDENCIES rubocop-on-rbs (~> 2.0, >= 2.0.0) rubocop-packaging (~> 0.6, >= 0.6.0) rubocop-ruby3_2 (~> 3.0, >= 3.0.6) - ruby-merge! ruby-progressbar (~> 1.13) - rust-merge! - smorg-rb! standard (~> 1.56, >= 1.56.0) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) - toml-merge! - tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) - typescript-merge! webrick (~> 1.9) yaml-converter (~> 0.2, >= 0.2.3) - yaml-merge! yard (~> 0.9, >= 0.9.45) yard-fence (~> 0.9, >= 0.9.6) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) yard-timekeeper (~> 0.2, >= 0.2.4) yard-yaml (~> 0.2, >= 0.2.3) - zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af @@ -742,35 +439,20 @@ CHECKSUMS appraisal2 (3.2.0) sha256=ccd0b767ac4060cd7af6d16747459b6990f49c39c7b4fb1f7d1146b1e97c492f appraisal2-rubocop (1.0.0) sha256=b71410fbb014befda5340605a605b7f6f3f012739baf0acc5b4351b592c3258d ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 - ast-crispr (7.1.0) - ast-crispr-markdown-markly (7.1.0) - ast-crispr-ruby-prism (7.1.0) - ast-merge (7.1.0) - ast-merge-git (7.1.0) - ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 - bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 - citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 - commonmarker (2.9.0-aarch64-linux) sha256=e2b4aadb9a2cfa4e206582641ce3a49465549ac1ed4c289fdd63b78d8f24579c - commonmarker (2.9.0-aarch64-linux-musl) sha256=1cf4d2821f2a7e64945f1ed7c4eeced586fdb27ea7fe7337788802cf8f57cfca - commonmarker (2.9.0-arm64-darwin) sha256=1748dbfa4f5813b0d2a14bb4bbfa65a4ec293aa1c825016d60029ee0e132b046 - commonmarker (2.9.0-x86_64-linux) sha256=8cfe92970eef585a19ddf6613224b91cab64d6029834661bda801f877c9c7f43 - commonmarker (2.9.0-x86_64-linux-musl) sha256=293921398b839f79ceaf55010e061357e34f053822c3b003cd0be6686176335e - commonmarker-merge (7.1.0) concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 - dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -783,28 +465,20 @@ CHECKSUMS gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f - go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 - json-merge (7.1.0) kettle-dev (2.3.8) sha256=9d716ff21c660a730cb4e8d41e2e2f0630a28167a354b6e2924e242102aef72c - kettle-drift (1.0.6) sha256=46eda08fa4411d1f3c6682a95eef1c9df4e94611b3949f49d4c7b43c0ed356a3 - kettle-jem (7.1.0) kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f kettle-soup-cover (3.0.4) kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa - kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 - markdown-merge (7.1.0) - markly (0.16.0) sha256=6f70d79e385b1efc9e171f74c81628826259039fe6c778e03c3924c71dac5511 - markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-aarch64-linux-gnu) sha256=1269fb644a6de405057a53dd5c762b1209b43ca7424f839454d3dbc677c31a8f nokogiri (1.19.4-aarch64-linux-musl) sha256=35c65b9ce72b3bb03207bdbe7067915019dc18c1b9b59139684bd6690fdd01af @@ -818,20 +492,15 @@ CHECKSUMS parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 - parslet-toml-merge (7.1.0) - plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 - prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 - psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 - rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb @@ -866,19 +535,15 @@ CHECKSUMS rubocop-rspec_rails (2.32.0) sha256=4a0d641c72f6ebb957534f539d9d0a62c47abd8ce0d0aeee1ef4701e892a9100 rubocop-ruby3_2 (3.0.7) sha256=f53dd6d286fb05186214fc6ec116783e7f837030918e8931c05de773e98f8466 rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 - ruby-merge (7.1.0) ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 - rust-merge (7.1.0) - service_actor (3.9.4) sha256=e63b523630b9a7e62959b2a90113b08d2565b5de9c148557b281ef847c9539ce silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed - smorg-rb (7.1.0) sorbet-runtime (0.6.13347) sha256=54e7221d9f4b63f58aec79f3043752a9ba7810347c6ae0d903531591cc2d5f01 standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b @@ -892,23 +557,17 @@ CHECKSUMS thor (1.5.0) sha256=e3a9e55fe857e44859ce104a84675ab6e8cd59c650a49106a05f55f136425e73 timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 - token-resolver (2.0.5) sha256=b852f924287ffb58a440856e862b056c8ad97e74b4b2526cee43e0771f40c25c - toml (0.3.0) sha256=0a91d0f76a9036e84e44f95693b12f58d358c1df3ac8e3b5271f2056ecc6e4b9 - toml-merge (7.1.0) - toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-aarch64-linux) sha256=55ffc7c87868cb45658338363d9eba51b4a8b0259aa88e4de368d2bd1d52fea4 tree_sitter_language_pack (1.13.3-arm64-darwin) sha256=bc2498db605f212a1dbd2465ed3f65190d7da786f6ed5d30fcf958121aeb4a5c tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 - typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 webrick (1.9.2) sha256=beb4a15fc474defed24a3bda4ffd88a490d517c9e4e6118c3edce59e45864131 yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 - yaml-merge (7.1.0) yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd @@ -916,7 +575,6 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 - zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH diff --git a/gems/citrus-toml-merge/Gemfile.lock b/gems/citrus-toml-merge/Gemfile.lock index b9fafe0af..386da9a1f 100644 --- a/gems/citrus-toml-merge/Gemfile.lock +++ b/gems/citrus-toml-merge/Gemfile.lock @@ -6,265 +6,6 @@ PATH toml-rb (~> 4.1) version_gem (~> 1.1, >= 1.1.9) -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly - specs: - ast-crispr-markdown-markly (7.1.0) - ast-crispr (= 7.1.0) - markly-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism - specs: - ast-crispr-ruby-prism (7.1.0) - ast-crispr (= 7.1.0) - prism-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr - specs: - ast-crispr (7.1.0) - ast-merge (= 7.1.0) - service_actor (~> 3.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git - specs: - ast-merge-git (7.1.0) - ast-merge (= 7.1.0) - json-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge - specs: - ast-merge (7.1.0) - benchmark - token-resolver (~> 2.0, >= 2.0.4) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template - specs: - ast-template (7.1.0) - ast-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge - specs: - bash-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge - specs: - binary-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge - specs: - commonmarker-merge (7.1.0) - commonmarker (~> 2.2) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge - specs: - dotenv-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge - specs: - go-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge - specs: - json-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem - specs: - kettle-jem (7.1.0) - addressable (>= 2.8, < 3) - ast-crispr-markdown-markly (= 7.1.0) - ast-crispr-ruby-prism (= 7.1.0) - ast-merge (= 7.1.0) - bash-merge (= 7.1.0) - citrus-toml-merge (= 7.1.0) - commonmarker-merge (= 7.1.0) - dotenv-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-dev (~> 2.3, >= 2.3.5) - kettle-rb (~> 0.1, >= 0.1.4) - kramdown-merge (= 7.1.0) - markdown-merge (= 7.1.0) - markly-merge (= 7.1.0) - prism-merge (= 7.1.0) - psych-merge (= 7.1.0) - rbs (>= 3.10) - rbs-merge (= 7.1.0) - ruby-merge (= 7.1.0) - token-resolver (~> 2.0, >= 2.0.4) - toml-merge (= 7.1.0) - toml-rb (~> 4.2) - tree_haver (= 7.1.0) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge - specs: - kramdown-merge (7.1.0) - kramdown (~> 2.5) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge - specs: - markdown-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge - specs: - markly-merge (7.1.0) - markdown-merge (= 7.1.0) - markly (~> 0.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge - specs: - parslet-toml-merge (7.1.0) - toml (~> 0.3) - toml-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge - specs: - plain-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge - specs: - prism-merge (7.1.0) - prism (~> 1.6) - ruby-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge - specs: - psych-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge - specs: - rbs-merge (7.1.0) - ast-merge (= 7.1.0) - rbs (>= 3.10) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge - specs: - ruby-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge - specs: - rust-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb - specs: - smorg-rb (7.1.0) - ast-merge (= 7.1.0) - ast-merge-git (= 7.1.0) - go-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-jem (= 7.1.0) - markly-merge (= 7.1.0) - plain-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge - specs: - toml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver - specs: - tree_haver (7.1.0) - citrus (~> 3.0) - parslet (~> 2.0) - tree_sitter_language_pack (>= 1.13.2, < 2.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge - specs: - typescript-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge - specs: - yaml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge - specs: - zip-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - GEM remote: https://gem.coop/ specs: @@ -280,6 +21,11 @@ GEM rubocop (>= 1.0) version_gem (~> 1.1, >= 1.1.14) ast (2.4.3) + ast-merge (7.1.0) + benchmark + token-resolver (~> 2.0, >= 2.0.4) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) backports (3.25.3) benchmark (0.5.0) bigdecimal (4.1.2) @@ -289,7 +35,6 @@ GEM cgi (0.5.2) citrus (3.0.2) cmdparse (3.0.7) - commonmarker (2.9.0-x86_64-linux) concurrent-ruby (1.3.8) date (3.5.1) debug (1.11.1) @@ -352,8 +97,6 @@ GEM kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) - kettle-drift (1.0.6) - version_gem (~> 1.1, >= 1.1.14) kettle-rb (0.1.5) kettle-soup-cover (3.0.4) kettle-wash (~> 0.1, >= 0.1.0) @@ -382,7 +125,6 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) - markly (0.16.0) mutex_m (0.3.0) nokogiri (1.19.4-x86_64-linux-gnu) racc (~> 1.4) @@ -537,8 +279,6 @@ GEM ruby-progressbar (1.13.0) ruby_engine (2.0.3) ruby_version (1.0.3) - service_actor (3.9.4) - zeitwerk (>= 1.0) silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) @@ -593,11 +333,18 @@ GEM token-resolver (2.0.5) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.14) - toml (0.3.0) - parslet (>= 1.8.0, < 3.0.0) + toml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) toml-rb (4.2.0) citrus (~> 3.0, > 3.0) racc (~> 1.7) + tree_haver (7.1.0) + citrus (~> 3.0) + parslet (~> 2.0) + tree_sitter_language_pack (>= 1.13.2, < 2.0) + version_gem (~> 1.1, >= 1.1.9) tree_sitter_language_pack (1.13.3-x86_64-linux) sorbet-runtime (~> 0.5) tsort (0.2.0) @@ -643,46 +390,24 @@ DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) appraisal2-rubocop (~> 1.0, >= 1.0.0) - ast-crispr! - ast-crispr-markdown-markly! - ast-crispr-ruby-prism! - ast-merge! - ast-merge-git! - ast-template! - bash-merge! benchmark (~> 0.5, >= 0.5.0) - binary-merge! bundler-audit (~> 0.9.3) cgi (~> 0.5) citrus-toml-merge! - commonmarker-merge! debug (>= 1.1) - dotenv-merge! erb (~> 6.0, >= 6.0.6) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.0) - go-merge! irb (~> 1.17) - json-merge! kettle-dev (~> 2.0, >= 2.2.25) - kettle-drift (~> 1.0, >= 1.0.6) - kettle-jem! kettle-soup-cover (~> 3.0, >= 3.0.3) kettle-test (~> 2.0, >= 2.0.9) kramdown (~> 2.5, >= 2.5.2) - kramdown-merge! kramdown-parser-gfm (~> 1.1) - markdown-merge! - markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) - parslet-toml-merge! - plain-merge! - prism-merge! - psych-merge! rake (~> 13.0) rbs (>= 3.0) - rbs-merge! rdoc (~> 6.11) reek (~> 6.5, >= 6.5.0) require_bench (~> 1.0, >= 1.0.4) @@ -693,27 +418,19 @@ DEPENDENCIES rubocop-on-rbs (~> 2.0, >= 2.0.0) rubocop-packaging (~> 0.6, >= 0.6.0) rubocop-ruby3_2 (~> 3.0, >= 3.0.6) - ruby-merge! ruby-progressbar (~> 1.13) - rust-merge! - smorg-rb! standard (~> 1.56, >= 1.56.0) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) - toml-merge! - tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) - typescript-merge! webrick (~> 1.9) yaml-converter (~> 0.2, >= 0.2.3) - yaml-merge! yard (~> 0.9, >= 0.9.45) yard-fence (~> 0.9, >= 0.9.6) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) yard-timekeeper (~> 0.2, >= 0.2.4) yard-yaml (~> 0.2, >= 0.2.3) - zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af @@ -721,31 +438,21 @@ CHECKSUMS appraisal2 (3.2.0) sha256=ccd0b767ac4060cd7af6d16747459b6990f49c39c7b4fb1f7d1146b1e97c492f appraisal2-rubocop (1.0.0) sha256=b71410fbb014befda5340605a605b7f6f3f012739baf0acc5b4351b592c3258d ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 - ast-crispr (7.1.0) - ast-crispr-markdown-markly (7.1.0) - ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) - ast-merge-git (7.1.0) - ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 - bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd - binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 - commonmarker (2.9.0-x86_64-linux) sha256=8cfe92970eef585a19ddf6613224b91cab64d6029834661bda801f877c9c7f43 - commonmarker-merge (7.1.0) concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 - dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -758,28 +465,20 @@ CHECKSUMS gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f - go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 - json-merge (7.1.0) kettle-dev (2.3.8) sha256=9d716ff21c660a730cb4e8d41e2e2f0630a28167a354b6e2924e242102aef72c - kettle-drift (1.0.6) sha256=46eda08fa4411d1f3c6682a95eef1c9df4e94611b3949f49d4c7b43c0ed356a3 - kettle-jem (7.1.0) kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f kettle-soup-cover (3.0.4) kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa - kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 - markdown-merge (7.1.0) - markly (0.16.0) sha256=6f70d79e385b1efc9e171f74c81628826259039fe6c778e03c3924c71dac5511 - markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-x86_64-linux-gnu) sha256=379fae440b28915e3f19d752ce2dcf8465ed2b2fbefd2a7ca0dd497bc981a06a nomono (1.0.9) @@ -789,20 +488,15 @@ CHECKSUMS parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 - parslet-toml-merge (7.1.0) - plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 - prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 - psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 - rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb @@ -837,19 +531,15 @@ CHECKSUMS rubocop-rspec_rails (2.32.0) sha256=4a0d641c72f6ebb957534f539d9d0a62c47abd8ce0d0aeee1ef4701e892a9100 rubocop-ruby3_2 (3.0.7) sha256=f53dd6d286fb05186214fc6ec116783e7f837030918e8931c05de773e98f8466 rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 - ruby-merge (7.1.0) ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 - rust-merge (7.1.0) - service_actor (3.9.4) sha256=e63b523630b9a7e62959b2a90113b08d2565b5de9c148557b281ef847c9539ce silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed - smorg-rb (7.1.0) sorbet-runtime (0.6.13347) sha256=54e7221d9f4b63f58aec79f3043752a9ba7810347c6ae0d903531591cc2d5f01 standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b @@ -864,20 +554,17 @@ CHECKSUMS timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.5) sha256=b852f924287ffb58a440856e862b056c8ad97e74b4b2526cee43e0771f40c25c - toml (0.3.0) sha256=0a91d0f76a9036e84e44f95693b12f58d358c1df3ac8e3b5271f2056ecc6e4b9 toml-merge (7.1.0) toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 - typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 webrick (1.9.2) sha256=beb4a15fc474defed24a3bda4ffd88a490d517c9e4e6118c3edce59e45864131 yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 - yaml-merge (7.1.0) yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd @@ -885,7 +572,6 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 - zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH diff --git a/gems/commonmarker-merge/Gemfile.lock b/gems/commonmarker-merge/Gemfile.lock index 54a484c3d..7e90fc630 100644 --- a/gems/commonmarker-merge/Gemfile.lock +++ b/gems/commonmarker-merge/Gemfile.lock @@ -6,265 +6,6 @@ PATH markdown-merge (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly - specs: - ast-crispr-markdown-markly (7.1.0) - ast-crispr (= 7.1.0) - markly-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism - specs: - ast-crispr-ruby-prism (7.1.0) - ast-crispr (= 7.1.0) - prism-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr - specs: - ast-crispr (7.1.0) - ast-merge (= 7.1.0) - service_actor (~> 3.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git - specs: - ast-merge-git (7.1.0) - ast-merge (= 7.1.0) - json-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge - specs: - ast-merge (7.1.0) - benchmark - token-resolver (~> 2.0, >= 2.0.4) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template - specs: - ast-template (7.1.0) - ast-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge - specs: - bash-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge - specs: - binary-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge - specs: - citrus-toml-merge (7.1.0) - toml-merge (= 7.1.0) - toml-rb (~> 4.1) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge - specs: - dotenv-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge - specs: - go-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge - specs: - json-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem - specs: - kettle-jem (7.1.0) - addressable (>= 2.8, < 3) - ast-crispr-markdown-markly (= 7.1.0) - ast-crispr-ruby-prism (= 7.1.0) - ast-merge (= 7.1.0) - bash-merge (= 7.1.0) - citrus-toml-merge (= 7.1.0) - commonmarker-merge (= 7.1.0) - dotenv-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-dev (~> 2.3, >= 2.3.5) - kettle-rb (~> 0.1, >= 0.1.4) - kramdown-merge (= 7.1.0) - markdown-merge (= 7.1.0) - markly-merge (= 7.1.0) - prism-merge (= 7.1.0) - psych-merge (= 7.1.0) - rbs (>= 3.10) - rbs-merge (= 7.1.0) - ruby-merge (= 7.1.0) - token-resolver (~> 2.0, >= 2.0.4) - toml-merge (= 7.1.0) - toml-rb (~> 4.2) - tree_haver (= 7.1.0) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge - specs: - kramdown-merge (7.1.0) - kramdown (~> 2.5) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge - specs: - markdown-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge - specs: - markly-merge (7.1.0) - markdown-merge (= 7.1.0) - markly (~> 0.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge - specs: - parslet-toml-merge (7.1.0) - toml (~> 0.3) - toml-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge - specs: - plain-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge - specs: - prism-merge (7.1.0) - prism (~> 1.6) - ruby-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge - specs: - psych-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge - specs: - rbs-merge (7.1.0) - ast-merge (= 7.1.0) - rbs (>= 3.10) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge - specs: - ruby-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge - specs: - rust-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb - specs: - smorg-rb (7.1.0) - ast-merge (= 7.1.0) - ast-merge-git (= 7.1.0) - go-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-jem (= 7.1.0) - markly-merge (= 7.1.0) - plain-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge - specs: - toml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver - specs: - tree_haver (7.1.0) - citrus (~> 3.0) - parslet (~> 2.0) - tree_sitter_language_pack (>= 1.13.2, < 2.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge - specs: - typescript-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge - specs: - yaml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge - specs: - zip-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - GEM remote: https://gem.coop/ specs: @@ -280,6 +21,11 @@ GEM rubocop (>= 1.0) version_gem (~> 1.1, >= 1.1.14) ast (2.4.3) + ast-merge (7.1.0) + benchmark + token-resolver (~> 2.0, >= 2.0.4) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) backports (3.25.3) benchmark (0.5.0) bigdecimal (4.1.2) @@ -352,8 +98,6 @@ GEM kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) - kettle-drift (1.0.6) - version_gem (~> 1.1, >= 1.1.14) kettle-rb (0.1.5) kettle-soup-cover (3.0.4) kettle-wash (~> 0.1, >= 0.1.0) @@ -382,7 +126,10 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) - markly (0.16.0) + markdown-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) mutex_m (0.3.0) nokogiri (1.19.4-x86_64-linux-gnu) racc (~> 1.4) @@ -537,8 +284,6 @@ GEM ruby-progressbar (1.13.0) ruby_engine (2.0.3) ruby_version (1.0.3) - service_actor (3.9.4) - zeitwerk (>= 1.0) silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) @@ -593,11 +338,11 @@ GEM token-resolver (2.0.5) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.14) - toml (0.3.0) - parslet (>= 1.8.0, < 3.0.0) - toml-rb (4.2.0) - citrus (~> 3.0, > 3.0) - racc (~> 1.7) + tree_haver (7.1.0) + citrus (~> 3.0) + parslet (~> 2.0) + tree_sitter_language_pack (>= 1.13.2, < 2.0) + version_gem (~> 1.1, >= 1.1.9) tree_sitter_language_pack (1.13.3-x86_64-linux) sorbet-runtime (~> 0.5) tsort (0.2.0) @@ -643,46 +388,24 @@ DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) appraisal2-rubocop (~> 1.0, >= 1.0.0) - ast-crispr! - ast-crispr-markdown-markly! - ast-crispr-ruby-prism! - ast-merge! - ast-merge-git! - ast-template! - bash-merge! benchmark (~> 0.5, >= 0.5.0) - binary-merge! bundler-audit (~> 0.9.3) cgi (~> 0.5) - citrus-toml-merge! commonmarker-merge! debug (>= 1.1) - dotenv-merge! erb (~> 6.0, >= 6.0.6) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.0) - go-merge! irb (~> 1.17) - json-merge! kettle-dev (~> 2.0, >= 2.2.25) - kettle-drift (~> 1.0, >= 1.0.6) - kettle-jem! kettle-soup-cover (~> 3.0, >= 3.0.3) kettle-test (~> 2.0, >= 2.0.9) kramdown (~> 2.5, >= 2.5.2) - kramdown-merge! kramdown-parser-gfm (~> 1.1) - markdown-merge! - markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) - parslet-toml-merge! - plain-merge! - prism-merge! - psych-merge! rake (~> 13.0) rbs (>= 3.0) - rbs-merge! rdoc (~> 6.11) reek (~> 6.5, >= 6.5.0) require_bench (~> 1.0, >= 1.0.4) @@ -693,27 +416,19 @@ DEPENDENCIES rubocop-on-rbs (~> 2.0, >= 2.0.0) rubocop-packaging (~> 0.6, >= 0.6.0) rubocop-ruby3_2 (~> 3.0, >= 3.0.6) - ruby-merge! ruby-progressbar (~> 1.13) - rust-merge! - smorg-rb! standard (~> 1.56, >= 1.56.0) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) - toml-merge! - tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) - typescript-merge! webrick (~> 1.9) yaml-converter (~> 0.2, >= 0.2.3) - yaml-merge! yard (~> 0.9, >= 0.9.45) yard-fence (~> 0.9, >= 0.9.6) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) yard-timekeeper (~> 0.2, >= 0.2.4) yard-yaml (~> 0.2, >= 0.2.3) - zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af @@ -721,21 +436,13 @@ CHECKSUMS appraisal2 (3.2.0) sha256=ccd0b767ac4060cd7af6d16747459b6990f49c39c7b4fb1f7d1146b1e97c492f appraisal2-rubocop (1.0.0) sha256=b71410fbb014befda5340605a605b7f6f3f012739baf0acc5b4351b592c3258d ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 - ast-crispr (7.1.0) - ast-crispr-markdown-markly (7.1.0) - ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) - ast-merge-git (7.1.0) - ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 - bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd - binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 - citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 commonmarker (2.9.0-x86_64-linux) sha256=8cfe92970eef585a19ddf6613224b91cab64d6029834661bda801f877c9c7f43 commonmarker-merge (7.1.0) @@ -745,7 +452,6 @@ CHECKSUMS delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 - dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -758,28 +464,21 @@ CHECKSUMS gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f - go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 - json-merge (7.1.0) kettle-dev (2.3.8) sha256=9d716ff21c660a730cb4e8d41e2e2f0630a28167a354b6e2924e242102aef72c - kettle-drift (1.0.6) sha256=46eda08fa4411d1f3c6682a95eef1c9df4e94611b3949f49d4c7b43c0ed356a3 - kettle-jem (7.1.0) kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f kettle-soup-cover (3.0.4) kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa - kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 markdown-merge (7.1.0) - markly (0.16.0) sha256=6f70d79e385b1efc9e171f74c81628826259039fe6c778e03c3924c71dac5511 - markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-x86_64-linux-gnu) sha256=379fae440b28915e3f19d752ce2dcf8465ed2b2fbefd2a7ca0dd497bc981a06a nomono (1.0.9) @@ -789,20 +488,15 @@ CHECKSUMS parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 - parslet-toml-merge (7.1.0) - plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 - prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 - psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 - rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb @@ -837,19 +531,15 @@ CHECKSUMS rubocop-rspec_rails (2.32.0) sha256=4a0d641c72f6ebb957534f539d9d0a62c47abd8ce0d0aeee1ef4701e892a9100 rubocop-ruby3_2 (3.0.7) sha256=f53dd6d286fb05186214fc6ec116783e7f837030918e8931c05de773e98f8466 rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 - ruby-merge (7.1.0) ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 - rust-merge (7.1.0) - service_actor (3.9.4) sha256=e63b523630b9a7e62959b2a90113b08d2565b5de9c148557b281ef847c9539ce silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed - smorg-rb (7.1.0) sorbet-runtime (0.6.13347) sha256=54e7221d9f4b63f58aec79f3043752a9ba7810347c6ae0d903531591cc2d5f01 standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b @@ -864,20 +554,15 @@ CHECKSUMS timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.5) sha256=b852f924287ffb58a440856e862b056c8ad97e74b4b2526cee43e0771f40c25c - toml (0.3.0) sha256=0a91d0f76a9036e84e44f95693b12f58d358c1df3ac8e3b5271f2056ecc6e4b9 - toml-merge (7.1.0) - toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 - typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 webrick (1.9.2) sha256=beb4a15fc474defed24a3bda4ffd88a490d517c9e4e6118c3edce59e45864131 yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 - yaml-merge (7.1.0) yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd @@ -885,7 +570,6 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 - zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH diff --git a/gems/go-merge/Gemfile.lock b/gems/go-merge/Gemfile.lock index 2b2d6875f..47f882c26 100644 --- a/gems/go-merge/Gemfile.lock +++ b/gems/go-merge/Gemfile.lock @@ -6,265 +6,6 @@ PATH tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly - specs: - ast-crispr-markdown-markly (7.1.0) - ast-crispr (= 7.1.0) - markly-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism - specs: - ast-crispr-ruby-prism (7.1.0) - ast-crispr (= 7.1.0) - prism-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr - specs: - ast-crispr (7.1.0) - ast-merge (= 7.1.0) - service_actor (~> 3.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git - specs: - ast-merge-git (7.1.0) - ast-merge (= 7.1.0) - json-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge - specs: - ast-merge (7.1.0) - benchmark - token-resolver (~> 2.0, >= 2.0.4) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template - specs: - ast-template (7.1.0) - ast-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge - specs: - bash-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge - specs: - binary-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge - specs: - citrus-toml-merge (7.1.0) - toml-merge (= 7.1.0) - toml-rb (~> 4.1) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge - specs: - commonmarker-merge (7.1.0) - commonmarker (~> 2.2) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge - specs: - dotenv-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge - specs: - json-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem - specs: - kettle-jem (7.1.0) - addressable (>= 2.8, < 3) - ast-crispr-markdown-markly (= 7.1.0) - ast-crispr-ruby-prism (= 7.1.0) - ast-merge (= 7.1.0) - bash-merge (= 7.1.0) - citrus-toml-merge (= 7.1.0) - commonmarker-merge (= 7.1.0) - dotenv-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-dev (~> 2.3, >= 2.3.5) - kettle-rb (~> 0.1, >= 0.1.4) - kramdown-merge (= 7.1.0) - markdown-merge (= 7.1.0) - markly-merge (= 7.1.0) - prism-merge (= 7.1.0) - psych-merge (= 7.1.0) - rbs (>= 3.10) - rbs-merge (= 7.1.0) - ruby-merge (= 7.1.0) - token-resolver (~> 2.0, >= 2.0.4) - toml-merge (= 7.1.0) - toml-rb (~> 4.2) - tree_haver (= 7.1.0) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge - specs: - kramdown-merge (7.1.0) - kramdown (~> 2.5) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge - specs: - markdown-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge - specs: - markly-merge (7.1.0) - markdown-merge (= 7.1.0) - markly (~> 0.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge - specs: - parslet-toml-merge (7.1.0) - toml (~> 0.3) - toml-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge - specs: - plain-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge - specs: - prism-merge (7.1.0) - prism (~> 1.6) - ruby-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge - specs: - psych-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge - specs: - rbs-merge (7.1.0) - ast-merge (= 7.1.0) - rbs (>= 3.10) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge - specs: - ruby-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge - specs: - rust-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb - specs: - smorg-rb (7.1.0) - ast-merge (= 7.1.0) - ast-merge-git (= 7.1.0) - go-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-jem (= 7.1.0) - markly-merge (= 7.1.0) - plain-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge - specs: - toml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver - specs: - tree_haver (7.1.0) - citrus (~> 3.0) - parslet (~> 2.0) - tree_sitter_language_pack (>= 1.13.2, < 2.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge - specs: - typescript-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge - specs: - yaml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge - specs: - zip-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - GEM remote: https://gem.coop/ specs: @@ -280,6 +21,11 @@ GEM rubocop (>= 1.0) version_gem (~> 1.1, >= 1.1.14) ast (2.4.3) + ast-merge (7.1.0) + benchmark + token-resolver (~> 2.0, >= 2.0.4) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) backports (3.25.3) benchmark (0.5.0) bigdecimal (4.1.2) @@ -289,11 +35,6 @@ GEM cgi (0.5.2) citrus (3.0.2) cmdparse (3.0.7) - commonmarker (2.9.0-aarch64-linux) - commonmarker (2.9.0-aarch64-linux-musl) - commonmarker (2.9.0-arm64-darwin) - commonmarker (2.9.0-x86_64-linux) - commonmarker (2.9.0-x86_64-linux-musl) concurrent-ruby (1.3.8) date (3.5.1) debug (1.11.1) @@ -356,8 +97,6 @@ GEM kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) - kettle-drift (1.0.6) - version_gem (~> 1.1, >= 1.1.14) kettle-rb (0.1.5) kettle-soup-cover (3.0.4) kettle-wash (~> 0.1, >= 0.1.0) @@ -386,7 +125,6 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) - markly (0.16.0) mutex_m (0.3.0) nokogiri (1.19.4-aarch64-linux-gnu) racc (~> 1.4) @@ -549,8 +287,6 @@ GEM ruby-progressbar (1.13.0) ruby_engine (2.0.3) ruby_version (1.0.3) - service_actor (3.9.4) - zeitwerk (>= 1.0) silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) @@ -605,11 +341,11 @@ GEM token-resolver (2.0.5) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.14) - toml (0.3.0) - parslet (>= 1.8.0, < 3.0.0) - toml-rb (4.2.0) - citrus (~> 3.0, > 3.0) - racc (~> 1.7) + tree_haver (7.1.0) + citrus (~> 3.0) + parslet (~> 2.0) + tree_sitter_language_pack (>= 1.13.2, < 2.0) + version_gem (~> 1.1, >= 1.1.9) tree_sitter_language_pack (1.13.3-aarch64-linux) sorbet-runtime (~> 0.5) tree_sitter_language_pack (1.13.3-arm64-darwin) @@ -664,46 +400,24 @@ DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) appraisal2-rubocop (~> 1.0, >= 1.0.0) - ast-crispr! - ast-crispr-markdown-markly! - ast-crispr-ruby-prism! - ast-merge! - ast-merge-git! - ast-template! - bash-merge! benchmark (~> 0.5, >= 0.5.0) - binary-merge! bundler-audit (~> 0.9.3) cgi (~> 0.5) - citrus-toml-merge! - commonmarker-merge! debug (>= 1.1) - dotenv-merge! erb (~> 6.0, >= 6.0.6) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.0) go-merge! irb (~> 1.17) - json-merge! kettle-dev (~> 2.0, >= 2.2.25) - kettle-drift (~> 1.0, >= 1.0.6) - kettle-jem! kettle-soup-cover (~> 3.0, >= 3.0.3) kettle-test (~> 2.0, >= 2.0.9) kramdown (~> 2.5, >= 2.5.2) - kramdown-merge! kramdown-parser-gfm (~> 1.1) - markdown-merge! - markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) - parslet-toml-merge! - plain-merge! - prism-merge! - psych-merge! rake (~> 13.0) rbs (>= 3.0) - rbs-merge! rdoc (~> 6.11) reek (~> 6.5, >= 6.5.0) require_bench (~> 1.0, >= 1.0.4) @@ -714,27 +428,19 @@ DEPENDENCIES rubocop-on-rbs (~> 2.0, >= 2.0.0) rubocop-packaging (~> 0.6, >= 0.6.0) rubocop-ruby3_2 (~> 3.0, >= 3.0.6) - ruby-merge! ruby-progressbar (~> 1.13) - rust-merge! - smorg-rb! standard (~> 1.56, >= 1.56.0) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) - toml-merge! - tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) - typescript-merge! webrick (~> 1.9) yaml-converter (~> 0.2, >= 0.2.3) - yaml-merge! yard (~> 0.9, >= 0.9.45) yard-fence (~> 0.9, >= 0.9.6) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) yard-timekeeper (~> 0.2, >= 0.2.4) yard-yaml (~> 0.2, >= 0.2.3) - zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af @@ -742,35 +448,20 @@ CHECKSUMS appraisal2 (3.2.0) sha256=ccd0b767ac4060cd7af6d16747459b6990f49c39c7b4fb1f7d1146b1e97c492f appraisal2-rubocop (1.0.0) sha256=b71410fbb014befda5340605a605b7f6f3f012739baf0acc5b4351b592c3258d ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 - ast-crispr (7.1.0) - ast-crispr-markdown-markly (7.1.0) - ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) - ast-merge-git (7.1.0) - ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 - bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd - binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 - citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 - commonmarker (2.9.0-aarch64-linux) sha256=e2b4aadb9a2cfa4e206582641ce3a49465549ac1ed4c289fdd63b78d8f24579c - commonmarker (2.9.0-aarch64-linux-musl) sha256=1cf4d2821f2a7e64945f1ed7c4eeced586fdb27ea7fe7337788802cf8f57cfca - commonmarker (2.9.0-arm64-darwin) sha256=1748dbfa4f5813b0d2a14bb4bbfa65a4ec293aa1c825016d60029ee0e132b046 - commonmarker (2.9.0-x86_64-linux) sha256=8cfe92970eef585a19ddf6613224b91cab64d6029834661bda801f877c9c7f43 - commonmarker (2.9.0-x86_64-linux-musl) sha256=293921398b839f79ceaf55010e061357e34f053822c3b003cd0be6686176335e - commonmarker-merge (7.1.0) concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 - dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -788,23 +479,16 @@ CHECKSUMS io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 - json-merge (7.1.0) kettle-dev (2.3.8) sha256=9d716ff21c660a730cb4e8d41e2e2f0630a28167a354b6e2924e242102aef72c - kettle-drift (1.0.6) sha256=46eda08fa4411d1f3c6682a95eef1c9df4e94611b3949f49d4c7b43c0ed356a3 - kettle-jem (7.1.0) kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f kettle-soup-cover (3.0.4) kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa - kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 - markdown-merge (7.1.0) - markly (0.16.0) sha256=6f70d79e385b1efc9e171f74c81628826259039fe6c778e03c3924c71dac5511 - markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-aarch64-linux-gnu) sha256=1269fb644a6de405057a53dd5c762b1209b43ca7424f839454d3dbc677c31a8f nokogiri (1.19.4-aarch64-linux-musl) sha256=35c65b9ce72b3bb03207bdbe7067915019dc18c1b9b59139684bd6690fdd01af @@ -818,20 +502,15 @@ CHECKSUMS parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 - parslet-toml-merge (7.1.0) - plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 - prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 - psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 - rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb @@ -866,19 +545,15 @@ CHECKSUMS rubocop-rspec_rails (2.32.0) sha256=4a0d641c72f6ebb957534f539d9d0a62c47abd8ce0d0aeee1ef4701e892a9100 rubocop-ruby3_2 (3.0.7) sha256=f53dd6d286fb05186214fc6ec116783e7f837030918e8931c05de773e98f8466 rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 - ruby-merge (7.1.0) ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 - rust-merge (7.1.0) - service_actor (3.9.4) sha256=e63b523630b9a7e62959b2a90113b08d2565b5de9c148557b281ef847c9539ce silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed - smorg-rb (7.1.0) sorbet-runtime (0.6.13347) sha256=54e7221d9f4b63f58aec79f3043752a9ba7810347c6ae0d903531591cc2d5f01 standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b @@ -893,22 +568,17 @@ CHECKSUMS timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.5) sha256=b852f924287ffb58a440856e862b056c8ad97e74b4b2526cee43e0771f40c25c - toml (0.3.0) sha256=0a91d0f76a9036e84e44f95693b12f58d358c1df3ac8e3b5271f2056ecc6e4b9 - toml-merge (7.1.0) - toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-aarch64-linux) sha256=55ffc7c87868cb45658338363d9eba51b4a8b0259aa88e4de368d2bd1d52fea4 tree_sitter_language_pack (1.13.3-arm64-darwin) sha256=bc2498db605f212a1dbd2465ed3f65190d7da786f6ed5d30fcf958121aeb4a5c tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 - typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 webrick (1.9.2) sha256=beb4a15fc474defed24a3bda4ffd88a490d517c9e4e6118c3edce59e45864131 yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 - yaml-merge (7.1.0) yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd @@ -916,7 +586,6 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 - zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH diff --git a/gems/kettle-jem/Gemfile.lock b/gems/kettle-jem/Gemfile.lock index aa3021f07..1ceed13df 100644 --- a/gems/kettle-jem/Gemfile.lock +++ b/gems/kettle-jem/Gemfile.lock @@ -28,7 +28,7 @@ PATH yaml-merge (= 7.1.0) PATH - remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly specs: ast-crispr-markdown-markly (7.1.0) ast-crispr (= 7.1.0) @@ -36,7 +36,7 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism specs: ast-crispr-ruby-prism (7.1.0) ast-crispr (= 7.1.0) @@ -44,7 +44,7 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/ast-merge + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge specs: ast-merge (7.1.0) benchmark @@ -53,7 +53,7 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/bash-merge + remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge specs: bash-merge (7.1.0) ast-merge (= 7.1.0) @@ -61,7 +61,7 @@ PATH version_gem (~> 1.1, >= 1.1.14) PATH - remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge + remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge specs: citrus-toml-merge (7.1.0) toml-merge (= 7.1.0) @@ -69,7 +69,7 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge + remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge specs: commonmarker-merge (7.1.0) commonmarker (~> 2.2) @@ -77,7 +77,7 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge + remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge specs: dotenv-merge (7.1.0) ast-merge (= 7.1.0) @@ -85,7 +85,7 @@ PATH version_gem (~> 1.1, >= 1.1.14) PATH - remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/json-merge + remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge specs: json-merge (7.1.0) ast-merge (= 7.1.0) @@ -93,7 +93,7 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge + remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge specs: kramdown-merge (7.1.0) kramdown (~> 2.5) @@ -101,7 +101,7 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge + remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge specs: markdown-merge (7.1.0) ast-merge (= 7.1.0) @@ -109,7 +109,7 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/markly-merge + remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge specs: markly-merge (7.1.0) markdown-merge (= 7.1.0) @@ -117,7 +117,7 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/prism-merge + remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge specs: prism-merge (7.1.0) prism (~> 1.6) @@ -125,7 +125,7 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/psych-merge + remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge specs: psych-merge (7.1.0) ast-merge (= 7.1.0) @@ -134,7 +134,7 @@ PATH yaml-merge (= 7.1.0) PATH - remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge + remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge specs: rbs-merge (7.1.0) ast-merge (= 7.1.0) @@ -143,7 +143,7 @@ PATH version_gem (~> 1.1, >= 1.1.14) PATH - remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge specs: ruby-merge (7.1.0) ast-merge (= 7.1.0) @@ -151,7 +151,7 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/toml-merge + remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge specs: toml-merge (7.1.0) ast-merge (= 7.1.0) @@ -159,7 +159,7 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/tree_haver + remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver specs: tree_haver (7.1.0) citrus (~> 3.0) @@ -168,7 +168,7 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge + remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge specs: yaml-merge (7.1.0) ast-merge (= 7.1.0) @@ -266,8 +266,10 @@ GEM kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) + kettle-drift (1.0.6) + version_gem (~> 1.1, >= 1.1.14) kettle-rb (0.1.5) - kettle-soup-cover (3.0.4) + kettle-soup-cover (3.0.3) kettle-wash (~> 0.1, >= 0.1.0) simplecov (>= 1.0) simplecov-cobertura (>= 4.0) @@ -567,6 +569,7 @@ DEPENDENCIES gitmoji-regex (~> 2.0, >= 2.0.4) irb (~> 1.17) json-merge! + kettle-drift (~> 1.0, >= 1.0.6) kettle-jem! kettle-soup-cover (~> 3.0, >= 3.0.3) kettle-test (~> 2.0, >= 2.0.12) @@ -655,10 +658,11 @@ CHECKSUMS irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 json-merge (7.1.0) - kettle-dev (2.3.8) sha256=9d716ff21c660a730cb4e8d41e2e2f0630a28167a354b6e2924e242102aef72c + kettle-dev (2.3.8) + kettle-drift (1.0.6) kettle-jem (7.1.0) kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f - kettle-soup-cover (3.0.4) + kettle-soup-cover (3.0.3) kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa diff --git a/gems/kramdown-merge/Gemfile.lock b/gems/kramdown-merge/Gemfile.lock index e146710ba..1bbf8ab23 100644 --- a/gems/kramdown-merge/Gemfile.lock +++ b/gems/kramdown-merge/Gemfile.lock @@ -6,265 +6,6 @@ PATH markdown-merge (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly - specs: - ast-crispr-markdown-markly (7.1.0) - ast-crispr (= 7.1.0) - markly-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism - specs: - ast-crispr-ruby-prism (7.1.0) - ast-crispr (= 7.1.0) - prism-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr - specs: - ast-crispr (7.1.0) - ast-merge (= 7.1.0) - service_actor (~> 3.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git - specs: - ast-merge-git (7.1.0) - ast-merge (= 7.1.0) - json-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge - specs: - ast-merge (7.1.0) - benchmark - token-resolver (~> 2.0, >= 2.0.4) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template - specs: - ast-template (7.1.0) - ast-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge - specs: - bash-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge - specs: - binary-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge - specs: - citrus-toml-merge (7.1.0) - toml-merge (= 7.1.0) - toml-rb (~> 4.1) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge - specs: - commonmarker-merge (7.1.0) - commonmarker (~> 2.2) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge - specs: - dotenv-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge - specs: - go-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge - specs: - json-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem - specs: - kettle-jem (7.1.0) - addressable (>= 2.8, < 3) - ast-crispr-markdown-markly (= 7.1.0) - ast-crispr-ruby-prism (= 7.1.0) - ast-merge (= 7.1.0) - bash-merge (= 7.1.0) - citrus-toml-merge (= 7.1.0) - commonmarker-merge (= 7.1.0) - dotenv-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-dev (~> 2.3, >= 2.3.5) - kettle-rb (~> 0.1, >= 0.1.4) - kramdown-merge (= 7.1.0) - markdown-merge (= 7.1.0) - markly-merge (= 7.1.0) - prism-merge (= 7.1.0) - psych-merge (= 7.1.0) - rbs (>= 3.10) - rbs-merge (= 7.1.0) - ruby-merge (= 7.1.0) - token-resolver (~> 2.0, >= 2.0.4) - toml-merge (= 7.1.0) - toml-rb (~> 4.2) - tree_haver (= 7.1.0) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge - specs: - markdown-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge - specs: - markly-merge (7.1.0) - markdown-merge (= 7.1.0) - markly (~> 0.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge - specs: - parslet-toml-merge (7.1.0) - toml (~> 0.3) - toml-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge - specs: - plain-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge - specs: - prism-merge (7.1.0) - prism (~> 1.6) - ruby-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge - specs: - psych-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge - specs: - rbs-merge (7.1.0) - ast-merge (= 7.1.0) - rbs (>= 3.10) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge - specs: - ruby-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge - specs: - rust-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb - specs: - smorg-rb (7.1.0) - ast-merge (= 7.1.0) - ast-merge-git (= 7.1.0) - go-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-jem (= 7.1.0) - markly-merge (= 7.1.0) - plain-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge - specs: - toml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver - specs: - tree_haver (7.1.0) - citrus (~> 3.0) - parslet (~> 2.0) - tree_sitter_language_pack (>= 1.13.2, < 2.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge - specs: - typescript-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge - specs: - yaml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge - specs: - zip-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - GEM remote: https://gem.coop/ specs: @@ -280,6 +21,11 @@ GEM rubocop (>= 1.0) version_gem (~> 1.1, >= 1.1.14) ast (2.4.3) + ast-merge (7.1.0) + benchmark + token-resolver (~> 2.0, >= 2.0.4) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) backports (3.25.3) benchmark (0.5.0) bigdecimal (4.1.2) @@ -289,7 +35,6 @@ GEM cgi (0.5.2) citrus (3.0.2) cmdparse (3.0.7) - commonmarker (2.9.0-x86_64-linux) concurrent-ruby (1.3.8) date (3.5.1) debug (1.11.1) @@ -352,8 +97,6 @@ GEM kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) - kettle-drift (1.0.6) - version_gem (~> 1.1, >= 1.1.14) kettle-rb (0.1.5) kettle-soup-cover (3.0.4) kettle-wash (~> 0.1, >= 0.1.0) @@ -382,7 +125,10 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) - markly (0.16.0) + markdown-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) mutex_m (0.3.0) nokogiri (1.19.4-x86_64-linux-gnu) racc (~> 1.4) @@ -537,8 +283,6 @@ GEM ruby-progressbar (1.13.0) ruby_engine (2.0.3) ruby_version (1.0.3) - service_actor (3.9.4) - zeitwerk (>= 1.0) silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) @@ -593,11 +337,11 @@ GEM token-resolver (2.0.5) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.14) - toml (0.3.0) - parslet (>= 1.8.0, < 3.0.0) - toml-rb (4.2.0) - citrus (~> 3.0, > 3.0) - racc (~> 1.7) + tree_haver (7.1.0) + citrus (~> 3.0) + parslet (~> 2.0) + tree_sitter_language_pack (>= 1.13.2, < 2.0) + version_gem (~> 1.1, >= 1.1.9) tree_sitter_language_pack (1.13.3-x86_64-linux) sorbet-runtime (~> 0.5) tsort (0.2.0) @@ -643,45 +387,23 @@ DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) appraisal2-rubocop (~> 1.0, >= 1.0.0) - ast-crispr! - ast-crispr-markdown-markly! - ast-crispr-ruby-prism! - ast-merge! - ast-merge-git! - ast-template! - bash-merge! benchmark (~> 0.5, >= 0.5.0) - binary-merge! bundler-audit (~> 0.9.3) cgi (~> 0.5) - citrus-toml-merge! - commonmarker-merge! debug (>= 1.1) - dotenv-merge! erb (~> 6.0, >= 6.0.6) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.0) - go-merge! irb (~> 1.17) - json-merge! kettle-dev (~> 2.0, >= 2.2.25) - kettle-drift (~> 1.0, >= 1.0.6) - kettle-jem! kettle-soup-cover (~> 3.0, >= 3.0.3) kettle-test (~> 2.0, >= 2.0.9) kramdown-merge! kramdown-parser-gfm (~> 1.1) - markdown-merge! - markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) - parslet-toml-merge! - plain-merge! - prism-merge! - psych-merge! rake (~> 13.0) rbs (>= 3.0) - rbs-merge! rdoc (~> 6.11) reek (~> 6.5, >= 6.5.0) require_bench (~> 1.0, >= 1.0.4) @@ -692,27 +414,19 @@ DEPENDENCIES rubocop-on-rbs (~> 2.0, >= 2.0.0) rubocop-packaging (~> 0.6, >= 0.6.0) rubocop-ruby3_2 (~> 3.0, >= 3.0.6) - ruby-merge! ruby-progressbar (~> 1.13) - rust-merge! - smorg-rb! standard (~> 1.56, >= 1.56.0) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) - toml-merge! - tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) - typescript-merge! webrick (~> 1.9) yaml-converter (~> 0.2, >= 0.2.3) - yaml-merge! yard (~> 0.9, >= 0.9.45) yard-fence (~> 0.9, >= 0.9.6) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) yard-timekeeper (~> 0.2, >= 0.2.4) yard-yaml (~> 0.2, >= 0.2.3) - zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af @@ -720,31 +434,20 @@ CHECKSUMS appraisal2 (3.2.0) sha256=ccd0b767ac4060cd7af6d16747459b6990f49c39c7b4fb1f7d1146b1e97c492f appraisal2-rubocop (1.0.0) sha256=b71410fbb014befda5340605a605b7f6f3f012739baf0acc5b4351b592c3258d ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 - ast-crispr (7.1.0) - ast-crispr-markdown-markly (7.1.0) - ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) - ast-merge-git (7.1.0) - ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 - bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd - binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 - citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 - commonmarker (2.9.0-x86_64-linux) sha256=8cfe92970eef585a19ddf6613224b91cab64d6029834661bda801f877c9c7f43 - commonmarker-merge (7.1.0) concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 - dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -757,15 +460,11 @@ CHECKSUMS gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f - go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 - json-merge (7.1.0) kettle-dev (2.3.8) sha256=9d716ff21c660a730cb4e8d41e2e2f0630a28167a354b6e2924e242102aef72c - kettle-drift (1.0.6) sha256=46eda08fa4411d1f3c6682a95eef1c9df4e94611b3949f49d4c7b43c0ed356a3 - kettle-jem (7.1.0) kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f kettle-soup-cover (3.0.4) kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 @@ -777,8 +476,6 @@ CHECKSUMS lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 markdown-merge (7.1.0) - markly (0.16.0) sha256=6f70d79e385b1efc9e171f74c81628826259039fe6c778e03c3924c71dac5511 - markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-x86_64-linux-gnu) sha256=379fae440b28915e3f19d752ce2dcf8465ed2b2fbefd2a7ca0dd497bc981a06a nomono (1.0.9) @@ -788,20 +485,15 @@ CHECKSUMS parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 - parslet-toml-merge (7.1.0) - plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 - prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 - psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 - rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb @@ -836,19 +528,15 @@ CHECKSUMS rubocop-rspec_rails (2.32.0) sha256=4a0d641c72f6ebb957534f539d9d0a62c47abd8ce0d0aeee1ef4701e892a9100 rubocop-ruby3_2 (3.0.7) sha256=f53dd6d286fb05186214fc6ec116783e7f837030918e8931c05de773e98f8466 rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 - ruby-merge (7.1.0) ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 - rust-merge (7.1.0) - service_actor (3.9.4) sha256=e63b523630b9a7e62959b2a90113b08d2565b5de9c148557b281ef847c9539ce silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed - smorg-rb (7.1.0) sorbet-runtime (0.6.13347) sha256=54e7221d9f4b63f58aec79f3043752a9ba7810347c6ae0d903531591cc2d5f01 standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b @@ -863,20 +551,15 @@ CHECKSUMS timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.5) sha256=b852f924287ffb58a440856e862b056c8ad97e74b4b2526cee43e0771f40c25c - toml (0.3.0) sha256=0a91d0f76a9036e84e44f95693b12f58d358c1df3ac8e3b5271f2056ecc6e4b9 - toml-merge (7.1.0) - toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 - typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 webrick (1.9.2) sha256=beb4a15fc474defed24a3bda4ffd88a490d517c9e4e6118c3edce59e45864131 yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 - yaml-merge (7.1.0) yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd @@ -884,7 +567,6 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 - zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH diff --git a/gems/markdown-merge/Gemfile.lock b/gems/markdown-merge/Gemfile.lock index 82db2ab53..538f743a3 100644 --- a/gems/markdown-merge/Gemfile.lock +++ b/gems/markdown-merge/Gemfile.lock @@ -6,265 +6,6 @@ PATH tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly - specs: - ast-crispr-markdown-markly (7.1.0) - ast-crispr (= 7.1.0) - markly-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism - specs: - ast-crispr-ruby-prism (7.1.0) - ast-crispr (= 7.1.0) - prism-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr - specs: - ast-crispr (7.1.0) - ast-merge (= 7.1.0) - service_actor (~> 3.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git - specs: - ast-merge-git (7.1.0) - ast-merge (= 7.1.0) - json-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge - specs: - ast-merge (7.1.0) - benchmark - token-resolver (~> 2.0, >= 2.0.4) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template - specs: - ast-template (7.1.0) - ast-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge - specs: - bash-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge - specs: - binary-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge - specs: - citrus-toml-merge (7.1.0) - toml-merge (= 7.1.0) - toml-rb (~> 4.1) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge - specs: - commonmarker-merge (7.1.0) - commonmarker (~> 2.2) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge - specs: - dotenv-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge - specs: - go-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge - specs: - json-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem - specs: - kettle-jem (7.1.0) - addressable (>= 2.8, < 3) - ast-crispr-markdown-markly (= 7.1.0) - ast-crispr-ruby-prism (= 7.1.0) - ast-merge (= 7.1.0) - bash-merge (= 7.1.0) - citrus-toml-merge (= 7.1.0) - commonmarker-merge (= 7.1.0) - dotenv-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-dev (~> 2.3, >= 2.3.5) - kettle-rb (~> 0.1, >= 0.1.4) - kramdown-merge (= 7.1.0) - markdown-merge (= 7.1.0) - markly-merge (= 7.1.0) - prism-merge (= 7.1.0) - psych-merge (= 7.1.0) - rbs (>= 3.10) - rbs-merge (= 7.1.0) - ruby-merge (= 7.1.0) - token-resolver (~> 2.0, >= 2.0.4) - toml-merge (= 7.1.0) - toml-rb (~> 4.2) - tree_haver (= 7.1.0) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge - specs: - kramdown-merge (7.1.0) - kramdown (~> 2.5) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge - specs: - markly-merge (7.1.0) - markdown-merge (= 7.1.0) - markly (~> 0.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge - specs: - parslet-toml-merge (7.1.0) - toml (~> 0.3) - toml-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge - specs: - plain-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge - specs: - prism-merge (7.1.0) - prism (~> 1.6) - ruby-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge - specs: - psych-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge - specs: - rbs-merge (7.1.0) - ast-merge (= 7.1.0) - rbs (>= 3.10) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge - specs: - ruby-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge - specs: - rust-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb - specs: - smorg-rb (7.1.0) - ast-merge (= 7.1.0) - ast-merge-git (= 7.1.0) - go-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-jem (= 7.1.0) - markly-merge (= 7.1.0) - plain-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge - specs: - toml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver - specs: - tree_haver (7.1.0) - citrus (~> 3.0) - parslet (~> 2.0) - tree_sitter_language_pack (>= 1.13.2, < 2.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge - specs: - typescript-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge - specs: - yaml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge - specs: - zip-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - GEM remote: https://gem.coop/ specs: @@ -280,6 +21,11 @@ GEM rubocop (>= 1.0) version_gem (~> 1.1, >= 1.1.14) ast (2.4.3) + ast-merge (7.1.0) + benchmark + token-resolver (~> 2.0, >= 2.0.4) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) backports (3.25.3) benchmark (0.5.0) bigdecimal (4.1.2) @@ -289,11 +35,6 @@ GEM cgi (0.5.2) citrus (3.0.2) cmdparse (3.0.7) - commonmarker (2.9.0-aarch64-linux) - commonmarker (2.9.0-aarch64-linux-musl) - commonmarker (2.9.0-arm64-darwin) - commonmarker (2.9.0-x86_64-linux) - commonmarker (2.9.0-x86_64-linux-musl) concurrent-ruby (1.3.8) date (3.5.1) debug (1.11.1) @@ -356,8 +97,6 @@ GEM kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) - kettle-drift (1.0.6) - version_gem (~> 1.1, >= 1.1.14) kettle-rb (0.1.5) kettle-soup-cover (3.0.4) kettle-wash (~> 0.1, >= 0.1.0) @@ -386,7 +125,6 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) - markly (0.16.0) mutex_m (0.3.0) nokogiri (1.19.4-aarch64-linux-gnu) racc (~> 1.4) @@ -549,8 +287,6 @@ GEM ruby-progressbar (1.13.0) ruby_engine (2.0.3) ruby_version (1.0.3) - service_actor (3.9.4) - zeitwerk (>= 1.0) silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) @@ -605,11 +341,11 @@ GEM token-resolver (2.0.5) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.14) - toml (0.3.0) - parslet (>= 1.8.0, < 3.0.0) - toml-rb (4.2.0) - citrus (~> 3.0, > 3.0) - racc (~> 1.7) + tree_haver (7.1.0) + citrus (~> 3.0) + parslet (~> 2.0) + tree_sitter_language_pack (>= 1.13.2, < 2.0) + version_gem (~> 1.1, >= 1.1.9) tree_sitter_language_pack (1.13.3-aarch64-linux) sorbet-runtime (~> 0.5) tree_sitter_language_pack (1.13.3-arm64-darwin) @@ -664,46 +400,24 @@ DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) appraisal2-rubocop (~> 1.0, >= 1.0.0) - ast-crispr! - ast-crispr-markdown-markly! - ast-crispr-ruby-prism! - ast-merge! - ast-merge-git! - ast-template! - bash-merge! benchmark (~> 0.5, >= 0.5.0) - binary-merge! bundler-audit (~> 0.9.3) cgi (~> 0.5) - citrus-toml-merge! - commonmarker-merge! debug (>= 1.1) - dotenv-merge! erb (~> 6.0, >= 6.0.6) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.0) - go-merge! irb (~> 1.17) - json-merge! kettle-dev (~> 2.0, >= 2.2.25) - kettle-drift (~> 1.0, >= 1.0.6) - kettle-jem! kettle-soup-cover (~> 3.0, >= 3.0.3) kettle-test (~> 2.0, >= 2.0.9) kramdown (~> 2.5, >= 2.5.2) - kramdown-merge! kramdown-parser-gfm (~> 1.1) markdown-merge! - markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) - parslet-toml-merge! - plain-merge! - prism-merge! - psych-merge! rake (~> 13.0) rbs (>= 3.0) - rbs-merge! rdoc (~> 6.11) reek (~> 6.5, >= 6.5.0) require_bench (~> 1.0, >= 1.0.4) @@ -714,27 +428,19 @@ DEPENDENCIES rubocop-on-rbs (~> 2.0, >= 2.0.0) rubocop-packaging (~> 0.6, >= 0.6.0) rubocop-ruby3_2 (~> 3.0, >= 3.0.6) - ruby-merge! ruby-progressbar (~> 1.13) - rust-merge! - smorg-rb! standard (~> 1.56, >= 1.56.0) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) - toml-merge! - tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) - typescript-merge! webrick (~> 1.9) yaml-converter (~> 0.2, >= 0.2.3) - yaml-merge! yard (~> 0.9, >= 0.9.45) yard-fence (~> 0.9, >= 0.9.6) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) yard-timekeeper (~> 0.2, >= 0.2.4) yard-yaml (~> 0.2, >= 0.2.3) - zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af @@ -742,35 +448,20 @@ CHECKSUMS appraisal2 (3.2.0) sha256=ccd0b767ac4060cd7af6d16747459b6990f49c39c7b4fb1f7d1146b1e97c492f appraisal2-rubocop (1.0.0) sha256=b71410fbb014befda5340605a605b7f6f3f012739baf0acc5b4351b592c3258d ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 - ast-crispr (7.1.0) - ast-crispr-markdown-markly (7.1.0) - ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) - ast-merge-git (7.1.0) - ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 - bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd - binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 - citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 - commonmarker (2.9.0-aarch64-linux) sha256=e2b4aadb9a2cfa4e206582641ce3a49465549ac1ed4c289fdd63b78d8f24579c - commonmarker (2.9.0-aarch64-linux-musl) sha256=1cf4d2821f2a7e64945f1ed7c4eeced586fdb27ea7fe7337788802cf8f57cfca - commonmarker (2.9.0-arm64-darwin) sha256=1748dbfa4f5813b0d2a14bb4bbfa65a4ec293aa1c825016d60029ee0e132b046 - commonmarker (2.9.0-x86_64-linux) sha256=8cfe92970eef585a19ddf6613224b91cab64d6029834661bda801f877c9c7f43 - commonmarker (2.9.0-x86_64-linux-musl) sha256=293921398b839f79ceaf55010e061357e34f053822c3b003cd0be6686176335e - commonmarker-merge (7.1.0) concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 - dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -783,28 +474,21 @@ CHECKSUMS gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f - go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 - json-merge (7.1.0) kettle-dev (2.3.8) sha256=9d716ff21c660a730cb4e8d41e2e2f0630a28167a354b6e2924e242102aef72c - kettle-drift (1.0.6) sha256=46eda08fa4411d1f3c6682a95eef1c9df4e94611b3949f49d4c7b43c0ed356a3 - kettle-jem (7.1.0) kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f kettle-soup-cover (3.0.4) kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa - kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 markdown-merge (7.1.0) - markly (0.16.0) sha256=6f70d79e385b1efc9e171f74c81628826259039fe6c778e03c3924c71dac5511 - markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-aarch64-linux-gnu) sha256=1269fb644a6de405057a53dd5c762b1209b43ca7424f839454d3dbc677c31a8f nokogiri (1.19.4-aarch64-linux-musl) sha256=35c65b9ce72b3bb03207bdbe7067915019dc18c1b9b59139684bd6690fdd01af @@ -818,20 +502,15 @@ CHECKSUMS parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 - parslet-toml-merge (7.1.0) - plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 - prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 - psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 - rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb @@ -866,19 +545,15 @@ CHECKSUMS rubocop-rspec_rails (2.32.0) sha256=4a0d641c72f6ebb957534f539d9d0a62c47abd8ce0d0aeee1ef4701e892a9100 rubocop-ruby3_2 (3.0.7) sha256=f53dd6d286fb05186214fc6ec116783e7f837030918e8931c05de773e98f8466 rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 - ruby-merge (7.1.0) ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 - rust-merge (7.1.0) - service_actor (3.9.4) sha256=e63b523630b9a7e62959b2a90113b08d2565b5de9c148557b281ef847c9539ce silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed - smorg-rb (7.1.0) sorbet-runtime (0.6.13347) sha256=54e7221d9f4b63f58aec79f3043752a9ba7810347c6ae0d903531591cc2d5f01 standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b @@ -893,22 +568,17 @@ CHECKSUMS timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.5) sha256=b852f924287ffb58a440856e862b056c8ad97e74b4b2526cee43e0771f40c25c - toml (0.3.0) sha256=0a91d0f76a9036e84e44f95693b12f58d358c1df3ac8e3b5271f2056ecc6e4b9 - toml-merge (7.1.0) - toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-aarch64-linux) sha256=55ffc7c87868cb45658338363d9eba51b4a8b0259aa88e4de368d2bd1d52fea4 tree_sitter_language_pack (1.13.3-arm64-darwin) sha256=bc2498db605f212a1dbd2465ed3f65190d7da786f6ed5d30fcf958121aeb4a5c tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 - typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 webrick (1.9.2) sha256=beb4a15fc474defed24a3bda4ffd88a490d517c9e4e6118c3edce59e45864131 yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 - yaml-merge (7.1.0) yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd @@ -916,7 +586,6 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 - zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH diff --git a/gems/markly-merge/Gemfile.lock b/gems/markly-merge/Gemfile.lock index 3a0d7560d..1e614455a 100644 --- a/gems/markly-merge/Gemfile.lock +++ b/gems/markly-merge/Gemfile.lock @@ -6,265 +6,6 @@ PATH markly (~> 0.9) version_gem (~> 1.1, >= 1.1.9) -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly - specs: - ast-crispr-markdown-markly (7.1.0) - ast-crispr (= 7.1.0) - markly-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism - specs: - ast-crispr-ruby-prism (7.1.0) - ast-crispr (= 7.1.0) - prism-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr - specs: - ast-crispr (7.1.0) - ast-merge (= 7.1.0) - service_actor (~> 3.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git - specs: - ast-merge-git (7.1.0) - ast-merge (= 7.1.0) - json-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge - specs: - ast-merge (7.1.0) - benchmark - token-resolver (~> 2.0, >= 2.0.4) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template - specs: - ast-template (7.1.0) - ast-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge - specs: - bash-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge - specs: - binary-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge - specs: - citrus-toml-merge (7.1.0) - toml-merge (= 7.1.0) - toml-rb (~> 4.1) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge - specs: - commonmarker-merge (7.1.0) - commonmarker (~> 2.2) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge - specs: - dotenv-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge - specs: - go-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge - specs: - json-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem - specs: - kettle-jem (7.1.0) - addressable (>= 2.8, < 3) - ast-crispr-markdown-markly (= 7.1.0) - ast-crispr-ruby-prism (= 7.1.0) - ast-merge (= 7.1.0) - bash-merge (= 7.1.0) - citrus-toml-merge (= 7.1.0) - commonmarker-merge (= 7.1.0) - dotenv-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-dev (~> 2.3, >= 2.3.5) - kettle-rb (~> 0.1, >= 0.1.4) - kramdown-merge (= 7.1.0) - markdown-merge (= 7.1.0) - markly-merge (= 7.1.0) - prism-merge (= 7.1.0) - psych-merge (= 7.1.0) - rbs (>= 3.10) - rbs-merge (= 7.1.0) - ruby-merge (= 7.1.0) - token-resolver (~> 2.0, >= 2.0.4) - toml-merge (= 7.1.0) - toml-rb (~> 4.2) - tree_haver (= 7.1.0) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge - specs: - kramdown-merge (7.1.0) - kramdown (~> 2.5) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge - specs: - markdown-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge - specs: - parslet-toml-merge (7.1.0) - toml (~> 0.3) - toml-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge - specs: - plain-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge - specs: - prism-merge (7.1.0) - prism (~> 1.6) - ruby-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge - specs: - psych-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge - specs: - rbs-merge (7.1.0) - ast-merge (= 7.1.0) - rbs (>= 3.10) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge - specs: - ruby-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge - specs: - rust-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb - specs: - smorg-rb (7.1.0) - ast-merge (= 7.1.0) - ast-merge-git (= 7.1.0) - go-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-jem (= 7.1.0) - markly-merge (= 7.1.0) - plain-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge - specs: - toml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver - specs: - tree_haver (7.1.0) - citrus (~> 3.0) - parslet (~> 2.0) - tree_sitter_language_pack (>= 1.13.2, < 2.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge - specs: - typescript-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge - specs: - yaml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge - specs: - zip-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - GEM remote: https://gem.coop/ specs: @@ -280,6 +21,11 @@ GEM rubocop (>= 1.0) version_gem (~> 1.1, >= 1.1.14) ast (2.4.3) + ast-merge (7.1.0) + benchmark + token-resolver (~> 2.0, >= 2.0.4) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) backports (3.25.3) benchmark (0.5.0) bigdecimal (4.1.2) @@ -289,7 +35,6 @@ GEM cgi (0.5.2) citrus (3.0.2) cmdparse (3.0.7) - commonmarker (2.9.0-x86_64-linux) concurrent-ruby (1.3.8) date (3.5.1) debug (1.11.1) @@ -352,8 +97,6 @@ GEM kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) - kettle-drift (1.0.6) - version_gem (~> 1.1, >= 1.1.14) kettle-rb (0.1.5) kettle-soup-cover (3.0.4) kettle-wash (~> 0.1, >= 0.1.0) @@ -382,6 +125,10 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) + markdown-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) markly (0.16.0) mutex_m (0.3.0) nokogiri (1.19.4-x86_64-linux-gnu) @@ -537,8 +284,6 @@ GEM ruby-progressbar (1.13.0) ruby_engine (2.0.3) ruby_version (1.0.3) - service_actor (3.9.4) - zeitwerk (>= 1.0) silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) @@ -593,11 +338,11 @@ GEM token-resolver (2.0.5) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.14) - toml (0.3.0) - parslet (>= 1.8.0, < 3.0.0) - toml-rb (4.2.0) - citrus (~> 3.0, > 3.0) - racc (~> 1.7) + tree_haver (7.1.0) + citrus (~> 3.0) + parslet (~> 2.0) + tree_sitter_language_pack (>= 1.13.2, < 2.0) + version_gem (~> 1.1, >= 1.1.9) tree_sitter_language_pack (1.13.3-x86_64-linux) sorbet-runtime (~> 0.5) tsort (0.2.0) @@ -643,46 +388,24 @@ DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) appraisal2-rubocop (~> 1.0, >= 1.0.0) - ast-crispr! - ast-crispr-markdown-markly! - ast-crispr-ruby-prism! - ast-merge! - ast-merge-git! - ast-template! - bash-merge! benchmark (~> 0.5, >= 0.5.0) - binary-merge! bundler-audit (~> 0.9.3) cgi (~> 0.5) - citrus-toml-merge! - commonmarker-merge! debug (>= 1.1) - dotenv-merge! erb (~> 6.0, >= 6.0.6) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.0) - go-merge! irb (~> 1.17) - json-merge! kettle-dev (~> 2.0, >= 2.2.25) - kettle-drift (~> 1.0, >= 1.0.6) - kettle-jem! kettle-soup-cover (~> 3.0, >= 3.0.3) kettle-test (~> 2.0, >= 2.0.9) kramdown (~> 2.5, >= 2.5.2) - kramdown-merge! kramdown-parser-gfm (~> 1.1) - markdown-merge! markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) - parslet-toml-merge! - plain-merge! - prism-merge! - psych-merge! rake (~> 13.0) rbs (>= 3.0) - rbs-merge! rdoc (~> 6.11) reek (~> 6.5, >= 6.5.0) require_bench (~> 1.0, >= 1.0.4) @@ -693,27 +416,19 @@ DEPENDENCIES rubocop-on-rbs (~> 2.0, >= 2.0.0) rubocop-packaging (~> 0.6, >= 0.6.0) rubocop-ruby3_2 (~> 3.0, >= 3.0.6) - ruby-merge! ruby-progressbar (~> 1.13) - rust-merge! - smorg-rb! standard (~> 1.56, >= 1.56.0) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) - toml-merge! - tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) - typescript-merge! webrick (~> 1.9) yaml-converter (~> 0.2, >= 0.2.3) - yaml-merge! yard (~> 0.9, >= 0.9.45) yard-fence (~> 0.9, >= 0.9.6) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) yard-timekeeper (~> 0.2, >= 0.2.4) yard-yaml (~> 0.2, >= 0.2.3) - zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af @@ -721,31 +436,20 @@ CHECKSUMS appraisal2 (3.2.0) sha256=ccd0b767ac4060cd7af6d16747459b6990f49c39c7b4fb1f7d1146b1e97c492f appraisal2-rubocop (1.0.0) sha256=b71410fbb014befda5340605a605b7f6f3f012739baf0acc5b4351b592c3258d ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 - ast-crispr (7.1.0) - ast-crispr-markdown-markly (7.1.0) - ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) - ast-merge-git (7.1.0) - ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 - bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd - binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 - citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 - commonmarker (2.9.0-x86_64-linux) sha256=8cfe92970eef585a19ddf6613224b91cab64d6029834661bda801f877c9c7f43 - commonmarker-merge (7.1.0) concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 - dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -758,21 +462,16 @@ CHECKSUMS gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f - go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 - json-merge (7.1.0) kettle-dev (2.3.8) sha256=9d716ff21c660a730cb4e8d41e2e2f0630a28167a354b6e2924e242102aef72c - kettle-drift (1.0.6) sha256=46eda08fa4411d1f3c6682a95eef1c9df4e94611b3949f49d4c7b43c0ed356a3 - kettle-jem (7.1.0) kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f kettle-soup-cover (3.0.4) kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa - kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 @@ -789,20 +488,15 @@ CHECKSUMS parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 - parslet-toml-merge (7.1.0) - plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 - prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 - psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 - rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb @@ -837,19 +531,15 @@ CHECKSUMS rubocop-rspec_rails (2.32.0) sha256=4a0d641c72f6ebb957534f539d9d0a62c47abd8ce0d0aeee1ef4701e892a9100 rubocop-ruby3_2 (3.0.7) sha256=f53dd6d286fb05186214fc6ec116783e7f837030918e8931c05de773e98f8466 rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 - ruby-merge (7.1.0) ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 - rust-merge (7.1.0) - service_actor (3.9.4) sha256=e63b523630b9a7e62959b2a90113b08d2565b5de9c148557b281ef847c9539ce silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed - smorg-rb (7.1.0) sorbet-runtime (0.6.13347) sha256=54e7221d9f4b63f58aec79f3043752a9ba7810347c6ae0d903531591cc2d5f01 standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b @@ -864,20 +554,15 @@ CHECKSUMS timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.5) sha256=b852f924287ffb58a440856e862b056c8ad97e74b4b2526cee43e0771f40c25c - toml (0.3.0) sha256=0a91d0f76a9036e84e44f95693b12f58d358c1df3ac8e3b5271f2056ecc6e4b9 - toml-merge (7.1.0) - toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 - typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 webrick (1.9.2) sha256=beb4a15fc474defed24a3bda4ffd88a490d517c9e4e6118c3edce59e45864131 yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 - yaml-merge (7.1.0) yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd @@ -885,7 +570,6 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 - zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH diff --git a/gems/ruby-merge/.kettle-drift.lock b/gems/ruby-merge/.kettle-drift.lock index 43dfedd67..7cc6a5131 100644 --- a/gems/ruby-merge/.kettle-drift.lock +++ b/gems/ruby-merge/.kettle-drift.lock @@ -1,10 +1,74 @@ { + "(direct_sibling_local ||\nENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?)": [ + { + "file": "Gemfile", + "lines": [ + 80, + 120 + ] + } + ], + ".find { |spec| spec.name == 'nomono' }\nnomono_locked = nomono_locked_spec &&": [ + { + "file": "Gemfile", + "lines": [ + 91, + 131 + ] + } + ], + "ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?)\ndirect_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV')": [ + { + "file": "Gemfile", + "lines": [ + 81, + 121 + ] + } + ], + "Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version)\nnomono_activation_requirements = [\"= #{nomono_locked_spec.version}\"] if nomono_locked": [ + { + "file": "Gemfile", + "lines": [ + 93, + 133 + ] + } + ], + "Kernel.send(:gem, 'nomono', *nomono_activation_requirements)\nrequire 'nomono/bundler'": [ + { + "file": "Gemfile", + "lines": [ + 96, + 136 + ] + } + ], + "direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV')\ndirect_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil)": [ + { + "file": "Gemfile", + "lines": [ + 82, + 122 + ] + } + ], "eval_nomono_gems(\ngems: direct_sibling_gems,": [ { "file": "Gemfile", "lines": [ 60, - 100 + 100, + 140 + ] + } + ], + "gems: direct_sibling_gems,\nprefix: 'STRUCTUREDMERGE',": [ + { + "file": "Gemfile", + "lines": [ + 101, + 141 ] } ], @@ -13,7 +77,17 @@ "file": "Gemfile", "lines": [ 43, - 87 + 87, + 127 + ] + } + ], + "if direct_sibling_dev_was_set\nENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original": [ + { + "file": "Gemfile", + "lines": [ + 110, + 150 ] } ], @@ -22,7 +96,8 @@ "file": "Gemfile", "lines": [ 35, - 79 + 79, + 119 ] } ], @@ -31,7 +106,17 @@ "file": "Gemfile", "lines": [ 69, - 109 + 109, + 149 + ] + } + ], + "nomono_activation_requirements = nomono_requirements\nnomono_lockfile = File.expand_path('Gemfile.lock', __dir__)": [ + { + "file": "Gemfile", + "lines": [ + 85, + 125 ] } ], @@ -40,7 +125,8 @@ "file": "Gemfile", "lines": [ 48, - 92 + 92, + 132 ] } ], @@ -49,7 +135,53 @@ "file": "Gemfile", "lines": [ 44, - 88 + 88, + 128 + ] + } + ], + "nomono_lockfile = File.expand_path('Gemfile.lock', __dir__)\nif File.file?(nomono_lockfile)": [ + { + "file": "Gemfile", + "lines": [ + 86, + 126 + ] + } + ], + "path_env: 'STRUCTUREDMERGE_DEV',\nroot: %w[src my structuredmerge]": [ + { + "file": "Gemfile", + "lines": [ + 103, + 143 + ] + } + ], + "prefix: 'STRUCTUREDMERGE',\npath_env: 'STRUCTUREDMERGE_DEV',": [ + { + "file": "Gemfile", + "lines": [ + 102, + 142 + ] + } + ], + "require 'nomono/bundler'\nENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local": [ + { + "file": "Gemfile", + "lines": [ + 97, + 137 + ] + } + ], + "rescue LoadError\nwarn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.'": [ + { + "file": "Gemfile", + "lines": [ + 106, + 146 ] } ] diff --git a/gems/ruby-merge/.rubocop_gradual.lock b/gems/ruby-merge/.rubocop_gradual.lock deleted file mode 100644 index c2880230e..000000000 --- a/gems/ruby-merge/.rubocop_gradual.lock +++ /dev/null @@ -1,391 +0,0 @@ -{ - ".simplecov:3590623278": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "Rakefile:2768890125": [ - [18, 121, 17, "Layout/LineLength: Line is too long. [137/120]", 174264873], - [79, 3, 1023, "Metrics/BlockLength: Block has too many lines. [32/25]", 54868638], - [163, 121, 22, "Layout/LineLength: Line is too long. [142/120]", 1367093088], - [166, 121, 18, "Layout/LineLength: Line is too long. [138/120]", 3881946477] - ], - "gemfiles/modular/benchmark/r4/v0.5.gemfile:3644720371": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/benchmark/vHEAD.gemfile:2838879269": [ - [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/cgi/r4/v0.5.gemfile:367169322": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] - ], - "gemfiles/modular/cgi/vHEAD.gemfile:2729540777": [ - [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] - ], - "gemfiles/modular/erb/r2/v3.0.gemfile:1688285565": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] - ], - "gemfiles/modular/erb/r3/v5.0.gemfile:2394062339": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] - ], - "gemfiles/modular/erb/r4/v5.0.gemfile:2394062339": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] - ], - "gemfiles/modular/erb/vHEAD.gemfile:981929959": [ - [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/mutex_m/r2/v0.3.gemfile:4055275004": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/mutex_m/r3/v0.3.gemfile:4055275004": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/mutex_m/r4/v0.3.gemfile:4055275004": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/mutex_m/vHEAD.gemfile:556854763": [ - [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/rspec.gemfile:2263543889": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] - ], - "gemfiles/modular/stringio/r2/v3.0.gemfile:821604304": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/stringio/r3/v3.0.gemfile:821604304": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/stringio/r4/v3.0.gemfile:821604304": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/stringio/vHEAD.gemfile:1045839691": [ - [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/webrick/r4/v1.9.gemfile:3092661193": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] - ], - "gemfiles/modular/webrick/vHEAD.gemfile:3867684682": [ - [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] - ], - "gemfiles/modular/x_std_libs.gemfile:2324400122": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/x_std_libs/r2/libs.gemfile:36276542": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] - ], - "gemfiles/modular/x_std_libs/r3/libs.gemfile:4030570297": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] - ], - "gemfiles/modular/x_std_libs/r4/libs.gemfile:732451732": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] - ], - "gemfiles/modular/x_std_libs/vHEAD.gemfile:2390363993": [ - [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] - ], - "lib/ruby-merge.rb:2992445753": [ - [1, 1, 0, "Naming/FileName: The name of this source file (`ruby-merge.rb`) should use snake_case.", 5381] - ], - "lib/ruby/merge.rb:1254439043": [ - [21, 3, 12, "Style/Documentation: Missing top-level documentation comment for `module Ruby::Merge`.", 2866359175], - [21, 3, 115060, "Metrics/ModuleLength: Module has too many lines. [2589/100]", 3781535251], - [43, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 3061257365], - [119, 5, 912, "Metrics/MethodLength: Method has too many lines. [17/10]", 3288645431], - [163, 5, 2656, "Metrics/AbcSize: Assignment Branch Condition size for `ruby_method_move_detection` is too high. [<17, 40, 18> 47.04/17]", 3779436399], - [163, 5, 2656, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `ruby_method_move_detection` is too high. [16/7]", 3779436399], - [163, 5, 2656, "Metrics/MethodLength: Method has too many lines. [45/10]", 3779436399], - [163, 5, 2656, "Metrics/PerceivedComplexity: Perceived complexity for `ruby_method_move_detection` is too high. [16/8]", 3779436399], - [175, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 727785047], - [188, 121, 51, "Layout/LineLength: Line is too long. [171/120]", 3259664538], - [207, 9, 7, "Style/MultilineBlockChain: Avoid multi-line chains of blocks.", 4045560504], - [210, 9, 7, "Style/MultilineBlockChain: Avoid multi-line chains of blocks.", 4045560504], - [211, 121, 7, "Layout/LineLength: Line is too long. [127/120]", 1976354608], - [215, 5, 4531, "Metrics/AbcSize: Assignment Branch Condition size for `merge_ruby` is too high. [<31, 64, 24> 75.05/17]", 2749692967], - [215, 5, 4531, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `merge_ruby` is too high. [21/7]", 2749692967], - [215, 5, 4531, "Metrics/MethodLength: Method has too many lines. [86/10]", 2749692967], - [215, 5, 4531, "Metrics/PerceivedComplexity: Perceived complexity for `merge_ruby` is too high. [22/8]", 2749692967], - [277, 9, 7, "Style/MultilineBlockChain: Avoid multi-line chains of blocks.", 4045560504], - [316, 5, 1312, "Metrics/AbcSize: Assignment Branch Condition size for `ruby_delegated_child_operations` is too high. [<10, 15, 6> 19/17]", 2246428949], - [316, 5, 1312, "Metrics/MethodLength: Method has too many lines. [28/10]", 2246428949], - [362, 5, 861, "Metrics/AbcSize: Assignment Branch Condition size for `ruby_source_owner_identity_profile` is too high. [<5, 17, 2> 17.83/17]", 4129925341], - [362, 5, 861, "Metrics/MethodLength: Method has too many lines. [20/10]", 4129925341], - [385, 5, 2064, "Metrics/AbcSize: Assignment Branch Condition size for `ruby_source_owner_identity_matches` is too high. [<17, 31, 11> 37.03/17]", 2780319153], - [385, 5, 2064, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `ruby_source_owner_identity_matches` is too high. [11/7]", 2780319153], - [385, 5, 2064, "Metrics/MethodLength: Method has too many lines. [37/10]", 2780319153], - [385, 5, 2064, "Metrics/PerceivedComplexity: Perceived complexity for `ruby_source_owner_identity_matches` is too high. [11/8]", 2780319153], - [414, 9, 7, "Style/MultilineBlockChain: Avoid multi-line chains of blocks.", 4045560504], - [417, 9, 7, "Style/MultilineBlockChain: Avoid multi-line chains of blocks.", 4045560504], - [422, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 1001816794], - [428, 5, 1314, "Metrics/MethodLength: Method has too many lines. [28/10]", 4183124680], - [461, 5, 786, "Metrics/MethodLength: Method has too many lines. [24/10]", 3631640245], - [488, 5, 926, "Metrics/MethodLength: Method has too many lines. [18/10]", 4274646050], - [509, 5, 662, "Metrics/MethodLength: Method has too many lines. [15/10]", 2231086183], - [528, 5, 777, "Metrics/MethodLength: Method has too many lines. [18/10]", 895030114], - [549, 5, 727, "Metrics/MethodLength: Method has too many lines. [19/10]", 776483642], - [571, 5, 861, "Metrics/MethodLength: Method has too many lines. [29/10]", 537340961], - [603, 5, 655, "Metrics/MethodLength: Method has too many lines. [16/10]", 3756601977], - [622, 5, 1592, "Metrics/MethodLength: Method has too many lines. [25/10]", 3521052904], - [646, 121, 106, "Layout/LineLength: Line is too long. [226/120]", 2104286058], - [652, 5, 777, "Metrics/MethodLength: Method has too many lines. [14/10]", 2821246515], - [669, 5, 1429, "Metrics/MethodLength: Method has too many lines. [26/10]", 244346226], - [692, 121, 124, "Layout/LineLength: Line is too long. [244/120]", 13261232], - [698, 5, 1367, "Metrics/MethodLength: Method has too many lines. [41/10]", 3883814121], - [742, 5, 750, "Metrics/MethodLength: Method has too many lines. [22/10]", 764028624], - [768, 5, 1315, "Metrics/AbcSize: Assignment Branch Condition size for `ruby_silent_data_loss_validation_report` is too high. [<8, 14, 7> 17.58/17]", 2039399818], - [768, 5, 1315, "Metrics/MethodLength: Method has too many lines. [31/10]", 2039399818], - [803, 5, 724, "Metrics/MethodLength: Method has too many lines. [14/10]", 1741779676], - [814, 121, 67, "Layout/LineLength: Line is too long. [187/120]", 1996508131], - [820, 5, 752, "Metrics/MethodLength: Method has too many lines. [21/10]", 3870096101], - [844, 5, 1052, "Metrics/MethodLength: Method has too many lines. [32/10]", 119279638], - [896, 5, 536, "Metrics/MethodLength: Method has too many lines. [13/10]", 245509059], - [912, 5, 2252, "Metrics/AbcSize: Assignment Branch Condition size for `ruby_rename_detection` is too high. [<14, 32, 11> 36.62/17]", 2574664763], - [912, 5, 2252, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `ruby_rename_detection` is too high. [10/7]", 2574664763], - [912, 5, 2252, "Metrics/MethodLength: Method has too many lines. [46/10]", 2574664763], - [912, 5, 2252, "Metrics/PerceivedComplexity: Perceived complexity for `ruby_rename_detection` is too high. [11/8]", 2574664763], - [955, 121, 21, "Layout/LineLength: Line is too long. [141/120]", 4074688513], - [961, 9, 7, "Style/MultilineBlockChain: Avoid multi-line chains of blocks.", 4045560504], - [965, 5, 2254, "Metrics/AbcSize: Assignment Branch Condition size for `ruby_rename_plus_edit_conflicts` is too high. [<15, 30, 13> 35.97/17]", 3664513828], - [965, 5, 2254, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `ruby_rename_plus_edit_conflicts` is too high. [10/7]", 3664513828], - [965, 5, 2254, "Metrics/MethodLength: Method has too many lines. [45/10]", 3664513828], - [965, 5, 2254, "Metrics/PerceivedComplexity: Perceived complexity for `ruby_rename_plus_edit_conflicts` is too high. [11/8]", 3664513828], - [1017, 5, 1926, "Metrics/AbcSize: Assignment Branch Condition size for `ruby_cross_container_method_move_detection` is too high. [<8, 18, 7> 20.9/17]", 1401333972], - [1017, 5, 1926, "Metrics/MethodLength: Method has too many lines. [44/10]", 1401333972], - [1060, 121, 16, "Layout/LineLength: Line is too long. [136/120]", 3474944396], - [1067, 5, 1488, "Metrics/AbcSize: Assignment Branch Condition size for `apply_ruby_delegated_child_outputs` is too high. [<16, 39, 12> 43.83/17]", 842348215], - [1067, 5, 1488, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `apply_ruby_delegated_child_outputs` is too high. [12/7]", 842348215], - [1067, 5, 1488, "Metrics/MethodLength: Method has too many lines. [27/10]", 842348215], - [1067, 5, 1488, "Metrics/PerceivedComplexity: Perceived complexity for `apply_ruby_delegated_child_outputs` is too high. [13/8]", 842348215], - [1101, 5, 980, "Metrics/MethodLength: Method has too many lines. [23/10]", 1425119613], - [1128, 5, 1025, "Metrics/MethodLength: Method has too many lines. [23/10]", 2179557432], - [1156, 5, 757, "Metrics/MethodLength: Method has too many lines. [12/10]", 3975431355], - [1161, 121, 70, "Layout/LineLength: Line is too long. [190/120]", 1956194284], - [1173, 5, 745, "Metrics/MethodLength: Method has too many lines. [12/10]", 1051086033], - [1178, 121, 62, "Layout/LineLength: Line is too long. [182/120]", 1636990749], - [1190, 5, 670, "Metrics/MethodLength: Method has too many lines. [11/10]", 3552666292], - [1195, 121, 17, "Layout/LineLength: Line is too long. [137/120]", 3013228499], - [1206, 5, 678, "Metrics/MethodLength: Method has too many lines. [11/10]", 1356230953], - [1211, 121, 17, "Layout/LineLength: Line is too long. [137/120]", 3013228499], - [1222, 5, 2093, "Metrics/AbcSize: Assignment Branch Condition size for `analyze_ruby_document` is too high. [<21, 31, 12> 39.32/17]", 3298966582], - [1222, 5, 2093, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `analyze_ruby_document` is too high. [13/7]", 3298966582], - [1222, 5, 2093, "Metrics/MethodLength: Method has too many lines. [53/10]", 3298966582], - [1222, 5, 2093, "Metrics/PerceivedComplexity: Perceived complexity for `analyze_ruby_document` is too high. [13/8]", 3298966582], - [1228, 7, 1035, "Metrics/BlockLength: Block has too many lines. [27/25]", 2081528636], - [1297, 5, 427, "Metrics/AbcSize: Assignment Branch Condition size for `ruby_file_footer_text` is too high. [<5, 17, 8> 19.44/17]", 1703748308], - [1324, 5, 806, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `ruby_process_analysis_from_tree` is too high. [10/7]", 1109735749], - [1324, 5, 806, "Metrics/MethodLength: Method has too many lines. [19/10]", 1109735749], - [1374, 5, 533, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `ruby_import_item_from_begin_node` is too high. [8/7]", 582163830], - [1396, 5, 487, "Metrics/MethodLength: Method has too many lines. [12/10]", 3257507103], - [1413, 5, 583, "Metrics/MethodLength: Method has too many lines. [15/10]", 4108141408], - [1456, 5, 645, "Metrics/AbcSize: Assignment Branch Condition size for `ruby_import_span_for` is too high. [<6, 22, 9> 24.52/17]", 1779826452], - [1456, 5, 645, "Metrics/MethodLength: Method has too many lines. [12/10]", 1779826452], - [1508, 5, 1015, "Metrics/MethodLength: Method has too many lines. [16/10]", 1317835917], - [1514, 121, 173, "Layout/LineLength: Line is too long. [293/120]", 225499532], - [1541, 5, 518, "Metrics/AbcSize: Assignment Branch Condition size for `ruby_tslp_claimed_line_indexes` is too high. [<6, 19, 5> 20.54/17]", 1455439838], - [1553, 5, 432, "Metrics/AbcSize: Assignment Branch Condition size for `ruby_process_import_entries` is too high. [<3, 18, 2> 18.36/17]", 62712355], - [1566, 5, 443, "Metrics/MethodLength: Method has too many lines. [12/10]", 4230588206], - [1583, 5, 363, "Metrics/MethodLength: Method has too many lines. [11/10]", 3068065572], - [1644, 5, 1849, "Metrics/AbcSize: Assignment Branch Condition size for `legacy_collect_ruby_declaration_entries` is too high. [<24, 26, 13> 37.7/17]", 3187770326], - [1644, 5, 1849, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `legacy_collect_ruby_declaration_entries` is too high. [11/7]", 3187770326], - [1644, 5, 1849, "Metrics/MethodLength: Method has too many lines. [54/10]", 3187770326], - [1644, 5, 1849, "Metrics/PerceivedComplexity: Perceived complexity for `legacy_collect_ruby_declaration_entries` is too high. [11/8]", 3187770326], - [1691, 13, 76, "Metrics/BlockNesting: Avoid more than 3 levels of block nesting.", 1356567820], - [1727, 5, 396, "Metrics/MethodLength: Method has too many lines. [11/10]", 1239008881], - [1742, 5, 752, "Metrics/AbcSize: Assignment Branch Condition size for `ruby_process_declaration_entries` is too high. [<7, 17, 2> 18.49/17]", 2675999354], - [1742, 5, 752, "Metrics/MethodLength: Method has too many lines. [18/10]", 2675999354], - [1802, 5, 634, "Metrics/AbcSize: Assignment Branch Condition size for `ruby_top_level_process_structure_items` is too high. [<5, 32, 14> 35.28/17]", 1120707166], - [1802, 5, 634, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `ruby_top_level_process_structure_items` is too high. [11/7]", 1120707166], - [1802, 5, 634, "Metrics/MethodLength: Method has too many lines. [11/10]", 1120707166], - [1802, 5, 634, "Metrics/PerceivedComplexity: Perceived complexity for `ruby_top_level_process_structure_items` is too high. [11/8]", 1120707166], - [1814, 7, 11, "Style/MultilineBlockChain: Avoid multi-line chains of blocks.", 848344986], - [1821, 7, 9, "Style/MultilineBlockChain: Avoid multi-line chains of blocks.", 3648222389], - [1866, 5, 1284, "Metrics/AbcSize: Assignment Branch Condition size for `ruby_intra_owner_merge_plan` is too high. [<8, 24, 9> 26.85/17]", 2388567699], - [1866, 5, 1284, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `ruby_intra_owner_merge_plan` is too high. [9/7]", 2388567699], - [1866, 5, 1284, "Metrics/MethodLength: Method has too many lines. [22/10]", 2388567699], - [1866, 5, 1284, "Metrics/PerceivedComplexity: Perceived complexity for `ruby_intra_owner_merge_plan` is too high. [9/8]", 2388567699], - [1907, 5, 557, "Metrics/MethodLength: Method has too many lines. [11/10]", 3178341030], - [1965, 121, 62, "Layout/LineLength: Line is too long. [182/120]", 895013151], - [1970, 5, 593, "Metrics/MethodLength: Method has too many lines. [13/10]", 2850316611], - [1971, 121, 1, "Layout/LineLength: Line is too long. [121/120]", 177625], - [1988, 5, 609, "Metrics/MethodLength: Method has too many lines. [12/10]", 784855730], - [2003, 5, 695, "Metrics/MethodLength: Method has too many lines. [14/10]", 3942458504], - [2040, 5, 1114, "Metrics/AbcSize: Assignment Branch Condition size for `merge_declaration_hash_constants` is too high. [<11, 22, 6> 25.32/17]", 3861922947], - [2040, 5, 1114, "Metrics/MethodLength: Method has too many lines. [17/10]", 3861922947], - [2062, 5, 794, "Metrics/AbcSize: Assignment Branch Condition size for `merge_declaration_body_constants` is too high. [<9, 14, 6> 17.69/17]", 1882117166], - [2092, 5, 1138, "Metrics/AbcSize: Assignment Branch Condition size for `merge_array_constant_text` is too high. [<9, 18, 7> 21.31/17]", 1448081799], - [2092, 5, 1138, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `merge_array_constant_text` is too high. [8/7]", 1448081799], - [2092, 5, 1138, "Metrics/MethodLength: Method has too many lines. [15/10]", 1448081799], - [2098, 121, 3, "Layout/LineLength: Line is too long. [123/120]", 193434112], - [2105, 7, 8, "Style/MultilineBlockChain: Avoid multi-line chains of blocks.", 359846632], - [2112, 5, 774, "Metrics/AbcSize: Assignment Branch Condition size for `merge_percent_array_constant_text` is too high. [<8, 16, 7> 19.21/17]", 625509828], - [2112, 5, 774, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `merge_percent_array_constant_text` is too high. [8/7]", 625509828], - [2141, 5, 1060, "Metrics/AbcSize: Assignment Branch Condition size for `merge_multiline_array_constant_text` is too high. [<11, 23, 10> 27.39/17]", 2672751288], - [2141, 5, 1060, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `merge_multiline_array_constant_text` is too high. [11/7]", 2672751288], - [2141, 5, 1060, "Metrics/MethodLength: Method has too many lines. [13/10]", 2672751288], - [2141, 5, 1060, "Metrics/PerceivedComplexity: Perceived complexity for `merge_multiline_array_constant_text` is too high. [11/8]", 2672751288], - [2150, 7, 8, "Style/MultilineBlockChain: Avoid multi-line chains of blocks.", 359846632], - [2159, 5, 1605, "Metrics/AbcSize: Assignment Branch Condition size for `merge_declaration_body_methods` is too high. [<21, 28, 15> 38.08/17]", 2740924329], - [2159, 5, 1605, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `merge_declaration_body_methods` is too high. [14/7]", 2740924329], - [2159, 5, 1605, "Metrics/MethodLength: Method has too many lines. [29/10]", 2740924329], - [2159, 5, 1605, "Metrics/PerceivedComplexity: Perceived complexity for `merge_declaration_body_methods` is too high. [15/8]", 2740924329], - [2166, 7, 8, "Style/MultilineBlockChain: Avoid multi-line chains of blocks.", 359846632], - [2193, 5, 1076, "Metrics/AbcSize: Assignment Branch Condition size for `merge_nested_body_declarations` is too high. [<14, 24, 10> 29.53/17]", 1397199527], - [2193, 5, 1076, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `merge_nested_body_declarations` is too high. [11/7]", 1397199527], - [2193, 5, 1076, "Metrics/MethodLength: Method has too many lines. [14/10]", 1397199527], - [2193, 5, 1076, "Metrics/PerceivedComplexity: Perceived complexity for `merge_nested_body_declarations` is too high. [11/8]", 1397199527], - [2232, 5, 2710, "Metrics/AbcSize: Assignment Branch Condition size for `top_level_source_region_owners` is too high. [<24, 33, 13> 42.83/17]", 1909271685], - [2232, 5, 2710, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `top_level_source_region_owners` is too high. [11/7]", 1909271685], - [2232, 5, 2710, "Metrics/MethodLength: Method has too many lines. [68/10]", 1909271685], - [2232, 5, 2710, "Metrics/PerceivedComplexity: Perceived complexity for `top_level_source_region_owners` is too high. [11/8]", 1909271685], - [2275, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5861626], - [2290, 121, 28, "Layout/LineLength: Line is too long. [148/120]", 1695648499], - [2310, 5, 2285, "Metrics/AbcSize: Assignment Branch Condition size for `container_child_source_regions` is too high. [<23, 28, 11> 37.87/17]", 1586137568], - [2310, 5, 2285, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `container_child_source_regions` is too high. [10/7]", 1586137568], - [2310, 5, 2285, "Metrics/MethodLength: Method has too many lines. [60/10]", 1586137568], - [2310, 5, 2285, "Metrics/PerceivedComplexity: Perceived complexity for `container_child_source_regions` is too high. [10/8]", 1586137568], - [2388, 5, 30, "Style/Documentation: Missing top-level documentation comment for `class Ruby::Merge::RubyHashLiteralProjector`.", 2586933062], - [2388, 5, 5761, "Metrics/ClassLength: Class has too many lines. [144/100]", 3358513989], - [2421, 7, 617, "Metrics/MethodLength: Method has too many lines. [15/10]", 1617225783], - [2445, 7, 943, "Metrics/AbcSize: Assignment Branch Condition size for `project_hash_key` is too high. [<1, 18, 8> 19.72/17]", 3538404248], - [2445, 7, 943, "Metrics/MethodLength: Method has too many lines. [26/10]", 3538404248], - [2503, 7, 616, "Metrics/AbcSize: Assignment Branch Condition size for `trailing_comma?` is too high. [<3, 20, 6> 21.1/17]", 1517912413], - [2568, 5, 1202, "Metrics/AbcSize: Assignment Branch Condition size for `constant_hash_blocks` is too high. [<19, 25, 6> 31.97/17]", 399214756], - [2568, 5, 1202, "Metrics/MethodLength: Method has too many lines. [36/10]", 399214756], - [2609, 5, 727, "Metrics/AbcSize: Assignment Branch Condition size for `hash_assignment_finish_line` is too high. [<11, 7, 12> 17.72/17]", 1215874404], - [2609, 5, 727, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `hash_assignment_finish_line` is too high. [9/7]", 1215874404], - [2609, 5, 727, "Metrics/MethodLength: Method has too many lines. [26/10]", 1215874404], - [2609, 5, 727, "Metrics/PerceivedComplexity: Perceived complexity for `hash_assignment_finish_line` is too high. [11/8]", 1215874404], - [2639, 5, 2007, "Metrics/AbcSize: Assignment Branch Condition size for `direct_body_method_entries` is too high. [<28, 33, 13> 45.19/17]", 2589282610], - [2639, 5, 2007, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `direct_body_method_entries` is too high. [12/7]", 2589282610], - [2639, 5, 2007, "Metrics/MethodLength: Method has too many lines. [56/10]", 2589282610], - [2639, 5, 2007, "Metrics/PerceivedComplexity: Perceived complexity for `direct_body_method_entries` is too high. [12/8]", 2589282610], - [2704, 5, 1221, "Metrics/AbcSize: Assignment Branch Condition size for `direct_body_constant_entries` is too high. [<16, 34, 10> 38.88/17]", 1588885504], - [2704, 5, 1221, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `direct_body_constant_entries` is too high. [9/7]", 1588885504], - [2704, 5, 1221, "Metrics/MethodLength: Method has too many lines. [35/10]", 1588885504], - [2704, 5, 1221, "Metrics/PerceivedComplexity: Perceived complexity for `direct_body_constant_entries` is too high. [9/8]", 1588885504], - [2747, 5, 708, "Metrics/AbcSize: Assignment Branch Condition size for `split_ruby_array_elements` is too high. [<11, 12, 11> 19.65/17]", 1344003748], - [2747, 5, 708, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `split_ruby_array_elements` is too high. [9/7]", 1344003748], - [2747, 5, 708, "Metrics/MethodLength: Method has too many lines. [24/10]", 1344003748], - [2747, 5, 708, "Metrics/PerceivedComplexity: Perceived complexity for `split_ruby_array_elements` is too high. [11/8]", 1344003748], - [2791, 5, 977, "Metrics/AbcSize: Assignment Branch Condition size for `append_multiline_array_elements` is too high. [<12, 32, 9> 35.34/17]", 1316332112], - [2791, 5, 977, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `append_multiline_array_elements` is too high. [9/7]", 1316332112], - [2791, 5, 977, "Metrics/MethodLength: Method has too many lines. [16/10]", 1316332112], - [2791, 5, 977, "Metrics/PerceivedComplexity: Perceived complexity for `append_multiline_array_elements` is too high. [9/8]", 1316332112], - [2819, 5, 728, "Metrics/AbcSize: Assignment Branch Condition size for `array_assignment_finish_line` is too high. [<11, 7, 12> 17.72/17]", 1471354607], - [2819, 5, 728, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `array_assignment_finish_line` is too high. [9/7]", 1471354607], - [2819, 5, 728, "Metrics/MethodLength: Method has too many lines. [26/10]", 1471354607], - [2819, 5, 728, "Metrics/PerceivedComplexity: Perceived complexity for `array_assignment_finish_line` is too high. [11/8]", 1471354607], - [2855, 5, 1127, "Metrics/AbcSize: Assignment Branch Condition size for `direct_body_declaration_entries` is too high. [<14, 30, 7> 33.84/17]", 1223661118], - [2855, 5, 1127, "Metrics/MethodLength: Method has too many lines. [30/10]", 1223661118], - [2902, 5, 984, "Metrics/AbcSize: Assignment Branch Condition size for `insert_declaration_body_blocks` is too high. [<4, 23, 12> 26.25/17]", 159690081], - [2902, 5, 984, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `insert_declaration_body_blocks` is too high. [9/7]", 159690081], - [2902, 5, 984, "Metrics/MethodLength: Method has too many lines. [16/10]", 159690081], - [2902, 5, 984, "Metrics/PerceivedComplexity: Perceived complexity for `insert_declaration_body_blocks` is too high. [10/8]", 159690081], - [2947, 5, 1027, "Metrics/AbcSize: Assignment Branch Condition size for `merge_ruby_hash_literals` is too high. [<8, 30, 9> 32.33/17]", 2793745298], - [2947, 5, 1027, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `merge_ruby_hash_literals` is too high. [9/7]", 2793745298], - [2947, 5, 1027, "Metrics/MethodLength: Method has too many lines. [19/10]", 2793745298], - [2947, 5, 1027, "Metrics/PerceivedComplexity: Perceived complexity for `merge_ruby_hash_literals` is too high. [10/8]", 2793745298], - [2969, 5, 636, "Metrics/AbcSize: Assignment Branch Condition size for `render_ruby_hash_literal` is too high. [<5, 19, 6> 20.54/17]", 1834383244], - [3009, 5, 491, "Metrics/MethodLength: Method has too many lines. [11/10]", 1799924605], - [3042, 5, 1125, "Metrics/AbcSize: Assignment Branch Condition size for `surfaces_for_owner` is too high. [<6, 19, 3> 20.15/17]", 4036098594], - [3042, 5, 1125, "Metrics/MethodLength: Method has too many lines. [20/10]", 4036098594], - [3067, 5, 1126, "Metrics/AbcSize: Assignment Branch Condition size for `example_surfaces_for` is too high. [<4, 20, 2> 20.49/17]", 757808110], - [3067, 5, 1126, "Metrics/MethodLength: Method has too many lines. [21/10]", 757808110] - ], - "lib/ruby/merge/block_directive_detector.rb:315354690": [ - [10, 5, 6220, "Metrics/ClassLength: Class has too many lines. [161/100]", 3182117306], - [83, 7, 1085, "Metrics/AbcSize: Assignment Branch Condition size for `detect_freeze_spans` is too high. [<10, 18, 6> 21.45/17]", 3827147306], - [83, 7, 1085, "Metrics/MethodLength: Method has too many lines. [27/10]", 3827147306], - [117, 7, 1508, "Metrics/AbcSize: Assignment Branch Condition size for `detect_nocov_spans` is too high. [<10, 30, 10> 33.17/17]", 3750116369], - [117, 7, 1508, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `detect_nocov_spans` is too high. [9/7]", 3750116369], - [117, 7, 1508, "Metrics/MethodLength: Method has too many lines. [40/10]", 3750116369], - [117, 7, 1508, "Metrics/PerceivedComplexity: Perceived complexity for `detect_nocov_spans` is too high. [12/8]", 3750116369], - [125, 9, 1189, "Metrics/BlockLength: Block has too many lines. [30/25]", 431470454], - [165, 7, 921, "Metrics/AbcSize: Assignment Branch Condition size for `validate_no_crossing` is too high. [<8, 16, 8> 19.6/17]", 1072352384], - [165, 7, 921, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `validate_no_crossing` is too high. [8/7]", 1072352384], - [165, 7, 921, "Metrics/MethodLength: Method has too many lines. [19/10]", 1072352384], - [193, 121, 3, "Layout/LineLength: Line is too long. [123/120]", 193343749], - [194, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5860841] - ], - "lib/ruby/merge/doc_comment_support.rb:11585367": [ - [71, 7, 950, "Metrics/AbcSize: Assignment Branch Condition size for `example_blocks` is too high. [<8, 17, 8> 20.42/17]", 878231540], - [71, 7, 950, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `example_blocks` is too high. [8/7]", 878231540], - [71, 7, 950, "Metrics/MethodLength: Method has too many lines. [19/10]", 878231540] - ], - "lib/ruby/merge/gemspec_support.rb:672395758": [ - [5, 5, 21, "Style/Documentation: Missing top-level documentation comment for `module Ruby::Merge::GemspecSupport`.", 593910650] - ], - "lib/ruby/merge/magic_comment_support.rb:2193186223": [ - [26, 7, 1484, "Metrics/AbcSize: Assignment Branch Condition size for `comment_only_prefix_info` is too high. [<9, 38, 8> 39.86/17]", 1098666313], - [26, 7, 1484, "Metrics/MethodLength: Method has too many lines. [33/10]", 1098666313], - [69, 7, 693, "Metrics/AbcSize: Assignment Branch Condition size for `header_magic_comment_types_for_lines` is too high. [<10, 13, 9> 18.71/17]", 3693768719], - [69, 7, 693, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `header_magic_comment_types_for_lines` is too high. [8/7]", 3693768719], - [69, 7, 693, "Metrics/MethodLength: Method has too many lines. [16/10]", 3693768719], - [93, 7, 747, "Metrics/AbcSize: Assignment Branch Condition size for `prefix_comment_line_numbers_for_comments` is too high. [<10, 12, 7> 17.12/17]", 1181507516], - [93, 7, 747, "Metrics/MethodLength: Method has too many lines. [19/10]", 1181507516] - ], - "lib/ruby/merge/method_similarity.rb:3120642740": [ - [5, 5, 22, "Style/Documentation: Missing top-level documentation comment for `class Ruby::Merge::MethodSimilarity`.", 3784960433], - [23, 7, 493, "Metrics/AbcSize: Assignment Branch Condition size for `param_similarity` is too high. [<4, 19, 4> 19.82/17]", 1175888813], - [45, 7, 738, "Metrics/AbcSize: Assignment Branch Condition size for `levenshtein_distance` is too high. [<13, 29, 8> 32.77/17]", 1085087702], - [45, 7, 738, "Metrics/MethodLength: Method has too many lines. [20/10]", 1085087702] - ], - "lib/ruby/merge/nocov_node_base.rb:1713613866": [ - [23, 21, 84, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 3439911158], - [51, 7, 353, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `signature` is too high. [8/7]", 3442013923], - [51, 7, 353, "Metrics/PerceivedComplexity: Perceived complexity for `signature` is too high. [9/8]", 3442013923] - ], - "lib/ruby/merge/rescue_semantics.rb:2728370094": [ - [5, 5, 21, "Style/Documentation: Missing top-level documentation comment for `class Ruby::Merge::RescueSemantics`.", 4002082661], - [5, 5, 8140, "Metrics/ClassLength: Class has too many lines. [157/100]", 3302970297], - [10, 7, 812, "Metrics/AbcSize: Assignment Branch Condition size for `merge_ordered_clause_types` is too high. [<9, 17, 8> 20.83/17]", 391537814], - [10, 7, 812, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `merge_ordered_clause_types` is too high. [8/7]", 391537814], - [10, 7, 812, "Metrics/MethodLength: Method has too many lines. [16/10]", 391537814], - [10, 7, 812, "Metrics/PerceivedComplexity: Perceived complexity for `merge_ordered_clause_types` is too high. [9/8]", 391537814], - [33, 7, 1470, "Metrics/AbcSize: Assignment Branch Condition size for `canonicalize_rescue_clause_order` is too high. [<18, 28, 14> 36.11/17]", 570708009], - [33, 7, 1470, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `canonicalize_rescue_clause_order` is too high. [14/7]", 570708009], - [33, 7, 1470, "Metrics/MethodLength: Method has too many lines. [24/10]", 570708009], - [33, 7, 1470, "Metrics/PerceivedComplexity: Perceived complexity for `canonicalize_rescue_clause_order` is too high. [14/8]", 570708009], - [113, 7, 1080, "Metrics/AbcSize: Assignment Branch Condition size for `source_defined_exception_hierarchy` is too high. [<9, 20, 10> 24.1/17]", 3196945148], - [113, 7, 1080, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `source_defined_exception_hierarchy` is too high. [10/7]", 3196945148], - [113, 7, 1080, "Metrics/MethodLength: Method has too many lines. [15/10]", 3196945148], - [113, 7, 1080, "Metrics/PerceivedComplexity: Perceived complexity for `source_defined_exception_hierarchy` is too high. [11/8]", 3196945148], - [126, 121, 19, "Layout/LineLength: Line is too long. [139/120]", 1806710570] - ], - "lib/ruby/merge/scaffold_chunk_support.rb:640658628": [ - [5, 5, 27, "Style/Documentation: Missing top-level documentation comment for `module Ruby::Merge::ScaffoldChunkSupport`.", 2416541725] - ], - "lib/ruby/merge/signature_support.rb:1167161535": [ - [5, 5, 23, "Style/Documentation: Missing top-level documentation comment for `module Ruby::Merge::SignatureSupport`.", 2080470772] - ], - "ruby-merge.gemspec:503862341": [ - [128, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 2821357214], - [143, 121, 50, "Layout/LineLength: Line is too long. [170/120]", 3888612416], - [144, 121, 29, "Layout/LineLength: Line is too long. [149/120]", 981994949], - [151, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 4229808912] - ], - "spec/fixtures_integration_spec.rb:536012750": [ - [7, 1, 72608, "Metrics/BlockLength: Block has too many lines. [1673/25]", 1328376978], - [8, 3, 94, "Lint/ConstantDefinitionInBlock: Do not define constants this way within a block.", 4224869601], - [9, 3, 80, "Lint/ConstantDefinitionInBlock: Do not define constants this way within a block.", 3493759864], - [10, 3, 72, "Lint/ConstantDefinitionInBlock: Do not define constants this way within a block.", 218819604], - [11, 3, 83, "Lint/ConstantDefinitionInBlock: Do not define constants this way within a block.", 3957977039], - [125, 3, 1207, "Metrics/BlockLength: Block has too many lines. [27/25]", 2841005266], - [206, 3, 1550, "Metrics/BlockLength: Block has too many lines. [44/25]", 1381861178], - [257, 3, 1178, "Metrics/BlockLength: Block has too many lines. [28/25]", 2957209369], - [292, 3, 1209, "Metrics/BlockLength: Block has too many lines. [33/25]", 1745132505], - [332, 3, 61330, "Metrics/BlockLength: Block has too many lines. [1387/25]", 3444780370], - [728, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5859109], - [1812, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 3355833611], - [1819, 121, 18, "Layout/LineLength: Line is too long. [138/120]", 38619260] - ], - "spec/hash_literal_projector_spec.rb:2425567956": [ - [13, 41, 31, "Lint/PercentStringArray: Within `%w`/`%W`, quotes and ',' are unnecessary and may be unwanted in the resulting strings.", 3214960854] - ], - "spec/rescue_semantics_spec.rb:2518131257": [ - [5, 1, 2150, "Metrics/BlockLength: Block has too many lines. [59/25]", 163524539] - ] -} diff --git a/gems/ruby-merge/.simplecov b/gems/ruby-merge/.simplecov index 1245641cf..c03ad6c00 100644 --- a/gems/ruby-merge/.simplecov +++ b/gems/ruby-merge/.simplecov @@ -4,15 +4,11 @@ # ruby-merge will then preserve content between those markers across template runs. # kettle-jem:unfreeze -require 'kettle/soup/cover/config' - # Minimum coverage thresholds are set by kettle-soup-cover. # They are controlled by ENV variables loaded by `mise` from `mise.toml` # (with optional machine-local overrides in `.env.local`). # If the values for minimum coverage need to change, they should be changed both there, # and in 2 places in .github/workflows/coverage.yml. -SimpleCov.start do - track_files 'lib/**/*.rb' - track_files 'lib/**/*.rake' - track_files 'exe/*.rb' +SimpleCov.configure do + cover 'lib/**/*.rb', 'lib/**/*.rake', 'exe/*.rb' end diff --git a/gems/ruby-merge/Gemfile b/gems/ruby-merge/Gemfile index fce98c88b..a6390189a 100644 --- a/gems/ruby-merge/Gemfile +++ b/gems/ruby-merge/Gemfile @@ -112,6 +112,46 @@ if direct_sibling_gems.any? && end end +if direct_sibling_gems.any? && + (direct_sibling_local || + ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) + direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') + direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) + begin + nomono_activation_requirements = nomono_requirements + nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) + if File.file?(nomono_lockfile) + nomono_locked_spec = Bundler::LockfileParser + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } + nomono_locked = nomono_locked_spec && + Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked + end + Kernel.send(:gem, 'nomono', *nomono_activation_requirements) + require 'nomono/bundler' + ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local + + eval_nomono_gems( + gems: direct_sibling_gems, + prefix: 'STRUCTUREDMERGE', + path_env: 'STRUCTUREDMERGE_DEV', + root: %w[src my structuredmerge] + ) + rescue LoadError + warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' + ensure + if direct_sibling_templating && !direct_sibling_local + if direct_sibling_dev_was_set + ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original + else + ENV.delete('STRUCTUREDMERGE_DEV') + end + end + end +end + # Use released TSLP with the Ruby ABI platform-gem fix. gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' diff --git a/gems/ruby-merge/Gemfile.lock b/gems/ruby-merge/Gemfile.lock index 4f9f1b1b1..08d087e54 100644 --- a/gems/ruby-merge/Gemfile.lock +++ b/gems/ruby-merge/Gemfile.lock @@ -6,6 +6,24 @@ PATH tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge + specs: + ast-merge (7.1.0) + benchmark + token-resolver (~> 2.0, >= 2.0.4) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver + specs: + tree_haver (7.1.0) + citrus (~> 3.0) + parslet (~> 2.0) + tree_sitter_language_pack (>= 1.13.2, < 2.0) + version_gem (~> 1.1, >= 1.1.9) + GEM remote: https://gem.coop/ specs: @@ -21,11 +39,6 @@ GEM rubocop (>= 1.0) version_gem (~> 1.1, >= 1.1.14) ast (2.4.3) - ast-merge (7.1.0) - benchmark - token-resolver (~> 2.0, >= 2.0.4) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) backports (3.25.3) benchmark (0.5.0) bigdecimal (4.1.2) @@ -302,7 +315,7 @@ GEM simplecov (>= 0.4.1) simplecov_lcov_formatter (0.9.0) simplecov (>= 0.18) - sorbet-runtime (0.6.13347) + sorbet-runtime (0.6.13351) standard (1.56.0) language_server-protocol (~> 3.17.0.2) lint_roller (~> 1.0) @@ -341,11 +354,6 @@ GEM token-resolver (2.0.5) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.14) - tree_haver (7.1.0) - citrus (~> 3.0) - parslet (~> 2.0) - tree_sitter_language_pack (>= 1.13.2, < 2.0) - version_gem (~> 1.1, >= 1.1.9) tree_sitter_language_pack (1.13.3-aarch64-linux) sorbet-runtime (~> 0.5) tree_sitter_language_pack (1.13.3-arm64-darwin) @@ -400,6 +408,7 @@ DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) appraisal2-rubocop (~> 1.0, >= 1.0.0) + ast-merge! benchmark (~> 0.5, >= 0.5.0) bundler-audit (~> 0.9.3) cgi (~> 0.5) @@ -432,6 +441,7 @@ DEPENDENCIES standard (~> 1.56, >= 1.56.0) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) + tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) webrick (~> 1.9) yaml-converter (~> 0.2, >= 0.2.3) @@ -554,7 +564,7 @@ CHECKSUMS simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed - sorbet-runtime (0.6.13347) sha256=54e7221d9f4b63f58aec79f3043752a9ba7810347c6ae0d903531591cc2d5f01 + sorbet-runtime (0.6.13351) sha256=f8fee17c6e3edf835dc6823d26afb9a7c8969c6710d1fabe2fb43f4e0c15c64f standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b standard-performance (1.9.0) sha256=49483d31be448292951d80e5e67cdcb576c2502103c7b40aec6f1b6e9c88e3f2 diff --git a/gems/ruby-merge/spec/spec_helper.rb b/gems/ruby-merge/spec/spec_helper.rb index 1e52e49c2..e49956be9 100644 --- a/gems/ruby-merge/spec/spec_helper.rb +++ b/gems/ruby-merge/spec/spec_helper.rb @@ -8,7 +8,12 @@ # The rescue LoadError handles that scenario. begin require 'kettle-soup-cover' - require 'simplecov' if Kettle::Soup::Cover::DO_COV # `.simplecov` is run here! + if Kettle::Soup::Cover::DO_COV + # Requiring simplecov loads the project-local `.simplecov`. + require 'simplecov' + require 'kettle/soup/cover/config' + SimpleCov.start + end rescue LoadError => e # check the error message and re-raise when unexpected raise e unless e.message.include?('kettle') diff --git a/gems/smorg-rb/Gemfile.lock b/gems/smorg-rb/Gemfile.lock index 0f0539ea7..f73125264 100644 --- a/gems/smorg-rb/Gemfile.lock +++ b/gems/smorg-rb/Gemfile.lock @@ -4,6 +4,7 @@ PATH smorg-rb (7.1.0) ast-merge (= 7.1.0) ast-merge-git (= 7.1.0) + diff-lcs (~> 1.5) go-merge (= 7.1.0) json-merge (= 7.1.0) kettle-jem (= 7.1.0) @@ -169,7 +170,7 @@ GEM tree_haver (= 7.1.0) yaml-merge (= 7.1.0) kettle-rb (0.1.5) - kettle-soup-cover (3.0.4) + kettle-soup-cover (3.0.3) kettle-wash (~> 0.1, >= 0.1.0) simplecov (>= 1.0) simplecov-cobertura (>= 4.0) @@ -594,7 +595,7 @@ CHECKSUMS kettle-dev (2.3.8) sha256=9d716ff21c660a730cb4e8d41e2e2f0630a28167a354b6e2924e242102aef72c kettle-jem (7.1.0) kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f - kettle-soup-cover (3.0.4) + kettle-soup-cover (3.0.3) kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa diff --git a/gems/smorg-rb/lib/smorg/rb.rb b/gems/smorg-rb/lib/smorg/rb.rb index 23d947bdc..27b180f99 100644 --- a/gems/smorg-rb/lib/smorg/rb.rb +++ b/gems/smorg-rb/lib/smorg/rb.rb @@ -5,6 +5,8 @@ require 'go-merge' require 'ast/merge' require 'ast-merge-git' +require 'diff/lcs' +require 'diff/lcs/hunk' require 'json' require 'json-merge' require 'kettle/jem' @@ -20,6 +22,7 @@ module RB EXIT_UNRESOLVED_CONFLICT = 1 EXIT_USER_ERROR = 2 EXIT_INTERNAL_ERROR = 3 + REVIEW_DIFF_CONTEXT_LINES = 3 module_function @@ -554,19 +557,24 @@ def print_structured_diff_review_hunk(stdout, path_name, old_source, new_source) stdout.puts('review-diff unified') stdout.puts("--- a/#{path_name}") stdout.puts("+++ b/#{path_name}") - stdout.puts("@@ -1,#{old_lines.length} +1,#{new_lines.length} @@") - old_lines.each { |line| write_diff_line(stdout, '-', line) } - new_lines.each { |line| write_diff_line(stdout, '+', line) } + + file_length_difference = 0 + Diff::LCS.diff(old_lines, new_lines).each do |piece| + hunk = Diff::LCS::Hunk.new(old_lines, new_lines, piece, REVIEW_DIFF_CONTEXT_LINES, file_length_difference) + file_length_difference = hunk.file_length_difference + write_diff_text(stdout, hunk.diff(:unified)) + end end def diff_source_lines(source) source.to_s.lines.to_a end - def write_diff_line(stdout, prefix, line) - stdout.write(prefix) - stdout.write(line) - stdout.write("\n") unless line.end_with?("\n") + def write_diff_text(stdout, text) + return if text.to_s.empty? + + stdout.write(text) + stdout.write("\n") unless text.end_with?("\n") end def run_conflicts(args, stdout, stderr) diff --git a/gems/smorg-rb/smorg-rb.gemspec b/gems/smorg-rb/smorg-rb.gemspec index 36a72ea5e..5593a881f 100644 --- a/gems/smorg-rb/smorg-rb.gemspec +++ b/gems/smorg-rb/smorg-rb.gemspec @@ -102,6 +102,7 @@ Gem::Specification.new do |spec| spec.add_dependency 'kettle-jem', "= #{spec.version}" spec.add_dependency 'markly-merge', "= #{spec.version}" spec.add_dependency 'plain-merge', "= #{spec.version}" + spec.add_dependency('diff-lcs', '~> 1.5') spec.add_dependency('version_gem', '~> 1.1', '>= 1.1.9') # ruby >= 2.2.0 # NOTE: It is preferable to list development dependencies in the gemspec due to increased diff --git a/gems/smorg-rb/spec/cli_spec.rb b/gems/smorg-rb/spec/cli_spec.rb index b970f1021..004cfac3b 100644 --- a/gems/smorg-rb/spec/cli_spec.rb +++ b/gems/smorg-rb/spec/cli_spec.rb @@ -456,12 +456,34 @@ def run_git(dir, *args) expect(exit_code).to eq(described_class::EXIT_SUCCESS), stderr.string expect(stdout.string).to include('structured-diff package.json') expect(stdout.string).to include('review-diff unified') - expect(stdout.string).to include('@@ -1,1 +1,1 @@') + expect(stdout.string).to include('@@ -1 +1 @@') expect(stdout.string).to include('-{"old":true}') expect(stdout.string).to include('+{"new":true}') end end + it 'renders compact review hunks instead of whole-file replacements' do + old_source = (1..12).map { |index| "sentinel_#{index.to_s.rjust(2, '0')}\n" }.join + new_source = old_source.sub("sentinel_07\n", "changed_07\n") + old_path = write_file(@dir, 'old-source.rb', old_source) + new_path = write_file(@dir, 'new-source.rb', new_source) + stdout = StringIO.new + stderr = StringIO.new + + exit_code = described_class.run(['diff-driver', '--path-name', 'lib/example.rb', old_path, new_path], + stdout: stdout, stderr: stderr) + + expect(exit_code).to eq(described_class::EXIT_SUCCESS), stderr.string + expect(stdout.string).to include('structured-diff lib/example.rb') + expect(stdout.string).to include('review-diff unified') + expect(stdout.string).to include('@@ -4,7 +4,7 @@') + expect(stdout.string).to include('-sentinel_07') + expect(stdout.string).to include('+changed_07') + expect(stdout.string).not_to include('sentinel_01') + expect(stdout.string).not_to include('sentinel_12') + expect(stdout.string).not_to include('@@ -1,12 +1,12 @@') + end + it 'keeps no-ext-diff source review fragments in structured diff output' do source_pair = diff_driver_smoke_fixture.fetch('suite').fetch('real_source_pairs').first old_path = write_file(@dir, 'old-source.rb', source_pair.fetch('old_source')) diff --git a/gems/tree_haver/.rubocop_gradual.lock b/gems/tree_haver/.rubocop_gradual.lock deleted file mode 100644 index 78a0e7989..000000000 --- a/gems/tree_haver/.rubocop_gradual.lock +++ /dev/null @@ -1,500 +0,0 @@ -{ - ".simplecov:3575099246": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "Rakefile:1868927885": [ - [18, 121, 17, "Layout/LineLength: Line is too long. [137/120]", 174264873], - [79, 3, 1023, "Metrics/BlockLength: Block has too many lines. [32/25]", 54868638], - [163, 121, 22, "Layout/LineLength: Line is too long. [142/120]", 1367093088], - [166, 121, 18, "Layout/LineLength: Line is too long. [138/120]", 3881946477] - ], - "gemfiles/modular/benchmark/r4/v0.5.gemfile:3644720371": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/benchmark/vHEAD.gemfile:2838879269": [ - [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/cgi/r4/v0.5.gemfile:367169322": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] - ], - "gemfiles/modular/cgi/vHEAD.gemfile:2729540777": [ - [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] - ], - "gemfiles/modular/erb/r2/v3.0.gemfile:1688285565": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] - ], - "gemfiles/modular/erb/r3/v5.0.gemfile:2394062339": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] - ], - "gemfiles/modular/erb/r4/v5.0.gemfile:2394062339": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] - ], - "gemfiles/modular/erb/vHEAD.gemfile:981929959": [ - [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/mutex_m/r2/v0.3.gemfile:4055275004": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/mutex_m/r3/v0.3.gemfile:4055275004": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/mutex_m/r4/v0.3.gemfile:4055275004": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/mutex_m/vHEAD.gemfile:556854763": [ - [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/rspec.gemfile:2263543889": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] - ], - "gemfiles/modular/stringio/r2/v3.0.gemfile:821604304": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/stringio/r3/v3.0.gemfile:821604304": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/stringio/r4/v3.0.gemfile:821604304": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/stringio/vHEAD.gemfile:1045839691": [ - [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/webrick/r4/v1.9.gemfile:3092661193": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] - ], - "gemfiles/modular/webrick/vHEAD.gemfile:3867684682": [ - [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] - ], - "gemfiles/modular/x_std_libs.gemfile:2324400122": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/x_std_libs/r2/libs.gemfile:36276542": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] - ], - "gemfiles/modular/x_std_libs/r3/libs.gemfile:4030570297": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] - ], - "gemfiles/modular/x_std_libs/r4/libs.gemfile:732451732": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] - ], - "gemfiles/modular/x_std_libs/vHEAD.gemfile:2390363993": [ - [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] - ], - "lib/tree_haver.rb:312280314": [ - [49, 1, 16, "Style/Documentation: Missing top-level documentation comment for `module TreeHaver`.", 3627168465], - [49, 1, 17806, "Metrics/ModuleLength: Module has too many lines. [462/100]", 765750911], - [67, 3, 566, "Metrics/MethodLength: Method has too many lines. [12/10]", 1536513137], - [124, 3, 272, "Metrics/MethodLength: Method has too many lines. [11/10]", 505877912], - [156, 3, 543, "Metrics/MethodLength: Method has too many lines. [14/10]", 3733215372], - [221, 3, 458, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `backend_module` is too high. [9/7]", 73937708], - [221, 3, 458, "Metrics/MethodLength: Method has too many lines. [12/10]", 73937708], - [221, 3, 458, "Metrics/PerceivedComplexity: Perceived complexity for `backend_module` is too high. [9/8]", 73937708], - [257, 3, 1147, "Metrics/AbcSize: Assignment Branch Condition size for `register_language` is too high. [<0, 20, 10> 22.36/17]", 738075279], - [257, 3, 1147, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `register_language` is too high. [11/7]", 738075279], - [257, 3, 1147, "Metrics/MethodLength: Method has too many lines. [16/10]", 738075279], - [257, 3, 1147, "Metrics/PerceivedComplexity: Perceived complexity for `register_language` is too high. [11/8]", 738075279], - [257, 24, 165, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [9/5]", 2985413937], - [292, 3, 1969, "Metrics/AbcSize: Assignment Branch Condition size for `parser_for` is too high. [<14, 35, 18> 41.77/17]", 3351435495], - [292, 3, 1969, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `parser_for` is too high. [19/7]", 3351435495], - [292, 3, 1969, "Metrics/MethodLength: Method has too many lines. [39/10]", 3351435495], - [292, 3, 1969, "Metrics/PerceivedComplexity: Perceived complexity for `parser_for` is too high. [19/8]", 3351435495], - [292, 17, 155, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [8/5]", 1417642817], - [347, 3, 2089, "Metrics/MethodLength: Method has too many lines. [51/10]", 2791676388], - [401, 3, 704, "Metrics/AbcSize: Assignment Branch Condition size for `requested_backend_type` is too high. [<4, 17, 9> 19.65/17]", 3087691662], - [401, 3, 704, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `requested_backend_type` is too high. [8/7]", 3087691662], - [401, 3, 704, "Metrics/MethodLength: Method has too many lines. [14/10]", 3087691662], - [401, 3, 704, "Metrics/PerceivedComplexity: Perceived complexity for `requested_backend_type` is too high. [9/8]", 3087691662], - [453, 3, 696, "Metrics/MethodLength: Method has too many lines. [14/10]", 307274721], - [484, 3, 422, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `registered_backend_type_available?` is too high. [8/7]", 1544952013], - [554, 3, 489, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `backend_module_for` is too high. [10/7]", 3448932255], - [554, 3, 489, "Metrics/MethodLength: Method has too many lines. [22/10]", 3448932255] - ], - "lib/tree_haver/backend_api.rb:3354059061": [ - [30, 3, 12181, "Metrics/ModuleLength: Module has too many lines. [243/100]", 205645546], - [139, 5, 8882, "Metrics/ClassLength: Class has too many lines. [180/100]", 4281605197], - [145, 7, 1502, "Metrics/AbcSize: Assignment Branch Condition size for `validate` is too high. [<4, 22, 10> 24.49/17]", 747017743], - [145, 7, 1502, "Metrics/MethodLength: Method has too many lines. [31/10]", 747017743], - [145, 7, 1502, "Metrics/PerceivedComplexity: Perceived complexity for `validate` is too high. [11/8]", 747017743], - [213, 7, 903, "Metrics/MethodLength: Method has too many lines. [24/10]", 3041411230], - [261, 7, 1271, "Metrics/AbcSize: Assignment Branch Condition size for `validate_capabilities_hash` is too high. [<7, 27, 7> 28.76/17]", 3965262932], - [261, 7, 1271, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `validate_capabilities_hash` is too high. [8/7]", 3965262932], - [261, 7, 1271, "Metrics/MethodLength: Method has too many lines. [25/10]", 3965262932], - [277, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 2253399502], - [296, 7, 908, "Metrics/AbcSize: Assignment Branch Condition size for `validate_language` is too high. [<6, 17, 4> 18.47/17]", 733551867], - [315, 7, 797, "Metrics/AbcSize: Assignment Branch Condition size for `validate_parser` is too high. [<5, 16, 7> 18.17/17]", 1229041751], - [315, 7, 797, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `validate_parser` is too high. [8/7]", 1229041751], - [315, 7, 797, "Metrics/MethodLength: Method has too many lines. [15/10]", 1229041751], - [349, 7, 862, "Metrics/AbcSize: Assignment Branch Condition size for `validate_node_class` is too high. [<8, 18, 8> 21.26/17]", 1873188195], - [349, 7, 862, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `validate_node_class` is too high. [8/7]", 1873188195], - [349, 7, 862, "Metrics/MethodLength: Method has too many lines. [20/10]", 1873188195], - [349, 7, 862, "Metrics/PerceivedComplexity: Perceived complexity for `validate_node_class` is too high. [9/8]", 1873188195], - [375, 11, 20, "Naming/PredicatePrefix: Rename `has_method_or_alias?` to `method_or_alias?`.", 285116235] - ], - "lib/tree_haver/backend_context.rb:159197618": [ - [3, 1, 16, "Style/Documentation: Missing top-level documentation comment for `module TreeHaver`.", 3627168465] - ], - "lib/tree_haver/backend_registry.rb:4046212912": [ - [4, 3, 22, "Style/Documentation: Missing top-level documentation comment for `module TreeHaver::BackendRegistry`.", 733935278], - [4, 3, 5121, "Metrics/ModuleLength: Module has too many lines. [152/100]", 1483988260], - [39, 5, 382, "Metrics/MethodLength: Method has too many lines. [11/10]", 2000730238], - [48, 16, 1, "Style/DoubleNegation: Avoid the use of double negation (`!!`).", 177540], - [55, 5, 889, "Metrics/AbcSize: Assignment Branch Condition size for `register_tag` is too high. [<5, 20, 5> 21.21/17]", 2276764069], - [55, 5, 889, "Metrics/MethodLength: Method has too many lines. [18/10]", 2276764069], - [105, 5, 397, "Metrics/MethodLength: Method has too many lines. [11/10]", 4007185633] - ], - "lib/tree_haver/backends/citrus.rb:3181984499": [ - [40, 9, 449, "Metrics/MethodLength: Method has too many lines. [11/10]", 1138819533], - [173, 11, 1133, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `from_library` is too high. [11/7]", 2613019266], - [173, 11, 1133, "Metrics/MethodLength: Method has too many lines. [16/10]", 2613019266], - [173, 11, 1133, "Metrics/PerceivedComplexity: Perceived complexity for `from_library` is too high. [11/8]", 2613019266], - [230, 9, 597, "Metrics/MethodLength: Method has too many lines. [12/10]", 3923424594], - [403, 9, 810, "Metrics/AbcSize: Assignment Branch Condition size for `structural?` is too high. [<3, 19, 8> 20.83/17]", 3166173256], - [403, 9, 810, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `structural?` is too high. [9/7]", 3166173256], - [403, 9, 810, "Metrics/MethodLength: Method has too many lines. [12/10]", 3166173256], - [403, 9, 810, "Metrics/PerceivedComplexity: Perceived complexity for `structural?` is too high. [9/8]", 3166173256], - [436, 9, 1272, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `extract_type_from_event` is too high. [9/7]", 2022108773], - [436, 9, 1272, "Metrics/MethodLength: Method has too many lines. [16/10]", 2022108773], - [436, 9, 1272, "Metrics/PerceivedComplexity: Perceived complexity for `extract_type_from_event` is too high. [10/8]", 2022108773], - [460, 11, 207, "Style/CaseLikeIf: Convert `if-elsif` to `case-when`.", 1995588659], - [476, 61, 10, "Style/NumericPredicate: Use `offset.positive?` instead of `offset > 0`.", 2454414278] - ], - "lib/tree_haver/backends/ffi.rb:691415497": [ - [83, 9, 853, "Metrics/MethodLength: Method has too many lines. [15/10]", 1876257977], - [147, 7, 7352, "Metrics/ModuleLength: Module has too many lines. [111/100]", 4125377349], - [148, 9, 7320, "Metrics/ClassLength: Class has too many lines. [109/100]", 1130902814], - [183, 11, 559, "Metrics/MethodLength: Method has too many lines. [11/10]", 678018999], - [232, 11, 4265, "Metrics/AbcSize: Assignment Branch Condition size for `try_load!` is too high. [<11, 40, 10> 42.67/17]", 2312962113], - [232, 11, 4265, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `try_load!` is too high. [10/7]", 2312962113], - [232, 11, 4265, "Metrics/MethodLength: Method has too many lines. [58/10]", 2312962113], - [232, 11, 4265, "Metrics/PerceivedComplexity: Perceived complexity for `try_load!` is too high. [11/8]", 2312962113], - [260, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2086221887], - [262, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 2163360042], - [367, 9, 312, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `<=>` is too high. [8/7]", 2433292528], - [437, 11, 4377, "Metrics/AbcSize: Assignment Branch Condition size for `from_library` is too high. [<16, 30, 18> 38.47/17]", 3403850855], - [437, 11, 4377, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `from_library` is too high. [17/7]", 3403850855], - [437, 11, 4377, "Metrics/MethodLength: Method has too many lines. [43/10]", 3403850855], - [437, 11, 4377, "Metrics/PerceivedComplexity: Perceived complexity for `from_library` is too high. [19/8]", 3403850855], - [437, 47, 4, "Lint/UnusedMethodArgument: Unused method argument - `name`.", 2087876002], - [502, 121, 11, "Layout/LineLength: Line is too long. [131/120]", 2415433817], - [554, 9, 3159, "Metrics/AbcSize: Assignment Branch Condition size for `language=` is too high. [<4, 44, 11> 45.53/17]", 1815427493], - [554, 9, 3159, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `language=` is too high. [10/7]", 1815427493], - [554, 9, 3159, "Metrics/MethodLength: Method has too many lines. [40/10]", 1815427493], - [554, 9, 3159, "Metrics/PerceivedComplexity: Perceived complexity for `language=` is too high. [10/8]", 1815427493], - [715, 7, 10494, "Metrics/ClassLength: Class has too many lines. [129/100]", 3710916551], - [744, 45, 9, "Style/NumericPredicate: Use `index.negative?` instead of `index < 0`.", 4215255415], - [807, 13, 10, "Naming/PredicatePrefix: Rename `has_error?` to `error?`.", 946854183], - [889, 21, 9, "Style/NumericPredicate: Use `index.negative?` instead of `index < 0`.", 4215255415], - [933, 9, 694, "Metrics/AbcSize: Assignment Branch Condition size for `descendant_for_point_range` is too high. [<7, 21, 5> 22.69/17]", 979329510], - [953, 9, 706, "Metrics/AbcSize: Assignment Branch Condition size for `named_descendant_for_point_range` is too high. [<7, 21, 5> 22.69/17]", 2494446138] - ], - "lib/tree_haver/backends/java.rb:3360169733": [ - [134, 7, 815, "Metrics/AbcSize: Assignment Branch Condition size for `configure_native_library_path!` is too high. [<4, 17, 6> 18.47/17]", 1362415302], - [227, 121, 7, "Layout/LineLength: Line is too long. [127/120]", 3409700051], - [260, 7, 9885, "Metrics/ClassLength: Class has too many lines. [114/100]", 136252046], - [292, 9, 312, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `<=>` is too high. [8/7]", 2433292528], - [340, 11, 4098, "Metrics/AbcSize: Assignment Branch Condition size for `from_library` is too high. [<19, 32, 14> 39.76/17]", 3050250526], - [340, 11, 4098, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `from_library` is too high. [14/7]", 3050250526], - [340, 11, 4098, "Metrics/MethodLength: Method has too many lines. [48/10]", 3050250526], - [340, 11, 4098, "Metrics/PerceivedComplexity: Perceived complexity for `from_library` is too high. [16/8]", 3050250526], - [426, 11, 2084, "Metrics/AbcSize: Assignment Branch Condition size for `load_by_name` is too high. [<11, 17, 6> 21.12/17]", 226213748], - [426, 11, 2084, "Metrics/MethodLength: Method has too many lines. [35/10]", 226213748], - [542, 9, 1016, "Metrics/MethodLength: Method has too many lines. [17/10]", 4123264427], - [649, 9, 702, "Metrics/MethodLength: Method has too many lines. [14/10]", 1334016319], - [649, 17, 89, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 3152137646], - [728, 9, 583, "Metrics/MethodLength: Method has too many lines. [11/10]", 2457478600], - [816, 13, 10, "Naming/PredicatePrefix: Rename `has_error?` to `error?`.", 946854183] - ], - "lib/tree_haver/backends/mri.rb:863330290": [ - [59, 9, 916, "Metrics/MethodLength: Method has too many lines. [15/10]", 749971754], - [179, 9, 312, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `<=>` is too high. [8/7]", 2433292528], - [232, 11, 1562, "Metrics/MethodLength: Method has too many lines. [11/10]", 3858647816] - ], - "lib/tree_haver/backends/parslet.rb:4170691266": [ - [41, 9, 323, "Metrics/MethodLength: Method has too many lines. [11/10]", 694290592], - [108, 121, 3, "Layout/LineLength: Line is too long. [123/120]", 193340030], - [172, 11, 1133, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `from_library` is too high. [11/7]", 2613019266], - [172, 11, 1133, "Metrics/MethodLength: Method has too many lines. [16/10]", 2613019266], - [172, 11, 1133, "Metrics/PerceivedComplexity: Perceived complexity for `from_library` is too high. [11/8]", 2613019266], - [246, 9, 591, "Metrics/MethodLength: Method has too many lines. [12/10]", 3007454066], - [335, 7, 6287, "Metrics/ClassLength: Class has too many lines. [155/100]", 3100555518], - [362, 9, 452, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `start_byte` is too high. [8/7]", 2663206926], - [362, 9, 452, "Metrics/MethodLength: Method has too many lines. [12/10]", 2663206926], - [380, 9, 557, "Metrics/MethodLength: Method has too many lines. [12/10]", 2982914846], - [443, 9, 404, "Metrics/MethodLength: Method has too many lines. [11/10]", 1111982079], - [495, 61, 10, "Style/NumericPredicate: Use `offset.positive?` instead of `offset > 0`.", 2454414278], - [501, 9, 313, "Metrics/MethodLength: Method has too many lines. [13/10]", 1927903077], - [519, 9, 448, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `find_first_slice` is too high. [8/7]", 229178429], - [519, 9, 448, "Metrics/MethodLength: Method has too many lines. [16/10]", 229178429], - [524, 17, 11, "Style/HashEachMethods: Use `each_value` instead of `values.each`.", 236538172], - [539, 9, 461, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `find_last_slice` is too high. [8/7]", 3960808114], - [539, 9, 461, "Metrics/MethodLength: Method has too many lines. [16/10]", 3960808114] - ], - "lib/tree_haver/backends/prism.rb:265399087": [ - [39, 9, 448, "Metrics/MethodLength: Method has too many lines. [11/10]", 2383415890], - [70, 121, 13, "Layout/LineLength: Line is too long. [133/120]", 721867551], - [71, 9, 712, "Metrics/MethodLength: Method has too many lines. [12/10]", 1576927704], - [145, 41, 6, "Lint/UnusedMethodArgument: Unused method argument - `symbol`.", 2153517219], - [182, 9, 554, "Metrics/MethodLength: Method has too many lines. [16/10]", 3452414947], - [250, 13, 11, "Naming/PredicatePrefix: Rename `has_errors?` to `errors?`.", 1181419252], - [275, 69, 27, "Lint/HashCompareByIdentity: Use `Hash#compare_by_identity` instead of using `object_id` for keys.", 1979346241], - [301, 13, 64, "Lint/HashCompareByIdentity: Use `Hash#compare_by_identity` instead of using `object_id` for keys.", 1942915391], - [305, 9, 519, "Metrics/AbcSize: Assignment Branch Condition size for `classify_comment_hint` is too high. [<5, 20, 5> 21.21/17]", 869270335], - [485, 13, 10, "Naming/PredicatePrefix: Rename `has_error?` to `error?`.", 946854183], - [554, 24, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765] - ], - "lib/tree_haver/backends/psych.rb:1528613408": [ - [30, 9, 448, "Metrics/MethodLength: Method has too many lines. [11/10]", 2367418678], - [59, 9, 601, "Metrics/MethodLength: Method has too many lines. [11/10]", 2824278890], - [342, 9, 901, "Metrics/AbcSize: Assignment Branch Condition size for `extract_text_from_location` is too high. [<8, 23, 18> 30.28/17]", 1252700264], - [342, 9, 901, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `extract_text_from_location` is too high. [14/7]", 1252700264], - [342, 9, 901, "Metrics/MethodLength: Method has too many lines. [22/10]", 1252700264], - [342, 9, 901, "Metrics/PerceivedComplexity: Perceived complexity for `extract_text_from_location` is too high. [16/8]", 1252700264] - ], - "lib/tree_haver/backends/rust.rb:3784474048": [ - [52, 9, 548, "Metrics/MethodLength: Method has too many lines. [15/10]", 3791803966], - [156, 121, 1, "Layout/LineLength: Line is too long. [121/120]", 177548] - ], - "lib/tree_haver/backends/tslp.rb:3474467412": [ - [10, 5, 6880, "Metrics/ModuleLength: Module has too many lines. [116/100]", 335751325], - [33, 9, 663, "Metrics/MethodLength: Method has too many lines. [16/10]", 2812178140], - [112, 9, 652, "Metrics/MethodLength: Method has too many lines. [12/10]", 104646199], - [124, 35, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], - [145, 7, 14, "Style/Documentation: Missing top-level documentation comment for `class TreeHaver::Backends::Tslp::Language`.", 3674592793], - [157, 7, 12, "Style/Documentation: Missing top-level documentation comment for `class TreeHaver::Backends::Tslp::Parser`.", 2485220908], - [158, 9, 582, "Metrics/AbcSize: Assignment Branch Condition size for `parse` is too high. [<2, 17, 4> 17.58/17]", 103430155], - [180, 7, 10, "Style/Documentation: Missing top-level documentation comment for `class TreeHaver::Backends::Tslp::Tree`.", 3516465773], - [186, 7, 10, "Style/Documentation: Missing top-level documentation comment for `class TreeHaver::Backends::Tslp::Node`.", 3515419275], - [220, 13, 10, "Naming/PredicatePrefix: Rename `has_error?` to `error?`.", 946854183] - ], - "lib/tree_haver/base/comment.rb:699160654": [ - [10, 5, 8183, "Metrics/ClassLength: Class has too many lines. [152/100]", 4001235397] - ], - "lib/tree_haver/base/node.rb:586469776": [ - [36, 5, 7668, "Metrics/ClassLength: Class has too many lines. [156/100]", 171773185], - [162, 11, 10, "Naming/PredicatePrefix: Rename `has_error?` to `error?`.", 946854183], - [208, 27, 8, "Style/NumericPredicate: Use `cmp.zero?` instead of `cmp == 0`.", 736104011], - [239, 7, 888, "Metrics/AbcSize: Assignment Branch Condition size for `source_position` is too high. [<6, 20, 12> 24.08/17]", 3968023659], - [239, 7, 888, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `source_position` is too high. [9/7]", 3968023659], - [239, 7, 888, "Metrics/MethodLength: Method has too many lines. [28/10]", 3968023659], - [239, 7, 888, "Metrics/PerceivedComplexity: Perceived complexity for `source_position` is too high. [13/8]", 3968023659], - [306, 7, 355, "Metrics/MethodLength: Method has too many lines. [11/10]", 1012295608] - ], - "lib/tree_haver/base/tree.rb:3081630142": [ - [89, 15, 145, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 1155535733], - [103, 11, 10, "Naming/PredicatePrefix: Rename `has_error?` to `error?`.", 946854183] - ], - "lib/tree_haver/citrus_grammar_finder.rb:2540014236": [ - [31, 3, 7013, "Metrics/ClassLength: Class has too many lines. [102/100]", 245808593], - [66, 5, 3770, "Metrics/AbcSize: Assignment Branch Condition size for `available?` is too high. [<16, 52, 21> 58.32/17]", 3886463212], - [66, 5, 3770, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `available?` is too high. [22/7]", 3886463212], - [66, 5, 3770, "Metrics/MethodLength: Method has too many lines. [50/10]", 3886463212], - [66, 5, 3770, "Metrics/PerceivedComplexity: Perceived complexity for `available?` is too high. [22/8]", 3886463212], - [94, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5858894] - ], - "lib/tree_haver/contracts.rb:1571706604": [ - [3, 1, 16, "Style/Documentation: Missing top-level documentation comment for `module TreeHaver`.", 3627168465], - [3, 1, 28139, "Metrics/ModuleLength: Module has too many lines. [924/100]", 3701899480], - [91, 5, 732, "Metrics/AbcSize: Assignment Branch Condition size for `to_h` is too high. [<0, 18, 2> 18.11/17]", 3031678572], - [91, 5, 732, "Metrics/MethodLength: Method has too many lines. [17/10]", 3031678572], - [170, 5, 697, "Metrics/MethodLength: Method has too many lines. [18/10]", 389212725], - [231, 5, 507, "Metrics/MethodLength: Method has too many lines. [13/10]", 2631332781], - [329, 5, 580, "Metrics/MethodLength: Method has too many lines. [13/10]", 2166080747], - [558, 5, 558, "Metrics/AbcSize: Assignment Branch Condition size for `to_h` is too high. [<0, 17, 4> 17.46/17]", 2109105399], - [558, 5, 558, "Metrics/MethodLength: Method has too many lines. [18/10]", 2109105399], - [610, 3, 780, "Metrics/AbcSize: Assignment Branch Condition size for `library_path_errors` is too high. [<3, 20, 10> 22.56/17]", 1003454820], - [610, 3, 780, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `library_path_errors` is too high. [10/7]", 1003454820], - [610, 3, 780, "Metrics/MethodLength: Method has too many lines. [14/10]", 1003454820], - [610, 3, 780, "Metrics/PerceivedComplexity: Perceived complexity for `library_path_errors` is too high. [10/8]", 1003454820], - [652, 3, 686, "Metrics/MethodLength: Method has too many lines. [16/10]", 2530945134], - [674, 3, 483, "Metrics/MethodLength: Method has too many lines. [15/10]", 3654427448], - [693, 3, 511, "Metrics/MethodLength: Method has too many lines. [16/10]", 145071639], - [770, 5, 384, "Metrics/AbcSize: Assignment Branch Condition size for `to_h` is too high. [<0, 19, 6> 19.92/17]", 1287649270], - [841, 5, 449, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `to_h` is too high. [10/7]", 1722332092], - [841, 5, 449, "Metrics/PerceivedComplexity: Perceived complexity for `to_h` is too high. [10/8]", 1722332092], - [873, 121, 1, "Layout/LineLength: Line is too long. [121/120]", 177610], - [874, 5, 420, "Metrics/MethodLength: Method has too many lines. [12/10]", 722580369], - [914, 42, 8, "Lint/StructNewOverride: `:entries` member overrides `Struct#entries` and it may be unexpected.", 999966509], - [937, 3, 473, "Metrics/MethodLength: Method has too many lines. [18/10]", 1284459726], - [958, 3, 655, "Metrics/AbcSize: Assignment Branch Condition size for `byte_offset_for_point` is too high. [<7, 25, 14> 29.5/17]", 1278853347], - [958, 3, 655, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `byte_offset_for_point` is too high. [9/7]", 1278853347], - [958, 3, 655, "Metrics/MethodLength: Method has too many lines. [17/10]", 1278853347], - [958, 3, 655, "Metrics/PerceivedComplexity: Perceived complexity for `byte_offset_for_point` is too high. [10/8]", 1278853347] - ], - "lib/tree_haver/grammar_finder.rb:262426767": [ - [55, 3, 13737, "Metrics/ClassLength: Class has too many lines. [201/100]", 842233610], - [155, 5, 1710, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `find_library_path` is too high. [8/7]", 4164717952], - [155, 5, 1710, "Metrics/MethodLength: Method has too many lines. [25/10]", 4164717952], - [269, 7, 845, "Metrics/MethodLength: Method has too many lines. [12/10]", 916567473], - [315, 5, 577, "Metrics/MethodLength: Method has too many lines. [16/10]", 651056353], - [340, 5, 623, "Metrics/MethodLength: Method has too many lines. [14/10]", 1438381615], - [360, 5, 846, "Metrics/MethodLength: Method has too many lines. [12/10]", 667615068], - [398, 5, 730, "Metrics/MethodLength: Method has too many lines. [13/10]", 927307656] - ], - "lib/tree_haver/kaitai_backend.rb:335397596": [ - [3, 1, 16, "Style/Documentation: Missing top-level documentation comment for `module TreeHaver`.", 3627168465] - ], - "lib/tree_haver/language.rb:2775049278": [ - [39, 3, 12087, "Metrics/ModuleLength: Module has too many lines. [115/100]", 221887443], - [40, 5, 12061, "Metrics/ClassLength: Class has too many lines. [113/100]", 309443185], - [89, 7, 1966, "Metrics/AbcSize: Assignment Branch Condition size for `from_library` is too high. [<4, 20, 10> 22.72/17]", 980659500], - [89, 7, 1966, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `from_library` is too high. [9/7]", 980659500], - [89, 7, 1966, "Metrics/MethodLength: Method has too many lines. [31/10]", 980659500], - [89, 7, 1966, "Metrics/PerceivedComplexity: Perceived complexity for `from_library` is too high. [11/8]", 980659500], - [114, 121, 1, "Layout/LineLength: Line is too long. [121/120]", 177538], - [156, 7, 4289, "Metrics/AbcSize: Assignment Branch Condition size for `method_missing` is too high. [<10, 39, 30> 50.21/17]", 1314689525], - [156, 7, 4289, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `method_missing` is too high. [24/7]", 1314689525], - [156, 7, 4289, "Metrics/MethodLength: Method has too many lines. [56/10]", 1314689525], - [156, 7, 4289, "Metrics/PerceivedComplexity: Perceived complexity for `method_missing` is too high. [26/8]", 1314689525], - [274, 7, 786, "Metrics/MethodLength: Method has too many lines. [12/10]", 3697766033] - ], - "lib/tree_haver/language_pack.rb:3024861237": [ - [3, 1, 16, "Style/Documentation: Missing top-level documentation comment for `module TreeHaver`.", 3627168465] - ], - "lib/tree_haver/language_registry.rb:3137013690": [ - [83, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5861089], - [111, 5, 834, "Metrics/AbcSize: Assignment Branch Condition size for `with_registration` is too high. [<11, 22, 5> 25.1/17]", 1103319853], - [111, 5, 834, "Metrics/MethodLength: Method has too many lines. [25/10]", 1103319853] - ], - "lib/tree_haver/library_path_utils.rb:1552423902": [ - [32, 5, 861, "Metrics/MethodLength: Method has too many lines. [12/10]", 1638068630] - ], - "lib/tree_haver/node.rb:715762930": [ - [62, 3, 16601, "Metrics/ClassLength: Class has too many lines. [237/100]", 2290466920], - [136, 5, 708, "Metrics/AbcSize: Assignment Branch Condition size for `start_point` is too high. [<2, 19, 7> 20.35/17]", 2066418249], - [136, 5, 708, "Metrics/MethodLength: Method has too many lines. [17/10]", 2066418249], - [161, 5, 694, "Metrics/AbcSize: Assignment Branch Condition size for `end_point` is too high. [<2, 19, 7> 20.35/17]", 2127773446], - [161, 5, 694, "Metrics/MethodLength: Method has too many lines. [17/10]", 2127773446], - [232, 5, 948, "Metrics/AbcSize: Assignment Branch Condition size for `text` is too high. [<1, 14, 11> 17.83/17]", 748349201], - [232, 5, 948, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `text` is too high. [9/7]", 748349201], - [232, 5, 948, "Metrics/MethodLength: Method has too many lines. [16/10]", 748349201], - [232, 5, 948, "Metrics/PerceivedComplexity: Perceived complexity for `text` is too high. [11/8]", 748349201], - [259, 9, 10, "Naming/PredicatePrefix: Rename `has_error?` to `error?`.", 946854183], - [328, 5, 994, "Metrics/AbcSize: Assignment Branch Condition size for `named_child` is too high. [<6, 13, 10> 17.46/17]", 3449163117], - [328, 5, 994, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `named_child` is too high. [9/7]", 3449163117], - [328, 5, 994, "Metrics/MethodLength: Method has too many lines. [21/10]", 3449163117], - [328, 5, 994, "Metrics/PerceivedComplexity: Perceived complexity for `named_child` is too high. [10/8]", 3449163117], - [366, 5, 734, "Metrics/MethodLength: Method has too many lines. [15/10]", 3099919150], - [425, 7, 4, "Style/EmptyElse: Redundant `else`-clause.", 2087423834] - ], - "lib/tree_haver/parser.rb:1959976510": [ - [71, 3, 15231, "Metrics/ClassLength: Class has too many lines. [181/100]", 2262931609], - [84, 5, 938, "Metrics/MethodLength: Method has too many lines. [13/10]", 569209133], - [116, 5, 844, "Metrics/MethodLength: Method has too many lines. [11/10]", 3700471369], - [141, 5, 583, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `backend` is too high. [9/7]", 942469984], - [141, 5, 583, "Metrics/MethodLength: Method has too many lines. [20/10]", 942469984], - [237, 5, 1114, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `parse_string` is too high. [8/7]", 2146281390], - [237, 5, 1114, "Metrics/MethodLength: Method has too many lines. [16/10]", 2146281390], - [237, 5, 1114, "Metrics/PerceivedComplexity: Perceived complexity for `parse_string` is too high. [10/8]", 2146281390], - [273, 5, 1162, "Metrics/AbcSize: Assignment Branch Condition size for `switch_backend_for_language` is too high. [<10, 11, 11> 18.49/17]", 3918477333], - [273, 5, 1162, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `switch_backend_for_language` is too high. [11/7]", 3918477333], - [273, 5, 1162, "Metrics/MethodLength: Method has too many lines. [26/10]", 3918477333], - [273, 5, 1162, "Metrics/PerceivedComplexity: Perceived complexity for `switch_backend_for_language` is too high. [9/8]", 3918477333], - [320, 5, 3598, "Metrics/AbcSize: Assignment Branch Condition size for `unwrap_language` is too high. [<4, 32, 32> 45.43/17]", 2683894777], - [320, 5, 3598, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `unwrap_language` is too high. [29/7]", 2683894777], - [320, 5, 3598, "Metrics/MethodLength: Method has too many lines. [55/10]", 2683894777], - [320, 5, 3598, "Metrics/PerceivedComplexity: Perceived complexity for `unwrap_language` is too high. [23/8]", 2683894777], - [414, 5, 892, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `try_reload_language_for_backend` is too high. [9/7]", 1872419716], - [414, 5, 892, "Metrics/MethodLength: Method has too many lines. [14/10]", 1872419716], - [414, 5, 892, "Metrics/PerceivedComplexity: Perceived complexity for `try_reload_language_for_backend` is too high. [9/8]", 1872419716] - ], - "lib/tree_haver/parslet_grammar_finder.rb:756779364": [ - [32, 3, 6418, "Metrics/ClassLength: Class has too many lines. [105/100]", 2916347470], - [67, 5, 2630, "Metrics/AbcSize: Assignment Branch Condition size for `available?` is too high. [<14, 39, 19> 45.59/17]", 1827795944], - [67, 5, 2630, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `available?` is too high. [20/7]", 1827795944], - [67, 5, 2630, "Metrics/MethodLength: Method has too many lines. [43/10]", 1827795944], - [67, 5, 2630, "Metrics/PerceivedComplexity: Perceived complexity for `available?` is too high. [20/8]", 1827795944] - ], - "lib/tree_haver/path_validator.rb:1827441298": [ - [31, 3, 11571, "Metrics/ModuleLength: Module has too many lines. [133/100]", 3916793077], - [71, 5, 1048, "Metrics/AbcSize: Assignment Branch Condition size for `trusted_directories` is too high. [<4, 16, 5> 17.23/17]", 2683168069], - [71, 5, 1048, "Metrics/MethodLength: Method has too many lines. [13/10]", 2683168069], - [182, 5, 1000, "Metrics/AbcSize: Assignment Branch Condition size for `safe_library_path?` is too high. [<1, 15, 15> 21.24/17]", 3331427816], - [182, 5, 1000, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `safe_library_path?` is too high. [15/7]", 3331427816], - [182, 5, 1000, "Metrics/MethodLength: Method has too many lines. [11/10]", 3331427816], - [182, 5, 1000, "Metrics/PerceivedComplexity: Perceived complexity for `safe_library_path?` is too high. [15/8]", 3331427816], - [314, 5, 911, "Metrics/AbcSize: Assignment Branch Condition size for `validation_errors` is too high. [<2, 21, 13> 24.78/17]", 1249065882], - [314, 5, 911, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `validation_errors` is too high. [13/7]", 1249065882], - [314, 5, 911, "Metrics/MethodLength: Method has too many lines. [14/10]", 1249065882], - [314, 5, 911, "Metrics/PerceivedComplexity: Perceived complexity for `validation_errors` is too high. [13/8]", 1249065882], - [345, 9, 20, "Naming/PredicatePrefix: Rename `has_valid_extension?` to `valid_extension?`.", 2041908655] - ], - "lib/tree_haver/peg_backends.rb:2882446693": [ - [3, 1, 16, "Style/Documentation: Missing top-level documentation comment for `module TreeHaver`.", 3627168465], - [37, 3, 611, "Metrics/MethodLength: Method has too many lines. [21/10]", 2394303132], - [39, 11, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], - [61, 3, 377, "Metrics/MethodLength: Method has too many lines. [13/10]", 1137341195] - ], - "lib/tree_haver/rspec/dependency_tags.rb:2954930617": [ - [7, 5, 21, "Style/Documentation: Missing top-level documentation comment for `module TreeHaver::RSpec::DependencyTags`.", 2626933713] - ], - "lib/tree_haver/tree.rb:3332079774": [ - [129, 5, 1443, "Metrics/AbcSize: Assignment Branch Condition size for `edit` is too high. [<8, 18, 7> 20.9/17]", 4208399016], - [129, 5, 1443, "Metrics/MethodLength: Method has too many lines. [24/10]", 4208399016], - [129, 13, 89, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 3152137646] - ], - "spec/backend_registry_spec.rb:229950927": [ - [5, 1, 3102, "Metrics/BlockLength: Block has too many lines. [62/25]", 3416335650] - ], - "spec/backends/tslp_spec.rb:3041579573": [ - [5, 1, 8455, "Metrics/BlockLength: Block has too many lines. [173/25]", 3520038900], - [71, 59, 9, "Lint/DuplicateMethods: Method `::Object#parse` is defined at both spec/backends/tslp_spec.rb:55 and spec/backends/tslp_spec.rb:71.", 3551808887], - [87, 3, 1545, "Metrics/BlockLength: Block has too many lines. [33/25]", 1552545577], - [170, 3, 1352, "Metrics/BlockLength: Block has too many lines. [29/25]", 2972556266] - ], - "spec/fixtures_integration_spec.rb:1473080413": [ - [3, 1, 52001, "Metrics/BlockLength: Block has too many lines. [1115/25]", 592858895], - [108, 3, 1282, "Metrics/BlockLength: Block has too many lines. [29/25]", 505243730], - [141, 3, 1840, "Metrics/BlockLength: Block has too many lines. [35/25]", 1365684528], - [180, 3, 1365, "Metrics/BlockLength: Block has too many lines. [33/25]", 1597100003], - [247, 3, 2110, "Metrics/BlockLength: Block has too many lines. [41/25]", 219204301], - [294, 3, 2166, "Metrics/BlockLength: Block has too many lines. [27/25]", 2219571348], - [354, 3, 1786, "Metrics/BlockLength: Block has too many lines. [30/25]", 1655451032], - [432, 3, 1345, "Metrics/BlockLength: Block has too many lines. [26/25]", 1188499098], - [534, 3, 3250, "Metrics/BlockLength: Block has too many lines. [64/25]", 2852118886], - [589, 121, 57, "Layout/LineLength: Line is too long. [177/120]", 2115564430], - [602, 3, 752, "Metrics/AbcSize: Assignment Branch Condition size for `normalized_tree_node` is too high. [<0, 19, 4> 19.42/17]", 1725197185], - [602, 3, 752, "Metrics/MethodLength: Method has too many lines. [18/10]", 1725197185], - [623, 3, 850, "Metrics/AbcSize: Assignment Branch Condition size for `backend_capability` is too high. [<0, 20, 0> 20/17]", 3278569026], - [623, 3, 850, "Metrics/MethodLength: Method has too many lines. [14/10]", 3278569026], - [640, 3, 744, "Metrics/MethodLength: Method has too many lines. [13/10]", 1675624229], - [679, 3, 492, "Metrics/MethodLength: Method has too many lines. [11/10]", 4123526878], - [714, 3, 566, "Metrics/AbcSize: Assignment Branch Condition size for `parse_error_tolerance` is too high. [<1, 17, 1> 17.06/17]", 933590597], - [714, 3, 566, "Metrics/MethodLength: Method has too many lines. [14/10]", 933590597], - [739, 3, 2652, "Metrics/BlockLength: Block has too many lines. [47/25]", 214520278], - [1039, 7, 87, "Lint/ConstantDefinitionInBlock: Do not define constants this way within a block.", 3860036845], - [1045, 7, 60, "Lint/ConstantDefinitionInBlock: Do not define constants this way within a block.", 1411318317], - [1063, 3, 1334, "Metrics/BlockLength: Block has too many lines. [41/25]", 1427111445], - [1069, 7, 134, "Lint/ConstantDefinitionInBlock: Do not define constants this way within a block.", 1166944291], - [1075, 7, 60, "Lint/ConstantDefinitionInBlock: Do not define constants this way within a block.", 1411318317], - [1085, 7, 134, "Lint/ConstantDefinitionInBlock: Do not define constants this way within a block.", 1166944291], - [1091, 7, 60, "Lint/ConstantDefinitionInBlock: Do not define constants this way within a block.", 1411318317], - [1115, 3, 1290, "Metrics/BlockLength: Block has too many lines. [41/25]", 3478080675], - [1121, 7, 157, "Lint/ConstantDefinitionInBlock: Do not define constants this way within a block.", 2460330604], - [1127, 7, 60, "Lint/ConstantDefinitionInBlock: Do not define constants this way within a block.", 1411318317], - [1137, 7, 154, "Lint/ConstantDefinitionInBlock: Do not define constants this way within a block.", 3868502553], - [1143, 7, 60, "Lint/ConstantDefinitionInBlock: Do not define constants this way within a block.", 1411318317], - [1167, 3, 1405, "Metrics/BlockLength: Block has too many lines. [44/25]", 2313436250], - [1173, 7, 134, "Lint/ConstantDefinitionInBlock: Do not define constants this way within a block.", 1166944291], - [1179, 7, 60, "Lint/ConstantDefinitionInBlock: Do not define constants this way within a block.", 1411318317], - [1189, 7, 134, "Lint/ConstantDefinitionInBlock: Do not define constants this way within a block.", 1166944291], - [1195, 7, 60, "Lint/ConstantDefinitionInBlock: Do not define constants this way within a block.", 1411318317] - ], - "spec/grammar_finder_spec.rb:143254687": [ - [5, 1, 3065, "Metrics/BlockLength: Block has too many lines. [51/25]", 4150338550], - [19, 3, 2446, "Metrics/BlockLength: Block has too many lines. [39/25]", 552612354] - ], - "tree_haver.gemspec:3046477115": [ - [16, 121, 19, "Layout/LineLength: Line is too long. [139/120]", 1512975621], - [129, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 2821357214], - [146, 121, 50, "Layout/LineLength: Line is too long. [170/120]", 3888612416], - [147, 121, 29, "Layout/LineLength: Line is too long. [149/120]", 981994949], - [154, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 4229808912] - ] -} diff --git a/gems/tree_haver/.simplecov b/gems/tree_haver/.simplecov index 9856465a2..167036f44 100644 --- a/gems/tree_haver/.simplecov +++ b/gems/tree_haver/.simplecov @@ -4,15 +4,11 @@ # tree_haver will then preserve content between those markers across template runs. # kettle-jem:unfreeze -require 'kettle/soup/cover/config' - # Minimum coverage thresholds are set by kettle-soup-cover. # They are controlled by ENV variables loaded by `mise` from `mise.toml` # (with optional machine-local overrides in `.env.local`). # If the values for minimum coverage need to change, they should be changed both there, # and in 2 places in .github/workflows/coverage.yml. -SimpleCov.start do - track_files 'lib/**/*.rb' - track_files 'lib/**/*.rake' - track_files 'exe/*.rb' +SimpleCov.configure do + cover 'lib/**/*.rb', 'lib/**/*.rake', 'exe/*.rb' end diff --git a/gems/tree_haver/Gemfile.lock b/gems/tree_haver/Gemfile.lock index 2c4b3dedd..d913a5852 100644 --- a/gems/tree_haver/Gemfile.lock +++ b/gems/tree_haver/Gemfile.lock @@ -292,7 +292,7 @@ GEM simplecov (>= 0.4.1) simplecov_lcov_formatter (0.9.0) simplecov (>= 0.18) - sorbet-runtime (0.6.13347) + sorbet-runtime (0.6.13351) standard (1.56.0) language_server-protocol (~> 3.17.0.2) lint_roller (~> 1.0) @@ -529,7 +529,7 @@ CHECKSUMS simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed - sorbet-runtime (0.6.13347) sha256=54e7221d9f4b63f58aec79f3043752a9ba7810347c6ae0d903531591cc2d5f01 + sorbet-runtime (0.6.13351) sha256=f8fee17c6e3edf835dc6823d26afb9a7c8969c6710d1fabe2fb43f4e0c15c64f standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b standard-performance (1.9.0) sha256=49483d31be448292951d80e5e67cdcb576c2502103c7b40aec6f1b6e9c88e3f2 diff --git a/gems/tree_haver/spec/spec_helper.rb b/gems/tree_haver/spec/spec_helper.rb index 316fc99e5..3a5888fc4 100644 --- a/gems/tree_haver/spec/spec_helper.rb +++ b/gems/tree_haver/spec/spec_helper.rb @@ -8,7 +8,12 @@ # The rescue LoadError handles that scenario. begin require 'kettle-soup-cover' - require 'simplecov' if Kettle::Soup::Cover::DO_COV # `.simplecov` is run here! + if Kettle::Soup::Cover::DO_COV + # Requiring simplecov loads the project-local `.simplecov`. + require 'simplecov' + require 'kettle/soup/cover/config' + SimpleCov.start + end rescue LoadError => e # check the error message and re-raise when unexpected raise e unless e.message.include?('kettle') diff --git a/gems/yaml-merge/Gemfile.lock b/gems/yaml-merge/Gemfile.lock index 3c9636f76..ccbcffd04 100644 --- a/gems/yaml-merge/Gemfile.lock +++ b/gems/yaml-merge/Gemfile.lock @@ -6,265 +6,6 @@ PATH tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly - specs: - ast-crispr-markdown-markly (7.1.0) - ast-crispr (= 7.1.0) - markly-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism - specs: - ast-crispr-ruby-prism (7.1.0) - ast-crispr (= 7.1.0) - prism-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr - specs: - ast-crispr (7.1.0) - ast-merge (= 7.1.0) - service_actor (~> 3.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git - specs: - ast-merge-git (7.1.0) - ast-merge (= 7.1.0) - json-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge - specs: - ast-merge (7.1.0) - benchmark - token-resolver (~> 2.0, >= 2.0.4) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template - specs: - ast-template (7.1.0) - ast-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge - specs: - bash-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge - specs: - binary-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge - specs: - citrus-toml-merge (7.1.0) - toml-merge (= 7.1.0) - toml-rb (~> 4.1) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge - specs: - commonmarker-merge (7.1.0) - commonmarker (~> 2.2) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge - specs: - dotenv-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge - specs: - go-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge - specs: - json-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem - specs: - kettle-jem (7.1.0) - addressable (>= 2.8, < 3) - ast-crispr-markdown-markly (= 7.1.0) - ast-crispr-ruby-prism (= 7.1.0) - ast-merge (= 7.1.0) - bash-merge (= 7.1.0) - citrus-toml-merge (= 7.1.0) - commonmarker-merge (= 7.1.0) - dotenv-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-dev (~> 2.3, >= 2.3.5) - kettle-rb (~> 0.1, >= 0.1.4) - kramdown-merge (= 7.1.0) - markdown-merge (= 7.1.0) - markly-merge (= 7.1.0) - prism-merge (= 7.1.0) - psych-merge (= 7.1.0) - rbs (>= 3.10) - rbs-merge (= 7.1.0) - ruby-merge (= 7.1.0) - token-resolver (~> 2.0, >= 2.0.4) - toml-merge (= 7.1.0) - toml-rb (~> 4.2) - tree_haver (= 7.1.0) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge - specs: - kramdown-merge (7.1.0) - kramdown (~> 2.5) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge - specs: - markdown-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge - specs: - markly-merge (7.1.0) - markdown-merge (= 7.1.0) - markly (~> 0.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge - specs: - parslet-toml-merge (7.1.0) - toml (~> 0.3) - toml-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge - specs: - plain-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge - specs: - prism-merge (7.1.0) - prism (~> 1.6) - ruby-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge - specs: - psych-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge - specs: - rbs-merge (7.1.0) - ast-merge (= 7.1.0) - rbs (>= 3.10) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge - specs: - ruby-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge - specs: - rust-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb - specs: - smorg-rb (7.1.0) - ast-merge (= 7.1.0) - ast-merge-git (= 7.1.0) - go-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-jem (= 7.1.0) - markly-merge (= 7.1.0) - plain-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge - specs: - toml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver - specs: - tree_haver (7.1.0) - citrus (~> 3.0) - parslet (~> 2.0) - tree_sitter_language_pack (>= 1.13.2, < 2.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge - specs: - typescript-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge - specs: - zip-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - GEM remote: https://gem.coop/ specs: @@ -280,6 +21,11 @@ GEM rubocop (>= 1.0) version_gem (~> 1.1, >= 1.1.14) ast (2.4.3) + ast-merge (7.1.0) + benchmark + token-resolver (~> 2.0, >= 2.0.4) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) backports (3.25.3) benchmark (0.5.0) bigdecimal (4.1.2) @@ -289,11 +35,6 @@ GEM cgi (0.5.2) citrus (3.0.2) cmdparse (3.0.7) - commonmarker (2.9.0-aarch64-linux) - commonmarker (2.9.0-aarch64-linux-musl) - commonmarker (2.9.0-arm64-darwin) - commonmarker (2.9.0-x86_64-linux) - commonmarker (2.9.0-x86_64-linux-musl) concurrent-ruby (1.3.8) date (3.5.1) debug (1.11.1) @@ -356,8 +97,6 @@ GEM kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) - kettle-drift (1.0.6) - version_gem (~> 1.1, >= 1.1.14) kettle-rb (0.1.5) kettle-soup-cover (3.0.4) kettle-wash (~> 0.1, >= 0.1.0) @@ -386,7 +125,6 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) - markly (0.16.0) mutex_m (0.3.0) nokogiri (1.19.4-aarch64-linux-gnu) racc (~> 1.4) @@ -549,8 +287,6 @@ GEM ruby-progressbar (1.13.0) ruby_engine (2.0.3) ruby_version (1.0.3) - service_actor (3.9.4) - zeitwerk (>= 1.0) silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) @@ -605,11 +341,11 @@ GEM token-resolver (2.0.5) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.14) - toml (0.3.0) - parslet (>= 1.8.0, < 3.0.0) - toml-rb (4.2.0) - citrus (~> 3.0, > 3.0) - racc (~> 1.7) + tree_haver (7.1.0) + citrus (~> 3.0) + parslet (~> 2.0) + tree_sitter_language_pack (>= 1.13.2, < 2.0) + version_gem (~> 1.1, >= 1.1.9) tree_sitter_language_pack (1.13.3-aarch64-linux) sorbet-runtime (~> 0.5) tree_sitter_language_pack (1.13.3-arm64-darwin) @@ -664,46 +400,23 @@ DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) appraisal2-rubocop (~> 1.0, >= 1.0.0) - ast-crispr! - ast-crispr-markdown-markly! - ast-crispr-ruby-prism! - ast-merge! - ast-merge-git! - ast-template! - bash-merge! benchmark (~> 0.5, >= 0.5.0) - binary-merge! bundler-audit (~> 0.9.3) cgi (~> 0.5) - citrus-toml-merge! - commonmarker-merge! debug (>= 1.1) - dotenv-merge! erb (~> 6.0, >= 6.0.6) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.0) - go-merge! irb (~> 1.17) - json-merge! kettle-dev (~> 2.0, >= 2.2.25) - kettle-drift (~> 1.0, >= 1.0.6) - kettle-jem! kettle-soup-cover (~> 3.0, >= 3.0.3) kettle-test (~> 2.0, >= 2.0.9) kramdown (~> 2.5, >= 2.5.2) - kramdown-merge! kramdown-parser-gfm (~> 1.1) - markdown-merge! - markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) - parslet-toml-merge! - plain-merge! - prism-merge! - psych-merge! rake (~> 13.0) rbs (>= 3.0) - rbs-merge! rdoc (~> 6.11) reek (~> 6.5, >= 6.5.0) require_bench (~> 1.0, >= 1.0.4) @@ -714,17 +427,11 @@ DEPENDENCIES rubocop-on-rbs (~> 2.0, >= 2.0.0) rubocop-packaging (~> 0.6, >= 0.6.0) rubocop-ruby3_2 (~> 3.0, >= 3.0.6) - ruby-merge! ruby-progressbar (~> 1.13) - rust-merge! - smorg-rb! standard (~> 1.56, >= 1.56.0) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) - toml-merge! - tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) - typescript-merge! webrick (~> 1.9) yaml-converter (~> 0.2, >= 0.2.3) yaml-merge! @@ -734,7 +441,6 @@ DEPENDENCIES yard-relative_markdown_links (~> 0.6) yard-timekeeper (~> 0.2, >= 0.2.4) yard-yaml (~> 0.2, >= 0.2.3) - zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af @@ -742,35 +448,20 @@ CHECKSUMS appraisal2 (3.2.0) sha256=ccd0b767ac4060cd7af6d16747459b6990f49c39c7b4fb1f7d1146b1e97c492f appraisal2-rubocop (1.0.0) sha256=b71410fbb014befda5340605a605b7f6f3f012739baf0acc5b4351b592c3258d ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 - ast-crispr (7.1.0) - ast-crispr-markdown-markly (7.1.0) - ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) - ast-merge-git (7.1.0) - ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 - bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd - binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 - citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 - commonmarker (2.9.0-aarch64-linux) sha256=e2b4aadb9a2cfa4e206582641ce3a49465549ac1ed4c289fdd63b78d8f24579c - commonmarker (2.9.0-aarch64-linux-musl) sha256=1cf4d2821f2a7e64945f1ed7c4eeced586fdb27ea7fe7337788802cf8f57cfca - commonmarker (2.9.0-arm64-darwin) sha256=1748dbfa4f5813b0d2a14bb4bbfa65a4ec293aa1c825016d60029ee0e132b046 - commonmarker (2.9.0-x86_64-linux) sha256=8cfe92970eef585a19ddf6613224b91cab64d6029834661bda801f877c9c7f43 - commonmarker (2.9.0-x86_64-linux-musl) sha256=293921398b839f79ceaf55010e061357e34f053822c3b003cd0be6686176335e - commonmarker-merge (7.1.0) concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 - dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -783,28 +474,20 @@ CHECKSUMS gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f - go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 - json-merge (7.1.0) kettle-dev (2.3.8) sha256=9d716ff21c660a730cb4e8d41e2e2f0630a28167a354b6e2924e242102aef72c - kettle-drift (1.0.6) sha256=46eda08fa4411d1f3c6682a95eef1c9df4e94611b3949f49d4c7b43c0ed356a3 - kettle-jem (7.1.0) kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f kettle-soup-cover (3.0.4) kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa - kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 - markdown-merge (7.1.0) - markly (0.16.0) sha256=6f70d79e385b1efc9e171f74c81628826259039fe6c778e03c3924c71dac5511 - markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-aarch64-linux-gnu) sha256=1269fb644a6de405057a53dd5c762b1209b43ca7424f839454d3dbc677c31a8f nokogiri (1.19.4-aarch64-linux-musl) sha256=35c65b9ce72b3bb03207bdbe7067915019dc18c1b9b59139684bd6690fdd01af @@ -818,20 +501,15 @@ CHECKSUMS parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 - parslet-toml-merge (7.1.0) - plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 - prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 - psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 - rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb @@ -866,19 +544,15 @@ CHECKSUMS rubocop-rspec_rails (2.32.0) sha256=4a0d641c72f6ebb957534f539d9d0a62c47abd8ce0d0aeee1ef4701e892a9100 rubocop-ruby3_2 (3.0.7) sha256=f53dd6d286fb05186214fc6ec116783e7f837030918e8931c05de773e98f8466 rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 - ruby-merge (7.1.0) ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 - rust-merge (7.1.0) - service_actor (3.9.4) sha256=e63b523630b9a7e62959b2a90113b08d2565b5de9c148557b281ef847c9539ce silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed - smorg-rb (7.1.0) sorbet-runtime (0.6.13347) sha256=54e7221d9f4b63f58aec79f3043752a9ba7810347c6ae0d903531591cc2d5f01 standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b @@ -893,16 +567,12 @@ CHECKSUMS timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.5) sha256=b852f924287ffb58a440856e862b056c8ad97e74b4b2526cee43e0771f40c25c - toml (0.3.0) sha256=0a91d0f76a9036e84e44f95693b12f58d358c1df3ac8e3b5271f2056ecc6e4b9 - toml-merge (7.1.0) - toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-aarch64-linux) sha256=55ffc7c87868cb45658338363d9eba51b4a8b0259aa88e4de368d2bd1d52fea4 tree_sitter_language_pack (1.13.3-arm64-darwin) sha256=bc2498db605f212a1dbd2465ed3f65190d7da786f6ed5d30fcf958121aeb4a5c tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 - typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 @@ -916,7 +586,6 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 - zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH diff --git a/gems/zip-merge/Gemfile.lock b/gems/zip-merge/Gemfile.lock index 07dd27b92..31ca7b0d0 100644 --- a/gems/zip-merge/Gemfile.lock +++ b/gems/zip-merge/Gemfile.lock @@ -5,266 +5,6 @@ PATH tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly - specs: - ast-crispr-markdown-markly (7.1.0) - ast-crispr (= 7.1.0) - markly-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism - specs: - ast-crispr-ruby-prism (7.1.0) - ast-crispr (= 7.1.0) - prism-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr - specs: - ast-crispr (7.1.0) - ast-merge (= 7.1.0) - service_actor (~> 3.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git - specs: - ast-merge-git (7.1.0) - ast-merge (= 7.1.0) - json-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge - specs: - ast-merge (7.1.0) - benchmark - token-resolver (~> 2.0, >= 2.0.4) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template - specs: - ast-template (7.1.0) - ast-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge - specs: - bash-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge - specs: - binary-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge - specs: - citrus-toml-merge (7.1.0) - toml-merge (= 7.1.0) - toml-rb (~> 4.1) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge - specs: - commonmarker-merge (7.1.0) - commonmarker (~> 2.2) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge - specs: - dotenv-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge - specs: - go-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge - specs: - json-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem - specs: - kettle-jem (7.1.0) - addressable (>= 2.8, < 3) - ast-crispr-markdown-markly (= 7.1.0) - ast-crispr-ruby-prism (= 7.1.0) - ast-merge (= 7.1.0) - bash-merge (= 7.1.0) - citrus-toml-merge (= 7.1.0) - commonmarker-merge (= 7.1.0) - dotenv-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-dev (~> 2.3, >= 2.3.5) - kettle-rb (~> 0.1, >= 0.1.4) - kramdown-merge (= 7.1.0) - markdown-merge (= 7.1.0) - markly-merge (= 7.1.0) - prism-merge (= 7.1.0) - psych-merge (= 7.1.0) - rbs (>= 3.10) - rbs-merge (= 7.1.0) - ruby-merge (= 7.1.0) - token-resolver (~> 2.0, >= 2.0.4) - toml-merge (= 7.1.0) - toml-rb (~> 4.2) - tree_haver (= 7.1.0) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge - specs: - kramdown-merge (7.1.0) - kramdown (~> 2.5) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge - specs: - markdown-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge - specs: - markly-merge (7.1.0) - markdown-merge (= 7.1.0) - markly (~> 0.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge - specs: - parslet-toml-merge (7.1.0) - toml (~> 0.3) - toml-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge - specs: - plain-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge - specs: - prism-merge (7.1.0) - prism (~> 1.6) - ruby-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge - specs: - psych-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge - specs: - rbs-merge (7.1.0) - ast-merge (= 7.1.0) - rbs (>= 3.10) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge - specs: - ruby-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge - specs: - rust-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb - specs: - smorg-rb (7.1.0) - ast-merge (= 7.1.0) - ast-merge-git (= 7.1.0) - go-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-jem (= 7.1.0) - markly-merge (= 7.1.0) - plain-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge - specs: - toml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver - specs: - tree_haver (7.1.0) - citrus (~> 3.0) - parslet (~> 2.0) - tree_sitter_language_pack (>= 1.13.2, < 2.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge - specs: - typescript-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge - specs: - yaml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - GEM remote: https://gem.coop/ specs: @@ -289,11 +29,6 @@ GEM cgi (0.5.2) citrus (3.0.2) cmdparse (3.0.7) - commonmarker (2.9.0-aarch64-linux) - commonmarker (2.9.0-aarch64-linux-musl) - commonmarker (2.9.0-arm64-darwin) - commonmarker (2.9.0-x86_64-linux) - commonmarker (2.9.0-x86_64-linux-musl) concurrent-ruby (1.3.8) date (3.5.1) debug (1.11.1) @@ -356,8 +91,6 @@ GEM kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) - kettle-drift (1.0.6) - version_gem (~> 1.1, >= 1.1.14) kettle-rb (0.1.5) kettle-soup-cover (3.0.4) kettle-wash (~> 0.1, >= 0.1.0) @@ -386,7 +119,6 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) - markly (0.16.0) mutex_m (0.3.0) nokogiri (1.19.4-aarch64-linux-gnu) racc (~> 1.4) @@ -549,8 +281,6 @@ GEM ruby-progressbar (1.13.0) ruby_engine (2.0.3) ruby_version (1.0.3) - service_actor (3.9.4) - zeitwerk (>= 1.0) silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) @@ -602,14 +332,11 @@ GEM delegate (~> 0.1) rspec (~> 3.0) timecop (>= 0.7, < 1) - token-resolver (2.0.5) + tree_haver (7.1.0) + citrus (~> 3.0) parslet (~> 2.0) - version_gem (~> 1.1, >= 1.1.14) - toml (0.3.0) - parslet (>= 1.8.0, < 3.0.0) - toml-rb (4.2.0) - citrus (~> 3.0, > 3.0) - racc (~> 1.7) + tree_sitter_language_pack (>= 1.13.2, < 2.0) + version_gem (~> 1.1, >= 1.1.9) tree_sitter_language_pack (1.13.3-aarch64-linux) sorbet-runtime (~> 0.5) tree_sitter_language_pack (1.13.3-arm64-darwin) @@ -664,46 +391,23 @@ DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) appraisal2-rubocop (~> 1.0, >= 1.0.0) - ast-crispr! - ast-crispr-markdown-markly! - ast-crispr-ruby-prism! - ast-merge! - ast-merge-git! - ast-template! - bash-merge! benchmark (~> 0.5, >= 0.5.0) - binary-merge! bundler-audit (~> 0.9.3) cgi (~> 0.5) - citrus-toml-merge! - commonmarker-merge! debug (>= 1.1) - dotenv-merge! erb (~> 6.0, >= 6.0.6) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.0) - go-merge! irb (~> 1.17) - json-merge! kettle-dev (~> 2.0, >= 2.2.25) - kettle-drift (~> 1.0, >= 1.0.6) - kettle-jem! kettle-soup-cover (~> 3.0, >= 3.0.3) kettle-test (~> 2.0, >= 2.0.9) kramdown (~> 2.5, >= 2.5.2) - kramdown-merge! kramdown-parser-gfm (~> 1.1) - markdown-merge! - markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) - parslet-toml-merge! - plain-merge! - prism-merge! - psych-merge! rake (~> 13.0) rbs (>= 3.0) - rbs-merge! rdoc (~> 6.11) reek (~> 6.5, >= 6.5.0) require_bench (~> 1.0, >= 1.0.4) @@ -714,20 +418,13 @@ DEPENDENCIES rubocop-on-rbs (~> 2.0, >= 2.0.0) rubocop-packaging (~> 0.6, >= 0.6.0) rubocop-ruby3_2 (~> 3.0, >= 3.0.6) - ruby-merge! ruby-progressbar (~> 1.13) - rust-merge! - smorg-rb! standard (~> 1.56, >= 1.56.0) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) - toml-merge! - tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) - typescript-merge! webrick (~> 1.9) yaml-converter (~> 0.2, >= 0.2.3) - yaml-merge! yard (~> 0.9, >= 0.9.45) yard-fence (~> 0.9, >= 0.9.6) yard-junk (~> 0.1, >= 0.1.0) @@ -742,35 +439,19 @@ CHECKSUMS appraisal2 (3.2.0) sha256=ccd0b767ac4060cd7af6d16747459b6990f49c39c7b4fb1f7d1146b1e97c492f appraisal2-rubocop (1.0.0) sha256=b71410fbb014befda5340605a605b7f6f3f012739baf0acc5b4351b592c3258d ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 - ast-crispr (7.1.0) - ast-crispr-markdown-markly (7.1.0) - ast-crispr-ruby-prism (7.1.0) - ast-merge (7.1.0) - ast-merge-git (7.1.0) - ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 - bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd - binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 - citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 - commonmarker (2.9.0-aarch64-linux) sha256=e2b4aadb9a2cfa4e206582641ce3a49465549ac1ed4c289fdd63b78d8f24579c - commonmarker (2.9.0-aarch64-linux-musl) sha256=1cf4d2821f2a7e64945f1ed7c4eeced586fdb27ea7fe7337788802cf8f57cfca - commonmarker (2.9.0-arm64-darwin) sha256=1748dbfa4f5813b0d2a14bb4bbfa65a4ec293aa1c825016d60029ee0e132b046 - commonmarker (2.9.0-x86_64-linux) sha256=8cfe92970eef585a19ddf6613224b91cab64d6029834661bda801f877c9c7f43 - commonmarker (2.9.0-x86_64-linux-musl) sha256=293921398b839f79ceaf55010e061357e34f053822c3b003cd0be6686176335e - commonmarker-merge (7.1.0) concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 - dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -783,28 +464,20 @@ CHECKSUMS gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f - go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 - json-merge (7.1.0) kettle-dev (2.3.8) sha256=9d716ff21c660a730cb4e8d41e2e2f0630a28167a354b6e2924e242102aef72c - kettle-drift (1.0.6) sha256=46eda08fa4411d1f3c6682a95eef1c9df4e94611b3949f49d4c7b43c0ed356a3 - kettle-jem (7.1.0) kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f kettle-soup-cover (3.0.4) kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa - kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 - markdown-merge (7.1.0) - markly (0.16.0) sha256=6f70d79e385b1efc9e171f74c81628826259039fe6c778e03c3924c71dac5511 - markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-aarch64-linux-gnu) sha256=1269fb644a6de405057a53dd5c762b1209b43ca7424f839454d3dbc677c31a8f nokogiri (1.19.4-aarch64-linux-musl) sha256=35c65b9ce72b3bb03207bdbe7067915019dc18c1b9b59139684bd6690fdd01af @@ -818,20 +491,15 @@ CHECKSUMS parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 - parslet-toml-merge (7.1.0) - plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 - prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 - psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 - rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb @@ -866,19 +534,15 @@ CHECKSUMS rubocop-rspec_rails (2.32.0) sha256=4a0d641c72f6ebb957534f539d9d0a62c47abd8ce0d0aeee1ef4701e892a9100 rubocop-ruby3_2 (3.0.7) sha256=f53dd6d286fb05186214fc6ec116783e7f837030918e8931c05de773e98f8466 rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 - ruby-merge (7.1.0) ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 - rust-merge (7.1.0) - service_actor (3.9.4) sha256=e63b523630b9a7e62959b2a90113b08d2565b5de9c148557b281ef847c9539ce silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed - smorg-rb (7.1.0) sorbet-runtime (0.6.13347) sha256=54e7221d9f4b63f58aec79f3043752a9ba7810347c6ae0d903531591cc2d5f01 standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b @@ -892,23 +556,17 @@ CHECKSUMS thor (1.5.0) sha256=e3a9e55fe857e44859ce104a84675ab6e8cd59c650a49106a05f55f136425e73 timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 - token-resolver (2.0.5) sha256=b852f924287ffb58a440856e862b056c8ad97e74b4b2526cee43e0771f40c25c - toml (0.3.0) sha256=0a91d0f76a9036e84e44f95693b12f58d358c1df3ac8e3b5271f2056ecc6e4b9 - toml-merge (7.1.0) - toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-aarch64-linux) sha256=55ffc7c87868cb45658338363d9eba51b4a8b0259aa88e4de368d2bd1d52fea4 tree_sitter_language_pack (1.13.3-arm64-darwin) sha256=bc2498db605f212a1dbd2465ed3f65190d7da786f6ed5d30fcf958121aeb4a5c tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 - typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 webrick (1.9.2) sha256=beb4a15fc474defed24a3bda4ffd88a490d517c9e4e6118c3edce59e45864131 yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 - yaml-merge (7.1.0) yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd From a659f9bbe72d9dee73aa1055a7a4089e43d537fc Mon Sep 17 00:00:00 2001 From: "Peter H. Boling" Date: Tue, 21 Jul 2026 18:00:38 -0600 Subject: [PATCH 147/188] =?UTF-8?q?=F0=9F=8E=A8=20Template=20bootstrap=20b?= =?UTF-8?q?y=20kettle-jem=20v7.1.0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gems/ruby-merge/.rubocop_gradual.lock | 391 ++++++++++++++++++++ gems/ruby-merge/Gemfile.lock | 8 +- gems/tree_haver/.rubocop_gradual.lock | 500 ++++++++++++++++++++++++++ 3 files changed, 895 insertions(+), 4 deletions(-) create mode 100644 gems/ruby-merge/.rubocop_gradual.lock create mode 100644 gems/tree_haver/.rubocop_gradual.lock diff --git a/gems/ruby-merge/.rubocop_gradual.lock b/gems/ruby-merge/.rubocop_gradual.lock new file mode 100644 index 000000000..83c8b7719 --- /dev/null +++ b/gems/ruby-merge/.rubocop_gradual.lock @@ -0,0 +1,391 @@ +{ + ".simplecov:3012692149": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "Rakefile:2768890125": [ + [18, 121, 17, "Layout/LineLength: Line is too long. [137/120]", 174264873], + [79, 3, 1023, "Metrics/BlockLength: Block has too many lines. [32/25]", 54868638], + [163, 121, 22, "Layout/LineLength: Line is too long. [142/120]", 1367093088], + [166, 121, 18, "Layout/LineLength: Line is too long. [138/120]", 3881946477] + ], + "gemfiles/modular/benchmark/r4/v0.5.gemfile:3644720371": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/benchmark/vHEAD.gemfile:2838879269": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/cgi/r4/v0.5.gemfile:367169322": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/cgi/vHEAD.gemfile:2729540777": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/erb/r2/v3.0.gemfile:1688285565": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/erb/r3/v5.0.gemfile:2394062339": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/erb/r4/v5.0.gemfile:2394062339": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/erb/vHEAD.gemfile:981929959": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/mutex_m/r2/v0.3.gemfile:4055275004": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/mutex_m/r3/v0.3.gemfile:4055275004": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/mutex_m/r4/v0.3.gemfile:4055275004": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/mutex_m/vHEAD.gemfile:556854763": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/rspec.gemfile:2263543889": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/stringio/r2/v3.0.gemfile:821604304": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/stringio/r3/v3.0.gemfile:821604304": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/stringio/r4/v3.0.gemfile:821604304": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/stringio/vHEAD.gemfile:1045839691": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/webrick/r4/v1.9.gemfile:3092661193": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/webrick/vHEAD.gemfile:3867684682": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/x_std_libs.gemfile:2324400122": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/x_std_libs/r2/libs.gemfile:36276542": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] + ], + "gemfiles/modular/x_std_libs/r3/libs.gemfile:4030570297": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] + ], + "gemfiles/modular/x_std_libs/r4/libs.gemfile:732451732": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] + ], + "gemfiles/modular/x_std_libs/vHEAD.gemfile:2390363993": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] + ], + "lib/ruby-merge.rb:2992445753": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`ruby-merge.rb`) should use snake_case.", 5381] + ], + "lib/ruby/merge.rb:1254439043": [ + [21, 3, 12, "Style/Documentation: Missing top-level documentation comment for `module Ruby::Merge`.", 2866359175], + [21, 3, 115060, "Metrics/ModuleLength: Module has too many lines. [2589/100]", 3781535251], + [43, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 3061257365], + [119, 5, 912, "Metrics/MethodLength: Method has too many lines. [17/10]", 3288645431], + [163, 5, 2656, "Metrics/AbcSize: Assignment Branch Condition size for `ruby_method_move_detection` is too high. [<17, 40, 18> 47.04/17]", 3779436399], + [163, 5, 2656, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `ruby_method_move_detection` is too high. [16/7]", 3779436399], + [163, 5, 2656, "Metrics/MethodLength: Method has too many lines. [45/10]", 3779436399], + [163, 5, 2656, "Metrics/PerceivedComplexity: Perceived complexity for `ruby_method_move_detection` is too high. [16/8]", 3779436399], + [175, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 727785047], + [188, 121, 51, "Layout/LineLength: Line is too long. [171/120]", 3259664538], + [207, 9, 7, "Style/MultilineBlockChain: Avoid multi-line chains of blocks.", 4045560504], + [210, 9, 7, "Style/MultilineBlockChain: Avoid multi-line chains of blocks.", 4045560504], + [211, 121, 7, "Layout/LineLength: Line is too long. [127/120]", 1976354608], + [215, 5, 4531, "Metrics/AbcSize: Assignment Branch Condition size for `merge_ruby` is too high. [<31, 64, 24> 75.05/17]", 2749692967], + [215, 5, 4531, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `merge_ruby` is too high. [21/7]", 2749692967], + [215, 5, 4531, "Metrics/MethodLength: Method has too many lines. [86/10]", 2749692967], + [215, 5, 4531, "Metrics/PerceivedComplexity: Perceived complexity for `merge_ruby` is too high. [22/8]", 2749692967], + [277, 9, 7, "Style/MultilineBlockChain: Avoid multi-line chains of blocks.", 4045560504], + [316, 5, 1312, "Metrics/AbcSize: Assignment Branch Condition size for `ruby_delegated_child_operations` is too high. [<10, 15, 6> 19/17]", 2246428949], + [316, 5, 1312, "Metrics/MethodLength: Method has too many lines. [28/10]", 2246428949], + [362, 5, 861, "Metrics/AbcSize: Assignment Branch Condition size for `ruby_source_owner_identity_profile` is too high. [<5, 17, 2> 17.83/17]", 4129925341], + [362, 5, 861, "Metrics/MethodLength: Method has too many lines. [20/10]", 4129925341], + [385, 5, 2064, "Metrics/AbcSize: Assignment Branch Condition size for `ruby_source_owner_identity_matches` is too high. [<17, 31, 11> 37.03/17]", 2780319153], + [385, 5, 2064, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `ruby_source_owner_identity_matches` is too high. [11/7]", 2780319153], + [385, 5, 2064, "Metrics/MethodLength: Method has too many lines. [37/10]", 2780319153], + [385, 5, 2064, "Metrics/PerceivedComplexity: Perceived complexity for `ruby_source_owner_identity_matches` is too high. [11/8]", 2780319153], + [414, 9, 7, "Style/MultilineBlockChain: Avoid multi-line chains of blocks.", 4045560504], + [417, 9, 7, "Style/MultilineBlockChain: Avoid multi-line chains of blocks.", 4045560504], + [422, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 1001816794], + [428, 5, 1314, "Metrics/MethodLength: Method has too many lines. [28/10]", 4183124680], + [461, 5, 786, "Metrics/MethodLength: Method has too many lines. [24/10]", 3631640245], + [488, 5, 926, "Metrics/MethodLength: Method has too many lines. [18/10]", 4274646050], + [509, 5, 662, "Metrics/MethodLength: Method has too many lines. [15/10]", 2231086183], + [528, 5, 777, "Metrics/MethodLength: Method has too many lines. [18/10]", 895030114], + [549, 5, 727, "Metrics/MethodLength: Method has too many lines. [19/10]", 776483642], + [571, 5, 861, "Metrics/MethodLength: Method has too many lines. [29/10]", 537340961], + [603, 5, 655, "Metrics/MethodLength: Method has too many lines. [16/10]", 3756601977], + [622, 5, 1592, "Metrics/MethodLength: Method has too many lines. [25/10]", 3521052904], + [646, 121, 106, "Layout/LineLength: Line is too long. [226/120]", 2104286058], + [652, 5, 777, "Metrics/MethodLength: Method has too many lines. [14/10]", 2821246515], + [669, 5, 1429, "Metrics/MethodLength: Method has too many lines. [26/10]", 244346226], + [692, 121, 124, "Layout/LineLength: Line is too long. [244/120]", 13261232], + [698, 5, 1367, "Metrics/MethodLength: Method has too many lines. [41/10]", 3883814121], + [742, 5, 750, "Metrics/MethodLength: Method has too many lines. [22/10]", 764028624], + [768, 5, 1315, "Metrics/AbcSize: Assignment Branch Condition size for `ruby_silent_data_loss_validation_report` is too high. [<8, 14, 7> 17.58/17]", 2039399818], + [768, 5, 1315, "Metrics/MethodLength: Method has too many lines. [31/10]", 2039399818], + [803, 5, 724, "Metrics/MethodLength: Method has too many lines. [14/10]", 1741779676], + [814, 121, 67, "Layout/LineLength: Line is too long. [187/120]", 1996508131], + [820, 5, 752, "Metrics/MethodLength: Method has too many lines. [21/10]", 3870096101], + [844, 5, 1052, "Metrics/MethodLength: Method has too many lines. [32/10]", 119279638], + [896, 5, 536, "Metrics/MethodLength: Method has too many lines. [13/10]", 245509059], + [912, 5, 2252, "Metrics/AbcSize: Assignment Branch Condition size for `ruby_rename_detection` is too high. [<14, 32, 11> 36.62/17]", 2574664763], + [912, 5, 2252, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `ruby_rename_detection` is too high. [10/7]", 2574664763], + [912, 5, 2252, "Metrics/MethodLength: Method has too many lines. [46/10]", 2574664763], + [912, 5, 2252, "Metrics/PerceivedComplexity: Perceived complexity for `ruby_rename_detection` is too high. [11/8]", 2574664763], + [955, 121, 21, "Layout/LineLength: Line is too long. [141/120]", 4074688513], + [961, 9, 7, "Style/MultilineBlockChain: Avoid multi-line chains of blocks.", 4045560504], + [965, 5, 2254, "Metrics/AbcSize: Assignment Branch Condition size for `ruby_rename_plus_edit_conflicts` is too high. [<15, 30, 13> 35.97/17]", 3664513828], + [965, 5, 2254, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `ruby_rename_plus_edit_conflicts` is too high. [10/7]", 3664513828], + [965, 5, 2254, "Metrics/MethodLength: Method has too many lines. [45/10]", 3664513828], + [965, 5, 2254, "Metrics/PerceivedComplexity: Perceived complexity for `ruby_rename_plus_edit_conflicts` is too high. [11/8]", 3664513828], + [1017, 5, 1926, "Metrics/AbcSize: Assignment Branch Condition size for `ruby_cross_container_method_move_detection` is too high. [<8, 18, 7> 20.9/17]", 1401333972], + [1017, 5, 1926, "Metrics/MethodLength: Method has too many lines. [44/10]", 1401333972], + [1060, 121, 16, "Layout/LineLength: Line is too long. [136/120]", 3474944396], + [1067, 5, 1488, "Metrics/AbcSize: Assignment Branch Condition size for `apply_ruby_delegated_child_outputs` is too high. [<16, 39, 12> 43.83/17]", 842348215], + [1067, 5, 1488, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `apply_ruby_delegated_child_outputs` is too high. [12/7]", 842348215], + [1067, 5, 1488, "Metrics/MethodLength: Method has too many lines. [27/10]", 842348215], + [1067, 5, 1488, "Metrics/PerceivedComplexity: Perceived complexity for `apply_ruby_delegated_child_outputs` is too high. [13/8]", 842348215], + [1101, 5, 980, "Metrics/MethodLength: Method has too many lines. [23/10]", 1425119613], + [1128, 5, 1025, "Metrics/MethodLength: Method has too many lines. [23/10]", 2179557432], + [1156, 5, 757, "Metrics/MethodLength: Method has too many lines. [12/10]", 3975431355], + [1161, 121, 70, "Layout/LineLength: Line is too long. [190/120]", 1956194284], + [1173, 5, 745, "Metrics/MethodLength: Method has too many lines. [12/10]", 1051086033], + [1178, 121, 62, "Layout/LineLength: Line is too long. [182/120]", 1636990749], + [1190, 5, 670, "Metrics/MethodLength: Method has too many lines. [11/10]", 3552666292], + [1195, 121, 17, "Layout/LineLength: Line is too long. [137/120]", 3013228499], + [1206, 5, 678, "Metrics/MethodLength: Method has too many lines. [11/10]", 1356230953], + [1211, 121, 17, "Layout/LineLength: Line is too long. [137/120]", 3013228499], + [1222, 5, 2093, "Metrics/AbcSize: Assignment Branch Condition size for `analyze_ruby_document` is too high. [<21, 31, 12> 39.32/17]", 3298966582], + [1222, 5, 2093, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `analyze_ruby_document` is too high. [13/7]", 3298966582], + [1222, 5, 2093, "Metrics/MethodLength: Method has too many lines. [53/10]", 3298966582], + [1222, 5, 2093, "Metrics/PerceivedComplexity: Perceived complexity for `analyze_ruby_document` is too high. [13/8]", 3298966582], + [1228, 7, 1035, "Metrics/BlockLength: Block has too many lines. [27/25]", 2081528636], + [1297, 5, 427, "Metrics/AbcSize: Assignment Branch Condition size for `ruby_file_footer_text` is too high. [<5, 17, 8> 19.44/17]", 1703748308], + [1324, 5, 806, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `ruby_process_analysis_from_tree` is too high. [10/7]", 1109735749], + [1324, 5, 806, "Metrics/MethodLength: Method has too many lines. [19/10]", 1109735749], + [1374, 5, 533, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `ruby_import_item_from_begin_node` is too high. [8/7]", 582163830], + [1396, 5, 487, "Metrics/MethodLength: Method has too many lines. [12/10]", 3257507103], + [1413, 5, 583, "Metrics/MethodLength: Method has too many lines. [15/10]", 4108141408], + [1456, 5, 645, "Metrics/AbcSize: Assignment Branch Condition size for `ruby_import_span_for` is too high. [<6, 22, 9> 24.52/17]", 1779826452], + [1456, 5, 645, "Metrics/MethodLength: Method has too many lines. [12/10]", 1779826452], + [1508, 5, 1015, "Metrics/MethodLength: Method has too many lines. [16/10]", 1317835917], + [1514, 121, 173, "Layout/LineLength: Line is too long. [293/120]", 225499532], + [1541, 5, 518, "Metrics/AbcSize: Assignment Branch Condition size for `ruby_tslp_claimed_line_indexes` is too high. [<6, 19, 5> 20.54/17]", 1455439838], + [1553, 5, 432, "Metrics/AbcSize: Assignment Branch Condition size for `ruby_process_import_entries` is too high. [<3, 18, 2> 18.36/17]", 62712355], + [1566, 5, 443, "Metrics/MethodLength: Method has too many lines. [12/10]", 4230588206], + [1583, 5, 363, "Metrics/MethodLength: Method has too many lines. [11/10]", 3068065572], + [1644, 5, 1849, "Metrics/AbcSize: Assignment Branch Condition size for `legacy_collect_ruby_declaration_entries` is too high. [<24, 26, 13> 37.7/17]", 3187770326], + [1644, 5, 1849, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `legacy_collect_ruby_declaration_entries` is too high. [11/7]", 3187770326], + [1644, 5, 1849, "Metrics/MethodLength: Method has too many lines. [54/10]", 3187770326], + [1644, 5, 1849, "Metrics/PerceivedComplexity: Perceived complexity for `legacy_collect_ruby_declaration_entries` is too high. [11/8]", 3187770326], + [1691, 13, 76, "Metrics/BlockNesting: Avoid more than 3 levels of block nesting.", 1356567820], + [1727, 5, 396, "Metrics/MethodLength: Method has too many lines. [11/10]", 1239008881], + [1742, 5, 752, "Metrics/AbcSize: Assignment Branch Condition size for `ruby_process_declaration_entries` is too high. [<7, 17, 2> 18.49/17]", 2675999354], + [1742, 5, 752, "Metrics/MethodLength: Method has too many lines. [18/10]", 2675999354], + [1802, 5, 634, "Metrics/AbcSize: Assignment Branch Condition size for `ruby_top_level_process_structure_items` is too high. [<5, 32, 14> 35.28/17]", 1120707166], + [1802, 5, 634, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `ruby_top_level_process_structure_items` is too high. [11/7]", 1120707166], + [1802, 5, 634, "Metrics/MethodLength: Method has too many lines. [11/10]", 1120707166], + [1802, 5, 634, "Metrics/PerceivedComplexity: Perceived complexity for `ruby_top_level_process_structure_items` is too high. [11/8]", 1120707166], + [1814, 7, 11, "Style/MultilineBlockChain: Avoid multi-line chains of blocks.", 848344986], + [1821, 7, 9, "Style/MultilineBlockChain: Avoid multi-line chains of blocks.", 3648222389], + [1866, 5, 1284, "Metrics/AbcSize: Assignment Branch Condition size for `ruby_intra_owner_merge_plan` is too high. [<8, 24, 9> 26.85/17]", 2388567699], + [1866, 5, 1284, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `ruby_intra_owner_merge_plan` is too high. [9/7]", 2388567699], + [1866, 5, 1284, "Metrics/MethodLength: Method has too many lines. [22/10]", 2388567699], + [1866, 5, 1284, "Metrics/PerceivedComplexity: Perceived complexity for `ruby_intra_owner_merge_plan` is too high. [9/8]", 2388567699], + [1907, 5, 557, "Metrics/MethodLength: Method has too many lines. [11/10]", 3178341030], + [1965, 121, 62, "Layout/LineLength: Line is too long. [182/120]", 895013151], + [1970, 5, 593, "Metrics/MethodLength: Method has too many lines. [13/10]", 2850316611], + [1971, 121, 1, "Layout/LineLength: Line is too long. [121/120]", 177625], + [1988, 5, 609, "Metrics/MethodLength: Method has too many lines. [12/10]", 784855730], + [2003, 5, 695, "Metrics/MethodLength: Method has too many lines. [14/10]", 3942458504], + [2040, 5, 1114, "Metrics/AbcSize: Assignment Branch Condition size for `merge_declaration_hash_constants` is too high. [<11, 22, 6> 25.32/17]", 3861922947], + [2040, 5, 1114, "Metrics/MethodLength: Method has too many lines. [17/10]", 3861922947], + [2062, 5, 794, "Metrics/AbcSize: Assignment Branch Condition size for `merge_declaration_body_constants` is too high. [<9, 14, 6> 17.69/17]", 1882117166], + [2092, 5, 1138, "Metrics/AbcSize: Assignment Branch Condition size for `merge_array_constant_text` is too high. [<9, 18, 7> 21.31/17]", 1448081799], + [2092, 5, 1138, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `merge_array_constant_text` is too high. [8/7]", 1448081799], + [2092, 5, 1138, "Metrics/MethodLength: Method has too many lines. [15/10]", 1448081799], + [2098, 121, 3, "Layout/LineLength: Line is too long. [123/120]", 193434112], + [2105, 7, 8, "Style/MultilineBlockChain: Avoid multi-line chains of blocks.", 359846632], + [2112, 5, 774, "Metrics/AbcSize: Assignment Branch Condition size for `merge_percent_array_constant_text` is too high. [<8, 16, 7> 19.21/17]", 625509828], + [2112, 5, 774, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `merge_percent_array_constant_text` is too high. [8/7]", 625509828], + [2141, 5, 1060, "Metrics/AbcSize: Assignment Branch Condition size for `merge_multiline_array_constant_text` is too high. [<11, 23, 10> 27.39/17]", 2672751288], + [2141, 5, 1060, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `merge_multiline_array_constant_text` is too high. [11/7]", 2672751288], + [2141, 5, 1060, "Metrics/MethodLength: Method has too many lines. [13/10]", 2672751288], + [2141, 5, 1060, "Metrics/PerceivedComplexity: Perceived complexity for `merge_multiline_array_constant_text` is too high. [11/8]", 2672751288], + [2150, 7, 8, "Style/MultilineBlockChain: Avoid multi-line chains of blocks.", 359846632], + [2159, 5, 1605, "Metrics/AbcSize: Assignment Branch Condition size for `merge_declaration_body_methods` is too high. [<21, 28, 15> 38.08/17]", 2740924329], + [2159, 5, 1605, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `merge_declaration_body_methods` is too high. [14/7]", 2740924329], + [2159, 5, 1605, "Metrics/MethodLength: Method has too many lines. [29/10]", 2740924329], + [2159, 5, 1605, "Metrics/PerceivedComplexity: Perceived complexity for `merge_declaration_body_methods` is too high. [15/8]", 2740924329], + [2166, 7, 8, "Style/MultilineBlockChain: Avoid multi-line chains of blocks.", 359846632], + [2193, 5, 1076, "Metrics/AbcSize: Assignment Branch Condition size for `merge_nested_body_declarations` is too high. [<14, 24, 10> 29.53/17]", 1397199527], + [2193, 5, 1076, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `merge_nested_body_declarations` is too high. [11/7]", 1397199527], + [2193, 5, 1076, "Metrics/MethodLength: Method has too many lines. [14/10]", 1397199527], + [2193, 5, 1076, "Metrics/PerceivedComplexity: Perceived complexity for `merge_nested_body_declarations` is too high. [11/8]", 1397199527], + [2232, 5, 2710, "Metrics/AbcSize: Assignment Branch Condition size for `top_level_source_region_owners` is too high. [<24, 33, 13> 42.83/17]", 1909271685], + [2232, 5, 2710, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `top_level_source_region_owners` is too high. [11/7]", 1909271685], + [2232, 5, 2710, "Metrics/MethodLength: Method has too many lines. [68/10]", 1909271685], + [2232, 5, 2710, "Metrics/PerceivedComplexity: Perceived complexity for `top_level_source_region_owners` is too high. [11/8]", 1909271685], + [2275, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5861626], + [2290, 121, 28, "Layout/LineLength: Line is too long. [148/120]", 1695648499], + [2310, 5, 2285, "Metrics/AbcSize: Assignment Branch Condition size for `container_child_source_regions` is too high. [<23, 28, 11> 37.87/17]", 1586137568], + [2310, 5, 2285, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `container_child_source_regions` is too high. [10/7]", 1586137568], + [2310, 5, 2285, "Metrics/MethodLength: Method has too many lines. [60/10]", 1586137568], + [2310, 5, 2285, "Metrics/PerceivedComplexity: Perceived complexity for `container_child_source_regions` is too high. [10/8]", 1586137568], + [2388, 5, 30, "Style/Documentation: Missing top-level documentation comment for `class Ruby::Merge::RubyHashLiteralProjector`.", 2586933062], + [2388, 5, 5761, "Metrics/ClassLength: Class has too many lines. [144/100]", 3358513989], + [2421, 7, 617, "Metrics/MethodLength: Method has too many lines. [15/10]", 1617225783], + [2445, 7, 943, "Metrics/AbcSize: Assignment Branch Condition size for `project_hash_key` is too high. [<1, 18, 8> 19.72/17]", 3538404248], + [2445, 7, 943, "Metrics/MethodLength: Method has too many lines. [26/10]", 3538404248], + [2503, 7, 616, "Metrics/AbcSize: Assignment Branch Condition size for `trailing_comma?` is too high. [<3, 20, 6> 21.1/17]", 1517912413], + [2568, 5, 1202, "Metrics/AbcSize: Assignment Branch Condition size for `constant_hash_blocks` is too high. [<19, 25, 6> 31.97/17]", 399214756], + [2568, 5, 1202, "Metrics/MethodLength: Method has too many lines. [36/10]", 399214756], + [2609, 5, 727, "Metrics/AbcSize: Assignment Branch Condition size for `hash_assignment_finish_line` is too high. [<11, 7, 12> 17.72/17]", 1215874404], + [2609, 5, 727, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `hash_assignment_finish_line` is too high. [9/7]", 1215874404], + [2609, 5, 727, "Metrics/MethodLength: Method has too many lines. [26/10]", 1215874404], + [2609, 5, 727, "Metrics/PerceivedComplexity: Perceived complexity for `hash_assignment_finish_line` is too high. [11/8]", 1215874404], + [2639, 5, 2007, "Metrics/AbcSize: Assignment Branch Condition size for `direct_body_method_entries` is too high. [<28, 33, 13> 45.19/17]", 2589282610], + [2639, 5, 2007, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `direct_body_method_entries` is too high. [12/7]", 2589282610], + [2639, 5, 2007, "Metrics/MethodLength: Method has too many lines. [56/10]", 2589282610], + [2639, 5, 2007, "Metrics/PerceivedComplexity: Perceived complexity for `direct_body_method_entries` is too high. [12/8]", 2589282610], + [2704, 5, 1221, "Metrics/AbcSize: Assignment Branch Condition size for `direct_body_constant_entries` is too high. [<16, 34, 10> 38.88/17]", 1588885504], + [2704, 5, 1221, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `direct_body_constant_entries` is too high. [9/7]", 1588885504], + [2704, 5, 1221, "Metrics/MethodLength: Method has too many lines. [35/10]", 1588885504], + [2704, 5, 1221, "Metrics/PerceivedComplexity: Perceived complexity for `direct_body_constant_entries` is too high. [9/8]", 1588885504], + [2747, 5, 708, "Metrics/AbcSize: Assignment Branch Condition size for `split_ruby_array_elements` is too high. [<11, 12, 11> 19.65/17]", 1344003748], + [2747, 5, 708, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `split_ruby_array_elements` is too high. [9/7]", 1344003748], + [2747, 5, 708, "Metrics/MethodLength: Method has too many lines. [24/10]", 1344003748], + [2747, 5, 708, "Metrics/PerceivedComplexity: Perceived complexity for `split_ruby_array_elements` is too high. [11/8]", 1344003748], + [2791, 5, 977, "Metrics/AbcSize: Assignment Branch Condition size for `append_multiline_array_elements` is too high. [<12, 32, 9> 35.34/17]", 1316332112], + [2791, 5, 977, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `append_multiline_array_elements` is too high. [9/7]", 1316332112], + [2791, 5, 977, "Metrics/MethodLength: Method has too many lines. [16/10]", 1316332112], + [2791, 5, 977, "Metrics/PerceivedComplexity: Perceived complexity for `append_multiline_array_elements` is too high. [9/8]", 1316332112], + [2819, 5, 728, "Metrics/AbcSize: Assignment Branch Condition size for `array_assignment_finish_line` is too high. [<11, 7, 12> 17.72/17]", 1471354607], + [2819, 5, 728, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `array_assignment_finish_line` is too high. [9/7]", 1471354607], + [2819, 5, 728, "Metrics/MethodLength: Method has too many lines. [26/10]", 1471354607], + [2819, 5, 728, "Metrics/PerceivedComplexity: Perceived complexity for `array_assignment_finish_line` is too high. [11/8]", 1471354607], + [2855, 5, 1127, "Metrics/AbcSize: Assignment Branch Condition size for `direct_body_declaration_entries` is too high. [<14, 30, 7> 33.84/17]", 1223661118], + [2855, 5, 1127, "Metrics/MethodLength: Method has too many lines. [30/10]", 1223661118], + [2902, 5, 984, "Metrics/AbcSize: Assignment Branch Condition size for `insert_declaration_body_blocks` is too high. [<4, 23, 12> 26.25/17]", 159690081], + [2902, 5, 984, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `insert_declaration_body_blocks` is too high. [9/7]", 159690081], + [2902, 5, 984, "Metrics/MethodLength: Method has too many lines. [16/10]", 159690081], + [2902, 5, 984, "Metrics/PerceivedComplexity: Perceived complexity for `insert_declaration_body_blocks` is too high. [10/8]", 159690081], + [2947, 5, 1027, "Metrics/AbcSize: Assignment Branch Condition size for `merge_ruby_hash_literals` is too high. [<8, 30, 9> 32.33/17]", 2793745298], + [2947, 5, 1027, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `merge_ruby_hash_literals` is too high. [9/7]", 2793745298], + [2947, 5, 1027, "Metrics/MethodLength: Method has too many lines. [19/10]", 2793745298], + [2947, 5, 1027, "Metrics/PerceivedComplexity: Perceived complexity for `merge_ruby_hash_literals` is too high. [10/8]", 2793745298], + [2969, 5, 636, "Metrics/AbcSize: Assignment Branch Condition size for `render_ruby_hash_literal` is too high. [<5, 19, 6> 20.54/17]", 1834383244], + [3009, 5, 491, "Metrics/MethodLength: Method has too many lines. [11/10]", 1799924605], + [3042, 5, 1125, "Metrics/AbcSize: Assignment Branch Condition size for `surfaces_for_owner` is too high. [<6, 19, 3> 20.15/17]", 4036098594], + [3042, 5, 1125, "Metrics/MethodLength: Method has too many lines. [20/10]", 4036098594], + [3067, 5, 1126, "Metrics/AbcSize: Assignment Branch Condition size for `example_surfaces_for` is too high. [<4, 20, 2> 20.49/17]", 757808110], + [3067, 5, 1126, "Metrics/MethodLength: Method has too many lines. [21/10]", 757808110] + ], + "lib/ruby/merge/block_directive_detector.rb:315354690": [ + [10, 5, 6220, "Metrics/ClassLength: Class has too many lines. [161/100]", 3182117306], + [83, 7, 1085, "Metrics/AbcSize: Assignment Branch Condition size for `detect_freeze_spans` is too high. [<10, 18, 6> 21.45/17]", 3827147306], + [83, 7, 1085, "Metrics/MethodLength: Method has too many lines. [27/10]", 3827147306], + [117, 7, 1508, "Metrics/AbcSize: Assignment Branch Condition size for `detect_nocov_spans` is too high. [<10, 30, 10> 33.17/17]", 3750116369], + [117, 7, 1508, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `detect_nocov_spans` is too high. [9/7]", 3750116369], + [117, 7, 1508, "Metrics/MethodLength: Method has too many lines. [40/10]", 3750116369], + [117, 7, 1508, "Metrics/PerceivedComplexity: Perceived complexity for `detect_nocov_spans` is too high. [12/8]", 3750116369], + [125, 9, 1189, "Metrics/BlockLength: Block has too many lines. [30/25]", 431470454], + [165, 7, 921, "Metrics/AbcSize: Assignment Branch Condition size for `validate_no_crossing` is too high. [<8, 16, 8> 19.6/17]", 1072352384], + [165, 7, 921, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `validate_no_crossing` is too high. [8/7]", 1072352384], + [165, 7, 921, "Metrics/MethodLength: Method has too many lines. [19/10]", 1072352384], + [193, 121, 3, "Layout/LineLength: Line is too long. [123/120]", 193343749], + [194, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5860841] + ], + "lib/ruby/merge/doc_comment_support.rb:11585367": [ + [71, 7, 950, "Metrics/AbcSize: Assignment Branch Condition size for `example_blocks` is too high. [<8, 17, 8> 20.42/17]", 878231540], + [71, 7, 950, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `example_blocks` is too high. [8/7]", 878231540], + [71, 7, 950, "Metrics/MethodLength: Method has too many lines. [19/10]", 878231540] + ], + "lib/ruby/merge/gemspec_support.rb:672395758": [ + [5, 5, 21, "Style/Documentation: Missing top-level documentation comment for `module Ruby::Merge::GemspecSupport`.", 593910650] + ], + "lib/ruby/merge/magic_comment_support.rb:2193186223": [ + [26, 7, 1484, "Metrics/AbcSize: Assignment Branch Condition size for `comment_only_prefix_info` is too high. [<9, 38, 8> 39.86/17]", 1098666313], + [26, 7, 1484, "Metrics/MethodLength: Method has too many lines. [33/10]", 1098666313], + [69, 7, 693, "Metrics/AbcSize: Assignment Branch Condition size for `header_magic_comment_types_for_lines` is too high. [<10, 13, 9> 18.71/17]", 3693768719], + [69, 7, 693, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `header_magic_comment_types_for_lines` is too high. [8/7]", 3693768719], + [69, 7, 693, "Metrics/MethodLength: Method has too many lines. [16/10]", 3693768719], + [93, 7, 747, "Metrics/AbcSize: Assignment Branch Condition size for `prefix_comment_line_numbers_for_comments` is too high. [<10, 12, 7> 17.12/17]", 1181507516], + [93, 7, 747, "Metrics/MethodLength: Method has too many lines. [19/10]", 1181507516] + ], + "lib/ruby/merge/method_similarity.rb:3120642740": [ + [5, 5, 22, "Style/Documentation: Missing top-level documentation comment for `class Ruby::Merge::MethodSimilarity`.", 3784960433], + [23, 7, 493, "Metrics/AbcSize: Assignment Branch Condition size for `param_similarity` is too high. [<4, 19, 4> 19.82/17]", 1175888813], + [45, 7, 738, "Metrics/AbcSize: Assignment Branch Condition size for `levenshtein_distance` is too high. [<13, 29, 8> 32.77/17]", 1085087702], + [45, 7, 738, "Metrics/MethodLength: Method has too many lines. [20/10]", 1085087702] + ], + "lib/ruby/merge/nocov_node_base.rb:1713613866": [ + [23, 21, 84, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 3439911158], + [51, 7, 353, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `signature` is too high. [8/7]", 3442013923], + [51, 7, 353, "Metrics/PerceivedComplexity: Perceived complexity for `signature` is too high. [9/8]", 3442013923] + ], + "lib/ruby/merge/rescue_semantics.rb:2728370094": [ + [5, 5, 21, "Style/Documentation: Missing top-level documentation comment for `class Ruby::Merge::RescueSemantics`.", 4002082661], + [5, 5, 8140, "Metrics/ClassLength: Class has too many lines. [157/100]", 3302970297], + [10, 7, 812, "Metrics/AbcSize: Assignment Branch Condition size for `merge_ordered_clause_types` is too high. [<9, 17, 8> 20.83/17]", 391537814], + [10, 7, 812, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `merge_ordered_clause_types` is too high. [8/7]", 391537814], + [10, 7, 812, "Metrics/MethodLength: Method has too many lines. [16/10]", 391537814], + [10, 7, 812, "Metrics/PerceivedComplexity: Perceived complexity for `merge_ordered_clause_types` is too high. [9/8]", 391537814], + [33, 7, 1470, "Metrics/AbcSize: Assignment Branch Condition size for `canonicalize_rescue_clause_order` is too high. [<18, 28, 14> 36.11/17]", 570708009], + [33, 7, 1470, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `canonicalize_rescue_clause_order` is too high. [14/7]", 570708009], + [33, 7, 1470, "Metrics/MethodLength: Method has too many lines. [24/10]", 570708009], + [33, 7, 1470, "Metrics/PerceivedComplexity: Perceived complexity for `canonicalize_rescue_clause_order` is too high. [14/8]", 570708009], + [113, 7, 1080, "Metrics/AbcSize: Assignment Branch Condition size for `source_defined_exception_hierarchy` is too high. [<9, 20, 10> 24.1/17]", 3196945148], + [113, 7, 1080, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `source_defined_exception_hierarchy` is too high. [10/7]", 3196945148], + [113, 7, 1080, "Metrics/MethodLength: Method has too many lines. [15/10]", 3196945148], + [113, 7, 1080, "Metrics/PerceivedComplexity: Perceived complexity for `source_defined_exception_hierarchy` is too high. [11/8]", 3196945148], + [126, 121, 19, "Layout/LineLength: Line is too long. [139/120]", 1806710570] + ], + "lib/ruby/merge/scaffold_chunk_support.rb:640658628": [ + [5, 5, 27, "Style/Documentation: Missing top-level documentation comment for `module Ruby::Merge::ScaffoldChunkSupport`.", 2416541725] + ], + "lib/ruby/merge/signature_support.rb:1167161535": [ + [5, 5, 23, "Style/Documentation: Missing top-level documentation comment for `module Ruby::Merge::SignatureSupport`.", 2080470772] + ], + "ruby-merge.gemspec:503862341": [ + [128, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 2821357214], + [143, 121, 50, "Layout/LineLength: Line is too long. [170/120]", 3888612416], + [144, 121, 29, "Layout/LineLength: Line is too long. [149/120]", 981994949], + [151, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 4229808912] + ], + "spec/fixtures_integration_spec.rb:536012750": [ + [7, 1, 72608, "Metrics/BlockLength: Block has too many lines. [1673/25]", 1328376978], + [8, 3, 94, "Lint/ConstantDefinitionInBlock: Do not define constants this way within a block.", 4224869601], + [9, 3, 80, "Lint/ConstantDefinitionInBlock: Do not define constants this way within a block.", 3493759864], + [10, 3, 72, "Lint/ConstantDefinitionInBlock: Do not define constants this way within a block.", 218819604], + [11, 3, 83, "Lint/ConstantDefinitionInBlock: Do not define constants this way within a block.", 3957977039], + [125, 3, 1207, "Metrics/BlockLength: Block has too many lines. [27/25]", 2841005266], + [206, 3, 1550, "Metrics/BlockLength: Block has too many lines. [44/25]", 1381861178], + [257, 3, 1178, "Metrics/BlockLength: Block has too many lines. [28/25]", 2957209369], + [292, 3, 1209, "Metrics/BlockLength: Block has too many lines. [33/25]", 1745132505], + [332, 3, 61330, "Metrics/BlockLength: Block has too many lines. [1387/25]", 3444780370], + [728, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5859109], + [1812, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 3355833611], + [1819, 121, 18, "Layout/LineLength: Line is too long. [138/120]", 38619260] + ], + "spec/hash_literal_projector_spec.rb:2425567956": [ + [13, 41, 31, "Lint/PercentStringArray: Within `%w`/`%W`, quotes and ',' are unnecessary and may be unwanted in the resulting strings.", 3214960854] + ], + "spec/rescue_semantics_spec.rb:2518131257": [ + [5, 1, 2150, "Metrics/BlockLength: Block has too many lines. [59/25]", 163524539] + ] +} diff --git a/gems/ruby-merge/Gemfile.lock b/gems/ruby-merge/Gemfile.lock index 08d087e54..f5a2b0301 100644 --- a/gems/ruby-merge/Gemfile.lock +++ b/gems/ruby-merge/Gemfile.lock @@ -7,7 +7,7 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/ast-merge specs: ast-merge (7.1.0) benchmark @@ -16,7 +16,7 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/tree_haver specs: tree_haver (7.1.0) citrus (~> 3.0) @@ -105,7 +105,7 @@ GEM rdoc (>= 4.0.0) reline (>= 0.4.2) json (2.21.1) - kettle-dev (2.3.8) + kettle-dev (2.3.9) emoji_regex (>= 15.0) kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) @@ -488,7 +488,7 @@ CHECKSUMS io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 - kettle-dev (2.3.8) sha256=9d716ff21c660a730cb4e8d41e2e2f0630a28167a354b6e2924e242102aef72c + kettle-dev (2.3.9) kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f kettle-soup-cover (3.0.4) kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 diff --git a/gems/tree_haver/.rubocop_gradual.lock b/gems/tree_haver/.rubocop_gradual.lock new file mode 100644 index 000000000..5daabdc24 --- /dev/null +++ b/gems/tree_haver/.rubocop_gradual.lock @@ -0,0 +1,500 @@ +{ + ".simplecov:2494900725": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "Rakefile:1868927885": [ + [18, 121, 17, "Layout/LineLength: Line is too long. [137/120]", 174264873], + [79, 3, 1023, "Metrics/BlockLength: Block has too many lines. [32/25]", 54868638], + [163, 121, 22, "Layout/LineLength: Line is too long. [142/120]", 1367093088], + [166, 121, 18, "Layout/LineLength: Line is too long. [138/120]", 3881946477] + ], + "gemfiles/modular/benchmark/r4/v0.5.gemfile:3644720371": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/benchmark/vHEAD.gemfile:2838879269": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/cgi/r4/v0.5.gemfile:367169322": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/cgi/vHEAD.gemfile:2729540777": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/erb/r2/v3.0.gemfile:1688285565": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/erb/r3/v5.0.gemfile:2394062339": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/erb/r4/v5.0.gemfile:2394062339": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/erb/vHEAD.gemfile:981929959": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/mutex_m/r2/v0.3.gemfile:4055275004": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/mutex_m/r3/v0.3.gemfile:4055275004": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/mutex_m/r4/v0.3.gemfile:4055275004": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/mutex_m/vHEAD.gemfile:556854763": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/rspec.gemfile:2263543889": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/stringio/r2/v3.0.gemfile:821604304": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/stringio/r3/v3.0.gemfile:821604304": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/stringio/r4/v3.0.gemfile:821604304": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/stringio/vHEAD.gemfile:1045839691": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/webrick/r4/v1.9.gemfile:3092661193": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/webrick/vHEAD.gemfile:3867684682": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/x_std_libs.gemfile:2324400122": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/x_std_libs/r2/libs.gemfile:36276542": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] + ], + "gemfiles/modular/x_std_libs/r3/libs.gemfile:4030570297": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] + ], + "gemfiles/modular/x_std_libs/r4/libs.gemfile:732451732": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] + ], + "gemfiles/modular/x_std_libs/vHEAD.gemfile:2390363993": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] + ], + "lib/tree_haver.rb:312280314": [ + [49, 1, 16, "Style/Documentation: Missing top-level documentation comment for `module TreeHaver`.", 3627168465], + [49, 1, 17806, "Metrics/ModuleLength: Module has too many lines. [462/100]", 765750911], + [67, 3, 566, "Metrics/MethodLength: Method has too many lines. [12/10]", 1536513137], + [124, 3, 272, "Metrics/MethodLength: Method has too many lines. [11/10]", 505877912], + [156, 3, 543, "Metrics/MethodLength: Method has too many lines. [14/10]", 3733215372], + [221, 3, 458, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `backend_module` is too high. [9/7]", 73937708], + [221, 3, 458, "Metrics/MethodLength: Method has too many lines. [12/10]", 73937708], + [221, 3, 458, "Metrics/PerceivedComplexity: Perceived complexity for `backend_module` is too high. [9/8]", 73937708], + [257, 3, 1147, "Metrics/AbcSize: Assignment Branch Condition size for `register_language` is too high. [<0, 20, 10> 22.36/17]", 738075279], + [257, 3, 1147, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `register_language` is too high. [11/7]", 738075279], + [257, 3, 1147, "Metrics/MethodLength: Method has too many lines. [16/10]", 738075279], + [257, 3, 1147, "Metrics/PerceivedComplexity: Perceived complexity for `register_language` is too high. [11/8]", 738075279], + [257, 24, 165, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [9/5]", 2985413937], + [292, 3, 1969, "Metrics/AbcSize: Assignment Branch Condition size for `parser_for` is too high. [<14, 35, 18> 41.77/17]", 3351435495], + [292, 3, 1969, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `parser_for` is too high. [19/7]", 3351435495], + [292, 3, 1969, "Metrics/MethodLength: Method has too many lines. [39/10]", 3351435495], + [292, 3, 1969, "Metrics/PerceivedComplexity: Perceived complexity for `parser_for` is too high. [19/8]", 3351435495], + [292, 17, 155, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [8/5]", 1417642817], + [347, 3, 2089, "Metrics/MethodLength: Method has too many lines. [51/10]", 2791676388], + [401, 3, 704, "Metrics/AbcSize: Assignment Branch Condition size for `requested_backend_type` is too high. [<4, 17, 9> 19.65/17]", 3087691662], + [401, 3, 704, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `requested_backend_type` is too high. [8/7]", 3087691662], + [401, 3, 704, "Metrics/MethodLength: Method has too many lines. [14/10]", 3087691662], + [401, 3, 704, "Metrics/PerceivedComplexity: Perceived complexity for `requested_backend_type` is too high. [9/8]", 3087691662], + [453, 3, 696, "Metrics/MethodLength: Method has too many lines. [14/10]", 307274721], + [484, 3, 422, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `registered_backend_type_available?` is too high. [8/7]", 1544952013], + [554, 3, 489, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `backend_module_for` is too high. [10/7]", 3448932255], + [554, 3, 489, "Metrics/MethodLength: Method has too many lines. [22/10]", 3448932255] + ], + "lib/tree_haver/backend_api.rb:3354059061": [ + [30, 3, 12181, "Metrics/ModuleLength: Module has too many lines. [243/100]", 205645546], + [139, 5, 8882, "Metrics/ClassLength: Class has too many lines. [180/100]", 4281605197], + [145, 7, 1502, "Metrics/AbcSize: Assignment Branch Condition size for `validate` is too high. [<4, 22, 10> 24.49/17]", 747017743], + [145, 7, 1502, "Metrics/MethodLength: Method has too many lines. [31/10]", 747017743], + [145, 7, 1502, "Metrics/PerceivedComplexity: Perceived complexity for `validate` is too high. [11/8]", 747017743], + [213, 7, 903, "Metrics/MethodLength: Method has too many lines. [24/10]", 3041411230], + [261, 7, 1271, "Metrics/AbcSize: Assignment Branch Condition size for `validate_capabilities_hash` is too high. [<7, 27, 7> 28.76/17]", 3965262932], + [261, 7, 1271, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `validate_capabilities_hash` is too high. [8/7]", 3965262932], + [261, 7, 1271, "Metrics/MethodLength: Method has too many lines. [25/10]", 3965262932], + [277, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 2253399502], + [296, 7, 908, "Metrics/AbcSize: Assignment Branch Condition size for `validate_language` is too high. [<6, 17, 4> 18.47/17]", 733551867], + [315, 7, 797, "Metrics/AbcSize: Assignment Branch Condition size for `validate_parser` is too high. [<5, 16, 7> 18.17/17]", 1229041751], + [315, 7, 797, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `validate_parser` is too high. [8/7]", 1229041751], + [315, 7, 797, "Metrics/MethodLength: Method has too many lines. [15/10]", 1229041751], + [349, 7, 862, "Metrics/AbcSize: Assignment Branch Condition size for `validate_node_class` is too high. [<8, 18, 8> 21.26/17]", 1873188195], + [349, 7, 862, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `validate_node_class` is too high. [8/7]", 1873188195], + [349, 7, 862, "Metrics/MethodLength: Method has too many lines. [20/10]", 1873188195], + [349, 7, 862, "Metrics/PerceivedComplexity: Perceived complexity for `validate_node_class` is too high. [9/8]", 1873188195], + [375, 11, 20, "Naming/PredicatePrefix: Rename `has_method_or_alias?` to `method_or_alias?`.", 285116235] + ], + "lib/tree_haver/backend_context.rb:159197618": [ + [3, 1, 16, "Style/Documentation: Missing top-level documentation comment for `module TreeHaver`.", 3627168465] + ], + "lib/tree_haver/backend_registry.rb:4046212912": [ + [4, 3, 22, "Style/Documentation: Missing top-level documentation comment for `module TreeHaver::BackendRegistry`.", 733935278], + [4, 3, 5121, "Metrics/ModuleLength: Module has too many lines. [152/100]", 1483988260], + [39, 5, 382, "Metrics/MethodLength: Method has too many lines. [11/10]", 2000730238], + [48, 16, 1, "Style/DoubleNegation: Avoid the use of double negation (`!!`).", 177540], + [55, 5, 889, "Metrics/AbcSize: Assignment Branch Condition size for `register_tag` is too high. [<5, 20, 5> 21.21/17]", 2276764069], + [55, 5, 889, "Metrics/MethodLength: Method has too many lines. [18/10]", 2276764069], + [105, 5, 397, "Metrics/MethodLength: Method has too many lines. [11/10]", 4007185633] + ], + "lib/tree_haver/backends/citrus.rb:3181984499": [ + [40, 9, 449, "Metrics/MethodLength: Method has too many lines. [11/10]", 1138819533], + [173, 11, 1133, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `from_library` is too high. [11/7]", 2613019266], + [173, 11, 1133, "Metrics/MethodLength: Method has too many lines. [16/10]", 2613019266], + [173, 11, 1133, "Metrics/PerceivedComplexity: Perceived complexity for `from_library` is too high. [11/8]", 2613019266], + [230, 9, 597, "Metrics/MethodLength: Method has too many lines. [12/10]", 3923424594], + [403, 9, 810, "Metrics/AbcSize: Assignment Branch Condition size for `structural?` is too high. [<3, 19, 8> 20.83/17]", 3166173256], + [403, 9, 810, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `structural?` is too high. [9/7]", 3166173256], + [403, 9, 810, "Metrics/MethodLength: Method has too many lines. [12/10]", 3166173256], + [403, 9, 810, "Metrics/PerceivedComplexity: Perceived complexity for `structural?` is too high. [9/8]", 3166173256], + [436, 9, 1272, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `extract_type_from_event` is too high. [9/7]", 2022108773], + [436, 9, 1272, "Metrics/MethodLength: Method has too many lines. [16/10]", 2022108773], + [436, 9, 1272, "Metrics/PerceivedComplexity: Perceived complexity for `extract_type_from_event` is too high. [10/8]", 2022108773], + [460, 11, 207, "Style/CaseLikeIf: Convert `if-elsif` to `case-when`.", 1995588659], + [476, 61, 10, "Style/NumericPredicate: Use `offset.positive?` instead of `offset > 0`.", 2454414278] + ], + "lib/tree_haver/backends/ffi.rb:691415497": [ + [83, 9, 853, "Metrics/MethodLength: Method has too many lines. [15/10]", 1876257977], + [147, 7, 7352, "Metrics/ModuleLength: Module has too many lines. [111/100]", 4125377349], + [148, 9, 7320, "Metrics/ClassLength: Class has too many lines. [109/100]", 1130902814], + [183, 11, 559, "Metrics/MethodLength: Method has too many lines. [11/10]", 678018999], + [232, 11, 4265, "Metrics/AbcSize: Assignment Branch Condition size for `try_load!` is too high. [<11, 40, 10> 42.67/17]", 2312962113], + [232, 11, 4265, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `try_load!` is too high. [10/7]", 2312962113], + [232, 11, 4265, "Metrics/MethodLength: Method has too many lines. [58/10]", 2312962113], + [232, 11, 4265, "Metrics/PerceivedComplexity: Perceived complexity for `try_load!` is too high. [11/8]", 2312962113], + [260, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2086221887], + [262, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 2163360042], + [367, 9, 312, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `<=>` is too high. [8/7]", 2433292528], + [437, 11, 4377, "Metrics/AbcSize: Assignment Branch Condition size for `from_library` is too high. [<16, 30, 18> 38.47/17]", 3403850855], + [437, 11, 4377, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `from_library` is too high. [17/7]", 3403850855], + [437, 11, 4377, "Metrics/MethodLength: Method has too many lines. [43/10]", 3403850855], + [437, 11, 4377, "Metrics/PerceivedComplexity: Perceived complexity for `from_library` is too high. [19/8]", 3403850855], + [437, 47, 4, "Lint/UnusedMethodArgument: Unused method argument - `name`.", 2087876002], + [502, 121, 11, "Layout/LineLength: Line is too long. [131/120]", 2415433817], + [554, 9, 3159, "Metrics/AbcSize: Assignment Branch Condition size for `language=` is too high. [<4, 44, 11> 45.53/17]", 1815427493], + [554, 9, 3159, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `language=` is too high. [10/7]", 1815427493], + [554, 9, 3159, "Metrics/MethodLength: Method has too many lines. [40/10]", 1815427493], + [554, 9, 3159, "Metrics/PerceivedComplexity: Perceived complexity for `language=` is too high. [10/8]", 1815427493], + [715, 7, 10494, "Metrics/ClassLength: Class has too many lines. [129/100]", 3710916551], + [744, 45, 9, "Style/NumericPredicate: Use `index.negative?` instead of `index < 0`.", 4215255415], + [807, 13, 10, "Naming/PredicatePrefix: Rename `has_error?` to `error?`.", 946854183], + [889, 21, 9, "Style/NumericPredicate: Use `index.negative?` instead of `index < 0`.", 4215255415], + [933, 9, 694, "Metrics/AbcSize: Assignment Branch Condition size for `descendant_for_point_range` is too high. [<7, 21, 5> 22.69/17]", 979329510], + [953, 9, 706, "Metrics/AbcSize: Assignment Branch Condition size for `named_descendant_for_point_range` is too high. [<7, 21, 5> 22.69/17]", 2494446138] + ], + "lib/tree_haver/backends/java.rb:3360169733": [ + [134, 7, 815, "Metrics/AbcSize: Assignment Branch Condition size for `configure_native_library_path!` is too high. [<4, 17, 6> 18.47/17]", 1362415302], + [227, 121, 7, "Layout/LineLength: Line is too long. [127/120]", 3409700051], + [260, 7, 9885, "Metrics/ClassLength: Class has too many lines. [114/100]", 136252046], + [292, 9, 312, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `<=>` is too high. [8/7]", 2433292528], + [340, 11, 4098, "Metrics/AbcSize: Assignment Branch Condition size for `from_library` is too high. [<19, 32, 14> 39.76/17]", 3050250526], + [340, 11, 4098, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `from_library` is too high. [14/7]", 3050250526], + [340, 11, 4098, "Metrics/MethodLength: Method has too many lines. [48/10]", 3050250526], + [340, 11, 4098, "Metrics/PerceivedComplexity: Perceived complexity for `from_library` is too high. [16/8]", 3050250526], + [426, 11, 2084, "Metrics/AbcSize: Assignment Branch Condition size for `load_by_name` is too high. [<11, 17, 6> 21.12/17]", 226213748], + [426, 11, 2084, "Metrics/MethodLength: Method has too many lines. [35/10]", 226213748], + [542, 9, 1016, "Metrics/MethodLength: Method has too many lines. [17/10]", 4123264427], + [649, 9, 702, "Metrics/MethodLength: Method has too many lines. [14/10]", 1334016319], + [649, 17, 89, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 3152137646], + [728, 9, 583, "Metrics/MethodLength: Method has too many lines. [11/10]", 2457478600], + [816, 13, 10, "Naming/PredicatePrefix: Rename `has_error?` to `error?`.", 946854183] + ], + "lib/tree_haver/backends/mri.rb:863330290": [ + [59, 9, 916, "Metrics/MethodLength: Method has too many lines. [15/10]", 749971754], + [179, 9, 312, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `<=>` is too high. [8/7]", 2433292528], + [232, 11, 1562, "Metrics/MethodLength: Method has too many lines. [11/10]", 3858647816] + ], + "lib/tree_haver/backends/parslet.rb:4170691266": [ + [41, 9, 323, "Metrics/MethodLength: Method has too many lines. [11/10]", 694290592], + [108, 121, 3, "Layout/LineLength: Line is too long. [123/120]", 193340030], + [172, 11, 1133, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `from_library` is too high. [11/7]", 2613019266], + [172, 11, 1133, "Metrics/MethodLength: Method has too many lines. [16/10]", 2613019266], + [172, 11, 1133, "Metrics/PerceivedComplexity: Perceived complexity for `from_library` is too high. [11/8]", 2613019266], + [246, 9, 591, "Metrics/MethodLength: Method has too many lines. [12/10]", 3007454066], + [335, 7, 6287, "Metrics/ClassLength: Class has too many lines. [155/100]", 3100555518], + [362, 9, 452, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `start_byte` is too high. [8/7]", 2663206926], + [362, 9, 452, "Metrics/MethodLength: Method has too many lines. [12/10]", 2663206926], + [380, 9, 557, "Metrics/MethodLength: Method has too many lines. [12/10]", 2982914846], + [443, 9, 404, "Metrics/MethodLength: Method has too many lines. [11/10]", 1111982079], + [495, 61, 10, "Style/NumericPredicate: Use `offset.positive?` instead of `offset > 0`.", 2454414278], + [501, 9, 313, "Metrics/MethodLength: Method has too many lines. [13/10]", 1927903077], + [519, 9, 448, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `find_first_slice` is too high. [8/7]", 229178429], + [519, 9, 448, "Metrics/MethodLength: Method has too many lines. [16/10]", 229178429], + [524, 17, 11, "Style/HashEachMethods: Use `each_value` instead of `values.each`.", 236538172], + [539, 9, 461, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `find_last_slice` is too high. [8/7]", 3960808114], + [539, 9, 461, "Metrics/MethodLength: Method has too many lines. [16/10]", 3960808114] + ], + "lib/tree_haver/backends/prism.rb:265399087": [ + [39, 9, 448, "Metrics/MethodLength: Method has too many lines. [11/10]", 2383415890], + [70, 121, 13, "Layout/LineLength: Line is too long. [133/120]", 721867551], + [71, 9, 712, "Metrics/MethodLength: Method has too many lines. [12/10]", 1576927704], + [145, 41, 6, "Lint/UnusedMethodArgument: Unused method argument - `symbol`.", 2153517219], + [182, 9, 554, "Metrics/MethodLength: Method has too many lines. [16/10]", 3452414947], + [250, 13, 11, "Naming/PredicatePrefix: Rename `has_errors?` to `errors?`.", 1181419252], + [275, 69, 27, "Lint/HashCompareByIdentity: Use `Hash#compare_by_identity` instead of using `object_id` for keys.", 1979346241], + [301, 13, 64, "Lint/HashCompareByIdentity: Use `Hash#compare_by_identity` instead of using `object_id` for keys.", 1942915391], + [305, 9, 519, "Metrics/AbcSize: Assignment Branch Condition size for `classify_comment_hint` is too high. [<5, 20, 5> 21.21/17]", 869270335], + [485, 13, 10, "Naming/PredicatePrefix: Rename `has_error?` to `error?`.", 946854183], + [554, 24, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765] + ], + "lib/tree_haver/backends/psych.rb:1528613408": [ + [30, 9, 448, "Metrics/MethodLength: Method has too many lines. [11/10]", 2367418678], + [59, 9, 601, "Metrics/MethodLength: Method has too many lines. [11/10]", 2824278890], + [342, 9, 901, "Metrics/AbcSize: Assignment Branch Condition size for `extract_text_from_location` is too high. [<8, 23, 18> 30.28/17]", 1252700264], + [342, 9, 901, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `extract_text_from_location` is too high. [14/7]", 1252700264], + [342, 9, 901, "Metrics/MethodLength: Method has too many lines. [22/10]", 1252700264], + [342, 9, 901, "Metrics/PerceivedComplexity: Perceived complexity for `extract_text_from_location` is too high. [16/8]", 1252700264] + ], + "lib/tree_haver/backends/rust.rb:3784474048": [ + [52, 9, 548, "Metrics/MethodLength: Method has too many lines. [15/10]", 3791803966], + [156, 121, 1, "Layout/LineLength: Line is too long. [121/120]", 177548] + ], + "lib/tree_haver/backends/tslp.rb:3474467412": [ + [10, 5, 6880, "Metrics/ModuleLength: Module has too many lines. [116/100]", 335751325], + [33, 9, 663, "Metrics/MethodLength: Method has too many lines. [16/10]", 2812178140], + [112, 9, 652, "Metrics/MethodLength: Method has too many lines. [12/10]", 104646199], + [124, 35, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], + [145, 7, 14, "Style/Documentation: Missing top-level documentation comment for `class TreeHaver::Backends::Tslp::Language`.", 3674592793], + [157, 7, 12, "Style/Documentation: Missing top-level documentation comment for `class TreeHaver::Backends::Tslp::Parser`.", 2485220908], + [158, 9, 582, "Metrics/AbcSize: Assignment Branch Condition size for `parse` is too high. [<2, 17, 4> 17.58/17]", 103430155], + [180, 7, 10, "Style/Documentation: Missing top-level documentation comment for `class TreeHaver::Backends::Tslp::Tree`.", 3516465773], + [186, 7, 10, "Style/Documentation: Missing top-level documentation comment for `class TreeHaver::Backends::Tslp::Node`.", 3515419275], + [220, 13, 10, "Naming/PredicatePrefix: Rename `has_error?` to `error?`.", 946854183] + ], + "lib/tree_haver/base/comment.rb:699160654": [ + [10, 5, 8183, "Metrics/ClassLength: Class has too many lines. [152/100]", 4001235397] + ], + "lib/tree_haver/base/node.rb:586469776": [ + [36, 5, 7668, "Metrics/ClassLength: Class has too many lines. [156/100]", 171773185], + [162, 11, 10, "Naming/PredicatePrefix: Rename `has_error?` to `error?`.", 946854183], + [208, 27, 8, "Style/NumericPredicate: Use `cmp.zero?` instead of `cmp == 0`.", 736104011], + [239, 7, 888, "Metrics/AbcSize: Assignment Branch Condition size for `source_position` is too high. [<6, 20, 12> 24.08/17]", 3968023659], + [239, 7, 888, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `source_position` is too high. [9/7]", 3968023659], + [239, 7, 888, "Metrics/MethodLength: Method has too many lines. [28/10]", 3968023659], + [239, 7, 888, "Metrics/PerceivedComplexity: Perceived complexity for `source_position` is too high. [13/8]", 3968023659], + [306, 7, 355, "Metrics/MethodLength: Method has too many lines. [11/10]", 1012295608] + ], + "lib/tree_haver/base/tree.rb:3081630142": [ + [89, 15, 145, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 1155535733], + [103, 11, 10, "Naming/PredicatePrefix: Rename `has_error?` to `error?`.", 946854183] + ], + "lib/tree_haver/citrus_grammar_finder.rb:2540014236": [ + [31, 3, 7013, "Metrics/ClassLength: Class has too many lines. [102/100]", 245808593], + [66, 5, 3770, "Metrics/AbcSize: Assignment Branch Condition size for `available?` is too high. [<16, 52, 21> 58.32/17]", 3886463212], + [66, 5, 3770, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `available?` is too high. [22/7]", 3886463212], + [66, 5, 3770, "Metrics/MethodLength: Method has too many lines. [50/10]", 3886463212], + [66, 5, 3770, "Metrics/PerceivedComplexity: Perceived complexity for `available?` is too high. [22/8]", 3886463212], + [94, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5858894] + ], + "lib/tree_haver/contracts.rb:1571706604": [ + [3, 1, 16, "Style/Documentation: Missing top-level documentation comment for `module TreeHaver`.", 3627168465], + [3, 1, 28139, "Metrics/ModuleLength: Module has too many lines. [924/100]", 3701899480], + [91, 5, 732, "Metrics/AbcSize: Assignment Branch Condition size for `to_h` is too high. [<0, 18, 2> 18.11/17]", 3031678572], + [91, 5, 732, "Metrics/MethodLength: Method has too many lines. [17/10]", 3031678572], + [170, 5, 697, "Metrics/MethodLength: Method has too many lines. [18/10]", 389212725], + [231, 5, 507, "Metrics/MethodLength: Method has too many lines. [13/10]", 2631332781], + [329, 5, 580, "Metrics/MethodLength: Method has too many lines. [13/10]", 2166080747], + [558, 5, 558, "Metrics/AbcSize: Assignment Branch Condition size for `to_h` is too high. [<0, 17, 4> 17.46/17]", 2109105399], + [558, 5, 558, "Metrics/MethodLength: Method has too many lines. [18/10]", 2109105399], + [610, 3, 780, "Metrics/AbcSize: Assignment Branch Condition size for `library_path_errors` is too high. [<3, 20, 10> 22.56/17]", 1003454820], + [610, 3, 780, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `library_path_errors` is too high. [10/7]", 1003454820], + [610, 3, 780, "Metrics/MethodLength: Method has too many lines. [14/10]", 1003454820], + [610, 3, 780, "Metrics/PerceivedComplexity: Perceived complexity for `library_path_errors` is too high. [10/8]", 1003454820], + [652, 3, 686, "Metrics/MethodLength: Method has too many lines. [16/10]", 2530945134], + [674, 3, 483, "Metrics/MethodLength: Method has too many lines. [15/10]", 3654427448], + [693, 3, 511, "Metrics/MethodLength: Method has too many lines. [16/10]", 145071639], + [770, 5, 384, "Metrics/AbcSize: Assignment Branch Condition size for `to_h` is too high. [<0, 19, 6> 19.92/17]", 1287649270], + [841, 5, 449, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `to_h` is too high. [10/7]", 1722332092], + [841, 5, 449, "Metrics/PerceivedComplexity: Perceived complexity for `to_h` is too high. [10/8]", 1722332092], + [873, 121, 1, "Layout/LineLength: Line is too long. [121/120]", 177610], + [874, 5, 420, "Metrics/MethodLength: Method has too many lines. [12/10]", 722580369], + [914, 42, 8, "Lint/StructNewOverride: `:entries` member overrides `Struct#entries` and it may be unexpected.", 999966509], + [937, 3, 473, "Metrics/MethodLength: Method has too many lines. [18/10]", 1284459726], + [958, 3, 655, "Metrics/AbcSize: Assignment Branch Condition size for `byte_offset_for_point` is too high. [<7, 25, 14> 29.5/17]", 1278853347], + [958, 3, 655, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `byte_offset_for_point` is too high. [9/7]", 1278853347], + [958, 3, 655, "Metrics/MethodLength: Method has too many lines. [17/10]", 1278853347], + [958, 3, 655, "Metrics/PerceivedComplexity: Perceived complexity for `byte_offset_for_point` is too high. [10/8]", 1278853347] + ], + "lib/tree_haver/grammar_finder.rb:262426767": [ + [55, 3, 13737, "Metrics/ClassLength: Class has too many lines. [201/100]", 842233610], + [155, 5, 1710, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `find_library_path` is too high. [8/7]", 4164717952], + [155, 5, 1710, "Metrics/MethodLength: Method has too many lines. [25/10]", 4164717952], + [269, 7, 845, "Metrics/MethodLength: Method has too many lines. [12/10]", 916567473], + [315, 5, 577, "Metrics/MethodLength: Method has too many lines. [16/10]", 651056353], + [340, 5, 623, "Metrics/MethodLength: Method has too many lines. [14/10]", 1438381615], + [360, 5, 846, "Metrics/MethodLength: Method has too many lines. [12/10]", 667615068], + [398, 5, 730, "Metrics/MethodLength: Method has too many lines. [13/10]", 927307656] + ], + "lib/tree_haver/kaitai_backend.rb:335397596": [ + [3, 1, 16, "Style/Documentation: Missing top-level documentation comment for `module TreeHaver`.", 3627168465] + ], + "lib/tree_haver/language.rb:2775049278": [ + [39, 3, 12087, "Metrics/ModuleLength: Module has too many lines. [115/100]", 221887443], + [40, 5, 12061, "Metrics/ClassLength: Class has too many lines. [113/100]", 309443185], + [89, 7, 1966, "Metrics/AbcSize: Assignment Branch Condition size for `from_library` is too high. [<4, 20, 10> 22.72/17]", 980659500], + [89, 7, 1966, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `from_library` is too high. [9/7]", 980659500], + [89, 7, 1966, "Metrics/MethodLength: Method has too many lines. [31/10]", 980659500], + [89, 7, 1966, "Metrics/PerceivedComplexity: Perceived complexity for `from_library` is too high. [11/8]", 980659500], + [114, 121, 1, "Layout/LineLength: Line is too long. [121/120]", 177538], + [156, 7, 4289, "Metrics/AbcSize: Assignment Branch Condition size for `method_missing` is too high. [<10, 39, 30> 50.21/17]", 1314689525], + [156, 7, 4289, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `method_missing` is too high. [24/7]", 1314689525], + [156, 7, 4289, "Metrics/MethodLength: Method has too many lines. [56/10]", 1314689525], + [156, 7, 4289, "Metrics/PerceivedComplexity: Perceived complexity for `method_missing` is too high. [26/8]", 1314689525], + [274, 7, 786, "Metrics/MethodLength: Method has too many lines. [12/10]", 3697766033] + ], + "lib/tree_haver/language_pack.rb:3024861237": [ + [3, 1, 16, "Style/Documentation: Missing top-level documentation comment for `module TreeHaver`.", 3627168465] + ], + "lib/tree_haver/language_registry.rb:3137013690": [ + [83, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5861089], + [111, 5, 834, "Metrics/AbcSize: Assignment Branch Condition size for `with_registration` is too high. [<11, 22, 5> 25.1/17]", 1103319853], + [111, 5, 834, "Metrics/MethodLength: Method has too many lines. [25/10]", 1103319853] + ], + "lib/tree_haver/library_path_utils.rb:1552423902": [ + [32, 5, 861, "Metrics/MethodLength: Method has too many lines. [12/10]", 1638068630] + ], + "lib/tree_haver/node.rb:715762930": [ + [62, 3, 16601, "Metrics/ClassLength: Class has too many lines. [237/100]", 2290466920], + [136, 5, 708, "Metrics/AbcSize: Assignment Branch Condition size for `start_point` is too high. [<2, 19, 7> 20.35/17]", 2066418249], + [136, 5, 708, "Metrics/MethodLength: Method has too many lines. [17/10]", 2066418249], + [161, 5, 694, "Metrics/AbcSize: Assignment Branch Condition size for `end_point` is too high. [<2, 19, 7> 20.35/17]", 2127773446], + [161, 5, 694, "Metrics/MethodLength: Method has too many lines. [17/10]", 2127773446], + [232, 5, 948, "Metrics/AbcSize: Assignment Branch Condition size for `text` is too high. [<1, 14, 11> 17.83/17]", 748349201], + [232, 5, 948, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `text` is too high. [9/7]", 748349201], + [232, 5, 948, "Metrics/MethodLength: Method has too many lines. [16/10]", 748349201], + [232, 5, 948, "Metrics/PerceivedComplexity: Perceived complexity for `text` is too high. [11/8]", 748349201], + [259, 9, 10, "Naming/PredicatePrefix: Rename `has_error?` to `error?`.", 946854183], + [328, 5, 994, "Metrics/AbcSize: Assignment Branch Condition size for `named_child` is too high. [<6, 13, 10> 17.46/17]", 3449163117], + [328, 5, 994, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `named_child` is too high. [9/7]", 3449163117], + [328, 5, 994, "Metrics/MethodLength: Method has too many lines. [21/10]", 3449163117], + [328, 5, 994, "Metrics/PerceivedComplexity: Perceived complexity for `named_child` is too high. [10/8]", 3449163117], + [366, 5, 734, "Metrics/MethodLength: Method has too many lines. [15/10]", 3099919150], + [425, 7, 4, "Style/EmptyElse: Redundant `else`-clause.", 2087423834] + ], + "lib/tree_haver/parser.rb:1959976510": [ + [71, 3, 15231, "Metrics/ClassLength: Class has too many lines. [181/100]", 2262931609], + [84, 5, 938, "Metrics/MethodLength: Method has too many lines. [13/10]", 569209133], + [116, 5, 844, "Metrics/MethodLength: Method has too many lines. [11/10]", 3700471369], + [141, 5, 583, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `backend` is too high. [9/7]", 942469984], + [141, 5, 583, "Metrics/MethodLength: Method has too many lines. [20/10]", 942469984], + [237, 5, 1114, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `parse_string` is too high. [8/7]", 2146281390], + [237, 5, 1114, "Metrics/MethodLength: Method has too many lines. [16/10]", 2146281390], + [237, 5, 1114, "Metrics/PerceivedComplexity: Perceived complexity for `parse_string` is too high. [10/8]", 2146281390], + [273, 5, 1162, "Metrics/AbcSize: Assignment Branch Condition size for `switch_backend_for_language` is too high. [<10, 11, 11> 18.49/17]", 3918477333], + [273, 5, 1162, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `switch_backend_for_language` is too high. [11/7]", 3918477333], + [273, 5, 1162, "Metrics/MethodLength: Method has too many lines. [26/10]", 3918477333], + [273, 5, 1162, "Metrics/PerceivedComplexity: Perceived complexity for `switch_backend_for_language` is too high. [9/8]", 3918477333], + [320, 5, 3598, "Metrics/AbcSize: Assignment Branch Condition size for `unwrap_language` is too high. [<4, 32, 32> 45.43/17]", 2683894777], + [320, 5, 3598, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `unwrap_language` is too high. [29/7]", 2683894777], + [320, 5, 3598, "Metrics/MethodLength: Method has too many lines. [55/10]", 2683894777], + [320, 5, 3598, "Metrics/PerceivedComplexity: Perceived complexity for `unwrap_language` is too high. [23/8]", 2683894777], + [414, 5, 892, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `try_reload_language_for_backend` is too high. [9/7]", 1872419716], + [414, 5, 892, "Metrics/MethodLength: Method has too many lines. [14/10]", 1872419716], + [414, 5, 892, "Metrics/PerceivedComplexity: Perceived complexity for `try_reload_language_for_backend` is too high. [9/8]", 1872419716] + ], + "lib/tree_haver/parslet_grammar_finder.rb:756779364": [ + [32, 3, 6418, "Metrics/ClassLength: Class has too many lines. [105/100]", 2916347470], + [67, 5, 2630, "Metrics/AbcSize: Assignment Branch Condition size for `available?` is too high. [<14, 39, 19> 45.59/17]", 1827795944], + [67, 5, 2630, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `available?` is too high. [20/7]", 1827795944], + [67, 5, 2630, "Metrics/MethodLength: Method has too many lines. [43/10]", 1827795944], + [67, 5, 2630, "Metrics/PerceivedComplexity: Perceived complexity for `available?` is too high. [20/8]", 1827795944] + ], + "lib/tree_haver/path_validator.rb:1827441298": [ + [31, 3, 11571, "Metrics/ModuleLength: Module has too many lines. [133/100]", 3916793077], + [71, 5, 1048, "Metrics/AbcSize: Assignment Branch Condition size for `trusted_directories` is too high. [<4, 16, 5> 17.23/17]", 2683168069], + [71, 5, 1048, "Metrics/MethodLength: Method has too many lines. [13/10]", 2683168069], + [182, 5, 1000, "Metrics/AbcSize: Assignment Branch Condition size for `safe_library_path?` is too high. [<1, 15, 15> 21.24/17]", 3331427816], + [182, 5, 1000, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `safe_library_path?` is too high. [15/7]", 3331427816], + [182, 5, 1000, "Metrics/MethodLength: Method has too many lines. [11/10]", 3331427816], + [182, 5, 1000, "Metrics/PerceivedComplexity: Perceived complexity for `safe_library_path?` is too high. [15/8]", 3331427816], + [314, 5, 911, "Metrics/AbcSize: Assignment Branch Condition size for `validation_errors` is too high. [<2, 21, 13> 24.78/17]", 1249065882], + [314, 5, 911, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `validation_errors` is too high. [13/7]", 1249065882], + [314, 5, 911, "Metrics/MethodLength: Method has too many lines. [14/10]", 1249065882], + [314, 5, 911, "Metrics/PerceivedComplexity: Perceived complexity for `validation_errors` is too high. [13/8]", 1249065882], + [345, 9, 20, "Naming/PredicatePrefix: Rename `has_valid_extension?` to `valid_extension?`.", 2041908655] + ], + "lib/tree_haver/peg_backends.rb:2882446693": [ + [3, 1, 16, "Style/Documentation: Missing top-level documentation comment for `module TreeHaver`.", 3627168465], + [37, 3, 611, "Metrics/MethodLength: Method has too many lines. [21/10]", 2394303132], + [39, 11, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], + [61, 3, 377, "Metrics/MethodLength: Method has too many lines. [13/10]", 1137341195] + ], + "lib/tree_haver/rspec/dependency_tags.rb:2954930617": [ + [7, 5, 21, "Style/Documentation: Missing top-level documentation comment for `module TreeHaver::RSpec::DependencyTags`.", 2626933713] + ], + "lib/tree_haver/tree.rb:3332079774": [ + [129, 5, 1443, "Metrics/AbcSize: Assignment Branch Condition size for `edit` is too high. [<8, 18, 7> 20.9/17]", 4208399016], + [129, 5, 1443, "Metrics/MethodLength: Method has too many lines. [24/10]", 4208399016], + [129, 13, 89, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 3152137646] + ], + "spec/backend_registry_spec.rb:229950927": [ + [5, 1, 3102, "Metrics/BlockLength: Block has too many lines. [62/25]", 3416335650] + ], + "spec/backends/tslp_spec.rb:3041579573": [ + [5, 1, 8455, "Metrics/BlockLength: Block has too many lines. [173/25]", 3520038900], + [71, 59, 9, "Lint/DuplicateMethods: Method `::Object#parse` is defined at both spec/backends/tslp_spec.rb:55 and spec/backends/tslp_spec.rb:71.", 3551808887], + [87, 3, 1545, "Metrics/BlockLength: Block has too many lines. [33/25]", 1552545577], + [170, 3, 1352, "Metrics/BlockLength: Block has too many lines. [29/25]", 2972556266] + ], + "spec/fixtures_integration_spec.rb:1473080413": [ + [3, 1, 52001, "Metrics/BlockLength: Block has too many lines. [1115/25]", 592858895], + [108, 3, 1282, "Metrics/BlockLength: Block has too many lines. [29/25]", 505243730], + [141, 3, 1840, "Metrics/BlockLength: Block has too many lines. [35/25]", 1365684528], + [180, 3, 1365, "Metrics/BlockLength: Block has too many lines. [33/25]", 1597100003], + [247, 3, 2110, "Metrics/BlockLength: Block has too many lines. [41/25]", 219204301], + [294, 3, 2166, "Metrics/BlockLength: Block has too many lines. [27/25]", 2219571348], + [354, 3, 1786, "Metrics/BlockLength: Block has too many lines. [30/25]", 1655451032], + [432, 3, 1345, "Metrics/BlockLength: Block has too many lines. [26/25]", 1188499098], + [534, 3, 3250, "Metrics/BlockLength: Block has too many lines. [64/25]", 2852118886], + [589, 121, 57, "Layout/LineLength: Line is too long. [177/120]", 2115564430], + [602, 3, 752, "Metrics/AbcSize: Assignment Branch Condition size for `normalized_tree_node` is too high. [<0, 19, 4> 19.42/17]", 1725197185], + [602, 3, 752, "Metrics/MethodLength: Method has too many lines. [18/10]", 1725197185], + [623, 3, 850, "Metrics/AbcSize: Assignment Branch Condition size for `backend_capability` is too high. [<0, 20, 0> 20/17]", 3278569026], + [623, 3, 850, "Metrics/MethodLength: Method has too many lines. [14/10]", 3278569026], + [640, 3, 744, "Metrics/MethodLength: Method has too many lines. [13/10]", 1675624229], + [679, 3, 492, "Metrics/MethodLength: Method has too many lines. [11/10]", 4123526878], + [714, 3, 566, "Metrics/AbcSize: Assignment Branch Condition size for `parse_error_tolerance` is too high. [<1, 17, 1> 17.06/17]", 933590597], + [714, 3, 566, "Metrics/MethodLength: Method has too many lines. [14/10]", 933590597], + [739, 3, 2652, "Metrics/BlockLength: Block has too many lines. [47/25]", 214520278], + [1039, 7, 87, "Lint/ConstantDefinitionInBlock: Do not define constants this way within a block.", 3860036845], + [1045, 7, 60, "Lint/ConstantDefinitionInBlock: Do not define constants this way within a block.", 1411318317], + [1063, 3, 1334, "Metrics/BlockLength: Block has too many lines. [41/25]", 1427111445], + [1069, 7, 134, "Lint/ConstantDefinitionInBlock: Do not define constants this way within a block.", 1166944291], + [1075, 7, 60, "Lint/ConstantDefinitionInBlock: Do not define constants this way within a block.", 1411318317], + [1085, 7, 134, "Lint/ConstantDefinitionInBlock: Do not define constants this way within a block.", 1166944291], + [1091, 7, 60, "Lint/ConstantDefinitionInBlock: Do not define constants this way within a block.", 1411318317], + [1115, 3, 1290, "Metrics/BlockLength: Block has too many lines. [41/25]", 3478080675], + [1121, 7, 157, "Lint/ConstantDefinitionInBlock: Do not define constants this way within a block.", 2460330604], + [1127, 7, 60, "Lint/ConstantDefinitionInBlock: Do not define constants this way within a block.", 1411318317], + [1137, 7, 154, "Lint/ConstantDefinitionInBlock: Do not define constants this way within a block.", 3868502553], + [1143, 7, 60, "Lint/ConstantDefinitionInBlock: Do not define constants this way within a block.", 1411318317], + [1167, 3, 1405, "Metrics/BlockLength: Block has too many lines. [44/25]", 2313436250], + [1173, 7, 134, "Lint/ConstantDefinitionInBlock: Do not define constants this way within a block.", 1166944291], + [1179, 7, 60, "Lint/ConstantDefinitionInBlock: Do not define constants this way within a block.", 1411318317], + [1189, 7, 134, "Lint/ConstantDefinitionInBlock: Do not define constants this way within a block.", 1166944291], + [1195, 7, 60, "Lint/ConstantDefinitionInBlock: Do not define constants this way within a block.", 1411318317] + ], + "spec/grammar_finder_spec.rb:143254687": [ + [5, 1, 3065, "Metrics/BlockLength: Block has too many lines. [51/25]", 4150338550], + [19, 3, 2446, "Metrics/BlockLength: Block has too many lines. [39/25]", 552612354] + ], + "tree_haver.gemspec:3046477115": [ + [16, 121, 19, "Layout/LineLength: Line is too long. [139/120]", 1512975621], + [129, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 2821357214], + [146, 121, 50, "Layout/LineLength: Line is too long. [170/120]", 3888612416], + [147, 121, 29, "Layout/LineLength: Line is too long. [149/120]", 981994949], + [154, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 4229808912] + ] +} From 36de766993e19da549b210ca0f0f209cce7db775 Mon Sep 17 00:00:00 2001 From: "Peter H. Boling" Date: Tue, 21 Jul 2026 18:00:39 -0600 Subject: [PATCH 148/188] =?UTF-8?q?=F0=9F=8E=A8=20Template=20bootstrap=20b?= =?UTF-8?q?y=20kettle-jem=20v7.1.0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gems/ast-crispr/Gemfile.lock | 15 +++++---------- gems/ruby-merge/Gemfile.lock | 30 ++++++++++-------------------- gems/tree_haver/Gemfile.lock | 4 ++-- 3 files changed, 17 insertions(+), 32 deletions(-) diff --git a/gems/ast-crispr/Gemfile.lock b/gems/ast-crispr/Gemfile.lock index e964cc06b..c358a8a1b 100644 --- a/gems/ast-crispr/Gemfile.lock +++ b/gems/ast-crispr/Gemfile.lock @@ -6,15 +6,6 @@ PATH service_actor (~> 3.9) version_gem (~> 1.1, >= 1.1.9) -PATH - remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/ast-merge - specs: - ast-merge (7.1.0) - benchmark - token-resolver (~> 2.0, >= 2.0.4) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - GEM remote: https://gem.coop/ specs: @@ -30,6 +21,11 @@ GEM rubocop (>= 1.0) version_gem (~> 1.1, >= 1.1.14) ast (2.4.3) + ast-merge (7.1.0) + benchmark + token-resolver (~> 2.0, >= 2.0.4) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) backports (3.25.3) benchmark (0.5.0) bigdecimal (4.1.2) @@ -390,7 +386,6 @@ DEPENDENCIES appraisal2 (~> 3.0, >= 3.0.6) appraisal2-rubocop (~> 1.0, >= 1.0.0) ast-crispr! - ast-merge! benchmark (~> 0.5, >= 0.5.0) bundler-audit (~> 0.9.3) cgi (~> 0.5) diff --git a/gems/ruby-merge/Gemfile.lock b/gems/ruby-merge/Gemfile.lock index f5a2b0301..05d635ba1 100644 --- a/gems/ruby-merge/Gemfile.lock +++ b/gems/ruby-merge/Gemfile.lock @@ -6,24 +6,6 @@ PATH tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) -PATH - remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/ast-merge - specs: - ast-merge (7.1.0) - benchmark - token-resolver (~> 2.0, >= 2.0.4) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/tree_haver - specs: - tree_haver (7.1.0) - citrus (~> 3.0) - parslet (~> 2.0) - tree_sitter_language_pack (>= 1.13.2, < 2.0) - version_gem (~> 1.1, >= 1.1.9) - GEM remote: https://gem.coop/ specs: @@ -39,6 +21,11 @@ GEM rubocop (>= 1.0) version_gem (~> 1.1, >= 1.1.14) ast (2.4.3) + ast-merge (7.1.0) + benchmark + token-resolver (~> 2.0, >= 2.0.4) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) backports (3.25.3) benchmark (0.5.0) bigdecimal (4.1.2) @@ -354,6 +341,11 @@ GEM token-resolver (2.0.5) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.14) + tree_haver (7.1.0) + citrus (~> 3.0) + parslet (~> 2.0) + tree_sitter_language_pack (>= 1.13.2, < 2.0) + version_gem (~> 1.1, >= 1.1.9) tree_sitter_language_pack (1.13.3-aarch64-linux) sorbet-runtime (~> 0.5) tree_sitter_language_pack (1.13.3-arm64-darwin) @@ -408,7 +400,6 @@ DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) appraisal2-rubocop (~> 1.0, >= 1.0.0) - ast-merge! benchmark (~> 0.5, >= 0.5.0) bundler-audit (~> 0.9.3) cgi (~> 0.5) @@ -441,7 +432,6 @@ DEPENDENCIES standard (~> 1.56, >= 1.56.0) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) - tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) webrick (~> 1.9) yaml-converter (~> 0.2, >= 0.2.3) diff --git a/gems/tree_haver/Gemfile.lock b/gems/tree_haver/Gemfile.lock index d913a5852..3952ff183 100644 --- a/gems/tree_haver/Gemfile.lock +++ b/gems/tree_haver/Gemfile.lock @@ -88,7 +88,7 @@ GEM rdoc (>= 4.0.0) reline (>= 0.4.2) json (2.21.1) - kettle-dev (2.3.8) + kettle-dev (2.3.9) emoji_regex (>= 15.0) kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) @@ -457,7 +457,7 @@ CHECKSUMS io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 - kettle-dev (2.3.8) sha256=9d716ff21c660a730cb4e8d41e2e2f0630a28167a354b6e2924e242102aef72c + kettle-dev (2.3.9) kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f kettle-soup-cover (3.0.4) kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 From 3dc01573d16b1ea358e335952c3748664991b149 Mon Sep 17 00:00:00 2001 From: "Peter H. Boling" Date: Tue, 21 Jul 2026 18:01:17 -0600 Subject: [PATCH 149/188] =?UTF-8?q?=F0=9F=8E=A8=20Template=20bootstrap=20b?= =?UTF-8?q?y=20kettle-jem=20v7.1.0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gems/ast-crispr-ruby-prism/.kettle-drift.lock | 144 +- .../.rubocop_gradual.lock | 2 +- gems/ast-crispr-ruby-prism/.simplecov | 8 +- gems/ast-crispr-ruby-prism/Gemfile | 40 + gems/ast-crispr-ruby-prism/Gemfile.lock | 34 +- .../ast-crispr-ruby-prism/spec/spec_helper.rb | 7 +- gems/ast-crispr/Gemfile.lock | 341 +- gems/ast-merge/.kettle-drift.lock | 4 +- gems/ast-merge/.rubocop_gradual.lock | 2942 ----------------- gems/ast-merge/.simplecov | 8 +- gems/ast-merge/Gemfile.lock | 324 -- gems/ast-merge/bin/yard | 2 +- .../gemfiles/modular/cgi/r4/v0.5.gemfile | 2 +- .../gemfiles/modular/cgi/vHEAD.gemfile | 2 +- .../gemfiles/modular/coverage.gemfile | 6 +- .../gemfiles/modular/coverage_local.gemfile | 42 +- gems/ast-merge/gemfiles/modular/debug.gemfile | 4 +- .../gemfiles/modular/documentation.gemfile | 24 +- .../modular/documentation_local.gemfile | 30 +- .../gemfiles/modular/erb/r2/v3.0.gemfile | 2 +- .../gemfiles/modular/erb/r3/v5.0.gemfile | 2 +- .../gemfiles/modular/erb/r4/v5.0.gemfile | 2 +- .../gemfiles/modular/erb/vHEAD.gemfile | 2 +- .../modular/json/truffleruby_22_3.gemfile | 4 +- .../modular/json/truffleruby_23_0.gemfile | 4 +- .../modular/json/truffleruby_23_1.gemfile | 4 +- .../gemfiles/modular/mutex_m/r2/v0.3.gemfile | 2 +- .../gemfiles/modular/mutex_m/r3/v0.3.gemfile | 2 +- .../gemfiles/modular/mutex_m/r4/v0.3.gemfile | 2 +- .../gemfiles/modular/mutex_m/vHEAD.gemfile | 2 +- .../gemfiles/modular/optional.gemfile | 4 +- gems/ast-merge/gemfiles/modular/rspec.gemfile | 8 +- .../gemfiles/modular/runtime_heads.gemfile | 2 +- .../gemfiles/modular/stringio/r2/v3.0.gemfile | 2 +- .../gemfiles/modular/stringio/r3/v3.0.gemfile | 2 +- .../gemfiles/modular/stringio/r4/v3.0.gemfile | 2 +- .../gemfiles/modular/stringio/vHEAD.gemfile | 2 +- gems/ast-merge/gemfiles/modular/style.gemfile | 24 +- .../gemfiles/modular/style_local.gemfile | 32 +- .../gemfiles/modular/webrick/r4/v1.9.gemfile | 2 +- .../gemfiles/modular/webrick/vHEAD.gemfile | 2 +- .../gemfiles/modular/x_std_libs.gemfile | 14 +- .../modular/x_std_libs/r2/libs.gemfile | 6 +- .../modular/x_std_libs/r3/libs.gemfile | 6 +- .../modular/x_std_libs/r4/libs.gemfile | 12 +- .../gemfiles/modular/x_std_libs/vHEAD.gemfile | 12 +- gems/ast-merge/spec/spec_helper.rb | 13 +- gems/markdown-merge/.kettle-drift.lock | 144 +- gems/markdown-merge/.simplecov | 8 +- gems/markdown-merge/Gemfile | 72 +- gems/markdown-merge/Gemfile.lock | 378 ++- gems/markdown-merge/Rakefile | 18 +- .../modular/benchmark/r4/v0.5.gemfile | 2 +- .../gemfiles/modular/benchmark/vHEAD.gemfile | 2 +- .../gemfiles/modular/cgi/r4/v0.5.gemfile | 2 +- .../gemfiles/modular/cgi/vHEAD.gemfile | 2 +- .../gemfiles/modular/coverage.gemfile | 6 +- .../gemfiles/modular/coverage_local.gemfile | 42 +- .../gemfiles/modular/debug.gemfile | 4 +- .../gemfiles/modular/documentation.gemfile | 24 +- .../modular/documentation_local.gemfile | 30 +- .../gemfiles/modular/erb/r2/v3.0.gemfile | 2 +- .../gemfiles/modular/erb/r3/v5.0.gemfile | 2 +- .../gemfiles/modular/erb/r4/v5.0.gemfile | 2 +- .../gemfiles/modular/erb/vHEAD.gemfile | 2 +- .../modular/json/truffleruby_22_3.gemfile | 4 +- .../modular/json/truffleruby_23_0.gemfile | 4 +- .../modular/json/truffleruby_23_1.gemfile | 4 +- .../gemfiles/modular/mutex_m/r2/v0.3.gemfile | 2 +- .../gemfiles/modular/mutex_m/r3/v0.3.gemfile | 2 +- .../gemfiles/modular/mutex_m/r4/v0.3.gemfile | 2 +- .../gemfiles/modular/mutex_m/vHEAD.gemfile | 2 +- .../gemfiles/modular/optional.gemfile | 4 +- .../gemfiles/modular/rspec.gemfile | 8 +- .../gemfiles/modular/runtime_heads.gemfile | 2 +- .../gemfiles/modular/stringio/r2/v3.0.gemfile | 2 +- .../gemfiles/modular/stringio/r3/v3.0.gemfile | 2 +- .../gemfiles/modular/stringio/r4/v3.0.gemfile | 2 +- .../gemfiles/modular/stringio/vHEAD.gemfile | 2 +- .../gemfiles/modular/style.gemfile | 24 +- .../gemfiles/modular/style_local.gemfile | 32 +- .../gemfiles/modular/templating.gemfile | 12 +- .../gemfiles/modular/templating_local.gemfile | 44 +- .../gemfiles/modular/webrick/r4/v1.9.gemfile | 2 +- .../gemfiles/modular/webrick/vHEAD.gemfile | 2 +- .../gemfiles/modular/x_std_libs.gemfile | 14 +- .../modular/x_std_libs/r2/libs.gemfile | 6 +- .../modular/x_std_libs/r3/libs.gemfile | 6 +- .../modular/x_std_libs/r4/libs.gemfile | 12 +- .../gemfiles/modular/x_std_libs/vHEAD.gemfile | 12 +- .../lib/markdown/merge/version.rb | 2 +- gems/markdown-merge/spec/spec_helper.rb | 13 +- gems/prism-merge/.kettle-drift.lock | 144 +- gems/prism-merge/.rubocop_gradual.lock | 707 ---- gems/prism-merge/.simplecov | 8 +- gems/prism-merge/Gemfile | 72 +- gems/prism-merge/Gemfile.lock | 17 +- gems/prism-merge/Rakefile | 18 +- gems/prism-merge/bin/yard | 2 +- .../modular/benchmark/r4/v0.5.gemfile | 2 +- .../gemfiles/modular/benchmark/vHEAD.gemfile | 2 +- .../gemfiles/modular/cgi/r4/v0.5.gemfile | 2 +- .../gemfiles/modular/cgi/vHEAD.gemfile | 2 +- .../gemfiles/modular/coverage.gemfile | 6 +- .../gemfiles/modular/coverage_local.gemfile | 42 +- .../gemfiles/modular/debug.gemfile | 4 +- .../gemfiles/modular/documentation.gemfile | 24 +- .../modular/documentation_local.gemfile | 30 +- .../gemfiles/modular/erb/r2/v3.0.gemfile | 2 +- .../gemfiles/modular/erb/r3/v5.0.gemfile | 2 +- .../gemfiles/modular/erb/r4/v5.0.gemfile | 2 +- .../gemfiles/modular/erb/vHEAD.gemfile | 2 +- .../modular/json/truffleruby_22_3.gemfile | 4 +- .../modular/json/truffleruby_23_0.gemfile | 4 +- .../modular/json/truffleruby_23_1.gemfile | 4 +- .../gemfiles/modular/mutex_m/r2/v0.3.gemfile | 2 +- .../gemfiles/modular/mutex_m/r3/v0.3.gemfile | 2 +- .../gemfiles/modular/mutex_m/r4/v0.3.gemfile | 2 +- .../gemfiles/modular/mutex_m/vHEAD.gemfile | 2 +- .../gemfiles/modular/optional.gemfile | 4 +- .../gemfiles/modular/rspec.gemfile | 8 +- .../gemfiles/modular/runtime_heads.gemfile | 2 +- .../gemfiles/modular/stringio/r2/v3.0.gemfile | 2 +- .../gemfiles/modular/stringio/r3/v3.0.gemfile | 2 +- .../gemfiles/modular/stringio/r4/v3.0.gemfile | 2 +- .../gemfiles/modular/stringio/vHEAD.gemfile | 2 +- .../gemfiles/modular/style.gemfile | 24 +- .../gemfiles/modular/style_local.gemfile | 32 +- .../gemfiles/modular/templating.gemfile | 12 +- .../gemfiles/modular/templating_local.gemfile | 44 +- .../gemfiles/modular/webrick/r4/v1.9.gemfile | 2 +- .../gemfiles/modular/webrick/vHEAD.gemfile | 2 +- .../gemfiles/modular/x_std_libs.gemfile | 14 +- .../modular/x_std_libs/r2/libs.gemfile | 6 +- .../modular/x_std_libs/r3/libs.gemfile | 6 +- .../modular/x_std_libs/r4/libs.gemfile | 12 +- .../gemfiles/modular/x_std_libs/vHEAD.gemfile | 12 +- gems/prism-merge/lib/prism/merge/version.rb | 2 +- gems/prism-merge/spec/spec_helper.rb | 13 +- gems/ruby-merge/Gemfile.lock | 352 +- gems/tree_haver/Gemfile.lock | 334 ++ 141 files changed, 2510 insertions(+), 4593 deletions(-) delete mode 100644 gems/ast-merge/.rubocop_gradual.lock delete mode 100644 gems/prism-merge/.rubocop_gradual.lock diff --git a/gems/ast-crispr-ruby-prism/.kettle-drift.lock b/gems/ast-crispr-ruby-prism/.kettle-drift.lock index 43dfedd67..7cc6a5131 100644 --- a/gems/ast-crispr-ruby-prism/.kettle-drift.lock +++ b/gems/ast-crispr-ruby-prism/.kettle-drift.lock @@ -1,10 +1,74 @@ { + "(direct_sibling_local ||\nENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?)": [ + { + "file": "Gemfile", + "lines": [ + 80, + 120 + ] + } + ], + ".find { |spec| spec.name == 'nomono' }\nnomono_locked = nomono_locked_spec &&": [ + { + "file": "Gemfile", + "lines": [ + 91, + 131 + ] + } + ], + "ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?)\ndirect_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV')": [ + { + "file": "Gemfile", + "lines": [ + 81, + 121 + ] + } + ], + "Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version)\nnomono_activation_requirements = [\"= #{nomono_locked_spec.version}\"] if nomono_locked": [ + { + "file": "Gemfile", + "lines": [ + 93, + 133 + ] + } + ], + "Kernel.send(:gem, 'nomono', *nomono_activation_requirements)\nrequire 'nomono/bundler'": [ + { + "file": "Gemfile", + "lines": [ + 96, + 136 + ] + } + ], + "direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV')\ndirect_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil)": [ + { + "file": "Gemfile", + "lines": [ + 82, + 122 + ] + } + ], "eval_nomono_gems(\ngems: direct_sibling_gems,": [ { "file": "Gemfile", "lines": [ 60, - 100 + 100, + 140 + ] + } + ], + "gems: direct_sibling_gems,\nprefix: 'STRUCTUREDMERGE',": [ + { + "file": "Gemfile", + "lines": [ + 101, + 141 ] } ], @@ -13,7 +77,17 @@ "file": "Gemfile", "lines": [ 43, - 87 + 87, + 127 + ] + } + ], + "if direct_sibling_dev_was_set\nENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original": [ + { + "file": "Gemfile", + "lines": [ + 110, + 150 ] } ], @@ -22,7 +96,8 @@ "file": "Gemfile", "lines": [ 35, - 79 + 79, + 119 ] } ], @@ -31,7 +106,17 @@ "file": "Gemfile", "lines": [ 69, - 109 + 109, + 149 + ] + } + ], + "nomono_activation_requirements = nomono_requirements\nnomono_lockfile = File.expand_path('Gemfile.lock', __dir__)": [ + { + "file": "Gemfile", + "lines": [ + 85, + 125 ] } ], @@ -40,7 +125,8 @@ "file": "Gemfile", "lines": [ 48, - 92 + 92, + 132 ] } ], @@ -49,7 +135,53 @@ "file": "Gemfile", "lines": [ 44, - 88 + 88, + 128 + ] + } + ], + "nomono_lockfile = File.expand_path('Gemfile.lock', __dir__)\nif File.file?(nomono_lockfile)": [ + { + "file": "Gemfile", + "lines": [ + 86, + 126 + ] + } + ], + "path_env: 'STRUCTUREDMERGE_DEV',\nroot: %w[src my structuredmerge]": [ + { + "file": "Gemfile", + "lines": [ + 103, + 143 + ] + } + ], + "prefix: 'STRUCTUREDMERGE',\npath_env: 'STRUCTUREDMERGE_DEV',": [ + { + "file": "Gemfile", + "lines": [ + 102, + 142 + ] + } + ], + "require 'nomono/bundler'\nENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local": [ + { + "file": "Gemfile", + "lines": [ + 97, + 137 + ] + } + ], + "rescue LoadError\nwarn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.'": [ + { + "file": "Gemfile", + "lines": [ + 106, + 146 ] } ] diff --git a/gems/ast-crispr-ruby-prism/.rubocop_gradual.lock b/gems/ast-crispr-ruby-prism/.rubocop_gradual.lock index 50dd22b1b..768794b33 100644 --- a/gems/ast-crispr-ruby-prism/.rubocop_gradual.lock +++ b/gems/ast-crispr-ruby-prism/.rubocop_gradual.lock @@ -1,5 +1,5 @@ { - ".simplecov:865688206": [ + ".simplecov:1593094101": [ [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] ], "Rakefile:3255760589": [ diff --git a/gems/ast-crispr-ruby-prism/.simplecov b/gems/ast-crispr-ruby-prism/.simplecov index 896dbb45e..1bad9bc37 100644 --- a/gems/ast-crispr-ruby-prism/.simplecov +++ b/gems/ast-crispr-ruby-prism/.simplecov @@ -4,15 +4,11 @@ # ast-crispr-ruby-prism will then preserve content between those markers across template runs. # kettle-jem:unfreeze -require 'kettle/soup/cover/config' - # Minimum coverage thresholds are set by kettle-soup-cover. # They are controlled by ENV variables loaded by `mise` from `mise.toml` # (with optional machine-local overrides in `.env.local`). # If the values for minimum coverage need to change, they should be changed both there, # and in 2 places in .github/workflows/coverage.yml. -SimpleCov.start do - track_files 'lib/**/*.rb' - track_files 'lib/**/*.rake' - track_files 'exe/*.rb' +SimpleCov.configure do + cover 'lib/**/*.rb', 'lib/**/*.rake', 'exe/*.rb' end diff --git a/gems/ast-crispr-ruby-prism/Gemfile b/gems/ast-crispr-ruby-prism/Gemfile index b65ee6baa..d7736c82f 100644 --- a/gems/ast-crispr-ruby-prism/Gemfile +++ b/gems/ast-crispr-ruby-prism/Gemfile @@ -112,6 +112,46 @@ if direct_sibling_gems.any? && end end +if direct_sibling_gems.any? && + (direct_sibling_local || + ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) + direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') + direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) + begin + nomono_activation_requirements = nomono_requirements + nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) + if File.file?(nomono_lockfile) + nomono_locked_spec = Bundler::LockfileParser + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } + nomono_locked = nomono_locked_spec && + Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked + end + Kernel.send(:gem, 'nomono', *nomono_activation_requirements) + require 'nomono/bundler' + ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local + + eval_nomono_gems( + gems: direct_sibling_gems, + prefix: 'STRUCTUREDMERGE', + path_env: 'STRUCTUREDMERGE_DEV', + root: %w[src my structuredmerge] + ) + rescue LoadError + warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' + ensure + if direct_sibling_templating && !direct_sibling_local + if direct_sibling_dev_was_set + ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original + else + ENV.delete('STRUCTUREDMERGE_DEV') + end + end + end +end + # Use released TSLP with the Ruby ABI platform-gem fix. gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' diff --git a/gems/ast-crispr-ruby-prism/Gemfile.lock b/gems/ast-crispr-ruby-prism/Gemfile.lock index 3b48e1f04..66b6ab440 100644 --- a/gems/ast-crispr-ruby-prism/Gemfile.lock +++ b/gems/ast-crispr-ruby-prism/Gemfile.lock @@ -6,6 +6,22 @@ PATH prism-merge (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) +PATH + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr + specs: + ast-crispr (7.1.0) + ast-merge (= 7.1.0) + service_actor (~> 3.9) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/prism-merge + specs: + prism-merge (7.1.0) + prism (~> 1.6) + ruby-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + GEM remote: https://gem.coop/ specs: @@ -21,10 +37,6 @@ GEM rubocop (>= 1.0) version_gem (~> 1.1, >= 1.1.14) ast (2.4.3) - ast-crispr (7.1.0) - ast-merge (= 7.1.0) - service_actor (~> 3.9) - version_gem (~> 1.1, >= 1.1.9) ast-merge (7.1.0) benchmark token-resolver (~> 2.0, >= 2.0.4) @@ -96,7 +108,7 @@ GEM rdoc (>= 4.0.0) reline (>= 0.4.2) json (2.21.1) - kettle-dev (2.3.8) + kettle-dev (2.3.9) emoji_regex (>= 15.0) kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) @@ -146,10 +158,6 @@ GEM prettyprint prettyprint (0.2.0) prism (1.9.0) - prism-merge (7.1.0) - prism (~> 1.6) - ruby-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) psych (5.4.0) date stringio @@ -308,7 +316,7 @@ GEM simplecov (>= 0.4.1) simplecov_lcov_formatter (0.9.0) simplecov (>= 0.18) - sorbet-runtime (0.6.13347) + sorbet-runtime (0.6.13351) standard (1.56.0) language_server-protocol (~> 3.17.0.2) lint_roller (~> 1.0) @@ -396,6 +404,7 @@ DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) appraisal2-rubocop (~> 1.0, >= 1.0.0) + ast-crispr! ast-crispr-ruby-prism! benchmark (~> 0.5, >= 0.5.0) bundler-audit (~> 0.9.3) @@ -412,6 +421,7 @@ DEPENDENCIES kramdown-parser-gfm (~> 1.1) mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) + prism-merge! rake (~> 13.0) rbs (>= 3.0) rdoc (~> 6.11) @@ -476,7 +486,7 @@ CHECKSUMS io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 - kettle-dev (2.3.8) sha256=9d716ff21c660a730cb4e8d41e2e2f0630a28167a354b6e2924e242102aef72c + kettle-dev (2.3.9) kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f kettle-soup-cover (3.0.4) kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 @@ -550,7 +560,7 @@ CHECKSUMS simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed - sorbet-runtime (0.6.13347) sha256=54e7221d9f4b63f58aec79f3043752a9ba7810347c6ae0d903531591cc2d5f01 + sorbet-runtime (0.6.13351) sha256=f8fee17c6e3edf835dc6823d26afb9a7c8969c6710d1fabe2fb43f4e0c15c64f standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b standard-performance (1.9.0) sha256=49483d31be448292951d80e5e67cdcb576c2502103c7b40aec6f1b6e9c88e3f2 diff --git a/gems/ast-crispr-ruby-prism/spec/spec_helper.rb b/gems/ast-crispr-ruby-prism/spec/spec_helper.rb index 65c8fc84b..b0be21944 100644 --- a/gems/ast-crispr-ruby-prism/spec/spec_helper.rb +++ b/gems/ast-crispr-ruby-prism/spec/spec_helper.rb @@ -8,7 +8,12 @@ # The rescue LoadError handles that scenario. begin require 'kettle-soup-cover' - require 'simplecov' if Kettle::Soup::Cover::DO_COV # `.simplecov` is run here! + if Kettle::Soup::Cover::DO_COV + # Requiring simplecov loads the project-local `.simplecov`. + require 'simplecov' + require 'kettle/soup/cover/config' + SimpleCov.start + end rescue LoadError => e # check the error message and re-raise when unexpected raise e unless e.message.include?('kettle') diff --git a/gems/ast-crispr/Gemfile.lock b/gems/ast-crispr/Gemfile.lock index c358a8a1b..b5b424b2d 100644 --- a/gems/ast-crispr/Gemfile.lock +++ b/gems/ast-crispr/Gemfile.lock @@ -6,6 +6,266 @@ PATH service_actor (~> 3.9) version_gem (~> 1.1, >= 1.1.9) +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly + specs: + ast-crispr-markdown-markly (7.1.0) + ast-crispr (= 7.1.0) + markly-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism + specs: + ast-crispr-ruby-prism (7.1.0) + ast-crispr (= 7.1.0) + prism-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git + specs: + ast-merge-git (7.1.0) + ast-merge (= 7.1.0) + json-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge + specs: + ast-merge (7.1.0) + benchmark + token-resolver (~> 2.0, >= 2.0.4) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template + specs: + ast-template (7.1.0) + ast-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge + specs: + bash-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge + specs: + binary-merge (7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge + specs: + citrus-toml-merge (7.1.0) + toml-merge (= 7.1.0) + toml-rb (~> 4.1) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge + specs: + commonmarker-merge (7.1.0) + commonmarker (~> 2.2) + markdown-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge + specs: + dotenv-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge + specs: + go-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge + specs: + json-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem + specs: + kettle-jem (7.1.0) + addressable (>= 2.8, < 3) + ast-crispr-markdown-markly (= 7.1.0) + ast-crispr-ruby-prism (= 7.1.0) + ast-merge (= 7.1.0) + bash-merge (= 7.1.0) + citrus-toml-merge (= 7.1.0) + commonmarker-merge (= 7.1.0) + dotenv-merge (= 7.1.0) + json-merge (= 7.1.0) + kettle-dev (~> 2.3, >= 2.3.5) + kettle-rb (~> 0.1, >= 0.1.4) + kramdown-merge (= 7.1.0) + markdown-merge (= 7.1.0) + markly-merge (= 7.1.0) + prism-merge (= 7.1.0) + psych-merge (= 7.1.0) + rbs (>= 3.10) + rbs-merge (= 7.1.0) + ruby-merge (= 7.1.0) + token-resolver (~> 2.0, >= 2.0.4) + toml-merge (= 7.1.0) + toml-rb (~> 4.2) + tree_haver (= 7.1.0) + yaml-merge (= 7.1.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge + specs: + kramdown-merge (7.1.0) + kramdown (~> 2.5) + markdown-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge + specs: + markdown-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge + specs: + markly-merge (7.1.0) + markdown-merge (= 7.1.0) + markly (~> 0.9) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge + specs: + parslet-toml-merge (7.1.0) + toml (~> 0.3) + toml-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge + specs: + plain-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge + specs: + prism-merge (7.1.0) + prism (~> 1.6) + ruby-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge + specs: + psych-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + yaml-merge (= 7.1.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge + specs: + rbs-merge (7.1.0) + ast-merge (= 7.1.0) + rbs (>= 3.10) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge + specs: + ruby-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge + specs: + rust-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb + specs: + smorg-rb (7.1.0) + ast-merge (= 7.1.0) + ast-merge-git (= 7.1.0) + diff-lcs (~> 1.5) + go-merge (= 7.1.0) + json-merge (= 7.1.0) + kettle-jem (= 7.1.0) + markly-merge (= 7.1.0) + plain-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge + specs: + toml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver + specs: + tree_haver (7.1.0) + citrus (~> 3.0) + parslet (~> 2.0) + tree_sitter_language_pack (>= 1.13.2, < 2.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge + specs: + typescript-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge + specs: + yaml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge + specs: + zip-merge (7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + GEM remote: https://gem.coop/ specs: @@ -21,11 +281,6 @@ GEM rubocop (>= 1.0) version_gem (~> 1.1, >= 1.1.14) ast (2.4.3) - ast-merge (7.1.0) - benchmark - token-resolver (~> 2.0, >= 2.0.4) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) backports (3.25.3) benchmark (0.5.0) bigdecimal (4.1.2) @@ -35,6 +290,7 @@ GEM cgi (0.5.2) citrus (3.0.2) cmdparse (3.0.7) + commonmarker (2.9.0-x86_64-linux) concurrent-ruby (1.3.8) date (3.5.1) debug (1.11.1) @@ -97,6 +353,8 @@ GEM kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) + kettle-drift (1.0.6) + version_gem (~> 1.1, >= 1.1.14) kettle-rb (0.1.5) kettle-soup-cover (3.0.4) kettle-wash (~> 0.1, >= 0.1.0) @@ -125,6 +383,7 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) + markly (0.16.0) mutex_m (0.3.0) nokogiri (1.19.4-x86_64-linux-gnu) racc (~> 1.4) @@ -335,11 +594,11 @@ GEM token-resolver (2.0.5) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.14) - tree_haver (7.1.0) - citrus (~> 3.0) - parslet (~> 2.0) - tree_sitter_language_pack (>= 1.13.2, < 2.0) - version_gem (~> 1.1, >= 1.1.9) + toml (0.3.0) + parslet (>= 1.8.0, < 3.0.0) + toml-rb (4.2.0) + citrus (~> 3.0, > 3.0) + racc (~> 1.7) tree_sitter_language_pack (1.13.3-x86_64-linux) sorbet-runtime (~> 0.5) tsort (0.2.0) @@ -386,23 +645,45 @@ DEPENDENCIES appraisal2 (~> 3.0, >= 3.0.6) appraisal2-rubocop (~> 1.0, >= 1.0.0) ast-crispr! + ast-crispr-markdown-markly! + ast-crispr-ruby-prism! + ast-merge! + ast-merge-git! + ast-template! + bash-merge! benchmark (~> 0.5, >= 0.5.0) + binary-merge! bundler-audit (~> 0.9.3) cgi (~> 0.5) + citrus-toml-merge! + commonmarker-merge! debug (>= 1.1) + dotenv-merge! erb (~> 6.0, >= 6.0.6) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.0) + go-merge! irb (~> 1.17) + json-merge! kettle-dev (~> 2.0, >= 2.2.25) + kettle-drift (~> 1.0, >= 1.0.6) + kettle-jem! kettle-soup-cover (~> 3.0, >= 3.0.3) kettle-test (~> 2.0, >= 2.0.9) kramdown (~> 2.5, >= 2.5.2) + kramdown-merge! kramdown-parser-gfm (~> 1.1) + markdown-merge! + markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) + parslet-toml-merge! + plain-merge! + prism-merge! + psych-merge! rake (~> 13.0) rbs (>= 3.0) + rbs-merge! rdoc (~> 6.11) reek (~> 6.5, >= 6.5.0) require_bench (~> 1.0, >= 1.0.4) @@ -413,19 +694,27 @@ DEPENDENCIES rubocop-on-rbs (~> 2.0, >= 2.0.0) rubocop-packaging (~> 0.6, >= 0.6.0) rubocop-ruby3_2 (~> 3.0, >= 3.0.6) + ruby-merge! ruby-progressbar (~> 1.13) + rust-merge! + smorg-rb! standard (~> 1.56, >= 1.56.0) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) + toml-merge! + tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) + typescript-merge! webrick (~> 1.9) yaml-converter (~> 0.2, >= 0.2.3) + yaml-merge! yard (~> 0.9, >= 0.9.45) yard-fence (~> 0.9, >= 0.9.6) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) yard-timekeeper (~> 0.2, >= 0.2.4) yard-yaml (~> 0.2, >= 0.2.3) + zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af @@ -434,20 +723,30 @@ CHECKSUMS appraisal2-rubocop (1.0.0) sha256=b71410fbb014befda5340605a605b7f6f3f012739baf0acc5b4351b592c3258d ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 ast-crispr (7.1.0) + ast-crispr-markdown-markly (7.1.0) + ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) + ast-merge-git (7.1.0) + ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 + bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd + binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 + citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 + commonmarker (2.9.0-x86_64-linux) sha256=8cfe92970eef585a19ddf6613224b91cab64d6029834661bda801f877c9c7f43 + commonmarker-merge (7.1.0) concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 + dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -460,20 +759,28 @@ CHECKSUMS gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f + go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 + json-merge (7.1.0) kettle-dev (2.3.9) + kettle-drift (1.0.6) sha256=46eda08fa4411d1f3c6682a95eef1c9df4e94611b3949f49d4c7b43c0ed356a3 + kettle-jem (7.1.0) kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f kettle-soup-cover (3.0.4) kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa + kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 + markdown-merge (7.1.0) + markly (0.16.0) sha256=6f70d79e385b1efc9e171f74c81628826259039fe6c778e03c3924c71dac5511 + markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-x86_64-linux-gnu) sha256=379fae440b28915e3f19d752ce2dcf8465ed2b2fbefd2a7ca0dd497bc981a06a nomono (1.0.9) @@ -483,15 +790,20 @@ CHECKSUMS parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 + parslet-toml-merge (7.1.0) + plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 + prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 + psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 + rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb @@ -526,9 +838,11 @@ CHECKSUMS rubocop-rspec_rails (2.32.0) sha256=4a0d641c72f6ebb957534f539d9d0a62c47abd8ce0d0aeee1ef4701e892a9100 rubocop-ruby3_2 (3.0.7) sha256=f53dd6d286fb05186214fc6ec116783e7f837030918e8931c05de773e98f8466 rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 + ruby-merge (7.1.0) ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 + rust-merge (7.1.0) service_actor (3.9.4) sha256=e63b523630b9a7e62959b2a90113b08d2565b5de9c148557b281ef847c9539ce silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 @@ -536,6 +850,7 @@ CHECKSUMS simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed + smorg-rb (7.1.0) sorbet-runtime (0.6.13351) sha256=f8fee17c6e3edf835dc6823d26afb9a7c8969c6710d1fabe2fb43f4e0c15c64f standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b @@ -550,15 +865,20 @@ CHECKSUMS timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.5) sha256=b852f924287ffb58a440856e862b056c8ad97e74b4b2526cee43e0771f40c25c + toml (0.3.0) sha256=0a91d0f76a9036e84e44f95693b12f58d358c1df3ac8e3b5271f2056ecc6e4b9 + toml-merge (7.1.0) + toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 + typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 webrick (1.9.2) sha256=beb4a15fc474defed24a3bda4ffd88a490d517c9e4e6118c3edce59e45864131 yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 + yaml-merge (7.1.0) yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd @@ -566,6 +886,7 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 + zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH diff --git a/gems/ast-merge/.kettle-drift.lock b/gems/ast-merge/.kettle-drift.lock index 041757eba..4c783827a 100644 --- a/gems/ast-merge/.kettle-drift.lock +++ b/gems/ast-merge/.kettle-drift.lock @@ -189,8 +189,8 @@ { "file": "spec/spec_helper.rb", "lines": [ - 35, - 42 + 40, + 47 ] } ] diff --git a/gems/ast-merge/.rubocop_gradual.lock b/gems/ast-merge/.rubocop_gradual.lock deleted file mode 100644 index a8a3ed8e6..000000000 --- a/gems/ast-merge/.rubocop_gradual.lock +++ /dev/null @@ -1,2942 +0,0 @@ -{ - ".simplecov:3463276878": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "Rakefile:429706125": [ - [18, 121, 17, "Layout/LineLength: Line is too long. [137/120]", 174264873], - [79, 3, 1023, "Metrics/BlockLength: Block has too many lines. [32/25]", 54868638], - [163, 121, 22, "Layout/LineLength: Line is too long. [142/120]", 1367093088], - [166, 121, 18, "Layout/LineLength: Line is too long. [138/120]", 3881946477] - ], - "ast-merge.gemspec:1182320030": [ - [16, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1168797721], - [129, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 2821357214], - [144, 121, 50, "Layout/LineLength: Line is too long. [170/120]", 3888612416], - [145, 121, 29, "Layout/LineLength: Line is too long. [149/120]", 981994949], - [152, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 4229808912] - ], - "gemfiles/modular/benchmark/r4/v0.5.gemfile:5381": [ - [1, 1, 0, "Lint/EmptyFile: Empty file detected.", 5381] - ], - "gemfiles/modular/benchmark/vHEAD.gemfile:5381": [ - [1, 1, 0, "Lint/EmptyFile: Empty file detected.", 5381], - [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381] - ], - "gemfiles/modular/cgi/r4/v0.5.gemfile:367169322": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] - ], - "gemfiles/modular/cgi/vHEAD.gemfile:2729540777": [ - [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] - ], - "gemfiles/modular/erb/r2/v3.0.gemfile:1688285565": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] - ], - "gemfiles/modular/erb/r3/v5.0.gemfile:2394062339": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] - ], - "gemfiles/modular/erb/r4/v5.0.gemfile:2394062339": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] - ], - "gemfiles/modular/erb/vHEAD.gemfile:981929959": [ - [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/mutex_m/r2/v0.3.gemfile:4055275004": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/mutex_m/r3/v0.3.gemfile:4055275004": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/mutex_m/r4/v0.3.gemfile:4055275004": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/mutex_m/vHEAD.gemfile:556854763": [ - [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/rspec.gemfile:2263543889": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] - ], - "gemfiles/modular/stringio/r2/v3.0.gemfile:821604304": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/stringio/r3/v3.0.gemfile:821604304": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/stringio/r4/v3.0.gemfile:821604304": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/stringio/vHEAD.gemfile:1045839691": [ - [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/webrick/r4/v1.9.gemfile:3092661193": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] - ], - "gemfiles/modular/webrick/vHEAD.gemfile:3867684682": [ - [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] - ], - "gemfiles/modular/x_std_libs.gemfile:2324400122": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/x_std_libs/r2/libs.gemfile:36276542": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] - ], - "gemfiles/modular/x_std_libs/r3/libs.gemfile:4030570297": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] - ], - "gemfiles/modular/x_std_libs/r4/libs.gemfile:732451732": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] - ], - "gemfiles/modular/x_std_libs/vHEAD.gemfile:2390363993": [ - [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] - ], - "lib/ast-merge.rb:3005639624": [ - [1, 1, 0, "Naming/FileName: The name of this source file (`ast-merge.rb`) should use snake_case.", 5381] - ], - "lib/ast/merge.rb:3962755273": [ - [11, 3, 12, "Style/Documentation: Missing top-level documentation comment for `module Ast::Merge`.", 2866359175], - [11, 3, 270298, "Metrics/ModuleLength: Module has too many lines. [5705/100]", 2774418219], - [22, 5, 16, "Style/Documentation: Missing top-level documentation comment for `class Ast::Merge::ParseError`.", 362242086], - [33, 7, 362, "Metrics/AbcSize: Assignment Branch Condition size for `build_message` is too high. [<2, 16, 6> 17.2/17]", 3988736327], - [47, 5, 31, "Style/Documentation: Missing top-level documentation comment for `class Ast::Merge::PlaceholderCollisionError`.", 218924302], - [164, 7, 337, "Metrics/MethodLength: Method has too many lines. [11/10]", 2388996629], - [181, 7, 327, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `to_h` is too high. [8/7]", 979795121], - [312, 7, 383, "Metrics/MethodLength: Method has too many lines. [11/10]", 634650261], - [476, 121, 29, "Layout/LineLength: Line is too long. [149/120]", 3450568485], - [477, 7, 461, "Metrics/MethodLength: Method has too many lines. [12/10]", 43929779], - [494, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 1299979089], - [495, 7, 377, "Metrics/MethodLength: Method has too many lines. [11/10]", 3704151253], - [511, 121, 39, "Layout/LineLength: Line is too long. [159/120]", 85503958], - [512, 7, 447, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `to_h` is too high. [8/7]", 298553749], - [512, 7, 447, "Metrics/MethodLength: Method has too many lines. [12/10]", 298553749], - [541, 121, 25, "Layout/LineLength: Line is too long. [145/120]", 1441148616], - [542, 7, 453, "Metrics/MethodLength: Method has too many lines. [14/10]", 1899007021], - [561, 121, 3, "Layout/LineLength: Line is too long. [123/120]", 193342990], - [562, 7, 400, "Metrics/MethodLength: Method has too many lines. [11/10]", 298553749], - [591, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5860750], - [592, 7, 411, "Metrics/MethodLength: Method has too many lines. [12/10]", 2893925621], - [609, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 3137791633], - [610, 7, 454, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `to_h` is too high. [8/7]", 298553749], - [610, 7, 454, "Metrics/MethodLength: Method has too many lines. [12/10]", 298553749], - [669, 7, 385, "Metrics/MethodLength: Method has too many lines. [11/10]", 794265461], - [706, 7, 419, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `to_h` is too high. [10/7]", 3313546353], - [706, 7, 419, "Metrics/PerceivedComplexity: Perceived complexity for `to_h` is too high. [10/8]", 3313546353], - [756, 121, 11, "Layout/LineLength: Line is too long. [131/120]", 398187770], - [768, 121, 40, "Layout/LineLength: Line is too long. [160/120]", 2746783933], - [815, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5860841], - [823, 121, 156, "Layout/LineLength: Line is too long. [276/120]", 1149525480], - [828, 121, 24, "Layout/LineLength: Line is too long. [144/120]", 2538424426], - [840, 121, 22, "Layout/LineLength: Line is too long. [142/120]", 2285382915], - [850, 121, 7, "Layout/LineLength: Line is too long. [127/120]", 3962419360], - [863, 121, 11, "Layout/LineLength: Line is too long. [131/120]", 398187770], - [865, 121, 16, "Layout/LineLength: Line is too long. [136/120]", 3195178507], - [869, 121, 85, "Layout/LineLength: Line is too long. [205/120]", 4238980637], - [871, 121, 13, "Layout/LineLength: Line is too long. [133/120]", 2678411233], - [873, 121, 39, "Layout/LineLength: Line is too long. [159/120]", 4028520110], - [884, 121, 110, "Layout/LineLength: Line is too long. [230/120]", 3837814921], - [898, 5, 2283, "Metrics/MethodLength: Method has too many lines. [57/10]", 2282416447], - [958, 5, 2654, "Metrics/MethodLength: Method has too many lines. [63/10]", 2491520565], - [1009, 121, 9, "Layout/LineLength: Line is too long. [129/120]", 1823519875], - [1018, 121, 21, "Layout/LineLength: Line is too long. [141/120]", 1874311968], - [1024, 5, 10660, "Metrics/AbcSize: Assignment Branch Condition size for `ruby_downstream_merge_gem_feature_matrix` is too high. [<0, 21, 0> 21/17]", 2277322577], - [1024, 5, 10660, "Metrics/MethodLength: Method has too many lines. [248/10]", 2277322577], - [1275, 5, 1546, "Metrics/MethodLength: Method has too many lines. [37/10]", 208933754], - [1309, 121, 33, "Layout/LineLength: Line is too long. [153/120]", 2658452668], - [1315, 5, 4206, "Metrics/MethodLength: Method has too many lines. [96/10]", 1997530776], - [1392, 121, 5, "Layout/LineLength: Line is too long. [125/120]", 183246985], - [1408, 121, 15, "Layout/LineLength: Line is too long. [135/120]", 3268438356], - [1414, 5, 1598, "Metrics/MethodLength: Method has too many lines. [46/10]", 849757258], - [1457, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1323237892], - [1463, 5, 1164, "Metrics/MethodLength: Method has too many lines. [36/10]", 1477831421], - [1496, 121, 13, "Layout/LineLength: Line is too long. [133/120]", 931876829], - [1502, 5, 1699, "Metrics/MethodLength: Method has too many lines. [43/10]", 1125544678], - [1548, 5, 1016, "Metrics/MethodLength: Method has too many lines. [27/10]", 2194427985], - [1578, 5, 1058, "Metrics/MethodLength: Method has too many lines. [30/10]", 47860722], - [1611, 5, 1186, "Metrics/MethodLength: Method has too many lines. [31/10]", 676863486], - [1639, 121, 21, "Layout/LineLength: Line is too long. [141/120]", 2689509078], - [1645, 5, 1517, "Metrics/MethodLength: Method has too many lines. [41/10]", 3855445172], - [1658, 121, 24, "Layout/LineLength: Line is too long. [144/120]", 817380904], - [1683, 121, 26, "Layout/LineLength: Line is too long. [146/120]", 409671963], - [1689, 5, 2116, "Metrics/MethodLength: Method has too many lines. [61/10]", 524104794], - [1753, 5, 820, "Metrics/MethodLength: Method has too many lines. [12/10]", 1888457180], - [1753, 37, 298, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [10/5]", 789483382], - [1754, 121, 100, "Layout/LineLength: Line is too long. [220/120]", 3288750271], - [1769, 5, 3595, "Metrics/AbcSize: Assignment Branch Condition size for `initial_profile_promotion_policy` is too high. [<9, 20, 0> 21.93/17]", 83685787], - [1769, 5, 3595, "Metrics/MethodLength: Method has too many lines. [77/10]", 83685787], - [1849, 5, 768, "Metrics/MethodLength: Method has too many lines. [17/10]", 314059802], - [1870, 5, 1493, "Metrics/AbcSize: Assignment Branch Condition size for `evaluate_profile_selection_requirement` is too high. [<7, 23, 9> 25.67/17]", 3177555163], - [1870, 5, 1493, "Metrics/MethodLength: Method has too many lines. [29/10]", 3177555163], - [1871, 121, 18, "Layout/LineLength: Line is too long. [138/120]", 2145168012], - [1878, 121, 7, "Layout/LineLength: Line is too long. [127/120]", 683002336], - [1912, 5, 985, "Metrics/AbcSize: Assignment Branch Condition size for `profile_promotion_blocking_reasons` is too high. [<4, 25, 13> 28.46/17]", 1146627465], - [1912, 5, 985, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `profile_promotion_blocking_reasons` is too high. [10/7]", 1146627465], - [1912, 5, 985, "Metrics/MethodLength: Method has too many lines. [18/10]", 1146627465], - [1912, 5, 985, "Metrics/PerceivedComplexity: Perceived complexity for `profile_promotion_blocking_reasons` is too high. [10/8]", 1146627465], - [1933, 5, 3173, "Metrics/AbcSize: Assignment Branch Condition size for `validate_language_backend_profile` is too high. [<25, 68, 20> 75.16/17]", 2100389324], - [1933, 5, 3173, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `validate_language_backend_profile` is too high. [21/7]", 2100389324], - [1933, 5, 3173, "Metrics/MethodLength: Method has too many lines. [60/10]", 2100389324], - [1933, 5, 3173, "Metrics/PerceivedComplexity: Perceived complexity for `validate_language_backend_profile` is too high. [23/8]", 2100389324], - [2005, 5, 1523, "Metrics/AbcSize: Assignment Branch Condition size for `validate_backend_inventory` is too high. [<13, 38, 13> 42.21/17]", 1899037537], - [2005, 5, 1523, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `validate_backend_inventory` is too high. [13/7]", 1899037537], - [2005, 5, 1523, "Metrics/MethodLength: Method has too many lines. [25/10]", 1899037537], - [2005, 5, 1523, "Metrics/PerceivedComplexity: Perceived complexity for `validate_backend_inventory` is too high. [13/8]", 1899037537], - [2048, 5, 906, "Metrics/MethodLength: Method has too many lines. [20/10]", 3137959843], - [2071, 5, 2744, "Metrics/AbcSize: Assignment Branch Condition size for `detect_raw_merge_inconsistencies` is too high. [<8, 43, 21> 48.52/17]", 3717440692], - [2071, 5, 2744, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `detect_raw_merge_inconsistencies` is too high. [17/7]", 3717440692], - [2071, 5, 2744, "Metrics/MethodLength: Method has too many lines. [53/10]", 3717440692], - [2071, 5, 2744, "Metrics/PerceivedComplexity: Perceived complexity for `detect_raw_merge_inconsistencies` is too high. [17/8]", 3717440692], - [2086, 7, 1894, "Metrics/BlockLength: Block has too many lines. [33/25]", 758887611], - [2132, 5, 762, "Metrics/MethodLength: Method has too many lines. [11/10]", 3021402342], - [2146, 5, 490, "Metrics/MethodLength: Method has too many lines. [11/10]", 578473475], - [2160, 5, 881, "Metrics/AbcSize: Assignment Branch Condition size for `execute_independent_commutative_insertions` is too high. [<6, 16, 7> 18.47/17]", 259417386], - [2160, 5, 881, "Metrics/MethodLength: Method has too many lines. [21/10]", 259417386], - [2187, 5, 1107, "Metrics/AbcSize: Assignment Branch Condition size for `execute_independent_keyed_member_edits` is too high. [<10, 31, 15> 35.86/17]", 4271501385], - [2187, 5, 1107, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `execute_independent_keyed_member_edits` is too high. [14/7]", 4271501385], - [2187, 5, 1107, "Metrics/MethodLength: Method has too many lines. [24/10]", 4271501385], - [2187, 5, 1107, "Metrics/PerceivedComplexity: Perceived complexity for `execute_independent_keyed_member_edits` is too high. [14/8]", 4271501385], - [2231, 5, 3149, "Metrics/AbcSize: Assignment Branch Condition size for `parse_compact_ruleset` is too high. [<16, 68, 24> 73.86/17]", 3149098803], - [2231, 5, 3149, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `parse_compact_ruleset` is too high. [22/7]", 3149098803], - [2231, 5, 3149, "Metrics/MethodLength: Method has too many lines. [67/10]", 3149098803], - [2231, 5, 3149, "Metrics/PerceivedComplexity: Perceived complexity for `parse_compact_ruleset` is too high. [23/8]", 3149098803], - [2237, 7, 2544, "Metrics/BlockLength: Block has too many lines. [50/25]", 2484860466], - [2264, 121, 3, "Layout/LineLength: Line is too long. [123/120]", 193420054], - [2310, 5, 2658, "Metrics/AbcSize: Assignment Branch Condition size for `compact_ruleset_feature_profile` is too high. [<11, 67, 38> 77.81/17]", 4022599673], - [2310, 5, 2658, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `compact_ruleset_feature_profile` is too high. [29/7]", 4022599673], - [2310, 5, 2658, "Metrics/MethodLength: Method has too many lines. [66/10]", 4022599673], - [2310, 5, 2658, "Metrics/PerceivedComplexity: Perceived complexity for `compact_ruleset_feature_profile` is too high. [16/8]", 4022599673], - [2328, 7, 2243, "Metrics/BlockLength: Block has too many lines. [47/25]", 965041772], - [2395, 5, 2733, "Metrics/AbcSize: Assignment Branch Condition size for `classify_template_target_path` is too high. [<4, 36, 23> 42.91/17]", 3661828596], - [2395, 5, 2733, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `classify_template_target_path` is too high. [21/7]", 3661828596], - [2395, 5, 2733, "Metrics/MethodLength: Method has too many lines. [39/10]", 3661828596], - [2395, 5, 2733, "Metrics/PerceivedComplexity: Perceived complexity for `classify_template_target_path` is too high. [17/8]", 3661828596], - [2427, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5858795], - [2441, 5, 416, "Metrics/MethodLength: Method has too many lines. [12/10]", 1388641773], - [2484, 5, 388, "Metrics/MethodLength: Method has too many lines. [12/10]", 2360583514], - [2513, 5, 820, "Metrics/MethodLength: Method has too many lines. [13/10]", 354674808], - [2529, 5, 929, "Metrics/AbcSize: Assignment Branch Condition size for `enrich_template_plan_entries` is too high. [<9, 12, 10> 18.03/17]", 2666747528], - [2529, 5, 929, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `enrich_template_plan_entries` is too high. [9/7]", 2666747528], - [2529, 5, 929, "Metrics/MethodLength: Method has too many lines. [19/10]", 2666747528], - [2529, 5, 929, "Metrics/PerceivedComplexity: Perceived complexity for `enrich_template_plan_entries` is too high. [10/8]", 2666747528], - [2552, 5, 1245, "Metrics/AbcSize: Assignment Branch Condition size for `enrich_template_plan_entries_with_token_state` is too high. [<11, 23, 14> 29.09/17]", 1507113977], - [2552, 5, 1245, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `enrich_template_plan_entries_with_token_state` is too high. [13/7]", 1507113977], - [2552, 5, 1245, "Metrics/MethodLength: Method has too many lines. [19/10]", 1507113977], - [2552, 5, 1245, "Metrics/PerceivedComplexity: Perceived complexity for `enrich_template_plan_entries_with_token_state` is too high. [13/8]", 1507113977], - [2576, 5, 1353, "Metrics/AbcSize: Assignment Branch Condition size for `prepare_template_entries` is too high. [<6, 18, 11> 21.93/17]", 2774310942], - [2576, 5, 1353, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `prepare_template_entries` is too high. [11/7]", 2774310942], - [2576, 5, 1353, "Metrics/MethodLength: Method has too many lines. [24/10]", 2774310942], - [2576, 5, 1353, "Metrics/PerceivedComplexity: Perceived complexity for `prepare_template_entries` is too high. [12/8]", 2774310942], - [2606, 5, 1494, "Metrics/AbcSize: Assignment Branch Condition size for `plan_template_execution` is too high. [<8, 22, 17> 28.93/17]", 3876421385], - [2606, 5, 1494, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `plan_template_execution` is too high. [14/7]", 3876421385], - [2606, 5, 1494, "Metrics/MethodLength: Method has too many lines. [29/10]", 3876421385], - [2606, 5, 1494, "Metrics/PerceivedComplexity: Perceived complexity for `plan_template_execution` is too high. [15/8]", 3876421385], - [2607, 7, 1421, "Metrics/BlockLength: Block has too many lines. [27/25]", 2887810383], - [2640, 5, 822, "Metrics/ParameterLists: Method has too many optional parameters. [5/3]", 2749235529], - [2640, 37, 220, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [9/5]", 447165880], - [2641, 121, 29, "Layout/LineLength: Line is too long. [149/120]", 518382509], - [2655, 5, 2060, "Metrics/AbcSize: Assignment Branch Condition size for `preview_template_execution` is too high. [<11, 42, 26> 50.61/17]", 2270817206], - [2655, 5, 2060, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `preview_template_execution` is too high. [25/7]", 2270817206], - [2655, 5, 2060, "Metrics/MethodLength: Method has too many lines. [39/10]", 2270817206], - [2655, 5, 2060, "Metrics/PerceivedComplexity: Perceived complexity for `preview_template_execution` is too high. [23/8]", 2270817206], - [2665, 7, 1809, "Metrics/BlockLength: Block has too many lines. [28/25]", 310337564], - [2703, 5, 2513, "Metrics/AbcSize: Assignment Branch Condition size for `apply_template_execution` is too high. [<14, 50, 25> 57.63/17]", 177708331], - [2703, 5, 2513, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `apply_template_execution` is too high. [26/7]", 177708331], - [2703, 5, 2513, "Metrics/MethodLength: Method has too many lines. [50/10]", 177708331], - [2703, 5, 2513, "Metrics/PerceivedComplexity: Perceived complexity for `apply_template_execution` is too high. [23/8]", 177708331], - [2714, 7, 2239, "Metrics/BlockLength: Block has too many lines. [38/25]", 1651205014], - [2764, 5, 1696, "Metrics/AbcSize: Assignment Branch Condition size for `evaluate_template_tree_convergence` is too high. [<11, 29, 17> 35.37/17]", 2507998041], - [2764, 5, 1696, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `evaluate_template_tree_convergence` is too high. [17/7]", 2507998041], - [2764, 5, 1696, "Metrics/MethodLength: Method has too many lines. [35/10]", 2507998041], - [2764, 5, 1696, "Metrics/ParameterLists: Method has too many optional parameters. [5/3]", 2507998041], - [2764, 5, 1696, "Metrics/PerceivedComplexity: Perceived complexity for `evaluate_template_tree_convergence` is too high. [17/8]", 2507998041], - [2764, 43, 198, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [8/5]", 4214374277], - [2765, 121, 13, "Layout/LineLength: Line is too long. [133/120]", 2983874608], - [2807, 5, 688, "Metrics/MethodLength: Method has too many lines. [15/10]", 3064253784], - [2807, 5, 688, "Metrics/ParameterLists: Method has too many optional parameters. [5/3]", 3064253784], - [2807, 36, 216, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [8/5]", 448029307], - [2808, 121, 31, "Layout/LineLength: Line is too long. [151/120]", 3840139076], - [2851, 5, 664, "Metrics/MethodLength: Method has too many lines. [13/10]", 995637868], - [2851, 5, 664, "Metrics/ParameterLists: Method has too many optional parameters. [5/3]", 995637868], - [2851, 53, 202, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [7/5]", 4227116196], - [2852, 121, 48, "Layout/LineLength: Line is too long. [168/120]", 418683952], - [2869, 5, 649, "Metrics/MethodLength: Method has too many lines. [13/10]", 1831524792], - [2869, 5, 649, "Metrics/ParameterLists: Method has too many optional parameters. [5/3]", 1831524792], - [2869, 54, 178, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [7/5]", 2962381850], - [2870, 121, 24, "Layout/LineLength: Line is too long. [144/120]", 3690915627], - [2887, 5, 1280, "Metrics/AbcSize: Assignment Branch Condition size for `apply_template_tree_execution_to_directory` is too high. [<6, 16, 6> 18.11/17]", 305449363], - [2887, 5, 1280, "Metrics/MethodLength: Method has too many lines. [23/10]", 305449363], - [2887, 5, 1280, "Metrics/ParameterLists: Method has too many optional parameters. [5/3]", 305449363], - [2887, 51, 200, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [7/5]", 1352434212], - [2888, 121, 46, "Layout/LineLength: Line is too long. [166/120]", 1139621482], - [2916, 5, 2199, "Metrics/AbcSize: Assignment Branch Condition size for `report_template_tree_run` is too high. [<15, 42, 31> 54.31/17]", 975627723], - [2916, 5, 2199, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `report_template_tree_run` is too high. [25/7]", 975627723], - [2916, 5, 2199, "Metrics/MethodLength: Method has too many lines. [38/10]", 975627723], - [2916, 5, 2199, "Metrics/PerceivedComplexity: Perceived complexity for `report_template_tree_run` is too high. [26/8]", 975627723], - [2960, 5, 1515, "Metrics/AbcSize: Assignment Branch Condition size for `report_template_directory_apply` is too high. [<13, 35, 21> 42.84/17]", 3710254295], - [2960, 5, 1515, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `report_template_directory_apply` is too high. [17/7]", 3710254295], - [2960, 5, 1515, "Metrics/MethodLength: Method has too many lines. [26/10]", 3710254295], - [2960, 5, 1515, "Metrics/PerceivedComplexity: Perceived complexity for `report_template_directory_apply` is too high. [17/8]", 3710254295], - [2975, 20, 1, "Style/DoubleNegation: Avoid the use of double negation (`!!`).", 177540], - [2992, 5, 1656, "Metrics/AbcSize: Assignment Branch Condition size for `report_template_directory_plan` is too high. [<11, 24, 25> 36.36/17]", 2946319293], - [2992, 5, 1656, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `report_template_directory_plan` is too high. [18/7]", 2946319293], - [2992, 5, 1656, "Metrics/MethodLength: Method has too many lines. [36/10]", 2946319293], - [2992, 5, 1656, "Metrics/PerceivedComplexity: Perceived complexity for `report_template_directory_plan` is too high. [16/8]", 2946319293], - [3064, 7, 9, "Style/MultilineBlockChain: Avoid multi-line chains of blocks.", 3648222389], - [3085, 5, 410, "Metrics/MethodLength: Method has too many lines. [12/10]", 248324428], - [3091, 7, 11, "Style/MultilineBlockChain: Avoid multi-line chains of blocks.", 848344986], - [3135, 5, 712, "Metrics/MethodLength: Method has too many lines. [12/10]", 2500743043], - [3135, 27, 178, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [9/5]", 873705194], - [3135, 121, 10, "Layout/LineLength: Line is too long. [130/120]", 3023611470], - [3161, 42, 167, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 2002181571], - [3174, 5, 1097, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `structured_edit_selection_profile` is too high. [8/7]", 1149325233], - [3174, 5, 1097, "Metrics/MethodLength: Method has too many lines. [14/10]", 1149325233], - [3174, 42, 311, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [11/5]", 3814063337], - [3175, 121, 16, "Layout/LineLength: Line is too long. [136/120]", 198450264], - [3188, 34, 47, "Style/SafeNavigation: Use safe navigation (`&.`) instead of checking if an object exists before calling the method.", 3204815976], - [3193, 5, 869, "Metrics/MethodLength: Method has too many lines. [11/10]", 83957392], - [3193, 41, 250, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [8/5]", 1486072775], - [3194, 121, 13, "Layout/LineLength: Line is too long. [133/120]", 1967186495], - [3204, 36, 47, "Style/SafeNavigation: Use safe navigation (`&.`) instead of checking if an object exists before calling the method.", 3204815976], - [3209, 5, 1156, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `structured_edit_match_profile` is too high. [10/7]", 4112674787], - [3209, 5, 1156, "Metrics/MethodLength: Method has too many lines. [15/10]", 4112674787], - [3209, 5, 1156, "Metrics/PerceivedComplexity: Perceived complexity for `structured_edit_match_profile` is too high. [10/8]", 4112674787], - [3209, 38, 321, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [12/5]", 823565876], - [3210, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5859667], - [3211, 121, 7, "Layout/LineLength: Line is too long. [127/120]", 3673982236], - [3229, 5, 933, "Metrics/MethodLength: Method has too many lines. [14/10]", 2099388915], - [3229, 37, 319, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [12/5]", 250907892], - [3230, 121, 1, "Layout/LineLength: Line is too long. [121/120]", 177545], - [3231, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 4154814685], - [3248, 5, 907, "Metrics/MethodLength: Method has too many lines. [12/10]", 2242846328], - [3248, 42, 275, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [9/5]", 246196330], - [3249, 121, 13, "Layout/LineLength: Line is too long. [133/120]", 1439117336], - [3265, 5, 1057, "Metrics/MethodLength: Method has too many lines. [14/10]", 2891607970], - [3265, 44, 323, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [11/5]", 1386547750], - [3266, 121, 19, "Layout/LineLength: Line is too long. [139/120]", 1676243675], - [3267, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 4154814685], - [3284, 5, 1375, "Metrics/AbcSize: Assignment Branch Condition size for `structured_edit_request` is too high. [<11, 25, 10> 29.09/17]", 4153786554], - [3284, 5, 1375, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `structured_edit_request` is too high. [11/7]", 4153786554], - [3284, 5, 1375, "Metrics/MethodLength: Method has too many lines. [16/10]", 4153786554], - [3284, 5, 1375, "Metrics/PerceivedComplexity: Perceived complexity for `structured_edit_request` is too high. [11/8]", 4153786554], - [3284, 32, 370, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [13/5]", 2381882467], - [3285, 121, 1, "Layout/LineLength: Line is too long. [121/120]", 177545], - [3306, 5, 728, "Metrics/MethodLength: Method has too many lines. [11/10]", 4026157473], - [3306, 31, 175, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [8/5]", 773121544], - [3338, 5, 597, "Metrics/MethodLength: Method has too many lines. [11/10]", 4143495860], - [3377, 5, 577, "Metrics/MethodLength: Method has too many lines. [11/10]", 4169131743], - [3392, 5, 1011, "Metrics/AbcSize: Assignment Branch Condition size for `structured_edit_execution_report` is too high. [<7, 16, 7> 18.81/17]", 876221899], - [3392, 5, 1011, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `structured_edit_execution_report` is too high. [8/7]", 876221899], - [3392, 5, 1011, "Metrics/MethodLength: Method has too many lines. [12/10]", 876221899], - [3392, 41, 245, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [9/5]", 2484440861], - [3393, 121, 55, "Layout/LineLength: Line is too long. [175/120]", 4036992717], - [3418, 55, 170, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [7/5]", 668161765], - [3441, 5, 819, "Metrics/MethodLength: Method has too many lines. [12/10]", 2287133436], - [3441, 56, 217, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [9/5]", 3198032135], - [3442, 121, 51, "Layout/LineLength: Line is too long. [171/120]", 3526181051], - [3475, 5, 663, "Metrics/MethodLength: Method has too many lines. [11/10]", 1853778635], - [3484, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 2162352564], - [3516, 5, 663, "Metrics/MethodLength: Method has too many lines. [11/10]", 1132214891], - [3525, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 2162352564], - [3547, 5, 678, "Metrics/MethodLength: Method has too many lines. [11/10]", 556747511], - [3556, 121, 9, "Layout/LineLength: Line is too long. [129/120]", 1808630920], - [3578, 5, 708, "Metrics/MethodLength: Method has too many lines. [11/10]", 3590891170], - [3587, 121, 15, "Layout/LineLength: Line is too long. [135/120]", 1367166441], - [3610, 5, 678, "Metrics/MethodLength: Method has too many lines. [11/10]", 689748855], - [3619, 121, 9, "Layout/LineLength: Line is too long. [129/120]", 1808630920], - [3641, 5, 708, "Metrics/MethodLength: Method has too many lines. [11/10]", 1478642210], - [3650, 121, 15, "Layout/LineLength: Line is too long. [135/120]", 1367166441], - [3674, 5, 663, "Metrics/MethodLength: Method has too many lines. [11/10]", 239506091], - [3683, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 2162352564], - [3705, 5, 693, "Metrics/MethodLength: Method has too many lines. [11/10]", 3803476550], - [3714, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 926808928], - [3737, 5, 728, "Metrics/MethodLength: Method has too many lines. [11/10]", 748161230], - [3746, 121, 21, "Layout/LineLength: Line is too long. [141/120]", 2807086497], - [3768, 5, 758, "Metrics/MethodLength: Method has too many lines. [11/10]", 3900524558], - [3777, 121, 27, "Layout/LineLength: Line is too long. [147/120]", 3463884836], - [3801, 5, 748, "Metrics/MethodLength: Method has too many lines. [11/10]", 2076716686], - [3810, 121, 25, "Layout/LineLength: Line is too long. [145/120]", 609414023], - [3832, 5, 778, "Metrics/MethodLength: Method has too many lines. [11/10]", 867958318], - [3836, 121, 3, "Layout/LineLength: Line is too long. [123/120]", 193343749], - [3841, 121, 31, "Layout/LineLength: Line is too long. [151/120]", 1202823007], - [3865, 5, 728, "Metrics/MethodLength: Method has too many lines. [11/10]", 2078323790], - [3874, 121, 21, "Layout/LineLength: Line is too long. [141/120]", 2807086497], - [3896, 5, 758, "Metrics/MethodLength: Method has too many lines. [11/10]", 121025422], - [3905, 121, 27, "Layout/LineLength: Line is too long. [147/120]", 3463884836], - [3927, 5, 733, "Metrics/MethodLength: Method has too many lines. [11/10]", 1216456558], - [3936, 121, 22, "Layout/LineLength: Line is too long. [142/120]", 145839927], - [3958, 5, 763, "Metrics/MethodLength: Method has too many lines. [11/10]", 2946525998], - [3967, 121, 28, "Layout/LineLength: Line is too long. [148/120]", 275709226], - [3991, 5, 768, "Metrics/MethodLength: Method has too many lines. [11/10]", 3281402414], - [3995, 121, 1, "Layout/LineLength: Line is too long. [121/120]", 177656], - [4000, 121, 29, "Layout/LineLength: Line is too long. [149/120]", 1427340581], - [4037, 121, 7, "Layout/LineLength: Line is too long. [127/120]", 3673982236], - [4094, 121, 3, "Layout/LineLength: Line is too long. [123/120]", 193417070], - [4105, 121, 7, "Layout/LineLength: Line is too long. [127/120]", 2768444], - [4112, 121, 32, "Layout/LineLength: Line is too long. [152/120]", 3833204035], - [4120, 5, 863, "Metrics/MethodLength: Method has too many lines. [11/10]", 3731153486], - [4124, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 4054494590], - [4129, 121, 48, "Layout/LineLength: Line is too long. [168/120]", 2084326338], - [4135, 121, 36, "Layout/LineLength: Line is too long. [156/120]", 4201858364], - [4139, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5861122], - [4143, 5, 873, "Metrics/MethodLength: Method has too many lines. [11/10]", 1866057614], - [4147, 121, 22, "Layout/LineLength: Line is too long. [142/120]", 3893180930], - [4152, 121, 50, "Layout/LineLength: Line is too long. [170/120]", 863421408], - [4158, 121, 40, "Layout/LineLength: Line is too long. [160/120]", 3247130491], - [4162, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1171438608], - [4166, 5, 883, "Metrics/MethodLength: Method has too many lines. [11/10]", 2352924462], - [4166, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5860841], - [4167, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5861334], - [4170, 121, 24, "Layout/LineLength: Line is too long. [144/120]", 465221046], - [4175, 121, 52, "Layout/LineLength: Line is too long. [172/120]", 1922522532], - [4191, 121, 44, "Layout/LineLength: Line is too long. [164/120]", 4067226670], - [4195, 121, 10, "Layout/LineLength: Line is too long. [130/120]", 2033573170], - [4199, 5, 893, "Metrics/MethodLength: Method has too many lines. [11/10]", 1633175534], - [4199, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2087926422], - [4200, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2087421565], - [4203, 121, 26, "Layout/LineLength: Line is too long. [146/120]", 615151909], - [4208, 121, 54, "Layout/LineLength: Line is too long. [174/120]", 884393597], - [4234, 121, 48, "Layout/LineLength: Line is too long. [168/120]", 417844693], - [4238, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 1233681340], - [4242, 5, 903, "Metrics/MethodLength: Method has too many lines. [11/10]", 3964877742], - [4242, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1165873471], - [4243, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1322899615], - [4246, 121, 28, "Layout/LineLength: Line is too long. [148/120]", 3471008807], - [4251, 121, 56, "Layout/LineLength: Line is too long. [176/120]", 627945471], - [4257, 121, 52, "Layout/LineLength: Line is too long. [172/120]", 2960084092], - [4261, 121, 18, "Layout/LineLength: Line is too long. [138/120]", 2148514258], - [4265, 5, 913, "Metrics/MethodLength: Method has too many lines. [11/10]", 385546958], - [4265, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 2970472935], - [4266, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 3808956371], - [4269, 121, 30, "Layout/LineLength: Line is too long. [150/120]", 3412499338], - [4274, 121, 58, "Layout/LineLength: Line is too long. [178/120]", 3274208144], - [4280, 121, 26, "Layout/LineLength: Line is too long. [146/120]", 4275923717], - [4288, 5, 848, "Metrics/MethodLength: Method has too many lines. [11/10]", 457851502], - [4292, 121, 17, "Layout/LineLength: Line is too long. [137/120]", 413805135], - [4297, 121, 45, "Layout/LineLength: Line is too long. [165/120]", 951908917], - [4303, 121, 10, "Layout/LineLength: Line is too long. [130/120]", 1859200227], - [4311, 5, 808, "Metrics/MethodLength: Method has too many lines. [11/10]", 884695726], - [4315, 121, 9, "Layout/LineLength: Line is too long. [129/120]", 2011807620], - [4320, 121, 37, "Layout/LineLength: Line is too long. [157/120]", 384138219], - [4326, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1176320663], - [4334, 5, 798, "Metrics/MethodLength: Method has too many lines. [11/10]", 1422521838], - [4338, 121, 7, "Layout/LineLength: Line is too long. [127/120]", 3247420006], - [4343, 121, 35, "Layout/LineLength: Line is too long. [155/120]", 1408316702], - [4349, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 938465266], - [4357, 5, 803, "Metrics/MethodLength: Method has too many lines. [11/10]", 2370839950], - [4361, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 74128911], - [4366, 121, 36, "Layout/LineLength: Line is too long. [156/120]", 1364659899], - [4372, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 2059517661], - [4380, 5, 803, "Metrics/MethodLength: Method has too many lines. [11/10]", 3379336814], - [4384, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 74128911], - [4389, 121, 36, "Layout/LineLength: Line is too long. [156/120]", 1364659899], - [4437, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 4281772560], - [4445, 5, 833, "Metrics/MethodLength: Method has too many lines. [11/10]", 3245498510], - [4449, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 3542644754], - [4454, 121, 42, "Layout/LineLength: Line is too long. [162/120]", 1916814773], - [4460, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 859690879], - [4468, 5, 833, "Metrics/MethodLength: Method has too many lines. [11/10]", 4138830126], - [4472, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 3542644754], - [4477, 121, 42, "Layout/LineLength: Line is too long. [162/120]", 1916814773], - [4483, 121, 18, "Layout/LineLength: Line is too long. [138/120]", 3880141603], - [4491, 5, 828, "Metrics/MethodLength: Method has too many lines. [11/10]", 3621010990], - [4495, 121, 13, "Layout/LineLength: Line is too long. [133/120]", 3917260126], - [4500, 121, 41, "Layout/LineLength: Line is too long. [161/120]", 1879260859], - [4506, 121, 22, "Layout/LineLength: Line is too long. [142/120]", 1776611011], - [4514, 5, 838, "Metrics/MethodLength: Method has too many lines. [11/10]", 514585454], - [4518, 121, 15, "Layout/LineLength: Line is too long. [135/120]", 1353518231], - [4523, 121, 43, "Layout/LineLength: Line is too long. [163/120]", 1228459824], - [4529, 121, 38, "Layout/LineLength: Line is too long. [158/120]", 3932349968], - [4533, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2087903307], - [4537, 5, 878, "Metrics/MethodLength: Method has too many lines. [11/10]", 1525737454], - [4537, 121, 1, "Layout/LineLength: Line is too long. [121/120]", 177548], - [4538, 121, 1, "Layout/LineLength: Line is too long. [121/120]", 177538], - [4541, 121, 23, "Layout/LineLength: Line is too long. [143/120]", 2895681070], - [4546, 121, 51, "Layout/LineLength: Line is too long. [171/120]", 4040662298], - [4552, 121, 10, "Layout/LineLength: Line is too long. [130/120]", 66929045], - [4560, 5, 808, "Metrics/MethodLength: Method has too many lines. [11/10]", 1626746606], - [4564, 121, 9, "Layout/LineLength: Line is too long. [129/120]", 2011807620], - [4569, 121, 37, "Layout/LineLength: Line is too long. [157/120]", 384138219], - [4583, 121, 22, "Layout/LineLength: Line is too long. [142/120]", 849230508], - [4591, 5, 838, "Metrics/MethodLength: Method has too many lines. [11/10]", 3531122670], - [4595, 121, 15, "Layout/LineLength: Line is too long. [135/120]", 1353518231], - [4600, 121, 43, "Layout/LineLength: Line is too long. [163/120]", 1228459824], - [4615, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1176320663], - [4623, 5, 798, "Metrics/MethodLength: Method has too many lines. [11/10]", 1118421486], - [4627, 121, 7, "Layout/LineLength: Line is too long. [127/120]", 3247420006], - [4632, 121, 35, "Layout/LineLength: Line is too long. [155/120]", 1408316702], - [4654, 5, 693, "Metrics/MethodLength: Method has too many lines. [11/10]", 1668406662], - [4663, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 926808928], - [4677, 5, 648, "Metrics/MethodLength: Method has too many lines. [11/10]", 3479836893], - [4686, 121, 3, "Layout/LineLength: Line is too long. [123/120]", 193343749], - [4708, 5, 678, "Metrics/MethodLength: Method has too many lines. [11/10]", 3147549879], - [4717, 121, 9, "Layout/LineLength: Line is too long. [129/120]", 1808630920], - [4752, 5, 677, "Metrics/MethodLength: Method has too many lines. [11/10]", 1206941784], - [4761, 121, 7, "Layout/LineLength: Line is too long. [127/120]", 3937819337], - [4784, 5, 672, "Metrics/MethodLength: Method has too many lines. [11/10]", 3634903061], - [4793, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 2162352564], - [4815, 5, 683, "Metrics/MethodLength: Method has too many lines. [11/10]", 3417053461], - [4824, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 926808928], - [4848, 5, 668, "Metrics/MethodLength: Method has too many lines. [11/10]", 1540762726], - [4857, 121, 9, "Layout/LineLength: Line is too long. [129/120]", 1808630920], - [4879, 5, 698, "Metrics/MethodLength: Method has too many lines. [11/10]", 2804825893], - [4888, 121, 15, "Layout/LineLength: Line is too long. [135/120]", 1367166441], - [4911, 5, 683, "Metrics/MethodLength: Method has too many lines. [11/10]", 3165010613], - [4920, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 926808928], - [4942, 5, 713, "Metrics/MethodLength: Method has too many lines. [11/10]", 2795628035], - [4951, 121, 18, "Layout/LineLength: Line is too long. [138/120]", 497133415], - [4957, 5, 864, "Metrics/MethodLength: Method has too many lines. [12/10]", 1086224878], - [4957, 50, 268, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [9/5]", 4022739767], - [4958, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1607400384], - [4982, 5, 658, "Metrics/MethodLength: Method has too many lines. [11/10]", 3999796489], - [4991, 121, 5, "Layout/LineLength: Line is too long. [125/120]", 102058825], - [5005, 59, 179, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 1569981428], - [5006, 121, 23, "Layout/LineLength: Line is too long. [143/120]", 1515849732], - [5037, 5, 694, "Metrics/MethodLength: Method has too many lines. [11/10]", 3830236120], - [5046, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 2250857971], - [5060, 5, 673, "Metrics/MethodLength: Method has too many lines. [11/10]", 2413908653], - [5069, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 1225026887], - [5083, 5, 663, "Metrics/MethodLength: Method has too many lines. [11/10]", 3935895659], - [5092, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 2162352564], - [5106, 5, 692, "Metrics/MethodLength: Method has too many lines. [11/10]", 3660669627], - [5115, 121, 10, "Layout/LineLength: Line is too long. [130/120]", 3558241761], - [5129, 5, 612, "Metrics/MethodLength: Method has too many lines. [11/10]", 100391811], - [5168, 5, 693, "Metrics/MethodLength: Method has too many lines. [11/10]", 3138587622], - [5177, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 926808928], - [5199, 5, 688, "Metrics/MethodLength: Method has too many lines. [11/10]", 2736088861], - [5208, 121, 13, "Layout/LineLength: Line is too long. [133/120]", 1992103013], - [5231, 5, 678, "Metrics/MethodLength: Method has too many lines. [11/10]", 2275602867], - [5240, 121, 11, "Layout/LineLength: Line is too long. [131/120]", 3598350322], - [5263, 5, 602, "Metrics/MethodLength: Method has too many lines. [11/10]", 3023166371], - [5278, 36, 181, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [7/5]", 1071580945], - [5291, 5, 787, "Metrics/AbcSize: Assignment Branch Condition size for `group_projected_child_review_cases` is too high. [<4, 17, 4> 17.92/17]", 3391527151], - [5291, 5, 787, "Metrics/MethodLength: Method has too many lines. [18/10]", 3391527151], - [5315, 5, 705, "Metrics/MethodLength: Method has too many lines. [13/10]", 2629923275], - [5342, 5, 547, "Metrics/MethodLength: Method has too many lines. [12/10]", 1911190850], - [5367, 5, 1516, "Metrics/AbcSize: Assignment Branch Condition size for `review_projected_child_groups` is too high. [<11, 21, 9> 25.36/17]", 3333110579], - [5367, 5, 1516, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `review_projected_child_groups` is too high. [8/7]", 3333110579], - [5367, 5, 1516, "Metrics/MethodLength: Method has too many lines. [39/10]", 3333110579], - [5367, 5, 1516, "Metrics/PerceivedComplexity: Perceived complexity for `review_projected_child_groups` is too high. [9/8]", 3333110579], - [5401, 7, 7, "Style/MultilineBlockChain: Avoid multi-line chains of blocks.", 4045560504], - [5413, 5, 562, "Metrics/MethodLength: Method has too many lines. [14/10]", 3083915102], - [5432, 5, 1898, "Metrics/AbcSize: Assignment Branch Condition size for `resolve_delegated_child_outputs` is too high. [<11, 21, 6> 24.45/17]", 2739722546], - [5432, 5, 1898, "Metrics/MethodLength: Method has too many lines. [49/10]", 2739722546], - [5487, 5, 942, "Metrics/AbcSize: Assignment Branch Condition size for `execute_nested_merge` is too high. [<3, 17, 6> 18.28/17]", 766157172], - [5487, 5, 942, "Metrics/MethodLength: Method has too many lines. [20/10]", 766157172], - [5487, 29, 144, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 1404367793], - [5514, 5, 652, "Metrics/MethodLength: Method has too many lines. [13/10]", 2105803856], - [5533, 38, 140, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 1682835820], - [5563, 5, 577, "Metrics/MethodLength: Method has too many lines. [12/10]", 2659610443], - [5632, 5, 569, "Metrics/MethodLength: Method has too many lines. [14/10]", 20616641], - [5660, 5, 772, "Metrics/AbcSize: Assignment Branch Condition size for `conformance_manifest_review_request_ids` is too high. [<7, 16, 8> 19.21/17]", 3577418475], - [5660, 5, 772, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `conformance_manifest_review_request_ids` is too high. [9/7]", 3577418475], - [5660, 5, 772, "Metrics/MethodLength: Method has too many lines. [14/10]", 3577418475], - [5660, 5, 772, "Metrics/PerceivedComplexity: Perceived complexity for `conformance_manifest_review_request_ids` is too high. [9/8]", 3577418475], - [5714, 5, 606, "Metrics/MethodLength: Method has too many lines. [11/10]", 2675086662], - [5729, 5, 562, "Metrics/MethodLength: Method has too many lines. [11/10]", 3811715870], - [5744, 5, 578, "Metrics/MethodLength: Method has too many lines. [11/10]", 1776197415], - [5759, 5, 1298, "Metrics/AbcSize: Assignment Branch Condition size for `resolve_conformance_family_context` is too high. [<7, 28, 9> 30.23/17]", 4265202259], - [5759, 5, 1298, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `resolve_conformance_family_context` is too high. [10/7]", 4265202259], - [5759, 5, 1298, "Metrics/MethodLength: Method has too many lines. [23/10]", 4265202259], - [5759, 5, 1298, "Metrics/PerceivedComplexity: Perceived complexity for `resolve_conformance_family_context` is too high. [10/8]", 4265202259], - [5788, 5, 1994, "Metrics/AbcSize: Assignment Branch Condition size for `review_conformance_family_context` is too high. [<12, 24, 10> 28.64/17]", 2834851944], - [5788, 5, 1994, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `review_conformance_family_context` is too high. [10/7]", 2834851944], - [5788, 5, 1994, "Metrics/MethodLength: Method has too many lines. [41/10]", 2834851944], - [5788, 5, 1994, "Metrics/PerceivedComplexity: Perceived complexity for `review_conformance_family_context` is too high. [11/8]", 2834851944], - [5811, 121, 33, "Layout/LineLength: Line is too long. [153/120]", 641612328], - [5848, 5, 1844, "Metrics/AbcSize: Assignment Branch Condition size for `select_conformance_case` is too high. [<2, 43, 14> 45.27/17]", 670673209], - [5848, 5, 1844, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `select_conformance_case` is too high. [14/7]", 670673209], - [5848, 5, 1844, "Metrics/MethodLength: Method has too many lines. [30/10]", 670673209], - [5848, 5, 1844, "Metrics/PerceivedComplexity: Perceived complexity for `select_conformance_case` is too high. [16/8]", 670673209], - [5853, 121, 34, "Layout/LineLength: Line is too long. [154/120]", 2135503892], - [5855, 121, 41, "Layout/LineLength: Line is too long. [161/120]", 3932054828], - [5864, 121, 30, "Layout/LineLength: Line is too long. [150/120]", 3169124957], - [5886, 5, 509, "Metrics/MethodLength: Method has too many lines. [11/10]", 3552283123], - [5975, 5, 4195, "Metrics/AbcSize: Assignment Branch Condition size for `review_conformance_manifest` is too high. [<37, 63, 16> 74.79/17]", 2166560528], - [5975, 5, 4195, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `review_conformance_manifest` is too high. [14/7]", 2166560528], - [5975, 5, 4195, "Metrics/MethodLength: Method has too many lines. [89/10]", 2166560528], - [5975, 5, 4195, "Metrics/PerceivedComplexity: Perceived complexity for `review_conformance_manifest` is too high. [17/8]", 2166560528], - [6040, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 2746826653], - [6056, 121, 47, "Layout/LineLength: Line is too long. [167/120]", 3035993839], - [6078, 5, 676, "Metrics/MethodLength: Method has too many lines. [15/10]", 3048335475], - [6101, 5, 1054, "Metrics/AbcSize: Assignment Branch Condition size for `plan_conformance_suite` is too high. [<11, 18, 8> 22.56/17]", 1855254788], - [6101, 5, 1054, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `plan_conformance_suite` is too high. [8/7]", 1855254788], - [6101, 5, 1054, "Metrics/MethodLength: Method has too many lines. [25/10]", 1855254788], - [6101, 31, 84, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 172854173], - [6166, 5, 1274, "Metrics/AbcSize: Assignment Branch Condition size for `plan_named_conformance_suites_with_diagnostics` is too high. [<11, 21, 7> 24.72/17]", 3991300730], - [6166, 5, 1274, "Metrics/MethodLength: Method has too many lines. [27/10]", 3991300730], - [6193, 121, 47, "Layout/LineLength: Line is too long. [167/120]", 3035993839], - [6258, 5, 2071, "Metrics/AbcSize: Assignment Branch Condition size for `review_decision_for_family_context` is too high. [<7, 22, 16> 28.09/17]", 4245377184], - [6258, 5, 2071, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `review_decision_for_family_context` is too high. [12/7]", 4245377184], - [6258, 5, 2071, "Metrics/MethodLength: Method has too many lines. [46/10]", 4245377184], - [6258, 5, 2071, "Metrics/PerceivedComplexity: Perceived complexity for `review_decision_for_family_context` is too high. [12/8]", 4245377184], - [6263, 7, 1766, "Metrics/BlockLength: Block has too many lines. [40/25]", 65448241], - [6315, 5, 686, "Metrics/MethodLength: Method has too many lines. [13/10]", 4030291682] - ], - "lib/ast/merge/ast_node.rb:2037773320": [ - [44, 5, 7086, "Metrics/ClassLength: Class has too many lines. [114/100]", 201314721], - [220, 11, 10, "Naming/PredicatePrefix: Rename `has_error?` to `error?`.", 946854183] - ], - "lib/ast/merge/comment/attachment.rb:2388154769": [ - [42, 23, 180, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [9/5]", 3775370530], - [75, 24, 2, "Lint/SafeNavigationConsistency: Use `.` instead of unnecessary `&.`.", 5858765], - [81, 25, 2, "Lint/SafeNavigationConsistency: Use `.` instead of unnecessary `&.`.", 5858765], - [114, 9, 410, "Metrics/AbcSize: Assignment Branch Condition size for `inspect` is too high. [<1, 17, 4> 17.49/17]", 605978105], - [115, 32, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765] - ], - "lib/ast/merge/comment/augmenter.rb:633395157": [ - [12, 7, 13967, "Metrics/ClassLength: Class has too many lines. [291/100]", 2806660144], - [33, 9, 721, "Metrics/MethodLength: Method has too many lines. [16/10]", 200402816], - [33, 23, 91, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [7/5]", 2938734913], - [64, 9, 1335, "Metrics/AbcSize: Assignment Branch Condition size for `build!` is too high. [<12, 29, 6> 31.95/17]", 3904283188], - [64, 9, 1335, "Metrics/MethodLength: Method has too many lines. [22/10]", 3904283188], - [94, 9, 867, "Metrics/AbcSize: Assignment Branch Condition size for `infer_leading_comments` is too high. [<8, 19, 14> 24.92/17]", 1941464872], - [94, 9, 867, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `infer_leading_comments` is too high. [11/7]", 1941464872], - [94, 9, 867, "Metrics/MethodLength: Method has too many lines. [20/10]", 1941464872], - [94, 9, 867, "Metrics/PerceivedComplexity: Perceived complexity for `infer_leading_comments` is too high. [12/8]", 1941464872], - [122, 9, 429, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `infer_inline_comments` is too high. [8/7]", 2688935834], - [133, 9, 934, "Metrics/AbcSize: Assignment Branch Condition size for `infer_trailing_comments` is too high. [<8, 21, 18> 28.79/17]", 1551855281], - [133, 9, 934, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `infer_trailing_comments` is too high. [15/7]", 1551855281], - [133, 9, 934, "Metrics/MethodLength: Method has too many lines. [20/10]", 1551855281], - [133, 9, 934, "Metrics/PerceivedComplexity: Perceived complexity for `infer_trailing_comments` is too high. [15/8]", 1551855281], - [160, 9, 488, "Metrics/AbcSize: Assignment Branch Condition size for `infer_postlude!` is too high. [<5, 17, 8> 19.44/17]", 2562637949], - [160, 9, 488, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `infer_postlude!` is too high. [8/7]", 2562637949], - [173, 9, 1529, "Metrics/AbcSize: Assignment Branch Condition size for `infer_remaining_regions!` is too high. [<12, 27, 23> 37.44/17]", 3911657050], - [173, 9, 1529, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `infer_remaining_regions!` is too high. [18/7]", 3911657050], - [173, 9, 1529, "Metrics/MethodLength: Method has too many lines. [28/10]", 3911657050], - [173, 9, 1529, "Metrics/PerceivedComplexity: Perceived complexity for `infer_remaining_regions!` is too high. [20/8]", 3911657050], - [216, 9, 507, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `split_preamble_group` is too high. [8/7]", 336784898], - [231, 9, 588, "Metrics/MethodLength: Method has too many lines. [17/10]", 3445626532], - [274, 9, 965, "Metrics/AbcSize: Assignment Branch Condition size for `build_region` is too high. [<6, 17, 7> 19.34/17]", 344809006], - [274, 9, 965, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `build_region` is too high. [8/7]", 344809006], - [274, 9, 965, "Metrics/MethodLength: Method has too many lines. [24/10]", 344809006] - ], - "lib/ast/merge/comment/block.rb:3806757604": [ - [31, 7, 6754, "Metrics/ClassLength: Class has too many lines. [106/100]", 2308582303], - [57, 9, 1059, "Metrics/AbcSize: Assignment Branch Condition size for `initialize` is too high. [<12, 13, 14> 22.56/17]", 2656171724], - [57, 9, 1059, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `initialize` is too high. [14/7]", 2656171724], - [57, 9, 1059, "Metrics/MethodLength: Method has too many lines. [21/10]", 2656171724], - [57, 9, 1059, "Metrics/PerceivedComplexity: Perceived complexity for `initialize` is too high. [15/8]", 2656171724], - [113, 9, 511, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `freeze_action` is too high. [9/7]", 55014877], - [113, 9, 511, "Metrics/MethodLength: Method has too many lines. [12/10]", 55014877], - [113, 9, 511, "Metrics/PerceivedComplexity: Perceived complexity for `freeze_action` is too high. [9/8]", 55014877], - [181, 9, 439, "Metrics/AbcSize: Assignment Branch Condition size for `first_meaningful_content` is too high. [<2, 16, 11> 19.52/17]", 680479883], - [181, 9, 439, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `first_meaningful_content` is too high. [11/7]", 680479883], - [181, 9, 439, "Metrics/PerceivedComplexity: Perceived complexity for `first_meaningful_content` is too high. [12/8]", 680479883], - [197, 9, 765, "Metrics/AbcSize: Assignment Branch Condition size for `extract_block_content` is too high. [<7, 24, 9> 26.57/17]", 621871624], - [197, 9, 765, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `extract_block_content` is too high. [9/7]", 621871624], - [197, 9, 765, "Metrics/PerceivedComplexity: Perceived complexity for `extract_block_content` is too high. [9/8]", 621871624] - ], - "lib/ast/merge/comment/c_style_tracker_base.rb:1569556520": [ - [22, 7, 15053, "Metrics/ClassLength: Class has too many lines. [284/100]", 3599183270], - [83, 9, 509, "Metrics/MethodLength: Method has too many lines. [11/10]", 1639553915], - [102, 9, 492, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `leading_comments_before` is too high. [8/7]", 3127043491], - [102, 9, 492, "Metrics/MethodLength: Method has too many lines. [11/10]", 3127043491], - [124, 9, 487, "Metrics/MethodLength: Method has too many lines. [11/10]", 1869933531], - [176, 9, 713, "Metrics/AbcSize: Assignment Branch Condition size for `trailing_comments_after` is too high. [<6, 12, 13> 18.68/17]", 543703521], - [176, 9, 713, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `trailing_comments_after` is too high. [11/7]", 543703521], - [176, 9, 713, "Metrics/MethodLength: Method has too many lines. [14/10]", 543703521], - [176, 9, 713, "Metrics/PerceivedComplexity: Perceived complexity for `trailing_comments_after` is too high. [11/8]", 543703521], - [184, 121, 1, "Layout/LineLength: Line is too long. [121/120]", 177549], - [202, 9, 598, "Metrics/MethodLength: Method has too many lines. [12/10]", 1628921093], - [222, 9, 1271, "Metrics/MethodLength: Method has too many lines. [21/10]", 612335469], - [222, 35, 137, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 1823300034], - [329, 35, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], - [348, 9, 2271, "Metrics/AbcSize: Assignment Branch Condition size for `extract_comments` is too high. [<17, 32, 13> 38.5/17]", 2751274968], - [348, 9, 2271, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `extract_comments` is too high. [14/7]", 2751274968], - [348, 9, 2271, "Metrics/MethodLength: Method has too many lines. [59/10]", 2751274968], - [348, 9, 2271, "Metrics/PerceivedComplexity: Perceived complexity for `extract_comments` is too high. [14/8]", 2751274968], - [353, 11, 2045, "Metrics/BlockLength: Block has too many lines. [52/25]", 575665179], - [418, 9, 659, "Metrics/MethodLength: Method has too many lines. [15/10]", 177254901], - [439, 71, 4, "Lint/UnusedMethodArgument: Unused method argument - `line`.", 2087656651], - [439, 78, 8, "Lint/UnusedMethodArgument: Unused method argument - `line_num`.", 622661090] - ], - "lib/ast/merge/comment/hash_tracker_base.rb:861186417": [ - [32, 7, 19362, "Metrics/ClassLength: Class has too many lines. [221/100]", 1031055222], - [118, 9, 444, "Metrics/MethodLength: Method has too many lines. [11/10]", 3347260807], - [142, 9, 921, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `leading_comments_before` is too high. [8/7]", 415734636], - [142, 9, 921, "Metrics/MethodLength: Method has too many lines. [11/10]", 415734636], - [172, 9, 440, "Metrics/MethodLength: Method has too many lines. [11/10]", 2464474004], - [225, 9, 623, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `trailing_comments_after` is too high. [10/7]", 543703521], - [225, 9, 623, "Metrics/MethodLength: Method has too many lines. [12/10]", 543703521], - [225, 9, 623, "Metrics/PerceivedComplexity: Perceived complexity for `trailing_comments_after` is too high. [10/8]", 543703521], - [249, 9, 551, "Metrics/MethodLength: Method has too many lines. [12/10]", 2783654570], - [278, 9, 1271, "Metrics/MethodLength: Method has too many lines. [21/10]", 612335469], - [278, 35, 137, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 1823300034], - [374, 35, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], - [439, 9, 826, "Metrics/MethodLength: Method has too many lines. [12/10]", 1706632542] - ], - "lib/ast/merge/comment/parser.rb:2674748021": [ - [34, 7, 8372, "Metrics/ClassLength: Class has too many lines. [141/100]", 2541983664], - [84, 9, 357, "Metrics/MethodLength: Method has too many lines. [12/10]", 2265493710], - [104, 9, 545, "Metrics/AbcSize: Assignment Branch Condition size for `auto_detect_style` is too high. [<5, 17, 7> 19.05/17]", 868366444], - [104, 9, 545, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `auto_detect_style` is too high. [8/7]", 868366444], - [125, 9, 1650, "Metrics/AbcSize: Assignment Branch Condition size for `parse_line_comments` is too high. [<8, 28, 7> 29.95/17]", 1511562163], - [125, 9, 1650, "Metrics/MethodLength: Method has too many lines. [31/10]", 1511562163], - [176, 9, 2670, "Metrics/AbcSize: Assignment Branch Condition size for `parse_with_block_comments` is too high. [<15, 47, 15> 51.57/17]", 2963765048], - [176, 9, 2670, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `parse_with_block_comments` is too high. [15/7]", 2963765048], - [176, 9, 2670, "Metrics/MethodLength: Method has too many lines. [47/10]", 2963765048], - [176, 9, 2670, "Metrics/PerceivedComplexity: Perceived complexity for `parse_with_block_comments` is too high. [16/8]", 2963765048], - [181, 11, 2390, "Metrics/BlockLength: Block has too many lines. [40/25]", 3720582340] - ], - "lib/ast/merge/comment/quoted_hash_line_parser.rb:2878420841": [ - [74, 9, 458, "Metrics/MethodLength: Method has too many lines. [11/10]", 1526360697], - [91, 9, 620, "Metrics/AbcSize: Assignment Branch Condition size for `inline_result` is too high. [<3, 16, 6> 17.35/17]", 2706755447], - [91, 9, 620, "Metrics/MethodLength: Method has too many lines. [14/10]", 2706755447] - ], - "lib/ast/merge/comment/region_merge_policy.rb:176745155": [ - [23, 23, 98, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 1029631546], - [55, 9, 423, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `freeze_sensitive?` is too high. [8/7]", 4102661282], - [61, 41, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], - [61, 85, 2, "Lint/SafeNavigationConsistency: Use `.` instead of unnecessary `&.`.", 5858765], - [96, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 3491399903] - ], - "lib/ast/merge/comment/style.rb:3045051983": [ - [27, 7, 9109, "Metrics/ClassLength: Class has too many lines. [143/100]", 131723516], - [142, 11, 911, "Metrics/MethodLength: Method has too many lines. [17/10]", 355862493], - [142, 23, 164, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [8/5]", 668558018], - [203, 23, 164, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [8/5]", 668558018] - ], - "lib/ast/merge/comment/tracked_hash_adapter.rb:3235547929": [ - [99, 11, 553, "Metrics/AbcSize: Assignment Branch Condition size for `line_text_from` is too high. [<4, 20, 4> 20.78/17]", 2680273536], - [99, 11, 553, "Metrics/MethodLength: Method has too many lines. [13/10]", 2680273536] - ], - "lib/ast/merge/comment_layout_emission_support.rb:3192614990": [ - [12, 5, 14039, "Metrics/ModuleLength: Module has too many lines. [287/100]", 2115648988], - [18, 40, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], - [29, 40, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], - [88, 43, 149, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 1025246092], - [100, 7, 916, "Metrics/MethodLength: Method has too many lines. [11/10]", 3294772058], - [100, 57, 163, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 1661656204], - [122, 7, 730, "Metrics/MethodLength: Method has too many lines. [13/10]", 2493279555], - [139, 62, 6, "Lint/UnusedMethodArgument: Unused method argument - `owners`.", 1719502071], - [193, 7, 477, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `retained_owner_leading_gap_for` is too high. [8/7]", 974771614], - [193, 7, 477, "Metrics/PerceivedComplexity: Perceived complexity for `retained_owner_leading_gap_for` is too high. [9/8]", 974771614], - [194, 40, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], - [220, 23, 24, "Style/SafeNavigation: Use safe navigation (`&.`) instead of checking if an object exists before calling the method.", 1487466207], - [243, 7, 1015, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `root_boundary_lines_for` is too high. [11/7]", 2612519600], - [243, 7, 1015, "Metrics/MethodLength: Method has too many lines. [13/10]", 2612519600], - [243, 7, 1015, "Metrics/PerceivedComplexity: Perceived complexity for `root_boundary_lines_for` is too high. [11/8]", 2612519600], - [247, 34, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], - [271, 7, 959, "Metrics/AbcSize: Assignment Branch Condition size for `owner_bound_root_boundary_lines_for` is too high. [<8, 22, 17> 28.93/17]", 238225688], - [271, 7, 959, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `owner_bound_root_boundary_lines_for` is too high. [16/7]", 238225688], - [271, 7, 959, "Metrics/MethodLength: Method has too many lines. [17/10]", 238225688], - [271, 7, 959, "Metrics/PerceivedComplexity: Perceived complexity for `owner_bound_root_boundary_lines_for` is too high. [15/8]", 238225688], - [307, 7, 912, "Metrics/AbcSize: Assignment Branch Condition size for `root_boundary_range` is too high. [<6, 22, 12> 25.77/17]", 2821370782], - [307, 7, 912, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `root_boundary_range` is too high. [11/7]", 2821370782], - [307, 7, 912, "Metrics/MethodLength: Method has too many lines. [21/10]", 2821370782], - [307, 7, 912, "Metrics/PerceivedComplexity: Perceived complexity for `root_boundary_range` is too high. [12/8]", 2821370782], - [350, 7, 401, "Metrics/MethodLength: Method has too many lines. [11/10]", 559624650] - ], - "lib/ast/merge/composite_match_refiner.rb:1718969703": [ - [58, 7, 668, "Metrics/MethodLength: Method has too many lines. [14/10]", 2649148714] - ], - "lib/ast/merge/conflict_resolver_base.rb:765343263": [ - [69, 5, 14959, "Metrics/ClassLength: Class has too many lines. [170/100]", 633092728], - [156, 7, 919, "Metrics/MethodLength: Method has too many lines. [13/10]", 1701319380], - [156, 21, 200, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [9/5]", 3369976202], - [367, 7, 972, "Metrics/MethodLength: Method has too many lines. [22/10]", 2870739148], - [434, 47, 13, "Style/NumericPredicate: Use `recursive.positive?` instead of `recursive > 0`.", 462999281], - [436, 99, 14, "Style/NumericPredicate: Use `recursive.zero?` instead of `recursive == 0`.", 2394069519] - ], - "lib/ast/merge/content_match_refiner.rb:3628272158": [ - [47, 5, 7719, "Metrics/ClassLength: Class has too many lines. [108/100]", 651494487], - [87, 7, 750, "Metrics/MethodLength: Method has too many lines. [17/10]", 3624290009], - [165, 37, 48, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 953994744], - [232, 7, 846, "Metrics/AbcSize: Assignment Branch Condition size for `levenshtein_distance` is too high. [<13, 29, 8> 32.77/17]", 3597737347], - [232, 7, 846, "Metrics/MethodLength: Method has too many lines. [20/10]", 3597737347] - ], - "lib/ast/merge/debug_logger.rb:1783610128": [ - [72, 5, 7614, "Metrics/ModuleLength: Module has too many lines. [118/100]", 736598454], - [85, 121, 7, "Layout/LineLength: Line is too long. [127/120]", 941621], - [206, 7, 584, "Metrics/AbcSize: Assignment Branch Condition size for `time` is too high. [<3, 17, 2> 17.38/17]", 3468868523], - [206, 7, 584, "Metrics/MethodLength: Method has too many lines. [14/10]", 3468868523], - [269, 7, 450, "Metrics/PerceivedComplexity: Perceived complexity for `extract_lines` is too high. [9/8]", 680738666], - [287, 7, 11, "Style/ModuleFunction: Use `module_function` instead of `extend self`.", 1210897631] - ], - "lib/ast/merge/detector/base.rb:343830240": [ - [175, 25, 73, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 2991095115] - ], - "lib/ast/merge/detector/fenced_code_block.rb:3555142063": [ - [36, 7, 6302, "Metrics/ClassLength: Class has too many lines. [116/100]", 852968953], - [71, 9, 2492, "Metrics/AbcSize: Assignment Branch Condition size for `detect_all` is too high. [<31, 28, 12> 43.46/17]", 3575218793], - [71, 9, 2492, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `detect_all` is too high. [11/7]", 3575218793], - [71, 9, 2492, "Metrics/MethodLength: Method has too many lines. [54/10]", 3575218793], - [71, 9, 2492, "Metrics/PerceivedComplexity: Perceived complexity for `detect_all` is too high. [13/8]", 3575218793], - [84, 11, 2060, "Metrics/BlockLength: Block has too many lines. [41/25]", 1744553779] - ], - "lib/ast/merge/detector/mergeable.rb:354817747": [ - [54, 7, 11933, "Metrics/ModuleLength: Module has too many lines. [140/100]", 1453034870], - [162, 9, 601, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `build_region_configs` is too high. [8/7]", 1278024890], - [162, 9, 601, "Metrics/MethodLength: Method has too many lines. [16/10]", 1278024890], - [189, 9, 1054, "Metrics/AbcSize: Assignment Branch Condition size for `extract_regions` is too high. [<11, 16, 3> 19.65/17]", 663241096], - [189, 9, 1054, "Metrics/MethodLength: Method has too many lines. [20/10]", 663241096], - [285, 9, 1005, "Metrics/AbcSize: Assignment Branch Condition size for `merge_and_substitute_regions` is too high. [<16, 19, 4> 25.16/17]", 4123525156], - [285, 9, 1005, "Metrics/MethodLength: Method has too many lines. [16/10]", 4123525156], - [318, 9, 1369, "Metrics/AbcSize: Assignment Branch Condition size for `merge_region` is too high. [<11, 20, 14> 26.78/17]", 746321843], - [318, 9, 1369, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `merge_region` is too high. [15/7]", 746321843], - [318, 9, 1369, "Metrics/MethodLength: Method has too many lines. [16/10]", 746321843], - [318, 9, 1369, "Metrics/PerceivedComplexity: Perceived complexity for `merge_region` is too high. [15/8]", 746321843] - ], - "lib/ast/merge/detector/toml_frontmatter.rb:3255696517": [ - [50, 9, 892, "Metrics/MethodLength: Method has too many lines. [20/10]", 3132005303] - ], - "lib/ast/merge/detector/yaml_frontmatter.rb:2551474823": [ - [49, 9, 958, "Metrics/MethodLength: Method has too many lines. [20/10]", 3132005303] - ], - "lib/ast/merge/diff_mapper_base.rb:3204989377": [ - [22, 5, 7793, "Metrics/ClassLength: Class has too many lines. [141/100]", 2217731166], - [80, 7, 2598, "Metrics/AbcSize: Assignment Branch Condition size for `parse_diff` is too high. [<21, 31, 15> 40.34/17]", 939898835], - [80, 7, 2598, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `parse_diff` is too high. [16/7]", 939898835], - [80, 7, 2598, "Metrics/MethodLength: Method has too many lines. [65/10]", 939898835], - [80, 7, 2598, "Metrics/PerceivedComplexity: Perceived complexity for `parse_diff` is too high. [12/8]", 939898835], - [90, 9, 2162, "Metrics/BlockLength: Block has too many lines. [50/25]", 3403609416], - [169, 7, 394, "Metrics/MethodLength: Method has too many lines. [11/10]", 2028641628] - ], - "lib/ast/merge/emitter_base.rb:4280054392": [ - [26, 5, 14922, "Metrics/ClassLength: Class has too many lines. [232/100]", 2015391034], - [95, 7, 653, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `emit_comment_region` is too high. [9/7]", 24580929], - [95, 7, 653, "Metrics/MethodLength: Method has too many lines. [12/10]", 24580929], - [95, 7, 653, "Metrics/PerceivedComplexity: Perceived complexity for `emit_comment_region` is too high. [9/8]", 24580929], - [120, 7, 1311, "Metrics/AbcSize: Assignment Branch Condition size for `emit_comment_attachment` is too high. [<5, 25, 16> 30.1/17]", 964928813], - [120, 7, 1311, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `emit_comment_attachment` is too high. [17/7]", 964928813], - [120, 7, 1311, "Metrics/MethodLength: Method has too many lines. [17/10]", 964928813], - [120, 7, 1311, "Metrics/PerceivedComplexity: Perceived complexity for `emit_comment_attachment` is too high. [17/8]", 964928813], - [120, 34, 127, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 628879795], - [152, 7, 984, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `emit_layout_gap` is too high. [8/7]", 1954418889], - [152, 7, 984, "Metrics/MethodLength: Method has too many lines. [13/10]", 1954418889], - [152, 7, 984, "Metrics/PerceivedComplexity: Perceived complexity for `emit_layout_gap` is too high. [9/8]", 1954418889], - [152, 26, 136, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 3839882587], - [183, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5861198], - [184, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2087656651], - [186, 7, 1307, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `emit_layout_attachment` is too high. [9/7]", 708408665], - [186, 7, 1307, "Metrics/MethodLength: Method has too many lines. [26/10]", 708408665], - [186, 7, 1307, "Metrics/PerceivedComplexity: Perceived complexity for `emit_layout_attachment` is too high. [9/8]", 708408665], - [186, 33, 218, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [8/5]", 1552587384], - [187, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 1763090185], - [189, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1371312610], - [271, 31, 17, "Style/NumericPredicate: Use `@indent_level.positive?` instead of `@indent_level > 0`.", 1892475678], - [317, 56, 12, "Lint/UnusedMethodArgument: Unused method argument - `current_line`. You can also write as `inline_comment_region_target_column(*)` if you want the method to accept any arguments but don't care about them.", 2091263933], - [321, 42, 6, "Lint/UnusedMethodArgument: Unused method argument - `region`.", 2124512157], - [321, 51, 13, "Lint/UnusedMethodArgument: Unused method argument - `target_column`.", 3246375805], - [336, 7, 1141, "Metrics/AbcSize: Assignment Branch Condition size for `inline_comment_node_text` is too high. [<6, 29, 8> 30.68/17]", 2583471562], - [336, 7, 1141, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `inline_comment_node_text` is too high. [9/7]", 2583471562], - [336, 7, 1141, "Metrics/MethodLength: Method has too many lines. [22/10]", 2583471562], - [336, 7, 1141, "Metrics/PerceivedComplexity: Perceived complexity for `inline_comment_node_text` is too high. [9/8]", 2583471562], - [354, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5861626], - [365, 7, 510, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `emit_region_gap_lines` is too high. [8/7]", 1999747697], - [365, 7, 510, "Metrics/PerceivedComplexity: Perceived complexity for `emit_region_gap_lines` is too high. [9/8]", 1999747697] - ], - "lib/ast/merge/emitter_line_metadata_support.rb:3153033769": [ - [5, 5, 33, "Style/Documentation: Missing top-level documentation comment for `module Ast::Merge::EmitterLineMetadataSupport`.", 2926748997], - [23, 7, 541, "Metrics/MethodLength: Method has too many lines. [12/10]", 2407359355] - ], - "lib/ast/merge/file_aligner_base.rb:2160333224": [ - [13, 5, 8206, "Metrics/ClassLength: Class has too many lines. [203/100]", 2982381587], - [27, 7, 2329, "Metrics/AbcSize: Assignment Branch Condition size for `align` is too high. [<19, 39, 14> 45.59/17]", 1243937217], - [27, 7, 2329, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `align` is too high. [14/7]", 1243937217], - [27, 7, 2329, "Metrics/MethodLength: Method has too many lines. [56/10]", 1243937217], - [27, 7, 2329, "Metrics/PerceivedComplexity: Perceived complexity for `align` is too high. [14/8]", 1243937217], - [167, 7, 655, "Metrics/MethodLength: Method has too many lines. [14/10]", 2468821688], - [199, 7, 455, "Metrics/MethodLength: Method has too many lines. [13/10]", 2361153066], - [218, 7, 1557, "Metrics/AbcSize: Assignment Branch Condition size for `apply_match_refiner!` is too high. [<10, 28, 12> 32.06/17]", 2386945712], - [218, 7, 1557, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `apply_match_refiner!` is too high. [13/7]", 2386945712], - [218, 7, 1557, "Metrics/MethodLength: Method has too many lines. [31/10]", 2386945712], - [218, 7, 1557, "Metrics/PerceivedComplexity: Perceived complexity for `apply_match_refiner!` is too high. [13/8]", 2386945712] - ], - "lib/ast/merge/file_analyzable.rb:607555963": [ - [36, 5, 31229, "Metrics/ModuleLength: Module has too many lines. [316/100]", 1247752256], - [99, 19, 9, "Style/NumericPredicate: Use `index.negative?` instead of `index < 0`.", 4215255415], - [148, 7, 793, "Metrics/MethodLength: Method has too many lines. [22/10]", 1467470910], - [202, 7, 771, "Metrics/MethodLength: Method has too many lines. [16/10]", 1412317163], - [344, 7, 844, "Metrics/MethodLength: Method has too many lines. [12/10]", 2335919661], - [369, 7, 730, "Metrics/MethodLength: Method has too many lines. [11/10]", 1047958652], - [431, 7, 863, "Metrics/AbcSize: Assignment Branch Condition size for `normalize_layout_owned_comment_attachment` is too high. [<0, 20, 4> 20.4/17]", 3284843691], - [431, 7, 863, "Metrics/MethodLength: Method has too many lines. [17/10]", 3284843691], - [481, 7, 683, "Metrics/MethodLength: Method has too many lines. [15/10]", 241044926], - [520, 14, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], - [614, 7, 6095, "Metrics/AbcSize: Assignment Branch Condition size for `generate_signature` is too high. [<4, 21, 13> 25.02/17]", 2828809875], - [614, 7, 6095, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `generate_signature` is too high. [11/7]", 2828809875], - [614, 7, 6095, "Metrics/MethodLength: Method has too many lines. [30/10]", 2828809875], - [614, 7, 6095, "Metrics/PerceivedComplexity: Perceived complexity for `generate_signature` is too high. [14/8]", 2828809875], - [676, 24, 390, "Metrics/BlockNesting: Avoid more than 3 levels of block nesting.", 3279112483] - ], - "lib/ast/merge/freeze_node_base.rb:2110274026": [ - [59, 5, 14572, "Metrics/ClassLength: Class has too many lines. [171/100]", 3038607603], - [108, 25, 545, "Style/MutableConstant: Freeze mutable objects assigned to constants.", 2366014160], - [186, 9, 1100, "Metrics/MethodLength: Method has too many lines. [15/10]", 2506841532], - [288, 7, 758, "Metrics/MethodLength: Method has too many lines. [11/10]", 136868205], - [288, 21, 276, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [11/5]", 1720059801], - [335, 7, 660, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `reason` is too high. [8/7]", 3127566048], - [418, 20, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765] - ], - "lib/ast/merge/healer.rb:3642412735": [ - [18, 7, 588, "Metrics/MethodLength: Method has too many lines. [15/10]", 3172269921], - [18, 17, 84, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 1781025196], - [41, 7, 687, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `filter_items` is too high. [8/7]", 1200842691], - [41, 7, 687, "Metrics/MethodLength: Method has too many lines. [17/10]", 1200842691], - [41, 7, 687, "Metrics/PerceivedComplexity: Perceived complexity for `filter_items` is too high. [9/8]", 1200842691], - [41, 23, 130, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [8/5]", 33939503] - ], - "lib/ast/merge/jaccard_similarity.rb:678558736": [ - [87, 19, 1, "Naming/MethodParameterName: Method parameter must be at least 3 characters long.", 177604], - [87, 22, 1, "Naming/MethodParameterName: Method parameter must be at least 3 characters long.", 177607] - ], - "lib/ast/merge/key_path_partial_template_merger_base.rb:1818613864": [ - [22, 5, 6114, "Metrics/ClassLength: Class has too many lines. [155/100]", 1269962119], - [43, 21, 214, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [8/5]", 3637591635], - [68, 7, 489, "Metrics/MethodLength: Method has too many lines. [12/10]", 3170411580], - [118, 7, 640, "Metrics/AbcSize: Assignment Branch Condition size for `find_key_path` is too high. [<8, 14, 10> 18.97/17]", 2613403604], - [118, 7, 640, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `find_key_path` is too high. [8/7]", 2613403604], - [118, 7, 640, "Metrics/MethodLength: Method has too many lines. [16/10]", 2613403604], - [118, 7, 640, "Metrics/PerceivedComplexity: Perceived complexity for `find_key_path` is too high. [9/8]", 2613403604], - [140, 7, 536, "Metrics/MethodLength: Method has too many lines. [17/10]", 3598062652], - [168, 7, 804, "Metrics/MethodLength: Method has too many lines. [19/10]", 2773364183] - ], - "lib/ast/merge/layout.rb:3670500101": [ - [23, 36, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765] - ], - "lib/ast/merge/layout/augmenter.rb:3229088287": [ - [8, 7, 5440, "Metrics/ClassLength: Class has too many lines. [128/100]", 2306720287], - [23, 23, 125, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [7/5]", 3395039982], - [55, 9, 1795, "Metrics/AbcSize: Assignment Branch Condition size for `build!` is too high. [<20, 32, 17> 41.39/17]", 3542913254], - [55, 9, 1795, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `build!` is too high. [15/7]", 3542913254], - [55, 9, 1795, "Metrics/MethodLength: Method has too many lines. [43/10]", 3542913254], - [55, 9, 1795, "Metrics/PerceivedComplexity: Perceived complexity for `build!` is too high. [15/8]", 3542913254], - [60, 11, 1227, "Metrics/BlockLength: Block has too many lines. [29/25]", 55360131], - [107, 9, 504, "Metrics/MethodLength: Method has too many lines. [16/10]", 1953725517] - ], - "lib/ast/merge/layout/gap.rb:1678106201": [ - [11, 7, 7558, "Metrics/ClassLength: Class has too many lines. [151/100]", 2254377349], - [23, 9, 655, "Metrics/MethodLength: Method has too many lines. [11/10]", 3584854768], - [23, 23, 146, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [9/5]", 361396001], - [157, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5859545], - [162, 9, 303, "Metrics/MethodLength: Method has too many lines. [12/10]", 2236444774], - [203, 9, 688, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `validate_adjacency!` is too high. [10/7]", 1112786311], - [203, 9, 688, "Metrics/MethodLength: Method has too many lines. [13/10]", 1112786311] - ], - "lib/ast/merge/line_range_support.rb:773479830": [ - [13, 7, 430, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `object_start_line` is too high. [8/7]", 2485070052], - [13, 7, 430, "Metrics/PerceivedComplexity: Perceived complexity for `object_start_line` is too high. [9/8]", 2485070052], - [25, 7, 414, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `object_end_line` is too high. [8/7]", 3545256164], - [25, 7, 414, "Metrics/PerceivedComplexity: Perceived complexity for `object_end_line` is too high. [9/8]", 3545256164] - ], - "lib/ast/merge/match_refiner_base.rb:1760054866": [ - [248, 7, 503, "Metrics/MethodLength: Method has too many lines. [11/10]", 2844230268], - [275, 7, 1056, "Metrics/AbcSize: Assignment Branch Condition size for `greedy_match` is too high. [<9, 24, 8> 26.85/17]", 2497617815], - [275, 7, 1056, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `greedy_match` is too high. [8/7]", 2497617815], - [275, 7, 1056, "Metrics/MethodLength: Method has too many lines. [24/10]", 2497617815] - ], - "lib/ast/merge/merge_result_base.rb:1342312150": [ - [17, 5, 19111, "Metrics/ClassLength: Class has too many lines. [341/100]", 1211564896], - [88, 21, 187, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [7/5]", 1067369198], - [202, 7, 843, "Metrics/AbcSize: Assignment Branch Condition size for `normalize_blank_line_runs!` is too high. [<12, 12, 10> 19.7/17]", 2347011594], - [202, 7, 843, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `normalize_blank_line_runs!` is too high. [9/7]", 2347011594], - [202, 7, 843, "Metrics/MethodLength: Method has too many lines. [22/10]", 2347011594], - [202, 7, 843, "Metrics/PerceivedComplexity: Perceived complexity for `normalize_blank_line_runs!` is too high. [10/8]", 2347011594], - [242, 7, 1004, "Metrics/MethodLength: Method has too many lines. [21/10]", 59539336], - [242, 35, 211, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [8/5]", 709487711], - [281, 7, 602, "Metrics/MethodLength: Method has too many lines. [13/10]", 320027623], - [356, 7, 927, "Metrics/AbcSize: Assignment Branch Condition size for `validate_review_state_compatibility!` is too high. [<8, 15, 4> 17.46/17]", 1596840080], - [356, 7, 927, "Metrics/MethodLength: Method has too many lines. [16/10]", 1596840080], - [418, 7, 936, "Metrics/AbcSize: Assignment Branch Condition size for `review_state_metadata` is too high. [<7, 18, 4> 19.72/17]", 4128292066], - [418, 7, 936, "Metrics/MethodLength: Method has too many lines. [14/10]", 4128292066], - [428, 121, 11, "Layout/LineLength: Line is too long. [131/120]", 20421901], - [453, 7, 1194, "Metrics/MethodLength: Method has too many lines. [21/10]", 4289697646], - [463, 121, 56, "Layout/LineLength: Line is too long. [176/120]", 3342583337] - ], - "lib/ast/merge/merger_config.rb:3582657829": [ - [46, 5, 10581, "Metrics/ClassLength: Class has too many lines. [148/100]", 1598770872], - [96, 21, 234, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [7/5]", 720509970] - ], - "lib/ast/merge/navigable/injection_point_finder.rb:4117743218": [ - [45, 9, 1707, "Metrics/AbcSize: Assignment Branch Condition size for `find` is too high. [<9, 18, 17> 26.34/17]", 1445381162], - [45, 9, 1707, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `find` is too high. [15/7]", 1445381162], - [45, 9, 1707, "Metrics/MethodLength: Method has too many lines. [28/10]", 1445381162], - [45, 9, 1707, "Metrics/PerceivedComplexity: Perceived complexity for `find` is too high. [16/8]", 1445381162], - [45, 17, 156, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [7/5]", 3876813166] - ], - "lib/ast/merge/navigable/statement.rb:3050515622": [ - [42, 7, 11078, "Metrics/ClassLength: Class has too many lines. [179/100]", 2550894515], - [96, 11, 550, "Metrics/AbcSize: Assignment Branch Condition size for `find_matching` is too high. [<7, 16, 12> 21.19/17]", 3492534565], - [96, 11, 550, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `find_matching` is too high. [12/7]", 3492534565], - [96, 11, 550, "Metrics/PerceivedComplexity: Perceived complexity for `find_matching` is too high. [12/8]", 3492534565], - [222, 13, 20, "Naming/PredicatePrefix: Rename `has_tree_navigation?` to `tree_navigation?`.", 733442156] - ], - "lib/ast/merge/node_typing.rb:4008165135": [ - [175, 9, 694, "Metrics/MethodLength: Method has too many lines. [12/10]", 777909930], - [213, 9, 891, "Metrics/AbcSize: Assignment Branch Condition size for `find_typing_callable` is too high. [<3, 23, 13> 26.59/17]", 3835052858], - [213, 9, 891, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `find_typing_callable` is too high. [14/7]", 3835052858], - [213, 9, 891, "Metrics/PerceivedComplexity: Perceived complexity for `find_typing_callable` is too high. [14/8]", 3835052858] - ], - "lib/ast/merge/node_wrapper_base.rb:3796877358": [ - [62, 5, 10228, "Metrics/ClassLength: Class has too many lines. [135/100]", 3832956007], - [92, 21, 81, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 4261369704] - ], - "lib/ast/merge/owner_selection.rb:2568070127": [ - [9, 7, 757, "Metrics/MethodLength: Method has too many lines. [13/10]", 2069564552] - ], - "lib/ast/merge/partial_template_merger_base.rb:2252899061": [ - [27, 5, 16780, "Metrics/ClassLength: Class has too many lines. [266/100]", 2205844189], - [48, 23, 81, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 2112244807], - [106, 7, 757, "Metrics/MethodLength: Method has too many lines. [11/10]", 571708764], - [106, 21, 293, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [11/5]", 871709580], - [135, 7, 788, "Metrics/AbcSize: Assignment Branch Condition size for `merge` is too high. [<4, 19, 5> 20.05/17]", 467674580], - [135, 7, 788, "Metrics/MethodLength: Method has too many lines. [13/10]", 467674580], - [213, 7, 533, "Metrics/AbcSize: Assignment Branch Condition size for `normalize_matcher` is too high. [<7, 20, 6> 22.02/17]", 1798972396], - [238, 7, 922, "Metrics/MethodLength: Method has too many lines. [25/10]", 1846154069], - [242, 25, 37, "Style/StringConcatenation: Prefer string interpolation to string concatenation.", 939456830], - [251, 25, 31, "Style/StringConcatenation: Prefer string interpolation to string concatenation.", 1024894473], - [268, 7, 1905, "Metrics/AbcSize: Assignment Branch Condition size for `perform_section_merge` is too high. [<13, 15, 2> 19.95/17]", 2711014340], - [268, 7, 1905, "Metrics/MethodLength: Method has too many lines. [34/10]", 2711014340], - [316, 50, 15, "Lint/UnusedMethodArgument: Unused method argument - `section_context`.", 2872123372], - [334, 7, 690, "Metrics/MethodLength: Method has too many lines. [14/10]", 1807124523], - [367, 7, 1122, "Metrics/AbcSize: Assignment Branch Condition size for `build_merged_content` is too high. [<1, 29, 14> 32.22/17]", 3938410418], - [367, 7, 1122, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `build_merged_content` is too high. [15/7]", 3938410418], - [367, 7, 1122, "Metrics/MethodLength: Method has too many lines. [18/10]", 3938410418], - [367, 7, 1122, "Metrics/PerceivedComplexity: Perceived complexity for `build_merged_content` is too high. [15/8]", 3938410418], - [397, 7, 596, "Metrics/MethodLength: Method has too many lines. [12/10]", 2602121883], - [397, 32, 144, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [7/5]", 1463491208], - [414, 7, 1589, "Metrics/AbcSize: Assignment Branch Condition size for `source_splice_plan_for` is too high. [<6, 18, 9> 21/17]", 2889667289], - [414, 7, 1589, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `source_splice_plan_for` is too high. [9/7]", 2889667289], - [414, 7, 1589, "Metrics/MethodLength: Method has too many lines. [30/10]", 2889667289], - [414, 7, 1589, "Metrics/PerceivedComplexity: Perceived complexity for `source_splice_plan_for` is too high. [9/8]", 2889667289] - ], - "lib/ast/merge/recipe/config.rb:3990762705": [ - [54, 7, 14970, "Metrics/ClassLength: Class has too many lines. [296/100]", 2492031021], - [142, 9, 673, "Metrics/MethodLength: Method has too many lines. [12/10]", 3011978845], - [170, 9, 484, "Metrics/MethodLength: Method has too many lines. [15/10]", 183356432], - [246, 9, 710, "Metrics/AbcSize: Assignment Branch Condition size for `parse_injection` is too high. [<8, 13, 8> 17.23/17]", 641239814], - [246, 9, 710, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `parse_injection` is too high. [9/7]", 641239814], - [246, 9, 710, "Metrics/MethodLength: Method has too many lines. [16/10]", 641239814], - [246, 9, 710, "Metrics/PerceivedComplexity: Perceived complexity for `parse_injection` is too high. [9/8]", 641239814], - [278, 9, 871, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `parse_step` is too high. [8/7]", 3989307721], - [278, 9, 871, "Metrics/MethodLength: Method has too many lines. [20/10]", 3989307721], - [338, 9, 1758, "Metrics/AbcSize: Assignment Branch Condition size for `parse_step_merge_overrides` is too high. [<11, 43, 25> 50.94/17]", 806370438], - [338, 9, 1758, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `parse_step_merge_overrides` is too high. [22/7]", 806370438], - [338, 9, 1758, "Metrics/MethodLength: Method has too many lines. [30/10]", 806370438], - [338, 9, 1758, "Metrics/PerceivedComplexity: Perceived complexity for `parse_step_merge_overrides` is too high. [22/8]", 806370438], - [373, 9, 566, "Metrics/MethodLength: Method has too many lines. [14/10]", 3671206955], - [391, 9, 547, "Metrics/MethodLength: Method has too many lines. [16/10]", 3273587697], - [459, 9, 799, "Metrics/AbcSize: Assignment Branch Condition size for `validate_injection!` is too high. [<2, 15, 12> 19.31/17]", 1665903587], - [459, 9, 799, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `validate_injection!` is too high. [13/7]", 1665903587], - [459, 9, 799, "Metrics/MethodLength: Method has too many lines. [11/10]", 1665903587], - [459, 9, 799, "Metrics/PerceivedComplexity: Perceived complexity for `validate_injection!` is too high. [13/8]", 1665903587] - ], - "lib/ast/merge/recipe/preset.rb:2311326866": [ - [195, 9, 662, "Metrics/MethodLength: Method has too many lines. [12/10]", 1640897447] - ], - "lib/ast/merge/recipe/runner.rb:2243867806": [ - [27, 7, 28612, "Metrics/ClassLength: Class has too many lines. [547/100]", 79000832], - [73, 121, 28, "Layout/LineLength: Line is too long. [148/120]", 1411864995], - [77, 23, 136, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [8/5]", 1636278032], - [92, 9, 849, "Metrics/MethodLength: Method has too many lines. [14/10]", 3083064345], - [128, 24, 129, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 2642826282], - [210, 9, 788, "Metrics/MethodLength: Method has too many lines. [23/10]", 743008161], - [241, 9, 3397, "Metrics/AbcSize: Assignment Branch Condition size for `create_partial_template_merger` is too high. [<3, 52, 16> 54.49/17]", 2086180075], - [241, 9, 3397, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `create_partial_template_merger` is too high. [14/7]", 2086180075], - [241, 9, 3397, "Metrics/MethodLength: Method has too many lines. [63/10]", 2086180075], - [241, 9, 3397, "Metrics/PerceivedComplexity: Perceived complexity for `create_partial_template_merger` is too high. [13/8]", 2086180075], - [250, 121, 11, "Layout/LineLength: Line is too long. [131/120]", 2857356312], - [274, 121, 1, "Layout/LineLength: Line is too long. [121/120]", 177538], - [312, 9, 2210, "Metrics/AbcSize: Assignment Branch Condition size for `create_smart_merger` is too high. [<1, 39, 7> 39.64/17]", 1694660188], - [312, 9, 2210, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `create_smart_merger` is too high. [8/7]", 1694660188], - [312, 9, 2210, "Metrics/MethodLength: Method has too many lines. [45/10]", 1694660188], - [357, 121, 5, "Layout/LineLength: Line is too long. [125/120]", 195423462], - [370, 9, 1087, "Metrics/MethodLength: Method has too many lines. [24/10]", 3850049530], - [370, 31, 124, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 3466458723], - [401, 9, 1008, "Metrics/MethodLength: Method has too many lines. [19/10]", 2010895303], - [401, 25, 143, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [8/5]", 2360959504], - [424, 9, 1263, "Metrics/AbcSize: Assignment Branch Condition size for `execute_partial_merge_step` is too high. [<3, 22, 1> 22.23/17]", 2850918453], - [424, 9, 1263, "Metrics/MethodLength: Method has too many lines. [25/10]", 2850918453], - [453, 9, 835, "Metrics/MethodLength: Method has too many lines. [14/10]", 1478843287], - [471, 9, 808, "Metrics/MethodLength: Method has too many lines. [15/10]", 1127254660], - [471, 37, 155, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [8/5]", 838578768], - [491, 9, 1126, "Metrics/AbcSize: Assignment Branch Condition size for `normalize_smart_merge_result` is too high. [<8, 17, 12> 22.29/17]", 1786697339], - [491, 9, 1126, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `normalize_smart_merge_result` is too high. [9/7]", 1786697339], - [491, 9, 1126, "Metrics/MethodLength: Method has too many lines. [23/10]", 1786697339], - [491, 9, 1126, "Metrics/PerceivedComplexity: Perceived complexity for `normalize_smart_merge_result` is too high. [11/8]", 1786697339], - [518, 9, 2523, "Metrics/AbcSize: Assignment Branch Condition size for `normalize_script_step_result` is too high. [<5, 40, 32> 51.47/17]", 2162420067], - [518, 9, 2523, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `normalize_script_step_result` is too high. [26/7]", 2162420067], - [518, 9, 2523, "Metrics/MethodLength: Method has too many lines. [48/10]", 2162420067], - [518, 9, 2523, "Metrics/PerceivedComplexity: Perceived complexity for `normalize_script_step_result` is too high. [29/8]", 2162420067], - [547, 121, 18, "Layout/LineLength: Line is too long. [138/120]", 93872446], - [556, 121, 56, "Layout/LineLength: Line is too long. [176/120]", 1527250939], - [586, 11, 155, "Style/HashTransformKeys: Prefer `transform_keys` over `each_with_object`.", 837503672], - [591, 9, 698, "Metrics/MethodLength: Method has too many lines. [11/10]", 1116310304], - [635, 9, 2582, "Metrics/AbcSize: Assignment Branch Condition size for `create_result_from_steps` is too high. [<8, 30, 31> 43.87/17]", 2040042265], - [635, 9, 2582, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `create_result_from_steps` is too high. [23/7]", 2040042265], - [635, 9, 2582, "Metrics/MethodLength: Method has too many lines. [60/10]", 2040042265], - [635, 9, 2582, "Metrics/PerceivedComplexity: Perceived complexity for `create_result_from_steps` is too high. [27/8]", 2040042265], - [635, 37, 133, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 789257106], - [649, 42, 40, "Style/SymbolProc: Pass `&:has_anchor` as an argument to `any?` instead of a block.", 4233626321] - ], - "lib/ast/merge/recipe/script_loader.rb:1397873218": [ - [145, 9, 1126, "Metrics/AbcSize: Assignment Branch Condition size for `load_script_file` is too high. [<6, 19, 4> 20.32/17]", 3417625171], - [145, 9, 1126, "Metrics/MethodLength: Method has too many lines. [17/10]", 3417625171] - ], - "lib/ast/merge/rspec/comment_behavior_matrix_adapters.rb:3429217018": [ - [9, 46, 341, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [9/5]", 532439002], - [31, 9, 901, "Metrics/MethodLength: Method has too many lines. [11/10]", 584608092], - [31, 59, 308, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [8/5]", 883491898], - [54, 9, 1269, "Metrics/MethodLength: Method has too many lines. [20/10]", 1021031182], - [65, 51, 6, "Lint/UnusedBlockArgument: Unused block argument - `inline`. If it's necessary, use `_` or `_inline` as an argument name to indicate that it won't be used.", 1605470060], - [69, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 4226982364], - [70, 121, 11, "Layout/LineLength: Line is too long. [131/120]", 1440420861] - ], - "lib/ast/merge/rspec/conformance_fixtures.rb:1295759615": [ - [6, 7, 26, "Style/Documentation: Missing top-level documentation comment for `module Ast::Merge::RSpec::ConformanceFixtures`.", 90066768], - [9, 9, 1432, "Metrics/AbcSize: Assignment Branch Condition size for `normalize_conformance_fixture_support` is too high. [<10, 30, 33> 45.71/17]", 518714108], - [9, 9, 1432, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `normalize_conformance_fixture_support` is too high. [33/7]", 518714108], - [9, 9, 1432, "Metrics/MethodLength: Method has too many lines. [25/10]", 518714108], - [9, 9, 1432, "Metrics/PerceivedComplexity: Perceived complexity for `normalize_conformance_fixture_support` is too high. [31/8]", 518714108] - ], - "lib/ast/merge/rspec/dependency_tags_config.rb:3604516304": [ - [30, 1, 2102, "Metrics/BlockLength: Block has too many lines. [26/25]", 113766065] - ], - "lib/ast/merge/rspec/merge_gem_registry.rb:3009576030": [ - [58, 7, 12129, "Metrics/ModuleLength: Module has too many lines. [158/100]", 335549747], - [90, 9, 780, "Metrics/MethodLength: Method has too many lines. [14/10]", 978965737], - [90, 21, 99, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 3580433546], - [118, 9, 650, "Metrics/MethodLength: Method has too many lines. [12/10]", 3143160805], - [118, 31, 130, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 2575863904], - [143, 9, 823, "Metrics/MethodLength: Method has too many lines. [17/10]", 4033116153], - [200, 9, 765, "Metrics/AbcSize: Assignment Branch Condition size for `register_known_gems` is too high. [<3, 17, 3> 17.52/17]", 1367620151], - [200, 9, 765, "Metrics/MethodLength: Method has too many lines. [17/10]", 1367620151] - ], - "lib/ast/merge/rspec/shared_examples.rb:151517887": [ - [27, 121, 3, "Layout/LineLength: Line is too long. [123/120]", 193426019], - [31, 121, 7, "Layout/LineLength: Line is too long. [127/120]", 330577472] - ], - "lib/ast/merge/rspec/shared_examples/comment_behavior_matrix.rb:3695671858": [ - [36, 1, 27847, "Metrics/BlockLength: Block has too many lines. [540/25]", 3796645407], - [38, 55, 15, "Style/SymbolProc: Pass `&:value` as an argument to `lambda` instead of a block.", 1808354951], - [42, 64, 23, "Style/SymbolProc: Pass `&:statements` as an argument to `lambda` instead of a block.", 277221641], - [69, 3, 4455, "Metrics/BlockLength: Block has too many lines. [82/25]", 3672334777], - [72, 5, 1763, "Metrics/BlockLength: Block has too many lines. [34/25]", 164750821], - [165, 3, 22093, "Metrics/BlockLength: Block has too many lines. [429/25]", 229312375], - [292, 5, 1918, "Metrics/BlockLength: Block has too many lines. [29/25]", 1312741055], - [323, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1902517440], - [325, 121, 5, "Layout/LineLength: Line is too long. [125/120]", 173482512], - [328, 121, 5, "Layout/LineLength: Line is too long. [125/120]", 167607404], - [476, 5, 1605, "Metrics/BlockLength: Block has too many lines. [35/25]", 1943633697], - [677, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1902517440] - ], - "lib/ast/merge/rspec/shared_examples/conflict_resolver_base.rb:624045197": [ - [30, 1, 7893, "Metrics/BlockLength: Block has too many lines. [197/25]", 3450672926], - [37, 3, 1372, "Metrics/BlockLength: Block has too many lines. [33/25]", 3389152504], - [83, 3, 1206, "Metrics/BlockLength: Block has too many lines. [35/25]", 1580202348], - [128, 3, 1177, "Metrics/BlockLength: Block has too many lines. [33/25]", 2178974049], - [215, 3, 2443, "Metrics/BlockLength: Block has too many lines. [51/25]", 2538475273], - [219, 5, 1909, "Metrics/BlockLength: Block has too many lines. [35/25]", 880175101], - [279, 1, 2518, "Metrics/BlockLength: Block has too many lines. [74/25]", 958151448], - [286, 3, 2235, "Metrics/BlockLength: Block has too many lines. [70/25]", 2123260684], - [391, 1, 1317, "Metrics/BlockLength: Block has too many lines. [37/25]", 2321517041], - [439, 1, 1639, "Metrics/BlockLength: Block has too many lines. [37/25]", 276150366] - ], - "lib/ast/merge/rspec/shared_examples/debug_logger.rb:2747003588": [ - [23, 1, 4741, "Metrics/BlockLength: Block has too many lines. [121/25]", 3341338388], - [47, 3, 976, "Metrics/BlockLength: Block has too many lines. [27/25]", 2640321404], - [85, 3, 1452, "Metrics/BlockLength: Block has too many lines. [34/25]", 554663062] - ], - "lib/ast/merge/rspec/shared_examples/feature_profile.rb:4172143324": [ - [30, 1, 4249, "Metrics/BlockLength: Block has too many lines. [53/25]", 3787230403] - ], - "lib/ast/merge/rspec/shared_examples/file_analyzable.rb:2391547213": [ - [44, 1, 6468, "Metrics/BlockLength: Block has too many lines. [145/25]", 3744642916] - ], - "lib/ast/merge/rspec/shared_examples/freeze_node_base.rb:1711126715": [ - [23, 1, 5952, "Metrics/BlockLength: Block has too many lines. [157/25]", 3152271039], - [29, 3, 2836, "Metrics/BlockLength: Block has too many lines. [69/25]", 2082270913], - [115, 3, 1552, "Metrics/BlockLength: Block has too many lines. [46/25]", 4180117745] - ], - "lib/ast/merge/rspec/shared_examples/layout_attachment.rb:4130619694": [ - [30, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 1263574869], - [31, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 4282300883] - ], - "lib/ast/merge/rspec/shared_examples/layout_augmenter.rb:1928277603": [ - [18, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1311107624], - [19, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1311107624] - ], - "lib/ast/merge/rspec/shared_examples/merge_result_base.rb:2962043558": [ - [18, 1, 2330, "Metrics/BlockLength: Block has too many lines. [67/25]", 3496673178], - [53, 3, 1271, "Metrics/BlockLength: Block has too many lines. [42/25]", 2278976858] - ], - "lib/ast/merge/rspec/shared_examples/merger_config.rb:2413785902": [ - [18, 1, 8240, "Metrics/BlockLength: Block has too many lines. [193/25]", 3665443345], - [57, 3, 1628, "Metrics/BlockLength: Block has too many lines. [32/25]", 7828299], - [98, 3, 1266, "Metrics/BlockLength: Block has too many lines. [28/25]", 317929439], - [159, 3, 1740, "Metrics/BlockLength: Block has too many lines. [42/25]", 1736487820], - [217, 3, 1373, "Metrics/BlockLength: Block has too many lines. [30/25]", 442933563] - ], - "lib/ast/merge/rspec/shared_examples/recipe_preset_contract.rb:1495545061": [ - [7, 1, 2558, "Metrics/BlockLength: Block has too many lines. [51/25]", 4091815632] - ], - "lib/ast/merge/rspec/shared_examples/removal_mode_compliance.rb:3645548199": [ - [24, 1, 1860, "Metrics/BlockLength: Block has too many lines. [33/25]", 1115825136] - ], - "lib/ast/merge/rspec/shared_examples/reproducible_merge.rb:2276592459": [ - [51, 1, 2030, "Metrics/BlockLength: Block has too many lines. [52/25]", 563553381] - ], - "lib/ast/merge/rspec/shared_examples/reproducible_partial_merge.rb:524436129": [ - [3, 1, 2321, "Metrics/BlockLength: Block has too many lines. [44/25]", 3206099540] - ], - "lib/ast/merge/rspec/shared_examples/retained_blank_gap_compliance.rb:2798862618": [ - [3, 1, 1409, "Metrics/BlockLength: Block has too many lines. [34/25]", 3708955218] - ], - "lib/ast/merge/rspec/shared_examples/runtime_debug_contract.rb:4244040583": [ - [8, 1, 2808, "Metrics/BlockLength: Block has too many lines. [48/25]", 3274492878] - ], - "lib/ast/merge/rspec/shared_examples/unresolved_helper_contract.rb:2916431464": [ - [9, 1, 5998, "Metrics/BlockLength: Block has too many lines. [126/25]", 4174562424], - [94, 3, 1515, "Metrics/BlockLength: Block has too many lines. [32/25]", 1928238376] - ], - "lib/ast/merge/rspec/shared_examples/unresolved_review_state_transport_contract.rb:3368966854": [ - [14, 1, 3386, "Metrics/BlockLength: Block has too many lines. [68/25]", 2910343214], - [65, 3, 317, "Metrics/MethodLength: Method has too many lines. [12/10]", 2653897690] - ], - "lib/ast/merge/rspec/shared_examples/unresolved_runtime_contract.rb:1424234700": [ - [10, 1, 2652, "Metrics/BlockLength: Block has too many lines. [42/25]", 960283638], - [31, 121, 10, "Layout/LineLength: Line is too long. [130/120]", 2892620242], - [46, 121, 3, "Layout/LineLength: Line is too long. [123/120]", 193437756] - ], - "lib/ast/merge/rspec/shared_examples/unresolved_runtime_debug_contract.rb:2897026147": [ - [25, 121, 18, "Layout/LineLength: Line is too long. [138/120]", 2418171787], - [26, 121, 5, "Layout/LineLength: Line is too long. [125/120]", 235635831] - ], - "lib/ast/merge/ruleset/config.rb:4242726919": [ - [7, 7, 3664, "Metrics/ClassLength: Class has too many lines. [101/100]", 1968929597], - [36, 9, 933, "Metrics/MethodLength: Method has too many lines. [15/10]", 3334511209], - [36, 23, 319, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [15/5]", 1652945408], - [65, 9, 515, "Metrics/AbcSize: Assignment Branch Condition size for `to_h` is too high. [<0, 18, 3> 18.25/17]", 2614325513], - [65, 9, 515, "Metrics/MethodLength: Method has too many lines. [14/10]", 2614325513] - ], - "lib/ast/merge/ruleset/feature_profile.rb:3980745364": [ - [12, 7, 6054, "Metrics/ClassLength: Class has too many lines. [155/100]", 2818730231], - [29, 9, 1351, "Metrics/AbcSize: Assignment Branch Condition size for `initialize` is too high. [<17, 18, 7> 25.73/17]", 2248702332], - [29, 9, 1351, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `initialize` is too high. [8/7]", 2248702332], - [29, 9, 1351, "Metrics/MethodLength: Method has too many lines. [17/10]", 2248702332], - [29, 23, 422, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [14/5]", 1415781648], - [138, 9, 1509, "Metrics/AbcSize: Assignment Branch Condition size for `to_h` is too high. [<0, 36, 6> 36.5/17]", 3793816437], - [138, 9, 1509, "Metrics/MethodLength: Method has too many lines. [31/10]", 3793816437] - ], - "lib/ast/merge/ruleset/parser.rb:698282871": [ - [7, 7, 9396, "Metrics/ClassLength: Class has too many lines. [199/100]", 1305123525], - [43, 9, 473, "Metrics/AbcSize: Assignment Branch Condition size for `parse` is too high. [<0, 17, 2> 17.12/17]", 1400394586], - [43, 9, 473, "Metrics/MethodLength: Method has too many lines. [12/10]", 1400394586], - [71, 9, 1053, "Metrics/MethodLength: Method has too many lines. [24/10]", 1569959910], - [101, 9, 1123, "Metrics/AbcSize: Assignment Branch Condition size for `parse_single_value_directive!` is too high. [<7, 13, 10> 17.83/17]", 706129883], - [101, 9, 1123, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `parse_single_value_directive!` is too high. [8/7]", 706129883], - [101, 9, 1123, "Metrics/MethodLength: Method has too many lines. [24/10]", 706129883], - [170, 9, 605, "Metrics/MethodLength: Method has too many lines. [11/10]", 336127382], - [186, 9, 687, "Metrics/MethodLength: Method has too many lines. [11/10]", 2962844982] - ], - "lib/ast/merge/ruleset/profile_vocabulary.rb:2359837647": [ - [7, 7, 3956, "Metrics/ModuleLength: Module has too many lines. [107/100]", 1680256705] - ], - "lib/ast/merge/ruleset/runtime_declaration.rb:1016848190": [ - [18, 9, 819, "Metrics/AbcSize: Assignment Branch Condition size for `initialize` is too high. [<11, 13, 5> 17.75/17]", 4043304883], - [18, 9, 819, "Metrics/MethodLength: Method has too many lines. [11/10]", 4043304883], - [18, 23, 240, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [8/5]", 3868000276], - [49, 9, 551, "Metrics/MethodLength: Method has too many lines. [13/10]", 448215861] - ], - "lib/ast/merge/ruleset/runtime_translator.rb:3255492631": [ - [9, 11, 816, "Metrics/MethodLength: Method has too many lines. [19/10]", 225301385], - [31, 11, 986, "Metrics/AbcSize: Assignment Branch Condition size for `feature_profile` is too high. [<1, 17, 0> 17.03/17]", 1395467476], - [31, 11, 986, "Metrics/MethodLength: Method has too many lines. [19/10]", 1395467476] - ], - "lib/ast/merge/ruleset/support_style_resolver.rb:508975884": [ - [9, 11, 864, "Metrics/MethodLength: Method has too many lines. [22/10]", 3902551296] - ], - "lib/ast/merge/runtime/child_result.rb:4083710804": [ - [16, 9, 698, "Metrics/AbcSize: Assignment Branch Condition size for `initialize` is too high. [<7, 16, 2> 17.58/17]", 2208366179], - [16, 23, 227, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [7/5]", 3688358290], - [38, 9, 584, "Metrics/MethodLength: Method has too many lines. [11/10]", 3113479157], - [55, 11, 106, "Style/HashTransformKeys: Prefer `transform_keys` over `each_with_object`.", 4262612225] - ], - "lib/ast/merge/runtime/delegate.rb:3607371286": [ - [17, 23, 285, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [10/5]", 2793452069] - ], - "lib/ast/merge/runtime/diagnostic.rb:805162185": [ - [10, 23, 72, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 1875462867] - ], - "lib/ast/merge/runtime/operation.rb:1030261783": [ - [20, 9, 767, "Metrics/MethodLength: Method has too many lines. [11/10]", 2728174753], - [20, 23, 278, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [10/5]", 694444911], - [100, 9, 617, "Metrics/AbcSize: Assignment Branch Condition size for `to_h` is too high. [<2, 24, 6> 24.82/17]", 1175382849], - [100, 9, 617, "Metrics/MethodLength: Method has too many lines. [11/10]", 1175382849] - ], - "lib/ast/merge/runtime/resolution_case.rb:250040454": [ - [8, 9, 707, "Metrics/AbcSize: Assignment Branch Condition size for `from_h` is too high. [<1, 19, 6> 19.95/17]", 2592154170], - [29, 23, 189, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [7/5]", 818714714], - [81, 11, 111, "Style/HashTransformKeys: Prefer `transform_keys` over `each_with_object`.", 2712537644] - ], - "lib/ast/merge/runtime/root_session_support.rb:1917388966": [ - [10, 9, 2153, "Metrics/AbcSize: Assignment Branch Condition size for `start_runtime_root_session!` is too high. [<5, 20, 3> 20.83/17]", 1888056651], - [10, 9, 2153, "Metrics/MethodLength: Method has too many lines. [41/10]", 1888056651], - [10, 40, 421, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [14/5]", 2297301282], - [60, 121, 10, "Layout/LineLength: Line is too long. [130/120]", 2312419928], - [68, 9, 771, "Metrics/MethodLength: Method has too many lines. [13/10]", 1787620786], - [68, 43, 191, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 3635875424] - ], - "lib/ast/merge/runtime/session.rb:628419040": [ - [66, 9, 1203, "Metrics/AbcSize: Assignment Branch Condition size for `summary` is too high. [<5, 43, 13> 45.2/17]", 550888870], - [66, 9, 1203, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `summary` is too high. [14/7]", 550888870], - [66, 9, 1203, "Metrics/MethodLength: Method has too many lines. [20/10]", 550888870], - [66, 9, 1203, "Metrics/PerceivedComplexity: Perceived complexity for `summary` is too high. [14/8]", 550888870] - ], - "lib/ast/merge/runtime/surface.rb:3684795905": [ - [17, 23, 230, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [8/5]", 469229117], - [44, 9, 418, "Metrics/MethodLength: Method has too many lines. [11/10]", 998969973] - ], - "lib/ast/merge/section_typing.rb:4261989256": [ - [112, 9, 710, "Metrics/MethodLength: Method has too many lines. [15/10]", 3600335459], - [176, 9, 67, "Lint/MissingSuper: Call `super` to initialize state of the parent class.", 4077537758], - [216, 9, 85, "Lint/MissingSuper: Call `super` to initialize state of the parent class.", 3648782014], - [245, 9, 1446, "Metrics/AbcSize: Assignment Branch Condition size for `merge_sections` is too high. [<13, 20, 12> 26.7/17]", 525095633], - [245, 9, 1446, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `merge_sections` is too high. [12/7]", 525095633], - [245, 9, 1446, "Metrics/MethodLength: Method has too many lines. [28/10]", 525095633], - [245, 9, 1446, "Metrics/PerceivedComplexity: Perceived complexity for `merge_sections` is too high. [13/8]", 525095633] - ], - "lib/ast/merge/smart_merger_base.rb:1823596106": [ - [109, 5, 15324, "Metrics/ClassLength: Class has too many lines. [172/100]", 3547407870], - [214, 7, 1974, "Metrics/AbcSize: Assignment Branch Condition size for `initialize` is too high. [<20, 14, 5> 24.92/17]", 2211610736], - [214, 7, 1974, "Metrics/MethodLength: Method has too many lines. [23/10]", 2211610736], - [214, 21, 443, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [15/5]", 1530523783], - [424, 7, 1312, "Metrics/AbcSize: Assignment Branch Condition size for `parse_and_analyze` is too high. [<7, 25, 11> 28.2/17]", 1640248187], - [424, 7, 1312, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `parse_and_analyze` is too high. [10/7]", 1640248187], - [424, 7, 1312, "Metrics/MethodLength: Method has too many lines. [15/10]", 1640248187], - [424, 7, 1312, "Metrics/PerceivedComplexity: Perceived complexity for `parse_and_analyze` is too high. [10/8]", 1640248187], - [517, 12, 52, "Style/NumericPredicate: Use `result_class.instance_method(:initialize).arity.zero?` instead of `result_class.instance_method(:initialize).arity == 0`.", 1312375552] - ], - "lib/ast/merge/source_region_report_support.rb:31261288": [ - [10, 5, 9026, "Metrics/ModuleLength: Module has too many lines. [204/100]", 3211817308], - [13, 7, 1175, "Metrics/MethodLength: Method has too many lines. [19/10]", 351011969], - [13, 49, 232, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [7/5]", 1034046028], - [38, 7, 1409, "Metrics/AbcSize: Assignment Branch Condition size for `source_blank_line_ownership_regions` is too high. [<9, 23, 11> 27.04/17]", 280304508], - [38, 7, 1409, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `source_blank_line_ownership_regions` is too high. [9/7]", 280304508], - [38, 7, 1409, "Metrics/MethodLength: Method has too many lines. [26/10]", 280304508], - [38, 7, 1409, "Metrics/PerceivedComplexity: Perceived complexity for `source_blank_line_ownership_regions` is too high. [11/8]", 280304508], - [69, 7, 1345, "Metrics/AbcSize: Assignment Branch Condition size for `source_interleaved_regions_for_report` is too high. [<10, 13, 6> 17.46/17]", 253205841], - [69, 7, 1345, "Metrics/MethodLength: Method has too many lines. [32/10]", 253205841], - [109, 7, 1638, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `source_interstitial_region_for_report` is too high. [11/7]", 2543419072], - [109, 7, 1638, "Metrics/MethodLength: Method has too many lines. [32/10]", 2543419072], - [109, 7, 1638, "Metrics/PerceivedComplexity: Perceived complexity for `source_interstitial_region_for_report` is too high. [10/8]", 2543419072], - [109, 48, 133, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 2244283058], - [168, 7, 455, "Metrics/MethodLength: Method has too many lines. [12/10]", 1734550115], - [184, 7, 1444, "Metrics/AbcSize: Assignment Branch Condition size for `source_comment_block_attachment` is too high. [<7, 27, 17> 32.66/17]", 2744031837], - [184, 7, 1444, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `source_comment_block_attachment` is too high. [14/7]", 2744031837], - [184, 7, 1444, "Metrics/MethodLength: Method has too many lines. [21/10]", 2744031837], - [184, 7, 1444, "Metrics/PerceivedComplexity: Perceived complexity for `source_comment_block_attachment` is too high. [15/8]", 2744031837], - [184, 42, 133, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 2758724348], - [192, 121, 1, "Layout/LineLength: Line is too long. [121/120]", 177625] - ], - "lib/ast/merge/structural_edit/boundary.rb:2838060197": [ - [20, 23, 93, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 3901214537], - [41, 38, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], - [51, 38, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], - [60, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2087440865] - ], - "lib/ast/merge/structural_edit/boundary_support.rb:3537000977": [ - [32, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5861061], - [33, 121, 5, "Layout/LineLength: Line is too long. [125/120]", 97596930] - ], - "lib/ast/merge/structural_edit/plan_set.rb:538463647": [ - [116, 121, 42, "Layout/LineLength: Line is too long. [162/120]", 2855200692] - ], - "lib/ast/merge/structural_edit/rehome_plan.rb:2152178780": [ - [23, 23, 123, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 3433617242], - [100, 9, 519, "Metrics/MethodLength: Method has too many lines. [11/10]", 318006380], - [136, 121, 48, "Layout/LineLength: Line is too long. [168/120]", 2367140872] - ], - "lib/ast/merge/structural_edit/remove_plan.rb:1189569486": [ - [11, 7, 9717, "Metrics/ClassLength: Class has too many lines. [160/100]", 3652701475], - [25, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5861091], - [27, 9, 1409, "Metrics/MethodLength: Method has too many lines. [22/10]", 3344870777], - [27, 23, 255, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [11/5]", 3970946607], - [28, 121, 40, "Layout/LineLength: Line is too long. [160/120]", 1637059282], - [36, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5859104], - [196, 121, 32, "Layout/LineLength: Line is too long. [152/120]", 1617827253], - [224, 9, 1032, "Metrics/MethodLength: Method has too many lines. [20/10]", 968444047] - ], - "lib/ast/merge/structural_edit/remove_plan_support.rb:877461974": [ - [9, 9, 11, "Style/ModuleFunction: Use `module_function` instead of `extend self`.", 1210897631], - [19, 9, 1429, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `build_remove_plan` is too high. [8/7]", 4091314919], - [19, 9, 1429, "Metrics/MethodLength: Method has too many lines. [32/10]", 4091314919] - ], - "lib/ast/merge/structural_edit/splice_plan.rb:2675806114": [ - [39, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1683893295], - [42, 23, 203, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [9/5]", 3653221702], - [113, 9, 517, "Metrics/MethodLength: Method has too many lines. [11/10]", 634912361] - ], - "lib/ast/merge/structured_emitter_provenance_support.rb:445323365": [ - [5, 5, 41, "Style/Documentation: Missing top-level documentation comment for `module Ast::Merge::StructuredEmitterProvenanceSupport`.", 3548518830] - ], - "lib/ast/merge/structured_review_apply_support.rb:3649736380": [ - [5, 5, 35, "Style/Documentation: Missing top-level documentation comment for `module Ast::Merge::StructuredReviewApplySupport`.", 1282380463], - [22, 7, 782, "Metrics/AbcSize: Assignment Branch Condition size for `current_output_span_for` is too high. [<6, 19, 11> 22.76/17]", 4137750179], - [22, 7, 782, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `current_output_span_for` is too high. [8/7]", 4137750179], - [22, 7, 782, "Metrics/MethodLength: Method has too many lines. [14/10]", 4137750179], - [42, 7, 595, "Metrics/MethodLength: Method has too many lines. [12/10]", 2080934521], - [60, 121, 10, "Layout/LineLength: Line is too long. [130/120]", 3151172498] - ], - "lib/ast/merge/text/conflict_resolver.rb:989169286": [ - [19, 7, 9182, "Metrics/ClassLength: Class has too many lines. [159/100]", 1070563745], - [28, 23, 211, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 2639535499], - [53, 9, 2507, "Metrics/AbcSize: Assignment Branch Condition size for `resolve_batch` is too high. [<15, 34, 5> 37.5/17]", 825130797], - [53, 9, 2507, "Metrics/MethodLength: Method has too many lines. [44/10]", 825130797], - [196, 9, 2458, "Metrics/AbcSize: Assignment Branch Condition size for `resolve_matched_pair` is too high. [<2, 30, 11> 32.02/17]", 4037214978], - [196, 9, 2458, "Metrics/MethodLength: Method has too many lines. [46/10]", 4037214978] - ], - "lib/ast/merge/text/file_analysis.rb:1530312707": [ - [106, 9, 1484, "Metrics/AbcSize: Assignment Branch Condition size for `parse_statements` is too high. [<11, 15, 6> 19.54/17]", 1858083071], - [106, 9, 1484, "Metrics/MethodLength: Method has too many lines. [34/10]", 1858083071], - [160, 9, 449, "Metrics/MethodLength: Method has too many lines. [11/10]", 1902035813] - ], - "lib/ast/merge/text/line_node.rb:3385927013": [ - [145, 9, 699, "Metrics/MethodLength: Method has too many lines. [17/10]", 2201872249] - ], - "lib/ast/merge/text/section_splitter.rb:129704488": [ - [141, 9, 1442, "Metrics/AbcSize: Assignment Branch Condition size for `merge_section_lists` is too high. [<13, 20, 6> 24.6/17]", 3551729170], - [141, 9, 1442, "Metrics/MethodLength: Method has too many lines. [23/10]", 3551729170], - [322, 9, 1767, "Metrics/AbcSize: Assignment Branch Condition size for `split` is too high. [<11, 29, 10> 32.59/17]", 2207922758], - [322, 9, 1767, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `split` is too high. [10/7]", 2207922758], - [322, 9, 1767, "Metrics/MethodLength: Method has too many lines. [46/10]", 2207922758], - [322, 9, 1767, "Metrics/PerceivedComplexity: Perceived complexity for `split` is too high. [13/8]", 2207922758], - [328, 11, 1019, "Metrics/BlockLength: Block has too many lines. [26/25]", 1561634792] - ], - "lib/ast/merge/text/smart_merger.rb:2405807903": [ - [67, 9, 831, "Metrics/MethodLength: Method has too many lines. [12/10]", 584426022], - [67, 23, 350, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [10/5]", 3074172637] - ], - "lib/ast/merge/trailing_groups/alignment_sort.rb:2593404330": [ - [40, 9, 513, "Metrics/MethodLength: Method has too many lines. [12/10]", 89360683] - ], - "lib/ast/merge/trailing_groups/core.rb:4231959665": [ - [61, 9, 812, "Metrics/MethodLength: Method has too many lines. [17/10]", 1777526069], - [101, 9, 998, "Metrics/AbcSize: Assignment Branch Condition size for `flush_ready_trailing_groups` is too high. [<8, 18, 15> 24.76/17]", 2397698441], - [101, 9, 998, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `flush_ready_trailing_groups` is too high. [13/7]", 2397698441], - [101, 9, 998, "Metrics/MethodLength: Method has too many lines. [17/10]", 2397698441], - [101, 9, 998, "Metrics/PerceivedComplexity: Perceived complexity for `flush_ready_trailing_groups` is too high. [13/8]", 2397698441] - ], - "lib/ast/merge/trailing_groups/dest_iterate.rb:3897205087": [ - [69, 9, 751, "Metrics/MethodLength: Method has too many lines. [12/10]", 3915657972], - [69, 47, 199, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 2545849044] - ], - "lib/ast/merge/unresolved_support.rb:2881272494": [ - [7, 5, 24, "Style/Documentation: Missing top-level documentation comment for `module Ast::Merge::UnresolvedSupport`.", 990281691], - [7, 5, 4392, "Metrics/ModuleLength: Module has too many lines. [116/100]", 3475162940], - [32, 20, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], - [67, 20, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], - [85, 7, 1038, "Metrics/MethodLength: Method has too many lines. [14/10]", 3139619197], - [85, 40, 338, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [14/5]", 71164914] - ], - "spec/ast/merge/ast_node_spec.rb:1362065144": [ - [3, 1, 8199, "Metrics/BlockLength: Block has too many lines. [254/25]", 1649868231], - [18, 3, 1030, "Metrics/BlockLength: Block has too many lines. [33/25]", 1409835577] - ], - "spec/ast/merge/block_directive_spec.rb:2305756581": [ - [3, 1, 5181, "Metrics/BlockLength: Block has too many lines. [138/25]", 1887900896], - [128, 3, 1391, "Metrics/BlockLength: Block has too many lines. [39/25]", 3626371694] - ], - "spec/ast/merge/comment/attachment_spec.rb:2571833836": [ - [3, 1, 5536, "Metrics/BlockLength: Block has too many lines. [150/25]", 1841571757], - [93, 3, 1639, "Metrics/BlockLength: Block has too many lines. [37/25]", 212730671] - ], - "spec/ast/merge/comment/augmenter_spec.rb:4266625483": [ - [3, 1, 9141, "Metrics/BlockLength: Block has too many lines. [212/25]", 530365996], - [16, 3, 6849, "Metrics/BlockLength: Block has too many lines. [154/25]", 503152628], - [200, 3, 1244, "Metrics/BlockLength: Block has too many lines. [33/25]", 3565041107] - ], - "spec/ast/merge/comment/block_spec.rb:4138473890": [ - [3, 1, 9021, "Metrics/BlockLength: Block has too many lines. [250/25]", 1617505173], - [8, 3, 1115, "Metrics/BlockLength: Block has too many lines. [27/25]", 2958989619], - [93, 3, 1127, "Metrics/BlockLength: Block has too many lines. [33/25]", 196340527], - [123, 45, 16, "Style/StringConcatenation: Prefer string interpolation to string concatenation.", 155572628], - [159, 3, 1432, "Metrics/BlockLength: Block has too many lines. [35/25]", 281400319] - ], - "spec/ast/merge/comment/c_style_tracker_base_spec.rb:3154319400": [ - [3, 1, 5816, "Metrics/BlockLength: Block has too many lines. [133/25]", 680831933], - [100, 3, 1450, "Metrics/BlockLength: Block has too many lines. [35/25]", 4153882185] - ], - "spec/ast/merge/comment/capability_spec.rb:2763521225": [ - [3, 1, 3522, "Metrics/BlockLength: Block has too many lines. [89/25]", 1487980773], - [4, 3, 1954, "Metrics/BlockLength: Block has too many lines. [41/25]", 160187362] - ], - "spec/ast/merge/comment/empty_spec.rb:1801324640": [ - [3, 1, 2584, "Metrics/BlockLength: Block has too many lines. [70/25]", 270179899], - [4, 3, 1047, "Metrics/BlockLength: Block has too many lines. [27/25]", 3056449816] - ], - "spec/ast/merge/comment/hash_tracker_base_spec.rb:3624528747": [ - [3, 1, 9653, "Metrics/BlockLength: Block has too many lines. [271/25]", 3748659406], - [8, 3, 1210, "Metrics/BlockLength: Block has too many lines. [37/25]", 2566766302], - [21, 7, 872, "Metrics/AbcSize: Assignment Branch Condition size for `extract_comments` is too high. [<7, 24, 5> 25.5/17]", 1213080161], - [21, 7, 872, "Metrics/MethodLength: Method has too many lines. [25/10]", 1213080161], - [275, 3, 1171, "Metrics/BlockLength: Block has too many lines. [29/25]", 1425466742] - ], - "spec/ast/merge/comment/line_spec.rb:1487829548": [ - [3, 1, 5291, "Metrics/BlockLength: Block has too many lines. [128/25]", 587604747], - [6, 3, 1573, "Metrics/BlockLength: Block has too many lines. [37/25]", 4105920006] - ], - "spec/ast/merge/comment/parser_spec.rb:2443973508": [ - [3, 1, 9855, "Metrics/BlockLength: Block has too many lines. [237/25]", 404174977], - [4, 3, 1013, "Metrics/BlockLength: Block has too many lines. [26/25]", 182655397], - [38, 3, 1282, "Metrics/BlockLength: Block has too many lines. [28/25]", 2303702609] - ], - "spec/ast/merge/comment/quoted_hash_line_parser_spec.rb:3795390831": [ - [3, 1, 1810, "Metrics/BlockLength: Block has too many lines. [44/25]", 2575838586], - [6, 3, 1700, "Metrics/BlockLength: Block has too many lines. [41/25]", 1553834548] - ], - "spec/ast/merge/comment/region_merge_policy_spec.rb:4175996936": [ - [3, 1, 3618, "Metrics/BlockLength: Block has too many lines. [75/25]", 4006378358], - [11, 3, 2752, "Metrics/BlockLength: Block has too many lines. [52/25]", 494211987] - ], - "spec/ast/merge/comment/region_spec.rb:2674736508": [ - [3, 1, 4033, "Metrics/BlockLength: Block has too many lines. [91/25]", 1828104331] - ], - "spec/ast/merge/comment/style_spec.rb:1875195890": [ - [3, 1, 4040, "Metrics/BlockLength: Block has too many lines. [101/25]", 2759361650] - ], - "spec/ast/merge/comment/support_style_spec.rb:1350169032": [ - [3, 1, 1577, "Metrics/BlockLength: Block has too many lines. [39/25]", 3414039011] - ], - "spec/ast/merge/comment/tracked_hash_adapter_spec.rb:1256807736": [ - [3, 1, 4482, "Metrics/BlockLength: Block has too many lines. [97/25]", 264417763], - [4, 3, 3101, "Metrics/BlockLength: Block has too many lines. [63/25]", 1050939978], - [81, 3, 1313, "Metrics/BlockLength: Block has too many lines. [30/25]", 515655104] - ], - "spec/ast/merge/comment_layout_emission_support_spec.rb:19704158": [ - [3, 1, 7555, "Metrics/BlockLength: Block has too many lines. [186/25]", 980479163], - [4, 3, 73, "Lint/ConstantDefinitionInBlock: Do not define constants this way within a block.", 3470206647], - [6, 3, 175, "Lint/ConstantDefinitionInBlock: Do not define constants this way within a block.", 622428252], - [16, 3, 93, "Lint/ConstantDefinitionInBlock: Do not define constants this way within a block.", 546547334], - [18, 3, 734, "Lint/ConstantDefinitionInBlock: Do not define constants this way within a block.", 3226190975], - [21, 19, 120, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 3763716348], - [39, 27, 6, "Lint/UnusedMethodArgument: Unused method argument - `owners`. You can also write as `comment_augmenter(*)` if you want the method to accept any arguments but don't care about them.", 1719502071], - [44, 3, 574, "Lint/ConstantDefinitionInBlock: Do not define constants this way within a block.", 1736750341], - [61, 3, 152, "Lint/ConstantDefinitionInBlock: Do not define constants this way within a block.", 1212551629], - [101, 3, 1173, "Metrics/BlockLength: Block has too many lines. [27/25]", 2346194513], - [132, 3, 1624, "Metrics/BlockLength: Block has too many lines. [36/25]", 2359972174] - ], - "spec/ast/merge/comment_spec.rb:81945459": [ - [3, 1, 15888, "Metrics/BlockLength: Block has too many lines. [384/25]", 2229554982], - [4, 3, 3957, "Metrics/BlockLength: Block has too many lines. [84/25]", 660667217], - [5, 5, 1187, "Metrics/BlockLength: Block has too many lines. [26/25]", 241562105], - [105, 3, 1371, "Metrics/BlockLength: Block has too many lines. [30/25]", 1901983597], - [159, 3, 1296, "Metrics/BlockLength: Block has too many lines. [30/25]", 1749880380], - [239, 3, 1151, "Metrics/BlockLength: Block has too many lines. [28/25]", 183967322], - [272, 3, 2004, "Metrics/BlockLength: Block has too many lines. [45/25]", 2594323837], - [349, 3, 3220, "Metrics/BlockLength: Block has too many lines. [83/25]", 790417809], - [350, 5, 2347, "Metrics/BlockLength: Block has too many lines. [60/25]", 4016801881] - ], - "spec/ast/merge/composite_match_refiner_spec.rb:2888297870": [ - [3, 1, 6152, "Metrics/BlockLength: Block has too many lines. [143/25]", 3308692548], - [55, 3, 4118, "Metrics/BlockLength: Block has too many lines. [87/25]", 1405655464] - ], - "spec/ast/merge/conflict_resolver_base_spec.rb:3331938447": [ - [5, 1, 20643, "Metrics/BlockLength: Block has too many lines. [516/25]", 3129196558], - [14, 59, 14, "Lint/UnusedMethodArgument: Unused method argument - `template_index`.", 1809801172], - [14, 76, 10, "Lint/UnusedMethodArgument: Unused method argument - `dest_index`.", 2703999490], - [47, 61, 14, "Lint/UnusedMethodArgument: Unused method argument - `template_index`. You can also write as `resolve_node_pair(*)` if you want the method to accept any arguments but don't care about them.", 1809801172], - [47, 78, 10, "Lint/UnusedMethodArgument: Unused method argument - `dest_index`. You can also write as `resolve_node_pair(*)` if you want the method to accept any arguments but don't care about them.", 2703999490], - [105, 3, 17203, "Metrics/BlockLength: Block has too many lines. [425/25]", 1114912980], - [154, 5, 1797, "Metrics/BlockLength: Block has too many lines. [37/25]", 515146940], - [203, 5, 1373, "Metrics/BlockLength: Block has too many lines. [32/25]", 603210832], - [292, 5, 2874, "Metrics/BlockLength: Block has too many lines. [77/25]", 3918129775], - [341, 7, 1292, "Metrics/BlockLength: Block has too many lines. [34/25]", 1769555944], - [402, 5, 1857, "Metrics/BlockLength: Block has too many lines. [44/25]", 1516406612], - [456, 5, 1209, "Metrics/BlockLength: Block has too many lines. [31/25]", 430489898], - [514, 5, 2021, "Metrics/BlockLength: Block has too many lines. [37/25]", 144128170], - [515, 7, 1953, "Metrics/BlockLength: Block has too many lines. [35/25]", 1574966248], - [567, 5, 1500, "Metrics/BlockLength: Block has too many lines. [40/25]", 2509466150] - ], - "spec/ast/merge/content_match_refiner_spec.rb:4058001158": [ - [3, 1, 14348, "Metrics/BlockLength: Block has too many lines. [318/25]", 1171164704], - [25, 3, 1238, "Metrics/BlockLength: Block has too many lines. [29/25]", 2139810386], - [63, 3, 4077, "Metrics/BlockLength: Block has too many lines. [95/25]", 3471153375], - [325, 3, 2213, "Metrics/BlockLength: Block has too many lines. [37/25]", 3370370915] - ], - "spec/ast/merge/debug_logger_spec.rb:429510168": [ - [3, 1, 17306, "Metrics/BlockLength: Block has too many lines. [358/25]", 2287792973], - [251, 3, 1598, "Metrics/BlockLength: Block has too many lines. [27/25]", 3227542816], - [358, 3, 5118, "Metrics/BlockLength: Block has too many lines. [77/25]", 1759761803] - ], - "spec/ast/merge/detector/base_spec.rb:4157102211": [ - [3, 1, 3172, "Metrics/BlockLength: Block has too many lines. [100/25]", 3745104028], - [11, 7, 498, "Metrics/MethodLength: Method has too many lines. [13/10]", 3178368155], - [49, 3, 900, "Metrics/BlockLength: Block has too many lines. [28/25]", 2333048204] - ], - "spec/ast/merge/detector/fenced_code_block_spec.rb:495797689": [ - [3, 1, 11589, "Metrics/BlockLength: Block has too many lines. [363/25]", 3764545134], - [38, 3, 4467, "Metrics/BlockLength: Block has too many lines. [150/25]", 1597401000], - [41, 5, 1077, "Metrics/BlockLength: Block has too many lines. [31/25]", 2269642514], - [115, 5, 848, "Metrics/BlockLength: Block has too many lines. [27/25]", 1704866975], - [220, 3, 4815, "Metrics/BlockLength: Block has too many lines. [146/25]", 3797214474] - ], - "spec/ast/merge/detector/mergeable_spec.rb:1307688846": [ - [3, 1, 23175, "Metrics/BlockLength: Block has too many lines. [654/25]", 2932391114], - [77, 3, 2079, "Metrics/BlockLength: Block has too many lines. [53/25]", 1093085347], - [177, 3, 2217, "Metrics/BlockLength: Block has too many lines. [69/25]", 926985871], - [188, 5, 948, "Metrics/BlockLength: Block has too many lines. [26/25]", 4186135901], - [225, 5, 898, "Metrics/BlockLength: Block has too many lines. [31/25]", 513446836], - [266, 3, 1168, "Metrics/BlockLength: Block has too many lines. [29/25]", 774699411], - [304, 3, 1188, "Metrics/BlockLength: Block has too many lines. [27/25]", 4282853126], - [339, 3, 918, "Metrics/BlockLength: Block has too many lines. [28/25]", 1759590109], - [372, 3, 870, "Metrics/BlockLength: Block has too many lines. [28/25]", 131542026], - [410, 3, 3768, "Metrics/BlockLength: Block has too many lines. [111/25]", 181819560], - [483, 5, 1536, "Metrics/BlockLength: Block has too many lines. [47/25]", 385085357], - [540, 3, 1891, "Metrics/BlockLength: Block has too many lines. [52/25]", 602757329], - [664, 3, 1927, "Metrics/BlockLength: Block has too many lines. [56/25]", 48062261], - [691, 5, 1146, "Metrics/BlockLength: Block has too many lines. [31/25]", 1961728737], - [721, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 3104497040], - [729, 3, 1625, "Metrics/BlockLength: Block has too many lines. [46/25]", 1570579215] - ], - "spec/ast/merge/detector/region_spec.rb:594725562": [ - [3, 1, 8128, "Metrics/BlockLength: Block has too many lines. [290/25]", 1984713692], - [4, 3, 806, "Metrics/BlockLength: Block has too many lines. [28/25]", 1515087192], - [58, 3, 1236, "Metrics/BlockLength: Block has too many lines. [45/25]", 2464968707], - [128, 3, 1063, "Metrics/BlockLength: Block has too many lines. [33/25]", 239148700], - [250, 3, 2010, "Metrics/BlockLength: Block has too many lines. [76/25]", 2595033382] - ], - "spec/ast/merge/detector/toml_frontmatter_spec.rb:1135160129": [ - [3, 1, 6717, "Metrics/BlockLength: Block has too many lines. [218/25]", 2273975625], - [12, 3, 5534, "Metrics/BlockLength: Block has too many lines. [187/25]", 538920673], - [13, 5, 1456, "Metrics/BlockLength: Block has too many lines. [38/25]", 3113759139] - ], - "spec/ast/merge/detector/yaml_frontmatter_spec.rb:2467934365": [ - [3, 1, 6702, "Metrics/BlockLength: Block has too many lines. [213/25]", 3083039982], - [12, 3, 5056, "Metrics/BlockLength: Block has too many lines. [170/25]", 1889948780], - [13, 5, 1438, "Metrics/BlockLength: Block has too many lines. [38/25]", 1736912391], - [219, 3, 1396, "Metrics/BlockLength: Block has too many lines. [33/25]", 2446467851] - ], - "spec/ast/merge/diff_mapper_base_spec.rb:1771546518": [ - [5, 1, 8521, "Metrics/BlockLength: Block has too many lines. [248/25]", 1057580573], - [22, 9, 44, "Style/InverseMethods: Use `reject` instead of inverting `select`.", 3063843489], - [46, 3, 3878, "Metrics/BlockLength: Block has too many lines. [116/25]", 2874032080], - [47, 5, 1938, "Metrics/BlockLength: Block has too many lines. [48/25]", 1904497583], - [191, 3, 1488, "Metrics/BlockLength: Block has too many lines. [43/25]", 1632956840] - ], - "spec/ast/merge/emitter_base_spec.rb:1099876333": [ - [3, 1, 11967, "Metrics/BlockLength: Block has too many lines. [301/25]", 2970792295], - [56, 3, 4393, "Metrics/BlockLength: Block has too many lines. [102/25]", 3992142376], - [160, 58, 12, "Lint/UnusedMethodArgument: Unused method argument - `current_line`. You can also write as `inline_comment_region_target_column(*)` if you want the method to accept any arguments but don't care about them.", 2091263933], - [164, 44, 6, "Lint/UnusedMethodArgument: Unused method argument - `region`.", 2124512157], - [185, 3, 1815, "Metrics/BlockLength: Block has too many lines. [39/25]", 719023387], - [232, 3, 2233, "Metrics/BlockLength: Block has too many lines. [62/25]", 3754339775], - [338, 3, 1059, "Metrics/BlockLength: Block has too many lines. [26/25]", 375007123] - ], - "spec/ast/merge/fictive_language_harness_spec.rb:1179155480": [ - [6, 1, 6693, "Metrics/BlockLength: Block has too many lines. [143/25]", 245088433], - [7, 3, 1968, "Metrics/BlockLength: Block has too many lines. [36/25]", 4161580169], - [58, 3, 1230, "Metrics/BlockLength: Block has too many lines. [34/25]", 990452676], - [103, 3, 2668, "Metrics/BlockLength: Block has too many lines. [51/25]", 1755027956] - ], - "spec/ast/merge/file_aligner_base_spec.rb:91275387": [ - [5, 1, 9948, "Metrics/BlockLength: Block has too many lines. [217/25]", 3354563411], - [6, 3, 1490, "Metrics/BlockLength: Block has too many lines. [45/25]", 563330990], - [95, 3, 7495, "Metrics/BlockLength: Block has too many lines. [129/25]", 598770279], - [103, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 3749416415], - [163, 5, 1489, "Metrics/BlockLength: Block has too many lines. [26/25]", 2910876949] - ], - "spec/ast/merge/file_analyzable_spec.rb:3816965829": [ - [3, 1, 12458, "Metrics/BlockLength: Block has too many lines. [272/25]", 216138965], - [25, 3, 9603, "Metrics/BlockLength: Block has too many lines. [202/25]", 2508188172], - [297, 3, 1214, "Metrics/BlockLength: Block has too many lines. [30/25]", 777182624] - ], - "spec/ast/merge/freezable_spec.rb:559280324": [ - [5, 1, 5033, "Metrics/BlockLength: Block has too many lines. [123/25]", 3070666859], - [6, 3, 1199, "Metrics/BlockLength: Block has too many lines. [34/25]", 4058875636], - [66, 3, 1530, "Metrics/BlockLength: Block has too many lines. [31/25]", 1670675428] - ], - "spec/ast/merge/freeze_node_base_spec.rb:2962962931": [ - [3, 1, 21887, "Metrics/BlockLength: Block has too many lines. [560/25]", 567315021], - [48, 3, 1369, "Metrics/BlockLength: Block has too many lines. [38/25]", 3363160391], - [131, 3, 2739, "Metrics/BlockLength: Block has too many lines. [56/25]", 2008289622], - [205, 3, 1586, "Metrics/BlockLength: Block has too many lines. [35/25]", 4179606047], - [251, 3, 977, "Metrics/BlockLength: Block has too many lines. [26/25]", 1240612851], - [287, 3, 1130, "Metrics/BlockLength: Block has too many lines. [28/25]", 2511265379], - [322, 3, 5029, "Metrics/BlockLength: Block has too many lines. [126/25]", 739537566], - [598, 3, 3055, "Metrics/BlockLength: Block has too many lines. [81/25]", 145217296] - ], - "spec/ast/merge/healer_spec.rb:877829793": [ - [3, 1, 4896, "Metrics/BlockLength: Block has too many lines. [148/25]", 1074378773], - [19, 3, 1333, "Metrics/BlockLength: Block has too many lines. [38/25]", 2940878263], - [24, 121, 3, "Layout/LineLength: Line is too long. [123/120]", 193432399], - [61, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2085379023], - [67, 3, 2985, "Metrics/BlockLength: Block has too many lines. [93/25]", 4032786576] - ], - "spec/ast/merge/jaccard_similarity_spec.rb:3984307047": [ - [3, 1, 2659, "Metrics/BlockLength: Block has too many lines. [71/25]", 1122516612], - [6, 3, 1484, "Metrics/BlockLength: Block has too many lines. [38/25]", 3367914637], - [55, 3, 1090, "Metrics/BlockLength: Block has too many lines. [28/25]", 2629339264] - ], - "spec/ast/merge/key_path_partial_template_merger_base_spec.rb:2189485360": [ - [5, 1, 5955, "Metrics/BlockLength: Block has too many lines. [138/25]", 91542958], - [35, 3, 1217, "Metrics/BlockLength: Block has too many lines. [33/25]", 2663081123], - [97, 3, 3019, "Metrics/BlockLength: Block has too many lines. [54/25]", 1411952192] - ], - "spec/ast/merge/layout/attachment_spec.rb:3814294426": [ - [3, 1, 1799, "Metrics/BlockLength: Block has too many lines. [34/25]", 1283153367] - ], - "spec/ast/merge/layout/augmenter_spec.rb:3633045915": [ - [3, 1, 4412, "Metrics/BlockLength: Block has too many lines. [92/25]", 2690553031], - [20, 3, 2725, "Metrics/BlockLength: Block has too many lines. [54/25]", 3645203819] - ], - "spec/ast/merge/layout/gap_spec.rb:4232058283": [ - [3, 1, 2758, "Metrics/BlockLength: Block has too many lines. [72/25]", 2052697931], - [9, 3, 1290, "Metrics/BlockLength: Block has too many lines. [28/25]", 3175967312] - ], - "spec/ast/merge/line_range_support_spec.rb:872979873": [ - [3, 1, 1564, "Metrics/BlockLength: Block has too many lines. [35/25]", 1133178812], - [4, 3, 65, "Lint/ConstantDefinitionInBlock: Do not define constants this way within a block.", 2231059390], - [5, 3, 44, "Lint/ConstantDefinitionInBlock: Do not define constants this way within a block.", 1230426940], - [7, 3, 135, "Lint/ConstantDefinitionInBlock: Do not define constants this way within a block.", 1825860348] - ], - "spec/ast/merge/match_refiner_base_spec.rb:3961767223": [ - [3, 1, 10604, "Metrics/BlockLength: Block has too many lines. [301/25]", 4290485382], - [4, 3, 1146, "Metrics/BlockLength: Block has too many lines. [37/25]", 108051658], - [50, 3, 1005, "Metrics/BlockLength: Block has too many lines. [28/25]", 3807648246], - [125, 3, 1026, "Metrics/BlockLength: Block has too many lines. [27/25]", 2896086726], - [162, 3, 4464, "Metrics/BlockLength: Block has too many lines. [114/25]", 2878217135], - [218, 5, 1112, "Metrics/BlockLength: Block has too many lines. [30/25]", 1605825436], - [224, 11, 104, "Style/HashLikeCase: Consider replacing `case-when` with a hash lookup.", 4220899731], - [247, 11, 132, "Style/HashLikeCase: Consider replacing `case-when` with a hash lookup.", 3401820780], - [258, 5, 1642, "Metrics/BlockLength: Block has too many lines. [35/25]", 1288881729], - [337, 3, 1108, "Metrics/BlockLength: Block has too many lines. [33/25]", 2139263963] - ], - "spec/ast/merge/match_score_base_spec.rb:2340739872": [ - [3, 1, 15213, "Metrics/BlockLength: Block has too many lines. [372/25]", 1512747000], - [4, 3, 1553, "Metrics/BlockLength: Block has too many lines. [41/25]", 2789289940], - [43, 20, 2, "Naming/MethodParameterName: Method parameter must be at least 3 characters long.", 5862747], - [43, 24, 2, "Naming/MethodParameterName: Method parameter must be at least 3 characters long.", 5862744], - [56, 3, 1041, "Metrics/BlockLength: Block has too many lines. [29/25]", 3729310115], - [152, 3, 3259, "Metrics/BlockLength: Block has too many lines. [82/25]", 1438003770], - [258, 3, 2199, "Metrics/BlockLength: Block has too many lines. [43/25]", 3386602801], - [320, 3, 1684, "Metrics/BlockLength: Block has too many lines. [35/25]", 3807719546], - [365, 14, 16, "Lint/FloatComparison: Avoid equality comparisons of floats as they are unreliable.", 3787748956], - [369, 3, 1696, "Metrics/BlockLength: Block has too many lines. [36/25]", 3172214426], - [417, 3, 1792, "Metrics/BlockLength: Block has too many lines. [45/25]", 3557977606], - [438, 5, 1121, "Metrics/BlockLength: Block has too many lines. [26/25]", 4236927298] - ], - "spec/ast/merge/merge_result_base_spec.rb:3826389024": [ - [3, 1, 20371, "Metrics/BlockLength: Block has too many lines. [552/25]", 3965341976], - [38, 3, 2735, "Metrics/BlockLength: Block has too many lines. [80/25]", 1103243845], - [312, 3, 1611, "Metrics/BlockLength: Block has too many lines. [39/25]", 1928511417], - [313, 5, 1203, "Metrics/BlockLength: Block has too many lines. [26/25]", 857223227], - [359, 3, 2070, "Metrics/BlockLength: Block has too many lines. [48/25]", 2552826824], - [418, 3, 5769, "Metrics/BlockLength: Block has too many lines. [140/25]", 1457747735], - [544, 5, 1306, "Metrics/BlockLength: Block has too many lines. [29/25]", 2980786372], - [607, 3, 1308, "Metrics/BlockLength: Block has too many lines. [32/25]", 1342704008] - ], - "spec/ast/merge/merger_config_spec.rb:663896662": [ - [5, 1, 7314, "Metrics/BlockLength: Block has too many lines. [189/25]", 1279589310], - [11, 3, 1180, "Metrics/BlockLength: Block has too many lines. [26/25]", 1014009176], - [45, 3, 1151, "Metrics/BlockLength: Block has too many lines. [26/25]", 785276703], - [79, 3, 3574, "Metrics/BlockLength: Block has too many lines. [97/25]", 969726064], - [126, 5, 1158, "Metrics/BlockLength: Block has too many lines. [29/25]", 389808524] - ], - "spec/ast/merge/navigable/injection_point_finder_spec.rb:3693754765": [ - [3, 1, 5152, "Metrics/BlockLength: Block has too many lines. [123/25]", 3265221808], - [15, 3, 4026, "Metrics/BlockLength: Block has too many lines. [96/25]", 1482695302], - [63, 5, 2337, "Metrics/BlockLength: Block has too many lines. [54/25]", 2678200297] - ], - "spec/ast/merge/navigable/injection_point_spec.rb:3295717447": [ - [3, 1, 6032, "Metrics/BlockLength: Block has too many lines. [161/25]", 805025024], - [77, 3, 1083, "Metrics/BlockLength: Block has too many lines. [28/25]", 3091139104] - ], - "spec/ast/merge/navigable/statement_spec.rb:2965726260": [ - [3, 1, 18289, "Metrics/BlockLength: Block has too many lines. [510/25]", 4119203121], - [102, 3, 3570, "Metrics/BlockLength: Block has too many lines. [97/25]", 3287535168], - [156, 5, 2030, "Metrics/BlockLength: Block has too many lines. [51/25]", 3299963733], - [251, 3, 1338, "Metrics/BlockLength: Block has too many lines. [37/25]", 844559624], - [411, 3, 1550, "Metrics/BlockLength: Block has too many lines. [42/25]", 3851790429], - [465, 3, 1372, "Metrics/BlockLength: Block has too many lines. [41/25]", 3782869383] - ], - "spec/ast/merge/node_typing/frozen_wrapper_spec.rb:3823345520": [ - [3, 1, 4532, "Metrics/BlockLength: Block has too many lines. [117/25]", 3944573785] - ], - "spec/ast/merge/node_typing/normalizer_spec.rb:1976431423": [ - [4, 1, 8679, "Metrics/BlockLength: Block has too many lines. [219/25]", 938207310], - [65, 3, 1137, "Metrics/BlockLength: Block has too many lines. [26/25]", 3180807289], - [101, 3, 1404, "Metrics/BlockLength: Block has too many lines. [28/25]", 1094334251], - [216, 3, 875, "Metrics/BlockLength: Block has too many lines. [26/25]", 2755551247] - ], - "spec/ast/merge/node_typing/wrapper_spec.rb:3211588263": [ - [3, 1, 3469, "Metrics/BlockLength: Block has too many lines. [92/25]", 638644563] - ], - "spec/ast/merge/node_typing_spec.rb:4080661389": [ - [3, 1, 12728, "Metrics/BlockLength: Block has too many lines. [333/25]", 3927571381], - [132, 3, 3704, "Metrics/BlockLength: Block has too many lines. [98/25]", 2130243754], - [208, 5, 1267, "Metrics/BlockLength: Block has too many lines. [31/25]", 2816753725], - [265, 3, 1298, "Metrics/BlockLength: Block has too many lines. [33/25]", 3320876250], - [311, 3, 3803, "Metrics/BlockLength: Block has too many lines. [100/25]", 2743470911] - ], - "spec/ast/merge/node_wrapper_base_spec.rb:2252820285": [ - [3, 1, 11681, "Metrics/BlockLength: Block has too many lines. [307/25]", 1698593962], - [32, 3, 2341, "Metrics/BlockLength: Block has too many lines. [68/25]", 1594381363], - [179, 3, 2568, "Metrics/BlockLength: Block has too many lines. [51/25]", 1269052990], - [294, 3, 1252, "Metrics/BlockLength: Block has too many lines. [26/25]", 4220822180], - [329, 3, 1963, "Metrics/BlockLength: Block has too many lines. [39/25]", 1623030031] - ], - "spec/ast/merge/owner_selection_spec.rb:1894901093": [ - [3, 1, 1356, "Metrics/BlockLength: Block has too many lines. [35/25]", 1030003775] - ], - "spec/ast/merge/partial_template_merger_base_spec.rb:3412991027": [ - [3, 1, 7073, "Metrics/BlockLength: Block has too many lines. [145/25]", 3415302240], - [16, 9, 43, "Lint/HashCompareByIdentity: Use `Hash#compare_by_identity` instead of using `object_id` for keys.", 3196404056], - [22, 9, 42, "Lint/HashCompareByIdentity: Use `Hash#compare_by_identity` instead of using `object_id` for keys.", 4116824817], - [48, 20, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], - [96, 3, 4220, "Metrics/BlockLength: Block has too many lines. [68/25]", 3464417459], - [97, 5, 2029, "Metrics/BlockLength: Block has too many lines. [27/25]", 3297854360], - [138, 5, 2122, "Metrics/BlockLength: Block has too many lines. [37/25]", 1592076374] - ], - "spec/ast/merge/recipe/config_spec.rb:3917288551": [ - [3, 1, 21041, "Metrics/BlockLength: Block has too many lines. [611/25]", 2431235923], - [72, 3, 1653, "Metrics/BlockLength: Block has too many lines. [36/25]", 2702780755], - [174, 3, 1465, "Metrics/BlockLength: Block has too many lines. [44/25]", 2326126933], - [226, 3, 3419, "Metrics/BlockLength: Block has too many lines. [89/25]", 798604841], - [327, 3, 1398, "Metrics/BlockLength: Block has too many lines. [34/25]", 3113267700], - [474, 3, 1184, "Metrics/BlockLength: Block has too many lines. [39/25]", 2599756030], - [519, 3, 4630, "Metrics/BlockLength: Block has too many lines. [147/25]", 1245526575] - ], - "spec/ast/merge/recipe/preset_spec.rb:818394232": [ - [3, 1, 6696, "Metrics/BlockLength: Block has too many lines. [173/25]", 3205615892] - ], - "spec/ast/merge/recipe/runner_spec.rb:3689194117": [ - [3, 1, 46798, "Metrics/BlockLength: Block has too many lines. [1104/25]", 3220015076], - [48, 3, 1128, "Metrics/BlockLength: Block has too many lines. [26/25]", 910457645], - [108, 3, 3036, "Metrics/BlockLength: Block has too many lines. [92/25]", 2112378918], - [132, 5, 881, "Metrics/BlockLength: Block has too many lines. [27/25]", 3842010356], - [177, 5, 918, "Metrics/BlockLength: Block has too many lines. [27/25]", 2152367239], - [295, 3, 1383, "Metrics/BlockLength: Block has too many lines. [41/25]", 2141027559], - [362, 3, 1653, "Metrics/BlockLength: Block has too many lines. [33/25]", 1536472295], - [449, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 3960802027], - [497, 3, 7959, "Metrics/BlockLength: Block has too many lines. [200/25]", 3739116912], - [556, 5, 1225, "Metrics/BlockLength: Block has too many lines. [31/25]", 195497726], - [740, 3, 6977, "Metrics/BlockLength: Block has too many lines. [145/25]", 2805535296], - [748, 5, 2241, "Metrics/BlockLength: Block has too many lines. [49/25]", 2552233173], - [805, 5, 3007, "Metrics/BlockLength: Block has too many lines. [59/25]", 708771722], - [877, 5, 1444, "Metrics/BlockLength: Block has too many lines. [26/25]", 3274225022], - [911, 3, 3258, "Metrics/BlockLength: Block has too many lines. [85/25]", 2346849758], - [1012, 3, 2710, "Metrics/BlockLength: Block has too many lines. [71/25]", 3801821877], - [1029, 5, 1547, "Metrics/BlockLength: Block has too many lines. [42/25]", 2962020615], - [1109, 3, 2240, "Metrics/BlockLength: Block has too many lines. [35/25]", 1139957345], - [1115, 121, 26, "Layout/LineLength: Line is too long. [146/120]", 667314941], - [1117, 121, 26, "Layout/LineLength: Line is too long. [146/120]", 667314941], - [1119, 121, 13, "Layout/LineLength: Line is too long. [133/120]", 1801369636], - [1121, 121, 11, "Layout/LineLength: Line is too long. [131/120]", 2652710920], - [1123, 121, 28, "Layout/LineLength: Line is too long. [148/120]", 1375785821], - [1125, 121, 26, "Layout/LineLength: Line is too long. [146/120]", 632755459], - [1160, 121, 26, "Layout/LineLength: Line is too long. [146/120]", 667314941], - [1162, 121, 26, "Layout/LineLength: Line is too long. [146/120]", 667314941], - [1164, 121, 28, "Layout/LineLength: Line is too long. [148/120]", 1375785821], - [1176, 3, 1472, "Metrics/BlockLength: Block has too many lines. [31/25]", 844153987], - [1181, 121, 25, "Layout/LineLength: Line is too long. [145/120]", 1239303812], - [1183, 121, 28, "Layout/LineLength: Line is too long. [148/120]", 1251336963], - [1216, 3, 2277, "Metrics/BlockLength: Block has too many lines. [43/25]", 4287127386], - [1221, 121, 26, "Layout/LineLength: Line is too long. [146/120]", 667314941], - [1223, 121, 11, "Layout/LineLength: Line is too long. [131/120]", 2652710920], - [1225, 121, 28, "Layout/LineLength: Line is too long. [148/120]", 1375785821], - [1227, 121, 26, "Layout/LineLength: Line is too long. [146/120]", 632755459], - [1274, 121, 44, "Layout/LineLength: Line is too long. [164/120]", 3420615328] - ], - "spec/ast/merge/recipe/script_loader_spec.rb:2136892097": [ - [3, 1, 8554, "Metrics/BlockLength: Block has too many lines. [237/25]", 2314425369], - [45, 3, 2842, "Metrics/BlockLength: Block has too many lines. [75/25]", 168902852], - [155, 3, 1400, "Metrics/BlockLength: Block has too many lines. [39/25]", 1611123964] - ], - "spec/ast/merge/rspec/shared_examples/feature_profile_spec.rb:2654837708": [ - [5, 1, 1140, "Metrics/BlockLength: Block has too many lines. [31/25]", 678325840] - ], - "spec/ast/merge/rspec/shared_examples/file_analyzable_spec.rb:1833922303": [ - [58, 3, 970, "Metrics/AbcSize: Assignment Branch Condition size for `detect_freeze_blocks` is too high. [<16, 9, 5> 19.03/17]", 1533823667], - [58, 3, 970, "Metrics/MethodLength: Method has too many lines. [31/10]", 1533823667], - [104, 1, 1216, "Metrics/BlockLength: Block has too many lines. [39/25]", 1009012120], - [105, 3, 1159, "Metrics/BlockLength: Block has too many lines. [38/25]", 1361521205] - ], - "spec/ast/merge/rspec/shared_examples/layout_attachment_spec.rb:714796658": [ - [8, 1, 957, "Metrics/BlockLength: Block has too many lines. [28/25]", 3738990548] - ], - "spec/ast/merge/rspec/shared_examples/recipe_preset_contract_spec.rb:669158728": [ - [6, 1, 1577, "Metrics/BlockLength: Block has too many lines. [41/25]", 2157464290], - [7, 3, 1512, "Metrics/BlockLength: Block has too many lines. [39/25]", 1968160370], - [44, 5, 401, "Metrics/AbcSize: Assignment Branch Condition size for `run_verify_loaded_preset` is too high. [<0, 26, 0> 26/17]", 2960760840] - ], - "spec/ast/merge/rspec/shared_examples/removal_mode_compliance_spec.rb:31388352": [ - [6, 22, 2, "Style/MutableConstant: Freeze mutable objects assigned to constants.", 5861859], - [44, 1, 2546, "Metrics/BlockLength: Block has too many lines. [77/25]", 3740028971], - [45, 3, 1350, "Metrics/BlockLength: Block has too many lines. [41/25]", 2793151667], - [94, 3, 1128, "Metrics/BlockLength: Block has too many lines. [32/25]", 2527000512], - [95, 5, 1081, "Metrics/BlockLength: Block has too many lines. [30/25]", 3825359844] - ], - "spec/ast/merge/rspec/shared_examples/reproducible_partial_merge_spec.rb:2862326360": [ - [19, 3, 600, "Metrics/MethodLength: Method has too many lines. [13/10]", 1542875905] - ], - "spec/ast/merge/rspec/tree_haver_backend_contract_spec.rb:3942689234": [ - [20, 1, 1737, "Metrics/BlockLength: Block has too many lines. [29/25]", 2339568528] - ], - "spec/ast/merge/ruleset/config_spec.rb:1860949041": [ - [3, 1, 9431, "Metrics/BlockLength: Block has too many lines. [236/25]", 4015119559], - [24, 3, 5341, "Metrics/BlockLength: Block has too many lines. [149/25]", 2361087446], - [25, 5, 1064, "Metrics/BlockLength: Block has too many lines. [26/25]", 603056104], - [226, 3, 2125, "Metrics/BlockLength: Block has too many lines. [36/25]", 1640873170] - ], - "spec/ast/merge/ruleset/declaration_objects_spec.rb:3827892270": [ - [3, 1, 1881, "Metrics/BlockLength: Block has too many lines. [47/25]", 1770376910] - ], - "spec/ast/merge/ruleset/feature_profile_spec.rb:2241111096": [ - [3, 1, 4189, "Metrics/BlockLength: Block has too many lines. [86/25]", 1116963550], - [4, 3, 4129, "Metrics/BlockLength: Block has too many lines. [84/25]", 117079811], - [5, 5, 2391, "Metrics/BlockLength: Block has too many lines. [45/25]", 1800077283] - ], - "spec/ast/merge/ruleset/parser_spec.rb:386407767": [ - [3, 1, 5670, "Metrics/BlockLength: Block has too many lines. [144/25]", 3425850453], - [4, 3, 5618, "Metrics/BlockLength: Block has too many lines. [143/25]", 246633759] - ], - "spec/ast/merge/ruleset/profile_vocabulary_spec.rb:2570869276": [ - [3, 1, 2095, "Metrics/BlockLength: Block has too many lines. [46/25]", 3214342662] - ], - "spec/ast/merge/ruleset/support_style_resolver_spec.rb:640167644": [ - [3, 1, 1625, "Metrics/BlockLength: Block has too many lines. [49/25]", 2066834885], - [4, 3, 1559, "Metrics/BlockLength: Block has too many lines. [47/25]", 1169495477] - ], - "spec/ast/merge/runtime_spec.rb:3962589694": [ - [5, 1, 24649, "Metrics/BlockLength: Block has too many lines. [664/25]", 2634021188], - [76, 3, 1459, "Metrics/BlockLength: Block has too many lines. [41/25]", 3744002593], - [125, 3, 1417, "Metrics/BlockLength: Block has too many lines. [33/25]", 4087615381], - [166, 3, 2549, "Metrics/BlockLength: Block has too many lines. [69/25]", 3150260095], - [175, 5, 1068, "Metrics/BlockLength: Block has too many lines. [26/25]", 2933114685], - [247, 3, 1668, "Metrics/BlockLength: Block has too many lines. [39/25]", 2386637993], - [259, 5, 1265, "Metrics/BlockLength: Block has too many lines. [27/25]", 3157806167], - [321, 3, 10884, "Metrics/BlockLength: Block has too many lines. [295/25]", 1889265918], - [322, 5, 1879, "Metrics/BlockLength: Block has too many lines. [46/25]", 2536583521], - [373, 5, 3938, "Metrics/BlockLength: Block has too many lines. [108/25]", 340276027], - [486, 5, 1270, "Metrics/BlockLength: Block has too many lines. [38/25]", 3844174392], - [528, 5, 3728, "Metrics/BlockLength: Block has too many lines. [95/25]", 3779381786], - [630, 3, 3240, "Metrics/BlockLength: Block has too many lines. [84/25]", 3856725067], - [656, 5, 1649, "Metrics/BlockLength: Block has too many lines. [40/25]", 3713662683] - ], - "spec/ast/merge/section_typing_spec.rb:2580971307": [ - [3, 1, 14786, "Metrics/BlockLength: Block has too many lines. [344/25]", 2925587076], - [4, 3, 1940, "Metrics/BlockLength: Block has too many lines. [50/25]", 3362429388], - [67, 3, 3684, "Metrics/BlockLength: Block has too many lines. [96/25]", 3864076664], - [120, 5, 1998, "Metrics/BlockLength: Block has too many lines. [50/25]", 411620722], - [183, 3, 1415, "Metrics/BlockLength: Block has too many lines. [37/25]", 3323012675], - [192, 5, 1124, "Metrics/BlockLength: Block has too many lines. [28/25]", 966216762], - [229, 3, 1610, "Metrics/BlockLength: Block has too many lines. [38/25]", 1499957007], - [229, 121, 17, "Layout/LineLength: Line is too long. [137/120]", 1025596574], - [279, 3, 4437, "Metrics/BlockLength: Block has too many lines. [80/25]", 423587151], - [356, 36, 23, "Style/SymbolProc: Pass `&:unclassified?` as an argument to `find` instead of a block.", 563945984], - [369, 36, 23, "Style/SymbolProc: Pass `&:unclassified?` as an argument to `find` instead of a block.", 563945984], - [375, 3, 1630, "Metrics/BlockLength: Block has too many lines. [31/25]", 1675144727] - ], - "spec/ast/merge/smart_merger_base_spec.rb:1904727390": [ - [3, 1, 13253, "Metrics/BlockLength: Block has too many lines. [398/25]", 3611753358], - [30, 9, 10, "Style/MultilineBlockChain: Avoid multi-line chains of blocks.", 1099697163], - [87, 3, 1851, "Metrics/BlockLength: Block has too many lines. [40/25]", 3729571903], - [210, 3, 925, "Metrics/BlockLength: Block has too many lines. [35/25]", 2001100899], - [344, 3, 709, "Metrics/BlockLength: Block has too many lines. [27/25]", 3041950416], - [415, 3, 1074, "Metrics/BlockLength: Block has too many lines. [35/25]", 956635689], - [416, 5, 1026, "Metrics/BlockLength: Block has too many lines. [33/25]", 1993879652], - [461, 3, 1031, "Metrics/BlockLength: Block has too many lines. [31/25]", 35315996] - ], - "spec/ast/merge/source_region_report_support_spec.rb:3996528026": [ - [3, 1, 5448, "Metrics/BlockLength: Block has too many lines. [186/25]", 2713581049], - [4, 3, 112, "Lint/ConstantDefinitionInBlock: Do not define constants this way within a block.", 3709101366], - [6, 3, 295, "Lint/ConstantDefinitionInBlock: Do not define constants this way within a block.", 1625952400], - [17, 3, 1473, "Metrics/BlockLength: Block has too many lines. [49/25]", 1435042916], - [70, 3, 1887, "Metrics/BlockLength: Block has too many lines. [66/25]", 1773930426], - [159, 3, 1109, "Metrics/BlockLength: Block has too many lines. [38/25]", 1457507554] - ], - "spec/ast/merge/structural_edit/boundary_support_spec.rb:863387845": [ - [3, 1, 4226, "Metrics/BlockLength: Block has too many lines. [86/25]", 1889771490], - [16, 9, 42, "Lint/HashCompareByIdentity: Use `Hash#compare_by_identity` instead of using `object_id` for keys.", 1304492024], - [22, 9, 41, "Lint/HashCompareByIdentity: Use `Hash#compare_by_identity` instead of using `object_id` for keys.", 3828424401], - [59, 3, 1294, "Metrics/BlockLength: Block has too many lines. [26/25]", 3038774774] - ], - "spec/ast/merge/structural_edit/plan_set_spec.rb:3633263362": [ - [3, 1, 5945, "Metrics/BlockLength: Block has too many lines. [180/25]", 3883285271], - [14, 3, 2139, "Metrics/BlockLength: Block has too many lines. [72/25]", 3558415255], - [128, 3, 1412, "Metrics/BlockLength: Block has too many lines. [39/25]", 1216754705] - ], - "spec/ast/merge/structural_edit/remove_plan_spec.rb:3569534665": [ - [3, 1, 6442, "Metrics/BlockLength: Block has too many lines. [134/25]", 3440814588], - [39, 3, 3768, "Metrics/BlockLength: Block has too many lines. [75/25]", 876721813], - [127, 3, 1439, "Metrics/BlockLength: Block has too many lines. [29/25]", 3378195351] - ], - "spec/ast/merge/structural_edit/remove_plan_support_spec.rb:800158061": [ - [3, 1, 2893, "Metrics/BlockLength: Block has too many lines. [62/25]", 3748446914], - [16, 9, 43, "Lint/HashCompareByIdentity: Use `Hash#compare_by_identity` instead of using `object_id` for keys.", 3196404056], - [22, 9, 42, "Lint/HashCompareByIdentity: Use `Hash#compare_by_identity` instead of using `object_id` for keys.", 4116824817], - [29, 3, 2091, "Metrics/BlockLength: Block has too many lines. [39/25]", 1684933040], - [30, 5, 1653, "Metrics/BlockLength: Block has too many lines. [27/25]", 2456404305] - ], - "spec/ast/merge/structural_edit/splice_plan_spec.rb:3331205681": [ - [3, 1, 3159, "Metrics/BlockLength: Block has too many lines. [83/25]", 2234926397], - [16, 3, 1837, "Metrics/BlockLength: Block has too many lines. [46/25]", 2935991482], - [42, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5860750] - ], - "spec/ast/merge/text/conflict_resolver_spec.rb:3810004132": [ - [5, 1, 9102, "Metrics/BlockLength: Block has too many lines. [218/25]", 672115618], - [33, 3, 8206, "Metrics/BlockLength: Block has too many lines. [194/25]", 259803246], - [78, 5, 1920, "Metrics/BlockLength: Block has too many lines. [45/25]", 3965182334], - [139, 5, 1918, "Metrics/BlockLength: Block has too many lines. [44/25]", 3707046125] - ], - "spec/ast/merge/text/file_analysis_spec.rb:3430380445": [ - [5, 1, 8842, "Metrics/BlockLength: Block has too many lines. [205/25]", 4255187284], - [6, 3, 1323, "Metrics/BlockLength: Block has too many lines. [29/25]", 2518912953], - [47, 3, 1830, "Metrics/BlockLength: Block has too many lines. [43/25]", 3685770590], - [135, 3, 1620, "Metrics/BlockLength: Block has too many lines. [35/25]", 3089951119] - ], - "spec/ast/merge/text/line_node_spec.rb:1757790485": [ - [5, 1, 4739, "Metrics/BlockLength: Block has too many lines. [131/25]", 1487875238] - ], - "spec/ast/merge/text/merge_result_spec.rb:589380024": [ - [5, 1, 1541, "Metrics/BlockLength: Block has too many lines. [40/25]", 2828087992] - ], - "spec/ast/merge/text/section_splitter_spec.rb:804308722": [ - [4, 1, 5705, "Metrics/BlockLength: Block has too many lines. [209/25]", 4175363685], - [5, 3, 794, "Metrics/BlockLength: Block has too many lines. [28/25]", 2386862842], - [42, 3, 1126, "Metrics/BlockLength: Block has too many lines. [45/25]", 1507887296], - [95, 3, 746, "Metrics/BlockLength: Block has too many lines. [30/25]", 1759029412], - [131, 3, 1169, "Metrics/BlockLength: Block has too many lines. [45/25]", 1412318991], - [184, 3, 754, "Metrics/BlockLength: Block has too many lines. [30/25]", 2717556691], - [246, 1, 16648, "Metrics/BlockLength: Block has too many lines. [428/25]", 3166834694], - [370, 3, 1640, "Metrics/BlockLength: Block has too many lines. [46/25]", 2049342960], - [424, 3, 3237, "Metrics/BlockLength: Block has too many lines. [102/25]", 2357275144], - [540, 3, 3505, "Metrics/BlockLength: Block has too many lines. [67/25]", 2112469350], - [619, 3, 3586, "Metrics/BlockLength: Block has too many lines. [90/25]", 3866409298], - [620, 5, 1650, "Metrics/BlockLength: Block has too many lines. [48/25]", 289235626], - [622, 9, 1474, "Metrics/AbcSize: Assignment Branch Condition size for `split` is too high. [<8, 21, 7> 23.54/17]", 557655357], - [622, 9, 1474, "Metrics/MethodLength: Method has too many lines. [41/10]", 557655357], - [622, 9, 1474, "Metrics/PerceivedComplexity: Perceived complexity for `split` is too high. [9/8]", 557655357], - [628, 11, 1237, "Metrics/BlockLength: Block has too many lines. [33/25]", 1134667672], - [717, 29, 44, "Style/StringConcatenation: Prefer string interpolation to string concatenation.", 2169354946], - [723, 29, 44, "Style/StringConcatenation: Prefer string interpolation to string concatenation.", 2169354946], - [751, 1, 3128, "Metrics/BlockLength: Block has too many lines. [85/25]", 2082776744], - [769, 3, 1744, "Metrics/BlockLength: Block has too many lines. [46/25]", 223880162], - [770, 5, 1258, "Metrics/BlockLength: Block has too many lines. [31/25]", 2245422869] - ], - "spec/ast/merge/text/smart_merger_spec.rb:4128732567": [ - [3, 1, 8057, "Metrics/BlockLength: Block has too many lines. [210/25]", 1690443322], - [4, 3, 1135, "Metrics/BlockLength: Block has too many lines. [28/25]", 3788979655], - [58, 3, 4438, "Metrics/BlockLength: Block has too many lines. [106/25]", 2613192474], - [187, 3, 1053, "Metrics/BlockLength: Block has too many lines. [26/25]", 803567817], - [220, 3, 892, "Metrics/BlockLength: Block has too many lines. [28/25]", 2001100899] - ], - "spec/ast/merge/text/word_node_spec.rb:1457011521": [ - [5, 1, 3264, "Metrics/BlockLength: Block has too many lines. [74/25]", 677733430] - ], - "spec/ast/merge/token_match_refiner_spec.rb:3180314913": [ - [3, 1, 4000, "Metrics/BlockLength: Block has too many lines. [80/25]", 1630791278], - [8, 3, 2912, "Metrics/BlockLength: Block has too many lines. [60/25]", 529772148] - ], - "spec/ast/merge/trailing_groups/alignment_sort_spec.rb:1594915480": [ - [5, 1, 4710, "Metrics/BlockLength: Block has too many lines. [114/25]", 2499296583], - [14, 3, 2140, "Metrics/BlockLength: Block has too many lines. [47/25]", 3871799493], - [95, 3, 1482, "Metrics/BlockLength: Block has too many lines. [35/25]", 1088314263] - ], - "spec/ast/merge/trailing_groups/core_spec.rb:2651131504": [ - [5, 1, 9601, "Metrics/BlockLength: Block has too many lines. [242/25]", 598045669], - [22, 3, 3728, "Metrics/BlockLength: Block has too many lines. [87/25]", 1304580063], - [119, 3, 3931, "Metrics/BlockLength: Block has too many lines. [99/25]", 2464218479], - [186, 5, 1322, "Metrics/BlockLength: Block has too many lines. [30/25]", 427915501], - [187, 7, 1267, "Metrics/BlockLength: Block has too many lines. [28/25]", 861882691], - [245, 3, 1306, "Metrics/BlockLength: Block has too many lines. [34/25]", 86572459] - ], - "spec/ast/merge/trailing_groups/dest_iterate_spec.rb:3632880085": [ - [5, 1, 5523, "Metrics/BlockLength: Block has too many lines. [131/25]", 3077369183], - [19, 3, 3990, "Metrics/BlockLength: Block has too many lines. [91/25]", 593259616], - [39, 35, 12, "Style/SymbolProc: Pass `&:sig` as an argument to `lambda` instead of a block.", 3587754320], - [54, 33, 23, "Lint/HashCompareByIdentity: Use `Hash#compare_by_identity` instead of using `object_id` for keys.", 384283629], - [89, 35, 13, "Style/SymbolProc: Pass `&:name` as an argument to `lambda` instead of a block.", 3561384234], - [98, 35, 12, "Style/SymbolProc: Pass `&:sig` as an argument to `lambda` instead of a block.", 3587754320], - [113, 35, 12, "Style/SymbolProc: Pass `&:sig` as an argument to `lambda` instead of a block.", 3587754320] - ], - "spec/ast/merge/unresolved_policy_spec.rb:2561713656": [ - [3, 1, 1333, "Metrics/BlockLength: Block has too many lines. [33/25]", 4109547889] - ], - "spec/ast/merge/unresolved_review_state_spec.rb:3186871217": [ - [3, 1, 1038, "Metrics/BlockLength: Block has too many lines. [31/25]", 1325553035] - ], - "spec/ast/merge_rspec_conformance_fixtures_spec.rb:251774004": [ - [5, 1, 2119, "Metrics/BlockLength: Block has too many lines. [55/25]", 1724925683], - [6, 3, 1203, "Metrics/BlockLength: Block has too many lines. [29/25]", 3306863581] - ], - "spec/ast/merge_spec.rb:664670069": [ - [3, 1, 3113, "Metrics/BlockLength: Block has too many lines. [74/25]", 4034649501], - [9, 3, 2227, "Metrics/BlockLength: Block has too many lines. [51/25]", 578300230], - [10, 5, 2182, "Metrics/BlockLength: Block has too many lines. [49/25]", 2758871265] - ], - "spec/base_substrate_spec.rb:2864492094": [ - [5, 1, 5800, "Metrics/BlockLength: Block has too many lines. [143/25]", 784801982], - [6, 3, 192, "Lint/ConstantDefinitionInBlock: Do not define constants this way within a block.", 680981873], - [13, 3, 378, "Lint/ConstantDefinitionInBlock: Do not define constants this way within a block.", 1223797442], - [31, 3, 628, "Lint/ConstantDefinitionInBlock: Do not define constants this way within a block.", 2123191050], - [53, 3, 429, "Lint/ConstantDefinitionInBlock: Do not define constants this way within a block.", 3536712197], - [69, 3, 24, "Lint/ConstantDefinitionInBlock: Do not define constants this way within a block.", 2280792512], - [70, 3, 78, "Lint/ConstantDefinitionInBlock: Do not define constants this way within a block.", 604224776], - [72, 3, 146, "Lint/ConstantDefinitionInBlock: Do not define constants this way within a block.", 3315091322] - ], - "spec/fixtures_integration_spec.rb:1733315771": [ - [595, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5859109], - [758, 121, 54, "Layout/LineLength: Line is too long. [174/120]", 576909008], - [881, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2087900170], - [1810, 3, 816, "Metrics/MethodLength: Method has too many lines. [13/10]", 170960660], - [1810, 39, 213, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [10/5]", 635200700], - [1811, 121, 27, "Layout/LineLength: Line is too long. [147/120]", 3976306097], - [1835, 38, 80, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 3297939075], - [1920, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1745553512], - [1921, 121, 38, "Layout/LineLength: Line is too long. [158/120]", 118067488], - [1922, 121, 5, "Layout/LineLength: Line is too long. [125/120]", 196190368], - [1923, 121, 41, "Layout/LineLength: Line is too long. [161/120]", 3371256193], - [2094, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 3241114703], - [2432, 121, 1, "Layout/LineLength: Line is too long. [121/120]", 177548], - [2571, 121, 1, "Layout/LineLength: Line is too long. [121/120]", 177548], - [2995, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 3697593604], - [2996, 121, 1, "Layout/LineLength: Line is too long. [121/120]", 177548], - [3117, 121, 5, "Layout/LineLength: Line is too long. [125/120]", 179435314], - [3126, 121, 34, "Layout/LineLength: Line is too long. [154/120]", 1182194285], - [3128, 121, 28, "Layout/LineLength: Line is too long. [148/120]", 3886107031], - [3155, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1751849111], - [3156, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 1519587684], - [3157, 121, 11, "Layout/LineLength: Line is too long. [131/120]", 4086262880], - [3174, 121, 10, "Layout/LineLength: Line is too long. [130/120]", 3568081822], - [3175, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 1776876782], - [3177, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5858795], - [3178, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1751849111], - [3180, 121, 73, "Layout/LineLength: Line is too long. [193/120]", 3322243646], - [3182, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1715153206], - [3183, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5858795], - [3184, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 504997180], - [3185, 121, 44, "Layout/LineLength: Line is too long. [164/120]", 1146860021], - [3186, 121, 38, "Layout/LineLength: Line is too long. [158/120]", 2312101607], - [3187, 121, 42, "Layout/LineLength: Line is too long. [162/120]", 1423779161], - [3188, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1900897138], - [3189, 121, 10, "Layout/LineLength: Line is too long. [130/120]", 1689840383], - [3190, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 1589056236], - [3192, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 763176550], - [3198, 121, 16, "Layout/LineLength: Line is too long. [136/120]", 3957871310], - [3200, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 763176550], - [3202, 121, 10, "Layout/LineLength: Line is too long. [130/120]", 919916608], - [3203, 121, 10, "Layout/LineLength: Line is too long. [130/120]", 919916608], - [3204, 121, 16, "Layout/LineLength: Line is too long. [136/120]", 3957871310], - [3205, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 4073040612], - [3206, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 763176550], - [3207, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 667593075], - [3209, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1310972770], - [3210, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 311387795], - [3211, 121, 18, "Layout/LineLength: Line is too long. [138/120]", 724840266], - [3212, 121, 22, "Layout/LineLength: Line is too long. [142/120]", 2555878310], - [3213, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1781078972], - [3214, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5858795], - [3217, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5858795], - [3218, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 1658060570], - [3219, 121, 40, "Layout/LineLength: Line is too long. [160/120]", 3085728851], - [3220, 121, 44, "Layout/LineLength: Line is too long. [164/120]", 3129400559], - [3221, 121, 10, "Layout/LineLength: Line is too long. [130/120]", 3197516464], - [3222, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2087771520], - [3223, 121, 22, "Layout/LineLength: Line is too long. [142/120]", 3837194228], - [3224, 121, 42, "Layout/LineLength: Line is too long. [162/120]", 1312323543], - [3225, 121, 46, "Layout/LineLength: Line is too long. [166/120]", 2356847623], - [3226, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5858795], - [3227, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 3428073441], - [3228, 121, 40, "Layout/LineLength: Line is too long. [160/120]", 2891080552], - [3229, 121, 44, "Layout/LineLength: Line is too long. [164/120]", 3080737172], - [3230, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 170445026], - [3231, 121, 32, "Layout/LineLength: Line is too long. [152/120]", 3240051869], - [3232, 121, 52, "Layout/LineLength: Line is too long. [172/120]", 4266052680], - [3233, 121, 56, "Layout/LineLength: Line is too long. [176/120]", 3376297786], - [3234, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 398435913], - [3235, 121, 26, "Layout/LineLength: Line is too long. [146/120]", 4134940256], - [3236, 121, 46, "Layout/LineLength: Line is too long. [166/120]", 30370035], - [3237, 121, 50, "Layout/LineLength: Line is too long. [170/120]", 2862546359], - [3238, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 1901388514], - [3239, 121, 38, "Layout/LineLength: Line is too long. [158/120]", 838864274], - [3240, 121, 58, "Layout/LineLength: Line is too long. [178/120]", 3437460384], - [3241, 121, 62, "Layout/LineLength: Line is too long. [182/120]", 1567003152], - [3242, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 2609066305], - [3243, 121, 32, "Layout/LineLength: Line is too long. [152/120]", 4043187090], - [3244, 121, 52, "Layout/LineLength: Line is too long. [172/120]", 3866430009], - [3245, 121, 56, "Layout/LineLength: Line is too long. [176/120]", 2182699083], - [3246, 121, 26, "Layout/LineLength: Line is too long. [146/120]", 3958792129], - [3247, 121, 44, "Layout/LineLength: Line is too long. [164/120]", 3449926560], - [3248, 121, 64, "Layout/LineLength: Line is too long. [184/120]", 399774089], - [3249, 121, 68, "Layout/LineLength: Line is too long. [188/120]", 2119246799], - [3251, 121, 32, "Layout/LineLength: Line is too long. [152/120]", 3592658842], - [3252, 121, 18, "Layout/LineLength: Line is too long. [138/120]", 2905723409], - [3253, 121, 38, "Layout/LineLength: Line is too long. [158/120]", 3930305198], - [3254, 121, 42, "Layout/LineLength: Line is too long. [162/120]", 4186230052], - [3255, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5858795], - [3256, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 2700200720], - [3257, 121, 40, "Layout/LineLength: Line is too long. [160/120]", 1630526402], - [3258, 121, 44, "Layout/LineLength: Line is too long. [164/120]", 3669244926], - [3259, 121, 18, "Layout/LineLength: Line is too long. [138/120]", 2814234644], - [3260, 121, 36, "Layout/LineLength: Line is too long. [156/120]", 3109415933], - [3261, 121, 56, "Layout/LineLength: Line is too long. [176/120]", 3643275044], - [3262, 121, 60, "Layout/LineLength: Line is too long. [180/120]", 3825290660], - [3263, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1751849111], - [3264, 121, 24, "Layout/LineLength: Line is too long. [144/120]", 4112285398], - [3265, 121, 44, "Layout/LineLength: Line is too long. [164/120]", 1684279672], - [3266, 121, 48, "Layout/LineLength: Line is too long. [168/120]", 1616506266], - [3268, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5858795], - [3269, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 1330093223], - [3270, 121, 40, "Layout/LineLength: Line is too long. [160/120]", 4084555566], - [3271, 121, 44, "Layout/LineLength: Line is too long. [164/120]", 2466867154], - [3272, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 4088314613], - [3273, 121, 26, "Layout/LineLength: Line is too long. [146/120]", 2416893689], - [3274, 121, 46, "Layout/LineLength: Line is too long. [166/120]", 683312682], - [3275, 121, 50, "Layout/LineLength: Line is too long. [170/120]", 2516517934], - [3276, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 2414563355], - [3277, 121, 38, "Layout/LineLength: Line is too long. [158/120]", 2232595211], - [3278, 121, 58, "Layout/LineLength: Line is too long. [178/120]", 2940789369], - [3279, 121, 62, "Layout/LineLength: Line is too long. [182/120]", 941259913], - [3280, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 2133508098], - [3281, 121, 26, "Layout/LineLength: Line is too long. [146/120]", 1621975014], - [3282, 121, 46, "Layout/LineLength: Line is too long. [166/120]", 35985461], - [3283, 121, 50, "Layout/LineLength: Line is too long. [170/120]", 746016305], - [3284, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 435488100], - [3285, 121, 38, "Layout/LineLength: Line is too long. [158/120]", 2581129172], - [3286, 121, 58, "Layout/LineLength: Line is too long. [178/120]", 3495900774], - [3287, 121, 62, "Layout/LineLength: Line is too long. [182/120]", 1413120342], - [3288, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5858795], - [3289, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 2333800791], - [3290, 121, 40, "Layout/LineLength: Line is too long. [160/120]", 2576906206], - [3291, 121, 44, "Layout/LineLength: Line is too long. [164/120]", 2986659874], - [3292, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 2811932564], - [3293, 121, 32, "Layout/LineLength: Line is too long. [152/120]", 1970813291], - [3294, 121, 52, "Layout/LineLength: Line is too long. [172/120]", 2904941246], - [3295, 121, 56, "Layout/LineLength: Line is too long. [176/120]", 3745922508], - [3296, 121, 32, "Layout/LineLength: Line is too long. [152/120]", 735247237], - [3297, 121, 50, "Layout/LineLength: Line is too long. [170/120]", 3731320885], - [3298, 121, 70, "Layout/LineLength: Line is too long. [190/120]", 3896022034], - [3299, 121, 74, "Layout/LineLength: Line is too long. [194/120]", 2827048584], - [3300, 121, 44, "Layout/LineLength: Line is too long. [164/120]", 2548596663], - [3301, 121, 62, "Layout/LineLength: Line is too long. [182/120]", 3812352018], - [3302, 121, 82, "Layout/LineLength: Line is too long. [202/120]", 1280243910], - [3303, 121, 86, "Layout/LineLength: Line is too long. [206/120]", 1742643292], - [3304, 121, 40, "Layout/LineLength: Line is too long. [160/120]", 3056442430], - [3305, 121, 58, "Layout/LineLength: Line is too long. [178/120]", 3144363287], - [3306, 121, 78, "Layout/LineLength: Line is too long. [198/120]", 477297993], - [3307, 121, 82, "Layout/LineLength: Line is too long. [202/120]", 3657857971], - [3308, 121, 52, "Layout/LineLength: Line is too long. [172/120]", 3913984414], - [3309, 121, 70, "Layout/LineLength: Line is too long. [190/120]", 336201058], - [3310, 121, 90, "Layout/LineLength: Line is too long. [210/120]", 485418789], - [3311, 121, 94, "Layout/LineLength: Line is too long. [214/120]", 453253839], - [3312, 121, 32, "Layout/LineLength: Line is too long. [152/120]", 3673833034], - [3313, 121, 50, "Layout/LineLength: Line is too long. [170/120]", 1552836890], - [3314, 121, 70, "Layout/LineLength: Line is too long. [190/120]", 2714635965], - [3315, 121, 74, "Layout/LineLength: Line is too long. [194/120]", 9336999], - [3316, 121, 44, "Layout/LineLength: Line is too long. [164/120]", 584857208], - [3317, 121, 62, "Layout/LineLength: Line is too long. [182/120]", 1394865213], - [3318, 121, 82, "Layout/LineLength: Line is too long. [202/120]", 3973222761], - [3319, 121, 86, "Layout/LineLength: Line is too long. [206/120]", 2020040051], - [3320, 121, 34, "Layout/LineLength: Line is too long. [154/120]", 3060994335], - [3321, 121, 52, "Layout/LineLength: Line is too long. [172/120]", 196286917], - [3322, 121, 72, "Layout/LineLength: Line is too long. [192/120]", 4168514178], - [3323, 121, 76, "Layout/LineLength: Line is too long. [196/120]", 810581246], - [3324, 121, 46, "Layout/LineLength: Line is too long. [166/120]", 1473417372], - [3325, 121, 64, "Layout/LineLength: Line is too long. [184/120]", 3008376885], - [3326, 121, 84, "Layout/LineLength: Line is too long. [204/120]", 454816400], - [3327, 121, 88, "Layout/LineLength: Line is too long. [208/120]", 1416223705], - [3328, 121, 48, "Layout/LineLength: Line is too long. [168/120]", 2896813919], - [3329, 121, 66, "Layout/LineLength: Line is too long. [186/120]", 957293983], - [3330, 121, 86, "Layout/LineLength: Line is too long. [206/120]", 2118117430], - [3331, 121, 90, "Layout/LineLength: Line is too long. [210/120]", 1367404612], - [3332, 121, 64, "Layout/LineLength: Line is too long. [184/120]", 2459902188], - [3333, 121, 62, "Layout/LineLength: Line is too long. [182/120]", 461483815], - [3334, 121, 62, "Layout/LineLength: Line is too long. [182/120]", 2791596520], - [3335, 121, 60, "Layout/LineLength: Line is too long. [180/120]", 203085787], - [3336, 121, 64, "Layout/LineLength: Line is too long. [184/120]", 2942095139], - [3337, 121, 80, "Layout/LineLength: Line is too long. [200/120]", 131861965], - [3338, 121, 86, "Layout/LineLength: Line is too long. [206/120]", 3340827551], - [3339, 121, 90, "Layout/LineLength: Line is too long. [210/120]", 102582610], - [3340, 121, 94, "Layout/LineLength: Line is too long. [214/120]", 762789354], - [3341, 121, 90, "Layout/LineLength: Line is too long. [210/120]", 3478337442], - [3342, 121, 112, "Layout/LineLength: Line is too long. [232/120]", 4010607435], - [3343, 121, 132, "Layout/LineLength: Line is too long. [252/120]", 3754747587], - [3344, 121, 136, "Layout/LineLength: Line is too long. [256/120]", 379336923], - [3345, 121, 108, "Layout/LineLength: Line is too long. [228/120]", 3366353902], - [3346, 121, 128, "Layout/LineLength: Line is too long. [248/120]", 1686898289], - [3347, 121, 132, "Layout/LineLength: Line is too long. [252/120]", 2005192241], - [3348, 121, 104, "Layout/LineLength: Line is too long. [224/120]", 1868634464], - [3349, 121, 124, "Layout/LineLength: Line is too long. [244/120]", 3939743614], - [3350, 121, 128, "Layout/LineLength: Line is too long. [248/120]", 2978506702], - [3351, 121, 98, "Layout/LineLength: Line is too long. [218/120]", 3909866928], - [3352, 121, 118, "Layout/LineLength: Line is too long. [238/120]", 2853032177], - [3353, 121, 122, "Layout/LineLength: Line is too long. [242/120]", 2968366309], - [3354, 121, 82, "Layout/LineLength: Line is too long. [202/120]", 1753663643], - [3355, 121, 102, "Layout/LineLength: Line is too long. [222/120]", 3387619436], - [3356, 121, 106, "Layout/LineLength: Line is too long. [226/120]", 197895496], - [3357, 121, 78, "Layout/LineLength: Line is too long. [198/120]", 576181861], - [3358, 121, 98, "Layout/LineLength: Line is too long. [218/120]", 2809313444], - [3359, 121, 102, "Layout/LineLength: Line is too long. [222/120]", 3963067112], - [3360, 121, 80, "Layout/LineLength: Line is too long. [200/120]", 1121380327], - [3361, 121, 100, "Layout/LineLength: Line is too long. [220/120]", 31591211], - [3362, 121, 104, "Layout/LineLength: Line is too long. [224/120]", 1946129497], - [3363, 121, 80, "Layout/LineLength: Line is too long. [200/120]", 767185096], - [3364, 121, 100, "Layout/LineLength: Line is too long. [220/120]", 1092646020], - [3365, 121, 104, "Layout/LineLength: Line is too long. [224/120]", 1328841270], - [3366, 121, 74, "Layout/LineLength: Line is too long. [194/120]", 2663749624], - [3367, 121, 74, "Layout/LineLength: Line is too long. [194/120]", 430318647], - [3368, 121, 72, "Layout/LineLength: Line is too long. [192/120]", 1650234037], - [3369, 121, 76, "Layout/LineLength: Line is too long. [196/120]", 1082269805], - [3370, 121, 92, "Layout/LineLength: Line is too long. [212/120]", 316397809], - [3371, 121, 92, "Layout/LineLength: Line is too long. [212/120]", 3145391348], - [3372, 121, 112, "Layout/LineLength: Line is too long. [232/120]", 2808088654], - [3373, 121, 116, "Layout/LineLength: Line is too long. [236/120]", 1035513748], - [3374, 121, 92, "Layout/LineLength: Line is too long. [212/120]", 2552800539], - [3375, 121, 112, "Layout/LineLength: Line is too long. [232/120]", 1727699169], - [3376, 121, 116, "Layout/LineLength: Line is too long. [236/120]", 1171566267], - [3377, 121, 90, "Layout/LineLength: Line is too long. [210/120]", 2994775049], - [3378, 121, 110, "Layout/LineLength: Line is too long. [230/120]", 3860489151], - [3379, 121, 114, "Layout/LineLength: Line is too long. [234/120]", 959496607], - [3380, 121, 94, "Layout/LineLength: Line is too long. [214/120]", 1694222439], - [3381, 121, 114, "Layout/LineLength: Line is too long. [234/120]", 1501186331], - [3382, 121, 118, "Layout/LineLength: Line is too long. [238/120]", 4059659418], - [3383, 121, 110, "Layout/LineLength: Line is too long. [230/120]", 1899868779], - [3384, 121, 130, "Layout/LineLength: Line is too long. [250/120]", 323324279], - [3385, 121, 134, "Layout/LineLength: Line is too long. [254/120]", 3956414359], - [3386, 121, 98, "Layout/LineLength: Line is too long. [218/120]", 3506644741], - [3387, 121, 116, "Layout/LineLength: Line is too long. [236/120]", 936139074], - [3388, 121, 136, "Layout/LineLength: Line is too long. [256/120]", 4153213512], - [3389, 121, 140, "Layout/LineLength: Line is too long. [260/120]", 1491976338], - [3390, 121, 102, "Layout/LineLength: Line is too long. [222/120]", 4061753206], - [3391, 121, 106, "Layout/LineLength: Line is too long. [226/120]", 2410434304], - [3392, 121, 124, "Layout/LineLength: Line is too long. [244/120]", 3518300264], - [3393, 121, 144, "Layout/LineLength: Line is too long. [264/120]", 1040696046], - [3394, 121, 148, "Layout/LineLength: Line is too long. [268/120]", 139604188], - [3395, 121, 120, "Layout/LineLength: Line is too long. [240/120]", 231937793], - [3396, 121, 140, "Layout/LineLength: Line is too long. [260/120]", 1835509805], - [3397, 121, 144, "Layout/LineLength: Line is too long. [264/120]", 1629218396], - [3398, 121, 82, "Layout/LineLength: Line is too long. [202/120]", 2312875700], - [3399, 121, 102, "Layout/LineLength: Line is too long. [222/120]", 2933374083], - [3400, 121, 106, "Layout/LineLength: Line is too long. [226/120]", 1719349671], - [3401, 121, 76, "Layout/LineLength: Line is too long. [196/120]", 2555579810], - [3402, 121, 94, "Layout/LineLength: Line is too long. [214/120]", 2023551624], - [3403, 121, 114, "Layout/LineLength: Line is too long. [234/120]", 955231924], - [3404, 121, 118, "Layout/LineLength: Line is too long. [238/120]", 4232993781], - [3405, 121, 60, "Layout/LineLength: Line is too long. [180/120]", 3472954835], - [3406, 121, 78, "Layout/LineLength: Line is too long. [198/120]", 3211922285], - [3407, 121, 98, "Layout/LineLength: Line is too long. [218/120]", 2874956332], - [3408, 121, 102, "Layout/LineLength: Line is too long. [222/120]", 1360335840], - [3409, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 2135379556], - [3410, 121, 32, "Layout/LineLength: Line is too long. [152/120]", 3242768475], - [3411, 121, 52, "Layout/LineLength: Line is too long. [172/120]", 2789115918], - [3412, 121, 56, "Layout/LineLength: Line is too long. [176/120]", 3346448124], - [3413, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 1538469817], - [3414, 121, 34, "Layout/LineLength: Line is too long. [154/120]", 1543041113], - [3415, 121, 38, "Layout/LineLength: Line is too long. [158/120]", 3344741438], - [3416, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 2188404009], - [3417, 121, 26, "Layout/LineLength: Line is too long. [146/120]", 1330398779], - [3418, 121, 46, "Layout/LineLength: Line is too long. [166/120]", 332468826], - [3419, 121, 50, "Layout/LineLength: Line is too long. [170/120]", 1905397598], - [3420, 121, 28, "Layout/LineLength: Line is too long. [148/120]", 438831062], - [3421, 121, 48, "Layout/LineLength: Line is too long. [168/120]", 3377667334], - [3422, 121, 52, "Layout/LineLength: Line is too long. [172/120]", 3232541734], - [3424, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 2130930429], - [3425, 121, 24, "Layout/LineLength: Line is too long. [144/120]", 3684939371], - [3427, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 2361951097], - [3428, 121, 32, "Layout/LineLength: Line is too long. [152/120]", 1211447462], - [3429, 121, 52, "Layout/LineLength: Line is too long. [172/120]", 3309872691], - [3430, 121, 56, "Layout/LineLength: Line is too long. [176/120]", 360053761], - [3431, 121, 16, "Layout/LineLength: Line is too long. [136/120]", 1310136493], - [3432, 121, 34, "Layout/LineLength: Line is too long. [154/120]", 1950686342], - [3433, 121, 54, "Layout/LineLength: Line is too long. [174/120]", 1397845826], - [3434, 121, 58, "Layout/LineLength: Line is too long. [178/120]", 4191304724], - [3435, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 2354128498], - [3436, 121, 30, "Layout/LineLength: Line is too long. [150/120]", 1865717453], - [3437, 121, 50, "Layout/LineLength: Line is too long. [170/120]", 24220542], - [3438, 121, 54, "Layout/LineLength: Line is too long. [174/120]", 2618612673], - [3441, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 3422918867], - [3442, 121, 16, "Layout/LineLength: Line is too long. [136/120]", 3689431739], - [3486, 121, 47, "Layout/LineLength: Line is too long. [167/120]", 4093564799], - [3492, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1662653970], - [3493, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 3967501655], - [3494, 121, 17, "Layout/LineLength: Line is too long. [137/120]", 2178516622], - [3495, 121, 40, "Layout/LineLength: Line is too long. [160/120]", 1345346561], - [3509, 121, 3, "Layout/LineLength: Line is too long. [123/120]", 193466072], - [3629, 121, 23, "Layout/LineLength: Line is too long. [143/120]", 3612393276], - [3630, 121, 9, "Layout/LineLength: Line is too long. [129/120]", 797303985], - [3633, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 1606320605], - [3653, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 1776876782], - [3657, 121, 7, "Layout/LineLength: Line is too long. [127/120]", 828742791], - [3677, 121, 31, "Layout/LineLength: Line is too long. [151/120]", 3294617581], - [3687, 121, 22, "Layout/LineLength: Line is too long. [142/120]", 3519842846], - [3697, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 1966440909], - [3698, 121, 7, "Layout/LineLength: Line is too long. [127/120]", 830053864], - [3704, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 1606320605], - [3727, 121, 16, "Layout/LineLength: Line is too long. [136/120]", 1340744311], - [3746, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1741893077], - [3747, 121, 7, "Layout/LineLength: Line is too long. [127/120]", 830053865], - [3751, 121, 3, "Layout/LineLength: Line is too long. [123/120]", 193405204], - [3765, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 1401226501], - [3768, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2085352569], - [3771, 121, 17, "Layout/LineLength: Line is too long. [137/120]", 696523922], - [3786, 121, 5, "Layout/LineLength: Line is too long. [125/120]", 182097675], - [3796, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 2746826653], - [4212, 121, 19, "Layout/LineLength: Line is too long. [139/120]", 1138870161], - [4774, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5862609], - [4785, 121, 13, "Layout/LineLength: Line is too long. [133/120]", 2132299307], - [4832, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2087775098], - [4843, 121, 15, "Layout/LineLength: Line is too long. [135/120]", 757851079], - [4879, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5862609], - [4890, 121, 13, "Layout/LineLength: Line is too long. [133/120]", 441649198], - [4913, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2087903295], - [4925, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 170442008], - [4934, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 2102137893], - [4936, 121, 25, "Layout/LineLength: Line is too long. [145/120]", 1888875443], - [4973, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 398433651], - [4984, 121, 19, "Layout/LineLength: Line is too long. [139/120]", 3921367744], - [5007, 121, 10, "Layout/LineLength: Line is too long. [130/120]", 2422819473], - [5013, 121, 5, "Layout/LineLength: Line is too long. [125/120]", 194583095], - [5019, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 1901385496], - [5028, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 490810486], - [5030, 121, 31, "Layout/LineLength: Line is too long. [151/120]", 586287746], - [5034, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1310969752], - [5054, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2087389205], - [5066, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 2609063547], - [5075, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 2102137893], - [5077, 121, 25, "Layout/LineLength: Line is too long. [145/120]", 1370761696], - [5100, 121, 16, "Layout/LineLength: Line is too long. [136/120]", 2208661169], - [5106, 121, 11, "Layout/LineLength: Line is too long. [131/120]", 1862604658], - [5112, 121, 26, "Layout/LineLength: Line is too long. [146/120]", 3958789371], - [5121, 121, 18, "Layout/LineLength: Line is too long. [138/120]", 3449594464], - [5123, 121, 37, "Layout/LineLength: Line is too long. [157/120]", 692050524], - [5127, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 802172558], - [5197, 121, 11, "Layout/LineLength: Line is too long. [131/120]", 2406691660], - [5232, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5862609], - [5243, 121, 13, "Layout/LineLength: Line is too long. [133/120]", 1811982742], - [5270, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 2562189319], - [5276, 121, 3, "Layout/LineLength: Line is too long. [123/120]", 193430346], - [5282, 121, 18, "Layout/LineLength: Line is too long. [138/120]", 2814237166], - [5291, 121, 10, "Layout/LineLength: Line is too long. [130/120]", 2189106693], - [5293, 121, 29, "Layout/LineLength: Line is too long. [149/120]", 3874870868], - [5297, 121, 5, "Layout/LineLength: Line is too long. [125/120]", 179474914], - [5330, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1751845165], - [5341, 121, 17, "Layout/LineLength: Line is too long. [137/120]", 2617230371], - [5345, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5862609], - [5386, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5862609], - [5397, 121, 13, "Layout/LineLength: Line is too long. [133/120]", 3793790598], - [5432, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 4088312783], - [5443, 121, 19, "Layout/LineLength: Line is too long. [139/120]", 3220724736], - [5447, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2087899888], - [5466, 121, 10, "Layout/LineLength: Line is too long. [130/120]", 2552888401], - [5472, 121, 5, "Layout/LineLength: Line is too long. [125/120]", 194583095], - [5478, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 2414559905], - [5487, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 626762179], - [5489, 121, 31, "Layout/LineLength: Line is too long. [151/120]", 3969284923], - [5493, 121, 16, "Layout/LineLength: Line is too long. [136/120]", 1893261414], - [5525, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 2133507320], - [5536, 121, 19, "Layout/LineLength: Line is too long. [139/120]", 2101353476], - [5540, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2087685705], - [5559, 121, 10, "Layout/LineLength: Line is too long. [130/120]", 2431380437], - [5565, 121, 5, "Layout/LineLength: Line is too long. [125/120]", 194583095], - [5571, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 435489438], - [5580, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 1520878209], - [5582, 121, 31, "Layout/LineLength: Line is too long. [151/120]", 2238995076], - [5586, 121, 16, "Layout/LineLength: Line is too long. [136/120]", 2789405913], - [5619, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5862609], - [5630, 121, 13, "Layout/LineLength: Line is too long. [133/120]", 3409328196], - [5653, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2087858069], - [5665, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 2811935086], - [5674, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 2102137893], - [5676, 121, 25, "Layout/LineLength: Line is too long. [145/120]", 1113346693], - [5680, 121, 10, "Layout/LineLength: Line is too long. [130/120]", 3227128786], - [5700, 121, 22, "Layout/LineLength: Line is too long. [142/120]", 48793812], - [5706, 121, 17, "Layout/LineLength: Line is too long. [137/120]", 338440584], - [5712, 121, 32, "Layout/LineLength: Line is too long. [152/120]", 735248703], - [5721, 121, 24, "Layout/LineLength: Line is too long. [144/120]", 927473097], - [5723, 121, 43, "Layout/LineLength: Line is too long. [163/120]", 1394536741], - [5727, 121, 18, "Layout/LineLength: Line is too long. [138/120]", 3134012967], - [5746, 121, 34, "Layout/LineLength: Line is too long. [154/120]", 2967615316], - [5752, 121, 29, "Layout/LineLength: Line is too long. [149/120]", 2810710931], - [5758, 121, 44, "Layout/LineLength: Line is too long. [164/120]", 2548594701], - [5761, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5860796], - [5763, 121, 5, "Layout/LineLength: Line is too long. [125/120]", 182097675], - [5767, 121, 36, "Layout/LineLength: Line is too long. [156/120]", 3549194295], - [5769, 121, 55, "Layout/LineLength: Line is too long. [175/120]", 1074004741], - [5773, 121, 30, "Layout/LineLength: Line is too long. [150/120]", 2874423564], - [5776, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2087576526], - [5778, 121, 5, "Layout/LineLength: Line is too long. [125/120]", 182097675], - [5793, 121, 30, "Layout/LineLength: Line is too long. [150/120]", 1696848307], - [5799, 121, 25, "Layout/LineLength: Line is too long. [145/120]", 2883501659], - [5805, 121, 40, "Layout/LineLength: Line is too long. [160/120]", 3056443076], - [5810, 121, 3, "Layout/LineLength: Line is too long. [123/120]", 193405204], - [5814, 121, 32, "Layout/LineLength: Line is too long. [152/120]", 1487412605], - [5816, 121, 51, "Layout/LineLength: Line is too long. [171/120]", 2021571284], - [5820, 121, 26, "Layout/LineLength: Line is too long. [146/120]", 1975782995], - [5823, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5860796], - [5825, 121, 3, "Layout/LineLength: Line is too long. [123/120]", 193405204], - [5830, 121, 5, "Layout/LineLength: Line is too long. [125/120]", 183236849], - [5839, 121, 42, "Layout/LineLength: Line is too long. [162/120]", 856018753], - [5842, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5862609], - [5845, 121, 37, "Layout/LineLength: Line is too long. [157/120]", 2146546324], - [5851, 121, 52, "Layout/LineLength: Line is too long. [172/120]", 3913983076], - [5854, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 3491931666], - [5856, 121, 9, "Layout/LineLength: Line is too long. [129/120]", 3536323546], - [5860, 121, 44, "Layout/LineLength: Line is too long. [164/120]", 356581191], - [5862, 121, 63, "Layout/LineLength: Line is too long. [183/120]", 4144657639], - [5866, 121, 38, "Layout/LineLength: Line is too long. [158/120]", 1478616653], - [5869, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 1774852021], - [5871, 121, 9, "Layout/LineLength: Line is too long. [129/120]", 3536323546], - [5886, 121, 22, "Layout/LineLength: Line is too long. [142/120]", 3884289787], - [5892, 121, 17, "Layout/LineLength: Line is too long. [137/120]", 1001503687], - [5898, 121, 32, "Layout/LineLength: Line is too long. [152/120]", 3673836976], - [5907, 121, 24, "Layout/LineLength: Line is too long. [144/120]", 3164908550], - [5909, 121, 43, "Layout/LineLength: Line is too long. [163/120]", 1134300778], - [5913, 121, 18, "Layout/LineLength: Line is too long. [138/120]", 1797165224], - [5932, 121, 34, "Layout/LineLength: Line is too long. [154/120]", 2508143995], - [5938, 121, 29, "Layout/LineLength: Line is too long. [149/120]", 3002532188], - [5944, 121, 44, "Layout/LineLength: Line is too long. [164/120]", 584857986], - [5947, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5860796], - [5949, 121, 5, "Layout/LineLength: Line is too long. [125/120]", 182097675], - [5953, 121, 36, "Layout/LineLength: Line is too long. [156/120]", 749691384], - [5955, 121, 55, "Layout/LineLength: Line is too long. [175/120]", 3389354954], - [5959, 121, 30, "Layout/LineLength: Line is too long. [150/120]", 3402045699], - [5962, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2087576526], - [5964, 121, 5, "Layout/LineLength: Line is too long. [125/120]", 182097675], - [5978, 121, 24, "Layout/LineLength: Line is too long. [144/120]", 2447716612], - [5984, 121, 19, "Layout/LineLength: Line is too long. [139/120]", 3201685099], - [5990, 121, 34, "Layout/LineLength: Line is too long. [154/120]", 3060990885], - [5999, 121, 26, "Layout/LineLength: Line is too long. [146/120]", 29396315], - [6001, 121, 45, "Layout/LineLength: Line is too long. [165/120]", 1228645365], - [6005, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 1436742837], - [6024, 121, 36, "Layout/LineLength: Line is too long. [156/120]", 716917214], - [6030, 121, 31, "Layout/LineLength: Line is too long. [151/120]", 2175814211], - [6036, 121, 46, "Layout/LineLength: Line is too long. [166/120]", 1473420390], - [6039, 121, 3, "Layout/LineLength: Line is too long. [123/120]", 193433391], - [6041, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1422839111], - [6045, 121, 38, "Layout/LineLength: Line is too long. [158/120]", 1571170198], - [6047, 121, 57, "Layout/LineLength: Line is too long. [177/120]", 2175059093], - [6051, 121, 32, "Layout/LineLength: Line is too long. [152/120]", 3886666417], - [6054, 121, 5, "Layout/LineLength: Line is too long. [125/120]", 176753677], - [6056, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1422839111], - [6072, 121, 38, "Layout/LineLength: Line is too long. [158/120]", 3471319495], - [6078, 121, 33, "Layout/LineLength: Line is too long. [153/120]", 1274038477], - [6084, 121, 48, "Layout/LineLength: Line is too long. [168/120]", 2896814693], - [6087, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2087576526], - [6089, 121, 7, "Layout/LineLength: Line is too long. [127/120]", 4114086530], - [6093, 121, 40, "Layout/LineLength: Line is too long. [160/120]", 250433828], - [6095, 121, 59, "Layout/LineLength: Line is too long. [179/120]", 3910556848], - [6099, 121, 34, "Layout/LineLength: Line is too long. [154/120]", 4002014976], - [6102, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 3491931666], - [6104, 121, 7, "Layout/LineLength: Line is too long. [127/120]", 4114086530], - [6198, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5861664], - [6212, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2087932582], - [6226, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5861664], - [6242, 121, 80, "Layout/LineLength: Line is too long. [200/120]", 876012844], - [6244, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1756764194], - [6245, 121, 21, "Layout/LineLength: Line is too long. [141/120]", 4173216735], - [6248, 121, 75, "Layout/LineLength: Line is too long. [195/120]", 911964425], - [6249, 121, 5, "Layout/LineLength: Line is too long. [125/120]", 173266907], - [6250, 121, 11, "Layout/LineLength: Line is too long. [131/120]", 1412705933], - [6253, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1756764194], - [6254, 121, 90, "Layout/LineLength: Line is too long. [210/120]", 2605683750], - [6257, 121, 25, "Layout/LineLength: Line is too long. [145/120]", 3182252139], - [6259, 121, 28, "Layout/LineLength: Line is too long. [148/120]", 1652557742], - [6263, 121, 82, "Layout/LineLength: Line is too long. [202/120]", 2240437058], - [6264, 121, 5, "Layout/LineLength: Line is too long. [125/120]", 173266907], - [6265, 121, 101, "Layout/LineLength: Line is too long. [221/120]", 3694598076], - [6267, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5861152], - [6268, 121, 5, "Layout/LineLength: Line is too long. [125/120]", 179079542], - [6269, 121, 76, "Layout/LineLength: Line is too long. [196/120]", 3528944411], - [6272, 121, 27, "Layout/LineLength: Line is too long. [147/120]", 3020159378], - [6274, 121, 28, "Layout/LineLength: Line is too long. [148/120]", 1652557742], - [6280, 121, 84, "Layout/LineLength: Line is too long. [204/120]", 420843234], - [6282, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 1401226501], - [6283, 121, 23, "Layout/LineLength: Line is too long. [143/120]", 442915368], - [6286, 121, 79, "Layout/LineLength: Line is too long. [199/120]", 4212444955], - [6287, 121, 7, "Layout/LineLength: Line is too long. [127/120]", 830053864], - [6288, 121, 13, "Layout/LineLength: Line is too long. [133/120]", 1373660924], - [6291, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 1401226501], - [6292, 121, 94, "Layout/LineLength: Line is too long. [214/120]", 1539225758], - [6295, 121, 27, "Layout/LineLength: Line is too long. [147/120]", 3020159378], - [6297, 121, 30, "Layout/LineLength: Line is too long. [150/120]", 4240691845], - [6301, 121, 86, "Layout/LineLength: Line is too long. [206/120]", 674553335], - [6302, 121, 7, "Layout/LineLength: Line is too long. [127/120]", 830053864], - [6303, 121, 105, "Layout/LineLength: Line is too long. [225/120]", 4163432287], - [6305, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2089555761], - [6306, 121, 7, "Layout/LineLength: Line is too long. [127/120]", 2034687276], - [6307, 121, 80, "Layout/LineLength: Line is too long. [200/120]", 3710905302], - [6310, 121, 29, "Layout/LineLength: Line is too long. [149/120]", 4204667212], - [6312, 121, 30, "Layout/LineLength: Line is too long. [150/120]", 4240691845], - [6318, 121, 76, "Layout/LineLength: Line is too long. [196/120]", 2071493433], - [6320, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2085352569], - [6321, 121, 19, "Layout/LineLength: Line is too long. [139/120]", 2853066942], - [6324, 121, 71, "Layout/LineLength: Line is too long. [191/120]", 2771467828], - [6325, 121, 3, "Layout/LineLength: Line is too long. [123/120]", 193425976], - [6326, 121, 9, "Layout/LineLength: Line is too long. [129/120]", 3025157142], - [6329, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2085352569], - [6330, 121, 86, "Layout/LineLength: Line is too long. [206/120]", 3340824101], - [6333, 121, 23, "Layout/LineLength: Line is too long. [143/120]", 3999804761], - [6335, 121, 26, "Layout/LineLength: Line is too long. [146/120]", 1999310973], - [6339, 121, 78, "Layout/LineLength: Line is too long. [198/120]", 835016333], - [6340, 121, 3, "Layout/LineLength: Line is too long. [123/120]", 193425976], - [6341, 121, 97, "Layout/LineLength: Line is too long. [217/120]", 3575893945], - [6344, 121, 3, "Layout/LineLength: Line is too long. [123/120]", 193405945], - [6345, 121, 72, "Layout/LineLength: Line is too long. [192/120]", 1755858308], - [6348, 121, 25, "Layout/LineLength: Line is too long. [145/120]", 3182252139], - [6350, 121, 26, "Layout/LineLength: Line is too long. [146/120]", 1999310973], - [6356, 121, 70, "Layout/LineLength: Line is too long. [190/120]", 3033080032], - [6358, 121, 1, "Layout/LineLength: Line is too long. [121/120]", 177549], - [6359, 121, 16, "Layout/LineLength: Line is too long. [136/120]", 2720985203], - [6362, 121, 65, "Layout/LineLength: Line is too long. [185/120]", 3233424320], - [6364, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1165873483], - [6367, 121, 1, "Layout/LineLength: Line is too long. [121/120]", 177549], - [6368, 121, 80, "Layout/LineLength: Line is too long. [200/120]", 131859703], - [6371, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 1943494546], - [6373, 121, 23, "Layout/LineLength: Line is too long. [143/120]", 4016166830], - [6377, 121, 72, "Layout/LineLength: Line is too long. [192/120]", 1350760977], - [6379, 121, 91, "Layout/LineLength: Line is too long. [211/120]", 4098706554], - [6383, 121, 66, "Layout/LineLength: Line is too long. [186/120]", 4059724765], - [6386, 121, 22, "Layout/LineLength: Line is too long. [142/120]", 1651955548], - [6388, 121, 23, "Layout/LineLength: Line is too long. [143/120]", 4016166830], - [6394, 121, 54, "Layout/LineLength: Line is too long. [174/120]", 1057495720], - [6397, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 1621971220], - [6400, 121, 49, "Layout/LineLength: Line is too long. [169/120]", 1585717593], - [6406, 121, 64, "Layout/LineLength: Line is too long. [184/120]", 2942094233], - [6409, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 2624667704], - [6411, 121, 15, "Layout/LineLength: Line is too long. [135/120]", 2317051977], - [6415, 121, 56, "Layout/LineLength: Line is too long. [176/120]", 1321610634], - [6417, 121, 75, "Layout/LineLength: Line is too long. [195/120]", 2854688831], - [6421, 121, 50, "Layout/LineLength: Line is too long. [170/120]", 4185465554], - [6424, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 1169781875], - [6426, 121, 15, "Layout/LineLength: Line is too long. [135/120]", 2317051977], - [6432, 121, 50, "Layout/LineLength: Line is too long. [170/120]", 1916545020], - [6435, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1422839111], - [6438, 121, 45, "Layout/LineLength: Line is too long. [165/120]", 910134593], - [6444, 121, 60, "Layout/LineLength: Line is too long. [180/120]", 203086561], - [6447, 121, 10, "Layout/LineLength: Line is too long. [130/120]", 2939363812], - [6449, 121, 13, "Layout/LineLength: Line is too long. [133/120]", 3155638331], - [6453, 121, 52, "Layout/LineLength: Line is too long. [172/120]", 1955758062], - [6455, 121, 71, "Layout/LineLength: Line is too long. [191/120]", 3737424359], - [6459, 121, 46, "Layout/LineLength: Line is too long. [166/120]", 3597620692], - [6462, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 2624667704], - [6464, 121, 13, "Layout/LineLength: Line is too long. [133/120]", 3155638331], - [6470, 121, 52, "Layout/LineLength: Line is too long. [172/120]", 1036052399], - [6473, 121, 7, "Layout/LineLength: Line is too long. [127/120]", 4114086530], - [6476, 121, 47, "Layout/LineLength: Line is too long. [167/120]", 1268266488], - [6482, 121, 62, "Layout/LineLength: Line is too long. [182/120]", 2791598354], - [6485, 121, 11, "Layout/LineLength: Line is too long. [131/120]", 1302589368], - [6487, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 3533902728], - [6491, 121, 54, "Layout/LineLength: Line is too long. [174/120]", 3942276897], - [6493, 121, 73, "Layout/LineLength: Line is too long. [193/120]", 1175941460], - [6497, 121, 48, "Layout/LineLength: Line is too long. [168/120]", 679697318], - [6500, 121, 13, "Layout/LineLength: Line is too long. [133/120]", 28126263], - [6502, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 3533902728], - [6503, 121, 5, "Layout/LineLength: Line is too long. [125/120]", 181895237], - [6508, 121, 52, "Layout/LineLength: Line is too long. [172/120]", 4057848448], - [6511, 121, 7, "Layout/LineLength: Line is too long. [127/120]", 4114086530], - [6514, 121, 47, "Layout/LineLength: Line is too long. [167/120]", 4067769399], - [6520, 121, 62, "Layout/LineLength: Line is too long. [182/120]", 461482909], - [6523, 121, 11, "Layout/LineLength: Line is too long. [131/120]", 1302589368], - [6525, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 3533902728], - [6529, 121, 54, "Layout/LineLength: Line is too long. [174/120]", 3561204590], - [6531, 121, 73, "Layout/LineLength: Line is too long. [193/120]", 880160795], - [6535, 121, 48, "Layout/LineLength: Line is too long. [168/120]", 1614719145], - [6538, 121, 13, "Layout/LineLength: Line is too long. [133/120]", 28126263], - [6540, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 3533902728], - [6541, 121, 5, "Layout/LineLength: Line is too long. [125/120]", 181895237], - [6588, 121, 3, "Layout/LineLength: Line is too long. [123/120]", 193432306], - [6602, 121, 64, "Layout/LineLength: Line is too long. [184/120]", 1645945966], - [6605, 121, 13, "Layout/LineLength: Line is too long. [133/120]", 3212740609], - [6608, 121, 59, "Layout/LineLength: Line is too long. [179/120]", 3982698123], - [6610, 121, 3, "Layout/LineLength: Line is too long. [123/120]", 193425997], - [6614, 121, 74, "Layout/LineLength: Line is too long. [194/120]", 2663750402], - [6617, 121, 17, "Layout/LineLength: Line is too long. [137/120]", 2420297272], - [6619, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 1164389943], - [6623, 121, 66, "Layout/LineLength: Line is too long. [186/120]", 3483121581], - [6625, 121, 85, "Layout/LineLength: Line is too long. [205/120]", 2271668600], - [6629, 121, 60, "Layout/LineLength: Line is too long. [180/120]", 804794365], - [6632, 121, 19, "Layout/LineLength: Line is too long. [139/120]", 3659367004], - [6634, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 1164389943], - [6635, 121, 11, "Layout/LineLength: Line is too long. [131/120]", 561395486], - [6640, 121, 64, "Layout/LineLength: Line is too long. [184/120]", 1251661057], - [6643, 121, 13, "Layout/LineLength: Line is too long. [133/120]", 3212740609], - [6646, 121, 59, "Layout/LineLength: Line is too long. [179/120]", 3210109508], - [6648, 121, 3, "Layout/LineLength: Line is too long. [123/120]", 193425997], - [6652, 121, 74, "Layout/LineLength: Line is too long. [194/120]", 430316685], - [6655, 121, 17, "Layout/LineLength: Line is too long. [137/120]", 2420297272], - [6657, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 1164389943], - [6661, 121, 66, "Layout/LineLength: Line is too long. [186/120]", 2428160226], - [6663, 121, 85, "Layout/LineLength: Line is too long. [205/120]", 2663295671], - [6667, 121, 60, "Layout/LineLength: Line is too long. [180/120]", 2822109938], - [6670, 121, 19, "Layout/LineLength: Line is too long. [139/120]", 3659367004], - [6672, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 1164389943], - [6673, 121, 11, "Layout/LineLength: Line is too long. [131/120]", 561395486], - [6678, 121, 62, "Layout/LineLength: Line is too long. [182/120]", 857639785], - [6681, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 3669622788], - [6684, 121, 57, "Layout/LineLength: Line is too long. [177/120]", 140453799], - [6686, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5860765], - [6690, 121, 72, "Layout/LineLength: Line is too long. [192/120]", 1650236431], - [6693, 121, 16, "Layout/LineLength: Line is too long. [136/120]", 150699323], - [6695, 121, 19, "Layout/LineLength: Line is too long. [139/120]", 50618962], - [6699, 121, 64, "Layout/LineLength: Line is too long. [184/120]", 4205571164], - [6701, 121, 83, "Layout/LineLength: Line is too long. [203/120]", 1549528021], - [6705, 121, 58, "Layout/LineLength: Line is too long. [178/120]", 1325488145], - [6708, 121, 18, "Layout/LineLength: Line is too long. [138/120]", 1510711065], - [6710, 121, 19, "Layout/LineLength: Line is too long. [139/120]", 50618962], - [6716, 121, 66, "Layout/LineLength: Line is too long. [186/120]", 3043205563], - [6719, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 2381137493], - [6722, 121, 61, "Layout/LineLength: Line is too long. [181/120]", 2200345195], - [6724, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2087926498], - [6728, 121, 76, "Layout/LineLength: Line is too long. [196/120]", 1082269527], - [6731, 121, 18, "Layout/LineLength: Line is too long. [138/120]", 1510711065], - [6733, 121, 21, "Layout/LineLength: Line is too long. [141/120]", 1104064739], - [6737, 121, 68, "Layout/LineLength: Line is too long. [188/120]", 1652941658], - [6739, 121, 87, "Layout/LineLength: Line is too long. [207/120]", 1440323819], - [6743, 121, 62, "Layout/LineLength: Line is too long. [182/120]", 802896260], - [6746, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 1943494546], - [6748, 121, 21, "Layout/LineLength: Line is too long. [141/120]", 1104064739], - [6754, 121, 82, "Layout/LineLength: Line is too long. [202/120]", 788730815], - [6756, 121, 7, "Layout/LineLength: Line is too long. [127/120]", 2034687276], - [6757, 121, 22, "Layout/LineLength: Line is too long. [142/120]", 4226330106], - [6760, 121, 77, "Layout/LineLength: Line is too long. [197/120]", 2414796320], - [6761, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1165873470], - [6762, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 3090817832], - [6765, 121, 7, "Layout/LineLength: Line is too long. [127/120]", 2034687276], - [6766, 121, 92, "Layout/LineLength: Line is too long. [212/120]", 2839148677], - [6769, 121, 26, "Layout/LineLength: Line is too long. [146/120]", 2393983240], - [6771, 121, 29, "Layout/LineLength: Line is too long. [149/120]", 2581936864], - [6775, 121, 84, "Layout/LineLength: Line is too long. [204/120]", 3923254945], - [6776, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1165873470], - [6777, 121, 103, "Layout/LineLength: Line is too long. [223/120]", 580639726], - [6779, 121, 3, "Layout/LineLength: Line is too long. [123/120]", 193419246], - [6780, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1756764194], - [6781, 121, 78, "Layout/LineLength: Line is too long. [198/120]", 3202758044], - [6784, 121, 28, "Layout/LineLength: Line is too long. [148/120]", 912651721], - [6786, 121, 29, "Layout/LineLength: Line is too long. [149/120]", 2581936864], - [6790, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1164293389], - [6803, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5860840], - [6804, 121, 88, "Layout/LineLength: Line is too long. [208/120]", 574552570], - [6806, 121, 10, "Layout/LineLength: Line is too long. [130/120]", 3845073641], - [6807, 121, 25, "Layout/LineLength: Line is too long. [145/120]", 543375177], - [6810, 121, 83, "Layout/LineLength: Line is too long. [203/120]", 222410330], - [6811, 121, 9, "Layout/LineLength: Line is too long. [129/120]", 3025157219], - [6812, 121, 15, "Layout/LineLength: Line is too long. [135/120]", 1904561434], - [6815, 121, 10, "Layout/LineLength: Line is too long. [130/120]", 489872984], - [6816, 121, 98, "Layout/LineLength: Line is too long. [218/120]", 97325617], - [6819, 121, 29, "Layout/LineLength: Line is too long. [149/120]", 4204667212], - [6821, 121, 32, "Layout/LineLength: Line is too long. [152/120]", 4062673070], - [6825, 121, 90, "Layout/LineLength: Line is too long. [210/120]", 1451915960], - [6826, 121, 9, "Layout/LineLength: Line is too long. [129/120]", 3025157219], - [6827, 121, 109, "Layout/LineLength: Line is too long. [229/120]", 4200529758], - [6829, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1497831350], - [6830, 121, 9, "Layout/LineLength: Line is too long. [129/120]", 4214367244], - [6831, 121, 84, "Layout/LineLength: Line is too long. [204/120]", 399603517], - [6834, 121, 31, "Layout/LineLength: Line is too long. [151/120]", 3423548875], - [6836, 121, 32, "Layout/LineLength: Line is too long. [152/120]", 4062673070], - [6840, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 3279830097], - [6852, 121, 10, "Layout/LineLength: Line is too long. [130/120]", 659167322], - [6864, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2087926423], - [6865, 121, 57, "Layout/LineLength: Line is too long. [177/120]", 3300294193], - [6867, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 3172850966], - [6868, 121, 27, "Layout/LineLength: Line is too long. [147/120]", 2396187736], - [6871, 121, 87, "Layout/LineLength: Line is too long. [207/120]", 1991888901], - [6872, 121, 11, "Layout/LineLength: Line is too long. [131/120]", 1954380402], - [6873, 121, 17, "Layout/LineLength: Line is too long. [137/120]", 2589970962], - [6876, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 42340644], - [6877, 121, 67, "Layout/LineLength: Line is too long. [187/120]", 479235996], - [6880, 121, 31, "Layout/LineLength: Line is too long. [151/120]", 3423548875], - [6882, 121, 34, "Layout/LineLength: Line is too long. [154/120]", 1462541970], - [6886, 121, 94, "Layout/LineLength: Line is too long. [214/120]", 1373978781], - [6887, 121, 11, "Layout/LineLength: Line is too long. [131/120]", 1954380402], - [6888, 121, 78, "Layout/LineLength: Line is too long. [198/120]", 280641011], - [6890, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 1664110553], - [6891, 121, 11, "Layout/LineLength: Line is too long. [131/120]", 1009650381], - [6892, 121, 88, "Layout/LineLength: Line is too long. [208/120]", 909329343], - [6895, 121, 33, "Layout/LineLength: Line is too long. [153/120]", 2977589831], - [6897, 121, 34, "Layout/LineLength: Line is too long. [154/120]", 1462541970], - [6902, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1165873470], - [6903, 121, 61, "Layout/LineLength: Line is too long. [181/120]", 1904101094], - [6905, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 2229256255], - [6906, 121, 29, "Layout/LineLength: Line is too long. [149/120]", 1839090017], - [6909, 121, 91, "Layout/LineLength: Line is too long. [211/120]", 4260980907], - [6910, 121, 13, "Layout/LineLength: Line is too long. [133/120]", 4253118453], - [6911, 121, 19, "Layout/LineLength: Line is too long. [139/120]", 1536690221], - [6913, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5861152], - [6914, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 209824656], - [6915, 121, 71, "Layout/LineLength: Line is too long. [191/120]", 1530496074], - [6918, 121, 33, "Layout/LineLength: Line is too long. [153/120]", 2977589831], - [6920, 121, 36, "Layout/LineLength: Line is too long. [156/120]", 3261436902], - [6924, 121, 98, "Layout/LineLength: Line is too long. [218/120]", 3762694917], - [6925, 121, 13, "Layout/LineLength: Line is too long. [133/120]", 4253118453], - [6926, 121, 82, "Layout/LineLength: Line is too long. [202/120]", 3196230010], - [6928, 121, 10, "Layout/LineLength: Line is too long. [130/120]", 3165598659], - [6929, 121, 13, "Layout/LineLength: Line is too long. [133/120]", 4264469493], - [6930, 121, 92, "Layout/LineLength: Line is too long. [212/120]", 3140690958], - [6933, 121, 35, "Layout/LineLength: Line is too long. [155/120]", 2999583208], - [6935, 121, 36, "Layout/LineLength: Line is too long. [156/120]", 3261436902], - [6941, 121, 54, "Layout/LineLength: Line is too long. [174/120]", 326070599], - [6944, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 1621971220], - [6947, 121, 49, "Layout/LineLength: Line is too long. [169/120]", 1689000214], - [6953, 121, 64, "Layout/LineLength: Line is too long. [184/120]", 2459904022], - [6956, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 2624667704], - [6958, 121, 15, "Layout/LineLength: Line is too long. [135/120]", 2317051977], - [6962, 121, 56, "Layout/LineLength: Line is too long. [176/120]", 2842872837], - [6964, 121, 75, "Layout/LineLength: Line is too long. [195/120]", 423884656], - [6968, 121, 50, "Layout/LineLength: Line is too long. [170/120]", 2673769885], - [6971, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 1169781875], - [6973, 121, 15, "Layout/LineLength: Line is too long. [135/120]", 2317051977], - [6974, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 2126253911], - [6990, 121, 66, "Layout/LineLength: Line is too long. [186/120]", 2388292564], - [6993, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 2381137493], - [6996, 121, 61, "Layout/LineLength: Line is too long. [181/120]", 1136762660], - [6998, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2087926498], - [7002, 121, 76, "Layout/LineLength: Line is too long. [196/120]", 2555581016], - [7005, 121, 18, "Layout/LineLength: Line is too long. [138/120]", 1510711065], - [7007, 121, 21, "Layout/LineLength: Line is too long. [141/120]", 1104064739], - [7011, 121, 68, "Layout/LineLength: Line is too long. [188/120]", 1986812885], - [7013, 121, 87, "Layout/LineLength: Line is too long. [207/120]", 1864036132], - [7017, 121, 62, "Layout/LineLength: Line is too long. [182/120]", 3590180043], - [7020, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 1943494546], - [7022, 121, 21, "Layout/LineLength: Line is too long. [141/120]", 1104064739], - [7023, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 2382712010], - [7033, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1791534645], - [7038, 121, 50, "Layout/LineLength: Line is too long. [170/120]", 2403815412], - [7041, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1422839111], - [7044, 121, 45, "Layout/LineLength: Line is too long. [165/120]", 4046048864], - [7050, 121, 60, "Layout/LineLength: Line is too long. [180/120]", 3472955113], - [7053, 121, 10, "Layout/LineLength: Line is too long. [130/120]", 2939363812], - [7055, 121, 13, "Layout/LineLength: Line is too long. [133/120]", 3155638331], - [7059, 121, 52, "Layout/LineLength: Line is too long. [172/120]", 3911469720], - [7061, 121, 71, "Layout/LineLength: Line is too long. [191/120]", 272433263], - [7065, 121, 46, "Layout/LineLength: Line is too long. [166/120]", 634420444], - [7068, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 2624667704], - [7070, 121, 13, "Layout/LineLength: Line is too long. [133/120]", 3155638331], - [7071, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2088324682], - [7084, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2087906711], - [7096, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 2135380894], - [7105, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 2102137893], - [7107, 121, 25, "Layout/LineLength: Line is too long. [145/120]", 4280757685], - [7111, 121, 10, "Layout/LineLength: Line is too long. [130/120]", 161599970], - [7145, 121, 7, "Layout/LineLength: Line is too long. [127/120]", 830053789], - [7180, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 2188407955], - [7191, 121, 19, "Layout/LineLength: Line is too long. [139/120]", 3692322233], - [7195, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2087557694], - [7218, 121, 10, "Layout/LineLength: Line is too long. [130/120]", 3197512522], - [7227, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5858840], - [7229, 121, 21, "Layout/LineLength: Line is too long. [141/120]", 85298067], - [7286, 121, 3, "Layout/LineLength: Line is too long. [123/120]", 193418403], - [7292, 121, 3, "Layout/LineLength: Line is too long. [123/120]", 193418403], - [7315, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2087432474], - [7327, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 2361949763], - [7336, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 2102137893], - [7338, 121, 25, "Layout/LineLength: Line is too long. [145/120]", 581045160], - [7342, 121, 10, "Layout/LineLength: Line is too long. [130/120]", 4235011647], - [7361, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1898147766], - [7367, 121, 1, "Layout/LineLength: Line is too long. [121/120]", 177560], - [7373, 121, 16, "Layout/LineLength: Line is too long. [136/120]", 1310140439], - [7382, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 681770239], - [7384, 121, 27, "Layout/LineLength: Line is too long. [147/120]", 3821940657], - [7388, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5862609], - [7408, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5861292], - [7420, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 2354124424], - [7429, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2087922021], - [7431, 121, 23, "Layout/LineLength: Line is too long. [143/120]", 3921370162], - [8024, 121, 24, "Layout/LineLength: Line is too long. [144/120]", 4083054536], - [8052, 121, 24, "Layout/LineLength: Line is too long. [144/120]", 4083054536], - [8081, 121, 24, "Layout/LineLength: Line is too long. [144/120]", 4083054536], - [8139, 121, 42, "Layout/LineLength: Line is too long. [162/120]", 632953222], - [8168, 121, 34, "Layout/LineLength: Line is too long. [154/120]", 732995265], - [8218, 121, 30, "Layout/LineLength: Line is too long. [150/120]", 1886249927], - [8380, 121, 7, "Layout/LineLength: Line is too long. [127/120]", 578751979], - [8381, 121, 11, "Layout/LineLength: Line is too long. [131/120]", 3803540269], - [8390, 121, 17, "Layout/LineLength: Line is too long. [137/120]", 2238403955], - [8391, 121, 25, "Layout/LineLength: Line is too long. [145/120]", 1028441932], - [8392, 121, 29, "Layout/LineLength: Line is too long. [149/120]", 1975950909], - [8447, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1244043798] - ], - "spec/integration/freeze_node_edge_cases_spec.rb:3416491031": [ - [6, 1, 28959, "Metrics/BlockLength: Block has too many lines. [663/25]", 3473768018], - [7, 3, 2985, "Metrics/BlockLength: Block has too many lines. [57/25]", 436154415], - [8, 5, 2934, "Metrics/BlockLength: Block has too many lines. [55/25]", 1963918102], - [78, 3, 6091, "Metrics/BlockLength: Block has too many lines. [136/25]", 232153494], - [98, 5, 3053, "Metrics/BlockLength: Block has too many lines. [69/25]", 1442974101], - [202, 5, 1691, "Metrics/BlockLength: Block has too many lines. [29/25]", 985654389], - [241, 3, 8515, "Metrics/BlockLength: Block has too many lines. [176/25]", 2776676526], - [473, 3, 2024, "Metrics/BlockLength: Block has too many lines. [55/25]", 1048101963], - [474, 5, 890, "Metrics/BlockLength: Block has too many lines. [26/25]", 753961540], - [543, 3, 4511, "Metrics/BlockLength: Block has too many lines. [116/25]", 1227615145], - [693, 3, 1660, "Metrics/BlockLength: Block has too many lines. [43/25]", 1881888061], - [694, 5, 1107, "Metrics/BlockLength: Block has too many lines. [26/25]", 368095693] - ], - "spec/integration/gem_family_section_merge_spec.rb:1744383089": [ - [164, 121, 27, "Layout/LineLength: Line is too long. [147/120]", 93655697] - ], - "spec/integration/integration_spec.rb:2239247043": [ - [14, 1, 4488, "Metrics/BlockLength: Block has too many lines. [88/25]", 206207480], - [15, 3, 3267, "Metrics/BlockLength: Block has too many lines. [62/25]", 1323899085], - [40, 5, 2263, "Metrics/BlockLength: Block has too many lines. [48/25]", 3172595581] - ], - "spec/integration/link_reference_preservation_spec.rb:3764298162": [ - [6, 1, 2646, "Metrics/BlockLength: Block has too many lines. [48/25]", 3396410609], - [19, 3, 2058, "Metrics/BlockLength: Block has too many lines. [33/25]", 163363949] - ], - "spec/integration/markly_merge_spec.rb:3076950975": [ - [3, 1, 22886, "Metrics/BlockLength: Block has too many lines. [670/25]", 1408138744], - [62, 3, 7192, "Metrics/BlockLength: Block has too many lines. [189/25]", 1890889324], - [63, 5, 1678, "Metrics/BlockLength: Block has too many lines. [41/25]", 2587582896], - [115, 5, 1808, "Metrics/BlockLength: Block has too many lines. [48/25]", 3381172795], - [147, 46, 21, "Style/StringConcatenation: Prefer string interpolation to string concatenation.", 451071547], - [171, 5, 1134, "Metrics/BlockLength: Block has too many lines. [30/25]", 2526618199], - [220, 5, 1335, "Metrics/BlockLength: Block has too many lines. [32/25]", 2790596215], - [311, 3, 2008, "Metrics/BlockLength: Block has too many lines. [66/25]", 2640155627], - [394, 3, 1052, "Metrics/BlockLength: Block has too many lines. [27/25]", 3988836255], - [440, 3, 2950, "Metrics/BlockLength: Block has too many lines. [89/25]", 961031348], - [441, 5, 1352, "Metrics/BlockLength: Block has too many lines. [37/25]", 1952365669], - [495, 5, 1550, "Metrics/BlockLength: Block has too many lines. [48/25]", 2400197001], - [561, 3, 1665, "Metrics/BlockLength: Block has too many lines. [52/25]", 3884776329], - [650, 3, 1919, "Metrics/BlockLength: Block has too many lines. [57/25]", 2594646583], - [725, 3, 1644, "Metrics/BlockLength: Block has too many lines. [45/25]", 2348710811], - [791, 3, 1600, "Metrics/BlockLength: Block has too many lines. [46/25]", 3683503747] - ], - "spec/integration/partial_template_merger_table_merge_spec.rb:3504046892": [ - [7, 1, 7402, "Metrics/BlockLength: Block has too many lines. [164/25]", 3368892126], - [9, 3, 2986, "Metrics/BlockLength: Block has too many lines. [67/25]", 2267114449], - [65, 5, 1359, "Metrics/BlockLength: Block has too many lines. [28/25]", 3145143002], - [102, 3, 997, "Metrics/BlockLength: Block has too many lines. [26/25]", 3156068215], - [147, 3, 3009, "Metrics/BlockLength: Block has too many lines. [65/25]", 994160212], - [202, 5, 1401, "Metrics/BlockLength: Block has too many lines. [28/25]", 3038951618] - ], - "spec/integration/table_formatting_preservation_spec.rb:3943985446": [ - [6, 1, 3086, "Metrics/BlockLength: Block has too many lines. [56/25]", 2210897849], - [19, 3, 2374, "Metrics/BlockLength: Block has too many lines. [40/25]", 668961519], - [33, 5, 1847, "Metrics/BlockLength: Block has too many lines. [28/25]", 3433318963] - ], - "spec/integration/text_merge_spec.rb:884566200": [ - [6, 1, 7747, "Metrics/BlockLength: Block has too many lines. [204/25]", 2372984305], - [60, 3, 1113, "Metrics/BlockLength: Block has too many lines. [34/25]", 3399970957], - [67, 5, 860, "Metrics/BlockLength: Block has too many lines. [27/25]", 2337191560], - [103, 3, 916, "Metrics/BlockLength: Block has too many lines. [28/25]", 4082963348], - [149, 3, 3001, "Metrics/BlockLength: Block has too many lines. [74/25]", 7776854] - ], - "spec/support/fictive_language_harness.rb:1770581700": [ - [85, 7, 733, "Metrics/AbcSize: Assignment Branch Condition size for `extract_comments` is too high. [<5, 16, 5> 17.49/17]", 1127096515], - [85, 7, 733, "Metrics/MethodLength: Method has too many lines. [22/10]", 1127096515], - [117, 21, 129, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 681912759], - [182, 7, 1084, "Metrics/AbcSize: Assignment Branch Condition size for `parse_statements` is too high. [<9, 28, 7> 30.23/17]", 3123785685], - [182, 7, 1084, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `parse_statements` is too high. [8/7]", 3123785685], - [182, 7, 1084, "Metrics/MethodLength: Method has too many lines. [24/10]", 3123785685], - [233, 5, 9879, "Metrics/ClassLength: Class has too many lines. [228/100]", 3231256134], - [236, 21, 208, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 2970487173], - [257, 7, 1981, "Metrics/AbcSize: Assignment Branch Condition size for `resolve_batch` is too high. [<16, 32, 4> 36/17]", 4125392918], - [257, 7, 1981, "Metrics/MethodLength: Method has too many lines. [42/10]", 4125392918], - [342, 7, 778, "Metrics/MethodLength: Method has too many lines. [18/10]", 4189873983], - [364, 7, 844, "Metrics/MethodLength: Method has too many lines. [19/10]", 526186683], - [449, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2087956942], - [464, 7, 1065, "Metrics/AbcSize: Assignment Branch Condition size for `collapse_template_preamble_prefix_region` is too high. [<6, 24, 11> 27.07/17]", 2332280467], - [464, 7, 1065, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `collapse_template_preamble_prefix_region` is too high. [10/7]", 2332280467], - [464, 7, 1065, "Metrics/MethodLength: Method has too many lines. [20/10]", 2332280467], - [464, 7, 1065, "Metrics/PerceivedComplexity: Perceived complexity for `collapse_template_preamble_prefix_region` is too high. [10/8]", 2332280467] - ], - "spec/support/testable_node.rb:1110514732": [ - [10, 7, 573, "Metrics/MethodLength: Method has too many lines. [12/10]", 798847435], - [10, 22, 226, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [10/5]", 2319398994], - [40, 7, 642, "Metrics/AbcSize: Assignment Branch Condition size for `initialize` is too high. [<11, 14, 6> 18.79/17]", 2249578474], - [40, 21, 131, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [10/5]", 1786967686] - ] -} diff --git a/gems/ast-merge/.simplecov b/gems/ast-merge/.simplecov index 20dd86e49..a53a73661 100644 --- a/gems/ast-merge/.simplecov +++ b/gems/ast-merge/.simplecov @@ -4,15 +4,11 @@ # ast-merge will then preserve content between those markers across template runs. # kettle-jem:unfreeze -require 'kettle/soup/cover/config' - # Minimum coverage thresholds are set by kettle-soup-cover. # They are controlled by ENV variables loaded by `mise` from `mise.toml` # (with optional machine-local overrides in `.env.local`). # If the values for minimum coverage need to change, they should be changed both there, # and in 2 places in .github/workflows/coverage.yml. -SimpleCov.start do - track_files 'lib/**/*.rb' - track_files 'lib/**/*.rake' - track_files 'exe/*.rb' +SimpleCov.configure do + cover "lib/**/*.rb", "lib/**/*.rake", "exe/*.rb" end diff --git a/gems/ast-merge/Gemfile.lock b/gems/ast-merge/Gemfile.lock index a41b6adc3..daf8d7e3a 100644 --- a/gems/ast-merge/Gemfile.lock +++ b/gems/ast-merge/Gemfile.lock @@ -7,233 +7,6 @@ PATH tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly - specs: - ast-crispr-markdown-markly (7.1.0) - ast-crispr (= 7.1.0) - markly-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism - specs: - ast-crispr-ruby-prism (7.1.0) - ast-crispr (= 7.1.0) - prism-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr - specs: - ast-crispr (7.1.0) - ast-merge (= 7.1.0) - service_actor (~> 3.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git - specs: - ast-merge-git (7.1.0) - ast-merge (= 7.1.0) - json-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template - specs: - ast-template (7.1.0) - ast-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge - specs: - bash-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge - specs: - binary-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge - specs: - citrus-toml-merge (7.1.0) - toml-merge (= 7.1.0) - toml-rb (~> 4.1) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge - specs: - commonmarker-merge (7.1.0) - commonmarker (~> 2.2) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge - specs: - dotenv-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge - specs: - go-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge - specs: - json-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem - specs: - kettle-jem (7.1.0) - addressable (>= 2.8, < 3) - ast-crispr-markdown-markly (= 7.1.0) - ast-crispr-ruby-prism (= 7.1.0) - ast-merge (= 7.1.0) - bash-merge (= 7.1.0) - citrus-toml-merge (= 7.1.0) - commonmarker-merge (= 7.1.0) - dotenv-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-dev (~> 2.3, >= 2.3.5) - kettle-rb (~> 0.1, >= 0.1.4) - kramdown-merge (= 7.1.0) - markdown-merge (= 7.1.0) - markly-merge (= 7.1.0) - prism-merge (= 7.1.0) - psych-merge (= 7.1.0) - rbs (>= 3.10) - rbs-merge (= 7.1.0) - ruby-merge (= 7.1.0) - token-resolver (~> 2.0, >= 2.0.4) - toml-merge (= 7.1.0) - toml-rb (~> 4.2) - tree_haver (= 7.1.0) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge - specs: - kramdown-merge (7.1.0) - kramdown (~> 2.5) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge - specs: - markdown-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge - specs: - markly-merge (7.1.0) - markdown-merge (= 7.1.0) - markly (~> 0.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge - specs: - parslet-toml-merge (7.1.0) - toml (~> 0.3) - toml-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge - specs: - plain-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge - specs: - prism-merge (7.1.0) - prism (~> 1.6) - ruby-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge - specs: - psych-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge - specs: - rbs-merge (7.1.0) - ast-merge (= 7.1.0) - rbs (>= 3.10) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge - specs: - ruby-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge - specs: - rust-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb - specs: - smorg-rb (7.1.0) - ast-merge (= 7.1.0) - ast-merge-git (= 7.1.0) - diff-lcs (~> 1.5) - go-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-jem (= 7.1.0) - markly-merge (= 7.1.0) - plain-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge - specs: - toml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - PATH remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver specs: @@ -243,29 +16,6 @@ PATH tree_sitter_language_pack (>= 1.13.2, < 2.0) version_gem (~> 1.1, >= 1.1.9) -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge - specs: - typescript-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge - specs: - yaml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge - specs: - zip-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - GEM remote: https://gem.coop/ specs: @@ -290,7 +40,6 @@ GEM cgi (0.5.2) citrus (3.0.2) cmdparse (3.0.7) - commonmarker (2.9.0-x86_64-linux) concurrent-ruby (1.3.8) date (3.5.1) debug (1.11.1) @@ -353,8 +102,6 @@ GEM kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) - kettle-drift (1.0.6) - version_gem (~> 1.1, >= 1.1.14) kettle-rb (0.1.5) kettle-soup-cover (3.0.4) kettle-wash (~> 0.1, >= 0.1.0) @@ -383,7 +130,6 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) - markly (0.16.0) mutex_m (0.3.0) nokogiri (1.19.4-aarch64-linux-gnu) racc (~> 1.4) @@ -546,8 +292,6 @@ GEM ruby-progressbar (1.13.0) ruby_engine (2.0.3) ruby_version (1.0.3) - service_actor (3.9.4) - zeitwerk (>= 1.0) silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) @@ -602,11 +346,6 @@ GEM token-resolver (2.0.5) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.14) - toml (0.3.0) - parslet (>= 1.8.0, < 3.0.0) - toml-rb (4.2.0) - citrus (~> 3.0, > 3.0) - racc (~> 1.7) tree_sitter_language_pack (1.13.3-aarch64-linux) sorbet-runtime (~> 0.5) tree_sitter_language_pack (1.13.3-arm64-darwin) @@ -661,45 +400,23 @@ DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) appraisal2-rubocop (~> 1.0, >= 1.0.0) - ast-crispr! - ast-crispr-markdown-markly! - ast-crispr-ruby-prism! ast-merge! - ast-merge-git! - ast-template! - bash-merge! - binary-merge! bundler-audit (~> 0.9.3) cgi (~> 0.5) - citrus-toml-merge! - commonmarker-merge! debug (>= 1.1) - dotenv-merge! erb (~> 6.0, >= 6.0.6) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.0) - go-merge! irb (~> 1.17) - json-merge! kettle-dev (~> 2.0, >= 2.2.25) - kettle-drift (~> 1.0, >= 1.0.6) - kettle-jem! kettle-soup-cover (~> 3.0, >= 3.0.3) kettle-test (~> 2.0, >= 2.0.9) kramdown (~> 2.5, >= 2.5.2) - kramdown-merge! kramdown-parser-gfm (~> 1.1) - markdown-merge! - markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) - parslet-toml-merge! - plain-merge! - prism-merge! - psych-merge! rake (~> 13.0) rbs (>= 3.0) - rbs-merge! rdoc (~> 6.11) reek (~> 6.5, >= 6.5.0) require_bench (~> 1.0, >= 1.0.4) @@ -710,27 +427,20 @@ DEPENDENCIES rubocop-on-rbs (~> 2.0, >= 2.0.0) rubocop-packaging (~> 0.6, >= 0.6.0) rubocop-ruby3_2 (~> 3.0, >= 3.0.6) - ruby-merge! ruby-progressbar (~> 1.13) - rust-merge! - smorg-rb! standard (~> 1.56, >= 1.56.0) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) - toml-merge! tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) - typescript-merge! webrick (~> 1.9) yaml-converter (~> 0.2, >= 0.2.3) - yaml-merge! yard (~> 0.9, >= 0.9.45) yard-fence (~> 0.9, >= 0.9.6) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) yard-timekeeper (~> 0.2, >= 0.2.4) yard-yaml (~> 0.2, >= 0.2.3) - zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af @@ -738,31 +448,20 @@ CHECKSUMS appraisal2 (3.2.0) sha256=ccd0b767ac4060cd7af6d16747459b6990f49c39c7b4fb1f7d1146b1e97c492f appraisal2-rubocop (1.0.0) sha256=b71410fbb014befda5340605a605b7f6f3f012739baf0acc5b4351b592c3258d ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 - ast-crispr (7.1.0) - ast-crispr-markdown-markly (7.1.0) - ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) - ast-merge-git (7.1.0) - ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 - bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd - binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 - citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 - commonmarker (2.9.0-x86_64-linux) - commonmarker-merge (7.1.0) concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 - dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -775,28 +474,20 @@ CHECKSUMS gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f - go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 - json-merge (7.1.0) kettle-dev (2.3.8) sha256=9d716ff21c660a730cb4e8d41e2e2f0630a28167a354b6e2924e242102aef72c - kettle-drift (1.0.6) - kettle-jem (7.1.0) kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f kettle-soup-cover (3.0.4) kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa - kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 - markdown-merge (7.1.0) - markly (0.16.0) - markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-aarch64-linux-gnu) sha256=1269fb644a6de405057a53dd5c762b1209b43ca7424f839454d3dbc677c31a8f nokogiri (1.19.4-aarch64-linux-musl) sha256=35c65b9ce72b3bb03207bdbe7067915019dc18c1b9b59139684bd6690fdd01af @@ -810,20 +501,15 @@ CHECKSUMS parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 - parslet-toml-merge (7.1.0) - plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 - prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 - psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 - rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb @@ -858,19 +544,15 @@ CHECKSUMS rubocop-rspec_rails (2.32.0) sha256=4a0d641c72f6ebb957534f539d9d0a62c47abd8ce0d0aeee1ef4701e892a9100 rubocop-ruby3_2 (3.0.7) sha256=f53dd6d286fb05186214fc6ec116783e7f837030918e8931c05de773e98f8466 rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 - ruby-merge (7.1.0) ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 - rust-merge (7.1.0) - service_actor (3.9.4) silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed - smorg-rb (7.1.0) sorbet-runtime (0.6.13351) sha256=f8fee17c6e3edf835dc6823d26afb9a7c8969c6710d1fabe2fb43f4e0c15c64f standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b @@ -885,22 +567,17 @@ CHECKSUMS timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.5) sha256=b852f924287ffb58a440856e862b056c8ad97e74b4b2526cee43e0771f40c25c - toml (0.3.0) - toml-merge (7.1.0) - toml-rb (4.2.0) tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-aarch64-linux) sha256=55ffc7c87868cb45658338363d9eba51b4a8b0259aa88e4de368d2bd1d52fea4 tree_sitter_language_pack (1.13.3-arm64-darwin) sha256=bc2498db605f212a1dbd2465ed3f65190d7da786f6ed5d30fcf958121aeb4a5c tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 - typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 webrick (1.9.2) sha256=beb4a15fc474defed24a3bda4ffd88a490d517c9e4e6118c3edce59e45864131 yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 - yaml-merge (7.1.0) yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd @@ -908,7 +585,6 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 - zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH diff --git a/gems/ast-merge/bin/yard b/gems/ast-merge/bin/yard index 5d516ad6f..a7e8b6eed 100755 --- a/gems/ast-merge/bin/yard +++ b/gems/ast-merge/bin/yard @@ -12,4 +12,4 @@ # `yard` / `bin/yard`. Keep this binstub as a handoff to the task so # humans and tools that reach for `bin/yard` still run the full docs # workflow with post-processing hooks. -exec('bundle', 'exec', 'rake', 'yard') +exec("bundle", "exec", "rake", "yard") diff --git a/gems/ast-merge/gemfiles/modular/cgi/r4/v0.5.gemfile b/gems/ast-merge/gemfiles/modular/cgi/r4/v0.5.gemfile index 17ad97260..19ed967c3 100644 --- a/gems/ast-merge/gemfiles/modular/cgi/r4/v0.5.gemfile +++ b/gems/ast-merge/gemfiles/modular/cgi/r4/v0.5.gemfile @@ -1 +1 @@ -gem 'cgi', '~> 0.5' +gem "cgi", "~> 0.5" diff --git a/gems/ast-merge/gemfiles/modular/cgi/vHEAD.gemfile b/gems/ast-merge/gemfiles/modular/cgi/vHEAD.gemfile index 650fbf033..ef8b816ce 100644 --- a/gems/ast-merge/gemfiles/modular/cgi/vHEAD.gemfile +++ b/gems/ast-merge/gemfiles/modular/cgi/vHEAD.gemfile @@ -1 +1 @@ -gem 'cgi', '>= 0.5' +gem "cgi", ">= 0.5" diff --git a/gems/ast-merge/gemfiles/modular/coverage.gemfile b/gems/ast-merge/gemfiles/modular/coverage.gemfile index b93014b6b..52d737872 100644 --- a/gems/ast-merge/gemfiles/modular/coverage.gemfile +++ b/gems/ast-merge/gemfiles/modular/coverage.gemfile @@ -4,11 +4,11 @@ # Set KETTLE_DEV_DEV=true for local development with path-based dependencies. # When false (default / CI), remote released gems are used. -if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? +if ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false").zero? # Coverage (remote/released) platform :mri do - gem 'kettle-soup-cover', '~> 3.0', '>= 3.0.3', require: false + gem "kettle-soup-cover", "~> 3.0", ">= 3.0.3", require: false end else - eval_gemfile 'coverage_local.gemfile' + eval_gemfile "coverage_local.gemfile" end diff --git a/gems/ast-merge/gemfiles/modular/coverage_local.gemfile b/gems/ast-merge/gemfiles/modular/coverage_local.gemfile index f556973ee..c950b8d78 100644 --- a/gems/ast-merge/gemfiles/modular/coverage_local.gemfile +++ b/gems/ast-merge/gemfiles/modular/coverage_local.gemfile @@ -11,19 +11,21 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] -nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) +nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] +nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == "nomono" } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + if nomono_locked + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] + end end -Kernel.send(:gem, 'nomono', *nomono_activation_requirements) -require 'nomono/bundler' +Kernel.send(:gem, "nomono", *nomono_activation_requirements) +require "nomono/bundler" local_gems = %w[kettle-dev kettle-test kettle-soup-cover kettle-drift] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) @@ -33,21 +35,21 @@ local_gems_to_eval = local_gems - %w[ast-merge] - declared_gems platform :mri do eval_nomono_gems( gems: local_gems_to_eval, - prefix: 'KETTLE_DEV', - path_env: 'KETTLE_DEV_DEV', - vendored_gems_env: 'VENDORED_GEMS', - vendor_gem_dir_env: 'VENDOR_GEM_DIR', - debug_env: 'KETTLE_DEV_DEBUG' + prefix: "KETTLE_DEV", + path_env: "KETTLE_DEV_DEV", + vendored_gems_env: "VENDORED_GEMS", + vendor_gem_dir_env: "VENDOR_GEM_DIR", + debug_env: "KETTLE_DEV_DEBUG" ) - if ENV.fetch('GALTZO_FLOSS_DEV', 'false').casecmp('false') != 0 + if ENV.fetch("GALTZO_FLOSS_DEV", "false").casecmp("false") != 0 eval_nomono_gems( gems: %w[turbo_tests2], - prefix: 'GALTZO_FLOSS', - path_env: 'GALTZO_FLOSS_DEV', - vendored_gems_env: 'GALTZO_FLOSS_VENDORED_GEMS', - vendor_gem_dir_env: 'GALTZO_FLOSS_VENDOR_GEM_DIR', - debug_env: 'GALTZO_FLOSS_DEBUG' + prefix: "GALTZO_FLOSS", + path_env: "GALTZO_FLOSS_DEV", + vendored_gems_env: "GALTZO_FLOSS_VENDORED_GEMS", + vendor_gem_dir_env: "GALTZO_FLOSS_VENDOR_GEM_DIR", + debug_env: "GALTZO_FLOSS_DEBUG" ) end end diff --git a/gems/ast-merge/gemfiles/modular/debug.gemfile b/gems/ast-merge/gemfiles/modular/debug.gemfile index eed8d4d1e..4e15b1a3a 100644 --- a/gems/ast-merge/gemfiles/modular/debug.gemfile +++ b/gems/ast-merge/gemfiles/modular/debug.gemfile @@ -13,10 +13,10 @@ platform :mri do # Debugging - Ensure ENV["DEBUG"] == "true" to use debuggers within spec suite # Use binding.break, binding.b, or debugger in code - gem 'debug', '>= 1.1' # ruby >= 2.7 + gem "debug", ">= 1.1" # ruby >= 2.7 # Dev Console - Binding.pry - Irb replacement # gem "pry", "~> 0.14" # ruby >= 2.0 end -gem 'gem_bench', '~> 2.0', '>= 2.0.5' +gem "gem_bench", "~> 2.0", ">= 2.0.5" diff --git a/gems/ast-merge/gemfiles/modular/documentation.gemfile b/gems/ast-merge/gemfiles/modular/documentation.gemfile index 9d4535f12..d8215416e 100644 --- a/gems/ast-merge/gemfiles/modular/documentation.gemfile +++ b/gems/ast-merge/gemfiles/modular/documentation.gemfile @@ -7,20 +7,20 @@ # # Documentation -gem 'kramdown', '~> 2.5', '>= 2.5.2', require: false # Ruby >= 2.5 -gem 'kramdown-parser-gfm', '~> 1.1', require: false # Ruby >= 2.3 -gem 'yaml-converter', '~> 0.2', '>= 0.2.3', require: false # Ruby >= 3.2 -gem 'yard', '~> 0.9', '>= 0.9.45', require: false -gem 'yard-junk', '~> 0.1', '>= 0.1.0', require: false # Ruby >= 3.1 -gem 'yard-relative_markdown_links', '~> 0.6', require: false +gem "kramdown", "~> 2.5", ">= 2.5.2", require: false # Ruby >= 2.5 +gem "kramdown-parser-gfm", "~> 1.1", require: false # Ruby >= 2.3 +gem "yaml-converter", "~> 0.2", ">= 0.2.3", require: false # Ruby >= 3.2 +gem "yard", "~> 0.9", ">= 0.9.45", require: false +gem "yard-junk", "~> 0.1", ">= 0.1.0", require: false # Ruby >= 3.1 +gem "yard-relative_markdown_links", "~> 0.6", require: false -if ENV.fetch('GALTZO_FLOSS_DEV', 'false').casecmp('false').zero? - gem 'yard-fence', '~> 0.9', '>= 0.9.6', require: false # Ruby >= 3.2 - gem 'yard-timekeeper', '~> 0.2', '>= 0.2.4', require: false - gem 'yard-yaml', '~> 0.2', '>= 0.2.3', require: false +if ENV.fetch("GALTZO_FLOSS_DEV", "false").casecmp("false").zero? + gem "yard-fence", "~> 0.9", ">= 0.9.6", require: false # Ruby >= 3.2 + gem "yard-timekeeper", "~> 0.2", ">= 0.2.4", require: false + gem "yard-yaml", "~> 0.2", ">= 0.2.3", require: false else - eval_gemfile 'documentation_local.gemfile' + eval_gemfile "documentation_local.gemfile" end # Std Lib extractions -gem 'rdoc', '~> 6.11', require: false unless ENV.fetch('KJ_FRAMEWORK_MATRIX_GEM', '') == 'rdoc' +gem "rdoc", "~> 6.11", require: false unless ENV.fetch("KJ_FRAMEWORK_MATRIX_GEM", "") == "rdoc" diff --git a/gems/ast-merge/gemfiles/modular/documentation_local.gemfile b/gems/ast-merge/gemfiles/modular/documentation_local.gemfile index 3c1453057..b1bc573f7 100644 --- a/gems/ast-merge/gemfiles/modular/documentation_local.gemfile +++ b/gems/ast-merge/gemfiles/modular/documentation_local.gemfile @@ -11,19 +11,21 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] -nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) +nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] +nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == "nomono" } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + if nomono_locked + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] + end end -Kernel.send(:gem, 'nomono', *nomono_activation_requirements) -require 'nomono/bundler' +Kernel.send(:gem, "nomono", *nomono_activation_requirements) +require "nomono/bundler" local_gems = %w[yard-fence yard-timekeeper yard-yaml] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) @@ -32,9 +34,9 @@ local_gems_to_eval = local_gems - %w[ast-merge] - declared_gems # export GALTZO_FLOSS_DEV=/path/to/galtzo-floss eval_nomono_gems( gems: local_gems_to_eval, - prefix: 'GALTZO_FLOSS', - path_env: 'GALTZO_FLOSS_DEV', - vendored_gems_env: 'GALTZO_FLOSS_VENDORED_GEMS', - vendor_gem_dir_env: 'GALTZO_FLOSS_VENDOR_GEM_DIR', - debug_env: 'GALTZO_FLOSS_DEBUG' + prefix: "GALTZO_FLOSS", + path_env: "GALTZO_FLOSS_DEV", + vendored_gems_env: "GALTZO_FLOSS_VENDORED_GEMS", + vendor_gem_dir_env: "GALTZO_FLOSS_VENDOR_GEM_DIR", + debug_env: "GALTZO_FLOSS_DEBUG" ) diff --git a/gems/ast-merge/gemfiles/modular/erb/r2/v3.0.gemfile b/gems/ast-merge/gemfiles/modular/erb/r2/v3.0.gemfile index 7c83a239b..c03bd8d85 100644 --- a/gems/ast-merge/gemfiles/modular/erb/r2/v3.0.gemfile +++ b/gems/ast-merge/gemfiles/modular/erb/r2/v3.0.gemfile @@ -1 +1 @@ -gem 'erb', '~> 3.0' # ruby >= 2.7.0 +gem "erb", "~> 3.0" # ruby >= 2.7.0 diff --git a/gems/ast-merge/gemfiles/modular/erb/r3/v5.0.gemfile b/gems/ast-merge/gemfiles/modular/erb/r3/v5.0.gemfile index ec7ff451f..1bd029cc1 100644 --- a/gems/ast-merge/gemfiles/modular/erb/r3/v5.0.gemfile +++ b/gems/ast-merge/gemfiles/modular/erb/r3/v5.0.gemfile @@ -1 +1 @@ -gem 'erb', '~> 6.0', '>= 6.0.6' # ruby >= 3.2.0 +gem "erb", "~> 6.0", ">= 6.0.6" # ruby >= 3.2.0 diff --git a/gems/ast-merge/gemfiles/modular/erb/r4/v5.0.gemfile b/gems/ast-merge/gemfiles/modular/erb/r4/v5.0.gemfile index ec7ff451f..1bd029cc1 100644 --- a/gems/ast-merge/gemfiles/modular/erb/r4/v5.0.gemfile +++ b/gems/ast-merge/gemfiles/modular/erb/r4/v5.0.gemfile @@ -1 +1 @@ -gem 'erb', '~> 6.0', '>= 6.0.6' # ruby >= 3.2.0 +gem "erb", "~> 6.0", ">= 6.0.6" # ruby >= 3.2.0 diff --git a/gems/ast-merge/gemfiles/modular/erb/vHEAD.gemfile b/gems/ast-merge/gemfiles/modular/erb/vHEAD.gemfile index ea0101185..48fee4218 100644 --- a/gems/ast-merge/gemfiles/modular/erb/vHEAD.gemfile +++ b/gems/ast-merge/gemfiles/modular/erb/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 3.2 -gem 'erb', github: 'ruby/erb', branch: 'master' +gem "erb", github: "ruby/erb", branch: "master" diff --git a/gems/ast-merge/gemfiles/modular/json/truffleruby_22_3.gemfile b/gems/ast-merge/gemfiles/modular/json/truffleruby_22_3.gemfile index 9b2f8d96a..b0e69ab11 100644 --- a/gems/ast-merge/gemfiles/modular/json/truffleruby_22_3.gemfile +++ b/gems/ast-merge/gemfiles/modular/json/truffleruby_22_3.gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -if RUBY_ENGINE == 'truffleruby' && RUBY_ENGINE_VERSION.start_with?('22.3') +if RUBY_ENGINE == "truffleruby" && RUBY_ENGINE_VERSION.start_with?("22.3") # TruffleRuby 22.3 ships the json default gem from its emulated MRI Ruby. - gem 'json', '= 2.5.1' + gem "json", "= 2.5.1" end diff --git a/gems/ast-merge/gemfiles/modular/json/truffleruby_23_0.gemfile b/gems/ast-merge/gemfiles/modular/json/truffleruby_23_0.gemfile index d787a5ef4..7b2660a2b 100644 --- a/gems/ast-merge/gemfiles/modular/json/truffleruby_23_0.gemfile +++ b/gems/ast-merge/gemfiles/modular/json/truffleruby_23_0.gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -if RUBY_ENGINE == 'truffleruby' && RUBY_ENGINE_VERSION.start_with?('23.0') +if RUBY_ENGINE == "truffleruby" && RUBY_ENGINE_VERSION.start_with?("23.0") # TruffleRuby 23.0 ships the json default gem from its emulated MRI Ruby. - gem 'json', '= 2.6.1' + gem "json", "= 2.6.1" end diff --git a/gems/ast-merge/gemfiles/modular/json/truffleruby_23_1.gemfile b/gems/ast-merge/gemfiles/modular/json/truffleruby_23_1.gemfile index d78486b0e..dfa21f2e4 100644 --- a/gems/ast-merge/gemfiles/modular/json/truffleruby_23_1.gemfile +++ b/gems/ast-merge/gemfiles/modular/json/truffleruby_23_1.gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -if RUBY_ENGINE == 'truffleruby' && RUBY_ENGINE_VERSION.start_with?('23.1') +if RUBY_ENGINE == "truffleruby" && RUBY_ENGINE_VERSION.start_with?("23.1") # TruffleRuby 23.1 ships the json default gem from its emulated MRI Ruby. - gem 'json', '= 2.6.3' + gem "json", "= 2.6.3" end diff --git a/gems/ast-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile b/gems/ast-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile index e27f1bbae..42e9d9bd4 100644 --- a/gems/ast-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile +++ b/gems/ast-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 -gem 'mutex_m', '~> 0.2' +gem "mutex_m", "~> 0.2" diff --git a/gems/ast-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile b/gems/ast-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile index e27f1bbae..42e9d9bd4 100644 --- a/gems/ast-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile +++ b/gems/ast-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 -gem 'mutex_m', '~> 0.2' +gem "mutex_m", "~> 0.2" diff --git a/gems/ast-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile b/gems/ast-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile index e27f1bbae..42e9d9bd4 100644 --- a/gems/ast-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile +++ b/gems/ast-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 -gem 'mutex_m', '~> 0.2' +gem "mutex_m", "~> 0.2" diff --git a/gems/ast-merge/gemfiles/modular/mutex_m/vHEAD.gemfile b/gems/ast-merge/gemfiles/modular/mutex_m/vHEAD.gemfile index 9dac2f6cb..8af3b6fca 100644 --- a/gems/ast-merge/gemfiles/modular/mutex_m/vHEAD.gemfile +++ b/gems/ast-merge/gemfiles/modular/mutex_m/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 (dependency of omniauth) -gem 'mutex_m', github: 'ruby/mutex_m', branch: 'master' +gem "mutex_m", github: "ruby/mutex_m", branch: "master" diff --git a/gems/ast-merge/gemfiles/modular/optional.gemfile b/gems/ast-merge/gemfiles/modular/optional.gemfile index 9ea429538..80bc45196 100644 --- a/gems/ast-merge/gemfiles/modular/optional.gemfile +++ b/gems/ast-merge/gemfiles/modular/optional.gemfile @@ -9,8 +9,8 @@ # Optional dependencies are not depended on directly, but may be used if present. # Required for curated binstubs generated by kettle-jem install -gem 'rbs', '>= 3.0', require: false # ruby >= 3.1 +gem "rbs", ">= 3.0", require: false # ruby >= 3.1 # Required for kettle-pre-release # URL parsing with Unicode support (falls back to URI if not available) -gem 'addressable', '>= 2.8', '< 3' # ruby >= 2.2 +gem "addressable", ">= 2.8", "< 3" # ruby >= 2.2 diff --git a/gems/ast-merge/gemfiles/modular/rspec.gemfile b/gems/ast-merge/gemfiles/modular/rspec.gemfile index 2af210a41..72fdf8b7f 100644 --- a/gems/ast-merge/gemfiles/modular/rspec.gemfile +++ b/gems/ast-merge/gemfiles/modular/rspec.gemfile @@ -1,4 +1,4 @@ -gem 'rspec_junit_formatter', - github: 'pboling/rspec_junit_formatter', - branch: 'main', - ref: '9e6bcaaedd49477b62878ed568dc4ada5cc7cb5e' +gem "rspec_junit_formatter", + github: "pboling/rspec_junit_formatter", + branch: "main", + ref: "9e6bcaaedd49477b62878ed568dc4ada5cc7cb5e" diff --git a/gems/ast-merge/gemfiles/modular/runtime_heads.gemfile b/gems/ast-merge/gemfiles/modular/runtime_heads.gemfile index ebf17c529..02f134c7f 100644 --- a/gems/ast-merge/gemfiles/modular/runtime_heads.gemfile +++ b/gems/ast-merge/gemfiles/modular/runtime_heads.gemfile @@ -8,4 +8,4 @@ # Test against HEAD of runtime dependencies so we can proactively file bugs -eval_gemfile('x_std_libs/vHEAD.gemfile') +eval_gemfile("x_std_libs/vHEAD.gemfile") diff --git a/gems/ast-merge/gemfiles/modular/stringio/r2/v3.0.gemfile b/gems/ast-merge/gemfiles/modular/stringio/r2/v3.0.gemfile index 3616f4e3a..e85bb18ee 100644 --- a/gems/ast-merge/gemfiles/modular/stringio/r2/v3.0.gemfile +++ b/gems/ast-merge/gemfiles/modular/stringio/r2/v3.0.gemfile @@ -2,4 +2,4 @@ # NOT SEMVER # Version 3.0.7 dropped support for Ruby <= 2.7 # Version 3.0.0 dropped support for Ruby <= 2.4 -gem 'stringio', '>= 3.0' +gem "stringio", ">= 3.0" diff --git a/gems/ast-merge/gemfiles/modular/stringio/r3/v3.0.gemfile b/gems/ast-merge/gemfiles/modular/stringio/r3/v3.0.gemfile index 3616f4e3a..e85bb18ee 100644 --- a/gems/ast-merge/gemfiles/modular/stringio/r3/v3.0.gemfile +++ b/gems/ast-merge/gemfiles/modular/stringio/r3/v3.0.gemfile @@ -2,4 +2,4 @@ # NOT SEMVER # Version 3.0.7 dropped support for Ruby <= 2.7 # Version 3.0.0 dropped support for Ruby <= 2.4 -gem 'stringio', '>= 3.0' +gem "stringio", ">= 3.0" diff --git a/gems/ast-merge/gemfiles/modular/stringio/r4/v3.0.gemfile b/gems/ast-merge/gemfiles/modular/stringio/r4/v3.0.gemfile index 3616f4e3a..e85bb18ee 100644 --- a/gems/ast-merge/gemfiles/modular/stringio/r4/v3.0.gemfile +++ b/gems/ast-merge/gemfiles/modular/stringio/r4/v3.0.gemfile @@ -2,4 +2,4 @@ # NOT SEMVER # Version 3.0.7 dropped support for Ruby <= 2.7 # Version 3.0.0 dropped support for Ruby <= 2.4 -gem 'stringio', '>= 3.0' +gem "stringio", ">= 3.0" diff --git a/gems/ast-merge/gemfiles/modular/stringio/vHEAD.gemfile b/gems/ast-merge/gemfiles/modular/stringio/vHEAD.gemfile index 78f5f5d8a..5f2a74126 100644 --- a/gems/ast-merge/gemfiles/modular/stringio/vHEAD.gemfile +++ b/gems/ast-merge/gemfiles/modular/stringio/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 (dependency of omniauth) -gem 'stringio', github: 'ruby/stringio', branch: 'master' +gem "stringio", github: "ruby/stringio", branch: "master" diff --git a/gems/ast-merge/gemfiles/modular/style.gemfile b/gems/ast-merge/gemfiles/modular/style.gemfile index 4dbcc02c0..35de4dcd6 100644 --- a/gems/ast-merge/gemfiles/modular/style.gemfile +++ b/gems/ast-merge/gemfiles/modular/style.gemfile @@ -9,23 +9,23 @@ # Style tasks run on the latest Ruby; RuboCop-LTS selects the compatibility # rules for the configured Ruby floor independently from task dependency floors. -gem 'reek', '~> 6.5', '>= 6.5.0' +gem "reek", "~> 6.5", ">= 6.5.0" platform :mri do - gem 'appraisal2-rubocop', '~> 1.0', '>= 1.0.0', require: false - gem 'rubocop-gradual', '~> 0.4', '>= 0.4.0' - gem 'rubocop-minitest', '~> 0.40', '>= 0.40.0' - gem 'rubocop-on-rbs', '~> 2.0', '>= 2.0.0' # ruby >= 3.2.0 + gem "appraisal2-rubocop", "~> 1.0", ">= 1.0.0", require: false + gem "rubocop-gradual", "~> 0.4", ">= 0.4.0" + gem "rubocop-minitest", "~> 0.40", ">= 0.40.0" + gem "rubocop-on-rbs", "~> 2.0", ">= 2.0.0" # ruby >= 3.2.0 # gem "rubocop", "~> 1.73", ">= 1.73.2" # constrained by standard - gem 'rubocop-packaging', '~> 0.6', '>= 0.6.0' - gem 'standard', '~> 1.56', '>= 1.56.0' + gem "rubocop-packaging", "~> 0.6", ">= 0.6.0" + gem "standard", "~> 1.56", ">= 1.56.0" - if ENV.fetch('RUBOCOP_LTS_LOCAL', 'false').casecmp('false').zero? + if ENV.fetch("RUBOCOP_LTS_LOCAL", "false").casecmp("false").zero? declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) - gem 'rubocop-lts', '~> 24.2', '>= 24.2.1' unless declared_gems.include?('rubocop-lts') - gem 'rubocop-lts-rspec', '~> 1.0', '>= 1.0.5' unless declared_gems.include?('rubocop-lts-rspec') - gem 'rubocop-ruby3_2', '~> 3.0', '>= 3.0.6' unless declared_gems.include?('rubocop-ruby3_2') + gem "rubocop-lts", "~> 24.2", ">= 24.2.1" unless declared_gems.include?("rubocop-lts") + gem "rubocop-lts-rspec", "~> 1.0", ">= 1.0.5" unless declared_gems.include?("rubocop-lts-rspec") + gem "rubocop-ruby3_2", "~> 3.0", ">= 3.0.6" unless declared_gems.include?("rubocop-ruby3_2") else - eval_gemfile('style_local.gemfile') + eval_gemfile("style_local.gemfile") end end diff --git a/gems/ast-merge/gemfiles/modular/style_local.gemfile b/gems/ast-merge/gemfiles/modular/style_local.gemfile index e4a06d74e..a003c7b12 100644 --- a/gems/ast-merge/gemfiles/modular/style_local.gemfile +++ b/gems/ast-merge/gemfiles/modular/style_local.gemfile @@ -14,19 +14,21 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] -nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) +nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] +nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == "nomono" } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + if nomono_locked + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] + end end -Kernel.send(:gem, 'nomono', *nomono_activation_requirements) -require 'nomono/bundler' +Kernel.send(:gem, "nomono", *nomono_activation_requirements) +require "nomono/bundler" local_gems = %w[rubocop-lts rubocop-lts-rspec rubocop-ruby3_2 standard-rubocop-lts] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) @@ -36,11 +38,11 @@ local_gems_to_eval = local_gems - %w[ast-merge] - declared_gems platform :mri do eval_nomono_gems( gems: local_gems_to_eval, - prefix: 'RUBOCOP_LTS', - path_env: 'RUBOCOP_LTS_LOCAL', - vendored_gems_env: 'VENDORED_GEMS', - vendor_gem_dir_env: 'VENDOR_GEM_DIR', - debug_env: 'RUBOCOP_LTS_DEBUG', - root: %w[src rubocop-lts] + prefix: "RUBOCOP_LTS", + path_env: "RUBOCOP_LTS_LOCAL", + vendored_gems_env: "VENDORED_GEMS", + vendor_gem_dir_env: "VENDOR_GEM_DIR", + debug_env: "RUBOCOP_LTS_DEBUG", + root: ["src", "rubocop-lts"] ) end diff --git a/gems/ast-merge/gemfiles/modular/webrick/r4/v1.9.gemfile b/gems/ast-merge/gemfiles/modular/webrick/r4/v1.9.gemfile index b1329ba84..eaab4a473 100644 --- a/gems/ast-merge/gemfiles/modular/webrick/r4/v1.9.gemfile +++ b/gems/ast-merge/gemfiles/modular/webrick/r4/v1.9.gemfile @@ -1 +1 @@ -gem 'webrick', '~> 1.9' +gem "webrick", "~> 1.9" diff --git a/gems/ast-merge/gemfiles/modular/webrick/vHEAD.gemfile b/gems/ast-merge/gemfiles/modular/webrick/vHEAD.gemfile index c7e6f81a1..8a789b634 100644 --- a/gems/ast-merge/gemfiles/modular/webrick/vHEAD.gemfile +++ b/gems/ast-merge/gemfiles/modular/webrick/vHEAD.gemfile @@ -1 +1 @@ -gem 'webrick', '>= 1.9' +gem "webrick", ">= 1.9" diff --git a/gems/ast-merge/gemfiles/modular/x_std_libs.gemfile b/gems/ast-merge/gemfiles/modular/x_std_libs.gemfile index b1f43c097..77aad43f2 100644 --- a/gems/ast-merge/gemfiles/modular/x_std_libs.gemfile +++ b/gems/ast-merge/gemfiles/modular/x_std_libs.gemfile @@ -1,12 +1,12 @@ ### Std Lib Extracted Gems ruby_version = Gem::Version.new(RUBY_VERSION) -if ruby_version >= Gem::Version.new('4.0') - eval_gemfile 'x_std_libs/r4/libs.gemfile' -elsif ruby_version >= Gem::Version.new('3.2') - eval_gemfile 'x_std_libs/r3/libs.gemfile' -elsif ruby_version >= Gem::Version.new('3.1') - eval_gemfile 'x_std_libs/r3.1/libs.gemfile' +if ruby_version >= Gem::Version.new("4.0") + eval_gemfile "x_std_libs/r4/libs.gemfile" +elsif ruby_version >= Gem::Version.new("3.2") + eval_gemfile "x_std_libs/r3/libs.gemfile" +elsif ruby_version >= Gem::Version.new("3.1") + eval_gemfile "x_std_libs/r3.1/libs.gemfile" else - eval_gemfile 'x_std_libs/r2/libs.gemfile' + eval_gemfile "x_std_libs/r2/libs.gemfile" end diff --git a/gems/ast-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile b/gems/ast-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile index 16a5e3d70..441c4f03a 100644 --- a/gems/ast-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile +++ b/gems/ast-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile @@ -1,3 +1,3 @@ -eval_gemfile '../../erb/r2/v3.0.gemfile' -eval_gemfile '../../mutex_m/r2/v0.3.gemfile' -eval_gemfile '../../stringio/r2/v3.0.gemfile' +eval_gemfile "../../erb/r2/v3.0.gemfile" +eval_gemfile "../../mutex_m/r2/v0.3.gemfile" +eval_gemfile "../../stringio/r2/v3.0.gemfile" diff --git a/gems/ast-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile b/gems/ast-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile index 220ff95c1..c293a3ddd 100644 --- a/gems/ast-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile +++ b/gems/ast-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile @@ -1,3 +1,3 @@ -eval_gemfile '../../erb/r3/v5.0.gemfile' -eval_gemfile '../../mutex_m/r3/v0.3.gemfile' -eval_gemfile '../../stringio/r3/v3.0.gemfile' +eval_gemfile "../../erb/r3/v5.0.gemfile" +eval_gemfile "../../mutex_m/r3/v0.3.gemfile" +eval_gemfile "../../stringio/r3/v3.0.gemfile" diff --git a/gems/ast-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile b/gems/ast-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile index e2f6501eb..eb5574247 100644 --- a/gems/ast-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile +++ b/gems/ast-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile @@ -1,6 +1,6 @@ -eval_gemfile '../../erb/r4/v5.0.gemfile' -eval_gemfile '../../mutex_m/r4/v0.3.gemfile' -eval_gemfile '../../stringio/r4/v3.0.gemfile' -eval_gemfile '../../benchmark/r4/v0.5.gemfile' -eval_gemfile '../../cgi/r4/v0.5.gemfile' -eval_gemfile '../../webrick/r4/v1.9.gemfile' +eval_gemfile "../../erb/r4/v5.0.gemfile" +eval_gemfile "../../mutex_m/r4/v0.3.gemfile" +eval_gemfile "../../stringio/r4/v3.0.gemfile" +eval_gemfile "../../benchmark/r4/v0.5.gemfile" +eval_gemfile "../../cgi/r4/v0.5.gemfile" +eval_gemfile "../../webrick/r4/v1.9.gemfile" diff --git a/gems/ast-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile b/gems/ast-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile index ab75cccf1..d4d5b16c9 100644 --- a/gems/ast-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile +++ b/gems/ast-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile @@ -1,6 +1,6 @@ -eval_gemfile '../erb/vHEAD.gemfile' -eval_gemfile '../mutex_m/vHEAD.gemfile' -eval_gemfile '../stringio/vHEAD.gemfile' -eval_gemfile '../benchmark/vHEAD.gemfile' -eval_gemfile '../cgi/vHEAD.gemfile' -eval_gemfile '../webrick/vHEAD.gemfile' +eval_gemfile "../erb/vHEAD.gemfile" +eval_gemfile "../mutex_m/vHEAD.gemfile" +eval_gemfile "../stringio/vHEAD.gemfile" +eval_gemfile "../benchmark/vHEAD.gemfile" +eval_gemfile "../cgi/vHEAD.gemfile" +eval_gemfile "../webrick/vHEAD.gemfile" diff --git a/gems/ast-merge/spec/spec_helper.rb b/gems/ast-merge/spec/spec_helper.rb index f8c5b2f52..dcc7b2a7e 100644 --- a/gems/ast-merge/spec/spec_helper.rb +++ b/gems/ast-merge/spec/spec_helper.rb @@ -7,11 +7,16 @@ # NOTE: Gemfiles for non-coverage appraisals may not have kettle-soup-cover. # The rescue LoadError handles that scenario. begin - require 'kettle-soup-cover' - require 'simplecov' if Kettle::Soup::Cover::DO_COV # `.simplecov` is run here! -rescue LoadError => e + require "kettle-soup-cover" + if Kettle::Soup::Cover::DO_COV + # Requiring simplecov loads the project-local `.simplecov`. + require "simplecov" + require "kettle/soup/cover/config" + SimpleCov.start + end +rescue LoadError => error # check the error message and re-raise when unexpected - raise e unless e.message.include?('kettle') + raise error unless error.message.include?("kettle") end # External RSpec & related config diff --git a/gems/markdown-merge/.kettle-drift.lock b/gems/markdown-merge/.kettle-drift.lock index 43dfedd67..7cc6a5131 100644 --- a/gems/markdown-merge/.kettle-drift.lock +++ b/gems/markdown-merge/.kettle-drift.lock @@ -1,10 +1,74 @@ { + "(direct_sibling_local ||\nENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?)": [ + { + "file": "Gemfile", + "lines": [ + 80, + 120 + ] + } + ], + ".find { |spec| spec.name == 'nomono' }\nnomono_locked = nomono_locked_spec &&": [ + { + "file": "Gemfile", + "lines": [ + 91, + 131 + ] + } + ], + "ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?)\ndirect_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV')": [ + { + "file": "Gemfile", + "lines": [ + 81, + 121 + ] + } + ], + "Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version)\nnomono_activation_requirements = [\"= #{nomono_locked_spec.version}\"] if nomono_locked": [ + { + "file": "Gemfile", + "lines": [ + 93, + 133 + ] + } + ], + "Kernel.send(:gem, 'nomono', *nomono_activation_requirements)\nrequire 'nomono/bundler'": [ + { + "file": "Gemfile", + "lines": [ + 96, + 136 + ] + } + ], + "direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV')\ndirect_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil)": [ + { + "file": "Gemfile", + "lines": [ + 82, + 122 + ] + } + ], "eval_nomono_gems(\ngems: direct_sibling_gems,": [ { "file": "Gemfile", "lines": [ 60, - 100 + 100, + 140 + ] + } + ], + "gems: direct_sibling_gems,\nprefix: 'STRUCTUREDMERGE',": [ + { + "file": "Gemfile", + "lines": [ + 101, + 141 ] } ], @@ -13,7 +77,17 @@ "file": "Gemfile", "lines": [ 43, - 87 + 87, + 127 + ] + } + ], + "if direct_sibling_dev_was_set\nENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original": [ + { + "file": "Gemfile", + "lines": [ + 110, + 150 ] } ], @@ -22,7 +96,8 @@ "file": "Gemfile", "lines": [ 35, - 79 + 79, + 119 ] } ], @@ -31,7 +106,17 @@ "file": "Gemfile", "lines": [ 69, - 109 + 109, + 149 + ] + } + ], + "nomono_activation_requirements = nomono_requirements\nnomono_lockfile = File.expand_path('Gemfile.lock', __dir__)": [ + { + "file": "Gemfile", + "lines": [ + 85, + 125 ] } ], @@ -40,7 +125,8 @@ "file": "Gemfile", "lines": [ 48, - 92 + 92, + 132 ] } ], @@ -49,7 +135,53 @@ "file": "Gemfile", "lines": [ 44, - 88 + 88, + 128 + ] + } + ], + "nomono_lockfile = File.expand_path('Gemfile.lock', __dir__)\nif File.file?(nomono_lockfile)": [ + { + "file": "Gemfile", + "lines": [ + 86, + 126 + ] + } + ], + "path_env: 'STRUCTUREDMERGE_DEV',\nroot: %w[src my structuredmerge]": [ + { + "file": "Gemfile", + "lines": [ + 103, + 143 + ] + } + ], + "prefix: 'STRUCTUREDMERGE',\npath_env: 'STRUCTUREDMERGE_DEV',": [ + { + "file": "Gemfile", + "lines": [ + 102, + 142 + ] + } + ], + "require 'nomono/bundler'\nENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local": [ + { + "file": "Gemfile", + "lines": [ + 97, + 137 + ] + } + ], + "rescue LoadError\nwarn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.'": [ + { + "file": "Gemfile", + "lines": [ + 106, + 146 ] } ] diff --git a/gems/markdown-merge/.simplecov b/gems/markdown-merge/.simplecov index 264bdac7c..15c384d84 100644 --- a/gems/markdown-merge/.simplecov +++ b/gems/markdown-merge/.simplecov @@ -4,15 +4,11 @@ # markdown-merge will then preserve content between those markers across template runs. # kettle-jem:unfreeze -require 'kettle/soup/cover/config' - # Minimum coverage thresholds are set by kettle-soup-cover. # They are controlled by ENV variables loaded by `mise` from `mise.toml` # (with optional machine-local overrides in `.env.local`). # If the values for minimum coverage need to change, they should be changed both there, # and in 2 places in .github/workflows/coverage.yml. -SimpleCov.start do - track_files 'lib/**/*.rb' - track_files 'lib/**/*.rake' - track_files 'exe/*.rb' +SimpleCov.configure do + cover "lib/**/*.rb", "lib/**/*.rake", "exe/*.rb" end diff --git a/gems/markdown-merge/Gemfile b/gems/markdown-merge/Gemfile index 054b7aa20..39004a731 100644 --- a/gems/markdown-merge/Gemfile +++ b/gems/markdown-merge/Gemfile @@ -6,7 +6,7 @@ # kettle-jem will then preserve content between those markers across template runs. # kettle-jem:unfreeze -source 'https://gem.coop' +source "https://gem.coop" git_source(:codeberg) { |repo_name| "https://codeberg.org/#{repo_name}" } git_source(:gitlab) { |repo_name| "https://gitlab.com/#{repo_name}" } @@ -19,18 +19,62 @@ git_source(:gitlab) { |repo_name| "https://gitlab.com/#{repo_name}" } gemspec # Local workspace dependency wiring for *_local.gemfile overrides -nomono_requirements = ['~> 1.0', '>= 1.0.8'] -gem 'nomono', *nomono_requirements, require: false # ruby >= 2.2 +nomono_requirements = ["~> 1.0", ">= 1.0.8"] +gem "nomono", *nomono_requirements, require: false # ruby >= 2.2 # Direct sibling dependencies (env-switched via STRUCTUREDMERGE_DEV) direct_sibling_gems = %w[ ast-merge tree_haver ] -direct_sibling_dev = ENV.fetch('STRUCTUREDMERGE_DEV', '') +direct_sibling_dev = ENV.fetch("STRUCTUREDMERGE_DEV", "") direct_sibling_local = !direct_sibling_dev.empty? && !%w[false 0 no off].include?(direct_sibling_dev.downcase) -direct_sibling_templating = ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? +direct_sibling_templating = ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? + +if direct_sibling_gems.any? && + (direct_sibling_local || + ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero?) + direct_sibling_dev_was_set = ENV.key?("STRUCTUREDMERGE_DEV") + direct_sibling_dev_original = ENV.fetch("STRUCTUREDMERGE_DEV", nil) + begin + nomono_activation_requirements = nomono_requirements + nomono_lockfile = File.expand_path("Gemfile.lock", __dir__) + if File.file?(nomono_lockfile) + nomono_locked_spec = Bundler::LockfileParser + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == "nomono" } + nomono_locked = nomono_locked_spec && + Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) + if nomono_locked + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] + end + end + Kernel.send(:gem, "nomono", *nomono_activation_requirements) + require "nomono/bundler" + if direct_sibling_templating && !direct_sibling_local + ENV["STRUCTUREDMERGE_DEV"] = File.expand_path("..", __dir__) + end + + eval_nomono_gems( + gems: direct_sibling_gems, + prefix: "STRUCTUREDMERGE", + path_env: "STRUCTUREDMERGE_DEV", + root: ["src", "my", "structuredmerge"] + ) + rescue LoadError + warn "Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies." + ensure + if direct_sibling_templating && !direct_sibling_local + if direct_sibling_dev_was_set + ENV["STRUCTUREDMERGE_DEV"] = direct_sibling_dev_original + else + ENV.delete("STRUCTUREDMERGE_DEV") + end + end + end +end if direct_sibling_gems.any? && (direct_sibling_local || @@ -113,28 +157,28 @@ if direct_sibling_gems.any? && end # Use released TSLP with the Ruby ABI platform-gem fix. -gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' +gem "tree_sitter_language_pack", "~> 1.13", ">= 1.13.3" # Templating (env-switched: STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local paths) -eval_gemfile 'gemfiles/modular/templating.gemfile' if ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? +eval_gemfile "gemfiles/modular/templating.gemfile" if ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? # Debugging -eval_gemfile 'gemfiles/modular/debug.gemfile' +eval_gemfile "gemfiles/modular/debug.gemfile" # Code Coverage (env-switched: KETTLE_DEV_DEV=true for local paths) -eval_gemfile 'gemfiles/modular/coverage.gemfile' +eval_gemfile "gemfiles/modular/coverage.gemfile" # Linting -eval_gemfile 'gemfiles/modular/style.gemfile' +eval_gemfile "gemfiles/modular/style.gemfile" # Documentation -eval_gemfile 'gemfiles/modular/documentation.gemfile' +eval_gemfile "gemfiles/modular/documentation.gemfile" # Optional -eval_gemfile 'gemfiles/modular/optional.gemfile' +eval_gemfile "gemfiles/modular/optional.gemfile" ### Std Lib Extracted Gems -eval_gemfile 'gemfiles/modular/x_std_libs.gemfile' +eval_gemfile "gemfiles/modular/x_std_libs.gemfile" # See unlocked_deps appraisal for more details on irb inclusion -gem 'irb', '~> 1.17' # ruby >= 2.7 +gem "irb", "~> 1.17" # ruby >= 2.7 diff --git a/gems/markdown-merge/Gemfile.lock b/gems/markdown-merge/Gemfile.lock index 538f743a3..5201a42e4 100644 --- a/gems/markdown-merge/Gemfile.lock +++ b/gems/markdown-merge/Gemfile.lock @@ -6,6 +6,283 @@ PATH tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly + specs: + ast-crispr-markdown-markly (7.1.0) + ast-crispr (= 7.1.0) + markly-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism + specs: + ast-crispr-ruby-prism (7.1.0) + ast-crispr (= 7.1.0) + prism-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr + specs: + ast-crispr (7.1.0) + ast-merge (= 7.1.0) + service_actor (~> 3.9) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git + specs: + ast-merge-git (7.1.0) + ast-merge (= 7.1.0) + json-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge + specs: + ast-merge (7.1.0) + benchmark + token-resolver (~> 2.0, >= 2.0.4) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template + specs: + ast-template (7.1.0) + ast-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge + specs: + bash-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge + specs: + binary-merge (7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge + specs: + citrus-toml-merge (7.1.0) + toml-merge (= 7.1.0) + toml-rb (~> 4.1) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge + specs: + commonmarker-merge (7.1.0) + commonmarker (~> 2.2) + markdown-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge + specs: + dotenv-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge + specs: + go-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge + specs: + json-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem + specs: + kettle-jem (7.1.0) + addressable (>= 2.8, < 3) + ast-crispr-markdown-markly (= 7.1.0) + ast-crispr-ruby-prism (= 7.1.0) + ast-merge (= 7.1.0) + bash-merge (= 7.1.0) + citrus-toml-merge (= 7.1.0) + commonmarker-merge (= 7.1.0) + dotenv-merge (= 7.1.0) + json-merge (= 7.1.0) + kettle-dev (~> 2.3, >= 2.3.5) + kettle-rb (~> 0.1, >= 0.1.4) + kramdown-merge (= 7.1.0) + markdown-merge (= 7.1.0) + markly-merge (= 7.1.0) + prism-merge (= 7.1.0) + psych-merge (= 7.1.0) + rbs (>= 3.10) + rbs-merge (= 7.1.0) + ruby-merge (= 7.1.0) + token-resolver (~> 2.0, >= 2.0.4) + toml-merge (= 7.1.0) + toml-rb (~> 4.2) + tree_haver (= 7.1.0) + yaml-merge (= 7.1.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge + specs: + kramdown-merge (7.1.0) + kramdown (~> 2.5) + markdown-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge + specs: + markly-merge (7.1.0) + markdown-merge (= 7.1.0) + markly (~> 0.9) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge + specs: + parslet-toml-merge (7.1.0) + toml (~> 0.3) + toml-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge + specs: + plain-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge + specs: + prism-merge (7.1.0) + prism (~> 1.6) + ruby-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge + specs: + psych-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + yaml-merge (= 7.1.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge + specs: + rbs-merge (7.1.0) + ast-merge (= 7.1.0) + rbs (>= 3.10) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge + specs: + ruby-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge + specs: + rust-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb + specs: + smorg-rb (7.1.0) + ast-merge (= 7.1.0) + ast-merge-git (= 7.1.0) + diff-lcs (~> 1.5) + go-merge (= 7.1.0) + json-merge (= 7.1.0) + kettle-jem (= 7.1.0) + markly-merge (= 7.1.0) + plain-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge + specs: + toml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver + specs: + tree_haver (7.1.0) + citrus (~> 3.0) + parslet (~> 2.0) + tree_sitter_language_pack (>= 1.13.2, < 2.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge + specs: + typescript-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge + specs: + yaml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge + specs: + zip-merge (7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /var/home/pboling/src/my/kettle-dev/kettle-drift + specs: + kettle-drift (1.0.6) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /var/home/pboling/src/my/kettle-dev/kettle-soup-cover + specs: + kettle-soup-cover (3.0.4) + kettle-wash (~> 0.1, >= 0.1.0) + simplecov (>= 1.0) + simplecov-cobertura (>= 4.0) + simplecov-console (~> 0.9, >= 0.9.5) + simplecov-rcov (~> 0.3, >= 0.3.7) + simplecov_lcov_formatter (~> 0.9, >= 0.9.0) + GEM remote: https://gem.coop/ specs: @@ -21,11 +298,6 @@ GEM rubocop (>= 1.0) version_gem (~> 1.1, >= 1.1.14) ast (2.4.3) - ast-merge (7.1.0) - benchmark - token-resolver (~> 2.0, >= 2.0.4) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) backports (3.25.3) benchmark (0.5.0) bigdecimal (4.1.2) @@ -35,6 +307,10 @@ GEM cgi (0.5.2) citrus (3.0.2) cmdparse (3.0.7) + commonmarker (2.9.0-aarch64-linux) + commonmarker (2.9.0-aarch64-linux-musl) + commonmarker (2.9.0-arm64-darwin) + commonmarker (2.9.0-x86_64-linux) concurrent-ruby (1.3.8) date (3.5.1) debug (1.11.1) @@ -98,13 +374,6 @@ GEM kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) kettle-rb (0.1.5) - kettle-soup-cover (3.0.4) - kettle-wash (~> 0.1, >= 0.1.0) - simplecov (>= 1.0) - simplecov-cobertura (>= 4.0) - simplecov-console (~> 0.9, >= 0.9.5) - simplecov-rcov (~> 0.3, >= 0.3.7) - simplecov_lcov_formatter (~> 0.9, >= 0.9.0) kettle-test (2.0.12) appraisal2 (~> 3.0, >= 3.0.6) backports (~> 3.0) @@ -125,6 +394,7 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) + markly (0.16.0) mutex_m (0.3.0) nokogiri (1.19.4-aarch64-linux-gnu) racc (~> 1.4) @@ -287,6 +557,8 @@ GEM ruby-progressbar (1.13.0) ruby_engine (2.0.3) ruby_version (1.0.3) + service_actor (3.9.4) + zeitwerk (>= 1.0) silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) @@ -302,7 +574,7 @@ GEM simplecov (>= 0.4.1) simplecov_lcov_formatter (0.9.0) simplecov (>= 0.18) - sorbet-runtime (0.6.13347) + sorbet-runtime (0.6.13351) standard (1.56.0) language_server-protocol (~> 3.17.0.2) lint_roller (~> 1.0) @@ -341,11 +613,11 @@ GEM token-resolver (2.0.5) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.14) - tree_haver (7.1.0) - citrus (~> 3.0) - parslet (~> 2.0) - tree_sitter_language_pack (>= 1.13.2, < 2.0) - version_gem (~> 1.1, >= 1.1.9) + toml (0.3.0) + parslet (>= 1.8.0, < 3.0.0) + toml-rb (4.2.0) + citrus (~> 3.0, > 3.0) + racc (~> 1.7) tree_sitter_language_pack (1.13.3-aarch64-linux) sorbet-runtime (~> 0.5) tree_sitter_language_pack (1.13.3-arm64-darwin) @@ -400,24 +672,46 @@ DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) appraisal2-rubocop (~> 1.0, >= 1.0.0) + ast-crispr! + ast-crispr-markdown-markly! + ast-crispr-ruby-prism! + ast-merge! + ast-merge-git! + ast-template! + bash-merge! benchmark (~> 0.5, >= 0.5.0) + binary-merge! bundler-audit (~> 0.9.3) cgi (~> 0.5) + citrus-toml-merge! + commonmarker-merge! debug (>= 1.1) + dotenv-merge! erb (~> 6.0, >= 6.0.6) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.0) + go-merge! irb (~> 1.17) + json-merge! kettle-dev (~> 2.0, >= 2.2.25) - kettle-soup-cover (~> 3.0, >= 3.0.3) + kettle-drift! + kettle-jem! + kettle-soup-cover! kettle-test (~> 2.0, >= 2.0.9) kramdown (~> 2.5, >= 2.5.2) + kramdown-merge! kramdown-parser-gfm (~> 1.1) markdown-merge! + markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) + parslet-toml-merge! + plain-merge! + prism-merge! + psych-merge! rake (~> 13.0) rbs (>= 3.0) + rbs-merge! rdoc (~> 6.11) reek (~> 6.5, >= 6.5.0) require_bench (~> 1.0, >= 1.0.4) @@ -428,19 +722,27 @@ DEPENDENCIES rubocop-on-rbs (~> 2.0, >= 2.0.0) rubocop-packaging (~> 0.6, >= 0.6.0) rubocop-ruby3_2 (~> 3.0, >= 3.0.6) + ruby-merge! ruby-progressbar (~> 1.13) + rust-merge! + smorg-rb! standard (~> 1.56, >= 1.56.0) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) + toml-merge! + tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) + typescript-merge! webrick (~> 1.9) yaml-converter (~> 0.2, >= 0.2.3) + yaml-merge! yard (~> 0.9, >= 0.9.45) yard-fence (~> 0.9, >= 0.9.6) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) yard-timekeeper (~> 0.2, >= 0.2.4) yard-yaml (~> 0.2, >= 0.2.3) + zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af @@ -448,20 +750,34 @@ CHECKSUMS appraisal2 (3.2.0) sha256=ccd0b767ac4060cd7af6d16747459b6990f49c39c7b4fb1f7d1146b1e97c492f appraisal2-rubocop (1.0.0) sha256=b71410fbb014befda5340605a605b7f6f3f012739baf0acc5b4351b592c3258d ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 + ast-crispr (7.1.0) + ast-crispr-markdown-markly (7.1.0) + ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) + ast-merge-git (7.1.0) + ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 + bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd + binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 + citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 + commonmarker (2.9.0-aarch64-linux) sha256=e2b4aadb9a2cfa4e206582641ce3a49465549ac1ed4c289fdd63b78d8f24579c + commonmarker (2.9.0-aarch64-linux-musl) sha256=1cf4d2821f2a7e64945f1ed7c4eeced586fdb27ea7fe7337788802cf8f57cfca + commonmarker (2.9.0-arm64-darwin) sha256=1748dbfa4f5813b0d2a14bb4bbfa65a4ec293aa1c825016d60029ee0e132b046 + commonmarker (2.9.0-x86_64-linux) sha256=8cfe92970eef585a19ddf6613224b91cab64d6029834661bda801f877c9c7f43 + commonmarker-merge (7.1.0) concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 + dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -474,21 +790,28 @@ CHECKSUMS gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f + go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 + json-merge (7.1.0) kettle-dev (2.3.8) sha256=9d716ff21c660a730cb4e8d41e2e2f0630a28167a354b6e2924e242102aef72c + kettle-drift (1.0.6) + kettle-jem (7.1.0) kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f kettle-soup-cover (3.0.4) kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa + kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 markdown-merge (7.1.0) + markly (0.16.0) sha256=6f70d79e385b1efc9e171f74c81628826259039fe6c778e03c3924c71dac5511 + markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-aarch64-linux-gnu) sha256=1269fb644a6de405057a53dd5c762b1209b43ca7424f839454d3dbc677c31a8f nokogiri (1.19.4-aarch64-linux-musl) sha256=35c65b9ce72b3bb03207bdbe7067915019dc18c1b9b59139684bd6690fdd01af @@ -502,15 +825,20 @@ CHECKSUMS parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 + parslet-toml-merge (7.1.0) + plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 + prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 + psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 + rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb @@ -545,16 +873,20 @@ CHECKSUMS rubocop-rspec_rails (2.32.0) sha256=4a0d641c72f6ebb957534f539d9d0a62c47abd8ce0d0aeee1ef4701e892a9100 rubocop-ruby3_2 (3.0.7) sha256=f53dd6d286fb05186214fc6ec116783e7f837030918e8931c05de773e98f8466 rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 + ruby-merge (7.1.0) ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 + rust-merge (7.1.0) + service_actor (3.9.4) sha256=e63b523630b9a7e62959b2a90113b08d2565b5de9c148557b281ef847c9539ce silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed - sorbet-runtime (0.6.13347) sha256=54e7221d9f4b63f58aec79f3043752a9ba7810347c6ae0d903531591cc2d5f01 + smorg-rb (7.1.0) + sorbet-runtime (0.6.13351) sha256=f8fee17c6e3edf835dc6823d26afb9a7c8969c6710d1fabe2fb43f4e0c15c64f standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b standard-performance (1.9.0) sha256=49483d31be448292951d80e5e67cdcb576c2502103c7b40aec6f1b6e9c88e3f2 @@ -568,17 +900,22 @@ CHECKSUMS timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.5) sha256=b852f924287ffb58a440856e862b056c8ad97e74b4b2526cee43e0771f40c25c + toml (0.3.0) sha256=0a91d0f76a9036e84e44f95693b12f58d358c1df3ac8e3b5271f2056ecc6e4b9 + toml-merge (7.1.0) + toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-aarch64-linux) sha256=55ffc7c87868cb45658338363d9eba51b4a8b0259aa88e4de368d2bd1d52fea4 tree_sitter_language_pack (1.13.3-arm64-darwin) sha256=bc2498db605f212a1dbd2465ed3f65190d7da786f6ed5d30fcf958121aeb4a5c tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 + typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 webrick (1.9.2) sha256=beb4a15fc474defed24a3bda4ffd88a490d517c9e4e6118c3edce59e45864131 yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 + yaml-merge (7.1.0) yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd @@ -586,6 +923,7 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 + zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH diff --git a/gems/markdown-merge/Rakefile b/gems/markdown-merge/Rakefile index 335c98aab..2be51dd98 100644 --- a/gems/markdown-merge/Rakefile +++ b/gems/markdown-merge/Rakefile @@ -130,23 +130,23 @@ end ### DUPLICATE DRIFT TASKS begin - require 'kettle/drift' + require "kettle/drift" Kettle::Drift.install_tasks rescue LoadError - desc('(stub) kettle:drift:check is unavailable') - task('kettle:drift:check') do + desc("(stub) kettle:drift:check is unavailable") + task("kettle:drift:check") do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc('(stub) kettle:drift:update is unavailable') - task('kettle:drift:update') do + desc("(stub) kettle:drift:update is unavailable") + task("kettle:drift:update") do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc('(stub) kettle:drift:force_update is unavailable') - task('kettle:drift:force_update') do + desc("(stub) kettle:drift:force_update is unavailable") + task("kettle:drift:force_update") do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc('(stub) kettle:drift is unavailable') - task('kettle:drift' => 'kettle:drift:update') + desc("(stub) kettle:drift is unavailable") + task("kettle:drift" => "kettle:drift:update") end ### TEMPLATING TASKS diff --git a/gems/markdown-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile b/gems/markdown-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile index b8392fab0..dec650815 100644 --- a/gems/markdown-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile +++ b/gems/markdown-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.1 -gem 'benchmark', '~> 0.5', '>= 0.5.0' # Removed from Std Lib in Ruby 4.0 +gem "benchmark", "~> 0.5", ">= 0.5.0" # Removed from Std Lib in Ruby 4.0 diff --git a/gems/markdown-merge/gemfiles/modular/benchmark/vHEAD.gemfile b/gems/markdown-merge/gemfiles/modular/benchmark/vHEAD.gemfile index af214aafa..e1eb20c5e 100644 --- a/gems/markdown-merge/gemfiles/modular/benchmark/vHEAD.gemfile +++ b/gems/markdown-merge/gemfiles/modular/benchmark/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.1 -gem 'benchmark', github: 'ruby/benchmark', branch: 'master' +gem "benchmark", github: "ruby/benchmark", branch: "master" diff --git a/gems/markdown-merge/gemfiles/modular/cgi/r4/v0.5.gemfile b/gems/markdown-merge/gemfiles/modular/cgi/r4/v0.5.gemfile index 17ad97260..19ed967c3 100644 --- a/gems/markdown-merge/gemfiles/modular/cgi/r4/v0.5.gemfile +++ b/gems/markdown-merge/gemfiles/modular/cgi/r4/v0.5.gemfile @@ -1 +1 @@ -gem 'cgi', '~> 0.5' +gem "cgi", "~> 0.5" diff --git a/gems/markdown-merge/gemfiles/modular/cgi/vHEAD.gemfile b/gems/markdown-merge/gemfiles/modular/cgi/vHEAD.gemfile index 650fbf033..ef8b816ce 100644 --- a/gems/markdown-merge/gemfiles/modular/cgi/vHEAD.gemfile +++ b/gems/markdown-merge/gemfiles/modular/cgi/vHEAD.gemfile @@ -1 +1 @@ -gem 'cgi', '>= 0.5' +gem "cgi", ">= 0.5" diff --git a/gems/markdown-merge/gemfiles/modular/coverage.gemfile b/gems/markdown-merge/gemfiles/modular/coverage.gemfile index b93014b6b..52d737872 100644 --- a/gems/markdown-merge/gemfiles/modular/coverage.gemfile +++ b/gems/markdown-merge/gemfiles/modular/coverage.gemfile @@ -4,11 +4,11 @@ # Set KETTLE_DEV_DEV=true for local development with path-based dependencies. # When false (default / CI), remote released gems are used. -if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? +if ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false").zero? # Coverage (remote/released) platform :mri do - gem 'kettle-soup-cover', '~> 3.0', '>= 3.0.3', require: false + gem "kettle-soup-cover", "~> 3.0", ">= 3.0.3", require: false end else - eval_gemfile 'coverage_local.gemfile' + eval_gemfile "coverage_local.gemfile" end diff --git a/gems/markdown-merge/gemfiles/modular/coverage_local.gemfile b/gems/markdown-merge/gemfiles/modular/coverage_local.gemfile index 647eab77a..bac3538d7 100644 --- a/gems/markdown-merge/gemfiles/modular/coverage_local.gemfile +++ b/gems/markdown-merge/gemfiles/modular/coverage_local.gemfile @@ -11,19 +11,21 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] -nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) +nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] +nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == "nomono" } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + if nomono_locked + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] + end end -Kernel.send(:gem, 'nomono', *nomono_activation_requirements) -require 'nomono/bundler' +Kernel.send(:gem, "nomono", *nomono_activation_requirements) +require "nomono/bundler" local_gems = %w[kettle-dev kettle-test kettle-soup-cover kettle-drift] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) @@ -33,21 +35,21 @@ local_gems_to_eval = local_gems - %w[markdown-merge] - declared_gems platform :mri do eval_nomono_gems( gems: local_gems_to_eval, - prefix: 'KETTLE_DEV', - path_env: 'KETTLE_DEV_DEV', - vendored_gems_env: 'VENDORED_GEMS', - vendor_gem_dir_env: 'VENDOR_GEM_DIR', - debug_env: 'KETTLE_DEV_DEBUG' + prefix: "KETTLE_DEV", + path_env: "KETTLE_DEV_DEV", + vendored_gems_env: "VENDORED_GEMS", + vendor_gem_dir_env: "VENDOR_GEM_DIR", + debug_env: "KETTLE_DEV_DEBUG" ) - if ENV.fetch('GALTZO_FLOSS_DEV', 'false').casecmp('false') != 0 + if ENV.fetch("GALTZO_FLOSS_DEV", "false").casecmp("false") != 0 eval_nomono_gems( gems: %w[turbo_tests2], - prefix: 'GALTZO_FLOSS', - path_env: 'GALTZO_FLOSS_DEV', - vendored_gems_env: 'GALTZO_FLOSS_VENDORED_GEMS', - vendor_gem_dir_env: 'GALTZO_FLOSS_VENDOR_GEM_DIR', - debug_env: 'GALTZO_FLOSS_DEBUG' + prefix: "GALTZO_FLOSS", + path_env: "GALTZO_FLOSS_DEV", + vendored_gems_env: "GALTZO_FLOSS_VENDORED_GEMS", + vendor_gem_dir_env: "GALTZO_FLOSS_VENDOR_GEM_DIR", + debug_env: "GALTZO_FLOSS_DEBUG" ) end end diff --git a/gems/markdown-merge/gemfiles/modular/debug.gemfile b/gems/markdown-merge/gemfiles/modular/debug.gemfile index eed8d4d1e..4e15b1a3a 100644 --- a/gems/markdown-merge/gemfiles/modular/debug.gemfile +++ b/gems/markdown-merge/gemfiles/modular/debug.gemfile @@ -13,10 +13,10 @@ platform :mri do # Debugging - Ensure ENV["DEBUG"] == "true" to use debuggers within spec suite # Use binding.break, binding.b, or debugger in code - gem 'debug', '>= 1.1' # ruby >= 2.7 + gem "debug", ">= 1.1" # ruby >= 2.7 # Dev Console - Binding.pry - Irb replacement # gem "pry", "~> 0.14" # ruby >= 2.0 end -gem 'gem_bench', '~> 2.0', '>= 2.0.5' +gem "gem_bench", "~> 2.0", ">= 2.0.5" diff --git a/gems/markdown-merge/gemfiles/modular/documentation.gemfile b/gems/markdown-merge/gemfiles/modular/documentation.gemfile index 9d4535f12..d8215416e 100644 --- a/gems/markdown-merge/gemfiles/modular/documentation.gemfile +++ b/gems/markdown-merge/gemfiles/modular/documentation.gemfile @@ -7,20 +7,20 @@ # # Documentation -gem 'kramdown', '~> 2.5', '>= 2.5.2', require: false # Ruby >= 2.5 -gem 'kramdown-parser-gfm', '~> 1.1', require: false # Ruby >= 2.3 -gem 'yaml-converter', '~> 0.2', '>= 0.2.3', require: false # Ruby >= 3.2 -gem 'yard', '~> 0.9', '>= 0.9.45', require: false -gem 'yard-junk', '~> 0.1', '>= 0.1.0', require: false # Ruby >= 3.1 -gem 'yard-relative_markdown_links', '~> 0.6', require: false +gem "kramdown", "~> 2.5", ">= 2.5.2", require: false # Ruby >= 2.5 +gem "kramdown-parser-gfm", "~> 1.1", require: false # Ruby >= 2.3 +gem "yaml-converter", "~> 0.2", ">= 0.2.3", require: false # Ruby >= 3.2 +gem "yard", "~> 0.9", ">= 0.9.45", require: false +gem "yard-junk", "~> 0.1", ">= 0.1.0", require: false # Ruby >= 3.1 +gem "yard-relative_markdown_links", "~> 0.6", require: false -if ENV.fetch('GALTZO_FLOSS_DEV', 'false').casecmp('false').zero? - gem 'yard-fence', '~> 0.9', '>= 0.9.6', require: false # Ruby >= 3.2 - gem 'yard-timekeeper', '~> 0.2', '>= 0.2.4', require: false - gem 'yard-yaml', '~> 0.2', '>= 0.2.3', require: false +if ENV.fetch("GALTZO_FLOSS_DEV", "false").casecmp("false").zero? + gem "yard-fence", "~> 0.9", ">= 0.9.6", require: false # Ruby >= 3.2 + gem "yard-timekeeper", "~> 0.2", ">= 0.2.4", require: false + gem "yard-yaml", "~> 0.2", ">= 0.2.3", require: false else - eval_gemfile 'documentation_local.gemfile' + eval_gemfile "documentation_local.gemfile" end # Std Lib extractions -gem 'rdoc', '~> 6.11', require: false unless ENV.fetch('KJ_FRAMEWORK_MATRIX_GEM', '') == 'rdoc' +gem "rdoc", "~> 6.11", require: false unless ENV.fetch("KJ_FRAMEWORK_MATRIX_GEM", "") == "rdoc" diff --git a/gems/markdown-merge/gemfiles/modular/documentation_local.gemfile b/gems/markdown-merge/gemfiles/modular/documentation_local.gemfile index 598b23cdd..61e166aa0 100644 --- a/gems/markdown-merge/gemfiles/modular/documentation_local.gemfile +++ b/gems/markdown-merge/gemfiles/modular/documentation_local.gemfile @@ -11,19 +11,21 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] -nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) +nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] +nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == "nomono" } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + if nomono_locked + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] + end end -Kernel.send(:gem, 'nomono', *nomono_activation_requirements) -require 'nomono/bundler' +Kernel.send(:gem, "nomono", *nomono_activation_requirements) +require "nomono/bundler" local_gems = %w[yard-fence yard-timekeeper yard-yaml] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) @@ -32,9 +34,9 @@ local_gems_to_eval = local_gems - %w[markdown-merge] - declared_gems # export GALTZO_FLOSS_DEV=/path/to/galtzo-floss eval_nomono_gems( gems: local_gems_to_eval, - prefix: 'GALTZO_FLOSS', - path_env: 'GALTZO_FLOSS_DEV', - vendored_gems_env: 'GALTZO_FLOSS_VENDORED_GEMS', - vendor_gem_dir_env: 'GALTZO_FLOSS_VENDOR_GEM_DIR', - debug_env: 'GALTZO_FLOSS_DEBUG' + prefix: "GALTZO_FLOSS", + path_env: "GALTZO_FLOSS_DEV", + vendored_gems_env: "GALTZO_FLOSS_VENDORED_GEMS", + vendor_gem_dir_env: "GALTZO_FLOSS_VENDOR_GEM_DIR", + debug_env: "GALTZO_FLOSS_DEBUG" ) diff --git a/gems/markdown-merge/gemfiles/modular/erb/r2/v3.0.gemfile b/gems/markdown-merge/gemfiles/modular/erb/r2/v3.0.gemfile index 7c83a239b..c03bd8d85 100644 --- a/gems/markdown-merge/gemfiles/modular/erb/r2/v3.0.gemfile +++ b/gems/markdown-merge/gemfiles/modular/erb/r2/v3.0.gemfile @@ -1 +1 @@ -gem 'erb', '~> 3.0' # ruby >= 2.7.0 +gem "erb", "~> 3.0" # ruby >= 2.7.0 diff --git a/gems/markdown-merge/gemfiles/modular/erb/r3/v5.0.gemfile b/gems/markdown-merge/gemfiles/modular/erb/r3/v5.0.gemfile index ec7ff451f..1bd029cc1 100644 --- a/gems/markdown-merge/gemfiles/modular/erb/r3/v5.0.gemfile +++ b/gems/markdown-merge/gemfiles/modular/erb/r3/v5.0.gemfile @@ -1 +1 @@ -gem 'erb', '~> 6.0', '>= 6.0.6' # ruby >= 3.2.0 +gem "erb", "~> 6.0", ">= 6.0.6" # ruby >= 3.2.0 diff --git a/gems/markdown-merge/gemfiles/modular/erb/r4/v5.0.gemfile b/gems/markdown-merge/gemfiles/modular/erb/r4/v5.0.gemfile index ec7ff451f..1bd029cc1 100644 --- a/gems/markdown-merge/gemfiles/modular/erb/r4/v5.0.gemfile +++ b/gems/markdown-merge/gemfiles/modular/erb/r4/v5.0.gemfile @@ -1 +1 @@ -gem 'erb', '~> 6.0', '>= 6.0.6' # ruby >= 3.2.0 +gem "erb", "~> 6.0", ">= 6.0.6" # ruby >= 3.2.0 diff --git a/gems/markdown-merge/gemfiles/modular/erb/vHEAD.gemfile b/gems/markdown-merge/gemfiles/modular/erb/vHEAD.gemfile index ea0101185..48fee4218 100644 --- a/gems/markdown-merge/gemfiles/modular/erb/vHEAD.gemfile +++ b/gems/markdown-merge/gemfiles/modular/erb/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 3.2 -gem 'erb', github: 'ruby/erb', branch: 'master' +gem "erb", github: "ruby/erb", branch: "master" diff --git a/gems/markdown-merge/gemfiles/modular/json/truffleruby_22_3.gemfile b/gems/markdown-merge/gemfiles/modular/json/truffleruby_22_3.gemfile index 9b2f8d96a..b0e69ab11 100644 --- a/gems/markdown-merge/gemfiles/modular/json/truffleruby_22_3.gemfile +++ b/gems/markdown-merge/gemfiles/modular/json/truffleruby_22_3.gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -if RUBY_ENGINE == 'truffleruby' && RUBY_ENGINE_VERSION.start_with?('22.3') +if RUBY_ENGINE == "truffleruby" && RUBY_ENGINE_VERSION.start_with?("22.3") # TruffleRuby 22.3 ships the json default gem from its emulated MRI Ruby. - gem 'json', '= 2.5.1' + gem "json", "= 2.5.1" end diff --git a/gems/markdown-merge/gemfiles/modular/json/truffleruby_23_0.gemfile b/gems/markdown-merge/gemfiles/modular/json/truffleruby_23_0.gemfile index d787a5ef4..7b2660a2b 100644 --- a/gems/markdown-merge/gemfiles/modular/json/truffleruby_23_0.gemfile +++ b/gems/markdown-merge/gemfiles/modular/json/truffleruby_23_0.gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -if RUBY_ENGINE == 'truffleruby' && RUBY_ENGINE_VERSION.start_with?('23.0') +if RUBY_ENGINE == "truffleruby" && RUBY_ENGINE_VERSION.start_with?("23.0") # TruffleRuby 23.0 ships the json default gem from its emulated MRI Ruby. - gem 'json', '= 2.6.1' + gem "json", "= 2.6.1" end diff --git a/gems/markdown-merge/gemfiles/modular/json/truffleruby_23_1.gemfile b/gems/markdown-merge/gemfiles/modular/json/truffleruby_23_1.gemfile index d78486b0e..dfa21f2e4 100644 --- a/gems/markdown-merge/gemfiles/modular/json/truffleruby_23_1.gemfile +++ b/gems/markdown-merge/gemfiles/modular/json/truffleruby_23_1.gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -if RUBY_ENGINE == 'truffleruby' && RUBY_ENGINE_VERSION.start_with?('23.1') +if RUBY_ENGINE == "truffleruby" && RUBY_ENGINE_VERSION.start_with?("23.1") # TruffleRuby 23.1 ships the json default gem from its emulated MRI Ruby. - gem 'json', '= 2.6.3' + gem "json", "= 2.6.3" end diff --git a/gems/markdown-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile b/gems/markdown-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile index e27f1bbae..42e9d9bd4 100644 --- a/gems/markdown-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile +++ b/gems/markdown-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 -gem 'mutex_m', '~> 0.2' +gem "mutex_m", "~> 0.2" diff --git a/gems/markdown-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile b/gems/markdown-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile index e27f1bbae..42e9d9bd4 100644 --- a/gems/markdown-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile +++ b/gems/markdown-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 -gem 'mutex_m', '~> 0.2' +gem "mutex_m", "~> 0.2" diff --git a/gems/markdown-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile b/gems/markdown-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile index e27f1bbae..42e9d9bd4 100644 --- a/gems/markdown-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile +++ b/gems/markdown-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 -gem 'mutex_m', '~> 0.2' +gem "mutex_m", "~> 0.2" diff --git a/gems/markdown-merge/gemfiles/modular/mutex_m/vHEAD.gemfile b/gems/markdown-merge/gemfiles/modular/mutex_m/vHEAD.gemfile index 9dac2f6cb..8af3b6fca 100644 --- a/gems/markdown-merge/gemfiles/modular/mutex_m/vHEAD.gemfile +++ b/gems/markdown-merge/gemfiles/modular/mutex_m/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 (dependency of omniauth) -gem 'mutex_m', github: 'ruby/mutex_m', branch: 'master' +gem "mutex_m", github: "ruby/mutex_m", branch: "master" diff --git a/gems/markdown-merge/gemfiles/modular/optional.gemfile b/gems/markdown-merge/gemfiles/modular/optional.gemfile index 9ea429538..80bc45196 100644 --- a/gems/markdown-merge/gemfiles/modular/optional.gemfile +++ b/gems/markdown-merge/gemfiles/modular/optional.gemfile @@ -9,8 +9,8 @@ # Optional dependencies are not depended on directly, but may be used if present. # Required for curated binstubs generated by kettle-jem install -gem 'rbs', '>= 3.0', require: false # ruby >= 3.1 +gem "rbs", ">= 3.0", require: false # ruby >= 3.1 # Required for kettle-pre-release # URL parsing with Unicode support (falls back to URI if not available) -gem 'addressable', '>= 2.8', '< 3' # ruby >= 2.2 +gem "addressable", ">= 2.8", "< 3" # ruby >= 2.2 diff --git a/gems/markdown-merge/gemfiles/modular/rspec.gemfile b/gems/markdown-merge/gemfiles/modular/rspec.gemfile index 2af210a41..72fdf8b7f 100644 --- a/gems/markdown-merge/gemfiles/modular/rspec.gemfile +++ b/gems/markdown-merge/gemfiles/modular/rspec.gemfile @@ -1,4 +1,4 @@ -gem 'rspec_junit_formatter', - github: 'pboling/rspec_junit_formatter', - branch: 'main', - ref: '9e6bcaaedd49477b62878ed568dc4ada5cc7cb5e' +gem "rspec_junit_formatter", + github: "pboling/rspec_junit_formatter", + branch: "main", + ref: "9e6bcaaedd49477b62878ed568dc4ada5cc7cb5e" diff --git a/gems/markdown-merge/gemfiles/modular/runtime_heads.gemfile b/gems/markdown-merge/gemfiles/modular/runtime_heads.gemfile index ebf17c529..02f134c7f 100644 --- a/gems/markdown-merge/gemfiles/modular/runtime_heads.gemfile +++ b/gems/markdown-merge/gemfiles/modular/runtime_heads.gemfile @@ -8,4 +8,4 @@ # Test against HEAD of runtime dependencies so we can proactively file bugs -eval_gemfile('x_std_libs/vHEAD.gemfile') +eval_gemfile("x_std_libs/vHEAD.gemfile") diff --git a/gems/markdown-merge/gemfiles/modular/stringio/r2/v3.0.gemfile b/gems/markdown-merge/gemfiles/modular/stringio/r2/v3.0.gemfile index 3616f4e3a..e85bb18ee 100644 --- a/gems/markdown-merge/gemfiles/modular/stringio/r2/v3.0.gemfile +++ b/gems/markdown-merge/gemfiles/modular/stringio/r2/v3.0.gemfile @@ -2,4 +2,4 @@ # NOT SEMVER # Version 3.0.7 dropped support for Ruby <= 2.7 # Version 3.0.0 dropped support for Ruby <= 2.4 -gem 'stringio', '>= 3.0' +gem "stringio", ">= 3.0" diff --git a/gems/markdown-merge/gemfiles/modular/stringio/r3/v3.0.gemfile b/gems/markdown-merge/gemfiles/modular/stringio/r3/v3.0.gemfile index 3616f4e3a..e85bb18ee 100644 --- a/gems/markdown-merge/gemfiles/modular/stringio/r3/v3.0.gemfile +++ b/gems/markdown-merge/gemfiles/modular/stringio/r3/v3.0.gemfile @@ -2,4 +2,4 @@ # NOT SEMVER # Version 3.0.7 dropped support for Ruby <= 2.7 # Version 3.0.0 dropped support for Ruby <= 2.4 -gem 'stringio', '>= 3.0' +gem "stringio", ">= 3.0" diff --git a/gems/markdown-merge/gemfiles/modular/stringio/r4/v3.0.gemfile b/gems/markdown-merge/gemfiles/modular/stringio/r4/v3.0.gemfile index 3616f4e3a..e85bb18ee 100644 --- a/gems/markdown-merge/gemfiles/modular/stringio/r4/v3.0.gemfile +++ b/gems/markdown-merge/gemfiles/modular/stringio/r4/v3.0.gemfile @@ -2,4 +2,4 @@ # NOT SEMVER # Version 3.0.7 dropped support for Ruby <= 2.7 # Version 3.0.0 dropped support for Ruby <= 2.4 -gem 'stringio', '>= 3.0' +gem "stringio", ">= 3.0" diff --git a/gems/markdown-merge/gemfiles/modular/stringio/vHEAD.gemfile b/gems/markdown-merge/gemfiles/modular/stringio/vHEAD.gemfile index 78f5f5d8a..5f2a74126 100644 --- a/gems/markdown-merge/gemfiles/modular/stringio/vHEAD.gemfile +++ b/gems/markdown-merge/gemfiles/modular/stringio/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 (dependency of omniauth) -gem 'stringio', github: 'ruby/stringio', branch: 'master' +gem "stringio", github: "ruby/stringio", branch: "master" diff --git a/gems/markdown-merge/gemfiles/modular/style.gemfile b/gems/markdown-merge/gemfiles/modular/style.gemfile index 4dbcc02c0..35de4dcd6 100644 --- a/gems/markdown-merge/gemfiles/modular/style.gemfile +++ b/gems/markdown-merge/gemfiles/modular/style.gemfile @@ -9,23 +9,23 @@ # Style tasks run on the latest Ruby; RuboCop-LTS selects the compatibility # rules for the configured Ruby floor independently from task dependency floors. -gem 'reek', '~> 6.5', '>= 6.5.0' +gem "reek", "~> 6.5", ">= 6.5.0" platform :mri do - gem 'appraisal2-rubocop', '~> 1.0', '>= 1.0.0', require: false - gem 'rubocop-gradual', '~> 0.4', '>= 0.4.0' - gem 'rubocop-minitest', '~> 0.40', '>= 0.40.0' - gem 'rubocop-on-rbs', '~> 2.0', '>= 2.0.0' # ruby >= 3.2.0 + gem "appraisal2-rubocop", "~> 1.0", ">= 1.0.0", require: false + gem "rubocop-gradual", "~> 0.4", ">= 0.4.0" + gem "rubocop-minitest", "~> 0.40", ">= 0.40.0" + gem "rubocop-on-rbs", "~> 2.0", ">= 2.0.0" # ruby >= 3.2.0 # gem "rubocop", "~> 1.73", ">= 1.73.2" # constrained by standard - gem 'rubocop-packaging', '~> 0.6', '>= 0.6.0' - gem 'standard', '~> 1.56', '>= 1.56.0' + gem "rubocop-packaging", "~> 0.6", ">= 0.6.0" + gem "standard", "~> 1.56", ">= 1.56.0" - if ENV.fetch('RUBOCOP_LTS_LOCAL', 'false').casecmp('false').zero? + if ENV.fetch("RUBOCOP_LTS_LOCAL", "false").casecmp("false").zero? declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) - gem 'rubocop-lts', '~> 24.2', '>= 24.2.1' unless declared_gems.include?('rubocop-lts') - gem 'rubocop-lts-rspec', '~> 1.0', '>= 1.0.5' unless declared_gems.include?('rubocop-lts-rspec') - gem 'rubocop-ruby3_2', '~> 3.0', '>= 3.0.6' unless declared_gems.include?('rubocop-ruby3_2') + gem "rubocop-lts", "~> 24.2", ">= 24.2.1" unless declared_gems.include?("rubocop-lts") + gem "rubocop-lts-rspec", "~> 1.0", ">= 1.0.5" unless declared_gems.include?("rubocop-lts-rspec") + gem "rubocop-ruby3_2", "~> 3.0", ">= 3.0.6" unless declared_gems.include?("rubocop-ruby3_2") else - eval_gemfile('style_local.gemfile') + eval_gemfile("style_local.gemfile") end end diff --git a/gems/markdown-merge/gemfiles/modular/style_local.gemfile b/gems/markdown-merge/gemfiles/modular/style_local.gemfile index 9ac180b1b..9c53346ee 100644 --- a/gems/markdown-merge/gemfiles/modular/style_local.gemfile +++ b/gems/markdown-merge/gemfiles/modular/style_local.gemfile @@ -14,19 +14,21 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] -nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) +nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] +nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == "nomono" } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + if nomono_locked + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] + end end -Kernel.send(:gem, 'nomono', *nomono_activation_requirements) -require 'nomono/bundler' +Kernel.send(:gem, "nomono", *nomono_activation_requirements) +require "nomono/bundler" local_gems = %w[rubocop-lts rubocop-lts-rspec rubocop-ruby3_2 standard-rubocop-lts] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) @@ -36,11 +38,11 @@ local_gems_to_eval = local_gems - %w[markdown-merge] - declared_gems platform :mri do eval_nomono_gems( gems: local_gems_to_eval, - prefix: 'RUBOCOP_LTS', - path_env: 'RUBOCOP_LTS_LOCAL', - vendored_gems_env: 'VENDORED_GEMS', - vendor_gem_dir_env: 'VENDOR_GEM_DIR', - debug_env: 'RUBOCOP_LTS_DEBUG', - root: %w[src rubocop-lts] + prefix: "RUBOCOP_LTS", + path_env: "RUBOCOP_LTS_LOCAL", + vendored_gems_env: "VENDORED_GEMS", + vendor_gem_dir_env: "VENDOR_GEM_DIR", + debug_env: "RUBOCOP_LTS_DEBUG", + root: ["src", "rubocop-lts"] ) end diff --git a/gems/markdown-merge/gemfiles/modular/templating.gemfile b/gems/markdown-merge/gemfiles/modular/templating.gemfile index a672de184..47138ffbb 100644 --- a/gems/markdown-merge/gemfiles/modular/templating.gemfile +++ b/gems/markdown-merge/gemfiles/modular/templating.gemfile @@ -1,18 +1,18 @@ # frozen_string_literal: true -structuredmerge_remote = ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false').zero? -kettle_remote = ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? +structuredmerge_remote = ENV.fetch("STRUCTUREDMERGE_DEV", "false").casecmp("false").zero? +kettle_remote = ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false").zero? if structuredmerge_remote # Parser dependencies for released installs. - gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' + gem "tree_sitter_language_pack", "~> 1.13", ">= 1.13.3" # Merge recipes for released installs. - gem 'kettle-jem', '>= 7.0' + gem "kettle-jem", ">= 7.0" end if kettle_remote # Template/plugin checks for released installs. - gem 'kettle-drift', '~> 1.0', '>= 1.0.6', require: false + gem "kettle-drift", "~> 1.0", ">= 1.0.6", require: false end # Set STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local development with path-based dependencies. @@ -21,4 +21,4 @@ end # # Set KETTLE_DEV_DEV=/path/to/my for local development with Kettle plugin gems. # When false (default / CI), released Kettle plugin gems are used. -eval_gemfile 'templating_local.gemfile' unless structuredmerge_remote && kettle_remote +eval_gemfile "templating_local.gemfile" unless structuredmerge_remote && kettle_remote diff --git a/gems/markdown-merge/gemfiles/modular/templating_local.gemfile b/gems/markdown-merge/gemfiles/modular/templating_local.gemfile index 586e485d9..ddaba77fd 100644 --- a/gems/markdown-merge/gemfiles/modular/templating_local.gemfile +++ b/gems/markdown-merge/gemfiles/modular/templating_local.gemfile @@ -12,19 +12,21 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] -nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) +nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] +nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == "nomono" } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + if nomono_locked + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] + end end -Kernel.send(:gem, 'nomono', *nomono_activation_requirements) -require 'nomono/bundler' +Kernel.send(:gem, "nomono", *nomono_activation_requirements) +require "nomono/bundler" structuredmerge_local_gems = %w[ tree_haver @@ -67,25 +69,25 @@ structuredmerge_local_gems_to_eval = structuredmerge_local_gems - %w[markdown-me kettle_dev_local_gems_to_eval = kettle_dev_local_gems - %w[markdown-merge] - declared_gems platform :mri do - if ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false') != 0 + if ENV.fetch("STRUCTUREDMERGE_DEV", "false").casecmp("false") != 0 eval_nomono_gems( gems: structuredmerge_local_gems_to_eval, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - vendored_gems_env: 'VENDORED_GEMS', - vendor_gem_dir_env: 'VENDOR_GEM_DIR', - debug_env: 'STRUCTUREDMERGE_DEBUG' + prefix: "STRUCTUREDMERGE", + path_env: "STRUCTUREDMERGE_DEV", + vendored_gems_env: "VENDORED_GEMS", + vendor_gem_dir_env: "VENDOR_GEM_DIR", + debug_env: "STRUCTUREDMERGE_DEBUG" ) end - if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false') != 0 + if ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false") != 0 eval_nomono_gems( gems: kettle_dev_local_gems_to_eval, - prefix: 'KETTLE_DEV', - path_env: 'KETTLE_DEV_DEV', - vendored_gems_env: 'VENDORED_GEMS', - vendor_gem_dir_env: 'VENDOR_GEM_DIR', - debug_env: 'KETTLE_DEV_DEBUG' + prefix: "KETTLE_DEV", + path_env: "KETTLE_DEV_DEV", + vendored_gems_env: "VENDORED_GEMS", + vendor_gem_dir_env: "VENDOR_GEM_DIR", + debug_env: "KETTLE_DEV_DEBUG" ) end end diff --git a/gems/markdown-merge/gemfiles/modular/webrick/r4/v1.9.gemfile b/gems/markdown-merge/gemfiles/modular/webrick/r4/v1.9.gemfile index b1329ba84..eaab4a473 100644 --- a/gems/markdown-merge/gemfiles/modular/webrick/r4/v1.9.gemfile +++ b/gems/markdown-merge/gemfiles/modular/webrick/r4/v1.9.gemfile @@ -1 +1 @@ -gem 'webrick', '~> 1.9' +gem "webrick", "~> 1.9" diff --git a/gems/markdown-merge/gemfiles/modular/webrick/vHEAD.gemfile b/gems/markdown-merge/gemfiles/modular/webrick/vHEAD.gemfile index c7e6f81a1..8a789b634 100644 --- a/gems/markdown-merge/gemfiles/modular/webrick/vHEAD.gemfile +++ b/gems/markdown-merge/gemfiles/modular/webrick/vHEAD.gemfile @@ -1 +1 @@ -gem 'webrick', '>= 1.9' +gem "webrick", ">= 1.9" diff --git a/gems/markdown-merge/gemfiles/modular/x_std_libs.gemfile b/gems/markdown-merge/gemfiles/modular/x_std_libs.gemfile index b1f43c097..77aad43f2 100644 --- a/gems/markdown-merge/gemfiles/modular/x_std_libs.gemfile +++ b/gems/markdown-merge/gemfiles/modular/x_std_libs.gemfile @@ -1,12 +1,12 @@ ### Std Lib Extracted Gems ruby_version = Gem::Version.new(RUBY_VERSION) -if ruby_version >= Gem::Version.new('4.0') - eval_gemfile 'x_std_libs/r4/libs.gemfile' -elsif ruby_version >= Gem::Version.new('3.2') - eval_gemfile 'x_std_libs/r3/libs.gemfile' -elsif ruby_version >= Gem::Version.new('3.1') - eval_gemfile 'x_std_libs/r3.1/libs.gemfile' +if ruby_version >= Gem::Version.new("4.0") + eval_gemfile "x_std_libs/r4/libs.gemfile" +elsif ruby_version >= Gem::Version.new("3.2") + eval_gemfile "x_std_libs/r3/libs.gemfile" +elsif ruby_version >= Gem::Version.new("3.1") + eval_gemfile "x_std_libs/r3.1/libs.gemfile" else - eval_gemfile 'x_std_libs/r2/libs.gemfile' + eval_gemfile "x_std_libs/r2/libs.gemfile" end diff --git a/gems/markdown-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile b/gems/markdown-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile index 16a5e3d70..441c4f03a 100644 --- a/gems/markdown-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile +++ b/gems/markdown-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile @@ -1,3 +1,3 @@ -eval_gemfile '../../erb/r2/v3.0.gemfile' -eval_gemfile '../../mutex_m/r2/v0.3.gemfile' -eval_gemfile '../../stringio/r2/v3.0.gemfile' +eval_gemfile "../../erb/r2/v3.0.gemfile" +eval_gemfile "../../mutex_m/r2/v0.3.gemfile" +eval_gemfile "../../stringio/r2/v3.0.gemfile" diff --git a/gems/markdown-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile b/gems/markdown-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile index 220ff95c1..c293a3ddd 100644 --- a/gems/markdown-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile +++ b/gems/markdown-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile @@ -1,3 +1,3 @@ -eval_gemfile '../../erb/r3/v5.0.gemfile' -eval_gemfile '../../mutex_m/r3/v0.3.gemfile' -eval_gemfile '../../stringio/r3/v3.0.gemfile' +eval_gemfile "../../erb/r3/v5.0.gemfile" +eval_gemfile "../../mutex_m/r3/v0.3.gemfile" +eval_gemfile "../../stringio/r3/v3.0.gemfile" diff --git a/gems/markdown-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile b/gems/markdown-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile index e2f6501eb..eb5574247 100644 --- a/gems/markdown-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile +++ b/gems/markdown-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile @@ -1,6 +1,6 @@ -eval_gemfile '../../erb/r4/v5.0.gemfile' -eval_gemfile '../../mutex_m/r4/v0.3.gemfile' -eval_gemfile '../../stringio/r4/v3.0.gemfile' -eval_gemfile '../../benchmark/r4/v0.5.gemfile' -eval_gemfile '../../cgi/r4/v0.5.gemfile' -eval_gemfile '../../webrick/r4/v1.9.gemfile' +eval_gemfile "../../erb/r4/v5.0.gemfile" +eval_gemfile "../../mutex_m/r4/v0.3.gemfile" +eval_gemfile "../../stringio/r4/v3.0.gemfile" +eval_gemfile "../../benchmark/r4/v0.5.gemfile" +eval_gemfile "../../cgi/r4/v0.5.gemfile" +eval_gemfile "../../webrick/r4/v1.9.gemfile" diff --git a/gems/markdown-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile b/gems/markdown-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile index ab75cccf1..d4d5b16c9 100644 --- a/gems/markdown-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile +++ b/gems/markdown-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile @@ -1,6 +1,6 @@ -eval_gemfile '../erb/vHEAD.gemfile' -eval_gemfile '../mutex_m/vHEAD.gemfile' -eval_gemfile '../stringio/vHEAD.gemfile' -eval_gemfile '../benchmark/vHEAD.gemfile' -eval_gemfile '../cgi/vHEAD.gemfile' -eval_gemfile '../webrick/vHEAD.gemfile' +eval_gemfile "../erb/vHEAD.gemfile" +eval_gemfile "../mutex_m/vHEAD.gemfile" +eval_gemfile "../stringio/vHEAD.gemfile" +eval_gemfile "../benchmark/vHEAD.gemfile" +eval_gemfile "../cgi/vHEAD.gemfile" +eval_gemfile "../webrick/vHEAD.gemfile" diff --git a/gems/markdown-merge/lib/markdown/merge/version.rb b/gems/markdown-merge/lib/markdown/merge/version.rb index c8ba076ae..fe631f91a 100644 --- a/gems/markdown-merge/lib/markdown/merge/version.rb +++ b/gems/markdown-merge/lib/markdown/merge/version.rb @@ -3,7 +3,7 @@ module Markdown module Merge module Version - VERSION = '7.1.0' + VERSION = "7.1.0" end VERSION = Version::VERSION # Traditional Constant Location end diff --git a/gems/markdown-merge/spec/spec_helper.rb b/gems/markdown-merge/spec/spec_helper.rb index 2cd2e2fd6..c4ea6c695 100644 --- a/gems/markdown-merge/spec/spec_helper.rb +++ b/gems/markdown-merge/spec/spec_helper.rb @@ -7,11 +7,16 @@ # NOTE: Gemfiles for non-coverage appraisals may not have kettle-soup-cover. # The rescue LoadError handles that scenario. begin - require 'kettle-soup-cover' - require 'simplecov' if Kettle::Soup::Cover::DO_COV # `.simplecov` is run here! -rescue LoadError => e + require "kettle-soup-cover" + if Kettle::Soup::Cover::DO_COV + # Requiring simplecov loads the project-local `.simplecov`. + require "simplecov" + require "kettle/soup/cover/config" + SimpleCov.start + end +rescue LoadError => error # check the error message and re-raise when unexpected - raise e unless e.message.include?('kettle') + raise error unless error.message.include?("kettle") end # External RSpec & related config diff --git a/gems/prism-merge/.kettle-drift.lock b/gems/prism-merge/.kettle-drift.lock index bf85fa76f..9a486b4b3 100644 --- a/gems/prism-merge/.kettle-drift.lock +++ b/gems/prism-merge/.kettle-drift.lock @@ -1,10 +1,74 @@ { + "(direct_sibling_local ||\nENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?)": [ + { + "file": "Gemfile", + "lines": [ + 79, + 119 + ] + } + ], + ".find { |spec| spec.name == 'nomono' }\nnomono_locked = nomono_locked_spec &&": [ + { + "file": "Gemfile", + "lines": [ + 90, + 130 + ] + } + ], + "ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?)\ndirect_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV')": [ + { + "file": "Gemfile", + "lines": [ + 80, + 120 + ] + } + ], + "Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version)\nnomono_activation_requirements = [\"= #{nomono_locked_spec.version}\"] if nomono_locked": [ + { + "file": "Gemfile", + "lines": [ + 92, + 132 + ] + } + ], + "Kernel.send(:gem, 'nomono', *nomono_activation_requirements)\nrequire 'nomono/bundler'": [ + { + "file": "Gemfile", + "lines": [ + 95, + 135 + ] + } + ], + "direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV')\ndirect_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil)": [ + { + "file": "Gemfile", + "lines": [ + 81, + 121 + ] + } + ], "eval_nomono_gems(\ngems: direct_sibling_gems,": [ { "file": "Gemfile", "lines": [ 59, - 99 + 99, + 139 + ] + } + ], + "gems: direct_sibling_gems,\nprefix: 'STRUCTUREDMERGE',": [ + { + "file": "Gemfile", + "lines": [ + 100, + 140 ] } ], @@ -13,7 +77,17 @@ "file": "Gemfile", "lines": [ 42, - 86 + 86, + 126 + ] + } + ], + "if direct_sibling_dev_was_set\nENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original": [ + { + "file": "Gemfile", + "lines": [ + 109, + 149 ] } ], @@ -22,7 +96,8 @@ "file": "Gemfile", "lines": [ 34, - 78 + 78, + 118 ] } ], @@ -31,7 +106,17 @@ "file": "Gemfile", "lines": [ 68, - 108 + 108, + 148 + ] + } + ], + "nomono_activation_requirements = nomono_requirements\nnomono_lockfile = File.expand_path('Gemfile.lock', __dir__)": [ + { + "file": "Gemfile", + "lines": [ + 84, + 124 ] } ], @@ -40,7 +125,8 @@ "file": "Gemfile", "lines": [ 47, - 91 + 91, + 131 ] } ], @@ -49,7 +135,53 @@ "file": "Gemfile", "lines": [ 43, - 87 + 87, + 127 + ] + } + ], + "nomono_lockfile = File.expand_path('Gemfile.lock', __dir__)\nif File.file?(nomono_lockfile)": [ + { + "file": "Gemfile", + "lines": [ + 85, + 125 + ] + } + ], + "path_env: 'STRUCTUREDMERGE_DEV',\nroot: %w[src my structuredmerge]": [ + { + "file": "Gemfile", + "lines": [ + 102, + 142 + ] + } + ], + "prefix: 'STRUCTUREDMERGE',\npath_env: 'STRUCTUREDMERGE_DEV',": [ + { + "file": "Gemfile", + "lines": [ + 101, + 141 + ] + } + ], + "require 'nomono/bundler'\nENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local": [ + { + "file": "Gemfile", + "lines": [ + 96, + 136 + ] + } + ], + "rescue LoadError\nwarn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.'": [ + { + "file": "Gemfile", + "lines": [ + 105, + 145 ] } ] diff --git a/gems/prism-merge/.rubocop_gradual.lock b/gems/prism-merge/.rubocop_gradual.lock deleted file mode 100644 index f60d8c7a3..000000000 --- a/gems/prism-merge/.rubocop_gradual.lock +++ /dev/null @@ -1,707 +0,0 @@ -{ - ".simplecov:3138125134": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "Rakefile:22363789": [ - [18, 121, 17, "Layout/LineLength: Line is too long. [137/120]", 174264873], - [79, 3, 1023, "Metrics/BlockLength: Block has too many lines. [32/25]", 54868638], - [163, 121, 22, "Layout/LineLength: Line is too long. [142/120]", 1367093088], - [166, 121, 18, "Layout/LineLength: Line is too long. [138/120]", 3881946477] - ], - "gemfiles/modular/benchmark/r4/v0.5.gemfile:3644720371": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/benchmark/vHEAD.gemfile:2838879269": [ - [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/cgi/r4/v0.5.gemfile:367169322": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] - ], - "gemfiles/modular/cgi/vHEAD.gemfile:2729540777": [ - [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] - ], - "gemfiles/modular/erb/r2/v3.0.gemfile:1688285565": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] - ], - "gemfiles/modular/erb/r3/v5.0.gemfile:2394062339": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] - ], - "gemfiles/modular/erb/r4/v5.0.gemfile:2394062339": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] - ], - "gemfiles/modular/erb/vHEAD.gemfile:981929959": [ - [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/mutex_m/r2/v0.3.gemfile:4055275004": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/mutex_m/r3/v0.3.gemfile:4055275004": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/mutex_m/r4/v0.3.gemfile:4055275004": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/mutex_m/vHEAD.gemfile:556854763": [ - [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/rspec.gemfile:2263543889": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] - ], - "gemfiles/modular/stringio/r2/v3.0.gemfile:821604304": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/stringio/r3/v3.0.gemfile:821604304": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/stringio/r4/v3.0.gemfile:821604304": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/stringio/vHEAD.gemfile:1045839691": [ - [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/webrick/r4/v1.9.gemfile:3092661193": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] - ], - "gemfiles/modular/webrick/vHEAD.gemfile:3867684682": [ - [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] - ], - "gemfiles/modular/x_std_libs.gemfile:2324400122": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/x_std_libs/r2/libs.gemfile:36276542": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] - ], - "gemfiles/modular/x_std_libs/r3/libs.gemfile:4030570297": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] - ], - "gemfiles/modular/x_std_libs/r4/libs.gemfile:732451732": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] - ], - "gemfiles/modular/x_std_libs/vHEAD.gemfile:2390363993": [ - [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] - ], - "lib/prism-merge.rb:226590672": [ - [1, 1, 0, "Naming/FileName: The name of this source file (`prism-merge.rb`) should use snake_case.", 5381] - ], - "lib/prism/merge.rb:1325756945": [ - [12, 3, 12, "Style/Documentation: Missing top-level documentation comment for `module Prism::Merge`.", 2866359175], - [12, 3, 52397, "Metrics/ModuleLength: Module has too many lines. [1199/100]", 1955834049], - [13, 5, 11, "Style/ModuleFunction: Use `module_function` instead of `extend self`.", 1210897631], - [24, 5, 16, "Style/Documentation: Missing top-level documentation comment for `class Prism::Merge::ParseError`.", 362242086], - [120, 5, 1996, "Metrics/MethodLength: Method has too many lines. [42/10]", 709892915], - [165, 5, 1804, "Metrics/MethodLength: Method has too many lines. [37/10]", 3641862107], - [205, 5, 1012, "Metrics/MethodLength: Method has too many lines. [23/10]", 3112984532], - [243, 5, 695, "Metrics/MethodLength: Method has too many lines. [17/10]", 321495946], - [263, 5, 1801, "Metrics/MethodLength: Method has too many lines. [37/10]", 3355654893], - [264, 121, 5, "Layout/LineLength: Line is too long. [125/120]", 180584319], - [303, 5, 7357, "Metrics/AbcSize: Assignment Branch Condition size for `ruby_structured_edit_batch_report_projection` is too high. [<1, 31, 0> 31.02/17]", 2583247591], - [303, 5, 7357, "Metrics/MethodLength: Method has too many lines. [139/10]", 2583247591], - [304, 121, 5, "Layout/LineLength: Line is too long. [125/120]", 180584319], - [323, 121, 25, "Layout/LineLength: Line is too long. [145/120]", 949635646], - [361, 121, 42, "Layout/LineLength: Line is too long. [162/120]", 1330685294], - [445, 5, 932, "Metrics/AbcSize: Assignment Branch Condition size for `parse_ruby` is too high. [<3, 17, 7> 18.63/17]", 2894794051], - [445, 5, 932, "Metrics/MethodLength: Method has too many lines. [23/10]", 2894794051], - [473, 5, 491, "Metrics/MethodLength: Method has too many lines. [12/10]", 3211170428], - [488, 5, 3333, "Metrics/AbcSize: Assignment Branch Condition size for `parse_ruby_normalized` is too high. [<20, 68, 28> 76.21/17]", 3141190358], - [488, 5, 3333, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `parse_ruby_normalized` is too high. [23/7]", 3141190358], - [488, 5, 3333, "Metrics/MethodLength: Method has too many lines. [72/10]", 3141190358], - [488, 5, 3333, "Metrics/PerceivedComplexity: Perceived complexity for `parse_ruby_normalized` is too high. [23/8]", 3141190358], - [570, 5, 3671, "Metrics/AbcSize: Assignment Branch Condition size for `apply_edit_projection` is too high. [<14, 62, 19> 66.34/17]", 1859418783], - [570, 5, 3671, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `apply_edit_projection` is too high. [12/7]", 1859418783], - [570, 5, 3671, "Metrics/MethodLength: Method has too many lines. [66/10]", 1859418783], - [570, 5, 3671, "Metrics/PerceivedComplexity: Perceived complexity for `apply_edit_projection` is too high. [13/8]", 1859418783], - [616, 18, 176, "Style/StringConcatenation: Prefer string interpolation to string concatenation.", 3247522762], - [649, 5, 1505, "Metrics/MethodLength: Method has too many lines. [33/10]", 2499202345], - [649, 19, 292, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [10/5]", 676979469], - [710, 5, 583, "Metrics/MethodLength: Method has too many lines. [13/10]", 1484312517], - [727, 5, 551, "Metrics/AbcSize: Assignment Branch Condition size for `normalize_ruby_require_aliases` is too high. [<11, 15, 7> 19.87/17]", 2507514607], - [727, 5, 551, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `normalize_ruby_require_aliases` is too high. [8/7]", 2507514607], - [727, 5, 551, "Metrics/MethodLength: Method has too many lines. [17/10]", 2507514607], - [748, 5, 304, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `ruby_dsl_call_node` is too high. [8/7]", 2466841613], - [771, 5, 1305, "Metrics/AbcSize: Assignment Branch Condition size for `merge_ruby_with_reviewed_nested_outputs` is too high. [<7, 17, 5> 19.05/17]", 3657868136], - [771, 5, 1305, "Metrics/MethodLength: Method has too many lines. [27/10]", 3657868136], - [771, 48, 140, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 132256850], - [804, 5, 1015, "Metrics/MethodLength: Method has too many lines. [17/10]", 757789356], - [814, 121, 70, "Layout/LineLength: Line is too long. [190/120]", 1956194284], - [827, 5, 928, "Metrics/MethodLength: Method has too many lines. [16/10]", 1039420596], - [837, 121, 17, "Layout/LineLength: Line is too long. [137/120]", 3013228499], - [849, 5, 1003, "Metrics/MethodLength: Method has too many lines. [17/10]", 3313354796], - [859, 121, 62, "Layout/LineLength: Line is too long. [182/120]", 1636990749], - [872, 5, 936, "Metrics/MethodLength: Method has too many lines. [16/10]", 2825710110], - [882, 121, 17, "Layout/LineLength: Line is too long. [137/120]", 3013228499], - [906, 5, 662, "Metrics/MethodLength: Method has too many lines. [19/10]", 772959042], - [927, 7, 11, "Style/MultilineBlockChain: Avoid multi-line chains of blocks.", 848344986], - [930, 5, 849, "Metrics/AbcSize: Assignment Branch Condition size for `prism_ruby_discovered_surfaces` is too high. [<12, 16, 6> 20.88/17]", 2509812469], - [930, 5, 849, "Metrics/MethodLength: Method has too many lines. [23/10]", 2509812469], - [961, 5, 1195, "Metrics/AbcSize: Assignment Branch Condition size for `prism_ruby_surfaces_for_owner` is too high. [<6, 19, 3> 20.15/17]", 1713430182], - [961, 5, 1195, "Metrics/MethodLength: Method has too many lines. [20/10]", 1713430182], - [986, 5, 1216, "Metrics/AbcSize: Assignment Branch Condition size for `prism_ruby_example_surfaces` is too high. [<4, 20, 2> 20.49/17]", 2225356615], - [986, 5, 1216, "Metrics/MethodLength: Method has too many lines. [22/10]", 2225356615], - [1058, 5, 421, "Metrics/MethodLength: Method has too many lines. [14/10]", 26440736], - [1089, 5, 827, "Metrics/MethodLength: Method has too many lines. [18/10]", 4288402374], - [1130, 5, 876, "Metrics/MethodLength: Method has too many lines. [23/10]", 3423854231], - [1168, 5, 1155, "Metrics/AbcSize: Assignment Branch Condition size for `prism_comment_node` is too high. [<1, 22, 0> 22.02/17]", 4287909739], - [1168, 5, 1155, "Metrics/MethodLength: Method has too many lines. [28/10]", 4287909739], - [1199, 5, 888, "Metrics/MethodLength: Method has too many lines. [27/10]", 3798554661], - [1251, 5, 920, "Metrics/MethodLength: Method has too many lines. [23/10]", 917985568] - ], - "lib/prism/merge/begin_node_clause_body_merger.rb:1042804537": [ - [5, 5, 31, "Style/Documentation: Missing top-level documentation comment for `class Prism::Merge::BeginNodeClauseBodyMerger`.", 1242162299], - [19, 7, 1511, "Metrics/AbcSize: Assignment Branch Condition size for `merge` is too high. [<5, 37, 1> 37.35/17]", 3275719934], - [19, 7, 1511, "Metrics/MethodLength: Method has too many lines. [32/10]", 3275719934] - ], - "lib/prism/merge/begin_node_clause_body_support.rb:787370708": [ - [5, 5, 32, "Style/Documentation: Missing top-level documentation comment for `class Prism::Merge::BeginNodeClauseBodySupport`.", 3341069278], - [5, 5, 7504, "Metrics/ClassLength: Class has too many lines. [142/100]", 1403116805], - [8, 21, 100, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 4145084810], - [22, 7, 937, "Metrics/AbcSize: Assignment Branch Condition size for `clause_header_end_line` is too high. [<5, 29, 16> 33.5/17]", 2050282033], - [22, 7, 937, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `clause_header_end_line` is too high. [16/7]", 2050282033], - [22, 7, 937, "Metrics/MethodLength: Method has too many lines. [14/10]", 2050282033], - [22, 7, 937, "Metrics/PerceivedComplexity: Perceived complexity for `clause_header_end_line` is too high. [16/8]", 2050282033], - [35, 63, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], - [55, 9, 23, "Style/StringConcatenation: Prefer string interpolation to string concatenation.", 1178765246], - [58, 7, 419, "Metrics/MethodLength: Method has too many lines. [11/10]", 3825428834], - [81, 7, 2396, "Metrics/AbcSize: Assignment Branch Condition size for `clause_body_components` is too high. [<11, 30, 16> 35.74/17]", 199420029], - [81, 7, 2396, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `clause_body_components` is too high. [13/7]", 199420029], - [81, 7, 2396, "Metrics/MethodLength: Method has too many lines. [39/10]", 199420029], - [81, 7, 2396, "Metrics/PerceivedComplexity: Perceived complexity for `clause_body_components` is too high. [14/8]", 199420029], - [126, 30, 23, "Style/StringConcatenation: Prefer string interpolation to string concatenation.", 1178765246], - [164, 7, 862, "Metrics/AbcSize: Assignment Branch Condition size for `clause_bodies_have_matching_statements?` is too high. [<3, 19, 2> 19.34/17]", 4182083840], - [164, 7, 862, "Metrics/MethodLength: Method has too many lines. [15/10]", 4182083840] - ], - "lib/prism/merge/begin_node_clause_header_emitter.rb:2991300768": [ - [5, 5, 34, "Style/Documentation: Missing top-level documentation comment for `class Prism::Merge::BeginNodeClauseHeaderEmitter`.", 217025096], - [14, 7, 1600, "Metrics/AbcSize: Assignment Branch Condition size for `emit` is too high. [<10, 22, 17> 29.55/17]", 4242535078], - [14, 7, 1600, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `emit` is too high. [11/7]", 4242535078], - [14, 7, 1600, "Metrics/MethodLength: Method has too many lines. [25/10]", 4242535078], - [14, 7, 1600, "Metrics/PerceivedComplexity: Perceived complexity for `emit` is too high. [11/8]", 4242535078], - [14, 15, 164, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [8/5]", 2644486585] - ], - "lib/prism/merge/begin_node_merge_planner.rb:3840396716": [ - [5, 5, 27, "Style/Documentation: Missing top-level documentation comment for `class Prism::Merge::BeginNodeMergePlanner`.", 3356052894], - [5, 5, 9876, "Metrics/ClassLength: Class has too many lines. [185/100]", 148070692], - [30, 7, 2144, "Metrics/AbcSize: Assignment Branch Condition size for `plan` is too high. [<15, 34, 11> 38.76/17]", 3596380485], - [30, 7, 2144, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `plan` is too high. [10/7]", 3596380485], - [30, 7, 2144, "Metrics/MethodLength: Method has too many lines. [39/10]", 3596380485], - [30, 7, 2144, "Metrics/PerceivedComplexity: Perceived complexity for `plan` is too high. [11/8]", 3596380485], - [84, 7, 4383, "Metrics/AbcSize: Assignment Branch Condition size for `build_shared_clause_step` is too high. [<19, 70, 24> 76.4/17]", 2837542267], - [84, 7, 4383, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `build_shared_clause_step` is too high. [16/7]", 2837542267], - [84, 7, 4383, "Metrics/MethodLength: Method has too many lines. [73/10]", 2837542267], - [84, 7, 4383, "Metrics/PerceivedComplexity: Perceived complexity for `build_shared_clause_step` is too high. [18/8]", 2837542267], - [103, 121, 59, "Layout/LineLength: Line is too long. [179/120]", 357928082], - [105, 121, 55, "Layout/LineLength: Line is too long. [175/120]", 1163790852], - [142, 121, 35, "Layout/LineLength: Line is too long. [155/120]", 3447647282], - [143, 121, 40, "Layout/LineLength: Line is too long. [160/120]", 1267386383], - [167, 7, 2428, "Metrics/AbcSize: Assignment Branch Condition size for `build_unmatched_clause_step` is too high. [<2, 28, 21> 35.06/17]", 2984621385], - [167, 7, 2428, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `build_unmatched_clause_step` is too high. [17/7]", 2984621385], - [167, 7, 2428, "Metrics/MethodLength: Method has too many lines. [38/10]", 2984621385], - [167, 7, 2428, "Metrics/PerceivedComplexity: Perceived complexity for `build_unmatched_clause_step` is too high. [19/8]", 2984621385], - [188, 121, 25, "Layout/LineLength: Line is too long. [145/120]", 549521717], - [198, 121, 25, "Layout/LineLength: Line is too long. [145/120]", 619697310] - ], - "lib/prism/merge/begin_node_plan_emitter.rb:372252499": [ - [5, 5, 26, "Style/Documentation: Missing top-level documentation comment for `class Prism::Merge::BeginNodePlanEmitter`.", 926648201], - [14, 7, 740, "Metrics/MethodLength: Method has too many lines. [16/10]", 2040521865], - [14, 15, 105, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 1812434716], - [36, 7, 1205, "Metrics/MethodLength: Method has too many lines. [24/10]", 4164487211], - [36, 20, 127, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 466430575], - [76, 7, 1308, "Metrics/AbcSize: Assignment Branch Condition size for `emit_copied_unmatched_clause` is too high. [<6, 30, 11> 32.51/17]", 1339054986], - [76, 7, 1308, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `emit_copied_unmatched_clause` is too high. [10/7]", 1339054986], - [76, 7, 1308, "Metrics/MethodLength: Method has too many lines. [21/10]", 1339054986], - [76, 7, 1308, "Metrics/PerceivedComplexity: Perceived complexity for `emit_copied_unmatched_clause` is too high. [10/8]", 1339054986], - [76, 39, 146, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 2474530127] - ], - "lib/prism/merge/begin_node_rescue_semantics.rb:2034041801": [ - [5, 5, 30, "Style/Documentation: Missing top-level documentation comment for `class Prism::Merge::BeginNodeRescueSemantics`.", 4100560642], - [5, 5, 9899, "Metrics/ClassLength: Class has too many lines. [198/100]", 4227917508], - [13, 7, 1953, "Metrics/AbcSize: Assignment Branch Condition size for `normalized_clause_body_and_header_source` is too high. [<9, 13, 21> 26.29/17]", 1895019213], - [13, 7, 1953, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `normalized_clause_body_and_header_source` is too high. [15/7]", 1895019213], - [13, 7, 1953, "Metrics/MethodLength: Method has too many lines. [26/10]", 1895019213], - [13, 7, 1953, "Metrics/PerceivedComplexity: Perceived complexity for `normalized_clause_body_and_header_source` is too high. [17/8]", 1895019213], - [80, 7, 530, "Metrics/AbcSize: Assignment Branch Condition size for `local_variable_read_names_in` is too high. [<1, 16, 9> 18.38/17]", 2555890222], - [80, 7, 530, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `local_variable_read_names_in` is too high. [8/7]", 2555890222], - [80, 7, 530, "Metrics/MethodLength: Method has too many lines. [12/10]", 2555890222], - [80, 7, 530, "Metrics/PerceivedComplexity: Perceived complexity for `local_variable_read_names_in` is too high. [9/8]", 2555890222], - [134, 7, 724, "Metrics/AbcSize: Assignment Branch Condition size for `rewrite_local_reference_in_source` is too high. [<6, 18, 9> 21/17]", 2089802992], - [134, 7, 724, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `rewrite_local_reference_in_source` is too high. [9/7]", 2089802992], - [134, 7, 724, "Metrics/MethodLength: Method has too many lines. [12/10]", 2089802992], - [134, 7, 724, "Metrics/PerceivedComplexity: Perceived complexity for `rewrite_local_reference_in_source` is too high. [9/8]", 2089802992], - [182, 85, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], - [194, 7, 1233, "Metrics/AbcSize: Assignment Branch Condition size for `collect_source_defined_exception_definitions` is too high. [<4, 22, 9> 24.1/17]", 1970916346], - [194, 7, 1233, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `collect_source_defined_exception_definitions` is too high. [10/7]", 1970916346], - [194, 7, 1233, "Metrics/MethodLength: Method has too many lines. [24/10]", 1970916346] - ], - "lib/prism/merge/begin_node_structure.rb:1232724245": [ - [5, 5, 24, "Style/Documentation: Missing top-level documentation comment for `class Prism::Merge::BeginNodeStructure`.", 3506219929], - [5, 5, 4080, "Metrics/ClassLength: Class has too many lines. [101/100]", 1611393241], - [21, 7, 375, "Metrics/AbcSize: Assignment Branch Condition size for `boundary_lines` is too high. [<0, 28, 7> 28.86/17]", 3399008793], - [21, 7, 375, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `boundary_lines` is too high. [8/7]", 3399008793], - [33, 7, 251, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `clause_start_line` is too high. [8/7]", 1553904487], - [43, 7, 407, "Metrics/MethodLength: Method has too many lines. [12/10]", 3851339415], - [59, 7, 1089, "Metrics/AbcSize: Assignment Branch Condition size for `clause_regions` is too high. [<9, 38, 9> 40.07/17]", 1916795013], - [59, 7, 1089, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `clause_regions` is too high. [10/7]", 1916795013], - [59, 7, 1089, "Metrics/MethodLength: Method has too many lines. [22/10]", 1916795013], - [59, 7, 1089, "Metrics/PerceivedComplexity: Perceived complexity for `clause_regions` is too high. [10/8]", 1916795013], - [86, 7, 613, "Metrics/AbcSize: Assignment Branch Condition size for `clause_nodes_by_type` is too high. [<9, 19, 4> 21.4/17]", 1693909219], - [86, 7, 613, "Metrics/MethodLength: Method has too many lines. [12/10]", 1693909219], - [102, 11, 19, "Naming/PredicatePrefix: Rename `has_clause_or_body?` to `clause_or_body?`.", 2163996991], - [106, 7, 598, "Metrics/AbcSize: Assignment Branch Condition size for `line_map_for` is too high. [<13, 15, 6> 20.74/17]", 191778789] - ], - "lib/prism/merge/block_directive_detector.rb:3698866715": [ - [9, 5, 5028, "Metrics/ClassLength: Class has too many lines. [121/100]", 2587374670], - [10, 7, 1976, "Metrics/AbcSize: Assignment Branch Condition size for `promote_spans_to_nodes` is too high. [<23, 42, 32> 57.59/17]", 1038475655], - [10, 7, 1976, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `promote_spans_to_nodes` is too high. [24/7]", 1038475655], - [10, 7, 1976, "Metrics/MethodLength: Method has too many lines. [37/10]", 1038475655], - [10, 7, 1976, "Metrics/PerceivedComplexity: Perceived complexity for `promote_spans_to_nodes` is too high. [25/8]", 1038475655], - [35, 11, 7, "Style/MultilineBlockChain: Avoid multi-line chains of blocks.", 4045560504], - [108, 7, 832, "Metrics/MethodLength: Method has too many lines. [23/10]", 3204610677], - [134, 7, 722, "Metrics/AbcSize: Assignment Branch Condition size for `rebuild_statements` is too high. [<15, 17, 9> 24.39/17]", 3809085226], - [134, 7, 722, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `rebuild_statements` is too high. [10/7]", 3809085226], - [134, 7, 722, "Metrics/MethodLength: Method has too many lines. [15/10]", 3809085226], - [134, 7, 722, "Metrics/PerceivedComplexity: Perceived complexity for `rebuild_statements` is too high. [10/8]", 3809085226] - ], - "lib/prism/merge/comment/block.rb:3606937725": [ - [65, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 1573406415] - ], - "lib/prism/merge/comment/parser.rb:1277632686": [ - [31, 9, 1747, "Metrics/AbcSize: Assignment Branch Condition size for `parse` is too high. [<10, 28, 8> 30.79/17]", 2837146927], - [31, 9, 1747, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `parse` is too high. [8/7]", 2837146927], - [31, 9, 1747, "Metrics/MethodLength: Method has too many lines. [34/10]", 2837146927], - [31, 9, 1747, "Metrics/PerceivedComplexity: Perceived complexity for `parse` is too high. [9/8]", 2837146927], - [38, 11, 1390, "Metrics/BlockLength: Block has too many lines. [26/25]", 1396583578] - ], - "lib/prism/merge/comment_only_file_merger.rb:808070956": [ - [5, 5, 27, "Style/Documentation: Missing top-level documentation comment for `class Prism::Merge::CommentOnlyFileMerger`.", 1927029952], - [5, 5, 11907, "Metrics/ClassLength: Class has too many lines. [256/100]", 2729825792], - [27, 7, 1628, "Metrics/AbcSize: Assignment Branch Condition size for `merge` is too high. [<15, 32, 8> 36.24/17]", 2481561114], - [27, 7, 1628, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `merge` is too high. [8/7]", 2481561114], - [27, 7, 1628, "Metrics/MethodLength: Method has too many lines. [34/10]", 2481561114], - [78, 7, 661, "Metrics/MethodLength: Method has too many lines. [18/10]", 1523408112], - [100, 7, 1781, "Metrics/AbcSize: Assignment Branch Condition size for `build_output_plan` is too high. [<10, 34, 20> 40.69/17]", 994360926], - [100, 7, 1781, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `build_output_plan` is too high. [17/7]", 994360926], - [100, 7, 1781, "Metrics/MethodLength: Method has too many lines. [30/10]", 994360926], - [100, 7, 1781, "Metrics/PerceivedComplexity: Perceived complexity for `build_output_plan` is too high. [19/8]", 994360926], - [123, 121, 21, "Layout/LineLength: Line is too long. [141/120]", 530225423], - [149, 7, 1486, "Metrics/AbcSize: Assignment Branch Condition size for `add_comment_node_to_result` is too high. [<7, 34, 22> 41.1/17]", 1181795760], - [149, 7, 1486, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `add_comment_node_to_result` is too high. [16/7]", 1181795760], - [149, 7, 1486, "Metrics/MethodLength: Method has too many lines. [29/10]", 1181795760], - [149, 7, 1486, "Metrics/PerceivedComplexity: Perceived complexity for `add_comment_node_to_result` is too high. [20/8]", 1181795760], - [185, 7, 693, "Metrics/MethodLength: Method has too many lines. [16/10]", 3008008109], - [205, 7, 1035, "Metrics/AbcSize: Assignment Branch Condition size for `emit_layout_gap_to_result` is too high. [<6, 24, 11> 27.07/17]", 3441550295], - [205, 7, 1035, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `emit_layout_gap_to_result` is too high. [9/7]", 3441550295], - [205, 7, 1035, "Metrics/MethodLength: Method has too many lines. [17/10]", 3441550295], - [205, 7, 1035, "Metrics/PerceivedComplexity: Perceived complexity for `emit_layout_gap_to_result` is too high. [10/8]", 3441550295], - [230, 7, 665, "Metrics/AbcSize: Assignment Branch Condition size for `emit_comment_only_prefix_lines` is too high. [<5, 21, 4> 21.95/17]", 1939505075], - [243, 7, 942, "Metrics/MethodLength: Method has too many lines. [19/10]", 2012616838] - ], - "lib/prism/merge/file_analysis.rb:3845044313": [ - [16, 5, 56738, "Metrics/ClassLength: Class has too many lines. [631/100]", 2915560491], - [19, 7, 28, "Style/Documentation: Missing top-level documentation comment for `class Prism::Merge::FileAnalysis::NativeCommentAugmenter`.", 2321467727], - [19, 7, 5712, "Metrics/ClassLength: Class has too many lines. [121/100]", 3225634005], - [22, 9, 605, "Metrics/MethodLength: Method has too many lines. [16/10]", 3935631704], - [47, 9, 2672, "Metrics/AbcSize: Assignment Branch Condition size for `build!` is too high. [<19, 55, 23> 62.57/17]", 3140666915], - [47, 9, 2672, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `build!` is too high. [22/7]", 3140666915], - [47, 9, 2672, "Metrics/MethodLength: Method has too many lines. [47/10]", 3140666915], - [47, 9, 2672, "Metrics/PerceivedComplexity: Perceived complexity for `build!` is too high. [22/8]", 3140666915], - [120, 9, 779, "Metrics/AbcSize: Assignment Branch Condition size for `attach_orphan_region_to_nearest_owner` is too high. [<4, 18, 3> 18.68/17]", 714646861], - [120, 9, 779, "Metrics/MethodLength: Method has too many lines. [15/10]", 714646861], - [212, 7, 1703, "Metrics/MethodLength: Method has too many lines. [19/10]", 3233444968], - [350, 7, 686, "Metrics/AbcSize: Assignment Branch Condition size for `leading_comments_for_owner` is too high. [<7, 23, 9> 25.67/17]", 4287196323], - [350, 7, 686, "Metrics/MethodLength: Method has too many lines. [13/10]", 4287196323], - [373, 7, 1177, "Metrics/MethodLength: Method has too many lines. [23/10]", 853358252], - [415, 7, 587, "Metrics/MethodLength: Method has too many lines. [13/10]", 241044926], - [481, 7, 1099, "Metrics/AbcSize: Assignment Branch Condition size for `frozen_node?` is too high. [<3, 16, 7> 17.72/17]", 1886536218], - [481, 7, 1099, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `frozen_node?` is too high. [8/7]", 1886536218], - [615, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5858904], - [616, 121, 10, "Layout/LineLength: Line is too long. [130/120]", 442686854], - [687, 7, 779, "Metrics/AbcSize: Assignment Branch Condition size for `split_first_owner_preamble_entries` is too high. [<9, 20, 10> 24.1/17]", 2477766314], - [687, 7, 779, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `split_first_owner_preamble_entries` is too high. [9/7]", 2477766314], - [687, 7, 779, "Metrics/MethodLength: Method has too many lines. [11/10]", 2477766314], - [687, 7, 779, "Metrics/PerceivedComplexity: Perceived complexity for `split_first_owner_preamble_entries` is too high. [9/8]", 2477766314], - [697, 9, 11, "Style/MultilineBlockChain: Avoid multi-line chains of blocks.", 848344986], - [744, 7, 768, "Metrics/MethodLength: Method has too many lines. [15/10]", 3855207561], - [770, 7, 609, "Metrics/MethodLength: Method has too many lines. [15/10]", 3157294863], - [856, 7, 2509, "Metrics/AbcSize: Assignment Branch Condition size for `extract_and_integrate_all_nodes` is too high. [<11, 29, 16> 34.9/17]", 1138957888], - [856, 7, 2509, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `extract_and_integrate_all_nodes` is too high. [14/7]", 1138957888], - [856, 7, 2509, "Metrics/MethodLength: Method has too many lines. [32/10]", 1138957888], - [856, 7, 2509, "Metrics/PerceivedComplexity: Perceived complexity for `extract_and_integrate_all_nodes` is too high. [16/8]", 1138957888], - [925, 7, 1325, "Metrics/AbcSize: Assignment Branch Condition size for `extract_nodes_with_comments` is too high. [<3, 25, 7> 26.13/17]", 1498557944], - [925, 7, 1325, "Metrics/MethodLength: Method has too many lines. [23/10]", 1498557944], - [1037, 7, 11892, "Metrics/AbcSize: Assignment Branch Condition size for `compute_node_signature` is too high. [<19, 176, 83> 195.5/17]", 2654183611], - [1037, 7, 11892, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `compute_node_signature` is too high. [75/7]", 2654183611], - [1037, 7, 11892, "Metrics/MethodLength: Method has too many lines. [132/10]", 2654183611], - [1037, 7, 11892, "Metrics/PerceivedComplexity: Perceived complexity for `compute_node_signature` is too high. [61/8]", 2654183611], - [1098, 88, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], - [1102, 24, 300, "Metrics/BlockNesting: Avoid more than 3 levels of block nesting.", 2690302041], - [1102, 55, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], - [1313, 7, 680, "Metrics/AbcSize: Assignment Branch Condition size for `detect_gemspec_block_var` is too high. [<3, 22, 15> 26.8/17]", 3676370299], - [1313, 7, 680, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `detect_gemspec_block_var` is too high. [14/7]", 3676370299], - [1313, 7, 680, "Metrics/MethodLength: Method has too many lines. [14/10]", 3676370299], - [1313, 7, 680, "Metrics/PerceivedComplexity: Perceived complexity for `detect_gemspec_block_var` is too high. [14/8]", 3676370299] - ], - "lib/prism/merge/freeze_node.rb:2471800311": [ - [67, 7, 577, "Metrics/MethodLength: Method has too many lines. [11/10]", 2189574632], - [67, 21, 186, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [8/5]", 1006469938], - [124, 7, 2888, "Metrics/AbcSize: Assignment Branch Condition size for `validate_structure!` is too high. [<13, 32, 33> 47.77/17]", 3621186151], - [124, 7, 2888, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `validate_structure!` is too high. [24/7]", 3621186151], - [124, 7, 2888, "Metrics/MethodLength: Method has too many lines. [38/10]", 3621186151], - [124, 7, 2888, "Metrics/PerceivedComplexity: Perceived complexity for `validate_structure!` is too high. [25/8]", 3621186151] - ], - "lib/prism/merge/merge_result.rb:1970522956": [ - [9, 5, 12561, "Metrics/ClassLength: Class has too many lines. [238/100]", 3020348188], - [67, 7, 5058, "Metrics/AbcSize: Assignment Branch Condition size for `add_node` is too high. [<25, 54, 38> 70.6/17]", 2165268226], - [67, 7, 5058, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `add_node` is too high. [22/7]", 2165268226], - [67, 7, 5058, "Metrics/MethodLength: Method has too many lines. [94/10]", 2165268226], - [67, 7, 5058, "Metrics/PerceivedComplexity: Perceived complexity for `add_node` is too high. [31/8]", 2165268226], - [74, 9, 1617, "Metrics/BlockLength: Block has too many lines. [34/25]", 3544860826], - [175, 38, 40, "Style/StringConcatenation: Prefer string interpolation to string concatenation.", 3558364074], - [193, 9, 24, "Style/StringConcatenation: Prefer string interpolation to string concatenation.", 1750147806], - [219, 7, 901, "Metrics/AbcSize: Assignment Branch Condition size for `debug_output` is too high. [<5, 29, 5> 29.85/17]", 2776830125], - [219, 7, 901, "Metrics/MethodLength: Method has too many lines. [25/10]", 2776830125], - [296, 7, 903, "Metrics/MethodLength: Method has too many lines. [18/10]", 2752342414] - ], - "lib/prism/merge/method_match_refiner.rb:1593340636": [ - [103, 7, 705, "Metrics/AbcSize: Assignment Branch Condition size for `extract_param_names` is too high. [<2, 37, 16> 40.36/17]", 3200522215], - [103, 7, 705, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `extract_param_names` is too high. [17/7]", 3200522215], - [103, 7, 705, "Metrics/MethodLength: Method has too many lines. [11/10]", 3200522215], - [103, 7, 705, "Metrics/PerceivedComplexity: Perceived complexity for `extract_param_names` is too high. [17/8]", 3200522215], - [111, 49, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], - [114, 65, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765] - ], - "lib/prism/merge/nested_statement_walker.rb:3826169704": [ - [24, 7, 695, "Metrics/MethodLength: Method has too many lines. [16/10]", 3744912119], - [45, 7, 518, "Metrics/MethodLength: Method has too many lines. [12/10]", 2978518157] - ], - "lib/prism/merge/nocov_node.rb:2336029940": [ - [52, 19, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765] - ], - "lib/prism/merge/node_body_layout.rb:1642074264": [ - [5, 5, 20, "Style/Documentation: Missing top-level documentation comment for `class Prism::Merge::NodeBodyLayout`.", 1262407425], - [5, 5, 5858, "Metrics/ClassLength: Class has too many lines. [127/100]", 2663802475], - [14, 7, 413, "Metrics/AbcSize: Assignment Branch Condition size for `body_text` is too high. [<2, 17, 5> 17.83/17]", 1825622248], - [28, 9, 23, "Style/StringConcatenation: Prefer string interpolation to string concatenation.", 1178765246], - [31, 7, 241, "Metrics/AbcSize: Assignment Branch Condition size for `opening_line_text` is too high. [<0, 17, 1> 17.03/17]", 1468915915], - [37, 7, 237, "Metrics/AbcSize: Assignment Branch Condition size for `closing_line_text` is too high. [<0, 18, 1> 18.03/17]", 4077830027], - [73, 7, 1058, "Metrics/AbcSize: Assignment Branch Condition size for `statements_node` is too high. [<1, 30, 11> 31.97/17]", 4004813764], - [73, 7, 1058, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `statements_node` is too high. [12/7]", 4004813764], - [73, 7, 1058, "Metrics/MethodLength: Method has too many lines. [20/10]", 4004813764], - [73, 7, 1058, "Metrics/PerceivedComplexity: Perceived complexity for `statements_node` is too high. [10/8]", 4004813764], - [100, 7, 567, "Metrics/AbcSize: Assignment Branch Condition size for `body_start_line` is too high. [<1, 24, 4> 24.35/17]", 2388795687], - [103, 121, 17, "Layout/LineLength: Line is too long. [137/120]", 503895268], - [111, 7, 863, "Metrics/AbcSize: Assignment Branch Condition size for `body_end_line` is too high. [<2, 38, 7> 38.69/17]", 60007760], - [111, 7, 863, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `body_end_line` is too high. [8/7]", 60007760], - [111, 7, 863, "Metrics/MethodLength: Method has too many lines. [11/10]", 60007760], - [114, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 2068513341], - [116, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 270242779] - ], - "lib/prism/merge/node_emission_support.rb:388716709": [ - [5, 5, 25, "Style/Documentation: Missing top-level documentation comment for `class Prism::Merge::NodeEmissionSupport`.", 1335077453], - [5, 5, 42322, "Metrics/ClassLength: Class has too many lines. [775/100]", 2081266710], - [14, 7, 2734, "Metrics/AbcSize: Assignment Branch Condition size for `emit_dest_prefix_lines` is too high. [<18, 54, 18> 59.7/17]", 4241256208], - [14, 7, 2734, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `emit_dest_prefix_lines` is too high. [16/7]", 4241256208], - [14, 7, 2734, "Metrics/MethodLength: Method has too many lines. [54/10]", 4241256208], - [14, 7, 2734, "Metrics/PerceivedComplexity: Perceived complexity for `emit_dest_prefix_lines` is too high. [17/8]", 4241256208], - [19, 121, 1, "Layout/LineLength: Line is too long. [121/120]", 177656], - [20, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 3503445075], - [81, 7, 2526, "Metrics/AbcSize: Assignment Branch Condition size for `emit_removed_destination_node_comments` is too high. [<15, 38, 6> 41.29/17]", 3275408633], - [81, 7, 2526, "Metrics/MethodLength: Method has too many lines. [63/10]", 3275408633], - [153, 7, 1430, "Metrics/AbcSize: Assignment Branch Condition size for `emit_dest_gap_lines` is too high. [<7, 19, 11> 23.04/17]", 2013951205], - [153, 7, 1430, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `emit_dest_gap_lines` is too high. [9/7]", 2013951205], - [153, 7, 1430, "Metrics/MethodLength: Method has too many lines. [27/10]", 2013951205], - [153, 7, 1430, "Metrics/PerceivedComplexity: Perceived complexity for `emit_dest_gap_lines` is too high. [9/8]", 2013951205], - [154, 36, 21, "Style/NumericPredicate: Use `last_output_line.zero?` instead of `last_output_line == 0`.", 1942859694], - [160, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 3276957001], - [187, 7, 9316, "Metrics/AbcSize: Assignment Branch Condition size for `emit_matched_template_node` is too high. [<52, 122, 45> 140.0/17]", 605812917], - [187, 7, 9316, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `emit_matched_template_node` is too high. [43/7]", 605812917], - [187, 7, 9316, "Metrics/MethodLength: Method has too many lines. [151/10]", 605812917], - [187, 7, 9316, "Metrics/PerceivedComplexity: Perceived complexity for `emit_matched_template_node` is too high. [45/8]", 605812917], - [269, 121, 22, "Layout/LineLength: Line is too long. [142/120]", 2775680224], - [301, 121, 10, "Layout/LineLength: Line is too long. [130/120]", 249577804], - [331, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 2267103911], - [361, 121, 27, "Layout/LineLength: Line is too long. [147/120]", 988398654], - [373, 7, 6908, "Metrics/AbcSize: Assignment Branch Condition size for `emit_node` is too high. [<44, 90, 54> 113.8/17]", 2848614159], - [373, 7, 6908, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `emit_node` is too high. [38/7]", 2848614159], - [373, 7, 6908, "Metrics/MethodLength: Method has too many lines. [135/10]", 2848614159], - [373, 7, 6908, "Metrics/PerceivedComplexity: Perceived complexity for `emit_node` is too high. [44/8]", 2848614159], - [388, 121, 25, "Layout/LineLength: Line is too long. [145/120]", 3628174615], - [475, 121, 15, "Layout/LineLength: Line is too long. [135/120]", 650150522], - [480, 15, 379, "Metrics/BlockNesting: Avoid more than 3 levels of block nesting.", 3006808047], - [519, 121, 7, "Layout/LineLength: Line is too long. [127/120]", 2020907649], - [536, 7, 1166, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `filter_previous_destination_owned_template_leading_comments` is too high. [8/7]", 2076094754], - [536, 7, 1166, "Metrics/MethodLength: Method has too many lines. [15/10]", 2076094754], - [536, 71, 13, "Lint/UnusedMethodArgument: Unused method argument - `template_node`.", 1616609802], - [587, 7, 973, "Metrics/MethodLength: Method has too many lines. [15/10]", 1892360110], - [587, 60, 172, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [7/5]", 2784840176], - [588, 121, 5, "Layout/LineLength: Line is too long. [125/120]", 169966263], - [614, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2087656651], - [627, 7, 873, "Metrics/AbcSize: Assignment Branch Condition size for `previous_template_gap_already_precedes_leading_comments?` is too high. [<5, 19, 11> 22.52/17]", 268778340], - [627, 7, 873, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `previous_template_gap_already_precedes_leading_comments?` is too high. [9/7]", 268778340], - [627, 7, 873, "Metrics/MethodLength: Method has too many lines. [13/10]", 268778340], - [627, 7, 873, "Metrics/PerceivedComplexity: Perceived complexity for `previous_template_gap_already_precedes_leading_comments?` is too high. [9/8]", 268778340], - [636, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 618947799], - [696, 7, 457, "Metrics/MethodLength: Method has too many lines. [11/10]", 349820622], - [724, 7, 758, "Metrics/AbcSize: Assignment Branch Condition size for `partial_same_line_node?` is too high. [<8, 31, 5> 32.4/17]", 1768803955], - [775, 7, 597, "Metrics/MethodLength: Method has too many lines. [12/10]", 2742538822], - [775, 40, 67, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 725821220], - [792, 7, 552, "Metrics/MethodLength: Method has too many lines. [12/10]", 4255654885], - [815, 7, 845, "Metrics/MethodLength: Method has too many lines. [13/10]", 3468050888], - [846, 7, 1097, "Metrics/AbcSize: Assignment Branch Condition size for `filter_emitted_template_leading_comments` is too high. [<6, 18, 3> 19.21/17]", 2091395187], - [846, 7, 1097, "Metrics/MethodLength: Method has too many lines. [17/10]", 2091395187], - [882, 7, 822, "Metrics/MethodLength: Method has too many lines. [13/10]", 3499946440], - [899, 7, 1359, "Metrics/AbcSize: Assignment Branch Condition size for `collapse_matched_template_leading_prefix` is too high. [<7, 22, 10> 25.16/17]", 3976364089], - [899, 7, 1359, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `collapse_matched_template_leading_prefix` is too high. [9/7]", 3976364089], - [899, 7, 1359, "Metrics/MethodLength: Method has too many lines. [21/10]", 3976364089], - [899, 7, 1359, "Metrics/PerceivedComplexity: Perceived complexity for `collapse_matched_template_leading_prefix` is too high. [9/8]", 3976364089], - [943, 121, 37, "Layout/LineLength: Line is too long. [157/120]", 3703011298], - [947, 7, 746, "Metrics/MethodLength: Method has too many lines. [17/10]", 3532927627] - ], - "lib/prism/merge/partial_template_merger.rb:2303997532": [ - [14, 7, 826, "Metrics/MethodLength: Method has too many lines. [14/10]", 713706122], - [14, 21, 329, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [12/5]", 2768355468], - [55, 7, 487, "Metrics/MethodLength: Method has too many lines. [11/10]", 447766477], - [75, 7, 520, "Metrics/AbcSize: Assignment Branch Condition size for `node_to_text` is too high. [<1, 19, 6> 19.95/17]", 1593952791], - [84, 46, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765] - ], - "lib/prism/merge/recursive_merge_policy.rb:4204303290": [ - [5, 5, 26, "Style/Documentation: Missing top-level documentation comment for `class Prism::Merge::RecursiveMergePolicy`.", 1329613257], - [12, 7, 1132, "Metrics/AbcSize: Assignment Branch Condition size for `should_merge?` is too high. [<4, 25, 15> 29.43/17]", 4123619949], - [12, 7, 1132, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `should_merge?` is too high. [14/7]", 4123619949], - [12, 7, 1132, "Metrics/MethodLength: Method has too many lines. [20/10]", 4123619949], - [12, 7, 1132, "Metrics/PerceivedComplexity: Perceived complexity for `should_merge?` is too high. [13/8]", 4123619949], - [47, 7, 398, "Metrics/MethodLength: Method has too many lines. [18/10]", 385694759] - ], - "lib/prism/merge/recursive_node_body_merger.rb:1132596837": [ - [5, 5, 29, "Style/Documentation: Missing top-level documentation comment for `class Prism::Merge::RecursiveNodeBodyMerger`.", 3703318859], - [5, 5, 18505, "Metrics/ClassLength: Class has too many lines. [333/100]", 3196902308], - [12, 7, 12756, "Metrics/AbcSize: Assignment Branch Condition size for `merge` is too high. [<78, 262, 90> 287.8/17]", 1909933362], - [12, 7, 12756, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `merge` is too high. [70/7]", 1909933362], - [12, 7, 12756, "Metrics/MethodLength: Method has too many lines. [215/10]", 1909933362], - [12, 7, 12756, "Metrics/PerceivedComplexity: Perceived complexity for `merge` is too high. [75/8]", 1909933362], - [27, 121, 10, "Layout/LineLength: Line is too long. [130/120]", 929875726], - [62, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 518709914], - [67, 121, 10, "Layout/LineLength: Line is too long. [130/120]", 366676207], - [266, 7, 1221, "Metrics/AbcSize: Assignment Branch Condition size for `remap_inner_unresolved_review_state!` is too high. [<8, 22, 6> 24.17/17]", 3210674006], - [266, 7, 1221, "Metrics/MethodLength: Method has too many lines. [21/10]", 3210674006], - [293, 7, 1121, "Metrics/AbcSize: Assignment Branch Condition size for `remap_inner_unresolved_case` is too high. [<6, 24, 0> 24.74/17]", 3468635549], - [293, 7, 1121, "Metrics/MethodLength: Method has too many lines. [15/10]", 3468635549], - [376, 7, 826, "Metrics/AbcSize: Assignment Branch Condition size for `emit_trailing_layout_gap_lines` is too high. [<6, 18, 9> 21/17]", 2158299973], - [376, 7, 826, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `emit_trailing_layout_gap_lines` is too high. [8/7]", 2158299973], - [376, 7, 826, "Metrics/MethodLength: Method has too many lines. [17/10]", 2158299973], - [376, 7, 826, "Metrics/PerceivedComplexity: Perceived complexity for `emit_trailing_layout_gap_lines` is too high. [9/8]", 2158299973] - ], - "lib/prism/merge/ruby_doc_surface_analyzer.rb:3389668357": [ - [7, 5, 7100, "Metrics/ClassLength: Class has too many lines. [162/100]", 77379508], - [50, 7, 1408, "Metrics/AbcSize: Assignment Branch Condition size for `build_doc_comment_surface` is too high. [<10, 25, 5> 27.39/17]", 2414553577], - [50, 7, 1408, "Metrics/MethodLength: Method has too many lines. [28/10]", 2414553577], - [91, 7, 1256, "Metrics/AbcSize: Assignment Branch Condition size for `build_example_surface` is too high. [<4, 23, 2> 23.43/17]", 4074178203], - [91, 7, 1256, "Metrics/MethodLength: Method has too many lines. [25/10]", 4074178203], - [131, 7, 555, "Metrics/AbcSize: Assignment Branch Condition size for `doc_comment_entries` is too high. [<8, 18, 6> 20.59/17]", 358090808] - ], - "lib/prism/merge/scaffold_chunk_remover.rb:1404116850": [ - [34, 7, 2064, "Metrics/AbcSize: Assignment Branch Condition size for `call` is too high. [<21, 62, 22> 69.06/17]", 3983172586], - [34, 7, 2064, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `call` is too high. [21/7]", 3983172586], - [34, 7, 2064, "Metrics/MethodLength: Method has too many lines. [39/10]", 3983172586], - [34, 7, 2064, "Metrics/PerceivedComplexity: Perceived complexity for `call` is too high. [21/8]", 3983172586] - ], - "lib/prism/merge/smart_merger.rb:3814529034": [ - [48, 5, 42561, "Metrics/ClassLength: Class has too many lines. [603/100]", 3828655257], - [96, 7, 2032, "Metrics/MethodLength: Method has too many lines. [24/10]", 4118525224], - [96, 21, 595, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [18/5]", 1562155096], - [171, 7, 1325, "Metrics/AbcSize: Assignment Branch Condition size for `merge_with_debug` is too high. [<3, 24, 19> 30.76/17]", 605983530], - [171, 7, 1325, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `merge_with_debug` is too high. [20/7]", 605983530], - [171, 7, 1325, "Metrics/MethodLength: Method has too many lines. [27/10]", 605983530], - [171, 7, 1325, "Metrics/PerceivedComplexity: Perceived complexity for `merge_with_debug` is too high. [20/8]", 605983530], - [310, 7, 664, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `frozen_node?` is too high. [8/7]", 2577924190], - [352, 7, 508, "Metrics/MethodLength: Method has too many lines. [13/10]", 1368018500], - [442, 7, 1155, "Metrics/AbcSize: Assignment Branch Condition size for `build_signature_map` is too high. [<11, 16, 8> 21/17]", 3956321005], - [442, 7, 1155, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `build_signature_map` is too high. [8/7]", 3956321005], - [442, 7, 1155, "Metrics/MethodLength: Method has too many lines. [16/10]", 3956321005], - [483, 7, 2731, "Metrics/AbcSize: Assignment Branch Condition size for `preference_for_node` is too high. [<7, 22, 20> 30.55/17]", 1325207598], - [483, 7, 2731, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `preference_for_node` is too high. [21/7]", 1325207598], - [483, 7, 2731, "Metrics/MethodLength: Method has too many lines. [25/10]", 1325207598], - [483, 7, 2731, "Metrics/PerceivedComplexity: Perceived complexity for `preference_for_node` is too high. [21/8]", 1325207598], - [659, 32, 73, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 2261515417], - [670, 35, 79, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 1350141395], - [681, 42, 63, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 2615605084], - [852, 35, 213, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [8/5]", 720547751] - ], - "lib/prism/merge/source_line_lookup.rb:1098479933": [ - [5, 5, 23, "Style/Documentation: Missing top-level documentation comment for `module Prism::Merge::SourceLineLookup`.", 2168434862] - ], - "lib/prism/merge/top_level_merge_runner.rb:1106437552": [ - [38, 5, 61468, "Metrics/ClassLength: Class has too many lines. [1156/100]", 150648557], - [66, 7, 5196, "Metrics/AbcSize: Assignment Branch Condition size for `merge` is too high. [<22, 68, 9> 72.03/17]", 176450457], - [66, 7, 5196, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `merge` is too high. [9/7]", 176450457], - [66, 7, 5196, "Metrics/MethodLength: Method has too many lines. [75/10]", 176450457], - [66, 7, 5196, "Metrics/PerceivedComplexity: Perceived complexity for `merge` is too high. [10/8]", 176450457], - [162, 7, 2023, "Metrics/AbcSize: Assignment Branch Condition size for `start_runtime_session!` is too high. [<5, 48, 1> 48.27/17]", 2943824289], - [162, 7, 2023, "Metrics/MethodLength: Method has too many lines. [44/10]", 2943824289], - [212, 7, 1765, "Metrics/AbcSize: Assignment Branch Condition size for `complete_runtime_session!` is too high. [<2, 21, 9> 22.93/17]", 2968004900], - [212, 7, 1765, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `complete_runtime_session!` is too high. [8/7]", 2968004900], - [212, 7, 1765, "Metrics/MethodLength: Method has too many lines. [36/10]", 2968004900], - [212, 7, 1765, "Metrics/PerceivedComplexity: Perceived complexity for `complete_runtime_session!` is too high. [10/8]", 2968004900], - [229, 121, 11, "Layout/LineLength: Line is too long. [131/120]", 3907470478], - [254, 7, 584, "Metrics/MethodLength: Method has too many lines. [14/10]", 1615217394], - [272, 7, 589, "Metrics/AbcSize: Assignment Branch Condition size for `runtime_document_surface` is too high. [<1, 19, 1> 19.05/17]", 1835005228], - [272, 7, 589, "Metrics/MethodLength: Method has too many lines. [12/10]", 1835005228], - [288, 7, 3192, "Metrics/AbcSize: Assignment Branch Condition size for `register_discovered_surface_operations!` is too high. [<12, 60, 9> 61.85/17]", 3059111269], - [288, 7, 3192, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `register_discovered_surface_operations!` is too high. [10/7]", 3059111269], - [288, 7, 3192, "Metrics/MethodLength: Method has too many lines. [65/10]", 3059111269], - [288, 7, 3192, "Metrics/PerceivedComplexity: Perceived complexity for `register_discovered_surface_operations!` is too high. [10/8]", 3059111269], - [297, 9, 2237, "Metrics/BlockLength: Block has too many lines. [44/25]", 809738986], - [399, 7, 1643, "Metrics/AbcSize: Assignment Branch Condition size for `execute_child_operations!` is too high. [<5, 33, 5> 33.75/17]", 1049305146], - [399, 7, 1643, "Metrics/MethodLength: Method has too many lines. [36/10]", 1049305146], - [400, 9, 1570, "Metrics/BlockLength: Block has too many lines. [29/25]", 1597985402], - [404, 9, 31, "Style/MultilineBlockChain: Avoid multi-line chains of blocks.", 3553388257], - [448, 7, 631, "Metrics/MethodLength: Method has too many lines. [15/10]", 1652116821], - [466, 7, 1306, "Metrics/AbcSize: Assignment Branch Condition size for `merge_runtime_surface` is too high. [<2, 18, 4> 18.55/17]", 1347264970], - [466, 7, 1306, "Metrics/MethodLength: Method has too many lines. [29/10]", 1347264970], - [500, 7, 1393, "Metrics/AbcSize: Assignment Branch Condition size for `merge_runtime_doc_comment_surface` is too high. [<4, 23, 5> 23.87/17]", 3745645404], - [500, 7, 1393, "Metrics/MethodLength: Method has too many lines. [29/10]", 3745645404], - [534, 7, 826, "Metrics/AbcSize: Assignment Branch Condition size for `apply_runtime_doc_children` is too high. [<5, 24, 7> 25.5/17]", 1386022126], - [534, 7, 826, "Metrics/MethodLength: Method has too many lines. [15/10]", 1386022126], - [542, 16, 27, "Style/MultilineBlockChain: Avoid multi-line chains of blocks.", 1443167664], - [546, 9, 24, "Style/MultilineBlockChain: Avoid multi-line chains of blocks.", 644874689], - [554, 7, 1438, "Metrics/AbcSize: Assignment Branch Condition size for `apply_runtime_example_child` is too high. [<10, 44, 10> 46.22/17]", 2594444962], - [554, 7, 1438, "Metrics/MethodLength: Method has too many lines. [25/10]", 2594444962], - [556, 121, 11, "Layout/LineLength: Line is too long. [131/120]", 3651736697], - [599, 7, 518, "Metrics/MethodLength: Method has too many lines. [11/10]", 523939757], - [623, 7, 753, "Metrics/MethodLength: Method has too many lines. [15/10]", 3406860674], - [683, 7, 1514, "Metrics/AbcSize: Assignment Branch Condition size for `compute_similarity_pairs` is too high. [<17, 42, 11> 46.63/17]", 103276977], - [683, 7, 1514, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `compute_similarity_pairs` is too high. [11/7]", 103276977], - [683, 7, 1514, "Metrics/MethodLength: Method has too many lines. [27/10]", 103276977], - [683, 7, 1514, "Metrics/PerceivedComplexity: Perceived complexity for `compute_similarity_pairs` is too high. [11/8]", 103276977], - [735, 7, 545, "Metrics/MethodLength: Method has too many lines. [12/10]", 398381329], - [763, 7, 586, "Metrics/MethodLength: Method has too many lines. [11/10]", 1559638959], - [843, 7, 640, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `collect_nested_signatures` is too high. [10/7]", 3947424552], - [843, 7, 640, "Metrics/MethodLength: Method has too many lines. [13/10]", 3947424552], - [843, 7, 640, "Metrics/PerceivedComplexity: Perceived complexity for `collect_nested_signatures` is too high. [10/8]", 3947424552], - [845, 12, 9, "Style/NumericPredicate: Use `depth.positive?` instead of `depth > 0`.", 2180768870], - [869, 7, 1297, "Metrics/AbcSize: Assignment Branch Condition size for `nested_statement_children` is too high. [<2, 50, 17> 52.85/17]", 3818826989], - [869, 7, 1297, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `nested_statement_children` is too high. [17/7]", 3818826989], - [869, 7, 1297, "Metrics/MethodLength: Method has too many lines. [19/10]", 3818826989], - [869, 7, 1297, "Metrics/PerceivedComplexity: Perceived complexity for `nested_statement_children` is too high. [15/8]", 3818826989], - [877, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 3315454453], - [882, 93, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], - [883, 89, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], - [884, 93, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], - [899, 7, 754, "Metrics/AbcSize: Assignment Branch Condition size for `prepare_comment_augmenters!` is too high. [<1, 19, 0> 19.03/17]", 311364642], - [899, 7, 754, "Metrics/MethodLength: Method has too many lines. [12/10]", 311364642], - [1003, 7, 1707, "Metrics/AbcSize: Assignment Branch Condition size for `retained_owner_plan` is too high. [<16, 40, 12> 44.72/17]", 375532236], - [1003, 7, 1707, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `retained_owner_plan` is too high. [13/7]", 375532236], - [1003, 7, 1707, "Metrics/MethodLength: Method has too many lines. [33/10]", 375532236], - [1003, 7, 1707, "Metrics/PerceivedComplexity: Perceived complexity for `retained_owner_plan` is too high. [13/8]", 375532236], - [1003, 55, 17, "Lint/UnusedMethodArgument: Unused method argument - `dest_by_signature`.", 379778684], - [1024, 9, 250, "Style/CombinableLoops: Combine this loop with the previous loop.", 3315024098], - [1031, 121, 5, "Layout/LineLength: Line is too long. [125/120]", 180543822], - [1048, 7, 4811, "Metrics/AbcSize: Assignment Branch Condition size for `process_dest_node` is too high. [<23, 71, 16> 76.33/17]", 329713352], - [1048, 7, 4811, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `process_dest_node` is too high. [13/7]", 329713352], - [1048, 7, 4811, "Metrics/MethodLength: Method has too many lines. [90/10]", 329713352], - [1048, 7, 4811, "Metrics/PerceivedComplexity: Perceived complexity for `process_dest_node` is too high. [17/8]", 329713352], - [1048, 28, 279, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [9/5]", 2321512478], - [1190, 7, 757, "Metrics/MethodLength: Method has too many lines. [19/10]", 3306507447], - [1228, 44, 189, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 215272527], - [1259, 7, 888, "Metrics/MethodLength: Method has too many lines. [17/10]", 2638200013], - [1259, 31, 189, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [9/5]", 50070642], - [1281, 7, 719, "Metrics/MethodLength: Method has too many lines. [13/10]", 530865591], - [1299, 7, 1393, "Metrics/AbcSize: Assignment Branch Condition size for `process_non_recursive_match` is too high. [<10, 23, 7> 26.04/17]", 324106576], - [1299, 7, 1393, "Metrics/MethodLength: Method has too many lines. [29/10]", 324106576], - [1333, 7, 1106, "Metrics/AbcSize: Assignment Branch Condition size for `process_unresolved_non_recursive_match` is too high. [<3, 19, 3> 19.47/17]", 1476652897], - [1333, 7, 1106, "Metrics/MethodLength: Method has too many lines. [26/10]", 1476652897], - [1374, 7, 1935, "Metrics/AbcSize: Assignment Branch Condition size for `record_unresolved_match_case!` is too high. [<4, 26, 3> 26.48/17]", 456739474], - [1374, 7, 1935, "Metrics/MethodLength: Method has too many lines. [37/10]", 456739474], - [1459, 7, 1067, "Metrics/AbcSize: Assignment Branch Condition size for `advance_last_output_dest_line` is too high. [<6, 19, 6> 20.81/17]", 331135500], - [1459, 7, 1067, "Metrics/MethodLength: Method has too many lines. [11/10]", 331135500], - [1459, 40, 181, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 2038823112] - ], - "lib/prism/merge/wrapper_comment_support.rb:3046735928": [ - [5, 5, 27, "Style/Documentation: Missing top-level documentation comment for `class Prism::Merge::WrapperCommentSupport`.", 2211657316], - [5, 5, 17765, "Metrics/ClassLength: Class has too many lines. [358/100]", 370100972], - [14, 7, 3072, "Metrics/AbcSize: Assignment Branch Condition size for `filtered_leading_comments_for` is too high. [<26, 58, 27> 69.06/17]", 934788024], - [14, 7, 3072, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `filtered_leading_comments_for` is too high. [24/7]", 934788024], - [14, 7, 3072, "Metrics/MethodLength: Method has too many lines. [48/10]", 934788024], - [14, 7, 3072, "Metrics/PerceivedComplexity: Perceived complexity for `filtered_leading_comments_for` is too high. [27/8]", 934788024], - [24, 121, 10, "Layout/LineLength: Line is too long. [130/120]", 366676207], - [65, 11, 68, "Style/MultilineBlockChain: Avoid multi-line chains of blocks.", 2360366291], - [74, 73, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], - [95, 7, 1446, "Metrics/AbcSize: Assignment Branch Condition size for `emit_leading_comments` is too high. [<8, 16, 13> 22.11/17]", 86315238], - [95, 7, 1446, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `emit_leading_comments` is too high. [9/7]", 86315238], - [95, 7, 1446, "Metrics/MethodLength: Method has too many lines. [31/10]", 86315238], - [95, 7, 1446, "Metrics/PerceivedComplexity: Perceived complexity for `emit_leading_comments` is too high. [11/8]", 86315238], - [95, 32, 73, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 2261515417], - [98, 9, 1234, "Metrics/BlockLength: Block has too many lines. [28/25]", 357181412], - [134, 7, 953, "Metrics/MethodLength: Method has too many lines. [19/10]", 3183807785], - [134, 35, 79, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 1350141395], - [162, 7, 1228, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `emit_comment_region` is too high. [10/7]", 2201645681], - [162, 7, 1228, "Metrics/MethodLength: Method has too many lines. [31/10]", 2201645681], - [162, 7, 1228, "Metrics/PerceivedComplexity: Perceived complexity for `emit_comment_region` is too high. [11/8]", 2201645681], - [162, 30, 67, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 191987245], - [163, 29, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], - [202, 7, 777, "Metrics/MethodLength: Method has too many lines. [18/10]", 4073303022], - [202, 30, 68, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 3851519454], - [208, 9, 8, "Style/MultilineBlockChain: Avoid multi-line chains of blocks.", 359222635], - [226, 7, 1080, "Metrics/MethodLength: Method has too many lines. [27/10]", 296167644], - [226, 42, 63, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 2615605084], - [260, 7, 689, "Metrics/AbcSize: Assignment Branch Condition size for `append_inline_comment_entries` is too high. [<7, 19, 8> 21.77/17]", 1575903523], - [260, 7, 689, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `append_inline_comment_entries` is too high. [8/7]", 1575903523], - [260, 7, 689, "Metrics/MethodLength: Method has too many lines. [16/10]", 1575903523], - [260, 7, 689, "Metrics/PerceivedComplexity: Perceived complexity for `append_inline_comment_entries` is too high. [9/8]", 1575903523], - [288, 7, 607, "Metrics/AbcSize: Assignment Branch Condition size for `line_inline_comment_entries` is too high. [<3, 18, 7> 19.54/17]", 2131701672], - [288, 7, 607, "Metrics/MethodLength: Method has too many lines. [12/10]", 2131701672], - [338, 7, 1023, "Metrics/MethodLength: Method has too many lines. [19/10]", 2409125040], - [363, 7, 854, "Metrics/AbcSize: Assignment Branch Condition size for `runtime_doc_comment_operation_for` is too high. [<4, 24, 13> 27.59/17]", 1109173425], - [363, 7, 854, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `runtime_doc_comment_operation_for` is too high. [10/7]", 1109173425], - [363, 7, 854, "Metrics/MethodLength: Method has too many lines. [11/10]", 1109173425], - [363, 7, 854, "Metrics/PerceivedComplexity: Perceived complexity for `runtime_doc_comment_operation_for` is too high. [10/8]", 1109173425], - [373, 121, 10, "Layout/LineLength: Line is too long. [130/120]", 1843406524], - [381, 7, 755, "Metrics/AbcSize: Assignment Branch Condition size for `build_runtime_leading_region` is too high. [<5, 18, 4> 19.1/17]", 3130034424], - [381, 7, 755, "Metrics/MethodLength: Method has too many lines. [14/10]", 3130034424], - [411, 7, 850, "Metrics/AbcSize: Assignment Branch Condition size for `runtime_line_numbers_for` is too high. [<6, 26, 6> 27.35/17]", 966446340] - ], - "prism-merge.gemspec:2052428369": [ - [128, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 2821357214], - [143, 121, 50, "Layout/LineLength: Line is too long. [170/120]", 3888612416], - [144, 121, 29, "Layout/LineLength: Line is too long. [149/120]", 981994949], - [151, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 4229808912] - ], - "spec/fixtures/reproducible/04_gemspec_duplication/destination.rb:971498360": [ - [25, 1, 8292, "Metrics/BlockLength: Block has too many lines. [110/25]", 1251580584], - [32, 121, 317, "Layout/LineLength: Line is too long. [437/120]", 1870252497], - [184, 121, 34, "Layout/LineLength: Line is too long. [154/120]", 4147388508], - [199, 121, 50, "Layout/LineLength: Line is too long. [170/120]", 3888612416], - [200, 121, 29, "Layout/LineLength: Line is too long. [149/120]", 981994949], - [207, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 4229808912] - ], - "spec/fixtures/reproducible/04_gemspec_duplication/template.rb:1741222365": [ - [19, 1, 4121, "Metrics/BlockLength: Block has too many lines. [71/25]", 547880907], - [26, 121, 317, "Layout/LineLength: Line is too long. [437/120]", 1870252497] - ], - "spec/fixtures/reproducible/05_gemspec_orphan_duplication/destination.rb:2573186797": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177634] - ], - "spec/fixtures/reproducible/05_gemspec_orphan_duplication/result.rb:2573186797": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177634] - ], - "spec/fixtures/reproducible/05_gemspec_orphan_duplication/template.rb:1825302441": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177634] - ], - "spec/fixtures_integration_spec.rb:3086023041": [ - [7, 1, 23038, "Metrics/BlockLength: Block has too many lines. [521/25]", 1776221706], - [66, 121, 26, "Layout/LineLength: Line is too long. [146/120]", 1448895712], - [72, 3, 1302, "Metrics/BlockLength: Block has too many lines. [30/25]", 2973641144], - [106, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5858795], - [113, 3, 1679, "Metrics/BlockLength: Block has too many lines. [38/25]", 2954972744], - [419, 3, 7512, "Metrics/BlockLength: Block has too many lines. [149/25]", 2278210376] - ], - "spec/reproducible_merge_spec.rb:2334824632": [ - [6, 1, 2420, "Metrics/BlockLength: Block has too many lines. [50/25]", 2207509489], - [39, 121, 13, "Layout/LineLength: Line is too long. [133/120]", 1416718429] - ] -} diff --git a/gems/prism-merge/.simplecov b/gems/prism-merge/.simplecov index be68a4d12..1b64f178c 100644 --- a/gems/prism-merge/.simplecov +++ b/gems/prism-merge/.simplecov @@ -4,15 +4,11 @@ # prism-merge will then preserve content between those markers across template runs. # kettle-jem:unfreeze -require 'kettle/soup/cover/config' - # Minimum coverage thresholds are set by kettle-soup-cover. # They are controlled by ENV variables loaded by `mise` from `mise.toml` # (with optional machine-local overrides in `.env.local`). # If the values for minimum coverage need to change, they should be changed both there, # and in 2 places in .github/workflows/coverage.yml. -SimpleCov.start do - track_files 'lib/**/*.rb' - track_files 'lib/**/*.rake' - track_files 'exe/*.rb' +SimpleCov.configure do + cover "lib/**/*.rb", "lib/**/*.rake", "exe/*.rb" end diff --git a/gems/prism-merge/Gemfile b/gems/prism-merge/Gemfile index a7d94af3a..19e6dfab4 100644 --- a/gems/prism-merge/Gemfile +++ b/gems/prism-merge/Gemfile @@ -6,7 +6,7 @@ # kettle-jem will then preserve content between those markers across template runs. # kettle-jem:unfreeze -source 'https://gem.coop' +source "https://gem.coop" git_source(:codeberg) { |repo_name| "https://codeberg.org/#{repo_name}" } git_source(:gitlab) { |repo_name| "https://gitlab.com/#{repo_name}" } @@ -19,17 +19,61 @@ git_source(:gitlab) { |repo_name| "https://gitlab.com/#{repo_name}" } gemspec # Local workspace dependency wiring for *_local.gemfile overrides -nomono_requirements = ['~> 1.0', '>= 1.0.8'] -gem 'nomono', *nomono_requirements, require: false # ruby >= 2.2 +nomono_requirements = ["~> 1.0", ">= 1.0.8"] +gem "nomono", *nomono_requirements, require: false # ruby >= 2.2 # Direct sibling dependencies (env-switched via STRUCTUREDMERGE_DEV) direct_sibling_gems = %w[ ruby-merge ] -direct_sibling_dev = ENV.fetch('STRUCTUREDMERGE_DEV', '') +direct_sibling_dev = ENV.fetch("STRUCTUREDMERGE_DEV", "") direct_sibling_local = !direct_sibling_dev.empty? && !%w[false 0 no off].include?(direct_sibling_dev.downcase) -direct_sibling_templating = ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? +direct_sibling_templating = ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? + +if direct_sibling_gems.any? && + (direct_sibling_local || + ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero?) + direct_sibling_dev_was_set = ENV.key?("STRUCTUREDMERGE_DEV") + direct_sibling_dev_original = ENV.fetch("STRUCTUREDMERGE_DEV", nil) + begin + nomono_activation_requirements = nomono_requirements + nomono_lockfile = File.expand_path("Gemfile.lock", __dir__) + if File.file?(nomono_lockfile) + nomono_locked_spec = Bundler::LockfileParser + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == "nomono" } + nomono_locked = nomono_locked_spec && + Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) + if nomono_locked + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] + end + end + Kernel.send(:gem, "nomono", *nomono_activation_requirements) + require "nomono/bundler" + if direct_sibling_templating && !direct_sibling_local + ENV["STRUCTUREDMERGE_DEV"] = File.expand_path("..", __dir__) + end + + eval_nomono_gems( + gems: direct_sibling_gems, + prefix: "STRUCTUREDMERGE", + path_env: "STRUCTUREDMERGE_DEV", + root: ["src", "my", "structuredmerge"] + ) + rescue LoadError + warn "Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies." + ensure + if direct_sibling_templating && !direct_sibling_local + if direct_sibling_dev_was_set + ENV["STRUCTUREDMERGE_DEV"] = direct_sibling_dev_original + else + ENV.delete("STRUCTUREDMERGE_DEV") + end + end + end +end if direct_sibling_gems.any? && (direct_sibling_local || @@ -112,28 +156,28 @@ if direct_sibling_gems.any? && end # Use released TSLP with the Ruby ABI platform-gem fix. -gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' +gem "tree_sitter_language_pack", "~> 1.13", ">= 1.13.3" # Templating (env-switched: STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local paths) -eval_gemfile 'gemfiles/modular/templating.gemfile' if ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? +eval_gemfile "gemfiles/modular/templating.gemfile" if ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? # Debugging -eval_gemfile 'gemfiles/modular/debug.gemfile' +eval_gemfile "gemfiles/modular/debug.gemfile" # Code Coverage (env-switched: KETTLE_DEV_DEV=true for local paths) -eval_gemfile 'gemfiles/modular/coverage.gemfile' +eval_gemfile "gemfiles/modular/coverage.gemfile" # Linting -eval_gemfile 'gemfiles/modular/style.gemfile' +eval_gemfile "gemfiles/modular/style.gemfile" # Documentation -eval_gemfile 'gemfiles/modular/documentation.gemfile' +eval_gemfile "gemfiles/modular/documentation.gemfile" # Optional -eval_gemfile 'gemfiles/modular/optional.gemfile' +eval_gemfile "gemfiles/modular/optional.gemfile" ### Std Lib Extracted Gems -eval_gemfile 'gemfiles/modular/x_std_libs.gemfile' +eval_gemfile "gemfiles/modular/x_std_libs.gemfile" # See unlocked_deps appraisal for more details on irb inclusion -gem 'irb', '~> 1.17' # ruby >= 2.7 +gem "irb", "~> 1.17" # ruby >= 2.7 diff --git a/gems/prism-merge/Gemfile.lock b/gems/prism-merge/Gemfile.lock index c17d43db9..92689ecf7 100644 --- a/gems/prism-merge/Gemfile.lock +++ b/gems/prism-merge/Gemfile.lock @@ -6,6 +6,14 @@ PATH ruby-merge (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge + specs: + ruby-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + GEM remote: https://gem.coop/ specs: @@ -276,10 +284,6 @@ GEM lint_roller (~> 1.1) rubocop (~> 1.72, >= 1.72.1) rubocop-ast (>= 1.44.0, < 2.0) - ruby-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) ruby-progressbar (1.13.0) ruby_engine (2.0.3) ruby_version (1.0.3) @@ -298,7 +302,7 @@ GEM simplecov (>= 0.4.1) simplecov_lcov_formatter (0.9.0) simplecov (>= 0.18) - sorbet-runtime (0.6.13347) + sorbet-runtime (0.6.13351) standard (1.56.0) language_server-protocol (~> 3.17.0.2) lint_roller (~> 1.0) @@ -415,6 +419,7 @@ DEPENDENCIES rubocop-on-rbs (~> 2.0, >= 2.0.0) rubocop-packaging (~> 0.6, >= 0.6.0) rubocop-ruby3_2 (~> 3.0, >= 3.0.6) + ruby-merge! ruby-progressbar (~> 1.13) standard (~> 1.56, >= 1.56.0) stone_checksums (~> 1.0, >= 1.0.3) @@ -538,7 +543,7 @@ CHECKSUMS simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed - sorbet-runtime (0.6.13347) sha256=54e7221d9f4b63f58aec79f3043752a9ba7810347c6ae0d903531591cc2d5f01 + sorbet-runtime (0.6.13351) sha256=f8fee17c6e3edf835dc6823d26afb9a7c8969c6710d1fabe2fb43f4e0c15c64f standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b standard-performance (1.9.0) sha256=49483d31be448292951d80e5e67cdcb576c2502103c7b40aec6f1b6e9c88e3f2 diff --git a/gems/prism-merge/Rakefile b/gems/prism-merge/Rakefile index 0413b973d..3ceda1211 100644 --- a/gems/prism-merge/Rakefile +++ b/gems/prism-merge/Rakefile @@ -130,23 +130,23 @@ end ### DUPLICATE DRIFT TASKS begin - require 'kettle/drift' + require "kettle/drift" Kettle::Drift.install_tasks rescue LoadError - desc('(stub) kettle:drift:check is unavailable') - task('kettle:drift:check') do + desc("(stub) kettle:drift:check is unavailable") + task("kettle:drift:check") do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc('(stub) kettle:drift:update is unavailable') - task('kettle:drift:update') do + desc("(stub) kettle:drift:update is unavailable") + task("kettle:drift:update") do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc('(stub) kettle:drift:force_update is unavailable') - task('kettle:drift:force_update') do + desc("(stub) kettle:drift:force_update is unavailable") + task("kettle:drift:force_update") do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc('(stub) kettle:drift is unavailable') - task('kettle:drift' => 'kettle:drift:update') + desc("(stub) kettle:drift is unavailable") + task("kettle:drift" => "kettle:drift:update") end ### TEMPLATING TASKS diff --git a/gems/prism-merge/bin/yard b/gems/prism-merge/bin/yard index 5d516ad6f..a7e8b6eed 100755 --- a/gems/prism-merge/bin/yard +++ b/gems/prism-merge/bin/yard @@ -12,4 +12,4 @@ # `yard` / `bin/yard`. Keep this binstub as a handoff to the task so # humans and tools that reach for `bin/yard` still run the full docs # workflow with post-processing hooks. -exec('bundle', 'exec', 'rake', 'yard') +exec("bundle", "exec", "rake", "yard") diff --git a/gems/prism-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile b/gems/prism-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile index b8392fab0..dec650815 100644 --- a/gems/prism-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile +++ b/gems/prism-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.1 -gem 'benchmark', '~> 0.5', '>= 0.5.0' # Removed from Std Lib in Ruby 4.0 +gem "benchmark", "~> 0.5", ">= 0.5.0" # Removed from Std Lib in Ruby 4.0 diff --git a/gems/prism-merge/gemfiles/modular/benchmark/vHEAD.gemfile b/gems/prism-merge/gemfiles/modular/benchmark/vHEAD.gemfile index af214aafa..e1eb20c5e 100644 --- a/gems/prism-merge/gemfiles/modular/benchmark/vHEAD.gemfile +++ b/gems/prism-merge/gemfiles/modular/benchmark/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.1 -gem 'benchmark', github: 'ruby/benchmark', branch: 'master' +gem "benchmark", github: "ruby/benchmark", branch: "master" diff --git a/gems/prism-merge/gemfiles/modular/cgi/r4/v0.5.gemfile b/gems/prism-merge/gemfiles/modular/cgi/r4/v0.5.gemfile index 17ad97260..19ed967c3 100644 --- a/gems/prism-merge/gemfiles/modular/cgi/r4/v0.5.gemfile +++ b/gems/prism-merge/gemfiles/modular/cgi/r4/v0.5.gemfile @@ -1 +1 @@ -gem 'cgi', '~> 0.5' +gem "cgi", "~> 0.5" diff --git a/gems/prism-merge/gemfiles/modular/cgi/vHEAD.gemfile b/gems/prism-merge/gemfiles/modular/cgi/vHEAD.gemfile index 650fbf033..ef8b816ce 100644 --- a/gems/prism-merge/gemfiles/modular/cgi/vHEAD.gemfile +++ b/gems/prism-merge/gemfiles/modular/cgi/vHEAD.gemfile @@ -1 +1 @@ -gem 'cgi', '>= 0.5' +gem "cgi", ">= 0.5" diff --git a/gems/prism-merge/gemfiles/modular/coverage.gemfile b/gems/prism-merge/gemfiles/modular/coverage.gemfile index b93014b6b..52d737872 100644 --- a/gems/prism-merge/gemfiles/modular/coverage.gemfile +++ b/gems/prism-merge/gemfiles/modular/coverage.gemfile @@ -4,11 +4,11 @@ # Set KETTLE_DEV_DEV=true for local development with path-based dependencies. # When false (default / CI), remote released gems are used. -if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? +if ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false").zero? # Coverage (remote/released) platform :mri do - gem 'kettle-soup-cover', '~> 3.0', '>= 3.0.3', require: false + gem "kettle-soup-cover", "~> 3.0", ">= 3.0.3", require: false end else - eval_gemfile 'coverage_local.gemfile' + eval_gemfile "coverage_local.gemfile" end diff --git a/gems/prism-merge/gemfiles/modular/coverage_local.gemfile b/gems/prism-merge/gemfiles/modular/coverage_local.gemfile index ab0e08fd4..3e06a44ef 100644 --- a/gems/prism-merge/gemfiles/modular/coverage_local.gemfile +++ b/gems/prism-merge/gemfiles/modular/coverage_local.gemfile @@ -11,19 +11,21 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] -nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) +nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] +nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == "nomono" } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + if nomono_locked + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] + end end -Kernel.send(:gem, 'nomono', *nomono_activation_requirements) -require 'nomono/bundler' +Kernel.send(:gem, "nomono", *nomono_activation_requirements) +require "nomono/bundler" local_gems = %w[kettle-dev kettle-test kettle-soup-cover kettle-drift] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) @@ -33,21 +35,21 @@ local_gems_to_eval = local_gems - %w[prism-merge] - declared_gems platform :mri do eval_nomono_gems( gems: local_gems_to_eval, - prefix: 'KETTLE_DEV', - path_env: 'KETTLE_DEV_DEV', - vendored_gems_env: 'VENDORED_GEMS', - vendor_gem_dir_env: 'VENDOR_GEM_DIR', - debug_env: 'KETTLE_DEV_DEBUG' + prefix: "KETTLE_DEV", + path_env: "KETTLE_DEV_DEV", + vendored_gems_env: "VENDORED_GEMS", + vendor_gem_dir_env: "VENDOR_GEM_DIR", + debug_env: "KETTLE_DEV_DEBUG" ) - if ENV.fetch('GALTZO_FLOSS_DEV', 'false').casecmp('false') != 0 + if ENV.fetch("GALTZO_FLOSS_DEV", "false").casecmp("false") != 0 eval_nomono_gems( gems: %w[turbo_tests2], - prefix: 'GALTZO_FLOSS', - path_env: 'GALTZO_FLOSS_DEV', - vendored_gems_env: 'GALTZO_FLOSS_VENDORED_GEMS', - vendor_gem_dir_env: 'GALTZO_FLOSS_VENDOR_GEM_DIR', - debug_env: 'GALTZO_FLOSS_DEBUG' + prefix: "GALTZO_FLOSS", + path_env: "GALTZO_FLOSS_DEV", + vendored_gems_env: "GALTZO_FLOSS_VENDORED_GEMS", + vendor_gem_dir_env: "GALTZO_FLOSS_VENDOR_GEM_DIR", + debug_env: "GALTZO_FLOSS_DEBUG" ) end end diff --git a/gems/prism-merge/gemfiles/modular/debug.gemfile b/gems/prism-merge/gemfiles/modular/debug.gemfile index eed8d4d1e..4e15b1a3a 100644 --- a/gems/prism-merge/gemfiles/modular/debug.gemfile +++ b/gems/prism-merge/gemfiles/modular/debug.gemfile @@ -13,10 +13,10 @@ platform :mri do # Debugging - Ensure ENV["DEBUG"] == "true" to use debuggers within spec suite # Use binding.break, binding.b, or debugger in code - gem 'debug', '>= 1.1' # ruby >= 2.7 + gem "debug", ">= 1.1" # ruby >= 2.7 # Dev Console - Binding.pry - Irb replacement # gem "pry", "~> 0.14" # ruby >= 2.0 end -gem 'gem_bench', '~> 2.0', '>= 2.0.5' +gem "gem_bench", "~> 2.0", ">= 2.0.5" diff --git a/gems/prism-merge/gemfiles/modular/documentation.gemfile b/gems/prism-merge/gemfiles/modular/documentation.gemfile index 9d4535f12..d8215416e 100644 --- a/gems/prism-merge/gemfiles/modular/documentation.gemfile +++ b/gems/prism-merge/gemfiles/modular/documentation.gemfile @@ -7,20 +7,20 @@ # # Documentation -gem 'kramdown', '~> 2.5', '>= 2.5.2', require: false # Ruby >= 2.5 -gem 'kramdown-parser-gfm', '~> 1.1', require: false # Ruby >= 2.3 -gem 'yaml-converter', '~> 0.2', '>= 0.2.3', require: false # Ruby >= 3.2 -gem 'yard', '~> 0.9', '>= 0.9.45', require: false -gem 'yard-junk', '~> 0.1', '>= 0.1.0', require: false # Ruby >= 3.1 -gem 'yard-relative_markdown_links', '~> 0.6', require: false +gem "kramdown", "~> 2.5", ">= 2.5.2", require: false # Ruby >= 2.5 +gem "kramdown-parser-gfm", "~> 1.1", require: false # Ruby >= 2.3 +gem "yaml-converter", "~> 0.2", ">= 0.2.3", require: false # Ruby >= 3.2 +gem "yard", "~> 0.9", ">= 0.9.45", require: false +gem "yard-junk", "~> 0.1", ">= 0.1.0", require: false # Ruby >= 3.1 +gem "yard-relative_markdown_links", "~> 0.6", require: false -if ENV.fetch('GALTZO_FLOSS_DEV', 'false').casecmp('false').zero? - gem 'yard-fence', '~> 0.9', '>= 0.9.6', require: false # Ruby >= 3.2 - gem 'yard-timekeeper', '~> 0.2', '>= 0.2.4', require: false - gem 'yard-yaml', '~> 0.2', '>= 0.2.3', require: false +if ENV.fetch("GALTZO_FLOSS_DEV", "false").casecmp("false").zero? + gem "yard-fence", "~> 0.9", ">= 0.9.6", require: false # Ruby >= 3.2 + gem "yard-timekeeper", "~> 0.2", ">= 0.2.4", require: false + gem "yard-yaml", "~> 0.2", ">= 0.2.3", require: false else - eval_gemfile 'documentation_local.gemfile' + eval_gemfile "documentation_local.gemfile" end # Std Lib extractions -gem 'rdoc', '~> 6.11', require: false unless ENV.fetch('KJ_FRAMEWORK_MATRIX_GEM', '') == 'rdoc' +gem "rdoc", "~> 6.11", require: false unless ENV.fetch("KJ_FRAMEWORK_MATRIX_GEM", "") == "rdoc" diff --git a/gems/prism-merge/gemfiles/modular/documentation_local.gemfile b/gems/prism-merge/gemfiles/modular/documentation_local.gemfile index b596a588d..b30a6b15d 100644 --- a/gems/prism-merge/gemfiles/modular/documentation_local.gemfile +++ b/gems/prism-merge/gemfiles/modular/documentation_local.gemfile @@ -11,19 +11,21 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] -nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) +nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] +nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == "nomono" } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + if nomono_locked + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] + end end -Kernel.send(:gem, 'nomono', *nomono_activation_requirements) -require 'nomono/bundler' +Kernel.send(:gem, "nomono", *nomono_activation_requirements) +require "nomono/bundler" local_gems = %w[yard-fence yard-timekeeper yard-yaml] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) @@ -32,9 +34,9 @@ local_gems_to_eval = local_gems - %w[prism-merge] - declared_gems # export GALTZO_FLOSS_DEV=/path/to/galtzo-floss eval_nomono_gems( gems: local_gems_to_eval, - prefix: 'GALTZO_FLOSS', - path_env: 'GALTZO_FLOSS_DEV', - vendored_gems_env: 'GALTZO_FLOSS_VENDORED_GEMS', - vendor_gem_dir_env: 'GALTZO_FLOSS_VENDOR_GEM_DIR', - debug_env: 'GALTZO_FLOSS_DEBUG' + prefix: "GALTZO_FLOSS", + path_env: "GALTZO_FLOSS_DEV", + vendored_gems_env: "GALTZO_FLOSS_VENDORED_GEMS", + vendor_gem_dir_env: "GALTZO_FLOSS_VENDOR_GEM_DIR", + debug_env: "GALTZO_FLOSS_DEBUG" ) diff --git a/gems/prism-merge/gemfiles/modular/erb/r2/v3.0.gemfile b/gems/prism-merge/gemfiles/modular/erb/r2/v3.0.gemfile index 7c83a239b..c03bd8d85 100644 --- a/gems/prism-merge/gemfiles/modular/erb/r2/v3.0.gemfile +++ b/gems/prism-merge/gemfiles/modular/erb/r2/v3.0.gemfile @@ -1 +1 @@ -gem 'erb', '~> 3.0' # ruby >= 2.7.0 +gem "erb", "~> 3.0" # ruby >= 2.7.0 diff --git a/gems/prism-merge/gemfiles/modular/erb/r3/v5.0.gemfile b/gems/prism-merge/gemfiles/modular/erb/r3/v5.0.gemfile index ec7ff451f..1bd029cc1 100644 --- a/gems/prism-merge/gemfiles/modular/erb/r3/v5.0.gemfile +++ b/gems/prism-merge/gemfiles/modular/erb/r3/v5.0.gemfile @@ -1 +1 @@ -gem 'erb', '~> 6.0', '>= 6.0.6' # ruby >= 3.2.0 +gem "erb", "~> 6.0", ">= 6.0.6" # ruby >= 3.2.0 diff --git a/gems/prism-merge/gemfiles/modular/erb/r4/v5.0.gemfile b/gems/prism-merge/gemfiles/modular/erb/r4/v5.0.gemfile index ec7ff451f..1bd029cc1 100644 --- a/gems/prism-merge/gemfiles/modular/erb/r4/v5.0.gemfile +++ b/gems/prism-merge/gemfiles/modular/erb/r4/v5.0.gemfile @@ -1 +1 @@ -gem 'erb', '~> 6.0', '>= 6.0.6' # ruby >= 3.2.0 +gem "erb", "~> 6.0", ">= 6.0.6" # ruby >= 3.2.0 diff --git a/gems/prism-merge/gemfiles/modular/erb/vHEAD.gemfile b/gems/prism-merge/gemfiles/modular/erb/vHEAD.gemfile index ea0101185..48fee4218 100644 --- a/gems/prism-merge/gemfiles/modular/erb/vHEAD.gemfile +++ b/gems/prism-merge/gemfiles/modular/erb/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 3.2 -gem 'erb', github: 'ruby/erb', branch: 'master' +gem "erb", github: "ruby/erb", branch: "master" diff --git a/gems/prism-merge/gemfiles/modular/json/truffleruby_22_3.gemfile b/gems/prism-merge/gemfiles/modular/json/truffleruby_22_3.gemfile index 9b2f8d96a..b0e69ab11 100644 --- a/gems/prism-merge/gemfiles/modular/json/truffleruby_22_3.gemfile +++ b/gems/prism-merge/gemfiles/modular/json/truffleruby_22_3.gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -if RUBY_ENGINE == 'truffleruby' && RUBY_ENGINE_VERSION.start_with?('22.3') +if RUBY_ENGINE == "truffleruby" && RUBY_ENGINE_VERSION.start_with?("22.3") # TruffleRuby 22.3 ships the json default gem from its emulated MRI Ruby. - gem 'json', '= 2.5.1' + gem "json", "= 2.5.1" end diff --git a/gems/prism-merge/gemfiles/modular/json/truffleruby_23_0.gemfile b/gems/prism-merge/gemfiles/modular/json/truffleruby_23_0.gemfile index d787a5ef4..7b2660a2b 100644 --- a/gems/prism-merge/gemfiles/modular/json/truffleruby_23_0.gemfile +++ b/gems/prism-merge/gemfiles/modular/json/truffleruby_23_0.gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -if RUBY_ENGINE == 'truffleruby' && RUBY_ENGINE_VERSION.start_with?('23.0') +if RUBY_ENGINE == "truffleruby" && RUBY_ENGINE_VERSION.start_with?("23.0") # TruffleRuby 23.0 ships the json default gem from its emulated MRI Ruby. - gem 'json', '= 2.6.1' + gem "json", "= 2.6.1" end diff --git a/gems/prism-merge/gemfiles/modular/json/truffleruby_23_1.gemfile b/gems/prism-merge/gemfiles/modular/json/truffleruby_23_1.gemfile index d78486b0e..dfa21f2e4 100644 --- a/gems/prism-merge/gemfiles/modular/json/truffleruby_23_1.gemfile +++ b/gems/prism-merge/gemfiles/modular/json/truffleruby_23_1.gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -if RUBY_ENGINE == 'truffleruby' && RUBY_ENGINE_VERSION.start_with?('23.1') +if RUBY_ENGINE == "truffleruby" && RUBY_ENGINE_VERSION.start_with?("23.1") # TruffleRuby 23.1 ships the json default gem from its emulated MRI Ruby. - gem 'json', '= 2.6.3' + gem "json", "= 2.6.3" end diff --git a/gems/prism-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile b/gems/prism-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile index e27f1bbae..42e9d9bd4 100644 --- a/gems/prism-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile +++ b/gems/prism-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 -gem 'mutex_m', '~> 0.2' +gem "mutex_m", "~> 0.2" diff --git a/gems/prism-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile b/gems/prism-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile index e27f1bbae..42e9d9bd4 100644 --- a/gems/prism-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile +++ b/gems/prism-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 -gem 'mutex_m', '~> 0.2' +gem "mutex_m", "~> 0.2" diff --git a/gems/prism-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile b/gems/prism-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile index e27f1bbae..42e9d9bd4 100644 --- a/gems/prism-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile +++ b/gems/prism-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 -gem 'mutex_m', '~> 0.2' +gem "mutex_m", "~> 0.2" diff --git a/gems/prism-merge/gemfiles/modular/mutex_m/vHEAD.gemfile b/gems/prism-merge/gemfiles/modular/mutex_m/vHEAD.gemfile index 9dac2f6cb..8af3b6fca 100644 --- a/gems/prism-merge/gemfiles/modular/mutex_m/vHEAD.gemfile +++ b/gems/prism-merge/gemfiles/modular/mutex_m/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 (dependency of omniauth) -gem 'mutex_m', github: 'ruby/mutex_m', branch: 'master' +gem "mutex_m", github: "ruby/mutex_m", branch: "master" diff --git a/gems/prism-merge/gemfiles/modular/optional.gemfile b/gems/prism-merge/gemfiles/modular/optional.gemfile index 9ea429538..80bc45196 100644 --- a/gems/prism-merge/gemfiles/modular/optional.gemfile +++ b/gems/prism-merge/gemfiles/modular/optional.gemfile @@ -9,8 +9,8 @@ # Optional dependencies are not depended on directly, but may be used if present. # Required for curated binstubs generated by kettle-jem install -gem 'rbs', '>= 3.0', require: false # ruby >= 3.1 +gem "rbs", ">= 3.0", require: false # ruby >= 3.1 # Required for kettle-pre-release # URL parsing with Unicode support (falls back to URI if not available) -gem 'addressable', '>= 2.8', '< 3' # ruby >= 2.2 +gem "addressable", ">= 2.8", "< 3" # ruby >= 2.2 diff --git a/gems/prism-merge/gemfiles/modular/rspec.gemfile b/gems/prism-merge/gemfiles/modular/rspec.gemfile index 2af210a41..72fdf8b7f 100644 --- a/gems/prism-merge/gemfiles/modular/rspec.gemfile +++ b/gems/prism-merge/gemfiles/modular/rspec.gemfile @@ -1,4 +1,4 @@ -gem 'rspec_junit_formatter', - github: 'pboling/rspec_junit_formatter', - branch: 'main', - ref: '9e6bcaaedd49477b62878ed568dc4ada5cc7cb5e' +gem "rspec_junit_formatter", + github: "pboling/rspec_junit_formatter", + branch: "main", + ref: "9e6bcaaedd49477b62878ed568dc4ada5cc7cb5e" diff --git a/gems/prism-merge/gemfiles/modular/runtime_heads.gemfile b/gems/prism-merge/gemfiles/modular/runtime_heads.gemfile index ebf17c529..02f134c7f 100644 --- a/gems/prism-merge/gemfiles/modular/runtime_heads.gemfile +++ b/gems/prism-merge/gemfiles/modular/runtime_heads.gemfile @@ -8,4 +8,4 @@ # Test against HEAD of runtime dependencies so we can proactively file bugs -eval_gemfile('x_std_libs/vHEAD.gemfile') +eval_gemfile("x_std_libs/vHEAD.gemfile") diff --git a/gems/prism-merge/gemfiles/modular/stringio/r2/v3.0.gemfile b/gems/prism-merge/gemfiles/modular/stringio/r2/v3.0.gemfile index 3616f4e3a..e85bb18ee 100644 --- a/gems/prism-merge/gemfiles/modular/stringio/r2/v3.0.gemfile +++ b/gems/prism-merge/gemfiles/modular/stringio/r2/v3.0.gemfile @@ -2,4 +2,4 @@ # NOT SEMVER # Version 3.0.7 dropped support for Ruby <= 2.7 # Version 3.0.0 dropped support for Ruby <= 2.4 -gem 'stringio', '>= 3.0' +gem "stringio", ">= 3.0" diff --git a/gems/prism-merge/gemfiles/modular/stringio/r3/v3.0.gemfile b/gems/prism-merge/gemfiles/modular/stringio/r3/v3.0.gemfile index 3616f4e3a..e85bb18ee 100644 --- a/gems/prism-merge/gemfiles/modular/stringio/r3/v3.0.gemfile +++ b/gems/prism-merge/gemfiles/modular/stringio/r3/v3.0.gemfile @@ -2,4 +2,4 @@ # NOT SEMVER # Version 3.0.7 dropped support for Ruby <= 2.7 # Version 3.0.0 dropped support for Ruby <= 2.4 -gem 'stringio', '>= 3.0' +gem "stringio", ">= 3.0" diff --git a/gems/prism-merge/gemfiles/modular/stringio/r4/v3.0.gemfile b/gems/prism-merge/gemfiles/modular/stringio/r4/v3.0.gemfile index 3616f4e3a..e85bb18ee 100644 --- a/gems/prism-merge/gemfiles/modular/stringio/r4/v3.0.gemfile +++ b/gems/prism-merge/gemfiles/modular/stringio/r4/v3.0.gemfile @@ -2,4 +2,4 @@ # NOT SEMVER # Version 3.0.7 dropped support for Ruby <= 2.7 # Version 3.0.0 dropped support for Ruby <= 2.4 -gem 'stringio', '>= 3.0' +gem "stringio", ">= 3.0" diff --git a/gems/prism-merge/gemfiles/modular/stringio/vHEAD.gemfile b/gems/prism-merge/gemfiles/modular/stringio/vHEAD.gemfile index 78f5f5d8a..5f2a74126 100644 --- a/gems/prism-merge/gemfiles/modular/stringio/vHEAD.gemfile +++ b/gems/prism-merge/gemfiles/modular/stringio/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 (dependency of omniauth) -gem 'stringio', github: 'ruby/stringio', branch: 'master' +gem "stringio", github: "ruby/stringio", branch: "master" diff --git a/gems/prism-merge/gemfiles/modular/style.gemfile b/gems/prism-merge/gemfiles/modular/style.gemfile index 4dbcc02c0..35de4dcd6 100644 --- a/gems/prism-merge/gemfiles/modular/style.gemfile +++ b/gems/prism-merge/gemfiles/modular/style.gemfile @@ -9,23 +9,23 @@ # Style tasks run on the latest Ruby; RuboCop-LTS selects the compatibility # rules for the configured Ruby floor independently from task dependency floors. -gem 'reek', '~> 6.5', '>= 6.5.0' +gem "reek", "~> 6.5", ">= 6.5.0" platform :mri do - gem 'appraisal2-rubocop', '~> 1.0', '>= 1.0.0', require: false - gem 'rubocop-gradual', '~> 0.4', '>= 0.4.0' - gem 'rubocop-minitest', '~> 0.40', '>= 0.40.0' - gem 'rubocop-on-rbs', '~> 2.0', '>= 2.0.0' # ruby >= 3.2.0 + gem "appraisal2-rubocop", "~> 1.0", ">= 1.0.0", require: false + gem "rubocop-gradual", "~> 0.4", ">= 0.4.0" + gem "rubocop-minitest", "~> 0.40", ">= 0.40.0" + gem "rubocop-on-rbs", "~> 2.0", ">= 2.0.0" # ruby >= 3.2.0 # gem "rubocop", "~> 1.73", ">= 1.73.2" # constrained by standard - gem 'rubocop-packaging', '~> 0.6', '>= 0.6.0' - gem 'standard', '~> 1.56', '>= 1.56.0' + gem "rubocop-packaging", "~> 0.6", ">= 0.6.0" + gem "standard", "~> 1.56", ">= 1.56.0" - if ENV.fetch('RUBOCOP_LTS_LOCAL', 'false').casecmp('false').zero? + if ENV.fetch("RUBOCOP_LTS_LOCAL", "false").casecmp("false").zero? declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) - gem 'rubocop-lts', '~> 24.2', '>= 24.2.1' unless declared_gems.include?('rubocop-lts') - gem 'rubocop-lts-rspec', '~> 1.0', '>= 1.0.5' unless declared_gems.include?('rubocop-lts-rspec') - gem 'rubocop-ruby3_2', '~> 3.0', '>= 3.0.6' unless declared_gems.include?('rubocop-ruby3_2') + gem "rubocop-lts", "~> 24.2", ">= 24.2.1" unless declared_gems.include?("rubocop-lts") + gem "rubocop-lts-rspec", "~> 1.0", ">= 1.0.5" unless declared_gems.include?("rubocop-lts-rspec") + gem "rubocop-ruby3_2", "~> 3.0", ">= 3.0.6" unless declared_gems.include?("rubocop-ruby3_2") else - eval_gemfile('style_local.gemfile') + eval_gemfile("style_local.gemfile") end end diff --git a/gems/prism-merge/gemfiles/modular/style_local.gemfile b/gems/prism-merge/gemfiles/modular/style_local.gemfile index e8e9d2ad4..c3716a6a6 100644 --- a/gems/prism-merge/gemfiles/modular/style_local.gemfile +++ b/gems/prism-merge/gemfiles/modular/style_local.gemfile @@ -14,19 +14,21 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] -nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) +nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] +nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == "nomono" } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + if nomono_locked + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] + end end -Kernel.send(:gem, 'nomono', *nomono_activation_requirements) -require 'nomono/bundler' +Kernel.send(:gem, "nomono", *nomono_activation_requirements) +require "nomono/bundler" local_gems = %w[rubocop-lts rubocop-lts-rspec rubocop-ruby3_2 standard-rubocop-lts] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) @@ -36,11 +38,11 @@ local_gems_to_eval = local_gems - %w[prism-merge] - declared_gems platform :mri do eval_nomono_gems( gems: local_gems_to_eval, - prefix: 'RUBOCOP_LTS', - path_env: 'RUBOCOP_LTS_LOCAL', - vendored_gems_env: 'VENDORED_GEMS', - vendor_gem_dir_env: 'VENDOR_GEM_DIR', - debug_env: 'RUBOCOP_LTS_DEBUG', - root: %w[src rubocop-lts] + prefix: "RUBOCOP_LTS", + path_env: "RUBOCOP_LTS_LOCAL", + vendored_gems_env: "VENDORED_GEMS", + vendor_gem_dir_env: "VENDOR_GEM_DIR", + debug_env: "RUBOCOP_LTS_DEBUG", + root: ["src", "rubocop-lts"] ) end diff --git a/gems/prism-merge/gemfiles/modular/templating.gemfile b/gems/prism-merge/gemfiles/modular/templating.gemfile index a672de184..47138ffbb 100644 --- a/gems/prism-merge/gemfiles/modular/templating.gemfile +++ b/gems/prism-merge/gemfiles/modular/templating.gemfile @@ -1,18 +1,18 @@ # frozen_string_literal: true -structuredmerge_remote = ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false').zero? -kettle_remote = ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? +structuredmerge_remote = ENV.fetch("STRUCTUREDMERGE_DEV", "false").casecmp("false").zero? +kettle_remote = ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false").zero? if structuredmerge_remote # Parser dependencies for released installs. - gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' + gem "tree_sitter_language_pack", "~> 1.13", ">= 1.13.3" # Merge recipes for released installs. - gem 'kettle-jem', '>= 7.0' + gem "kettle-jem", ">= 7.0" end if kettle_remote # Template/plugin checks for released installs. - gem 'kettle-drift', '~> 1.0', '>= 1.0.6', require: false + gem "kettle-drift", "~> 1.0", ">= 1.0.6", require: false end # Set STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local development with path-based dependencies. @@ -21,4 +21,4 @@ end # # Set KETTLE_DEV_DEV=/path/to/my for local development with Kettle plugin gems. # When false (default / CI), released Kettle plugin gems are used. -eval_gemfile 'templating_local.gemfile' unless structuredmerge_remote && kettle_remote +eval_gemfile "templating_local.gemfile" unless structuredmerge_remote && kettle_remote diff --git a/gems/prism-merge/gemfiles/modular/templating_local.gemfile b/gems/prism-merge/gemfiles/modular/templating_local.gemfile index e6d5d15bc..b36adff95 100644 --- a/gems/prism-merge/gemfiles/modular/templating_local.gemfile +++ b/gems/prism-merge/gemfiles/modular/templating_local.gemfile @@ -12,19 +12,21 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] -nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) +nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] +nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == "nomono" } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + if nomono_locked + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] + end end -Kernel.send(:gem, 'nomono', *nomono_activation_requirements) -require 'nomono/bundler' +Kernel.send(:gem, "nomono", *nomono_activation_requirements) +require "nomono/bundler" structuredmerge_local_gems = %w[ tree_haver @@ -67,25 +69,25 @@ structuredmerge_local_gems_to_eval = structuredmerge_local_gems - %w[prism-merge kettle_dev_local_gems_to_eval = kettle_dev_local_gems - %w[prism-merge] - declared_gems platform :mri do - if ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false') != 0 + if ENV.fetch("STRUCTUREDMERGE_DEV", "false").casecmp("false") != 0 eval_nomono_gems( gems: structuredmerge_local_gems_to_eval, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - vendored_gems_env: 'VENDORED_GEMS', - vendor_gem_dir_env: 'VENDOR_GEM_DIR', - debug_env: 'STRUCTUREDMERGE_DEBUG' + prefix: "STRUCTUREDMERGE", + path_env: "STRUCTUREDMERGE_DEV", + vendored_gems_env: "VENDORED_GEMS", + vendor_gem_dir_env: "VENDOR_GEM_DIR", + debug_env: "STRUCTUREDMERGE_DEBUG" ) end - if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false') != 0 + if ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false") != 0 eval_nomono_gems( gems: kettle_dev_local_gems_to_eval, - prefix: 'KETTLE_DEV', - path_env: 'KETTLE_DEV_DEV', - vendored_gems_env: 'VENDORED_GEMS', - vendor_gem_dir_env: 'VENDOR_GEM_DIR', - debug_env: 'KETTLE_DEV_DEBUG' + prefix: "KETTLE_DEV", + path_env: "KETTLE_DEV_DEV", + vendored_gems_env: "VENDORED_GEMS", + vendor_gem_dir_env: "VENDOR_GEM_DIR", + debug_env: "KETTLE_DEV_DEBUG" ) end end diff --git a/gems/prism-merge/gemfiles/modular/webrick/r4/v1.9.gemfile b/gems/prism-merge/gemfiles/modular/webrick/r4/v1.9.gemfile index b1329ba84..eaab4a473 100644 --- a/gems/prism-merge/gemfiles/modular/webrick/r4/v1.9.gemfile +++ b/gems/prism-merge/gemfiles/modular/webrick/r4/v1.9.gemfile @@ -1 +1 @@ -gem 'webrick', '~> 1.9' +gem "webrick", "~> 1.9" diff --git a/gems/prism-merge/gemfiles/modular/webrick/vHEAD.gemfile b/gems/prism-merge/gemfiles/modular/webrick/vHEAD.gemfile index c7e6f81a1..8a789b634 100644 --- a/gems/prism-merge/gemfiles/modular/webrick/vHEAD.gemfile +++ b/gems/prism-merge/gemfiles/modular/webrick/vHEAD.gemfile @@ -1 +1 @@ -gem 'webrick', '>= 1.9' +gem "webrick", ">= 1.9" diff --git a/gems/prism-merge/gemfiles/modular/x_std_libs.gemfile b/gems/prism-merge/gemfiles/modular/x_std_libs.gemfile index b1f43c097..77aad43f2 100644 --- a/gems/prism-merge/gemfiles/modular/x_std_libs.gemfile +++ b/gems/prism-merge/gemfiles/modular/x_std_libs.gemfile @@ -1,12 +1,12 @@ ### Std Lib Extracted Gems ruby_version = Gem::Version.new(RUBY_VERSION) -if ruby_version >= Gem::Version.new('4.0') - eval_gemfile 'x_std_libs/r4/libs.gemfile' -elsif ruby_version >= Gem::Version.new('3.2') - eval_gemfile 'x_std_libs/r3/libs.gemfile' -elsif ruby_version >= Gem::Version.new('3.1') - eval_gemfile 'x_std_libs/r3.1/libs.gemfile' +if ruby_version >= Gem::Version.new("4.0") + eval_gemfile "x_std_libs/r4/libs.gemfile" +elsif ruby_version >= Gem::Version.new("3.2") + eval_gemfile "x_std_libs/r3/libs.gemfile" +elsif ruby_version >= Gem::Version.new("3.1") + eval_gemfile "x_std_libs/r3.1/libs.gemfile" else - eval_gemfile 'x_std_libs/r2/libs.gemfile' + eval_gemfile "x_std_libs/r2/libs.gemfile" end diff --git a/gems/prism-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile b/gems/prism-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile index 16a5e3d70..441c4f03a 100644 --- a/gems/prism-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile +++ b/gems/prism-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile @@ -1,3 +1,3 @@ -eval_gemfile '../../erb/r2/v3.0.gemfile' -eval_gemfile '../../mutex_m/r2/v0.3.gemfile' -eval_gemfile '../../stringio/r2/v3.0.gemfile' +eval_gemfile "../../erb/r2/v3.0.gemfile" +eval_gemfile "../../mutex_m/r2/v0.3.gemfile" +eval_gemfile "../../stringio/r2/v3.0.gemfile" diff --git a/gems/prism-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile b/gems/prism-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile index 220ff95c1..c293a3ddd 100644 --- a/gems/prism-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile +++ b/gems/prism-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile @@ -1,3 +1,3 @@ -eval_gemfile '../../erb/r3/v5.0.gemfile' -eval_gemfile '../../mutex_m/r3/v0.3.gemfile' -eval_gemfile '../../stringio/r3/v3.0.gemfile' +eval_gemfile "../../erb/r3/v5.0.gemfile" +eval_gemfile "../../mutex_m/r3/v0.3.gemfile" +eval_gemfile "../../stringio/r3/v3.0.gemfile" diff --git a/gems/prism-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile b/gems/prism-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile index e2f6501eb..eb5574247 100644 --- a/gems/prism-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile +++ b/gems/prism-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile @@ -1,6 +1,6 @@ -eval_gemfile '../../erb/r4/v5.0.gemfile' -eval_gemfile '../../mutex_m/r4/v0.3.gemfile' -eval_gemfile '../../stringio/r4/v3.0.gemfile' -eval_gemfile '../../benchmark/r4/v0.5.gemfile' -eval_gemfile '../../cgi/r4/v0.5.gemfile' -eval_gemfile '../../webrick/r4/v1.9.gemfile' +eval_gemfile "../../erb/r4/v5.0.gemfile" +eval_gemfile "../../mutex_m/r4/v0.3.gemfile" +eval_gemfile "../../stringio/r4/v3.0.gemfile" +eval_gemfile "../../benchmark/r4/v0.5.gemfile" +eval_gemfile "../../cgi/r4/v0.5.gemfile" +eval_gemfile "../../webrick/r4/v1.9.gemfile" diff --git a/gems/prism-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile b/gems/prism-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile index ab75cccf1..d4d5b16c9 100644 --- a/gems/prism-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile +++ b/gems/prism-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile @@ -1,6 +1,6 @@ -eval_gemfile '../erb/vHEAD.gemfile' -eval_gemfile '../mutex_m/vHEAD.gemfile' -eval_gemfile '../stringio/vHEAD.gemfile' -eval_gemfile '../benchmark/vHEAD.gemfile' -eval_gemfile '../cgi/vHEAD.gemfile' -eval_gemfile '../webrick/vHEAD.gemfile' +eval_gemfile "../erb/vHEAD.gemfile" +eval_gemfile "../mutex_m/vHEAD.gemfile" +eval_gemfile "../stringio/vHEAD.gemfile" +eval_gemfile "../benchmark/vHEAD.gemfile" +eval_gemfile "../cgi/vHEAD.gemfile" +eval_gemfile "../webrick/vHEAD.gemfile" diff --git a/gems/prism-merge/lib/prism/merge/version.rb b/gems/prism-merge/lib/prism/merge/version.rb index 29398c390..c5d5bca42 100644 --- a/gems/prism-merge/lib/prism/merge/version.rb +++ b/gems/prism-merge/lib/prism/merge/version.rb @@ -3,7 +3,7 @@ module Prism module Merge module Version - VERSION = '7.1.0' + VERSION = "7.1.0" end VERSION = Version::VERSION # Traditional Constant Location end diff --git a/gems/prism-merge/spec/spec_helper.rb b/gems/prism-merge/spec/spec_helper.rb index 62ce2e783..777af4683 100644 --- a/gems/prism-merge/spec/spec_helper.rb +++ b/gems/prism-merge/spec/spec_helper.rb @@ -7,11 +7,16 @@ # NOTE: Gemfiles for non-coverage appraisals may not have kettle-soup-cover. # The rescue LoadError handles that scenario. begin - require 'kettle-soup-cover' - require 'simplecov' if Kettle::Soup::Cover::DO_COV # `.simplecov` is run here! -rescue LoadError => e + require "kettle-soup-cover" + if Kettle::Soup::Cover::DO_COV + # Requiring simplecov loads the project-local `.simplecov`. + require "simplecov" + require "kettle/soup/cover/config" + SimpleCov.start + end +rescue LoadError => error # check the error message and re-raise when unexpected - raise e unless e.message.include?('kettle') + raise error unless error.message.include?("kettle") end # External RSpec & related config diff --git a/gems/ruby-merge/Gemfile.lock b/gems/ruby-merge/Gemfile.lock index 05d635ba1..664154439 100644 --- a/gems/ruby-merge/Gemfile.lock +++ b/gems/ruby-merge/Gemfile.lock @@ -6,6 +6,266 @@ PATH tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly + specs: + ast-crispr-markdown-markly (7.1.0) + ast-crispr (= 7.1.0) + markly-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism + specs: + ast-crispr-ruby-prism (7.1.0) + ast-crispr (= 7.1.0) + prism-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr + specs: + ast-crispr (7.1.0) + ast-merge (= 7.1.0) + service_actor (~> 3.9) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git + specs: + ast-merge-git (7.1.0) + ast-merge (= 7.1.0) + json-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge + specs: + ast-merge (7.1.0) + benchmark + token-resolver (~> 2.0, >= 2.0.4) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template + specs: + ast-template (7.1.0) + ast-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge + specs: + bash-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge + specs: + binary-merge (7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge + specs: + citrus-toml-merge (7.1.0) + toml-merge (= 7.1.0) + toml-rb (~> 4.1) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge + specs: + commonmarker-merge (7.1.0) + commonmarker (~> 2.2) + markdown-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge + specs: + dotenv-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge + specs: + go-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge + specs: + json-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem + specs: + kettle-jem (7.1.0) + addressable (>= 2.8, < 3) + ast-crispr-markdown-markly (= 7.1.0) + ast-crispr-ruby-prism (= 7.1.0) + ast-merge (= 7.1.0) + bash-merge (= 7.1.0) + citrus-toml-merge (= 7.1.0) + commonmarker-merge (= 7.1.0) + dotenv-merge (= 7.1.0) + json-merge (= 7.1.0) + kettle-dev (~> 2.3, >= 2.3.5) + kettle-rb (~> 0.1, >= 0.1.4) + kramdown-merge (= 7.1.0) + markdown-merge (= 7.1.0) + markly-merge (= 7.1.0) + prism-merge (= 7.1.0) + psych-merge (= 7.1.0) + rbs (>= 3.10) + rbs-merge (= 7.1.0) + ruby-merge (= 7.1.0) + token-resolver (~> 2.0, >= 2.0.4) + toml-merge (= 7.1.0) + toml-rb (~> 4.2) + tree_haver (= 7.1.0) + yaml-merge (= 7.1.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge + specs: + kramdown-merge (7.1.0) + kramdown (~> 2.5) + markdown-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge + specs: + markdown-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge + specs: + markly-merge (7.1.0) + markdown-merge (= 7.1.0) + markly (~> 0.9) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge + specs: + parslet-toml-merge (7.1.0) + toml (~> 0.3) + toml-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge + specs: + plain-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge + specs: + prism-merge (7.1.0) + prism (~> 1.6) + ruby-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge + specs: + psych-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + yaml-merge (= 7.1.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge + specs: + rbs-merge (7.1.0) + ast-merge (= 7.1.0) + rbs (>= 3.10) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge + specs: + rust-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb + specs: + smorg-rb (7.1.0) + ast-merge (= 7.1.0) + ast-merge-git (= 7.1.0) + diff-lcs (~> 1.5) + go-merge (= 7.1.0) + json-merge (= 7.1.0) + kettle-jem (= 7.1.0) + markly-merge (= 7.1.0) + plain-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge + specs: + toml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver + specs: + tree_haver (7.1.0) + citrus (~> 3.0) + parslet (~> 2.0) + tree_sitter_language_pack (>= 1.13.2, < 2.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge + specs: + typescript-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge + specs: + yaml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge + specs: + zip-merge (7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + GEM remote: https://gem.coop/ specs: @@ -21,11 +281,6 @@ GEM rubocop (>= 1.0) version_gem (~> 1.1, >= 1.1.14) ast (2.4.3) - ast-merge (7.1.0) - benchmark - token-resolver (~> 2.0, >= 2.0.4) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) backports (3.25.3) benchmark (0.5.0) bigdecimal (4.1.2) @@ -35,6 +290,11 @@ GEM cgi (0.5.2) citrus (3.0.2) cmdparse (3.0.7) + commonmarker (2.9.0-aarch64-linux) + commonmarker (2.9.0-aarch64-linux-musl) + commonmarker (2.9.0-arm64-darwin) + commonmarker (2.9.0-x86_64-linux) + commonmarker (2.9.0-x86_64-linux-musl) concurrent-ruby (1.3.8) date (3.5.1) debug (1.11.1) @@ -97,6 +357,8 @@ GEM kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) + kettle-drift (1.0.6) + version_gem (~> 1.1, >= 1.1.14) kettle-rb (0.1.5) kettle-soup-cover (3.0.4) kettle-wash (~> 0.1, >= 0.1.0) @@ -125,6 +387,7 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) + markly (0.16.0) mutex_m (0.3.0) nokogiri (1.19.4-aarch64-linux-gnu) racc (~> 1.4) @@ -287,6 +550,8 @@ GEM ruby-progressbar (1.13.0) ruby_engine (2.0.3) ruby_version (1.0.3) + service_actor (3.9.4) + zeitwerk (>= 1.0) silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) @@ -341,11 +606,11 @@ GEM token-resolver (2.0.5) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.14) - tree_haver (7.1.0) - citrus (~> 3.0) - parslet (~> 2.0) - tree_sitter_language_pack (>= 1.13.2, < 2.0) - version_gem (~> 1.1, >= 1.1.9) + toml (0.3.0) + parslet (>= 1.8.0, < 3.0.0) + toml-rb (4.2.0) + citrus (~> 3.0, > 3.0) + racc (~> 1.7) tree_sitter_language_pack (1.13.3-aarch64-linux) sorbet-runtime (~> 0.5) tree_sitter_language_pack (1.13.3-arm64-darwin) @@ -400,23 +665,46 @@ DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) appraisal2-rubocop (~> 1.0, >= 1.0.0) + ast-crispr! + ast-crispr-markdown-markly! + ast-crispr-ruby-prism! + ast-merge! + ast-merge-git! + ast-template! + bash-merge! benchmark (~> 0.5, >= 0.5.0) + binary-merge! bundler-audit (~> 0.9.3) cgi (~> 0.5) + citrus-toml-merge! + commonmarker-merge! debug (>= 1.1) + dotenv-merge! erb (~> 6.0, >= 6.0.6) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.0) + go-merge! irb (~> 1.17) + json-merge! kettle-dev (~> 2.0, >= 2.2.25) + kettle-drift (~> 1.0, >= 1.0.6) + kettle-jem! kettle-soup-cover (~> 3.0, >= 3.0.3) kettle-test (~> 2.0, >= 2.0.9) kramdown (~> 2.5, >= 2.5.2) + kramdown-merge! kramdown-parser-gfm (~> 1.1) + markdown-merge! + markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) + parslet-toml-merge! + plain-merge! + prism-merge! + psych-merge! rake (~> 13.0) rbs (>= 3.0) + rbs-merge! rdoc (~> 6.11) reek (~> 6.5, >= 6.5.0) require_bench (~> 1.0, >= 1.0.4) @@ -429,18 +717,25 @@ DEPENDENCIES rubocop-ruby3_2 (~> 3.0, >= 3.0.6) ruby-merge! ruby-progressbar (~> 1.13) + rust-merge! + smorg-rb! standard (~> 1.56, >= 1.56.0) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) + toml-merge! + tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) + typescript-merge! webrick (~> 1.9) yaml-converter (~> 0.2, >= 0.2.3) + yaml-merge! yard (~> 0.9, >= 0.9.45) yard-fence (~> 0.9, >= 0.9.6) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) yard-timekeeper (~> 0.2, >= 0.2.4) yard-yaml (~> 0.2, >= 0.2.3) + zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af @@ -448,20 +743,35 @@ CHECKSUMS appraisal2 (3.2.0) sha256=ccd0b767ac4060cd7af6d16747459b6990f49c39c7b4fb1f7d1146b1e97c492f appraisal2-rubocop (1.0.0) sha256=b71410fbb014befda5340605a605b7f6f3f012739baf0acc5b4351b592c3258d ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 + ast-crispr (7.1.0) + ast-crispr-markdown-markly (7.1.0) + ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) + ast-merge-git (7.1.0) + ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 + bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd + binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 + citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 + commonmarker (2.9.0-aarch64-linux) sha256=e2b4aadb9a2cfa4e206582641ce3a49465549ac1ed4c289fdd63b78d8f24579c + commonmarker (2.9.0-aarch64-linux-musl) sha256=1cf4d2821f2a7e64945f1ed7c4eeced586fdb27ea7fe7337788802cf8f57cfca + commonmarker (2.9.0-arm64-darwin) sha256=1748dbfa4f5813b0d2a14bb4bbfa65a4ec293aa1c825016d60029ee0e132b046 + commonmarker (2.9.0-x86_64-linux) sha256=8cfe92970eef585a19ddf6613224b91cab64d6029834661bda801f877c9c7f43 + commonmarker (2.9.0-x86_64-linux-musl) sha256=293921398b839f79ceaf55010e061357e34f053822c3b003cd0be6686176335e + commonmarker-merge (7.1.0) concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 + dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -474,20 +784,28 @@ CHECKSUMS gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f + go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 + json-merge (7.1.0) kettle-dev (2.3.9) + kettle-drift (1.0.6) sha256=46eda08fa4411d1f3c6682a95eef1c9df4e94611b3949f49d4c7b43c0ed356a3 + kettle-jem (7.1.0) kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f kettle-soup-cover (3.0.4) kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa + kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 + markdown-merge (7.1.0) + markly (0.16.0) sha256=6f70d79e385b1efc9e171f74c81628826259039fe6c778e03c3924c71dac5511 + markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-aarch64-linux-gnu) sha256=1269fb644a6de405057a53dd5c762b1209b43ca7424f839454d3dbc677c31a8f nokogiri (1.19.4-aarch64-linux-musl) sha256=35c65b9ce72b3bb03207bdbe7067915019dc18c1b9b59139684bd6690fdd01af @@ -501,15 +819,20 @@ CHECKSUMS parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 + parslet-toml-merge (7.1.0) + plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 + prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 + psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 + rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb @@ -548,12 +871,15 @@ CHECKSUMS ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 + rust-merge (7.1.0) + service_actor (3.9.4) sha256=e63b523630b9a7e62959b2a90113b08d2565b5de9c148557b281ef847c9539ce silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed + smorg-rb (7.1.0) sorbet-runtime (0.6.13351) sha256=f8fee17c6e3edf835dc6823d26afb9a7c8969c6710d1fabe2fb43f4e0c15c64f standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b @@ -568,17 +894,22 @@ CHECKSUMS timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.5) sha256=b852f924287ffb58a440856e862b056c8ad97e74b4b2526cee43e0771f40c25c + toml (0.3.0) sha256=0a91d0f76a9036e84e44f95693b12f58d358c1df3ac8e3b5271f2056ecc6e4b9 + toml-merge (7.1.0) + toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-aarch64-linux) sha256=55ffc7c87868cb45658338363d9eba51b4a8b0259aa88e4de368d2bd1d52fea4 tree_sitter_language_pack (1.13.3-arm64-darwin) sha256=bc2498db605f212a1dbd2465ed3f65190d7da786f6ed5d30fcf958121aeb4a5c tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 + typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 webrick (1.9.2) sha256=beb4a15fc474defed24a3bda4ffd88a490d517c9e4e6118c3edce59e45864131 yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 + yaml-merge (7.1.0) yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd @@ -586,6 +917,7 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 + zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH diff --git a/gems/tree_haver/Gemfile.lock b/gems/tree_haver/Gemfile.lock index 3952ff183..e6a9d7da8 100644 --- a/gems/tree_haver/Gemfile.lock +++ b/gems/tree_haver/Gemfile.lock @@ -7,6 +7,265 @@ PATH tree_sitter_language_pack (>= 1.13.2, < 2.0) version_gem (~> 1.1, >= 1.1.9) +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly + specs: + ast-crispr-markdown-markly (7.1.0) + ast-crispr (= 7.1.0) + markly-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism + specs: + ast-crispr-ruby-prism (7.1.0) + ast-crispr (= 7.1.0) + prism-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr + specs: + ast-crispr (7.1.0) + ast-merge (= 7.1.0) + service_actor (~> 3.9) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git + specs: + ast-merge-git (7.1.0) + ast-merge (= 7.1.0) + json-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge + specs: + ast-merge (7.1.0) + benchmark + token-resolver (~> 2.0, >= 2.0.4) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template + specs: + ast-template (7.1.0) + ast-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge + specs: + bash-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge + specs: + binary-merge (7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge + specs: + citrus-toml-merge (7.1.0) + toml-merge (= 7.1.0) + toml-rb (~> 4.1) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge + specs: + commonmarker-merge (7.1.0) + commonmarker (~> 2.2) + markdown-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge + specs: + dotenv-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge + specs: + go-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge + specs: + json-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem + specs: + kettle-jem (7.1.0) + addressable (>= 2.8, < 3) + ast-crispr-markdown-markly (= 7.1.0) + ast-crispr-ruby-prism (= 7.1.0) + ast-merge (= 7.1.0) + bash-merge (= 7.1.0) + citrus-toml-merge (= 7.1.0) + commonmarker-merge (= 7.1.0) + dotenv-merge (= 7.1.0) + json-merge (= 7.1.0) + kettle-dev (~> 2.3, >= 2.3.5) + kettle-rb (~> 0.1, >= 0.1.4) + kramdown-merge (= 7.1.0) + markdown-merge (= 7.1.0) + markly-merge (= 7.1.0) + prism-merge (= 7.1.0) + psych-merge (= 7.1.0) + rbs (>= 3.10) + rbs-merge (= 7.1.0) + ruby-merge (= 7.1.0) + token-resolver (~> 2.0, >= 2.0.4) + toml-merge (= 7.1.0) + toml-rb (~> 4.2) + tree_haver (= 7.1.0) + yaml-merge (= 7.1.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge + specs: + kramdown-merge (7.1.0) + kramdown (~> 2.5) + markdown-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge + specs: + markdown-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge + specs: + markly-merge (7.1.0) + markdown-merge (= 7.1.0) + markly (~> 0.9) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge + specs: + parslet-toml-merge (7.1.0) + toml (~> 0.3) + toml-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge + specs: + plain-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge + specs: + prism-merge (7.1.0) + prism (~> 1.6) + ruby-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge + specs: + psych-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + yaml-merge (= 7.1.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge + specs: + rbs-merge (7.1.0) + ast-merge (= 7.1.0) + rbs (>= 3.10) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge + specs: + ruby-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge + specs: + rust-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb + specs: + smorg-rb (7.1.0) + ast-merge (= 7.1.0) + ast-merge-git (= 7.1.0) + diff-lcs (~> 1.5) + go-merge (= 7.1.0) + json-merge (= 7.1.0) + kettle-jem (= 7.1.0) + markly-merge (= 7.1.0) + plain-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge + specs: + toml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge + specs: + typescript-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge + specs: + yaml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge + specs: + zip-merge (7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + GEM remote: https://gem.coop/ specs: @@ -31,6 +290,8 @@ GEM cgi (0.5.2) citrus (3.0.2) cmdparse (3.0.7) + commonmarker (2.9.0-x86_64-linux) + commonmarker (2.9.0-x86_64-linux-musl) concurrent-ruby (1.3.8) date (3.5.1) debug (1.11.1) @@ -93,6 +354,8 @@ GEM kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) + kettle-drift (1.0.6) + version_gem (~> 1.1, >= 1.1.14) kettle-rb (0.1.5) kettle-soup-cover (3.0.4) kettle-wash (~> 0.1, >= 0.1.0) @@ -121,6 +384,7 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) + markly (0.16.0) mutex_m (0.3.0) nokogiri (1.19.4-x86_64-linux-gnu) racc (~> 1.4) @@ -277,6 +541,8 @@ GEM ruby-progressbar (1.13.0) ruby_engine (2.0.3) ruby_version (1.0.3) + service_actor (3.9.4) + zeitwerk (>= 1.0) silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) @@ -328,6 +594,9 @@ GEM delegate (~> 0.1) rspec (~> 3.0) timecop (>= 0.7, < 1) + token-resolver (2.0.5) + parslet (~> 2.0) + version_gem (~> 1.1, >= 1.1.14) toml (0.3.0) parslet (>= 1.8.0, < 3.0.0) toml-rb (4.2.0) @@ -379,23 +648,46 @@ DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) appraisal2-rubocop (~> 1.0, >= 1.0.0) + ast-crispr! + ast-crispr-markdown-markly! + ast-crispr-ruby-prism! + ast-merge! + ast-merge-git! + ast-template! + bash-merge! benchmark (~> 0.5, >= 0.5.0) + binary-merge! bundler-audit (~> 0.9.3) cgi (~> 0.5) + citrus-toml-merge! + commonmarker-merge! debug (>= 1.1) + dotenv-merge! erb (~> 6.0, >= 6.0.6) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.0) + go-merge! irb (~> 1.17) + json-merge! kettle-dev (~> 2.0, >= 2.2.25) + kettle-drift (~> 1.0, >= 1.0.6) + kettle-jem! kettle-soup-cover (~> 3.0, >= 3.0.3) kettle-test (~> 2.0, >= 2.0.9) kramdown (~> 2.5, >= 2.5.2) + kramdown-merge! kramdown-parser-gfm (~> 1.1) + markdown-merge! + markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) + parslet-toml-merge! + plain-merge! + prism-merge! + psych-merge! rake (~> 13.0) rbs (>= 3.0) + rbs-merge! rdoc (~> 6.11) reek (~> 6.5, >= 6.5.0) require_bench (~> 1.0, >= 1.0.4) @@ -406,21 +698,28 @@ DEPENDENCIES rubocop-on-rbs (~> 2.0, >= 2.0.0) rubocop-packaging (~> 0.6, >= 0.6.0) rubocop-ruby3_2 (~> 3.0, >= 3.0.6) + ruby-merge! ruby-progressbar (~> 1.13) + rust-merge! + smorg-rb! standard (~> 1.56, >= 1.56.0) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) toml (~> 0.3) + toml-merge! toml-rb (~> 4.1) tree_haver! + typescript-merge! webrick (~> 1.9) yaml-converter (~> 0.2, >= 0.2.3) + yaml-merge! yard (~> 0.9, >= 0.9.45) yard-fence (~> 0.9, >= 0.9.6) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) yard-timekeeper (~> 0.2, >= 0.2.4) yard-yaml (~> 0.2, >= 0.2.3) + zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af @@ -428,19 +727,32 @@ CHECKSUMS appraisal2 (3.2.0) sha256=ccd0b767ac4060cd7af6d16747459b6990f49c39c7b4fb1f7d1146b1e97c492f appraisal2-rubocop (1.0.0) sha256=b71410fbb014befda5340605a605b7f6f3f012739baf0acc5b4351b592c3258d ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 + ast-crispr (7.1.0) + ast-crispr-markdown-markly (7.1.0) + ast-crispr-ruby-prism (7.1.0) + ast-merge (7.1.0) + ast-merge-git (7.1.0) + ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 + bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd + binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 + citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 + commonmarker (2.9.0-x86_64-linux) sha256=8cfe92970eef585a19ddf6613224b91cab64d6029834661bda801f877c9c7f43 + commonmarker (2.9.0-x86_64-linux-musl) sha256=293921398b839f79ceaf55010e061357e34f053822c3b003cd0be6686176335e + commonmarker-merge (7.1.0) concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 + dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -453,20 +765,28 @@ CHECKSUMS gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f + go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 + json-merge (7.1.0) kettle-dev (2.3.9) + kettle-drift (1.0.6) sha256=46eda08fa4411d1f3c6682a95eef1c9df4e94611b3949f49d4c7b43c0ed356a3 + kettle-jem (7.1.0) kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f kettle-soup-cover (3.0.4) kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa + kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 + markdown-merge (7.1.0) + markly (0.16.0) sha256=6f70d79e385b1efc9e171f74c81628826259039fe6c778e03c3924c71dac5511 + markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-x86_64-linux-gnu) sha256=379fae440b28915e3f19d752ce2dcf8465ed2b2fbefd2a7ca0dd497bc981a06a nokogiri (1.19.4-x86_64-linux-musl) sha256=17dfb7c1fa194ae02fbf7c51a7afc8d278045ab3fdacfd86f91d02d7b274470b @@ -477,15 +797,20 @@ CHECKSUMS parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 + parslet-toml-merge (7.1.0) + plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 + prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 + psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 + rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb @@ -520,15 +845,19 @@ CHECKSUMS rubocop-rspec_rails (2.32.0) sha256=4a0d641c72f6ebb957534f539d9d0a62c47abd8ce0d0aeee1ef4701e892a9100 rubocop-ruby3_2 (3.0.7) sha256=f53dd6d286fb05186214fc6ec116783e7f837030918e8931c05de773e98f8466 rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 + ruby-merge (7.1.0) ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 + rust-merge (7.1.0) + service_actor (3.9.4) sha256=e63b523630b9a7e62959b2a90113b08d2565b5de9c148557b281ef847c9539ce silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed + smorg-rb (7.1.0) sorbet-runtime (0.6.13351) sha256=f8fee17c6e3edf835dc6823d26afb9a7c8969c6710d1fabe2fb43f4e0c15c64f standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b @@ -542,17 +871,21 @@ CHECKSUMS thor (1.5.0) sha256=e3a9e55fe857e44859ce104a84675ab6e8cd59c650a49106a05f55f136425e73 timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 + token-resolver (2.0.5) sha256=b852f924287ffb58a440856e862b056c8ad97e74b4b2526cee43e0771f40c25c toml (0.3.0) sha256=0a91d0f76a9036e84e44f95693b12f58d358c1df3ac8e3b5271f2056ecc6e4b9 + toml-merge (7.1.0) toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 + typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 webrick (1.9.2) sha256=beb4a15fc474defed24a3bda4ffd88a490d517c9e4e6118c3edce59e45864131 yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 + yaml-merge (7.1.0) yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd @@ -560,6 +893,7 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 + zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH From 609658d44615b3367801b291a882bf0767cc2ec2 Mon Sep 17 00:00:00 2001 From: "Peter H. Boling" Date: Tue, 21 Jul 2026 18:01:29 -0600 Subject: [PATCH 150/188] =?UTF-8?q?=F0=9F=8E=A8=20Template=20bootstrap=20b?= =?UTF-8?q?y=20kettle-jem=20v7.1.0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gems/ast-crispr-ruby-prism/Gemfile.lock | 26 +- gems/markdown-merge/.rubocop_gradual.lock | 2 +- gems/markdown-merge/.simplecov | 2 +- gems/markdown-merge/Gemfile | 70 +- gems/markdown-merge/Gemfile.lock | 344 +-------- gems/markdown-merge/Rakefile | 18 +- .../modular/benchmark/r4/v0.5.gemfile | 2 +- .../gemfiles/modular/benchmark/vHEAD.gemfile | 2 +- .../gemfiles/modular/cgi/r4/v0.5.gemfile | 2 +- .../gemfiles/modular/cgi/vHEAD.gemfile | 2 +- .../gemfiles/modular/coverage.gemfile | 6 +- .../gemfiles/modular/coverage_local.gemfile | 42 +- .../gemfiles/modular/debug.gemfile | 4 +- .../gemfiles/modular/documentation.gemfile | 24 +- .../modular/documentation_local.gemfile | 30 +- .../gemfiles/modular/erb/r2/v3.0.gemfile | 2 +- .../gemfiles/modular/erb/r3/v5.0.gemfile | 2 +- .../gemfiles/modular/erb/r4/v5.0.gemfile | 2 +- .../gemfiles/modular/erb/vHEAD.gemfile | 2 +- .../modular/json/truffleruby_22_3.gemfile | 4 +- .../modular/json/truffleruby_23_0.gemfile | 4 +- .../modular/json/truffleruby_23_1.gemfile | 4 +- .../gemfiles/modular/mutex_m/r2/v0.3.gemfile | 2 +- .../gemfiles/modular/mutex_m/r3/v0.3.gemfile | 2 +- .../gemfiles/modular/mutex_m/r4/v0.3.gemfile | 2 +- .../gemfiles/modular/mutex_m/vHEAD.gemfile | 2 +- .../gemfiles/modular/optional.gemfile | 4 +- .../gemfiles/modular/rspec.gemfile | 8 +- .../gemfiles/modular/runtime_heads.gemfile | 2 +- .../gemfiles/modular/stringio/r2/v3.0.gemfile | 2 +- .../gemfiles/modular/stringio/r3/v3.0.gemfile | 2 +- .../gemfiles/modular/stringio/r4/v3.0.gemfile | 2 +- .../gemfiles/modular/stringio/vHEAD.gemfile | 2 +- .../gemfiles/modular/style.gemfile | 24 +- .../gemfiles/modular/style_local.gemfile | 32 +- .../gemfiles/modular/templating.gemfile | 12 +- .../gemfiles/modular/templating_local.gemfile | 44 +- .../gemfiles/modular/webrick/r4/v1.9.gemfile | 2 +- .../gemfiles/modular/webrick/vHEAD.gemfile | 2 +- .../gemfiles/modular/x_std_libs.gemfile | 14 +- .../modular/x_std_libs/r2/libs.gemfile | 6 +- .../modular/x_std_libs/r3/libs.gemfile | 6 +- .../modular/x_std_libs/r4/libs.gemfile | 12 +- .../gemfiles/modular/x_std_libs/vHEAD.gemfile | 12 +- .../lib/markdown/merge/version.rb | 2 +- gems/markdown-merge/spec/spec_helper.rb | 10 +- gems/markly-merge/Gemfile.lock | 345 ++++++++- gems/prism-merge/.rubocop_gradual.lock | 707 ++++++++++++++++++ gems/prism-merge/.simplecov | 2 +- gems/prism-merge/Gemfile | 70 +- gems/prism-merge/Gemfile.lock | 6 +- gems/prism-merge/Rakefile | 18 +- gems/prism-merge/bin/yard | 2 +- .../modular/benchmark/r4/v0.5.gemfile | 2 +- .../gemfiles/modular/benchmark/vHEAD.gemfile | 2 +- .../gemfiles/modular/cgi/r4/v0.5.gemfile | 2 +- .../gemfiles/modular/cgi/vHEAD.gemfile | 2 +- .../gemfiles/modular/coverage.gemfile | 6 +- .../gemfiles/modular/coverage_local.gemfile | 42 +- .../gemfiles/modular/debug.gemfile | 4 +- .../gemfiles/modular/documentation.gemfile | 24 +- .../modular/documentation_local.gemfile | 30 +- .../gemfiles/modular/erb/r2/v3.0.gemfile | 2 +- .../gemfiles/modular/erb/r3/v5.0.gemfile | 2 +- .../gemfiles/modular/erb/r4/v5.0.gemfile | 2 +- .../gemfiles/modular/erb/vHEAD.gemfile | 2 +- .../modular/json/truffleruby_22_3.gemfile | 4 +- .../modular/json/truffleruby_23_0.gemfile | 4 +- .../modular/json/truffleruby_23_1.gemfile | 4 +- .../gemfiles/modular/mutex_m/r2/v0.3.gemfile | 2 +- .../gemfiles/modular/mutex_m/r3/v0.3.gemfile | 2 +- .../gemfiles/modular/mutex_m/r4/v0.3.gemfile | 2 +- .../gemfiles/modular/mutex_m/vHEAD.gemfile | 2 +- .../gemfiles/modular/optional.gemfile | 4 +- .../gemfiles/modular/rspec.gemfile | 8 +- .../gemfiles/modular/runtime_heads.gemfile | 2 +- .../gemfiles/modular/stringio/r2/v3.0.gemfile | 2 +- .../gemfiles/modular/stringio/r3/v3.0.gemfile | 2 +- .../gemfiles/modular/stringio/r4/v3.0.gemfile | 2 +- .../gemfiles/modular/stringio/vHEAD.gemfile | 2 +- .../gemfiles/modular/style.gemfile | 24 +- .../gemfiles/modular/style_local.gemfile | 32 +- .../gemfiles/modular/templating.gemfile | 12 +- .../gemfiles/modular/templating_local.gemfile | 44 +- .../gemfiles/modular/webrick/r4/v1.9.gemfile | 2 +- .../gemfiles/modular/webrick/vHEAD.gemfile | 2 +- .../gemfiles/modular/x_std_libs.gemfile | 14 +- .../modular/x_std_libs/r2/libs.gemfile | 6 +- .../modular/x_std_libs/r3/libs.gemfile | 6 +- .../modular/x_std_libs/r4/libs.gemfile | 12 +- .../gemfiles/modular/x_std_libs/vHEAD.gemfile | 12 +- gems/prism-merge/lib/prism/merge/version.rb | 2 +- gems/prism-merge/spec/spec_helper.rb | 10 +- 93 files changed, 1479 insertions(+), 817 deletions(-) create mode 100644 gems/prism-merge/.rubocop_gradual.lock diff --git a/gems/ast-crispr-ruby-prism/Gemfile.lock b/gems/ast-crispr-ruby-prism/Gemfile.lock index 66b6ab440..2d4579978 100644 --- a/gems/ast-crispr-ruby-prism/Gemfile.lock +++ b/gems/ast-crispr-ruby-prism/Gemfile.lock @@ -6,22 +6,6 @@ PATH prism-merge (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) -PATH - remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr - specs: - ast-crispr (7.1.0) - ast-merge (= 7.1.0) - service_actor (~> 3.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/prism-merge - specs: - prism-merge (7.1.0) - prism (~> 1.6) - ruby-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - GEM remote: https://gem.coop/ specs: @@ -37,6 +21,10 @@ GEM rubocop (>= 1.0) version_gem (~> 1.1, >= 1.1.14) ast (2.4.3) + ast-crispr (7.1.0) + ast-merge (= 7.1.0) + service_actor (~> 3.9) + version_gem (~> 1.1, >= 1.1.9) ast-merge (7.1.0) benchmark token-resolver (~> 2.0, >= 2.0.4) @@ -158,6 +146,10 @@ GEM prettyprint prettyprint (0.2.0) prism (1.9.0) + prism-merge (7.1.0) + prism (~> 1.6) + ruby-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) psych (5.4.0) date stringio @@ -404,7 +396,6 @@ DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) appraisal2-rubocop (~> 1.0, >= 1.0.0) - ast-crispr! ast-crispr-ruby-prism! benchmark (~> 0.5, >= 0.5.0) bundler-audit (~> 0.9.3) @@ -421,7 +412,6 @@ DEPENDENCIES kramdown-parser-gfm (~> 1.1) mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) - prism-merge! rake (~> 13.0) rbs (>= 3.0) rdoc (~> 6.11) diff --git a/gems/markdown-merge/.rubocop_gradual.lock b/gems/markdown-merge/.rubocop_gradual.lock index 74676f0f9..170b2e9af 100644 --- a/gems/markdown-merge/.rubocop_gradual.lock +++ b/gems/markdown-merge/.rubocop_gradual.lock @@ -1,5 +1,5 @@ { - ".simplecov:862493710": [ + ".simplecov:628617557": [ [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] ], "Rakefile:1018150957": [ diff --git a/gems/markdown-merge/.simplecov b/gems/markdown-merge/.simplecov index 15c384d84..f36e55ea8 100644 --- a/gems/markdown-merge/.simplecov +++ b/gems/markdown-merge/.simplecov @@ -10,5 +10,5 @@ # If the values for minimum coverage need to change, they should be changed both there, # and in 2 places in .github/workflows/coverage.yml. SimpleCov.configure do - cover "lib/**/*.rb", "lib/**/*.rake", "exe/*.rb" + cover 'lib/**/*.rb', 'lib/**/*.rake', 'exe/*.rb' end diff --git a/gems/markdown-merge/Gemfile b/gems/markdown-merge/Gemfile index 39004a731..ae8e19da2 100644 --- a/gems/markdown-merge/Gemfile +++ b/gems/markdown-merge/Gemfile @@ -6,7 +6,7 @@ # kettle-jem will then preserve content between those markers across template runs. # kettle-jem:unfreeze -source "https://gem.coop" +source 'https://gem.coop' git_source(:codeberg) { |repo_name| "https://codeberg.org/#{repo_name}" } git_source(:gitlab) { |repo_name| "https://gitlab.com/#{repo_name}" } @@ -19,58 +19,54 @@ git_source(:gitlab) { |repo_name| "https://gitlab.com/#{repo_name}" } gemspec # Local workspace dependency wiring for *_local.gemfile overrides -nomono_requirements = ["~> 1.0", ">= 1.0.8"] -gem "nomono", *nomono_requirements, require: false # ruby >= 2.2 +nomono_requirements = ['~> 1.0', '>= 1.0.8'] +gem 'nomono', *nomono_requirements, require: false # ruby >= 2.2 # Direct sibling dependencies (env-switched via STRUCTUREDMERGE_DEV) direct_sibling_gems = %w[ ast-merge tree_haver ] -direct_sibling_dev = ENV.fetch("STRUCTUREDMERGE_DEV", "") +direct_sibling_dev = ENV.fetch('STRUCTUREDMERGE_DEV', '') direct_sibling_local = !direct_sibling_dev.empty? && !%w[false 0 no off].include?(direct_sibling_dev.downcase) -direct_sibling_templating = ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? +direct_sibling_templating = ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero?) - direct_sibling_dev_was_set = ENV.key?("STRUCTUREDMERGE_DEV") - direct_sibling_dev_original = ENV.fetch("STRUCTUREDMERGE_DEV", nil) + (direct_sibling_local || + ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) + direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') + direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) begin nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path("Gemfile.lock", __dir__) + nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == "nomono" } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - if nomono_locked - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] - end - end - Kernel.send(:gem, "nomono", *nomono_activation_requirements) - require "nomono/bundler" - if direct_sibling_templating && !direct_sibling_local - ENV["STRUCTUREDMERGE_DEV"] = File.expand_path("..", __dir__) + Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked end + Kernel.send(:gem, 'nomono', *nomono_activation_requirements) + require 'nomono/bundler' + ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local eval_nomono_gems( gems: direct_sibling_gems, - prefix: "STRUCTUREDMERGE", - path_env: "STRUCTUREDMERGE_DEV", - root: ["src", "my", "structuredmerge"] + prefix: 'STRUCTUREDMERGE', + path_env: 'STRUCTUREDMERGE_DEV', + root: %w[src my structuredmerge] ) rescue LoadError - warn "Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies." + warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' ensure if direct_sibling_templating && !direct_sibling_local if direct_sibling_dev_was_set - ENV["STRUCTUREDMERGE_DEV"] = direct_sibling_dev_original + ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original else - ENV.delete("STRUCTUREDMERGE_DEV") + ENV.delete('STRUCTUREDMERGE_DEV') end end end @@ -157,28 +153,28 @@ if direct_sibling_gems.any? && end # Use released TSLP with the Ruby ABI platform-gem fix. -gem "tree_sitter_language_pack", "~> 1.13", ">= 1.13.3" +gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' # Templating (env-switched: STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local paths) -eval_gemfile "gemfiles/modular/templating.gemfile" if ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? +eval_gemfile 'gemfiles/modular/templating.gemfile' if ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? # Debugging -eval_gemfile "gemfiles/modular/debug.gemfile" +eval_gemfile 'gemfiles/modular/debug.gemfile' # Code Coverage (env-switched: KETTLE_DEV_DEV=true for local paths) -eval_gemfile "gemfiles/modular/coverage.gemfile" +eval_gemfile 'gemfiles/modular/coverage.gemfile' # Linting -eval_gemfile "gemfiles/modular/style.gemfile" +eval_gemfile 'gemfiles/modular/style.gemfile' # Documentation -eval_gemfile "gemfiles/modular/documentation.gemfile" +eval_gemfile 'gemfiles/modular/documentation.gemfile' # Optional -eval_gemfile "gemfiles/modular/optional.gemfile" +eval_gemfile 'gemfiles/modular/optional.gemfile' ### Std Lib Extracted Gems -eval_gemfile "gemfiles/modular/x_std_libs.gemfile" +eval_gemfile 'gemfiles/modular/x_std_libs.gemfile' # See unlocked_deps appraisal for more details on irb inclusion -gem "irb", "~> 1.17" # ruby >= 2.7 +gem 'irb', '~> 1.17' # ruby >= 2.7 diff --git a/gems/markdown-merge/Gemfile.lock b/gems/markdown-merge/Gemfile.lock index 5201a42e4..466575358 100644 --- a/gems/markdown-merge/Gemfile.lock +++ b/gems/markdown-merge/Gemfile.lock @@ -6,38 +6,6 @@ PATH tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly - specs: - ast-crispr-markdown-markly (7.1.0) - ast-crispr (= 7.1.0) - markly-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism - specs: - ast-crispr-ruby-prism (7.1.0) - ast-crispr (= 7.1.0) - prism-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr - specs: - ast-crispr (7.1.0) - ast-merge (= 7.1.0) - service_actor (~> 3.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git - specs: - ast-merge-git (7.1.0) - ast-merge (= 7.1.0) - json-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - PATH remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge specs: @@ -47,193 +15,6 @@ PATH tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template - specs: - ast-template (7.1.0) - ast-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge - specs: - bash-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge - specs: - binary-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge - specs: - citrus-toml-merge (7.1.0) - toml-merge (= 7.1.0) - toml-rb (~> 4.1) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge - specs: - commonmarker-merge (7.1.0) - commonmarker (~> 2.2) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge - specs: - dotenv-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge - specs: - go-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge - specs: - json-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem - specs: - kettle-jem (7.1.0) - addressable (>= 2.8, < 3) - ast-crispr-markdown-markly (= 7.1.0) - ast-crispr-ruby-prism (= 7.1.0) - ast-merge (= 7.1.0) - bash-merge (= 7.1.0) - citrus-toml-merge (= 7.1.0) - commonmarker-merge (= 7.1.0) - dotenv-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-dev (~> 2.3, >= 2.3.5) - kettle-rb (~> 0.1, >= 0.1.4) - kramdown-merge (= 7.1.0) - markdown-merge (= 7.1.0) - markly-merge (= 7.1.0) - prism-merge (= 7.1.0) - psych-merge (= 7.1.0) - rbs (>= 3.10) - rbs-merge (= 7.1.0) - ruby-merge (= 7.1.0) - token-resolver (~> 2.0, >= 2.0.4) - toml-merge (= 7.1.0) - toml-rb (~> 4.2) - tree_haver (= 7.1.0) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge - specs: - kramdown-merge (7.1.0) - kramdown (~> 2.5) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge - specs: - markly-merge (7.1.0) - markdown-merge (= 7.1.0) - markly (~> 0.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge - specs: - parslet-toml-merge (7.1.0) - toml (~> 0.3) - toml-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge - specs: - plain-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge - specs: - prism-merge (7.1.0) - prism (~> 1.6) - ruby-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge - specs: - psych-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge - specs: - rbs-merge (7.1.0) - ast-merge (= 7.1.0) - rbs (>= 3.10) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge - specs: - ruby-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge - specs: - rust-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb - specs: - smorg-rb (7.1.0) - ast-merge (= 7.1.0) - ast-merge-git (= 7.1.0) - diff-lcs (~> 1.5) - go-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-jem (= 7.1.0) - markly-merge (= 7.1.0) - plain-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge - specs: - toml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - PATH remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver specs: @@ -243,46 +24,6 @@ PATH tree_sitter_language_pack (>= 1.13.2, < 2.0) version_gem (~> 1.1, >= 1.1.9) -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge - specs: - typescript-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge - specs: - yaml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge - specs: - zip-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /var/home/pboling/src/my/kettle-dev/kettle-drift - specs: - kettle-drift (1.0.6) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /var/home/pboling/src/my/kettle-dev/kettle-soup-cover - specs: - kettle-soup-cover (3.0.4) - kettle-wash (~> 0.1, >= 0.1.0) - simplecov (>= 1.0) - simplecov-cobertura (>= 4.0) - simplecov-console (~> 0.9, >= 0.9.5) - simplecov-rcov (~> 0.3, >= 0.3.7) - simplecov_lcov_formatter (~> 0.9, >= 0.9.0) - GEM remote: https://gem.coop/ specs: @@ -307,10 +48,6 @@ GEM cgi (0.5.2) citrus (3.0.2) cmdparse (3.0.7) - commonmarker (2.9.0-aarch64-linux) - commonmarker (2.9.0-aarch64-linux-musl) - commonmarker (2.9.0-arm64-darwin) - commonmarker (2.9.0-x86_64-linux) concurrent-ruby (1.3.8) date (3.5.1) debug (1.11.1) @@ -374,6 +111,13 @@ GEM kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) kettle-rb (0.1.5) + kettle-soup-cover (3.0.4) + kettle-wash (~> 0.1, >= 0.1.0) + simplecov (>= 1.0) + simplecov-cobertura (>= 4.0) + simplecov-console (~> 0.9, >= 0.9.5) + simplecov-rcov (~> 0.3, >= 0.3.7) + simplecov_lcov_formatter (~> 0.9, >= 0.9.0) kettle-test (2.0.12) appraisal2 (~> 3.0, >= 3.0.6) backports (~> 3.0) @@ -394,7 +138,6 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) - markly (0.16.0) mutex_m (0.3.0) nokogiri (1.19.4-aarch64-linux-gnu) racc (~> 1.4) @@ -557,8 +300,6 @@ GEM ruby-progressbar (1.13.0) ruby_engine (2.0.3) ruby_version (1.0.3) - service_actor (3.9.4) - zeitwerk (>= 1.0) silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) @@ -613,11 +354,6 @@ GEM token-resolver (2.0.5) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.14) - toml (0.3.0) - parslet (>= 1.8.0, < 3.0.0) - toml-rb (4.2.0) - citrus (~> 3.0, > 3.0) - racc (~> 1.7) tree_sitter_language_pack (1.13.3-aarch64-linux) sorbet-runtime (~> 0.5) tree_sitter_language_pack (1.13.3-arm64-darwin) @@ -672,46 +408,25 @@ DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) appraisal2-rubocop (~> 1.0, >= 1.0.0) - ast-crispr! - ast-crispr-markdown-markly! - ast-crispr-ruby-prism! ast-merge! - ast-merge-git! - ast-template! - bash-merge! benchmark (~> 0.5, >= 0.5.0) - binary-merge! bundler-audit (~> 0.9.3) cgi (~> 0.5) - citrus-toml-merge! - commonmarker-merge! debug (>= 1.1) - dotenv-merge! erb (~> 6.0, >= 6.0.6) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.0) - go-merge! irb (~> 1.17) - json-merge! kettle-dev (~> 2.0, >= 2.2.25) - kettle-drift! - kettle-jem! - kettle-soup-cover! + kettle-soup-cover (~> 3.0, >= 3.0.3) kettle-test (~> 2.0, >= 2.0.9) kramdown (~> 2.5, >= 2.5.2) - kramdown-merge! kramdown-parser-gfm (~> 1.1) markdown-merge! - markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) - parslet-toml-merge! - plain-merge! - prism-merge! - psych-merge! rake (~> 13.0) rbs (>= 3.0) - rbs-merge! rdoc (~> 6.11) reek (~> 6.5, >= 6.5.0) require_bench (~> 1.0, >= 1.0.4) @@ -722,27 +437,20 @@ DEPENDENCIES rubocop-on-rbs (~> 2.0, >= 2.0.0) rubocop-packaging (~> 0.6, >= 0.6.0) rubocop-ruby3_2 (~> 3.0, >= 3.0.6) - ruby-merge! ruby-progressbar (~> 1.13) - rust-merge! - smorg-rb! standard (~> 1.56, >= 1.56.0) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) - toml-merge! tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) - typescript-merge! webrick (~> 1.9) yaml-converter (~> 0.2, >= 0.2.3) - yaml-merge! yard (~> 0.9, >= 0.9.45) yard-fence (~> 0.9, >= 0.9.6) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) yard-timekeeper (~> 0.2, >= 0.2.4) yard-yaml (~> 0.2, >= 0.2.3) - zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af @@ -750,34 +458,20 @@ CHECKSUMS appraisal2 (3.2.0) sha256=ccd0b767ac4060cd7af6d16747459b6990f49c39c7b4fb1f7d1146b1e97c492f appraisal2-rubocop (1.0.0) sha256=b71410fbb014befda5340605a605b7f6f3f012739baf0acc5b4351b592c3258d ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 - ast-crispr (7.1.0) - ast-crispr-markdown-markly (7.1.0) - ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) - ast-merge-git (7.1.0) - ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 - bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd - binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 - citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 - commonmarker (2.9.0-aarch64-linux) sha256=e2b4aadb9a2cfa4e206582641ce3a49465549ac1ed4c289fdd63b78d8f24579c - commonmarker (2.9.0-aarch64-linux-musl) sha256=1cf4d2821f2a7e64945f1ed7c4eeced586fdb27ea7fe7337788802cf8f57cfca - commonmarker (2.9.0-arm64-darwin) sha256=1748dbfa4f5813b0d2a14bb4bbfa65a4ec293aa1c825016d60029ee0e132b046 - commonmarker (2.9.0-x86_64-linux) sha256=8cfe92970eef585a19ddf6613224b91cab64d6029834661bda801f877c9c7f43 - commonmarker-merge (7.1.0) concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 - dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -790,28 +484,21 @@ CHECKSUMS gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f - go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 - json-merge (7.1.0) kettle-dev (2.3.8) sha256=9d716ff21c660a730cb4e8d41e2e2f0630a28167a354b6e2924e242102aef72c - kettle-drift (1.0.6) - kettle-jem (7.1.0) kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f kettle-soup-cover (3.0.4) kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa - kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 markdown-merge (7.1.0) - markly (0.16.0) sha256=6f70d79e385b1efc9e171f74c81628826259039fe6c778e03c3924c71dac5511 - markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-aarch64-linux-gnu) sha256=1269fb644a6de405057a53dd5c762b1209b43ca7424f839454d3dbc677c31a8f nokogiri (1.19.4-aarch64-linux-musl) sha256=35c65b9ce72b3bb03207bdbe7067915019dc18c1b9b59139684bd6690fdd01af @@ -825,20 +512,15 @@ CHECKSUMS parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 - parslet-toml-merge (7.1.0) - plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 - prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 - psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 - rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb @@ -873,19 +555,15 @@ CHECKSUMS rubocop-rspec_rails (2.32.0) sha256=4a0d641c72f6ebb957534f539d9d0a62c47abd8ce0d0aeee1ef4701e892a9100 rubocop-ruby3_2 (3.0.7) sha256=f53dd6d286fb05186214fc6ec116783e7f837030918e8931c05de773e98f8466 rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 - ruby-merge (7.1.0) ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 - rust-merge (7.1.0) - service_actor (3.9.4) sha256=e63b523630b9a7e62959b2a90113b08d2565b5de9c148557b281ef847c9539ce silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed - smorg-rb (7.1.0) sorbet-runtime (0.6.13351) sha256=f8fee17c6e3edf835dc6823d26afb9a7c8969c6710d1fabe2fb43f4e0c15c64f standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b @@ -900,22 +578,17 @@ CHECKSUMS timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.5) sha256=b852f924287ffb58a440856e862b056c8ad97e74b4b2526cee43e0771f40c25c - toml (0.3.0) sha256=0a91d0f76a9036e84e44f95693b12f58d358c1df3ac8e3b5271f2056ecc6e4b9 - toml-merge (7.1.0) - toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-aarch64-linux) sha256=55ffc7c87868cb45658338363d9eba51b4a8b0259aa88e4de368d2bd1d52fea4 tree_sitter_language_pack (1.13.3-arm64-darwin) sha256=bc2498db605f212a1dbd2465ed3f65190d7da786f6ed5d30fcf958121aeb4a5c tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 - typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 webrick (1.9.2) sha256=beb4a15fc474defed24a3bda4ffd88a490d517c9e4e6118c3edce59e45864131 yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 - yaml-merge (7.1.0) yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd @@ -923,7 +596,6 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 - zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH diff --git a/gems/markdown-merge/Rakefile b/gems/markdown-merge/Rakefile index 2be51dd98..335c98aab 100644 --- a/gems/markdown-merge/Rakefile +++ b/gems/markdown-merge/Rakefile @@ -130,23 +130,23 @@ end ### DUPLICATE DRIFT TASKS begin - require "kettle/drift" + require 'kettle/drift' Kettle::Drift.install_tasks rescue LoadError - desc("(stub) kettle:drift:check is unavailable") - task("kettle:drift:check") do + desc('(stub) kettle:drift:check is unavailable') + task('kettle:drift:check') do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc("(stub) kettle:drift:update is unavailable") - task("kettle:drift:update") do + desc('(stub) kettle:drift:update is unavailable') + task('kettle:drift:update') do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc("(stub) kettle:drift:force_update is unavailable") - task("kettle:drift:force_update") do + desc('(stub) kettle:drift:force_update is unavailable') + task('kettle:drift:force_update') do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc("(stub) kettle:drift is unavailable") - task("kettle:drift" => "kettle:drift:update") + desc('(stub) kettle:drift is unavailable') + task('kettle:drift' => 'kettle:drift:update') end ### TEMPLATING TASKS diff --git a/gems/markdown-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile b/gems/markdown-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile index dec650815..b8392fab0 100644 --- a/gems/markdown-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile +++ b/gems/markdown-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.1 -gem "benchmark", "~> 0.5", ">= 0.5.0" # Removed from Std Lib in Ruby 4.0 +gem 'benchmark', '~> 0.5', '>= 0.5.0' # Removed from Std Lib in Ruby 4.0 diff --git a/gems/markdown-merge/gemfiles/modular/benchmark/vHEAD.gemfile b/gems/markdown-merge/gemfiles/modular/benchmark/vHEAD.gemfile index e1eb20c5e..af214aafa 100644 --- a/gems/markdown-merge/gemfiles/modular/benchmark/vHEAD.gemfile +++ b/gems/markdown-merge/gemfiles/modular/benchmark/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.1 -gem "benchmark", github: "ruby/benchmark", branch: "master" +gem 'benchmark', github: 'ruby/benchmark', branch: 'master' diff --git a/gems/markdown-merge/gemfiles/modular/cgi/r4/v0.5.gemfile b/gems/markdown-merge/gemfiles/modular/cgi/r4/v0.5.gemfile index 19ed967c3..17ad97260 100644 --- a/gems/markdown-merge/gemfiles/modular/cgi/r4/v0.5.gemfile +++ b/gems/markdown-merge/gemfiles/modular/cgi/r4/v0.5.gemfile @@ -1 +1 @@ -gem "cgi", "~> 0.5" +gem 'cgi', '~> 0.5' diff --git a/gems/markdown-merge/gemfiles/modular/cgi/vHEAD.gemfile b/gems/markdown-merge/gemfiles/modular/cgi/vHEAD.gemfile index ef8b816ce..650fbf033 100644 --- a/gems/markdown-merge/gemfiles/modular/cgi/vHEAD.gemfile +++ b/gems/markdown-merge/gemfiles/modular/cgi/vHEAD.gemfile @@ -1 +1 @@ -gem "cgi", ">= 0.5" +gem 'cgi', '>= 0.5' diff --git a/gems/markdown-merge/gemfiles/modular/coverage.gemfile b/gems/markdown-merge/gemfiles/modular/coverage.gemfile index 52d737872..b93014b6b 100644 --- a/gems/markdown-merge/gemfiles/modular/coverage.gemfile +++ b/gems/markdown-merge/gemfiles/modular/coverage.gemfile @@ -4,11 +4,11 @@ # Set KETTLE_DEV_DEV=true for local development with path-based dependencies. # When false (default / CI), remote released gems are used. -if ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false").zero? +if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? # Coverage (remote/released) platform :mri do - gem "kettle-soup-cover", "~> 3.0", ">= 3.0.3", require: false + gem 'kettle-soup-cover', '~> 3.0', '>= 3.0.3', require: false end else - eval_gemfile "coverage_local.gemfile" + eval_gemfile 'coverage_local.gemfile' end diff --git a/gems/markdown-merge/gemfiles/modular/coverage_local.gemfile b/gems/markdown-merge/gemfiles/modular/coverage_local.gemfile index bac3538d7..647eab77a 100644 --- a/gems/markdown-merge/gemfiles/modular/coverage_local.gemfile +++ b/gems/markdown-merge/gemfiles/modular/coverage_local.gemfile @@ -11,21 +11,19 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] -nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) +nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] +nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == "nomono" } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - if nomono_locked - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] - end + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked end -Kernel.send(:gem, "nomono", *nomono_activation_requirements) -require "nomono/bundler" +Kernel.send(:gem, 'nomono', *nomono_activation_requirements) +require 'nomono/bundler' local_gems = %w[kettle-dev kettle-test kettle-soup-cover kettle-drift] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) @@ -35,21 +33,21 @@ local_gems_to_eval = local_gems - %w[markdown-merge] - declared_gems platform :mri do eval_nomono_gems( gems: local_gems_to_eval, - prefix: "KETTLE_DEV", - path_env: "KETTLE_DEV_DEV", - vendored_gems_env: "VENDORED_GEMS", - vendor_gem_dir_env: "VENDOR_GEM_DIR", - debug_env: "KETTLE_DEV_DEBUG" + prefix: 'KETTLE_DEV', + path_env: 'KETTLE_DEV_DEV', + vendored_gems_env: 'VENDORED_GEMS', + vendor_gem_dir_env: 'VENDOR_GEM_DIR', + debug_env: 'KETTLE_DEV_DEBUG' ) - if ENV.fetch("GALTZO_FLOSS_DEV", "false").casecmp("false") != 0 + if ENV.fetch('GALTZO_FLOSS_DEV', 'false').casecmp('false') != 0 eval_nomono_gems( gems: %w[turbo_tests2], - prefix: "GALTZO_FLOSS", - path_env: "GALTZO_FLOSS_DEV", - vendored_gems_env: "GALTZO_FLOSS_VENDORED_GEMS", - vendor_gem_dir_env: "GALTZO_FLOSS_VENDOR_GEM_DIR", - debug_env: "GALTZO_FLOSS_DEBUG" + prefix: 'GALTZO_FLOSS', + path_env: 'GALTZO_FLOSS_DEV', + vendored_gems_env: 'GALTZO_FLOSS_VENDORED_GEMS', + vendor_gem_dir_env: 'GALTZO_FLOSS_VENDOR_GEM_DIR', + debug_env: 'GALTZO_FLOSS_DEBUG' ) end end diff --git a/gems/markdown-merge/gemfiles/modular/debug.gemfile b/gems/markdown-merge/gemfiles/modular/debug.gemfile index 4e15b1a3a..eed8d4d1e 100644 --- a/gems/markdown-merge/gemfiles/modular/debug.gemfile +++ b/gems/markdown-merge/gemfiles/modular/debug.gemfile @@ -13,10 +13,10 @@ platform :mri do # Debugging - Ensure ENV["DEBUG"] == "true" to use debuggers within spec suite # Use binding.break, binding.b, or debugger in code - gem "debug", ">= 1.1" # ruby >= 2.7 + gem 'debug', '>= 1.1' # ruby >= 2.7 # Dev Console - Binding.pry - Irb replacement # gem "pry", "~> 0.14" # ruby >= 2.0 end -gem "gem_bench", "~> 2.0", ">= 2.0.5" +gem 'gem_bench', '~> 2.0', '>= 2.0.5' diff --git a/gems/markdown-merge/gemfiles/modular/documentation.gemfile b/gems/markdown-merge/gemfiles/modular/documentation.gemfile index d8215416e..9d4535f12 100644 --- a/gems/markdown-merge/gemfiles/modular/documentation.gemfile +++ b/gems/markdown-merge/gemfiles/modular/documentation.gemfile @@ -7,20 +7,20 @@ # # Documentation -gem "kramdown", "~> 2.5", ">= 2.5.2", require: false # Ruby >= 2.5 -gem "kramdown-parser-gfm", "~> 1.1", require: false # Ruby >= 2.3 -gem "yaml-converter", "~> 0.2", ">= 0.2.3", require: false # Ruby >= 3.2 -gem "yard", "~> 0.9", ">= 0.9.45", require: false -gem "yard-junk", "~> 0.1", ">= 0.1.0", require: false # Ruby >= 3.1 -gem "yard-relative_markdown_links", "~> 0.6", require: false +gem 'kramdown', '~> 2.5', '>= 2.5.2', require: false # Ruby >= 2.5 +gem 'kramdown-parser-gfm', '~> 1.1', require: false # Ruby >= 2.3 +gem 'yaml-converter', '~> 0.2', '>= 0.2.3', require: false # Ruby >= 3.2 +gem 'yard', '~> 0.9', '>= 0.9.45', require: false +gem 'yard-junk', '~> 0.1', '>= 0.1.0', require: false # Ruby >= 3.1 +gem 'yard-relative_markdown_links', '~> 0.6', require: false -if ENV.fetch("GALTZO_FLOSS_DEV", "false").casecmp("false").zero? - gem "yard-fence", "~> 0.9", ">= 0.9.6", require: false # Ruby >= 3.2 - gem "yard-timekeeper", "~> 0.2", ">= 0.2.4", require: false - gem "yard-yaml", "~> 0.2", ">= 0.2.3", require: false +if ENV.fetch('GALTZO_FLOSS_DEV', 'false').casecmp('false').zero? + gem 'yard-fence', '~> 0.9', '>= 0.9.6', require: false # Ruby >= 3.2 + gem 'yard-timekeeper', '~> 0.2', '>= 0.2.4', require: false + gem 'yard-yaml', '~> 0.2', '>= 0.2.3', require: false else - eval_gemfile "documentation_local.gemfile" + eval_gemfile 'documentation_local.gemfile' end # Std Lib extractions -gem "rdoc", "~> 6.11", require: false unless ENV.fetch("KJ_FRAMEWORK_MATRIX_GEM", "") == "rdoc" +gem 'rdoc', '~> 6.11', require: false unless ENV.fetch('KJ_FRAMEWORK_MATRIX_GEM', '') == 'rdoc' diff --git a/gems/markdown-merge/gemfiles/modular/documentation_local.gemfile b/gems/markdown-merge/gemfiles/modular/documentation_local.gemfile index 61e166aa0..598b23cdd 100644 --- a/gems/markdown-merge/gemfiles/modular/documentation_local.gemfile +++ b/gems/markdown-merge/gemfiles/modular/documentation_local.gemfile @@ -11,21 +11,19 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] -nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) +nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] +nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == "nomono" } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - if nomono_locked - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] - end + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked end -Kernel.send(:gem, "nomono", *nomono_activation_requirements) -require "nomono/bundler" +Kernel.send(:gem, 'nomono', *nomono_activation_requirements) +require 'nomono/bundler' local_gems = %w[yard-fence yard-timekeeper yard-yaml] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) @@ -34,9 +32,9 @@ local_gems_to_eval = local_gems - %w[markdown-merge] - declared_gems # export GALTZO_FLOSS_DEV=/path/to/galtzo-floss eval_nomono_gems( gems: local_gems_to_eval, - prefix: "GALTZO_FLOSS", - path_env: "GALTZO_FLOSS_DEV", - vendored_gems_env: "GALTZO_FLOSS_VENDORED_GEMS", - vendor_gem_dir_env: "GALTZO_FLOSS_VENDOR_GEM_DIR", - debug_env: "GALTZO_FLOSS_DEBUG" + prefix: 'GALTZO_FLOSS', + path_env: 'GALTZO_FLOSS_DEV', + vendored_gems_env: 'GALTZO_FLOSS_VENDORED_GEMS', + vendor_gem_dir_env: 'GALTZO_FLOSS_VENDOR_GEM_DIR', + debug_env: 'GALTZO_FLOSS_DEBUG' ) diff --git a/gems/markdown-merge/gemfiles/modular/erb/r2/v3.0.gemfile b/gems/markdown-merge/gemfiles/modular/erb/r2/v3.0.gemfile index c03bd8d85..7c83a239b 100644 --- a/gems/markdown-merge/gemfiles/modular/erb/r2/v3.0.gemfile +++ b/gems/markdown-merge/gemfiles/modular/erb/r2/v3.0.gemfile @@ -1 +1 @@ -gem "erb", "~> 3.0" # ruby >= 2.7.0 +gem 'erb', '~> 3.0' # ruby >= 2.7.0 diff --git a/gems/markdown-merge/gemfiles/modular/erb/r3/v5.0.gemfile b/gems/markdown-merge/gemfiles/modular/erb/r3/v5.0.gemfile index 1bd029cc1..ec7ff451f 100644 --- a/gems/markdown-merge/gemfiles/modular/erb/r3/v5.0.gemfile +++ b/gems/markdown-merge/gemfiles/modular/erb/r3/v5.0.gemfile @@ -1 +1 @@ -gem "erb", "~> 6.0", ">= 6.0.6" # ruby >= 3.2.0 +gem 'erb', '~> 6.0', '>= 6.0.6' # ruby >= 3.2.0 diff --git a/gems/markdown-merge/gemfiles/modular/erb/r4/v5.0.gemfile b/gems/markdown-merge/gemfiles/modular/erb/r4/v5.0.gemfile index 1bd029cc1..ec7ff451f 100644 --- a/gems/markdown-merge/gemfiles/modular/erb/r4/v5.0.gemfile +++ b/gems/markdown-merge/gemfiles/modular/erb/r4/v5.0.gemfile @@ -1 +1 @@ -gem "erb", "~> 6.0", ">= 6.0.6" # ruby >= 3.2.0 +gem 'erb', '~> 6.0', '>= 6.0.6' # ruby >= 3.2.0 diff --git a/gems/markdown-merge/gemfiles/modular/erb/vHEAD.gemfile b/gems/markdown-merge/gemfiles/modular/erb/vHEAD.gemfile index 48fee4218..ea0101185 100644 --- a/gems/markdown-merge/gemfiles/modular/erb/vHEAD.gemfile +++ b/gems/markdown-merge/gemfiles/modular/erb/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 3.2 -gem "erb", github: "ruby/erb", branch: "master" +gem 'erb', github: 'ruby/erb', branch: 'master' diff --git a/gems/markdown-merge/gemfiles/modular/json/truffleruby_22_3.gemfile b/gems/markdown-merge/gemfiles/modular/json/truffleruby_22_3.gemfile index b0e69ab11..9b2f8d96a 100644 --- a/gems/markdown-merge/gemfiles/modular/json/truffleruby_22_3.gemfile +++ b/gems/markdown-merge/gemfiles/modular/json/truffleruby_22_3.gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -if RUBY_ENGINE == "truffleruby" && RUBY_ENGINE_VERSION.start_with?("22.3") +if RUBY_ENGINE == 'truffleruby' && RUBY_ENGINE_VERSION.start_with?('22.3') # TruffleRuby 22.3 ships the json default gem from its emulated MRI Ruby. - gem "json", "= 2.5.1" + gem 'json', '= 2.5.1' end diff --git a/gems/markdown-merge/gemfiles/modular/json/truffleruby_23_0.gemfile b/gems/markdown-merge/gemfiles/modular/json/truffleruby_23_0.gemfile index 7b2660a2b..d787a5ef4 100644 --- a/gems/markdown-merge/gemfiles/modular/json/truffleruby_23_0.gemfile +++ b/gems/markdown-merge/gemfiles/modular/json/truffleruby_23_0.gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -if RUBY_ENGINE == "truffleruby" && RUBY_ENGINE_VERSION.start_with?("23.0") +if RUBY_ENGINE == 'truffleruby' && RUBY_ENGINE_VERSION.start_with?('23.0') # TruffleRuby 23.0 ships the json default gem from its emulated MRI Ruby. - gem "json", "= 2.6.1" + gem 'json', '= 2.6.1' end diff --git a/gems/markdown-merge/gemfiles/modular/json/truffleruby_23_1.gemfile b/gems/markdown-merge/gemfiles/modular/json/truffleruby_23_1.gemfile index dfa21f2e4..d78486b0e 100644 --- a/gems/markdown-merge/gemfiles/modular/json/truffleruby_23_1.gemfile +++ b/gems/markdown-merge/gemfiles/modular/json/truffleruby_23_1.gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -if RUBY_ENGINE == "truffleruby" && RUBY_ENGINE_VERSION.start_with?("23.1") +if RUBY_ENGINE == 'truffleruby' && RUBY_ENGINE_VERSION.start_with?('23.1') # TruffleRuby 23.1 ships the json default gem from its emulated MRI Ruby. - gem "json", "= 2.6.3" + gem 'json', '= 2.6.3' end diff --git a/gems/markdown-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile b/gems/markdown-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile index 42e9d9bd4..e27f1bbae 100644 --- a/gems/markdown-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile +++ b/gems/markdown-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 -gem "mutex_m", "~> 0.2" +gem 'mutex_m', '~> 0.2' diff --git a/gems/markdown-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile b/gems/markdown-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile index 42e9d9bd4..e27f1bbae 100644 --- a/gems/markdown-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile +++ b/gems/markdown-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 -gem "mutex_m", "~> 0.2" +gem 'mutex_m', '~> 0.2' diff --git a/gems/markdown-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile b/gems/markdown-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile index 42e9d9bd4..e27f1bbae 100644 --- a/gems/markdown-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile +++ b/gems/markdown-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 -gem "mutex_m", "~> 0.2" +gem 'mutex_m', '~> 0.2' diff --git a/gems/markdown-merge/gemfiles/modular/mutex_m/vHEAD.gemfile b/gems/markdown-merge/gemfiles/modular/mutex_m/vHEAD.gemfile index 8af3b6fca..9dac2f6cb 100644 --- a/gems/markdown-merge/gemfiles/modular/mutex_m/vHEAD.gemfile +++ b/gems/markdown-merge/gemfiles/modular/mutex_m/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 (dependency of omniauth) -gem "mutex_m", github: "ruby/mutex_m", branch: "master" +gem 'mutex_m', github: 'ruby/mutex_m', branch: 'master' diff --git a/gems/markdown-merge/gemfiles/modular/optional.gemfile b/gems/markdown-merge/gemfiles/modular/optional.gemfile index 80bc45196..9ea429538 100644 --- a/gems/markdown-merge/gemfiles/modular/optional.gemfile +++ b/gems/markdown-merge/gemfiles/modular/optional.gemfile @@ -9,8 +9,8 @@ # Optional dependencies are not depended on directly, but may be used if present. # Required for curated binstubs generated by kettle-jem install -gem "rbs", ">= 3.0", require: false # ruby >= 3.1 +gem 'rbs', '>= 3.0', require: false # ruby >= 3.1 # Required for kettle-pre-release # URL parsing with Unicode support (falls back to URI if not available) -gem "addressable", ">= 2.8", "< 3" # ruby >= 2.2 +gem 'addressable', '>= 2.8', '< 3' # ruby >= 2.2 diff --git a/gems/markdown-merge/gemfiles/modular/rspec.gemfile b/gems/markdown-merge/gemfiles/modular/rspec.gemfile index 72fdf8b7f..2af210a41 100644 --- a/gems/markdown-merge/gemfiles/modular/rspec.gemfile +++ b/gems/markdown-merge/gemfiles/modular/rspec.gemfile @@ -1,4 +1,4 @@ -gem "rspec_junit_formatter", - github: "pboling/rspec_junit_formatter", - branch: "main", - ref: "9e6bcaaedd49477b62878ed568dc4ada5cc7cb5e" +gem 'rspec_junit_formatter', + github: 'pboling/rspec_junit_formatter', + branch: 'main', + ref: '9e6bcaaedd49477b62878ed568dc4ada5cc7cb5e' diff --git a/gems/markdown-merge/gemfiles/modular/runtime_heads.gemfile b/gems/markdown-merge/gemfiles/modular/runtime_heads.gemfile index 02f134c7f..ebf17c529 100644 --- a/gems/markdown-merge/gemfiles/modular/runtime_heads.gemfile +++ b/gems/markdown-merge/gemfiles/modular/runtime_heads.gemfile @@ -8,4 +8,4 @@ # Test against HEAD of runtime dependencies so we can proactively file bugs -eval_gemfile("x_std_libs/vHEAD.gemfile") +eval_gemfile('x_std_libs/vHEAD.gemfile') diff --git a/gems/markdown-merge/gemfiles/modular/stringio/r2/v3.0.gemfile b/gems/markdown-merge/gemfiles/modular/stringio/r2/v3.0.gemfile index e85bb18ee..3616f4e3a 100644 --- a/gems/markdown-merge/gemfiles/modular/stringio/r2/v3.0.gemfile +++ b/gems/markdown-merge/gemfiles/modular/stringio/r2/v3.0.gemfile @@ -2,4 +2,4 @@ # NOT SEMVER # Version 3.0.7 dropped support for Ruby <= 2.7 # Version 3.0.0 dropped support for Ruby <= 2.4 -gem "stringio", ">= 3.0" +gem 'stringio', '>= 3.0' diff --git a/gems/markdown-merge/gemfiles/modular/stringio/r3/v3.0.gemfile b/gems/markdown-merge/gemfiles/modular/stringio/r3/v3.0.gemfile index e85bb18ee..3616f4e3a 100644 --- a/gems/markdown-merge/gemfiles/modular/stringio/r3/v3.0.gemfile +++ b/gems/markdown-merge/gemfiles/modular/stringio/r3/v3.0.gemfile @@ -2,4 +2,4 @@ # NOT SEMVER # Version 3.0.7 dropped support for Ruby <= 2.7 # Version 3.0.0 dropped support for Ruby <= 2.4 -gem "stringio", ">= 3.0" +gem 'stringio', '>= 3.0' diff --git a/gems/markdown-merge/gemfiles/modular/stringio/r4/v3.0.gemfile b/gems/markdown-merge/gemfiles/modular/stringio/r4/v3.0.gemfile index e85bb18ee..3616f4e3a 100644 --- a/gems/markdown-merge/gemfiles/modular/stringio/r4/v3.0.gemfile +++ b/gems/markdown-merge/gemfiles/modular/stringio/r4/v3.0.gemfile @@ -2,4 +2,4 @@ # NOT SEMVER # Version 3.0.7 dropped support for Ruby <= 2.7 # Version 3.0.0 dropped support for Ruby <= 2.4 -gem "stringio", ">= 3.0" +gem 'stringio', '>= 3.0' diff --git a/gems/markdown-merge/gemfiles/modular/stringio/vHEAD.gemfile b/gems/markdown-merge/gemfiles/modular/stringio/vHEAD.gemfile index 5f2a74126..78f5f5d8a 100644 --- a/gems/markdown-merge/gemfiles/modular/stringio/vHEAD.gemfile +++ b/gems/markdown-merge/gemfiles/modular/stringio/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 (dependency of omniauth) -gem "stringio", github: "ruby/stringio", branch: "master" +gem 'stringio', github: 'ruby/stringio', branch: 'master' diff --git a/gems/markdown-merge/gemfiles/modular/style.gemfile b/gems/markdown-merge/gemfiles/modular/style.gemfile index 35de4dcd6..4dbcc02c0 100644 --- a/gems/markdown-merge/gemfiles/modular/style.gemfile +++ b/gems/markdown-merge/gemfiles/modular/style.gemfile @@ -9,23 +9,23 @@ # Style tasks run on the latest Ruby; RuboCop-LTS selects the compatibility # rules for the configured Ruby floor independently from task dependency floors. -gem "reek", "~> 6.5", ">= 6.5.0" +gem 'reek', '~> 6.5', '>= 6.5.0' platform :mri do - gem "appraisal2-rubocop", "~> 1.0", ">= 1.0.0", require: false - gem "rubocop-gradual", "~> 0.4", ">= 0.4.0" - gem "rubocop-minitest", "~> 0.40", ">= 0.40.0" - gem "rubocop-on-rbs", "~> 2.0", ">= 2.0.0" # ruby >= 3.2.0 + gem 'appraisal2-rubocop', '~> 1.0', '>= 1.0.0', require: false + gem 'rubocop-gradual', '~> 0.4', '>= 0.4.0' + gem 'rubocop-minitest', '~> 0.40', '>= 0.40.0' + gem 'rubocop-on-rbs', '~> 2.0', '>= 2.0.0' # ruby >= 3.2.0 # gem "rubocop", "~> 1.73", ">= 1.73.2" # constrained by standard - gem "rubocop-packaging", "~> 0.6", ">= 0.6.0" - gem "standard", "~> 1.56", ">= 1.56.0" + gem 'rubocop-packaging', '~> 0.6', '>= 0.6.0' + gem 'standard', '~> 1.56', '>= 1.56.0' - if ENV.fetch("RUBOCOP_LTS_LOCAL", "false").casecmp("false").zero? + if ENV.fetch('RUBOCOP_LTS_LOCAL', 'false').casecmp('false').zero? declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) - gem "rubocop-lts", "~> 24.2", ">= 24.2.1" unless declared_gems.include?("rubocop-lts") - gem "rubocop-lts-rspec", "~> 1.0", ">= 1.0.5" unless declared_gems.include?("rubocop-lts-rspec") - gem "rubocop-ruby3_2", "~> 3.0", ">= 3.0.6" unless declared_gems.include?("rubocop-ruby3_2") + gem 'rubocop-lts', '~> 24.2', '>= 24.2.1' unless declared_gems.include?('rubocop-lts') + gem 'rubocop-lts-rspec', '~> 1.0', '>= 1.0.5' unless declared_gems.include?('rubocop-lts-rspec') + gem 'rubocop-ruby3_2', '~> 3.0', '>= 3.0.6' unless declared_gems.include?('rubocop-ruby3_2') else - eval_gemfile("style_local.gemfile") + eval_gemfile('style_local.gemfile') end end diff --git a/gems/markdown-merge/gemfiles/modular/style_local.gemfile b/gems/markdown-merge/gemfiles/modular/style_local.gemfile index 9c53346ee..9ac180b1b 100644 --- a/gems/markdown-merge/gemfiles/modular/style_local.gemfile +++ b/gems/markdown-merge/gemfiles/modular/style_local.gemfile @@ -14,21 +14,19 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] -nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) +nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] +nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == "nomono" } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - if nomono_locked - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] - end + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked end -Kernel.send(:gem, "nomono", *nomono_activation_requirements) -require "nomono/bundler" +Kernel.send(:gem, 'nomono', *nomono_activation_requirements) +require 'nomono/bundler' local_gems = %w[rubocop-lts rubocop-lts-rspec rubocop-ruby3_2 standard-rubocop-lts] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) @@ -38,11 +36,11 @@ local_gems_to_eval = local_gems - %w[markdown-merge] - declared_gems platform :mri do eval_nomono_gems( gems: local_gems_to_eval, - prefix: "RUBOCOP_LTS", - path_env: "RUBOCOP_LTS_LOCAL", - vendored_gems_env: "VENDORED_GEMS", - vendor_gem_dir_env: "VENDOR_GEM_DIR", - debug_env: "RUBOCOP_LTS_DEBUG", - root: ["src", "rubocop-lts"] + prefix: 'RUBOCOP_LTS', + path_env: 'RUBOCOP_LTS_LOCAL', + vendored_gems_env: 'VENDORED_GEMS', + vendor_gem_dir_env: 'VENDOR_GEM_DIR', + debug_env: 'RUBOCOP_LTS_DEBUG', + root: %w[src rubocop-lts] ) end diff --git a/gems/markdown-merge/gemfiles/modular/templating.gemfile b/gems/markdown-merge/gemfiles/modular/templating.gemfile index 47138ffbb..a672de184 100644 --- a/gems/markdown-merge/gemfiles/modular/templating.gemfile +++ b/gems/markdown-merge/gemfiles/modular/templating.gemfile @@ -1,18 +1,18 @@ # frozen_string_literal: true -structuredmerge_remote = ENV.fetch("STRUCTUREDMERGE_DEV", "false").casecmp("false").zero? -kettle_remote = ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false").zero? +structuredmerge_remote = ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false').zero? +kettle_remote = ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? if structuredmerge_remote # Parser dependencies for released installs. - gem "tree_sitter_language_pack", "~> 1.13", ">= 1.13.3" + gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' # Merge recipes for released installs. - gem "kettle-jem", ">= 7.0" + gem 'kettle-jem', '>= 7.0' end if kettle_remote # Template/plugin checks for released installs. - gem "kettle-drift", "~> 1.0", ">= 1.0.6", require: false + gem 'kettle-drift', '~> 1.0', '>= 1.0.6', require: false end # Set STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local development with path-based dependencies. @@ -21,4 +21,4 @@ end # # Set KETTLE_DEV_DEV=/path/to/my for local development with Kettle plugin gems. # When false (default / CI), released Kettle plugin gems are used. -eval_gemfile "templating_local.gemfile" unless structuredmerge_remote && kettle_remote +eval_gemfile 'templating_local.gemfile' unless structuredmerge_remote && kettle_remote diff --git a/gems/markdown-merge/gemfiles/modular/templating_local.gemfile b/gems/markdown-merge/gemfiles/modular/templating_local.gemfile index ddaba77fd..586e485d9 100644 --- a/gems/markdown-merge/gemfiles/modular/templating_local.gemfile +++ b/gems/markdown-merge/gemfiles/modular/templating_local.gemfile @@ -12,21 +12,19 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] -nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) +nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] +nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == "nomono" } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - if nomono_locked - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] - end + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked end -Kernel.send(:gem, "nomono", *nomono_activation_requirements) -require "nomono/bundler" +Kernel.send(:gem, 'nomono', *nomono_activation_requirements) +require 'nomono/bundler' structuredmerge_local_gems = %w[ tree_haver @@ -69,25 +67,25 @@ structuredmerge_local_gems_to_eval = structuredmerge_local_gems - %w[markdown-me kettle_dev_local_gems_to_eval = kettle_dev_local_gems - %w[markdown-merge] - declared_gems platform :mri do - if ENV.fetch("STRUCTUREDMERGE_DEV", "false").casecmp("false") != 0 + if ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false') != 0 eval_nomono_gems( gems: structuredmerge_local_gems_to_eval, - prefix: "STRUCTUREDMERGE", - path_env: "STRUCTUREDMERGE_DEV", - vendored_gems_env: "VENDORED_GEMS", - vendor_gem_dir_env: "VENDOR_GEM_DIR", - debug_env: "STRUCTUREDMERGE_DEBUG" + prefix: 'STRUCTUREDMERGE', + path_env: 'STRUCTUREDMERGE_DEV', + vendored_gems_env: 'VENDORED_GEMS', + vendor_gem_dir_env: 'VENDOR_GEM_DIR', + debug_env: 'STRUCTUREDMERGE_DEBUG' ) end - if ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false") != 0 + if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false') != 0 eval_nomono_gems( gems: kettle_dev_local_gems_to_eval, - prefix: "KETTLE_DEV", - path_env: "KETTLE_DEV_DEV", - vendored_gems_env: "VENDORED_GEMS", - vendor_gem_dir_env: "VENDOR_GEM_DIR", - debug_env: "KETTLE_DEV_DEBUG" + prefix: 'KETTLE_DEV', + path_env: 'KETTLE_DEV_DEV', + vendored_gems_env: 'VENDORED_GEMS', + vendor_gem_dir_env: 'VENDOR_GEM_DIR', + debug_env: 'KETTLE_DEV_DEBUG' ) end end diff --git a/gems/markdown-merge/gemfiles/modular/webrick/r4/v1.9.gemfile b/gems/markdown-merge/gemfiles/modular/webrick/r4/v1.9.gemfile index eaab4a473..b1329ba84 100644 --- a/gems/markdown-merge/gemfiles/modular/webrick/r4/v1.9.gemfile +++ b/gems/markdown-merge/gemfiles/modular/webrick/r4/v1.9.gemfile @@ -1 +1 @@ -gem "webrick", "~> 1.9" +gem 'webrick', '~> 1.9' diff --git a/gems/markdown-merge/gemfiles/modular/webrick/vHEAD.gemfile b/gems/markdown-merge/gemfiles/modular/webrick/vHEAD.gemfile index 8a789b634..c7e6f81a1 100644 --- a/gems/markdown-merge/gemfiles/modular/webrick/vHEAD.gemfile +++ b/gems/markdown-merge/gemfiles/modular/webrick/vHEAD.gemfile @@ -1 +1 @@ -gem "webrick", ">= 1.9" +gem 'webrick', '>= 1.9' diff --git a/gems/markdown-merge/gemfiles/modular/x_std_libs.gemfile b/gems/markdown-merge/gemfiles/modular/x_std_libs.gemfile index 77aad43f2..b1f43c097 100644 --- a/gems/markdown-merge/gemfiles/modular/x_std_libs.gemfile +++ b/gems/markdown-merge/gemfiles/modular/x_std_libs.gemfile @@ -1,12 +1,12 @@ ### Std Lib Extracted Gems ruby_version = Gem::Version.new(RUBY_VERSION) -if ruby_version >= Gem::Version.new("4.0") - eval_gemfile "x_std_libs/r4/libs.gemfile" -elsif ruby_version >= Gem::Version.new("3.2") - eval_gemfile "x_std_libs/r3/libs.gemfile" -elsif ruby_version >= Gem::Version.new("3.1") - eval_gemfile "x_std_libs/r3.1/libs.gemfile" +if ruby_version >= Gem::Version.new('4.0') + eval_gemfile 'x_std_libs/r4/libs.gemfile' +elsif ruby_version >= Gem::Version.new('3.2') + eval_gemfile 'x_std_libs/r3/libs.gemfile' +elsif ruby_version >= Gem::Version.new('3.1') + eval_gemfile 'x_std_libs/r3.1/libs.gemfile' else - eval_gemfile "x_std_libs/r2/libs.gemfile" + eval_gemfile 'x_std_libs/r2/libs.gemfile' end diff --git a/gems/markdown-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile b/gems/markdown-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile index 441c4f03a..16a5e3d70 100644 --- a/gems/markdown-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile +++ b/gems/markdown-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile @@ -1,3 +1,3 @@ -eval_gemfile "../../erb/r2/v3.0.gemfile" -eval_gemfile "../../mutex_m/r2/v0.3.gemfile" -eval_gemfile "../../stringio/r2/v3.0.gemfile" +eval_gemfile '../../erb/r2/v3.0.gemfile' +eval_gemfile '../../mutex_m/r2/v0.3.gemfile' +eval_gemfile '../../stringio/r2/v3.0.gemfile' diff --git a/gems/markdown-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile b/gems/markdown-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile index c293a3ddd..220ff95c1 100644 --- a/gems/markdown-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile +++ b/gems/markdown-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile @@ -1,3 +1,3 @@ -eval_gemfile "../../erb/r3/v5.0.gemfile" -eval_gemfile "../../mutex_m/r3/v0.3.gemfile" -eval_gemfile "../../stringio/r3/v3.0.gemfile" +eval_gemfile '../../erb/r3/v5.0.gemfile' +eval_gemfile '../../mutex_m/r3/v0.3.gemfile' +eval_gemfile '../../stringio/r3/v3.0.gemfile' diff --git a/gems/markdown-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile b/gems/markdown-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile index eb5574247..e2f6501eb 100644 --- a/gems/markdown-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile +++ b/gems/markdown-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile @@ -1,6 +1,6 @@ -eval_gemfile "../../erb/r4/v5.0.gemfile" -eval_gemfile "../../mutex_m/r4/v0.3.gemfile" -eval_gemfile "../../stringio/r4/v3.0.gemfile" -eval_gemfile "../../benchmark/r4/v0.5.gemfile" -eval_gemfile "../../cgi/r4/v0.5.gemfile" -eval_gemfile "../../webrick/r4/v1.9.gemfile" +eval_gemfile '../../erb/r4/v5.0.gemfile' +eval_gemfile '../../mutex_m/r4/v0.3.gemfile' +eval_gemfile '../../stringio/r4/v3.0.gemfile' +eval_gemfile '../../benchmark/r4/v0.5.gemfile' +eval_gemfile '../../cgi/r4/v0.5.gemfile' +eval_gemfile '../../webrick/r4/v1.9.gemfile' diff --git a/gems/markdown-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile b/gems/markdown-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile index d4d5b16c9..ab75cccf1 100644 --- a/gems/markdown-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile +++ b/gems/markdown-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile @@ -1,6 +1,6 @@ -eval_gemfile "../erb/vHEAD.gemfile" -eval_gemfile "../mutex_m/vHEAD.gemfile" -eval_gemfile "../stringio/vHEAD.gemfile" -eval_gemfile "../benchmark/vHEAD.gemfile" -eval_gemfile "../cgi/vHEAD.gemfile" -eval_gemfile "../webrick/vHEAD.gemfile" +eval_gemfile '../erb/vHEAD.gemfile' +eval_gemfile '../mutex_m/vHEAD.gemfile' +eval_gemfile '../stringio/vHEAD.gemfile' +eval_gemfile '../benchmark/vHEAD.gemfile' +eval_gemfile '../cgi/vHEAD.gemfile' +eval_gemfile '../webrick/vHEAD.gemfile' diff --git a/gems/markdown-merge/lib/markdown/merge/version.rb b/gems/markdown-merge/lib/markdown/merge/version.rb index fe631f91a..c8ba076ae 100644 --- a/gems/markdown-merge/lib/markdown/merge/version.rb +++ b/gems/markdown-merge/lib/markdown/merge/version.rb @@ -3,7 +3,7 @@ module Markdown module Merge module Version - VERSION = "7.1.0" + VERSION = '7.1.0' end VERSION = Version::VERSION # Traditional Constant Location end diff --git a/gems/markdown-merge/spec/spec_helper.rb b/gems/markdown-merge/spec/spec_helper.rb index c4ea6c695..77eb0206c 100644 --- a/gems/markdown-merge/spec/spec_helper.rb +++ b/gems/markdown-merge/spec/spec_helper.rb @@ -7,16 +7,16 @@ # NOTE: Gemfiles for non-coverage appraisals may not have kettle-soup-cover. # The rescue LoadError handles that scenario. begin - require "kettle-soup-cover" + require 'kettle-soup-cover' if Kettle::Soup::Cover::DO_COV # Requiring simplecov loads the project-local `.simplecov`. - require "simplecov" - require "kettle/soup/cover/config" + require 'simplecov' + require 'kettle/soup/cover/config' SimpleCov.start end -rescue LoadError => error +rescue LoadError => e # check the error message and re-raise when unexpected - raise error unless error.message.include?("kettle") + raise e unless e.message.include?('kettle') end # External RSpec & related config diff --git a/gems/markly-merge/Gemfile.lock b/gems/markly-merge/Gemfile.lock index 1e614455a..65c403b9a 100644 --- a/gems/markly-merge/Gemfile.lock +++ b/gems/markly-merge/Gemfile.lock @@ -6,6 +6,266 @@ PATH markly (~> 0.9) version_gem (~> 1.1, >= 1.1.9) +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly + specs: + ast-crispr-markdown-markly (7.1.0) + ast-crispr (= 7.1.0) + markly-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism + specs: + ast-crispr-ruby-prism (7.1.0) + ast-crispr (= 7.1.0) + prism-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr + specs: + ast-crispr (7.1.0) + ast-merge (= 7.1.0) + service_actor (~> 3.9) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git + specs: + ast-merge-git (7.1.0) + ast-merge (= 7.1.0) + json-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge + specs: + ast-merge (7.1.0) + benchmark + token-resolver (~> 2.0, >= 2.0.4) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template + specs: + ast-template (7.1.0) + ast-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge + specs: + bash-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge + specs: + binary-merge (7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge + specs: + citrus-toml-merge (7.1.0) + toml-merge (= 7.1.0) + toml-rb (~> 4.1) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge + specs: + commonmarker-merge (7.1.0) + commonmarker (~> 2.2) + markdown-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge + specs: + dotenv-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge + specs: + go-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge + specs: + json-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem + specs: + kettle-jem (7.1.0) + addressable (>= 2.8, < 3) + ast-crispr-markdown-markly (= 7.1.0) + ast-crispr-ruby-prism (= 7.1.0) + ast-merge (= 7.1.0) + bash-merge (= 7.1.0) + citrus-toml-merge (= 7.1.0) + commonmarker-merge (= 7.1.0) + dotenv-merge (= 7.1.0) + json-merge (= 7.1.0) + kettle-dev (~> 2.3, >= 2.3.5) + kettle-rb (~> 0.1, >= 0.1.4) + kramdown-merge (= 7.1.0) + markdown-merge (= 7.1.0) + markly-merge (= 7.1.0) + prism-merge (= 7.1.0) + psych-merge (= 7.1.0) + rbs (>= 3.10) + rbs-merge (= 7.1.0) + ruby-merge (= 7.1.0) + token-resolver (~> 2.0, >= 2.0.4) + toml-merge (= 7.1.0) + toml-rb (~> 4.2) + tree_haver (= 7.1.0) + yaml-merge (= 7.1.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge + specs: + kramdown-merge (7.1.0) + kramdown (~> 2.5) + markdown-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge + specs: + markdown-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge + specs: + parslet-toml-merge (7.1.0) + toml (~> 0.3) + toml-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge + specs: + plain-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge + specs: + prism-merge (7.1.0) + prism (~> 1.6) + ruby-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge + specs: + psych-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + yaml-merge (= 7.1.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge + specs: + rbs-merge (7.1.0) + ast-merge (= 7.1.0) + rbs (>= 3.10) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge + specs: + ruby-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge + specs: + rust-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb + specs: + smorg-rb (7.1.0) + ast-merge (= 7.1.0) + ast-merge-git (= 7.1.0) + diff-lcs (~> 1.5) + go-merge (= 7.1.0) + json-merge (= 7.1.0) + kettle-jem (= 7.1.0) + markly-merge (= 7.1.0) + plain-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge + specs: + toml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver + specs: + tree_haver (7.1.0) + citrus (~> 3.0) + parslet (~> 2.0) + tree_sitter_language_pack (>= 1.13.2, < 2.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge + specs: + typescript-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge + specs: + yaml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge + specs: + zip-merge (7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + GEM remote: https://gem.coop/ specs: @@ -21,11 +281,6 @@ GEM rubocop (>= 1.0) version_gem (~> 1.1, >= 1.1.14) ast (2.4.3) - ast-merge (7.1.0) - benchmark - token-resolver (~> 2.0, >= 2.0.4) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) backports (3.25.3) benchmark (0.5.0) bigdecimal (4.1.2) @@ -35,6 +290,7 @@ GEM cgi (0.5.2) citrus (3.0.2) cmdparse (3.0.7) + commonmarker (2.9.0-x86_64-linux) concurrent-ruby (1.3.8) date (3.5.1) debug (1.11.1) @@ -97,6 +353,8 @@ GEM kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) + kettle-drift (1.0.6) + version_gem (~> 1.1, >= 1.1.14) kettle-rb (0.1.5) kettle-soup-cover (3.0.4) kettle-wash (~> 0.1, >= 0.1.0) @@ -125,10 +383,6 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) - markdown-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) markly (0.16.0) mutex_m (0.3.0) nokogiri (1.19.4-x86_64-linux-gnu) @@ -284,6 +538,8 @@ GEM ruby-progressbar (1.13.0) ruby_engine (2.0.3) ruby_version (1.0.3) + service_actor (3.9.4) + zeitwerk (>= 1.0) silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) @@ -338,11 +594,11 @@ GEM token-resolver (2.0.5) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.14) - tree_haver (7.1.0) - citrus (~> 3.0) - parslet (~> 2.0) - tree_sitter_language_pack (>= 1.13.2, < 2.0) - version_gem (~> 1.1, >= 1.1.9) + toml (0.3.0) + parslet (>= 1.8.0, < 3.0.0) + toml-rb (4.2.0) + citrus (~> 3.0, > 3.0) + racc (~> 1.7) tree_sitter_language_pack (1.13.3-x86_64-linux) sorbet-runtime (~> 0.5) tsort (0.2.0) @@ -388,24 +644,46 @@ DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) appraisal2-rubocop (~> 1.0, >= 1.0.0) + ast-crispr! + ast-crispr-markdown-markly! + ast-crispr-ruby-prism! + ast-merge! + ast-merge-git! + ast-template! + bash-merge! benchmark (~> 0.5, >= 0.5.0) + binary-merge! bundler-audit (~> 0.9.3) cgi (~> 0.5) + citrus-toml-merge! + commonmarker-merge! debug (>= 1.1) + dotenv-merge! erb (~> 6.0, >= 6.0.6) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.0) + go-merge! irb (~> 1.17) + json-merge! kettle-dev (~> 2.0, >= 2.2.25) + kettle-drift (~> 1.0, >= 1.0.6) + kettle-jem! kettle-soup-cover (~> 3.0, >= 3.0.3) kettle-test (~> 2.0, >= 2.0.9) kramdown (~> 2.5, >= 2.5.2) + kramdown-merge! kramdown-parser-gfm (~> 1.1) + markdown-merge! markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) + parslet-toml-merge! + plain-merge! + prism-merge! + psych-merge! rake (~> 13.0) rbs (>= 3.0) + rbs-merge! rdoc (~> 6.11) reek (~> 6.5, >= 6.5.0) require_bench (~> 1.0, >= 1.0.4) @@ -416,19 +694,27 @@ DEPENDENCIES rubocop-on-rbs (~> 2.0, >= 2.0.0) rubocop-packaging (~> 0.6, >= 0.6.0) rubocop-ruby3_2 (~> 3.0, >= 3.0.6) + ruby-merge! ruby-progressbar (~> 1.13) + rust-merge! + smorg-rb! standard (~> 1.56, >= 1.56.0) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) + toml-merge! + tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) + typescript-merge! webrick (~> 1.9) yaml-converter (~> 0.2, >= 0.2.3) + yaml-merge! yard (~> 0.9, >= 0.9.45) yard-fence (~> 0.9, >= 0.9.6) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) yard-timekeeper (~> 0.2, >= 0.2.4) yard-yaml (~> 0.2, >= 0.2.3) + zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af @@ -436,20 +722,31 @@ CHECKSUMS appraisal2 (3.2.0) sha256=ccd0b767ac4060cd7af6d16747459b6990f49c39c7b4fb1f7d1146b1e97c492f appraisal2-rubocop (1.0.0) sha256=b71410fbb014befda5340605a605b7f6f3f012739baf0acc5b4351b592c3258d ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 + ast-crispr (7.1.0) + ast-crispr-markdown-markly (7.1.0) + ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) + ast-merge-git (7.1.0) + ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 + bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd + binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 + citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 + commonmarker (2.9.0-x86_64-linux) sha256=8cfe92970eef585a19ddf6613224b91cab64d6029834661bda801f877c9c7f43 + commonmarker-merge (7.1.0) concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 + dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -462,16 +759,21 @@ CHECKSUMS gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f + go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 + json-merge (7.1.0) kettle-dev (2.3.8) sha256=9d716ff21c660a730cb4e8d41e2e2f0630a28167a354b6e2924e242102aef72c + kettle-drift (1.0.6) sha256=46eda08fa4411d1f3c6682a95eef1c9df4e94611b3949f49d4c7b43c0ed356a3 + kettle-jem (7.1.0) kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f kettle-soup-cover (3.0.4) kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa + kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 @@ -488,15 +790,20 @@ CHECKSUMS parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 + parslet-toml-merge (7.1.0) + plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 + prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 + psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 + rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb @@ -531,15 +838,19 @@ CHECKSUMS rubocop-rspec_rails (2.32.0) sha256=4a0d641c72f6ebb957534f539d9d0a62c47abd8ce0d0aeee1ef4701e892a9100 rubocop-ruby3_2 (3.0.7) sha256=f53dd6d286fb05186214fc6ec116783e7f837030918e8931c05de773e98f8466 rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 + ruby-merge (7.1.0) ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 + rust-merge (7.1.0) + service_actor (3.9.4) sha256=e63b523630b9a7e62959b2a90113b08d2565b5de9c148557b281ef847c9539ce silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed + smorg-rb (7.1.0) sorbet-runtime (0.6.13347) sha256=54e7221d9f4b63f58aec79f3043752a9ba7810347c6ae0d903531591cc2d5f01 standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b @@ -554,15 +865,20 @@ CHECKSUMS timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.5) sha256=b852f924287ffb58a440856e862b056c8ad97e74b4b2526cee43e0771f40c25c + toml (0.3.0) sha256=0a91d0f76a9036e84e44f95693b12f58d358c1df3ac8e3b5271f2056ecc6e4b9 + toml-merge (7.1.0) + toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 + typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 webrick (1.9.2) sha256=beb4a15fc474defed24a3bda4ffd88a490d517c9e4e6118c3edce59e45864131 yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 + yaml-merge (7.1.0) yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd @@ -570,6 +886,7 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 + zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH diff --git a/gems/prism-merge/.rubocop_gradual.lock b/gems/prism-merge/.rubocop_gradual.lock new file mode 100644 index 000000000..fda2bbfb2 --- /dev/null +++ b/gems/prism-merge/.rubocop_gradual.lock @@ -0,0 +1,707 @@ +{ + ".simplecov:4134106261": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "Rakefile:22363789": [ + [18, 121, 17, "Layout/LineLength: Line is too long. [137/120]", 174264873], + [79, 3, 1023, "Metrics/BlockLength: Block has too many lines. [32/25]", 54868638], + [163, 121, 22, "Layout/LineLength: Line is too long. [142/120]", 1367093088], + [166, 121, 18, "Layout/LineLength: Line is too long. [138/120]", 3881946477] + ], + "gemfiles/modular/benchmark/r4/v0.5.gemfile:3644720371": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/benchmark/vHEAD.gemfile:2838879269": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/cgi/r4/v0.5.gemfile:367169322": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/cgi/vHEAD.gemfile:2729540777": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/erb/r2/v3.0.gemfile:1688285565": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/erb/r3/v5.0.gemfile:2394062339": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/erb/r4/v5.0.gemfile:2394062339": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/erb/vHEAD.gemfile:981929959": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/mutex_m/r2/v0.3.gemfile:4055275004": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/mutex_m/r3/v0.3.gemfile:4055275004": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/mutex_m/r4/v0.3.gemfile:4055275004": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/mutex_m/vHEAD.gemfile:556854763": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/rspec.gemfile:2263543889": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/stringio/r2/v3.0.gemfile:821604304": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/stringio/r3/v3.0.gemfile:821604304": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/stringio/r4/v3.0.gemfile:821604304": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/stringio/vHEAD.gemfile:1045839691": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/webrick/r4/v1.9.gemfile:3092661193": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/webrick/vHEAD.gemfile:3867684682": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/x_std_libs.gemfile:2324400122": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/x_std_libs/r2/libs.gemfile:36276542": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] + ], + "gemfiles/modular/x_std_libs/r3/libs.gemfile:4030570297": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] + ], + "gemfiles/modular/x_std_libs/r4/libs.gemfile:732451732": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] + ], + "gemfiles/modular/x_std_libs/vHEAD.gemfile:2390363993": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] + ], + "lib/prism-merge.rb:226590672": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`prism-merge.rb`) should use snake_case.", 5381] + ], + "lib/prism/merge.rb:1325756945": [ + [12, 3, 12, "Style/Documentation: Missing top-level documentation comment for `module Prism::Merge`.", 2866359175], + [12, 3, 52397, "Metrics/ModuleLength: Module has too many lines. [1199/100]", 1955834049], + [13, 5, 11, "Style/ModuleFunction: Use `module_function` instead of `extend self`.", 1210897631], + [24, 5, 16, "Style/Documentation: Missing top-level documentation comment for `class Prism::Merge::ParseError`.", 362242086], + [120, 5, 1996, "Metrics/MethodLength: Method has too many lines. [42/10]", 709892915], + [165, 5, 1804, "Metrics/MethodLength: Method has too many lines. [37/10]", 3641862107], + [205, 5, 1012, "Metrics/MethodLength: Method has too many lines. [23/10]", 3112984532], + [243, 5, 695, "Metrics/MethodLength: Method has too many lines. [17/10]", 321495946], + [263, 5, 1801, "Metrics/MethodLength: Method has too many lines. [37/10]", 3355654893], + [264, 121, 5, "Layout/LineLength: Line is too long. [125/120]", 180584319], + [303, 5, 7357, "Metrics/AbcSize: Assignment Branch Condition size for `ruby_structured_edit_batch_report_projection` is too high. [<1, 31, 0> 31.02/17]", 2583247591], + [303, 5, 7357, "Metrics/MethodLength: Method has too many lines. [139/10]", 2583247591], + [304, 121, 5, "Layout/LineLength: Line is too long. [125/120]", 180584319], + [323, 121, 25, "Layout/LineLength: Line is too long. [145/120]", 949635646], + [361, 121, 42, "Layout/LineLength: Line is too long. [162/120]", 1330685294], + [445, 5, 932, "Metrics/AbcSize: Assignment Branch Condition size for `parse_ruby` is too high. [<3, 17, 7> 18.63/17]", 2894794051], + [445, 5, 932, "Metrics/MethodLength: Method has too many lines. [23/10]", 2894794051], + [473, 5, 491, "Metrics/MethodLength: Method has too many lines. [12/10]", 3211170428], + [488, 5, 3333, "Metrics/AbcSize: Assignment Branch Condition size for `parse_ruby_normalized` is too high. [<20, 68, 28> 76.21/17]", 3141190358], + [488, 5, 3333, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `parse_ruby_normalized` is too high. [23/7]", 3141190358], + [488, 5, 3333, "Metrics/MethodLength: Method has too many lines. [72/10]", 3141190358], + [488, 5, 3333, "Metrics/PerceivedComplexity: Perceived complexity for `parse_ruby_normalized` is too high. [23/8]", 3141190358], + [570, 5, 3671, "Metrics/AbcSize: Assignment Branch Condition size for `apply_edit_projection` is too high. [<14, 62, 19> 66.34/17]", 1859418783], + [570, 5, 3671, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `apply_edit_projection` is too high. [12/7]", 1859418783], + [570, 5, 3671, "Metrics/MethodLength: Method has too many lines. [66/10]", 1859418783], + [570, 5, 3671, "Metrics/PerceivedComplexity: Perceived complexity for `apply_edit_projection` is too high. [13/8]", 1859418783], + [616, 18, 176, "Style/StringConcatenation: Prefer string interpolation to string concatenation.", 3247522762], + [649, 5, 1505, "Metrics/MethodLength: Method has too many lines. [33/10]", 2499202345], + [649, 19, 292, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [10/5]", 676979469], + [710, 5, 583, "Metrics/MethodLength: Method has too many lines. [13/10]", 1484312517], + [727, 5, 551, "Metrics/AbcSize: Assignment Branch Condition size for `normalize_ruby_require_aliases` is too high. [<11, 15, 7> 19.87/17]", 2507514607], + [727, 5, 551, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `normalize_ruby_require_aliases` is too high. [8/7]", 2507514607], + [727, 5, 551, "Metrics/MethodLength: Method has too many lines. [17/10]", 2507514607], + [748, 5, 304, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `ruby_dsl_call_node` is too high. [8/7]", 2466841613], + [771, 5, 1305, "Metrics/AbcSize: Assignment Branch Condition size for `merge_ruby_with_reviewed_nested_outputs` is too high. [<7, 17, 5> 19.05/17]", 3657868136], + [771, 5, 1305, "Metrics/MethodLength: Method has too many lines. [27/10]", 3657868136], + [771, 48, 140, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 132256850], + [804, 5, 1015, "Metrics/MethodLength: Method has too many lines. [17/10]", 757789356], + [814, 121, 70, "Layout/LineLength: Line is too long. [190/120]", 1956194284], + [827, 5, 928, "Metrics/MethodLength: Method has too many lines. [16/10]", 1039420596], + [837, 121, 17, "Layout/LineLength: Line is too long. [137/120]", 3013228499], + [849, 5, 1003, "Metrics/MethodLength: Method has too many lines. [17/10]", 3313354796], + [859, 121, 62, "Layout/LineLength: Line is too long. [182/120]", 1636990749], + [872, 5, 936, "Metrics/MethodLength: Method has too many lines. [16/10]", 2825710110], + [882, 121, 17, "Layout/LineLength: Line is too long. [137/120]", 3013228499], + [906, 5, 662, "Metrics/MethodLength: Method has too many lines. [19/10]", 772959042], + [927, 7, 11, "Style/MultilineBlockChain: Avoid multi-line chains of blocks.", 848344986], + [930, 5, 849, "Metrics/AbcSize: Assignment Branch Condition size for `prism_ruby_discovered_surfaces` is too high. [<12, 16, 6> 20.88/17]", 2509812469], + [930, 5, 849, "Metrics/MethodLength: Method has too many lines. [23/10]", 2509812469], + [961, 5, 1195, "Metrics/AbcSize: Assignment Branch Condition size for `prism_ruby_surfaces_for_owner` is too high. [<6, 19, 3> 20.15/17]", 1713430182], + [961, 5, 1195, "Metrics/MethodLength: Method has too many lines. [20/10]", 1713430182], + [986, 5, 1216, "Metrics/AbcSize: Assignment Branch Condition size for `prism_ruby_example_surfaces` is too high. [<4, 20, 2> 20.49/17]", 2225356615], + [986, 5, 1216, "Metrics/MethodLength: Method has too many lines. [22/10]", 2225356615], + [1058, 5, 421, "Metrics/MethodLength: Method has too many lines. [14/10]", 26440736], + [1089, 5, 827, "Metrics/MethodLength: Method has too many lines. [18/10]", 4288402374], + [1130, 5, 876, "Metrics/MethodLength: Method has too many lines. [23/10]", 3423854231], + [1168, 5, 1155, "Metrics/AbcSize: Assignment Branch Condition size for `prism_comment_node` is too high. [<1, 22, 0> 22.02/17]", 4287909739], + [1168, 5, 1155, "Metrics/MethodLength: Method has too many lines. [28/10]", 4287909739], + [1199, 5, 888, "Metrics/MethodLength: Method has too many lines. [27/10]", 3798554661], + [1251, 5, 920, "Metrics/MethodLength: Method has too many lines. [23/10]", 917985568] + ], + "lib/prism/merge/begin_node_clause_body_merger.rb:1042804537": [ + [5, 5, 31, "Style/Documentation: Missing top-level documentation comment for `class Prism::Merge::BeginNodeClauseBodyMerger`.", 1242162299], + [19, 7, 1511, "Metrics/AbcSize: Assignment Branch Condition size for `merge` is too high. [<5, 37, 1> 37.35/17]", 3275719934], + [19, 7, 1511, "Metrics/MethodLength: Method has too many lines. [32/10]", 3275719934] + ], + "lib/prism/merge/begin_node_clause_body_support.rb:787370708": [ + [5, 5, 32, "Style/Documentation: Missing top-level documentation comment for `class Prism::Merge::BeginNodeClauseBodySupport`.", 3341069278], + [5, 5, 7504, "Metrics/ClassLength: Class has too many lines. [142/100]", 1403116805], + [8, 21, 100, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 4145084810], + [22, 7, 937, "Metrics/AbcSize: Assignment Branch Condition size for `clause_header_end_line` is too high. [<5, 29, 16> 33.5/17]", 2050282033], + [22, 7, 937, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `clause_header_end_line` is too high. [16/7]", 2050282033], + [22, 7, 937, "Metrics/MethodLength: Method has too many lines. [14/10]", 2050282033], + [22, 7, 937, "Metrics/PerceivedComplexity: Perceived complexity for `clause_header_end_line` is too high. [16/8]", 2050282033], + [35, 63, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], + [55, 9, 23, "Style/StringConcatenation: Prefer string interpolation to string concatenation.", 1178765246], + [58, 7, 419, "Metrics/MethodLength: Method has too many lines. [11/10]", 3825428834], + [81, 7, 2396, "Metrics/AbcSize: Assignment Branch Condition size for `clause_body_components` is too high. [<11, 30, 16> 35.74/17]", 199420029], + [81, 7, 2396, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `clause_body_components` is too high. [13/7]", 199420029], + [81, 7, 2396, "Metrics/MethodLength: Method has too many lines. [39/10]", 199420029], + [81, 7, 2396, "Metrics/PerceivedComplexity: Perceived complexity for `clause_body_components` is too high. [14/8]", 199420029], + [126, 30, 23, "Style/StringConcatenation: Prefer string interpolation to string concatenation.", 1178765246], + [164, 7, 862, "Metrics/AbcSize: Assignment Branch Condition size for `clause_bodies_have_matching_statements?` is too high. [<3, 19, 2> 19.34/17]", 4182083840], + [164, 7, 862, "Metrics/MethodLength: Method has too many lines. [15/10]", 4182083840] + ], + "lib/prism/merge/begin_node_clause_header_emitter.rb:2991300768": [ + [5, 5, 34, "Style/Documentation: Missing top-level documentation comment for `class Prism::Merge::BeginNodeClauseHeaderEmitter`.", 217025096], + [14, 7, 1600, "Metrics/AbcSize: Assignment Branch Condition size for `emit` is too high. [<10, 22, 17> 29.55/17]", 4242535078], + [14, 7, 1600, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `emit` is too high. [11/7]", 4242535078], + [14, 7, 1600, "Metrics/MethodLength: Method has too many lines. [25/10]", 4242535078], + [14, 7, 1600, "Metrics/PerceivedComplexity: Perceived complexity for `emit` is too high. [11/8]", 4242535078], + [14, 15, 164, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [8/5]", 2644486585] + ], + "lib/prism/merge/begin_node_merge_planner.rb:3840396716": [ + [5, 5, 27, "Style/Documentation: Missing top-level documentation comment for `class Prism::Merge::BeginNodeMergePlanner`.", 3356052894], + [5, 5, 9876, "Metrics/ClassLength: Class has too many lines. [185/100]", 148070692], + [30, 7, 2144, "Metrics/AbcSize: Assignment Branch Condition size for `plan` is too high. [<15, 34, 11> 38.76/17]", 3596380485], + [30, 7, 2144, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `plan` is too high. [10/7]", 3596380485], + [30, 7, 2144, "Metrics/MethodLength: Method has too many lines. [39/10]", 3596380485], + [30, 7, 2144, "Metrics/PerceivedComplexity: Perceived complexity for `plan` is too high. [11/8]", 3596380485], + [84, 7, 4383, "Metrics/AbcSize: Assignment Branch Condition size for `build_shared_clause_step` is too high. [<19, 70, 24> 76.4/17]", 2837542267], + [84, 7, 4383, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `build_shared_clause_step` is too high. [16/7]", 2837542267], + [84, 7, 4383, "Metrics/MethodLength: Method has too many lines. [73/10]", 2837542267], + [84, 7, 4383, "Metrics/PerceivedComplexity: Perceived complexity for `build_shared_clause_step` is too high. [18/8]", 2837542267], + [103, 121, 59, "Layout/LineLength: Line is too long. [179/120]", 357928082], + [105, 121, 55, "Layout/LineLength: Line is too long. [175/120]", 1163790852], + [142, 121, 35, "Layout/LineLength: Line is too long. [155/120]", 3447647282], + [143, 121, 40, "Layout/LineLength: Line is too long. [160/120]", 1267386383], + [167, 7, 2428, "Metrics/AbcSize: Assignment Branch Condition size for `build_unmatched_clause_step` is too high. [<2, 28, 21> 35.06/17]", 2984621385], + [167, 7, 2428, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `build_unmatched_clause_step` is too high. [17/7]", 2984621385], + [167, 7, 2428, "Metrics/MethodLength: Method has too many lines. [38/10]", 2984621385], + [167, 7, 2428, "Metrics/PerceivedComplexity: Perceived complexity for `build_unmatched_clause_step` is too high. [19/8]", 2984621385], + [188, 121, 25, "Layout/LineLength: Line is too long. [145/120]", 549521717], + [198, 121, 25, "Layout/LineLength: Line is too long. [145/120]", 619697310] + ], + "lib/prism/merge/begin_node_plan_emitter.rb:372252499": [ + [5, 5, 26, "Style/Documentation: Missing top-level documentation comment for `class Prism::Merge::BeginNodePlanEmitter`.", 926648201], + [14, 7, 740, "Metrics/MethodLength: Method has too many lines. [16/10]", 2040521865], + [14, 15, 105, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 1812434716], + [36, 7, 1205, "Metrics/MethodLength: Method has too many lines. [24/10]", 4164487211], + [36, 20, 127, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 466430575], + [76, 7, 1308, "Metrics/AbcSize: Assignment Branch Condition size for `emit_copied_unmatched_clause` is too high. [<6, 30, 11> 32.51/17]", 1339054986], + [76, 7, 1308, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `emit_copied_unmatched_clause` is too high. [10/7]", 1339054986], + [76, 7, 1308, "Metrics/MethodLength: Method has too many lines. [21/10]", 1339054986], + [76, 7, 1308, "Metrics/PerceivedComplexity: Perceived complexity for `emit_copied_unmatched_clause` is too high. [10/8]", 1339054986], + [76, 39, 146, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 2474530127] + ], + "lib/prism/merge/begin_node_rescue_semantics.rb:2034041801": [ + [5, 5, 30, "Style/Documentation: Missing top-level documentation comment for `class Prism::Merge::BeginNodeRescueSemantics`.", 4100560642], + [5, 5, 9899, "Metrics/ClassLength: Class has too many lines. [198/100]", 4227917508], + [13, 7, 1953, "Metrics/AbcSize: Assignment Branch Condition size for `normalized_clause_body_and_header_source` is too high. [<9, 13, 21> 26.29/17]", 1895019213], + [13, 7, 1953, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `normalized_clause_body_and_header_source` is too high. [15/7]", 1895019213], + [13, 7, 1953, "Metrics/MethodLength: Method has too many lines. [26/10]", 1895019213], + [13, 7, 1953, "Metrics/PerceivedComplexity: Perceived complexity for `normalized_clause_body_and_header_source` is too high. [17/8]", 1895019213], + [80, 7, 530, "Metrics/AbcSize: Assignment Branch Condition size for `local_variable_read_names_in` is too high. [<1, 16, 9> 18.38/17]", 2555890222], + [80, 7, 530, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `local_variable_read_names_in` is too high. [8/7]", 2555890222], + [80, 7, 530, "Metrics/MethodLength: Method has too many lines. [12/10]", 2555890222], + [80, 7, 530, "Metrics/PerceivedComplexity: Perceived complexity for `local_variable_read_names_in` is too high. [9/8]", 2555890222], + [134, 7, 724, "Metrics/AbcSize: Assignment Branch Condition size for `rewrite_local_reference_in_source` is too high. [<6, 18, 9> 21/17]", 2089802992], + [134, 7, 724, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `rewrite_local_reference_in_source` is too high. [9/7]", 2089802992], + [134, 7, 724, "Metrics/MethodLength: Method has too many lines. [12/10]", 2089802992], + [134, 7, 724, "Metrics/PerceivedComplexity: Perceived complexity for `rewrite_local_reference_in_source` is too high. [9/8]", 2089802992], + [182, 85, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], + [194, 7, 1233, "Metrics/AbcSize: Assignment Branch Condition size for `collect_source_defined_exception_definitions` is too high. [<4, 22, 9> 24.1/17]", 1970916346], + [194, 7, 1233, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `collect_source_defined_exception_definitions` is too high. [10/7]", 1970916346], + [194, 7, 1233, "Metrics/MethodLength: Method has too many lines. [24/10]", 1970916346] + ], + "lib/prism/merge/begin_node_structure.rb:1232724245": [ + [5, 5, 24, "Style/Documentation: Missing top-level documentation comment for `class Prism::Merge::BeginNodeStructure`.", 3506219929], + [5, 5, 4080, "Metrics/ClassLength: Class has too many lines. [101/100]", 1611393241], + [21, 7, 375, "Metrics/AbcSize: Assignment Branch Condition size for `boundary_lines` is too high. [<0, 28, 7> 28.86/17]", 3399008793], + [21, 7, 375, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `boundary_lines` is too high. [8/7]", 3399008793], + [33, 7, 251, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `clause_start_line` is too high. [8/7]", 1553904487], + [43, 7, 407, "Metrics/MethodLength: Method has too many lines. [12/10]", 3851339415], + [59, 7, 1089, "Metrics/AbcSize: Assignment Branch Condition size for `clause_regions` is too high. [<9, 38, 9> 40.07/17]", 1916795013], + [59, 7, 1089, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `clause_regions` is too high. [10/7]", 1916795013], + [59, 7, 1089, "Metrics/MethodLength: Method has too many lines. [22/10]", 1916795013], + [59, 7, 1089, "Metrics/PerceivedComplexity: Perceived complexity for `clause_regions` is too high. [10/8]", 1916795013], + [86, 7, 613, "Metrics/AbcSize: Assignment Branch Condition size for `clause_nodes_by_type` is too high. [<9, 19, 4> 21.4/17]", 1693909219], + [86, 7, 613, "Metrics/MethodLength: Method has too many lines. [12/10]", 1693909219], + [102, 11, 19, "Naming/PredicatePrefix: Rename `has_clause_or_body?` to `clause_or_body?`.", 2163996991], + [106, 7, 598, "Metrics/AbcSize: Assignment Branch Condition size for `line_map_for` is too high. [<13, 15, 6> 20.74/17]", 191778789] + ], + "lib/prism/merge/block_directive_detector.rb:3698866715": [ + [9, 5, 5028, "Metrics/ClassLength: Class has too many lines. [121/100]", 2587374670], + [10, 7, 1976, "Metrics/AbcSize: Assignment Branch Condition size for `promote_spans_to_nodes` is too high. [<23, 42, 32> 57.59/17]", 1038475655], + [10, 7, 1976, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `promote_spans_to_nodes` is too high. [24/7]", 1038475655], + [10, 7, 1976, "Metrics/MethodLength: Method has too many lines. [37/10]", 1038475655], + [10, 7, 1976, "Metrics/PerceivedComplexity: Perceived complexity for `promote_spans_to_nodes` is too high. [25/8]", 1038475655], + [35, 11, 7, "Style/MultilineBlockChain: Avoid multi-line chains of blocks.", 4045560504], + [108, 7, 832, "Metrics/MethodLength: Method has too many lines. [23/10]", 3204610677], + [134, 7, 722, "Metrics/AbcSize: Assignment Branch Condition size for `rebuild_statements` is too high. [<15, 17, 9> 24.39/17]", 3809085226], + [134, 7, 722, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `rebuild_statements` is too high. [10/7]", 3809085226], + [134, 7, 722, "Metrics/MethodLength: Method has too many lines. [15/10]", 3809085226], + [134, 7, 722, "Metrics/PerceivedComplexity: Perceived complexity for `rebuild_statements` is too high. [10/8]", 3809085226] + ], + "lib/prism/merge/comment/block.rb:3606937725": [ + [65, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 1573406415] + ], + "lib/prism/merge/comment/parser.rb:1277632686": [ + [31, 9, 1747, "Metrics/AbcSize: Assignment Branch Condition size for `parse` is too high. [<10, 28, 8> 30.79/17]", 2837146927], + [31, 9, 1747, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `parse` is too high. [8/7]", 2837146927], + [31, 9, 1747, "Metrics/MethodLength: Method has too many lines. [34/10]", 2837146927], + [31, 9, 1747, "Metrics/PerceivedComplexity: Perceived complexity for `parse` is too high. [9/8]", 2837146927], + [38, 11, 1390, "Metrics/BlockLength: Block has too many lines. [26/25]", 1396583578] + ], + "lib/prism/merge/comment_only_file_merger.rb:808070956": [ + [5, 5, 27, "Style/Documentation: Missing top-level documentation comment for `class Prism::Merge::CommentOnlyFileMerger`.", 1927029952], + [5, 5, 11907, "Metrics/ClassLength: Class has too many lines. [256/100]", 2729825792], + [27, 7, 1628, "Metrics/AbcSize: Assignment Branch Condition size for `merge` is too high. [<15, 32, 8> 36.24/17]", 2481561114], + [27, 7, 1628, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `merge` is too high. [8/7]", 2481561114], + [27, 7, 1628, "Metrics/MethodLength: Method has too many lines. [34/10]", 2481561114], + [78, 7, 661, "Metrics/MethodLength: Method has too many lines. [18/10]", 1523408112], + [100, 7, 1781, "Metrics/AbcSize: Assignment Branch Condition size for `build_output_plan` is too high. [<10, 34, 20> 40.69/17]", 994360926], + [100, 7, 1781, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `build_output_plan` is too high. [17/7]", 994360926], + [100, 7, 1781, "Metrics/MethodLength: Method has too many lines. [30/10]", 994360926], + [100, 7, 1781, "Metrics/PerceivedComplexity: Perceived complexity for `build_output_plan` is too high. [19/8]", 994360926], + [123, 121, 21, "Layout/LineLength: Line is too long. [141/120]", 530225423], + [149, 7, 1486, "Metrics/AbcSize: Assignment Branch Condition size for `add_comment_node_to_result` is too high. [<7, 34, 22> 41.1/17]", 1181795760], + [149, 7, 1486, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `add_comment_node_to_result` is too high. [16/7]", 1181795760], + [149, 7, 1486, "Metrics/MethodLength: Method has too many lines. [29/10]", 1181795760], + [149, 7, 1486, "Metrics/PerceivedComplexity: Perceived complexity for `add_comment_node_to_result` is too high. [20/8]", 1181795760], + [185, 7, 693, "Metrics/MethodLength: Method has too many lines. [16/10]", 3008008109], + [205, 7, 1035, "Metrics/AbcSize: Assignment Branch Condition size for `emit_layout_gap_to_result` is too high. [<6, 24, 11> 27.07/17]", 3441550295], + [205, 7, 1035, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `emit_layout_gap_to_result` is too high. [9/7]", 3441550295], + [205, 7, 1035, "Metrics/MethodLength: Method has too many lines. [17/10]", 3441550295], + [205, 7, 1035, "Metrics/PerceivedComplexity: Perceived complexity for `emit_layout_gap_to_result` is too high. [10/8]", 3441550295], + [230, 7, 665, "Metrics/AbcSize: Assignment Branch Condition size for `emit_comment_only_prefix_lines` is too high. [<5, 21, 4> 21.95/17]", 1939505075], + [243, 7, 942, "Metrics/MethodLength: Method has too many lines. [19/10]", 2012616838] + ], + "lib/prism/merge/file_analysis.rb:3845044313": [ + [16, 5, 56738, "Metrics/ClassLength: Class has too many lines. [631/100]", 2915560491], + [19, 7, 28, "Style/Documentation: Missing top-level documentation comment for `class Prism::Merge::FileAnalysis::NativeCommentAugmenter`.", 2321467727], + [19, 7, 5712, "Metrics/ClassLength: Class has too many lines. [121/100]", 3225634005], + [22, 9, 605, "Metrics/MethodLength: Method has too many lines. [16/10]", 3935631704], + [47, 9, 2672, "Metrics/AbcSize: Assignment Branch Condition size for `build!` is too high. [<19, 55, 23> 62.57/17]", 3140666915], + [47, 9, 2672, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `build!` is too high. [22/7]", 3140666915], + [47, 9, 2672, "Metrics/MethodLength: Method has too many lines. [47/10]", 3140666915], + [47, 9, 2672, "Metrics/PerceivedComplexity: Perceived complexity for `build!` is too high. [22/8]", 3140666915], + [120, 9, 779, "Metrics/AbcSize: Assignment Branch Condition size for `attach_orphan_region_to_nearest_owner` is too high. [<4, 18, 3> 18.68/17]", 714646861], + [120, 9, 779, "Metrics/MethodLength: Method has too many lines. [15/10]", 714646861], + [212, 7, 1703, "Metrics/MethodLength: Method has too many lines. [19/10]", 3233444968], + [350, 7, 686, "Metrics/AbcSize: Assignment Branch Condition size for `leading_comments_for_owner` is too high. [<7, 23, 9> 25.67/17]", 4287196323], + [350, 7, 686, "Metrics/MethodLength: Method has too many lines. [13/10]", 4287196323], + [373, 7, 1177, "Metrics/MethodLength: Method has too many lines. [23/10]", 853358252], + [415, 7, 587, "Metrics/MethodLength: Method has too many lines. [13/10]", 241044926], + [481, 7, 1099, "Metrics/AbcSize: Assignment Branch Condition size for `frozen_node?` is too high. [<3, 16, 7> 17.72/17]", 1886536218], + [481, 7, 1099, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `frozen_node?` is too high. [8/7]", 1886536218], + [615, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5858904], + [616, 121, 10, "Layout/LineLength: Line is too long. [130/120]", 442686854], + [687, 7, 779, "Metrics/AbcSize: Assignment Branch Condition size for `split_first_owner_preamble_entries` is too high. [<9, 20, 10> 24.1/17]", 2477766314], + [687, 7, 779, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `split_first_owner_preamble_entries` is too high. [9/7]", 2477766314], + [687, 7, 779, "Metrics/MethodLength: Method has too many lines. [11/10]", 2477766314], + [687, 7, 779, "Metrics/PerceivedComplexity: Perceived complexity for `split_first_owner_preamble_entries` is too high. [9/8]", 2477766314], + [697, 9, 11, "Style/MultilineBlockChain: Avoid multi-line chains of blocks.", 848344986], + [744, 7, 768, "Metrics/MethodLength: Method has too many lines. [15/10]", 3855207561], + [770, 7, 609, "Metrics/MethodLength: Method has too many lines. [15/10]", 3157294863], + [856, 7, 2509, "Metrics/AbcSize: Assignment Branch Condition size for `extract_and_integrate_all_nodes` is too high. [<11, 29, 16> 34.9/17]", 1138957888], + [856, 7, 2509, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `extract_and_integrate_all_nodes` is too high. [14/7]", 1138957888], + [856, 7, 2509, "Metrics/MethodLength: Method has too many lines. [32/10]", 1138957888], + [856, 7, 2509, "Metrics/PerceivedComplexity: Perceived complexity for `extract_and_integrate_all_nodes` is too high. [16/8]", 1138957888], + [925, 7, 1325, "Metrics/AbcSize: Assignment Branch Condition size for `extract_nodes_with_comments` is too high. [<3, 25, 7> 26.13/17]", 1498557944], + [925, 7, 1325, "Metrics/MethodLength: Method has too many lines. [23/10]", 1498557944], + [1037, 7, 11892, "Metrics/AbcSize: Assignment Branch Condition size for `compute_node_signature` is too high. [<19, 176, 83> 195.5/17]", 2654183611], + [1037, 7, 11892, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `compute_node_signature` is too high. [75/7]", 2654183611], + [1037, 7, 11892, "Metrics/MethodLength: Method has too many lines. [132/10]", 2654183611], + [1037, 7, 11892, "Metrics/PerceivedComplexity: Perceived complexity for `compute_node_signature` is too high. [61/8]", 2654183611], + [1098, 88, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], + [1102, 24, 300, "Metrics/BlockNesting: Avoid more than 3 levels of block nesting.", 2690302041], + [1102, 55, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], + [1313, 7, 680, "Metrics/AbcSize: Assignment Branch Condition size for `detect_gemspec_block_var` is too high. [<3, 22, 15> 26.8/17]", 3676370299], + [1313, 7, 680, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `detect_gemspec_block_var` is too high. [14/7]", 3676370299], + [1313, 7, 680, "Metrics/MethodLength: Method has too many lines. [14/10]", 3676370299], + [1313, 7, 680, "Metrics/PerceivedComplexity: Perceived complexity for `detect_gemspec_block_var` is too high. [14/8]", 3676370299] + ], + "lib/prism/merge/freeze_node.rb:2471800311": [ + [67, 7, 577, "Metrics/MethodLength: Method has too many lines. [11/10]", 2189574632], + [67, 21, 186, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [8/5]", 1006469938], + [124, 7, 2888, "Metrics/AbcSize: Assignment Branch Condition size for `validate_structure!` is too high. [<13, 32, 33> 47.77/17]", 3621186151], + [124, 7, 2888, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `validate_structure!` is too high. [24/7]", 3621186151], + [124, 7, 2888, "Metrics/MethodLength: Method has too many lines. [38/10]", 3621186151], + [124, 7, 2888, "Metrics/PerceivedComplexity: Perceived complexity for `validate_structure!` is too high. [25/8]", 3621186151] + ], + "lib/prism/merge/merge_result.rb:1970522956": [ + [9, 5, 12561, "Metrics/ClassLength: Class has too many lines. [238/100]", 3020348188], + [67, 7, 5058, "Metrics/AbcSize: Assignment Branch Condition size for `add_node` is too high. [<25, 54, 38> 70.6/17]", 2165268226], + [67, 7, 5058, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `add_node` is too high. [22/7]", 2165268226], + [67, 7, 5058, "Metrics/MethodLength: Method has too many lines. [94/10]", 2165268226], + [67, 7, 5058, "Metrics/PerceivedComplexity: Perceived complexity for `add_node` is too high. [31/8]", 2165268226], + [74, 9, 1617, "Metrics/BlockLength: Block has too many lines. [34/25]", 3544860826], + [175, 38, 40, "Style/StringConcatenation: Prefer string interpolation to string concatenation.", 3558364074], + [193, 9, 24, "Style/StringConcatenation: Prefer string interpolation to string concatenation.", 1750147806], + [219, 7, 901, "Metrics/AbcSize: Assignment Branch Condition size for `debug_output` is too high. [<5, 29, 5> 29.85/17]", 2776830125], + [219, 7, 901, "Metrics/MethodLength: Method has too many lines. [25/10]", 2776830125], + [296, 7, 903, "Metrics/MethodLength: Method has too many lines. [18/10]", 2752342414] + ], + "lib/prism/merge/method_match_refiner.rb:1593340636": [ + [103, 7, 705, "Metrics/AbcSize: Assignment Branch Condition size for `extract_param_names` is too high. [<2, 37, 16> 40.36/17]", 3200522215], + [103, 7, 705, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `extract_param_names` is too high. [17/7]", 3200522215], + [103, 7, 705, "Metrics/MethodLength: Method has too many lines. [11/10]", 3200522215], + [103, 7, 705, "Metrics/PerceivedComplexity: Perceived complexity for `extract_param_names` is too high. [17/8]", 3200522215], + [111, 49, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], + [114, 65, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765] + ], + "lib/prism/merge/nested_statement_walker.rb:3826169704": [ + [24, 7, 695, "Metrics/MethodLength: Method has too many lines. [16/10]", 3744912119], + [45, 7, 518, "Metrics/MethodLength: Method has too many lines. [12/10]", 2978518157] + ], + "lib/prism/merge/nocov_node.rb:2336029940": [ + [52, 19, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765] + ], + "lib/prism/merge/node_body_layout.rb:1642074264": [ + [5, 5, 20, "Style/Documentation: Missing top-level documentation comment for `class Prism::Merge::NodeBodyLayout`.", 1262407425], + [5, 5, 5858, "Metrics/ClassLength: Class has too many lines. [127/100]", 2663802475], + [14, 7, 413, "Metrics/AbcSize: Assignment Branch Condition size for `body_text` is too high. [<2, 17, 5> 17.83/17]", 1825622248], + [28, 9, 23, "Style/StringConcatenation: Prefer string interpolation to string concatenation.", 1178765246], + [31, 7, 241, "Metrics/AbcSize: Assignment Branch Condition size for `opening_line_text` is too high. [<0, 17, 1> 17.03/17]", 1468915915], + [37, 7, 237, "Metrics/AbcSize: Assignment Branch Condition size for `closing_line_text` is too high. [<0, 18, 1> 18.03/17]", 4077830027], + [73, 7, 1058, "Metrics/AbcSize: Assignment Branch Condition size for `statements_node` is too high. [<1, 30, 11> 31.97/17]", 4004813764], + [73, 7, 1058, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `statements_node` is too high. [12/7]", 4004813764], + [73, 7, 1058, "Metrics/MethodLength: Method has too many lines. [20/10]", 4004813764], + [73, 7, 1058, "Metrics/PerceivedComplexity: Perceived complexity for `statements_node` is too high. [10/8]", 4004813764], + [100, 7, 567, "Metrics/AbcSize: Assignment Branch Condition size for `body_start_line` is too high. [<1, 24, 4> 24.35/17]", 2388795687], + [103, 121, 17, "Layout/LineLength: Line is too long. [137/120]", 503895268], + [111, 7, 863, "Metrics/AbcSize: Assignment Branch Condition size for `body_end_line` is too high. [<2, 38, 7> 38.69/17]", 60007760], + [111, 7, 863, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `body_end_line` is too high. [8/7]", 60007760], + [111, 7, 863, "Metrics/MethodLength: Method has too many lines. [11/10]", 60007760], + [114, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 2068513341], + [116, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 270242779] + ], + "lib/prism/merge/node_emission_support.rb:388716709": [ + [5, 5, 25, "Style/Documentation: Missing top-level documentation comment for `class Prism::Merge::NodeEmissionSupport`.", 1335077453], + [5, 5, 42322, "Metrics/ClassLength: Class has too many lines. [775/100]", 2081266710], + [14, 7, 2734, "Metrics/AbcSize: Assignment Branch Condition size for `emit_dest_prefix_lines` is too high. [<18, 54, 18> 59.7/17]", 4241256208], + [14, 7, 2734, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `emit_dest_prefix_lines` is too high. [16/7]", 4241256208], + [14, 7, 2734, "Metrics/MethodLength: Method has too many lines. [54/10]", 4241256208], + [14, 7, 2734, "Metrics/PerceivedComplexity: Perceived complexity for `emit_dest_prefix_lines` is too high. [17/8]", 4241256208], + [19, 121, 1, "Layout/LineLength: Line is too long. [121/120]", 177656], + [20, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 3503445075], + [81, 7, 2526, "Metrics/AbcSize: Assignment Branch Condition size for `emit_removed_destination_node_comments` is too high. [<15, 38, 6> 41.29/17]", 3275408633], + [81, 7, 2526, "Metrics/MethodLength: Method has too many lines. [63/10]", 3275408633], + [153, 7, 1430, "Metrics/AbcSize: Assignment Branch Condition size for `emit_dest_gap_lines` is too high. [<7, 19, 11> 23.04/17]", 2013951205], + [153, 7, 1430, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `emit_dest_gap_lines` is too high. [9/7]", 2013951205], + [153, 7, 1430, "Metrics/MethodLength: Method has too many lines. [27/10]", 2013951205], + [153, 7, 1430, "Metrics/PerceivedComplexity: Perceived complexity for `emit_dest_gap_lines` is too high. [9/8]", 2013951205], + [154, 36, 21, "Style/NumericPredicate: Use `last_output_line.zero?` instead of `last_output_line == 0`.", 1942859694], + [160, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 3276957001], + [187, 7, 9316, "Metrics/AbcSize: Assignment Branch Condition size for `emit_matched_template_node` is too high. [<52, 122, 45> 140.0/17]", 605812917], + [187, 7, 9316, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `emit_matched_template_node` is too high. [43/7]", 605812917], + [187, 7, 9316, "Metrics/MethodLength: Method has too many lines. [151/10]", 605812917], + [187, 7, 9316, "Metrics/PerceivedComplexity: Perceived complexity for `emit_matched_template_node` is too high. [45/8]", 605812917], + [269, 121, 22, "Layout/LineLength: Line is too long. [142/120]", 2775680224], + [301, 121, 10, "Layout/LineLength: Line is too long. [130/120]", 249577804], + [331, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 2267103911], + [361, 121, 27, "Layout/LineLength: Line is too long. [147/120]", 988398654], + [373, 7, 6908, "Metrics/AbcSize: Assignment Branch Condition size for `emit_node` is too high. [<44, 90, 54> 113.8/17]", 2848614159], + [373, 7, 6908, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `emit_node` is too high. [38/7]", 2848614159], + [373, 7, 6908, "Metrics/MethodLength: Method has too many lines. [135/10]", 2848614159], + [373, 7, 6908, "Metrics/PerceivedComplexity: Perceived complexity for `emit_node` is too high. [44/8]", 2848614159], + [388, 121, 25, "Layout/LineLength: Line is too long. [145/120]", 3628174615], + [475, 121, 15, "Layout/LineLength: Line is too long. [135/120]", 650150522], + [480, 15, 379, "Metrics/BlockNesting: Avoid more than 3 levels of block nesting.", 3006808047], + [519, 121, 7, "Layout/LineLength: Line is too long. [127/120]", 2020907649], + [536, 7, 1166, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `filter_previous_destination_owned_template_leading_comments` is too high. [8/7]", 2076094754], + [536, 7, 1166, "Metrics/MethodLength: Method has too many lines. [15/10]", 2076094754], + [536, 71, 13, "Lint/UnusedMethodArgument: Unused method argument - `template_node`.", 1616609802], + [587, 7, 973, "Metrics/MethodLength: Method has too many lines. [15/10]", 1892360110], + [587, 60, 172, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [7/5]", 2784840176], + [588, 121, 5, "Layout/LineLength: Line is too long. [125/120]", 169966263], + [614, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2087656651], + [627, 7, 873, "Metrics/AbcSize: Assignment Branch Condition size for `previous_template_gap_already_precedes_leading_comments?` is too high. [<5, 19, 11> 22.52/17]", 268778340], + [627, 7, 873, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `previous_template_gap_already_precedes_leading_comments?` is too high. [9/7]", 268778340], + [627, 7, 873, "Metrics/MethodLength: Method has too many lines. [13/10]", 268778340], + [627, 7, 873, "Metrics/PerceivedComplexity: Perceived complexity for `previous_template_gap_already_precedes_leading_comments?` is too high. [9/8]", 268778340], + [636, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 618947799], + [696, 7, 457, "Metrics/MethodLength: Method has too many lines. [11/10]", 349820622], + [724, 7, 758, "Metrics/AbcSize: Assignment Branch Condition size for `partial_same_line_node?` is too high. [<8, 31, 5> 32.4/17]", 1768803955], + [775, 7, 597, "Metrics/MethodLength: Method has too many lines. [12/10]", 2742538822], + [775, 40, 67, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 725821220], + [792, 7, 552, "Metrics/MethodLength: Method has too many lines. [12/10]", 4255654885], + [815, 7, 845, "Metrics/MethodLength: Method has too many lines. [13/10]", 3468050888], + [846, 7, 1097, "Metrics/AbcSize: Assignment Branch Condition size for `filter_emitted_template_leading_comments` is too high. [<6, 18, 3> 19.21/17]", 2091395187], + [846, 7, 1097, "Metrics/MethodLength: Method has too many lines. [17/10]", 2091395187], + [882, 7, 822, "Metrics/MethodLength: Method has too many lines. [13/10]", 3499946440], + [899, 7, 1359, "Metrics/AbcSize: Assignment Branch Condition size for `collapse_matched_template_leading_prefix` is too high. [<7, 22, 10> 25.16/17]", 3976364089], + [899, 7, 1359, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `collapse_matched_template_leading_prefix` is too high. [9/7]", 3976364089], + [899, 7, 1359, "Metrics/MethodLength: Method has too many lines. [21/10]", 3976364089], + [899, 7, 1359, "Metrics/PerceivedComplexity: Perceived complexity for `collapse_matched_template_leading_prefix` is too high. [9/8]", 3976364089], + [943, 121, 37, "Layout/LineLength: Line is too long. [157/120]", 3703011298], + [947, 7, 746, "Metrics/MethodLength: Method has too many lines. [17/10]", 3532927627] + ], + "lib/prism/merge/partial_template_merger.rb:2303997532": [ + [14, 7, 826, "Metrics/MethodLength: Method has too many lines. [14/10]", 713706122], + [14, 21, 329, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [12/5]", 2768355468], + [55, 7, 487, "Metrics/MethodLength: Method has too many lines. [11/10]", 447766477], + [75, 7, 520, "Metrics/AbcSize: Assignment Branch Condition size for `node_to_text` is too high. [<1, 19, 6> 19.95/17]", 1593952791], + [84, 46, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765] + ], + "lib/prism/merge/recursive_merge_policy.rb:4204303290": [ + [5, 5, 26, "Style/Documentation: Missing top-level documentation comment for `class Prism::Merge::RecursiveMergePolicy`.", 1329613257], + [12, 7, 1132, "Metrics/AbcSize: Assignment Branch Condition size for `should_merge?` is too high. [<4, 25, 15> 29.43/17]", 4123619949], + [12, 7, 1132, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `should_merge?` is too high. [14/7]", 4123619949], + [12, 7, 1132, "Metrics/MethodLength: Method has too many lines. [20/10]", 4123619949], + [12, 7, 1132, "Metrics/PerceivedComplexity: Perceived complexity for `should_merge?` is too high. [13/8]", 4123619949], + [47, 7, 398, "Metrics/MethodLength: Method has too many lines. [18/10]", 385694759] + ], + "lib/prism/merge/recursive_node_body_merger.rb:1132596837": [ + [5, 5, 29, "Style/Documentation: Missing top-level documentation comment for `class Prism::Merge::RecursiveNodeBodyMerger`.", 3703318859], + [5, 5, 18505, "Metrics/ClassLength: Class has too many lines. [333/100]", 3196902308], + [12, 7, 12756, "Metrics/AbcSize: Assignment Branch Condition size for `merge` is too high. [<78, 262, 90> 287.8/17]", 1909933362], + [12, 7, 12756, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `merge` is too high. [70/7]", 1909933362], + [12, 7, 12756, "Metrics/MethodLength: Method has too many lines. [215/10]", 1909933362], + [12, 7, 12756, "Metrics/PerceivedComplexity: Perceived complexity for `merge` is too high. [75/8]", 1909933362], + [27, 121, 10, "Layout/LineLength: Line is too long. [130/120]", 929875726], + [62, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 518709914], + [67, 121, 10, "Layout/LineLength: Line is too long. [130/120]", 366676207], + [266, 7, 1221, "Metrics/AbcSize: Assignment Branch Condition size for `remap_inner_unresolved_review_state!` is too high. [<8, 22, 6> 24.17/17]", 3210674006], + [266, 7, 1221, "Metrics/MethodLength: Method has too many lines. [21/10]", 3210674006], + [293, 7, 1121, "Metrics/AbcSize: Assignment Branch Condition size for `remap_inner_unresolved_case` is too high. [<6, 24, 0> 24.74/17]", 3468635549], + [293, 7, 1121, "Metrics/MethodLength: Method has too many lines. [15/10]", 3468635549], + [376, 7, 826, "Metrics/AbcSize: Assignment Branch Condition size for `emit_trailing_layout_gap_lines` is too high. [<6, 18, 9> 21/17]", 2158299973], + [376, 7, 826, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `emit_trailing_layout_gap_lines` is too high. [8/7]", 2158299973], + [376, 7, 826, "Metrics/MethodLength: Method has too many lines. [17/10]", 2158299973], + [376, 7, 826, "Metrics/PerceivedComplexity: Perceived complexity for `emit_trailing_layout_gap_lines` is too high. [9/8]", 2158299973] + ], + "lib/prism/merge/ruby_doc_surface_analyzer.rb:3389668357": [ + [7, 5, 7100, "Metrics/ClassLength: Class has too many lines. [162/100]", 77379508], + [50, 7, 1408, "Metrics/AbcSize: Assignment Branch Condition size for `build_doc_comment_surface` is too high. [<10, 25, 5> 27.39/17]", 2414553577], + [50, 7, 1408, "Metrics/MethodLength: Method has too many lines. [28/10]", 2414553577], + [91, 7, 1256, "Metrics/AbcSize: Assignment Branch Condition size for `build_example_surface` is too high. [<4, 23, 2> 23.43/17]", 4074178203], + [91, 7, 1256, "Metrics/MethodLength: Method has too many lines. [25/10]", 4074178203], + [131, 7, 555, "Metrics/AbcSize: Assignment Branch Condition size for `doc_comment_entries` is too high. [<8, 18, 6> 20.59/17]", 358090808] + ], + "lib/prism/merge/scaffold_chunk_remover.rb:1404116850": [ + [34, 7, 2064, "Metrics/AbcSize: Assignment Branch Condition size for `call` is too high. [<21, 62, 22> 69.06/17]", 3983172586], + [34, 7, 2064, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `call` is too high. [21/7]", 3983172586], + [34, 7, 2064, "Metrics/MethodLength: Method has too many lines. [39/10]", 3983172586], + [34, 7, 2064, "Metrics/PerceivedComplexity: Perceived complexity for `call` is too high. [21/8]", 3983172586] + ], + "lib/prism/merge/smart_merger.rb:3814529034": [ + [48, 5, 42561, "Metrics/ClassLength: Class has too many lines. [603/100]", 3828655257], + [96, 7, 2032, "Metrics/MethodLength: Method has too many lines. [24/10]", 4118525224], + [96, 21, 595, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [18/5]", 1562155096], + [171, 7, 1325, "Metrics/AbcSize: Assignment Branch Condition size for `merge_with_debug` is too high. [<3, 24, 19> 30.76/17]", 605983530], + [171, 7, 1325, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `merge_with_debug` is too high. [20/7]", 605983530], + [171, 7, 1325, "Metrics/MethodLength: Method has too many lines. [27/10]", 605983530], + [171, 7, 1325, "Metrics/PerceivedComplexity: Perceived complexity for `merge_with_debug` is too high. [20/8]", 605983530], + [310, 7, 664, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `frozen_node?` is too high. [8/7]", 2577924190], + [352, 7, 508, "Metrics/MethodLength: Method has too many lines. [13/10]", 1368018500], + [442, 7, 1155, "Metrics/AbcSize: Assignment Branch Condition size for `build_signature_map` is too high. [<11, 16, 8> 21/17]", 3956321005], + [442, 7, 1155, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `build_signature_map` is too high. [8/7]", 3956321005], + [442, 7, 1155, "Metrics/MethodLength: Method has too many lines. [16/10]", 3956321005], + [483, 7, 2731, "Metrics/AbcSize: Assignment Branch Condition size for `preference_for_node` is too high. [<7, 22, 20> 30.55/17]", 1325207598], + [483, 7, 2731, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `preference_for_node` is too high. [21/7]", 1325207598], + [483, 7, 2731, "Metrics/MethodLength: Method has too many lines. [25/10]", 1325207598], + [483, 7, 2731, "Metrics/PerceivedComplexity: Perceived complexity for `preference_for_node` is too high. [21/8]", 1325207598], + [659, 32, 73, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 2261515417], + [670, 35, 79, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 1350141395], + [681, 42, 63, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 2615605084], + [852, 35, 213, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [8/5]", 720547751] + ], + "lib/prism/merge/source_line_lookup.rb:1098479933": [ + [5, 5, 23, "Style/Documentation: Missing top-level documentation comment for `module Prism::Merge::SourceLineLookup`.", 2168434862] + ], + "lib/prism/merge/top_level_merge_runner.rb:1106437552": [ + [38, 5, 61468, "Metrics/ClassLength: Class has too many lines. [1156/100]", 150648557], + [66, 7, 5196, "Metrics/AbcSize: Assignment Branch Condition size for `merge` is too high. [<22, 68, 9> 72.03/17]", 176450457], + [66, 7, 5196, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `merge` is too high. [9/7]", 176450457], + [66, 7, 5196, "Metrics/MethodLength: Method has too many lines. [75/10]", 176450457], + [66, 7, 5196, "Metrics/PerceivedComplexity: Perceived complexity for `merge` is too high. [10/8]", 176450457], + [162, 7, 2023, "Metrics/AbcSize: Assignment Branch Condition size for `start_runtime_session!` is too high. [<5, 48, 1> 48.27/17]", 2943824289], + [162, 7, 2023, "Metrics/MethodLength: Method has too many lines. [44/10]", 2943824289], + [212, 7, 1765, "Metrics/AbcSize: Assignment Branch Condition size for `complete_runtime_session!` is too high. [<2, 21, 9> 22.93/17]", 2968004900], + [212, 7, 1765, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `complete_runtime_session!` is too high. [8/7]", 2968004900], + [212, 7, 1765, "Metrics/MethodLength: Method has too many lines. [36/10]", 2968004900], + [212, 7, 1765, "Metrics/PerceivedComplexity: Perceived complexity for `complete_runtime_session!` is too high. [10/8]", 2968004900], + [229, 121, 11, "Layout/LineLength: Line is too long. [131/120]", 3907470478], + [254, 7, 584, "Metrics/MethodLength: Method has too many lines. [14/10]", 1615217394], + [272, 7, 589, "Metrics/AbcSize: Assignment Branch Condition size for `runtime_document_surface` is too high. [<1, 19, 1> 19.05/17]", 1835005228], + [272, 7, 589, "Metrics/MethodLength: Method has too many lines. [12/10]", 1835005228], + [288, 7, 3192, "Metrics/AbcSize: Assignment Branch Condition size for `register_discovered_surface_operations!` is too high. [<12, 60, 9> 61.85/17]", 3059111269], + [288, 7, 3192, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `register_discovered_surface_operations!` is too high. [10/7]", 3059111269], + [288, 7, 3192, "Metrics/MethodLength: Method has too many lines. [65/10]", 3059111269], + [288, 7, 3192, "Metrics/PerceivedComplexity: Perceived complexity for `register_discovered_surface_operations!` is too high. [10/8]", 3059111269], + [297, 9, 2237, "Metrics/BlockLength: Block has too many lines. [44/25]", 809738986], + [399, 7, 1643, "Metrics/AbcSize: Assignment Branch Condition size for `execute_child_operations!` is too high. [<5, 33, 5> 33.75/17]", 1049305146], + [399, 7, 1643, "Metrics/MethodLength: Method has too many lines. [36/10]", 1049305146], + [400, 9, 1570, "Metrics/BlockLength: Block has too many lines. [29/25]", 1597985402], + [404, 9, 31, "Style/MultilineBlockChain: Avoid multi-line chains of blocks.", 3553388257], + [448, 7, 631, "Metrics/MethodLength: Method has too many lines. [15/10]", 1652116821], + [466, 7, 1306, "Metrics/AbcSize: Assignment Branch Condition size for `merge_runtime_surface` is too high. [<2, 18, 4> 18.55/17]", 1347264970], + [466, 7, 1306, "Metrics/MethodLength: Method has too many lines. [29/10]", 1347264970], + [500, 7, 1393, "Metrics/AbcSize: Assignment Branch Condition size for `merge_runtime_doc_comment_surface` is too high. [<4, 23, 5> 23.87/17]", 3745645404], + [500, 7, 1393, "Metrics/MethodLength: Method has too many lines. [29/10]", 3745645404], + [534, 7, 826, "Metrics/AbcSize: Assignment Branch Condition size for `apply_runtime_doc_children` is too high. [<5, 24, 7> 25.5/17]", 1386022126], + [534, 7, 826, "Metrics/MethodLength: Method has too many lines. [15/10]", 1386022126], + [542, 16, 27, "Style/MultilineBlockChain: Avoid multi-line chains of blocks.", 1443167664], + [546, 9, 24, "Style/MultilineBlockChain: Avoid multi-line chains of blocks.", 644874689], + [554, 7, 1438, "Metrics/AbcSize: Assignment Branch Condition size for `apply_runtime_example_child` is too high. [<10, 44, 10> 46.22/17]", 2594444962], + [554, 7, 1438, "Metrics/MethodLength: Method has too many lines. [25/10]", 2594444962], + [556, 121, 11, "Layout/LineLength: Line is too long. [131/120]", 3651736697], + [599, 7, 518, "Metrics/MethodLength: Method has too many lines. [11/10]", 523939757], + [623, 7, 753, "Metrics/MethodLength: Method has too many lines. [15/10]", 3406860674], + [683, 7, 1514, "Metrics/AbcSize: Assignment Branch Condition size for `compute_similarity_pairs` is too high. [<17, 42, 11> 46.63/17]", 103276977], + [683, 7, 1514, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `compute_similarity_pairs` is too high. [11/7]", 103276977], + [683, 7, 1514, "Metrics/MethodLength: Method has too many lines. [27/10]", 103276977], + [683, 7, 1514, "Metrics/PerceivedComplexity: Perceived complexity for `compute_similarity_pairs` is too high. [11/8]", 103276977], + [735, 7, 545, "Metrics/MethodLength: Method has too many lines. [12/10]", 398381329], + [763, 7, 586, "Metrics/MethodLength: Method has too many lines. [11/10]", 1559638959], + [843, 7, 640, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `collect_nested_signatures` is too high. [10/7]", 3947424552], + [843, 7, 640, "Metrics/MethodLength: Method has too many lines. [13/10]", 3947424552], + [843, 7, 640, "Metrics/PerceivedComplexity: Perceived complexity for `collect_nested_signatures` is too high. [10/8]", 3947424552], + [845, 12, 9, "Style/NumericPredicate: Use `depth.positive?` instead of `depth > 0`.", 2180768870], + [869, 7, 1297, "Metrics/AbcSize: Assignment Branch Condition size for `nested_statement_children` is too high. [<2, 50, 17> 52.85/17]", 3818826989], + [869, 7, 1297, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `nested_statement_children` is too high. [17/7]", 3818826989], + [869, 7, 1297, "Metrics/MethodLength: Method has too many lines. [19/10]", 3818826989], + [869, 7, 1297, "Metrics/PerceivedComplexity: Perceived complexity for `nested_statement_children` is too high. [15/8]", 3818826989], + [877, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 3315454453], + [882, 93, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], + [883, 89, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], + [884, 93, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], + [899, 7, 754, "Metrics/AbcSize: Assignment Branch Condition size for `prepare_comment_augmenters!` is too high. [<1, 19, 0> 19.03/17]", 311364642], + [899, 7, 754, "Metrics/MethodLength: Method has too many lines. [12/10]", 311364642], + [1003, 7, 1707, "Metrics/AbcSize: Assignment Branch Condition size for `retained_owner_plan` is too high. [<16, 40, 12> 44.72/17]", 375532236], + [1003, 7, 1707, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `retained_owner_plan` is too high. [13/7]", 375532236], + [1003, 7, 1707, "Metrics/MethodLength: Method has too many lines. [33/10]", 375532236], + [1003, 7, 1707, "Metrics/PerceivedComplexity: Perceived complexity for `retained_owner_plan` is too high. [13/8]", 375532236], + [1003, 55, 17, "Lint/UnusedMethodArgument: Unused method argument - `dest_by_signature`.", 379778684], + [1024, 9, 250, "Style/CombinableLoops: Combine this loop with the previous loop.", 3315024098], + [1031, 121, 5, "Layout/LineLength: Line is too long. [125/120]", 180543822], + [1048, 7, 4811, "Metrics/AbcSize: Assignment Branch Condition size for `process_dest_node` is too high. [<23, 71, 16> 76.33/17]", 329713352], + [1048, 7, 4811, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `process_dest_node` is too high. [13/7]", 329713352], + [1048, 7, 4811, "Metrics/MethodLength: Method has too many lines. [90/10]", 329713352], + [1048, 7, 4811, "Metrics/PerceivedComplexity: Perceived complexity for `process_dest_node` is too high. [17/8]", 329713352], + [1048, 28, 279, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [9/5]", 2321512478], + [1190, 7, 757, "Metrics/MethodLength: Method has too many lines. [19/10]", 3306507447], + [1228, 44, 189, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 215272527], + [1259, 7, 888, "Metrics/MethodLength: Method has too many lines. [17/10]", 2638200013], + [1259, 31, 189, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [9/5]", 50070642], + [1281, 7, 719, "Metrics/MethodLength: Method has too many lines. [13/10]", 530865591], + [1299, 7, 1393, "Metrics/AbcSize: Assignment Branch Condition size for `process_non_recursive_match` is too high. [<10, 23, 7> 26.04/17]", 324106576], + [1299, 7, 1393, "Metrics/MethodLength: Method has too many lines. [29/10]", 324106576], + [1333, 7, 1106, "Metrics/AbcSize: Assignment Branch Condition size for `process_unresolved_non_recursive_match` is too high. [<3, 19, 3> 19.47/17]", 1476652897], + [1333, 7, 1106, "Metrics/MethodLength: Method has too many lines. [26/10]", 1476652897], + [1374, 7, 1935, "Metrics/AbcSize: Assignment Branch Condition size for `record_unresolved_match_case!` is too high. [<4, 26, 3> 26.48/17]", 456739474], + [1374, 7, 1935, "Metrics/MethodLength: Method has too many lines. [37/10]", 456739474], + [1459, 7, 1067, "Metrics/AbcSize: Assignment Branch Condition size for `advance_last_output_dest_line` is too high. [<6, 19, 6> 20.81/17]", 331135500], + [1459, 7, 1067, "Metrics/MethodLength: Method has too many lines. [11/10]", 331135500], + [1459, 40, 181, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 2038823112] + ], + "lib/prism/merge/wrapper_comment_support.rb:3046735928": [ + [5, 5, 27, "Style/Documentation: Missing top-level documentation comment for `class Prism::Merge::WrapperCommentSupport`.", 2211657316], + [5, 5, 17765, "Metrics/ClassLength: Class has too many lines. [358/100]", 370100972], + [14, 7, 3072, "Metrics/AbcSize: Assignment Branch Condition size for `filtered_leading_comments_for` is too high. [<26, 58, 27> 69.06/17]", 934788024], + [14, 7, 3072, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `filtered_leading_comments_for` is too high. [24/7]", 934788024], + [14, 7, 3072, "Metrics/MethodLength: Method has too many lines. [48/10]", 934788024], + [14, 7, 3072, "Metrics/PerceivedComplexity: Perceived complexity for `filtered_leading_comments_for` is too high. [27/8]", 934788024], + [24, 121, 10, "Layout/LineLength: Line is too long. [130/120]", 366676207], + [65, 11, 68, "Style/MultilineBlockChain: Avoid multi-line chains of blocks.", 2360366291], + [74, 73, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], + [95, 7, 1446, "Metrics/AbcSize: Assignment Branch Condition size for `emit_leading_comments` is too high. [<8, 16, 13> 22.11/17]", 86315238], + [95, 7, 1446, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `emit_leading_comments` is too high. [9/7]", 86315238], + [95, 7, 1446, "Metrics/MethodLength: Method has too many lines. [31/10]", 86315238], + [95, 7, 1446, "Metrics/PerceivedComplexity: Perceived complexity for `emit_leading_comments` is too high. [11/8]", 86315238], + [95, 32, 73, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 2261515417], + [98, 9, 1234, "Metrics/BlockLength: Block has too many lines. [28/25]", 357181412], + [134, 7, 953, "Metrics/MethodLength: Method has too many lines. [19/10]", 3183807785], + [134, 35, 79, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 1350141395], + [162, 7, 1228, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `emit_comment_region` is too high. [10/7]", 2201645681], + [162, 7, 1228, "Metrics/MethodLength: Method has too many lines. [31/10]", 2201645681], + [162, 7, 1228, "Metrics/PerceivedComplexity: Perceived complexity for `emit_comment_region` is too high. [11/8]", 2201645681], + [162, 30, 67, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 191987245], + [163, 29, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], + [202, 7, 777, "Metrics/MethodLength: Method has too many lines. [18/10]", 4073303022], + [202, 30, 68, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 3851519454], + [208, 9, 8, "Style/MultilineBlockChain: Avoid multi-line chains of blocks.", 359222635], + [226, 7, 1080, "Metrics/MethodLength: Method has too many lines. [27/10]", 296167644], + [226, 42, 63, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 2615605084], + [260, 7, 689, "Metrics/AbcSize: Assignment Branch Condition size for `append_inline_comment_entries` is too high. [<7, 19, 8> 21.77/17]", 1575903523], + [260, 7, 689, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `append_inline_comment_entries` is too high. [8/7]", 1575903523], + [260, 7, 689, "Metrics/MethodLength: Method has too many lines. [16/10]", 1575903523], + [260, 7, 689, "Metrics/PerceivedComplexity: Perceived complexity for `append_inline_comment_entries` is too high. [9/8]", 1575903523], + [288, 7, 607, "Metrics/AbcSize: Assignment Branch Condition size for `line_inline_comment_entries` is too high. [<3, 18, 7> 19.54/17]", 2131701672], + [288, 7, 607, "Metrics/MethodLength: Method has too many lines. [12/10]", 2131701672], + [338, 7, 1023, "Metrics/MethodLength: Method has too many lines. [19/10]", 2409125040], + [363, 7, 854, "Metrics/AbcSize: Assignment Branch Condition size for `runtime_doc_comment_operation_for` is too high. [<4, 24, 13> 27.59/17]", 1109173425], + [363, 7, 854, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `runtime_doc_comment_operation_for` is too high. [10/7]", 1109173425], + [363, 7, 854, "Metrics/MethodLength: Method has too many lines. [11/10]", 1109173425], + [363, 7, 854, "Metrics/PerceivedComplexity: Perceived complexity for `runtime_doc_comment_operation_for` is too high. [10/8]", 1109173425], + [373, 121, 10, "Layout/LineLength: Line is too long. [130/120]", 1843406524], + [381, 7, 755, "Metrics/AbcSize: Assignment Branch Condition size for `build_runtime_leading_region` is too high. [<5, 18, 4> 19.1/17]", 3130034424], + [381, 7, 755, "Metrics/MethodLength: Method has too many lines. [14/10]", 3130034424], + [411, 7, 850, "Metrics/AbcSize: Assignment Branch Condition size for `runtime_line_numbers_for` is too high. [<6, 26, 6> 27.35/17]", 966446340] + ], + "prism-merge.gemspec:2052428369": [ + [128, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 2821357214], + [143, 121, 50, "Layout/LineLength: Line is too long. [170/120]", 3888612416], + [144, 121, 29, "Layout/LineLength: Line is too long. [149/120]", 981994949], + [151, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 4229808912] + ], + "spec/fixtures/reproducible/04_gemspec_duplication/destination.rb:971498360": [ + [25, 1, 8292, "Metrics/BlockLength: Block has too many lines. [110/25]", 1251580584], + [32, 121, 317, "Layout/LineLength: Line is too long. [437/120]", 1870252497], + [184, 121, 34, "Layout/LineLength: Line is too long. [154/120]", 4147388508], + [199, 121, 50, "Layout/LineLength: Line is too long. [170/120]", 3888612416], + [200, 121, 29, "Layout/LineLength: Line is too long. [149/120]", 981994949], + [207, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 4229808912] + ], + "spec/fixtures/reproducible/04_gemspec_duplication/template.rb:1741222365": [ + [19, 1, 4121, "Metrics/BlockLength: Block has too many lines. [71/25]", 547880907], + [26, 121, 317, "Layout/LineLength: Line is too long. [437/120]", 1870252497] + ], + "spec/fixtures/reproducible/05_gemspec_orphan_duplication/destination.rb:2573186797": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177634] + ], + "spec/fixtures/reproducible/05_gemspec_orphan_duplication/result.rb:2573186797": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177634] + ], + "spec/fixtures/reproducible/05_gemspec_orphan_duplication/template.rb:1825302441": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177634] + ], + "spec/fixtures_integration_spec.rb:3086023041": [ + [7, 1, 23038, "Metrics/BlockLength: Block has too many lines. [521/25]", 1776221706], + [66, 121, 26, "Layout/LineLength: Line is too long. [146/120]", 1448895712], + [72, 3, 1302, "Metrics/BlockLength: Block has too many lines. [30/25]", 2973641144], + [106, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5858795], + [113, 3, 1679, "Metrics/BlockLength: Block has too many lines. [38/25]", 2954972744], + [419, 3, 7512, "Metrics/BlockLength: Block has too many lines. [149/25]", 2278210376] + ], + "spec/reproducible_merge_spec.rb:2334824632": [ + [6, 1, 2420, "Metrics/BlockLength: Block has too many lines. [50/25]", 2207509489], + [39, 121, 13, "Layout/LineLength: Line is too long. [133/120]", 1416718429] + ] +} diff --git a/gems/prism-merge/.simplecov b/gems/prism-merge/.simplecov index 1b64f178c..18ac648cf 100644 --- a/gems/prism-merge/.simplecov +++ b/gems/prism-merge/.simplecov @@ -10,5 +10,5 @@ # If the values for minimum coverage need to change, they should be changed both there, # and in 2 places in .github/workflows/coverage.yml. SimpleCov.configure do - cover "lib/**/*.rb", "lib/**/*.rake", "exe/*.rb" + cover 'lib/**/*.rb', 'lib/**/*.rake', 'exe/*.rb' end diff --git a/gems/prism-merge/Gemfile b/gems/prism-merge/Gemfile index 19e6dfab4..93936ddf8 100644 --- a/gems/prism-merge/Gemfile +++ b/gems/prism-merge/Gemfile @@ -6,7 +6,7 @@ # kettle-jem will then preserve content between those markers across template runs. # kettle-jem:unfreeze -source "https://gem.coop" +source 'https://gem.coop' git_source(:codeberg) { |repo_name| "https://codeberg.org/#{repo_name}" } git_source(:gitlab) { |repo_name| "https://gitlab.com/#{repo_name}" } @@ -19,57 +19,53 @@ git_source(:gitlab) { |repo_name| "https://gitlab.com/#{repo_name}" } gemspec # Local workspace dependency wiring for *_local.gemfile overrides -nomono_requirements = ["~> 1.0", ">= 1.0.8"] -gem "nomono", *nomono_requirements, require: false # ruby >= 2.2 +nomono_requirements = ['~> 1.0', '>= 1.0.8'] +gem 'nomono', *nomono_requirements, require: false # ruby >= 2.2 # Direct sibling dependencies (env-switched via STRUCTUREDMERGE_DEV) direct_sibling_gems = %w[ ruby-merge ] -direct_sibling_dev = ENV.fetch("STRUCTUREDMERGE_DEV", "") +direct_sibling_dev = ENV.fetch('STRUCTUREDMERGE_DEV', '') direct_sibling_local = !direct_sibling_dev.empty? && !%w[false 0 no off].include?(direct_sibling_dev.downcase) -direct_sibling_templating = ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? +direct_sibling_templating = ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero?) - direct_sibling_dev_was_set = ENV.key?("STRUCTUREDMERGE_DEV") - direct_sibling_dev_original = ENV.fetch("STRUCTUREDMERGE_DEV", nil) + (direct_sibling_local || + ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) + direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') + direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) begin nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path("Gemfile.lock", __dir__) + nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == "nomono" } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - if nomono_locked - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] - end - end - Kernel.send(:gem, "nomono", *nomono_activation_requirements) - require "nomono/bundler" - if direct_sibling_templating && !direct_sibling_local - ENV["STRUCTUREDMERGE_DEV"] = File.expand_path("..", __dir__) + Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked end + Kernel.send(:gem, 'nomono', *nomono_activation_requirements) + require 'nomono/bundler' + ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local eval_nomono_gems( gems: direct_sibling_gems, - prefix: "STRUCTUREDMERGE", - path_env: "STRUCTUREDMERGE_DEV", - root: ["src", "my", "structuredmerge"] + prefix: 'STRUCTUREDMERGE', + path_env: 'STRUCTUREDMERGE_DEV', + root: %w[src my structuredmerge] ) rescue LoadError - warn "Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies." + warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' ensure if direct_sibling_templating && !direct_sibling_local if direct_sibling_dev_was_set - ENV["STRUCTUREDMERGE_DEV"] = direct_sibling_dev_original + ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original else - ENV.delete("STRUCTUREDMERGE_DEV") + ENV.delete('STRUCTUREDMERGE_DEV') end end end @@ -156,28 +152,28 @@ if direct_sibling_gems.any? && end # Use released TSLP with the Ruby ABI platform-gem fix. -gem "tree_sitter_language_pack", "~> 1.13", ">= 1.13.3" +gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' # Templating (env-switched: STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local paths) -eval_gemfile "gemfiles/modular/templating.gemfile" if ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? +eval_gemfile 'gemfiles/modular/templating.gemfile' if ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? # Debugging -eval_gemfile "gemfiles/modular/debug.gemfile" +eval_gemfile 'gemfiles/modular/debug.gemfile' # Code Coverage (env-switched: KETTLE_DEV_DEV=true for local paths) -eval_gemfile "gemfiles/modular/coverage.gemfile" +eval_gemfile 'gemfiles/modular/coverage.gemfile' # Linting -eval_gemfile "gemfiles/modular/style.gemfile" +eval_gemfile 'gemfiles/modular/style.gemfile' # Documentation -eval_gemfile "gemfiles/modular/documentation.gemfile" +eval_gemfile 'gemfiles/modular/documentation.gemfile' # Optional -eval_gemfile "gemfiles/modular/optional.gemfile" +eval_gemfile 'gemfiles/modular/optional.gemfile' ### Std Lib Extracted Gems -eval_gemfile "gemfiles/modular/x_std_libs.gemfile" +eval_gemfile 'gemfiles/modular/x_std_libs.gemfile' # See unlocked_deps appraisal for more details on irb inclusion -gem "irb", "~> 1.17" # ruby >= 2.7 +gem 'irb', '~> 1.17' # ruby >= 2.7 diff --git a/gems/prism-merge/Gemfile.lock b/gems/prism-merge/Gemfile.lock index 92689ecf7..0f7f99933 100644 --- a/gems/prism-merge/Gemfile.lock +++ b/gems/prism-merge/Gemfile.lock @@ -7,7 +7,7 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge specs: ruby-merge (7.1.0) ast-merge (= 7.1.0) @@ -100,7 +100,7 @@ GEM rdoc (>= 4.0.0) reline (>= 0.4.2) json (2.21.1) - kettle-dev (2.3.8) + kettle-dev (2.3.9) emoji_regex (>= 15.0) kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) @@ -470,7 +470,7 @@ CHECKSUMS io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 - kettle-dev (2.3.8) sha256=9d716ff21c660a730cb4e8d41e2e2f0630a28167a354b6e2924e242102aef72c + kettle-dev (2.3.9) kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f kettle-soup-cover (3.0.4) kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 diff --git a/gems/prism-merge/Rakefile b/gems/prism-merge/Rakefile index 3ceda1211..0413b973d 100644 --- a/gems/prism-merge/Rakefile +++ b/gems/prism-merge/Rakefile @@ -130,23 +130,23 @@ end ### DUPLICATE DRIFT TASKS begin - require "kettle/drift" + require 'kettle/drift' Kettle::Drift.install_tasks rescue LoadError - desc("(stub) kettle:drift:check is unavailable") - task("kettle:drift:check") do + desc('(stub) kettle:drift:check is unavailable') + task('kettle:drift:check') do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc("(stub) kettle:drift:update is unavailable") - task("kettle:drift:update") do + desc('(stub) kettle:drift:update is unavailable') + task('kettle:drift:update') do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc("(stub) kettle:drift:force_update is unavailable") - task("kettle:drift:force_update") do + desc('(stub) kettle:drift:force_update is unavailable') + task('kettle:drift:force_update') do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc("(stub) kettle:drift is unavailable") - task("kettle:drift" => "kettle:drift:update") + desc('(stub) kettle:drift is unavailable') + task('kettle:drift' => 'kettle:drift:update') end ### TEMPLATING TASKS diff --git a/gems/prism-merge/bin/yard b/gems/prism-merge/bin/yard index a7e8b6eed..5d516ad6f 100755 --- a/gems/prism-merge/bin/yard +++ b/gems/prism-merge/bin/yard @@ -12,4 +12,4 @@ # `yard` / `bin/yard`. Keep this binstub as a handoff to the task so # humans and tools that reach for `bin/yard` still run the full docs # workflow with post-processing hooks. -exec("bundle", "exec", "rake", "yard") +exec('bundle', 'exec', 'rake', 'yard') diff --git a/gems/prism-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile b/gems/prism-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile index dec650815..b8392fab0 100644 --- a/gems/prism-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile +++ b/gems/prism-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.1 -gem "benchmark", "~> 0.5", ">= 0.5.0" # Removed from Std Lib in Ruby 4.0 +gem 'benchmark', '~> 0.5', '>= 0.5.0' # Removed from Std Lib in Ruby 4.0 diff --git a/gems/prism-merge/gemfiles/modular/benchmark/vHEAD.gemfile b/gems/prism-merge/gemfiles/modular/benchmark/vHEAD.gemfile index e1eb20c5e..af214aafa 100644 --- a/gems/prism-merge/gemfiles/modular/benchmark/vHEAD.gemfile +++ b/gems/prism-merge/gemfiles/modular/benchmark/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.1 -gem "benchmark", github: "ruby/benchmark", branch: "master" +gem 'benchmark', github: 'ruby/benchmark', branch: 'master' diff --git a/gems/prism-merge/gemfiles/modular/cgi/r4/v0.5.gemfile b/gems/prism-merge/gemfiles/modular/cgi/r4/v0.5.gemfile index 19ed967c3..17ad97260 100644 --- a/gems/prism-merge/gemfiles/modular/cgi/r4/v0.5.gemfile +++ b/gems/prism-merge/gemfiles/modular/cgi/r4/v0.5.gemfile @@ -1 +1 @@ -gem "cgi", "~> 0.5" +gem 'cgi', '~> 0.5' diff --git a/gems/prism-merge/gemfiles/modular/cgi/vHEAD.gemfile b/gems/prism-merge/gemfiles/modular/cgi/vHEAD.gemfile index ef8b816ce..650fbf033 100644 --- a/gems/prism-merge/gemfiles/modular/cgi/vHEAD.gemfile +++ b/gems/prism-merge/gemfiles/modular/cgi/vHEAD.gemfile @@ -1 +1 @@ -gem "cgi", ">= 0.5" +gem 'cgi', '>= 0.5' diff --git a/gems/prism-merge/gemfiles/modular/coverage.gemfile b/gems/prism-merge/gemfiles/modular/coverage.gemfile index 52d737872..b93014b6b 100644 --- a/gems/prism-merge/gemfiles/modular/coverage.gemfile +++ b/gems/prism-merge/gemfiles/modular/coverage.gemfile @@ -4,11 +4,11 @@ # Set KETTLE_DEV_DEV=true for local development with path-based dependencies. # When false (default / CI), remote released gems are used. -if ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false").zero? +if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? # Coverage (remote/released) platform :mri do - gem "kettle-soup-cover", "~> 3.0", ">= 3.0.3", require: false + gem 'kettle-soup-cover', '~> 3.0', '>= 3.0.3', require: false end else - eval_gemfile "coverage_local.gemfile" + eval_gemfile 'coverage_local.gemfile' end diff --git a/gems/prism-merge/gemfiles/modular/coverage_local.gemfile b/gems/prism-merge/gemfiles/modular/coverage_local.gemfile index 3e06a44ef..ab0e08fd4 100644 --- a/gems/prism-merge/gemfiles/modular/coverage_local.gemfile +++ b/gems/prism-merge/gemfiles/modular/coverage_local.gemfile @@ -11,21 +11,19 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] -nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) +nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] +nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == "nomono" } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - if nomono_locked - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] - end + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked end -Kernel.send(:gem, "nomono", *nomono_activation_requirements) -require "nomono/bundler" +Kernel.send(:gem, 'nomono', *nomono_activation_requirements) +require 'nomono/bundler' local_gems = %w[kettle-dev kettle-test kettle-soup-cover kettle-drift] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) @@ -35,21 +33,21 @@ local_gems_to_eval = local_gems - %w[prism-merge] - declared_gems platform :mri do eval_nomono_gems( gems: local_gems_to_eval, - prefix: "KETTLE_DEV", - path_env: "KETTLE_DEV_DEV", - vendored_gems_env: "VENDORED_GEMS", - vendor_gem_dir_env: "VENDOR_GEM_DIR", - debug_env: "KETTLE_DEV_DEBUG" + prefix: 'KETTLE_DEV', + path_env: 'KETTLE_DEV_DEV', + vendored_gems_env: 'VENDORED_GEMS', + vendor_gem_dir_env: 'VENDOR_GEM_DIR', + debug_env: 'KETTLE_DEV_DEBUG' ) - if ENV.fetch("GALTZO_FLOSS_DEV", "false").casecmp("false") != 0 + if ENV.fetch('GALTZO_FLOSS_DEV', 'false').casecmp('false') != 0 eval_nomono_gems( gems: %w[turbo_tests2], - prefix: "GALTZO_FLOSS", - path_env: "GALTZO_FLOSS_DEV", - vendored_gems_env: "GALTZO_FLOSS_VENDORED_GEMS", - vendor_gem_dir_env: "GALTZO_FLOSS_VENDOR_GEM_DIR", - debug_env: "GALTZO_FLOSS_DEBUG" + prefix: 'GALTZO_FLOSS', + path_env: 'GALTZO_FLOSS_DEV', + vendored_gems_env: 'GALTZO_FLOSS_VENDORED_GEMS', + vendor_gem_dir_env: 'GALTZO_FLOSS_VENDOR_GEM_DIR', + debug_env: 'GALTZO_FLOSS_DEBUG' ) end end diff --git a/gems/prism-merge/gemfiles/modular/debug.gemfile b/gems/prism-merge/gemfiles/modular/debug.gemfile index 4e15b1a3a..eed8d4d1e 100644 --- a/gems/prism-merge/gemfiles/modular/debug.gemfile +++ b/gems/prism-merge/gemfiles/modular/debug.gemfile @@ -13,10 +13,10 @@ platform :mri do # Debugging - Ensure ENV["DEBUG"] == "true" to use debuggers within spec suite # Use binding.break, binding.b, or debugger in code - gem "debug", ">= 1.1" # ruby >= 2.7 + gem 'debug', '>= 1.1' # ruby >= 2.7 # Dev Console - Binding.pry - Irb replacement # gem "pry", "~> 0.14" # ruby >= 2.0 end -gem "gem_bench", "~> 2.0", ">= 2.0.5" +gem 'gem_bench', '~> 2.0', '>= 2.0.5' diff --git a/gems/prism-merge/gemfiles/modular/documentation.gemfile b/gems/prism-merge/gemfiles/modular/documentation.gemfile index d8215416e..9d4535f12 100644 --- a/gems/prism-merge/gemfiles/modular/documentation.gemfile +++ b/gems/prism-merge/gemfiles/modular/documentation.gemfile @@ -7,20 +7,20 @@ # # Documentation -gem "kramdown", "~> 2.5", ">= 2.5.2", require: false # Ruby >= 2.5 -gem "kramdown-parser-gfm", "~> 1.1", require: false # Ruby >= 2.3 -gem "yaml-converter", "~> 0.2", ">= 0.2.3", require: false # Ruby >= 3.2 -gem "yard", "~> 0.9", ">= 0.9.45", require: false -gem "yard-junk", "~> 0.1", ">= 0.1.0", require: false # Ruby >= 3.1 -gem "yard-relative_markdown_links", "~> 0.6", require: false +gem 'kramdown', '~> 2.5', '>= 2.5.2', require: false # Ruby >= 2.5 +gem 'kramdown-parser-gfm', '~> 1.1', require: false # Ruby >= 2.3 +gem 'yaml-converter', '~> 0.2', '>= 0.2.3', require: false # Ruby >= 3.2 +gem 'yard', '~> 0.9', '>= 0.9.45', require: false +gem 'yard-junk', '~> 0.1', '>= 0.1.0', require: false # Ruby >= 3.1 +gem 'yard-relative_markdown_links', '~> 0.6', require: false -if ENV.fetch("GALTZO_FLOSS_DEV", "false").casecmp("false").zero? - gem "yard-fence", "~> 0.9", ">= 0.9.6", require: false # Ruby >= 3.2 - gem "yard-timekeeper", "~> 0.2", ">= 0.2.4", require: false - gem "yard-yaml", "~> 0.2", ">= 0.2.3", require: false +if ENV.fetch('GALTZO_FLOSS_DEV', 'false').casecmp('false').zero? + gem 'yard-fence', '~> 0.9', '>= 0.9.6', require: false # Ruby >= 3.2 + gem 'yard-timekeeper', '~> 0.2', '>= 0.2.4', require: false + gem 'yard-yaml', '~> 0.2', '>= 0.2.3', require: false else - eval_gemfile "documentation_local.gemfile" + eval_gemfile 'documentation_local.gemfile' end # Std Lib extractions -gem "rdoc", "~> 6.11", require: false unless ENV.fetch("KJ_FRAMEWORK_MATRIX_GEM", "") == "rdoc" +gem 'rdoc', '~> 6.11', require: false unless ENV.fetch('KJ_FRAMEWORK_MATRIX_GEM', '') == 'rdoc' diff --git a/gems/prism-merge/gemfiles/modular/documentation_local.gemfile b/gems/prism-merge/gemfiles/modular/documentation_local.gemfile index b30a6b15d..b596a588d 100644 --- a/gems/prism-merge/gemfiles/modular/documentation_local.gemfile +++ b/gems/prism-merge/gemfiles/modular/documentation_local.gemfile @@ -11,21 +11,19 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] -nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) +nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] +nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == "nomono" } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - if nomono_locked - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] - end + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked end -Kernel.send(:gem, "nomono", *nomono_activation_requirements) -require "nomono/bundler" +Kernel.send(:gem, 'nomono', *nomono_activation_requirements) +require 'nomono/bundler' local_gems = %w[yard-fence yard-timekeeper yard-yaml] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) @@ -34,9 +32,9 @@ local_gems_to_eval = local_gems - %w[prism-merge] - declared_gems # export GALTZO_FLOSS_DEV=/path/to/galtzo-floss eval_nomono_gems( gems: local_gems_to_eval, - prefix: "GALTZO_FLOSS", - path_env: "GALTZO_FLOSS_DEV", - vendored_gems_env: "GALTZO_FLOSS_VENDORED_GEMS", - vendor_gem_dir_env: "GALTZO_FLOSS_VENDOR_GEM_DIR", - debug_env: "GALTZO_FLOSS_DEBUG" + prefix: 'GALTZO_FLOSS', + path_env: 'GALTZO_FLOSS_DEV', + vendored_gems_env: 'GALTZO_FLOSS_VENDORED_GEMS', + vendor_gem_dir_env: 'GALTZO_FLOSS_VENDOR_GEM_DIR', + debug_env: 'GALTZO_FLOSS_DEBUG' ) diff --git a/gems/prism-merge/gemfiles/modular/erb/r2/v3.0.gemfile b/gems/prism-merge/gemfiles/modular/erb/r2/v3.0.gemfile index c03bd8d85..7c83a239b 100644 --- a/gems/prism-merge/gemfiles/modular/erb/r2/v3.0.gemfile +++ b/gems/prism-merge/gemfiles/modular/erb/r2/v3.0.gemfile @@ -1 +1 @@ -gem "erb", "~> 3.0" # ruby >= 2.7.0 +gem 'erb', '~> 3.0' # ruby >= 2.7.0 diff --git a/gems/prism-merge/gemfiles/modular/erb/r3/v5.0.gemfile b/gems/prism-merge/gemfiles/modular/erb/r3/v5.0.gemfile index 1bd029cc1..ec7ff451f 100644 --- a/gems/prism-merge/gemfiles/modular/erb/r3/v5.0.gemfile +++ b/gems/prism-merge/gemfiles/modular/erb/r3/v5.0.gemfile @@ -1 +1 @@ -gem "erb", "~> 6.0", ">= 6.0.6" # ruby >= 3.2.0 +gem 'erb', '~> 6.0', '>= 6.0.6' # ruby >= 3.2.0 diff --git a/gems/prism-merge/gemfiles/modular/erb/r4/v5.0.gemfile b/gems/prism-merge/gemfiles/modular/erb/r4/v5.0.gemfile index 1bd029cc1..ec7ff451f 100644 --- a/gems/prism-merge/gemfiles/modular/erb/r4/v5.0.gemfile +++ b/gems/prism-merge/gemfiles/modular/erb/r4/v5.0.gemfile @@ -1 +1 @@ -gem "erb", "~> 6.0", ">= 6.0.6" # ruby >= 3.2.0 +gem 'erb', '~> 6.0', '>= 6.0.6' # ruby >= 3.2.0 diff --git a/gems/prism-merge/gemfiles/modular/erb/vHEAD.gemfile b/gems/prism-merge/gemfiles/modular/erb/vHEAD.gemfile index 48fee4218..ea0101185 100644 --- a/gems/prism-merge/gemfiles/modular/erb/vHEAD.gemfile +++ b/gems/prism-merge/gemfiles/modular/erb/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 3.2 -gem "erb", github: "ruby/erb", branch: "master" +gem 'erb', github: 'ruby/erb', branch: 'master' diff --git a/gems/prism-merge/gemfiles/modular/json/truffleruby_22_3.gemfile b/gems/prism-merge/gemfiles/modular/json/truffleruby_22_3.gemfile index b0e69ab11..9b2f8d96a 100644 --- a/gems/prism-merge/gemfiles/modular/json/truffleruby_22_3.gemfile +++ b/gems/prism-merge/gemfiles/modular/json/truffleruby_22_3.gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -if RUBY_ENGINE == "truffleruby" && RUBY_ENGINE_VERSION.start_with?("22.3") +if RUBY_ENGINE == 'truffleruby' && RUBY_ENGINE_VERSION.start_with?('22.3') # TruffleRuby 22.3 ships the json default gem from its emulated MRI Ruby. - gem "json", "= 2.5.1" + gem 'json', '= 2.5.1' end diff --git a/gems/prism-merge/gemfiles/modular/json/truffleruby_23_0.gemfile b/gems/prism-merge/gemfiles/modular/json/truffleruby_23_0.gemfile index 7b2660a2b..d787a5ef4 100644 --- a/gems/prism-merge/gemfiles/modular/json/truffleruby_23_0.gemfile +++ b/gems/prism-merge/gemfiles/modular/json/truffleruby_23_0.gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -if RUBY_ENGINE == "truffleruby" && RUBY_ENGINE_VERSION.start_with?("23.0") +if RUBY_ENGINE == 'truffleruby' && RUBY_ENGINE_VERSION.start_with?('23.0') # TruffleRuby 23.0 ships the json default gem from its emulated MRI Ruby. - gem "json", "= 2.6.1" + gem 'json', '= 2.6.1' end diff --git a/gems/prism-merge/gemfiles/modular/json/truffleruby_23_1.gemfile b/gems/prism-merge/gemfiles/modular/json/truffleruby_23_1.gemfile index dfa21f2e4..d78486b0e 100644 --- a/gems/prism-merge/gemfiles/modular/json/truffleruby_23_1.gemfile +++ b/gems/prism-merge/gemfiles/modular/json/truffleruby_23_1.gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -if RUBY_ENGINE == "truffleruby" && RUBY_ENGINE_VERSION.start_with?("23.1") +if RUBY_ENGINE == 'truffleruby' && RUBY_ENGINE_VERSION.start_with?('23.1') # TruffleRuby 23.1 ships the json default gem from its emulated MRI Ruby. - gem "json", "= 2.6.3" + gem 'json', '= 2.6.3' end diff --git a/gems/prism-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile b/gems/prism-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile index 42e9d9bd4..e27f1bbae 100644 --- a/gems/prism-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile +++ b/gems/prism-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 -gem "mutex_m", "~> 0.2" +gem 'mutex_m', '~> 0.2' diff --git a/gems/prism-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile b/gems/prism-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile index 42e9d9bd4..e27f1bbae 100644 --- a/gems/prism-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile +++ b/gems/prism-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 -gem "mutex_m", "~> 0.2" +gem 'mutex_m', '~> 0.2' diff --git a/gems/prism-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile b/gems/prism-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile index 42e9d9bd4..e27f1bbae 100644 --- a/gems/prism-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile +++ b/gems/prism-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 -gem "mutex_m", "~> 0.2" +gem 'mutex_m', '~> 0.2' diff --git a/gems/prism-merge/gemfiles/modular/mutex_m/vHEAD.gemfile b/gems/prism-merge/gemfiles/modular/mutex_m/vHEAD.gemfile index 8af3b6fca..9dac2f6cb 100644 --- a/gems/prism-merge/gemfiles/modular/mutex_m/vHEAD.gemfile +++ b/gems/prism-merge/gemfiles/modular/mutex_m/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 (dependency of omniauth) -gem "mutex_m", github: "ruby/mutex_m", branch: "master" +gem 'mutex_m', github: 'ruby/mutex_m', branch: 'master' diff --git a/gems/prism-merge/gemfiles/modular/optional.gemfile b/gems/prism-merge/gemfiles/modular/optional.gemfile index 80bc45196..9ea429538 100644 --- a/gems/prism-merge/gemfiles/modular/optional.gemfile +++ b/gems/prism-merge/gemfiles/modular/optional.gemfile @@ -9,8 +9,8 @@ # Optional dependencies are not depended on directly, but may be used if present. # Required for curated binstubs generated by kettle-jem install -gem "rbs", ">= 3.0", require: false # ruby >= 3.1 +gem 'rbs', '>= 3.0', require: false # ruby >= 3.1 # Required for kettle-pre-release # URL parsing with Unicode support (falls back to URI if not available) -gem "addressable", ">= 2.8", "< 3" # ruby >= 2.2 +gem 'addressable', '>= 2.8', '< 3' # ruby >= 2.2 diff --git a/gems/prism-merge/gemfiles/modular/rspec.gemfile b/gems/prism-merge/gemfiles/modular/rspec.gemfile index 72fdf8b7f..2af210a41 100644 --- a/gems/prism-merge/gemfiles/modular/rspec.gemfile +++ b/gems/prism-merge/gemfiles/modular/rspec.gemfile @@ -1,4 +1,4 @@ -gem "rspec_junit_formatter", - github: "pboling/rspec_junit_formatter", - branch: "main", - ref: "9e6bcaaedd49477b62878ed568dc4ada5cc7cb5e" +gem 'rspec_junit_formatter', + github: 'pboling/rspec_junit_formatter', + branch: 'main', + ref: '9e6bcaaedd49477b62878ed568dc4ada5cc7cb5e' diff --git a/gems/prism-merge/gemfiles/modular/runtime_heads.gemfile b/gems/prism-merge/gemfiles/modular/runtime_heads.gemfile index 02f134c7f..ebf17c529 100644 --- a/gems/prism-merge/gemfiles/modular/runtime_heads.gemfile +++ b/gems/prism-merge/gemfiles/modular/runtime_heads.gemfile @@ -8,4 +8,4 @@ # Test against HEAD of runtime dependencies so we can proactively file bugs -eval_gemfile("x_std_libs/vHEAD.gemfile") +eval_gemfile('x_std_libs/vHEAD.gemfile') diff --git a/gems/prism-merge/gemfiles/modular/stringio/r2/v3.0.gemfile b/gems/prism-merge/gemfiles/modular/stringio/r2/v3.0.gemfile index e85bb18ee..3616f4e3a 100644 --- a/gems/prism-merge/gemfiles/modular/stringio/r2/v3.0.gemfile +++ b/gems/prism-merge/gemfiles/modular/stringio/r2/v3.0.gemfile @@ -2,4 +2,4 @@ # NOT SEMVER # Version 3.0.7 dropped support for Ruby <= 2.7 # Version 3.0.0 dropped support for Ruby <= 2.4 -gem "stringio", ">= 3.0" +gem 'stringio', '>= 3.0' diff --git a/gems/prism-merge/gemfiles/modular/stringio/r3/v3.0.gemfile b/gems/prism-merge/gemfiles/modular/stringio/r3/v3.0.gemfile index e85bb18ee..3616f4e3a 100644 --- a/gems/prism-merge/gemfiles/modular/stringio/r3/v3.0.gemfile +++ b/gems/prism-merge/gemfiles/modular/stringio/r3/v3.0.gemfile @@ -2,4 +2,4 @@ # NOT SEMVER # Version 3.0.7 dropped support for Ruby <= 2.7 # Version 3.0.0 dropped support for Ruby <= 2.4 -gem "stringio", ">= 3.0" +gem 'stringio', '>= 3.0' diff --git a/gems/prism-merge/gemfiles/modular/stringio/r4/v3.0.gemfile b/gems/prism-merge/gemfiles/modular/stringio/r4/v3.0.gemfile index e85bb18ee..3616f4e3a 100644 --- a/gems/prism-merge/gemfiles/modular/stringio/r4/v3.0.gemfile +++ b/gems/prism-merge/gemfiles/modular/stringio/r4/v3.0.gemfile @@ -2,4 +2,4 @@ # NOT SEMVER # Version 3.0.7 dropped support for Ruby <= 2.7 # Version 3.0.0 dropped support for Ruby <= 2.4 -gem "stringio", ">= 3.0" +gem 'stringio', '>= 3.0' diff --git a/gems/prism-merge/gemfiles/modular/stringio/vHEAD.gemfile b/gems/prism-merge/gemfiles/modular/stringio/vHEAD.gemfile index 5f2a74126..78f5f5d8a 100644 --- a/gems/prism-merge/gemfiles/modular/stringio/vHEAD.gemfile +++ b/gems/prism-merge/gemfiles/modular/stringio/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 (dependency of omniauth) -gem "stringio", github: "ruby/stringio", branch: "master" +gem 'stringio', github: 'ruby/stringio', branch: 'master' diff --git a/gems/prism-merge/gemfiles/modular/style.gemfile b/gems/prism-merge/gemfiles/modular/style.gemfile index 35de4dcd6..4dbcc02c0 100644 --- a/gems/prism-merge/gemfiles/modular/style.gemfile +++ b/gems/prism-merge/gemfiles/modular/style.gemfile @@ -9,23 +9,23 @@ # Style tasks run on the latest Ruby; RuboCop-LTS selects the compatibility # rules for the configured Ruby floor independently from task dependency floors. -gem "reek", "~> 6.5", ">= 6.5.0" +gem 'reek', '~> 6.5', '>= 6.5.0' platform :mri do - gem "appraisal2-rubocop", "~> 1.0", ">= 1.0.0", require: false - gem "rubocop-gradual", "~> 0.4", ">= 0.4.0" - gem "rubocop-minitest", "~> 0.40", ">= 0.40.0" - gem "rubocop-on-rbs", "~> 2.0", ">= 2.0.0" # ruby >= 3.2.0 + gem 'appraisal2-rubocop', '~> 1.0', '>= 1.0.0', require: false + gem 'rubocop-gradual', '~> 0.4', '>= 0.4.0' + gem 'rubocop-minitest', '~> 0.40', '>= 0.40.0' + gem 'rubocop-on-rbs', '~> 2.0', '>= 2.0.0' # ruby >= 3.2.0 # gem "rubocop", "~> 1.73", ">= 1.73.2" # constrained by standard - gem "rubocop-packaging", "~> 0.6", ">= 0.6.0" - gem "standard", "~> 1.56", ">= 1.56.0" + gem 'rubocop-packaging', '~> 0.6', '>= 0.6.0' + gem 'standard', '~> 1.56', '>= 1.56.0' - if ENV.fetch("RUBOCOP_LTS_LOCAL", "false").casecmp("false").zero? + if ENV.fetch('RUBOCOP_LTS_LOCAL', 'false').casecmp('false').zero? declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) - gem "rubocop-lts", "~> 24.2", ">= 24.2.1" unless declared_gems.include?("rubocop-lts") - gem "rubocop-lts-rspec", "~> 1.0", ">= 1.0.5" unless declared_gems.include?("rubocop-lts-rspec") - gem "rubocop-ruby3_2", "~> 3.0", ">= 3.0.6" unless declared_gems.include?("rubocop-ruby3_2") + gem 'rubocop-lts', '~> 24.2', '>= 24.2.1' unless declared_gems.include?('rubocop-lts') + gem 'rubocop-lts-rspec', '~> 1.0', '>= 1.0.5' unless declared_gems.include?('rubocop-lts-rspec') + gem 'rubocop-ruby3_2', '~> 3.0', '>= 3.0.6' unless declared_gems.include?('rubocop-ruby3_2') else - eval_gemfile("style_local.gemfile") + eval_gemfile('style_local.gemfile') end end diff --git a/gems/prism-merge/gemfiles/modular/style_local.gemfile b/gems/prism-merge/gemfiles/modular/style_local.gemfile index c3716a6a6..e8e9d2ad4 100644 --- a/gems/prism-merge/gemfiles/modular/style_local.gemfile +++ b/gems/prism-merge/gemfiles/modular/style_local.gemfile @@ -14,21 +14,19 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] -nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) +nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] +nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == "nomono" } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - if nomono_locked - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] - end + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked end -Kernel.send(:gem, "nomono", *nomono_activation_requirements) -require "nomono/bundler" +Kernel.send(:gem, 'nomono', *nomono_activation_requirements) +require 'nomono/bundler' local_gems = %w[rubocop-lts rubocop-lts-rspec rubocop-ruby3_2 standard-rubocop-lts] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) @@ -38,11 +36,11 @@ local_gems_to_eval = local_gems - %w[prism-merge] - declared_gems platform :mri do eval_nomono_gems( gems: local_gems_to_eval, - prefix: "RUBOCOP_LTS", - path_env: "RUBOCOP_LTS_LOCAL", - vendored_gems_env: "VENDORED_GEMS", - vendor_gem_dir_env: "VENDOR_GEM_DIR", - debug_env: "RUBOCOP_LTS_DEBUG", - root: ["src", "rubocop-lts"] + prefix: 'RUBOCOP_LTS', + path_env: 'RUBOCOP_LTS_LOCAL', + vendored_gems_env: 'VENDORED_GEMS', + vendor_gem_dir_env: 'VENDOR_GEM_DIR', + debug_env: 'RUBOCOP_LTS_DEBUG', + root: %w[src rubocop-lts] ) end diff --git a/gems/prism-merge/gemfiles/modular/templating.gemfile b/gems/prism-merge/gemfiles/modular/templating.gemfile index 47138ffbb..a672de184 100644 --- a/gems/prism-merge/gemfiles/modular/templating.gemfile +++ b/gems/prism-merge/gemfiles/modular/templating.gemfile @@ -1,18 +1,18 @@ # frozen_string_literal: true -structuredmerge_remote = ENV.fetch("STRUCTUREDMERGE_DEV", "false").casecmp("false").zero? -kettle_remote = ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false").zero? +structuredmerge_remote = ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false').zero? +kettle_remote = ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? if structuredmerge_remote # Parser dependencies for released installs. - gem "tree_sitter_language_pack", "~> 1.13", ">= 1.13.3" + gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' # Merge recipes for released installs. - gem "kettle-jem", ">= 7.0" + gem 'kettle-jem', '>= 7.0' end if kettle_remote # Template/plugin checks for released installs. - gem "kettle-drift", "~> 1.0", ">= 1.0.6", require: false + gem 'kettle-drift', '~> 1.0', '>= 1.0.6', require: false end # Set STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local development with path-based dependencies. @@ -21,4 +21,4 @@ end # # Set KETTLE_DEV_DEV=/path/to/my for local development with Kettle plugin gems. # When false (default / CI), released Kettle plugin gems are used. -eval_gemfile "templating_local.gemfile" unless structuredmerge_remote && kettle_remote +eval_gemfile 'templating_local.gemfile' unless structuredmerge_remote && kettle_remote diff --git a/gems/prism-merge/gemfiles/modular/templating_local.gemfile b/gems/prism-merge/gemfiles/modular/templating_local.gemfile index b36adff95..e6d5d15bc 100644 --- a/gems/prism-merge/gemfiles/modular/templating_local.gemfile +++ b/gems/prism-merge/gemfiles/modular/templating_local.gemfile @@ -12,21 +12,19 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] -nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) +nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] +nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == "nomono" } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - if nomono_locked - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] - end + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked end -Kernel.send(:gem, "nomono", *nomono_activation_requirements) -require "nomono/bundler" +Kernel.send(:gem, 'nomono', *nomono_activation_requirements) +require 'nomono/bundler' structuredmerge_local_gems = %w[ tree_haver @@ -69,25 +67,25 @@ structuredmerge_local_gems_to_eval = structuredmerge_local_gems - %w[prism-merge kettle_dev_local_gems_to_eval = kettle_dev_local_gems - %w[prism-merge] - declared_gems platform :mri do - if ENV.fetch("STRUCTUREDMERGE_DEV", "false").casecmp("false") != 0 + if ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false') != 0 eval_nomono_gems( gems: structuredmerge_local_gems_to_eval, - prefix: "STRUCTUREDMERGE", - path_env: "STRUCTUREDMERGE_DEV", - vendored_gems_env: "VENDORED_GEMS", - vendor_gem_dir_env: "VENDOR_GEM_DIR", - debug_env: "STRUCTUREDMERGE_DEBUG" + prefix: 'STRUCTUREDMERGE', + path_env: 'STRUCTUREDMERGE_DEV', + vendored_gems_env: 'VENDORED_GEMS', + vendor_gem_dir_env: 'VENDOR_GEM_DIR', + debug_env: 'STRUCTUREDMERGE_DEBUG' ) end - if ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false") != 0 + if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false') != 0 eval_nomono_gems( gems: kettle_dev_local_gems_to_eval, - prefix: "KETTLE_DEV", - path_env: "KETTLE_DEV_DEV", - vendored_gems_env: "VENDORED_GEMS", - vendor_gem_dir_env: "VENDOR_GEM_DIR", - debug_env: "KETTLE_DEV_DEBUG" + prefix: 'KETTLE_DEV', + path_env: 'KETTLE_DEV_DEV', + vendored_gems_env: 'VENDORED_GEMS', + vendor_gem_dir_env: 'VENDOR_GEM_DIR', + debug_env: 'KETTLE_DEV_DEBUG' ) end end diff --git a/gems/prism-merge/gemfiles/modular/webrick/r4/v1.9.gemfile b/gems/prism-merge/gemfiles/modular/webrick/r4/v1.9.gemfile index eaab4a473..b1329ba84 100644 --- a/gems/prism-merge/gemfiles/modular/webrick/r4/v1.9.gemfile +++ b/gems/prism-merge/gemfiles/modular/webrick/r4/v1.9.gemfile @@ -1 +1 @@ -gem "webrick", "~> 1.9" +gem 'webrick', '~> 1.9' diff --git a/gems/prism-merge/gemfiles/modular/webrick/vHEAD.gemfile b/gems/prism-merge/gemfiles/modular/webrick/vHEAD.gemfile index 8a789b634..c7e6f81a1 100644 --- a/gems/prism-merge/gemfiles/modular/webrick/vHEAD.gemfile +++ b/gems/prism-merge/gemfiles/modular/webrick/vHEAD.gemfile @@ -1 +1 @@ -gem "webrick", ">= 1.9" +gem 'webrick', '>= 1.9' diff --git a/gems/prism-merge/gemfiles/modular/x_std_libs.gemfile b/gems/prism-merge/gemfiles/modular/x_std_libs.gemfile index 77aad43f2..b1f43c097 100644 --- a/gems/prism-merge/gemfiles/modular/x_std_libs.gemfile +++ b/gems/prism-merge/gemfiles/modular/x_std_libs.gemfile @@ -1,12 +1,12 @@ ### Std Lib Extracted Gems ruby_version = Gem::Version.new(RUBY_VERSION) -if ruby_version >= Gem::Version.new("4.0") - eval_gemfile "x_std_libs/r4/libs.gemfile" -elsif ruby_version >= Gem::Version.new("3.2") - eval_gemfile "x_std_libs/r3/libs.gemfile" -elsif ruby_version >= Gem::Version.new("3.1") - eval_gemfile "x_std_libs/r3.1/libs.gemfile" +if ruby_version >= Gem::Version.new('4.0') + eval_gemfile 'x_std_libs/r4/libs.gemfile' +elsif ruby_version >= Gem::Version.new('3.2') + eval_gemfile 'x_std_libs/r3/libs.gemfile' +elsif ruby_version >= Gem::Version.new('3.1') + eval_gemfile 'x_std_libs/r3.1/libs.gemfile' else - eval_gemfile "x_std_libs/r2/libs.gemfile" + eval_gemfile 'x_std_libs/r2/libs.gemfile' end diff --git a/gems/prism-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile b/gems/prism-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile index 441c4f03a..16a5e3d70 100644 --- a/gems/prism-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile +++ b/gems/prism-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile @@ -1,3 +1,3 @@ -eval_gemfile "../../erb/r2/v3.0.gemfile" -eval_gemfile "../../mutex_m/r2/v0.3.gemfile" -eval_gemfile "../../stringio/r2/v3.0.gemfile" +eval_gemfile '../../erb/r2/v3.0.gemfile' +eval_gemfile '../../mutex_m/r2/v0.3.gemfile' +eval_gemfile '../../stringio/r2/v3.0.gemfile' diff --git a/gems/prism-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile b/gems/prism-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile index c293a3ddd..220ff95c1 100644 --- a/gems/prism-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile +++ b/gems/prism-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile @@ -1,3 +1,3 @@ -eval_gemfile "../../erb/r3/v5.0.gemfile" -eval_gemfile "../../mutex_m/r3/v0.3.gemfile" -eval_gemfile "../../stringio/r3/v3.0.gemfile" +eval_gemfile '../../erb/r3/v5.0.gemfile' +eval_gemfile '../../mutex_m/r3/v0.3.gemfile' +eval_gemfile '../../stringio/r3/v3.0.gemfile' diff --git a/gems/prism-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile b/gems/prism-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile index eb5574247..e2f6501eb 100644 --- a/gems/prism-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile +++ b/gems/prism-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile @@ -1,6 +1,6 @@ -eval_gemfile "../../erb/r4/v5.0.gemfile" -eval_gemfile "../../mutex_m/r4/v0.3.gemfile" -eval_gemfile "../../stringio/r4/v3.0.gemfile" -eval_gemfile "../../benchmark/r4/v0.5.gemfile" -eval_gemfile "../../cgi/r4/v0.5.gemfile" -eval_gemfile "../../webrick/r4/v1.9.gemfile" +eval_gemfile '../../erb/r4/v5.0.gemfile' +eval_gemfile '../../mutex_m/r4/v0.3.gemfile' +eval_gemfile '../../stringio/r4/v3.0.gemfile' +eval_gemfile '../../benchmark/r4/v0.5.gemfile' +eval_gemfile '../../cgi/r4/v0.5.gemfile' +eval_gemfile '../../webrick/r4/v1.9.gemfile' diff --git a/gems/prism-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile b/gems/prism-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile index d4d5b16c9..ab75cccf1 100644 --- a/gems/prism-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile +++ b/gems/prism-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile @@ -1,6 +1,6 @@ -eval_gemfile "../erb/vHEAD.gemfile" -eval_gemfile "../mutex_m/vHEAD.gemfile" -eval_gemfile "../stringio/vHEAD.gemfile" -eval_gemfile "../benchmark/vHEAD.gemfile" -eval_gemfile "../cgi/vHEAD.gemfile" -eval_gemfile "../webrick/vHEAD.gemfile" +eval_gemfile '../erb/vHEAD.gemfile' +eval_gemfile '../mutex_m/vHEAD.gemfile' +eval_gemfile '../stringio/vHEAD.gemfile' +eval_gemfile '../benchmark/vHEAD.gemfile' +eval_gemfile '../cgi/vHEAD.gemfile' +eval_gemfile '../webrick/vHEAD.gemfile' diff --git a/gems/prism-merge/lib/prism/merge/version.rb b/gems/prism-merge/lib/prism/merge/version.rb index c5d5bca42..29398c390 100644 --- a/gems/prism-merge/lib/prism/merge/version.rb +++ b/gems/prism-merge/lib/prism/merge/version.rb @@ -3,7 +3,7 @@ module Prism module Merge module Version - VERSION = "7.1.0" + VERSION = '7.1.0' end VERSION = Version::VERSION # Traditional Constant Location end diff --git a/gems/prism-merge/spec/spec_helper.rb b/gems/prism-merge/spec/spec_helper.rb index 777af4683..a352cc4b0 100644 --- a/gems/prism-merge/spec/spec_helper.rb +++ b/gems/prism-merge/spec/spec_helper.rb @@ -7,16 +7,16 @@ # NOTE: Gemfiles for non-coverage appraisals may not have kettle-soup-cover. # The rescue LoadError handles that scenario. begin - require "kettle-soup-cover" + require 'kettle-soup-cover' if Kettle::Soup::Cover::DO_COV # Requiring simplecov loads the project-local `.simplecov`. - require "simplecov" - require "kettle/soup/cover/config" + require 'simplecov' + require 'kettle/soup/cover/config' SimpleCov.start end -rescue LoadError => error +rescue LoadError => e # check the error message and re-raise when unexpected - raise error unless error.message.include?("kettle") + raise e unless e.message.include?('kettle') end # External RSpec & related config From 14138bd2873f72a1d22e3d4f46198d83460d34c1 Mon Sep 17 00:00:00 2001 From: "Peter H. Boling" Date: Tue, 21 Jul 2026 18:01:31 -0600 Subject: [PATCH 151/188] =?UTF-8?q?=F0=9F=8E=A8=20Template=20bootstrap=20b?= =?UTF-8?q?y=20kettle-jem=20v7.1.0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gems/markdown-merge/Gemfile.lock | 8 +- gems/markly-merge/.kettle-drift.lock | 144 +++++++++++++++++- gems/markly-merge/Gemfile | 72 +++++++-- gems/markly-merge/Rakefile | 18 +-- .../gemfiles/modular/templating.gemfile | 12 +- .../gemfiles/modular/templating_local.gemfile | 44 +++--- gems/markly-merge/lib/markly/merge/version.rb | 2 +- 7 files changed, 239 insertions(+), 61 deletions(-) diff --git a/gems/markdown-merge/Gemfile.lock b/gems/markdown-merge/Gemfile.lock index 466575358..51ae3e302 100644 --- a/gems/markdown-merge/Gemfile.lock +++ b/gems/markdown-merge/Gemfile.lock @@ -7,7 +7,7 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/ast-merge specs: ast-merge (7.1.0) benchmark @@ -16,7 +16,7 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/tree_haver specs: tree_haver (7.1.0) citrus (~> 3.0) @@ -105,7 +105,7 @@ GEM rdoc (>= 4.0.0) reline (>= 0.4.2) json (2.21.1) - kettle-dev (2.3.8) + kettle-dev (2.3.9) emoji_regex (>= 15.0) kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) @@ -488,7 +488,7 @@ CHECKSUMS io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 - kettle-dev (2.3.8) sha256=9d716ff21c660a730cb4e8d41e2e2f0630a28167a354b6e2924e242102aef72c + kettle-dev (2.3.9) kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f kettle-soup-cover (3.0.4) kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 diff --git a/gems/markly-merge/.kettle-drift.lock b/gems/markly-merge/.kettle-drift.lock index bf85fa76f..9a486b4b3 100644 --- a/gems/markly-merge/.kettle-drift.lock +++ b/gems/markly-merge/.kettle-drift.lock @@ -1,10 +1,74 @@ { + "(direct_sibling_local ||\nENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?)": [ + { + "file": "Gemfile", + "lines": [ + 79, + 119 + ] + } + ], + ".find { |spec| spec.name == 'nomono' }\nnomono_locked = nomono_locked_spec &&": [ + { + "file": "Gemfile", + "lines": [ + 90, + 130 + ] + } + ], + "ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?)\ndirect_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV')": [ + { + "file": "Gemfile", + "lines": [ + 80, + 120 + ] + } + ], + "Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version)\nnomono_activation_requirements = [\"= #{nomono_locked_spec.version}\"] if nomono_locked": [ + { + "file": "Gemfile", + "lines": [ + 92, + 132 + ] + } + ], + "Kernel.send(:gem, 'nomono', *nomono_activation_requirements)\nrequire 'nomono/bundler'": [ + { + "file": "Gemfile", + "lines": [ + 95, + 135 + ] + } + ], + "direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV')\ndirect_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil)": [ + { + "file": "Gemfile", + "lines": [ + 81, + 121 + ] + } + ], "eval_nomono_gems(\ngems: direct_sibling_gems,": [ { "file": "Gemfile", "lines": [ 59, - 99 + 99, + 139 + ] + } + ], + "gems: direct_sibling_gems,\nprefix: 'STRUCTUREDMERGE',": [ + { + "file": "Gemfile", + "lines": [ + 100, + 140 ] } ], @@ -13,7 +77,17 @@ "file": "Gemfile", "lines": [ 42, - 86 + 86, + 126 + ] + } + ], + "if direct_sibling_dev_was_set\nENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original": [ + { + "file": "Gemfile", + "lines": [ + 109, + 149 ] } ], @@ -22,7 +96,8 @@ "file": "Gemfile", "lines": [ 34, - 78 + 78, + 118 ] } ], @@ -31,7 +106,17 @@ "file": "Gemfile", "lines": [ 68, - 108 + 108, + 148 + ] + } + ], + "nomono_activation_requirements = nomono_requirements\nnomono_lockfile = File.expand_path('Gemfile.lock', __dir__)": [ + { + "file": "Gemfile", + "lines": [ + 84, + 124 ] } ], @@ -40,7 +125,8 @@ "file": "Gemfile", "lines": [ 47, - 91 + 91, + 131 ] } ], @@ -49,7 +135,53 @@ "file": "Gemfile", "lines": [ 43, - 87 + 87, + 127 + ] + } + ], + "nomono_lockfile = File.expand_path('Gemfile.lock', __dir__)\nif File.file?(nomono_lockfile)": [ + { + "file": "Gemfile", + "lines": [ + 85, + 125 + ] + } + ], + "path_env: 'STRUCTUREDMERGE_DEV',\nroot: %w[src my structuredmerge]": [ + { + "file": "Gemfile", + "lines": [ + 102, + 142 + ] + } + ], + "prefix: 'STRUCTUREDMERGE',\npath_env: 'STRUCTUREDMERGE_DEV',": [ + { + "file": "Gemfile", + "lines": [ + 101, + 141 + ] + } + ], + "require 'nomono/bundler'\nENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local": [ + { + "file": "Gemfile", + "lines": [ + 96, + 136 + ] + } + ], + "rescue LoadError\nwarn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.'": [ + { + "file": "Gemfile", + "lines": [ + 105, + 145 ] } ] diff --git a/gems/markly-merge/Gemfile b/gems/markly-merge/Gemfile index df0ad8be7..9ad2a56fa 100644 --- a/gems/markly-merge/Gemfile +++ b/gems/markly-merge/Gemfile @@ -6,7 +6,7 @@ # kettle-jem will then preserve content between those markers across template runs. # kettle-jem:unfreeze -source 'https://gem.coop' +source "https://gem.coop" git_source(:codeberg) { |repo_name| "https://codeberg.org/#{repo_name}" } git_source(:gitlab) { |repo_name| "https://gitlab.com/#{repo_name}" } @@ -19,17 +19,61 @@ git_source(:gitlab) { |repo_name| "https://gitlab.com/#{repo_name}" } gemspec # Local workspace dependency wiring for *_local.gemfile overrides -nomono_requirements = ['~> 1.0', '>= 1.0.8'] -gem 'nomono', *nomono_requirements, require: false # ruby >= 2.2 +nomono_requirements = ["~> 1.0", ">= 1.0.8"] +gem "nomono", *nomono_requirements, require: false # ruby >= 2.2 # Direct sibling dependencies (env-switched via STRUCTUREDMERGE_DEV) direct_sibling_gems = %w[ markdown-merge ] -direct_sibling_dev = ENV.fetch('STRUCTUREDMERGE_DEV', '') +direct_sibling_dev = ENV.fetch("STRUCTUREDMERGE_DEV", "") direct_sibling_local = !direct_sibling_dev.empty? && !%w[false 0 no off].include?(direct_sibling_dev.downcase) -direct_sibling_templating = ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? +direct_sibling_templating = ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? + +if direct_sibling_gems.any? && + (direct_sibling_local || + ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero?) + direct_sibling_dev_was_set = ENV.key?("STRUCTUREDMERGE_DEV") + direct_sibling_dev_original = ENV.fetch("STRUCTUREDMERGE_DEV", nil) + begin + nomono_activation_requirements = nomono_requirements + nomono_lockfile = File.expand_path("Gemfile.lock", __dir__) + if File.file?(nomono_lockfile) + nomono_locked_spec = Bundler::LockfileParser + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == "nomono" } + nomono_locked = nomono_locked_spec && + Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) + if nomono_locked + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] + end + end + Kernel.send(:gem, "nomono", *nomono_activation_requirements) + require "nomono/bundler" + if direct_sibling_templating && !direct_sibling_local + ENV["STRUCTUREDMERGE_DEV"] = File.expand_path("..", __dir__) + end + + eval_nomono_gems( + gems: direct_sibling_gems, + prefix: "STRUCTUREDMERGE", + path_env: "STRUCTUREDMERGE_DEV", + root: ["src", "my", "structuredmerge"] + ) + rescue LoadError + warn "Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies." + ensure + if direct_sibling_templating && !direct_sibling_local + if direct_sibling_dev_was_set + ENV["STRUCTUREDMERGE_DEV"] = direct_sibling_dev_original + else + ENV.delete("STRUCTUREDMERGE_DEV") + end + end + end +end if direct_sibling_gems.any? && (direct_sibling_local || @@ -112,28 +156,28 @@ if direct_sibling_gems.any? && end # Use released TSLP with the Ruby ABI platform-gem fix. -gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' +gem "tree_sitter_language_pack", "~> 1.13", ">= 1.13.3" # Templating (env-switched: STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local paths) -eval_gemfile 'gemfiles/modular/templating.gemfile' if ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? +eval_gemfile "gemfiles/modular/templating.gemfile" if ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? # Debugging -eval_gemfile 'gemfiles/modular/debug.gemfile' +eval_gemfile "gemfiles/modular/debug.gemfile" # Code Coverage (env-switched: KETTLE_DEV_DEV=true for local paths) -eval_gemfile 'gemfiles/modular/coverage.gemfile' +eval_gemfile "gemfiles/modular/coverage.gemfile" # Linting -eval_gemfile 'gemfiles/modular/style.gemfile' +eval_gemfile "gemfiles/modular/style.gemfile" # Documentation -eval_gemfile 'gemfiles/modular/documentation.gemfile' +eval_gemfile "gemfiles/modular/documentation.gemfile" # Optional -eval_gemfile 'gemfiles/modular/optional.gemfile' +eval_gemfile "gemfiles/modular/optional.gemfile" ### Std Lib Extracted Gems -eval_gemfile 'gemfiles/modular/x_std_libs.gemfile' +eval_gemfile "gemfiles/modular/x_std_libs.gemfile" # See unlocked_deps appraisal for more details on irb inclusion -gem 'irb', '~> 1.17' # ruby >= 2.7 +gem "irb", "~> 1.17" # ruby >= 2.7 diff --git a/gems/markly-merge/Rakefile b/gems/markly-merge/Rakefile index 9946d12a1..319456e08 100644 --- a/gems/markly-merge/Rakefile +++ b/gems/markly-merge/Rakefile @@ -130,23 +130,23 @@ end ### DUPLICATE DRIFT TASKS begin - require 'kettle/drift' + require "kettle/drift" Kettle::Drift.install_tasks rescue LoadError - desc('(stub) kettle:drift:check is unavailable') - task('kettle:drift:check') do + desc("(stub) kettle:drift:check is unavailable") + task("kettle:drift:check") do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc('(stub) kettle:drift:update is unavailable') - task('kettle:drift:update') do + desc("(stub) kettle:drift:update is unavailable") + task("kettle:drift:update") do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc('(stub) kettle:drift:force_update is unavailable') - task('kettle:drift:force_update') do + desc("(stub) kettle:drift:force_update is unavailable") + task("kettle:drift:force_update") do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc('(stub) kettle:drift is unavailable') - task('kettle:drift' => 'kettle:drift:update') + desc("(stub) kettle:drift is unavailable") + task("kettle:drift" => "kettle:drift:update") end ### TEMPLATING TASKS diff --git a/gems/markly-merge/gemfiles/modular/templating.gemfile b/gems/markly-merge/gemfiles/modular/templating.gemfile index a672de184..47138ffbb 100644 --- a/gems/markly-merge/gemfiles/modular/templating.gemfile +++ b/gems/markly-merge/gemfiles/modular/templating.gemfile @@ -1,18 +1,18 @@ # frozen_string_literal: true -structuredmerge_remote = ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false').zero? -kettle_remote = ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? +structuredmerge_remote = ENV.fetch("STRUCTUREDMERGE_DEV", "false").casecmp("false").zero? +kettle_remote = ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false").zero? if structuredmerge_remote # Parser dependencies for released installs. - gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' + gem "tree_sitter_language_pack", "~> 1.13", ">= 1.13.3" # Merge recipes for released installs. - gem 'kettle-jem', '>= 7.0' + gem "kettle-jem", ">= 7.0" end if kettle_remote # Template/plugin checks for released installs. - gem 'kettle-drift', '~> 1.0', '>= 1.0.6', require: false + gem "kettle-drift", "~> 1.0", ">= 1.0.6", require: false end # Set STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local development with path-based dependencies. @@ -21,4 +21,4 @@ end # # Set KETTLE_DEV_DEV=/path/to/my for local development with Kettle plugin gems. # When false (default / CI), released Kettle plugin gems are used. -eval_gemfile 'templating_local.gemfile' unless structuredmerge_remote && kettle_remote +eval_gemfile "templating_local.gemfile" unless structuredmerge_remote && kettle_remote diff --git a/gems/markly-merge/gemfiles/modular/templating_local.gemfile b/gems/markly-merge/gemfiles/modular/templating_local.gemfile index 4b7f13294..c3ddc6d57 100644 --- a/gems/markly-merge/gemfiles/modular/templating_local.gemfile +++ b/gems/markly-merge/gemfiles/modular/templating_local.gemfile @@ -12,19 +12,21 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] -nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) +nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] +nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == "nomono" } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + if nomono_locked + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] + end end -Kernel.send(:gem, 'nomono', *nomono_activation_requirements) -require 'nomono/bundler' +Kernel.send(:gem, "nomono", *nomono_activation_requirements) +require "nomono/bundler" structuredmerge_local_gems = %w[ tree_haver @@ -67,25 +69,25 @@ structuredmerge_local_gems_to_eval = structuredmerge_local_gems - %w[markly-merg kettle_dev_local_gems_to_eval = kettle_dev_local_gems - %w[markly-merge] - declared_gems platform :mri do - if ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false') != 0 + if ENV.fetch("STRUCTUREDMERGE_DEV", "false").casecmp("false") != 0 eval_nomono_gems( gems: structuredmerge_local_gems_to_eval, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - vendored_gems_env: 'VENDORED_GEMS', - vendor_gem_dir_env: 'VENDOR_GEM_DIR', - debug_env: 'STRUCTUREDMERGE_DEBUG' + prefix: "STRUCTUREDMERGE", + path_env: "STRUCTUREDMERGE_DEV", + vendored_gems_env: "VENDORED_GEMS", + vendor_gem_dir_env: "VENDOR_GEM_DIR", + debug_env: "STRUCTUREDMERGE_DEBUG" ) end - if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false') != 0 + if ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false") != 0 eval_nomono_gems( gems: kettle_dev_local_gems_to_eval, - prefix: 'KETTLE_DEV', - path_env: 'KETTLE_DEV_DEV', - vendored_gems_env: 'VENDORED_GEMS', - vendor_gem_dir_env: 'VENDOR_GEM_DIR', - debug_env: 'KETTLE_DEV_DEBUG' + prefix: "KETTLE_DEV", + path_env: "KETTLE_DEV_DEV", + vendored_gems_env: "VENDORED_GEMS", + vendor_gem_dir_env: "VENDOR_GEM_DIR", + debug_env: "KETTLE_DEV_DEBUG" ) end end diff --git a/gems/markly-merge/lib/markly/merge/version.rb b/gems/markly-merge/lib/markly/merge/version.rb index 3bfd8e9b0..b4ff2ffeb 100644 --- a/gems/markly-merge/lib/markly/merge/version.rb +++ b/gems/markly-merge/lib/markly/merge/version.rb @@ -3,7 +3,7 @@ module Markly module Merge module Version - VERSION = '7.1.0' + VERSION = "7.1.0" end VERSION = Version::VERSION # Traditional Constant Location end From b2799339ce2858e61953faa5141b5bb5e5c045bf Mon Sep 17 00:00:00 2001 From: "Peter H. Boling" Date: Tue, 21 Jul 2026 18:02:02 -0600 Subject: [PATCH 152/188] =?UTF-8?q?=F0=9F=8E=A8=20Template=20bootstrap=20b?= =?UTF-8?q?y=20kettle-jem=20v7.1.0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../.kettle-drift.lock | 144 +++++++- .../.rubocop_gradual.lock | 134 ------- gems/ast-crispr-markdown-markly/.simplecov | 8 +- gems/ast-crispr-markdown-markly/Gemfile | 72 +++- gems/ast-crispr-markdown-markly/Gemfile.lock | 30 +- gems/ast-crispr-markdown-markly/Rakefile | 18 +- gems/ast-crispr-markdown-markly/bin/yard | 2 +- .../modular/benchmark/r4/v0.5.gemfile | 2 +- .../gemfiles/modular/benchmark/vHEAD.gemfile | 2 +- .../gemfiles/modular/cgi/r4/v0.5.gemfile | 2 +- .../gemfiles/modular/cgi/vHEAD.gemfile | 2 +- .../gemfiles/modular/coverage.gemfile | 6 +- .../gemfiles/modular/coverage_local.gemfile | 42 ++- .../gemfiles/modular/debug.gemfile | 4 +- .../gemfiles/modular/documentation.gemfile | 24 +- .../modular/documentation_local.gemfile | 30 +- .../gemfiles/modular/erb/r2/v3.0.gemfile | 2 +- .../gemfiles/modular/erb/r3/v5.0.gemfile | 2 +- .../gemfiles/modular/erb/r4/v5.0.gemfile | 2 +- .../gemfiles/modular/erb/vHEAD.gemfile | 2 +- .../modular/json/truffleruby_22_3.gemfile | 4 +- .../modular/json/truffleruby_23_0.gemfile | 4 +- .../modular/json/truffleruby_23_1.gemfile | 4 +- .../gemfiles/modular/mutex_m/r2/v0.3.gemfile | 2 +- .../gemfiles/modular/mutex_m/r3/v0.3.gemfile | 2 +- .../gemfiles/modular/mutex_m/r4/v0.3.gemfile | 2 +- .../gemfiles/modular/mutex_m/vHEAD.gemfile | 2 +- .../gemfiles/modular/optional.gemfile | 4 +- .../gemfiles/modular/rspec.gemfile | 8 +- .../gemfiles/modular/runtime_heads.gemfile | 2 +- .../gemfiles/modular/stringio/r2/v3.0.gemfile | 2 +- .../gemfiles/modular/stringio/r3/v3.0.gemfile | 2 +- .../gemfiles/modular/stringio/r4/v3.0.gemfile | 2 +- .../gemfiles/modular/stringio/vHEAD.gemfile | 2 +- .../gemfiles/modular/style.gemfile | 24 +- .../gemfiles/modular/style_local.gemfile | 32 +- .../gemfiles/modular/templating.gemfile | 12 +- .../gemfiles/modular/templating_local.gemfile | 44 +-- .../gemfiles/modular/webrick/r4/v1.9.gemfile | 2 +- .../gemfiles/modular/webrick/vHEAD.gemfile | 2 +- .../gemfiles/modular/x_std_libs.gemfile | 14 +- .../modular/x_std_libs/r2/libs.gemfile | 6 +- .../modular/x_std_libs/r3/libs.gemfile | 6 +- .../modular/x_std_libs/r4/libs.gemfile | 12 +- .../gemfiles/modular/x_std_libs/vHEAD.gemfile | 12 +- .../lib/ast/crispr/markdown/markly/version.rb | 2 +- .../spec/spec_helper.rb | 13 +- gems/ast-merge/.simplecov | 2 +- gems/ast-merge/Gemfile | 70 ++-- gems/ast-merge/Rakefile | 18 +- gems/ast-merge/bin/yard | 2 +- .../gemfiles/modular/cgi/r4/v0.5.gemfile | 2 +- .../gemfiles/modular/cgi/vHEAD.gemfile | 2 +- .../gemfiles/modular/coverage.gemfile | 6 +- .../gemfiles/modular/coverage_local.gemfile | 42 +-- gems/ast-merge/gemfiles/modular/debug.gemfile | 4 +- .../gemfiles/modular/documentation.gemfile | 24 +- .../modular/documentation_local.gemfile | 30 +- .../gemfiles/modular/erb/r2/v3.0.gemfile | 2 +- .../gemfiles/modular/erb/r3/v5.0.gemfile | 2 +- .../gemfiles/modular/erb/r4/v5.0.gemfile | 2 +- .../gemfiles/modular/erb/vHEAD.gemfile | 2 +- .../modular/json/truffleruby_22_3.gemfile | 4 +- .../modular/json/truffleruby_23_0.gemfile | 4 +- .../modular/json/truffleruby_23_1.gemfile | 4 +- .../gemfiles/modular/mutex_m/r2/v0.3.gemfile | 2 +- .../gemfiles/modular/mutex_m/r3/v0.3.gemfile | 2 +- .../gemfiles/modular/mutex_m/r4/v0.3.gemfile | 2 +- .../gemfiles/modular/mutex_m/vHEAD.gemfile | 2 +- .../gemfiles/modular/optional.gemfile | 4 +- gems/ast-merge/gemfiles/modular/rspec.gemfile | 8 +- .../gemfiles/modular/runtime_heads.gemfile | 2 +- .../gemfiles/modular/stringio/r2/v3.0.gemfile | 2 +- .../gemfiles/modular/stringio/r3/v3.0.gemfile | 2 +- .../gemfiles/modular/stringio/r4/v3.0.gemfile | 2 +- .../gemfiles/modular/stringio/vHEAD.gemfile | 2 +- gems/ast-merge/gemfiles/modular/style.gemfile | 24 +- .../gemfiles/modular/style_local.gemfile | 32 +- .../gemfiles/modular/templating.gemfile | 12 +- .../gemfiles/modular/templating_local.gemfile | 44 ++- .../gemfiles/modular/webrick/r4/v1.9.gemfile | 2 +- .../gemfiles/modular/webrick/vHEAD.gemfile | 2 +- .../gemfiles/modular/x_std_libs.gemfile | 14 +- .../modular/x_std_libs/r2/libs.gemfile | 6 +- .../modular/x_std_libs/r3/libs.gemfile | 6 +- .../modular/x_std_libs/r4/libs.gemfile | 12 +- .../gemfiles/modular/x_std_libs/vHEAD.gemfile | 12 +- gems/ast-merge/lib/ast/merge/version.rb | 2 +- gems/ast-merge/spec/spec_helper.rb | 10 +- gems/json-merge/.kettle-drift.lock | 144 +++++++- gems/json-merge/Gemfile | 72 +++- gems/json-merge/Gemfile.lock | 348 +++++++++++++++++- gems/json-merge/Rakefile | 18 +- .../gemfiles/modular/templating.gemfile | 12 +- .../gemfiles/modular/templating_local.gemfile | 44 +-- gems/json-merge/lib/json/merge/version.rb | 2 +- gems/markdown-merge/Gemfile.lock | 326 +++++++++++++++- gems/markly-merge/.rubocop_gradual.lock | 2 +- gems/markly-merge/.simplecov | 8 +- gems/markly-merge/Gemfile | 70 ++-- gems/markly-merge/Gemfile.lock | 342 +---------------- gems/markly-merge/Rakefile | 18 +- .../gemfiles/modular/templating.gemfile | 12 +- .../gemfiles/modular/templating_local.gemfile | 44 ++- gems/markly-merge/lib/markly/merge/version.rb | 2 +- gems/markly-merge/spec/spec_helper.rb | 7 +- gems/prism-merge/Gemfile.lock | 336 ++++++++++++++++- 107 files changed, 1930 insertions(+), 1060 deletions(-) delete mode 100644 gems/ast-crispr-markdown-markly/.rubocop_gradual.lock diff --git a/gems/ast-crispr-markdown-markly/.kettle-drift.lock b/gems/ast-crispr-markdown-markly/.kettle-drift.lock index 43dfedd67..7cc6a5131 100644 --- a/gems/ast-crispr-markdown-markly/.kettle-drift.lock +++ b/gems/ast-crispr-markdown-markly/.kettle-drift.lock @@ -1,10 +1,74 @@ { + "(direct_sibling_local ||\nENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?)": [ + { + "file": "Gemfile", + "lines": [ + 80, + 120 + ] + } + ], + ".find { |spec| spec.name == 'nomono' }\nnomono_locked = nomono_locked_spec &&": [ + { + "file": "Gemfile", + "lines": [ + 91, + 131 + ] + } + ], + "ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?)\ndirect_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV')": [ + { + "file": "Gemfile", + "lines": [ + 81, + 121 + ] + } + ], + "Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version)\nnomono_activation_requirements = [\"= #{nomono_locked_spec.version}\"] if nomono_locked": [ + { + "file": "Gemfile", + "lines": [ + 93, + 133 + ] + } + ], + "Kernel.send(:gem, 'nomono', *nomono_activation_requirements)\nrequire 'nomono/bundler'": [ + { + "file": "Gemfile", + "lines": [ + 96, + 136 + ] + } + ], + "direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV')\ndirect_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil)": [ + { + "file": "Gemfile", + "lines": [ + 82, + 122 + ] + } + ], "eval_nomono_gems(\ngems: direct_sibling_gems,": [ { "file": "Gemfile", "lines": [ 60, - 100 + 100, + 140 + ] + } + ], + "gems: direct_sibling_gems,\nprefix: 'STRUCTUREDMERGE',": [ + { + "file": "Gemfile", + "lines": [ + 101, + 141 ] } ], @@ -13,7 +77,17 @@ "file": "Gemfile", "lines": [ 43, - 87 + 87, + 127 + ] + } + ], + "if direct_sibling_dev_was_set\nENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original": [ + { + "file": "Gemfile", + "lines": [ + 110, + 150 ] } ], @@ -22,7 +96,8 @@ "file": "Gemfile", "lines": [ 35, - 79 + 79, + 119 ] } ], @@ -31,7 +106,17 @@ "file": "Gemfile", "lines": [ 69, - 109 + 109, + 149 + ] + } + ], + "nomono_activation_requirements = nomono_requirements\nnomono_lockfile = File.expand_path('Gemfile.lock', __dir__)": [ + { + "file": "Gemfile", + "lines": [ + 85, + 125 ] } ], @@ -40,7 +125,8 @@ "file": "Gemfile", "lines": [ 48, - 92 + 92, + 132 ] } ], @@ -49,7 +135,53 @@ "file": "Gemfile", "lines": [ 44, - 88 + 88, + 128 + ] + } + ], + "nomono_lockfile = File.expand_path('Gemfile.lock', __dir__)\nif File.file?(nomono_lockfile)": [ + { + "file": "Gemfile", + "lines": [ + 86, + 126 + ] + } + ], + "path_env: 'STRUCTUREDMERGE_DEV',\nroot: %w[src my structuredmerge]": [ + { + "file": "Gemfile", + "lines": [ + 103, + 143 + ] + } + ], + "prefix: 'STRUCTUREDMERGE',\npath_env: 'STRUCTUREDMERGE_DEV',": [ + { + "file": "Gemfile", + "lines": [ + 102, + 142 + ] + } + ], + "require 'nomono/bundler'\nENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local": [ + { + "file": "Gemfile", + "lines": [ + 97, + 137 + ] + } + ], + "rescue LoadError\nwarn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.'": [ + { + "file": "Gemfile", + "lines": [ + 106, + 146 ] } ] diff --git a/gems/ast-crispr-markdown-markly/.rubocop_gradual.lock b/gems/ast-crispr-markdown-markly/.rubocop_gradual.lock deleted file mode 100644 index e357dcb0e..000000000 --- a/gems/ast-crispr-markdown-markly/.rubocop_gradual.lock +++ /dev/null @@ -1,134 +0,0 @@ -{ - ".simplecov:971555246": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "Rakefile:4085821453": [ - [18, 121, 17, "Layout/LineLength: Line is too long. [137/120]", 174264873], - [79, 3, 1023, "Metrics/BlockLength: Block has too many lines. [32/25]", 54868638], - [163, 121, 22, "Layout/LineLength: Line is too long. [142/120]", 1367093088], - [166, 121, 18, "Layout/LineLength: Line is too long. [138/120]", 3881946477] - ], - "ast-crispr-markdown-markly.gemspec:1188642188": [ - [128, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 2821357214], - [143, 121, 50, "Layout/LineLength: Line is too long. [170/120]", 3888612416], - [144, 121, 29, "Layout/LineLength: Line is too long. [149/120]", 981994949], - [151, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 4229808912] - ], - "gemfiles/modular/benchmark/r4/v0.5.gemfile:3644720371": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/benchmark/vHEAD.gemfile:2838879269": [ - [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/cgi/r4/v0.5.gemfile:367169322": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] - ], - "gemfiles/modular/cgi/vHEAD.gemfile:2729540777": [ - [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] - ], - "gemfiles/modular/erb/r2/v3.0.gemfile:1688285565": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] - ], - "gemfiles/modular/erb/r3/v5.0.gemfile:2394062339": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] - ], - "gemfiles/modular/erb/r4/v5.0.gemfile:2394062339": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] - ], - "gemfiles/modular/erb/vHEAD.gemfile:981929959": [ - [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/mutex_m/r2/v0.3.gemfile:4055275004": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/mutex_m/r3/v0.3.gemfile:4055275004": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/mutex_m/r4/v0.3.gemfile:4055275004": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/mutex_m/vHEAD.gemfile:556854763": [ - [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/rspec.gemfile:2263543889": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] - ], - "gemfiles/modular/stringio/r2/v3.0.gemfile:821604304": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/stringio/r3/v3.0.gemfile:821604304": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/stringio/r4/v3.0.gemfile:821604304": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/stringio/vHEAD.gemfile:1045839691": [ - [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/webrick/r4/v1.9.gemfile:3092661193": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] - ], - "gemfiles/modular/webrick/vHEAD.gemfile:3867684682": [ - [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] - ], - "gemfiles/modular/x_std_libs.gemfile:2324400122": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/x_std_libs/r2/libs.gemfile:36276542": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] - ], - "gemfiles/modular/x_std_libs/r3/libs.gemfile:4030570297": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] - ], - "gemfiles/modular/x_std_libs/r4/libs.gemfile:732451732": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] - ], - "gemfiles/modular/x_std_libs/vHEAD.gemfile:2390363993": [ - [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] - ], - "lib/ast-crispr-markdown-markly.rb:374208510": [ - [1, 1, 0, "Naming/FileName: The name of this source file (`ast-crispr-markdown-markly.rb`) should use snake_case.", 5381] - ], - "lib/ast/crispr/markdown/markly.rb:1124197915": [ - [11, 7, 13, "Style/Documentation: Missing top-level documentation comment for `module Ast::Crispr::Markdown::Markly`.", 95841343], - [14, 9, 13, "Style/Documentation: Missing top-level documentation comment for `class Ast::Crispr::Markdown::Markly::Adapter`.", 2579377404], - [23, 11, 695, "Metrics/MethodLength: Method has too many lines. [15/10]", 2384506812], - [49, 13, 87, "Style/RaiseArgs: Provide an exception class and message as arguments to `raise`.", 1878059440], - [52, 11, 1781, "Metrics/MethodLength: Method has too many lines. [39/10]", 2020253431], - [95, 9, 16, "Style/Documentation: Missing top-level documentation comment for `module Ast::Crispr::Markdown::Markly::Selectors`.", 2133324825], - [95, 9, 8840, "Metrics/ModuleLength: Module has too many lines. [186/100]", 1134016796], - [98, 11, 1452, "Metrics/AbcSize: Assignment Branch Condition size for `heading_section` is too high. [<2, 21, 7> 22.23/17]", 1578141243], - [98, 11, 1452, "Metrics/MethodLength: Method has too many lines. [30/10]", 1578141243], - [98, 30, 73, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 515735878], - [132, 11, 1397, "Metrics/AbcSize: Assignment Branch Condition size for `link_definition` is too high. [<2, 22, 8> 23.49/17]", 2035221200], - [132, 11, 1397, "Metrics/MethodLength: Method has too many lines. [29/10]", 2035221200], - [132, 30, 68, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 2927391196], - [165, 11, 1236, "Metrics/MethodLength: Method has too many lines. [27/10]", 2705412671], - [196, 11, 1632, "Metrics/AbcSize: Assignment Branch Condition size for `inline_reference` is too high. [<2, 25, 7> 26.04/17]", 2822954343], - [196, 11, 1632, "Metrics/MethodLength: Method has too many lines. [32/10]", 2822954343], - [196, 31, 79, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 871966347], - [232, 11, 3009, "Metrics/AbcSize: Assignment Branch Condition size for `html_comment_block` is too high. [<14, 43, 23> 50.73/17]", 1757586727], - [232, 11, 3009, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `html_comment_block` is too high. [18/7]", 1757586727], - [232, 11, 3009, "Metrics/MethodLength: Method has too many lines. [56/10]", 1757586727], - [232, 11, 3009, "Metrics/PerceivedComplexity: Perceived complexity for `html_comment_block` is too high. [18/8]", 1757586727], - [232, 33, 148, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [8/5]", 4247948333], - [244, 23, 2311, "Metrics/BlockLength: Block has too many lines. [43/25]", 3166751632], - [249, 121, 5, "Layout/LineLength: Line is too long. [125/120]", 236074548] - ], - "spec/ast/crispr/markdown/markly_spec.rb:479377118": [ - [3, 1, 13025, "Metrics/BlockLength: Block has too many lines. [238/25]", 467937705], - [28, 3, 10314, "Metrics/BlockLength: Block has too many lines. [182/25]", 3591393606], - [132, 121, 35, "Layout/LineLength: Line is too long. [155/120]", 2413317061], - [134, 121, 34, "Layout/LineLength: Line is too long. [154/120]", 3021964175], - [152, 121, 37, "Layout/LineLength: Line is too long. [157/120]", 3082451518], - [154, 121, 34, "Layout/LineLength: Line is too long. [154/120]", 3021964175], - [267, 3, 1687, "Metrics/BlockLength: Block has too many lines. [33/25]", 4221412326] - ] -} diff --git a/gems/ast-crispr-markdown-markly/.simplecov b/gems/ast-crispr-markdown-markly/.simplecov index 4321d8879..66e95067f 100644 --- a/gems/ast-crispr-markdown-markly/.simplecov +++ b/gems/ast-crispr-markdown-markly/.simplecov @@ -4,15 +4,11 @@ # ast-crispr-markdown-markly will then preserve content between those markers across template runs. # kettle-jem:unfreeze -require 'kettle/soup/cover/config' - # Minimum coverage thresholds are set by kettle-soup-cover. # They are controlled by ENV variables loaded by `mise` from `mise.toml` # (with optional machine-local overrides in `.env.local`). # If the values for minimum coverage need to change, they should be changed both there, # and in 2 places in .github/workflows/coverage.yml. -SimpleCov.start do - track_files 'lib/**/*.rb' - track_files 'lib/**/*.rake' - track_files 'exe/*.rb' +SimpleCov.configure do + cover "lib/**/*.rb", "lib/**/*.rake", "exe/*.rb" end diff --git a/gems/ast-crispr-markdown-markly/Gemfile b/gems/ast-crispr-markdown-markly/Gemfile index ea63fb092..90a9c2242 100644 --- a/gems/ast-crispr-markdown-markly/Gemfile +++ b/gems/ast-crispr-markdown-markly/Gemfile @@ -6,7 +6,7 @@ # kettle-jem will then preserve content between those markers across template runs. # kettle-jem:unfreeze -source 'https://gem.coop' +source "https://gem.coop" git_source(:codeberg) { |repo_name| "https://codeberg.org/#{repo_name}" } git_source(:gitlab) { |repo_name| "https://gitlab.com/#{repo_name}" } @@ -19,18 +19,62 @@ git_source(:gitlab) { |repo_name| "https://gitlab.com/#{repo_name}" } gemspec # Local workspace dependency wiring for *_local.gemfile overrides -nomono_requirements = ['~> 1.0', '>= 1.0.8'] -gem 'nomono', *nomono_requirements, require: false # ruby >= 2.2 +nomono_requirements = ["~> 1.0", ">= 1.0.8"] +gem "nomono", *nomono_requirements, require: false # ruby >= 2.2 # Direct sibling dependencies (env-switched via STRUCTUREDMERGE_DEV) direct_sibling_gems = %w[ ast-crispr markly-merge ] -direct_sibling_dev = ENV.fetch('STRUCTUREDMERGE_DEV', '') +direct_sibling_dev = ENV.fetch("STRUCTUREDMERGE_DEV", "") direct_sibling_local = !direct_sibling_dev.empty? && !%w[false 0 no off].include?(direct_sibling_dev.downcase) -direct_sibling_templating = ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? +direct_sibling_templating = ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? + +if direct_sibling_gems.any? && + (direct_sibling_local || + ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero?) + direct_sibling_dev_was_set = ENV.key?("STRUCTUREDMERGE_DEV") + direct_sibling_dev_original = ENV.fetch("STRUCTUREDMERGE_DEV", nil) + begin + nomono_activation_requirements = nomono_requirements + nomono_lockfile = File.expand_path("Gemfile.lock", __dir__) + if File.file?(nomono_lockfile) + nomono_locked_spec = Bundler::LockfileParser + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == "nomono" } + nomono_locked = nomono_locked_spec && + Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) + if nomono_locked + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] + end + end + Kernel.send(:gem, "nomono", *nomono_activation_requirements) + require "nomono/bundler" + if direct_sibling_templating && !direct_sibling_local + ENV["STRUCTUREDMERGE_DEV"] = File.expand_path("..", __dir__) + end + + eval_nomono_gems( + gems: direct_sibling_gems, + prefix: "STRUCTUREDMERGE", + path_env: "STRUCTUREDMERGE_DEV", + root: ["src", "my", "structuredmerge"] + ) + rescue LoadError + warn "Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies." + ensure + if direct_sibling_templating && !direct_sibling_local + if direct_sibling_dev_was_set + ENV["STRUCTUREDMERGE_DEV"] = direct_sibling_dev_original + else + ENV.delete("STRUCTUREDMERGE_DEV") + end + end + end +end if direct_sibling_gems.any? && (direct_sibling_local || @@ -113,28 +157,28 @@ if direct_sibling_gems.any? && end # Use released TSLP with the Ruby ABI platform-gem fix. -gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' +gem "tree_sitter_language_pack", "~> 1.13", ">= 1.13.3" # Templating (env-switched: STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local paths) -eval_gemfile 'gemfiles/modular/templating.gemfile' if ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? +eval_gemfile "gemfiles/modular/templating.gemfile" if ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? # Debugging -eval_gemfile 'gemfiles/modular/debug.gemfile' +eval_gemfile "gemfiles/modular/debug.gemfile" # Code Coverage (env-switched: KETTLE_DEV_DEV=true for local paths) -eval_gemfile 'gemfiles/modular/coverage.gemfile' +eval_gemfile "gemfiles/modular/coverage.gemfile" # Linting -eval_gemfile 'gemfiles/modular/style.gemfile' +eval_gemfile "gemfiles/modular/style.gemfile" # Documentation -eval_gemfile 'gemfiles/modular/documentation.gemfile' +eval_gemfile "gemfiles/modular/documentation.gemfile" # Optional -eval_gemfile 'gemfiles/modular/optional.gemfile' +eval_gemfile "gemfiles/modular/optional.gemfile" ### Std Lib Extracted Gems -eval_gemfile 'gemfiles/modular/x_std_libs.gemfile' +eval_gemfile "gemfiles/modular/x_std_libs.gemfile" # See unlocked_deps appraisal for more details on irb inclusion -gem 'irb', '~> 1.17' # ruby >= 2.7 +gem "irb", "~> 1.17" # ruby >= 2.7 diff --git a/gems/ast-crispr-markdown-markly/Gemfile.lock b/gems/ast-crispr-markdown-markly/Gemfile.lock index 2f2742716..41913670c 100644 --- a/gems/ast-crispr-markdown-markly/Gemfile.lock +++ b/gems/ast-crispr-markdown-markly/Gemfile.lock @@ -6,6 +6,22 @@ PATH markly-merge (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr + specs: + ast-crispr (7.1.0) + ast-merge (= 7.1.0) + service_actor (~> 3.9) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge + specs: + markly-merge (7.1.0) + markdown-merge (= 7.1.0) + markly (~> 0.9) + version_gem (~> 1.1, >= 1.1.9) + GEM remote: https://gem.coop/ specs: @@ -21,10 +37,6 @@ GEM rubocop (>= 1.0) version_gem (~> 1.1, >= 1.1.14) ast (2.4.3) - ast-crispr (7.1.0) - ast-merge (= 7.1.0) - service_actor (~> 3.9) - version_gem (~> 1.1, >= 1.1.9) ast-merge (7.1.0) benchmark token-resolver (~> 2.0, >= 2.0.4) @@ -134,10 +146,6 @@ GEM tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) markly (0.16.0) - markly-merge (7.1.0) - markdown-merge (= 7.1.0) - markly (~> 0.9) - version_gem (~> 1.1, >= 1.1.9) mutex_m (0.3.0) nokogiri (1.19.4-x86_64-linux-gnu) racc (~> 1.4) @@ -309,7 +317,7 @@ GEM simplecov (>= 0.4.1) simplecov_lcov_formatter (0.9.0) simplecov (>= 0.18) - sorbet-runtime (0.6.13347) + sorbet-runtime (0.6.13351) standard (1.56.0) language_server-protocol (~> 3.17.0.2) lint_roller (~> 1.0) @@ -398,6 +406,7 @@ DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) appraisal2-rubocop (~> 1.0, >= 1.0.0) + ast-crispr! ast-crispr-markdown-markly! benchmark (~> 0.5, >= 0.5.0) bundler-audit (~> 0.9.3) @@ -412,6 +421,7 @@ DEPENDENCIES kettle-test (~> 2.0, >= 2.0.9) kramdown (~> 2.5, >= 2.5.2) kramdown-parser-gfm (~> 1.1) + markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) rake (~> 13.0) @@ -553,7 +563,7 @@ CHECKSUMS simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed - sorbet-runtime (0.6.13347) sha256=54e7221d9f4b63f58aec79f3043752a9ba7810347c6ae0d903531591cc2d5f01 + sorbet-runtime (0.6.13351) sha256=f8fee17c6e3edf835dc6823d26afb9a7c8969c6710d1fabe2fb43f4e0c15c64f standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b standard-performance (1.9.0) sha256=49483d31be448292951d80e5e67cdcb576c2502103c7b40aec6f1b6e9c88e3f2 diff --git a/gems/ast-crispr-markdown-markly/Rakefile b/gems/ast-crispr-markdown-markly/Rakefile index 799afe6f5..c599763c0 100644 --- a/gems/ast-crispr-markdown-markly/Rakefile +++ b/gems/ast-crispr-markdown-markly/Rakefile @@ -130,23 +130,23 @@ end ### DUPLICATE DRIFT TASKS begin - require 'kettle/drift' + require "kettle/drift" Kettle::Drift.install_tasks rescue LoadError - desc('(stub) kettle:drift:check is unavailable') - task('kettle:drift:check') do + desc("(stub) kettle:drift:check is unavailable") + task("kettle:drift:check") do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc('(stub) kettle:drift:update is unavailable') - task('kettle:drift:update') do + desc("(stub) kettle:drift:update is unavailable") + task("kettle:drift:update") do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc('(stub) kettle:drift:force_update is unavailable') - task('kettle:drift:force_update') do + desc("(stub) kettle:drift:force_update is unavailable") + task("kettle:drift:force_update") do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc('(stub) kettle:drift is unavailable') - task('kettle:drift' => 'kettle:drift:update') + desc("(stub) kettle:drift is unavailable") + task("kettle:drift" => "kettle:drift:update") end ### TEMPLATING TASKS diff --git a/gems/ast-crispr-markdown-markly/bin/yard b/gems/ast-crispr-markdown-markly/bin/yard index 5d516ad6f..a7e8b6eed 100755 --- a/gems/ast-crispr-markdown-markly/bin/yard +++ b/gems/ast-crispr-markdown-markly/bin/yard @@ -12,4 +12,4 @@ # `yard` / `bin/yard`. Keep this binstub as a handoff to the task so # humans and tools that reach for `bin/yard` still run the full docs # workflow with post-processing hooks. -exec('bundle', 'exec', 'rake', 'yard') +exec("bundle", "exec", "rake", "yard") diff --git a/gems/ast-crispr-markdown-markly/gemfiles/modular/benchmark/r4/v0.5.gemfile b/gems/ast-crispr-markdown-markly/gemfiles/modular/benchmark/r4/v0.5.gemfile index b8392fab0..dec650815 100644 --- a/gems/ast-crispr-markdown-markly/gemfiles/modular/benchmark/r4/v0.5.gemfile +++ b/gems/ast-crispr-markdown-markly/gemfiles/modular/benchmark/r4/v0.5.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.1 -gem 'benchmark', '~> 0.5', '>= 0.5.0' # Removed from Std Lib in Ruby 4.0 +gem "benchmark", "~> 0.5", ">= 0.5.0" # Removed from Std Lib in Ruby 4.0 diff --git a/gems/ast-crispr-markdown-markly/gemfiles/modular/benchmark/vHEAD.gemfile b/gems/ast-crispr-markdown-markly/gemfiles/modular/benchmark/vHEAD.gemfile index af214aafa..e1eb20c5e 100644 --- a/gems/ast-crispr-markdown-markly/gemfiles/modular/benchmark/vHEAD.gemfile +++ b/gems/ast-crispr-markdown-markly/gemfiles/modular/benchmark/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.1 -gem 'benchmark', github: 'ruby/benchmark', branch: 'master' +gem "benchmark", github: "ruby/benchmark", branch: "master" diff --git a/gems/ast-crispr-markdown-markly/gemfiles/modular/cgi/r4/v0.5.gemfile b/gems/ast-crispr-markdown-markly/gemfiles/modular/cgi/r4/v0.5.gemfile index 17ad97260..19ed967c3 100644 --- a/gems/ast-crispr-markdown-markly/gemfiles/modular/cgi/r4/v0.5.gemfile +++ b/gems/ast-crispr-markdown-markly/gemfiles/modular/cgi/r4/v0.5.gemfile @@ -1 +1 @@ -gem 'cgi', '~> 0.5' +gem "cgi", "~> 0.5" diff --git a/gems/ast-crispr-markdown-markly/gemfiles/modular/cgi/vHEAD.gemfile b/gems/ast-crispr-markdown-markly/gemfiles/modular/cgi/vHEAD.gemfile index 650fbf033..ef8b816ce 100644 --- a/gems/ast-crispr-markdown-markly/gemfiles/modular/cgi/vHEAD.gemfile +++ b/gems/ast-crispr-markdown-markly/gemfiles/modular/cgi/vHEAD.gemfile @@ -1 +1 @@ -gem 'cgi', '>= 0.5' +gem "cgi", ">= 0.5" diff --git a/gems/ast-crispr-markdown-markly/gemfiles/modular/coverage.gemfile b/gems/ast-crispr-markdown-markly/gemfiles/modular/coverage.gemfile index b93014b6b..52d737872 100644 --- a/gems/ast-crispr-markdown-markly/gemfiles/modular/coverage.gemfile +++ b/gems/ast-crispr-markdown-markly/gemfiles/modular/coverage.gemfile @@ -4,11 +4,11 @@ # Set KETTLE_DEV_DEV=true for local development with path-based dependencies. # When false (default / CI), remote released gems are used. -if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? +if ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false").zero? # Coverage (remote/released) platform :mri do - gem 'kettle-soup-cover', '~> 3.0', '>= 3.0.3', require: false + gem "kettle-soup-cover", "~> 3.0", ">= 3.0.3", require: false end else - eval_gemfile 'coverage_local.gemfile' + eval_gemfile "coverage_local.gemfile" end diff --git a/gems/ast-crispr-markdown-markly/gemfiles/modular/coverage_local.gemfile b/gems/ast-crispr-markdown-markly/gemfiles/modular/coverage_local.gemfile index 30b548eee..23198c2bc 100644 --- a/gems/ast-crispr-markdown-markly/gemfiles/modular/coverage_local.gemfile +++ b/gems/ast-crispr-markdown-markly/gemfiles/modular/coverage_local.gemfile @@ -11,19 +11,21 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] -nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) +nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] +nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == "nomono" } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + if nomono_locked + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] + end end -Kernel.send(:gem, 'nomono', *nomono_activation_requirements) -require 'nomono/bundler' +Kernel.send(:gem, "nomono", *nomono_activation_requirements) +require "nomono/bundler" local_gems = %w[kettle-dev kettle-test kettle-soup-cover kettle-drift] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) @@ -33,21 +35,21 @@ local_gems_to_eval = local_gems - %w[ast-crispr-markdown-markly] - declared_gems platform :mri do eval_nomono_gems( gems: local_gems_to_eval, - prefix: 'KETTLE_DEV', - path_env: 'KETTLE_DEV_DEV', - vendored_gems_env: 'VENDORED_GEMS', - vendor_gem_dir_env: 'VENDOR_GEM_DIR', - debug_env: 'KETTLE_DEV_DEBUG' + prefix: "KETTLE_DEV", + path_env: "KETTLE_DEV_DEV", + vendored_gems_env: "VENDORED_GEMS", + vendor_gem_dir_env: "VENDOR_GEM_DIR", + debug_env: "KETTLE_DEV_DEBUG" ) - if ENV.fetch('GALTZO_FLOSS_DEV', 'false').casecmp('false') != 0 + if ENV.fetch("GALTZO_FLOSS_DEV", "false").casecmp("false") != 0 eval_nomono_gems( gems: %w[turbo_tests2], - prefix: 'GALTZO_FLOSS', - path_env: 'GALTZO_FLOSS_DEV', - vendored_gems_env: 'GALTZO_FLOSS_VENDORED_GEMS', - vendor_gem_dir_env: 'GALTZO_FLOSS_VENDOR_GEM_DIR', - debug_env: 'GALTZO_FLOSS_DEBUG' + prefix: "GALTZO_FLOSS", + path_env: "GALTZO_FLOSS_DEV", + vendored_gems_env: "GALTZO_FLOSS_VENDORED_GEMS", + vendor_gem_dir_env: "GALTZO_FLOSS_VENDOR_GEM_DIR", + debug_env: "GALTZO_FLOSS_DEBUG" ) end end diff --git a/gems/ast-crispr-markdown-markly/gemfiles/modular/debug.gemfile b/gems/ast-crispr-markdown-markly/gemfiles/modular/debug.gemfile index eed8d4d1e..4e15b1a3a 100644 --- a/gems/ast-crispr-markdown-markly/gemfiles/modular/debug.gemfile +++ b/gems/ast-crispr-markdown-markly/gemfiles/modular/debug.gemfile @@ -13,10 +13,10 @@ platform :mri do # Debugging - Ensure ENV["DEBUG"] == "true" to use debuggers within spec suite # Use binding.break, binding.b, or debugger in code - gem 'debug', '>= 1.1' # ruby >= 2.7 + gem "debug", ">= 1.1" # ruby >= 2.7 # Dev Console - Binding.pry - Irb replacement # gem "pry", "~> 0.14" # ruby >= 2.0 end -gem 'gem_bench', '~> 2.0', '>= 2.0.5' +gem "gem_bench", "~> 2.0", ">= 2.0.5" diff --git a/gems/ast-crispr-markdown-markly/gemfiles/modular/documentation.gemfile b/gems/ast-crispr-markdown-markly/gemfiles/modular/documentation.gemfile index 9d4535f12..d8215416e 100644 --- a/gems/ast-crispr-markdown-markly/gemfiles/modular/documentation.gemfile +++ b/gems/ast-crispr-markdown-markly/gemfiles/modular/documentation.gemfile @@ -7,20 +7,20 @@ # # Documentation -gem 'kramdown', '~> 2.5', '>= 2.5.2', require: false # Ruby >= 2.5 -gem 'kramdown-parser-gfm', '~> 1.1', require: false # Ruby >= 2.3 -gem 'yaml-converter', '~> 0.2', '>= 0.2.3', require: false # Ruby >= 3.2 -gem 'yard', '~> 0.9', '>= 0.9.45', require: false -gem 'yard-junk', '~> 0.1', '>= 0.1.0', require: false # Ruby >= 3.1 -gem 'yard-relative_markdown_links', '~> 0.6', require: false +gem "kramdown", "~> 2.5", ">= 2.5.2", require: false # Ruby >= 2.5 +gem "kramdown-parser-gfm", "~> 1.1", require: false # Ruby >= 2.3 +gem "yaml-converter", "~> 0.2", ">= 0.2.3", require: false # Ruby >= 3.2 +gem "yard", "~> 0.9", ">= 0.9.45", require: false +gem "yard-junk", "~> 0.1", ">= 0.1.0", require: false # Ruby >= 3.1 +gem "yard-relative_markdown_links", "~> 0.6", require: false -if ENV.fetch('GALTZO_FLOSS_DEV', 'false').casecmp('false').zero? - gem 'yard-fence', '~> 0.9', '>= 0.9.6', require: false # Ruby >= 3.2 - gem 'yard-timekeeper', '~> 0.2', '>= 0.2.4', require: false - gem 'yard-yaml', '~> 0.2', '>= 0.2.3', require: false +if ENV.fetch("GALTZO_FLOSS_DEV", "false").casecmp("false").zero? + gem "yard-fence", "~> 0.9", ">= 0.9.6", require: false # Ruby >= 3.2 + gem "yard-timekeeper", "~> 0.2", ">= 0.2.4", require: false + gem "yard-yaml", "~> 0.2", ">= 0.2.3", require: false else - eval_gemfile 'documentation_local.gemfile' + eval_gemfile "documentation_local.gemfile" end # Std Lib extractions -gem 'rdoc', '~> 6.11', require: false unless ENV.fetch('KJ_FRAMEWORK_MATRIX_GEM', '') == 'rdoc' +gem "rdoc", "~> 6.11", require: false unless ENV.fetch("KJ_FRAMEWORK_MATRIX_GEM", "") == "rdoc" diff --git a/gems/ast-crispr-markdown-markly/gemfiles/modular/documentation_local.gemfile b/gems/ast-crispr-markdown-markly/gemfiles/modular/documentation_local.gemfile index faff9cff7..2484c5904 100644 --- a/gems/ast-crispr-markdown-markly/gemfiles/modular/documentation_local.gemfile +++ b/gems/ast-crispr-markdown-markly/gemfiles/modular/documentation_local.gemfile @@ -11,19 +11,21 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] -nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) +nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] +nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == "nomono" } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + if nomono_locked + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] + end end -Kernel.send(:gem, 'nomono', *nomono_activation_requirements) -require 'nomono/bundler' +Kernel.send(:gem, "nomono", *nomono_activation_requirements) +require "nomono/bundler" local_gems = %w[yard-fence yard-timekeeper yard-yaml] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) @@ -32,9 +34,9 @@ local_gems_to_eval = local_gems - %w[ast-crispr-markdown-markly] - declared_gems # export GALTZO_FLOSS_DEV=/path/to/galtzo-floss eval_nomono_gems( gems: local_gems_to_eval, - prefix: 'GALTZO_FLOSS', - path_env: 'GALTZO_FLOSS_DEV', - vendored_gems_env: 'GALTZO_FLOSS_VENDORED_GEMS', - vendor_gem_dir_env: 'GALTZO_FLOSS_VENDOR_GEM_DIR', - debug_env: 'GALTZO_FLOSS_DEBUG' + prefix: "GALTZO_FLOSS", + path_env: "GALTZO_FLOSS_DEV", + vendored_gems_env: "GALTZO_FLOSS_VENDORED_GEMS", + vendor_gem_dir_env: "GALTZO_FLOSS_VENDOR_GEM_DIR", + debug_env: "GALTZO_FLOSS_DEBUG" ) diff --git a/gems/ast-crispr-markdown-markly/gemfiles/modular/erb/r2/v3.0.gemfile b/gems/ast-crispr-markdown-markly/gemfiles/modular/erb/r2/v3.0.gemfile index 7c83a239b..c03bd8d85 100644 --- a/gems/ast-crispr-markdown-markly/gemfiles/modular/erb/r2/v3.0.gemfile +++ b/gems/ast-crispr-markdown-markly/gemfiles/modular/erb/r2/v3.0.gemfile @@ -1 +1 @@ -gem 'erb', '~> 3.0' # ruby >= 2.7.0 +gem "erb", "~> 3.0" # ruby >= 2.7.0 diff --git a/gems/ast-crispr-markdown-markly/gemfiles/modular/erb/r3/v5.0.gemfile b/gems/ast-crispr-markdown-markly/gemfiles/modular/erb/r3/v5.0.gemfile index ec7ff451f..1bd029cc1 100644 --- a/gems/ast-crispr-markdown-markly/gemfiles/modular/erb/r3/v5.0.gemfile +++ b/gems/ast-crispr-markdown-markly/gemfiles/modular/erb/r3/v5.0.gemfile @@ -1 +1 @@ -gem 'erb', '~> 6.0', '>= 6.0.6' # ruby >= 3.2.0 +gem "erb", "~> 6.0", ">= 6.0.6" # ruby >= 3.2.0 diff --git a/gems/ast-crispr-markdown-markly/gemfiles/modular/erb/r4/v5.0.gemfile b/gems/ast-crispr-markdown-markly/gemfiles/modular/erb/r4/v5.0.gemfile index ec7ff451f..1bd029cc1 100644 --- a/gems/ast-crispr-markdown-markly/gemfiles/modular/erb/r4/v5.0.gemfile +++ b/gems/ast-crispr-markdown-markly/gemfiles/modular/erb/r4/v5.0.gemfile @@ -1 +1 @@ -gem 'erb', '~> 6.0', '>= 6.0.6' # ruby >= 3.2.0 +gem "erb", "~> 6.0", ">= 6.0.6" # ruby >= 3.2.0 diff --git a/gems/ast-crispr-markdown-markly/gemfiles/modular/erb/vHEAD.gemfile b/gems/ast-crispr-markdown-markly/gemfiles/modular/erb/vHEAD.gemfile index ea0101185..48fee4218 100644 --- a/gems/ast-crispr-markdown-markly/gemfiles/modular/erb/vHEAD.gemfile +++ b/gems/ast-crispr-markdown-markly/gemfiles/modular/erb/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 3.2 -gem 'erb', github: 'ruby/erb', branch: 'master' +gem "erb", github: "ruby/erb", branch: "master" diff --git a/gems/ast-crispr-markdown-markly/gemfiles/modular/json/truffleruby_22_3.gemfile b/gems/ast-crispr-markdown-markly/gemfiles/modular/json/truffleruby_22_3.gemfile index 9b2f8d96a..b0e69ab11 100644 --- a/gems/ast-crispr-markdown-markly/gemfiles/modular/json/truffleruby_22_3.gemfile +++ b/gems/ast-crispr-markdown-markly/gemfiles/modular/json/truffleruby_22_3.gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -if RUBY_ENGINE == 'truffleruby' && RUBY_ENGINE_VERSION.start_with?('22.3') +if RUBY_ENGINE == "truffleruby" && RUBY_ENGINE_VERSION.start_with?("22.3") # TruffleRuby 22.3 ships the json default gem from its emulated MRI Ruby. - gem 'json', '= 2.5.1' + gem "json", "= 2.5.1" end diff --git a/gems/ast-crispr-markdown-markly/gemfiles/modular/json/truffleruby_23_0.gemfile b/gems/ast-crispr-markdown-markly/gemfiles/modular/json/truffleruby_23_0.gemfile index d787a5ef4..7b2660a2b 100644 --- a/gems/ast-crispr-markdown-markly/gemfiles/modular/json/truffleruby_23_0.gemfile +++ b/gems/ast-crispr-markdown-markly/gemfiles/modular/json/truffleruby_23_0.gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -if RUBY_ENGINE == 'truffleruby' && RUBY_ENGINE_VERSION.start_with?('23.0') +if RUBY_ENGINE == "truffleruby" && RUBY_ENGINE_VERSION.start_with?("23.0") # TruffleRuby 23.0 ships the json default gem from its emulated MRI Ruby. - gem 'json', '= 2.6.1' + gem "json", "= 2.6.1" end diff --git a/gems/ast-crispr-markdown-markly/gemfiles/modular/json/truffleruby_23_1.gemfile b/gems/ast-crispr-markdown-markly/gemfiles/modular/json/truffleruby_23_1.gemfile index d78486b0e..dfa21f2e4 100644 --- a/gems/ast-crispr-markdown-markly/gemfiles/modular/json/truffleruby_23_1.gemfile +++ b/gems/ast-crispr-markdown-markly/gemfiles/modular/json/truffleruby_23_1.gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -if RUBY_ENGINE == 'truffleruby' && RUBY_ENGINE_VERSION.start_with?('23.1') +if RUBY_ENGINE == "truffleruby" && RUBY_ENGINE_VERSION.start_with?("23.1") # TruffleRuby 23.1 ships the json default gem from its emulated MRI Ruby. - gem 'json', '= 2.6.3' + gem "json", "= 2.6.3" end diff --git a/gems/ast-crispr-markdown-markly/gemfiles/modular/mutex_m/r2/v0.3.gemfile b/gems/ast-crispr-markdown-markly/gemfiles/modular/mutex_m/r2/v0.3.gemfile index e27f1bbae..42e9d9bd4 100644 --- a/gems/ast-crispr-markdown-markly/gemfiles/modular/mutex_m/r2/v0.3.gemfile +++ b/gems/ast-crispr-markdown-markly/gemfiles/modular/mutex_m/r2/v0.3.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 -gem 'mutex_m', '~> 0.2' +gem "mutex_m", "~> 0.2" diff --git a/gems/ast-crispr-markdown-markly/gemfiles/modular/mutex_m/r3/v0.3.gemfile b/gems/ast-crispr-markdown-markly/gemfiles/modular/mutex_m/r3/v0.3.gemfile index e27f1bbae..42e9d9bd4 100644 --- a/gems/ast-crispr-markdown-markly/gemfiles/modular/mutex_m/r3/v0.3.gemfile +++ b/gems/ast-crispr-markdown-markly/gemfiles/modular/mutex_m/r3/v0.3.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 -gem 'mutex_m', '~> 0.2' +gem "mutex_m", "~> 0.2" diff --git a/gems/ast-crispr-markdown-markly/gemfiles/modular/mutex_m/r4/v0.3.gemfile b/gems/ast-crispr-markdown-markly/gemfiles/modular/mutex_m/r4/v0.3.gemfile index e27f1bbae..42e9d9bd4 100644 --- a/gems/ast-crispr-markdown-markly/gemfiles/modular/mutex_m/r4/v0.3.gemfile +++ b/gems/ast-crispr-markdown-markly/gemfiles/modular/mutex_m/r4/v0.3.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 -gem 'mutex_m', '~> 0.2' +gem "mutex_m", "~> 0.2" diff --git a/gems/ast-crispr-markdown-markly/gemfiles/modular/mutex_m/vHEAD.gemfile b/gems/ast-crispr-markdown-markly/gemfiles/modular/mutex_m/vHEAD.gemfile index 9dac2f6cb..8af3b6fca 100644 --- a/gems/ast-crispr-markdown-markly/gemfiles/modular/mutex_m/vHEAD.gemfile +++ b/gems/ast-crispr-markdown-markly/gemfiles/modular/mutex_m/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 (dependency of omniauth) -gem 'mutex_m', github: 'ruby/mutex_m', branch: 'master' +gem "mutex_m", github: "ruby/mutex_m", branch: "master" diff --git a/gems/ast-crispr-markdown-markly/gemfiles/modular/optional.gemfile b/gems/ast-crispr-markdown-markly/gemfiles/modular/optional.gemfile index 9ea429538..80bc45196 100644 --- a/gems/ast-crispr-markdown-markly/gemfiles/modular/optional.gemfile +++ b/gems/ast-crispr-markdown-markly/gemfiles/modular/optional.gemfile @@ -9,8 +9,8 @@ # Optional dependencies are not depended on directly, but may be used if present. # Required for curated binstubs generated by kettle-jem install -gem 'rbs', '>= 3.0', require: false # ruby >= 3.1 +gem "rbs", ">= 3.0", require: false # ruby >= 3.1 # Required for kettle-pre-release # URL parsing with Unicode support (falls back to URI if not available) -gem 'addressable', '>= 2.8', '< 3' # ruby >= 2.2 +gem "addressable", ">= 2.8", "< 3" # ruby >= 2.2 diff --git a/gems/ast-crispr-markdown-markly/gemfiles/modular/rspec.gemfile b/gems/ast-crispr-markdown-markly/gemfiles/modular/rspec.gemfile index 2af210a41..72fdf8b7f 100644 --- a/gems/ast-crispr-markdown-markly/gemfiles/modular/rspec.gemfile +++ b/gems/ast-crispr-markdown-markly/gemfiles/modular/rspec.gemfile @@ -1,4 +1,4 @@ -gem 'rspec_junit_formatter', - github: 'pboling/rspec_junit_formatter', - branch: 'main', - ref: '9e6bcaaedd49477b62878ed568dc4ada5cc7cb5e' +gem "rspec_junit_formatter", + github: "pboling/rspec_junit_formatter", + branch: "main", + ref: "9e6bcaaedd49477b62878ed568dc4ada5cc7cb5e" diff --git a/gems/ast-crispr-markdown-markly/gemfiles/modular/runtime_heads.gemfile b/gems/ast-crispr-markdown-markly/gemfiles/modular/runtime_heads.gemfile index ebf17c529..02f134c7f 100644 --- a/gems/ast-crispr-markdown-markly/gemfiles/modular/runtime_heads.gemfile +++ b/gems/ast-crispr-markdown-markly/gemfiles/modular/runtime_heads.gemfile @@ -8,4 +8,4 @@ # Test against HEAD of runtime dependencies so we can proactively file bugs -eval_gemfile('x_std_libs/vHEAD.gemfile') +eval_gemfile("x_std_libs/vHEAD.gemfile") diff --git a/gems/ast-crispr-markdown-markly/gemfiles/modular/stringio/r2/v3.0.gemfile b/gems/ast-crispr-markdown-markly/gemfiles/modular/stringio/r2/v3.0.gemfile index 3616f4e3a..e85bb18ee 100644 --- a/gems/ast-crispr-markdown-markly/gemfiles/modular/stringio/r2/v3.0.gemfile +++ b/gems/ast-crispr-markdown-markly/gemfiles/modular/stringio/r2/v3.0.gemfile @@ -2,4 +2,4 @@ # NOT SEMVER # Version 3.0.7 dropped support for Ruby <= 2.7 # Version 3.0.0 dropped support for Ruby <= 2.4 -gem 'stringio', '>= 3.0' +gem "stringio", ">= 3.0" diff --git a/gems/ast-crispr-markdown-markly/gemfiles/modular/stringio/r3/v3.0.gemfile b/gems/ast-crispr-markdown-markly/gemfiles/modular/stringio/r3/v3.0.gemfile index 3616f4e3a..e85bb18ee 100644 --- a/gems/ast-crispr-markdown-markly/gemfiles/modular/stringio/r3/v3.0.gemfile +++ b/gems/ast-crispr-markdown-markly/gemfiles/modular/stringio/r3/v3.0.gemfile @@ -2,4 +2,4 @@ # NOT SEMVER # Version 3.0.7 dropped support for Ruby <= 2.7 # Version 3.0.0 dropped support for Ruby <= 2.4 -gem 'stringio', '>= 3.0' +gem "stringio", ">= 3.0" diff --git a/gems/ast-crispr-markdown-markly/gemfiles/modular/stringio/r4/v3.0.gemfile b/gems/ast-crispr-markdown-markly/gemfiles/modular/stringio/r4/v3.0.gemfile index 3616f4e3a..e85bb18ee 100644 --- a/gems/ast-crispr-markdown-markly/gemfiles/modular/stringio/r4/v3.0.gemfile +++ b/gems/ast-crispr-markdown-markly/gemfiles/modular/stringio/r4/v3.0.gemfile @@ -2,4 +2,4 @@ # NOT SEMVER # Version 3.0.7 dropped support for Ruby <= 2.7 # Version 3.0.0 dropped support for Ruby <= 2.4 -gem 'stringio', '>= 3.0' +gem "stringio", ">= 3.0" diff --git a/gems/ast-crispr-markdown-markly/gemfiles/modular/stringio/vHEAD.gemfile b/gems/ast-crispr-markdown-markly/gemfiles/modular/stringio/vHEAD.gemfile index 78f5f5d8a..5f2a74126 100644 --- a/gems/ast-crispr-markdown-markly/gemfiles/modular/stringio/vHEAD.gemfile +++ b/gems/ast-crispr-markdown-markly/gemfiles/modular/stringio/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 (dependency of omniauth) -gem 'stringio', github: 'ruby/stringio', branch: 'master' +gem "stringio", github: "ruby/stringio", branch: "master" diff --git a/gems/ast-crispr-markdown-markly/gemfiles/modular/style.gemfile b/gems/ast-crispr-markdown-markly/gemfiles/modular/style.gemfile index 4dbcc02c0..35de4dcd6 100644 --- a/gems/ast-crispr-markdown-markly/gemfiles/modular/style.gemfile +++ b/gems/ast-crispr-markdown-markly/gemfiles/modular/style.gemfile @@ -9,23 +9,23 @@ # Style tasks run on the latest Ruby; RuboCop-LTS selects the compatibility # rules for the configured Ruby floor independently from task dependency floors. -gem 'reek', '~> 6.5', '>= 6.5.0' +gem "reek", "~> 6.5", ">= 6.5.0" platform :mri do - gem 'appraisal2-rubocop', '~> 1.0', '>= 1.0.0', require: false - gem 'rubocop-gradual', '~> 0.4', '>= 0.4.0' - gem 'rubocop-minitest', '~> 0.40', '>= 0.40.0' - gem 'rubocop-on-rbs', '~> 2.0', '>= 2.0.0' # ruby >= 3.2.0 + gem "appraisal2-rubocop", "~> 1.0", ">= 1.0.0", require: false + gem "rubocop-gradual", "~> 0.4", ">= 0.4.0" + gem "rubocop-minitest", "~> 0.40", ">= 0.40.0" + gem "rubocop-on-rbs", "~> 2.0", ">= 2.0.0" # ruby >= 3.2.0 # gem "rubocop", "~> 1.73", ">= 1.73.2" # constrained by standard - gem 'rubocop-packaging', '~> 0.6', '>= 0.6.0' - gem 'standard', '~> 1.56', '>= 1.56.0' + gem "rubocop-packaging", "~> 0.6", ">= 0.6.0" + gem "standard", "~> 1.56", ">= 1.56.0" - if ENV.fetch('RUBOCOP_LTS_LOCAL', 'false').casecmp('false').zero? + if ENV.fetch("RUBOCOP_LTS_LOCAL", "false").casecmp("false").zero? declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) - gem 'rubocop-lts', '~> 24.2', '>= 24.2.1' unless declared_gems.include?('rubocop-lts') - gem 'rubocop-lts-rspec', '~> 1.0', '>= 1.0.5' unless declared_gems.include?('rubocop-lts-rspec') - gem 'rubocop-ruby3_2', '~> 3.0', '>= 3.0.6' unless declared_gems.include?('rubocop-ruby3_2') + gem "rubocop-lts", "~> 24.2", ">= 24.2.1" unless declared_gems.include?("rubocop-lts") + gem "rubocop-lts-rspec", "~> 1.0", ">= 1.0.5" unless declared_gems.include?("rubocop-lts-rspec") + gem "rubocop-ruby3_2", "~> 3.0", ">= 3.0.6" unless declared_gems.include?("rubocop-ruby3_2") else - eval_gemfile('style_local.gemfile') + eval_gemfile("style_local.gemfile") end end diff --git a/gems/ast-crispr-markdown-markly/gemfiles/modular/style_local.gemfile b/gems/ast-crispr-markdown-markly/gemfiles/modular/style_local.gemfile index 96bd46552..ef961a7cf 100644 --- a/gems/ast-crispr-markdown-markly/gemfiles/modular/style_local.gemfile +++ b/gems/ast-crispr-markdown-markly/gemfiles/modular/style_local.gemfile @@ -14,19 +14,21 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] -nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) +nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] +nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == "nomono" } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + if nomono_locked + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] + end end -Kernel.send(:gem, 'nomono', *nomono_activation_requirements) -require 'nomono/bundler' +Kernel.send(:gem, "nomono", *nomono_activation_requirements) +require "nomono/bundler" local_gems = %w[rubocop-lts rubocop-lts-rspec rubocop-ruby3_2 standard-rubocop-lts] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) @@ -36,11 +38,11 @@ local_gems_to_eval = local_gems - %w[ast-crispr-markdown-markly] - declared_gems platform :mri do eval_nomono_gems( gems: local_gems_to_eval, - prefix: 'RUBOCOP_LTS', - path_env: 'RUBOCOP_LTS_LOCAL', - vendored_gems_env: 'VENDORED_GEMS', - vendor_gem_dir_env: 'VENDOR_GEM_DIR', - debug_env: 'RUBOCOP_LTS_DEBUG', - root: %w[src rubocop-lts] + prefix: "RUBOCOP_LTS", + path_env: "RUBOCOP_LTS_LOCAL", + vendored_gems_env: "VENDORED_GEMS", + vendor_gem_dir_env: "VENDOR_GEM_DIR", + debug_env: "RUBOCOP_LTS_DEBUG", + root: ["src", "rubocop-lts"] ) end diff --git a/gems/ast-crispr-markdown-markly/gemfiles/modular/templating.gemfile b/gems/ast-crispr-markdown-markly/gemfiles/modular/templating.gemfile index a672de184..47138ffbb 100644 --- a/gems/ast-crispr-markdown-markly/gemfiles/modular/templating.gemfile +++ b/gems/ast-crispr-markdown-markly/gemfiles/modular/templating.gemfile @@ -1,18 +1,18 @@ # frozen_string_literal: true -structuredmerge_remote = ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false').zero? -kettle_remote = ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? +structuredmerge_remote = ENV.fetch("STRUCTUREDMERGE_DEV", "false").casecmp("false").zero? +kettle_remote = ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false").zero? if structuredmerge_remote # Parser dependencies for released installs. - gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' + gem "tree_sitter_language_pack", "~> 1.13", ">= 1.13.3" # Merge recipes for released installs. - gem 'kettle-jem', '>= 7.0' + gem "kettle-jem", ">= 7.0" end if kettle_remote # Template/plugin checks for released installs. - gem 'kettle-drift', '~> 1.0', '>= 1.0.6', require: false + gem "kettle-drift", "~> 1.0", ">= 1.0.6", require: false end # Set STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local development with path-based dependencies. @@ -21,4 +21,4 @@ end # # Set KETTLE_DEV_DEV=/path/to/my for local development with Kettle plugin gems. # When false (default / CI), released Kettle plugin gems are used. -eval_gemfile 'templating_local.gemfile' unless structuredmerge_remote && kettle_remote +eval_gemfile "templating_local.gemfile" unless structuredmerge_remote && kettle_remote diff --git a/gems/ast-crispr-markdown-markly/gemfiles/modular/templating_local.gemfile b/gems/ast-crispr-markdown-markly/gemfiles/modular/templating_local.gemfile index 558511bf4..fee33c6c0 100644 --- a/gems/ast-crispr-markdown-markly/gemfiles/modular/templating_local.gemfile +++ b/gems/ast-crispr-markdown-markly/gemfiles/modular/templating_local.gemfile @@ -12,19 +12,21 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] -nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) +nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] +nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == "nomono" } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + if nomono_locked + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] + end end -Kernel.send(:gem, 'nomono', *nomono_activation_requirements) -require 'nomono/bundler' +Kernel.send(:gem, "nomono", *nomono_activation_requirements) +require "nomono/bundler" structuredmerge_local_gems = %w[ tree_haver @@ -67,25 +69,25 @@ structuredmerge_local_gems_to_eval = structuredmerge_local_gems - %w[ast-crispr- kettle_dev_local_gems_to_eval = kettle_dev_local_gems - %w[ast-crispr-markdown-markly] - declared_gems platform :mri do - if ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false') != 0 + if ENV.fetch("STRUCTUREDMERGE_DEV", "false").casecmp("false") != 0 eval_nomono_gems( gems: structuredmerge_local_gems_to_eval, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - vendored_gems_env: 'VENDORED_GEMS', - vendor_gem_dir_env: 'VENDOR_GEM_DIR', - debug_env: 'STRUCTUREDMERGE_DEBUG' + prefix: "STRUCTUREDMERGE", + path_env: "STRUCTUREDMERGE_DEV", + vendored_gems_env: "VENDORED_GEMS", + vendor_gem_dir_env: "VENDOR_GEM_DIR", + debug_env: "STRUCTUREDMERGE_DEBUG" ) end - if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false') != 0 + if ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false") != 0 eval_nomono_gems( gems: kettle_dev_local_gems_to_eval, - prefix: 'KETTLE_DEV', - path_env: 'KETTLE_DEV_DEV', - vendored_gems_env: 'VENDORED_GEMS', - vendor_gem_dir_env: 'VENDOR_GEM_DIR', - debug_env: 'KETTLE_DEV_DEBUG' + prefix: "KETTLE_DEV", + path_env: "KETTLE_DEV_DEV", + vendored_gems_env: "VENDORED_GEMS", + vendor_gem_dir_env: "VENDOR_GEM_DIR", + debug_env: "KETTLE_DEV_DEBUG" ) end end diff --git a/gems/ast-crispr-markdown-markly/gemfiles/modular/webrick/r4/v1.9.gemfile b/gems/ast-crispr-markdown-markly/gemfiles/modular/webrick/r4/v1.9.gemfile index b1329ba84..eaab4a473 100644 --- a/gems/ast-crispr-markdown-markly/gemfiles/modular/webrick/r4/v1.9.gemfile +++ b/gems/ast-crispr-markdown-markly/gemfiles/modular/webrick/r4/v1.9.gemfile @@ -1 +1 @@ -gem 'webrick', '~> 1.9' +gem "webrick", "~> 1.9" diff --git a/gems/ast-crispr-markdown-markly/gemfiles/modular/webrick/vHEAD.gemfile b/gems/ast-crispr-markdown-markly/gemfiles/modular/webrick/vHEAD.gemfile index c7e6f81a1..8a789b634 100644 --- a/gems/ast-crispr-markdown-markly/gemfiles/modular/webrick/vHEAD.gemfile +++ b/gems/ast-crispr-markdown-markly/gemfiles/modular/webrick/vHEAD.gemfile @@ -1 +1 @@ -gem 'webrick', '>= 1.9' +gem "webrick", ">= 1.9" diff --git a/gems/ast-crispr-markdown-markly/gemfiles/modular/x_std_libs.gemfile b/gems/ast-crispr-markdown-markly/gemfiles/modular/x_std_libs.gemfile index b1f43c097..77aad43f2 100644 --- a/gems/ast-crispr-markdown-markly/gemfiles/modular/x_std_libs.gemfile +++ b/gems/ast-crispr-markdown-markly/gemfiles/modular/x_std_libs.gemfile @@ -1,12 +1,12 @@ ### Std Lib Extracted Gems ruby_version = Gem::Version.new(RUBY_VERSION) -if ruby_version >= Gem::Version.new('4.0') - eval_gemfile 'x_std_libs/r4/libs.gemfile' -elsif ruby_version >= Gem::Version.new('3.2') - eval_gemfile 'x_std_libs/r3/libs.gemfile' -elsif ruby_version >= Gem::Version.new('3.1') - eval_gemfile 'x_std_libs/r3.1/libs.gemfile' +if ruby_version >= Gem::Version.new("4.0") + eval_gemfile "x_std_libs/r4/libs.gemfile" +elsif ruby_version >= Gem::Version.new("3.2") + eval_gemfile "x_std_libs/r3/libs.gemfile" +elsif ruby_version >= Gem::Version.new("3.1") + eval_gemfile "x_std_libs/r3.1/libs.gemfile" else - eval_gemfile 'x_std_libs/r2/libs.gemfile' + eval_gemfile "x_std_libs/r2/libs.gemfile" end diff --git a/gems/ast-crispr-markdown-markly/gemfiles/modular/x_std_libs/r2/libs.gemfile b/gems/ast-crispr-markdown-markly/gemfiles/modular/x_std_libs/r2/libs.gemfile index 16a5e3d70..441c4f03a 100644 --- a/gems/ast-crispr-markdown-markly/gemfiles/modular/x_std_libs/r2/libs.gemfile +++ b/gems/ast-crispr-markdown-markly/gemfiles/modular/x_std_libs/r2/libs.gemfile @@ -1,3 +1,3 @@ -eval_gemfile '../../erb/r2/v3.0.gemfile' -eval_gemfile '../../mutex_m/r2/v0.3.gemfile' -eval_gemfile '../../stringio/r2/v3.0.gemfile' +eval_gemfile "../../erb/r2/v3.0.gemfile" +eval_gemfile "../../mutex_m/r2/v0.3.gemfile" +eval_gemfile "../../stringio/r2/v3.0.gemfile" diff --git a/gems/ast-crispr-markdown-markly/gemfiles/modular/x_std_libs/r3/libs.gemfile b/gems/ast-crispr-markdown-markly/gemfiles/modular/x_std_libs/r3/libs.gemfile index 220ff95c1..c293a3ddd 100644 --- a/gems/ast-crispr-markdown-markly/gemfiles/modular/x_std_libs/r3/libs.gemfile +++ b/gems/ast-crispr-markdown-markly/gemfiles/modular/x_std_libs/r3/libs.gemfile @@ -1,3 +1,3 @@ -eval_gemfile '../../erb/r3/v5.0.gemfile' -eval_gemfile '../../mutex_m/r3/v0.3.gemfile' -eval_gemfile '../../stringio/r3/v3.0.gemfile' +eval_gemfile "../../erb/r3/v5.0.gemfile" +eval_gemfile "../../mutex_m/r3/v0.3.gemfile" +eval_gemfile "../../stringio/r3/v3.0.gemfile" diff --git a/gems/ast-crispr-markdown-markly/gemfiles/modular/x_std_libs/r4/libs.gemfile b/gems/ast-crispr-markdown-markly/gemfiles/modular/x_std_libs/r4/libs.gemfile index e2f6501eb..eb5574247 100644 --- a/gems/ast-crispr-markdown-markly/gemfiles/modular/x_std_libs/r4/libs.gemfile +++ b/gems/ast-crispr-markdown-markly/gemfiles/modular/x_std_libs/r4/libs.gemfile @@ -1,6 +1,6 @@ -eval_gemfile '../../erb/r4/v5.0.gemfile' -eval_gemfile '../../mutex_m/r4/v0.3.gemfile' -eval_gemfile '../../stringio/r4/v3.0.gemfile' -eval_gemfile '../../benchmark/r4/v0.5.gemfile' -eval_gemfile '../../cgi/r4/v0.5.gemfile' -eval_gemfile '../../webrick/r4/v1.9.gemfile' +eval_gemfile "../../erb/r4/v5.0.gemfile" +eval_gemfile "../../mutex_m/r4/v0.3.gemfile" +eval_gemfile "../../stringio/r4/v3.0.gemfile" +eval_gemfile "../../benchmark/r4/v0.5.gemfile" +eval_gemfile "../../cgi/r4/v0.5.gemfile" +eval_gemfile "../../webrick/r4/v1.9.gemfile" diff --git a/gems/ast-crispr-markdown-markly/gemfiles/modular/x_std_libs/vHEAD.gemfile b/gems/ast-crispr-markdown-markly/gemfiles/modular/x_std_libs/vHEAD.gemfile index ab75cccf1..d4d5b16c9 100644 --- a/gems/ast-crispr-markdown-markly/gemfiles/modular/x_std_libs/vHEAD.gemfile +++ b/gems/ast-crispr-markdown-markly/gemfiles/modular/x_std_libs/vHEAD.gemfile @@ -1,6 +1,6 @@ -eval_gemfile '../erb/vHEAD.gemfile' -eval_gemfile '../mutex_m/vHEAD.gemfile' -eval_gemfile '../stringio/vHEAD.gemfile' -eval_gemfile '../benchmark/vHEAD.gemfile' -eval_gemfile '../cgi/vHEAD.gemfile' -eval_gemfile '../webrick/vHEAD.gemfile' +eval_gemfile "../erb/vHEAD.gemfile" +eval_gemfile "../mutex_m/vHEAD.gemfile" +eval_gemfile "../stringio/vHEAD.gemfile" +eval_gemfile "../benchmark/vHEAD.gemfile" +eval_gemfile "../cgi/vHEAD.gemfile" +eval_gemfile "../webrick/vHEAD.gemfile" diff --git a/gems/ast-crispr-markdown-markly/lib/ast/crispr/markdown/markly/version.rb b/gems/ast-crispr-markdown-markly/lib/ast/crispr/markdown/markly/version.rb index ba5f0b149..e184c556f 100644 --- a/gems/ast-crispr-markdown-markly/lib/ast/crispr/markdown/markly/version.rb +++ b/gems/ast-crispr-markdown-markly/lib/ast/crispr/markdown/markly/version.rb @@ -5,7 +5,7 @@ module Crispr module Markdown module Markly module Version - VERSION = '7.1.0' + VERSION = "7.1.0" end VERSION = Version::VERSION # Traditional Constant Location end diff --git a/gems/ast-crispr-markdown-markly/spec/spec_helper.rb b/gems/ast-crispr-markdown-markly/spec/spec_helper.rb index 4173fdcf7..5eedbdb78 100644 --- a/gems/ast-crispr-markdown-markly/spec/spec_helper.rb +++ b/gems/ast-crispr-markdown-markly/spec/spec_helper.rb @@ -7,11 +7,16 @@ # NOTE: Gemfiles for non-coverage appraisals may not have kettle-soup-cover. # The rescue LoadError handles that scenario. begin - require 'kettle-soup-cover' - require 'simplecov' if Kettle::Soup::Cover::DO_COV # `.simplecov` is run here! -rescue LoadError => e + require "kettle-soup-cover" + if Kettle::Soup::Cover::DO_COV + # Requiring simplecov loads the project-local `.simplecov`. + require "simplecov" + require "kettle/soup/cover/config" + SimpleCov.start + end +rescue LoadError => error # check the error message and re-raise when unexpected - raise e unless e.message.include?('kettle') + raise error unless error.message.include?("kettle") end # External RSpec & related config diff --git a/gems/ast-merge/.simplecov b/gems/ast-merge/.simplecov index a53a73661..0372395aa 100644 --- a/gems/ast-merge/.simplecov +++ b/gems/ast-merge/.simplecov @@ -10,5 +10,5 @@ # If the values for minimum coverage need to change, they should be changed both there, # and in 2 places in .github/workflows/coverage.yml. SimpleCov.configure do - cover "lib/**/*.rb", "lib/**/*.rake", "exe/*.rb" + cover 'lib/**/*.rb', 'lib/**/*.rake', 'exe/*.rb' end diff --git a/gems/ast-merge/Gemfile b/gems/ast-merge/Gemfile index a0f90796e..acece68fe 100644 --- a/gems/ast-merge/Gemfile +++ b/gems/ast-merge/Gemfile @@ -6,7 +6,7 @@ # kettle-jem will then preserve content between those markers across template runs. # kettle-jem:unfreeze -source "https://gem.coop" +source 'https://gem.coop' git_source(:codeberg) { |repo_name| "https://codeberg.org/#{repo_name}" } git_source(:gitlab) { |repo_name| "https://gitlab.com/#{repo_name}" } @@ -19,57 +19,53 @@ git_source(:gitlab) { |repo_name| "https://gitlab.com/#{repo_name}" } gemspec # Local workspace dependency wiring for *_local.gemfile overrides -nomono_requirements = ["~> 1.0", ">= 1.0.8"] -gem "nomono", *nomono_requirements, require: false # ruby >= 2.2 +nomono_requirements = ['~> 1.0', '>= 1.0.8'] +gem 'nomono', *nomono_requirements, require: false # ruby >= 2.2 # Direct sibling dependencies (env-switched via STRUCTUREDMERGE_DEV) direct_sibling_gems = %w[ tree_haver ] -direct_sibling_dev = ENV.fetch("STRUCTUREDMERGE_DEV", "") +direct_sibling_dev = ENV.fetch('STRUCTUREDMERGE_DEV', '') direct_sibling_local = !direct_sibling_dev.empty? && !%w[false 0 no off].include?(direct_sibling_dev.downcase) -direct_sibling_templating = ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? +direct_sibling_templating = ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero?) - direct_sibling_dev_was_set = ENV.key?("STRUCTUREDMERGE_DEV") - direct_sibling_dev_original = ENV.fetch("STRUCTUREDMERGE_DEV", nil) + (direct_sibling_local || + ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) + direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') + direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) begin nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path("Gemfile.lock", __dir__) + nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == "nomono" } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - if nomono_locked - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] - end - end - Kernel.send(:gem, "nomono", *nomono_activation_requirements) - require "nomono/bundler" - if direct_sibling_templating && !direct_sibling_local - ENV["STRUCTUREDMERGE_DEV"] = File.expand_path("..", __dir__) + Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked end + Kernel.send(:gem, 'nomono', *nomono_activation_requirements) + require 'nomono/bundler' + ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local eval_nomono_gems( gems: direct_sibling_gems, - prefix: "STRUCTUREDMERGE", - path_env: "STRUCTUREDMERGE_DEV", - root: ["src", "my", "structuredmerge"] + prefix: 'STRUCTUREDMERGE', + path_env: 'STRUCTUREDMERGE_DEV', + root: %w[src my structuredmerge] ) rescue LoadError - warn "Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies." + warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' ensure if direct_sibling_templating && !direct_sibling_local if direct_sibling_dev_was_set - ENV["STRUCTUREDMERGE_DEV"] = direct_sibling_dev_original + ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original else - ENV.delete("STRUCTUREDMERGE_DEV") + ENV.delete('STRUCTUREDMERGE_DEV') end end end @@ -156,28 +152,28 @@ if direct_sibling_gems.any? && end # Use released TSLP with the Ruby ABI platform-gem fix. -gem "tree_sitter_language_pack", "~> 1.13", ">= 1.13.3" +gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' # Templating (env-switched: STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local paths) -eval_gemfile "gemfiles/modular/templating.gemfile" if ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? +eval_gemfile 'gemfiles/modular/templating.gemfile' if ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? # Debugging -eval_gemfile "gemfiles/modular/debug.gemfile" +eval_gemfile 'gemfiles/modular/debug.gemfile' # Code Coverage (env-switched: KETTLE_DEV_DEV=true for local paths) -eval_gemfile "gemfiles/modular/coverage.gemfile" +eval_gemfile 'gemfiles/modular/coverage.gemfile' # Linting -eval_gemfile "gemfiles/modular/style.gemfile" +eval_gemfile 'gemfiles/modular/style.gemfile' # Documentation -eval_gemfile "gemfiles/modular/documentation.gemfile" +eval_gemfile 'gemfiles/modular/documentation.gemfile' # Optional -eval_gemfile "gemfiles/modular/optional.gemfile" +eval_gemfile 'gemfiles/modular/optional.gemfile' ### Std Lib Extracted Gems -eval_gemfile "gemfiles/modular/x_std_libs.gemfile" +eval_gemfile 'gemfiles/modular/x_std_libs.gemfile' # See unlocked_deps appraisal for more details on irb inclusion -gem "irb", "~> 1.17" # ruby >= 2.7 +gem 'irb', '~> 1.17' # ruby >= 2.7 diff --git a/gems/ast-merge/Rakefile b/gems/ast-merge/Rakefile index 6b4e21dec..339c9a3cb 100644 --- a/gems/ast-merge/Rakefile +++ b/gems/ast-merge/Rakefile @@ -130,23 +130,23 @@ end ### DUPLICATE DRIFT TASKS begin - require "kettle/drift" + require 'kettle/drift' Kettle::Drift.install_tasks rescue LoadError - desc("(stub) kettle:drift:check is unavailable") - task("kettle:drift:check") do + desc('(stub) kettle:drift:check is unavailable') + task('kettle:drift:check') do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc("(stub) kettle:drift:update is unavailable") - task("kettle:drift:update") do + desc('(stub) kettle:drift:update is unavailable') + task('kettle:drift:update') do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc("(stub) kettle:drift:force_update is unavailable") - task("kettle:drift:force_update") do + desc('(stub) kettle:drift:force_update is unavailable') + task('kettle:drift:force_update') do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc("(stub) kettle:drift is unavailable") - task("kettle:drift" => "kettle:drift:update") + desc('(stub) kettle:drift is unavailable') + task('kettle:drift' => 'kettle:drift:update') end ### TEMPLATING TASKS diff --git a/gems/ast-merge/bin/yard b/gems/ast-merge/bin/yard index a7e8b6eed..5d516ad6f 100755 --- a/gems/ast-merge/bin/yard +++ b/gems/ast-merge/bin/yard @@ -12,4 +12,4 @@ # `yard` / `bin/yard`. Keep this binstub as a handoff to the task so # humans and tools that reach for `bin/yard` still run the full docs # workflow with post-processing hooks. -exec("bundle", "exec", "rake", "yard") +exec('bundle', 'exec', 'rake', 'yard') diff --git a/gems/ast-merge/gemfiles/modular/cgi/r4/v0.5.gemfile b/gems/ast-merge/gemfiles/modular/cgi/r4/v0.5.gemfile index 19ed967c3..17ad97260 100644 --- a/gems/ast-merge/gemfiles/modular/cgi/r4/v0.5.gemfile +++ b/gems/ast-merge/gemfiles/modular/cgi/r4/v0.5.gemfile @@ -1 +1 @@ -gem "cgi", "~> 0.5" +gem 'cgi', '~> 0.5' diff --git a/gems/ast-merge/gemfiles/modular/cgi/vHEAD.gemfile b/gems/ast-merge/gemfiles/modular/cgi/vHEAD.gemfile index ef8b816ce..650fbf033 100644 --- a/gems/ast-merge/gemfiles/modular/cgi/vHEAD.gemfile +++ b/gems/ast-merge/gemfiles/modular/cgi/vHEAD.gemfile @@ -1 +1 @@ -gem "cgi", ">= 0.5" +gem 'cgi', '>= 0.5' diff --git a/gems/ast-merge/gemfiles/modular/coverage.gemfile b/gems/ast-merge/gemfiles/modular/coverage.gemfile index 52d737872..b93014b6b 100644 --- a/gems/ast-merge/gemfiles/modular/coverage.gemfile +++ b/gems/ast-merge/gemfiles/modular/coverage.gemfile @@ -4,11 +4,11 @@ # Set KETTLE_DEV_DEV=true for local development with path-based dependencies. # When false (default / CI), remote released gems are used. -if ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false").zero? +if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? # Coverage (remote/released) platform :mri do - gem "kettle-soup-cover", "~> 3.0", ">= 3.0.3", require: false + gem 'kettle-soup-cover', '~> 3.0', '>= 3.0.3', require: false end else - eval_gemfile "coverage_local.gemfile" + eval_gemfile 'coverage_local.gemfile' end diff --git a/gems/ast-merge/gemfiles/modular/coverage_local.gemfile b/gems/ast-merge/gemfiles/modular/coverage_local.gemfile index c950b8d78..f556973ee 100644 --- a/gems/ast-merge/gemfiles/modular/coverage_local.gemfile +++ b/gems/ast-merge/gemfiles/modular/coverage_local.gemfile @@ -11,21 +11,19 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] -nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) +nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] +nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == "nomono" } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - if nomono_locked - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] - end + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked end -Kernel.send(:gem, "nomono", *nomono_activation_requirements) -require "nomono/bundler" +Kernel.send(:gem, 'nomono', *nomono_activation_requirements) +require 'nomono/bundler' local_gems = %w[kettle-dev kettle-test kettle-soup-cover kettle-drift] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) @@ -35,21 +33,21 @@ local_gems_to_eval = local_gems - %w[ast-merge] - declared_gems platform :mri do eval_nomono_gems( gems: local_gems_to_eval, - prefix: "KETTLE_DEV", - path_env: "KETTLE_DEV_DEV", - vendored_gems_env: "VENDORED_GEMS", - vendor_gem_dir_env: "VENDOR_GEM_DIR", - debug_env: "KETTLE_DEV_DEBUG" + prefix: 'KETTLE_DEV', + path_env: 'KETTLE_DEV_DEV', + vendored_gems_env: 'VENDORED_GEMS', + vendor_gem_dir_env: 'VENDOR_GEM_DIR', + debug_env: 'KETTLE_DEV_DEBUG' ) - if ENV.fetch("GALTZO_FLOSS_DEV", "false").casecmp("false") != 0 + if ENV.fetch('GALTZO_FLOSS_DEV', 'false').casecmp('false') != 0 eval_nomono_gems( gems: %w[turbo_tests2], - prefix: "GALTZO_FLOSS", - path_env: "GALTZO_FLOSS_DEV", - vendored_gems_env: "GALTZO_FLOSS_VENDORED_GEMS", - vendor_gem_dir_env: "GALTZO_FLOSS_VENDOR_GEM_DIR", - debug_env: "GALTZO_FLOSS_DEBUG" + prefix: 'GALTZO_FLOSS', + path_env: 'GALTZO_FLOSS_DEV', + vendored_gems_env: 'GALTZO_FLOSS_VENDORED_GEMS', + vendor_gem_dir_env: 'GALTZO_FLOSS_VENDOR_GEM_DIR', + debug_env: 'GALTZO_FLOSS_DEBUG' ) end end diff --git a/gems/ast-merge/gemfiles/modular/debug.gemfile b/gems/ast-merge/gemfiles/modular/debug.gemfile index 4e15b1a3a..eed8d4d1e 100644 --- a/gems/ast-merge/gemfiles/modular/debug.gemfile +++ b/gems/ast-merge/gemfiles/modular/debug.gemfile @@ -13,10 +13,10 @@ platform :mri do # Debugging - Ensure ENV["DEBUG"] == "true" to use debuggers within spec suite # Use binding.break, binding.b, or debugger in code - gem "debug", ">= 1.1" # ruby >= 2.7 + gem 'debug', '>= 1.1' # ruby >= 2.7 # Dev Console - Binding.pry - Irb replacement # gem "pry", "~> 0.14" # ruby >= 2.0 end -gem "gem_bench", "~> 2.0", ">= 2.0.5" +gem 'gem_bench', '~> 2.0', '>= 2.0.5' diff --git a/gems/ast-merge/gemfiles/modular/documentation.gemfile b/gems/ast-merge/gemfiles/modular/documentation.gemfile index d8215416e..9d4535f12 100644 --- a/gems/ast-merge/gemfiles/modular/documentation.gemfile +++ b/gems/ast-merge/gemfiles/modular/documentation.gemfile @@ -7,20 +7,20 @@ # # Documentation -gem "kramdown", "~> 2.5", ">= 2.5.2", require: false # Ruby >= 2.5 -gem "kramdown-parser-gfm", "~> 1.1", require: false # Ruby >= 2.3 -gem "yaml-converter", "~> 0.2", ">= 0.2.3", require: false # Ruby >= 3.2 -gem "yard", "~> 0.9", ">= 0.9.45", require: false -gem "yard-junk", "~> 0.1", ">= 0.1.0", require: false # Ruby >= 3.1 -gem "yard-relative_markdown_links", "~> 0.6", require: false +gem 'kramdown', '~> 2.5', '>= 2.5.2', require: false # Ruby >= 2.5 +gem 'kramdown-parser-gfm', '~> 1.1', require: false # Ruby >= 2.3 +gem 'yaml-converter', '~> 0.2', '>= 0.2.3', require: false # Ruby >= 3.2 +gem 'yard', '~> 0.9', '>= 0.9.45', require: false +gem 'yard-junk', '~> 0.1', '>= 0.1.0', require: false # Ruby >= 3.1 +gem 'yard-relative_markdown_links', '~> 0.6', require: false -if ENV.fetch("GALTZO_FLOSS_DEV", "false").casecmp("false").zero? - gem "yard-fence", "~> 0.9", ">= 0.9.6", require: false # Ruby >= 3.2 - gem "yard-timekeeper", "~> 0.2", ">= 0.2.4", require: false - gem "yard-yaml", "~> 0.2", ">= 0.2.3", require: false +if ENV.fetch('GALTZO_FLOSS_DEV', 'false').casecmp('false').zero? + gem 'yard-fence', '~> 0.9', '>= 0.9.6', require: false # Ruby >= 3.2 + gem 'yard-timekeeper', '~> 0.2', '>= 0.2.4', require: false + gem 'yard-yaml', '~> 0.2', '>= 0.2.3', require: false else - eval_gemfile "documentation_local.gemfile" + eval_gemfile 'documentation_local.gemfile' end # Std Lib extractions -gem "rdoc", "~> 6.11", require: false unless ENV.fetch("KJ_FRAMEWORK_MATRIX_GEM", "") == "rdoc" +gem 'rdoc', '~> 6.11', require: false unless ENV.fetch('KJ_FRAMEWORK_MATRIX_GEM', '') == 'rdoc' diff --git a/gems/ast-merge/gemfiles/modular/documentation_local.gemfile b/gems/ast-merge/gemfiles/modular/documentation_local.gemfile index b1bc573f7..3c1453057 100644 --- a/gems/ast-merge/gemfiles/modular/documentation_local.gemfile +++ b/gems/ast-merge/gemfiles/modular/documentation_local.gemfile @@ -11,21 +11,19 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] -nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) +nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] +nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == "nomono" } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - if nomono_locked - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] - end + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked end -Kernel.send(:gem, "nomono", *nomono_activation_requirements) -require "nomono/bundler" +Kernel.send(:gem, 'nomono', *nomono_activation_requirements) +require 'nomono/bundler' local_gems = %w[yard-fence yard-timekeeper yard-yaml] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) @@ -34,9 +32,9 @@ local_gems_to_eval = local_gems - %w[ast-merge] - declared_gems # export GALTZO_FLOSS_DEV=/path/to/galtzo-floss eval_nomono_gems( gems: local_gems_to_eval, - prefix: "GALTZO_FLOSS", - path_env: "GALTZO_FLOSS_DEV", - vendored_gems_env: "GALTZO_FLOSS_VENDORED_GEMS", - vendor_gem_dir_env: "GALTZO_FLOSS_VENDOR_GEM_DIR", - debug_env: "GALTZO_FLOSS_DEBUG" + prefix: 'GALTZO_FLOSS', + path_env: 'GALTZO_FLOSS_DEV', + vendored_gems_env: 'GALTZO_FLOSS_VENDORED_GEMS', + vendor_gem_dir_env: 'GALTZO_FLOSS_VENDOR_GEM_DIR', + debug_env: 'GALTZO_FLOSS_DEBUG' ) diff --git a/gems/ast-merge/gemfiles/modular/erb/r2/v3.0.gemfile b/gems/ast-merge/gemfiles/modular/erb/r2/v3.0.gemfile index c03bd8d85..7c83a239b 100644 --- a/gems/ast-merge/gemfiles/modular/erb/r2/v3.0.gemfile +++ b/gems/ast-merge/gemfiles/modular/erb/r2/v3.0.gemfile @@ -1 +1 @@ -gem "erb", "~> 3.0" # ruby >= 2.7.0 +gem 'erb', '~> 3.0' # ruby >= 2.7.0 diff --git a/gems/ast-merge/gemfiles/modular/erb/r3/v5.0.gemfile b/gems/ast-merge/gemfiles/modular/erb/r3/v5.0.gemfile index 1bd029cc1..ec7ff451f 100644 --- a/gems/ast-merge/gemfiles/modular/erb/r3/v5.0.gemfile +++ b/gems/ast-merge/gemfiles/modular/erb/r3/v5.0.gemfile @@ -1 +1 @@ -gem "erb", "~> 6.0", ">= 6.0.6" # ruby >= 3.2.0 +gem 'erb', '~> 6.0', '>= 6.0.6' # ruby >= 3.2.0 diff --git a/gems/ast-merge/gemfiles/modular/erb/r4/v5.0.gemfile b/gems/ast-merge/gemfiles/modular/erb/r4/v5.0.gemfile index 1bd029cc1..ec7ff451f 100644 --- a/gems/ast-merge/gemfiles/modular/erb/r4/v5.0.gemfile +++ b/gems/ast-merge/gemfiles/modular/erb/r4/v5.0.gemfile @@ -1 +1 @@ -gem "erb", "~> 6.0", ">= 6.0.6" # ruby >= 3.2.0 +gem 'erb', '~> 6.0', '>= 6.0.6' # ruby >= 3.2.0 diff --git a/gems/ast-merge/gemfiles/modular/erb/vHEAD.gemfile b/gems/ast-merge/gemfiles/modular/erb/vHEAD.gemfile index 48fee4218..ea0101185 100644 --- a/gems/ast-merge/gemfiles/modular/erb/vHEAD.gemfile +++ b/gems/ast-merge/gemfiles/modular/erb/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 3.2 -gem "erb", github: "ruby/erb", branch: "master" +gem 'erb', github: 'ruby/erb', branch: 'master' diff --git a/gems/ast-merge/gemfiles/modular/json/truffleruby_22_3.gemfile b/gems/ast-merge/gemfiles/modular/json/truffleruby_22_3.gemfile index b0e69ab11..9b2f8d96a 100644 --- a/gems/ast-merge/gemfiles/modular/json/truffleruby_22_3.gemfile +++ b/gems/ast-merge/gemfiles/modular/json/truffleruby_22_3.gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -if RUBY_ENGINE == "truffleruby" && RUBY_ENGINE_VERSION.start_with?("22.3") +if RUBY_ENGINE == 'truffleruby' && RUBY_ENGINE_VERSION.start_with?('22.3') # TruffleRuby 22.3 ships the json default gem from its emulated MRI Ruby. - gem "json", "= 2.5.1" + gem 'json', '= 2.5.1' end diff --git a/gems/ast-merge/gemfiles/modular/json/truffleruby_23_0.gemfile b/gems/ast-merge/gemfiles/modular/json/truffleruby_23_0.gemfile index 7b2660a2b..d787a5ef4 100644 --- a/gems/ast-merge/gemfiles/modular/json/truffleruby_23_0.gemfile +++ b/gems/ast-merge/gemfiles/modular/json/truffleruby_23_0.gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -if RUBY_ENGINE == "truffleruby" && RUBY_ENGINE_VERSION.start_with?("23.0") +if RUBY_ENGINE == 'truffleruby' && RUBY_ENGINE_VERSION.start_with?('23.0') # TruffleRuby 23.0 ships the json default gem from its emulated MRI Ruby. - gem "json", "= 2.6.1" + gem 'json', '= 2.6.1' end diff --git a/gems/ast-merge/gemfiles/modular/json/truffleruby_23_1.gemfile b/gems/ast-merge/gemfiles/modular/json/truffleruby_23_1.gemfile index dfa21f2e4..d78486b0e 100644 --- a/gems/ast-merge/gemfiles/modular/json/truffleruby_23_1.gemfile +++ b/gems/ast-merge/gemfiles/modular/json/truffleruby_23_1.gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -if RUBY_ENGINE == "truffleruby" && RUBY_ENGINE_VERSION.start_with?("23.1") +if RUBY_ENGINE == 'truffleruby' && RUBY_ENGINE_VERSION.start_with?('23.1') # TruffleRuby 23.1 ships the json default gem from its emulated MRI Ruby. - gem "json", "= 2.6.3" + gem 'json', '= 2.6.3' end diff --git a/gems/ast-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile b/gems/ast-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile index 42e9d9bd4..e27f1bbae 100644 --- a/gems/ast-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile +++ b/gems/ast-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 -gem "mutex_m", "~> 0.2" +gem 'mutex_m', '~> 0.2' diff --git a/gems/ast-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile b/gems/ast-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile index 42e9d9bd4..e27f1bbae 100644 --- a/gems/ast-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile +++ b/gems/ast-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 -gem "mutex_m", "~> 0.2" +gem 'mutex_m', '~> 0.2' diff --git a/gems/ast-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile b/gems/ast-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile index 42e9d9bd4..e27f1bbae 100644 --- a/gems/ast-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile +++ b/gems/ast-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 -gem "mutex_m", "~> 0.2" +gem 'mutex_m', '~> 0.2' diff --git a/gems/ast-merge/gemfiles/modular/mutex_m/vHEAD.gemfile b/gems/ast-merge/gemfiles/modular/mutex_m/vHEAD.gemfile index 8af3b6fca..9dac2f6cb 100644 --- a/gems/ast-merge/gemfiles/modular/mutex_m/vHEAD.gemfile +++ b/gems/ast-merge/gemfiles/modular/mutex_m/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 (dependency of omniauth) -gem "mutex_m", github: "ruby/mutex_m", branch: "master" +gem 'mutex_m', github: 'ruby/mutex_m', branch: 'master' diff --git a/gems/ast-merge/gemfiles/modular/optional.gemfile b/gems/ast-merge/gemfiles/modular/optional.gemfile index 80bc45196..9ea429538 100644 --- a/gems/ast-merge/gemfiles/modular/optional.gemfile +++ b/gems/ast-merge/gemfiles/modular/optional.gemfile @@ -9,8 +9,8 @@ # Optional dependencies are not depended on directly, but may be used if present. # Required for curated binstubs generated by kettle-jem install -gem "rbs", ">= 3.0", require: false # ruby >= 3.1 +gem 'rbs', '>= 3.0', require: false # ruby >= 3.1 # Required for kettle-pre-release # URL parsing with Unicode support (falls back to URI if not available) -gem "addressable", ">= 2.8", "< 3" # ruby >= 2.2 +gem 'addressable', '>= 2.8', '< 3' # ruby >= 2.2 diff --git a/gems/ast-merge/gemfiles/modular/rspec.gemfile b/gems/ast-merge/gemfiles/modular/rspec.gemfile index 72fdf8b7f..2af210a41 100644 --- a/gems/ast-merge/gemfiles/modular/rspec.gemfile +++ b/gems/ast-merge/gemfiles/modular/rspec.gemfile @@ -1,4 +1,4 @@ -gem "rspec_junit_formatter", - github: "pboling/rspec_junit_formatter", - branch: "main", - ref: "9e6bcaaedd49477b62878ed568dc4ada5cc7cb5e" +gem 'rspec_junit_formatter', + github: 'pboling/rspec_junit_formatter', + branch: 'main', + ref: '9e6bcaaedd49477b62878ed568dc4ada5cc7cb5e' diff --git a/gems/ast-merge/gemfiles/modular/runtime_heads.gemfile b/gems/ast-merge/gemfiles/modular/runtime_heads.gemfile index 02f134c7f..ebf17c529 100644 --- a/gems/ast-merge/gemfiles/modular/runtime_heads.gemfile +++ b/gems/ast-merge/gemfiles/modular/runtime_heads.gemfile @@ -8,4 +8,4 @@ # Test against HEAD of runtime dependencies so we can proactively file bugs -eval_gemfile("x_std_libs/vHEAD.gemfile") +eval_gemfile('x_std_libs/vHEAD.gemfile') diff --git a/gems/ast-merge/gemfiles/modular/stringio/r2/v3.0.gemfile b/gems/ast-merge/gemfiles/modular/stringio/r2/v3.0.gemfile index e85bb18ee..3616f4e3a 100644 --- a/gems/ast-merge/gemfiles/modular/stringio/r2/v3.0.gemfile +++ b/gems/ast-merge/gemfiles/modular/stringio/r2/v3.0.gemfile @@ -2,4 +2,4 @@ # NOT SEMVER # Version 3.0.7 dropped support for Ruby <= 2.7 # Version 3.0.0 dropped support for Ruby <= 2.4 -gem "stringio", ">= 3.0" +gem 'stringio', '>= 3.0' diff --git a/gems/ast-merge/gemfiles/modular/stringio/r3/v3.0.gemfile b/gems/ast-merge/gemfiles/modular/stringio/r3/v3.0.gemfile index e85bb18ee..3616f4e3a 100644 --- a/gems/ast-merge/gemfiles/modular/stringio/r3/v3.0.gemfile +++ b/gems/ast-merge/gemfiles/modular/stringio/r3/v3.0.gemfile @@ -2,4 +2,4 @@ # NOT SEMVER # Version 3.0.7 dropped support for Ruby <= 2.7 # Version 3.0.0 dropped support for Ruby <= 2.4 -gem "stringio", ">= 3.0" +gem 'stringio', '>= 3.0' diff --git a/gems/ast-merge/gemfiles/modular/stringio/r4/v3.0.gemfile b/gems/ast-merge/gemfiles/modular/stringio/r4/v3.0.gemfile index e85bb18ee..3616f4e3a 100644 --- a/gems/ast-merge/gemfiles/modular/stringio/r4/v3.0.gemfile +++ b/gems/ast-merge/gemfiles/modular/stringio/r4/v3.0.gemfile @@ -2,4 +2,4 @@ # NOT SEMVER # Version 3.0.7 dropped support for Ruby <= 2.7 # Version 3.0.0 dropped support for Ruby <= 2.4 -gem "stringio", ">= 3.0" +gem 'stringio', '>= 3.0' diff --git a/gems/ast-merge/gemfiles/modular/stringio/vHEAD.gemfile b/gems/ast-merge/gemfiles/modular/stringio/vHEAD.gemfile index 5f2a74126..78f5f5d8a 100644 --- a/gems/ast-merge/gemfiles/modular/stringio/vHEAD.gemfile +++ b/gems/ast-merge/gemfiles/modular/stringio/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 (dependency of omniauth) -gem "stringio", github: "ruby/stringio", branch: "master" +gem 'stringio', github: 'ruby/stringio', branch: 'master' diff --git a/gems/ast-merge/gemfiles/modular/style.gemfile b/gems/ast-merge/gemfiles/modular/style.gemfile index 35de4dcd6..4dbcc02c0 100644 --- a/gems/ast-merge/gemfiles/modular/style.gemfile +++ b/gems/ast-merge/gemfiles/modular/style.gemfile @@ -9,23 +9,23 @@ # Style tasks run on the latest Ruby; RuboCop-LTS selects the compatibility # rules for the configured Ruby floor independently from task dependency floors. -gem "reek", "~> 6.5", ">= 6.5.0" +gem 'reek', '~> 6.5', '>= 6.5.0' platform :mri do - gem "appraisal2-rubocop", "~> 1.0", ">= 1.0.0", require: false - gem "rubocop-gradual", "~> 0.4", ">= 0.4.0" - gem "rubocop-minitest", "~> 0.40", ">= 0.40.0" - gem "rubocop-on-rbs", "~> 2.0", ">= 2.0.0" # ruby >= 3.2.0 + gem 'appraisal2-rubocop', '~> 1.0', '>= 1.0.0', require: false + gem 'rubocop-gradual', '~> 0.4', '>= 0.4.0' + gem 'rubocop-minitest', '~> 0.40', '>= 0.40.0' + gem 'rubocop-on-rbs', '~> 2.0', '>= 2.0.0' # ruby >= 3.2.0 # gem "rubocop", "~> 1.73", ">= 1.73.2" # constrained by standard - gem "rubocop-packaging", "~> 0.6", ">= 0.6.0" - gem "standard", "~> 1.56", ">= 1.56.0" + gem 'rubocop-packaging', '~> 0.6', '>= 0.6.0' + gem 'standard', '~> 1.56', '>= 1.56.0' - if ENV.fetch("RUBOCOP_LTS_LOCAL", "false").casecmp("false").zero? + if ENV.fetch('RUBOCOP_LTS_LOCAL', 'false').casecmp('false').zero? declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) - gem "rubocop-lts", "~> 24.2", ">= 24.2.1" unless declared_gems.include?("rubocop-lts") - gem "rubocop-lts-rspec", "~> 1.0", ">= 1.0.5" unless declared_gems.include?("rubocop-lts-rspec") - gem "rubocop-ruby3_2", "~> 3.0", ">= 3.0.6" unless declared_gems.include?("rubocop-ruby3_2") + gem 'rubocop-lts', '~> 24.2', '>= 24.2.1' unless declared_gems.include?('rubocop-lts') + gem 'rubocop-lts-rspec', '~> 1.0', '>= 1.0.5' unless declared_gems.include?('rubocop-lts-rspec') + gem 'rubocop-ruby3_2', '~> 3.0', '>= 3.0.6' unless declared_gems.include?('rubocop-ruby3_2') else - eval_gemfile("style_local.gemfile") + eval_gemfile('style_local.gemfile') end end diff --git a/gems/ast-merge/gemfiles/modular/style_local.gemfile b/gems/ast-merge/gemfiles/modular/style_local.gemfile index a003c7b12..e4a06d74e 100644 --- a/gems/ast-merge/gemfiles/modular/style_local.gemfile +++ b/gems/ast-merge/gemfiles/modular/style_local.gemfile @@ -14,21 +14,19 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] -nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) +nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] +nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == "nomono" } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - if nomono_locked - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] - end + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked end -Kernel.send(:gem, "nomono", *nomono_activation_requirements) -require "nomono/bundler" +Kernel.send(:gem, 'nomono', *nomono_activation_requirements) +require 'nomono/bundler' local_gems = %w[rubocop-lts rubocop-lts-rspec rubocop-ruby3_2 standard-rubocop-lts] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) @@ -38,11 +36,11 @@ local_gems_to_eval = local_gems - %w[ast-merge] - declared_gems platform :mri do eval_nomono_gems( gems: local_gems_to_eval, - prefix: "RUBOCOP_LTS", - path_env: "RUBOCOP_LTS_LOCAL", - vendored_gems_env: "VENDORED_GEMS", - vendor_gem_dir_env: "VENDOR_GEM_DIR", - debug_env: "RUBOCOP_LTS_DEBUG", - root: ["src", "rubocop-lts"] + prefix: 'RUBOCOP_LTS', + path_env: 'RUBOCOP_LTS_LOCAL', + vendored_gems_env: 'VENDORED_GEMS', + vendor_gem_dir_env: 'VENDOR_GEM_DIR', + debug_env: 'RUBOCOP_LTS_DEBUG', + root: %w[src rubocop-lts] ) end diff --git a/gems/ast-merge/gemfiles/modular/templating.gemfile b/gems/ast-merge/gemfiles/modular/templating.gemfile index 47138ffbb..a672de184 100644 --- a/gems/ast-merge/gemfiles/modular/templating.gemfile +++ b/gems/ast-merge/gemfiles/modular/templating.gemfile @@ -1,18 +1,18 @@ # frozen_string_literal: true -structuredmerge_remote = ENV.fetch("STRUCTUREDMERGE_DEV", "false").casecmp("false").zero? -kettle_remote = ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false").zero? +structuredmerge_remote = ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false').zero? +kettle_remote = ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? if structuredmerge_remote # Parser dependencies for released installs. - gem "tree_sitter_language_pack", "~> 1.13", ">= 1.13.3" + gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' # Merge recipes for released installs. - gem "kettle-jem", ">= 7.0" + gem 'kettle-jem', '>= 7.0' end if kettle_remote # Template/plugin checks for released installs. - gem "kettle-drift", "~> 1.0", ">= 1.0.6", require: false + gem 'kettle-drift', '~> 1.0', '>= 1.0.6', require: false end # Set STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local development with path-based dependencies. @@ -21,4 +21,4 @@ end # # Set KETTLE_DEV_DEV=/path/to/my for local development with Kettle plugin gems. # When false (default / CI), released Kettle plugin gems are used. -eval_gemfile "templating_local.gemfile" unless structuredmerge_remote && kettle_remote +eval_gemfile 'templating_local.gemfile' unless structuredmerge_remote && kettle_remote diff --git a/gems/ast-merge/gemfiles/modular/templating_local.gemfile b/gems/ast-merge/gemfiles/modular/templating_local.gemfile index efcd3bad8..cd50e9a1e 100644 --- a/gems/ast-merge/gemfiles/modular/templating_local.gemfile +++ b/gems/ast-merge/gemfiles/modular/templating_local.gemfile @@ -12,21 +12,19 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] -nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) +nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] +nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == "nomono" } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - if nomono_locked - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] - end + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked end -Kernel.send(:gem, "nomono", *nomono_activation_requirements) -require "nomono/bundler" +Kernel.send(:gem, 'nomono', *nomono_activation_requirements) +require 'nomono/bundler' structuredmerge_local_gems = %w[ tree_haver @@ -69,25 +67,25 @@ structuredmerge_local_gems_to_eval = structuredmerge_local_gems - %w[ast-merge] kettle_dev_local_gems_to_eval = kettle_dev_local_gems - %w[ast-merge] - declared_gems platform :mri do - if ENV.fetch("STRUCTUREDMERGE_DEV", "false").casecmp("false") != 0 + if ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false') != 0 eval_nomono_gems( gems: structuredmerge_local_gems_to_eval, - prefix: "STRUCTUREDMERGE", - path_env: "STRUCTUREDMERGE_DEV", - vendored_gems_env: "VENDORED_GEMS", - vendor_gem_dir_env: "VENDOR_GEM_DIR", - debug_env: "STRUCTUREDMERGE_DEBUG" + prefix: 'STRUCTUREDMERGE', + path_env: 'STRUCTUREDMERGE_DEV', + vendored_gems_env: 'VENDORED_GEMS', + vendor_gem_dir_env: 'VENDOR_GEM_DIR', + debug_env: 'STRUCTUREDMERGE_DEBUG' ) end - if ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false") != 0 + if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false') != 0 eval_nomono_gems( gems: kettle_dev_local_gems_to_eval, - prefix: "KETTLE_DEV", - path_env: "KETTLE_DEV_DEV", - vendored_gems_env: "VENDORED_GEMS", - vendor_gem_dir_env: "VENDOR_GEM_DIR", - debug_env: "KETTLE_DEV_DEBUG" + prefix: 'KETTLE_DEV', + path_env: 'KETTLE_DEV_DEV', + vendored_gems_env: 'VENDORED_GEMS', + vendor_gem_dir_env: 'VENDOR_GEM_DIR', + debug_env: 'KETTLE_DEV_DEBUG' ) end end diff --git a/gems/ast-merge/gemfiles/modular/webrick/r4/v1.9.gemfile b/gems/ast-merge/gemfiles/modular/webrick/r4/v1.9.gemfile index eaab4a473..b1329ba84 100644 --- a/gems/ast-merge/gemfiles/modular/webrick/r4/v1.9.gemfile +++ b/gems/ast-merge/gemfiles/modular/webrick/r4/v1.9.gemfile @@ -1 +1 @@ -gem "webrick", "~> 1.9" +gem 'webrick', '~> 1.9' diff --git a/gems/ast-merge/gemfiles/modular/webrick/vHEAD.gemfile b/gems/ast-merge/gemfiles/modular/webrick/vHEAD.gemfile index 8a789b634..c7e6f81a1 100644 --- a/gems/ast-merge/gemfiles/modular/webrick/vHEAD.gemfile +++ b/gems/ast-merge/gemfiles/modular/webrick/vHEAD.gemfile @@ -1 +1 @@ -gem "webrick", ">= 1.9" +gem 'webrick', '>= 1.9' diff --git a/gems/ast-merge/gemfiles/modular/x_std_libs.gemfile b/gems/ast-merge/gemfiles/modular/x_std_libs.gemfile index 77aad43f2..b1f43c097 100644 --- a/gems/ast-merge/gemfiles/modular/x_std_libs.gemfile +++ b/gems/ast-merge/gemfiles/modular/x_std_libs.gemfile @@ -1,12 +1,12 @@ ### Std Lib Extracted Gems ruby_version = Gem::Version.new(RUBY_VERSION) -if ruby_version >= Gem::Version.new("4.0") - eval_gemfile "x_std_libs/r4/libs.gemfile" -elsif ruby_version >= Gem::Version.new("3.2") - eval_gemfile "x_std_libs/r3/libs.gemfile" -elsif ruby_version >= Gem::Version.new("3.1") - eval_gemfile "x_std_libs/r3.1/libs.gemfile" +if ruby_version >= Gem::Version.new('4.0') + eval_gemfile 'x_std_libs/r4/libs.gemfile' +elsif ruby_version >= Gem::Version.new('3.2') + eval_gemfile 'x_std_libs/r3/libs.gemfile' +elsif ruby_version >= Gem::Version.new('3.1') + eval_gemfile 'x_std_libs/r3.1/libs.gemfile' else - eval_gemfile "x_std_libs/r2/libs.gemfile" + eval_gemfile 'x_std_libs/r2/libs.gemfile' end diff --git a/gems/ast-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile b/gems/ast-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile index 441c4f03a..16a5e3d70 100644 --- a/gems/ast-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile +++ b/gems/ast-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile @@ -1,3 +1,3 @@ -eval_gemfile "../../erb/r2/v3.0.gemfile" -eval_gemfile "../../mutex_m/r2/v0.3.gemfile" -eval_gemfile "../../stringio/r2/v3.0.gemfile" +eval_gemfile '../../erb/r2/v3.0.gemfile' +eval_gemfile '../../mutex_m/r2/v0.3.gemfile' +eval_gemfile '../../stringio/r2/v3.0.gemfile' diff --git a/gems/ast-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile b/gems/ast-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile index c293a3ddd..220ff95c1 100644 --- a/gems/ast-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile +++ b/gems/ast-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile @@ -1,3 +1,3 @@ -eval_gemfile "../../erb/r3/v5.0.gemfile" -eval_gemfile "../../mutex_m/r3/v0.3.gemfile" -eval_gemfile "../../stringio/r3/v3.0.gemfile" +eval_gemfile '../../erb/r3/v5.0.gemfile' +eval_gemfile '../../mutex_m/r3/v0.3.gemfile' +eval_gemfile '../../stringio/r3/v3.0.gemfile' diff --git a/gems/ast-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile b/gems/ast-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile index eb5574247..e2f6501eb 100644 --- a/gems/ast-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile +++ b/gems/ast-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile @@ -1,6 +1,6 @@ -eval_gemfile "../../erb/r4/v5.0.gemfile" -eval_gemfile "../../mutex_m/r4/v0.3.gemfile" -eval_gemfile "../../stringio/r4/v3.0.gemfile" -eval_gemfile "../../benchmark/r4/v0.5.gemfile" -eval_gemfile "../../cgi/r4/v0.5.gemfile" -eval_gemfile "../../webrick/r4/v1.9.gemfile" +eval_gemfile '../../erb/r4/v5.0.gemfile' +eval_gemfile '../../mutex_m/r4/v0.3.gemfile' +eval_gemfile '../../stringio/r4/v3.0.gemfile' +eval_gemfile '../../benchmark/r4/v0.5.gemfile' +eval_gemfile '../../cgi/r4/v0.5.gemfile' +eval_gemfile '../../webrick/r4/v1.9.gemfile' diff --git a/gems/ast-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile b/gems/ast-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile index d4d5b16c9..ab75cccf1 100644 --- a/gems/ast-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile +++ b/gems/ast-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile @@ -1,6 +1,6 @@ -eval_gemfile "../erb/vHEAD.gemfile" -eval_gemfile "../mutex_m/vHEAD.gemfile" -eval_gemfile "../stringio/vHEAD.gemfile" -eval_gemfile "../benchmark/vHEAD.gemfile" -eval_gemfile "../cgi/vHEAD.gemfile" -eval_gemfile "../webrick/vHEAD.gemfile" +eval_gemfile '../erb/vHEAD.gemfile' +eval_gemfile '../mutex_m/vHEAD.gemfile' +eval_gemfile '../stringio/vHEAD.gemfile' +eval_gemfile '../benchmark/vHEAD.gemfile' +eval_gemfile '../cgi/vHEAD.gemfile' +eval_gemfile '../webrick/vHEAD.gemfile' diff --git a/gems/ast-merge/lib/ast/merge/version.rb b/gems/ast-merge/lib/ast/merge/version.rb index 3ef823f4d..6e7dc90f7 100644 --- a/gems/ast-merge/lib/ast/merge/version.rb +++ b/gems/ast-merge/lib/ast/merge/version.rb @@ -3,7 +3,7 @@ module Ast module Merge module Version - VERSION = "7.1.0" + VERSION = '7.1.0' end VERSION = Version::VERSION # Traditional Constant Location end diff --git a/gems/ast-merge/spec/spec_helper.rb b/gems/ast-merge/spec/spec_helper.rb index dcc7b2a7e..eb1762057 100644 --- a/gems/ast-merge/spec/spec_helper.rb +++ b/gems/ast-merge/spec/spec_helper.rb @@ -7,16 +7,16 @@ # NOTE: Gemfiles for non-coverage appraisals may not have kettle-soup-cover. # The rescue LoadError handles that scenario. begin - require "kettle-soup-cover" + require 'kettle-soup-cover' if Kettle::Soup::Cover::DO_COV # Requiring simplecov loads the project-local `.simplecov`. - require "simplecov" - require "kettle/soup/cover/config" + require 'simplecov' + require 'kettle/soup/cover/config' SimpleCov.start end -rescue LoadError => error +rescue LoadError => e # check the error message and re-raise when unexpected - raise error unless error.message.include?("kettle") + raise e unless e.message.include?('kettle') end # External RSpec & related config diff --git a/gems/json-merge/.kettle-drift.lock b/gems/json-merge/.kettle-drift.lock index 43dfedd67..7cc6a5131 100644 --- a/gems/json-merge/.kettle-drift.lock +++ b/gems/json-merge/.kettle-drift.lock @@ -1,10 +1,74 @@ { + "(direct_sibling_local ||\nENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?)": [ + { + "file": "Gemfile", + "lines": [ + 80, + 120 + ] + } + ], + ".find { |spec| spec.name == 'nomono' }\nnomono_locked = nomono_locked_spec &&": [ + { + "file": "Gemfile", + "lines": [ + 91, + 131 + ] + } + ], + "ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?)\ndirect_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV')": [ + { + "file": "Gemfile", + "lines": [ + 81, + 121 + ] + } + ], + "Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version)\nnomono_activation_requirements = [\"= #{nomono_locked_spec.version}\"] if nomono_locked": [ + { + "file": "Gemfile", + "lines": [ + 93, + 133 + ] + } + ], + "Kernel.send(:gem, 'nomono', *nomono_activation_requirements)\nrequire 'nomono/bundler'": [ + { + "file": "Gemfile", + "lines": [ + 96, + 136 + ] + } + ], + "direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV')\ndirect_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil)": [ + { + "file": "Gemfile", + "lines": [ + 82, + 122 + ] + } + ], "eval_nomono_gems(\ngems: direct_sibling_gems,": [ { "file": "Gemfile", "lines": [ 60, - 100 + 100, + 140 + ] + } + ], + "gems: direct_sibling_gems,\nprefix: 'STRUCTUREDMERGE',": [ + { + "file": "Gemfile", + "lines": [ + 101, + 141 ] } ], @@ -13,7 +77,17 @@ "file": "Gemfile", "lines": [ 43, - 87 + 87, + 127 + ] + } + ], + "if direct_sibling_dev_was_set\nENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original": [ + { + "file": "Gemfile", + "lines": [ + 110, + 150 ] } ], @@ -22,7 +96,8 @@ "file": "Gemfile", "lines": [ 35, - 79 + 79, + 119 ] } ], @@ -31,7 +106,17 @@ "file": "Gemfile", "lines": [ 69, - 109 + 109, + 149 + ] + } + ], + "nomono_activation_requirements = nomono_requirements\nnomono_lockfile = File.expand_path('Gemfile.lock', __dir__)": [ + { + "file": "Gemfile", + "lines": [ + 85, + 125 ] } ], @@ -40,7 +125,8 @@ "file": "Gemfile", "lines": [ 48, - 92 + 92, + 132 ] } ], @@ -49,7 +135,53 @@ "file": "Gemfile", "lines": [ 44, - 88 + 88, + 128 + ] + } + ], + "nomono_lockfile = File.expand_path('Gemfile.lock', __dir__)\nif File.file?(nomono_lockfile)": [ + { + "file": "Gemfile", + "lines": [ + 86, + 126 + ] + } + ], + "path_env: 'STRUCTUREDMERGE_DEV',\nroot: %w[src my structuredmerge]": [ + { + "file": "Gemfile", + "lines": [ + 103, + 143 + ] + } + ], + "prefix: 'STRUCTUREDMERGE',\npath_env: 'STRUCTUREDMERGE_DEV',": [ + { + "file": "Gemfile", + "lines": [ + 102, + 142 + ] + } + ], + "require 'nomono/bundler'\nENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local": [ + { + "file": "Gemfile", + "lines": [ + 97, + 137 + ] + } + ], + "rescue LoadError\nwarn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.'": [ + { + "file": "Gemfile", + "lines": [ + 106, + 146 ] } ] diff --git a/gems/json-merge/Gemfile b/gems/json-merge/Gemfile index 5fcfa797e..59331f423 100644 --- a/gems/json-merge/Gemfile +++ b/gems/json-merge/Gemfile @@ -6,7 +6,7 @@ # kettle-jem will then preserve content between those markers across template runs. # kettle-jem:unfreeze -source 'https://gem.coop' +source "https://gem.coop" git_source(:codeberg) { |repo_name| "https://codeberg.org/#{repo_name}" } git_source(:gitlab) { |repo_name| "https://gitlab.com/#{repo_name}" } @@ -19,18 +19,62 @@ git_source(:gitlab) { |repo_name| "https://gitlab.com/#{repo_name}" } gemspec # Local workspace dependency wiring for *_local.gemfile overrides -nomono_requirements = ['~> 1.0', '>= 1.0.8'] -gem 'nomono', *nomono_requirements, require: false # ruby >= 2.2 +nomono_requirements = ["~> 1.0", ">= 1.0.8"] +gem "nomono", *nomono_requirements, require: false # ruby >= 2.2 # Direct sibling dependencies (env-switched via STRUCTUREDMERGE_DEV) direct_sibling_gems = %w[ ast-merge tree_haver ] -direct_sibling_dev = ENV.fetch('STRUCTUREDMERGE_DEV', '') +direct_sibling_dev = ENV.fetch("STRUCTUREDMERGE_DEV", "") direct_sibling_local = !direct_sibling_dev.empty? && !%w[false 0 no off].include?(direct_sibling_dev.downcase) -direct_sibling_templating = ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? +direct_sibling_templating = ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? + +if direct_sibling_gems.any? && + (direct_sibling_local || + ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero?) + direct_sibling_dev_was_set = ENV.key?("STRUCTUREDMERGE_DEV") + direct_sibling_dev_original = ENV.fetch("STRUCTUREDMERGE_DEV", nil) + begin + nomono_activation_requirements = nomono_requirements + nomono_lockfile = File.expand_path("Gemfile.lock", __dir__) + if File.file?(nomono_lockfile) + nomono_locked_spec = Bundler::LockfileParser + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == "nomono" } + nomono_locked = nomono_locked_spec && + Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) + if nomono_locked + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] + end + end + Kernel.send(:gem, "nomono", *nomono_activation_requirements) + require "nomono/bundler" + if direct_sibling_templating && !direct_sibling_local + ENV["STRUCTUREDMERGE_DEV"] = File.expand_path("..", __dir__) + end + + eval_nomono_gems( + gems: direct_sibling_gems, + prefix: "STRUCTUREDMERGE", + path_env: "STRUCTUREDMERGE_DEV", + root: ["src", "my", "structuredmerge"] + ) + rescue LoadError + warn "Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies." + ensure + if direct_sibling_templating && !direct_sibling_local + if direct_sibling_dev_was_set + ENV["STRUCTUREDMERGE_DEV"] = direct_sibling_dev_original + else + ENV.delete("STRUCTUREDMERGE_DEV") + end + end + end +end if direct_sibling_gems.any? && (direct_sibling_local || @@ -113,28 +157,28 @@ if direct_sibling_gems.any? && end # Use released TSLP with the Ruby ABI platform-gem fix. -gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' +gem "tree_sitter_language_pack", "~> 1.13", ">= 1.13.3" # Templating (env-switched: STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local paths) -eval_gemfile 'gemfiles/modular/templating.gemfile' if ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? +eval_gemfile "gemfiles/modular/templating.gemfile" if ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? # Debugging -eval_gemfile 'gemfiles/modular/debug.gemfile' +eval_gemfile "gemfiles/modular/debug.gemfile" # Code Coverage (env-switched: KETTLE_DEV_DEV=true for local paths) -eval_gemfile 'gemfiles/modular/coverage.gemfile' +eval_gemfile "gemfiles/modular/coverage.gemfile" # Linting -eval_gemfile 'gemfiles/modular/style.gemfile' +eval_gemfile "gemfiles/modular/style.gemfile" # Documentation -eval_gemfile 'gemfiles/modular/documentation.gemfile' +eval_gemfile "gemfiles/modular/documentation.gemfile" # Optional -eval_gemfile 'gemfiles/modular/optional.gemfile' +eval_gemfile "gemfiles/modular/optional.gemfile" ### Std Lib Extracted Gems -eval_gemfile 'gemfiles/modular/x_std_libs.gemfile' +eval_gemfile "gemfiles/modular/x_std_libs.gemfile" # See unlocked_deps appraisal for more details on irb inclusion -gem 'irb', '~> 1.17' # ruby >= 2.7 +gem "irb", "~> 1.17" # ruby >= 2.7 diff --git a/gems/json-merge/Gemfile.lock b/gems/json-merge/Gemfile.lock index c7c31e8b4..638f43645 100644 --- a/gems/json-merge/Gemfile.lock +++ b/gems/json-merge/Gemfile.lock @@ -6,6 +6,266 @@ PATH tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly + specs: + ast-crispr-markdown-markly (7.1.0) + ast-crispr (= 7.1.0) + markly-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism + specs: + ast-crispr-ruby-prism (7.1.0) + ast-crispr (= 7.1.0) + prism-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr + specs: + ast-crispr (7.1.0) + ast-merge (= 7.1.0) + service_actor (~> 3.9) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git + specs: + ast-merge-git (7.1.0) + ast-merge (= 7.1.0) + json-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge + specs: + ast-merge (7.1.0) + benchmark + token-resolver (~> 2.0, >= 2.0.4) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template + specs: + ast-template (7.1.0) + ast-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge + specs: + bash-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge + specs: + binary-merge (7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge + specs: + citrus-toml-merge (7.1.0) + toml-merge (= 7.1.0) + toml-rb (~> 4.1) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge + specs: + commonmarker-merge (7.1.0) + commonmarker (~> 2.2) + markdown-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge + specs: + dotenv-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge + specs: + go-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem + specs: + kettle-jem (7.1.0) + addressable (>= 2.8, < 3) + ast-crispr-markdown-markly (= 7.1.0) + ast-crispr-ruby-prism (= 7.1.0) + ast-merge (= 7.1.0) + bash-merge (= 7.1.0) + citrus-toml-merge (= 7.1.0) + commonmarker-merge (= 7.1.0) + dotenv-merge (= 7.1.0) + json-merge (= 7.1.0) + kettle-dev (~> 2.3, >= 2.3.5) + kettle-rb (~> 0.1, >= 0.1.4) + kramdown-merge (= 7.1.0) + markdown-merge (= 7.1.0) + markly-merge (= 7.1.0) + prism-merge (= 7.1.0) + psych-merge (= 7.1.0) + rbs (>= 3.10) + rbs-merge (= 7.1.0) + ruby-merge (= 7.1.0) + token-resolver (~> 2.0, >= 2.0.4) + toml-merge (= 7.1.0) + toml-rb (~> 4.2) + tree_haver (= 7.1.0) + yaml-merge (= 7.1.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge + specs: + kramdown-merge (7.1.0) + kramdown (~> 2.5) + markdown-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge + specs: + markdown-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge + specs: + markly-merge (7.1.0) + markdown-merge (= 7.1.0) + markly (~> 0.9) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge + specs: + parslet-toml-merge (7.1.0) + toml (~> 0.3) + toml-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge + specs: + plain-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge + specs: + prism-merge (7.1.0) + prism (~> 1.6) + ruby-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge + specs: + psych-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + yaml-merge (= 7.1.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge + specs: + rbs-merge (7.1.0) + ast-merge (= 7.1.0) + rbs (>= 3.10) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge + specs: + ruby-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge + specs: + rust-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb + specs: + smorg-rb (7.1.0) + ast-merge (= 7.1.0) + ast-merge-git (= 7.1.0) + diff-lcs (~> 1.5) + go-merge (= 7.1.0) + json-merge (= 7.1.0) + kettle-jem (= 7.1.0) + markly-merge (= 7.1.0) + plain-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge + specs: + toml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver + specs: + tree_haver (7.1.0) + citrus (~> 3.0) + parslet (~> 2.0) + tree_sitter_language_pack (>= 1.13.2, < 2.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge + specs: + typescript-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge + specs: + yaml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge + specs: + zip-merge (7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + GEM remote: https://gem.coop/ specs: @@ -21,11 +281,6 @@ GEM rubocop (>= 1.0) version_gem (~> 1.1, >= 1.1.14) ast (2.4.3) - ast-merge (7.1.0) - benchmark - token-resolver (~> 2.0, >= 2.0.4) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) backports (3.25.3) benchmark (0.5.0) bigdecimal (4.1.2) @@ -35,6 +290,7 @@ GEM cgi (0.5.2) citrus (3.0.2) cmdparse (3.0.7) + commonmarker (2.9.0-x86_64-linux) concurrent-ruby (1.3.8) date (3.5.1) debug (1.11.1) @@ -97,6 +353,8 @@ GEM kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) + kettle-drift (1.0.6) + version_gem (~> 1.1, >= 1.1.14) kettle-rb (0.1.5) kettle-soup-cover (3.0.4) kettle-wash (~> 0.1, >= 0.1.0) @@ -125,6 +383,7 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) + markly (0.16.0) mutex_m (0.3.0) nokogiri (1.19.4-aarch64-linux-gnu) racc (~> 1.4) @@ -287,6 +546,8 @@ GEM ruby-progressbar (1.13.0) ruby_engine (2.0.3) ruby_version (1.0.3) + service_actor (3.9.4) + zeitwerk (>= 1.0) silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) @@ -302,7 +563,7 @@ GEM simplecov (>= 0.4.1) simplecov_lcov_formatter (0.9.0) simplecov (>= 0.18) - sorbet-runtime (0.6.13347) + sorbet-runtime (0.6.13351) standard (1.56.0) language_server-protocol (~> 3.17.0.2) lint_roller (~> 1.0) @@ -341,11 +602,11 @@ GEM token-resolver (2.0.5) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.14) - tree_haver (7.1.0) - citrus (~> 3.0) - parslet (~> 2.0) - tree_sitter_language_pack (>= 1.13.2, < 2.0) - version_gem (~> 1.1, >= 1.1.9) + toml (0.3.0) + parslet (>= 1.8.0, < 3.0.0) + toml-rb (4.2.0) + citrus (~> 3.0, > 3.0) + racc (~> 1.7) tree_sitter_language_pack (1.13.3-aarch64-linux) sorbet-runtime (~> 0.5) tree_sitter_language_pack (1.13.3-arm64-darwin) @@ -404,24 +665,46 @@ DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) appraisal2-rubocop (~> 1.0, >= 1.0.0) + ast-crispr! + ast-crispr-markdown-markly! + ast-crispr-ruby-prism! + ast-merge! + ast-merge-git! + ast-template! + bash-merge! benchmark (~> 0.5, >= 0.5.0) + binary-merge! bundler-audit (~> 0.9.3) cgi (~> 0.5) + citrus-toml-merge! + commonmarker-merge! debug (>= 1.1) + dotenv-merge! erb (~> 6.0, >= 6.0.6) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.0) + go-merge! irb (~> 1.17) json-merge! kettle-dev (~> 2.0, >= 2.2.25) + kettle-drift (~> 1.0, >= 1.0.6) + kettle-jem! kettle-soup-cover (~> 3.0, >= 3.0.3) kettle-test (~> 2.0, >= 2.0.9) kramdown (~> 2.5, >= 2.5.2) + kramdown-merge! kramdown-parser-gfm (~> 1.1) + markdown-merge! + markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) + parslet-toml-merge! + plain-merge! + prism-merge! + psych-merge! rake (~> 13.0) rbs (>= 3.0) + rbs-merge! rdoc (~> 6.11) reek (~> 6.5, >= 6.5.0) require_bench (~> 1.0, >= 1.0.4) @@ -432,19 +715,27 @@ DEPENDENCIES rubocop-on-rbs (~> 2.0, >= 2.0.0) rubocop-packaging (~> 0.6, >= 0.6.0) rubocop-ruby3_2 (~> 3.0, >= 3.0.6) + ruby-merge! ruby-progressbar (~> 1.13) + rust-merge! + smorg-rb! standard (~> 1.56, >= 1.56.0) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) + toml-merge! + tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) + typescript-merge! webrick (~> 1.9) yaml-converter (~> 0.2, >= 0.2.3) + yaml-merge! yard (~> 0.9, >= 0.9.45) yard-fence (~> 0.9, >= 0.9.6) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) yard-timekeeper (~> 0.2, >= 0.2.4) yard-yaml (~> 0.2, >= 0.2.3) + zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af @@ -452,20 +743,31 @@ CHECKSUMS appraisal2 (3.2.0) sha256=ccd0b767ac4060cd7af6d16747459b6990f49c39c7b4fb1f7d1146b1e97c492f appraisal2-rubocop (1.0.0) sha256=b71410fbb014befda5340605a605b7f6f3f012739baf0acc5b4351b592c3258d ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 + ast-crispr (7.1.0) + ast-crispr-markdown-markly (7.1.0) + ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) + ast-merge-git (7.1.0) + ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 + bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd + binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 + citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 + commonmarker (2.9.0-x86_64-linux) + commonmarker-merge (7.1.0) concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 + dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -478,21 +780,28 @@ CHECKSUMS gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f + go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 json-merge (7.1.0) kettle-dev (2.3.8) sha256=9d716ff21c660a730cb4e8d41e2e2f0630a28167a354b6e2924e242102aef72c + kettle-drift (1.0.6) + kettle-jem (7.1.0) kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f kettle-soup-cover (3.0.4) kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa + kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 + markdown-merge (7.1.0) + markly (0.16.0) + markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-aarch64-linux-gnu) sha256=1269fb644a6de405057a53dd5c762b1209b43ca7424f839454d3dbc677c31a8f nokogiri (1.19.4-aarch64-linux-musl) sha256=35c65b9ce72b3bb03207bdbe7067915019dc18c1b9b59139684bd6690fdd01af @@ -506,15 +815,20 @@ CHECKSUMS parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 + parslet-toml-merge (7.1.0) + plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 + prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 + psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 + rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb @@ -549,16 +863,20 @@ CHECKSUMS rubocop-rspec_rails (2.32.0) sha256=4a0d641c72f6ebb957534f539d9d0a62c47abd8ce0d0aeee1ef4701e892a9100 rubocop-ruby3_2 (3.0.7) sha256=f53dd6d286fb05186214fc6ec116783e7f837030918e8931c05de773e98f8466 rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 + ruby-merge (7.1.0) ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 + rust-merge (7.1.0) + service_actor (3.9.4) silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed - sorbet-runtime (0.6.13347) sha256=54e7221d9f4b63f58aec79f3043752a9ba7810347c6ae0d903531591cc2d5f01 + smorg-rb (7.1.0) + sorbet-runtime (0.6.13351) sha256=f8fee17c6e3edf835dc6823d26afb9a7c8969c6710d1fabe2fb43f4e0c15c64f standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b standard-performance (1.9.0) sha256=49483d31be448292951d80e5e67cdcb576c2502103c7b40aec6f1b6e9c88e3f2 @@ -572,17 +890,22 @@ CHECKSUMS timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.5) sha256=b852f924287ffb58a440856e862b056c8ad97e74b4b2526cee43e0771f40c25c + toml (0.3.0) + toml-merge (7.1.0) + toml-rb (4.2.0) tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-aarch64-linux) sha256=55ffc7c87868cb45658338363d9eba51b4a8b0259aa88e4de368d2bd1d52fea4 tree_sitter_language_pack (1.13.3-arm64-darwin) sha256=bc2498db605f212a1dbd2465ed3f65190d7da786f6ed5d30fcf958121aeb4a5c tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 + typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 webrick (1.9.2) sha256=beb4a15fc474defed24a3bda4ffd88a490d517c9e4e6118c3edce59e45864131 yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 + yaml-merge (7.1.0) yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd @@ -590,6 +913,7 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 + zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH diff --git a/gems/json-merge/Rakefile b/gems/json-merge/Rakefile index cd3637459..eb14b860c 100644 --- a/gems/json-merge/Rakefile +++ b/gems/json-merge/Rakefile @@ -130,23 +130,23 @@ end ### DUPLICATE DRIFT TASKS begin - require 'kettle/drift' + require "kettle/drift" Kettle::Drift.install_tasks rescue LoadError - desc('(stub) kettle:drift:check is unavailable') - task('kettle:drift:check') do + desc("(stub) kettle:drift:check is unavailable") + task("kettle:drift:check") do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc('(stub) kettle:drift:update is unavailable') - task('kettle:drift:update') do + desc("(stub) kettle:drift:update is unavailable") + task("kettle:drift:update") do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc('(stub) kettle:drift:force_update is unavailable') - task('kettle:drift:force_update') do + desc("(stub) kettle:drift:force_update is unavailable") + task("kettle:drift:force_update") do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc('(stub) kettle:drift is unavailable') - task('kettle:drift' => 'kettle:drift:update') + desc("(stub) kettle:drift is unavailable") + task("kettle:drift" => "kettle:drift:update") end ### TEMPLATING TASKS diff --git a/gems/json-merge/gemfiles/modular/templating.gemfile b/gems/json-merge/gemfiles/modular/templating.gemfile index a672de184..47138ffbb 100644 --- a/gems/json-merge/gemfiles/modular/templating.gemfile +++ b/gems/json-merge/gemfiles/modular/templating.gemfile @@ -1,18 +1,18 @@ # frozen_string_literal: true -structuredmerge_remote = ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false').zero? -kettle_remote = ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? +structuredmerge_remote = ENV.fetch("STRUCTUREDMERGE_DEV", "false").casecmp("false").zero? +kettle_remote = ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false").zero? if structuredmerge_remote # Parser dependencies for released installs. - gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' + gem "tree_sitter_language_pack", "~> 1.13", ">= 1.13.3" # Merge recipes for released installs. - gem 'kettle-jem', '>= 7.0' + gem "kettle-jem", ">= 7.0" end if kettle_remote # Template/plugin checks for released installs. - gem 'kettle-drift', '~> 1.0', '>= 1.0.6', require: false + gem "kettle-drift", "~> 1.0", ">= 1.0.6", require: false end # Set STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local development with path-based dependencies. @@ -21,4 +21,4 @@ end # # Set KETTLE_DEV_DEV=/path/to/my for local development with Kettle plugin gems. # When false (default / CI), released Kettle plugin gems are used. -eval_gemfile 'templating_local.gemfile' unless structuredmerge_remote && kettle_remote +eval_gemfile "templating_local.gemfile" unless structuredmerge_remote && kettle_remote diff --git a/gems/json-merge/gemfiles/modular/templating_local.gemfile b/gems/json-merge/gemfiles/modular/templating_local.gemfile index 3a458a7d0..25573dcc8 100644 --- a/gems/json-merge/gemfiles/modular/templating_local.gemfile +++ b/gems/json-merge/gemfiles/modular/templating_local.gemfile @@ -12,19 +12,21 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] -nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) +nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] +nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == "nomono" } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + if nomono_locked + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] + end end -Kernel.send(:gem, 'nomono', *nomono_activation_requirements) -require 'nomono/bundler' +Kernel.send(:gem, "nomono", *nomono_activation_requirements) +require "nomono/bundler" structuredmerge_local_gems = %w[ tree_haver @@ -67,25 +69,25 @@ structuredmerge_local_gems_to_eval = structuredmerge_local_gems - %w[json-merge] kettle_dev_local_gems_to_eval = kettle_dev_local_gems - %w[json-merge] - declared_gems platform :mri do - if ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false') != 0 + if ENV.fetch("STRUCTUREDMERGE_DEV", "false").casecmp("false") != 0 eval_nomono_gems( gems: structuredmerge_local_gems_to_eval, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - vendored_gems_env: 'VENDORED_GEMS', - vendor_gem_dir_env: 'VENDOR_GEM_DIR', - debug_env: 'STRUCTUREDMERGE_DEBUG' + prefix: "STRUCTUREDMERGE", + path_env: "STRUCTUREDMERGE_DEV", + vendored_gems_env: "VENDORED_GEMS", + vendor_gem_dir_env: "VENDOR_GEM_DIR", + debug_env: "STRUCTUREDMERGE_DEBUG" ) end - if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false') != 0 + if ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false") != 0 eval_nomono_gems( gems: kettle_dev_local_gems_to_eval, - prefix: 'KETTLE_DEV', - path_env: 'KETTLE_DEV_DEV', - vendored_gems_env: 'VENDORED_GEMS', - vendor_gem_dir_env: 'VENDOR_GEM_DIR', - debug_env: 'KETTLE_DEV_DEBUG' + prefix: "KETTLE_DEV", + path_env: "KETTLE_DEV_DEV", + vendored_gems_env: "VENDORED_GEMS", + vendor_gem_dir_env: "VENDOR_GEM_DIR", + debug_env: "KETTLE_DEV_DEBUG" ) end end diff --git a/gems/json-merge/lib/json/merge/version.rb b/gems/json-merge/lib/json/merge/version.rb index 13f521eb3..d02d9f1a5 100644 --- a/gems/json-merge/lib/json/merge/version.rb +++ b/gems/json-merge/lib/json/merge/version.rb @@ -3,7 +3,7 @@ module Json module Merge module Version - VERSION = '7.1.0' + VERSION = "7.1.0" end VERSION = Version::VERSION # Traditional Constant Location end diff --git a/gems/markdown-merge/Gemfile.lock b/gems/markdown-merge/Gemfile.lock index 51ae3e302..75d06d22d 100644 --- a/gems/markdown-merge/Gemfile.lock +++ b/gems/markdown-merge/Gemfile.lock @@ -7,7 +7,39 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/ast-merge + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly + specs: + ast-crispr-markdown-markly (7.1.0) + ast-crispr (= 7.1.0) + markly-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism + specs: + ast-crispr-ruby-prism (7.1.0) + ast-crispr (= 7.1.0) + prism-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr + specs: + ast-crispr (7.1.0) + ast-merge (= 7.1.0) + service_actor (~> 3.9) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git + specs: + ast-merge-git (7.1.0) + ast-merge (= 7.1.0) + json-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge specs: ast-merge (7.1.0) benchmark @@ -16,7 +48,194 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/tree_haver + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template + specs: + ast-template (7.1.0) + ast-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge + specs: + bash-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge + specs: + binary-merge (7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge + specs: + citrus-toml-merge (7.1.0) + toml-merge (= 7.1.0) + toml-rb (~> 4.1) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge + specs: + commonmarker-merge (7.1.0) + commonmarker (~> 2.2) + markdown-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge + specs: + dotenv-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge + specs: + go-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge + specs: + json-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem + specs: + kettle-jem (7.1.0) + addressable (>= 2.8, < 3) + ast-crispr-markdown-markly (= 7.1.0) + ast-crispr-ruby-prism (= 7.1.0) + ast-merge (= 7.1.0) + bash-merge (= 7.1.0) + citrus-toml-merge (= 7.1.0) + commonmarker-merge (= 7.1.0) + dotenv-merge (= 7.1.0) + json-merge (= 7.1.0) + kettle-dev (~> 2.3, >= 2.3.5) + kettle-rb (~> 0.1, >= 0.1.4) + kramdown-merge (= 7.1.0) + markdown-merge (= 7.1.0) + markly-merge (= 7.1.0) + prism-merge (= 7.1.0) + psych-merge (= 7.1.0) + rbs (>= 3.10) + rbs-merge (= 7.1.0) + ruby-merge (= 7.1.0) + token-resolver (~> 2.0, >= 2.0.4) + toml-merge (= 7.1.0) + toml-rb (~> 4.2) + tree_haver (= 7.1.0) + yaml-merge (= 7.1.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge + specs: + kramdown-merge (7.1.0) + kramdown (~> 2.5) + markdown-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge + specs: + markly-merge (7.1.0) + markdown-merge (= 7.1.0) + markly (~> 0.9) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge + specs: + parslet-toml-merge (7.1.0) + toml (~> 0.3) + toml-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge + specs: + plain-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge + specs: + prism-merge (7.1.0) + prism (~> 1.6) + ruby-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge + specs: + psych-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + yaml-merge (= 7.1.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge + specs: + rbs-merge (7.1.0) + ast-merge (= 7.1.0) + rbs (>= 3.10) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge + specs: + ruby-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge + specs: + rust-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb + specs: + smorg-rb (7.1.0) + ast-merge (= 7.1.0) + ast-merge-git (= 7.1.0) + diff-lcs (~> 1.5) + go-merge (= 7.1.0) + json-merge (= 7.1.0) + kettle-jem (= 7.1.0) + markly-merge (= 7.1.0) + plain-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge + specs: + toml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver specs: tree_haver (7.1.0) citrus (~> 3.0) @@ -24,6 +243,29 @@ PATH tree_sitter_language_pack (>= 1.13.2, < 2.0) version_gem (~> 1.1, >= 1.1.9) +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge + specs: + typescript-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge + specs: + yaml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge + specs: + zip-merge (7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + GEM remote: https://gem.coop/ specs: @@ -48,6 +290,11 @@ GEM cgi (0.5.2) citrus (3.0.2) cmdparse (3.0.7) + commonmarker (2.9.0-aarch64-linux) + commonmarker (2.9.0-aarch64-linux-musl) + commonmarker (2.9.0-arm64-darwin) + commonmarker (2.9.0-x86_64-linux) + commonmarker (2.9.0-x86_64-linux-musl) concurrent-ruby (1.3.8) date (3.5.1) debug (1.11.1) @@ -110,6 +357,8 @@ GEM kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) + kettle-drift (1.0.6) + version_gem (~> 1.1, >= 1.1.14) kettle-rb (0.1.5) kettle-soup-cover (3.0.4) kettle-wash (~> 0.1, >= 0.1.0) @@ -138,6 +387,7 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) + markly (0.16.0) mutex_m (0.3.0) nokogiri (1.19.4-aarch64-linux-gnu) racc (~> 1.4) @@ -300,6 +550,8 @@ GEM ruby-progressbar (1.13.0) ruby_engine (2.0.3) ruby_version (1.0.3) + service_actor (3.9.4) + zeitwerk (>= 1.0) silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) @@ -354,6 +606,11 @@ GEM token-resolver (2.0.5) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.14) + toml (0.3.0) + parslet (>= 1.8.0, < 3.0.0) + toml-rb (4.2.0) + citrus (~> 3.0, > 3.0) + racc (~> 1.7) tree_sitter_language_pack (1.13.3-aarch64-linux) sorbet-runtime (~> 0.5) tree_sitter_language_pack (1.13.3-arm64-darwin) @@ -408,25 +665,46 @@ DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) appraisal2-rubocop (~> 1.0, >= 1.0.0) + ast-crispr! + ast-crispr-markdown-markly! + ast-crispr-ruby-prism! ast-merge! + ast-merge-git! + ast-template! + bash-merge! benchmark (~> 0.5, >= 0.5.0) + binary-merge! bundler-audit (~> 0.9.3) cgi (~> 0.5) + citrus-toml-merge! + commonmarker-merge! debug (>= 1.1) + dotenv-merge! erb (~> 6.0, >= 6.0.6) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.0) + go-merge! irb (~> 1.17) + json-merge! kettle-dev (~> 2.0, >= 2.2.25) + kettle-drift (~> 1.0, >= 1.0.6) + kettle-jem! kettle-soup-cover (~> 3.0, >= 3.0.3) kettle-test (~> 2.0, >= 2.0.9) kramdown (~> 2.5, >= 2.5.2) + kramdown-merge! kramdown-parser-gfm (~> 1.1) markdown-merge! + markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) + parslet-toml-merge! + plain-merge! + prism-merge! + psych-merge! rake (~> 13.0) rbs (>= 3.0) + rbs-merge! rdoc (~> 6.11) reek (~> 6.5, >= 6.5.0) require_bench (~> 1.0, >= 1.0.4) @@ -437,20 +715,27 @@ DEPENDENCIES rubocop-on-rbs (~> 2.0, >= 2.0.0) rubocop-packaging (~> 0.6, >= 0.6.0) rubocop-ruby3_2 (~> 3.0, >= 3.0.6) + ruby-merge! ruby-progressbar (~> 1.13) + rust-merge! + smorg-rb! standard (~> 1.56, >= 1.56.0) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) + toml-merge! tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) + typescript-merge! webrick (~> 1.9) yaml-converter (~> 0.2, >= 0.2.3) + yaml-merge! yard (~> 0.9, >= 0.9.45) yard-fence (~> 0.9, >= 0.9.6) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) yard-timekeeper (~> 0.2, >= 0.2.4) yard-yaml (~> 0.2, >= 0.2.3) + zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af @@ -458,20 +743,35 @@ CHECKSUMS appraisal2 (3.2.0) sha256=ccd0b767ac4060cd7af6d16747459b6990f49c39c7b4fb1f7d1146b1e97c492f appraisal2-rubocop (1.0.0) sha256=b71410fbb014befda5340605a605b7f6f3f012739baf0acc5b4351b592c3258d ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 + ast-crispr (7.1.0) + ast-crispr-markdown-markly (7.1.0) + ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) + ast-merge-git (7.1.0) + ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 + bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd + binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 + citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 + commonmarker (2.9.0-aarch64-linux) sha256=e2b4aadb9a2cfa4e206582641ce3a49465549ac1ed4c289fdd63b78d8f24579c + commonmarker (2.9.0-aarch64-linux-musl) sha256=1cf4d2821f2a7e64945f1ed7c4eeced586fdb27ea7fe7337788802cf8f57cfca + commonmarker (2.9.0-arm64-darwin) sha256=1748dbfa4f5813b0d2a14bb4bbfa65a4ec293aa1c825016d60029ee0e132b046 + commonmarker (2.9.0-x86_64-linux) sha256=8cfe92970eef585a19ddf6613224b91cab64d6029834661bda801f877c9c7f43 + commonmarker (2.9.0-x86_64-linux-musl) sha256=293921398b839f79ceaf55010e061357e34f053822c3b003cd0be6686176335e + commonmarker-merge (7.1.0) concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 + dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -484,21 +784,28 @@ CHECKSUMS gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f + go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 + json-merge (7.1.0) kettle-dev (2.3.9) + kettle-drift (1.0.6) sha256=46eda08fa4411d1f3c6682a95eef1c9df4e94611b3949f49d4c7b43c0ed356a3 + kettle-jem (7.1.0) kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f kettle-soup-cover (3.0.4) kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa + kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 markdown-merge (7.1.0) + markly (0.16.0) sha256=6f70d79e385b1efc9e171f74c81628826259039fe6c778e03c3924c71dac5511 + markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-aarch64-linux-gnu) sha256=1269fb644a6de405057a53dd5c762b1209b43ca7424f839454d3dbc677c31a8f nokogiri (1.19.4-aarch64-linux-musl) sha256=35c65b9ce72b3bb03207bdbe7067915019dc18c1b9b59139684bd6690fdd01af @@ -512,15 +819,20 @@ CHECKSUMS parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 + parslet-toml-merge (7.1.0) + plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 + prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 + psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 + rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb @@ -555,15 +867,19 @@ CHECKSUMS rubocop-rspec_rails (2.32.0) sha256=4a0d641c72f6ebb957534f539d9d0a62c47abd8ce0d0aeee1ef4701e892a9100 rubocop-ruby3_2 (3.0.7) sha256=f53dd6d286fb05186214fc6ec116783e7f837030918e8931c05de773e98f8466 rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 + ruby-merge (7.1.0) ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 + rust-merge (7.1.0) + service_actor (3.9.4) sha256=e63b523630b9a7e62959b2a90113b08d2565b5de9c148557b281ef847c9539ce silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed + smorg-rb (7.1.0) sorbet-runtime (0.6.13351) sha256=f8fee17c6e3edf835dc6823d26afb9a7c8969c6710d1fabe2fb43f4e0c15c64f standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b @@ -578,17 +894,22 @@ CHECKSUMS timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.5) sha256=b852f924287ffb58a440856e862b056c8ad97e74b4b2526cee43e0771f40c25c + toml (0.3.0) sha256=0a91d0f76a9036e84e44f95693b12f58d358c1df3ac8e3b5271f2056ecc6e4b9 + toml-merge (7.1.0) + toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-aarch64-linux) sha256=55ffc7c87868cb45658338363d9eba51b4a8b0259aa88e4de368d2bd1d52fea4 tree_sitter_language_pack (1.13.3-arm64-darwin) sha256=bc2498db605f212a1dbd2465ed3f65190d7da786f6ed5d30fcf958121aeb4a5c tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 + typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 webrick (1.9.2) sha256=beb4a15fc474defed24a3bda4ffd88a490d517c9e4e6118c3edce59e45864131 yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 + yaml-merge (7.1.0) yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd @@ -596,6 +917,7 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 + zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH diff --git a/gems/markly-merge/.rubocop_gradual.lock b/gems/markly-merge/.rubocop_gradual.lock index 48b28907e..a45c7dea1 100644 --- a/gems/markly-merge/.rubocop_gradual.lock +++ b/gems/markly-merge/.rubocop_gradual.lock @@ -1,5 +1,5 @@ { - ".simplecov:3376604078": [ + ".simplecov:4260650037": [ [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] ], "Rakefile:1376789005": [ diff --git a/gems/markly-merge/.simplecov b/gems/markly-merge/.simplecov index 7314e5bf9..a3cdb6a2c 100644 --- a/gems/markly-merge/.simplecov +++ b/gems/markly-merge/.simplecov @@ -4,15 +4,11 @@ # markly-merge will then preserve content between those markers across template runs. # kettle-jem:unfreeze -require 'kettle/soup/cover/config' - # Minimum coverage thresholds are set by kettle-soup-cover. # They are controlled by ENV variables loaded by `mise` from `mise.toml` # (with optional machine-local overrides in `.env.local`). # If the values for minimum coverage need to change, they should be changed both there, # and in 2 places in .github/workflows/coverage.yml. -SimpleCov.start do - track_files 'lib/**/*.rb' - track_files 'lib/**/*.rake' - track_files 'exe/*.rb' +SimpleCov.configure do + cover 'lib/**/*.rb', 'lib/**/*.rake', 'exe/*.rb' end diff --git a/gems/markly-merge/Gemfile b/gems/markly-merge/Gemfile index 9ad2a56fa..72f9ad71e 100644 --- a/gems/markly-merge/Gemfile +++ b/gems/markly-merge/Gemfile @@ -6,7 +6,7 @@ # kettle-jem will then preserve content between those markers across template runs. # kettle-jem:unfreeze -source "https://gem.coop" +source 'https://gem.coop' git_source(:codeberg) { |repo_name| "https://codeberg.org/#{repo_name}" } git_source(:gitlab) { |repo_name| "https://gitlab.com/#{repo_name}" } @@ -19,57 +19,53 @@ git_source(:gitlab) { |repo_name| "https://gitlab.com/#{repo_name}" } gemspec # Local workspace dependency wiring for *_local.gemfile overrides -nomono_requirements = ["~> 1.0", ">= 1.0.8"] -gem "nomono", *nomono_requirements, require: false # ruby >= 2.2 +nomono_requirements = ['~> 1.0', '>= 1.0.8'] +gem 'nomono', *nomono_requirements, require: false # ruby >= 2.2 # Direct sibling dependencies (env-switched via STRUCTUREDMERGE_DEV) direct_sibling_gems = %w[ markdown-merge ] -direct_sibling_dev = ENV.fetch("STRUCTUREDMERGE_DEV", "") +direct_sibling_dev = ENV.fetch('STRUCTUREDMERGE_DEV', '') direct_sibling_local = !direct_sibling_dev.empty? && !%w[false 0 no off].include?(direct_sibling_dev.downcase) -direct_sibling_templating = ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? +direct_sibling_templating = ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero?) - direct_sibling_dev_was_set = ENV.key?("STRUCTUREDMERGE_DEV") - direct_sibling_dev_original = ENV.fetch("STRUCTUREDMERGE_DEV", nil) + (direct_sibling_local || + ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) + direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') + direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) begin nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path("Gemfile.lock", __dir__) + nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == "nomono" } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - if nomono_locked - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] - end - end - Kernel.send(:gem, "nomono", *nomono_activation_requirements) - require "nomono/bundler" - if direct_sibling_templating && !direct_sibling_local - ENV["STRUCTUREDMERGE_DEV"] = File.expand_path("..", __dir__) + Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked end + Kernel.send(:gem, 'nomono', *nomono_activation_requirements) + require 'nomono/bundler' + ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local eval_nomono_gems( gems: direct_sibling_gems, - prefix: "STRUCTUREDMERGE", - path_env: "STRUCTUREDMERGE_DEV", - root: ["src", "my", "structuredmerge"] + prefix: 'STRUCTUREDMERGE', + path_env: 'STRUCTUREDMERGE_DEV', + root: %w[src my structuredmerge] ) rescue LoadError - warn "Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies." + warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' ensure if direct_sibling_templating && !direct_sibling_local if direct_sibling_dev_was_set - ENV["STRUCTUREDMERGE_DEV"] = direct_sibling_dev_original + ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original else - ENV.delete("STRUCTUREDMERGE_DEV") + ENV.delete('STRUCTUREDMERGE_DEV') end end end @@ -156,28 +152,28 @@ if direct_sibling_gems.any? && end # Use released TSLP with the Ruby ABI platform-gem fix. -gem "tree_sitter_language_pack", "~> 1.13", ">= 1.13.3" +gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' # Templating (env-switched: STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local paths) -eval_gemfile "gemfiles/modular/templating.gemfile" if ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? +eval_gemfile 'gemfiles/modular/templating.gemfile' if ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? # Debugging -eval_gemfile "gemfiles/modular/debug.gemfile" +eval_gemfile 'gemfiles/modular/debug.gemfile' # Code Coverage (env-switched: KETTLE_DEV_DEV=true for local paths) -eval_gemfile "gemfiles/modular/coverage.gemfile" +eval_gemfile 'gemfiles/modular/coverage.gemfile' # Linting -eval_gemfile "gemfiles/modular/style.gemfile" +eval_gemfile 'gemfiles/modular/style.gemfile' # Documentation -eval_gemfile "gemfiles/modular/documentation.gemfile" +eval_gemfile 'gemfiles/modular/documentation.gemfile' # Optional -eval_gemfile "gemfiles/modular/optional.gemfile" +eval_gemfile 'gemfiles/modular/optional.gemfile' ### Std Lib Extracted Gems -eval_gemfile "gemfiles/modular/x_std_libs.gemfile" +eval_gemfile 'gemfiles/modular/x_std_libs.gemfile' # See unlocked_deps appraisal for more details on irb inclusion -gem "irb", "~> 1.17" # ruby >= 2.7 +gem 'irb', '~> 1.17' # ruby >= 2.7 diff --git a/gems/markly-merge/Gemfile.lock b/gems/markly-merge/Gemfile.lock index 65c403b9a..5e28fe4f4 100644 --- a/gems/markly-merge/Gemfile.lock +++ b/gems/markly-merge/Gemfile.lock @@ -7,265 +7,13 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly - specs: - ast-crispr-markdown-markly (7.1.0) - ast-crispr (= 7.1.0) - markly-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism - specs: - ast-crispr-ruby-prism (7.1.0) - ast-crispr (= 7.1.0) - prism-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr - specs: - ast-crispr (7.1.0) - ast-merge (= 7.1.0) - service_actor (~> 3.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git - specs: - ast-merge-git (7.1.0) - ast-merge (= 7.1.0) - json-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge - specs: - ast-merge (7.1.0) - benchmark - token-resolver (~> 2.0, >= 2.0.4) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template - specs: - ast-template (7.1.0) - ast-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge - specs: - bash-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge - specs: - binary-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge - specs: - citrus-toml-merge (7.1.0) - toml-merge (= 7.1.0) - toml-rb (~> 4.1) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge - specs: - commonmarker-merge (7.1.0) - commonmarker (~> 2.2) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge - specs: - dotenv-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge - specs: - go-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge - specs: - json-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem - specs: - kettle-jem (7.1.0) - addressable (>= 2.8, < 3) - ast-crispr-markdown-markly (= 7.1.0) - ast-crispr-ruby-prism (= 7.1.0) - ast-merge (= 7.1.0) - bash-merge (= 7.1.0) - citrus-toml-merge (= 7.1.0) - commonmarker-merge (= 7.1.0) - dotenv-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-dev (~> 2.3, >= 2.3.5) - kettle-rb (~> 0.1, >= 0.1.4) - kramdown-merge (= 7.1.0) - markdown-merge (= 7.1.0) - markly-merge (= 7.1.0) - prism-merge (= 7.1.0) - psych-merge (= 7.1.0) - rbs (>= 3.10) - rbs-merge (= 7.1.0) - ruby-merge (= 7.1.0) - token-resolver (~> 2.0, >= 2.0.4) - toml-merge (= 7.1.0) - toml-rb (~> 4.2) - tree_haver (= 7.1.0) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge - specs: - kramdown-merge (7.1.0) - kramdown (~> 2.5) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge specs: markdown-merge (7.1.0) ast-merge (= 7.1.0) tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge - specs: - parslet-toml-merge (7.1.0) - toml (~> 0.3) - toml-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge - specs: - plain-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge - specs: - prism-merge (7.1.0) - prism (~> 1.6) - ruby-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge - specs: - psych-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge - specs: - rbs-merge (7.1.0) - ast-merge (= 7.1.0) - rbs (>= 3.10) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge - specs: - ruby-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge - specs: - rust-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb - specs: - smorg-rb (7.1.0) - ast-merge (= 7.1.0) - ast-merge-git (= 7.1.0) - diff-lcs (~> 1.5) - go-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-jem (= 7.1.0) - markly-merge (= 7.1.0) - plain-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge - specs: - toml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver - specs: - tree_haver (7.1.0) - citrus (~> 3.0) - parslet (~> 2.0) - tree_sitter_language_pack (>= 1.13.2, < 2.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge - specs: - typescript-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge - specs: - yaml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge - specs: - zip-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - GEM remote: https://gem.coop/ specs: @@ -281,6 +29,11 @@ GEM rubocop (>= 1.0) version_gem (~> 1.1, >= 1.1.14) ast (2.4.3) + ast-merge (7.1.0) + benchmark + token-resolver (~> 2.0, >= 2.0.4) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) backports (3.25.3) benchmark (0.5.0) bigdecimal (4.1.2) @@ -290,7 +43,6 @@ GEM cgi (0.5.2) citrus (3.0.2) cmdparse (3.0.7) - commonmarker (2.9.0-x86_64-linux) concurrent-ruby (1.3.8) date (3.5.1) debug (1.11.1) @@ -348,13 +100,11 @@ GEM rdoc (>= 4.0.0) reline (>= 0.4.2) json (2.21.1) - kettle-dev (2.3.8) + kettle-dev (2.3.9) emoji_regex (>= 15.0) kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) - kettle-drift (1.0.6) - version_gem (~> 1.1, >= 1.1.14) kettle-rb (0.1.5) kettle-soup-cover (3.0.4) kettle-wash (~> 0.1, >= 0.1.0) @@ -538,8 +288,6 @@ GEM ruby-progressbar (1.13.0) ruby_engine (2.0.3) ruby_version (1.0.3) - service_actor (3.9.4) - zeitwerk (>= 1.0) silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) @@ -555,7 +303,7 @@ GEM simplecov (>= 0.4.1) simplecov_lcov_formatter (0.9.0) simplecov (>= 0.18) - sorbet-runtime (0.6.13347) + sorbet-runtime (0.6.13351) standard (1.56.0) language_server-protocol (~> 3.17.0.2) lint_roller (~> 1.0) @@ -594,11 +342,11 @@ GEM token-resolver (2.0.5) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.14) - toml (0.3.0) - parslet (>= 1.8.0, < 3.0.0) - toml-rb (4.2.0) - citrus (~> 3.0, > 3.0) - racc (~> 1.7) + tree_haver (7.1.0) + citrus (~> 3.0) + parslet (~> 2.0) + tree_sitter_language_pack (>= 1.13.2, < 2.0) + version_gem (~> 1.1, >= 1.1.9) tree_sitter_language_pack (1.13.3-x86_64-linux) sorbet-runtime (~> 0.5) tsort (0.2.0) @@ -644,46 +392,25 @@ DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) appraisal2-rubocop (~> 1.0, >= 1.0.0) - ast-crispr! - ast-crispr-markdown-markly! - ast-crispr-ruby-prism! - ast-merge! - ast-merge-git! - ast-template! - bash-merge! benchmark (~> 0.5, >= 0.5.0) - binary-merge! bundler-audit (~> 0.9.3) cgi (~> 0.5) - citrus-toml-merge! - commonmarker-merge! debug (>= 1.1) - dotenv-merge! erb (~> 6.0, >= 6.0.6) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.0) - go-merge! irb (~> 1.17) - json-merge! kettle-dev (~> 2.0, >= 2.2.25) - kettle-drift (~> 1.0, >= 1.0.6) - kettle-jem! kettle-soup-cover (~> 3.0, >= 3.0.3) kettle-test (~> 2.0, >= 2.0.9) kramdown (~> 2.5, >= 2.5.2) - kramdown-merge! kramdown-parser-gfm (~> 1.1) markdown-merge! markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) - parslet-toml-merge! - plain-merge! - prism-merge! - psych-merge! rake (~> 13.0) rbs (>= 3.0) - rbs-merge! rdoc (~> 6.11) reek (~> 6.5, >= 6.5.0) require_bench (~> 1.0, >= 1.0.4) @@ -694,27 +421,19 @@ DEPENDENCIES rubocop-on-rbs (~> 2.0, >= 2.0.0) rubocop-packaging (~> 0.6, >= 0.6.0) rubocop-ruby3_2 (~> 3.0, >= 3.0.6) - ruby-merge! ruby-progressbar (~> 1.13) - rust-merge! - smorg-rb! standard (~> 1.56, >= 1.56.0) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) - toml-merge! - tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) - typescript-merge! webrick (~> 1.9) yaml-converter (~> 0.2, >= 0.2.3) - yaml-merge! yard (~> 0.9, >= 0.9.45) yard-fence (~> 0.9, >= 0.9.6) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) yard-timekeeper (~> 0.2, >= 0.2.4) yard-yaml (~> 0.2, >= 0.2.3) - zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af @@ -722,31 +441,20 @@ CHECKSUMS appraisal2 (3.2.0) sha256=ccd0b767ac4060cd7af6d16747459b6990f49c39c7b4fb1f7d1146b1e97c492f appraisal2-rubocop (1.0.0) sha256=b71410fbb014befda5340605a605b7f6f3f012739baf0acc5b4351b592c3258d ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 - ast-crispr (7.1.0) - ast-crispr-markdown-markly (7.1.0) - ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) - ast-merge-git (7.1.0) - ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 - bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd - binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 - citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 - commonmarker (2.9.0-x86_64-linux) sha256=8cfe92970eef585a19ddf6613224b91cab64d6029834661bda801f877c9c7f43 - commonmarker-merge (7.1.0) concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 - dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -759,21 +467,16 @@ CHECKSUMS gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f - go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 - json-merge (7.1.0) - kettle-dev (2.3.8) sha256=9d716ff21c660a730cb4e8d41e2e2f0630a28167a354b6e2924e242102aef72c - kettle-drift (1.0.6) sha256=46eda08fa4411d1f3c6682a95eef1c9df4e94611b3949f49d4c7b43c0ed356a3 - kettle-jem (7.1.0) + kettle-dev (2.3.9) kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f kettle-soup-cover (3.0.4) kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa - kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 @@ -790,20 +493,15 @@ CHECKSUMS parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 - parslet-toml-merge (7.1.0) - plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 - prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 - psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 - rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb @@ -838,20 +536,16 @@ CHECKSUMS rubocop-rspec_rails (2.32.0) sha256=4a0d641c72f6ebb957534f539d9d0a62c47abd8ce0d0aeee1ef4701e892a9100 rubocop-ruby3_2 (3.0.7) sha256=f53dd6d286fb05186214fc6ec116783e7f837030918e8931c05de773e98f8466 rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 - ruby-merge (7.1.0) ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 - rust-merge (7.1.0) - service_actor (3.9.4) sha256=e63b523630b9a7e62959b2a90113b08d2565b5de9c148557b281ef847c9539ce silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed - smorg-rb (7.1.0) - sorbet-runtime (0.6.13347) sha256=54e7221d9f4b63f58aec79f3043752a9ba7810347c6ae0d903531591cc2d5f01 + sorbet-runtime (0.6.13351) sha256=f8fee17c6e3edf835dc6823d26afb9a7c8969c6710d1fabe2fb43f4e0c15c64f standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b standard-performance (1.9.0) sha256=49483d31be448292951d80e5e67cdcb576c2502103c7b40aec6f1b6e9c88e3f2 @@ -865,20 +559,15 @@ CHECKSUMS timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.5) sha256=b852f924287ffb58a440856e862b056c8ad97e74b4b2526cee43e0771f40c25c - toml (0.3.0) sha256=0a91d0f76a9036e84e44f95693b12f58d358c1df3ac8e3b5271f2056ecc6e4b9 - toml-merge (7.1.0) - toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 - typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 webrick (1.9.2) sha256=beb4a15fc474defed24a3bda4ffd88a490d517c9e4e6118c3edce59e45864131 yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 - yaml-merge (7.1.0) yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd @@ -886,7 +575,6 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 - zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH diff --git a/gems/markly-merge/Rakefile b/gems/markly-merge/Rakefile index 319456e08..9946d12a1 100644 --- a/gems/markly-merge/Rakefile +++ b/gems/markly-merge/Rakefile @@ -130,23 +130,23 @@ end ### DUPLICATE DRIFT TASKS begin - require "kettle/drift" + require 'kettle/drift' Kettle::Drift.install_tasks rescue LoadError - desc("(stub) kettle:drift:check is unavailable") - task("kettle:drift:check") do + desc('(stub) kettle:drift:check is unavailable') + task('kettle:drift:check') do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc("(stub) kettle:drift:update is unavailable") - task("kettle:drift:update") do + desc('(stub) kettle:drift:update is unavailable') + task('kettle:drift:update') do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc("(stub) kettle:drift:force_update is unavailable") - task("kettle:drift:force_update") do + desc('(stub) kettle:drift:force_update is unavailable') + task('kettle:drift:force_update') do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc("(stub) kettle:drift is unavailable") - task("kettle:drift" => "kettle:drift:update") + desc('(stub) kettle:drift is unavailable') + task('kettle:drift' => 'kettle:drift:update') end ### TEMPLATING TASKS diff --git a/gems/markly-merge/gemfiles/modular/templating.gemfile b/gems/markly-merge/gemfiles/modular/templating.gemfile index 47138ffbb..a672de184 100644 --- a/gems/markly-merge/gemfiles/modular/templating.gemfile +++ b/gems/markly-merge/gemfiles/modular/templating.gemfile @@ -1,18 +1,18 @@ # frozen_string_literal: true -structuredmerge_remote = ENV.fetch("STRUCTUREDMERGE_DEV", "false").casecmp("false").zero? -kettle_remote = ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false").zero? +structuredmerge_remote = ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false').zero? +kettle_remote = ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? if structuredmerge_remote # Parser dependencies for released installs. - gem "tree_sitter_language_pack", "~> 1.13", ">= 1.13.3" + gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' # Merge recipes for released installs. - gem "kettle-jem", ">= 7.0" + gem 'kettle-jem', '>= 7.0' end if kettle_remote # Template/plugin checks for released installs. - gem "kettle-drift", "~> 1.0", ">= 1.0.6", require: false + gem 'kettle-drift', '~> 1.0', '>= 1.0.6', require: false end # Set STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local development with path-based dependencies. @@ -21,4 +21,4 @@ end # # Set KETTLE_DEV_DEV=/path/to/my for local development with Kettle plugin gems. # When false (default / CI), released Kettle plugin gems are used. -eval_gemfile "templating_local.gemfile" unless structuredmerge_remote && kettle_remote +eval_gemfile 'templating_local.gemfile' unless structuredmerge_remote && kettle_remote diff --git a/gems/markly-merge/gemfiles/modular/templating_local.gemfile b/gems/markly-merge/gemfiles/modular/templating_local.gemfile index c3ddc6d57..4b7f13294 100644 --- a/gems/markly-merge/gemfiles/modular/templating_local.gemfile +++ b/gems/markly-merge/gemfiles/modular/templating_local.gemfile @@ -12,21 +12,19 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] -nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) +nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] +nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == "nomono" } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - if nomono_locked - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] - end + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked end -Kernel.send(:gem, "nomono", *nomono_activation_requirements) -require "nomono/bundler" +Kernel.send(:gem, 'nomono', *nomono_activation_requirements) +require 'nomono/bundler' structuredmerge_local_gems = %w[ tree_haver @@ -69,25 +67,25 @@ structuredmerge_local_gems_to_eval = structuredmerge_local_gems - %w[markly-merg kettle_dev_local_gems_to_eval = kettle_dev_local_gems - %w[markly-merge] - declared_gems platform :mri do - if ENV.fetch("STRUCTUREDMERGE_DEV", "false").casecmp("false") != 0 + if ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false') != 0 eval_nomono_gems( gems: structuredmerge_local_gems_to_eval, - prefix: "STRUCTUREDMERGE", - path_env: "STRUCTUREDMERGE_DEV", - vendored_gems_env: "VENDORED_GEMS", - vendor_gem_dir_env: "VENDOR_GEM_DIR", - debug_env: "STRUCTUREDMERGE_DEBUG" + prefix: 'STRUCTUREDMERGE', + path_env: 'STRUCTUREDMERGE_DEV', + vendored_gems_env: 'VENDORED_GEMS', + vendor_gem_dir_env: 'VENDOR_GEM_DIR', + debug_env: 'STRUCTUREDMERGE_DEBUG' ) end - if ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false") != 0 + if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false') != 0 eval_nomono_gems( gems: kettle_dev_local_gems_to_eval, - prefix: "KETTLE_DEV", - path_env: "KETTLE_DEV_DEV", - vendored_gems_env: "VENDORED_GEMS", - vendor_gem_dir_env: "VENDOR_GEM_DIR", - debug_env: "KETTLE_DEV_DEBUG" + prefix: 'KETTLE_DEV', + path_env: 'KETTLE_DEV_DEV', + vendored_gems_env: 'VENDORED_GEMS', + vendor_gem_dir_env: 'VENDOR_GEM_DIR', + debug_env: 'KETTLE_DEV_DEBUG' ) end end diff --git a/gems/markly-merge/lib/markly/merge/version.rb b/gems/markly-merge/lib/markly/merge/version.rb index b4ff2ffeb..3bfd8e9b0 100644 --- a/gems/markly-merge/lib/markly/merge/version.rb +++ b/gems/markly-merge/lib/markly/merge/version.rb @@ -3,7 +3,7 @@ module Markly module Merge module Version - VERSION = "7.1.0" + VERSION = '7.1.0' end VERSION = Version::VERSION # Traditional Constant Location end diff --git a/gems/markly-merge/spec/spec_helper.rb b/gems/markly-merge/spec/spec_helper.rb index dcd60bf76..3fd51d8bd 100644 --- a/gems/markly-merge/spec/spec_helper.rb +++ b/gems/markly-merge/spec/spec_helper.rb @@ -8,7 +8,12 @@ # The rescue LoadError handles that scenario. begin require 'kettle-soup-cover' - require 'simplecov' if Kettle::Soup::Cover::DO_COV # `.simplecov` is run here! + if Kettle::Soup::Cover::DO_COV + # Requiring simplecov loads the project-local `.simplecov`. + require 'simplecov' + require 'kettle/soup/cover/config' + SimpleCov.start + end rescue LoadError => e # check the error message and re-raise when unexpected raise e unless e.message.include?('kettle') diff --git a/gems/prism-merge/Gemfile.lock b/gems/prism-merge/Gemfile.lock index 0f7f99933..f94c28138 100644 --- a/gems/prism-merge/Gemfile.lock +++ b/gems/prism-merge/Gemfile.lock @@ -7,13 +7,265 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly + specs: + ast-crispr-markdown-markly (7.1.0) + ast-crispr (= 7.1.0) + markly-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism + specs: + ast-crispr-ruby-prism (7.1.0) + ast-crispr (= 7.1.0) + prism-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr + specs: + ast-crispr (7.1.0) + ast-merge (= 7.1.0) + service_actor (~> 3.9) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git + specs: + ast-merge-git (7.1.0) + ast-merge (= 7.1.0) + json-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge + specs: + ast-merge (7.1.0) + benchmark + token-resolver (~> 2.0, >= 2.0.4) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template + specs: + ast-template (7.1.0) + ast-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge + specs: + bash-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge + specs: + binary-merge (7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge + specs: + citrus-toml-merge (7.1.0) + toml-merge (= 7.1.0) + toml-rb (~> 4.1) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge + specs: + commonmarker-merge (7.1.0) + commonmarker (~> 2.2) + markdown-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge + specs: + dotenv-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge + specs: + go-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge + specs: + json-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem + specs: + kettle-jem (7.1.0) + addressable (>= 2.8, < 3) + ast-crispr-markdown-markly (= 7.1.0) + ast-crispr-ruby-prism (= 7.1.0) + ast-merge (= 7.1.0) + bash-merge (= 7.1.0) + citrus-toml-merge (= 7.1.0) + commonmarker-merge (= 7.1.0) + dotenv-merge (= 7.1.0) + json-merge (= 7.1.0) + kettle-dev (~> 2.3, >= 2.3.5) + kettle-rb (~> 0.1, >= 0.1.4) + kramdown-merge (= 7.1.0) + markdown-merge (= 7.1.0) + markly-merge (= 7.1.0) + prism-merge (= 7.1.0) + psych-merge (= 7.1.0) + rbs (>= 3.10) + rbs-merge (= 7.1.0) + ruby-merge (= 7.1.0) + token-resolver (~> 2.0, >= 2.0.4) + toml-merge (= 7.1.0) + toml-rb (~> 4.2) + tree_haver (= 7.1.0) + yaml-merge (= 7.1.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge + specs: + kramdown-merge (7.1.0) + kramdown (~> 2.5) + markdown-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge + specs: + markdown-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge + specs: + markly-merge (7.1.0) + markdown-merge (= 7.1.0) + markly (~> 0.9) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge + specs: + parslet-toml-merge (7.1.0) + toml (~> 0.3) + toml-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge + specs: + plain-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge + specs: + psych-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + yaml-merge (= 7.1.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge + specs: + rbs-merge (7.1.0) + ast-merge (= 7.1.0) + rbs (>= 3.10) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge specs: ruby-merge (7.1.0) ast-merge (= 7.1.0) tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge + specs: + rust-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb + specs: + smorg-rb (7.1.0) + ast-merge (= 7.1.0) + ast-merge-git (= 7.1.0) + diff-lcs (~> 1.5) + go-merge (= 7.1.0) + json-merge (= 7.1.0) + kettle-jem (= 7.1.0) + markly-merge (= 7.1.0) + plain-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge + specs: + toml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver + specs: + tree_haver (7.1.0) + citrus (~> 3.0) + parslet (~> 2.0) + tree_sitter_language_pack (>= 1.13.2, < 2.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge + specs: + typescript-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge + specs: + yaml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge + specs: + zip-merge (7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + GEM remote: https://gem.coop/ specs: @@ -29,11 +281,6 @@ GEM rubocop (>= 1.0) version_gem (~> 1.1, >= 1.1.14) ast (2.4.3) - ast-merge (7.1.0) - benchmark - token-resolver (~> 2.0, >= 2.0.4) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) backports (3.25.3) benchmark (0.5.0) bigdecimal (4.1.2) @@ -43,6 +290,7 @@ GEM cgi (0.5.2) citrus (3.0.2) cmdparse (3.0.7) + commonmarker (2.9.0-x86_64-linux) concurrent-ruby (1.3.8) date (3.5.1) debug (1.11.1) @@ -105,6 +353,8 @@ GEM kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) + kettle-drift (1.0.6) + version_gem (~> 1.1, >= 1.1.14) kettle-rb (0.1.5) kettle-soup-cover (3.0.4) kettle-wash (~> 0.1, >= 0.1.0) @@ -133,6 +383,7 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) + markly (0.16.0) mutex_m (0.3.0) nokogiri (1.19.4-x86_64-linux-gnu) racc (~> 1.4) @@ -287,6 +538,8 @@ GEM ruby-progressbar (1.13.0) ruby_engine (2.0.3) ruby_version (1.0.3) + service_actor (3.9.4) + zeitwerk (>= 1.0) silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) @@ -341,11 +594,11 @@ GEM token-resolver (2.0.5) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.14) - tree_haver (7.1.0) - citrus (~> 3.0) - parslet (~> 2.0) - tree_sitter_language_pack (>= 1.13.2, < 2.0) - version_gem (~> 1.1, >= 1.1.9) + toml (0.3.0) + parslet (>= 1.8.0, < 3.0.0) + toml-rb (4.2.0) + citrus (~> 3.0, > 3.0) + racc (~> 1.7) tree_sitter_language_pack (1.13.3-x86_64-linux) sorbet-runtime (~> 0.5) tsort (0.2.0) @@ -391,24 +644,46 @@ DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) appraisal2-rubocop (~> 1.0, >= 1.0.0) + ast-crispr! + ast-crispr-markdown-markly! + ast-crispr-ruby-prism! + ast-merge! + ast-merge-git! + ast-template! + bash-merge! benchmark (~> 0.5, >= 0.5.0) + binary-merge! bundler-audit (~> 0.9.3) cgi (~> 0.5) + citrus-toml-merge! + commonmarker-merge! debug (>= 1.1) + dotenv-merge! erb (~> 6.0, >= 6.0.6) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.0) + go-merge! irb (~> 1.17) + json-merge! kettle-dev (~> 2.0, >= 2.2.25) + kettle-drift (~> 1.0, >= 1.0.6) + kettle-jem! kettle-soup-cover (~> 3.0, >= 3.0.3) kettle-test (~> 2.0, >= 2.0.9) kramdown (~> 2.5, >= 2.5.2) + kramdown-merge! kramdown-parser-gfm (~> 1.1) + markdown-merge! + markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) + parslet-toml-merge! + plain-merge! prism-merge! + psych-merge! rake (~> 13.0) rbs (>= 3.0) + rbs-merge! rdoc (~> 6.11) reek (~> 6.5, >= 6.5.0) require_bench (~> 1.0, >= 1.0.4) @@ -421,18 +696,25 @@ DEPENDENCIES rubocop-ruby3_2 (~> 3.0, >= 3.0.6) ruby-merge! ruby-progressbar (~> 1.13) + rust-merge! + smorg-rb! standard (~> 1.56, >= 1.56.0) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) + toml-merge! + tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) + typescript-merge! webrick (~> 1.9) yaml-converter (~> 0.2, >= 0.2.3) + yaml-merge! yard (~> 0.9, >= 0.9.45) yard-fence (~> 0.9, >= 0.9.6) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) yard-timekeeper (~> 0.2, >= 0.2.4) yard-yaml (~> 0.2, >= 0.2.3) + zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af @@ -440,20 +722,31 @@ CHECKSUMS appraisal2 (3.2.0) sha256=ccd0b767ac4060cd7af6d16747459b6990f49c39c7b4fb1f7d1146b1e97c492f appraisal2-rubocop (1.0.0) sha256=b71410fbb014befda5340605a605b7f6f3f012739baf0acc5b4351b592c3258d ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 + ast-crispr (7.1.0) + ast-crispr-markdown-markly (7.1.0) + ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) + ast-merge-git (7.1.0) + ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 + bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd + binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 + citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 + commonmarker (2.9.0-x86_64-linux) sha256=8cfe92970eef585a19ddf6613224b91cab64d6029834661bda801f877c9c7f43 + commonmarker-merge (7.1.0) concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 + dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -466,20 +759,28 @@ CHECKSUMS gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f + go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 + json-merge (7.1.0) kettle-dev (2.3.9) + kettle-drift (1.0.6) sha256=46eda08fa4411d1f3c6682a95eef1c9df4e94611b3949f49d4c7b43c0ed356a3 + kettle-jem (7.1.0) kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f kettle-soup-cover (3.0.4) kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa + kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 + markdown-merge (7.1.0) + markly (0.16.0) sha256=6f70d79e385b1efc9e171f74c81628826259039fe6c778e03c3924c71dac5511 + markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-x86_64-linux-gnu) sha256=379fae440b28915e3f19d752ce2dcf8465ed2b2fbefd2a7ca0dd497bc981a06a nomono (1.0.9) @@ -489,16 +790,20 @@ CHECKSUMS parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 + parslet-toml-merge (7.1.0) + plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 + psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 + rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb @@ -537,12 +842,15 @@ CHECKSUMS ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 + rust-merge (7.1.0) + service_actor (3.9.4) sha256=e63b523630b9a7e62959b2a90113b08d2565b5de9c148557b281ef847c9539ce silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed + smorg-rb (7.1.0) sorbet-runtime (0.6.13351) sha256=f8fee17c6e3edf835dc6823d26afb9a7c8969c6710d1fabe2fb43f4e0c15c64f standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b @@ -557,15 +865,20 @@ CHECKSUMS timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.5) sha256=b852f924287ffb58a440856e862b056c8ad97e74b4b2526cee43e0771f40c25c + toml (0.3.0) sha256=0a91d0f76a9036e84e44f95693b12f58d358c1df3ac8e3b5271f2056ecc6e4b9 + toml-merge (7.1.0) + toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 + typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 webrick (1.9.2) sha256=beb4a15fc474defed24a3bda4ffd88a490d517c9e4e6118c3edce59e45864131 yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 + yaml-merge (7.1.0) yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd @@ -573,6 +886,7 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 + zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH From 84215c7655dff53d6f754d6e038be3902e85ae14 Mon Sep 17 00:00:00 2001 From: "Peter H. Boling" Date: Tue, 21 Jul 2026 18:02:09 -0600 Subject: [PATCH 153/188] =?UTF-8?q?=F0=9F=8E=A8=20Template=20bootstrap=20b?= =?UTF-8?q?y=20kettle-jem=20v7.1.0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../.rubocop_gradual.lock | 134 +++++++ gems/ast-crispr-markdown-markly/.simplecov | 2 +- gems/ast-crispr-markdown-markly/Gemfile | 70 ++-- gems/ast-crispr-markdown-markly/Gemfile.lock | 8 +- gems/ast-crispr-markdown-markly/Rakefile | 18 +- gems/ast-crispr-markdown-markly/bin/yard | 2 +- .../modular/benchmark/r4/v0.5.gemfile | 2 +- .../gemfiles/modular/benchmark/vHEAD.gemfile | 2 +- .../gemfiles/modular/cgi/r4/v0.5.gemfile | 2 +- .../gemfiles/modular/cgi/vHEAD.gemfile | 2 +- .../gemfiles/modular/coverage.gemfile | 6 +- .../gemfiles/modular/coverage_local.gemfile | 42 +-- .../gemfiles/modular/debug.gemfile | 4 +- .../gemfiles/modular/documentation.gemfile | 24 +- .../modular/documentation_local.gemfile | 30 +- .../gemfiles/modular/erb/r2/v3.0.gemfile | 2 +- .../gemfiles/modular/erb/r3/v5.0.gemfile | 2 +- .../gemfiles/modular/erb/r4/v5.0.gemfile | 2 +- .../gemfiles/modular/erb/vHEAD.gemfile | 2 +- .../modular/json/truffleruby_22_3.gemfile | 4 +- .../modular/json/truffleruby_23_0.gemfile | 4 +- .../modular/json/truffleruby_23_1.gemfile | 4 +- .../gemfiles/modular/mutex_m/r2/v0.3.gemfile | 2 +- .../gemfiles/modular/mutex_m/r3/v0.3.gemfile | 2 +- .../gemfiles/modular/mutex_m/r4/v0.3.gemfile | 2 +- .../gemfiles/modular/mutex_m/vHEAD.gemfile | 2 +- .../gemfiles/modular/optional.gemfile | 4 +- .../gemfiles/modular/rspec.gemfile | 8 +- .../gemfiles/modular/runtime_heads.gemfile | 2 +- .../gemfiles/modular/stringio/r2/v3.0.gemfile | 2 +- .../gemfiles/modular/stringio/r3/v3.0.gemfile | 2 +- .../gemfiles/modular/stringio/r4/v3.0.gemfile | 2 +- .../gemfiles/modular/stringio/vHEAD.gemfile | 2 +- .../gemfiles/modular/style.gemfile | 24 +- .../gemfiles/modular/style_local.gemfile | 32 +- .../gemfiles/modular/templating.gemfile | 12 +- .../gemfiles/modular/templating_local.gemfile | 44 ++- .../gemfiles/modular/webrick/r4/v1.9.gemfile | 2 +- .../gemfiles/modular/webrick/vHEAD.gemfile | 2 +- .../gemfiles/modular/x_std_libs.gemfile | 14 +- .../modular/x_std_libs/r2/libs.gemfile | 6 +- .../modular/x_std_libs/r3/libs.gemfile | 6 +- .../modular/x_std_libs/r4/libs.gemfile | 12 +- .../gemfiles/modular/x_std_libs/vHEAD.gemfile | 12 +- .../lib/ast/crispr/markdown/markly/version.rb | 2 +- .../spec/spec_helper.rb | 10 +- gems/ast-merge-git/Gemfile.lock | 347 +++++++++++++++++- gems/json-merge/.simplecov | 8 +- gems/json-merge/Gemfile.lock | 314 ---------------- .../modular/benchmark/r4/v0.5.gemfile | 2 +- .../gemfiles/modular/benchmark/vHEAD.gemfile | 2 +- .../gemfiles/modular/cgi/r4/v0.5.gemfile | 2 +- .../gemfiles/modular/cgi/vHEAD.gemfile | 2 +- .../gemfiles/modular/coverage.gemfile | 6 +- .../gemfiles/modular/coverage_local.gemfile | 42 ++- .../json-merge/gemfiles/modular/debug.gemfile | 4 +- .../gemfiles/modular/documentation.gemfile | 24 +- .../modular/documentation_local.gemfile | 30 +- .../gemfiles/modular/erb/r2/v3.0.gemfile | 2 +- .../gemfiles/modular/erb/r3/v5.0.gemfile | 2 +- .../gemfiles/modular/erb/r4/v5.0.gemfile | 2 +- .../gemfiles/modular/erb/vHEAD.gemfile | 2 +- .../modular/json/truffleruby_22_3.gemfile | 4 +- .../modular/json/truffleruby_23_0.gemfile | 4 +- .../modular/json/truffleruby_23_1.gemfile | 4 +- .../gemfiles/modular/mutex_m/r2/v0.3.gemfile | 2 +- .../gemfiles/modular/mutex_m/r3/v0.3.gemfile | 2 +- .../gemfiles/modular/mutex_m/r4/v0.3.gemfile | 2 +- .../gemfiles/modular/mutex_m/vHEAD.gemfile | 2 +- .../gemfiles/modular/optional.gemfile | 4 +- .../json-merge/gemfiles/modular/rspec.gemfile | 8 +- .../gemfiles/modular/runtime_heads.gemfile | 2 +- .../gemfiles/modular/stringio/r2/v3.0.gemfile | 2 +- .../gemfiles/modular/stringio/r3/v3.0.gemfile | 2 +- .../gemfiles/modular/stringio/r4/v3.0.gemfile | 2 +- .../gemfiles/modular/stringio/vHEAD.gemfile | 2 +- .../json-merge/gemfiles/modular/style.gemfile | 24 +- .../gemfiles/modular/style_local.gemfile | 32 +- .../gemfiles/modular/webrick/r4/v1.9.gemfile | 2 +- .../gemfiles/modular/webrick/vHEAD.gemfile | 2 +- .../gemfiles/modular/x_std_libs.gemfile | 14 +- .../modular/x_std_libs/r2/libs.gemfile | 6 +- .../modular/x_std_libs/r3/libs.gemfile | 6 +- .../modular/x_std_libs/r4/libs.gemfile | 12 +- .../gemfiles/modular/x_std_libs/vHEAD.gemfile | 12 +- gems/json-merge/spec/spec_helper.rb | 13 +- gems/markly-merge/Gemfile.lock | 334 ++++++++++++++++- 87 files changed, 1156 insertions(+), 710 deletions(-) create mode 100644 gems/ast-crispr-markdown-markly/.rubocop_gradual.lock diff --git a/gems/ast-crispr-markdown-markly/.rubocop_gradual.lock b/gems/ast-crispr-markdown-markly/.rubocop_gradual.lock new file mode 100644 index 000000000..5624f80ed --- /dev/null +++ b/gems/ast-crispr-markdown-markly/.rubocop_gradual.lock @@ -0,0 +1,134 @@ +{ + ".simplecov:2930391605": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "Rakefile:4085821453": [ + [18, 121, 17, "Layout/LineLength: Line is too long. [137/120]", 174264873], + [79, 3, 1023, "Metrics/BlockLength: Block has too many lines. [32/25]", 54868638], + [163, 121, 22, "Layout/LineLength: Line is too long. [142/120]", 1367093088], + [166, 121, 18, "Layout/LineLength: Line is too long. [138/120]", 3881946477] + ], + "ast-crispr-markdown-markly.gemspec:1188642188": [ + [128, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 2821357214], + [143, 121, 50, "Layout/LineLength: Line is too long. [170/120]", 3888612416], + [144, 121, 29, "Layout/LineLength: Line is too long. [149/120]", 981994949], + [151, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 4229808912] + ], + "gemfiles/modular/benchmark/r4/v0.5.gemfile:3644720371": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/benchmark/vHEAD.gemfile:2838879269": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/cgi/r4/v0.5.gemfile:367169322": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/cgi/vHEAD.gemfile:2729540777": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/erb/r2/v3.0.gemfile:1688285565": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/erb/r3/v5.0.gemfile:2394062339": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/erb/r4/v5.0.gemfile:2394062339": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/erb/vHEAD.gemfile:981929959": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/mutex_m/r2/v0.3.gemfile:4055275004": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/mutex_m/r3/v0.3.gemfile:4055275004": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/mutex_m/r4/v0.3.gemfile:4055275004": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/mutex_m/vHEAD.gemfile:556854763": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/rspec.gemfile:2263543889": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/stringio/r2/v3.0.gemfile:821604304": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/stringio/r3/v3.0.gemfile:821604304": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/stringio/r4/v3.0.gemfile:821604304": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/stringio/vHEAD.gemfile:1045839691": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/webrick/r4/v1.9.gemfile:3092661193": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/webrick/vHEAD.gemfile:3867684682": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/x_std_libs.gemfile:2324400122": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/x_std_libs/r2/libs.gemfile:36276542": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] + ], + "gemfiles/modular/x_std_libs/r3/libs.gemfile:4030570297": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] + ], + "gemfiles/modular/x_std_libs/r4/libs.gemfile:732451732": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] + ], + "gemfiles/modular/x_std_libs/vHEAD.gemfile:2390363993": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] + ], + "lib/ast-crispr-markdown-markly.rb:374208510": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`ast-crispr-markdown-markly.rb`) should use snake_case.", 5381] + ], + "lib/ast/crispr/markdown/markly.rb:1124197915": [ + [11, 7, 13, "Style/Documentation: Missing top-level documentation comment for `module Ast::Crispr::Markdown::Markly`.", 95841343], + [14, 9, 13, "Style/Documentation: Missing top-level documentation comment for `class Ast::Crispr::Markdown::Markly::Adapter`.", 2579377404], + [23, 11, 695, "Metrics/MethodLength: Method has too many lines. [15/10]", 2384506812], + [49, 13, 87, "Style/RaiseArgs: Provide an exception class and message as arguments to `raise`.", 1878059440], + [52, 11, 1781, "Metrics/MethodLength: Method has too many lines. [39/10]", 2020253431], + [95, 9, 16, "Style/Documentation: Missing top-level documentation comment for `module Ast::Crispr::Markdown::Markly::Selectors`.", 2133324825], + [95, 9, 8840, "Metrics/ModuleLength: Module has too many lines. [186/100]", 1134016796], + [98, 11, 1452, "Metrics/AbcSize: Assignment Branch Condition size for `heading_section` is too high. [<2, 21, 7> 22.23/17]", 1578141243], + [98, 11, 1452, "Metrics/MethodLength: Method has too many lines. [30/10]", 1578141243], + [98, 30, 73, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 515735878], + [132, 11, 1397, "Metrics/AbcSize: Assignment Branch Condition size for `link_definition` is too high. [<2, 22, 8> 23.49/17]", 2035221200], + [132, 11, 1397, "Metrics/MethodLength: Method has too many lines. [29/10]", 2035221200], + [132, 30, 68, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 2927391196], + [165, 11, 1236, "Metrics/MethodLength: Method has too many lines. [27/10]", 2705412671], + [196, 11, 1632, "Metrics/AbcSize: Assignment Branch Condition size for `inline_reference` is too high. [<2, 25, 7> 26.04/17]", 2822954343], + [196, 11, 1632, "Metrics/MethodLength: Method has too many lines. [32/10]", 2822954343], + [196, 31, 79, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 871966347], + [232, 11, 3009, "Metrics/AbcSize: Assignment Branch Condition size for `html_comment_block` is too high. [<14, 43, 23> 50.73/17]", 1757586727], + [232, 11, 3009, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `html_comment_block` is too high. [18/7]", 1757586727], + [232, 11, 3009, "Metrics/MethodLength: Method has too many lines. [56/10]", 1757586727], + [232, 11, 3009, "Metrics/PerceivedComplexity: Perceived complexity for `html_comment_block` is too high. [18/8]", 1757586727], + [232, 33, 148, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [8/5]", 4247948333], + [244, 23, 2311, "Metrics/BlockLength: Block has too many lines. [43/25]", 3166751632], + [249, 121, 5, "Layout/LineLength: Line is too long. [125/120]", 236074548] + ], + "spec/ast/crispr/markdown/markly_spec.rb:479377118": [ + [3, 1, 13025, "Metrics/BlockLength: Block has too many lines. [238/25]", 467937705], + [28, 3, 10314, "Metrics/BlockLength: Block has too many lines. [182/25]", 3591393606], + [132, 121, 35, "Layout/LineLength: Line is too long. [155/120]", 2413317061], + [134, 121, 34, "Layout/LineLength: Line is too long. [154/120]", 3021964175], + [152, 121, 37, "Layout/LineLength: Line is too long. [157/120]", 3082451518], + [154, 121, 34, "Layout/LineLength: Line is too long. [154/120]", 3021964175], + [267, 3, 1687, "Metrics/BlockLength: Block has too many lines. [33/25]", 4221412326] + ] +} diff --git a/gems/ast-crispr-markdown-markly/.simplecov b/gems/ast-crispr-markdown-markly/.simplecov index 66e95067f..da2d4d8b2 100644 --- a/gems/ast-crispr-markdown-markly/.simplecov +++ b/gems/ast-crispr-markdown-markly/.simplecov @@ -10,5 +10,5 @@ # If the values for minimum coverage need to change, they should be changed both there, # and in 2 places in .github/workflows/coverage.yml. SimpleCov.configure do - cover "lib/**/*.rb", "lib/**/*.rake", "exe/*.rb" + cover 'lib/**/*.rb', 'lib/**/*.rake', 'exe/*.rb' end diff --git a/gems/ast-crispr-markdown-markly/Gemfile b/gems/ast-crispr-markdown-markly/Gemfile index 90a9c2242..417afaab7 100644 --- a/gems/ast-crispr-markdown-markly/Gemfile +++ b/gems/ast-crispr-markdown-markly/Gemfile @@ -6,7 +6,7 @@ # kettle-jem will then preserve content between those markers across template runs. # kettle-jem:unfreeze -source "https://gem.coop" +source 'https://gem.coop' git_source(:codeberg) { |repo_name| "https://codeberg.org/#{repo_name}" } git_source(:gitlab) { |repo_name| "https://gitlab.com/#{repo_name}" } @@ -19,58 +19,54 @@ git_source(:gitlab) { |repo_name| "https://gitlab.com/#{repo_name}" } gemspec # Local workspace dependency wiring for *_local.gemfile overrides -nomono_requirements = ["~> 1.0", ">= 1.0.8"] -gem "nomono", *nomono_requirements, require: false # ruby >= 2.2 +nomono_requirements = ['~> 1.0', '>= 1.0.8'] +gem 'nomono', *nomono_requirements, require: false # ruby >= 2.2 # Direct sibling dependencies (env-switched via STRUCTUREDMERGE_DEV) direct_sibling_gems = %w[ ast-crispr markly-merge ] -direct_sibling_dev = ENV.fetch("STRUCTUREDMERGE_DEV", "") +direct_sibling_dev = ENV.fetch('STRUCTUREDMERGE_DEV', '') direct_sibling_local = !direct_sibling_dev.empty? && !%w[false 0 no off].include?(direct_sibling_dev.downcase) -direct_sibling_templating = ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? +direct_sibling_templating = ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero?) - direct_sibling_dev_was_set = ENV.key?("STRUCTUREDMERGE_DEV") - direct_sibling_dev_original = ENV.fetch("STRUCTUREDMERGE_DEV", nil) + (direct_sibling_local || + ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) + direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') + direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) begin nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path("Gemfile.lock", __dir__) + nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == "nomono" } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - if nomono_locked - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] - end - end - Kernel.send(:gem, "nomono", *nomono_activation_requirements) - require "nomono/bundler" - if direct_sibling_templating && !direct_sibling_local - ENV["STRUCTUREDMERGE_DEV"] = File.expand_path("..", __dir__) + Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked end + Kernel.send(:gem, 'nomono', *nomono_activation_requirements) + require 'nomono/bundler' + ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local eval_nomono_gems( gems: direct_sibling_gems, - prefix: "STRUCTUREDMERGE", - path_env: "STRUCTUREDMERGE_DEV", - root: ["src", "my", "structuredmerge"] + prefix: 'STRUCTUREDMERGE', + path_env: 'STRUCTUREDMERGE_DEV', + root: %w[src my structuredmerge] ) rescue LoadError - warn "Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies." + warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' ensure if direct_sibling_templating && !direct_sibling_local if direct_sibling_dev_was_set - ENV["STRUCTUREDMERGE_DEV"] = direct_sibling_dev_original + ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original else - ENV.delete("STRUCTUREDMERGE_DEV") + ENV.delete('STRUCTUREDMERGE_DEV') end end end @@ -157,28 +153,28 @@ if direct_sibling_gems.any? && end # Use released TSLP with the Ruby ABI platform-gem fix. -gem "tree_sitter_language_pack", "~> 1.13", ">= 1.13.3" +gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' # Templating (env-switched: STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local paths) -eval_gemfile "gemfiles/modular/templating.gemfile" if ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? +eval_gemfile 'gemfiles/modular/templating.gemfile' if ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? # Debugging -eval_gemfile "gemfiles/modular/debug.gemfile" +eval_gemfile 'gemfiles/modular/debug.gemfile' # Code Coverage (env-switched: KETTLE_DEV_DEV=true for local paths) -eval_gemfile "gemfiles/modular/coverage.gemfile" +eval_gemfile 'gemfiles/modular/coverage.gemfile' # Linting -eval_gemfile "gemfiles/modular/style.gemfile" +eval_gemfile 'gemfiles/modular/style.gemfile' # Documentation -eval_gemfile "gemfiles/modular/documentation.gemfile" +eval_gemfile 'gemfiles/modular/documentation.gemfile' # Optional -eval_gemfile "gemfiles/modular/optional.gemfile" +eval_gemfile 'gemfiles/modular/optional.gemfile' ### Std Lib Extracted Gems -eval_gemfile "gemfiles/modular/x_std_libs.gemfile" +eval_gemfile 'gemfiles/modular/x_std_libs.gemfile' # See unlocked_deps appraisal for more details on irb inclusion -gem "irb", "~> 1.17" # ruby >= 2.7 +gem 'irb', '~> 1.17' # ruby >= 2.7 diff --git a/gems/ast-crispr-markdown-markly/Gemfile.lock b/gems/ast-crispr-markdown-markly/Gemfile.lock index 41913670c..d29ef07a3 100644 --- a/gems/ast-crispr-markdown-markly/Gemfile.lock +++ b/gems/ast-crispr-markdown-markly/Gemfile.lock @@ -7,7 +7,7 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr specs: ast-crispr (7.1.0) ast-merge (= 7.1.0) @@ -15,7 +15,7 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/markly-merge specs: markly-merge (7.1.0) markdown-merge (= 7.1.0) @@ -108,7 +108,7 @@ GEM rdoc (>= 4.0.0) reline (>= 0.4.2) json (2.21.1) - kettle-dev (2.3.8) + kettle-dev (2.3.9) emoji_regex (>= 15.0) kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) @@ -488,7 +488,7 @@ CHECKSUMS io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 - kettle-dev (2.3.8) sha256=9d716ff21c660a730cb4e8d41e2e2f0630a28167a354b6e2924e242102aef72c + kettle-dev (2.3.9) kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f kettle-soup-cover (3.0.4) kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 diff --git a/gems/ast-crispr-markdown-markly/Rakefile b/gems/ast-crispr-markdown-markly/Rakefile index c599763c0..799afe6f5 100644 --- a/gems/ast-crispr-markdown-markly/Rakefile +++ b/gems/ast-crispr-markdown-markly/Rakefile @@ -130,23 +130,23 @@ end ### DUPLICATE DRIFT TASKS begin - require "kettle/drift" + require 'kettle/drift' Kettle::Drift.install_tasks rescue LoadError - desc("(stub) kettle:drift:check is unavailable") - task("kettle:drift:check") do + desc('(stub) kettle:drift:check is unavailable') + task('kettle:drift:check') do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc("(stub) kettle:drift:update is unavailable") - task("kettle:drift:update") do + desc('(stub) kettle:drift:update is unavailable') + task('kettle:drift:update') do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc("(stub) kettle:drift:force_update is unavailable") - task("kettle:drift:force_update") do + desc('(stub) kettle:drift:force_update is unavailable') + task('kettle:drift:force_update') do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc("(stub) kettle:drift is unavailable") - task("kettle:drift" => "kettle:drift:update") + desc('(stub) kettle:drift is unavailable') + task('kettle:drift' => 'kettle:drift:update') end ### TEMPLATING TASKS diff --git a/gems/ast-crispr-markdown-markly/bin/yard b/gems/ast-crispr-markdown-markly/bin/yard index a7e8b6eed..5d516ad6f 100755 --- a/gems/ast-crispr-markdown-markly/bin/yard +++ b/gems/ast-crispr-markdown-markly/bin/yard @@ -12,4 +12,4 @@ # `yard` / `bin/yard`. Keep this binstub as a handoff to the task so # humans and tools that reach for `bin/yard` still run the full docs # workflow with post-processing hooks. -exec("bundle", "exec", "rake", "yard") +exec('bundle', 'exec', 'rake', 'yard') diff --git a/gems/ast-crispr-markdown-markly/gemfiles/modular/benchmark/r4/v0.5.gemfile b/gems/ast-crispr-markdown-markly/gemfiles/modular/benchmark/r4/v0.5.gemfile index dec650815..b8392fab0 100644 --- a/gems/ast-crispr-markdown-markly/gemfiles/modular/benchmark/r4/v0.5.gemfile +++ b/gems/ast-crispr-markdown-markly/gemfiles/modular/benchmark/r4/v0.5.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.1 -gem "benchmark", "~> 0.5", ">= 0.5.0" # Removed from Std Lib in Ruby 4.0 +gem 'benchmark', '~> 0.5', '>= 0.5.0' # Removed from Std Lib in Ruby 4.0 diff --git a/gems/ast-crispr-markdown-markly/gemfiles/modular/benchmark/vHEAD.gemfile b/gems/ast-crispr-markdown-markly/gemfiles/modular/benchmark/vHEAD.gemfile index e1eb20c5e..af214aafa 100644 --- a/gems/ast-crispr-markdown-markly/gemfiles/modular/benchmark/vHEAD.gemfile +++ b/gems/ast-crispr-markdown-markly/gemfiles/modular/benchmark/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.1 -gem "benchmark", github: "ruby/benchmark", branch: "master" +gem 'benchmark', github: 'ruby/benchmark', branch: 'master' diff --git a/gems/ast-crispr-markdown-markly/gemfiles/modular/cgi/r4/v0.5.gemfile b/gems/ast-crispr-markdown-markly/gemfiles/modular/cgi/r4/v0.5.gemfile index 19ed967c3..17ad97260 100644 --- a/gems/ast-crispr-markdown-markly/gemfiles/modular/cgi/r4/v0.5.gemfile +++ b/gems/ast-crispr-markdown-markly/gemfiles/modular/cgi/r4/v0.5.gemfile @@ -1 +1 @@ -gem "cgi", "~> 0.5" +gem 'cgi', '~> 0.5' diff --git a/gems/ast-crispr-markdown-markly/gemfiles/modular/cgi/vHEAD.gemfile b/gems/ast-crispr-markdown-markly/gemfiles/modular/cgi/vHEAD.gemfile index ef8b816ce..650fbf033 100644 --- a/gems/ast-crispr-markdown-markly/gemfiles/modular/cgi/vHEAD.gemfile +++ b/gems/ast-crispr-markdown-markly/gemfiles/modular/cgi/vHEAD.gemfile @@ -1 +1 @@ -gem "cgi", ">= 0.5" +gem 'cgi', '>= 0.5' diff --git a/gems/ast-crispr-markdown-markly/gemfiles/modular/coverage.gemfile b/gems/ast-crispr-markdown-markly/gemfiles/modular/coverage.gemfile index 52d737872..b93014b6b 100644 --- a/gems/ast-crispr-markdown-markly/gemfiles/modular/coverage.gemfile +++ b/gems/ast-crispr-markdown-markly/gemfiles/modular/coverage.gemfile @@ -4,11 +4,11 @@ # Set KETTLE_DEV_DEV=true for local development with path-based dependencies. # When false (default / CI), remote released gems are used. -if ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false").zero? +if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? # Coverage (remote/released) platform :mri do - gem "kettle-soup-cover", "~> 3.0", ">= 3.0.3", require: false + gem 'kettle-soup-cover', '~> 3.0', '>= 3.0.3', require: false end else - eval_gemfile "coverage_local.gemfile" + eval_gemfile 'coverage_local.gemfile' end diff --git a/gems/ast-crispr-markdown-markly/gemfiles/modular/coverage_local.gemfile b/gems/ast-crispr-markdown-markly/gemfiles/modular/coverage_local.gemfile index 23198c2bc..30b548eee 100644 --- a/gems/ast-crispr-markdown-markly/gemfiles/modular/coverage_local.gemfile +++ b/gems/ast-crispr-markdown-markly/gemfiles/modular/coverage_local.gemfile @@ -11,21 +11,19 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] -nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) +nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] +nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == "nomono" } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - if nomono_locked - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] - end + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked end -Kernel.send(:gem, "nomono", *nomono_activation_requirements) -require "nomono/bundler" +Kernel.send(:gem, 'nomono', *nomono_activation_requirements) +require 'nomono/bundler' local_gems = %w[kettle-dev kettle-test kettle-soup-cover kettle-drift] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) @@ -35,21 +33,21 @@ local_gems_to_eval = local_gems - %w[ast-crispr-markdown-markly] - declared_gems platform :mri do eval_nomono_gems( gems: local_gems_to_eval, - prefix: "KETTLE_DEV", - path_env: "KETTLE_DEV_DEV", - vendored_gems_env: "VENDORED_GEMS", - vendor_gem_dir_env: "VENDOR_GEM_DIR", - debug_env: "KETTLE_DEV_DEBUG" + prefix: 'KETTLE_DEV', + path_env: 'KETTLE_DEV_DEV', + vendored_gems_env: 'VENDORED_GEMS', + vendor_gem_dir_env: 'VENDOR_GEM_DIR', + debug_env: 'KETTLE_DEV_DEBUG' ) - if ENV.fetch("GALTZO_FLOSS_DEV", "false").casecmp("false") != 0 + if ENV.fetch('GALTZO_FLOSS_DEV', 'false').casecmp('false') != 0 eval_nomono_gems( gems: %w[turbo_tests2], - prefix: "GALTZO_FLOSS", - path_env: "GALTZO_FLOSS_DEV", - vendored_gems_env: "GALTZO_FLOSS_VENDORED_GEMS", - vendor_gem_dir_env: "GALTZO_FLOSS_VENDOR_GEM_DIR", - debug_env: "GALTZO_FLOSS_DEBUG" + prefix: 'GALTZO_FLOSS', + path_env: 'GALTZO_FLOSS_DEV', + vendored_gems_env: 'GALTZO_FLOSS_VENDORED_GEMS', + vendor_gem_dir_env: 'GALTZO_FLOSS_VENDOR_GEM_DIR', + debug_env: 'GALTZO_FLOSS_DEBUG' ) end end diff --git a/gems/ast-crispr-markdown-markly/gemfiles/modular/debug.gemfile b/gems/ast-crispr-markdown-markly/gemfiles/modular/debug.gemfile index 4e15b1a3a..eed8d4d1e 100644 --- a/gems/ast-crispr-markdown-markly/gemfiles/modular/debug.gemfile +++ b/gems/ast-crispr-markdown-markly/gemfiles/modular/debug.gemfile @@ -13,10 +13,10 @@ platform :mri do # Debugging - Ensure ENV["DEBUG"] == "true" to use debuggers within spec suite # Use binding.break, binding.b, or debugger in code - gem "debug", ">= 1.1" # ruby >= 2.7 + gem 'debug', '>= 1.1' # ruby >= 2.7 # Dev Console - Binding.pry - Irb replacement # gem "pry", "~> 0.14" # ruby >= 2.0 end -gem "gem_bench", "~> 2.0", ">= 2.0.5" +gem 'gem_bench', '~> 2.0', '>= 2.0.5' diff --git a/gems/ast-crispr-markdown-markly/gemfiles/modular/documentation.gemfile b/gems/ast-crispr-markdown-markly/gemfiles/modular/documentation.gemfile index d8215416e..9d4535f12 100644 --- a/gems/ast-crispr-markdown-markly/gemfiles/modular/documentation.gemfile +++ b/gems/ast-crispr-markdown-markly/gemfiles/modular/documentation.gemfile @@ -7,20 +7,20 @@ # # Documentation -gem "kramdown", "~> 2.5", ">= 2.5.2", require: false # Ruby >= 2.5 -gem "kramdown-parser-gfm", "~> 1.1", require: false # Ruby >= 2.3 -gem "yaml-converter", "~> 0.2", ">= 0.2.3", require: false # Ruby >= 3.2 -gem "yard", "~> 0.9", ">= 0.9.45", require: false -gem "yard-junk", "~> 0.1", ">= 0.1.0", require: false # Ruby >= 3.1 -gem "yard-relative_markdown_links", "~> 0.6", require: false +gem 'kramdown', '~> 2.5', '>= 2.5.2', require: false # Ruby >= 2.5 +gem 'kramdown-parser-gfm', '~> 1.1', require: false # Ruby >= 2.3 +gem 'yaml-converter', '~> 0.2', '>= 0.2.3', require: false # Ruby >= 3.2 +gem 'yard', '~> 0.9', '>= 0.9.45', require: false +gem 'yard-junk', '~> 0.1', '>= 0.1.0', require: false # Ruby >= 3.1 +gem 'yard-relative_markdown_links', '~> 0.6', require: false -if ENV.fetch("GALTZO_FLOSS_DEV", "false").casecmp("false").zero? - gem "yard-fence", "~> 0.9", ">= 0.9.6", require: false # Ruby >= 3.2 - gem "yard-timekeeper", "~> 0.2", ">= 0.2.4", require: false - gem "yard-yaml", "~> 0.2", ">= 0.2.3", require: false +if ENV.fetch('GALTZO_FLOSS_DEV', 'false').casecmp('false').zero? + gem 'yard-fence', '~> 0.9', '>= 0.9.6', require: false # Ruby >= 3.2 + gem 'yard-timekeeper', '~> 0.2', '>= 0.2.4', require: false + gem 'yard-yaml', '~> 0.2', '>= 0.2.3', require: false else - eval_gemfile "documentation_local.gemfile" + eval_gemfile 'documentation_local.gemfile' end # Std Lib extractions -gem "rdoc", "~> 6.11", require: false unless ENV.fetch("KJ_FRAMEWORK_MATRIX_GEM", "") == "rdoc" +gem 'rdoc', '~> 6.11', require: false unless ENV.fetch('KJ_FRAMEWORK_MATRIX_GEM', '') == 'rdoc' diff --git a/gems/ast-crispr-markdown-markly/gemfiles/modular/documentation_local.gemfile b/gems/ast-crispr-markdown-markly/gemfiles/modular/documentation_local.gemfile index 2484c5904..faff9cff7 100644 --- a/gems/ast-crispr-markdown-markly/gemfiles/modular/documentation_local.gemfile +++ b/gems/ast-crispr-markdown-markly/gemfiles/modular/documentation_local.gemfile @@ -11,21 +11,19 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] -nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) +nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] +nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == "nomono" } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - if nomono_locked - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] - end + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked end -Kernel.send(:gem, "nomono", *nomono_activation_requirements) -require "nomono/bundler" +Kernel.send(:gem, 'nomono', *nomono_activation_requirements) +require 'nomono/bundler' local_gems = %w[yard-fence yard-timekeeper yard-yaml] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) @@ -34,9 +32,9 @@ local_gems_to_eval = local_gems - %w[ast-crispr-markdown-markly] - declared_gems # export GALTZO_FLOSS_DEV=/path/to/galtzo-floss eval_nomono_gems( gems: local_gems_to_eval, - prefix: "GALTZO_FLOSS", - path_env: "GALTZO_FLOSS_DEV", - vendored_gems_env: "GALTZO_FLOSS_VENDORED_GEMS", - vendor_gem_dir_env: "GALTZO_FLOSS_VENDOR_GEM_DIR", - debug_env: "GALTZO_FLOSS_DEBUG" + prefix: 'GALTZO_FLOSS', + path_env: 'GALTZO_FLOSS_DEV', + vendored_gems_env: 'GALTZO_FLOSS_VENDORED_GEMS', + vendor_gem_dir_env: 'GALTZO_FLOSS_VENDOR_GEM_DIR', + debug_env: 'GALTZO_FLOSS_DEBUG' ) diff --git a/gems/ast-crispr-markdown-markly/gemfiles/modular/erb/r2/v3.0.gemfile b/gems/ast-crispr-markdown-markly/gemfiles/modular/erb/r2/v3.0.gemfile index c03bd8d85..7c83a239b 100644 --- a/gems/ast-crispr-markdown-markly/gemfiles/modular/erb/r2/v3.0.gemfile +++ b/gems/ast-crispr-markdown-markly/gemfiles/modular/erb/r2/v3.0.gemfile @@ -1 +1 @@ -gem "erb", "~> 3.0" # ruby >= 2.7.0 +gem 'erb', '~> 3.0' # ruby >= 2.7.0 diff --git a/gems/ast-crispr-markdown-markly/gemfiles/modular/erb/r3/v5.0.gemfile b/gems/ast-crispr-markdown-markly/gemfiles/modular/erb/r3/v5.0.gemfile index 1bd029cc1..ec7ff451f 100644 --- a/gems/ast-crispr-markdown-markly/gemfiles/modular/erb/r3/v5.0.gemfile +++ b/gems/ast-crispr-markdown-markly/gemfiles/modular/erb/r3/v5.0.gemfile @@ -1 +1 @@ -gem "erb", "~> 6.0", ">= 6.0.6" # ruby >= 3.2.0 +gem 'erb', '~> 6.0', '>= 6.0.6' # ruby >= 3.2.0 diff --git a/gems/ast-crispr-markdown-markly/gemfiles/modular/erb/r4/v5.0.gemfile b/gems/ast-crispr-markdown-markly/gemfiles/modular/erb/r4/v5.0.gemfile index 1bd029cc1..ec7ff451f 100644 --- a/gems/ast-crispr-markdown-markly/gemfiles/modular/erb/r4/v5.0.gemfile +++ b/gems/ast-crispr-markdown-markly/gemfiles/modular/erb/r4/v5.0.gemfile @@ -1 +1 @@ -gem "erb", "~> 6.0", ">= 6.0.6" # ruby >= 3.2.0 +gem 'erb', '~> 6.0', '>= 6.0.6' # ruby >= 3.2.0 diff --git a/gems/ast-crispr-markdown-markly/gemfiles/modular/erb/vHEAD.gemfile b/gems/ast-crispr-markdown-markly/gemfiles/modular/erb/vHEAD.gemfile index 48fee4218..ea0101185 100644 --- a/gems/ast-crispr-markdown-markly/gemfiles/modular/erb/vHEAD.gemfile +++ b/gems/ast-crispr-markdown-markly/gemfiles/modular/erb/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 3.2 -gem "erb", github: "ruby/erb", branch: "master" +gem 'erb', github: 'ruby/erb', branch: 'master' diff --git a/gems/ast-crispr-markdown-markly/gemfiles/modular/json/truffleruby_22_3.gemfile b/gems/ast-crispr-markdown-markly/gemfiles/modular/json/truffleruby_22_3.gemfile index b0e69ab11..9b2f8d96a 100644 --- a/gems/ast-crispr-markdown-markly/gemfiles/modular/json/truffleruby_22_3.gemfile +++ b/gems/ast-crispr-markdown-markly/gemfiles/modular/json/truffleruby_22_3.gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -if RUBY_ENGINE == "truffleruby" && RUBY_ENGINE_VERSION.start_with?("22.3") +if RUBY_ENGINE == 'truffleruby' && RUBY_ENGINE_VERSION.start_with?('22.3') # TruffleRuby 22.3 ships the json default gem from its emulated MRI Ruby. - gem "json", "= 2.5.1" + gem 'json', '= 2.5.1' end diff --git a/gems/ast-crispr-markdown-markly/gemfiles/modular/json/truffleruby_23_0.gemfile b/gems/ast-crispr-markdown-markly/gemfiles/modular/json/truffleruby_23_0.gemfile index 7b2660a2b..d787a5ef4 100644 --- a/gems/ast-crispr-markdown-markly/gemfiles/modular/json/truffleruby_23_0.gemfile +++ b/gems/ast-crispr-markdown-markly/gemfiles/modular/json/truffleruby_23_0.gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -if RUBY_ENGINE == "truffleruby" && RUBY_ENGINE_VERSION.start_with?("23.0") +if RUBY_ENGINE == 'truffleruby' && RUBY_ENGINE_VERSION.start_with?('23.0') # TruffleRuby 23.0 ships the json default gem from its emulated MRI Ruby. - gem "json", "= 2.6.1" + gem 'json', '= 2.6.1' end diff --git a/gems/ast-crispr-markdown-markly/gemfiles/modular/json/truffleruby_23_1.gemfile b/gems/ast-crispr-markdown-markly/gemfiles/modular/json/truffleruby_23_1.gemfile index dfa21f2e4..d78486b0e 100644 --- a/gems/ast-crispr-markdown-markly/gemfiles/modular/json/truffleruby_23_1.gemfile +++ b/gems/ast-crispr-markdown-markly/gemfiles/modular/json/truffleruby_23_1.gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -if RUBY_ENGINE == "truffleruby" && RUBY_ENGINE_VERSION.start_with?("23.1") +if RUBY_ENGINE == 'truffleruby' && RUBY_ENGINE_VERSION.start_with?('23.1') # TruffleRuby 23.1 ships the json default gem from its emulated MRI Ruby. - gem "json", "= 2.6.3" + gem 'json', '= 2.6.3' end diff --git a/gems/ast-crispr-markdown-markly/gemfiles/modular/mutex_m/r2/v0.3.gemfile b/gems/ast-crispr-markdown-markly/gemfiles/modular/mutex_m/r2/v0.3.gemfile index 42e9d9bd4..e27f1bbae 100644 --- a/gems/ast-crispr-markdown-markly/gemfiles/modular/mutex_m/r2/v0.3.gemfile +++ b/gems/ast-crispr-markdown-markly/gemfiles/modular/mutex_m/r2/v0.3.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 -gem "mutex_m", "~> 0.2" +gem 'mutex_m', '~> 0.2' diff --git a/gems/ast-crispr-markdown-markly/gemfiles/modular/mutex_m/r3/v0.3.gemfile b/gems/ast-crispr-markdown-markly/gemfiles/modular/mutex_m/r3/v0.3.gemfile index 42e9d9bd4..e27f1bbae 100644 --- a/gems/ast-crispr-markdown-markly/gemfiles/modular/mutex_m/r3/v0.3.gemfile +++ b/gems/ast-crispr-markdown-markly/gemfiles/modular/mutex_m/r3/v0.3.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 -gem "mutex_m", "~> 0.2" +gem 'mutex_m', '~> 0.2' diff --git a/gems/ast-crispr-markdown-markly/gemfiles/modular/mutex_m/r4/v0.3.gemfile b/gems/ast-crispr-markdown-markly/gemfiles/modular/mutex_m/r4/v0.3.gemfile index 42e9d9bd4..e27f1bbae 100644 --- a/gems/ast-crispr-markdown-markly/gemfiles/modular/mutex_m/r4/v0.3.gemfile +++ b/gems/ast-crispr-markdown-markly/gemfiles/modular/mutex_m/r4/v0.3.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 -gem "mutex_m", "~> 0.2" +gem 'mutex_m', '~> 0.2' diff --git a/gems/ast-crispr-markdown-markly/gemfiles/modular/mutex_m/vHEAD.gemfile b/gems/ast-crispr-markdown-markly/gemfiles/modular/mutex_m/vHEAD.gemfile index 8af3b6fca..9dac2f6cb 100644 --- a/gems/ast-crispr-markdown-markly/gemfiles/modular/mutex_m/vHEAD.gemfile +++ b/gems/ast-crispr-markdown-markly/gemfiles/modular/mutex_m/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 (dependency of omniauth) -gem "mutex_m", github: "ruby/mutex_m", branch: "master" +gem 'mutex_m', github: 'ruby/mutex_m', branch: 'master' diff --git a/gems/ast-crispr-markdown-markly/gemfiles/modular/optional.gemfile b/gems/ast-crispr-markdown-markly/gemfiles/modular/optional.gemfile index 80bc45196..9ea429538 100644 --- a/gems/ast-crispr-markdown-markly/gemfiles/modular/optional.gemfile +++ b/gems/ast-crispr-markdown-markly/gemfiles/modular/optional.gemfile @@ -9,8 +9,8 @@ # Optional dependencies are not depended on directly, but may be used if present. # Required for curated binstubs generated by kettle-jem install -gem "rbs", ">= 3.0", require: false # ruby >= 3.1 +gem 'rbs', '>= 3.0', require: false # ruby >= 3.1 # Required for kettle-pre-release # URL parsing with Unicode support (falls back to URI if not available) -gem "addressable", ">= 2.8", "< 3" # ruby >= 2.2 +gem 'addressable', '>= 2.8', '< 3' # ruby >= 2.2 diff --git a/gems/ast-crispr-markdown-markly/gemfiles/modular/rspec.gemfile b/gems/ast-crispr-markdown-markly/gemfiles/modular/rspec.gemfile index 72fdf8b7f..2af210a41 100644 --- a/gems/ast-crispr-markdown-markly/gemfiles/modular/rspec.gemfile +++ b/gems/ast-crispr-markdown-markly/gemfiles/modular/rspec.gemfile @@ -1,4 +1,4 @@ -gem "rspec_junit_formatter", - github: "pboling/rspec_junit_formatter", - branch: "main", - ref: "9e6bcaaedd49477b62878ed568dc4ada5cc7cb5e" +gem 'rspec_junit_formatter', + github: 'pboling/rspec_junit_formatter', + branch: 'main', + ref: '9e6bcaaedd49477b62878ed568dc4ada5cc7cb5e' diff --git a/gems/ast-crispr-markdown-markly/gemfiles/modular/runtime_heads.gemfile b/gems/ast-crispr-markdown-markly/gemfiles/modular/runtime_heads.gemfile index 02f134c7f..ebf17c529 100644 --- a/gems/ast-crispr-markdown-markly/gemfiles/modular/runtime_heads.gemfile +++ b/gems/ast-crispr-markdown-markly/gemfiles/modular/runtime_heads.gemfile @@ -8,4 +8,4 @@ # Test against HEAD of runtime dependencies so we can proactively file bugs -eval_gemfile("x_std_libs/vHEAD.gemfile") +eval_gemfile('x_std_libs/vHEAD.gemfile') diff --git a/gems/ast-crispr-markdown-markly/gemfiles/modular/stringio/r2/v3.0.gemfile b/gems/ast-crispr-markdown-markly/gemfiles/modular/stringio/r2/v3.0.gemfile index e85bb18ee..3616f4e3a 100644 --- a/gems/ast-crispr-markdown-markly/gemfiles/modular/stringio/r2/v3.0.gemfile +++ b/gems/ast-crispr-markdown-markly/gemfiles/modular/stringio/r2/v3.0.gemfile @@ -2,4 +2,4 @@ # NOT SEMVER # Version 3.0.7 dropped support for Ruby <= 2.7 # Version 3.0.0 dropped support for Ruby <= 2.4 -gem "stringio", ">= 3.0" +gem 'stringio', '>= 3.0' diff --git a/gems/ast-crispr-markdown-markly/gemfiles/modular/stringio/r3/v3.0.gemfile b/gems/ast-crispr-markdown-markly/gemfiles/modular/stringio/r3/v3.0.gemfile index e85bb18ee..3616f4e3a 100644 --- a/gems/ast-crispr-markdown-markly/gemfiles/modular/stringio/r3/v3.0.gemfile +++ b/gems/ast-crispr-markdown-markly/gemfiles/modular/stringio/r3/v3.0.gemfile @@ -2,4 +2,4 @@ # NOT SEMVER # Version 3.0.7 dropped support for Ruby <= 2.7 # Version 3.0.0 dropped support for Ruby <= 2.4 -gem "stringio", ">= 3.0" +gem 'stringio', '>= 3.0' diff --git a/gems/ast-crispr-markdown-markly/gemfiles/modular/stringio/r4/v3.0.gemfile b/gems/ast-crispr-markdown-markly/gemfiles/modular/stringio/r4/v3.0.gemfile index e85bb18ee..3616f4e3a 100644 --- a/gems/ast-crispr-markdown-markly/gemfiles/modular/stringio/r4/v3.0.gemfile +++ b/gems/ast-crispr-markdown-markly/gemfiles/modular/stringio/r4/v3.0.gemfile @@ -2,4 +2,4 @@ # NOT SEMVER # Version 3.0.7 dropped support for Ruby <= 2.7 # Version 3.0.0 dropped support for Ruby <= 2.4 -gem "stringio", ">= 3.0" +gem 'stringio', '>= 3.0' diff --git a/gems/ast-crispr-markdown-markly/gemfiles/modular/stringio/vHEAD.gemfile b/gems/ast-crispr-markdown-markly/gemfiles/modular/stringio/vHEAD.gemfile index 5f2a74126..78f5f5d8a 100644 --- a/gems/ast-crispr-markdown-markly/gemfiles/modular/stringio/vHEAD.gemfile +++ b/gems/ast-crispr-markdown-markly/gemfiles/modular/stringio/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 (dependency of omniauth) -gem "stringio", github: "ruby/stringio", branch: "master" +gem 'stringio', github: 'ruby/stringio', branch: 'master' diff --git a/gems/ast-crispr-markdown-markly/gemfiles/modular/style.gemfile b/gems/ast-crispr-markdown-markly/gemfiles/modular/style.gemfile index 35de4dcd6..4dbcc02c0 100644 --- a/gems/ast-crispr-markdown-markly/gemfiles/modular/style.gemfile +++ b/gems/ast-crispr-markdown-markly/gemfiles/modular/style.gemfile @@ -9,23 +9,23 @@ # Style tasks run on the latest Ruby; RuboCop-LTS selects the compatibility # rules for the configured Ruby floor independently from task dependency floors. -gem "reek", "~> 6.5", ">= 6.5.0" +gem 'reek', '~> 6.5', '>= 6.5.0' platform :mri do - gem "appraisal2-rubocop", "~> 1.0", ">= 1.0.0", require: false - gem "rubocop-gradual", "~> 0.4", ">= 0.4.0" - gem "rubocop-minitest", "~> 0.40", ">= 0.40.0" - gem "rubocop-on-rbs", "~> 2.0", ">= 2.0.0" # ruby >= 3.2.0 + gem 'appraisal2-rubocop', '~> 1.0', '>= 1.0.0', require: false + gem 'rubocop-gradual', '~> 0.4', '>= 0.4.0' + gem 'rubocop-minitest', '~> 0.40', '>= 0.40.0' + gem 'rubocop-on-rbs', '~> 2.0', '>= 2.0.0' # ruby >= 3.2.0 # gem "rubocop", "~> 1.73", ">= 1.73.2" # constrained by standard - gem "rubocop-packaging", "~> 0.6", ">= 0.6.0" - gem "standard", "~> 1.56", ">= 1.56.0" + gem 'rubocop-packaging', '~> 0.6', '>= 0.6.0' + gem 'standard', '~> 1.56', '>= 1.56.0' - if ENV.fetch("RUBOCOP_LTS_LOCAL", "false").casecmp("false").zero? + if ENV.fetch('RUBOCOP_LTS_LOCAL', 'false').casecmp('false').zero? declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) - gem "rubocop-lts", "~> 24.2", ">= 24.2.1" unless declared_gems.include?("rubocop-lts") - gem "rubocop-lts-rspec", "~> 1.0", ">= 1.0.5" unless declared_gems.include?("rubocop-lts-rspec") - gem "rubocop-ruby3_2", "~> 3.0", ">= 3.0.6" unless declared_gems.include?("rubocop-ruby3_2") + gem 'rubocop-lts', '~> 24.2', '>= 24.2.1' unless declared_gems.include?('rubocop-lts') + gem 'rubocop-lts-rspec', '~> 1.0', '>= 1.0.5' unless declared_gems.include?('rubocop-lts-rspec') + gem 'rubocop-ruby3_2', '~> 3.0', '>= 3.0.6' unless declared_gems.include?('rubocop-ruby3_2') else - eval_gemfile("style_local.gemfile") + eval_gemfile('style_local.gemfile') end end diff --git a/gems/ast-crispr-markdown-markly/gemfiles/modular/style_local.gemfile b/gems/ast-crispr-markdown-markly/gemfiles/modular/style_local.gemfile index ef961a7cf..96bd46552 100644 --- a/gems/ast-crispr-markdown-markly/gemfiles/modular/style_local.gemfile +++ b/gems/ast-crispr-markdown-markly/gemfiles/modular/style_local.gemfile @@ -14,21 +14,19 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] -nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) +nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] +nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == "nomono" } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - if nomono_locked - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] - end + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked end -Kernel.send(:gem, "nomono", *nomono_activation_requirements) -require "nomono/bundler" +Kernel.send(:gem, 'nomono', *nomono_activation_requirements) +require 'nomono/bundler' local_gems = %w[rubocop-lts rubocop-lts-rspec rubocop-ruby3_2 standard-rubocop-lts] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) @@ -38,11 +36,11 @@ local_gems_to_eval = local_gems - %w[ast-crispr-markdown-markly] - declared_gems platform :mri do eval_nomono_gems( gems: local_gems_to_eval, - prefix: "RUBOCOP_LTS", - path_env: "RUBOCOP_LTS_LOCAL", - vendored_gems_env: "VENDORED_GEMS", - vendor_gem_dir_env: "VENDOR_GEM_DIR", - debug_env: "RUBOCOP_LTS_DEBUG", - root: ["src", "rubocop-lts"] + prefix: 'RUBOCOP_LTS', + path_env: 'RUBOCOP_LTS_LOCAL', + vendored_gems_env: 'VENDORED_GEMS', + vendor_gem_dir_env: 'VENDOR_GEM_DIR', + debug_env: 'RUBOCOP_LTS_DEBUG', + root: %w[src rubocop-lts] ) end diff --git a/gems/ast-crispr-markdown-markly/gemfiles/modular/templating.gemfile b/gems/ast-crispr-markdown-markly/gemfiles/modular/templating.gemfile index 47138ffbb..a672de184 100644 --- a/gems/ast-crispr-markdown-markly/gemfiles/modular/templating.gemfile +++ b/gems/ast-crispr-markdown-markly/gemfiles/modular/templating.gemfile @@ -1,18 +1,18 @@ # frozen_string_literal: true -structuredmerge_remote = ENV.fetch("STRUCTUREDMERGE_DEV", "false").casecmp("false").zero? -kettle_remote = ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false").zero? +structuredmerge_remote = ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false').zero? +kettle_remote = ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? if structuredmerge_remote # Parser dependencies for released installs. - gem "tree_sitter_language_pack", "~> 1.13", ">= 1.13.3" + gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' # Merge recipes for released installs. - gem "kettle-jem", ">= 7.0" + gem 'kettle-jem', '>= 7.0' end if kettle_remote # Template/plugin checks for released installs. - gem "kettle-drift", "~> 1.0", ">= 1.0.6", require: false + gem 'kettle-drift', '~> 1.0', '>= 1.0.6', require: false end # Set STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local development with path-based dependencies. @@ -21,4 +21,4 @@ end # # Set KETTLE_DEV_DEV=/path/to/my for local development with Kettle plugin gems. # When false (default / CI), released Kettle plugin gems are used. -eval_gemfile "templating_local.gemfile" unless structuredmerge_remote && kettle_remote +eval_gemfile 'templating_local.gemfile' unless structuredmerge_remote && kettle_remote diff --git a/gems/ast-crispr-markdown-markly/gemfiles/modular/templating_local.gemfile b/gems/ast-crispr-markdown-markly/gemfiles/modular/templating_local.gemfile index fee33c6c0..558511bf4 100644 --- a/gems/ast-crispr-markdown-markly/gemfiles/modular/templating_local.gemfile +++ b/gems/ast-crispr-markdown-markly/gemfiles/modular/templating_local.gemfile @@ -12,21 +12,19 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] -nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) +nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] +nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == "nomono" } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - if nomono_locked - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] - end + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked end -Kernel.send(:gem, "nomono", *nomono_activation_requirements) -require "nomono/bundler" +Kernel.send(:gem, 'nomono', *nomono_activation_requirements) +require 'nomono/bundler' structuredmerge_local_gems = %w[ tree_haver @@ -69,25 +67,25 @@ structuredmerge_local_gems_to_eval = structuredmerge_local_gems - %w[ast-crispr- kettle_dev_local_gems_to_eval = kettle_dev_local_gems - %w[ast-crispr-markdown-markly] - declared_gems platform :mri do - if ENV.fetch("STRUCTUREDMERGE_DEV", "false").casecmp("false") != 0 + if ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false') != 0 eval_nomono_gems( gems: structuredmerge_local_gems_to_eval, - prefix: "STRUCTUREDMERGE", - path_env: "STRUCTUREDMERGE_DEV", - vendored_gems_env: "VENDORED_GEMS", - vendor_gem_dir_env: "VENDOR_GEM_DIR", - debug_env: "STRUCTUREDMERGE_DEBUG" + prefix: 'STRUCTUREDMERGE', + path_env: 'STRUCTUREDMERGE_DEV', + vendored_gems_env: 'VENDORED_GEMS', + vendor_gem_dir_env: 'VENDOR_GEM_DIR', + debug_env: 'STRUCTUREDMERGE_DEBUG' ) end - if ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false") != 0 + if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false') != 0 eval_nomono_gems( gems: kettle_dev_local_gems_to_eval, - prefix: "KETTLE_DEV", - path_env: "KETTLE_DEV_DEV", - vendored_gems_env: "VENDORED_GEMS", - vendor_gem_dir_env: "VENDOR_GEM_DIR", - debug_env: "KETTLE_DEV_DEBUG" + prefix: 'KETTLE_DEV', + path_env: 'KETTLE_DEV_DEV', + vendored_gems_env: 'VENDORED_GEMS', + vendor_gem_dir_env: 'VENDOR_GEM_DIR', + debug_env: 'KETTLE_DEV_DEBUG' ) end end diff --git a/gems/ast-crispr-markdown-markly/gemfiles/modular/webrick/r4/v1.9.gemfile b/gems/ast-crispr-markdown-markly/gemfiles/modular/webrick/r4/v1.9.gemfile index eaab4a473..b1329ba84 100644 --- a/gems/ast-crispr-markdown-markly/gemfiles/modular/webrick/r4/v1.9.gemfile +++ b/gems/ast-crispr-markdown-markly/gemfiles/modular/webrick/r4/v1.9.gemfile @@ -1 +1 @@ -gem "webrick", "~> 1.9" +gem 'webrick', '~> 1.9' diff --git a/gems/ast-crispr-markdown-markly/gemfiles/modular/webrick/vHEAD.gemfile b/gems/ast-crispr-markdown-markly/gemfiles/modular/webrick/vHEAD.gemfile index 8a789b634..c7e6f81a1 100644 --- a/gems/ast-crispr-markdown-markly/gemfiles/modular/webrick/vHEAD.gemfile +++ b/gems/ast-crispr-markdown-markly/gemfiles/modular/webrick/vHEAD.gemfile @@ -1 +1 @@ -gem "webrick", ">= 1.9" +gem 'webrick', '>= 1.9' diff --git a/gems/ast-crispr-markdown-markly/gemfiles/modular/x_std_libs.gemfile b/gems/ast-crispr-markdown-markly/gemfiles/modular/x_std_libs.gemfile index 77aad43f2..b1f43c097 100644 --- a/gems/ast-crispr-markdown-markly/gemfiles/modular/x_std_libs.gemfile +++ b/gems/ast-crispr-markdown-markly/gemfiles/modular/x_std_libs.gemfile @@ -1,12 +1,12 @@ ### Std Lib Extracted Gems ruby_version = Gem::Version.new(RUBY_VERSION) -if ruby_version >= Gem::Version.new("4.0") - eval_gemfile "x_std_libs/r4/libs.gemfile" -elsif ruby_version >= Gem::Version.new("3.2") - eval_gemfile "x_std_libs/r3/libs.gemfile" -elsif ruby_version >= Gem::Version.new("3.1") - eval_gemfile "x_std_libs/r3.1/libs.gemfile" +if ruby_version >= Gem::Version.new('4.0') + eval_gemfile 'x_std_libs/r4/libs.gemfile' +elsif ruby_version >= Gem::Version.new('3.2') + eval_gemfile 'x_std_libs/r3/libs.gemfile' +elsif ruby_version >= Gem::Version.new('3.1') + eval_gemfile 'x_std_libs/r3.1/libs.gemfile' else - eval_gemfile "x_std_libs/r2/libs.gemfile" + eval_gemfile 'x_std_libs/r2/libs.gemfile' end diff --git a/gems/ast-crispr-markdown-markly/gemfiles/modular/x_std_libs/r2/libs.gemfile b/gems/ast-crispr-markdown-markly/gemfiles/modular/x_std_libs/r2/libs.gemfile index 441c4f03a..16a5e3d70 100644 --- a/gems/ast-crispr-markdown-markly/gemfiles/modular/x_std_libs/r2/libs.gemfile +++ b/gems/ast-crispr-markdown-markly/gemfiles/modular/x_std_libs/r2/libs.gemfile @@ -1,3 +1,3 @@ -eval_gemfile "../../erb/r2/v3.0.gemfile" -eval_gemfile "../../mutex_m/r2/v0.3.gemfile" -eval_gemfile "../../stringio/r2/v3.0.gemfile" +eval_gemfile '../../erb/r2/v3.0.gemfile' +eval_gemfile '../../mutex_m/r2/v0.3.gemfile' +eval_gemfile '../../stringio/r2/v3.0.gemfile' diff --git a/gems/ast-crispr-markdown-markly/gemfiles/modular/x_std_libs/r3/libs.gemfile b/gems/ast-crispr-markdown-markly/gemfiles/modular/x_std_libs/r3/libs.gemfile index c293a3ddd..220ff95c1 100644 --- a/gems/ast-crispr-markdown-markly/gemfiles/modular/x_std_libs/r3/libs.gemfile +++ b/gems/ast-crispr-markdown-markly/gemfiles/modular/x_std_libs/r3/libs.gemfile @@ -1,3 +1,3 @@ -eval_gemfile "../../erb/r3/v5.0.gemfile" -eval_gemfile "../../mutex_m/r3/v0.3.gemfile" -eval_gemfile "../../stringio/r3/v3.0.gemfile" +eval_gemfile '../../erb/r3/v5.0.gemfile' +eval_gemfile '../../mutex_m/r3/v0.3.gemfile' +eval_gemfile '../../stringio/r3/v3.0.gemfile' diff --git a/gems/ast-crispr-markdown-markly/gemfiles/modular/x_std_libs/r4/libs.gemfile b/gems/ast-crispr-markdown-markly/gemfiles/modular/x_std_libs/r4/libs.gemfile index eb5574247..e2f6501eb 100644 --- a/gems/ast-crispr-markdown-markly/gemfiles/modular/x_std_libs/r4/libs.gemfile +++ b/gems/ast-crispr-markdown-markly/gemfiles/modular/x_std_libs/r4/libs.gemfile @@ -1,6 +1,6 @@ -eval_gemfile "../../erb/r4/v5.0.gemfile" -eval_gemfile "../../mutex_m/r4/v0.3.gemfile" -eval_gemfile "../../stringio/r4/v3.0.gemfile" -eval_gemfile "../../benchmark/r4/v0.5.gemfile" -eval_gemfile "../../cgi/r4/v0.5.gemfile" -eval_gemfile "../../webrick/r4/v1.9.gemfile" +eval_gemfile '../../erb/r4/v5.0.gemfile' +eval_gemfile '../../mutex_m/r4/v0.3.gemfile' +eval_gemfile '../../stringio/r4/v3.0.gemfile' +eval_gemfile '../../benchmark/r4/v0.5.gemfile' +eval_gemfile '../../cgi/r4/v0.5.gemfile' +eval_gemfile '../../webrick/r4/v1.9.gemfile' diff --git a/gems/ast-crispr-markdown-markly/gemfiles/modular/x_std_libs/vHEAD.gemfile b/gems/ast-crispr-markdown-markly/gemfiles/modular/x_std_libs/vHEAD.gemfile index d4d5b16c9..ab75cccf1 100644 --- a/gems/ast-crispr-markdown-markly/gemfiles/modular/x_std_libs/vHEAD.gemfile +++ b/gems/ast-crispr-markdown-markly/gemfiles/modular/x_std_libs/vHEAD.gemfile @@ -1,6 +1,6 @@ -eval_gemfile "../erb/vHEAD.gemfile" -eval_gemfile "../mutex_m/vHEAD.gemfile" -eval_gemfile "../stringio/vHEAD.gemfile" -eval_gemfile "../benchmark/vHEAD.gemfile" -eval_gemfile "../cgi/vHEAD.gemfile" -eval_gemfile "../webrick/vHEAD.gemfile" +eval_gemfile '../erb/vHEAD.gemfile' +eval_gemfile '../mutex_m/vHEAD.gemfile' +eval_gemfile '../stringio/vHEAD.gemfile' +eval_gemfile '../benchmark/vHEAD.gemfile' +eval_gemfile '../cgi/vHEAD.gemfile' +eval_gemfile '../webrick/vHEAD.gemfile' diff --git a/gems/ast-crispr-markdown-markly/lib/ast/crispr/markdown/markly/version.rb b/gems/ast-crispr-markdown-markly/lib/ast/crispr/markdown/markly/version.rb index e184c556f..ba5f0b149 100644 --- a/gems/ast-crispr-markdown-markly/lib/ast/crispr/markdown/markly/version.rb +++ b/gems/ast-crispr-markdown-markly/lib/ast/crispr/markdown/markly/version.rb @@ -5,7 +5,7 @@ module Crispr module Markdown module Markly module Version - VERSION = "7.1.0" + VERSION = '7.1.0' end VERSION = Version::VERSION # Traditional Constant Location end diff --git a/gems/ast-crispr-markdown-markly/spec/spec_helper.rb b/gems/ast-crispr-markdown-markly/spec/spec_helper.rb index 5eedbdb78..a890c92b2 100644 --- a/gems/ast-crispr-markdown-markly/spec/spec_helper.rb +++ b/gems/ast-crispr-markdown-markly/spec/spec_helper.rb @@ -7,16 +7,16 @@ # NOTE: Gemfiles for non-coverage appraisals may not have kettle-soup-cover. # The rescue LoadError handles that scenario. begin - require "kettle-soup-cover" + require 'kettle-soup-cover' if Kettle::Soup::Cover::DO_COV # Requiring simplecov loads the project-local `.simplecov`. - require "simplecov" - require "kettle/soup/cover/config" + require 'simplecov' + require 'kettle/soup/cover/config' SimpleCov.start end -rescue LoadError => error +rescue LoadError => e # check the error message and re-raise when unexpected - raise error unless error.message.include?("kettle") + raise e unless e.message.include?('kettle') end # External RSpec & related config diff --git a/gems/ast-merge-git/Gemfile.lock b/gems/ast-merge-git/Gemfile.lock index 545ba4616..94cd0bb04 100644 --- a/gems/ast-merge-git/Gemfile.lock +++ b/gems/ast-merge-git/Gemfile.lock @@ -6,6 +6,266 @@ PATH json-merge (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly + specs: + ast-crispr-markdown-markly (7.1.0) + ast-crispr (= 7.1.0) + markly-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism + specs: + ast-crispr-ruby-prism (7.1.0) + ast-crispr (= 7.1.0) + prism-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr + specs: + ast-crispr (7.1.0) + ast-merge (= 7.1.0) + service_actor (~> 3.9) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge + specs: + ast-merge (7.1.0) + benchmark + token-resolver (~> 2.0, >= 2.0.4) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template + specs: + ast-template (7.1.0) + ast-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge + specs: + bash-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge + specs: + binary-merge (7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge + specs: + citrus-toml-merge (7.1.0) + toml-merge (= 7.1.0) + toml-rb (~> 4.1) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge + specs: + commonmarker-merge (7.1.0) + commonmarker (~> 2.2) + markdown-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge + specs: + dotenv-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge + specs: + go-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge + specs: + json-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem + specs: + kettle-jem (7.1.0) + addressable (>= 2.8, < 3) + ast-crispr-markdown-markly (= 7.1.0) + ast-crispr-ruby-prism (= 7.1.0) + ast-merge (= 7.1.0) + bash-merge (= 7.1.0) + citrus-toml-merge (= 7.1.0) + commonmarker-merge (= 7.1.0) + dotenv-merge (= 7.1.0) + json-merge (= 7.1.0) + kettle-dev (~> 2.3, >= 2.3.5) + kettle-rb (~> 0.1, >= 0.1.4) + kramdown-merge (= 7.1.0) + markdown-merge (= 7.1.0) + markly-merge (= 7.1.0) + prism-merge (= 7.1.0) + psych-merge (= 7.1.0) + rbs (>= 3.10) + rbs-merge (= 7.1.0) + ruby-merge (= 7.1.0) + token-resolver (~> 2.0, >= 2.0.4) + toml-merge (= 7.1.0) + toml-rb (~> 4.2) + tree_haver (= 7.1.0) + yaml-merge (= 7.1.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge + specs: + kramdown-merge (7.1.0) + kramdown (~> 2.5) + markdown-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge + specs: + markdown-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge + specs: + markly-merge (7.1.0) + markdown-merge (= 7.1.0) + markly (~> 0.9) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge + specs: + parslet-toml-merge (7.1.0) + toml (~> 0.3) + toml-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge + specs: + plain-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge + specs: + prism-merge (7.1.0) + prism (~> 1.6) + ruby-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge + specs: + psych-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + yaml-merge (= 7.1.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge + specs: + rbs-merge (7.1.0) + ast-merge (= 7.1.0) + rbs (>= 3.10) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge + specs: + ruby-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge + specs: + rust-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb + specs: + smorg-rb (7.1.0) + ast-merge (= 7.1.0) + ast-merge-git (= 7.1.0) + diff-lcs (~> 1.5) + go-merge (= 7.1.0) + json-merge (= 7.1.0) + kettle-jem (= 7.1.0) + markly-merge (= 7.1.0) + plain-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge + specs: + toml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver + specs: + tree_haver (7.1.0) + citrus (~> 3.0) + parslet (~> 2.0) + tree_sitter_language_pack (>= 1.13.2, < 2.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge + specs: + typescript-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge + specs: + yaml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge + specs: + zip-merge (7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + GEM remote: https://gem.coop/ specs: @@ -21,11 +281,6 @@ GEM rubocop (>= 1.0) version_gem (~> 1.1, >= 1.1.14) ast (2.4.3) - ast-merge (7.1.0) - benchmark - token-resolver (~> 2.0, >= 2.0.4) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) backports (3.25.3) benchmark (0.5.0) bigdecimal (4.1.2) @@ -35,6 +290,7 @@ GEM cgi (0.5.2) citrus (3.0.2) cmdparse (3.0.7) + commonmarker (2.9.0-x86_64-linux) concurrent-ruby (1.3.8) date (3.5.1) debug (1.11.1) @@ -92,15 +348,13 @@ GEM rdoc (>= 4.0.0) reline (>= 0.4.2) json (2.21.1) - json-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) kettle-dev (2.3.8) emoji_regex (>= 15.0) kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) + kettle-drift (1.0.6) + version_gem (~> 1.1, >= 1.1.14) kettle-rb (0.1.5) kettle-soup-cover (3.0.4) kettle-wash (~> 0.1, >= 0.1.0) @@ -129,6 +383,7 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) + markly (0.16.0) mutex_m (0.3.0) nokogiri (1.19.4-x86_64-linux-gnu) racc (~> 1.4) @@ -283,6 +538,8 @@ GEM ruby-progressbar (1.13.0) ruby_engine (2.0.3) ruby_version (1.0.3) + service_actor (3.9.4) + zeitwerk (>= 1.0) silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) @@ -337,11 +594,11 @@ GEM token-resolver (2.0.5) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.14) - tree_haver (7.1.0) - citrus (~> 3.0) - parslet (~> 2.0) - tree_sitter_language_pack (>= 1.13.2, < 2.0) - version_gem (~> 1.1, >= 1.1.9) + toml (0.3.0) + parslet (>= 1.8.0, < 3.0.0) + toml-rb (4.2.0) + citrus (~> 3.0, > 3.0) + racc (~> 1.7) tree_sitter_language_pack (1.13.3-x86_64-linux) sorbet-runtime (~> 0.5) tsort (0.2.0) @@ -387,24 +644,46 @@ DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) appraisal2-rubocop (~> 1.0, >= 1.0.0) + ast-crispr! + ast-crispr-markdown-markly! + ast-crispr-ruby-prism! + ast-merge! ast-merge-git! + ast-template! + bash-merge! benchmark (~> 0.5, >= 0.5.0) + binary-merge! bundler-audit (~> 0.9.3) cgi (~> 0.5) + citrus-toml-merge! + commonmarker-merge! debug (>= 1.1) + dotenv-merge! erb (~> 6.0, >= 6.0.6) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.0) + go-merge! irb (~> 1.17) + json-merge! kettle-dev (~> 2.0, >= 2.2.25) + kettle-drift (~> 1.0, >= 1.0.6) + kettle-jem! kettle-soup-cover (~> 3.0, >= 3.0.3) kettle-test (~> 2.0, >= 2.0.9) kramdown (~> 2.5, >= 2.5.2) + kramdown-merge! kramdown-parser-gfm (~> 1.1) + markdown-merge! + markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) + parslet-toml-merge! + plain-merge! + prism-merge! + psych-merge! rake (~> 13.0) rbs (>= 3.0) + rbs-merge! rdoc (~> 6.11) reek (~> 6.5, >= 6.5.0) require_bench (~> 1.0, >= 1.0.4) @@ -415,19 +694,27 @@ DEPENDENCIES rubocop-on-rbs (~> 2.0, >= 2.0.0) rubocop-packaging (~> 0.6, >= 0.6.0) rubocop-ruby3_2 (~> 3.0, >= 3.0.6) + ruby-merge! ruby-progressbar (~> 1.13) + rust-merge! + smorg-rb! standard (~> 1.56, >= 1.56.0) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) + toml-merge! + tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) + typescript-merge! webrick (~> 1.9) yaml-converter (~> 0.2, >= 0.2.3) + yaml-merge! yard (~> 0.9, >= 0.9.45) yard-fence (~> 0.9, >= 0.9.6) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) yard-timekeeper (~> 0.2, >= 0.2.4) yard-yaml (~> 0.2, >= 0.2.3) + zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af @@ -435,21 +722,31 @@ CHECKSUMS appraisal2 (3.2.0) sha256=ccd0b767ac4060cd7af6d16747459b6990f49c39c7b4fb1f7d1146b1e97c492f appraisal2-rubocop (1.0.0) sha256=b71410fbb014befda5340605a605b7f6f3f012739baf0acc5b4351b592c3258d ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 + ast-crispr (7.1.0) + ast-crispr-markdown-markly (7.1.0) + ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) ast-merge-git (7.1.0) + ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 + bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd + binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 + citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 + commonmarker (2.9.0-x86_64-linux) sha256=8cfe92970eef585a19ddf6613224b91cab64d6029834661bda801f877c9c7f43 + commonmarker-merge (7.1.0) concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 + dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -462,21 +759,28 @@ CHECKSUMS gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f + go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 json-merge (7.1.0) kettle-dev (2.3.8) sha256=9d716ff21c660a730cb4e8d41e2e2f0630a28167a354b6e2924e242102aef72c + kettle-drift (1.0.6) sha256=46eda08fa4411d1f3c6682a95eef1c9df4e94611b3949f49d4c7b43c0ed356a3 + kettle-jem (7.1.0) kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f kettle-soup-cover (3.0.4) kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa + kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 + markdown-merge (7.1.0) + markly (0.16.0) sha256=6f70d79e385b1efc9e171f74c81628826259039fe6c778e03c3924c71dac5511 + markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-x86_64-linux-gnu) sha256=379fae440b28915e3f19d752ce2dcf8465ed2b2fbefd2a7ca0dd497bc981a06a nomono (1.0.9) @@ -486,15 +790,20 @@ CHECKSUMS parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 + parslet-toml-merge (7.1.0) + plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 + prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 + psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 + rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb @@ -529,15 +838,19 @@ CHECKSUMS rubocop-rspec_rails (2.32.0) sha256=4a0d641c72f6ebb957534f539d9d0a62c47abd8ce0d0aeee1ef4701e892a9100 rubocop-ruby3_2 (3.0.7) sha256=f53dd6d286fb05186214fc6ec116783e7f837030918e8931c05de773e98f8466 rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 + ruby-merge (7.1.0) ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 + rust-merge (7.1.0) + service_actor (3.9.4) sha256=e63b523630b9a7e62959b2a90113b08d2565b5de9c148557b281ef847c9539ce silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed + smorg-rb (7.1.0) sorbet-runtime (0.6.13347) sha256=54e7221d9f4b63f58aec79f3043752a9ba7810347c6ae0d903531591cc2d5f01 standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b @@ -552,15 +865,20 @@ CHECKSUMS timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.5) sha256=b852f924287ffb58a440856e862b056c8ad97e74b4b2526cee43e0771f40c25c + toml (0.3.0) sha256=0a91d0f76a9036e84e44f95693b12f58d358c1df3ac8e3b5271f2056ecc6e4b9 + toml-merge (7.1.0) + toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 + typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 webrick (1.9.2) sha256=beb4a15fc474defed24a3bda4ffd88a490d517c9e4e6118c3edce59e45864131 yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 + yaml-merge (7.1.0) yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd @@ -568,6 +886,7 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 + zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH diff --git a/gems/json-merge/.simplecov b/gems/json-merge/.simplecov index 7a28b141e..eefe28272 100644 --- a/gems/json-merge/.simplecov +++ b/gems/json-merge/.simplecov @@ -4,15 +4,11 @@ # json-merge will then preserve content between those markers across template runs. # kettle-jem:unfreeze -require 'kettle/soup/cover/config' - # Minimum coverage thresholds are set by kettle-soup-cover. # They are controlled by ENV variables loaded by `mise` from `mise.toml` # (with optional machine-local overrides in `.env.local`). # If the values for minimum coverage need to change, they should be changed both there, # and in 2 places in .github/workflows/coverage.yml. -SimpleCov.start do - track_files 'lib/**/*.rb' - track_files 'lib/**/*.rake' - track_files 'exe/*.rb' +SimpleCov.configure do + cover "lib/**/*.rb", "lib/**/*.rake", "exe/*.rb" end diff --git a/gems/json-merge/Gemfile.lock b/gems/json-merge/Gemfile.lock index 638f43645..1ca1f8600 100644 --- a/gems/json-merge/Gemfile.lock +++ b/gems/json-merge/Gemfile.lock @@ -6,38 +6,6 @@ PATH tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly - specs: - ast-crispr-markdown-markly (7.1.0) - ast-crispr (= 7.1.0) - markly-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism - specs: - ast-crispr-ruby-prism (7.1.0) - ast-crispr (= 7.1.0) - prism-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr - specs: - ast-crispr (7.1.0) - ast-merge (= 7.1.0) - service_actor (~> 3.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git - specs: - ast-merge-git (7.1.0) - ast-merge (= 7.1.0) - json-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - PATH remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge specs: @@ -47,193 +15,6 @@ PATH tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template - specs: - ast-template (7.1.0) - ast-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge - specs: - bash-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge - specs: - binary-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge - specs: - citrus-toml-merge (7.1.0) - toml-merge (= 7.1.0) - toml-rb (~> 4.1) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge - specs: - commonmarker-merge (7.1.0) - commonmarker (~> 2.2) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge - specs: - dotenv-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge - specs: - go-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem - specs: - kettle-jem (7.1.0) - addressable (>= 2.8, < 3) - ast-crispr-markdown-markly (= 7.1.0) - ast-crispr-ruby-prism (= 7.1.0) - ast-merge (= 7.1.0) - bash-merge (= 7.1.0) - citrus-toml-merge (= 7.1.0) - commonmarker-merge (= 7.1.0) - dotenv-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-dev (~> 2.3, >= 2.3.5) - kettle-rb (~> 0.1, >= 0.1.4) - kramdown-merge (= 7.1.0) - markdown-merge (= 7.1.0) - markly-merge (= 7.1.0) - prism-merge (= 7.1.0) - psych-merge (= 7.1.0) - rbs (>= 3.10) - rbs-merge (= 7.1.0) - ruby-merge (= 7.1.0) - token-resolver (~> 2.0, >= 2.0.4) - toml-merge (= 7.1.0) - toml-rb (~> 4.2) - tree_haver (= 7.1.0) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge - specs: - kramdown-merge (7.1.0) - kramdown (~> 2.5) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge - specs: - markdown-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge - specs: - markly-merge (7.1.0) - markdown-merge (= 7.1.0) - markly (~> 0.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge - specs: - parslet-toml-merge (7.1.0) - toml (~> 0.3) - toml-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge - specs: - plain-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge - specs: - prism-merge (7.1.0) - prism (~> 1.6) - ruby-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge - specs: - psych-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge - specs: - rbs-merge (7.1.0) - ast-merge (= 7.1.0) - rbs (>= 3.10) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge - specs: - ruby-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge - specs: - rust-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb - specs: - smorg-rb (7.1.0) - ast-merge (= 7.1.0) - ast-merge-git (= 7.1.0) - diff-lcs (~> 1.5) - go-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-jem (= 7.1.0) - markly-merge (= 7.1.0) - plain-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge - specs: - toml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - PATH remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver specs: @@ -243,29 +24,6 @@ PATH tree_sitter_language_pack (>= 1.13.2, < 2.0) version_gem (~> 1.1, >= 1.1.9) -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge - specs: - typescript-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge - specs: - yaml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge - specs: - zip-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - GEM remote: https://gem.coop/ specs: @@ -290,7 +48,6 @@ GEM cgi (0.5.2) citrus (3.0.2) cmdparse (3.0.7) - commonmarker (2.9.0-x86_64-linux) concurrent-ruby (1.3.8) date (3.5.1) debug (1.11.1) @@ -353,8 +110,6 @@ GEM kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) - kettle-drift (1.0.6) - version_gem (~> 1.1, >= 1.1.14) kettle-rb (0.1.5) kettle-soup-cover (3.0.4) kettle-wash (~> 0.1, >= 0.1.0) @@ -383,7 +138,6 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) - markly (0.16.0) mutex_m (0.3.0) nokogiri (1.19.4-aarch64-linux-gnu) racc (~> 1.4) @@ -546,8 +300,6 @@ GEM ruby-progressbar (1.13.0) ruby_engine (2.0.3) ruby_version (1.0.3) - service_actor (3.9.4) - zeitwerk (>= 1.0) silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) @@ -602,11 +354,6 @@ GEM token-resolver (2.0.5) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.14) - toml (0.3.0) - parslet (>= 1.8.0, < 3.0.0) - toml-rb (4.2.0) - citrus (~> 3.0, > 3.0) - racc (~> 1.7) tree_sitter_language_pack (1.13.3-aarch64-linux) sorbet-runtime (~> 0.5) tree_sitter_language_pack (1.13.3-arm64-darwin) @@ -665,46 +412,25 @@ DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) appraisal2-rubocop (~> 1.0, >= 1.0.0) - ast-crispr! - ast-crispr-markdown-markly! - ast-crispr-ruby-prism! ast-merge! - ast-merge-git! - ast-template! - bash-merge! benchmark (~> 0.5, >= 0.5.0) - binary-merge! bundler-audit (~> 0.9.3) cgi (~> 0.5) - citrus-toml-merge! - commonmarker-merge! debug (>= 1.1) - dotenv-merge! erb (~> 6.0, >= 6.0.6) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.0) - go-merge! irb (~> 1.17) json-merge! kettle-dev (~> 2.0, >= 2.2.25) - kettle-drift (~> 1.0, >= 1.0.6) - kettle-jem! kettle-soup-cover (~> 3.0, >= 3.0.3) kettle-test (~> 2.0, >= 2.0.9) kramdown (~> 2.5, >= 2.5.2) - kramdown-merge! kramdown-parser-gfm (~> 1.1) - markdown-merge! - markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) - parslet-toml-merge! - plain-merge! - prism-merge! - psych-merge! rake (~> 13.0) rbs (>= 3.0) - rbs-merge! rdoc (~> 6.11) reek (~> 6.5, >= 6.5.0) require_bench (~> 1.0, >= 1.0.4) @@ -715,27 +441,20 @@ DEPENDENCIES rubocop-on-rbs (~> 2.0, >= 2.0.0) rubocop-packaging (~> 0.6, >= 0.6.0) rubocop-ruby3_2 (~> 3.0, >= 3.0.6) - ruby-merge! ruby-progressbar (~> 1.13) - rust-merge! - smorg-rb! standard (~> 1.56, >= 1.56.0) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) - toml-merge! tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) - typescript-merge! webrick (~> 1.9) yaml-converter (~> 0.2, >= 0.2.3) - yaml-merge! yard (~> 0.9, >= 0.9.45) yard-fence (~> 0.9, >= 0.9.6) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) yard-timekeeper (~> 0.2, >= 0.2.4) yard-yaml (~> 0.2, >= 0.2.3) - zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af @@ -743,31 +462,20 @@ CHECKSUMS appraisal2 (3.2.0) sha256=ccd0b767ac4060cd7af6d16747459b6990f49c39c7b4fb1f7d1146b1e97c492f appraisal2-rubocop (1.0.0) sha256=b71410fbb014befda5340605a605b7f6f3f012739baf0acc5b4351b592c3258d ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 - ast-crispr (7.1.0) - ast-crispr-markdown-markly (7.1.0) - ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) - ast-merge-git (7.1.0) - ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 - bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd - binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 - citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 - commonmarker (2.9.0-x86_64-linux) - commonmarker-merge (7.1.0) concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 - dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -780,28 +488,21 @@ CHECKSUMS gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f - go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 json-merge (7.1.0) kettle-dev (2.3.8) sha256=9d716ff21c660a730cb4e8d41e2e2f0630a28167a354b6e2924e242102aef72c - kettle-drift (1.0.6) - kettle-jem (7.1.0) kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f kettle-soup-cover (3.0.4) kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa - kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 - markdown-merge (7.1.0) - markly (0.16.0) - markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-aarch64-linux-gnu) sha256=1269fb644a6de405057a53dd5c762b1209b43ca7424f839454d3dbc677c31a8f nokogiri (1.19.4-aarch64-linux-musl) sha256=35c65b9ce72b3bb03207bdbe7067915019dc18c1b9b59139684bd6690fdd01af @@ -815,20 +516,15 @@ CHECKSUMS parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 - parslet-toml-merge (7.1.0) - plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 - prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 - psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 - rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb @@ -863,19 +559,15 @@ CHECKSUMS rubocop-rspec_rails (2.32.0) sha256=4a0d641c72f6ebb957534f539d9d0a62c47abd8ce0d0aeee1ef4701e892a9100 rubocop-ruby3_2 (3.0.7) sha256=f53dd6d286fb05186214fc6ec116783e7f837030918e8931c05de773e98f8466 rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 - ruby-merge (7.1.0) ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 - rust-merge (7.1.0) - service_actor (3.9.4) silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed - smorg-rb (7.1.0) sorbet-runtime (0.6.13351) sha256=f8fee17c6e3edf835dc6823d26afb9a7c8969c6710d1fabe2fb43f4e0c15c64f standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b @@ -890,22 +582,17 @@ CHECKSUMS timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.5) sha256=b852f924287ffb58a440856e862b056c8ad97e74b4b2526cee43e0771f40c25c - toml (0.3.0) - toml-merge (7.1.0) - toml-rb (4.2.0) tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-aarch64-linux) sha256=55ffc7c87868cb45658338363d9eba51b4a8b0259aa88e4de368d2bd1d52fea4 tree_sitter_language_pack (1.13.3-arm64-darwin) sha256=bc2498db605f212a1dbd2465ed3f65190d7da786f6ed5d30fcf958121aeb4a5c tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 - typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 webrick (1.9.2) sha256=beb4a15fc474defed24a3bda4ffd88a490d517c9e4e6118c3edce59e45864131 yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 - yaml-merge (7.1.0) yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd @@ -913,7 +600,6 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 - zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH diff --git a/gems/json-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile b/gems/json-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile index b8392fab0..dec650815 100644 --- a/gems/json-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile +++ b/gems/json-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.1 -gem 'benchmark', '~> 0.5', '>= 0.5.0' # Removed from Std Lib in Ruby 4.0 +gem "benchmark", "~> 0.5", ">= 0.5.0" # Removed from Std Lib in Ruby 4.0 diff --git a/gems/json-merge/gemfiles/modular/benchmark/vHEAD.gemfile b/gems/json-merge/gemfiles/modular/benchmark/vHEAD.gemfile index af214aafa..e1eb20c5e 100644 --- a/gems/json-merge/gemfiles/modular/benchmark/vHEAD.gemfile +++ b/gems/json-merge/gemfiles/modular/benchmark/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.1 -gem 'benchmark', github: 'ruby/benchmark', branch: 'master' +gem "benchmark", github: "ruby/benchmark", branch: "master" diff --git a/gems/json-merge/gemfiles/modular/cgi/r4/v0.5.gemfile b/gems/json-merge/gemfiles/modular/cgi/r4/v0.5.gemfile index 17ad97260..19ed967c3 100644 --- a/gems/json-merge/gemfiles/modular/cgi/r4/v0.5.gemfile +++ b/gems/json-merge/gemfiles/modular/cgi/r4/v0.5.gemfile @@ -1 +1 @@ -gem 'cgi', '~> 0.5' +gem "cgi", "~> 0.5" diff --git a/gems/json-merge/gemfiles/modular/cgi/vHEAD.gemfile b/gems/json-merge/gemfiles/modular/cgi/vHEAD.gemfile index 650fbf033..ef8b816ce 100644 --- a/gems/json-merge/gemfiles/modular/cgi/vHEAD.gemfile +++ b/gems/json-merge/gemfiles/modular/cgi/vHEAD.gemfile @@ -1 +1 @@ -gem 'cgi', '>= 0.5' +gem "cgi", ">= 0.5" diff --git a/gems/json-merge/gemfiles/modular/coverage.gemfile b/gems/json-merge/gemfiles/modular/coverage.gemfile index b93014b6b..52d737872 100644 --- a/gems/json-merge/gemfiles/modular/coverage.gemfile +++ b/gems/json-merge/gemfiles/modular/coverage.gemfile @@ -4,11 +4,11 @@ # Set KETTLE_DEV_DEV=true for local development with path-based dependencies. # When false (default / CI), remote released gems are used. -if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? +if ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false").zero? # Coverage (remote/released) platform :mri do - gem 'kettle-soup-cover', '~> 3.0', '>= 3.0.3', require: false + gem "kettle-soup-cover", "~> 3.0", ">= 3.0.3", require: false end else - eval_gemfile 'coverage_local.gemfile' + eval_gemfile "coverage_local.gemfile" end diff --git a/gems/json-merge/gemfiles/modular/coverage_local.gemfile b/gems/json-merge/gemfiles/modular/coverage_local.gemfile index b6836b5de..cacdc07c1 100644 --- a/gems/json-merge/gemfiles/modular/coverage_local.gemfile +++ b/gems/json-merge/gemfiles/modular/coverage_local.gemfile @@ -11,19 +11,21 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] -nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) +nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] +nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == "nomono" } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + if nomono_locked + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] + end end -Kernel.send(:gem, 'nomono', *nomono_activation_requirements) -require 'nomono/bundler' +Kernel.send(:gem, "nomono", *nomono_activation_requirements) +require "nomono/bundler" local_gems = %w[kettle-dev kettle-test kettle-soup-cover kettle-drift] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) @@ -33,21 +35,21 @@ local_gems_to_eval = local_gems - %w[json-merge] - declared_gems platform :mri do eval_nomono_gems( gems: local_gems_to_eval, - prefix: 'KETTLE_DEV', - path_env: 'KETTLE_DEV_DEV', - vendored_gems_env: 'VENDORED_GEMS', - vendor_gem_dir_env: 'VENDOR_GEM_DIR', - debug_env: 'KETTLE_DEV_DEBUG' + prefix: "KETTLE_DEV", + path_env: "KETTLE_DEV_DEV", + vendored_gems_env: "VENDORED_GEMS", + vendor_gem_dir_env: "VENDOR_GEM_DIR", + debug_env: "KETTLE_DEV_DEBUG" ) - if ENV.fetch('GALTZO_FLOSS_DEV', 'false').casecmp('false') != 0 + if ENV.fetch("GALTZO_FLOSS_DEV", "false").casecmp("false") != 0 eval_nomono_gems( gems: %w[turbo_tests2], - prefix: 'GALTZO_FLOSS', - path_env: 'GALTZO_FLOSS_DEV', - vendored_gems_env: 'GALTZO_FLOSS_VENDORED_GEMS', - vendor_gem_dir_env: 'GALTZO_FLOSS_VENDOR_GEM_DIR', - debug_env: 'GALTZO_FLOSS_DEBUG' + prefix: "GALTZO_FLOSS", + path_env: "GALTZO_FLOSS_DEV", + vendored_gems_env: "GALTZO_FLOSS_VENDORED_GEMS", + vendor_gem_dir_env: "GALTZO_FLOSS_VENDOR_GEM_DIR", + debug_env: "GALTZO_FLOSS_DEBUG" ) end end diff --git a/gems/json-merge/gemfiles/modular/debug.gemfile b/gems/json-merge/gemfiles/modular/debug.gemfile index eed8d4d1e..4e15b1a3a 100644 --- a/gems/json-merge/gemfiles/modular/debug.gemfile +++ b/gems/json-merge/gemfiles/modular/debug.gemfile @@ -13,10 +13,10 @@ platform :mri do # Debugging - Ensure ENV["DEBUG"] == "true" to use debuggers within spec suite # Use binding.break, binding.b, or debugger in code - gem 'debug', '>= 1.1' # ruby >= 2.7 + gem "debug", ">= 1.1" # ruby >= 2.7 # Dev Console - Binding.pry - Irb replacement # gem "pry", "~> 0.14" # ruby >= 2.0 end -gem 'gem_bench', '~> 2.0', '>= 2.0.5' +gem "gem_bench", "~> 2.0", ">= 2.0.5" diff --git a/gems/json-merge/gemfiles/modular/documentation.gemfile b/gems/json-merge/gemfiles/modular/documentation.gemfile index 9d4535f12..d8215416e 100644 --- a/gems/json-merge/gemfiles/modular/documentation.gemfile +++ b/gems/json-merge/gemfiles/modular/documentation.gemfile @@ -7,20 +7,20 @@ # # Documentation -gem 'kramdown', '~> 2.5', '>= 2.5.2', require: false # Ruby >= 2.5 -gem 'kramdown-parser-gfm', '~> 1.1', require: false # Ruby >= 2.3 -gem 'yaml-converter', '~> 0.2', '>= 0.2.3', require: false # Ruby >= 3.2 -gem 'yard', '~> 0.9', '>= 0.9.45', require: false -gem 'yard-junk', '~> 0.1', '>= 0.1.0', require: false # Ruby >= 3.1 -gem 'yard-relative_markdown_links', '~> 0.6', require: false +gem "kramdown", "~> 2.5", ">= 2.5.2", require: false # Ruby >= 2.5 +gem "kramdown-parser-gfm", "~> 1.1", require: false # Ruby >= 2.3 +gem "yaml-converter", "~> 0.2", ">= 0.2.3", require: false # Ruby >= 3.2 +gem "yard", "~> 0.9", ">= 0.9.45", require: false +gem "yard-junk", "~> 0.1", ">= 0.1.0", require: false # Ruby >= 3.1 +gem "yard-relative_markdown_links", "~> 0.6", require: false -if ENV.fetch('GALTZO_FLOSS_DEV', 'false').casecmp('false').zero? - gem 'yard-fence', '~> 0.9', '>= 0.9.6', require: false # Ruby >= 3.2 - gem 'yard-timekeeper', '~> 0.2', '>= 0.2.4', require: false - gem 'yard-yaml', '~> 0.2', '>= 0.2.3', require: false +if ENV.fetch("GALTZO_FLOSS_DEV", "false").casecmp("false").zero? + gem "yard-fence", "~> 0.9", ">= 0.9.6", require: false # Ruby >= 3.2 + gem "yard-timekeeper", "~> 0.2", ">= 0.2.4", require: false + gem "yard-yaml", "~> 0.2", ">= 0.2.3", require: false else - eval_gemfile 'documentation_local.gemfile' + eval_gemfile "documentation_local.gemfile" end # Std Lib extractions -gem 'rdoc', '~> 6.11', require: false unless ENV.fetch('KJ_FRAMEWORK_MATRIX_GEM', '') == 'rdoc' +gem "rdoc", "~> 6.11", require: false unless ENV.fetch("KJ_FRAMEWORK_MATRIX_GEM", "") == "rdoc" diff --git a/gems/json-merge/gemfiles/modular/documentation_local.gemfile b/gems/json-merge/gemfiles/modular/documentation_local.gemfile index 35970ca76..65eff94d9 100644 --- a/gems/json-merge/gemfiles/modular/documentation_local.gemfile +++ b/gems/json-merge/gemfiles/modular/documentation_local.gemfile @@ -11,19 +11,21 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] -nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) +nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] +nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == "nomono" } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + if nomono_locked + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] + end end -Kernel.send(:gem, 'nomono', *nomono_activation_requirements) -require 'nomono/bundler' +Kernel.send(:gem, "nomono", *nomono_activation_requirements) +require "nomono/bundler" local_gems = %w[yard-fence yard-timekeeper yard-yaml] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) @@ -32,9 +34,9 @@ local_gems_to_eval = local_gems - %w[json-merge] - declared_gems # export GALTZO_FLOSS_DEV=/path/to/galtzo-floss eval_nomono_gems( gems: local_gems_to_eval, - prefix: 'GALTZO_FLOSS', - path_env: 'GALTZO_FLOSS_DEV', - vendored_gems_env: 'GALTZO_FLOSS_VENDORED_GEMS', - vendor_gem_dir_env: 'GALTZO_FLOSS_VENDOR_GEM_DIR', - debug_env: 'GALTZO_FLOSS_DEBUG' + prefix: "GALTZO_FLOSS", + path_env: "GALTZO_FLOSS_DEV", + vendored_gems_env: "GALTZO_FLOSS_VENDORED_GEMS", + vendor_gem_dir_env: "GALTZO_FLOSS_VENDOR_GEM_DIR", + debug_env: "GALTZO_FLOSS_DEBUG" ) diff --git a/gems/json-merge/gemfiles/modular/erb/r2/v3.0.gemfile b/gems/json-merge/gemfiles/modular/erb/r2/v3.0.gemfile index 7c83a239b..c03bd8d85 100644 --- a/gems/json-merge/gemfiles/modular/erb/r2/v3.0.gemfile +++ b/gems/json-merge/gemfiles/modular/erb/r2/v3.0.gemfile @@ -1 +1 @@ -gem 'erb', '~> 3.0' # ruby >= 2.7.0 +gem "erb", "~> 3.0" # ruby >= 2.7.0 diff --git a/gems/json-merge/gemfiles/modular/erb/r3/v5.0.gemfile b/gems/json-merge/gemfiles/modular/erb/r3/v5.0.gemfile index ec7ff451f..1bd029cc1 100644 --- a/gems/json-merge/gemfiles/modular/erb/r3/v5.0.gemfile +++ b/gems/json-merge/gemfiles/modular/erb/r3/v5.0.gemfile @@ -1 +1 @@ -gem 'erb', '~> 6.0', '>= 6.0.6' # ruby >= 3.2.0 +gem "erb", "~> 6.0", ">= 6.0.6" # ruby >= 3.2.0 diff --git a/gems/json-merge/gemfiles/modular/erb/r4/v5.0.gemfile b/gems/json-merge/gemfiles/modular/erb/r4/v5.0.gemfile index ec7ff451f..1bd029cc1 100644 --- a/gems/json-merge/gemfiles/modular/erb/r4/v5.0.gemfile +++ b/gems/json-merge/gemfiles/modular/erb/r4/v5.0.gemfile @@ -1 +1 @@ -gem 'erb', '~> 6.0', '>= 6.0.6' # ruby >= 3.2.0 +gem "erb", "~> 6.0", ">= 6.0.6" # ruby >= 3.2.0 diff --git a/gems/json-merge/gemfiles/modular/erb/vHEAD.gemfile b/gems/json-merge/gemfiles/modular/erb/vHEAD.gemfile index ea0101185..48fee4218 100644 --- a/gems/json-merge/gemfiles/modular/erb/vHEAD.gemfile +++ b/gems/json-merge/gemfiles/modular/erb/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 3.2 -gem 'erb', github: 'ruby/erb', branch: 'master' +gem "erb", github: "ruby/erb", branch: "master" diff --git a/gems/json-merge/gemfiles/modular/json/truffleruby_22_3.gemfile b/gems/json-merge/gemfiles/modular/json/truffleruby_22_3.gemfile index 9b2f8d96a..b0e69ab11 100644 --- a/gems/json-merge/gemfiles/modular/json/truffleruby_22_3.gemfile +++ b/gems/json-merge/gemfiles/modular/json/truffleruby_22_3.gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -if RUBY_ENGINE == 'truffleruby' && RUBY_ENGINE_VERSION.start_with?('22.3') +if RUBY_ENGINE == "truffleruby" && RUBY_ENGINE_VERSION.start_with?("22.3") # TruffleRuby 22.3 ships the json default gem from its emulated MRI Ruby. - gem 'json', '= 2.5.1' + gem "json", "= 2.5.1" end diff --git a/gems/json-merge/gemfiles/modular/json/truffleruby_23_0.gemfile b/gems/json-merge/gemfiles/modular/json/truffleruby_23_0.gemfile index d787a5ef4..7b2660a2b 100644 --- a/gems/json-merge/gemfiles/modular/json/truffleruby_23_0.gemfile +++ b/gems/json-merge/gemfiles/modular/json/truffleruby_23_0.gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -if RUBY_ENGINE == 'truffleruby' && RUBY_ENGINE_VERSION.start_with?('23.0') +if RUBY_ENGINE == "truffleruby" && RUBY_ENGINE_VERSION.start_with?("23.0") # TruffleRuby 23.0 ships the json default gem from its emulated MRI Ruby. - gem 'json', '= 2.6.1' + gem "json", "= 2.6.1" end diff --git a/gems/json-merge/gemfiles/modular/json/truffleruby_23_1.gemfile b/gems/json-merge/gemfiles/modular/json/truffleruby_23_1.gemfile index d78486b0e..dfa21f2e4 100644 --- a/gems/json-merge/gemfiles/modular/json/truffleruby_23_1.gemfile +++ b/gems/json-merge/gemfiles/modular/json/truffleruby_23_1.gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -if RUBY_ENGINE == 'truffleruby' && RUBY_ENGINE_VERSION.start_with?('23.1') +if RUBY_ENGINE == "truffleruby" && RUBY_ENGINE_VERSION.start_with?("23.1") # TruffleRuby 23.1 ships the json default gem from its emulated MRI Ruby. - gem 'json', '= 2.6.3' + gem "json", "= 2.6.3" end diff --git a/gems/json-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile b/gems/json-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile index e27f1bbae..42e9d9bd4 100644 --- a/gems/json-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile +++ b/gems/json-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 -gem 'mutex_m', '~> 0.2' +gem "mutex_m", "~> 0.2" diff --git a/gems/json-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile b/gems/json-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile index e27f1bbae..42e9d9bd4 100644 --- a/gems/json-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile +++ b/gems/json-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 -gem 'mutex_m', '~> 0.2' +gem "mutex_m", "~> 0.2" diff --git a/gems/json-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile b/gems/json-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile index e27f1bbae..42e9d9bd4 100644 --- a/gems/json-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile +++ b/gems/json-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 -gem 'mutex_m', '~> 0.2' +gem "mutex_m", "~> 0.2" diff --git a/gems/json-merge/gemfiles/modular/mutex_m/vHEAD.gemfile b/gems/json-merge/gemfiles/modular/mutex_m/vHEAD.gemfile index 9dac2f6cb..8af3b6fca 100644 --- a/gems/json-merge/gemfiles/modular/mutex_m/vHEAD.gemfile +++ b/gems/json-merge/gemfiles/modular/mutex_m/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 (dependency of omniauth) -gem 'mutex_m', github: 'ruby/mutex_m', branch: 'master' +gem "mutex_m", github: "ruby/mutex_m", branch: "master" diff --git a/gems/json-merge/gemfiles/modular/optional.gemfile b/gems/json-merge/gemfiles/modular/optional.gemfile index 9ea429538..80bc45196 100644 --- a/gems/json-merge/gemfiles/modular/optional.gemfile +++ b/gems/json-merge/gemfiles/modular/optional.gemfile @@ -9,8 +9,8 @@ # Optional dependencies are not depended on directly, but may be used if present. # Required for curated binstubs generated by kettle-jem install -gem 'rbs', '>= 3.0', require: false # ruby >= 3.1 +gem "rbs", ">= 3.0", require: false # ruby >= 3.1 # Required for kettle-pre-release # URL parsing with Unicode support (falls back to URI if not available) -gem 'addressable', '>= 2.8', '< 3' # ruby >= 2.2 +gem "addressable", ">= 2.8", "< 3" # ruby >= 2.2 diff --git a/gems/json-merge/gemfiles/modular/rspec.gemfile b/gems/json-merge/gemfiles/modular/rspec.gemfile index 2af210a41..72fdf8b7f 100644 --- a/gems/json-merge/gemfiles/modular/rspec.gemfile +++ b/gems/json-merge/gemfiles/modular/rspec.gemfile @@ -1,4 +1,4 @@ -gem 'rspec_junit_formatter', - github: 'pboling/rspec_junit_formatter', - branch: 'main', - ref: '9e6bcaaedd49477b62878ed568dc4ada5cc7cb5e' +gem "rspec_junit_formatter", + github: "pboling/rspec_junit_formatter", + branch: "main", + ref: "9e6bcaaedd49477b62878ed568dc4ada5cc7cb5e" diff --git a/gems/json-merge/gemfiles/modular/runtime_heads.gemfile b/gems/json-merge/gemfiles/modular/runtime_heads.gemfile index ebf17c529..02f134c7f 100644 --- a/gems/json-merge/gemfiles/modular/runtime_heads.gemfile +++ b/gems/json-merge/gemfiles/modular/runtime_heads.gemfile @@ -8,4 +8,4 @@ # Test against HEAD of runtime dependencies so we can proactively file bugs -eval_gemfile('x_std_libs/vHEAD.gemfile') +eval_gemfile("x_std_libs/vHEAD.gemfile") diff --git a/gems/json-merge/gemfiles/modular/stringio/r2/v3.0.gemfile b/gems/json-merge/gemfiles/modular/stringio/r2/v3.0.gemfile index 3616f4e3a..e85bb18ee 100644 --- a/gems/json-merge/gemfiles/modular/stringio/r2/v3.0.gemfile +++ b/gems/json-merge/gemfiles/modular/stringio/r2/v3.0.gemfile @@ -2,4 +2,4 @@ # NOT SEMVER # Version 3.0.7 dropped support for Ruby <= 2.7 # Version 3.0.0 dropped support for Ruby <= 2.4 -gem 'stringio', '>= 3.0' +gem "stringio", ">= 3.0" diff --git a/gems/json-merge/gemfiles/modular/stringio/r3/v3.0.gemfile b/gems/json-merge/gemfiles/modular/stringio/r3/v3.0.gemfile index 3616f4e3a..e85bb18ee 100644 --- a/gems/json-merge/gemfiles/modular/stringio/r3/v3.0.gemfile +++ b/gems/json-merge/gemfiles/modular/stringio/r3/v3.0.gemfile @@ -2,4 +2,4 @@ # NOT SEMVER # Version 3.0.7 dropped support for Ruby <= 2.7 # Version 3.0.0 dropped support for Ruby <= 2.4 -gem 'stringio', '>= 3.0' +gem "stringio", ">= 3.0" diff --git a/gems/json-merge/gemfiles/modular/stringio/r4/v3.0.gemfile b/gems/json-merge/gemfiles/modular/stringio/r4/v3.0.gemfile index 3616f4e3a..e85bb18ee 100644 --- a/gems/json-merge/gemfiles/modular/stringio/r4/v3.0.gemfile +++ b/gems/json-merge/gemfiles/modular/stringio/r4/v3.0.gemfile @@ -2,4 +2,4 @@ # NOT SEMVER # Version 3.0.7 dropped support for Ruby <= 2.7 # Version 3.0.0 dropped support for Ruby <= 2.4 -gem 'stringio', '>= 3.0' +gem "stringio", ">= 3.0" diff --git a/gems/json-merge/gemfiles/modular/stringio/vHEAD.gemfile b/gems/json-merge/gemfiles/modular/stringio/vHEAD.gemfile index 78f5f5d8a..5f2a74126 100644 --- a/gems/json-merge/gemfiles/modular/stringio/vHEAD.gemfile +++ b/gems/json-merge/gemfiles/modular/stringio/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 (dependency of omniauth) -gem 'stringio', github: 'ruby/stringio', branch: 'master' +gem "stringio", github: "ruby/stringio", branch: "master" diff --git a/gems/json-merge/gemfiles/modular/style.gemfile b/gems/json-merge/gemfiles/modular/style.gemfile index 4dbcc02c0..35de4dcd6 100644 --- a/gems/json-merge/gemfiles/modular/style.gemfile +++ b/gems/json-merge/gemfiles/modular/style.gemfile @@ -9,23 +9,23 @@ # Style tasks run on the latest Ruby; RuboCop-LTS selects the compatibility # rules for the configured Ruby floor independently from task dependency floors. -gem 'reek', '~> 6.5', '>= 6.5.0' +gem "reek", "~> 6.5", ">= 6.5.0" platform :mri do - gem 'appraisal2-rubocop', '~> 1.0', '>= 1.0.0', require: false - gem 'rubocop-gradual', '~> 0.4', '>= 0.4.0' - gem 'rubocop-minitest', '~> 0.40', '>= 0.40.0' - gem 'rubocop-on-rbs', '~> 2.0', '>= 2.0.0' # ruby >= 3.2.0 + gem "appraisal2-rubocop", "~> 1.0", ">= 1.0.0", require: false + gem "rubocop-gradual", "~> 0.4", ">= 0.4.0" + gem "rubocop-minitest", "~> 0.40", ">= 0.40.0" + gem "rubocop-on-rbs", "~> 2.0", ">= 2.0.0" # ruby >= 3.2.0 # gem "rubocop", "~> 1.73", ">= 1.73.2" # constrained by standard - gem 'rubocop-packaging', '~> 0.6', '>= 0.6.0' - gem 'standard', '~> 1.56', '>= 1.56.0' + gem "rubocop-packaging", "~> 0.6", ">= 0.6.0" + gem "standard", "~> 1.56", ">= 1.56.0" - if ENV.fetch('RUBOCOP_LTS_LOCAL', 'false').casecmp('false').zero? + if ENV.fetch("RUBOCOP_LTS_LOCAL", "false").casecmp("false").zero? declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) - gem 'rubocop-lts', '~> 24.2', '>= 24.2.1' unless declared_gems.include?('rubocop-lts') - gem 'rubocop-lts-rspec', '~> 1.0', '>= 1.0.5' unless declared_gems.include?('rubocop-lts-rspec') - gem 'rubocop-ruby3_2', '~> 3.0', '>= 3.0.6' unless declared_gems.include?('rubocop-ruby3_2') + gem "rubocop-lts", "~> 24.2", ">= 24.2.1" unless declared_gems.include?("rubocop-lts") + gem "rubocop-lts-rspec", "~> 1.0", ">= 1.0.5" unless declared_gems.include?("rubocop-lts-rspec") + gem "rubocop-ruby3_2", "~> 3.0", ">= 3.0.6" unless declared_gems.include?("rubocop-ruby3_2") else - eval_gemfile('style_local.gemfile') + eval_gemfile("style_local.gemfile") end end diff --git a/gems/json-merge/gemfiles/modular/style_local.gemfile b/gems/json-merge/gemfiles/modular/style_local.gemfile index 269a58c92..cdcbeb586 100644 --- a/gems/json-merge/gemfiles/modular/style_local.gemfile +++ b/gems/json-merge/gemfiles/modular/style_local.gemfile @@ -14,19 +14,21 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] -nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) +nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] +nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == "nomono" } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + if nomono_locked + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] + end end -Kernel.send(:gem, 'nomono', *nomono_activation_requirements) -require 'nomono/bundler' +Kernel.send(:gem, "nomono", *nomono_activation_requirements) +require "nomono/bundler" local_gems = %w[rubocop-lts rubocop-lts-rspec rubocop-ruby3_2 standard-rubocop-lts] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) @@ -36,11 +38,11 @@ local_gems_to_eval = local_gems - %w[json-merge] - declared_gems platform :mri do eval_nomono_gems( gems: local_gems_to_eval, - prefix: 'RUBOCOP_LTS', - path_env: 'RUBOCOP_LTS_LOCAL', - vendored_gems_env: 'VENDORED_GEMS', - vendor_gem_dir_env: 'VENDOR_GEM_DIR', - debug_env: 'RUBOCOP_LTS_DEBUG', - root: %w[src rubocop-lts] + prefix: "RUBOCOP_LTS", + path_env: "RUBOCOP_LTS_LOCAL", + vendored_gems_env: "VENDORED_GEMS", + vendor_gem_dir_env: "VENDOR_GEM_DIR", + debug_env: "RUBOCOP_LTS_DEBUG", + root: ["src", "rubocop-lts"] ) end diff --git a/gems/json-merge/gemfiles/modular/webrick/r4/v1.9.gemfile b/gems/json-merge/gemfiles/modular/webrick/r4/v1.9.gemfile index b1329ba84..eaab4a473 100644 --- a/gems/json-merge/gemfiles/modular/webrick/r4/v1.9.gemfile +++ b/gems/json-merge/gemfiles/modular/webrick/r4/v1.9.gemfile @@ -1 +1 @@ -gem 'webrick', '~> 1.9' +gem "webrick", "~> 1.9" diff --git a/gems/json-merge/gemfiles/modular/webrick/vHEAD.gemfile b/gems/json-merge/gemfiles/modular/webrick/vHEAD.gemfile index c7e6f81a1..8a789b634 100644 --- a/gems/json-merge/gemfiles/modular/webrick/vHEAD.gemfile +++ b/gems/json-merge/gemfiles/modular/webrick/vHEAD.gemfile @@ -1 +1 @@ -gem 'webrick', '>= 1.9' +gem "webrick", ">= 1.9" diff --git a/gems/json-merge/gemfiles/modular/x_std_libs.gemfile b/gems/json-merge/gemfiles/modular/x_std_libs.gemfile index b1f43c097..77aad43f2 100644 --- a/gems/json-merge/gemfiles/modular/x_std_libs.gemfile +++ b/gems/json-merge/gemfiles/modular/x_std_libs.gemfile @@ -1,12 +1,12 @@ ### Std Lib Extracted Gems ruby_version = Gem::Version.new(RUBY_VERSION) -if ruby_version >= Gem::Version.new('4.0') - eval_gemfile 'x_std_libs/r4/libs.gemfile' -elsif ruby_version >= Gem::Version.new('3.2') - eval_gemfile 'x_std_libs/r3/libs.gemfile' -elsif ruby_version >= Gem::Version.new('3.1') - eval_gemfile 'x_std_libs/r3.1/libs.gemfile' +if ruby_version >= Gem::Version.new("4.0") + eval_gemfile "x_std_libs/r4/libs.gemfile" +elsif ruby_version >= Gem::Version.new("3.2") + eval_gemfile "x_std_libs/r3/libs.gemfile" +elsif ruby_version >= Gem::Version.new("3.1") + eval_gemfile "x_std_libs/r3.1/libs.gemfile" else - eval_gemfile 'x_std_libs/r2/libs.gemfile' + eval_gemfile "x_std_libs/r2/libs.gemfile" end diff --git a/gems/json-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile b/gems/json-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile index 16a5e3d70..441c4f03a 100644 --- a/gems/json-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile +++ b/gems/json-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile @@ -1,3 +1,3 @@ -eval_gemfile '../../erb/r2/v3.0.gemfile' -eval_gemfile '../../mutex_m/r2/v0.3.gemfile' -eval_gemfile '../../stringio/r2/v3.0.gemfile' +eval_gemfile "../../erb/r2/v3.0.gemfile" +eval_gemfile "../../mutex_m/r2/v0.3.gemfile" +eval_gemfile "../../stringio/r2/v3.0.gemfile" diff --git a/gems/json-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile b/gems/json-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile index 220ff95c1..c293a3ddd 100644 --- a/gems/json-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile +++ b/gems/json-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile @@ -1,3 +1,3 @@ -eval_gemfile '../../erb/r3/v5.0.gemfile' -eval_gemfile '../../mutex_m/r3/v0.3.gemfile' -eval_gemfile '../../stringio/r3/v3.0.gemfile' +eval_gemfile "../../erb/r3/v5.0.gemfile" +eval_gemfile "../../mutex_m/r3/v0.3.gemfile" +eval_gemfile "../../stringio/r3/v3.0.gemfile" diff --git a/gems/json-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile b/gems/json-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile index e2f6501eb..eb5574247 100644 --- a/gems/json-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile +++ b/gems/json-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile @@ -1,6 +1,6 @@ -eval_gemfile '../../erb/r4/v5.0.gemfile' -eval_gemfile '../../mutex_m/r4/v0.3.gemfile' -eval_gemfile '../../stringio/r4/v3.0.gemfile' -eval_gemfile '../../benchmark/r4/v0.5.gemfile' -eval_gemfile '../../cgi/r4/v0.5.gemfile' -eval_gemfile '../../webrick/r4/v1.9.gemfile' +eval_gemfile "../../erb/r4/v5.0.gemfile" +eval_gemfile "../../mutex_m/r4/v0.3.gemfile" +eval_gemfile "../../stringio/r4/v3.0.gemfile" +eval_gemfile "../../benchmark/r4/v0.5.gemfile" +eval_gemfile "../../cgi/r4/v0.5.gemfile" +eval_gemfile "../../webrick/r4/v1.9.gemfile" diff --git a/gems/json-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile b/gems/json-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile index ab75cccf1..d4d5b16c9 100644 --- a/gems/json-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile +++ b/gems/json-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile @@ -1,6 +1,6 @@ -eval_gemfile '../erb/vHEAD.gemfile' -eval_gemfile '../mutex_m/vHEAD.gemfile' -eval_gemfile '../stringio/vHEAD.gemfile' -eval_gemfile '../benchmark/vHEAD.gemfile' -eval_gemfile '../cgi/vHEAD.gemfile' -eval_gemfile '../webrick/vHEAD.gemfile' +eval_gemfile "../erb/vHEAD.gemfile" +eval_gemfile "../mutex_m/vHEAD.gemfile" +eval_gemfile "../stringio/vHEAD.gemfile" +eval_gemfile "../benchmark/vHEAD.gemfile" +eval_gemfile "../cgi/vHEAD.gemfile" +eval_gemfile "../webrick/vHEAD.gemfile" diff --git a/gems/json-merge/spec/spec_helper.rb b/gems/json-merge/spec/spec_helper.rb index b1c9d9c49..3d185dfb1 100644 --- a/gems/json-merge/spec/spec_helper.rb +++ b/gems/json-merge/spec/spec_helper.rb @@ -7,11 +7,16 @@ # NOTE: Gemfiles for non-coverage appraisals may not have kettle-soup-cover. # The rescue LoadError handles that scenario. begin - require 'kettle-soup-cover' - require 'simplecov' if Kettle::Soup::Cover::DO_COV # `.simplecov` is run here! -rescue LoadError => e + require "kettle-soup-cover" + if Kettle::Soup::Cover::DO_COV + # Requiring simplecov loads the project-local `.simplecov`. + require "simplecov" + require "kettle/soup/cover/config" + SimpleCov.start + end +rescue LoadError => error # check the error message and re-raise when unexpected - raise e unless e.message.include?('kettle') + raise error unless error.message.include?("kettle") end # External RSpec & related config diff --git a/gems/markly-merge/Gemfile.lock b/gems/markly-merge/Gemfile.lock index 5e28fe4f4..ec73856e2 100644 --- a/gems/markly-merge/Gemfile.lock +++ b/gems/markly-merge/Gemfile.lock @@ -7,13 +7,265 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly + specs: + ast-crispr-markdown-markly (7.1.0) + ast-crispr (= 7.1.0) + markly-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism + specs: + ast-crispr-ruby-prism (7.1.0) + ast-crispr (= 7.1.0) + prism-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr + specs: + ast-crispr (7.1.0) + ast-merge (= 7.1.0) + service_actor (~> 3.9) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git + specs: + ast-merge-git (7.1.0) + ast-merge (= 7.1.0) + json-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge + specs: + ast-merge (7.1.0) + benchmark + token-resolver (~> 2.0, >= 2.0.4) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template + specs: + ast-template (7.1.0) + ast-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge + specs: + bash-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge + specs: + binary-merge (7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge + specs: + citrus-toml-merge (7.1.0) + toml-merge (= 7.1.0) + toml-rb (~> 4.1) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge + specs: + commonmarker-merge (7.1.0) + commonmarker (~> 2.2) + markdown-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge + specs: + dotenv-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge + specs: + go-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge + specs: + json-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem + specs: + kettle-jem (7.1.0) + addressable (>= 2.8, < 3) + ast-crispr-markdown-markly (= 7.1.0) + ast-crispr-ruby-prism (= 7.1.0) + ast-merge (= 7.1.0) + bash-merge (= 7.1.0) + citrus-toml-merge (= 7.1.0) + commonmarker-merge (= 7.1.0) + dotenv-merge (= 7.1.0) + json-merge (= 7.1.0) + kettle-dev (~> 2.3, >= 2.3.5) + kettle-rb (~> 0.1, >= 0.1.4) + kramdown-merge (= 7.1.0) + markdown-merge (= 7.1.0) + markly-merge (= 7.1.0) + prism-merge (= 7.1.0) + psych-merge (= 7.1.0) + rbs (>= 3.10) + rbs-merge (= 7.1.0) + ruby-merge (= 7.1.0) + token-resolver (~> 2.0, >= 2.0.4) + toml-merge (= 7.1.0) + toml-rb (~> 4.2) + tree_haver (= 7.1.0) + yaml-merge (= 7.1.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge + specs: + kramdown-merge (7.1.0) + kramdown (~> 2.5) + markdown-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge specs: markdown-merge (7.1.0) ast-merge (= 7.1.0) tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge + specs: + parslet-toml-merge (7.1.0) + toml (~> 0.3) + toml-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge + specs: + plain-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge + specs: + prism-merge (7.1.0) + prism (~> 1.6) + ruby-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge + specs: + psych-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + yaml-merge (= 7.1.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge + specs: + rbs-merge (7.1.0) + ast-merge (= 7.1.0) + rbs (>= 3.10) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge + specs: + ruby-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge + specs: + rust-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb + specs: + smorg-rb (7.1.0) + ast-merge (= 7.1.0) + ast-merge-git (= 7.1.0) + diff-lcs (~> 1.5) + go-merge (= 7.1.0) + json-merge (= 7.1.0) + kettle-jem (= 7.1.0) + markly-merge (= 7.1.0) + plain-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge + specs: + toml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver + specs: + tree_haver (7.1.0) + citrus (~> 3.0) + parslet (~> 2.0) + tree_sitter_language_pack (>= 1.13.2, < 2.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge + specs: + typescript-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge + specs: + yaml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge + specs: + zip-merge (7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + GEM remote: https://gem.coop/ specs: @@ -29,11 +281,6 @@ GEM rubocop (>= 1.0) version_gem (~> 1.1, >= 1.1.14) ast (2.4.3) - ast-merge (7.1.0) - benchmark - token-resolver (~> 2.0, >= 2.0.4) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) backports (3.25.3) benchmark (0.5.0) bigdecimal (4.1.2) @@ -43,6 +290,7 @@ GEM cgi (0.5.2) citrus (3.0.2) cmdparse (3.0.7) + commonmarker (2.9.0-x86_64-linux) concurrent-ruby (1.3.8) date (3.5.1) debug (1.11.1) @@ -105,6 +353,8 @@ GEM kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) + kettle-drift (1.0.6) + version_gem (~> 1.1, >= 1.1.14) kettle-rb (0.1.5) kettle-soup-cover (3.0.4) kettle-wash (~> 0.1, >= 0.1.0) @@ -288,6 +538,8 @@ GEM ruby-progressbar (1.13.0) ruby_engine (2.0.3) ruby_version (1.0.3) + service_actor (3.9.4) + zeitwerk (>= 1.0) silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) @@ -342,11 +594,11 @@ GEM token-resolver (2.0.5) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.14) - tree_haver (7.1.0) - citrus (~> 3.0) - parslet (~> 2.0) - tree_sitter_language_pack (>= 1.13.2, < 2.0) - version_gem (~> 1.1, >= 1.1.9) + toml (0.3.0) + parslet (>= 1.8.0, < 3.0.0) + toml-rb (4.2.0) + citrus (~> 3.0, > 3.0) + racc (~> 1.7) tree_sitter_language_pack (1.13.3-x86_64-linux) sorbet-runtime (~> 0.5) tsort (0.2.0) @@ -392,25 +644,46 @@ DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) appraisal2-rubocop (~> 1.0, >= 1.0.0) + ast-crispr! + ast-crispr-markdown-markly! + ast-crispr-ruby-prism! + ast-merge! + ast-merge-git! + ast-template! + bash-merge! benchmark (~> 0.5, >= 0.5.0) + binary-merge! bundler-audit (~> 0.9.3) cgi (~> 0.5) + citrus-toml-merge! + commonmarker-merge! debug (>= 1.1) + dotenv-merge! erb (~> 6.0, >= 6.0.6) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.0) + go-merge! irb (~> 1.17) + json-merge! kettle-dev (~> 2.0, >= 2.2.25) + kettle-drift (~> 1.0, >= 1.0.6) + kettle-jem! kettle-soup-cover (~> 3.0, >= 3.0.3) kettle-test (~> 2.0, >= 2.0.9) kramdown (~> 2.5, >= 2.5.2) + kramdown-merge! kramdown-parser-gfm (~> 1.1) markdown-merge! markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) + parslet-toml-merge! + plain-merge! + prism-merge! + psych-merge! rake (~> 13.0) rbs (>= 3.0) + rbs-merge! rdoc (~> 6.11) reek (~> 6.5, >= 6.5.0) require_bench (~> 1.0, >= 1.0.4) @@ -421,19 +694,27 @@ DEPENDENCIES rubocop-on-rbs (~> 2.0, >= 2.0.0) rubocop-packaging (~> 0.6, >= 0.6.0) rubocop-ruby3_2 (~> 3.0, >= 3.0.6) + ruby-merge! ruby-progressbar (~> 1.13) + rust-merge! + smorg-rb! standard (~> 1.56, >= 1.56.0) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) + toml-merge! + tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) + typescript-merge! webrick (~> 1.9) yaml-converter (~> 0.2, >= 0.2.3) + yaml-merge! yard (~> 0.9, >= 0.9.45) yard-fence (~> 0.9, >= 0.9.6) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) yard-timekeeper (~> 0.2, >= 0.2.4) yard-yaml (~> 0.2, >= 0.2.3) + zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af @@ -441,20 +722,31 @@ CHECKSUMS appraisal2 (3.2.0) sha256=ccd0b767ac4060cd7af6d16747459b6990f49c39c7b4fb1f7d1146b1e97c492f appraisal2-rubocop (1.0.0) sha256=b71410fbb014befda5340605a605b7f6f3f012739baf0acc5b4351b592c3258d ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 + ast-crispr (7.1.0) + ast-crispr-markdown-markly (7.1.0) + ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) + ast-merge-git (7.1.0) + ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 + bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd + binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 + citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 + commonmarker (2.9.0-x86_64-linux) sha256=8cfe92970eef585a19ddf6613224b91cab64d6029834661bda801f877c9c7f43 + commonmarker-merge (7.1.0) concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 + dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -467,16 +759,21 @@ CHECKSUMS gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f + go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 + json-merge (7.1.0) kettle-dev (2.3.9) + kettle-drift (1.0.6) sha256=46eda08fa4411d1f3c6682a95eef1c9df4e94611b3949f49d4c7b43c0ed356a3 + kettle-jem (7.1.0) kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f kettle-soup-cover (3.0.4) kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa + kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 @@ -493,15 +790,20 @@ CHECKSUMS parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 + parslet-toml-merge (7.1.0) + plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 + prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 + psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 + rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb @@ -536,15 +838,19 @@ CHECKSUMS rubocop-rspec_rails (2.32.0) sha256=4a0d641c72f6ebb957534f539d9d0a62c47abd8ce0d0aeee1ef4701e892a9100 rubocop-ruby3_2 (3.0.7) sha256=f53dd6d286fb05186214fc6ec116783e7f837030918e8931c05de773e98f8466 rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 + ruby-merge (7.1.0) ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 + rust-merge (7.1.0) + service_actor (3.9.4) sha256=e63b523630b9a7e62959b2a90113b08d2565b5de9c148557b281ef847c9539ce silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed + smorg-rb (7.1.0) sorbet-runtime (0.6.13351) sha256=f8fee17c6e3edf835dc6823d26afb9a7c8969c6710d1fabe2fb43f4e0c15c64f standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b @@ -559,15 +865,20 @@ CHECKSUMS timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.5) sha256=b852f924287ffb58a440856e862b056c8ad97e74b4b2526cee43e0771f40c25c + toml (0.3.0) sha256=0a91d0f76a9036e84e44f95693b12f58d358c1df3ac8e3b5271f2056ecc6e4b9 + toml-merge (7.1.0) + toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 + typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 webrick (1.9.2) sha256=beb4a15fc474defed24a3bda4ffd88a490d517c9e4e6118c3edce59e45864131 yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 + yaml-merge (7.1.0) yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd @@ -575,6 +886,7 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 + zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH From 032835e0f2b793cea395a26b4d88461b7643635c Mon Sep 17 00:00:00 2001 From: "Peter H. Boling" Date: Tue, 21 Jul 2026 18:02:20 -0600 Subject: [PATCH 154/188] =?UTF-8?q?=F0=9F=8E=A8=20Template=20bootstrap=20b?= =?UTF-8?q?y=20kettle-jem=20v7.1.0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gems/ast-crispr-markdown-markly/Gemfile.lock | 326 +++++++++++++++- gems/ast-merge-git/.kettle-drift.lock | 144 ++++++- gems/ast-merge-git/Gemfile | 72 +++- gems/ast-merge-git/Gemfile.lock | 16 +- gems/ast-merge-git/Rakefile | 18 +- .../gemfiles/modular/templating.gemfile | 12 +- .../gemfiles/modular/templating_local.gemfile | 44 +-- .../lib/ast/merge/git/version.rb | 2 +- gems/json-merge/.rubocop_gradual.lock | 2 +- gems/json-merge/.simplecov | 2 +- gems/json-merge/Gemfile | 70 ++-- gems/json-merge/Gemfile.lock | 8 +- gems/json-merge/Rakefile | 18 +- .../modular/benchmark/r4/v0.5.gemfile | 2 +- .../gemfiles/modular/benchmark/vHEAD.gemfile | 2 +- .../gemfiles/modular/cgi/r4/v0.5.gemfile | 2 +- .../gemfiles/modular/cgi/vHEAD.gemfile | 2 +- .../gemfiles/modular/coverage.gemfile | 6 +- .../gemfiles/modular/coverage_local.gemfile | 42 +-- .../json-merge/gemfiles/modular/debug.gemfile | 4 +- .../gemfiles/modular/documentation.gemfile | 24 +- .../modular/documentation_local.gemfile | 30 +- .../gemfiles/modular/erb/r2/v3.0.gemfile | 2 +- .../gemfiles/modular/erb/r3/v5.0.gemfile | 2 +- .../gemfiles/modular/erb/r4/v5.0.gemfile | 2 +- .../gemfiles/modular/erb/vHEAD.gemfile | 2 +- .../modular/json/truffleruby_22_3.gemfile | 4 +- .../modular/json/truffleruby_23_0.gemfile | 4 +- .../modular/json/truffleruby_23_1.gemfile | 4 +- .../gemfiles/modular/mutex_m/r2/v0.3.gemfile | 2 +- .../gemfiles/modular/mutex_m/r3/v0.3.gemfile | 2 +- .../gemfiles/modular/mutex_m/r4/v0.3.gemfile | 2 +- .../gemfiles/modular/mutex_m/vHEAD.gemfile | 2 +- .../gemfiles/modular/optional.gemfile | 4 +- .../json-merge/gemfiles/modular/rspec.gemfile | 8 +- .../gemfiles/modular/runtime_heads.gemfile | 2 +- .../gemfiles/modular/stringio/r2/v3.0.gemfile | 2 +- .../gemfiles/modular/stringio/r3/v3.0.gemfile | 2 +- .../gemfiles/modular/stringio/r4/v3.0.gemfile | 2 +- .../gemfiles/modular/stringio/vHEAD.gemfile | 2 +- .../json-merge/gemfiles/modular/style.gemfile | 24 +- .../gemfiles/modular/style_local.gemfile | 32 +- .../gemfiles/modular/templating.gemfile | 12 +- .../gemfiles/modular/templating_local.gemfile | 44 ++- .../gemfiles/modular/webrick/r4/v1.9.gemfile | 2 +- .../gemfiles/modular/webrick/vHEAD.gemfile | 2 +- .../gemfiles/modular/x_std_libs.gemfile | 14 +- .../modular/x_std_libs/r2/libs.gemfile | 6 +- .../modular/x_std_libs/r3/libs.gemfile | 6 +- .../modular/x_std_libs/r4/libs.gemfile | 12 +- .../gemfiles/modular/x_std_libs/vHEAD.gemfile | 12 +- gems/json-merge/lib/json/merge/version.rb | 2 +- gems/json-merge/spec/spec_helper.rb | 10 +- gems/plain-merge/.kettle-drift.lock | 144 ++++++- gems/plain-merge/Gemfile | 72 +++- gems/plain-merge/Gemfile.lock | 352 +++++++++++++++++- gems/plain-merge/Rakefile | 18 +- .../gemfiles/modular/templating.gemfile | 12 +- .../gemfiles/modular/templating_local.gemfile | 44 +-- gems/plain-merge/lib/plain/merge/version.rb | 2 +- 60 files changed, 1345 insertions(+), 375 deletions(-) diff --git a/gems/ast-crispr-markdown-markly/Gemfile.lock b/gems/ast-crispr-markdown-markly/Gemfile.lock index d29ef07a3..877b8188c 100644 --- a/gems/ast-crispr-markdown-markly/Gemfile.lock +++ b/gems/ast-crispr-markdown-markly/Gemfile.lock @@ -7,7 +7,15 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism + specs: + ast-crispr-ruby-prism (7.1.0) + ast-crispr (= 7.1.0) + prism-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr specs: ast-crispr (7.1.0) ast-merge (= 7.1.0) @@ -15,13 +23,249 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/markly-merge + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git + specs: + ast-merge-git (7.1.0) + ast-merge (= 7.1.0) + json-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge + specs: + ast-merge (7.1.0) + benchmark + token-resolver (~> 2.0, >= 2.0.4) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template + specs: + ast-template (7.1.0) + ast-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge + specs: + bash-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge + specs: + binary-merge (7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge + specs: + citrus-toml-merge (7.1.0) + toml-merge (= 7.1.0) + toml-rb (~> 4.1) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge + specs: + commonmarker-merge (7.1.0) + commonmarker (~> 2.2) + markdown-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge + specs: + dotenv-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge + specs: + go-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge + specs: + json-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem + specs: + kettle-jem (7.1.0) + addressable (>= 2.8, < 3) + ast-crispr-markdown-markly (= 7.1.0) + ast-crispr-ruby-prism (= 7.1.0) + ast-merge (= 7.1.0) + bash-merge (= 7.1.0) + citrus-toml-merge (= 7.1.0) + commonmarker-merge (= 7.1.0) + dotenv-merge (= 7.1.0) + json-merge (= 7.1.0) + kettle-dev (~> 2.3, >= 2.3.5) + kettle-rb (~> 0.1, >= 0.1.4) + kramdown-merge (= 7.1.0) + markdown-merge (= 7.1.0) + markly-merge (= 7.1.0) + prism-merge (= 7.1.0) + psych-merge (= 7.1.0) + rbs (>= 3.10) + rbs-merge (= 7.1.0) + ruby-merge (= 7.1.0) + token-resolver (~> 2.0, >= 2.0.4) + toml-merge (= 7.1.0) + toml-rb (~> 4.2) + tree_haver (= 7.1.0) + yaml-merge (= 7.1.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge + specs: + kramdown-merge (7.1.0) + kramdown (~> 2.5) + markdown-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge + specs: + markdown-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge specs: markly-merge (7.1.0) markdown-merge (= 7.1.0) markly (~> 0.9) version_gem (~> 1.1, >= 1.1.9) +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge + specs: + parslet-toml-merge (7.1.0) + toml (~> 0.3) + toml-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge + specs: + plain-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge + specs: + prism-merge (7.1.0) + prism (~> 1.6) + ruby-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge + specs: + psych-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + yaml-merge (= 7.1.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge + specs: + rbs-merge (7.1.0) + ast-merge (= 7.1.0) + rbs (>= 3.10) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge + specs: + ruby-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge + specs: + rust-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb + specs: + smorg-rb (7.1.0) + ast-merge (= 7.1.0) + ast-merge-git (= 7.1.0) + diff-lcs (~> 1.5) + go-merge (= 7.1.0) + json-merge (= 7.1.0) + kettle-jem (= 7.1.0) + markly-merge (= 7.1.0) + plain-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge + specs: + toml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver + specs: + tree_haver (7.1.0) + citrus (~> 3.0) + parslet (~> 2.0) + tree_sitter_language_pack (>= 1.13.2, < 2.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge + specs: + typescript-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge + specs: + yaml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge + specs: + zip-merge (7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + GEM remote: https://gem.coop/ specs: @@ -37,11 +281,6 @@ GEM rubocop (>= 1.0) version_gem (~> 1.1, >= 1.1.14) ast (2.4.3) - ast-merge (7.1.0) - benchmark - token-resolver (~> 2.0, >= 2.0.4) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) backports (3.25.3) benchmark (0.5.0) bigdecimal (4.1.2) @@ -51,6 +290,7 @@ GEM cgi (0.5.2) citrus (3.0.2) cmdparse (3.0.7) + commonmarker (2.9.0-x86_64-linux) concurrent-ruby (1.3.8) date (3.5.1) debug (1.11.1) @@ -113,6 +353,8 @@ GEM kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) + kettle-drift (1.0.6) + version_gem (~> 1.1, >= 1.1.14) kettle-rb (0.1.5) kettle-soup-cover (3.0.4) kettle-wash (~> 0.1, >= 0.1.0) @@ -141,10 +383,6 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) - markdown-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) markly (0.16.0) mutex_m (0.3.0) nokogiri (1.19.4-x86_64-linux-gnu) @@ -356,11 +594,11 @@ GEM token-resolver (2.0.5) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.14) - tree_haver (7.1.0) - citrus (~> 3.0) - parslet (~> 2.0) - tree_sitter_language_pack (>= 1.13.2, < 2.0) - version_gem (~> 1.1, >= 1.1.9) + toml (0.3.0) + parslet (>= 1.8.0, < 3.0.0) + toml-rb (4.2.0) + citrus (~> 3.0, > 3.0) + racc (~> 1.7) tree_sitter_language_pack (1.13.3-x86_64-linux) sorbet-runtime (~> 0.5) tsort (0.2.0) @@ -408,24 +646,44 @@ DEPENDENCIES appraisal2-rubocop (~> 1.0, >= 1.0.0) ast-crispr! ast-crispr-markdown-markly! + ast-crispr-ruby-prism! + ast-merge! + ast-merge-git! + ast-template! + bash-merge! benchmark (~> 0.5, >= 0.5.0) + binary-merge! bundler-audit (~> 0.9.3) cgi (~> 0.5) + citrus-toml-merge! + commonmarker-merge! debug (>= 1.1) + dotenv-merge! erb (~> 6.0, >= 6.0.6) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.0) + go-merge! irb (~> 1.17) + json-merge! kettle-dev (~> 2.0, >= 2.2.25) + kettle-drift (~> 1.0, >= 1.0.6) + kettle-jem! kettle-soup-cover (~> 3.0, >= 3.0.3) kettle-test (~> 2.0, >= 2.0.9) kramdown (~> 2.5, >= 2.5.2) + kramdown-merge! kramdown-parser-gfm (~> 1.1) + markdown-merge! markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) + parslet-toml-merge! + plain-merge! + prism-merge! + psych-merge! rake (~> 13.0) rbs (>= 3.0) + rbs-merge! rdoc (~> 6.11) reek (~> 6.5, >= 6.5.0) require_bench (~> 1.0, >= 1.0.4) @@ -436,19 +694,27 @@ DEPENDENCIES rubocop-on-rbs (~> 2.0, >= 2.0.0) rubocop-packaging (~> 0.6, >= 0.6.0) rubocop-ruby3_2 (~> 3.0, >= 3.0.6) + ruby-merge! ruby-progressbar (~> 1.13) + rust-merge! + smorg-rb! standard (~> 1.56, >= 1.56.0) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) + toml-merge! + tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) + typescript-merge! webrick (~> 1.9) yaml-converter (~> 0.2, >= 0.2.3) + yaml-merge! yard (~> 0.9, >= 0.9.45) yard-fence (~> 0.9, >= 0.9.6) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) yard-timekeeper (~> 0.2, >= 0.2.4) yard-yaml (~> 0.2, >= 0.2.3) + zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af @@ -458,20 +724,29 @@ CHECKSUMS ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 ast-crispr (7.1.0) ast-crispr-markdown-markly (7.1.0) + ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) + ast-merge-git (7.1.0) + ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 + bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd + binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 + citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 + commonmarker (2.9.0-x86_64-linux) sha256=8cfe92970eef585a19ddf6613224b91cab64d6029834661bda801f877c9c7f43 + commonmarker-merge (7.1.0) concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 + dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -484,16 +759,21 @@ CHECKSUMS gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f + go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 + json-merge (7.1.0) kettle-dev (2.3.9) + kettle-drift (1.0.6) sha256=46eda08fa4411d1f3c6682a95eef1c9df4e94611b3949f49d4c7b43c0ed356a3 + kettle-jem (7.1.0) kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f kettle-soup-cover (3.0.4) kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa + kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 @@ -510,15 +790,20 @@ CHECKSUMS parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 + parslet-toml-merge (7.1.0) + plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 + prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 + psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 + rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb @@ -553,9 +838,11 @@ CHECKSUMS rubocop-rspec_rails (2.32.0) sha256=4a0d641c72f6ebb957534f539d9d0a62c47abd8ce0d0aeee1ef4701e892a9100 rubocop-ruby3_2 (3.0.7) sha256=f53dd6d286fb05186214fc6ec116783e7f837030918e8931c05de773e98f8466 rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 + ruby-merge (7.1.0) ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 + rust-merge (7.1.0) service_actor (3.9.4) sha256=e63b523630b9a7e62959b2a90113b08d2565b5de9c148557b281ef847c9539ce silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 @@ -563,6 +850,7 @@ CHECKSUMS simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed + smorg-rb (7.1.0) sorbet-runtime (0.6.13351) sha256=f8fee17c6e3edf835dc6823d26afb9a7c8969c6710d1fabe2fb43f4e0c15c64f standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b @@ -577,15 +865,20 @@ CHECKSUMS timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.5) sha256=b852f924287ffb58a440856e862b056c8ad97e74b4b2526cee43e0771f40c25c + toml (0.3.0) sha256=0a91d0f76a9036e84e44f95693b12f58d358c1df3ac8e3b5271f2056ecc6e4b9 + toml-merge (7.1.0) + toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 + typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 webrick (1.9.2) sha256=beb4a15fc474defed24a3bda4ffd88a490d517c9e4e6118c3edce59e45864131 yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 + yaml-merge (7.1.0) yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd @@ -593,6 +886,7 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 + zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH diff --git a/gems/ast-merge-git/.kettle-drift.lock b/gems/ast-merge-git/.kettle-drift.lock index 43dfedd67..7cc6a5131 100644 --- a/gems/ast-merge-git/.kettle-drift.lock +++ b/gems/ast-merge-git/.kettle-drift.lock @@ -1,10 +1,74 @@ { + "(direct_sibling_local ||\nENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?)": [ + { + "file": "Gemfile", + "lines": [ + 80, + 120 + ] + } + ], + ".find { |spec| spec.name == 'nomono' }\nnomono_locked = nomono_locked_spec &&": [ + { + "file": "Gemfile", + "lines": [ + 91, + 131 + ] + } + ], + "ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?)\ndirect_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV')": [ + { + "file": "Gemfile", + "lines": [ + 81, + 121 + ] + } + ], + "Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version)\nnomono_activation_requirements = [\"= #{nomono_locked_spec.version}\"] if nomono_locked": [ + { + "file": "Gemfile", + "lines": [ + 93, + 133 + ] + } + ], + "Kernel.send(:gem, 'nomono', *nomono_activation_requirements)\nrequire 'nomono/bundler'": [ + { + "file": "Gemfile", + "lines": [ + 96, + 136 + ] + } + ], + "direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV')\ndirect_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil)": [ + { + "file": "Gemfile", + "lines": [ + 82, + 122 + ] + } + ], "eval_nomono_gems(\ngems: direct_sibling_gems,": [ { "file": "Gemfile", "lines": [ 60, - 100 + 100, + 140 + ] + } + ], + "gems: direct_sibling_gems,\nprefix: 'STRUCTUREDMERGE',": [ + { + "file": "Gemfile", + "lines": [ + 101, + 141 ] } ], @@ -13,7 +77,17 @@ "file": "Gemfile", "lines": [ 43, - 87 + 87, + 127 + ] + } + ], + "if direct_sibling_dev_was_set\nENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original": [ + { + "file": "Gemfile", + "lines": [ + 110, + 150 ] } ], @@ -22,7 +96,8 @@ "file": "Gemfile", "lines": [ 35, - 79 + 79, + 119 ] } ], @@ -31,7 +106,17 @@ "file": "Gemfile", "lines": [ 69, - 109 + 109, + 149 + ] + } + ], + "nomono_activation_requirements = nomono_requirements\nnomono_lockfile = File.expand_path('Gemfile.lock', __dir__)": [ + { + "file": "Gemfile", + "lines": [ + 85, + 125 ] } ], @@ -40,7 +125,8 @@ "file": "Gemfile", "lines": [ 48, - 92 + 92, + 132 ] } ], @@ -49,7 +135,53 @@ "file": "Gemfile", "lines": [ 44, - 88 + 88, + 128 + ] + } + ], + "nomono_lockfile = File.expand_path('Gemfile.lock', __dir__)\nif File.file?(nomono_lockfile)": [ + { + "file": "Gemfile", + "lines": [ + 86, + 126 + ] + } + ], + "path_env: 'STRUCTUREDMERGE_DEV',\nroot: %w[src my structuredmerge]": [ + { + "file": "Gemfile", + "lines": [ + 103, + 143 + ] + } + ], + "prefix: 'STRUCTUREDMERGE',\npath_env: 'STRUCTUREDMERGE_DEV',": [ + { + "file": "Gemfile", + "lines": [ + 102, + 142 + ] + } + ], + "require 'nomono/bundler'\nENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local": [ + { + "file": "Gemfile", + "lines": [ + 97, + 137 + ] + } + ], + "rescue LoadError\nwarn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.'": [ + { + "file": "Gemfile", + "lines": [ + 106, + 146 ] } ] diff --git a/gems/ast-merge-git/Gemfile b/gems/ast-merge-git/Gemfile index 17419a301..ba85cbc42 100644 --- a/gems/ast-merge-git/Gemfile +++ b/gems/ast-merge-git/Gemfile @@ -6,7 +6,7 @@ # kettle-jem will then preserve content between those markers across template runs. # kettle-jem:unfreeze -source 'https://gem.coop' +source "https://gem.coop" git_source(:codeberg) { |repo_name| "https://codeberg.org/#{repo_name}" } git_source(:gitlab) { |repo_name| "https://gitlab.com/#{repo_name}" } @@ -19,18 +19,62 @@ git_source(:gitlab) { |repo_name| "https://gitlab.com/#{repo_name}" } gemspec # Local workspace dependency wiring for *_local.gemfile overrides -nomono_requirements = ['~> 1.0', '>= 1.0.8'] -gem 'nomono', *nomono_requirements, require: false # ruby >= 2.2 +nomono_requirements = ["~> 1.0", ">= 1.0.8"] +gem "nomono", *nomono_requirements, require: false # ruby >= 2.2 # Direct sibling dependencies (env-switched via STRUCTUREDMERGE_DEV) direct_sibling_gems = %w[ ast-merge json-merge ] -direct_sibling_dev = ENV.fetch('STRUCTUREDMERGE_DEV', '') +direct_sibling_dev = ENV.fetch("STRUCTUREDMERGE_DEV", "") direct_sibling_local = !direct_sibling_dev.empty? && !%w[false 0 no off].include?(direct_sibling_dev.downcase) -direct_sibling_templating = ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? +direct_sibling_templating = ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? + +if direct_sibling_gems.any? && + (direct_sibling_local || + ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero?) + direct_sibling_dev_was_set = ENV.key?("STRUCTUREDMERGE_DEV") + direct_sibling_dev_original = ENV.fetch("STRUCTUREDMERGE_DEV", nil) + begin + nomono_activation_requirements = nomono_requirements + nomono_lockfile = File.expand_path("Gemfile.lock", __dir__) + if File.file?(nomono_lockfile) + nomono_locked_spec = Bundler::LockfileParser + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == "nomono" } + nomono_locked = nomono_locked_spec && + Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) + if nomono_locked + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] + end + end + Kernel.send(:gem, "nomono", *nomono_activation_requirements) + require "nomono/bundler" + if direct_sibling_templating && !direct_sibling_local + ENV["STRUCTUREDMERGE_DEV"] = File.expand_path("..", __dir__) + end + + eval_nomono_gems( + gems: direct_sibling_gems, + prefix: "STRUCTUREDMERGE", + path_env: "STRUCTUREDMERGE_DEV", + root: ["src", "my", "structuredmerge"] + ) + rescue LoadError + warn "Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies." + ensure + if direct_sibling_templating && !direct_sibling_local + if direct_sibling_dev_was_set + ENV["STRUCTUREDMERGE_DEV"] = direct_sibling_dev_original + else + ENV.delete("STRUCTUREDMERGE_DEV") + end + end + end +end if direct_sibling_gems.any? && (direct_sibling_local || @@ -113,28 +157,28 @@ if direct_sibling_gems.any? && end # Use released TSLP with the Ruby ABI platform-gem fix. -gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' +gem "tree_sitter_language_pack", "~> 1.13", ">= 1.13.3" # Templating (env-switched: STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local paths) -eval_gemfile 'gemfiles/modular/templating.gemfile' if ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? +eval_gemfile "gemfiles/modular/templating.gemfile" if ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? # Debugging -eval_gemfile 'gemfiles/modular/debug.gemfile' +eval_gemfile "gemfiles/modular/debug.gemfile" # Code Coverage (env-switched: KETTLE_DEV_DEV=true for local paths) -eval_gemfile 'gemfiles/modular/coverage.gemfile' +eval_gemfile "gemfiles/modular/coverage.gemfile" # Linting -eval_gemfile 'gemfiles/modular/style.gemfile' +eval_gemfile "gemfiles/modular/style.gemfile" # Documentation -eval_gemfile 'gemfiles/modular/documentation.gemfile' +eval_gemfile "gemfiles/modular/documentation.gemfile" # Optional -eval_gemfile 'gemfiles/modular/optional.gemfile' +eval_gemfile "gemfiles/modular/optional.gemfile" ### Std Lib Extracted Gems -eval_gemfile 'gemfiles/modular/x_std_libs.gemfile' +eval_gemfile "gemfiles/modular/x_std_libs.gemfile" # See unlocked_deps appraisal for more details on irb inclusion -gem 'irb', '~> 1.17' # ruby >= 2.7 +gem "irb", "~> 1.17" # ruby >= 2.7 diff --git a/gems/ast-merge-git/Gemfile.lock b/gems/ast-merge-git/Gemfile.lock index 94cd0bb04..d95176b1a 100644 --- a/gems/ast-merge-git/Gemfile.lock +++ b/gems/ast-merge-git/Gemfile.lock @@ -555,7 +555,7 @@ GEM simplecov (>= 0.4.1) simplecov_lcov_formatter (0.9.0) simplecov (>= 0.18) - sorbet-runtime (0.6.13347) + sorbet-runtime (0.6.13351) standard (1.56.0) language_server-protocol (~> 3.17.0.2) lint_roller (~> 1.0) @@ -738,7 +738,7 @@ CHECKSUMS citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 - commonmarker (2.9.0-x86_64-linux) sha256=8cfe92970eef585a19ddf6613224b91cab64d6029834661bda801f877c9c7f43 + commonmarker (2.9.0-x86_64-linux) commonmarker-merge (7.1.0) concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 @@ -766,7 +766,7 @@ CHECKSUMS json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 json-merge (7.1.0) kettle-dev (2.3.8) sha256=9d716ff21c660a730cb4e8d41e2e2f0630a28167a354b6e2924e242102aef72c - kettle-drift (1.0.6) sha256=46eda08fa4411d1f3c6682a95eef1c9df4e94611b3949f49d4c7b43c0ed356a3 + kettle-drift (1.0.6) kettle-jem (7.1.0) kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f kettle-soup-cover (3.0.4) @@ -779,7 +779,7 @@ CHECKSUMS lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 markdown-merge (7.1.0) - markly (0.16.0) sha256=6f70d79e385b1efc9e171f74c81628826259039fe6c778e03c3924c71dac5511 + markly (0.16.0) markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-x86_64-linux-gnu) sha256=379fae440b28915e3f19d752ce2dcf8465ed2b2fbefd2a7ca0dd497bc981a06a @@ -843,7 +843,7 @@ CHECKSUMS ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 rust-merge (7.1.0) - service_actor (3.9.4) sha256=e63b523630b9a7e62959b2a90113b08d2565b5de9c148557b281ef847c9539ce + service_actor (3.9.4) silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea @@ -851,7 +851,7 @@ CHECKSUMS simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed smorg-rb (7.1.0) - sorbet-runtime (0.6.13347) sha256=54e7221d9f4b63f58aec79f3043752a9ba7810347c6ae0d903531591cc2d5f01 + sorbet-runtime (0.6.13351) sha256=f8fee17c6e3edf835dc6823d26afb9a7c8969c6710d1fabe2fb43f4e0c15c64f standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b standard-performance (1.9.0) sha256=49483d31be448292951d80e5e67cdcb576c2502103c7b40aec6f1b6e9c88e3f2 @@ -865,9 +865,9 @@ CHECKSUMS timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.5) sha256=b852f924287ffb58a440856e862b056c8ad97e74b4b2526cee43e0771f40c25c - toml (0.3.0) sha256=0a91d0f76a9036e84e44f95693b12f58d358c1df3ac8e3b5271f2056ecc6e4b9 + toml (0.3.0) toml-merge (7.1.0) - toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 + toml-rb (4.2.0) tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f diff --git a/gems/ast-merge-git/Rakefile b/gems/ast-merge-git/Rakefile index d006f9ed7..0ffccc3a4 100644 --- a/gems/ast-merge-git/Rakefile +++ b/gems/ast-merge-git/Rakefile @@ -130,23 +130,23 @@ end ### DUPLICATE DRIFT TASKS begin - require 'kettle/drift' + require "kettle/drift" Kettle::Drift.install_tasks rescue LoadError - desc('(stub) kettle:drift:check is unavailable') - task('kettle:drift:check') do + desc("(stub) kettle:drift:check is unavailable") + task("kettle:drift:check") do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc('(stub) kettle:drift:update is unavailable') - task('kettle:drift:update') do + desc("(stub) kettle:drift:update is unavailable") + task("kettle:drift:update") do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc('(stub) kettle:drift:force_update is unavailable') - task('kettle:drift:force_update') do + desc("(stub) kettle:drift:force_update is unavailable") + task("kettle:drift:force_update") do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc('(stub) kettle:drift is unavailable') - task('kettle:drift' => 'kettle:drift:update') + desc("(stub) kettle:drift is unavailable") + task("kettle:drift" => "kettle:drift:update") end ### TEMPLATING TASKS diff --git a/gems/ast-merge-git/gemfiles/modular/templating.gemfile b/gems/ast-merge-git/gemfiles/modular/templating.gemfile index a672de184..47138ffbb 100644 --- a/gems/ast-merge-git/gemfiles/modular/templating.gemfile +++ b/gems/ast-merge-git/gemfiles/modular/templating.gemfile @@ -1,18 +1,18 @@ # frozen_string_literal: true -structuredmerge_remote = ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false').zero? -kettle_remote = ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? +structuredmerge_remote = ENV.fetch("STRUCTUREDMERGE_DEV", "false").casecmp("false").zero? +kettle_remote = ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false").zero? if structuredmerge_remote # Parser dependencies for released installs. - gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' + gem "tree_sitter_language_pack", "~> 1.13", ">= 1.13.3" # Merge recipes for released installs. - gem 'kettle-jem', '>= 7.0' + gem "kettle-jem", ">= 7.0" end if kettle_remote # Template/plugin checks for released installs. - gem 'kettle-drift', '~> 1.0', '>= 1.0.6', require: false + gem "kettle-drift", "~> 1.0", ">= 1.0.6", require: false end # Set STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local development with path-based dependencies. @@ -21,4 +21,4 @@ end # # Set KETTLE_DEV_DEV=/path/to/my for local development with Kettle plugin gems. # When false (default / CI), released Kettle plugin gems are used. -eval_gemfile 'templating_local.gemfile' unless structuredmerge_remote && kettle_remote +eval_gemfile "templating_local.gemfile" unless structuredmerge_remote && kettle_remote diff --git a/gems/ast-merge-git/gemfiles/modular/templating_local.gemfile b/gems/ast-merge-git/gemfiles/modular/templating_local.gemfile index 81c35f81e..0378a0c5e 100644 --- a/gems/ast-merge-git/gemfiles/modular/templating_local.gemfile +++ b/gems/ast-merge-git/gemfiles/modular/templating_local.gemfile @@ -12,19 +12,21 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] -nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) +nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] +nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == "nomono" } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + if nomono_locked + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] + end end -Kernel.send(:gem, 'nomono', *nomono_activation_requirements) -require 'nomono/bundler' +Kernel.send(:gem, "nomono", *nomono_activation_requirements) +require "nomono/bundler" structuredmerge_local_gems = %w[ tree_haver @@ -67,25 +69,25 @@ structuredmerge_local_gems_to_eval = structuredmerge_local_gems - %w[ast-merge-g kettle_dev_local_gems_to_eval = kettle_dev_local_gems - %w[ast-merge-git] - declared_gems platform :mri do - if ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false') != 0 + if ENV.fetch("STRUCTUREDMERGE_DEV", "false").casecmp("false") != 0 eval_nomono_gems( gems: structuredmerge_local_gems_to_eval, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - vendored_gems_env: 'VENDORED_GEMS', - vendor_gem_dir_env: 'VENDOR_GEM_DIR', - debug_env: 'STRUCTUREDMERGE_DEBUG' + prefix: "STRUCTUREDMERGE", + path_env: "STRUCTUREDMERGE_DEV", + vendored_gems_env: "VENDORED_GEMS", + vendor_gem_dir_env: "VENDOR_GEM_DIR", + debug_env: "STRUCTUREDMERGE_DEBUG" ) end - if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false') != 0 + if ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false") != 0 eval_nomono_gems( gems: kettle_dev_local_gems_to_eval, - prefix: 'KETTLE_DEV', - path_env: 'KETTLE_DEV_DEV', - vendored_gems_env: 'VENDORED_GEMS', - vendor_gem_dir_env: 'VENDOR_GEM_DIR', - debug_env: 'KETTLE_DEV_DEBUG' + prefix: "KETTLE_DEV", + path_env: "KETTLE_DEV_DEV", + vendored_gems_env: "VENDORED_GEMS", + vendor_gem_dir_env: "VENDOR_GEM_DIR", + debug_env: "KETTLE_DEV_DEBUG" ) end end diff --git a/gems/ast-merge-git/lib/ast/merge/git/version.rb b/gems/ast-merge-git/lib/ast/merge/git/version.rb index ebc548487..9e917693b 100644 --- a/gems/ast-merge-git/lib/ast/merge/git/version.rb +++ b/gems/ast-merge-git/lib/ast/merge/git/version.rb @@ -4,7 +4,7 @@ module Ast module Merge module Git module Version - VERSION = '7.1.0' + VERSION = "7.1.0" end VERSION = Version::VERSION # Traditional Constant Location end diff --git a/gems/json-merge/.rubocop_gradual.lock b/gems/json-merge/.rubocop_gradual.lock index 711123deb..f4a704b07 100644 --- a/gems/json-merge/.rubocop_gradual.lock +++ b/gems/json-merge/.rubocop_gradual.lock @@ -1,5 +1,5 @@ { - ".simplecov:3644224046": [ + ".simplecov:2561927861": [ [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] ], "Rakefile:2931360525": [ diff --git a/gems/json-merge/.simplecov b/gems/json-merge/.simplecov index eefe28272..65351a88c 100644 --- a/gems/json-merge/.simplecov +++ b/gems/json-merge/.simplecov @@ -10,5 +10,5 @@ # If the values for minimum coverage need to change, they should be changed both there, # and in 2 places in .github/workflows/coverage.yml. SimpleCov.configure do - cover "lib/**/*.rb", "lib/**/*.rake", "exe/*.rb" + cover 'lib/**/*.rb', 'lib/**/*.rake', 'exe/*.rb' end diff --git a/gems/json-merge/Gemfile b/gems/json-merge/Gemfile index 59331f423..e754d1f87 100644 --- a/gems/json-merge/Gemfile +++ b/gems/json-merge/Gemfile @@ -6,7 +6,7 @@ # kettle-jem will then preserve content between those markers across template runs. # kettle-jem:unfreeze -source "https://gem.coop" +source 'https://gem.coop' git_source(:codeberg) { |repo_name| "https://codeberg.org/#{repo_name}" } git_source(:gitlab) { |repo_name| "https://gitlab.com/#{repo_name}" } @@ -19,58 +19,54 @@ git_source(:gitlab) { |repo_name| "https://gitlab.com/#{repo_name}" } gemspec # Local workspace dependency wiring for *_local.gemfile overrides -nomono_requirements = ["~> 1.0", ">= 1.0.8"] -gem "nomono", *nomono_requirements, require: false # ruby >= 2.2 +nomono_requirements = ['~> 1.0', '>= 1.0.8'] +gem 'nomono', *nomono_requirements, require: false # ruby >= 2.2 # Direct sibling dependencies (env-switched via STRUCTUREDMERGE_DEV) direct_sibling_gems = %w[ ast-merge tree_haver ] -direct_sibling_dev = ENV.fetch("STRUCTUREDMERGE_DEV", "") +direct_sibling_dev = ENV.fetch('STRUCTUREDMERGE_DEV', '') direct_sibling_local = !direct_sibling_dev.empty? && !%w[false 0 no off].include?(direct_sibling_dev.downcase) -direct_sibling_templating = ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? +direct_sibling_templating = ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero?) - direct_sibling_dev_was_set = ENV.key?("STRUCTUREDMERGE_DEV") - direct_sibling_dev_original = ENV.fetch("STRUCTUREDMERGE_DEV", nil) + (direct_sibling_local || + ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) + direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') + direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) begin nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path("Gemfile.lock", __dir__) + nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == "nomono" } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - if nomono_locked - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] - end - end - Kernel.send(:gem, "nomono", *nomono_activation_requirements) - require "nomono/bundler" - if direct_sibling_templating && !direct_sibling_local - ENV["STRUCTUREDMERGE_DEV"] = File.expand_path("..", __dir__) + Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked end + Kernel.send(:gem, 'nomono', *nomono_activation_requirements) + require 'nomono/bundler' + ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local eval_nomono_gems( gems: direct_sibling_gems, - prefix: "STRUCTUREDMERGE", - path_env: "STRUCTUREDMERGE_DEV", - root: ["src", "my", "structuredmerge"] + prefix: 'STRUCTUREDMERGE', + path_env: 'STRUCTUREDMERGE_DEV', + root: %w[src my structuredmerge] ) rescue LoadError - warn "Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies." + warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' ensure if direct_sibling_templating && !direct_sibling_local if direct_sibling_dev_was_set - ENV["STRUCTUREDMERGE_DEV"] = direct_sibling_dev_original + ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original else - ENV.delete("STRUCTUREDMERGE_DEV") + ENV.delete('STRUCTUREDMERGE_DEV') end end end @@ -157,28 +153,28 @@ if direct_sibling_gems.any? && end # Use released TSLP with the Ruby ABI platform-gem fix. -gem "tree_sitter_language_pack", "~> 1.13", ">= 1.13.3" +gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' # Templating (env-switched: STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local paths) -eval_gemfile "gemfiles/modular/templating.gemfile" if ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? +eval_gemfile 'gemfiles/modular/templating.gemfile' if ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? # Debugging -eval_gemfile "gemfiles/modular/debug.gemfile" +eval_gemfile 'gemfiles/modular/debug.gemfile' # Code Coverage (env-switched: KETTLE_DEV_DEV=true for local paths) -eval_gemfile "gemfiles/modular/coverage.gemfile" +eval_gemfile 'gemfiles/modular/coverage.gemfile' # Linting -eval_gemfile "gemfiles/modular/style.gemfile" +eval_gemfile 'gemfiles/modular/style.gemfile' # Documentation -eval_gemfile "gemfiles/modular/documentation.gemfile" +eval_gemfile 'gemfiles/modular/documentation.gemfile' # Optional -eval_gemfile "gemfiles/modular/optional.gemfile" +eval_gemfile 'gemfiles/modular/optional.gemfile' ### Std Lib Extracted Gems -eval_gemfile "gemfiles/modular/x_std_libs.gemfile" +eval_gemfile 'gemfiles/modular/x_std_libs.gemfile' # See unlocked_deps appraisal for more details on irb inclusion -gem "irb", "~> 1.17" # ruby >= 2.7 +gem 'irb', '~> 1.17' # ruby >= 2.7 diff --git a/gems/json-merge/Gemfile.lock b/gems/json-merge/Gemfile.lock index 1ca1f8600..c3b631efa 100644 --- a/gems/json-merge/Gemfile.lock +++ b/gems/json-merge/Gemfile.lock @@ -7,7 +7,7 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/ast-merge specs: ast-merge (7.1.0) benchmark @@ -16,7 +16,7 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/tree_haver specs: tree_haver (7.1.0) citrus (~> 3.0) @@ -105,7 +105,7 @@ GEM rdoc (>= 4.0.0) reline (>= 0.4.2) json (2.21.1) - kettle-dev (2.3.8) + kettle-dev (2.3.9) emoji_regex (>= 15.0) kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) @@ -493,7 +493,7 @@ CHECKSUMS irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 json-merge (7.1.0) - kettle-dev (2.3.8) sha256=9d716ff21c660a730cb4e8d41e2e2f0630a28167a354b6e2924e242102aef72c + kettle-dev (2.3.9) kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f kettle-soup-cover (3.0.4) kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 diff --git a/gems/json-merge/Rakefile b/gems/json-merge/Rakefile index eb14b860c..cd3637459 100644 --- a/gems/json-merge/Rakefile +++ b/gems/json-merge/Rakefile @@ -130,23 +130,23 @@ end ### DUPLICATE DRIFT TASKS begin - require "kettle/drift" + require 'kettle/drift' Kettle::Drift.install_tasks rescue LoadError - desc("(stub) kettle:drift:check is unavailable") - task("kettle:drift:check") do + desc('(stub) kettle:drift:check is unavailable') + task('kettle:drift:check') do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc("(stub) kettle:drift:update is unavailable") - task("kettle:drift:update") do + desc('(stub) kettle:drift:update is unavailable') + task('kettle:drift:update') do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc("(stub) kettle:drift:force_update is unavailable") - task("kettle:drift:force_update") do + desc('(stub) kettle:drift:force_update is unavailable') + task('kettle:drift:force_update') do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc("(stub) kettle:drift is unavailable") - task("kettle:drift" => "kettle:drift:update") + desc('(stub) kettle:drift is unavailable') + task('kettle:drift' => 'kettle:drift:update') end ### TEMPLATING TASKS diff --git a/gems/json-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile b/gems/json-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile index dec650815..b8392fab0 100644 --- a/gems/json-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile +++ b/gems/json-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.1 -gem "benchmark", "~> 0.5", ">= 0.5.0" # Removed from Std Lib in Ruby 4.0 +gem 'benchmark', '~> 0.5', '>= 0.5.0' # Removed from Std Lib in Ruby 4.0 diff --git a/gems/json-merge/gemfiles/modular/benchmark/vHEAD.gemfile b/gems/json-merge/gemfiles/modular/benchmark/vHEAD.gemfile index e1eb20c5e..af214aafa 100644 --- a/gems/json-merge/gemfiles/modular/benchmark/vHEAD.gemfile +++ b/gems/json-merge/gemfiles/modular/benchmark/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.1 -gem "benchmark", github: "ruby/benchmark", branch: "master" +gem 'benchmark', github: 'ruby/benchmark', branch: 'master' diff --git a/gems/json-merge/gemfiles/modular/cgi/r4/v0.5.gemfile b/gems/json-merge/gemfiles/modular/cgi/r4/v0.5.gemfile index 19ed967c3..17ad97260 100644 --- a/gems/json-merge/gemfiles/modular/cgi/r4/v0.5.gemfile +++ b/gems/json-merge/gemfiles/modular/cgi/r4/v0.5.gemfile @@ -1 +1 @@ -gem "cgi", "~> 0.5" +gem 'cgi', '~> 0.5' diff --git a/gems/json-merge/gemfiles/modular/cgi/vHEAD.gemfile b/gems/json-merge/gemfiles/modular/cgi/vHEAD.gemfile index ef8b816ce..650fbf033 100644 --- a/gems/json-merge/gemfiles/modular/cgi/vHEAD.gemfile +++ b/gems/json-merge/gemfiles/modular/cgi/vHEAD.gemfile @@ -1 +1 @@ -gem "cgi", ">= 0.5" +gem 'cgi', '>= 0.5' diff --git a/gems/json-merge/gemfiles/modular/coverage.gemfile b/gems/json-merge/gemfiles/modular/coverage.gemfile index 52d737872..b93014b6b 100644 --- a/gems/json-merge/gemfiles/modular/coverage.gemfile +++ b/gems/json-merge/gemfiles/modular/coverage.gemfile @@ -4,11 +4,11 @@ # Set KETTLE_DEV_DEV=true for local development with path-based dependencies. # When false (default / CI), remote released gems are used. -if ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false").zero? +if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? # Coverage (remote/released) platform :mri do - gem "kettle-soup-cover", "~> 3.0", ">= 3.0.3", require: false + gem 'kettle-soup-cover', '~> 3.0', '>= 3.0.3', require: false end else - eval_gemfile "coverage_local.gemfile" + eval_gemfile 'coverage_local.gemfile' end diff --git a/gems/json-merge/gemfiles/modular/coverage_local.gemfile b/gems/json-merge/gemfiles/modular/coverage_local.gemfile index cacdc07c1..b6836b5de 100644 --- a/gems/json-merge/gemfiles/modular/coverage_local.gemfile +++ b/gems/json-merge/gemfiles/modular/coverage_local.gemfile @@ -11,21 +11,19 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] -nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) +nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] +nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == "nomono" } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - if nomono_locked - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] - end + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked end -Kernel.send(:gem, "nomono", *nomono_activation_requirements) -require "nomono/bundler" +Kernel.send(:gem, 'nomono', *nomono_activation_requirements) +require 'nomono/bundler' local_gems = %w[kettle-dev kettle-test kettle-soup-cover kettle-drift] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) @@ -35,21 +33,21 @@ local_gems_to_eval = local_gems - %w[json-merge] - declared_gems platform :mri do eval_nomono_gems( gems: local_gems_to_eval, - prefix: "KETTLE_DEV", - path_env: "KETTLE_DEV_DEV", - vendored_gems_env: "VENDORED_GEMS", - vendor_gem_dir_env: "VENDOR_GEM_DIR", - debug_env: "KETTLE_DEV_DEBUG" + prefix: 'KETTLE_DEV', + path_env: 'KETTLE_DEV_DEV', + vendored_gems_env: 'VENDORED_GEMS', + vendor_gem_dir_env: 'VENDOR_GEM_DIR', + debug_env: 'KETTLE_DEV_DEBUG' ) - if ENV.fetch("GALTZO_FLOSS_DEV", "false").casecmp("false") != 0 + if ENV.fetch('GALTZO_FLOSS_DEV', 'false').casecmp('false') != 0 eval_nomono_gems( gems: %w[turbo_tests2], - prefix: "GALTZO_FLOSS", - path_env: "GALTZO_FLOSS_DEV", - vendored_gems_env: "GALTZO_FLOSS_VENDORED_GEMS", - vendor_gem_dir_env: "GALTZO_FLOSS_VENDOR_GEM_DIR", - debug_env: "GALTZO_FLOSS_DEBUG" + prefix: 'GALTZO_FLOSS', + path_env: 'GALTZO_FLOSS_DEV', + vendored_gems_env: 'GALTZO_FLOSS_VENDORED_GEMS', + vendor_gem_dir_env: 'GALTZO_FLOSS_VENDOR_GEM_DIR', + debug_env: 'GALTZO_FLOSS_DEBUG' ) end end diff --git a/gems/json-merge/gemfiles/modular/debug.gemfile b/gems/json-merge/gemfiles/modular/debug.gemfile index 4e15b1a3a..eed8d4d1e 100644 --- a/gems/json-merge/gemfiles/modular/debug.gemfile +++ b/gems/json-merge/gemfiles/modular/debug.gemfile @@ -13,10 +13,10 @@ platform :mri do # Debugging - Ensure ENV["DEBUG"] == "true" to use debuggers within spec suite # Use binding.break, binding.b, or debugger in code - gem "debug", ">= 1.1" # ruby >= 2.7 + gem 'debug', '>= 1.1' # ruby >= 2.7 # Dev Console - Binding.pry - Irb replacement # gem "pry", "~> 0.14" # ruby >= 2.0 end -gem "gem_bench", "~> 2.0", ">= 2.0.5" +gem 'gem_bench', '~> 2.0', '>= 2.0.5' diff --git a/gems/json-merge/gemfiles/modular/documentation.gemfile b/gems/json-merge/gemfiles/modular/documentation.gemfile index d8215416e..9d4535f12 100644 --- a/gems/json-merge/gemfiles/modular/documentation.gemfile +++ b/gems/json-merge/gemfiles/modular/documentation.gemfile @@ -7,20 +7,20 @@ # # Documentation -gem "kramdown", "~> 2.5", ">= 2.5.2", require: false # Ruby >= 2.5 -gem "kramdown-parser-gfm", "~> 1.1", require: false # Ruby >= 2.3 -gem "yaml-converter", "~> 0.2", ">= 0.2.3", require: false # Ruby >= 3.2 -gem "yard", "~> 0.9", ">= 0.9.45", require: false -gem "yard-junk", "~> 0.1", ">= 0.1.0", require: false # Ruby >= 3.1 -gem "yard-relative_markdown_links", "~> 0.6", require: false +gem 'kramdown', '~> 2.5', '>= 2.5.2', require: false # Ruby >= 2.5 +gem 'kramdown-parser-gfm', '~> 1.1', require: false # Ruby >= 2.3 +gem 'yaml-converter', '~> 0.2', '>= 0.2.3', require: false # Ruby >= 3.2 +gem 'yard', '~> 0.9', '>= 0.9.45', require: false +gem 'yard-junk', '~> 0.1', '>= 0.1.0', require: false # Ruby >= 3.1 +gem 'yard-relative_markdown_links', '~> 0.6', require: false -if ENV.fetch("GALTZO_FLOSS_DEV", "false").casecmp("false").zero? - gem "yard-fence", "~> 0.9", ">= 0.9.6", require: false # Ruby >= 3.2 - gem "yard-timekeeper", "~> 0.2", ">= 0.2.4", require: false - gem "yard-yaml", "~> 0.2", ">= 0.2.3", require: false +if ENV.fetch('GALTZO_FLOSS_DEV', 'false').casecmp('false').zero? + gem 'yard-fence', '~> 0.9', '>= 0.9.6', require: false # Ruby >= 3.2 + gem 'yard-timekeeper', '~> 0.2', '>= 0.2.4', require: false + gem 'yard-yaml', '~> 0.2', '>= 0.2.3', require: false else - eval_gemfile "documentation_local.gemfile" + eval_gemfile 'documentation_local.gemfile' end # Std Lib extractions -gem "rdoc", "~> 6.11", require: false unless ENV.fetch("KJ_FRAMEWORK_MATRIX_GEM", "") == "rdoc" +gem 'rdoc', '~> 6.11', require: false unless ENV.fetch('KJ_FRAMEWORK_MATRIX_GEM', '') == 'rdoc' diff --git a/gems/json-merge/gemfiles/modular/documentation_local.gemfile b/gems/json-merge/gemfiles/modular/documentation_local.gemfile index 65eff94d9..35970ca76 100644 --- a/gems/json-merge/gemfiles/modular/documentation_local.gemfile +++ b/gems/json-merge/gemfiles/modular/documentation_local.gemfile @@ -11,21 +11,19 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] -nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) +nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] +nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == "nomono" } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - if nomono_locked - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] - end + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked end -Kernel.send(:gem, "nomono", *nomono_activation_requirements) -require "nomono/bundler" +Kernel.send(:gem, 'nomono', *nomono_activation_requirements) +require 'nomono/bundler' local_gems = %w[yard-fence yard-timekeeper yard-yaml] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) @@ -34,9 +32,9 @@ local_gems_to_eval = local_gems - %w[json-merge] - declared_gems # export GALTZO_FLOSS_DEV=/path/to/galtzo-floss eval_nomono_gems( gems: local_gems_to_eval, - prefix: "GALTZO_FLOSS", - path_env: "GALTZO_FLOSS_DEV", - vendored_gems_env: "GALTZO_FLOSS_VENDORED_GEMS", - vendor_gem_dir_env: "GALTZO_FLOSS_VENDOR_GEM_DIR", - debug_env: "GALTZO_FLOSS_DEBUG" + prefix: 'GALTZO_FLOSS', + path_env: 'GALTZO_FLOSS_DEV', + vendored_gems_env: 'GALTZO_FLOSS_VENDORED_GEMS', + vendor_gem_dir_env: 'GALTZO_FLOSS_VENDOR_GEM_DIR', + debug_env: 'GALTZO_FLOSS_DEBUG' ) diff --git a/gems/json-merge/gemfiles/modular/erb/r2/v3.0.gemfile b/gems/json-merge/gemfiles/modular/erb/r2/v3.0.gemfile index c03bd8d85..7c83a239b 100644 --- a/gems/json-merge/gemfiles/modular/erb/r2/v3.0.gemfile +++ b/gems/json-merge/gemfiles/modular/erb/r2/v3.0.gemfile @@ -1 +1 @@ -gem "erb", "~> 3.0" # ruby >= 2.7.0 +gem 'erb', '~> 3.0' # ruby >= 2.7.0 diff --git a/gems/json-merge/gemfiles/modular/erb/r3/v5.0.gemfile b/gems/json-merge/gemfiles/modular/erb/r3/v5.0.gemfile index 1bd029cc1..ec7ff451f 100644 --- a/gems/json-merge/gemfiles/modular/erb/r3/v5.0.gemfile +++ b/gems/json-merge/gemfiles/modular/erb/r3/v5.0.gemfile @@ -1 +1 @@ -gem "erb", "~> 6.0", ">= 6.0.6" # ruby >= 3.2.0 +gem 'erb', '~> 6.0', '>= 6.0.6' # ruby >= 3.2.0 diff --git a/gems/json-merge/gemfiles/modular/erb/r4/v5.0.gemfile b/gems/json-merge/gemfiles/modular/erb/r4/v5.0.gemfile index 1bd029cc1..ec7ff451f 100644 --- a/gems/json-merge/gemfiles/modular/erb/r4/v5.0.gemfile +++ b/gems/json-merge/gemfiles/modular/erb/r4/v5.0.gemfile @@ -1 +1 @@ -gem "erb", "~> 6.0", ">= 6.0.6" # ruby >= 3.2.0 +gem 'erb', '~> 6.0', '>= 6.0.6' # ruby >= 3.2.0 diff --git a/gems/json-merge/gemfiles/modular/erb/vHEAD.gemfile b/gems/json-merge/gemfiles/modular/erb/vHEAD.gemfile index 48fee4218..ea0101185 100644 --- a/gems/json-merge/gemfiles/modular/erb/vHEAD.gemfile +++ b/gems/json-merge/gemfiles/modular/erb/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 3.2 -gem "erb", github: "ruby/erb", branch: "master" +gem 'erb', github: 'ruby/erb', branch: 'master' diff --git a/gems/json-merge/gemfiles/modular/json/truffleruby_22_3.gemfile b/gems/json-merge/gemfiles/modular/json/truffleruby_22_3.gemfile index b0e69ab11..9b2f8d96a 100644 --- a/gems/json-merge/gemfiles/modular/json/truffleruby_22_3.gemfile +++ b/gems/json-merge/gemfiles/modular/json/truffleruby_22_3.gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -if RUBY_ENGINE == "truffleruby" && RUBY_ENGINE_VERSION.start_with?("22.3") +if RUBY_ENGINE == 'truffleruby' && RUBY_ENGINE_VERSION.start_with?('22.3') # TruffleRuby 22.3 ships the json default gem from its emulated MRI Ruby. - gem "json", "= 2.5.1" + gem 'json', '= 2.5.1' end diff --git a/gems/json-merge/gemfiles/modular/json/truffleruby_23_0.gemfile b/gems/json-merge/gemfiles/modular/json/truffleruby_23_0.gemfile index 7b2660a2b..d787a5ef4 100644 --- a/gems/json-merge/gemfiles/modular/json/truffleruby_23_0.gemfile +++ b/gems/json-merge/gemfiles/modular/json/truffleruby_23_0.gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -if RUBY_ENGINE == "truffleruby" && RUBY_ENGINE_VERSION.start_with?("23.0") +if RUBY_ENGINE == 'truffleruby' && RUBY_ENGINE_VERSION.start_with?('23.0') # TruffleRuby 23.0 ships the json default gem from its emulated MRI Ruby. - gem "json", "= 2.6.1" + gem 'json', '= 2.6.1' end diff --git a/gems/json-merge/gemfiles/modular/json/truffleruby_23_1.gemfile b/gems/json-merge/gemfiles/modular/json/truffleruby_23_1.gemfile index dfa21f2e4..d78486b0e 100644 --- a/gems/json-merge/gemfiles/modular/json/truffleruby_23_1.gemfile +++ b/gems/json-merge/gemfiles/modular/json/truffleruby_23_1.gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -if RUBY_ENGINE == "truffleruby" && RUBY_ENGINE_VERSION.start_with?("23.1") +if RUBY_ENGINE == 'truffleruby' && RUBY_ENGINE_VERSION.start_with?('23.1') # TruffleRuby 23.1 ships the json default gem from its emulated MRI Ruby. - gem "json", "= 2.6.3" + gem 'json', '= 2.6.3' end diff --git a/gems/json-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile b/gems/json-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile index 42e9d9bd4..e27f1bbae 100644 --- a/gems/json-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile +++ b/gems/json-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 -gem "mutex_m", "~> 0.2" +gem 'mutex_m', '~> 0.2' diff --git a/gems/json-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile b/gems/json-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile index 42e9d9bd4..e27f1bbae 100644 --- a/gems/json-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile +++ b/gems/json-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 -gem "mutex_m", "~> 0.2" +gem 'mutex_m', '~> 0.2' diff --git a/gems/json-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile b/gems/json-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile index 42e9d9bd4..e27f1bbae 100644 --- a/gems/json-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile +++ b/gems/json-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 -gem "mutex_m", "~> 0.2" +gem 'mutex_m', '~> 0.2' diff --git a/gems/json-merge/gemfiles/modular/mutex_m/vHEAD.gemfile b/gems/json-merge/gemfiles/modular/mutex_m/vHEAD.gemfile index 8af3b6fca..9dac2f6cb 100644 --- a/gems/json-merge/gemfiles/modular/mutex_m/vHEAD.gemfile +++ b/gems/json-merge/gemfiles/modular/mutex_m/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 (dependency of omniauth) -gem "mutex_m", github: "ruby/mutex_m", branch: "master" +gem 'mutex_m', github: 'ruby/mutex_m', branch: 'master' diff --git a/gems/json-merge/gemfiles/modular/optional.gemfile b/gems/json-merge/gemfiles/modular/optional.gemfile index 80bc45196..9ea429538 100644 --- a/gems/json-merge/gemfiles/modular/optional.gemfile +++ b/gems/json-merge/gemfiles/modular/optional.gemfile @@ -9,8 +9,8 @@ # Optional dependencies are not depended on directly, but may be used if present. # Required for curated binstubs generated by kettle-jem install -gem "rbs", ">= 3.0", require: false # ruby >= 3.1 +gem 'rbs', '>= 3.0', require: false # ruby >= 3.1 # Required for kettle-pre-release # URL parsing with Unicode support (falls back to URI if not available) -gem "addressable", ">= 2.8", "< 3" # ruby >= 2.2 +gem 'addressable', '>= 2.8', '< 3' # ruby >= 2.2 diff --git a/gems/json-merge/gemfiles/modular/rspec.gemfile b/gems/json-merge/gemfiles/modular/rspec.gemfile index 72fdf8b7f..2af210a41 100644 --- a/gems/json-merge/gemfiles/modular/rspec.gemfile +++ b/gems/json-merge/gemfiles/modular/rspec.gemfile @@ -1,4 +1,4 @@ -gem "rspec_junit_formatter", - github: "pboling/rspec_junit_formatter", - branch: "main", - ref: "9e6bcaaedd49477b62878ed568dc4ada5cc7cb5e" +gem 'rspec_junit_formatter', + github: 'pboling/rspec_junit_formatter', + branch: 'main', + ref: '9e6bcaaedd49477b62878ed568dc4ada5cc7cb5e' diff --git a/gems/json-merge/gemfiles/modular/runtime_heads.gemfile b/gems/json-merge/gemfiles/modular/runtime_heads.gemfile index 02f134c7f..ebf17c529 100644 --- a/gems/json-merge/gemfiles/modular/runtime_heads.gemfile +++ b/gems/json-merge/gemfiles/modular/runtime_heads.gemfile @@ -8,4 +8,4 @@ # Test against HEAD of runtime dependencies so we can proactively file bugs -eval_gemfile("x_std_libs/vHEAD.gemfile") +eval_gemfile('x_std_libs/vHEAD.gemfile') diff --git a/gems/json-merge/gemfiles/modular/stringio/r2/v3.0.gemfile b/gems/json-merge/gemfiles/modular/stringio/r2/v3.0.gemfile index e85bb18ee..3616f4e3a 100644 --- a/gems/json-merge/gemfiles/modular/stringio/r2/v3.0.gemfile +++ b/gems/json-merge/gemfiles/modular/stringio/r2/v3.0.gemfile @@ -2,4 +2,4 @@ # NOT SEMVER # Version 3.0.7 dropped support for Ruby <= 2.7 # Version 3.0.0 dropped support for Ruby <= 2.4 -gem "stringio", ">= 3.0" +gem 'stringio', '>= 3.0' diff --git a/gems/json-merge/gemfiles/modular/stringio/r3/v3.0.gemfile b/gems/json-merge/gemfiles/modular/stringio/r3/v3.0.gemfile index e85bb18ee..3616f4e3a 100644 --- a/gems/json-merge/gemfiles/modular/stringio/r3/v3.0.gemfile +++ b/gems/json-merge/gemfiles/modular/stringio/r3/v3.0.gemfile @@ -2,4 +2,4 @@ # NOT SEMVER # Version 3.0.7 dropped support for Ruby <= 2.7 # Version 3.0.0 dropped support for Ruby <= 2.4 -gem "stringio", ">= 3.0" +gem 'stringio', '>= 3.0' diff --git a/gems/json-merge/gemfiles/modular/stringio/r4/v3.0.gemfile b/gems/json-merge/gemfiles/modular/stringio/r4/v3.0.gemfile index e85bb18ee..3616f4e3a 100644 --- a/gems/json-merge/gemfiles/modular/stringio/r4/v3.0.gemfile +++ b/gems/json-merge/gemfiles/modular/stringio/r4/v3.0.gemfile @@ -2,4 +2,4 @@ # NOT SEMVER # Version 3.0.7 dropped support for Ruby <= 2.7 # Version 3.0.0 dropped support for Ruby <= 2.4 -gem "stringio", ">= 3.0" +gem 'stringio', '>= 3.0' diff --git a/gems/json-merge/gemfiles/modular/stringio/vHEAD.gemfile b/gems/json-merge/gemfiles/modular/stringio/vHEAD.gemfile index 5f2a74126..78f5f5d8a 100644 --- a/gems/json-merge/gemfiles/modular/stringio/vHEAD.gemfile +++ b/gems/json-merge/gemfiles/modular/stringio/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 (dependency of omniauth) -gem "stringio", github: "ruby/stringio", branch: "master" +gem 'stringio', github: 'ruby/stringio', branch: 'master' diff --git a/gems/json-merge/gemfiles/modular/style.gemfile b/gems/json-merge/gemfiles/modular/style.gemfile index 35de4dcd6..4dbcc02c0 100644 --- a/gems/json-merge/gemfiles/modular/style.gemfile +++ b/gems/json-merge/gemfiles/modular/style.gemfile @@ -9,23 +9,23 @@ # Style tasks run on the latest Ruby; RuboCop-LTS selects the compatibility # rules for the configured Ruby floor independently from task dependency floors. -gem "reek", "~> 6.5", ">= 6.5.0" +gem 'reek', '~> 6.5', '>= 6.5.0' platform :mri do - gem "appraisal2-rubocop", "~> 1.0", ">= 1.0.0", require: false - gem "rubocop-gradual", "~> 0.4", ">= 0.4.0" - gem "rubocop-minitest", "~> 0.40", ">= 0.40.0" - gem "rubocop-on-rbs", "~> 2.0", ">= 2.0.0" # ruby >= 3.2.0 + gem 'appraisal2-rubocop', '~> 1.0', '>= 1.0.0', require: false + gem 'rubocop-gradual', '~> 0.4', '>= 0.4.0' + gem 'rubocop-minitest', '~> 0.40', '>= 0.40.0' + gem 'rubocop-on-rbs', '~> 2.0', '>= 2.0.0' # ruby >= 3.2.0 # gem "rubocop", "~> 1.73", ">= 1.73.2" # constrained by standard - gem "rubocop-packaging", "~> 0.6", ">= 0.6.0" - gem "standard", "~> 1.56", ">= 1.56.0" + gem 'rubocop-packaging', '~> 0.6', '>= 0.6.0' + gem 'standard', '~> 1.56', '>= 1.56.0' - if ENV.fetch("RUBOCOP_LTS_LOCAL", "false").casecmp("false").zero? + if ENV.fetch('RUBOCOP_LTS_LOCAL', 'false').casecmp('false').zero? declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) - gem "rubocop-lts", "~> 24.2", ">= 24.2.1" unless declared_gems.include?("rubocop-lts") - gem "rubocop-lts-rspec", "~> 1.0", ">= 1.0.5" unless declared_gems.include?("rubocop-lts-rspec") - gem "rubocop-ruby3_2", "~> 3.0", ">= 3.0.6" unless declared_gems.include?("rubocop-ruby3_2") + gem 'rubocop-lts', '~> 24.2', '>= 24.2.1' unless declared_gems.include?('rubocop-lts') + gem 'rubocop-lts-rspec', '~> 1.0', '>= 1.0.5' unless declared_gems.include?('rubocop-lts-rspec') + gem 'rubocop-ruby3_2', '~> 3.0', '>= 3.0.6' unless declared_gems.include?('rubocop-ruby3_2') else - eval_gemfile("style_local.gemfile") + eval_gemfile('style_local.gemfile') end end diff --git a/gems/json-merge/gemfiles/modular/style_local.gemfile b/gems/json-merge/gemfiles/modular/style_local.gemfile index cdcbeb586..269a58c92 100644 --- a/gems/json-merge/gemfiles/modular/style_local.gemfile +++ b/gems/json-merge/gemfiles/modular/style_local.gemfile @@ -14,21 +14,19 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] -nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) +nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] +nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == "nomono" } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - if nomono_locked - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] - end + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked end -Kernel.send(:gem, "nomono", *nomono_activation_requirements) -require "nomono/bundler" +Kernel.send(:gem, 'nomono', *nomono_activation_requirements) +require 'nomono/bundler' local_gems = %w[rubocop-lts rubocop-lts-rspec rubocop-ruby3_2 standard-rubocop-lts] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) @@ -38,11 +36,11 @@ local_gems_to_eval = local_gems - %w[json-merge] - declared_gems platform :mri do eval_nomono_gems( gems: local_gems_to_eval, - prefix: "RUBOCOP_LTS", - path_env: "RUBOCOP_LTS_LOCAL", - vendored_gems_env: "VENDORED_GEMS", - vendor_gem_dir_env: "VENDOR_GEM_DIR", - debug_env: "RUBOCOP_LTS_DEBUG", - root: ["src", "rubocop-lts"] + prefix: 'RUBOCOP_LTS', + path_env: 'RUBOCOP_LTS_LOCAL', + vendored_gems_env: 'VENDORED_GEMS', + vendor_gem_dir_env: 'VENDOR_GEM_DIR', + debug_env: 'RUBOCOP_LTS_DEBUG', + root: %w[src rubocop-lts] ) end diff --git a/gems/json-merge/gemfiles/modular/templating.gemfile b/gems/json-merge/gemfiles/modular/templating.gemfile index 47138ffbb..a672de184 100644 --- a/gems/json-merge/gemfiles/modular/templating.gemfile +++ b/gems/json-merge/gemfiles/modular/templating.gemfile @@ -1,18 +1,18 @@ # frozen_string_literal: true -structuredmerge_remote = ENV.fetch("STRUCTUREDMERGE_DEV", "false").casecmp("false").zero? -kettle_remote = ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false").zero? +structuredmerge_remote = ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false').zero? +kettle_remote = ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? if structuredmerge_remote # Parser dependencies for released installs. - gem "tree_sitter_language_pack", "~> 1.13", ">= 1.13.3" + gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' # Merge recipes for released installs. - gem "kettle-jem", ">= 7.0" + gem 'kettle-jem', '>= 7.0' end if kettle_remote # Template/plugin checks for released installs. - gem "kettle-drift", "~> 1.0", ">= 1.0.6", require: false + gem 'kettle-drift', '~> 1.0', '>= 1.0.6', require: false end # Set STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local development with path-based dependencies. @@ -21,4 +21,4 @@ end # # Set KETTLE_DEV_DEV=/path/to/my for local development with Kettle plugin gems. # When false (default / CI), released Kettle plugin gems are used. -eval_gemfile "templating_local.gemfile" unless structuredmerge_remote && kettle_remote +eval_gemfile 'templating_local.gemfile' unless structuredmerge_remote && kettle_remote diff --git a/gems/json-merge/gemfiles/modular/templating_local.gemfile b/gems/json-merge/gemfiles/modular/templating_local.gemfile index 25573dcc8..3a458a7d0 100644 --- a/gems/json-merge/gemfiles/modular/templating_local.gemfile +++ b/gems/json-merge/gemfiles/modular/templating_local.gemfile @@ -12,21 +12,19 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] -nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) +nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] +nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == "nomono" } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - if nomono_locked - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] - end + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked end -Kernel.send(:gem, "nomono", *nomono_activation_requirements) -require "nomono/bundler" +Kernel.send(:gem, 'nomono', *nomono_activation_requirements) +require 'nomono/bundler' structuredmerge_local_gems = %w[ tree_haver @@ -69,25 +67,25 @@ structuredmerge_local_gems_to_eval = structuredmerge_local_gems - %w[json-merge] kettle_dev_local_gems_to_eval = kettle_dev_local_gems - %w[json-merge] - declared_gems platform :mri do - if ENV.fetch("STRUCTUREDMERGE_DEV", "false").casecmp("false") != 0 + if ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false') != 0 eval_nomono_gems( gems: structuredmerge_local_gems_to_eval, - prefix: "STRUCTUREDMERGE", - path_env: "STRUCTUREDMERGE_DEV", - vendored_gems_env: "VENDORED_GEMS", - vendor_gem_dir_env: "VENDOR_GEM_DIR", - debug_env: "STRUCTUREDMERGE_DEBUG" + prefix: 'STRUCTUREDMERGE', + path_env: 'STRUCTUREDMERGE_DEV', + vendored_gems_env: 'VENDORED_GEMS', + vendor_gem_dir_env: 'VENDOR_GEM_DIR', + debug_env: 'STRUCTUREDMERGE_DEBUG' ) end - if ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false") != 0 + if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false') != 0 eval_nomono_gems( gems: kettle_dev_local_gems_to_eval, - prefix: "KETTLE_DEV", - path_env: "KETTLE_DEV_DEV", - vendored_gems_env: "VENDORED_GEMS", - vendor_gem_dir_env: "VENDOR_GEM_DIR", - debug_env: "KETTLE_DEV_DEBUG" + prefix: 'KETTLE_DEV', + path_env: 'KETTLE_DEV_DEV', + vendored_gems_env: 'VENDORED_GEMS', + vendor_gem_dir_env: 'VENDOR_GEM_DIR', + debug_env: 'KETTLE_DEV_DEBUG' ) end end diff --git a/gems/json-merge/gemfiles/modular/webrick/r4/v1.9.gemfile b/gems/json-merge/gemfiles/modular/webrick/r4/v1.9.gemfile index eaab4a473..b1329ba84 100644 --- a/gems/json-merge/gemfiles/modular/webrick/r4/v1.9.gemfile +++ b/gems/json-merge/gemfiles/modular/webrick/r4/v1.9.gemfile @@ -1 +1 @@ -gem "webrick", "~> 1.9" +gem 'webrick', '~> 1.9' diff --git a/gems/json-merge/gemfiles/modular/webrick/vHEAD.gemfile b/gems/json-merge/gemfiles/modular/webrick/vHEAD.gemfile index 8a789b634..c7e6f81a1 100644 --- a/gems/json-merge/gemfiles/modular/webrick/vHEAD.gemfile +++ b/gems/json-merge/gemfiles/modular/webrick/vHEAD.gemfile @@ -1 +1 @@ -gem "webrick", ">= 1.9" +gem 'webrick', '>= 1.9' diff --git a/gems/json-merge/gemfiles/modular/x_std_libs.gemfile b/gems/json-merge/gemfiles/modular/x_std_libs.gemfile index 77aad43f2..b1f43c097 100644 --- a/gems/json-merge/gemfiles/modular/x_std_libs.gemfile +++ b/gems/json-merge/gemfiles/modular/x_std_libs.gemfile @@ -1,12 +1,12 @@ ### Std Lib Extracted Gems ruby_version = Gem::Version.new(RUBY_VERSION) -if ruby_version >= Gem::Version.new("4.0") - eval_gemfile "x_std_libs/r4/libs.gemfile" -elsif ruby_version >= Gem::Version.new("3.2") - eval_gemfile "x_std_libs/r3/libs.gemfile" -elsif ruby_version >= Gem::Version.new("3.1") - eval_gemfile "x_std_libs/r3.1/libs.gemfile" +if ruby_version >= Gem::Version.new('4.0') + eval_gemfile 'x_std_libs/r4/libs.gemfile' +elsif ruby_version >= Gem::Version.new('3.2') + eval_gemfile 'x_std_libs/r3/libs.gemfile' +elsif ruby_version >= Gem::Version.new('3.1') + eval_gemfile 'x_std_libs/r3.1/libs.gemfile' else - eval_gemfile "x_std_libs/r2/libs.gemfile" + eval_gemfile 'x_std_libs/r2/libs.gemfile' end diff --git a/gems/json-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile b/gems/json-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile index 441c4f03a..16a5e3d70 100644 --- a/gems/json-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile +++ b/gems/json-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile @@ -1,3 +1,3 @@ -eval_gemfile "../../erb/r2/v3.0.gemfile" -eval_gemfile "../../mutex_m/r2/v0.3.gemfile" -eval_gemfile "../../stringio/r2/v3.0.gemfile" +eval_gemfile '../../erb/r2/v3.0.gemfile' +eval_gemfile '../../mutex_m/r2/v0.3.gemfile' +eval_gemfile '../../stringio/r2/v3.0.gemfile' diff --git a/gems/json-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile b/gems/json-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile index c293a3ddd..220ff95c1 100644 --- a/gems/json-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile +++ b/gems/json-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile @@ -1,3 +1,3 @@ -eval_gemfile "../../erb/r3/v5.0.gemfile" -eval_gemfile "../../mutex_m/r3/v0.3.gemfile" -eval_gemfile "../../stringio/r3/v3.0.gemfile" +eval_gemfile '../../erb/r3/v5.0.gemfile' +eval_gemfile '../../mutex_m/r3/v0.3.gemfile' +eval_gemfile '../../stringio/r3/v3.0.gemfile' diff --git a/gems/json-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile b/gems/json-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile index eb5574247..e2f6501eb 100644 --- a/gems/json-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile +++ b/gems/json-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile @@ -1,6 +1,6 @@ -eval_gemfile "../../erb/r4/v5.0.gemfile" -eval_gemfile "../../mutex_m/r4/v0.3.gemfile" -eval_gemfile "../../stringio/r4/v3.0.gemfile" -eval_gemfile "../../benchmark/r4/v0.5.gemfile" -eval_gemfile "../../cgi/r4/v0.5.gemfile" -eval_gemfile "../../webrick/r4/v1.9.gemfile" +eval_gemfile '../../erb/r4/v5.0.gemfile' +eval_gemfile '../../mutex_m/r4/v0.3.gemfile' +eval_gemfile '../../stringio/r4/v3.0.gemfile' +eval_gemfile '../../benchmark/r4/v0.5.gemfile' +eval_gemfile '../../cgi/r4/v0.5.gemfile' +eval_gemfile '../../webrick/r4/v1.9.gemfile' diff --git a/gems/json-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile b/gems/json-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile index d4d5b16c9..ab75cccf1 100644 --- a/gems/json-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile +++ b/gems/json-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile @@ -1,6 +1,6 @@ -eval_gemfile "../erb/vHEAD.gemfile" -eval_gemfile "../mutex_m/vHEAD.gemfile" -eval_gemfile "../stringio/vHEAD.gemfile" -eval_gemfile "../benchmark/vHEAD.gemfile" -eval_gemfile "../cgi/vHEAD.gemfile" -eval_gemfile "../webrick/vHEAD.gemfile" +eval_gemfile '../erb/vHEAD.gemfile' +eval_gemfile '../mutex_m/vHEAD.gemfile' +eval_gemfile '../stringio/vHEAD.gemfile' +eval_gemfile '../benchmark/vHEAD.gemfile' +eval_gemfile '../cgi/vHEAD.gemfile' +eval_gemfile '../webrick/vHEAD.gemfile' diff --git a/gems/json-merge/lib/json/merge/version.rb b/gems/json-merge/lib/json/merge/version.rb index d02d9f1a5..13f521eb3 100644 --- a/gems/json-merge/lib/json/merge/version.rb +++ b/gems/json-merge/lib/json/merge/version.rb @@ -3,7 +3,7 @@ module Json module Merge module Version - VERSION = "7.1.0" + VERSION = '7.1.0' end VERSION = Version::VERSION # Traditional Constant Location end diff --git a/gems/json-merge/spec/spec_helper.rb b/gems/json-merge/spec/spec_helper.rb index 3d185dfb1..127a823f4 100644 --- a/gems/json-merge/spec/spec_helper.rb +++ b/gems/json-merge/spec/spec_helper.rb @@ -7,16 +7,16 @@ # NOTE: Gemfiles for non-coverage appraisals may not have kettle-soup-cover. # The rescue LoadError handles that scenario. begin - require "kettle-soup-cover" + require 'kettle-soup-cover' if Kettle::Soup::Cover::DO_COV # Requiring simplecov loads the project-local `.simplecov`. - require "simplecov" - require "kettle/soup/cover/config" + require 'simplecov' + require 'kettle/soup/cover/config' SimpleCov.start end -rescue LoadError => error +rescue LoadError => e # check the error message and re-raise when unexpected - raise error unless error.message.include?("kettle") + raise e unless e.message.include?('kettle') end # External RSpec & related config diff --git a/gems/plain-merge/.kettle-drift.lock b/gems/plain-merge/.kettle-drift.lock index 43dfedd67..7cc6a5131 100644 --- a/gems/plain-merge/.kettle-drift.lock +++ b/gems/plain-merge/.kettle-drift.lock @@ -1,10 +1,74 @@ { + "(direct_sibling_local ||\nENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?)": [ + { + "file": "Gemfile", + "lines": [ + 80, + 120 + ] + } + ], + ".find { |spec| spec.name == 'nomono' }\nnomono_locked = nomono_locked_spec &&": [ + { + "file": "Gemfile", + "lines": [ + 91, + 131 + ] + } + ], + "ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?)\ndirect_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV')": [ + { + "file": "Gemfile", + "lines": [ + 81, + 121 + ] + } + ], + "Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version)\nnomono_activation_requirements = [\"= #{nomono_locked_spec.version}\"] if nomono_locked": [ + { + "file": "Gemfile", + "lines": [ + 93, + 133 + ] + } + ], + "Kernel.send(:gem, 'nomono', *nomono_activation_requirements)\nrequire 'nomono/bundler'": [ + { + "file": "Gemfile", + "lines": [ + 96, + 136 + ] + } + ], + "direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV')\ndirect_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil)": [ + { + "file": "Gemfile", + "lines": [ + 82, + 122 + ] + } + ], "eval_nomono_gems(\ngems: direct_sibling_gems,": [ { "file": "Gemfile", "lines": [ 60, - 100 + 100, + 140 + ] + } + ], + "gems: direct_sibling_gems,\nprefix: 'STRUCTUREDMERGE',": [ + { + "file": "Gemfile", + "lines": [ + 101, + 141 ] } ], @@ -13,7 +77,17 @@ "file": "Gemfile", "lines": [ 43, - 87 + 87, + 127 + ] + } + ], + "if direct_sibling_dev_was_set\nENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original": [ + { + "file": "Gemfile", + "lines": [ + 110, + 150 ] } ], @@ -22,7 +96,8 @@ "file": "Gemfile", "lines": [ 35, - 79 + 79, + 119 ] } ], @@ -31,7 +106,17 @@ "file": "Gemfile", "lines": [ 69, - 109 + 109, + 149 + ] + } + ], + "nomono_activation_requirements = nomono_requirements\nnomono_lockfile = File.expand_path('Gemfile.lock', __dir__)": [ + { + "file": "Gemfile", + "lines": [ + 85, + 125 ] } ], @@ -40,7 +125,8 @@ "file": "Gemfile", "lines": [ 48, - 92 + 92, + 132 ] } ], @@ -49,7 +135,53 @@ "file": "Gemfile", "lines": [ 44, - 88 + 88, + 128 + ] + } + ], + "nomono_lockfile = File.expand_path('Gemfile.lock', __dir__)\nif File.file?(nomono_lockfile)": [ + { + "file": "Gemfile", + "lines": [ + 86, + 126 + ] + } + ], + "path_env: 'STRUCTUREDMERGE_DEV',\nroot: %w[src my structuredmerge]": [ + { + "file": "Gemfile", + "lines": [ + 103, + 143 + ] + } + ], + "prefix: 'STRUCTUREDMERGE',\npath_env: 'STRUCTUREDMERGE_DEV',": [ + { + "file": "Gemfile", + "lines": [ + 102, + 142 + ] + } + ], + "require 'nomono/bundler'\nENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local": [ + { + "file": "Gemfile", + "lines": [ + 97, + 137 + ] + } + ], + "rescue LoadError\nwarn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.'": [ + { + "file": "Gemfile", + "lines": [ + 106, + 146 ] } ] diff --git a/gems/plain-merge/Gemfile b/gems/plain-merge/Gemfile index 48f5d6a97..d8937aeee 100644 --- a/gems/plain-merge/Gemfile +++ b/gems/plain-merge/Gemfile @@ -6,7 +6,7 @@ # kettle-jem will then preserve content between those markers across template runs. # kettle-jem:unfreeze -source 'https://gem.coop' +source "https://gem.coop" git_source(:codeberg) { |repo_name| "https://codeberg.org/#{repo_name}" } git_source(:gitlab) { |repo_name| "https://gitlab.com/#{repo_name}" } @@ -19,18 +19,62 @@ git_source(:gitlab) { |repo_name| "https://gitlab.com/#{repo_name}" } gemspec # Local workspace dependency wiring for *_local.gemfile overrides -nomono_requirements = ['~> 1.0', '>= 1.0.8'] -gem 'nomono', *nomono_requirements, require: false # ruby >= 2.2 +nomono_requirements = ["~> 1.0", ">= 1.0.8"] +gem "nomono", *nomono_requirements, require: false # ruby >= 2.2 # Direct sibling dependencies (env-switched via STRUCTUREDMERGE_DEV) direct_sibling_gems = %w[ ast-merge tree_haver ] -direct_sibling_dev = ENV.fetch('STRUCTUREDMERGE_DEV', '') +direct_sibling_dev = ENV.fetch("STRUCTUREDMERGE_DEV", "") direct_sibling_local = !direct_sibling_dev.empty? && !%w[false 0 no off].include?(direct_sibling_dev.downcase) -direct_sibling_templating = ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? +direct_sibling_templating = ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? + +if direct_sibling_gems.any? && + (direct_sibling_local || + ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero?) + direct_sibling_dev_was_set = ENV.key?("STRUCTUREDMERGE_DEV") + direct_sibling_dev_original = ENV.fetch("STRUCTUREDMERGE_DEV", nil) + begin + nomono_activation_requirements = nomono_requirements + nomono_lockfile = File.expand_path("Gemfile.lock", __dir__) + if File.file?(nomono_lockfile) + nomono_locked_spec = Bundler::LockfileParser + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == "nomono" } + nomono_locked = nomono_locked_spec && + Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) + if nomono_locked + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] + end + end + Kernel.send(:gem, "nomono", *nomono_activation_requirements) + require "nomono/bundler" + if direct_sibling_templating && !direct_sibling_local + ENV["STRUCTUREDMERGE_DEV"] = File.expand_path("..", __dir__) + end + + eval_nomono_gems( + gems: direct_sibling_gems, + prefix: "STRUCTUREDMERGE", + path_env: "STRUCTUREDMERGE_DEV", + root: ["src", "my", "structuredmerge"] + ) + rescue LoadError + warn "Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies." + ensure + if direct_sibling_templating && !direct_sibling_local + if direct_sibling_dev_was_set + ENV["STRUCTUREDMERGE_DEV"] = direct_sibling_dev_original + else + ENV.delete("STRUCTUREDMERGE_DEV") + end + end + end +end if direct_sibling_gems.any? && (direct_sibling_local || @@ -113,28 +157,28 @@ if direct_sibling_gems.any? && end # Use released TSLP with the Ruby ABI platform-gem fix. -gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' +gem "tree_sitter_language_pack", "~> 1.13", ">= 1.13.3" # Templating (env-switched: STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local paths) -eval_gemfile 'gemfiles/modular/templating.gemfile' if ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? +eval_gemfile "gemfiles/modular/templating.gemfile" if ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? # Debugging -eval_gemfile 'gemfiles/modular/debug.gemfile' +eval_gemfile "gemfiles/modular/debug.gemfile" # Code Coverage (env-switched: KETTLE_DEV_DEV=true for local paths) -eval_gemfile 'gemfiles/modular/coverage.gemfile' +eval_gemfile "gemfiles/modular/coverage.gemfile" # Linting -eval_gemfile 'gemfiles/modular/style.gemfile' +eval_gemfile "gemfiles/modular/style.gemfile" # Documentation -eval_gemfile 'gemfiles/modular/documentation.gemfile' +eval_gemfile "gemfiles/modular/documentation.gemfile" # Optional -eval_gemfile 'gemfiles/modular/optional.gemfile' +eval_gemfile "gemfiles/modular/optional.gemfile" ### Std Lib Extracted Gems -eval_gemfile 'gemfiles/modular/x_std_libs.gemfile' +eval_gemfile "gemfiles/modular/x_std_libs.gemfile" # See unlocked_deps appraisal for more details on irb inclusion -gem 'irb', '~> 1.17' # ruby >= 2.7 +gem "irb", "~> 1.17" # ruby >= 2.7 diff --git a/gems/plain-merge/Gemfile.lock b/gems/plain-merge/Gemfile.lock index 330d474ad..969316723 100644 --- a/gems/plain-merge/Gemfile.lock +++ b/gems/plain-merge/Gemfile.lock @@ -6,6 +6,266 @@ PATH tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly + specs: + ast-crispr-markdown-markly (7.1.0) + ast-crispr (= 7.1.0) + markly-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism + specs: + ast-crispr-ruby-prism (7.1.0) + ast-crispr (= 7.1.0) + prism-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr + specs: + ast-crispr (7.1.0) + ast-merge (= 7.1.0) + service_actor (~> 3.9) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git + specs: + ast-merge-git (7.1.0) + ast-merge (= 7.1.0) + json-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge + specs: + ast-merge (7.1.0) + benchmark + token-resolver (~> 2.0, >= 2.0.4) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template + specs: + ast-template (7.1.0) + ast-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge + specs: + bash-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge + specs: + binary-merge (7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge + specs: + citrus-toml-merge (7.1.0) + toml-merge (= 7.1.0) + toml-rb (~> 4.1) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge + specs: + commonmarker-merge (7.1.0) + commonmarker (~> 2.2) + markdown-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge + specs: + dotenv-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge + specs: + go-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge + specs: + json-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem + specs: + kettle-jem (7.1.0) + addressable (>= 2.8, < 3) + ast-crispr-markdown-markly (= 7.1.0) + ast-crispr-ruby-prism (= 7.1.0) + ast-merge (= 7.1.0) + bash-merge (= 7.1.0) + citrus-toml-merge (= 7.1.0) + commonmarker-merge (= 7.1.0) + dotenv-merge (= 7.1.0) + json-merge (= 7.1.0) + kettle-dev (~> 2.3, >= 2.3.5) + kettle-rb (~> 0.1, >= 0.1.4) + kramdown-merge (= 7.1.0) + markdown-merge (= 7.1.0) + markly-merge (= 7.1.0) + prism-merge (= 7.1.0) + psych-merge (= 7.1.0) + rbs (>= 3.10) + rbs-merge (= 7.1.0) + ruby-merge (= 7.1.0) + token-resolver (~> 2.0, >= 2.0.4) + toml-merge (= 7.1.0) + toml-rb (~> 4.2) + tree_haver (= 7.1.0) + yaml-merge (= 7.1.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge + specs: + kramdown-merge (7.1.0) + kramdown (~> 2.5) + markdown-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge + specs: + markdown-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge + specs: + markly-merge (7.1.0) + markdown-merge (= 7.1.0) + markly (~> 0.9) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge + specs: + parslet-toml-merge (7.1.0) + toml (~> 0.3) + toml-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge + specs: + prism-merge (7.1.0) + prism (~> 1.6) + ruby-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge + specs: + psych-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + yaml-merge (= 7.1.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge + specs: + rbs-merge (7.1.0) + ast-merge (= 7.1.0) + rbs (>= 3.10) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge + specs: + ruby-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge + specs: + rust-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb + specs: + smorg-rb (7.1.0) + ast-merge (= 7.1.0) + ast-merge-git (= 7.1.0) + diff-lcs (~> 1.5) + go-merge (= 7.1.0) + json-merge (= 7.1.0) + kettle-jem (= 7.1.0) + markly-merge (= 7.1.0) + plain-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge + specs: + toml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver + specs: + tree_haver (7.1.0) + citrus (~> 3.0) + parslet (~> 2.0) + tree_sitter_language_pack (>= 1.13.2, < 2.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge + specs: + typescript-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge + specs: + yaml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge + specs: + zip-merge (7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + GEM remote: https://gem.coop/ specs: @@ -21,11 +281,6 @@ GEM rubocop (>= 1.0) version_gem (~> 1.1, >= 1.1.14) ast (2.4.3) - ast-merge (7.1.0) - benchmark - token-resolver (~> 2.0, >= 2.0.4) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) backports (3.25.3) benchmark (0.5.0) bigdecimal (4.1.2) @@ -35,6 +290,11 @@ GEM cgi (0.5.2) citrus (3.0.2) cmdparse (3.0.7) + commonmarker (2.9.0-aarch64-linux) + commonmarker (2.9.0-aarch64-linux-musl) + commonmarker (2.9.0-arm64-darwin) + commonmarker (2.9.0-x86_64-linux) + commonmarker (2.9.0-x86_64-linux-musl) concurrent-ruby (1.3.8) date (3.5.1) debug (1.11.1) @@ -97,6 +357,8 @@ GEM kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) + kettle-drift (1.0.6) + version_gem (~> 1.1, >= 1.1.14) kettle-rb (0.1.5) kettle-soup-cover (3.0.4) kettle-wash (~> 0.1, >= 0.1.0) @@ -125,6 +387,7 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) + markly (0.16.0) mutex_m (0.3.0) nokogiri (1.19.4-aarch64-linux-gnu) racc (~> 1.4) @@ -287,6 +550,8 @@ GEM ruby-progressbar (1.13.0) ruby_engine (2.0.3) ruby_version (1.0.3) + service_actor (3.9.4) + zeitwerk (>= 1.0) silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) @@ -341,11 +606,11 @@ GEM token-resolver (2.0.5) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.14) - tree_haver (7.1.0) - citrus (~> 3.0) - parslet (~> 2.0) - tree_sitter_language_pack (>= 1.13.2, < 2.0) - version_gem (~> 1.1, >= 1.1.9) + toml (0.3.0) + parslet (>= 1.8.0, < 3.0.0) + toml-rb (4.2.0) + citrus (~> 3.0, > 3.0) + racc (~> 1.7) tree_sitter_language_pack (1.13.3-aarch64-linux) sorbet-runtime (~> 0.5) tree_sitter_language_pack (1.13.3-arm64-darwin) @@ -400,24 +665,46 @@ DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) appraisal2-rubocop (~> 1.0, >= 1.0.0) + ast-crispr! + ast-crispr-markdown-markly! + ast-crispr-ruby-prism! + ast-merge! + ast-merge-git! + ast-template! + bash-merge! benchmark (~> 0.5, >= 0.5.0) + binary-merge! bundler-audit (~> 0.9.3) cgi (~> 0.5) + citrus-toml-merge! + commonmarker-merge! debug (>= 1.1) + dotenv-merge! erb (~> 6.0, >= 6.0.6) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.0) + go-merge! irb (~> 1.17) + json-merge! kettle-dev (~> 2.0, >= 2.2.25) + kettle-drift (~> 1.0, >= 1.0.6) + kettle-jem! kettle-soup-cover (~> 3.0, >= 3.0.3) kettle-test (~> 2.0, >= 2.0.9) kramdown (~> 2.5, >= 2.5.2) + kramdown-merge! kramdown-parser-gfm (~> 1.1) + markdown-merge! + markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) + parslet-toml-merge! plain-merge! + prism-merge! + psych-merge! rake (~> 13.0) rbs (>= 3.0) + rbs-merge! rdoc (~> 6.11) reek (~> 6.5, >= 6.5.0) require_bench (~> 1.0, >= 1.0.4) @@ -428,19 +715,27 @@ DEPENDENCIES rubocop-on-rbs (~> 2.0, >= 2.0.0) rubocop-packaging (~> 0.6, >= 0.6.0) rubocop-ruby3_2 (~> 3.0, >= 3.0.6) + ruby-merge! ruby-progressbar (~> 1.13) + rust-merge! + smorg-rb! standard (~> 1.56, >= 1.56.0) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) + toml-merge! + tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) + typescript-merge! webrick (~> 1.9) yaml-converter (~> 0.2, >= 0.2.3) + yaml-merge! yard (~> 0.9, >= 0.9.45) yard-fence (~> 0.9, >= 0.9.6) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) yard-timekeeper (~> 0.2, >= 0.2.4) yard-yaml (~> 0.2, >= 0.2.3) + zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af @@ -448,20 +743,35 @@ CHECKSUMS appraisal2 (3.2.0) sha256=ccd0b767ac4060cd7af6d16747459b6990f49c39c7b4fb1f7d1146b1e97c492f appraisal2-rubocop (1.0.0) sha256=b71410fbb014befda5340605a605b7f6f3f012739baf0acc5b4351b592c3258d ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 + ast-crispr (7.1.0) + ast-crispr-markdown-markly (7.1.0) + ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) + ast-merge-git (7.1.0) + ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 + bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd + binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 + citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 + commonmarker (2.9.0-aarch64-linux) sha256=e2b4aadb9a2cfa4e206582641ce3a49465549ac1ed4c289fdd63b78d8f24579c + commonmarker (2.9.0-aarch64-linux-musl) sha256=1cf4d2821f2a7e64945f1ed7c4eeced586fdb27ea7fe7337788802cf8f57cfca + commonmarker (2.9.0-arm64-darwin) sha256=1748dbfa4f5813b0d2a14bb4bbfa65a4ec293aa1c825016d60029ee0e132b046 + commonmarker (2.9.0-x86_64-linux) sha256=8cfe92970eef585a19ddf6613224b91cab64d6029834661bda801f877c9c7f43 + commonmarker (2.9.0-x86_64-linux-musl) sha256=293921398b839f79ceaf55010e061357e34f053822c3b003cd0be6686176335e + commonmarker-merge (7.1.0) concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 + dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -474,20 +784,28 @@ CHECKSUMS gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f + go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 + json-merge (7.1.0) kettle-dev (2.3.8) sha256=9d716ff21c660a730cb4e8d41e2e2f0630a28167a354b6e2924e242102aef72c + kettle-drift (1.0.6) sha256=46eda08fa4411d1f3c6682a95eef1c9df4e94611b3949f49d4c7b43c0ed356a3 + kettle-jem (7.1.0) kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f kettle-soup-cover (3.0.4) kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa + kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 + markdown-merge (7.1.0) + markly (0.16.0) sha256=6f70d79e385b1efc9e171f74c81628826259039fe6c778e03c3924c71dac5511 + markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-aarch64-linux-gnu) sha256=1269fb644a6de405057a53dd5c762b1209b43ca7424f839454d3dbc677c31a8f nokogiri (1.19.4-aarch64-linux-musl) sha256=35c65b9ce72b3bb03207bdbe7067915019dc18c1b9b59139684bd6690fdd01af @@ -501,16 +819,20 @@ CHECKSUMS parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 + parslet-toml-merge (7.1.0) plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 + prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 + psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 + rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb @@ -545,15 +867,19 @@ CHECKSUMS rubocop-rspec_rails (2.32.0) sha256=4a0d641c72f6ebb957534f539d9d0a62c47abd8ce0d0aeee1ef4701e892a9100 rubocop-ruby3_2 (3.0.7) sha256=f53dd6d286fb05186214fc6ec116783e7f837030918e8931c05de773e98f8466 rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 + ruby-merge (7.1.0) ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 + rust-merge (7.1.0) + service_actor (3.9.4) sha256=e63b523630b9a7e62959b2a90113b08d2565b5de9c148557b281ef847c9539ce silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed + smorg-rb (7.1.0) sorbet-runtime (0.6.13347) sha256=54e7221d9f4b63f58aec79f3043752a9ba7810347c6ae0d903531591cc2d5f01 standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b @@ -568,17 +894,22 @@ CHECKSUMS timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.5) sha256=b852f924287ffb58a440856e862b056c8ad97e74b4b2526cee43e0771f40c25c + toml (0.3.0) sha256=0a91d0f76a9036e84e44f95693b12f58d358c1df3ac8e3b5271f2056ecc6e4b9 + toml-merge (7.1.0) + toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-aarch64-linux) sha256=55ffc7c87868cb45658338363d9eba51b4a8b0259aa88e4de368d2bd1d52fea4 tree_sitter_language_pack (1.13.3-arm64-darwin) sha256=bc2498db605f212a1dbd2465ed3f65190d7da786f6ed5d30fcf958121aeb4a5c tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 + typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 webrick (1.9.2) sha256=beb4a15fc474defed24a3bda4ffd88a490d517c9e4e6118c3edce59e45864131 yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 + yaml-merge (7.1.0) yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd @@ -586,6 +917,7 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 + zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH diff --git a/gems/plain-merge/Rakefile b/gems/plain-merge/Rakefile index c1132c880..571409183 100644 --- a/gems/plain-merge/Rakefile +++ b/gems/plain-merge/Rakefile @@ -130,23 +130,23 @@ end ### DUPLICATE DRIFT TASKS begin - require 'kettle/drift' + require "kettle/drift" Kettle::Drift.install_tasks rescue LoadError - desc('(stub) kettle:drift:check is unavailable') - task('kettle:drift:check') do + desc("(stub) kettle:drift:check is unavailable") + task("kettle:drift:check") do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc('(stub) kettle:drift:update is unavailable') - task('kettle:drift:update') do + desc("(stub) kettle:drift:update is unavailable") + task("kettle:drift:update") do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc('(stub) kettle:drift:force_update is unavailable') - task('kettle:drift:force_update') do + desc("(stub) kettle:drift:force_update is unavailable") + task("kettle:drift:force_update") do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc('(stub) kettle:drift is unavailable') - task('kettle:drift' => 'kettle:drift:update') + desc("(stub) kettle:drift is unavailable") + task("kettle:drift" => "kettle:drift:update") end ### TEMPLATING TASKS diff --git a/gems/plain-merge/gemfiles/modular/templating.gemfile b/gems/plain-merge/gemfiles/modular/templating.gemfile index a672de184..47138ffbb 100644 --- a/gems/plain-merge/gemfiles/modular/templating.gemfile +++ b/gems/plain-merge/gemfiles/modular/templating.gemfile @@ -1,18 +1,18 @@ # frozen_string_literal: true -structuredmerge_remote = ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false').zero? -kettle_remote = ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? +structuredmerge_remote = ENV.fetch("STRUCTUREDMERGE_DEV", "false").casecmp("false").zero? +kettle_remote = ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false").zero? if structuredmerge_remote # Parser dependencies for released installs. - gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' + gem "tree_sitter_language_pack", "~> 1.13", ">= 1.13.3" # Merge recipes for released installs. - gem 'kettle-jem', '>= 7.0' + gem "kettle-jem", ">= 7.0" end if kettle_remote # Template/plugin checks for released installs. - gem 'kettle-drift', '~> 1.0', '>= 1.0.6', require: false + gem "kettle-drift", "~> 1.0", ">= 1.0.6", require: false end # Set STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local development with path-based dependencies. @@ -21,4 +21,4 @@ end # # Set KETTLE_DEV_DEV=/path/to/my for local development with Kettle plugin gems. # When false (default / CI), released Kettle plugin gems are used. -eval_gemfile 'templating_local.gemfile' unless structuredmerge_remote && kettle_remote +eval_gemfile "templating_local.gemfile" unless structuredmerge_remote && kettle_remote diff --git a/gems/plain-merge/gemfiles/modular/templating_local.gemfile b/gems/plain-merge/gemfiles/modular/templating_local.gemfile index b10c084e9..71738416a 100644 --- a/gems/plain-merge/gemfiles/modular/templating_local.gemfile +++ b/gems/plain-merge/gemfiles/modular/templating_local.gemfile @@ -12,19 +12,21 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] -nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) +nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] +nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == "nomono" } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + if nomono_locked + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] + end end -Kernel.send(:gem, 'nomono', *nomono_activation_requirements) -require 'nomono/bundler' +Kernel.send(:gem, "nomono", *nomono_activation_requirements) +require "nomono/bundler" structuredmerge_local_gems = %w[ tree_haver @@ -67,25 +69,25 @@ structuredmerge_local_gems_to_eval = structuredmerge_local_gems - %w[plain-merge kettle_dev_local_gems_to_eval = kettle_dev_local_gems - %w[plain-merge] - declared_gems platform :mri do - if ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false') != 0 + if ENV.fetch("STRUCTUREDMERGE_DEV", "false").casecmp("false") != 0 eval_nomono_gems( gems: structuredmerge_local_gems_to_eval, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - vendored_gems_env: 'VENDORED_GEMS', - vendor_gem_dir_env: 'VENDOR_GEM_DIR', - debug_env: 'STRUCTUREDMERGE_DEBUG' + prefix: "STRUCTUREDMERGE", + path_env: "STRUCTUREDMERGE_DEV", + vendored_gems_env: "VENDORED_GEMS", + vendor_gem_dir_env: "VENDOR_GEM_DIR", + debug_env: "STRUCTUREDMERGE_DEBUG" ) end - if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false') != 0 + if ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false") != 0 eval_nomono_gems( gems: kettle_dev_local_gems_to_eval, - prefix: 'KETTLE_DEV', - path_env: 'KETTLE_DEV_DEV', - vendored_gems_env: 'VENDORED_GEMS', - vendor_gem_dir_env: 'VENDOR_GEM_DIR', - debug_env: 'KETTLE_DEV_DEBUG' + prefix: "KETTLE_DEV", + path_env: "KETTLE_DEV_DEV", + vendored_gems_env: "VENDORED_GEMS", + vendor_gem_dir_env: "VENDOR_GEM_DIR", + debug_env: "KETTLE_DEV_DEBUG" ) end end diff --git a/gems/plain-merge/lib/plain/merge/version.rb b/gems/plain-merge/lib/plain/merge/version.rb index e6b3a5844..aab4f67c1 100644 --- a/gems/plain-merge/lib/plain/merge/version.rb +++ b/gems/plain-merge/lib/plain/merge/version.rb @@ -3,7 +3,7 @@ module Plain module Merge module Version - VERSION = '7.1.0' + VERSION = "7.1.0" end VERSION = Version::VERSION # Traditional Constant Location end From 9561c3dae198208442245c0bef6e0ce98f95b5a7 Mon Sep 17 00:00:00 2001 From: "Peter H. Boling" Date: Tue, 21 Jul 2026 18:02:44 -0600 Subject: [PATCH 155/188] =?UTF-8?q?=F0=9F=8E=A8=20Template=20bootstrap=20b?= =?UTF-8?q?y=20kettle-jem=20v7.1.0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gems/ast-merge-git/.rubocop_gradual.lock | 2 +- gems/ast-merge-git/.simplecov | 8 +- gems/ast-merge-git/Gemfile | 70 ++-- gems/ast-merge-git/Gemfile.lock | 327 +--------------- gems/ast-merge-git/Rakefile | 18 +- .../gemfiles/modular/templating.gemfile | 12 +- .../gemfiles/modular/templating_local.gemfile | 44 ++- .../lib/ast/merge/git/version.rb | 2 +- gems/ast-merge-git/spec/spec_helper.rb | 7 +- gems/bash-merge/.kettle-drift.lock | 144 +++++++- gems/bash-merge/Gemfile | 72 +++- gems/bash-merge/Gemfile.lock | 348 +++++++++++++++++- gems/bash-merge/Rakefile | 18 +- .../gemfiles/modular/templating.gemfile | 12 +- .../gemfiles/modular/templating_local.gemfile | 44 +-- gems/bash-merge/lib/bash/merge/version.rb | 2 +- gems/json-merge/Gemfile.lock | 326 +++++++++++++++- gems/plain-merge/.rubocop_gradual.lock | 120 ------ gems/plain-merge/.simplecov | 8 +- gems/plain-merge/Gemfile.lock | 326 +--------------- gems/plain-merge/bin/yard | 2 +- .../modular/benchmark/r4/v0.5.gemfile | 2 +- .../gemfiles/modular/benchmark/vHEAD.gemfile | 2 +- .../gemfiles/modular/cgi/r4/v0.5.gemfile | 2 +- .../gemfiles/modular/cgi/vHEAD.gemfile | 2 +- .../gemfiles/modular/coverage.gemfile | 6 +- .../gemfiles/modular/coverage_local.gemfile | 42 ++- .../gemfiles/modular/debug.gemfile | 4 +- .../gemfiles/modular/documentation.gemfile | 24 +- .../modular/documentation_local.gemfile | 30 +- .../gemfiles/modular/erb/r2/v3.0.gemfile | 2 +- .../gemfiles/modular/erb/r3/v5.0.gemfile | 2 +- .../gemfiles/modular/erb/r4/v5.0.gemfile | 2 +- .../gemfiles/modular/erb/vHEAD.gemfile | 2 +- .../modular/json/truffleruby_22_3.gemfile | 4 +- .../modular/json/truffleruby_23_0.gemfile | 4 +- .../modular/json/truffleruby_23_1.gemfile | 4 +- .../gemfiles/modular/mutex_m/r2/v0.3.gemfile | 2 +- .../gemfiles/modular/mutex_m/r3/v0.3.gemfile | 2 +- .../gemfiles/modular/mutex_m/r4/v0.3.gemfile | 2 +- .../gemfiles/modular/mutex_m/vHEAD.gemfile | 2 +- .../gemfiles/modular/optional.gemfile | 4 +- .../gemfiles/modular/rspec.gemfile | 8 +- .../gemfiles/modular/runtime_heads.gemfile | 2 +- .../gemfiles/modular/stringio/r2/v3.0.gemfile | 2 +- .../gemfiles/modular/stringio/r3/v3.0.gemfile | 2 +- .../gemfiles/modular/stringio/r4/v3.0.gemfile | 2 +- .../gemfiles/modular/stringio/vHEAD.gemfile | 2 +- .../gemfiles/modular/style.gemfile | 24 +- .../gemfiles/modular/style_local.gemfile | 32 +- .../gemfiles/modular/webrick/r4/v1.9.gemfile | 2 +- .../gemfiles/modular/webrick/vHEAD.gemfile | 2 +- .../gemfiles/modular/x_std_libs.gemfile | 14 +- .../modular/x_std_libs/r2/libs.gemfile | 6 +- .../modular/x_std_libs/r3/libs.gemfile | 6 +- .../modular/x_std_libs/r4/libs.gemfile | 12 +- .../gemfiles/modular/x_std_libs/vHEAD.gemfile | 12 +- gems/plain-merge/spec/spec_helper.rb | 13 +- 58 files changed, 1137 insertions(+), 1062 deletions(-) delete mode 100644 gems/plain-merge/.rubocop_gradual.lock diff --git a/gems/ast-merge-git/.rubocop_gradual.lock b/gems/ast-merge-git/.rubocop_gradual.lock index 2aee40552..4088e89b4 100644 --- a/gems/ast-merge-git/.rubocop_gradual.lock +++ b/gems/ast-merge-git/.rubocop_gradual.lock @@ -1,5 +1,5 @@ { - ".simplecov:1859435982": [ + ".simplecov:2758685973": [ [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] ], "Rakefile:1078627597": [ diff --git a/gems/ast-merge-git/.simplecov b/gems/ast-merge-git/.simplecov index 80bb5187d..afdbb1755 100644 --- a/gems/ast-merge-git/.simplecov +++ b/gems/ast-merge-git/.simplecov @@ -4,15 +4,11 @@ # ast-merge-git will then preserve content between those markers across template runs. # kettle-jem:unfreeze -require 'kettle/soup/cover/config' - # Minimum coverage thresholds are set by kettle-soup-cover. # They are controlled by ENV variables loaded by `mise` from `mise.toml` # (with optional machine-local overrides in `.env.local`). # If the values for minimum coverage need to change, they should be changed both there, # and in 2 places in .github/workflows/coverage.yml. -SimpleCov.start do - track_files 'lib/**/*.rb' - track_files 'lib/**/*.rake' - track_files 'exe/*.rb' +SimpleCov.configure do + cover 'lib/**/*.rb', 'lib/**/*.rake', 'exe/*.rb' end diff --git a/gems/ast-merge-git/Gemfile b/gems/ast-merge-git/Gemfile index ba85cbc42..dc4044667 100644 --- a/gems/ast-merge-git/Gemfile +++ b/gems/ast-merge-git/Gemfile @@ -6,7 +6,7 @@ # kettle-jem will then preserve content between those markers across template runs. # kettle-jem:unfreeze -source "https://gem.coop" +source 'https://gem.coop' git_source(:codeberg) { |repo_name| "https://codeberg.org/#{repo_name}" } git_source(:gitlab) { |repo_name| "https://gitlab.com/#{repo_name}" } @@ -19,58 +19,54 @@ git_source(:gitlab) { |repo_name| "https://gitlab.com/#{repo_name}" } gemspec # Local workspace dependency wiring for *_local.gemfile overrides -nomono_requirements = ["~> 1.0", ">= 1.0.8"] -gem "nomono", *nomono_requirements, require: false # ruby >= 2.2 +nomono_requirements = ['~> 1.0', '>= 1.0.8'] +gem 'nomono', *nomono_requirements, require: false # ruby >= 2.2 # Direct sibling dependencies (env-switched via STRUCTUREDMERGE_DEV) direct_sibling_gems = %w[ ast-merge json-merge ] -direct_sibling_dev = ENV.fetch("STRUCTUREDMERGE_DEV", "") +direct_sibling_dev = ENV.fetch('STRUCTUREDMERGE_DEV', '') direct_sibling_local = !direct_sibling_dev.empty? && !%w[false 0 no off].include?(direct_sibling_dev.downcase) -direct_sibling_templating = ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? +direct_sibling_templating = ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero?) - direct_sibling_dev_was_set = ENV.key?("STRUCTUREDMERGE_DEV") - direct_sibling_dev_original = ENV.fetch("STRUCTUREDMERGE_DEV", nil) + (direct_sibling_local || + ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) + direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') + direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) begin nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path("Gemfile.lock", __dir__) + nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == "nomono" } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - if nomono_locked - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] - end - end - Kernel.send(:gem, "nomono", *nomono_activation_requirements) - require "nomono/bundler" - if direct_sibling_templating && !direct_sibling_local - ENV["STRUCTUREDMERGE_DEV"] = File.expand_path("..", __dir__) + Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked end + Kernel.send(:gem, 'nomono', *nomono_activation_requirements) + require 'nomono/bundler' + ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local eval_nomono_gems( gems: direct_sibling_gems, - prefix: "STRUCTUREDMERGE", - path_env: "STRUCTUREDMERGE_DEV", - root: ["src", "my", "structuredmerge"] + prefix: 'STRUCTUREDMERGE', + path_env: 'STRUCTUREDMERGE_DEV', + root: %w[src my structuredmerge] ) rescue LoadError - warn "Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies." + warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' ensure if direct_sibling_templating && !direct_sibling_local if direct_sibling_dev_was_set - ENV["STRUCTUREDMERGE_DEV"] = direct_sibling_dev_original + ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original else - ENV.delete("STRUCTUREDMERGE_DEV") + ENV.delete('STRUCTUREDMERGE_DEV') end end end @@ -157,28 +153,28 @@ if direct_sibling_gems.any? && end # Use released TSLP with the Ruby ABI platform-gem fix. -gem "tree_sitter_language_pack", "~> 1.13", ">= 1.13.3" +gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' # Templating (env-switched: STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local paths) -eval_gemfile "gemfiles/modular/templating.gemfile" if ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? +eval_gemfile 'gemfiles/modular/templating.gemfile' if ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? # Debugging -eval_gemfile "gemfiles/modular/debug.gemfile" +eval_gemfile 'gemfiles/modular/debug.gemfile' # Code Coverage (env-switched: KETTLE_DEV_DEV=true for local paths) -eval_gemfile "gemfiles/modular/coverage.gemfile" +eval_gemfile 'gemfiles/modular/coverage.gemfile' # Linting -eval_gemfile "gemfiles/modular/style.gemfile" +eval_gemfile 'gemfiles/modular/style.gemfile' # Documentation -eval_gemfile "gemfiles/modular/documentation.gemfile" +eval_gemfile 'gemfiles/modular/documentation.gemfile' # Optional -eval_gemfile "gemfiles/modular/optional.gemfile" +eval_gemfile 'gemfiles/modular/optional.gemfile' ### Std Lib Extracted Gems -eval_gemfile "gemfiles/modular/x_std_libs.gemfile" +eval_gemfile 'gemfiles/modular/x_std_libs.gemfile' # See unlocked_deps appraisal for more details on irb inclusion -gem "irb", "~> 1.17" # ruby >= 2.7 +gem 'irb', '~> 1.17' # ruby >= 2.7 diff --git a/gems/ast-merge-git/Gemfile.lock b/gems/ast-merge-git/Gemfile.lock index d95176b1a..30c4a9f17 100644 --- a/gems/ast-merge-git/Gemfile.lock +++ b/gems/ast-merge-git/Gemfile.lock @@ -7,31 +7,7 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly - specs: - ast-crispr-markdown-markly (7.1.0) - ast-crispr (= 7.1.0) - markly-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism - specs: - ast-crispr-ruby-prism (7.1.0) - ast-crispr (= 7.1.0) - prism-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr - specs: - ast-crispr (7.1.0) - ast-merge (= 7.1.0) - service_actor (~> 3.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/ast-merge specs: ast-merge (7.1.0) benchmark @@ -40,232 +16,13 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template - specs: - ast-template (7.1.0) - ast-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge - specs: - bash-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge - specs: - binary-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge - specs: - citrus-toml-merge (7.1.0) - toml-merge (= 7.1.0) - toml-rb (~> 4.1) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge - specs: - commonmarker-merge (7.1.0) - commonmarker (~> 2.2) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge - specs: - dotenv-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge - specs: - go-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/json-merge specs: json-merge (7.1.0) ast-merge (= 7.1.0) tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem - specs: - kettle-jem (7.1.0) - addressable (>= 2.8, < 3) - ast-crispr-markdown-markly (= 7.1.0) - ast-crispr-ruby-prism (= 7.1.0) - ast-merge (= 7.1.0) - bash-merge (= 7.1.0) - citrus-toml-merge (= 7.1.0) - commonmarker-merge (= 7.1.0) - dotenv-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-dev (~> 2.3, >= 2.3.5) - kettle-rb (~> 0.1, >= 0.1.4) - kramdown-merge (= 7.1.0) - markdown-merge (= 7.1.0) - markly-merge (= 7.1.0) - prism-merge (= 7.1.0) - psych-merge (= 7.1.0) - rbs (>= 3.10) - rbs-merge (= 7.1.0) - ruby-merge (= 7.1.0) - token-resolver (~> 2.0, >= 2.0.4) - toml-merge (= 7.1.0) - toml-rb (~> 4.2) - tree_haver (= 7.1.0) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge - specs: - kramdown-merge (7.1.0) - kramdown (~> 2.5) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge - specs: - markdown-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge - specs: - markly-merge (7.1.0) - markdown-merge (= 7.1.0) - markly (~> 0.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge - specs: - parslet-toml-merge (7.1.0) - toml (~> 0.3) - toml-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge - specs: - plain-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge - specs: - prism-merge (7.1.0) - prism (~> 1.6) - ruby-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge - specs: - psych-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge - specs: - rbs-merge (7.1.0) - ast-merge (= 7.1.0) - rbs (>= 3.10) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge - specs: - ruby-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge - specs: - rust-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb - specs: - smorg-rb (7.1.0) - ast-merge (= 7.1.0) - ast-merge-git (= 7.1.0) - diff-lcs (~> 1.5) - go-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-jem (= 7.1.0) - markly-merge (= 7.1.0) - plain-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge - specs: - toml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver - specs: - tree_haver (7.1.0) - citrus (~> 3.0) - parslet (~> 2.0) - tree_sitter_language_pack (>= 1.13.2, < 2.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge - specs: - typescript-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge - specs: - yaml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge - specs: - zip-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - GEM remote: https://gem.coop/ specs: @@ -290,7 +47,6 @@ GEM cgi (0.5.2) citrus (3.0.2) cmdparse (3.0.7) - commonmarker (2.9.0-x86_64-linux) concurrent-ruby (1.3.8) date (3.5.1) debug (1.11.1) @@ -348,13 +104,11 @@ GEM rdoc (>= 4.0.0) reline (>= 0.4.2) json (2.21.1) - kettle-dev (2.3.8) + kettle-dev (2.3.9) emoji_regex (>= 15.0) kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) - kettle-drift (1.0.6) - version_gem (~> 1.1, >= 1.1.14) kettle-rb (0.1.5) kettle-soup-cover (3.0.4) kettle-wash (~> 0.1, >= 0.1.0) @@ -383,7 +137,6 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) - markly (0.16.0) mutex_m (0.3.0) nokogiri (1.19.4-x86_64-linux-gnu) racc (~> 1.4) @@ -538,8 +291,6 @@ GEM ruby-progressbar (1.13.0) ruby_engine (2.0.3) ruby_version (1.0.3) - service_actor (3.9.4) - zeitwerk (>= 1.0) silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) @@ -594,11 +345,11 @@ GEM token-resolver (2.0.5) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.14) - toml (0.3.0) - parslet (>= 1.8.0, < 3.0.0) - toml-rb (4.2.0) - citrus (~> 3.0, > 3.0) - racc (~> 1.7) + tree_haver (7.1.0) + citrus (~> 3.0) + parslet (~> 2.0) + tree_sitter_language_pack (>= 1.13.2, < 2.0) + version_gem (~> 1.1, >= 1.1.9) tree_sitter_language_pack (1.13.3-x86_64-linux) sorbet-runtime (~> 0.5) tsort (0.2.0) @@ -644,46 +395,26 @@ DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) appraisal2-rubocop (~> 1.0, >= 1.0.0) - ast-crispr! - ast-crispr-markdown-markly! - ast-crispr-ruby-prism! ast-merge! ast-merge-git! - ast-template! - bash-merge! benchmark (~> 0.5, >= 0.5.0) - binary-merge! bundler-audit (~> 0.9.3) cgi (~> 0.5) - citrus-toml-merge! - commonmarker-merge! debug (>= 1.1) - dotenv-merge! erb (~> 6.0, >= 6.0.6) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.0) - go-merge! irb (~> 1.17) json-merge! kettle-dev (~> 2.0, >= 2.2.25) - kettle-drift (~> 1.0, >= 1.0.6) - kettle-jem! kettle-soup-cover (~> 3.0, >= 3.0.3) kettle-test (~> 2.0, >= 2.0.9) kramdown (~> 2.5, >= 2.5.2) - kramdown-merge! kramdown-parser-gfm (~> 1.1) - markdown-merge! - markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) - parslet-toml-merge! - plain-merge! - prism-merge! - psych-merge! rake (~> 13.0) rbs (>= 3.0) - rbs-merge! rdoc (~> 6.11) reek (~> 6.5, >= 6.5.0) require_bench (~> 1.0, >= 1.0.4) @@ -694,27 +425,19 @@ DEPENDENCIES rubocop-on-rbs (~> 2.0, >= 2.0.0) rubocop-packaging (~> 0.6, >= 0.6.0) rubocop-ruby3_2 (~> 3.0, >= 3.0.6) - ruby-merge! ruby-progressbar (~> 1.13) - rust-merge! - smorg-rb! standard (~> 1.56, >= 1.56.0) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) - toml-merge! - tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) - typescript-merge! webrick (~> 1.9) yaml-converter (~> 0.2, >= 0.2.3) - yaml-merge! yard (~> 0.9, >= 0.9.45) yard-fence (~> 0.9, >= 0.9.6) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) yard-timekeeper (~> 0.2, >= 0.2.4) yard-yaml (~> 0.2, >= 0.2.3) - zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af @@ -722,31 +445,21 @@ CHECKSUMS appraisal2 (3.2.0) sha256=ccd0b767ac4060cd7af6d16747459b6990f49c39c7b4fb1f7d1146b1e97c492f appraisal2-rubocop (1.0.0) sha256=b71410fbb014befda5340605a605b7f6f3f012739baf0acc5b4351b592c3258d ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 - ast-crispr (7.1.0) - ast-crispr-markdown-markly (7.1.0) - ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) ast-merge-git (7.1.0) - ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 - bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd - binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 - citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 - commonmarker (2.9.0-x86_64-linux) - commonmarker-merge (7.1.0) concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 - dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -759,28 +472,21 @@ CHECKSUMS gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f - go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 json-merge (7.1.0) - kettle-dev (2.3.8) sha256=9d716ff21c660a730cb4e8d41e2e2f0630a28167a354b6e2924e242102aef72c - kettle-drift (1.0.6) - kettle-jem (7.1.0) + kettle-dev (2.3.9) kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f kettle-soup-cover (3.0.4) kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa - kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 - markdown-merge (7.1.0) - markly (0.16.0) - markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-x86_64-linux-gnu) sha256=379fae440b28915e3f19d752ce2dcf8465ed2b2fbefd2a7ca0dd497bc981a06a nomono (1.0.9) @@ -790,20 +496,15 @@ CHECKSUMS parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 - parslet-toml-merge (7.1.0) - plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 - prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 - psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 - rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb @@ -838,19 +539,15 @@ CHECKSUMS rubocop-rspec_rails (2.32.0) sha256=4a0d641c72f6ebb957534f539d9d0a62c47abd8ce0d0aeee1ef4701e892a9100 rubocop-ruby3_2 (3.0.7) sha256=f53dd6d286fb05186214fc6ec116783e7f837030918e8931c05de773e98f8466 rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 - ruby-merge (7.1.0) ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 - rust-merge (7.1.0) - service_actor (3.9.4) silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed - smorg-rb (7.1.0) sorbet-runtime (0.6.13351) sha256=f8fee17c6e3edf835dc6823d26afb9a7c8969c6710d1fabe2fb43f4e0c15c64f standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b @@ -865,20 +562,15 @@ CHECKSUMS timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.5) sha256=b852f924287ffb58a440856e862b056c8ad97e74b4b2526cee43e0771f40c25c - toml (0.3.0) - toml-merge (7.1.0) - toml-rb (4.2.0) tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 - typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 webrick (1.9.2) sha256=beb4a15fc474defed24a3bda4ffd88a490d517c9e4e6118c3edce59e45864131 yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 - yaml-merge (7.1.0) yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd @@ -886,7 +578,6 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 - zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH diff --git a/gems/ast-merge-git/Rakefile b/gems/ast-merge-git/Rakefile index 0ffccc3a4..d006f9ed7 100644 --- a/gems/ast-merge-git/Rakefile +++ b/gems/ast-merge-git/Rakefile @@ -130,23 +130,23 @@ end ### DUPLICATE DRIFT TASKS begin - require "kettle/drift" + require 'kettle/drift' Kettle::Drift.install_tasks rescue LoadError - desc("(stub) kettle:drift:check is unavailable") - task("kettle:drift:check") do + desc('(stub) kettle:drift:check is unavailable') + task('kettle:drift:check') do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc("(stub) kettle:drift:update is unavailable") - task("kettle:drift:update") do + desc('(stub) kettle:drift:update is unavailable') + task('kettle:drift:update') do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc("(stub) kettle:drift:force_update is unavailable") - task("kettle:drift:force_update") do + desc('(stub) kettle:drift:force_update is unavailable') + task('kettle:drift:force_update') do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc("(stub) kettle:drift is unavailable") - task("kettle:drift" => "kettle:drift:update") + desc('(stub) kettle:drift is unavailable') + task('kettle:drift' => 'kettle:drift:update') end ### TEMPLATING TASKS diff --git a/gems/ast-merge-git/gemfiles/modular/templating.gemfile b/gems/ast-merge-git/gemfiles/modular/templating.gemfile index 47138ffbb..a672de184 100644 --- a/gems/ast-merge-git/gemfiles/modular/templating.gemfile +++ b/gems/ast-merge-git/gemfiles/modular/templating.gemfile @@ -1,18 +1,18 @@ # frozen_string_literal: true -structuredmerge_remote = ENV.fetch("STRUCTUREDMERGE_DEV", "false").casecmp("false").zero? -kettle_remote = ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false").zero? +structuredmerge_remote = ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false').zero? +kettle_remote = ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? if structuredmerge_remote # Parser dependencies for released installs. - gem "tree_sitter_language_pack", "~> 1.13", ">= 1.13.3" + gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' # Merge recipes for released installs. - gem "kettle-jem", ">= 7.0" + gem 'kettle-jem', '>= 7.0' end if kettle_remote # Template/plugin checks for released installs. - gem "kettle-drift", "~> 1.0", ">= 1.0.6", require: false + gem 'kettle-drift', '~> 1.0', '>= 1.0.6', require: false end # Set STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local development with path-based dependencies. @@ -21,4 +21,4 @@ end # # Set KETTLE_DEV_DEV=/path/to/my for local development with Kettle plugin gems. # When false (default / CI), released Kettle plugin gems are used. -eval_gemfile "templating_local.gemfile" unless structuredmerge_remote && kettle_remote +eval_gemfile 'templating_local.gemfile' unless structuredmerge_remote && kettle_remote diff --git a/gems/ast-merge-git/gemfiles/modular/templating_local.gemfile b/gems/ast-merge-git/gemfiles/modular/templating_local.gemfile index 0378a0c5e..81c35f81e 100644 --- a/gems/ast-merge-git/gemfiles/modular/templating_local.gemfile +++ b/gems/ast-merge-git/gemfiles/modular/templating_local.gemfile @@ -12,21 +12,19 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] -nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) +nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] +nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == "nomono" } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - if nomono_locked - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] - end + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked end -Kernel.send(:gem, "nomono", *nomono_activation_requirements) -require "nomono/bundler" +Kernel.send(:gem, 'nomono', *nomono_activation_requirements) +require 'nomono/bundler' structuredmerge_local_gems = %w[ tree_haver @@ -69,25 +67,25 @@ structuredmerge_local_gems_to_eval = structuredmerge_local_gems - %w[ast-merge-g kettle_dev_local_gems_to_eval = kettle_dev_local_gems - %w[ast-merge-git] - declared_gems platform :mri do - if ENV.fetch("STRUCTUREDMERGE_DEV", "false").casecmp("false") != 0 + if ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false') != 0 eval_nomono_gems( gems: structuredmerge_local_gems_to_eval, - prefix: "STRUCTUREDMERGE", - path_env: "STRUCTUREDMERGE_DEV", - vendored_gems_env: "VENDORED_GEMS", - vendor_gem_dir_env: "VENDOR_GEM_DIR", - debug_env: "STRUCTUREDMERGE_DEBUG" + prefix: 'STRUCTUREDMERGE', + path_env: 'STRUCTUREDMERGE_DEV', + vendored_gems_env: 'VENDORED_GEMS', + vendor_gem_dir_env: 'VENDOR_GEM_DIR', + debug_env: 'STRUCTUREDMERGE_DEBUG' ) end - if ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false") != 0 + if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false') != 0 eval_nomono_gems( gems: kettle_dev_local_gems_to_eval, - prefix: "KETTLE_DEV", - path_env: "KETTLE_DEV_DEV", - vendored_gems_env: "VENDORED_GEMS", - vendor_gem_dir_env: "VENDOR_GEM_DIR", - debug_env: "KETTLE_DEV_DEBUG" + prefix: 'KETTLE_DEV', + path_env: 'KETTLE_DEV_DEV', + vendored_gems_env: 'VENDORED_GEMS', + vendor_gem_dir_env: 'VENDOR_GEM_DIR', + debug_env: 'KETTLE_DEV_DEBUG' ) end end diff --git a/gems/ast-merge-git/lib/ast/merge/git/version.rb b/gems/ast-merge-git/lib/ast/merge/git/version.rb index 9e917693b..ebc548487 100644 --- a/gems/ast-merge-git/lib/ast/merge/git/version.rb +++ b/gems/ast-merge-git/lib/ast/merge/git/version.rb @@ -4,7 +4,7 @@ module Ast module Merge module Git module Version - VERSION = "7.1.0" + VERSION = '7.1.0' end VERSION = Version::VERSION # Traditional Constant Location end diff --git a/gems/ast-merge-git/spec/spec_helper.rb b/gems/ast-merge-git/spec/spec_helper.rb index 62706556e..a6f48671d 100644 --- a/gems/ast-merge-git/spec/spec_helper.rb +++ b/gems/ast-merge-git/spec/spec_helper.rb @@ -8,7 +8,12 @@ # The rescue LoadError handles that scenario. begin require 'kettle-soup-cover' - require 'simplecov' if Kettle::Soup::Cover::DO_COV # `.simplecov` is run here! + if Kettle::Soup::Cover::DO_COV + # Requiring simplecov loads the project-local `.simplecov`. + require 'simplecov' + require 'kettle/soup/cover/config' + SimpleCov.start + end rescue LoadError => e # check the error message and re-raise when unexpected raise e unless e.message.include?('kettle') diff --git a/gems/bash-merge/.kettle-drift.lock b/gems/bash-merge/.kettle-drift.lock index 43dfedd67..7cc6a5131 100644 --- a/gems/bash-merge/.kettle-drift.lock +++ b/gems/bash-merge/.kettle-drift.lock @@ -1,10 +1,74 @@ { + "(direct_sibling_local ||\nENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?)": [ + { + "file": "Gemfile", + "lines": [ + 80, + 120 + ] + } + ], + ".find { |spec| spec.name == 'nomono' }\nnomono_locked = nomono_locked_spec &&": [ + { + "file": "Gemfile", + "lines": [ + 91, + 131 + ] + } + ], + "ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?)\ndirect_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV')": [ + { + "file": "Gemfile", + "lines": [ + 81, + 121 + ] + } + ], + "Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version)\nnomono_activation_requirements = [\"= #{nomono_locked_spec.version}\"] if nomono_locked": [ + { + "file": "Gemfile", + "lines": [ + 93, + 133 + ] + } + ], + "Kernel.send(:gem, 'nomono', *nomono_activation_requirements)\nrequire 'nomono/bundler'": [ + { + "file": "Gemfile", + "lines": [ + 96, + 136 + ] + } + ], + "direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV')\ndirect_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil)": [ + { + "file": "Gemfile", + "lines": [ + 82, + 122 + ] + } + ], "eval_nomono_gems(\ngems: direct_sibling_gems,": [ { "file": "Gemfile", "lines": [ 60, - 100 + 100, + 140 + ] + } + ], + "gems: direct_sibling_gems,\nprefix: 'STRUCTUREDMERGE',": [ + { + "file": "Gemfile", + "lines": [ + 101, + 141 ] } ], @@ -13,7 +77,17 @@ "file": "Gemfile", "lines": [ 43, - 87 + 87, + 127 + ] + } + ], + "if direct_sibling_dev_was_set\nENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original": [ + { + "file": "Gemfile", + "lines": [ + 110, + 150 ] } ], @@ -22,7 +96,8 @@ "file": "Gemfile", "lines": [ 35, - 79 + 79, + 119 ] } ], @@ -31,7 +106,17 @@ "file": "Gemfile", "lines": [ 69, - 109 + 109, + 149 + ] + } + ], + "nomono_activation_requirements = nomono_requirements\nnomono_lockfile = File.expand_path('Gemfile.lock', __dir__)": [ + { + "file": "Gemfile", + "lines": [ + 85, + 125 ] } ], @@ -40,7 +125,8 @@ "file": "Gemfile", "lines": [ 48, - 92 + 92, + 132 ] } ], @@ -49,7 +135,53 @@ "file": "Gemfile", "lines": [ 44, - 88 + 88, + 128 + ] + } + ], + "nomono_lockfile = File.expand_path('Gemfile.lock', __dir__)\nif File.file?(nomono_lockfile)": [ + { + "file": "Gemfile", + "lines": [ + 86, + 126 + ] + } + ], + "path_env: 'STRUCTUREDMERGE_DEV',\nroot: %w[src my structuredmerge]": [ + { + "file": "Gemfile", + "lines": [ + 103, + 143 + ] + } + ], + "prefix: 'STRUCTUREDMERGE',\npath_env: 'STRUCTUREDMERGE_DEV',": [ + { + "file": "Gemfile", + "lines": [ + 102, + 142 + ] + } + ], + "require 'nomono/bundler'\nENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local": [ + { + "file": "Gemfile", + "lines": [ + 97, + 137 + ] + } + ], + "rescue LoadError\nwarn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.'": [ + { + "file": "Gemfile", + "lines": [ + 106, + 146 ] } ] diff --git a/gems/bash-merge/Gemfile b/gems/bash-merge/Gemfile index 2cd91c5fd..94d3c1fce 100644 --- a/gems/bash-merge/Gemfile +++ b/gems/bash-merge/Gemfile @@ -6,7 +6,7 @@ # kettle-jem will then preserve content between those markers across template runs. # kettle-jem:unfreeze -source 'https://gem.coop' +source "https://gem.coop" git_source(:codeberg) { |repo_name| "https://codeberg.org/#{repo_name}" } git_source(:gitlab) { |repo_name| "https://gitlab.com/#{repo_name}" } @@ -19,18 +19,62 @@ git_source(:gitlab) { |repo_name| "https://gitlab.com/#{repo_name}" } gemspec # Local workspace dependency wiring for *_local.gemfile overrides -nomono_requirements = ['~> 1.0', '>= 1.0.8'] -gem 'nomono', *nomono_requirements, require: false # ruby >= 2.2 +nomono_requirements = ["~> 1.0", ">= 1.0.8"] +gem "nomono", *nomono_requirements, require: false # ruby >= 2.2 # Direct sibling dependencies (env-switched via STRUCTUREDMERGE_DEV) direct_sibling_gems = %w[ ast-merge tree_haver ] -direct_sibling_dev = ENV.fetch('STRUCTUREDMERGE_DEV', '') +direct_sibling_dev = ENV.fetch("STRUCTUREDMERGE_DEV", "") direct_sibling_local = !direct_sibling_dev.empty? && !%w[false 0 no off].include?(direct_sibling_dev.downcase) -direct_sibling_templating = ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? +direct_sibling_templating = ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? + +if direct_sibling_gems.any? && + (direct_sibling_local || + ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero?) + direct_sibling_dev_was_set = ENV.key?("STRUCTUREDMERGE_DEV") + direct_sibling_dev_original = ENV.fetch("STRUCTUREDMERGE_DEV", nil) + begin + nomono_activation_requirements = nomono_requirements + nomono_lockfile = File.expand_path("Gemfile.lock", __dir__) + if File.file?(nomono_lockfile) + nomono_locked_spec = Bundler::LockfileParser + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == "nomono" } + nomono_locked = nomono_locked_spec && + Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) + if nomono_locked + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] + end + end + Kernel.send(:gem, "nomono", *nomono_activation_requirements) + require "nomono/bundler" + if direct_sibling_templating && !direct_sibling_local + ENV["STRUCTUREDMERGE_DEV"] = File.expand_path("..", __dir__) + end + + eval_nomono_gems( + gems: direct_sibling_gems, + prefix: "STRUCTUREDMERGE", + path_env: "STRUCTUREDMERGE_DEV", + root: ["src", "my", "structuredmerge"] + ) + rescue LoadError + warn "Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies." + ensure + if direct_sibling_templating && !direct_sibling_local + if direct_sibling_dev_was_set + ENV["STRUCTUREDMERGE_DEV"] = direct_sibling_dev_original + else + ENV.delete("STRUCTUREDMERGE_DEV") + end + end + end +end if direct_sibling_gems.any? && (direct_sibling_local || @@ -113,28 +157,28 @@ if direct_sibling_gems.any? && end # Use released TSLP with the Ruby ABI platform-gem fix. -gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' +gem "tree_sitter_language_pack", "~> 1.13", ">= 1.13.3" # Templating (env-switched: STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local paths) -eval_gemfile 'gemfiles/modular/templating.gemfile' if ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? +eval_gemfile "gemfiles/modular/templating.gemfile" if ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? # Debugging -eval_gemfile 'gemfiles/modular/debug.gemfile' +eval_gemfile "gemfiles/modular/debug.gemfile" # Code Coverage (env-switched: KETTLE_DEV_DEV=true for local paths) -eval_gemfile 'gemfiles/modular/coverage.gemfile' +eval_gemfile "gemfiles/modular/coverage.gemfile" # Linting -eval_gemfile 'gemfiles/modular/style.gemfile' +eval_gemfile "gemfiles/modular/style.gemfile" # Documentation -eval_gemfile 'gemfiles/modular/documentation.gemfile' +eval_gemfile "gemfiles/modular/documentation.gemfile" # Optional -eval_gemfile 'gemfiles/modular/optional.gemfile' +eval_gemfile "gemfiles/modular/optional.gemfile" ### Std Lib Extracted Gems -eval_gemfile 'gemfiles/modular/x_std_libs.gemfile' +eval_gemfile "gemfiles/modular/x_std_libs.gemfile" # See unlocked_deps appraisal for more details on irb inclusion -gem 'irb', '~> 1.17' # ruby >= 2.7 +gem "irb", "~> 1.17" # ruby >= 2.7 diff --git a/gems/bash-merge/Gemfile.lock b/gems/bash-merge/Gemfile.lock index ce30ff59d..68b3d3074 100644 --- a/gems/bash-merge/Gemfile.lock +++ b/gems/bash-merge/Gemfile.lock @@ -6,6 +6,266 @@ PATH tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.14) +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly + specs: + ast-crispr-markdown-markly (7.1.0) + ast-crispr (= 7.1.0) + markly-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism + specs: + ast-crispr-ruby-prism (7.1.0) + ast-crispr (= 7.1.0) + prism-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr + specs: + ast-crispr (7.1.0) + ast-merge (= 7.1.0) + service_actor (~> 3.9) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git + specs: + ast-merge-git (7.1.0) + ast-merge (= 7.1.0) + json-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge + specs: + ast-merge (7.1.0) + benchmark + token-resolver (~> 2.0, >= 2.0.4) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template + specs: + ast-template (7.1.0) + ast-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge + specs: + binary-merge (7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge + specs: + citrus-toml-merge (7.1.0) + toml-merge (= 7.1.0) + toml-rb (~> 4.1) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge + specs: + commonmarker-merge (7.1.0) + commonmarker (~> 2.2) + markdown-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge + specs: + dotenv-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge + specs: + go-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge + specs: + json-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem + specs: + kettle-jem (7.1.0) + addressable (>= 2.8, < 3) + ast-crispr-markdown-markly (= 7.1.0) + ast-crispr-ruby-prism (= 7.1.0) + ast-merge (= 7.1.0) + bash-merge (= 7.1.0) + citrus-toml-merge (= 7.1.0) + commonmarker-merge (= 7.1.0) + dotenv-merge (= 7.1.0) + json-merge (= 7.1.0) + kettle-dev (~> 2.3, >= 2.3.5) + kettle-rb (~> 0.1, >= 0.1.4) + kramdown-merge (= 7.1.0) + markdown-merge (= 7.1.0) + markly-merge (= 7.1.0) + prism-merge (= 7.1.0) + psych-merge (= 7.1.0) + rbs (>= 3.10) + rbs-merge (= 7.1.0) + ruby-merge (= 7.1.0) + token-resolver (~> 2.0, >= 2.0.4) + toml-merge (= 7.1.0) + toml-rb (~> 4.2) + tree_haver (= 7.1.0) + yaml-merge (= 7.1.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge + specs: + kramdown-merge (7.1.0) + kramdown (~> 2.5) + markdown-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge + specs: + markdown-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge + specs: + markly-merge (7.1.0) + markdown-merge (= 7.1.0) + markly (~> 0.9) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge + specs: + parslet-toml-merge (7.1.0) + toml (~> 0.3) + toml-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge + specs: + plain-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge + specs: + prism-merge (7.1.0) + prism (~> 1.6) + ruby-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge + specs: + psych-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + yaml-merge (= 7.1.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge + specs: + rbs-merge (7.1.0) + ast-merge (= 7.1.0) + rbs (>= 3.10) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge + specs: + ruby-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge + specs: + rust-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb + specs: + smorg-rb (7.1.0) + ast-merge (= 7.1.0) + ast-merge-git (= 7.1.0) + diff-lcs (~> 1.5) + go-merge (= 7.1.0) + json-merge (= 7.1.0) + kettle-jem (= 7.1.0) + markly-merge (= 7.1.0) + plain-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge + specs: + toml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver + specs: + tree_haver (7.1.0) + citrus (~> 3.0) + parslet (~> 2.0) + tree_sitter_language_pack (>= 1.13.2, < 2.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge + specs: + typescript-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge + specs: + yaml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge + specs: + zip-merge (7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + GEM remote: https://gem.coop/ specs: @@ -21,11 +281,6 @@ GEM rubocop (>= 1.0) version_gem (~> 1.1, >= 1.1.14) ast (2.4.3) - ast-merge (7.1.0) - benchmark - token-resolver (~> 2.0, >= 2.0.4) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) backports (3.25.3) benchmark (0.5.0) bigdecimal (4.1.2) @@ -35,6 +290,7 @@ GEM cgi (0.5.2) citrus (3.0.2) cmdparse (3.0.7) + commonmarker (2.9.0-x86_64-linux) concurrent-ruby (1.3.8) date (3.5.1) debug (1.11.1) @@ -97,6 +353,8 @@ GEM kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) + kettle-drift (1.0.6) + version_gem (~> 1.1, >= 1.1.14) kettle-rb (0.1.5) kettle-soup-cover (3.0.4) kettle-wash (~> 0.1, >= 0.1.0) @@ -125,6 +383,7 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) + markly (0.16.0) mutex_m (0.3.0) nokogiri (1.19.4-aarch64-linux-gnu) racc (~> 1.4) @@ -287,6 +546,8 @@ GEM ruby-progressbar (1.13.0) ruby_engine (2.0.3) ruby_version (1.0.3) + service_actor (3.9.4) + zeitwerk (>= 1.0) silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) @@ -302,7 +563,7 @@ GEM simplecov (>= 0.4.1) simplecov_lcov_formatter (0.9.0) simplecov (>= 0.18) - sorbet-runtime (0.6.13347) + sorbet-runtime (0.6.13351) standard (1.56.0) language_server-protocol (~> 3.17.0.2) lint_roller (~> 1.0) @@ -341,11 +602,11 @@ GEM token-resolver (2.0.5) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.14) - tree_haver (7.1.0) - citrus (~> 3.0) - parslet (~> 2.0) - tree_sitter_language_pack (>= 1.13.2, < 2.0) - version_gem (~> 1.1, >= 1.1.9) + toml (0.3.0) + parslet (>= 1.8.0, < 3.0.0) + toml-rb (4.2.0) + citrus (~> 3.0, > 3.0) + racc (~> 1.7) tree_sitter_language_pack (1.13.3-aarch64-linux) sorbet-runtime (~> 0.5) tree_sitter_language_pack (1.13.3-arm64-darwin) @@ -400,24 +661,46 @@ DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.2, >= 3.2.0) appraisal2-rubocop (~> 1.0, >= 1.0.0) + ast-crispr! + ast-crispr-markdown-markly! + ast-crispr-ruby-prism! + ast-merge! + ast-merge-git! + ast-template! bash-merge! benchmark (~> 0.5, >= 0.5.0) + binary-merge! bundler-audit (~> 0.9.3) cgi (~> 0.5) + citrus-toml-merge! + commonmarker-merge! debug (>= 1.1) + dotenv-merge! erb (~> 6.0, >= 6.0.6) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.4) + go-merge! irb (~> 1.17) + json-merge! kettle-dev (~> 2.3, >= 2.3.7) + kettle-drift (~> 1.0, >= 1.0.6) + kettle-jem! kettle-soup-cover (~> 3.0, >= 3.0.3) kettle-test (~> 2.0, >= 2.0.12) kramdown (~> 2.5, >= 2.5.2) + kramdown-merge! kramdown-parser-gfm (~> 1.1) + markdown-merge! + markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) + parslet-toml-merge! + plain-merge! + prism-merge! + psych-merge! rake (~> 13.0) rbs (>= 3.0) + rbs-merge! rdoc (~> 6.11) reek (~> 6.5, >= 6.5.0) require_bench (~> 1.0, >= 1.0.4) @@ -428,20 +711,28 @@ DEPENDENCIES rubocop-on-rbs (~> 2.0, >= 2.0.0) rubocop-packaging (~> 0.6, >= 0.6.0) rubocop-ruby3_2 (~> 3.0, >= 3.0.6) + ruby-merge! ruby-progressbar (~> 1.13) + rust-merge! + smorg-rb! standard (~> 1.56, >= 1.56.0) stone_checksums (~> 1.0, >= 1.0.6) stringio (>= 3.0) + toml-merge! + tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) turbo_tests2 (~> 3.2, >= 3.2.0) + typescript-merge! webrick (~> 1.9) yaml-converter (~> 0.2, >= 0.2.3) + yaml-merge! yard (~> 0.9, >= 0.9.45) yard-fence (~> 0.9, >= 0.9.6) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) yard-timekeeper (~> 0.2, >= 0.2.4) yard-yaml (~> 0.2, >= 0.2.3) + zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af @@ -449,21 +740,31 @@ CHECKSUMS appraisal2 (3.2.0) sha256=ccd0b767ac4060cd7af6d16747459b6990f49c39c7b4fb1f7d1146b1e97c492f appraisal2-rubocop (1.0.0) sha256=b71410fbb014befda5340605a605b7f6f3f012739baf0acc5b4351b592c3258d ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 + ast-crispr (7.1.0) + ast-crispr-markdown-markly (7.1.0) + ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) + ast-merge-git (7.1.0) + ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd + binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 + citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 + commonmarker (2.9.0-x86_64-linux) + commonmarker-merge (7.1.0) concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 + dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -476,20 +777,28 @@ CHECKSUMS gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f + go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 + json-merge (7.1.0) kettle-dev (2.3.8) sha256=9d716ff21c660a730cb4e8d41e2e2f0630a28167a354b6e2924e242102aef72c + kettle-drift (1.0.6) + kettle-jem (7.1.0) kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f kettle-soup-cover (3.0.4) kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa + kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 + markdown-merge (7.1.0) + markly (0.16.0) + markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-aarch64-linux-gnu) sha256=1269fb644a6de405057a53dd5c762b1209b43ca7424f839454d3dbc677c31a8f nokogiri (1.19.4-aarch64-linux-musl) sha256=35c65b9ce72b3bb03207bdbe7067915019dc18c1b9b59139684bd6690fdd01af @@ -503,15 +812,20 @@ CHECKSUMS parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 + parslet-toml-merge (7.1.0) + plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 + prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 + psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 + rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb @@ -546,16 +860,20 @@ CHECKSUMS rubocop-rspec_rails (2.32.0) sha256=4a0d641c72f6ebb957534f539d9d0a62c47abd8ce0d0aeee1ef4701e892a9100 rubocop-ruby3_2 (3.0.7) sha256=f53dd6d286fb05186214fc6ec116783e7f837030918e8931c05de773e98f8466 rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 + ruby-merge (7.1.0) ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 + rust-merge (7.1.0) + service_actor (3.9.4) silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed - sorbet-runtime (0.6.13347) sha256=54e7221d9f4b63f58aec79f3043752a9ba7810347c6ae0d903531591cc2d5f01 + smorg-rb (7.1.0) + sorbet-runtime (0.6.13351) sha256=f8fee17c6e3edf835dc6823d26afb9a7c8969c6710d1fabe2fb43f4e0c15c64f standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b standard-performance (1.9.0) sha256=49483d31be448292951d80e5e67cdcb576c2502103c7b40aec6f1b6e9c88e3f2 @@ -569,17 +887,22 @@ CHECKSUMS timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.5) sha256=b852f924287ffb58a440856e862b056c8ad97e74b4b2526cee43e0771f40c25c + toml (0.3.0) + toml-merge (7.1.0) + toml-rb (4.2.0) tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-aarch64-linux) sha256=55ffc7c87868cb45658338363d9eba51b4a8b0259aa88e4de368d2bd1d52fea4 tree_sitter_language_pack (1.13.3-arm64-darwin) sha256=bc2498db605f212a1dbd2465ed3f65190d7da786f6ed5d30fcf958121aeb4a5c tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 + typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 webrick (1.9.2) sha256=beb4a15fc474defed24a3bda4ffd88a490d517c9e4e6118c3edce59e45864131 yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 + yaml-merge (7.1.0) yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd @@ -587,6 +910,7 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 + zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH diff --git a/gems/bash-merge/Rakefile b/gems/bash-merge/Rakefile index 056589299..3301f1a7e 100644 --- a/gems/bash-merge/Rakefile +++ b/gems/bash-merge/Rakefile @@ -130,23 +130,23 @@ end ### DUPLICATE DRIFT TASKS begin - require 'kettle/drift' + require "kettle/drift" Kettle::Drift.install_tasks rescue LoadError - desc('(stub) kettle:drift:check is unavailable') - task('kettle:drift:check') do + desc("(stub) kettle:drift:check is unavailable") + task("kettle:drift:check") do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc('(stub) kettle:drift:update is unavailable') - task('kettle:drift:update') do + desc("(stub) kettle:drift:update is unavailable") + task("kettle:drift:update") do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc('(stub) kettle:drift:force_update is unavailable') - task('kettle:drift:force_update') do + desc("(stub) kettle:drift:force_update is unavailable") + task("kettle:drift:force_update") do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc('(stub) kettle:drift is unavailable') - task('kettle:drift' => 'kettle:drift:update') + desc("(stub) kettle:drift is unavailable") + task("kettle:drift" => "kettle:drift:update") end ### TEMPLATING TASKS diff --git a/gems/bash-merge/gemfiles/modular/templating.gemfile b/gems/bash-merge/gemfiles/modular/templating.gemfile index a672de184..47138ffbb 100644 --- a/gems/bash-merge/gemfiles/modular/templating.gemfile +++ b/gems/bash-merge/gemfiles/modular/templating.gemfile @@ -1,18 +1,18 @@ # frozen_string_literal: true -structuredmerge_remote = ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false').zero? -kettle_remote = ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? +structuredmerge_remote = ENV.fetch("STRUCTUREDMERGE_DEV", "false").casecmp("false").zero? +kettle_remote = ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false").zero? if structuredmerge_remote # Parser dependencies for released installs. - gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' + gem "tree_sitter_language_pack", "~> 1.13", ">= 1.13.3" # Merge recipes for released installs. - gem 'kettle-jem', '>= 7.0' + gem "kettle-jem", ">= 7.0" end if kettle_remote # Template/plugin checks for released installs. - gem 'kettle-drift', '~> 1.0', '>= 1.0.6', require: false + gem "kettle-drift", "~> 1.0", ">= 1.0.6", require: false end # Set STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local development with path-based dependencies. @@ -21,4 +21,4 @@ end # # Set KETTLE_DEV_DEV=/path/to/my for local development with Kettle plugin gems. # When false (default / CI), released Kettle plugin gems are used. -eval_gemfile 'templating_local.gemfile' unless structuredmerge_remote && kettle_remote +eval_gemfile "templating_local.gemfile" unless structuredmerge_remote && kettle_remote diff --git a/gems/bash-merge/gemfiles/modular/templating_local.gemfile b/gems/bash-merge/gemfiles/modular/templating_local.gemfile index 1607637e0..c11a4162a 100644 --- a/gems/bash-merge/gemfiles/modular/templating_local.gemfile +++ b/gems/bash-merge/gemfiles/modular/templating_local.gemfile @@ -12,19 +12,21 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] -nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) +nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] +nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == "nomono" } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + if nomono_locked + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] + end end -Kernel.send(:gem, 'nomono', *nomono_activation_requirements) -require 'nomono/bundler' +Kernel.send(:gem, "nomono", *nomono_activation_requirements) +require "nomono/bundler" structuredmerge_local_gems = %w[ tree_haver @@ -67,25 +69,25 @@ structuredmerge_local_gems_to_eval = structuredmerge_local_gems - %w[bash-merge] kettle_dev_local_gems_to_eval = kettle_dev_local_gems - %w[bash-merge] - declared_gems platform :mri do - if ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false') != 0 + if ENV.fetch("STRUCTUREDMERGE_DEV", "false").casecmp("false") != 0 eval_nomono_gems( gems: structuredmerge_local_gems_to_eval, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - vendored_gems_env: 'VENDORED_GEMS', - vendor_gem_dir_env: 'VENDOR_GEM_DIR', - debug_env: 'STRUCTUREDMERGE_DEBUG' + prefix: "STRUCTUREDMERGE", + path_env: "STRUCTUREDMERGE_DEV", + vendored_gems_env: "VENDORED_GEMS", + vendor_gem_dir_env: "VENDOR_GEM_DIR", + debug_env: "STRUCTUREDMERGE_DEBUG" ) end - if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false') != 0 + if ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false") != 0 eval_nomono_gems( gems: kettle_dev_local_gems_to_eval, - prefix: 'KETTLE_DEV', - path_env: 'KETTLE_DEV_DEV', - vendored_gems_env: 'VENDORED_GEMS', - vendor_gem_dir_env: 'VENDOR_GEM_DIR', - debug_env: 'KETTLE_DEV_DEBUG' + prefix: "KETTLE_DEV", + path_env: "KETTLE_DEV_DEV", + vendored_gems_env: "VENDORED_GEMS", + vendor_gem_dir_env: "VENDOR_GEM_DIR", + debug_env: "KETTLE_DEV_DEBUG" ) end end diff --git a/gems/bash-merge/lib/bash/merge/version.rb b/gems/bash-merge/lib/bash/merge/version.rb index 55b28eb7d..54229c5dd 100644 --- a/gems/bash-merge/lib/bash/merge/version.rb +++ b/gems/bash-merge/lib/bash/merge/version.rb @@ -3,7 +3,7 @@ module Bash module Merge module Version - VERSION = '7.1.0' + VERSION = "7.1.0" end VERSION = Version::VERSION # Traditional Constant Location end diff --git a/gems/json-merge/Gemfile.lock b/gems/json-merge/Gemfile.lock index c3b631efa..a9abfe140 100644 --- a/gems/json-merge/Gemfile.lock +++ b/gems/json-merge/Gemfile.lock @@ -7,7 +7,39 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/ast-merge + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly + specs: + ast-crispr-markdown-markly (7.1.0) + ast-crispr (= 7.1.0) + markly-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism + specs: + ast-crispr-ruby-prism (7.1.0) + ast-crispr (= 7.1.0) + prism-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr + specs: + ast-crispr (7.1.0) + ast-merge (= 7.1.0) + service_actor (~> 3.9) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git + specs: + ast-merge-git (7.1.0) + ast-merge (= 7.1.0) + json-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge specs: ast-merge (7.1.0) benchmark @@ -16,7 +48,194 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/tree_haver + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template + specs: + ast-template (7.1.0) + ast-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge + specs: + bash-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge + specs: + binary-merge (7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge + specs: + citrus-toml-merge (7.1.0) + toml-merge (= 7.1.0) + toml-rb (~> 4.1) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge + specs: + commonmarker-merge (7.1.0) + commonmarker (~> 2.2) + markdown-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge + specs: + dotenv-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge + specs: + go-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem + specs: + kettle-jem (7.1.0) + addressable (>= 2.8, < 3) + ast-crispr-markdown-markly (= 7.1.0) + ast-crispr-ruby-prism (= 7.1.0) + ast-merge (= 7.1.0) + bash-merge (= 7.1.0) + citrus-toml-merge (= 7.1.0) + commonmarker-merge (= 7.1.0) + dotenv-merge (= 7.1.0) + json-merge (= 7.1.0) + kettle-dev (~> 2.3, >= 2.3.5) + kettle-rb (~> 0.1, >= 0.1.4) + kramdown-merge (= 7.1.0) + markdown-merge (= 7.1.0) + markly-merge (= 7.1.0) + prism-merge (= 7.1.0) + psych-merge (= 7.1.0) + rbs (>= 3.10) + rbs-merge (= 7.1.0) + ruby-merge (= 7.1.0) + token-resolver (~> 2.0, >= 2.0.4) + toml-merge (= 7.1.0) + toml-rb (~> 4.2) + tree_haver (= 7.1.0) + yaml-merge (= 7.1.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge + specs: + kramdown-merge (7.1.0) + kramdown (~> 2.5) + markdown-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge + specs: + markdown-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge + specs: + markly-merge (7.1.0) + markdown-merge (= 7.1.0) + markly (~> 0.9) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge + specs: + parslet-toml-merge (7.1.0) + toml (~> 0.3) + toml-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge + specs: + plain-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge + specs: + prism-merge (7.1.0) + prism (~> 1.6) + ruby-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge + specs: + psych-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + yaml-merge (= 7.1.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge + specs: + rbs-merge (7.1.0) + ast-merge (= 7.1.0) + rbs (>= 3.10) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge + specs: + ruby-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge + specs: + rust-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb + specs: + smorg-rb (7.1.0) + ast-merge (= 7.1.0) + ast-merge-git (= 7.1.0) + diff-lcs (~> 1.5) + go-merge (= 7.1.0) + json-merge (= 7.1.0) + kettle-jem (= 7.1.0) + markly-merge (= 7.1.0) + plain-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge + specs: + toml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver specs: tree_haver (7.1.0) citrus (~> 3.0) @@ -24,6 +243,29 @@ PATH tree_sitter_language_pack (>= 1.13.2, < 2.0) version_gem (~> 1.1, >= 1.1.9) +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge + specs: + typescript-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge + specs: + yaml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge + specs: + zip-merge (7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + GEM remote: https://gem.coop/ specs: @@ -48,6 +290,11 @@ GEM cgi (0.5.2) citrus (3.0.2) cmdparse (3.0.7) + commonmarker (2.9.0-aarch64-linux) + commonmarker (2.9.0-aarch64-linux-musl) + commonmarker (2.9.0-arm64-darwin) + commonmarker (2.9.0-x86_64-linux) + commonmarker (2.9.0-x86_64-linux-musl) concurrent-ruby (1.3.8) date (3.5.1) debug (1.11.1) @@ -110,6 +357,8 @@ GEM kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) + kettle-drift (1.0.6) + version_gem (~> 1.1, >= 1.1.14) kettle-rb (0.1.5) kettle-soup-cover (3.0.4) kettle-wash (~> 0.1, >= 0.1.0) @@ -138,6 +387,7 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) + markly (0.16.0) mutex_m (0.3.0) nokogiri (1.19.4-aarch64-linux-gnu) racc (~> 1.4) @@ -300,6 +550,8 @@ GEM ruby-progressbar (1.13.0) ruby_engine (2.0.3) ruby_version (1.0.3) + service_actor (3.9.4) + zeitwerk (>= 1.0) silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) @@ -354,6 +606,11 @@ GEM token-resolver (2.0.5) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.14) + toml (0.3.0) + parslet (>= 1.8.0, < 3.0.0) + toml-rb (4.2.0) + citrus (~> 3.0, > 3.0) + racc (~> 1.7) tree_sitter_language_pack (1.13.3-aarch64-linux) sorbet-runtime (~> 0.5) tree_sitter_language_pack (1.13.3-arm64-darwin) @@ -412,25 +669,46 @@ DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) appraisal2-rubocop (~> 1.0, >= 1.0.0) + ast-crispr! + ast-crispr-markdown-markly! + ast-crispr-ruby-prism! ast-merge! + ast-merge-git! + ast-template! + bash-merge! benchmark (~> 0.5, >= 0.5.0) + binary-merge! bundler-audit (~> 0.9.3) cgi (~> 0.5) + citrus-toml-merge! + commonmarker-merge! debug (>= 1.1) + dotenv-merge! erb (~> 6.0, >= 6.0.6) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.0) + go-merge! irb (~> 1.17) json-merge! kettle-dev (~> 2.0, >= 2.2.25) + kettle-drift (~> 1.0, >= 1.0.6) + kettle-jem! kettle-soup-cover (~> 3.0, >= 3.0.3) kettle-test (~> 2.0, >= 2.0.9) kramdown (~> 2.5, >= 2.5.2) + kramdown-merge! kramdown-parser-gfm (~> 1.1) + markdown-merge! + markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) + parslet-toml-merge! + plain-merge! + prism-merge! + psych-merge! rake (~> 13.0) rbs (>= 3.0) + rbs-merge! rdoc (~> 6.11) reek (~> 6.5, >= 6.5.0) require_bench (~> 1.0, >= 1.0.4) @@ -441,20 +719,27 @@ DEPENDENCIES rubocop-on-rbs (~> 2.0, >= 2.0.0) rubocop-packaging (~> 0.6, >= 0.6.0) rubocop-ruby3_2 (~> 3.0, >= 3.0.6) + ruby-merge! ruby-progressbar (~> 1.13) + rust-merge! + smorg-rb! standard (~> 1.56, >= 1.56.0) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) + toml-merge! tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) + typescript-merge! webrick (~> 1.9) yaml-converter (~> 0.2, >= 0.2.3) + yaml-merge! yard (~> 0.9, >= 0.9.45) yard-fence (~> 0.9, >= 0.9.6) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) yard-timekeeper (~> 0.2, >= 0.2.4) yard-yaml (~> 0.2, >= 0.2.3) + zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af @@ -462,20 +747,35 @@ CHECKSUMS appraisal2 (3.2.0) sha256=ccd0b767ac4060cd7af6d16747459b6990f49c39c7b4fb1f7d1146b1e97c492f appraisal2-rubocop (1.0.0) sha256=b71410fbb014befda5340605a605b7f6f3f012739baf0acc5b4351b592c3258d ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 + ast-crispr (7.1.0) + ast-crispr-markdown-markly (7.1.0) + ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) + ast-merge-git (7.1.0) + ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 + bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd + binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 + citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 + commonmarker (2.9.0-aarch64-linux) sha256=e2b4aadb9a2cfa4e206582641ce3a49465549ac1ed4c289fdd63b78d8f24579c + commonmarker (2.9.0-aarch64-linux-musl) sha256=1cf4d2821f2a7e64945f1ed7c4eeced586fdb27ea7fe7337788802cf8f57cfca + commonmarker (2.9.0-arm64-darwin) sha256=1748dbfa4f5813b0d2a14bb4bbfa65a4ec293aa1c825016d60029ee0e132b046 + commonmarker (2.9.0-x86_64-linux) sha256=8cfe92970eef585a19ddf6613224b91cab64d6029834661bda801f877c9c7f43 + commonmarker (2.9.0-x86_64-linux-musl) sha256=293921398b839f79ceaf55010e061357e34f053822c3b003cd0be6686176335e + commonmarker-merge (7.1.0) concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 + dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -488,21 +788,28 @@ CHECKSUMS gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f + go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 json-merge (7.1.0) kettle-dev (2.3.9) + kettle-drift (1.0.6) sha256=46eda08fa4411d1f3c6682a95eef1c9df4e94611b3949f49d4c7b43c0ed356a3 + kettle-jem (7.1.0) kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f kettle-soup-cover (3.0.4) kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa + kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 + markdown-merge (7.1.0) + markly (0.16.0) sha256=6f70d79e385b1efc9e171f74c81628826259039fe6c778e03c3924c71dac5511 + markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-aarch64-linux-gnu) sha256=1269fb644a6de405057a53dd5c762b1209b43ca7424f839454d3dbc677c31a8f nokogiri (1.19.4-aarch64-linux-musl) sha256=35c65b9ce72b3bb03207bdbe7067915019dc18c1b9b59139684bd6690fdd01af @@ -516,15 +823,20 @@ CHECKSUMS parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 + parslet-toml-merge (7.1.0) + plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 + prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 + psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 + rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb @@ -559,15 +871,19 @@ CHECKSUMS rubocop-rspec_rails (2.32.0) sha256=4a0d641c72f6ebb957534f539d9d0a62c47abd8ce0d0aeee1ef4701e892a9100 rubocop-ruby3_2 (3.0.7) sha256=f53dd6d286fb05186214fc6ec116783e7f837030918e8931c05de773e98f8466 rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 + ruby-merge (7.1.0) ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 + rust-merge (7.1.0) + service_actor (3.9.4) sha256=e63b523630b9a7e62959b2a90113b08d2565b5de9c148557b281ef847c9539ce silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed + smorg-rb (7.1.0) sorbet-runtime (0.6.13351) sha256=f8fee17c6e3edf835dc6823d26afb9a7c8969c6710d1fabe2fb43f4e0c15c64f standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b @@ -582,17 +898,22 @@ CHECKSUMS timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.5) sha256=b852f924287ffb58a440856e862b056c8ad97e74b4b2526cee43e0771f40c25c + toml (0.3.0) sha256=0a91d0f76a9036e84e44f95693b12f58d358c1df3ac8e3b5271f2056ecc6e4b9 + toml-merge (7.1.0) + toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-aarch64-linux) sha256=55ffc7c87868cb45658338363d9eba51b4a8b0259aa88e4de368d2bd1d52fea4 tree_sitter_language_pack (1.13.3-arm64-darwin) sha256=bc2498db605f212a1dbd2465ed3f65190d7da786f6ed5d30fcf958121aeb4a5c tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 + typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 webrick (1.9.2) sha256=beb4a15fc474defed24a3bda4ffd88a490d517c9e4e6118c3edce59e45864131 yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 + yaml-merge (7.1.0) yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd @@ -600,6 +921,7 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 + zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH diff --git a/gems/plain-merge/.rubocop_gradual.lock b/gems/plain-merge/.rubocop_gradual.lock deleted file mode 100644 index c6e4bae1d..000000000 --- a/gems/plain-merge/.rubocop_gradual.lock +++ /dev/null @@ -1,120 +0,0 @@ -{ - ".simplecov:3133826638": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "Rakefile:4149951629": [ - [18, 121, 17, "Layout/LineLength: Line is too long. [137/120]", 174264873], - [79, 3, 1023, "Metrics/BlockLength: Block has too many lines. [32/25]", 54868638], - [163, 121, 22, "Layout/LineLength: Line is too long. [142/120]", 1367093088], - [166, 121, 18, "Layout/LineLength: Line is too long. [138/120]", 3881946477] - ], - "gemfiles/modular/benchmark/r4/v0.5.gemfile:3644720371": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/benchmark/vHEAD.gemfile:2838879269": [ - [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/cgi/r4/v0.5.gemfile:367169322": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] - ], - "gemfiles/modular/cgi/vHEAD.gemfile:2729540777": [ - [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] - ], - "gemfiles/modular/erb/r2/v3.0.gemfile:1688285565": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] - ], - "gemfiles/modular/erb/r3/v5.0.gemfile:2394062339": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] - ], - "gemfiles/modular/erb/r4/v5.0.gemfile:2394062339": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] - ], - "gemfiles/modular/erb/vHEAD.gemfile:981929959": [ - [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/mutex_m/r2/v0.3.gemfile:4055275004": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/mutex_m/r3/v0.3.gemfile:4055275004": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/mutex_m/r4/v0.3.gemfile:4055275004": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/mutex_m/vHEAD.gemfile:556854763": [ - [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/rspec.gemfile:2263543889": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] - ], - "gemfiles/modular/stringio/r2/v3.0.gemfile:821604304": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/stringio/r3/v3.0.gemfile:821604304": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/stringio/r4/v3.0.gemfile:821604304": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/stringio/vHEAD.gemfile:1045839691": [ - [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/webrick/r4/v1.9.gemfile:3092661193": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] - ], - "gemfiles/modular/webrick/vHEAD.gemfile:3867684682": [ - [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] - ], - "gemfiles/modular/x_std_libs.gemfile:2324400122": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/x_std_libs/r2/libs.gemfile:36276542": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] - ], - "gemfiles/modular/x_std_libs/r3/libs.gemfile:4030570297": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] - ], - "gemfiles/modular/x_std_libs/r4/libs.gemfile:732451732": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] - ], - "gemfiles/modular/x_std_libs/vHEAD.gemfile:2390363993": [ - [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] - ], - "lib/plain-merge.rb:619298015": [ - [1, 1, 0, "Naming/FileName: The name of this source file (`plain-merge.rb`) should use snake_case.", 5381] - ], - "lib/plain/merge.rb:3584995729": [ - [9, 3, 12, "Style/Documentation: Missing top-level documentation comment for `module Plain::Merge`.", 2866359175], - [9, 3, 7932, "Metrics/ModuleLength: Module has too many lines. [211/100]", 719656966], - [42, 5, 645, "Metrics/MethodLength: Method has too many lines. [21/10]", 3773389417], - [69, 5, 513, "Metrics/AbcSize: Assignment Branch Condition size for `similarity_score` is too high. [<9, 17, 3> 19.47/17]", 594433443], - [69, 5, 513, "Metrics/MethodLength: Method has too many lines. [12/10]", 594433443], - [87, 9, 10, "Naming/PredicatePrefix: Rename `is_similar` to `similar?`.", 1730577729], - [96, 5, 2163, "Metrics/AbcSize: Assignment Branch Condition size for `match_text_blocks` is too high. [<25, 36, 16> 46.66/17]", 1824707567], - [96, 5, 2163, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `match_text_blocks` is too high. [14/7]", 1824707567], - [96, 5, 2163, "Metrics/MethodLength: Method has too many lines. [50/10]", 1824707567], - [96, 5, 2163, "Metrics/PerceivedComplexity: Perceived complexity for `match_text_blocks` is too high. [14/8]", 1824707567], - [119, 7, 1032, "Style/CombinableLoops: Combine this loop with the previous loop.", 2654397768], - [158, 5, 683, "Metrics/AbcSize: Assignment Branch Condition size for `merge_text` is too high. [<11, 16, 4> 19.82/17]", 3448903566], - [158, 5, 683, "Metrics/MethodLength: Method has too many lines. [14/10]", 3448903566], - [178, 5, 633, "Metrics/AbcSize: Assignment Branch Condition size for `refined_text_similarity` is too high. [<3, 17, 0> 17.26/17]", 2185070085], - [208, 5, 700, "Metrics/AbcSize: Assignment Branch Condition size for `levenshtein_distance` is too high. [<8, 31, 8> 33/17]", 1827550752], - [208, 5, 700, "Metrics/MethodLength: Method has too many lines. [18/10]", 1827550752] - ], - "plain-merge.gemspec:3762840848": [ - [128, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 2821357214], - [143, 121, 50, "Layout/LineLength: Line is too long. [170/120]", 3888612416], - [144, 121, 29, "Layout/LineLength: Line is too long. [149/120]", 981994949], - [151, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 4229808912] - ], - "spec/fixtures_integration_spec.rb:922433761": [ - [3, 1, 3550, "Metrics/BlockLength: Block has too many lines. [77/25]", 4225834063] - ] -} diff --git a/gems/plain-merge/.simplecov b/gems/plain-merge/.simplecov index 2d9a6acda..ce73cbcb7 100644 --- a/gems/plain-merge/.simplecov +++ b/gems/plain-merge/.simplecov @@ -4,15 +4,11 @@ # plain-merge will then preserve content between those markers across template runs. # kettle-jem:unfreeze -require 'kettle/soup/cover/config' - # Minimum coverage thresholds are set by kettle-soup-cover. # They are controlled by ENV variables loaded by `mise` from `mise.toml` # (with optional machine-local overrides in `.env.local`). # If the values for minimum coverage need to change, they should be changed both there, # and in 2 places in .github/workflows/coverage.yml. -SimpleCov.start do - track_files 'lib/**/*.rb' - track_files 'lib/**/*.rake' - track_files 'exe/*.rb' +SimpleCov.configure do + cover "lib/**/*.rb", "lib/**/*.rake", "exe/*.rb" end diff --git a/gems/plain-merge/Gemfile.lock b/gems/plain-merge/Gemfile.lock index 969316723..58f9efa21 100644 --- a/gems/plain-merge/Gemfile.lock +++ b/gems/plain-merge/Gemfile.lock @@ -6,38 +6,6 @@ PATH tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly - specs: - ast-crispr-markdown-markly (7.1.0) - ast-crispr (= 7.1.0) - markly-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism - specs: - ast-crispr-ruby-prism (7.1.0) - ast-crispr (= 7.1.0) - prism-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr - specs: - ast-crispr (7.1.0) - ast-merge (= 7.1.0) - service_actor (~> 3.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git - specs: - ast-merge-git (7.1.0) - ast-merge (= 7.1.0) - json-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - PATH remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge specs: @@ -47,193 +15,6 @@ PATH tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template - specs: - ast-template (7.1.0) - ast-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge - specs: - bash-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge - specs: - binary-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge - specs: - citrus-toml-merge (7.1.0) - toml-merge (= 7.1.0) - toml-rb (~> 4.1) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge - specs: - commonmarker-merge (7.1.0) - commonmarker (~> 2.2) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge - specs: - dotenv-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge - specs: - go-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge - specs: - json-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem - specs: - kettle-jem (7.1.0) - addressable (>= 2.8, < 3) - ast-crispr-markdown-markly (= 7.1.0) - ast-crispr-ruby-prism (= 7.1.0) - ast-merge (= 7.1.0) - bash-merge (= 7.1.0) - citrus-toml-merge (= 7.1.0) - commonmarker-merge (= 7.1.0) - dotenv-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-dev (~> 2.3, >= 2.3.5) - kettle-rb (~> 0.1, >= 0.1.4) - kramdown-merge (= 7.1.0) - markdown-merge (= 7.1.0) - markly-merge (= 7.1.0) - prism-merge (= 7.1.0) - psych-merge (= 7.1.0) - rbs (>= 3.10) - rbs-merge (= 7.1.0) - ruby-merge (= 7.1.0) - token-resolver (~> 2.0, >= 2.0.4) - toml-merge (= 7.1.0) - toml-rb (~> 4.2) - tree_haver (= 7.1.0) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge - specs: - kramdown-merge (7.1.0) - kramdown (~> 2.5) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge - specs: - markdown-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge - specs: - markly-merge (7.1.0) - markdown-merge (= 7.1.0) - markly (~> 0.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge - specs: - parslet-toml-merge (7.1.0) - toml (~> 0.3) - toml-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge - specs: - prism-merge (7.1.0) - prism (~> 1.6) - ruby-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge - specs: - psych-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge - specs: - rbs-merge (7.1.0) - ast-merge (= 7.1.0) - rbs (>= 3.10) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge - specs: - ruby-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge - specs: - rust-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb - specs: - smorg-rb (7.1.0) - ast-merge (= 7.1.0) - ast-merge-git (= 7.1.0) - diff-lcs (~> 1.5) - go-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-jem (= 7.1.0) - markly-merge (= 7.1.0) - plain-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge - specs: - toml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - PATH remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver specs: @@ -243,29 +24,6 @@ PATH tree_sitter_language_pack (>= 1.13.2, < 2.0) version_gem (~> 1.1, >= 1.1.9) -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge - specs: - typescript-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge - specs: - yaml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge - specs: - zip-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - GEM remote: https://gem.coop/ specs: @@ -290,11 +48,6 @@ GEM cgi (0.5.2) citrus (3.0.2) cmdparse (3.0.7) - commonmarker (2.9.0-aarch64-linux) - commonmarker (2.9.0-aarch64-linux-musl) - commonmarker (2.9.0-arm64-darwin) - commonmarker (2.9.0-x86_64-linux) - commonmarker (2.9.0-x86_64-linux-musl) concurrent-ruby (1.3.8) date (3.5.1) debug (1.11.1) @@ -357,8 +110,6 @@ GEM kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) - kettle-drift (1.0.6) - version_gem (~> 1.1, >= 1.1.14) kettle-rb (0.1.5) kettle-soup-cover (3.0.4) kettle-wash (~> 0.1, >= 0.1.0) @@ -387,7 +138,6 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) - markly (0.16.0) mutex_m (0.3.0) nokogiri (1.19.4-aarch64-linux-gnu) racc (~> 1.4) @@ -550,8 +300,6 @@ GEM ruby-progressbar (1.13.0) ruby_engine (2.0.3) ruby_version (1.0.3) - service_actor (3.9.4) - zeitwerk (>= 1.0) silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) @@ -567,7 +315,7 @@ GEM simplecov (>= 0.4.1) simplecov_lcov_formatter (0.9.0) simplecov (>= 0.18) - sorbet-runtime (0.6.13347) + sorbet-runtime (0.6.13351) standard (1.56.0) language_server-protocol (~> 3.17.0.2) lint_roller (~> 1.0) @@ -606,11 +354,6 @@ GEM token-resolver (2.0.5) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.14) - toml (0.3.0) - parslet (>= 1.8.0, < 3.0.0) - toml-rb (4.2.0) - citrus (~> 3.0, > 3.0) - racc (~> 1.7) tree_sitter_language_pack (1.13.3-aarch64-linux) sorbet-runtime (~> 0.5) tree_sitter_language_pack (1.13.3-arm64-darwin) @@ -665,46 +408,25 @@ DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) appraisal2-rubocop (~> 1.0, >= 1.0.0) - ast-crispr! - ast-crispr-markdown-markly! - ast-crispr-ruby-prism! ast-merge! - ast-merge-git! - ast-template! - bash-merge! benchmark (~> 0.5, >= 0.5.0) - binary-merge! bundler-audit (~> 0.9.3) cgi (~> 0.5) - citrus-toml-merge! - commonmarker-merge! debug (>= 1.1) - dotenv-merge! erb (~> 6.0, >= 6.0.6) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.0) - go-merge! irb (~> 1.17) - json-merge! kettle-dev (~> 2.0, >= 2.2.25) - kettle-drift (~> 1.0, >= 1.0.6) - kettle-jem! kettle-soup-cover (~> 3.0, >= 3.0.3) kettle-test (~> 2.0, >= 2.0.9) kramdown (~> 2.5, >= 2.5.2) - kramdown-merge! kramdown-parser-gfm (~> 1.1) - markdown-merge! - markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) - parslet-toml-merge! plain-merge! - prism-merge! - psych-merge! rake (~> 13.0) rbs (>= 3.0) - rbs-merge! rdoc (~> 6.11) reek (~> 6.5, >= 6.5.0) require_bench (~> 1.0, >= 1.0.4) @@ -715,27 +437,20 @@ DEPENDENCIES rubocop-on-rbs (~> 2.0, >= 2.0.0) rubocop-packaging (~> 0.6, >= 0.6.0) rubocop-ruby3_2 (~> 3.0, >= 3.0.6) - ruby-merge! ruby-progressbar (~> 1.13) - rust-merge! - smorg-rb! standard (~> 1.56, >= 1.56.0) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) - toml-merge! tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) - typescript-merge! webrick (~> 1.9) yaml-converter (~> 0.2, >= 0.2.3) - yaml-merge! yard (~> 0.9, >= 0.9.45) yard-fence (~> 0.9, >= 0.9.6) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) yard-timekeeper (~> 0.2, >= 0.2.4) yard-yaml (~> 0.2, >= 0.2.3) - zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af @@ -743,35 +458,20 @@ CHECKSUMS appraisal2 (3.2.0) sha256=ccd0b767ac4060cd7af6d16747459b6990f49c39c7b4fb1f7d1146b1e97c492f appraisal2-rubocop (1.0.0) sha256=b71410fbb014befda5340605a605b7f6f3f012739baf0acc5b4351b592c3258d ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 - ast-crispr (7.1.0) - ast-crispr-markdown-markly (7.1.0) - ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) - ast-merge-git (7.1.0) - ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 - bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd - binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 - citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 - commonmarker (2.9.0-aarch64-linux) sha256=e2b4aadb9a2cfa4e206582641ce3a49465549ac1ed4c289fdd63b78d8f24579c - commonmarker (2.9.0-aarch64-linux-musl) sha256=1cf4d2821f2a7e64945f1ed7c4eeced586fdb27ea7fe7337788802cf8f57cfca - commonmarker (2.9.0-arm64-darwin) sha256=1748dbfa4f5813b0d2a14bb4bbfa65a4ec293aa1c825016d60029ee0e132b046 - commonmarker (2.9.0-x86_64-linux) sha256=8cfe92970eef585a19ddf6613224b91cab64d6029834661bda801f877c9c7f43 - commonmarker (2.9.0-x86_64-linux-musl) sha256=293921398b839f79ceaf55010e061357e34f053822c3b003cd0be6686176335e - commonmarker-merge (7.1.0) concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 - dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -784,28 +484,20 @@ CHECKSUMS gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f - go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 - json-merge (7.1.0) kettle-dev (2.3.8) sha256=9d716ff21c660a730cb4e8d41e2e2f0630a28167a354b6e2924e242102aef72c - kettle-drift (1.0.6) sha256=46eda08fa4411d1f3c6682a95eef1c9df4e94611b3949f49d4c7b43c0ed356a3 - kettle-jem (7.1.0) kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f kettle-soup-cover (3.0.4) kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa - kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 - markdown-merge (7.1.0) - markly (0.16.0) sha256=6f70d79e385b1efc9e171f74c81628826259039fe6c778e03c3924c71dac5511 - markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-aarch64-linux-gnu) sha256=1269fb644a6de405057a53dd5c762b1209b43ca7424f839454d3dbc677c31a8f nokogiri (1.19.4-aarch64-linux-musl) sha256=35c65b9ce72b3bb03207bdbe7067915019dc18c1b9b59139684bd6690fdd01af @@ -819,20 +511,16 @@ CHECKSUMS parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 - parslet-toml-merge (7.1.0) plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 - prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 - psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 - rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb @@ -867,20 +555,16 @@ CHECKSUMS rubocop-rspec_rails (2.32.0) sha256=4a0d641c72f6ebb957534f539d9d0a62c47abd8ce0d0aeee1ef4701e892a9100 rubocop-ruby3_2 (3.0.7) sha256=f53dd6d286fb05186214fc6ec116783e7f837030918e8931c05de773e98f8466 rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 - ruby-merge (7.1.0) ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 - rust-merge (7.1.0) - service_actor (3.9.4) sha256=e63b523630b9a7e62959b2a90113b08d2565b5de9c148557b281ef847c9539ce silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed - smorg-rb (7.1.0) - sorbet-runtime (0.6.13347) sha256=54e7221d9f4b63f58aec79f3043752a9ba7810347c6ae0d903531591cc2d5f01 + sorbet-runtime (0.6.13351) sha256=f8fee17c6e3edf835dc6823d26afb9a7c8969c6710d1fabe2fb43f4e0c15c64f standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b standard-performance (1.9.0) sha256=49483d31be448292951d80e5e67cdcb576c2502103c7b40aec6f1b6e9c88e3f2 @@ -894,22 +578,17 @@ CHECKSUMS timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.5) sha256=b852f924287ffb58a440856e862b056c8ad97e74b4b2526cee43e0771f40c25c - toml (0.3.0) sha256=0a91d0f76a9036e84e44f95693b12f58d358c1df3ac8e3b5271f2056ecc6e4b9 - toml-merge (7.1.0) - toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-aarch64-linux) sha256=55ffc7c87868cb45658338363d9eba51b4a8b0259aa88e4de368d2bd1d52fea4 tree_sitter_language_pack (1.13.3-arm64-darwin) sha256=bc2498db605f212a1dbd2465ed3f65190d7da786f6ed5d30fcf958121aeb4a5c tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 - typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 webrick (1.9.2) sha256=beb4a15fc474defed24a3bda4ffd88a490d517c9e4e6118c3edce59e45864131 yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 - yaml-merge (7.1.0) yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd @@ -917,7 +596,6 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 - zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH diff --git a/gems/plain-merge/bin/yard b/gems/plain-merge/bin/yard index 5d516ad6f..a7e8b6eed 100755 --- a/gems/plain-merge/bin/yard +++ b/gems/plain-merge/bin/yard @@ -12,4 +12,4 @@ # `yard` / `bin/yard`. Keep this binstub as a handoff to the task so # humans and tools that reach for `bin/yard` still run the full docs # workflow with post-processing hooks. -exec('bundle', 'exec', 'rake', 'yard') +exec("bundle", "exec", "rake", "yard") diff --git a/gems/plain-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile b/gems/plain-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile index b8392fab0..dec650815 100644 --- a/gems/plain-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile +++ b/gems/plain-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.1 -gem 'benchmark', '~> 0.5', '>= 0.5.0' # Removed from Std Lib in Ruby 4.0 +gem "benchmark", "~> 0.5", ">= 0.5.0" # Removed from Std Lib in Ruby 4.0 diff --git a/gems/plain-merge/gemfiles/modular/benchmark/vHEAD.gemfile b/gems/plain-merge/gemfiles/modular/benchmark/vHEAD.gemfile index af214aafa..e1eb20c5e 100644 --- a/gems/plain-merge/gemfiles/modular/benchmark/vHEAD.gemfile +++ b/gems/plain-merge/gemfiles/modular/benchmark/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.1 -gem 'benchmark', github: 'ruby/benchmark', branch: 'master' +gem "benchmark", github: "ruby/benchmark", branch: "master" diff --git a/gems/plain-merge/gemfiles/modular/cgi/r4/v0.5.gemfile b/gems/plain-merge/gemfiles/modular/cgi/r4/v0.5.gemfile index 17ad97260..19ed967c3 100644 --- a/gems/plain-merge/gemfiles/modular/cgi/r4/v0.5.gemfile +++ b/gems/plain-merge/gemfiles/modular/cgi/r4/v0.5.gemfile @@ -1 +1 @@ -gem 'cgi', '~> 0.5' +gem "cgi", "~> 0.5" diff --git a/gems/plain-merge/gemfiles/modular/cgi/vHEAD.gemfile b/gems/plain-merge/gemfiles/modular/cgi/vHEAD.gemfile index 650fbf033..ef8b816ce 100644 --- a/gems/plain-merge/gemfiles/modular/cgi/vHEAD.gemfile +++ b/gems/plain-merge/gemfiles/modular/cgi/vHEAD.gemfile @@ -1 +1 @@ -gem 'cgi', '>= 0.5' +gem "cgi", ">= 0.5" diff --git a/gems/plain-merge/gemfiles/modular/coverage.gemfile b/gems/plain-merge/gemfiles/modular/coverage.gemfile index b93014b6b..52d737872 100644 --- a/gems/plain-merge/gemfiles/modular/coverage.gemfile +++ b/gems/plain-merge/gemfiles/modular/coverage.gemfile @@ -4,11 +4,11 @@ # Set KETTLE_DEV_DEV=true for local development with path-based dependencies. # When false (default / CI), remote released gems are used. -if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? +if ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false").zero? # Coverage (remote/released) platform :mri do - gem 'kettle-soup-cover', '~> 3.0', '>= 3.0.3', require: false + gem "kettle-soup-cover", "~> 3.0", ">= 3.0.3", require: false end else - eval_gemfile 'coverage_local.gemfile' + eval_gemfile "coverage_local.gemfile" end diff --git a/gems/plain-merge/gemfiles/modular/coverage_local.gemfile b/gems/plain-merge/gemfiles/modular/coverage_local.gemfile index e40a42a87..c333a0abc 100644 --- a/gems/plain-merge/gemfiles/modular/coverage_local.gemfile +++ b/gems/plain-merge/gemfiles/modular/coverage_local.gemfile @@ -11,19 +11,21 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] -nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) +nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] +nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == "nomono" } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + if nomono_locked + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] + end end -Kernel.send(:gem, 'nomono', *nomono_activation_requirements) -require 'nomono/bundler' +Kernel.send(:gem, "nomono", *nomono_activation_requirements) +require "nomono/bundler" local_gems = %w[kettle-dev kettle-test kettle-soup-cover kettle-drift] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) @@ -33,21 +35,21 @@ local_gems_to_eval = local_gems - %w[plain-merge] - declared_gems platform :mri do eval_nomono_gems( gems: local_gems_to_eval, - prefix: 'KETTLE_DEV', - path_env: 'KETTLE_DEV_DEV', - vendored_gems_env: 'VENDORED_GEMS', - vendor_gem_dir_env: 'VENDOR_GEM_DIR', - debug_env: 'KETTLE_DEV_DEBUG' + prefix: "KETTLE_DEV", + path_env: "KETTLE_DEV_DEV", + vendored_gems_env: "VENDORED_GEMS", + vendor_gem_dir_env: "VENDOR_GEM_DIR", + debug_env: "KETTLE_DEV_DEBUG" ) - if ENV.fetch('GALTZO_FLOSS_DEV', 'false').casecmp('false') != 0 + if ENV.fetch("GALTZO_FLOSS_DEV", "false").casecmp("false") != 0 eval_nomono_gems( gems: %w[turbo_tests2], - prefix: 'GALTZO_FLOSS', - path_env: 'GALTZO_FLOSS_DEV', - vendored_gems_env: 'GALTZO_FLOSS_VENDORED_GEMS', - vendor_gem_dir_env: 'GALTZO_FLOSS_VENDOR_GEM_DIR', - debug_env: 'GALTZO_FLOSS_DEBUG' + prefix: "GALTZO_FLOSS", + path_env: "GALTZO_FLOSS_DEV", + vendored_gems_env: "GALTZO_FLOSS_VENDORED_GEMS", + vendor_gem_dir_env: "GALTZO_FLOSS_VENDOR_GEM_DIR", + debug_env: "GALTZO_FLOSS_DEBUG" ) end end diff --git a/gems/plain-merge/gemfiles/modular/debug.gemfile b/gems/plain-merge/gemfiles/modular/debug.gemfile index eed8d4d1e..4e15b1a3a 100644 --- a/gems/plain-merge/gemfiles/modular/debug.gemfile +++ b/gems/plain-merge/gemfiles/modular/debug.gemfile @@ -13,10 +13,10 @@ platform :mri do # Debugging - Ensure ENV["DEBUG"] == "true" to use debuggers within spec suite # Use binding.break, binding.b, or debugger in code - gem 'debug', '>= 1.1' # ruby >= 2.7 + gem "debug", ">= 1.1" # ruby >= 2.7 # Dev Console - Binding.pry - Irb replacement # gem "pry", "~> 0.14" # ruby >= 2.0 end -gem 'gem_bench', '~> 2.0', '>= 2.0.5' +gem "gem_bench", "~> 2.0", ">= 2.0.5" diff --git a/gems/plain-merge/gemfiles/modular/documentation.gemfile b/gems/plain-merge/gemfiles/modular/documentation.gemfile index 9d4535f12..d8215416e 100644 --- a/gems/plain-merge/gemfiles/modular/documentation.gemfile +++ b/gems/plain-merge/gemfiles/modular/documentation.gemfile @@ -7,20 +7,20 @@ # # Documentation -gem 'kramdown', '~> 2.5', '>= 2.5.2', require: false # Ruby >= 2.5 -gem 'kramdown-parser-gfm', '~> 1.1', require: false # Ruby >= 2.3 -gem 'yaml-converter', '~> 0.2', '>= 0.2.3', require: false # Ruby >= 3.2 -gem 'yard', '~> 0.9', '>= 0.9.45', require: false -gem 'yard-junk', '~> 0.1', '>= 0.1.0', require: false # Ruby >= 3.1 -gem 'yard-relative_markdown_links', '~> 0.6', require: false +gem "kramdown", "~> 2.5", ">= 2.5.2", require: false # Ruby >= 2.5 +gem "kramdown-parser-gfm", "~> 1.1", require: false # Ruby >= 2.3 +gem "yaml-converter", "~> 0.2", ">= 0.2.3", require: false # Ruby >= 3.2 +gem "yard", "~> 0.9", ">= 0.9.45", require: false +gem "yard-junk", "~> 0.1", ">= 0.1.0", require: false # Ruby >= 3.1 +gem "yard-relative_markdown_links", "~> 0.6", require: false -if ENV.fetch('GALTZO_FLOSS_DEV', 'false').casecmp('false').zero? - gem 'yard-fence', '~> 0.9', '>= 0.9.6', require: false # Ruby >= 3.2 - gem 'yard-timekeeper', '~> 0.2', '>= 0.2.4', require: false - gem 'yard-yaml', '~> 0.2', '>= 0.2.3', require: false +if ENV.fetch("GALTZO_FLOSS_DEV", "false").casecmp("false").zero? + gem "yard-fence", "~> 0.9", ">= 0.9.6", require: false # Ruby >= 3.2 + gem "yard-timekeeper", "~> 0.2", ">= 0.2.4", require: false + gem "yard-yaml", "~> 0.2", ">= 0.2.3", require: false else - eval_gemfile 'documentation_local.gemfile' + eval_gemfile "documentation_local.gemfile" end # Std Lib extractions -gem 'rdoc', '~> 6.11', require: false unless ENV.fetch('KJ_FRAMEWORK_MATRIX_GEM', '') == 'rdoc' +gem "rdoc", "~> 6.11", require: false unless ENV.fetch("KJ_FRAMEWORK_MATRIX_GEM", "") == "rdoc" diff --git a/gems/plain-merge/gemfiles/modular/documentation_local.gemfile b/gems/plain-merge/gemfiles/modular/documentation_local.gemfile index 1f2016c3b..c0407019d 100644 --- a/gems/plain-merge/gemfiles/modular/documentation_local.gemfile +++ b/gems/plain-merge/gemfiles/modular/documentation_local.gemfile @@ -11,19 +11,21 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] -nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) +nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] +nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == "nomono" } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + if nomono_locked + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] + end end -Kernel.send(:gem, 'nomono', *nomono_activation_requirements) -require 'nomono/bundler' +Kernel.send(:gem, "nomono", *nomono_activation_requirements) +require "nomono/bundler" local_gems = %w[yard-fence yard-timekeeper yard-yaml] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) @@ -32,9 +34,9 @@ local_gems_to_eval = local_gems - %w[plain-merge] - declared_gems # export GALTZO_FLOSS_DEV=/path/to/galtzo-floss eval_nomono_gems( gems: local_gems_to_eval, - prefix: 'GALTZO_FLOSS', - path_env: 'GALTZO_FLOSS_DEV', - vendored_gems_env: 'GALTZO_FLOSS_VENDORED_GEMS', - vendor_gem_dir_env: 'GALTZO_FLOSS_VENDOR_GEM_DIR', - debug_env: 'GALTZO_FLOSS_DEBUG' + prefix: "GALTZO_FLOSS", + path_env: "GALTZO_FLOSS_DEV", + vendored_gems_env: "GALTZO_FLOSS_VENDORED_GEMS", + vendor_gem_dir_env: "GALTZO_FLOSS_VENDOR_GEM_DIR", + debug_env: "GALTZO_FLOSS_DEBUG" ) diff --git a/gems/plain-merge/gemfiles/modular/erb/r2/v3.0.gemfile b/gems/plain-merge/gemfiles/modular/erb/r2/v3.0.gemfile index 7c83a239b..c03bd8d85 100644 --- a/gems/plain-merge/gemfiles/modular/erb/r2/v3.0.gemfile +++ b/gems/plain-merge/gemfiles/modular/erb/r2/v3.0.gemfile @@ -1 +1 @@ -gem 'erb', '~> 3.0' # ruby >= 2.7.0 +gem "erb", "~> 3.0" # ruby >= 2.7.0 diff --git a/gems/plain-merge/gemfiles/modular/erb/r3/v5.0.gemfile b/gems/plain-merge/gemfiles/modular/erb/r3/v5.0.gemfile index ec7ff451f..1bd029cc1 100644 --- a/gems/plain-merge/gemfiles/modular/erb/r3/v5.0.gemfile +++ b/gems/plain-merge/gemfiles/modular/erb/r3/v5.0.gemfile @@ -1 +1 @@ -gem 'erb', '~> 6.0', '>= 6.0.6' # ruby >= 3.2.0 +gem "erb", "~> 6.0", ">= 6.0.6" # ruby >= 3.2.0 diff --git a/gems/plain-merge/gemfiles/modular/erb/r4/v5.0.gemfile b/gems/plain-merge/gemfiles/modular/erb/r4/v5.0.gemfile index ec7ff451f..1bd029cc1 100644 --- a/gems/plain-merge/gemfiles/modular/erb/r4/v5.0.gemfile +++ b/gems/plain-merge/gemfiles/modular/erb/r4/v5.0.gemfile @@ -1 +1 @@ -gem 'erb', '~> 6.0', '>= 6.0.6' # ruby >= 3.2.0 +gem "erb", "~> 6.0", ">= 6.0.6" # ruby >= 3.2.0 diff --git a/gems/plain-merge/gemfiles/modular/erb/vHEAD.gemfile b/gems/plain-merge/gemfiles/modular/erb/vHEAD.gemfile index ea0101185..48fee4218 100644 --- a/gems/plain-merge/gemfiles/modular/erb/vHEAD.gemfile +++ b/gems/plain-merge/gemfiles/modular/erb/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 3.2 -gem 'erb', github: 'ruby/erb', branch: 'master' +gem "erb", github: "ruby/erb", branch: "master" diff --git a/gems/plain-merge/gemfiles/modular/json/truffleruby_22_3.gemfile b/gems/plain-merge/gemfiles/modular/json/truffleruby_22_3.gemfile index 9b2f8d96a..b0e69ab11 100644 --- a/gems/plain-merge/gemfiles/modular/json/truffleruby_22_3.gemfile +++ b/gems/plain-merge/gemfiles/modular/json/truffleruby_22_3.gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -if RUBY_ENGINE == 'truffleruby' && RUBY_ENGINE_VERSION.start_with?('22.3') +if RUBY_ENGINE == "truffleruby" && RUBY_ENGINE_VERSION.start_with?("22.3") # TruffleRuby 22.3 ships the json default gem from its emulated MRI Ruby. - gem 'json', '= 2.5.1' + gem "json", "= 2.5.1" end diff --git a/gems/plain-merge/gemfiles/modular/json/truffleruby_23_0.gemfile b/gems/plain-merge/gemfiles/modular/json/truffleruby_23_0.gemfile index d787a5ef4..7b2660a2b 100644 --- a/gems/plain-merge/gemfiles/modular/json/truffleruby_23_0.gemfile +++ b/gems/plain-merge/gemfiles/modular/json/truffleruby_23_0.gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -if RUBY_ENGINE == 'truffleruby' && RUBY_ENGINE_VERSION.start_with?('23.0') +if RUBY_ENGINE == "truffleruby" && RUBY_ENGINE_VERSION.start_with?("23.0") # TruffleRuby 23.0 ships the json default gem from its emulated MRI Ruby. - gem 'json', '= 2.6.1' + gem "json", "= 2.6.1" end diff --git a/gems/plain-merge/gemfiles/modular/json/truffleruby_23_1.gemfile b/gems/plain-merge/gemfiles/modular/json/truffleruby_23_1.gemfile index d78486b0e..dfa21f2e4 100644 --- a/gems/plain-merge/gemfiles/modular/json/truffleruby_23_1.gemfile +++ b/gems/plain-merge/gemfiles/modular/json/truffleruby_23_1.gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -if RUBY_ENGINE == 'truffleruby' && RUBY_ENGINE_VERSION.start_with?('23.1') +if RUBY_ENGINE == "truffleruby" && RUBY_ENGINE_VERSION.start_with?("23.1") # TruffleRuby 23.1 ships the json default gem from its emulated MRI Ruby. - gem 'json', '= 2.6.3' + gem "json", "= 2.6.3" end diff --git a/gems/plain-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile b/gems/plain-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile index e27f1bbae..42e9d9bd4 100644 --- a/gems/plain-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile +++ b/gems/plain-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 -gem 'mutex_m', '~> 0.2' +gem "mutex_m", "~> 0.2" diff --git a/gems/plain-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile b/gems/plain-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile index e27f1bbae..42e9d9bd4 100644 --- a/gems/plain-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile +++ b/gems/plain-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 -gem 'mutex_m', '~> 0.2' +gem "mutex_m", "~> 0.2" diff --git a/gems/plain-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile b/gems/plain-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile index e27f1bbae..42e9d9bd4 100644 --- a/gems/plain-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile +++ b/gems/plain-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 -gem 'mutex_m', '~> 0.2' +gem "mutex_m", "~> 0.2" diff --git a/gems/plain-merge/gemfiles/modular/mutex_m/vHEAD.gemfile b/gems/plain-merge/gemfiles/modular/mutex_m/vHEAD.gemfile index 9dac2f6cb..8af3b6fca 100644 --- a/gems/plain-merge/gemfiles/modular/mutex_m/vHEAD.gemfile +++ b/gems/plain-merge/gemfiles/modular/mutex_m/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 (dependency of omniauth) -gem 'mutex_m', github: 'ruby/mutex_m', branch: 'master' +gem "mutex_m", github: "ruby/mutex_m", branch: "master" diff --git a/gems/plain-merge/gemfiles/modular/optional.gemfile b/gems/plain-merge/gemfiles/modular/optional.gemfile index 9ea429538..80bc45196 100644 --- a/gems/plain-merge/gemfiles/modular/optional.gemfile +++ b/gems/plain-merge/gemfiles/modular/optional.gemfile @@ -9,8 +9,8 @@ # Optional dependencies are not depended on directly, but may be used if present. # Required for curated binstubs generated by kettle-jem install -gem 'rbs', '>= 3.0', require: false # ruby >= 3.1 +gem "rbs", ">= 3.0", require: false # ruby >= 3.1 # Required for kettle-pre-release # URL parsing with Unicode support (falls back to URI if not available) -gem 'addressable', '>= 2.8', '< 3' # ruby >= 2.2 +gem "addressable", ">= 2.8", "< 3" # ruby >= 2.2 diff --git a/gems/plain-merge/gemfiles/modular/rspec.gemfile b/gems/plain-merge/gemfiles/modular/rspec.gemfile index 2af210a41..72fdf8b7f 100644 --- a/gems/plain-merge/gemfiles/modular/rspec.gemfile +++ b/gems/plain-merge/gemfiles/modular/rspec.gemfile @@ -1,4 +1,4 @@ -gem 'rspec_junit_formatter', - github: 'pboling/rspec_junit_formatter', - branch: 'main', - ref: '9e6bcaaedd49477b62878ed568dc4ada5cc7cb5e' +gem "rspec_junit_formatter", + github: "pboling/rspec_junit_formatter", + branch: "main", + ref: "9e6bcaaedd49477b62878ed568dc4ada5cc7cb5e" diff --git a/gems/plain-merge/gemfiles/modular/runtime_heads.gemfile b/gems/plain-merge/gemfiles/modular/runtime_heads.gemfile index ebf17c529..02f134c7f 100644 --- a/gems/plain-merge/gemfiles/modular/runtime_heads.gemfile +++ b/gems/plain-merge/gemfiles/modular/runtime_heads.gemfile @@ -8,4 +8,4 @@ # Test against HEAD of runtime dependencies so we can proactively file bugs -eval_gemfile('x_std_libs/vHEAD.gemfile') +eval_gemfile("x_std_libs/vHEAD.gemfile") diff --git a/gems/plain-merge/gemfiles/modular/stringio/r2/v3.0.gemfile b/gems/plain-merge/gemfiles/modular/stringio/r2/v3.0.gemfile index 3616f4e3a..e85bb18ee 100644 --- a/gems/plain-merge/gemfiles/modular/stringio/r2/v3.0.gemfile +++ b/gems/plain-merge/gemfiles/modular/stringio/r2/v3.0.gemfile @@ -2,4 +2,4 @@ # NOT SEMVER # Version 3.0.7 dropped support for Ruby <= 2.7 # Version 3.0.0 dropped support for Ruby <= 2.4 -gem 'stringio', '>= 3.0' +gem "stringio", ">= 3.0" diff --git a/gems/plain-merge/gemfiles/modular/stringio/r3/v3.0.gemfile b/gems/plain-merge/gemfiles/modular/stringio/r3/v3.0.gemfile index 3616f4e3a..e85bb18ee 100644 --- a/gems/plain-merge/gemfiles/modular/stringio/r3/v3.0.gemfile +++ b/gems/plain-merge/gemfiles/modular/stringio/r3/v3.0.gemfile @@ -2,4 +2,4 @@ # NOT SEMVER # Version 3.0.7 dropped support for Ruby <= 2.7 # Version 3.0.0 dropped support for Ruby <= 2.4 -gem 'stringio', '>= 3.0' +gem "stringio", ">= 3.0" diff --git a/gems/plain-merge/gemfiles/modular/stringio/r4/v3.0.gemfile b/gems/plain-merge/gemfiles/modular/stringio/r4/v3.0.gemfile index 3616f4e3a..e85bb18ee 100644 --- a/gems/plain-merge/gemfiles/modular/stringio/r4/v3.0.gemfile +++ b/gems/plain-merge/gemfiles/modular/stringio/r4/v3.0.gemfile @@ -2,4 +2,4 @@ # NOT SEMVER # Version 3.0.7 dropped support for Ruby <= 2.7 # Version 3.0.0 dropped support for Ruby <= 2.4 -gem 'stringio', '>= 3.0' +gem "stringio", ">= 3.0" diff --git a/gems/plain-merge/gemfiles/modular/stringio/vHEAD.gemfile b/gems/plain-merge/gemfiles/modular/stringio/vHEAD.gemfile index 78f5f5d8a..5f2a74126 100644 --- a/gems/plain-merge/gemfiles/modular/stringio/vHEAD.gemfile +++ b/gems/plain-merge/gemfiles/modular/stringio/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 (dependency of omniauth) -gem 'stringio', github: 'ruby/stringio', branch: 'master' +gem "stringio", github: "ruby/stringio", branch: "master" diff --git a/gems/plain-merge/gemfiles/modular/style.gemfile b/gems/plain-merge/gemfiles/modular/style.gemfile index 4dbcc02c0..35de4dcd6 100644 --- a/gems/plain-merge/gemfiles/modular/style.gemfile +++ b/gems/plain-merge/gemfiles/modular/style.gemfile @@ -9,23 +9,23 @@ # Style tasks run on the latest Ruby; RuboCop-LTS selects the compatibility # rules for the configured Ruby floor independently from task dependency floors. -gem 'reek', '~> 6.5', '>= 6.5.0' +gem "reek", "~> 6.5", ">= 6.5.0" platform :mri do - gem 'appraisal2-rubocop', '~> 1.0', '>= 1.0.0', require: false - gem 'rubocop-gradual', '~> 0.4', '>= 0.4.0' - gem 'rubocop-minitest', '~> 0.40', '>= 0.40.0' - gem 'rubocop-on-rbs', '~> 2.0', '>= 2.0.0' # ruby >= 3.2.0 + gem "appraisal2-rubocop", "~> 1.0", ">= 1.0.0", require: false + gem "rubocop-gradual", "~> 0.4", ">= 0.4.0" + gem "rubocop-minitest", "~> 0.40", ">= 0.40.0" + gem "rubocop-on-rbs", "~> 2.0", ">= 2.0.0" # ruby >= 3.2.0 # gem "rubocop", "~> 1.73", ">= 1.73.2" # constrained by standard - gem 'rubocop-packaging', '~> 0.6', '>= 0.6.0' - gem 'standard', '~> 1.56', '>= 1.56.0' + gem "rubocop-packaging", "~> 0.6", ">= 0.6.0" + gem "standard", "~> 1.56", ">= 1.56.0" - if ENV.fetch('RUBOCOP_LTS_LOCAL', 'false').casecmp('false').zero? + if ENV.fetch("RUBOCOP_LTS_LOCAL", "false").casecmp("false").zero? declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) - gem 'rubocop-lts', '~> 24.2', '>= 24.2.1' unless declared_gems.include?('rubocop-lts') - gem 'rubocop-lts-rspec', '~> 1.0', '>= 1.0.5' unless declared_gems.include?('rubocop-lts-rspec') - gem 'rubocop-ruby3_2', '~> 3.0', '>= 3.0.6' unless declared_gems.include?('rubocop-ruby3_2') + gem "rubocop-lts", "~> 24.2", ">= 24.2.1" unless declared_gems.include?("rubocop-lts") + gem "rubocop-lts-rspec", "~> 1.0", ">= 1.0.5" unless declared_gems.include?("rubocop-lts-rspec") + gem "rubocop-ruby3_2", "~> 3.0", ">= 3.0.6" unless declared_gems.include?("rubocop-ruby3_2") else - eval_gemfile('style_local.gemfile') + eval_gemfile("style_local.gemfile") end end diff --git a/gems/plain-merge/gemfiles/modular/style_local.gemfile b/gems/plain-merge/gemfiles/modular/style_local.gemfile index 9b6846285..b702870a0 100644 --- a/gems/plain-merge/gemfiles/modular/style_local.gemfile +++ b/gems/plain-merge/gemfiles/modular/style_local.gemfile @@ -14,19 +14,21 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] -nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) +nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] +nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == "nomono" } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + if nomono_locked + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] + end end -Kernel.send(:gem, 'nomono', *nomono_activation_requirements) -require 'nomono/bundler' +Kernel.send(:gem, "nomono", *nomono_activation_requirements) +require "nomono/bundler" local_gems = %w[rubocop-lts rubocop-lts-rspec rubocop-ruby3_2 standard-rubocop-lts] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) @@ -36,11 +38,11 @@ local_gems_to_eval = local_gems - %w[plain-merge] - declared_gems platform :mri do eval_nomono_gems( gems: local_gems_to_eval, - prefix: 'RUBOCOP_LTS', - path_env: 'RUBOCOP_LTS_LOCAL', - vendored_gems_env: 'VENDORED_GEMS', - vendor_gem_dir_env: 'VENDOR_GEM_DIR', - debug_env: 'RUBOCOP_LTS_DEBUG', - root: %w[src rubocop-lts] + prefix: "RUBOCOP_LTS", + path_env: "RUBOCOP_LTS_LOCAL", + vendored_gems_env: "VENDORED_GEMS", + vendor_gem_dir_env: "VENDOR_GEM_DIR", + debug_env: "RUBOCOP_LTS_DEBUG", + root: ["src", "rubocop-lts"] ) end diff --git a/gems/plain-merge/gemfiles/modular/webrick/r4/v1.9.gemfile b/gems/plain-merge/gemfiles/modular/webrick/r4/v1.9.gemfile index b1329ba84..eaab4a473 100644 --- a/gems/plain-merge/gemfiles/modular/webrick/r4/v1.9.gemfile +++ b/gems/plain-merge/gemfiles/modular/webrick/r4/v1.9.gemfile @@ -1 +1 @@ -gem 'webrick', '~> 1.9' +gem "webrick", "~> 1.9" diff --git a/gems/plain-merge/gemfiles/modular/webrick/vHEAD.gemfile b/gems/plain-merge/gemfiles/modular/webrick/vHEAD.gemfile index c7e6f81a1..8a789b634 100644 --- a/gems/plain-merge/gemfiles/modular/webrick/vHEAD.gemfile +++ b/gems/plain-merge/gemfiles/modular/webrick/vHEAD.gemfile @@ -1 +1 @@ -gem 'webrick', '>= 1.9' +gem "webrick", ">= 1.9" diff --git a/gems/plain-merge/gemfiles/modular/x_std_libs.gemfile b/gems/plain-merge/gemfiles/modular/x_std_libs.gemfile index b1f43c097..77aad43f2 100644 --- a/gems/plain-merge/gemfiles/modular/x_std_libs.gemfile +++ b/gems/plain-merge/gemfiles/modular/x_std_libs.gemfile @@ -1,12 +1,12 @@ ### Std Lib Extracted Gems ruby_version = Gem::Version.new(RUBY_VERSION) -if ruby_version >= Gem::Version.new('4.0') - eval_gemfile 'x_std_libs/r4/libs.gemfile' -elsif ruby_version >= Gem::Version.new('3.2') - eval_gemfile 'x_std_libs/r3/libs.gemfile' -elsif ruby_version >= Gem::Version.new('3.1') - eval_gemfile 'x_std_libs/r3.1/libs.gemfile' +if ruby_version >= Gem::Version.new("4.0") + eval_gemfile "x_std_libs/r4/libs.gemfile" +elsif ruby_version >= Gem::Version.new("3.2") + eval_gemfile "x_std_libs/r3/libs.gemfile" +elsif ruby_version >= Gem::Version.new("3.1") + eval_gemfile "x_std_libs/r3.1/libs.gemfile" else - eval_gemfile 'x_std_libs/r2/libs.gemfile' + eval_gemfile "x_std_libs/r2/libs.gemfile" end diff --git a/gems/plain-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile b/gems/plain-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile index 16a5e3d70..441c4f03a 100644 --- a/gems/plain-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile +++ b/gems/plain-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile @@ -1,3 +1,3 @@ -eval_gemfile '../../erb/r2/v3.0.gemfile' -eval_gemfile '../../mutex_m/r2/v0.3.gemfile' -eval_gemfile '../../stringio/r2/v3.0.gemfile' +eval_gemfile "../../erb/r2/v3.0.gemfile" +eval_gemfile "../../mutex_m/r2/v0.3.gemfile" +eval_gemfile "../../stringio/r2/v3.0.gemfile" diff --git a/gems/plain-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile b/gems/plain-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile index 220ff95c1..c293a3ddd 100644 --- a/gems/plain-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile +++ b/gems/plain-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile @@ -1,3 +1,3 @@ -eval_gemfile '../../erb/r3/v5.0.gemfile' -eval_gemfile '../../mutex_m/r3/v0.3.gemfile' -eval_gemfile '../../stringio/r3/v3.0.gemfile' +eval_gemfile "../../erb/r3/v5.0.gemfile" +eval_gemfile "../../mutex_m/r3/v0.3.gemfile" +eval_gemfile "../../stringio/r3/v3.0.gemfile" diff --git a/gems/plain-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile b/gems/plain-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile index e2f6501eb..eb5574247 100644 --- a/gems/plain-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile +++ b/gems/plain-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile @@ -1,6 +1,6 @@ -eval_gemfile '../../erb/r4/v5.0.gemfile' -eval_gemfile '../../mutex_m/r4/v0.3.gemfile' -eval_gemfile '../../stringio/r4/v3.0.gemfile' -eval_gemfile '../../benchmark/r4/v0.5.gemfile' -eval_gemfile '../../cgi/r4/v0.5.gemfile' -eval_gemfile '../../webrick/r4/v1.9.gemfile' +eval_gemfile "../../erb/r4/v5.0.gemfile" +eval_gemfile "../../mutex_m/r4/v0.3.gemfile" +eval_gemfile "../../stringio/r4/v3.0.gemfile" +eval_gemfile "../../benchmark/r4/v0.5.gemfile" +eval_gemfile "../../cgi/r4/v0.5.gemfile" +eval_gemfile "../../webrick/r4/v1.9.gemfile" diff --git a/gems/plain-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile b/gems/plain-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile index ab75cccf1..d4d5b16c9 100644 --- a/gems/plain-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile +++ b/gems/plain-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile @@ -1,6 +1,6 @@ -eval_gemfile '../erb/vHEAD.gemfile' -eval_gemfile '../mutex_m/vHEAD.gemfile' -eval_gemfile '../stringio/vHEAD.gemfile' -eval_gemfile '../benchmark/vHEAD.gemfile' -eval_gemfile '../cgi/vHEAD.gemfile' -eval_gemfile '../webrick/vHEAD.gemfile' +eval_gemfile "../erb/vHEAD.gemfile" +eval_gemfile "../mutex_m/vHEAD.gemfile" +eval_gemfile "../stringio/vHEAD.gemfile" +eval_gemfile "../benchmark/vHEAD.gemfile" +eval_gemfile "../cgi/vHEAD.gemfile" +eval_gemfile "../webrick/vHEAD.gemfile" diff --git a/gems/plain-merge/spec/spec_helper.rb b/gems/plain-merge/spec/spec_helper.rb index 272f26dee..14f41c64b 100644 --- a/gems/plain-merge/spec/spec_helper.rb +++ b/gems/plain-merge/spec/spec_helper.rb @@ -7,11 +7,16 @@ # NOTE: Gemfiles for non-coverage appraisals may not have kettle-soup-cover. # The rescue LoadError handles that scenario. begin - require 'kettle-soup-cover' - require 'simplecov' if Kettle::Soup::Cover::DO_COV # `.simplecov` is run here! -rescue LoadError => e + require "kettle-soup-cover" + if Kettle::Soup::Cover::DO_COV + # Requiring simplecov loads the project-local `.simplecov`. + require "simplecov" + require "kettle/soup/cover/config" + SimpleCov.start + end +rescue LoadError => error # check the error message and re-raise when unexpected - raise e unless e.message.include?('kettle') + raise error unless error.message.include?("kettle") end # External RSpec & related config From b1c540631ae17c88dce00d4f052a8282be2f2331 Mon Sep 17 00:00:00 2001 From: "Peter H. Boling" Date: Tue, 21 Jul 2026 18:02:51 -0600 Subject: [PATCH 156/188] =?UTF-8?q?=F0=9F=8E=A8=20Template=20bootstrap=20b?= =?UTF-8?q?y=20kettle-jem=20v7.1.0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gems/ast-merge-git/Gemfile.lock | 323 +++++++++++++++- gems/bash-merge/.simplecov | 8 +- gems/bash-merge/README.md | 1 + gems/bash-merge/bash-merge.gemspec | 84 ++--- .../modular/benchmark/r4/v0.5.gemfile | 2 +- .../gemfiles/modular/benchmark/vHEAD.gemfile | 2 +- .../gemfiles/modular/cgi/r4/v0.5.gemfile | 2 +- .../gemfiles/modular/cgi/vHEAD.gemfile | 2 +- .../gemfiles/modular/coverage.gemfile | 6 +- .../gemfiles/modular/coverage_local.gemfile | 42 ++- .../bash-merge/gemfiles/modular/debug.gemfile | 4 +- .../gemfiles/modular/documentation.gemfile | 24 +- .../modular/documentation_local.gemfile | 30 +- .../gemfiles/modular/erb/r2/v3.0.gemfile | 2 +- .../gemfiles/modular/erb/r3/v5.0.gemfile | 2 +- .../gemfiles/modular/erb/r4/v5.0.gemfile | 2 +- .../gemfiles/modular/erb/vHEAD.gemfile | 2 +- .../modular/json/truffleruby_22_3.gemfile | 4 +- .../modular/json/truffleruby_23_0.gemfile | 4 +- .../modular/json/truffleruby_23_1.gemfile | 4 +- .../gemfiles/modular/mutex_m/r2/v0.3.gemfile | 2 +- .../gemfiles/modular/mutex_m/r3/v0.3.gemfile | 2 +- .../gemfiles/modular/mutex_m/r4/v0.3.gemfile | 2 +- .../gemfiles/modular/mutex_m/vHEAD.gemfile | 2 +- .../gemfiles/modular/optional.gemfile | 4 +- .../bash-merge/gemfiles/modular/rspec.gemfile | 8 +- .../gemfiles/modular/runtime_heads.gemfile | 2 +- .../gemfiles/modular/stringio/r2/v3.0.gemfile | 2 +- .../gemfiles/modular/stringio/r3/v3.0.gemfile | 2 +- .../gemfiles/modular/stringio/r4/v3.0.gemfile | 2 +- .../gemfiles/modular/stringio/vHEAD.gemfile | 2 +- .../bash-merge/gemfiles/modular/style.gemfile | 24 +- .../gemfiles/modular/style_local.gemfile | 32 +- .../gemfiles/modular/webrick/r4/v1.9.gemfile | 2 +- .../gemfiles/modular/webrick/vHEAD.gemfile | 2 +- .../gemfiles/modular/x_std_libs.gemfile | 14 +- .../modular/x_std_libs/r2/libs.gemfile | 6 +- .../modular/x_std_libs/r3/libs.gemfile | 6 +- .../modular/x_std_libs/r4/libs.gemfile | 12 +- .../gemfiles/modular/x_std_libs/vHEAD.gemfile | 12 +- gems/bash-merge/spec/spec_helper.rb | 13 +- gems/dotenv-merge/Gemfile.lock | 352 +++++++++++++++++- gems/plain-merge/.rubocop_gradual.lock | 120 ++++++ gems/plain-merge/.simplecov | 2 +- gems/plain-merge/Gemfile | 70 ++-- gems/plain-merge/Gemfile.lock | 8 +- gems/plain-merge/Rakefile | 18 +- gems/plain-merge/bin/yard | 2 +- .../modular/benchmark/r4/v0.5.gemfile | 2 +- .../gemfiles/modular/benchmark/vHEAD.gemfile | 2 +- .../gemfiles/modular/cgi/r4/v0.5.gemfile | 2 +- .../gemfiles/modular/cgi/vHEAD.gemfile | 2 +- .../gemfiles/modular/coverage.gemfile | 6 +- .../gemfiles/modular/coverage_local.gemfile | 42 +-- .../gemfiles/modular/debug.gemfile | 4 +- .../gemfiles/modular/documentation.gemfile | 24 +- .../modular/documentation_local.gemfile | 30 +- .../gemfiles/modular/erb/r2/v3.0.gemfile | 2 +- .../gemfiles/modular/erb/r3/v5.0.gemfile | 2 +- .../gemfiles/modular/erb/r4/v5.0.gemfile | 2 +- .../gemfiles/modular/erb/vHEAD.gemfile | 2 +- .../modular/json/truffleruby_22_3.gemfile | 4 +- .../modular/json/truffleruby_23_0.gemfile | 4 +- .../modular/json/truffleruby_23_1.gemfile | 4 +- .../gemfiles/modular/mutex_m/r2/v0.3.gemfile | 2 +- .../gemfiles/modular/mutex_m/r3/v0.3.gemfile | 2 +- .../gemfiles/modular/mutex_m/r4/v0.3.gemfile | 2 +- .../gemfiles/modular/mutex_m/vHEAD.gemfile | 2 +- .../gemfiles/modular/optional.gemfile | 4 +- .../gemfiles/modular/rspec.gemfile | 8 +- .../gemfiles/modular/runtime_heads.gemfile | 2 +- .../gemfiles/modular/stringio/r2/v3.0.gemfile | 2 +- .../gemfiles/modular/stringio/r3/v3.0.gemfile | 2 +- .../gemfiles/modular/stringio/r4/v3.0.gemfile | 2 +- .../gemfiles/modular/stringio/vHEAD.gemfile | 2 +- .../gemfiles/modular/style.gemfile | 24 +- .../gemfiles/modular/style_local.gemfile | 32 +- .../gemfiles/modular/templating.gemfile | 12 +- .../gemfiles/modular/templating_local.gemfile | 44 ++- .../gemfiles/modular/webrick/r4/v1.9.gemfile | 2 +- .../gemfiles/modular/webrick/vHEAD.gemfile | 2 +- .../gemfiles/modular/x_std_libs.gemfile | 14 +- .../modular/x_std_libs/r2/libs.gemfile | 6 +- .../modular/x_std_libs/r3/libs.gemfile | 6 +- .../modular/x_std_libs/r4/libs.gemfile | 12 +- .../gemfiles/modular/x_std_libs/vHEAD.gemfile | 12 +- gems/plain-merge/lib/plain/merge/version.rb | 2 +- gems/plain-merge/spec/spec_helper.rb | 10 +- 88 files changed, 1187 insertions(+), 430 deletions(-) create mode 100644 gems/plain-merge/.rubocop_gradual.lock diff --git a/gems/ast-merge-git/Gemfile.lock b/gems/ast-merge-git/Gemfile.lock index 30c4a9f17..5de5e7cc7 100644 --- a/gems/ast-merge-git/Gemfile.lock +++ b/gems/ast-merge-git/Gemfile.lock @@ -7,7 +7,31 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/ast-merge + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly + specs: + ast-crispr-markdown-markly (7.1.0) + ast-crispr (= 7.1.0) + markly-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism + specs: + ast-crispr-ruby-prism (7.1.0) + ast-crispr (= 7.1.0) + prism-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr + specs: + ast-crispr (7.1.0) + ast-merge (= 7.1.0) + service_actor (~> 3.9) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge specs: ast-merge (7.1.0) benchmark @@ -16,13 +40,232 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/json-merge + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template + specs: + ast-template (7.1.0) + ast-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge + specs: + bash-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge + specs: + binary-merge (7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge + specs: + citrus-toml-merge (7.1.0) + toml-merge (= 7.1.0) + toml-rb (~> 4.1) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge + specs: + commonmarker-merge (7.1.0) + commonmarker (~> 2.2) + markdown-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge + specs: + dotenv-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge + specs: + go-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge specs: json-merge (7.1.0) ast-merge (= 7.1.0) tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem + specs: + kettle-jem (7.1.0) + addressable (>= 2.8, < 3) + ast-crispr-markdown-markly (= 7.1.0) + ast-crispr-ruby-prism (= 7.1.0) + ast-merge (= 7.1.0) + bash-merge (= 7.1.0) + citrus-toml-merge (= 7.1.0) + commonmarker-merge (= 7.1.0) + dotenv-merge (= 7.1.0) + json-merge (= 7.1.0) + kettle-dev (~> 2.3, >= 2.3.5) + kettle-rb (~> 0.1, >= 0.1.4) + kramdown-merge (= 7.1.0) + markdown-merge (= 7.1.0) + markly-merge (= 7.1.0) + prism-merge (= 7.1.0) + psych-merge (= 7.1.0) + rbs (>= 3.10) + rbs-merge (= 7.1.0) + ruby-merge (= 7.1.0) + token-resolver (~> 2.0, >= 2.0.4) + toml-merge (= 7.1.0) + toml-rb (~> 4.2) + tree_haver (= 7.1.0) + yaml-merge (= 7.1.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge + specs: + kramdown-merge (7.1.0) + kramdown (~> 2.5) + markdown-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge + specs: + markdown-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge + specs: + markly-merge (7.1.0) + markdown-merge (= 7.1.0) + markly (~> 0.9) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge + specs: + parslet-toml-merge (7.1.0) + toml (~> 0.3) + toml-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge + specs: + plain-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge + specs: + prism-merge (7.1.0) + prism (~> 1.6) + ruby-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge + specs: + psych-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + yaml-merge (= 7.1.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge + specs: + rbs-merge (7.1.0) + ast-merge (= 7.1.0) + rbs (>= 3.10) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge + specs: + ruby-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge + specs: + rust-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb + specs: + smorg-rb (7.1.0) + ast-merge (= 7.1.0) + ast-merge-git (= 7.1.0) + diff-lcs (~> 1.5) + go-merge (= 7.1.0) + json-merge (= 7.1.0) + kettle-jem (= 7.1.0) + markly-merge (= 7.1.0) + plain-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge + specs: + toml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver + specs: + tree_haver (7.1.0) + citrus (~> 3.0) + parslet (~> 2.0) + tree_sitter_language_pack (>= 1.13.2, < 2.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge + specs: + typescript-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge + specs: + yaml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge + specs: + zip-merge (7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + GEM remote: https://gem.coop/ specs: @@ -47,6 +290,7 @@ GEM cgi (0.5.2) citrus (3.0.2) cmdparse (3.0.7) + commonmarker (2.9.0-x86_64-linux) concurrent-ruby (1.3.8) date (3.5.1) debug (1.11.1) @@ -109,6 +353,8 @@ GEM kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) + kettle-drift (1.0.6) + version_gem (~> 1.1, >= 1.1.14) kettle-rb (0.1.5) kettle-soup-cover (3.0.4) kettle-wash (~> 0.1, >= 0.1.0) @@ -137,6 +383,7 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) + markly (0.16.0) mutex_m (0.3.0) nokogiri (1.19.4-x86_64-linux-gnu) racc (~> 1.4) @@ -291,6 +538,8 @@ GEM ruby-progressbar (1.13.0) ruby_engine (2.0.3) ruby_version (1.0.3) + service_actor (3.9.4) + zeitwerk (>= 1.0) silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) @@ -345,11 +594,11 @@ GEM token-resolver (2.0.5) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.14) - tree_haver (7.1.0) - citrus (~> 3.0) - parslet (~> 2.0) - tree_sitter_language_pack (>= 1.13.2, < 2.0) - version_gem (~> 1.1, >= 1.1.9) + toml (0.3.0) + parslet (>= 1.8.0, < 3.0.0) + toml-rb (4.2.0) + citrus (~> 3.0, > 3.0) + racc (~> 1.7) tree_sitter_language_pack (1.13.3-x86_64-linux) sorbet-runtime (~> 0.5) tsort (0.2.0) @@ -395,26 +644,46 @@ DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) appraisal2-rubocop (~> 1.0, >= 1.0.0) + ast-crispr! + ast-crispr-markdown-markly! + ast-crispr-ruby-prism! ast-merge! ast-merge-git! + ast-template! + bash-merge! benchmark (~> 0.5, >= 0.5.0) + binary-merge! bundler-audit (~> 0.9.3) cgi (~> 0.5) + citrus-toml-merge! + commonmarker-merge! debug (>= 1.1) + dotenv-merge! erb (~> 6.0, >= 6.0.6) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.0) + go-merge! irb (~> 1.17) json-merge! kettle-dev (~> 2.0, >= 2.2.25) + kettle-drift (~> 1.0, >= 1.0.6) + kettle-jem! kettle-soup-cover (~> 3.0, >= 3.0.3) kettle-test (~> 2.0, >= 2.0.9) kramdown (~> 2.5, >= 2.5.2) + kramdown-merge! kramdown-parser-gfm (~> 1.1) + markdown-merge! + markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) + parslet-toml-merge! + plain-merge! + prism-merge! + psych-merge! rake (~> 13.0) rbs (>= 3.0) + rbs-merge! rdoc (~> 6.11) reek (~> 6.5, >= 6.5.0) require_bench (~> 1.0, >= 1.0.4) @@ -425,19 +694,27 @@ DEPENDENCIES rubocop-on-rbs (~> 2.0, >= 2.0.0) rubocop-packaging (~> 0.6, >= 0.6.0) rubocop-ruby3_2 (~> 3.0, >= 3.0.6) + ruby-merge! ruby-progressbar (~> 1.13) + rust-merge! + smorg-rb! standard (~> 1.56, >= 1.56.0) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) + toml-merge! + tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) + typescript-merge! webrick (~> 1.9) yaml-converter (~> 0.2, >= 0.2.3) + yaml-merge! yard (~> 0.9, >= 0.9.45) yard-fence (~> 0.9, >= 0.9.6) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) yard-timekeeper (~> 0.2, >= 0.2.4) yard-yaml (~> 0.2, >= 0.2.3) + zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af @@ -445,21 +722,31 @@ CHECKSUMS appraisal2 (3.2.0) sha256=ccd0b767ac4060cd7af6d16747459b6990f49c39c7b4fb1f7d1146b1e97c492f appraisal2-rubocop (1.0.0) sha256=b71410fbb014befda5340605a605b7f6f3f012739baf0acc5b4351b592c3258d ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 + ast-crispr (7.1.0) + ast-crispr-markdown-markly (7.1.0) + ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) ast-merge-git (7.1.0) + ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 + bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd + binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 + citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 + commonmarker (2.9.0-x86_64-linux) sha256=8cfe92970eef585a19ddf6613224b91cab64d6029834661bda801f877c9c7f43 + commonmarker-merge (7.1.0) concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 + dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -472,21 +759,28 @@ CHECKSUMS gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f + go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 json-merge (7.1.0) kettle-dev (2.3.9) + kettle-drift (1.0.6) sha256=46eda08fa4411d1f3c6682a95eef1c9df4e94611b3949f49d4c7b43c0ed356a3 + kettle-jem (7.1.0) kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f kettle-soup-cover (3.0.4) kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa + kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 + markdown-merge (7.1.0) + markly (0.16.0) sha256=6f70d79e385b1efc9e171f74c81628826259039fe6c778e03c3924c71dac5511 + markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-x86_64-linux-gnu) sha256=379fae440b28915e3f19d752ce2dcf8465ed2b2fbefd2a7ca0dd497bc981a06a nomono (1.0.9) @@ -496,15 +790,20 @@ CHECKSUMS parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 + parslet-toml-merge (7.1.0) + plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 + prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 + psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 + rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb @@ -539,15 +838,19 @@ CHECKSUMS rubocop-rspec_rails (2.32.0) sha256=4a0d641c72f6ebb957534f539d9d0a62c47abd8ce0d0aeee1ef4701e892a9100 rubocop-ruby3_2 (3.0.7) sha256=f53dd6d286fb05186214fc6ec116783e7f837030918e8931c05de773e98f8466 rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 + ruby-merge (7.1.0) ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 + rust-merge (7.1.0) + service_actor (3.9.4) sha256=e63b523630b9a7e62959b2a90113b08d2565b5de9c148557b281ef847c9539ce silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed + smorg-rb (7.1.0) sorbet-runtime (0.6.13351) sha256=f8fee17c6e3edf835dc6823d26afb9a7c8969c6710d1fabe2fb43f4e0c15c64f standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b @@ -562,15 +865,20 @@ CHECKSUMS timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.5) sha256=b852f924287ffb58a440856e862b056c8ad97e74b4b2526cee43e0771f40c25c + toml (0.3.0) sha256=0a91d0f76a9036e84e44f95693b12f58d358c1df3ac8e3b5271f2056ecc6e4b9 + toml-merge (7.1.0) + toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 + typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 webrick (1.9.2) sha256=beb4a15fc474defed24a3bda4ffd88a490d517c9e4e6118c3edce59e45864131 yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 + yaml-merge (7.1.0) yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd @@ -578,6 +886,7 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 + zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH diff --git a/gems/bash-merge/.simplecov b/gems/bash-merge/.simplecov index c15dc3323..899478d55 100644 --- a/gems/bash-merge/.simplecov +++ b/gems/bash-merge/.simplecov @@ -4,15 +4,11 @@ # bash-merge will then preserve content between those markers across template runs. # kettle-jem:unfreeze -require 'kettle/soup/cover/config' - # Minimum coverage thresholds are set by kettle-soup-cover. # They are controlled by ENV variables loaded by `mise` from `mise.toml` # (with optional machine-local overrides in `.env.local`). # If the values for minimum coverage need to change, they should be changed both there, # and in 2 places in .github/workflows/coverage.yml. -SimpleCov.start do - track_files 'lib/**/*.rb' - track_files 'lib/**/*.rake' - track_files 'exe/*.rb' +SimpleCov.configure do + cover "lib/**/*.rb", "lib/**/*.rake", "exe/*.rb" end diff --git a/gems/bash-merge/README.md b/gems/bash-merge/README.md index 1f1c39220..b2443fceb 100644 --- a/gems/bash-merge/README.md +++ b/gems/bash-merge/README.md @@ -391,6 +391,7 @@ If none of the available licenses suit your use case, please [contact us](mailto [🖐contrib-rocks]: https://contrib.rocks [🖐contributors]: https://github.com/structuredmerge/structuredmerge-ruby/graphs/contributors [🖐contributors-img]: https://contrib.rocks/image?repo=structuredmerge/structuredmerge-ruby +[🚎contributors-gl]: https://gitlab.com/structuredmerge/structuredmerge-ruby/-/graphs/main [🪇conduct]: https://github.com/structuredmerge/structuredmerge-ruby/blob/main/CODE_OF_CONDUCT.md [🪇conduct-img]: https://img.shields.io/badge/Contributor_Covenant-2.1-259D6C.svg [📌pvc]: http://guides.rubygems.org/patterns/#pessimistic-version-constraint diff --git a/gems/bash-merge/bash-merge.gemspec b/gems/bash-merge/bash-merge.gemspec index 86240b5af..cccdf1dac 100644 --- a/gems/bash-merge/bash-merge.gemspec +++ b/gems/bash-merge/bash-merge.gemspec @@ -9,47 +9,47 @@ Gem::Specification.new do |spec| spec.name = 'bash-merge' spec.version = Module.new.tap { |mod| Kernel.load("#{__dir__}/lib/bash/merge/version.rb", mod) }::Bash::Merge::Version::VERSION - spec.authors = ['Peter H. Boling'] - spec.email = ['floss@galtzo.com'] + spec.authors = ["Peter H. Boling"] + spec.email = ["floss@galtzo.com"] spec.summary = '☯️ Structured Merge Bash analysis and merge for Ruby' spec.description = '☯️ Bash statement, comment, freeze-block, and template merge behavior for Structured Merge.' spec.homepage = 'https://github.com/structuredmerge/structuredmerge-ruby' - spec.licenses = ['AGPL-3.0-only', 'PolyForm-Small-Business-1.0.0'] - spec.required_ruby_version = '>= 4.0.0' + spec.licenses = ["AGPL-3.0-only", "PolyForm-Small-Business-1.0.0"] + spec.required_ruby_version = ">= 4.0.0" # Linux distros often package gems and securely certify them independent # of the official RubyGem certification process. Allowed via ENV["SKIP_GEM_SIGNING"] # Ref: https://gitlab.com/ruby-oauth/version_gem/-/issues/3 # Hence, only enable signing if `SKIP_GEM_SIGNING` is not set in ENV. # See CONTRIBUTING.md - unless ENV.include?('SKIP_GEM_SIGNING') - user_cert = "certs/#{ENV.fetch('GEM_CERT_USER', ENV['USER'])}.pem" + unless ENV.include?("SKIP_GEM_SIGNING") + user_cert = "certs/#{ENV.fetch("GEM_CERT_USER", ENV["USER"])}.pem" cert_file_path = File.join(__dir__, user_cert) - cert_chain = cert_file_path.split(',') + cert_chain = cert_file_path.split(",") cert_chain.select! { |fp| File.exist?(fp) } if cert_file_path && cert_chain.any? spec.cert_chain = cert_chain - if $PROGRAM_NAME.end_with?('gem') && ARGV[0] == 'build' - spec.signing_key = File.join(Gem.user_home, '.ssh', 'gem-private_key.pem') + if $PROGRAM_NAME.end_with?("gem") && ARGV[0] == "build" + spec.signing_key = File.join(Gem.user_home, ".ssh", "gem-private_key.pem") end end end - spec.metadata['homepage_uri'] = 'https://structuredmerge.org' - spec.metadata['source_code_uri'] = "#{spec.homepage}/tree/v#{spec.version}" - spec.metadata['changelog_uri'] = "#{spec.homepage}/blob/v#{spec.version}/CHANGELOG.md" - spec.metadata['bug_tracker_uri'] = "#{spec.homepage}/issues" - spec.metadata['documentation_uri'] = "https://www.rubydoc.info/gems/#{spec.name}/#{spec.version}" - spec.metadata['funding_uri'] = 'https://github.com/sponsors/pboling' - spec.metadata['wiki_uri'] = "#{spec.homepage}/wiki" - spec.metadata['news_uri'] = "https://www.railsbling.com/tags/#{spec.name}" - spec.metadata['discord_uri'] = 'https://discord.gg/3qme4XHNKN' - spec.metadata['rubygems_mfa_required'] = 'true' + spec.metadata["homepage_uri"] = "https://structuredmerge.org" + spec.metadata["source_code_uri"] = "#{spec.homepage}/tree/v#{spec.version}" + spec.metadata["changelog_uri"] = "#{spec.homepage}/blob/v#{spec.version}/CHANGELOG.md" + spec.metadata["bug_tracker_uri"] = "#{spec.homepage}/issues" + spec.metadata["documentation_uri"] = "https://www.rubydoc.info/gems/#{spec.name}/#{spec.version}" + spec.metadata["funding_uri"] = "https://github.com/sponsors/pboling" + spec.metadata["wiki_uri"] = "#{spec.homepage}/wiki" + spec.metadata["news_uri"] = "https://www.railsbling.com/tags/#{spec.name}" + spec.metadata["discord_uri"] = "https://discord.gg/3qme4XHNKN" + spec.metadata["rubygems_mfa_required"] = "true" enumerate_package_files = lambda do |root| - Dir.glob(File.join(root, '**', '*'), File::FNM_DOTMATCH).select do |path| - File.file?(path) && !['.', '..'].include?(File.basename(path)) + Dir.glob(File.join(root, "**", "*"), File::FNM_DOTMATCH).select do |path| + File.file?(path) && ![".", ".."].include?(File.basename(path)) end end package_metadata_files = %w[ @@ -69,25 +69,25 @@ Gem::Specification.new do |spec| *enumerate_package_files.call('exe') ] spec.rdoc_options += [ - '--title', + "--title", "#{spec.name} - #{spec.summary}", - '--main', - 'README.md', - '--exclude', - '^sig/', - '--line-numbers', - '--inline-source', - '--quiet' + "--main", + "README.md", + "--exclude", + "^sig/", + "--line-numbers", + "--inline-source", + "--quiet" ] - spec.bindir = 'exe' + spec.bindir = "exe" # Listed files are the relative paths from bindir above. spec.executables = [] - spec.require_paths = ['lib'] + spec.require_paths = ["lib"] # Utilities spec.add_dependency 'ast-merge', "= #{spec.version}" spec.add_dependency 'tree_haver', "= #{spec.version}" - spec.add_dependency('version_gem', '~> 1.1', '>= 1.1.14') # ruby >= 2.2.0 + spec.add_dependency("version_gem", "~> 1.1", ">= 1.1.14") # ruby >= 2.2.0 # NOTE: It is preferable to list development dependencies in the gemspec due to increased # visibility and discoverability. @@ -103,30 +103,30 @@ Gem::Specification.new do |spec| # and preferably a modular one (see gemfiles/modular/*.gemfile). # Dev, Test, & Release Tasks - spec.add_development_dependency('kettle-dev', '~> 2.3', '>= 2.3.7') # ruby >= 4.0.0 + spec.add_development_dependency("kettle-dev", "~> 2.3", ">= 2.3.7") # ruby >= 4.0.0 # Security - spec.add_development_dependency('bundler-audit', '~> 0.9.3') # ruby >= 2.0.0 + spec.add_development_dependency("bundler-audit", "~> 0.9.3") # ruby >= 2.0.0 # Tasks - spec.add_development_dependency('rake', '~> 13.0') # ruby >= 2.2.0 + spec.add_development_dependency("rake", "~> 13.0") # ruby >= 2.2.0 # Debugging - spec.add_development_dependency('require_bench', '~> 1.0', '>= 1.0.4') # ruby >= 2.2.0 + spec.add_development_dependency("require_bench", "~> 1.0", ">= 1.0.4") # ruby >= 2.2.0 # Testing - spec.add_development_dependency('appraisal2', '~> 3.2', '>= 3.2.0') # ruby >= 1.8.7, for testing against multiple versions of dependencies - spec.add_development_dependency('kettle-test', '~> 2.0', '>= 2.0.12') # ruby >= 4.0.0 - spec.add_development_dependency('turbo_tests2', '~> 3.2', '>= 3.2.0') # ruby >= 2.4.0, default kettle-test runner + spec.add_development_dependency("appraisal2", "~> 3.2", ">= 3.2.0") # ruby >= 1.8.7, for testing against multiple versions of dependencies + spec.add_development_dependency("kettle-test", "~> 2.0", ">= 2.0.12") # ruby >= 4.0.0 + spec.add_development_dependency("turbo_tests2", "~> 3.2", ">= 3.2.0") # ruby >= 2.4.0, default kettle-test runner # Releasing - spec.add_development_dependency('ruby-progressbar', '~> 1.13') # ruby >= 0 - spec.add_development_dependency('stone_checksums', '~> 1.0', '>= 1.0.6') # ruby >= 2.2.0 + spec.add_development_dependency("ruby-progressbar", "~> 1.13") # ruby >= 0 + spec.add_development_dependency("stone_checksums", "~> 1.0", ">= 1.0.6") # ruby >= 2.2.0 # Development tasks # The cake is a lie. erb v2.2, the oldest release, was never compatible with Ruby 2.3. # This means we have no choice but to use the erb that shipped with Ruby 2.3 # /opt/hostedtoolcache/Ruby/2.3.8/x64/lib/ruby/gems/2.3.0/gems/erb-2.2.2/lib/erb.rb:670:in `prepare_trim_mode': undefined method `match?' for "-":String (NoMethodError) # spec.add_development_dependency("erb", ">= 2.2") # ruby >= 2.3.0, not SemVer, old rubies get dropped in a patch. - spec.add_development_dependency('gitmoji-regex', '~> 2.0', '>= 2.0.4') # ruby >= 2.4 + spec.add_development_dependency("gitmoji-regex", "~> 2.0", ">= 2.0.4") # ruby >= 2.4 end diff --git a/gems/bash-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile b/gems/bash-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile index b8392fab0..dec650815 100644 --- a/gems/bash-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile +++ b/gems/bash-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.1 -gem 'benchmark', '~> 0.5', '>= 0.5.0' # Removed from Std Lib in Ruby 4.0 +gem "benchmark", "~> 0.5", ">= 0.5.0" # Removed from Std Lib in Ruby 4.0 diff --git a/gems/bash-merge/gemfiles/modular/benchmark/vHEAD.gemfile b/gems/bash-merge/gemfiles/modular/benchmark/vHEAD.gemfile index af214aafa..e1eb20c5e 100644 --- a/gems/bash-merge/gemfiles/modular/benchmark/vHEAD.gemfile +++ b/gems/bash-merge/gemfiles/modular/benchmark/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.1 -gem 'benchmark', github: 'ruby/benchmark', branch: 'master' +gem "benchmark", github: "ruby/benchmark", branch: "master" diff --git a/gems/bash-merge/gemfiles/modular/cgi/r4/v0.5.gemfile b/gems/bash-merge/gemfiles/modular/cgi/r4/v0.5.gemfile index 17ad97260..19ed967c3 100644 --- a/gems/bash-merge/gemfiles/modular/cgi/r4/v0.5.gemfile +++ b/gems/bash-merge/gemfiles/modular/cgi/r4/v0.5.gemfile @@ -1 +1 @@ -gem 'cgi', '~> 0.5' +gem "cgi", "~> 0.5" diff --git a/gems/bash-merge/gemfiles/modular/cgi/vHEAD.gemfile b/gems/bash-merge/gemfiles/modular/cgi/vHEAD.gemfile index 650fbf033..ef8b816ce 100644 --- a/gems/bash-merge/gemfiles/modular/cgi/vHEAD.gemfile +++ b/gems/bash-merge/gemfiles/modular/cgi/vHEAD.gemfile @@ -1 +1 @@ -gem 'cgi', '>= 0.5' +gem "cgi", ">= 0.5" diff --git a/gems/bash-merge/gemfiles/modular/coverage.gemfile b/gems/bash-merge/gemfiles/modular/coverage.gemfile index b93014b6b..52d737872 100644 --- a/gems/bash-merge/gemfiles/modular/coverage.gemfile +++ b/gems/bash-merge/gemfiles/modular/coverage.gemfile @@ -4,11 +4,11 @@ # Set KETTLE_DEV_DEV=true for local development with path-based dependencies. # When false (default / CI), remote released gems are used. -if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? +if ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false").zero? # Coverage (remote/released) platform :mri do - gem 'kettle-soup-cover', '~> 3.0', '>= 3.0.3', require: false + gem "kettle-soup-cover", "~> 3.0", ">= 3.0.3", require: false end else - eval_gemfile 'coverage_local.gemfile' + eval_gemfile "coverage_local.gemfile" end diff --git a/gems/bash-merge/gemfiles/modular/coverage_local.gemfile b/gems/bash-merge/gemfiles/modular/coverage_local.gemfile index 8ac9a4a35..6b6462501 100644 --- a/gems/bash-merge/gemfiles/modular/coverage_local.gemfile +++ b/gems/bash-merge/gemfiles/modular/coverage_local.gemfile @@ -11,19 +11,21 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] -nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) +nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] +nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == "nomono" } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + if nomono_locked + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] + end end -Kernel.send(:gem, 'nomono', *nomono_activation_requirements) -require 'nomono/bundler' +Kernel.send(:gem, "nomono", *nomono_activation_requirements) +require "nomono/bundler" local_gems = %w[kettle-dev kettle-test kettle-soup-cover kettle-drift] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) @@ -33,21 +35,21 @@ local_gems_to_eval = local_gems - %w[bash-merge] - declared_gems platform :mri do eval_nomono_gems( gems: local_gems_to_eval, - prefix: 'KETTLE_DEV', - path_env: 'KETTLE_DEV_DEV', - vendored_gems_env: 'VENDORED_GEMS', - vendor_gem_dir_env: 'VENDOR_GEM_DIR', - debug_env: 'KETTLE_DEV_DEBUG' + prefix: "KETTLE_DEV", + path_env: "KETTLE_DEV_DEV", + vendored_gems_env: "VENDORED_GEMS", + vendor_gem_dir_env: "VENDOR_GEM_DIR", + debug_env: "KETTLE_DEV_DEBUG" ) - if ENV.fetch('GALTZO_FLOSS_DEV', 'false').casecmp('false') != 0 + if ENV.fetch("GALTZO_FLOSS_DEV", "false").casecmp("false") != 0 eval_nomono_gems( gems: %w[turbo_tests2], - prefix: 'GALTZO_FLOSS', - path_env: 'GALTZO_FLOSS_DEV', - vendored_gems_env: 'GALTZO_FLOSS_VENDORED_GEMS', - vendor_gem_dir_env: 'GALTZO_FLOSS_VENDOR_GEM_DIR', - debug_env: 'GALTZO_FLOSS_DEBUG' + prefix: "GALTZO_FLOSS", + path_env: "GALTZO_FLOSS_DEV", + vendored_gems_env: "GALTZO_FLOSS_VENDORED_GEMS", + vendor_gem_dir_env: "GALTZO_FLOSS_VENDOR_GEM_DIR", + debug_env: "GALTZO_FLOSS_DEBUG" ) end end diff --git a/gems/bash-merge/gemfiles/modular/debug.gemfile b/gems/bash-merge/gemfiles/modular/debug.gemfile index eed8d4d1e..4e15b1a3a 100644 --- a/gems/bash-merge/gemfiles/modular/debug.gemfile +++ b/gems/bash-merge/gemfiles/modular/debug.gemfile @@ -13,10 +13,10 @@ platform :mri do # Debugging - Ensure ENV["DEBUG"] == "true" to use debuggers within spec suite # Use binding.break, binding.b, or debugger in code - gem 'debug', '>= 1.1' # ruby >= 2.7 + gem "debug", ">= 1.1" # ruby >= 2.7 # Dev Console - Binding.pry - Irb replacement # gem "pry", "~> 0.14" # ruby >= 2.0 end -gem 'gem_bench', '~> 2.0', '>= 2.0.5' +gem "gem_bench", "~> 2.0", ">= 2.0.5" diff --git a/gems/bash-merge/gemfiles/modular/documentation.gemfile b/gems/bash-merge/gemfiles/modular/documentation.gemfile index 9d4535f12..d8215416e 100644 --- a/gems/bash-merge/gemfiles/modular/documentation.gemfile +++ b/gems/bash-merge/gemfiles/modular/documentation.gemfile @@ -7,20 +7,20 @@ # # Documentation -gem 'kramdown', '~> 2.5', '>= 2.5.2', require: false # Ruby >= 2.5 -gem 'kramdown-parser-gfm', '~> 1.1', require: false # Ruby >= 2.3 -gem 'yaml-converter', '~> 0.2', '>= 0.2.3', require: false # Ruby >= 3.2 -gem 'yard', '~> 0.9', '>= 0.9.45', require: false -gem 'yard-junk', '~> 0.1', '>= 0.1.0', require: false # Ruby >= 3.1 -gem 'yard-relative_markdown_links', '~> 0.6', require: false +gem "kramdown", "~> 2.5", ">= 2.5.2", require: false # Ruby >= 2.5 +gem "kramdown-parser-gfm", "~> 1.1", require: false # Ruby >= 2.3 +gem "yaml-converter", "~> 0.2", ">= 0.2.3", require: false # Ruby >= 3.2 +gem "yard", "~> 0.9", ">= 0.9.45", require: false +gem "yard-junk", "~> 0.1", ">= 0.1.0", require: false # Ruby >= 3.1 +gem "yard-relative_markdown_links", "~> 0.6", require: false -if ENV.fetch('GALTZO_FLOSS_DEV', 'false').casecmp('false').zero? - gem 'yard-fence', '~> 0.9', '>= 0.9.6', require: false # Ruby >= 3.2 - gem 'yard-timekeeper', '~> 0.2', '>= 0.2.4', require: false - gem 'yard-yaml', '~> 0.2', '>= 0.2.3', require: false +if ENV.fetch("GALTZO_FLOSS_DEV", "false").casecmp("false").zero? + gem "yard-fence", "~> 0.9", ">= 0.9.6", require: false # Ruby >= 3.2 + gem "yard-timekeeper", "~> 0.2", ">= 0.2.4", require: false + gem "yard-yaml", "~> 0.2", ">= 0.2.3", require: false else - eval_gemfile 'documentation_local.gemfile' + eval_gemfile "documentation_local.gemfile" end # Std Lib extractions -gem 'rdoc', '~> 6.11', require: false unless ENV.fetch('KJ_FRAMEWORK_MATRIX_GEM', '') == 'rdoc' +gem "rdoc", "~> 6.11", require: false unless ENV.fetch("KJ_FRAMEWORK_MATRIX_GEM", "") == "rdoc" diff --git a/gems/bash-merge/gemfiles/modular/documentation_local.gemfile b/gems/bash-merge/gemfiles/modular/documentation_local.gemfile index 844682e59..3dc825c13 100644 --- a/gems/bash-merge/gemfiles/modular/documentation_local.gemfile +++ b/gems/bash-merge/gemfiles/modular/documentation_local.gemfile @@ -11,19 +11,21 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] -nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) +nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] +nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == "nomono" } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + if nomono_locked + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] + end end -Kernel.send(:gem, 'nomono', *nomono_activation_requirements) -require 'nomono/bundler' +Kernel.send(:gem, "nomono", *nomono_activation_requirements) +require "nomono/bundler" local_gems = %w[yard-fence yard-timekeeper yard-yaml] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) @@ -32,9 +34,9 @@ local_gems_to_eval = local_gems - %w[bash-merge] - declared_gems # export GALTZO_FLOSS_DEV=/path/to/galtzo-floss eval_nomono_gems( gems: local_gems_to_eval, - prefix: 'GALTZO_FLOSS', - path_env: 'GALTZO_FLOSS_DEV', - vendored_gems_env: 'GALTZO_FLOSS_VENDORED_GEMS', - vendor_gem_dir_env: 'GALTZO_FLOSS_VENDOR_GEM_DIR', - debug_env: 'GALTZO_FLOSS_DEBUG' + prefix: "GALTZO_FLOSS", + path_env: "GALTZO_FLOSS_DEV", + vendored_gems_env: "GALTZO_FLOSS_VENDORED_GEMS", + vendor_gem_dir_env: "GALTZO_FLOSS_VENDOR_GEM_DIR", + debug_env: "GALTZO_FLOSS_DEBUG" ) diff --git a/gems/bash-merge/gemfiles/modular/erb/r2/v3.0.gemfile b/gems/bash-merge/gemfiles/modular/erb/r2/v3.0.gemfile index 7c83a239b..c03bd8d85 100644 --- a/gems/bash-merge/gemfiles/modular/erb/r2/v3.0.gemfile +++ b/gems/bash-merge/gemfiles/modular/erb/r2/v3.0.gemfile @@ -1 +1 @@ -gem 'erb', '~> 3.0' # ruby >= 2.7.0 +gem "erb", "~> 3.0" # ruby >= 2.7.0 diff --git a/gems/bash-merge/gemfiles/modular/erb/r3/v5.0.gemfile b/gems/bash-merge/gemfiles/modular/erb/r3/v5.0.gemfile index ec7ff451f..1bd029cc1 100644 --- a/gems/bash-merge/gemfiles/modular/erb/r3/v5.0.gemfile +++ b/gems/bash-merge/gemfiles/modular/erb/r3/v5.0.gemfile @@ -1 +1 @@ -gem 'erb', '~> 6.0', '>= 6.0.6' # ruby >= 3.2.0 +gem "erb", "~> 6.0", ">= 6.0.6" # ruby >= 3.2.0 diff --git a/gems/bash-merge/gemfiles/modular/erb/r4/v5.0.gemfile b/gems/bash-merge/gemfiles/modular/erb/r4/v5.0.gemfile index ec7ff451f..1bd029cc1 100644 --- a/gems/bash-merge/gemfiles/modular/erb/r4/v5.0.gemfile +++ b/gems/bash-merge/gemfiles/modular/erb/r4/v5.0.gemfile @@ -1 +1 @@ -gem 'erb', '~> 6.0', '>= 6.0.6' # ruby >= 3.2.0 +gem "erb", "~> 6.0", ">= 6.0.6" # ruby >= 3.2.0 diff --git a/gems/bash-merge/gemfiles/modular/erb/vHEAD.gemfile b/gems/bash-merge/gemfiles/modular/erb/vHEAD.gemfile index ea0101185..48fee4218 100644 --- a/gems/bash-merge/gemfiles/modular/erb/vHEAD.gemfile +++ b/gems/bash-merge/gemfiles/modular/erb/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 3.2 -gem 'erb', github: 'ruby/erb', branch: 'master' +gem "erb", github: "ruby/erb", branch: "master" diff --git a/gems/bash-merge/gemfiles/modular/json/truffleruby_22_3.gemfile b/gems/bash-merge/gemfiles/modular/json/truffleruby_22_3.gemfile index 9b2f8d96a..b0e69ab11 100644 --- a/gems/bash-merge/gemfiles/modular/json/truffleruby_22_3.gemfile +++ b/gems/bash-merge/gemfiles/modular/json/truffleruby_22_3.gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -if RUBY_ENGINE == 'truffleruby' && RUBY_ENGINE_VERSION.start_with?('22.3') +if RUBY_ENGINE == "truffleruby" && RUBY_ENGINE_VERSION.start_with?("22.3") # TruffleRuby 22.3 ships the json default gem from its emulated MRI Ruby. - gem 'json', '= 2.5.1' + gem "json", "= 2.5.1" end diff --git a/gems/bash-merge/gemfiles/modular/json/truffleruby_23_0.gemfile b/gems/bash-merge/gemfiles/modular/json/truffleruby_23_0.gemfile index d787a5ef4..7b2660a2b 100644 --- a/gems/bash-merge/gemfiles/modular/json/truffleruby_23_0.gemfile +++ b/gems/bash-merge/gemfiles/modular/json/truffleruby_23_0.gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -if RUBY_ENGINE == 'truffleruby' && RUBY_ENGINE_VERSION.start_with?('23.0') +if RUBY_ENGINE == "truffleruby" && RUBY_ENGINE_VERSION.start_with?("23.0") # TruffleRuby 23.0 ships the json default gem from its emulated MRI Ruby. - gem 'json', '= 2.6.1' + gem "json", "= 2.6.1" end diff --git a/gems/bash-merge/gemfiles/modular/json/truffleruby_23_1.gemfile b/gems/bash-merge/gemfiles/modular/json/truffleruby_23_1.gemfile index d78486b0e..dfa21f2e4 100644 --- a/gems/bash-merge/gemfiles/modular/json/truffleruby_23_1.gemfile +++ b/gems/bash-merge/gemfiles/modular/json/truffleruby_23_1.gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -if RUBY_ENGINE == 'truffleruby' && RUBY_ENGINE_VERSION.start_with?('23.1') +if RUBY_ENGINE == "truffleruby" && RUBY_ENGINE_VERSION.start_with?("23.1") # TruffleRuby 23.1 ships the json default gem from its emulated MRI Ruby. - gem 'json', '= 2.6.3' + gem "json", "= 2.6.3" end diff --git a/gems/bash-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile b/gems/bash-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile index e27f1bbae..42e9d9bd4 100644 --- a/gems/bash-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile +++ b/gems/bash-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 -gem 'mutex_m', '~> 0.2' +gem "mutex_m", "~> 0.2" diff --git a/gems/bash-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile b/gems/bash-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile index e27f1bbae..42e9d9bd4 100644 --- a/gems/bash-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile +++ b/gems/bash-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 -gem 'mutex_m', '~> 0.2' +gem "mutex_m", "~> 0.2" diff --git a/gems/bash-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile b/gems/bash-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile index e27f1bbae..42e9d9bd4 100644 --- a/gems/bash-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile +++ b/gems/bash-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 -gem 'mutex_m', '~> 0.2' +gem "mutex_m", "~> 0.2" diff --git a/gems/bash-merge/gemfiles/modular/mutex_m/vHEAD.gemfile b/gems/bash-merge/gemfiles/modular/mutex_m/vHEAD.gemfile index 9dac2f6cb..8af3b6fca 100644 --- a/gems/bash-merge/gemfiles/modular/mutex_m/vHEAD.gemfile +++ b/gems/bash-merge/gemfiles/modular/mutex_m/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 (dependency of omniauth) -gem 'mutex_m', github: 'ruby/mutex_m', branch: 'master' +gem "mutex_m", github: "ruby/mutex_m", branch: "master" diff --git a/gems/bash-merge/gemfiles/modular/optional.gemfile b/gems/bash-merge/gemfiles/modular/optional.gemfile index 9ea429538..80bc45196 100644 --- a/gems/bash-merge/gemfiles/modular/optional.gemfile +++ b/gems/bash-merge/gemfiles/modular/optional.gemfile @@ -9,8 +9,8 @@ # Optional dependencies are not depended on directly, but may be used if present. # Required for curated binstubs generated by kettle-jem install -gem 'rbs', '>= 3.0', require: false # ruby >= 3.1 +gem "rbs", ">= 3.0", require: false # ruby >= 3.1 # Required for kettle-pre-release # URL parsing with Unicode support (falls back to URI if not available) -gem 'addressable', '>= 2.8', '< 3' # ruby >= 2.2 +gem "addressable", ">= 2.8", "< 3" # ruby >= 2.2 diff --git a/gems/bash-merge/gemfiles/modular/rspec.gemfile b/gems/bash-merge/gemfiles/modular/rspec.gemfile index 2af210a41..72fdf8b7f 100644 --- a/gems/bash-merge/gemfiles/modular/rspec.gemfile +++ b/gems/bash-merge/gemfiles/modular/rspec.gemfile @@ -1,4 +1,4 @@ -gem 'rspec_junit_formatter', - github: 'pboling/rspec_junit_formatter', - branch: 'main', - ref: '9e6bcaaedd49477b62878ed568dc4ada5cc7cb5e' +gem "rspec_junit_formatter", + github: "pboling/rspec_junit_formatter", + branch: "main", + ref: "9e6bcaaedd49477b62878ed568dc4ada5cc7cb5e" diff --git a/gems/bash-merge/gemfiles/modular/runtime_heads.gemfile b/gems/bash-merge/gemfiles/modular/runtime_heads.gemfile index ebf17c529..02f134c7f 100644 --- a/gems/bash-merge/gemfiles/modular/runtime_heads.gemfile +++ b/gems/bash-merge/gemfiles/modular/runtime_heads.gemfile @@ -8,4 +8,4 @@ # Test against HEAD of runtime dependencies so we can proactively file bugs -eval_gemfile('x_std_libs/vHEAD.gemfile') +eval_gemfile("x_std_libs/vHEAD.gemfile") diff --git a/gems/bash-merge/gemfiles/modular/stringio/r2/v3.0.gemfile b/gems/bash-merge/gemfiles/modular/stringio/r2/v3.0.gemfile index 3616f4e3a..e85bb18ee 100644 --- a/gems/bash-merge/gemfiles/modular/stringio/r2/v3.0.gemfile +++ b/gems/bash-merge/gemfiles/modular/stringio/r2/v3.0.gemfile @@ -2,4 +2,4 @@ # NOT SEMVER # Version 3.0.7 dropped support for Ruby <= 2.7 # Version 3.0.0 dropped support for Ruby <= 2.4 -gem 'stringio', '>= 3.0' +gem "stringio", ">= 3.0" diff --git a/gems/bash-merge/gemfiles/modular/stringio/r3/v3.0.gemfile b/gems/bash-merge/gemfiles/modular/stringio/r3/v3.0.gemfile index 3616f4e3a..e85bb18ee 100644 --- a/gems/bash-merge/gemfiles/modular/stringio/r3/v3.0.gemfile +++ b/gems/bash-merge/gemfiles/modular/stringio/r3/v3.0.gemfile @@ -2,4 +2,4 @@ # NOT SEMVER # Version 3.0.7 dropped support for Ruby <= 2.7 # Version 3.0.0 dropped support for Ruby <= 2.4 -gem 'stringio', '>= 3.0' +gem "stringio", ">= 3.0" diff --git a/gems/bash-merge/gemfiles/modular/stringio/r4/v3.0.gemfile b/gems/bash-merge/gemfiles/modular/stringio/r4/v3.0.gemfile index 3616f4e3a..e85bb18ee 100644 --- a/gems/bash-merge/gemfiles/modular/stringio/r4/v3.0.gemfile +++ b/gems/bash-merge/gemfiles/modular/stringio/r4/v3.0.gemfile @@ -2,4 +2,4 @@ # NOT SEMVER # Version 3.0.7 dropped support for Ruby <= 2.7 # Version 3.0.0 dropped support for Ruby <= 2.4 -gem 'stringio', '>= 3.0' +gem "stringio", ">= 3.0" diff --git a/gems/bash-merge/gemfiles/modular/stringio/vHEAD.gemfile b/gems/bash-merge/gemfiles/modular/stringio/vHEAD.gemfile index 78f5f5d8a..5f2a74126 100644 --- a/gems/bash-merge/gemfiles/modular/stringio/vHEAD.gemfile +++ b/gems/bash-merge/gemfiles/modular/stringio/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 (dependency of omniauth) -gem 'stringio', github: 'ruby/stringio', branch: 'master' +gem "stringio", github: "ruby/stringio", branch: "master" diff --git a/gems/bash-merge/gemfiles/modular/style.gemfile b/gems/bash-merge/gemfiles/modular/style.gemfile index 4dbcc02c0..35de4dcd6 100644 --- a/gems/bash-merge/gemfiles/modular/style.gemfile +++ b/gems/bash-merge/gemfiles/modular/style.gemfile @@ -9,23 +9,23 @@ # Style tasks run on the latest Ruby; RuboCop-LTS selects the compatibility # rules for the configured Ruby floor independently from task dependency floors. -gem 'reek', '~> 6.5', '>= 6.5.0' +gem "reek", "~> 6.5", ">= 6.5.0" platform :mri do - gem 'appraisal2-rubocop', '~> 1.0', '>= 1.0.0', require: false - gem 'rubocop-gradual', '~> 0.4', '>= 0.4.0' - gem 'rubocop-minitest', '~> 0.40', '>= 0.40.0' - gem 'rubocop-on-rbs', '~> 2.0', '>= 2.0.0' # ruby >= 3.2.0 + gem "appraisal2-rubocop", "~> 1.0", ">= 1.0.0", require: false + gem "rubocop-gradual", "~> 0.4", ">= 0.4.0" + gem "rubocop-minitest", "~> 0.40", ">= 0.40.0" + gem "rubocop-on-rbs", "~> 2.0", ">= 2.0.0" # ruby >= 3.2.0 # gem "rubocop", "~> 1.73", ">= 1.73.2" # constrained by standard - gem 'rubocop-packaging', '~> 0.6', '>= 0.6.0' - gem 'standard', '~> 1.56', '>= 1.56.0' + gem "rubocop-packaging", "~> 0.6", ">= 0.6.0" + gem "standard", "~> 1.56", ">= 1.56.0" - if ENV.fetch('RUBOCOP_LTS_LOCAL', 'false').casecmp('false').zero? + if ENV.fetch("RUBOCOP_LTS_LOCAL", "false").casecmp("false").zero? declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) - gem 'rubocop-lts', '~> 24.2', '>= 24.2.1' unless declared_gems.include?('rubocop-lts') - gem 'rubocop-lts-rspec', '~> 1.0', '>= 1.0.5' unless declared_gems.include?('rubocop-lts-rspec') - gem 'rubocop-ruby3_2', '~> 3.0', '>= 3.0.6' unless declared_gems.include?('rubocop-ruby3_2') + gem "rubocop-lts", "~> 24.2", ">= 24.2.1" unless declared_gems.include?("rubocop-lts") + gem "rubocop-lts-rspec", "~> 1.0", ">= 1.0.5" unless declared_gems.include?("rubocop-lts-rspec") + gem "rubocop-ruby3_2", "~> 3.0", ">= 3.0.6" unless declared_gems.include?("rubocop-ruby3_2") else - eval_gemfile('style_local.gemfile') + eval_gemfile("style_local.gemfile") end end diff --git a/gems/bash-merge/gemfiles/modular/style_local.gemfile b/gems/bash-merge/gemfiles/modular/style_local.gemfile index f507995c2..db620af4f 100644 --- a/gems/bash-merge/gemfiles/modular/style_local.gemfile +++ b/gems/bash-merge/gemfiles/modular/style_local.gemfile @@ -14,19 +14,21 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] -nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) +nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] +nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == "nomono" } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + if nomono_locked + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] + end end -Kernel.send(:gem, 'nomono', *nomono_activation_requirements) -require 'nomono/bundler' +Kernel.send(:gem, "nomono", *nomono_activation_requirements) +require "nomono/bundler" local_gems = %w[rubocop-lts rubocop-lts-rspec rubocop-ruby3_2 standard-rubocop-lts] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) @@ -36,11 +38,11 @@ local_gems_to_eval = local_gems - %w[bash-merge] - declared_gems platform :mri do eval_nomono_gems( gems: local_gems_to_eval, - prefix: 'RUBOCOP_LTS', - path_env: 'RUBOCOP_LTS_LOCAL', - vendored_gems_env: 'VENDORED_GEMS', - vendor_gem_dir_env: 'VENDOR_GEM_DIR', - debug_env: 'RUBOCOP_LTS_DEBUG', - root: %w[src rubocop-lts] + prefix: "RUBOCOP_LTS", + path_env: "RUBOCOP_LTS_LOCAL", + vendored_gems_env: "VENDORED_GEMS", + vendor_gem_dir_env: "VENDOR_GEM_DIR", + debug_env: "RUBOCOP_LTS_DEBUG", + root: ["src", "rubocop-lts"] ) end diff --git a/gems/bash-merge/gemfiles/modular/webrick/r4/v1.9.gemfile b/gems/bash-merge/gemfiles/modular/webrick/r4/v1.9.gemfile index b1329ba84..eaab4a473 100644 --- a/gems/bash-merge/gemfiles/modular/webrick/r4/v1.9.gemfile +++ b/gems/bash-merge/gemfiles/modular/webrick/r4/v1.9.gemfile @@ -1 +1 @@ -gem 'webrick', '~> 1.9' +gem "webrick", "~> 1.9" diff --git a/gems/bash-merge/gemfiles/modular/webrick/vHEAD.gemfile b/gems/bash-merge/gemfiles/modular/webrick/vHEAD.gemfile index c7e6f81a1..8a789b634 100644 --- a/gems/bash-merge/gemfiles/modular/webrick/vHEAD.gemfile +++ b/gems/bash-merge/gemfiles/modular/webrick/vHEAD.gemfile @@ -1 +1 @@ -gem 'webrick', '>= 1.9' +gem "webrick", ">= 1.9" diff --git a/gems/bash-merge/gemfiles/modular/x_std_libs.gemfile b/gems/bash-merge/gemfiles/modular/x_std_libs.gemfile index b1f43c097..77aad43f2 100644 --- a/gems/bash-merge/gemfiles/modular/x_std_libs.gemfile +++ b/gems/bash-merge/gemfiles/modular/x_std_libs.gemfile @@ -1,12 +1,12 @@ ### Std Lib Extracted Gems ruby_version = Gem::Version.new(RUBY_VERSION) -if ruby_version >= Gem::Version.new('4.0') - eval_gemfile 'x_std_libs/r4/libs.gemfile' -elsif ruby_version >= Gem::Version.new('3.2') - eval_gemfile 'x_std_libs/r3/libs.gemfile' -elsif ruby_version >= Gem::Version.new('3.1') - eval_gemfile 'x_std_libs/r3.1/libs.gemfile' +if ruby_version >= Gem::Version.new("4.0") + eval_gemfile "x_std_libs/r4/libs.gemfile" +elsif ruby_version >= Gem::Version.new("3.2") + eval_gemfile "x_std_libs/r3/libs.gemfile" +elsif ruby_version >= Gem::Version.new("3.1") + eval_gemfile "x_std_libs/r3.1/libs.gemfile" else - eval_gemfile 'x_std_libs/r2/libs.gemfile' + eval_gemfile "x_std_libs/r2/libs.gemfile" end diff --git a/gems/bash-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile b/gems/bash-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile index 16a5e3d70..441c4f03a 100644 --- a/gems/bash-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile +++ b/gems/bash-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile @@ -1,3 +1,3 @@ -eval_gemfile '../../erb/r2/v3.0.gemfile' -eval_gemfile '../../mutex_m/r2/v0.3.gemfile' -eval_gemfile '../../stringio/r2/v3.0.gemfile' +eval_gemfile "../../erb/r2/v3.0.gemfile" +eval_gemfile "../../mutex_m/r2/v0.3.gemfile" +eval_gemfile "../../stringio/r2/v3.0.gemfile" diff --git a/gems/bash-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile b/gems/bash-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile index 220ff95c1..c293a3ddd 100644 --- a/gems/bash-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile +++ b/gems/bash-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile @@ -1,3 +1,3 @@ -eval_gemfile '../../erb/r3/v5.0.gemfile' -eval_gemfile '../../mutex_m/r3/v0.3.gemfile' -eval_gemfile '../../stringio/r3/v3.0.gemfile' +eval_gemfile "../../erb/r3/v5.0.gemfile" +eval_gemfile "../../mutex_m/r3/v0.3.gemfile" +eval_gemfile "../../stringio/r3/v3.0.gemfile" diff --git a/gems/bash-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile b/gems/bash-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile index e2f6501eb..eb5574247 100644 --- a/gems/bash-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile +++ b/gems/bash-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile @@ -1,6 +1,6 @@ -eval_gemfile '../../erb/r4/v5.0.gemfile' -eval_gemfile '../../mutex_m/r4/v0.3.gemfile' -eval_gemfile '../../stringio/r4/v3.0.gemfile' -eval_gemfile '../../benchmark/r4/v0.5.gemfile' -eval_gemfile '../../cgi/r4/v0.5.gemfile' -eval_gemfile '../../webrick/r4/v1.9.gemfile' +eval_gemfile "../../erb/r4/v5.0.gemfile" +eval_gemfile "../../mutex_m/r4/v0.3.gemfile" +eval_gemfile "../../stringio/r4/v3.0.gemfile" +eval_gemfile "../../benchmark/r4/v0.5.gemfile" +eval_gemfile "../../cgi/r4/v0.5.gemfile" +eval_gemfile "../../webrick/r4/v1.9.gemfile" diff --git a/gems/bash-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile b/gems/bash-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile index ab75cccf1..d4d5b16c9 100644 --- a/gems/bash-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile +++ b/gems/bash-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile @@ -1,6 +1,6 @@ -eval_gemfile '../erb/vHEAD.gemfile' -eval_gemfile '../mutex_m/vHEAD.gemfile' -eval_gemfile '../stringio/vHEAD.gemfile' -eval_gemfile '../benchmark/vHEAD.gemfile' -eval_gemfile '../cgi/vHEAD.gemfile' -eval_gemfile '../webrick/vHEAD.gemfile' +eval_gemfile "../erb/vHEAD.gemfile" +eval_gemfile "../mutex_m/vHEAD.gemfile" +eval_gemfile "../stringio/vHEAD.gemfile" +eval_gemfile "../benchmark/vHEAD.gemfile" +eval_gemfile "../cgi/vHEAD.gemfile" +eval_gemfile "../webrick/vHEAD.gemfile" diff --git a/gems/bash-merge/spec/spec_helper.rb b/gems/bash-merge/spec/spec_helper.rb index 58ea9f84e..a76cd9197 100644 --- a/gems/bash-merge/spec/spec_helper.rb +++ b/gems/bash-merge/spec/spec_helper.rb @@ -7,11 +7,16 @@ # NOTE: Gemfiles for non-coverage appraisals may not have kettle-soup-cover. # The rescue LoadError handles that scenario. begin - require 'kettle-soup-cover' - require 'simplecov' if Kettle::Soup::Cover::DO_COV # `.simplecov` is run here! -rescue LoadError => e + require "kettle-soup-cover" + if Kettle::Soup::Cover::DO_COV + # Requiring simplecov loads the project-local `.simplecov`. + require "simplecov" + require "kettle/soup/cover/config" + SimpleCov.start + end +rescue LoadError => error # check the error message and re-raise when unexpected - raise e unless e.message.include?('kettle') + raise error unless error.message.include?("kettle") end # External RSpec & related config diff --git a/gems/dotenv-merge/Gemfile.lock b/gems/dotenv-merge/Gemfile.lock index ee361ae35..7fbba7304 100644 --- a/gems/dotenv-merge/Gemfile.lock +++ b/gems/dotenv-merge/Gemfile.lock @@ -6,6 +6,266 @@ PATH tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.14) +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly + specs: + ast-crispr-markdown-markly (7.1.0) + ast-crispr (= 7.1.0) + markly-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism + specs: + ast-crispr-ruby-prism (7.1.0) + ast-crispr (= 7.1.0) + prism-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr + specs: + ast-crispr (7.1.0) + ast-merge (= 7.1.0) + service_actor (~> 3.9) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git + specs: + ast-merge-git (7.1.0) + ast-merge (= 7.1.0) + json-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge + specs: + ast-merge (7.1.0) + benchmark + token-resolver (~> 2.0, >= 2.0.4) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template + specs: + ast-template (7.1.0) + ast-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge + specs: + bash-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge + specs: + binary-merge (7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge + specs: + citrus-toml-merge (7.1.0) + toml-merge (= 7.1.0) + toml-rb (~> 4.1) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge + specs: + commonmarker-merge (7.1.0) + commonmarker (~> 2.2) + markdown-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge + specs: + go-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge + specs: + json-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem + specs: + kettle-jem (7.1.0) + addressable (>= 2.8, < 3) + ast-crispr-markdown-markly (= 7.1.0) + ast-crispr-ruby-prism (= 7.1.0) + ast-merge (= 7.1.0) + bash-merge (= 7.1.0) + citrus-toml-merge (= 7.1.0) + commonmarker-merge (= 7.1.0) + dotenv-merge (= 7.1.0) + json-merge (= 7.1.0) + kettle-dev (~> 2.3, >= 2.3.5) + kettle-rb (~> 0.1, >= 0.1.4) + kramdown-merge (= 7.1.0) + markdown-merge (= 7.1.0) + markly-merge (= 7.1.0) + prism-merge (= 7.1.0) + psych-merge (= 7.1.0) + rbs (>= 3.10) + rbs-merge (= 7.1.0) + ruby-merge (= 7.1.0) + token-resolver (~> 2.0, >= 2.0.4) + toml-merge (= 7.1.0) + toml-rb (~> 4.2) + tree_haver (= 7.1.0) + yaml-merge (= 7.1.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge + specs: + kramdown-merge (7.1.0) + kramdown (~> 2.5) + markdown-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge + specs: + markdown-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge + specs: + markly-merge (7.1.0) + markdown-merge (= 7.1.0) + markly (~> 0.9) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge + specs: + parslet-toml-merge (7.1.0) + toml (~> 0.3) + toml-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge + specs: + plain-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge + specs: + prism-merge (7.1.0) + prism (~> 1.6) + ruby-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge + specs: + psych-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + yaml-merge (= 7.1.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge + specs: + rbs-merge (7.1.0) + ast-merge (= 7.1.0) + rbs (>= 3.10) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge + specs: + ruby-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge + specs: + rust-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb + specs: + smorg-rb (7.1.0) + ast-merge (= 7.1.0) + ast-merge-git (= 7.1.0) + diff-lcs (~> 1.5) + go-merge (= 7.1.0) + json-merge (= 7.1.0) + kettle-jem (= 7.1.0) + markly-merge (= 7.1.0) + plain-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge + specs: + toml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver + specs: + tree_haver (7.1.0) + citrus (~> 3.0) + parslet (~> 2.0) + tree_sitter_language_pack (>= 1.13.2, < 2.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge + specs: + typescript-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge + specs: + yaml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge + specs: + zip-merge (7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + GEM remote: https://gem.coop/ specs: @@ -21,11 +281,6 @@ GEM rubocop (>= 1.0) version_gem (~> 1.1, >= 1.1.14) ast (2.4.3) - ast-merge (7.1.0) - benchmark - token-resolver (~> 2.0, >= 2.0.4) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) backports (3.25.3) benchmark (0.5.0) bigdecimal (4.1.2) @@ -35,6 +290,11 @@ GEM cgi (0.5.2) citrus (3.0.2) cmdparse (3.0.7) + commonmarker (2.9.0-aarch64-linux) + commonmarker (2.9.0-aarch64-linux-musl) + commonmarker (2.9.0-arm64-darwin) + commonmarker (2.9.0-x86_64-linux) + commonmarker (2.9.0-x86_64-linux-musl) concurrent-ruby (1.3.8) date (3.5.1) debug (1.11.1) @@ -97,6 +357,8 @@ GEM kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) + kettle-drift (1.0.6) + version_gem (~> 1.1, >= 1.1.14) kettle-rb (0.1.5) kettle-soup-cover (3.0.4) kettle-wash (~> 0.1, >= 0.1.0) @@ -125,6 +387,7 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) + markly (0.16.0) mutex_m (0.3.0) nokogiri (1.19.4-aarch64-linux-gnu) racc (~> 1.4) @@ -287,6 +550,8 @@ GEM ruby-progressbar (1.13.0) ruby_engine (2.0.3) ruby_version (1.0.3) + service_actor (3.9.4) + zeitwerk (>= 1.0) silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) @@ -341,11 +606,11 @@ GEM token-resolver (2.0.5) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.14) - tree_haver (7.1.0) - citrus (~> 3.0) - parslet (~> 2.0) - tree_sitter_language_pack (>= 1.13.2, < 2.0) - version_gem (~> 1.1, >= 1.1.9) + toml (0.3.0) + parslet (>= 1.8.0, < 3.0.0) + toml-rb (4.2.0) + citrus (~> 3.0, > 3.0) + racc (~> 1.7) tree_sitter_language_pack (1.13.3-aarch64-linux) sorbet-runtime (~> 0.5) tree_sitter_language_pack (1.13.3-arm64-darwin) @@ -400,24 +665,46 @@ DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.2, >= 3.2.0) appraisal2-rubocop (~> 1.0, >= 1.0.0) + ast-crispr! + ast-crispr-markdown-markly! + ast-crispr-ruby-prism! + ast-merge! + ast-merge-git! + ast-template! + bash-merge! benchmark (~> 0.5, >= 0.5.0) + binary-merge! bundler-audit (~> 0.9.3) cgi (~> 0.5) + citrus-toml-merge! + commonmarker-merge! debug (>= 1.1) dotenv-merge! erb (~> 6.0, >= 6.0.6) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.4) + go-merge! irb (~> 1.17) + json-merge! kettle-dev (~> 2.3, >= 2.3.7) + kettle-drift (~> 1.0, >= 1.0.6) + kettle-jem! kettle-soup-cover (~> 3.0, >= 3.0.3) kettle-test (~> 2.0, >= 2.0.12) kramdown (~> 2.5, >= 2.5.2) + kramdown-merge! kramdown-parser-gfm (~> 1.1) + markdown-merge! + markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) + parslet-toml-merge! + plain-merge! + prism-merge! + psych-merge! rake (~> 13.0) rbs (>= 3.0) + rbs-merge! rdoc (~> 6.11) reek (~> 6.5, >= 6.5.0) require_bench (~> 1.0, >= 1.0.4) @@ -428,20 +715,28 @@ DEPENDENCIES rubocop-on-rbs (~> 2.0, >= 2.0.0) rubocop-packaging (~> 0.6, >= 0.6.0) rubocop-ruby3_2 (~> 3.0, >= 3.0.6) + ruby-merge! ruby-progressbar (~> 1.13) + rust-merge! + smorg-rb! standard (~> 1.56, >= 1.56.0) stone_checksums (~> 1.0, >= 1.0.6) stringio (>= 3.0) + toml-merge! + tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) turbo_tests2 (~> 3.2, >= 3.2.0) + typescript-merge! webrick (~> 1.9) yaml-converter (~> 0.2, >= 0.2.3) + yaml-merge! yard (~> 0.9, >= 0.9.45) yard-fence (~> 0.9, >= 0.9.6) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) yard-timekeeper (~> 0.2, >= 0.2.4) yard-yaml (~> 0.2, >= 0.2.3) + zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af @@ -449,14 +744,28 @@ CHECKSUMS appraisal2 (3.2.0) sha256=ccd0b767ac4060cd7af6d16747459b6990f49c39c7b4fb1f7d1146b1e97c492f appraisal2-rubocop (1.0.0) sha256=b71410fbb014befda5340605a605b7f6f3f012739baf0acc5b4351b592c3258d ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 + ast-crispr (7.1.0) + ast-crispr-markdown-markly (7.1.0) + ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) + ast-merge-git (7.1.0) + ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 + bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd + binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 + citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 + commonmarker (2.9.0-aarch64-linux) sha256=e2b4aadb9a2cfa4e206582641ce3a49465549ac1ed4c289fdd63b78d8f24579c + commonmarker (2.9.0-aarch64-linux-musl) sha256=1cf4d2821f2a7e64945f1ed7c4eeced586fdb27ea7fe7337788802cf8f57cfca + commonmarker (2.9.0-arm64-darwin) sha256=1748dbfa4f5813b0d2a14bb4bbfa65a4ec293aa1c825016d60029ee0e132b046 + commonmarker (2.9.0-x86_64-linux) sha256=8cfe92970eef585a19ddf6613224b91cab64d6029834661bda801f877c9c7f43 + commonmarker (2.9.0-x86_64-linux-musl) sha256=293921398b839f79ceaf55010e061357e34f053822c3b003cd0be6686176335e + commonmarker-merge (7.1.0) concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 @@ -476,20 +785,28 @@ CHECKSUMS gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f + go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 + json-merge (7.1.0) kettle-dev (2.3.8) sha256=9d716ff21c660a730cb4e8d41e2e2f0630a28167a354b6e2924e242102aef72c + kettle-drift (1.0.6) sha256=46eda08fa4411d1f3c6682a95eef1c9df4e94611b3949f49d4c7b43c0ed356a3 + kettle-jem (7.1.0) kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f kettle-soup-cover (3.0.4) kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa + kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 + markdown-merge (7.1.0) + markly (0.16.0) sha256=6f70d79e385b1efc9e171f74c81628826259039fe6c778e03c3924c71dac5511 + markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-aarch64-linux-gnu) sha256=1269fb644a6de405057a53dd5c762b1209b43ca7424f839454d3dbc677c31a8f nokogiri (1.19.4-aarch64-linux-musl) sha256=35c65b9ce72b3bb03207bdbe7067915019dc18c1b9b59139684bd6690fdd01af @@ -503,15 +820,20 @@ CHECKSUMS parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 + parslet-toml-merge (7.1.0) + plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 + prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 + psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 + rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb @@ -546,15 +868,19 @@ CHECKSUMS rubocop-rspec_rails (2.32.0) sha256=4a0d641c72f6ebb957534f539d9d0a62c47abd8ce0d0aeee1ef4701e892a9100 rubocop-ruby3_2 (3.0.7) sha256=f53dd6d286fb05186214fc6ec116783e7f837030918e8931c05de773e98f8466 rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 + ruby-merge (7.1.0) ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 + rust-merge (7.1.0) + service_actor (3.9.4) sha256=e63b523630b9a7e62959b2a90113b08d2565b5de9c148557b281ef847c9539ce silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed + smorg-rb (7.1.0) sorbet-runtime (0.6.13347) sha256=54e7221d9f4b63f58aec79f3043752a9ba7810347c6ae0d903531591cc2d5f01 standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b @@ -569,17 +895,22 @@ CHECKSUMS timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.5) sha256=b852f924287ffb58a440856e862b056c8ad97e74b4b2526cee43e0771f40c25c + toml (0.3.0) sha256=0a91d0f76a9036e84e44f95693b12f58d358c1df3ac8e3b5271f2056ecc6e4b9 + toml-merge (7.1.0) + toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-aarch64-linux) sha256=55ffc7c87868cb45658338363d9eba51b4a8b0259aa88e4de368d2bd1d52fea4 tree_sitter_language_pack (1.13.3-arm64-darwin) sha256=bc2498db605f212a1dbd2465ed3f65190d7da786f6ed5d30fcf958121aeb4a5c tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 + typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 webrick (1.9.2) sha256=beb4a15fc474defed24a3bda4ffd88a490d517c9e4e6118c3edce59e45864131 yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 + yaml-merge (7.1.0) yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd @@ -587,6 +918,7 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 + zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH diff --git a/gems/plain-merge/.rubocop_gradual.lock b/gems/plain-merge/.rubocop_gradual.lock new file mode 100644 index 000000000..53de6396a --- /dev/null +++ b/gems/plain-merge/.rubocop_gradual.lock @@ -0,0 +1,120 @@ +{ + ".simplecov:4150254997": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "Rakefile:4149951629": [ + [18, 121, 17, "Layout/LineLength: Line is too long. [137/120]", 174264873], + [79, 3, 1023, "Metrics/BlockLength: Block has too many lines. [32/25]", 54868638], + [163, 121, 22, "Layout/LineLength: Line is too long. [142/120]", 1367093088], + [166, 121, 18, "Layout/LineLength: Line is too long. [138/120]", 3881946477] + ], + "gemfiles/modular/benchmark/r4/v0.5.gemfile:3644720371": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/benchmark/vHEAD.gemfile:2838879269": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/cgi/r4/v0.5.gemfile:367169322": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/cgi/vHEAD.gemfile:2729540777": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/erb/r2/v3.0.gemfile:1688285565": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/erb/r3/v5.0.gemfile:2394062339": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/erb/r4/v5.0.gemfile:2394062339": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/erb/vHEAD.gemfile:981929959": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/mutex_m/r2/v0.3.gemfile:4055275004": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/mutex_m/r3/v0.3.gemfile:4055275004": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/mutex_m/r4/v0.3.gemfile:4055275004": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/mutex_m/vHEAD.gemfile:556854763": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/rspec.gemfile:2263543889": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/stringio/r2/v3.0.gemfile:821604304": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/stringio/r3/v3.0.gemfile:821604304": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/stringio/r4/v3.0.gemfile:821604304": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/stringio/vHEAD.gemfile:1045839691": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/webrick/r4/v1.9.gemfile:3092661193": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/webrick/vHEAD.gemfile:3867684682": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/x_std_libs.gemfile:2324400122": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/x_std_libs/r2/libs.gemfile:36276542": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] + ], + "gemfiles/modular/x_std_libs/r3/libs.gemfile:4030570297": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] + ], + "gemfiles/modular/x_std_libs/r4/libs.gemfile:732451732": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] + ], + "gemfiles/modular/x_std_libs/vHEAD.gemfile:2390363993": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] + ], + "lib/plain-merge.rb:619298015": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`plain-merge.rb`) should use snake_case.", 5381] + ], + "lib/plain/merge.rb:3584995729": [ + [9, 3, 12, "Style/Documentation: Missing top-level documentation comment for `module Plain::Merge`.", 2866359175], + [9, 3, 7932, "Metrics/ModuleLength: Module has too many lines. [211/100]", 719656966], + [42, 5, 645, "Metrics/MethodLength: Method has too many lines. [21/10]", 3773389417], + [69, 5, 513, "Metrics/AbcSize: Assignment Branch Condition size for `similarity_score` is too high. [<9, 17, 3> 19.47/17]", 594433443], + [69, 5, 513, "Metrics/MethodLength: Method has too many lines. [12/10]", 594433443], + [87, 9, 10, "Naming/PredicatePrefix: Rename `is_similar` to `similar?`.", 1730577729], + [96, 5, 2163, "Metrics/AbcSize: Assignment Branch Condition size for `match_text_blocks` is too high. [<25, 36, 16> 46.66/17]", 1824707567], + [96, 5, 2163, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `match_text_blocks` is too high. [14/7]", 1824707567], + [96, 5, 2163, "Metrics/MethodLength: Method has too many lines. [50/10]", 1824707567], + [96, 5, 2163, "Metrics/PerceivedComplexity: Perceived complexity for `match_text_blocks` is too high. [14/8]", 1824707567], + [119, 7, 1032, "Style/CombinableLoops: Combine this loop with the previous loop.", 2654397768], + [158, 5, 683, "Metrics/AbcSize: Assignment Branch Condition size for `merge_text` is too high. [<11, 16, 4> 19.82/17]", 3448903566], + [158, 5, 683, "Metrics/MethodLength: Method has too many lines. [14/10]", 3448903566], + [178, 5, 633, "Metrics/AbcSize: Assignment Branch Condition size for `refined_text_similarity` is too high. [<3, 17, 0> 17.26/17]", 2185070085], + [208, 5, 700, "Metrics/AbcSize: Assignment Branch Condition size for `levenshtein_distance` is too high. [<8, 31, 8> 33/17]", 1827550752], + [208, 5, 700, "Metrics/MethodLength: Method has too many lines. [18/10]", 1827550752] + ], + "plain-merge.gemspec:3762840848": [ + [128, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 2821357214], + [143, 121, 50, "Layout/LineLength: Line is too long. [170/120]", 3888612416], + [144, 121, 29, "Layout/LineLength: Line is too long. [149/120]", 981994949], + [151, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 4229808912] + ], + "spec/fixtures_integration_spec.rb:922433761": [ + [3, 1, 3550, "Metrics/BlockLength: Block has too many lines. [77/25]", 4225834063] + ] +} diff --git a/gems/plain-merge/.simplecov b/gems/plain-merge/.simplecov index ce73cbcb7..087cab373 100644 --- a/gems/plain-merge/.simplecov +++ b/gems/plain-merge/.simplecov @@ -10,5 +10,5 @@ # If the values for minimum coverage need to change, they should be changed both there, # and in 2 places in .github/workflows/coverage.yml. SimpleCov.configure do - cover "lib/**/*.rb", "lib/**/*.rake", "exe/*.rb" + cover 'lib/**/*.rb', 'lib/**/*.rake', 'exe/*.rb' end diff --git a/gems/plain-merge/Gemfile b/gems/plain-merge/Gemfile index d8937aeee..c12ef61e2 100644 --- a/gems/plain-merge/Gemfile +++ b/gems/plain-merge/Gemfile @@ -6,7 +6,7 @@ # kettle-jem will then preserve content between those markers across template runs. # kettle-jem:unfreeze -source "https://gem.coop" +source 'https://gem.coop' git_source(:codeberg) { |repo_name| "https://codeberg.org/#{repo_name}" } git_source(:gitlab) { |repo_name| "https://gitlab.com/#{repo_name}" } @@ -19,58 +19,54 @@ git_source(:gitlab) { |repo_name| "https://gitlab.com/#{repo_name}" } gemspec # Local workspace dependency wiring for *_local.gemfile overrides -nomono_requirements = ["~> 1.0", ">= 1.0.8"] -gem "nomono", *nomono_requirements, require: false # ruby >= 2.2 +nomono_requirements = ['~> 1.0', '>= 1.0.8'] +gem 'nomono', *nomono_requirements, require: false # ruby >= 2.2 # Direct sibling dependencies (env-switched via STRUCTUREDMERGE_DEV) direct_sibling_gems = %w[ ast-merge tree_haver ] -direct_sibling_dev = ENV.fetch("STRUCTUREDMERGE_DEV", "") +direct_sibling_dev = ENV.fetch('STRUCTUREDMERGE_DEV', '') direct_sibling_local = !direct_sibling_dev.empty? && !%w[false 0 no off].include?(direct_sibling_dev.downcase) -direct_sibling_templating = ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? +direct_sibling_templating = ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero?) - direct_sibling_dev_was_set = ENV.key?("STRUCTUREDMERGE_DEV") - direct_sibling_dev_original = ENV.fetch("STRUCTUREDMERGE_DEV", nil) + (direct_sibling_local || + ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) + direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') + direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) begin nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path("Gemfile.lock", __dir__) + nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == "nomono" } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - if nomono_locked - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] - end - end - Kernel.send(:gem, "nomono", *nomono_activation_requirements) - require "nomono/bundler" - if direct_sibling_templating && !direct_sibling_local - ENV["STRUCTUREDMERGE_DEV"] = File.expand_path("..", __dir__) + Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked end + Kernel.send(:gem, 'nomono', *nomono_activation_requirements) + require 'nomono/bundler' + ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local eval_nomono_gems( gems: direct_sibling_gems, - prefix: "STRUCTUREDMERGE", - path_env: "STRUCTUREDMERGE_DEV", - root: ["src", "my", "structuredmerge"] + prefix: 'STRUCTUREDMERGE', + path_env: 'STRUCTUREDMERGE_DEV', + root: %w[src my structuredmerge] ) rescue LoadError - warn "Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies." + warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' ensure if direct_sibling_templating && !direct_sibling_local if direct_sibling_dev_was_set - ENV["STRUCTUREDMERGE_DEV"] = direct_sibling_dev_original + ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original else - ENV.delete("STRUCTUREDMERGE_DEV") + ENV.delete('STRUCTUREDMERGE_DEV') end end end @@ -157,28 +153,28 @@ if direct_sibling_gems.any? && end # Use released TSLP with the Ruby ABI platform-gem fix. -gem "tree_sitter_language_pack", "~> 1.13", ">= 1.13.3" +gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' # Templating (env-switched: STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local paths) -eval_gemfile "gemfiles/modular/templating.gemfile" if ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? +eval_gemfile 'gemfiles/modular/templating.gemfile' if ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? # Debugging -eval_gemfile "gemfiles/modular/debug.gemfile" +eval_gemfile 'gemfiles/modular/debug.gemfile' # Code Coverage (env-switched: KETTLE_DEV_DEV=true for local paths) -eval_gemfile "gemfiles/modular/coverage.gemfile" +eval_gemfile 'gemfiles/modular/coverage.gemfile' # Linting -eval_gemfile "gemfiles/modular/style.gemfile" +eval_gemfile 'gemfiles/modular/style.gemfile' # Documentation -eval_gemfile "gemfiles/modular/documentation.gemfile" +eval_gemfile 'gemfiles/modular/documentation.gemfile' # Optional -eval_gemfile "gemfiles/modular/optional.gemfile" +eval_gemfile 'gemfiles/modular/optional.gemfile' ### Std Lib Extracted Gems -eval_gemfile "gemfiles/modular/x_std_libs.gemfile" +eval_gemfile 'gemfiles/modular/x_std_libs.gemfile' # See unlocked_deps appraisal for more details on irb inclusion -gem "irb", "~> 1.17" # ruby >= 2.7 +gem 'irb', '~> 1.17' # ruby >= 2.7 diff --git a/gems/plain-merge/Gemfile.lock b/gems/plain-merge/Gemfile.lock index 58f9efa21..bc90d4c59 100644 --- a/gems/plain-merge/Gemfile.lock +++ b/gems/plain-merge/Gemfile.lock @@ -7,7 +7,7 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/ast-merge specs: ast-merge (7.1.0) benchmark @@ -16,7 +16,7 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/tree_haver specs: tree_haver (7.1.0) citrus (~> 3.0) @@ -105,7 +105,7 @@ GEM rdoc (>= 4.0.0) reline (>= 0.4.2) json (2.21.1) - kettle-dev (2.3.8) + kettle-dev (2.3.9) emoji_regex (>= 15.0) kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) @@ -488,7 +488,7 @@ CHECKSUMS io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 - kettle-dev (2.3.8) sha256=9d716ff21c660a730cb4e8d41e2e2f0630a28167a354b6e2924e242102aef72c + kettle-dev (2.3.9) kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f kettle-soup-cover (3.0.4) kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 diff --git a/gems/plain-merge/Rakefile b/gems/plain-merge/Rakefile index 571409183..c1132c880 100644 --- a/gems/plain-merge/Rakefile +++ b/gems/plain-merge/Rakefile @@ -130,23 +130,23 @@ end ### DUPLICATE DRIFT TASKS begin - require "kettle/drift" + require 'kettle/drift' Kettle::Drift.install_tasks rescue LoadError - desc("(stub) kettle:drift:check is unavailable") - task("kettle:drift:check") do + desc('(stub) kettle:drift:check is unavailable') + task('kettle:drift:check') do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc("(stub) kettle:drift:update is unavailable") - task("kettle:drift:update") do + desc('(stub) kettle:drift:update is unavailable') + task('kettle:drift:update') do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc("(stub) kettle:drift:force_update is unavailable") - task("kettle:drift:force_update") do + desc('(stub) kettle:drift:force_update is unavailable') + task('kettle:drift:force_update') do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc("(stub) kettle:drift is unavailable") - task("kettle:drift" => "kettle:drift:update") + desc('(stub) kettle:drift is unavailable') + task('kettle:drift' => 'kettle:drift:update') end ### TEMPLATING TASKS diff --git a/gems/plain-merge/bin/yard b/gems/plain-merge/bin/yard index a7e8b6eed..5d516ad6f 100755 --- a/gems/plain-merge/bin/yard +++ b/gems/plain-merge/bin/yard @@ -12,4 +12,4 @@ # `yard` / `bin/yard`. Keep this binstub as a handoff to the task so # humans and tools that reach for `bin/yard` still run the full docs # workflow with post-processing hooks. -exec("bundle", "exec", "rake", "yard") +exec('bundle', 'exec', 'rake', 'yard') diff --git a/gems/plain-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile b/gems/plain-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile index dec650815..b8392fab0 100644 --- a/gems/plain-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile +++ b/gems/plain-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.1 -gem "benchmark", "~> 0.5", ">= 0.5.0" # Removed from Std Lib in Ruby 4.0 +gem 'benchmark', '~> 0.5', '>= 0.5.0' # Removed from Std Lib in Ruby 4.0 diff --git a/gems/plain-merge/gemfiles/modular/benchmark/vHEAD.gemfile b/gems/plain-merge/gemfiles/modular/benchmark/vHEAD.gemfile index e1eb20c5e..af214aafa 100644 --- a/gems/plain-merge/gemfiles/modular/benchmark/vHEAD.gemfile +++ b/gems/plain-merge/gemfiles/modular/benchmark/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.1 -gem "benchmark", github: "ruby/benchmark", branch: "master" +gem 'benchmark', github: 'ruby/benchmark', branch: 'master' diff --git a/gems/plain-merge/gemfiles/modular/cgi/r4/v0.5.gemfile b/gems/plain-merge/gemfiles/modular/cgi/r4/v0.5.gemfile index 19ed967c3..17ad97260 100644 --- a/gems/plain-merge/gemfiles/modular/cgi/r4/v0.5.gemfile +++ b/gems/plain-merge/gemfiles/modular/cgi/r4/v0.5.gemfile @@ -1 +1 @@ -gem "cgi", "~> 0.5" +gem 'cgi', '~> 0.5' diff --git a/gems/plain-merge/gemfiles/modular/cgi/vHEAD.gemfile b/gems/plain-merge/gemfiles/modular/cgi/vHEAD.gemfile index ef8b816ce..650fbf033 100644 --- a/gems/plain-merge/gemfiles/modular/cgi/vHEAD.gemfile +++ b/gems/plain-merge/gemfiles/modular/cgi/vHEAD.gemfile @@ -1 +1 @@ -gem "cgi", ">= 0.5" +gem 'cgi', '>= 0.5' diff --git a/gems/plain-merge/gemfiles/modular/coverage.gemfile b/gems/plain-merge/gemfiles/modular/coverage.gemfile index 52d737872..b93014b6b 100644 --- a/gems/plain-merge/gemfiles/modular/coverage.gemfile +++ b/gems/plain-merge/gemfiles/modular/coverage.gemfile @@ -4,11 +4,11 @@ # Set KETTLE_DEV_DEV=true for local development with path-based dependencies. # When false (default / CI), remote released gems are used. -if ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false").zero? +if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? # Coverage (remote/released) platform :mri do - gem "kettle-soup-cover", "~> 3.0", ">= 3.0.3", require: false + gem 'kettle-soup-cover', '~> 3.0', '>= 3.0.3', require: false end else - eval_gemfile "coverage_local.gemfile" + eval_gemfile 'coverage_local.gemfile' end diff --git a/gems/plain-merge/gemfiles/modular/coverage_local.gemfile b/gems/plain-merge/gemfiles/modular/coverage_local.gemfile index c333a0abc..e40a42a87 100644 --- a/gems/plain-merge/gemfiles/modular/coverage_local.gemfile +++ b/gems/plain-merge/gemfiles/modular/coverage_local.gemfile @@ -11,21 +11,19 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] -nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) +nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] +nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == "nomono" } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - if nomono_locked - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] - end + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked end -Kernel.send(:gem, "nomono", *nomono_activation_requirements) -require "nomono/bundler" +Kernel.send(:gem, 'nomono', *nomono_activation_requirements) +require 'nomono/bundler' local_gems = %w[kettle-dev kettle-test kettle-soup-cover kettle-drift] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) @@ -35,21 +33,21 @@ local_gems_to_eval = local_gems - %w[plain-merge] - declared_gems platform :mri do eval_nomono_gems( gems: local_gems_to_eval, - prefix: "KETTLE_DEV", - path_env: "KETTLE_DEV_DEV", - vendored_gems_env: "VENDORED_GEMS", - vendor_gem_dir_env: "VENDOR_GEM_DIR", - debug_env: "KETTLE_DEV_DEBUG" + prefix: 'KETTLE_DEV', + path_env: 'KETTLE_DEV_DEV', + vendored_gems_env: 'VENDORED_GEMS', + vendor_gem_dir_env: 'VENDOR_GEM_DIR', + debug_env: 'KETTLE_DEV_DEBUG' ) - if ENV.fetch("GALTZO_FLOSS_DEV", "false").casecmp("false") != 0 + if ENV.fetch('GALTZO_FLOSS_DEV', 'false').casecmp('false') != 0 eval_nomono_gems( gems: %w[turbo_tests2], - prefix: "GALTZO_FLOSS", - path_env: "GALTZO_FLOSS_DEV", - vendored_gems_env: "GALTZO_FLOSS_VENDORED_GEMS", - vendor_gem_dir_env: "GALTZO_FLOSS_VENDOR_GEM_DIR", - debug_env: "GALTZO_FLOSS_DEBUG" + prefix: 'GALTZO_FLOSS', + path_env: 'GALTZO_FLOSS_DEV', + vendored_gems_env: 'GALTZO_FLOSS_VENDORED_GEMS', + vendor_gem_dir_env: 'GALTZO_FLOSS_VENDOR_GEM_DIR', + debug_env: 'GALTZO_FLOSS_DEBUG' ) end end diff --git a/gems/plain-merge/gemfiles/modular/debug.gemfile b/gems/plain-merge/gemfiles/modular/debug.gemfile index 4e15b1a3a..eed8d4d1e 100644 --- a/gems/plain-merge/gemfiles/modular/debug.gemfile +++ b/gems/plain-merge/gemfiles/modular/debug.gemfile @@ -13,10 +13,10 @@ platform :mri do # Debugging - Ensure ENV["DEBUG"] == "true" to use debuggers within spec suite # Use binding.break, binding.b, or debugger in code - gem "debug", ">= 1.1" # ruby >= 2.7 + gem 'debug', '>= 1.1' # ruby >= 2.7 # Dev Console - Binding.pry - Irb replacement # gem "pry", "~> 0.14" # ruby >= 2.0 end -gem "gem_bench", "~> 2.0", ">= 2.0.5" +gem 'gem_bench', '~> 2.0', '>= 2.0.5' diff --git a/gems/plain-merge/gemfiles/modular/documentation.gemfile b/gems/plain-merge/gemfiles/modular/documentation.gemfile index d8215416e..9d4535f12 100644 --- a/gems/plain-merge/gemfiles/modular/documentation.gemfile +++ b/gems/plain-merge/gemfiles/modular/documentation.gemfile @@ -7,20 +7,20 @@ # # Documentation -gem "kramdown", "~> 2.5", ">= 2.5.2", require: false # Ruby >= 2.5 -gem "kramdown-parser-gfm", "~> 1.1", require: false # Ruby >= 2.3 -gem "yaml-converter", "~> 0.2", ">= 0.2.3", require: false # Ruby >= 3.2 -gem "yard", "~> 0.9", ">= 0.9.45", require: false -gem "yard-junk", "~> 0.1", ">= 0.1.0", require: false # Ruby >= 3.1 -gem "yard-relative_markdown_links", "~> 0.6", require: false +gem 'kramdown', '~> 2.5', '>= 2.5.2', require: false # Ruby >= 2.5 +gem 'kramdown-parser-gfm', '~> 1.1', require: false # Ruby >= 2.3 +gem 'yaml-converter', '~> 0.2', '>= 0.2.3', require: false # Ruby >= 3.2 +gem 'yard', '~> 0.9', '>= 0.9.45', require: false +gem 'yard-junk', '~> 0.1', '>= 0.1.0', require: false # Ruby >= 3.1 +gem 'yard-relative_markdown_links', '~> 0.6', require: false -if ENV.fetch("GALTZO_FLOSS_DEV", "false").casecmp("false").zero? - gem "yard-fence", "~> 0.9", ">= 0.9.6", require: false # Ruby >= 3.2 - gem "yard-timekeeper", "~> 0.2", ">= 0.2.4", require: false - gem "yard-yaml", "~> 0.2", ">= 0.2.3", require: false +if ENV.fetch('GALTZO_FLOSS_DEV', 'false').casecmp('false').zero? + gem 'yard-fence', '~> 0.9', '>= 0.9.6', require: false # Ruby >= 3.2 + gem 'yard-timekeeper', '~> 0.2', '>= 0.2.4', require: false + gem 'yard-yaml', '~> 0.2', '>= 0.2.3', require: false else - eval_gemfile "documentation_local.gemfile" + eval_gemfile 'documentation_local.gemfile' end # Std Lib extractions -gem "rdoc", "~> 6.11", require: false unless ENV.fetch("KJ_FRAMEWORK_MATRIX_GEM", "") == "rdoc" +gem 'rdoc', '~> 6.11', require: false unless ENV.fetch('KJ_FRAMEWORK_MATRIX_GEM', '') == 'rdoc' diff --git a/gems/plain-merge/gemfiles/modular/documentation_local.gemfile b/gems/plain-merge/gemfiles/modular/documentation_local.gemfile index c0407019d..1f2016c3b 100644 --- a/gems/plain-merge/gemfiles/modular/documentation_local.gemfile +++ b/gems/plain-merge/gemfiles/modular/documentation_local.gemfile @@ -11,21 +11,19 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] -nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) +nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] +nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == "nomono" } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - if nomono_locked - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] - end + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked end -Kernel.send(:gem, "nomono", *nomono_activation_requirements) -require "nomono/bundler" +Kernel.send(:gem, 'nomono', *nomono_activation_requirements) +require 'nomono/bundler' local_gems = %w[yard-fence yard-timekeeper yard-yaml] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) @@ -34,9 +32,9 @@ local_gems_to_eval = local_gems - %w[plain-merge] - declared_gems # export GALTZO_FLOSS_DEV=/path/to/galtzo-floss eval_nomono_gems( gems: local_gems_to_eval, - prefix: "GALTZO_FLOSS", - path_env: "GALTZO_FLOSS_DEV", - vendored_gems_env: "GALTZO_FLOSS_VENDORED_GEMS", - vendor_gem_dir_env: "GALTZO_FLOSS_VENDOR_GEM_DIR", - debug_env: "GALTZO_FLOSS_DEBUG" + prefix: 'GALTZO_FLOSS', + path_env: 'GALTZO_FLOSS_DEV', + vendored_gems_env: 'GALTZO_FLOSS_VENDORED_GEMS', + vendor_gem_dir_env: 'GALTZO_FLOSS_VENDOR_GEM_DIR', + debug_env: 'GALTZO_FLOSS_DEBUG' ) diff --git a/gems/plain-merge/gemfiles/modular/erb/r2/v3.0.gemfile b/gems/plain-merge/gemfiles/modular/erb/r2/v3.0.gemfile index c03bd8d85..7c83a239b 100644 --- a/gems/plain-merge/gemfiles/modular/erb/r2/v3.0.gemfile +++ b/gems/plain-merge/gemfiles/modular/erb/r2/v3.0.gemfile @@ -1 +1 @@ -gem "erb", "~> 3.0" # ruby >= 2.7.0 +gem 'erb', '~> 3.0' # ruby >= 2.7.0 diff --git a/gems/plain-merge/gemfiles/modular/erb/r3/v5.0.gemfile b/gems/plain-merge/gemfiles/modular/erb/r3/v5.0.gemfile index 1bd029cc1..ec7ff451f 100644 --- a/gems/plain-merge/gemfiles/modular/erb/r3/v5.0.gemfile +++ b/gems/plain-merge/gemfiles/modular/erb/r3/v5.0.gemfile @@ -1 +1 @@ -gem "erb", "~> 6.0", ">= 6.0.6" # ruby >= 3.2.0 +gem 'erb', '~> 6.0', '>= 6.0.6' # ruby >= 3.2.0 diff --git a/gems/plain-merge/gemfiles/modular/erb/r4/v5.0.gemfile b/gems/plain-merge/gemfiles/modular/erb/r4/v5.0.gemfile index 1bd029cc1..ec7ff451f 100644 --- a/gems/plain-merge/gemfiles/modular/erb/r4/v5.0.gemfile +++ b/gems/plain-merge/gemfiles/modular/erb/r4/v5.0.gemfile @@ -1 +1 @@ -gem "erb", "~> 6.0", ">= 6.0.6" # ruby >= 3.2.0 +gem 'erb', '~> 6.0', '>= 6.0.6' # ruby >= 3.2.0 diff --git a/gems/plain-merge/gemfiles/modular/erb/vHEAD.gemfile b/gems/plain-merge/gemfiles/modular/erb/vHEAD.gemfile index 48fee4218..ea0101185 100644 --- a/gems/plain-merge/gemfiles/modular/erb/vHEAD.gemfile +++ b/gems/plain-merge/gemfiles/modular/erb/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 3.2 -gem "erb", github: "ruby/erb", branch: "master" +gem 'erb', github: 'ruby/erb', branch: 'master' diff --git a/gems/plain-merge/gemfiles/modular/json/truffleruby_22_3.gemfile b/gems/plain-merge/gemfiles/modular/json/truffleruby_22_3.gemfile index b0e69ab11..9b2f8d96a 100644 --- a/gems/plain-merge/gemfiles/modular/json/truffleruby_22_3.gemfile +++ b/gems/plain-merge/gemfiles/modular/json/truffleruby_22_3.gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -if RUBY_ENGINE == "truffleruby" && RUBY_ENGINE_VERSION.start_with?("22.3") +if RUBY_ENGINE == 'truffleruby' && RUBY_ENGINE_VERSION.start_with?('22.3') # TruffleRuby 22.3 ships the json default gem from its emulated MRI Ruby. - gem "json", "= 2.5.1" + gem 'json', '= 2.5.1' end diff --git a/gems/plain-merge/gemfiles/modular/json/truffleruby_23_0.gemfile b/gems/plain-merge/gemfiles/modular/json/truffleruby_23_0.gemfile index 7b2660a2b..d787a5ef4 100644 --- a/gems/plain-merge/gemfiles/modular/json/truffleruby_23_0.gemfile +++ b/gems/plain-merge/gemfiles/modular/json/truffleruby_23_0.gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -if RUBY_ENGINE == "truffleruby" && RUBY_ENGINE_VERSION.start_with?("23.0") +if RUBY_ENGINE == 'truffleruby' && RUBY_ENGINE_VERSION.start_with?('23.0') # TruffleRuby 23.0 ships the json default gem from its emulated MRI Ruby. - gem "json", "= 2.6.1" + gem 'json', '= 2.6.1' end diff --git a/gems/plain-merge/gemfiles/modular/json/truffleruby_23_1.gemfile b/gems/plain-merge/gemfiles/modular/json/truffleruby_23_1.gemfile index dfa21f2e4..d78486b0e 100644 --- a/gems/plain-merge/gemfiles/modular/json/truffleruby_23_1.gemfile +++ b/gems/plain-merge/gemfiles/modular/json/truffleruby_23_1.gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -if RUBY_ENGINE == "truffleruby" && RUBY_ENGINE_VERSION.start_with?("23.1") +if RUBY_ENGINE == 'truffleruby' && RUBY_ENGINE_VERSION.start_with?('23.1') # TruffleRuby 23.1 ships the json default gem from its emulated MRI Ruby. - gem "json", "= 2.6.3" + gem 'json', '= 2.6.3' end diff --git a/gems/plain-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile b/gems/plain-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile index 42e9d9bd4..e27f1bbae 100644 --- a/gems/plain-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile +++ b/gems/plain-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 -gem "mutex_m", "~> 0.2" +gem 'mutex_m', '~> 0.2' diff --git a/gems/plain-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile b/gems/plain-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile index 42e9d9bd4..e27f1bbae 100644 --- a/gems/plain-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile +++ b/gems/plain-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 -gem "mutex_m", "~> 0.2" +gem 'mutex_m', '~> 0.2' diff --git a/gems/plain-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile b/gems/plain-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile index 42e9d9bd4..e27f1bbae 100644 --- a/gems/plain-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile +++ b/gems/plain-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 -gem "mutex_m", "~> 0.2" +gem 'mutex_m', '~> 0.2' diff --git a/gems/plain-merge/gemfiles/modular/mutex_m/vHEAD.gemfile b/gems/plain-merge/gemfiles/modular/mutex_m/vHEAD.gemfile index 8af3b6fca..9dac2f6cb 100644 --- a/gems/plain-merge/gemfiles/modular/mutex_m/vHEAD.gemfile +++ b/gems/plain-merge/gemfiles/modular/mutex_m/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 (dependency of omniauth) -gem "mutex_m", github: "ruby/mutex_m", branch: "master" +gem 'mutex_m', github: 'ruby/mutex_m', branch: 'master' diff --git a/gems/plain-merge/gemfiles/modular/optional.gemfile b/gems/plain-merge/gemfiles/modular/optional.gemfile index 80bc45196..9ea429538 100644 --- a/gems/plain-merge/gemfiles/modular/optional.gemfile +++ b/gems/plain-merge/gemfiles/modular/optional.gemfile @@ -9,8 +9,8 @@ # Optional dependencies are not depended on directly, but may be used if present. # Required for curated binstubs generated by kettle-jem install -gem "rbs", ">= 3.0", require: false # ruby >= 3.1 +gem 'rbs', '>= 3.0', require: false # ruby >= 3.1 # Required for kettle-pre-release # URL parsing with Unicode support (falls back to URI if not available) -gem "addressable", ">= 2.8", "< 3" # ruby >= 2.2 +gem 'addressable', '>= 2.8', '< 3' # ruby >= 2.2 diff --git a/gems/plain-merge/gemfiles/modular/rspec.gemfile b/gems/plain-merge/gemfiles/modular/rspec.gemfile index 72fdf8b7f..2af210a41 100644 --- a/gems/plain-merge/gemfiles/modular/rspec.gemfile +++ b/gems/plain-merge/gemfiles/modular/rspec.gemfile @@ -1,4 +1,4 @@ -gem "rspec_junit_formatter", - github: "pboling/rspec_junit_formatter", - branch: "main", - ref: "9e6bcaaedd49477b62878ed568dc4ada5cc7cb5e" +gem 'rspec_junit_formatter', + github: 'pboling/rspec_junit_formatter', + branch: 'main', + ref: '9e6bcaaedd49477b62878ed568dc4ada5cc7cb5e' diff --git a/gems/plain-merge/gemfiles/modular/runtime_heads.gemfile b/gems/plain-merge/gemfiles/modular/runtime_heads.gemfile index 02f134c7f..ebf17c529 100644 --- a/gems/plain-merge/gemfiles/modular/runtime_heads.gemfile +++ b/gems/plain-merge/gemfiles/modular/runtime_heads.gemfile @@ -8,4 +8,4 @@ # Test against HEAD of runtime dependencies so we can proactively file bugs -eval_gemfile("x_std_libs/vHEAD.gemfile") +eval_gemfile('x_std_libs/vHEAD.gemfile') diff --git a/gems/plain-merge/gemfiles/modular/stringio/r2/v3.0.gemfile b/gems/plain-merge/gemfiles/modular/stringio/r2/v3.0.gemfile index e85bb18ee..3616f4e3a 100644 --- a/gems/plain-merge/gemfiles/modular/stringio/r2/v3.0.gemfile +++ b/gems/plain-merge/gemfiles/modular/stringio/r2/v3.0.gemfile @@ -2,4 +2,4 @@ # NOT SEMVER # Version 3.0.7 dropped support for Ruby <= 2.7 # Version 3.0.0 dropped support for Ruby <= 2.4 -gem "stringio", ">= 3.0" +gem 'stringio', '>= 3.0' diff --git a/gems/plain-merge/gemfiles/modular/stringio/r3/v3.0.gemfile b/gems/plain-merge/gemfiles/modular/stringio/r3/v3.0.gemfile index e85bb18ee..3616f4e3a 100644 --- a/gems/plain-merge/gemfiles/modular/stringio/r3/v3.0.gemfile +++ b/gems/plain-merge/gemfiles/modular/stringio/r3/v3.0.gemfile @@ -2,4 +2,4 @@ # NOT SEMVER # Version 3.0.7 dropped support for Ruby <= 2.7 # Version 3.0.0 dropped support for Ruby <= 2.4 -gem "stringio", ">= 3.0" +gem 'stringio', '>= 3.0' diff --git a/gems/plain-merge/gemfiles/modular/stringio/r4/v3.0.gemfile b/gems/plain-merge/gemfiles/modular/stringio/r4/v3.0.gemfile index e85bb18ee..3616f4e3a 100644 --- a/gems/plain-merge/gemfiles/modular/stringio/r4/v3.0.gemfile +++ b/gems/plain-merge/gemfiles/modular/stringio/r4/v3.0.gemfile @@ -2,4 +2,4 @@ # NOT SEMVER # Version 3.0.7 dropped support for Ruby <= 2.7 # Version 3.0.0 dropped support for Ruby <= 2.4 -gem "stringio", ">= 3.0" +gem 'stringio', '>= 3.0' diff --git a/gems/plain-merge/gemfiles/modular/stringio/vHEAD.gemfile b/gems/plain-merge/gemfiles/modular/stringio/vHEAD.gemfile index 5f2a74126..78f5f5d8a 100644 --- a/gems/plain-merge/gemfiles/modular/stringio/vHEAD.gemfile +++ b/gems/plain-merge/gemfiles/modular/stringio/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 (dependency of omniauth) -gem "stringio", github: "ruby/stringio", branch: "master" +gem 'stringio', github: 'ruby/stringio', branch: 'master' diff --git a/gems/plain-merge/gemfiles/modular/style.gemfile b/gems/plain-merge/gemfiles/modular/style.gemfile index 35de4dcd6..4dbcc02c0 100644 --- a/gems/plain-merge/gemfiles/modular/style.gemfile +++ b/gems/plain-merge/gemfiles/modular/style.gemfile @@ -9,23 +9,23 @@ # Style tasks run on the latest Ruby; RuboCop-LTS selects the compatibility # rules for the configured Ruby floor independently from task dependency floors. -gem "reek", "~> 6.5", ">= 6.5.0" +gem 'reek', '~> 6.5', '>= 6.5.0' platform :mri do - gem "appraisal2-rubocop", "~> 1.0", ">= 1.0.0", require: false - gem "rubocop-gradual", "~> 0.4", ">= 0.4.0" - gem "rubocop-minitest", "~> 0.40", ">= 0.40.0" - gem "rubocop-on-rbs", "~> 2.0", ">= 2.0.0" # ruby >= 3.2.0 + gem 'appraisal2-rubocop', '~> 1.0', '>= 1.0.0', require: false + gem 'rubocop-gradual', '~> 0.4', '>= 0.4.0' + gem 'rubocop-minitest', '~> 0.40', '>= 0.40.0' + gem 'rubocop-on-rbs', '~> 2.0', '>= 2.0.0' # ruby >= 3.2.0 # gem "rubocop", "~> 1.73", ">= 1.73.2" # constrained by standard - gem "rubocop-packaging", "~> 0.6", ">= 0.6.0" - gem "standard", "~> 1.56", ">= 1.56.0" + gem 'rubocop-packaging', '~> 0.6', '>= 0.6.0' + gem 'standard', '~> 1.56', '>= 1.56.0' - if ENV.fetch("RUBOCOP_LTS_LOCAL", "false").casecmp("false").zero? + if ENV.fetch('RUBOCOP_LTS_LOCAL', 'false').casecmp('false').zero? declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) - gem "rubocop-lts", "~> 24.2", ">= 24.2.1" unless declared_gems.include?("rubocop-lts") - gem "rubocop-lts-rspec", "~> 1.0", ">= 1.0.5" unless declared_gems.include?("rubocop-lts-rspec") - gem "rubocop-ruby3_2", "~> 3.0", ">= 3.0.6" unless declared_gems.include?("rubocop-ruby3_2") + gem 'rubocop-lts', '~> 24.2', '>= 24.2.1' unless declared_gems.include?('rubocop-lts') + gem 'rubocop-lts-rspec', '~> 1.0', '>= 1.0.5' unless declared_gems.include?('rubocop-lts-rspec') + gem 'rubocop-ruby3_2', '~> 3.0', '>= 3.0.6' unless declared_gems.include?('rubocop-ruby3_2') else - eval_gemfile("style_local.gemfile") + eval_gemfile('style_local.gemfile') end end diff --git a/gems/plain-merge/gemfiles/modular/style_local.gemfile b/gems/plain-merge/gemfiles/modular/style_local.gemfile index b702870a0..9b6846285 100644 --- a/gems/plain-merge/gemfiles/modular/style_local.gemfile +++ b/gems/plain-merge/gemfiles/modular/style_local.gemfile @@ -14,21 +14,19 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] -nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) +nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] +nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == "nomono" } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - if nomono_locked - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] - end + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked end -Kernel.send(:gem, "nomono", *nomono_activation_requirements) -require "nomono/bundler" +Kernel.send(:gem, 'nomono', *nomono_activation_requirements) +require 'nomono/bundler' local_gems = %w[rubocop-lts rubocop-lts-rspec rubocop-ruby3_2 standard-rubocop-lts] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) @@ -38,11 +36,11 @@ local_gems_to_eval = local_gems - %w[plain-merge] - declared_gems platform :mri do eval_nomono_gems( gems: local_gems_to_eval, - prefix: "RUBOCOP_LTS", - path_env: "RUBOCOP_LTS_LOCAL", - vendored_gems_env: "VENDORED_GEMS", - vendor_gem_dir_env: "VENDOR_GEM_DIR", - debug_env: "RUBOCOP_LTS_DEBUG", - root: ["src", "rubocop-lts"] + prefix: 'RUBOCOP_LTS', + path_env: 'RUBOCOP_LTS_LOCAL', + vendored_gems_env: 'VENDORED_GEMS', + vendor_gem_dir_env: 'VENDOR_GEM_DIR', + debug_env: 'RUBOCOP_LTS_DEBUG', + root: %w[src rubocop-lts] ) end diff --git a/gems/plain-merge/gemfiles/modular/templating.gemfile b/gems/plain-merge/gemfiles/modular/templating.gemfile index 47138ffbb..a672de184 100644 --- a/gems/plain-merge/gemfiles/modular/templating.gemfile +++ b/gems/plain-merge/gemfiles/modular/templating.gemfile @@ -1,18 +1,18 @@ # frozen_string_literal: true -structuredmerge_remote = ENV.fetch("STRUCTUREDMERGE_DEV", "false").casecmp("false").zero? -kettle_remote = ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false").zero? +structuredmerge_remote = ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false').zero? +kettle_remote = ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? if structuredmerge_remote # Parser dependencies for released installs. - gem "tree_sitter_language_pack", "~> 1.13", ">= 1.13.3" + gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' # Merge recipes for released installs. - gem "kettle-jem", ">= 7.0" + gem 'kettle-jem', '>= 7.0' end if kettle_remote # Template/plugin checks for released installs. - gem "kettle-drift", "~> 1.0", ">= 1.0.6", require: false + gem 'kettle-drift', '~> 1.0', '>= 1.0.6', require: false end # Set STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local development with path-based dependencies. @@ -21,4 +21,4 @@ end # # Set KETTLE_DEV_DEV=/path/to/my for local development with Kettle plugin gems. # When false (default / CI), released Kettle plugin gems are used. -eval_gemfile "templating_local.gemfile" unless structuredmerge_remote && kettle_remote +eval_gemfile 'templating_local.gemfile' unless structuredmerge_remote && kettle_remote diff --git a/gems/plain-merge/gemfiles/modular/templating_local.gemfile b/gems/plain-merge/gemfiles/modular/templating_local.gemfile index 71738416a..b10c084e9 100644 --- a/gems/plain-merge/gemfiles/modular/templating_local.gemfile +++ b/gems/plain-merge/gemfiles/modular/templating_local.gemfile @@ -12,21 +12,19 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] -nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) +nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] +nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == "nomono" } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - if nomono_locked - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] - end + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked end -Kernel.send(:gem, "nomono", *nomono_activation_requirements) -require "nomono/bundler" +Kernel.send(:gem, 'nomono', *nomono_activation_requirements) +require 'nomono/bundler' structuredmerge_local_gems = %w[ tree_haver @@ -69,25 +67,25 @@ structuredmerge_local_gems_to_eval = structuredmerge_local_gems - %w[plain-merge kettle_dev_local_gems_to_eval = kettle_dev_local_gems - %w[plain-merge] - declared_gems platform :mri do - if ENV.fetch("STRUCTUREDMERGE_DEV", "false").casecmp("false") != 0 + if ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false') != 0 eval_nomono_gems( gems: structuredmerge_local_gems_to_eval, - prefix: "STRUCTUREDMERGE", - path_env: "STRUCTUREDMERGE_DEV", - vendored_gems_env: "VENDORED_GEMS", - vendor_gem_dir_env: "VENDOR_GEM_DIR", - debug_env: "STRUCTUREDMERGE_DEBUG" + prefix: 'STRUCTUREDMERGE', + path_env: 'STRUCTUREDMERGE_DEV', + vendored_gems_env: 'VENDORED_GEMS', + vendor_gem_dir_env: 'VENDOR_GEM_DIR', + debug_env: 'STRUCTUREDMERGE_DEBUG' ) end - if ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false") != 0 + if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false') != 0 eval_nomono_gems( gems: kettle_dev_local_gems_to_eval, - prefix: "KETTLE_DEV", - path_env: "KETTLE_DEV_DEV", - vendored_gems_env: "VENDORED_GEMS", - vendor_gem_dir_env: "VENDOR_GEM_DIR", - debug_env: "KETTLE_DEV_DEBUG" + prefix: 'KETTLE_DEV', + path_env: 'KETTLE_DEV_DEV', + vendored_gems_env: 'VENDORED_GEMS', + vendor_gem_dir_env: 'VENDOR_GEM_DIR', + debug_env: 'KETTLE_DEV_DEBUG' ) end end diff --git a/gems/plain-merge/gemfiles/modular/webrick/r4/v1.9.gemfile b/gems/plain-merge/gemfiles/modular/webrick/r4/v1.9.gemfile index eaab4a473..b1329ba84 100644 --- a/gems/plain-merge/gemfiles/modular/webrick/r4/v1.9.gemfile +++ b/gems/plain-merge/gemfiles/modular/webrick/r4/v1.9.gemfile @@ -1 +1 @@ -gem "webrick", "~> 1.9" +gem 'webrick', '~> 1.9' diff --git a/gems/plain-merge/gemfiles/modular/webrick/vHEAD.gemfile b/gems/plain-merge/gemfiles/modular/webrick/vHEAD.gemfile index 8a789b634..c7e6f81a1 100644 --- a/gems/plain-merge/gemfiles/modular/webrick/vHEAD.gemfile +++ b/gems/plain-merge/gemfiles/modular/webrick/vHEAD.gemfile @@ -1 +1 @@ -gem "webrick", ">= 1.9" +gem 'webrick', '>= 1.9' diff --git a/gems/plain-merge/gemfiles/modular/x_std_libs.gemfile b/gems/plain-merge/gemfiles/modular/x_std_libs.gemfile index 77aad43f2..b1f43c097 100644 --- a/gems/plain-merge/gemfiles/modular/x_std_libs.gemfile +++ b/gems/plain-merge/gemfiles/modular/x_std_libs.gemfile @@ -1,12 +1,12 @@ ### Std Lib Extracted Gems ruby_version = Gem::Version.new(RUBY_VERSION) -if ruby_version >= Gem::Version.new("4.0") - eval_gemfile "x_std_libs/r4/libs.gemfile" -elsif ruby_version >= Gem::Version.new("3.2") - eval_gemfile "x_std_libs/r3/libs.gemfile" -elsif ruby_version >= Gem::Version.new("3.1") - eval_gemfile "x_std_libs/r3.1/libs.gemfile" +if ruby_version >= Gem::Version.new('4.0') + eval_gemfile 'x_std_libs/r4/libs.gemfile' +elsif ruby_version >= Gem::Version.new('3.2') + eval_gemfile 'x_std_libs/r3/libs.gemfile' +elsif ruby_version >= Gem::Version.new('3.1') + eval_gemfile 'x_std_libs/r3.1/libs.gemfile' else - eval_gemfile "x_std_libs/r2/libs.gemfile" + eval_gemfile 'x_std_libs/r2/libs.gemfile' end diff --git a/gems/plain-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile b/gems/plain-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile index 441c4f03a..16a5e3d70 100644 --- a/gems/plain-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile +++ b/gems/plain-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile @@ -1,3 +1,3 @@ -eval_gemfile "../../erb/r2/v3.0.gemfile" -eval_gemfile "../../mutex_m/r2/v0.3.gemfile" -eval_gemfile "../../stringio/r2/v3.0.gemfile" +eval_gemfile '../../erb/r2/v3.0.gemfile' +eval_gemfile '../../mutex_m/r2/v0.3.gemfile' +eval_gemfile '../../stringio/r2/v3.0.gemfile' diff --git a/gems/plain-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile b/gems/plain-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile index c293a3ddd..220ff95c1 100644 --- a/gems/plain-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile +++ b/gems/plain-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile @@ -1,3 +1,3 @@ -eval_gemfile "../../erb/r3/v5.0.gemfile" -eval_gemfile "../../mutex_m/r3/v0.3.gemfile" -eval_gemfile "../../stringio/r3/v3.0.gemfile" +eval_gemfile '../../erb/r3/v5.0.gemfile' +eval_gemfile '../../mutex_m/r3/v0.3.gemfile' +eval_gemfile '../../stringio/r3/v3.0.gemfile' diff --git a/gems/plain-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile b/gems/plain-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile index eb5574247..e2f6501eb 100644 --- a/gems/plain-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile +++ b/gems/plain-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile @@ -1,6 +1,6 @@ -eval_gemfile "../../erb/r4/v5.0.gemfile" -eval_gemfile "../../mutex_m/r4/v0.3.gemfile" -eval_gemfile "../../stringio/r4/v3.0.gemfile" -eval_gemfile "../../benchmark/r4/v0.5.gemfile" -eval_gemfile "../../cgi/r4/v0.5.gemfile" -eval_gemfile "../../webrick/r4/v1.9.gemfile" +eval_gemfile '../../erb/r4/v5.0.gemfile' +eval_gemfile '../../mutex_m/r4/v0.3.gemfile' +eval_gemfile '../../stringio/r4/v3.0.gemfile' +eval_gemfile '../../benchmark/r4/v0.5.gemfile' +eval_gemfile '../../cgi/r4/v0.5.gemfile' +eval_gemfile '../../webrick/r4/v1.9.gemfile' diff --git a/gems/plain-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile b/gems/plain-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile index d4d5b16c9..ab75cccf1 100644 --- a/gems/plain-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile +++ b/gems/plain-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile @@ -1,6 +1,6 @@ -eval_gemfile "../erb/vHEAD.gemfile" -eval_gemfile "../mutex_m/vHEAD.gemfile" -eval_gemfile "../stringio/vHEAD.gemfile" -eval_gemfile "../benchmark/vHEAD.gemfile" -eval_gemfile "../cgi/vHEAD.gemfile" -eval_gemfile "../webrick/vHEAD.gemfile" +eval_gemfile '../erb/vHEAD.gemfile' +eval_gemfile '../mutex_m/vHEAD.gemfile' +eval_gemfile '../stringio/vHEAD.gemfile' +eval_gemfile '../benchmark/vHEAD.gemfile' +eval_gemfile '../cgi/vHEAD.gemfile' +eval_gemfile '../webrick/vHEAD.gemfile' diff --git a/gems/plain-merge/lib/plain/merge/version.rb b/gems/plain-merge/lib/plain/merge/version.rb index aab4f67c1..e6b3a5844 100644 --- a/gems/plain-merge/lib/plain/merge/version.rb +++ b/gems/plain-merge/lib/plain/merge/version.rb @@ -3,7 +3,7 @@ module Plain module Merge module Version - VERSION = "7.1.0" + VERSION = '7.1.0' end VERSION = Version::VERSION # Traditional Constant Location end diff --git a/gems/plain-merge/spec/spec_helper.rb b/gems/plain-merge/spec/spec_helper.rb index 14f41c64b..36bf6d0d9 100644 --- a/gems/plain-merge/spec/spec_helper.rb +++ b/gems/plain-merge/spec/spec_helper.rb @@ -7,16 +7,16 @@ # NOTE: Gemfiles for non-coverage appraisals may not have kettle-soup-cover. # The rescue LoadError handles that scenario. begin - require "kettle-soup-cover" + require 'kettle-soup-cover' if Kettle::Soup::Cover::DO_COV # Requiring simplecov loads the project-local `.simplecov`. - require "simplecov" - require "kettle/soup/cover/config" + require 'simplecov' + require 'kettle/soup/cover/config' SimpleCov.start end -rescue LoadError => error +rescue LoadError => e # check the error message and re-raise when unexpected - raise error unless error.message.include?("kettle") + raise e unless e.message.include?('kettle') end # External RSpec & related config From 07c31fae332eb4d0a45806841a34e6d7f35dce83 Mon Sep 17 00:00:00 2001 From: "Peter H. Boling" Date: Tue, 21 Jul 2026 18:03:04 -0600 Subject: [PATCH 157/188] =?UTF-8?q?=F0=9F=8E=A8=20Template=20bootstrap=20b?= =?UTF-8?q?y=20kettle-jem=20v7.1.0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gems/ast-merge-git/Gemfile.lock | 347 +- gems/ast-merge/.rubocop_gradual.lock | 2942 +++++++++++++++++ gems/bash-merge/.rubocop_gradual.lock | 2 +- gems/bash-merge/.simplecov | 2 +- gems/bash-merge/Gemfile | 70 +- gems/bash-merge/Gemfile.lock | 322 +- gems/bash-merge/README.md | 1 - gems/bash-merge/Rakefile | 18 +- gems/bash-merge/bash-merge.gemspec | 84 +- .../modular/benchmark/r4/v0.5.gemfile | 2 +- .../gemfiles/modular/benchmark/vHEAD.gemfile | 2 +- .../gemfiles/modular/cgi/r4/v0.5.gemfile | 2 +- .../gemfiles/modular/cgi/vHEAD.gemfile | 2 +- .../gemfiles/modular/coverage.gemfile | 6 +- .../gemfiles/modular/coverage_local.gemfile | 42 +- .../bash-merge/gemfiles/modular/debug.gemfile | 4 +- .../gemfiles/modular/documentation.gemfile | 24 +- .../modular/documentation_local.gemfile | 30 +- .../gemfiles/modular/erb/r2/v3.0.gemfile | 2 +- .../gemfiles/modular/erb/r3/v5.0.gemfile | 2 +- .../gemfiles/modular/erb/r4/v5.0.gemfile | 2 +- .../gemfiles/modular/erb/vHEAD.gemfile | 2 +- .../modular/json/truffleruby_22_3.gemfile | 4 +- .../modular/json/truffleruby_23_0.gemfile | 4 +- .../modular/json/truffleruby_23_1.gemfile | 4 +- .../gemfiles/modular/mutex_m/r2/v0.3.gemfile | 2 +- .../gemfiles/modular/mutex_m/r3/v0.3.gemfile | 2 +- .../gemfiles/modular/mutex_m/r4/v0.3.gemfile | 2 +- .../gemfiles/modular/mutex_m/vHEAD.gemfile | 2 +- .../gemfiles/modular/optional.gemfile | 4 +- .../bash-merge/gemfiles/modular/rspec.gemfile | 8 +- .../gemfiles/modular/runtime_heads.gemfile | 2 +- .../gemfiles/modular/stringio/r2/v3.0.gemfile | 2 +- .../gemfiles/modular/stringio/r3/v3.0.gemfile | 2 +- .../gemfiles/modular/stringio/r4/v3.0.gemfile | 2 +- .../gemfiles/modular/stringio/vHEAD.gemfile | 2 +- .../bash-merge/gemfiles/modular/style.gemfile | 24 +- .../gemfiles/modular/style_local.gemfile | 32 +- .../gemfiles/modular/templating.gemfile | 12 +- .../gemfiles/modular/templating_local.gemfile | 44 +- .../gemfiles/modular/webrick/r4/v1.9.gemfile | 2 +- .../gemfiles/modular/webrick/vHEAD.gemfile | 2 +- .../gemfiles/modular/x_std_libs.gemfile | 14 +- .../modular/x_std_libs/r2/libs.gemfile | 6 +- .../modular/x_std_libs/r3/libs.gemfile | 6 +- .../modular/x_std_libs/r4/libs.gemfile | 12 +- .../gemfiles/modular/x_std_libs/vHEAD.gemfile | 12 +- gems/bash-merge/lib/bash/merge/version.rb | 2 +- gems/bash-merge/spec/spec_helper.rb | 10 +- gems/dotenv-merge/.kettle-drift.lock | 144 +- gems/dotenv-merge/Gemfile | 72 +- gems/dotenv-merge/Gemfile.lock | 24 +- gems/dotenv-merge/Rakefile | 18 +- .../gemfiles/modular/templating.gemfile | 12 +- .../gemfiles/modular/templating_local.gemfile | 44 +- gems/dotenv-merge/lib/dotenv/merge/version.rb | 2 +- gems/plain-merge/Gemfile.lock | 30 +- gems/rbs-merge/Gemfile.lock | 351 +- 58 files changed, 3807 insertions(+), 1020 deletions(-) create mode 100644 gems/ast-merge/.rubocop_gradual.lock diff --git a/gems/ast-merge-git/Gemfile.lock b/gems/ast-merge-git/Gemfile.lock index 5de5e7cc7..2571a6a85 100644 --- a/gems/ast-merge-git/Gemfile.lock +++ b/gems/ast-merge-git/Gemfile.lock @@ -6,266 +6,6 @@ PATH json-merge (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly - specs: - ast-crispr-markdown-markly (7.1.0) - ast-crispr (= 7.1.0) - markly-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism - specs: - ast-crispr-ruby-prism (7.1.0) - ast-crispr (= 7.1.0) - prism-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr - specs: - ast-crispr (7.1.0) - ast-merge (= 7.1.0) - service_actor (~> 3.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge - specs: - ast-merge (7.1.0) - benchmark - token-resolver (~> 2.0, >= 2.0.4) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template - specs: - ast-template (7.1.0) - ast-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge - specs: - bash-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge - specs: - binary-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge - specs: - citrus-toml-merge (7.1.0) - toml-merge (= 7.1.0) - toml-rb (~> 4.1) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge - specs: - commonmarker-merge (7.1.0) - commonmarker (~> 2.2) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge - specs: - dotenv-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge - specs: - go-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge - specs: - json-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem - specs: - kettle-jem (7.1.0) - addressable (>= 2.8, < 3) - ast-crispr-markdown-markly (= 7.1.0) - ast-crispr-ruby-prism (= 7.1.0) - ast-merge (= 7.1.0) - bash-merge (= 7.1.0) - citrus-toml-merge (= 7.1.0) - commonmarker-merge (= 7.1.0) - dotenv-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-dev (~> 2.3, >= 2.3.5) - kettle-rb (~> 0.1, >= 0.1.4) - kramdown-merge (= 7.1.0) - markdown-merge (= 7.1.0) - markly-merge (= 7.1.0) - prism-merge (= 7.1.0) - psych-merge (= 7.1.0) - rbs (>= 3.10) - rbs-merge (= 7.1.0) - ruby-merge (= 7.1.0) - token-resolver (~> 2.0, >= 2.0.4) - toml-merge (= 7.1.0) - toml-rb (~> 4.2) - tree_haver (= 7.1.0) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge - specs: - kramdown-merge (7.1.0) - kramdown (~> 2.5) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge - specs: - markdown-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge - specs: - markly-merge (7.1.0) - markdown-merge (= 7.1.0) - markly (~> 0.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge - specs: - parslet-toml-merge (7.1.0) - toml (~> 0.3) - toml-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge - specs: - plain-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge - specs: - prism-merge (7.1.0) - prism (~> 1.6) - ruby-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge - specs: - psych-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge - specs: - rbs-merge (7.1.0) - ast-merge (= 7.1.0) - rbs (>= 3.10) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge - specs: - ruby-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge - specs: - rust-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb - specs: - smorg-rb (7.1.0) - ast-merge (= 7.1.0) - ast-merge-git (= 7.1.0) - diff-lcs (~> 1.5) - go-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-jem (= 7.1.0) - markly-merge (= 7.1.0) - plain-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge - specs: - toml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver - specs: - tree_haver (7.1.0) - citrus (~> 3.0) - parslet (~> 2.0) - tree_sitter_language_pack (>= 1.13.2, < 2.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge - specs: - typescript-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge - specs: - yaml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge - specs: - zip-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - GEM remote: https://gem.coop/ specs: @@ -281,6 +21,11 @@ GEM rubocop (>= 1.0) version_gem (~> 1.1, >= 1.1.14) ast (2.4.3) + ast-merge (7.1.0) + benchmark + token-resolver (~> 2.0, >= 2.0.4) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) backports (3.25.3) benchmark (0.5.0) bigdecimal (4.1.2) @@ -290,7 +35,6 @@ GEM cgi (0.5.2) citrus (3.0.2) cmdparse (3.0.7) - commonmarker (2.9.0-x86_64-linux) concurrent-ruby (1.3.8) date (3.5.1) debug (1.11.1) @@ -348,13 +92,15 @@ GEM rdoc (>= 4.0.0) reline (>= 0.4.2) json (2.21.1) + json-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) kettle-dev (2.3.9) emoji_regex (>= 15.0) kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) - kettle-drift (1.0.6) - version_gem (~> 1.1, >= 1.1.14) kettle-rb (0.1.5) kettle-soup-cover (3.0.4) kettle-wash (~> 0.1, >= 0.1.0) @@ -383,7 +129,6 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) - markly (0.16.0) mutex_m (0.3.0) nokogiri (1.19.4-x86_64-linux-gnu) racc (~> 1.4) @@ -538,8 +283,6 @@ GEM ruby-progressbar (1.13.0) ruby_engine (2.0.3) ruby_version (1.0.3) - service_actor (3.9.4) - zeitwerk (>= 1.0) silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) @@ -594,11 +337,11 @@ GEM token-resolver (2.0.5) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.14) - toml (0.3.0) - parslet (>= 1.8.0, < 3.0.0) - toml-rb (4.2.0) - citrus (~> 3.0, > 3.0) - racc (~> 1.7) + tree_haver (7.1.0) + citrus (~> 3.0) + parslet (~> 2.0) + tree_sitter_language_pack (>= 1.13.2, < 2.0) + version_gem (~> 1.1, >= 1.1.9) tree_sitter_language_pack (1.13.3-x86_64-linux) sorbet-runtime (~> 0.5) tsort (0.2.0) @@ -644,46 +387,24 @@ DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) appraisal2-rubocop (~> 1.0, >= 1.0.0) - ast-crispr! - ast-crispr-markdown-markly! - ast-crispr-ruby-prism! - ast-merge! ast-merge-git! - ast-template! - bash-merge! benchmark (~> 0.5, >= 0.5.0) - binary-merge! bundler-audit (~> 0.9.3) cgi (~> 0.5) - citrus-toml-merge! - commonmarker-merge! debug (>= 1.1) - dotenv-merge! erb (~> 6.0, >= 6.0.6) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.0) - go-merge! irb (~> 1.17) - json-merge! kettle-dev (~> 2.0, >= 2.2.25) - kettle-drift (~> 1.0, >= 1.0.6) - kettle-jem! kettle-soup-cover (~> 3.0, >= 3.0.3) kettle-test (~> 2.0, >= 2.0.9) kramdown (~> 2.5, >= 2.5.2) - kramdown-merge! kramdown-parser-gfm (~> 1.1) - markdown-merge! - markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) - parslet-toml-merge! - plain-merge! - prism-merge! - psych-merge! rake (~> 13.0) rbs (>= 3.0) - rbs-merge! rdoc (~> 6.11) reek (~> 6.5, >= 6.5.0) require_bench (~> 1.0, >= 1.0.4) @@ -694,27 +415,19 @@ DEPENDENCIES rubocop-on-rbs (~> 2.0, >= 2.0.0) rubocop-packaging (~> 0.6, >= 0.6.0) rubocop-ruby3_2 (~> 3.0, >= 3.0.6) - ruby-merge! ruby-progressbar (~> 1.13) - rust-merge! - smorg-rb! standard (~> 1.56, >= 1.56.0) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) - toml-merge! - tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) - typescript-merge! webrick (~> 1.9) yaml-converter (~> 0.2, >= 0.2.3) - yaml-merge! yard (~> 0.9, >= 0.9.45) yard-fence (~> 0.9, >= 0.9.6) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) yard-timekeeper (~> 0.2, >= 0.2.4) yard-yaml (~> 0.2, >= 0.2.3) - zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af @@ -722,31 +435,21 @@ CHECKSUMS appraisal2 (3.2.0) sha256=ccd0b767ac4060cd7af6d16747459b6990f49c39c7b4fb1f7d1146b1e97c492f appraisal2-rubocop (1.0.0) sha256=b71410fbb014befda5340605a605b7f6f3f012739baf0acc5b4351b592c3258d ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 - ast-crispr (7.1.0) - ast-crispr-markdown-markly (7.1.0) - ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) ast-merge-git (7.1.0) - ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 - bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd - binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 - citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 - commonmarker (2.9.0-x86_64-linux) sha256=8cfe92970eef585a19ddf6613224b91cab64d6029834661bda801f877c9c7f43 - commonmarker-merge (7.1.0) concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 - dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -759,28 +462,21 @@ CHECKSUMS gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f - go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 json-merge (7.1.0) kettle-dev (2.3.9) - kettle-drift (1.0.6) sha256=46eda08fa4411d1f3c6682a95eef1c9df4e94611b3949f49d4c7b43c0ed356a3 - kettle-jem (7.1.0) kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f kettle-soup-cover (3.0.4) kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa - kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 - markdown-merge (7.1.0) - markly (0.16.0) sha256=6f70d79e385b1efc9e171f74c81628826259039fe6c778e03c3924c71dac5511 - markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-x86_64-linux-gnu) sha256=379fae440b28915e3f19d752ce2dcf8465ed2b2fbefd2a7ca0dd497bc981a06a nomono (1.0.9) @@ -790,20 +486,15 @@ CHECKSUMS parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 - parslet-toml-merge (7.1.0) - plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 - prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 - psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 - rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb @@ -838,19 +529,15 @@ CHECKSUMS rubocop-rspec_rails (2.32.0) sha256=4a0d641c72f6ebb957534f539d9d0a62c47abd8ce0d0aeee1ef4701e892a9100 rubocop-ruby3_2 (3.0.7) sha256=f53dd6d286fb05186214fc6ec116783e7f837030918e8931c05de773e98f8466 rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 - ruby-merge (7.1.0) ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 - rust-merge (7.1.0) - service_actor (3.9.4) sha256=e63b523630b9a7e62959b2a90113b08d2565b5de9c148557b281ef847c9539ce silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed - smorg-rb (7.1.0) sorbet-runtime (0.6.13351) sha256=f8fee17c6e3edf835dc6823d26afb9a7c8969c6710d1fabe2fb43f4e0c15c64f standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b @@ -865,20 +552,15 @@ CHECKSUMS timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.5) sha256=b852f924287ffb58a440856e862b056c8ad97e74b4b2526cee43e0771f40c25c - toml (0.3.0) sha256=0a91d0f76a9036e84e44f95693b12f58d358c1df3ac8e3b5271f2056ecc6e4b9 - toml-merge (7.1.0) - toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 - typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 webrick (1.9.2) sha256=beb4a15fc474defed24a3bda4ffd88a490d517c9e4e6118c3edce59e45864131 yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 - yaml-merge (7.1.0) yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd @@ -886,7 +568,6 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 - zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH diff --git a/gems/ast-merge/.rubocop_gradual.lock b/gems/ast-merge/.rubocop_gradual.lock new file mode 100644 index 000000000..80f95ef30 --- /dev/null +++ b/gems/ast-merge/.rubocop_gradual.lock @@ -0,0 +1,2942 @@ +{ + ".simplecov:3026903189": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "Rakefile:429706125": [ + [18, 121, 17, "Layout/LineLength: Line is too long. [137/120]", 174264873], + [79, 3, 1023, "Metrics/BlockLength: Block has too many lines. [32/25]", 54868638], + [163, 121, 22, "Layout/LineLength: Line is too long. [142/120]", 1367093088], + [166, 121, 18, "Layout/LineLength: Line is too long. [138/120]", 3881946477] + ], + "ast-merge.gemspec:1182320030": [ + [16, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1168797721], + [129, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 2821357214], + [144, 121, 50, "Layout/LineLength: Line is too long. [170/120]", 3888612416], + [145, 121, 29, "Layout/LineLength: Line is too long. [149/120]", 981994949], + [152, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 4229808912] + ], + "gemfiles/modular/benchmark/r4/v0.5.gemfile:5381": [ + [1, 1, 0, "Lint/EmptyFile: Empty file detected.", 5381] + ], + "gemfiles/modular/benchmark/vHEAD.gemfile:5381": [ + [1, 1, 0, "Lint/EmptyFile: Empty file detected.", 5381], + [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381] + ], + "gemfiles/modular/cgi/r4/v0.5.gemfile:367169322": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/cgi/vHEAD.gemfile:2729540777": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/erb/r2/v3.0.gemfile:1688285565": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/erb/r3/v5.0.gemfile:2394062339": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/erb/r4/v5.0.gemfile:2394062339": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/erb/vHEAD.gemfile:981929959": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/mutex_m/r2/v0.3.gemfile:4055275004": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/mutex_m/r3/v0.3.gemfile:4055275004": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/mutex_m/r4/v0.3.gemfile:4055275004": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/mutex_m/vHEAD.gemfile:556854763": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/rspec.gemfile:2263543889": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/stringio/r2/v3.0.gemfile:821604304": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/stringio/r3/v3.0.gemfile:821604304": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/stringio/r4/v3.0.gemfile:821604304": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/stringio/vHEAD.gemfile:1045839691": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/webrick/r4/v1.9.gemfile:3092661193": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/webrick/vHEAD.gemfile:3867684682": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/x_std_libs.gemfile:2324400122": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/x_std_libs/r2/libs.gemfile:36276542": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] + ], + "gemfiles/modular/x_std_libs/r3/libs.gemfile:4030570297": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] + ], + "gemfiles/modular/x_std_libs/r4/libs.gemfile:732451732": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] + ], + "gemfiles/modular/x_std_libs/vHEAD.gemfile:2390363993": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] + ], + "lib/ast-merge.rb:3005639624": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`ast-merge.rb`) should use snake_case.", 5381] + ], + "lib/ast/merge.rb:3962755273": [ + [11, 3, 12, "Style/Documentation: Missing top-level documentation comment for `module Ast::Merge`.", 2866359175], + [11, 3, 270298, "Metrics/ModuleLength: Module has too many lines. [5705/100]", 2774418219], + [22, 5, 16, "Style/Documentation: Missing top-level documentation comment for `class Ast::Merge::ParseError`.", 362242086], + [33, 7, 362, "Metrics/AbcSize: Assignment Branch Condition size for `build_message` is too high. [<2, 16, 6> 17.2/17]", 3988736327], + [47, 5, 31, "Style/Documentation: Missing top-level documentation comment for `class Ast::Merge::PlaceholderCollisionError`.", 218924302], + [164, 7, 337, "Metrics/MethodLength: Method has too many lines. [11/10]", 2388996629], + [181, 7, 327, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `to_h` is too high. [8/7]", 979795121], + [312, 7, 383, "Metrics/MethodLength: Method has too many lines. [11/10]", 634650261], + [476, 121, 29, "Layout/LineLength: Line is too long. [149/120]", 3450568485], + [477, 7, 461, "Metrics/MethodLength: Method has too many lines. [12/10]", 43929779], + [494, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 1299979089], + [495, 7, 377, "Metrics/MethodLength: Method has too many lines. [11/10]", 3704151253], + [511, 121, 39, "Layout/LineLength: Line is too long. [159/120]", 85503958], + [512, 7, 447, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `to_h` is too high. [8/7]", 298553749], + [512, 7, 447, "Metrics/MethodLength: Method has too many lines. [12/10]", 298553749], + [541, 121, 25, "Layout/LineLength: Line is too long. [145/120]", 1441148616], + [542, 7, 453, "Metrics/MethodLength: Method has too many lines. [14/10]", 1899007021], + [561, 121, 3, "Layout/LineLength: Line is too long. [123/120]", 193342990], + [562, 7, 400, "Metrics/MethodLength: Method has too many lines. [11/10]", 298553749], + [591, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5860750], + [592, 7, 411, "Metrics/MethodLength: Method has too many lines. [12/10]", 2893925621], + [609, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 3137791633], + [610, 7, 454, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `to_h` is too high. [8/7]", 298553749], + [610, 7, 454, "Metrics/MethodLength: Method has too many lines. [12/10]", 298553749], + [669, 7, 385, "Metrics/MethodLength: Method has too many lines. [11/10]", 794265461], + [706, 7, 419, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `to_h` is too high. [10/7]", 3313546353], + [706, 7, 419, "Metrics/PerceivedComplexity: Perceived complexity for `to_h` is too high. [10/8]", 3313546353], + [756, 121, 11, "Layout/LineLength: Line is too long. [131/120]", 398187770], + [768, 121, 40, "Layout/LineLength: Line is too long. [160/120]", 2746783933], + [815, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5860841], + [823, 121, 156, "Layout/LineLength: Line is too long. [276/120]", 1149525480], + [828, 121, 24, "Layout/LineLength: Line is too long. [144/120]", 2538424426], + [840, 121, 22, "Layout/LineLength: Line is too long. [142/120]", 2285382915], + [850, 121, 7, "Layout/LineLength: Line is too long. [127/120]", 3962419360], + [863, 121, 11, "Layout/LineLength: Line is too long. [131/120]", 398187770], + [865, 121, 16, "Layout/LineLength: Line is too long. [136/120]", 3195178507], + [869, 121, 85, "Layout/LineLength: Line is too long. [205/120]", 4238980637], + [871, 121, 13, "Layout/LineLength: Line is too long. [133/120]", 2678411233], + [873, 121, 39, "Layout/LineLength: Line is too long. [159/120]", 4028520110], + [884, 121, 110, "Layout/LineLength: Line is too long. [230/120]", 3837814921], + [898, 5, 2283, "Metrics/MethodLength: Method has too many lines. [57/10]", 2282416447], + [958, 5, 2654, "Metrics/MethodLength: Method has too many lines. [63/10]", 2491520565], + [1009, 121, 9, "Layout/LineLength: Line is too long. [129/120]", 1823519875], + [1018, 121, 21, "Layout/LineLength: Line is too long. [141/120]", 1874311968], + [1024, 5, 10660, "Metrics/AbcSize: Assignment Branch Condition size for `ruby_downstream_merge_gem_feature_matrix` is too high. [<0, 21, 0> 21/17]", 2277322577], + [1024, 5, 10660, "Metrics/MethodLength: Method has too many lines. [248/10]", 2277322577], + [1275, 5, 1546, "Metrics/MethodLength: Method has too many lines. [37/10]", 208933754], + [1309, 121, 33, "Layout/LineLength: Line is too long. [153/120]", 2658452668], + [1315, 5, 4206, "Metrics/MethodLength: Method has too many lines. [96/10]", 1997530776], + [1392, 121, 5, "Layout/LineLength: Line is too long. [125/120]", 183246985], + [1408, 121, 15, "Layout/LineLength: Line is too long. [135/120]", 3268438356], + [1414, 5, 1598, "Metrics/MethodLength: Method has too many lines. [46/10]", 849757258], + [1457, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1323237892], + [1463, 5, 1164, "Metrics/MethodLength: Method has too many lines. [36/10]", 1477831421], + [1496, 121, 13, "Layout/LineLength: Line is too long. [133/120]", 931876829], + [1502, 5, 1699, "Metrics/MethodLength: Method has too many lines. [43/10]", 1125544678], + [1548, 5, 1016, "Metrics/MethodLength: Method has too many lines. [27/10]", 2194427985], + [1578, 5, 1058, "Metrics/MethodLength: Method has too many lines. [30/10]", 47860722], + [1611, 5, 1186, "Metrics/MethodLength: Method has too many lines. [31/10]", 676863486], + [1639, 121, 21, "Layout/LineLength: Line is too long. [141/120]", 2689509078], + [1645, 5, 1517, "Metrics/MethodLength: Method has too many lines. [41/10]", 3855445172], + [1658, 121, 24, "Layout/LineLength: Line is too long. [144/120]", 817380904], + [1683, 121, 26, "Layout/LineLength: Line is too long. [146/120]", 409671963], + [1689, 5, 2116, "Metrics/MethodLength: Method has too many lines. [61/10]", 524104794], + [1753, 5, 820, "Metrics/MethodLength: Method has too many lines. [12/10]", 1888457180], + [1753, 37, 298, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [10/5]", 789483382], + [1754, 121, 100, "Layout/LineLength: Line is too long. [220/120]", 3288750271], + [1769, 5, 3595, "Metrics/AbcSize: Assignment Branch Condition size for `initial_profile_promotion_policy` is too high. [<9, 20, 0> 21.93/17]", 83685787], + [1769, 5, 3595, "Metrics/MethodLength: Method has too many lines. [77/10]", 83685787], + [1849, 5, 768, "Metrics/MethodLength: Method has too many lines. [17/10]", 314059802], + [1870, 5, 1493, "Metrics/AbcSize: Assignment Branch Condition size for `evaluate_profile_selection_requirement` is too high. [<7, 23, 9> 25.67/17]", 3177555163], + [1870, 5, 1493, "Metrics/MethodLength: Method has too many lines. [29/10]", 3177555163], + [1871, 121, 18, "Layout/LineLength: Line is too long. [138/120]", 2145168012], + [1878, 121, 7, "Layout/LineLength: Line is too long. [127/120]", 683002336], + [1912, 5, 985, "Metrics/AbcSize: Assignment Branch Condition size for `profile_promotion_blocking_reasons` is too high. [<4, 25, 13> 28.46/17]", 1146627465], + [1912, 5, 985, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `profile_promotion_blocking_reasons` is too high. [10/7]", 1146627465], + [1912, 5, 985, "Metrics/MethodLength: Method has too many lines. [18/10]", 1146627465], + [1912, 5, 985, "Metrics/PerceivedComplexity: Perceived complexity for `profile_promotion_blocking_reasons` is too high. [10/8]", 1146627465], + [1933, 5, 3173, "Metrics/AbcSize: Assignment Branch Condition size for `validate_language_backend_profile` is too high. [<25, 68, 20> 75.16/17]", 2100389324], + [1933, 5, 3173, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `validate_language_backend_profile` is too high. [21/7]", 2100389324], + [1933, 5, 3173, "Metrics/MethodLength: Method has too many lines. [60/10]", 2100389324], + [1933, 5, 3173, "Metrics/PerceivedComplexity: Perceived complexity for `validate_language_backend_profile` is too high. [23/8]", 2100389324], + [2005, 5, 1523, "Metrics/AbcSize: Assignment Branch Condition size for `validate_backend_inventory` is too high. [<13, 38, 13> 42.21/17]", 1899037537], + [2005, 5, 1523, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `validate_backend_inventory` is too high. [13/7]", 1899037537], + [2005, 5, 1523, "Metrics/MethodLength: Method has too many lines. [25/10]", 1899037537], + [2005, 5, 1523, "Metrics/PerceivedComplexity: Perceived complexity for `validate_backend_inventory` is too high. [13/8]", 1899037537], + [2048, 5, 906, "Metrics/MethodLength: Method has too many lines. [20/10]", 3137959843], + [2071, 5, 2744, "Metrics/AbcSize: Assignment Branch Condition size for `detect_raw_merge_inconsistencies` is too high. [<8, 43, 21> 48.52/17]", 3717440692], + [2071, 5, 2744, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `detect_raw_merge_inconsistencies` is too high. [17/7]", 3717440692], + [2071, 5, 2744, "Metrics/MethodLength: Method has too many lines. [53/10]", 3717440692], + [2071, 5, 2744, "Metrics/PerceivedComplexity: Perceived complexity for `detect_raw_merge_inconsistencies` is too high. [17/8]", 3717440692], + [2086, 7, 1894, "Metrics/BlockLength: Block has too many lines. [33/25]", 758887611], + [2132, 5, 762, "Metrics/MethodLength: Method has too many lines. [11/10]", 3021402342], + [2146, 5, 490, "Metrics/MethodLength: Method has too many lines. [11/10]", 578473475], + [2160, 5, 881, "Metrics/AbcSize: Assignment Branch Condition size for `execute_independent_commutative_insertions` is too high. [<6, 16, 7> 18.47/17]", 259417386], + [2160, 5, 881, "Metrics/MethodLength: Method has too many lines. [21/10]", 259417386], + [2187, 5, 1107, "Metrics/AbcSize: Assignment Branch Condition size for `execute_independent_keyed_member_edits` is too high. [<10, 31, 15> 35.86/17]", 4271501385], + [2187, 5, 1107, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `execute_independent_keyed_member_edits` is too high. [14/7]", 4271501385], + [2187, 5, 1107, "Metrics/MethodLength: Method has too many lines. [24/10]", 4271501385], + [2187, 5, 1107, "Metrics/PerceivedComplexity: Perceived complexity for `execute_independent_keyed_member_edits` is too high. [14/8]", 4271501385], + [2231, 5, 3149, "Metrics/AbcSize: Assignment Branch Condition size for `parse_compact_ruleset` is too high. [<16, 68, 24> 73.86/17]", 3149098803], + [2231, 5, 3149, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `parse_compact_ruleset` is too high. [22/7]", 3149098803], + [2231, 5, 3149, "Metrics/MethodLength: Method has too many lines. [67/10]", 3149098803], + [2231, 5, 3149, "Metrics/PerceivedComplexity: Perceived complexity for `parse_compact_ruleset` is too high. [23/8]", 3149098803], + [2237, 7, 2544, "Metrics/BlockLength: Block has too many lines. [50/25]", 2484860466], + [2264, 121, 3, "Layout/LineLength: Line is too long. [123/120]", 193420054], + [2310, 5, 2658, "Metrics/AbcSize: Assignment Branch Condition size for `compact_ruleset_feature_profile` is too high. [<11, 67, 38> 77.81/17]", 4022599673], + [2310, 5, 2658, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `compact_ruleset_feature_profile` is too high. [29/7]", 4022599673], + [2310, 5, 2658, "Metrics/MethodLength: Method has too many lines. [66/10]", 4022599673], + [2310, 5, 2658, "Metrics/PerceivedComplexity: Perceived complexity for `compact_ruleset_feature_profile` is too high. [16/8]", 4022599673], + [2328, 7, 2243, "Metrics/BlockLength: Block has too many lines. [47/25]", 965041772], + [2395, 5, 2733, "Metrics/AbcSize: Assignment Branch Condition size for `classify_template_target_path` is too high. [<4, 36, 23> 42.91/17]", 3661828596], + [2395, 5, 2733, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `classify_template_target_path` is too high. [21/7]", 3661828596], + [2395, 5, 2733, "Metrics/MethodLength: Method has too many lines. [39/10]", 3661828596], + [2395, 5, 2733, "Metrics/PerceivedComplexity: Perceived complexity for `classify_template_target_path` is too high. [17/8]", 3661828596], + [2427, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5858795], + [2441, 5, 416, "Metrics/MethodLength: Method has too many lines. [12/10]", 1388641773], + [2484, 5, 388, "Metrics/MethodLength: Method has too many lines. [12/10]", 2360583514], + [2513, 5, 820, "Metrics/MethodLength: Method has too many lines. [13/10]", 354674808], + [2529, 5, 929, "Metrics/AbcSize: Assignment Branch Condition size for `enrich_template_plan_entries` is too high. [<9, 12, 10> 18.03/17]", 2666747528], + [2529, 5, 929, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `enrich_template_plan_entries` is too high. [9/7]", 2666747528], + [2529, 5, 929, "Metrics/MethodLength: Method has too many lines. [19/10]", 2666747528], + [2529, 5, 929, "Metrics/PerceivedComplexity: Perceived complexity for `enrich_template_plan_entries` is too high. [10/8]", 2666747528], + [2552, 5, 1245, "Metrics/AbcSize: Assignment Branch Condition size for `enrich_template_plan_entries_with_token_state` is too high. [<11, 23, 14> 29.09/17]", 1507113977], + [2552, 5, 1245, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `enrich_template_plan_entries_with_token_state` is too high. [13/7]", 1507113977], + [2552, 5, 1245, "Metrics/MethodLength: Method has too many lines. [19/10]", 1507113977], + [2552, 5, 1245, "Metrics/PerceivedComplexity: Perceived complexity for `enrich_template_plan_entries_with_token_state` is too high. [13/8]", 1507113977], + [2576, 5, 1353, "Metrics/AbcSize: Assignment Branch Condition size for `prepare_template_entries` is too high. [<6, 18, 11> 21.93/17]", 2774310942], + [2576, 5, 1353, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `prepare_template_entries` is too high. [11/7]", 2774310942], + [2576, 5, 1353, "Metrics/MethodLength: Method has too many lines. [24/10]", 2774310942], + [2576, 5, 1353, "Metrics/PerceivedComplexity: Perceived complexity for `prepare_template_entries` is too high. [12/8]", 2774310942], + [2606, 5, 1494, "Metrics/AbcSize: Assignment Branch Condition size for `plan_template_execution` is too high. [<8, 22, 17> 28.93/17]", 3876421385], + [2606, 5, 1494, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `plan_template_execution` is too high. [14/7]", 3876421385], + [2606, 5, 1494, "Metrics/MethodLength: Method has too many lines. [29/10]", 3876421385], + [2606, 5, 1494, "Metrics/PerceivedComplexity: Perceived complexity for `plan_template_execution` is too high. [15/8]", 3876421385], + [2607, 7, 1421, "Metrics/BlockLength: Block has too many lines. [27/25]", 2887810383], + [2640, 5, 822, "Metrics/ParameterLists: Method has too many optional parameters. [5/3]", 2749235529], + [2640, 37, 220, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [9/5]", 447165880], + [2641, 121, 29, "Layout/LineLength: Line is too long. [149/120]", 518382509], + [2655, 5, 2060, "Metrics/AbcSize: Assignment Branch Condition size for `preview_template_execution` is too high. [<11, 42, 26> 50.61/17]", 2270817206], + [2655, 5, 2060, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `preview_template_execution` is too high. [25/7]", 2270817206], + [2655, 5, 2060, "Metrics/MethodLength: Method has too many lines. [39/10]", 2270817206], + [2655, 5, 2060, "Metrics/PerceivedComplexity: Perceived complexity for `preview_template_execution` is too high. [23/8]", 2270817206], + [2665, 7, 1809, "Metrics/BlockLength: Block has too many lines. [28/25]", 310337564], + [2703, 5, 2513, "Metrics/AbcSize: Assignment Branch Condition size for `apply_template_execution` is too high. [<14, 50, 25> 57.63/17]", 177708331], + [2703, 5, 2513, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `apply_template_execution` is too high. [26/7]", 177708331], + [2703, 5, 2513, "Metrics/MethodLength: Method has too many lines. [50/10]", 177708331], + [2703, 5, 2513, "Metrics/PerceivedComplexity: Perceived complexity for `apply_template_execution` is too high. [23/8]", 177708331], + [2714, 7, 2239, "Metrics/BlockLength: Block has too many lines. [38/25]", 1651205014], + [2764, 5, 1696, "Metrics/AbcSize: Assignment Branch Condition size for `evaluate_template_tree_convergence` is too high. [<11, 29, 17> 35.37/17]", 2507998041], + [2764, 5, 1696, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `evaluate_template_tree_convergence` is too high. [17/7]", 2507998041], + [2764, 5, 1696, "Metrics/MethodLength: Method has too many lines. [35/10]", 2507998041], + [2764, 5, 1696, "Metrics/ParameterLists: Method has too many optional parameters. [5/3]", 2507998041], + [2764, 5, 1696, "Metrics/PerceivedComplexity: Perceived complexity for `evaluate_template_tree_convergence` is too high. [17/8]", 2507998041], + [2764, 43, 198, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [8/5]", 4214374277], + [2765, 121, 13, "Layout/LineLength: Line is too long. [133/120]", 2983874608], + [2807, 5, 688, "Metrics/MethodLength: Method has too many lines. [15/10]", 3064253784], + [2807, 5, 688, "Metrics/ParameterLists: Method has too many optional parameters. [5/3]", 3064253784], + [2807, 36, 216, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [8/5]", 448029307], + [2808, 121, 31, "Layout/LineLength: Line is too long. [151/120]", 3840139076], + [2851, 5, 664, "Metrics/MethodLength: Method has too many lines. [13/10]", 995637868], + [2851, 5, 664, "Metrics/ParameterLists: Method has too many optional parameters. [5/3]", 995637868], + [2851, 53, 202, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [7/5]", 4227116196], + [2852, 121, 48, "Layout/LineLength: Line is too long. [168/120]", 418683952], + [2869, 5, 649, "Metrics/MethodLength: Method has too many lines. [13/10]", 1831524792], + [2869, 5, 649, "Metrics/ParameterLists: Method has too many optional parameters. [5/3]", 1831524792], + [2869, 54, 178, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [7/5]", 2962381850], + [2870, 121, 24, "Layout/LineLength: Line is too long. [144/120]", 3690915627], + [2887, 5, 1280, "Metrics/AbcSize: Assignment Branch Condition size for `apply_template_tree_execution_to_directory` is too high. [<6, 16, 6> 18.11/17]", 305449363], + [2887, 5, 1280, "Metrics/MethodLength: Method has too many lines. [23/10]", 305449363], + [2887, 5, 1280, "Metrics/ParameterLists: Method has too many optional parameters. [5/3]", 305449363], + [2887, 51, 200, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [7/5]", 1352434212], + [2888, 121, 46, "Layout/LineLength: Line is too long. [166/120]", 1139621482], + [2916, 5, 2199, "Metrics/AbcSize: Assignment Branch Condition size for `report_template_tree_run` is too high. [<15, 42, 31> 54.31/17]", 975627723], + [2916, 5, 2199, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `report_template_tree_run` is too high. [25/7]", 975627723], + [2916, 5, 2199, "Metrics/MethodLength: Method has too many lines. [38/10]", 975627723], + [2916, 5, 2199, "Metrics/PerceivedComplexity: Perceived complexity for `report_template_tree_run` is too high. [26/8]", 975627723], + [2960, 5, 1515, "Metrics/AbcSize: Assignment Branch Condition size for `report_template_directory_apply` is too high. [<13, 35, 21> 42.84/17]", 3710254295], + [2960, 5, 1515, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `report_template_directory_apply` is too high. [17/7]", 3710254295], + [2960, 5, 1515, "Metrics/MethodLength: Method has too many lines. [26/10]", 3710254295], + [2960, 5, 1515, "Metrics/PerceivedComplexity: Perceived complexity for `report_template_directory_apply` is too high. [17/8]", 3710254295], + [2975, 20, 1, "Style/DoubleNegation: Avoid the use of double negation (`!!`).", 177540], + [2992, 5, 1656, "Metrics/AbcSize: Assignment Branch Condition size for `report_template_directory_plan` is too high. [<11, 24, 25> 36.36/17]", 2946319293], + [2992, 5, 1656, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `report_template_directory_plan` is too high. [18/7]", 2946319293], + [2992, 5, 1656, "Metrics/MethodLength: Method has too many lines. [36/10]", 2946319293], + [2992, 5, 1656, "Metrics/PerceivedComplexity: Perceived complexity for `report_template_directory_plan` is too high. [16/8]", 2946319293], + [3064, 7, 9, "Style/MultilineBlockChain: Avoid multi-line chains of blocks.", 3648222389], + [3085, 5, 410, "Metrics/MethodLength: Method has too many lines. [12/10]", 248324428], + [3091, 7, 11, "Style/MultilineBlockChain: Avoid multi-line chains of blocks.", 848344986], + [3135, 5, 712, "Metrics/MethodLength: Method has too many lines. [12/10]", 2500743043], + [3135, 27, 178, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [9/5]", 873705194], + [3135, 121, 10, "Layout/LineLength: Line is too long. [130/120]", 3023611470], + [3161, 42, 167, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 2002181571], + [3174, 5, 1097, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `structured_edit_selection_profile` is too high. [8/7]", 1149325233], + [3174, 5, 1097, "Metrics/MethodLength: Method has too many lines. [14/10]", 1149325233], + [3174, 42, 311, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [11/5]", 3814063337], + [3175, 121, 16, "Layout/LineLength: Line is too long. [136/120]", 198450264], + [3188, 34, 47, "Style/SafeNavigation: Use safe navigation (`&.`) instead of checking if an object exists before calling the method.", 3204815976], + [3193, 5, 869, "Metrics/MethodLength: Method has too many lines. [11/10]", 83957392], + [3193, 41, 250, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [8/5]", 1486072775], + [3194, 121, 13, "Layout/LineLength: Line is too long. [133/120]", 1967186495], + [3204, 36, 47, "Style/SafeNavigation: Use safe navigation (`&.`) instead of checking if an object exists before calling the method.", 3204815976], + [3209, 5, 1156, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `structured_edit_match_profile` is too high. [10/7]", 4112674787], + [3209, 5, 1156, "Metrics/MethodLength: Method has too many lines. [15/10]", 4112674787], + [3209, 5, 1156, "Metrics/PerceivedComplexity: Perceived complexity for `structured_edit_match_profile` is too high. [10/8]", 4112674787], + [3209, 38, 321, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [12/5]", 823565876], + [3210, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5859667], + [3211, 121, 7, "Layout/LineLength: Line is too long. [127/120]", 3673982236], + [3229, 5, 933, "Metrics/MethodLength: Method has too many lines. [14/10]", 2099388915], + [3229, 37, 319, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [12/5]", 250907892], + [3230, 121, 1, "Layout/LineLength: Line is too long. [121/120]", 177545], + [3231, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 4154814685], + [3248, 5, 907, "Metrics/MethodLength: Method has too many lines. [12/10]", 2242846328], + [3248, 42, 275, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [9/5]", 246196330], + [3249, 121, 13, "Layout/LineLength: Line is too long. [133/120]", 1439117336], + [3265, 5, 1057, "Metrics/MethodLength: Method has too many lines. [14/10]", 2891607970], + [3265, 44, 323, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [11/5]", 1386547750], + [3266, 121, 19, "Layout/LineLength: Line is too long. [139/120]", 1676243675], + [3267, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 4154814685], + [3284, 5, 1375, "Metrics/AbcSize: Assignment Branch Condition size for `structured_edit_request` is too high. [<11, 25, 10> 29.09/17]", 4153786554], + [3284, 5, 1375, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `structured_edit_request` is too high. [11/7]", 4153786554], + [3284, 5, 1375, "Metrics/MethodLength: Method has too many lines. [16/10]", 4153786554], + [3284, 5, 1375, "Metrics/PerceivedComplexity: Perceived complexity for `structured_edit_request` is too high. [11/8]", 4153786554], + [3284, 32, 370, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [13/5]", 2381882467], + [3285, 121, 1, "Layout/LineLength: Line is too long. [121/120]", 177545], + [3306, 5, 728, "Metrics/MethodLength: Method has too many lines. [11/10]", 4026157473], + [3306, 31, 175, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [8/5]", 773121544], + [3338, 5, 597, "Metrics/MethodLength: Method has too many lines. [11/10]", 4143495860], + [3377, 5, 577, "Metrics/MethodLength: Method has too many lines. [11/10]", 4169131743], + [3392, 5, 1011, "Metrics/AbcSize: Assignment Branch Condition size for `structured_edit_execution_report` is too high. [<7, 16, 7> 18.81/17]", 876221899], + [3392, 5, 1011, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `structured_edit_execution_report` is too high. [8/7]", 876221899], + [3392, 5, 1011, "Metrics/MethodLength: Method has too many lines. [12/10]", 876221899], + [3392, 41, 245, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [9/5]", 2484440861], + [3393, 121, 55, "Layout/LineLength: Line is too long. [175/120]", 4036992717], + [3418, 55, 170, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [7/5]", 668161765], + [3441, 5, 819, "Metrics/MethodLength: Method has too many lines. [12/10]", 2287133436], + [3441, 56, 217, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [9/5]", 3198032135], + [3442, 121, 51, "Layout/LineLength: Line is too long. [171/120]", 3526181051], + [3475, 5, 663, "Metrics/MethodLength: Method has too many lines. [11/10]", 1853778635], + [3484, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 2162352564], + [3516, 5, 663, "Metrics/MethodLength: Method has too many lines. [11/10]", 1132214891], + [3525, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 2162352564], + [3547, 5, 678, "Metrics/MethodLength: Method has too many lines. [11/10]", 556747511], + [3556, 121, 9, "Layout/LineLength: Line is too long. [129/120]", 1808630920], + [3578, 5, 708, "Metrics/MethodLength: Method has too many lines. [11/10]", 3590891170], + [3587, 121, 15, "Layout/LineLength: Line is too long. [135/120]", 1367166441], + [3610, 5, 678, "Metrics/MethodLength: Method has too many lines. [11/10]", 689748855], + [3619, 121, 9, "Layout/LineLength: Line is too long. [129/120]", 1808630920], + [3641, 5, 708, "Metrics/MethodLength: Method has too many lines. [11/10]", 1478642210], + [3650, 121, 15, "Layout/LineLength: Line is too long. [135/120]", 1367166441], + [3674, 5, 663, "Metrics/MethodLength: Method has too many lines. [11/10]", 239506091], + [3683, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 2162352564], + [3705, 5, 693, "Metrics/MethodLength: Method has too many lines. [11/10]", 3803476550], + [3714, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 926808928], + [3737, 5, 728, "Metrics/MethodLength: Method has too many lines. [11/10]", 748161230], + [3746, 121, 21, "Layout/LineLength: Line is too long. [141/120]", 2807086497], + [3768, 5, 758, "Metrics/MethodLength: Method has too many lines. [11/10]", 3900524558], + [3777, 121, 27, "Layout/LineLength: Line is too long. [147/120]", 3463884836], + [3801, 5, 748, "Metrics/MethodLength: Method has too many lines. [11/10]", 2076716686], + [3810, 121, 25, "Layout/LineLength: Line is too long. [145/120]", 609414023], + [3832, 5, 778, "Metrics/MethodLength: Method has too many lines. [11/10]", 867958318], + [3836, 121, 3, "Layout/LineLength: Line is too long. [123/120]", 193343749], + [3841, 121, 31, "Layout/LineLength: Line is too long. [151/120]", 1202823007], + [3865, 5, 728, "Metrics/MethodLength: Method has too many lines. [11/10]", 2078323790], + [3874, 121, 21, "Layout/LineLength: Line is too long. [141/120]", 2807086497], + [3896, 5, 758, "Metrics/MethodLength: Method has too many lines. [11/10]", 121025422], + [3905, 121, 27, "Layout/LineLength: Line is too long. [147/120]", 3463884836], + [3927, 5, 733, "Metrics/MethodLength: Method has too many lines. [11/10]", 1216456558], + [3936, 121, 22, "Layout/LineLength: Line is too long. [142/120]", 145839927], + [3958, 5, 763, "Metrics/MethodLength: Method has too many lines. [11/10]", 2946525998], + [3967, 121, 28, "Layout/LineLength: Line is too long. [148/120]", 275709226], + [3991, 5, 768, "Metrics/MethodLength: Method has too many lines. [11/10]", 3281402414], + [3995, 121, 1, "Layout/LineLength: Line is too long. [121/120]", 177656], + [4000, 121, 29, "Layout/LineLength: Line is too long. [149/120]", 1427340581], + [4037, 121, 7, "Layout/LineLength: Line is too long. [127/120]", 3673982236], + [4094, 121, 3, "Layout/LineLength: Line is too long. [123/120]", 193417070], + [4105, 121, 7, "Layout/LineLength: Line is too long. [127/120]", 2768444], + [4112, 121, 32, "Layout/LineLength: Line is too long. [152/120]", 3833204035], + [4120, 5, 863, "Metrics/MethodLength: Method has too many lines. [11/10]", 3731153486], + [4124, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 4054494590], + [4129, 121, 48, "Layout/LineLength: Line is too long. [168/120]", 2084326338], + [4135, 121, 36, "Layout/LineLength: Line is too long. [156/120]", 4201858364], + [4139, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5861122], + [4143, 5, 873, "Metrics/MethodLength: Method has too many lines. [11/10]", 1866057614], + [4147, 121, 22, "Layout/LineLength: Line is too long. [142/120]", 3893180930], + [4152, 121, 50, "Layout/LineLength: Line is too long. [170/120]", 863421408], + [4158, 121, 40, "Layout/LineLength: Line is too long. [160/120]", 3247130491], + [4162, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1171438608], + [4166, 5, 883, "Metrics/MethodLength: Method has too many lines. [11/10]", 2352924462], + [4166, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5860841], + [4167, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5861334], + [4170, 121, 24, "Layout/LineLength: Line is too long. [144/120]", 465221046], + [4175, 121, 52, "Layout/LineLength: Line is too long. [172/120]", 1922522532], + [4191, 121, 44, "Layout/LineLength: Line is too long. [164/120]", 4067226670], + [4195, 121, 10, "Layout/LineLength: Line is too long. [130/120]", 2033573170], + [4199, 5, 893, "Metrics/MethodLength: Method has too many lines. [11/10]", 1633175534], + [4199, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2087926422], + [4200, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2087421565], + [4203, 121, 26, "Layout/LineLength: Line is too long. [146/120]", 615151909], + [4208, 121, 54, "Layout/LineLength: Line is too long. [174/120]", 884393597], + [4234, 121, 48, "Layout/LineLength: Line is too long. [168/120]", 417844693], + [4238, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 1233681340], + [4242, 5, 903, "Metrics/MethodLength: Method has too many lines. [11/10]", 3964877742], + [4242, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1165873471], + [4243, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1322899615], + [4246, 121, 28, "Layout/LineLength: Line is too long. [148/120]", 3471008807], + [4251, 121, 56, "Layout/LineLength: Line is too long. [176/120]", 627945471], + [4257, 121, 52, "Layout/LineLength: Line is too long. [172/120]", 2960084092], + [4261, 121, 18, "Layout/LineLength: Line is too long. [138/120]", 2148514258], + [4265, 5, 913, "Metrics/MethodLength: Method has too many lines. [11/10]", 385546958], + [4265, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 2970472935], + [4266, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 3808956371], + [4269, 121, 30, "Layout/LineLength: Line is too long. [150/120]", 3412499338], + [4274, 121, 58, "Layout/LineLength: Line is too long. [178/120]", 3274208144], + [4280, 121, 26, "Layout/LineLength: Line is too long. [146/120]", 4275923717], + [4288, 5, 848, "Metrics/MethodLength: Method has too many lines. [11/10]", 457851502], + [4292, 121, 17, "Layout/LineLength: Line is too long. [137/120]", 413805135], + [4297, 121, 45, "Layout/LineLength: Line is too long. [165/120]", 951908917], + [4303, 121, 10, "Layout/LineLength: Line is too long. [130/120]", 1859200227], + [4311, 5, 808, "Metrics/MethodLength: Method has too many lines. [11/10]", 884695726], + [4315, 121, 9, "Layout/LineLength: Line is too long. [129/120]", 2011807620], + [4320, 121, 37, "Layout/LineLength: Line is too long. [157/120]", 384138219], + [4326, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1176320663], + [4334, 5, 798, "Metrics/MethodLength: Method has too many lines. [11/10]", 1422521838], + [4338, 121, 7, "Layout/LineLength: Line is too long. [127/120]", 3247420006], + [4343, 121, 35, "Layout/LineLength: Line is too long. [155/120]", 1408316702], + [4349, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 938465266], + [4357, 5, 803, "Metrics/MethodLength: Method has too many lines. [11/10]", 2370839950], + [4361, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 74128911], + [4366, 121, 36, "Layout/LineLength: Line is too long. [156/120]", 1364659899], + [4372, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 2059517661], + [4380, 5, 803, "Metrics/MethodLength: Method has too many lines. [11/10]", 3379336814], + [4384, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 74128911], + [4389, 121, 36, "Layout/LineLength: Line is too long. [156/120]", 1364659899], + [4437, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 4281772560], + [4445, 5, 833, "Metrics/MethodLength: Method has too many lines. [11/10]", 3245498510], + [4449, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 3542644754], + [4454, 121, 42, "Layout/LineLength: Line is too long. [162/120]", 1916814773], + [4460, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 859690879], + [4468, 5, 833, "Metrics/MethodLength: Method has too many lines. [11/10]", 4138830126], + [4472, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 3542644754], + [4477, 121, 42, "Layout/LineLength: Line is too long. [162/120]", 1916814773], + [4483, 121, 18, "Layout/LineLength: Line is too long. [138/120]", 3880141603], + [4491, 5, 828, "Metrics/MethodLength: Method has too many lines. [11/10]", 3621010990], + [4495, 121, 13, "Layout/LineLength: Line is too long. [133/120]", 3917260126], + [4500, 121, 41, "Layout/LineLength: Line is too long. [161/120]", 1879260859], + [4506, 121, 22, "Layout/LineLength: Line is too long. [142/120]", 1776611011], + [4514, 5, 838, "Metrics/MethodLength: Method has too many lines. [11/10]", 514585454], + [4518, 121, 15, "Layout/LineLength: Line is too long. [135/120]", 1353518231], + [4523, 121, 43, "Layout/LineLength: Line is too long. [163/120]", 1228459824], + [4529, 121, 38, "Layout/LineLength: Line is too long. [158/120]", 3932349968], + [4533, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2087903307], + [4537, 5, 878, "Metrics/MethodLength: Method has too many lines. [11/10]", 1525737454], + [4537, 121, 1, "Layout/LineLength: Line is too long. [121/120]", 177548], + [4538, 121, 1, "Layout/LineLength: Line is too long. [121/120]", 177538], + [4541, 121, 23, "Layout/LineLength: Line is too long. [143/120]", 2895681070], + [4546, 121, 51, "Layout/LineLength: Line is too long. [171/120]", 4040662298], + [4552, 121, 10, "Layout/LineLength: Line is too long. [130/120]", 66929045], + [4560, 5, 808, "Metrics/MethodLength: Method has too many lines. [11/10]", 1626746606], + [4564, 121, 9, "Layout/LineLength: Line is too long. [129/120]", 2011807620], + [4569, 121, 37, "Layout/LineLength: Line is too long. [157/120]", 384138219], + [4583, 121, 22, "Layout/LineLength: Line is too long. [142/120]", 849230508], + [4591, 5, 838, "Metrics/MethodLength: Method has too many lines. [11/10]", 3531122670], + [4595, 121, 15, "Layout/LineLength: Line is too long. [135/120]", 1353518231], + [4600, 121, 43, "Layout/LineLength: Line is too long. [163/120]", 1228459824], + [4615, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1176320663], + [4623, 5, 798, "Metrics/MethodLength: Method has too many lines. [11/10]", 1118421486], + [4627, 121, 7, "Layout/LineLength: Line is too long. [127/120]", 3247420006], + [4632, 121, 35, "Layout/LineLength: Line is too long. [155/120]", 1408316702], + [4654, 5, 693, "Metrics/MethodLength: Method has too many lines. [11/10]", 1668406662], + [4663, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 926808928], + [4677, 5, 648, "Metrics/MethodLength: Method has too many lines. [11/10]", 3479836893], + [4686, 121, 3, "Layout/LineLength: Line is too long. [123/120]", 193343749], + [4708, 5, 678, "Metrics/MethodLength: Method has too many lines. [11/10]", 3147549879], + [4717, 121, 9, "Layout/LineLength: Line is too long. [129/120]", 1808630920], + [4752, 5, 677, "Metrics/MethodLength: Method has too many lines. [11/10]", 1206941784], + [4761, 121, 7, "Layout/LineLength: Line is too long. [127/120]", 3937819337], + [4784, 5, 672, "Metrics/MethodLength: Method has too many lines. [11/10]", 3634903061], + [4793, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 2162352564], + [4815, 5, 683, "Metrics/MethodLength: Method has too many lines. [11/10]", 3417053461], + [4824, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 926808928], + [4848, 5, 668, "Metrics/MethodLength: Method has too many lines. [11/10]", 1540762726], + [4857, 121, 9, "Layout/LineLength: Line is too long. [129/120]", 1808630920], + [4879, 5, 698, "Metrics/MethodLength: Method has too many lines. [11/10]", 2804825893], + [4888, 121, 15, "Layout/LineLength: Line is too long. [135/120]", 1367166441], + [4911, 5, 683, "Metrics/MethodLength: Method has too many lines. [11/10]", 3165010613], + [4920, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 926808928], + [4942, 5, 713, "Metrics/MethodLength: Method has too many lines. [11/10]", 2795628035], + [4951, 121, 18, "Layout/LineLength: Line is too long. [138/120]", 497133415], + [4957, 5, 864, "Metrics/MethodLength: Method has too many lines. [12/10]", 1086224878], + [4957, 50, 268, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [9/5]", 4022739767], + [4958, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1607400384], + [4982, 5, 658, "Metrics/MethodLength: Method has too many lines. [11/10]", 3999796489], + [4991, 121, 5, "Layout/LineLength: Line is too long. [125/120]", 102058825], + [5005, 59, 179, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 1569981428], + [5006, 121, 23, "Layout/LineLength: Line is too long. [143/120]", 1515849732], + [5037, 5, 694, "Metrics/MethodLength: Method has too many lines. [11/10]", 3830236120], + [5046, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 2250857971], + [5060, 5, 673, "Metrics/MethodLength: Method has too many lines. [11/10]", 2413908653], + [5069, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 1225026887], + [5083, 5, 663, "Metrics/MethodLength: Method has too many lines. [11/10]", 3935895659], + [5092, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 2162352564], + [5106, 5, 692, "Metrics/MethodLength: Method has too many lines. [11/10]", 3660669627], + [5115, 121, 10, "Layout/LineLength: Line is too long. [130/120]", 3558241761], + [5129, 5, 612, "Metrics/MethodLength: Method has too many lines. [11/10]", 100391811], + [5168, 5, 693, "Metrics/MethodLength: Method has too many lines. [11/10]", 3138587622], + [5177, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 926808928], + [5199, 5, 688, "Metrics/MethodLength: Method has too many lines. [11/10]", 2736088861], + [5208, 121, 13, "Layout/LineLength: Line is too long. [133/120]", 1992103013], + [5231, 5, 678, "Metrics/MethodLength: Method has too many lines. [11/10]", 2275602867], + [5240, 121, 11, "Layout/LineLength: Line is too long. [131/120]", 3598350322], + [5263, 5, 602, "Metrics/MethodLength: Method has too many lines. [11/10]", 3023166371], + [5278, 36, 181, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [7/5]", 1071580945], + [5291, 5, 787, "Metrics/AbcSize: Assignment Branch Condition size for `group_projected_child_review_cases` is too high. [<4, 17, 4> 17.92/17]", 3391527151], + [5291, 5, 787, "Metrics/MethodLength: Method has too many lines. [18/10]", 3391527151], + [5315, 5, 705, "Metrics/MethodLength: Method has too many lines. [13/10]", 2629923275], + [5342, 5, 547, "Metrics/MethodLength: Method has too many lines. [12/10]", 1911190850], + [5367, 5, 1516, "Metrics/AbcSize: Assignment Branch Condition size for `review_projected_child_groups` is too high. [<11, 21, 9> 25.36/17]", 3333110579], + [5367, 5, 1516, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `review_projected_child_groups` is too high. [8/7]", 3333110579], + [5367, 5, 1516, "Metrics/MethodLength: Method has too many lines. [39/10]", 3333110579], + [5367, 5, 1516, "Metrics/PerceivedComplexity: Perceived complexity for `review_projected_child_groups` is too high. [9/8]", 3333110579], + [5401, 7, 7, "Style/MultilineBlockChain: Avoid multi-line chains of blocks.", 4045560504], + [5413, 5, 562, "Metrics/MethodLength: Method has too many lines. [14/10]", 3083915102], + [5432, 5, 1898, "Metrics/AbcSize: Assignment Branch Condition size for `resolve_delegated_child_outputs` is too high. [<11, 21, 6> 24.45/17]", 2739722546], + [5432, 5, 1898, "Metrics/MethodLength: Method has too many lines. [49/10]", 2739722546], + [5487, 5, 942, "Metrics/AbcSize: Assignment Branch Condition size for `execute_nested_merge` is too high. [<3, 17, 6> 18.28/17]", 766157172], + [5487, 5, 942, "Metrics/MethodLength: Method has too many lines. [20/10]", 766157172], + [5487, 29, 144, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 1404367793], + [5514, 5, 652, "Metrics/MethodLength: Method has too many lines. [13/10]", 2105803856], + [5533, 38, 140, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 1682835820], + [5563, 5, 577, "Metrics/MethodLength: Method has too many lines. [12/10]", 2659610443], + [5632, 5, 569, "Metrics/MethodLength: Method has too many lines. [14/10]", 20616641], + [5660, 5, 772, "Metrics/AbcSize: Assignment Branch Condition size for `conformance_manifest_review_request_ids` is too high. [<7, 16, 8> 19.21/17]", 3577418475], + [5660, 5, 772, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `conformance_manifest_review_request_ids` is too high. [9/7]", 3577418475], + [5660, 5, 772, "Metrics/MethodLength: Method has too many lines. [14/10]", 3577418475], + [5660, 5, 772, "Metrics/PerceivedComplexity: Perceived complexity for `conformance_manifest_review_request_ids` is too high. [9/8]", 3577418475], + [5714, 5, 606, "Metrics/MethodLength: Method has too many lines. [11/10]", 2675086662], + [5729, 5, 562, "Metrics/MethodLength: Method has too many lines. [11/10]", 3811715870], + [5744, 5, 578, "Metrics/MethodLength: Method has too many lines. [11/10]", 1776197415], + [5759, 5, 1298, "Metrics/AbcSize: Assignment Branch Condition size for `resolve_conformance_family_context` is too high. [<7, 28, 9> 30.23/17]", 4265202259], + [5759, 5, 1298, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `resolve_conformance_family_context` is too high. [10/7]", 4265202259], + [5759, 5, 1298, "Metrics/MethodLength: Method has too many lines. [23/10]", 4265202259], + [5759, 5, 1298, "Metrics/PerceivedComplexity: Perceived complexity for `resolve_conformance_family_context` is too high. [10/8]", 4265202259], + [5788, 5, 1994, "Metrics/AbcSize: Assignment Branch Condition size for `review_conformance_family_context` is too high. [<12, 24, 10> 28.64/17]", 2834851944], + [5788, 5, 1994, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `review_conformance_family_context` is too high. [10/7]", 2834851944], + [5788, 5, 1994, "Metrics/MethodLength: Method has too many lines. [41/10]", 2834851944], + [5788, 5, 1994, "Metrics/PerceivedComplexity: Perceived complexity for `review_conformance_family_context` is too high. [11/8]", 2834851944], + [5811, 121, 33, "Layout/LineLength: Line is too long. [153/120]", 641612328], + [5848, 5, 1844, "Metrics/AbcSize: Assignment Branch Condition size for `select_conformance_case` is too high. [<2, 43, 14> 45.27/17]", 670673209], + [5848, 5, 1844, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `select_conformance_case` is too high. [14/7]", 670673209], + [5848, 5, 1844, "Metrics/MethodLength: Method has too many lines. [30/10]", 670673209], + [5848, 5, 1844, "Metrics/PerceivedComplexity: Perceived complexity for `select_conformance_case` is too high. [16/8]", 670673209], + [5853, 121, 34, "Layout/LineLength: Line is too long. [154/120]", 2135503892], + [5855, 121, 41, "Layout/LineLength: Line is too long. [161/120]", 3932054828], + [5864, 121, 30, "Layout/LineLength: Line is too long. [150/120]", 3169124957], + [5886, 5, 509, "Metrics/MethodLength: Method has too many lines. [11/10]", 3552283123], + [5975, 5, 4195, "Metrics/AbcSize: Assignment Branch Condition size for `review_conformance_manifest` is too high. [<37, 63, 16> 74.79/17]", 2166560528], + [5975, 5, 4195, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `review_conformance_manifest` is too high. [14/7]", 2166560528], + [5975, 5, 4195, "Metrics/MethodLength: Method has too many lines. [89/10]", 2166560528], + [5975, 5, 4195, "Metrics/PerceivedComplexity: Perceived complexity for `review_conformance_manifest` is too high. [17/8]", 2166560528], + [6040, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 2746826653], + [6056, 121, 47, "Layout/LineLength: Line is too long. [167/120]", 3035993839], + [6078, 5, 676, "Metrics/MethodLength: Method has too many lines. [15/10]", 3048335475], + [6101, 5, 1054, "Metrics/AbcSize: Assignment Branch Condition size for `plan_conformance_suite` is too high. [<11, 18, 8> 22.56/17]", 1855254788], + [6101, 5, 1054, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `plan_conformance_suite` is too high. [8/7]", 1855254788], + [6101, 5, 1054, "Metrics/MethodLength: Method has too many lines. [25/10]", 1855254788], + [6101, 31, 84, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 172854173], + [6166, 5, 1274, "Metrics/AbcSize: Assignment Branch Condition size for `plan_named_conformance_suites_with_diagnostics` is too high. [<11, 21, 7> 24.72/17]", 3991300730], + [6166, 5, 1274, "Metrics/MethodLength: Method has too many lines. [27/10]", 3991300730], + [6193, 121, 47, "Layout/LineLength: Line is too long. [167/120]", 3035993839], + [6258, 5, 2071, "Metrics/AbcSize: Assignment Branch Condition size for `review_decision_for_family_context` is too high. [<7, 22, 16> 28.09/17]", 4245377184], + [6258, 5, 2071, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `review_decision_for_family_context` is too high. [12/7]", 4245377184], + [6258, 5, 2071, "Metrics/MethodLength: Method has too many lines. [46/10]", 4245377184], + [6258, 5, 2071, "Metrics/PerceivedComplexity: Perceived complexity for `review_decision_for_family_context` is too high. [12/8]", 4245377184], + [6263, 7, 1766, "Metrics/BlockLength: Block has too many lines. [40/25]", 65448241], + [6315, 5, 686, "Metrics/MethodLength: Method has too many lines. [13/10]", 4030291682] + ], + "lib/ast/merge/ast_node.rb:2037773320": [ + [44, 5, 7086, "Metrics/ClassLength: Class has too many lines. [114/100]", 201314721], + [220, 11, 10, "Naming/PredicatePrefix: Rename `has_error?` to `error?`.", 946854183] + ], + "lib/ast/merge/comment/attachment.rb:2388154769": [ + [42, 23, 180, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [9/5]", 3775370530], + [75, 24, 2, "Lint/SafeNavigationConsistency: Use `.` instead of unnecessary `&.`.", 5858765], + [81, 25, 2, "Lint/SafeNavigationConsistency: Use `.` instead of unnecessary `&.`.", 5858765], + [114, 9, 410, "Metrics/AbcSize: Assignment Branch Condition size for `inspect` is too high. [<1, 17, 4> 17.49/17]", 605978105], + [115, 32, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765] + ], + "lib/ast/merge/comment/augmenter.rb:633395157": [ + [12, 7, 13967, "Metrics/ClassLength: Class has too many lines. [291/100]", 2806660144], + [33, 9, 721, "Metrics/MethodLength: Method has too many lines. [16/10]", 200402816], + [33, 23, 91, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [7/5]", 2938734913], + [64, 9, 1335, "Metrics/AbcSize: Assignment Branch Condition size for `build!` is too high. [<12, 29, 6> 31.95/17]", 3904283188], + [64, 9, 1335, "Metrics/MethodLength: Method has too many lines. [22/10]", 3904283188], + [94, 9, 867, "Metrics/AbcSize: Assignment Branch Condition size for `infer_leading_comments` is too high. [<8, 19, 14> 24.92/17]", 1941464872], + [94, 9, 867, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `infer_leading_comments` is too high. [11/7]", 1941464872], + [94, 9, 867, "Metrics/MethodLength: Method has too many lines. [20/10]", 1941464872], + [94, 9, 867, "Metrics/PerceivedComplexity: Perceived complexity for `infer_leading_comments` is too high. [12/8]", 1941464872], + [122, 9, 429, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `infer_inline_comments` is too high. [8/7]", 2688935834], + [133, 9, 934, "Metrics/AbcSize: Assignment Branch Condition size for `infer_trailing_comments` is too high. [<8, 21, 18> 28.79/17]", 1551855281], + [133, 9, 934, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `infer_trailing_comments` is too high. [15/7]", 1551855281], + [133, 9, 934, "Metrics/MethodLength: Method has too many lines. [20/10]", 1551855281], + [133, 9, 934, "Metrics/PerceivedComplexity: Perceived complexity for `infer_trailing_comments` is too high. [15/8]", 1551855281], + [160, 9, 488, "Metrics/AbcSize: Assignment Branch Condition size for `infer_postlude!` is too high. [<5, 17, 8> 19.44/17]", 2562637949], + [160, 9, 488, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `infer_postlude!` is too high. [8/7]", 2562637949], + [173, 9, 1529, "Metrics/AbcSize: Assignment Branch Condition size for `infer_remaining_regions!` is too high. [<12, 27, 23> 37.44/17]", 3911657050], + [173, 9, 1529, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `infer_remaining_regions!` is too high. [18/7]", 3911657050], + [173, 9, 1529, "Metrics/MethodLength: Method has too many lines. [28/10]", 3911657050], + [173, 9, 1529, "Metrics/PerceivedComplexity: Perceived complexity for `infer_remaining_regions!` is too high. [20/8]", 3911657050], + [216, 9, 507, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `split_preamble_group` is too high. [8/7]", 336784898], + [231, 9, 588, "Metrics/MethodLength: Method has too many lines. [17/10]", 3445626532], + [274, 9, 965, "Metrics/AbcSize: Assignment Branch Condition size for `build_region` is too high. [<6, 17, 7> 19.34/17]", 344809006], + [274, 9, 965, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `build_region` is too high. [8/7]", 344809006], + [274, 9, 965, "Metrics/MethodLength: Method has too many lines. [24/10]", 344809006] + ], + "lib/ast/merge/comment/block.rb:3806757604": [ + [31, 7, 6754, "Metrics/ClassLength: Class has too many lines. [106/100]", 2308582303], + [57, 9, 1059, "Metrics/AbcSize: Assignment Branch Condition size for `initialize` is too high. [<12, 13, 14> 22.56/17]", 2656171724], + [57, 9, 1059, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `initialize` is too high. [14/7]", 2656171724], + [57, 9, 1059, "Metrics/MethodLength: Method has too many lines. [21/10]", 2656171724], + [57, 9, 1059, "Metrics/PerceivedComplexity: Perceived complexity for `initialize` is too high. [15/8]", 2656171724], + [113, 9, 511, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `freeze_action` is too high. [9/7]", 55014877], + [113, 9, 511, "Metrics/MethodLength: Method has too many lines. [12/10]", 55014877], + [113, 9, 511, "Metrics/PerceivedComplexity: Perceived complexity for `freeze_action` is too high. [9/8]", 55014877], + [181, 9, 439, "Metrics/AbcSize: Assignment Branch Condition size for `first_meaningful_content` is too high. [<2, 16, 11> 19.52/17]", 680479883], + [181, 9, 439, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `first_meaningful_content` is too high. [11/7]", 680479883], + [181, 9, 439, "Metrics/PerceivedComplexity: Perceived complexity for `first_meaningful_content` is too high. [12/8]", 680479883], + [197, 9, 765, "Metrics/AbcSize: Assignment Branch Condition size for `extract_block_content` is too high. [<7, 24, 9> 26.57/17]", 621871624], + [197, 9, 765, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `extract_block_content` is too high. [9/7]", 621871624], + [197, 9, 765, "Metrics/PerceivedComplexity: Perceived complexity for `extract_block_content` is too high. [9/8]", 621871624] + ], + "lib/ast/merge/comment/c_style_tracker_base.rb:1569556520": [ + [22, 7, 15053, "Metrics/ClassLength: Class has too many lines. [284/100]", 3599183270], + [83, 9, 509, "Metrics/MethodLength: Method has too many lines. [11/10]", 1639553915], + [102, 9, 492, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `leading_comments_before` is too high. [8/7]", 3127043491], + [102, 9, 492, "Metrics/MethodLength: Method has too many lines. [11/10]", 3127043491], + [124, 9, 487, "Metrics/MethodLength: Method has too many lines. [11/10]", 1869933531], + [176, 9, 713, "Metrics/AbcSize: Assignment Branch Condition size for `trailing_comments_after` is too high. [<6, 12, 13> 18.68/17]", 543703521], + [176, 9, 713, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `trailing_comments_after` is too high. [11/7]", 543703521], + [176, 9, 713, "Metrics/MethodLength: Method has too many lines. [14/10]", 543703521], + [176, 9, 713, "Metrics/PerceivedComplexity: Perceived complexity for `trailing_comments_after` is too high. [11/8]", 543703521], + [184, 121, 1, "Layout/LineLength: Line is too long. [121/120]", 177549], + [202, 9, 598, "Metrics/MethodLength: Method has too many lines. [12/10]", 1628921093], + [222, 9, 1271, "Metrics/MethodLength: Method has too many lines. [21/10]", 612335469], + [222, 35, 137, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 1823300034], + [329, 35, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], + [348, 9, 2271, "Metrics/AbcSize: Assignment Branch Condition size for `extract_comments` is too high. [<17, 32, 13> 38.5/17]", 2751274968], + [348, 9, 2271, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `extract_comments` is too high. [14/7]", 2751274968], + [348, 9, 2271, "Metrics/MethodLength: Method has too many lines. [59/10]", 2751274968], + [348, 9, 2271, "Metrics/PerceivedComplexity: Perceived complexity for `extract_comments` is too high. [14/8]", 2751274968], + [353, 11, 2045, "Metrics/BlockLength: Block has too many lines. [52/25]", 575665179], + [418, 9, 659, "Metrics/MethodLength: Method has too many lines. [15/10]", 177254901], + [439, 71, 4, "Lint/UnusedMethodArgument: Unused method argument - `line`.", 2087656651], + [439, 78, 8, "Lint/UnusedMethodArgument: Unused method argument - `line_num`.", 622661090] + ], + "lib/ast/merge/comment/hash_tracker_base.rb:861186417": [ + [32, 7, 19362, "Metrics/ClassLength: Class has too many lines. [221/100]", 1031055222], + [118, 9, 444, "Metrics/MethodLength: Method has too many lines. [11/10]", 3347260807], + [142, 9, 921, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `leading_comments_before` is too high. [8/7]", 415734636], + [142, 9, 921, "Metrics/MethodLength: Method has too many lines. [11/10]", 415734636], + [172, 9, 440, "Metrics/MethodLength: Method has too many lines. [11/10]", 2464474004], + [225, 9, 623, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `trailing_comments_after` is too high. [10/7]", 543703521], + [225, 9, 623, "Metrics/MethodLength: Method has too many lines. [12/10]", 543703521], + [225, 9, 623, "Metrics/PerceivedComplexity: Perceived complexity for `trailing_comments_after` is too high. [10/8]", 543703521], + [249, 9, 551, "Metrics/MethodLength: Method has too many lines. [12/10]", 2783654570], + [278, 9, 1271, "Metrics/MethodLength: Method has too many lines. [21/10]", 612335469], + [278, 35, 137, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 1823300034], + [374, 35, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], + [439, 9, 826, "Metrics/MethodLength: Method has too many lines. [12/10]", 1706632542] + ], + "lib/ast/merge/comment/parser.rb:2674748021": [ + [34, 7, 8372, "Metrics/ClassLength: Class has too many lines. [141/100]", 2541983664], + [84, 9, 357, "Metrics/MethodLength: Method has too many lines. [12/10]", 2265493710], + [104, 9, 545, "Metrics/AbcSize: Assignment Branch Condition size for `auto_detect_style` is too high. [<5, 17, 7> 19.05/17]", 868366444], + [104, 9, 545, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `auto_detect_style` is too high. [8/7]", 868366444], + [125, 9, 1650, "Metrics/AbcSize: Assignment Branch Condition size for `parse_line_comments` is too high. [<8, 28, 7> 29.95/17]", 1511562163], + [125, 9, 1650, "Metrics/MethodLength: Method has too many lines. [31/10]", 1511562163], + [176, 9, 2670, "Metrics/AbcSize: Assignment Branch Condition size for `parse_with_block_comments` is too high. [<15, 47, 15> 51.57/17]", 2963765048], + [176, 9, 2670, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `parse_with_block_comments` is too high. [15/7]", 2963765048], + [176, 9, 2670, "Metrics/MethodLength: Method has too many lines. [47/10]", 2963765048], + [176, 9, 2670, "Metrics/PerceivedComplexity: Perceived complexity for `parse_with_block_comments` is too high. [16/8]", 2963765048], + [181, 11, 2390, "Metrics/BlockLength: Block has too many lines. [40/25]", 3720582340] + ], + "lib/ast/merge/comment/quoted_hash_line_parser.rb:2878420841": [ + [74, 9, 458, "Metrics/MethodLength: Method has too many lines. [11/10]", 1526360697], + [91, 9, 620, "Metrics/AbcSize: Assignment Branch Condition size for `inline_result` is too high. [<3, 16, 6> 17.35/17]", 2706755447], + [91, 9, 620, "Metrics/MethodLength: Method has too many lines. [14/10]", 2706755447] + ], + "lib/ast/merge/comment/region_merge_policy.rb:176745155": [ + [23, 23, 98, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 1029631546], + [55, 9, 423, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `freeze_sensitive?` is too high. [8/7]", 4102661282], + [61, 41, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], + [61, 85, 2, "Lint/SafeNavigationConsistency: Use `.` instead of unnecessary `&.`.", 5858765], + [96, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 3491399903] + ], + "lib/ast/merge/comment/style.rb:3045051983": [ + [27, 7, 9109, "Metrics/ClassLength: Class has too many lines. [143/100]", 131723516], + [142, 11, 911, "Metrics/MethodLength: Method has too many lines. [17/10]", 355862493], + [142, 23, 164, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [8/5]", 668558018], + [203, 23, 164, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [8/5]", 668558018] + ], + "lib/ast/merge/comment/tracked_hash_adapter.rb:3235547929": [ + [99, 11, 553, "Metrics/AbcSize: Assignment Branch Condition size for `line_text_from` is too high. [<4, 20, 4> 20.78/17]", 2680273536], + [99, 11, 553, "Metrics/MethodLength: Method has too many lines. [13/10]", 2680273536] + ], + "lib/ast/merge/comment_layout_emission_support.rb:3192614990": [ + [12, 5, 14039, "Metrics/ModuleLength: Module has too many lines. [287/100]", 2115648988], + [18, 40, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], + [29, 40, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], + [88, 43, 149, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 1025246092], + [100, 7, 916, "Metrics/MethodLength: Method has too many lines. [11/10]", 3294772058], + [100, 57, 163, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 1661656204], + [122, 7, 730, "Metrics/MethodLength: Method has too many lines. [13/10]", 2493279555], + [139, 62, 6, "Lint/UnusedMethodArgument: Unused method argument - `owners`.", 1719502071], + [193, 7, 477, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `retained_owner_leading_gap_for` is too high. [8/7]", 974771614], + [193, 7, 477, "Metrics/PerceivedComplexity: Perceived complexity for `retained_owner_leading_gap_for` is too high. [9/8]", 974771614], + [194, 40, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], + [220, 23, 24, "Style/SafeNavigation: Use safe navigation (`&.`) instead of checking if an object exists before calling the method.", 1487466207], + [243, 7, 1015, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `root_boundary_lines_for` is too high. [11/7]", 2612519600], + [243, 7, 1015, "Metrics/MethodLength: Method has too many lines. [13/10]", 2612519600], + [243, 7, 1015, "Metrics/PerceivedComplexity: Perceived complexity for `root_boundary_lines_for` is too high. [11/8]", 2612519600], + [247, 34, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], + [271, 7, 959, "Metrics/AbcSize: Assignment Branch Condition size for `owner_bound_root_boundary_lines_for` is too high. [<8, 22, 17> 28.93/17]", 238225688], + [271, 7, 959, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `owner_bound_root_boundary_lines_for` is too high. [16/7]", 238225688], + [271, 7, 959, "Metrics/MethodLength: Method has too many lines. [17/10]", 238225688], + [271, 7, 959, "Metrics/PerceivedComplexity: Perceived complexity for `owner_bound_root_boundary_lines_for` is too high. [15/8]", 238225688], + [307, 7, 912, "Metrics/AbcSize: Assignment Branch Condition size for `root_boundary_range` is too high. [<6, 22, 12> 25.77/17]", 2821370782], + [307, 7, 912, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `root_boundary_range` is too high. [11/7]", 2821370782], + [307, 7, 912, "Metrics/MethodLength: Method has too many lines. [21/10]", 2821370782], + [307, 7, 912, "Metrics/PerceivedComplexity: Perceived complexity for `root_boundary_range` is too high. [12/8]", 2821370782], + [350, 7, 401, "Metrics/MethodLength: Method has too many lines. [11/10]", 559624650] + ], + "lib/ast/merge/composite_match_refiner.rb:1718969703": [ + [58, 7, 668, "Metrics/MethodLength: Method has too many lines. [14/10]", 2649148714] + ], + "lib/ast/merge/conflict_resolver_base.rb:765343263": [ + [69, 5, 14959, "Metrics/ClassLength: Class has too many lines. [170/100]", 633092728], + [156, 7, 919, "Metrics/MethodLength: Method has too many lines. [13/10]", 1701319380], + [156, 21, 200, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [9/5]", 3369976202], + [367, 7, 972, "Metrics/MethodLength: Method has too many lines. [22/10]", 2870739148], + [434, 47, 13, "Style/NumericPredicate: Use `recursive.positive?` instead of `recursive > 0`.", 462999281], + [436, 99, 14, "Style/NumericPredicate: Use `recursive.zero?` instead of `recursive == 0`.", 2394069519] + ], + "lib/ast/merge/content_match_refiner.rb:3628272158": [ + [47, 5, 7719, "Metrics/ClassLength: Class has too many lines. [108/100]", 651494487], + [87, 7, 750, "Metrics/MethodLength: Method has too many lines. [17/10]", 3624290009], + [165, 37, 48, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 953994744], + [232, 7, 846, "Metrics/AbcSize: Assignment Branch Condition size for `levenshtein_distance` is too high. [<13, 29, 8> 32.77/17]", 3597737347], + [232, 7, 846, "Metrics/MethodLength: Method has too many lines. [20/10]", 3597737347] + ], + "lib/ast/merge/debug_logger.rb:1783610128": [ + [72, 5, 7614, "Metrics/ModuleLength: Module has too many lines. [118/100]", 736598454], + [85, 121, 7, "Layout/LineLength: Line is too long. [127/120]", 941621], + [206, 7, 584, "Metrics/AbcSize: Assignment Branch Condition size for `time` is too high. [<3, 17, 2> 17.38/17]", 3468868523], + [206, 7, 584, "Metrics/MethodLength: Method has too many lines. [14/10]", 3468868523], + [269, 7, 450, "Metrics/PerceivedComplexity: Perceived complexity for `extract_lines` is too high. [9/8]", 680738666], + [287, 7, 11, "Style/ModuleFunction: Use `module_function` instead of `extend self`.", 1210897631] + ], + "lib/ast/merge/detector/base.rb:343830240": [ + [175, 25, 73, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 2991095115] + ], + "lib/ast/merge/detector/fenced_code_block.rb:3555142063": [ + [36, 7, 6302, "Metrics/ClassLength: Class has too many lines. [116/100]", 852968953], + [71, 9, 2492, "Metrics/AbcSize: Assignment Branch Condition size for `detect_all` is too high. [<31, 28, 12> 43.46/17]", 3575218793], + [71, 9, 2492, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `detect_all` is too high. [11/7]", 3575218793], + [71, 9, 2492, "Metrics/MethodLength: Method has too many lines. [54/10]", 3575218793], + [71, 9, 2492, "Metrics/PerceivedComplexity: Perceived complexity for `detect_all` is too high. [13/8]", 3575218793], + [84, 11, 2060, "Metrics/BlockLength: Block has too many lines. [41/25]", 1744553779] + ], + "lib/ast/merge/detector/mergeable.rb:354817747": [ + [54, 7, 11933, "Metrics/ModuleLength: Module has too many lines. [140/100]", 1453034870], + [162, 9, 601, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `build_region_configs` is too high. [8/7]", 1278024890], + [162, 9, 601, "Metrics/MethodLength: Method has too many lines. [16/10]", 1278024890], + [189, 9, 1054, "Metrics/AbcSize: Assignment Branch Condition size for `extract_regions` is too high. [<11, 16, 3> 19.65/17]", 663241096], + [189, 9, 1054, "Metrics/MethodLength: Method has too many lines. [20/10]", 663241096], + [285, 9, 1005, "Metrics/AbcSize: Assignment Branch Condition size for `merge_and_substitute_regions` is too high. [<16, 19, 4> 25.16/17]", 4123525156], + [285, 9, 1005, "Metrics/MethodLength: Method has too many lines. [16/10]", 4123525156], + [318, 9, 1369, "Metrics/AbcSize: Assignment Branch Condition size for `merge_region` is too high. [<11, 20, 14> 26.78/17]", 746321843], + [318, 9, 1369, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `merge_region` is too high. [15/7]", 746321843], + [318, 9, 1369, "Metrics/MethodLength: Method has too many lines. [16/10]", 746321843], + [318, 9, 1369, "Metrics/PerceivedComplexity: Perceived complexity for `merge_region` is too high. [15/8]", 746321843] + ], + "lib/ast/merge/detector/toml_frontmatter.rb:3255696517": [ + [50, 9, 892, "Metrics/MethodLength: Method has too many lines. [20/10]", 3132005303] + ], + "lib/ast/merge/detector/yaml_frontmatter.rb:2551474823": [ + [49, 9, 958, "Metrics/MethodLength: Method has too many lines. [20/10]", 3132005303] + ], + "lib/ast/merge/diff_mapper_base.rb:3204989377": [ + [22, 5, 7793, "Metrics/ClassLength: Class has too many lines. [141/100]", 2217731166], + [80, 7, 2598, "Metrics/AbcSize: Assignment Branch Condition size for `parse_diff` is too high. [<21, 31, 15> 40.34/17]", 939898835], + [80, 7, 2598, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `parse_diff` is too high. [16/7]", 939898835], + [80, 7, 2598, "Metrics/MethodLength: Method has too many lines. [65/10]", 939898835], + [80, 7, 2598, "Metrics/PerceivedComplexity: Perceived complexity for `parse_diff` is too high. [12/8]", 939898835], + [90, 9, 2162, "Metrics/BlockLength: Block has too many lines. [50/25]", 3403609416], + [169, 7, 394, "Metrics/MethodLength: Method has too many lines. [11/10]", 2028641628] + ], + "lib/ast/merge/emitter_base.rb:4280054392": [ + [26, 5, 14922, "Metrics/ClassLength: Class has too many lines. [232/100]", 2015391034], + [95, 7, 653, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `emit_comment_region` is too high. [9/7]", 24580929], + [95, 7, 653, "Metrics/MethodLength: Method has too many lines. [12/10]", 24580929], + [95, 7, 653, "Metrics/PerceivedComplexity: Perceived complexity for `emit_comment_region` is too high. [9/8]", 24580929], + [120, 7, 1311, "Metrics/AbcSize: Assignment Branch Condition size for `emit_comment_attachment` is too high. [<5, 25, 16> 30.1/17]", 964928813], + [120, 7, 1311, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `emit_comment_attachment` is too high. [17/7]", 964928813], + [120, 7, 1311, "Metrics/MethodLength: Method has too many lines. [17/10]", 964928813], + [120, 7, 1311, "Metrics/PerceivedComplexity: Perceived complexity for `emit_comment_attachment` is too high. [17/8]", 964928813], + [120, 34, 127, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 628879795], + [152, 7, 984, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `emit_layout_gap` is too high. [8/7]", 1954418889], + [152, 7, 984, "Metrics/MethodLength: Method has too many lines. [13/10]", 1954418889], + [152, 7, 984, "Metrics/PerceivedComplexity: Perceived complexity for `emit_layout_gap` is too high. [9/8]", 1954418889], + [152, 26, 136, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 3839882587], + [183, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5861198], + [184, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2087656651], + [186, 7, 1307, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `emit_layout_attachment` is too high. [9/7]", 708408665], + [186, 7, 1307, "Metrics/MethodLength: Method has too many lines. [26/10]", 708408665], + [186, 7, 1307, "Metrics/PerceivedComplexity: Perceived complexity for `emit_layout_attachment` is too high. [9/8]", 708408665], + [186, 33, 218, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [8/5]", 1552587384], + [187, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 1763090185], + [189, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1371312610], + [271, 31, 17, "Style/NumericPredicate: Use `@indent_level.positive?` instead of `@indent_level > 0`.", 1892475678], + [317, 56, 12, "Lint/UnusedMethodArgument: Unused method argument - `current_line`. You can also write as `inline_comment_region_target_column(*)` if you want the method to accept any arguments but don't care about them.", 2091263933], + [321, 42, 6, "Lint/UnusedMethodArgument: Unused method argument - `region`.", 2124512157], + [321, 51, 13, "Lint/UnusedMethodArgument: Unused method argument - `target_column`.", 3246375805], + [336, 7, 1141, "Metrics/AbcSize: Assignment Branch Condition size for `inline_comment_node_text` is too high. [<6, 29, 8> 30.68/17]", 2583471562], + [336, 7, 1141, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `inline_comment_node_text` is too high. [9/7]", 2583471562], + [336, 7, 1141, "Metrics/MethodLength: Method has too many lines. [22/10]", 2583471562], + [336, 7, 1141, "Metrics/PerceivedComplexity: Perceived complexity for `inline_comment_node_text` is too high. [9/8]", 2583471562], + [354, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5861626], + [365, 7, 510, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `emit_region_gap_lines` is too high. [8/7]", 1999747697], + [365, 7, 510, "Metrics/PerceivedComplexity: Perceived complexity for `emit_region_gap_lines` is too high. [9/8]", 1999747697] + ], + "lib/ast/merge/emitter_line_metadata_support.rb:3153033769": [ + [5, 5, 33, "Style/Documentation: Missing top-level documentation comment for `module Ast::Merge::EmitterLineMetadataSupport`.", 2926748997], + [23, 7, 541, "Metrics/MethodLength: Method has too many lines. [12/10]", 2407359355] + ], + "lib/ast/merge/file_aligner_base.rb:2160333224": [ + [13, 5, 8206, "Metrics/ClassLength: Class has too many lines. [203/100]", 2982381587], + [27, 7, 2329, "Metrics/AbcSize: Assignment Branch Condition size for `align` is too high. [<19, 39, 14> 45.59/17]", 1243937217], + [27, 7, 2329, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `align` is too high. [14/7]", 1243937217], + [27, 7, 2329, "Metrics/MethodLength: Method has too many lines. [56/10]", 1243937217], + [27, 7, 2329, "Metrics/PerceivedComplexity: Perceived complexity for `align` is too high. [14/8]", 1243937217], + [167, 7, 655, "Metrics/MethodLength: Method has too many lines. [14/10]", 2468821688], + [199, 7, 455, "Metrics/MethodLength: Method has too many lines. [13/10]", 2361153066], + [218, 7, 1557, "Metrics/AbcSize: Assignment Branch Condition size for `apply_match_refiner!` is too high. [<10, 28, 12> 32.06/17]", 2386945712], + [218, 7, 1557, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `apply_match_refiner!` is too high. [13/7]", 2386945712], + [218, 7, 1557, "Metrics/MethodLength: Method has too many lines. [31/10]", 2386945712], + [218, 7, 1557, "Metrics/PerceivedComplexity: Perceived complexity for `apply_match_refiner!` is too high. [13/8]", 2386945712] + ], + "lib/ast/merge/file_analyzable.rb:607555963": [ + [36, 5, 31229, "Metrics/ModuleLength: Module has too many lines. [316/100]", 1247752256], + [99, 19, 9, "Style/NumericPredicate: Use `index.negative?` instead of `index < 0`.", 4215255415], + [148, 7, 793, "Metrics/MethodLength: Method has too many lines. [22/10]", 1467470910], + [202, 7, 771, "Metrics/MethodLength: Method has too many lines. [16/10]", 1412317163], + [344, 7, 844, "Metrics/MethodLength: Method has too many lines. [12/10]", 2335919661], + [369, 7, 730, "Metrics/MethodLength: Method has too many lines. [11/10]", 1047958652], + [431, 7, 863, "Metrics/AbcSize: Assignment Branch Condition size for `normalize_layout_owned_comment_attachment` is too high. [<0, 20, 4> 20.4/17]", 3284843691], + [431, 7, 863, "Metrics/MethodLength: Method has too many lines. [17/10]", 3284843691], + [481, 7, 683, "Metrics/MethodLength: Method has too many lines. [15/10]", 241044926], + [520, 14, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], + [614, 7, 6095, "Metrics/AbcSize: Assignment Branch Condition size for `generate_signature` is too high. [<4, 21, 13> 25.02/17]", 2828809875], + [614, 7, 6095, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `generate_signature` is too high. [11/7]", 2828809875], + [614, 7, 6095, "Metrics/MethodLength: Method has too many lines. [30/10]", 2828809875], + [614, 7, 6095, "Metrics/PerceivedComplexity: Perceived complexity for `generate_signature` is too high. [14/8]", 2828809875], + [676, 24, 390, "Metrics/BlockNesting: Avoid more than 3 levels of block nesting.", 3279112483] + ], + "lib/ast/merge/freeze_node_base.rb:2110274026": [ + [59, 5, 14572, "Metrics/ClassLength: Class has too many lines. [171/100]", 3038607603], + [108, 25, 545, "Style/MutableConstant: Freeze mutable objects assigned to constants.", 2366014160], + [186, 9, 1100, "Metrics/MethodLength: Method has too many lines. [15/10]", 2506841532], + [288, 7, 758, "Metrics/MethodLength: Method has too many lines. [11/10]", 136868205], + [288, 21, 276, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [11/5]", 1720059801], + [335, 7, 660, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `reason` is too high. [8/7]", 3127566048], + [418, 20, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765] + ], + "lib/ast/merge/healer.rb:3642412735": [ + [18, 7, 588, "Metrics/MethodLength: Method has too many lines. [15/10]", 3172269921], + [18, 17, 84, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 1781025196], + [41, 7, 687, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `filter_items` is too high. [8/7]", 1200842691], + [41, 7, 687, "Metrics/MethodLength: Method has too many lines. [17/10]", 1200842691], + [41, 7, 687, "Metrics/PerceivedComplexity: Perceived complexity for `filter_items` is too high. [9/8]", 1200842691], + [41, 23, 130, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [8/5]", 33939503] + ], + "lib/ast/merge/jaccard_similarity.rb:678558736": [ + [87, 19, 1, "Naming/MethodParameterName: Method parameter must be at least 3 characters long.", 177604], + [87, 22, 1, "Naming/MethodParameterName: Method parameter must be at least 3 characters long.", 177607] + ], + "lib/ast/merge/key_path_partial_template_merger_base.rb:1818613864": [ + [22, 5, 6114, "Metrics/ClassLength: Class has too many lines. [155/100]", 1269962119], + [43, 21, 214, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [8/5]", 3637591635], + [68, 7, 489, "Metrics/MethodLength: Method has too many lines. [12/10]", 3170411580], + [118, 7, 640, "Metrics/AbcSize: Assignment Branch Condition size for `find_key_path` is too high. [<8, 14, 10> 18.97/17]", 2613403604], + [118, 7, 640, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `find_key_path` is too high. [8/7]", 2613403604], + [118, 7, 640, "Metrics/MethodLength: Method has too many lines. [16/10]", 2613403604], + [118, 7, 640, "Metrics/PerceivedComplexity: Perceived complexity for `find_key_path` is too high. [9/8]", 2613403604], + [140, 7, 536, "Metrics/MethodLength: Method has too many lines. [17/10]", 3598062652], + [168, 7, 804, "Metrics/MethodLength: Method has too many lines. [19/10]", 2773364183] + ], + "lib/ast/merge/layout.rb:3670500101": [ + [23, 36, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765] + ], + "lib/ast/merge/layout/augmenter.rb:3229088287": [ + [8, 7, 5440, "Metrics/ClassLength: Class has too many lines. [128/100]", 2306720287], + [23, 23, 125, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [7/5]", 3395039982], + [55, 9, 1795, "Metrics/AbcSize: Assignment Branch Condition size for `build!` is too high. [<20, 32, 17> 41.39/17]", 3542913254], + [55, 9, 1795, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `build!` is too high. [15/7]", 3542913254], + [55, 9, 1795, "Metrics/MethodLength: Method has too many lines. [43/10]", 3542913254], + [55, 9, 1795, "Metrics/PerceivedComplexity: Perceived complexity for `build!` is too high. [15/8]", 3542913254], + [60, 11, 1227, "Metrics/BlockLength: Block has too many lines. [29/25]", 55360131], + [107, 9, 504, "Metrics/MethodLength: Method has too many lines. [16/10]", 1953725517] + ], + "lib/ast/merge/layout/gap.rb:1678106201": [ + [11, 7, 7558, "Metrics/ClassLength: Class has too many lines. [151/100]", 2254377349], + [23, 9, 655, "Metrics/MethodLength: Method has too many lines. [11/10]", 3584854768], + [23, 23, 146, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [9/5]", 361396001], + [157, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5859545], + [162, 9, 303, "Metrics/MethodLength: Method has too many lines. [12/10]", 2236444774], + [203, 9, 688, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `validate_adjacency!` is too high. [10/7]", 1112786311], + [203, 9, 688, "Metrics/MethodLength: Method has too many lines. [13/10]", 1112786311] + ], + "lib/ast/merge/line_range_support.rb:773479830": [ + [13, 7, 430, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `object_start_line` is too high. [8/7]", 2485070052], + [13, 7, 430, "Metrics/PerceivedComplexity: Perceived complexity for `object_start_line` is too high. [9/8]", 2485070052], + [25, 7, 414, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `object_end_line` is too high. [8/7]", 3545256164], + [25, 7, 414, "Metrics/PerceivedComplexity: Perceived complexity for `object_end_line` is too high. [9/8]", 3545256164] + ], + "lib/ast/merge/match_refiner_base.rb:1760054866": [ + [248, 7, 503, "Metrics/MethodLength: Method has too many lines. [11/10]", 2844230268], + [275, 7, 1056, "Metrics/AbcSize: Assignment Branch Condition size for `greedy_match` is too high. [<9, 24, 8> 26.85/17]", 2497617815], + [275, 7, 1056, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `greedy_match` is too high. [8/7]", 2497617815], + [275, 7, 1056, "Metrics/MethodLength: Method has too many lines. [24/10]", 2497617815] + ], + "lib/ast/merge/merge_result_base.rb:1342312150": [ + [17, 5, 19111, "Metrics/ClassLength: Class has too many lines. [341/100]", 1211564896], + [88, 21, 187, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [7/5]", 1067369198], + [202, 7, 843, "Metrics/AbcSize: Assignment Branch Condition size for `normalize_blank_line_runs!` is too high. [<12, 12, 10> 19.7/17]", 2347011594], + [202, 7, 843, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `normalize_blank_line_runs!` is too high. [9/7]", 2347011594], + [202, 7, 843, "Metrics/MethodLength: Method has too many lines. [22/10]", 2347011594], + [202, 7, 843, "Metrics/PerceivedComplexity: Perceived complexity for `normalize_blank_line_runs!` is too high. [10/8]", 2347011594], + [242, 7, 1004, "Metrics/MethodLength: Method has too many lines. [21/10]", 59539336], + [242, 35, 211, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [8/5]", 709487711], + [281, 7, 602, "Metrics/MethodLength: Method has too many lines. [13/10]", 320027623], + [356, 7, 927, "Metrics/AbcSize: Assignment Branch Condition size for `validate_review_state_compatibility!` is too high. [<8, 15, 4> 17.46/17]", 1596840080], + [356, 7, 927, "Metrics/MethodLength: Method has too many lines. [16/10]", 1596840080], + [418, 7, 936, "Metrics/AbcSize: Assignment Branch Condition size for `review_state_metadata` is too high. [<7, 18, 4> 19.72/17]", 4128292066], + [418, 7, 936, "Metrics/MethodLength: Method has too many lines. [14/10]", 4128292066], + [428, 121, 11, "Layout/LineLength: Line is too long. [131/120]", 20421901], + [453, 7, 1194, "Metrics/MethodLength: Method has too many lines. [21/10]", 4289697646], + [463, 121, 56, "Layout/LineLength: Line is too long. [176/120]", 3342583337] + ], + "lib/ast/merge/merger_config.rb:3582657829": [ + [46, 5, 10581, "Metrics/ClassLength: Class has too many lines. [148/100]", 1598770872], + [96, 21, 234, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [7/5]", 720509970] + ], + "lib/ast/merge/navigable/injection_point_finder.rb:4117743218": [ + [45, 9, 1707, "Metrics/AbcSize: Assignment Branch Condition size for `find` is too high. [<9, 18, 17> 26.34/17]", 1445381162], + [45, 9, 1707, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `find` is too high. [15/7]", 1445381162], + [45, 9, 1707, "Metrics/MethodLength: Method has too many lines. [28/10]", 1445381162], + [45, 9, 1707, "Metrics/PerceivedComplexity: Perceived complexity for `find` is too high. [16/8]", 1445381162], + [45, 17, 156, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [7/5]", 3876813166] + ], + "lib/ast/merge/navigable/statement.rb:3050515622": [ + [42, 7, 11078, "Metrics/ClassLength: Class has too many lines. [179/100]", 2550894515], + [96, 11, 550, "Metrics/AbcSize: Assignment Branch Condition size for `find_matching` is too high. [<7, 16, 12> 21.19/17]", 3492534565], + [96, 11, 550, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `find_matching` is too high. [12/7]", 3492534565], + [96, 11, 550, "Metrics/PerceivedComplexity: Perceived complexity for `find_matching` is too high. [12/8]", 3492534565], + [222, 13, 20, "Naming/PredicatePrefix: Rename `has_tree_navigation?` to `tree_navigation?`.", 733442156] + ], + "lib/ast/merge/node_typing.rb:4008165135": [ + [175, 9, 694, "Metrics/MethodLength: Method has too many lines. [12/10]", 777909930], + [213, 9, 891, "Metrics/AbcSize: Assignment Branch Condition size for `find_typing_callable` is too high. [<3, 23, 13> 26.59/17]", 3835052858], + [213, 9, 891, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `find_typing_callable` is too high. [14/7]", 3835052858], + [213, 9, 891, "Metrics/PerceivedComplexity: Perceived complexity for `find_typing_callable` is too high. [14/8]", 3835052858] + ], + "lib/ast/merge/node_wrapper_base.rb:3796877358": [ + [62, 5, 10228, "Metrics/ClassLength: Class has too many lines. [135/100]", 3832956007], + [92, 21, 81, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 4261369704] + ], + "lib/ast/merge/owner_selection.rb:2568070127": [ + [9, 7, 757, "Metrics/MethodLength: Method has too many lines. [13/10]", 2069564552] + ], + "lib/ast/merge/partial_template_merger_base.rb:2252899061": [ + [27, 5, 16780, "Metrics/ClassLength: Class has too many lines. [266/100]", 2205844189], + [48, 23, 81, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 2112244807], + [106, 7, 757, "Metrics/MethodLength: Method has too many lines. [11/10]", 571708764], + [106, 21, 293, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [11/5]", 871709580], + [135, 7, 788, "Metrics/AbcSize: Assignment Branch Condition size for `merge` is too high. [<4, 19, 5> 20.05/17]", 467674580], + [135, 7, 788, "Metrics/MethodLength: Method has too many lines. [13/10]", 467674580], + [213, 7, 533, "Metrics/AbcSize: Assignment Branch Condition size for `normalize_matcher` is too high. [<7, 20, 6> 22.02/17]", 1798972396], + [238, 7, 922, "Metrics/MethodLength: Method has too many lines. [25/10]", 1846154069], + [242, 25, 37, "Style/StringConcatenation: Prefer string interpolation to string concatenation.", 939456830], + [251, 25, 31, "Style/StringConcatenation: Prefer string interpolation to string concatenation.", 1024894473], + [268, 7, 1905, "Metrics/AbcSize: Assignment Branch Condition size for `perform_section_merge` is too high. [<13, 15, 2> 19.95/17]", 2711014340], + [268, 7, 1905, "Metrics/MethodLength: Method has too many lines. [34/10]", 2711014340], + [316, 50, 15, "Lint/UnusedMethodArgument: Unused method argument - `section_context`.", 2872123372], + [334, 7, 690, "Metrics/MethodLength: Method has too many lines. [14/10]", 1807124523], + [367, 7, 1122, "Metrics/AbcSize: Assignment Branch Condition size for `build_merged_content` is too high. [<1, 29, 14> 32.22/17]", 3938410418], + [367, 7, 1122, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `build_merged_content` is too high. [15/7]", 3938410418], + [367, 7, 1122, "Metrics/MethodLength: Method has too many lines. [18/10]", 3938410418], + [367, 7, 1122, "Metrics/PerceivedComplexity: Perceived complexity for `build_merged_content` is too high. [15/8]", 3938410418], + [397, 7, 596, "Metrics/MethodLength: Method has too many lines. [12/10]", 2602121883], + [397, 32, 144, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [7/5]", 1463491208], + [414, 7, 1589, "Metrics/AbcSize: Assignment Branch Condition size for `source_splice_plan_for` is too high. [<6, 18, 9> 21/17]", 2889667289], + [414, 7, 1589, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `source_splice_plan_for` is too high. [9/7]", 2889667289], + [414, 7, 1589, "Metrics/MethodLength: Method has too many lines. [30/10]", 2889667289], + [414, 7, 1589, "Metrics/PerceivedComplexity: Perceived complexity for `source_splice_plan_for` is too high. [9/8]", 2889667289] + ], + "lib/ast/merge/recipe/config.rb:3990762705": [ + [54, 7, 14970, "Metrics/ClassLength: Class has too many lines. [296/100]", 2492031021], + [142, 9, 673, "Metrics/MethodLength: Method has too many lines. [12/10]", 3011978845], + [170, 9, 484, "Metrics/MethodLength: Method has too many lines. [15/10]", 183356432], + [246, 9, 710, "Metrics/AbcSize: Assignment Branch Condition size for `parse_injection` is too high. [<8, 13, 8> 17.23/17]", 641239814], + [246, 9, 710, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `parse_injection` is too high. [9/7]", 641239814], + [246, 9, 710, "Metrics/MethodLength: Method has too many lines. [16/10]", 641239814], + [246, 9, 710, "Metrics/PerceivedComplexity: Perceived complexity for `parse_injection` is too high. [9/8]", 641239814], + [278, 9, 871, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `parse_step` is too high. [8/7]", 3989307721], + [278, 9, 871, "Metrics/MethodLength: Method has too many lines. [20/10]", 3989307721], + [338, 9, 1758, "Metrics/AbcSize: Assignment Branch Condition size for `parse_step_merge_overrides` is too high. [<11, 43, 25> 50.94/17]", 806370438], + [338, 9, 1758, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `parse_step_merge_overrides` is too high. [22/7]", 806370438], + [338, 9, 1758, "Metrics/MethodLength: Method has too many lines. [30/10]", 806370438], + [338, 9, 1758, "Metrics/PerceivedComplexity: Perceived complexity for `parse_step_merge_overrides` is too high. [22/8]", 806370438], + [373, 9, 566, "Metrics/MethodLength: Method has too many lines. [14/10]", 3671206955], + [391, 9, 547, "Metrics/MethodLength: Method has too many lines. [16/10]", 3273587697], + [459, 9, 799, "Metrics/AbcSize: Assignment Branch Condition size for `validate_injection!` is too high. [<2, 15, 12> 19.31/17]", 1665903587], + [459, 9, 799, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `validate_injection!` is too high. [13/7]", 1665903587], + [459, 9, 799, "Metrics/MethodLength: Method has too many lines. [11/10]", 1665903587], + [459, 9, 799, "Metrics/PerceivedComplexity: Perceived complexity for `validate_injection!` is too high. [13/8]", 1665903587] + ], + "lib/ast/merge/recipe/preset.rb:2311326866": [ + [195, 9, 662, "Metrics/MethodLength: Method has too many lines. [12/10]", 1640897447] + ], + "lib/ast/merge/recipe/runner.rb:2243867806": [ + [27, 7, 28612, "Metrics/ClassLength: Class has too many lines. [547/100]", 79000832], + [73, 121, 28, "Layout/LineLength: Line is too long. [148/120]", 1411864995], + [77, 23, 136, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [8/5]", 1636278032], + [92, 9, 849, "Metrics/MethodLength: Method has too many lines. [14/10]", 3083064345], + [128, 24, 129, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 2642826282], + [210, 9, 788, "Metrics/MethodLength: Method has too many lines. [23/10]", 743008161], + [241, 9, 3397, "Metrics/AbcSize: Assignment Branch Condition size for `create_partial_template_merger` is too high. [<3, 52, 16> 54.49/17]", 2086180075], + [241, 9, 3397, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `create_partial_template_merger` is too high. [14/7]", 2086180075], + [241, 9, 3397, "Metrics/MethodLength: Method has too many lines. [63/10]", 2086180075], + [241, 9, 3397, "Metrics/PerceivedComplexity: Perceived complexity for `create_partial_template_merger` is too high. [13/8]", 2086180075], + [250, 121, 11, "Layout/LineLength: Line is too long. [131/120]", 2857356312], + [274, 121, 1, "Layout/LineLength: Line is too long. [121/120]", 177538], + [312, 9, 2210, "Metrics/AbcSize: Assignment Branch Condition size for `create_smart_merger` is too high. [<1, 39, 7> 39.64/17]", 1694660188], + [312, 9, 2210, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `create_smart_merger` is too high. [8/7]", 1694660188], + [312, 9, 2210, "Metrics/MethodLength: Method has too many lines. [45/10]", 1694660188], + [357, 121, 5, "Layout/LineLength: Line is too long. [125/120]", 195423462], + [370, 9, 1087, "Metrics/MethodLength: Method has too many lines. [24/10]", 3850049530], + [370, 31, 124, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 3466458723], + [401, 9, 1008, "Metrics/MethodLength: Method has too many lines. [19/10]", 2010895303], + [401, 25, 143, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [8/5]", 2360959504], + [424, 9, 1263, "Metrics/AbcSize: Assignment Branch Condition size for `execute_partial_merge_step` is too high. [<3, 22, 1> 22.23/17]", 2850918453], + [424, 9, 1263, "Metrics/MethodLength: Method has too many lines. [25/10]", 2850918453], + [453, 9, 835, "Metrics/MethodLength: Method has too many lines. [14/10]", 1478843287], + [471, 9, 808, "Metrics/MethodLength: Method has too many lines. [15/10]", 1127254660], + [471, 37, 155, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [8/5]", 838578768], + [491, 9, 1126, "Metrics/AbcSize: Assignment Branch Condition size for `normalize_smart_merge_result` is too high. [<8, 17, 12> 22.29/17]", 1786697339], + [491, 9, 1126, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `normalize_smart_merge_result` is too high. [9/7]", 1786697339], + [491, 9, 1126, "Metrics/MethodLength: Method has too many lines. [23/10]", 1786697339], + [491, 9, 1126, "Metrics/PerceivedComplexity: Perceived complexity for `normalize_smart_merge_result` is too high. [11/8]", 1786697339], + [518, 9, 2523, "Metrics/AbcSize: Assignment Branch Condition size for `normalize_script_step_result` is too high. [<5, 40, 32> 51.47/17]", 2162420067], + [518, 9, 2523, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `normalize_script_step_result` is too high. [26/7]", 2162420067], + [518, 9, 2523, "Metrics/MethodLength: Method has too many lines. [48/10]", 2162420067], + [518, 9, 2523, "Metrics/PerceivedComplexity: Perceived complexity for `normalize_script_step_result` is too high. [29/8]", 2162420067], + [547, 121, 18, "Layout/LineLength: Line is too long. [138/120]", 93872446], + [556, 121, 56, "Layout/LineLength: Line is too long. [176/120]", 1527250939], + [586, 11, 155, "Style/HashTransformKeys: Prefer `transform_keys` over `each_with_object`.", 837503672], + [591, 9, 698, "Metrics/MethodLength: Method has too many lines. [11/10]", 1116310304], + [635, 9, 2582, "Metrics/AbcSize: Assignment Branch Condition size for `create_result_from_steps` is too high. [<8, 30, 31> 43.87/17]", 2040042265], + [635, 9, 2582, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `create_result_from_steps` is too high. [23/7]", 2040042265], + [635, 9, 2582, "Metrics/MethodLength: Method has too many lines. [60/10]", 2040042265], + [635, 9, 2582, "Metrics/PerceivedComplexity: Perceived complexity for `create_result_from_steps` is too high. [27/8]", 2040042265], + [635, 37, 133, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 789257106], + [649, 42, 40, "Style/SymbolProc: Pass `&:has_anchor` as an argument to `any?` instead of a block.", 4233626321] + ], + "lib/ast/merge/recipe/script_loader.rb:1397873218": [ + [145, 9, 1126, "Metrics/AbcSize: Assignment Branch Condition size for `load_script_file` is too high. [<6, 19, 4> 20.32/17]", 3417625171], + [145, 9, 1126, "Metrics/MethodLength: Method has too many lines. [17/10]", 3417625171] + ], + "lib/ast/merge/rspec/comment_behavior_matrix_adapters.rb:3429217018": [ + [9, 46, 341, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [9/5]", 532439002], + [31, 9, 901, "Metrics/MethodLength: Method has too many lines. [11/10]", 584608092], + [31, 59, 308, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [8/5]", 883491898], + [54, 9, 1269, "Metrics/MethodLength: Method has too many lines. [20/10]", 1021031182], + [65, 51, 6, "Lint/UnusedBlockArgument: Unused block argument - `inline`. If it's necessary, use `_` or `_inline` as an argument name to indicate that it won't be used.", 1605470060], + [69, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 4226982364], + [70, 121, 11, "Layout/LineLength: Line is too long. [131/120]", 1440420861] + ], + "lib/ast/merge/rspec/conformance_fixtures.rb:1295759615": [ + [6, 7, 26, "Style/Documentation: Missing top-level documentation comment for `module Ast::Merge::RSpec::ConformanceFixtures`.", 90066768], + [9, 9, 1432, "Metrics/AbcSize: Assignment Branch Condition size for `normalize_conformance_fixture_support` is too high. [<10, 30, 33> 45.71/17]", 518714108], + [9, 9, 1432, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `normalize_conformance_fixture_support` is too high. [33/7]", 518714108], + [9, 9, 1432, "Metrics/MethodLength: Method has too many lines. [25/10]", 518714108], + [9, 9, 1432, "Metrics/PerceivedComplexity: Perceived complexity for `normalize_conformance_fixture_support` is too high. [31/8]", 518714108] + ], + "lib/ast/merge/rspec/dependency_tags_config.rb:3604516304": [ + [30, 1, 2102, "Metrics/BlockLength: Block has too many lines. [26/25]", 113766065] + ], + "lib/ast/merge/rspec/merge_gem_registry.rb:3009576030": [ + [58, 7, 12129, "Metrics/ModuleLength: Module has too many lines. [158/100]", 335549747], + [90, 9, 780, "Metrics/MethodLength: Method has too many lines. [14/10]", 978965737], + [90, 21, 99, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 3580433546], + [118, 9, 650, "Metrics/MethodLength: Method has too many lines. [12/10]", 3143160805], + [118, 31, 130, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 2575863904], + [143, 9, 823, "Metrics/MethodLength: Method has too many lines. [17/10]", 4033116153], + [200, 9, 765, "Metrics/AbcSize: Assignment Branch Condition size for `register_known_gems` is too high. [<3, 17, 3> 17.52/17]", 1367620151], + [200, 9, 765, "Metrics/MethodLength: Method has too many lines. [17/10]", 1367620151] + ], + "lib/ast/merge/rspec/shared_examples.rb:151517887": [ + [27, 121, 3, "Layout/LineLength: Line is too long. [123/120]", 193426019], + [31, 121, 7, "Layout/LineLength: Line is too long. [127/120]", 330577472] + ], + "lib/ast/merge/rspec/shared_examples/comment_behavior_matrix.rb:3695671858": [ + [36, 1, 27847, "Metrics/BlockLength: Block has too many lines. [540/25]", 3796645407], + [38, 55, 15, "Style/SymbolProc: Pass `&:value` as an argument to `lambda` instead of a block.", 1808354951], + [42, 64, 23, "Style/SymbolProc: Pass `&:statements` as an argument to `lambda` instead of a block.", 277221641], + [69, 3, 4455, "Metrics/BlockLength: Block has too many lines. [82/25]", 3672334777], + [72, 5, 1763, "Metrics/BlockLength: Block has too many lines. [34/25]", 164750821], + [165, 3, 22093, "Metrics/BlockLength: Block has too many lines. [429/25]", 229312375], + [292, 5, 1918, "Metrics/BlockLength: Block has too many lines. [29/25]", 1312741055], + [323, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1902517440], + [325, 121, 5, "Layout/LineLength: Line is too long. [125/120]", 173482512], + [328, 121, 5, "Layout/LineLength: Line is too long. [125/120]", 167607404], + [476, 5, 1605, "Metrics/BlockLength: Block has too many lines. [35/25]", 1943633697], + [677, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1902517440] + ], + "lib/ast/merge/rspec/shared_examples/conflict_resolver_base.rb:624045197": [ + [30, 1, 7893, "Metrics/BlockLength: Block has too many lines. [197/25]", 3450672926], + [37, 3, 1372, "Metrics/BlockLength: Block has too many lines. [33/25]", 3389152504], + [83, 3, 1206, "Metrics/BlockLength: Block has too many lines. [35/25]", 1580202348], + [128, 3, 1177, "Metrics/BlockLength: Block has too many lines. [33/25]", 2178974049], + [215, 3, 2443, "Metrics/BlockLength: Block has too many lines. [51/25]", 2538475273], + [219, 5, 1909, "Metrics/BlockLength: Block has too many lines. [35/25]", 880175101], + [279, 1, 2518, "Metrics/BlockLength: Block has too many lines. [74/25]", 958151448], + [286, 3, 2235, "Metrics/BlockLength: Block has too many lines. [70/25]", 2123260684], + [391, 1, 1317, "Metrics/BlockLength: Block has too many lines. [37/25]", 2321517041], + [439, 1, 1639, "Metrics/BlockLength: Block has too many lines. [37/25]", 276150366] + ], + "lib/ast/merge/rspec/shared_examples/debug_logger.rb:2747003588": [ + [23, 1, 4741, "Metrics/BlockLength: Block has too many lines. [121/25]", 3341338388], + [47, 3, 976, "Metrics/BlockLength: Block has too many lines. [27/25]", 2640321404], + [85, 3, 1452, "Metrics/BlockLength: Block has too many lines. [34/25]", 554663062] + ], + "lib/ast/merge/rspec/shared_examples/feature_profile.rb:4172143324": [ + [30, 1, 4249, "Metrics/BlockLength: Block has too many lines. [53/25]", 3787230403] + ], + "lib/ast/merge/rspec/shared_examples/file_analyzable.rb:2391547213": [ + [44, 1, 6468, "Metrics/BlockLength: Block has too many lines. [145/25]", 3744642916] + ], + "lib/ast/merge/rspec/shared_examples/freeze_node_base.rb:1711126715": [ + [23, 1, 5952, "Metrics/BlockLength: Block has too many lines. [157/25]", 3152271039], + [29, 3, 2836, "Metrics/BlockLength: Block has too many lines. [69/25]", 2082270913], + [115, 3, 1552, "Metrics/BlockLength: Block has too many lines. [46/25]", 4180117745] + ], + "lib/ast/merge/rspec/shared_examples/layout_attachment.rb:4130619694": [ + [30, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 1263574869], + [31, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 4282300883] + ], + "lib/ast/merge/rspec/shared_examples/layout_augmenter.rb:1928277603": [ + [18, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1311107624], + [19, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1311107624] + ], + "lib/ast/merge/rspec/shared_examples/merge_result_base.rb:2962043558": [ + [18, 1, 2330, "Metrics/BlockLength: Block has too many lines. [67/25]", 3496673178], + [53, 3, 1271, "Metrics/BlockLength: Block has too many lines. [42/25]", 2278976858] + ], + "lib/ast/merge/rspec/shared_examples/merger_config.rb:2413785902": [ + [18, 1, 8240, "Metrics/BlockLength: Block has too many lines. [193/25]", 3665443345], + [57, 3, 1628, "Metrics/BlockLength: Block has too many lines. [32/25]", 7828299], + [98, 3, 1266, "Metrics/BlockLength: Block has too many lines. [28/25]", 317929439], + [159, 3, 1740, "Metrics/BlockLength: Block has too many lines. [42/25]", 1736487820], + [217, 3, 1373, "Metrics/BlockLength: Block has too many lines. [30/25]", 442933563] + ], + "lib/ast/merge/rspec/shared_examples/recipe_preset_contract.rb:1495545061": [ + [7, 1, 2558, "Metrics/BlockLength: Block has too many lines. [51/25]", 4091815632] + ], + "lib/ast/merge/rspec/shared_examples/removal_mode_compliance.rb:3645548199": [ + [24, 1, 1860, "Metrics/BlockLength: Block has too many lines. [33/25]", 1115825136] + ], + "lib/ast/merge/rspec/shared_examples/reproducible_merge.rb:2276592459": [ + [51, 1, 2030, "Metrics/BlockLength: Block has too many lines. [52/25]", 563553381] + ], + "lib/ast/merge/rspec/shared_examples/reproducible_partial_merge.rb:524436129": [ + [3, 1, 2321, "Metrics/BlockLength: Block has too many lines. [44/25]", 3206099540] + ], + "lib/ast/merge/rspec/shared_examples/retained_blank_gap_compliance.rb:2798862618": [ + [3, 1, 1409, "Metrics/BlockLength: Block has too many lines. [34/25]", 3708955218] + ], + "lib/ast/merge/rspec/shared_examples/runtime_debug_contract.rb:4244040583": [ + [8, 1, 2808, "Metrics/BlockLength: Block has too many lines. [48/25]", 3274492878] + ], + "lib/ast/merge/rspec/shared_examples/unresolved_helper_contract.rb:2916431464": [ + [9, 1, 5998, "Metrics/BlockLength: Block has too many lines. [126/25]", 4174562424], + [94, 3, 1515, "Metrics/BlockLength: Block has too many lines. [32/25]", 1928238376] + ], + "lib/ast/merge/rspec/shared_examples/unresolved_review_state_transport_contract.rb:3368966854": [ + [14, 1, 3386, "Metrics/BlockLength: Block has too many lines. [68/25]", 2910343214], + [65, 3, 317, "Metrics/MethodLength: Method has too many lines. [12/10]", 2653897690] + ], + "lib/ast/merge/rspec/shared_examples/unresolved_runtime_contract.rb:1424234700": [ + [10, 1, 2652, "Metrics/BlockLength: Block has too many lines. [42/25]", 960283638], + [31, 121, 10, "Layout/LineLength: Line is too long. [130/120]", 2892620242], + [46, 121, 3, "Layout/LineLength: Line is too long. [123/120]", 193437756] + ], + "lib/ast/merge/rspec/shared_examples/unresolved_runtime_debug_contract.rb:2897026147": [ + [25, 121, 18, "Layout/LineLength: Line is too long. [138/120]", 2418171787], + [26, 121, 5, "Layout/LineLength: Line is too long. [125/120]", 235635831] + ], + "lib/ast/merge/ruleset/config.rb:4242726919": [ + [7, 7, 3664, "Metrics/ClassLength: Class has too many lines. [101/100]", 1968929597], + [36, 9, 933, "Metrics/MethodLength: Method has too many lines. [15/10]", 3334511209], + [36, 23, 319, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [15/5]", 1652945408], + [65, 9, 515, "Metrics/AbcSize: Assignment Branch Condition size for `to_h` is too high. [<0, 18, 3> 18.25/17]", 2614325513], + [65, 9, 515, "Metrics/MethodLength: Method has too many lines. [14/10]", 2614325513] + ], + "lib/ast/merge/ruleset/feature_profile.rb:3980745364": [ + [12, 7, 6054, "Metrics/ClassLength: Class has too many lines. [155/100]", 2818730231], + [29, 9, 1351, "Metrics/AbcSize: Assignment Branch Condition size for `initialize` is too high. [<17, 18, 7> 25.73/17]", 2248702332], + [29, 9, 1351, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `initialize` is too high. [8/7]", 2248702332], + [29, 9, 1351, "Metrics/MethodLength: Method has too many lines. [17/10]", 2248702332], + [29, 23, 422, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [14/5]", 1415781648], + [138, 9, 1509, "Metrics/AbcSize: Assignment Branch Condition size for `to_h` is too high. [<0, 36, 6> 36.5/17]", 3793816437], + [138, 9, 1509, "Metrics/MethodLength: Method has too many lines. [31/10]", 3793816437] + ], + "lib/ast/merge/ruleset/parser.rb:698282871": [ + [7, 7, 9396, "Metrics/ClassLength: Class has too many lines. [199/100]", 1305123525], + [43, 9, 473, "Metrics/AbcSize: Assignment Branch Condition size for `parse` is too high. [<0, 17, 2> 17.12/17]", 1400394586], + [43, 9, 473, "Metrics/MethodLength: Method has too many lines. [12/10]", 1400394586], + [71, 9, 1053, "Metrics/MethodLength: Method has too many lines. [24/10]", 1569959910], + [101, 9, 1123, "Metrics/AbcSize: Assignment Branch Condition size for `parse_single_value_directive!` is too high. [<7, 13, 10> 17.83/17]", 706129883], + [101, 9, 1123, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `parse_single_value_directive!` is too high. [8/7]", 706129883], + [101, 9, 1123, "Metrics/MethodLength: Method has too many lines. [24/10]", 706129883], + [170, 9, 605, "Metrics/MethodLength: Method has too many lines. [11/10]", 336127382], + [186, 9, 687, "Metrics/MethodLength: Method has too many lines. [11/10]", 2962844982] + ], + "lib/ast/merge/ruleset/profile_vocabulary.rb:2359837647": [ + [7, 7, 3956, "Metrics/ModuleLength: Module has too many lines. [107/100]", 1680256705] + ], + "lib/ast/merge/ruleset/runtime_declaration.rb:1016848190": [ + [18, 9, 819, "Metrics/AbcSize: Assignment Branch Condition size for `initialize` is too high. [<11, 13, 5> 17.75/17]", 4043304883], + [18, 9, 819, "Metrics/MethodLength: Method has too many lines. [11/10]", 4043304883], + [18, 23, 240, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [8/5]", 3868000276], + [49, 9, 551, "Metrics/MethodLength: Method has too many lines. [13/10]", 448215861] + ], + "lib/ast/merge/ruleset/runtime_translator.rb:3255492631": [ + [9, 11, 816, "Metrics/MethodLength: Method has too many lines. [19/10]", 225301385], + [31, 11, 986, "Metrics/AbcSize: Assignment Branch Condition size for `feature_profile` is too high. [<1, 17, 0> 17.03/17]", 1395467476], + [31, 11, 986, "Metrics/MethodLength: Method has too many lines. [19/10]", 1395467476] + ], + "lib/ast/merge/ruleset/support_style_resolver.rb:508975884": [ + [9, 11, 864, "Metrics/MethodLength: Method has too many lines. [22/10]", 3902551296] + ], + "lib/ast/merge/runtime/child_result.rb:4083710804": [ + [16, 9, 698, "Metrics/AbcSize: Assignment Branch Condition size for `initialize` is too high. [<7, 16, 2> 17.58/17]", 2208366179], + [16, 23, 227, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [7/5]", 3688358290], + [38, 9, 584, "Metrics/MethodLength: Method has too many lines. [11/10]", 3113479157], + [55, 11, 106, "Style/HashTransformKeys: Prefer `transform_keys` over `each_with_object`.", 4262612225] + ], + "lib/ast/merge/runtime/delegate.rb:3607371286": [ + [17, 23, 285, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [10/5]", 2793452069] + ], + "lib/ast/merge/runtime/diagnostic.rb:805162185": [ + [10, 23, 72, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 1875462867] + ], + "lib/ast/merge/runtime/operation.rb:1030261783": [ + [20, 9, 767, "Metrics/MethodLength: Method has too many lines. [11/10]", 2728174753], + [20, 23, 278, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [10/5]", 694444911], + [100, 9, 617, "Metrics/AbcSize: Assignment Branch Condition size for `to_h` is too high. [<2, 24, 6> 24.82/17]", 1175382849], + [100, 9, 617, "Metrics/MethodLength: Method has too many lines. [11/10]", 1175382849] + ], + "lib/ast/merge/runtime/resolution_case.rb:250040454": [ + [8, 9, 707, "Metrics/AbcSize: Assignment Branch Condition size for `from_h` is too high. [<1, 19, 6> 19.95/17]", 2592154170], + [29, 23, 189, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [7/5]", 818714714], + [81, 11, 111, "Style/HashTransformKeys: Prefer `transform_keys` over `each_with_object`.", 2712537644] + ], + "lib/ast/merge/runtime/root_session_support.rb:1917388966": [ + [10, 9, 2153, "Metrics/AbcSize: Assignment Branch Condition size for `start_runtime_root_session!` is too high. [<5, 20, 3> 20.83/17]", 1888056651], + [10, 9, 2153, "Metrics/MethodLength: Method has too many lines. [41/10]", 1888056651], + [10, 40, 421, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [14/5]", 2297301282], + [60, 121, 10, "Layout/LineLength: Line is too long. [130/120]", 2312419928], + [68, 9, 771, "Metrics/MethodLength: Method has too many lines. [13/10]", 1787620786], + [68, 43, 191, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 3635875424] + ], + "lib/ast/merge/runtime/session.rb:628419040": [ + [66, 9, 1203, "Metrics/AbcSize: Assignment Branch Condition size for `summary` is too high. [<5, 43, 13> 45.2/17]", 550888870], + [66, 9, 1203, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `summary` is too high. [14/7]", 550888870], + [66, 9, 1203, "Metrics/MethodLength: Method has too many lines. [20/10]", 550888870], + [66, 9, 1203, "Metrics/PerceivedComplexity: Perceived complexity for `summary` is too high. [14/8]", 550888870] + ], + "lib/ast/merge/runtime/surface.rb:3684795905": [ + [17, 23, 230, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [8/5]", 469229117], + [44, 9, 418, "Metrics/MethodLength: Method has too many lines. [11/10]", 998969973] + ], + "lib/ast/merge/section_typing.rb:4261989256": [ + [112, 9, 710, "Metrics/MethodLength: Method has too many lines. [15/10]", 3600335459], + [176, 9, 67, "Lint/MissingSuper: Call `super` to initialize state of the parent class.", 4077537758], + [216, 9, 85, "Lint/MissingSuper: Call `super` to initialize state of the parent class.", 3648782014], + [245, 9, 1446, "Metrics/AbcSize: Assignment Branch Condition size for `merge_sections` is too high. [<13, 20, 12> 26.7/17]", 525095633], + [245, 9, 1446, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `merge_sections` is too high. [12/7]", 525095633], + [245, 9, 1446, "Metrics/MethodLength: Method has too many lines. [28/10]", 525095633], + [245, 9, 1446, "Metrics/PerceivedComplexity: Perceived complexity for `merge_sections` is too high. [13/8]", 525095633] + ], + "lib/ast/merge/smart_merger_base.rb:1823596106": [ + [109, 5, 15324, "Metrics/ClassLength: Class has too many lines. [172/100]", 3547407870], + [214, 7, 1974, "Metrics/AbcSize: Assignment Branch Condition size for `initialize` is too high. [<20, 14, 5> 24.92/17]", 2211610736], + [214, 7, 1974, "Metrics/MethodLength: Method has too many lines. [23/10]", 2211610736], + [214, 21, 443, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [15/5]", 1530523783], + [424, 7, 1312, "Metrics/AbcSize: Assignment Branch Condition size for `parse_and_analyze` is too high. [<7, 25, 11> 28.2/17]", 1640248187], + [424, 7, 1312, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `parse_and_analyze` is too high. [10/7]", 1640248187], + [424, 7, 1312, "Metrics/MethodLength: Method has too many lines. [15/10]", 1640248187], + [424, 7, 1312, "Metrics/PerceivedComplexity: Perceived complexity for `parse_and_analyze` is too high. [10/8]", 1640248187], + [517, 12, 52, "Style/NumericPredicate: Use `result_class.instance_method(:initialize).arity.zero?` instead of `result_class.instance_method(:initialize).arity == 0`.", 1312375552] + ], + "lib/ast/merge/source_region_report_support.rb:31261288": [ + [10, 5, 9026, "Metrics/ModuleLength: Module has too many lines. [204/100]", 3211817308], + [13, 7, 1175, "Metrics/MethodLength: Method has too many lines. [19/10]", 351011969], + [13, 49, 232, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [7/5]", 1034046028], + [38, 7, 1409, "Metrics/AbcSize: Assignment Branch Condition size for `source_blank_line_ownership_regions` is too high. [<9, 23, 11> 27.04/17]", 280304508], + [38, 7, 1409, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `source_blank_line_ownership_regions` is too high. [9/7]", 280304508], + [38, 7, 1409, "Metrics/MethodLength: Method has too many lines. [26/10]", 280304508], + [38, 7, 1409, "Metrics/PerceivedComplexity: Perceived complexity for `source_blank_line_ownership_regions` is too high. [11/8]", 280304508], + [69, 7, 1345, "Metrics/AbcSize: Assignment Branch Condition size for `source_interleaved_regions_for_report` is too high. [<10, 13, 6> 17.46/17]", 253205841], + [69, 7, 1345, "Metrics/MethodLength: Method has too many lines. [32/10]", 253205841], + [109, 7, 1638, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `source_interstitial_region_for_report` is too high. [11/7]", 2543419072], + [109, 7, 1638, "Metrics/MethodLength: Method has too many lines. [32/10]", 2543419072], + [109, 7, 1638, "Metrics/PerceivedComplexity: Perceived complexity for `source_interstitial_region_for_report` is too high. [10/8]", 2543419072], + [109, 48, 133, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 2244283058], + [168, 7, 455, "Metrics/MethodLength: Method has too many lines. [12/10]", 1734550115], + [184, 7, 1444, "Metrics/AbcSize: Assignment Branch Condition size for `source_comment_block_attachment` is too high. [<7, 27, 17> 32.66/17]", 2744031837], + [184, 7, 1444, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `source_comment_block_attachment` is too high. [14/7]", 2744031837], + [184, 7, 1444, "Metrics/MethodLength: Method has too many lines. [21/10]", 2744031837], + [184, 7, 1444, "Metrics/PerceivedComplexity: Perceived complexity for `source_comment_block_attachment` is too high. [15/8]", 2744031837], + [184, 42, 133, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 2758724348], + [192, 121, 1, "Layout/LineLength: Line is too long. [121/120]", 177625] + ], + "lib/ast/merge/structural_edit/boundary.rb:2838060197": [ + [20, 23, 93, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 3901214537], + [41, 38, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], + [51, 38, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], + [60, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2087440865] + ], + "lib/ast/merge/structural_edit/boundary_support.rb:3537000977": [ + [32, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5861061], + [33, 121, 5, "Layout/LineLength: Line is too long. [125/120]", 97596930] + ], + "lib/ast/merge/structural_edit/plan_set.rb:538463647": [ + [116, 121, 42, "Layout/LineLength: Line is too long. [162/120]", 2855200692] + ], + "lib/ast/merge/structural_edit/rehome_plan.rb:2152178780": [ + [23, 23, 123, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 3433617242], + [100, 9, 519, "Metrics/MethodLength: Method has too many lines. [11/10]", 318006380], + [136, 121, 48, "Layout/LineLength: Line is too long. [168/120]", 2367140872] + ], + "lib/ast/merge/structural_edit/remove_plan.rb:1189569486": [ + [11, 7, 9717, "Metrics/ClassLength: Class has too many lines. [160/100]", 3652701475], + [25, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5861091], + [27, 9, 1409, "Metrics/MethodLength: Method has too many lines. [22/10]", 3344870777], + [27, 23, 255, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [11/5]", 3970946607], + [28, 121, 40, "Layout/LineLength: Line is too long. [160/120]", 1637059282], + [36, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5859104], + [196, 121, 32, "Layout/LineLength: Line is too long. [152/120]", 1617827253], + [224, 9, 1032, "Metrics/MethodLength: Method has too many lines. [20/10]", 968444047] + ], + "lib/ast/merge/structural_edit/remove_plan_support.rb:877461974": [ + [9, 9, 11, "Style/ModuleFunction: Use `module_function` instead of `extend self`.", 1210897631], + [19, 9, 1429, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `build_remove_plan` is too high. [8/7]", 4091314919], + [19, 9, 1429, "Metrics/MethodLength: Method has too many lines. [32/10]", 4091314919] + ], + "lib/ast/merge/structural_edit/splice_plan.rb:2675806114": [ + [39, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1683893295], + [42, 23, 203, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [9/5]", 3653221702], + [113, 9, 517, "Metrics/MethodLength: Method has too many lines. [11/10]", 634912361] + ], + "lib/ast/merge/structured_emitter_provenance_support.rb:445323365": [ + [5, 5, 41, "Style/Documentation: Missing top-level documentation comment for `module Ast::Merge::StructuredEmitterProvenanceSupport`.", 3548518830] + ], + "lib/ast/merge/structured_review_apply_support.rb:3649736380": [ + [5, 5, 35, "Style/Documentation: Missing top-level documentation comment for `module Ast::Merge::StructuredReviewApplySupport`.", 1282380463], + [22, 7, 782, "Metrics/AbcSize: Assignment Branch Condition size for `current_output_span_for` is too high. [<6, 19, 11> 22.76/17]", 4137750179], + [22, 7, 782, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `current_output_span_for` is too high. [8/7]", 4137750179], + [22, 7, 782, "Metrics/MethodLength: Method has too many lines. [14/10]", 4137750179], + [42, 7, 595, "Metrics/MethodLength: Method has too many lines. [12/10]", 2080934521], + [60, 121, 10, "Layout/LineLength: Line is too long. [130/120]", 3151172498] + ], + "lib/ast/merge/text/conflict_resolver.rb:989169286": [ + [19, 7, 9182, "Metrics/ClassLength: Class has too many lines. [159/100]", 1070563745], + [28, 23, 211, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 2639535499], + [53, 9, 2507, "Metrics/AbcSize: Assignment Branch Condition size for `resolve_batch` is too high. [<15, 34, 5> 37.5/17]", 825130797], + [53, 9, 2507, "Metrics/MethodLength: Method has too many lines. [44/10]", 825130797], + [196, 9, 2458, "Metrics/AbcSize: Assignment Branch Condition size for `resolve_matched_pair` is too high. [<2, 30, 11> 32.02/17]", 4037214978], + [196, 9, 2458, "Metrics/MethodLength: Method has too many lines. [46/10]", 4037214978] + ], + "lib/ast/merge/text/file_analysis.rb:1530312707": [ + [106, 9, 1484, "Metrics/AbcSize: Assignment Branch Condition size for `parse_statements` is too high. [<11, 15, 6> 19.54/17]", 1858083071], + [106, 9, 1484, "Metrics/MethodLength: Method has too many lines. [34/10]", 1858083071], + [160, 9, 449, "Metrics/MethodLength: Method has too many lines. [11/10]", 1902035813] + ], + "lib/ast/merge/text/line_node.rb:3385927013": [ + [145, 9, 699, "Metrics/MethodLength: Method has too many lines. [17/10]", 2201872249] + ], + "lib/ast/merge/text/section_splitter.rb:129704488": [ + [141, 9, 1442, "Metrics/AbcSize: Assignment Branch Condition size for `merge_section_lists` is too high. [<13, 20, 6> 24.6/17]", 3551729170], + [141, 9, 1442, "Metrics/MethodLength: Method has too many lines. [23/10]", 3551729170], + [322, 9, 1767, "Metrics/AbcSize: Assignment Branch Condition size for `split` is too high. [<11, 29, 10> 32.59/17]", 2207922758], + [322, 9, 1767, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `split` is too high. [10/7]", 2207922758], + [322, 9, 1767, "Metrics/MethodLength: Method has too many lines. [46/10]", 2207922758], + [322, 9, 1767, "Metrics/PerceivedComplexity: Perceived complexity for `split` is too high. [13/8]", 2207922758], + [328, 11, 1019, "Metrics/BlockLength: Block has too many lines. [26/25]", 1561634792] + ], + "lib/ast/merge/text/smart_merger.rb:2405807903": [ + [67, 9, 831, "Metrics/MethodLength: Method has too many lines. [12/10]", 584426022], + [67, 23, 350, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [10/5]", 3074172637] + ], + "lib/ast/merge/trailing_groups/alignment_sort.rb:2593404330": [ + [40, 9, 513, "Metrics/MethodLength: Method has too many lines. [12/10]", 89360683] + ], + "lib/ast/merge/trailing_groups/core.rb:4231959665": [ + [61, 9, 812, "Metrics/MethodLength: Method has too many lines. [17/10]", 1777526069], + [101, 9, 998, "Metrics/AbcSize: Assignment Branch Condition size for `flush_ready_trailing_groups` is too high. [<8, 18, 15> 24.76/17]", 2397698441], + [101, 9, 998, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `flush_ready_trailing_groups` is too high. [13/7]", 2397698441], + [101, 9, 998, "Metrics/MethodLength: Method has too many lines. [17/10]", 2397698441], + [101, 9, 998, "Metrics/PerceivedComplexity: Perceived complexity for `flush_ready_trailing_groups` is too high. [13/8]", 2397698441] + ], + "lib/ast/merge/trailing_groups/dest_iterate.rb:3897205087": [ + [69, 9, 751, "Metrics/MethodLength: Method has too many lines. [12/10]", 3915657972], + [69, 47, 199, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 2545849044] + ], + "lib/ast/merge/unresolved_support.rb:2881272494": [ + [7, 5, 24, "Style/Documentation: Missing top-level documentation comment for `module Ast::Merge::UnresolvedSupport`.", 990281691], + [7, 5, 4392, "Metrics/ModuleLength: Module has too many lines. [116/100]", 3475162940], + [32, 20, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], + [67, 20, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], + [85, 7, 1038, "Metrics/MethodLength: Method has too many lines. [14/10]", 3139619197], + [85, 40, 338, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [14/5]", 71164914] + ], + "spec/ast/merge/ast_node_spec.rb:1362065144": [ + [3, 1, 8199, "Metrics/BlockLength: Block has too many lines. [254/25]", 1649868231], + [18, 3, 1030, "Metrics/BlockLength: Block has too many lines. [33/25]", 1409835577] + ], + "spec/ast/merge/block_directive_spec.rb:2305756581": [ + [3, 1, 5181, "Metrics/BlockLength: Block has too many lines. [138/25]", 1887900896], + [128, 3, 1391, "Metrics/BlockLength: Block has too many lines. [39/25]", 3626371694] + ], + "spec/ast/merge/comment/attachment_spec.rb:2571833836": [ + [3, 1, 5536, "Metrics/BlockLength: Block has too many lines. [150/25]", 1841571757], + [93, 3, 1639, "Metrics/BlockLength: Block has too many lines. [37/25]", 212730671] + ], + "spec/ast/merge/comment/augmenter_spec.rb:4266625483": [ + [3, 1, 9141, "Metrics/BlockLength: Block has too many lines. [212/25]", 530365996], + [16, 3, 6849, "Metrics/BlockLength: Block has too many lines. [154/25]", 503152628], + [200, 3, 1244, "Metrics/BlockLength: Block has too many lines. [33/25]", 3565041107] + ], + "spec/ast/merge/comment/block_spec.rb:4138473890": [ + [3, 1, 9021, "Metrics/BlockLength: Block has too many lines. [250/25]", 1617505173], + [8, 3, 1115, "Metrics/BlockLength: Block has too many lines. [27/25]", 2958989619], + [93, 3, 1127, "Metrics/BlockLength: Block has too many lines. [33/25]", 196340527], + [123, 45, 16, "Style/StringConcatenation: Prefer string interpolation to string concatenation.", 155572628], + [159, 3, 1432, "Metrics/BlockLength: Block has too many lines. [35/25]", 281400319] + ], + "spec/ast/merge/comment/c_style_tracker_base_spec.rb:3154319400": [ + [3, 1, 5816, "Metrics/BlockLength: Block has too many lines. [133/25]", 680831933], + [100, 3, 1450, "Metrics/BlockLength: Block has too many lines. [35/25]", 4153882185] + ], + "spec/ast/merge/comment/capability_spec.rb:2763521225": [ + [3, 1, 3522, "Metrics/BlockLength: Block has too many lines. [89/25]", 1487980773], + [4, 3, 1954, "Metrics/BlockLength: Block has too many lines. [41/25]", 160187362] + ], + "spec/ast/merge/comment/empty_spec.rb:1801324640": [ + [3, 1, 2584, "Metrics/BlockLength: Block has too many lines. [70/25]", 270179899], + [4, 3, 1047, "Metrics/BlockLength: Block has too many lines. [27/25]", 3056449816] + ], + "spec/ast/merge/comment/hash_tracker_base_spec.rb:3624528747": [ + [3, 1, 9653, "Metrics/BlockLength: Block has too many lines. [271/25]", 3748659406], + [8, 3, 1210, "Metrics/BlockLength: Block has too many lines. [37/25]", 2566766302], + [21, 7, 872, "Metrics/AbcSize: Assignment Branch Condition size for `extract_comments` is too high. [<7, 24, 5> 25.5/17]", 1213080161], + [21, 7, 872, "Metrics/MethodLength: Method has too many lines. [25/10]", 1213080161], + [275, 3, 1171, "Metrics/BlockLength: Block has too many lines. [29/25]", 1425466742] + ], + "spec/ast/merge/comment/line_spec.rb:1487829548": [ + [3, 1, 5291, "Metrics/BlockLength: Block has too many lines. [128/25]", 587604747], + [6, 3, 1573, "Metrics/BlockLength: Block has too many lines. [37/25]", 4105920006] + ], + "spec/ast/merge/comment/parser_spec.rb:2443973508": [ + [3, 1, 9855, "Metrics/BlockLength: Block has too many lines. [237/25]", 404174977], + [4, 3, 1013, "Metrics/BlockLength: Block has too many lines. [26/25]", 182655397], + [38, 3, 1282, "Metrics/BlockLength: Block has too many lines. [28/25]", 2303702609] + ], + "spec/ast/merge/comment/quoted_hash_line_parser_spec.rb:3795390831": [ + [3, 1, 1810, "Metrics/BlockLength: Block has too many lines. [44/25]", 2575838586], + [6, 3, 1700, "Metrics/BlockLength: Block has too many lines. [41/25]", 1553834548] + ], + "spec/ast/merge/comment/region_merge_policy_spec.rb:4175996936": [ + [3, 1, 3618, "Metrics/BlockLength: Block has too many lines. [75/25]", 4006378358], + [11, 3, 2752, "Metrics/BlockLength: Block has too many lines. [52/25]", 494211987] + ], + "spec/ast/merge/comment/region_spec.rb:2674736508": [ + [3, 1, 4033, "Metrics/BlockLength: Block has too many lines. [91/25]", 1828104331] + ], + "spec/ast/merge/comment/style_spec.rb:1875195890": [ + [3, 1, 4040, "Metrics/BlockLength: Block has too many lines. [101/25]", 2759361650] + ], + "spec/ast/merge/comment/support_style_spec.rb:1350169032": [ + [3, 1, 1577, "Metrics/BlockLength: Block has too many lines. [39/25]", 3414039011] + ], + "spec/ast/merge/comment/tracked_hash_adapter_spec.rb:1256807736": [ + [3, 1, 4482, "Metrics/BlockLength: Block has too many lines. [97/25]", 264417763], + [4, 3, 3101, "Metrics/BlockLength: Block has too many lines. [63/25]", 1050939978], + [81, 3, 1313, "Metrics/BlockLength: Block has too many lines. [30/25]", 515655104] + ], + "spec/ast/merge/comment_layout_emission_support_spec.rb:19704158": [ + [3, 1, 7555, "Metrics/BlockLength: Block has too many lines. [186/25]", 980479163], + [4, 3, 73, "Lint/ConstantDefinitionInBlock: Do not define constants this way within a block.", 3470206647], + [6, 3, 175, "Lint/ConstantDefinitionInBlock: Do not define constants this way within a block.", 622428252], + [16, 3, 93, "Lint/ConstantDefinitionInBlock: Do not define constants this way within a block.", 546547334], + [18, 3, 734, "Lint/ConstantDefinitionInBlock: Do not define constants this way within a block.", 3226190975], + [21, 19, 120, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 3763716348], + [39, 27, 6, "Lint/UnusedMethodArgument: Unused method argument - `owners`. You can also write as `comment_augmenter(*)` if you want the method to accept any arguments but don't care about them.", 1719502071], + [44, 3, 574, "Lint/ConstantDefinitionInBlock: Do not define constants this way within a block.", 1736750341], + [61, 3, 152, "Lint/ConstantDefinitionInBlock: Do not define constants this way within a block.", 1212551629], + [101, 3, 1173, "Metrics/BlockLength: Block has too many lines. [27/25]", 2346194513], + [132, 3, 1624, "Metrics/BlockLength: Block has too many lines. [36/25]", 2359972174] + ], + "spec/ast/merge/comment_spec.rb:81945459": [ + [3, 1, 15888, "Metrics/BlockLength: Block has too many lines. [384/25]", 2229554982], + [4, 3, 3957, "Metrics/BlockLength: Block has too many lines. [84/25]", 660667217], + [5, 5, 1187, "Metrics/BlockLength: Block has too many lines. [26/25]", 241562105], + [105, 3, 1371, "Metrics/BlockLength: Block has too many lines. [30/25]", 1901983597], + [159, 3, 1296, "Metrics/BlockLength: Block has too many lines. [30/25]", 1749880380], + [239, 3, 1151, "Metrics/BlockLength: Block has too many lines. [28/25]", 183967322], + [272, 3, 2004, "Metrics/BlockLength: Block has too many lines. [45/25]", 2594323837], + [349, 3, 3220, "Metrics/BlockLength: Block has too many lines. [83/25]", 790417809], + [350, 5, 2347, "Metrics/BlockLength: Block has too many lines. [60/25]", 4016801881] + ], + "spec/ast/merge/composite_match_refiner_spec.rb:2888297870": [ + [3, 1, 6152, "Metrics/BlockLength: Block has too many lines. [143/25]", 3308692548], + [55, 3, 4118, "Metrics/BlockLength: Block has too many lines. [87/25]", 1405655464] + ], + "spec/ast/merge/conflict_resolver_base_spec.rb:3331938447": [ + [5, 1, 20643, "Metrics/BlockLength: Block has too many lines. [516/25]", 3129196558], + [14, 59, 14, "Lint/UnusedMethodArgument: Unused method argument - `template_index`.", 1809801172], + [14, 76, 10, "Lint/UnusedMethodArgument: Unused method argument - `dest_index`.", 2703999490], + [47, 61, 14, "Lint/UnusedMethodArgument: Unused method argument - `template_index`. You can also write as `resolve_node_pair(*)` if you want the method to accept any arguments but don't care about them.", 1809801172], + [47, 78, 10, "Lint/UnusedMethodArgument: Unused method argument - `dest_index`. You can also write as `resolve_node_pair(*)` if you want the method to accept any arguments but don't care about them.", 2703999490], + [105, 3, 17203, "Metrics/BlockLength: Block has too many lines. [425/25]", 1114912980], + [154, 5, 1797, "Metrics/BlockLength: Block has too many lines. [37/25]", 515146940], + [203, 5, 1373, "Metrics/BlockLength: Block has too many lines. [32/25]", 603210832], + [292, 5, 2874, "Metrics/BlockLength: Block has too many lines. [77/25]", 3918129775], + [341, 7, 1292, "Metrics/BlockLength: Block has too many lines. [34/25]", 1769555944], + [402, 5, 1857, "Metrics/BlockLength: Block has too many lines. [44/25]", 1516406612], + [456, 5, 1209, "Metrics/BlockLength: Block has too many lines. [31/25]", 430489898], + [514, 5, 2021, "Metrics/BlockLength: Block has too many lines. [37/25]", 144128170], + [515, 7, 1953, "Metrics/BlockLength: Block has too many lines. [35/25]", 1574966248], + [567, 5, 1500, "Metrics/BlockLength: Block has too many lines. [40/25]", 2509466150] + ], + "spec/ast/merge/content_match_refiner_spec.rb:4058001158": [ + [3, 1, 14348, "Metrics/BlockLength: Block has too many lines. [318/25]", 1171164704], + [25, 3, 1238, "Metrics/BlockLength: Block has too many lines. [29/25]", 2139810386], + [63, 3, 4077, "Metrics/BlockLength: Block has too many lines. [95/25]", 3471153375], + [325, 3, 2213, "Metrics/BlockLength: Block has too many lines. [37/25]", 3370370915] + ], + "spec/ast/merge/debug_logger_spec.rb:429510168": [ + [3, 1, 17306, "Metrics/BlockLength: Block has too many lines. [358/25]", 2287792973], + [251, 3, 1598, "Metrics/BlockLength: Block has too many lines. [27/25]", 3227542816], + [358, 3, 5118, "Metrics/BlockLength: Block has too many lines. [77/25]", 1759761803] + ], + "spec/ast/merge/detector/base_spec.rb:4157102211": [ + [3, 1, 3172, "Metrics/BlockLength: Block has too many lines. [100/25]", 3745104028], + [11, 7, 498, "Metrics/MethodLength: Method has too many lines. [13/10]", 3178368155], + [49, 3, 900, "Metrics/BlockLength: Block has too many lines. [28/25]", 2333048204] + ], + "spec/ast/merge/detector/fenced_code_block_spec.rb:495797689": [ + [3, 1, 11589, "Metrics/BlockLength: Block has too many lines. [363/25]", 3764545134], + [38, 3, 4467, "Metrics/BlockLength: Block has too many lines. [150/25]", 1597401000], + [41, 5, 1077, "Metrics/BlockLength: Block has too many lines. [31/25]", 2269642514], + [115, 5, 848, "Metrics/BlockLength: Block has too many lines. [27/25]", 1704866975], + [220, 3, 4815, "Metrics/BlockLength: Block has too many lines. [146/25]", 3797214474] + ], + "spec/ast/merge/detector/mergeable_spec.rb:1307688846": [ + [3, 1, 23175, "Metrics/BlockLength: Block has too many lines. [654/25]", 2932391114], + [77, 3, 2079, "Metrics/BlockLength: Block has too many lines. [53/25]", 1093085347], + [177, 3, 2217, "Metrics/BlockLength: Block has too many lines. [69/25]", 926985871], + [188, 5, 948, "Metrics/BlockLength: Block has too many lines. [26/25]", 4186135901], + [225, 5, 898, "Metrics/BlockLength: Block has too many lines. [31/25]", 513446836], + [266, 3, 1168, "Metrics/BlockLength: Block has too many lines. [29/25]", 774699411], + [304, 3, 1188, "Metrics/BlockLength: Block has too many lines. [27/25]", 4282853126], + [339, 3, 918, "Metrics/BlockLength: Block has too many lines. [28/25]", 1759590109], + [372, 3, 870, "Metrics/BlockLength: Block has too many lines. [28/25]", 131542026], + [410, 3, 3768, "Metrics/BlockLength: Block has too many lines. [111/25]", 181819560], + [483, 5, 1536, "Metrics/BlockLength: Block has too many lines. [47/25]", 385085357], + [540, 3, 1891, "Metrics/BlockLength: Block has too many lines. [52/25]", 602757329], + [664, 3, 1927, "Metrics/BlockLength: Block has too many lines. [56/25]", 48062261], + [691, 5, 1146, "Metrics/BlockLength: Block has too many lines. [31/25]", 1961728737], + [721, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 3104497040], + [729, 3, 1625, "Metrics/BlockLength: Block has too many lines. [46/25]", 1570579215] + ], + "spec/ast/merge/detector/region_spec.rb:594725562": [ + [3, 1, 8128, "Metrics/BlockLength: Block has too many lines. [290/25]", 1984713692], + [4, 3, 806, "Metrics/BlockLength: Block has too many lines. [28/25]", 1515087192], + [58, 3, 1236, "Metrics/BlockLength: Block has too many lines. [45/25]", 2464968707], + [128, 3, 1063, "Metrics/BlockLength: Block has too many lines. [33/25]", 239148700], + [250, 3, 2010, "Metrics/BlockLength: Block has too many lines. [76/25]", 2595033382] + ], + "spec/ast/merge/detector/toml_frontmatter_spec.rb:1135160129": [ + [3, 1, 6717, "Metrics/BlockLength: Block has too many lines. [218/25]", 2273975625], + [12, 3, 5534, "Metrics/BlockLength: Block has too many lines. [187/25]", 538920673], + [13, 5, 1456, "Metrics/BlockLength: Block has too many lines. [38/25]", 3113759139] + ], + "spec/ast/merge/detector/yaml_frontmatter_spec.rb:2467934365": [ + [3, 1, 6702, "Metrics/BlockLength: Block has too many lines. [213/25]", 3083039982], + [12, 3, 5056, "Metrics/BlockLength: Block has too many lines. [170/25]", 1889948780], + [13, 5, 1438, "Metrics/BlockLength: Block has too many lines. [38/25]", 1736912391], + [219, 3, 1396, "Metrics/BlockLength: Block has too many lines. [33/25]", 2446467851] + ], + "spec/ast/merge/diff_mapper_base_spec.rb:1771546518": [ + [5, 1, 8521, "Metrics/BlockLength: Block has too many lines. [248/25]", 1057580573], + [22, 9, 44, "Style/InverseMethods: Use `reject` instead of inverting `select`.", 3063843489], + [46, 3, 3878, "Metrics/BlockLength: Block has too many lines. [116/25]", 2874032080], + [47, 5, 1938, "Metrics/BlockLength: Block has too many lines. [48/25]", 1904497583], + [191, 3, 1488, "Metrics/BlockLength: Block has too many lines. [43/25]", 1632956840] + ], + "spec/ast/merge/emitter_base_spec.rb:1099876333": [ + [3, 1, 11967, "Metrics/BlockLength: Block has too many lines. [301/25]", 2970792295], + [56, 3, 4393, "Metrics/BlockLength: Block has too many lines. [102/25]", 3992142376], + [160, 58, 12, "Lint/UnusedMethodArgument: Unused method argument - `current_line`. You can also write as `inline_comment_region_target_column(*)` if you want the method to accept any arguments but don't care about them.", 2091263933], + [164, 44, 6, "Lint/UnusedMethodArgument: Unused method argument - `region`.", 2124512157], + [185, 3, 1815, "Metrics/BlockLength: Block has too many lines. [39/25]", 719023387], + [232, 3, 2233, "Metrics/BlockLength: Block has too many lines. [62/25]", 3754339775], + [338, 3, 1059, "Metrics/BlockLength: Block has too many lines. [26/25]", 375007123] + ], + "spec/ast/merge/fictive_language_harness_spec.rb:1179155480": [ + [6, 1, 6693, "Metrics/BlockLength: Block has too many lines. [143/25]", 245088433], + [7, 3, 1968, "Metrics/BlockLength: Block has too many lines. [36/25]", 4161580169], + [58, 3, 1230, "Metrics/BlockLength: Block has too many lines. [34/25]", 990452676], + [103, 3, 2668, "Metrics/BlockLength: Block has too many lines. [51/25]", 1755027956] + ], + "spec/ast/merge/file_aligner_base_spec.rb:91275387": [ + [5, 1, 9948, "Metrics/BlockLength: Block has too many lines. [217/25]", 3354563411], + [6, 3, 1490, "Metrics/BlockLength: Block has too many lines. [45/25]", 563330990], + [95, 3, 7495, "Metrics/BlockLength: Block has too many lines. [129/25]", 598770279], + [103, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 3749416415], + [163, 5, 1489, "Metrics/BlockLength: Block has too many lines. [26/25]", 2910876949] + ], + "spec/ast/merge/file_analyzable_spec.rb:3816965829": [ + [3, 1, 12458, "Metrics/BlockLength: Block has too many lines. [272/25]", 216138965], + [25, 3, 9603, "Metrics/BlockLength: Block has too many lines. [202/25]", 2508188172], + [297, 3, 1214, "Metrics/BlockLength: Block has too many lines. [30/25]", 777182624] + ], + "spec/ast/merge/freezable_spec.rb:559280324": [ + [5, 1, 5033, "Metrics/BlockLength: Block has too many lines. [123/25]", 3070666859], + [6, 3, 1199, "Metrics/BlockLength: Block has too many lines. [34/25]", 4058875636], + [66, 3, 1530, "Metrics/BlockLength: Block has too many lines. [31/25]", 1670675428] + ], + "spec/ast/merge/freeze_node_base_spec.rb:2962962931": [ + [3, 1, 21887, "Metrics/BlockLength: Block has too many lines. [560/25]", 567315021], + [48, 3, 1369, "Metrics/BlockLength: Block has too many lines. [38/25]", 3363160391], + [131, 3, 2739, "Metrics/BlockLength: Block has too many lines. [56/25]", 2008289622], + [205, 3, 1586, "Metrics/BlockLength: Block has too many lines. [35/25]", 4179606047], + [251, 3, 977, "Metrics/BlockLength: Block has too many lines. [26/25]", 1240612851], + [287, 3, 1130, "Metrics/BlockLength: Block has too many lines. [28/25]", 2511265379], + [322, 3, 5029, "Metrics/BlockLength: Block has too many lines. [126/25]", 739537566], + [598, 3, 3055, "Metrics/BlockLength: Block has too many lines. [81/25]", 145217296] + ], + "spec/ast/merge/healer_spec.rb:877829793": [ + [3, 1, 4896, "Metrics/BlockLength: Block has too many lines. [148/25]", 1074378773], + [19, 3, 1333, "Metrics/BlockLength: Block has too many lines. [38/25]", 2940878263], + [24, 121, 3, "Layout/LineLength: Line is too long. [123/120]", 193432399], + [61, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2085379023], + [67, 3, 2985, "Metrics/BlockLength: Block has too many lines. [93/25]", 4032786576] + ], + "spec/ast/merge/jaccard_similarity_spec.rb:3984307047": [ + [3, 1, 2659, "Metrics/BlockLength: Block has too many lines. [71/25]", 1122516612], + [6, 3, 1484, "Metrics/BlockLength: Block has too many lines. [38/25]", 3367914637], + [55, 3, 1090, "Metrics/BlockLength: Block has too many lines. [28/25]", 2629339264] + ], + "spec/ast/merge/key_path_partial_template_merger_base_spec.rb:2189485360": [ + [5, 1, 5955, "Metrics/BlockLength: Block has too many lines. [138/25]", 91542958], + [35, 3, 1217, "Metrics/BlockLength: Block has too many lines. [33/25]", 2663081123], + [97, 3, 3019, "Metrics/BlockLength: Block has too many lines. [54/25]", 1411952192] + ], + "spec/ast/merge/layout/attachment_spec.rb:3814294426": [ + [3, 1, 1799, "Metrics/BlockLength: Block has too many lines. [34/25]", 1283153367] + ], + "spec/ast/merge/layout/augmenter_spec.rb:3633045915": [ + [3, 1, 4412, "Metrics/BlockLength: Block has too many lines. [92/25]", 2690553031], + [20, 3, 2725, "Metrics/BlockLength: Block has too many lines. [54/25]", 3645203819] + ], + "spec/ast/merge/layout/gap_spec.rb:4232058283": [ + [3, 1, 2758, "Metrics/BlockLength: Block has too many lines. [72/25]", 2052697931], + [9, 3, 1290, "Metrics/BlockLength: Block has too many lines. [28/25]", 3175967312] + ], + "spec/ast/merge/line_range_support_spec.rb:872979873": [ + [3, 1, 1564, "Metrics/BlockLength: Block has too many lines. [35/25]", 1133178812], + [4, 3, 65, "Lint/ConstantDefinitionInBlock: Do not define constants this way within a block.", 2231059390], + [5, 3, 44, "Lint/ConstantDefinitionInBlock: Do not define constants this way within a block.", 1230426940], + [7, 3, 135, "Lint/ConstantDefinitionInBlock: Do not define constants this way within a block.", 1825860348] + ], + "spec/ast/merge/match_refiner_base_spec.rb:3961767223": [ + [3, 1, 10604, "Metrics/BlockLength: Block has too many lines. [301/25]", 4290485382], + [4, 3, 1146, "Metrics/BlockLength: Block has too many lines. [37/25]", 108051658], + [50, 3, 1005, "Metrics/BlockLength: Block has too many lines. [28/25]", 3807648246], + [125, 3, 1026, "Metrics/BlockLength: Block has too many lines. [27/25]", 2896086726], + [162, 3, 4464, "Metrics/BlockLength: Block has too many lines. [114/25]", 2878217135], + [218, 5, 1112, "Metrics/BlockLength: Block has too many lines. [30/25]", 1605825436], + [224, 11, 104, "Style/HashLikeCase: Consider replacing `case-when` with a hash lookup.", 4220899731], + [247, 11, 132, "Style/HashLikeCase: Consider replacing `case-when` with a hash lookup.", 3401820780], + [258, 5, 1642, "Metrics/BlockLength: Block has too many lines. [35/25]", 1288881729], + [337, 3, 1108, "Metrics/BlockLength: Block has too many lines. [33/25]", 2139263963] + ], + "spec/ast/merge/match_score_base_spec.rb:2340739872": [ + [3, 1, 15213, "Metrics/BlockLength: Block has too many lines. [372/25]", 1512747000], + [4, 3, 1553, "Metrics/BlockLength: Block has too many lines. [41/25]", 2789289940], + [43, 20, 2, "Naming/MethodParameterName: Method parameter must be at least 3 characters long.", 5862747], + [43, 24, 2, "Naming/MethodParameterName: Method parameter must be at least 3 characters long.", 5862744], + [56, 3, 1041, "Metrics/BlockLength: Block has too many lines. [29/25]", 3729310115], + [152, 3, 3259, "Metrics/BlockLength: Block has too many lines. [82/25]", 1438003770], + [258, 3, 2199, "Metrics/BlockLength: Block has too many lines. [43/25]", 3386602801], + [320, 3, 1684, "Metrics/BlockLength: Block has too many lines. [35/25]", 3807719546], + [365, 14, 16, "Lint/FloatComparison: Avoid equality comparisons of floats as they are unreliable.", 3787748956], + [369, 3, 1696, "Metrics/BlockLength: Block has too many lines. [36/25]", 3172214426], + [417, 3, 1792, "Metrics/BlockLength: Block has too many lines. [45/25]", 3557977606], + [438, 5, 1121, "Metrics/BlockLength: Block has too many lines. [26/25]", 4236927298] + ], + "spec/ast/merge/merge_result_base_spec.rb:3826389024": [ + [3, 1, 20371, "Metrics/BlockLength: Block has too many lines. [552/25]", 3965341976], + [38, 3, 2735, "Metrics/BlockLength: Block has too many lines. [80/25]", 1103243845], + [312, 3, 1611, "Metrics/BlockLength: Block has too many lines. [39/25]", 1928511417], + [313, 5, 1203, "Metrics/BlockLength: Block has too many lines. [26/25]", 857223227], + [359, 3, 2070, "Metrics/BlockLength: Block has too many lines. [48/25]", 2552826824], + [418, 3, 5769, "Metrics/BlockLength: Block has too many lines. [140/25]", 1457747735], + [544, 5, 1306, "Metrics/BlockLength: Block has too many lines. [29/25]", 2980786372], + [607, 3, 1308, "Metrics/BlockLength: Block has too many lines. [32/25]", 1342704008] + ], + "spec/ast/merge/merger_config_spec.rb:663896662": [ + [5, 1, 7314, "Metrics/BlockLength: Block has too many lines. [189/25]", 1279589310], + [11, 3, 1180, "Metrics/BlockLength: Block has too many lines. [26/25]", 1014009176], + [45, 3, 1151, "Metrics/BlockLength: Block has too many lines. [26/25]", 785276703], + [79, 3, 3574, "Metrics/BlockLength: Block has too many lines. [97/25]", 969726064], + [126, 5, 1158, "Metrics/BlockLength: Block has too many lines. [29/25]", 389808524] + ], + "spec/ast/merge/navigable/injection_point_finder_spec.rb:3693754765": [ + [3, 1, 5152, "Metrics/BlockLength: Block has too many lines. [123/25]", 3265221808], + [15, 3, 4026, "Metrics/BlockLength: Block has too many lines. [96/25]", 1482695302], + [63, 5, 2337, "Metrics/BlockLength: Block has too many lines. [54/25]", 2678200297] + ], + "spec/ast/merge/navigable/injection_point_spec.rb:3295717447": [ + [3, 1, 6032, "Metrics/BlockLength: Block has too many lines. [161/25]", 805025024], + [77, 3, 1083, "Metrics/BlockLength: Block has too many lines. [28/25]", 3091139104] + ], + "spec/ast/merge/navigable/statement_spec.rb:2965726260": [ + [3, 1, 18289, "Metrics/BlockLength: Block has too many lines. [510/25]", 4119203121], + [102, 3, 3570, "Metrics/BlockLength: Block has too many lines. [97/25]", 3287535168], + [156, 5, 2030, "Metrics/BlockLength: Block has too many lines. [51/25]", 3299963733], + [251, 3, 1338, "Metrics/BlockLength: Block has too many lines. [37/25]", 844559624], + [411, 3, 1550, "Metrics/BlockLength: Block has too many lines. [42/25]", 3851790429], + [465, 3, 1372, "Metrics/BlockLength: Block has too many lines. [41/25]", 3782869383] + ], + "spec/ast/merge/node_typing/frozen_wrapper_spec.rb:3823345520": [ + [3, 1, 4532, "Metrics/BlockLength: Block has too many lines. [117/25]", 3944573785] + ], + "spec/ast/merge/node_typing/normalizer_spec.rb:1976431423": [ + [4, 1, 8679, "Metrics/BlockLength: Block has too many lines. [219/25]", 938207310], + [65, 3, 1137, "Metrics/BlockLength: Block has too many lines. [26/25]", 3180807289], + [101, 3, 1404, "Metrics/BlockLength: Block has too many lines. [28/25]", 1094334251], + [216, 3, 875, "Metrics/BlockLength: Block has too many lines. [26/25]", 2755551247] + ], + "spec/ast/merge/node_typing/wrapper_spec.rb:3211588263": [ + [3, 1, 3469, "Metrics/BlockLength: Block has too many lines. [92/25]", 638644563] + ], + "spec/ast/merge/node_typing_spec.rb:4080661389": [ + [3, 1, 12728, "Metrics/BlockLength: Block has too many lines. [333/25]", 3927571381], + [132, 3, 3704, "Metrics/BlockLength: Block has too many lines. [98/25]", 2130243754], + [208, 5, 1267, "Metrics/BlockLength: Block has too many lines. [31/25]", 2816753725], + [265, 3, 1298, "Metrics/BlockLength: Block has too many lines. [33/25]", 3320876250], + [311, 3, 3803, "Metrics/BlockLength: Block has too many lines. [100/25]", 2743470911] + ], + "spec/ast/merge/node_wrapper_base_spec.rb:2252820285": [ + [3, 1, 11681, "Metrics/BlockLength: Block has too many lines. [307/25]", 1698593962], + [32, 3, 2341, "Metrics/BlockLength: Block has too many lines. [68/25]", 1594381363], + [179, 3, 2568, "Metrics/BlockLength: Block has too many lines. [51/25]", 1269052990], + [294, 3, 1252, "Metrics/BlockLength: Block has too many lines. [26/25]", 4220822180], + [329, 3, 1963, "Metrics/BlockLength: Block has too many lines. [39/25]", 1623030031] + ], + "spec/ast/merge/owner_selection_spec.rb:1894901093": [ + [3, 1, 1356, "Metrics/BlockLength: Block has too many lines. [35/25]", 1030003775] + ], + "spec/ast/merge/partial_template_merger_base_spec.rb:3412991027": [ + [3, 1, 7073, "Metrics/BlockLength: Block has too many lines. [145/25]", 3415302240], + [16, 9, 43, "Lint/HashCompareByIdentity: Use `Hash#compare_by_identity` instead of using `object_id` for keys.", 3196404056], + [22, 9, 42, "Lint/HashCompareByIdentity: Use `Hash#compare_by_identity` instead of using `object_id` for keys.", 4116824817], + [48, 20, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], + [96, 3, 4220, "Metrics/BlockLength: Block has too many lines. [68/25]", 3464417459], + [97, 5, 2029, "Metrics/BlockLength: Block has too many lines. [27/25]", 3297854360], + [138, 5, 2122, "Metrics/BlockLength: Block has too many lines. [37/25]", 1592076374] + ], + "spec/ast/merge/recipe/config_spec.rb:3917288551": [ + [3, 1, 21041, "Metrics/BlockLength: Block has too many lines. [611/25]", 2431235923], + [72, 3, 1653, "Metrics/BlockLength: Block has too many lines. [36/25]", 2702780755], + [174, 3, 1465, "Metrics/BlockLength: Block has too many lines. [44/25]", 2326126933], + [226, 3, 3419, "Metrics/BlockLength: Block has too many lines. [89/25]", 798604841], + [327, 3, 1398, "Metrics/BlockLength: Block has too many lines. [34/25]", 3113267700], + [474, 3, 1184, "Metrics/BlockLength: Block has too many lines. [39/25]", 2599756030], + [519, 3, 4630, "Metrics/BlockLength: Block has too many lines. [147/25]", 1245526575] + ], + "spec/ast/merge/recipe/preset_spec.rb:818394232": [ + [3, 1, 6696, "Metrics/BlockLength: Block has too many lines. [173/25]", 3205615892] + ], + "spec/ast/merge/recipe/runner_spec.rb:3689194117": [ + [3, 1, 46798, "Metrics/BlockLength: Block has too many lines. [1104/25]", 3220015076], + [48, 3, 1128, "Metrics/BlockLength: Block has too many lines. [26/25]", 910457645], + [108, 3, 3036, "Metrics/BlockLength: Block has too many lines. [92/25]", 2112378918], + [132, 5, 881, "Metrics/BlockLength: Block has too many lines. [27/25]", 3842010356], + [177, 5, 918, "Metrics/BlockLength: Block has too many lines. [27/25]", 2152367239], + [295, 3, 1383, "Metrics/BlockLength: Block has too many lines. [41/25]", 2141027559], + [362, 3, 1653, "Metrics/BlockLength: Block has too many lines. [33/25]", 1536472295], + [449, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 3960802027], + [497, 3, 7959, "Metrics/BlockLength: Block has too many lines. [200/25]", 3739116912], + [556, 5, 1225, "Metrics/BlockLength: Block has too many lines. [31/25]", 195497726], + [740, 3, 6977, "Metrics/BlockLength: Block has too many lines. [145/25]", 2805535296], + [748, 5, 2241, "Metrics/BlockLength: Block has too many lines. [49/25]", 2552233173], + [805, 5, 3007, "Metrics/BlockLength: Block has too many lines. [59/25]", 708771722], + [877, 5, 1444, "Metrics/BlockLength: Block has too many lines. [26/25]", 3274225022], + [911, 3, 3258, "Metrics/BlockLength: Block has too many lines. [85/25]", 2346849758], + [1012, 3, 2710, "Metrics/BlockLength: Block has too many lines. [71/25]", 3801821877], + [1029, 5, 1547, "Metrics/BlockLength: Block has too many lines. [42/25]", 2962020615], + [1109, 3, 2240, "Metrics/BlockLength: Block has too many lines. [35/25]", 1139957345], + [1115, 121, 26, "Layout/LineLength: Line is too long. [146/120]", 667314941], + [1117, 121, 26, "Layout/LineLength: Line is too long. [146/120]", 667314941], + [1119, 121, 13, "Layout/LineLength: Line is too long. [133/120]", 1801369636], + [1121, 121, 11, "Layout/LineLength: Line is too long. [131/120]", 2652710920], + [1123, 121, 28, "Layout/LineLength: Line is too long. [148/120]", 1375785821], + [1125, 121, 26, "Layout/LineLength: Line is too long. [146/120]", 632755459], + [1160, 121, 26, "Layout/LineLength: Line is too long. [146/120]", 667314941], + [1162, 121, 26, "Layout/LineLength: Line is too long. [146/120]", 667314941], + [1164, 121, 28, "Layout/LineLength: Line is too long. [148/120]", 1375785821], + [1176, 3, 1472, "Metrics/BlockLength: Block has too many lines. [31/25]", 844153987], + [1181, 121, 25, "Layout/LineLength: Line is too long. [145/120]", 1239303812], + [1183, 121, 28, "Layout/LineLength: Line is too long. [148/120]", 1251336963], + [1216, 3, 2277, "Metrics/BlockLength: Block has too many lines. [43/25]", 4287127386], + [1221, 121, 26, "Layout/LineLength: Line is too long. [146/120]", 667314941], + [1223, 121, 11, "Layout/LineLength: Line is too long. [131/120]", 2652710920], + [1225, 121, 28, "Layout/LineLength: Line is too long. [148/120]", 1375785821], + [1227, 121, 26, "Layout/LineLength: Line is too long. [146/120]", 632755459], + [1274, 121, 44, "Layout/LineLength: Line is too long. [164/120]", 3420615328] + ], + "spec/ast/merge/recipe/script_loader_spec.rb:2136892097": [ + [3, 1, 8554, "Metrics/BlockLength: Block has too many lines. [237/25]", 2314425369], + [45, 3, 2842, "Metrics/BlockLength: Block has too many lines. [75/25]", 168902852], + [155, 3, 1400, "Metrics/BlockLength: Block has too many lines. [39/25]", 1611123964] + ], + "spec/ast/merge/rspec/shared_examples/feature_profile_spec.rb:2654837708": [ + [5, 1, 1140, "Metrics/BlockLength: Block has too many lines. [31/25]", 678325840] + ], + "spec/ast/merge/rspec/shared_examples/file_analyzable_spec.rb:1833922303": [ + [58, 3, 970, "Metrics/AbcSize: Assignment Branch Condition size for `detect_freeze_blocks` is too high. [<16, 9, 5> 19.03/17]", 1533823667], + [58, 3, 970, "Metrics/MethodLength: Method has too many lines. [31/10]", 1533823667], + [104, 1, 1216, "Metrics/BlockLength: Block has too many lines. [39/25]", 1009012120], + [105, 3, 1159, "Metrics/BlockLength: Block has too many lines. [38/25]", 1361521205] + ], + "spec/ast/merge/rspec/shared_examples/layout_attachment_spec.rb:714796658": [ + [8, 1, 957, "Metrics/BlockLength: Block has too many lines. [28/25]", 3738990548] + ], + "spec/ast/merge/rspec/shared_examples/recipe_preset_contract_spec.rb:669158728": [ + [6, 1, 1577, "Metrics/BlockLength: Block has too many lines. [41/25]", 2157464290], + [7, 3, 1512, "Metrics/BlockLength: Block has too many lines. [39/25]", 1968160370], + [44, 5, 401, "Metrics/AbcSize: Assignment Branch Condition size for `run_verify_loaded_preset` is too high. [<0, 26, 0> 26/17]", 2960760840] + ], + "spec/ast/merge/rspec/shared_examples/removal_mode_compliance_spec.rb:31388352": [ + [6, 22, 2, "Style/MutableConstant: Freeze mutable objects assigned to constants.", 5861859], + [44, 1, 2546, "Metrics/BlockLength: Block has too many lines. [77/25]", 3740028971], + [45, 3, 1350, "Metrics/BlockLength: Block has too many lines. [41/25]", 2793151667], + [94, 3, 1128, "Metrics/BlockLength: Block has too many lines. [32/25]", 2527000512], + [95, 5, 1081, "Metrics/BlockLength: Block has too many lines. [30/25]", 3825359844] + ], + "spec/ast/merge/rspec/shared_examples/reproducible_partial_merge_spec.rb:2862326360": [ + [19, 3, 600, "Metrics/MethodLength: Method has too many lines. [13/10]", 1542875905] + ], + "spec/ast/merge/rspec/tree_haver_backend_contract_spec.rb:3942689234": [ + [20, 1, 1737, "Metrics/BlockLength: Block has too many lines. [29/25]", 2339568528] + ], + "spec/ast/merge/ruleset/config_spec.rb:1860949041": [ + [3, 1, 9431, "Metrics/BlockLength: Block has too many lines. [236/25]", 4015119559], + [24, 3, 5341, "Metrics/BlockLength: Block has too many lines. [149/25]", 2361087446], + [25, 5, 1064, "Metrics/BlockLength: Block has too many lines. [26/25]", 603056104], + [226, 3, 2125, "Metrics/BlockLength: Block has too many lines. [36/25]", 1640873170] + ], + "spec/ast/merge/ruleset/declaration_objects_spec.rb:3827892270": [ + [3, 1, 1881, "Metrics/BlockLength: Block has too many lines. [47/25]", 1770376910] + ], + "spec/ast/merge/ruleset/feature_profile_spec.rb:2241111096": [ + [3, 1, 4189, "Metrics/BlockLength: Block has too many lines. [86/25]", 1116963550], + [4, 3, 4129, "Metrics/BlockLength: Block has too many lines. [84/25]", 117079811], + [5, 5, 2391, "Metrics/BlockLength: Block has too many lines. [45/25]", 1800077283] + ], + "spec/ast/merge/ruleset/parser_spec.rb:386407767": [ + [3, 1, 5670, "Metrics/BlockLength: Block has too many lines. [144/25]", 3425850453], + [4, 3, 5618, "Metrics/BlockLength: Block has too many lines. [143/25]", 246633759] + ], + "spec/ast/merge/ruleset/profile_vocabulary_spec.rb:2570869276": [ + [3, 1, 2095, "Metrics/BlockLength: Block has too many lines. [46/25]", 3214342662] + ], + "spec/ast/merge/ruleset/support_style_resolver_spec.rb:640167644": [ + [3, 1, 1625, "Metrics/BlockLength: Block has too many lines. [49/25]", 2066834885], + [4, 3, 1559, "Metrics/BlockLength: Block has too many lines. [47/25]", 1169495477] + ], + "spec/ast/merge/runtime_spec.rb:3962589694": [ + [5, 1, 24649, "Metrics/BlockLength: Block has too many lines. [664/25]", 2634021188], + [76, 3, 1459, "Metrics/BlockLength: Block has too many lines. [41/25]", 3744002593], + [125, 3, 1417, "Metrics/BlockLength: Block has too many lines. [33/25]", 4087615381], + [166, 3, 2549, "Metrics/BlockLength: Block has too many lines. [69/25]", 3150260095], + [175, 5, 1068, "Metrics/BlockLength: Block has too many lines. [26/25]", 2933114685], + [247, 3, 1668, "Metrics/BlockLength: Block has too many lines. [39/25]", 2386637993], + [259, 5, 1265, "Metrics/BlockLength: Block has too many lines. [27/25]", 3157806167], + [321, 3, 10884, "Metrics/BlockLength: Block has too many lines. [295/25]", 1889265918], + [322, 5, 1879, "Metrics/BlockLength: Block has too many lines. [46/25]", 2536583521], + [373, 5, 3938, "Metrics/BlockLength: Block has too many lines. [108/25]", 340276027], + [486, 5, 1270, "Metrics/BlockLength: Block has too many lines. [38/25]", 3844174392], + [528, 5, 3728, "Metrics/BlockLength: Block has too many lines. [95/25]", 3779381786], + [630, 3, 3240, "Metrics/BlockLength: Block has too many lines. [84/25]", 3856725067], + [656, 5, 1649, "Metrics/BlockLength: Block has too many lines. [40/25]", 3713662683] + ], + "spec/ast/merge/section_typing_spec.rb:2580971307": [ + [3, 1, 14786, "Metrics/BlockLength: Block has too many lines. [344/25]", 2925587076], + [4, 3, 1940, "Metrics/BlockLength: Block has too many lines. [50/25]", 3362429388], + [67, 3, 3684, "Metrics/BlockLength: Block has too many lines. [96/25]", 3864076664], + [120, 5, 1998, "Metrics/BlockLength: Block has too many lines. [50/25]", 411620722], + [183, 3, 1415, "Metrics/BlockLength: Block has too many lines. [37/25]", 3323012675], + [192, 5, 1124, "Metrics/BlockLength: Block has too many lines. [28/25]", 966216762], + [229, 3, 1610, "Metrics/BlockLength: Block has too many lines. [38/25]", 1499957007], + [229, 121, 17, "Layout/LineLength: Line is too long. [137/120]", 1025596574], + [279, 3, 4437, "Metrics/BlockLength: Block has too many lines. [80/25]", 423587151], + [356, 36, 23, "Style/SymbolProc: Pass `&:unclassified?` as an argument to `find` instead of a block.", 563945984], + [369, 36, 23, "Style/SymbolProc: Pass `&:unclassified?` as an argument to `find` instead of a block.", 563945984], + [375, 3, 1630, "Metrics/BlockLength: Block has too many lines. [31/25]", 1675144727] + ], + "spec/ast/merge/smart_merger_base_spec.rb:1904727390": [ + [3, 1, 13253, "Metrics/BlockLength: Block has too many lines. [398/25]", 3611753358], + [30, 9, 10, "Style/MultilineBlockChain: Avoid multi-line chains of blocks.", 1099697163], + [87, 3, 1851, "Metrics/BlockLength: Block has too many lines. [40/25]", 3729571903], + [210, 3, 925, "Metrics/BlockLength: Block has too many lines. [35/25]", 2001100899], + [344, 3, 709, "Metrics/BlockLength: Block has too many lines. [27/25]", 3041950416], + [415, 3, 1074, "Metrics/BlockLength: Block has too many lines. [35/25]", 956635689], + [416, 5, 1026, "Metrics/BlockLength: Block has too many lines. [33/25]", 1993879652], + [461, 3, 1031, "Metrics/BlockLength: Block has too many lines. [31/25]", 35315996] + ], + "spec/ast/merge/source_region_report_support_spec.rb:3996528026": [ + [3, 1, 5448, "Metrics/BlockLength: Block has too many lines. [186/25]", 2713581049], + [4, 3, 112, "Lint/ConstantDefinitionInBlock: Do not define constants this way within a block.", 3709101366], + [6, 3, 295, "Lint/ConstantDefinitionInBlock: Do not define constants this way within a block.", 1625952400], + [17, 3, 1473, "Metrics/BlockLength: Block has too many lines. [49/25]", 1435042916], + [70, 3, 1887, "Metrics/BlockLength: Block has too many lines. [66/25]", 1773930426], + [159, 3, 1109, "Metrics/BlockLength: Block has too many lines. [38/25]", 1457507554] + ], + "spec/ast/merge/structural_edit/boundary_support_spec.rb:863387845": [ + [3, 1, 4226, "Metrics/BlockLength: Block has too many lines. [86/25]", 1889771490], + [16, 9, 42, "Lint/HashCompareByIdentity: Use `Hash#compare_by_identity` instead of using `object_id` for keys.", 1304492024], + [22, 9, 41, "Lint/HashCompareByIdentity: Use `Hash#compare_by_identity` instead of using `object_id` for keys.", 3828424401], + [59, 3, 1294, "Metrics/BlockLength: Block has too many lines. [26/25]", 3038774774] + ], + "spec/ast/merge/structural_edit/plan_set_spec.rb:3633263362": [ + [3, 1, 5945, "Metrics/BlockLength: Block has too many lines. [180/25]", 3883285271], + [14, 3, 2139, "Metrics/BlockLength: Block has too many lines. [72/25]", 3558415255], + [128, 3, 1412, "Metrics/BlockLength: Block has too many lines. [39/25]", 1216754705] + ], + "spec/ast/merge/structural_edit/remove_plan_spec.rb:3569534665": [ + [3, 1, 6442, "Metrics/BlockLength: Block has too many lines. [134/25]", 3440814588], + [39, 3, 3768, "Metrics/BlockLength: Block has too many lines. [75/25]", 876721813], + [127, 3, 1439, "Metrics/BlockLength: Block has too many lines. [29/25]", 3378195351] + ], + "spec/ast/merge/structural_edit/remove_plan_support_spec.rb:800158061": [ + [3, 1, 2893, "Metrics/BlockLength: Block has too many lines. [62/25]", 3748446914], + [16, 9, 43, "Lint/HashCompareByIdentity: Use `Hash#compare_by_identity` instead of using `object_id` for keys.", 3196404056], + [22, 9, 42, "Lint/HashCompareByIdentity: Use `Hash#compare_by_identity` instead of using `object_id` for keys.", 4116824817], + [29, 3, 2091, "Metrics/BlockLength: Block has too many lines. [39/25]", 1684933040], + [30, 5, 1653, "Metrics/BlockLength: Block has too many lines. [27/25]", 2456404305] + ], + "spec/ast/merge/structural_edit/splice_plan_spec.rb:3331205681": [ + [3, 1, 3159, "Metrics/BlockLength: Block has too many lines. [83/25]", 2234926397], + [16, 3, 1837, "Metrics/BlockLength: Block has too many lines. [46/25]", 2935991482], + [42, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5860750] + ], + "spec/ast/merge/text/conflict_resolver_spec.rb:3810004132": [ + [5, 1, 9102, "Metrics/BlockLength: Block has too many lines. [218/25]", 672115618], + [33, 3, 8206, "Metrics/BlockLength: Block has too many lines. [194/25]", 259803246], + [78, 5, 1920, "Metrics/BlockLength: Block has too many lines. [45/25]", 3965182334], + [139, 5, 1918, "Metrics/BlockLength: Block has too many lines. [44/25]", 3707046125] + ], + "spec/ast/merge/text/file_analysis_spec.rb:3430380445": [ + [5, 1, 8842, "Metrics/BlockLength: Block has too many lines. [205/25]", 4255187284], + [6, 3, 1323, "Metrics/BlockLength: Block has too many lines. [29/25]", 2518912953], + [47, 3, 1830, "Metrics/BlockLength: Block has too many lines. [43/25]", 3685770590], + [135, 3, 1620, "Metrics/BlockLength: Block has too many lines. [35/25]", 3089951119] + ], + "spec/ast/merge/text/line_node_spec.rb:1757790485": [ + [5, 1, 4739, "Metrics/BlockLength: Block has too many lines. [131/25]", 1487875238] + ], + "spec/ast/merge/text/merge_result_spec.rb:589380024": [ + [5, 1, 1541, "Metrics/BlockLength: Block has too many lines. [40/25]", 2828087992] + ], + "spec/ast/merge/text/section_splitter_spec.rb:804308722": [ + [4, 1, 5705, "Metrics/BlockLength: Block has too many lines. [209/25]", 4175363685], + [5, 3, 794, "Metrics/BlockLength: Block has too many lines. [28/25]", 2386862842], + [42, 3, 1126, "Metrics/BlockLength: Block has too many lines. [45/25]", 1507887296], + [95, 3, 746, "Metrics/BlockLength: Block has too many lines. [30/25]", 1759029412], + [131, 3, 1169, "Metrics/BlockLength: Block has too many lines. [45/25]", 1412318991], + [184, 3, 754, "Metrics/BlockLength: Block has too many lines. [30/25]", 2717556691], + [246, 1, 16648, "Metrics/BlockLength: Block has too many lines. [428/25]", 3166834694], + [370, 3, 1640, "Metrics/BlockLength: Block has too many lines. [46/25]", 2049342960], + [424, 3, 3237, "Metrics/BlockLength: Block has too many lines. [102/25]", 2357275144], + [540, 3, 3505, "Metrics/BlockLength: Block has too many lines. [67/25]", 2112469350], + [619, 3, 3586, "Metrics/BlockLength: Block has too many lines. [90/25]", 3866409298], + [620, 5, 1650, "Metrics/BlockLength: Block has too many lines. [48/25]", 289235626], + [622, 9, 1474, "Metrics/AbcSize: Assignment Branch Condition size for `split` is too high. [<8, 21, 7> 23.54/17]", 557655357], + [622, 9, 1474, "Metrics/MethodLength: Method has too many lines. [41/10]", 557655357], + [622, 9, 1474, "Metrics/PerceivedComplexity: Perceived complexity for `split` is too high. [9/8]", 557655357], + [628, 11, 1237, "Metrics/BlockLength: Block has too many lines. [33/25]", 1134667672], + [717, 29, 44, "Style/StringConcatenation: Prefer string interpolation to string concatenation.", 2169354946], + [723, 29, 44, "Style/StringConcatenation: Prefer string interpolation to string concatenation.", 2169354946], + [751, 1, 3128, "Metrics/BlockLength: Block has too many lines. [85/25]", 2082776744], + [769, 3, 1744, "Metrics/BlockLength: Block has too many lines. [46/25]", 223880162], + [770, 5, 1258, "Metrics/BlockLength: Block has too many lines. [31/25]", 2245422869] + ], + "spec/ast/merge/text/smart_merger_spec.rb:4128732567": [ + [3, 1, 8057, "Metrics/BlockLength: Block has too many lines. [210/25]", 1690443322], + [4, 3, 1135, "Metrics/BlockLength: Block has too many lines. [28/25]", 3788979655], + [58, 3, 4438, "Metrics/BlockLength: Block has too many lines. [106/25]", 2613192474], + [187, 3, 1053, "Metrics/BlockLength: Block has too many lines. [26/25]", 803567817], + [220, 3, 892, "Metrics/BlockLength: Block has too many lines. [28/25]", 2001100899] + ], + "spec/ast/merge/text/word_node_spec.rb:1457011521": [ + [5, 1, 3264, "Metrics/BlockLength: Block has too many lines. [74/25]", 677733430] + ], + "spec/ast/merge/token_match_refiner_spec.rb:3180314913": [ + [3, 1, 4000, "Metrics/BlockLength: Block has too many lines. [80/25]", 1630791278], + [8, 3, 2912, "Metrics/BlockLength: Block has too many lines. [60/25]", 529772148] + ], + "spec/ast/merge/trailing_groups/alignment_sort_spec.rb:1594915480": [ + [5, 1, 4710, "Metrics/BlockLength: Block has too many lines. [114/25]", 2499296583], + [14, 3, 2140, "Metrics/BlockLength: Block has too many lines. [47/25]", 3871799493], + [95, 3, 1482, "Metrics/BlockLength: Block has too many lines. [35/25]", 1088314263] + ], + "spec/ast/merge/trailing_groups/core_spec.rb:2651131504": [ + [5, 1, 9601, "Metrics/BlockLength: Block has too many lines. [242/25]", 598045669], + [22, 3, 3728, "Metrics/BlockLength: Block has too many lines. [87/25]", 1304580063], + [119, 3, 3931, "Metrics/BlockLength: Block has too many lines. [99/25]", 2464218479], + [186, 5, 1322, "Metrics/BlockLength: Block has too many lines. [30/25]", 427915501], + [187, 7, 1267, "Metrics/BlockLength: Block has too many lines. [28/25]", 861882691], + [245, 3, 1306, "Metrics/BlockLength: Block has too many lines. [34/25]", 86572459] + ], + "spec/ast/merge/trailing_groups/dest_iterate_spec.rb:3632880085": [ + [5, 1, 5523, "Metrics/BlockLength: Block has too many lines. [131/25]", 3077369183], + [19, 3, 3990, "Metrics/BlockLength: Block has too many lines. [91/25]", 593259616], + [39, 35, 12, "Style/SymbolProc: Pass `&:sig` as an argument to `lambda` instead of a block.", 3587754320], + [54, 33, 23, "Lint/HashCompareByIdentity: Use `Hash#compare_by_identity` instead of using `object_id` for keys.", 384283629], + [89, 35, 13, "Style/SymbolProc: Pass `&:name` as an argument to `lambda` instead of a block.", 3561384234], + [98, 35, 12, "Style/SymbolProc: Pass `&:sig` as an argument to `lambda` instead of a block.", 3587754320], + [113, 35, 12, "Style/SymbolProc: Pass `&:sig` as an argument to `lambda` instead of a block.", 3587754320] + ], + "spec/ast/merge/unresolved_policy_spec.rb:2561713656": [ + [3, 1, 1333, "Metrics/BlockLength: Block has too many lines. [33/25]", 4109547889] + ], + "spec/ast/merge/unresolved_review_state_spec.rb:3186871217": [ + [3, 1, 1038, "Metrics/BlockLength: Block has too many lines. [31/25]", 1325553035] + ], + "spec/ast/merge_rspec_conformance_fixtures_spec.rb:251774004": [ + [5, 1, 2119, "Metrics/BlockLength: Block has too many lines. [55/25]", 1724925683], + [6, 3, 1203, "Metrics/BlockLength: Block has too many lines. [29/25]", 3306863581] + ], + "spec/ast/merge_spec.rb:664670069": [ + [3, 1, 3113, "Metrics/BlockLength: Block has too many lines. [74/25]", 4034649501], + [9, 3, 2227, "Metrics/BlockLength: Block has too many lines. [51/25]", 578300230], + [10, 5, 2182, "Metrics/BlockLength: Block has too many lines. [49/25]", 2758871265] + ], + "spec/base_substrate_spec.rb:2864492094": [ + [5, 1, 5800, "Metrics/BlockLength: Block has too many lines. [143/25]", 784801982], + [6, 3, 192, "Lint/ConstantDefinitionInBlock: Do not define constants this way within a block.", 680981873], + [13, 3, 378, "Lint/ConstantDefinitionInBlock: Do not define constants this way within a block.", 1223797442], + [31, 3, 628, "Lint/ConstantDefinitionInBlock: Do not define constants this way within a block.", 2123191050], + [53, 3, 429, "Lint/ConstantDefinitionInBlock: Do not define constants this way within a block.", 3536712197], + [69, 3, 24, "Lint/ConstantDefinitionInBlock: Do not define constants this way within a block.", 2280792512], + [70, 3, 78, "Lint/ConstantDefinitionInBlock: Do not define constants this way within a block.", 604224776], + [72, 3, 146, "Lint/ConstantDefinitionInBlock: Do not define constants this way within a block.", 3315091322] + ], + "spec/fixtures_integration_spec.rb:1733315771": [ + [595, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5859109], + [758, 121, 54, "Layout/LineLength: Line is too long. [174/120]", 576909008], + [881, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2087900170], + [1810, 3, 816, "Metrics/MethodLength: Method has too many lines. [13/10]", 170960660], + [1810, 39, 213, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [10/5]", 635200700], + [1811, 121, 27, "Layout/LineLength: Line is too long. [147/120]", 3976306097], + [1835, 38, 80, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 3297939075], + [1920, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1745553512], + [1921, 121, 38, "Layout/LineLength: Line is too long. [158/120]", 118067488], + [1922, 121, 5, "Layout/LineLength: Line is too long. [125/120]", 196190368], + [1923, 121, 41, "Layout/LineLength: Line is too long. [161/120]", 3371256193], + [2094, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 3241114703], + [2432, 121, 1, "Layout/LineLength: Line is too long. [121/120]", 177548], + [2571, 121, 1, "Layout/LineLength: Line is too long. [121/120]", 177548], + [2995, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 3697593604], + [2996, 121, 1, "Layout/LineLength: Line is too long. [121/120]", 177548], + [3117, 121, 5, "Layout/LineLength: Line is too long. [125/120]", 179435314], + [3126, 121, 34, "Layout/LineLength: Line is too long. [154/120]", 1182194285], + [3128, 121, 28, "Layout/LineLength: Line is too long. [148/120]", 3886107031], + [3155, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1751849111], + [3156, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 1519587684], + [3157, 121, 11, "Layout/LineLength: Line is too long. [131/120]", 4086262880], + [3174, 121, 10, "Layout/LineLength: Line is too long. [130/120]", 3568081822], + [3175, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 1776876782], + [3177, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5858795], + [3178, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1751849111], + [3180, 121, 73, "Layout/LineLength: Line is too long. [193/120]", 3322243646], + [3182, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1715153206], + [3183, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5858795], + [3184, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 504997180], + [3185, 121, 44, "Layout/LineLength: Line is too long. [164/120]", 1146860021], + [3186, 121, 38, "Layout/LineLength: Line is too long. [158/120]", 2312101607], + [3187, 121, 42, "Layout/LineLength: Line is too long. [162/120]", 1423779161], + [3188, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1900897138], + [3189, 121, 10, "Layout/LineLength: Line is too long. [130/120]", 1689840383], + [3190, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 1589056236], + [3192, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 763176550], + [3198, 121, 16, "Layout/LineLength: Line is too long. [136/120]", 3957871310], + [3200, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 763176550], + [3202, 121, 10, "Layout/LineLength: Line is too long. [130/120]", 919916608], + [3203, 121, 10, "Layout/LineLength: Line is too long. [130/120]", 919916608], + [3204, 121, 16, "Layout/LineLength: Line is too long. [136/120]", 3957871310], + [3205, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 4073040612], + [3206, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 763176550], + [3207, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 667593075], + [3209, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1310972770], + [3210, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 311387795], + [3211, 121, 18, "Layout/LineLength: Line is too long. [138/120]", 724840266], + [3212, 121, 22, "Layout/LineLength: Line is too long. [142/120]", 2555878310], + [3213, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1781078972], + [3214, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5858795], + [3217, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5858795], + [3218, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 1658060570], + [3219, 121, 40, "Layout/LineLength: Line is too long. [160/120]", 3085728851], + [3220, 121, 44, "Layout/LineLength: Line is too long. [164/120]", 3129400559], + [3221, 121, 10, "Layout/LineLength: Line is too long. [130/120]", 3197516464], + [3222, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2087771520], + [3223, 121, 22, "Layout/LineLength: Line is too long. [142/120]", 3837194228], + [3224, 121, 42, "Layout/LineLength: Line is too long. [162/120]", 1312323543], + [3225, 121, 46, "Layout/LineLength: Line is too long. [166/120]", 2356847623], + [3226, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5858795], + [3227, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 3428073441], + [3228, 121, 40, "Layout/LineLength: Line is too long. [160/120]", 2891080552], + [3229, 121, 44, "Layout/LineLength: Line is too long. [164/120]", 3080737172], + [3230, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 170445026], + [3231, 121, 32, "Layout/LineLength: Line is too long. [152/120]", 3240051869], + [3232, 121, 52, "Layout/LineLength: Line is too long. [172/120]", 4266052680], + [3233, 121, 56, "Layout/LineLength: Line is too long. [176/120]", 3376297786], + [3234, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 398435913], + [3235, 121, 26, "Layout/LineLength: Line is too long. [146/120]", 4134940256], + [3236, 121, 46, "Layout/LineLength: Line is too long. [166/120]", 30370035], + [3237, 121, 50, "Layout/LineLength: Line is too long. [170/120]", 2862546359], + [3238, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 1901388514], + [3239, 121, 38, "Layout/LineLength: Line is too long. [158/120]", 838864274], + [3240, 121, 58, "Layout/LineLength: Line is too long. [178/120]", 3437460384], + [3241, 121, 62, "Layout/LineLength: Line is too long. [182/120]", 1567003152], + [3242, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 2609066305], + [3243, 121, 32, "Layout/LineLength: Line is too long. [152/120]", 4043187090], + [3244, 121, 52, "Layout/LineLength: Line is too long. [172/120]", 3866430009], + [3245, 121, 56, "Layout/LineLength: Line is too long. [176/120]", 2182699083], + [3246, 121, 26, "Layout/LineLength: Line is too long. [146/120]", 3958792129], + [3247, 121, 44, "Layout/LineLength: Line is too long. [164/120]", 3449926560], + [3248, 121, 64, "Layout/LineLength: Line is too long. [184/120]", 399774089], + [3249, 121, 68, "Layout/LineLength: Line is too long. [188/120]", 2119246799], + [3251, 121, 32, "Layout/LineLength: Line is too long. [152/120]", 3592658842], + [3252, 121, 18, "Layout/LineLength: Line is too long. [138/120]", 2905723409], + [3253, 121, 38, "Layout/LineLength: Line is too long. [158/120]", 3930305198], + [3254, 121, 42, "Layout/LineLength: Line is too long. [162/120]", 4186230052], + [3255, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5858795], + [3256, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 2700200720], + [3257, 121, 40, "Layout/LineLength: Line is too long. [160/120]", 1630526402], + [3258, 121, 44, "Layout/LineLength: Line is too long. [164/120]", 3669244926], + [3259, 121, 18, "Layout/LineLength: Line is too long. [138/120]", 2814234644], + [3260, 121, 36, "Layout/LineLength: Line is too long. [156/120]", 3109415933], + [3261, 121, 56, "Layout/LineLength: Line is too long. [176/120]", 3643275044], + [3262, 121, 60, "Layout/LineLength: Line is too long. [180/120]", 3825290660], + [3263, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1751849111], + [3264, 121, 24, "Layout/LineLength: Line is too long. [144/120]", 4112285398], + [3265, 121, 44, "Layout/LineLength: Line is too long. [164/120]", 1684279672], + [3266, 121, 48, "Layout/LineLength: Line is too long. [168/120]", 1616506266], + [3268, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5858795], + [3269, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 1330093223], + [3270, 121, 40, "Layout/LineLength: Line is too long. [160/120]", 4084555566], + [3271, 121, 44, "Layout/LineLength: Line is too long. [164/120]", 2466867154], + [3272, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 4088314613], + [3273, 121, 26, "Layout/LineLength: Line is too long. [146/120]", 2416893689], + [3274, 121, 46, "Layout/LineLength: Line is too long. [166/120]", 683312682], + [3275, 121, 50, "Layout/LineLength: Line is too long. [170/120]", 2516517934], + [3276, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 2414563355], + [3277, 121, 38, "Layout/LineLength: Line is too long. [158/120]", 2232595211], + [3278, 121, 58, "Layout/LineLength: Line is too long. [178/120]", 2940789369], + [3279, 121, 62, "Layout/LineLength: Line is too long. [182/120]", 941259913], + [3280, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 2133508098], + [3281, 121, 26, "Layout/LineLength: Line is too long. [146/120]", 1621975014], + [3282, 121, 46, "Layout/LineLength: Line is too long. [166/120]", 35985461], + [3283, 121, 50, "Layout/LineLength: Line is too long. [170/120]", 746016305], + [3284, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 435488100], + [3285, 121, 38, "Layout/LineLength: Line is too long. [158/120]", 2581129172], + [3286, 121, 58, "Layout/LineLength: Line is too long. [178/120]", 3495900774], + [3287, 121, 62, "Layout/LineLength: Line is too long. [182/120]", 1413120342], + [3288, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5858795], + [3289, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 2333800791], + [3290, 121, 40, "Layout/LineLength: Line is too long. [160/120]", 2576906206], + [3291, 121, 44, "Layout/LineLength: Line is too long. [164/120]", 2986659874], + [3292, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 2811932564], + [3293, 121, 32, "Layout/LineLength: Line is too long. [152/120]", 1970813291], + [3294, 121, 52, "Layout/LineLength: Line is too long. [172/120]", 2904941246], + [3295, 121, 56, "Layout/LineLength: Line is too long. [176/120]", 3745922508], + [3296, 121, 32, "Layout/LineLength: Line is too long. [152/120]", 735247237], + [3297, 121, 50, "Layout/LineLength: Line is too long. [170/120]", 3731320885], + [3298, 121, 70, "Layout/LineLength: Line is too long. [190/120]", 3896022034], + [3299, 121, 74, "Layout/LineLength: Line is too long. [194/120]", 2827048584], + [3300, 121, 44, "Layout/LineLength: Line is too long. [164/120]", 2548596663], + [3301, 121, 62, "Layout/LineLength: Line is too long. [182/120]", 3812352018], + [3302, 121, 82, "Layout/LineLength: Line is too long. [202/120]", 1280243910], + [3303, 121, 86, "Layout/LineLength: Line is too long. [206/120]", 1742643292], + [3304, 121, 40, "Layout/LineLength: Line is too long. [160/120]", 3056442430], + [3305, 121, 58, "Layout/LineLength: Line is too long. [178/120]", 3144363287], + [3306, 121, 78, "Layout/LineLength: Line is too long. [198/120]", 477297993], + [3307, 121, 82, "Layout/LineLength: Line is too long. [202/120]", 3657857971], + [3308, 121, 52, "Layout/LineLength: Line is too long. [172/120]", 3913984414], + [3309, 121, 70, "Layout/LineLength: Line is too long. [190/120]", 336201058], + [3310, 121, 90, "Layout/LineLength: Line is too long. [210/120]", 485418789], + [3311, 121, 94, "Layout/LineLength: Line is too long. [214/120]", 453253839], + [3312, 121, 32, "Layout/LineLength: Line is too long. [152/120]", 3673833034], + [3313, 121, 50, "Layout/LineLength: Line is too long. [170/120]", 1552836890], + [3314, 121, 70, "Layout/LineLength: Line is too long. [190/120]", 2714635965], + [3315, 121, 74, "Layout/LineLength: Line is too long. [194/120]", 9336999], + [3316, 121, 44, "Layout/LineLength: Line is too long. [164/120]", 584857208], + [3317, 121, 62, "Layout/LineLength: Line is too long. [182/120]", 1394865213], + [3318, 121, 82, "Layout/LineLength: Line is too long. [202/120]", 3973222761], + [3319, 121, 86, "Layout/LineLength: Line is too long. [206/120]", 2020040051], + [3320, 121, 34, "Layout/LineLength: Line is too long. [154/120]", 3060994335], + [3321, 121, 52, "Layout/LineLength: Line is too long. [172/120]", 196286917], + [3322, 121, 72, "Layout/LineLength: Line is too long. [192/120]", 4168514178], + [3323, 121, 76, "Layout/LineLength: Line is too long. [196/120]", 810581246], + [3324, 121, 46, "Layout/LineLength: Line is too long. [166/120]", 1473417372], + [3325, 121, 64, "Layout/LineLength: Line is too long. [184/120]", 3008376885], + [3326, 121, 84, "Layout/LineLength: Line is too long. [204/120]", 454816400], + [3327, 121, 88, "Layout/LineLength: Line is too long. [208/120]", 1416223705], + [3328, 121, 48, "Layout/LineLength: Line is too long. [168/120]", 2896813919], + [3329, 121, 66, "Layout/LineLength: Line is too long. [186/120]", 957293983], + [3330, 121, 86, "Layout/LineLength: Line is too long. [206/120]", 2118117430], + [3331, 121, 90, "Layout/LineLength: Line is too long. [210/120]", 1367404612], + [3332, 121, 64, "Layout/LineLength: Line is too long. [184/120]", 2459902188], + [3333, 121, 62, "Layout/LineLength: Line is too long. [182/120]", 461483815], + [3334, 121, 62, "Layout/LineLength: Line is too long. [182/120]", 2791596520], + [3335, 121, 60, "Layout/LineLength: Line is too long. [180/120]", 203085787], + [3336, 121, 64, "Layout/LineLength: Line is too long. [184/120]", 2942095139], + [3337, 121, 80, "Layout/LineLength: Line is too long. [200/120]", 131861965], + [3338, 121, 86, "Layout/LineLength: Line is too long. [206/120]", 3340827551], + [3339, 121, 90, "Layout/LineLength: Line is too long. [210/120]", 102582610], + [3340, 121, 94, "Layout/LineLength: Line is too long. [214/120]", 762789354], + [3341, 121, 90, "Layout/LineLength: Line is too long. [210/120]", 3478337442], + [3342, 121, 112, "Layout/LineLength: Line is too long. [232/120]", 4010607435], + [3343, 121, 132, "Layout/LineLength: Line is too long. [252/120]", 3754747587], + [3344, 121, 136, "Layout/LineLength: Line is too long. [256/120]", 379336923], + [3345, 121, 108, "Layout/LineLength: Line is too long. [228/120]", 3366353902], + [3346, 121, 128, "Layout/LineLength: Line is too long. [248/120]", 1686898289], + [3347, 121, 132, "Layout/LineLength: Line is too long. [252/120]", 2005192241], + [3348, 121, 104, "Layout/LineLength: Line is too long. [224/120]", 1868634464], + [3349, 121, 124, "Layout/LineLength: Line is too long. [244/120]", 3939743614], + [3350, 121, 128, "Layout/LineLength: Line is too long. [248/120]", 2978506702], + [3351, 121, 98, "Layout/LineLength: Line is too long. [218/120]", 3909866928], + [3352, 121, 118, "Layout/LineLength: Line is too long. [238/120]", 2853032177], + [3353, 121, 122, "Layout/LineLength: Line is too long. [242/120]", 2968366309], + [3354, 121, 82, "Layout/LineLength: Line is too long. [202/120]", 1753663643], + [3355, 121, 102, "Layout/LineLength: Line is too long. [222/120]", 3387619436], + [3356, 121, 106, "Layout/LineLength: Line is too long. [226/120]", 197895496], + [3357, 121, 78, "Layout/LineLength: Line is too long. [198/120]", 576181861], + [3358, 121, 98, "Layout/LineLength: Line is too long. [218/120]", 2809313444], + [3359, 121, 102, "Layout/LineLength: Line is too long. [222/120]", 3963067112], + [3360, 121, 80, "Layout/LineLength: Line is too long. [200/120]", 1121380327], + [3361, 121, 100, "Layout/LineLength: Line is too long. [220/120]", 31591211], + [3362, 121, 104, "Layout/LineLength: Line is too long. [224/120]", 1946129497], + [3363, 121, 80, "Layout/LineLength: Line is too long. [200/120]", 767185096], + [3364, 121, 100, "Layout/LineLength: Line is too long. [220/120]", 1092646020], + [3365, 121, 104, "Layout/LineLength: Line is too long. [224/120]", 1328841270], + [3366, 121, 74, "Layout/LineLength: Line is too long. [194/120]", 2663749624], + [3367, 121, 74, "Layout/LineLength: Line is too long. [194/120]", 430318647], + [3368, 121, 72, "Layout/LineLength: Line is too long. [192/120]", 1650234037], + [3369, 121, 76, "Layout/LineLength: Line is too long. [196/120]", 1082269805], + [3370, 121, 92, "Layout/LineLength: Line is too long. [212/120]", 316397809], + [3371, 121, 92, "Layout/LineLength: Line is too long. [212/120]", 3145391348], + [3372, 121, 112, "Layout/LineLength: Line is too long. [232/120]", 2808088654], + [3373, 121, 116, "Layout/LineLength: Line is too long. [236/120]", 1035513748], + [3374, 121, 92, "Layout/LineLength: Line is too long. [212/120]", 2552800539], + [3375, 121, 112, "Layout/LineLength: Line is too long. [232/120]", 1727699169], + [3376, 121, 116, "Layout/LineLength: Line is too long. [236/120]", 1171566267], + [3377, 121, 90, "Layout/LineLength: Line is too long. [210/120]", 2994775049], + [3378, 121, 110, "Layout/LineLength: Line is too long. [230/120]", 3860489151], + [3379, 121, 114, "Layout/LineLength: Line is too long. [234/120]", 959496607], + [3380, 121, 94, "Layout/LineLength: Line is too long. [214/120]", 1694222439], + [3381, 121, 114, "Layout/LineLength: Line is too long. [234/120]", 1501186331], + [3382, 121, 118, "Layout/LineLength: Line is too long. [238/120]", 4059659418], + [3383, 121, 110, "Layout/LineLength: Line is too long. [230/120]", 1899868779], + [3384, 121, 130, "Layout/LineLength: Line is too long. [250/120]", 323324279], + [3385, 121, 134, "Layout/LineLength: Line is too long. [254/120]", 3956414359], + [3386, 121, 98, "Layout/LineLength: Line is too long. [218/120]", 3506644741], + [3387, 121, 116, "Layout/LineLength: Line is too long. [236/120]", 936139074], + [3388, 121, 136, "Layout/LineLength: Line is too long. [256/120]", 4153213512], + [3389, 121, 140, "Layout/LineLength: Line is too long. [260/120]", 1491976338], + [3390, 121, 102, "Layout/LineLength: Line is too long. [222/120]", 4061753206], + [3391, 121, 106, "Layout/LineLength: Line is too long. [226/120]", 2410434304], + [3392, 121, 124, "Layout/LineLength: Line is too long. [244/120]", 3518300264], + [3393, 121, 144, "Layout/LineLength: Line is too long. [264/120]", 1040696046], + [3394, 121, 148, "Layout/LineLength: Line is too long. [268/120]", 139604188], + [3395, 121, 120, "Layout/LineLength: Line is too long. [240/120]", 231937793], + [3396, 121, 140, "Layout/LineLength: Line is too long. [260/120]", 1835509805], + [3397, 121, 144, "Layout/LineLength: Line is too long. [264/120]", 1629218396], + [3398, 121, 82, "Layout/LineLength: Line is too long. [202/120]", 2312875700], + [3399, 121, 102, "Layout/LineLength: Line is too long. [222/120]", 2933374083], + [3400, 121, 106, "Layout/LineLength: Line is too long. [226/120]", 1719349671], + [3401, 121, 76, "Layout/LineLength: Line is too long. [196/120]", 2555579810], + [3402, 121, 94, "Layout/LineLength: Line is too long. [214/120]", 2023551624], + [3403, 121, 114, "Layout/LineLength: Line is too long. [234/120]", 955231924], + [3404, 121, 118, "Layout/LineLength: Line is too long. [238/120]", 4232993781], + [3405, 121, 60, "Layout/LineLength: Line is too long. [180/120]", 3472954835], + [3406, 121, 78, "Layout/LineLength: Line is too long. [198/120]", 3211922285], + [3407, 121, 98, "Layout/LineLength: Line is too long. [218/120]", 2874956332], + [3408, 121, 102, "Layout/LineLength: Line is too long. [222/120]", 1360335840], + [3409, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 2135379556], + [3410, 121, 32, "Layout/LineLength: Line is too long. [152/120]", 3242768475], + [3411, 121, 52, "Layout/LineLength: Line is too long. [172/120]", 2789115918], + [3412, 121, 56, "Layout/LineLength: Line is too long. [176/120]", 3346448124], + [3413, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 1538469817], + [3414, 121, 34, "Layout/LineLength: Line is too long. [154/120]", 1543041113], + [3415, 121, 38, "Layout/LineLength: Line is too long. [158/120]", 3344741438], + [3416, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 2188404009], + [3417, 121, 26, "Layout/LineLength: Line is too long. [146/120]", 1330398779], + [3418, 121, 46, "Layout/LineLength: Line is too long. [166/120]", 332468826], + [3419, 121, 50, "Layout/LineLength: Line is too long. [170/120]", 1905397598], + [3420, 121, 28, "Layout/LineLength: Line is too long. [148/120]", 438831062], + [3421, 121, 48, "Layout/LineLength: Line is too long. [168/120]", 3377667334], + [3422, 121, 52, "Layout/LineLength: Line is too long. [172/120]", 3232541734], + [3424, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 2130930429], + [3425, 121, 24, "Layout/LineLength: Line is too long. [144/120]", 3684939371], + [3427, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 2361951097], + [3428, 121, 32, "Layout/LineLength: Line is too long. [152/120]", 1211447462], + [3429, 121, 52, "Layout/LineLength: Line is too long. [172/120]", 3309872691], + [3430, 121, 56, "Layout/LineLength: Line is too long. [176/120]", 360053761], + [3431, 121, 16, "Layout/LineLength: Line is too long. [136/120]", 1310136493], + [3432, 121, 34, "Layout/LineLength: Line is too long. [154/120]", 1950686342], + [3433, 121, 54, "Layout/LineLength: Line is too long. [174/120]", 1397845826], + [3434, 121, 58, "Layout/LineLength: Line is too long. [178/120]", 4191304724], + [3435, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 2354128498], + [3436, 121, 30, "Layout/LineLength: Line is too long. [150/120]", 1865717453], + [3437, 121, 50, "Layout/LineLength: Line is too long. [170/120]", 24220542], + [3438, 121, 54, "Layout/LineLength: Line is too long. [174/120]", 2618612673], + [3441, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 3422918867], + [3442, 121, 16, "Layout/LineLength: Line is too long. [136/120]", 3689431739], + [3486, 121, 47, "Layout/LineLength: Line is too long. [167/120]", 4093564799], + [3492, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1662653970], + [3493, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 3967501655], + [3494, 121, 17, "Layout/LineLength: Line is too long. [137/120]", 2178516622], + [3495, 121, 40, "Layout/LineLength: Line is too long. [160/120]", 1345346561], + [3509, 121, 3, "Layout/LineLength: Line is too long. [123/120]", 193466072], + [3629, 121, 23, "Layout/LineLength: Line is too long. [143/120]", 3612393276], + [3630, 121, 9, "Layout/LineLength: Line is too long. [129/120]", 797303985], + [3633, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 1606320605], + [3653, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 1776876782], + [3657, 121, 7, "Layout/LineLength: Line is too long. [127/120]", 828742791], + [3677, 121, 31, "Layout/LineLength: Line is too long. [151/120]", 3294617581], + [3687, 121, 22, "Layout/LineLength: Line is too long. [142/120]", 3519842846], + [3697, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 1966440909], + [3698, 121, 7, "Layout/LineLength: Line is too long. [127/120]", 830053864], + [3704, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 1606320605], + [3727, 121, 16, "Layout/LineLength: Line is too long. [136/120]", 1340744311], + [3746, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1741893077], + [3747, 121, 7, "Layout/LineLength: Line is too long. [127/120]", 830053865], + [3751, 121, 3, "Layout/LineLength: Line is too long. [123/120]", 193405204], + [3765, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 1401226501], + [3768, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2085352569], + [3771, 121, 17, "Layout/LineLength: Line is too long. [137/120]", 696523922], + [3786, 121, 5, "Layout/LineLength: Line is too long. [125/120]", 182097675], + [3796, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 2746826653], + [4212, 121, 19, "Layout/LineLength: Line is too long. [139/120]", 1138870161], + [4774, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5862609], + [4785, 121, 13, "Layout/LineLength: Line is too long. [133/120]", 2132299307], + [4832, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2087775098], + [4843, 121, 15, "Layout/LineLength: Line is too long. [135/120]", 757851079], + [4879, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5862609], + [4890, 121, 13, "Layout/LineLength: Line is too long. [133/120]", 441649198], + [4913, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2087903295], + [4925, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 170442008], + [4934, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 2102137893], + [4936, 121, 25, "Layout/LineLength: Line is too long. [145/120]", 1888875443], + [4973, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 398433651], + [4984, 121, 19, "Layout/LineLength: Line is too long. [139/120]", 3921367744], + [5007, 121, 10, "Layout/LineLength: Line is too long. [130/120]", 2422819473], + [5013, 121, 5, "Layout/LineLength: Line is too long. [125/120]", 194583095], + [5019, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 1901385496], + [5028, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 490810486], + [5030, 121, 31, "Layout/LineLength: Line is too long. [151/120]", 586287746], + [5034, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1310969752], + [5054, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2087389205], + [5066, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 2609063547], + [5075, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 2102137893], + [5077, 121, 25, "Layout/LineLength: Line is too long. [145/120]", 1370761696], + [5100, 121, 16, "Layout/LineLength: Line is too long. [136/120]", 2208661169], + [5106, 121, 11, "Layout/LineLength: Line is too long. [131/120]", 1862604658], + [5112, 121, 26, "Layout/LineLength: Line is too long. [146/120]", 3958789371], + [5121, 121, 18, "Layout/LineLength: Line is too long. [138/120]", 3449594464], + [5123, 121, 37, "Layout/LineLength: Line is too long. [157/120]", 692050524], + [5127, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 802172558], + [5197, 121, 11, "Layout/LineLength: Line is too long. [131/120]", 2406691660], + [5232, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5862609], + [5243, 121, 13, "Layout/LineLength: Line is too long. [133/120]", 1811982742], + [5270, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 2562189319], + [5276, 121, 3, "Layout/LineLength: Line is too long. [123/120]", 193430346], + [5282, 121, 18, "Layout/LineLength: Line is too long. [138/120]", 2814237166], + [5291, 121, 10, "Layout/LineLength: Line is too long. [130/120]", 2189106693], + [5293, 121, 29, "Layout/LineLength: Line is too long. [149/120]", 3874870868], + [5297, 121, 5, "Layout/LineLength: Line is too long. [125/120]", 179474914], + [5330, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1751845165], + [5341, 121, 17, "Layout/LineLength: Line is too long. [137/120]", 2617230371], + [5345, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5862609], + [5386, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5862609], + [5397, 121, 13, "Layout/LineLength: Line is too long. [133/120]", 3793790598], + [5432, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 4088312783], + [5443, 121, 19, "Layout/LineLength: Line is too long. [139/120]", 3220724736], + [5447, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2087899888], + [5466, 121, 10, "Layout/LineLength: Line is too long. [130/120]", 2552888401], + [5472, 121, 5, "Layout/LineLength: Line is too long. [125/120]", 194583095], + [5478, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 2414559905], + [5487, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 626762179], + [5489, 121, 31, "Layout/LineLength: Line is too long. [151/120]", 3969284923], + [5493, 121, 16, "Layout/LineLength: Line is too long. [136/120]", 1893261414], + [5525, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 2133507320], + [5536, 121, 19, "Layout/LineLength: Line is too long. [139/120]", 2101353476], + [5540, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2087685705], + [5559, 121, 10, "Layout/LineLength: Line is too long. [130/120]", 2431380437], + [5565, 121, 5, "Layout/LineLength: Line is too long. [125/120]", 194583095], + [5571, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 435489438], + [5580, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 1520878209], + [5582, 121, 31, "Layout/LineLength: Line is too long. [151/120]", 2238995076], + [5586, 121, 16, "Layout/LineLength: Line is too long. [136/120]", 2789405913], + [5619, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5862609], + [5630, 121, 13, "Layout/LineLength: Line is too long. [133/120]", 3409328196], + [5653, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2087858069], + [5665, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 2811935086], + [5674, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 2102137893], + [5676, 121, 25, "Layout/LineLength: Line is too long. [145/120]", 1113346693], + [5680, 121, 10, "Layout/LineLength: Line is too long. [130/120]", 3227128786], + [5700, 121, 22, "Layout/LineLength: Line is too long. [142/120]", 48793812], + [5706, 121, 17, "Layout/LineLength: Line is too long. [137/120]", 338440584], + [5712, 121, 32, "Layout/LineLength: Line is too long. [152/120]", 735248703], + [5721, 121, 24, "Layout/LineLength: Line is too long. [144/120]", 927473097], + [5723, 121, 43, "Layout/LineLength: Line is too long. [163/120]", 1394536741], + [5727, 121, 18, "Layout/LineLength: Line is too long. [138/120]", 3134012967], + [5746, 121, 34, "Layout/LineLength: Line is too long. [154/120]", 2967615316], + [5752, 121, 29, "Layout/LineLength: Line is too long. [149/120]", 2810710931], + [5758, 121, 44, "Layout/LineLength: Line is too long. [164/120]", 2548594701], + [5761, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5860796], + [5763, 121, 5, "Layout/LineLength: Line is too long. [125/120]", 182097675], + [5767, 121, 36, "Layout/LineLength: Line is too long. [156/120]", 3549194295], + [5769, 121, 55, "Layout/LineLength: Line is too long. [175/120]", 1074004741], + [5773, 121, 30, "Layout/LineLength: Line is too long. [150/120]", 2874423564], + [5776, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2087576526], + [5778, 121, 5, "Layout/LineLength: Line is too long. [125/120]", 182097675], + [5793, 121, 30, "Layout/LineLength: Line is too long. [150/120]", 1696848307], + [5799, 121, 25, "Layout/LineLength: Line is too long. [145/120]", 2883501659], + [5805, 121, 40, "Layout/LineLength: Line is too long. [160/120]", 3056443076], + [5810, 121, 3, "Layout/LineLength: Line is too long. [123/120]", 193405204], + [5814, 121, 32, "Layout/LineLength: Line is too long. [152/120]", 1487412605], + [5816, 121, 51, "Layout/LineLength: Line is too long. [171/120]", 2021571284], + [5820, 121, 26, "Layout/LineLength: Line is too long. [146/120]", 1975782995], + [5823, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5860796], + [5825, 121, 3, "Layout/LineLength: Line is too long. [123/120]", 193405204], + [5830, 121, 5, "Layout/LineLength: Line is too long. [125/120]", 183236849], + [5839, 121, 42, "Layout/LineLength: Line is too long. [162/120]", 856018753], + [5842, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5862609], + [5845, 121, 37, "Layout/LineLength: Line is too long. [157/120]", 2146546324], + [5851, 121, 52, "Layout/LineLength: Line is too long. [172/120]", 3913983076], + [5854, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 3491931666], + [5856, 121, 9, "Layout/LineLength: Line is too long. [129/120]", 3536323546], + [5860, 121, 44, "Layout/LineLength: Line is too long. [164/120]", 356581191], + [5862, 121, 63, "Layout/LineLength: Line is too long. [183/120]", 4144657639], + [5866, 121, 38, "Layout/LineLength: Line is too long. [158/120]", 1478616653], + [5869, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 1774852021], + [5871, 121, 9, "Layout/LineLength: Line is too long. [129/120]", 3536323546], + [5886, 121, 22, "Layout/LineLength: Line is too long. [142/120]", 3884289787], + [5892, 121, 17, "Layout/LineLength: Line is too long. [137/120]", 1001503687], + [5898, 121, 32, "Layout/LineLength: Line is too long. [152/120]", 3673836976], + [5907, 121, 24, "Layout/LineLength: Line is too long. [144/120]", 3164908550], + [5909, 121, 43, "Layout/LineLength: Line is too long. [163/120]", 1134300778], + [5913, 121, 18, "Layout/LineLength: Line is too long. [138/120]", 1797165224], + [5932, 121, 34, "Layout/LineLength: Line is too long. [154/120]", 2508143995], + [5938, 121, 29, "Layout/LineLength: Line is too long. [149/120]", 3002532188], + [5944, 121, 44, "Layout/LineLength: Line is too long. [164/120]", 584857986], + [5947, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5860796], + [5949, 121, 5, "Layout/LineLength: Line is too long. [125/120]", 182097675], + [5953, 121, 36, "Layout/LineLength: Line is too long. [156/120]", 749691384], + [5955, 121, 55, "Layout/LineLength: Line is too long. [175/120]", 3389354954], + [5959, 121, 30, "Layout/LineLength: Line is too long. [150/120]", 3402045699], + [5962, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2087576526], + [5964, 121, 5, "Layout/LineLength: Line is too long. [125/120]", 182097675], + [5978, 121, 24, "Layout/LineLength: Line is too long. [144/120]", 2447716612], + [5984, 121, 19, "Layout/LineLength: Line is too long. [139/120]", 3201685099], + [5990, 121, 34, "Layout/LineLength: Line is too long. [154/120]", 3060990885], + [5999, 121, 26, "Layout/LineLength: Line is too long. [146/120]", 29396315], + [6001, 121, 45, "Layout/LineLength: Line is too long. [165/120]", 1228645365], + [6005, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 1436742837], + [6024, 121, 36, "Layout/LineLength: Line is too long. [156/120]", 716917214], + [6030, 121, 31, "Layout/LineLength: Line is too long. [151/120]", 2175814211], + [6036, 121, 46, "Layout/LineLength: Line is too long. [166/120]", 1473420390], + [6039, 121, 3, "Layout/LineLength: Line is too long. [123/120]", 193433391], + [6041, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1422839111], + [6045, 121, 38, "Layout/LineLength: Line is too long. [158/120]", 1571170198], + [6047, 121, 57, "Layout/LineLength: Line is too long. [177/120]", 2175059093], + [6051, 121, 32, "Layout/LineLength: Line is too long. [152/120]", 3886666417], + [6054, 121, 5, "Layout/LineLength: Line is too long. [125/120]", 176753677], + [6056, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1422839111], + [6072, 121, 38, "Layout/LineLength: Line is too long. [158/120]", 3471319495], + [6078, 121, 33, "Layout/LineLength: Line is too long. [153/120]", 1274038477], + [6084, 121, 48, "Layout/LineLength: Line is too long. [168/120]", 2896814693], + [6087, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2087576526], + [6089, 121, 7, "Layout/LineLength: Line is too long. [127/120]", 4114086530], + [6093, 121, 40, "Layout/LineLength: Line is too long. [160/120]", 250433828], + [6095, 121, 59, "Layout/LineLength: Line is too long. [179/120]", 3910556848], + [6099, 121, 34, "Layout/LineLength: Line is too long. [154/120]", 4002014976], + [6102, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 3491931666], + [6104, 121, 7, "Layout/LineLength: Line is too long. [127/120]", 4114086530], + [6198, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5861664], + [6212, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2087932582], + [6226, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5861664], + [6242, 121, 80, "Layout/LineLength: Line is too long. [200/120]", 876012844], + [6244, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1756764194], + [6245, 121, 21, "Layout/LineLength: Line is too long. [141/120]", 4173216735], + [6248, 121, 75, "Layout/LineLength: Line is too long. [195/120]", 911964425], + [6249, 121, 5, "Layout/LineLength: Line is too long. [125/120]", 173266907], + [6250, 121, 11, "Layout/LineLength: Line is too long. [131/120]", 1412705933], + [6253, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1756764194], + [6254, 121, 90, "Layout/LineLength: Line is too long. [210/120]", 2605683750], + [6257, 121, 25, "Layout/LineLength: Line is too long. [145/120]", 3182252139], + [6259, 121, 28, "Layout/LineLength: Line is too long. [148/120]", 1652557742], + [6263, 121, 82, "Layout/LineLength: Line is too long. [202/120]", 2240437058], + [6264, 121, 5, "Layout/LineLength: Line is too long. [125/120]", 173266907], + [6265, 121, 101, "Layout/LineLength: Line is too long. [221/120]", 3694598076], + [6267, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5861152], + [6268, 121, 5, "Layout/LineLength: Line is too long. [125/120]", 179079542], + [6269, 121, 76, "Layout/LineLength: Line is too long. [196/120]", 3528944411], + [6272, 121, 27, "Layout/LineLength: Line is too long. [147/120]", 3020159378], + [6274, 121, 28, "Layout/LineLength: Line is too long. [148/120]", 1652557742], + [6280, 121, 84, "Layout/LineLength: Line is too long. [204/120]", 420843234], + [6282, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 1401226501], + [6283, 121, 23, "Layout/LineLength: Line is too long. [143/120]", 442915368], + [6286, 121, 79, "Layout/LineLength: Line is too long. [199/120]", 4212444955], + [6287, 121, 7, "Layout/LineLength: Line is too long. [127/120]", 830053864], + [6288, 121, 13, "Layout/LineLength: Line is too long. [133/120]", 1373660924], + [6291, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 1401226501], + [6292, 121, 94, "Layout/LineLength: Line is too long. [214/120]", 1539225758], + [6295, 121, 27, "Layout/LineLength: Line is too long. [147/120]", 3020159378], + [6297, 121, 30, "Layout/LineLength: Line is too long. [150/120]", 4240691845], + [6301, 121, 86, "Layout/LineLength: Line is too long. [206/120]", 674553335], + [6302, 121, 7, "Layout/LineLength: Line is too long. [127/120]", 830053864], + [6303, 121, 105, "Layout/LineLength: Line is too long. [225/120]", 4163432287], + [6305, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2089555761], + [6306, 121, 7, "Layout/LineLength: Line is too long. [127/120]", 2034687276], + [6307, 121, 80, "Layout/LineLength: Line is too long. [200/120]", 3710905302], + [6310, 121, 29, "Layout/LineLength: Line is too long. [149/120]", 4204667212], + [6312, 121, 30, "Layout/LineLength: Line is too long. [150/120]", 4240691845], + [6318, 121, 76, "Layout/LineLength: Line is too long. [196/120]", 2071493433], + [6320, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2085352569], + [6321, 121, 19, "Layout/LineLength: Line is too long. [139/120]", 2853066942], + [6324, 121, 71, "Layout/LineLength: Line is too long. [191/120]", 2771467828], + [6325, 121, 3, "Layout/LineLength: Line is too long. [123/120]", 193425976], + [6326, 121, 9, "Layout/LineLength: Line is too long. [129/120]", 3025157142], + [6329, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2085352569], + [6330, 121, 86, "Layout/LineLength: Line is too long. [206/120]", 3340824101], + [6333, 121, 23, "Layout/LineLength: Line is too long. [143/120]", 3999804761], + [6335, 121, 26, "Layout/LineLength: Line is too long. [146/120]", 1999310973], + [6339, 121, 78, "Layout/LineLength: Line is too long. [198/120]", 835016333], + [6340, 121, 3, "Layout/LineLength: Line is too long. [123/120]", 193425976], + [6341, 121, 97, "Layout/LineLength: Line is too long. [217/120]", 3575893945], + [6344, 121, 3, "Layout/LineLength: Line is too long. [123/120]", 193405945], + [6345, 121, 72, "Layout/LineLength: Line is too long. [192/120]", 1755858308], + [6348, 121, 25, "Layout/LineLength: Line is too long. [145/120]", 3182252139], + [6350, 121, 26, "Layout/LineLength: Line is too long. [146/120]", 1999310973], + [6356, 121, 70, "Layout/LineLength: Line is too long. [190/120]", 3033080032], + [6358, 121, 1, "Layout/LineLength: Line is too long. [121/120]", 177549], + [6359, 121, 16, "Layout/LineLength: Line is too long. [136/120]", 2720985203], + [6362, 121, 65, "Layout/LineLength: Line is too long. [185/120]", 3233424320], + [6364, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1165873483], + [6367, 121, 1, "Layout/LineLength: Line is too long. [121/120]", 177549], + [6368, 121, 80, "Layout/LineLength: Line is too long. [200/120]", 131859703], + [6371, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 1943494546], + [6373, 121, 23, "Layout/LineLength: Line is too long. [143/120]", 4016166830], + [6377, 121, 72, "Layout/LineLength: Line is too long. [192/120]", 1350760977], + [6379, 121, 91, "Layout/LineLength: Line is too long. [211/120]", 4098706554], + [6383, 121, 66, "Layout/LineLength: Line is too long. [186/120]", 4059724765], + [6386, 121, 22, "Layout/LineLength: Line is too long. [142/120]", 1651955548], + [6388, 121, 23, "Layout/LineLength: Line is too long. [143/120]", 4016166830], + [6394, 121, 54, "Layout/LineLength: Line is too long. [174/120]", 1057495720], + [6397, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 1621971220], + [6400, 121, 49, "Layout/LineLength: Line is too long. [169/120]", 1585717593], + [6406, 121, 64, "Layout/LineLength: Line is too long. [184/120]", 2942094233], + [6409, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 2624667704], + [6411, 121, 15, "Layout/LineLength: Line is too long. [135/120]", 2317051977], + [6415, 121, 56, "Layout/LineLength: Line is too long. [176/120]", 1321610634], + [6417, 121, 75, "Layout/LineLength: Line is too long. [195/120]", 2854688831], + [6421, 121, 50, "Layout/LineLength: Line is too long. [170/120]", 4185465554], + [6424, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 1169781875], + [6426, 121, 15, "Layout/LineLength: Line is too long. [135/120]", 2317051977], + [6432, 121, 50, "Layout/LineLength: Line is too long. [170/120]", 1916545020], + [6435, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1422839111], + [6438, 121, 45, "Layout/LineLength: Line is too long. [165/120]", 910134593], + [6444, 121, 60, "Layout/LineLength: Line is too long. [180/120]", 203086561], + [6447, 121, 10, "Layout/LineLength: Line is too long. [130/120]", 2939363812], + [6449, 121, 13, "Layout/LineLength: Line is too long. [133/120]", 3155638331], + [6453, 121, 52, "Layout/LineLength: Line is too long. [172/120]", 1955758062], + [6455, 121, 71, "Layout/LineLength: Line is too long. [191/120]", 3737424359], + [6459, 121, 46, "Layout/LineLength: Line is too long. [166/120]", 3597620692], + [6462, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 2624667704], + [6464, 121, 13, "Layout/LineLength: Line is too long. [133/120]", 3155638331], + [6470, 121, 52, "Layout/LineLength: Line is too long. [172/120]", 1036052399], + [6473, 121, 7, "Layout/LineLength: Line is too long. [127/120]", 4114086530], + [6476, 121, 47, "Layout/LineLength: Line is too long. [167/120]", 1268266488], + [6482, 121, 62, "Layout/LineLength: Line is too long. [182/120]", 2791598354], + [6485, 121, 11, "Layout/LineLength: Line is too long. [131/120]", 1302589368], + [6487, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 3533902728], + [6491, 121, 54, "Layout/LineLength: Line is too long. [174/120]", 3942276897], + [6493, 121, 73, "Layout/LineLength: Line is too long. [193/120]", 1175941460], + [6497, 121, 48, "Layout/LineLength: Line is too long. [168/120]", 679697318], + [6500, 121, 13, "Layout/LineLength: Line is too long. [133/120]", 28126263], + [6502, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 3533902728], + [6503, 121, 5, "Layout/LineLength: Line is too long. [125/120]", 181895237], + [6508, 121, 52, "Layout/LineLength: Line is too long. [172/120]", 4057848448], + [6511, 121, 7, "Layout/LineLength: Line is too long. [127/120]", 4114086530], + [6514, 121, 47, "Layout/LineLength: Line is too long. [167/120]", 4067769399], + [6520, 121, 62, "Layout/LineLength: Line is too long. [182/120]", 461482909], + [6523, 121, 11, "Layout/LineLength: Line is too long. [131/120]", 1302589368], + [6525, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 3533902728], + [6529, 121, 54, "Layout/LineLength: Line is too long. [174/120]", 3561204590], + [6531, 121, 73, "Layout/LineLength: Line is too long. [193/120]", 880160795], + [6535, 121, 48, "Layout/LineLength: Line is too long. [168/120]", 1614719145], + [6538, 121, 13, "Layout/LineLength: Line is too long. [133/120]", 28126263], + [6540, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 3533902728], + [6541, 121, 5, "Layout/LineLength: Line is too long. [125/120]", 181895237], + [6588, 121, 3, "Layout/LineLength: Line is too long. [123/120]", 193432306], + [6602, 121, 64, "Layout/LineLength: Line is too long. [184/120]", 1645945966], + [6605, 121, 13, "Layout/LineLength: Line is too long. [133/120]", 3212740609], + [6608, 121, 59, "Layout/LineLength: Line is too long. [179/120]", 3982698123], + [6610, 121, 3, "Layout/LineLength: Line is too long. [123/120]", 193425997], + [6614, 121, 74, "Layout/LineLength: Line is too long. [194/120]", 2663750402], + [6617, 121, 17, "Layout/LineLength: Line is too long. [137/120]", 2420297272], + [6619, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 1164389943], + [6623, 121, 66, "Layout/LineLength: Line is too long. [186/120]", 3483121581], + [6625, 121, 85, "Layout/LineLength: Line is too long. [205/120]", 2271668600], + [6629, 121, 60, "Layout/LineLength: Line is too long. [180/120]", 804794365], + [6632, 121, 19, "Layout/LineLength: Line is too long. [139/120]", 3659367004], + [6634, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 1164389943], + [6635, 121, 11, "Layout/LineLength: Line is too long. [131/120]", 561395486], + [6640, 121, 64, "Layout/LineLength: Line is too long. [184/120]", 1251661057], + [6643, 121, 13, "Layout/LineLength: Line is too long. [133/120]", 3212740609], + [6646, 121, 59, "Layout/LineLength: Line is too long. [179/120]", 3210109508], + [6648, 121, 3, "Layout/LineLength: Line is too long. [123/120]", 193425997], + [6652, 121, 74, "Layout/LineLength: Line is too long. [194/120]", 430316685], + [6655, 121, 17, "Layout/LineLength: Line is too long. [137/120]", 2420297272], + [6657, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 1164389943], + [6661, 121, 66, "Layout/LineLength: Line is too long. [186/120]", 2428160226], + [6663, 121, 85, "Layout/LineLength: Line is too long. [205/120]", 2663295671], + [6667, 121, 60, "Layout/LineLength: Line is too long. [180/120]", 2822109938], + [6670, 121, 19, "Layout/LineLength: Line is too long. [139/120]", 3659367004], + [6672, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 1164389943], + [6673, 121, 11, "Layout/LineLength: Line is too long. [131/120]", 561395486], + [6678, 121, 62, "Layout/LineLength: Line is too long. [182/120]", 857639785], + [6681, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 3669622788], + [6684, 121, 57, "Layout/LineLength: Line is too long. [177/120]", 140453799], + [6686, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5860765], + [6690, 121, 72, "Layout/LineLength: Line is too long. [192/120]", 1650236431], + [6693, 121, 16, "Layout/LineLength: Line is too long. [136/120]", 150699323], + [6695, 121, 19, "Layout/LineLength: Line is too long. [139/120]", 50618962], + [6699, 121, 64, "Layout/LineLength: Line is too long. [184/120]", 4205571164], + [6701, 121, 83, "Layout/LineLength: Line is too long. [203/120]", 1549528021], + [6705, 121, 58, "Layout/LineLength: Line is too long. [178/120]", 1325488145], + [6708, 121, 18, "Layout/LineLength: Line is too long. [138/120]", 1510711065], + [6710, 121, 19, "Layout/LineLength: Line is too long. [139/120]", 50618962], + [6716, 121, 66, "Layout/LineLength: Line is too long. [186/120]", 3043205563], + [6719, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 2381137493], + [6722, 121, 61, "Layout/LineLength: Line is too long. [181/120]", 2200345195], + [6724, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2087926498], + [6728, 121, 76, "Layout/LineLength: Line is too long. [196/120]", 1082269527], + [6731, 121, 18, "Layout/LineLength: Line is too long. [138/120]", 1510711065], + [6733, 121, 21, "Layout/LineLength: Line is too long. [141/120]", 1104064739], + [6737, 121, 68, "Layout/LineLength: Line is too long. [188/120]", 1652941658], + [6739, 121, 87, "Layout/LineLength: Line is too long. [207/120]", 1440323819], + [6743, 121, 62, "Layout/LineLength: Line is too long. [182/120]", 802896260], + [6746, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 1943494546], + [6748, 121, 21, "Layout/LineLength: Line is too long. [141/120]", 1104064739], + [6754, 121, 82, "Layout/LineLength: Line is too long. [202/120]", 788730815], + [6756, 121, 7, "Layout/LineLength: Line is too long. [127/120]", 2034687276], + [6757, 121, 22, "Layout/LineLength: Line is too long. [142/120]", 4226330106], + [6760, 121, 77, "Layout/LineLength: Line is too long. [197/120]", 2414796320], + [6761, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1165873470], + [6762, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 3090817832], + [6765, 121, 7, "Layout/LineLength: Line is too long. [127/120]", 2034687276], + [6766, 121, 92, "Layout/LineLength: Line is too long. [212/120]", 2839148677], + [6769, 121, 26, "Layout/LineLength: Line is too long. [146/120]", 2393983240], + [6771, 121, 29, "Layout/LineLength: Line is too long. [149/120]", 2581936864], + [6775, 121, 84, "Layout/LineLength: Line is too long. [204/120]", 3923254945], + [6776, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1165873470], + [6777, 121, 103, "Layout/LineLength: Line is too long. [223/120]", 580639726], + [6779, 121, 3, "Layout/LineLength: Line is too long. [123/120]", 193419246], + [6780, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1756764194], + [6781, 121, 78, "Layout/LineLength: Line is too long. [198/120]", 3202758044], + [6784, 121, 28, "Layout/LineLength: Line is too long. [148/120]", 912651721], + [6786, 121, 29, "Layout/LineLength: Line is too long. [149/120]", 2581936864], + [6790, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1164293389], + [6803, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5860840], + [6804, 121, 88, "Layout/LineLength: Line is too long. [208/120]", 574552570], + [6806, 121, 10, "Layout/LineLength: Line is too long. [130/120]", 3845073641], + [6807, 121, 25, "Layout/LineLength: Line is too long. [145/120]", 543375177], + [6810, 121, 83, "Layout/LineLength: Line is too long. [203/120]", 222410330], + [6811, 121, 9, "Layout/LineLength: Line is too long. [129/120]", 3025157219], + [6812, 121, 15, "Layout/LineLength: Line is too long. [135/120]", 1904561434], + [6815, 121, 10, "Layout/LineLength: Line is too long. [130/120]", 489872984], + [6816, 121, 98, "Layout/LineLength: Line is too long. [218/120]", 97325617], + [6819, 121, 29, "Layout/LineLength: Line is too long. [149/120]", 4204667212], + [6821, 121, 32, "Layout/LineLength: Line is too long. [152/120]", 4062673070], + [6825, 121, 90, "Layout/LineLength: Line is too long. [210/120]", 1451915960], + [6826, 121, 9, "Layout/LineLength: Line is too long. [129/120]", 3025157219], + [6827, 121, 109, "Layout/LineLength: Line is too long. [229/120]", 4200529758], + [6829, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1497831350], + [6830, 121, 9, "Layout/LineLength: Line is too long. [129/120]", 4214367244], + [6831, 121, 84, "Layout/LineLength: Line is too long. [204/120]", 399603517], + [6834, 121, 31, "Layout/LineLength: Line is too long. [151/120]", 3423548875], + [6836, 121, 32, "Layout/LineLength: Line is too long. [152/120]", 4062673070], + [6840, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 3279830097], + [6852, 121, 10, "Layout/LineLength: Line is too long. [130/120]", 659167322], + [6864, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2087926423], + [6865, 121, 57, "Layout/LineLength: Line is too long. [177/120]", 3300294193], + [6867, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 3172850966], + [6868, 121, 27, "Layout/LineLength: Line is too long. [147/120]", 2396187736], + [6871, 121, 87, "Layout/LineLength: Line is too long. [207/120]", 1991888901], + [6872, 121, 11, "Layout/LineLength: Line is too long. [131/120]", 1954380402], + [6873, 121, 17, "Layout/LineLength: Line is too long. [137/120]", 2589970962], + [6876, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 42340644], + [6877, 121, 67, "Layout/LineLength: Line is too long. [187/120]", 479235996], + [6880, 121, 31, "Layout/LineLength: Line is too long. [151/120]", 3423548875], + [6882, 121, 34, "Layout/LineLength: Line is too long. [154/120]", 1462541970], + [6886, 121, 94, "Layout/LineLength: Line is too long. [214/120]", 1373978781], + [6887, 121, 11, "Layout/LineLength: Line is too long. [131/120]", 1954380402], + [6888, 121, 78, "Layout/LineLength: Line is too long. [198/120]", 280641011], + [6890, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 1664110553], + [6891, 121, 11, "Layout/LineLength: Line is too long. [131/120]", 1009650381], + [6892, 121, 88, "Layout/LineLength: Line is too long. [208/120]", 909329343], + [6895, 121, 33, "Layout/LineLength: Line is too long. [153/120]", 2977589831], + [6897, 121, 34, "Layout/LineLength: Line is too long. [154/120]", 1462541970], + [6902, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1165873470], + [6903, 121, 61, "Layout/LineLength: Line is too long. [181/120]", 1904101094], + [6905, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 2229256255], + [6906, 121, 29, "Layout/LineLength: Line is too long. [149/120]", 1839090017], + [6909, 121, 91, "Layout/LineLength: Line is too long. [211/120]", 4260980907], + [6910, 121, 13, "Layout/LineLength: Line is too long. [133/120]", 4253118453], + [6911, 121, 19, "Layout/LineLength: Line is too long. [139/120]", 1536690221], + [6913, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5861152], + [6914, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 209824656], + [6915, 121, 71, "Layout/LineLength: Line is too long. [191/120]", 1530496074], + [6918, 121, 33, "Layout/LineLength: Line is too long. [153/120]", 2977589831], + [6920, 121, 36, "Layout/LineLength: Line is too long. [156/120]", 3261436902], + [6924, 121, 98, "Layout/LineLength: Line is too long. [218/120]", 3762694917], + [6925, 121, 13, "Layout/LineLength: Line is too long. [133/120]", 4253118453], + [6926, 121, 82, "Layout/LineLength: Line is too long. [202/120]", 3196230010], + [6928, 121, 10, "Layout/LineLength: Line is too long. [130/120]", 3165598659], + [6929, 121, 13, "Layout/LineLength: Line is too long. [133/120]", 4264469493], + [6930, 121, 92, "Layout/LineLength: Line is too long. [212/120]", 3140690958], + [6933, 121, 35, "Layout/LineLength: Line is too long. [155/120]", 2999583208], + [6935, 121, 36, "Layout/LineLength: Line is too long. [156/120]", 3261436902], + [6941, 121, 54, "Layout/LineLength: Line is too long. [174/120]", 326070599], + [6944, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 1621971220], + [6947, 121, 49, "Layout/LineLength: Line is too long. [169/120]", 1689000214], + [6953, 121, 64, "Layout/LineLength: Line is too long. [184/120]", 2459904022], + [6956, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 2624667704], + [6958, 121, 15, "Layout/LineLength: Line is too long. [135/120]", 2317051977], + [6962, 121, 56, "Layout/LineLength: Line is too long. [176/120]", 2842872837], + [6964, 121, 75, "Layout/LineLength: Line is too long. [195/120]", 423884656], + [6968, 121, 50, "Layout/LineLength: Line is too long. [170/120]", 2673769885], + [6971, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 1169781875], + [6973, 121, 15, "Layout/LineLength: Line is too long. [135/120]", 2317051977], + [6974, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 2126253911], + [6990, 121, 66, "Layout/LineLength: Line is too long. [186/120]", 2388292564], + [6993, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 2381137493], + [6996, 121, 61, "Layout/LineLength: Line is too long. [181/120]", 1136762660], + [6998, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2087926498], + [7002, 121, 76, "Layout/LineLength: Line is too long. [196/120]", 2555581016], + [7005, 121, 18, "Layout/LineLength: Line is too long. [138/120]", 1510711065], + [7007, 121, 21, "Layout/LineLength: Line is too long. [141/120]", 1104064739], + [7011, 121, 68, "Layout/LineLength: Line is too long. [188/120]", 1986812885], + [7013, 121, 87, "Layout/LineLength: Line is too long. [207/120]", 1864036132], + [7017, 121, 62, "Layout/LineLength: Line is too long. [182/120]", 3590180043], + [7020, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 1943494546], + [7022, 121, 21, "Layout/LineLength: Line is too long. [141/120]", 1104064739], + [7023, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 2382712010], + [7033, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1791534645], + [7038, 121, 50, "Layout/LineLength: Line is too long. [170/120]", 2403815412], + [7041, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1422839111], + [7044, 121, 45, "Layout/LineLength: Line is too long. [165/120]", 4046048864], + [7050, 121, 60, "Layout/LineLength: Line is too long. [180/120]", 3472955113], + [7053, 121, 10, "Layout/LineLength: Line is too long. [130/120]", 2939363812], + [7055, 121, 13, "Layout/LineLength: Line is too long. [133/120]", 3155638331], + [7059, 121, 52, "Layout/LineLength: Line is too long. [172/120]", 3911469720], + [7061, 121, 71, "Layout/LineLength: Line is too long. [191/120]", 272433263], + [7065, 121, 46, "Layout/LineLength: Line is too long. [166/120]", 634420444], + [7068, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 2624667704], + [7070, 121, 13, "Layout/LineLength: Line is too long. [133/120]", 3155638331], + [7071, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2088324682], + [7084, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2087906711], + [7096, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 2135380894], + [7105, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 2102137893], + [7107, 121, 25, "Layout/LineLength: Line is too long. [145/120]", 4280757685], + [7111, 121, 10, "Layout/LineLength: Line is too long. [130/120]", 161599970], + [7145, 121, 7, "Layout/LineLength: Line is too long. [127/120]", 830053789], + [7180, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 2188407955], + [7191, 121, 19, "Layout/LineLength: Line is too long. [139/120]", 3692322233], + [7195, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2087557694], + [7218, 121, 10, "Layout/LineLength: Line is too long. [130/120]", 3197512522], + [7227, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5858840], + [7229, 121, 21, "Layout/LineLength: Line is too long. [141/120]", 85298067], + [7286, 121, 3, "Layout/LineLength: Line is too long. [123/120]", 193418403], + [7292, 121, 3, "Layout/LineLength: Line is too long. [123/120]", 193418403], + [7315, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2087432474], + [7327, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 2361949763], + [7336, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 2102137893], + [7338, 121, 25, "Layout/LineLength: Line is too long. [145/120]", 581045160], + [7342, 121, 10, "Layout/LineLength: Line is too long. [130/120]", 4235011647], + [7361, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1898147766], + [7367, 121, 1, "Layout/LineLength: Line is too long. [121/120]", 177560], + [7373, 121, 16, "Layout/LineLength: Line is too long. [136/120]", 1310140439], + [7382, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 681770239], + [7384, 121, 27, "Layout/LineLength: Line is too long. [147/120]", 3821940657], + [7388, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5862609], + [7408, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5861292], + [7420, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 2354124424], + [7429, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2087922021], + [7431, 121, 23, "Layout/LineLength: Line is too long. [143/120]", 3921370162], + [8024, 121, 24, "Layout/LineLength: Line is too long. [144/120]", 4083054536], + [8052, 121, 24, "Layout/LineLength: Line is too long. [144/120]", 4083054536], + [8081, 121, 24, "Layout/LineLength: Line is too long. [144/120]", 4083054536], + [8139, 121, 42, "Layout/LineLength: Line is too long. [162/120]", 632953222], + [8168, 121, 34, "Layout/LineLength: Line is too long. [154/120]", 732995265], + [8218, 121, 30, "Layout/LineLength: Line is too long. [150/120]", 1886249927], + [8380, 121, 7, "Layout/LineLength: Line is too long. [127/120]", 578751979], + [8381, 121, 11, "Layout/LineLength: Line is too long. [131/120]", 3803540269], + [8390, 121, 17, "Layout/LineLength: Line is too long. [137/120]", 2238403955], + [8391, 121, 25, "Layout/LineLength: Line is too long. [145/120]", 1028441932], + [8392, 121, 29, "Layout/LineLength: Line is too long. [149/120]", 1975950909], + [8447, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1244043798] + ], + "spec/integration/freeze_node_edge_cases_spec.rb:3416491031": [ + [6, 1, 28959, "Metrics/BlockLength: Block has too many lines. [663/25]", 3473768018], + [7, 3, 2985, "Metrics/BlockLength: Block has too many lines. [57/25]", 436154415], + [8, 5, 2934, "Metrics/BlockLength: Block has too many lines. [55/25]", 1963918102], + [78, 3, 6091, "Metrics/BlockLength: Block has too many lines. [136/25]", 232153494], + [98, 5, 3053, "Metrics/BlockLength: Block has too many lines. [69/25]", 1442974101], + [202, 5, 1691, "Metrics/BlockLength: Block has too many lines. [29/25]", 985654389], + [241, 3, 8515, "Metrics/BlockLength: Block has too many lines. [176/25]", 2776676526], + [473, 3, 2024, "Metrics/BlockLength: Block has too many lines. [55/25]", 1048101963], + [474, 5, 890, "Metrics/BlockLength: Block has too many lines. [26/25]", 753961540], + [543, 3, 4511, "Metrics/BlockLength: Block has too many lines. [116/25]", 1227615145], + [693, 3, 1660, "Metrics/BlockLength: Block has too many lines. [43/25]", 1881888061], + [694, 5, 1107, "Metrics/BlockLength: Block has too many lines. [26/25]", 368095693] + ], + "spec/integration/gem_family_section_merge_spec.rb:1744383089": [ + [164, 121, 27, "Layout/LineLength: Line is too long. [147/120]", 93655697] + ], + "spec/integration/integration_spec.rb:2239247043": [ + [14, 1, 4488, "Metrics/BlockLength: Block has too many lines. [88/25]", 206207480], + [15, 3, 3267, "Metrics/BlockLength: Block has too many lines. [62/25]", 1323899085], + [40, 5, 2263, "Metrics/BlockLength: Block has too many lines. [48/25]", 3172595581] + ], + "spec/integration/link_reference_preservation_spec.rb:3764298162": [ + [6, 1, 2646, "Metrics/BlockLength: Block has too many lines. [48/25]", 3396410609], + [19, 3, 2058, "Metrics/BlockLength: Block has too many lines. [33/25]", 163363949] + ], + "spec/integration/markly_merge_spec.rb:3076950975": [ + [3, 1, 22886, "Metrics/BlockLength: Block has too many lines. [670/25]", 1408138744], + [62, 3, 7192, "Metrics/BlockLength: Block has too many lines. [189/25]", 1890889324], + [63, 5, 1678, "Metrics/BlockLength: Block has too many lines. [41/25]", 2587582896], + [115, 5, 1808, "Metrics/BlockLength: Block has too many lines. [48/25]", 3381172795], + [147, 46, 21, "Style/StringConcatenation: Prefer string interpolation to string concatenation.", 451071547], + [171, 5, 1134, "Metrics/BlockLength: Block has too many lines. [30/25]", 2526618199], + [220, 5, 1335, "Metrics/BlockLength: Block has too many lines. [32/25]", 2790596215], + [311, 3, 2008, "Metrics/BlockLength: Block has too many lines. [66/25]", 2640155627], + [394, 3, 1052, "Metrics/BlockLength: Block has too many lines. [27/25]", 3988836255], + [440, 3, 2950, "Metrics/BlockLength: Block has too many lines. [89/25]", 961031348], + [441, 5, 1352, "Metrics/BlockLength: Block has too many lines. [37/25]", 1952365669], + [495, 5, 1550, "Metrics/BlockLength: Block has too many lines. [48/25]", 2400197001], + [561, 3, 1665, "Metrics/BlockLength: Block has too many lines. [52/25]", 3884776329], + [650, 3, 1919, "Metrics/BlockLength: Block has too many lines. [57/25]", 2594646583], + [725, 3, 1644, "Metrics/BlockLength: Block has too many lines. [45/25]", 2348710811], + [791, 3, 1600, "Metrics/BlockLength: Block has too many lines. [46/25]", 3683503747] + ], + "spec/integration/partial_template_merger_table_merge_spec.rb:3504046892": [ + [7, 1, 7402, "Metrics/BlockLength: Block has too many lines. [164/25]", 3368892126], + [9, 3, 2986, "Metrics/BlockLength: Block has too many lines. [67/25]", 2267114449], + [65, 5, 1359, "Metrics/BlockLength: Block has too many lines. [28/25]", 3145143002], + [102, 3, 997, "Metrics/BlockLength: Block has too many lines. [26/25]", 3156068215], + [147, 3, 3009, "Metrics/BlockLength: Block has too many lines. [65/25]", 994160212], + [202, 5, 1401, "Metrics/BlockLength: Block has too many lines. [28/25]", 3038951618] + ], + "spec/integration/table_formatting_preservation_spec.rb:3943985446": [ + [6, 1, 3086, "Metrics/BlockLength: Block has too many lines. [56/25]", 2210897849], + [19, 3, 2374, "Metrics/BlockLength: Block has too many lines. [40/25]", 668961519], + [33, 5, 1847, "Metrics/BlockLength: Block has too many lines. [28/25]", 3433318963] + ], + "spec/integration/text_merge_spec.rb:884566200": [ + [6, 1, 7747, "Metrics/BlockLength: Block has too many lines. [204/25]", 2372984305], + [60, 3, 1113, "Metrics/BlockLength: Block has too many lines. [34/25]", 3399970957], + [67, 5, 860, "Metrics/BlockLength: Block has too many lines. [27/25]", 2337191560], + [103, 3, 916, "Metrics/BlockLength: Block has too many lines. [28/25]", 4082963348], + [149, 3, 3001, "Metrics/BlockLength: Block has too many lines. [74/25]", 7776854] + ], + "spec/support/fictive_language_harness.rb:1770581700": [ + [85, 7, 733, "Metrics/AbcSize: Assignment Branch Condition size for `extract_comments` is too high. [<5, 16, 5> 17.49/17]", 1127096515], + [85, 7, 733, "Metrics/MethodLength: Method has too many lines. [22/10]", 1127096515], + [117, 21, 129, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 681912759], + [182, 7, 1084, "Metrics/AbcSize: Assignment Branch Condition size for `parse_statements` is too high. [<9, 28, 7> 30.23/17]", 3123785685], + [182, 7, 1084, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `parse_statements` is too high. [8/7]", 3123785685], + [182, 7, 1084, "Metrics/MethodLength: Method has too many lines. [24/10]", 3123785685], + [233, 5, 9879, "Metrics/ClassLength: Class has too many lines. [228/100]", 3231256134], + [236, 21, 208, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 2970487173], + [257, 7, 1981, "Metrics/AbcSize: Assignment Branch Condition size for `resolve_batch` is too high. [<16, 32, 4> 36/17]", 4125392918], + [257, 7, 1981, "Metrics/MethodLength: Method has too many lines. [42/10]", 4125392918], + [342, 7, 778, "Metrics/MethodLength: Method has too many lines. [18/10]", 4189873983], + [364, 7, 844, "Metrics/MethodLength: Method has too many lines. [19/10]", 526186683], + [449, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2087956942], + [464, 7, 1065, "Metrics/AbcSize: Assignment Branch Condition size for `collapse_template_preamble_prefix_region` is too high. [<6, 24, 11> 27.07/17]", 2332280467], + [464, 7, 1065, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `collapse_template_preamble_prefix_region` is too high. [10/7]", 2332280467], + [464, 7, 1065, "Metrics/MethodLength: Method has too many lines. [20/10]", 2332280467], + [464, 7, 1065, "Metrics/PerceivedComplexity: Perceived complexity for `collapse_template_preamble_prefix_region` is too high. [10/8]", 2332280467] + ], + "spec/support/testable_node.rb:1110514732": [ + [10, 7, 573, "Metrics/MethodLength: Method has too many lines. [12/10]", 798847435], + [10, 22, 226, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [10/5]", 2319398994], + [40, 7, 642, "Metrics/AbcSize: Assignment Branch Condition size for `initialize` is too high. [<11, 14, 6> 18.79/17]", 2249578474], + [40, 21, 131, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [10/5]", 1786967686] + ] +} diff --git a/gems/bash-merge/.rubocop_gradual.lock b/gems/bash-merge/.rubocop_gradual.lock index 6e1ef9a7d..2c032ec6e 100644 --- a/gems/bash-merge/.rubocop_gradual.lock +++ b/gems/bash-merge/.rubocop_gradual.lock @@ -1,5 +1,5 @@ { - ".simplecov:3524239918": [ + ".simplecov:1611471541": [ [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] ], "Rakefile:521981965": [ diff --git a/gems/bash-merge/.simplecov b/gems/bash-merge/.simplecov index 899478d55..a1fbcf6e3 100644 --- a/gems/bash-merge/.simplecov +++ b/gems/bash-merge/.simplecov @@ -10,5 +10,5 @@ # If the values for minimum coverage need to change, they should be changed both there, # and in 2 places in .github/workflows/coverage.yml. SimpleCov.configure do - cover "lib/**/*.rb", "lib/**/*.rake", "exe/*.rb" + cover 'lib/**/*.rb', 'lib/**/*.rake', 'exe/*.rb' end diff --git a/gems/bash-merge/Gemfile b/gems/bash-merge/Gemfile index 94d3c1fce..c8860343f 100644 --- a/gems/bash-merge/Gemfile +++ b/gems/bash-merge/Gemfile @@ -6,7 +6,7 @@ # kettle-jem will then preserve content between those markers across template runs. # kettle-jem:unfreeze -source "https://gem.coop" +source 'https://gem.coop' git_source(:codeberg) { |repo_name| "https://codeberg.org/#{repo_name}" } git_source(:gitlab) { |repo_name| "https://gitlab.com/#{repo_name}" } @@ -19,58 +19,54 @@ git_source(:gitlab) { |repo_name| "https://gitlab.com/#{repo_name}" } gemspec # Local workspace dependency wiring for *_local.gemfile overrides -nomono_requirements = ["~> 1.0", ">= 1.0.8"] -gem "nomono", *nomono_requirements, require: false # ruby >= 2.2 +nomono_requirements = ['~> 1.0', '>= 1.0.8'] +gem 'nomono', *nomono_requirements, require: false # ruby >= 2.2 # Direct sibling dependencies (env-switched via STRUCTUREDMERGE_DEV) direct_sibling_gems = %w[ ast-merge tree_haver ] -direct_sibling_dev = ENV.fetch("STRUCTUREDMERGE_DEV", "") +direct_sibling_dev = ENV.fetch('STRUCTUREDMERGE_DEV', '') direct_sibling_local = !direct_sibling_dev.empty? && !%w[false 0 no off].include?(direct_sibling_dev.downcase) -direct_sibling_templating = ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? +direct_sibling_templating = ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero?) - direct_sibling_dev_was_set = ENV.key?("STRUCTUREDMERGE_DEV") - direct_sibling_dev_original = ENV.fetch("STRUCTUREDMERGE_DEV", nil) + (direct_sibling_local || + ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) + direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') + direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) begin nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path("Gemfile.lock", __dir__) + nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == "nomono" } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - if nomono_locked - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] - end - end - Kernel.send(:gem, "nomono", *nomono_activation_requirements) - require "nomono/bundler" - if direct_sibling_templating && !direct_sibling_local - ENV["STRUCTUREDMERGE_DEV"] = File.expand_path("..", __dir__) + Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked end + Kernel.send(:gem, 'nomono', *nomono_activation_requirements) + require 'nomono/bundler' + ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local eval_nomono_gems( gems: direct_sibling_gems, - prefix: "STRUCTUREDMERGE", - path_env: "STRUCTUREDMERGE_DEV", - root: ["src", "my", "structuredmerge"] + prefix: 'STRUCTUREDMERGE', + path_env: 'STRUCTUREDMERGE_DEV', + root: %w[src my structuredmerge] ) rescue LoadError - warn "Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies." + warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' ensure if direct_sibling_templating && !direct_sibling_local if direct_sibling_dev_was_set - ENV["STRUCTUREDMERGE_DEV"] = direct_sibling_dev_original + ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original else - ENV.delete("STRUCTUREDMERGE_DEV") + ENV.delete('STRUCTUREDMERGE_DEV') end end end @@ -157,28 +153,28 @@ if direct_sibling_gems.any? && end # Use released TSLP with the Ruby ABI platform-gem fix. -gem "tree_sitter_language_pack", "~> 1.13", ">= 1.13.3" +gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' # Templating (env-switched: STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local paths) -eval_gemfile "gemfiles/modular/templating.gemfile" if ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? +eval_gemfile 'gemfiles/modular/templating.gemfile' if ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? # Debugging -eval_gemfile "gemfiles/modular/debug.gemfile" +eval_gemfile 'gemfiles/modular/debug.gemfile' # Code Coverage (env-switched: KETTLE_DEV_DEV=true for local paths) -eval_gemfile "gemfiles/modular/coverage.gemfile" +eval_gemfile 'gemfiles/modular/coverage.gemfile' # Linting -eval_gemfile "gemfiles/modular/style.gemfile" +eval_gemfile 'gemfiles/modular/style.gemfile' # Documentation -eval_gemfile "gemfiles/modular/documentation.gemfile" +eval_gemfile 'gemfiles/modular/documentation.gemfile' # Optional -eval_gemfile "gemfiles/modular/optional.gemfile" +eval_gemfile 'gemfiles/modular/optional.gemfile' ### Std Lib Extracted Gems -eval_gemfile "gemfiles/modular/x_std_libs.gemfile" +eval_gemfile 'gemfiles/modular/x_std_libs.gemfile' # See unlocked_deps appraisal for more details on irb inclusion -gem "irb", "~> 1.17" # ruby >= 2.7 +gem 'irb', '~> 1.17' # ruby >= 2.7 diff --git a/gems/bash-merge/Gemfile.lock b/gems/bash-merge/Gemfile.lock index 68b3d3074..0c8bcdbca 100644 --- a/gems/bash-merge/Gemfile.lock +++ b/gems/bash-merge/Gemfile.lock @@ -7,39 +7,7 @@ PATH version_gem (~> 1.1, >= 1.1.14) PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly - specs: - ast-crispr-markdown-markly (7.1.0) - ast-crispr (= 7.1.0) - markly-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism - specs: - ast-crispr-ruby-prism (7.1.0) - ast-crispr (= 7.1.0) - prism-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr - specs: - ast-crispr (7.1.0) - ast-merge (= 7.1.0) - service_actor (~> 3.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git - specs: - ast-merge-git (7.1.0) - ast-merge (= 7.1.0) - json-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/ast-merge specs: ast-merge (7.1.0) benchmark @@ -48,194 +16,7 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template - specs: - ast-template (7.1.0) - ast-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge - specs: - binary-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge - specs: - citrus-toml-merge (7.1.0) - toml-merge (= 7.1.0) - toml-rb (~> 4.1) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge - specs: - commonmarker-merge (7.1.0) - commonmarker (~> 2.2) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge - specs: - dotenv-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge - specs: - go-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge - specs: - json-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem - specs: - kettle-jem (7.1.0) - addressable (>= 2.8, < 3) - ast-crispr-markdown-markly (= 7.1.0) - ast-crispr-ruby-prism (= 7.1.0) - ast-merge (= 7.1.0) - bash-merge (= 7.1.0) - citrus-toml-merge (= 7.1.0) - commonmarker-merge (= 7.1.0) - dotenv-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-dev (~> 2.3, >= 2.3.5) - kettle-rb (~> 0.1, >= 0.1.4) - kramdown-merge (= 7.1.0) - markdown-merge (= 7.1.0) - markly-merge (= 7.1.0) - prism-merge (= 7.1.0) - psych-merge (= 7.1.0) - rbs (>= 3.10) - rbs-merge (= 7.1.0) - ruby-merge (= 7.1.0) - token-resolver (~> 2.0, >= 2.0.4) - toml-merge (= 7.1.0) - toml-rb (~> 4.2) - tree_haver (= 7.1.0) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge - specs: - kramdown-merge (7.1.0) - kramdown (~> 2.5) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge - specs: - markdown-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge - specs: - markly-merge (7.1.0) - markdown-merge (= 7.1.0) - markly (~> 0.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge - specs: - parslet-toml-merge (7.1.0) - toml (~> 0.3) - toml-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge - specs: - plain-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge - specs: - prism-merge (7.1.0) - prism (~> 1.6) - ruby-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge - specs: - psych-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge - specs: - rbs-merge (7.1.0) - ast-merge (= 7.1.0) - rbs (>= 3.10) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge - specs: - ruby-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge - specs: - rust-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb - specs: - smorg-rb (7.1.0) - ast-merge (= 7.1.0) - ast-merge-git (= 7.1.0) - diff-lcs (~> 1.5) - go-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-jem (= 7.1.0) - markly-merge (= 7.1.0) - plain-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge - specs: - toml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/tree_haver specs: tree_haver (7.1.0) citrus (~> 3.0) @@ -243,29 +24,6 @@ PATH tree_sitter_language_pack (>= 1.13.2, < 2.0) version_gem (~> 1.1, >= 1.1.9) -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge - specs: - typescript-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge - specs: - yaml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge - specs: - zip-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - GEM remote: https://gem.coop/ specs: @@ -290,7 +48,6 @@ GEM cgi (0.5.2) citrus (3.0.2) cmdparse (3.0.7) - commonmarker (2.9.0-x86_64-linux) concurrent-ruby (1.3.8) date (3.5.1) debug (1.11.1) @@ -348,13 +105,11 @@ GEM rdoc (>= 4.0.0) reline (>= 0.4.2) json (2.21.1) - kettle-dev (2.3.8) + kettle-dev (2.3.9) emoji_regex (>= 15.0) kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) - kettle-drift (1.0.6) - version_gem (~> 1.1, >= 1.1.14) kettle-rb (0.1.5) kettle-soup-cover (3.0.4) kettle-wash (~> 0.1, >= 0.1.0) @@ -383,7 +138,6 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) - markly (0.16.0) mutex_m (0.3.0) nokogiri (1.19.4-aarch64-linux-gnu) racc (~> 1.4) @@ -546,8 +300,6 @@ GEM ruby-progressbar (1.13.0) ruby_engine (2.0.3) ruby_version (1.0.3) - service_actor (3.9.4) - zeitwerk (>= 1.0) silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) @@ -602,11 +354,6 @@ GEM token-resolver (2.0.5) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.14) - toml (0.3.0) - parslet (>= 1.8.0, < 3.0.0) - toml-rb (4.2.0) - citrus (~> 3.0, > 3.0) - racc (~> 1.7) tree_sitter_language_pack (1.13.3-aarch64-linux) sorbet-runtime (~> 0.5) tree_sitter_language_pack (1.13.3-arm64-darwin) @@ -661,46 +408,25 @@ DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.2, >= 3.2.0) appraisal2-rubocop (~> 1.0, >= 1.0.0) - ast-crispr! - ast-crispr-markdown-markly! - ast-crispr-ruby-prism! ast-merge! - ast-merge-git! - ast-template! bash-merge! benchmark (~> 0.5, >= 0.5.0) - binary-merge! bundler-audit (~> 0.9.3) cgi (~> 0.5) - citrus-toml-merge! - commonmarker-merge! debug (>= 1.1) - dotenv-merge! erb (~> 6.0, >= 6.0.6) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.4) - go-merge! irb (~> 1.17) - json-merge! kettle-dev (~> 2.3, >= 2.3.7) - kettle-drift (~> 1.0, >= 1.0.6) - kettle-jem! kettle-soup-cover (~> 3.0, >= 3.0.3) kettle-test (~> 2.0, >= 2.0.12) kramdown (~> 2.5, >= 2.5.2) - kramdown-merge! kramdown-parser-gfm (~> 1.1) - markdown-merge! - markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) - parslet-toml-merge! - plain-merge! - prism-merge! - psych-merge! rake (~> 13.0) rbs (>= 3.0) - rbs-merge! rdoc (~> 6.11) reek (~> 6.5, >= 6.5.0) require_bench (~> 1.0, >= 1.0.4) @@ -711,28 +437,21 @@ DEPENDENCIES rubocop-on-rbs (~> 2.0, >= 2.0.0) rubocop-packaging (~> 0.6, >= 0.6.0) rubocop-ruby3_2 (~> 3.0, >= 3.0.6) - ruby-merge! ruby-progressbar (~> 1.13) - rust-merge! - smorg-rb! standard (~> 1.56, >= 1.56.0) stone_checksums (~> 1.0, >= 1.0.6) stringio (>= 3.0) - toml-merge! tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) turbo_tests2 (~> 3.2, >= 3.2.0) - typescript-merge! webrick (~> 1.9) yaml-converter (~> 0.2, >= 0.2.3) - yaml-merge! yard (~> 0.9, >= 0.9.45) yard-fence (~> 0.9, >= 0.9.6) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) yard-timekeeper (~> 0.2, >= 0.2.4) yard-yaml (~> 0.2, >= 0.2.3) - zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af @@ -740,31 +459,21 @@ CHECKSUMS appraisal2 (3.2.0) sha256=ccd0b767ac4060cd7af6d16747459b6990f49c39c7b4fb1f7d1146b1e97c492f appraisal2-rubocop (1.0.0) sha256=b71410fbb014befda5340605a605b7f6f3f012739baf0acc5b4351b592c3258d ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 - ast-crispr (7.1.0) - ast-crispr-markdown-markly (7.1.0) - ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) - ast-merge-git (7.1.0) - ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd - binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 - citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 - commonmarker (2.9.0-x86_64-linux) - commonmarker-merge (7.1.0) concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 - dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -777,28 +486,20 @@ CHECKSUMS gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f - go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 - json-merge (7.1.0) - kettle-dev (2.3.8) sha256=9d716ff21c660a730cb4e8d41e2e2f0630a28167a354b6e2924e242102aef72c - kettle-drift (1.0.6) - kettle-jem (7.1.0) + kettle-dev (2.3.9) kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f kettle-soup-cover (3.0.4) kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa - kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 - markdown-merge (7.1.0) - markly (0.16.0) - markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-aarch64-linux-gnu) sha256=1269fb644a6de405057a53dd5c762b1209b43ca7424f839454d3dbc677c31a8f nokogiri (1.19.4-aarch64-linux-musl) sha256=35c65b9ce72b3bb03207bdbe7067915019dc18c1b9b59139684bd6690fdd01af @@ -812,20 +513,15 @@ CHECKSUMS parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 - parslet-toml-merge (7.1.0) - plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 - prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 - psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 - rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb @@ -860,19 +556,15 @@ CHECKSUMS rubocop-rspec_rails (2.32.0) sha256=4a0d641c72f6ebb957534f539d9d0a62c47abd8ce0d0aeee1ef4701e892a9100 rubocop-ruby3_2 (3.0.7) sha256=f53dd6d286fb05186214fc6ec116783e7f837030918e8931c05de773e98f8466 rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 - ruby-merge (7.1.0) ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 - rust-merge (7.1.0) - service_actor (3.9.4) silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed - smorg-rb (7.1.0) sorbet-runtime (0.6.13351) sha256=f8fee17c6e3edf835dc6823d26afb9a7c8969c6710d1fabe2fb43f4e0c15c64f standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b @@ -887,22 +579,17 @@ CHECKSUMS timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.5) sha256=b852f924287ffb58a440856e862b056c8ad97e74b4b2526cee43e0771f40c25c - toml (0.3.0) - toml-merge (7.1.0) - toml-rb (4.2.0) tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-aarch64-linux) sha256=55ffc7c87868cb45658338363d9eba51b4a8b0259aa88e4de368d2bd1d52fea4 tree_sitter_language_pack (1.13.3-arm64-darwin) sha256=bc2498db605f212a1dbd2465ed3f65190d7da786f6ed5d30fcf958121aeb4a5c tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 - typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 webrick (1.9.2) sha256=beb4a15fc474defed24a3bda4ffd88a490d517c9e4e6118c3edce59e45864131 yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 - yaml-merge (7.1.0) yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd @@ -910,7 +597,6 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 - zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH diff --git a/gems/bash-merge/README.md b/gems/bash-merge/README.md index b2443fceb..1f1c39220 100644 --- a/gems/bash-merge/README.md +++ b/gems/bash-merge/README.md @@ -391,7 +391,6 @@ If none of the available licenses suit your use case, please [contact us](mailto [🖐contrib-rocks]: https://contrib.rocks [🖐contributors]: https://github.com/structuredmerge/structuredmerge-ruby/graphs/contributors [🖐contributors-img]: https://contrib.rocks/image?repo=structuredmerge/structuredmerge-ruby -[🚎contributors-gl]: https://gitlab.com/structuredmerge/structuredmerge-ruby/-/graphs/main [🪇conduct]: https://github.com/structuredmerge/structuredmerge-ruby/blob/main/CODE_OF_CONDUCT.md [🪇conduct-img]: https://img.shields.io/badge/Contributor_Covenant-2.1-259D6C.svg [📌pvc]: http://guides.rubygems.org/patterns/#pessimistic-version-constraint diff --git a/gems/bash-merge/Rakefile b/gems/bash-merge/Rakefile index 3301f1a7e..056589299 100644 --- a/gems/bash-merge/Rakefile +++ b/gems/bash-merge/Rakefile @@ -130,23 +130,23 @@ end ### DUPLICATE DRIFT TASKS begin - require "kettle/drift" + require 'kettle/drift' Kettle::Drift.install_tasks rescue LoadError - desc("(stub) kettle:drift:check is unavailable") - task("kettle:drift:check") do + desc('(stub) kettle:drift:check is unavailable') + task('kettle:drift:check') do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc("(stub) kettle:drift:update is unavailable") - task("kettle:drift:update") do + desc('(stub) kettle:drift:update is unavailable') + task('kettle:drift:update') do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc("(stub) kettle:drift:force_update is unavailable") - task("kettle:drift:force_update") do + desc('(stub) kettle:drift:force_update is unavailable') + task('kettle:drift:force_update') do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc("(stub) kettle:drift is unavailable") - task("kettle:drift" => "kettle:drift:update") + desc('(stub) kettle:drift is unavailable') + task('kettle:drift' => 'kettle:drift:update') end ### TEMPLATING TASKS diff --git a/gems/bash-merge/bash-merge.gemspec b/gems/bash-merge/bash-merge.gemspec index cccdf1dac..86240b5af 100644 --- a/gems/bash-merge/bash-merge.gemspec +++ b/gems/bash-merge/bash-merge.gemspec @@ -9,47 +9,47 @@ Gem::Specification.new do |spec| spec.name = 'bash-merge' spec.version = Module.new.tap { |mod| Kernel.load("#{__dir__}/lib/bash/merge/version.rb", mod) }::Bash::Merge::Version::VERSION - spec.authors = ["Peter H. Boling"] - spec.email = ["floss@galtzo.com"] + spec.authors = ['Peter H. Boling'] + spec.email = ['floss@galtzo.com'] spec.summary = '☯️ Structured Merge Bash analysis and merge for Ruby' spec.description = '☯️ Bash statement, comment, freeze-block, and template merge behavior for Structured Merge.' spec.homepage = 'https://github.com/structuredmerge/structuredmerge-ruby' - spec.licenses = ["AGPL-3.0-only", "PolyForm-Small-Business-1.0.0"] - spec.required_ruby_version = ">= 4.0.0" + spec.licenses = ['AGPL-3.0-only', 'PolyForm-Small-Business-1.0.0'] + spec.required_ruby_version = '>= 4.0.0' # Linux distros often package gems and securely certify them independent # of the official RubyGem certification process. Allowed via ENV["SKIP_GEM_SIGNING"] # Ref: https://gitlab.com/ruby-oauth/version_gem/-/issues/3 # Hence, only enable signing if `SKIP_GEM_SIGNING` is not set in ENV. # See CONTRIBUTING.md - unless ENV.include?("SKIP_GEM_SIGNING") - user_cert = "certs/#{ENV.fetch("GEM_CERT_USER", ENV["USER"])}.pem" + unless ENV.include?('SKIP_GEM_SIGNING') + user_cert = "certs/#{ENV.fetch('GEM_CERT_USER', ENV['USER'])}.pem" cert_file_path = File.join(__dir__, user_cert) - cert_chain = cert_file_path.split(",") + cert_chain = cert_file_path.split(',') cert_chain.select! { |fp| File.exist?(fp) } if cert_file_path && cert_chain.any? spec.cert_chain = cert_chain - if $PROGRAM_NAME.end_with?("gem") && ARGV[0] == "build" - spec.signing_key = File.join(Gem.user_home, ".ssh", "gem-private_key.pem") + if $PROGRAM_NAME.end_with?('gem') && ARGV[0] == 'build' + spec.signing_key = File.join(Gem.user_home, '.ssh', 'gem-private_key.pem') end end end - spec.metadata["homepage_uri"] = "https://structuredmerge.org" - spec.metadata["source_code_uri"] = "#{spec.homepage}/tree/v#{spec.version}" - spec.metadata["changelog_uri"] = "#{spec.homepage}/blob/v#{spec.version}/CHANGELOG.md" - spec.metadata["bug_tracker_uri"] = "#{spec.homepage}/issues" - spec.metadata["documentation_uri"] = "https://www.rubydoc.info/gems/#{spec.name}/#{spec.version}" - spec.metadata["funding_uri"] = "https://github.com/sponsors/pboling" - spec.metadata["wiki_uri"] = "#{spec.homepage}/wiki" - spec.metadata["news_uri"] = "https://www.railsbling.com/tags/#{spec.name}" - spec.metadata["discord_uri"] = "https://discord.gg/3qme4XHNKN" - spec.metadata["rubygems_mfa_required"] = "true" + spec.metadata['homepage_uri'] = 'https://structuredmerge.org' + spec.metadata['source_code_uri'] = "#{spec.homepage}/tree/v#{spec.version}" + spec.metadata['changelog_uri'] = "#{spec.homepage}/blob/v#{spec.version}/CHANGELOG.md" + spec.metadata['bug_tracker_uri'] = "#{spec.homepage}/issues" + spec.metadata['documentation_uri'] = "https://www.rubydoc.info/gems/#{spec.name}/#{spec.version}" + spec.metadata['funding_uri'] = 'https://github.com/sponsors/pboling' + spec.metadata['wiki_uri'] = "#{spec.homepage}/wiki" + spec.metadata['news_uri'] = "https://www.railsbling.com/tags/#{spec.name}" + spec.metadata['discord_uri'] = 'https://discord.gg/3qme4XHNKN' + spec.metadata['rubygems_mfa_required'] = 'true' enumerate_package_files = lambda do |root| - Dir.glob(File.join(root, "**", "*"), File::FNM_DOTMATCH).select do |path| - File.file?(path) && ![".", ".."].include?(File.basename(path)) + Dir.glob(File.join(root, '**', '*'), File::FNM_DOTMATCH).select do |path| + File.file?(path) && !['.', '..'].include?(File.basename(path)) end end package_metadata_files = %w[ @@ -69,25 +69,25 @@ Gem::Specification.new do |spec| *enumerate_package_files.call('exe') ] spec.rdoc_options += [ - "--title", + '--title', "#{spec.name} - #{spec.summary}", - "--main", - "README.md", - "--exclude", - "^sig/", - "--line-numbers", - "--inline-source", - "--quiet" + '--main', + 'README.md', + '--exclude', + '^sig/', + '--line-numbers', + '--inline-source', + '--quiet' ] - spec.bindir = "exe" + spec.bindir = 'exe' # Listed files are the relative paths from bindir above. spec.executables = [] - spec.require_paths = ["lib"] + spec.require_paths = ['lib'] # Utilities spec.add_dependency 'ast-merge', "= #{spec.version}" spec.add_dependency 'tree_haver', "= #{spec.version}" - spec.add_dependency("version_gem", "~> 1.1", ">= 1.1.14") # ruby >= 2.2.0 + spec.add_dependency('version_gem', '~> 1.1', '>= 1.1.14') # ruby >= 2.2.0 # NOTE: It is preferable to list development dependencies in the gemspec due to increased # visibility and discoverability. @@ -103,30 +103,30 @@ Gem::Specification.new do |spec| # and preferably a modular one (see gemfiles/modular/*.gemfile). # Dev, Test, & Release Tasks - spec.add_development_dependency("kettle-dev", "~> 2.3", ">= 2.3.7") # ruby >= 4.0.0 + spec.add_development_dependency('kettle-dev', '~> 2.3', '>= 2.3.7') # ruby >= 4.0.0 # Security - spec.add_development_dependency("bundler-audit", "~> 0.9.3") # ruby >= 2.0.0 + spec.add_development_dependency('bundler-audit', '~> 0.9.3') # ruby >= 2.0.0 # Tasks - spec.add_development_dependency("rake", "~> 13.0") # ruby >= 2.2.0 + spec.add_development_dependency('rake', '~> 13.0') # ruby >= 2.2.0 # Debugging - spec.add_development_dependency("require_bench", "~> 1.0", ">= 1.0.4") # ruby >= 2.2.0 + spec.add_development_dependency('require_bench', '~> 1.0', '>= 1.0.4') # ruby >= 2.2.0 # Testing - spec.add_development_dependency("appraisal2", "~> 3.2", ">= 3.2.0") # ruby >= 1.8.7, for testing against multiple versions of dependencies - spec.add_development_dependency("kettle-test", "~> 2.0", ">= 2.0.12") # ruby >= 4.0.0 - spec.add_development_dependency("turbo_tests2", "~> 3.2", ">= 3.2.0") # ruby >= 2.4.0, default kettle-test runner + spec.add_development_dependency('appraisal2', '~> 3.2', '>= 3.2.0') # ruby >= 1.8.7, for testing against multiple versions of dependencies + spec.add_development_dependency('kettle-test', '~> 2.0', '>= 2.0.12') # ruby >= 4.0.0 + spec.add_development_dependency('turbo_tests2', '~> 3.2', '>= 3.2.0') # ruby >= 2.4.0, default kettle-test runner # Releasing - spec.add_development_dependency("ruby-progressbar", "~> 1.13") # ruby >= 0 - spec.add_development_dependency("stone_checksums", "~> 1.0", ">= 1.0.6") # ruby >= 2.2.0 + spec.add_development_dependency('ruby-progressbar', '~> 1.13') # ruby >= 0 + spec.add_development_dependency('stone_checksums', '~> 1.0', '>= 1.0.6') # ruby >= 2.2.0 # Development tasks # The cake is a lie. erb v2.2, the oldest release, was never compatible with Ruby 2.3. # This means we have no choice but to use the erb that shipped with Ruby 2.3 # /opt/hostedtoolcache/Ruby/2.3.8/x64/lib/ruby/gems/2.3.0/gems/erb-2.2.2/lib/erb.rb:670:in `prepare_trim_mode': undefined method `match?' for "-":String (NoMethodError) # spec.add_development_dependency("erb", ">= 2.2") # ruby >= 2.3.0, not SemVer, old rubies get dropped in a patch. - spec.add_development_dependency("gitmoji-regex", "~> 2.0", ">= 2.0.4") # ruby >= 2.4 + spec.add_development_dependency('gitmoji-regex', '~> 2.0', '>= 2.0.4') # ruby >= 2.4 end diff --git a/gems/bash-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile b/gems/bash-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile index dec650815..b8392fab0 100644 --- a/gems/bash-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile +++ b/gems/bash-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.1 -gem "benchmark", "~> 0.5", ">= 0.5.0" # Removed from Std Lib in Ruby 4.0 +gem 'benchmark', '~> 0.5', '>= 0.5.0' # Removed from Std Lib in Ruby 4.0 diff --git a/gems/bash-merge/gemfiles/modular/benchmark/vHEAD.gemfile b/gems/bash-merge/gemfiles/modular/benchmark/vHEAD.gemfile index e1eb20c5e..af214aafa 100644 --- a/gems/bash-merge/gemfiles/modular/benchmark/vHEAD.gemfile +++ b/gems/bash-merge/gemfiles/modular/benchmark/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.1 -gem "benchmark", github: "ruby/benchmark", branch: "master" +gem 'benchmark', github: 'ruby/benchmark', branch: 'master' diff --git a/gems/bash-merge/gemfiles/modular/cgi/r4/v0.5.gemfile b/gems/bash-merge/gemfiles/modular/cgi/r4/v0.5.gemfile index 19ed967c3..17ad97260 100644 --- a/gems/bash-merge/gemfiles/modular/cgi/r4/v0.5.gemfile +++ b/gems/bash-merge/gemfiles/modular/cgi/r4/v0.5.gemfile @@ -1 +1 @@ -gem "cgi", "~> 0.5" +gem 'cgi', '~> 0.5' diff --git a/gems/bash-merge/gemfiles/modular/cgi/vHEAD.gemfile b/gems/bash-merge/gemfiles/modular/cgi/vHEAD.gemfile index ef8b816ce..650fbf033 100644 --- a/gems/bash-merge/gemfiles/modular/cgi/vHEAD.gemfile +++ b/gems/bash-merge/gemfiles/modular/cgi/vHEAD.gemfile @@ -1 +1 @@ -gem "cgi", ">= 0.5" +gem 'cgi', '>= 0.5' diff --git a/gems/bash-merge/gemfiles/modular/coverage.gemfile b/gems/bash-merge/gemfiles/modular/coverage.gemfile index 52d737872..b93014b6b 100644 --- a/gems/bash-merge/gemfiles/modular/coverage.gemfile +++ b/gems/bash-merge/gemfiles/modular/coverage.gemfile @@ -4,11 +4,11 @@ # Set KETTLE_DEV_DEV=true for local development with path-based dependencies. # When false (default / CI), remote released gems are used. -if ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false").zero? +if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? # Coverage (remote/released) platform :mri do - gem "kettle-soup-cover", "~> 3.0", ">= 3.0.3", require: false + gem 'kettle-soup-cover', '~> 3.0', '>= 3.0.3', require: false end else - eval_gemfile "coverage_local.gemfile" + eval_gemfile 'coverage_local.gemfile' end diff --git a/gems/bash-merge/gemfiles/modular/coverage_local.gemfile b/gems/bash-merge/gemfiles/modular/coverage_local.gemfile index 6b6462501..8ac9a4a35 100644 --- a/gems/bash-merge/gemfiles/modular/coverage_local.gemfile +++ b/gems/bash-merge/gemfiles/modular/coverage_local.gemfile @@ -11,21 +11,19 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] -nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) +nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] +nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == "nomono" } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - if nomono_locked - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] - end + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked end -Kernel.send(:gem, "nomono", *nomono_activation_requirements) -require "nomono/bundler" +Kernel.send(:gem, 'nomono', *nomono_activation_requirements) +require 'nomono/bundler' local_gems = %w[kettle-dev kettle-test kettle-soup-cover kettle-drift] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) @@ -35,21 +33,21 @@ local_gems_to_eval = local_gems - %w[bash-merge] - declared_gems platform :mri do eval_nomono_gems( gems: local_gems_to_eval, - prefix: "KETTLE_DEV", - path_env: "KETTLE_DEV_DEV", - vendored_gems_env: "VENDORED_GEMS", - vendor_gem_dir_env: "VENDOR_GEM_DIR", - debug_env: "KETTLE_DEV_DEBUG" + prefix: 'KETTLE_DEV', + path_env: 'KETTLE_DEV_DEV', + vendored_gems_env: 'VENDORED_GEMS', + vendor_gem_dir_env: 'VENDOR_GEM_DIR', + debug_env: 'KETTLE_DEV_DEBUG' ) - if ENV.fetch("GALTZO_FLOSS_DEV", "false").casecmp("false") != 0 + if ENV.fetch('GALTZO_FLOSS_DEV', 'false').casecmp('false') != 0 eval_nomono_gems( gems: %w[turbo_tests2], - prefix: "GALTZO_FLOSS", - path_env: "GALTZO_FLOSS_DEV", - vendored_gems_env: "GALTZO_FLOSS_VENDORED_GEMS", - vendor_gem_dir_env: "GALTZO_FLOSS_VENDOR_GEM_DIR", - debug_env: "GALTZO_FLOSS_DEBUG" + prefix: 'GALTZO_FLOSS', + path_env: 'GALTZO_FLOSS_DEV', + vendored_gems_env: 'GALTZO_FLOSS_VENDORED_GEMS', + vendor_gem_dir_env: 'GALTZO_FLOSS_VENDOR_GEM_DIR', + debug_env: 'GALTZO_FLOSS_DEBUG' ) end end diff --git a/gems/bash-merge/gemfiles/modular/debug.gemfile b/gems/bash-merge/gemfiles/modular/debug.gemfile index 4e15b1a3a..eed8d4d1e 100644 --- a/gems/bash-merge/gemfiles/modular/debug.gemfile +++ b/gems/bash-merge/gemfiles/modular/debug.gemfile @@ -13,10 +13,10 @@ platform :mri do # Debugging - Ensure ENV["DEBUG"] == "true" to use debuggers within spec suite # Use binding.break, binding.b, or debugger in code - gem "debug", ">= 1.1" # ruby >= 2.7 + gem 'debug', '>= 1.1' # ruby >= 2.7 # Dev Console - Binding.pry - Irb replacement # gem "pry", "~> 0.14" # ruby >= 2.0 end -gem "gem_bench", "~> 2.0", ">= 2.0.5" +gem 'gem_bench', '~> 2.0', '>= 2.0.5' diff --git a/gems/bash-merge/gemfiles/modular/documentation.gemfile b/gems/bash-merge/gemfiles/modular/documentation.gemfile index d8215416e..9d4535f12 100644 --- a/gems/bash-merge/gemfiles/modular/documentation.gemfile +++ b/gems/bash-merge/gemfiles/modular/documentation.gemfile @@ -7,20 +7,20 @@ # # Documentation -gem "kramdown", "~> 2.5", ">= 2.5.2", require: false # Ruby >= 2.5 -gem "kramdown-parser-gfm", "~> 1.1", require: false # Ruby >= 2.3 -gem "yaml-converter", "~> 0.2", ">= 0.2.3", require: false # Ruby >= 3.2 -gem "yard", "~> 0.9", ">= 0.9.45", require: false -gem "yard-junk", "~> 0.1", ">= 0.1.0", require: false # Ruby >= 3.1 -gem "yard-relative_markdown_links", "~> 0.6", require: false +gem 'kramdown', '~> 2.5', '>= 2.5.2', require: false # Ruby >= 2.5 +gem 'kramdown-parser-gfm', '~> 1.1', require: false # Ruby >= 2.3 +gem 'yaml-converter', '~> 0.2', '>= 0.2.3', require: false # Ruby >= 3.2 +gem 'yard', '~> 0.9', '>= 0.9.45', require: false +gem 'yard-junk', '~> 0.1', '>= 0.1.0', require: false # Ruby >= 3.1 +gem 'yard-relative_markdown_links', '~> 0.6', require: false -if ENV.fetch("GALTZO_FLOSS_DEV", "false").casecmp("false").zero? - gem "yard-fence", "~> 0.9", ">= 0.9.6", require: false # Ruby >= 3.2 - gem "yard-timekeeper", "~> 0.2", ">= 0.2.4", require: false - gem "yard-yaml", "~> 0.2", ">= 0.2.3", require: false +if ENV.fetch('GALTZO_FLOSS_DEV', 'false').casecmp('false').zero? + gem 'yard-fence', '~> 0.9', '>= 0.9.6', require: false # Ruby >= 3.2 + gem 'yard-timekeeper', '~> 0.2', '>= 0.2.4', require: false + gem 'yard-yaml', '~> 0.2', '>= 0.2.3', require: false else - eval_gemfile "documentation_local.gemfile" + eval_gemfile 'documentation_local.gemfile' end # Std Lib extractions -gem "rdoc", "~> 6.11", require: false unless ENV.fetch("KJ_FRAMEWORK_MATRIX_GEM", "") == "rdoc" +gem 'rdoc', '~> 6.11', require: false unless ENV.fetch('KJ_FRAMEWORK_MATRIX_GEM', '') == 'rdoc' diff --git a/gems/bash-merge/gemfiles/modular/documentation_local.gemfile b/gems/bash-merge/gemfiles/modular/documentation_local.gemfile index 3dc825c13..844682e59 100644 --- a/gems/bash-merge/gemfiles/modular/documentation_local.gemfile +++ b/gems/bash-merge/gemfiles/modular/documentation_local.gemfile @@ -11,21 +11,19 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] -nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) +nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] +nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == "nomono" } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - if nomono_locked - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] - end + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked end -Kernel.send(:gem, "nomono", *nomono_activation_requirements) -require "nomono/bundler" +Kernel.send(:gem, 'nomono', *nomono_activation_requirements) +require 'nomono/bundler' local_gems = %w[yard-fence yard-timekeeper yard-yaml] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) @@ -34,9 +32,9 @@ local_gems_to_eval = local_gems - %w[bash-merge] - declared_gems # export GALTZO_FLOSS_DEV=/path/to/galtzo-floss eval_nomono_gems( gems: local_gems_to_eval, - prefix: "GALTZO_FLOSS", - path_env: "GALTZO_FLOSS_DEV", - vendored_gems_env: "GALTZO_FLOSS_VENDORED_GEMS", - vendor_gem_dir_env: "GALTZO_FLOSS_VENDOR_GEM_DIR", - debug_env: "GALTZO_FLOSS_DEBUG" + prefix: 'GALTZO_FLOSS', + path_env: 'GALTZO_FLOSS_DEV', + vendored_gems_env: 'GALTZO_FLOSS_VENDORED_GEMS', + vendor_gem_dir_env: 'GALTZO_FLOSS_VENDOR_GEM_DIR', + debug_env: 'GALTZO_FLOSS_DEBUG' ) diff --git a/gems/bash-merge/gemfiles/modular/erb/r2/v3.0.gemfile b/gems/bash-merge/gemfiles/modular/erb/r2/v3.0.gemfile index c03bd8d85..7c83a239b 100644 --- a/gems/bash-merge/gemfiles/modular/erb/r2/v3.0.gemfile +++ b/gems/bash-merge/gemfiles/modular/erb/r2/v3.0.gemfile @@ -1 +1 @@ -gem "erb", "~> 3.0" # ruby >= 2.7.0 +gem 'erb', '~> 3.0' # ruby >= 2.7.0 diff --git a/gems/bash-merge/gemfiles/modular/erb/r3/v5.0.gemfile b/gems/bash-merge/gemfiles/modular/erb/r3/v5.0.gemfile index 1bd029cc1..ec7ff451f 100644 --- a/gems/bash-merge/gemfiles/modular/erb/r3/v5.0.gemfile +++ b/gems/bash-merge/gemfiles/modular/erb/r3/v5.0.gemfile @@ -1 +1 @@ -gem "erb", "~> 6.0", ">= 6.0.6" # ruby >= 3.2.0 +gem 'erb', '~> 6.0', '>= 6.0.6' # ruby >= 3.2.0 diff --git a/gems/bash-merge/gemfiles/modular/erb/r4/v5.0.gemfile b/gems/bash-merge/gemfiles/modular/erb/r4/v5.0.gemfile index 1bd029cc1..ec7ff451f 100644 --- a/gems/bash-merge/gemfiles/modular/erb/r4/v5.0.gemfile +++ b/gems/bash-merge/gemfiles/modular/erb/r4/v5.0.gemfile @@ -1 +1 @@ -gem "erb", "~> 6.0", ">= 6.0.6" # ruby >= 3.2.0 +gem 'erb', '~> 6.0', '>= 6.0.6' # ruby >= 3.2.0 diff --git a/gems/bash-merge/gemfiles/modular/erb/vHEAD.gemfile b/gems/bash-merge/gemfiles/modular/erb/vHEAD.gemfile index 48fee4218..ea0101185 100644 --- a/gems/bash-merge/gemfiles/modular/erb/vHEAD.gemfile +++ b/gems/bash-merge/gemfiles/modular/erb/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 3.2 -gem "erb", github: "ruby/erb", branch: "master" +gem 'erb', github: 'ruby/erb', branch: 'master' diff --git a/gems/bash-merge/gemfiles/modular/json/truffleruby_22_3.gemfile b/gems/bash-merge/gemfiles/modular/json/truffleruby_22_3.gemfile index b0e69ab11..9b2f8d96a 100644 --- a/gems/bash-merge/gemfiles/modular/json/truffleruby_22_3.gemfile +++ b/gems/bash-merge/gemfiles/modular/json/truffleruby_22_3.gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -if RUBY_ENGINE == "truffleruby" && RUBY_ENGINE_VERSION.start_with?("22.3") +if RUBY_ENGINE == 'truffleruby' && RUBY_ENGINE_VERSION.start_with?('22.3') # TruffleRuby 22.3 ships the json default gem from its emulated MRI Ruby. - gem "json", "= 2.5.1" + gem 'json', '= 2.5.1' end diff --git a/gems/bash-merge/gemfiles/modular/json/truffleruby_23_0.gemfile b/gems/bash-merge/gemfiles/modular/json/truffleruby_23_0.gemfile index 7b2660a2b..d787a5ef4 100644 --- a/gems/bash-merge/gemfiles/modular/json/truffleruby_23_0.gemfile +++ b/gems/bash-merge/gemfiles/modular/json/truffleruby_23_0.gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -if RUBY_ENGINE == "truffleruby" && RUBY_ENGINE_VERSION.start_with?("23.0") +if RUBY_ENGINE == 'truffleruby' && RUBY_ENGINE_VERSION.start_with?('23.0') # TruffleRuby 23.0 ships the json default gem from its emulated MRI Ruby. - gem "json", "= 2.6.1" + gem 'json', '= 2.6.1' end diff --git a/gems/bash-merge/gemfiles/modular/json/truffleruby_23_1.gemfile b/gems/bash-merge/gemfiles/modular/json/truffleruby_23_1.gemfile index dfa21f2e4..d78486b0e 100644 --- a/gems/bash-merge/gemfiles/modular/json/truffleruby_23_1.gemfile +++ b/gems/bash-merge/gemfiles/modular/json/truffleruby_23_1.gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -if RUBY_ENGINE == "truffleruby" && RUBY_ENGINE_VERSION.start_with?("23.1") +if RUBY_ENGINE == 'truffleruby' && RUBY_ENGINE_VERSION.start_with?('23.1') # TruffleRuby 23.1 ships the json default gem from its emulated MRI Ruby. - gem "json", "= 2.6.3" + gem 'json', '= 2.6.3' end diff --git a/gems/bash-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile b/gems/bash-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile index 42e9d9bd4..e27f1bbae 100644 --- a/gems/bash-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile +++ b/gems/bash-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 -gem "mutex_m", "~> 0.2" +gem 'mutex_m', '~> 0.2' diff --git a/gems/bash-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile b/gems/bash-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile index 42e9d9bd4..e27f1bbae 100644 --- a/gems/bash-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile +++ b/gems/bash-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 -gem "mutex_m", "~> 0.2" +gem 'mutex_m', '~> 0.2' diff --git a/gems/bash-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile b/gems/bash-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile index 42e9d9bd4..e27f1bbae 100644 --- a/gems/bash-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile +++ b/gems/bash-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 -gem "mutex_m", "~> 0.2" +gem 'mutex_m', '~> 0.2' diff --git a/gems/bash-merge/gemfiles/modular/mutex_m/vHEAD.gemfile b/gems/bash-merge/gemfiles/modular/mutex_m/vHEAD.gemfile index 8af3b6fca..9dac2f6cb 100644 --- a/gems/bash-merge/gemfiles/modular/mutex_m/vHEAD.gemfile +++ b/gems/bash-merge/gemfiles/modular/mutex_m/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 (dependency of omniauth) -gem "mutex_m", github: "ruby/mutex_m", branch: "master" +gem 'mutex_m', github: 'ruby/mutex_m', branch: 'master' diff --git a/gems/bash-merge/gemfiles/modular/optional.gemfile b/gems/bash-merge/gemfiles/modular/optional.gemfile index 80bc45196..9ea429538 100644 --- a/gems/bash-merge/gemfiles/modular/optional.gemfile +++ b/gems/bash-merge/gemfiles/modular/optional.gemfile @@ -9,8 +9,8 @@ # Optional dependencies are not depended on directly, but may be used if present. # Required for curated binstubs generated by kettle-jem install -gem "rbs", ">= 3.0", require: false # ruby >= 3.1 +gem 'rbs', '>= 3.0', require: false # ruby >= 3.1 # Required for kettle-pre-release # URL parsing with Unicode support (falls back to URI if not available) -gem "addressable", ">= 2.8", "< 3" # ruby >= 2.2 +gem 'addressable', '>= 2.8', '< 3' # ruby >= 2.2 diff --git a/gems/bash-merge/gemfiles/modular/rspec.gemfile b/gems/bash-merge/gemfiles/modular/rspec.gemfile index 72fdf8b7f..2af210a41 100644 --- a/gems/bash-merge/gemfiles/modular/rspec.gemfile +++ b/gems/bash-merge/gemfiles/modular/rspec.gemfile @@ -1,4 +1,4 @@ -gem "rspec_junit_formatter", - github: "pboling/rspec_junit_formatter", - branch: "main", - ref: "9e6bcaaedd49477b62878ed568dc4ada5cc7cb5e" +gem 'rspec_junit_formatter', + github: 'pboling/rspec_junit_formatter', + branch: 'main', + ref: '9e6bcaaedd49477b62878ed568dc4ada5cc7cb5e' diff --git a/gems/bash-merge/gemfiles/modular/runtime_heads.gemfile b/gems/bash-merge/gemfiles/modular/runtime_heads.gemfile index 02f134c7f..ebf17c529 100644 --- a/gems/bash-merge/gemfiles/modular/runtime_heads.gemfile +++ b/gems/bash-merge/gemfiles/modular/runtime_heads.gemfile @@ -8,4 +8,4 @@ # Test against HEAD of runtime dependencies so we can proactively file bugs -eval_gemfile("x_std_libs/vHEAD.gemfile") +eval_gemfile('x_std_libs/vHEAD.gemfile') diff --git a/gems/bash-merge/gemfiles/modular/stringio/r2/v3.0.gemfile b/gems/bash-merge/gemfiles/modular/stringio/r2/v3.0.gemfile index e85bb18ee..3616f4e3a 100644 --- a/gems/bash-merge/gemfiles/modular/stringio/r2/v3.0.gemfile +++ b/gems/bash-merge/gemfiles/modular/stringio/r2/v3.0.gemfile @@ -2,4 +2,4 @@ # NOT SEMVER # Version 3.0.7 dropped support for Ruby <= 2.7 # Version 3.0.0 dropped support for Ruby <= 2.4 -gem "stringio", ">= 3.0" +gem 'stringio', '>= 3.0' diff --git a/gems/bash-merge/gemfiles/modular/stringio/r3/v3.0.gemfile b/gems/bash-merge/gemfiles/modular/stringio/r3/v3.0.gemfile index e85bb18ee..3616f4e3a 100644 --- a/gems/bash-merge/gemfiles/modular/stringio/r3/v3.0.gemfile +++ b/gems/bash-merge/gemfiles/modular/stringio/r3/v3.0.gemfile @@ -2,4 +2,4 @@ # NOT SEMVER # Version 3.0.7 dropped support for Ruby <= 2.7 # Version 3.0.0 dropped support for Ruby <= 2.4 -gem "stringio", ">= 3.0" +gem 'stringio', '>= 3.0' diff --git a/gems/bash-merge/gemfiles/modular/stringio/r4/v3.0.gemfile b/gems/bash-merge/gemfiles/modular/stringio/r4/v3.0.gemfile index e85bb18ee..3616f4e3a 100644 --- a/gems/bash-merge/gemfiles/modular/stringio/r4/v3.0.gemfile +++ b/gems/bash-merge/gemfiles/modular/stringio/r4/v3.0.gemfile @@ -2,4 +2,4 @@ # NOT SEMVER # Version 3.0.7 dropped support for Ruby <= 2.7 # Version 3.0.0 dropped support for Ruby <= 2.4 -gem "stringio", ">= 3.0" +gem 'stringio', '>= 3.0' diff --git a/gems/bash-merge/gemfiles/modular/stringio/vHEAD.gemfile b/gems/bash-merge/gemfiles/modular/stringio/vHEAD.gemfile index 5f2a74126..78f5f5d8a 100644 --- a/gems/bash-merge/gemfiles/modular/stringio/vHEAD.gemfile +++ b/gems/bash-merge/gemfiles/modular/stringio/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 (dependency of omniauth) -gem "stringio", github: "ruby/stringio", branch: "master" +gem 'stringio', github: 'ruby/stringio', branch: 'master' diff --git a/gems/bash-merge/gemfiles/modular/style.gemfile b/gems/bash-merge/gemfiles/modular/style.gemfile index 35de4dcd6..4dbcc02c0 100644 --- a/gems/bash-merge/gemfiles/modular/style.gemfile +++ b/gems/bash-merge/gemfiles/modular/style.gemfile @@ -9,23 +9,23 @@ # Style tasks run on the latest Ruby; RuboCop-LTS selects the compatibility # rules for the configured Ruby floor independently from task dependency floors. -gem "reek", "~> 6.5", ">= 6.5.0" +gem 'reek', '~> 6.5', '>= 6.5.0' platform :mri do - gem "appraisal2-rubocop", "~> 1.0", ">= 1.0.0", require: false - gem "rubocop-gradual", "~> 0.4", ">= 0.4.0" - gem "rubocop-minitest", "~> 0.40", ">= 0.40.0" - gem "rubocop-on-rbs", "~> 2.0", ">= 2.0.0" # ruby >= 3.2.0 + gem 'appraisal2-rubocop', '~> 1.0', '>= 1.0.0', require: false + gem 'rubocop-gradual', '~> 0.4', '>= 0.4.0' + gem 'rubocop-minitest', '~> 0.40', '>= 0.40.0' + gem 'rubocop-on-rbs', '~> 2.0', '>= 2.0.0' # ruby >= 3.2.0 # gem "rubocop", "~> 1.73", ">= 1.73.2" # constrained by standard - gem "rubocop-packaging", "~> 0.6", ">= 0.6.0" - gem "standard", "~> 1.56", ">= 1.56.0" + gem 'rubocop-packaging', '~> 0.6', '>= 0.6.0' + gem 'standard', '~> 1.56', '>= 1.56.0' - if ENV.fetch("RUBOCOP_LTS_LOCAL", "false").casecmp("false").zero? + if ENV.fetch('RUBOCOP_LTS_LOCAL', 'false').casecmp('false').zero? declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) - gem "rubocop-lts", "~> 24.2", ">= 24.2.1" unless declared_gems.include?("rubocop-lts") - gem "rubocop-lts-rspec", "~> 1.0", ">= 1.0.5" unless declared_gems.include?("rubocop-lts-rspec") - gem "rubocop-ruby3_2", "~> 3.0", ">= 3.0.6" unless declared_gems.include?("rubocop-ruby3_2") + gem 'rubocop-lts', '~> 24.2', '>= 24.2.1' unless declared_gems.include?('rubocop-lts') + gem 'rubocop-lts-rspec', '~> 1.0', '>= 1.0.5' unless declared_gems.include?('rubocop-lts-rspec') + gem 'rubocop-ruby3_2', '~> 3.0', '>= 3.0.6' unless declared_gems.include?('rubocop-ruby3_2') else - eval_gemfile("style_local.gemfile") + eval_gemfile('style_local.gemfile') end end diff --git a/gems/bash-merge/gemfiles/modular/style_local.gemfile b/gems/bash-merge/gemfiles/modular/style_local.gemfile index db620af4f..f507995c2 100644 --- a/gems/bash-merge/gemfiles/modular/style_local.gemfile +++ b/gems/bash-merge/gemfiles/modular/style_local.gemfile @@ -14,21 +14,19 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] -nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) +nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] +nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == "nomono" } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - if nomono_locked - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] - end + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked end -Kernel.send(:gem, "nomono", *nomono_activation_requirements) -require "nomono/bundler" +Kernel.send(:gem, 'nomono', *nomono_activation_requirements) +require 'nomono/bundler' local_gems = %w[rubocop-lts rubocop-lts-rspec rubocop-ruby3_2 standard-rubocop-lts] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) @@ -38,11 +36,11 @@ local_gems_to_eval = local_gems - %w[bash-merge] - declared_gems platform :mri do eval_nomono_gems( gems: local_gems_to_eval, - prefix: "RUBOCOP_LTS", - path_env: "RUBOCOP_LTS_LOCAL", - vendored_gems_env: "VENDORED_GEMS", - vendor_gem_dir_env: "VENDOR_GEM_DIR", - debug_env: "RUBOCOP_LTS_DEBUG", - root: ["src", "rubocop-lts"] + prefix: 'RUBOCOP_LTS', + path_env: 'RUBOCOP_LTS_LOCAL', + vendored_gems_env: 'VENDORED_GEMS', + vendor_gem_dir_env: 'VENDOR_GEM_DIR', + debug_env: 'RUBOCOP_LTS_DEBUG', + root: %w[src rubocop-lts] ) end diff --git a/gems/bash-merge/gemfiles/modular/templating.gemfile b/gems/bash-merge/gemfiles/modular/templating.gemfile index 47138ffbb..a672de184 100644 --- a/gems/bash-merge/gemfiles/modular/templating.gemfile +++ b/gems/bash-merge/gemfiles/modular/templating.gemfile @@ -1,18 +1,18 @@ # frozen_string_literal: true -structuredmerge_remote = ENV.fetch("STRUCTUREDMERGE_DEV", "false").casecmp("false").zero? -kettle_remote = ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false").zero? +structuredmerge_remote = ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false').zero? +kettle_remote = ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? if structuredmerge_remote # Parser dependencies for released installs. - gem "tree_sitter_language_pack", "~> 1.13", ">= 1.13.3" + gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' # Merge recipes for released installs. - gem "kettle-jem", ">= 7.0" + gem 'kettle-jem', '>= 7.0' end if kettle_remote # Template/plugin checks for released installs. - gem "kettle-drift", "~> 1.0", ">= 1.0.6", require: false + gem 'kettle-drift', '~> 1.0', '>= 1.0.6', require: false end # Set STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local development with path-based dependencies. @@ -21,4 +21,4 @@ end # # Set KETTLE_DEV_DEV=/path/to/my for local development with Kettle plugin gems. # When false (default / CI), released Kettle plugin gems are used. -eval_gemfile "templating_local.gemfile" unless structuredmerge_remote && kettle_remote +eval_gemfile 'templating_local.gemfile' unless structuredmerge_remote && kettle_remote diff --git a/gems/bash-merge/gemfiles/modular/templating_local.gemfile b/gems/bash-merge/gemfiles/modular/templating_local.gemfile index c11a4162a..1607637e0 100644 --- a/gems/bash-merge/gemfiles/modular/templating_local.gemfile +++ b/gems/bash-merge/gemfiles/modular/templating_local.gemfile @@ -12,21 +12,19 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] -nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) +nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] +nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == "nomono" } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - if nomono_locked - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] - end + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked end -Kernel.send(:gem, "nomono", *nomono_activation_requirements) -require "nomono/bundler" +Kernel.send(:gem, 'nomono', *nomono_activation_requirements) +require 'nomono/bundler' structuredmerge_local_gems = %w[ tree_haver @@ -69,25 +67,25 @@ structuredmerge_local_gems_to_eval = structuredmerge_local_gems - %w[bash-merge] kettle_dev_local_gems_to_eval = kettle_dev_local_gems - %w[bash-merge] - declared_gems platform :mri do - if ENV.fetch("STRUCTUREDMERGE_DEV", "false").casecmp("false") != 0 + if ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false') != 0 eval_nomono_gems( gems: structuredmerge_local_gems_to_eval, - prefix: "STRUCTUREDMERGE", - path_env: "STRUCTUREDMERGE_DEV", - vendored_gems_env: "VENDORED_GEMS", - vendor_gem_dir_env: "VENDOR_GEM_DIR", - debug_env: "STRUCTUREDMERGE_DEBUG" + prefix: 'STRUCTUREDMERGE', + path_env: 'STRUCTUREDMERGE_DEV', + vendored_gems_env: 'VENDORED_GEMS', + vendor_gem_dir_env: 'VENDOR_GEM_DIR', + debug_env: 'STRUCTUREDMERGE_DEBUG' ) end - if ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false") != 0 + if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false') != 0 eval_nomono_gems( gems: kettle_dev_local_gems_to_eval, - prefix: "KETTLE_DEV", - path_env: "KETTLE_DEV_DEV", - vendored_gems_env: "VENDORED_GEMS", - vendor_gem_dir_env: "VENDOR_GEM_DIR", - debug_env: "KETTLE_DEV_DEBUG" + prefix: 'KETTLE_DEV', + path_env: 'KETTLE_DEV_DEV', + vendored_gems_env: 'VENDORED_GEMS', + vendor_gem_dir_env: 'VENDOR_GEM_DIR', + debug_env: 'KETTLE_DEV_DEBUG' ) end end diff --git a/gems/bash-merge/gemfiles/modular/webrick/r4/v1.9.gemfile b/gems/bash-merge/gemfiles/modular/webrick/r4/v1.9.gemfile index eaab4a473..b1329ba84 100644 --- a/gems/bash-merge/gemfiles/modular/webrick/r4/v1.9.gemfile +++ b/gems/bash-merge/gemfiles/modular/webrick/r4/v1.9.gemfile @@ -1 +1 @@ -gem "webrick", "~> 1.9" +gem 'webrick', '~> 1.9' diff --git a/gems/bash-merge/gemfiles/modular/webrick/vHEAD.gemfile b/gems/bash-merge/gemfiles/modular/webrick/vHEAD.gemfile index 8a789b634..c7e6f81a1 100644 --- a/gems/bash-merge/gemfiles/modular/webrick/vHEAD.gemfile +++ b/gems/bash-merge/gemfiles/modular/webrick/vHEAD.gemfile @@ -1 +1 @@ -gem "webrick", ">= 1.9" +gem 'webrick', '>= 1.9' diff --git a/gems/bash-merge/gemfiles/modular/x_std_libs.gemfile b/gems/bash-merge/gemfiles/modular/x_std_libs.gemfile index 77aad43f2..b1f43c097 100644 --- a/gems/bash-merge/gemfiles/modular/x_std_libs.gemfile +++ b/gems/bash-merge/gemfiles/modular/x_std_libs.gemfile @@ -1,12 +1,12 @@ ### Std Lib Extracted Gems ruby_version = Gem::Version.new(RUBY_VERSION) -if ruby_version >= Gem::Version.new("4.0") - eval_gemfile "x_std_libs/r4/libs.gemfile" -elsif ruby_version >= Gem::Version.new("3.2") - eval_gemfile "x_std_libs/r3/libs.gemfile" -elsif ruby_version >= Gem::Version.new("3.1") - eval_gemfile "x_std_libs/r3.1/libs.gemfile" +if ruby_version >= Gem::Version.new('4.0') + eval_gemfile 'x_std_libs/r4/libs.gemfile' +elsif ruby_version >= Gem::Version.new('3.2') + eval_gemfile 'x_std_libs/r3/libs.gemfile' +elsif ruby_version >= Gem::Version.new('3.1') + eval_gemfile 'x_std_libs/r3.1/libs.gemfile' else - eval_gemfile "x_std_libs/r2/libs.gemfile" + eval_gemfile 'x_std_libs/r2/libs.gemfile' end diff --git a/gems/bash-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile b/gems/bash-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile index 441c4f03a..16a5e3d70 100644 --- a/gems/bash-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile +++ b/gems/bash-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile @@ -1,3 +1,3 @@ -eval_gemfile "../../erb/r2/v3.0.gemfile" -eval_gemfile "../../mutex_m/r2/v0.3.gemfile" -eval_gemfile "../../stringio/r2/v3.0.gemfile" +eval_gemfile '../../erb/r2/v3.0.gemfile' +eval_gemfile '../../mutex_m/r2/v0.3.gemfile' +eval_gemfile '../../stringio/r2/v3.0.gemfile' diff --git a/gems/bash-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile b/gems/bash-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile index c293a3ddd..220ff95c1 100644 --- a/gems/bash-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile +++ b/gems/bash-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile @@ -1,3 +1,3 @@ -eval_gemfile "../../erb/r3/v5.0.gemfile" -eval_gemfile "../../mutex_m/r3/v0.3.gemfile" -eval_gemfile "../../stringio/r3/v3.0.gemfile" +eval_gemfile '../../erb/r3/v5.0.gemfile' +eval_gemfile '../../mutex_m/r3/v0.3.gemfile' +eval_gemfile '../../stringio/r3/v3.0.gemfile' diff --git a/gems/bash-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile b/gems/bash-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile index eb5574247..e2f6501eb 100644 --- a/gems/bash-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile +++ b/gems/bash-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile @@ -1,6 +1,6 @@ -eval_gemfile "../../erb/r4/v5.0.gemfile" -eval_gemfile "../../mutex_m/r4/v0.3.gemfile" -eval_gemfile "../../stringio/r4/v3.0.gemfile" -eval_gemfile "../../benchmark/r4/v0.5.gemfile" -eval_gemfile "../../cgi/r4/v0.5.gemfile" -eval_gemfile "../../webrick/r4/v1.9.gemfile" +eval_gemfile '../../erb/r4/v5.0.gemfile' +eval_gemfile '../../mutex_m/r4/v0.3.gemfile' +eval_gemfile '../../stringio/r4/v3.0.gemfile' +eval_gemfile '../../benchmark/r4/v0.5.gemfile' +eval_gemfile '../../cgi/r4/v0.5.gemfile' +eval_gemfile '../../webrick/r4/v1.9.gemfile' diff --git a/gems/bash-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile b/gems/bash-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile index d4d5b16c9..ab75cccf1 100644 --- a/gems/bash-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile +++ b/gems/bash-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile @@ -1,6 +1,6 @@ -eval_gemfile "../erb/vHEAD.gemfile" -eval_gemfile "../mutex_m/vHEAD.gemfile" -eval_gemfile "../stringio/vHEAD.gemfile" -eval_gemfile "../benchmark/vHEAD.gemfile" -eval_gemfile "../cgi/vHEAD.gemfile" -eval_gemfile "../webrick/vHEAD.gemfile" +eval_gemfile '../erb/vHEAD.gemfile' +eval_gemfile '../mutex_m/vHEAD.gemfile' +eval_gemfile '../stringio/vHEAD.gemfile' +eval_gemfile '../benchmark/vHEAD.gemfile' +eval_gemfile '../cgi/vHEAD.gemfile' +eval_gemfile '../webrick/vHEAD.gemfile' diff --git a/gems/bash-merge/lib/bash/merge/version.rb b/gems/bash-merge/lib/bash/merge/version.rb index 54229c5dd..55b28eb7d 100644 --- a/gems/bash-merge/lib/bash/merge/version.rb +++ b/gems/bash-merge/lib/bash/merge/version.rb @@ -3,7 +3,7 @@ module Bash module Merge module Version - VERSION = "7.1.0" + VERSION = '7.1.0' end VERSION = Version::VERSION # Traditional Constant Location end diff --git a/gems/bash-merge/spec/spec_helper.rb b/gems/bash-merge/spec/spec_helper.rb index a76cd9197..c12e2bf49 100644 --- a/gems/bash-merge/spec/spec_helper.rb +++ b/gems/bash-merge/spec/spec_helper.rb @@ -7,16 +7,16 @@ # NOTE: Gemfiles for non-coverage appraisals may not have kettle-soup-cover. # The rescue LoadError handles that scenario. begin - require "kettle-soup-cover" + require 'kettle-soup-cover' if Kettle::Soup::Cover::DO_COV # Requiring simplecov loads the project-local `.simplecov`. - require "simplecov" - require "kettle/soup/cover/config" + require 'simplecov' + require 'kettle/soup/cover/config' SimpleCov.start end -rescue LoadError => error +rescue LoadError => e # check the error message and re-raise when unexpected - raise error unless error.message.include?("kettle") + raise e unless e.message.include?('kettle') end # External RSpec & related config diff --git a/gems/dotenv-merge/.kettle-drift.lock b/gems/dotenv-merge/.kettle-drift.lock index 43dfedd67..7cc6a5131 100644 --- a/gems/dotenv-merge/.kettle-drift.lock +++ b/gems/dotenv-merge/.kettle-drift.lock @@ -1,10 +1,74 @@ { + "(direct_sibling_local ||\nENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?)": [ + { + "file": "Gemfile", + "lines": [ + 80, + 120 + ] + } + ], + ".find { |spec| spec.name == 'nomono' }\nnomono_locked = nomono_locked_spec &&": [ + { + "file": "Gemfile", + "lines": [ + 91, + 131 + ] + } + ], + "ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?)\ndirect_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV')": [ + { + "file": "Gemfile", + "lines": [ + 81, + 121 + ] + } + ], + "Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version)\nnomono_activation_requirements = [\"= #{nomono_locked_spec.version}\"] if nomono_locked": [ + { + "file": "Gemfile", + "lines": [ + 93, + 133 + ] + } + ], + "Kernel.send(:gem, 'nomono', *nomono_activation_requirements)\nrequire 'nomono/bundler'": [ + { + "file": "Gemfile", + "lines": [ + 96, + 136 + ] + } + ], + "direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV')\ndirect_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil)": [ + { + "file": "Gemfile", + "lines": [ + 82, + 122 + ] + } + ], "eval_nomono_gems(\ngems: direct_sibling_gems,": [ { "file": "Gemfile", "lines": [ 60, - 100 + 100, + 140 + ] + } + ], + "gems: direct_sibling_gems,\nprefix: 'STRUCTUREDMERGE',": [ + { + "file": "Gemfile", + "lines": [ + 101, + 141 ] } ], @@ -13,7 +77,17 @@ "file": "Gemfile", "lines": [ 43, - 87 + 87, + 127 + ] + } + ], + "if direct_sibling_dev_was_set\nENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original": [ + { + "file": "Gemfile", + "lines": [ + 110, + 150 ] } ], @@ -22,7 +96,8 @@ "file": "Gemfile", "lines": [ 35, - 79 + 79, + 119 ] } ], @@ -31,7 +106,17 @@ "file": "Gemfile", "lines": [ 69, - 109 + 109, + 149 + ] + } + ], + "nomono_activation_requirements = nomono_requirements\nnomono_lockfile = File.expand_path('Gemfile.lock', __dir__)": [ + { + "file": "Gemfile", + "lines": [ + 85, + 125 ] } ], @@ -40,7 +125,8 @@ "file": "Gemfile", "lines": [ 48, - 92 + 92, + 132 ] } ], @@ -49,7 +135,53 @@ "file": "Gemfile", "lines": [ 44, - 88 + 88, + 128 + ] + } + ], + "nomono_lockfile = File.expand_path('Gemfile.lock', __dir__)\nif File.file?(nomono_lockfile)": [ + { + "file": "Gemfile", + "lines": [ + 86, + 126 + ] + } + ], + "path_env: 'STRUCTUREDMERGE_DEV',\nroot: %w[src my structuredmerge]": [ + { + "file": "Gemfile", + "lines": [ + 103, + 143 + ] + } + ], + "prefix: 'STRUCTUREDMERGE',\npath_env: 'STRUCTUREDMERGE_DEV',": [ + { + "file": "Gemfile", + "lines": [ + 102, + 142 + ] + } + ], + "require 'nomono/bundler'\nENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local": [ + { + "file": "Gemfile", + "lines": [ + 97, + 137 + ] + } + ], + "rescue LoadError\nwarn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.'": [ + { + "file": "Gemfile", + "lines": [ + 106, + 146 ] } ] diff --git a/gems/dotenv-merge/Gemfile b/gems/dotenv-merge/Gemfile index 9d53d9366..83c431109 100644 --- a/gems/dotenv-merge/Gemfile +++ b/gems/dotenv-merge/Gemfile @@ -6,7 +6,7 @@ # kettle-jem will then preserve content between those markers across template runs. # kettle-jem:unfreeze -source 'https://gem.coop' +source "https://gem.coop" git_source(:codeberg) { |repo_name| "https://codeberg.org/#{repo_name}" } git_source(:gitlab) { |repo_name| "https://gitlab.com/#{repo_name}" } @@ -19,18 +19,62 @@ git_source(:gitlab) { |repo_name| "https://gitlab.com/#{repo_name}" } gemspec # Local workspace dependency wiring for *_local.gemfile overrides -nomono_requirements = ['~> 1.0', '>= 1.0.8'] -gem 'nomono', *nomono_requirements, require: false # ruby >= 2.2 +nomono_requirements = ["~> 1.0", ">= 1.0.8"] +gem "nomono", *nomono_requirements, require: false # ruby >= 2.2 # Direct sibling dependencies (env-switched via STRUCTUREDMERGE_DEV) direct_sibling_gems = %w[ ast-merge tree_haver ] -direct_sibling_dev = ENV.fetch('STRUCTUREDMERGE_DEV', '') +direct_sibling_dev = ENV.fetch("STRUCTUREDMERGE_DEV", "") direct_sibling_local = !direct_sibling_dev.empty? && !%w[false 0 no off].include?(direct_sibling_dev.downcase) -direct_sibling_templating = ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? +direct_sibling_templating = ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? + +if direct_sibling_gems.any? && + (direct_sibling_local || + ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero?) + direct_sibling_dev_was_set = ENV.key?("STRUCTUREDMERGE_DEV") + direct_sibling_dev_original = ENV.fetch("STRUCTUREDMERGE_DEV", nil) + begin + nomono_activation_requirements = nomono_requirements + nomono_lockfile = File.expand_path("Gemfile.lock", __dir__) + if File.file?(nomono_lockfile) + nomono_locked_spec = Bundler::LockfileParser + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == "nomono" } + nomono_locked = nomono_locked_spec && + Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) + if nomono_locked + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] + end + end + Kernel.send(:gem, "nomono", *nomono_activation_requirements) + require "nomono/bundler" + if direct_sibling_templating && !direct_sibling_local + ENV["STRUCTUREDMERGE_DEV"] = File.expand_path("..", __dir__) + end + + eval_nomono_gems( + gems: direct_sibling_gems, + prefix: "STRUCTUREDMERGE", + path_env: "STRUCTUREDMERGE_DEV", + root: ["src", "my", "structuredmerge"] + ) + rescue LoadError + warn "Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies." + ensure + if direct_sibling_templating && !direct_sibling_local + if direct_sibling_dev_was_set + ENV["STRUCTUREDMERGE_DEV"] = direct_sibling_dev_original + else + ENV.delete("STRUCTUREDMERGE_DEV") + end + end + end +end if direct_sibling_gems.any? && (direct_sibling_local || @@ -113,28 +157,28 @@ if direct_sibling_gems.any? && end # Use released TSLP with the Ruby ABI platform-gem fix. -gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' +gem "tree_sitter_language_pack", "~> 1.13", ">= 1.13.3" # Templating (env-switched: STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local paths) -eval_gemfile 'gemfiles/modular/templating.gemfile' if ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? +eval_gemfile "gemfiles/modular/templating.gemfile" if ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? # Debugging -eval_gemfile 'gemfiles/modular/debug.gemfile' +eval_gemfile "gemfiles/modular/debug.gemfile" # Code Coverage (env-switched: KETTLE_DEV_DEV=true for local paths) -eval_gemfile 'gemfiles/modular/coverage.gemfile' +eval_gemfile "gemfiles/modular/coverage.gemfile" # Linting -eval_gemfile 'gemfiles/modular/style.gemfile' +eval_gemfile "gemfiles/modular/style.gemfile" # Documentation -eval_gemfile 'gemfiles/modular/documentation.gemfile' +eval_gemfile "gemfiles/modular/documentation.gemfile" # Optional -eval_gemfile 'gemfiles/modular/optional.gemfile' +eval_gemfile "gemfiles/modular/optional.gemfile" ### Std Lib Extracted Gems -eval_gemfile 'gemfiles/modular/x_std_libs.gemfile' +eval_gemfile "gemfiles/modular/x_std_libs.gemfile" # See unlocked_deps appraisal for more details on irb inclusion -gem 'irb', '~> 1.17' # ruby >= 2.7 +gem "irb", "~> 1.17" # ruby >= 2.7 diff --git a/gems/dotenv-merge/Gemfile.lock b/gems/dotenv-merge/Gemfile.lock index 7fbba7304..b756344fa 100644 --- a/gems/dotenv-merge/Gemfile.lock +++ b/gems/dotenv-merge/Gemfile.lock @@ -290,11 +290,7 @@ GEM cgi (0.5.2) citrus (3.0.2) cmdparse (3.0.7) - commonmarker (2.9.0-aarch64-linux) - commonmarker (2.9.0-aarch64-linux-musl) - commonmarker (2.9.0-arm64-darwin) commonmarker (2.9.0-x86_64-linux) - commonmarker (2.9.0-x86_64-linux-musl) concurrent-ruby (1.3.8) date (3.5.1) debug (1.11.1) @@ -567,7 +563,7 @@ GEM simplecov (>= 0.4.1) simplecov_lcov_formatter (0.9.0) simplecov (>= 0.18) - sorbet-runtime (0.6.13347) + sorbet-runtime (0.6.13351) standard (1.56.0) language_server-protocol (~> 3.17.0.2) lint_roller (~> 1.0) @@ -760,11 +756,7 @@ CHECKSUMS citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 - commonmarker (2.9.0-aarch64-linux) sha256=e2b4aadb9a2cfa4e206582641ce3a49465549ac1ed4c289fdd63b78d8f24579c - commonmarker (2.9.0-aarch64-linux-musl) sha256=1cf4d2821f2a7e64945f1ed7c4eeced586fdb27ea7fe7337788802cf8f57cfca - commonmarker (2.9.0-arm64-darwin) sha256=1748dbfa4f5813b0d2a14bb4bbfa65a4ec293aa1c825016d60029ee0e132b046 - commonmarker (2.9.0-x86_64-linux) sha256=8cfe92970eef585a19ddf6613224b91cab64d6029834661bda801f877c9c7f43 - commonmarker (2.9.0-x86_64-linux-musl) sha256=293921398b839f79ceaf55010e061357e34f053822c3b003cd0be6686176335e + commonmarker (2.9.0-x86_64-linux) commonmarker-merge (7.1.0) concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 @@ -792,7 +784,7 @@ CHECKSUMS json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 json-merge (7.1.0) kettle-dev (2.3.8) sha256=9d716ff21c660a730cb4e8d41e2e2f0630a28167a354b6e2924e242102aef72c - kettle-drift (1.0.6) sha256=46eda08fa4411d1f3c6682a95eef1c9df4e94611b3949f49d4c7b43c0ed356a3 + kettle-drift (1.0.6) kettle-jem (7.1.0) kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f kettle-soup-cover (3.0.4) @@ -805,7 +797,7 @@ CHECKSUMS lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 markdown-merge (7.1.0) - markly (0.16.0) sha256=6f70d79e385b1efc9e171f74c81628826259039fe6c778e03c3924c71dac5511 + markly (0.16.0) markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-aarch64-linux-gnu) sha256=1269fb644a6de405057a53dd5c762b1209b43ca7424f839454d3dbc677c31a8f @@ -873,7 +865,7 @@ CHECKSUMS ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 rust-merge (7.1.0) - service_actor (3.9.4) sha256=e63b523630b9a7e62959b2a90113b08d2565b5de9c148557b281ef847c9539ce + service_actor (3.9.4) silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea @@ -881,7 +873,7 @@ CHECKSUMS simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed smorg-rb (7.1.0) - sorbet-runtime (0.6.13347) sha256=54e7221d9f4b63f58aec79f3043752a9ba7810347c6ae0d903531591cc2d5f01 + sorbet-runtime (0.6.13351) sha256=f8fee17c6e3edf835dc6823d26afb9a7c8969c6710d1fabe2fb43f4e0c15c64f standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b standard-performance (1.9.0) sha256=49483d31be448292951d80e5e67cdcb576c2502103c7b40aec6f1b6e9c88e3f2 @@ -895,9 +887,9 @@ CHECKSUMS timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.5) sha256=b852f924287ffb58a440856e862b056c8ad97e74b4b2526cee43e0771f40c25c - toml (0.3.0) sha256=0a91d0f76a9036e84e44f95693b12f58d358c1df3ac8e3b5271f2056ecc6e4b9 + toml (0.3.0) toml-merge (7.1.0) - toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 + toml-rb (4.2.0) tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-aarch64-linux) sha256=55ffc7c87868cb45658338363d9eba51b4a8b0259aa88e4de368d2bd1d52fea4 tree_sitter_language_pack (1.13.3-arm64-darwin) sha256=bc2498db605f212a1dbd2465ed3f65190d7da786f6ed5d30fcf958121aeb4a5c diff --git a/gems/dotenv-merge/Rakefile b/gems/dotenv-merge/Rakefile index f9c91d66d..0eb280538 100644 --- a/gems/dotenv-merge/Rakefile +++ b/gems/dotenv-merge/Rakefile @@ -130,23 +130,23 @@ end ### DUPLICATE DRIFT TASKS begin - require 'kettle/drift' + require "kettle/drift" Kettle::Drift.install_tasks rescue LoadError - desc('(stub) kettle:drift:check is unavailable') - task('kettle:drift:check') do + desc("(stub) kettle:drift:check is unavailable") + task("kettle:drift:check") do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc('(stub) kettle:drift:update is unavailable') - task('kettle:drift:update') do + desc("(stub) kettle:drift:update is unavailable") + task("kettle:drift:update") do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc('(stub) kettle:drift:force_update is unavailable') - task('kettle:drift:force_update') do + desc("(stub) kettle:drift:force_update is unavailable") + task("kettle:drift:force_update") do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc('(stub) kettle:drift is unavailable') - task('kettle:drift' => 'kettle:drift:update') + desc("(stub) kettle:drift is unavailable") + task("kettle:drift" => "kettle:drift:update") end ### TEMPLATING TASKS diff --git a/gems/dotenv-merge/gemfiles/modular/templating.gemfile b/gems/dotenv-merge/gemfiles/modular/templating.gemfile index a672de184..47138ffbb 100644 --- a/gems/dotenv-merge/gemfiles/modular/templating.gemfile +++ b/gems/dotenv-merge/gemfiles/modular/templating.gemfile @@ -1,18 +1,18 @@ # frozen_string_literal: true -structuredmerge_remote = ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false').zero? -kettle_remote = ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? +structuredmerge_remote = ENV.fetch("STRUCTUREDMERGE_DEV", "false").casecmp("false").zero? +kettle_remote = ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false").zero? if structuredmerge_remote # Parser dependencies for released installs. - gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' + gem "tree_sitter_language_pack", "~> 1.13", ">= 1.13.3" # Merge recipes for released installs. - gem 'kettle-jem', '>= 7.0' + gem "kettle-jem", ">= 7.0" end if kettle_remote # Template/plugin checks for released installs. - gem 'kettle-drift', '~> 1.0', '>= 1.0.6', require: false + gem "kettle-drift", "~> 1.0", ">= 1.0.6", require: false end # Set STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local development with path-based dependencies. @@ -21,4 +21,4 @@ end # # Set KETTLE_DEV_DEV=/path/to/my for local development with Kettle plugin gems. # When false (default / CI), released Kettle plugin gems are used. -eval_gemfile 'templating_local.gemfile' unless structuredmerge_remote && kettle_remote +eval_gemfile "templating_local.gemfile" unless structuredmerge_remote && kettle_remote diff --git a/gems/dotenv-merge/gemfiles/modular/templating_local.gemfile b/gems/dotenv-merge/gemfiles/modular/templating_local.gemfile index 0fe97f4b6..8a2d8c00c 100644 --- a/gems/dotenv-merge/gemfiles/modular/templating_local.gemfile +++ b/gems/dotenv-merge/gemfiles/modular/templating_local.gemfile @@ -12,19 +12,21 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] -nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) +nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] +nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == "nomono" } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + if nomono_locked + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] + end end -Kernel.send(:gem, 'nomono', *nomono_activation_requirements) -require 'nomono/bundler' +Kernel.send(:gem, "nomono", *nomono_activation_requirements) +require "nomono/bundler" structuredmerge_local_gems = %w[ tree_haver @@ -67,25 +69,25 @@ structuredmerge_local_gems_to_eval = structuredmerge_local_gems - %w[dotenv-merg kettle_dev_local_gems_to_eval = kettle_dev_local_gems - %w[dotenv-merge] - declared_gems platform :mri do - if ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false') != 0 + if ENV.fetch("STRUCTUREDMERGE_DEV", "false").casecmp("false") != 0 eval_nomono_gems( gems: structuredmerge_local_gems_to_eval, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - vendored_gems_env: 'VENDORED_GEMS', - vendor_gem_dir_env: 'VENDOR_GEM_DIR', - debug_env: 'STRUCTUREDMERGE_DEBUG' + prefix: "STRUCTUREDMERGE", + path_env: "STRUCTUREDMERGE_DEV", + vendored_gems_env: "VENDORED_GEMS", + vendor_gem_dir_env: "VENDOR_GEM_DIR", + debug_env: "STRUCTUREDMERGE_DEBUG" ) end - if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false') != 0 + if ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false") != 0 eval_nomono_gems( gems: kettle_dev_local_gems_to_eval, - prefix: 'KETTLE_DEV', - path_env: 'KETTLE_DEV_DEV', - vendored_gems_env: 'VENDORED_GEMS', - vendor_gem_dir_env: 'VENDOR_GEM_DIR', - debug_env: 'KETTLE_DEV_DEBUG' + prefix: "KETTLE_DEV", + path_env: "KETTLE_DEV_DEV", + vendored_gems_env: "VENDORED_GEMS", + vendor_gem_dir_env: "VENDOR_GEM_DIR", + debug_env: "KETTLE_DEV_DEBUG" ) end end diff --git a/gems/dotenv-merge/lib/dotenv/merge/version.rb b/gems/dotenv-merge/lib/dotenv/merge/version.rb index 7808fd0ae..d3d9f5371 100644 --- a/gems/dotenv-merge/lib/dotenv/merge/version.rb +++ b/gems/dotenv-merge/lib/dotenv/merge/version.rb @@ -3,7 +3,7 @@ module Dotenv module Merge module Version - VERSION = '7.1.0' + VERSION = "7.1.0" end VERSION = Version::VERSION # Traditional Constant Location end diff --git a/gems/plain-merge/Gemfile.lock b/gems/plain-merge/Gemfile.lock index bc90d4c59..e56d31ae4 100644 --- a/gems/plain-merge/Gemfile.lock +++ b/gems/plain-merge/Gemfile.lock @@ -6,24 +6,6 @@ PATH tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) -PATH - remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/ast-merge - specs: - ast-merge (7.1.0) - benchmark - token-resolver (~> 2.0, >= 2.0.4) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/tree_haver - specs: - tree_haver (7.1.0) - citrus (~> 3.0) - parslet (~> 2.0) - tree_sitter_language_pack (>= 1.13.2, < 2.0) - version_gem (~> 1.1, >= 1.1.9) - GEM remote: https://gem.coop/ specs: @@ -39,6 +21,11 @@ GEM rubocop (>= 1.0) version_gem (~> 1.1, >= 1.1.14) ast (2.4.3) + ast-merge (7.1.0) + benchmark + token-resolver (~> 2.0, >= 2.0.4) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) backports (3.25.3) benchmark (0.5.0) bigdecimal (4.1.2) @@ -354,6 +341,11 @@ GEM token-resolver (2.0.5) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.14) + tree_haver (7.1.0) + citrus (~> 3.0) + parslet (~> 2.0) + tree_sitter_language_pack (>= 1.13.2, < 2.0) + version_gem (~> 1.1, >= 1.1.9) tree_sitter_language_pack (1.13.3-aarch64-linux) sorbet-runtime (~> 0.5) tree_sitter_language_pack (1.13.3-arm64-darwin) @@ -408,7 +400,6 @@ DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) appraisal2-rubocop (~> 1.0, >= 1.0.0) - ast-merge! benchmark (~> 0.5, >= 0.5.0) bundler-audit (~> 0.9.3) cgi (~> 0.5) @@ -441,7 +432,6 @@ DEPENDENCIES standard (~> 1.56, >= 1.56.0) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) - tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) webrick (~> 1.9) yaml-converter (~> 0.2, >= 0.2.3) diff --git a/gems/rbs-merge/Gemfile.lock b/gems/rbs-merge/Gemfile.lock index bc3de6c9f..fdcf225be 100644 --- a/gems/rbs-merge/Gemfile.lock +++ b/gems/rbs-merge/Gemfile.lock @@ -7,6 +7,265 @@ PATH tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.14) +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly + specs: + ast-crispr-markdown-markly (7.1.0) + ast-crispr (= 7.1.0) + markly-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism + specs: + ast-crispr-ruby-prism (7.1.0) + ast-crispr (= 7.1.0) + prism-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr + specs: + ast-crispr (7.1.0) + ast-merge (= 7.1.0) + service_actor (~> 3.9) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git + specs: + ast-merge-git (7.1.0) + ast-merge (= 7.1.0) + json-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge + specs: + ast-merge (7.1.0) + benchmark + token-resolver (~> 2.0, >= 2.0.4) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template + specs: + ast-template (7.1.0) + ast-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge + specs: + bash-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge + specs: + binary-merge (7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge + specs: + citrus-toml-merge (7.1.0) + toml-merge (= 7.1.0) + toml-rb (~> 4.1) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge + specs: + commonmarker-merge (7.1.0) + commonmarker (~> 2.2) + markdown-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge + specs: + dotenv-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge + specs: + go-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge + specs: + json-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem + specs: + kettle-jem (7.1.0) + addressable (>= 2.8, < 3) + ast-crispr-markdown-markly (= 7.1.0) + ast-crispr-ruby-prism (= 7.1.0) + ast-merge (= 7.1.0) + bash-merge (= 7.1.0) + citrus-toml-merge (= 7.1.0) + commonmarker-merge (= 7.1.0) + dotenv-merge (= 7.1.0) + json-merge (= 7.1.0) + kettle-dev (~> 2.3, >= 2.3.5) + kettle-rb (~> 0.1, >= 0.1.4) + kramdown-merge (= 7.1.0) + markdown-merge (= 7.1.0) + markly-merge (= 7.1.0) + prism-merge (= 7.1.0) + psych-merge (= 7.1.0) + rbs (>= 3.10) + rbs-merge (= 7.1.0) + ruby-merge (= 7.1.0) + token-resolver (~> 2.0, >= 2.0.4) + toml-merge (= 7.1.0) + toml-rb (~> 4.2) + tree_haver (= 7.1.0) + yaml-merge (= 7.1.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge + specs: + kramdown-merge (7.1.0) + kramdown (~> 2.5) + markdown-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge + specs: + markdown-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge + specs: + markly-merge (7.1.0) + markdown-merge (= 7.1.0) + markly (~> 0.9) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge + specs: + parslet-toml-merge (7.1.0) + toml (~> 0.3) + toml-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge + specs: + plain-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge + specs: + prism-merge (7.1.0) + prism (~> 1.6) + ruby-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge + specs: + psych-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + yaml-merge (= 7.1.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge + specs: + ruby-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge + specs: + rust-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb + specs: + smorg-rb (7.1.0) + ast-merge (= 7.1.0) + ast-merge-git (= 7.1.0) + diff-lcs (~> 1.5) + go-merge (= 7.1.0) + json-merge (= 7.1.0) + kettle-jem (= 7.1.0) + markly-merge (= 7.1.0) + plain-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge + specs: + toml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver + specs: + tree_haver (7.1.0) + citrus (~> 3.0) + parslet (~> 2.0) + tree_sitter_language_pack (>= 1.13.2, < 2.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge + specs: + typescript-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge + specs: + yaml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge + specs: + zip-merge (7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + GEM remote: https://gem.coop/ specs: @@ -22,11 +281,6 @@ GEM rubocop (>= 1.0) version_gem (~> 1.1, >= 1.1.14) ast (2.4.3) - ast-merge (7.1.0) - benchmark - token-resolver (~> 2.0, >= 2.0.4) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) backports (3.25.3) benchmark (0.5.0) bigdecimal (4.1.2) @@ -36,6 +290,11 @@ GEM cgi (0.5.2) citrus (3.0.2) cmdparse (3.0.7) + commonmarker (2.9.0-aarch64-linux) + commonmarker (2.9.0-aarch64-linux-musl) + commonmarker (2.9.0-arm64-darwin) + commonmarker (2.9.0-x86_64-linux) + commonmarker (2.9.0-x86_64-linux-musl) concurrent-ruby (1.3.8) date (3.5.1) debug (1.11.1) @@ -98,6 +357,8 @@ GEM kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) + kettle-drift (1.0.6) + version_gem (~> 1.1, >= 1.1.14) kettle-rb (0.1.5) kettle-soup-cover (3.0.4) kettle-wash (~> 0.1, >= 0.1.0) @@ -126,6 +387,7 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) + markly (0.16.0) mutex_m (0.3.0) nokogiri (1.19.4-aarch64-linux-gnu) racc (~> 1.4) @@ -288,6 +550,8 @@ GEM ruby-progressbar (1.13.0) ruby_engine (2.0.3) ruby_version (1.0.3) + service_actor (3.9.4) + zeitwerk (>= 1.0) silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) @@ -342,11 +606,11 @@ GEM token-resolver (2.0.5) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.14) - tree_haver (7.1.0) - citrus (~> 3.0) - parslet (~> 2.0) - tree_sitter_language_pack (>= 1.13.2, < 2.0) - version_gem (~> 1.1, >= 1.1.9) + toml (0.3.0) + parslet (>= 1.8.0, < 3.0.0) + toml-rb (4.2.0) + citrus (~> 3.0, > 3.0) + racc (~> 1.7) tree_sitter_language_pack (1.13.3-aarch64-linux) sorbet-runtime (~> 0.5) tree_sitter_language_pack (1.13.3-arm64-darwin) @@ -401,21 +665,43 @@ DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.2, >= 3.2.0) appraisal2-rubocop (~> 1.0, >= 1.0.0) + ast-crispr! + ast-crispr-markdown-markly! + ast-crispr-ruby-prism! + ast-merge! + ast-merge-git! + ast-template! + bash-merge! benchmark (~> 0.5, >= 0.5.0) + binary-merge! bundler-audit (~> 0.9.3) cgi (~> 0.5) + citrus-toml-merge! + commonmarker-merge! debug (>= 1.1) + dotenv-merge! erb (~> 6.0, >= 6.0.6) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.4) + go-merge! irb (~> 1.17) + json-merge! kettle-dev (~> 2.3, >= 2.3.7) + kettle-drift (~> 1.0, >= 1.0.6) + kettle-jem! kettle-soup-cover (~> 3.0, >= 3.0.3) kettle-test (~> 2.0, >= 2.0.12) kramdown (~> 2.5, >= 2.5.2) + kramdown-merge! kramdown-parser-gfm (~> 1.1) + markdown-merge! + markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) + parslet-toml-merge! + plain-merge! + prism-merge! + psych-merge! rake (~> 13.0) rbs-merge! rdoc (~> 6.11) @@ -428,20 +714,28 @@ DEPENDENCIES rubocop-on-rbs (~> 2.0, >= 2.0.0) rubocop-packaging (~> 0.6, >= 0.6.0) rubocop-ruby3_2 (~> 3.0, >= 3.0.6) + ruby-merge! ruby-progressbar (~> 1.13) + rust-merge! + smorg-rb! standard (~> 1.56, >= 1.56.0) stone_checksums (~> 1.0, >= 1.0.6) stringio (>= 3.0) + toml-merge! + tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) turbo_tests2 (~> 3.2, >= 3.2.0) + typescript-merge! webrick (~> 1.9) yaml-converter (~> 0.2, >= 0.2.3) + yaml-merge! yard (~> 0.9, >= 0.9.45) yard-fence (~> 0.9, >= 0.9.6) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) yard-timekeeper (~> 0.2, >= 0.2.4) yard-yaml (~> 0.2, >= 0.2.3) + zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af @@ -449,20 +743,35 @@ CHECKSUMS appraisal2 (3.2.0) sha256=ccd0b767ac4060cd7af6d16747459b6990f49c39c7b4fb1f7d1146b1e97c492f appraisal2-rubocop (1.0.0) sha256=b71410fbb014befda5340605a605b7f6f3f012739baf0acc5b4351b592c3258d ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 + ast-crispr (7.1.0) + ast-crispr-markdown-markly (7.1.0) + ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) + ast-merge-git (7.1.0) + ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 + bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd + binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 + citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 + commonmarker (2.9.0-aarch64-linux) sha256=e2b4aadb9a2cfa4e206582641ce3a49465549ac1ed4c289fdd63b78d8f24579c + commonmarker (2.9.0-aarch64-linux-musl) sha256=1cf4d2821f2a7e64945f1ed7c4eeced586fdb27ea7fe7337788802cf8f57cfca + commonmarker (2.9.0-arm64-darwin) sha256=1748dbfa4f5813b0d2a14bb4bbfa65a4ec293aa1c825016d60029ee0e132b046 + commonmarker (2.9.0-x86_64-linux) sha256=8cfe92970eef585a19ddf6613224b91cab64d6029834661bda801f877c9c7f43 + commonmarker (2.9.0-x86_64-linux-musl) sha256=293921398b839f79ceaf55010e061357e34f053822c3b003cd0be6686176335e + commonmarker-merge (7.1.0) concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 + dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -475,20 +784,28 @@ CHECKSUMS gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f + go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 + json-merge (7.1.0) kettle-dev (2.3.8) sha256=9d716ff21c660a730cb4e8d41e2e2f0630a28167a354b6e2924e242102aef72c + kettle-drift (1.0.6) sha256=46eda08fa4411d1f3c6682a95eef1c9df4e94611b3949f49d4c7b43c0ed356a3 + kettle-jem (7.1.0) kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f kettle-soup-cover (3.0.4) kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa + kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 + markdown-merge (7.1.0) + markly (0.16.0) sha256=6f70d79e385b1efc9e171f74c81628826259039fe6c778e03c3924c71dac5511 + markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-aarch64-linux-gnu) sha256=1269fb644a6de405057a53dd5c762b1209b43ca7424f839454d3dbc677c31a8f nokogiri (1.19.4-aarch64-linux-musl) sha256=35c65b9ce72b3bb03207bdbe7067915019dc18c1b9b59139684bd6690fdd01af @@ -502,10 +819,14 @@ CHECKSUMS parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 + parslet-toml-merge (7.1.0) + plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 + prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 + psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a @@ -546,15 +867,19 @@ CHECKSUMS rubocop-rspec_rails (2.32.0) sha256=4a0d641c72f6ebb957534f539d9d0a62c47abd8ce0d0aeee1ef4701e892a9100 rubocop-ruby3_2 (3.0.7) sha256=f53dd6d286fb05186214fc6ec116783e7f837030918e8931c05de773e98f8466 rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 + ruby-merge (7.1.0) ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 + rust-merge (7.1.0) + service_actor (3.9.4) sha256=e63b523630b9a7e62959b2a90113b08d2565b5de9c148557b281ef847c9539ce silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed + smorg-rb (7.1.0) sorbet-runtime (0.6.13347) sha256=54e7221d9f4b63f58aec79f3043752a9ba7810347c6ae0d903531591cc2d5f01 standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b @@ -569,17 +894,22 @@ CHECKSUMS timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.5) sha256=b852f924287ffb58a440856e862b056c8ad97e74b4b2526cee43e0771f40c25c + toml (0.3.0) sha256=0a91d0f76a9036e84e44f95693b12f58d358c1df3ac8e3b5271f2056ecc6e4b9 + toml-merge (7.1.0) + toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-aarch64-linux) sha256=55ffc7c87868cb45658338363d9eba51b4a8b0259aa88e4de368d2bd1d52fea4 tree_sitter_language_pack (1.13.3-arm64-darwin) sha256=bc2498db605f212a1dbd2465ed3f65190d7da786f6ed5d30fcf958121aeb4a5c tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 + typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 webrick (1.9.2) sha256=beb4a15fc474defed24a3bda4ffd88a490d517c9e4e6118c3edce59e45864131 yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 + yaml-merge (7.1.0) yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd @@ -587,6 +917,7 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 + zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH From 3cc47efd0cdcc97946e1acec90870e228c70fe88 Mon Sep 17 00:00:00 2001 From: "Peter H. Boling" Date: Tue, 21 Jul 2026 18:03:05 -0600 Subject: [PATCH 158/188] =?UTF-8?q?=F0=9F=8E=A8=20Template=20bootstrap=20b?= =?UTF-8?q?y=20kettle-jem=20v7.1.0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gems/ast-merge/Gemfile.lock | 6 +- gems/rbs-merge/.kettle-drift.lock | 144 +++++++++++++++++- gems/rbs-merge/Gemfile | 72 +++++++-- gems/rbs-merge/Rakefile | 18 +-- .../gemfiles/modular/templating.gemfile | 12 +- .../gemfiles/modular/templating_local.gemfile | 44 +++--- gems/rbs-merge/lib/rbs/merge/version.rb | 2 +- 7 files changed, 238 insertions(+), 60 deletions(-) diff --git a/gems/ast-merge/Gemfile.lock b/gems/ast-merge/Gemfile.lock index daf8d7e3a..dcd9de23b 100644 --- a/gems/ast-merge/Gemfile.lock +++ b/gems/ast-merge/Gemfile.lock @@ -8,7 +8,7 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/tree_haver specs: tree_haver (7.1.0) citrus (~> 3.0) @@ -97,7 +97,7 @@ GEM rdoc (>= 4.0.0) reline (>= 0.4.2) json (2.21.1) - kettle-dev (2.3.8) + kettle-dev (2.3.9) emoji_regex (>= 15.0) kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) @@ -478,7 +478,7 @@ CHECKSUMS io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 - kettle-dev (2.3.8) sha256=9d716ff21c660a730cb4e8d41e2e2f0630a28167a354b6e2924e242102aef72c + kettle-dev (2.3.9) kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f kettle-soup-cover (3.0.4) kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 diff --git a/gems/rbs-merge/.kettle-drift.lock b/gems/rbs-merge/.kettle-drift.lock index 43dfedd67..7cc6a5131 100644 --- a/gems/rbs-merge/.kettle-drift.lock +++ b/gems/rbs-merge/.kettle-drift.lock @@ -1,10 +1,74 @@ { + "(direct_sibling_local ||\nENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?)": [ + { + "file": "Gemfile", + "lines": [ + 80, + 120 + ] + } + ], + ".find { |spec| spec.name == 'nomono' }\nnomono_locked = nomono_locked_spec &&": [ + { + "file": "Gemfile", + "lines": [ + 91, + 131 + ] + } + ], + "ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?)\ndirect_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV')": [ + { + "file": "Gemfile", + "lines": [ + 81, + 121 + ] + } + ], + "Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version)\nnomono_activation_requirements = [\"= #{nomono_locked_spec.version}\"] if nomono_locked": [ + { + "file": "Gemfile", + "lines": [ + 93, + 133 + ] + } + ], + "Kernel.send(:gem, 'nomono', *nomono_activation_requirements)\nrequire 'nomono/bundler'": [ + { + "file": "Gemfile", + "lines": [ + 96, + 136 + ] + } + ], + "direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV')\ndirect_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil)": [ + { + "file": "Gemfile", + "lines": [ + 82, + 122 + ] + } + ], "eval_nomono_gems(\ngems: direct_sibling_gems,": [ { "file": "Gemfile", "lines": [ 60, - 100 + 100, + 140 + ] + } + ], + "gems: direct_sibling_gems,\nprefix: 'STRUCTUREDMERGE',": [ + { + "file": "Gemfile", + "lines": [ + 101, + 141 ] } ], @@ -13,7 +77,17 @@ "file": "Gemfile", "lines": [ 43, - 87 + 87, + 127 + ] + } + ], + "if direct_sibling_dev_was_set\nENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original": [ + { + "file": "Gemfile", + "lines": [ + 110, + 150 ] } ], @@ -22,7 +96,8 @@ "file": "Gemfile", "lines": [ 35, - 79 + 79, + 119 ] } ], @@ -31,7 +106,17 @@ "file": "Gemfile", "lines": [ 69, - 109 + 109, + 149 + ] + } + ], + "nomono_activation_requirements = nomono_requirements\nnomono_lockfile = File.expand_path('Gemfile.lock', __dir__)": [ + { + "file": "Gemfile", + "lines": [ + 85, + 125 ] } ], @@ -40,7 +125,8 @@ "file": "Gemfile", "lines": [ 48, - 92 + 92, + 132 ] } ], @@ -49,7 +135,53 @@ "file": "Gemfile", "lines": [ 44, - 88 + 88, + 128 + ] + } + ], + "nomono_lockfile = File.expand_path('Gemfile.lock', __dir__)\nif File.file?(nomono_lockfile)": [ + { + "file": "Gemfile", + "lines": [ + 86, + 126 + ] + } + ], + "path_env: 'STRUCTUREDMERGE_DEV',\nroot: %w[src my structuredmerge]": [ + { + "file": "Gemfile", + "lines": [ + 103, + 143 + ] + } + ], + "prefix: 'STRUCTUREDMERGE',\npath_env: 'STRUCTUREDMERGE_DEV',": [ + { + "file": "Gemfile", + "lines": [ + 102, + 142 + ] + } + ], + "require 'nomono/bundler'\nENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local": [ + { + "file": "Gemfile", + "lines": [ + 97, + 137 + ] + } + ], + "rescue LoadError\nwarn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.'": [ + { + "file": "Gemfile", + "lines": [ + 106, + 146 ] } ] diff --git a/gems/rbs-merge/Gemfile b/gems/rbs-merge/Gemfile index 46cc7fad8..1dd0bb16b 100644 --- a/gems/rbs-merge/Gemfile +++ b/gems/rbs-merge/Gemfile @@ -6,7 +6,7 @@ # kettle-jem will then preserve content between those markers across template runs. # kettle-jem:unfreeze -source 'https://gem.coop' +source "https://gem.coop" git_source(:codeberg) { |repo_name| "https://codeberg.org/#{repo_name}" } git_source(:gitlab) { |repo_name| "https://gitlab.com/#{repo_name}" } @@ -19,18 +19,62 @@ git_source(:gitlab) { |repo_name| "https://gitlab.com/#{repo_name}" } gemspec # Local workspace dependency wiring for *_local.gemfile overrides -nomono_requirements = ['~> 1.0', '>= 1.0.8'] -gem 'nomono', *nomono_requirements, require: false # ruby >= 2.2 +nomono_requirements = ["~> 1.0", ">= 1.0.8"] +gem "nomono", *nomono_requirements, require: false # ruby >= 2.2 # Direct sibling dependencies (env-switched via STRUCTUREDMERGE_DEV) direct_sibling_gems = %w[ ast-merge tree_haver ] -direct_sibling_dev = ENV.fetch('STRUCTUREDMERGE_DEV', '') +direct_sibling_dev = ENV.fetch("STRUCTUREDMERGE_DEV", "") direct_sibling_local = !direct_sibling_dev.empty? && !%w[false 0 no off].include?(direct_sibling_dev.downcase) -direct_sibling_templating = ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? +direct_sibling_templating = ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? + +if direct_sibling_gems.any? && + (direct_sibling_local || + ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero?) + direct_sibling_dev_was_set = ENV.key?("STRUCTUREDMERGE_DEV") + direct_sibling_dev_original = ENV.fetch("STRUCTUREDMERGE_DEV", nil) + begin + nomono_activation_requirements = nomono_requirements + nomono_lockfile = File.expand_path("Gemfile.lock", __dir__) + if File.file?(nomono_lockfile) + nomono_locked_spec = Bundler::LockfileParser + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == "nomono" } + nomono_locked = nomono_locked_spec && + Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) + if nomono_locked + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] + end + end + Kernel.send(:gem, "nomono", *nomono_activation_requirements) + require "nomono/bundler" + if direct_sibling_templating && !direct_sibling_local + ENV["STRUCTUREDMERGE_DEV"] = File.expand_path("..", __dir__) + end + + eval_nomono_gems( + gems: direct_sibling_gems, + prefix: "STRUCTUREDMERGE", + path_env: "STRUCTUREDMERGE_DEV", + root: ["src", "my", "structuredmerge"] + ) + rescue LoadError + warn "Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies." + ensure + if direct_sibling_templating && !direct_sibling_local + if direct_sibling_dev_was_set + ENV["STRUCTUREDMERGE_DEV"] = direct_sibling_dev_original + else + ENV.delete("STRUCTUREDMERGE_DEV") + end + end + end +end if direct_sibling_gems.any? && (direct_sibling_local || @@ -113,28 +157,28 @@ if direct_sibling_gems.any? && end # Use released TSLP with the Ruby ABI platform-gem fix. -gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' +gem "tree_sitter_language_pack", "~> 1.13", ">= 1.13.3" # Templating (env-switched: STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local paths) -eval_gemfile 'gemfiles/modular/templating.gemfile' if ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? +eval_gemfile "gemfiles/modular/templating.gemfile" if ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? # Debugging -eval_gemfile 'gemfiles/modular/debug.gemfile' +eval_gemfile "gemfiles/modular/debug.gemfile" # Code Coverage (env-switched: KETTLE_DEV_DEV=true for local paths) -eval_gemfile 'gemfiles/modular/coverage.gemfile' +eval_gemfile "gemfiles/modular/coverage.gemfile" # Linting -eval_gemfile 'gemfiles/modular/style.gemfile' +eval_gemfile "gemfiles/modular/style.gemfile" # Documentation -eval_gemfile 'gemfiles/modular/documentation.gemfile' +eval_gemfile "gemfiles/modular/documentation.gemfile" # Optional -eval_gemfile 'gemfiles/modular/optional.gemfile' +eval_gemfile "gemfiles/modular/optional.gemfile" ### Std Lib Extracted Gems -eval_gemfile 'gemfiles/modular/x_std_libs.gemfile' +eval_gemfile "gemfiles/modular/x_std_libs.gemfile" # See unlocked_deps appraisal for more details on irb inclusion -gem 'irb', '~> 1.17' # ruby >= 2.7 +gem "irb", "~> 1.17" # ruby >= 2.7 diff --git a/gems/rbs-merge/Rakefile b/gems/rbs-merge/Rakefile index bd4e18e2d..34f8ffe21 100644 --- a/gems/rbs-merge/Rakefile +++ b/gems/rbs-merge/Rakefile @@ -130,23 +130,23 @@ end ### DUPLICATE DRIFT TASKS begin - require 'kettle/drift' + require "kettle/drift" Kettle::Drift.install_tasks rescue LoadError - desc('(stub) kettle:drift:check is unavailable') - task('kettle:drift:check') do + desc("(stub) kettle:drift:check is unavailable") + task("kettle:drift:check") do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc('(stub) kettle:drift:update is unavailable') - task('kettle:drift:update') do + desc("(stub) kettle:drift:update is unavailable") + task("kettle:drift:update") do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc('(stub) kettle:drift:force_update is unavailable') - task('kettle:drift:force_update') do + desc("(stub) kettle:drift:force_update is unavailable") + task("kettle:drift:force_update") do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc('(stub) kettle:drift is unavailable') - task('kettle:drift' => 'kettle:drift:update') + desc("(stub) kettle:drift is unavailable") + task("kettle:drift" => "kettle:drift:update") end ### TEMPLATING TASKS diff --git a/gems/rbs-merge/gemfiles/modular/templating.gemfile b/gems/rbs-merge/gemfiles/modular/templating.gemfile index a672de184..47138ffbb 100644 --- a/gems/rbs-merge/gemfiles/modular/templating.gemfile +++ b/gems/rbs-merge/gemfiles/modular/templating.gemfile @@ -1,18 +1,18 @@ # frozen_string_literal: true -structuredmerge_remote = ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false').zero? -kettle_remote = ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? +structuredmerge_remote = ENV.fetch("STRUCTUREDMERGE_DEV", "false").casecmp("false").zero? +kettle_remote = ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false").zero? if structuredmerge_remote # Parser dependencies for released installs. - gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' + gem "tree_sitter_language_pack", "~> 1.13", ">= 1.13.3" # Merge recipes for released installs. - gem 'kettle-jem', '>= 7.0' + gem "kettle-jem", ">= 7.0" end if kettle_remote # Template/plugin checks for released installs. - gem 'kettle-drift', '~> 1.0', '>= 1.0.6', require: false + gem "kettle-drift", "~> 1.0", ">= 1.0.6", require: false end # Set STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local development with path-based dependencies. @@ -21,4 +21,4 @@ end # # Set KETTLE_DEV_DEV=/path/to/my for local development with Kettle plugin gems. # When false (default / CI), released Kettle plugin gems are used. -eval_gemfile 'templating_local.gemfile' unless structuredmerge_remote && kettle_remote +eval_gemfile "templating_local.gemfile" unless structuredmerge_remote && kettle_remote diff --git a/gems/rbs-merge/gemfiles/modular/templating_local.gemfile b/gems/rbs-merge/gemfiles/modular/templating_local.gemfile index bdeeaa089..3391bac54 100644 --- a/gems/rbs-merge/gemfiles/modular/templating_local.gemfile +++ b/gems/rbs-merge/gemfiles/modular/templating_local.gemfile @@ -12,19 +12,21 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] -nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) +nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] +nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == "nomono" } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + if nomono_locked + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] + end end -Kernel.send(:gem, 'nomono', *nomono_activation_requirements) -require 'nomono/bundler' +Kernel.send(:gem, "nomono", *nomono_activation_requirements) +require "nomono/bundler" structuredmerge_local_gems = %w[ tree_haver @@ -67,25 +69,25 @@ structuredmerge_local_gems_to_eval = structuredmerge_local_gems - %w[rbs-merge] kettle_dev_local_gems_to_eval = kettle_dev_local_gems - %w[rbs-merge] - declared_gems platform :mri do - if ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false') != 0 + if ENV.fetch("STRUCTUREDMERGE_DEV", "false").casecmp("false") != 0 eval_nomono_gems( gems: structuredmerge_local_gems_to_eval, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - vendored_gems_env: 'VENDORED_GEMS', - vendor_gem_dir_env: 'VENDOR_GEM_DIR', - debug_env: 'STRUCTUREDMERGE_DEBUG' + prefix: "STRUCTUREDMERGE", + path_env: "STRUCTUREDMERGE_DEV", + vendored_gems_env: "VENDORED_GEMS", + vendor_gem_dir_env: "VENDOR_GEM_DIR", + debug_env: "STRUCTUREDMERGE_DEBUG" ) end - if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false') != 0 + if ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false") != 0 eval_nomono_gems( gems: kettle_dev_local_gems_to_eval, - prefix: 'KETTLE_DEV', - path_env: 'KETTLE_DEV_DEV', - vendored_gems_env: 'VENDORED_GEMS', - vendor_gem_dir_env: 'VENDOR_GEM_DIR', - debug_env: 'KETTLE_DEV_DEBUG' + prefix: "KETTLE_DEV", + path_env: "KETTLE_DEV_DEV", + vendored_gems_env: "VENDORED_GEMS", + vendor_gem_dir_env: "VENDOR_GEM_DIR", + debug_env: "KETTLE_DEV_DEBUG" ) end end diff --git a/gems/rbs-merge/lib/rbs/merge/version.rb b/gems/rbs-merge/lib/rbs/merge/version.rb index a96a21ddc..8e09fbec5 100644 --- a/gems/rbs-merge/lib/rbs/merge/version.rb +++ b/gems/rbs-merge/lib/rbs/merge/version.rb @@ -3,7 +3,7 @@ module Rbs module Merge module Version - VERSION = '7.1.0' + VERSION = "7.1.0" end VERSION = Version::VERSION # Traditional Constant Location end From babe93c78524caa9a54e4e295c10642c6d71ab46 Mon Sep 17 00:00:00 2001 From: "Peter H. Boling" Date: Tue, 21 Jul 2026 18:03:29 -0600 Subject: [PATCH 159/188] =?UTF-8?q?=F0=9F=8E=A8=20Template=20bootstrap=20b?= =?UTF-8?q?y=20kettle-jem=20v7.1.0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gems/ast-merge/Gemfile.lock | 334 ++++++++++++++++- gems/bash-merge/Gemfile.lock | 326 +++++++++++++++- gems/dotenv-merge/.rubocop_gradual.lock | 2 +- gems/dotenv-merge/.simplecov | 8 +- gems/dotenv-merge/Gemfile | 70 ++-- gems/dotenv-merge/Gemfile.lock | 322 +--------------- gems/dotenv-merge/Rakefile | 18 +- .../gemfiles/modular/templating.gemfile | 12 +- .../gemfiles/modular/templating_local.gemfile | 44 ++- gems/dotenv-merge/lib/dotenv/merge/version.rb | 2 +- gems/dotenv-merge/spec/spec_helper.rb | 7 +- gems/html-merge/Gemfile.lock | 61 +-- gems/rbs-merge/.simplecov | 8 +- gems/rbs-merge/Gemfile.lock | 38 +- .../modular/benchmark/r4/v0.5.gemfile | 2 +- .../gemfiles/modular/benchmark/vHEAD.gemfile | 2 +- .../gemfiles/modular/cgi/r4/v0.5.gemfile | 2 +- .../gemfiles/modular/cgi/vHEAD.gemfile | 2 +- .../gemfiles/modular/coverage.gemfile | 6 +- .../gemfiles/modular/coverage_local.gemfile | 42 ++- gems/rbs-merge/gemfiles/modular/debug.gemfile | 4 +- .../gemfiles/modular/documentation.gemfile | 24 +- .../modular/documentation_local.gemfile | 30 +- .../gemfiles/modular/erb/r2/v3.0.gemfile | 2 +- .../gemfiles/modular/erb/r3/v5.0.gemfile | 2 +- .../gemfiles/modular/erb/r4/v5.0.gemfile | 2 +- .../gemfiles/modular/erb/vHEAD.gemfile | 2 +- .../modular/json/truffleruby_22_3.gemfile | 4 +- .../modular/json/truffleruby_23_0.gemfile | 4 +- .../modular/json/truffleruby_23_1.gemfile | 4 +- .../gemfiles/modular/mutex_m/r2/v0.3.gemfile | 2 +- .../gemfiles/modular/mutex_m/r3/v0.3.gemfile | 2 +- .../gemfiles/modular/mutex_m/r4/v0.3.gemfile | 2 +- .../gemfiles/modular/mutex_m/vHEAD.gemfile | 2 +- .../gemfiles/modular/optional.gemfile | 2 +- gems/rbs-merge/gemfiles/modular/rspec.gemfile | 8 +- .../gemfiles/modular/runtime_heads.gemfile | 2 +- .../gemfiles/modular/stringio/r2/v3.0.gemfile | 2 +- .../gemfiles/modular/stringio/r3/v3.0.gemfile | 2 +- .../gemfiles/modular/stringio/r4/v3.0.gemfile | 2 +- .../gemfiles/modular/stringio/vHEAD.gemfile | 2 +- gems/rbs-merge/gemfiles/modular/style.gemfile | 24 +- .../gemfiles/modular/style_local.gemfile | 32 +- .../gemfiles/modular/webrick/r4/v1.9.gemfile | 2 +- .../gemfiles/modular/webrick/vHEAD.gemfile | 2 +- .../gemfiles/modular/x_std_libs.gemfile | 14 +- .../modular/x_std_libs/r2/libs.gemfile | 6 +- .../modular/x_std_libs/r3/libs.gemfile | 6 +- .../modular/x_std_libs/r4/libs.gemfile | 12 +- .../gemfiles/modular/x_std_libs/vHEAD.gemfile | 12 +- gems/rbs-merge/rbs-merge.gemspec | 84 ++--- gems/rbs-merge/spec/spec_helper.rb | 13 +- gems/yaml-merge/.kettle-drift.lock | 144 +++++++- gems/yaml-merge/Gemfile | 72 +++- gems/yaml-merge/Gemfile.lock | 348 +++++++++++++++++- gems/yaml-merge/Rakefile | 18 +- .../gemfiles/modular/templating.gemfile | 12 +- .../gemfiles/modular/templating_local.gemfile | 44 +-- gems/yaml-merge/lib/yaml/merge/version.rb | 2 +- 59 files changed, 1556 insertions(+), 705 deletions(-) diff --git a/gems/ast-merge/Gemfile.lock b/gems/ast-merge/Gemfile.lock index dcd9de23b..9ccf057a5 100644 --- a/gems/ast-merge/Gemfile.lock +++ b/gems/ast-merge/Gemfile.lock @@ -8,7 +8,234 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/tree_haver + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly + specs: + ast-crispr-markdown-markly (7.1.0) + ast-crispr (= 7.1.0) + markly-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism + specs: + ast-crispr-ruby-prism (7.1.0) + ast-crispr (= 7.1.0) + prism-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr + specs: + ast-crispr (7.1.0) + ast-merge (= 7.1.0) + service_actor (~> 3.9) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git + specs: + ast-merge-git (7.1.0) + ast-merge (= 7.1.0) + json-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template + specs: + ast-template (7.1.0) + ast-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge + specs: + bash-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge + specs: + binary-merge (7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge + specs: + citrus-toml-merge (7.1.0) + toml-merge (= 7.1.0) + toml-rb (~> 4.1) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge + specs: + commonmarker-merge (7.1.0) + commonmarker (~> 2.2) + markdown-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge + specs: + dotenv-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge + specs: + go-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge + specs: + json-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem + specs: + kettle-jem (7.1.0) + addressable (>= 2.8, < 3) + ast-crispr-markdown-markly (= 7.1.0) + ast-crispr-ruby-prism (= 7.1.0) + ast-merge (= 7.1.0) + bash-merge (= 7.1.0) + citrus-toml-merge (= 7.1.0) + commonmarker-merge (= 7.1.0) + dotenv-merge (= 7.1.0) + json-merge (= 7.1.0) + kettle-dev (~> 2.3, >= 2.3.5) + kettle-rb (~> 0.1, >= 0.1.4) + kramdown-merge (= 7.1.0) + markdown-merge (= 7.1.0) + markly-merge (= 7.1.0) + prism-merge (= 7.1.0) + psych-merge (= 7.1.0) + rbs (>= 3.10) + rbs-merge (= 7.1.0) + ruby-merge (= 7.1.0) + token-resolver (~> 2.0, >= 2.0.4) + toml-merge (= 7.1.0) + toml-rb (~> 4.2) + tree_haver (= 7.1.0) + yaml-merge (= 7.1.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge + specs: + kramdown-merge (7.1.0) + kramdown (~> 2.5) + markdown-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge + specs: + markdown-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge + specs: + markly-merge (7.1.0) + markdown-merge (= 7.1.0) + markly (~> 0.9) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge + specs: + parslet-toml-merge (7.1.0) + toml (~> 0.3) + toml-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge + specs: + plain-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge + specs: + prism-merge (7.1.0) + prism (~> 1.6) + ruby-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge + specs: + psych-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + yaml-merge (= 7.1.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge + specs: + rbs-merge (7.1.0) + ast-merge (= 7.1.0) + rbs (>= 3.10) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge + specs: + ruby-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge + specs: + rust-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb + specs: + smorg-rb (7.1.0) + ast-merge (= 7.1.0) + ast-merge-git (= 7.1.0) + diff-lcs (~> 1.5) + go-merge (= 7.1.0) + json-merge (= 7.1.0) + kettle-jem (= 7.1.0) + markly-merge (= 7.1.0) + plain-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge + specs: + toml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver specs: tree_haver (7.1.0) citrus (~> 3.0) @@ -16,6 +243,29 @@ PATH tree_sitter_language_pack (>= 1.13.2, < 2.0) version_gem (~> 1.1, >= 1.1.9) +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge + specs: + typescript-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge + specs: + yaml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge + specs: + zip-merge (7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + GEM remote: https://gem.coop/ specs: @@ -40,6 +290,11 @@ GEM cgi (0.5.2) citrus (3.0.2) cmdparse (3.0.7) + commonmarker (2.9.0-aarch64-linux) + commonmarker (2.9.0-aarch64-linux-musl) + commonmarker (2.9.0-arm64-darwin) + commonmarker (2.9.0-x86_64-linux) + commonmarker (2.9.0-x86_64-linux-musl) concurrent-ruby (1.3.8) date (3.5.1) debug (1.11.1) @@ -102,6 +357,8 @@ GEM kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) + kettle-drift (1.0.6) + version_gem (~> 1.1, >= 1.1.14) kettle-rb (0.1.5) kettle-soup-cover (3.0.4) kettle-wash (~> 0.1, >= 0.1.0) @@ -130,6 +387,7 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) + markly (0.16.0) mutex_m (0.3.0) nokogiri (1.19.4-aarch64-linux-gnu) racc (~> 1.4) @@ -292,6 +550,8 @@ GEM ruby-progressbar (1.13.0) ruby_engine (2.0.3) ruby_version (1.0.3) + service_actor (3.9.4) + zeitwerk (>= 1.0) silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) @@ -346,6 +606,11 @@ GEM token-resolver (2.0.5) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.14) + toml (0.3.0) + parslet (>= 1.8.0, < 3.0.0) + toml-rb (4.2.0) + citrus (~> 3.0, > 3.0) + racc (~> 1.7) tree_sitter_language_pack (1.13.3-aarch64-linux) sorbet-runtime (~> 0.5) tree_sitter_language_pack (1.13.3-arm64-darwin) @@ -400,23 +665,45 @@ DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) appraisal2-rubocop (~> 1.0, >= 1.0.0) + ast-crispr! + ast-crispr-markdown-markly! + ast-crispr-ruby-prism! ast-merge! + ast-merge-git! + ast-template! + bash-merge! + binary-merge! bundler-audit (~> 0.9.3) cgi (~> 0.5) + citrus-toml-merge! + commonmarker-merge! debug (>= 1.1) + dotenv-merge! erb (~> 6.0, >= 6.0.6) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.0) + go-merge! irb (~> 1.17) + json-merge! kettle-dev (~> 2.0, >= 2.2.25) + kettle-drift (~> 1.0, >= 1.0.6) + kettle-jem! kettle-soup-cover (~> 3.0, >= 3.0.3) kettle-test (~> 2.0, >= 2.0.9) kramdown (~> 2.5, >= 2.5.2) + kramdown-merge! kramdown-parser-gfm (~> 1.1) + markdown-merge! + markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) + parslet-toml-merge! + plain-merge! + prism-merge! + psych-merge! rake (~> 13.0) rbs (>= 3.0) + rbs-merge! rdoc (~> 6.11) reek (~> 6.5, >= 6.5.0) require_bench (~> 1.0, >= 1.0.4) @@ -427,20 +714,27 @@ DEPENDENCIES rubocop-on-rbs (~> 2.0, >= 2.0.0) rubocop-packaging (~> 0.6, >= 0.6.0) rubocop-ruby3_2 (~> 3.0, >= 3.0.6) + ruby-merge! ruby-progressbar (~> 1.13) + rust-merge! + smorg-rb! standard (~> 1.56, >= 1.56.0) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) + toml-merge! tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) + typescript-merge! webrick (~> 1.9) yaml-converter (~> 0.2, >= 0.2.3) + yaml-merge! yard (~> 0.9, >= 0.9.45) yard-fence (~> 0.9, >= 0.9.6) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) yard-timekeeper (~> 0.2, >= 0.2.4) yard-yaml (~> 0.2, >= 0.2.3) + zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af @@ -448,20 +742,35 @@ CHECKSUMS appraisal2 (3.2.0) sha256=ccd0b767ac4060cd7af6d16747459b6990f49c39c7b4fb1f7d1146b1e97c492f appraisal2-rubocop (1.0.0) sha256=b71410fbb014befda5340605a605b7f6f3f012739baf0acc5b4351b592c3258d ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 + ast-crispr (7.1.0) + ast-crispr-markdown-markly (7.1.0) + ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) + ast-merge-git (7.1.0) + ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 + bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd + binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 + citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 + commonmarker (2.9.0-aarch64-linux) sha256=e2b4aadb9a2cfa4e206582641ce3a49465549ac1ed4c289fdd63b78d8f24579c + commonmarker (2.9.0-aarch64-linux-musl) sha256=1cf4d2821f2a7e64945f1ed7c4eeced586fdb27ea7fe7337788802cf8f57cfca + commonmarker (2.9.0-arm64-darwin) sha256=1748dbfa4f5813b0d2a14bb4bbfa65a4ec293aa1c825016d60029ee0e132b046 + commonmarker (2.9.0-x86_64-linux) sha256=8cfe92970eef585a19ddf6613224b91cab64d6029834661bda801f877c9c7f43 + commonmarker (2.9.0-x86_64-linux-musl) sha256=293921398b839f79ceaf55010e061357e34f053822c3b003cd0be6686176335e + commonmarker-merge (7.1.0) concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 + dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -474,20 +783,28 @@ CHECKSUMS gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f + go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 + json-merge (7.1.0) kettle-dev (2.3.9) + kettle-drift (1.0.6) sha256=46eda08fa4411d1f3c6682a95eef1c9df4e94611b3949f49d4c7b43c0ed356a3 + kettle-jem (7.1.0) kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f kettle-soup-cover (3.0.4) kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa + kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 + markdown-merge (7.1.0) + markly (0.16.0) sha256=6f70d79e385b1efc9e171f74c81628826259039fe6c778e03c3924c71dac5511 + markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-aarch64-linux-gnu) sha256=1269fb644a6de405057a53dd5c762b1209b43ca7424f839454d3dbc677c31a8f nokogiri (1.19.4-aarch64-linux-musl) sha256=35c65b9ce72b3bb03207bdbe7067915019dc18c1b9b59139684bd6690fdd01af @@ -501,15 +818,20 @@ CHECKSUMS parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 + parslet-toml-merge (7.1.0) + plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 + prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 + psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 + rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb @@ -544,15 +866,19 @@ CHECKSUMS rubocop-rspec_rails (2.32.0) sha256=4a0d641c72f6ebb957534f539d9d0a62c47abd8ce0d0aeee1ef4701e892a9100 rubocop-ruby3_2 (3.0.7) sha256=f53dd6d286fb05186214fc6ec116783e7f837030918e8931c05de773e98f8466 rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 + ruby-merge (7.1.0) ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 + rust-merge (7.1.0) + service_actor (3.9.4) sha256=e63b523630b9a7e62959b2a90113b08d2565b5de9c148557b281ef847c9539ce silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed + smorg-rb (7.1.0) sorbet-runtime (0.6.13351) sha256=f8fee17c6e3edf835dc6823d26afb9a7c8969c6710d1fabe2fb43f4e0c15c64f standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b @@ -567,17 +893,22 @@ CHECKSUMS timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.5) sha256=b852f924287ffb58a440856e862b056c8ad97e74b4b2526cee43e0771f40c25c + toml (0.3.0) sha256=0a91d0f76a9036e84e44f95693b12f58d358c1df3ac8e3b5271f2056ecc6e4b9 + toml-merge (7.1.0) + toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-aarch64-linux) sha256=55ffc7c87868cb45658338363d9eba51b4a8b0259aa88e4de368d2bd1d52fea4 tree_sitter_language_pack (1.13.3-arm64-darwin) sha256=bc2498db605f212a1dbd2465ed3f65190d7da786f6ed5d30fcf958121aeb4a5c tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 + typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 webrick (1.9.2) sha256=beb4a15fc474defed24a3bda4ffd88a490d517c9e4e6118c3edce59e45864131 yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 + yaml-merge (7.1.0) yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd @@ -585,6 +916,7 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 + zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH diff --git a/gems/bash-merge/Gemfile.lock b/gems/bash-merge/Gemfile.lock index 0c8bcdbca..377b5a14b 100644 --- a/gems/bash-merge/Gemfile.lock +++ b/gems/bash-merge/Gemfile.lock @@ -7,7 +7,39 @@ PATH version_gem (~> 1.1, >= 1.1.14) PATH - remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/ast-merge + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly + specs: + ast-crispr-markdown-markly (7.1.0) + ast-crispr (= 7.1.0) + markly-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism + specs: + ast-crispr-ruby-prism (7.1.0) + ast-crispr (= 7.1.0) + prism-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr + specs: + ast-crispr (7.1.0) + ast-merge (= 7.1.0) + service_actor (~> 3.9) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git + specs: + ast-merge-git (7.1.0) + ast-merge (= 7.1.0) + json-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge specs: ast-merge (7.1.0) benchmark @@ -16,7 +48,194 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/tree_haver + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template + specs: + ast-template (7.1.0) + ast-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge + specs: + binary-merge (7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge + specs: + citrus-toml-merge (7.1.0) + toml-merge (= 7.1.0) + toml-rb (~> 4.1) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge + specs: + commonmarker-merge (7.1.0) + commonmarker (~> 2.2) + markdown-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge + specs: + dotenv-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge + specs: + go-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge + specs: + json-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem + specs: + kettle-jem (7.1.0) + addressable (>= 2.8, < 3) + ast-crispr-markdown-markly (= 7.1.0) + ast-crispr-ruby-prism (= 7.1.0) + ast-merge (= 7.1.0) + bash-merge (= 7.1.0) + citrus-toml-merge (= 7.1.0) + commonmarker-merge (= 7.1.0) + dotenv-merge (= 7.1.0) + json-merge (= 7.1.0) + kettle-dev (~> 2.3, >= 2.3.5) + kettle-rb (~> 0.1, >= 0.1.4) + kramdown-merge (= 7.1.0) + markdown-merge (= 7.1.0) + markly-merge (= 7.1.0) + prism-merge (= 7.1.0) + psych-merge (= 7.1.0) + rbs (>= 3.10) + rbs-merge (= 7.1.0) + ruby-merge (= 7.1.0) + token-resolver (~> 2.0, >= 2.0.4) + toml-merge (= 7.1.0) + toml-rb (~> 4.2) + tree_haver (= 7.1.0) + yaml-merge (= 7.1.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge + specs: + kramdown-merge (7.1.0) + kramdown (~> 2.5) + markdown-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge + specs: + markdown-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge + specs: + markly-merge (7.1.0) + markdown-merge (= 7.1.0) + markly (~> 0.9) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge + specs: + parslet-toml-merge (7.1.0) + toml (~> 0.3) + toml-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge + specs: + plain-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge + specs: + prism-merge (7.1.0) + prism (~> 1.6) + ruby-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge + specs: + psych-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + yaml-merge (= 7.1.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge + specs: + rbs-merge (7.1.0) + ast-merge (= 7.1.0) + rbs (>= 3.10) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge + specs: + ruby-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge + specs: + rust-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb + specs: + smorg-rb (7.1.0) + ast-merge (= 7.1.0) + ast-merge-git (= 7.1.0) + diff-lcs (~> 1.5) + go-merge (= 7.1.0) + json-merge (= 7.1.0) + kettle-jem (= 7.1.0) + markly-merge (= 7.1.0) + plain-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge + specs: + toml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver specs: tree_haver (7.1.0) citrus (~> 3.0) @@ -24,6 +243,29 @@ PATH tree_sitter_language_pack (>= 1.13.2, < 2.0) version_gem (~> 1.1, >= 1.1.9) +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge + specs: + typescript-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge + specs: + yaml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge + specs: + zip-merge (7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + GEM remote: https://gem.coop/ specs: @@ -48,6 +290,11 @@ GEM cgi (0.5.2) citrus (3.0.2) cmdparse (3.0.7) + commonmarker (2.9.0-aarch64-linux) + commonmarker (2.9.0-aarch64-linux-musl) + commonmarker (2.9.0-arm64-darwin) + commonmarker (2.9.0-x86_64-linux) + commonmarker (2.9.0-x86_64-linux-musl) concurrent-ruby (1.3.8) date (3.5.1) debug (1.11.1) @@ -110,6 +357,8 @@ GEM kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) + kettle-drift (1.0.6) + version_gem (~> 1.1, >= 1.1.14) kettle-rb (0.1.5) kettle-soup-cover (3.0.4) kettle-wash (~> 0.1, >= 0.1.0) @@ -138,6 +387,7 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) + markly (0.16.0) mutex_m (0.3.0) nokogiri (1.19.4-aarch64-linux-gnu) racc (~> 1.4) @@ -300,6 +550,8 @@ GEM ruby-progressbar (1.13.0) ruby_engine (2.0.3) ruby_version (1.0.3) + service_actor (3.9.4) + zeitwerk (>= 1.0) silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) @@ -354,6 +606,11 @@ GEM token-resolver (2.0.5) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.14) + toml (0.3.0) + parslet (>= 1.8.0, < 3.0.0) + toml-rb (4.2.0) + citrus (~> 3.0, > 3.0) + racc (~> 1.7) tree_sitter_language_pack (1.13.3-aarch64-linux) sorbet-runtime (~> 0.5) tree_sitter_language_pack (1.13.3-arm64-darwin) @@ -408,25 +665,46 @@ DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.2, >= 3.2.0) appraisal2-rubocop (~> 1.0, >= 1.0.0) + ast-crispr! + ast-crispr-markdown-markly! + ast-crispr-ruby-prism! ast-merge! + ast-merge-git! + ast-template! bash-merge! benchmark (~> 0.5, >= 0.5.0) + binary-merge! bundler-audit (~> 0.9.3) cgi (~> 0.5) + citrus-toml-merge! + commonmarker-merge! debug (>= 1.1) + dotenv-merge! erb (~> 6.0, >= 6.0.6) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.4) + go-merge! irb (~> 1.17) + json-merge! kettle-dev (~> 2.3, >= 2.3.7) + kettle-drift (~> 1.0, >= 1.0.6) + kettle-jem! kettle-soup-cover (~> 3.0, >= 3.0.3) kettle-test (~> 2.0, >= 2.0.12) kramdown (~> 2.5, >= 2.5.2) + kramdown-merge! kramdown-parser-gfm (~> 1.1) + markdown-merge! + markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) + parslet-toml-merge! + plain-merge! + prism-merge! + psych-merge! rake (~> 13.0) rbs (>= 3.0) + rbs-merge! rdoc (~> 6.11) reek (~> 6.5, >= 6.5.0) require_bench (~> 1.0, >= 1.0.4) @@ -437,21 +715,28 @@ DEPENDENCIES rubocop-on-rbs (~> 2.0, >= 2.0.0) rubocop-packaging (~> 0.6, >= 0.6.0) rubocop-ruby3_2 (~> 3.0, >= 3.0.6) + ruby-merge! ruby-progressbar (~> 1.13) + rust-merge! + smorg-rb! standard (~> 1.56, >= 1.56.0) stone_checksums (~> 1.0, >= 1.0.6) stringio (>= 3.0) + toml-merge! tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) turbo_tests2 (~> 3.2, >= 3.2.0) + typescript-merge! webrick (~> 1.9) yaml-converter (~> 0.2, >= 0.2.3) + yaml-merge! yard (~> 0.9, >= 0.9.45) yard-fence (~> 0.9, >= 0.9.6) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) yard-timekeeper (~> 0.2, >= 0.2.4) yard-yaml (~> 0.2, >= 0.2.3) + zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af @@ -459,21 +744,35 @@ CHECKSUMS appraisal2 (3.2.0) sha256=ccd0b767ac4060cd7af6d16747459b6990f49c39c7b4fb1f7d1146b1e97c492f appraisal2-rubocop (1.0.0) sha256=b71410fbb014befda5340605a605b7f6f3f012739baf0acc5b4351b592c3258d ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 + ast-crispr (7.1.0) + ast-crispr-markdown-markly (7.1.0) + ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) + ast-merge-git (7.1.0) + ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd + binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 + citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 + commonmarker (2.9.0-aarch64-linux) sha256=e2b4aadb9a2cfa4e206582641ce3a49465549ac1ed4c289fdd63b78d8f24579c + commonmarker (2.9.0-aarch64-linux-musl) sha256=1cf4d2821f2a7e64945f1ed7c4eeced586fdb27ea7fe7337788802cf8f57cfca + commonmarker (2.9.0-arm64-darwin) sha256=1748dbfa4f5813b0d2a14bb4bbfa65a4ec293aa1c825016d60029ee0e132b046 + commonmarker (2.9.0-x86_64-linux) sha256=8cfe92970eef585a19ddf6613224b91cab64d6029834661bda801f877c9c7f43 + commonmarker (2.9.0-x86_64-linux-musl) sha256=293921398b839f79ceaf55010e061357e34f053822c3b003cd0be6686176335e + commonmarker-merge (7.1.0) concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 + dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -486,20 +785,28 @@ CHECKSUMS gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f + go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 + json-merge (7.1.0) kettle-dev (2.3.9) + kettle-drift (1.0.6) sha256=46eda08fa4411d1f3c6682a95eef1c9df4e94611b3949f49d4c7b43c0ed356a3 + kettle-jem (7.1.0) kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f kettle-soup-cover (3.0.4) kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa + kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 + markdown-merge (7.1.0) + markly (0.16.0) sha256=6f70d79e385b1efc9e171f74c81628826259039fe6c778e03c3924c71dac5511 + markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-aarch64-linux-gnu) sha256=1269fb644a6de405057a53dd5c762b1209b43ca7424f839454d3dbc677c31a8f nokogiri (1.19.4-aarch64-linux-musl) sha256=35c65b9ce72b3bb03207bdbe7067915019dc18c1b9b59139684bd6690fdd01af @@ -513,15 +820,20 @@ CHECKSUMS parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 + parslet-toml-merge (7.1.0) + plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 + prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 + psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 + rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb @@ -556,15 +868,19 @@ CHECKSUMS rubocop-rspec_rails (2.32.0) sha256=4a0d641c72f6ebb957534f539d9d0a62c47abd8ce0d0aeee1ef4701e892a9100 rubocop-ruby3_2 (3.0.7) sha256=f53dd6d286fb05186214fc6ec116783e7f837030918e8931c05de773e98f8466 rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 + ruby-merge (7.1.0) ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 + rust-merge (7.1.0) + service_actor (3.9.4) sha256=e63b523630b9a7e62959b2a90113b08d2565b5de9c148557b281ef847c9539ce silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed + smorg-rb (7.1.0) sorbet-runtime (0.6.13351) sha256=f8fee17c6e3edf835dc6823d26afb9a7c8969c6710d1fabe2fb43f4e0c15c64f standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b @@ -579,17 +895,22 @@ CHECKSUMS timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.5) sha256=b852f924287ffb58a440856e862b056c8ad97e74b4b2526cee43e0771f40c25c + toml (0.3.0) sha256=0a91d0f76a9036e84e44f95693b12f58d358c1df3ac8e3b5271f2056ecc6e4b9 + toml-merge (7.1.0) + toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-aarch64-linux) sha256=55ffc7c87868cb45658338363d9eba51b4a8b0259aa88e4de368d2bd1d52fea4 tree_sitter_language_pack (1.13.3-arm64-darwin) sha256=bc2498db605f212a1dbd2465ed3f65190d7da786f6ed5d30fcf958121aeb4a5c tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 + typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 webrick (1.9.2) sha256=beb4a15fc474defed24a3bda4ffd88a490d517c9e4e6118c3edce59e45864131 yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 + yaml-merge (7.1.0) yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd @@ -597,6 +918,7 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 + zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH diff --git a/gems/dotenv-merge/.rubocop_gradual.lock b/gems/dotenv-merge/.rubocop_gradual.lock index cf1f39843..3228da656 100644 --- a/gems/dotenv-merge/.rubocop_gradual.lock +++ b/gems/dotenv-merge/.rubocop_gradual.lock @@ -1,5 +1,5 @@ { - ".simplecov:811436142": [ + ".simplecov:1840448245": [ [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] ], "Rakefile:3735002317": [ diff --git a/gems/dotenv-merge/.simplecov b/gems/dotenv-merge/.simplecov index d19d8f8ae..c52abed5a 100644 --- a/gems/dotenv-merge/.simplecov +++ b/gems/dotenv-merge/.simplecov @@ -4,15 +4,11 @@ # dotenv-merge will then preserve content between those markers across template runs. # kettle-jem:unfreeze -require 'kettle/soup/cover/config' - # Minimum coverage thresholds are set by kettle-soup-cover. # They are controlled by ENV variables loaded by `mise` from `mise.toml` # (with optional machine-local overrides in `.env.local`). # If the values for minimum coverage need to change, they should be changed both there, # and in 2 places in .github/workflows/coverage.yml. -SimpleCov.start do - track_files 'lib/**/*.rb' - track_files 'lib/**/*.rake' - track_files 'exe/*.rb' +SimpleCov.configure do + cover 'lib/**/*.rb', 'lib/**/*.rake', 'exe/*.rb' end diff --git a/gems/dotenv-merge/Gemfile b/gems/dotenv-merge/Gemfile index 83c431109..d4bcdacbb 100644 --- a/gems/dotenv-merge/Gemfile +++ b/gems/dotenv-merge/Gemfile @@ -6,7 +6,7 @@ # kettle-jem will then preserve content between those markers across template runs. # kettle-jem:unfreeze -source "https://gem.coop" +source 'https://gem.coop' git_source(:codeberg) { |repo_name| "https://codeberg.org/#{repo_name}" } git_source(:gitlab) { |repo_name| "https://gitlab.com/#{repo_name}" } @@ -19,58 +19,54 @@ git_source(:gitlab) { |repo_name| "https://gitlab.com/#{repo_name}" } gemspec # Local workspace dependency wiring for *_local.gemfile overrides -nomono_requirements = ["~> 1.0", ">= 1.0.8"] -gem "nomono", *nomono_requirements, require: false # ruby >= 2.2 +nomono_requirements = ['~> 1.0', '>= 1.0.8'] +gem 'nomono', *nomono_requirements, require: false # ruby >= 2.2 # Direct sibling dependencies (env-switched via STRUCTUREDMERGE_DEV) direct_sibling_gems = %w[ ast-merge tree_haver ] -direct_sibling_dev = ENV.fetch("STRUCTUREDMERGE_DEV", "") +direct_sibling_dev = ENV.fetch('STRUCTUREDMERGE_DEV', '') direct_sibling_local = !direct_sibling_dev.empty? && !%w[false 0 no off].include?(direct_sibling_dev.downcase) -direct_sibling_templating = ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? +direct_sibling_templating = ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero?) - direct_sibling_dev_was_set = ENV.key?("STRUCTUREDMERGE_DEV") - direct_sibling_dev_original = ENV.fetch("STRUCTUREDMERGE_DEV", nil) + (direct_sibling_local || + ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) + direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') + direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) begin nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path("Gemfile.lock", __dir__) + nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == "nomono" } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - if nomono_locked - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] - end - end - Kernel.send(:gem, "nomono", *nomono_activation_requirements) - require "nomono/bundler" - if direct_sibling_templating && !direct_sibling_local - ENV["STRUCTUREDMERGE_DEV"] = File.expand_path("..", __dir__) + Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked end + Kernel.send(:gem, 'nomono', *nomono_activation_requirements) + require 'nomono/bundler' + ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local eval_nomono_gems( gems: direct_sibling_gems, - prefix: "STRUCTUREDMERGE", - path_env: "STRUCTUREDMERGE_DEV", - root: ["src", "my", "structuredmerge"] + prefix: 'STRUCTUREDMERGE', + path_env: 'STRUCTUREDMERGE_DEV', + root: %w[src my structuredmerge] ) rescue LoadError - warn "Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies." + warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' ensure if direct_sibling_templating && !direct_sibling_local if direct_sibling_dev_was_set - ENV["STRUCTUREDMERGE_DEV"] = direct_sibling_dev_original + ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original else - ENV.delete("STRUCTUREDMERGE_DEV") + ENV.delete('STRUCTUREDMERGE_DEV') end end end @@ -157,28 +153,28 @@ if direct_sibling_gems.any? && end # Use released TSLP with the Ruby ABI platform-gem fix. -gem "tree_sitter_language_pack", "~> 1.13", ">= 1.13.3" +gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' # Templating (env-switched: STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local paths) -eval_gemfile "gemfiles/modular/templating.gemfile" if ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? +eval_gemfile 'gemfiles/modular/templating.gemfile' if ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? # Debugging -eval_gemfile "gemfiles/modular/debug.gemfile" +eval_gemfile 'gemfiles/modular/debug.gemfile' # Code Coverage (env-switched: KETTLE_DEV_DEV=true for local paths) -eval_gemfile "gemfiles/modular/coverage.gemfile" +eval_gemfile 'gemfiles/modular/coverage.gemfile' # Linting -eval_gemfile "gemfiles/modular/style.gemfile" +eval_gemfile 'gemfiles/modular/style.gemfile' # Documentation -eval_gemfile "gemfiles/modular/documentation.gemfile" +eval_gemfile 'gemfiles/modular/documentation.gemfile' # Optional -eval_gemfile "gemfiles/modular/optional.gemfile" +eval_gemfile 'gemfiles/modular/optional.gemfile' ### Std Lib Extracted Gems -eval_gemfile "gemfiles/modular/x_std_libs.gemfile" +eval_gemfile 'gemfiles/modular/x_std_libs.gemfile' # See unlocked_deps appraisal for more details on irb inclusion -gem "irb", "~> 1.17" # ruby >= 2.7 +gem 'irb', '~> 1.17' # ruby >= 2.7 diff --git a/gems/dotenv-merge/Gemfile.lock b/gems/dotenv-merge/Gemfile.lock index b756344fa..59965fe82 100644 --- a/gems/dotenv-merge/Gemfile.lock +++ b/gems/dotenv-merge/Gemfile.lock @@ -7,39 +7,7 @@ PATH version_gem (~> 1.1, >= 1.1.14) PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly - specs: - ast-crispr-markdown-markly (7.1.0) - ast-crispr (= 7.1.0) - markly-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism - specs: - ast-crispr-ruby-prism (7.1.0) - ast-crispr (= 7.1.0) - prism-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr - specs: - ast-crispr (7.1.0) - ast-merge (= 7.1.0) - service_actor (~> 3.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git - specs: - ast-merge-git (7.1.0) - ast-merge (= 7.1.0) - json-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/ast-merge specs: ast-merge (7.1.0) benchmark @@ -48,194 +16,7 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template - specs: - ast-template (7.1.0) - ast-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge - specs: - bash-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge - specs: - binary-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge - specs: - citrus-toml-merge (7.1.0) - toml-merge (= 7.1.0) - toml-rb (~> 4.1) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge - specs: - commonmarker-merge (7.1.0) - commonmarker (~> 2.2) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge - specs: - go-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge - specs: - json-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem - specs: - kettle-jem (7.1.0) - addressable (>= 2.8, < 3) - ast-crispr-markdown-markly (= 7.1.0) - ast-crispr-ruby-prism (= 7.1.0) - ast-merge (= 7.1.0) - bash-merge (= 7.1.0) - citrus-toml-merge (= 7.1.0) - commonmarker-merge (= 7.1.0) - dotenv-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-dev (~> 2.3, >= 2.3.5) - kettle-rb (~> 0.1, >= 0.1.4) - kramdown-merge (= 7.1.0) - markdown-merge (= 7.1.0) - markly-merge (= 7.1.0) - prism-merge (= 7.1.0) - psych-merge (= 7.1.0) - rbs (>= 3.10) - rbs-merge (= 7.1.0) - ruby-merge (= 7.1.0) - token-resolver (~> 2.0, >= 2.0.4) - toml-merge (= 7.1.0) - toml-rb (~> 4.2) - tree_haver (= 7.1.0) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge - specs: - kramdown-merge (7.1.0) - kramdown (~> 2.5) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge - specs: - markdown-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge - specs: - markly-merge (7.1.0) - markdown-merge (= 7.1.0) - markly (~> 0.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge - specs: - parslet-toml-merge (7.1.0) - toml (~> 0.3) - toml-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge - specs: - plain-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge - specs: - prism-merge (7.1.0) - prism (~> 1.6) - ruby-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge - specs: - psych-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge - specs: - rbs-merge (7.1.0) - ast-merge (= 7.1.0) - rbs (>= 3.10) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge - specs: - ruby-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge - specs: - rust-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb - specs: - smorg-rb (7.1.0) - ast-merge (= 7.1.0) - ast-merge-git (= 7.1.0) - diff-lcs (~> 1.5) - go-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-jem (= 7.1.0) - markly-merge (= 7.1.0) - plain-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge - specs: - toml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/tree_haver specs: tree_haver (7.1.0) citrus (~> 3.0) @@ -243,29 +24,6 @@ PATH tree_sitter_language_pack (>= 1.13.2, < 2.0) version_gem (~> 1.1, >= 1.1.9) -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge - specs: - typescript-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge - specs: - yaml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge - specs: - zip-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - GEM remote: https://gem.coop/ specs: @@ -290,7 +48,6 @@ GEM cgi (0.5.2) citrus (3.0.2) cmdparse (3.0.7) - commonmarker (2.9.0-x86_64-linux) concurrent-ruby (1.3.8) date (3.5.1) debug (1.11.1) @@ -348,13 +105,11 @@ GEM rdoc (>= 4.0.0) reline (>= 0.4.2) json (2.21.1) - kettle-dev (2.3.8) + kettle-dev (2.3.9) emoji_regex (>= 15.0) kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) - kettle-drift (1.0.6) - version_gem (~> 1.1, >= 1.1.14) kettle-rb (0.1.5) kettle-soup-cover (3.0.4) kettle-wash (~> 0.1, >= 0.1.0) @@ -383,7 +138,6 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) - markly (0.16.0) mutex_m (0.3.0) nokogiri (1.19.4-aarch64-linux-gnu) racc (~> 1.4) @@ -546,8 +300,6 @@ GEM ruby-progressbar (1.13.0) ruby_engine (2.0.3) ruby_version (1.0.3) - service_actor (3.9.4) - zeitwerk (>= 1.0) silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) @@ -602,11 +354,6 @@ GEM token-resolver (2.0.5) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.14) - toml (0.3.0) - parslet (>= 1.8.0, < 3.0.0) - toml-rb (4.2.0) - citrus (~> 3.0, > 3.0) - racc (~> 1.7) tree_sitter_language_pack (1.13.3-aarch64-linux) sorbet-runtime (~> 0.5) tree_sitter_language_pack (1.13.3-arm64-darwin) @@ -661,46 +408,25 @@ DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.2, >= 3.2.0) appraisal2-rubocop (~> 1.0, >= 1.0.0) - ast-crispr! - ast-crispr-markdown-markly! - ast-crispr-ruby-prism! ast-merge! - ast-merge-git! - ast-template! - bash-merge! benchmark (~> 0.5, >= 0.5.0) - binary-merge! bundler-audit (~> 0.9.3) cgi (~> 0.5) - citrus-toml-merge! - commonmarker-merge! debug (>= 1.1) dotenv-merge! erb (~> 6.0, >= 6.0.6) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.4) - go-merge! irb (~> 1.17) - json-merge! kettle-dev (~> 2.3, >= 2.3.7) - kettle-drift (~> 1.0, >= 1.0.6) - kettle-jem! kettle-soup-cover (~> 3.0, >= 3.0.3) kettle-test (~> 2.0, >= 2.0.12) kramdown (~> 2.5, >= 2.5.2) - kramdown-merge! kramdown-parser-gfm (~> 1.1) - markdown-merge! - markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) - parslet-toml-merge! - plain-merge! - prism-merge! - psych-merge! rake (~> 13.0) rbs (>= 3.0) - rbs-merge! rdoc (~> 6.11) reek (~> 6.5, >= 6.5.0) require_bench (~> 1.0, >= 1.0.4) @@ -711,28 +437,21 @@ DEPENDENCIES rubocop-on-rbs (~> 2.0, >= 2.0.0) rubocop-packaging (~> 0.6, >= 0.6.0) rubocop-ruby3_2 (~> 3.0, >= 3.0.6) - ruby-merge! ruby-progressbar (~> 1.13) - rust-merge! - smorg-rb! standard (~> 1.56, >= 1.56.0) stone_checksums (~> 1.0, >= 1.0.6) stringio (>= 3.0) - toml-merge! tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) turbo_tests2 (~> 3.2, >= 3.2.0) - typescript-merge! webrick (~> 1.9) yaml-converter (~> 0.2, >= 0.2.3) - yaml-merge! yard (~> 0.9, >= 0.9.45) yard-fence (~> 0.9, >= 0.9.6) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) yard-timekeeper (~> 0.2, >= 0.2.4) yard-yaml (~> 0.2, >= 0.2.3) - zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af @@ -740,24 +459,14 @@ CHECKSUMS appraisal2 (3.2.0) sha256=ccd0b767ac4060cd7af6d16747459b6990f49c39c7b4fb1f7d1146b1e97c492f appraisal2-rubocop (1.0.0) sha256=b71410fbb014befda5340605a605b7f6f3f012739baf0acc5b4351b592c3258d ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 - ast-crispr (7.1.0) - ast-crispr-markdown-markly (7.1.0) - ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) - ast-merge-git (7.1.0) - ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 - bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd - binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 - citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 - commonmarker (2.9.0-x86_64-linux) - commonmarker-merge (7.1.0) concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 @@ -777,28 +486,20 @@ CHECKSUMS gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f - go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 - json-merge (7.1.0) - kettle-dev (2.3.8) sha256=9d716ff21c660a730cb4e8d41e2e2f0630a28167a354b6e2924e242102aef72c - kettle-drift (1.0.6) - kettle-jem (7.1.0) + kettle-dev (2.3.9) kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f kettle-soup-cover (3.0.4) kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa - kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 - markdown-merge (7.1.0) - markly (0.16.0) - markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-aarch64-linux-gnu) sha256=1269fb644a6de405057a53dd5c762b1209b43ca7424f839454d3dbc677c31a8f nokogiri (1.19.4-aarch64-linux-musl) sha256=35c65b9ce72b3bb03207bdbe7067915019dc18c1b9b59139684bd6690fdd01af @@ -812,20 +513,15 @@ CHECKSUMS parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 - parslet-toml-merge (7.1.0) - plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 - prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 - psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 - rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb @@ -860,19 +556,15 @@ CHECKSUMS rubocop-rspec_rails (2.32.0) sha256=4a0d641c72f6ebb957534f539d9d0a62c47abd8ce0d0aeee1ef4701e892a9100 rubocop-ruby3_2 (3.0.7) sha256=f53dd6d286fb05186214fc6ec116783e7f837030918e8931c05de773e98f8466 rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 - ruby-merge (7.1.0) ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 - rust-merge (7.1.0) - service_actor (3.9.4) silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed - smorg-rb (7.1.0) sorbet-runtime (0.6.13351) sha256=f8fee17c6e3edf835dc6823d26afb9a7c8969c6710d1fabe2fb43f4e0c15c64f standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b @@ -887,22 +579,17 @@ CHECKSUMS timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.5) sha256=b852f924287ffb58a440856e862b056c8ad97e74b4b2526cee43e0771f40c25c - toml (0.3.0) - toml-merge (7.1.0) - toml-rb (4.2.0) tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-aarch64-linux) sha256=55ffc7c87868cb45658338363d9eba51b4a8b0259aa88e4de368d2bd1d52fea4 tree_sitter_language_pack (1.13.3-arm64-darwin) sha256=bc2498db605f212a1dbd2465ed3f65190d7da786f6ed5d30fcf958121aeb4a5c tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 - typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 webrick (1.9.2) sha256=beb4a15fc474defed24a3bda4ffd88a490d517c9e4e6118c3edce59e45864131 yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 - yaml-merge (7.1.0) yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd @@ -910,7 +597,6 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 - zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH diff --git a/gems/dotenv-merge/Rakefile b/gems/dotenv-merge/Rakefile index 0eb280538..f9c91d66d 100644 --- a/gems/dotenv-merge/Rakefile +++ b/gems/dotenv-merge/Rakefile @@ -130,23 +130,23 @@ end ### DUPLICATE DRIFT TASKS begin - require "kettle/drift" + require 'kettle/drift' Kettle::Drift.install_tasks rescue LoadError - desc("(stub) kettle:drift:check is unavailable") - task("kettle:drift:check") do + desc('(stub) kettle:drift:check is unavailable') + task('kettle:drift:check') do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc("(stub) kettle:drift:update is unavailable") - task("kettle:drift:update") do + desc('(stub) kettle:drift:update is unavailable') + task('kettle:drift:update') do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc("(stub) kettle:drift:force_update is unavailable") - task("kettle:drift:force_update") do + desc('(stub) kettle:drift:force_update is unavailable') + task('kettle:drift:force_update') do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc("(stub) kettle:drift is unavailable") - task("kettle:drift" => "kettle:drift:update") + desc('(stub) kettle:drift is unavailable') + task('kettle:drift' => 'kettle:drift:update') end ### TEMPLATING TASKS diff --git a/gems/dotenv-merge/gemfiles/modular/templating.gemfile b/gems/dotenv-merge/gemfiles/modular/templating.gemfile index 47138ffbb..a672de184 100644 --- a/gems/dotenv-merge/gemfiles/modular/templating.gemfile +++ b/gems/dotenv-merge/gemfiles/modular/templating.gemfile @@ -1,18 +1,18 @@ # frozen_string_literal: true -structuredmerge_remote = ENV.fetch("STRUCTUREDMERGE_DEV", "false").casecmp("false").zero? -kettle_remote = ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false").zero? +structuredmerge_remote = ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false').zero? +kettle_remote = ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? if structuredmerge_remote # Parser dependencies for released installs. - gem "tree_sitter_language_pack", "~> 1.13", ">= 1.13.3" + gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' # Merge recipes for released installs. - gem "kettle-jem", ">= 7.0" + gem 'kettle-jem', '>= 7.0' end if kettle_remote # Template/plugin checks for released installs. - gem "kettle-drift", "~> 1.0", ">= 1.0.6", require: false + gem 'kettle-drift', '~> 1.0', '>= 1.0.6', require: false end # Set STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local development with path-based dependencies. @@ -21,4 +21,4 @@ end # # Set KETTLE_DEV_DEV=/path/to/my for local development with Kettle plugin gems. # When false (default / CI), released Kettle plugin gems are used. -eval_gemfile "templating_local.gemfile" unless structuredmerge_remote && kettle_remote +eval_gemfile 'templating_local.gemfile' unless structuredmerge_remote && kettle_remote diff --git a/gems/dotenv-merge/gemfiles/modular/templating_local.gemfile b/gems/dotenv-merge/gemfiles/modular/templating_local.gemfile index 8a2d8c00c..0fe97f4b6 100644 --- a/gems/dotenv-merge/gemfiles/modular/templating_local.gemfile +++ b/gems/dotenv-merge/gemfiles/modular/templating_local.gemfile @@ -12,21 +12,19 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] -nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) +nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] +nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == "nomono" } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - if nomono_locked - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] - end + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked end -Kernel.send(:gem, "nomono", *nomono_activation_requirements) -require "nomono/bundler" +Kernel.send(:gem, 'nomono', *nomono_activation_requirements) +require 'nomono/bundler' structuredmerge_local_gems = %w[ tree_haver @@ -69,25 +67,25 @@ structuredmerge_local_gems_to_eval = structuredmerge_local_gems - %w[dotenv-merg kettle_dev_local_gems_to_eval = kettle_dev_local_gems - %w[dotenv-merge] - declared_gems platform :mri do - if ENV.fetch("STRUCTUREDMERGE_DEV", "false").casecmp("false") != 0 + if ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false') != 0 eval_nomono_gems( gems: structuredmerge_local_gems_to_eval, - prefix: "STRUCTUREDMERGE", - path_env: "STRUCTUREDMERGE_DEV", - vendored_gems_env: "VENDORED_GEMS", - vendor_gem_dir_env: "VENDOR_GEM_DIR", - debug_env: "STRUCTUREDMERGE_DEBUG" + prefix: 'STRUCTUREDMERGE', + path_env: 'STRUCTUREDMERGE_DEV', + vendored_gems_env: 'VENDORED_GEMS', + vendor_gem_dir_env: 'VENDOR_GEM_DIR', + debug_env: 'STRUCTUREDMERGE_DEBUG' ) end - if ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false") != 0 + if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false') != 0 eval_nomono_gems( gems: kettle_dev_local_gems_to_eval, - prefix: "KETTLE_DEV", - path_env: "KETTLE_DEV_DEV", - vendored_gems_env: "VENDORED_GEMS", - vendor_gem_dir_env: "VENDOR_GEM_DIR", - debug_env: "KETTLE_DEV_DEBUG" + prefix: 'KETTLE_DEV', + path_env: 'KETTLE_DEV_DEV', + vendored_gems_env: 'VENDORED_GEMS', + vendor_gem_dir_env: 'VENDOR_GEM_DIR', + debug_env: 'KETTLE_DEV_DEBUG' ) end end diff --git a/gems/dotenv-merge/lib/dotenv/merge/version.rb b/gems/dotenv-merge/lib/dotenv/merge/version.rb index d3d9f5371..7808fd0ae 100644 --- a/gems/dotenv-merge/lib/dotenv/merge/version.rb +++ b/gems/dotenv-merge/lib/dotenv/merge/version.rb @@ -3,7 +3,7 @@ module Dotenv module Merge module Version - VERSION = "7.1.0" + VERSION = '7.1.0' end VERSION = Version::VERSION # Traditional Constant Location end diff --git a/gems/dotenv-merge/spec/spec_helper.rb b/gems/dotenv-merge/spec/spec_helper.rb index 7fc927ff7..8380347f3 100644 --- a/gems/dotenv-merge/spec/spec_helper.rb +++ b/gems/dotenv-merge/spec/spec_helper.rb @@ -8,7 +8,12 @@ # The rescue LoadError handles that scenario. begin require 'kettle-soup-cover' - require 'simplecov' if Kettle::Soup::Cover::DO_COV # `.simplecov` is run here! + if Kettle::Soup::Cover::DO_COV + # Requiring simplecov loads the project-local `.simplecov`. + require 'simplecov' + require 'kettle/soup/cover/config' + SimpleCov.start + end rescue LoadError => e # check the error message and re-raise when unexpected raise e unless e.message.include?('kettle') diff --git a/gems/html-merge/Gemfile.lock b/gems/html-merge/Gemfile.lock index 93edb6e0e..88763af9c 100644 --- a/gems/html-merge/Gemfile.lock +++ b/gems/html-merge/Gemfile.lock @@ -227,6 +227,7 @@ PATH smorg-rb (7.1.0) ast-merge (= 7.1.0) ast-merge-git (= 7.1.0) + diff-lcs (~> 1.5) go-merge (= 7.1.0) json-merge (= 7.1.0) kettle-jem (= 7.1.0) @@ -351,7 +352,7 @@ GEM rdoc (>= 4.0.0) reline (>= 0.4.2) json (2.21.1) - kettle-dev (2.3.8) + kettle-dev (2.3.9) emoji_regex (>= 15.0) kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) @@ -556,7 +557,7 @@ GEM simplecov (>= 0.4.1) simplecov_lcov_formatter (0.9.0) simplecov (>= 0.18) - sorbet-runtime (0.6.13347) + sorbet-runtime (0.6.13351) standard (1.56.0) language_server-protocol (~> 3.17.0.2) lint_roller (~> 1.0) @@ -718,7 +719,7 @@ CHECKSUMS ast-merge (7.1.0) ast-merge-git (7.1.0) ast-template (7.1.0) - backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 + backports (3.25.3) bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd @@ -727,12 +728,12 @@ CHECKSUMS citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 - commonmarker (2.9.0-x86_64-linux) sha256=8cfe92970eef585a19ddf6613224b91cab64d6029834661bda801f877c9c7f43 + commonmarker (2.9.0-x86_64-linux) commonmarker-merge (7.1.0) concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 - delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 + delegate (0.6.1) diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 dotenv-merge (7.1.0) @@ -743,7 +744,7 @@ CHECKSUMS dry-logic (1.6.0) sha256=da6fedbc0f90fc41f9b0cc7e6f05f5d529d1efaef6c8dcc8e0733f685745cea2 dry-schema (1.16.0) sha256=cd3aaeabc0f1af66ec82a29096d4c4fb92a0a58b9dae29a22b1bbceb78985727 dry-types (1.9.1) sha256=baebeecdb9f8395d6c9d227b62011279440943e3ef2468fe8ccc1ba11467f178 - emoji_regex (15.0.0) sha256=a508b2c0bee561169564e0aec96085020c900520d335e5533fd8e78e59493829 + emoji_regex (15.0.0) erb (6.0.6) sha256=a9b24986700f5bf127c4f297c5403c3ca41b83b0a316c0cd09a096b56e644ae5 gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 @@ -754,12 +755,12 @@ CHECKSUMS irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 json-merge (7.1.0) - kettle-dev (2.3.8) sha256=9d716ff21c660a730cb4e8d41e2e2f0630a28167a354b6e2924e242102aef72c - kettle-drift (1.0.6) sha256=46eda08fa4411d1f3c6682a95eef1c9df4e94611b3949f49d4c7b43c0ed356a3 + kettle-dev (2.3.9) + kettle-drift (1.0.6) kettle-jem (7.1.0) - kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f + kettle-rb (0.1.5) kettle-soup-cover (3.0.4) - kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 + kettle-test (2.0.12) kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa kramdown-merge (7.1.0) @@ -768,7 +769,7 @@ CHECKSUMS lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 markdown-merge (7.1.0) - markly (0.16.0) sha256=6f70d79e385b1efc9e171f74c81628826259039fe6c778e03c3924c71dac5511 + markly (0.16.0) markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-x86_64-linux-gnu) sha256=379fae440b28915e3f19d752ce2dcf8465ed2b2fbefd2a7ca0dd497bc981a06a @@ -776,7 +777,7 @@ CHECKSUMS openssl (4.0.2) sha256=1037ad2868ae58df9ad917891c0c0f9815a1172f6846d4bcdd508e4c2ee747c2 ostruct (0.6.3) sha256=95a2ed4a4bd1d190784e666b47b2d3f078e4a9efda2fccf18f84ddc6538ed912 parallel (1.28.0) sha256=33e6de1484baf2524792d178b0913fc8eb94c628d6cfe45599ad4458c638c970 - parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c + parallel_tests (5.7.0) parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 parslet-toml-merge (7.1.0) @@ -798,15 +799,15 @@ CHECKSUMS regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb reline (0.6.3) sha256=1198b04973565b36ec0f11542ab3f5cfeeec34823f4e54cebde90968092b1835 rexml (3.4.4) sha256=19e0a2c3425dfbf2d4fc1189747bdb2f849b6c5e74180401b15734bc97b5d142 - rspec (3.13.2) sha256=206284a08ad798e61f86d7ca3e376718d52c0bc944626b2349266f239f820587 - rspec-block_is_expected (1.0.6) sha256=bbad3dc30eba93becf4dcb3fd1bff5f37f6e212ab5cbf6132c07edba6ff74282 - rspec-core (3.13.6) sha256=a8823c6411667b60a8bca135364351dda34cd55e44ff94c4be4633b37d828b2d - rspec-expectations (3.13.5) sha256=33a4d3a1d95060aea4c94e9f237030a8f9eae5615e9bd85718fe3a09e4b58836 - rspec-mocks (3.13.8) sha256=086ad3d3d17533f4237643de0b5c42f04b66348c28bf6b9c2d3f4a3b01af1d47 - rspec-pending_for (0.1.21) sha256=c87fda50c20f8faca72d9cfa6a936abffd37860343f14aced95bbb29b8ae96bf - rspec-stubbed_env (1.0.6) sha256=6467a6eb0f72146d443ffb0c5a2a549d8812e59c04fbc81e03cd914ebf1f28dc - rspec-support (3.13.7) sha256=0640e5570872aafefd79867901deeeeb40b0c9875a36b983d85f54fb7381c47c - rspec_junit_formatter (0.6.0) sha256=40dde674e6ae4e6cc0ff560da25497677e34fefd2338cc467a8972f602b62b15 + rspec (3.13.2) + rspec-block_is_expected (1.0.6) + rspec-core (3.13.6) + rspec-expectations (3.13.5) + rspec-mocks (3.13.8) + rspec-pending_for (0.1.21) + rspec-stubbed_env (1.0.6) + rspec-support (3.13.7) + rspec_junit_formatter (0.6.0) rubocop (1.88.2) sha256=8def251c90cd955feb4daa3edc0ab56893250c4ce90ef81e6c80c03f9a939bbf rubocop-ast (1.50.0) sha256=b9ca88300da0803ee222ad20cdb30494c0a784eed06fdc35d254b06d662788db rubocop-capybara (2.23.0) sha256=f9ea1ba3a7561ee8e88cf76fc378ce517ce5327155f305ee7b5c2500e5aee357 @@ -828,18 +829,18 @@ CHECKSUMS rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 ruby-merge (7.1.0) ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 - ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa - ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 + ruby_engine (2.0.3) + ruby_version (1.0.3) rust-merge (7.1.0) service_actor (3.9.4) sha256=e63b523630b9a7e62959b2a90113b08d2565b5de9c148557b281ef847c9539ce - silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 + silent_stream (1.0.12) simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed smorg-rb (7.1.0) - sorbet-runtime (0.6.13347) sha256=54e7221d9f4b63f58aec79f3043752a9ba7810347c6ae0d903531591cc2d5f01 + sorbet-runtime (0.6.13351) sha256=f8fee17c6e3edf835dc6823d26afb9a7c8969c6710d1fabe2fb43f4e0c15c64f standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b standard-performance (1.9.0) sha256=49483d31be448292951d80e5e67cdcb576c2502103c7b40aec6f1b6e9c88e3f2 @@ -849,16 +850,16 @@ CHECKSUMS strscan (3.1.8) sha256=aae2db611a225559f21ffbb71765c9a4e60fd262534a9ea84f4f11c7f32f679e terminal-table (4.0.0) sha256=f504793203f8251b2ea7c7068333053f0beeea26093ec9962e62ea79f94301d2 thor (1.5.0) sha256=e3a9e55fe857e44859ce104a84675ab6e8cd59c650a49106a05f55f136425e73 - timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 - timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 + timecop (0.9.11) + timecop-rspec (1.0.3) token-resolver (2.0.5) sha256=b852f924287ffb58a440856e862b056c8ad97e74b4b2526cee43e0771f40c25c - toml (0.3.0) sha256=0a91d0f76a9036e84e44f95693b12f58d358c1df3ac8e3b5271f2056ecc6e4b9 + toml (0.3.0) toml-merge (7.1.0) - toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 + toml-rb (4.2.0) tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f - turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 + turbo_tests2 (3.2.0) typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f diff --git a/gems/rbs-merge/.simplecov b/gems/rbs-merge/.simplecov index aa9cf380f..a60ee121e 100644 --- a/gems/rbs-merge/.simplecov +++ b/gems/rbs-merge/.simplecov @@ -4,15 +4,11 @@ # rbs-merge will then preserve content between those markers across template runs. # kettle-jem:unfreeze -require 'kettle/soup/cover/config' - # Minimum coverage thresholds are set by kettle-soup-cover. # They are controlled by ENV variables loaded by `mise` from `mise.toml` # (with optional machine-local overrides in `.env.local`). # If the values for minimum coverage need to change, they should be changed both there, # and in 2 places in .github/workflows/coverage.yml. -SimpleCov.start do - track_files 'lib/**/*.rb' - track_files 'lib/**/*.rake' - track_files 'exe/*.rb' +SimpleCov.configure do + cover "lib/**/*.rb", "lib/**/*.rake", "exe/*.rb" end diff --git a/gems/rbs-merge/Gemfile.lock b/gems/rbs-merge/Gemfile.lock index fdcf225be..fd4f58619 100644 --- a/gems/rbs-merge/Gemfile.lock +++ b/gems/rbs-merge/Gemfile.lock @@ -266,6 +266,23 @@ PATH tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) +PATH + remote: /var/home/pboling/src/my/kettle-dev/kettle-drift + specs: + kettle-drift (1.0.6) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /var/home/pboling/src/my/kettle-dev/kettle-soup-cover + specs: + kettle-soup-cover (3.0.4) + kettle-wash (~> 0.1, >= 0.1.0) + simplecov (>= 1.0) + simplecov-cobertura (>= 4.0) + simplecov-console (~> 0.9, >= 0.9.5) + simplecov-rcov (~> 0.3, >= 0.3.7) + simplecov_lcov_formatter (~> 0.9, >= 0.9.0) + GEM remote: https://gem.coop/ specs: @@ -294,7 +311,6 @@ GEM commonmarker (2.9.0-aarch64-linux-musl) commonmarker (2.9.0-arm64-darwin) commonmarker (2.9.0-x86_64-linux) - commonmarker (2.9.0-x86_64-linux-musl) concurrent-ruby (1.3.8) date (3.5.1) debug (1.11.1) @@ -357,16 +373,7 @@ GEM kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) - kettle-drift (1.0.6) - version_gem (~> 1.1, >= 1.1.14) kettle-rb (0.1.5) - kettle-soup-cover (3.0.4) - kettle-wash (~> 0.1, >= 0.1.0) - simplecov (>= 1.0) - simplecov-cobertura (>= 4.0) - simplecov-console (~> 0.9, >= 0.9.5) - simplecov-rcov (~> 0.3, >= 0.3.7) - simplecov_lcov_formatter (~> 0.9, >= 0.9.0) kettle-test (2.0.12) appraisal2 (~> 3.0, >= 3.0.6) backports (~> 3.0) @@ -567,7 +574,7 @@ GEM simplecov (>= 0.4.1) simplecov_lcov_formatter (0.9.0) simplecov (>= 0.18) - sorbet-runtime (0.6.13347) + sorbet-runtime (0.6.13351) standard (1.56.0) language_server-protocol (~> 3.17.0.2) lint_roller (~> 1.0) @@ -687,9 +694,9 @@ DEPENDENCIES irb (~> 1.17) json-merge! kettle-dev (~> 2.3, >= 2.3.7) - kettle-drift (~> 1.0, >= 1.0.6) + kettle-drift! kettle-jem! - kettle-soup-cover (~> 3.0, >= 3.0.3) + kettle-soup-cover! kettle-test (~> 2.0, >= 2.0.12) kramdown (~> 2.5, >= 2.5.2) kramdown-merge! @@ -763,7 +770,6 @@ CHECKSUMS commonmarker (2.9.0-aarch64-linux-musl) sha256=1cf4d2821f2a7e64945f1ed7c4eeced586fdb27ea7fe7337788802cf8f57cfca commonmarker (2.9.0-arm64-darwin) sha256=1748dbfa4f5813b0d2a14bb4bbfa65a4ec293aa1c825016d60029ee0e132b046 commonmarker (2.9.0-x86_64-linux) sha256=8cfe92970eef585a19ddf6613224b91cab64d6029834661bda801f877c9c7f43 - commonmarker (2.9.0-x86_64-linux-musl) sha256=293921398b839f79ceaf55010e061357e34f053822c3b003cd0be6686176335e commonmarker-merge (7.1.0) concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 @@ -791,7 +797,7 @@ CHECKSUMS json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 json-merge (7.1.0) kettle-dev (2.3.8) sha256=9d716ff21c660a730cb4e8d41e2e2f0630a28167a354b6e2924e242102aef72c - kettle-drift (1.0.6) sha256=46eda08fa4411d1f3c6682a95eef1c9df4e94611b3949f49d4c7b43c0ed356a3 + kettle-drift (1.0.6) kettle-jem (7.1.0) kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f kettle-soup-cover (3.0.4) @@ -880,7 +886,7 @@ CHECKSUMS simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed smorg-rb (7.1.0) - sorbet-runtime (0.6.13347) sha256=54e7221d9f4b63f58aec79f3043752a9ba7810347c6ae0d903531591cc2d5f01 + sorbet-runtime (0.6.13351) sha256=f8fee17c6e3edf835dc6823d26afb9a7c8969c6710d1fabe2fb43f4e0c15c64f standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b standard-performance (1.9.0) sha256=49483d31be448292951d80e5e67cdcb576c2502103c7b40aec6f1b6e9c88e3f2 diff --git a/gems/rbs-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile b/gems/rbs-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile index b8392fab0..dec650815 100644 --- a/gems/rbs-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile +++ b/gems/rbs-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.1 -gem 'benchmark', '~> 0.5', '>= 0.5.0' # Removed from Std Lib in Ruby 4.0 +gem "benchmark", "~> 0.5", ">= 0.5.0" # Removed from Std Lib in Ruby 4.0 diff --git a/gems/rbs-merge/gemfiles/modular/benchmark/vHEAD.gemfile b/gems/rbs-merge/gemfiles/modular/benchmark/vHEAD.gemfile index af214aafa..e1eb20c5e 100644 --- a/gems/rbs-merge/gemfiles/modular/benchmark/vHEAD.gemfile +++ b/gems/rbs-merge/gemfiles/modular/benchmark/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.1 -gem 'benchmark', github: 'ruby/benchmark', branch: 'master' +gem "benchmark", github: "ruby/benchmark", branch: "master" diff --git a/gems/rbs-merge/gemfiles/modular/cgi/r4/v0.5.gemfile b/gems/rbs-merge/gemfiles/modular/cgi/r4/v0.5.gemfile index 17ad97260..19ed967c3 100644 --- a/gems/rbs-merge/gemfiles/modular/cgi/r4/v0.5.gemfile +++ b/gems/rbs-merge/gemfiles/modular/cgi/r4/v0.5.gemfile @@ -1 +1 @@ -gem 'cgi', '~> 0.5' +gem "cgi", "~> 0.5" diff --git a/gems/rbs-merge/gemfiles/modular/cgi/vHEAD.gemfile b/gems/rbs-merge/gemfiles/modular/cgi/vHEAD.gemfile index 650fbf033..ef8b816ce 100644 --- a/gems/rbs-merge/gemfiles/modular/cgi/vHEAD.gemfile +++ b/gems/rbs-merge/gemfiles/modular/cgi/vHEAD.gemfile @@ -1 +1 @@ -gem 'cgi', '>= 0.5' +gem "cgi", ">= 0.5" diff --git a/gems/rbs-merge/gemfiles/modular/coverage.gemfile b/gems/rbs-merge/gemfiles/modular/coverage.gemfile index b93014b6b..52d737872 100644 --- a/gems/rbs-merge/gemfiles/modular/coverage.gemfile +++ b/gems/rbs-merge/gemfiles/modular/coverage.gemfile @@ -4,11 +4,11 @@ # Set KETTLE_DEV_DEV=true for local development with path-based dependencies. # When false (default / CI), remote released gems are used. -if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? +if ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false").zero? # Coverage (remote/released) platform :mri do - gem 'kettle-soup-cover', '~> 3.0', '>= 3.0.3', require: false + gem "kettle-soup-cover", "~> 3.0", ">= 3.0.3", require: false end else - eval_gemfile 'coverage_local.gemfile' + eval_gemfile "coverage_local.gemfile" end diff --git a/gems/rbs-merge/gemfiles/modular/coverage_local.gemfile b/gems/rbs-merge/gemfiles/modular/coverage_local.gemfile index f564d6ae4..17070985e 100644 --- a/gems/rbs-merge/gemfiles/modular/coverage_local.gemfile +++ b/gems/rbs-merge/gemfiles/modular/coverage_local.gemfile @@ -11,19 +11,21 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] -nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) +nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] +nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == "nomono" } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + if nomono_locked + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] + end end -Kernel.send(:gem, 'nomono', *nomono_activation_requirements) -require 'nomono/bundler' +Kernel.send(:gem, "nomono", *nomono_activation_requirements) +require "nomono/bundler" local_gems = %w[kettle-dev kettle-test kettle-soup-cover kettle-drift] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) @@ -33,21 +35,21 @@ local_gems_to_eval = local_gems - %w[rbs-merge] - declared_gems platform :mri do eval_nomono_gems( gems: local_gems_to_eval, - prefix: 'KETTLE_DEV', - path_env: 'KETTLE_DEV_DEV', - vendored_gems_env: 'VENDORED_GEMS', - vendor_gem_dir_env: 'VENDOR_GEM_DIR', - debug_env: 'KETTLE_DEV_DEBUG' + prefix: "KETTLE_DEV", + path_env: "KETTLE_DEV_DEV", + vendored_gems_env: "VENDORED_GEMS", + vendor_gem_dir_env: "VENDOR_GEM_DIR", + debug_env: "KETTLE_DEV_DEBUG" ) - if ENV.fetch('GALTZO_FLOSS_DEV', 'false').casecmp('false') != 0 + if ENV.fetch("GALTZO_FLOSS_DEV", "false").casecmp("false") != 0 eval_nomono_gems( gems: %w[turbo_tests2], - prefix: 'GALTZO_FLOSS', - path_env: 'GALTZO_FLOSS_DEV', - vendored_gems_env: 'GALTZO_FLOSS_VENDORED_GEMS', - vendor_gem_dir_env: 'GALTZO_FLOSS_VENDOR_GEM_DIR', - debug_env: 'GALTZO_FLOSS_DEBUG' + prefix: "GALTZO_FLOSS", + path_env: "GALTZO_FLOSS_DEV", + vendored_gems_env: "GALTZO_FLOSS_VENDORED_GEMS", + vendor_gem_dir_env: "GALTZO_FLOSS_VENDOR_GEM_DIR", + debug_env: "GALTZO_FLOSS_DEBUG" ) end end diff --git a/gems/rbs-merge/gemfiles/modular/debug.gemfile b/gems/rbs-merge/gemfiles/modular/debug.gemfile index eed8d4d1e..4e15b1a3a 100644 --- a/gems/rbs-merge/gemfiles/modular/debug.gemfile +++ b/gems/rbs-merge/gemfiles/modular/debug.gemfile @@ -13,10 +13,10 @@ platform :mri do # Debugging - Ensure ENV["DEBUG"] == "true" to use debuggers within spec suite # Use binding.break, binding.b, or debugger in code - gem 'debug', '>= 1.1' # ruby >= 2.7 + gem "debug", ">= 1.1" # ruby >= 2.7 # Dev Console - Binding.pry - Irb replacement # gem "pry", "~> 0.14" # ruby >= 2.0 end -gem 'gem_bench', '~> 2.0', '>= 2.0.5' +gem "gem_bench", "~> 2.0", ">= 2.0.5" diff --git a/gems/rbs-merge/gemfiles/modular/documentation.gemfile b/gems/rbs-merge/gemfiles/modular/documentation.gemfile index 9d4535f12..d8215416e 100644 --- a/gems/rbs-merge/gemfiles/modular/documentation.gemfile +++ b/gems/rbs-merge/gemfiles/modular/documentation.gemfile @@ -7,20 +7,20 @@ # # Documentation -gem 'kramdown', '~> 2.5', '>= 2.5.2', require: false # Ruby >= 2.5 -gem 'kramdown-parser-gfm', '~> 1.1', require: false # Ruby >= 2.3 -gem 'yaml-converter', '~> 0.2', '>= 0.2.3', require: false # Ruby >= 3.2 -gem 'yard', '~> 0.9', '>= 0.9.45', require: false -gem 'yard-junk', '~> 0.1', '>= 0.1.0', require: false # Ruby >= 3.1 -gem 'yard-relative_markdown_links', '~> 0.6', require: false +gem "kramdown", "~> 2.5", ">= 2.5.2", require: false # Ruby >= 2.5 +gem "kramdown-parser-gfm", "~> 1.1", require: false # Ruby >= 2.3 +gem "yaml-converter", "~> 0.2", ">= 0.2.3", require: false # Ruby >= 3.2 +gem "yard", "~> 0.9", ">= 0.9.45", require: false +gem "yard-junk", "~> 0.1", ">= 0.1.0", require: false # Ruby >= 3.1 +gem "yard-relative_markdown_links", "~> 0.6", require: false -if ENV.fetch('GALTZO_FLOSS_DEV', 'false').casecmp('false').zero? - gem 'yard-fence', '~> 0.9', '>= 0.9.6', require: false # Ruby >= 3.2 - gem 'yard-timekeeper', '~> 0.2', '>= 0.2.4', require: false - gem 'yard-yaml', '~> 0.2', '>= 0.2.3', require: false +if ENV.fetch("GALTZO_FLOSS_DEV", "false").casecmp("false").zero? + gem "yard-fence", "~> 0.9", ">= 0.9.6", require: false # Ruby >= 3.2 + gem "yard-timekeeper", "~> 0.2", ">= 0.2.4", require: false + gem "yard-yaml", "~> 0.2", ">= 0.2.3", require: false else - eval_gemfile 'documentation_local.gemfile' + eval_gemfile "documentation_local.gemfile" end # Std Lib extractions -gem 'rdoc', '~> 6.11', require: false unless ENV.fetch('KJ_FRAMEWORK_MATRIX_GEM', '') == 'rdoc' +gem "rdoc", "~> 6.11", require: false unless ENV.fetch("KJ_FRAMEWORK_MATRIX_GEM", "") == "rdoc" diff --git a/gems/rbs-merge/gemfiles/modular/documentation_local.gemfile b/gems/rbs-merge/gemfiles/modular/documentation_local.gemfile index c90c8606e..a8cdf0328 100644 --- a/gems/rbs-merge/gemfiles/modular/documentation_local.gemfile +++ b/gems/rbs-merge/gemfiles/modular/documentation_local.gemfile @@ -11,19 +11,21 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] -nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) +nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] +nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == "nomono" } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + if nomono_locked + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] + end end -Kernel.send(:gem, 'nomono', *nomono_activation_requirements) -require 'nomono/bundler' +Kernel.send(:gem, "nomono", *nomono_activation_requirements) +require "nomono/bundler" local_gems = %w[yard-fence yard-timekeeper yard-yaml] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) @@ -32,9 +34,9 @@ local_gems_to_eval = local_gems - %w[rbs-merge] - declared_gems # export GALTZO_FLOSS_DEV=/path/to/galtzo-floss eval_nomono_gems( gems: local_gems_to_eval, - prefix: 'GALTZO_FLOSS', - path_env: 'GALTZO_FLOSS_DEV', - vendored_gems_env: 'GALTZO_FLOSS_VENDORED_GEMS', - vendor_gem_dir_env: 'GALTZO_FLOSS_VENDOR_GEM_DIR', - debug_env: 'GALTZO_FLOSS_DEBUG' + prefix: "GALTZO_FLOSS", + path_env: "GALTZO_FLOSS_DEV", + vendored_gems_env: "GALTZO_FLOSS_VENDORED_GEMS", + vendor_gem_dir_env: "GALTZO_FLOSS_VENDOR_GEM_DIR", + debug_env: "GALTZO_FLOSS_DEBUG" ) diff --git a/gems/rbs-merge/gemfiles/modular/erb/r2/v3.0.gemfile b/gems/rbs-merge/gemfiles/modular/erb/r2/v3.0.gemfile index 7c83a239b..c03bd8d85 100644 --- a/gems/rbs-merge/gemfiles/modular/erb/r2/v3.0.gemfile +++ b/gems/rbs-merge/gemfiles/modular/erb/r2/v3.0.gemfile @@ -1 +1 @@ -gem 'erb', '~> 3.0' # ruby >= 2.7.0 +gem "erb", "~> 3.0" # ruby >= 2.7.0 diff --git a/gems/rbs-merge/gemfiles/modular/erb/r3/v5.0.gemfile b/gems/rbs-merge/gemfiles/modular/erb/r3/v5.0.gemfile index ec7ff451f..1bd029cc1 100644 --- a/gems/rbs-merge/gemfiles/modular/erb/r3/v5.0.gemfile +++ b/gems/rbs-merge/gemfiles/modular/erb/r3/v5.0.gemfile @@ -1 +1 @@ -gem 'erb', '~> 6.0', '>= 6.0.6' # ruby >= 3.2.0 +gem "erb", "~> 6.0", ">= 6.0.6" # ruby >= 3.2.0 diff --git a/gems/rbs-merge/gemfiles/modular/erb/r4/v5.0.gemfile b/gems/rbs-merge/gemfiles/modular/erb/r4/v5.0.gemfile index ec7ff451f..1bd029cc1 100644 --- a/gems/rbs-merge/gemfiles/modular/erb/r4/v5.0.gemfile +++ b/gems/rbs-merge/gemfiles/modular/erb/r4/v5.0.gemfile @@ -1 +1 @@ -gem 'erb', '~> 6.0', '>= 6.0.6' # ruby >= 3.2.0 +gem "erb", "~> 6.0", ">= 6.0.6" # ruby >= 3.2.0 diff --git a/gems/rbs-merge/gemfiles/modular/erb/vHEAD.gemfile b/gems/rbs-merge/gemfiles/modular/erb/vHEAD.gemfile index ea0101185..48fee4218 100644 --- a/gems/rbs-merge/gemfiles/modular/erb/vHEAD.gemfile +++ b/gems/rbs-merge/gemfiles/modular/erb/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 3.2 -gem 'erb', github: 'ruby/erb', branch: 'master' +gem "erb", github: "ruby/erb", branch: "master" diff --git a/gems/rbs-merge/gemfiles/modular/json/truffleruby_22_3.gemfile b/gems/rbs-merge/gemfiles/modular/json/truffleruby_22_3.gemfile index 9b2f8d96a..b0e69ab11 100644 --- a/gems/rbs-merge/gemfiles/modular/json/truffleruby_22_3.gemfile +++ b/gems/rbs-merge/gemfiles/modular/json/truffleruby_22_3.gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -if RUBY_ENGINE == 'truffleruby' && RUBY_ENGINE_VERSION.start_with?('22.3') +if RUBY_ENGINE == "truffleruby" && RUBY_ENGINE_VERSION.start_with?("22.3") # TruffleRuby 22.3 ships the json default gem from its emulated MRI Ruby. - gem 'json', '= 2.5.1' + gem "json", "= 2.5.1" end diff --git a/gems/rbs-merge/gemfiles/modular/json/truffleruby_23_0.gemfile b/gems/rbs-merge/gemfiles/modular/json/truffleruby_23_0.gemfile index d787a5ef4..7b2660a2b 100644 --- a/gems/rbs-merge/gemfiles/modular/json/truffleruby_23_0.gemfile +++ b/gems/rbs-merge/gemfiles/modular/json/truffleruby_23_0.gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -if RUBY_ENGINE == 'truffleruby' && RUBY_ENGINE_VERSION.start_with?('23.0') +if RUBY_ENGINE == "truffleruby" && RUBY_ENGINE_VERSION.start_with?("23.0") # TruffleRuby 23.0 ships the json default gem from its emulated MRI Ruby. - gem 'json', '= 2.6.1' + gem "json", "= 2.6.1" end diff --git a/gems/rbs-merge/gemfiles/modular/json/truffleruby_23_1.gemfile b/gems/rbs-merge/gemfiles/modular/json/truffleruby_23_1.gemfile index d78486b0e..dfa21f2e4 100644 --- a/gems/rbs-merge/gemfiles/modular/json/truffleruby_23_1.gemfile +++ b/gems/rbs-merge/gemfiles/modular/json/truffleruby_23_1.gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -if RUBY_ENGINE == 'truffleruby' && RUBY_ENGINE_VERSION.start_with?('23.1') +if RUBY_ENGINE == "truffleruby" && RUBY_ENGINE_VERSION.start_with?("23.1") # TruffleRuby 23.1 ships the json default gem from its emulated MRI Ruby. - gem 'json', '= 2.6.3' + gem "json", "= 2.6.3" end diff --git a/gems/rbs-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile b/gems/rbs-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile index e27f1bbae..42e9d9bd4 100644 --- a/gems/rbs-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile +++ b/gems/rbs-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 -gem 'mutex_m', '~> 0.2' +gem "mutex_m", "~> 0.2" diff --git a/gems/rbs-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile b/gems/rbs-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile index e27f1bbae..42e9d9bd4 100644 --- a/gems/rbs-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile +++ b/gems/rbs-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 -gem 'mutex_m', '~> 0.2' +gem "mutex_m", "~> 0.2" diff --git a/gems/rbs-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile b/gems/rbs-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile index e27f1bbae..42e9d9bd4 100644 --- a/gems/rbs-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile +++ b/gems/rbs-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 -gem 'mutex_m', '~> 0.2' +gem "mutex_m", "~> 0.2" diff --git a/gems/rbs-merge/gemfiles/modular/mutex_m/vHEAD.gemfile b/gems/rbs-merge/gemfiles/modular/mutex_m/vHEAD.gemfile index 9dac2f6cb..8af3b6fca 100644 --- a/gems/rbs-merge/gemfiles/modular/mutex_m/vHEAD.gemfile +++ b/gems/rbs-merge/gemfiles/modular/mutex_m/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 (dependency of omniauth) -gem 'mutex_m', github: 'ruby/mutex_m', branch: 'master' +gem "mutex_m", github: "ruby/mutex_m", branch: "master" diff --git a/gems/rbs-merge/gemfiles/modular/optional.gemfile b/gems/rbs-merge/gemfiles/modular/optional.gemfile index dad9c8f51..67f689c0f 100644 --- a/gems/rbs-merge/gemfiles/modular/optional.gemfile +++ b/gems/rbs-merge/gemfiles/modular/optional.gemfile @@ -10,4 +10,4 @@ # Required for kettle-pre-release # URL parsing with Unicode support (falls back to URI if not available) -gem 'addressable', '>= 2.8', '< 3' # ruby >= 2.2 +gem "addressable", ">= 2.8", "< 3" # ruby >= 2.2 diff --git a/gems/rbs-merge/gemfiles/modular/rspec.gemfile b/gems/rbs-merge/gemfiles/modular/rspec.gemfile index 2af210a41..72fdf8b7f 100644 --- a/gems/rbs-merge/gemfiles/modular/rspec.gemfile +++ b/gems/rbs-merge/gemfiles/modular/rspec.gemfile @@ -1,4 +1,4 @@ -gem 'rspec_junit_formatter', - github: 'pboling/rspec_junit_formatter', - branch: 'main', - ref: '9e6bcaaedd49477b62878ed568dc4ada5cc7cb5e' +gem "rspec_junit_formatter", + github: "pboling/rspec_junit_formatter", + branch: "main", + ref: "9e6bcaaedd49477b62878ed568dc4ada5cc7cb5e" diff --git a/gems/rbs-merge/gemfiles/modular/runtime_heads.gemfile b/gems/rbs-merge/gemfiles/modular/runtime_heads.gemfile index ebf17c529..02f134c7f 100644 --- a/gems/rbs-merge/gemfiles/modular/runtime_heads.gemfile +++ b/gems/rbs-merge/gemfiles/modular/runtime_heads.gemfile @@ -8,4 +8,4 @@ # Test against HEAD of runtime dependencies so we can proactively file bugs -eval_gemfile('x_std_libs/vHEAD.gemfile') +eval_gemfile("x_std_libs/vHEAD.gemfile") diff --git a/gems/rbs-merge/gemfiles/modular/stringio/r2/v3.0.gemfile b/gems/rbs-merge/gemfiles/modular/stringio/r2/v3.0.gemfile index 3616f4e3a..e85bb18ee 100644 --- a/gems/rbs-merge/gemfiles/modular/stringio/r2/v3.0.gemfile +++ b/gems/rbs-merge/gemfiles/modular/stringio/r2/v3.0.gemfile @@ -2,4 +2,4 @@ # NOT SEMVER # Version 3.0.7 dropped support for Ruby <= 2.7 # Version 3.0.0 dropped support for Ruby <= 2.4 -gem 'stringio', '>= 3.0' +gem "stringio", ">= 3.0" diff --git a/gems/rbs-merge/gemfiles/modular/stringio/r3/v3.0.gemfile b/gems/rbs-merge/gemfiles/modular/stringio/r3/v3.0.gemfile index 3616f4e3a..e85bb18ee 100644 --- a/gems/rbs-merge/gemfiles/modular/stringio/r3/v3.0.gemfile +++ b/gems/rbs-merge/gemfiles/modular/stringio/r3/v3.0.gemfile @@ -2,4 +2,4 @@ # NOT SEMVER # Version 3.0.7 dropped support for Ruby <= 2.7 # Version 3.0.0 dropped support for Ruby <= 2.4 -gem 'stringio', '>= 3.0' +gem "stringio", ">= 3.0" diff --git a/gems/rbs-merge/gemfiles/modular/stringio/r4/v3.0.gemfile b/gems/rbs-merge/gemfiles/modular/stringio/r4/v3.0.gemfile index 3616f4e3a..e85bb18ee 100644 --- a/gems/rbs-merge/gemfiles/modular/stringio/r4/v3.0.gemfile +++ b/gems/rbs-merge/gemfiles/modular/stringio/r4/v3.0.gemfile @@ -2,4 +2,4 @@ # NOT SEMVER # Version 3.0.7 dropped support for Ruby <= 2.7 # Version 3.0.0 dropped support for Ruby <= 2.4 -gem 'stringio', '>= 3.0' +gem "stringio", ">= 3.0" diff --git a/gems/rbs-merge/gemfiles/modular/stringio/vHEAD.gemfile b/gems/rbs-merge/gemfiles/modular/stringio/vHEAD.gemfile index 78f5f5d8a..5f2a74126 100644 --- a/gems/rbs-merge/gemfiles/modular/stringio/vHEAD.gemfile +++ b/gems/rbs-merge/gemfiles/modular/stringio/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 (dependency of omniauth) -gem 'stringio', github: 'ruby/stringio', branch: 'master' +gem "stringio", github: "ruby/stringio", branch: "master" diff --git a/gems/rbs-merge/gemfiles/modular/style.gemfile b/gems/rbs-merge/gemfiles/modular/style.gemfile index 4dbcc02c0..35de4dcd6 100644 --- a/gems/rbs-merge/gemfiles/modular/style.gemfile +++ b/gems/rbs-merge/gemfiles/modular/style.gemfile @@ -9,23 +9,23 @@ # Style tasks run on the latest Ruby; RuboCop-LTS selects the compatibility # rules for the configured Ruby floor independently from task dependency floors. -gem 'reek', '~> 6.5', '>= 6.5.0' +gem "reek", "~> 6.5", ">= 6.5.0" platform :mri do - gem 'appraisal2-rubocop', '~> 1.0', '>= 1.0.0', require: false - gem 'rubocop-gradual', '~> 0.4', '>= 0.4.0' - gem 'rubocop-minitest', '~> 0.40', '>= 0.40.0' - gem 'rubocop-on-rbs', '~> 2.0', '>= 2.0.0' # ruby >= 3.2.0 + gem "appraisal2-rubocop", "~> 1.0", ">= 1.0.0", require: false + gem "rubocop-gradual", "~> 0.4", ">= 0.4.0" + gem "rubocop-minitest", "~> 0.40", ">= 0.40.0" + gem "rubocop-on-rbs", "~> 2.0", ">= 2.0.0" # ruby >= 3.2.0 # gem "rubocop", "~> 1.73", ">= 1.73.2" # constrained by standard - gem 'rubocop-packaging', '~> 0.6', '>= 0.6.0' - gem 'standard', '~> 1.56', '>= 1.56.0' + gem "rubocop-packaging", "~> 0.6", ">= 0.6.0" + gem "standard", "~> 1.56", ">= 1.56.0" - if ENV.fetch('RUBOCOP_LTS_LOCAL', 'false').casecmp('false').zero? + if ENV.fetch("RUBOCOP_LTS_LOCAL", "false").casecmp("false").zero? declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) - gem 'rubocop-lts', '~> 24.2', '>= 24.2.1' unless declared_gems.include?('rubocop-lts') - gem 'rubocop-lts-rspec', '~> 1.0', '>= 1.0.5' unless declared_gems.include?('rubocop-lts-rspec') - gem 'rubocop-ruby3_2', '~> 3.0', '>= 3.0.6' unless declared_gems.include?('rubocop-ruby3_2') + gem "rubocop-lts", "~> 24.2", ">= 24.2.1" unless declared_gems.include?("rubocop-lts") + gem "rubocop-lts-rspec", "~> 1.0", ">= 1.0.5" unless declared_gems.include?("rubocop-lts-rspec") + gem "rubocop-ruby3_2", "~> 3.0", ">= 3.0.6" unless declared_gems.include?("rubocop-ruby3_2") else - eval_gemfile('style_local.gemfile') + eval_gemfile("style_local.gemfile") end end diff --git a/gems/rbs-merge/gemfiles/modular/style_local.gemfile b/gems/rbs-merge/gemfiles/modular/style_local.gemfile index 9f5254808..dbdea4662 100644 --- a/gems/rbs-merge/gemfiles/modular/style_local.gemfile +++ b/gems/rbs-merge/gemfiles/modular/style_local.gemfile @@ -14,19 +14,21 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] -nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) +nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] +nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == "nomono" } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + if nomono_locked + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] + end end -Kernel.send(:gem, 'nomono', *nomono_activation_requirements) -require 'nomono/bundler' +Kernel.send(:gem, "nomono", *nomono_activation_requirements) +require "nomono/bundler" local_gems = %w[rubocop-lts rubocop-lts-rspec rubocop-ruby3_2 standard-rubocop-lts] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) @@ -36,11 +38,11 @@ local_gems_to_eval = local_gems - %w[rbs-merge] - declared_gems platform :mri do eval_nomono_gems( gems: local_gems_to_eval, - prefix: 'RUBOCOP_LTS', - path_env: 'RUBOCOP_LTS_LOCAL', - vendored_gems_env: 'VENDORED_GEMS', - vendor_gem_dir_env: 'VENDOR_GEM_DIR', - debug_env: 'RUBOCOP_LTS_DEBUG', - root: %w[src rubocop-lts] + prefix: "RUBOCOP_LTS", + path_env: "RUBOCOP_LTS_LOCAL", + vendored_gems_env: "VENDORED_GEMS", + vendor_gem_dir_env: "VENDOR_GEM_DIR", + debug_env: "RUBOCOP_LTS_DEBUG", + root: ["src", "rubocop-lts"] ) end diff --git a/gems/rbs-merge/gemfiles/modular/webrick/r4/v1.9.gemfile b/gems/rbs-merge/gemfiles/modular/webrick/r4/v1.9.gemfile index b1329ba84..eaab4a473 100644 --- a/gems/rbs-merge/gemfiles/modular/webrick/r4/v1.9.gemfile +++ b/gems/rbs-merge/gemfiles/modular/webrick/r4/v1.9.gemfile @@ -1 +1 @@ -gem 'webrick', '~> 1.9' +gem "webrick", "~> 1.9" diff --git a/gems/rbs-merge/gemfiles/modular/webrick/vHEAD.gemfile b/gems/rbs-merge/gemfiles/modular/webrick/vHEAD.gemfile index c7e6f81a1..8a789b634 100644 --- a/gems/rbs-merge/gemfiles/modular/webrick/vHEAD.gemfile +++ b/gems/rbs-merge/gemfiles/modular/webrick/vHEAD.gemfile @@ -1 +1 @@ -gem 'webrick', '>= 1.9' +gem "webrick", ">= 1.9" diff --git a/gems/rbs-merge/gemfiles/modular/x_std_libs.gemfile b/gems/rbs-merge/gemfiles/modular/x_std_libs.gemfile index b1f43c097..77aad43f2 100644 --- a/gems/rbs-merge/gemfiles/modular/x_std_libs.gemfile +++ b/gems/rbs-merge/gemfiles/modular/x_std_libs.gemfile @@ -1,12 +1,12 @@ ### Std Lib Extracted Gems ruby_version = Gem::Version.new(RUBY_VERSION) -if ruby_version >= Gem::Version.new('4.0') - eval_gemfile 'x_std_libs/r4/libs.gemfile' -elsif ruby_version >= Gem::Version.new('3.2') - eval_gemfile 'x_std_libs/r3/libs.gemfile' -elsif ruby_version >= Gem::Version.new('3.1') - eval_gemfile 'x_std_libs/r3.1/libs.gemfile' +if ruby_version >= Gem::Version.new("4.0") + eval_gemfile "x_std_libs/r4/libs.gemfile" +elsif ruby_version >= Gem::Version.new("3.2") + eval_gemfile "x_std_libs/r3/libs.gemfile" +elsif ruby_version >= Gem::Version.new("3.1") + eval_gemfile "x_std_libs/r3.1/libs.gemfile" else - eval_gemfile 'x_std_libs/r2/libs.gemfile' + eval_gemfile "x_std_libs/r2/libs.gemfile" end diff --git a/gems/rbs-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile b/gems/rbs-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile index 16a5e3d70..441c4f03a 100644 --- a/gems/rbs-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile +++ b/gems/rbs-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile @@ -1,3 +1,3 @@ -eval_gemfile '../../erb/r2/v3.0.gemfile' -eval_gemfile '../../mutex_m/r2/v0.3.gemfile' -eval_gemfile '../../stringio/r2/v3.0.gemfile' +eval_gemfile "../../erb/r2/v3.0.gemfile" +eval_gemfile "../../mutex_m/r2/v0.3.gemfile" +eval_gemfile "../../stringio/r2/v3.0.gemfile" diff --git a/gems/rbs-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile b/gems/rbs-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile index 220ff95c1..c293a3ddd 100644 --- a/gems/rbs-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile +++ b/gems/rbs-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile @@ -1,3 +1,3 @@ -eval_gemfile '../../erb/r3/v5.0.gemfile' -eval_gemfile '../../mutex_m/r3/v0.3.gemfile' -eval_gemfile '../../stringio/r3/v3.0.gemfile' +eval_gemfile "../../erb/r3/v5.0.gemfile" +eval_gemfile "../../mutex_m/r3/v0.3.gemfile" +eval_gemfile "../../stringio/r3/v3.0.gemfile" diff --git a/gems/rbs-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile b/gems/rbs-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile index e2f6501eb..eb5574247 100644 --- a/gems/rbs-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile +++ b/gems/rbs-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile @@ -1,6 +1,6 @@ -eval_gemfile '../../erb/r4/v5.0.gemfile' -eval_gemfile '../../mutex_m/r4/v0.3.gemfile' -eval_gemfile '../../stringio/r4/v3.0.gemfile' -eval_gemfile '../../benchmark/r4/v0.5.gemfile' -eval_gemfile '../../cgi/r4/v0.5.gemfile' -eval_gemfile '../../webrick/r4/v1.9.gemfile' +eval_gemfile "../../erb/r4/v5.0.gemfile" +eval_gemfile "../../mutex_m/r4/v0.3.gemfile" +eval_gemfile "../../stringio/r4/v3.0.gemfile" +eval_gemfile "../../benchmark/r4/v0.5.gemfile" +eval_gemfile "../../cgi/r4/v0.5.gemfile" +eval_gemfile "../../webrick/r4/v1.9.gemfile" diff --git a/gems/rbs-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile b/gems/rbs-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile index ab75cccf1..d4d5b16c9 100644 --- a/gems/rbs-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile +++ b/gems/rbs-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile @@ -1,6 +1,6 @@ -eval_gemfile '../erb/vHEAD.gemfile' -eval_gemfile '../mutex_m/vHEAD.gemfile' -eval_gemfile '../stringio/vHEAD.gemfile' -eval_gemfile '../benchmark/vHEAD.gemfile' -eval_gemfile '../cgi/vHEAD.gemfile' -eval_gemfile '../webrick/vHEAD.gemfile' +eval_gemfile "../erb/vHEAD.gemfile" +eval_gemfile "../mutex_m/vHEAD.gemfile" +eval_gemfile "../stringio/vHEAD.gemfile" +eval_gemfile "../benchmark/vHEAD.gemfile" +eval_gemfile "../cgi/vHEAD.gemfile" +eval_gemfile "../webrick/vHEAD.gemfile" diff --git a/gems/rbs-merge/rbs-merge.gemspec b/gems/rbs-merge/rbs-merge.gemspec index 1734ca282..fc2844391 100644 --- a/gems/rbs-merge/rbs-merge.gemspec +++ b/gems/rbs-merge/rbs-merge.gemspec @@ -9,47 +9,47 @@ Gem::Specification.new do |spec| spec.name = 'rbs-merge' spec.version = Module.new.tap { |mod| Kernel.load("#{__dir__}/lib/rbs/merge/version.rb", mod) }::Rbs::Merge::Version::VERSION - spec.authors = ['Peter H. Boling'] - spec.email = ['floss@galtzo.com'] + spec.authors = ["Peter H. Boling"] + spec.email = ["floss@galtzo.com"] spec.summary = '☯️ Structured Merge RBS analysis and merge for Ruby' spec.description = '☯️ RBS declaration, comment, freeze-block, and template merge behavior for Structured Merge.' spec.homepage = 'https://github.com/structuredmerge/structuredmerge-ruby' - spec.licenses = ['AGPL-3.0-only', 'PolyForm-Small-Business-1.0.0'] - spec.required_ruby_version = '>= 4.0.0' + spec.licenses = ["AGPL-3.0-only", "PolyForm-Small-Business-1.0.0"] + spec.required_ruby_version = ">= 4.0.0" # Linux distros often package gems and securely certify them independent # of the official RubyGem certification process. Allowed via ENV["SKIP_GEM_SIGNING"] # Ref: https://gitlab.com/ruby-oauth/version_gem/-/issues/3 # Hence, only enable signing if `SKIP_GEM_SIGNING` is not set in ENV. # See CONTRIBUTING.md - unless ENV.include?('SKIP_GEM_SIGNING') - user_cert = "certs/#{ENV.fetch('GEM_CERT_USER', ENV['USER'])}.pem" + unless ENV.include?("SKIP_GEM_SIGNING") + user_cert = "certs/#{ENV.fetch("GEM_CERT_USER", ENV["USER"])}.pem" cert_file_path = File.join(__dir__, user_cert) - cert_chain = cert_file_path.split(',') + cert_chain = cert_file_path.split(",") cert_chain.select! { |fp| File.exist?(fp) } if cert_file_path && cert_chain.any? spec.cert_chain = cert_chain - if $PROGRAM_NAME.end_with?('gem') && ARGV[0] == 'build' - spec.signing_key = File.join(Gem.user_home, '.ssh', 'gem-private_key.pem') + if $PROGRAM_NAME.end_with?("gem") && ARGV[0] == "build" + spec.signing_key = File.join(Gem.user_home, ".ssh", "gem-private_key.pem") end end end - spec.metadata['homepage_uri'] = 'https://structuredmerge.org' - spec.metadata['source_code_uri'] = "#{spec.homepage}/tree/v#{spec.version}" - spec.metadata['changelog_uri'] = "#{spec.homepage}/blob/v#{spec.version}/CHANGELOG.md" - spec.metadata['bug_tracker_uri'] = "#{spec.homepage}/issues" - spec.metadata['documentation_uri'] = "https://www.rubydoc.info/gems/#{spec.name}/#{spec.version}" - spec.metadata['funding_uri'] = 'https://github.com/sponsors/pboling' - spec.metadata['wiki_uri'] = "#{spec.homepage}/wiki" - spec.metadata['news_uri'] = "https://www.railsbling.com/tags/#{spec.name}" - spec.metadata['discord_uri'] = 'https://discord.gg/3qme4XHNKN' - spec.metadata['rubygems_mfa_required'] = 'true' + spec.metadata["homepage_uri"] = "https://structuredmerge.org" + spec.metadata["source_code_uri"] = "#{spec.homepage}/tree/v#{spec.version}" + spec.metadata["changelog_uri"] = "#{spec.homepage}/blob/v#{spec.version}/CHANGELOG.md" + spec.metadata["bug_tracker_uri"] = "#{spec.homepage}/issues" + spec.metadata["documentation_uri"] = "https://www.rubydoc.info/gems/#{spec.name}/#{spec.version}" + spec.metadata["funding_uri"] = "https://github.com/sponsors/pboling" + spec.metadata["wiki_uri"] = "#{spec.homepage}/wiki" + spec.metadata["news_uri"] = "https://www.railsbling.com/tags/#{spec.name}" + spec.metadata["discord_uri"] = "https://discord.gg/3qme4XHNKN" + spec.metadata["rubygems_mfa_required"] = "true" enumerate_package_files = lambda do |root| - Dir.glob(File.join(root, '**', '*'), File::FNM_DOTMATCH).select do |path| - File.file?(path) && !['.', '..'].include?(File.basename(path)) + Dir.glob(File.join(root, "**", "*"), File::FNM_DOTMATCH).select do |path| + File.file?(path) && ![".", ".."].include?(File.basename(path)) end end package_metadata_files = %w[ @@ -69,17 +69,17 @@ Gem::Specification.new do |spec| *enumerate_package_files.call('exe') ] spec.rdoc_options += [ - '--title', + "--title", "#{spec.name} - #{spec.summary}", - '--main', - 'README.md', - '--exclude', - '^sig/', - '--line-numbers', - '--inline-source', - '--quiet' + "--main", + "README.md", + "--exclude", + "^sig/", + "--line-numbers", + "--inline-source", + "--quiet" ] - spec.bindir = 'exe' + spec.bindir = "exe" # Listed files are the relative paths from bindir above. spec.executables = [] @@ -89,13 +89,13 @@ Gem::Specification.new do |spec| # rbs-merge will then preserve content between those markers across template runs. # kettle-jem:unfreeze - spec.require_paths = ['lib'] + spec.require_paths = ["lib"] # Utilities spec.add_dependency 'ast-merge', "= #{spec.version}" spec.add_dependency 'rbs', '>= 3.10' spec.add_dependency 'tree_haver', "= #{spec.version}" - spec.add_dependency('version_gem', '~> 1.1', '>= 1.1.14') # ruby >= 2.2.0 + spec.add_dependency("version_gem", "~> 1.1", ">= 1.1.14") # ruby >= 2.2.0 # NOTE: It is preferable to list development dependencies in the gemspec due to increased # visibility and discoverability. @@ -111,30 +111,30 @@ Gem::Specification.new do |spec| # and preferably a modular one (see gemfiles/modular/*.gemfile). # Dev, Test, & Release Tasks - spec.add_development_dependency('kettle-dev', '~> 2.3', '>= 2.3.7') # ruby >= 4.0.0 + spec.add_development_dependency("kettle-dev", "~> 2.3", ">= 2.3.7") # ruby >= 4.0.0 # Security - spec.add_development_dependency('bundler-audit', '~> 0.9.3') # ruby >= 2.0.0 + spec.add_development_dependency("bundler-audit", "~> 0.9.3") # ruby >= 2.0.0 # Tasks - spec.add_development_dependency('rake', '~> 13.0') # ruby >= 2.2.0 + spec.add_development_dependency("rake", "~> 13.0") # ruby >= 2.2.0 # Debugging - spec.add_development_dependency('require_bench', '~> 1.0', '>= 1.0.4') # ruby >= 2.2.0 + spec.add_development_dependency("require_bench", "~> 1.0", ">= 1.0.4") # ruby >= 2.2.0 # Testing - spec.add_development_dependency('appraisal2', '~> 3.2', '>= 3.2.0') # ruby >= 1.8.7, for testing against multiple versions of dependencies - spec.add_development_dependency('kettle-test', '~> 2.0', '>= 2.0.12') # ruby >= 4.0.0 - spec.add_development_dependency('turbo_tests2', '~> 3.2', '>= 3.2.0') # ruby >= 2.4.0, default kettle-test runner + spec.add_development_dependency("appraisal2", "~> 3.2", ">= 3.2.0") # ruby >= 1.8.7, for testing against multiple versions of dependencies + spec.add_development_dependency("kettle-test", "~> 2.0", ">= 2.0.12") # ruby >= 4.0.0 + spec.add_development_dependency("turbo_tests2", "~> 3.2", ">= 3.2.0") # ruby >= 2.4.0, default kettle-test runner # Releasing - spec.add_development_dependency('ruby-progressbar', '~> 1.13') # ruby >= 0 - spec.add_development_dependency('stone_checksums', '~> 1.0', '>= 1.0.6') # ruby >= 2.2.0 + spec.add_development_dependency("ruby-progressbar", "~> 1.13") # ruby >= 0 + spec.add_development_dependency("stone_checksums", "~> 1.0", ">= 1.0.6") # ruby >= 2.2.0 # Development tasks # The cake is a lie. erb v2.2, the oldest release, was never compatible with Ruby 2.3. # This means we have no choice but to use the erb that shipped with Ruby 2.3 # /opt/hostedtoolcache/Ruby/2.3.8/x64/lib/ruby/gems/2.3.0/gems/erb-2.2.2/lib/erb.rb:670:in `prepare_trim_mode': undefined method `match?' for "-":String (NoMethodError) # spec.add_development_dependency("erb", ">= 2.2") # ruby >= 2.3.0, not SemVer, old rubies get dropped in a patch. - spec.add_development_dependency('gitmoji-regex', '~> 2.0', '>= 2.0.4') # ruby >= 2.4 + spec.add_development_dependency("gitmoji-regex", "~> 2.0", ">= 2.0.4") # ruby >= 2.4 end diff --git a/gems/rbs-merge/spec/spec_helper.rb b/gems/rbs-merge/spec/spec_helper.rb index c45ea1a42..4571dbc0e 100644 --- a/gems/rbs-merge/spec/spec_helper.rb +++ b/gems/rbs-merge/spec/spec_helper.rb @@ -7,11 +7,16 @@ # NOTE: Gemfiles for non-coverage appraisals may not have kettle-soup-cover. # The rescue LoadError handles that scenario. begin - require 'kettle-soup-cover' - require 'simplecov' if Kettle::Soup::Cover::DO_COV # `.simplecov` is run here! -rescue LoadError => e + require "kettle-soup-cover" + if Kettle::Soup::Cover::DO_COV + # Requiring simplecov loads the project-local `.simplecov`. + require "simplecov" + require "kettle/soup/cover/config" + SimpleCov.start + end +rescue LoadError => error # check the error message and re-raise when unexpected - raise e unless e.message.include?('kettle') + raise error unless error.message.include?("kettle") end # External RSpec & related config diff --git a/gems/yaml-merge/.kettle-drift.lock b/gems/yaml-merge/.kettle-drift.lock index 43dfedd67..7cc6a5131 100644 --- a/gems/yaml-merge/.kettle-drift.lock +++ b/gems/yaml-merge/.kettle-drift.lock @@ -1,10 +1,74 @@ { + "(direct_sibling_local ||\nENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?)": [ + { + "file": "Gemfile", + "lines": [ + 80, + 120 + ] + } + ], + ".find { |spec| spec.name == 'nomono' }\nnomono_locked = nomono_locked_spec &&": [ + { + "file": "Gemfile", + "lines": [ + 91, + 131 + ] + } + ], + "ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?)\ndirect_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV')": [ + { + "file": "Gemfile", + "lines": [ + 81, + 121 + ] + } + ], + "Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version)\nnomono_activation_requirements = [\"= #{nomono_locked_spec.version}\"] if nomono_locked": [ + { + "file": "Gemfile", + "lines": [ + 93, + 133 + ] + } + ], + "Kernel.send(:gem, 'nomono', *nomono_activation_requirements)\nrequire 'nomono/bundler'": [ + { + "file": "Gemfile", + "lines": [ + 96, + 136 + ] + } + ], + "direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV')\ndirect_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil)": [ + { + "file": "Gemfile", + "lines": [ + 82, + 122 + ] + } + ], "eval_nomono_gems(\ngems: direct_sibling_gems,": [ { "file": "Gemfile", "lines": [ 60, - 100 + 100, + 140 + ] + } + ], + "gems: direct_sibling_gems,\nprefix: 'STRUCTUREDMERGE',": [ + { + "file": "Gemfile", + "lines": [ + 101, + 141 ] } ], @@ -13,7 +77,17 @@ "file": "Gemfile", "lines": [ 43, - 87 + 87, + 127 + ] + } + ], + "if direct_sibling_dev_was_set\nENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original": [ + { + "file": "Gemfile", + "lines": [ + 110, + 150 ] } ], @@ -22,7 +96,8 @@ "file": "Gemfile", "lines": [ 35, - 79 + 79, + 119 ] } ], @@ -31,7 +106,17 @@ "file": "Gemfile", "lines": [ 69, - 109 + 109, + 149 + ] + } + ], + "nomono_activation_requirements = nomono_requirements\nnomono_lockfile = File.expand_path('Gemfile.lock', __dir__)": [ + { + "file": "Gemfile", + "lines": [ + 85, + 125 ] } ], @@ -40,7 +125,8 @@ "file": "Gemfile", "lines": [ 48, - 92 + 92, + 132 ] } ], @@ -49,7 +135,53 @@ "file": "Gemfile", "lines": [ 44, - 88 + 88, + 128 + ] + } + ], + "nomono_lockfile = File.expand_path('Gemfile.lock', __dir__)\nif File.file?(nomono_lockfile)": [ + { + "file": "Gemfile", + "lines": [ + 86, + 126 + ] + } + ], + "path_env: 'STRUCTUREDMERGE_DEV',\nroot: %w[src my structuredmerge]": [ + { + "file": "Gemfile", + "lines": [ + 103, + 143 + ] + } + ], + "prefix: 'STRUCTUREDMERGE',\npath_env: 'STRUCTUREDMERGE_DEV',": [ + { + "file": "Gemfile", + "lines": [ + 102, + 142 + ] + } + ], + "require 'nomono/bundler'\nENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local": [ + { + "file": "Gemfile", + "lines": [ + 97, + 137 + ] + } + ], + "rescue LoadError\nwarn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.'": [ + { + "file": "Gemfile", + "lines": [ + 106, + 146 ] } ] diff --git a/gems/yaml-merge/Gemfile b/gems/yaml-merge/Gemfile index f6f9e7e44..7b1aad645 100644 --- a/gems/yaml-merge/Gemfile +++ b/gems/yaml-merge/Gemfile @@ -6,7 +6,7 @@ # kettle-jem will then preserve content between those markers across template runs. # kettle-jem:unfreeze -source 'https://gem.coop' +source "https://gem.coop" git_source(:codeberg) { |repo_name| "https://codeberg.org/#{repo_name}" } git_source(:gitlab) { |repo_name| "https://gitlab.com/#{repo_name}" } @@ -19,18 +19,62 @@ git_source(:gitlab) { |repo_name| "https://gitlab.com/#{repo_name}" } gemspec # Local workspace dependency wiring for *_local.gemfile overrides -nomono_requirements = ['~> 1.0', '>= 1.0.8'] -gem 'nomono', *nomono_requirements, require: false # ruby >= 2.2 +nomono_requirements = ["~> 1.0", ">= 1.0.8"] +gem "nomono", *nomono_requirements, require: false # ruby >= 2.2 # Direct sibling dependencies (env-switched via STRUCTUREDMERGE_DEV) direct_sibling_gems = %w[ ast-merge tree_haver ] -direct_sibling_dev = ENV.fetch('STRUCTUREDMERGE_DEV', '') +direct_sibling_dev = ENV.fetch("STRUCTUREDMERGE_DEV", "") direct_sibling_local = !direct_sibling_dev.empty? && !%w[false 0 no off].include?(direct_sibling_dev.downcase) -direct_sibling_templating = ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? +direct_sibling_templating = ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? + +if direct_sibling_gems.any? && + (direct_sibling_local || + ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero?) + direct_sibling_dev_was_set = ENV.key?("STRUCTUREDMERGE_DEV") + direct_sibling_dev_original = ENV.fetch("STRUCTUREDMERGE_DEV", nil) + begin + nomono_activation_requirements = nomono_requirements + nomono_lockfile = File.expand_path("Gemfile.lock", __dir__) + if File.file?(nomono_lockfile) + nomono_locked_spec = Bundler::LockfileParser + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == "nomono" } + nomono_locked = nomono_locked_spec && + Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) + if nomono_locked + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] + end + end + Kernel.send(:gem, "nomono", *nomono_activation_requirements) + require "nomono/bundler" + if direct_sibling_templating && !direct_sibling_local + ENV["STRUCTUREDMERGE_DEV"] = File.expand_path("..", __dir__) + end + + eval_nomono_gems( + gems: direct_sibling_gems, + prefix: "STRUCTUREDMERGE", + path_env: "STRUCTUREDMERGE_DEV", + root: ["src", "my", "structuredmerge"] + ) + rescue LoadError + warn "Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies." + ensure + if direct_sibling_templating && !direct_sibling_local + if direct_sibling_dev_was_set + ENV["STRUCTUREDMERGE_DEV"] = direct_sibling_dev_original + else + ENV.delete("STRUCTUREDMERGE_DEV") + end + end + end +end if direct_sibling_gems.any? && (direct_sibling_local || @@ -113,28 +157,28 @@ if direct_sibling_gems.any? && end # Use released TSLP with the Ruby ABI platform-gem fix. -gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' +gem "tree_sitter_language_pack", "~> 1.13", ">= 1.13.3" # Templating (env-switched: STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local paths) -eval_gemfile 'gemfiles/modular/templating.gemfile' if ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? +eval_gemfile "gemfiles/modular/templating.gemfile" if ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? # Debugging -eval_gemfile 'gemfiles/modular/debug.gemfile' +eval_gemfile "gemfiles/modular/debug.gemfile" # Code Coverage (env-switched: KETTLE_DEV_DEV=true for local paths) -eval_gemfile 'gemfiles/modular/coverage.gemfile' +eval_gemfile "gemfiles/modular/coverage.gemfile" # Linting -eval_gemfile 'gemfiles/modular/style.gemfile' +eval_gemfile "gemfiles/modular/style.gemfile" # Documentation -eval_gemfile 'gemfiles/modular/documentation.gemfile' +eval_gemfile "gemfiles/modular/documentation.gemfile" # Optional -eval_gemfile 'gemfiles/modular/optional.gemfile' +eval_gemfile "gemfiles/modular/optional.gemfile" ### Std Lib Extracted Gems -eval_gemfile 'gemfiles/modular/x_std_libs.gemfile' +eval_gemfile "gemfiles/modular/x_std_libs.gemfile" # See unlocked_deps appraisal for more details on irb inclusion -gem 'irb', '~> 1.17' # ruby >= 2.7 +gem "irb", "~> 1.17" # ruby >= 2.7 diff --git a/gems/yaml-merge/Gemfile.lock b/gems/yaml-merge/Gemfile.lock index ccbcffd04..e8cec2963 100644 --- a/gems/yaml-merge/Gemfile.lock +++ b/gems/yaml-merge/Gemfile.lock @@ -6,6 +6,266 @@ PATH tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly + specs: + ast-crispr-markdown-markly (7.1.0) + ast-crispr (= 7.1.0) + markly-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism + specs: + ast-crispr-ruby-prism (7.1.0) + ast-crispr (= 7.1.0) + prism-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr + specs: + ast-crispr (7.1.0) + ast-merge (= 7.1.0) + service_actor (~> 3.9) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git + specs: + ast-merge-git (7.1.0) + ast-merge (= 7.1.0) + json-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge + specs: + ast-merge (7.1.0) + benchmark + token-resolver (~> 2.0, >= 2.0.4) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template + specs: + ast-template (7.1.0) + ast-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge + specs: + bash-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge + specs: + binary-merge (7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge + specs: + citrus-toml-merge (7.1.0) + toml-merge (= 7.1.0) + toml-rb (~> 4.1) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge + specs: + commonmarker-merge (7.1.0) + commonmarker (~> 2.2) + markdown-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge + specs: + dotenv-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge + specs: + go-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge + specs: + json-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem + specs: + kettle-jem (7.1.0) + addressable (>= 2.8, < 3) + ast-crispr-markdown-markly (= 7.1.0) + ast-crispr-ruby-prism (= 7.1.0) + ast-merge (= 7.1.0) + bash-merge (= 7.1.0) + citrus-toml-merge (= 7.1.0) + commonmarker-merge (= 7.1.0) + dotenv-merge (= 7.1.0) + json-merge (= 7.1.0) + kettle-dev (~> 2.3, >= 2.3.5) + kettle-rb (~> 0.1, >= 0.1.4) + kramdown-merge (= 7.1.0) + markdown-merge (= 7.1.0) + markly-merge (= 7.1.0) + prism-merge (= 7.1.0) + psych-merge (= 7.1.0) + rbs (>= 3.10) + rbs-merge (= 7.1.0) + ruby-merge (= 7.1.0) + token-resolver (~> 2.0, >= 2.0.4) + toml-merge (= 7.1.0) + toml-rb (~> 4.2) + tree_haver (= 7.1.0) + yaml-merge (= 7.1.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge + specs: + kramdown-merge (7.1.0) + kramdown (~> 2.5) + markdown-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge + specs: + markdown-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge + specs: + markly-merge (7.1.0) + markdown-merge (= 7.1.0) + markly (~> 0.9) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge + specs: + parslet-toml-merge (7.1.0) + toml (~> 0.3) + toml-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge + specs: + plain-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge + specs: + prism-merge (7.1.0) + prism (~> 1.6) + ruby-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge + specs: + psych-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + yaml-merge (= 7.1.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge + specs: + rbs-merge (7.1.0) + ast-merge (= 7.1.0) + rbs (>= 3.10) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge + specs: + ruby-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge + specs: + rust-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb + specs: + smorg-rb (7.1.0) + ast-merge (= 7.1.0) + ast-merge-git (= 7.1.0) + diff-lcs (~> 1.5) + go-merge (= 7.1.0) + json-merge (= 7.1.0) + kettle-jem (= 7.1.0) + markly-merge (= 7.1.0) + plain-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge + specs: + toml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver + specs: + tree_haver (7.1.0) + citrus (~> 3.0) + parslet (~> 2.0) + tree_sitter_language_pack (>= 1.13.2, < 2.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge + specs: + typescript-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge + specs: + zip-merge (7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + GEM remote: https://gem.coop/ specs: @@ -21,11 +281,6 @@ GEM rubocop (>= 1.0) version_gem (~> 1.1, >= 1.1.14) ast (2.4.3) - ast-merge (7.1.0) - benchmark - token-resolver (~> 2.0, >= 2.0.4) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) backports (3.25.3) benchmark (0.5.0) bigdecimal (4.1.2) @@ -35,6 +290,7 @@ GEM cgi (0.5.2) citrus (3.0.2) cmdparse (3.0.7) + commonmarker (2.9.0-x86_64-linux) concurrent-ruby (1.3.8) date (3.5.1) debug (1.11.1) @@ -97,6 +353,8 @@ GEM kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) + kettle-drift (1.0.6) + version_gem (~> 1.1, >= 1.1.14) kettle-rb (0.1.5) kettle-soup-cover (3.0.4) kettle-wash (~> 0.1, >= 0.1.0) @@ -125,6 +383,7 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) + markly (0.16.0) mutex_m (0.3.0) nokogiri (1.19.4-aarch64-linux-gnu) racc (~> 1.4) @@ -287,6 +546,8 @@ GEM ruby-progressbar (1.13.0) ruby_engine (2.0.3) ruby_version (1.0.3) + service_actor (3.9.4) + zeitwerk (>= 1.0) silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) @@ -302,7 +563,7 @@ GEM simplecov (>= 0.4.1) simplecov_lcov_formatter (0.9.0) simplecov (>= 0.18) - sorbet-runtime (0.6.13347) + sorbet-runtime (0.6.13351) standard (1.56.0) language_server-protocol (~> 3.17.0.2) lint_roller (~> 1.0) @@ -341,11 +602,11 @@ GEM token-resolver (2.0.5) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.14) - tree_haver (7.1.0) - citrus (~> 3.0) - parslet (~> 2.0) - tree_sitter_language_pack (>= 1.13.2, < 2.0) - version_gem (~> 1.1, >= 1.1.9) + toml (0.3.0) + parslet (>= 1.8.0, < 3.0.0) + toml-rb (4.2.0) + citrus (~> 3.0, > 3.0) + racc (~> 1.7) tree_sitter_language_pack (1.13.3-aarch64-linux) sorbet-runtime (~> 0.5) tree_sitter_language_pack (1.13.3-arm64-darwin) @@ -400,23 +661,46 @@ DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) appraisal2-rubocop (~> 1.0, >= 1.0.0) + ast-crispr! + ast-crispr-markdown-markly! + ast-crispr-ruby-prism! + ast-merge! + ast-merge-git! + ast-template! + bash-merge! benchmark (~> 0.5, >= 0.5.0) + binary-merge! bundler-audit (~> 0.9.3) cgi (~> 0.5) + citrus-toml-merge! + commonmarker-merge! debug (>= 1.1) + dotenv-merge! erb (~> 6.0, >= 6.0.6) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.0) + go-merge! irb (~> 1.17) + json-merge! kettle-dev (~> 2.0, >= 2.2.25) + kettle-drift (~> 1.0, >= 1.0.6) + kettle-jem! kettle-soup-cover (~> 3.0, >= 3.0.3) kettle-test (~> 2.0, >= 2.0.9) kramdown (~> 2.5, >= 2.5.2) + kramdown-merge! kramdown-parser-gfm (~> 1.1) + markdown-merge! + markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) + parslet-toml-merge! + plain-merge! + prism-merge! + psych-merge! rake (~> 13.0) rbs (>= 3.0) + rbs-merge! rdoc (~> 6.11) reek (~> 6.5, >= 6.5.0) require_bench (~> 1.0, >= 1.0.4) @@ -427,11 +711,17 @@ DEPENDENCIES rubocop-on-rbs (~> 2.0, >= 2.0.0) rubocop-packaging (~> 0.6, >= 0.6.0) rubocop-ruby3_2 (~> 3.0, >= 3.0.6) + ruby-merge! ruby-progressbar (~> 1.13) + rust-merge! + smorg-rb! standard (~> 1.56, >= 1.56.0) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) + toml-merge! + tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) + typescript-merge! webrick (~> 1.9) yaml-converter (~> 0.2, >= 0.2.3) yaml-merge! @@ -441,6 +731,7 @@ DEPENDENCIES yard-relative_markdown_links (~> 0.6) yard-timekeeper (~> 0.2, >= 0.2.4) yard-yaml (~> 0.2, >= 0.2.3) + zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af @@ -448,20 +739,31 @@ CHECKSUMS appraisal2 (3.2.0) sha256=ccd0b767ac4060cd7af6d16747459b6990f49c39c7b4fb1f7d1146b1e97c492f appraisal2-rubocop (1.0.0) sha256=b71410fbb014befda5340605a605b7f6f3f012739baf0acc5b4351b592c3258d ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 + ast-crispr (7.1.0) + ast-crispr-markdown-markly (7.1.0) + ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) + ast-merge-git (7.1.0) + ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 + bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd + binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 + citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 + commonmarker (2.9.0-x86_64-linux) + commonmarker-merge (7.1.0) concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 + dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -474,20 +776,28 @@ CHECKSUMS gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f + go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 + json-merge (7.1.0) kettle-dev (2.3.8) sha256=9d716ff21c660a730cb4e8d41e2e2f0630a28167a354b6e2924e242102aef72c + kettle-drift (1.0.6) + kettle-jem (7.1.0) kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f kettle-soup-cover (3.0.4) kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa + kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 + markdown-merge (7.1.0) + markly (0.16.0) + markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-aarch64-linux-gnu) sha256=1269fb644a6de405057a53dd5c762b1209b43ca7424f839454d3dbc677c31a8f nokogiri (1.19.4-aarch64-linux-musl) sha256=35c65b9ce72b3bb03207bdbe7067915019dc18c1b9b59139684bd6690fdd01af @@ -501,15 +811,20 @@ CHECKSUMS parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 + parslet-toml-merge (7.1.0) + plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 + prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 + psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 + rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb @@ -544,16 +859,20 @@ CHECKSUMS rubocop-rspec_rails (2.32.0) sha256=4a0d641c72f6ebb957534f539d9d0a62c47abd8ce0d0aeee1ef4701e892a9100 rubocop-ruby3_2 (3.0.7) sha256=f53dd6d286fb05186214fc6ec116783e7f837030918e8931c05de773e98f8466 rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 + ruby-merge (7.1.0) ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 + rust-merge (7.1.0) + service_actor (3.9.4) silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed - sorbet-runtime (0.6.13347) sha256=54e7221d9f4b63f58aec79f3043752a9ba7810347c6ae0d903531591cc2d5f01 + smorg-rb (7.1.0) + sorbet-runtime (0.6.13351) sha256=f8fee17c6e3edf835dc6823d26afb9a7c8969c6710d1fabe2fb43f4e0c15c64f standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b standard-performance (1.9.0) sha256=49483d31be448292951d80e5e67cdcb576c2502103c7b40aec6f1b6e9c88e3f2 @@ -567,12 +886,16 @@ CHECKSUMS timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.5) sha256=b852f924287ffb58a440856e862b056c8ad97e74b4b2526cee43e0771f40c25c + toml (0.3.0) + toml-merge (7.1.0) + toml-rb (4.2.0) tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-aarch64-linux) sha256=55ffc7c87868cb45658338363d9eba51b4a8b0259aa88e4de368d2bd1d52fea4 tree_sitter_language_pack (1.13.3-arm64-darwin) sha256=bc2498db605f212a1dbd2465ed3f65190d7da786f6ed5d30fcf958121aeb4a5c tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 + typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 @@ -586,6 +909,7 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 + zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH diff --git a/gems/yaml-merge/Rakefile b/gems/yaml-merge/Rakefile index 337da9a15..1432d5c49 100644 --- a/gems/yaml-merge/Rakefile +++ b/gems/yaml-merge/Rakefile @@ -130,23 +130,23 @@ end ### DUPLICATE DRIFT TASKS begin - require 'kettle/drift' + require "kettle/drift" Kettle::Drift.install_tasks rescue LoadError - desc('(stub) kettle:drift:check is unavailable') - task('kettle:drift:check') do + desc("(stub) kettle:drift:check is unavailable") + task("kettle:drift:check") do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc('(stub) kettle:drift:update is unavailable') - task('kettle:drift:update') do + desc("(stub) kettle:drift:update is unavailable") + task("kettle:drift:update") do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc('(stub) kettle:drift:force_update is unavailable') - task('kettle:drift:force_update') do + desc("(stub) kettle:drift:force_update is unavailable") + task("kettle:drift:force_update") do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc('(stub) kettle:drift is unavailable') - task('kettle:drift' => 'kettle:drift:update') + desc("(stub) kettle:drift is unavailable") + task("kettle:drift" => "kettle:drift:update") end ### TEMPLATING TASKS diff --git a/gems/yaml-merge/gemfiles/modular/templating.gemfile b/gems/yaml-merge/gemfiles/modular/templating.gemfile index a672de184..47138ffbb 100644 --- a/gems/yaml-merge/gemfiles/modular/templating.gemfile +++ b/gems/yaml-merge/gemfiles/modular/templating.gemfile @@ -1,18 +1,18 @@ # frozen_string_literal: true -structuredmerge_remote = ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false').zero? -kettle_remote = ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? +structuredmerge_remote = ENV.fetch("STRUCTUREDMERGE_DEV", "false").casecmp("false").zero? +kettle_remote = ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false").zero? if structuredmerge_remote # Parser dependencies for released installs. - gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' + gem "tree_sitter_language_pack", "~> 1.13", ">= 1.13.3" # Merge recipes for released installs. - gem 'kettle-jem', '>= 7.0' + gem "kettle-jem", ">= 7.0" end if kettle_remote # Template/plugin checks for released installs. - gem 'kettle-drift', '~> 1.0', '>= 1.0.6', require: false + gem "kettle-drift", "~> 1.0", ">= 1.0.6", require: false end # Set STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local development with path-based dependencies. @@ -21,4 +21,4 @@ end # # Set KETTLE_DEV_DEV=/path/to/my for local development with Kettle plugin gems. # When false (default / CI), released Kettle plugin gems are used. -eval_gemfile 'templating_local.gemfile' unless structuredmerge_remote && kettle_remote +eval_gemfile "templating_local.gemfile" unless structuredmerge_remote && kettle_remote diff --git a/gems/yaml-merge/gemfiles/modular/templating_local.gemfile b/gems/yaml-merge/gemfiles/modular/templating_local.gemfile index 0503994a0..88da435ec 100644 --- a/gems/yaml-merge/gemfiles/modular/templating_local.gemfile +++ b/gems/yaml-merge/gemfiles/modular/templating_local.gemfile @@ -12,19 +12,21 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] -nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) +nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] +nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == "nomono" } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + if nomono_locked + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] + end end -Kernel.send(:gem, 'nomono', *nomono_activation_requirements) -require 'nomono/bundler' +Kernel.send(:gem, "nomono", *nomono_activation_requirements) +require "nomono/bundler" structuredmerge_local_gems = %w[ tree_haver @@ -67,25 +69,25 @@ structuredmerge_local_gems_to_eval = structuredmerge_local_gems - %w[yaml-merge] kettle_dev_local_gems_to_eval = kettle_dev_local_gems - %w[yaml-merge] - declared_gems platform :mri do - if ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false') != 0 + if ENV.fetch("STRUCTUREDMERGE_DEV", "false").casecmp("false") != 0 eval_nomono_gems( gems: structuredmerge_local_gems_to_eval, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - vendored_gems_env: 'VENDORED_GEMS', - vendor_gem_dir_env: 'VENDOR_GEM_DIR', - debug_env: 'STRUCTUREDMERGE_DEBUG' + prefix: "STRUCTUREDMERGE", + path_env: "STRUCTUREDMERGE_DEV", + vendored_gems_env: "VENDORED_GEMS", + vendor_gem_dir_env: "VENDOR_GEM_DIR", + debug_env: "STRUCTUREDMERGE_DEBUG" ) end - if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false') != 0 + if ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false") != 0 eval_nomono_gems( gems: kettle_dev_local_gems_to_eval, - prefix: 'KETTLE_DEV', - path_env: 'KETTLE_DEV_DEV', - vendored_gems_env: 'VENDORED_GEMS', - vendor_gem_dir_env: 'VENDOR_GEM_DIR', - debug_env: 'KETTLE_DEV_DEBUG' + prefix: "KETTLE_DEV", + path_env: "KETTLE_DEV_DEV", + vendored_gems_env: "VENDORED_GEMS", + vendor_gem_dir_env: "VENDOR_GEM_DIR", + debug_env: "KETTLE_DEV_DEBUG" ) end end diff --git a/gems/yaml-merge/lib/yaml/merge/version.rb b/gems/yaml-merge/lib/yaml/merge/version.rb index 418cfb7b8..e1303b9fe 100644 --- a/gems/yaml-merge/lib/yaml/merge/version.rb +++ b/gems/yaml-merge/lib/yaml/merge/version.rb @@ -3,7 +3,7 @@ module Yaml module Merge module Version - VERSION = '7.1.0' + VERSION = "7.1.0" end VERSION = Version::VERSION # Traditional Constant Location end From ed26f5fd6c95636d3a6397a5fee940180159049c Mon Sep 17 00:00:00 2001 From: "Peter H. Boling" Date: Tue, 21 Jul 2026 18:03:37 -0600 Subject: [PATCH 160/188] =?UTF-8?q?=F0=9F=8E=A8=20Template=20bootstrap=20b?= =?UTF-8?q?y=20kettle-jem=20v7.1.0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gems/dotenv-merge/Gemfile.lock | 326 +++++++++++++- gems/html-merge/Gemfile.lock | 396 +---------------- gems/html-merge/spec/spec_helper.rb | 22 + gems/rbs-merge/.rubocop_gradual.lock | 413 ------------------ gems/rbs-merge/.simplecov | 2 +- gems/rbs-merge/Gemfile | 70 ++- gems/rbs-merge/Gemfile.lock | 343 +-------------- gems/rbs-merge/Rakefile | 18 +- .../modular/benchmark/r4/v0.5.gemfile | 2 +- .../gemfiles/modular/benchmark/vHEAD.gemfile | 2 +- .../gemfiles/modular/cgi/r4/v0.5.gemfile | 2 +- .../gemfiles/modular/cgi/vHEAD.gemfile | 2 +- .../gemfiles/modular/coverage.gemfile | 6 +- .../gemfiles/modular/coverage_local.gemfile | 42 +- gems/rbs-merge/gemfiles/modular/debug.gemfile | 4 +- .../gemfiles/modular/documentation.gemfile | 24 +- .../modular/documentation_local.gemfile | 30 +- .../gemfiles/modular/erb/r2/v3.0.gemfile | 2 +- .../gemfiles/modular/erb/r3/v5.0.gemfile | 2 +- .../gemfiles/modular/erb/r4/v5.0.gemfile | 2 +- .../gemfiles/modular/erb/vHEAD.gemfile | 2 +- .../modular/json/truffleruby_22_3.gemfile | 4 +- .../modular/json/truffleruby_23_0.gemfile | 4 +- .../modular/json/truffleruby_23_1.gemfile | 4 +- .../gemfiles/modular/mutex_m/r2/v0.3.gemfile | 2 +- .../gemfiles/modular/mutex_m/r3/v0.3.gemfile | 2 +- .../gemfiles/modular/mutex_m/r4/v0.3.gemfile | 2 +- .../gemfiles/modular/mutex_m/vHEAD.gemfile | 2 +- .../gemfiles/modular/optional.gemfile | 2 +- gems/rbs-merge/gemfiles/modular/rspec.gemfile | 8 +- .../gemfiles/modular/runtime_heads.gemfile | 2 +- .../gemfiles/modular/stringio/r2/v3.0.gemfile | 2 +- .../gemfiles/modular/stringio/r3/v3.0.gemfile | 2 +- .../gemfiles/modular/stringio/r4/v3.0.gemfile | 2 +- .../gemfiles/modular/stringio/vHEAD.gemfile | 2 +- gems/rbs-merge/gemfiles/modular/style.gemfile | 24 +- .../gemfiles/modular/style_local.gemfile | 32 +- .../gemfiles/modular/templating.gemfile | 12 +- .../gemfiles/modular/templating_local.gemfile | 44 +- .../gemfiles/modular/webrick/r4/v1.9.gemfile | 2 +- .../gemfiles/modular/webrick/vHEAD.gemfile | 2 +- .../gemfiles/modular/x_std_libs.gemfile | 14 +- .../modular/x_std_libs/r2/libs.gemfile | 6 +- .../modular/x_std_libs/r3/libs.gemfile | 6 +- .../modular/x_std_libs/r4/libs.gemfile | 12 +- .../gemfiles/modular/x_std_libs/vHEAD.gemfile | 12 +- gems/rbs-merge/lib/rbs/merge/version.rb | 2 +- gems/toml-merge/Gemfile.lock | 352 ++++++++++++++- gems/yaml-merge/.simplecov | 8 +- .../modular/benchmark/r4/v0.5.gemfile | 2 +- .../gemfiles/modular/benchmark/vHEAD.gemfile | 2 +- .../gemfiles/modular/cgi/r4/v0.5.gemfile | 2 +- .../gemfiles/modular/cgi/vHEAD.gemfile | 2 +- .../gemfiles/modular/coverage.gemfile | 6 +- .../gemfiles/modular/coverage_local.gemfile | 42 +- .../yaml-merge/gemfiles/modular/debug.gemfile | 4 +- .../gemfiles/modular/documentation.gemfile | 24 +- .../modular/documentation_local.gemfile | 30 +- .../gemfiles/modular/erb/r2/v3.0.gemfile | 2 +- .../gemfiles/modular/erb/r3/v5.0.gemfile | 2 +- .../gemfiles/modular/erb/r4/v5.0.gemfile | 2 +- .../gemfiles/modular/erb/vHEAD.gemfile | 2 +- .../modular/json/truffleruby_22_3.gemfile | 4 +- .../modular/json/truffleruby_23_0.gemfile | 4 +- .../modular/json/truffleruby_23_1.gemfile | 4 +- .../gemfiles/modular/mutex_m/r2/v0.3.gemfile | 2 +- .../gemfiles/modular/mutex_m/r3/v0.3.gemfile | 2 +- .../gemfiles/modular/mutex_m/r4/v0.3.gemfile | 2 +- .../gemfiles/modular/mutex_m/vHEAD.gemfile | 2 +- .../gemfiles/modular/optional.gemfile | 4 +- .../yaml-merge/gemfiles/modular/rspec.gemfile | 8 +- .../gemfiles/modular/runtime_heads.gemfile | 2 +- .../gemfiles/modular/stringio/r2/v3.0.gemfile | 2 +- .../gemfiles/modular/stringio/r3/v3.0.gemfile | 2 +- .../gemfiles/modular/stringio/r4/v3.0.gemfile | 2 +- .../gemfiles/modular/stringio/vHEAD.gemfile | 2 +- .../yaml-merge/gemfiles/modular/style.gemfile | 24 +- .../gemfiles/modular/style_local.gemfile | 32 +- .../gemfiles/modular/webrick/r4/v1.9.gemfile | 2 +- .../gemfiles/modular/webrick/vHEAD.gemfile | 2 +- .../gemfiles/modular/x_std_libs.gemfile | 14 +- .../modular/x_std_libs/r2/libs.gemfile | 6 +- .../modular/x_std_libs/r3/libs.gemfile | 6 +- .../modular/x_std_libs/r4/libs.gemfile | 12 +- .../gemfiles/modular/x_std_libs/vHEAD.gemfile | 12 +- gems/yaml-merge/spec/spec_helper.rb | 13 +- 86 files changed, 1054 insertions(+), 1513 deletions(-) delete mode 100644 gems/rbs-merge/.rubocop_gradual.lock diff --git a/gems/dotenv-merge/Gemfile.lock b/gems/dotenv-merge/Gemfile.lock index 59965fe82..6a6e4b590 100644 --- a/gems/dotenv-merge/Gemfile.lock +++ b/gems/dotenv-merge/Gemfile.lock @@ -7,7 +7,39 @@ PATH version_gem (~> 1.1, >= 1.1.14) PATH - remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/ast-merge + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly + specs: + ast-crispr-markdown-markly (7.1.0) + ast-crispr (= 7.1.0) + markly-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism + specs: + ast-crispr-ruby-prism (7.1.0) + ast-crispr (= 7.1.0) + prism-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr + specs: + ast-crispr (7.1.0) + ast-merge (= 7.1.0) + service_actor (~> 3.9) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git + specs: + ast-merge-git (7.1.0) + ast-merge (= 7.1.0) + json-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge specs: ast-merge (7.1.0) benchmark @@ -16,7 +48,194 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/tree_haver + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template + specs: + ast-template (7.1.0) + ast-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge + specs: + bash-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge + specs: + binary-merge (7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge + specs: + citrus-toml-merge (7.1.0) + toml-merge (= 7.1.0) + toml-rb (~> 4.1) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge + specs: + commonmarker-merge (7.1.0) + commonmarker (~> 2.2) + markdown-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge + specs: + go-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge + specs: + json-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem + specs: + kettle-jem (7.1.0) + addressable (>= 2.8, < 3) + ast-crispr-markdown-markly (= 7.1.0) + ast-crispr-ruby-prism (= 7.1.0) + ast-merge (= 7.1.0) + bash-merge (= 7.1.0) + citrus-toml-merge (= 7.1.0) + commonmarker-merge (= 7.1.0) + dotenv-merge (= 7.1.0) + json-merge (= 7.1.0) + kettle-dev (~> 2.3, >= 2.3.5) + kettle-rb (~> 0.1, >= 0.1.4) + kramdown-merge (= 7.1.0) + markdown-merge (= 7.1.0) + markly-merge (= 7.1.0) + prism-merge (= 7.1.0) + psych-merge (= 7.1.0) + rbs (>= 3.10) + rbs-merge (= 7.1.0) + ruby-merge (= 7.1.0) + token-resolver (~> 2.0, >= 2.0.4) + toml-merge (= 7.1.0) + toml-rb (~> 4.2) + tree_haver (= 7.1.0) + yaml-merge (= 7.1.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge + specs: + kramdown-merge (7.1.0) + kramdown (~> 2.5) + markdown-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge + specs: + markdown-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge + specs: + markly-merge (7.1.0) + markdown-merge (= 7.1.0) + markly (~> 0.9) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge + specs: + parslet-toml-merge (7.1.0) + toml (~> 0.3) + toml-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge + specs: + plain-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge + specs: + prism-merge (7.1.0) + prism (~> 1.6) + ruby-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge + specs: + psych-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + yaml-merge (= 7.1.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge + specs: + rbs-merge (7.1.0) + ast-merge (= 7.1.0) + rbs (>= 3.10) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge + specs: + ruby-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge + specs: + rust-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb + specs: + smorg-rb (7.1.0) + ast-merge (= 7.1.0) + ast-merge-git (= 7.1.0) + diff-lcs (~> 1.5) + go-merge (= 7.1.0) + json-merge (= 7.1.0) + kettle-jem (= 7.1.0) + markly-merge (= 7.1.0) + plain-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge + specs: + toml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver specs: tree_haver (7.1.0) citrus (~> 3.0) @@ -24,6 +243,29 @@ PATH tree_sitter_language_pack (>= 1.13.2, < 2.0) version_gem (~> 1.1, >= 1.1.9) +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge + specs: + typescript-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge + specs: + yaml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge + specs: + zip-merge (7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + GEM remote: https://gem.coop/ specs: @@ -48,6 +290,11 @@ GEM cgi (0.5.2) citrus (3.0.2) cmdparse (3.0.7) + commonmarker (2.9.0-aarch64-linux) + commonmarker (2.9.0-aarch64-linux-musl) + commonmarker (2.9.0-arm64-darwin) + commonmarker (2.9.0-x86_64-linux) + commonmarker (2.9.0-x86_64-linux-musl) concurrent-ruby (1.3.8) date (3.5.1) debug (1.11.1) @@ -110,6 +357,8 @@ GEM kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) + kettle-drift (1.0.6) + version_gem (~> 1.1, >= 1.1.14) kettle-rb (0.1.5) kettle-soup-cover (3.0.4) kettle-wash (~> 0.1, >= 0.1.0) @@ -138,6 +387,7 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) + markly (0.16.0) mutex_m (0.3.0) nokogiri (1.19.4-aarch64-linux-gnu) racc (~> 1.4) @@ -300,6 +550,8 @@ GEM ruby-progressbar (1.13.0) ruby_engine (2.0.3) ruby_version (1.0.3) + service_actor (3.9.4) + zeitwerk (>= 1.0) silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) @@ -354,6 +606,11 @@ GEM token-resolver (2.0.5) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.14) + toml (0.3.0) + parslet (>= 1.8.0, < 3.0.0) + toml-rb (4.2.0) + citrus (~> 3.0, > 3.0) + racc (~> 1.7) tree_sitter_language_pack (1.13.3-aarch64-linux) sorbet-runtime (~> 0.5) tree_sitter_language_pack (1.13.3-arm64-darwin) @@ -408,25 +665,46 @@ DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.2, >= 3.2.0) appraisal2-rubocop (~> 1.0, >= 1.0.0) + ast-crispr! + ast-crispr-markdown-markly! + ast-crispr-ruby-prism! ast-merge! + ast-merge-git! + ast-template! + bash-merge! benchmark (~> 0.5, >= 0.5.0) + binary-merge! bundler-audit (~> 0.9.3) cgi (~> 0.5) + citrus-toml-merge! + commonmarker-merge! debug (>= 1.1) dotenv-merge! erb (~> 6.0, >= 6.0.6) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.4) + go-merge! irb (~> 1.17) + json-merge! kettle-dev (~> 2.3, >= 2.3.7) + kettle-drift (~> 1.0, >= 1.0.6) + kettle-jem! kettle-soup-cover (~> 3.0, >= 3.0.3) kettle-test (~> 2.0, >= 2.0.12) kramdown (~> 2.5, >= 2.5.2) + kramdown-merge! kramdown-parser-gfm (~> 1.1) + markdown-merge! + markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) + parslet-toml-merge! + plain-merge! + prism-merge! + psych-merge! rake (~> 13.0) rbs (>= 3.0) + rbs-merge! rdoc (~> 6.11) reek (~> 6.5, >= 6.5.0) require_bench (~> 1.0, >= 1.0.4) @@ -437,21 +715,28 @@ DEPENDENCIES rubocop-on-rbs (~> 2.0, >= 2.0.0) rubocop-packaging (~> 0.6, >= 0.6.0) rubocop-ruby3_2 (~> 3.0, >= 3.0.6) + ruby-merge! ruby-progressbar (~> 1.13) + rust-merge! + smorg-rb! standard (~> 1.56, >= 1.56.0) stone_checksums (~> 1.0, >= 1.0.6) stringio (>= 3.0) + toml-merge! tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) turbo_tests2 (~> 3.2, >= 3.2.0) + typescript-merge! webrick (~> 1.9) yaml-converter (~> 0.2, >= 0.2.3) + yaml-merge! yard (~> 0.9, >= 0.9.45) yard-fence (~> 0.9, >= 0.9.6) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) yard-timekeeper (~> 0.2, >= 0.2.4) yard-yaml (~> 0.2, >= 0.2.3) + zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af @@ -459,14 +744,28 @@ CHECKSUMS appraisal2 (3.2.0) sha256=ccd0b767ac4060cd7af6d16747459b6990f49c39c7b4fb1f7d1146b1e97c492f appraisal2-rubocop (1.0.0) sha256=b71410fbb014befda5340605a605b7f6f3f012739baf0acc5b4351b592c3258d ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 + ast-crispr (7.1.0) + ast-crispr-markdown-markly (7.1.0) + ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) + ast-merge-git (7.1.0) + ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 + bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd + binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 + citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 + commonmarker (2.9.0-aarch64-linux) sha256=e2b4aadb9a2cfa4e206582641ce3a49465549ac1ed4c289fdd63b78d8f24579c + commonmarker (2.9.0-aarch64-linux-musl) sha256=1cf4d2821f2a7e64945f1ed7c4eeced586fdb27ea7fe7337788802cf8f57cfca + commonmarker (2.9.0-arm64-darwin) sha256=1748dbfa4f5813b0d2a14bb4bbfa65a4ec293aa1c825016d60029ee0e132b046 + commonmarker (2.9.0-x86_64-linux) sha256=8cfe92970eef585a19ddf6613224b91cab64d6029834661bda801f877c9c7f43 + commonmarker (2.9.0-x86_64-linux-musl) sha256=293921398b839f79ceaf55010e061357e34f053822c3b003cd0be6686176335e + commonmarker-merge (7.1.0) concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 @@ -486,20 +785,28 @@ CHECKSUMS gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f + go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 + json-merge (7.1.0) kettle-dev (2.3.9) + kettle-drift (1.0.6) sha256=46eda08fa4411d1f3c6682a95eef1c9df4e94611b3949f49d4c7b43c0ed356a3 + kettle-jem (7.1.0) kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f kettle-soup-cover (3.0.4) kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa + kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 + markdown-merge (7.1.0) + markly (0.16.0) sha256=6f70d79e385b1efc9e171f74c81628826259039fe6c778e03c3924c71dac5511 + markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-aarch64-linux-gnu) sha256=1269fb644a6de405057a53dd5c762b1209b43ca7424f839454d3dbc677c31a8f nokogiri (1.19.4-aarch64-linux-musl) sha256=35c65b9ce72b3bb03207bdbe7067915019dc18c1b9b59139684bd6690fdd01af @@ -513,15 +820,20 @@ CHECKSUMS parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 + parslet-toml-merge (7.1.0) + plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 + prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 + psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 + rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb @@ -556,15 +868,19 @@ CHECKSUMS rubocop-rspec_rails (2.32.0) sha256=4a0d641c72f6ebb957534f539d9d0a62c47abd8ce0d0aeee1ef4701e892a9100 rubocop-ruby3_2 (3.0.7) sha256=f53dd6d286fb05186214fc6ec116783e7f837030918e8931c05de773e98f8466 rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 + ruby-merge (7.1.0) ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 + rust-merge (7.1.0) + service_actor (3.9.4) sha256=e63b523630b9a7e62959b2a90113b08d2565b5de9c148557b281ef847c9539ce silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed + smorg-rb (7.1.0) sorbet-runtime (0.6.13351) sha256=f8fee17c6e3edf835dc6823d26afb9a7c8969c6710d1fabe2fb43f4e0c15c64f standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b @@ -579,17 +895,22 @@ CHECKSUMS timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.5) sha256=b852f924287ffb58a440856e862b056c8ad97e74b4b2526cee43e0771f40c25c + toml (0.3.0) sha256=0a91d0f76a9036e84e44f95693b12f58d358c1df3ac8e3b5271f2056ecc6e4b9 + toml-merge (7.1.0) + toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-aarch64-linux) sha256=55ffc7c87868cb45658338363d9eba51b4a8b0259aa88e4de368d2bd1d52fea4 tree_sitter_language_pack (1.13.3-arm64-darwin) sha256=bc2498db605f212a1dbd2465ed3f65190d7da786f6ed5d30fcf958121aeb4a5c tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 + typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 webrick (1.9.2) sha256=beb4a15fc474defed24a3bda4ffd88a490d517c9e4e6118c3edce59e45864131 yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 + yaml-merge (7.1.0) yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd @@ -597,6 +918,7 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 + zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH diff --git a/gems/html-merge/Gemfile.lock b/gems/html-merge/Gemfile.lock index 88763af9c..b8da9b5f2 100644 --- a/gems/html-merge/Gemfile.lock +++ b/gems/html-merge/Gemfile.lock @@ -8,23 +8,7 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly - specs: - ast-crispr-markdown-markly (7.1.0) - ast-crispr (= 7.1.0) - markly-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism - specs: - ast-crispr-ruby-prism (7.1.0) - ast-crispr (= 7.1.0) - prism-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr specs: ast-crispr (7.1.0) ast-merge (= 7.1.0) @@ -32,15 +16,7 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git - specs: - ast-merge-git (7.1.0) - ast-merge (= 7.1.0) - json-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/ast-merge specs: ast-merge (7.1.0) benchmark @@ -49,202 +25,7 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template - specs: - ast-template (7.1.0) - ast-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge - specs: - bash-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge - specs: - binary-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge - specs: - citrus-toml-merge (7.1.0) - toml-merge (= 7.1.0) - toml-rb (~> 4.1) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge - specs: - commonmarker-merge (7.1.0) - commonmarker (~> 2.2) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge - specs: - dotenv-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge - specs: - go-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge - specs: - json-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem - specs: - kettle-jem (7.1.0) - addressable (>= 2.8, < 3) - ast-crispr-markdown-markly (= 7.1.0) - ast-crispr-ruby-prism (= 7.1.0) - ast-merge (= 7.1.0) - bash-merge (= 7.1.0) - citrus-toml-merge (= 7.1.0) - commonmarker-merge (= 7.1.0) - dotenv-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-dev (~> 2.3, >= 2.3.5) - kettle-rb (~> 0.1, >= 0.1.4) - kramdown-merge (= 7.1.0) - markdown-merge (= 7.1.0) - markly-merge (= 7.1.0) - prism-merge (= 7.1.0) - psych-merge (= 7.1.0) - rbs (>= 3.10) - rbs-merge (= 7.1.0) - ruby-merge (= 7.1.0) - token-resolver (~> 2.0, >= 2.0.4) - toml-merge (= 7.1.0) - toml-rb (~> 4.2) - tree_haver (= 7.1.0) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge - specs: - kramdown-merge (7.1.0) - kramdown (~> 2.5) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge - specs: - markdown-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge - specs: - markly-merge (7.1.0) - markdown-merge (= 7.1.0) - markly (~> 0.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge - specs: - parslet-toml-merge (7.1.0) - toml (~> 0.3) - toml-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge - specs: - plain-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge - specs: - prism-merge (7.1.0) - prism (~> 1.6) - ruby-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge - specs: - psych-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge - specs: - rbs-merge (7.1.0) - ast-merge (= 7.1.0) - rbs (>= 3.10) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge - specs: - ruby-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge - specs: - rust-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb - specs: - smorg-rb (7.1.0) - ast-merge (= 7.1.0) - ast-merge-git (= 7.1.0) - diff-lcs (~> 1.5) - go-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-jem (= 7.1.0) - markly-merge (= 7.1.0) - plain-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge - specs: - toml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/tree_haver specs: tree_haver (7.1.0) citrus (~> 3.0) @@ -252,29 +33,6 @@ PATH tree_sitter_language_pack (>= 1.13.2, < 2.0) version_gem (~> 1.1, >= 1.1.9) -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge - specs: - typescript-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge - specs: - yaml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge - specs: - zip-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - GEM remote: https://gem.coop/ specs: @@ -290,19 +48,16 @@ GEM rubocop (>= 1.0) version_gem (~> 1.1, >= 1.1.14) ast (2.4.3) - backports (3.25.3) benchmark (0.5.0) bigdecimal (4.1.2) cgi (0.5.2) citrus (3.0.2) cmdparse (3.0.7) - commonmarker (2.9.0-x86_64-linux) concurrent-ruby (1.3.8) date (3.5.1) debug (1.11.1) irb (~> 1.10) reline (>= 0.3.8) - delegate (0.6.1) diff-lcs (1.6.2) diffy (3.4.4) dry-configurable (1.4.0) @@ -334,7 +89,6 @@ GEM dry-inflector (~> 1.0) dry-logic (~> 1.4) zeitwerk (~> 2.6) - emoji_regex (15.0.0) erb (6.0.6) gem_bench (2.0.5) bundler (>= 1.14) @@ -352,14 +106,6 @@ GEM rdoc (>= 4.0.0) reline (>= 0.4.2) json (2.21.1) - kettle-dev (2.3.9) - emoji_regex (>= 15.0) - kettle-rb (~> 0.1, >= 0.1.2) - kettle-test (~> 2.0, >= 2.0.4) - ruby-progressbar (~> 1.13) - kettle-drift (1.0.6) - version_gem (~> 1.1, >= 1.1.14) - kettle-rb (0.1.5) kettle-soup-cover (3.0.4) kettle-wash (~> 0.1, >= 0.1.0) simplecov (>= 1.0) @@ -367,17 +113,6 @@ GEM simplecov-console (~> 0.9, >= 0.9.5) simplecov-rcov (~> 0.3, >= 0.3.7) simplecov_lcov_formatter (~> 0.9, >= 0.9.0) - kettle-test (2.0.12) - appraisal2 (~> 3.0, >= 3.0.6) - backports (~> 3.0) - rspec (~> 3.0) - rspec-block_is_expected (~> 1.0, >= 1.0.6) - rspec-pending_for (~> 0.1, >= 0.1.20) - rspec-stubbed_env (~> 1.0, >= 1.0.6) - rspec_junit_formatter (~> 0.6) - silent_stream (~> 1.0, >= 1.0.12) - timecop-rspec (~> 1.0, >= 1.0.3) - turbo_tests2 (~> 3.1, >= 3.1.12) kettle-wash (0.1.1) version_gem (~> 1.1, >= 1.1.14) kramdown (2.5.2) @@ -387,7 +122,6 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) - markly (0.16.0) mutex_m (0.3.0) nokogiri (1.19.4-x86_64-linux-gnu) racc (~> 1.4) @@ -395,8 +129,6 @@ GEM openssl (4.0.2) ostruct (0.6.3) parallel (1.28.0) - parallel_tests (5.7.0) - parallel parser (3.3.12.0) ast (~> 2.4.1) racc @@ -430,27 +162,6 @@ GEM reline (0.6.3) io-console (~> 0.5) rexml (3.4.4) - rspec (3.13.2) - rspec-core (~> 3.13.0) - rspec-expectations (~> 3.13.0) - rspec-mocks (~> 3.13.0) - rspec-block_is_expected (1.0.6) - rspec-core (3.13.6) - rspec-support (~> 3.13.0) - rspec-expectations (3.13.5) - diff-lcs (>= 1.2.0, < 2.0) - rspec-support (~> 3.13.0) - rspec-mocks (3.13.8) - diff-lcs (>= 1.2.0, < 2.0) - rspec-support (~> 3.13.0) - rspec-pending_for (0.1.21) - rspec-core (~> 3.0) - ruby_engine (~> 2.0) - ruby_version (~> 1.0) - rspec-stubbed_env (1.0.6) - rspec-support (3.13.7) - rspec_junit_formatter (0.6.0) - rspec-core (>= 2, < 4, != 2.12.0) rubocop (1.88.2) json (~> 2.3) language_server-protocol (~> 3.17.0.2) @@ -538,13 +249,8 @@ GEM rubocop (~> 1.72, >= 1.72.1) rubocop-ast (>= 1.44.0, < 2.0) ruby-progressbar (1.13.0) - ruby_engine (2.0.3) - ruby_version (1.0.3) service_actor (3.9.4) zeitwerk (>= 1.0) - silent_stream (1.0.12) - logger (~> 1.2) - version_gem (>= 1.1.8, < 3) simplecov (1.0.2) simplecov-cobertura (4.0.0) rexml @@ -586,26 +292,12 @@ GEM terminal-table (4.0.0) unicode-display_width (>= 1.1.1, < 4) thor (1.5.0) - timecop (0.9.11) - timecop-rspec (1.0.3) - delegate (~> 0.1) - rspec (~> 3.0) - timecop (>= 0.7, < 1) token-resolver (2.0.5) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.14) - toml (0.3.0) - parslet (>= 1.8.0, < 3.0.0) - toml-rb (4.2.0) - citrus (~> 3.0, > 3.0) - racc (~> 1.7) tree_sitter_language_pack (1.13.3-x86_64-linux) sorbet-runtime (~> 0.5) tsort (0.2.0) - turbo_tests2 (3.2.0) - parallel_tests (>= 3.3.0, < 6) - rspec (>= 3.10) - version_gem (~> 1.1, >= 1.1.14) unicode-display_width (3.2.0) unicode-emoji (~> 4.1) unicode-emoji (4.2.0) @@ -643,41 +335,20 @@ DEPENDENCIES addressable (>= 2.8, < 3) appraisal2-rubocop (~> 1.0, >= 1.0.0) ast-crispr! - ast-crispr-markdown-markly! - ast-crispr-ruby-prism! ast-merge! - ast-merge-git! - ast-template! - bash-merge! benchmark (~> 0.5, >= 0.5.0) - binary-merge! cgi (~> 0.5) - citrus-toml-merge! - commonmarker-merge! debug (>= 1.1) - dotenv-merge! erb (~> 6.0, >= 6.0.6) gem_bench (~> 2.0, >= 2.0.5) - go-merge! html-merge! irb (~> 1.17) - json-merge! - kettle-drift (~> 1.0, >= 1.0.6) - kettle-jem! kettle-soup-cover (~> 3.0, >= 3.0.3) kramdown (~> 2.5, >= 2.5.2) - kramdown-merge! kramdown-parser-gfm (~> 1.1) - markdown-merge! - markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) - parslet-toml-merge! - plain-merge! - prism-merge! - psych-merge! rbs (>= 3.0) - rbs-merge! rdoc (~> 6.11) reek (~> 6.5, >= 6.5.0) rubocop-gradual (~> 0.4, >= 0.4.0) @@ -687,25 +358,18 @@ DEPENDENCIES rubocop-on-rbs (~> 2.0, >= 2.0.0) rubocop-packaging (~> 0.6, >= 0.6.0) rubocop-ruby3_2 (~> 3.0, >= 3.0.6) - ruby-merge! - rust-merge! - smorg-rb! standard (~> 1.56, >= 1.56.0) stringio (>= 3.0) - toml-merge! tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) - typescript-merge! webrick (~> 1.9) yaml-converter (~> 0.2, >= 0.2.3) - yaml-merge! yard (~> 0.9, >= 0.9.45) yard-fence (~> 0.9, >= 0.9.6) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) yard-timekeeper (~> 0.2, >= 0.2.4) yard-yaml (~> 0.2, >= 0.2.3) - zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af @@ -714,29 +378,17 @@ CHECKSUMS appraisal2-rubocop (1.0.0) sha256=b71410fbb014befda5340605a605b7f6f3f012739baf0acc5b4351b592c3258d ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 ast-crispr (7.1.0) - ast-crispr-markdown-markly (7.1.0) - ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) - ast-merge-git (7.1.0) - ast-template (7.1.0) - backports (3.25.3) - bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd - binary-merge (7.1.0) cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 - citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 - commonmarker (2.9.0-x86_64-linux) - commonmarker-merge (7.1.0) concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 - delegate (0.6.1) diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 - dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -744,70 +396,43 @@ CHECKSUMS dry-logic (1.6.0) sha256=da6fedbc0f90fc41f9b0cc7e6f05f5d529d1efaef6c8dcc8e0733f685745cea2 dry-schema (1.16.0) sha256=cd3aaeabc0f1af66ec82a29096d4c4fb92a0a58b9dae29a22b1bbceb78985727 dry-types (1.9.1) sha256=baebeecdb9f8395d6c9d227b62011279440943e3ef2468fe8ccc1ba11467f178 - emoji_regex (15.0.0) erb (6.0.6) sha256=a9b24986700f5bf127c4f297c5403c3ca41b83b0a316c0cd09a096b56e644ae5 gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 - go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 html-merge (7.1.0) io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 - json-merge (7.1.0) - kettle-dev (2.3.9) - kettle-drift (1.0.6) - kettle-jem (7.1.0) - kettle-rb (0.1.5) kettle-soup-cover (3.0.4) - kettle-test (2.0.12) kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa - kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 - markdown-merge (7.1.0) - markly (0.16.0) - markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-x86_64-linux-gnu) sha256=379fae440b28915e3f19d752ce2dcf8465ed2b2fbefd2a7ca0dd497bc981a06a nomono (1.0.9) openssl (4.0.2) sha256=1037ad2868ae58df9ad917891c0c0f9815a1172f6846d4bcdd508e4c2ee747c2 ostruct (0.6.3) sha256=95a2ed4a4bd1d190784e666b47b2d3f078e4a9efda2fccf18f84ddc6538ed912 parallel (1.28.0) sha256=33e6de1484baf2524792d178b0913fc8eb94c628d6cfe45599ad4458c638c970 - parallel_tests (5.7.0) parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 - parslet-toml-merge (7.1.0) - plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 - prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 - psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 - rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb reline (0.6.3) sha256=1198b04973565b36ec0f11542ab3f5cfeeec34823f4e54cebde90968092b1835 rexml (3.4.4) sha256=19e0a2c3425dfbf2d4fc1189747bdb2f849b6c5e74180401b15734bc97b5d142 - rspec (3.13.2) - rspec-block_is_expected (1.0.6) - rspec-core (3.13.6) - rspec-expectations (3.13.5) - rspec-mocks (3.13.8) - rspec-pending_for (0.1.21) - rspec-stubbed_env (1.0.6) - rspec-support (3.13.7) - rspec_junit_formatter (0.6.0) rubocop (1.88.2) sha256=8def251c90cd955feb4daa3edc0ab56893250c4ce90ef81e6c80c03f9a939bbf rubocop-ast (1.50.0) sha256=b9ca88300da0803ee222ad20cdb30494c0a784eed06fdc35d254b06d662788db rubocop-capybara (2.23.0) sha256=f9ea1ba3a7561ee8e88cf76fc378ce517ce5327155f305ee7b5c2500e5aee357 @@ -827,19 +452,13 @@ CHECKSUMS rubocop-rspec_rails (2.32.0) sha256=4a0d641c72f6ebb957534f539d9d0a62c47abd8ce0d0aeee1ef4701e892a9100 rubocop-ruby3_2 (3.0.7) sha256=f53dd6d286fb05186214fc6ec116783e7f837030918e8931c05de773e98f8466 rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 - ruby-merge (7.1.0) ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 - ruby_engine (2.0.3) - ruby_version (1.0.3) - rust-merge (7.1.0) service_actor (3.9.4) sha256=e63b523630b9a7e62959b2a90113b08d2565b5de9c148557b281ef847c9539ce - silent_stream (1.0.12) simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed - smorg-rb (7.1.0) sorbet-runtime (0.6.13351) sha256=f8fee17c6e3edf835dc6823d26afb9a7c8969c6710d1fabe2fb43f4e0c15c64f standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b @@ -850,23 +469,15 @@ CHECKSUMS strscan (3.1.8) sha256=aae2db611a225559f21ffbb71765c9a4e60fd262534a9ea84f4f11c7f32f679e terminal-table (4.0.0) sha256=f504793203f8251b2ea7c7068333053f0beeea26093ec9962e62ea79f94301d2 thor (1.5.0) sha256=e3a9e55fe857e44859ce104a84675ab6e8cd59c650a49106a05f55f136425e73 - timecop (0.9.11) - timecop-rspec (1.0.3) token-resolver (2.0.5) sha256=b852f924287ffb58a440856e862b056c8ad97e74b4b2526cee43e0771f40c25c - toml (0.3.0) - toml-merge (7.1.0) - toml-rb (4.2.0) tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f - turbo_tests2 (3.2.0) - typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 webrick (1.9.2) sha256=beb4a15fc474defed24a3bda4ffd88a490d517c9e4e6118c3edce59e45864131 yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 - yaml-merge (7.1.0) yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd @@ -874,7 +485,6 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 - zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH diff --git a/gems/html-merge/spec/spec_helper.rb b/gems/html-merge/spec/spec_helper.rb index fa351d9eb..92447f09b 100644 --- a/gems/html-merge/spec/spec_helper.rb +++ b/gems/html-merge/spec/spec_helper.rb @@ -1,5 +1,27 @@ # frozen_string_literal: true +# Config for development dependencies of this library +# i.e., not configured by this library +# +# SimpleCov & related config (must run BEFORE any other requires) +# NOTE: Gemfiles for non-coverage appraisals may not have kettle-soup-cover. +# The rescue LoadError handles that scenario. +begin + require "kettle-soup-cover" + if Kettle::Soup::Cover::DO_COV + # Requiring simplecov loads the project-local `.simplecov`. + require "simplecov" + require "kettle/soup/cover/config" + SimpleCov.start + end +rescue LoadError => error + # check the error message and re-raise when unexpected + raise error unless error.message.include?("kettle") +end + +# External RSpec & related config +require "kettle/test/rspec" + require "html/merge" RSpec.configure do |config| diff --git a/gems/rbs-merge/.rubocop_gradual.lock b/gems/rbs-merge/.rubocop_gradual.lock deleted file mode 100644 index e1f0ad91c..000000000 --- a/gems/rbs-merge/.rubocop_gradual.lock +++ /dev/null @@ -1,413 +0,0 @@ -{ - ".simplecov:2483172942": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "Rakefile:3295679373": [ - [18, 121, 17, "Layout/LineLength: Line is too long. [137/120]", 174264873], - [79, 3, 1023, "Metrics/BlockLength: Block has too many lines. [32/25]", 54868638], - [163, 121, 22, "Layout/LineLength: Line is too long. [142/120]", 1367093088], - [166, 121, 18, "Layout/LineLength: Line is too long. [138/120]", 3881946477] - ], - "gemfiles/modular/benchmark/r4/v0.5.gemfile:3644720371": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/benchmark/vHEAD.gemfile:2838879269": [ - [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/cgi/r4/v0.5.gemfile:367169322": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] - ], - "gemfiles/modular/cgi/vHEAD.gemfile:2729540777": [ - [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] - ], - "gemfiles/modular/erb/r2/v3.0.gemfile:1688285565": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] - ], - "gemfiles/modular/erb/r3/v5.0.gemfile:2394062339": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] - ], - "gemfiles/modular/erb/r4/v5.0.gemfile:2394062339": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] - ], - "gemfiles/modular/erb/vHEAD.gemfile:981929959": [ - [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/mutex_m/r2/v0.3.gemfile:4055275004": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/mutex_m/r3/v0.3.gemfile:4055275004": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/mutex_m/r4/v0.3.gemfile:4055275004": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/mutex_m/vHEAD.gemfile:556854763": [ - [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/rspec.gemfile:2263543889": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] - ], - "gemfiles/modular/stringio/r2/v3.0.gemfile:821604304": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/stringio/r3/v3.0.gemfile:821604304": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/stringio/r4/v3.0.gemfile:821604304": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/stringio/vHEAD.gemfile:1045839691": [ - [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/webrick/r4/v1.9.gemfile:3092661193": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] - ], - "gemfiles/modular/webrick/vHEAD.gemfile:3867684682": [ - [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] - ], - "gemfiles/modular/x_std_libs.gemfile:2324400122": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/x_std_libs/r2/libs.gemfile:36276542": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] - ], - "gemfiles/modular/x_std_libs/r3/libs.gemfile:4030570297": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] - ], - "gemfiles/modular/x_std_libs/r4/libs.gemfile:732451732": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] - ], - "gemfiles/modular/x_std_libs/vHEAD.gemfile:2390363993": [ - [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] - ], - "lib/rbs-merge.rb:334311121": [ - [1, 1, 0, "Naming/FileName: The name of this source file (`rbs-merge.rb`) should use snake_case.", 5381], - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "lib/rbs/merge.rb:688136140": [ - [17, 3, 12, "Style/Documentation: Missing top-level documentation comment for `module Rbs::Merge`.", 2866359175], - [104, 7, 1197, "Metrics/MethodLength: Method has too many lines. [22/10]", 564456261] - ], - "lib/rbs/merge/backends/rbs_backend.rb:2885387755": [ - [48, 11, 555, "Metrics/MethodLength: Method has too many lines. [13/10]", 2078142514], - [81, 11, 658, "Metrics/MethodLength: Method has too many lines. [11/10]", 324484142], - [172, 11, 527, "Metrics/MethodLength: Method has too many lines. [14/10]", 631898529], - [240, 15, 11, "Naming/PredicatePrefix: Rename `has_errors?` to `errors?`.", 1181419252], - [263, 9, 9332, "Metrics/ClassLength: Class has too many lines. [135/100]", 1906483935], - [290, 11, 1914, "Metrics/AbcSize: Assignment Branch Condition size for `type` is too high. [<0, 9, 23> 24.7/17]", 3636991776], - [290, 11, 1914, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `type` is too high. [24/7]", 3636991776], - [290, 11, 1914, "Metrics/MethodLength: Method has too many lines. [28/10]", 3636991776], - [363, 11, 489, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `end_point` is too high. [8/7]", 844861810], - [504, 27, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765] - ], - "lib/rbs/merge/comment_tracker.rb:1938176986": [ - [28, 7, 767, "Metrics/MethodLength: Method has too many lines. [15/10]", 752916075], - [60, 7, 416, "Metrics/MethodLength: Method has too many lines. [12/10]", 2715172162] - ], - "lib/rbs/merge/conflict_resolver.rb:16534551": [ - [16, 5, 9993, "Metrics/ClassLength: Class has too many lines. [147/100]", 1570883163], - [46, 7, 1614, "Metrics/MethodLength: Method has too many lines. [23/10]", 1004723330], - [46, 45, 14, "Lint/UnusedMethodArgument: Unused method argument - `template_index`.", 1809801172], - [46, 62, 10, "Lint/UnusedMethodArgument: Unused method argument - `dest_index`.", 2703999490], - [124, 7, 717, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `resolve_preference` is too high. [8/7]", 2783267415], - [124, 7, 717, "Metrics/MethodLength: Method has too many lines. [12/10]", 2783267415], - [158, 7, 949, "Metrics/AbcSize: Assignment Branch Condition size for `extract_declaration_text` is too high. [<9, 19, 14> 25.26/17]", 4132302840], - [158, 7, 949, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `extract_declaration_text` is too high. [13/7]", 4132302840], - [158, 7, 949, "Metrics/MethodLength: Method has too many lines. [18/10]", 4132302840], - [158, 7, 949, "Metrics/PerceivedComplexity: Perceived complexity for `extract_declaration_text` is too high. [14/8]", 4132302840], - [244, 7, 565, "Metrics/MethodLength: Method has too many lines. [13/10]", 375776463], - [244, 11, 12, "Naming/PredicatePrefix: Rename `has_members?` to `members?`.", 496913372] - ], - "lib/rbs/merge/file_aligner.rb:157117932": [ - [32, 7, 128, "Lint/UselessMethodDefinition: Useless method definition detected.", 4031328363] - ], - "lib/rbs/merge/file_analysis.rb:4205990536": [ - [23, 5, 20642, "Metrics/ClassLength: Class has too many lines. [403/100]", 3271819659], - [59, 7, 1146, "Metrics/MethodLength: Method has too many lines. [20/10]", 1625645012], - [191, 7, 398, "Metrics/MethodLength: Method has too many lines. [12/10]", 4157341657], - [211, 7, 719, "Metrics/MethodLength: Method has too many lines. [13/10]", 2571132513], - [235, 7, 965, "Metrics/AbcSize: Assignment Branch Condition size for `compute_tree_sitter_signature` is too high. [<3, 5, 21> 21.79/17]", 2963702282], - [235, 7, 965, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `compute_tree_sitter_signature` is too high. [22/7]", 2963702282], - [235, 7, 965, "Metrics/MethodLength: Method has too many lines. [26/10]", 2963702282], - [235, 7, 965, "Metrics/PerceivedComplexity: Perceived complexity for `compute_tree_sitter_signature` is too high. [16/8]", 2963702282], - [269, 7, 996, "Metrics/AbcSize: Assignment Branch Condition size for `extract_tree_sitter_node_name` is too high. [<5, 16, 10> 19.52/17]", 300940102], - [269, 7, 996, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `extract_tree_sitter_node_name` is too high. [11/7]", 300940102], - [269, 7, 996, "Metrics/MethodLength: Method has too many lines. [24/10]", 300940102], - [269, 7, 996, "Metrics/PerceivedComplexity: Perceived complexity for `extract_tree_sitter_node_name` is too high. [11/8]", 300940102], - [320, 7, 834, "Metrics/MethodLength: Method has too many lines. [16/10]", 658496547], - [380, 7, 1612, "Metrics/AbcSize: Assignment Branch Condition size for `extract_tree_sitter_declarations` is too high. [<8, 18, 11> 22.56/17]", 1899595676], - [380, 7, 1612, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `extract_tree_sitter_declarations` is too high. [10/7]", 1899595676], - [380, 7, 1612, "Metrics/MethodLength: Method has too many lines. [23/10]", 1899595676], - [380, 7, 1612, "Metrics/PerceivedComplexity: Perceived complexity for `extract_tree_sitter_declarations` is too high. [11/8]", 1899595676], - [449, 7, 569, "Metrics/MethodLength: Method has too many lines. [13/10]", 210550095], - [471, 7, 1133, "Metrics/AbcSize: Assignment Branch Condition size for `build_freeze_blocks` is too high. [<7, 22, 6> 23.85/17]", 4016218974], - [471, 7, 1133, "Metrics/MethodLength: Method has too many lines. [29/10]", 4016218974], - [528, 7, 486, "Metrics/MethodLength: Method has too many lines. [12/10]", 618123864], - [528, 7, 486, "Metrics/PerceivedComplexity: Perceived complexity for `node_start_line` is too high. [9/8]", 618123864], - [545, 7, 472, "Metrics/MethodLength: Method has too many lines. [12/10]", 1339916888], - [545, 7, 472, "Metrics/PerceivedComplexity: Perceived complexity for `node_end_line` is too high. [9/8]", 1339916888], - [579, 7, 1868, "Metrics/AbcSize: Assignment Branch Condition size for `compute_rbs_gem_signature` is too high. [<0, 45, 23> 50.54/17]", 2652509672], - [579, 7, 1868, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `compute_rbs_gem_signature` is too high. [23/7]", 2652509672], - [579, 7, 1868, "Metrics/MethodLength: Method has too many lines. [43/10]", 2652509672], - [579, 7, 1868, "Metrics/PerceivedComplexity: Perceived complexity for `compute_rbs_gem_signature` is too high. [9/8]", 2652509672] - ], - "lib/rbs/merge/freeze_node.rb:2942544870": [ - [34, 121, 9, "Layout/LineLength: Line is too long. [129/120]", 201145846], - [39, 7, 577, "Metrics/MethodLength: Method has too many lines. [11/10]", 2189574632], - [39, 21, 186, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [8/5]", 1006469938], - [78, 7, 1506, "Metrics/AbcSize: Assignment Branch Condition size for `validate_structure!` is too high. [<12, 12, 17> 24.02/17]", 1543687562], - [78, 7, 1506, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `validate_structure!` is too high. [12/7]", 1543687562], - [78, 7, 1506, "Metrics/MethodLength: Method has too many lines. [25/10]", 1543687562], - [78, 7, 1506, "Metrics/PerceivedComplexity: Perceived complexity for `validate_structure!` is too high. [12/8]", 1543687562], - [150, 7, 891, "Metrics/AbcSize: Assignment Branch Condition size for `extract_node_name` is too high. [<4, 21, 12> 24.52/17]", 1223188123], - [150, 7, 891, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `extract_node_name` is too high. [13/7]", 1223188123], - [150, 7, 891, "Metrics/MethodLength: Method has too many lines. [18/10]", 1223188123], - [150, 7, 891, "Metrics/PerceivedComplexity: Perceived complexity for `extract_node_name` is too high. [13/8]", 1223188123], - [162, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5861336] - ], - "lib/rbs/merge/merge_result.rb:3535749451": [ - [18, 5, 12502, "Metrics/ClassLength: Class has too many lines. [214/100]", 1397119540], - [91, 7, 966, "Metrics/MethodLength: Method has too many lines. [14/10]", 3349669346], - [178, 7, 1846, "Metrics/AbcSize: Assignment Branch Condition size for `extract_lines` is too high. [<15, 23, 16> 31.78/17]", 1426505008], - [178, 7, 1846, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `extract_lines` is too high. [15/7]", 1426505008], - [178, 7, 1846, "Metrics/MethodLength: Method has too many lines. [31/10]", 1426505008], - [178, 7, 1846, "Metrics/PerceivedComplexity: Perceived complexity for `extract_lines` is too high. [16/8]", 1426505008], - [229, 7, 709, "Metrics/AbcSize: Assignment Branch Condition size for `trailing_lines_for` is too high. [<4, 15, 9> 17.94/17]", 3530206652], - [229, 7, 709, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `trailing_lines_for` is too high. [9/7]", 3530206652], - [229, 7, 709, "Metrics/MethodLength: Method has too many lines. [18/10]", 3530206652], - [229, 7, 709, "Metrics/PerceivedComplexity: Perceived complexity for `trailing_lines_for` is too high. [10/8]", 3530206652], - [230, 47, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], - [252, 7, 475, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `layout_gap_lines_for` is too high. [9/7]", 1865599133], - [252, 7, 475, "Metrics/PerceivedComplexity: Perceived complexity for `layout_gap_lines_for` is too high. [9/8]", 1865599133], - [254, 47, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], - [265, 33, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], - [270, 7, 682, "Metrics/AbcSize: Assignment Branch Condition size for `deduplicate_leading_comment_overlap` is too high. [<4, 15, 9> 17.94/17]", 4227245480], - [270, 7, 682, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `deduplicate_leading_comment_overlap` is too high. [8/7]", 4227245480], - [270, 7, 682, "Metrics/MethodLength: Method has too many lines. [11/10]", 4227245480] - ], - "lib/rbs/merge/node_type_normalizer.rb:2788764230": [ - [65, 5, 10747, "Metrics/ModuleLength: Module has too many lines. [199/100]", 63560324], - [250, 9, 693, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `canonical_type_for_node` is too high. [9/7]", 908800634], - [250, 9, 693, "Metrics/MethodLength: Method has too many lines. [16/10]", 908800634], - [250, 9, 693, "Metrics/PerceivedComplexity: Perceived complexity for `canonical_type_for_node` is too high. [9/8]", 908800634], - [323, 9, 689, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `refine_tree_sitter_attribute_type` is too high. [9/7]", 2340352499], - [323, 9, 689, "Metrics/MethodLength: Method has too many lines. [13/10]", 2340352499], - [323, 9, 689, "Metrics/PerceivedComplexity: Perceived complexity for `refine_tree_sitter_attribute_type` is too high. [9/8]", 2340352499], - [343, 9, 475, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `refine_tree_sitter_variable_type` is too high. [8/7]", 536330497], - [343, 9, 475, "Metrics/MethodLength: Method has too many lines. [14/10]", 536330497] - ], - "lib/rbs/merge/node_wrapper.rb:1434186839": [ - [26, 5, 14933, "Metrics/ClassLength: Class has too many lines. [344/100]", 4139761414], - [37, 17, 84, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 366036293], - [264, 7, 831, "Metrics/AbcSize: Assignment Branch Condition size for `text` is too high. [<3, 32, 20> 37.85/17]", 980238327], - [264, 7, 831, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `text` is too high. [18/7]", 980238327], - [264, 7, 831, "Metrics/MethodLength: Method has too many lines. [18/10]", 980238327], - [264, 7, 831, "Metrics/PerceivedComplexity: Perceived complexity for `text` is too high. [20/8]", 980238327], - [268, 47, 2, "Lint/SafeNavigationConsistency: Use `.` instead of unnecessary `&.`.", 5858765], - [280, 22, 14, "Style/NumericPredicate: Use `start_line.positive?` instead of `start_line > 0`.", 792111162], - [301, 7, 1209, "Metrics/AbcSize: Assignment Branch Condition size for `signature` is too high. [<1, 25, 20> 32.03/17]", 4281557215], - [301, 7, 1209, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `signature` is too high. [21/7]", 4281557215], - [301, 7, 1209, "Metrics/MethodLength: Method has too many lines. [45/10]", 4281557215], - [351, 7, 384, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `method_kind` is too high. [8/7]", 563626808], - [351, 7, 384, "Metrics/PerceivedComplexity: Perceived complexity for `method_kind` is too high. [9/8]", 563626808], - [423, 7, 935, "Metrics/MethodLength: Method has too many lines. [21/10]", 3557799127], - [469, 7, 667, "Metrics/AbcSize: Assignment Branch Condition size for `extract_child_texts` is too high. [<6, 16, 8> 18.87/17]", 1979652559], - [469, 7, 667, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `extract_child_texts` is too high. [9/7]", 1979652559], - [469, 7, 667, "Metrics/MethodLength: Method has too many lines. [12/10]", 1979652559], - [469, 7, 667, "Metrics/PerceivedComplexity: Perceived complexity for `extract_child_texts` is too high. [9/8]", 1979652559], - [487, 7, 583, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `extract_tree_sitter_visibility_kind` is too high. [9/7]", 2002684122], - [487, 7, 583, "Metrics/MethodLength: Method has too many lines. [13/10]", 2002684122], - [487, 7, 583, "Metrics/PerceivedComplexity: Perceived complexity for `extract_tree_sitter_visibility_kind` is too high. [9/8]", 2002684122], - [532, 7, 557, "Metrics/MethodLength: Method has too many lines. [14/10]", 1753294094] - ], - "lib/rbs/merge/smart_merger.rb:30342291": [ - [43, 5, 35445, "Metrics/ClassLength: Class has too many lines. [704/100]", 1644944892], - [87, 7, 1188, "Metrics/MethodLength: Method has too many lines. [17/10]", 2908064588], - [87, 21, 447, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [14/5]", 1344979847], - [183, 7, 805, "Metrics/AbcSize: Assignment Branch Condition size for `perform_merge` is too high. [<6, 15, 8> 18.03/17]", 1638854701], - [183, 7, 805, "Metrics/MethodLength: Method has too many lines. [14/10]", 1638854701], - [209, 7, 572, "Metrics/MethodLength: Method has too many lines. [15/10]", 3471574631], - [306, 7, 1240, "Metrics/AbcSize: Assignment Branch Condition size for `process_match` is too high. [<1, 28, 7> 28.88/17]", 1632629493], - [306, 7, 1240, "Metrics/MethodLength: Method has too many lines. [29/10]", 1632629493], - [371, 7, 550, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `removed_declaration_comment_lines` is too high. [9/7]", 112034646], - [371, 7, 550, "Metrics/MethodLength: Method has too many lines. [12/10]", 112034646], - [371, 7, 550, "Metrics/PerceivedComplexity: Perceived complexity for `removed_declaration_comment_lines` is too high. [9/8]", 112034646], - [400, 7, 675, "Metrics/MethodLength: Method has too many lines. [13/10]", 1415352570], - [426, 7, 2637, "Metrics/AbcSize: Assignment Branch Condition size for `reconstruct_declaration_with_merged_members` is too high. [<20, 23, 22> 37.59/17]", 1250076424], - [426, 7, 2637, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `reconstruct_declaration_with_merged_members` is too high. [17/7]", 1250076424], - [426, 7, 2637, "Metrics/MethodLength: Method has too many lines. [50/10]", 1250076424], - [426, 7, 2637, "Metrics/PerceivedComplexity: Perceived complexity for `reconstruct_declaration_with_merged_members` is too high. [17/8]", 1250076424], - [464, 20, 46, "Style/StringConcatenation: Prefer string interpolation to string concatenation.", 1375387925], - [487, 9, 28, "Style/StringConcatenation: Prefer string interpolation to string concatenation.", 2709565617], - [490, 7, 1524, "Metrics/AbcSize: Assignment Branch Condition size for `recursive_body_lines_for_declaration` is too high. [<8, 23, 9> 25.96/17]", 1351072746], - [490, 7, 1524, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `recursive_body_lines_for_declaration` is too high. [10/7]", 1351072746], - [490, 7, 1524, "Metrics/MethodLength: Method has too many lines. [20/10]", 1351072746], - [490, 7, 1524, "Metrics/PerceivedComplexity: Perceived complexity for `recursive_body_lines_for_declaration` is too high. [10/8]", 1351072746], - [490, 47, 139, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 652517575], - [518, 7, 2987, "Metrics/AbcSize: Assignment Branch Condition size for `merge_member_lines` is too high. [<6, 42, 12> 44.09/17]", 1498622641], - [518, 7, 2987, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `merge_member_lines` is too high. [11/7]", 1498622641], - [518, 7, 2987, "Metrics/MethodLength: Method has too many lines. [74/10]", 1498622641], - [520, 9, 2820, "Metrics/BlockLength: Block has too many lines. [71/25]", 3843526257], - [608, 7, 1779, "Metrics/AbcSize: Assignment Branch Condition size for `align_member_lists` is too high. [<14, 26, 14> 32.68/17]", 3585753868], - [608, 7, 1779, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `align_member_lists` is too high. [14/7]", 3585753868], - [608, 7, 1779, "Metrics/MethodLength: Method has too many lines. [49/10]", 3585753868], - [608, 7, 1779, "Metrics/PerceivedComplexity: Perceived complexity for `align_member_lists` is too high. [15/8]", 3585753868], - [715, 7, 605, "Metrics/AbcSize: Assignment Branch Condition size for `split_top_level_return_type` is too high. [<7, 14, 10> 18.57/17]", 1731525207], - [715, 7, 605, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `split_top_level_return_type` is too high. [8/7]", 1731525207], - [715, 7, 605, "Metrics/MethodLength: Method has too many lines. [17/10]", 1731525207], - [752, 7, 2211, "Metrics/AbcSize: Assignment Branch Condition size for `extract_statement_lines_with_leading_comments` is too high. [<10, 12, 12> 19.7/17]", 3268393611], - [752, 7, 2211, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `extract_statement_lines_with_leading_comments` is too high. [9/7]", 3268393611], - [752, 7, 2211, "Metrics/MethodLength: Method has too many lines. [37/10]", 3268393611], - [752, 7, 2211, "Metrics/PerceivedComplexity: Perceived complexity for `extract_statement_lines_with_leading_comments` is too high. [12/8]", 3268393611], - [752, 56, 235, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 3178974338], - [800, 47, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], - [822, 7, 688, "Metrics/AbcSize: Assignment Branch Condition size for `container_header_lines` is too high. [<8, 12, 11> 18.14/17]", 1754168481], - [822, 7, 688, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `container_header_lines` is too high. [10/7]", 1754168481], - [822, 7, 688, "Metrics/PerceivedComplexity: Perceived complexity for `container_header_lines` is too high. [10/8]", 1754168481], - [849, 35, 148, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 2125883980], - [864, 33, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], - [869, 7, 841, "Metrics/MethodLength: Method has too many lines. [15/10]", 3400690599], - [892, 7, 1788, "Metrics/AbcSize: Assignment Branch Condition size for `collapse_cross_source_preamble_prefixes` is too high. [<14, 21, 9> 26.8/17]", 3130187278], - [892, 7, 1788, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `collapse_cross_source_preamble_prefixes` is too high. [9/7]", 3130187278], - [892, 7, 1788, "Metrics/MethodLength: Method has too many lines. [31/10]", 3130187278], - [892, 7, 1788, "Metrics/PerceivedComplexity: Perceived complexity for `collapse_cross_source_preamble_prefixes` is too high. [9/8]", 3130187278], - [932, 7, 533, "Metrics/MethodLength: Method has too many lines. [15/10]", 4188914818] - ], - "rbs-merge.gemspec:435779253": [ - [126, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 2821357214], - [137, 121, 50, "Layout/LineLength: Line is too long. [170/120]", 3888612416], - [138, 121, 29, "Layout/LineLength: Line is too long. [149/120]", 981994949] - ], - "spec/integration/reproducible_merge_spec.rb:884028812": [ - [9, 1, 7880, "Metrics/BlockLength: Block has too many lines. [181/25]", 921020609], - [14, 3, 4384, "Metrics/BlockLength: Block has too many lines. [85/25]", 628655161], - [15, 5, 3507, "Metrics/BlockLength: Block has too many lines. [65/25]", 2935184196], - [56, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5858910], - [62, 121, 9, "Layout/LineLength: Line is too long. [129/120]", 50415752], - [87, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1546684737], - [133, 3, 1507, "Metrics/BlockLength: Block has too many lines. [37/25]", 1415839468] - ], - "spec/rbs/merge/comment_behavior_matrix_spec.rb:2043528618": [ - [14, 45, 6, "Lint/UnusedBlockArgument: Unused block argument - `inline`. If it's necessary, use `_` or `_inline` as an argument name to indicate that it won't be used.", 1605470060], - [18, 121, 24, "Layout/LineLength: Line is too long. [144/120]", 253885993], - [19, 121, 45, "Layout/LineLength: Line is too long. [165/120]", 1702591521] - ], - "spec/rbs/merge/comment_tracker_spec.rb:1831412931": [ - [5, 1, 14574, "Metrics/BlockLength: Block has too many lines. [306/25]", 1598998757], - [8, 3, 3272, "Metrics/BlockLength: Block has too many lines. [67/25]", 935176133], - [95, 3, 1130, "Metrics/BlockLength: Block has too many lines. [28/25]", 204252301], - [143, 3, 1704, "Metrics/BlockLength: Block has too many lines. [32/25]", 1579622084], - [209, 3, 5815, "Metrics/BlockLength: Block has too many lines. [112/25]", 433112678] - ], - "spec/rbs/merge/conflict_resolver_spec.rb:999961156": [ - [8, 1, 19854, "Metrics/BlockLength: Block has too many lines. [491/25]", 3942921818], - [9, 3, 1428, "Metrics/BlockLength: Block has too many lines. [36/25]", 529294185], - [56, 3, 1199, "Metrics/BlockLength: Block has too many lines. [28/25]", 73504201], - [93, 3, 1277, "Metrics/BlockLength: Block has too many lines. [29/25]", 595351018], - [190, 3, 7078, "Metrics/BlockLength: Block has too many lines. [149/25]", 3739681265], - [296, 5, 1646, "Metrics/BlockLength: Block has too many lines. [33/25]", 3128279135], - [302, 7, 1292, "Metrics/BlockLength: Block has too many lines. [27/25]", 729602127], - [404, 3, 4548, "Metrics/BlockLength: Block has too many lines. [114/25]", 2619563374], - [420, 5, 922, "Metrics/BlockLength: Block has too many lines. [26/25]", 3893264586], - [452, 5, 960, "Metrics/BlockLength: Block has too many lines. [26/25]", 3053707146] - ], - "spec/rbs/merge/file_aligner_spec.rb:2643720547": [ - [7, 1, 21476, "Metrics/BlockLength: Block has too many lines. [555/25]", 4145069110], - [65, 3, 1123, "Metrics/BlockLength: Block has too many lines. [28/25]", 1358831340], - [188, 3, 1226, "Metrics/BlockLength: Block has too many lines. [34/25]", 1337144492], - [246, 3, 4891, "Metrics/BlockLength: Block has too many lines. [152/25]", 125990895], - [436, 3, 1943, "Metrics/BlockLength: Block has too many lines. [34/25]", 4126970167], - [483, 3, 3944, "Metrics/BlockLength: Block has too many lines. [94/25]", 2604333848], - [565, 5, 1328, "Metrics/BlockLength: Block has too many lines. [27/25]", 1994971578] - ], - "spec/rbs/merge/file_analysis_spec.rb:952231308": [ - [15, 1, 54363, "Metrics/BlockLength: Block has too many lines. [1205/25]", 2485884639], - [16, 3, 1272, "Metrics/BlockLength: Block has too many lines. [38/25]", 1778989479], - [17, 5, 1210, "Metrics/BlockLength: Block has too many lines. [37/25]", 1755177515], - [67, 3, 1152, "Metrics/BlockLength: Block has too many lines. [33/25]", 2931980952], - [68, 5, 1083, "Metrics/BlockLength: Block has too many lines. [32/25]", 3589815947], - [136, 3, 982, "Metrics/BlockLength: Block has too many lines. [30/25]", 1355840781], - [137, 5, 929, "Metrics/BlockLength: Block has too many lines. [29/25]", 3738902933], - [200, 3, 1559, "Metrics/BlockLength: Block has too many lines. [30/25]", 3203356148], - [201, 5, 1493, "Metrics/BlockLength: Block has too many lines. [29/25]", 1389049628], - [860, 3, 2525, "Metrics/BlockLength: Block has too many lines. [42/25]", 2701315631], - [861, 5, 2455, "Metrics/BlockLength: Block has too many lines. [41/25]", 1293659790], - [884, 121, 5, "Layout/LineLength: Line is too long. [125/120]", 193270906], - [919, 121, 23, "Layout/LineLength: Line is too long. [143/120]", 115067835], - [948, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5858795], - [954, 3, 3548, "Metrics/BlockLength: Block has too many lines. [59/25]", 2573657607], - [955, 5, 3497, "Metrics/BlockLength: Block has too many lines. [58/25]", 14776664], - [982, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2085251945], - [1017, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 2659900392], - [1038, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 2659900392], - [1091, 3, 1750, "Metrics/BlockLength: Block has too many lines. [29/25]", 460836946], - [1092, 5, 1693, "Metrics/BlockLength: Block has too many lines. [28/25]", 1601111212], - [1135, 3, 1948, "Metrics/BlockLength: Block has too many lines. [41/25]", 4061538475], - [1136, 5, 1892, "Metrics/BlockLength: Block has too many lines. [40/25]", 4081702319], - [1195, 3, 2571, "Metrics/BlockLength: Block has too many lines. [55/25]", 3959149994], - [1265, 3, 2440, "Metrics/BlockLength: Block has too many lines. [52/25]", 2164819729], - [1332, 3, 2008, "Metrics/BlockLength: Block has too many lines. [39/25]", 609327574], - [1379, 3, 1938, "Metrics/BlockLength: Block has too many lines. [38/25]", 361672068], - [1425, 3, 1995, "Metrics/BlockLength: Block has too many lines. [39/25]", 4024875480], - [1472, 3, 1992, "Metrics/BlockLength: Block has too many lines. [39/25]", 1156260241] - ], - "spec/rbs/merge/freeze_node_spec.rb:2278400615": [ - [8, 1, 13268, "Metrics/BlockLength: Block has too many lines. [327/25]", 1590692835], - [9, 3, 2116, "Metrics/BlockLength: Block has too many lines. [43/25]", 4215218715], - [98, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 3784984989], - [99, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1182436848], - [331, 3, 2919, "Metrics/BlockLength: Block has too many lines. [65/25]", 1415484725] - ], - "spec/rbs/merge/merge_result_spec.rb:2449518259": [ - [8, 1, 20574, "Metrics/BlockLength: Block has too many lines. [454/25]", 736738811], - [53, 3, 1244, "Metrics/BlockLength: Block has too many lines. [31/25]", 3686452170] - ], - "spec/rbs/merge/smart_merger_removal_mode_compliance_spec.rb:3475743041": [ - [7, 1, 1860, "Metrics/BlockLength: Block has too many lines. [66/25]", 3469987127], - [8, 3, 1798, "Metrics/BlockLength: Block has too many lines. [65/25]", 778477682] - ], - "spec/rbs/merge/smart_merger_spec.rb:40056830": [ - [14, 1, 46017, "Metrics/BlockLength: Block has too many lines. [1256/25]", 36529752], - [179, 3, 10886, "Metrics/BlockLength: Block has too many lines. [286/25]", 1693926280], - [345, 5, 985, "Metrics/BlockLength: Block has too many lines. [26/25]", 3397066157], - [381, 5, 1063, "Metrics/BlockLength: Block has too many lines. [26/25]", 2718784043], - [491, 5, 1135, "Metrics/BlockLength: Block has too many lines. [26/25]", 3797285781], - [527, 5, 1213, "Metrics/BlockLength: Block has too many lines. [26/25]", 3686078390], - [566, 3, 2766, "Metrics/BlockLength: Block has too many lines. [84/25]", 3927490181], - [679, 3, 1714, "Metrics/BlockLength: Block has too many lines. [54/25]", 386494661], - [751, 3, 5393, "Metrics/BlockLength: Block has too many lines. [138/25]", 2457897034], - [955, 3, 4479, "Metrics/BlockLength: Block has too many lines. [134/25]", 3856958364], - [956, 5, 1327, "Metrics/BlockLength: Block has too many lines. [33/25]", 4009192695], - [1000, 5, 953, "Metrics/BlockLength: Block has too many lines. [29/25]", 902715698], - [1038, 5, 1147, "Metrics/BlockLength: Block has too many lines. [37/25]", 3544491851], - [1088, 5, 955, "Metrics/BlockLength: Block has too many lines. [27/25]", 2688118410], - [1126, 3, 2440, "Metrics/BlockLength: Block has too many lines. [69/25]", 1545633152], - [1127, 5, 970, "Metrics/BlockLength: Block has too many lines. [31/25]", 1575476639], - [1164, 5, 1403, "Metrics/BlockLength: Block has too many lines. [34/25]", 1311674864], - [1207, 3, 882, "Metrics/BlockLength: Block has too many lines. [27/25]", 3845382500], - [1208, 5, 813, "Metrics/BlockLength: Block has too many lines. [26/25]", 1755501948], - [1243, 3, 805, "Metrics/BlockLength: Block has too many lines. [26/25]", 3413285873], - [1276, 3, 2200, "Metrics/BlockLength: Block has too many lines. [70/25]", 3541894760], - [1277, 5, 1202, "Metrics/BlockLength: Block has too many lines. [38/25]", 3971143978], - [1307, 121, 1, "Layout/LineLength: Line is too long. [121/120]", 177610], - [1323, 5, 923, "Metrics/BlockLength: Block has too many lines. [28/25]", 3867507419], - [1360, 3, 1175, "Metrics/BlockLength: Block has too many lines. [36/25]", 1587654554], - [1361, 5, 1103, "Metrics/BlockLength: Block has too many lines. [35/25]", 3885176914], - [1441, 3, 1321, "Metrics/BlockLength: Block has too many lines. [29/25]", 1361304889], - [1481, 3, 1347, "Metrics/BlockLength: Block has too many lines. [29/25]", 1505210076], - [1521, 3, 1334, "Metrics/BlockLength: Block has too many lines. [29/25]", 3208600846], - [1561, 3, 1334, "Metrics/BlockLength: Block has too many lines. [29/25]", 212464082], - [1601, 3, 1331, "Metrics/BlockLength: Block has too many lines. [29/25]", 4277366491] - ], - "spec/rbs/merge_spec.rb:3352331478": [ - [5, 1, 1389, "Metrics/BlockLength: Block has too many lines. [37/25]", 373922011], - [10, 3, 1270, "Metrics/BlockLength: Block has too many lines. [32/25]", 2567886247] - ] -} diff --git a/gems/rbs-merge/.simplecov b/gems/rbs-merge/.simplecov index a60ee121e..074b27025 100644 --- a/gems/rbs-merge/.simplecov +++ b/gems/rbs-merge/.simplecov @@ -10,5 +10,5 @@ # If the values for minimum coverage need to change, they should be changed both there, # and in 2 places in .github/workflows/coverage.yml. SimpleCov.configure do - cover "lib/**/*.rb", "lib/**/*.rake", "exe/*.rb" + cover 'lib/**/*.rb', 'lib/**/*.rake', 'exe/*.rb' end diff --git a/gems/rbs-merge/Gemfile b/gems/rbs-merge/Gemfile index 1dd0bb16b..04107d8d4 100644 --- a/gems/rbs-merge/Gemfile +++ b/gems/rbs-merge/Gemfile @@ -6,7 +6,7 @@ # kettle-jem will then preserve content between those markers across template runs. # kettle-jem:unfreeze -source "https://gem.coop" +source 'https://gem.coop' git_source(:codeberg) { |repo_name| "https://codeberg.org/#{repo_name}" } git_source(:gitlab) { |repo_name| "https://gitlab.com/#{repo_name}" } @@ -19,58 +19,54 @@ git_source(:gitlab) { |repo_name| "https://gitlab.com/#{repo_name}" } gemspec # Local workspace dependency wiring for *_local.gemfile overrides -nomono_requirements = ["~> 1.0", ">= 1.0.8"] -gem "nomono", *nomono_requirements, require: false # ruby >= 2.2 +nomono_requirements = ['~> 1.0', '>= 1.0.8'] +gem 'nomono', *nomono_requirements, require: false # ruby >= 2.2 # Direct sibling dependencies (env-switched via STRUCTUREDMERGE_DEV) direct_sibling_gems = %w[ ast-merge tree_haver ] -direct_sibling_dev = ENV.fetch("STRUCTUREDMERGE_DEV", "") +direct_sibling_dev = ENV.fetch('STRUCTUREDMERGE_DEV', '') direct_sibling_local = !direct_sibling_dev.empty? && !%w[false 0 no off].include?(direct_sibling_dev.downcase) -direct_sibling_templating = ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? +direct_sibling_templating = ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero?) - direct_sibling_dev_was_set = ENV.key?("STRUCTUREDMERGE_DEV") - direct_sibling_dev_original = ENV.fetch("STRUCTUREDMERGE_DEV", nil) + (direct_sibling_local || + ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) + direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') + direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) begin nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path("Gemfile.lock", __dir__) + nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == "nomono" } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - if nomono_locked - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] - end - end - Kernel.send(:gem, "nomono", *nomono_activation_requirements) - require "nomono/bundler" - if direct_sibling_templating && !direct_sibling_local - ENV["STRUCTUREDMERGE_DEV"] = File.expand_path("..", __dir__) + Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked end + Kernel.send(:gem, 'nomono', *nomono_activation_requirements) + require 'nomono/bundler' + ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local eval_nomono_gems( gems: direct_sibling_gems, - prefix: "STRUCTUREDMERGE", - path_env: "STRUCTUREDMERGE_DEV", - root: ["src", "my", "structuredmerge"] + prefix: 'STRUCTUREDMERGE', + path_env: 'STRUCTUREDMERGE_DEV', + root: %w[src my structuredmerge] ) rescue LoadError - warn "Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies." + warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' ensure if direct_sibling_templating && !direct_sibling_local if direct_sibling_dev_was_set - ENV["STRUCTUREDMERGE_DEV"] = direct_sibling_dev_original + ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original else - ENV.delete("STRUCTUREDMERGE_DEV") + ENV.delete('STRUCTUREDMERGE_DEV') end end end @@ -157,28 +153,28 @@ if direct_sibling_gems.any? && end # Use released TSLP with the Ruby ABI platform-gem fix. -gem "tree_sitter_language_pack", "~> 1.13", ">= 1.13.3" +gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' # Templating (env-switched: STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local paths) -eval_gemfile "gemfiles/modular/templating.gemfile" if ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? +eval_gemfile 'gemfiles/modular/templating.gemfile' if ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? # Debugging -eval_gemfile "gemfiles/modular/debug.gemfile" +eval_gemfile 'gemfiles/modular/debug.gemfile' # Code Coverage (env-switched: KETTLE_DEV_DEV=true for local paths) -eval_gemfile "gemfiles/modular/coverage.gemfile" +eval_gemfile 'gemfiles/modular/coverage.gemfile' # Linting -eval_gemfile "gemfiles/modular/style.gemfile" +eval_gemfile 'gemfiles/modular/style.gemfile' # Documentation -eval_gemfile "gemfiles/modular/documentation.gemfile" +eval_gemfile 'gemfiles/modular/documentation.gemfile' # Optional -eval_gemfile "gemfiles/modular/optional.gemfile" +eval_gemfile 'gemfiles/modular/optional.gemfile' ### Std Lib Extracted Gems -eval_gemfile "gemfiles/modular/x_std_libs.gemfile" +eval_gemfile 'gemfiles/modular/x_std_libs.gemfile' # See unlocked_deps appraisal for more details on irb inclusion -gem "irb", "~> 1.17" # ruby >= 2.7 +gem 'irb', '~> 1.17' # ruby >= 2.7 diff --git a/gems/rbs-merge/Gemfile.lock b/gems/rbs-merge/Gemfile.lock index fd4f58619..6eff31366 100644 --- a/gems/rbs-merge/Gemfile.lock +++ b/gems/rbs-merge/Gemfile.lock @@ -7,38 +7,6 @@ PATH tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.14) -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly - specs: - ast-crispr-markdown-markly (7.1.0) - ast-crispr (= 7.1.0) - markly-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism - specs: - ast-crispr-ruby-prism (7.1.0) - ast-crispr (= 7.1.0) - prism-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr - specs: - ast-crispr (7.1.0) - ast-merge (= 7.1.0) - service_actor (~> 3.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git - specs: - ast-merge-git (7.1.0) - ast-merge (= 7.1.0) - json-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - PATH remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge specs: @@ -48,192 +16,6 @@ PATH tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template - specs: - ast-template (7.1.0) - ast-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge - specs: - bash-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge - specs: - binary-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge - specs: - citrus-toml-merge (7.1.0) - toml-merge (= 7.1.0) - toml-rb (~> 4.1) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge - specs: - commonmarker-merge (7.1.0) - commonmarker (~> 2.2) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge - specs: - dotenv-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge - specs: - go-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge - specs: - json-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem - specs: - kettle-jem (7.1.0) - addressable (>= 2.8, < 3) - ast-crispr-markdown-markly (= 7.1.0) - ast-crispr-ruby-prism (= 7.1.0) - ast-merge (= 7.1.0) - bash-merge (= 7.1.0) - citrus-toml-merge (= 7.1.0) - commonmarker-merge (= 7.1.0) - dotenv-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-dev (~> 2.3, >= 2.3.5) - kettle-rb (~> 0.1, >= 0.1.4) - kramdown-merge (= 7.1.0) - markdown-merge (= 7.1.0) - markly-merge (= 7.1.0) - prism-merge (= 7.1.0) - psych-merge (= 7.1.0) - rbs (>= 3.10) - rbs-merge (= 7.1.0) - ruby-merge (= 7.1.0) - token-resolver (~> 2.0, >= 2.0.4) - toml-merge (= 7.1.0) - toml-rb (~> 4.2) - tree_haver (= 7.1.0) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge - specs: - kramdown-merge (7.1.0) - kramdown (~> 2.5) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge - specs: - markdown-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge - specs: - markly-merge (7.1.0) - markdown-merge (= 7.1.0) - markly (~> 0.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge - specs: - parslet-toml-merge (7.1.0) - toml (~> 0.3) - toml-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge - specs: - plain-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge - specs: - prism-merge (7.1.0) - prism (~> 1.6) - ruby-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge - specs: - psych-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge - specs: - ruby-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge - specs: - rust-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb - specs: - smorg-rb (7.1.0) - ast-merge (= 7.1.0) - ast-merge-git (= 7.1.0) - diff-lcs (~> 1.5) - go-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-jem (= 7.1.0) - markly-merge (= 7.1.0) - plain-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge - specs: - toml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - PATH remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver specs: @@ -243,46 +25,6 @@ PATH tree_sitter_language_pack (>= 1.13.2, < 2.0) version_gem (~> 1.1, >= 1.1.9) -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge - specs: - typescript-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge - specs: - yaml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge - specs: - zip-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /var/home/pboling/src/my/kettle-dev/kettle-drift - specs: - kettle-drift (1.0.6) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /var/home/pboling/src/my/kettle-dev/kettle-soup-cover - specs: - kettle-soup-cover (3.0.4) - kettle-wash (~> 0.1, >= 0.1.0) - simplecov (>= 1.0) - simplecov-cobertura (>= 4.0) - simplecov-console (~> 0.9, >= 0.9.5) - simplecov-rcov (~> 0.3, >= 0.3.7) - simplecov_lcov_formatter (~> 0.9, >= 0.9.0) - GEM remote: https://gem.coop/ specs: @@ -307,10 +49,6 @@ GEM cgi (0.5.2) citrus (3.0.2) cmdparse (3.0.7) - commonmarker (2.9.0-aarch64-linux) - commonmarker (2.9.0-aarch64-linux-musl) - commonmarker (2.9.0-arm64-darwin) - commonmarker (2.9.0-x86_64-linux) concurrent-ruby (1.3.8) date (3.5.1) debug (1.11.1) @@ -374,6 +112,13 @@ GEM kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) kettle-rb (0.1.5) + kettle-soup-cover (3.0.4) + kettle-wash (~> 0.1, >= 0.1.0) + simplecov (>= 1.0) + simplecov-cobertura (>= 4.0) + simplecov-console (~> 0.9, >= 0.9.5) + simplecov-rcov (~> 0.3, >= 0.3.7) + simplecov_lcov_formatter (~> 0.9, >= 0.9.0) kettle-test (2.0.12) appraisal2 (~> 3.0, >= 3.0.6) backports (~> 3.0) @@ -394,7 +139,6 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) - markly (0.16.0) mutex_m (0.3.0) nokogiri (1.19.4-aarch64-linux-gnu) racc (~> 1.4) @@ -557,8 +301,6 @@ GEM ruby-progressbar (1.13.0) ruby_engine (2.0.3) ruby_version (1.0.3) - service_actor (3.9.4) - zeitwerk (>= 1.0) silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) @@ -613,11 +355,6 @@ GEM token-resolver (2.0.5) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.14) - toml (0.3.0) - parslet (>= 1.8.0, < 3.0.0) - toml-rb (4.2.0) - citrus (~> 3.0, > 3.0) - racc (~> 1.7) tree_sitter_language_pack (1.13.3-aarch64-linux) sorbet-runtime (~> 0.5) tree_sitter_language_pack (1.13.3-arm64-darwin) @@ -672,43 +409,22 @@ DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.2, >= 3.2.0) appraisal2-rubocop (~> 1.0, >= 1.0.0) - ast-crispr! - ast-crispr-markdown-markly! - ast-crispr-ruby-prism! ast-merge! - ast-merge-git! - ast-template! - bash-merge! benchmark (~> 0.5, >= 0.5.0) - binary-merge! bundler-audit (~> 0.9.3) cgi (~> 0.5) - citrus-toml-merge! - commonmarker-merge! debug (>= 1.1) - dotenv-merge! erb (~> 6.0, >= 6.0.6) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.4) - go-merge! irb (~> 1.17) - json-merge! kettle-dev (~> 2.3, >= 2.3.7) - kettle-drift! - kettle-jem! - kettle-soup-cover! + kettle-soup-cover (~> 3.0, >= 3.0.3) kettle-test (~> 2.0, >= 2.0.12) kramdown (~> 2.5, >= 2.5.2) - kramdown-merge! kramdown-parser-gfm (~> 1.1) - markdown-merge! - markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) - parslet-toml-merge! - plain-merge! - prism-merge! - psych-merge! rake (~> 13.0) rbs-merge! rdoc (~> 6.11) @@ -721,28 +437,21 @@ DEPENDENCIES rubocop-on-rbs (~> 2.0, >= 2.0.0) rubocop-packaging (~> 0.6, >= 0.6.0) rubocop-ruby3_2 (~> 3.0, >= 3.0.6) - ruby-merge! ruby-progressbar (~> 1.13) - rust-merge! - smorg-rb! standard (~> 1.56, >= 1.56.0) stone_checksums (~> 1.0, >= 1.0.6) stringio (>= 3.0) - toml-merge! tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) turbo_tests2 (~> 3.2, >= 3.2.0) - typescript-merge! webrick (~> 1.9) yaml-converter (~> 0.2, >= 0.2.3) - yaml-merge! yard (~> 0.9, >= 0.9.45) yard-fence (~> 0.9, >= 0.9.6) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) yard-timekeeper (~> 0.2, >= 0.2.4) yard-yaml (~> 0.2, >= 0.2.3) - zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af @@ -750,34 +459,20 @@ CHECKSUMS appraisal2 (3.2.0) sha256=ccd0b767ac4060cd7af6d16747459b6990f49c39c7b4fb1f7d1146b1e97c492f appraisal2-rubocop (1.0.0) sha256=b71410fbb014befda5340605a605b7f6f3f012739baf0acc5b4351b592c3258d ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 - ast-crispr (7.1.0) - ast-crispr-markdown-markly (7.1.0) - ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) - ast-merge-git (7.1.0) - ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 - bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd - binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 - citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 - commonmarker (2.9.0-aarch64-linux) sha256=e2b4aadb9a2cfa4e206582641ce3a49465549ac1ed4c289fdd63b78d8f24579c - commonmarker (2.9.0-aarch64-linux-musl) sha256=1cf4d2821f2a7e64945f1ed7c4eeced586fdb27ea7fe7337788802cf8f57cfca - commonmarker (2.9.0-arm64-darwin) sha256=1748dbfa4f5813b0d2a14bb4bbfa65a4ec293aa1c825016d60029ee0e132b046 - commonmarker (2.9.0-x86_64-linux) sha256=8cfe92970eef585a19ddf6613224b91cab64d6029834661bda801f877c9c7f43 - commonmarker-merge (7.1.0) concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 - dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -790,28 +485,20 @@ CHECKSUMS gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f - go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 - json-merge (7.1.0) kettle-dev (2.3.8) sha256=9d716ff21c660a730cb4e8d41e2e2f0630a28167a354b6e2924e242102aef72c - kettle-drift (1.0.6) - kettle-jem (7.1.0) kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f kettle-soup-cover (3.0.4) kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa - kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 - markdown-merge (7.1.0) - markly (0.16.0) sha256=6f70d79e385b1efc9e171f74c81628826259039fe6c778e03c3924c71dac5511 - markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-aarch64-linux-gnu) sha256=1269fb644a6de405057a53dd5c762b1209b43ca7424f839454d3dbc677c31a8f nokogiri (1.19.4-aarch64-linux-musl) sha256=35c65b9ce72b3bb03207bdbe7067915019dc18c1b9b59139684bd6690fdd01af @@ -825,14 +512,10 @@ CHECKSUMS parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 - parslet-toml-merge (7.1.0) - plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 - prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 - psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a @@ -873,19 +556,15 @@ CHECKSUMS rubocop-rspec_rails (2.32.0) sha256=4a0d641c72f6ebb957534f539d9d0a62c47abd8ce0d0aeee1ef4701e892a9100 rubocop-ruby3_2 (3.0.7) sha256=f53dd6d286fb05186214fc6ec116783e7f837030918e8931c05de773e98f8466 rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 - ruby-merge (7.1.0) ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 - rust-merge (7.1.0) - service_actor (3.9.4) sha256=e63b523630b9a7e62959b2a90113b08d2565b5de9c148557b281ef847c9539ce silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed - smorg-rb (7.1.0) sorbet-runtime (0.6.13351) sha256=f8fee17c6e3edf835dc6823d26afb9a7c8969c6710d1fabe2fb43f4e0c15c64f standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b @@ -900,22 +579,17 @@ CHECKSUMS timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.5) sha256=b852f924287ffb58a440856e862b056c8ad97e74b4b2526cee43e0771f40c25c - toml (0.3.0) sha256=0a91d0f76a9036e84e44f95693b12f58d358c1df3ac8e3b5271f2056ecc6e4b9 - toml-merge (7.1.0) - toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-aarch64-linux) sha256=55ffc7c87868cb45658338363d9eba51b4a8b0259aa88e4de368d2bd1d52fea4 tree_sitter_language_pack (1.13.3-arm64-darwin) sha256=bc2498db605f212a1dbd2465ed3f65190d7da786f6ed5d30fcf958121aeb4a5c tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 - typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 webrick (1.9.2) sha256=beb4a15fc474defed24a3bda4ffd88a490d517c9e4e6118c3edce59e45864131 yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 - yaml-merge (7.1.0) yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd @@ -923,7 +597,6 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 - zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH diff --git a/gems/rbs-merge/Rakefile b/gems/rbs-merge/Rakefile index 34f8ffe21..bd4e18e2d 100644 --- a/gems/rbs-merge/Rakefile +++ b/gems/rbs-merge/Rakefile @@ -130,23 +130,23 @@ end ### DUPLICATE DRIFT TASKS begin - require "kettle/drift" + require 'kettle/drift' Kettle::Drift.install_tasks rescue LoadError - desc("(stub) kettle:drift:check is unavailable") - task("kettle:drift:check") do + desc('(stub) kettle:drift:check is unavailable') + task('kettle:drift:check') do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc("(stub) kettle:drift:update is unavailable") - task("kettle:drift:update") do + desc('(stub) kettle:drift:update is unavailable') + task('kettle:drift:update') do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc("(stub) kettle:drift:force_update is unavailable") - task("kettle:drift:force_update") do + desc('(stub) kettle:drift:force_update is unavailable') + task('kettle:drift:force_update') do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc("(stub) kettle:drift is unavailable") - task("kettle:drift" => "kettle:drift:update") + desc('(stub) kettle:drift is unavailable') + task('kettle:drift' => 'kettle:drift:update') end ### TEMPLATING TASKS diff --git a/gems/rbs-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile b/gems/rbs-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile index dec650815..b8392fab0 100644 --- a/gems/rbs-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile +++ b/gems/rbs-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.1 -gem "benchmark", "~> 0.5", ">= 0.5.0" # Removed from Std Lib in Ruby 4.0 +gem 'benchmark', '~> 0.5', '>= 0.5.0' # Removed from Std Lib in Ruby 4.0 diff --git a/gems/rbs-merge/gemfiles/modular/benchmark/vHEAD.gemfile b/gems/rbs-merge/gemfiles/modular/benchmark/vHEAD.gemfile index e1eb20c5e..af214aafa 100644 --- a/gems/rbs-merge/gemfiles/modular/benchmark/vHEAD.gemfile +++ b/gems/rbs-merge/gemfiles/modular/benchmark/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.1 -gem "benchmark", github: "ruby/benchmark", branch: "master" +gem 'benchmark', github: 'ruby/benchmark', branch: 'master' diff --git a/gems/rbs-merge/gemfiles/modular/cgi/r4/v0.5.gemfile b/gems/rbs-merge/gemfiles/modular/cgi/r4/v0.5.gemfile index 19ed967c3..17ad97260 100644 --- a/gems/rbs-merge/gemfiles/modular/cgi/r4/v0.5.gemfile +++ b/gems/rbs-merge/gemfiles/modular/cgi/r4/v0.5.gemfile @@ -1 +1 @@ -gem "cgi", "~> 0.5" +gem 'cgi', '~> 0.5' diff --git a/gems/rbs-merge/gemfiles/modular/cgi/vHEAD.gemfile b/gems/rbs-merge/gemfiles/modular/cgi/vHEAD.gemfile index ef8b816ce..650fbf033 100644 --- a/gems/rbs-merge/gemfiles/modular/cgi/vHEAD.gemfile +++ b/gems/rbs-merge/gemfiles/modular/cgi/vHEAD.gemfile @@ -1 +1 @@ -gem "cgi", ">= 0.5" +gem 'cgi', '>= 0.5' diff --git a/gems/rbs-merge/gemfiles/modular/coverage.gemfile b/gems/rbs-merge/gemfiles/modular/coverage.gemfile index 52d737872..b93014b6b 100644 --- a/gems/rbs-merge/gemfiles/modular/coverage.gemfile +++ b/gems/rbs-merge/gemfiles/modular/coverage.gemfile @@ -4,11 +4,11 @@ # Set KETTLE_DEV_DEV=true for local development with path-based dependencies. # When false (default / CI), remote released gems are used. -if ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false").zero? +if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? # Coverage (remote/released) platform :mri do - gem "kettle-soup-cover", "~> 3.0", ">= 3.0.3", require: false + gem 'kettle-soup-cover', '~> 3.0', '>= 3.0.3', require: false end else - eval_gemfile "coverage_local.gemfile" + eval_gemfile 'coverage_local.gemfile' end diff --git a/gems/rbs-merge/gemfiles/modular/coverage_local.gemfile b/gems/rbs-merge/gemfiles/modular/coverage_local.gemfile index 17070985e..f564d6ae4 100644 --- a/gems/rbs-merge/gemfiles/modular/coverage_local.gemfile +++ b/gems/rbs-merge/gemfiles/modular/coverage_local.gemfile @@ -11,21 +11,19 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] -nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) +nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] +nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == "nomono" } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - if nomono_locked - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] - end + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked end -Kernel.send(:gem, "nomono", *nomono_activation_requirements) -require "nomono/bundler" +Kernel.send(:gem, 'nomono', *nomono_activation_requirements) +require 'nomono/bundler' local_gems = %w[kettle-dev kettle-test kettle-soup-cover kettle-drift] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) @@ -35,21 +33,21 @@ local_gems_to_eval = local_gems - %w[rbs-merge] - declared_gems platform :mri do eval_nomono_gems( gems: local_gems_to_eval, - prefix: "KETTLE_DEV", - path_env: "KETTLE_DEV_DEV", - vendored_gems_env: "VENDORED_GEMS", - vendor_gem_dir_env: "VENDOR_GEM_DIR", - debug_env: "KETTLE_DEV_DEBUG" + prefix: 'KETTLE_DEV', + path_env: 'KETTLE_DEV_DEV', + vendored_gems_env: 'VENDORED_GEMS', + vendor_gem_dir_env: 'VENDOR_GEM_DIR', + debug_env: 'KETTLE_DEV_DEBUG' ) - if ENV.fetch("GALTZO_FLOSS_DEV", "false").casecmp("false") != 0 + if ENV.fetch('GALTZO_FLOSS_DEV', 'false').casecmp('false') != 0 eval_nomono_gems( gems: %w[turbo_tests2], - prefix: "GALTZO_FLOSS", - path_env: "GALTZO_FLOSS_DEV", - vendored_gems_env: "GALTZO_FLOSS_VENDORED_GEMS", - vendor_gem_dir_env: "GALTZO_FLOSS_VENDOR_GEM_DIR", - debug_env: "GALTZO_FLOSS_DEBUG" + prefix: 'GALTZO_FLOSS', + path_env: 'GALTZO_FLOSS_DEV', + vendored_gems_env: 'GALTZO_FLOSS_VENDORED_GEMS', + vendor_gem_dir_env: 'GALTZO_FLOSS_VENDOR_GEM_DIR', + debug_env: 'GALTZO_FLOSS_DEBUG' ) end end diff --git a/gems/rbs-merge/gemfiles/modular/debug.gemfile b/gems/rbs-merge/gemfiles/modular/debug.gemfile index 4e15b1a3a..eed8d4d1e 100644 --- a/gems/rbs-merge/gemfiles/modular/debug.gemfile +++ b/gems/rbs-merge/gemfiles/modular/debug.gemfile @@ -13,10 +13,10 @@ platform :mri do # Debugging - Ensure ENV["DEBUG"] == "true" to use debuggers within spec suite # Use binding.break, binding.b, or debugger in code - gem "debug", ">= 1.1" # ruby >= 2.7 + gem 'debug', '>= 1.1' # ruby >= 2.7 # Dev Console - Binding.pry - Irb replacement # gem "pry", "~> 0.14" # ruby >= 2.0 end -gem "gem_bench", "~> 2.0", ">= 2.0.5" +gem 'gem_bench', '~> 2.0', '>= 2.0.5' diff --git a/gems/rbs-merge/gemfiles/modular/documentation.gemfile b/gems/rbs-merge/gemfiles/modular/documentation.gemfile index d8215416e..9d4535f12 100644 --- a/gems/rbs-merge/gemfiles/modular/documentation.gemfile +++ b/gems/rbs-merge/gemfiles/modular/documentation.gemfile @@ -7,20 +7,20 @@ # # Documentation -gem "kramdown", "~> 2.5", ">= 2.5.2", require: false # Ruby >= 2.5 -gem "kramdown-parser-gfm", "~> 1.1", require: false # Ruby >= 2.3 -gem "yaml-converter", "~> 0.2", ">= 0.2.3", require: false # Ruby >= 3.2 -gem "yard", "~> 0.9", ">= 0.9.45", require: false -gem "yard-junk", "~> 0.1", ">= 0.1.0", require: false # Ruby >= 3.1 -gem "yard-relative_markdown_links", "~> 0.6", require: false +gem 'kramdown', '~> 2.5', '>= 2.5.2', require: false # Ruby >= 2.5 +gem 'kramdown-parser-gfm', '~> 1.1', require: false # Ruby >= 2.3 +gem 'yaml-converter', '~> 0.2', '>= 0.2.3', require: false # Ruby >= 3.2 +gem 'yard', '~> 0.9', '>= 0.9.45', require: false +gem 'yard-junk', '~> 0.1', '>= 0.1.0', require: false # Ruby >= 3.1 +gem 'yard-relative_markdown_links', '~> 0.6', require: false -if ENV.fetch("GALTZO_FLOSS_DEV", "false").casecmp("false").zero? - gem "yard-fence", "~> 0.9", ">= 0.9.6", require: false # Ruby >= 3.2 - gem "yard-timekeeper", "~> 0.2", ">= 0.2.4", require: false - gem "yard-yaml", "~> 0.2", ">= 0.2.3", require: false +if ENV.fetch('GALTZO_FLOSS_DEV', 'false').casecmp('false').zero? + gem 'yard-fence', '~> 0.9', '>= 0.9.6', require: false # Ruby >= 3.2 + gem 'yard-timekeeper', '~> 0.2', '>= 0.2.4', require: false + gem 'yard-yaml', '~> 0.2', '>= 0.2.3', require: false else - eval_gemfile "documentation_local.gemfile" + eval_gemfile 'documentation_local.gemfile' end # Std Lib extractions -gem "rdoc", "~> 6.11", require: false unless ENV.fetch("KJ_FRAMEWORK_MATRIX_GEM", "") == "rdoc" +gem 'rdoc', '~> 6.11', require: false unless ENV.fetch('KJ_FRAMEWORK_MATRIX_GEM', '') == 'rdoc' diff --git a/gems/rbs-merge/gemfiles/modular/documentation_local.gemfile b/gems/rbs-merge/gemfiles/modular/documentation_local.gemfile index a8cdf0328..c90c8606e 100644 --- a/gems/rbs-merge/gemfiles/modular/documentation_local.gemfile +++ b/gems/rbs-merge/gemfiles/modular/documentation_local.gemfile @@ -11,21 +11,19 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] -nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) +nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] +nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == "nomono" } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - if nomono_locked - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] - end + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked end -Kernel.send(:gem, "nomono", *nomono_activation_requirements) -require "nomono/bundler" +Kernel.send(:gem, 'nomono', *nomono_activation_requirements) +require 'nomono/bundler' local_gems = %w[yard-fence yard-timekeeper yard-yaml] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) @@ -34,9 +32,9 @@ local_gems_to_eval = local_gems - %w[rbs-merge] - declared_gems # export GALTZO_FLOSS_DEV=/path/to/galtzo-floss eval_nomono_gems( gems: local_gems_to_eval, - prefix: "GALTZO_FLOSS", - path_env: "GALTZO_FLOSS_DEV", - vendored_gems_env: "GALTZO_FLOSS_VENDORED_GEMS", - vendor_gem_dir_env: "GALTZO_FLOSS_VENDOR_GEM_DIR", - debug_env: "GALTZO_FLOSS_DEBUG" + prefix: 'GALTZO_FLOSS', + path_env: 'GALTZO_FLOSS_DEV', + vendored_gems_env: 'GALTZO_FLOSS_VENDORED_GEMS', + vendor_gem_dir_env: 'GALTZO_FLOSS_VENDOR_GEM_DIR', + debug_env: 'GALTZO_FLOSS_DEBUG' ) diff --git a/gems/rbs-merge/gemfiles/modular/erb/r2/v3.0.gemfile b/gems/rbs-merge/gemfiles/modular/erb/r2/v3.0.gemfile index c03bd8d85..7c83a239b 100644 --- a/gems/rbs-merge/gemfiles/modular/erb/r2/v3.0.gemfile +++ b/gems/rbs-merge/gemfiles/modular/erb/r2/v3.0.gemfile @@ -1 +1 @@ -gem "erb", "~> 3.0" # ruby >= 2.7.0 +gem 'erb', '~> 3.0' # ruby >= 2.7.0 diff --git a/gems/rbs-merge/gemfiles/modular/erb/r3/v5.0.gemfile b/gems/rbs-merge/gemfiles/modular/erb/r3/v5.0.gemfile index 1bd029cc1..ec7ff451f 100644 --- a/gems/rbs-merge/gemfiles/modular/erb/r3/v5.0.gemfile +++ b/gems/rbs-merge/gemfiles/modular/erb/r3/v5.0.gemfile @@ -1 +1 @@ -gem "erb", "~> 6.0", ">= 6.0.6" # ruby >= 3.2.0 +gem 'erb', '~> 6.0', '>= 6.0.6' # ruby >= 3.2.0 diff --git a/gems/rbs-merge/gemfiles/modular/erb/r4/v5.0.gemfile b/gems/rbs-merge/gemfiles/modular/erb/r4/v5.0.gemfile index 1bd029cc1..ec7ff451f 100644 --- a/gems/rbs-merge/gemfiles/modular/erb/r4/v5.0.gemfile +++ b/gems/rbs-merge/gemfiles/modular/erb/r4/v5.0.gemfile @@ -1 +1 @@ -gem "erb", "~> 6.0", ">= 6.0.6" # ruby >= 3.2.0 +gem 'erb', '~> 6.0', '>= 6.0.6' # ruby >= 3.2.0 diff --git a/gems/rbs-merge/gemfiles/modular/erb/vHEAD.gemfile b/gems/rbs-merge/gemfiles/modular/erb/vHEAD.gemfile index 48fee4218..ea0101185 100644 --- a/gems/rbs-merge/gemfiles/modular/erb/vHEAD.gemfile +++ b/gems/rbs-merge/gemfiles/modular/erb/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 3.2 -gem "erb", github: "ruby/erb", branch: "master" +gem 'erb', github: 'ruby/erb', branch: 'master' diff --git a/gems/rbs-merge/gemfiles/modular/json/truffleruby_22_3.gemfile b/gems/rbs-merge/gemfiles/modular/json/truffleruby_22_3.gemfile index b0e69ab11..9b2f8d96a 100644 --- a/gems/rbs-merge/gemfiles/modular/json/truffleruby_22_3.gemfile +++ b/gems/rbs-merge/gemfiles/modular/json/truffleruby_22_3.gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -if RUBY_ENGINE == "truffleruby" && RUBY_ENGINE_VERSION.start_with?("22.3") +if RUBY_ENGINE == 'truffleruby' && RUBY_ENGINE_VERSION.start_with?('22.3') # TruffleRuby 22.3 ships the json default gem from its emulated MRI Ruby. - gem "json", "= 2.5.1" + gem 'json', '= 2.5.1' end diff --git a/gems/rbs-merge/gemfiles/modular/json/truffleruby_23_0.gemfile b/gems/rbs-merge/gemfiles/modular/json/truffleruby_23_0.gemfile index 7b2660a2b..d787a5ef4 100644 --- a/gems/rbs-merge/gemfiles/modular/json/truffleruby_23_0.gemfile +++ b/gems/rbs-merge/gemfiles/modular/json/truffleruby_23_0.gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -if RUBY_ENGINE == "truffleruby" && RUBY_ENGINE_VERSION.start_with?("23.0") +if RUBY_ENGINE == 'truffleruby' && RUBY_ENGINE_VERSION.start_with?('23.0') # TruffleRuby 23.0 ships the json default gem from its emulated MRI Ruby. - gem "json", "= 2.6.1" + gem 'json', '= 2.6.1' end diff --git a/gems/rbs-merge/gemfiles/modular/json/truffleruby_23_1.gemfile b/gems/rbs-merge/gemfiles/modular/json/truffleruby_23_1.gemfile index dfa21f2e4..d78486b0e 100644 --- a/gems/rbs-merge/gemfiles/modular/json/truffleruby_23_1.gemfile +++ b/gems/rbs-merge/gemfiles/modular/json/truffleruby_23_1.gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -if RUBY_ENGINE == "truffleruby" && RUBY_ENGINE_VERSION.start_with?("23.1") +if RUBY_ENGINE == 'truffleruby' && RUBY_ENGINE_VERSION.start_with?('23.1') # TruffleRuby 23.1 ships the json default gem from its emulated MRI Ruby. - gem "json", "= 2.6.3" + gem 'json', '= 2.6.3' end diff --git a/gems/rbs-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile b/gems/rbs-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile index 42e9d9bd4..e27f1bbae 100644 --- a/gems/rbs-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile +++ b/gems/rbs-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 -gem "mutex_m", "~> 0.2" +gem 'mutex_m', '~> 0.2' diff --git a/gems/rbs-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile b/gems/rbs-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile index 42e9d9bd4..e27f1bbae 100644 --- a/gems/rbs-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile +++ b/gems/rbs-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 -gem "mutex_m", "~> 0.2" +gem 'mutex_m', '~> 0.2' diff --git a/gems/rbs-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile b/gems/rbs-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile index 42e9d9bd4..e27f1bbae 100644 --- a/gems/rbs-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile +++ b/gems/rbs-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 -gem "mutex_m", "~> 0.2" +gem 'mutex_m', '~> 0.2' diff --git a/gems/rbs-merge/gemfiles/modular/mutex_m/vHEAD.gemfile b/gems/rbs-merge/gemfiles/modular/mutex_m/vHEAD.gemfile index 8af3b6fca..9dac2f6cb 100644 --- a/gems/rbs-merge/gemfiles/modular/mutex_m/vHEAD.gemfile +++ b/gems/rbs-merge/gemfiles/modular/mutex_m/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 (dependency of omniauth) -gem "mutex_m", github: "ruby/mutex_m", branch: "master" +gem 'mutex_m', github: 'ruby/mutex_m', branch: 'master' diff --git a/gems/rbs-merge/gemfiles/modular/optional.gemfile b/gems/rbs-merge/gemfiles/modular/optional.gemfile index 67f689c0f..dad9c8f51 100644 --- a/gems/rbs-merge/gemfiles/modular/optional.gemfile +++ b/gems/rbs-merge/gemfiles/modular/optional.gemfile @@ -10,4 +10,4 @@ # Required for kettle-pre-release # URL parsing with Unicode support (falls back to URI if not available) -gem "addressable", ">= 2.8", "< 3" # ruby >= 2.2 +gem 'addressable', '>= 2.8', '< 3' # ruby >= 2.2 diff --git a/gems/rbs-merge/gemfiles/modular/rspec.gemfile b/gems/rbs-merge/gemfiles/modular/rspec.gemfile index 72fdf8b7f..2af210a41 100644 --- a/gems/rbs-merge/gemfiles/modular/rspec.gemfile +++ b/gems/rbs-merge/gemfiles/modular/rspec.gemfile @@ -1,4 +1,4 @@ -gem "rspec_junit_formatter", - github: "pboling/rspec_junit_formatter", - branch: "main", - ref: "9e6bcaaedd49477b62878ed568dc4ada5cc7cb5e" +gem 'rspec_junit_formatter', + github: 'pboling/rspec_junit_formatter', + branch: 'main', + ref: '9e6bcaaedd49477b62878ed568dc4ada5cc7cb5e' diff --git a/gems/rbs-merge/gemfiles/modular/runtime_heads.gemfile b/gems/rbs-merge/gemfiles/modular/runtime_heads.gemfile index 02f134c7f..ebf17c529 100644 --- a/gems/rbs-merge/gemfiles/modular/runtime_heads.gemfile +++ b/gems/rbs-merge/gemfiles/modular/runtime_heads.gemfile @@ -8,4 +8,4 @@ # Test against HEAD of runtime dependencies so we can proactively file bugs -eval_gemfile("x_std_libs/vHEAD.gemfile") +eval_gemfile('x_std_libs/vHEAD.gemfile') diff --git a/gems/rbs-merge/gemfiles/modular/stringio/r2/v3.0.gemfile b/gems/rbs-merge/gemfiles/modular/stringio/r2/v3.0.gemfile index e85bb18ee..3616f4e3a 100644 --- a/gems/rbs-merge/gemfiles/modular/stringio/r2/v3.0.gemfile +++ b/gems/rbs-merge/gemfiles/modular/stringio/r2/v3.0.gemfile @@ -2,4 +2,4 @@ # NOT SEMVER # Version 3.0.7 dropped support for Ruby <= 2.7 # Version 3.0.0 dropped support for Ruby <= 2.4 -gem "stringio", ">= 3.0" +gem 'stringio', '>= 3.0' diff --git a/gems/rbs-merge/gemfiles/modular/stringio/r3/v3.0.gemfile b/gems/rbs-merge/gemfiles/modular/stringio/r3/v3.0.gemfile index e85bb18ee..3616f4e3a 100644 --- a/gems/rbs-merge/gemfiles/modular/stringio/r3/v3.0.gemfile +++ b/gems/rbs-merge/gemfiles/modular/stringio/r3/v3.0.gemfile @@ -2,4 +2,4 @@ # NOT SEMVER # Version 3.0.7 dropped support for Ruby <= 2.7 # Version 3.0.0 dropped support for Ruby <= 2.4 -gem "stringio", ">= 3.0" +gem 'stringio', '>= 3.0' diff --git a/gems/rbs-merge/gemfiles/modular/stringio/r4/v3.0.gemfile b/gems/rbs-merge/gemfiles/modular/stringio/r4/v3.0.gemfile index e85bb18ee..3616f4e3a 100644 --- a/gems/rbs-merge/gemfiles/modular/stringio/r4/v3.0.gemfile +++ b/gems/rbs-merge/gemfiles/modular/stringio/r4/v3.0.gemfile @@ -2,4 +2,4 @@ # NOT SEMVER # Version 3.0.7 dropped support for Ruby <= 2.7 # Version 3.0.0 dropped support for Ruby <= 2.4 -gem "stringio", ">= 3.0" +gem 'stringio', '>= 3.0' diff --git a/gems/rbs-merge/gemfiles/modular/stringio/vHEAD.gemfile b/gems/rbs-merge/gemfiles/modular/stringio/vHEAD.gemfile index 5f2a74126..78f5f5d8a 100644 --- a/gems/rbs-merge/gemfiles/modular/stringio/vHEAD.gemfile +++ b/gems/rbs-merge/gemfiles/modular/stringio/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 (dependency of omniauth) -gem "stringio", github: "ruby/stringio", branch: "master" +gem 'stringio', github: 'ruby/stringio', branch: 'master' diff --git a/gems/rbs-merge/gemfiles/modular/style.gemfile b/gems/rbs-merge/gemfiles/modular/style.gemfile index 35de4dcd6..4dbcc02c0 100644 --- a/gems/rbs-merge/gemfiles/modular/style.gemfile +++ b/gems/rbs-merge/gemfiles/modular/style.gemfile @@ -9,23 +9,23 @@ # Style tasks run on the latest Ruby; RuboCop-LTS selects the compatibility # rules for the configured Ruby floor independently from task dependency floors. -gem "reek", "~> 6.5", ">= 6.5.0" +gem 'reek', '~> 6.5', '>= 6.5.0' platform :mri do - gem "appraisal2-rubocop", "~> 1.0", ">= 1.0.0", require: false - gem "rubocop-gradual", "~> 0.4", ">= 0.4.0" - gem "rubocop-minitest", "~> 0.40", ">= 0.40.0" - gem "rubocop-on-rbs", "~> 2.0", ">= 2.0.0" # ruby >= 3.2.0 + gem 'appraisal2-rubocop', '~> 1.0', '>= 1.0.0', require: false + gem 'rubocop-gradual', '~> 0.4', '>= 0.4.0' + gem 'rubocop-minitest', '~> 0.40', '>= 0.40.0' + gem 'rubocop-on-rbs', '~> 2.0', '>= 2.0.0' # ruby >= 3.2.0 # gem "rubocop", "~> 1.73", ">= 1.73.2" # constrained by standard - gem "rubocop-packaging", "~> 0.6", ">= 0.6.0" - gem "standard", "~> 1.56", ">= 1.56.0" + gem 'rubocop-packaging', '~> 0.6', '>= 0.6.0' + gem 'standard', '~> 1.56', '>= 1.56.0' - if ENV.fetch("RUBOCOP_LTS_LOCAL", "false").casecmp("false").zero? + if ENV.fetch('RUBOCOP_LTS_LOCAL', 'false').casecmp('false').zero? declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) - gem "rubocop-lts", "~> 24.2", ">= 24.2.1" unless declared_gems.include?("rubocop-lts") - gem "rubocop-lts-rspec", "~> 1.0", ">= 1.0.5" unless declared_gems.include?("rubocop-lts-rspec") - gem "rubocop-ruby3_2", "~> 3.0", ">= 3.0.6" unless declared_gems.include?("rubocop-ruby3_2") + gem 'rubocop-lts', '~> 24.2', '>= 24.2.1' unless declared_gems.include?('rubocop-lts') + gem 'rubocop-lts-rspec', '~> 1.0', '>= 1.0.5' unless declared_gems.include?('rubocop-lts-rspec') + gem 'rubocop-ruby3_2', '~> 3.0', '>= 3.0.6' unless declared_gems.include?('rubocop-ruby3_2') else - eval_gemfile("style_local.gemfile") + eval_gemfile('style_local.gemfile') end end diff --git a/gems/rbs-merge/gemfiles/modular/style_local.gemfile b/gems/rbs-merge/gemfiles/modular/style_local.gemfile index dbdea4662..9f5254808 100644 --- a/gems/rbs-merge/gemfiles/modular/style_local.gemfile +++ b/gems/rbs-merge/gemfiles/modular/style_local.gemfile @@ -14,21 +14,19 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] -nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) +nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] +nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == "nomono" } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - if nomono_locked - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] - end + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked end -Kernel.send(:gem, "nomono", *nomono_activation_requirements) -require "nomono/bundler" +Kernel.send(:gem, 'nomono', *nomono_activation_requirements) +require 'nomono/bundler' local_gems = %w[rubocop-lts rubocop-lts-rspec rubocop-ruby3_2 standard-rubocop-lts] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) @@ -38,11 +36,11 @@ local_gems_to_eval = local_gems - %w[rbs-merge] - declared_gems platform :mri do eval_nomono_gems( gems: local_gems_to_eval, - prefix: "RUBOCOP_LTS", - path_env: "RUBOCOP_LTS_LOCAL", - vendored_gems_env: "VENDORED_GEMS", - vendor_gem_dir_env: "VENDOR_GEM_DIR", - debug_env: "RUBOCOP_LTS_DEBUG", - root: ["src", "rubocop-lts"] + prefix: 'RUBOCOP_LTS', + path_env: 'RUBOCOP_LTS_LOCAL', + vendored_gems_env: 'VENDORED_GEMS', + vendor_gem_dir_env: 'VENDOR_GEM_DIR', + debug_env: 'RUBOCOP_LTS_DEBUG', + root: %w[src rubocop-lts] ) end diff --git a/gems/rbs-merge/gemfiles/modular/templating.gemfile b/gems/rbs-merge/gemfiles/modular/templating.gemfile index 47138ffbb..a672de184 100644 --- a/gems/rbs-merge/gemfiles/modular/templating.gemfile +++ b/gems/rbs-merge/gemfiles/modular/templating.gemfile @@ -1,18 +1,18 @@ # frozen_string_literal: true -structuredmerge_remote = ENV.fetch("STRUCTUREDMERGE_DEV", "false").casecmp("false").zero? -kettle_remote = ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false").zero? +structuredmerge_remote = ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false').zero? +kettle_remote = ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? if structuredmerge_remote # Parser dependencies for released installs. - gem "tree_sitter_language_pack", "~> 1.13", ">= 1.13.3" + gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' # Merge recipes for released installs. - gem "kettle-jem", ">= 7.0" + gem 'kettle-jem', '>= 7.0' end if kettle_remote # Template/plugin checks for released installs. - gem "kettle-drift", "~> 1.0", ">= 1.0.6", require: false + gem 'kettle-drift', '~> 1.0', '>= 1.0.6', require: false end # Set STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local development with path-based dependencies. @@ -21,4 +21,4 @@ end # # Set KETTLE_DEV_DEV=/path/to/my for local development with Kettle plugin gems. # When false (default / CI), released Kettle plugin gems are used. -eval_gemfile "templating_local.gemfile" unless structuredmerge_remote && kettle_remote +eval_gemfile 'templating_local.gemfile' unless structuredmerge_remote && kettle_remote diff --git a/gems/rbs-merge/gemfiles/modular/templating_local.gemfile b/gems/rbs-merge/gemfiles/modular/templating_local.gemfile index 3391bac54..bdeeaa089 100644 --- a/gems/rbs-merge/gemfiles/modular/templating_local.gemfile +++ b/gems/rbs-merge/gemfiles/modular/templating_local.gemfile @@ -12,21 +12,19 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] -nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) +nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] +nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == "nomono" } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - if nomono_locked - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] - end + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked end -Kernel.send(:gem, "nomono", *nomono_activation_requirements) -require "nomono/bundler" +Kernel.send(:gem, 'nomono', *nomono_activation_requirements) +require 'nomono/bundler' structuredmerge_local_gems = %w[ tree_haver @@ -69,25 +67,25 @@ structuredmerge_local_gems_to_eval = structuredmerge_local_gems - %w[rbs-merge] kettle_dev_local_gems_to_eval = kettle_dev_local_gems - %w[rbs-merge] - declared_gems platform :mri do - if ENV.fetch("STRUCTUREDMERGE_DEV", "false").casecmp("false") != 0 + if ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false') != 0 eval_nomono_gems( gems: structuredmerge_local_gems_to_eval, - prefix: "STRUCTUREDMERGE", - path_env: "STRUCTUREDMERGE_DEV", - vendored_gems_env: "VENDORED_GEMS", - vendor_gem_dir_env: "VENDOR_GEM_DIR", - debug_env: "STRUCTUREDMERGE_DEBUG" + prefix: 'STRUCTUREDMERGE', + path_env: 'STRUCTUREDMERGE_DEV', + vendored_gems_env: 'VENDORED_GEMS', + vendor_gem_dir_env: 'VENDOR_GEM_DIR', + debug_env: 'STRUCTUREDMERGE_DEBUG' ) end - if ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false") != 0 + if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false') != 0 eval_nomono_gems( gems: kettle_dev_local_gems_to_eval, - prefix: "KETTLE_DEV", - path_env: "KETTLE_DEV_DEV", - vendored_gems_env: "VENDORED_GEMS", - vendor_gem_dir_env: "VENDOR_GEM_DIR", - debug_env: "KETTLE_DEV_DEBUG" + prefix: 'KETTLE_DEV', + path_env: 'KETTLE_DEV_DEV', + vendored_gems_env: 'VENDORED_GEMS', + vendor_gem_dir_env: 'VENDOR_GEM_DIR', + debug_env: 'KETTLE_DEV_DEBUG' ) end end diff --git a/gems/rbs-merge/gemfiles/modular/webrick/r4/v1.9.gemfile b/gems/rbs-merge/gemfiles/modular/webrick/r4/v1.9.gemfile index eaab4a473..b1329ba84 100644 --- a/gems/rbs-merge/gemfiles/modular/webrick/r4/v1.9.gemfile +++ b/gems/rbs-merge/gemfiles/modular/webrick/r4/v1.9.gemfile @@ -1 +1 @@ -gem "webrick", "~> 1.9" +gem 'webrick', '~> 1.9' diff --git a/gems/rbs-merge/gemfiles/modular/webrick/vHEAD.gemfile b/gems/rbs-merge/gemfiles/modular/webrick/vHEAD.gemfile index 8a789b634..c7e6f81a1 100644 --- a/gems/rbs-merge/gemfiles/modular/webrick/vHEAD.gemfile +++ b/gems/rbs-merge/gemfiles/modular/webrick/vHEAD.gemfile @@ -1 +1 @@ -gem "webrick", ">= 1.9" +gem 'webrick', '>= 1.9' diff --git a/gems/rbs-merge/gemfiles/modular/x_std_libs.gemfile b/gems/rbs-merge/gemfiles/modular/x_std_libs.gemfile index 77aad43f2..b1f43c097 100644 --- a/gems/rbs-merge/gemfiles/modular/x_std_libs.gemfile +++ b/gems/rbs-merge/gemfiles/modular/x_std_libs.gemfile @@ -1,12 +1,12 @@ ### Std Lib Extracted Gems ruby_version = Gem::Version.new(RUBY_VERSION) -if ruby_version >= Gem::Version.new("4.0") - eval_gemfile "x_std_libs/r4/libs.gemfile" -elsif ruby_version >= Gem::Version.new("3.2") - eval_gemfile "x_std_libs/r3/libs.gemfile" -elsif ruby_version >= Gem::Version.new("3.1") - eval_gemfile "x_std_libs/r3.1/libs.gemfile" +if ruby_version >= Gem::Version.new('4.0') + eval_gemfile 'x_std_libs/r4/libs.gemfile' +elsif ruby_version >= Gem::Version.new('3.2') + eval_gemfile 'x_std_libs/r3/libs.gemfile' +elsif ruby_version >= Gem::Version.new('3.1') + eval_gemfile 'x_std_libs/r3.1/libs.gemfile' else - eval_gemfile "x_std_libs/r2/libs.gemfile" + eval_gemfile 'x_std_libs/r2/libs.gemfile' end diff --git a/gems/rbs-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile b/gems/rbs-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile index 441c4f03a..16a5e3d70 100644 --- a/gems/rbs-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile +++ b/gems/rbs-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile @@ -1,3 +1,3 @@ -eval_gemfile "../../erb/r2/v3.0.gemfile" -eval_gemfile "../../mutex_m/r2/v0.3.gemfile" -eval_gemfile "../../stringio/r2/v3.0.gemfile" +eval_gemfile '../../erb/r2/v3.0.gemfile' +eval_gemfile '../../mutex_m/r2/v0.3.gemfile' +eval_gemfile '../../stringio/r2/v3.0.gemfile' diff --git a/gems/rbs-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile b/gems/rbs-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile index c293a3ddd..220ff95c1 100644 --- a/gems/rbs-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile +++ b/gems/rbs-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile @@ -1,3 +1,3 @@ -eval_gemfile "../../erb/r3/v5.0.gemfile" -eval_gemfile "../../mutex_m/r3/v0.3.gemfile" -eval_gemfile "../../stringio/r3/v3.0.gemfile" +eval_gemfile '../../erb/r3/v5.0.gemfile' +eval_gemfile '../../mutex_m/r3/v0.3.gemfile' +eval_gemfile '../../stringio/r3/v3.0.gemfile' diff --git a/gems/rbs-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile b/gems/rbs-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile index eb5574247..e2f6501eb 100644 --- a/gems/rbs-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile +++ b/gems/rbs-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile @@ -1,6 +1,6 @@ -eval_gemfile "../../erb/r4/v5.0.gemfile" -eval_gemfile "../../mutex_m/r4/v0.3.gemfile" -eval_gemfile "../../stringio/r4/v3.0.gemfile" -eval_gemfile "../../benchmark/r4/v0.5.gemfile" -eval_gemfile "../../cgi/r4/v0.5.gemfile" -eval_gemfile "../../webrick/r4/v1.9.gemfile" +eval_gemfile '../../erb/r4/v5.0.gemfile' +eval_gemfile '../../mutex_m/r4/v0.3.gemfile' +eval_gemfile '../../stringio/r4/v3.0.gemfile' +eval_gemfile '../../benchmark/r4/v0.5.gemfile' +eval_gemfile '../../cgi/r4/v0.5.gemfile' +eval_gemfile '../../webrick/r4/v1.9.gemfile' diff --git a/gems/rbs-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile b/gems/rbs-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile index d4d5b16c9..ab75cccf1 100644 --- a/gems/rbs-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile +++ b/gems/rbs-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile @@ -1,6 +1,6 @@ -eval_gemfile "../erb/vHEAD.gemfile" -eval_gemfile "../mutex_m/vHEAD.gemfile" -eval_gemfile "../stringio/vHEAD.gemfile" -eval_gemfile "../benchmark/vHEAD.gemfile" -eval_gemfile "../cgi/vHEAD.gemfile" -eval_gemfile "../webrick/vHEAD.gemfile" +eval_gemfile '../erb/vHEAD.gemfile' +eval_gemfile '../mutex_m/vHEAD.gemfile' +eval_gemfile '../stringio/vHEAD.gemfile' +eval_gemfile '../benchmark/vHEAD.gemfile' +eval_gemfile '../cgi/vHEAD.gemfile' +eval_gemfile '../webrick/vHEAD.gemfile' diff --git a/gems/rbs-merge/lib/rbs/merge/version.rb b/gems/rbs-merge/lib/rbs/merge/version.rb index 8e09fbec5..a96a21ddc 100644 --- a/gems/rbs-merge/lib/rbs/merge/version.rb +++ b/gems/rbs-merge/lib/rbs/merge/version.rb @@ -3,7 +3,7 @@ module Rbs module Merge module Version - VERSION = "7.1.0" + VERSION = '7.1.0' end VERSION = Version::VERSION # Traditional Constant Location end diff --git a/gems/toml-merge/Gemfile.lock b/gems/toml-merge/Gemfile.lock index 5e197a097..956745ef3 100644 --- a/gems/toml-merge/Gemfile.lock +++ b/gems/toml-merge/Gemfile.lock @@ -6,6 +6,266 @@ PATH tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly + specs: + ast-crispr-markdown-markly (7.1.0) + ast-crispr (= 7.1.0) + markly-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism + specs: + ast-crispr-ruby-prism (7.1.0) + ast-crispr (= 7.1.0) + prism-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr + specs: + ast-crispr (7.1.0) + ast-merge (= 7.1.0) + service_actor (~> 3.9) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git + specs: + ast-merge-git (7.1.0) + ast-merge (= 7.1.0) + json-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge + specs: + ast-merge (7.1.0) + benchmark + token-resolver (~> 2.0, >= 2.0.4) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template + specs: + ast-template (7.1.0) + ast-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge + specs: + bash-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge + specs: + binary-merge (7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge + specs: + citrus-toml-merge (7.1.0) + toml-merge (= 7.1.0) + toml-rb (~> 4.1) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge + specs: + commonmarker-merge (7.1.0) + commonmarker (~> 2.2) + markdown-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge + specs: + dotenv-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge + specs: + go-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge + specs: + json-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem + specs: + kettle-jem (7.1.0) + addressable (>= 2.8, < 3) + ast-crispr-markdown-markly (= 7.1.0) + ast-crispr-ruby-prism (= 7.1.0) + ast-merge (= 7.1.0) + bash-merge (= 7.1.0) + citrus-toml-merge (= 7.1.0) + commonmarker-merge (= 7.1.0) + dotenv-merge (= 7.1.0) + json-merge (= 7.1.0) + kettle-dev (~> 2.3, >= 2.3.5) + kettle-rb (~> 0.1, >= 0.1.4) + kramdown-merge (= 7.1.0) + markdown-merge (= 7.1.0) + markly-merge (= 7.1.0) + prism-merge (= 7.1.0) + psych-merge (= 7.1.0) + rbs (>= 3.10) + rbs-merge (= 7.1.0) + ruby-merge (= 7.1.0) + token-resolver (~> 2.0, >= 2.0.4) + toml-merge (= 7.1.0) + toml-rb (~> 4.2) + tree_haver (= 7.1.0) + yaml-merge (= 7.1.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge + specs: + kramdown-merge (7.1.0) + kramdown (~> 2.5) + markdown-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge + specs: + markdown-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge + specs: + markly-merge (7.1.0) + markdown-merge (= 7.1.0) + markly (~> 0.9) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge + specs: + parslet-toml-merge (7.1.0) + toml (~> 0.3) + toml-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge + specs: + plain-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge + specs: + prism-merge (7.1.0) + prism (~> 1.6) + ruby-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge + specs: + psych-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + yaml-merge (= 7.1.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge + specs: + rbs-merge (7.1.0) + ast-merge (= 7.1.0) + rbs (>= 3.10) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge + specs: + ruby-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge + specs: + rust-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb + specs: + smorg-rb (7.1.0) + ast-merge (= 7.1.0) + ast-merge-git (= 7.1.0) + diff-lcs (~> 1.5) + go-merge (= 7.1.0) + json-merge (= 7.1.0) + kettle-jem (= 7.1.0) + markly-merge (= 7.1.0) + plain-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver + specs: + tree_haver (7.1.0) + citrus (~> 3.0) + parslet (~> 2.0) + tree_sitter_language_pack (>= 1.13.2, < 2.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge + specs: + typescript-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge + specs: + yaml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge + specs: + zip-merge (7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + GEM remote: https://gem.coop/ specs: @@ -21,11 +281,6 @@ GEM rubocop (>= 1.0) version_gem (~> 1.1, >= 1.1.14) ast (2.4.3) - ast-merge (7.1.0) - benchmark - token-resolver (~> 2.0, >= 2.0.4) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) backports (3.25.3) benchmark (0.5.0) bigdecimal (4.1.2) @@ -35,6 +290,11 @@ GEM cgi (0.5.2) citrus (3.0.2) cmdparse (3.0.7) + commonmarker (2.9.0-aarch64-linux) + commonmarker (2.9.0-aarch64-linux-musl) + commonmarker (2.9.0-arm64-darwin) + commonmarker (2.9.0-x86_64-linux) + commonmarker (2.9.0-x86_64-linux-musl) concurrent-ruby (1.3.8) date (3.5.1) debug (1.11.1) @@ -97,6 +357,8 @@ GEM kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) + kettle-drift (1.0.6) + version_gem (~> 1.1, >= 1.1.14) kettle-rb (0.1.5) kettle-soup-cover (3.0.4) kettle-wash (~> 0.1, >= 0.1.0) @@ -125,6 +387,7 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) + markly (0.16.0) mutex_m (0.3.0) nokogiri (1.19.4-aarch64-linux-gnu) racc (~> 1.4) @@ -287,6 +550,8 @@ GEM ruby-progressbar (1.13.0) ruby_engine (2.0.3) ruby_version (1.0.3) + service_actor (3.9.4) + zeitwerk (>= 1.0) silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) @@ -341,11 +606,11 @@ GEM token-resolver (2.0.5) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.14) - tree_haver (7.1.0) - citrus (~> 3.0) - parslet (~> 2.0) - tree_sitter_language_pack (>= 1.13.2, < 2.0) - version_gem (~> 1.1, >= 1.1.9) + toml (0.3.0) + parslet (>= 1.8.0, < 3.0.0) + toml-rb (4.2.0) + citrus (~> 3.0, > 3.0) + racc (~> 1.7) tree_sitter_language_pack (1.13.3-aarch64-linux) sorbet-runtime (~> 0.5) tree_sitter_language_pack (1.13.3-arm64-darwin) @@ -400,23 +665,46 @@ DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) appraisal2-rubocop (~> 1.0, >= 1.0.0) + ast-crispr! + ast-crispr-markdown-markly! + ast-crispr-ruby-prism! + ast-merge! + ast-merge-git! + ast-template! + bash-merge! benchmark (~> 0.5, >= 0.5.0) + binary-merge! bundler-audit (~> 0.9.3) cgi (~> 0.5) + citrus-toml-merge! + commonmarker-merge! debug (>= 1.1) + dotenv-merge! erb (~> 6.0, >= 6.0.6) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.0) + go-merge! irb (~> 1.17) + json-merge! kettle-dev (~> 2.0, >= 2.2.25) + kettle-drift (~> 1.0, >= 1.0.6) + kettle-jem! kettle-soup-cover (~> 3.0, >= 3.0.3) kettle-test (~> 2.0, >= 2.0.9) kramdown (~> 2.5, >= 2.5.2) + kramdown-merge! kramdown-parser-gfm (~> 1.1) + markdown-merge! + markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) + parslet-toml-merge! + plain-merge! + prism-merge! + psych-merge! rake (~> 13.0) rbs (>= 3.0) + rbs-merge! rdoc (~> 6.11) reek (~> 6.5, >= 6.5.0) require_bench (~> 1.0, >= 1.0.4) @@ -427,20 +715,27 @@ DEPENDENCIES rubocop-on-rbs (~> 2.0, >= 2.0.0) rubocop-packaging (~> 0.6, >= 0.6.0) rubocop-ruby3_2 (~> 3.0, >= 3.0.6) + ruby-merge! ruby-progressbar (~> 1.13) + rust-merge! + smorg-rb! standard (~> 1.56, >= 1.56.0) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) toml-merge! + tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) + typescript-merge! webrick (~> 1.9) yaml-converter (~> 0.2, >= 0.2.3) + yaml-merge! yard (~> 0.9, >= 0.9.45) yard-fence (~> 0.9, >= 0.9.6) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) yard-timekeeper (~> 0.2, >= 0.2.4) yard-yaml (~> 0.2, >= 0.2.3) + zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af @@ -448,20 +743,35 @@ CHECKSUMS appraisal2 (3.2.0) sha256=ccd0b767ac4060cd7af6d16747459b6990f49c39c7b4fb1f7d1146b1e97c492f appraisal2-rubocop (1.0.0) sha256=b71410fbb014befda5340605a605b7f6f3f012739baf0acc5b4351b592c3258d ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 + ast-crispr (7.1.0) + ast-crispr-markdown-markly (7.1.0) + ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) + ast-merge-git (7.1.0) + ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 + bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd + binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 + citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 + commonmarker (2.9.0-aarch64-linux) sha256=e2b4aadb9a2cfa4e206582641ce3a49465549ac1ed4c289fdd63b78d8f24579c + commonmarker (2.9.0-aarch64-linux-musl) sha256=1cf4d2821f2a7e64945f1ed7c4eeced586fdb27ea7fe7337788802cf8f57cfca + commonmarker (2.9.0-arm64-darwin) sha256=1748dbfa4f5813b0d2a14bb4bbfa65a4ec293aa1c825016d60029ee0e132b046 + commonmarker (2.9.0-x86_64-linux) sha256=8cfe92970eef585a19ddf6613224b91cab64d6029834661bda801f877c9c7f43 + commonmarker (2.9.0-x86_64-linux-musl) sha256=293921398b839f79ceaf55010e061357e34f053822c3b003cd0be6686176335e + commonmarker-merge (7.1.0) concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 + dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -474,20 +784,28 @@ CHECKSUMS gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f + go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 + json-merge (7.1.0) kettle-dev (2.3.8) sha256=9d716ff21c660a730cb4e8d41e2e2f0630a28167a354b6e2924e242102aef72c + kettle-drift (1.0.6) sha256=46eda08fa4411d1f3c6682a95eef1c9df4e94611b3949f49d4c7b43c0ed356a3 + kettle-jem (7.1.0) kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f kettle-soup-cover (3.0.4) kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa + kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 + markdown-merge (7.1.0) + markly (0.16.0) sha256=6f70d79e385b1efc9e171f74c81628826259039fe6c778e03c3924c71dac5511 + markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-aarch64-linux-gnu) sha256=1269fb644a6de405057a53dd5c762b1209b43ca7424f839454d3dbc677c31a8f nokogiri (1.19.4-aarch64-linux-musl) sha256=35c65b9ce72b3bb03207bdbe7067915019dc18c1b9b59139684bd6690fdd01af @@ -501,15 +819,20 @@ CHECKSUMS parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 + parslet-toml-merge (7.1.0) + plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 + prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 + psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 + rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb @@ -544,15 +867,19 @@ CHECKSUMS rubocop-rspec_rails (2.32.0) sha256=4a0d641c72f6ebb957534f539d9d0a62c47abd8ce0d0aeee1ef4701e892a9100 rubocop-ruby3_2 (3.0.7) sha256=f53dd6d286fb05186214fc6ec116783e7f837030918e8931c05de773e98f8466 rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 + ruby-merge (7.1.0) ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 + rust-merge (7.1.0) + service_actor (3.9.4) sha256=e63b523630b9a7e62959b2a90113b08d2565b5de9c148557b281ef847c9539ce silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed + smorg-rb (7.1.0) sorbet-runtime (0.6.13347) sha256=54e7221d9f4b63f58aec79f3043752a9ba7810347c6ae0d903531591cc2d5f01 standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b @@ -567,18 +894,22 @@ CHECKSUMS timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.5) sha256=b852f924287ffb58a440856e862b056c8ad97e74b4b2526cee43e0771f40c25c + toml (0.3.0) sha256=0a91d0f76a9036e84e44f95693b12f58d358c1df3ac8e3b5271f2056ecc6e4b9 toml-merge (7.1.0) + toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-aarch64-linux) sha256=55ffc7c87868cb45658338363d9eba51b4a8b0259aa88e4de368d2bd1d52fea4 tree_sitter_language_pack (1.13.3-arm64-darwin) sha256=bc2498db605f212a1dbd2465ed3f65190d7da786f6ed5d30fcf958121aeb4a5c tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 + typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 webrick (1.9.2) sha256=beb4a15fc474defed24a3bda4ffd88a490d517c9e4e6118c3edce59e45864131 yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 + yaml-merge (7.1.0) yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd @@ -586,6 +917,7 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 + zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH diff --git a/gems/yaml-merge/.simplecov b/gems/yaml-merge/.simplecov index bc1f93dda..6fec330b2 100644 --- a/gems/yaml-merge/.simplecov +++ b/gems/yaml-merge/.simplecov @@ -4,15 +4,11 @@ # yaml-merge will then preserve content between those markers across template runs. # kettle-jem:unfreeze -require 'kettle/soup/cover/config' - # Minimum coverage thresholds are set by kettle-soup-cover. # They are controlled by ENV variables loaded by `mise` from `mise.toml` # (with optional machine-local overrides in `.env.local`). # If the values for minimum coverage need to change, they should be changed both there, # and in 2 places in .github/workflows/coverage.yml. -SimpleCov.start do - track_files 'lib/**/*.rb' - track_files 'lib/**/*.rake' - track_files 'exe/*.rb' +SimpleCov.configure do + cover "lib/**/*.rb", "lib/**/*.rake", "exe/*.rb" end diff --git a/gems/yaml-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile b/gems/yaml-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile index b8392fab0..dec650815 100644 --- a/gems/yaml-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile +++ b/gems/yaml-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.1 -gem 'benchmark', '~> 0.5', '>= 0.5.0' # Removed from Std Lib in Ruby 4.0 +gem "benchmark", "~> 0.5", ">= 0.5.0" # Removed from Std Lib in Ruby 4.0 diff --git a/gems/yaml-merge/gemfiles/modular/benchmark/vHEAD.gemfile b/gems/yaml-merge/gemfiles/modular/benchmark/vHEAD.gemfile index af214aafa..e1eb20c5e 100644 --- a/gems/yaml-merge/gemfiles/modular/benchmark/vHEAD.gemfile +++ b/gems/yaml-merge/gemfiles/modular/benchmark/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.1 -gem 'benchmark', github: 'ruby/benchmark', branch: 'master' +gem "benchmark", github: "ruby/benchmark", branch: "master" diff --git a/gems/yaml-merge/gemfiles/modular/cgi/r4/v0.5.gemfile b/gems/yaml-merge/gemfiles/modular/cgi/r4/v0.5.gemfile index 17ad97260..19ed967c3 100644 --- a/gems/yaml-merge/gemfiles/modular/cgi/r4/v0.5.gemfile +++ b/gems/yaml-merge/gemfiles/modular/cgi/r4/v0.5.gemfile @@ -1 +1 @@ -gem 'cgi', '~> 0.5' +gem "cgi", "~> 0.5" diff --git a/gems/yaml-merge/gemfiles/modular/cgi/vHEAD.gemfile b/gems/yaml-merge/gemfiles/modular/cgi/vHEAD.gemfile index 650fbf033..ef8b816ce 100644 --- a/gems/yaml-merge/gemfiles/modular/cgi/vHEAD.gemfile +++ b/gems/yaml-merge/gemfiles/modular/cgi/vHEAD.gemfile @@ -1 +1 @@ -gem 'cgi', '>= 0.5' +gem "cgi", ">= 0.5" diff --git a/gems/yaml-merge/gemfiles/modular/coverage.gemfile b/gems/yaml-merge/gemfiles/modular/coverage.gemfile index b93014b6b..52d737872 100644 --- a/gems/yaml-merge/gemfiles/modular/coverage.gemfile +++ b/gems/yaml-merge/gemfiles/modular/coverage.gemfile @@ -4,11 +4,11 @@ # Set KETTLE_DEV_DEV=true for local development with path-based dependencies. # When false (default / CI), remote released gems are used. -if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? +if ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false").zero? # Coverage (remote/released) platform :mri do - gem 'kettle-soup-cover', '~> 3.0', '>= 3.0.3', require: false + gem "kettle-soup-cover", "~> 3.0", ">= 3.0.3", require: false end else - eval_gemfile 'coverage_local.gemfile' + eval_gemfile "coverage_local.gemfile" end diff --git a/gems/yaml-merge/gemfiles/modular/coverage_local.gemfile b/gems/yaml-merge/gemfiles/modular/coverage_local.gemfile index 3a33c2f15..d1441e2fa 100644 --- a/gems/yaml-merge/gemfiles/modular/coverage_local.gemfile +++ b/gems/yaml-merge/gemfiles/modular/coverage_local.gemfile @@ -11,19 +11,21 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] -nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) +nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] +nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == "nomono" } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + if nomono_locked + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] + end end -Kernel.send(:gem, 'nomono', *nomono_activation_requirements) -require 'nomono/bundler' +Kernel.send(:gem, "nomono", *nomono_activation_requirements) +require "nomono/bundler" local_gems = %w[kettle-dev kettle-test kettle-soup-cover kettle-drift] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) @@ -33,21 +35,21 @@ local_gems_to_eval = local_gems - %w[yaml-merge] - declared_gems platform :mri do eval_nomono_gems( gems: local_gems_to_eval, - prefix: 'KETTLE_DEV', - path_env: 'KETTLE_DEV_DEV', - vendored_gems_env: 'VENDORED_GEMS', - vendor_gem_dir_env: 'VENDOR_GEM_DIR', - debug_env: 'KETTLE_DEV_DEBUG' + prefix: "KETTLE_DEV", + path_env: "KETTLE_DEV_DEV", + vendored_gems_env: "VENDORED_GEMS", + vendor_gem_dir_env: "VENDOR_GEM_DIR", + debug_env: "KETTLE_DEV_DEBUG" ) - if ENV.fetch('GALTZO_FLOSS_DEV', 'false').casecmp('false') != 0 + if ENV.fetch("GALTZO_FLOSS_DEV", "false").casecmp("false") != 0 eval_nomono_gems( gems: %w[turbo_tests2], - prefix: 'GALTZO_FLOSS', - path_env: 'GALTZO_FLOSS_DEV', - vendored_gems_env: 'GALTZO_FLOSS_VENDORED_GEMS', - vendor_gem_dir_env: 'GALTZO_FLOSS_VENDOR_GEM_DIR', - debug_env: 'GALTZO_FLOSS_DEBUG' + prefix: "GALTZO_FLOSS", + path_env: "GALTZO_FLOSS_DEV", + vendored_gems_env: "GALTZO_FLOSS_VENDORED_GEMS", + vendor_gem_dir_env: "GALTZO_FLOSS_VENDOR_GEM_DIR", + debug_env: "GALTZO_FLOSS_DEBUG" ) end end diff --git a/gems/yaml-merge/gemfiles/modular/debug.gemfile b/gems/yaml-merge/gemfiles/modular/debug.gemfile index eed8d4d1e..4e15b1a3a 100644 --- a/gems/yaml-merge/gemfiles/modular/debug.gemfile +++ b/gems/yaml-merge/gemfiles/modular/debug.gemfile @@ -13,10 +13,10 @@ platform :mri do # Debugging - Ensure ENV["DEBUG"] == "true" to use debuggers within spec suite # Use binding.break, binding.b, or debugger in code - gem 'debug', '>= 1.1' # ruby >= 2.7 + gem "debug", ">= 1.1" # ruby >= 2.7 # Dev Console - Binding.pry - Irb replacement # gem "pry", "~> 0.14" # ruby >= 2.0 end -gem 'gem_bench', '~> 2.0', '>= 2.0.5' +gem "gem_bench", "~> 2.0", ">= 2.0.5" diff --git a/gems/yaml-merge/gemfiles/modular/documentation.gemfile b/gems/yaml-merge/gemfiles/modular/documentation.gemfile index 9d4535f12..d8215416e 100644 --- a/gems/yaml-merge/gemfiles/modular/documentation.gemfile +++ b/gems/yaml-merge/gemfiles/modular/documentation.gemfile @@ -7,20 +7,20 @@ # # Documentation -gem 'kramdown', '~> 2.5', '>= 2.5.2', require: false # Ruby >= 2.5 -gem 'kramdown-parser-gfm', '~> 1.1', require: false # Ruby >= 2.3 -gem 'yaml-converter', '~> 0.2', '>= 0.2.3', require: false # Ruby >= 3.2 -gem 'yard', '~> 0.9', '>= 0.9.45', require: false -gem 'yard-junk', '~> 0.1', '>= 0.1.0', require: false # Ruby >= 3.1 -gem 'yard-relative_markdown_links', '~> 0.6', require: false +gem "kramdown", "~> 2.5", ">= 2.5.2", require: false # Ruby >= 2.5 +gem "kramdown-parser-gfm", "~> 1.1", require: false # Ruby >= 2.3 +gem "yaml-converter", "~> 0.2", ">= 0.2.3", require: false # Ruby >= 3.2 +gem "yard", "~> 0.9", ">= 0.9.45", require: false +gem "yard-junk", "~> 0.1", ">= 0.1.0", require: false # Ruby >= 3.1 +gem "yard-relative_markdown_links", "~> 0.6", require: false -if ENV.fetch('GALTZO_FLOSS_DEV', 'false').casecmp('false').zero? - gem 'yard-fence', '~> 0.9', '>= 0.9.6', require: false # Ruby >= 3.2 - gem 'yard-timekeeper', '~> 0.2', '>= 0.2.4', require: false - gem 'yard-yaml', '~> 0.2', '>= 0.2.3', require: false +if ENV.fetch("GALTZO_FLOSS_DEV", "false").casecmp("false").zero? + gem "yard-fence", "~> 0.9", ">= 0.9.6", require: false # Ruby >= 3.2 + gem "yard-timekeeper", "~> 0.2", ">= 0.2.4", require: false + gem "yard-yaml", "~> 0.2", ">= 0.2.3", require: false else - eval_gemfile 'documentation_local.gemfile' + eval_gemfile "documentation_local.gemfile" end # Std Lib extractions -gem 'rdoc', '~> 6.11', require: false unless ENV.fetch('KJ_FRAMEWORK_MATRIX_GEM', '') == 'rdoc' +gem "rdoc", "~> 6.11", require: false unless ENV.fetch("KJ_FRAMEWORK_MATRIX_GEM", "") == "rdoc" diff --git a/gems/yaml-merge/gemfiles/modular/documentation_local.gemfile b/gems/yaml-merge/gemfiles/modular/documentation_local.gemfile index 20503a7f8..5ed58acd1 100644 --- a/gems/yaml-merge/gemfiles/modular/documentation_local.gemfile +++ b/gems/yaml-merge/gemfiles/modular/documentation_local.gemfile @@ -11,19 +11,21 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] -nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) +nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] +nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == "nomono" } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + if nomono_locked + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] + end end -Kernel.send(:gem, 'nomono', *nomono_activation_requirements) -require 'nomono/bundler' +Kernel.send(:gem, "nomono", *nomono_activation_requirements) +require "nomono/bundler" local_gems = %w[yard-fence yard-timekeeper yard-yaml] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) @@ -32,9 +34,9 @@ local_gems_to_eval = local_gems - %w[yaml-merge] - declared_gems # export GALTZO_FLOSS_DEV=/path/to/galtzo-floss eval_nomono_gems( gems: local_gems_to_eval, - prefix: 'GALTZO_FLOSS', - path_env: 'GALTZO_FLOSS_DEV', - vendored_gems_env: 'GALTZO_FLOSS_VENDORED_GEMS', - vendor_gem_dir_env: 'GALTZO_FLOSS_VENDOR_GEM_DIR', - debug_env: 'GALTZO_FLOSS_DEBUG' + prefix: "GALTZO_FLOSS", + path_env: "GALTZO_FLOSS_DEV", + vendored_gems_env: "GALTZO_FLOSS_VENDORED_GEMS", + vendor_gem_dir_env: "GALTZO_FLOSS_VENDOR_GEM_DIR", + debug_env: "GALTZO_FLOSS_DEBUG" ) diff --git a/gems/yaml-merge/gemfiles/modular/erb/r2/v3.0.gemfile b/gems/yaml-merge/gemfiles/modular/erb/r2/v3.0.gemfile index 7c83a239b..c03bd8d85 100644 --- a/gems/yaml-merge/gemfiles/modular/erb/r2/v3.0.gemfile +++ b/gems/yaml-merge/gemfiles/modular/erb/r2/v3.0.gemfile @@ -1 +1 @@ -gem 'erb', '~> 3.0' # ruby >= 2.7.0 +gem "erb", "~> 3.0" # ruby >= 2.7.0 diff --git a/gems/yaml-merge/gemfiles/modular/erb/r3/v5.0.gemfile b/gems/yaml-merge/gemfiles/modular/erb/r3/v5.0.gemfile index ec7ff451f..1bd029cc1 100644 --- a/gems/yaml-merge/gemfiles/modular/erb/r3/v5.0.gemfile +++ b/gems/yaml-merge/gemfiles/modular/erb/r3/v5.0.gemfile @@ -1 +1 @@ -gem 'erb', '~> 6.0', '>= 6.0.6' # ruby >= 3.2.0 +gem "erb", "~> 6.0", ">= 6.0.6" # ruby >= 3.2.0 diff --git a/gems/yaml-merge/gemfiles/modular/erb/r4/v5.0.gemfile b/gems/yaml-merge/gemfiles/modular/erb/r4/v5.0.gemfile index ec7ff451f..1bd029cc1 100644 --- a/gems/yaml-merge/gemfiles/modular/erb/r4/v5.0.gemfile +++ b/gems/yaml-merge/gemfiles/modular/erb/r4/v5.0.gemfile @@ -1 +1 @@ -gem 'erb', '~> 6.0', '>= 6.0.6' # ruby >= 3.2.0 +gem "erb", "~> 6.0", ">= 6.0.6" # ruby >= 3.2.0 diff --git a/gems/yaml-merge/gemfiles/modular/erb/vHEAD.gemfile b/gems/yaml-merge/gemfiles/modular/erb/vHEAD.gemfile index ea0101185..48fee4218 100644 --- a/gems/yaml-merge/gemfiles/modular/erb/vHEAD.gemfile +++ b/gems/yaml-merge/gemfiles/modular/erb/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 3.2 -gem 'erb', github: 'ruby/erb', branch: 'master' +gem "erb", github: "ruby/erb", branch: "master" diff --git a/gems/yaml-merge/gemfiles/modular/json/truffleruby_22_3.gemfile b/gems/yaml-merge/gemfiles/modular/json/truffleruby_22_3.gemfile index 9b2f8d96a..b0e69ab11 100644 --- a/gems/yaml-merge/gemfiles/modular/json/truffleruby_22_3.gemfile +++ b/gems/yaml-merge/gemfiles/modular/json/truffleruby_22_3.gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -if RUBY_ENGINE == 'truffleruby' && RUBY_ENGINE_VERSION.start_with?('22.3') +if RUBY_ENGINE == "truffleruby" && RUBY_ENGINE_VERSION.start_with?("22.3") # TruffleRuby 22.3 ships the json default gem from its emulated MRI Ruby. - gem 'json', '= 2.5.1' + gem "json", "= 2.5.1" end diff --git a/gems/yaml-merge/gemfiles/modular/json/truffleruby_23_0.gemfile b/gems/yaml-merge/gemfiles/modular/json/truffleruby_23_0.gemfile index d787a5ef4..7b2660a2b 100644 --- a/gems/yaml-merge/gemfiles/modular/json/truffleruby_23_0.gemfile +++ b/gems/yaml-merge/gemfiles/modular/json/truffleruby_23_0.gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -if RUBY_ENGINE == 'truffleruby' && RUBY_ENGINE_VERSION.start_with?('23.0') +if RUBY_ENGINE == "truffleruby" && RUBY_ENGINE_VERSION.start_with?("23.0") # TruffleRuby 23.0 ships the json default gem from its emulated MRI Ruby. - gem 'json', '= 2.6.1' + gem "json", "= 2.6.1" end diff --git a/gems/yaml-merge/gemfiles/modular/json/truffleruby_23_1.gemfile b/gems/yaml-merge/gemfiles/modular/json/truffleruby_23_1.gemfile index d78486b0e..dfa21f2e4 100644 --- a/gems/yaml-merge/gemfiles/modular/json/truffleruby_23_1.gemfile +++ b/gems/yaml-merge/gemfiles/modular/json/truffleruby_23_1.gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -if RUBY_ENGINE == 'truffleruby' && RUBY_ENGINE_VERSION.start_with?('23.1') +if RUBY_ENGINE == "truffleruby" && RUBY_ENGINE_VERSION.start_with?("23.1") # TruffleRuby 23.1 ships the json default gem from its emulated MRI Ruby. - gem 'json', '= 2.6.3' + gem "json", "= 2.6.3" end diff --git a/gems/yaml-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile b/gems/yaml-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile index e27f1bbae..42e9d9bd4 100644 --- a/gems/yaml-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile +++ b/gems/yaml-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 -gem 'mutex_m', '~> 0.2' +gem "mutex_m", "~> 0.2" diff --git a/gems/yaml-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile b/gems/yaml-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile index e27f1bbae..42e9d9bd4 100644 --- a/gems/yaml-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile +++ b/gems/yaml-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 -gem 'mutex_m', '~> 0.2' +gem "mutex_m", "~> 0.2" diff --git a/gems/yaml-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile b/gems/yaml-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile index e27f1bbae..42e9d9bd4 100644 --- a/gems/yaml-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile +++ b/gems/yaml-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 -gem 'mutex_m', '~> 0.2' +gem "mutex_m", "~> 0.2" diff --git a/gems/yaml-merge/gemfiles/modular/mutex_m/vHEAD.gemfile b/gems/yaml-merge/gemfiles/modular/mutex_m/vHEAD.gemfile index 9dac2f6cb..8af3b6fca 100644 --- a/gems/yaml-merge/gemfiles/modular/mutex_m/vHEAD.gemfile +++ b/gems/yaml-merge/gemfiles/modular/mutex_m/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 (dependency of omniauth) -gem 'mutex_m', github: 'ruby/mutex_m', branch: 'master' +gem "mutex_m", github: "ruby/mutex_m", branch: "master" diff --git a/gems/yaml-merge/gemfiles/modular/optional.gemfile b/gems/yaml-merge/gemfiles/modular/optional.gemfile index 9ea429538..80bc45196 100644 --- a/gems/yaml-merge/gemfiles/modular/optional.gemfile +++ b/gems/yaml-merge/gemfiles/modular/optional.gemfile @@ -9,8 +9,8 @@ # Optional dependencies are not depended on directly, but may be used if present. # Required for curated binstubs generated by kettle-jem install -gem 'rbs', '>= 3.0', require: false # ruby >= 3.1 +gem "rbs", ">= 3.0", require: false # ruby >= 3.1 # Required for kettle-pre-release # URL parsing with Unicode support (falls back to URI if not available) -gem 'addressable', '>= 2.8', '< 3' # ruby >= 2.2 +gem "addressable", ">= 2.8", "< 3" # ruby >= 2.2 diff --git a/gems/yaml-merge/gemfiles/modular/rspec.gemfile b/gems/yaml-merge/gemfiles/modular/rspec.gemfile index 2af210a41..72fdf8b7f 100644 --- a/gems/yaml-merge/gemfiles/modular/rspec.gemfile +++ b/gems/yaml-merge/gemfiles/modular/rspec.gemfile @@ -1,4 +1,4 @@ -gem 'rspec_junit_formatter', - github: 'pboling/rspec_junit_formatter', - branch: 'main', - ref: '9e6bcaaedd49477b62878ed568dc4ada5cc7cb5e' +gem "rspec_junit_formatter", + github: "pboling/rspec_junit_formatter", + branch: "main", + ref: "9e6bcaaedd49477b62878ed568dc4ada5cc7cb5e" diff --git a/gems/yaml-merge/gemfiles/modular/runtime_heads.gemfile b/gems/yaml-merge/gemfiles/modular/runtime_heads.gemfile index ebf17c529..02f134c7f 100644 --- a/gems/yaml-merge/gemfiles/modular/runtime_heads.gemfile +++ b/gems/yaml-merge/gemfiles/modular/runtime_heads.gemfile @@ -8,4 +8,4 @@ # Test against HEAD of runtime dependencies so we can proactively file bugs -eval_gemfile('x_std_libs/vHEAD.gemfile') +eval_gemfile("x_std_libs/vHEAD.gemfile") diff --git a/gems/yaml-merge/gemfiles/modular/stringio/r2/v3.0.gemfile b/gems/yaml-merge/gemfiles/modular/stringio/r2/v3.0.gemfile index 3616f4e3a..e85bb18ee 100644 --- a/gems/yaml-merge/gemfiles/modular/stringio/r2/v3.0.gemfile +++ b/gems/yaml-merge/gemfiles/modular/stringio/r2/v3.0.gemfile @@ -2,4 +2,4 @@ # NOT SEMVER # Version 3.0.7 dropped support for Ruby <= 2.7 # Version 3.0.0 dropped support for Ruby <= 2.4 -gem 'stringio', '>= 3.0' +gem "stringio", ">= 3.0" diff --git a/gems/yaml-merge/gemfiles/modular/stringio/r3/v3.0.gemfile b/gems/yaml-merge/gemfiles/modular/stringio/r3/v3.0.gemfile index 3616f4e3a..e85bb18ee 100644 --- a/gems/yaml-merge/gemfiles/modular/stringio/r3/v3.0.gemfile +++ b/gems/yaml-merge/gemfiles/modular/stringio/r3/v3.0.gemfile @@ -2,4 +2,4 @@ # NOT SEMVER # Version 3.0.7 dropped support for Ruby <= 2.7 # Version 3.0.0 dropped support for Ruby <= 2.4 -gem 'stringio', '>= 3.0' +gem "stringio", ">= 3.0" diff --git a/gems/yaml-merge/gemfiles/modular/stringio/r4/v3.0.gemfile b/gems/yaml-merge/gemfiles/modular/stringio/r4/v3.0.gemfile index 3616f4e3a..e85bb18ee 100644 --- a/gems/yaml-merge/gemfiles/modular/stringio/r4/v3.0.gemfile +++ b/gems/yaml-merge/gemfiles/modular/stringio/r4/v3.0.gemfile @@ -2,4 +2,4 @@ # NOT SEMVER # Version 3.0.7 dropped support for Ruby <= 2.7 # Version 3.0.0 dropped support for Ruby <= 2.4 -gem 'stringio', '>= 3.0' +gem "stringio", ">= 3.0" diff --git a/gems/yaml-merge/gemfiles/modular/stringio/vHEAD.gemfile b/gems/yaml-merge/gemfiles/modular/stringio/vHEAD.gemfile index 78f5f5d8a..5f2a74126 100644 --- a/gems/yaml-merge/gemfiles/modular/stringio/vHEAD.gemfile +++ b/gems/yaml-merge/gemfiles/modular/stringio/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 (dependency of omniauth) -gem 'stringio', github: 'ruby/stringio', branch: 'master' +gem "stringio", github: "ruby/stringio", branch: "master" diff --git a/gems/yaml-merge/gemfiles/modular/style.gemfile b/gems/yaml-merge/gemfiles/modular/style.gemfile index 4dbcc02c0..35de4dcd6 100644 --- a/gems/yaml-merge/gemfiles/modular/style.gemfile +++ b/gems/yaml-merge/gemfiles/modular/style.gemfile @@ -9,23 +9,23 @@ # Style tasks run on the latest Ruby; RuboCop-LTS selects the compatibility # rules for the configured Ruby floor independently from task dependency floors. -gem 'reek', '~> 6.5', '>= 6.5.0' +gem "reek", "~> 6.5", ">= 6.5.0" platform :mri do - gem 'appraisal2-rubocop', '~> 1.0', '>= 1.0.0', require: false - gem 'rubocop-gradual', '~> 0.4', '>= 0.4.0' - gem 'rubocop-minitest', '~> 0.40', '>= 0.40.0' - gem 'rubocop-on-rbs', '~> 2.0', '>= 2.0.0' # ruby >= 3.2.0 + gem "appraisal2-rubocop", "~> 1.0", ">= 1.0.0", require: false + gem "rubocop-gradual", "~> 0.4", ">= 0.4.0" + gem "rubocop-minitest", "~> 0.40", ">= 0.40.0" + gem "rubocop-on-rbs", "~> 2.0", ">= 2.0.0" # ruby >= 3.2.0 # gem "rubocop", "~> 1.73", ">= 1.73.2" # constrained by standard - gem 'rubocop-packaging', '~> 0.6', '>= 0.6.0' - gem 'standard', '~> 1.56', '>= 1.56.0' + gem "rubocop-packaging", "~> 0.6", ">= 0.6.0" + gem "standard", "~> 1.56", ">= 1.56.0" - if ENV.fetch('RUBOCOP_LTS_LOCAL', 'false').casecmp('false').zero? + if ENV.fetch("RUBOCOP_LTS_LOCAL", "false").casecmp("false").zero? declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) - gem 'rubocop-lts', '~> 24.2', '>= 24.2.1' unless declared_gems.include?('rubocop-lts') - gem 'rubocop-lts-rspec', '~> 1.0', '>= 1.0.5' unless declared_gems.include?('rubocop-lts-rspec') - gem 'rubocop-ruby3_2', '~> 3.0', '>= 3.0.6' unless declared_gems.include?('rubocop-ruby3_2') + gem "rubocop-lts", "~> 24.2", ">= 24.2.1" unless declared_gems.include?("rubocop-lts") + gem "rubocop-lts-rspec", "~> 1.0", ">= 1.0.5" unless declared_gems.include?("rubocop-lts-rspec") + gem "rubocop-ruby3_2", "~> 3.0", ">= 3.0.6" unless declared_gems.include?("rubocop-ruby3_2") else - eval_gemfile('style_local.gemfile') + eval_gemfile("style_local.gemfile") end end diff --git a/gems/yaml-merge/gemfiles/modular/style_local.gemfile b/gems/yaml-merge/gemfiles/modular/style_local.gemfile index 516eb058b..255bf2e49 100644 --- a/gems/yaml-merge/gemfiles/modular/style_local.gemfile +++ b/gems/yaml-merge/gemfiles/modular/style_local.gemfile @@ -14,19 +14,21 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] -nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) +nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] +nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == "nomono" } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + if nomono_locked + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] + end end -Kernel.send(:gem, 'nomono', *nomono_activation_requirements) -require 'nomono/bundler' +Kernel.send(:gem, "nomono", *nomono_activation_requirements) +require "nomono/bundler" local_gems = %w[rubocop-lts rubocop-lts-rspec rubocop-ruby3_2 standard-rubocop-lts] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) @@ -36,11 +38,11 @@ local_gems_to_eval = local_gems - %w[yaml-merge] - declared_gems platform :mri do eval_nomono_gems( gems: local_gems_to_eval, - prefix: 'RUBOCOP_LTS', - path_env: 'RUBOCOP_LTS_LOCAL', - vendored_gems_env: 'VENDORED_GEMS', - vendor_gem_dir_env: 'VENDOR_GEM_DIR', - debug_env: 'RUBOCOP_LTS_DEBUG', - root: %w[src rubocop-lts] + prefix: "RUBOCOP_LTS", + path_env: "RUBOCOP_LTS_LOCAL", + vendored_gems_env: "VENDORED_GEMS", + vendor_gem_dir_env: "VENDOR_GEM_DIR", + debug_env: "RUBOCOP_LTS_DEBUG", + root: ["src", "rubocop-lts"] ) end diff --git a/gems/yaml-merge/gemfiles/modular/webrick/r4/v1.9.gemfile b/gems/yaml-merge/gemfiles/modular/webrick/r4/v1.9.gemfile index b1329ba84..eaab4a473 100644 --- a/gems/yaml-merge/gemfiles/modular/webrick/r4/v1.9.gemfile +++ b/gems/yaml-merge/gemfiles/modular/webrick/r4/v1.9.gemfile @@ -1 +1 @@ -gem 'webrick', '~> 1.9' +gem "webrick", "~> 1.9" diff --git a/gems/yaml-merge/gemfiles/modular/webrick/vHEAD.gemfile b/gems/yaml-merge/gemfiles/modular/webrick/vHEAD.gemfile index c7e6f81a1..8a789b634 100644 --- a/gems/yaml-merge/gemfiles/modular/webrick/vHEAD.gemfile +++ b/gems/yaml-merge/gemfiles/modular/webrick/vHEAD.gemfile @@ -1 +1 @@ -gem 'webrick', '>= 1.9' +gem "webrick", ">= 1.9" diff --git a/gems/yaml-merge/gemfiles/modular/x_std_libs.gemfile b/gems/yaml-merge/gemfiles/modular/x_std_libs.gemfile index b1f43c097..77aad43f2 100644 --- a/gems/yaml-merge/gemfiles/modular/x_std_libs.gemfile +++ b/gems/yaml-merge/gemfiles/modular/x_std_libs.gemfile @@ -1,12 +1,12 @@ ### Std Lib Extracted Gems ruby_version = Gem::Version.new(RUBY_VERSION) -if ruby_version >= Gem::Version.new('4.0') - eval_gemfile 'x_std_libs/r4/libs.gemfile' -elsif ruby_version >= Gem::Version.new('3.2') - eval_gemfile 'x_std_libs/r3/libs.gemfile' -elsif ruby_version >= Gem::Version.new('3.1') - eval_gemfile 'x_std_libs/r3.1/libs.gemfile' +if ruby_version >= Gem::Version.new("4.0") + eval_gemfile "x_std_libs/r4/libs.gemfile" +elsif ruby_version >= Gem::Version.new("3.2") + eval_gemfile "x_std_libs/r3/libs.gemfile" +elsif ruby_version >= Gem::Version.new("3.1") + eval_gemfile "x_std_libs/r3.1/libs.gemfile" else - eval_gemfile 'x_std_libs/r2/libs.gemfile' + eval_gemfile "x_std_libs/r2/libs.gemfile" end diff --git a/gems/yaml-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile b/gems/yaml-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile index 16a5e3d70..441c4f03a 100644 --- a/gems/yaml-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile +++ b/gems/yaml-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile @@ -1,3 +1,3 @@ -eval_gemfile '../../erb/r2/v3.0.gemfile' -eval_gemfile '../../mutex_m/r2/v0.3.gemfile' -eval_gemfile '../../stringio/r2/v3.0.gemfile' +eval_gemfile "../../erb/r2/v3.0.gemfile" +eval_gemfile "../../mutex_m/r2/v0.3.gemfile" +eval_gemfile "../../stringio/r2/v3.0.gemfile" diff --git a/gems/yaml-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile b/gems/yaml-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile index 220ff95c1..c293a3ddd 100644 --- a/gems/yaml-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile +++ b/gems/yaml-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile @@ -1,3 +1,3 @@ -eval_gemfile '../../erb/r3/v5.0.gemfile' -eval_gemfile '../../mutex_m/r3/v0.3.gemfile' -eval_gemfile '../../stringio/r3/v3.0.gemfile' +eval_gemfile "../../erb/r3/v5.0.gemfile" +eval_gemfile "../../mutex_m/r3/v0.3.gemfile" +eval_gemfile "../../stringio/r3/v3.0.gemfile" diff --git a/gems/yaml-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile b/gems/yaml-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile index e2f6501eb..eb5574247 100644 --- a/gems/yaml-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile +++ b/gems/yaml-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile @@ -1,6 +1,6 @@ -eval_gemfile '../../erb/r4/v5.0.gemfile' -eval_gemfile '../../mutex_m/r4/v0.3.gemfile' -eval_gemfile '../../stringio/r4/v3.0.gemfile' -eval_gemfile '../../benchmark/r4/v0.5.gemfile' -eval_gemfile '../../cgi/r4/v0.5.gemfile' -eval_gemfile '../../webrick/r4/v1.9.gemfile' +eval_gemfile "../../erb/r4/v5.0.gemfile" +eval_gemfile "../../mutex_m/r4/v0.3.gemfile" +eval_gemfile "../../stringio/r4/v3.0.gemfile" +eval_gemfile "../../benchmark/r4/v0.5.gemfile" +eval_gemfile "../../cgi/r4/v0.5.gemfile" +eval_gemfile "../../webrick/r4/v1.9.gemfile" diff --git a/gems/yaml-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile b/gems/yaml-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile index ab75cccf1..d4d5b16c9 100644 --- a/gems/yaml-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile +++ b/gems/yaml-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile @@ -1,6 +1,6 @@ -eval_gemfile '../erb/vHEAD.gemfile' -eval_gemfile '../mutex_m/vHEAD.gemfile' -eval_gemfile '../stringio/vHEAD.gemfile' -eval_gemfile '../benchmark/vHEAD.gemfile' -eval_gemfile '../cgi/vHEAD.gemfile' -eval_gemfile '../webrick/vHEAD.gemfile' +eval_gemfile "../erb/vHEAD.gemfile" +eval_gemfile "../mutex_m/vHEAD.gemfile" +eval_gemfile "../stringio/vHEAD.gemfile" +eval_gemfile "../benchmark/vHEAD.gemfile" +eval_gemfile "../cgi/vHEAD.gemfile" +eval_gemfile "../webrick/vHEAD.gemfile" diff --git a/gems/yaml-merge/spec/spec_helper.rb b/gems/yaml-merge/spec/spec_helper.rb index 7087d3e04..ac06bb126 100644 --- a/gems/yaml-merge/spec/spec_helper.rb +++ b/gems/yaml-merge/spec/spec_helper.rb @@ -7,11 +7,16 @@ # NOTE: Gemfiles for non-coverage appraisals may not have kettle-soup-cover. # The rescue LoadError handles that scenario. begin - require 'kettle-soup-cover' - require 'simplecov' if Kettle::Soup::Cover::DO_COV # `.simplecov` is run here! -rescue LoadError => e + require "kettle-soup-cover" + if Kettle::Soup::Cover::DO_COV + # Requiring simplecov loads the project-local `.simplecov`. + require "simplecov" + require "kettle/soup/cover/config" + SimpleCov.start + end +rescue LoadError => error # check the error message and re-raise when unexpected - raise e unless e.message.include?('kettle') + raise error unless error.message.include?("kettle") end # External RSpec & related config From 94708c97c6762277988acae2b84c0aeda6133284 Mon Sep 17 00:00:00 2001 From: "Peter H. Boling" Date: Tue, 21 Jul 2026 18:03:42 -0600 Subject: [PATCH 161/188] =?UTF-8?q?=F0=9F=8E=A8=20Template=20bootstrap=20b?= =?UTF-8?q?y=20kettle-jem=20v7.1.0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gems/dotenv-merge/Gemfile.lock | 352 +-------------- gems/html-merge/Gemfile.lock | 396 ++++++++++++++++- gems/rbs-merge/.rubocop_gradual.lock | 413 ++++++++++++++++++ gems/rbs-merge/Gemfile.lock | 8 +- gems/rbs-merge/rbs-merge.gemspec | 84 ++-- gems/rbs-merge/spec/spec_helper.rb | 10 +- gems/toml-merge/.kettle-drift.lock | 144 +++++- gems/toml-merge/Gemfile | 72 ++- gems/toml-merge/Rakefile | 18 +- .../gemfiles/modular/templating.gemfile | 12 +- .../gemfiles/modular/templating_local.gemfile | 44 +- gems/toml-merge/lib/toml/merge/version.rb | 2 +- gems/yaml-merge/.rubocop_gradual.lock | 181 -------- gems/yaml-merge/Gemfile.lock | 314 ------------- gems/yaml-merge/bin/yard | 2 +- 15 files changed, 1103 insertions(+), 949 deletions(-) create mode 100644 gems/rbs-merge/.rubocop_gradual.lock delete mode 100644 gems/yaml-merge/.rubocop_gradual.lock diff --git a/gems/dotenv-merge/Gemfile.lock b/gems/dotenv-merge/Gemfile.lock index 6a6e4b590..33fa973b5 100644 --- a/gems/dotenv-merge/Gemfile.lock +++ b/gems/dotenv-merge/Gemfile.lock @@ -6,266 +6,6 @@ PATH tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.14) -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly - specs: - ast-crispr-markdown-markly (7.1.0) - ast-crispr (= 7.1.0) - markly-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism - specs: - ast-crispr-ruby-prism (7.1.0) - ast-crispr (= 7.1.0) - prism-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr - specs: - ast-crispr (7.1.0) - ast-merge (= 7.1.0) - service_actor (~> 3.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git - specs: - ast-merge-git (7.1.0) - ast-merge (= 7.1.0) - json-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge - specs: - ast-merge (7.1.0) - benchmark - token-resolver (~> 2.0, >= 2.0.4) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template - specs: - ast-template (7.1.0) - ast-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge - specs: - bash-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge - specs: - binary-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge - specs: - citrus-toml-merge (7.1.0) - toml-merge (= 7.1.0) - toml-rb (~> 4.1) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge - specs: - commonmarker-merge (7.1.0) - commonmarker (~> 2.2) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge - specs: - go-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge - specs: - json-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem - specs: - kettle-jem (7.1.0) - addressable (>= 2.8, < 3) - ast-crispr-markdown-markly (= 7.1.0) - ast-crispr-ruby-prism (= 7.1.0) - ast-merge (= 7.1.0) - bash-merge (= 7.1.0) - citrus-toml-merge (= 7.1.0) - commonmarker-merge (= 7.1.0) - dotenv-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-dev (~> 2.3, >= 2.3.5) - kettle-rb (~> 0.1, >= 0.1.4) - kramdown-merge (= 7.1.0) - markdown-merge (= 7.1.0) - markly-merge (= 7.1.0) - prism-merge (= 7.1.0) - psych-merge (= 7.1.0) - rbs (>= 3.10) - rbs-merge (= 7.1.0) - ruby-merge (= 7.1.0) - token-resolver (~> 2.0, >= 2.0.4) - toml-merge (= 7.1.0) - toml-rb (~> 4.2) - tree_haver (= 7.1.0) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge - specs: - kramdown-merge (7.1.0) - kramdown (~> 2.5) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge - specs: - markdown-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge - specs: - markly-merge (7.1.0) - markdown-merge (= 7.1.0) - markly (~> 0.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge - specs: - parslet-toml-merge (7.1.0) - toml (~> 0.3) - toml-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge - specs: - plain-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge - specs: - prism-merge (7.1.0) - prism (~> 1.6) - ruby-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge - specs: - psych-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge - specs: - rbs-merge (7.1.0) - ast-merge (= 7.1.0) - rbs (>= 3.10) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge - specs: - ruby-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge - specs: - rust-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb - specs: - smorg-rb (7.1.0) - ast-merge (= 7.1.0) - ast-merge-git (= 7.1.0) - diff-lcs (~> 1.5) - go-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-jem (= 7.1.0) - markly-merge (= 7.1.0) - plain-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge - specs: - toml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver - specs: - tree_haver (7.1.0) - citrus (~> 3.0) - parslet (~> 2.0) - tree_sitter_language_pack (>= 1.13.2, < 2.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge - specs: - typescript-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge - specs: - yaml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge - specs: - zip-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - GEM remote: https://gem.coop/ specs: @@ -281,6 +21,11 @@ GEM rubocop (>= 1.0) version_gem (~> 1.1, >= 1.1.14) ast (2.4.3) + ast-merge (7.1.0) + benchmark + token-resolver (~> 2.0, >= 2.0.4) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) backports (3.25.3) benchmark (0.5.0) bigdecimal (4.1.2) @@ -290,11 +35,6 @@ GEM cgi (0.5.2) citrus (3.0.2) cmdparse (3.0.7) - commonmarker (2.9.0-aarch64-linux) - commonmarker (2.9.0-aarch64-linux-musl) - commonmarker (2.9.0-arm64-darwin) - commonmarker (2.9.0-x86_64-linux) - commonmarker (2.9.0-x86_64-linux-musl) concurrent-ruby (1.3.8) date (3.5.1) debug (1.11.1) @@ -357,8 +97,6 @@ GEM kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) - kettle-drift (1.0.6) - version_gem (~> 1.1, >= 1.1.14) kettle-rb (0.1.5) kettle-soup-cover (3.0.4) kettle-wash (~> 0.1, >= 0.1.0) @@ -387,7 +125,6 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) - markly (0.16.0) mutex_m (0.3.0) nokogiri (1.19.4-aarch64-linux-gnu) racc (~> 1.4) @@ -550,8 +287,6 @@ GEM ruby-progressbar (1.13.0) ruby_engine (2.0.3) ruby_version (1.0.3) - service_actor (3.9.4) - zeitwerk (>= 1.0) silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) @@ -606,11 +341,11 @@ GEM token-resolver (2.0.5) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.14) - toml (0.3.0) - parslet (>= 1.8.0, < 3.0.0) - toml-rb (4.2.0) - citrus (~> 3.0, > 3.0) - racc (~> 1.7) + tree_haver (7.1.0) + citrus (~> 3.0) + parslet (~> 2.0) + tree_sitter_language_pack (>= 1.13.2, < 2.0) + version_gem (~> 1.1, >= 1.1.9) tree_sitter_language_pack (1.13.3-aarch64-linux) sorbet-runtime (~> 0.5) tree_sitter_language_pack (1.13.3-arm64-darwin) @@ -665,46 +400,24 @@ DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.2, >= 3.2.0) appraisal2-rubocop (~> 1.0, >= 1.0.0) - ast-crispr! - ast-crispr-markdown-markly! - ast-crispr-ruby-prism! - ast-merge! - ast-merge-git! - ast-template! - bash-merge! benchmark (~> 0.5, >= 0.5.0) - binary-merge! bundler-audit (~> 0.9.3) cgi (~> 0.5) - citrus-toml-merge! - commonmarker-merge! debug (>= 1.1) dotenv-merge! erb (~> 6.0, >= 6.0.6) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.4) - go-merge! irb (~> 1.17) - json-merge! kettle-dev (~> 2.3, >= 2.3.7) - kettle-drift (~> 1.0, >= 1.0.6) - kettle-jem! kettle-soup-cover (~> 3.0, >= 3.0.3) kettle-test (~> 2.0, >= 2.0.12) kramdown (~> 2.5, >= 2.5.2) - kramdown-merge! kramdown-parser-gfm (~> 1.1) - markdown-merge! - markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) - parslet-toml-merge! - plain-merge! - prism-merge! - psych-merge! rake (~> 13.0) rbs (>= 3.0) - rbs-merge! rdoc (~> 6.11) reek (~> 6.5, >= 6.5.0) require_bench (~> 1.0, >= 1.0.4) @@ -715,28 +428,20 @@ DEPENDENCIES rubocop-on-rbs (~> 2.0, >= 2.0.0) rubocop-packaging (~> 0.6, >= 0.6.0) rubocop-ruby3_2 (~> 3.0, >= 3.0.6) - ruby-merge! ruby-progressbar (~> 1.13) - rust-merge! - smorg-rb! standard (~> 1.56, >= 1.56.0) stone_checksums (~> 1.0, >= 1.0.6) stringio (>= 3.0) - toml-merge! - tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) turbo_tests2 (~> 3.2, >= 3.2.0) - typescript-merge! webrick (~> 1.9) yaml-converter (~> 0.2, >= 0.2.3) - yaml-merge! yard (~> 0.9, >= 0.9.45) yard-fence (~> 0.9, >= 0.9.6) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) yard-timekeeper (~> 0.2, >= 0.2.4) yard-yaml (~> 0.2, >= 0.2.3) - zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af @@ -744,28 +449,14 @@ CHECKSUMS appraisal2 (3.2.0) sha256=ccd0b767ac4060cd7af6d16747459b6990f49c39c7b4fb1f7d1146b1e97c492f appraisal2-rubocop (1.0.0) sha256=b71410fbb014befda5340605a605b7f6f3f012739baf0acc5b4351b592c3258d ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 - ast-crispr (7.1.0) - ast-crispr-markdown-markly (7.1.0) - ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) - ast-merge-git (7.1.0) - ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 - bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd - binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 - citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 - commonmarker (2.9.0-aarch64-linux) sha256=e2b4aadb9a2cfa4e206582641ce3a49465549ac1ed4c289fdd63b78d8f24579c - commonmarker (2.9.0-aarch64-linux-musl) sha256=1cf4d2821f2a7e64945f1ed7c4eeced586fdb27ea7fe7337788802cf8f57cfca - commonmarker (2.9.0-arm64-darwin) sha256=1748dbfa4f5813b0d2a14bb4bbfa65a4ec293aa1c825016d60029ee0e132b046 - commonmarker (2.9.0-x86_64-linux) sha256=8cfe92970eef585a19ddf6613224b91cab64d6029834661bda801f877c9c7f43 - commonmarker (2.9.0-x86_64-linux-musl) sha256=293921398b839f79ceaf55010e061357e34f053822c3b003cd0be6686176335e - commonmarker-merge (7.1.0) concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 @@ -785,28 +476,20 @@ CHECKSUMS gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f - go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 - json-merge (7.1.0) kettle-dev (2.3.9) - kettle-drift (1.0.6) sha256=46eda08fa4411d1f3c6682a95eef1c9df4e94611b3949f49d4c7b43c0ed356a3 - kettle-jem (7.1.0) kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f kettle-soup-cover (3.0.4) kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa - kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 - markdown-merge (7.1.0) - markly (0.16.0) sha256=6f70d79e385b1efc9e171f74c81628826259039fe6c778e03c3924c71dac5511 - markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-aarch64-linux-gnu) sha256=1269fb644a6de405057a53dd5c762b1209b43ca7424f839454d3dbc677c31a8f nokogiri (1.19.4-aarch64-linux-musl) sha256=35c65b9ce72b3bb03207bdbe7067915019dc18c1b9b59139684bd6690fdd01af @@ -820,20 +503,15 @@ CHECKSUMS parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 - parslet-toml-merge (7.1.0) - plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 - prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 - psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 - rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb @@ -868,19 +546,15 @@ CHECKSUMS rubocop-rspec_rails (2.32.0) sha256=4a0d641c72f6ebb957534f539d9d0a62c47abd8ce0d0aeee1ef4701e892a9100 rubocop-ruby3_2 (3.0.7) sha256=f53dd6d286fb05186214fc6ec116783e7f837030918e8931c05de773e98f8466 rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 - ruby-merge (7.1.0) ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 - rust-merge (7.1.0) - service_actor (3.9.4) sha256=e63b523630b9a7e62959b2a90113b08d2565b5de9c148557b281ef847c9539ce silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed - smorg-rb (7.1.0) sorbet-runtime (0.6.13351) sha256=f8fee17c6e3edf835dc6823d26afb9a7c8969c6710d1fabe2fb43f4e0c15c64f standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b @@ -895,22 +569,17 @@ CHECKSUMS timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.5) sha256=b852f924287ffb58a440856e862b056c8ad97e74b4b2526cee43e0771f40c25c - toml (0.3.0) sha256=0a91d0f76a9036e84e44f95693b12f58d358c1df3ac8e3b5271f2056ecc6e4b9 - toml-merge (7.1.0) - toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-aarch64-linux) sha256=55ffc7c87868cb45658338363d9eba51b4a8b0259aa88e4de368d2bd1d52fea4 tree_sitter_language_pack (1.13.3-arm64-darwin) sha256=bc2498db605f212a1dbd2465ed3f65190d7da786f6ed5d30fcf958121aeb4a5c tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 - typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 webrick (1.9.2) sha256=beb4a15fc474defed24a3bda4ffd88a490d517c9e4e6118c3edce59e45864131 yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 - yaml-merge (7.1.0) yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd @@ -918,7 +587,6 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 - zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH diff --git a/gems/html-merge/Gemfile.lock b/gems/html-merge/Gemfile.lock index b8da9b5f2..ca6b229f1 100644 --- a/gems/html-merge/Gemfile.lock +++ b/gems/html-merge/Gemfile.lock @@ -8,7 +8,23 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly + specs: + ast-crispr-markdown-markly (7.1.0) + ast-crispr (= 7.1.0) + markly-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism + specs: + ast-crispr-ruby-prism (7.1.0) + ast-crispr (= 7.1.0) + prism-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr specs: ast-crispr (7.1.0) ast-merge (= 7.1.0) @@ -16,7 +32,15 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/ast-merge + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git + specs: + ast-merge-git (7.1.0) + ast-merge (= 7.1.0) + json-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge specs: ast-merge (7.1.0) benchmark @@ -25,7 +49,202 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/tree_haver + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template + specs: + ast-template (7.1.0) + ast-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge + specs: + bash-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge + specs: + binary-merge (7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge + specs: + citrus-toml-merge (7.1.0) + toml-merge (= 7.1.0) + toml-rb (~> 4.1) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge + specs: + commonmarker-merge (7.1.0) + commonmarker (~> 2.2) + markdown-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge + specs: + dotenv-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge + specs: + go-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge + specs: + json-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem + specs: + kettle-jem (7.1.0) + addressable (>= 2.8, < 3) + ast-crispr-markdown-markly (= 7.1.0) + ast-crispr-ruby-prism (= 7.1.0) + ast-merge (= 7.1.0) + bash-merge (= 7.1.0) + citrus-toml-merge (= 7.1.0) + commonmarker-merge (= 7.1.0) + dotenv-merge (= 7.1.0) + json-merge (= 7.1.0) + kettle-dev (~> 2.3, >= 2.3.5) + kettle-rb (~> 0.1, >= 0.1.4) + kramdown-merge (= 7.1.0) + markdown-merge (= 7.1.0) + markly-merge (= 7.1.0) + prism-merge (= 7.1.0) + psych-merge (= 7.1.0) + rbs (>= 3.10) + rbs-merge (= 7.1.0) + ruby-merge (= 7.1.0) + token-resolver (~> 2.0, >= 2.0.4) + toml-merge (= 7.1.0) + toml-rb (~> 4.2) + tree_haver (= 7.1.0) + yaml-merge (= 7.1.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge + specs: + kramdown-merge (7.1.0) + kramdown (~> 2.5) + markdown-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge + specs: + markdown-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge + specs: + markly-merge (7.1.0) + markdown-merge (= 7.1.0) + markly (~> 0.9) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge + specs: + parslet-toml-merge (7.1.0) + toml (~> 0.3) + toml-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge + specs: + plain-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge + specs: + prism-merge (7.1.0) + prism (~> 1.6) + ruby-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge + specs: + psych-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + yaml-merge (= 7.1.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge + specs: + rbs-merge (7.1.0) + ast-merge (= 7.1.0) + rbs (>= 3.10) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge + specs: + ruby-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge + specs: + rust-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb + specs: + smorg-rb (7.1.0) + ast-merge (= 7.1.0) + ast-merge-git (= 7.1.0) + diff-lcs (~> 1.5) + go-merge (= 7.1.0) + json-merge (= 7.1.0) + kettle-jem (= 7.1.0) + markly-merge (= 7.1.0) + plain-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge + specs: + toml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver specs: tree_haver (7.1.0) citrus (~> 3.0) @@ -33,6 +252,29 @@ PATH tree_sitter_language_pack (>= 1.13.2, < 2.0) version_gem (~> 1.1, >= 1.1.9) +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge + specs: + typescript-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge + specs: + yaml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge + specs: + zip-merge (7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + GEM remote: https://gem.coop/ specs: @@ -48,16 +290,19 @@ GEM rubocop (>= 1.0) version_gem (~> 1.1, >= 1.1.14) ast (2.4.3) + backports (3.25.3) benchmark (0.5.0) bigdecimal (4.1.2) cgi (0.5.2) citrus (3.0.2) cmdparse (3.0.7) + commonmarker (2.9.0-x86_64-linux) concurrent-ruby (1.3.8) date (3.5.1) debug (1.11.1) irb (~> 1.10) reline (>= 0.3.8) + delegate (0.6.1) diff-lcs (1.6.2) diffy (3.4.4) dry-configurable (1.4.0) @@ -89,6 +334,7 @@ GEM dry-inflector (~> 1.0) dry-logic (~> 1.4) zeitwerk (~> 2.6) + emoji_regex (15.0.0) erb (6.0.6) gem_bench (2.0.5) bundler (>= 1.14) @@ -106,6 +352,14 @@ GEM rdoc (>= 4.0.0) reline (>= 0.4.2) json (2.21.1) + kettle-dev (2.3.9) + emoji_regex (>= 15.0) + kettle-rb (~> 0.1, >= 0.1.2) + kettle-test (~> 2.0, >= 2.0.4) + ruby-progressbar (~> 1.13) + kettle-drift (1.0.6) + version_gem (~> 1.1, >= 1.1.14) + kettle-rb (0.1.5) kettle-soup-cover (3.0.4) kettle-wash (~> 0.1, >= 0.1.0) simplecov (>= 1.0) @@ -113,6 +367,17 @@ GEM simplecov-console (~> 0.9, >= 0.9.5) simplecov-rcov (~> 0.3, >= 0.3.7) simplecov_lcov_formatter (~> 0.9, >= 0.9.0) + kettle-test (2.0.12) + appraisal2 (~> 3.0, >= 3.0.6) + backports (~> 3.0) + rspec (~> 3.0) + rspec-block_is_expected (~> 1.0, >= 1.0.6) + rspec-pending_for (~> 0.1, >= 0.1.20) + rspec-stubbed_env (~> 1.0, >= 1.0.6) + rspec_junit_formatter (~> 0.6) + silent_stream (~> 1.0, >= 1.0.12) + timecop-rspec (~> 1.0, >= 1.0.3) + turbo_tests2 (~> 3.1, >= 3.1.12) kettle-wash (0.1.1) version_gem (~> 1.1, >= 1.1.14) kramdown (2.5.2) @@ -122,6 +387,7 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) + markly (0.16.0) mutex_m (0.3.0) nokogiri (1.19.4-x86_64-linux-gnu) racc (~> 1.4) @@ -129,6 +395,8 @@ GEM openssl (4.0.2) ostruct (0.6.3) parallel (1.28.0) + parallel_tests (5.7.0) + parallel parser (3.3.12.0) ast (~> 2.4.1) racc @@ -162,6 +430,27 @@ GEM reline (0.6.3) io-console (~> 0.5) rexml (3.4.4) + rspec (3.13.2) + rspec-core (~> 3.13.0) + rspec-expectations (~> 3.13.0) + rspec-mocks (~> 3.13.0) + rspec-block_is_expected (1.0.6) + rspec-core (3.13.6) + rspec-support (~> 3.13.0) + rspec-expectations (3.13.5) + diff-lcs (>= 1.2.0, < 2.0) + rspec-support (~> 3.13.0) + rspec-mocks (3.13.8) + diff-lcs (>= 1.2.0, < 2.0) + rspec-support (~> 3.13.0) + rspec-pending_for (0.1.21) + rspec-core (~> 3.0) + ruby_engine (~> 2.0) + ruby_version (~> 1.0) + rspec-stubbed_env (1.0.6) + rspec-support (3.13.7) + rspec_junit_formatter (0.6.0) + rspec-core (>= 2, < 4, != 2.12.0) rubocop (1.88.2) json (~> 2.3) language_server-protocol (~> 3.17.0.2) @@ -249,8 +538,13 @@ GEM rubocop (~> 1.72, >= 1.72.1) rubocop-ast (>= 1.44.0, < 2.0) ruby-progressbar (1.13.0) + ruby_engine (2.0.3) + ruby_version (1.0.3) service_actor (3.9.4) zeitwerk (>= 1.0) + silent_stream (1.0.12) + logger (~> 1.2) + version_gem (>= 1.1.8, < 3) simplecov (1.0.2) simplecov-cobertura (4.0.0) rexml @@ -292,12 +586,26 @@ GEM terminal-table (4.0.0) unicode-display_width (>= 1.1.1, < 4) thor (1.5.0) + timecop (0.9.11) + timecop-rspec (1.0.3) + delegate (~> 0.1) + rspec (~> 3.0) + timecop (>= 0.7, < 1) token-resolver (2.0.5) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.14) + toml (0.3.0) + parslet (>= 1.8.0, < 3.0.0) + toml-rb (4.2.0) + citrus (~> 3.0, > 3.0) + racc (~> 1.7) tree_sitter_language_pack (1.13.3-x86_64-linux) sorbet-runtime (~> 0.5) tsort (0.2.0) + turbo_tests2 (3.2.0) + parallel_tests (>= 3.3.0, < 6) + rspec (>= 3.10) + version_gem (~> 1.1, >= 1.1.14) unicode-display_width (3.2.0) unicode-emoji (~> 4.1) unicode-emoji (4.2.0) @@ -335,20 +643,41 @@ DEPENDENCIES addressable (>= 2.8, < 3) appraisal2-rubocop (~> 1.0, >= 1.0.0) ast-crispr! + ast-crispr-markdown-markly! + ast-crispr-ruby-prism! ast-merge! + ast-merge-git! + ast-template! + bash-merge! benchmark (~> 0.5, >= 0.5.0) + binary-merge! cgi (~> 0.5) + citrus-toml-merge! + commonmarker-merge! debug (>= 1.1) + dotenv-merge! erb (~> 6.0, >= 6.0.6) gem_bench (~> 2.0, >= 2.0.5) + go-merge! html-merge! irb (~> 1.17) + json-merge! + kettle-drift (~> 1.0, >= 1.0.6) + kettle-jem! kettle-soup-cover (~> 3.0, >= 3.0.3) kramdown (~> 2.5, >= 2.5.2) + kramdown-merge! kramdown-parser-gfm (~> 1.1) + markdown-merge! + markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) + parslet-toml-merge! + plain-merge! + prism-merge! + psych-merge! rbs (>= 3.0) + rbs-merge! rdoc (~> 6.11) reek (~> 6.5, >= 6.5.0) rubocop-gradual (~> 0.4, >= 0.4.0) @@ -358,18 +687,25 @@ DEPENDENCIES rubocop-on-rbs (~> 2.0, >= 2.0.0) rubocop-packaging (~> 0.6, >= 0.6.0) rubocop-ruby3_2 (~> 3.0, >= 3.0.6) + ruby-merge! + rust-merge! + smorg-rb! standard (~> 1.56, >= 1.56.0) stringio (>= 3.0) + toml-merge! tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) + typescript-merge! webrick (~> 1.9) yaml-converter (~> 0.2, >= 0.2.3) + yaml-merge! yard (~> 0.9, >= 0.9.45) yard-fence (~> 0.9, >= 0.9.6) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) yard-timekeeper (~> 0.2, >= 0.2.4) yard-yaml (~> 0.2, >= 0.2.3) + zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af @@ -378,17 +714,29 @@ CHECKSUMS appraisal2-rubocop (1.0.0) sha256=b71410fbb014befda5340605a605b7f6f3f012739baf0acc5b4351b592c3258d ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 ast-crispr (7.1.0) + ast-crispr-markdown-markly (7.1.0) + ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) + ast-merge-git (7.1.0) + ast-template (7.1.0) + backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 + bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd + binary-merge (7.1.0) cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 + citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 + commonmarker (2.9.0-x86_64-linux) sha256=8cfe92970eef585a19ddf6613224b91cab64d6029834661bda801f877c9c7f43 + commonmarker-merge (7.1.0) concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 + delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 + dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -396,43 +744,70 @@ CHECKSUMS dry-logic (1.6.0) sha256=da6fedbc0f90fc41f9b0cc7e6f05f5d529d1efaef6c8dcc8e0733f685745cea2 dry-schema (1.16.0) sha256=cd3aaeabc0f1af66ec82a29096d4c4fb92a0a58b9dae29a22b1bbceb78985727 dry-types (1.9.1) sha256=baebeecdb9f8395d6c9d227b62011279440943e3ef2468fe8ccc1ba11467f178 + emoji_regex (15.0.0) sha256=a508b2c0bee561169564e0aec96085020c900520d335e5533fd8e78e59493829 erb (6.0.6) sha256=a9b24986700f5bf127c4f297c5403c3ca41b83b0a316c0cd09a096b56e644ae5 gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 + go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 html-merge (7.1.0) io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 + json-merge (7.1.0) + kettle-dev (2.3.9) + kettle-drift (1.0.6) sha256=46eda08fa4411d1f3c6682a95eef1c9df4e94611b3949f49d4c7b43c0ed356a3 + kettle-jem (7.1.0) + kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f kettle-soup-cover (3.0.4) + kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa + kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 + markdown-merge (7.1.0) + markly (0.16.0) sha256=6f70d79e385b1efc9e171f74c81628826259039fe6c778e03c3924c71dac5511 + markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-x86_64-linux-gnu) sha256=379fae440b28915e3f19d752ce2dcf8465ed2b2fbefd2a7ca0dd497bc981a06a nomono (1.0.9) openssl (4.0.2) sha256=1037ad2868ae58df9ad917891c0c0f9815a1172f6846d4bcdd508e4c2ee747c2 ostruct (0.6.3) sha256=95a2ed4a4bd1d190784e666b47b2d3f078e4a9efda2fccf18f84ddc6538ed912 parallel (1.28.0) sha256=33e6de1484baf2524792d178b0913fc8eb94c628d6cfe45599ad4458c638c970 + parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 + parslet-toml-merge (7.1.0) + plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 + prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 + psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 + rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb reline (0.6.3) sha256=1198b04973565b36ec0f11542ab3f5cfeeec34823f4e54cebde90968092b1835 rexml (3.4.4) sha256=19e0a2c3425dfbf2d4fc1189747bdb2f849b6c5e74180401b15734bc97b5d142 + rspec (3.13.2) sha256=206284a08ad798e61f86d7ca3e376718d52c0bc944626b2349266f239f820587 + rspec-block_is_expected (1.0.6) sha256=bbad3dc30eba93becf4dcb3fd1bff5f37f6e212ab5cbf6132c07edba6ff74282 + rspec-core (3.13.6) sha256=a8823c6411667b60a8bca135364351dda34cd55e44ff94c4be4633b37d828b2d + rspec-expectations (3.13.5) sha256=33a4d3a1d95060aea4c94e9f237030a8f9eae5615e9bd85718fe3a09e4b58836 + rspec-mocks (3.13.8) sha256=086ad3d3d17533f4237643de0b5c42f04b66348c28bf6b9c2d3f4a3b01af1d47 + rspec-pending_for (0.1.21) sha256=c87fda50c20f8faca72d9cfa6a936abffd37860343f14aced95bbb29b8ae96bf + rspec-stubbed_env (1.0.6) sha256=6467a6eb0f72146d443ffb0c5a2a549d8812e59c04fbc81e03cd914ebf1f28dc + rspec-support (3.13.7) sha256=0640e5570872aafefd79867901deeeeb40b0c9875a36b983d85f54fb7381c47c + rspec_junit_formatter (0.6.0) sha256=40dde674e6ae4e6cc0ff560da25497677e34fefd2338cc467a8972f602b62b15 rubocop (1.88.2) sha256=8def251c90cd955feb4daa3edc0ab56893250c4ce90ef81e6c80c03f9a939bbf rubocop-ast (1.50.0) sha256=b9ca88300da0803ee222ad20cdb30494c0a784eed06fdc35d254b06d662788db rubocop-capybara (2.23.0) sha256=f9ea1ba3a7561ee8e88cf76fc378ce517ce5327155f305ee7b5c2500e5aee357 @@ -452,13 +827,19 @@ CHECKSUMS rubocop-rspec_rails (2.32.0) sha256=4a0d641c72f6ebb957534f539d9d0a62c47abd8ce0d0aeee1ef4701e892a9100 rubocop-ruby3_2 (3.0.7) sha256=f53dd6d286fb05186214fc6ec116783e7f837030918e8931c05de773e98f8466 rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 + ruby-merge (7.1.0) ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 + ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa + ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 + rust-merge (7.1.0) service_actor (3.9.4) sha256=e63b523630b9a7e62959b2a90113b08d2565b5de9c148557b281ef847c9539ce + silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed + smorg-rb (7.1.0) sorbet-runtime (0.6.13351) sha256=f8fee17c6e3edf835dc6823d26afb9a7c8969c6710d1fabe2fb43f4e0c15c64f standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b @@ -469,15 +850,23 @@ CHECKSUMS strscan (3.1.8) sha256=aae2db611a225559f21ffbb71765c9a4e60fd262534a9ea84f4f11c7f32f679e terminal-table (4.0.0) sha256=f504793203f8251b2ea7c7068333053f0beeea26093ec9962e62ea79f94301d2 thor (1.5.0) sha256=e3a9e55fe857e44859ce104a84675ab6e8cd59c650a49106a05f55f136425e73 + timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 + timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.5) sha256=b852f924287ffb58a440856e862b056c8ad97e74b4b2526cee43e0771f40c25c + toml (0.3.0) sha256=0a91d0f76a9036e84e44f95693b12f58d358c1df3ac8e3b5271f2056ecc6e4b9 + toml-merge (7.1.0) + toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f + turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 + typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 webrick (1.9.2) sha256=beb4a15fc474defed24a3bda4ffd88a490d517c9e4e6118c3edce59e45864131 yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 + yaml-merge (7.1.0) yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd @@ -485,6 +874,7 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 + zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH diff --git a/gems/rbs-merge/.rubocop_gradual.lock b/gems/rbs-merge/.rubocop_gradual.lock new file mode 100644 index 000000000..1bea03e30 --- /dev/null +++ b/gems/rbs-merge/.rubocop_gradual.lock @@ -0,0 +1,413 @@ +{ + ".simplecov:4195855765": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "Rakefile:3295679373": [ + [18, 121, 17, "Layout/LineLength: Line is too long. [137/120]", 174264873], + [79, 3, 1023, "Metrics/BlockLength: Block has too many lines. [32/25]", 54868638], + [163, 121, 22, "Layout/LineLength: Line is too long. [142/120]", 1367093088], + [166, 121, 18, "Layout/LineLength: Line is too long. [138/120]", 3881946477] + ], + "gemfiles/modular/benchmark/r4/v0.5.gemfile:3644720371": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/benchmark/vHEAD.gemfile:2838879269": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/cgi/r4/v0.5.gemfile:367169322": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/cgi/vHEAD.gemfile:2729540777": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/erb/r2/v3.0.gemfile:1688285565": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/erb/r3/v5.0.gemfile:2394062339": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/erb/r4/v5.0.gemfile:2394062339": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/erb/vHEAD.gemfile:981929959": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/mutex_m/r2/v0.3.gemfile:4055275004": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/mutex_m/r3/v0.3.gemfile:4055275004": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/mutex_m/r4/v0.3.gemfile:4055275004": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/mutex_m/vHEAD.gemfile:556854763": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/rspec.gemfile:2263543889": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/stringio/r2/v3.0.gemfile:821604304": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/stringio/r3/v3.0.gemfile:821604304": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/stringio/r4/v3.0.gemfile:821604304": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/stringio/vHEAD.gemfile:1045839691": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/webrick/r4/v1.9.gemfile:3092661193": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/webrick/vHEAD.gemfile:3867684682": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/x_std_libs.gemfile:2324400122": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/x_std_libs/r2/libs.gemfile:36276542": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] + ], + "gemfiles/modular/x_std_libs/r3/libs.gemfile:4030570297": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] + ], + "gemfiles/modular/x_std_libs/r4/libs.gemfile:732451732": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] + ], + "gemfiles/modular/x_std_libs/vHEAD.gemfile:2390363993": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] + ], + "lib/rbs-merge.rb:334311121": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`rbs-merge.rb`) should use snake_case.", 5381], + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "lib/rbs/merge.rb:688136140": [ + [17, 3, 12, "Style/Documentation: Missing top-level documentation comment for `module Rbs::Merge`.", 2866359175], + [104, 7, 1197, "Metrics/MethodLength: Method has too many lines. [22/10]", 564456261] + ], + "lib/rbs/merge/backends/rbs_backend.rb:2885387755": [ + [48, 11, 555, "Metrics/MethodLength: Method has too many lines. [13/10]", 2078142514], + [81, 11, 658, "Metrics/MethodLength: Method has too many lines. [11/10]", 324484142], + [172, 11, 527, "Metrics/MethodLength: Method has too many lines. [14/10]", 631898529], + [240, 15, 11, "Naming/PredicatePrefix: Rename `has_errors?` to `errors?`.", 1181419252], + [263, 9, 9332, "Metrics/ClassLength: Class has too many lines. [135/100]", 1906483935], + [290, 11, 1914, "Metrics/AbcSize: Assignment Branch Condition size for `type` is too high. [<0, 9, 23> 24.7/17]", 3636991776], + [290, 11, 1914, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `type` is too high. [24/7]", 3636991776], + [290, 11, 1914, "Metrics/MethodLength: Method has too many lines. [28/10]", 3636991776], + [363, 11, 489, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `end_point` is too high. [8/7]", 844861810], + [504, 27, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765] + ], + "lib/rbs/merge/comment_tracker.rb:1938176986": [ + [28, 7, 767, "Metrics/MethodLength: Method has too many lines. [15/10]", 752916075], + [60, 7, 416, "Metrics/MethodLength: Method has too many lines. [12/10]", 2715172162] + ], + "lib/rbs/merge/conflict_resolver.rb:16534551": [ + [16, 5, 9993, "Metrics/ClassLength: Class has too many lines. [147/100]", 1570883163], + [46, 7, 1614, "Metrics/MethodLength: Method has too many lines. [23/10]", 1004723330], + [46, 45, 14, "Lint/UnusedMethodArgument: Unused method argument - `template_index`.", 1809801172], + [46, 62, 10, "Lint/UnusedMethodArgument: Unused method argument - `dest_index`.", 2703999490], + [124, 7, 717, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `resolve_preference` is too high. [8/7]", 2783267415], + [124, 7, 717, "Metrics/MethodLength: Method has too many lines. [12/10]", 2783267415], + [158, 7, 949, "Metrics/AbcSize: Assignment Branch Condition size for `extract_declaration_text` is too high. [<9, 19, 14> 25.26/17]", 4132302840], + [158, 7, 949, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `extract_declaration_text` is too high. [13/7]", 4132302840], + [158, 7, 949, "Metrics/MethodLength: Method has too many lines. [18/10]", 4132302840], + [158, 7, 949, "Metrics/PerceivedComplexity: Perceived complexity for `extract_declaration_text` is too high. [14/8]", 4132302840], + [244, 7, 565, "Metrics/MethodLength: Method has too many lines. [13/10]", 375776463], + [244, 11, 12, "Naming/PredicatePrefix: Rename `has_members?` to `members?`.", 496913372] + ], + "lib/rbs/merge/file_aligner.rb:157117932": [ + [32, 7, 128, "Lint/UselessMethodDefinition: Useless method definition detected.", 4031328363] + ], + "lib/rbs/merge/file_analysis.rb:4205990536": [ + [23, 5, 20642, "Metrics/ClassLength: Class has too many lines. [403/100]", 3271819659], + [59, 7, 1146, "Metrics/MethodLength: Method has too many lines. [20/10]", 1625645012], + [191, 7, 398, "Metrics/MethodLength: Method has too many lines. [12/10]", 4157341657], + [211, 7, 719, "Metrics/MethodLength: Method has too many lines. [13/10]", 2571132513], + [235, 7, 965, "Metrics/AbcSize: Assignment Branch Condition size for `compute_tree_sitter_signature` is too high. [<3, 5, 21> 21.79/17]", 2963702282], + [235, 7, 965, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `compute_tree_sitter_signature` is too high. [22/7]", 2963702282], + [235, 7, 965, "Metrics/MethodLength: Method has too many lines. [26/10]", 2963702282], + [235, 7, 965, "Metrics/PerceivedComplexity: Perceived complexity for `compute_tree_sitter_signature` is too high. [16/8]", 2963702282], + [269, 7, 996, "Metrics/AbcSize: Assignment Branch Condition size for `extract_tree_sitter_node_name` is too high. [<5, 16, 10> 19.52/17]", 300940102], + [269, 7, 996, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `extract_tree_sitter_node_name` is too high. [11/7]", 300940102], + [269, 7, 996, "Metrics/MethodLength: Method has too many lines. [24/10]", 300940102], + [269, 7, 996, "Metrics/PerceivedComplexity: Perceived complexity for `extract_tree_sitter_node_name` is too high. [11/8]", 300940102], + [320, 7, 834, "Metrics/MethodLength: Method has too many lines. [16/10]", 658496547], + [380, 7, 1612, "Metrics/AbcSize: Assignment Branch Condition size for `extract_tree_sitter_declarations` is too high. [<8, 18, 11> 22.56/17]", 1899595676], + [380, 7, 1612, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `extract_tree_sitter_declarations` is too high. [10/7]", 1899595676], + [380, 7, 1612, "Metrics/MethodLength: Method has too many lines. [23/10]", 1899595676], + [380, 7, 1612, "Metrics/PerceivedComplexity: Perceived complexity for `extract_tree_sitter_declarations` is too high. [11/8]", 1899595676], + [449, 7, 569, "Metrics/MethodLength: Method has too many lines. [13/10]", 210550095], + [471, 7, 1133, "Metrics/AbcSize: Assignment Branch Condition size for `build_freeze_blocks` is too high. [<7, 22, 6> 23.85/17]", 4016218974], + [471, 7, 1133, "Metrics/MethodLength: Method has too many lines. [29/10]", 4016218974], + [528, 7, 486, "Metrics/MethodLength: Method has too many lines. [12/10]", 618123864], + [528, 7, 486, "Metrics/PerceivedComplexity: Perceived complexity for `node_start_line` is too high. [9/8]", 618123864], + [545, 7, 472, "Metrics/MethodLength: Method has too many lines. [12/10]", 1339916888], + [545, 7, 472, "Metrics/PerceivedComplexity: Perceived complexity for `node_end_line` is too high. [9/8]", 1339916888], + [579, 7, 1868, "Metrics/AbcSize: Assignment Branch Condition size for `compute_rbs_gem_signature` is too high. [<0, 45, 23> 50.54/17]", 2652509672], + [579, 7, 1868, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `compute_rbs_gem_signature` is too high. [23/7]", 2652509672], + [579, 7, 1868, "Metrics/MethodLength: Method has too many lines. [43/10]", 2652509672], + [579, 7, 1868, "Metrics/PerceivedComplexity: Perceived complexity for `compute_rbs_gem_signature` is too high. [9/8]", 2652509672] + ], + "lib/rbs/merge/freeze_node.rb:2942544870": [ + [34, 121, 9, "Layout/LineLength: Line is too long. [129/120]", 201145846], + [39, 7, 577, "Metrics/MethodLength: Method has too many lines. [11/10]", 2189574632], + [39, 21, 186, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [8/5]", 1006469938], + [78, 7, 1506, "Metrics/AbcSize: Assignment Branch Condition size for `validate_structure!` is too high. [<12, 12, 17> 24.02/17]", 1543687562], + [78, 7, 1506, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `validate_structure!` is too high. [12/7]", 1543687562], + [78, 7, 1506, "Metrics/MethodLength: Method has too many lines. [25/10]", 1543687562], + [78, 7, 1506, "Metrics/PerceivedComplexity: Perceived complexity for `validate_structure!` is too high. [12/8]", 1543687562], + [150, 7, 891, "Metrics/AbcSize: Assignment Branch Condition size for `extract_node_name` is too high. [<4, 21, 12> 24.52/17]", 1223188123], + [150, 7, 891, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `extract_node_name` is too high. [13/7]", 1223188123], + [150, 7, 891, "Metrics/MethodLength: Method has too many lines. [18/10]", 1223188123], + [150, 7, 891, "Metrics/PerceivedComplexity: Perceived complexity for `extract_node_name` is too high. [13/8]", 1223188123], + [162, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5861336] + ], + "lib/rbs/merge/merge_result.rb:3535749451": [ + [18, 5, 12502, "Metrics/ClassLength: Class has too many lines. [214/100]", 1397119540], + [91, 7, 966, "Metrics/MethodLength: Method has too many lines. [14/10]", 3349669346], + [178, 7, 1846, "Metrics/AbcSize: Assignment Branch Condition size for `extract_lines` is too high. [<15, 23, 16> 31.78/17]", 1426505008], + [178, 7, 1846, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `extract_lines` is too high. [15/7]", 1426505008], + [178, 7, 1846, "Metrics/MethodLength: Method has too many lines. [31/10]", 1426505008], + [178, 7, 1846, "Metrics/PerceivedComplexity: Perceived complexity for `extract_lines` is too high. [16/8]", 1426505008], + [229, 7, 709, "Metrics/AbcSize: Assignment Branch Condition size for `trailing_lines_for` is too high. [<4, 15, 9> 17.94/17]", 3530206652], + [229, 7, 709, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `trailing_lines_for` is too high. [9/7]", 3530206652], + [229, 7, 709, "Metrics/MethodLength: Method has too many lines. [18/10]", 3530206652], + [229, 7, 709, "Metrics/PerceivedComplexity: Perceived complexity for `trailing_lines_for` is too high. [10/8]", 3530206652], + [230, 47, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], + [252, 7, 475, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `layout_gap_lines_for` is too high. [9/7]", 1865599133], + [252, 7, 475, "Metrics/PerceivedComplexity: Perceived complexity for `layout_gap_lines_for` is too high. [9/8]", 1865599133], + [254, 47, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], + [265, 33, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], + [270, 7, 682, "Metrics/AbcSize: Assignment Branch Condition size for `deduplicate_leading_comment_overlap` is too high. [<4, 15, 9> 17.94/17]", 4227245480], + [270, 7, 682, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `deduplicate_leading_comment_overlap` is too high. [8/7]", 4227245480], + [270, 7, 682, "Metrics/MethodLength: Method has too many lines. [11/10]", 4227245480] + ], + "lib/rbs/merge/node_type_normalizer.rb:2788764230": [ + [65, 5, 10747, "Metrics/ModuleLength: Module has too many lines. [199/100]", 63560324], + [250, 9, 693, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `canonical_type_for_node` is too high. [9/7]", 908800634], + [250, 9, 693, "Metrics/MethodLength: Method has too many lines. [16/10]", 908800634], + [250, 9, 693, "Metrics/PerceivedComplexity: Perceived complexity for `canonical_type_for_node` is too high. [9/8]", 908800634], + [323, 9, 689, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `refine_tree_sitter_attribute_type` is too high. [9/7]", 2340352499], + [323, 9, 689, "Metrics/MethodLength: Method has too many lines. [13/10]", 2340352499], + [323, 9, 689, "Metrics/PerceivedComplexity: Perceived complexity for `refine_tree_sitter_attribute_type` is too high. [9/8]", 2340352499], + [343, 9, 475, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `refine_tree_sitter_variable_type` is too high. [8/7]", 536330497], + [343, 9, 475, "Metrics/MethodLength: Method has too many lines. [14/10]", 536330497] + ], + "lib/rbs/merge/node_wrapper.rb:1434186839": [ + [26, 5, 14933, "Metrics/ClassLength: Class has too many lines. [344/100]", 4139761414], + [37, 17, 84, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 366036293], + [264, 7, 831, "Metrics/AbcSize: Assignment Branch Condition size for `text` is too high. [<3, 32, 20> 37.85/17]", 980238327], + [264, 7, 831, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `text` is too high. [18/7]", 980238327], + [264, 7, 831, "Metrics/MethodLength: Method has too many lines. [18/10]", 980238327], + [264, 7, 831, "Metrics/PerceivedComplexity: Perceived complexity for `text` is too high. [20/8]", 980238327], + [268, 47, 2, "Lint/SafeNavigationConsistency: Use `.` instead of unnecessary `&.`.", 5858765], + [280, 22, 14, "Style/NumericPredicate: Use `start_line.positive?` instead of `start_line > 0`.", 792111162], + [301, 7, 1209, "Metrics/AbcSize: Assignment Branch Condition size for `signature` is too high. [<1, 25, 20> 32.03/17]", 4281557215], + [301, 7, 1209, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `signature` is too high. [21/7]", 4281557215], + [301, 7, 1209, "Metrics/MethodLength: Method has too many lines. [45/10]", 4281557215], + [351, 7, 384, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `method_kind` is too high. [8/7]", 563626808], + [351, 7, 384, "Metrics/PerceivedComplexity: Perceived complexity for `method_kind` is too high. [9/8]", 563626808], + [423, 7, 935, "Metrics/MethodLength: Method has too many lines. [21/10]", 3557799127], + [469, 7, 667, "Metrics/AbcSize: Assignment Branch Condition size for `extract_child_texts` is too high. [<6, 16, 8> 18.87/17]", 1979652559], + [469, 7, 667, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `extract_child_texts` is too high. [9/7]", 1979652559], + [469, 7, 667, "Metrics/MethodLength: Method has too many lines. [12/10]", 1979652559], + [469, 7, 667, "Metrics/PerceivedComplexity: Perceived complexity for `extract_child_texts` is too high. [9/8]", 1979652559], + [487, 7, 583, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `extract_tree_sitter_visibility_kind` is too high. [9/7]", 2002684122], + [487, 7, 583, "Metrics/MethodLength: Method has too many lines. [13/10]", 2002684122], + [487, 7, 583, "Metrics/PerceivedComplexity: Perceived complexity for `extract_tree_sitter_visibility_kind` is too high. [9/8]", 2002684122], + [532, 7, 557, "Metrics/MethodLength: Method has too many lines. [14/10]", 1753294094] + ], + "lib/rbs/merge/smart_merger.rb:30342291": [ + [43, 5, 35445, "Metrics/ClassLength: Class has too many lines. [704/100]", 1644944892], + [87, 7, 1188, "Metrics/MethodLength: Method has too many lines. [17/10]", 2908064588], + [87, 21, 447, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [14/5]", 1344979847], + [183, 7, 805, "Metrics/AbcSize: Assignment Branch Condition size for `perform_merge` is too high. [<6, 15, 8> 18.03/17]", 1638854701], + [183, 7, 805, "Metrics/MethodLength: Method has too many lines. [14/10]", 1638854701], + [209, 7, 572, "Metrics/MethodLength: Method has too many lines. [15/10]", 3471574631], + [306, 7, 1240, "Metrics/AbcSize: Assignment Branch Condition size for `process_match` is too high. [<1, 28, 7> 28.88/17]", 1632629493], + [306, 7, 1240, "Metrics/MethodLength: Method has too many lines. [29/10]", 1632629493], + [371, 7, 550, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `removed_declaration_comment_lines` is too high. [9/7]", 112034646], + [371, 7, 550, "Metrics/MethodLength: Method has too many lines. [12/10]", 112034646], + [371, 7, 550, "Metrics/PerceivedComplexity: Perceived complexity for `removed_declaration_comment_lines` is too high. [9/8]", 112034646], + [400, 7, 675, "Metrics/MethodLength: Method has too many lines. [13/10]", 1415352570], + [426, 7, 2637, "Metrics/AbcSize: Assignment Branch Condition size for `reconstruct_declaration_with_merged_members` is too high. [<20, 23, 22> 37.59/17]", 1250076424], + [426, 7, 2637, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `reconstruct_declaration_with_merged_members` is too high. [17/7]", 1250076424], + [426, 7, 2637, "Metrics/MethodLength: Method has too many lines. [50/10]", 1250076424], + [426, 7, 2637, "Metrics/PerceivedComplexity: Perceived complexity for `reconstruct_declaration_with_merged_members` is too high. [17/8]", 1250076424], + [464, 20, 46, "Style/StringConcatenation: Prefer string interpolation to string concatenation.", 1375387925], + [487, 9, 28, "Style/StringConcatenation: Prefer string interpolation to string concatenation.", 2709565617], + [490, 7, 1524, "Metrics/AbcSize: Assignment Branch Condition size for `recursive_body_lines_for_declaration` is too high. [<8, 23, 9> 25.96/17]", 1351072746], + [490, 7, 1524, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `recursive_body_lines_for_declaration` is too high. [10/7]", 1351072746], + [490, 7, 1524, "Metrics/MethodLength: Method has too many lines. [20/10]", 1351072746], + [490, 7, 1524, "Metrics/PerceivedComplexity: Perceived complexity for `recursive_body_lines_for_declaration` is too high. [10/8]", 1351072746], + [490, 47, 139, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 652517575], + [518, 7, 2987, "Metrics/AbcSize: Assignment Branch Condition size for `merge_member_lines` is too high. [<6, 42, 12> 44.09/17]", 1498622641], + [518, 7, 2987, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `merge_member_lines` is too high. [11/7]", 1498622641], + [518, 7, 2987, "Metrics/MethodLength: Method has too many lines. [74/10]", 1498622641], + [520, 9, 2820, "Metrics/BlockLength: Block has too many lines. [71/25]", 3843526257], + [608, 7, 1779, "Metrics/AbcSize: Assignment Branch Condition size for `align_member_lists` is too high. [<14, 26, 14> 32.68/17]", 3585753868], + [608, 7, 1779, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `align_member_lists` is too high. [14/7]", 3585753868], + [608, 7, 1779, "Metrics/MethodLength: Method has too many lines. [49/10]", 3585753868], + [608, 7, 1779, "Metrics/PerceivedComplexity: Perceived complexity for `align_member_lists` is too high. [15/8]", 3585753868], + [715, 7, 605, "Metrics/AbcSize: Assignment Branch Condition size for `split_top_level_return_type` is too high. [<7, 14, 10> 18.57/17]", 1731525207], + [715, 7, 605, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `split_top_level_return_type` is too high. [8/7]", 1731525207], + [715, 7, 605, "Metrics/MethodLength: Method has too many lines. [17/10]", 1731525207], + [752, 7, 2211, "Metrics/AbcSize: Assignment Branch Condition size for `extract_statement_lines_with_leading_comments` is too high. [<10, 12, 12> 19.7/17]", 3268393611], + [752, 7, 2211, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `extract_statement_lines_with_leading_comments` is too high. [9/7]", 3268393611], + [752, 7, 2211, "Metrics/MethodLength: Method has too many lines. [37/10]", 3268393611], + [752, 7, 2211, "Metrics/PerceivedComplexity: Perceived complexity for `extract_statement_lines_with_leading_comments` is too high. [12/8]", 3268393611], + [752, 56, 235, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 3178974338], + [800, 47, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], + [822, 7, 688, "Metrics/AbcSize: Assignment Branch Condition size for `container_header_lines` is too high. [<8, 12, 11> 18.14/17]", 1754168481], + [822, 7, 688, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `container_header_lines` is too high. [10/7]", 1754168481], + [822, 7, 688, "Metrics/PerceivedComplexity: Perceived complexity for `container_header_lines` is too high. [10/8]", 1754168481], + [849, 35, 148, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 2125883980], + [864, 33, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], + [869, 7, 841, "Metrics/MethodLength: Method has too many lines. [15/10]", 3400690599], + [892, 7, 1788, "Metrics/AbcSize: Assignment Branch Condition size for `collapse_cross_source_preamble_prefixes` is too high. [<14, 21, 9> 26.8/17]", 3130187278], + [892, 7, 1788, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `collapse_cross_source_preamble_prefixes` is too high. [9/7]", 3130187278], + [892, 7, 1788, "Metrics/MethodLength: Method has too many lines. [31/10]", 3130187278], + [892, 7, 1788, "Metrics/PerceivedComplexity: Perceived complexity for `collapse_cross_source_preamble_prefixes` is too high. [9/8]", 3130187278], + [932, 7, 533, "Metrics/MethodLength: Method has too many lines. [15/10]", 4188914818] + ], + "rbs-merge.gemspec:435779253": [ + [126, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 2821357214], + [137, 121, 50, "Layout/LineLength: Line is too long. [170/120]", 3888612416], + [138, 121, 29, "Layout/LineLength: Line is too long. [149/120]", 981994949] + ], + "spec/integration/reproducible_merge_spec.rb:884028812": [ + [9, 1, 7880, "Metrics/BlockLength: Block has too many lines. [181/25]", 921020609], + [14, 3, 4384, "Metrics/BlockLength: Block has too many lines. [85/25]", 628655161], + [15, 5, 3507, "Metrics/BlockLength: Block has too many lines. [65/25]", 2935184196], + [56, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5858910], + [62, 121, 9, "Layout/LineLength: Line is too long. [129/120]", 50415752], + [87, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1546684737], + [133, 3, 1507, "Metrics/BlockLength: Block has too many lines. [37/25]", 1415839468] + ], + "spec/rbs/merge/comment_behavior_matrix_spec.rb:2043528618": [ + [14, 45, 6, "Lint/UnusedBlockArgument: Unused block argument - `inline`. If it's necessary, use `_` or `_inline` as an argument name to indicate that it won't be used.", 1605470060], + [18, 121, 24, "Layout/LineLength: Line is too long. [144/120]", 253885993], + [19, 121, 45, "Layout/LineLength: Line is too long. [165/120]", 1702591521] + ], + "spec/rbs/merge/comment_tracker_spec.rb:1831412931": [ + [5, 1, 14574, "Metrics/BlockLength: Block has too many lines. [306/25]", 1598998757], + [8, 3, 3272, "Metrics/BlockLength: Block has too many lines. [67/25]", 935176133], + [95, 3, 1130, "Metrics/BlockLength: Block has too many lines. [28/25]", 204252301], + [143, 3, 1704, "Metrics/BlockLength: Block has too many lines. [32/25]", 1579622084], + [209, 3, 5815, "Metrics/BlockLength: Block has too many lines. [112/25]", 433112678] + ], + "spec/rbs/merge/conflict_resolver_spec.rb:999961156": [ + [8, 1, 19854, "Metrics/BlockLength: Block has too many lines. [491/25]", 3942921818], + [9, 3, 1428, "Metrics/BlockLength: Block has too many lines. [36/25]", 529294185], + [56, 3, 1199, "Metrics/BlockLength: Block has too many lines. [28/25]", 73504201], + [93, 3, 1277, "Metrics/BlockLength: Block has too many lines. [29/25]", 595351018], + [190, 3, 7078, "Metrics/BlockLength: Block has too many lines. [149/25]", 3739681265], + [296, 5, 1646, "Metrics/BlockLength: Block has too many lines. [33/25]", 3128279135], + [302, 7, 1292, "Metrics/BlockLength: Block has too many lines. [27/25]", 729602127], + [404, 3, 4548, "Metrics/BlockLength: Block has too many lines. [114/25]", 2619563374], + [420, 5, 922, "Metrics/BlockLength: Block has too many lines. [26/25]", 3893264586], + [452, 5, 960, "Metrics/BlockLength: Block has too many lines. [26/25]", 3053707146] + ], + "spec/rbs/merge/file_aligner_spec.rb:2643720547": [ + [7, 1, 21476, "Metrics/BlockLength: Block has too many lines. [555/25]", 4145069110], + [65, 3, 1123, "Metrics/BlockLength: Block has too many lines. [28/25]", 1358831340], + [188, 3, 1226, "Metrics/BlockLength: Block has too many lines. [34/25]", 1337144492], + [246, 3, 4891, "Metrics/BlockLength: Block has too many lines. [152/25]", 125990895], + [436, 3, 1943, "Metrics/BlockLength: Block has too many lines. [34/25]", 4126970167], + [483, 3, 3944, "Metrics/BlockLength: Block has too many lines. [94/25]", 2604333848], + [565, 5, 1328, "Metrics/BlockLength: Block has too many lines. [27/25]", 1994971578] + ], + "spec/rbs/merge/file_analysis_spec.rb:952231308": [ + [15, 1, 54363, "Metrics/BlockLength: Block has too many lines. [1205/25]", 2485884639], + [16, 3, 1272, "Metrics/BlockLength: Block has too many lines. [38/25]", 1778989479], + [17, 5, 1210, "Metrics/BlockLength: Block has too many lines. [37/25]", 1755177515], + [67, 3, 1152, "Metrics/BlockLength: Block has too many lines. [33/25]", 2931980952], + [68, 5, 1083, "Metrics/BlockLength: Block has too many lines. [32/25]", 3589815947], + [136, 3, 982, "Metrics/BlockLength: Block has too many lines. [30/25]", 1355840781], + [137, 5, 929, "Metrics/BlockLength: Block has too many lines. [29/25]", 3738902933], + [200, 3, 1559, "Metrics/BlockLength: Block has too many lines. [30/25]", 3203356148], + [201, 5, 1493, "Metrics/BlockLength: Block has too many lines. [29/25]", 1389049628], + [860, 3, 2525, "Metrics/BlockLength: Block has too many lines. [42/25]", 2701315631], + [861, 5, 2455, "Metrics/BlockLength: Block has too many lines. [41/25]", 1293659790], + [884, 121, 5, "Layout/LineLength: Line is too long. [125/120]", 193270906], + [919, 121, 23, "Layout/LineLength: Line is too long. [143/120]", 115067835], + [948, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5858795], + [954, 3, 3548, "Metrics/BlockLength: Block has too many lines. [59/25]", 2573657607], + [955, 5, 3497, "Metrics/BlockLength: Block has too many lines. [58/25]", 14776664], + [982, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2085251945], + [1017, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 2659900392], + [1038, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 2659900392], + [1091, 3, 1750, "Metrics/BlockLength: Block has too many lines. [29/25]", 460836946], + [1092, 5, 1693, "Metrics/BlockLength: Block has too many lines. [28/25]", 1601111212], + [1135, 3, 1948, "Metrics/BlockLength: Block has too many lines. [41/25]", 4061538475], + [1136, 5, 1892, "Metrics/BlockLength: Block has too many lines. [40/25]", 4081702319], + [1195, 3, 2571, "Metrics/BlockLength: Block has too many lines. [55/25]", 3959149994], + [1265, 3, 2440, "Metrics/BlockLength: Block has too many lines. [52/25]", 2164819729], + [1332, 3, 2008, "Metrics/BlockLength: Block has too many lines. [39/25]", 609327574], + [1379, 3, 1938, "Metrics/BlockLength: Block has too many lines. [38/25]", 361672068], + [1425, 3, 1995, "Metrics/BlockLength: Block has too many lines. [39/25]", 4024875480], + [1472, 3, 1992, "Metrics/BlockLength: Block has too many lines. [39/25]", 1156260241] + ], + "spec/rbs/merge/freeze_node_spec.rb:2278400615": [ + [8, 1, 13268, "Metrics/BlockLength: Block has too many lines. [327/25]", 1590692835], + [9, 3, 2116, "Metrics/BlockLength: Block has too many lines. [43/25]", 4215218715], + [98, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 3784984989], + [99, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1182436848], + [331, 3, 2919, "Metrics/BlockLength: Block has too many lines. [65/25]", 1415484725] + ], + "spec/rbs/merge/merge_result_spec.rb:2449518259": [ + [8, 1, 20574, "Metrics/BlockLength: Block has too many lines. [454/25]", 736738811], + [53, 3, 1244, "Metrics/BlockLength: Block has too many lines. [31/25]", 3686452170] + ], + "spec/rbs/merge/smart_merger_removal_mode_compliance_spec.rb:3475743041": [ + [7, 1, 1860, "Metrics/BlockLength: Block has too many lines. [66/25]", 3469987127], + [8, 3, 1798, "Metrics/BlockLength: Block has too many lines. [65/25]", 778477682] + ], + "spec/rbs/merge/smart_merger_spec.rb:40056830": [ + [14, 1, 46017, "Metrics/BlockLength: Block has too many lines. [1256/25]", 36529752], + [179, 3, 10886, "Metrics/BlockLength: Block has too many lines. [286/25]", 1693926280], + [345, 5, 985, "Metrics/BlockLength: Block has too many lines. [26/25]", 3397066157], + [381, 5, 1063, "Metrics/BlockLength: Block has too many lines. [26/25]", 2718784043], + [491, 5, 1135, "Metrics/BlockLength: Block has too many lines. [26/25]", 3797285781], + [527, 5, 1213, "Metrics/BlockLength: Block has too many lines. [26/25]", 3686078390], + [566, 3, 2766, "Metrics/BlockLength: Block has too many lines. [84/25]", 3927490181], + [679, 3, 1714, "Metrics/BlockLength: Block has too many lines. [54/25]", 386494661], + [751, 3, 5393, "Metrics/BlockLength: Block has too many lines. [138/25]", 2457897034], + [955, 3, 4479, "Metrics/BlockLength: Block has too many lines. [134/25]", 3856958364], + [956, 5, 1327, "Metrics/BlockLength: Block has too many lines. [33/25]", 4009192695], + [1000, 5, 953, "Metrics/BlockLength: Block has too many lines. [29/25]", 902715698], + [1038, 5, 1147, "Metrics/BlockLength: Block has too many lines. [37/25]", 3544491851], + [1088, 5, 955, "Metrics/BlockLength: Block has too many lines. [27/25]", 2688118410], + [1126, 3, 2440, "Metrics/BlockLength: Block has too many lines. [69/25]", 1545633152], + [1127, 5, 970, "Metrics/BlockLength: Block has too many lines. [31/25]", 1575476639], + [1164, 5, 1403, "Metrics/BlockLength: Block has too many lines. [34/25]", 1311674864], + [1207, 3, 882, "Metrics/BlockLength: Block has too many lines. [27/25]", 3845382500], + [1208, 5, 813, "Metrics/BlockLength: Block has too many lines. [26/25]", 1755501948], + [1243, 3, 805, "Metrics/BlockLength: Block has too many lines. [26/25]", 3413285873], + [1276, 3, 2200, "Metrics/BlockLength: Block has too many lines. [70/25]", 3541894760], + [1277, 5, 1202, "Metrics/BlockLength: Block has too many lines. [38/25]", 3971143978], + [1307, 121, 1, "Layout/LineLength: Line is too long. [121/120]", 177610], + [1323, 5, 923, "Metrics/BlockLength: Block has too many lines. [28/25]", 3867507419], + [1360, 3, 1175, "Metrics/BlockLength: Block has too many lines. [36/25]", 1587654554], + [1361, 5, 1103, "Metrics/BlockLength: Block has too many lines. [35/25]", 3885176914], + [1441, 3, 1321, "Metrics/BlockLength: Block has too many lines. [29/25]", 1361304889], + [1481, 3, 1347, "Metrics/BlockLength: Block has too many lines. [29/25]", 1505210076], + [1521, 3, 1334, "Metrics/BlockLength: Block has too many lines. [29/25]", 3208600846], + [1561, 3, 1334, "Metrics/BlockLength: Block has too many lines. [29/25]", 212464082], + [1601, 3, 1331, "Metrics/BlockLength: Block has too many lines. [29/25]", 4277366491] + ], + "spec/rbs/merge_spec.rb:3352331478": [ + [5, 1, 1389, "Metrics/BlockLength: Block has too many lines. [37/25]", 373922011], + [10, 3, 1270, "Metrics/BlockLength: Block has too many lines. [32/25]", 2567886247] + ] +} diff --git a/gems/rbs-merge/Gemfile.lock b/gems/rbs-merge/Gemfile.lock index 6eff31366..e1747ea5a 100644 --- a/gems/rbs-merge/Gemfile.lock +++ b/gems/rbs-merge/Gemfile.lock @@ -8,7 +8,7 @@ PATH version_gem (~> 1.1, >= 1.1.14) PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/ast-merge specs: ast-merge (7.1.0) benchmark @@ -17,7 +17,7 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/tree_haver specs: tree_haver (7.1.0) citrus (~> 3.0) @@ -106,7 +106,7 @@ GEM rdoc (>= 4.0.0) reline (>= 0.4.2) json (2.21.1) - kettle-dev (2.3.8) + kettle-dev (2.3.9) emoji_regex (>= 15.0) kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) @@ -489,7 +489,7 @@ CHECKSUMS io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 - kettle-dev (2.3.8) sha256=9d716ff21c660a730cb4e8d41e2e2f0630a28167a354b6e2924e242102aef72c + kettle-dev (2.3.9) kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f kettle-soup-cover (3.0.4) kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 diff --git a/gems/rbs-merge/rbs-merge.gemspec b/gems/rbs-merge/rbs-merge.gemspec index fc2844391..1734ca282 100644 --- a/gems/rbs-merge/rbs-merge.gemspec +++ b/gems/rbs-merge/rbs-merge.gemspec @@ -9,47 +9,47 @@ Gem::Specification.new do |spec| spec.name = 'rbs-merge' spec.version = Module.new.tap { |mod| Kernel.load("#{__dir__}/lib/rbs/merge/version.rb", mod) }::Rbs::Merge::Version::VERSION - spec.authors = ["Peter H. Boling"] - spec.email = ["floss@galtzo.com"] + spec.authors = ['Peter H. Boling'] + spec.email = ['floss@galtzo.com'] spec.summary = '☯️ Structured Merge RBS analysis and merge for Ruby' spec.description = '☯️ RBS declaration, comment, freeze-block, and template merge behavior for Structured Merge.' spec.homepage = 'https://github.com/structuredmerge/structuredmerge-ruby' - spec.licenses = ["AGPL-3.0-only", "PolyForm-Small-Business-1.0.0"] - spec.required_ruby_version = ">= 4.0.0" + spec.licenses = ['AGPL-3.0-only', 'PolyForm-Small-Business-1.0.0'] + spec.required_ruby_version = '>= 4.0.0' # Linux distros often package gems and securely certify them independent # of the official RubyGem certification process. Allowed via ENV["SKIP_GEM_SIGNING"] # Ref: https://gitlab.com/ruby-oauth/version_gem/-/issues/3 # Hence, only enable signing if `SKIP_GEM_SIGNING` is not set in ENV. # See CONTRIBUTING.md - unless ENV.include?("SKIP_GEM_SIGNING") - user_cert = "certs/#{ENV.fetch("GEM_CERT_USER", ENV["USER"])}.pem" + unless ENV.include?('SKIP_GEM_SIGNING') + user_cert = "certs/#{ENV.fetch('GEM_CERT_USER', ENV['USER'])}.pem" cert_file_path = File.join(__dir__, user_cert) - cert_chain = cert_file_path.split(",") + cert_chain = cert_file_path.split(',') cert_chain.select! { |fp| File.exist?(fp) } if cert_file_path && cert_chain.any? spec.cert_chain = cert_chain - if $PROGRAM_NAME.end_with?("gem") && ARGV[0] == "build" - spec.signing_key = File.join(Gem.user_home, ".ssh", "gem-private_key.pem") + if $PROGRAM_NAME.end_with?('gem') && ARGV[0] == 'build' + spec.signing_key = File.join(Gem.user_home, '.ssh', 'gem-private_key.pem') end end end - spec.metadata["homepage_uri"] = "https://structuredmerge.org" - spec.metadata["source_code_uri"] = "#{spec.homepage}/tree/v#{spec.version}" - spec.metadata["changelog_uri"] = "#{spec.homepage}/blob/v#{spec.version}/CHANGELOG.md" - spec.metadata["bug_tracker_uri"] = "#{spec.homepage}/issues" - spec.metadata["documentation_uri"] = "https://www.rubydoc.info/gems/#{spec.name}/#{spec.version}" - spec.metadata["funding_uri"] = "https://github.com/sponsors/pboling" - spec.metadata["wiki_uri"] = "#{spec.homepage}/wiki" - spec.metadata["news_uri"] = "https://www.railsbling.com/tags/#{spec.name}" - spec.metadata["discord_uri"] = "https://discord.gg/3qme4XHNKN" - spec.metadata["rubygems_mfa_required"] = "true" + spec.metadata['homepage_uri'] = 'https://structuredmerge.org' + spec.metadata['source_code_uri'] = "#{spec.homepage}/tree/v#{spec.version}" + spec.metadata['changelog_uri'] = "#{spec.homepage}/blob/v#{spec.version}/CHANGELOG.md" + spec.metadata['bug_tracker_uri'] = "#{spec.homepage}/issues" + spec.metadata['documentation_uri'] = "https://www.rubydoc.info/gems/#{spec.name}/#{spec.version}" + spec.metadata['funding_uri'] = 'https://github.com/sponsors/pboling' + spec.metadata['wiki_uri'] = "#{spec.homepage}/wiki" + spec.metadata['news_uri'] = "https://www.railsbling.com/tags/#{spec.name}" + spec.metadata['discord_uri'] = 'https://discord.gg/3qme4XHNKN' + spec.metadata['rubygems_mfa_required'] = 'true' enumerate_package_files = lambda do |root| - Dir.glob(File.join(root, "**", "*"), File::FNM_DOTMATCH).select do |path| - File.file?(path) && ![".", ".."].include?(File.basename(path)) + Dir.glob(File.join(root, '**', '*'), File::FNM_DOTMATCH).select do |path| + File.file?(path) && !['.', '..'].include?(File.basename(path)) end end package_metadata_files = %w[ @@ -69,17 +69,17 @@ Gem::Specification.new do |spec| *enumerate_package_files.call('exe') ] spec.rdoc_options += [ - "--title", + '--title', "#{spec.name} - #{spec.summary}", - "--main", - "README.md", - "--exclude", - "^sig/", - "--line-numbers", - "--inline-source", - "--quiet" + '--main', + 'README.md', + '--exclude', + '^sig/', + '--line-numbers', + '--inline-source', + '--quiet' ] - spec.bindir = "exe" + spec.bindir = 'exe' # Listed files are the relative paths from bindir above. spec.executables = [] @@ -89,13 +89,13 @@ Gem::Specification.new do |spec| # rbs-merge will then preserve content between those markers across template runs. # kettle-jem:unfreeze - spec.require_paths = ["lib"] + spec.require_paths = ['lib'] # Utilities spec.add_dependency 'ast-merge', "= #{spec.version}" spec.add_dependency 'rbs', '>= 3.10' spec.add_dependency 'tree_haver', "= #{spec.version}" - spec.add_dependency("version_gem", "~> 1.1", ">= 1.1.14") # ruby >= 2.2.0 + spec.add_dependency('version_gem', '~> 1.1', '>= 1.1.14') # ruby >= 2.2.0 # NOTE: It is preferable to list development dependencies in the gemspec due to increased # visibility and discoverability. @@ -111,30 +111,30 @@ Gem::Specification.new do |spec| # and preferably a modular one (see gemfiles/modular/*.gemfile). # Dev, Test, & Release Tasks - spec.add_development_dependency("kettle-dev", "~> 2.3", ">= 2.3.7") # ruby >= 4.0.0 + spec.add_development_dependency('kettle-dev', '~> 2.3', '>= 2.3.7') # ruby >= 4.0.0 # Security - spec.add_development_dependency("bundler-audit", "~> 0.9.3") # ruby >= 2.0.0 + spec.add_development_dependency('bundler-audit', '~> 0.9.3') # ruby >= 2.0.0 # Tasks - spec.add_development_dependency("rake", "~> 13.0") # ruby >= 2.2.0 + spec.add_development_dependency('rake', '~> 13.0') # ruby >= 2.2.0 # Debugging - spec.add_development_dependency("require_bench", "~> 1.0", ">= 1.0.4") # ruby >= 2.2.0 + spec.add_development_dependency('require_bench', '~> 1.0', '>= 1.0.4') # ruby >= 2.2.0 # Testing - spec.add_development_dependency("appraisal2", "~> 3.2", ">= 3.2.0") # ruby >= 1.8.7, for testing against multiple versions of dependencies - spec.add_development_dependency("kettle-test", "~> 2.0", ">= 2.0.12") # ruby >= 4.0.0 - spec.add_development_dependency("turbo_tests2", "~> 3.2", ">= 3.2.0") # ruby >= 2.4.0, default kettle-test runner + spec.add_development_dependency('appraisal2', '~> 3.2', '>= 3.2.0') # ruby >= 1.8.7, for testing against multiple versions of dependencies + spec.add_development_dependency('kettle-test', '~> 2.0', '>= 2.0.12') # ruby >= 4.0.0 + spec.add_development_dependency('turbo_tests2', '~> 3.2', '>= 3.2.0') # ruby >= 2.4.0, default kettle-test runner # Releasing - spec.add_development_dependency("ruby-progressbar", "~> 1.13") # ruby >= 0 - spec.add_development_dependency("stone_checksums", "~> 1.0", ">= 1.0.6") # ruby >= 2.2.0 + spec.add_development_dependency('ruby-progressbar', '~> 1.13') # ruby >= 0 + spec.add_development_dependency('stone_checksums', '~> 1.0', '>= 1.0.6') # ruby >= 2.2.0 # Development tasks # The cake is a lie. erb v2.2, the oldest release, was never compatible with Ruby 2.3. # This means we have no choice but to use the erb that shipped with Ruby 2.3 # /opt/hostedtoolcache/Ruby/2.3.8/x64/lib/ruby/gems/2.3.0/gems/erb-2.2.2/lib/erb.rb:670:in `prepare_trim_mode': undefined method `match?' for "-":String (NoMethodError) # spec.add_development_dependency("erb", ">= 2.2") # ruby >= 2.3.0, not SemVer, old rubies get dropped in a patch. - spec.add_development_dependency("gitmoji-regex", "~> 2.0", ">= 2.0.4") # ruby >= 2.4 + spec.add_development_dependency('gitmoji-regex', '~> 2.0', '>= 2.0.4') # ruby >= 2.4 end diff --git a/gems/rbs-merge/spec/spec_helper.rb b/gems/rbs-merge/spec/spec_helper.rb index 4571dbc0e..494b143fc 100644 --- a/gems/rbs-merge/spec/spec_helper.rb +++ b/gems/rbs-merge/spec/spec_helper.rb @@ -7,16 +7,16 @@ # NOTE: Gemfiles for non-coverage appraisals may not have kettle-soup-cover. # The rescue LoadError handles that scenario. begin - require "kettle-soup-cover" + require 'kettle-soup-cover' if Kettle::Soup::Cover::DO_COV # Requiring simplecov loads the project-local `.simplecov`. - require "simplecov" - require "kettle/soup/cover/config" + require 'simplecov' + require 'kettle/soup/cover/config' SimpleCov.start end -rescue LoadError => error +rescue LoadError => e # check the error message and re-raise when unexpected - raise error unless error.message.include?("kettle") + raise e unless e.message.include?('kettle') end # External RSpec & related config diff --git a/gems/toml-merge/.kettle-drift.lock b/gems/toml-merge/.kettle-drift.lock index 43dfedd67..7cc6a5131 100644 --- a/gems/toml-merge/.kettle-drift.lock +++ b/gems/toml-merge/.kettle-drift.lock @@ -1,10 +1,74 @@ { + "(direct_sibling_local ||\nENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?)": [ + { + "file": "Gemfile", + "lines": [ + 80, + 120 + ] + } + ], + ".find { |spec| spec.name == 'nomono' }\nnomono_locked = nomono_locked_spec &&": [ + { + "file": "Gemfile", + "lines": [ + 91, + 131 + ] + } + ], + "ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?)\ndirect_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV')": [ + { + "file": "Gemfile", + "lines": [ + 81, + 121 + ] + } + ], + "Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version)\nnomono_activation_requirements = [\"= #{nomono_locked_spec.version}\"] if nomono_locked": [ + { + "file": "Gemfile", + "lines": [ + 93, + 133 + ] + } + ], + "Kernel.send(:gem, 'nomono', *nomono_activation_requirements)\nrequire 'nomono/bundler'": [ + { + "file": "Gemfile", + "lines": [ + 96, + 136 + ] + } + ], + "direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV')\ndirect_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil)": [ + { + "file": "Gemfile", + "lines": [ + 82, + 122 + ] + } + ], "eval_nomono_gems(\ngems: direct_sibling_gems,": [ { "file": "Gemfile", "lines": [ 60, - 100 + 100, + 140 + ] + } + ], + "gems: direct_sibling_gems,\nprefix: 'STRUCTUREDMERGE',": [ + { + "file": "Gemfile", + "lines": [ + 101, + 141 ] } ], @@ -13,7 +77,17 @@ "file": "Gemfile", "lines": [ 43, - 87 + 87, + 127 + ] + } + ], + "if direct_sibling_dev_was_set\nENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original": [ + { + "file": "Gemfile", + "lines": [ + 110, + 150 ] } ], @@ -22,7 +96,8 @@ "file": "Gemfile", "lines": [ 35, - 79 + 79, + 119 ] } ], @@ -31,7 +106,17 @@ "file": "Gemfile", "lines": [ 69, - 109 + 109, + 149 + ] + } + ], + "nomono_activation_requirements = nomono_requirements\nnomono_lockfile = File.expand_path('Gemfile.lock', __dir__)": [ + { + "file": "Gemfile", + "lines": [ + 85, + 125 ] } ], @@ -40,7 +125,8 @@ "file": "Gemfile", "lines": [ 48, - 92 + 92, + 132 ] } ], @@ -49,7 +135,53 @@ "file": "Gemfile", "lines": [ 44, - 88 + 88, + 128 + ] + } + ], + "nomono_lockfile = File.expand_path('Gemfile.lock', __dir__)\nif File.file?(nomono_lockfile)": [ + { + "file": "Gemfile", + "lines": [ + 86, + 126 + ] + } + ], + "path_env: 'STRUCTUREDMERGE_DEV',\nroot: %w[src my structuredmerge]": [ + { + "file": "Gemfile", + "lines": [ + 103, + 143 + ] + } + ], + "prefix: 'STRUCTUREDMERGE',\npath_env: 'STRUCTUREDMERGE_DEV',": [ + { + "file": "Gemfile", + "lines": [ + 102, + 142 + ] + } + ], + "require 'nomono/bundler'\nENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local": [ + { + "file": "Gemfile", + "lines": [ + 97, + 137 + ] + } + ], + "rescue LoadError\nwarn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.'": [ + { + "file": "Gemfile", + "lines": [ + 106, + 146 ] } ] diff --git a/gems/toml-merge/Gemfile b/gems/toml-merge/Gemfile index 85cfc5856..dc0145822 100644 --- a/gems/toml-merge/Gemfile +++ b/gems/toml-merge/Gemfile @@ -6,7 +6,7 @@ # kettle-jem will then preserve content between those markers across template runs. # kettle-jem:unfreeze -source 'https://gem.coop' +source "https://gem.coop" git_source(:codeberg) { |repo_name| "https://codeberg.org/#{repo_name}" } git_source(:gitlab) { |repo_name| "https://gitlab.com/#{repo_name}" } @@ -19,18 +19,62 @@ git_source(:gitlab) { |repo_name| "https://gitlab.com/#{repo_name}" } gemspec # Local workspace dependency wiring for *_local.gemfile overrides -nomono_requirements = ['~> 1.0', '>= 1.0.8'] -gem 'nomono', *nomono_requirements, require: false # ruby >= 2.2 +nomono_requirements = ["~> 1.0", ">= 1.0.8"] +gem "nomono", *nomono_requirements, require: false # ruby >= 2.2 # Direct sibling dependencies (env-switched via STRUCTUREDMERGE_DEV) direct_sibling_gems = %w[ ast-merge tree_haver ] -direct_sibling_dev = ENV.fetch('STRUCTUREDMERGE_DEV', '') +direct_sibling_dev = ENV.fetch("STRUCTUREDMERGE_DEV", "") direct_sibling_local = !direct_sibling_dev.empty? && !%w[false 0 no off].include?(direct_sibling_dev.downcase) -direct_sibling_templating = ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? +direct_sibling_templating = ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? + +if direct_sibling_gems.any? && + (direct_sibling_local || + ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero?) + direct_sibling_dev_was_set = ENV.key?("STRUCTUREDMERGE_DEV") + direct_sibling_dev_original = ENV.fetch("STRUCTUREDMERGE_DEV", nil) + begin + nomono_activation_requirements = nomono_requirements + nomono_lockfile = File.expand_path("Gemfile.lock", __dir__) + if File.file?(nomono_lockfile) + nomono_locked_spec = Bundler::LockfileParser + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == "nomono" } + nomono_locked = nomono_locked_spec && + Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) + if nomono_locked + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] + end + end + Kernel.send(:gem, "nomono", *nomono_activation_requirements) + require "nomono/bundler" + if direct_sibling_templating && !direct_sibling_local + ENV["STRUCTUREDMERGE_DEV"] = File.expand_path("..", __dir__) + end + + eval_nomono_gems( + gems: direct_sibling_gems, + prefix: "STRUCTUREDMERGE", + path_env: "STRUCTUREDMERGE_DEV", + root: ["src", "my", "structuredmerge"] + ) + rescue LoadError + warn "Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies." + ensure + if direct_sibling_templating && !direct_sibling_local + if direct_sibling_dev_was_set + ENV["STRUCTUREDMERGE_DEV"] = direct_sibling_dev_original + else + ENV.delete("STRUCTUREDMERGE_DEV") + end + end + end +end if direct_sibling_gems.any? && (direct_sibling_local || @@ -113,28 +157,28 @@ if direct_sibling_gems.any? && end # Use released TSLP with the Ruby ABI platform-gem fix. -gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' +gem "tree_sitter_language_pack", "~> 1.13", ">= 1.13.3" # Templating (env-switched: STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local paths) -eval_gemfile 'gemfiles/modular/templating.gemfile' if ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? +eval_gemfile "gemfiles/modular/templating.gemfile" if ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? # Debugging -eval_gemfile 'gemfiles/modular/debug.gemfile' +eval_gemfile "gemfiles/modular/debug.gemfile" # Code Coverage (env-switched: KETTLE_DEV_DEV=true for local paths) -eval_gemfile 'gemfiles/modular/coverage.gemfile' +eval_gemfile "gemfiles/modular/coverage.gemfile" # Linting -eval_gemfile 'gemfiles/modular/style.gemfile' +eval_gemfile "gemfiles/modular/style.gemfile" # Documentation -eval_gemfile 'gemfiles/modular/documentation.gemfile' +eval_gemfile "gemfiles/modular/documentation.gemfile" # Optional -eval_gemfile 'gemfiles/modular/optional.gemfile' +eval_gemfile "gemfiles/modular/optional.gemfile" ### Std Lib Extracted Gems -eval_gemfile 'gemfiles/modular/x_std_libs.gemfile' +eval_gemfile "gemfiles/modular/x_std_libs.gemfile" # See unlocked_deps appraisal for more details on irb inclusion -gem 'irb', '~> 1.17' # ruby >= 2.7 +gem "irb", "~> 1.17" # ruby >= 2.7 diff --git a/gems/toml-merge/Rakefile b/gems/toml-merge/Rakefile index 1038ac780..4d0c02b16 100644 --- a/gems/toml-merge/Rakefile +++ b/gems/toml-merge/Rakefile @@ -130,23 +130,23 @@ end ### DUPLICATE DRIFT TASKS begin - require 'kettle/drift' + require "kettle/drift" Kettle::Drift.install_tasks rescue LoadError - desc('(stub) kettle:drift:check is unavailable') - task('kettle:drift:check') do + desc("(stub) kettle:drift:check is unavailable") + task("kettle:drift:check") do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc('(stub) kettle:drift:update is unavailable') - task('kettle:drift:update') do + desc("(stub) kettle:drift:update is unavailable") + task("kettle:drift:update") do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc('(stub) kettle:drift:force_update is unavailable') - task('kettle:drift:force_update') do + desc("(stub) kettle:drift:force_update is unavailable") + task("kettle:drift:force_update") do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc('(stub) kettle:drift is unavailable') - task('kettle:drift' => 'kettle:drift:update') + desc("(stub) kettle:drift is unavailable") + task("kettle:drift" => "kettle:drift:update") end ### TEMPLATING TASKS diff --git a/gems/toml-merge/gemfiles/modular/templating.gemfile b/gems/toml-merge/gemfiles/modular/templating.gemfile index a672de184..47138ffbb 100644 --- a/gems/toml-merge/gemfiles/modular/templating.gemfile +++ b/gems/toml-merge/gemfiles/modular/templating.gemfile @@ -1,18 +1,18 @@ # frozen_string_literal: true -structuredmerge_remote = ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false').zero? -kettle_remote = ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? +structuredmerge_remote = ENV.fetch("STRUCTUREDMERGE_DEV", "false").casecmp("false").zero? +kettle_remote = ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false").zero? if structuredmerge_remote # Parser dependencies for released installs. - gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' + gem "tree_sitter_language_pack", "~> 1.13", ">= 1.13.3" # Merge recipes for released installs. - gem 'kettle-jem', '>= 7.0' + gem "kettle-jem", ">= 7.0" end if kettle_remote # Template/plugin checks for released installs. - gem 'kettle-drift', '~> 1.0', '>= 1.0.6', require: false + gem "kettle-drift", "~> 1.0", ">= 1.0.6", require: false end # Set STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local development with path-based dependencies. @@ -21,4 +21,4 @@ end # # Set KETTLE_DEV_DEV=/path/to/my for local development with Kettle plugin gems. # When false (default / CI), released Kettle plugin gems are used. -eval_gemfile 'templating_local.gemfile' unless structuredmerge_remote && kettle_remote +eval_gemfile "templating_local.gemfile" unless structuredmerge_remote && kettle_remote diff --git a/gems/toml-merge/gemfiles/modular/templating_local.gemfile b/gems/toml-merge/gemfiles/modular/templating_local.gemfile index bdbb4cf69..4d8b1bc5c 100644 --- a/gems/toml-merge/gemfiles/modular/templating_local.gemfile +++ b/gems/toml-merge/gemfiles/modular/templating_local.gemfile @@ -12,19 +12,21 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] -nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) +nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] +nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == "nomono" } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + if nomono_locked + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] + end end -Kernel.send(:gem, 'nomono', *nomono_activation_requirements) -require 'nomono/bundler' +Kernel.send(:gem, "nomono", *nomono_activation_requirements) +require "nomono/bundler" structuredmerge_local_gems = %w[ tree_haver @@ -67,25 +69,25 @@ structuredmerge_local_gems_to_eval = structuredmerge_local_gems - %w[toml-merge] kettle_dev_local_gems_to_eval = kettle_dev_local_gems - %w[toml-merge] - declared_gems platform :mri do - if ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false') != 0 + if ENV.fetch("STRUCTUREDMERGE_DEV", "false").casecmp("false") != 0 eval_nomono_gems( gems: structuredmerge_local_gems_to_eval, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - vendored_gems_env: 'VENDORED_GEMS', - vendor_gem_dir_env: 'VENDOR_GEM_DIR', - debug_env: 'STRUCTUREDMERGE_DEBUG' + prefix: "STRUCTUREDMERGE", + path_env: "STRUCTUREDMERGE_DEV", + vendored_gems_env: "VENDORED_GEMS", + vendor_gem_dir_env: "VENDOR_GEM_DIR", + debug_env: "STRUCTUREDMERGE_DEBUG" ) end - if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false') != 0 + if ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false") != 0 eval_nomono_gems( gems: kettle_dev_local_gems_to_eval, - prefix: 'KETTLE_DEV', - path_env: 'KETTLE_DEV_DEV', - vendored_gems_env: 'VENDORED_GEMS', - vendor_gem_dir_env: 'VENDOR_GEM_DIR', - debug_env: 'KETTLE_DEV_DEBUG' + prefix: "KETTLE_DEV", + path_env: "KETTLE_DEV_DEV", + vendored_gems_env: "VENDORED_GEMS", + vendor_gem_dir_env: "VENDOR_GEM_DIR", + debug_env: "KETTLE_DEV_DEBUG" ) end end diff --git a/gems/toml-merge/lib/toml/merge/version.rb b/gems/toml-merge/lib/toml/merge/version.rb index d9074beaf..91c4e4d84 100644 --- a/gems/toml-merge/lib/toml/merge/version.rb +++ b/gems/toml-merge/lib/toml/merge/version.rb @@ -3,7 +3,7 @@ module Toml module Merge module Version - VERSION = '7.1.0' + VERSION = "7.1.0" end VERSION = Version::VERSION # Traditional Constant Location end diff --git a/gems/yaml-merge/.rubocop_gradual.lock b/gems/yaml-merge/.rubocop_gradual.lock deleted file mode 100644 index 94564a907..000000000 --- a/gems/yaml-merge/.rubocop_gradual.lock +++ /dev/null @@ -1,181 +0,0 @@ -{ - ".simplecov:1246851662": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "Rakefile:2487479789": [ - [18, 121, 17, "Layout/LineLength: Line is too long. [137/120]", 174264873], - [79, 3, 1023, "Metrics/BlockLength: Block has too many lines. [32/25]", 54868638], - [163, 121, 22, "Layout/LineLength: Line is too long. [142/120]", 1367093088], - [166, 121, 18, "Layout/LineLength: Line is too long. [138/120]", 3881946477] - ], - "gemfiles/modular/benchmark/r4/v0.5.gemfile:3644720371": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/benchmark/vHEAD.gemfile:2838879269": [ - [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/cgi/r4/v0.5.gemfile:367169322": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] - ], - "gemfiles/modular/cgi/vHEAD.gemfile:2729540777": [ - [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] - ], - "gemfiles/modular/erb/r2/v3.0.gemfile:1688285565": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] - ], - "gemfiles/modular/erb/r3/v5.0.gemfile:2394062339": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] - ], - "gemfiles/modular/erb/r4/v5.0.gemfile:2394062339": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] - ], - "gemfiles/modular/erb/vHEAD.gemfile:981929959": [ - [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/mutex_m/r2/v0.3.gemfile:4055275004": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/mutex_m/r3/v0.3.gemfile:4055275004": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/mutex_m/r4/v0.3.gemfile:4055275004": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/mutex_m/vHEAD.gemfile:556854763": [ - [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/rspec.gemfile:2263543889": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] - ], - "gemfiles/modular/stringio/r2/v3.0.gemfile:821604304": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/stringio/r3/v3.0.gemfile:821604304": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/stringio/r4/v3.0.gemfile:821604304": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/stringio/vHEAD.gemfile:1045839691": [ - [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/webrick/r4/v1.9.gemfile:3092661193": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] - ], - "gemfiles/modular/webrick/vHEAD.gemfile:3867684682": [ - [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] - ], - "gemfiles/modular/x_std_libs.gemfile:2324400122": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/x_std_libs/r2/libs.gemfile:36276542": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] - ], - "gemfiles/modular/x_std_libs/r3/libs.gemfile:4030570297": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] - ], - "gemfiles/modular/x_std_libs/r4/libs.gemfile:732451732": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] - ], - "gemfiles/modular/x_std_libs/vHEAD.gemfile:2390363993": [ - [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] - ], - "lib/yaml-merge.rb:2387720316": [ - [1, 1, 0, "Naming/FileName: The name of this source file (`yaml-merge.rb`) should use snake_case.", 5381] - ], - "lib/yaml/merge.rb:4204023408": [ - [11, 3, 12, "Style/Documentation: Missing top-level documentation comment for `module Yaml::Merge`.", 2866359175], - [11, 3, 17029, "Metrics/ModuleLength: Module has too many lines. [402/100]", 893116110], - [85, 5, 767, "Metrics/AbcSize: Assignment Branch Condition size for `parse_yaml` is too high. [<4, 15, 7> 17.03/17]", 2313256161], - [85, 5, 767, "Metrics/MethodLength: Method has too many lines. [11/10]", 2313256161], - [102, 5, 774, "Metrics/MethodLength: Method has too many lines. [17/10]", 3937655844], - [124, 5, 674, "Metrics/AbcSize: Assignment Branch Condition size for `match_yaml_owners` is too high. [<10, 23, 8> 26.32/17]", 2258573674], - [124, 5, 674, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `match_yaml_owners` is too high. [9/7]", 2258573674], - [124, 5, 674, "Metrics/PerceivedComplexity: Perceived complexity for `match_yaml_owners` is too high. [9/8]", 2258573674], - [150, 5, 1483, "Metrics/AbcSize: Assignment Branch Condition size for `merge_yaml_with_parser` is too high. [<6, 19, 8> 21.47/17]", 1965394059], - [150, 5, 1483, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `merge_yaml_with_parser` is too high. [8/7]", 1965394059], - [150, 5, 1483, "Metrics/MethodLength: Method has too many lines. [36/10]", 1965394059], - [239, 5, 925, "Metrics/AbcSize: Assignment Branch Condition size for `yaml_value_from_tree` is too high. [<2, 20, 10> 22.45/17]", 787182706], - [239, 5, 925, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `yaml_value_from_tree` is too high. [9/7]", 787182706], - [239, 5, 925, "Metrics/MethodLength: Method has too many lines. [21/10]", 787182706], - [296, 5, 685, "Metrics/AbcSize: Assignment Branch Condition size for `yaml_scalar_from_text` is too high. [<1, 21, 12> 24.21/17]", 3123350773], - [296, 5, 685, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `yaml_scalar_from_text` is too high. [12/7]", 3123350773], - [296, 5, 685, "Metrics/MethodLength: Method has too many lines. [11/10]", 3123350773], - [296, 5, 685, "Metrics/PerceivedComplexity: Perceived complexity for `yaml_scalar_from_text` is too high. [12/8]", 3123350773], - [313, 5, 334, "Metrics/MethodLength: Method has too many lines. [12/10]", 732082977], - [329, 5, 857, "Metrics/AbcSize: Assignment Branch Condition size for `validate_yaml_node` is too high. [<8, 20, 8> 22.98/17]", 1513454330], - [329, 5, 857, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `validate_yaml_node` is too high. [8/7]", 1513454330], - [329, 5, 857, "Metrics/MethodLength: Method has too many lines. [17/10]", 1513454330], - [329, 5, 857, "Metrics/PerceivedComplexity: Perceived complexity for `validate_yaml_node` is too high. [9/8]", 1513454330], - [347, 121, 25, "Layout/LineLength: Line is too long. [145/120]", 223655047], - [396, 5, 472, "Metrics/MethodLength: Method has too many lines. [12/10]", 3240975354], - [417, 5, 773, "Metrics/MethodLength: Method has too many lines. [16/10]", 3727949237], - [437, 5, 582, "Metrics/AbcSize: Assignment Branch Condition size for `merge_yaml_mappings` is too high. [<3, 17, 6> 18.28/17]", 3352000353], - [437, 5, 582, "Metrics/MethodLength: Method has too many lines. [11/10]", 3352000353] - ], - "lib/yaml/merge/debug_logger.rb:1199302346": [ - [5, 5, 18, "Style/Documentation: Missing top-level documentation comment for `module Yaml::Merge::DebugLogger`.", 2665994874] - ], - "lib/yaml/merge/emitter.rb:3817962687": [ - [5, 5, 13, "Style/Documentation: Missing top-level documentation comment for `class Yaml::Merge::Emitter`.", 2789937437] - ], - "lib/yaml/merge/file_analysis.rb:1154111653": [ - [5, 5, 18, "Style/Documentation: Missing top-level documentation comment for `class Yaml::Merge::FileAnalysis`.", 1343395007], - [79, 7, 463, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `collect_parse_errors` is too high. [9/7]", 2902547790], - [79, 7, 463, "Metrics/PerceivedComplexity: Perceived complexity for `collect_parse_errors` is too high. [9/8]", 2902547790] - ], - "lib/yaml/merge/merge_result.rb:3354357999": [ - [5, 5, 17, "Style/Documentation: Missing top-level documentation comment for `class Yaml::Merge::MergeResult`.", 1573951962], - [51, 7, 411, "Metrics/MethodLength: Method has too many lines. [11/10]", 722307290] - ], - "lib/yaml/merge/node_wrapper.rb:3183359084": [ - [5, 5, 17, "Style/Documentation: Missing top-level documentation comment for `class Yaml::Merge::NodeWrapper`.", 2253907480], - [5, 5, 3624, "Metrics/ClassLength: Class has too many lines. [113/100]", 315603318], - [131, 7, 628, "Metrics/AbcSize: Assignment Branch Condition size for `scalar_text` is too high. [<4, 16, 7> 17.92/17]", 4064538637], - [131, 7, 628, "Metrics/MethodLength: Method has too many lines. [15/10]", 4064538637] - ], - "lib/yaml/merge/smart_merger.rb:3891369900": [ - [5, 5, 17, "Style/Documentation: Missing top-level documentation comment for `class Yaml::Merge::SmartMerger`.", 497427992], - [53, 7, 14, "Style/Documentation: Missing top-level documentation comment for `class Yaml::Merge::SmartMerger::Resolver`.", 246603789], - [53, 7, 11754, "Metrics/ClassLength: Class has too many lines. [222/100]", 3403485685], - [79, 9, 1732, "Metrics/AbcSize: Assignment Branch Condition size for `merge_node_lists` is too high. [<7, 16, 6> 18.47/17]", 450262146], - [79, 9, 1732, "Metrics/MethodLength: Method has too many lines. [34/10]", 450262146], - [79, 29, 145, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 2477726420], - [126, 9, 2387, "Metrics/AbcSize: Assignment Branch Condition size for `merge_matched_nodes` is too high. [<8, 18, 7> 20.9/17]", 2618134068], - [126, 9, 2387, "Metrics/MethodLength: Method has too many lines. [40/10]", 2618134068], - [126, 32, 186, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [8/5]", 3152212802], - [140, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2087424909], - [142, 121, 18, "Layout/LineLength: Line is too long. [138/120]", 2937407567], - [143, 121, 10, "Layout/LineLength: Line is too long. [130/120]", 3781823699], - [170, 9, 2278, "Metrics/AbcSize: Assignment Branch Condition size for `merge_mapping_pair` is too high. [<14, 22, 7> 27/17]", 1090440619], - [170, 9, 2278, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `merge_mapping_pair` is too high. [8/7]", 1090440619], - [170, 9, 2278, "Metrics/MethodLength: Method has too many lines. [42/10]", 1090440619], - [170, 31, 185, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [8/5]", 445012610], - [219, 42, 238, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [8/5]", 3756071712], - [220, 43, 15, "Lint/UnusedMethodArgument: Unused method argument - `template_owners`.", 4125284088], - [220, 83, 22, "Lint/UnusedMethodArgument: Unused method argument - `template_boundary_line`.", 1490012195], - [297, 9, 520, "Metrics/AbcSize: Assignment Branch Condition size for `emit_container_tail` is too high. [<4, 16, 6> 17.55/17]", 3480636332] - ], - "spec/fixtures_integration_spec.rb:2725675905": [ - [3, 1, 10020, "Metrics/BlockLength: Block has too many lines. [235/25]", 4279594244], - [34, 3, 2008, "Metrics/BlockLength: Block has too many lines. [29/25]", 645579110], - [105, 3, 812, "Metrics/BlockLength: Block has too many lines. [27/25]", 1239461839], - [154, 121, 1, "Layout/LineLength: Line is too long. [121/120]", 177610] - ], - "spec/retained_blank_gap_spec.rb:3080228732": [ - [5, 1, 914, "Metrics/BlockLength: Block has too many lines. [33/25]", 2851550009] - ], - "yaml-merge.gemspec:1565151629": [ - [128, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 2821357214], - [143, 121, 50, "Layout/LineLength: Line is too long. [170/120]", 3888612416], - [144, 121, 29, "Layout/LineLength: Line is too long. [149/120]", 981994949], - [151, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 4229808912] - ] -} diff --git a/gems/yaml-merge/Gemfile.lock b/gems/yaml-merge/Gemfile.lock index e8cec2963..3f489f309 100644 --- a/gems/yaml-merge/Gemfile.lock +++ b/gems/yaml-merge/Gemfile.lock @@ -6,38 +6,6 @@ PATH tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly - specs: - ast-crispr-markdown-markly (7.1.0) - ast-crispr (= 7.1.0) - markly-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism - specs: - ast-crispr-ruby-prism (7.1.0) - ast-crispr (= 7.1.0) - prism-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr - specs: - ast-crispr (7.1.0) - ast-merge (= 7.1.0) - service_actor (~> 3.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git - specs: - ast-merge-git (7.1.0) - ast-merge (= 7.1.0) - json-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - PATH remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge specs: @@ -47,201 +15,6 @@ PATH tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template - specs: - ast-template (7.1.0) - ast-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge - specs: - bash-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge - specs: - binary-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge - specs: - citrus-toml-merge (7.1.0) - toml-merge (= 7.1.0) - toml-rb (~> 4.1) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge - specs: - commonmarker-merge (7.1.0) - commonmarker (~> 2.2) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge - specs: - dotenv-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge - specs: - go-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge - specs: - json-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem - specs: - kettle-jem (7.1.0) - addressable (>= 2.8, < 3) - ast-crispr-markdown-markly (= 7.1.0) - ast-crispr-ruby-prism (= 7.1.0) - ast-merge (= 7.1.0) - bash-merge (= 7.1.0) - citrus-toml-merge (= 7.1.0) - commonmarker-merge (= 7.1.0) - dotenv-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-dev (~> 2.3, >= 2.3.5) - kettle-rb (~> 0.1, >= 0.1.4) - kramdown-merge (= 7.1.0) - markdown-merge (= 7.1.0) - markly-merge (= 7.1.0) - prism-merge (= 7.1.0) - psych-merge (= 7.1.0) - rbs (>= 3.10) - rbs-merge (= 7.1.0) - ruby-merge (= 7.1.0) - token-resolver (~> 2.0, >= 2.0.4) - toml-merge (= 7.1.0) - toml-rb (~> 4.2) - tree_haver (= 7.1.0) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge - specs: - kramdown-merge (7.1.0) - kramdown (~> 2.5) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge - specs: - markdown-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge - specs: - markly-merge (7.1.0) - markdown-merge (= 7.1.0) - markly (~> 0.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge - specs: - parslet-toml-merge (7.1.0) - toml (~> 0.3) - toml-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge - specs: - plain-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge - specs: - prism-merge (7.1.0) - prism (~> 1.6) - ruby-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge - specs: - psych-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge - specs: - rbs-merge (7.1.0) - ast-merge (= 7.1.0) - rbs (>= 3.10) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge - specs: - ruby-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge - specs: - rust-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb - specs: - smorg-rb (7.1.0) - ast-merge (= 7.1.0) - ast-merge-git (= 7.1.0) - diff-lcs (~> 1.5) - go-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-jem (= 7.1.0) - markly-merge (= 7.1.0) - plain-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge - specs: - toml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - PATH remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver specs: @@ -251,21 +24,6 @@ PATH tree_sitter_language_pack (>= 1.13.2, < 2.0) version_gem (~> 1.1, >= 1.1.9) -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge - specs: - typescript-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge - specs: - zip-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - GEM remote: https://gem.coop/ specs: @@ -290,7 +48,6 @@ GEM cgi (0.5.2) citrus (3.0.2) cmdparse (3.0.7) - commonmarker (2.9.0-x86_64-linux) concurrent-ruby (1.3.8) date (3.5.1) debug (1.11.1) @@ -353,8 +110,6 @@ GEM kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) - kettle-drift (1.0.6) - version_gem (~> 1.1, >= 1.1.14) kettle-rb (0.1.5) kettle-soup-cover (3.0.4) kettle-wash (~> 0.1, >= 0.1.0) @@ -383,7 +138,6 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) - markly (0.16.0) mutex_m (0.3.0) nokogiri (1.19.4-aarch64-linux-gnu) racc (~> 1.4) @@ -546,8 +300,6 @@ GEM ruby-progressbar (1.13.0) ruby_engine (2.0.3) ruby_version (1.0.3) - service_actor (3.9.4) - zeitwerk (>= 1.0) silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) @@ -602,11 +354,6 @@ GEM token-resolver (2.0.5) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.14) - toml (0.3.0) - parslet (>= 1.8.0, < 3.0.0) - toml-rb (4.2.0) - citrus (~> 3.0, > 3.0) - racc (~> 1.7) tree_sitter_language_pack (1.13.3-aarch64-linux) sorbet-runtime (~> 0.5) tree_sitter_language_pack (1.13.3-arm64-darwin) @@ -661,46 +408,24 @@ DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) appraisal2-rubocop (~> 1.0, >= 1.0.0) - ast-crispr! - ast-crispr-markdown-markly! - ast-crispr-ruby-prism! ast-merge! - ast-merge-git! - ast-template! - bash-merge! benchmark (~> 0.5, >= 0.5.0) - binary-merge! bundler-audit (~> 0.9.3) cgi (~> 0.5) - citrus-toml-merge! - commonmarker-merge! debug (>= 1.1) - dotenv-merge! erb (~> 6.0, >= 6.0.6) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.0) - go-merge! irb (~> 1.17) - json-merge! kettle-dev (~> 2.0, >= 2.2.25) - kettle-drift (~> 1.0, >= 1.0.6) - kettle-jem! kettle-soup-cover (~> 3.0, >= 3.0.3) kettle-test (~> 2.0, >= 2.0.9) kramdown (~> 2.5, >= 2.5.2) - kramdown-merge! kramdown-parser-gfm (~> 1.1) - markdown-merge! - markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) - parslet-toml-merge! - plain-merge! - prism-merge! - psych-merge! rake (~> 13.0) rbs (>= 3.0) - rbs-merge! rdoc (~> 6.11) reek (~> 6.5, >= 6.5.0) require_bench (~> 1.0, >= 1.0.4) @@ -711,17 +436,12 @@ DEPENDENCIES rubocop-on-rbs (~> 2.0, >= 2.0.0) rubocop-packaging (~> 0.6, >= 0.6.0) rubocop-ruby3_2 (~> 3.0, >= 3.0.6) - ruby-merge! ruby-progressbar (~> 1.13) - rust-merge! - smorg-rb! standard (~> 1.56, >= 1.56.0) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) - toml-merge! tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) - typescript-merge! webrick (~> 1.9) yaml-converter (~> 0.2, >= 0.2.3) yaml-merge! @@ -731,7 +451,6 @@ DEPENDENCIES yard-relative_markdown_links (~> 0.6) yard-timekeeper (~> 0.2, >= 0.2.4) yard-yaml (~> 0.2, >= 0.2.3) - zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af @@ -739,31 +458,20 @@ CHECKSUMS appraisal2 (3.2.0) sha256=ccd0b767ac4060cd7af6d16747459b6990f49c39c7b4fb1f7d1146b1e97c492f appraisal2-rubocop (1.0.0) sha256=b71410fbb014befda5340605a605b7f6f3f012739baf0acc5b4351b592c3258d ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 - ast-crispr (7.1.0) - ast-crispr-markdown-markly (7.1.0) - ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) - ast-merge-git (7.1.0) - ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 - bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd - binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 - citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 - commonmarker (2.9.0-x86_64-linux) - commonmarker-merge (7.1.0) concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 - dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -776,28 +484,20 @@ CHECKSUMS gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f - go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 - json-merge (7.1.0) kettle-dev (2.3.8) sha256=9d716ff21c660a730cb4e8d41e2e2f0630a28167a354b6e2924e242102aef72c - kettle-drift (1.0.6) - kettle-jem (7.1.0) kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f kettle-soup-cover (3.0.4) kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa - kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 - markdown-merge (7.1.0) - markly (0.16.0) - markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-aarch64-linux-gnu) sha256=1269fb644a6de405057a53dd5c762b1209b43ca7424f839454d3dbc677c31a8f nokogiri (1.19.4-aarch64-linux-musl) sha256=35c65b9ce72b3bb03207bdbe7067915019dc18c1b9b59139684bd6690fdd01af @@ -811,20 +511,15 @@ CHECKSUMS parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 - parslet-toml-merge (7.1.0) - plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 - prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 - psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 - rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb @@ -859,19 +554,15 @@ CHECKSUMS rubocop-rspec_rails (2.32.0) sha256=4a0d641c72f6ebb957534f539d9d0a62c47abd8ce0d0aeee1ef4701e892a9100 rubocop-ruby3_2 (3.0.7) sha256=f53dd6d286fb05186214fc6ec116783e7f837030918e8931c05de773e98f8466 rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 - ruby-merge (7.1.0) ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 - rust-merge (7.1.0) - service_actor (3.9.4) silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed - smorg-rb (7.1.0) sorbet-runtime (0.6.13351) sha256=f8fee17c6e3edf835dc6823d26afb9a7c8969c6710d1fabe2fb43f4e0c15c64f standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b @@ -886,16 +577,12 @@ CHECKSUMS timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.5) sha256=b852f924287ffb58a440856e862b056c8ad97e74b4b2526cee43e0771f40c25c - toml (0.3.0) - toml-merge (7.1.0) - toml-rb (4.2.0) tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-aarch64-linux) sha256=55ffc7c87868cb45658338363d9eba51b4a8b0259aa88e4de368d2bd1d52fea4 tree_sitter_language_pack (1.13.3-arm64-darwin) sha256=bc2498db605f212a1dbd2465ed3f65190d7da786f6ed5d30fcf958121aeb4a5c tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 - typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 @@ -909,7 +596,6 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 - zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH diff --git a/gems/yaml-merge/bin/yard b/gems/yaml-merge/bin/yard index 5d516ad6f..a7e8b6eed 100755 --- a/gems/yaml-merge/bin/yard +++ b/gems/yaml-merge/bin/yard @@ -12,4 +12,4 @@ # `yard` / `bin/yard`. Keep this binstub as a handoff to the task so # humans and tools that reach for `bin/yard` still run the full docs # workflow with post-processing hooks. -exec('bundle', 'exec', 'rake', 'yard') +exec("bundle", "exec", "rake", "yard") From 0b98f39bb140a6af241b211d499013628319cb11 Mon Sep 17 00:00:00 2001 From: "Peter H. Boling" Date: Tue, 21 Jul 2026 18:03:48 -0600 Subject: [PATCH 162/188] =?UTF-8?q?=F0=9F=8E=A8=20Template=20bootstrap=20b?= =?UTF-8?q?y=20kettle-jem=20v7.1.0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gems/go-merge/Gemfile.lock | 352 +++++++++++++++++- gems/rbs-merge/Gemfile.lock | 325 +++++++++++++++- gems/toml-merge/Gemfile.lock | 24 +- gems/yaml-merge/.rubocop_gradual.lock | 181 +++++++++ gems/yaml-merge/.simplecov | 2 +- gems/yaml-merge/Gemfile | 70 ++-- gems/yaml-merge/Gemfile.lock | 8 +- gems/yaml-merge/Rakefile | 18 +- gems/yaml-merge/bin/yard | 2 +- .../modular/benchmark/r4/v0.5.gemfile | 2 +- .../gemfiles/modular/benchmark/vHEAD.gemfile | 2 +- .../gemfiles/modular/cgi/r4/v0.5.gemfile | 2 +- .../gemfiles/modular/cgi/vHEAD.gemfile | 2 +- .../gemfiles/modular/coverage.gemfile | 6 +- .../gemfiles/modular/coverage_local.gemfile | 42 +-- .../yaml-merge/gemfiles/modular/debug.gemfile | 4 +- .../gemfiles/modular/documentation.gemfile | 24 +- .../modular/documentation_local.gemfile | 30 +- .../gemfiles/modular/erb/r2/v3.0.gemfile | 2 +- .../gemfiles/modular/erb/r3/v5.0.gemfile | 2 +- .../gemfiles/modular/erb/r4/v5.0.gemfile | 2 +- .../gemfiles/modular/erb/vHEAD.gemfile | 2 +- .../modular/json/truffleruby_22_3.gemfile | 4 +- .../modular/json/truffleruby_23_0.gemfile | 4 +- .../modular/json/truffleruby_23_1.gemfile | 4 +- .../gemfiles/modular/mutex_m/r2/v0.3.gemfile | 2 +- .../gemfiles/modular/mutex_m/r3/v0.3.gemfile | 2 +- .../gemfiles/modular/mutex_m/r4/v0.3.gemfile | 2 +- .../gemfiles/modular/mutex_m/vHEAD.gemfile | 2 +- .../gemfiles/modular/optional.gemfile | 4 +- .../yaml-merge/gemfiles/modular/rspec.gemfile | 8 +- .../gemfiles/modular/runtime_heads.gemfile | 2 +- .../gemfiles/modular/stringio/r2/v3.0.gemfile | 2 +- .../gemfiles/modular/stringio/r3/v3.0.gemfile | 2 +- .../gemfiles/modular/stringio/r4/v3.0.gemfile | 2 +- .../gemfiles/modular/stringio/vHEAD.gemfile | 2 +- .../yaml-merge/gemfiles/modular/style.gemfile | 24 +- .../gemfiles/modular/style_local.gemfile | 32 +- .../gemfiles/modular/templating.gemfile | 12 +- .../gemfiles/modular/templating_local.gemfile | 44 ++- .../gemfiles/modular/webrick/r4/v1.9.gemfile | 2 +- .../gemfiles/modular/webrick/vHEAD.gemfile | 2 +- .../gemfiles/modular/x_std_libs.gemfile | 14 +- .../modular/x_std_libs/r2/libs.gemfile | 6 +- .../modular/x_std_libs/r3/libs.gemfile | 6 +- .../modular/x_std_libs/r4/libs.gemfile | 12 +- .../gemfiles/modular/x_std_libs/vHEAD.gemfile | 12 +- gems/yaml-merge/lib/yaml/merge/version.rb | 2 +- gems/yaml-merge/spec/spec_helper.rb | 10 +- 49 files changed, 1069 insertions(+), 255 deletions(-) create mode 100644 gems/yaml-merge/.rubocop_gradual.lock diff --git a/gems/go-merge/Gemfile.lock b/gems/go-merge/Gemfile.lock index 47f882c26..471150949 100644 --- a/gems/go-merge/Gemfile.lock +++ b/gems/go-merge/Gemfile.lock @@ -6,6 +6,266 @@ PATH tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly + specs: + ast-crispr-markdown-markly (7.1.0) + ast-crispr (= 7.1.0) + markly-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism + specs: + ast-crispr-ruby-prism (7.1.0) + ast-crispr (= 7.1.0) + prism-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr + specs: + ast-crispr (7.1.0) + ast-merge (= 7.1.0) + service_actor (~> 3.9) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git + specs: + ast-merge-git (7.1.0) + ast-merge (= 7.1.0) + json-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge + specs: + ast-merge (7.1.0) + benchmark + token-resolver (~> 2.0, >= 2.0.4) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template + specs: + ast-template (7.1.0) + ast-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge + specs: + bash-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge + specs: + binary-merge (7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge + specs: + citrus-toml-merge (7.1.0) + toml-merge (= 7.1.0) + toml-rb (~> 4.1) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge + specs: + commonmarker-merge (7.1.0) + commonmarker (~> 2.2) + markdown-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge + specs: + dotenv-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge + specs: + json-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem + specs: + kettle-jem (7.1.0) + addressable (>= 2.8, < 3) + ast-crispr-markdown-markly (= 7.1.0) + ast-crispr-ruby-prism (= 7.1.0) + ast-merge (= 7.1.0) + bash-merge (= 7.1.0) + citrus-toml-merge (= 7.1.0) + commonmarker-merge (= 7.1.0) + dotenv-merge (= 7.1.0) + json-merge (= 7.1.0) + kettle-dev (~> 2.3, >= 2.3.5) + kettle-rb (~> 0.1, >= 0.1.4) + kramdown-merge (= 7.1.0) + markdown-merge (= 7.1.0) + markly-merge (= 7.1.0) + prism-merge (= 7.1.0) + psych-merge (= 7.1.0) + rbs (>= 3.10) + rbs-merge (= 7.1.0) + ruby-merge (= 7.1.0) + token-resolver (~> 2.0, >= 2.0.4) + toml-merge (= 7.1.0) + toml-rb (~> 4.2) + tree_haver (= 7.1.0) + yaml-merge (= 7.1.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge + specs: + kramdown-merge (7.1.0) + kramdown (~> 2.5) + markdown-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge + specs: + markdown-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge + specs: + markly-merge (7.1.0) + markdown-merge (= 7.1.0) + markly (~> 0.9) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge + specs: + parslet-toml-merge (7.1.0) + toml (~> 0.3) + toml-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge + specs: + plain-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge + specs: + prism-merge (7.1.0) + prism (~> 1.6) + ruby-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge + specs: + psych-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + yaml-merge (= 7.1.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge + specs: + rbs-merge (7.1.0) + ast-merge (= 7.1.0) + rbs (>= 3.10) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge + specs: + ruby-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge + specs: + rust-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb + specs: + smorg-rb (7.1.0) + ast-merge (= 7.1.0) + ast-merge-git (= 7.1.0) + diff-lcs (~> 1.5) + go-merge (= 7.1.0) + json-merge (= 7.1.0) + kettle-jem (= 7.1.0) + markly-merge (= 7.1.0) + plain-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge + specs: + toml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver + specs: + tree_haver (7.1.0) + citrus (~> 3.0) + parslet (~> 2.0) + tree_sitter_language_pack (>= 1.13.2, < 2.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge + specs: + typescript-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge + specs: + yaml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge + specs: + zip-merge (7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + GEM remote: https://gem.coop/ specs: @@ -21,11 +281,6 @@ GEM rubocop (>= 1.0) version_gem (~> 1.1, >= 1.1.14) ast (2.4.3) - ast-merge (7.1.0) - benchmark - token-resolver (~> 2.0, >= 2.0.4) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) backports (3.25.3) benchmark (0.5.0) bigdecimal (4.1.2) @@ -35,6 +290,11 @@ GEM cgi (0.5.2) citrus (3.0.2) cmdparse (3.0.7) + commonmarker (2.9.0-aarch64-linux) + commonmarker (2.9.0-aarch64-linux-musl) + commonmarker (2.9.0-arm64-darwin) + commonmarker (2.9.0-x86_64-linux) + commonmarker (2.9.0-x86_64-linux-musl) concurrent-ruby (1.3.8) date (3.5.1) debug (1.11.1) @@ -97,6 +357,8 @@ GEM kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) + kettle-drift (1.0.6) + version_gem (~> 1.1, >= 1.1.14) kettle-rb (0.1.5) kettle-soup-cover (3.0.4) kettle-wash (~> 0.1, >= 0.1.0) @@ -125,6 +387,7 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) + markly (0.16.0) mutex_m (0.3.0) nokogiri (1.19.4-aarch64-linux-gnu) racc (~> 1.4) @@ -287,6 +550,8 @@ GEM ruby-progressbar (1.13.0) ruby_engine (2.0.3) ruby_version (1.0.3) + service_actor (3.9.4) + zeitwerk (>= 1.0) silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) @@ -341,11 +606,11 @@ GEM token-resolver (2.0.5) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.14) - tree_haver (7.1.0) - citrus (~> 3.0) - parslet (~> 2.0) - tree_sitter_language_pack (>= 1.13.2, < 2.0) - version_gem (~> 1.1, >= 1.1.9) + toml (0.3.0) + parslet (>= 1.8.0, < 3.0.0) + toml-rb (4.2.0) + citrus (~> 3.0, > 3.0) + racc (~> 1.7) tree_sitter_language_pack (1.13.3-aarch64-linux) sorbet-runtime (~> 0.5) tree_sitter_language_pack (1.13.3-arm64-darwin) @@ -400,24 +665,46 @@ DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) appraisal2-rubocop (~> 1.0, >= 1.0.0) + ast-crispr! + ast-crispr-markdown-markly! + ast-crispr-ruby-prism! + ast-merge! + ast-merge-git! + ast-template! + bash-merge! benchmark (~> 0.5, >= 0.5.0) + binary-merge! bundler-audit (~> 0.9.3) cgi (~> 0.5) + citrus-toml-merge! + commonmarker-merge! debug (>= 1.1) + dotenv-merge! erb (~> 6.0, >= 6.0.6) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.0) go-merge! irb (~> 1.17) + json-merge! kettle-dev (~> 2.0, >= 2.2.25) + kettle-drift (~> 1.0, >= 1.0.6) + kettle-jem! kettle-soup-cover (~> 3.0, >= 3.0.3) kettle-test (~> 2.0, >= 2.0.9) kramdown (~> 2.5, >= 2.5.2) + kramdown-merge! kramdown-parser-gfm (~> 1.1) + markdown-merge! + markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) + parslet-toml-merge! + plain-merge! + prism-merge! + psych-merge! rake (~> 13.0) rbs (>= 3.0) + rbs-merge! rdoc (~> 6.11) reek (~> 6.5, >= 6.5.0) require_bench (~> 1.0, >= 1.0.4) @@ -428,19 +715,27 @@ DEPENDENCIES rubocop-on-rbs (~> 2.0, >= 2.0.0) rubocop-packaging (~> 0.6, >= 0.6.0) rubocop-ruby3_2 (~> 3.0, >= 3.0.6) + ruby-merge! ruby-progressbar (~> 1.13) + rust-merge! + smorg-rb! standard (~> 1.56, >= 1.56.0) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) + toml-merge! + tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) + typescript-merge! webrick (~> 1.9) yaml-converter (~> 0.2, >= 0.2.3) + yaml-merge! yard (~> 0.9, >= 0.9.45) yard-fence (~> 0.9, >= 0.9.6) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) yard-timekeeper (~> 0.2, >= 0.2.4) yard-yaml (~> 0.2, >= 0.2.3) + zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af @@ -448,20 +743,35 @@ CHECKSUMS appraisal2 (3.2.0) sha256=ccd0b767ac4060cd7af6d16747459b6990f49c39c7b4fb1f7d1146b1e97c492f appraisal2-rubocop (1.0.0) sha256=b71410fbb014befda5340605a605b7f6f3f012739baf0acc5b4351b592c3258d ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 + ast-crispr (7.1.0) + ast-crispr-markdown-markly (7.1.0) + ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) + ast-merge-git (7.1.0) + ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 + bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd + binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 + citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 + commonmarker (2.9.0-aarch64-linux) sha256=e2b4aadb9a2cfa4e206582641ce3a49465549ac1ed4c289fdd63b78d8f24579c + commonmarker (2.9.0-aarch64-linux-musl) sha256=1cf4d2821f2a7e64945f1ed7c4eeced586fdb27ea7fe7337788802cf8f57cfca + commonmarker (2.9.0-arm64-darwin) sha256=1748dbfa4f5813b0d2a14bb4bbfa65a4ec293aa1c825016d60029ee0e132b046 + commonmarker (2.9.0-x86_64-linux) sha256=8cfe92970eef585a19ddf6613224b91cab64d6029834661bda801f877c9c7f43 + commonmarker (2.9.0-x86_64-linux-musl) sha256=293921398b839f79ceaf55010e061357e34f053822c3b003cd0be6686176335e + commonmarker-merge (7.1.0) concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 + dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -479,16 +789,23 @@ CHECKSUMS io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 + json-merge (7.1.0) kettle-dev (2.3.8) sha256=9d716ff21c660a730cb4e8d41e2e2f0630a28167a354b6e2924e242102aef72c + kettle-drift (1.0.6) sha256=46eda08fa4411d1f3c6682a95eef1c9df4e94611b3949f49d4c7b43c0ed356a3 + kettle-jem (7.1.0) kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f kettle-soup-cover (3.0.4) kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa + kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 + markdown-merge (7.1.0) + markly (0.16.0) sha256=6f70d79e385b1efc9e171f74c81628826259039fe6c778e03c3924c71dac5511 + markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-aarch64-linux-gnu) sha256=1269fb644a6de405057a53dd5c762b1209b43ca7424f839454d3dbc677c31a8f nokogiri (1.19.4-aarch64-linux-musl) sha256=35c65b9ce72b3bb03207bdbe7067915019dc18c1b9b59139684bd6690fdd01af @@ -502,15 +819,20 @@ CHECKSUMS parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 + parslet-toml-merge (7.1.0) + plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 + prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 + psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 + rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb @@ -545,15 +867,19 @@ CHECKSUMS rubocop-rspec_rails (2.32.0) sha256=4a0d641c72f6ebb957534f539d9d0a62c47abd8ce0d0aeee1ef4701e892a9100 rubocop-ruby3_2 (3.0.7) sha256=f53dd6d286fb05186214fc6ec116783e7f837030918e8931c05de773e98f8466 rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 + ruby-merge (7.1.0) ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 + rust-merge (7.1.0) + service_actor (3.9.4) sha256=e63b523630b9a7e62959b2a90113b08d2565b5de9c148557b281ef847c9539ce silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed + smorg-rb (7.1.0) sorbet-runtime (0.6.13347) sha256=54e7221d9f4b63f58aec79f3043752a9ba7810347c6ae0d903531591cc2d5f01 standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b @@ -568,17 +894,22 @@ CHECKSUMS timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.5) sha256=b852f924287ffb58a440856e862b056c8ad97e74b4b2526cee43e0771f40c25c + toml (0.3.0) sha256=0a91d0f76a9036e84e44f95693b12f58d358c1df3ac8e3b5271f2056ecc6e4b9 + toml-merge (7.1.0) + toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-aarch64-linux) sha256=55ffc7c87868cb45658338363d9eba51b4a8b0259aa88e4de368d2bd1d52fea4 tree_sitter_language_pack (1.13.3-arm64-darwin) sha256=bc2498db605f212a1dbd2465ed3f65190d7da786f6ed5d30fcf958121aeb4a5c tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 + typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 webrick (1.9.2) sha256=beb4a15fc474defed24a3bda4ffd88a490d517c9e4e6118c3edce59e45864131 yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 + yaml-merge (7.1.0) yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd @@ -586,6 +917,7 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 + zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH diff --git a/gems/rbs-merge/Gemfile.lock b/gems/rbs-merge/Gemfile.lock index e1747ea5a..5e9275289 100644 --- a/gems/rbs-merge/Gemfile.lock +++ b/gems/rbs-merge/Gemfile.lock @@ -8,7 +8,39 @@ PATH version_gem (~> 1.1, >= 1.1.14) PATH - remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/ast-merge + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly + specs: + ast-crispr-markdown-markly (7.1.0) + ast-crispr (= 7.1.0) + markly-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism + specs: + ast-crispr-ruby-prism (7.1.0) + ast-crispr (= 7.1.0) + prism-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr + specs: + ast-crispr (7.1.0) + ast-merge (= 7.1.0) + service_actor (~> 3.9) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git + specs: + ast-merge-git (7.1.0) + ast-merge (= 7.1.0) + json-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge specs: ast-merge (7.1.0) benchmark @@ -17,7 +49,193 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/tree_haver + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template + specs: + ast-template (7.1.0) + ast-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge + specs: + bash-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge + specs: + binary-merge (7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge + specs: + citrus-toml-merge (7.1.0) + toml-merge (= 7.1.0) + toml-rb (~> 4.1) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge + specs: + commonmarker-merge (7.1.0) + commonmarker (~> 2.2) + markdown-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge + specs: + dotenv-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge + specs: + go-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge + specs: + json-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem + specs: + kettle-jem (7.1.0) + addressable (>= 2.8, < 3) + ast-crispr-markdown-markly (= 7.1.0) + ast-crispr-ruby-prism (= 7.1.0) + ast-merge (= 7.1.0) + bash-merge (= 7.1.0) + citrus-toml-merge (= 7.1.0) + commonmarker-merge (= 7.1.0) + dotenv-merge (= 7.1.0) + json-merge (= 7.1.0) + kettle-dev (~> 2.3, >= 2.3.5) + kettle-rb (~> 0.1, >= 0.1.4) + kramdown-merge (= 7.1.0) + markdown-merge (= 7.1.0) + markly-merge (= 7.1.0) + prism-merge (= 7.1.0) + psych-merge (= 7.1.0) + rbs (>= 3.10) + rbs-merge (= 7.1.0) + ruby-merge (= 7.1.0) + token-resolver (~> 2.0, >= 2.0.4) + toml-merge (= 7.1.0) + toml-rb (~> 4.2) + tree_haver (= 7.1.0) + yaml-merge (= 7.1.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge + specs: + kramdown-merge (7.1.0) + kramdown (~> 2.5) + markdown-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge + specs: + markdown-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge + specs: + markly-merge (7.1.0) + markdown-merge (= 7.1.0) + markly (~> 0.9) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge + specs: + parslet-toml-merge (7.1.0) + toml (~> 0.3) + toml-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge + specs: + plain-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge + specs: + prism-merge (7.1.0) + prism (~> 1.6) + ruby-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge + specs: + psych-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + yaml-merge (= 7.1.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge + specs: + ruby-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge + specs: + rust-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb + specs: + smorg-rb (7.1.0) + ast-merge (= 7.1.0) + ast-merge-git (= 7.1.0) + diff-lcs (~> 1.5) + go-merge (= 7.1.0) + json-merge (= 7.1.0) + kettle-jem (= 7.1.0) + markly-merge (= 7.1.0) + plain-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge + specs: + toml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver specs: tree_haver (7.1.0) citrus (~> 3.0) @@ -25,6 +243,29 @@ PATH tree_sitter_language_pack (>= 1.13.2, < 2.0) version_gem (~> 1.1, >= 1.1.9) +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge + specs: + typescript-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge + specs: + yaml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge + specs: + zip-merge (7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + GEM remote: https://gem.coop/ specs: @@ -49,6 +290,11 @@ GEM cgi (0.5.2) citrus (3.0.2) cmdparse (3.0.7) + commonmarker (2.9.0-aarch64-linux) + commonmarker (2.9.0-aarch64-linux-musl) + commonmarker (2.9.0-arm64-darwin) + commonmarker (2.9.0-x86_64-linux) + commonmarker (2.9.0-x86_64-linux-musl) concurrent-ruby (1.3.8) date (3.5.1) debug (1.11.1) @@ -111,6 +357,8 @@ GEM kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) + kettle-drift (1.0.6) + version_gem (~> 1.1, >= 1.1.14) kettle-rb (0.1.5) kettle-soup-cover (3.0.4) kettle-wash (~> 0.1, >= 0.1.0) @@ -139,6 +387,7 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) + markly (0.16.0) mutex_m (0.3.0) nokogiri (1.19.4-aarch64-linux-gnu) racc (~> 1.4) @@ -301,6 +550,8 @@ GEM ruby-progressbar (1.13.0) ruby_engine (2.0.3) ruby_version (1.0.3) + service_actor (3.9.4) + zeitwerk (>= 1.0) silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) @@ -355,6 +606,11 @@ GEM token-resolver (2.0.5) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.14) + toml (0.3.0) + parslet (>= 1.8.0, < 3.0.0) + toml-rb (4.2.0) + citrus (~> 3.0, > 3.0) + racc (~> 1.7) tree_sitter_language_pack (1.13.3-aarch64-linux) sorbet-runtime (~> 0.5) tree_sitter_language_pack (1.13.3-arm64-darwin) @@ -409,22 +665,43 @@ DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.2, >= 3.2.0) appraisal2-rubocop (~> 1.0, >= 1.0.0) + ast-crispr! + ast-crispr-markdown-markly! + ast-crispr-ruby-prism! ast-merge! + ast-merge-git! + ast-template! + bash-merge! benchmark (~> 0.5, >= 0.5.0) + binary-merge! bundler-audit (~> 0.9.3) cgi (~> 0.5) + citrus-toml-merge! + commonmarker-merge! debug (>= 1.1) + dotenv-merge! erb (~> 6.0, >= 6.0.6) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.4) + go-merge! irb (~> 1.17) + json-merge! kettle-dev (~> 2.3, >= 2.3.7) + kettle-drift (~> 1.0, >= 1.0.6) + kettle-jem! kettle-soup-cover (~> 3.0, >= 3.0.3) kettle-test (~> 2.0, >= 2.0.12) kramdown (~> 2.5, >= 2.5.2) + kramdown-merge! kramdown-parser-gfm (~> 1.1) + markdown-merge! + markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) + parslet-toml-merge! + plain-merge! + prism-merge! + psych-merge! rake (~> 13.0) rbs-merge! rdoc (~> 6.11) @@ -437,21 +714,28 @@ DEPENDENCIES rubocop-on-rbs (~> 2.0, >= 2.0.0) rubocop-packaging (~> 0.6, >= 0.6.0) rubocop-ruby3_2 (~> 3.0, >= 3.0.6) + ruby-merge! ruby-progressbar (~> 1.13) + rust-merge! + smorg-rb! standard (~> 1.56, >= 1.56.0) stone_checksums (~> 1.0, >= 1.0.6) stringio (>= 3.0) + toml-merge! tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) turbo_tests2 (~> 3.2, >= 3.2.0) + typescript-merge! webrick (~> 1.9) yaml-converter (~> 0.2, >= 0.2.3) + yaml-merge! yard (~> 0.9, >= 0.9.45) yard-fence (~> 0.9, >= 0.9.6) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) yard-timekeeper (~> 0.2, >= 0.2.4) yard-yaml (~> 0.2, >= 0.2.3) + zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af @@ -459,20 +743,35 @@ CHECKSUMS appraisal2 (3.2.0) sha256=ccd0b767ac4060cd7af6d16747459b6990f49c39c7b4fb1f7d1146b1e97c492f appraisal2-rubocop (1.0.0) sha256=b71410fbb014befda5340605a605b7f6f3f012739baf0acc5b4351b592c3258d ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 + ast-crispr (7.1.0) + ast-crispr-markdown-markly (7.1.0) + ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) + ast-merge-git (7.1.0) + ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 + bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd + binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 + citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 + commonmarker (2.9.0-aarch64-linux) sha256=e2b4aadb9a2cfa4e206582641ce3a49465549ac1ed4c289fdd63b78d8f24579c + commonmarker (2.9.0-aarch64-linux-musl) sha256=1cf4d2821f2a7e64945f1ed7c4eeced586fdb27ea7fe7337788802cf8f57cfca + commonmarker (2.9.0-arm64-darwin) sha256=1748dbfa4f5813b0d2a14bb4bbfa65a4ec293aa1c825016d60029ee0e132b046 + commonmarker (2.9.0-x86_64-linux) sha256=8cfe92970eef585a19ddf6613224b91cab64d6029834661bda801f877c9c7f43 + commonmarker (2.9.0-x86_64-linux-musl) sha256=293921398b839f79ceaf55010e061357e34f053822c3b003cd0be6686176335e + commonmarker-merge (7.1.0) concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 + dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -485,20 +784,28 @@ CHECKSUMS gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f + go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 + json-merge (7.1.0) kettle-dev (2.3.9) + kettle-drift (1.0.6) sha256=46eda08fa4411d1f3c6682a95eef1c9df4e94611b3949f49d4c7b43c0ed356a3 + kettle-jem (7.1.0) kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f kettle-soup-cover (3.0.4) kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa + kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 + markdown-merge (7.1.0) + markly (0.16.0) sha256=6f70d79e385b1efc9e171f74c81628826259039fe6c778e03c3924c71dac5511 + markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-aarch64-linux-gnu) sha256=1269fb644a6de405057a53dd5c762b1209b43ca7424f839454d3dbc677c31a8f nokogiri (1.19.4-aarch64-linux-musl) sha256=35c65b9ce72b3bb03207bdbe7067915019dc18c1b9b59139684bd6690fdd01af @@ -512,10 +819,14 @@ CHECKSUMS parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 + parslet-toml-merge (7.1.0) + plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 + prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 + psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a @@ -556,15 +867,19 @@ CHECKSUMS rubocop-rspec_rails (2.32.0) sha256=4a0d641c72f6ebb957534f539d9d0a62c47abd8ce0d0aeee1ef4701e892a9100 rubocop-ruby3_2 (3.0.7) sha256=f53dd6d286fb05186214fc6ec116783e7f837030918e8931c05de773e98f8466 rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 + ruby-merge (7.1.0) ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 + rust-merge (7.1.0) + service_actor (3.9.4) sha256=e63b523630b9a7e62959b2a90113b08d2565b5de9c148557b281ef847c9539ce silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed + smorg-rb (7.1.0) sorbet-runtime (0.6.13351) sha256=f8fee17c6e3edf835dc6823d26afb9a7c8969c6710d1fabe2fb43f4e0c15c64f standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b @@ -579,17 +894,22 @@ CHECKSUMS timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.5) sha256=b852f924287ffb58a440856e862b056c8ad97e74b4b2526cee43e0771f40c25c + toml (0.3.0) sha256=0a91d0f76a9036e84e44f95693b12f58d358c1df3ac8e3b5271f2056ecc6e4b9 + toml-merge (7.1.0) + toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-aarch64-linux) sha256=55ffc7c87868cb45658338363d9eba51b4a8b0259aa88e4de368d2bd1d52fea4 tree_sitter_language_pack (1.13.3-arm64-darwin) sha256=bc2498db605f212a1dbd2465ed3f65190d7da786f6ed5d30fcf958121aeb4a5c tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 + typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 webrick (1.9.2) sha256=beb4a15fc474defed24a3bda4ffd88a490d517c9e4e6118c3edce59e45864131 yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 + yaml-merge (7.1.0) yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd @@ -597,6 +917,7 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 + zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH diff --git a/gems/toml-merge/Gemfile.lock b/gems/toml-merge/Gemfile.lock index 956745ef3..accfd67ec 100644 --- a/gems/toml-merge/Gemfile.lock +++ b/gems/toml-merge/Gemfile.lock @@ -290,11 +290,7 @@ GEM cgi (0.5.2) citrus (3.0.2) cmdparse (3.0.7) - commonmarker (2.9.0-aarch64-linux) - commonmarker (2.9.0-aarch64-linux-musl) - commonmarker (2.9.0-arm64-darwin) commonmarker (2.9.0-x86_64-linux) - commonmarker (2.9.0-x86_64-linux-musl) concurrent-ruby (1.3.8) date (3.5.1) debug (1.11.1) @@ -567,7 +563,7 @@ GEM simplecov (>= 0.4.1) simplecov_lcov_formatter (0.9.0) simplecov (>= 0.18) - sorbet-runtime (0.6.13347) + sorbet-runtime (0.6.13351) standard (1.56.0) language_server-protocol (~> 3.17.0.2) lint_roller (~> 1.0) @@ -759,11 +755,7 @@ CHECKSUMS citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 - commonmarker (2.9.0-aarch64-linux) sha256=e2b4aadb9a2cfa4e206582641ce3a49465549ac1ed4c289fdd63b78d8f24579c - commonmarker (2.9.0-aarch64-linux-musl) sha256=1cf4d2821f2a7e64945f1ed7c4eeced586fdb27ea7fe7337788802cf8f57cfca - commonmarker (2.9.0-arm64-darwin) sha256=1748dbfa4f5813b0d2a14bb4bbfa65a4ec293aa1c825016d60029ee0e132b046 - commonmarker (2.9.0-x86_64-linux) sha256=8cfe92970eef585a19ddf6613224b91cab64d6029834661bda801f877c9c7f43 - commonmarker (2.9.0-x86_64-linux-musl) sha256=293921398b839f79ceaf55010e061357e34f053822c3b003cd0be6686176335e + commonmarker (2.9.0-x86_64-linux) commonmarker-merge (7.1.0) concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 @@ -791,7 +783,7 @@ CHECKSUMS json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 json-merge (7.1.0) kettle-dev (2.3.8) sha256=9d716ff21c660a730cb4e8d41e2e2f0630a28167a354b6e2924e242102aef72c - kettle-drift (1.0.6) sha256=46eda08fa4411d1f3c6682a95eef1c9df4e94611b3949f49d4c7b43c0ed356a3 + kettle-drift (1.0.6) kettle-jem (7.1.0) kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f kettle-soup-cover (3.0.4) @@ -804,7 +796,7 @@ CHECKSUMS lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 markdown-merge (7.1.0) - markly (0.16.0) sha256=6f70d79e385b1efc9e171f74c81628826259039fe6c778e03c3924c71dac5511 + markly (0.16.0) markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-aarch64-linux-gnu) sha256=1269fb644a6de405057a53dd5c762b1209b43ca7424f839454d3dbc677c31a8f @@ -872,7 +864,7 @@ CHECKSUMS ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 rust-merge (7.1.0) - service_actor (3.9.4) sha256=e63b523630b9a7e62959b2a90113b08d2565b5de9c148557b281ef847c9539ce + service_actor (3.9.4) silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea @@ -880,7 +872,7 @@ CHECKSUMS simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed smorg-rb (7.1.0) - sorbet-runtime (0.6.13347) sha256=54e7221d9f4b63f58aec79f3043752a9ba7810347c6ae0d903531591cc2d5f01 + sorbet-runtime (0.6.13351) sha256=f8fee17c6e3edf835dc6823d26afb9a7c8969c6710d1fabe2fb43f4e0c15c64f standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b standard-performance (1.9.0) sha256=49483d31be448292951d80e5e67cdcb576c2502103c7b40aec6f1b6e9c88e3f2 @@ -894,9 +886,9 @@ CHECKSUMS timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.5) sha256=b852f924287ffb58a440856e862b056c8ad97e74b4b2526cee43e0771f40c25c - toml (0.3.0) sha256=0a91d0f76a9036e84e44f95693b12f58d358c1df3ac8e3b5271f2056ecc6e4b9 + toml (0.3.0) toml-merge (7.1.0) - toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 + toml-rb (4.2.0) tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-aarch64-linux) sha256=55ffc7c87868cb45658338363d9eba51b4a8b0259aa88e4de368d2bd1d52fea4 tree_sitter_language_pack (1.13.3-arm64-darwin) sha256=bc2498db605f212a1dbd2465ed3f65190d7da786f6ed5d30fcf958121aeb4a5c diff --git a/gems/yaml-merge/.rubocop_gradual.lock b/gems/yaml-merge/.rubocop_gradual.lock new file mode 100644 index 000000000..af7021e0e --- /dev/null +++ b/gems/yaml-merge/.rubocop_gradual.lock @@ -0,0 +1,181 @@ +{ + ".simplecov:3565611413": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "Rakefile:2487479789": [ + [18, 121, 17, "Layout/LineLength: Line is too long. [137/120]", 174264873], + [79, 3, 1023, "Metrics/BlockLength: Block has too many lines. [32/25]", 54868638], + [163, 121, 22, "Layout/LineLength: Line is too long. [142/120]", 1367093088], + [166, 121, 18, "Layout/LineLength: Line is too long. [138/120]", 3881946477] + ], + "gemfiles/modular/benchmark/r4/v0.5.gemfile:3644720371": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/benchmark/vHEAD.gemfile:2838879269": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/cgi/r4/v0.5.gemfile:367169322": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/cgi/vHEAD.gemfile:2729540777": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/erb/r2/v3.0.gemfile:1688285565": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/erb/r3/v5.0.gemfile:2394062339": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/erb/r4/v5.0.gemfile:2394062339": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/erb/vHEAD.gemfile:981929959": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/mutex_m/r2/v0.3.gemfile:4055275004": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/mutex_m/r3/v0.3.gemfile:4055275004": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/mutex_m/r4/v0.3.gemfile:4055275004": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/mutex_m/vHEAD.gemfile:556854763": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/rspec.gemfile:2263543889": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/stringio/r2/v3.0.gemfile:821604304": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/stringio/r3/v3.0.gemfile:821604304": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/stringio/r4/v3.0.gemfile:821604304": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/stringio/vHEAD.gemfile:1045839691": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/webrick/r4/v1.9.gemfile:3092661193": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/webrick/vHEAD.gemfile:3867684682": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/x_std_libs.gemfile:2324400122": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/x_std_libs/r2/libs.gemfile:36276542": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] + ], + "gemfiles/modular/x_std_libs/r3/libs.gemfile:4030570297": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] + ], + "gemfiles/modular/x_std_libs/r4/libs.gemfile:732451732": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] + ], + "gemfiles/modular/x_std_libs/vHEAD.gemfile:2390363993": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] + ], + "lib/yaml-merge.rb:2387720316": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`yaml-merge.rb`) should use snake_case.", 5381] + ], + "lib/yaml/merge.rb:4204023408": [ + [11, 3, 12, "Style/Documentation: Missing top-level documentation comment for `module Yaml::Merge`.", 2866359175], + [11, 3, 17029, "Metrics/ModuleLength: Module has too many lines. [402/100]", 893116110], + [85, 5, 767, "Metrics/AbcSize: Assignment Branch Condition size for `parse_yaml` is too high. [<4, 15, 7> 17.03/17]", 2313256161], + [85, 5, 767, "Metrics/MethodLength: Method has too many lines. [11/10]", 2313256161], + [102, 5, 774, "Metrics/MethodLength: Method has too many lines. [17/10]", 3937655844], + [124, 5, 674, "Metrics/AbcSize: Assignment Branch Condition size for `match_yaml_owners` is too high. [<10, 23, 8> 26.32/17]", 2258573674], + [124, 5, 674, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `match_yaml_owners` is too high. [9/7]", 2258573674], + [124, 5, 674, "Metrics/PerceivedComplexity: Perceived complexity for `match_yaml_owners` is too high. [9/8]", 2258573674], + [150, 5, 1483, "Metrics/AbcSize: Assignment Branch Condition size for `merge_yaml_with_parser` is too high. [<6, 19, 8> 21.47/17]", 1965394059], + [150, 5, 1483, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `merge_yaml_with_parser` is too high. [8/7]", 1965394059], + [150, 5, 1483, "Metrics/MethodLength: Method has too many lines. [36/10]", 1965394059], + [239, 5, 925, "Metrics/AbcSize: Assignment Branch Condition size for `yaml_value_from_tree` is too high. [<2, 20, 10> 22.45/17]", 787182706], + [239, 5, 925, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `yaml_value_from_tree` is too high. [9/7]", 787182706], + [239, 5, 925, "Metrics/MethodLength: Method has too many lines. [21/10]", 787182706], + [296, 5, 685, "Metrics/AbcSize: Assignment Branch Condition size for `yaml_scalar_from_text` is too high. [<1, 21, 12> 24.21/17]", 3123350773], + [296, 5, 685, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `yaml_scalar_from_text` is too high. [12/7]", 3123350773], + [296, 5, 685, "Metrics/MethodLength: Method has too many lines. [11/10]", 3123350773], + [296, 5, 685, "Metrics/PerceivedComplexity: Perceived complexity for `yaml_scalar_from_text` is too high. [12/8]", 3123350773], + [313, 5, 334, "Metrics/MethodLength: Method has too many lines. [12/10]", 732082977], + [329, 5, 857, "Metrics/AbcSize: Assignment Branch Condition size for `validate_yaml_node` is too high. [<8, 20, 8> 22.98/17]", 1513454330], + [329, 5, 857, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `validate_yaml_node` is too high. [8/7]", 1513454330], + [329, 5, 857, "Metrics/MethodLength: Method has too many lines. [17/10]", 1513454330], + [329, 5, 857, "Metrics/PerceivedComplexity: Perceived complexity for `validate_yaml_node` is too high. [9/8]", 1513454330], + [347, 121, 25, "Layout/LineLength: Line is too long. [145/120]", 223655047], + [396, 5, 472, "Metrics/MethodLength: Method has too many lines. [12/10]", 3240975354], + [417, 5, 773, "Metrics/MethodLength: Method has too many lines. [16/10]", 3727949237], + [437, 5, 582, "Metrics/AbcSize: Assignment Branch Condition size for `merge_yaml_mappings` is too high. [<3, 17, 6> 18.28/17]", 3352000353], + [437, 5, 582, "Metrics/MethodLength: Method has too many lines. [11/10]", 3352000353] + ], + "lib/yaml/merge/debug_logger.rb:1199302346": [ + [5, 5, 18, "Style/Documentation: Missing top-level documentation comment for `module Yaml::Merge::DebugLogger`.", 2665994874] + ], + "lib/yaml/merge/emitter.rb:3817962687": [ + [5, 5, 13, "Style/Documentation: Missing top-level documentation comment for `class Yaml::Merge::Emitter`.", 2789937437] + ], + "lib/yaml/merge/file_analysis.rb:1154111653": [ + [5, 5, 18, "Style/Documentation: Missing top-level documentation comment for `class Yaml::Merge::FileAnalysis`.", 1343395007], + [79, 7, 463, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `collect_parse_errors` is too high. [9/7]", 2902547790], + [79, 7, 463, "Metrics/PerceivedComplexity: Perceived complexity for `collect_parse_errors` is too high. [9/8]", 2902547790] + ], + "lib/yaml/merge/merge_result.rb:3354357999": [ + [5, 5, 17, "Style/Documentation: Missing top-level documentation comment for `class Yaml::Merge::MergeResult`.", 1573951962], + [51, 7, 411, "Metrics/MethodLength: Method has too many lines. [11/10]", 722307290] + ], + "lib/yaml/merge/node_wrapper.rb:3183359084": [ + [5, 5, 17, "Style/Documentation: Missing top-level documentation comment for `class Yaml::Merge::NodeWrapper`.", 2253907480], + [5, 5, 3624, "Metrics/ClassLength: Class has too many lines. [113/100]", 315603318], + [131, 7, 628, "Metrics/AbcSize: Assignment Branch Condition size for `scalar_text` is too high. [<4, 16, 7> 17.92/17]", 4064538637], + [131, 7, 628, "Metrics/MethodLength: Method has too many lines. [15/10]", 4064538637] + ], + "lib/yaml/merge/smart_merger.rb:3891369900": [ + [5, 5, 17, "Style/Documentation: Missing top-level documentation comment for `class Yaml::Merge::SmartMerger`.", 497427992], + [53, 7, 14, "Style/Documentation: Missing top-level documentation comment for `class Yaml::Merge::SmartMerger::Resolver`.", 246603789], + [53, 7, 11754, "Metrics/ClassLength: Class has too many lines. [222/100]", 3403485685], + [79, 9, 1732, "Metrics/AbcSize: Assignment Branch Condition size for `merge_node_lists` is too high. [<7, 16, 6> 18.47/17]", 450262146], + [79, 9, 1732, "Metrics/MethodLength: Method has too many lines. [34/10]", 450262146], + [79, 29, 145, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 2477726420], + [126, 9, 2387, "Metrics/AbcSize: Assignment Branch Condition size for `merge_matched_nodes` is too high. [<8, 18, 7> 20.9/17]", 2618134068], + [126, 9, 2387, "Metrics/MethodLength: Method has too many lines. [40/10]", 2618134068], + [126, 32, 186, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [8/5]", 3152212802], + [140, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2087424909], + [142, 121, 18, "Layout/LineLength: Line is too long. [138/120]", 2937407567], + [143, 121, 10, "Layout/LineLength: Line is too long. [130/120]", 3781823699], + [170, 9, 2278, "Metrics/AbcSize: Assignment Branch Condition size for `merge_mapping_pair` is too high. [<14, 22, 7> 27/17]", 1090440619], + [170, 9, 2278, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `merge_mapping_pair` is too high. [8/7]", 1090440619], + [170, 9, 2278, "Metrics/MethodLength: Method has too many lines. [42/10]", 1090440619], + [170, 31, 185, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [8/5]", 445012610], + [219, 42, 238, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [8/5]", 3756071712], + [220, 43, 15, "Lint/UnusedMethodArgument: Unused method argument - `template_owners`.", 4125284088], + [220, 83, 22, "Lint/UnusedMethodArgument: Unused method argument - `template_boundary_line`.", 1490012195], + [297, 9, 520, "Metrics/AbcSize: Assignment Branch Condition size for `emit_container_tail` is too high. [<4, 16, 6> 17.55/17]", 3480636332] + ], + "spec/fixtures_integration_spec.rb:2725675905": [ + [3, 1, 10020, "Metrics/BlockLength: Block has too many lines. [235/25]", 4279594244], + [34, 3, 2008, "Metrics/BlockLength: Block has too many lines. [29/25]", 645579110], + [105, 3, 812, "Metrics/BlockLength: Block has too many lines. [27/25]", 1239461839], + [154, 121, 1, "Layout/LineLength: Line is too long. [121/120]", 177610] + ], + "spec/retained_blank_gap_spec.rb:3080228732": [ + [5, 1, 914, "Metrics/BlockLength: Block has too many lines. [33/25]", 2851550009] + ], + "yaml-merge.gemspec:1565151629": [ + [128, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 2821357214], + [143, 121, 50, "Layout/LineLength: Line is too long. [170/120]", 3888612416], + [144, 121, 29, "Layout/LineLength: Line is too long. [149/120]", 981994949], + [151, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 4229808912] + ] +} diff --git a/gems/yaml-merge/.simplecov b/gems/yaml-merge/.simplecov index 6fec330b2..86c304ff1 100644 --- a/gems/yaml-merge/.simplecov +++ b/gems/yaml-merge/.simplecov @@ -10,5 +10,5 @@ # If the values for minimum coverage need to change, they should be changed both there, # and in 2 places in .github/workflows/coverage.yml. SimpleCov.configure do - cover "lib/**/*.rb", "lib/**/*.rake", "exe/*.rb" + cover 'lib/**/*.rb', 'lib/**/*.rake', 'exe/*.rb' end diff --git a/gems/yaml-merge/Gemfile b/gems/yaml-merge/Gemfile index 7b1aad645..458a37282 100644 --- a/gems/yaml-merge/Gemfile +++ b/gems/yaml-merge/Gemfile @@ -6,7 +6,7 @@ # kettle-jem will then preserve content between those markers across template runs. # kettle-jem:unfreeze -source "https://gem.coop" +source 'https://gem.coop' git_source(:codeberg) { |repo_name| "https://codeberg.org/#{repo_name}" } git_source(:gitlab) { |repo_name| "https://gitlab.com/#{repo_name}" } @@ -19,58 +19,54 @@ git_source(:gitlab) { |repo_name| "https://gitlab.com/#{repo_name}" } gemspec # Local workspace dependency wiring for *_local.gemfile overrides -nomono_requirements = ["~> 1.0", ">= 1.0.8"] -gem "nomono", *nomono_requirements, require: false # ruby >= 2.2 +nomono_requirements = ['~> 1.0', '>= 1.0.8'] +gem 'nomono', *nomono_requirements, require: false # ruby >= 2.2 # Direct sibling dependencies (env-switched via STRUCTUREDMERGE_DEV) direct_sibling_gems = %w[ ast-merge tree_haver ] -direct_sibling_dev = ENV.fetch("STRUCTUREDMERGE_DEV", "") +direct_sibling_dev = ENV.fetch('STRUCTUREDMERGE_DEV', '') direct_sibling_local = !direct_sibling_dev.empty? && !%w[false 0 no off].include?(direct_sibling_dev.downcase) -direct_sibling_templating = ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? +direct_sibling_templating = ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero?) - direct_sibling_dev_was_set = ENV.key?("STRUCTUREDMERGE_DEV") - direct_sibling_dev_original = ENV.fetch("STRUCTUREDMERGE_DEV", nil) + (direct_sibling_local || + ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) + direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') + direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) begin nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path("Gemfile.lock", __dir__) + nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == "nomono" } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - if nomono_locked - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] - end - end - Kernel.send(:gem, "nomono", *nomono_activation_requirements) - require "nomono/bundler" - if direct_sibling_templating && !direct_sibling_local - ENV["STRUCTUREDMERGE_DEV"] = File.expand_path("..", __dir__) + Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked end + Kernel.send(:gem, 'nomono', *nomono_activation_requirements) + require 'nomono/bundler' + ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local eval_nomono_gems( gems: direct_sibling_gems, - prefix: "STRUCTUREDMERGE", - path_env: "STRUCTUREDMERGE_DEV", - root: ["src", "my", "structuredmerge"] + prefix: 'STRUCTUREDMERGE', + path_env: 'STRUCTUREDMERGE_DEV', + root: %w[src my structuredmerge] ) rescue LoadError - warn "Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies." + warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' ensure if direct_sibling_templating && !direct_sibling_local if direct_sibling_dev_was_set - ENV["STRUCTUREDMERGE_DEV"] = direct_sibling_dev_original + ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original else - ENV.delete("STRUCTUREDMERGE_DEV") + ENV.delete('STRUCTUREDMERGE_DEV') end end end @@ -157,28 +153,28 @@ if direct_sibling_gems.any? && end # Use released TSLP with the Ruby ABI platform-gem fix. -gem "tree_sitter_language_pack", "~> 1.13", ">= 1.13.3" +gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' # Templating (env-switched: STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local paths) -eval_gemfile "gemfiles/modular/templating.gemfile" if ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? +eval_gemfile 'gemfiles/modular/templating.gemfile' if ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? # Debugging -eval_gemfile "gemfiles/modular/debug.gemfile" +eval_gemfile 'gemfiles/modular/debug.gemfile' # Code Coverage (env-switched: KETTLE_DEV_DEV=true for local paths) -eval_gemfile "gemfiles/modular/coverage.gemfile" +eval_gemfile 'gemfiles/modular/coverage.gemfile' # Linting -eval_gemfile "gemfiles/modular/style.gemfile" +eval_gemfile 'gemfiles/modular/style.gemfile' # Documentation -eval_gemfile "gemfiles/modular/documentation.gemfile" +eval_gemfile 'gemfiles/modular/documentation.gemfile' # Optional -eval_gemfile "gemfiles/modular/optional.gemfile" +eval_gemfile 'gemfiles/modular/optional.gemfile' ### Std Lib Extracted Gems -eval_gemfile "gemfiles/modular/x_std_libs.gemfile" +eval_gemfile 'gemfiles/modular/x_std_libs.gemfile' # See unlocked_deps appraisal for more details on irb inclusion -gem "irb", "~> 1.17" # ruby >= 2.7 +gem 'irb', '~> 1.17' # ruby >= 2.7 diff --git a/gems/yaml-merge/Gemfile.lock b/gems/yaml-merge/Gemfile.lock index 3f489f309..d4d898ad7 100644 --- a/gems/yaml-merge/Gemfile.lock +++ b/gems/yaml-merge/Gemfile.lock @@ -7,7 +7,7 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/ast-merge specs: ast-merge (7.1.0) benchmark @@ -16,7 +16,7 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/tree_haver specs: tree_haver (7.1.0) citrus (~> 3.0) @@ -105,7 +105,7 @@ GEM rdoc (>= 4.0.0) reline (>= 0.4.2) json (2.21.1) - kettle-dev (2.3.8) + kettle-dev (2.3.9) emoji_regex (>= 15.0) kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) @@ -488,7 +488,7 @@ CHECKSUMS io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 - kettle-dev (2.3.8) sha256=9d716ff21c660a730cb4e8d41e2e2f0630a28167a354b6e2924e242102aef72c + kettle-dev (2.3.9) kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f kettle-soup-cover (3.0.4) kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 diff --git a/gems/yaml-merge/Rakefile b/gems/yaml-merge/Rakefile index 1432d5c49..337da9a15 100644 --- a/gems/yaml-merge/Rakefile +++ b/gems/yaml-merge/Rakefile @@ -130,23 +130,23 @@ end ### DUPLICATE DRIFT TASKS begin - require "kettle/drift" + require 'kettle/drift' Kettle::Drift.install_tasks rescue LoadError - desc("(stub) kettle:drift:check is unavailable") - task("kettle:drift:check") do + desc('(stub) kettle:drift:check is unavailable') + task('kettle:drift:check') do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc("(stub) kettle:drift:update is unavailable") - task("kettle:drift:update") do + desc('(stub) kettle:drift:update is unavailable') + task('kettle:drift:update') do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc("(stub) kettle:drift:force_update is unavailable") - task("kettle:drift:force_update") do + desc('(stub) kettle:drift:force_update is unavailable') + task('kettle:drift:force_update') do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc("(stub) kettle:drift is unavailable") - task("kettle:drift" => "kettle:drift:update") + desc('(stub) kettle:drift is unavailable') + task('kettle:drift' => 'kettle:drift:update') end ### TEMPLATING TASKS diff --git a/gems/yaml-merge/bin/yard b/gems/yaml-merge/bin/yard index a7e8b6eed..5d516ad6f 100755 --- a/gems/yaml-merge/bin/yard +++ b/gems/yaml-merge/bin/yard @@ -12,4 +12,4 @@ # `yard` / `bin/yard`. Keep this binstub as a handoff to the task so # humans and tools that reach for `bin/yard` still run the full docs # workflow with post-processing hooks. -exec("bundle", "exec", "rake", "yard") +exec('bundle', 'exec', 'rake', 'yard') diff --git a/gems/yaml-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile b/gems/yaml-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile index dec650815..b8392fab0 100644 --- a/gems/yaml-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile +++ b/gems/yaml-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.1 -gem "benchmark", "~> 0.5", ">= 0.5.0" # Removed from Std Lib in Ruby 4.0 +gem 'benchmark', '~> 0.5', '>= 0.5.0' # Removed from Std Lib in Ruby 4.0 diff --git a/gems/yaml-merge/gemfiles/modular/benchmark/vHEAD.gemfile b/gems/yaml-merge/gemfiles/modular/benchmark/vHEAD.gemfile index e1eb20c5e..af214aafa 100644 --- a/gems/yaml-merge/gemfiles/modular/benchmark/vHEAD.gemfile +++ b/gems/yaml-merge/gemfiles/modular/benchmark/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.1 -gem "benchmark", github: "ruby/benchmark", branch: "master" +gem 'benchmark', github: 'ruby/benchmark', branch: 'master' diff --git a/gems/yaml-merge/gemfiles/modular/cgi/r4/v0.5.gemfile b/gems/yaml-merge/gemfiles/modular/cgi/r4/v0.5.gemfile index 19ed967c3..17ad97260 100644 --- a/gems/yaml-merge/gemfiles/modular/cgi/r4/v0.5.gemfile +++ b/gems/yaml-merge/gemfiles/modular/cgi/r4/v0.5.gemfile @@ -1 +1 @@ -gem "cgi", "~> 0.5" +gem 'cgi', '~> 0.5' diff --git a/gems/yaml-merge/gemfiles/modular/cgi/vHEAD.gemfile b/gems/yaml-merge/gemfiles/modular/cgi/vHEAD.gemfile index ef8b816ce..650fbf033 100644 --- a/gems/yaml-merge/gemfiles/modular/cgi/vHEAD.gemfile +++ b/gems/yaml-merge/gemfiles/modular/cgi/vHEAD.gemfile @@ -1 +1 @@ -gem "cgi", ">= 0.5" +gem 'cgi', '>= 0.5' diff --git a/gems/yaml-merge/gemfiles/modular/coverage.gemfile b/gems/yaml-merge/gemfiles/modular/coverage.gemfile index 52d737872..b93014b6b 100644 --- a/gems/yaml-merge/gemfiles/modular/coverage.gemfile +++ b/gems/yaml-merge/gemfiles/modular/coverage.gemfile @@ -4,11 +4,11 @@ # Set KETTLE_DEV_DEV=true for local development with path-based dependencies. # When false (default / CI), remote released gems are used. -if ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false").zero? +if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? # Coverage (remote/released) platform :mri do - gem "kettle-soup-cover", "~> 3.0", ">= 3.0.3", require: false + gem 'kettle-soup-cover', '~> 3.0', '>= 3.0.3', require: false end else - eval_gemfile "coverage_local.gemfile" + eval_gemfile 'coverage_local.gemfile' end diff --git a/gems/yaml-merge/gemfiles/modular/coverage_local.gemfile b/gems/yaml-merge/gemfiles/modular/coverage_local.gemfile index d1441e2fa..3a33c2f15 100644 --- a/gems/yaml-merge/gemfiles/modular/coverage_local.gemfile +++ b/gems/yaml-merge/gemfiles/modular/coverage_local.gemfile @@ -11,21 +11,19 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] -nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) +nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] +nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == "nomono" } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - if nomono_locked - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] - end + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked end -Kernel.send(:gem, "nomono", *nomono_activation_requirements) -require "nomono/bundler" +Kernel.send(:gem, 'nomono', *nomono_activation_requirements) +require 'nomono/bundler' local_gems = %w[kettle-dev kettle-test kettle-soup-cover kettle-drift] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) @@ -35,21 +33,21 @@ local_gems_to_eval = local_gems - %w[yaml-merge] - declared_gems platform :mri do eval_nomono_gems( gems: local_gems_to_eval, - prefix: "KETTLE_DEV", - path_env: "KETTLE_DEV_DEV", - vendored_gems_env: "VENDORED_GEMS", - vendor_gem_dir_env: "VENDOR_GEM_DIR", - debug_env: "KETTLE_DEV_DEBUG" + prefix: 'KETTLE_DEV', + path_env: 'KETTLE_DEV_DEV', + vendored_gems_env: 'VENDORED_GEMS', + vendor_gem_dir_env: 'VENDOR_GEM_DIR', + debug_env: 'KETTLE_DEV_DEBUG' ) - if ENV.fetch("GALTZO_FLOSS_DEV", "false").casecmp("false") != 0 + if ENV.fetch('GALTZO_FLOSS_DEV', 'false').casecmp('false') != 0 eval_nomono_gems( gems: %w[turbo_tests2], - prefix: "GALTZO_FLOSS", - path_env: "GALTZO_FLOSS_DEV", - vendored_gems_env: "GALTZO_FLOSS_VENDORED_GEMS", - vendor_gem_dir_env: "GALTZO_FLOSS_VENDOR_GEM_DIR", - debug_env: "GALTZO_FLOSS_DEBUG" + prefix: 'GALTZO_FLOSS', + path_env: 'GALTZO_FLOSS_DEV', + vendored_gems_env: 'GALTZO_FLOSS_VENDORED_GEMS', + vendor_gem_dir_env: 'GALTZO_FLOSS_VENDOR_GEM_DIR', + debug_env: 'GALTZO_FLOSS_DEBUG' ) end end diff --git a/gems/yaml-merge/gemfiles/modular/debug.gemfile b/gems/yaml-merge/gemfiles/modular/debug.gemfile index 4e15b1a3a..eed8d4d1e 100644 --- a/gems/yaml-merge/gemfiles/modular/debug.gemfile +++ b/gems/yaml-merge/gemfiles/modular/debug.gemfile @@ -13,10 +13,10 @@ platform :mri do # Debugging - Ensure ENV["DEBUG"] == "true" to use debuggers within spec suite # Use binding.break, binding.b, or debugger in code - gem "debug", ">= 1.1" # ruby >= 2.7 + gem 'debug', '>= 1.1' # ruby >= 2.7 # Dev Console - Binding.pry - Irb replacement # gem "pry", "~> 0.14" # ruby >= 2.0 end -gem "gem_bench", "~> 2.0", ">= 2.0.5" +gem 'gem_bench', '~> 2.0', '>= 2.0.5' diff --git a/gems/yaml-merge/gemfiles/modular/documentation.gemfile b/gems/yaml-merge/gemfiles/modular/documentation.gemfile index d8215416e..9d4535f12 100644 --- a/gems/yaml-merge/gemfiles/modular/documentation.gemfile +++ b/gems/yaml-merge/gemfiles/modular/documentation.gemfile @@ -7,20 +7,20 @@ # # Documentation -gem "kramdown", "~> 2.5", ">= 2.5.2", require: false # Ruby >= 2.5 -gem "kramdown-parser-gfm", "~> 1.1", require: false # Ruby >= 2.3 -gem "yaml-converter", "~> 0.2", ">= 0.2.3", require: false # Ruby >= 3.2 -gem "yard", "~> 0.9", ">= 0.9.45", require: false -gem "yard-junk", "~> 0.1", ">= 0.1.0", require: false # Ruby >= 3.1 -gem "yard-relative_markdown_links", "~> 0.6", require: false +gem 'kramdown', '~> 2.5', '>= 2.5.2', require: false # Ruby >= 2.5 +gem 'kramdown-parser-gfm', '~> 1.1', require: false # Ruby >= 2.3 +gem 'yaml-converter', '~> 0.2', '>= 0.2.3', require: false # Ruby >= 3.2 +gem 'yard', '~> 0.9', '>= 0.9.45', require: false +gem 'yard-junk', '~> 0.1', '>= 0.1.0', require: false # Ruby >= 3.1 +gem 'yard-relative_markdown_links', '~> 0.6', require: false -if ENV.fetch("GALTZO_FLOSS_DEV", "false").casecmp("false").zero? - gem "yard-fence", "~> 0.9", ">= 0.9.6", require: false # Ruby >= 3.2 - gem "yard-timekeeper", "~> 0.2", ">= 0.2.4", require: false - gem "yard-yaml", "~> 0.2", ">= 0.2.3", require: false +if ENV.fetch('GALTZO_FLOSS_DEV', 'false').casecmp('false').zero? + gem 'yard-fence', '~> 0.9', '>= 0.9.6', require: false # Ruby >= 3.2 + gem 'yard-timekeeper', '~> 0.2', '>= 0.2.4', require: false + gem 'yard-yaml', '~> 0.2', '>= 0.2.3', require: false else - eval_gemfile "documentation_local.gemfile" + eval_gemfile 'documentation_local.gemfile' end # Std Lib extractions -gem "rdoc", "~> 6.11", require: false unless ENV.fetch("KJ_FRAMEWORK_MATRIX_GEM", "") == "rdoc" +gem 'rdoc', '~> 6.11', require: false unless ENV.fetch('KJ_FRAMEWORK_MATRIX_GEM', '') == 'rdoc' diff --git a/gems/yaml-merge/gemfiles/modular/documentation_local.gemfile b/gems/yaml-merge/gemfiles/modular/documentation_local.gemfile index 5ed58acd1..20503a7f8 100644 --- a/gems/yaml-merge/gemfiles/modular/documentation_local.gemfile +++ b/gems/yaml-merge/gemfiles/modular/documentation_local.gemfile @@ -11,21 +11,19 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] -nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) +nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] +nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == "nomono" } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - if nomono_locked - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] - end + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked end -Kernel.send(:gem, "nomono", *nomono_activation_requirements) -require "nomono/bundler" +Kernel.send(:gem, 'nomono', *nomono_activation_requirements) +require 'nomono/bundler' local_gems = %w[yard-fence yard-timekeeper yard-yaml] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) @@ -34,9 +32,9 @@ local_gems_to_eval = local_gems - %w[yaml-merge] - declared_gems # export GALTZO_FLOSS_DEV=/path/to/galtzo-floss eval_nomono_gems( gems: local_gems_to_eval, - prefix: "GALTZO_FLOSS", - path_env: "GALTZO_FLOSS_DEV", - vendored_gems_env: "GALTZO_FLOSS_VENDORED_GEMS", - vendor_gem_dir_env: "GALTZO_FLOSS_VENDOR_GEM_DIR", - debug_env: "GALTZO_FLOSS_DEBUG" + prefix: 'GALTZO_FLOSS', + path_env: 'GALTZO_FLOSS_DEV', + vendored_gems_env: 'GALTZO_FLOSS_VENDORED_GEMS', + vendor_gem_dir_env: 'GALTZO_FLOSS_VENDOR_GEM_DIR', + debug_env: 'GALTZO_FLOSS_DEBUG' ) diff --git a/gems/yaml-merge/gemfiles/modular/erb/r2/v3.0.gemfile b/gems/yaml-merge/gemfiles/modular/erb/r2/v3.0.gemfile index c03bd8d85..7c83a239b 100644 --- a/gems/yaml-merge/gemfiles/modular/erb/r2/v3.0.gemfile +++ b/gems/yaml-merge/gemfiles/modular/erb/r2/v3.0.gemfile @@ -1 +1 @@ -gem "erb", "~> 3.0" # ruby >= 2.7.0 +gem 'erb', '~> 3.0' # ruby >= 2.7.0 diff --git a/gems/yaml-merge/gemfiles/modular/erb/r3/v5.0.gemfile b/gems/yaml-merge/gemfiles/modular/erb/r3/v5.0.gemfile index 1bd029cc1..ec7ff451f 100644 --- a/gems/yaml-merge/gemfiles/modular/erb/r3/v5.0.gemfile +++ b/gems/yaml-merge/gemfiles/modular/erb/r3/v5.0.gemfile @@ -1 +1 @@ -gem "erb", "~> 6.0", ">= 6.0.6" # ruby >= 3.2.0 +gem 'erb', '~> 6.0', '>= 6.0.6' # ruby >= 3.2.0 diff --git a/gems/yaml-merge/gemfiles/modular/erb/r4/v5.0.gemfile b/gems/yaml-merge/gemfiles/modular/erb/r4/v5.0.gemfile index 1bd029cc1..ec7ff451f 100644 --- a/gems/yaml-merge/gemfiles/modular/erb/r4/v5.0.gemfile +++ b/gems/yaml-merge/gemfiles/modular/erb/r4/v5.0.gemfile @@ -1 +1 @@ -gem "erb", "~> 6.0", ">= 6.0.6" # ruby >= 3.2.0 +gem 'erb', '~> 6.0', '>= 6.0.6' # ruby >= 3.2.0 diff --git a/gems/yaml-merge/gemfiles/modular/erb/vHEAD.gemfile b/gems/yaml-merge/gemfiles/modular/erb/vHEAD.gemfile index 48fee4218..ea0101185 100644 --- a/gems/yaml-merge/gemfiles/modular/erb/vHEAD.gemfile +++ b/gems/yaml-merge/gemfiles/modular/erb/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 3.2 -gem "erb", github: "ruby/erb", branch: "master" +gem 'erb', github: 'ruby/erb', branch: 'master' diff --git a/gems/yaml-merge/gemfiles/modular/json/truffleruby_22_3.gemfile b/gems/yaml-merge/gemfiles/modular/json/truffleruby_22_3.gemfile index b0e69ab11..9b2f8d96a 100644 --- a/gems/yaml-merge/gemfiles/modular/json/truffleruby_22_3.gemfile +++ b/gems/yaml-merge/gemfiles/modular/json/truffleruby_22_3.gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -if RUBY_ENGINE == "truffleruby" && RUBY_ENGINE_VERSION.start_with?("22.3") +if RUBY_ENGINE == 'truffleruby' && RUBY_ENGINE_VERSION.start_with?('22.3') # TruffleRuby 22.3 ships the json default gem from its emulated MRI Ruby. - gem "json", "= 2.5.1" + gem 'json', '= 2.5.1' end diff --git a/gems/yaml-merge/gemfiles/modular/json/truffleruby_23_0.gemfile b/gems/yaml-merge/gemfiles/modular/json/truffleruby_23_0.gemfile index 7b2660a2b..d787a5ef4 100644 --- a/gems/yaml-merge/gemfiles/modular/json/truffleruby_23_0.gemfile +++ b/gems/yaml-merge/gemfiles/modular/json/truffleruby_23_0.gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -if RUBY_ENGINE == "truffleruby" && RUBY_ENGINE_VERSION.start_with?("23.0") +if RUBY_ENGINE == 'truffleruby' && RUBY_ENGINE_VERSION.start_with?('23.0') # TruffleRuby 23.0 ships the json default gem from its emulated MRI Ruby. - gem "json", "= 2.6.1" + gem 'json', '= 2.6.1' end diff --git a/gems/yaml-merge/gemfiles/modular/json/truffleruby_23_1.gemfile b/gems/yaml-merge/gemfiles/modular/json/truffleruby_23_1.gemfile index dfa21f2e4..d78486b0e 100644 --- a/gems/yaml-merge/gemfiles/modular/json/truffleruby_23_1.gemfile +++ b/gems/yaml-merge/gemfiles/modular/json/truffleruby_23_1.gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -if RUBY_ENGINE == "truffleruby" && RUBY_ENGINE_VERSION.start_with?("23.1") +if RUBY_ENGINE == 'truffleruby' && RUBY_ENGINE_VERSION.start_with?('23.1') # TruffleRuby 23.1 ships the json default gem from its emulated MRI Ruby. - gem "json", "= 2.6.3" + gem 'json', '= 2.6.3' end diff --git a/gems/yaml-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile b/gems/yaml-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile index 42e9d9bd4..e27f1bbae 100644 --- a/gems/yaml-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile +++ b/gems/yaml-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 -gem "mutex_m", "~> 0.2" +gem 'mutex_m', '~> 0.2' diff --git a/gems/yaml-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile b/gems/yaml-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile index 42e9d9bd4..e27f1bbae 100644 --- a/gems/yaml-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile +++ b/gems/yaml-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 -gem "mutex_m", "~> 0.2" +gem 'mutex_m', '~> 0.2' diff --git a/gems/yaml-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile b/gems/yaml-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile index 42e9d9bd4..e27f1bbae 100644 --- a/gems/yaml-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile +++ b/gems/yaml-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 -gem "mutex_m", "~> 0.2" +gem 'mutex_m', '~> 0.2' diff --git a/gems/yaml-merge/gemfiles/modular/mutex_m/vHEAD.gemfile b/gems/yaml-merge/gemfiles/modular/mutex_m/vHEAD.gemfile index 8af3b6fca..9dac2f6cb 100644 --- a/gems/yaml-merge/gemfiles/modular/mutex_m/vHEAD.gemfile +++ b/gems/yaml-merge/gemfiles/modular/mutex_m/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 (dependency of omniauth) -gem "mutex_m", github: "ruby/mutex_m", branch: "master" +gem 'mutex_m', github: 'ruby/mutex_m', branch: 'master' diff --git a/gems/yaml-merge/gemfiles/modular/optional.gemfile b/gems/yaml-merge/gemfiles/modular/optional.gemfile index 80bc45196..9ea429538 100644 --- a/gems/yaml-merge/gemfiles/modular/optional.gemfile +++ b/gems/yaml-merge/gemfiles/modular/optional.gemfile @@ -9,8 +9,8 @@ # Optional dependencies are not depended on directly, but may be used if present. # Required for curated binstubs generated by kettle-jem install -gem "rbs", ">= 3.0", require: false # ruby >= 3.1 +gem 'rbs', '>= 3.0', require: false # ruby >= 3.1 # Required for kettle-pre-release # URL parsing with Unicode support (falls back to URI if not available) -gem "addressable", ">= 2.8", "< 3" # ruby >= 2.2 +gem 'addressable', '>= 2.8', '< 3' # ruby >= 2.2 diff --git a/gems/yaml-merge/gemfiles/modular/rspec.gemfile b/gems/yaml-merge/gemfiles/modular/rspec.gemfile index 72fdf8b7f..2af210a41 100644 --- a/gems/yaml-merge/gemfiles/modular/rspec.gemfile +++ b/gems/yaml-merge/gemfiles/modular/rspec.gemfile @@ -1,4 +1,4 @@ -gem "rspec_junit_formatter", - github: "pboling/rspec_junit_formatter", - branch: "main", - ref: "9e6bcaaedd49477b62878ed568dc4ada5cc7cb5e" +gem 'rspec_junit_formatter', + github: 'pboling/rspec_junit_formatter', + branch: 'main', + ref: '9e6bcaaedd49477b62878ed568dc4ada5cc7cb5e' diff --git a/gems/yaml-merge/gemfiles/modular/runtime_heads.gemfile b/gems/yaml-merge/gemfiles/modular/runtime_heads.gemfile index 02f134c7f..ebf17c529 100644 --- a/gems/yaml-merge/gemfiles/modular/runtime_heads.gemfile +++ b/gems/yaml-merge/gemfiles/modular/runtime_heads.gemfile @@ -8,4 +8,4 @@ # Test against HEAD of runtime dependencies so we can proactively file bugs -eval_gemfile("x_std_libs/vHEAD.gemfile") +eval_gemfile('x_std_libs/vHEAD.gemfile') diff --git a/gems/yaml-merge/gemfiles/modular/stringio/r2/v3.0.gemfile b/gems/yaml-merge/gemfiles/modular/stringio/r2/v3.0.gemfile index e85bb18ee..3616f4e3a 100644 --- a/gems/yaml-merge/gemfiles/modular/stringio/r2/v3.0.gemfile +++ b/gems/yaml-merge/gemfiles/modular/stringio/r2/v3.0.gemfile @@ -2,4 +2,4 @@ # NOT SEMVER # Version 3.0.7 dropped support for Ruby <= 2.7 # Version 3.0.0 dropped support for Ruby <= 2.4 -gem "stringio", ">= 3.0" +gem 'stringio', '>= 3.0' diff --git a/gems/yaml-merge/gemfiles/modular/stringio/r3/v3.0.gemfile b/gems/yaml-merge/gemfiles/modular/stringio/r3/v3.0.gemfile index e85bb18ee..3616f4e3a 100644 --- a/gems/yaml-merge/gemfiles/modular/stringio/r3/v3.0.gemfile +++ b/gems/yaml-merge/gemfiles/modular/stringio/r3/v3.0.gemfile @@ -2,4 +2,4 @@ # NOT SEMVER # Version 3.0.7 dropped support for Ruby <= 2.7 # Version 3.0.0 dropped support for Ruby <= 2.4 -gem "stringio", ">= 3.0" +gem 'stringio', '>= 3.0' diff --git a/gems/yaml-merge/gemfiles/modular/stringio/r4/v3.0.gemfile b/gems/yaml-merge/gemfiles/modular/stringio/r4/v3.0.gemfile index e85bb18ee..3616f4e3a 100644 --- a/gems/yaml-merge/gemfiles/modular/stringio/r4/v3.0.gemfile +++ b/gems/yaml-merge/gemfiles/modular/stringio/r4/v3.0.gemfile @@ -2,4 +2,4 @@ # NOT SEMVER # Version 3.0.7 dropped support for Ruby <= 2.7 # Version 3.0.0 dropped support for Ruby <= 2.4 -gem "stringio", ">= 3.0" +gem 'stringio', '>= 3.0' diff --git a/gems/yaml-merge/gemfiles/modular/stringio/vHEAD.gemfile b/gems/yaml-merge/gemfiles/modular/stringio/vHEAD.gemfile index 5f2a74126..78f5f5d8a 100644 --- a/gems/yaml-merge/gemfiles/modular/stringio/vHEAD.gemfile +++ b/gems/yaml-merge/gemfiles/modular/stringio/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 (dependency of omniauth) -gem "stringio", github: "ruby/stringio", branch: "master" +gem 'stringio', github: 'ruby/stringio', branch: 'master' diff --git a/gems/yaml-merge/gemfiles/modular/style.gemfile b/gems/yaml-merge/gemfiles/modular/style.gemfile index 35de4dcd6..4dbcc02c0 100644 --- a/gems/yaml-merge/gemfiles/modular/style.gemfile +++ b/gems/yaml-merge/gemfiles/modular/style.gemfile @@ -9,23 +9,23 @@ # Style tasks run on the latest Ruby; RuboCop-LTS selects the compatibility # rules for the configured Ruby floor independently from task dependency floors. -gem "reek", "~> 6.5", ">= 6.5.0" +gem 'reek', '~> 6.5', '>= 6.5.0' platform :mri do - gem "appraisal2-rubocop", "~> 1.0", ">= 1.0.0", require: false - gem "rubocop-gradual", "~> 0.4", ">= 0.4.0" - gem "rubocop-minitest", "~> 0.40", ">= 0.40.0" - gem "rubocop-on-rbs", "~> 2.0", ">= 2.0.0" # ruby >= 3.2.0 + gem 'appraisal2-rubocop', '~> 1.0', '>= 1.0.0', require: false + gem 'rubocop-gradual', '~> 0.4', '>= 0.4.0' + gem 'rubocop-minitest', '~> 0.40', '>= 0.40.0' + gem 'rubocop-on-rbs', '~> 2.0', '>= 2.0.0' # ruby >= 3.2.0 # gem "rubocop", "~> 1.73", ">= 1.73.2" # constrained by standard - gem "rubocop-packaging", "~> 0.6", ">= 0.6.0" - gem "standard", "~> 1.56", ">= 1.56.0" + gem 'rubocop-packaging', '~> 0.6', '>= 0.6.0' + gem 'standard', '~> 1.56', '>= 1.56.0' - if ENV.fetch("RUBOCOP_LTS_LOCAL", "false").casecmp("false").zero? + if ENV.fetch('RUBOCOP_LTS_LOCAL', 'false').casecmp('false').zero? declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) - gem "rubocop-lts", "~> 24.2", ">= 24.2.1" unless declared_gems.include?("rubocop-lts") - gem "rubocop-lts-rspec", "~> 1.0", ">= 1.0.5" unless declared_gems.include?("rubocop-lts-rspec") - gem "rubocop-ruby3_2", "~> 3.0", ">= 3.0.6" unless declared_gems.include?("rubocop-ruby3_2") + gem 'rubocop-lts', '~> 24.2', '>= 24.2.1' unless declared_gems.include?('rubocop-lts') + gem 'rubocop-lts-rspec', '~> 1.0', '>= 1.0.5' unless declared_gems.include?('rubocop-lts-rspec') + gem 'rubocop-ruby3_2', '~> 3.0', '>= 3.0.6' unless declared_gems.include?('rubocop-ruby3_2') else - eval_gemfile("style_local.gemfile") + eval_gemfile('style_local.gemfile') end end diff --git a/gems/yaml-merge/gemfiles/modular/style_local.gemfile b/gems/yaml-merge/gemfiles/modular/style_local.gemfile index 255bf2e49..516eb058b 100644 --- a/gems/yaml-merge/gemfiles/modular/style_local.gemfile +++ b/gems/yaml-merge/gemfiles/modular/style_local.gemfile @@ -14,21 +14,19 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] -nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) +nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] +nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == "nomono" } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - if nomono_locked - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] - end + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked end -Kernel.send(:gem, "nomono", *nomono_activation_requirements) -require "nomono/bundler" +Kernel.send(:gem, 'nomono', *nomono_activation_requirements) +require 'nomono/bundler' local_gems = %w[rubocop-lts rubocop-lts-rspec rubocop-ruby3_2 standard-rubocop-lts] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) @@ -38,11 +36,11 @@ local_gems_to_eval = local_gems - %w[yaml-merge] - declared_gems platform :mri do eval_nomono_gems( gems: local_gems_to_eval, - prefix: "RUBOCOP_LTS", - path_env: "RUBOCOP_LTS_LOCAL", - vendored_gems_env: "VENDORED_GEMS", - vendor_gem_dir_env: "VENDOR_GEM_DIR", - debug_env: "RUBOCOP_LTS_DEBUG", - root: ["src", "rubocop-lts"] + prefix: 'RUBOCOP_LTS', + path_env: 'RUBOCOP_LTS_LOCAL', + vendored_gems_env: 'VENDORED_GEMS', + vendor_gem_dir_env: 'VENDOR_GEM_DIR', + debug_env: 'RUBOCOP_LTS_DEBUG', + root: %w[src rubocop-lts] ) end diff --git a/gems/yaml-merge/gemfiles/modular/templating.gemfile b/gems/yaml-merge/gemfiles/modular/templating.gemfile index 47138ffbb..a672de184 100644 --- a/gems/yaml-merge/gemfiles/modular/templating.gemfile +++ b/gems/yaml-merge/gemfiles/modular/templating.gemfile @@ -1,18 +1,18 @@ # frozen_string_literal: true -structuredmerge_remote = ENV.fetch("STRUCTUREDMERGE_DEV", "false").casecmp("false").zero? -kettle_remote = ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false").zero? +structuredmerge_remote = ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false').zero? +kettle_remote = ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? if structuredmerge_remote # Parser dependencies for released installs. - gem "tree_sitter_language_pack", "~> 1.13", ">= 1.13.3" + gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' # Merge recipes for released installs. - gem "kettle-jem", ">= 7.0" + gem 'kettle-jem', '>= 7.0' end if kettle_remote # Template/plugin checks for released installs. - gem "kettle-drift", "~> 1.0", ">= 1.0.6", require: false + gem 'kettle-drift', '~> 1.0', '>= 1.0.6', require: false end # Set STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local development with path-based dependencies. @@ -21,4 +21,4 @@ end # # Set KETTLE_DEV_DEV=/path/to/my for local development with Kettle plugin gems. # When false (default / CI), released Kettle plugin gems are used. -eval_gemfile "templating_local.gemfile" unless structuredmerge_remote && kettle_remote +eval_gemfile 'templating_local.gemfile' unless structuredmerge_remote && kettle_remote diff --git a/gems/yaml-merge/gemfiles/modular/templating_local.gemfile b/gems/yaml-merge/gemfiles/modular/templating_local.gemfile index 88da435ec..0503994a0 100644 --- a/gems/yaml-merge/gemfiles/modular/templating_local.gemfile +++ b/gems/yaml-merge/gemfiles/modular/templating_local.gemfile @@ -12,21 +12,19 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] -nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) +nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] +nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == "nomono" } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - if nomono_locked - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] - end + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked end -Kernel.send(:gem, "nomono", *nomono_activation_requirements) -require "nomono/bundler" +Kernel.send(:gem, 'nomono', *nomono_activation_requirements) +require 'nomono/bundler' structuredmerge_local_gems = %w[ tree_haver @@ -69,25 +67,25 @@ structuredmerge_local_gems_to_eval = structuredmerge_local_gems - %w[yaml-merge] kettle_dev_local_gems_to_eval = kettle_dev_local_gems - %w[yaml-merge] - declared_gems platform :mri do - if ENV.fetch("STRUCTUREDMERGE_DEV", "false").casecmp("false") != 0 + if ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false') != 0 eval_nomono_gems( gems: structuredmerge_local_gems_to_eval, - prefix: "STRUCTUREDMERGE", - path_env: "STRUCTUREDMERGE_DEV", - vendored_gems_env: "VENDORED_GEMS", - vendor_gem_dir_env: "VENDOR_GEM_DIR", - debug_env: "STRUCTUREDMERGE_DEBUG" + prefix: 'STRUCTUREDMERGE', + path_env: 'STRUCTUREDMERGE_DEV', + vendored_gems_env: 'VENDORED_GEMS', + vendor_gem_dir_env: 'VENDOR_GEM_DIR', + debug_env: 'STRUCTUREDMERGE_DEBUG' ) end - if ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false") != 0 + if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false') != 0 eval_nomono_gems( gems: kettle_dev_local_gems_to_eval, - prefix: "KETTLE_DEV", - path_env: "KETTLE_DEV_DEV", - vendored_gems_env: "VENDORED_GEMS", - vendor_gem_dir_env: "VENDOR_GEM_DIR", - debug_env: "KETTLE_DEV_DEBUG" + prefix: 'KETTLE_DEV', + path_env: 'KETTLE_DEV_DEV', + vendored_gems_env: 'VENDORED_GEMS', + vendor_gem_dir_env: 'VENDOR_GEM_DIR', + debug_env: 'KETTLE_DEV_DEBUG' ) end end diff --git a/gems/yaml-merge/gemfiles/modular/webrick/r4/v1.9.gemfile b/gems/yaml-merge/gemfiles/modular/webrick/r4/v1.9.gemfile index eaab4a473..b1329ba84 100644 --- a/gems/yaml-merge/gemfiles/modular/webrick/r4/v1.9.gemfile +++ b/gems/yaml-merge/gemfiles/modular/webrick/r4/v1.9.gemfile @@ -1 +1 @@ -gem "webrick", "~> 1.9" +gem 'webrick', '~> 1.9' diff --git a/gems/yaml-merge/gemfiles/modular/webrick/vHEAD.gemfile b/gems/yaml-merge/gemfiles/modular/webrick/vHEAD.gemfile index 8a789b634..c7e6f81a1 100644 --- a/gems/yaml-merge/gemfiles/modular/webrick/vHEAD.gemfile +++ b/gems/yaml-merge/gemfiles/modular/webrick/vHEAD.gemfile @@ -1 +1 @@ -gem "webrick", ">= 1.9" +gem 'webrick', '>= 1.9' diff --git a/gems/yaml-merge/gemfiles/modular/x_std_libs.gemfile b/gems/yaml-merge/gemfiles/modular/x_std_libs.gemfile index 77aad43f2..b1f43c097 100644 --- a/gems/yaml-merge/gemfiles/modular/x_std_libs.gemfile +++ b/gems/yaml-merge/gemfiles/modular/x_std_libs.gemfile @@ -1,12 +1,12 @@ ### Std Lib Extracted Gems ruby_version = Gem::Version.new(RUBY_VERSION) -if ruby_version >= Gem::Version.new("4.0") - eval_gemfile "x_std_libs/r4/libs.gemfile" -elsif ruby_version >= Gem::Version.new("3.2") - eval_gemfile "x_std_libs/r3/libs.gemfile" -elsif ruby_version >= Gem::Version.new("3.1") - eval_gemfile "x_std_libs/r3.1/libs.gemfile" +if ruby_version >= Gem::Version.new('4.0') + eval_gemfile 'x_std_libs/r4/libs.gemfile' +elsif ruby_version >= Gem::Version.new('3.2') + eval_gemfile 'x_std_libs/r3/libs.gemfile' +elsif ruby_version >= Gem::Version.new('3.1') + eval_gemfile 'x_std_libs/r3.1/libs.gemfile' else - eval_gemfile "x_std_libs/r2/libs.gemfile" + eval_gemfile 'x_std_libs/r2/libs.gemfile' end diff --git a/gems/yaml-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile b/gems/yaml-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile index 441c4f03a..16a5e3d70 100644 --- a/gems/yaml-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile +++ b/gems/yaml-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile @@ -1,3 +1,3 @@ -eval_gemfile "../../erb/r2/v3.0.gemfile" -eval_gemfile "../../mutex_m/r2/v0.3.gemfile" -eval_gemfile "../../stringio/r2/v3.0.gemfile" +eval_gemfile '../../erb/r2/v3.0.gemfile' +eval_gemfile '../../mutex_m/r2/v0.3.gemfile' +eval_gemfile '../../stringio/r2/v3.0.gemfile' diff --git a/gems/yaml-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile b/gems/yaml-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile index c293a3ddd..220ff95c1 100644 --- a/gems/yaml-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile +++ b/gems/yaml-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile @@ -1,3 +1,3 @@ -eval_gemfile "../../erb/r3/v5.0.gemfile" -eval_gemfile "../../mutex_m/r3/v0.3.gemfile" -eval_gemfile "../../stringio/r3/v3.0.gemfile" +eval_gemfile '../../erb/r3/v5.0.gemfile' +eval_gemfile '../../mutex_m/r3/v0.3.gemfile' +eval_gemfile '../../stringio/r3/v3.0.gemfile' diff --git a/gems/yaml-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile b/gems/yaml-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile index eb5574247..e2f6501eb 100644 --- a/gems/yaml-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile +++ b/gems/yaml-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile @@ -1,6 +1,6 @@ -eval_gemfile "../../erb/r4/v5.0.gemfile" -eval_gemfile "../../mutex_m/r4/v0.3.gemfile" -eval_gemfile "../../stringio/r4/v3.0.gemfile" -eval_gemfile "../../benchmark/r4/v0.5.gemfile" -eval_gemfile "../../cgi/r4/v0.5.gemfile" -eval_gemfile "../../webrick/r4/v1.9.gemfile" +eval_gemfile '../../erb/r4/v5.0.gemfile' +eval_gemfile '../../mutex_m/r4/v0.3.gemfile' +eval_gemfile '../../stringio/r4/v3.0.gemfile' +eval_gemfile '../../benchmark/r4/v0.5.gemfile' +eval_gemfile '../../cgi/r4/v0.5.gemfile' +eval_gemfile '../../webrick/r4/v1.9.gemfile' diff --git a/gems/yaml-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile b/gems/yaml-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile index d4d5b16c9..ab75cccf1 100644 --- a/gems/yaml-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile +++ b/gems/yaml-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile @@ -1,6 +1,6 @@ -eval_gemfile "../erb/vHEAD.gemfile" -eval_gemfile "../mutex_m/vHEAD.gemfile" -eval_gemfile "../stringio/vHEAD.gemfile" -eval_gemfile "../benchmark/vHEAD.gemfile" -eval_gemfile "../cgi/vHEAD.gemfile" -eval_gemfile "../webrick/vHEAD.gemfile" +eval_gemfile '../erb/vHEAD.gemfile' +eval_gemfile '../mutex_m/vHEAD.gemfile' +eval_gemfile '../stringio/vHEAD.gemfile' +eval_gemfile '../benchmark/vHEAD.gemfile' +eval_gemfile '../cgi/vHEAD.gemfile' +eval_gemfile '../webrick/vHEAD.gemfile' diff --git a/gems/yaml-merge/lib/yaml/merge/version.rb b/gems/yaml-merge/lib/yaml/merge/version.rb index e1303b9fe..418cfb7b8 100644 --- a/gems/yaml-merge/lib/yaml/merge/version.rb +++ b/gems/yaml-merge/lib/yaml/merge/version.rb @@ -3,7 +3,7 @@ module Yaml module Merge module Version - VERSION = "7.1.0" + VERSION = '7.1.0' end VERSION = Version::VERSION # Traditional Constant Location end diff --git a/gems/yaml-merge/spec/spec_helper.rb b/gems/yaml-merge/spec/spec_helper.rb index ac06bb126..3081c8564 100644 --- a/gems/yaml-merge/spec/spec_helper.rb +++ b/gems/yaml-merge/spec/spec_helper.rb @@ -7,16 +7,16 @@ # NOTE: Gemfiles for non-coverage appraisals may not have kettle-soup-cover. # The rescue LoadError handles that scenario. begin - require "kettle-soup-cover" + require 'kettle-soup-cover' if Kettle::Soup::Cover::DO_COV # Requiring simplecov loads the project-local `.simplecov`. - require "simplecov" - require "kettle/soup/cover/config" + require 'simplecov' + require 'kettle/soup/cover/config' SimpleCov.start end -rescue LoadError => error +rescue LoadError => e # check the error message and re-raise when unexpected - raise error unless error.message.include?("kettle") + raise e unless e.message.include?('kettle') end # External RSpec & related config From 5e417deac2600708e545d72faf9fb9405b4a34fa Mon Sep 17 00:00:00 2001 From: "Peter H. Boling" Date: Tue, 21 Jul 2026 18:04:13 -0600 Subject: [PATCH 163/188] =?UTF-8?q?=F0=9F=8E=A8=20Template=20bootstrap=20b?= =?UTF-8?q?y=20kettle-jem=20v7.1.0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gems/go-merge/.kettle-drift.lock | 144 +++++++- gems/go-merge/.rubocop_gradual.lock | 116 ------ gems/go-merge/.simplecov | 8 +- gems/go-merge/Gemfile | 40 ++ gems/go-merge/Gemfile.lock | 326 +--------------- .../gemfiles/modular/erb/r2/v3.0.gemfile | 2 +- .../gemfiles/modular/erb/r3/v5.0.gemfile | 2 +- .../gemfiles/modular/erb/r4/v5.0.gemfile | 2 +- .../gemfiles/modular/erb/vHEAD.gemfile | 2 +- .../modular/json/truffleruby_22_3.gemfile | 4 +- .../modular/json/truffleruby_23_0.gemfile | 4 +- .../modular/json/truffleruby_23_1.gemfile | 4 +- .../gemfiles/modular/mutex_m/r2/v0.3.gemfile | 2 +- .../gemfiles/modular/mutex_m/r3/v0.3.gemfile | 2 +- .../gemfiles/modular/mutex_m/r4/v0.3.gemfile | 2 +- .../gemfiles/modular/mutex_m/vHEAD.gemfile | 2 +- .../gemfiles/modular/optional.gemfile | 4 +- gems/go-merge/gemfiles/modular/rspec.gemfile | 8 +- .../gemfiles/modular/runtime_heads.gemfile | 2 +- .../gemfiles/modular/stringio/r2/v3.0.gemfile | 2 +- .../gemfiles/modular/stringio/r3/v3.0.gemfile | 2 +- .../gemfiles/modular/stringio/r4/v3.0.gemfile | 2 +- .../gemfiles/modular/stringio/vHEAD.gemfile | 2 +- gems/go-merge/gemfiles/modular/style.gemfile | 24 +- .../gemfiles/modular/style_local.gemfile | 32 +- .../gemfiles/modular/templating.gemfile | 12 +- .../gemfiles/modular/templating_local.gemfile | 44 +-- .../gemfiles/modular/webrick/r4/v1.9.gemfile | 2 +- .../gemfiles/modular/webrick/vHEAD.gemfile | 2 +- .../gemfiles/modular/x_std_libs.gemfile | 14 +- .../modular/x_std_libs/r2/libs.gemfile | 6 +- .../modular/x_std_libs/r3/libs.gemfile | 6 +- .../modular/x_std_libs/r4/libs.gemfile | 12 +- .../gemfiles/modular/x_std_libs/vHEAD.gemfile | 12 +- gems/go-merge/lib/go/merge/version.rb | 2 +- gems/go-merge/spec/spec_helper.rb | 13 +- gems/rust-merge/.kettle-drift.lock | 144 +++++++- gems/rust-merge/.simplecov | 8 +- gems/rust-merge/Gemfile | 72 +++- gems/rust-merge/Gemfile.lock | 348 +++++++++++++++++- gems/rust-merge/README.md | 1 + gems/rust-merge/Rakefile | 18 +- .../modular/benchmark/r4/v0.5.gemfile | 2 +- .../gemfiles/modular/benchmark/vHEAD.gemfile | 2 +- .../gemfiles/modular/cgi/r4/v0.5.gemfile | 2 +- .../gemfiles/modular/cgi/vHEAD.gemfile | 2 +- .../gemfiles/modular/coverage.gemfile | 6 +- .../gemfiles/modular/coverage_local.gemfile | 42 ++- .../rust-merge/gemfiles/modular/debug.gemfile | 4 +- .../gemfiles/modular/documentation.gemfile | 24 +- .../modular/documentation_local.gemfile | 30 +- .../gemfiles/modular/erb/r2/v3.0.gemfile | 2 +- .../gemfiles/modular/erb/r3/v5.0.gemfile | 2 +- .../gemfiles/modular/erb/r4/v5.0.gemfile | 2 +- .../gemfiles/modular/erb/vHEAD.gemfile | 2 +- .../modular/json/truffleruby_22_3.gemfile | 4 +- .../modular/json/truffleruby_23_0.gemfile | 4 +- .../modular/json/truffleruby_23_1.gemfile | 4 +- .../gemfiles/modular/mutex_m/r2/v0.3.gemfile | 2 +- .../gemfiles/modular/mutex_m/r3/v0.3.gemfile | 2 +- .../gemfiles/modular/mutex_m/r4/v0.3.gemfile | 2 +- .../gemfiles/modular/mutex_m/vHEAD.gemfile | 2 +- .../gemfiles/modular/optional.gemfile | 4 +- .../rust-merge/gemfiles/modular/rspec.gemfile | 8 +- .../gemfiles/modular/runtime_heads.gemfile | 2 +- .../gemfiles/modular/stringio/r2/v3.0.gemfile | 2 +- .../gemfiles/modular/stringio/r3/v3.0.gemfile | 2 +- .../gemfiles/modular/stringio/r4/v3.0.gemfile | 2 +- .../gemfiles/modular/stringio/vHEAD.gemfile | 2 +- .../rust-merge/gemfiles/modular/style.gemfile | 24 +- .../gemfiles/modular/style_local.gemfile | 32 +- .../gemfiles/modular/templating.gemfile | 12 +- .../gemfiles/modular/templating_local.gemfile | 44 +-- .../gemfiles/modular/webrick/r4/v1.9.gemfile | 2 +- .../gemfiles/modular/webrick/vHEAD.gemfile | 2 +- .../gemfiles/modular/x_std_libs.gemfile | 14 +- .../modular/x_std_libs/r2/libs.gemfile | 6 +- .../modular/x_std_libs/r3/libs.gemfile | 6 +- .../modular/x_std_libs/r4/libs.gemfile | 12 +- .../gemfiles/modular/x_std_libs/vHEAD.gemfile | 12 +- gems/rust-merge/lib/rust/merge/version.rb | 2 +- gems/rust-merge/spec/spec_helper.rb | 13 +- gems/toml-merge/.rubocop_gradual.lock | 2 +- gems/toml-merge/.simplecov | 8 +- gems/toml-merge/Gemfile | 70 ++-- gems/toml-merge/Gemfile.lock | 322 +--------------- gems/toml-merge/Rakefile | 18 +- .../gemfiles/modular/templating.gemfile | 12 +- .../gemfiles/modular/templating_local.gemfile | 44 ++- gems/toml-merge/lib/toml/merge/version.rb | 2 +- gems/toml-merge/spec/spec_helper.rb | 7 +- gems/typescript-merge/.kettle-drift.lock | 144 +++++++- gems/typescript-merge/Gemfile | 72 +++- gems/typescript-merge/Gemfile.lock | 348 +++++++++++++++++- gems/typescript-merge/Rakefile | 18 +- .../gemfiles/modular/templating.gemfile | 12 +- .../gemfiles/modular/templating_local.gemfile | 44 +-- .../lib/typescript/merge/version.rb | 2 +- gems/yaml-merge/Gemfile.lock | 326 +++++++++++++++- 99 files changed, 2003 insertions(+), 1249 deletions(-) delete mode 100644 gems/go-merge/.rubocop_gradual.lock diff --git a/gems/go-merge/.kettle-drift.lock b/gems/go-merge/.kettle-drift.lock index 43dfedd67..7cc6a5131 100644 --- a/gems/go-merge/.kettle-drift.lock +++ b/gems/go-merge/.kettle-drift.lock @@ -1,10 +1,74 @@ { + "(direct_sibling_local ||\nENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?)": [ + { + "file": "Gemfile", + "lines": [ + 80, + 120 + ] + } + ], + ".find { |spec| spec.name == 'nomono' }\nnomono_locked = nomono_locked_spec &&": [ + { + "file": "Gemfile", + "lines": [ + 91, + 131 + ] + } + ], + "ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?)\ndirect_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV')": [ + { + "file": "Gemfile", + "lines": [ + 81, + 121 + ] + } + ], + "Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version)\nnomono_activation_requirements = [\"= #{nomono_locked_spec.version}\"] if nomono_locked": [ + { + "file": "Gemfile", + "lines": [ + 93, + 133 + ] + } + ], + "Kernel.send(:gem, 'nomono', *nomono_activation_requirements)\nrequire 'nomono/bundler'": [ + { + "file": "Gemfile", + "lines": [ + 96, + 136 + ] + } + ], + "direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV')\ndirect_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil)": [ + { + "file": "Gemfile", + "lines": [ + 82, + 122 + ] + } + ], "eval_nomono_gems(\ngems: direct_sibling_gems,": [ { "file": "Gemfile", "lines": [ 60, - 100 + 100, + 140 + ] + } + ], + "gems: direct_sibling_gems,\nprefix: 'STRUCTUREDMERGE',": [ + { + "file": "Gemfile", + "lines": [ + 101, + 141 ] } ], @@ -13,7 +77,17 @@ "file": "Gemfile", "lines": [ 43, - 87 + 87, + 127 + ] + } + ], + "if direct_sibling_dev_was_set\nENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original": [ + { + "file": "Gemfile", + "lines": [ + 110, + 150 ] } ], @@ -22,7 +96,8 @@ "file": "Gemfile", "lines": [ 35, - 79 + 79, + 119 ] } ], @@ -31,7 +106,17 @@ "file": "Gemfile", "lines": [ 69, - 109 + 109, + 149 + ] + } + ], + "nomono_activation_requirements = nomono_requirements\nnomono_lockfile = File.expand_path('Gemfile.lock', __dir__)": [ + { + "file": "Gemfile", + "lines": [ + 85, + 125 ] } ], @@ -40,7 +125,8 @@ "file": "Gemfile", "lines": [ 48, - 92 + 92, + 132 ] } ], @@ -49,7 +135,53 @@ "file": "Gemfile", "lines": [ 44, - 88 + 88, + 128 + ] + } + ], + "nomono_lockfile = File.expand_path('Gemfile.lock', __dir__)\nif File.file?(nomono_lockfile)": [ + { + "file": "Gemfile", + "lines": [ + 86, + 126 + ] + } + ], + "path_env: 'STRUCTUREDMERGE_DEV',\nroot: %w[src my structuredmerge]": [ + { + "file": "Gemfile", + "lines": [ + 103, + 143 + ] + } + ], + "prefix: 'STRUCTUREDMERGE',\npath_env: 'STRUCTUREDMERGE_DEV',": [ + { + "file": "Gemfile", + "lines": [ + 102, + 142 + ] + } + ], + "require 'nomono/bundler'\nENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local": [ + { + "file": "Gemfile", + "lines": [ + 97, + 137 + ] + } + ], + "rescue LoadError\nwarn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.'": [ + { + "file": "Gemfile", + "lines": [ + 106, + 146 ] } ] diff --git a/gems/go-merge/.rubocop_gradual.lock b/gems/go-merge/.rubocop_gradual.lock deleted file mode 100644 index 8256d3420..000000000 --- a/gems/go-merge/.rubocop_gradual.lock +++ /dev/null @@ -1,116 +0,0 @@ -{ - ".simplecov:203349166": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "Rakefile:522749197": [ - [18, 121, 17, "Layout/LineLength: Line is too long. [137/120]", 174264873], - [79, 3, 1023, "Metrics/BlockLength: Block has too many lines. [32/25]", 54868638], - [163, 121, 22, "Layout/LineLength: Line is too long. [142/120]", 1367093088], - [166, 121, 18, "Layout/LineLength: Line is too long. [138/120]", 3881946477] - ], - "gemfiles/modular/benchmark/r4/v0.5.gemfile:3644720371": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/benchmark/vHEAD.gemfile:2838879269": [ - [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/cgi/r4/v0.5.gemfile:367169322": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] - ], - "gemfiles/modular/cgi/vHEAD.gemfile:2729540777": [ - [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] - ], - "gemfiles/modular/erb/r2/v3.0.gemfile:1688285565": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] - ], - "gemfiles/modular/erb/r3/v5.0.gemfile:2394062339": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] - ], - "gemfiles/modular/erb/r4/v5.0.gemfile:2394062339": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] - ], - "gemfiles/modular/erb/vHEAD.gemfile:981929959": [ - [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/mutex_m/r2/v0.3.gemfile:4055275004": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/mutex_m/r3/v0.3.gemfile:4055275004": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/mutex_m/r4/v0.3.gemfile:4055275004": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/mutex_m/vHEAD.gemfile:556854763": [ - [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/rspec.gemfile:2263543889": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] - ], - "gemfiles/modular/stringio/r2/v3.0.gemfile:821604304": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/stringio/r3/v3.0.gemfile:821604304": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/stringio/r4/v3.0.gemfile:821604304": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/stringio/vHEAD.gemfile:1045839691": [ - [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/webrick/r4/v1.9.gemfile:3092661193": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] - ], - "gemfiles/modular/webrick/vHEAD.gemfile:3867684682": [ - [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] - ], - "gemfiles/modular/x_std_libs.gemfile:2324400122": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/x_std_libs/r2/libs.gemfile:36276542": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] - ], - "gemfiles/modular/x_std_libs/r3/libs.gemfile:4030570297": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] - ], - "gemfiles/modular/x_std_libs/r4/libs.gemfile:732451732": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] - ], - "gemfiles/modular/x_std_libs/vHEAD.gemfile:2390363993": [ - [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] - ], - "go-merge.gemspec:3413698974": [ - [128, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 2821357214], - [143, 121, 50, "Layout/LineLength: Line is too long. [170/120]", 3888612416], - [144, 121, 29, "Layout/LineLength: Line is too long. [149/120]", 981994949], - [151, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 4229808912] - ], - "lib/go-merge.rb:1938991181": [ - [1, 1, 0, "Naming/FileName: The name of this source file (`go-merge.rb`) should use snake_case.", 5381] - ], - "lib/go/merge.rb:1429248778": [ - [10, 3, 12, "Style/Documentation: Missing top-level documentation comment for `module Go::Merge`.", 2866359175], - [10, 3, 8162, "Metrics/ModuleLength: Module has too many lines. [191/100]", 1602270489], - [11, 5, 11, "Style/ModuleFunction: Use `module_function` instead of `extend self`.", 1210897631], - [74, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 1491828652], - [102, 5, 1399, "Metrics/AbcSize: Assignment Branch Condition size for `merge_go` is too high. [<13, 32, 11> 36.25/17]", 3471957286], - [102, 5, 1399, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `merge_go` is too high. [11/7]", 3471957286], - [102, 5, 1399, "Metrics/MethodLength: Method has too many lines. [22/10]", 3471957286], - [102, 5, 1399, "Metrics/PerceivedComplexity: Perceived complexity for `merge_go` is too high. [11/8]", 3471957286], - [121, 34, 7, "Style/MultilineBlockChain: Avoid multi-line chains of blocks.", 4045560504], - [129, 5, 1447, "Metrics/AbcSize: Assignment Branch Condition size for `analyze_go_module` is too high. [<8, 19, 5> 21.21/17]", 1720548769], - [129, 5, 1447, "Metrics/MethodLength: Method has too many lines. [40/10]", 1720548769] - ], - "spec/fixtures_integration_spec.rb:341155994": [ - [3, 1, 5172, "Metrics/BlockLength: Block has too many lines. [76/25]", 420437002], - [8, 3, 4420, "Metrics/BlockLength: Block has too many lines. [61/25]", 566085077] - ] -} diff --git a/gems/go-merge/.simplecov b/gems/go-merge/.simplecov index 5cedb0d75..72d10562d 100644 --- a/gems/go-merge/.simplecov +++ b/gems/go-merge/.simplecov @@ -4,15 +4,11 @@ # go-merge will then preserve content between those markers across template runs. # kettle-jem:unfreeze -require 'kettle/soup/cover/config' - # Minimum coverage thresholds are set by kettle-soup-cover. # They are controlled by ENV variables loaded by `mise` from `mise.toml` # (with optional machine-local overrides in `.env.local`). # If the values for minimum coverage need to change, they should be changed both there, # and in 2 places in .github/workflows/coverage.yml. -SimpleCov.start do - track_files 'lib/**/*.rb' - track_files 'lib/**/*.rake' - track_files 'exe/*.rb' +SimpleCov.configure do + cover 'lib/**/*.rb', 'lib/**/*.rake', 'exe/*.rb' end diff --git a/gems/go-merge/Gemfile b/gems/go-merge/Gemfile index d6bed6bd1..c31761d0d 100644 --- a/gems/go-merge/Gemfile +++ b/gems/go-merge/Gemfile @@ -112,6 +112,46 @@ if direct_sibling_gems.any? && end end +if direct_sibling_gems.any? && + (direct_sibling_local || + ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) + direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') + direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) + begin + nomono_activation_requirements = nomono_requirements + nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) + if File.file?(nomono_lockfile) + nomono_locked_spec = Bundler::LockfileParser + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } + nomono_locked = nomono_locked_spec && + Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked + end + Kernel.send(:gem, 'nomono', *nomono_activation_requirements) + require 'nomono/bundler' + ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local + + eval_nomono_gems( + gems: direct_sibling_gems, + prefix: 'STRUCTUREDMERGE', + path_env: 'STRUCTUREDMERGE_DEV', + root: %w[src my structuredmerge] + ) + rescue LoadError + warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' + ensure + if direct_sibling_templating && !direct_sibling_local + if direct_sibling_dev_was_set + ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original + else + ENV.delete('STRUCTUREDMERGE_DEV') + end + end + end +end + # Use released TSLP with the Ruby ABI platform-gem fix. gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' diff --git a/gems/go-merge/Gemfile.lock b/gems/go-merge/Gemfile.lock index 471150949..55e7f5d7a 100644 --- a/gems/go-merge/Gemfile.lock +++ b/gems/go-merge/Gemfile.lock @@ -6,38 +6,6 @@ PATH tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly - specs: - ast-crispr-markdown-markly (7.1.0) - ast-crispr (= 7.1.0) - markly-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism - specs: - ast-crispr-ruby-prism (7.1.0) - ast-crispr (= 7.1.0) - prism-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr - specs: - ast-crispr (7.1.0) - ast-merge (= 7.1.0) - service_actor (~> 3.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git - specs: - ast-merge-git (7.1.0) - ast-merge (= 7.1.0) - json-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - PATH remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge specs: @@ -47,193 +15,6 @@ PATH tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template - specs: - ast-template (7.1.0) - ast-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge - specs: - bash-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge - specs: - binary-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge - specs: - citrus-toml-merge (7.1.0) - toml-merge (= 7.1.0) - toml-rb (~> 4.1) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge - specs: - commonmarker-merge (7.1.0) - commonmarker (~> 2.2) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge - specs: - dotenv-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge - specs: - json-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem - specs: - kettle-jem (7.1.0) - addressable (>= 2.8, < 3) - ast-crispr-markdown-markly (= 7.1.0) - ast-crispr-ruby-prism (= 7.1.0) - ast-merge (= 7.1.0) - bash-merge (= 7.1.0) - citrus-toml-merge (= 7.1.0) - commonmarker-merge (= 7.1.0) - dotenv-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-dev (~> 2.3, >= 2.3.5) - kettle-rb (~> 0.1, >= 0.1.4) - kramdown-merge (= 7.1.0) - markdown-merge (= 7.1.0) - markly-merge (= 7.1.0) - prism-merge (= 7.1.0) - psych-merge (= 7.1.0) - rbs (>= 3.10) - rbs-merge (= 7.1.0) - ruby-merge (= 7.1.0) - token-resolver (~> 2.0, >= 2.0.4) - toml-merge (= 7.1.0) - toml-rb (~> 4.2) - tree_haver (= 7.1.0) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge - specs: - kramdown-merge (7.1.0) - kramdown (~> 2.5) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge - specs: - markdown-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge - specs: - markly-merge (7.1.0) - markdown-merge (= 7.1.0) - markly (~> 0.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge - specs: - parslet-toml-merge (7.1.0) - toml (~> 0.3) - toml-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge - specs: - plain-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge - specs: - prism-merge (7.1.0) - prism (~> 1.6) - ruby-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge - specs: - psych-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge - specs: - rbs-merge (7.1.0) - ast-merge (= 7.1.0) - rbs (>= 3.10) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge - specs: - ruby-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge - specs: - rust-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb - specs: - smorg-rb (7.1.0) - ast-merge (= 7.1.0) - ast-merge-git (= 7.1.0) - diff-lcs (~> 1.5) - go-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-jem (= 7.1.0) - markly-merge (= 7.1.0) - plain-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge - specs: - toml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - PATH remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver specs: @@ -243,29 +24,6 @@ PATH tree_sitter_language_pack (>= 1.13.2, < 2.0) version_gem (~> 1.1, >= 1.1.9) -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge - specs: - typescript-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge - specs: - yaml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge - specs: - zip-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - GEM remote: https://gem.coop/ specs: @@ -290,11 +48,6 @@ GEM cgi (0.5.2) citrus (3.0.2) cmdparse (3.0.7) - commonmarker (2.9.0-aarch64-linux) - commonmarker (2.9.0-aarch64-linux-musl) - commonmarker (2.9.0-arm64-darwin) - commonmarker (2.9.0-x86_64-linux) - commonmarker (2.9.0-x86_64-linux-musl) concurrent-ruby (1.3.8) date (3.5.1) debug (1.11.1) @@ -357,8 +110,6 @@ GEM kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) - kettle-drift (1.0.6) - version_gem (~> 1.1, >= 1.1.14) kettle-rb (0.1.5) kettle-soup-cover (3.0.4) kettle-wash (~> 0.1, >= 0.1.0) @@ -387,7 +138,6 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) - markly (0.16.0) mutex_m (0.3.0) nokogiri (1.19.4-aarch64-linux-gnu) racc (~> 1.4) @@ -550,8 +300,6 @@ GEM ruby-progressbar (1.13.0) ruby_engine (2.0.3) ruby_version (1.0.3) - service_actor (3.9.4) - zeitwerk (>= 1.0) silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) @@ -567,7 +315,7 @@ GEM simplecov (>= 0.4.1) simplecov_lcov_formatter (0.9.0) simplecov (>= 0.18) - sorbet-runtime (0.6.13347) + sorbet-runtime (0.6.13351) standard (1.56.0) language_server-protocol (~> 3.17.0.2) lint_roller (~> 1.0) @@ -606,11 +354,6 @@ GEM token-resolver (2.0.5) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.14) - toml (0.3.0) - parslet (>= 1.8.0, < 3.0.0) - toml-rb (4.2.0) - citrus (~> 3.0, > 3.0) - racc (~> 1.7) tree_sitter_language_pack (1.13.3-aarch64-linux) sorbet-runtime (~> 0.5) tree_sitter_language_pack (1.13.3-arm64-darwin) @@ -665,46 +408,25 @@ DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) appraisal2-rubocop (~> 1.0, >= 1.0.0) - ast-crispr! - ast-crispr-markdown-markly! - ast-crispr-ruby-prism! ast-merge! - ast-merge-git! - ast-template! - bash-merge! benchmark (~> 0.5, >= 0.5.0) - binary-merge! bundler-audit (~> 0.9.3) cgi (~> 0.5) - citrus-toml-merge! - commonmarker-merge! debug (>= 1.1) - dotenv-merge! erb (~> 6.0, >= 6.0.6) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.0) go-merge! irb (~> 1.17) - json-merge! kettle-dev (~> 2.0, >= 2.2.25) - kettle-drift (~> 1.0, >= 1.0.6) - kettle-jem! kettle-soup-cover (~> 3.0, >= 3.0.3) kettle-test (~> 2.0, >= 2.0.9) kramdown (~> 2.5, >= 2.5.2) - kramdown-merge! kramdown-parser-gfm (~> 1.1) - markdown-merge! - markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) - parslet-toml-merge! - plain-merge! - prism-merge! - psych-merge! rake (~> 13.0) rbs (>= 3.0) - rbs-merge! rdoc (~> 6.11) reek (~> 6.5, >= 6.5.0) require_bench (~> 1.0, >= 1.0.4) @@ -715,27 +437,20 @@ DEPENDENCIES rubocop-on-rbs (~> 2.0, >= 2.0.0) rubocop-packaging (~> 0.6, >= 0.6.0) rubocop-ruby3_2 (~> 3.0, >= 3.0.6) - ruby-merge! ruby-progressbar (~> 1.13) - rust-merge! - smorg-rb! standard (~> 1.56, >= 1.56.0) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) - toml-merge! tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) - typescript-merge! webrick (~> 1.9) yaml-converter (~> 0.2, >= 0.2.3) - yaml-merge! yard (~> 0.9, >= 0.9.45) yard-fence (~> 0.9, >= 0.9.6) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) yard-timekeeper (~> 0.2, >= 0.2.4) yard-yaml (~> 0.2, >= 0.2.3) - zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af @@ -743,35 +458,20 @@ CHECKSUMS appraisal2 (3.2.0) sha256=ccd0b767ac4060cd7af6d16747459b6990f49c39c7b4fb1f7d1146b1e97c492f appraisal2-rubocop (1.0.0) sha256=b71410fbb014befda5340605a605b7f6f3f012739baf0acc5b4351b592c3258d ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 - ast-crispr (7.1.0) - ast-crispr-markdown-markly (7.1.0) - ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) - ast-merge-git (7.1.0) - ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 - bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd - binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 - citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 - commonmarker (2.9.0-aarch64-linux) sha256=e2b4aadb9a2cfa4e206582641ce3a49465549ac1ed4c289fdd63b78d8f24579c - commonmarker (2.9.0-aarch64-linux-musl) sha256=1cf4d2821f2a7e64945f1ed7c4eeced586fdb27ea7fe7337788802cf8f57cfca - commonmarker (2.9.0-arm64-darwin) sha256=1748dbfa4f5813b0d2a14bb4bbfa65a4ec293aa1c825016d60029ee0e132b046 - commonmarker (2.9.0-x86_64-linux) sha256=8cfe92970eef585a19ddf6613224b91cab64d6029834661bda801f877c9c7f43 - commonmarker (2.9.0-x86_64-linux-musl) sha256=293921398b839f79ceaf55010e061357e34f053822c3b003cd0be6686176335e - commonmarker-merge (7.1.0) concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 - dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -789,23 +489,16 @@ CHECKSUMS io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 - json-merge (7.1.0) kettle-dev (2.3.8) sha256=9d716ff21c660a730cb4e8d41e2e2f0630a28167a354b6e2924e242102aef72c - kettle-drift (1.0.6) sha256=46eda08fa4411d1f3c6682a95eef1c9df4e94611b3949f49d4c7b43c0ed356a3 - kettle-jem (7.1.0) kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f kettle-soup-cover (3.0.4) kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa - kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 - markdown-merge (7.1.0) - markly (0.16.0) sha256=6f70d79e385b1efc9e171f74c81628826259039fe6c778e03c3924c71dac5511 - markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-aarch64-linux-gnu) sha256=1269fb644a6de405057a53dd5c762b1209b43ca7424f839454d3dbc677c31a8f nokogiri (1.19.4-aarch64-linux-musl) sha256=35c65b9ce72b3bb03207bdbe7067915019dc18c1b9b59139684bd6690fdd01af @@ -819,20 +512,15 @@ CHECKSUMS parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 - parslet-toml-merge (7.1.0) - plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 - prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 - psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 - rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb @@ -867,20 +555,16 @@ CHECKSUMS rubocop-rspec_rails (2.32.0) sha256=4a0d641c72f6ebb957534f539d9d0a62c47abd8ce0d0aeee1ef4701e892a9100 rubocop-ruby3_2 (3.0.7) sha256=f53dd6d286fb05186214fc6ec116783e7f837030918e8931c05de773e98f8466 rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 - ruby-merge (7.1.0) ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 - rust-merge (7.1.0) - service_actor (3.9.4) sha256=e63b523630b9a7e62959b2a90113b08d2565b5de9c148557b281ef847c9539ce silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed - smorg-rb (7.1.0) - sorbet-runtime (0.6.13347) sha256=54e7221d9f4b63f58aec79f3043752a9ba7810347c6ae0d903531591cc2d5f01 + sorbet-runtime (0.6.13351) sha256=f8fee17c6e3edf835dc6823d26afb9a7c8969c6710d1fabe2fb43f4e0c15c64f standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b standard-performance (1.9.0) sha256=49483d31be448292951d80e5e67cdcb576c2502103c7b40aec6f1b6e9c88e3f2 @@ -894,22 +578,17 @@ CHECKSUMS timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.5) sha256=b852f924287ffb58a440856e862b056c8ad97e74b4b2526cee43e0771f40c25c - toml (0.3.0) sha256=0a91d0f76a9036e84e44f95693b12f58d358c1df3ac8e3b5271f2056ecc6e4b9 - toml-merge (7.1.0) - toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-aarch64-linux) sha256=55ffc7c87868cb45658338363d9eba51b4a8b0259aa88e4de368d2bd1d52fea4 tree_sitter_language_pack (1.13.3-arm64-darwin) sha256=bc2498db605f212a1dbd2465ed3f65190d7da786f6ed5d30fcf958121aeb4a5c tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 - typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 webrick (1.9.2) sha256=beb4a15fc474defed24a3bda4ffd88a490d517c9e4e6118c3edce59e45864131 yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 - yaml-merge (7.1.0) yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd @@ -917,7 +596,6 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 - zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH diff --git a/gems/go-merge/gemfiles/modular/erb/r2/v3.0.gemfile b/gems/go-merge/gemfiles/modular/erb/r2/v3.0.gemfile index 7c83a239b..c03bd8d85 100644 --- a/gems/go-merge/gemfiles/modular/erb/r2/v3.0.gemfile +++ b/gems/go-merge/gemfiles/modular/erb/r2/v3.0.gemfile @@ -1 +1 @@ -gem 'erb', '~> 3.0' # ruby >= 2.7.0 +gem "erb", "~> 3.0" # ruby >= 2.7.0 diff --git a/gems/go-merge/gemfiles/modular/erb/r3/v5.0.gemfile b/gems/go-merge/gemfiles/modular/erb/r3/v5.0.gemfile index ec7ff451f..1bd029cc1 100644 --- a/gems/go-merge/gemfiles/modular/erb/r3/v5.0.gemfile +++ b/gems/go-merge/gemfiles/modular/erb/r3/v5.0.gemfile @@ -1 +1 @@ -gem 'erb', '~> 6.0', '>= 6.0.6' # ruby >= 3.2.0 +gem "erb", "~> 6.0", ">= 6.0.6" # ruby >= 3.2.0 diff --git a/gems/go-merge/gemfiles/modular/erb/r4/v5.0.gemfile b/gems/go-merge/gemfiles/modular/erb/r4/v5.0.gemfile index ec7ff451f..1bd029cc1 100644 --- a/gems/go-merge/gemfiles/modular/erb/r4/v5.0.gemfile +++ b/gems/go-merge/gemfiles/modular/erb/r4/v5.0.gemfile @@ -1 +1 @@ -gem 'erb', '~> 6.0', '>= 6.0.6' # ruby >= 3.2.0 +gem "erb", "~> 6.0", ">= 6.0.6" # ruby >= 3.2.0 diff --git a/gems/go-merge/gemfiles/modular/erb/vHEAD.gemfile b/gems/go-merge/gemfiles/modular/erb/vHEAD.gemfile index ea0101185..48fee4218 100644 --- a/gems/go-merge/gemfiles/modular/erb/vHEAD.gemfile +++ b/gems/go-merge/gemfiles/modular/erb/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 3.2 -gem 'erb', github: 'ruby/erb', branch: 'master' +gem "erb", github: "ruby/erb", branch: "master" diff --git a/gems/go-merge/gemfiles/modular/json/truffleruby_22_3.gemfile b/gems/go-merge/gemfiles/modular/json/truffleruby_22_3.gemfile index 9b2f8d96a..b0e69ab11 100644 --- a/gems/go-merge/gemfiles/modular/json/truffleruby_22_3.gemfile +++ b/gems/go-merge/gemfiles/modular/json/truffleruby_22_3.gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -if RUBY_ENGINE == 'truffleruby' && RUBY_ENGINE_VERSION.start_with?('22.3') +if RUBY_ENGINE == "truffleruby" && RUBY_ENGINE_VERSION.start_with?("22.3") # TruffleRuby 22.3 ships the json default gem from its emulated MRI Ruby. - gem 'json', '= 2.5.1' + gem "json", "= 2.5.1" end diff --git a/gems/go-merge/gemfiles/modular/json/truffleruby_23_0.gemfile b/gems/go-merge/gemfiles/modular/json/truffleruby_23_0.gemfile index d787a5ef4..7b2660a2b 100644 --- a/gems/go-merge/gemfiles/modular/json/truffleruby_23_0.gemfile +++ b/gems/go-merge/gemfiles/modular/json/truffleruby_23_0.gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -if RUBY_ENGINE == 'truffleruby' && RUBY_ENGINE_VERSION.start_with?('23.0') +if RUBY_ENGINE == "truffleruby" && RUBY_ENGINE_VERSION.start_with?("23.0") # TruffleRuby 23.0 ships the json default gem from its emulated MRI Ruby. - gem 'json', '= 2.6.1' + gem "json", "= 2.6.1" end diff --git a/gems/go-merge/gemfiles/modular/json/truffleruby_23_1.gemfile b/gems/go-merge/gemfiles/modular/json/truffleruby_23_1.gemfile index d78486b0e..dfa21f2e4 100644 --- a/gems/go-merge/gemfiles/modular/json/truffleruby_23_1.gemfile +++ b/gems/go-merge/gemfiles/modular/json/truffleruby_23_1.gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -if RUBY_ENGINE == 'truffleruby' && RUBY_ENGINE_VERSION.start_with?('23.1') +if RUBY_ENGINE == "truffleruby" && RUBY_ENGINE_VERSION.start_with?("23.1") # TruffleRuby 23.1 ships the json default gem from its emulated MRI Ruby. - gem 'json', '= 2.6.3' + gem "json", "= 2.6.3" end diff --git a/gems/go-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile b/gems/go-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile index e27f1bbae..42e9d9bd4 100644 --- a/gems/go-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile +++ b/gems/go-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 -gem 'mutex_m', '~> 0.2' +gem "mutex_m", "~> 0.2" diff --git a/gems/go-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile b/gems/go-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile index e27f1bbae..42e9d9bd4 100644 --- a/gems/go-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile +++ b/gems/go-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 -gem 'mutex_m', '~> 0.2' +gem "mutex_m", "~> 0.2" diff --git a/gems/go-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile b/gems/go-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile index e27f1bbae..42e9d9bd4 100644 --- a/gems/go-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile +++ b/gems/go-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 -gem 'mutex_m', '~> 0.2' +gem "mutex_m", "~> 0.2" diff --git a/gems/go-merge/gemfiles/modular/mutex_m/vHEAD.gemfile b/gems/go-merge/gemfiles/modular/mutex_m/vHEAD.gemfile index 9dac2f6cb..8af3b6fca 100644 --- a/gems/go-merge/gemfiles/modular/mutex_m/vHEAD.gemfile +++ b/gems/go-merge/gemfiles/modular/mutex_m/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 (dependency of omniauth) -gem 'mutex_m', github: 'ruby/mutex_m', branch: 'master' +gem "mutex_m", github: "ruby/mutex_m", branch: "master" diff --git a/gems/go-merge/gemfiles/modular/optional.gemfile b/gems/go-merge/gemfiles/modular/optional.gemfile index 9ea429538..80bc45196 100644 --- a/gems/go-merge/gemfiles/modular/optional.gemfile +++ b/gems/go-merge/gemfiles/modular/optional.gemfile @@ -9,8 +9,8 @@ # Optional dependencies are not depended on directly, but may be used if present. # Required for curated binstubs generated by kettle-jem install -gem 'rbs', '>= 3.0', require: false # ruby >= 3.1 +gem "rbs", ">= 3.0", require: false # ruby >= 3.1 # Required for kettle-pre-release # URL parsing with Unicode support (falls back to URI if not available) -gem 'addressable', '>= 2.8', '< 3' # ruby >= 2.2 +gem "addressable", ">= 2.8", "< 3" # ruby >= 2.2 diff --git a/gems/go-merge/gemfiles/modular/rspec.gemfile b/gems/go-merge/gemfiles/modular/rspec.gemfile index 2af210a41..72fdf8b7f 100644 --- a/gems/go-merge/gemfiles/modular/rspec.gemfile +++ b/gems/go-merge/gemfiles/modular/rspec.gemfile @@ -1,4 +1,4 @@ -gem 'rspec_junit_formatter', - github: 'pboling/rspec_junit_formatter', - branch: 'main', - ref: '9e6bcaaedd49477b62878ed568dc4ada5cc7cb5e' +gem "rspec_junit_formatter", + github: "pboling/rspec_junit_formatter", + branch: "main", + ref: "9e6bcaaedd49477b62878ed568dc4ada5cc7cb5e" diff --git a/gems/go-merge/gemfiles/modular/runtime_heads.gemfile b/gems/go-merge/gemfiles/modular/runtime_heads.gemfile index ebf17c529..02f134c7f 100644 --- a/gems/go-merge/gemfiles/modular/runtime_heads.gemfile +++ b/gems/go-merge/gemfiles/modular/runtime_heads.gemfile @@ -8,4 +8,4 @@ # Test against HEAD of runtime dependencies so we can proactively file bugs -eval_gemfile('x_std_libs/vHEAD.gemfile') +eval_gemfile("x_std_libs/vHEAD.gemfile") diff --git a/gems/go-merge/gemfiles/modular/stringio/r2/v3.0.gemfile b/gems/go-merge/gemfiles/modular/stringio/r2/v3.0.gemfile index 3616f4e3a..e85bb18ee 100644 --- a/gems/go-merge/gemfiles/modular/stringio/r2/v3.0.gemfile +++ b/gems/go-merge/gemfiles/modular/stringio/r2/v3.0.gemfile @@ -2,4 +2,4 @@ # NOT SEMVER # Version 3.0.7 dropped support for Ruby <= 2.7 # Version 3.0.0 dropped support for Ruby <= 2.4 -gem 'stringio', '>= 3.0' +gem "stringio", ">= 3.0" diff --git a/gems/go-merge/gemfiles/modular/stringio/r3/v3.0.gemfile b/gems/go-merge/gemfiles/modular/stringio/r3/v3.0.gemfile index 3616f4e3a..e85bb18ee 100644 --- a/gems/go-merge/gemfiles/modular/stringio/r3/v3.0.gemfile +++ b/gems/go-merge/gemfiles/modular/stringio/r3/v3.0.gemfile @@ -2,4 +2,4 @@ # NOT SEMVER # Version 3.0.7 dropped support for Ruby <= 2.7 # Version 3.0.0 dropped support for Ruby <= 2.4 -gem 'stringio', '>= 3.0' +gem "stringio", ">= 3.0" diff --git a/gems/go-merge/gemfiles/modular/stringio/r4/v3.0.gemfile b/gems/go-merge/gemfiles/modular/stringio/r4/v3.0.gemfile index 3616f4e3a..e85bb18ee 100644 --- a/gems/go-merge/gemfiles/modular/stringio/r4/v3.0.gemfile +++ b/gems/go-merge/gemfiles/modular/stringio/r4/v3.0.gemfile @@ -2,4 +2,4 @@ # NOT SEMVER # Version 3.0.7 dropped support for Ruby <= 2.7 # Version 3.0.0 dropped support for Ruby <= 2.4 -gem 'stringio', '>= 3.0' +gem "stringio", ">= 3.0" diff --git a/gems/go-merge/gemfiles/modular/stringio/vHEAD.gemfile b/gems/go-merge/gemfiles/modular/stringio/vHEAD.gemfile index 78f5f5d8a..5f2a74126 100644 --- a/gems/go-merge/gemfiles/modular/stringio/vHEAD.gemfile +++ b/gems/go-merge/gemfiles/modular/stringio/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 (dependency of omniauth) -gem 'stringio', github: 'ruby/stringio', branch: 'master' +gem "stringio", github: "ruby/stringio", branch: "master" diff --git a/gems/go-merge/gemfiles/modular/style.gemfile b/gems/go-merge/gemfiles/modular/style.gemfile index 4dbcc02c0..35de4dcd6 100644 --- a/gems/go-merge/gemfiles/modular/style.gemfile +++ b/gems/go-merge/gemfiles/modular/style.gemfile @@ -9,23 +9,23 @@ # Style tasks run on the latest Ruby; RuboCop-LTS selects the compatibility # rules for the configured Ruby floor independently from task dependency floors. -gem 'reek', '~> 6.5', '>= 6.5.0' +gem "reek", "~> 6.5", ">= 6.5.0" platform :mri do - gem 'appraisal2-rubocop', '~> 1.0', '>= 1.0.0', require: false - gem 'rubocop-gradual', '~> 0.4', '>= 0.4.0' - gem 'rubocop-minitest', '~> 0.40', '>= 0.40.0' - gem 'rubocop-on-rbs', '~> 2.0', '>= 2.0.0' # ruby >= 3.2.0 + gem "appraisal2-rubocop", "~> 1.0", ">= 1.0.0", require: false + gem "rubocop-gradual", "~> 0.4", ">= 0.4.0" + gem "rubocop-minitest", "~> 0.40", ">= 0.40.0" + gem "rubocop-on-rbs", "~> 2.0", ">= 2.0.0" # ruby >= 3.2.0 # gem "rubocop", "~> 1.73", ">= 1.73.2" # constrained by standard - gem 'rubocop-packaging', '~> 0.6', '>= 0.6.0' - gem 'standard', '~> 1.56', '>= 1.56.0' + gem "rubocop-packaging", "~> 0.6", ">= 0.6.0" + gem "standard", "~> 1.56", ">= 1.56.0" - if ENV.fetch('RUBOCOP_LTS_LOCAL', 'false').casecmp('false').zero? + if ENV.fetch("RUBOCOP_LTS_LOCAL", "false").casecmp("false").zero? declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) - gem 'rubocop-lts', '~> 24.2', '>= 24.2.1' unless declared_gems.include?('rubocop-lts') - gem 'rubocop-lts-rspec', '~> 1.0', '>= 1.0.5' unless declared_gems.include?('rubocop-lts-rspec') - gem 'rubocop-ruby3_2', '~> 3.0', '>= 3.0.6' unless declared_gems.include?('rubocop-ruby3_2') + gem "rubocop-lts", "~> 24.2", ">= 24.2.1" unless declared_gems.include?("rubocop-lts") + gem "rubocop-lts-rspec", "~> 1.0", ">= 1.0.5" unless declared_gems.include?("rubocop-lts-rspec") + gem "rubocop-ruby3_2", "~> 3.0", ">= 3.0.6" unless declared_gems.include?("rubocop-ruby3_2") else - eval_gemfile('style_local.gemfile') + eval_gemfile("style_local.gemfile") end end diff --git a/gems/go-merge/gemfiles/modular/style_local.gemfile b/gems/go-merge/gemfiles/modular/style_local.gemfile index 254e52a24..ab6deb722 100644 --- a/gems/go-merge/gemfiles/modular/style_local.gemfile +++ b/gems/go-merge/gemfiles/modular/style_local.gemfile @@ -14,19 +14,21 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] -nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) +nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] +nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == "nomono" } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + if nomono_locked + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] + end end -Kernel.send(:gem, 'nomono', *nomono_activation_requirements) -require 'nomono/bundler' +Kernel.send(:gem, "nomono", *nomono_activation_requirements) +require "nomono/bundler" local_gems = %w[rubocop-lts rubocop-lts-rspec rubocop-ruby3_2 standard-rubocop-lts] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) @@ -36,11 +38,11 @@ local_gems_to_eval = local_gems - %w[go-merge] - declared_gems platform :mri do eval_nomono_gems( gems: local_gems_to_eval, - prefix: 'RUBOCOP_LTS', - path_env: 'RUBOCOP_LTS_LOCAL', - vendored_gems_env: 'VENDORED_GEMS', - vendor_gem_dir_env: 'VENDOR_GEM_DIR', - debug_env: 'RUBOCOP_LTS_DEBUG', - root: %w[src rubocop-lts] + prefix: "RUBOCOP_LTS", + path_env: "RUBOCOP_LTS_LOCAL", + vendored_gems_env: "VENDORED_GEMS", + vendor_gem_dir_env: "VENDOR_GEM_DIR", + debug_env: "RUBOCOP_LTS_DEBUG", + root: ["src", "rubocop-lts"] ) end diff --git a/gems/go-merge/gemfiles/modular/templating.gemfile b/gems/go-merge/gemfiles/modular/templating.gemfile index a672de184..47138ffbb 100644 --- a/gems/go-merge/gemfiles/modular/templating.gemfile +++ b/gems/go-merge/gemfiles/modular/templating.gemfile @@ -1,18 +1,18 @@ # frozen_string_literal: true -structuredmerge_remote = ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false').zero? -kettle_remote = ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? +structuredmerge_remote = ENV.fetch("STRUCTUREDMERGE_DEV", "false").casecmp("false").zero? +kettle_remote = ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false").zero? if structuredmerge_remote # Parser dependencies for released installs. - gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' + gem "tree_sitter_language_pack", "~> 1.13", ">= 1.13.3" # Merge recipes for released installs. - gem 'kettle-jem', '>= 7.0' + gem "kettle-jem", ">= 7.0" end if kettle_remote # Template/plugin checks for released installs. - gem 'kettle-drift', '~> 1.0', '>= 1.0.6', require: false + gem "kettle-drift", "~> 1.0", ">= 1.0.6", require: false end # Set STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local development with path-based dependencies. @@ -21,4 +21,4 @@ end # # Set KETTLE_DEV_DEV=/path/to/my for local development with Kettle plugin gems. # When false (default / CI), released Kettle plugin gems are used. -eval_gemfile 'templating_local.gemfile' unless structuredmerge_remote && kettle_remote +eval_gemfile "templating_local.gemfile" unless structuredmerge_remote && kettle_remote diff --git a/gems/go-merge/gemfiles/modular/templating_local.gemfile b/gems/go-merge/gemfiles/modular/templating_local.gemfile index d365caff2..c68dc2710 100644 --- a/gems/go-merge/gemfiles/modular/templating_local.gemfile +++ b/gems/go-merge/gemfiles/modular/templating_local.gemfile @@ -12,19 +12,21 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] -nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) +nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] +nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == "nomono" } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + if nomono_locked + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] + end end -Kernel.send(:gem, 'nomono', *nomono_activation_requirements) -require 'nomono/bundler' +Kernel.send(:gem, "nomono", *nomono_activation_requirements) +require "nomono/bundler" structuredmerge_local_gems = %w[ tree_haver @@ -67,25 +69,25 @@ structuredmerge_local_gems_to_eval = structuredmerge_local_gems - %w[go-merge] - kettle_dev_local_gems_to_eval = kettle_dev_local_gems - %w[go-merge] - declared_gems platform :mri do - if ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false') != 0 + if ENV.fetch("STRUCTUREDMERGE_DEV", "false").casecmp("false") != 0 eval_nomono_gems( gems: structuredmerge_local_gems_to_eval, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - vendored_gems_env: 'VENDORED_GEMS', - vendor_gem_dir_env: 'VENDOR_GEM_DIR', - debug_env: 'STRUCTUREDMERGE_DEBUG' + prefix: "STRUCTUREDMERGE", + path_env: "STRUCTUREDMERGE_DEV", + vendored_gems_env: "VENDORED_GEMS", + vendor_gem_dir_env: "VENDOR_GEM_DIR", + debug_env: "STRUCTUREDMERGE_DEBUG" ) end - if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false') != 0 + if ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false") != 0 eval_nomono_gems( gems: kettle_dev_local_gems_to_eval, - prefix: 'KETTLE_DEV', - path_env: 'KETTLE_DEV_DEV', - vendored_gems_env: 'VENDORED_GEMS', - vendor_gem_dir_env: 'VENDOR_GEM_DIR', - debug_env: 'KETTLE_DEV_DEBUG' + prefix: "KETTLE_DEV", + path_env: "KETTLE_DEV_DEV", + vendored_gems_env: "VENDORED_GEMS", + vendor_gem_dir_env: "VENDOR_GEM_DIR", + debug_env: "KETTLE_DEV_DEBUG" ) end end diff --git a/gems/go-merge/gemfiles/modular/webrick/r4/v1.9.gemfile b/gems/go-merge/gemfiles/modular/webrick/r4/v1.9.gemfile index b1329ba84..eaab4a473 100644 --- a/gems/go-merge/gemfiles/modular/webrick/r4/v1.9.gemfile +++ b/gems/go-merge/gemfiles/modular/webrick/r4/v1.9.gemfile @@ -1 +1 @@ -gem 'webrick', '~> 1.9' +gem "webrick", "~> 1.9" diff --git a/gems/go-merge/gemfiles/modular/webrick/vHEAD.gemfile b/gems/go-merge/gemfiles/modular/webrick/vHEAD.gemfile index c7e6f81a1..8a789b634 100644 --- a/gems/go-merge/gemfiles/modular/webrick/vHEAD.gemfile +++ b/gems/go-merge/gemfiles/modular/webrick/vHEAD.gemfile @@ -1 +1 @@ -gem 'webrick', '>= 1.9' +gem "webrick", ">= 1.9" diff --git a/gems/go-merge/gemfiles/modular/x_std_libs.gemfile b/gems/go-merge/gemfiles/modular/x_std_libs.gemfile index b1f43c097..77aad43f2 100644 --- a/gems/go-merge/gemfiles/modular/x_std_libs.gemfile +++ b/gems/go-merge/gemfiles/modular/x_std_libs.gemfile @@ -1,12 +1,12 @@ ### Std Lib Extracted Gems ruby_version = Gem::Version.new(RUBY_VERSION) -if ruby_version >= Gem::Version.new('4.0') - eval_gemfile 'x_std_libs/r4/libs.gemfile' -elsif ruby_version >= Gem::Version.new('3.2') - eval_gemfile 'x_std_libs/r3/libs.gemfile' -elsif ruby_version >= Gem::Version.new('3.1') - eval_gemfile 'x_std_libs/r3.1/libs.gemfile' +if ruby_version >= Gem::Version.new("4.0") + eval_gemfile "x_std_libs/r4/libs.gemfile" +elsif ruby_version >= Gem::Version.new("3.2") + eval_gemfile "x_std_libs/r3/libs.gemfile" +elsif ruby_version >= Gem::Version.new("3.1") + eval_gemfile "x_std_libs/r3.1/libs.gemfile" else - eval_gemfile 'x_std_libs/r2/libs.gemfile' + eval_gemfile "x_std_libs/r2/libs.gemfile" end diff --git a/gems/go-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile b/gems/go-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile index 16a5e3d70..441c4f03a 100644 --- a/gems/go-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile +++ b/gems/go-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile @@ -1,3 +1,3 @@ -eval_gemfile '../../erb/r2/v3.0.gemfile' -eval_gemfile '../../mutex_m/r2/v0.3.gemfile' -eval_gemfile '../../stringio/r2/v3.0.gemfile' +eval_gemfile "../../erb/r2/v3.0.gemfile" +eval_gemfile "../../mutex_m/r2/v0.3.gemfile" +eval_gemfile "../../stringio/r2/v3.0.gemfile" diff --git a/gems/go-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile b/gems/go-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile index 220ff95c1..c293a3ddd 100644 --- a/gems/go-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile +++ b/gems/go-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile @@ -1,3 +1,3 @@ -eval_gemfile '../../erb/r3/v5.0.gemfile' -eval_gemfile '../../mutex_m/r3/v0.3.gemfile' -eval_gemfile '../../stringio/r3/v3.0.gemfile' +eval_gemfile "../../erb/r3/v5.0.gemfile" +eval_gemfile "../../mutex_m/r3/v0.3.gemfile" +eval_gemfile "../../stringio/r3/v3.0.gemfile" diff --git a/gems/go-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile b/gems/go-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile index e2f6501eb..eb5574247 100644 --- a/gems/go-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile +++ b/gems/go-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile @@ -1,6 +1,6 @@ -eval_gemfile '../../erb/r4/v5.0.gemfile' -eval_gemfile '../../mutex_m/r4/v0.3.gemfile' -eval_gemfile '../../stringio/r4/v3.0.gemfile' -eval_gemfile '../../benchmark/r4/v0.5.gemfile' -eval_gemfile '../../cgi/r4/v0.5.gemfile' -eval_gemfile '../../webrick/r4/v1.9.gemfile' +eval_gemfile "../../erb/r4/v5.0.gemfile" +eval_gemfile "../../mutex_m/r4/v0.3.gemfile" +eval_gemfile "../../stringio/r4/v3.0.gemfile" +eval_gemfile "../../benchmark/r4/v0.5.gemfile" +eval_gemfile "../../cgi/r4/v0.5.gemfile" +eval_gemfile "../../webrick/r4/v1.9.gemfile" diff --git a/gems/go-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile b/gems/go-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile index ab75cccf1..d4d5b16c9 100644 --- a/gems/go-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile +++ b/gems/go-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile @@ -1,6 +1,6 @@ -eval_gemfile '../erb/vHEAD.gemfile' -eval_gemfile '../mutex_m/vHEAD.gemfile' -eval_gemfile '../stringio/vHEAD.gemfile' -eval_gemfile '../benchmark/vHEAD.gemfile' -eval_gemfile '../cgi/vHEAD.gemfile' -eval_gemfile '../webrick/vHEAD.gemfile' +eval_gemfile "../erb/vHEAD.gemfile" +eval_gemfile "../mutex_m/vHEAD.gemfile" +eval_gemfile "../stringio/vHEAD.gemfile" +eval_gemfile "../benchmark/vHEAD.gemfile" +eval_gemfile "../cgi/vHEAD.gemfile" +eval_gemfile "../webrick/vHEAD.gemfile" diff --git a/gems/go-merge/lib/go/merge/version.rb b/gems/go-merge/lib/go/merge/version.rb index d576fba8a..7a12d28aa 100644 --- a/gems/go-merge/lib/go/merge/version.rb +++ b/gems/go-merge/lib/go/merge/version.rb @@ -3,7 +3,7 @@ module Go module Merge module Version - VERSION = '7.1.0' + VERSION = "7.1.0" end VERSION = Version::VERSION # Traditional Constant Location end diff --git a/gems/go-merge/spec/spec_helper.rb b/gems/go-merge/spec/spec_helper.rb index 84a49676f..f85aa5bc4 100644 --- a/gems/go-merge/spec/spec_helper.rb +++ b/gems/go-merge/spec/spec_helper.rb @@ -7,11 +7,16 @@ # NOTE: Gemfiles for non-coverage appraisals may not have kettle-soup-cover. # The rescue LoadError handles that scenario. begin - require 'kettle-soup-cover' - require 'simplecov' if Kettle::Soup::Cover::DO_COV # `.simplecov` is run here! -rescue LoadError => e + require "kettle-soup-cover" + if Kettle::Soup::Cover::DO_COV + # Requiring simplecov loads the project-local `.simplecov`. + require "simplecov" + require "kettle/soup/cover/config" + SimpleCov.start + end +rescue LoadError => error # check the error message and re-raise when unexpected - raise e unless e.message.include?('kettle') + raise error unless error.message.include?("kettle") end # External RSpec & related config diff --git a/gems/rust-merge/.kettle-drift.lock b/gems/rust-merge/.kettle-drift.lock index 43dfedd67..7cc6a5131 100644 --- a/gems/rust-merge/.kettle-drift.lock +++ b/gems/rust-merge/.kettle-drift.lock @@ -1,10 +1,74 @@ { + "(direct_sibling_local ||\nENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?)": [ + { + "file": "Gemfile", + "lines": [ + 80, + 120 + ] + } + ], + ".find { |spec| spec.name == 'nomono' }\nnomono_locked = nomono_locked_spec &&": [ + { + "file": "Gemfile", + "lines": [ + 91, + 131 + ] + } + ], + "ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?)\ndirect_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV')": [ + { + "file": "Gemfile", + "lines": [ + 81, + 121 + ] + } + ], + "Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version)\nnomono_activation_requirements = [\"= #{nomono_locked_spec.version}\"] if nomono_locked": [ + { + "file": "Gemfile", + "lines": [ + 93, + 133 + ] + } + ], + "Kernel.send(:gem, 'nomono', *nomono_activation_requirements)\nrequire 'nomono/bundler'": [ + { + "file": "Gemfile", + "lines": [ + 96, + 136 + ] + } + ], + "direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV')\ndirect_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil)": [ + { + "file": "Gemfile", + "lines": [ + 82, + 122 + ] + } + ], "eval_nomono_gems(\ngems: direct_sibling_gems,": [ { "file": "Gemfile", "lines": [ 60, - 100 + 100, + 140 + ] + } + ], + "gems: direct_sibling_gems,\nprefix: 'STRUCTUREDMERGE',": [ + { + "file": "Gemfile", + "lines": [ + 101, + 141 ] } ], @@ -13,7 +77,17 @@ "file": "Gemfile", "lines": [ 43, - 87 + 87, + 127 + ] + } + ], + "if direct_sibling_dev_was_set\nENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original": [ + { + "file": "Gemfile", + "lines": [ + 110, + 150 ] } ], @@ -22,7 +96,8 @@ "file": "Gemfile", "lines": [ 35, - 79 + 79, + 119 ] } ], @@ -31,7 +106,17 @@ "file": "Gemfile", "lines": [ 69, - 109 + 109, + 149 + ] + } + ], + "nomono_activation_requirements = nomono_requirements\nnomono_lockfile = File.expand_path('Gemfile.lock', __dir__)": [ + { + "file": "Gemfile", + "lines": [ + 85, + 125 ] } ], @@ -40,7 +125,8 @@ "file": "Gemfile", "lines": [ 48, - 92 + 92, + 132 ] } ], @@ -49,7 +135,53 @@ "file": "Gemfile", "lines": [ 44, - 88 + 88, + 128 + ] + } + ], + "nomono_lockfile = File.expand_path('Gemfile.lock', __dir__)\nif File.file?(nomono_lockfile)": [ + { + "file": "Gemfile", + "lines": [ + 86, + 126 + ] + } + ], + "path_env: 'STRUCTUREDMERGE_DEV',\nroot: %w[src my structuredmerge]": [ + { + "file": "Gemfile", + "lines": [ + 103, + 143 + ] + } + ], + "prefix: 'STRUCTUREDMERGE',\npath_env: 'STRUCTUREDMERGE_DEV',": [ + { + "file": "Gemfile", + "lines": [ + 102, + 142 + ] + } + ], + "require 'nomono/bundler'\nENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local": [ + { + "file": "Gemfile", + "lines": [ + 97, + 137 + ] + } + ], + "rescue LoadError\nwarn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.'": [ + { + "file": "Gemfile", + "lines": [ + 106, + 146 ] } ] diff --git a/gems/rust-merge/.simplecov b/gems/rust-merge/.simplecov index faba51297..052cde894 100644 --- a/gems/rust-merge/.simplecov +++ b/gems/rust-merge/.simplecov @@ -4,15 +4,11 @@ # rust-merge will then preserve content between those markers across template runs. # kettle-jem:unfreeze -require 'kettle/soup/cover/config' - # Minimum coverage thresholds are set by kettle-soup-cover. # They are controlled by ENV variables loaded by `mise` from `mise.toml` # (with optional machine-local overrides in `.env.local`). # If the values for minimum coverage need to change, they should be changed both there, # and in 2 places in .github/workflows/coverage.yml. -SimpleCov.start do - track_files 'lib/**/*.rb' - track_files 'lib/**/*.rake' - track_files 'exe/*.rb' +SimpleCov.configure do + cover "lib/**/*.rb", "lib/**/*.rake", "exe/*.rb" end diff --git a/gems/rust-merge/Gemfile b/gems/rust-merge/Gemfile index 0f23f9752..86253e7e4 100644 --- a/gems/rust-merge/Gemfile +++ b/gems/rust-merge/Gemfile @@ -6,7 +6,7 @@ # kettle-jem will then preserve content between those markers across template runs. # kettle-jem:unfreeze -source 'https://gem.coop' +source "https://gem.coop" git_source(:codeberg) { |repo_name| "https://codeberg.org/#{repo_name}" } git_source(:gitlab) { |repo_name| "https://gitlab.com/#{repo_name}" } @@ -19,18 +19,62 @@ git_source(:gitlab) { |repo_name| "https://gitlab.com/#{repo_name}" } gemspec # Local workspace dependency wiring for *_local.gemfile overrides -nomono_requirements = ['~> 1.0', '>= 1.0.8'] -gem 'nomono', *nomono_requirements, require: false # ruby >= 2.2 +nomono_requirements = ["~> 1.0", ">= 1.0.8"] +gem "nomono", *nomono_requirements, require: false # ruby >= 2.2 # Direct sibling dependencies (env-switched via STRUCTUREDMERGE_DEV) direct_sibling_gems = %w[ ast-merge tree_haver ] -direct_sibling_dev = ENV.fetch('STRUCTUREDMERGE_DEV', '') +direct_sibling_dev = ENV.fetch("STRUCTUREDMERGE_DEV", "") direct_sibling_local = !direct_sibling_dev.empty? && !%w[false 0 no off].include?(direct_sibling_dev.downcase) -direct_sibling_templating = ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? +direct_sibling_templating = ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? + +if direct_sibling_gems.any? && + (direct_sibling_local || + ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero?) + direct_sibling_dev_was_set = ENV.key?("STRUCTUREDMERGE_DEV") + direct_sibling_dev_original = ENV.fetch("STRUCTUREDMERGE_DEV", nil) + begin + nomono_activation_requirements = nomono_requirements + nomono_lockfile = File.expand_path("Gemfile.lock", __dir__) + if File.file?(nomono_lockfile) + nomono_locked_spec = Bundler::LockfileParser + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == "nomono" } + nomono_locked = nomono_locked_spec && + Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) + if nomono_locked + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] + end + end + Kernel.send(:gem, "nomono", *nomono_activation_requirements) + require "nomono/bundler" + if direct_sibling_templating && !direct_sibling_local + ENV["STRUCTUREDMERGE_DEV"] = File.expand_path("..", __dir__) + end + + eval_nomono_gems( + gems: direct_sibling_gems, + prefix: "STRUCTUREDMERGE", + path_env: "STRUCTUREDMERGE_DEV", + root: ["src", "my", "structuredmerge"] + ) + rescue LoadError + warn "Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies." + ensure + if direct_sibling_templating && !direct_sibling_local + if direct_sibling_dev_was_set + ENV["STRUCTUREDMERGE_DEV"] = direct_sibling_dev_original + else + ENV.delete("STRUCTUREDMERGE_DEV") + end + end + end +end if direct_sibling_gems.any? && (direct_sibling_local || @@ -113,28 +157,28 @@ if direct_sibling_gems.any? && end # Use released TSLP with the Ruby ABI platform-gem fix. -gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' +gem "tree_sitter_language_pack", "~> 1.13", ">= 1.13.3" # Templating (env-switched: STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local paths) -eval_gemfile 'gemfiles/modular/templating.gemfile' if ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? +eval_gemfile "gemfiles/modular/templating.gemfile" if ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? # Debugging -eval_gemfile 'gemfiles/modular/debug.gemfile' +eval_gemfile "gemfiles/modular/debug.gemfile" # Code Coverage (env-switched: KETTLE_DEV_DEV=true for local paths) -eval_gemfile 'gemfiles/modular/coverage.gemfile' +eval_gemfile "gemfiles/modular/coverage.gemfile" # Linting -eval_gemfile 'gemfiles/modular/style.gemfile' +eval_gemfile "gemfiles/modular/style.gemfile" # Documentation -eval_gemfile 'gemfiles/modular/documentation.gemfile' +eval_gemfile "gemfiles/modular/documentation.gemfile" # Optional -eval_gemfile 'gemfiles/modular/optional.gemfile' +eval_gemfile "gemfiles/modular/optional.gemfile" ### Std Lib Extracted Gems -eval_gemfile 'gemfiles/modular/x_std_libs.gemfile' +eval_gemfile "gemfiles/modular/x_std_libs.gemfile" # See unlocked_deps appraisal for more details on irb inclusion -gem 'irb', '~> 1.17' # ruby >= 2.7 +gem "irb", "~> 1.17" # ruby >= 2.7 diff --git a/gems/rust-merge/Gemfile.lock b/gems/rust-merge/Gemfile.lock index a48079f97..68d429b41 100644 --- a/gems/rust-merge/Gemfile.lock +++ b/gems/rust-merge/Gemfile.lock @@ -6,6 +6,266 @@ PATH tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly + specs: + ast-crispr-markdown-markly (7.1.0) + ast-crispr (= 7.1.0) + markly-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism + specs: + ast-crispr-ruby-prism (7.1.0) + ast-crispr (= 7.1.0) + prism-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr + specs: + ast-crispr (7.1.0) + ast-merge (= 7.1.0) + service_actor (~> 3.9) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git + specs: + ast-merge-git (7.1.0) + ast-merge (= 7.1.0) + json-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge + specs: + ast-merge (7.1.0) + benchmark + token-resolver (~> 2.0, >= 2.0.4) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template + specs: + ast-template (7.1.0) + ast-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge + specs: + bash-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge + specs: + binary-merge (7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge + specs: + citrus-toml-merge (7.1.0) + toml-merge (= 7.1.0) + toml-rb (~> 4.1) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge + specs: + commonmarker-merge (7.1.0) + commonmarker (~> 2.2) + markdown-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge + specs: + dotenv-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge + specs: + go-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge + specs: + json-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem + specs: + kettle-jem (7.1.0) + addressable (>= 2.8, < 3) + ast-crispr-markdown-markly (= 7.1.0) + ast-crispr-ruby-prism (= 7.1.0) + ast-merge (= 7.1.0) + bash-merge (= 7.1.0) + citrus-toml-merge (= 7.1.0) + commonmarker-merge (= 7.1.0) + dotenv-merge (= 7.1.0) + json-merge (= 7.1.0) + kettle-dev (~> 2.3, >= 2.3.5) + kettle-rb (~> 0.1, >= 0.1.4) + kramdown-merge (= 7.1.0) + markdown-merge (= 7.1.0) + markly-merge (= 7.1.0) + prism-merge (= 7.1.0) + psych-merge (= 7.1.0) + rbs (>= 3.10) + rbs-merge (= 7.1.0) + ruby-merge (= 7.1.0) + token-resolver (~> 2.0, >= 2.0.4) + toml-merge (= 7.1.0) + toml-rb (~> 4.2) + tree_haver (= 7.1.0) + yaml-merge (= 7.1.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge + specs: + kramdown-merge (7.1.0) + kramdown (~> 2.5) + markdown-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge + specs: + markdown-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge + specs: + markly-merge (7.1.0) + markdown-merge (= 7.1.0) + markly (~> 0.9) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge + specs: + parslet-toml-merge (7.1.0) + toml (~> 0.3) + toml-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge + specs: + plain-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge + specs: + prism-merge (7.1.0) + prism (~> 1.6) + ruby-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge + specs: + psych-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + yaml-merge (= 7.1.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge + specs: + rbs-merge (7.1.0) + ast-merge (= 7.1.0) + rbs (>= 3.10) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge + specs: + ruby-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb + specs: + smorg-rb (7.1.0) + ast-merge (= 7.1.0) + ast-merge-git (= 7.1.0) + diff-lcs (~> 1.5) + go-merge (= 7.1.0) + json-merge (= 7.1.0) + kettle-jem (= 7.1.0) + markly-merge (= 7.1.0) + plain-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge + specs: + toml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver + specs: + tree_haver (7.1.0) + citrus (~> 3.0) + parslet (~> 2.0) + tree_sitter_language_pack (>= 1.13.2, < 2.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge + specs: + typescript-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge + specs: + yaml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge + specs: + zip-merge (7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + GEM remote: https://gem.coop/ specs: @@ -21,11 +281,6 @@ GEM rubocop (>= 1.0) version_gem (~> 1.1, >= 1.1.14) ast (2.4.3) - ast-merge (7.1.0) - benchmark - token-resolver (~> 2.0, >= 2.0.4) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) backports (3.25.3) benchmark (0.5.0) bigdecimal (4.1.2) @@ -35,6 +290,7 @@ GEM cgi (0.5.2) citrus (3.0.2) cmdparse (3.0.7) + commonmarker (2.9.0-x86_64-linux) concurrent-ruby (1.3.8) date (3.5.1) debug (1.11.1) @@ -97,6 +353,8 @@ GEM kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) + kettle-drift (1.0.6) + version_gem (~> 1.1, >= 1.1.14) kettle-rb (0.1.5) kettle-soup-cover (3.0.4) kettle-wash (~> 0.1, >= 0.1.0) @@ -125,6 +383,7 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) + markly (0.16.0) mutex_m (0.3.0) nokogiri (1.19.4-aarch64-linux-gnu) racc (~> 1.4) @@ -287,6 +546,8 @@ GEM ruby-progressbar (1.13.0) ruby_engine (2.0.3) ruby_version (1.0.3) + service_actor (3.9.4) + zeitwerk (>= 1.0) silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) @@ -302,7 +563,7 @@ GEM simplecov (>= 0.4.1) simplecov_lcov_formatter (0.9.0) simplecov (>= 0.18) - sorbet-runtime (0.6.13347) + sorbet-runtime (0.6.13351) standard (1.56.0) language_server-protocol (~> 3.17.0.2) lint_roller (~> 1.0) @@ -341,11 +602,11 @@ GEM token-resolver (2.0.5) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.14) - tree_haver (7.1.0) - citrus (~> 3.0) - parslet (~> 2.0) - tree_sitter_language_pack (>= 1.13.2, < 2.0) - version_gem (~> 1.1, >= 1.1.9) + toml (0.3.0) + parslet (>= 1.8.0, < 3.0.0) + toml-rb (4.2.0) + citrus (~> 3.0, > 3.0) + racc (~> 1.7) tree_sitter_language_pack (1.13.3-aarch64-linux) sorbet-runtime (~> 0.5) tree_sitter_language_pack (1.13.3-arm64-darwin) @@ -400,23 +661,46 @@ DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) appraisal2-rubocop (~> 1.0, >= 1.0.0) + ast-crispr! + ast-crispr-markdown-markly! + ast-crispr-ruby-prism! + ast-merge! + ast-merge-git! + ast-template! + bash-merge! benchmark (~> 0.5, >= 0.5.0) + binary-merge! bundler-audit (~> 0.9.3) cgi (~> 0.5) + citrus-toml-merge! + commonmarker-merge! debug (>= 1.1) + dotenv-merge! erb (~> 6.0, >= 6.0.6) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.0) + go-merge! irb (~> 1.17) + json-merge! kettle-dev (~> 2.0, >= 2.2.25) + kettle-drift (~> 1.0, >= 1.0.6) + kettle-jem! kettle-soup-cover (~> 3.0, >= 3.0.3) kettle-test (~> 2.0, >= 2.0.9) kramdown (~> 2.5, >= 2.5.2) + kramdown-merge! kramdown-parser-gfm (~> 1.1) + markdown-merge! + markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) + parslet-toml-merge! + plain-merge! + prism-merge! + psych-merge! rake (~> 13.0) rbs (>= 3.0) + rbs-merge! rdoc (~> 6.11) reek (~> 6.5, >= 6.5.0) require_bench (~> 1.0, >= 1.0.4) @@ -427,20 +711,27 @@ DEPENDENCIES rubocop-on-rbs (~> 2.0, >= 2.0.0) rubocop-packaging (~> 0.6, >= 0.6.0) rubocop-ruby3_2 (~> 3.0, >= 3.0.6) + ruby-merge! ruby-progressbar (~> 1.13) rust-merge! + smorg-rb! standard (~> 1.56, >= 1.56.0) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) + toml-merge! + tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) + typescript-merge! webrick (~> 1.9) yaml-converter (~> 0.2, >= 0.2.3) + yaml-merge! yard (~> 0.9, >= 0.9.45) yard-fence (~> 0.9, >= 0.9.6) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) yard-timekeeper (~> 0.2, >= 0.2.4) yard-yaml (~> 0.2, >= 0.2.3) + zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af @@ -448,20 +739,31 @@ CHECKSUMS appraisal2 (3.2.0) sha256=ccd0b767ac4060cd7af6d16747459b6990f49c39c7b4fb1f7d1146b1e97c492f appraisal2-rubocop (1.0.0) sha256=b71410fbb014befda5340605a605b7f6f3f012739baf0acc5b4351b592c3258d ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 + ast-crispr (7.1.0) + ast-crispr-markdown-markly (7.1.0) + ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) + ast-merge-git (7.1.0) + ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 + bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd + binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 + citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 + commonmarker (2.9.0-x86_64-linux) + commonmarker-merge (7.1.0) concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 + dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -474,20 +776,28 @@ CHECKSUMS gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f + go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 + json-merge (7.1.0) kettle-dev (2.3.8) sha256=9d716ff21c660a730cb4e8d41e2e2f0630a28167a354b6e2924e242102aef72c + kettle-drift (1.0.6) + kettle-jem (7.1.0) kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f kettle-soup-cover (3.0.4) kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa + kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 + markdown-merge (7.1.0) + markly (0.16.0) + markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-aarch64-linux-gnu) sha256=1269fb644a6de405057a53dd5c762b1209b43ca7424f839454d3dbc677c31a8f nokogiri (1.19.4-aarch64-linux-musl) sha256=35c65b9ce72b3bb03207bdbe7067915019dc18c1b9b59139684bd6690fdd01af @@ -501,15 +811,20 @@ CHECKSUMS parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 + parslet-toml-merge (7.1.0) + plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 + prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 + psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 + rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb @@ -544,17 +859,20 @@ CHECKSUMS rubocop-rspec_rails (2.32.0) sha256=4a0d641c72f6ebb957534f539d9d0a62c47abd8ce0d0aeee1ef4701e892a9100 rubocop-ruby3_2 (3.0.7) sha256=f53dd6d286fb05186214fc6ec116783e7f837030918e8931c05de773e98f8466 rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 + ruby-merge (7.1.0) ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 rust-merge (7.1.0) + service_actor (3.9.4) silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed - sorbet-runtime (0.6.13347) sha256=54e7221d9f4b63f58aec79f3043752a9ba7810347c6ae0d903531591cc2d5f01 + smorg-rb (7.1.0) + sorbet-runtime (0.6.13351) sha256=f8fee17c6e3edf835dc6823d26afb9a7c8969c6710d1fabe2fb43f4e0c15c64f standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b standard-performance (1.9.0) sha256=49483d31be448292951d80e5e67cdcb576c2502103c7b40aec6f1b6e9c88e3f2 @@ -568,17 +886,22 @@ CHECKSUMS timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.5) sha256=b852f924287ffb58a440856e862b056c8ad97e74b4b2526cee43e0771f40c25c + toml (0.3.0) + toml-merge (7.1.0) + toml-rb (4.2.0) tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-aarch64-linux) sha256=55ffc7c87868cb45658338363d9eba51b4a8b0259aa88e4de368d2bd1d52fea4 tree_sitter_language_pack (1.13.3-arm64-darwin) sha256=bc2498db605f212a1dbd2465ed3f65190d7da786f6ed5d30fcf958121aeb4a5c tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 + typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 webrick (1.9.2) sha256=beb4a15fc474defed24a3bda4ffd88a490d517c9e4e6118c3edce59e45864131 yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 + yaml-merge (7.1.0) yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd @@ -586,6 +909,7 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 + zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH diff --git a/gems/rust-merge/README.md b/gems/rust-merge/README.md index 004ecb1cd..bce561b5c 100644 --- a/gems/rust-merge/README.md +++ b/gems/rust-merge/README.md @@ -252,6 +252,7 @@ If none of the available licenses suit your use case, please [contact us](mailto [🖐contrib-rocks]: https://contrib.rocks [🖐contributors]: https://github.com/structuredmerge/structuredmerge-ruby/graphs/contributors [🖐contributors-img]: https://contrib.rocks/image?repo=structuredmerge/structuredmerge-ruby +[🚎contributors-gl]: https://gitlab.com/structuredmerge/structuredmerge-ruby/-/graphs/main [🪇conduct]: https://github.com/structuredmerge/structuredmerge-ruby/blob/main/CODE_OF_CONDUCT.md [🪇conduct-img]: https://img.shields.io/badge/Contributor_Covenant-2.1-259D6C.svg [📌pvc]: http://guides.rubygems.org/patterns/#pessimistic-version-constraint diff --git a/gems/rust-merge/Rakefile b/gems/rust-merge/Rakefile index 08bf2fd67..0d02f3ef0 100644 --- a/gems/rust-merge/Rakefile +++ b/gems/rust-merge/Rakefile @@ -130,23 +130,23 @@ end ### DUPLICATE DRIFT TASKS begin - require 'kettle/drift' + require "kettle/drift" Kettle::Drift.install_tasks rescue LoadError - desc('(stub) kettle:drift:check is unavailable') - task('kettle:drift:check') do + desc("(stub) kettle:drift:check is unavailable") + task("kettle:drift:check") do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc('(stub) kettle:drift:update is unavailable') - task('kettle:drift:update') do + desc("(stub) kettle:drift:update is unavailable") + task("kettle:drift:update") do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc('(stub) kettle:drift:force_update is unavailable') - task('kettle:drift:force_update') do + desc("(stub) kettle:drift:force_update is unavailable") + task("kettle:drift:force_update") do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc('(stub) kettle:drift is unavailable') - task('kettle:drift' => 'kettle:drift:update') + desc("(stub) kettle:drift is unavailable") + task("kettle:drift" => "kettle:drift:update") end ### TEMPLATING TASKS diff --git a/gems/rust-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile b/gems/rust-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile index b8392fab0..dec650815 100644 --- a/gems/rust-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile +++ b/gems/rust-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.1 -gem 'benchmark', '~> 0.5', '>= 0.5.0' # Removed from Std Lib in Ruby 4.0 +gem "benchmark", "~> 0.5", ">= 0.5.0" # Removed from Std Lib in Ruby 4.0 diff --git a/gems/rust-merge/gemfiles/modular/benchmark/vHEAD.gemfile b/gems/rust-merge/gemfiles/modular/benchmark/vHEAD.gemfile index af214aafa..e1eb20c5e 100644 --- a/gems/rust-merge/gemfiles/modular/benchmark/vHEAD.gemfile +++ b/gems/rust-merge/gemfiles/modular/benchmark/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.1 -gem 'benchmark', github: 'ruby/benchmark', branch: 'master' +gem "benchmark", github: "ruby/benchmark", branch: "master" diff --git a/gems/rust-merge/gemfiles/modular/cgi/r4/v0.5.gemfile b/gems/rust-merge/gemfiles/modular/cgi/r4/v0.5.gemfile index 17ad97260..19ed967c3 100644 --- a/gems/rust-merge/gemfiles/modular/cgi/r4/v0.5.gemfile +++ b/gems/rust-merge/gemfiles/modular/cgi/r4/v0.5.gemfile @@ -1 +1 @@ -gem 'cgi', '~> 0.5' +gem "cgi", "~> 0.5" diff --git a/gems/rust-merge/gemfiles/modular/cgi/vHEAD.gemfile b/gems/rust-merge/gemfiles/modular/cgi/vHEAD.gemfile index 650fbf033..ef8b816ce 100644 --- a/gems/rust-merge/gemfiles/modular/cgi/vHEAD.gemfile +++ b/gems/rust-merge/gemfiles/modular/cgi/vHEAD.gemfile @@ -1 +1 @@ -gem 'cgi', '>= 0.5' +gem "cgi", ">= 0.5" diff --git a/gems/rust-merge/gemfiles/modular/coverage.gemfile b/gems/rust-merge/gemfiles/modular/coverage.gemfile index b93014b6b..52d737872 100644 --- a/gems/rust-merge/gemfiles/modular/coverage.gemfile +++ b/gems/rust-merge/gemfiles/modular/coverage.gemfile @@ -4,11 +4,11 @@ # Set KETTLE_DEV_DEV=true for local development with path-based dependencies. # When false (default / CI), remote released gems are used. -if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? +if ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false").zero? # Coverage (remote/released) platform :mri do - gem 'kettle-soup-cover', '~> 3.0', '>= 3.0.3', require: false + gem "kettle-soup-cover", "~> 3.0", ">= 3.0.3", require: false end else - eval_gemfile 'coverage_local.gemfile' + eval_gemfile "coverage_local.gemfile" end diff --git a/gems/rust-merge/gemfiles/modular/coverage_local.gemfile b/gems/rust-merge/gemfiles/modular/coverage_local.gemfile index fb6e4df29..3ec683a62 100644 --- a/gems/rust-merge/gemfiles/modular/coverage_local.gemfile +++ b/gems/rust-merge/gemfiles/modular/coverage_local.gemfile @@ -11,19 +11,21 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] -nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) +nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] +nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == "nomono" } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + if nomono_locked + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] + end end -Kernel.send(:gem, 'nomono', *nomono_activation_requirements) -require 'nomono/bundler' +Kernel.send(:gem, "nomono", *nomono_activation_requirements) +require "nomono/bundler" local_gems = %w[kettle-dev kettle-test kettle-soup-cover kettle-drift] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) @@ -33,21 +35,21 @@ local_gems_to_eval = local_gems - %w[rust-merge] - declared_gems platform :mri do eval_nomono_gems( gems: local_gems_to_eval, - prefix: 'KETTLE_DEV', - path_env: 'KETTLE_DEV_DEV', - vendored_gems_env: 'VENDORED_GEMS', - vendor_gem_dir_env: 'VENDOR_GEM_DIR', - debug_env: 'KETTLE_DEV_DEBUG' + prefix: "KETTLE_DEV", + path_env: "KETTLE_DEV_DEV", + vendored_gems_env: "VENDORED_GEMS", + vendor_gem_dir_env: "VENDOR_GEM_DIR", + debug_env: "KETTLE_DEV_DEBUG" ) - if ENV.fetch('GALTZO_FLOSS_DEV', 'false').casecmp('false') != 0 + if ENV.fetch("GALTZO_FLOSS_DEV", "false").casecmp("false") != 0 eval_nomono_gems( gems: %w[turbo_tests2], - prefix: 'GALTZO_FLOSS', - path_env: 'GALTZO_FLOSS_DEV', - vendored_gems_env: 'GALTZO_FLOSS_VENDORED_GEMS', - vendor_gem_dir_env: 'GALTZO_FLOSS_VENDOR_GEM_DIR', - debug_env: 'GALTZO_FLOSS_DEBUG' + prefix: "GALTZO_FLOSS", + path_env: "GALTZO_FLOSS_DEV", + vendored_gems_env: "GALTZO_FLOSS_VENDORED_GEMS", + vendor_gem_dir_env: "GALTZO_FLOSS_VENDOR_GEM_DIR", + debug_env: "GALTZO_FLOSS_DEBUG" ) end end diff --git a/gems/rust-merge/gemfiles/modular/debug.gemfile b/gems/rust-merge/gemfiles/modular/debug.gemfile index eed8d4d1e..4e15b1a3a 100644 --- a/gems/rust-merge/gemfiles/modular/debug.gemfile +++ b/gems/rust-merge/gemfiles/modular/debug.gemfile @@ -13,10 +13,10 @@ platform :mri do # Debugging - Ensure ENV["DEBUG"] == "true" to use debuggers within spec suite # Use binding.break, binding.b, or debugger in code - gem 'debug', '>= 1.1' # ruby >= 2.7 + gem "debug", ">= 1.1" # ruby >= 2.7 # Dev Console - Binding.pry - Irb replacement # gem "pry", "~> 0.14" # ruby >= 2.0 end -gem 'gem_bench', '~> 2.0', '>= 2.0.5' +gem "gem_bench", "~> 2.0", ">= 2.0.5" diff --git a/gems/rust-merge/gemfiles/modular/documentation.gemfile b/gems/rust-merge/gemfiles/modular/documentation.gemfile index 9d4535f12..d8215416e 100644 --- a/gems/rust-merge/gemfiles/modular/documentation.gemfile +++ b/gems/rust-merge/gemfiles/modular/documentation.gemfile @@ -7,20 +7,20 @@ # # Documentation -gem 'kramdown', '~> 2.5', '>= 2.5.2', require: false # Ruby >= 2.5 -gem 'kramdown-parser-gfm', '~> 1.1', require: false # Ruby >= 2.3 -gem 'yaml-converter', '~> 0.2', '>= 0.2.3', require: false # Ruby >= 3.2 -gem 'yard', '~> 0.9', '>= 0.9.45', require: false -gem 'yard-junk', '~> 0.1', '>= 0.1.0', require: false # Ruby >= 3.1 -gem 'yard-relative_markdown_links', '~> 0.6', require: false +gem "kramdown", "~> 2.5", ">= 2.5.2", require: false # Ruby >= 2.5 +gem "kramdown-parser-gfm", "~> 1.1", require: false # Ruby >= 2.3 +gem "yaml-converter", "~> 0.2", ">= 0.2.3", require: false # Ruby >= 3.2 +gem "yard", "~> 0.9", ">= 0.9.45", require: false +gem "yard-junk", "~> 0.1", ">= 0.1.0", require: false # Ruby >= 3.1 +gem "yard-relative_markdown_links", "~> 0.6", require: false -if ENV.fetch('GALTZO_FLOSS_DEV', 'false').casecmp('false').zero? - gem 'yard-fence', '~> 0.9', '>= 0.9.6', require: false # Ruby >= 3.2 - gem 'yard-timekeeper', '~> 0.2', '>= 0.2.4', require: false - gem 'yard-yaml', '~> 0.2', '>= 0.2.3', require: false +if ENV.fetch("GALTZO_FLOSS_DEV", "false").casecmp("false").zero? + gem "yard-fence", "~> 0.9", ">= 0.9.6", require: false # Ruby >= 3.2 + gem "yard-timekeeper", "~> 0.2", ">= 0.2.4", require: false + gem "yard-yaml", "~> 0.2", ">= 0.2.3", require: false else - eval_gemfile 'documentation_local.gemfile' + eval_gemfile "documentation_local.gemfile" end # Std Lib extractions -gem 'rdoc', '~> 6.11', require: false unless ENV.fetch('KJ_FRAMEWORK_MATRIX_GEM', '') == 'rdoc' +gem "rdoc", "~> 6.11", require: false unless ENV.fetch("KJ_FRAMEWORK_MATRIX_GEM", "") == "rdoc" diff --git a/gems/rust-merge/gemfiles/modular/documentation_local.gemfile b/gems/rust-merge/gemfiles/modular/documentation_local.gemfile index c8755d61e..3e7919342 100644 --- a/gems/rust-merge/gemfiles/modular/documentation_local.gemfile +++ b/gems/rust-merge/gemfiles/modular/documentation_local.gemfile @@ -11,19 +11,21 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] -nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) +nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] +nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == "nomono" } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + if nomono_locked + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] + end end -Kernel.send(:gem, 'nomono', *nomono_activation_requirements) -require 'nomono/bundler' +Kernel.send(:gem, "nomono", *nomono_activation_requirements) +require "nomono/bundler" local_gems = %w[yard-fence yard-timekeeper yard-yaml] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) @@ -32,9 +34,9 @@ local_gems_to_eval = local_gems - %w[rust-merge] - declared_gems # export GALTZO_FLOSS_DEV=/path/to/galtzo-floss eval_nomono_gems( gems: local_gems_to_eval, - prefix: 'GALTZO_FLOSS', - path_env: 'GALTZO_FLOSS_DEV', - vendored_gems_env: 'GALTZO_FLOSS_VENDORED_GEMS', - vendor_gem_dir_env: 'GALTZO_FLOSS_VENDOR_GEM_DIR', - debug_env: 'GALTZO_FLOSS_DEBUG' + prefix: "GALTZO_FLOSS", + path_env: "GALTZO_FLOSS_DEV", + vendored_gems_env: "GALTZO_FLOSS_VENDORED_GEMS", + vendor_gem_dir_env: "GALTZO_FLOSS_VENDOR_GEM_DIR", + debug_env: "GALTZO_FLOSS_DEBUG" ) diff --git a/gems/rust-merge/gemfiles/modular/erb/r2/v3.0.gemfile b/gems/rust-merge/gemfiles/modular/erb/r2/v3.0.gemfile index 7c83a239b..c03bd8d85 100644 --- a/gems/rust-merge/gemfiles/modular/erb/r2/v3.0.gemfile +++ b/gems/rust-merge/gemfiles/modular/erb/r2/v3.0.gemfile @@ -1 +1 @@ -gem 'erb', '~> 3.0' # ruby >= 2.7.0 +gem "erb", "~> 3.0" # ruby >= 2.7.0 diff --git a/gems/rust-merge/gemfiles/modular/erb/r3/v5.0.gemfile b/gems/rust-merge/gemfiles/modular/erb/r3/v5.0.gemfile index ec7ff451f..1bd029cc1 100644 --- a/gems/rust-merge/gemfiles/modular/erb/r3/v5.0.gemfile +++ b/gems/rust-merge/gemfiles/modular/erb/r3/v5.0.gemfile @@ -1 +1 @@ -gem 'erb', '~> 6.0', '>= 6.0.6' # ruby >= 3.2.0 +gem "erb", "~> 6.0", ">= 6.0.6" # ruby >= 3.2.0 diff --git a/gems/rust-merge/gemfiles/modular/erb/r4/v5.0.gemfile b/gems/rust-merge/gemfiles/modular/erb/r4/v5.0.gemfile index ec7ff451f..1bd029cc1 100644 --- a/gems/rust-merge/gemfiles/modular/erb/r4/v5.0.gemfile +++ b/gems/rust-merge/gemfiles/modular/erb/r4/v5.0.gemfile @@ -1 +1 @@ -gem 'erb', '~> 6.0', '>= 6.0.6' # ruby >= 3.2.0 +gem "erb", "~> 6.0", ">= 6.0.6" # ruby >= 3.2.0 diff --git a/gems/rust-merge/gemfiles/modular/erb/vHEAD.gemfile b/gems/rust-merge/gemfiles/modular/erb/vHEAD.gemfile index ea0101185..48fee4218 100644 --- a/gems/rust-merge/gemfiles/modular/erb/vHEAD.gemfile +++ b/gems/rust-merge/gemfiles/modular/erb/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 3.2 -gem 'erb', github: 'ruby/erb', branch: 'master' +gem "erb", github: "ruby/erb", branch: "master" diff --git a/gems/rust-merge/gemfiles/modular/json/truffleruby_22_3.gemfile b/gems/rust-merge/gemfiles/modular/json/truffleruby_22_3.gemfile index 9b2f8d96a..b0e69ab11 100644 --- a/gems/rust-merge/gemfiles/modular/json/truffleruby_22_3.gemfile +++ b/gems/rust-merge/gemfiles/modular/json/truffleruby_22_3.gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -if RUBY_ENGINE == 'truffleruby' && RUBY_ENGINE_VERSION.start_with?('22.3') +if RUBY_ENGINE == "truffleruby" && RUBY_ENGINE_VERSION.start_with?("22.3") # TruffleRuby 22.3 ships the json default gem from its emulated MRI Ruby. - gem 'json', '= 2.5.1' + gem "json", "= 2.5.1" end diff --git a/gems/rust-merge/gemfiles/modular/json/truffleruby_23_0.gemfile b/gems/rust-merge/gemfiles/modular/json/truffleruby_23_0.gemfile index d787a5ef4..7b2660a2b 100644 --- a/gems/rust-merge/gemfiles/modular/json/truffleruby_23_0.gemfile +++ b/gems/rust-merge/gemfiles/modular/json/truffleruby_23_0.gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -if RUBY_ENGINE == 'truffleruby' && RUBY_ENGINE_VERSION.start_with?('23.0') +if RUBY_ENGINE == "truffleruby" && RUBY_ENGINE_VERSION.start_with?("23.0") # TruffleRuby 23.0 ships the json default gem from its emulated MRI Ruby. - gem 'json', '= 2.6.1' + gem "json", "= 2.6.1" end diff --git a/gems/rust-merge/gemfiles/modular/json/truffleruby_23_1.gemfile b/gems/rust-merge/gemfiles/modular/json/truffleruby_23_1.gemfile index d78486b0e..dfa21f2e4 100644 --- a/gems/rust-merge/gemfiles/modular/json/truffleruby_23_1.gemfile +++ b/gems/rust-merge/gemfiles/modular/json/truffleruby_23_1.gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -if RUBY_ENGINE == 'truffleruby' && RUBY_ENGINE_VERSION.start_with?('23.1') +if RUBY_ENGINE == "truffleruby" && RUBY_ENGINE_VERSION.start_with?("23.1") # TruffleRuby 23.1 ships the json default gem from its emulated MRI Ruby. - gem 'json', '= 2.6.3' + gem "json", "= 2.6.3" end diff --git a/gems/rust-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile b/gems/rust-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile index e27f1bbae..42e9d9bd4 100644 --- a/gems/rust-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile +++ b/gems/rust-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 -gem 'mutex_m', '~> 0.2' +gem "mutex_m", "~> 0.2" diff --git a/gems/rust-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile b/gems/rust-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile index e27f1bbae..42e9d9bd4 100644 --- a/gems/rust-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile +++ b/gems/rust-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 -gem 'mutex_m', '~> 0.2' +gem "mutex_m", "~> 0.2" diff --git a/gems/rust-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile b/gems/rust-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile index e27f1bbae..42e9d9bd4 100644 --- a/gems/rust-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile +++ b/gems/rust-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 -gem 'mutex_m', '~> 0.2' +gem "mutex_m", "~> 0.2" diff --git a/gems/rust-merge/gemfiles/modular/mutex_m/vHEAD.gemfile b/gems/rust-merge/gemfiles/modular/mutex_m/vHEAD.gemfile index 9dac2f6cb..8af3b6fca 100644 --- a/gems/rust-merge/gemfiles/modular/mutex_m/vHEAD.gemfile +++ b/gems/rust-merge/gemfiles/modular/mutex_m/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 (dependency of omniauth) -gem 'mutex_m', github: 'ruby/mutex_m', branch: 'master' +gem "mutex_m", github: "ruby/mutex_m", branch: "master" diff --git a/gems/rust-merge/gemfiles/modular/optional.gemfile b/gems/rust-merge/gemfiles/modular/optional.gemfile index 9ea429538..80bc45196 100644 --- a/gems/rust-merge/gemfiles/modular/optional.gemfile +++ b/gems/rust-merge/gemfiles/modular/optional.gemfile @@ -9,8 +9,8 @@ # Optional dependencies are not depended on directly, but may be used if present. # Required for curated binstubs generated by kettle-jem install -gem 'rbs', '>= 3.0', require: false # ruby >= 3.1 +gem "rbs", ">= 3.0", require: false # ruby >= 3.1 # Required for kettle-pre-release # URL parsing with Unicode support (falls back to URI if not available) -gem 'addressable', '>= 2.8', '< 3' # ruby >= 2.2 +gem "addressable", ">= 2.8", "< 3" # ruby >= 2.2 diff --git a/gems/rust-merge/gemfiles/modular/rspec.gemfile b/gems/rust-merge/gemfiles/modular/rspec.gemfile index 2af210a41..72fdf8b7f 100644 --- a/gems/rust-merge/gemfiles/modular/rspec.gemfile +++ b/gems/rust-merge/gemfiles/modular/rspec.gemfile @@ -1,4 +1,4 @@ -gem 'rspec_junit_formatter', - github: 'pboling/rspec_junit_formatter', - branch: 'main', - ref: '9e6bcaaedd49477b62878ed568dc4ada5cc7cb5e' +gem "rspec_junit_formatter", + github: "pboling/rspec_junit_formatter", + branch: "main", + ref: "9e6bcaaedd49477b62878ed568dc4ada5cc7cb5e" diff --git a/gems/rust-merge/gemfiles/modular/runtime_heads.gemfile b/gems/rust-merge/gemfiles/modular/runtime_heads.gemfile index ebf17c529..02f134c7f 100644 --- a/gems/rust-merge/gemfiles/modular/runtime_heads.gemfile +++ b/gems/rust-merge/gemfiles/modular/runtime_heads.gemfile @@ -8,4 +8,4 @@ # Test against HEAD of runtime dependencies so we can proactively file bugs -eval_gemfile('x_std_libs/vHEAD.gemfile') +eval_gemfile("x_std_libs/vHEAD.gemfile") diff --git a/gems/rust-merge/gemfiles/modular/stringio/r2/v3.0.gemfile b/gems/rust-merge/gemfiles/modular/stringio/r2/v3.0.gemfile index 3616f4e3a..e85bb18ee 100644 --- a/gems/rust-merge/gemfiles/modular/stringio/r2/v3.0.gemfile +++ b/gems/rust-merge/gemfiles/modular/stringio/r2/v3.0.gemfile @@ -2,4 +2,4 @@ # NOT SEMVER # Version 3.0.7 dropped support for Ruby <= 2.7 # Version 3.0.0 dropped support for Ruby <= 2.4 -gem 'stringio', '>= 3.0' +gem "stringio", ">= 3.0" diff --git a/gems/rust-merge/gemfiles/modular/stringio/r3/v3.0.gemfile b/gems/rust-merge/gemfiles/modular/stringio/r3/v3.0.gemfile index 3616f4e3a..e85bb18ee 100644 --- a/gems/rust-merge/gemfiles/modular/stringio/r3/v3.0.gemfile +++ b/gems/rust-merge/gemfiles/modular/stringio/r3/v3.0.gemfile @@ -2,4 +2,4 @@ # NOT SEMVER # Version 3.0.7 dropped support for Ruby <= 2.7 # Version 3.0.0 dropped support for Ruby <= 2.4 -gem 'stringio', '>= 3.0' +gem "stringio", ">= 3.0" diff --git a/gems/rust-merge/gemfiles/modular/stringio/r4/v3.0.gemfile b/gems/rust-merge/gemfiles/modular/stringio/r4/v3.0.gemfile index 3616f4e3a..e85bb18ee 100644 --- a/gems/rust-merge/gemfiles/modular/stringio/r4/v3.0.gemfile +++ b/gems/rust-merge/gemfiles/modular/stringio/r4/v3.0.gemfile @@ -2,4 +2,4 @@ # NOT SEMVER # Version 3.0.7 dropped support for Ruby <= 2.7 # Version 3.0.0 dropped support for Ruby <= 2.4 -gem 'stringio', '>= 3.0' +gem "stringio", ">= 3.0" diff --git a/gems/rust-merge/gemfiles/modular/stringio/vHEAD.gemfile b/gems/rust-merge/gemfiles/modular/stringio/vHEAD.gemfile index 78f5f5d8a..5f2a74126 100644 --- a/gems/rust-merge/gemfiles/modular/stringio/vHEAD.gemfile +++ b/gems/rust-merge/gemfiles/modular/stringio/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 (dependency of omniauth) -gem 'stringio', github: 'ruby/stringio', branch: 'master' +gem "stringio", github: "ruby/stringio", branch: "master" diff --git a/gems/rust-merge/gemfiles/modular/style.gemfile b/gems/rust-merge/gemfiles/modular/style.gemfile index 4dbcc02c0..35de4dcd6 100644 --- a/gems/rust-merge/gemfiles/modular/style.gemfile +++ b/gems/rust-merge/gemfiles/modular/style.gemfile @@ -9,23 +9,23 @@ # Style tasks run on the latest Ruby; RuboCop-LTS selects the compatibility # rules for the configured Ruby floor independently from task dependency floors. -gem 'reek', '~> 6.5', '>= 6.5.0' +gem "reek", "~> 6.5", ">= 6.5.0" platform :mri do - gem 'appraisal2-rubocop', '~> 1.0', '>= 1.0.0', require: false - gem 'rubocop-gradual', '~> 0.4', '>= 0.4.0' - gem 'rubocop-minitest', '~> 0.40', '>= 0.40.0' - gem 'rubocop-on-rbs', '~> 2.0', '>= 2.0.0' # ruby >= 3.2.0 + gem "appraisal2-rubocop", "~> 1.0", ">= 1.0.0", require: false + gem "rubocop-gradual", "~> 0.4", ">= 0.4.0" + gem "rubocop-minitest", "~> 0.40", ">= 0.40.0" + gem "rubocop-on-rbs", "~> 2.0", ">= 2.0.0" # ruby >= 3.2.0 # gem "rubocop", "~> 1.73", ">= 1.73.2" # constrained by standard - gem 'rubocop-packaging', '~> 0.6', '>= 0.6.0' - gem 'standard', '~> 1.56', '>= 1.56.0' + gem "rubocop-packaging", "~> 0.6", ">= 0.6.0" + gem "standard", "~> 1.56", ">= 1.56.0" - if ENV.fetch('RUBOCOP_LTS_LOCAL', 'false').casecmp('false').zero? + if ENV.fetch("RUBOCOP_LTS_LOCAL", "false").casecmp("false").zero? declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) - gem 'rubocop-lts', '~> 24.2', '>= 24.2.1' unless declared_gems.include?('rubocop-lts') - gem 'rubocop-lts-rspec', '~> 1.0', '>= 1.0.5' unless declared_gems.include?('rubocop-lts-rspec') - gem 'rubocop-ruby3_2', '~> 3.0', '>= 3.0.6' unless declared_gems.include?('rubocop-ruby3_2') + gem "rubocop-lts", "~> 24.2", ">= 24.2.1" unless declared_gems.include?("rubocop-lts") + gem "rubocop-lts-rspec", "~> 1.0", ">= 1.0.5" unless declared_gems.include?("rubocop-lts-rspec") + gem "rubocop-ruby3_2", "~> 3.0", ">= 3.0.6" unless declared_gems.include?("rubocop-ruby3_2") else - eval_gemfile('style_local.gemfile') + eval_gemfile("style_local.gemfile") end end diff --git a/gems/rust-merge/gemfiles/modular/style_local.gemfile b/gems/rust-merge/gemfiles/modular/style_local.gemfile index d2c6290ca..ebe155ab1 100644 --- a/gems/rust-merge/gemfiles/modular/style_local.gemfile +++ b/gems/rust-merge/gemfiles/modular/style_local.gemfile @@ -14,19 +14,21 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] -nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) +nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] +nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == "nomono" } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + if nomono_locked + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] + end end -Kernel.send(:gem, 'nomono', *nomono_activation_requirements) -require 'nomono/bundler' +Kernel.send(:gem, "nomono", *nomono_activation_requirements) +require "nomono/bundler" local_gems = %w[rubocop-lts rubocop-lts-rspec rubocop-ruby3_2 standard-rubocop-lts] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) @@ -36,11 +38,11 @@ local_gems_to_eval = local_gems - %w[rust-merge] - declared_gems platform :mri do eval_nomono_gems( gems: local_gems_to_eval, - prefix: 'RUBOCOP_LTS', - path_env: 'RUBOCOP_LTS_LOCAL', - vendored_gems_env: 'VENDORED_GEMS', - vendor_gem_dir_env: 'VENDOR_GEM_DIR', - debug_env: 'RUBOCOP_LTS_DEBUG', - root: %w[src rubocop-lts] + prefix: "RUBOCOP_LTS", + path_env: "RUBOCOP_LTS_LOCAL", + vendored_gems_env: "VENDORED_GEMS", + vendor_gem_dir_env: "VENDOR_GEM_DIR", + debug_env: "RUBOCOP_LTS_DEBUG", + root: ["src", "rubocop-lts"] ) end diff --git a/gems/rust-merge/gemfiles/modular/templating.gemfile b/gems/rust-merge/gemfiles/modular/templating.gemfile index a672de184..47138ffbb 100644 --- a/gems/rust-merge/gemfiles/modular/templating.gemfile +++ b/gems/rust-merge/gemfiles/modular/templating.gemfile @@ -1,18 +1,18 @@ # frozen_string_literal: true -structuredmerge_remote = ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false').zero? -kettle_remote = ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? +structuredmerge_remote = ENV.fetch("STRUCTUREDMERGE_DEV", "false").casecmp("false").zero? +kettle_remote = ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false").zero? if structuredmerge_remote # Parser dependencies for released installs. - gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' + gem "tree_sitter_language_pack", "~> 1.13", ">= 1.13.3" # Merge recipes for released installs. - gem 'kettle-jem', '>= 7.0' + gem "kettle-jem", ">= 7.0" end if kettle_remote # Template/plugin checks for released installs. - gem 'kettle-drift', '~> 1.0', '>= 1.0.6', require: false + gem "kettle-drift", "~> 1.0", ">= 1.0.6", require: false end # Set STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local development with path-based dependencies. @@ -21,4 +21,4 @@ end # # Set KETTLE_DEV_DEV=/path/to/my for local development with Kettle plugin gems. # When false (default / CI), released Kettle plugin gems are used. -eval_gemfile 'templating_local.gemfile' unless structuredmerge_remote && kettle_remote +eval_gemfile "templating_local.gemfile" unless structuredmerge_remote && kettle_remote diff --git a/gems/rust-merge/gemfiles/modular/templating_local.gemfile b/gems/rust-merge/gemfiles/modular/templating_local.gemfile index a56793c0d..129aed87b 100644 --- a/gems/rust-merge/gemfiles/modular/templating_local.gemfile +++ b/gems/rust-merge/gemfiles/modular/templating_local.gemfile @@ -12,19 +12,21 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] -nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) +nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] +nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == "nomono" } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + if nomono_locked + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] + end end -Kernel.send(:gem, 'nomono', *nomono_activation_requirements) -require 'nomono/bundler' +Kernel.send(:gem, "nomono", *nomono_activation_requirements) +require "nomono/bundler" structuredmerge_local_gems = %w[ tree_haver @@ -67,25 +69,25 @@ structuredmerge_local_gems_to_eval = structuredmerge_local_gems - %w[rust-merge] kettle_dev_local_gems_to_eval = kettle_dev_local_gems - %w[rust-merge] - declared_gems platform :mri do - if ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false') != 0 + if ENV.fetch("STRUCTUREDMERGE_DEV", "false").casecmp("false") != 0 eval_nomono_gems( gems: structuredmerge_local_gems_to_eval, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - vendored_gems_env: 'VENDORED_GEMS', - vendor_gem_dir_env: 'VENDOR_GEM_DIR', - debug_env: 'STRUCTUREDMERGE_DEBUG' + prefix: "STRUCTUREDMERGE", + path_env: "STRUCTUREDMERGE_DEV", + vendored_gems_env: "VENDORED_GEMS", + vendor_gem_dir_env: "VENDOR_GEM_DIR", + debug_env: "STRUCTUREDMERGE_DEBUG" ) end - if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false') != 0 + if ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false") != 0 eval_nomono_gems( gems: kettle_dev_local_gems_to_eval, - prefix: 'KETTLE_DEV', - path_env: 'KETTLE_DEV_DEV', - vendored_gems_env: 'VENDORED_GEMS', - vendor_gem_dir_env: 'VENDOR_GEM_DIR', - debug_env: 'KETTLE_DEV_DEBUG' + prefix: "KETTLE_DEV", + path_env: "KETTLE_DEV_DEV", + vendored_gems_env: "VENDORED_GEMS", + vendor_gem_dir_env: "VENDOR_GEM_DIR", + debug_env: "KETTLE_DEV_DEBUG" ) end end diff --git a/gems/rust-merge/gemfiles/modular/webrick/r4/v1.9.gemfile b/gems/rust-merge/gemfiles/modular/webrick/r4/v1.9.gemfile index b1329ba84..eaab4a473 100644 --- a/gems/rust-merge/gemfiles/modular/webrick/r4/v1.9.gemfile +++ b/gems/rust-merge/gemfiles/modular/webrick/r4/v1.9.gemfile @@ -1 +1 @@ -gem 'webrick', '~> 1.9' +gem "webrick", "~> 1.9" diff --git a/gems/rust-merge/gemfiles/modular/webrick/vHEAD.gemfile b/gems/rust-merge/gemfiles/modular/webrick/vHEAD.gemfile index c7e6f81a1..8a789b634 100644 --- a/gems/rust-merge/gemfiles/modular/webrick/vHEAD.gemfile +++ b/gems/rust-merge/gemfiles/modular/webrick/vHEAD.gemfile @@ -1 +1 @@ -gem 'webrick', '>= 1.9' +gem "webrick", ">= 1.9" diff --git a/gems/rust-merge/gemfiles/modular/x_std_libs.gemfile b/gems/rust-merge/gemfiles/modular/x_std_libs.gemfile index b1f43c097..77aad43f2 100644 --- a/gems/rust-merge/gemfiles/modular/x_std_libs.gemfile +++ b/gems/rust-merge/gemfiles/modular/x_std_libs.gemfile @@ -1,12 +1,12 @@ ### Std Lib Extracted Gems ruby_version = Gem::Version.new(RUBY_VERSION) -if ruby_version >= Gem::Version.new('4.0') - eval_gemfile 'x_std_libs/r4/libs.gemfile' -elsif ruby_version >= Gem::Version.new('3.2') - eval_gemfile 'x_std_libs/r3/libs.gemfile' -elsif ruby_version >= Gem::Version.new('3.1') - eval_gemfile 'x_std_libs/r3.1/libs.gemfile' +if ruby_version >= Gem::Version.new("4.0") + eval_gemfile "x_std_libs/r4/libs.gemfile" +elsif ruby_version >= Gem::Version.new("3.2") + eval_gemfile "x_std_libs/r3/libs.gemfile" +elsif ruby_version >= Gem::Version.new("3.1") + eval_gemfile "x_std_libs/r3.1/libs.gemfile" else - eval_gemfile 'x_std_libs/r2/libs.gemfile' + eval_gemfile "x_std_libs/r2/libs.gemfile" end diff --git a/gems/rust-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile b/gems/rust-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile index 16a5e3d70..441c4f03a 100644 --- a/gems/rust-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile +++ b/gems/rust-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile @@ -1,3 +1,3 @@ -eval_gemfile '../../erb/r2/v3.0.gemfile' -eval_gemfile '../../mutex_m/r2/v0.3.gemfile' -eval_gemfile '../../stringio/r2/v3.0.gemfile' +eval_gemfile "../../erb/r2/v3.0.gemfile" +eval_gemfile "../../mutex_m/r2/v0.3.gemfile" +eval_gemfile "../../stringio/r2/v3.0.gemfile" diff --git a/gems/rust-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile b/gems/rust-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile index 220ff95c1..c293a3ddd 100644 --- a/gems/rust-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile +++ b/gems/rust-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile @@ -1,3 +1,3 @@ -eval_gemfile '../../erb/r3/v5.0.gemfile' -eval_gemfile '../../mutex_m/r3/v0.3.gemfile' -eval_gemfile '../../stringio/r3/v3.0.gemfile' +eval_gemfile "../../erb/r3/v5.0.gemfile" +eval_gemfile "../../mutex_m/r3/v0.3.gemfile" +eval_gemfile "../../stringio/r3/v3.0.gemfile" diff --git a/gems/rust-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile b/gems/rust-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile index e2f6501eb..eb5574247 100644 --- a/gems/rust-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile +++ b/gems/rust-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile @@ -1,6 +1,6 @@ -eval_gemfile '../../erb/r4/v5.0.gemfile' -eval_gemfile '../../mutex_m/r4/v0.3.gemfile' -eval_gemfile '../../stringio/r4/v3.0.gemfile' -eval_gemfile '../../benchmark/r4/v0.5.gemfile' -eval_gemfile '../../cgi/r4/v0.5.gemfile' -eval_gemfile '../../webrick/r4/v1.9.gemfile' +eval_gemfile "../../erb/r4/v5.0.gemfile" +eval_gemfile "../../mutex_m/r4/v0.3.gemfile" +eval_gemfile "../../stringio/r4/v3.0.gemfile" +eval_gemfile "../../benchmark/r4/v0.5.gemfile" +eval_gemfile "../../cgi/r4/v0.5.gemfile" +eval_gemfile "../../webrick/r4/v1.9.gemfile" diff --git a/gems/rust-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile b/gems/rust-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile index ab75cccf1..d4d5b16c9 100644 --- a/gems/rust-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile +++ b/gems/rust-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile @@ -1,6 +1,6 @@ -eval_gemfile '../erb/vHEAD.gemfile' -eval_gemfile '../mutex_m/vHEAD.gemfile' -eval_gemfile '../stringio/vHEAD.gemfile' -eval_gemfile '../benchmark/vHEAD.gemfile' -eval_gemfile '../cgi/vHEAD.gemfile' -eval_gemfile '../webrick/vHEAD.gemfile' +eval_gemfile "../erb/vHEAD.gemfile" +eval_gemfile "../mutex_m/vHEAD.gemfile" +eval_gemfile "../stringio/vHEAD.gemfile" +eval_gemfile "../benchmark/vHEAD.gemfile" +eval_gemfile "../cgi/vHEAD.gemfile" +eval_gemfile "../webrick/vHEAD.gemfile" diff --git a/gems/rust-merge/lib/rust/merge/version.rb b/gems/rust-merge/lib/rust/merge/version.rb index 027a1d9e7..4dc09f632 100644 --- a/gems/rust-merge/lib/rust/merge/version.rb +++ b/gems/rust-merge/lib/rust/merge/version.rb @@ -3,7 +3,7 @@ module Rust module Merge module Version - VERSION = '7.1.0' + VERSION = "7.1.0" end VERSION = Version::VERSION # Traditional Constant Location end diff --git a/gems/rust-merge/spec/spec_helper.rb b/gems/rust-merge/spec/spec_helper.rb index 5edc14765..7cab35487 100644 --- a/gems/rust-merge/spec/spec_helper.rb +++ b/gems/rust-merge/spec/spec_helper.rb @@ -7,11 +7,16 @@ # NOTE: Gemfiles for non-coverage appraisals may not have kettle-soup-cover. # The rescue LoadError handles that scenario. begin - require 'kettle-soup-cover' - require 'simplecov' if Kettle::Soup::Cover::DO_COV # `.simplecov` is run here! -rescue LoadError => e + require "kettle-soup-cover" + if Kettle::Soup::Cover::DO_COV + # Requiring simplecov loads the project-local `.simplecov`. + require "simplecov" + require "kettle/soup/cover/config" + SimpleCov.start + end +rescue LoadError => error # check the error message and re-raise when unexpected - raise e unless e.message.include?('kettle') + raise error unless error.message.include?("kettle") end # External RSpec & related config diff --git a/gems/toml-merge/.rubocop_gradual.lock b/gems/toml-merge/.rubocop_gradual.lock index bdd2020da..1941d1554 100644 --- a/gems/toml-merge/.rubocop_gradual.lock +++ b/gems/toml-merge/.rubocop_gradual.lock @@ -1,5 +1,5 @@ { - ".simplecov:3682400110": [ + ".simplecov:349860341": [ [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] ], "Rakefile:133885645": [ diff --git a/gems/toml-merge/.simplecov b/gems/toml-merge/.simplecov index 7d4e03bae..85553ceb0 100644 --- a/gems/toml-merge/.simplecov +++ b/gems/toml-merge/.simplecov @@ -4,15 +4,11 @@ # toml-merge will then preserve content between those markers across template runs. # kettle-jem:unfreeze -require 'kettle/soup/cover/config' - # Minimum coverage thresholds are set by kettle-soup-cover. # They are controlled by ENV variables loaded by `mise` from `mise.toml` # (with optional machine-local overrides in `.env.local`). # If the values for minimum coverage need to change, they should be changed both there, # and in 2 places in .github/workflows/coverage.yml. -SimpleCov.start do - track_files 'lib/**/*.rb' - track_files 'lib/**/*.rake' - track_files 'exe/*.rb' +SimpleCov.configure do + cover 'lib/**/*.rb', 'lib/**/*.rake', 'exe/*.rb' end diff --git a/gems/toml-merge/Gemfile b/gems/toml-merge/Gemfile index dc0145822..0cf981cb0 100644 --- a/gems/toml-merge/Gemfile +++ b/gems/toml-merge/Gemfile @@ -6,7 +6,7 @@ # kettle-jem will then preserve content between those markers across template runs. # kettle-jem:unfreeze -source "https://gem.coop" +source 'https://gem.coop' git_source(:codeberg) { |repo_name| "https://codeberg.org/#{repo_name}" } git_source(:gitlab) { |repo_name| "https://gitlab.com/#{repo_name}" } @@ -19,58 +19,54 @@ git_source(:gitlab) { |repo_name| "https://gitlab.com/#{repo_name}" } gemspec # Local workspace dependency wiring for *_local.gemfile overrides -nomono_requirements = ["~> 1.0", ">= 1.0.8"] -gem "nomono", *nomono_requirements, require: false # ruby >= 2.2 +nomono_requirements = ['~> 1.0', '>= 1.0.8'] +gem 'nomono', *nomono_requirements, require: false # ruby >= 2.2 # Direct sibling dependencies (env-switched via STRUCTUREDMERGE_DEV) direct_sibling_gems = %w[ ast-merge tree_haver ] -direct_sibling_dev = ENV.fetch("STRUCTUREDMERGE_DEV", "") +direct_sibling_dev = ENV.fetch('STRUCTUREDMERGE_DEV', '') direct_sibling_local = !direct_sibling_dev.empty? && !%w[false 0 no off].include?(direct_sibling_dev.downcase) -direct_sibling_templating = ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? +direct_sibling_templating = ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero?) - direct_sibling_dev_was_set = ENV.key?("STRUCTUREDMERGE_DEV") - direct_sibling_dev_original = ENV.fetch("STRUCTUREDMERGE_DEV", nil) + (direct_sibling_local || + ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) + direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') + direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) begin nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path("Gemfile.lock", __dir__) + nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == "nomono" } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - if nomono_locked - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] - end - end - Kernel.send(:gem, "nomono", *nomono_activation_requirements) - require "nomono/bundler" - if direct_sibling_templating && !direct_sibling_local - ENV["STRUCTUREDMERGE_DEV"] = File.expand_path("..", __dir__) + Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked end + Kernel.send(:gem, 'nomono', *nomono_activation_requirements) + require 'nomono/bundler' + ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local eval_nomono_gems( gems: direct_sibling_gems, - prefix: "STRUCTUREDMERGE", - path_env: "STRUCTUREDMERGE_DEV", - root: ["src", "my", "structuredmerge"] + prefix: 'STRUCTUREDMERGE', + path_env: 'STRUCTUREDMERGE_DEV', + root: %w[src my structuredmerge] ) rescue LoadError - warn "Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies." + warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' ensure if direct_sibling_templating && !direct_sibling_local if direct_sibling_dev_was_set - ENV["STRUCTUREDMERGE_DEV"] = direct_sibling_dev_original + ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original else - ENV.delete("STRUCTUREDMERGE_DEV") + ENV.delete('STRUCTUREDMERGE_DEV') end end end @@ -157,28 +153,28 @@ if direct_sibling_gems.any? && end # Use released TSLP with the Ruby ABI platform-gem fix. -gem "tree_sitter_language_pack", "~> 1.13", ">= 1.13.3" +gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' # Templating (env-switched: STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local paths) -eval_gemfile "gemfiles/modular/templating.gemfile" if ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? +eval_gemfile 'gemfiles/modular/templating.gemfile' if ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? # Debugging -eval_gemfile "gemfiles/modular/debug.gemfile" +eval_gemfile 'gemfiles/modular/debug.gemfile' # Code Coverage (env-switched: KETTLE_DEV_DEV=true for local paths) -eval_gemfile "gemfiles/modular/coverage.gemfile" +eval_gemfile 'gemfiles/modular/coverage.gemfile' # Linting -eval_gemfile "gemfiles/modular/style.gemfile" +eval_gemfile 'gemfiles/modular/style.gemfile' # Documentation -eval_gemfile "gemfiles/modular/documentation.gemfile" +eval_gemfile 'gemfiles/modular/documentation.gemfile' # Optional -eval_gemfile "gemfiles/modular/optional.gemfile" +eval_gemfile 'gemfiles/modular/optional.gemfile' ### Std Lib Extracted Gems -eval_gemfile "gemfiles/modular/x_std_libs.gemfile" +eval_gemfile 'gemfiles/modular/x_std_libs.gemfile' # See unlocked_deps appraisal for more details on irb inclusion -gem "irb", "~> 1.17" # ruby >= 2.7 +gem 'irb', '~> 1.17' # ruby >= 2.7 diff --git a/gems/toml-merge/Gemfile.lock b/gems/toml-merge/Gemfile.lock index accfd67ec..d46ea797b 100644 --- a/gems/toml-merge/Gemfile.lock +++ b/gems/toml-merge/Gemfile.lock @@ -7,39 +7,7 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly - specs: - ast-crispr-markdown-markly (7.1.0) - ast-crispr (= 7.1.0) - markly-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism - specs: - ast-crispr-ruby-prism (7.1.0) - ast-crispr (= 7.1.0) - prism-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr - specs: - ast-crispr (7.1.0) - ast-merge (= 7.1.0) - service_actor (~> 3.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git - specs: - ast-merge-git (7.1.0) - ast-merge (= 7.1.0) - json-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/ast-merge specs: ast-merge (7.1.0) benchmark @@ -48,194 +16,7 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template - specs: - ast-template (7.1.0) - ast-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge - specs: - bash-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge - specs: - binary-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge - specs: - citrus-toml-merge (7.1.0) - toml-merge (= 7.1.0) - toml-rb (~> 4.1) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge - specs: - commonmarker-merge (7.1.0) - commonmarker (~> 2.2) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge - specs: - dotenv-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge - specs: - go-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge - specs: - json-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem - specs: - kettle-jem (7.1.0) - addressable (>= 2.8, < 3) - ast-crispr-markdown-markly (= 7.1.0) - ast-crispr-ruby-prism (= 7.1.0) - ast-merge (= 7.1.0) - bash-merge (= 7.1.0) - citrus-toml-merge (= 7.1.0) - commonmarker-merge (= 7.1.0) - dotenv-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-dev (~> 2.3, >= 2.3.5) - kettle-rb (~> 0.1, >= 0.1.4) - kramdown-merge (= 7.1.0) - markdown-merge (= 7.1.0) - markly-merge (= 7.1.0) - prism-merge (= 7.1.0) - psych-merge (= 7.1.0) - rbs (>= 3.10) - rbs-merge (= 7.1.0) - ruby-merge (= 7.1.0) - token-resolver (~> 2.0, >= 2.0.4) - toml-merge (= 7.1.0) - toml-rb (~> 4.2) - tree_haver (= 7.1.0) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge - specs: - kramdown-merge (7.1.0) - kramdown (~> 2.5) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge - specs: - markdown-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge - specs: - markly-merge (7.1.0) - markdown-merge (= 7.1.0) - markly (~> 0.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge - specs: - parslet-toml-merge (7.1.0) - toml (~> 0.3) - toml-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge - specs: - plain-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge - specs: - prism-merge (7.1.0) - prism (~> 1.6) - ruby-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge - specs: - psych-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge - specs: - rbs-merge (7.1.0) - ast-merge (= 7.1.0) - rbs (>= 3.10) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge - specs: - ruby-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge - specs: - rust-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb - specs: - smorg-rb (7.1.0) - ast-merge (= 7.1.0) - ast-merge-git (= 7.1.0) - diff-lcs (~> 1.5) - go-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-jem (= 7.1.0) - markly-merge (= 7.1.0) - plain-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/tree_haver specs: tree_haver (7.1.0) citrus (~> 3.0) @@ -243,29 +24,6 @@ PATH tree_sitter_language_pack (>= 1.13.2, < 2.0) version_gem (~> 1.1, >= 1.1.9) -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge - specs: - typescript-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge - specs: - yaml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge - specs: - zip-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - GEM remote: https://gem.coop/ specs: @@ -290,7 +48,6 @@ GEM cgi (0.5.2) citrus (3.0.2) cmdparse (3.0.7) - commonmarker (2.9.0-x86_64-linux) concurrent-ruby (1.3.8) date (3.5.1) debug (1.11.1) @@ -348,13 +105,11 @@ GEM rdoc (>= 4.0.0) reline (>= 0.4.2) json (2.21.1) - kettle-dev (2.3.8) + kettle-dev (2.3.9) emoji_regex (>= 15.0) kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) - kettle-drift (1.0.6) - version_gem (~> 1.1, >= 1.1.14) kettle-rb (0.1.5) kettle-soup-cover (3.0.4) kettle-wash (~> 0.1, >= 0.1.0) @@ -383,7 +138,6 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) - markly (0.16.0) mutex_m (0.3.0) nokogiri (1.19.4-aarch64-linux-gnu) racc (~> 1.4) @@ -546,8 +300,6 @@ GEM ruby-progressbar (1.13.0) ruby_engine (2.0.3) ruby_version (1.0.3) - service_actor (3.9.4) - zeitwerk (>= 1.0) silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) @@ -602,11 +354,6 @@ GEM token-resolver (2.0.5) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.14) - toml (0.3.0) - parslet (>= 1.8.0, < 3.0.0) - toml-rb (4.2.0) - citrus (~> 3.0, > 3.0) - racc (~> 1.7) tree_sitter_language_pack (1.13.3-aarch64-linux) sorbet-runtime (~> 0.5) tree_sitter_language_pack (1.13.3-arm64-darwin) @@ -661,46 +408,24 @@ DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) appraisal2-rubocop (~> 1.0, >= 1.0.0) - ast-crispr! - ast-crispr-markdown-markly! - ast-crispr-ruby-prism! ast-merge! - ast-merge-git! - ast-template! - bash-merge! benchmark (~> 0.5, >= 0.5.0) - binary-merge! bundler-audit (~> 0.9.3) cgi (~> 0.5) - citrus-toml-merge! - commonmarker-merge! debug (>= 1.1) - dotenv-merge! erb (~> 6.0, >= 6.0.6) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.0) - go-merge! irb (~> 1.17) - json-merge! kettle-dev (~> 2.0, >= 2.2.25) - kettle-drift (~> 1.0, >= 1.0.6) - kettle-jem! kettle-soup-cover (~> 3.0, >= 3.0.3) kettle-test (~> 2.0, >= 2.0.9) kramdown (~> 2.5, >= 2.5.2) - kramdown-merge! kramdown-parser-gfm (~> 1.1) - markdown-merge! - markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) - parslet-toml-merge! - plain-merge! - prism-merge! - psych-merge! rake (~> 13.0) rbs (>= 3.0) - rbs-merge! rdoc (~> 6.11) reek (~> 6.5, >= 6.5.0) require_bench (~> 1.0, >= 1.0.4) @@ -711,27 +436,21 @@ DEPENDENCIES rubocop-on-rbs (~> 2.0, >= 2.0.0) rubocop-packaging (~> 0.6, >= 0.6.0) rubocop-ruby3_2 (~> 3.0, >= 3.0.6) - ruby-merge! ruby-progressbar (~> 1.13) - rust-merge! - smorg-rb! standard (~> 1.56, >= 1.56.0) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) toml-merge! tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) - typescript-merge! webrick (~> 1.9) yaml-converter (~> 0.2, >= 0.2.3) - yaml-merge! yard (~> 0.9, >= 0.9.45) yard-fence (~> 0.9, >= 0.9.6) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) yard-timekeeper (~> 0.2, >= 0.2.4) yard-yaml (~> 0.2, >= 0.2.3) - zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af @@ -739,31 +458,20 @@ CHECKSUMS appraisal2 (3.2.0) sha256=ccd0b767ac4060cd7af6d16747459b6990f49c39c7b4fb1f7d1146b1e97c492f appraisal2-rubocop (1.0.0) sha256=b71410fbb014befda5340605a605b7f6f3f012739baf0acc5b4351b592c3258d ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 - ast-crispr (7.1.0) - ast-crispr-markdown-markly (7.1.0) - ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) - ast-merge-git (7.1.0) - ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 - bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd - binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 - citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 - commonmarker (2.9.0-x86_64-linux) - commonmarker-merge (7.1.0) concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 - dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -776,28 +484,20 @@ CHECKSUMS gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f - go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 - json-merge (7.1.0) - kettle-dev (2.3.8) sha256=9d716ff21c660a730cb4e8d41e2e2f0630a28167a354b6e2924e242102aef72c - kettle-drift (1.0.6) - kettle-jem (7.1.0) + kettle-dev (2.3.9) kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f kettle-soup-cover (3.0.4) kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa - kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 - markdown-merge (7.1.0) - markly (0.16.0) - markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-aarch64-linux-gnu) sha256=1269fb644a6de405057a53dd5c762b1209b43ca7424f839454d3dbc677c31a8f nokogiri (1.19.4-aarch64-linux-musl) sha256=35c65b9ce72b3bb03207bdbe7067915019dc18c1b9b59139684bd6690fdd01af @@ -811,20 +511,15 @@ CHECKSUMS parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 - parslet-toml-merge (7.1.0) - plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 - prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 - psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 - rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb @@ -859,19 +554,15 @@ CHECKSUMS rubocop-rspec_rails (2.32.0) sha256=4a0d641c72f6ebb957534f539d9d0a62c47abd8ce0d0aeee1ef4701e892a9100 rubocop-ruby3_2 (3.0.7) sha256=f53dd6d286fb05186214fc6ec116783e7f837030918e8931c05de773e98f8466 rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 - ruby-merge (7.1.0) ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 - rust-merge (7.1.0) - service_actor (3.9.4) silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed - smorg-rb (7.1.0) sorbet-runtime (0.6.13351) sha256=f8fee17c6e3edf835dc6823d26afb9a7c8969c6710d1fabe2fb43f4e0c15c64f standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b @@ -886,22 +577,18 @@ CHECKSUMS timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.5) sha256=b852f924287ffb58a440856e862b056c8ad97e74b4b2526cee43e0771f40c25c - toml (0.3.0) toml-merge (7.1.0) - toml-rb (4.2.0) tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-aarch64-linux) sha256=55ffc7c87868cb45658338363d9eba51b4a8b0259aa88e4de368d2bd1d52fea4 tree_sitter_language_pack (1.13.3-arm64-darwin) sha256=bc2498db605f212a1dbd2465ed3f65190d7da786f6ed5d30fcf958121aeb4a5c tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 - typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 webrick (1.9.2) sha256=beb4a15fc474defed24a3bda4ffd88a490d517c9e4e6118c3edce59e45864131 yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 - yaml-merge (7.1.0) yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd @@ -909,7 +596,6 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 - zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH diff --git a/gems/toml-merge/Rakefile b/gems/toml-merge/Rakefile index 4d0c02b16..1038ac780 100644 --- a/gems/toml-merge/Rakefile +++ b/gems/toml-merge/Rakefile @@ -130,23 +130,23 @@ end ### DUPLICATE DRIFT TASKS begin - require "kettle/drift" + require 'kettle/drift' Kettle::Drift.install_tasks rescue LoadError - desc("(stub) kettle:drift:check is unavailable") - task("kettle:drift:check") do + desc('(stub) kettle:drift:check is unavailable') + task('kettle:drift:check') do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc("(stub) kettle:drift:update is unavailable") - task("kettle:drift:update") do + desc('(stub) kettle:drift:update is unavailable') + task('kettle:drift:update') do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc("(stub) kettle:drift:force_update is unavailable") - task("kettle:drift:force_update") do + desc('(stub) kettle:drift:force_update is unavailable') + task('kettle:drift:force_update') do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc("(stub) kettle:drift is unavailable") - task("kettle:drift" => "kettle:drift:update") + desc('(stub) kettle:drift is unavailable') + task('kettle:drift' => 'kettle:drift:update') end ### TEMPLATING TASKS diff --git a/gems/toml-merge/gemfiles/modular/templating.gemfile b/gems/toml-merge/gemfiles/modular/templating.gemfile index 47138ffbb..a672de184 100644 --- a/gems/toml-merge/gemfiles/modular/templating.gemfile +++ b/gems/toml-merge/gemfiles/modular/templating.gemfile @@ -1,18 +1,18 @@ # frozen_string_literal: true -structuredmerge_remote = ENV.fetch("STRUCTUREDMERGE_DEV", "false").casecmp("false").zero? -kettle_remote = ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false").zero? +structuredmerge_remote = ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false').zero? +kettle_remote = ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? if structuredmerge_remote # Parser dependencies for released installs. - gem "tree_sitter_language_pack", "~> 1.13", ">= 1.13.3" + gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' # Merge recipes for released installs. - gem "kettle-jem", ">= 7.0" + gem 'kettle-jem', '>= 7.0' end if kettle_remote # Template/plugin checks for released installs. - gem "kettle-drift", "~> 1.0", ">= 1.0.6", require: false + gem 'kettle-drift', '~> 1.0', '>= 1.0.6', require: false end # Set STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local development with path-based dependencies. @@ -21,4 +21,4 @@ end # # Set KETTLE_DEV_DEV=/path/to/my for local development with Kettle plugin gems. # When false (default / CI), released Kettle plugin gems are used. -eval_gemfile "templating_local.gemfile" unless structuredmerge_remote && kettle_remote +eval_gemfile 'templating_local.gemfile' unless structuredmerge_remote && kettle_remote diff --git a/gems/toml-merge/gemfiles/modular/templating_local.gemfile b/gems/toml-merge/gemfiles/modular/templating_local.gemfile index 4d8b1bc5c..bdbb4cf69 100644 --- a/gems/toml-merge/gemfiles/modular/templating_local.gemfile +++ b/gems/toml-merge/gemfiles/modular/templating_local.gemfile @@ -12,21 +12,19 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] -nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) +nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] +nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == "nomono" } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - if nomono_locked - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] - end + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked end -Kernel.send(:gem, "nomono", *nomono_activation_requirements) -require "nomono/bundler" +Kernel.send(:gem, 'nomono', *nomono_activation_requirements) +require 'nomono/bundler' structuredmerge_local_gems = %w[ tree_haver @@ -69,25 +67,25 @@ structuredmerge_local_gems_to_eval = structuredmerge_local_gems - %w[toml-merge] kettle_dev_local_gems_to_eval = kettle_dev_local_gems - %w[toml-merge] - declared_gems platform :mri do - if ENV.fetch("STRUCTUREDMERGE_DEV", "false").casecmp("false") != 0 + if ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false') != 0 eval_nomono_gems( gems: structuredmerge_local_gems_to_eval, - prefix: "STRUCTUREDMERGE", - path_env: "STRUCTUREDMERGE_DEV", - vendored_gems_env: "VENDORED_GEMS", - vendor_gem_dir_env: "VENDOR_GEM_DIR", - debug_env: "STRUCTUREDMERGE_DEBUG" + prefix: 'STRUCTUREDMERGE', + path_env: 'STRUCTUREDMERGE_DEV', + vendored_gems_env: 'VENDORED_GEMS', + vendor_gem_dir_env: 'VENDOR_GEM_DIR', + debug_env: 'STRUCTUREDMERGE_DEBUG' ) end - if ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false") != 0 + if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false') != 0 eval_nomono_gems( gems: kettle_dev_local_gems_to_eval, - prefix: "KETTLE_DEV", - path_env: "KETTLE_DEV_DEV", - vendored_gems_env: "VENDORED_GEMS", - vendor_gem_dir_env: "VENDOR_GEM_DIR", - debug_env: "KETTLE_DEV_DEBUG" + prefix: 'KETTLE_DEV', + path_env: 'KETTLE_DEV_DEV', + vendored_gems_env: 'VENDORED_GEMS', + vendor_gem_dir_env: 'VENDOR_GEM_DIR', + debug_env: 'KETTLE_DEV_DEBUG' ) end end diff --git a/gems/toml-merge/lib/toml/merge/version.rb b/gems/toml-merge/lib/toml/merge/version.rb index 91c4e4d84..d9074beaf 100644 --- a/gems/toml-merge/lib/toml/merge/version.rb +++ b/gems/toml-merge/lib/toml/merge/version.rb @@ -3,7 +3,7 @@ module Toml module Merge module Version - VERSION = "7.1.0" + VERSION = '7.1.0' end VERSION = Version::VERSION # Traditional Constant Location end diff --git a/gems/toml-merge/spec/spec_helper.rb b/gems/toml-merge/spec/spec_helper.rb index 342d359c5..ead958655 100644 --- a/gems/toml-merge/spec/spec_helper.rb +++ b/gems/toml-merge/spec/spec_helper.rb @@ -8,7 +8,12 @@ # The rescue LoadError handles that scenario. begin require 'kettle-soup-cover' - require 'simplecov' if Kettle::Soup::Cover::DO_COV # `.simplecov` is run here! + if Kettle::Soup::Cover::DO_COV + # Requiring simplecov loads the project-local `.simplecov`. + require 'simplecov' + require 'kettle/soup/cover/config' + SimpleCov.start + end rescue LoadError => e # check the error message and re-raise when unexpected raise e unless e.message.include?('kettle') diff --git a/gems/typescript-merge/.kettle-drift.lock b/gems/typescript-merge/.kettle-drift.lock index 43dfedd67..7cc6a5131 100644 --- a/gems/typescript-merge/.kettle-drift.lock +++ b/gems/typescript-merge/.kettle-drift.lock @@ -1,10 +1,74 @@ { + "(direct_sibling_local ||\nENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?)": [ + { + "file": "Gemfile", + "lines": [ + 80, + 120 + ] + } + ], + ".find { |spec| spec.name == 'nomono' }\nnomono_locked = nomono_locked_spec &&": [ + { + "file": "Gemfile", + "lines": [ + 91, + 131 + ] + } + ], + "ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?)\ndirect_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV')": [ + { + "file": "Gemfile", + "lines": [ + 81, + 121 + ] + } + ], + "Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version)\nnomono_activation_requirements = [\"= #{nomono_locked_spec.version}\"] if nomono_locked": [ + { + "file": "Gemfile", + "lines": [ + 93, + 133 + ] + } + ], + "Kernel.send(:gem, 'nomono', *nomono_activation_requirements)\nrequire 'nomono/bundler'": [ + { + "file": "Gemfile", + "lines": [ + 96, + 136 + ] + } + ], + "direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV')\ndirect_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil)": [ + { + "file": "Gemfile", + "lines": [ + 82, + 122 + ] + } + ], "eval_nomono_gems(\ngems: direct_sibling_gems,": [ { "file": "Gemfile", "lines": [ 60, - 100 + 100, + 140 + ] + } + ], + "gems: direct_sibling_gems,\nprefix: 'STRUCTUREDMERGE',": [ + { + "file": "Gemfile", + "lines": [ + 101, + 141 ] } ], @@ -13,7 +77,17 @@ "file": "Gemfile", "lines": [ 43, - 87 + 87, + 127 + ] + } + ], + "if direct_sibling_dev_was_set\nENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original": [ + { + "file": "Gemfile", + "lines": [ + 110, + 150 ] } ], @@ -22,7 +96,8 @@ "file": "Gemfile", "lines": [ 35, - 79 + 79, + 119 ] } ], @@ -31,7 +106,17 @@ "file": "Gemfile", "lines": [ 69, - 109 + 109, + 149 + ] + } + ], + "nomono_activation_requirements = nomono_requirements\nnomono_lockfile = File.expand_path('Gemfile.lock', __dir__)": [ + { + "file": "Gemfile", + "lines": [ + 85, + 125 ] } ], @@ -40,7 +125,8 @@ "file": "Gemfile", "lines": [ 48, - 92 + 92, + 132 ] } ], @@ -49,7 +135,53 @@ "file": "Gemfile", "lines": [ 44, - 88 + 88, + 128 + ] + } + ], + "nomono_lockfile = File.expand_path('Gemfile.lock', __dir__)\nif File.file?(nomono_lockfile)": [ + { + "file": "Gemfile", + "lines": [ + 86, + 126 + ] + } + ], + "path_env: 'STRUCTUREDMERGE_DEV',\nroot: %w[src my structuredmerge]": [ + { + "file": "Gemfile", + "lines": [ + 103, + 143 + ] + } + ], + "prefix: 'STRUCTUREDMERGE',\npath_env: 'STRUCTUREDMERGE_DEV',": [ + { + "file": "Gemfile", + "lines": [ + 102, + 142 + ] + } + ], + "require 'nomono/bundler'\nENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local": [ + { + "file": "Gemfile", + "lines": [ + 97, + 137 + ] + } + ], + "rescue LoadError\nwarn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.'": [ + { + "file": "Gemfile", + "lines": [ + 106, + 146 ] } ] diff --git a/gems/typescript-merge/Gemfile b/gems/typescript-merge/Gemfile index e9d5a84c9..65ce2b794 100644 --- a/gems/typescript-merge/Gemfile +++ b/gems/typescript-merge/Gemfile @@ -6,7 +6,7 @@ # kettle-jem will then preserve content between those markers across template runs. # kettle-jem:unfreeze -source 'https://gem.coop' +source "https://gem.coop" git_source(:codeberg) { |repo_name| "https://codeberg.org/#{repo_name}" } git_source(:gitlab) { |repo_name| "https://gitlab.com/#{repo_name}" } @@ -19,18 +19,62 @@ git_source(:gitlab) { |repo_name| "https://gitlab.com/#{repo_name}" } gemspec # Local workspace dependency wiring for *_local.gemfile overrides -nomono_requirements = ['~> 1.0', '>= 1.0.8'] -gem 'nomono', *nomono_requirements, require: false # ruby >= 2.2 +nomono_requirements = ["~> 1.0", ">= 1.0.8"] +gem "nomono", *nomono_requirements, require: false # ruby >= 2.2 # Direct sibling dependencies (env-switched via STRUCTUREDMERGE_DEV) direct_sibling_gems = %w[ ast-merge tree_haver ] -direct_sibling_dev = ENV.fetch('STRUCTUREDMERGE_DEV', '') +direct_sibling_dev = ENV.fetch("STRUCTUREDMERGE_DEV", "") direct_sibling_local = !direct_sibling_dev.empty? && !%w[false 0 no off].include?(direct_sibling_dev.downcase) -direct_sibling_templating = ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? +direct_sibling_templating = ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? + +if direct_sibling_gems.any? && + (direct_sibling_local || + ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero?) + direct_sibling_dev_was_set = ENV.key?("STRUCTUREDMERGE_DEV") + direct_sibling_dev_original = ENV.fetch("STRUCTUREDMERGE_DEV", nil) + begin + nomono_activation_requirements = nomono_requirements + nomono_lockfile = File.expand_path("Gemfile.lock", __dir__) + if File.file?(nomono_lockfile) + nomono_locked_spec = Bundler::LockfileParser + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == "nomono" } + nomono_locked = nomono_locked_spec && + Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) + if nomono_locked + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] + end + end + Kernel.send(:gem, "nomono", *nomono_activation_requirements) + require "nomono/bundler" + if direct_sibling_templating && !direct_sibling_local + ENV["STRUCTUREDMERGE_DEV"] = File.expand_path("..", __dir__) + end + + eval_nomono_gems( + gems: direct_sibling_gems, + prefix: "STRUCTUREDMERGE", + path_env: "STRUCTUREDMERGE_DEV", + root: ["src", "my", "structuredmerge"] + ) + rescue LoadError + warn "Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies." + ensure + if direct_sibling_templating && !direct_sibling_local + if direct_sibling_dev_was_set + ENV["STRUCTUREDMERGE_DEV"] = direct_sibling_dev_original + else + ENV.delete("STRUCTUREDMERGE_DEV") + end + end + end +end if direct_sibling_gems.any? && (direct_sibling_local || @@ -113,28 +157,28 @@ if direct_sibling_gems.any? && end # Use released TSLP with the Ruby ABI platform-gem fix. -gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' +gem "tree_sitter_language_pack", "~> 1.13", ">= 1.13.3" # Templating (env-switched: STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local paths) -eval_gemfile 'gemfiles/modular/templating.gemfile' if ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? +eval_gemfile "gemfiles/modular/templating.gemfile" if ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? # Debugging -eval_gemfile 'gemfiles/modular/debug.gemfile' +eval_gemfile "gemfiles/modular/debug.gemfile" # Code Coverage (env-switched: KETTLE_DEV_DEV=true for local paths) -eval_gemfile 'gemfiles/modular/coverage.gemfile' +eval_gemfile "gemfiles/modular/coverage.gemfile" # Linting -eval_gemfile 'gemfiles/modular/style.gemfile' +eval_gemfile "gemfiles/modular/style.gemfile" # Documentation -eval_gemfile 'gemfiles/modular/documentation.gemfile' +eval_gemfile "gemfiles/modular/documentation.gemfile" # Optional -eval_gemfile 'gemfiles/modular/optional.gemfile' +eval_gemfile "gemfiles/modular/optional.gemfile" ### Std Lib Extracted Gems -eval_gemfile 'gemfiles/modular/x_std_libs.gemfile' +eval_gemfile "gemfiles/modular/x_std_libs.gemfile" # See unlocked_deps appraisal for more details on irb inclusion -gem 'irb', '~> 1.17' # ruby >= 2.7 +gem "irb", "~> 1.17" # ruby >= 2.7 diff --git a/gems/typescript-merge/Gemfile.lock b/gems/typescript-merge/Gemfile.lock index 5c9db1ba3..78bc6b845 100644 --- a/gems/typescript-merge/Gemfile.lock +++ b/gems/typescript-merge/Gemfile.lock @@ -6,6 +6,266 @@ PATH tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly + specs: + ast-crispr-markdown-markly (7.1.0) + ast-crispr (= 7.1.0) + markly-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism + specs: + ast-crispr-ruby-prism (7.1.0) + ast-crispr (= 7.1.0) + prism-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr + specs: + ast-crispr (7.1.0) + ast-merge (= 7.1.0) + service_actor (~> 3.9) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git + specs: + ast-merge-git (7.1.0) + ast-merge (= 7.1.0) + json-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge + specs: + ast-merge (7.1.0) + benchmark + token-resolver (~> 2.0, >= 2.0.4) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template + specs: + ast-template (7.1.0) + ast-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge + specs: + bash-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge + specs: + binary-merge (7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge + specs: + citrus-toml-merge (7.1.0) + toml-merge (= 7.1.0) + toml-rb (~> 4.1) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge + specs: + commonmarker-merge (7.1.0) + commonmarker (~> 2.2) + markdown-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge + specs: + dotenv-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge + specs: + go-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge + specs: + json-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem + specs: + kettle-jem (7.1.0) + addressable (>= 2.8, < 3) + ast-crispr-markdown-markly (= 7.1.0) + ast-crispr-ruby-prism (= 7.1.0) + ast-merge (= 7.1.0) + bash-merge (= 7.1.0) + citrus-toml-merge (= 7.1.0) + commonmarker-merge (= 7.1.0) + dotenv-merge (= 7.1.0) + json-merge (= 7.1.0) + kettle-dev (~> 2.3, >= 2.3.5) + kettle-rb (~> 0.1, >= 0.1.4) + kramdown-merge (= 7.1.0) + markdown-merge (= 7.1.0) + markly-merge (= 7.1.0) + prism-merge (= 7.1.0) + psych-merge (= 7.1.0) + rbs (>= 3.10) + rbs-merge (= 7.1.0) + ruby-merge (= 7.1.0) + token-resolver (~> 2.0, >= 2.0.4) + toml-merge (= 7.1.0) + toml-rb (~> 4.2) + tree_haver (= 7.1.0) + yaml-merge (= 7.1.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge + specs: + kramdown-merge (7.1.0) + kramdown (~> 2.5) + markdown-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge + specs: + markdown-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge + specs: + markly-merge (7.1.0) + markdown-merge (= 7.1.0) + markly (~> 0.9) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge + specs: + parslet-toml-merge (7.1.0) + toml (~> 0.3) + toml-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge + specs: + plain-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge + specs: + prism-merge (7.1.0) + prism (~> 1.6) + ruby-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge + specs: + psych-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + yaml-merge (= 7.1.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge + specs: + rbs-merge (7.1.0) + ast-merge (= 7.1.0) + rbs (>= 3.10) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge + specs: + ruby-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge + specs: + rust-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb + specs: + smorg-rb (7.1.0) + ast-merge (= 7.1.0) + ast-merge-git (= 7.1.0) + diff-lcs (~> 1.5) + go-merge (= 7.1.0) + json-merge (= 7.1.0) + kettle-jem (= 7.1.0) + markly-merge (= 7.1.0) + plain-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge + specs: + toml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver + specs: + tree_haver (7.1.0) + citrus (~> 3.0) + parslet (~> 2.0) + tree_sitter_language_pack (>= 1.13.2, < 2.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge + specs: + yaml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge + specs: + zip-merge (7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + GEM remote: https://gem.coop/ specs: @@ -21,11 +281,6 @@ GEM rubocop (>= 1.0) version_gem (~> 1.1, >= 1.1.14) ast (2.4.3) - ast-merge (7.1.0) - benchmark - token-resolver (~> 2.0, >= 2.0.4) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) backports (3.25.3) benchmark (0.5.0) bigdecimal (4.1.2) @@ -35,6 +290,7 @@ GEM cgi (0.5.2) citrus (3.0.2) cmdparse (3.0.7) + commonmarker (2.9.0-x86_64-linux) concurrent-ruby (1.3.8) date (3.5.1) debug (1.11.1) @@ -97,6 +353,8 @@ GEM kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) + kettle-drift (1.0.6) + version_gem (~> 1.1, >= 1.1.14) kettle-rb (0.1.5) kettle-soup-cover (3.0.4) kettle-wash (~> 0.1, >= 0.1.0) @@ -125,6 +383,7 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) + markly (0.16.0) mutex_m (0.3.0) nokogiri (1.19.4-aarch64-linux-gnu) racc (~> 1.4) @@ -287,6 +546,8 @@ GEM ruby-progressbar (1.13.0) ruby_engine (2.0.3) ruby_version (1.0.3) + service_actor (3.9.4) + zeitwerk (>= 1.0) silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) @@ -302,7 +563,7 @@ GEM simplecov (>= 0.4.1) simplecov_lcov_formatter (0.9.0) simplecov (>= 0.18) - sorbet-runtime (0.6.13347) + sorbet-runtime (0.6.13351) standard (1.56.0) language_server-protocol (~> 3.17.0.2) lint_roller (~> 1.0) @@ -341,11 +602,11 @@ GEM token-resolver (2.0.5) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.14) - tree_haver (7.1.0) - citrus (~> 3.0) - parslet (~> 2.0) - tree_sitter_language_pack (>= 1.13.2, < 2.0) - version_gem (~> 1.1, >= 1.1.9) + toml (0.3.0) + parslet (>= 1.8.0, < 3.0.0) + toml-rb (4.2.0) + citrus (~> 3.0, > 3.0) + racc (~> 1.7) tree_sitter_language_pack (1.13.3-aarch64-linux) sorbet-runtime (~> 0.5) tree_sitter_language_pack (1.13.3-arm64-darwin) @@ -400,23 +661,46 @@ DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) appraisal2-rubocop (~> 1.0, >= 1.0.0) + ast-crispr! + ast-crispr-markdown-markly! + ast-crispr-ruby-prism! + ast-merge! + ast-merge-git! + ast-template! + bash-merge! benchmark (~> 0.5, >= 0.5.0) + binary-merge! bundler-audit (~> 0.9.3) cgi (~> 0.5) + citrus-toml-merge! + commonmarker-merge! debug (>= 1.1) + dotenv-merge! erb (~> 6.0, >= 6.0.6) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.0) + go-merge! irb (~> 1.17) + json-merge! kettle-dev (~> 2.0, >= 2.2.25) + kettle-drift (~> 1.0, >= 1.0.6) + kettle-jem! kettle-soup-cover (~> 3.0, >= 3.0.3) kettle-test (~> 2.0, >= 2.0.9) kramdown (~> 2.5, >= 2.5.2) + kramdown-merge! kramdown-parser-gfm (~> 1.1) + markdown-merge! + markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) + parslet-toml-merge! + plain-merge! + prism-merge! + psych-merge! rake (~> 13.0) rbs (>= 3.0) + rbs-merge! rdoc (~> 6.11) reek (~> 6.5, >= 6.5.0) require_bench (~> 1.0, >= 1.0.4) @@ -427,20 +711,27 @@ DEPENDENCIES rubocop-on-rbs (~> 2.0, >= 2.0.0) rubocop-packaging (~> 0.6, >= 0.6.0) rubocop-ruby3_2 (~> 3.0, >= 3.0.6) + ruby-merge! ruby-progressbar (~> 1.13) + rust-merge! + smorg-rb! standard (~> 1.56, >= 1.56.0) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) + toml-merge! + tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) typescript-merge! webrick (~> 1.9) yaml-converter (~> 0.2, >= 0.2.3) + yaml-merge! yard (~> 0.9, >= 0.9.45) yard-fence (~> 0.9, >= 0.9.6) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) yard-timekeeper (~> 0.2, >= 0.2.4) yard-yaml (~> 0.2, >= 0.2.3) + zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af @@ -448,20 +739,31 @@ CHECKSUMS appraisal2 (3.2.0) sha256=ccd0b767ac4060cd7af6d16747459b6990f49c39c7b4fb1f7d1146b1e97c492f appraisal2-rubocop (1.0.0) sha256=b71410fbb014befda5340605a605b7f6f3f012739baf0acc5b4351b592c3258d ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 + ast-crispr (7.1.0) + ast-crispr-markdown-markly (7.1.0) + ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) + ast-merge-git (7.1.0) + ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 + bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd + binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 + citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 + commonmarker (2.9.0-x86_64-linux) + commonmarker-merge (7.1.0) concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 + dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -474,20 +776,28 @@ CHECKSUMS gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f + go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 + json-merge (7.1.0) kettle-dev (2.3.8) sha256=9d716ff21c660a730cb4e8d41e2e2f0630a28167a354b6e2924e242102aef72c + kettle-drift (1.0.6) + kettle-jem (7.1.0) kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f kettle-soup-cover (3.0.4) kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa + kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 + markdown-merge (7.1.0) + markly (0.16.0) + markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-aarch64-linux-gnu) sha256=1269fb644a6de405057a53dd5c762b1209b43ca7424f839454d3dbc677c31a8f nokogiri (1.19.4-aarch64-linux-musl) sha256=35c65b9ce72b3bb03207bdbe7067915019dc18c1b9b59139684bd6690fdd01af @@ -501,15 +811,20 @@ CHECKSUMS parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 + parslet-toml-merge (7.1.0) + plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 + prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 + psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 + rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb @@ -544,16 +859,20 @@ CHECKSUMS rubocop-rspec_rails (2.32.0) sha256=4a0d641c72f6ebb957534f539d9d0a62c47abd8ce0d0aeee1ef4701e892a9100 rubocop-ruby3_2 (3.0.7) sha256=f53dd6d286fb05186214fc6ec116783e7f837030918e8931c05de773e98f8466 rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 + ruby-merge (7.1.0) ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 + rust-merge (7.1.0) + service_actor (3.9.4) silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed - sorbet-runtime (0.6.13347) sha256=54e7221d9f4b63f58aec79f3043752a9ba7810347c6ae0d903531591cc2d5f01 + smorg-rb (7.1.0) + sorbet-runtime (0.6.13351) sha256=f8fee17c6e3edf835dc6823d26afb9a7c8969c6710d1fabe2fb43f4e0c15c64f standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b standard-performance (1.9.0) sha256=49483d31be448292951d80e5e67cdcb576c2502103c7b40aec6f1b6e9c88e3f2 @@ -567,6 +886,9 @@ CHECKSUMS timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.5) sha256=b852f924287ffb58a440856e862b056c8ad97e74b4b2526cee43e0771f40c25c + toml (0.3.0) + toml-merge (7.1.0) + toml-rb (4.2.0) tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-aarch64-linux) sha256=55ffc7c87868cb45658338363d9eba51b4a8b0259aa88e4de368d2bd1d52fea4 tree_sitter_language_pack (1.13.3-arm64-darwin) sha256=bc2498db605f212a1dbd2465ed3f65190d7da786f6ed5d30fcf958121aeb4a5c @@ -579,6 +901,7 @@ CHECKSUMS version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 webrick (1.9.2) sha256=beb4a15fc474defed24a3bda4ffd88a490d517c9e4e6118c3edce59e45864131 yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 + yaml-merge (7.1.0) yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd @@ -586,6 +909,7 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 + zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH diff --git a/gems/typescript-merge/Rakefile b/gems/typescript-merge/Rakefile index 001b16d17..891a105cb 100644 --- a/gems/typescript-merge/Rakefile +++ b/gems/typescript-merge/Rakefile @@ -130,23 +130,23 @@ end ### DUPLICATE DRIFT TASKS begin - require 'kettle/drift' + require "kettle/drift" Kettle::Drift.install_tasks rescue LoadError - desc('(stub) kettle:drift:check is unavailable') - task('kettle:drift:check') do + desc("(stub) kettle:drift:check is unavailable") + task("kettle:drift:check") do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc('(stub) kettle:drift:update is unavailable') - task('kettle:drift:update') do + desc("(stub) kettle:drift:update is unavailable") + task("kettle:drift:update") do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc('(stub) kettle:drift:force_update is unavailable') - task('kettle:drift:force_update') do + desc("(stub) kettle:drift:force_update is unavailable") + task("kettle:drift:force_update") do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc('(stub) kettle:drift is unavailable') - task('kettle:drift' => 'kettle:drift:update') + desc("(stub) kettle:drift is unavailable") + task("kettle:drift" => "kettle:drift:update") end ### TEMPLATING TASKS diff --git a/gems/typescript-merge/gemfiles/modular/templating.gemfile b/gems/typescript-merge/gemfiles/modular/templating.gemfile index a672de184..47138ffbb 100644 --- a/gems/typescript-merge/gemfiles/modular/templating.gemfile +++ b/gems/typescript-merge/gemfiles/modular/templating.gemfile @@ -1,18 +1,18 @@ # frozen_string_literal: true -structuredmerge_remote = ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false').zero? -kettle_remote = ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? +structuredmerge_remote = ENV.fetch("STRUCTUREDMERGE_DEV", "false").casecmp("false").zero? +kettle_remote = ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false").zero? if structuredmerge_remote # Parser dependencies for released installs. - gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' + gem "tree_sitter_language_pack", "~> 1.13", ">= 1.13.3" # Merge recipes for released installs. - gem 'kettle-jem', '>= 7.0' + gem "kettle-jem", ">= 7.0" end if kettle_remote # Template/plugin checks for released installs. - gem 'kettle-drift', '~> 1.0', '>= 1.0.6', require: false + gem "kettle-drift", "~> 1.0", ">= 1.0.6", require: false end # Set STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local development with path-based dependencies. @@ -21,4 +21,4 @@ end # # Set KETTLE_DEV_DEV=/path/to/my for local development with Kettle plugin gems. # When false (default / CI), released Kettle plugin gems are used. -eval_gemfile 'templating_local.gemfile' unless structuredmerge_remote && kettle_remote +eval_gemfile "templating_local.gemfile" unless structuredmerge_remote && kettle_remote diff --git a/gems/typescript-merge/gemfiles/modular/templating_local.gemfile b/gems/typescript-merge/gemfiles/modular/templating_local.gemfile index 997ea7d01..b089677ff 100644 --- a/gems/typescript-merge/gemfiles/modular/templating_local.gemfile +++ b/gems/typescript-merge/gemfiles/modular/templating_local.gemfile @@ -12,19 +12,21 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] -nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) +nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] +nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == "nomono" } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + if nomono_locked + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] + end end -Kernel.send(:gem, 'nomono', *nomono_activation_requirements) -require 'nomono/bundler' +Kernel.send(:gem, "nomono", *nomono_activation_requirements) +require "nomono/bundler" structuredmerge_local_gems = %w[ tree_haver @@ -67,25 +69,25 @@ structuredmerge_local_gems_to_eval = structuredmerge_local_gems - %w[typescript- kettle_dev_local_gems_to_eval = kettle_dev_local_gems - %w[typescript-merge] - declared_gems platform :mri do - if ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false') != 0 + if ENV.fetch("STRUCTUREDMERGE_DEV", "false").casecmp("false") != 0 eval_nomono_gems( gems: structuredmerge_local_gems_to_eval, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - vendored_gems_env: 'VENDORED_GEMS', - vendor_gem_dir_env: 'VENDOR_GEM_DIR', - debug_env: 'STRUCTUREDMERGE_DEBUG' + prefix: "STRUCTUREDMERGE", + path_env: "STRUCTUREDMERGE_DEV", + vendored_gems_env: "VENDORED_GEMS", + vendor_gem_dir_env: "VENDOR_GEM_DIR", + debug_env: "STRUCTUREDMERGE_DEBUG" ) end - if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false') != 0 + if ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false") != 0 eval_nomono_gems( gems: kettle_dev_local_gems_to_eval, - prefix: 'KETTLE_DEV', - path_env: 'KETTLE_DEV_DEV', - vendored_gems_env: 'VENDORED_GEMS', - vendor_gem_dir_env: 'VENDOR_GEM_DIR', - debug_env: 'KETTLE_DEV_DEBUG' + prefix: "KETTLE_DEV", + path_env: "KETTLE_DEV_DEV", + vendored_gems_env: "VENDORED_GEMS", + vendor_gem_dir_env: "VENDOR_GEM_DIR", + debug_env: "KETTLE_DEV_DEBUG" ) end end diff --git a/gems/typescript-merge/lib/typescript/merge/version.rb b/gems/typescript-merge/lib/typescript/merge/version.rb index 770779ac0..954f44d95 100644 --- a/gems/typescript-merge/lib/typescript/merge/version.rb +++ b/gems/typescript-merge/lib/typescript/merge/version.rb @@ -3,7 +3,7 @@ module TypeScript module Merge module Version - VERSION = '7.1.0' + VERSION = "7.1.0" end VERSION = Version::VERSION # Traditional Constant Location end diff --git a/gems/yaml-merge/Gemfile.lock b/gems/yaml-merge/Gemfile.lock index d4d898ad7..c5073301d 100644 --- a/gems/yaml-merge/Gemfile.lock +++ b/gems/yaml-merge/Gemfile.lock @@ -7,7 +7,39 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/ast-merge + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly + specs: + ast-crispr-markdown-markly (7.1.0) + ast-crispr (= 7.1.0) + markly-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism + specs: + ast-crispr-ruby-prism (7.1.0) + ast-crispr (= 7.1.0) + prism-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr + specs: + ast-crispr (7.1.0) + ast-merge (= 7.1.0) + service_actor (~> 3.9) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git + specs: + ast-merge-git (7.1.0) + ast-merge (= 7.1.0) + json-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge specs: ast-merge (7.1.0) benchmark @@ -16,7 +48,202 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/tree_haver + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template + specs: + ast-template (7.1.0) + ast-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge + specs: + bash-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge + specs: + binary-merge (7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge + specs: + citrus-toml-merge (7.1.0) + toml-merge (= 7.1.0) + toml-rb (~> 4.1) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge + specs: + commonmarker-merge (7.1.0) + commonmarker (~> 2.2) + markdown-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge + specs: + dotenv-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge + specs: + go-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge + specs: + json-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem + specs: + kettle-jem (7.1.0) + addressable (>= 2.8, < 3) + ast-crispr-markdown-markly (= 7.1.0) + ast-crispr-ruby-prism (= 7.1.0) + ast-merge (= 7.1.0) + bash-merge (= 7.1.0) + citrus-toml-merge (= 7.1.0) + commonmarker-merge (= 7.1.0) + dotenv-merge (= 7.1.0) + json-merge (= 7.1.0) + kettle-dev (~> 2.3, >= 2.3.5) + kettle-rb (~> 0.1, >= 0.1.4) + kramdown-merge (= 7.1.0) + markdown-merge (= 7.1.0) + markly-merge (= 7.1.0) + prism-merge (= 7.1.0) + psych-merge (= 7.1.0) + rbs (>= 3.10) + rbs-merge (= 7.1.0) + ruby-merge (= 7.1.0) + token-resolver (~> 2.0, >= 2.0.4) + toml-merge (= 7.1.0) + toml-rb (~> 4.2) + tree_haver (= 7.1.0) + yaml-merge (= 7.1.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge + specs: + kramdown-merge (7.1.0) + kramdown (~> 2.5) + markdown-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge + specs: + markdown-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge + specs: + markly-merge (7.1.0) + markdown-merge (= 7.1.0) + markly (~> 0.9) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge + specs: + parslet-toml-merge (7.1.0) + toml (~> 0.3) + toml-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge + specs: + plain-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge + specs: + prism-merge (7.1.0) + prism (~> 1.6) + ruby-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge + specs: + psych-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + yaml-merge (= 7.1.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge + specs: + rbs-merge (7.1.0) + ast-merge (= 7.1.0) + rbs (>= 3.10) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge + specs: + ruby-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge + specs: + rust-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb + specs: + smorg-rb (7.1.0) + ast-merge (= 7.1.0) + ast-merge-git (= 7.1.0) + diff-lcs (~> 1.5) + go-merge (= 7.1.0) + json-merge (= 7.1.0) + kettle-jem (= 7.1.0) + markly-merge (= 7.1.0) + plain-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge + specs: + toml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver specs: tree_haver (7.1.0) citrus (~> 3.0) @@ -24,6 +251,21 @@ PATH tree_sitter_language_pack (>= 1.13.2, < 2.0) version_gem (~> 1.1, >= 1.1.9) +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge + specs: + typescript-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge + specs: + zip-merge (7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + GEM remote: https://gem.coop/ specs: @@ -48,6 +290,11 @@ GEM cgi (0.5.2) citrus (3.0.2) cmdparse (3.0.7) + commonmarker (2.9.0-aarch64-linux) + commonmarker (2.9.0-aarch64-linux-musl) + commonmarker (2.9.0-arm64-darwin) + commonmarker (2.9.0-x86_64-linux) + commonmarker (2.9.0-x86_64-linux-musl) concurrent-ruby (1.3.8) date (3.5.1) debug (1.11.1) @@ -110,6 +357,8 @@ GEM kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) + kettle-drift (1.0.6) + version_gem (~> 1.1, >= 1.1.14) kettle-rb (0.1.5) kettle-soup-cover (3.0.4) kettle-wash (~> 0.1, >= 0.1.0) @@ -138,6 +387,7 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) + markly (0.16.0) mutex_m (0.3.0) nokogiri (1.19.4-aarch64-linux-gnu) racc (~> 1.4) @@ -300,6 +550,8 @@ GEM ruby-progressbar (1.13.0) ruby_engine (2.0.3) ruby_version (1.0.3) + service_actor (3.9.4) + zeitwerk (>= 1.0) silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) @@ -354,6 +606,11 @@ GEM token-resolver (2.0.5) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.14) + toml (0.3.0) + parslet (>= 1.8.0, < 3.0.0) + toml-rb (4.2.0) + citrus (~> 3.0, > 3.0) + racc (~> 1.7) tree_sitter_language_pack (1.13.3-aarch64-linux) sorbet-runtime (~> 0.5) tree_sitter_language_pack (1.13.3-arm64-darwin) @@ -408,24 +665,46 @@ DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) appraisal2-rubocop (~> 1.0, >= 1.0.0) + ast-crispr! + ast-crispr-markdown-markly! + ast-crispr-ruby-prism! ast-merge! + ast-merge-git! + ast-template! + bash-merge! benchmark (~> 0.5, >= 0.5.0) + binary-merge! bundler-audit (~> 0.9.3) cgi (~> 0.5) + citrus-toml-merge! + commonmarker-merge! debug (>= 1.1) + dotenv-merge! erb (~> 6.0, >= 6.0.6) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.0) + go-merge! irb (~> 1.17) + json-merge! kettle-dev (~> 2.0, >= 2.2.25) + kettle-drift (~> 1.0, >= 1.0.6) + kettle-jem! kettle-soup-cover (~> 3.0, >= 3.0.3) kettle-test (~> 2.0, >= 2.0.9) kramdown (~> 2.5, >= 2.5.2) + kramdown-merge! kramdown-parser-gfm (~> 1.1) + markdown-merge! + markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) + parslet-toml-merge! + plain-merge! + prism-merge! + psych-merge! rake (~> 13.0) rbs (>= 3.0) + rbs-merge! rdoc (~> 6.11) reek (~> 6.5, >= 6.5.0) require_bench (~> 1.0, >= 1.0.4) @@ -436,12 +715,17 @@ DEPENDENCIES rubocop-on-rbs (~> 2.0, >= 2.0.0) rubocop-packaging (~> 0.6, >= 0.6.0) rubocop-ruby3_2 (~> 3.0, >= 3.0.6) + ruby-merge! ruby-progressbar (~> 1.13) + rust-merge! + smorg-rb! standard (~> 1.56, >= 1.56.0) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) + toml-merge! tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) + typescript-merge! webrick (~> 1.9) yaml-converter (~> 0.2, >= 0.2.3) yaml-merge! @@ -451,6 +735,7 @@ DEPENDENCIES yard-relative_markdown_links (~> 0.6) yard-timekeeper (~> 0.2, >= 0.2.4) yard-yaml (~> 0.2, >= 0.2.3) + zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af @@ -458,20 +743,35 @@ CHECKSUMS appraisal2 (3.2.0) sha256=ccd0b767ac4060cd7af6d16747459b6990f49c39c7b4fb1f7d1146b1e97c492f appraisal2-rubocop (1.0.0) sha256=b71410fbb014befda5340605a605b7f6f3f012739baf0acc5b4351b592c3258d ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 + ast-crispr (7.1.0) + ast-crispr-markdown-markly (7.1.0) + ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) + ast-merge-git (7.1.0) + ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 + bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd + binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 + citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 + commonmarker (2.9.0-aarch64-linux) sha256=e2b4aadb9a2cfa4e206582641ce3a49465549ac1ed4c289fdd63b78d8f24579c + commonmarker (2.9.0-aarch64-linux-musl) sha256=1cf4d2821f2a7e64945f1ed7c4eeced586fdb27ea7fe7337788802cf8f57cfca + commonmarker (2.9.0-arm64-darwin) sha256=1748dbfa4f5813b0d2a14bb4bbfa65a4ec293aa1c825016d60029ee0e132b046 + commonmarker (2.9.0-x86_64-linux) sha256=8cfe92970eef585a19ddf6613224b91cab64d6029834661bda801f877c9c7f43 + commonmarker (2.9.0-x86_64-linux-musl) sha256=293921398b839f79ceaf55010e061357e34f053822c3b003cd0be6686176335e + commonmarker-merge (7.1.0) concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 + dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -484,20 +784,28 @@ CHECKSUMS gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f + go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 + json-merge (7.1.0) kettle-dev (2.3.9) + kettle-drift (1.0.6) sha256=46eda08fa4411d1f3c6682a95eef1c9df4e94611b3949f49d4c7b43c0ed356a3 + kettle-jem (7.1.0) kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f kettle-soup-cover (3.0.4) kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa + kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 + markdown-merge (7.1.0) + markly (0.16.0) sha256=6f70d79e385b1efc9e171f74c81628826259039fe6c778e03c3924c71dac5511 + markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-aarch64-linux-gnu) sha256=1269fb644a6de405057a53dd5c762b1209b43ca7424f839454d3dbc677c31a8f nokogiri (1.19.4-aarch64-linux-musl) sha256=35c65b9ce72b3bb03207bdbe7067915019dc18c1b9b59139684bd6690fdd01af @@ -511,15 +819,20 @@ CHECKSUMS parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 + parslet-toml-merge (7.1.0) + plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 + prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 + psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 + rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb @@ -554,15 +867,19 @@ CHECKSUMS rubocop-rspec_rails (2.32.0) sha256=4a0d641c72f6ebb957534f539d9d0a62c47abd8ce0d0aeee1ef4701e892a9100 rubocop-ruby3_2 (3.0.7) sha256=f53dd6d286fb05186214fc6ec116783e7f837030918e8931c05de773e98f8466 rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 + ruby-merge (7.1.0) ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 + rust-merge (7.1.0) + service_actor (3.9.4) sha256=e63b523630b9a7e62959b2a90113b08d2565b5de9c148557b281ef847c9539ce silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed + smorg-rb (7.1.0) sorbet-runtime (0.6.13351) sha256=f8fee17c6e3edf835dc6823d26afb9a7c8969c6710d1fabe2fb43f4e0c15c64f standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b @@ -577,12 +894,16 @@ CHECKSUMS timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.5) sha256=b852f924287ffb58a440856e862b056c8ad97e74b4b2526cee43e0771f40c25c + toml (0.3.0) sha256=0a91d0f76a9036e84e44f95693b12f58d358c1df3ac8e3b5271f2056ecc6e4b9 + toml-merge (7.1.0) + toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-aarch64-linux) sha256=55ffc7c87868cb45658338363d9eba51b4a8b0259aa88e4de368d2bd1d52fea4 tree_sitter_language_pack (1.13.3-arm64-darwin) sha256=bc2498db605f212a1dbd2465ed3f65190d7da786f6ed5d30fcf958121aeb4a5c tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 + typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 @@ -596,6 +917,7 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 + zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH From a57dcd0573dfaf5a0fd3c5ba7941c2670c608917 Mon Sep 17 00:00:00 2001 From: "Peter H. Boling" Date: Tue, 21 Jul 2026 18:04:18 -0600 Subject: [PATCH 164/188] =?UTF-8?q?=F0=9F=8E=A8=20Template=20bootstrap=20b?= =?UTF-8?q?y=20kettle-jem=20v7.1.0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gems/go-merge/.rubocop_gradual.lock | 116 +++++++ gems/go-merge/Gemfile.lock | 8 +- .../gemfiles/modular/erb/r2/v3.0.gemfile | 2 +- .../gemfiles/modular/erb/r3/v5.0.gemfile | 2 +- .../gemfiles/modular/erb/r4/v5.0.gemfile | 2 +- .../gemfiles/modular/erb/vHEAD.gemfile | 2 +- .../modular/json/truffleruby_22_3.gemfile | 4 +- .../modular/json/truffleruby_23_0.gemfile | 4 +- .../modular/json/truffleruby_23_1.gemfile | 4 +- .../gemfiles/modular/mutex_m/r2/v0.3.gemfile | 2 +- .../gemfiles/modular/mutex_m/r3/v0.3.gemfile | 2 +- .../gemfiles/modular/mutex_m/r4/v0.3.gemfile | 2 +- .../gemfiles/modular/mutex_m/vHEAD.gemfile | 2 +- .../gemfiles/modular/optional.gemfile | 4 +- gems/go-merge/gemfiles/modular/rspec.gemfile | 8 +- .../gemfiles/modular/runtime_heads.gemfile | 2 +- .../gemfiles/modular/stringio/r2/v3.0.gemfile | 2 +- .../gemfiles/modular/stringio/r3/v3.0.gemfile | 2 +- .../gemfiles/modular/stringio/r4/v3.0.gemfile | 2 +- .../gemfiles/modular/stringio/vHEAD.gemfile | 2 +- gems/go-merge/gemfiles/modular/style.gemfile | 24 +- .../gemfiles/modular/style_local.gemfile | 32 +- .../gemfiles/modular/templating.gemfile | 12 +- .../gemfiles/modular/templating_local.gemfile | 44 ++- .../gemfiles/modular/webrick/r4/v1.9.gemfile | 2 +- .../gemfiles/modular/webrick/vHEAD.gemfile | 2 +- .../gemfiles/modular/x_std_libs.gemfile | 14 +- .../modular/x_std_libs/r2/libs.gemfile | 6 +- .../modular/x_std_libs/r3/libs.gemfile | 6 +- .../modular/x_std_libs/r4/libs.gemfile | 12 +- .../gemfiles/modular/x_std_libs/vHEAD.gemfile | 12 +- gems/go-merge/lib/go/merge/version.rb | 2 +- gems/go-merge/spec/spec_helper.rb | 10 +- gems/rust-merge/Gemfile.lock | 314 ----------------- gems/rust-merge/README.md | 1 - gems/rust-merge/bin/yard | 2 +- gems/toml-merge/Gemfile.lock | 326 +++++++++++++++++- 37 files changed, 557 insertions(+), 438 deletions(-) create mode 100644 gems/go-merge/.rubocop_gradual.lock diff --git a/gems/go-merge/.rubocop_gradual.lock b/gems/go-merge/.rubocop_gradual.lock new file mode 100644 index 000000000..821942cf3 --- /dev/null +++ b/gems/go-merge/.rubocop_gradual.lock @@ -0,0 +1,116 @@ +{ + ".simplecov:495473973": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "Rakefile:522749197": [ + [18, 121, 17, "Layout/LineLength: Line is too long. [137/120]", 174264873], + [79, 3, 1023, "Metrics/BlockLength: Block has too many lines. [32/25]", 54868638], + [163, 121, 22, "Layout/LineLength: Line is too long. [142/120]", 1367093088], + [166, 121, 18, "Layout/LineLength: Line is too long. [138/120]", 3881946477] + ], + "gemfiles/modular/benchmark/r4/v0.5.gemfile:3644720371": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/benchmark/vHEAD.gemfile:2838879269": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/cgi/r4/v0.5.gemfile:367169322": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/cgi/vHEAD.gemfile:2729540777": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/erb/r2/v3.0.gemfile:1688285565": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/erb/r3/v5.0.gemfile:2394062339": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/erb/r4/v5.0.gemfile:2394062339": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/erb/vHEAD.gemfile:981929959": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/mutex_m/r2/v0.3.gemfile:4055275004": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/mutex_m/r3/v0.3.gemfile:4055275004": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/mutex_m/r4/v0.3.gemfile:4055275004": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/mutex_m/vHEAD.gemfile:556854763": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/rspec.gemfile:2263543889": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/stringio/r2/v3.0.gemfile:821604304": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/stringio/r3/v3.0.gemfile:821604304": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/stringio/r4/v3.0.gemfile:821604304": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/stringio/vHEAD.gemfile:1045839691": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/webrick/r4/v1.9.gemfile:3092661193": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/webrick/vHEAD.gemfile:3867684682": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/x_std_libs.gemfile:2324400122": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/x_std_libs/r2/libs.gemfile:36276542": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] + ], + "gemfiles/modular/x_std_libs/r3/libs.gemfile:4030570297": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] + ], + "gemfiles/modular/x_std_libs/r4/libs.gemfile:732451732": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] + ], + "gemfiles/modular/x_std_libs/vHEAD.gemfile:2390363993": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] + ], + "go-merge.gemspec:3413698974": [ + [128, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 2821357214], + [143, 121, 50, "Layout/LineLength: Line is too long. [170/120]", 3888612416], + [144, 121, 29, "Layout/LineLength: Line is too long. [149/120]", 981994949], + [151, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 4229808912] + ], + "lib/go-merge.rb:1938991181": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`go-merge.rb`) should use snake_case.", 5381] + ], + "lib/go/merge.rb:1429248778": [ + [10, 3, 12, "Style/Documentation: Missing top-level documentation comment for `module Go::Merge`.", 2866359175], + [10, 3, 8162, "Metrics/ModuleLength: Module has too many lines. [191/100]", 1602270489], + [11, 5, 11, "Style/ModuleFunction: Use `module_function` instead of `extend self`.", 1210897631], + [74, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 1491828652], + [102, 5, 1399, "Metrics/AbcSize: Assignment Branch Condition size for `merge_go` is too high. [<13, 32, 11> 36.25/17]", 3471957286], + [102, 5, 1399, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `merge_go` is too high. [11/7]", 3471957286], + [102, 5, 1399, "Metrics/MethodLength: Method has too many lines. [22/10]", 3471957286], + [102, 5, 1399, "Metrics/PerceivedComplexity: Perceived complexity for `merge_go` is too high. [11/8]", 3471957286], + [121, 34, 7, "Style/MultilineBlockChain: Avoid multi-line chains of blocks.", 4045560504], + [129, 5, 1447, "Metrics/AbcSize: Assignment Branch Condition size for `analyze_go_module` is too high. [<8, 19, 5> 21.21/17]", 1720548769], + [129, 5, 1447, "Metrics/MethodLength: Method has too many lines. [40/10]", 1720548769] + ], + "spec/fixtures_integration_spec.rb:341155994": [ + [3, 1, 5172, "Metrics/BlockLength: Block has too many lines. [76/25]", 420437002], + [8, 3, 4420, "Metrics/BlockLength: Block has too many lines. [61/25]", 566085077] + ] +} diff --git a/gems/go-merge/Gemfile.lock b/gems/go-merge/Gemfile.lock index 55e7f5d7a..855f56e22 100644 --- a/gems/go-merge/Gemfile.lock +++ b/gems/go-merge/Gemfile.lock @@ -7,7 +7,7 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/ast-merge specs: ast-merge (7.1.0) benchmark @@ -16,7 +16,7 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/tree_haver specs: tree_haver (7.1.0) citrus (~> 3.0) @@ -105,7 +105,7 @@ GEM rdoc (>= 4.0.0) reline (>= 0.4.2) json (2.21.1) - kettle-dev (2.3.8) + kettle-dev (2.3.9) emoji_regex (>= 15.0) kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) @@ -489,7 +489,7 @@ CHECKSUMS io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 - kettle-dev (2.3.8) sha256=9d716ff21c660a730cb4e8d41e2e2f0630a28167a354b6e2924e242102aef72c + kettle-dev (2.3.9) kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f kettle-soup-cover (3.0.4) kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 diff --git a/gems/go-merge/gemfiles/modular/erb/r2/v3.0.gemfile b/gems/go-merge/gemfiles/modular/erb/r2/v3.0.gemfile index c03bd8d85..7c83a239b 100644 --- a/gems/go-merge/gemfiles/modular/erb/r2/v3.0.gemfile +++ b/gems/go-merge/gemfiles/modular/erb/r2/v3.0.gemfile @@ -1 +1 @@ -gem "erb", "~> 3.0" # ruby >= 2.7.0 +gem 'erb', '~> 3.0' # ruby >= 2.7.0 diff --git a/gems/go-merge/gemfiles/modular/erb/r3/v5.0.gemfile b/gems/go-merge/gemfiles/modular/erb/r3/v5.0.gemfile index 1bd029cc1..ec7ff451f 100644 --- a/gems/go-merge/gemfiles/modular/erb/r3/v5.0.gemfile +++ b/gems/go-merge/gemfiles/modular/erb/r3/v5.0.gemfile @@ -1 +1 @@ -gem "erb", "~> 6.0", ">= 6.0.6" # ruby >= 3.2.0 +gem 'erb', '~> 6.0', '>= 6.0.6' # ruby >= 3.2.0 diff --git a/gems/go-merge/gemfiles/modular/erb/r4/v5.0.gemfile b/gems/go-merge/gemfiles/modular/erb/r4/v5.0.gemfile index 1bd029cc1..ec7ff451f 100644 --- a/gems/go-merge/gemfiles/modular/erb/r4/v5.0.gemfile +++ b/gems/go-merge/gemfiles/modular/erb/r4/v5.0.gemfile @@ -1 +1 @@ -gem "erb", "~> 6.0", ">= 6.0.6" # ruby >= 3.2.0 +gem 'erb', '~> 6.0', '>= 6.0.6' # ruby >= 3.2.0 diff --git a/gems/go-merge/gemfiles/modular/erb/vHEAD.gemfile b/gems/go-merge/gemfiles/modular/erb/vHEAD.gemfile index 48fee4218..ea0101185 100644 --- a/gems/go-merge/gemfiles/modular/erb/vHEAD.gemfile +++ b/gems/go-merge/gemfiles/modular/erb/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 3.2 -gem "erb", github: "ruby/erb", branch: "master" +gem 'erb', github: 'ruby/erb', branch: 'master' diff --git a/gems/go-merge/gemfiles/modular/json/truffleruby_22_3.gemfile b/gems/go-merge/gemfiles/modular/json/truffleruby_22_3.gemfile index b0e69ab11..9b2f8d96a 100644 --- a/gems/go-merge/gemfiles/modular/json/truffleruby_22_3.gemfile +++ b/gems/go-merge/gemfiles/modular/json/truffleruby_22_3.gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -if RUBY_ENGINE == "truffleruby" && RUBY_ENGINE_VERSION.start_with?("22.3") +if RUBY_ENGINE == 'truffleruby' && RUBY_ENGINE_VERSION.start_with?('22.3') # TruffleRuby 22.3 ships the json default gem from its emulated MRI Ruby. - gem "json", "= 2.5.1" + gem 'json', '= 2.5.1' end diff --git a/gems/go-merge/gemfiles/modular/json/truffleruby_23_0.gemfile b/gems/go-merge/gemfiles/modular/json/truffleruby_23_0.gemfile index 7b2660a2b..d787a5ef4 100644 --- a/gems/go-merge/gemfiles/modular/json/truffleruby_23_0.gemfile +++ b/gems/go-merge/gemfiles/modular/json/truffleruby_23_0.gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -if RUBY_ENGINE == "truffleruby" && RUBY_ENGINE_VERSION.start_with?("23.0") +if RUBY_ENGINE == 'truffleruby' && RUBY_ENGINE_VERSION.start_with?('23.0') # TruffleRuby 23.0 ships the json default gem from its emulated MRI Ruby. - gem "json", "= 2.6.1" + gem 'json', '= 2.6.1' end diff --git a/gems/go-merge/gemfiles/modular/json/truffleruby_23_1.gemfile b/gems/go-merge/gemfiles/modular/json/truffleruby_23_1.gemfile index dfa21f2e4..d78486b0e 100644 --- a/gems/go-merge/gemfiles/modular/json/truffleruby_23_1.gemfile +++ b/gems/go-merge/gemfiles/modular/json/truffleruby_23_1.gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -if RUBY_ENGINE == "truffleruby" && RUBY_ENGINE_VERSION.start_with?("23.1") +if RUBY_ENGINE == 'truffleruby' && RUBY_ENGINE_VERSION.start_with?('23.1') # TruffleRuby 23.1 ships the json default gem from its emulated MRI Ruby. - gem "json", "= 2.6.3" + gem 'json', '= 2.6.3' end diff --git a/gems/go-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile b/gems/go-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile index 42e9d9bd4..e27f1bbae 100644 --- a/gems/go-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile +++ b/gems/go-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 -gem "mutex_m", "~> 0.2" +gem 'mutex_m', '~> 0.2' diff --git a/gems/go-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile b/gems/go-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile index 42e9d9bd4..e27f1bbae 100644 --- a/gems/go-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile +++ b/gems/go-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 -gem "mutex_m", "~> 0.2" +gem 'mutex_m', '~> 0.2' diff --git a/gems/go-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile b/gems/go-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile index 42e9d9bd4..e27f1bbae 100644 --- a/gems/go-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile +++ b/gems/go-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 -gem "mutex_m", "~> 0.2" +gem 'mutex_m', '~> 0.2' diff --git a/gems/go-merge/gemfiles/modular/mutex_m/vHEAD.gemfile b/gems/go-merge/gemfiles/modular/mutex_m/vHEAD.gemfile index 8af3b6fca..9dac2f6cb 100644 --- a/gems/go-merge/gemfiles/modular/mutex_m/vHEAD.gemfile +++ b/gems/go-merge/gemfiles/modular/mutex_m/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 (dependency of omniauth) -gem "mutex_m", github: "ruby/mutex_m", branch: "master" +gem 'mutex_m', github: 'ruby/mutex_m', branch: 'master' diff --git a/gems/go-merge/gemfiles/modular/optional.gemfile b/gems/go-merge/gemfiles/modular/optional.gemfile index 80bc45196..9ea429538 100644 --- a/gems/go-merge/gemfiles/modular/optional.gemfile +++ b/gems/go-merge/gemfiles/modular/optional.gemfile @@ -9,8 +9,8 @@ # Optional dependencies are not depended on directly, but may be used if present. # Required for curated binstubs generated by kettle-jem install -gem "rbs", ">= 3.0", require: false # ruby >= 3.1 +gem 'rbs', '>= 3.0', require: false # ruby >= 3.1 # Required for kettle-pre-release # URL parsing with Unicode support (falls back to URI if not available) -gem "addressable", ">= 2.8", "< 3" # ruby >= 2.2 +gem 'addressable', '>= 2.8', '< 3' # ruby >= 2.2 diff --git a/gems/go-merge/gemfiles/modular/rspec.gemfile b/gems/go-merge/gemfiles/modular/rspec.gemfile index 72fdf8b7f..2af210a41 100644 --- a/gems/go-merge/gemfiles/modular/rspec.gemfile +++ b/gems/go-merge/gemfiles/modular/rspec.gemfile @@ -1,4 +1,4 @@ -gem "rspec_junit_formatter", - github: "pboling/rspec_junit_formatter", - branch: "main", - ref: "9e6bcaaedd49477b62878ed568dc4ada5cc7cb5e" +gem 'rspec_junit_formatter', + github: 'pboling/rspec_junit_formatter', + branch: 'main', + ref: '9e6bcaaedd49477b62878ed568dc4ada5cc7cb5e' diff --git a/gems/go-merge/gemfiles/modular/runtime_heads.gemfile b/gems/go-merge/gemfiles/modular/runtime_heads.gemfile index 02f134c7f..ebf17c529 100644 --- a/gems/go-merge/gemfiles/modular/runtime_heads.gemfile +++ b/gems/go-merge/gemfiles/modular/runtime_heads.gemfile @@ -8,4 +8,4 @@ # Test against HEAD of runtime dependencies so we can proactively file bugs -eval_gemfile("x_std_libs/vHEAD.gemfile") +eval_gemfile('x_std_libs/vHEAD.gemfile') diff --git a/gems/go-merge/gemfiles/modular/stringio/r2/v3.0.gemfile b/gems/go-merge/gemfiles/modular/stringio/r2/v3.0.gemfile index e85bb18ee..3616f4e3a 100644 --- a/gems/go-merge/gemfiles/modular/stringio/r2/v3.0.gemfile +++ b/gems/go-merge/gemfiles/modular/stringio/r2/v3.0.gemfile @@ -2,4 +2,4 @@ # NOT SEMVER # Version 3.0.7 dropped support for Ruby <= 2.7 # Version 3.0.0 dropped support for Ruby <= 2.4 -gem "stringio", ">= 3.0" +gem 'stringio', '>= 3.0' diff --git a/gems/go-merge/gemfiles/modular/stringio/r3/v3.0.gemfile b/gems/go-merge/gemfiles/modular/stringio/r3/v3.0.gemfile index e85bb18ee..3616f4e3a 100644 --- a/gems/go-merge/gemfiles/modular/stringio/r3/v3.0.gemfile +++ b/gems/go-merge/gemfiles/modular/stringio/r3/v3.0.gemfile @@ -2,4 +2,4 @@ # NOT SEMVER # Version 3.0.7 dropped support for Ruby <= 2.7 # Version 3.0.0 dropped support for Ruby <= 2.4 -gem "stringio", ">= 3.0" +gem 'stringio', '>= 3.0' diff --git a/gems/go-merge/gemfiles/modular/stringio/r4/v3.0.gemfile b/gems/go-merge/gemfiles/modular/stringio/r4/v3.0.gemfile index e85bb18ee..3616f4e3a 100644 --- a/gems/go-merge/gemfiles/modular/stringio/r4/v3.0.gemfile +++ b/gems/go-merge/gemfiles/modular/stringio/r4/v3.0.gemfile @@ -2,4 +2,4 @@ # NOT SEMVER # Version 3.0.7 dropped support for Ruby <= 2.7 # Version 3.0.0 dropped support for Ruby <= 2.4 -gem "stringio", ">= 3.0" +gem 'stringio', '>= 3.0' diff --git a/gems/go-merge/gemfiles/modular/stringio/vHEAD.gemfile b/gems/go-merge/gemfiles/modular/stringio/vHEAD.gemfile index 5f2a74126..78f5f5d8a 100644 --- a/gems/go-merge/gemfiles/modular/stringio/vHEAD.gemfile +++ b/gems/go-merge/gemfiles/modular/stringio/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 (dependency of omniauth) -gem "stringio", github: "ruby/stringio", branch: "master" +gem 'stringio', github: 'ruby/stringio', branch: 'master' diff --git a/gems/go-merge/gemfiles/modular/style.gemfile b/gems/go-merge/gemfiles/modular/style.gemfile index 35de4dcd6..4dbcc02c0 100644 --- a/gems/go-merge/gemfiles/modular/style.gemfile +++ b/gems/go-merge/gemfiles/modular/style.gemfile @@ -9,23 +9,23 @@ # Style tasks run on the latest Ruby; RuboCop-LTS selects the compatibility # rules for the configured Ruby floor independently from task dependency floors. -gem "reek", "~> 6.5", ">= 6.5.0" +gem 'reek', '~> 6.5', '>= 6.5.0' platform :mri do - gem "appraisal2-rubocop", "~> 1.0", ">= 1.0.0", require: false - gem "rubocop-gradual", "~> 0.4", ">= 0.4.0" - gem "rubocop-minitest", "~> 0.40", ">= 0.40.0" - gem "rubocop-on-rbs", "~> 2.0", ">= 2.0.0" # ruby >= 3.2.0 + gem 'appraisal2-rubocop', '~> 1.0', '>= 1.0.0', require: false + gem 'rubocop-gradual', '~> 0.4', '>= 0.4.0' + gem 'rubocop-minitest', '~> 0.40', '>= 0.40.0' + gem 'rubocop-on-rbs', '~> 2.0', '>= 2.0.0' # ruby >= 3.2.0 # gem "rubocop", "~> 1.73", ">= 1.73.2" # constrained by standard - gem "rubocop-packaging", "~> 0.6", ">= 0.6.0" - gem "standard", "~> 1.56", ">= 1.56.0" + gem 'rubocop-packaging', '~> 0.6', '>= 0.6.0' + gem 'standard', '~> 1.56', '>= 1.56.0' - if ENV.fetch("RUBOCOP_LTS_LOCAL", "false").casecmp("false").zero? + if ENV.fetch('RUBOCOP_LTS_LOCAL', 'false').casecmp('false').zero? declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) - gem "rubocop-lts", "~> 24.2", ">= 24.2.1" unless declared_gems.include?("rubocop-lts") - gem "rubocop-lts-rspec", "~> 1.0", ">= 1.0.5" unless declared_gems.include?("rubocop-lts-rspec") - gem "rubocop-ruby3_2", "~> 3.0", ">= 3.0.6" unless declared_gems.include?("rubocop-ruby3_2") + gem 'rubocop-lts', '~> 24.2', '>= 24.2.1' unless declared_gems.include?('rubocop-lts') + gem 'rubocop-lts-rspec', '~> 1.0', '>= 1.0.5' unless declared_gems.include?('rubocop-lts-rspec') + gem 'rubocop-ruby3_2', '~> 3.0', '>= 3.0.6' unless declared_gems.include?('rubocop-ruby3_2') else - eval_gemfile("style_local.gemfile") + eval_gemfile('style_local.gemfile') end end diff --git a/gems/go-merge/gemfiles/modular/style_local.gemfile b/gems/go-merge/gemfiles/modular/style_local.gemfile index ab6deb722..254e52a24 100644 --- a/gems/go-merge/gemfiles/modular/style_local.gemfile +++ b/gems/go-merge/gemfiles/modular/style_local.gemfile @@ -14,21 +14,19 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] -nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) +nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] +nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == "nomono" } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - if nomono_locked - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] - end + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked end -Kernel.send(:gem, "nomono", *nomono_activation_requirements) -require "nomono/bundler" +Kernel.send(:gem, 'nomono', *nomono_activation_requirements) +require 'nomono/bundler' local_gems = %w[rubocop-lts rubocop-lts-rspec rubocop-ruby3_2 standard-rubocop-lts] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) @@ -38,11 +36,11 @@ local_gems_to_eval = local_gems - %w[go-merge] - declared_gems platform :mri do eval_nomono_gems( gems: local_gems_to_eval, - prefix: "RUBOCOP_LTS", - path_env: "RUBOCOP_LTS_LOCAL", - vendored_gems_env: "VENDORED_GEMS", - vendor_gem_dir_env: "VENDOR_GEM_DIR", - debug_env: "RUBOCOP_LTS_DEBUG", - root: ["src", "rubocop-lts"] + prefix: 'RUBOCOP_LTS', + path_env: 'RUBOCOP_LTS_LOCAL', + vendored_gems_env: 'VENDORED_GEMS', + vendor_gem_dir_env: 'VENDOR_GEM_DIR', + debug_env: 'RUBOCOP_LTS_DEBUG', + root: %w[src rubocop-lts] ) end diff --git a/gems/go-merge/gemfiles/modular/templating.gemfile b/gems/go-merge/gemfiles/modular/templating.gemfile index 47138ffbb..a672de184 100644 --- a/gems/go-merge/gemfiles/modular/templating.gemfile +++ b/gems/go-merge/gemfiles/modular/templating.gemfile @@ -1,18 +1,18 @@ # frozen_string_literal: true -structuredmerge_remote = ENV.fetch("STRUCTUREDMERGE_DEV", "false").casecmp("false").zero? -kettle_remote = ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false").zero? +structuredmerge_remote = ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false').zero? +kettle_remote = ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? if structuredmerge_remote # Parser dependencies for released installs. - gem "tree_sitter_language_pack", "~> 1.13", ">= 1.13.3" + gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' # Merge recipes for released installs. - gem "kettle-jem", ">= 7.0" + gem 'kettle-jem', '>= 7.0' end if kettle_remote # Template/plugin checks for released installs. - gem "kettle-drift", "~> 1.0", ">= 1.0.6", require: false + gem 'kettle-drift', '~> 1.0', '>= 1.0.6', require: false end # Set STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local development with path-based dependencies. @@ -21,4 +21,4 @@ end # # Set KETTLE_DEV_DEV=/path/to/my for local development with Kettle plugin gems. # When false (default / CI), released Kettle plugin gems are used. -eval_gemfile "templating_local.gemfile" unless structuredmerge_remote && kettle_remote +eval_gemfile 'templating_local.gemfile' unless structuredmerge_remote && kettle_remote diff --git a/gems/go-merge/gemfiles/modular/templating_local.gemfile b/gems/go-merge/gemfiles/modular/templating_local.gemfile index c68dc2710..d365caff2 100644 --- a/gems/go-merge/gemfiles/modular/templating_local.gemfile +++ b/gems/go-merge/gemfiles/modular/templating_local.gemfile @@ -12,21 +12,19 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] -nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) +nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] +nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == "nomono" } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - if nomono_locked - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] - end + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked end -Kernel.send(:gem, "nomono", *nomono_activation_requirements) -require "nomono/bundler" +Kernel.send(:gem, 'nomono', *nomono_activation_requirements) +require 'nomono/bundler' structuredmerge_local_gems = %w[ tree_haver @@ -69,25 +67,25 @@ structuredmerge_local_gems_to_eval = structuredmerge_local_gems - %w[go-merge] - kettle_dev_local_gems_to_eval = kettle_dev_local_gems - %w[go-merge] - declared_gems platform :mri do - if ENV.fetch("STRUCTUREDMERGE_DEV", "false").casecmp("false") != 0 + if ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false') != 0 eval_nomono_gems( gems: structuredmerge_local_gems_to_eval, - prefix: "STRUCTUREDMERGE", - path_env: "STRUCTUREDMERGE_DEV", - vendored_gems_env: "VENDORED_GEMS", - vendor_gem_dir_env: "VENDOR_GEM_DIR", - debug_env: "STRUCTUREDMERGE_DEBUG" + prefix: 'STRUCTUREDMERGE', + path_env: 'STRUCTUREDMERGE_DEV', + vendored_gems_env: 'VENDORED_GEMS', + vendor_gem_dir_env: 'VENDOR_GEM_DIR', + debug_env: 'STRUCTUREDMERGE_DEBUG' ) end - if ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false") != 0 + if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false') != 0 eval_nomono_gems( gems: kettle_dev_local_gems_to_eval, - prefix: "KETTLE_DEV", - path_env: "KETTLE_DEV_DEV", - vendored_gems_env: "VENDORED_GEMS", - vendor_gem_dir_env: "VENDOR_GEM_DIR", - debug_env: "KETTLE_DEV_DEBUG" + prefix: 'KETTLE_DEV', + path_env: 'KETTLE_DEV_DEV', + vendored_gems_env: 'VENDORED_GEMS', + vendor_gem_dir_env: 'VENDOR_GEM_DIR', + debug_env: 'KETTLE_DEV_DEBUG' ) end end diff --git a/gems/go-merge/gemfiles/modular/webrick/r4/v1.9.gemfile b/gems/go-merge/gemfiles/modular/webrick/r4/v1.9.gemfile index eaab4a473..b1329ba84 100644 --- a/gems/go-merge/gemfiles/modular/webrick/r4/v1.9.gemfile +++ b/gems/go-merge/gemfiles/modular/webrick/r4/v1.9.gemfile @@ -1 +1 @@ -gem "webrick", "~> 1.9" +gem 'webrick', '~> 1.9' diff --git a/gems/go-merge/gemfiles/modular/webrick/vHEAD.gemfile b/gems/go-merge/gemfiles/modular/webrick/vHEAD.gemfile index 8a789b634..c7e6f81a1 100644 --- a/gems/go-merge/gemfiles/modular/webrick/vHEAD.gemfile +++ b/gems/go-merge/gemfiles/modular/webrick/vHEAD.gemfile @@ -1 +1 @@ -gem "webrick", ">= 1.9" +gem 'webrick', '>= 1.9' diff --git a/gems/go-merge/gemfiles/modular/x_std_libs.gemfile b/gems/go-merge/gemfiles/modular/x_std_libs.gemfile index 77aad43f2..b1f43c097 100644 --- a/gems/go-merge/gemfiles/modular/x_std_libs.gemfile +++ b/gems/go-merge/gemfiles/modular/x_std_libs.gemfile @@ -1,12 +1,12 @@ ### Std Lib Extracted Gems ruby_version = Gem::Version.new(RUBY_VERSION) -if ruby_version >= Gem::Version.new("4.0") - eval_gemfile "x_std_libs/r4/libs.gemfile" -elsif ruby_version >= Gem::Version.new("3.2") - eval_gemfile "x_std_libs/r3/libs.gemfile" -elsif ruby_version >= Gem::Version.new("3.1") - eval_gemfile "x_std_libs/r3.1/libs.gemfile" +if ruby_version >= Gem::Version.new('4.0') + eval_gemfile 'x_std_libs/r4/libs.gemfile' +elsif ruby_version >= Gem::Version.new('3.2') + eval_gemfile 'x_std_libs/r3/libs.gemfile' +elsif ruby_version >= Gem::Version.new('3.1') + eval_gemfile 'x_std_libs/r3.1/libs.gemfile' else - eval_gemfile "x_std_libs/r2/libs.gemfile" + eval_gemfile 'x_std_libs/r2/libs.gemfile' end diff --git a/gems/go-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile b/gems/go-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile index 441c4f03a..16a5e3d70 100644 --- a/gems/go-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile +++ b/gems/go-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile @@ -1,3 +1,3 @@ -eval_gemfile "../../erb/r2/v3.0.gemfile" -eval_gemfile "../../mutex_m/r2/v0.3.gemfile" -eval_gemfile "../../stringio/r2/v3.0.gemfile" +eval_gemfile '../../erb/r2/v3.0.gemfile' +eval_gemfile '../../mutex_m/r2/v0.3.gemfile' +eval_gemfile '../../stringio/r2/v3.0.gemfile' diff --git a/gems/go-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile b/gems/go-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile index c293a3ddd..220ff95c1 100644 --- a/gems/go-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile +++ b/gems/go-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile @@ -1,3 +1,3 @@ -eval_gemfile "../../erb/r3/v5.0.gemfile" -eval_gemfile "../../mutex_m/r3/v0.3.gemfile" -eval_gemfile "../../stringio/r3/v3.0.gemfile" +eval_gemfile '../../erb/r3/v5.0.gemfile' +eval_gemfile '../../mutex_m/r3/v0.3.gemfile' +eval_gemfile '../../stringio/r3/v3.0.gemfile' diff --git a/gems/go-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile b/gems/go-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile index eb5574247..e2f6501eb 100644 --- a/gems/go-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile +++ b/gems/go-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile @@ -1,6 +1,6 @@ -eval_gemfile "../../erb/r4/v5.0.gemfile" -eval_gemfile "../../mutex_m/r4/v0.3.gemfile" -eval_gemfile "../../stringio/r4/v3.0.gemfile" -eval_gemfile "../../benchmark/r4/v0.5.gemfile" -eval_gemfile "../../cgi/r4/v0.5.gemfile" -eval_gemfile "../../webrick/r4/v1.9.gemfile" +eval_gemfile '../../erb/r4/v5.0.gemfile' +eval_gemfile '../../mutex_m/r4/v0.3.gemfile' +eval_gemfile '../../stringio/r4/v3.0.gemfile' +eval_gemfile '../../benchmark/r4/v0.5.gemfile' +eval_gemfile '../../cgi/r4/v0.5.gemfile' +eval_gemfile '../../webrick/r4/v1.9.gemfile' diff --git a/gems/go-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile b/gems/go-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile index d4d5b16c9..ab75cccf1 100644 --- a/gems/go-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile +++ b/gems/go-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile @@ -1,6 +1,6 @@ -eval_gemfile "../erb/vHEAD.gemfile" -eval_gemfile "../mutex_m/vHEAD.gemfile" -eval_gemfile "../stringio/vHEAD.gemfile" -eval_gemfile "../benchmark/vHEAD.gemfile" -eval_gemfile "../cgi/vHEAD.gemfile" -eval_gemfile "../webrick/vHEAD.gemfile" +eval_gemfile '../erb/vHEAD.gemfile' +eval_gemfile '../mutex_m/vHEAD.gemfile' +eval_gemfile '../stringio/vHEAD.gemfile' +eval_gemfile '../benchmark/vHEAD.gemfile' +eval_gemfile '../cgi/vHEAD.gemfile' +eval_gemfile '../webrick/vHEAD.gemfile' diff --git a/gems/go-merge/lib/go/merge/version.rb b/gems/go-merge/lib/go/merge/version.rb index 7a12d28aa..d576fba8a 100644 --- a/gems/go-merge/lib/go/merge/version.rb +++ b/gems/go-merge/lib/go/merge/version.rb @@ -3,7 +3,7 @@ module Go module Merge module Version - VERSION = "7.1.0" + VERSION = '7.1.0' end VERSION = Version::VERSION # Traditional Constant Location end diff --git a/gems/go-merge/spec/spec_helper.rb b/gems/go-merge/spec/spec_helper.rb index f85aa5bc4..519a48b5d 100644 --- a/gems/go-merge/spec/spec_helper.rb +++ b/gems/go-merge/spec/spec_helper.rb @@ -7,16 +7,16 @@ # NOTE: Gemfiles for non-coverage appraisals may not have kettle-soup-cover. # The rescue LoadError handles that scenario. begin - require "kettle-soup-cover" + require 'kettle-soup-cover' if Kettle::Soup::Cover::DO_COV # Requiring simplecov loads the project-local `.simplecov`. - require "simplecov" - require "kettle/soup/cover/config" + require 'simplecov' + require 'kettle/soup/cover/config' SimpleCov.start end -rescue LoadError => error +rescue LoadError => e # check the error message and re-raise when unexpected - raise error unless error.message.include?("kettle") + raise e unless e.message.include?('kettle') end # External RSpec & related config diff --git a/gems/rust-merge/Gemfile.lock b/gems/rust-merge/Gemfile.lock index 68d429b41..be8494b07 100644 --- a/gems/rust-merge/Gemfile.lock +++ b/gems/rust-merge/Gemfile.lock @@ -6,38 +6,6 @@ PATH tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly - specs: - ast-crispr-markdown-markly (7.1.0) - ast-crispr (= 7.1.0) - markly-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism - specs: - ast-crispr-ruby-prism (7.1.0) - ast-crispr (= 7.1.0) - prism-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr - specs: - ast-crispr (7.1.0) - ast-merge (= 7.1.0) - service_actor (~> 3.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git - specs: - ast-merge-git (7.1.0) - ast-merge (= 7.1.0) - json-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - PATH remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge specs: @@ -47,193 +15,6 @@ PATH tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template - specs: - ast-template (7.1.0) - ast-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge - specs: - bash-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge - specs: - binary-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge - specs: - citrus-toml-merge (7.1.0) - toml-merge (= 7.1.0) - toml-rb (~> 4.1) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge - specs: - commonmarker-merge (7.1.0) - commonmarker (~> 2.2) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge - specs: - dotenv-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge - specs: - go-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge - specs: - json-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem - specs: - kettle-jem (7.1.0) - addressable (>= 2.8, < 3) - ast-crispr-markdown-markly (= 7.1.0) - ast-crispr-ruby-prism (= 7.1.0) - ast-merge (= 7.1.0) - bash-merge (= 7.1.0) - citrus-toml-merge (= 7.1.0) - commonmarker-merge (= 7.1.0) - dotenv-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-dev (~> 2.3, >= 2.3.5) - kettle-rb (~> 0.1, >= 0.1.4) - kramdown-merge (= 7.1.0) - markdown-merge (= 7.1.0) - markly-merge (= 7.1.0) - prism-merge (= 7.1.0) - psych-merge (= 7.1.0) - rbs (>= 3.10) - rbs-merge (= 7.1.0) - ruby-merge (= 7.1.0) - token-resolver (~> 2.0, >= 2.0.4) - toml-merge (= 7.1.0) - toml-rb (~> 4.2) - tree_haver (= 7.1.0) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge - specs: - kramdown-merge (7.1.0) - kramdown (~> 2.5) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge - specs: - markdown-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge - specs: - markly-merge (7.1.0) - markdown-merge (= 7.1.0) - markly (~> 0.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge - specs: - parslet-toml-merge (7.1.0) - toml (~> 0.3) - toml-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge - specs: - plain-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge - specs: - prism-merge (7.1.0) - prism (~> 1.6) - ruby-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge - specs: - psych-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge - specs: - rbs-merge (7.1.0) - ast-merge (= 7.1.0) - rbs (>= 3.10) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge - specs: - ruby-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb - specs: - smorg-rb (7.1.0) - ast-merge (= 7.1.0) - ast-merge-git (= 7.1.0) - diff-lcs (~> 1.5) - go-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-jem (= 7.1.0) - markly-merge (= 7.1.0) - plain-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge - specs: - toml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - PATH remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver specs: @@ -243,29 +24,6 @@ PATH tree_sitter_language_pack (>= 1.13.2, < 2.0) version_gem (~> 1.1, >= 1.1.9) -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge - specs: - typescript-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge - specs: - yaml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge - specs: - zip-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - GEM remote: https://gem.coop/ specs: @@ -290,7 +48,6 @@ GEM cgi (0.5.2) citrus (3.0.2) cmdparse (3.0.7) - commonmarker (2.9.0-x86_64-linux) concurrent-ruby (1.3.8) date (3.5.1) debug (1.11.1) @@ -353,8 +110,6 @@ GEM kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) - kettle-drift (1.0.6) - version_gem (~> 1.1, >= 1.1.14) kettle-rb (0.1.5) kettle-soup-cover (3.0.4) kettle-wash (~> 0.1, >= 0.1.0) @@ -383,7 +138,6 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) - markly (0.16.0) mutex_m (0.3.0) nokogiri (1.19.4-aarch64-linux-gnu) racc (~> 1.4) @@ -546,8 +300,6 @@ GEM ruby-progressbar (1.13.0) ruby_engine (2.0.3) ruby_version (1.0.3) - service_actor (3.9.4) - zeitwerk (>= 1.0) silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) @@ -602,11 +354,6 @@ GEM token-resolver (2.0.5) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.14) - toml (0.3.0) - parslet (>= 1.8.0, < 3.0.0) - toml-rb (4.2.0) - citrus (~> 3.0, > 3.0) - racc (~> 1.7) tree_sitter_language_pack (1.13.3-aarch64-linux) sorbet-runtime (~> 0.5) tree_sitter_language_pack (1.13.3-arm64-darwin) @@ -661,46 +408,24 @@ DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) appraisal2-rubocop (~> 1.0, >= 1.0.0) - ast-crispr! - ast-crispr-markdown-markly! - ast-crispr-ruby-prism! ast-merge! - ast-merge-git! - ast-template! - bash-merge! benchmark (~> 0.5, >= 0.5.0) - binary-merge! bundler-audit (~> 0.9.3) cgi (~> 0.5) - citrus-toml-merge! - commonmarker-merge! debug (>= 1.1) - dotenv-merge! erb (~> 6.0, >= 6.0.6) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.0) - go-merge! irb (~> 1.17) - json-merge! kettle-dev (~> 2.0, >= 2.2.25) - kettle-drift (~> 1.0, >= 1.0.6) - kettle-jem! kettle-soup-cover (~> 3.0, >= 3.0.3) kettle-test (~> 2.0, >= 2.0.9) kramdown (~> 2.5, >= 2.5.2) - kramdown-merge! kramdown-parser-gfm (~> 1.1) - markdown-merge! - markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) - parslet-toml-merge! - plain-merge! - prism-merge! - psych-merge! rake (~> 13.0) rbs (>= 3.0) - rbs-merge! rdoc (~> 6.11) reek (~> 6.5, >= 6.5.0) require_bench (~> 1.0, >= 1.0.4) @@ -711,27 +436,21 @@ DEPENDENCIES rubocop-on-rbs (~> 2.0, >= 2.0.0) rubocop-packaging (~> 0.6, >= 0.6.0) rubocop-ruby3_2 (~> 3.0, >= 3.0.6) - ruby-merge! ruby-progressbar (~> 1.13) rust-merge! - smorg-rb! standard (~> 1.56, >= 1.56.0) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) - toml-merge! tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) - typescript-merge! webrick (~> 1.9) yaml-converter (~> 0.2, >= 0.2.3) - yaml-merge! yard (~> 0.9, >= 0.9.45) yard-fence (~> 0.9, >= 0.9.6) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) yard-timekeeper (~> 0.2, >= 0.2.4) yard-yaml (~> 0.2, >= 0.2.3) - zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af @@ -739,31 +458,20 @@ CHECKSUMS appraisal2 (3.2.0) sha256=ccd0b767ac4060cd7af6d16747459b6990f49c39c7b4fb1f7d1146b1e97c492f appraisal2-rubocop (1.0.0) sha256=b71410fbb014befda5340605a605b7f6f3f012739baf0acc5b4351b592c3258d ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 - ast-crispr (7.1.0) - ast-crispr-markdown-markly (7.1.0) - ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) - ast-merge-git (7.1.0) - ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 - bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd - binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 - citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 - commonmarker (2.9.0-x86_64-linux) - commonmarker-merge (7.1.0) concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 - dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -776,28 +484,20 @@ CHECKSUMS gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f - go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 - json-merge (7.1.0) kettle-dev (2.3.8) sha256=9d716ff21c660a730cb4e8d41e2e2f0630a28167a354b6e2924e242102aef72c - kettle-drift (1.0.6) - kettle-jem (7.1.0) kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f kettle-soup-cover (3.0.4) kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa - kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 - markdown-merge (7.1.0) - markly (0.16.0) - markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-aarch64-linux-gnu) sha256=1269fb644a6de405057a53dd5c762b1209b43ca7424f839454d3dbc677c31a8f nokogiri (1.19.4-aarch64-linux-musl) sha256=35c65b9ce72b3bb03207bdbe7067915019dc18c1b9b59139684bd6690fdd01af @@ -811,20 +511,15 @@ CHECKSUMS parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 - parslet-toml-merge (7.1.0) - plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 - prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 - psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 - rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb @@ -859,19 +554,16 @@ CHECKSUMS rubocop-rspec_rails (2.32.0) sha256=4a0d641c72f6ebb957534f539d9d0a62c47abd8ce0d0aeee1ef4701e892a9100 rubocop-ruby3_2 (3.0.7) sha256=f53dd6d286fb05186214fc6ec116783e7f837030918e8931c05de773e98f8466 rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 - ruby-merge (7.1.0) ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 rust-merge (7.1.0) - service_actor (3.9.4) silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed - smorg-rb (7.1.0) sorbet-runtime (0.6.13351) sha256=f8fee17c6e3edf835dc6823d26afb9a7c8969c6710d1fabe2fb43f4e0c15c64f standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b @@ -886,22 +578,17 @@ CHECKSUMS timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.5) sha256=b852f924287ffb58a440856e862b056c8ad97e74b4b2526cee43e0771f40c25c - toml (0.3.0) - toml-merge (7.1.0) - toml-rb (4.2.0) tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-aarch64-linux) sha256=55ffc7c87868cb45658338363d9eba51b4a8b0259aa88e4de368d2bd1d52fea4 tree_sitter_language_pack (1.13.3-arm64-darwin) sha256=bc2498db605f212a1dbd2465ed3f65190d7da786f6ed5d30fcf958121aeb4a5c tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 - typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 webrick (1.9.2) sha256=beb4a15fc474defed24a3bda4ffd88a490d517c9e4e6118c3edce59e45864131 yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 - yaml-merge (7.1.0) yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd @@ -909,7 +596,6 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 - zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH diff --git a/gems/rust-merge/README.md b/gems/rust-merge/README.md index bce561b5c..004ecb1cd 100644 --- a/gems/rust-merge/README.md +++ b/gems/rust-merge/README.md @@ -252,7 +252,6 @@ If none of the available licenses suit your use case, please [contact us](mailto [🖐contrib-rocks]: https://contrib.rocks [🖐contributors]: https://github.com/structuredmerge/structuredmerge-ruby/graphs/contributors [🖐contributors-img]: https://contrib.rocks/image?repo=structuredmerge/structuredmerge-ruby -[🚎contributors-gl]: https://gitlab.com/structuredmerge/structuredmerge-ruby/-/graphs/main [🪇conduct]: https://github.com/structuredmerge/structuredmerge-ruby/blob/main/CODE_OF_CONDUCT.md [🪇conduct-img]: https://img.shields.io/badge/Contributor_Covenant-2.1-259D6C.svg [📌pvc]: http://guides.rubygems.org/patterns/#pessimistic-version-constraint diff --git a/gems/rust-merge/bin/yard b/gems/rust-merge/bin/yard index 5d516ad6f..a7e8b6eed 100755 --- a/gems/rust-merge/bin/yard +++ b/gems/rust-merge/bin/yard @@ -12,4 +12,4 @@ # `yard` / `bin/yard`. Keep this binstub as a handoff to the task so # humans and tools that reach for `bin/yard` still run the full docs # workflow with post-processing hooks. -exec('bundle', 'exec', 'rake', 'yard') +exec("bundle", "exec", "rake", "yard") diff --git a/gems/toml-merge/Gemfile.lock b/gems/toml-merge/Gemfile.lock index d46ea797b..689c00f3e 100644 --- a/gems/toml-merge/Gemfile.lock +++ b/gems/toml-merge/Gemfile.lock @@ -7,7 +7,39 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/ast-merge + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly + specs: + ast-crispr-markdown-markly (7.1.0) + ast-crispr (= 7.1.0) + markly-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism + specs: + ast-crispr-ruby-prism (7.1.0) + ast-crispr (= 7.1.0) + prism-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr + specs: + ast-crispr (7.1.0) + ast-merge (= 7.1.0) + service_actor (~> 3.9) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git + specs: + ast-merge-git (7.1.0) + ast-merge (= 7.1.0) + json-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge specs: ast-merge (7.1.0) benchmark @@ -16,7 +48,194 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/tree_haver + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template + specs: + ast-template (7.1.0) + ast-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge + specs: + bash-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge + specs: + binary-merge (7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge + specs: + citrus-toml-merge (7.1.0) + toml-merge (= 7.1.0) + toml-rb (~> 4.1) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge + specs: + commonmarker-merge (7.1.0) + commonmarker (~> 2.2) + markdown-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge + specs: + dotenv-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge + specs: + go-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge + specs: + json-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem + specs: + kettle-jem (7.1.0) + addressable (>= 2.8, < 3) + ast-crispr-markdown-markly (= 7.1.0) + ast-crispr-ruby-prism (= 7.1.0) + ast-merge (= 7.1.0) + bash-merge (= 7.1.0) + citrus-toml-merge (= 7.1.0) + commonmarker-merge (= 7.1.0) + dotenv-merge (= 7.1.0) + json-merge (= 7.1.0) + kettle-dev (~> 2.3, >= 2.3.5) + kettle-rb (~> 0.1, >= 0.1.4) + kramdown-merge (= 7.1.0) + markdown-merge (= 7.1.0) + markly-merge (= 7.1.0) + prism-merge (= 7.1.0) + psych-merge (= 7.1.0) + rbs (>= 3.10) + rbs-merge (= 7.1.0) + ruby-merge (= 7.1.0) + token-resolver (~> 2.0, >= 2.0.4) + toml-merge (= 7.1.0) + toml-rb (~> 4.2) + tree_haver (= 7.1.0) + yaml-merge (= 7.1.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge + specs: + kramdown-merge (7.1.0) + kramdown (~> 2.5) + markdown-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge + specs: + markdown-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge + specs: + markly-merge (7.1.0) + markdown-merge (= 7.1.0) + markly (~> 0.9) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge + specs: + parslet-toml-merge (7.1.0) + toml (~> 0.3) + toml-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge + specs: + plain-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge + specs: + prism-merge (7.1.0) + prism (~> 1.6) + ruby-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge + specs: + psych-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + yaml-merge (= 7.1.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge + specs: + rbs-merge (7.1.0) + ast-merge (= 7.1.0) + rbs (>= 3.10) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge + specs: + ruby-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge + specs: + rust-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb + specs: + smorg-rb (7.1.0) + ast-merge (= 7.1.0) + ast-merge-git (= 7.1.0) + diff-lcs (~> 1.5) + go-merge (= 7.1.0) + json-merge (= 7.1.0) + kettle-jem (= 7.1.0) + markly-merge (= 7.1.0) + plain-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver specs: tree_haver (7.1.0) citrus (~> 3.0) @@ -24,6 +243,29 @@ PATH tree_sitter_language_pack (>= 1.13.2, < 2.0) version_gem (~> 1.1, >= 1.1.9) +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge + specs: + typescript-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge + specs: + yaml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge + specs: + zip-merge (7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + GEM remote: https://gem.coop/ specs: @@ -48,6 +290,11 @@ GEM cgi (0.5.2) citrus (3.0.2) cmdparse (3.0.7) + commonmarker (2.9.0-aarch64-linux) + commonmarker (2.9.0-aarch64-linux-musl) + commonmarker (2.9.0-arm64-darwin) + commonmarker (2.9.0-x86_64-linux) + commonmarker (2.9.0-x86_64-linux-musl) concurrent-ruby (1.3.8) date (3.5.1) debug (1.11.1) @@ -110,6 +357,8 @@ GEM kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) + kettle-drift (1.0.6) + version_gem (~> 1.1, >= 1.1.14) kettle-rb (0.1.5) kettle-soup-cover (3.0.4) kettle-wash (~> 0.1, >= 0.1.0) @@ -138,6 +387,7 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) + markly (0.16.0) mutex_m (0.3.0) nokogiri (1.19.4-aarch64-linux-gnu) racc (~> 1.4) @@ -300,6 +550,8 @@ GEM ruby-progressbar (1.13.0) ruby_engine (2.0.3) ruby_version (1.0.3) + service_actor (3.9.4) + zeitwerk (>= 1.0) silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) @@ -354,6 +606,11 @@ GEM token-resolver (2.0.5) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.14) + toml (0.3.0) + parslet (>= 1.8.0, < 3.0.0) + toml-rb (4.2.0) + citrus (~> 3.0, > 3.0) + racc (~> 1.7) tree_sitter_language_pack (1.13.3-aarch64-linux) sorbet-runtime (~> 0.5) tree_sitter_language_pack (1.13.3-arm64-darwin) @@ -408,24 +665,46 @@ DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) appraisal2-rubocop (~> 1.0, >= 1.0.0) + ast-crispr! + ast-crispr-markdown-markly! + ast-crispr-ruby-prism! ast-merge! + ast-merge-git! + ast-template! + bash-merge! benchmark (~> 0.5, >= 0.5.0) + binary-merge! bundler-audit (~> 0.9.3) cgi (~> 0.5) + citrus-toml-merge! + commonmarker-merge! debug (>= 1.1) + dotenv-merge! erb (~> 6.0, >= 6.0.6) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.0) + go-merge! irb (~> 1.17) + json-merge! kettle-dev (~> 2.0, >= 2.2.25) + kettle-drift (~> 1.0, >= 1.0.6) + kettle-jem! kettle-soup-cover (~> 3.0, >= 3.0.3) kettle-test (~> 2.0, >= 2.0.9) kramdown (~> 2.5, >= 2.5.2) + kramdown-merge! kramdown-parser-gfm (~> 1.1) + markdown-merge! + markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) + parslet-toml-merge! + plain-merge! + prism-merge! + psych-merge! rake (~> 13.0) rbs (>= 3.0) + rbs-merge! rdoc (~> 6.11) reek (~> 6.5, >= 6.5.0) require_bench (~> 1.0, >= 1.0.4) @@ -436,21 +715,27 @@ DEPENDENCIES rubocop-on-rbs (~> 2.0, >= 2.0.0) rubocop-packaging (~> 0.6, >= 0.6.0) rubocop-ruby3_2 (~> 3.0, >= 3.0.6) + ruby-merge! ruby-progressbar (~> 1.13) + rust-merge! + smorg-rb! standard (~> 1.56, >= 1.56.0) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) toml-merge! tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) + typescript-merge! webrick (~> 1.9) yaml-converter (~> 0.2, >= 0.2.3) + yaml-merge! yard (~> 0.9, >= 0.9.45) yard-fence (~> 0.9, >= 0.9.6) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) yard-timekeeper (~> 0.2, >= 0.2.4) yard-yaml (~> 0.2, >= 0.2.3) + zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af @@ -458,20 +743,35 @@ CHECKSUMS appraisal2 (3.2.0) sha256=ccd0b767ac4060cd7af6d16747459b6990f49c39c7b4fb1f7d1146b1e97c492f appraisal2-rubocop (1.0.0) sha256=b71410fbb014befda5340605a605b7f6f3f012739baf0acc5b4351b592c3258d ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 + ast-crispr (7.1.0) + ast-crispr-markdown-markly (7.1.0) + ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) + ast-merge-git (7.1.0) + ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 + bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd + binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 + citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 + commonmarker (2.9.0-aarch64-linux) sha256=e2b4aadb9a2cfa4e206582641ce3a49465549ac1ed4c289fdd63b78d8f24579c + commonmarker (2.9.0-aarch64-linux-musl) sha256=1cf4d2821f2a7e64945f1ed7c4eeced586fdb27ea7fe7337788802cf8f57cfca + commonmarker (2.9.0-arm64-darwin) sha256=1748dbfa4f5813b0d2a14bb4bbfa65a4ec293aa1c825016d60029ee0e132b046 + commonmarker (2.9.0-x86_64-linux) sha256=8cfe92970eef585a19ddf6613224b91cab64d6029834661bda801f877c9c7f43 + commonmarker (2.9.0-x86_64-linux-musl) sha256=293921398b839f79ceaf55010e061357e34f053822c3b003cd0be6686176335e + commonmarker-merge (7.1.0) concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 + dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -484,20 +784,28 @@ CHECKSUMS gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f + go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 + json-merge (7.1.0) kettle-dev (2.3.9) + kettle-drift (1.0.6) sha256=46eda08fa4411d1f3c6682a95eef1c9df4e94611b3949f49d4c7b43c0ed356a3 + kettle-jem (7.1.0) kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f kettle-soup-cover (3.0.4) kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa + kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 + markdown-merge (7.1.0) + markly (0.16.0) sha256=6f70d79e385b1efc9e171f74c81628826259039fe6c778e03c3924c71dac5511 + markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-aarch64-linux-gnu) sha256=1269fb644a6de405057a53dd5c762b1209b43ca7424f839454d3dbc677c31a8f nokogiri (1.19.4-aarch64-linux-musl) sha256=35c65b9ce72b3bb03207bdbe7067915019dc18c1b9b59139684bd6690fdd01af @@ -511,15 +819,20 @@ CHECKSUMS parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 + parslet-toml-merge (7.1.0) + plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 + prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 + psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 + rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb @@ -554,15 +867,19 @@ CHECKSUMS rubocop-rspec_rails (2.32.0) sha256=4a0d641c72f6ebb957534f539d9d0a62c47abd8ce0d0aeee1ef4701e892a9100 rubocop-ruby3_2 (3.0.7) sha256=f53dd6d286fb05186214fc6ec116783e7f837030918e8931c05de773e98f8466 rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 + ruby-merge (7.1.0) ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 + rust-merge (7.1.0) + service_actor (3.9.4) sha256=e63b523630b9a7e62959b2a90113b08d2565b5de9c148557b281ef847c9539ce silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed + smorg-rb (7.1.0) sorbet-runtime (0.6.13351) sha256=f8fee17c6e3edf835dc6823d26afb9a7c8969c6710d1fabe2fb43f4e0c15c64f standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b @@ -577,18 +894,22 @@ CHECKSUMS timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.5) sha256=b852f924287ffb58a440856e862b056c8ad97e74b4b2526cee43e0771f40c25c + toml (0.3.0) sha256=0a91d0f76a9036e84e44f95693b12f58d358c1df3ac8e3b5271f2056ecc6e4b9 toml-merge (7.1.0) + toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-aarch64-linux) sha256=55ffc7c87868cb45658338363d9eba51b4a8b0259aa88e4de368d2bd1d52fea4 tree_sitter_language_pack (1.13.3-arm64-darwin) sha256=bc2498db605f212a1dbd2465ed3f65190d7da786f6ed5d30fcf958121aeb4a5c tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 + typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 webrick (1.9.2) sha256=beb4a15fc474defed24a3bda4ffd88a490d517c9e4e6118c3edce59e45864131 yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 + yaml-merge (7.1.0) yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd @@ -596,6 +917,7 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 + zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH From 275dc0f91167e3e01d47408358469461d1c49bc1 Mon Sep 17 00:00:00 2001 From: "Peter H. Boling" Date: Tue, 21 Jul 2026 18:04:32 -0600 Subject: [PATCH 165/188] =?UTF-8?q?=F0=9F=8E=A8=20Template=20bootstrap=20b?= =?UTF-8?q?y=20kettle-jem=20v7.1.0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gems/ast-template/.kettle-drift.lock | 144 ++++++- gems/ast-template/Gemfile | 72 +++- gems/ast-template/Gemfile.lock | 349 ++++++++++++++++- gems/ast-template/Rakefile | 18 +- .../gemfiles/modular/templating.gemfile | 12 +- .../gemfiles/modular/templating_local.gemfile | 44 +-- gems/ast-template/lib/ast/template/version.rb | 2 +- gems/binary-merge/.kettle-drift.lock | 144 ++++++- gems/binary-merge/Gemfile | 72 +++- gems/binary-merge/Gemfile.lock | 351 +++++++++++++++++- gems/binary-merge/Rakefile | 18 +- .../gemfiles/modular/templating.gemfile | 12 +- .../gemfiles/modular/templating_local.gemfile | 44 +-- gems/binary-merge/lib/binary/merge/version.rb | 2 +- gems/go-merge/Gemfile.lock | 326 +++++++++++++++- gems/rust-merge/.rubocop_gradual.lock | 2 +- gems/rust-merge/.simplecov | 2 +- gems/rust-merge/Gemfile | 70 ++-- gems/rust-merge/Gemfile.lock | 326 +++++++++++++++- gems/rust-merge/Rakefile | 18 +- gems/rust-merge/bin/yard | 2 +- .../modular/benchmark/r4/v0.5.gemfile | 2 +- .../gemfiles/modular/benchmark/vHEAD.gemfile | 2 +- .../gemfiles/modular/cgi/r4/v0.5.gemfile | 2 +- .../gemfiles/modular/cgi/vHEAD.gemfile | 2 +- .../gemfiles/modular/coverage.gemfile | 6 +- .../gemfiles/modular/coverage_local.gemfile | 42 +-- .../rust-merge/gemfiles/modular/debug.gemfile | 4 +- .../gemfiles/modular/documentation.gemfile | 24 +- .../modular/documentation_local.gemfile | 30 +- .../gemfiles/modular/erb/r2/v3.0.gemfile | 2 +- .../gemfiles/modular/erb/r3/v5.0.gemfile | 2 +- .../gemfiles/modular/erb/r4/v5.0.gemfile | 2 +- .../gemfiles/modular/erb/vHEAD.gemfile | 2 +- .../modular/json/truffleruby_22_3.gemfile | 4 +- .../modular/json/truffleruby_23_0.gemfile | 4 +- .../modular/json/truffleruby_23_1.gemfile | 4 +- .../gemfiles/modular/mutex_m/r2/v0.3.gemfile | 2 +- .../gemfiles/modular/mutex_m/r3/v0.3.gemfile | 2 +- .../gemfiles/modular/mutex_m/r4/v0.3.gemfile | 2 +- .../gemfiles/modular/mutex_m/vHEAD.gemfile | 2 +- .../gemfiles/modular/optional.gemfile | 4 +- .../rust-merge/gemfiles/modular/rspec.gemfile | 8 +- .../gemfiles/modular/runtime_heads.gemfile | 2 +- .../gemfiles/modular/stringio/r2/v3.0.gemfile | 2 +- .../gemfiles/modular/stringio/r3/v3.0.gemfile | 2 +- .../gemfiles/modular/stringio/r4/v3.0.gemfile | 2 +- .../gemfiles/modular/stringio/vHEAD.gemfile | 2 +- .../rust-merge/gemfiles/modular/style.gemfile | 24 +- .../gemfiles/modular/style_local.gemfile | 32 +- .../gemfiles/modular/templating.gemfile | 12 +- .../gemfiles/modular/templating_local.gemfile | 44 ++- .../gemfiles/modular/webrick/r4/v1.9.gemfile | 2 +- .../gemfiles/modular/webrick/vHEAD.gemfile | 2 +- .../gemfiles/modular/x_std_libs.gemfile | 14 +- .../modular/x_std_libs/r2/libs.gemfile | 6 +- .../modular/x_std_libs/r3/libs.gemfile | 6 +- .../modular/x_std_libs/r4/libs.gemfile | 12 +- .../gemfiles/modular/x_std_libs/vHEAD.gemfile | 12 +- gems/rust-merge/lib/rust/merge/version.rb | 2 +- gems/rust-merge/spec/spec_helper.rb | 10 +- gems/typescript-merge/.rubocop_gradual.lock | 2 +- gems/typescript-merge/.simplecov | 8 +- gems/typescript-merge/Gemfile | 70 ++-- gems/typescript-merge/Gemfile.lock | 322 +--------------- gems/typescript-merge/Rakefile | 18 +- .../gemfiles/modular/templating.gemfile | 12 +- .../gemfiles/modular/templating_local.gemfile | 44 ++- .../lib/typescript/merge/version.rb | 2 +- gems/typescript-merge/spec/spec_helper.rb | 7 +- gems/zip-merge/Gemfile.lock | 351 +++++++++++++++++- 71 files changed, 2444 insertions(+), 764 deletions(-) diff --git a/gems/ast-template/.kettle-drift.lock b/gems/ast-template/.kettle-drift.lock index bf85fa76f..9a486b4b3 100644 --- a/gems/ast-template/.kettle-drift.lock +++ b/gems/ast-template/.kettle-drift.lock @@ -1,10 +1,74 @@ { + "(direct_sibling_local ||\nENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?)": [ + { + "file": "Gemfile", + "lines": [ + 79, + 119 + ] + } + ], + ".find { |spec| spec.name == 'nomono' }\nnomono_locked = nomono_locked_spec &&": [ + { + "file": "Gemfile", + "lines": [ + 90, + 130 + ] + } + ], + "ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?)\ndirect_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV')": [ + { + "file": "Gemfile", + "lines": [ + 80, + 120 + ] + } + ], + "Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version)\nnomono_activation_requirements = [\"= #{nomono_locked_spec.version}\"] if nomono_locked": [ + { + "file": "Gemfile", + "lines": [ + 92, + 132 + ] + } + ], + "Kernel.send(:gem, 'nomono', *nomono_activation_requirements)\nrequire 'nomono/bundler'": [ + { + "file": "Gemfile", + "lines": [ + 95, + 135 + ] + } + ], + "direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV')\ndirect_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil)": [ + { + "file": "Gemfile", + "lines": [ + 81, + 121 + ] + } + ], "eval_nomono_gems(\ngems: direct_sibling_gems,": [ { "file": "Gemfile", "lines": [ 59, - 99 + 99, + 139 + ] + } + ], + "gems: direct_sibling_gems,\nprefix: 'STRUCTUREDMERGE',": [ + { + "file": "Gemfile", + "lines": [ + 100, + 140 ] } ], @@ -13,7 +77,17 @@ "file": "Gemfile", "lines": [ 42, - 86 + 86, + 126 + ] + } + ], + "if direct_sibling_dev_was_set\nENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original": [ + { + "file": "Gemfile", + "lines": [ + 109, + 149 ] } ], @@ -22,7 +96,8 @@ "file": "Gemfile", "lines": [ 34, - 78 + 78, + 118 ] } ], @@ -31,7 +106,17 @@ "file": "Gemfile", "lines": [ 68, - 108 + 108, + 148 + ] + } + ], + "nomono_activation_requirements = nomono_requirements\nnomono_lockfile = File.expand_path('Gemfile.lock', __dir__)": [ + { + "file": "Gemfile", + "lines": [ + 84, + 124 ] } ], @@ -40,7 +125,8 @@ "file": "Gemfile", "lines": [ 47, - 91 + 91, + 131 ] } ], @@ -49,7 +135,53 @@ "file": "Gemfile", "lines": [ 43, - 87 + 87, + 127 + ] + } + ], + "nomono_lockfile = File.expand_path('Gemfile.lock', __dir__)\nif File.file?(nomono_lockfile)": [ + { + "file": "Gemfile", + "lines": [ + 85, + 125 + ] + } + ], + "path_env: 'STRUCTUREDMERGE_DEV',\nroot: %w[src my structuredmerge]": [ + { + "file": "Gemfile", + "lines": [ + 102, + 142 + ] + } + ], + "prefix: 'STRUCTUREDMERGE',\npath_env: 'STRUCTUREDMERGE_DEV',": [ + { + "file": "Gemfile", + "lines": [ + 101, + 141 + ] + } + ], + "require 'nomono/bundler'\nENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local": [ + { + "file": "Gemfile", + "lines": [ + 96, + 136 + ] + } + ], + "rescue LoadError\nwarn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.'": [ + { + "file": "Gemfile", + "lines": [ + 105, + 145 ] } ] diff --git a/gems/ast-template/Gemfile b/gems/ast-template/Gemfile index 0d74ca91d..355308a08 100644 --- a/gems/ast-template/Gemfile +++ b/gems/ast-template/Gemfile @@ -6,7 +6,7 @@ # kettle-jem will then preserve content between those markers across template runs. # kettle-jem:unfreeze -source 'https://gem.coop' +source "https://gem.coop" git_source(:codeberg) { |repo_name| "https://codeberg.org/#{repo_name}" } git_source(:gitlab) { |repo_name| "https://gitlab.com/#{repo_name}" } @@ -19,17 +19,61 @@ git_source(:gitlab) { |repo_name| "https://gitlab.com/#{repo_name}" } gemspec # Local workspace dependency wiring for *_local.gemfile overrides -nomono_requirements = ['~> 1.0', '>= 1.0.8'] -gem 'nomono', *nomono_requirements, require: false # ruby >= 2.2 +nomono_requirements = ["~> 1.0", ">= 1.0.8"] +gem "nomono", *nomono_requirements, require: false # ruby >= 2.2 # Direct sibling dependencies (env-switched via STRUCTUREDMERGE_DEV) direct_sibling_gems = %w[ ast-merge ] -direct_sibling_dev = ENV.fetch('STRUCTUREDMERGE_DEV', '') +direct_sibling_dev = ENV.fetch("STRUCTUREDMERGE_DEV", "") direct_sibling_local = !direct_sibling_dev.empty? && !%w[false 0 no off].include?(direct_sibling_dev.downcase) -direct_sibling_templating = ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? +direct_sibling_templating = ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? + +if direct_sibling_gems.any? && + (direct_sibling_local || + ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero?) + direct_sibling_dev_was_set = ENV.key?("STRUCTUREDMERGE_DEV") + direct_sibling_dev_original = ENV.fetch("STRUCTUREDMERGE_DEV", nil) + begin + nomono_activation_requirements = nomono_requirements + nomono_lockfile = File.expand_path("Gemfile.lock", __dir__) + if File.file?(nomono_lockfile) + nomono_locked_spec = Bundler::LockfileParser + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == "nomono" } + nomono_locked = nomono_locked_spec && + Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) + if nomono_locked + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] + end + end + Kernel.send(:gem, "nomono", *nomono_activation_requirements) + require "nomono/bundler" + if direct_sibling_templating && !direct_sibling_local + ENV["STRUCTUREDMERGE_DEV"] = File.expand_path("..", __dir__) + end + + eval_nomono_gems( + gems: direct_sibling_gems, + prefix: "STRUCTUREDMERGE", + path_env: "STRUCTUREDMERGE_DEV", + root: ["src", "my", "structuredmerge"] + ) + rescue LoadError + warn "Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies." + ensure + if direct_sibling_templating && !direct_sibling_local + if direct_sibling_dev_was_set + ENV["STRUCTUREDMERGE_DEV"] = direct_sibling_dev_original + else + ENV.delete("STRUCTUREDMERGE_DEV") + end + end + end +end if direct_sibling_gems.any? && (direct_sibling_local || @@ -112,28 +156,28 @@ if direct_sibling_gems.any? && end # Use released TSLP with the Ruby ABI platform-gem fix. -gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' +gem "tree_sitter_language_pack", "~> 1.13", ">= 1.13.3" # Templating (env-switched: STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local paths) -eval_gemfile 'gemfiles/modular/templating.gemfile' if ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? +eval_gemfile "gemfiles/modular/templating.gemfile" if ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? # Debugging -eval_gemfile 'gemfiles/modular/debug.gemfile' +eval_gemfile "gemfiles/modular/debug.gemfile" # Code Coverage (env-switched: KETTLE_DEV_DEV=true for local paths) -eval_gemfile 'gemfiles/modular/coverage.gemfile' +eval_gemfile "gemfiles/modular/coverage.gemfile" # Linting -eval_gemfile 'gemfiles/modular/style.gemfile' +eval_gemfile "gemfiles/modular/style.gemfile" # Documentation -eval_gemfile 'gemfiles/modular/documentation.gemfile' +eval_gemfile "gemfiles/modular/documentation.gemfile" # Optional -eval_gemfile 'gemfiles/modular/optional.gemfile' +eval_gemfile "gemfiles/modular/optional.gemfile" ### Std Lib Extracted Gems -eval_gemfile 'gemfiles/modular/x_std_libs.gemfile' +eval_gemfile "gemfiles/modular/x_std_libs.gemfile" # See unlocked_deps appraisal for more details on irb inclusion -gem 'irb', '~> 1.17' # ruby >= 2.7 +gem "irb", "~> 1.17" # ruby >= 2.7 diff --git a/gems/ast-template/Gemfile.lock b/gems/ast-template/Gemfile.lock index 50e30f7ae..c6b4b1fdb 100644 --- a/gems/ast-template/Gemfile.lock +++ b/gems/ast-template/Gemfile.lock @@ -5,6 +5,267 @@ PATH ast-merge (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly + specs: + ast-crispr-markdown-markly (7.1.0) + ast-crispr (= 7.1.0) + markly-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism + specs: + ast-crispr-ruby-prism (7.1.0) + ast-crispr (= 7.1.0) + prism-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr + specs: + ast-crispr (7.1.0) + ast-merge (= 7.1.0) + service_actor (~> 3.9) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git + specs: + ast-merge-git (7.1.0) + ast-merge (= 7.1.0) + json-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge + specs: + ast-merge (7.1.0) + benchmark + token-resolver (~> 2.0, >= 2.0.4) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge + specs: + bash-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge + specs: + binary-merge (7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge + specs: + citrus-toml-merge (7.1.0) + toml-merge (= 7.1.0) + toml-rb (~> 4.1) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge + specs: + commonmarker-merge (7.1.0) + commonmarker (~> 2.2) + markdown-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge + specs: + dotenv-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge + specs: + go-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge + specs: + json-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem + specs: + kettle-jem (7.1.0) + addressable (>= 2.8, < 3) + ast-crispr-markdown-markly (= 7.1.0) + ast-crispr-ruby-prism (= 7.1.0) + ast-merge (= 7.1.0) + bash-merge (= 7.1.0) + citrus-toml-merge (= 7.1.0) + commonmarker-merge (= 7.1.0) + dotenv-merge (= 7.1.0) + json-merge (= 7.1.0) + kettle-dev (~> 2.3, >= 2.3.5) + kettle-rb (~> 0.1, >= 0.1.4) + kramdown-merge (= 7.1.0) + markdown-merge (= 7.1.0) + markly-merge (= 7.1.0) + prism-merge (= 7.1.0) + psych-merge (= 7.1.0) + rbs (>= 3.10) + rbs-merge (= 7.1.0) + ruby-merge (= 7.1.0) + token-resolver (~> 2.0, >= 2.0.4) + toml-merge (= 7.1.0) + toml-rb (~> 4.2) + tree_haver (= 7.1.0) + yaml-merge (= 7.1.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge + specs: + kramdown-merge (7.1.0) + kramdown (~> 2.5) + markdown-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge + specs: + markdown-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge + specs: + markly-merge (7.1.0) + markdown-merge (= 7.1.0) + markly (~> 0.9) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge + specs: + parslet-toml-merge (7.1.0) + toml (~> 0.3) + toml-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge + specs: + plain-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge + specs: + prism-merge (7.1.0) + prism (~> 1.6) + ruby-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge + specs: + psych-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + yaml-merge (= 7.1.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge + specs: + rbs-merge (7.1.0) + ast-merge (= 7.1.0) + rbs (>= 3.10) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge + specs: + ruby-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge + specs: + rust-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb + specs: + smorg-rb (7.1.0) + ast-merge (= 7.1.0) + ast-merge-git (= 7.1.0) + diff-lcs (~> 1.5) + go-merge (= 7.1.0) + json-merge (= 7.1.0) + kettle-jem (= 7.1.0) + markly-merge (= 7.1.0) + plain-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge + specs: + toml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver + specs: + tree_haver (7.1.0) + citrus (~> 3.0) + parslet (~> 2.0) + tree_sitter_language_pack (>= 1.13.2, < 2.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge + specs: + typescript-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge + specs: + yaml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge + specs: + zip-merge (7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + GEM remote: https://gem.coop/ specs: @@ -20,11 +281,6 @@ GEM rubocop (>= 1.0) version_gem (~> 1.1, >= 1.1.14) ast (2.4.3) - ast-merge (7.1.0) - benchmark - token-resolver (~> 2.0, >= 2.0.4) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) backports (3.25.3) benchmark (0.5.0) bigdecimal (4.1.2) @@ -34,6 +290,7 @@ GEM cgi (0.5.2) citrus (3.0.2) cmdparse (3.0.7) + commonmarker (2.9.0-x86_64-linux) concurrent-ruby (1.3.8) date (3.5.1) debug (1.11.1) @@ -96,6 +353,8 @@ GEM kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) + kettle-drift (1.0.6) + version_gem (~> 1.1, >= 1.1.14) kettle-rb (0.1.5) kettle-soup-cover (3.0.4) kettle-wash (~> 0.1, >= 0.1.0) @@ -124,6 +383,7 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) + markly (0.16.0) mutex_m (0.3.0) nokogiri (1.19.4-x86_64-linux-gnu) racc (~> 1.4) @@ -278,6 +538,8 @@ GEM ruby-progressbar (1.13.0) ruby_engine (2.0.3) ruby_version (1.0.3) + service_actor (3.9.4) + zeitwerk (>= 1.0) silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) @@ -293,7 +555,7 @@ GEM simplecov (>= 0.4.1) simplecov_lcov_formatter (0.9.0) simplecov (>= 0.18) - sorbet-runtime (0.6.13347) + sorbet-runtime (0.6.13351) standard (1.56.0) language_server-protocol (~> 3.17.0.2) lint_roller (~> 1.0) @@ -332,11 +594,11 @@ GEM token-resolver (2.0.5) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.14) - tree_haver (7.1.0) - citrus (~> 3.0) - parslet (~> 2.0) - tree_sitter_language_pack (>= 1.13.2, < 2.0) - version_gem (~> 1.1, >= 1.1.9) + toml (0.3.0) + parslet (>= 1.8.0, < 3.0.0) + toml-rb (4.2.0) + citrus (~> 3.0, > 3.0) + racc (~> 1.7) tree_sitter_language_pack (1.13.3-x86_64-linux) sorbet-runtime (~> 0.5) tsort (0.2.0) @@ -382,24 +644,46 @@ DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) appraisal2-rubocop (~> 1.0, >= 1.0.0) + ast-crispr! + ast-crispr-markdown-markly! + ast-crispr-ruby-prism! + ast-merge! + ast-merge-git! ast-template! + bash-merge! benchmark (~> 0.5, >= 0.5.0) + binary-merge! bundler-audit (~> 0.9.3) cgi (~> 0.5) + citrus-toml-merge! + commonmarker-merge! debug (>= 1.1) + dotenv-merge! erb (~> 6.0, >= 6.0.6) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.0) + go-merge! irb (~> 1.17) + json-merge! kettle-dev (~> 2.0, >= 2.2.25) + kettle-drift (~> 1.0, >= 1.0.6) + kettle-jem! kettle-soup-cover (~> 3.0, >= 3.0.3) kettle-test (~> 2.0, >= 2.0.9) kramdown (~> 2.5, >= 2.5.2) + kramdown-merge! kramdown-parser-gfm (~> 1.1) + markdown-merge! + markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) + parslet-toml-merge! + plain-merge! + prism-merge! + psych-merge! rake (~> 13.0) rbs (>= 3.0) + rbs-merge! rdoc (~> 6.11) reek (~> 6.5, >= 6.5.0) require_bench (~> 1.0, >= 1.0.4) @@ -410,19 +694,27 @@ DEPENDENCIES rubocop-on-rbs (~> 2.0, >= 2.0.0) rubocop-packaging (~> 0.6, >= 0.6.0) rubocop-ruby3_2 (~> 3.0, >= 3.0.6) + ruby-merge! ruby-progressbar (~> 1.13) + rust-merge! + smorg-rb! standard (~> 1.56, >= 1.56.0) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) + toml-merge! + tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) + typescript-merge! webrick (~> 1.9) yaml-converter (~> 0.2, >= 0.2.3) + yaml-merge! yard (~> 0.9, >= 0.9.45) yard-fence (~> 0.9, >= 0.9.6) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) yard-timekeeper (~> 0.2, >= 0.2.4) yard-yaml (~> 0.2, >= 0.2.3) + zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af @@ -430,21 +722,31 @@ CHECKSUMS appraisal2 (3.2.0) sha256=ccd0b767ac4060cd7af6d16747459b6990f49c39c7b4fb1f7d1146b1e97c492f appraisal2-rubocop (1.0.0) sha256=b71410fbb014befda5340605a605b7f6f3f012739baf0acc5b4351b592c3258d ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 + ast-crispr (7.1.0) + ast-crispr-markdown-markly (7.1.0) + ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) + ast-merge-git (7.1.0) ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 + bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd + binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 + citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 + commonmarker (2.9.0-x86_64-linux) + commonmarker-merge (7.1.0) concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 + dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -457,20 +759,28 @@ CHECKSUMS gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f + go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 + json-merge (7.1.0) kettle-dev (2.3.8) sha256=9d716ff21c660a730cb4e8d41e2e2f0630a28167a354b6e2924e242102aef72c + kettle-drift (1.0.6) + kettle-jem (7.1.0) kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f kettle-soup-cover (3.0.4) kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa + kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 + markdown-merge (7.1.0) + markly (0.16.0) + markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-x86_64-linux-gnu) sha256=379fae440b28915e3f19d752ce2dcf8465ed2b2fbefd2a7ca0dd497bc981a06a nomono (1.0.9) @@ -480,15 +790,20 @@ CHECKSUMS parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 + parslet-toml-merge (7.1.0) + plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 + prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 + psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 + rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb @@ -523,16 +838,20 @@ CHECKSUMS rubocop-rspec_rails (2.32.0) sha256=4a0d641c72f6ebb957534f539d9d0a62c47abd8ce0d0aeee1ef4701e892a9100 rubocop-ruby3_2 (3.0.7) sha256=f53dd6d286fb05186214fc6ec116783e7f837030918e8931c05de773e98f8466 rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 + ruby-merge (7.1.0) ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 + rust-merge (7.1.0) + service_actor (3.9.4) silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed - sorbet-runtime (0.6.13347) sha256=54e7221d9f4b63f58aec79f3043752a9ba7810347c6ae0d903531591cc2d5f01 + smorg-rb (7.1.0) + sorbet-runtime (0.6.13351) sha256=f8fee17c6e3edf835dc6823d26afb9a7c8969c6710d1fabe2fb43f4e0c15c64f standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b standard-performance (1.9.0) sha256=49483d31be448292951d80e5e67cdcb576c2502103c7b40aec6f1b6e9c88e3f2 @@ -546,15 +865,20 @@ CHECKSUMS timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.5) sha256=b852f924287ffb58a440856e862b056c8ad97e74b4b2526cee43e0771f40c25c + toml (0.3.0) + toml-merge (7.1.0) + toml-rb (4.2.0) tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 + typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 webrick (1.9.2) sha256=beb4a15fc474defed24a3bda4ffd88a490d517c9e4e6118c3edce59e45864131 yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 + yaml-merge (7.1.0) yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd @@ -562,6 +886,7 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 + zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH diff --git a/gems/ast-template/Rakefile b/gems/ast-template/Rakefile index 1da755b67..193fad244 100644 --- a/gems/ast-template/Rakefile +++ b/gems/ast-template/Rakefile @@ -130,23 +130,23 @@ end ### DUPLICATE DRIFT TASKS begin - require 'kettle/drift' + require "kettle/drift" Kettle::Drift.install_tasks rescue LoadError - desc('(stub) kettle:drift:check is unavailable') - task('kettle:drift:check') do + desc("(stub) kettle:drift:check is unavailable") + task("kettle:drift:check") do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc('(stub) kettle:drift:update is unavailable') - task('kettle:drift:update') do + desc("(stub) kettle:drift:update is unavailable") + task("kettle:drift:update") do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc('(stub) kettle:drift:force_update is unavailable') - task('kettle:drift:force_update') do + desc("(stub) kettle:drift:force_update is unavailable") + task("kettle:drift:force_update") do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc('(stub) kettle:drift is unavailable') - task('kettle:drift' => 'kettle:drift:update') + desc("(stub) kettle:drift is unavailable") + task("kettle:drift" => "kettle:drift:update") end ### TEMPLATING TASKS diff --git a/gems/ast-template/gemfiles/modular/templating.gemfile b/gems/ast-template/gemfiles/modular/templating.gemfile index a672de184..47138ffbb 100644 --- a/gems/ast-template/gemfiles/modular/templating.gemfile +++ b/gems/ast-template/gemfiles/modular/templating.gemfile @@ -1,18 +1,18 @@ # frozen_string_literal: true -structuredmerge_remote = ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false').zero? -kettle_remote = ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? +structuredmerge_remote = ENV.fetch("STRUCTUREDMERGE_DEV", "false").casecmp("false").zero? +kettle_remote = ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false").zero? if structuredmerge_remote # Parser dependencies for released installs. - gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' + gem "tree_sitter_language_pack", "~> 1.13", ">= 1.13.3" # Merge recipes for released installs. - gem 'kettle-jem', '>= 7.0' + gem "kettle-jem", ">= 7.0" end if kettle_remote # Template/plugin checks for released installs. - gem 'kettle-drift', '~> 1.0', '>= 1.0.6', require: false + gem "kettle-drift", "~> 1.0", ">= 1.0.6", require: false end # Set STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local development with path-based dependencies. @@ -21,4 +21,4 @@ end # # Set KETTLE_DEV_DEV=/path/to/my for local development with Kettle plugin gems. # When false (default / CI), released Kettle plugin gems are used. -eval_gemfile 'templating_local.gemfile' unless structuredmerge_remote && kettle_remote +eval_gemfile "templating_local.gemfile" unless structuredmerge_remote && kettle_remote diff --git a/gems/ast-template/gemfiles/modular/templating_local.gemfile b/gems/ast-template/gemfiles/modular/templating_local.gemfile index 0b0d4c669..7f73c3826 100644 --- a/gems/ast-template/gemfiles/modular/templating_local.gemfile +++ b/gems/ast-template/gemfiles/modular/templating_local.gemfile @@ -12,19 +12,21 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] -nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) +nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] +nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == "nomono" } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + if nomono_locked + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] + end end -Kernel.send(:gem, 'nomono', *nomono_activation_requirements) -require 'nomono/bundler' +Kernel.send(:gem, "nomono", *nomono_activation_requirements) +require "nomono/bundler" structuredmerge_local_gems = %w[ tree_haver @@ -67,25 +69,25 @@ structuredmerge_local_gems_to_eval = structuredmerge_local_gems - %w[ast-templat kettle_dev_local_gems_to_eval = kettle_dev_local_gems - %w[ast-template] - declared_gems platform :mri do - if ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false') != 0 + if ENV.fetch("STRUCTUREDMERGE_DEV", "false").casecmp("false") != 0 eval_nomono_gems( gems: structuredmerge_local_gems_to_eval, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - vendored_gems_env: 'VENDORED_GEMS', - vendor_gem_dir_env: 'VENDOR_GEM_DIR', - debug_env: 'STRUCTUREDMERGE_DEBUG' + prefix: "STRUCTUREDMERGE", + path_env: "STRUCTUREDMERGE_DEV", + vendored_gems_env: "VENDORED_GEMS", + vendor_gem_dir_env: "VENDOR_GEM_DIR", + debug_env: "STRUCTUREDMERGE_DEBUG" ) end - if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false') != 0 + if ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false") != 0 eval_nomono_gems( gems: kettle_dev_local_gems_to_eval, - prefix: 'KETTLE_DEV', - path_env: 'KETTLE_DEV_DEV', - vendored_gems_env: 'VENDORED_GEMS', - vendor_gem_dir_env: 'VENDOR_GEM_DIR', - debug_env: 'KETTLE_DEV_DEBUG' + prefix: "KETTLE_DEV", + path_env: "KETTLE_DEV_DEV", + vendored_gems_env: "VENDORED_GEMS", + vendor_gem_dir_env: "VENDOR_GEM_DIR", + debug_env: "KETTLE_DEV_DEBUG" ) end end diff --git a/gems/ast-template/lib/ast/template/version.rb b/gems/ast-template/lib/ast/template/version.rb index 0e1e7cf5d..2cf6f7536 100644 --- a/gems/ast-template/lib/ast/template/version.rb +++ b/gems/ast-template/lib/ast/template/version.rb @@ -3,7 +3,7 @@ module Ast module Template module Version - VERSION = '7.1.0' + VERSION = "7.1.0" end VERSION = Version::VERSION # Traditional Constant Location end diff --git a/gems/binary-merge/.kettle-drift.lock b/gems/binary-merge/.kettle-drift.lock index bf85fa76f..9a486b4b3 100644 --- a/gems/binary-merge/.kettle-drift.lock +++ b/gems/binary-merge/.kettle-drift.lock @@ -1,10 +1,74 @@ { + "(direct_sibling_local ||\nENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?)": [ + { + "file": "Gemfile", + "lines": [ + 79, + 119 + ] + } + ], + ".find { |spec| spec.name == 'nomono' }\nnomono_locked = nomono_locked_spec &&": [ + { + "file": "Gemfile", + "lines": [ + 90, + 130 + ] + } + ], + "ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?)\ndirect_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV')": [ + { + "file": "Gemfile", + "lines": [ + 80, + 120 + ] + } + ], + "Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version)\nnomono_activation_requirements = [\"= #{nomono_locked_spec.version}\"] if nomono_locked": [ + { + "file": "Gemfile", + "lines": [ + 92, + 132 + ] + } + ], + "Kernel.send(:gem, 'nomono', *nomono_activation_requirements)\nrequire 'nomono/bundler'": [ + { + "file": "Gemfile", + "lines": [ + 95, + 135 + ] + } + ], + "direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV')\ndirect_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil)": [ + { + "file": "Gemfile", + "lines": [ + 81, + 121 + ] + } + ], "eval_nomono_gems(\ngems: direct_sibling_gems,": [ { "file": "Gemfile", "lines": [ 59, - 99 + 99, + 139 + ] + } + ], + "gems: direct_sibling_gems,\nprefix: 'STRUCTUREDMERGE',": [ + { + "file": "Gemfile", + "lines": [ + 100, + 140 ] } ], @@ -13,7 +77,17 @@ "file": "Gemfile", "lines": [ 42, - 86 + 86, + 126 + ] + } + ], + "if direct_sibling_dev_was_set\nENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original": [ + { + "file": "Gemfile", + "lines": [ + 109, + 149 ] } ], @@ -22,7 +96,8 @@ "file": "Gemfile", "lines": [ 34, - 78 + 78, + 118 ] } ], @@ -31,7 +106,17 @@ "file": "Gemfile", "lines": [ 68, - 108 + 108, + 148 + ] + } + ], + "nomono_activation_requirements = nomono_requirements\nnomono_lockfile = File.expand_path('Gemfile.lock', __dir__)": [ + { + "file": "Gemfile", + "lines": [ + 84, + 124 ] } ], @@ -40,7 +125,8 @@ "file": "Gemfile", "lines": [ 47, - 91 + 91, + 131 ] } ], @@ -49,7 +135,53 @@ "file": "Gemfile", "lines": [ 43, - 87 + 87, + 127 + ] + } + ], + "nomono_lockfile = File.expand_path('Gemfile.lock', __dir__)\nif File.file?(nomono_lockfile)": [ + { + "file": "Gemfile", + "lines": [ + 85, + 125 + ] + } + ], + "path_env: 'STRUCTUREDMERGE_DEV',\nroot: %w[src my structuredmerge]": [ + { + "file": "Gemfile", + "lines": [ + 102, + 142 + ] + } + ], + "prefix: 'STRUCTUREDMERGE',\npath_env: 'STRUCTUREDMERGE_DEV',": [ + { + "file": "Gemfile", + "lines": [ + 101, + 141 + ] + } + ], + "require 'nomono/bundler'\nENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local": [ + { + "file": "Gemfile", + "lines": [ + 96, + 136 + ] + } + ], + "rescue LoadError\nwarn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.'": [ + { + "file": "Gemfile", + "lines": [ + 105, + 145 ] } ] diff --git a/gems/binary-merge/Gemfile b/gems/binary-merge/Gemfile index da2fdefd5..fcea1cd79 100644 --- a/gems/binary-merge/Gemfile +++ b/gems/binary-merge/Gemfile @@ -6,7 +6,7 @@ # kettle-jem will then preserve content between those markers across template runs. # kettle-jem:unfreeze -source 'https://gem.coop' +source "https://gem.coop" git_source(:codeberg) { |repo_name| "https://codeberg.org/#{repo_name}" } git_source(:gitlab) { |repo_name| "https://gitlab.com/#{repo_name}" } @@ -19,17 +19,61 @@ git_source(:gitlab) { |repo_name| "https://gitlab.com/#{repo_name}" } gemspec # Local workspace dependency wiring for *_local.gemfile overrides -nomono_requirements = ['~> 1.0', '>= 1.0.8'] -gem 'nomono', *nomono_requirements, require: false # ruby >= 2.2 +nomono_requirements = ["~> 1.0", ">= 1.0.8"] +gem "nomono", *nomono_requirements, require: false # ruby >= 2.2 # Direct sibling dependencies (env-switched via STRUCTUREDMERGE_DEV) direct_sibling_gems = %w[ tree_haver ] -direct_sibling_dev = ENV.fetch('STRUCTUREDMERGE_DEV', '') +direct_sibling_dev = ENV.fetch("STRUCTUREDMERGE_DEV", "") direct_sibling_local = !direct_sibling_dev.empty? && !%w[false 0 no off].include?(direct_sibling_dev.downcase) -direct_sibling_templating = ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? +direct_sibling_templating = ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? + +if direct_sibling_gems.any? && + (direct_sibling_local || + ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero?) + direct_sibling_dev_was_set = ENV.key?("STRUCTUREDMERGE_DEV") + direct_sibling_dev_original = ENV.fetch("STRUCTUREDMERGE_DEV", nil) + begin + nomono_activation_requirements = nomono_requirements + nomono_lockfile = File.expand_path("Gemfile.lock", __dir__) + if File.file?(nomono_lockfile) + nomono_locked_spec = Bundler::LockfileParser + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == "nomono" } + nomono_locked = nomono_locked_spec && + Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) + if nomono_locked + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] + end + end + Kernel.send(:gem, "nomono", *nomono_activation_requirements) + require "nomono/bundler" + if direct_sibling_templating && !direct_sibling_local + ENV["STRUCTUREDMERGE_DEV"] = File.expand_path("..", __dir__) + end + + eval_nomono_gems( + gems: direct_sibling_gems, + prefix: "STRUCTUREDMERGE", + path_env: "STRUCTUREDMERGE_DEV", + root: ["src", "my", "structuredmerge"] + ) + rescue LoadError + warn "Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies." + ensure + if direct_sibling_templating && !direct_sibling_local + if direct_sibling_dev_was_set + ENV["STRUCTUREDMERGE_DEV"] = direct_sibling_dev_original + else + ENV.delete("STRUCTUREDMERGE_DEV") + end + end + end +end if direct_sibling_gems.any? && (direct_sibling_local || @@ -112,28 +156,28 @@ if direct_sibling_gems.any? && end # Use released TSLP with the Ruby ABI platform-gem fix. -gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' +gem "tree_sitter_language_pack", "~> 1.13", ">= 1.13.3" # Templating (env-switched: STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local paths) -eval_gemfile 'gemfiles/modular/templating.gemfile' if ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? +eval_gemfile "gemfiles/modular/templating.gemfile" if ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? # Debugging -eval_gemfile 'gemfiles/modular/debug.gemfile' +eval_gemfile "gemfiles/modular/debug.gemfile" # Code Coverage (env-switched: KETTLE_DEV_DEV=true for local paths) -eval_gemfile 'gemfiles/modular/coverage.gemfile' +eval_gemfile "gemfiles/modular/coverage.gemfile" # Linting -eval_gemfile 'gemfiles/modular/style.gemfile' +eval_gemfile "gemfiles/modular/style.gemfile" # Documentation -eval_gemfile 'gemfiles/modular/documentation.gemfile' +eval_gemfile "gemfiles/modular/documentation.gemfile" # Optional -eval_gemfile 'gemfiles/modular/optional.gemfile' +eval_gemfile "gemfiles/modular/optional.gemfile" ### Std Lib Extracted Gems -eval_gemfile 'gemfiles/modular/x_std_libs.gemfile' +eval_gemfile "gemfiles/modular/x_std_libs.gemfile" # See unlocked_deps appraisal for more details on irb inclusion -gem 'irb', '~> 1.17' # ruby >= 2.7 +gem "irb", "~> 1.17" # ruby >= 2.7 diff --git a/gems/binary-merge/Gemfile.lock b/gems/binary-merge/Gemfile.lock index fd83113ee..e0b8c6950 100644 --- a/gems/binary-merge/Gemfile.lock +++ b/gems/binary-merge/Gemfile.lock @@ -5,6 +5,267 @@ PATH tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly + specs: + ast-crispr-markdown-markly (7.1.0) + ast-crispr (= 7.1.0) + markly-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism + specs: + ast-crispr-ruby-prism (7.1.0) + ast-crispr (= 7.1.0) + prism-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr + specs: + ast-crispr (7.1.0) + ast-merge (= 7.1.0) + service_actor (~> 3.9) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git + specs: + ast-merge-git (7.1.0) + ast-merge (= 7.1.0) + json-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge + specs: + ast-merge (7.1.0) + benchmark + token-resolver (~> 2.0, >= 2.0.4) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template + specs: + ast-template (7.1.0) + ast-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge + specs: + bash-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge + specs: + citrus-toml-merge (7.1.0) + toml-merge (= 7.1.0) + toml-rb (~> 4.1) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge + specs: + commonmarker-merge (7.1.0) + commonmarker (~> 2.2) + markdown-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge + specs: + dotenv-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge + specs: + go-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge + specs: + json-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem + specs: + kettle-jem (7.1.0) + addressable (>= 2.8, < 3) + ast-crispr-markdown-markly (= 7.1.0) + ast-crispr-ruby-prism (= 7.1.0) + ast-merge (= 7.1.0) + bash-merge (= 7.1.0) + citrus-toml-merge (= 7.1.0) + commonmarker-merge (= 7.1.0) + dotenv-merge (= 7.1.0) + json-merge (= 7.1.0) + kettle-dev (~> 2.3, >= 2.3.5) + kettle-rb (~> 0.1, >= 0.1.4) + kramdown-merge (= 7.1.0) + markdown-merge (= 7.1.0) + markly-merge (= 7.1.0) + prism-merge (= 7.1.0) + psych-merge (= 7.1.0) + rbs (>= 3.10) + rbs-merge (= 7.1.0) + ruby-merge (= 7.1.0) + token-resolver (~> 2.0, >= 2.0.4) + toml-merge (= 7.1.0) + toml-rb (~> 4.2) + tree_haver (= 7.1.0) + yaml-merge (= 7.1.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge + specs: + kramdown-merge (7.1.0) + kramdown (~> 2.5) + markdown-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge + specs: + markdown-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge + specs: + markly-merge (7.1.0) + markdown-merge (= 7.1.0) + markly (~> 0.9) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge + specs: + parslet-toml-merge (7.1.0) + toml (~> 0.3) + toml-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge + specs: + plain-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge + specs: + prism-merge (7.1.0) + prism (~> 1.6) + ruby-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge + specs: + psych-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + yaml-merge (= 7.1.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge + specs: + rbs-merge (7.1.0) + ast-merge (= 7.1.0) + rbs (>= 3.10) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge + specs: + ruby-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge + specs: + rust-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb + specs: + smorg-rb (7.1.0) + ast-merge (= 7.1.0) + ast-merge-git (= 7.1.0) + diff-lcs (~> 1.5) + go-merge (= 7.1.0) + json-merge (= 7.1.0) + kettle-jem (= 7.1.0) + markly-merge (= 7.1.0) + plain-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge + specs: + toml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver + specs: + tree_haver (7.1.0) + citrus (~> 3.0) + parslet (~> 2.0) + tree_sitter_language_pack (>= 1.13.2, < 2.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge + specs: + typescript-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge + specs: + yaml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge + specs: + zip-merge (7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + GEM remote: https://gem.coop/ specs: @@ -29,6 +290,11 @@ GEM cgi (0.5.2) citrus (3.0.2) cmdparse (3.0.7) + commonmarker (2.9.0-aarch64-linux) + commonmarker (2.9.0-aarch64-linux-musl) + commonmarker (2.9.0-arm64-darwin) + commonmarker (2.9.0-x86_64-linux) + commonmarker (2.9.0-x86_64-linux-musl) concurrent-ruby (1.3.8) date (3.5.1) debug (1.11.1) @@ -91,6 +357,8 @@ GEM kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) + kettle-drift (1.0.6) + version_gem (~> 1.1, >= 1.1.14) kettle-rb (0.1.5) kettle-soup-cover (3.0.4) kettle-wash (~> 0.1, >= 0.1.0) @@ -119,6 +387,7 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) + markly (0.16.0) mutex_m (0.3.0) nokogiri (1.19.4-aarch64-linux-gnu) racc (~> 1.4) @@ -281,6 +550,8 @@ GEM ruby-progressbar (1.13.0) ruby_engine (2.0.3) ruby_version (1.0.3) + service_actor (3.9.4) + zeitwerk (>= 1.0) silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) @@ -332,11 +603,14 @@ GEM delegate (~> 0.1) rspec (~> 3.0) timecop (>= 0.7, < 1) - tree_haver (7.1.0) - citrus (~> 3.0) + token-resolver (2.0.5) parslet (~> 2.0) - tree_sitter_language_pack (>= 1.13.2, < 2.0) - version_gem (~> 1.1, >= 1.1.9) + version_gem (~> 1.1, >= 1.1.14) + toml (0.3.0) + parslet (>= 1.8.0, < 3.0.0) + toml-rb (4.2.0) + citrus (~> 3.0, > 3.0) + racc (~> 1.7) tree_sitter_language_pack (1.13.3-aarch64-linux) sorbet-runtime (~> 0.5) tree_sitter_language_pack (1.13.3-arm64-darwin) @@ -391,24 +665,46 @@ DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) appraisal2-rubocop (~> 1.0, >= 1.0.0) + ast-crispr! + ast-crispr-markdown-markly! + ast-crispr-ruby-prism! + ast-merge! + ast-merge-git! + ast-template! + bash-merge! benchmark (~> 0.5, >= 0.5.0) binary-merge! bundler-audit (~> 0.9.3) cgi (~> 0.5) + citrus-toml-merge! + commonmarker-merge! debug (>= 1.1) + dotenv-merge! erb (~> 6.0, >= 6.0.6) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.0) + go-merge! irb (~> 1.17) + json-merge! kettle-dev (~> 2.0, >= 2.2.25) + kettle-drift (~> 1.0, >= 1.0.6) + kettle-jem! kettle-soup-cover (~> 3.0, >= 3.0.3) kettle-test (~> 2.0, >= 2.0.9) kramdown (~> 2.5, >= 2.5.2) + kramdown-merge! kramdown-parser-gfm (~> 1.1) + markdown-merge! + markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) + parslet-toml-merge! + plain-merge! + prism-merge! + psych-merge! rake (~> 13.0) rbs (>= 3.0) + rbs-merge! rdoc (~> 6.11) reek (~> 6.5, >= 6.5.0) require_bench (~> 1.0, >= 1.0.4) @@ -419,19 +715,27 @@ DEPENDENCIES rubocop-on-rbs (~> 2.0, >= 2.0.0) rubocop-packaging (~> 0.6, >= 0.6.0) rubocop-ruby3_2 (~> 3.0, >= 3.0.6) + ruby-merge! ruby-progressbar (~> 1.13) + rust-merge! + smorg-rb! standard (~> 1.56, >= 1.56.0) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) + toml-merge! + tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) + typescript-merge! webrick (~> 1.9) yaml-converter (~> 0.2, >= 0.2.3) + yaml-merge! yard (~> 0.9, >= 0.9.45) yard-fence (~> 0.9, >= 0.9.6) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) yard-timekeeper (~> 0.2, >= 0.2.4) yard-yaml (~> 0.2, >= 0.2.3) + zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af @@ -439,20 +743,35 @@ CHECKSUMS appraisal2 (3.2.0) sha256=ccd0b767ac4060cd7af6d16747459b6990f49c39c7b4fb1f7d1146b1e97c492f appraisal2-rubocop (1.0.0) sha256=b71410fbb014befda5340605a605b7f6f3f012739baf0acc5b4351b592c3258d ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 + ast-crispr (7.1.0) + ast-crispr-markdown-markly (7.1.0) + ast-crispr-ruby-prism (7.1.0) + ast-merge (7.1.0) + ast-merge-git (7.1.0) + ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 + bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 + citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 + commonmarker (2.9.0-aarch64-linux) sha256=e2b4aadb9a2cfa4e206582641ce3a49465549ac1ed4c289fdd63b78d8f24579c + commonmarker (2.9.0-aarch64-linux-musl) sha256=1cf4d2821f2a7e64945f1ed7c4eeced586fdb27ea7fe7337788802cf8f57cfca + commonmarker (2.9.0-arm64-darwin) sha256=1748dbfa4f5813b0d2a14bb4bbfa65a4ec293aa1c825016d60029ee0e132b046 + commonmarker (2.9.0-x86_64-linux) sha256=8cfe92970eef585a19ddf6613224b91cab64d6029834661bda801f877c9c7f43 + commonmarker (2.9.0-x86_64-linux-musl) sha256=293921398b839f79ceaf55010e061357e34f053822c3b003cd0be6686176335e + commonmarker-merge (7.1.0) concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 + dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -465,20 +784,28 @@ CHECKSUMS gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f + go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 + json-merge (7.1.0) kettle-dev (2.3.8) sha256=9d716ff21c660a730cb4e8d41e2e2f0630a28167a354b6e2924e242102aef72c + kettle-drift (1.0.6) sha256=46eda08fa4411d1f3c6682a95eef1c9df4e94611b3949f49d4c7b43c0ed356a3 + kettle-jem (7.1.0) kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f kettle-soup-cover (3.0.4) kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa + kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 + markdown-merge (7.1.0) + markly (0.16.0) sha256=6f70d79e385b1efc9e171f74c81628826259039fe6c778e03c3924c71dac5511 + markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-aarch64-linux-gnu) sha256=1269fb644a6de405057a53dd5c762b1209b43ca7424f839454d3dbc677c31a8f nokogiri (1.19.4-aarch64-linux-musl) sha256=35c65b9ce72b3bb03207bdbe7067915019dc18c1b9b59139684bd6690fdd01af @@ -492,15 +819,20 @@ CHECKSUMS parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 + parslet-toml-merge (7.1.0) + plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 + prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 + psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 + rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb @@ -535,15 +867,19 @@ CHECKSUMS rubocop-rspec_rails (2.32.0) sha256=4a0d641c72f6ebb957534f539d9d0a62c47abd8ce0d0aeee1ef4701e892a9100 rubocop-ruby3_2 (3.0.7) sha256=f53dd6d286fb05186214fc6ec116783e7f837030918e8931c05de773e98f8466 rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 + ruby-merge (7.1.0) ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 + rust-merge (7.1.0) + service_actor (3.9.4) sha256=e63b523630b9a7e62959b2a90113b08d2565b5de9c148557b281ef847c9539ce silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed + smorg-rb (7.1.0) sorbet-runtime (0.6.13347) sha256=54e7221d9f4b63f58aec79f3043752a9ba7810347c6ae0d903531591cc2d5f01 standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b @@ -557,17 +893,23 @@ CHECKSUMS thor (1.5.0) sha256=e3a9e55fe857e44859ce104a84675ab6e8cd59c650a49106a05f55f136425e73 timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 + token-resolver (2.0.5) sha256=b852f924287ffb58a440856e862b056c8ad97e74b4b2526cee43e0771f40c25c + toml (0.3.0) sha256=0a91d0f76a9036e84e44f95693b12f58d358c1df3ac8e3b5271f2056ecc6e4b9 + toml-merge (7.1.0) + toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-aarch64-linux) sha256=55ffc7c87868cb45658338363d9eba51b4a8b0259aa88e4de368d2bd1d52fea4 tree_sitter_language_pack (1.13.3-arm64-darwin) sha256=bc2498db605f212a1dbd2465ed3f65190d7da786f6ed5d30fcf958121aeb4a5c tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 + typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 webrick (1.9.2) sha256=beb4a15fc474defed24a3bda4ffd88a490d517c9e4e6118c3edce59e45864131 yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 + yaml-merge (7.1.0) yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd @@ -575,6 +917,7 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 + zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH diff --git a/gems/binary-merge/Rakefile b/gems/binary-merge/Rakefile index b29d3a04b..ea4ce831d 100644 --- a/gems/binary-merge/Rakefile +++ b/gems/binary-merge/Rakefile @@ -130,23 +130,23 @@ end ### DUPLICATE DRIFT TASKS begin - require 'kettle/drift' + require "kettle/drift" Kettle::Drift.install_tasks rescue LoadError - desc('(stub) kettle:drift:check is unavailable') - task('kettle:drift:check') do + desc("(stub) kettle:drift:check is unavailable") + task("kettle:drift:check") do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc('(stub) kettle:drift:update is unavailable') - task('kettle:drift:update') do + desc("(stub) kettle:drift:update is unavailable") + task("kettle:drift:update") do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc('(stub) kettle:drift:force_update is unavailable') - task('kettle:drift:force_update') do + desc("(stub) kettle:drift:force_update is unavailable") + task("kettle:drift:force_update") do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc('(stub) kettle:drift is unavailable') - task('kettle:drift' => 'kettle:drift:update') + desc("(stub) kettle:drift is unavailable") + task("kettle:drift" => "kettle:drift:update") end ### TEMPLATING TASKS diff --git a/gems/binary-merge/gemfiles/modular/templating.gemfile b/gems/binary-merge/gemfiles/modular/templating.gemfile index a672de184..47138ffbb 100644 --- a/gems/binary-merge/gemfiles/modular/templating.gemfile +++ b/gems/binary-merge/gemfiles/modular/templating.gemfile @@ -1,18 +1,18 @@ # frozen_string_literal: true -structuredmerge_remote = ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false').zero? -kettle_remote = ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? +structuredmerge_remote = ENV.fetch("STRUCTUREDMERGE_DEV", "false").casecmp("false").zero? +kettle_remote = ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false").zero? if structuredmerge_remote # Parser dependencies for released installs. - gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' + gem "tree_sitter_language_pack", "~> 1.13", ">= 1.13.3" # Merge recipes for released installs. - gem 'kettle-jem', '>= 7.0' + gem "kettle-jem", ">= 7.0" end if kettle_remote # Template/plugin checks for released installs. - gem 'kettle-drift', '~> 1.0', '>= 1.0.6', require: false + gem "kettle-drift", "~> 1.0", ">= 1.0.6", require: false end # Set STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local development with path-based dependencies. @@ -21,4 +21,4 @@ end # # Set KETTLE_DEV_DEV=/path/to/my for local development with Kettle plugin gems. # When false (default / CI), released Kettle plugin gems are used. -eval_gemfile 'templating_local.gemfile' unless structuredmerge_remote && kettle_remote +eval_gemfile "templating_local.gemfile" unless structuredmerge_remote && kettle_remote diff --git a/gems/binary-merge/gemfiles/modular/templating_local.gemfile b/gems/binary-merge/gemfiles/modular/templating_local.gemfile index d61b5694f..edfaddb6a 100644 --- a/gems/binary-merge/gemfiles/modular/templating_local.gemfile +++ b/gems/binary-merge/gemfiles/modular/templating_local.gemfile @@ -12,19 +12,21 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] -nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) +nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] +nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == "nomono" } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + if nomono_locked + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] + end end -Kernel.send(:gem, 'nomono', *nomono_activation_requirements) -require 'nomono/bundler' +Kernel.send(:gem, "nomono", *nomono_activation_requirements) +require "nomono/bundler" structuredmerge_local_gems = %w[ tree_haver @@ -67,25 +69,25 @@ structuredmerge_local_gems_to_eval = structuredmerge_local_gems - %w[binary-merg kettle_dev_local_gems_to_eval = kettle_dev_local_gems - %w[binary-merge] - declared_gems platform :mri do - if ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false') != 0 + if ENV.fetch("STRUCTUREDMERGE_DEV", "false").casecmp("false") != 0 eval_nomono_gems( gems: structuredmerge_local_gems_to_eval, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - vendored_gems_env: 'VENDORED_GEMS', - vendor_gem_dir_env: 'VENDOR_GEM_DIR', - debug_env: 'STRUCTUREDMERGE_DEBUG' + prefix: "STRUCTUREDMERGE", + path_env: "STRUCTUREDMERGE_DEV", + vendored_gems_env: "VENDORED_GEMS", + vendor_gem_dir_env: "VENDOR_GEM_DIR", + debug_env: "STRUCTUREDMERGE_DEBUG" ) end - if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false') != 0 + if ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false") != 0 eval_nomono_gems( gems: kettle_dev_local_gems_to_eval, - prefix: 'KETTLE_DEV', - path_env: 'KETTLE_DEV_DEV', - vendored_gems_env: 'VENDORED_GEMS', - vendor_gem_dir_env: 'VENDOR_GEM_DIR', - debug_env: 'KETTLE_DEV_DEBUG' + prefix: "KETTLE_DEV", + path_env: "KETTLE_DEV_DEV", + vendored_gems_env: "VENDORED_GEMS", + vendor_gem_dir_env: "VENDOR_GEM_DIR", + debug_env: "KETTLE_DEV_DEBUG" ) end end diff --git a/gems/binary-merge/lib/binary/merge/version.rb b/gems/binary-merge/lib/binary/merge/version.rb index d8ae92dfa..bb78df888 100644 --- a/gems/binary-merge/lib/binary/merge/version.rb +++ b/gems/binary-merge/lib/binary/merge/version.rb @@ -3,7 +3,7 @@ module Binary module Merge module Version - VERSION = '7.1.0' + VERSION = "7.1.0" end VERSION = Version::VERSION # Traditional Constant Location end diff --git a/gems/go-merge/Gemfile.lock b/gems/go-merge/Gemfile.lock index 855f56e22..f93aa133d 100644 --- a/gems/go-merge/Gemfile.lock +++ b/gems/go-merge/Gemfile.lock @@ -7,7 +7,39 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/ast-merge + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly + specs: + ast-crispr-markdown-markly (7.1.0) + ast-crispr (= 7.1.0) + markly-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism + specs: + ast-crispr-ruby-prism (7.1.0) + ast-crispr (= 7.1.0) + prism-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr + specs: + ast-crispr (7.1.0) + ast-merge (= 7.1.0) + service_actor (~> 3.9) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git + specs: + ast-merge-git (7.1.0) + ast-merge (= 7.1.0) + json-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge specs: ast-merge (7.1.0) benchmark @@ -16,7 +48,194 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/tree_haver + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template + specs: + ast-template (7.1.0) + ast-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge + specs: + bash-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge + specs: + binary-merge (7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge + specs: + citrus-toml-merge (7.1.0) + toml-merge (= 7.1.0) + toml-rb (~> 4.1) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge + specs: + commonmarker-merge (7.1.0) + commonmarker (~> 2.2) + markdown-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge + specs: + dotenv-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge + specs: + json-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem + specs: + kettle-jem (7.1.0) + addressable (>= 2.8, < 3) + ast-crispr-markdown-markly (= 7.1.0) + ast-crispr-ruby-prism (= 7.1.0) + ast-merge (= 7.1.0) + bash-merge (= 7.1.0) + citrus-toml-merge (= 7.1.0) + commonmarker-merge (= 7.1.0) + dotenv-merge (= 7.1.0) + json-merge (= 7.1.0) + kettle-dev (~> 2.3, >= 2.3.5) + kettle-rb (~> 0.1, >= 0.1.4) + kramdown-merge (= 7.1.0) + markdown-merge (= 7.1.0) + markly-merge (= 7.1.0) + prism-merge (= 7.1.0) + psych-merge (= 7.1.0) + rbs (>= 3.10) + rbs-merge (= 7.1.0) + ruby-merge (= 7.1.0) + token-resolver (~> 2.0, >= 2.0.4) + toml-merge (= 7.1.0) + toml-rb (~> 4.2) + tree_haver (= 7.1.0) + yaml-merge (= 7.1.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge + specs: + kramdown-merge (7.1.0) + kramdown (~> 2.5) + markdown-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge + specs: + markdown-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge + specs: + markly-merge (7.1.0) + markdown-merge (= 7.1.0) + markly (~> 0.9) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge + specs: + parslet-toml-merge (7.1.0) + toml (~> 0.3) + toml-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge + specs: + plain-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge + specs: + prism-merge (7.1.0) + prism (~> 1.6) + ruby-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge + specs: + psych-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + yaml-merge (= 7.1.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge + specs: + rbs-merge (7.1.0) + ast-merge (= 7.1.0) + rbs (>= 3.10) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge + specs: + ruby-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge + specs: + rust-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb + specs: + smorg-rb (7.1.0) + ast-merge (= 7.1.0) + ast-merge-git (= 7.1.0) + diff-lcs (~> 1.5) + go-merge (= 7.1.0) + json-merge (= 7.1.0) + kettle-jem (= 7.1.0) + markly-merge (= 7.1.0) + plain-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge + specs: + toml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver specs: tree_haver (7.1.0) citrus (~> 3.0) @@ -24,6 +243,29 @@ PATH tree_sitter_language_pack (>= 1.13.2, < 2.0) version_gem (~> 1.1, >= 1.1.9) +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge + specs: + typescript-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge + specs: + yaml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge + specs: + zip-merge (7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + GEM remote: https://gem.coop/ specs: @@ -48,6 +290,11 @@ GEM cgi (0.5.2) citrus (3.0.2) cmdparse (3.0.7) + commonmarker (2.9.0-aarch64-linux) + commonmarker (2.9.0-aarch64-linux-musl) + commonmarker (2.9.0-arm64-darwin) + commonmarker (2.9.0-x86_64-linux) + commonmarker (2.9.0-x86_64-linux-musl) concurrent-ruby (1.3.8) date (3.5.1) debug (1.11.1) @@ -110,6 +357,8 @@ GEM kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) + kettle-drift (1.0.6) + version_gem (~> 1.1, >= 1.1.14) kettle-rb (0.1.5) kettle-soup-cover (3.0.4) kettle-wash (~> 0.1, >= 0.1.0) @@ -138,6 +387,7 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) + markly (0.16.0) mutex_m (0.3.0) nokogiri (1.19.4-aarch64-linux-gnu) racc (~> 1.4) @@ -300,6 +550,8 @@ GEM ruby-progressbar (1.13.0) ruby_engine (2.0.3) ruby_version (1.0.3) + service_actor (3.9.4) + zeitwerk (>= 1.0) silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) @@ -354,6 +606,11 @@ GEM token-resolver (2.0.5) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.14) + toml (0.3.0) + parslet (>= 1.8.0, < 3.0.0) + toml-rb (4.2.0) + citrus (~> 3.0, > 3.0) + racc (~> 1.7) tree_sitter_language_pack (1.13.3-aarch64-linux) sorbet-runtime (~> 0.5) tree_sitter_language_pack (1.13.3-arm64-darwin) @@ -408,25 +665,46 @@ DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) appraisal2-rubocop (~> 1.0, >= 1.0.0) + ast-crispr! + ast-crispr-markdown-markly! + ast-crispr-ruby-prism! ast-merge! + ast-merge-git! + ast-template! + bash-merge! benchmark (~> 0.5, >= 0.5.0) + binary-merge! bundler-audit (~> 0.9.3) cgi (~> 0.5) + citrus-toml-merge! + commonmarker-merge! debug (>= 1.1) + dotenv-merge! erb (~> 6.0, >= 6.0.6) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.0) go-merge! irb (~> 1.17) + json-merge! kettle-dev (~> 2.0, >= 2.2.25) + kettle-drift (~> 1.0, >= 1.0.6) + kettle-jem! kettle-soup-cover (~> 3.0, >= 3.0.3) kettle-test (~> 2.0, >= 2.0.9) kramdown (~> 2.5, >= 2.5.2) + kramdown-merge! kramdown-parser-gfm (~> 1.1) + markdown-merge! + markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) + parslet-toml-merge! + plain-merge! + prism-merge! + psych-merge! rake (~> 13.0) rbs (>= 3.0) + rbs-merge! rdoc (~> 6.11) reek (~> 6.5, >= 6.5.0) require_bench (~> 1.0, >= 1.0.4) @@ -437,20 +715,27 @@ DEPENDENCIES rubocop-on-rbs (~> 2.0, >= 2.0.0) rubocop-packaging (~> 0.6, >= 0.6.0) rubocop-ruby3_2 (~> 3.0, >= 3.0.6) + ruby-merge! ruby-progressbar (~> 1.13) + rust-merge! + smorg-rb! standard (~> 1.56, >= 1.56.0) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) + toml-merge! tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) + typescript-merge! webrick (~> 1.9) yaml-converter (~> 0.2, >= 0.2.3) + yaml-merge! yard (~> 0.9, >= 0.9.45) yard-fence (~> 0.9, >= 0.9.6) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) yard-timekeeper (~> 0.2, >= 0.2.4) yard-yaml (~> 0.2, >= 0.2.3) + zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af @@ -458,20 +743,35 @@ CHECKSUMS appraisal2 (3.2.0) sha256=ccd0b767ac4060cd7af6d16747459b6990f49c39c7b4fb1f7d1146b1e97c492f appraisal2-rubocop (1.0.0) sha256=b71410fbb014befda5340605a605b7f6f3f012739baf0acc5b4351b592c3258d ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 + ast-crispr (7.1.0) + ast-crispr-markdown-markly (7.1.0) + ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) + ast-merge-git (7.1.0) + ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 + bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd + binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 + citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 + commonmarker (2.9.0-aarch64-linux) sha256=e2b4aadb9a2cfa4e206582641ce3a49465549ac1ed4c289fdd63b78d8f24579c + commonmarker (2.9.0-aarch64-linux-musl) sha256=1cf4d2821f2a7e64945f1ed7c4eeced586fdb27ea7fe7337788802cf8f57cfca + commonmarker (2.9.0-arm64-darwin) sha256=1748dbfa4f5813b0d2a14bb4bbfa65a4ec293aa1c825016d60029ee0e132b046 + commonmarker (2.9.0-x86_64-linux) sha256=8cfe92970eef585a19ddf6613224b91cab64d6029834661bda801f877c9c7f43 + commonmarker (2.9.0-x86_64-linux-musl) sha256=293921398b839f79ceaf55010e061357e34f053822c3b003cd0be6686176335e + commonmarker-merge (7.1.0) concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 + dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -489,16 +789,23 @@ CHECKSUMS io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 + json-merge (7.1.0) kettle-dev (2.3.9) + kettle-drift (1.0.6) sha256=46eda08fa4411d1f3c6682a95eef1c9df4e94611b3949f49d4c7b43c0ed356a3 + kettle-jem (7.1.0) kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f kettle-soup-cover (3.0.4) kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa + kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 + markdown-merge (7.1.0) + markly (0.16.0) sha256=6f70d79e385b1efc9e171f74c81628826259039fe6c778e03c3924c71dac5511 + markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-aarch64-linux-gnu) sha256=1269fb644a6de405057a53dd5c762b1209b43ca7424f839454d3dbc677c31a8f nokogiri (1.19.4-aarch64-linux-musl) sha256=35c65b9ce72b3bb03207bdbe7067915019dc18c1b9b59139684bd6690fdd01af @@ -512,15 +819,20 @@ CHECKSUMS parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 + parslet-toml-merge (7.1.0) + plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 + prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 + psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 + rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb @@ -555,15 +867,19 @@ CHECKSUMS rubocop-rspec_rails (2.32.0) sha256=4a0d641c72f6ebb957534f539d9d0a62c47abd8ce0d0aeee1ef4701e892a9100 rubocop-ruby3_2 (3.0.7) sha256=f53dd6d286fb05186214fc6ec116783e7f837030918e8931c05de773e98f8466 rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 + ruby-merge (7.1.0) ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 + rust-merge (7.1.0) + service_actor (3.9.4) sha256=e63b523630b9a7e62959b2a90113b08d2565b5de9c148557b281ef847c9539ce silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed + smorg-rb (7.1.0) sorbet-runtime (0.6.13351) sha256=f8fee17c6e3edf835dc6823d26afb9a7c8969c6710d1fabe2fb43f4e0c15c64f standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b @@ -578,17 +894,22 @@ CHECKSUMS timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.5) sha256=b852f924287ffb58a440856e862b056c8ad97e74b4b2526cee43e0771f40c25c + toml (0.3.0) sha256=0a91d0f76a9036e84e44f95693b12f58d358c1df3ac8e3b5271f2056ecc6e4b9 + toml-merge (7.1.0) + toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-aarch64-linux) sha256=55ffc7c87868cb45658338363d9eba51b4a8b0259aa88e4de368d2bd1d52fea4 tree_sitter_language_pack (1.13.3-arm64-darwin) sha256=bc2498db605f212a1dbd2465ed3f65190d7da786f6ed5d30fcf958121aeb4a5c tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 + typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 webrick (1.9.2) sha256=beb4a15fc474defed24a3bda4ffd88a490d517c9e4e6118c3edce59e45864131 yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 + yaml-merge (7.1.0) yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd @@ -596,6 +917,7 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 + zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH diff --git a/gems/rust-merge/.rubocop_gradual.lock b/gems/rust-merge/.rubocop_gradual.lock index 601bbb4d8..127794a7d 100644 --- a/gems/rust-merge/.rubocop_gradual.lock +++ b/gems/rust-merge/.rubocop_gradual.lock @@ -1,5 +1,5 @@ { - ".simplecov:2374550318": [ + ".simplecov:2734570421": [ [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] ], "Rakefile:1777384205": [ diff --git a/gems/rust-merge/.simplecov b/gems/rust-merge/.simplecov index 052cde894..291948cbd 100644 --- a/gems/rust-merge/.simplecov +++ b/gems/rust-merge/.simplecov @@ -10,5 +10,5 @@ # If the values for minimum coverage need to change, they should be changed both there, # and in 2 places in .github/workflows/coverage.yml. SimpleCov.configure do - cover "lib/**/*.rb", "lib/**/*.rake", "exe/*.rb" + cover 'lib/**/*.rb', 'lib/**/*.rake', 'exe/*.rb' end diff --git a/gems/rust-merge/Gemfile b/gems/rust-merge/Gemfile index 86253e7e4..a5b87ea3a 100644 --- a/gems/rust-merge/Gemfile +++ b/gems/rust-merge/Gemfile @@ -6,7 +6,7 @@ # kettle-jem will then preserve content between those markers across template runs. # kettle-jem:unfreeze -source "https://gem.coop" +source 'https://gem.coop' git_source(:codeberg) { |repo_name| "https://codeberg.org/#{repo_name}" } git_source(:gitlab) { |repo_name| "https://gitlab.com/#{repo_name}" } @@ -19,58 +19,54 @@ git_source(:gitlab) { |repo_name| "https://gitlab.com/#{repo_name}" } gemspec # Local workspace dependency wiring for *_local.gemfile overrides -nomono_requirements = ["~> 1.0", ">= 1.0.8"] -gem "nomono", *nomono_requirements, require: false # ruby >= 2.2 +nomono_requirements = ['~> 1.0', '>= 1.0.8'] +gem 'nomono', *nomono_requirements, require: false # ruby >= 2.2 # Direct sibling dependencies (env-switched via STRUCTUREDMERGE_DEV) direct_sibling_gems = %w[ ast-merge tree_haver ] -direct_sibling_dev = ENV.fetch("STRUCTUREDMERGE_DEV", "") +direct_sibling_dev = ENV.fetch('STRUCTUREDMERGE_DEV', '') direct_sibling_local = !direct_sibling_dev.empty? && !%w[false 0 no off].include?(direct_sibling_dev.downcase) -direct_sibling_templating = ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? +direct_sibling_templating = ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero?) - direct_sibling_dev_was_set = ENV.key?("STRUCTUREDMERGE_DEV") - direct_sibling_dev_original = ENV.fetch("STRUCTUREDMERGE_DEV", nil) + (direct_sibling_local || + ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) + direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') + direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) begin nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path("Gemfile.lock", __dir__) + nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == "nomono" } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - if nomono_locked - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] - end - end - Kernel.send(:gem, "nomono", *nomono_activation_requirements) - require "nomono/bundler" - if direct_sibling_templating && !direct_sibling_local - ENV["STRUCTUREDMERGE_DEV"] = File.expand_path("..", __dir__) + Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked end + Kernel.send(:gem, 'nomono', *nomono_activation_requirements) + require 'nomono/bundler' + ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local eval_nomono_gems( gems: direct_sibling_gems, - prefix: "STRUCTUREDMERGE", - path_env: "STRUCTUREDMERGE_DEV", - root: ["src", "my", "structuredmerge"] + prefix: 'STRUCTUREDMERGE', + path_env: 'STRUCTUREDMERGE_DEV', + root: %w[src my structuredmerge] ) rescue LoadError - warn "Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies." + warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' ensure if direct_sibling_templating && !direct_sibling_local if direct_sibling_dev_was_set - ENV["STRUCTUREDMERGE_DEV"] = direct_sibling_dev_original + ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original else - ENV.delete("STRUCTUREDMERGE_DEV") + ENV.delete('STRUCTUREDMERGE_DEV') end end end @@ -157,28 +153,28 @@ if direct_sibling_gems.any? && end # Use released TSLP with the Ruby ABI platform-gem fix. -gem "tree_sitter_language_pack", "~> 1.13", ">= 1.13.3" +gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' # Templating (env-switched: STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local paths) -eval_gemfile "gemfiles/modular/templating.gemfile" if ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? +eval_gemfile 'gemfiles/modular/templating.gemfile' if ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? # Debugging -eval_gemfile "gemfiles/modular/debug.gemfile" +eval_gemfile 'gemfiles/modular/debug.gemfile' # Code Coverage (env-switched: KETTLE_DEV_DEV=true for local paths) -eval_gemfile "gemfiles/modular/coverage.gemfile" +eval_gemfile 'gemfiles/modular/coverage.gemfile' # Linting -eval_gemfile "gemfiles/modular/style.gemfile" +eval_gemfile 'gemfiles/modular/style.gemfile' # Documentation -eval_gemfile "gemfiles/modular/documentation.gemfile" +eval_gemfile 'gemfiles/modular/documentation.gemfile' # Optional -eval_gemfile "gemfiles/modular/optional.gemfile" +eval_gemfile 'gemfiles/modular/optional.gemfile' ### Std Lib Extracted Gems -eval_gemfile "gemfiles/modular/x_std_libs.gemfile" +eval_gemfile 'gemfiles/modular/x_std_libs.gemfile' # See unlocked_deps appraisal for more details on irb inclusion -gem "irb", "~> 1.17" # ruby >= 2.7 +gem 'irb', '~> 1.17' # ruby >= 2.7 diff --git a/gems/rust-merge/Gemfile.lock b/gems/rust-merge/Gemfile.lock index be8494b07..abdd1b8ed 100644 --- a/gems/rust-merge/Gemfile.lock +++ b/gems/rust-merge/Gemfile.lock @@ -6,6 +6,38 @@ PATH tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly + specs: + ast-crispr-markdown-markly (7.1.0) + ast-crispr (= 7.1.0) + markly-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism + specs: + ast-crispr-ruby-prism (7.1.0) + ast-crispr (= 7.1.0) + prism-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr + specs: + ast-crispr (7.1.0) + ast-merge (= 7.1.0) + service_actor (~> 3.9) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git + specs: + ast-merge-git (7.1.0) + ast-merge (= 7.1.0) + json-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + PATH remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge specs: @@ -15,6 +47,193 @@ PATH tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template + specs: + ast-template (7.1.0) + ast-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge + specs: + bash-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge + specs: + binary-merge (7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge + specs: + citrus-toml-merge (7.1.0) + toml-merge (= 7.1.0) + toml-rb (~> 4.1) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge + specs: + commonmarker-merge (7.1.0) + commonmarker (~> 2.2) + markdown-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge + specs: + dotenv-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge + specs: + go-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge + specs: + json-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem + specs: + kettle-jem (7.1.0) + addressable (>= 2.8, < 3) + ast-crispr-markdown-markly (= 7.1.0) + ast-crispr-ruby-prism (= 7.1.0) + ast-merge (= 7.1.0) + bash-merge (= 7.1.0) + citrus-toml-merge (= 7.1.0) + commonmarker-merge (= 7.1.0) + dotenv-merge (= 7.1.0) + json-merge (= 7.1.0) + kettle-dev (~> 2.3, >= 2.3.5) + kettle-rb (~> 0.1, >= 0.1.4) + kramdown-merge (= 7.1.0) + markdown-merge (= 7.1.0) + markly-merge (= 7.1.0) + prism-merge (= 7.1.0) + psych-merge (= 7.1.0) + rbs (>= 3.10) + rbs-merge (= 7.1.0) + ruby-merge (= 7.1.0) + token-resolver (~> 2.0, >= 2.0.4) + toml-merge (= 7.1.0) + toml-rb (~> 4.2) + tree_haver (= 7.1.0) + yaml-merge (= 7.1.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge + specs: + kramdown-merge (7.1.0) + kramdown (~> 2.5) + markdown-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge + specs: + markdown-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge + specs: + markly-merge (7.1.0) + markdown-merge (= 7.1.0) + markly (~> 0.9) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge + specs: + parslet-toml-merge (7.1.0) + toml (~> 0.3) + toml-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge + specs: + plain-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge + specs: + prism-merge (7.1.0) + prism (~> 1.6) + ruby-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge + specs: + psych-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + yaml-merge (= 7.1.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge + specs: + rbs-merge (7.1.0) + ast-merge (= 7.1.0) + rbs (>= 3.10) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge + specs: + ruby-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb + specs: + smorg-rb (7.1.0) + ast-merge (= 7.1.0) + ast-merge-git (= 7.1.0) + diff-lcs (~> 1.5) + go-merge (= 7.1.0) + json-merge (= 7.1.0) + kettle-jem (= 7.1.0) + markly-merge (= 7.1.0) + plain-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge + specs: + toml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + PATH remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver specs: @@ -24,6 +243,29 @@ PATH tree_sitter_language_pack (>= 1.13.2, < 2.0) version_gem (~> 1.1, >= 1.1.9) +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge + specs: + typescript-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge + specs: + yaml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge + specs: + zip-merge (7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + GEM remote: https://gem.coop/ specs: @@ -48,6 +290,11 @@ GEM cgi (0.5.2) citrus (3.0.2) cmdparse (3.0.7) + commonmarker (2.9.0-aarch64-linux) + commonmarker (2.9.0-aarch64-linux-musl) + commonmarker (2.9.0-arm64-darwin) + commonmarker (2.9.0-x86_64-linux) + commonmarker (2.9.0-x86_64-linux-musl) concurrent-ruby (1.3.8) date (3.5.1) debug (1.11.1) @@ -105,11 +352,13 @@ GEM rdoc (>= 4.0.0) reline (>= 0.4.2) json (2.21.1) - kettle-dev (2.3.8) + kettle-dev (2.3.9) emoji_regex (>= 15.0) kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) + kettle-drift (1.0.6) + version_gem (~> 1.1, >= 1.1.14) kettle-rb (0.1.5) kettle-soup-cover (3.0.4) kettle-wash (~> 0.1, >= 0.1.0) @@ -138,6 +387,7 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) + markly (0.16.0) mutex_m (0.3.0) nokogiri (1.19.4-aarch64-linux-gnu) racc (~> 1.4) @@ -300,6 +550,8 @@ GEM ruby-progressbar (1.13.0) ruby_engine (2.0.3) ruby_version (1.0.3) + service_actor (3.9.4) + zeitwerk (>= 1.0) silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) @@ -354,6 +606,11 @@ GEM token-resolver (2.0.5) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.14) + toml (0.3.0) + parslet (>= 1.8.0, < 3.0.0) + toml-rb (4.2.0) + citrus (~> 3.0, > 3.0) + racc (~> 1.7) tree_sitter_language_pack (1.13.3-aarch64-linux) sorbet-runtime (~> 0.5) tree_sitter_language_pack (1.13.3-arm64-darwin) @@ -408,24 +665,46 @@ DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) appraisal2-rubocop (~> 1.0, >= 1.0.0) + ast-crispr! + ast-crispr-markdown-markly! + ast-crispr-ruby-prism! ast-merge! + ast-merge-git! + ast-template! + bash-merge! benchmark (~> 0.5, >= 0.5.0) + binary-merge! bundler-audit (~> 0.9.3) cgi (~> 0.5) + citrus-toml-merge! + commonmarker-merge! debug (>= 1.1) + dotenv-merge! erb (~> 6.0, >= 6.0.6) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.0) + go-merge! irb (~> 1.17) + json-merge! kettle-dev (~> 2.0, >= 2.2.25) + kettle-drift (~> 1.0, >= 1.0.6) + kettle-jem! kettle-soup-cover (~> 3.0, >= 3.0.3) kettle-test (~> 2.0, >= 2.0.9) kramdown (~> 2.5, >= 2.5.2) + kramdown-merge! kramdown-parser-gfm (~> 1.1) + markdown-merge! + markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) + parslet-toml-merge! + plain-merge! + prism-merge! + psych-merge! rake (~> 13.0) rbs (>= 3.0) + rbs-merge! rdoc (~> 6.11) reek (~> 6.5, >= 6.5.0) require_bench (~> 1.0, >= 1.0.4) @@ -436,21 +715,27 @@ DEPENDENCIES rubocop-on-rbs (~> 2.0, >= 2.0.0) rubocop-packaging (~> 0.6, >= 0.6.0) rubocop-ruby3_2 (~> 3.0, >= 3.0.6) + ruby-merge! ruby-progressbar (~> 1.13) rust-merge! + smorg-rb! standard (~> 1.56, >= 1.56.0) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) + toml-merge! tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) + typescript-merge! webrick (~> 1.9) yaml-converter (~> 0.2, >= 0.2.3) + yaml-merge! yard (~> 0.9, >= 0.9.45) yard-fence (~> 0.9, >= 0.9.6) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) yard-timekeeper (~> 0.2, >= 0.2.4) yard-yaml (~> 0.2, >= 0.2.3) + zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af @@ -458,20 +743,35 @@ CHECKSUMS appraisal2 (3.2.0) sha256=ccd0b767ac4060cd7af6d16747459b6990f49c39c7b4fb1f7d1146b1e97c492f appraisal2-rubocop (1.0.0) sha256=b71410fbb014befda5340605a605b7f6f3f012739baf0acc5b4351b592c3258d ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 + ast-crispr (7.1.0) + ast-crispr-markdown-markly (7.1.0) + ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) + ast-merge-git (7.1.0) + ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 + bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd + binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 + citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 + commonmarker (2.9.0-aarch64-linux) sha256=e2b4aadb9a2cfa4e206582641ce3a49465549ac1ed4c289fdd63b78d8f24579c + commonmarker (2.9.0-aarch64-linux-musl) sha256=1cf4d2821f2a7e64945f1ed7c4eeced586fdb27ea7fe7337788802cf8f57cfca + commonmarker (2.9.0-arm64-darwin) sha256=1748dbfa4f5813b0d2a14bb4bbfa65a4ec293aa1c825016d60029ee0e132b046 + commonmarker (2.9.0-x86_64-linux) sha256=8cfe92970eef585a19ddf6613224b91cab64d6029834661bda801f877c9c7f43 + commonmarker (2.9.0-x86_64-linux-musl) sha256=293921398b839f79ceaf55010e061357e34f053822c3b003cd0be6686176335e + commonmarker-merge (7.1.0) concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 + dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -484,20 +784,28 @@ CHECKSUMS gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f + go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 - kettle-dev (2.3.8) sha256=9d716ff21c660a730cb4e8d41e2e2f0630a28167a354b6e2924e242102aef72c + json-merge (7.1.0) + kettle-dev (2.3.9) + kettle-drift (1.0.6) sha256=46eda08fa4411d1f3c6682a95eef1c9df4e94611b3949f49d4c7b43c0ed356a3 + kettle-jem (7.1.0) kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f kettle-soup-cover (3.0.4) kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa + kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 + markdown-merge (7.1.0) + markly (0.16.0) sha256=6f70d79e385b1efc9e171f74c81628826259039fe6c778e03c3924c71dac5511 + markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-aarch64-linux-gnu) sha256=1269fb644a6de405057a53dd5c762b1209b43ca7424f839454d3dbc677c31a8f nokogiri (1.19.4-aarch64-linux-musl) sha256=35c65b9ce72b3bb03207bdbe7067915019dc18c1b9b59139684bd6690fdd01af @@ -511,15 +819,20 @@ CHECKSUMS parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 + parslet-toml-merge (7.1.0) + plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 + prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 + psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 + rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb @@ -554,16 +867,19 @@ CHECKSUMS rubocop-rspec_rails (2.32.0) sha256=4a0d641c72f6ebb957534f539d9d0a62c47abd8ce0d0aeee1ef4701e892a9100 rubocop-ruby3_2 (3.0.7) sha256=f53dd6d286fb05186214fc6ec116783e7f837030918e8931c05de773e98f8466 rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 + ruby-merge (7.1.0) ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 rust-merge (7.1.0) + service_actor (3.9.4) sha256=e63b523630b9a7e62959b2a90113b08d2565b5de9c148557b281ef847c9539ce silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed + smorg-rb (7.1.0) sorbet-runtime (0.6.13351) sha256=f8fee17c6e3edf835dc6823d26afb9a7c8969c6710d1fabe2fb43f4e0c15c64f standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b @@ -578,17 +894,22 @@ CHECKSUMS timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.5) sha256=b852f924287ffb58a440856e862b056c8ad97e74b4b2526cee43e0771f40c25c + toml (0.3.0) sha256=0a91d0f76a9036e84e44f95693b12f58d358c1df3ac8e3b5271f2056ecc6e4b9 + toml-merge (7.1.0) + toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-aarch64-linux) sha256=55ffc7c87868cb45658338363d9eba51b4a8b0259aa88e4de368d2bd1d52fea4 tree_sitter_language_pack (1.13.3-arm64-darwin) sha256=bc2498db605f212a1dbd2465ed3f65190d7da786f6ed5d30fcf958121aeb4a5c tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 + typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 webrick (1.9.2) sha256=beb4a15fc474defed24a3bda4ffd88a490d517c9e4e6118c3edce59e45864131 yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 + yaml-merge (7.1.0) yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd @@ -596,6 +917,7 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 + zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH diff --git a/gems/rust-merge/Rakefile b/gems/rust-merge/Rakefile index 0d02f3ef0..08bf2fd67 100644 --- a/gems/rust-merge/Rakefile +++ b/gems/rust-merge/Rakefile @@ -130,23 +130,23 @@ end ### DUPLICATE DRIFT TASKS begin - require "kettle/drift" + require 'kettle/drift' Kettle::Drift.install_tasks rescue LoadError - desc("(stub) kettle:drift:check is unavailable") - task("kettle:drift:check") do + desc('(stub) kettle:drift:check is unavailable') + task('kettle:drift:check') do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc("(stub) kettle:drift:update is unavailable") - task("kettle:drift:update") do + desc('(stub) kettle:drift:update is unavailable') + task('kettle:drift:update') do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc("(stub) kettle:drift:force_update is unavailable") - task("kettle:drift:force_update") do + desc('(stub) kettle:drift:force_update is unavailable') + task('kettle:drift:force_update') do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc("(stub) kettle:drift is unavailable") - task("kettle:drift" => "kettle:drift:update") + desc('(stub) kettle:drift is unavailable') + task('kettle:drift' => 'kettle:drift:update') end ### TEMPLATING TASKS diff --git a/gems/rust-merge/bin/yard b/gems/rust-merge/bin/yard index a7e8b6eed..5d516ad6f 100755 --- a/gems/rust-merge/bin/yard +++ b/gems/rust-merge/bin/yard @@ -12,4 +12,4 @@ # `yard` / `bin/yard`. Keep this binstub as a handoff to the task so # humans and tools that reach for `bin/yard` still run the full docs # workflow with post-processing hooks. -exec("bundle", "exec", "rake", "yard") +exec('bundle', 'exec', 'rake', 'yard') diff --git a/gems/rust-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile b/gems/rust-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile index dec650815..b8392fab0 100644 --- a/gems/rust-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile +++ b/gems/rust-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.1 -gem "benchmark", "~> 0.5", ">= 0.5.0" # Removed from Std Lib in Ruby 4.0 +gem 'benchmark', '~> 0.5', '>= 0.5.0' # Removed from Std Lib in Ruby 4.0 diff --git a/gems/rust-merge/gemfiles/modular/benchmark/vHEAD.gemfile b/gems/rust-merge/gemfiles/modular/benchmark/vHEAD.gemfile index e1eb20c5e..af214aafa 100644 --- a/gems/rust-merge/gemfiles/modular/benchmark/vHEAD.gemfile +++ b/gems/rust-merge/gemfiles/modular/benchmark/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.1 -gem "benchmark", github: "ruby/benchmark", branch: "master" +gem 'benchmark', github: 'ruby/benchmark', branch: 'master' diff --git a/gems/rust-merge/gemfiles/modular/cgi/r4/v0.5.gemfile b/gems/rust-merge/gemfiles/modular/cgi/r4/v0.5.gemfile index 19ed967c3..17ad97260 100644 --- a/gems/rust-merge/gemfiles/modular/cgi/r4/v0.5.gemfile +++ b/gems/rust-merge/gemfiles/modular/cgi/r4/v0.5.gemfile @@ -1 +1 @@ -gem "cgi", "~> 0.5" +gem 'cgi', '~> 0.5' diff --git a/gems/rust-merge/gemfiles/modular/cgi/vHEAD.gemfile b/gems/rust-merge/gemfiles/modular/cgi/vHEAD.gemfile index ef8b816ce..650fbf033 100644 --- a/gems/rust-merge/gemfiles/modular/cgi/vHEAD.gemfile +++ b/gems/rust-merge/gemfiles/modular/cgi/vHEAD.gemfile @@ -1 +1 @@ -gem "cgi", ">= 0.5" +gem 'cgi', '>= 0.5' diff --git a/gems/rust-merge/gemfiles/modular/coverage.gemfile b/gems/rust-merge/gemfiles/modular/coverage.gemfile index 52d737872..b93014b6b 100644 --- a/gems/rust-merge/gemfiles/modular/coverage.gemfile +++ b/gems/rust-merge/gemfiles/modular/coverage.gemfile @@ -4,11 +4,11 @@ # Set KETTLE_DEV_DEV=true for local development with path-based dependencies. # When false (default / CI), remote released gems are used. -if ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false").zero? +if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? # Coverage (remote/released) platform :mri do - gem "kettle-soup-cover", "~> 3.0", ">= 3.0.3", require: false + gem 'kettle-soup-cover', '~> 3.0', '>= 3.0.3', require: false end else - eval_gemfile "coverage_local.gemfile" + eval_gemfile 'coverage_local.gemfile' end diff --git a/gems/rust-merge/gemfiles/modular/coverage_local.gemfile b/gems/rust-merge/gemfiles/modular/coverage_local.gemfile index 3ec683a62..fb6e4df29 100644 --- a/gems/rust-merge/gemfiles/modular/coverage_local.gemfile +++ b/gems/rust-merge/gemfiles/modular/coverage_local.gemfile @@ -11,21 +11,19 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] -nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) +nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] +nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == "nomono" } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - if nomono_locked - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] - end + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked end -Kernel.send(:gem, "nomono", *nomono_activation_requirements) -require "nomono/bundler" +Kernel.send(:gem, 'nomono', *nomono_activation_requirements) +require 'nomono/bundler' local_gems = %w[kettle-dev kettle-test kettle-soup-cover kettle-drift] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) @@ -35,21 +33,21 @@ local_gems_to_eval = local_gems - %w[rust-merge] - declared_gems platform :mri do eval_nomono_gems( gems: local_gems_to_eval, - prefix: "KETTLE_DEV", - path_env: "KETTLE_DEV_DEV", - vendored_gems_env: "VENDORED_GEMS", - vendor_gem_dir_env: "VENDOR_GEM_DIR", - debug_env: "KETTLE_DEV_DEBUG" + prefix: 'KETTLE_DEV', + path_env: 'KETTLE_DEV_DEV', + vendored_gems_env: 'VENDORED_GEMS', + vendor_gem_dir_env: 'VENDOR_GEM_DIR', + debug_env: 'KETTLE_DEV_DEBUG' ) - if ENV.fetch("GALTZO_FLOSS_DEV", "false").casecmp("false") != 0 + if ENV.fetch('GALTZO_FLOSS_DEV', 'false').casecmp('false') != 0 eval_nomono_gems( gems: %w[turbo_tests2], - prefix: "GALTZO_FLOSS", - path_env: "GALTZO_FLOSS_DEV", - vendored_gems_env: "GALTZO_FLOSS_VENDORED_GEMS", - vendor_gem_dir_env: "GALTZO_FLOSS_VENDOR_GEM_DIR", - debug_env: "GALTZO_FLOSS_DEBUG" + prefix: 'GALTZO_FLOSS', + path_env: 'GALTZO_FLOSS_DEV', + vendored_gems_env: 'GALTZO_FLOSS_VENDORED_GEMS', + vendor_gem_dir_env: 'GALTZO_FLOSS_VENDOR_GEM_DIR', + debug_env: 'GALTZO_FLOSS_DEBUG' ) end end diff --git a/gems/rust-merge/gemfiles/modular/debug.gemfile b/gems/rust-merge/gemfiles/modular/debug.gemfile index 4e15b1a3a..eed8d4d1e 100644 --- a/gems/rust-merge/gemfiles/modular/debug.gemfile +++ b/gems/rust-merge/gemfiles/modular/debug.gemfile @@ -13,10 +13,10 @@ platform :mri do # Debugging - Ensure ENV["DEBUG"] == "true" to use debuggers within spec suite # Use binding.break, binding.b, or debugger in code - gem "debug", ">= 1.1" # ruby >= 2.7 + gem 'debug', '>= 1.1' # ruby >= 2.7 # Dev Console - Binding.pry - Irb replacement # gem "pry", "~> 0.14" # ruby >= 2.0 end -gem "gem_bench", "~> 2.0", ">= 2.0.5" +gem 'gem_bench', '~> 2.0', '>= 2.0.5' diff --git a/gems/rust-merge/gemfiles/modular/documentation.gemfile b/gems/rust-merge/gemfiles/modular/documentation.gemfile index d8215416e..9d4535f12 100644 --- a/gems/rust-merge/gemfiles/modular/documentation.gemfile +++ b/gems/rust-merge/gemfiles/modular/documentation.gemfile @@ -7,20 +7,20 @@ # # Documentation -gem "kramdown", "~> 2.5", ">= 2.5.2", require: false # Ruby >= 2.5 -gem "kramdown-parser-gfm", "~> 1.1", require: false # Ruby >= 2.3 -gem "yaml-converter", "~> 0.2", ">= 0.2.3", require: false # Ruby >= 3.2 -gem "yard", "~> 0.9", ">= 0.9.45", require: false -gem "yard-junk", "~> 0.1", ">= 0.1.0", require: false # Ruby >= 3.1 -gem "yard-relative_markdown_links", "~> 0.6", require: false +gem 'kramdown', '~> 2.5', '>= 2.5.2', require: false # Ruby >= 2.5 +gem 'kramdown-parser-gfm', '~> 1.1', require: false # Ruby >= 2.3 +gem 'yaml-converter', '~> 0.2', '>= 0.2.3', require: false # Ruby >= 3.2 +gem 'yard', '~> 0.9', '>= 0.9.45', require: false +gem 'yard-junk', '~> 0.1', '>= 0.1.0', require: false # Ruby >= 3.1 +gem 'yard-relative_markdown_links', '~> 0.6', require: false -if ENV.fetch("GALTZO_FLOSS_DEV", "false").casecmp("false").zero? - gem "yard-fence", "~> 0.9", ">= 0.9.6", require: false # Ruby >= 3.2 - gem "yard-timekeeper", "~> 0.2", ">= 0.2.4", require: false - gem "yard-yaml", "~> 0.2", ">= 0.2.3", require: false +if ENV.fetch('GALTZO_FLOSS_DEV', 'false').casecmp('false').zero? + gem 'yard-fence', '~> 0.9', '>= 0.9.6', require: false # Ruby >= 3.2 + gem 'yard-timekeeper', '~> 0.2', '>= 0.2.4', require: false + gem 'yard-yaml', '~> 0.2', '>= 0.2.3', require: false else - eval_gemfile "documentation_local.gemfile" + eval_gemfile 'documentation_local.gemfile' end # Std Lib extractions -gem "rdoc", "~> 6.11", require: false unless ENV.fetch("KJ_FRAMEWORK_MATRIX_GEM", "") == "rdoc" +gem 'rdoc', '~> 6.11', require: false unless ENV.fetch('KJ_FRAMEWORK_MATRIX_GEM', '') == 'rdoc' diff --git a/gems/rust-merge/gemfiles/modular/documentation_local.gemfile b/gems/rust-merge/gemfiles/modular/documentation_local.gemfile index 3e7919342..c8755d61e 100644 --- a/gems/rust-merge/gemfiles/modular/documentation_local.gemfile +++ b/gems/rust-merge/gemfiles/modular/documentation_local.gemfile @@ -11,21 +11,19 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] -nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) +nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] +nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == "nomono" } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - if nomono_locked - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] - end + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked end -Kernel.send(:gem, "nomono", *nomono_activation_requirements) -require "nomono/bundler" +Kernel.send(:gem, 'nomono', *nomono_activation_requirements) +require 'nomono/bundler' local_gems = %w[yard-fence yard-timekeeper yard-yaml] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) @@ -34,9 +32,9 @@ local_gems_to_eval = local_gems - %w[rust-merge] - declared_gems # export GALTZO_FLOSS_DEV=/path/to/galtzo-floss eval_nomono_gems( gems: local_gems_to_eval, - prefix: "GALTZO_FLOSS", - path_env: "GALTZO_FLOSS_DEV", - vendored_gems_env: "GALTZO_FLOSS_VENDORED_GEMS", - vendor_gem_dir_env: "GALTZO_FLOSS_VENDOR_GEM_DIR", - debug_env: "GALTZO_FLOSS_DEBUG" + prefix: 'GALTZO_FLOSS', + path_env: 'GALTZO_FLOSS_DEV', + vendored_gems_env: 'GALTZO_FLOSS_VENDORED_GEMS', + vendor_gem_dir_env: 'GALTZO_FLOSS_VENDOR_GEM_DIR', + debug_env: 'GALTZO_FLOSS_DEBUG' ) diff --git a/gems/rust-merge/gemfiles/modular/erb/r2/v3.0.gemfile b/gems/rust-merge/gemfiles/modular/erb/r2/v3.0.gemfile index c03bd8d85..7c83a239b 100644 --- a/gems/rust-merge/gemfiles/modular/erb/r2/v3.0.gemfile +++ b/gems/rust-merge/gemfiles/modular/erb/r2/v3.0.gemfile @@ -1 +1 @@ -gem "erb", "~> 3.0" # ruby >= 2.7.0 +gem 'erb', '~> 3.0' # ruby >= 2.7.0 diff --git a/gems/rust-merge/gemfiles/modular/erb/r3/v5.0.gemfile b/gems/rust-merge/gemfiles/modular/erb/r3/v5.0.gemfile index 1bd029cc1..ec7ff451f 100644 --- a/gems/rust-merge/gemfiles/modular/erb/r3/v5.0.gemfile +++ b/gems/rust-merge/gemfiles/modular/erb/r3/v5.0.gemfile @@ -1 +1 @@ -gem "erb", "~> 6.0", ">= 6.0.6" # ruby >= 3.2.0 +gem 'erb', '~> 6.0', '>= 6.0.6' # ruby >= 3.2.0 diff --git a/gems/rust-merge/gemfiles/modular/erb/r4/v5.0.gemfile b/gems/rust-merge/gemfiles/modular/erb/r4/v5.0.gemfile index 1bd029cc1..ec7ff451f 100644 --- a/gems/rust-merge/gemfiles/modular/erb/r4/v5.0.gemfile +++ b/gems/rust-merge/gemfiles/modular/erb/r4/v5.0.gemfile @@ -1 +1 @@ -gem "erb", "~> 6.0", ">= 6.0.6" # ruby >= 3.2.0 +gem 'erb', '~> 6.0', '>= 6.0.6' # ruby >= 3.2.0 diff --git a/gems/rust-merge/gemfiles/modular/erb/vHEAD.gemfile b/gems/rust-merge/gemfiles/modular/erb/vHEAD.gemfile index 48fee4218..ea0101185 100644 --- a/gems/rust-merge/gemfiles/modular/erb/vHEAD.gemfile +++ b/gems/rust-merge/gemfiles/modular/erb/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 3.2 -gem "erb", github: "ruby/erb", branch: "master" +gem 'erb', github: 'ruby/erb', branch: 'master' diff --git a/gems/rust-merge/gemfiles/modular/json/truffleruby_22_3.gemfile b/gems/rust-merge/gemfiles/modular/json/truffleruby_22_3.gemfile index b0e69ab11..9b2f8d96a 100644 --- a/gems/rust-merge/gemfiles/modular/json/truffleruby_22_3.gemfile +++ b/gems/rust-merge/gemfiles/modular/json/truffleruby_22_3.gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -if RUBY_ENGINE == "truffleruby" && RUBY_ENGINE_VERSION.start_with?("22.3") +if RUBY_ENGINE == 'truffleruby' && RUBY_ENGINE_VERSION.start_with?('22.3') # TruffleRuby 22.3 ships the json default gem from its emulated MRI Ruby. - gem "json", "= 2.5.1" + gem 'json', '= 2.5.1' end diff --git a/gems/rust-merge/gemfiles/modular/json/truffleruby_23_0.gemfile b/gems/rust-merge/gemfiles/modular/json/truffleruby_23_0.gemfile index 7b2660a2b..d787a5ef4 100644 --- a/gems/rust-merge/gemfiles/modular/json/truffleruby_23_0.gemfile +++ b/gems/rust-merge/gemfiles/modular/json/truffleruby_23_0.gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -if RUBY_ENGINE == "truffleruby" && RUBY_ENGINE_VERSION.start_with?("23.0") +if RUBY_ENGINE == 'truffleruby' && RUBY_ENGINE_VERSION.start_with?('23.0') # TruffleRuby 23.0 ships the json default gem from its emulated MRI Ruby. - gem "json", "= 2.6.1" + gem 'json', '= 2.6.1' end diff --git a/gems/rust-merge/gemfiles/modular/json/truffleruby_23_1.gemfile b/gems/rust-merge/gemfiles/modular/json/truffleruby_23_1.gemfile index dfa21f2e4..d78486b0e 100644 --- a/gems/rust-merge/gemfiles/modular/json/truffleruby_23_1.gemfile +++ b/gems/rust-merge/gemfiles/modular/json/truffleruby_23_1.gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -if RUBY_ENGINE == "truffleruby" && RUBY_ENGINE_VERSION.start_with?("23.1") +if RUBY_ENGINE == 'truffleruby' && RUBY_ENGINE_VERSION.start_with?('23.1') # TruffleRuby 23.1 ships the json default gem from its emulated MRI Ruby. - gem "json", "= 2.6.3" + gem 'json', '= 2.6.3' end diff --git a/gems/rust-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile b/gems/rust-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile index 42e9d9bd4..e27f1bbae 100644 --- a/gems/rust-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile +++ b/gems/rust-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 -gem "mutex_m", "~> 0.2" +gem 'mutex_m', '~> 0.2' diff --git a/gems/rust-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile b/gems/rust-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile index 42e9d9bd4..e27f1bbae 100644 --- a/gems/rust-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile +++ b/gems/rust-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 -gem "mutex_m", "~> 0.2" +gem 'mutex_m', '~> 0.2' diff --git a/gems/rust-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile b/gems/rust-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile index 42e9d9bd4..e27f1bbae 100644 --- a/gems/rust-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile +++ b/gems/rust-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 -gem "mutex_m", "~> 0.2" +gem 'mutex_m', '~> 0.2' diff --git a/gems/rust-merge/gemfiles/modular/mutex_m/vHEAD.gemfile b/gems/rust-merge/gemfiles/modular/mutex_m/vHEAD.gemfile index 8af3b6fca..9dac2f6cb 100644 --- a/gems/rust-merge/gemfiles/modular/mutex_m/vHEAD.gemfile +++ b/gems/rust-merge/gemfiles/modular/mutex_m/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 (dependency of omniauth) -gem "mutex_m", github: "ruby/mutex_m", branch: "master" +gem 'mutex_m', github: 'ruby/mutex_m', branch: 'master' diff --git a/gems/rust-merge/gemfiles/modular/optional.gemfile b/gems/rust-merge/gemfiles/modular/optional.gemfile index 80bc45196..9ea429538 100644 --- a/gems/rust-merge/gemfiles/modular/optional.gemfile +++ b/gems/rust-merge/gemfiles/modular/optional.gemfile @@ -9,8 +9,8 @@ # Optional dependencies are not depended on directly, but may be used if present. # Required for curated binstubs generated by kettle-jem install -gem "rbs", ">= 3.0", require: false # ruby >= 3.1 +gem 'rbs', '>= 3.0', require: false # ruby >= 3.1 # Required for kettle-pre-release # URL parsing with Unicode support (falls back to URI if not available) -gem "addressable", ">= 2.8", "< 3" # ruby >= 2.2 +gem 'addressable', '>= 2.8', '< 3' # ruby >= 2.2 diff --git a/gems/rust-merge/gemfiles/modular/rspec.gemfile b/gems/rust-merge/gemfiles/modular/rspec.gemfile index 72fdf8b7f..2af210a41 100644 --- a/gems/rust-merge/gemfiles/modular/rspec.gemfile +++ b/gems/rust-merge/gemfiles/modular/rspec.gemfile @@ -1,4 +1,4 @@ -gem "rspec_junit_formatter", - github: "pboling/rspec_junit_formatter", - branch: "main", - ref: "9e6bcaaedd49477b62878ed568dc4ada5cc7cb5e" +gem 'rspec_junit_formatter', + github: 'pboling/rspec_junit_formatter', + branch: 'main', + ref: '9e6bcaaedd49477b62878ed568dc4ada5cc7cb5e' diff --git a/gems/rust-merge/gemfiles/modular/runtime_heads.gemfile b/gems/rust-merge/gemfiles/modular/runtime_heads.gemfile index 02f134c7f..ebf17c529 100644 --- a/gems/rust-merge/gemfiles/modular/runtime_heads.gemfile +++ b/gems/rust-merge/gemfiles/modular/runtime_heads.gemfile @@ -8,4 +8,4 @@ # Test against HEAD of runtime dependencies so we can proactively file bugs -eval_gemfile("x_std_libs/vHEAD.gemfile") +eval_gemfile('x_std_libs/vHEAD.gemfile') diff --git a/gems/rust-merge/gemfiles/modular/stringio/r2/v3.0.gemfile b/gems/rust-merge/gemfiles/modular/stringio/r2/v3.0.gemfile index e85bb18ee..3616f4e3a 100644 --- a/gems/rust-merge/gemfiles/modular/stringio/r2/v3.0.gemfile +++ b/gems/rust-merge/gemfiles/modular/stringio/r2/v3.0.gemfile @@ -2,4 +2,4 @@ # NOT SEMVER # Version 3.0.7 dropped support for Ruby <= 2.7 # Version 3.0.0 dropped support for Ruby <= 2.4 -gem "stringio", ">= 3.0" +gem 'stringio', '>= 3.0' diff --git a/gems/rust-merge/gemfiles/modular/stringio/r3/v3.0.gemfile b/gems/rust-merge/gemfiles/modular/stringio/r3/v3.0.gemfile index e85bb18ee..3616f4e3a 100644 --- a/gems/rust-merge/gemfiles/modular/stringio/r3/v3.0.gemfile +++ b/gems/rust-merge/gemfiles/modular/stringio/r3/v3.0.gemfile @@ -2,4 +2,4 @@ # NOT SEMVER # Version 3.0.7 dropped support for Ruby <= 2.7 # Version 3.0.0 dropped support for Ruby <= 2.4 -gem "stringio", ">= 3.0" +gem 'stringio', '>= 3.0' diff --git a/gems/rust-merge/gemfiles/modular/stringio/r4/v3.0.gemfile b/gems/rust-merge/gemfiles/modular/stringio/r4/v3.0.gemfile index e85bb18ee..3616f4e3a 100644 --- a/gems/rust-merge/gemfiles/modular/stringio/r4/v3.0.gemfile +++ b/gems/rust-merge/gemfiles/modular/stringio/r4/v3.0.gemfile @@ -2,4 +2,4 @@ # NOT SEMVER # Version 3.0.7 dropped support for Ruby <= 2.7 # Version 3.0.0 dropped support for Ruby <= 2.4 -gem "stringio", ">= 3.0" +gem 'stringio', '>= 3.0' diff --git a/gems/rust-merge/gemfiles/modular/stringio/vHEAD.gemfile b/gems/rust-merge/gemfiles/modular/stringio/vHEAD.gemfile index 5f2a74126..78f5f5d8a 100644 --- a/gems/rust-merge/gemfiles/modular/stringio/vHEAD.gemfile +++ b/gems/rust-merge/gemfiles/modular/stringio/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 (dependency of omniauth) -gem "stringio", github: "ruby/stringio", branch: "master" +gem 'stringio', github: 'ruby/stringio', branch: 'master' diff --git a/gems/rust-merge/gemfiles/modular/style.gemfile b/gems/rust-merge/gemfiles/modular/style.gemfile index 35de4dcd6..4dbcc02c0 100644 --- a/gems/rust-merge/gemfiles/modular/style.gemfile +++ b/gems/rust-merge/gemfiles/modular/style.gemfile @@ -9,23 +9,23 @@ # Style tasks run on the latest Ruby; RuboCop-LTS selects the compatibility # rules for the configured Ruby floor independently from task dependency floors. -gem "reek", "~> 6.5", ">= 6.5.0" +gem 'reek', '~> 6.5', '>= 6.5.0' platform :mri do - gem "appraisal2-rubocop", "~> 1.0", ">= 1.0.0", require: false - gem "rubocop-gradual", "~> 0.4", ">= 0.4.0" - gem "rubocop-minitest", "~> 0.40", ">= 0.40.0" - gem "rubocop-on-rbs", "~> 2.0", ">= 2.0.0" # ruby >= 3.2.0 + gem 'appraisal2-rubocop', '~> 1.0', '>= 1.0.0', require: false + gem 'rubocop-gradual', '~> 0.4', '>= 0.4.0' + gem 'rubocop-minitest', '~> 0.40', '>= 0.40.0' + gem 'rubocop-on-rbs', '~> 2.0', '>= 2.0.0' # ruby >= 3.2.0 # gem "rubocop", "~> 1.73", ">= 1.73.2" # constrained by standard - gem "rubocop-packaging", "~> 0.6", ">= 0.6.0" - gem "standard", "~> 1.56", ">= 1.56.0" + gem 'rubocop-packaging', '~> 0.6', '>= 0.6.0' + gem 'standard', '~> 1.56', '>= 1.56.0' - if ENV.fetch("RUBOCOP_LTS_LOCAL", "false").casecmp("false").zero? + if ENV.fetch('RUBOCOP_LTS_LOCAL', 'false').casecmp('false').zero? declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) - gem "rubocop-lts", "~> 24.2", ">= 24.2.1" unless declared_gems.include?("rubocop-lts") - gem "rubocop-lts-rspec", "~> 1.0", ">= 1.0.5" unless declared_gems.include?("rubocop-lts-rspec") - gem "rubocop-ruby3_2", "~> 3.0", ">= 3.0.6" unless declared_gems.include?("rubocop-ruby3_2") + gem 'rubocop-lts', '~> 24.2', '>= 24.2.1' unless declared_gems.include?('rubocop-lts') + gem 'rubocop-lts-rspec', '~> 1.0', '>= 1.0.5' unless declared_gems.include?('rubocop-lts-rspec') + gem 'rubocop-ruby3_2', '~> 3.0', '>= 3.0.6' unless declared_gems.include?('rubocop-ruby3_2') else - eval_gemfile("style_local.gemfile") + eval_gemfile('style_local.gemfile') end end diff --git a/gems/rust-merge/gemfiles/modular/style_local.gemfile b/gems/rust-merge/gemfiles/modular/style_local.gemfile index ebe155ab1..d2c6290ca 100644 --- a/gems/rust-merge/gemfiles/modular/style_local.gemfile +++ b/gems/rust-merge/gemfiles/modular/style_local.gemfile @@ -14,21 +14,19 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] -nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) +nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] +nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == "nomono" } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - if nomono_locked - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] - end + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked end -Kernel.send(:gem, "nomono", *nomono_activation_requirements) -require "nomono/bundler" +Kernel.send(:gem, 'nomono', *nomono_activation_requirements) +require 'nomono/bundler' local_gems = %w[rubocop-lts rubocop-lts-rspec rubocop-ruby3_2 standard-rubocop-lts] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) @@ -38,11 +36,11 @@ local_gems_to_eval = local_gems - %w[rust-merge] - declared_gems platform :mri do eval_nomono_gems( gems: local_gems_to_eval, - prefix: "RUBOCOP_LTS", - path_env: "RUBOCOP_LTS_LOCAL", - vendored_gems_env: "VENDORED_GEMS", - vendor_gem_dir_env: "VENDOR_GEM_DIR", - debug_env: "RUBOCOP_LTS_DEBUG", - root: ["src", "rubocop-lts"] + prefix: 'RUBOCOP_LTS', + path_env: 'RUBOCOP_LTS_LOCAL', + vendored_gems_env: 'VENDORED_GEMS', + vendor_gem_dir_env: 'VENDOR_GEM_DIR', + debug_env: 'RUBOCOP_LTS_DEBUG', + root: %w[src rubocop-lts] ) end diff --git a/gems/rust-merge/gemfiles/modular/templating.gemfile b/gems/rust-merge/gemfiles/modular/templating.gemfile index 47138ffbb..a672de184 100644 --- a/gems/rust-merge/gemfiles/modular/templating.gemfile +++ b/gems/rust-merge/gemfiles/modular/templating.gemfile @@ -1,18 +1,18 @@ # frozen_string_literal: true -structuredmerge_remote = ENV.fetch("STRUCTUREDMERGE_DEV", "false").casecmp("false").zero? -kettle_remote = ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false").zero? +structuredmerge_remote = ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false').zero? +kettle_remote = ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? if structuredmerge_remote # Parser dependencies for released installs. - gem "tree_sitter_language_pack", "~> 1.13", ">= 1.13.3" + gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' # Merge recipes for released installs. - gem "kettle-jem", ">= 7.0" + gem 'kettle-jem', '>= 7.0' end if kettle_remote # Template/plugin checks for released installs. - gem "kettle-drift", "~> 1.0", ">= 1.0.6", require: false + gem 'kettle-drift', '~> 1.0', '>= 1.0.6', require: false end # Set STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local development with path-based dependencies. @@ -21,4 +21,4 @@ end # # Set KETTLE_DEV_DEV=/path/to/my for local development with Kettle plugin gems. # When false (default / CI), released Kettle plugin gems are used. -eval_gemfile "templating_local.gemfile" unless structuredmerge_remote && kettle_remote +eval_gemfile 'templating_local.gemfile' unless structuredmerge_remote && kettle_remote diff --git a/gems/rust-merge/gemfiles/modular/templating_local.gemfile b/gems/rust-merge/gemfiles/modular/templating_local.gemfile index 129aed87b..a56793c0d 100644 --- a/gems/rust-merge/gemfiles/modular/templating_local.gemfile +++ b/gems/rust-merge/gemfiles/modular/templating_local.gemfile @@ -12,21 +12,19 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] -nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) +nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] +nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == "nomono" } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - if nomono_locked - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] - end + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked end -Kernel.send(:gem, "nomono", *nomono_activation_requirements) -require "nomono/bundler" +Kernel.send(:gem, 'nomono', *nomono_activation_requirements) +require 'nomono/bundler' structuredmerge_local_gems = %w[ tree_haver @@ -69,25 +67,25 @@ structuredmerge_local_gems_to_eval = structuredmerge_local_gems - %w[rust-merge] kettle_dev_local_gems_to_eval = kettle_dev_local_gems - %w[rust-merge] - declared_gems platform :mri do - if ENV.fetch("STRUCTUREDMERGE_DEV", "false").casecmp("false") != 0 + if ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false') != 0 eval_nomono_gems( gems: structuredmerge_local_gems_to_eval, - prefix: "STRUCTUREDMERGE", - path_env: "STRUCTUREDMERGE_DEV", - vendored_gems_env: "VENDORED_GEMS", - vendor_gem_dir_env: "VENDOR_GEM_DIR", - debug_env: "STRUCTUREDMERGE_DEBUG" + prefix: 'STRUCTUREDMERGE', + path_env: 'STRUCTUREDMERGE_DEV', + vendored_gems_env: 'VENDORED_GEMS', + vendor_gem_dir_env: 'VENDOR_GEM_DIR', + debug_env: 'STRUCTUREDMERGE_DEBUG' ) end - if ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false") != 0 + if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false') != 0 eval_nomono_gems( gems: kettle_dev_local_gems_to_eval, - prefix: "KETTLE_DEV", - path_env: "KETTLE_DEV_DEV", - vendored_gems_env: "VENDORED_GEMS", - vendor_gem_dir_env: "VENDOR_GEM_DIR", - debug_env: "KETTLE_DEV_DEBUG" + prefix: 'KETTLE_DEV', + path_env: 'KETTLE_DEV_DEV', + vendored_gems_env: 'VENDORED_GEMS', + vendor_gem_dir_env: 'VENDOR_GEM_DIR', + debug_env: 'KETTLE_DEV_DEBUG' ) end end diff --git a/gems/rust-merge/gemfiles/modular/webrick/r4/v1.9.gemfile b/gems/rust-merge/gemfiles/modular/webrick/r4/v1.9.gemfile index eaab4a473..b1329ba84 100644 --- a/gems/rust-merge/gemfiles/modular/webrick/r4/v1.9.gemfile +++ b/gems/rust-merge/gemfiles/modular/webrick/r4/v1.9.gemfile @@ -1 +1 @@ -gem "webrick", "~> 1.9" +gem 'webrick', '~> 1.9' diff --git a/gems/rust-merge/gemfiles/modular/webrick/vHEAD.gemfile b/gems/rust-merge/gemfiles/modular/webrick/vHEAD.gemfile index 8a789b634..c7e6f81a1 100644 --- a/gems/rust-merge/gemfiles/modular/webrick/vHEAD.gemfile +++ b/gems/rust-merge/gemfiles/modular/webrick/vHEAD.gemfile @@ -1 +1 @@ -gem "webrick", ">= 1.9" +gem 'webrick', '>= 1.9' diff --git a/gems/rust-merge/gemfiles/modular/x_std_libs.gemfile b/gems/rust-merge/gemfiles/modular/x_std_libs.gemfile index 77aad43f2..b1f43c097 100644 --- a/gems/rust-merge/gemfiles/modular/x_std_libs.gemfile +++ b/gems/rust-merge/gemfiles/modular/x_std_libs.gemfile @@ -1,12 +1,12 @@ ### Std Lib Extracted Gems ruby_version = Gem::Version.new(RUBY_VERSION) -if ruby_version >= Gem::Version.new("4.0") - eval_gemfile "x_std_libs/r4/libs.gemfile" -elsif ruby_version >= Gem::Version.new("3.2") - eval_gemfile "x_std_libs/r3/libs.gemfile" -elsif ruby_version >= Gem::Version.new("3.1") - eval_gemfile "x_std_libs/r3.1/libs.gemfile" +if ruby_version >= Gem::Version.new('4.0') + eval_gemfile 'x_std_libs/r4/libs.gemfile' +elsif ruby_version >= Gem::Version.new('3.2') + eval_gemfile 'x_std_libs/r3/libs.gemfile' +elsif ruby_version >= Gem::Version.new('3.1') + eval_gemfile 'x_std_libs/r3.1/libs.gemfile' else - eval_gemfile "x_std_libs/r2/libs.gemfile" + eval_gemfile 'x_std_libs/r2/libs.gemfile' end diff --git a/gems/rust-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile b/gems/rust-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile index 441c4f03a..16a5e3d70 100644 --- a/gems/rust-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile +++ b/gems/rust-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile @@ -1,3 +1,3 @@ -eval_gemfile "../../erb/r2/v3.0.gemfile" -eval_gemfile "../../mutex_m/r2/v0.3.gemfile" -eval_gemfile "../../stringio/r2/v3.0.gemfile" +eval_gemfile '../../erb/r2/v3.0.gemfile' +eval_gemfile '../../mutex_m/r2/v0.3.gemfile' +eval_gemfile '../../stringio/r2/v3.0.gemfile' diff --git a/gems/rust-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile b/gems/rust-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile index c293a3ddd..220ff95c1 100644 --- a/gems/rust-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile +++ b/gems/rust-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile @@ -1,3 +1,3 @@ -eval_gemfile "../../erb/r3/v5.0.gemfile" -eval_gemfile "../../mutex_m/r3/v0.3.gemfile" -eval_gemfile "../../stringio/r3/v3.0.gemfile" +eval_gemfile '../../erb/r3/v5.0.gemfile' +eval_gemfile '../../mutex_m/r3/v0.3.gemfile' +eval_gemfile '../../stringio/r3/v3.0.gemfile' diff --git a/gems/rust-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile b/gems/rust-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile index eb5574247..e2f6501eb 100644 --- a/gems/rust-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile +++ b/gems/rust-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile @@ -1,6 +1,6 @@ -eval_gemfile "../../erb/r4/v5.0.gemfile" -eval_gemfile "../../mutex_m/r4/v0.3.gemfile" -eval_gemfile "../../stringio/r4/v3.0.gemfile" -eval_gemfile "../../benchmark/r4/v0.5.gemfile" -eval_gemfile "../../cgi/r4/v0.5.gemfile" -eval_gemfile "../../webrick/r4/v1.9.gemfile" +eval_gemfile '../../erb/r4/v5.0.gemfile' +eval_gemfile '../../mutex_m/r4/v0.3.gemfile' +eval_gemfile '../../stringio/r4/v3.0.gemfile' +eval_gemfile '../../benchmark/r4/v0.5.gemfile' +eval_gemfile '../../cgi/r4/v0.5.gemfile' +eval_gemfile '../../webrick/r4/v1.9.gemfile' diff --git a/gems/rust-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile b/gems/rust-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile index d4d5b16c9..ab75cccf1 100644 --- a/gems/rust-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile +++ b/gems/rust-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile @@ -1,6 +1,6 @@ -eval_gemfile "../erb/vHEAD.gemfile" -eval_gemfile "../mutex_m/vHEAD.gemfile" -eval_gemfile "../stringio/vHEAD.gemfile" -eval_gemfile "../benchmark/vHEAD.gemfile" -eval_gemfile "../cgi/vHEAD.gemfile" -eval_gemfile "../webrick/vHEAD.gemfile" +eval_gemfile '../erb/vHEAD.gemfile' +eval_gemfile '../mutex_m/vHEAD.gemfile' +eval_gemfile '../stringio/vHEAD.gemfile' +eval_gemfile '../benchmark/vHEAD.gemfile' +eval_gemfile '../cgi/vHEAD.gemfile' +eval_gemfile '../webrick/vHEAD.gemfile' diff --git a/gems/rust-merge/lib/rust/merge/version.rb b/gems/rust-merge/lib/rust/merge/version.rb index 4dc09f632..027a1d9e7 100644 --- a/gems/rust-merge/lib/rust/merge/version.rb +++ b/gems/rust-merge/lib/rust/merge/version.rb @@ -3,7 +3,7 @@ module Rust module Merge module Version - VERSION = "7.1.0" + VERSION = '7.1.0' end VERSION = Version::VERSION # Traditional Constant Location end diff --git a/gems/rust-merge/spec/spec_helper.rb b/gems/rust-merge/spec/spec_helper.rb index 7cab35487..18ba6578b 100644 --- a/gems/rust-merge/spec/spec_helper.rb +++ b/gems/rust-merge/spec/spec_helper.rb @@ -7,16 +7,16 @@ # NOTE: Gemfiles for non-coverage appraisals may not have kettle-soup-cover. # The rescue LoadError handles that scenario. begin - require "kettle-soup-cover" + require 'kettle-soup-cover' if Kettle::Soup::Cover::DO_COV # Requiring simplecov loads the project-local `.simplecov`. - require "simplecov" - require "kettle/soup/cover/config" + require 'simplecov' + require 'kettle/soup/cover/config' SimpleCov.start end -rescue LoadError => error +rescue LoadError => e # check the error message and re-raise when unexpected - raise error unless error.message.include?("kettle") + raise e unless e.message.include?('kettle') end # External RSpec & related config diff --git a/gems/typescript-merge/.rubocop_gradual.lock b/gems/typescript-merge/.rubocop_gradual.lock index 7453b8ac0..c8f05221f 100644 --- a/gems/typescript-merge/.rubocop_gradual.lock +++ b/gems/typescript-merge/.rubocop_gradual.lock @@ -1,5 +1,5 @@ { - ".simplecov:239823694": [ + ".simplecov:2235097749": [ [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] ], "Rakefile:845460973": [ diff --git a/gems/typescript-merge/.simplecov b/gems/typescript-merge/.simplecov index 08a5c465d..1dfab0917 100644 --- a/gems/typescript-merge/.simplecov +++ b/gems/typescript-merge/.simplecov @@ -4,15 +4,11 @@ # typescript-merge will then preserve content between those markers across template runs. # kettle-jem:unfreeze -require 'kettle/soup/cover/config' - # Minimum coverage thresholds are set by kettle-soup-cover. # They are controlled by ENV variables loaded by `mise` from `mise.toml` # (with optional machine-local overrides in `.env.local`). # If the values for minimum coverage need to change, they should be changed both there, # and in 2 places in .github/workflows/coverage.yml. -SimpleCov.start do - track_files 'lib/**/*.rb' - track_files 'lib/**/*.rake' - track_files 'exe/*.rb' +SimpleCov.configure do + cover 'lib/**/*.rb', 'lib/**/*.rake', 'exe/*.rb' end diff --git a/gems/typescript-merge/Gemfile b/gems/typescript-merge/Gemfile index 65ce2b794..fd28c21ab 100644 --- a/gems/typescript-merge/Gemfile +++ b/gems/typescript-merge/Gemfile @@ -6,7 +6,7 @@ # kettle-jem will then preserve content between those markers across template runs. # kettle-jem:unfreeze -source "https://gem.coop" +source 'https://gem.coop' git_source(:codeberg) { |repo_name| "https://codeberg.org/#{repo_name}" } git_source(:gitlab) { |repo_name| "https://gitlab.com/#{repo_name}" } @@ -19,58 +19,54 @@ git_source(:gitlab) { |repo_name| "https://gitlab.com/#{repo_name}" } gemspec # Local workspace dependency wiring for *_local.gemfile overrides -nomono_requirements = ["~> 1.0", ">= 1.0.8"] -gem "nomono", *nomono_requirements, require: false # ruby >= 2.2 +nomono_requirements = ['~> 1.0', '>= 1.0.8'] +gem 'nomono', *nomono_requirements, require: false # ruby >= 2.2 # Direct sibling dependencies (env-switched via STRUCTUREDMERGE_DEV) direct_sibling_gems = %w[ ast-merge tree_haver ] -direct_sibling_dev = ENV.fetch("STRUCTUREDMERGE_DEV", "") +direct_sibling_dev = ENV.fetch('STRUCTUREDMERGE_DEV', '') direct_sibling_local = !direct_sibling_dev.empty? && !%w[false 0 no off].include?(direct_sibling_dev.downcase) -direct_sibling_templating = ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? +direct_sibling_templating = ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero?) - direct_sibling_dev_was_set = ENV.key?("STRUCTUREDMERGE_DEV") - direct_sibling_dev_original = ENV.fetch("STRUCTUREDMERGE_DEV", nil) + (direct_sibling_local || + ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) + direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') + direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) begin nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path("Gemfile.lock", __dir__) + nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == "nomono" } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - if nomono_locked - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] - end - end - Kernel.send(:gem, "nomono", *nomono_activation_requirements) - require "nomono/bundler" - if direct_sibling_templating && !direct_sibling_local - ENV["STRUCTUREDMERGE_DEV"] = File.expand_path("..", __dir__) + Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked end + Kernel.send(:gem, 'nomono', *nomono_activation_requirements) + require 'nomono/bundler' + ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local eval_nomono_gems( gems: direct_sibling_gems, - prefix: "STRUCTUREDMERGE", - path_env: "STRUCTUREDMERGE_DEV", - root: ["src", "my", "structuredmerge"] + prefix: 'STRUCTUREDMERGE', + path_env: 'STRUCTUREDMERGE_DEV', + root: %w[src my structuredmerge] ) rescue LoadError - warn "Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies." + warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' ensure if direct_sibling_templating && !direct_sibling_local if direct_sibling_dev_was_set - ENV["STRUCTUREDMERGE_DEV"] = direct_sibling_dev_original + ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original else - ENV.delete("STRUCTUREDMERGE_DEV") + ENV.delete('STRUCTUREDMERGE_DEV') end end end @@ -157,28 +153,28 @@ if direct_sibling_gems.any? && end # Use released TSLP with the Ruby ABI platform-gem fix. -gem "tree_sitter_language_pack", "~> 1.13", ">= 1.13.3" +gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' # Templating (env-switched: STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local paths) -eval_gemfile "gemfiles/modular/templating.gemfile" if ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? +eval_gemfile 'gemfiles/modular/templating.gemfile' if ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? # Debugging -eval_gemfile "gemfiles/modular/debug.gemfile" +eval_gemfile 'gemfiles/modular/debug.gemfile' # Code Coverage (env-switched: KETTLE_DEV_DEV=true for local paths) -eval_gemfile "gemfiles/modular/coverage.gemfile" +eval_gemfile 'gemfiles/modular/coverage.gemfile' # Linting -eval_gemfile "gemfiles/modular/style.gemfile" +eval_gemfile 'gemfiles/modular/style.gemfile' # Documentation -eval_gemfile "gemfiles/modular/documentation.gemfile" +eval_gemfile 'gemfiles/modular/documentation.gemfile' # Optional -eval_gemfile "gemfiles/modular/optional.gemfile" +eval_gemfile 'gemfiles/modular/optional.gemfile' ### Std Lib Extracted Gems -eval_gemfile "gemfiles/modular/x_std_libs.gemfile" +eval_gemfile 'gemfiles/modular/x_std_libs.gemfile' # See unlocked_deps appraisal for more details on irb inclusion -gem "irb", "~> 1.17" # ruby >= 2.7 +gem 'irb', '~> 1.17' # ruby >= 2.7 diff --git a/gems/typescript-merge/Gemfile.lock b/gems/typescript-merge/Gemfile.lock index 78bc6b845..97dafe2b9 100644 --- a/gems/typescript-merge/Gemfile.lock +++ b/gems/typescript-merge/Gemfile.lock @@ -7,39 +7,7 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly - specs: - ast-crispr-markdown-markly (7.1.0) - ast-crispr (= 7.1.0) - markly-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism - specs: - ast-crispr-ruby-prism (7.1.0) - ast-crispr (= 7.1.0) - prism-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr - specs: - ast-crispr (7.1.0) - ast-merge (= 7.1.0) - service_actor (~> 3.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git - specs: - ast-merge-git (7.1.0) - ast-merge (= 7.1.0) - json-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/ast-merge specs: ast-merge (7.1.0) benchmark @@ -48,202 +16,7 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template - specs: - ast-template (7.1.0) - ast-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge - specs: - bash-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge - specs: - binary-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge - specs: - citrus-toml-merge (7.1.0) - toml-merge (= 7.1.0) - toml-rb (~> 4.1) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge - specs: - commonmarker-merge (7.1.0) - commonmarker (~> 2.2) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge - specs: - dotenv-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge - specs: - go-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge - specs: - json-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem - specs: - kettle-jem (7.1.0) - addressable (>= 2.8, < 3) - ast-crispr-markdown-markly (= 7.1.0) - ast-crispr-ruby-prism (= 7.1.0) - ast-merge (= 7.1.0) - bash-merge (= 7.1.0) - citrus-toml-merge (= 7.1.0) - commonmarker-merge (= 7.1.0) - dotenv-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-dev (~> 2.3, >= 2.3.5) - kettle-rb (~> 0.1, >= 0.1.4) - kramdown-merge (= 7.1.0) - markdown-merge (= 7.1.0) - markly-merge (= 7.1.0) - prism-merge (= 7.1.0) - psych-merge (= 7.1.0) - rbs (>= 3.10) - rbs-merge (= 7.1.0) - ruby-merge (= 7.1.0) - token-resolver (~> 2.0, >= 2.0.4) - toml-merge (= 7.1.0) - toml-rb (~> 4.2) - tree_haver (= 7.1.0) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge - specs: - kramdown-merge (7.1.0) - kramdown (~> 2.5) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge - specs: - markdown-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge - specs: - markly-merge (7.1.0) - markdown-merge (= 7.1.0) - markly (~> 0.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge - specs: - parslet-toml-merge (7.1.0) - toml (~> 0.3) - toml-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge - specs: - plain-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge - specs: - prism-merge (7.1.0) - prism (~> 1.6) - ruby-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge - specs: - psych-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge - specs: - rbs-merge (7.1.0) - ast-merge (= 7.1.0) - rbs (>= 3.10) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge - specs: - ruby-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge - specs: - rust-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb - specs: - smorg-rb (7.1.0) - ast-merge (= 7.1.0) - ast-merge-git (= 7.1.0) - diff-lcs (~> 1.5) - go-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-jem (= 7.1.0) - markly-merge (= 7.1.0) - plain-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge - specs: - toml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/tree_haver specs: tree_haver (7.1.0) citrus (~> 3.0) @@ -251,21 +24,6 @@ PATH tree_sitter_language_pack (>= 1.13.2, < 2.0) version_gem (~> 1.1, >= 1.1.9) -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge - specs: - yaml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge - specs: - zip-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - GEM remote: https://gem.coop/ specs: @@ -290,7 +48,6 @@ GEM cgi (0.5.2) citrus (3.0.2) cmdparse (3.0.7) - commonmarker (2.9.0-x86_64-linux) concurrent-ruby (1.3.8) date (3.5.1) debug (1.11.1) @@ -348,13 +105,11 @@ GEM rdoc (>= 4.0.0) reline (>= 0.4.2) json (2.21.1) - kettle-dev (2.3.8) + kettle-dev (2.3.9) emoji_regex (>= 15.0) kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) - kettle-drift (1.0.6) - version_gem (~> 1.1, >= 1.1.14) kettle-rb (0.1.5) kettle-soup-cover (3.0.4) kettle-wash (~> 0.1, >= 0.1.0) @@ -383,7 +138,6 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) - markly (0.16.0) mutex_m (0.3.0) nokogiri (1.19.4-aarch64-linux-gnu) racc (~> 1.4) @@ -546,8 +300,6 @@ GEM ruby-progressbar (1.13.0) ruby_engine (2.0.3) ruby_version (1.0.3) - service_actor (3.9.4) - zeitwerk (>= 1.0) silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) @@ -602,11 +354,6 @@ GEM token-resolver (2.0.5) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.14) - toml (0.3.0) - parslet (>= 1.8.0, < 3.0.0) - toml-rb (4.2.0) - citrus (~> 3.0, > 3.0) - racc (~> 1.7) tree_sitter_language_pack (1.13.3-aarch64-linux) sorbet-runtime (~> 0.5) tree_sitter_language_pack (1.13.3-arm64-darwin) @@ -661,46 +408,24 @@ DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) appraisal2-rubocop (~> 1.0, >= 1.0.0) - ast-crispr! - ast-crispr-markdown-markly! - ast-crispr-ruby-prism! ast-merge! - ast-merge-git! - ast-template! - bash-merge! benchmark (~> 0.5, >= 0.5.0) - binary-merge! bundler-audit (~> 0.9.3) cgi (~> 0.5) - citrus-toml-merge! - commonmarker-merge! debug (>= 1.1) - dotenv-merge! erb (~> 6.0, >= 6.0.6) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.0) - go-merge! irb (~> 1.17) - json-merge! kettle-dev (~> 2.0, >= 2.2.25) - kettle-drift (~> 1.0, >= 1.0.6) - kettle-jem! kettle-soup-cover (~> 3.0, >= 3.0.3) kettle-test (~> 2.0, >= 2.0.9) kramdown (~> 2.5, >= 2.5.2) - kramdown-merge! kramdown-parser-gfm (~> 1.1) - markdown-merge! - markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) - parslet-toml-merge! - plain-merge! - prism-merge! - psych-merge! rake (~> 13.0) rbs (>= 3.0) - rbs-merge! rdoc (~> 6.11) reek (~> 6.5, >= 6.5.0) require_bench (~> 1.0, >= 1.0.4) @@ -711,27 +436,21 @@ DEPENDENCIES rubocop-on-rbs (~> 2.0, >= 2.0.0) rubocop-packaging (~> 0.6, >= 0.6.0) rubocop-ruby3_2 (~> 3.0, >= 3.0.6) - ruby-merge! ruby-progressbar (~> 1.13) - rust-merge! - smorg-rb! standard (~> 1.56, >= 1.56.0) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) - toml-merge! tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) typescript-merge! webrick (~> 1.9) yaml-converter (~> 0.2, >= 0.2.3) - yaml-merge! yard (~> 0.9, >= 0.9.45) yard-fence (~> 0.9, >= 0.9.6) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) yard-timekeeper (~> 0.2, >= 0.2.4) yard-yaml (~> 0.2, >= 0.2.3) - zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af @@ -739,31 +458,20 @@ CHECKSUMS appraisal2 (3.2.0) sha256=ccd0b767ac4060cd7af6d16747459b6990f49c39c7b4fb1f7d1146b1e97c492f appraisal2-rubocop (1.0.0) sha256=b71410fbb014befda5340605a605b7f6f3f012739baf0acc5b4351b592c3258d ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 - ast-crispr (7.1.0) - ast-crispr-markdown-markly (7.1.0) - ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) - ast-merge-git (7.1.0) - ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 - bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd - binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 - citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 - commonmarker (2.9.0-x86_64-linux) - commonmarker-merge (7.1.0) concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 - dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -776,28 +484,20 @@ CHECKSUMS gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f - go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 - json-merge (7.1.0) - kettle-dev (2.3.8) sha256=9d716ff21c660a730cb4e8d41e2e2f0630a28167a354b6e2924e242102aef72c - kettle-drift (1.0.6) - kettle-jem (7.1.0) + kettle-dev (2.3.9) kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f kettle-soup-cover (3.0.4) kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa - kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 - markdown-merge (7.1.0) - markly (0.16.0) - markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-aarch64-linux-gnu) sha256=1269fb644a6de405057a53dd5c762b1209b43ca7424f839454d3dbc677c31a8f nokogiri (1.19.4-aarch64-linux-musl) sha256=35c65b9ce72b3bb03207bdbe7067915019dc18c1b9b59139684bd6690fdd01af @@ -811,20 +511,15 @@ CHECKSUMS parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 - parslet-toml-merge (7.1.0) - plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 - prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 - psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 - rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb @@ -859,19 +554,15 @@ CHECKSUMS rubocop-rspec_rails (2.32.0) sha256=4a0d641c72f6ebb957534f539d9d0a62c47abd8ce0d0aeee1ef4701e892a9100 rubocop-ruby3_2 (3.0.7) sha256=f53dd6d286fb05186214fc6ec116783e7f837030918e8931c05de773e98f8466 rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 - ruby-merge (7.1.0) ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 - rust-merge (7.1.0) - service_actor (3.9.4) silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed - smorg-rb (7.1.0) sorbet-runtime (0.6.13351) sha256=f8fee17c6e3edf835dc6823d26afb9a7c8969c6710d1fabe2fb43f4e0c15c64f standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b @@ -886,9 +577,6 @@ CHECKSUMS timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.5) sha256=b852f924287ffb58a440856e862b056c8ad97e74b4b2526cee43e0771f40c25c - toml (0.3.0) - toml-merge (7.1.0) - toml-rb (4.2.0) tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-aarch64-linux) sha256=55ffc7c87868cb45658338363d9eba51b4a8b0259aa88e4de368d2bd1d52fea4 tree_sitter_language_pack (1.13.3-arm64-darwin) sha256=bc2498db605f212a1dbd2465ed3f65190d7da786f6ed5d30fcf958121aeb4a5c @@ -901,7 +589,6 @@ CHECKSUMS version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 webrick (1.9.2) sha256=beb4a15fc474defed24a3bda4ffd88a490d517c9e4e6118c3edce59e45864131 yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 - yaml-merge (7.1.0) yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd @@ -909,7 +596,6 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 - zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH diff --git a/gems/typescript-merge/Rakefile b/gems/typescript-merge/Rakefile index 891a105cb..001b16d17 100644 --- a/gems/typescript-merge/Rakefile +++ b/gems/typescript-merge/Rakefile @@ -130,23 +130,23 @@ end ### DUPLICATE DRIFT TASKS begin - require "kettle/drift" + require 'kettle/drift' Kettle::Drift.install_tasks rescue LoadError - desc("(stub) kettle:drift:check is unavailable") - task("kettle:drift:check") do + desc('(stub) kettle:drift:check is unavailable') + task('kettle:drift:check') do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc("(stub) kettle:drift:update is unavailable") - task("kettle:drift:update") do + desc('(stub) kettle:drift:update is unavailable') + task('kettle:drift:update') do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc("(stub) kettle:drift:force_update is unavailable") - task("kettle:drift:force_update") do + desc('(stub) kettle:drift:force_update is unavailable') + task('kettle:drift:force_update') do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc("(stub) kettle:drift is unavailable") - task("kettle:drift" => "kettle:drift:update") + desc('(stub) kettle:drift is unavailable') + task('kettle:drift' => 'kettle:drift:update') end ### TEMPLATING TASKS diff --git a/gems/typescript-merge/gemfiles/modular/templating.gemfile b/gems/typescript-merge/gemfiles/modular/templating.gemfile index 47138ffbb..a672de184 100644 --- a/gems/typescript-merge/gemfiles/modular/templating.gemfile +++ b/gems/typescript-merge/gemfiles/modular/templating.gemfile @@ -1,18 +1,18 @@ # frozen_string_literal: true -structuredmerge_remote = ENV.fetch("STRUCTUREDMERGE_DEV", "false").casecmp("false").zero? -kettle_remote = ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false").zero? +structuredmerge_remote = ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false').zero? +kettle_remote = ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? if structuredmerge_remote # Parser dependencies for released installs. - gem "tree_sitter_language_pack", "~> 1.13", ">= 1.13.3" + gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' # Merge recipes for released installs. - gem "kettle-jem", ">= 7.0" + gem 'kettle-jem', '>= 7.0' end if kettle_remote # Template/plugin checks for released installs. - gem "kettle-drift", "~> 1.0", ">= 1.0.6", require: false + gem 'kettle-drift', '~> 1.0', '>= 1.0.6', require: false end # Set STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local development with path-based dependencies. @@ -21,4 +21,4 @@ end # # Set KETTLE_DEV_DEV=/path/to/my for local development with Kettle plugin gems. # When false (default / CI), released Kettle plugin gems are used. -eval_gemfile "templating_local.gemfile" unless structuredmerge_remote && kettle_remote +eval_gemfile 'templating_local.gemfile' unless structuredmerge_remote && kettle_remote diff --git a/gems/typescript-merge/gemfiles/modular/templating_local.gemfile b/gems/typescript-merge/gemfiles/modular/templating_local.gemfile index b089677ff..997ea7d01 100644 --- a/gems/typescript-merge/gemfiles/modular/templating_local.gemfile +++ b/gems/typescript-merge/gemfiles/modular/templating_local.gemfile @@ -12,21 +12,19 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] -nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) +nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] +nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == "nomono" } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - if nomono_locked - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] - end + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked end -Kernel.send(:gem, "nomono", *nomono_activation_requirements) -require "nomono/bundler" +Kernel.send(:gem, 'nomono', *nomono_activation_requirements) +require 'nomono/bundler' structuredmerge_local_gems = %w[ tree_haver @@ -69,25 +67,25 @@ structuredmerge_local_gems_to_eval = structuredmerge_local_gems - %w[typescript- kettle_dev_local_gems_to_eval = kettle_dev_local_gems - %w[typescript-merge] - declared_gems platform :mri do - if ENV.fetch("STRUCTUREDMERGE_DEV", "false").casecmp("false") != 0 + if ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false') != 0 eval_nomono_gems( gems: structuredmerge_local_gems_to_eval, - prefix: "STRUCTUREDMERGE", - path_env: "STRUCTUREDMERGE_DEV", - vendored_gems_env: "VENDORED_GEMS", - vendor_gem_dir_env: "VENDOR_GEM_DIR", - debug_env: "STRUCTUREDMERGE_DEBUG" + prefix: 'STRUCTUREDMERGE', + path_env: 'STRUCTUREDMERGE_DEV', + vendored_gems_env: 'VENDORED_GEMS', + vendor_gem_dir_env: 'VENDOR_GEM_DIR', + debug_env: 'STRUCTUREDMERGE_DEBUG' ) end - if ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false") != 0 + if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false') != 0 eval_nomono_gems( gems: kettle_dev_local_gems_to_eval, - prefix: "KETTLE_DEV", - path_env: "KETTLE_DEV_DEV", - vendored_gems_env: "VENDORED_GEMS", - vendor_gem_dir_env: "VENDOR_GEM_DIR", - debug_env: "KETTLE_DEV_DEBUG" + prefix: 'KETTLE_DEV', + path_env: 'KETTLE_DEV_DEV', + vendored_gems_env: 'VENDORED_GEMS', + vendor_gem_dir_env: 'VENDOR_GEM_DIR', + debug_env: 'KETTLE_DEV_DEBUG' ) end end diff --git a/gems/typescript-merge/lib/typescript/merge/version.rb b/gems/typescript-merge/lib/typescript/merge/version.rb index 954f44d95..770779ac0 100644 --- a/gems/typescript-merge/lib/typescript/merge/version.rb +++ b/gems/typescript-merge/lib/typescript/merge/version.rb @@ -3,7 +3,7 @@ module TypeScript module Merge module Version - VERSION = "7.1.0" + VERSION = '7.1.0' end VERSION = Version::VERSION # Traditional Constant Location end diff --git a/gems/typescript-merge/spec/spec_helper.rb b/gems/typescript-merge/spec/spec_helper.rb index c04580bf6..5322fb30b 100644 --- a/gems/typescript-merge/spec/spec_helper.rb +++ b/gems/typescript-merge/spec/spec_helper.rb @@ -8,7 +8,12 @@ # The rescue LoadError handles that scenario. begin require 'kettle-soup-cover' - require 'simplecov' if Kettle::Soup::Cover::DO_COV # `.simplecov` is run here! + if Kettle::Soup::Cover::DO_COV + # Requiring simplecov loads the project-local `.simplecov`. + require 'simplecov' + require 'kettle/soup/cover/config' + SimpleCov.start + end rescue LoadError => e # check the error message and re-raise when unexpected raise e unless e.message.include?('kettle') diff --git a/gems/zip-merge/Gemfile.lock b/gems/zip-merge/Gemfile.lock index 31ca7b0d0..83659e77f 100644 --- a/gems/zip-merge/Gemfile.lock +++ b/gems/zip-merge/Gemfile.lock @@ -5,6 +5,267 @@ PATH tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly + specs: + ast-crispr-markdown-markly (7.1.0) + ast-crispr (= 7.1.0) + markly-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism + specs: + ast-crispr-ruby-prism (7.1.0) + ast-crispr (= 7.1.0) + prism-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr + specs: + ast-crispr (7.1.0) + ast-merge (= 7.1.0) + service_actor (~> 3.9) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git + specs: + ast-merge-git (7.1.0) + ast-merge (= 7.1.0) + json-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge + specs: + ast-merge (7.1.0) + benchmark + token-resolver (~> 2.0, >= 2.0.4) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template + specs: + ast-template (7.1.0) + ast-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge + specs: + bash-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge + specs: + binary-merge (7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge + specs: + citrus-toml-merge (7.1.0) + toml-merge (= 7.1.0) + toml-rb (~> 4.1) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge + specs: + commonmarker-merge (7.1.0) + commonmarker (~> 2.2) + markdown-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge + specs: + dotenv-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge + specs: + go-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge + specs: + json-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem + specs: + kettle-jem (7.1.0) + addressable (>= 2.8, < 3) + ast-crispr-markdown-markly (= 7.1.0) + ast-crispr-ruby-prism (= 7.1.0) + ast-merge (= 7.1.0) + bash-merge (= 7.1.0) + citrus-toml-merge (= 7.1.0) + commonmarker-merge (= 7.1.0) + dotenv-merge (= 7.1.0) + json-merge (= 7.1.0) + kettle-dev (~> 2.3, >= 2.3.5) + kettle-rb (~> 0.1, >= 0.1.4) + kramdown-merge (= 7.1.0) + markdown-merge (= 7.1.0) + markly-merge (= 7.1.0) + prism-merge (= 7.1.0) + psych-merge (= 7.1.0) + rbs (>= 3.10) + rbs-merge (= 7.1.0) + ruby-merge (= 7.1.0) + token-resolver (~> 2.0, >= 2.0.4) + toml-merge (= 7.1.0) + toml-rb (~> 4.2) + tree_haver (= 7.1.0) + yaml-merge (= 7.1.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge + specs: + kramdown-merge (7.1.0) + kramdown (~> 2.5) + markdown-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge + specs: + markdown-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge + specs: + markly-merge (7.1.0) + markdown-merge (= 7.1.0) + markly (~> 0.9) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge + specs: + parslet-toml-merge (7.1.0) + toml (~> 0.3) + toml-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge + specs: + plain-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge + specs: + prism-merge (7.1.0) + prism (~> 1.6) + ruby-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge + specs: + psych-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + yaml-merge (= 7.1.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge + specs: + rbs-merge (7.1.0) + ast-merge (= 7.1.0) + rbs (>= 3.10) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge + specs: + ruby-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge + specs: + rust-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb + specs: + smorg-rb (7.1.0) + ast-merge (= 7.1.0) + ast-merge-git (= 7.1.0) + diff-lcs (~> 1.5) + go-merge (= 7.1.0) + json-merge (= 7.1.0) + kettle-jem (= 7.1.0) + markly-merge (= 7.1.0) + plain-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge + specs: + toml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver + specs: + tree_haver (7.1.0) + citrus (~> 3.0) + parslet (~> 2.0) + tree_sitter_language_pack (>= 1.13.2, < 2.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge + specs: + typescript-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge + specs: + yaml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + GEM remote: https://gem.coop/ specs: @@ -29,6 +290,11 @@ GEM cgi (0.5.2) citrus (3.0.2) cmdparse (3.0.7) + commonmarker (2.9.0-aarch64-linux) + commonmarker (2.9.0-aarch64-linux-musl) + commonmarker (2.9.0-arm64-darwin) + commonmarker (2.9.0-x86_64-linux) + commonmarker (2.9.0-x86_64-linux-musl) concurrent-ruby (1.3.8) date (3.5.1) debug (1.11.1) @@ -91,6 +357,8 @@ GEM kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) + kettle-drift (1.0.6) + version_gem (~> 1.1, >= 1.1.14) kettle-rb (0.1.5) kettle-soup-cover (3.0.4) kettle-wash (~> 0.1, >= 0.1.0) @@ -119,6 +387,7 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) + markly (0.16.0) mutex_m (0.3.0) nokogiri (1.19.4-aarch64-linux-gnu) racc (~> 1.4) @@ -281,6 +550,8 @@ GEM ruby-progressbar (1.13.0) ruby_engine (2.0.3) ruby_version (1.0.3) + service_actor (3.9.4) + zeitwerk (>= 1.0) silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) @@ -332,11 +603,14 @@ GEM delegate (~> 0.1) rspec (~> 3.0) timecop (>= 0.7, < 1) - tree_haver (7.1.0) - citrus (~> 3.0) + token-resolver (2.0.5) parslet (~> 2.0) - tree_sitter_language_pack (>= 1.13.2, < 2.0) - version_gem (~> 1.1, >= 1.1.9) + version_gem (~> 1.1, >= 1.1.14) + toml (0.3.0) + parslet (>= 1.8.0, < 3.0.0) + toml-rb (4.2.0) + citrus (~> 3.0, > 3.0) + racc (~> 1.7) tree_sitter_language_pack (1.13.3-aarch64-linux) sorbet-runtime (~> 0.5) tree_sitter_language_pack (1.13.3-arm64-darwin) @@ -391,23 +665,46 @@ DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) appraisal2-rubocop (~> 1.0, >= 1.0.0) + ast-crispr! + ast-crispr-markdown-markly! + ast-crispr-ruby-prism! + ast-merge! + ast-merge-git! + ast-template! + bash-merge! benchmark (~> 0.5, >= 0.5.0) + binary-merge! bundler-audit (~> 0.9.3) cgi (~> 0.5) + citrus-toml-merge! + commonmarker-merge! debug (>= 1.1) + dotenv-merge! erb (~> 6.0, >= 6.0.6) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.0) + go-merge! irb (~> 1.17) + json-merge! kettle-dev (~> 2.0, >= 2.2.25) + kettle-drift (~> 1.0, >= 1.0.6) + kettle-jem! kettle-soup-cover (~> 3.0, >= 3.0.3) kettle-test (~> 2.0, >= 2.0.9) kramdown (~> 2.5, >= 2.5.2) + kramdown-merge! kramdown-parser-gfm (~> 1.1) + markdown-merge! + markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) + parslet-toml-merge! + plain-merge! + prism-merge! + psych-merge! rake (~> 13.0) rbs (>= 3.0) + rbs-merge! rdoc (~> 6.11) reek (~> 6.5, >= 6.5.0) require_bench (~> 1.0, >= 1.0.4) @@ -418,13 +715,20 @@ DEPENDENCIES rubocop-on-rbs (~> 2.0, >= 2.0.0) rubocop-packaging (~> 0.6, >= 0.6.0) rubocop-ruby3_2 (~> 3.0, >= 3.0.6) + ruby-merge! ruby-progressbar (~> 1.13) + rust-merge! + smorg-rb! standard (~> 1.56, >= 1.56.0) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) + toml-merge! + tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) + typescript-merge! webrick (~> 1.9) yaml-converter (~> 0.2, >= 0.2.3) + yaml-merge! yard (~> 0.9, >= 0.9.45) yard-fence (~> 0.9, >= 0.9.6) yard-junk (~> 0.1, >= 0.1.0) @@ -439,19 +743,35 @@ CHECKSUMS appraisal2 (3.2.0) sha256=ccd0b767ac4060cd7af6d16747459b6990f49c39c7b4fb1f7d1146b1e97c492f appraisal2-rubocop (1.0.0) sha256=b71410fbb014befda5340605a605b7f6f3f012739baf0acc5b4351b592c3258d ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 + ast-crispr (7.1.0) + ast-crispr-markdown-markly (7.1.0) + ast-crispr-ruby-prism (7.1.0) + ast-merge (7.1.0) + ast-merge-git (7.1.0) + ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 + bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd + binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 + citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 + commonmarker (2.9.0-aarch64-linux) sha256=e2b4aadb9a2cfa4e206582641ce3a49465549ac1ed4c289fdd63b78d8f24579c + commonmarker (2.9.0-aarch64-linux-musl) sha256=1cf4d2821f2a7e64945f1ed7c4eeced586fdb27ea7fe7337788802cf8f57cfca + commonmarker (2.9.0-arm64-darwin) sha256=1748dbfa4f5813b0d2a14bb4bbfa65a4ec293aa1c825016d60029ee0e132b046 + commonmarker (2.9.0-x86_64-linux) sha256=8cfe92970eef585a19ddf6613224b91cab64d6029834661bda801f877c9c7f43 + commonmarker (2.9.0-x86_64-linux-musl) sha256=293921398b839f79ceaf55010e061357e34f053822c3b003cd0be6686176335e + commonmarker-merge (7.1.0) concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 + dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -464,20 +784,28 @@ CHECKSUMS gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f + go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 + json-merge (7.1.0) kettle-dev (2.3.8) sha256=9d716ff21c660a730cb4e8d41e2e2f0630a28167a354b6e2924e242102aef72c + kettle-drift (1.0.6) sha256=46eda08fa4411d1f3c6682a95eef1c9df4e94611b3949f49d4c7b43c0ed356a3 + kettle-jem (7.1.0) kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f kettle-soup-cover (3.0.4) kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa + kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 + markdown-merge (7.1.0) + markly (0.16.0) sha256=6f70d79e385b1efc9e171f74c81628826259039fe6c778e03c3924c71dac5511 + markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-aarch64-linux-gnu) sha256=1269fb644a6de405057a53dd5c762b1209b43ca7424f839454d3dbc677c31a8f nokogiri (1.19.4-aarch64-linux-musl) sha256=35c65b9ce72b3bb03207bdbe7067915019dc18c1b9b59139684bd6690fdd01af @@ -491,15 +819,20 @@ CHECKSUMS parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 + parslet-toml-merge (7.1.0) + plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 + prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 + psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 + rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb @@ -534,15 +867,19 @@ CHECKSUMS rubocop-rspec_rails (2.32.0) sha256=4a0d641c72f6ebb957534f539d9d0a62c47abd8ce0d0aeee1ef4701e892a9100 rubocop-ruby3_2 (3.0.7) sha256=f53dd6d286fb05186214fc6ec116783e7f837030918e8931c05de773e98f8466 rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 + ruby-merge (7.1.0) ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 + rust-merge (7.1.0) + service_actor (3.9.4) sha256=e63b523630b9a7e62959b2a90113b08d2565b5de9c148557b281ef847c9539ce silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed + smorg-rb (7.1.0) sorbet-runtime (0.6.13347) sha256=54e7221d9f4b63f58aec79f3043752a9ba7810347c6ae0d903531591cc2d5f01 standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b @@ -556,17 +893,23 @@ CHECKSUMS thor (1.5.0) sha256=e3a9e55fe857e44859ce104a84675ab6e8cd59c650a49106a05f55f136425e73 timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 + token-resolver (2.0.5) sha256=b852f924287ffb58a440856e862b056c8ad97e74b4b2526cee43e0771f40c25c + toml (0.3.0) sha256=0a91d0f76a9036e84e44f95693b12f58d358c1df3ac8e3b5271f2056ecc6e4b9 + toml-merge (7.1.0) + toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-aarch64-linux) sha256=55ffc7c87868cb45658338363d9eba51b4a8b0259aa88e4de368d2bd1d52fea4 tree_sitter_language_pack (1.13.3-arm64-darwin) sha256=bc2498db605f212a1dbd2465ed3f65190d7da786f6ed5d30fcf958121aeb4a5c tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 + typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 webrick (1.9.2) sha256=beb4a15fc474defed24a3bda4ffd88a490d517c9e4e6118c3edce59e45864131 yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 + yaml-merge (7.1.0) yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd From a859457f7472b39852c45ab81e3de4bd71ec80a4 Mon Sep 17 00:00:00 2001 From: "Peter H. Boling" Date: Tue, 21 Jul 2026 18:04:55 -0600 Subject: [PATCH 166/188] =?UTF-8?q?=F0=9F=8E=A8=20Template=20bootstrap=20b?= =?UTF-8?q?y=20kettle-jem=20v7.1.0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gems/ast-template/.rubocop_gradual.lock | 2 +- gems/ast-template/.simplecov | 8 +- gems/ast-template/Gemfile | 70 ++-- gems/ast-template/Gemfile.lock | 336 +---------------- gems/ast-template/Rakefile | 18 +- .../gemfiles/modular/templating.gemfile | 12 +- .../gemfiles/modular/templating_local.gemfile | 44 ++- gems/ast-template/lib/ast/template/version.rb | 2 +- gems/ast-template/spec/spec_helper.rb | 7 +- gems/binary-merge/.rubocop_gradual.lock | 105 ------ gems/binary-merge/.simplecov | 8 +- gems/binary-merge/Gemfile.lock | 342 +---------------- gems/binary-merge/bin/yard | 2 +- .../modular/benchmark/r4/v0.5.gemfile | 2 +- .../gemfiles/modular/benchmark/vHEAD.gemfile | 2 +- .../gemfiles/modular/cgi/r4/v0.5.gemfile | 2 +- .../gemfiles/modular/cgi/vHEAD.gemfile | 2 +- .../gemfiles/modular/coverage.gemfile | 6 +- .../gemfiles/modular/coverage_local.gemfile | 42 ++- .../gemfiles/modular/debug.gemfile | 4 +- .../gemfiles/modular/documentation.gemfile | 24 +- .../modular/documentation_local.gemfile | 30 +- .../gemfiles/modular/erb/r2/v3.0.gemfile | 2 +- .../gemfiles/modular/erb/r3/v5.0.gemfile | 2 +- .../gemfiles/modular/erb/r4/v5.0.gemfile | 2 +- .../gemfiles/modular/erb/vHEAD.gemfile | 2 +- .../modular/json/truffleruby_22_3.gemfile | 4 +- .../modular/json/truffleruby_23_0.gemfile | 4 +- .../modular/json/truffleruby_23_1.gemfile | 4 +- .../gemfiles/modular/mutex_m/r2/v0.3.gemfile | 2 +- .../gemfiles/modular/mutex_m/r3/v0.3.gemfile | 2 +- .../gemfiles/modular/mutex_m/r4/v0.3.gemfile | 2 +- .../gemfiles/modular/mutex_m/vHEAD.gemfile | 2 +- .../gemfiles/modular/optional.gemfile | 4 +- .../gemfiles/modular/rspec.gemfile | 8 +- .../gemfiles/modular/runtime_heads.gemfile | 2 +- .../gemfiles/modular/stringio/r2/v3.0.gemfile | 2 +- .../gemfiles/modular/stringio/r3/v3.0.gemfile | 2 +- .../gemfiles/modular/stringio/r4/v3.0.gemfile | 2 +- .../gemfiles/modular/stringio/vHEAD.gemfile | 2 +- .../gemfiles/modular/style.gemfile | 24 +- .../gemfiles/modular/style_local.gemfile | 32 +- .../gemfiles/modular/webrick/r4/v1.9.gemfile | 2 +- .../gemfiles/modular/webrick/vHEAD.gemfile | 2 +- .../gemfiles/modular/x_std_libs.gemfile | 14 +- .../modular/x_std_libs/r2/libs.gemfile | 6 +- .../modular/x_std_libs/r3/libs.gemfile | 6 +- .../modular/x_std_libs/r4/libs.gemfile | 12 +- .../gemfiles/modular/x_std_libs/vHEAD.gemfile | 12 +- gems/binary-merge/spec/spec_helper.rb | 13 +- gems/psych-merge/.kettle-drift.lock | 144 ++++++- gems/psych-merge/Gemfile | 72 +++- gems/psych-merge/Gemfile.lock | 350 +++++++++++++++++- gems/psych-merge/Rakefile | 18 +- .../gemfiles/modular/templating.gemfile | 12 +- .../gemfiles/modular/templating_local.gemfile | 44 +-- gems/psych-merge/lib/psych/merge/version.rb | 2 +- gems/typescript-merge/Gemfile.lock | 326 +++++++++++++++- gems/zip-merge/.kettle-drift.lock | 144 ++++++- gems/zip-merge/.simplecov | 8 +- gems/zip-merge/Gemfile | 72 +++- gems/zip-merge/Gemfile.lock | 26 +- gems/zip-merge/Rakefile | 18 +- .../modular/benchmark/r4/v0.5.gemfile | 2 +- .../gemfiles/modular/benchmark/vHEAD.gemfile | 2 +- .../gemfiles/modular/cgi/r4/v0.5.gemfile | 2 +- .../gemfiles/modular/cgi/vHEAD.gemfile | 2 +- .../gemfiles/modular/coverage.gemfile | 6 +- .../gemfiles/modular/coverage_local.gemfile | 42 ++- gems/zip-merge/gemfiles/modular/debug.gemfile | 4 +- .../gemfiles/modular/documentation.gemfile | 24 +- .../modular/documentation_local.gemfile | 30 +- .../gemfiles/modular/erb/r2/v3.0.gemfile | 2 +- .../gemfiles/modular/erb/r3/v5.0.gemfile | 2 +- .../gemfiles/modular/erb/r4/v5.0.gemfile | 2 +- .../gemfiles/modular/erb/vHEAD.gemfile | 2 +- .../modular/json/truffleruby_22_3.gemfile | 4 +- .../modular/json/truffleruby_23_0.gemfile | 4 +- .../modular/json/truffleruby_23_1.gemfile | 4 +- .../gemfiles/modular/mutex_m/r2/v0.3.gemfile | 2 +- .../gemfiles/modular/mutex_m/r3/v0.3.gemfile | 2 +- .../gemfiles/modular/mutex_m/r4/v0.3.gemfile | 2 +- .../gemfiles/modular/mutex_m/vHEAD.gemfile | 2 +- .../gemfiles/modular/optional.gemfile | 4 +- gems/zip-merge/gemfiles/modular/rspec.gemfile | 8 +- .../gemfiles/modular/runtime_heads.gemfile | 2 +- .../gemfiles/modular/stringio/r2/v3.0.gemfile | 2 +- .../gemfiles/modular/stringio/r3/v3.0.gemfile | 2 +- .../gemfiles/modular/stringio/r4/v3.0.gemfile | 2 +- .../gemfiles/modular/stringio/vHEAD.gemfile | 2 +- gems/zip-merge/gemfiles/modular/style.gemfile | 24 +- .../gemfiles/modular/style_local.gemfile | 32 +- .../gemfiles/modular/templating.gemfile | 12 +- .../gemfiles/modular/templating_local.gemfile | 44 +-- .../gemfiles/modular/webrick/r4/v1.9.gemfile | 2 +- .../gemfiles/modular/webrick/vHEAD.gemfile | 2 +- .../gemfiles/modular/x_std_libs.gemfile | 14 +- .../modular/x_std_libs/r2/libs.gemfile | 6 +- .../modular/x_std_libs/r3/libs.gemfile | 6 +- .../modular/x_std_libs/r4/libs.gemfile | 12 +- .../gemfiles/modular/x_std_libs/vHEAD.gemfile | 12 +- gems/zip-merge/lib/zip/merge/version.rb | 2 +- gems/zip-merge/spec/spec_helper.rb | 13 +- 103 files changed, 1529 insertions(+), 1295 deletions(-) delete mode 100644 gems/binary-merge/.rubocop_gradual.lock diff --git a/gems/ast-template/.rubocop_gradual.lock b/gems/ast-template/.rubocop_gradual.lock index 941e0afba..ffe8d234a 100644 --- a/gems/ast-template/.rubocop_gradual.lock +++ b/gems/ast-template/.rubocop_gradual.lock @@ -1,5 +1,5 @@ { - ".simplecov:3875640430": [ + ".simplecov:167186165": [ [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] ], "Rakefile:2781279821": [ diff --git a/gems/ast-template/.simplecov b/gems/ast-template/.simplecov index 0c8c08ba7..7ca2ffaf8 100644 --- a/gems/ast-template/.simplecov +++ b/gems/ast-template/.simplecov @@ -4,15 +4,11 @@ # ast-template will then preserve content between those markers across template runs. # kettle-jem:unfreeze -require 'kettle/soup/cover/config' - # Minimum coverage thresholds are set by kettle-soup-cover. # They are controlled by ENV variables loaded by `mise` from `mise.toml` # (with optional machine-local overrides in `.env.local`). # If the values for minimum coverage need to change, they should be changed both there, # and in 2 places in .github/workflows/coverage.yml. -SimpleCov.start do - track_files 'lib/**/*.rb' - track_files 'lib/**/*.rake' - track_files 'exe/*.rb' +SimpleCov.configure do + cover 'lib/**/*.rb', 'lib/**/*.rake', 'exe/*.rb' end diff --git a/gems/ast-template/Gemfile b/gems/ast-template/Gemfile index 355308a08..541f9d065 100644 --- a/gems/ast-template/Gemfile +++ b/gems/ast-template/Gemfile @@ -6,7 +6,7 @@ # kettle-jem will then preserve content between those markers across template runs. # kettle-jem:unfreeze -source "https://gem.coop" +source 'https://gem.coop' git_source(:codeberg) { |repo_name| "https://codeberg.org/#{repo_name}" } git_source(:gitlab) { |repo_name| "https://gitlab.com/#{repo_name}" } @@ -19,57 +19,53 @@ git_source(:gitlab) { |repo_name| "https://gitlab.com/#{repo_name}" } gemspec # Local workspace dependency wiring for *_local.gemfile overrides -nomono_requirements = ["~> 1.0", ">= 1.0.8"] -gem "nomono", *nomono_requirements, require: false # ruby >= 2.2 +nomono_requirements = ['~> 1.0', '>= 1.0.8'] +gem 'nomono', *nomono_requirements, require: false # ruby >= 2.2 # Direct sibling dependencies (env-switched via STRUCTUREDMERGE_DEV) direct_sibling_gems = %w[ ast-merge ] -direct_sibling_dev = ENV.fetch("STRUCTUREDMERGE_DEV", "") +direct_sibling_dev = ENV.fetch('STRUCTUREDMERGE_DEV', '') direct_sibling_local = !direct_sibling_dev.empty? && !%w[false 0 no off].include?(direct_sibling_dev.downcase) -direct_sibling_templating = ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? +direct_sibling_templating = ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero?) - direct_sibling_dev_was_set = ENV.key?("STRUCTUREDMERGE_DEV") - direct_sibling_dev_original = ENV.fetch("STRUCTUREDMERGE_DEV", nil) + (direct_sibling_local || + ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) + direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') + direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) begin nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path("Gemfile.lock", __dir__) + nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == "nomono" } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - if nomono_locked - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] - end - end - Kernel.send(:gem, "nomono", *nomono_activation_requirements) - require "nomono/bundler" - if direct_sibling_templating && !direct_sibling_local - ENV["STRUCTUREDMERGE_DEV"] = File.expand_path("..", __dir__) + Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked end + Kernel.send(:gem, 'nomono', *nomono_activation_requirements) + require 'nomono/bundler' + ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local eval_nomono_gems( gems: direct_sibling_gems, - prefix: "STRUCTUREDMERGE", - path_env: "STRUCTUREDMERGE_DEV", - root: ["src", "my", "structuredmerge"] + prefix: 'STRUCTUREDMERGE', + path_env: 'STRUCTUREDMERGE_DEV', + root: %w[src my structuredmerge] ) rescue LoadError - warn "Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies." + warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' ensure if direct_sibling_templating && !direct_sibling_local if direct_sibling_dev_was_set - ENV["STRUCTUREDMERGE_DEV"] = direct_sibling_dev_original + ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original else - ENV.delete("STRUCTUREDMERGE_DEV") + ENV.delete('STRUCTUREDMERGE_DEV') end end end @@ -156,28 +152,28 @@ if direct_sibling_gems.any? && end # Use released TSLP with the Ruby ABI platform-gem fix. -gem "tree_sitter_language_pack", "~> 1.13", ">= 1.13.3" +gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' # Templating (env-switched: STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local paths) -eval_gemfile "gemfiles/modular/templating.gemfile" if ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? +eval_gemfile 'gemfiles/modular/templating.gemfile' if ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? # Debugging -eval_gemfile "gemfiles/modular/debug.gemfile" +eval_gemfile 'gemfiles/modular/debug.gemfile' # Code Coverage (env-switched: KETTLE_DEV_DEV=true for local paths) -eval_gemfile "gemfiles/modular/coverage.gemfile" +eval_gemfile 'gemfiles/modular/coverage.gemfile' # Linting -eval_gemfile "gemfiles/modular/style.gemfile" +eval_gemfile 'gemfiles/modular/style.gemfile' # Documentation -eval_gemfile "gemfiles/modular/documentation.gemfile" +eval_gemfile 'gemfiles/modular/documentation.gemfile' # Optional -eval_gemfile "gemfiles/modular/optional.gemfile" +eval_gemfile 'gemfiles/modular/optional.gemfile' ### Std Lib Extracted Gems -eval_gemfile "gemfiles/modular/x_std_libs.gemfile" +eval_gemfile 'gemfiles/modular/x_std_libs.gemfile' # See unlocked_deps appraisal for more details on irb inclusion -gem "irb", "~> 1.17" # ruby >= 2.7 +gem 'irb', '~> 1.17' # ruby >= 2.7 diff --git a/gems/ast-template/Gemfile.lock b/gems/ast-template/Gemfile.lock index c6b4b1fdb..0568f0bf0 100644 --- a/gems/ast-template/Gemfile.lock +++ b/gems/ast-template/Gemfile.lock @@ -6,39 +6,7 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly - specs: - ast-crispr-markdown-markly (7.1.0) - ast-crispr (= 7.1.0) - markly-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism - specs: - ast-crispr-ruby-prism (7.1.0) - ast-crispr (= 7.1.0) - prism-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr - specs: - ast-crispr (7.1.0) - ast-merge (= 7.1.0) - service_actor (~> 3.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git - specs: - ast-merge-git (7.1.0) - ast-merge (= 7.1.0) - json-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/ast-merge specs: ast-merge (7.1.0) benchmark @@ -46,226 +14,6 @@ PATH tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge - specs: - bash-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge - specs: - binary-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge - specs: - citrus-toml-merge (7.1.0) - toml-merge (= 7.1.0) - toml-rb (~> 4.1) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge - specs: - commonmarker-merge (7.1.0) - commonmarker (~> 2.2) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge - specs: - dotenv-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge - specs: - go-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge - specs: - json-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem - specs: - kettle-jem (7.1.0) - addressable (>= 2.8, < 3) - ast-crispr-markdown-markly (= 7.1.0) - ast-crispr-ruby-prism (= 7.1.0) - ast-merge (= 7.1.0) - bash-merge (= 7.1.0) - citrus-toml-merge (= 7.1.0) - commonmarker-merge (= 7.1.0) - dotenv-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-dev (~> 2.3, >= 2.3.5) - kettle-rb (~> 0.1, >= 0.1.4) - kramdown-merge (= 7.1.0) - markdown-merge (= 7.1.0) - markly-merge (= 7.1.0) - prism-merge (= 7.1.0) - psych-merge (= 7.1.0) - rbs (>= 3.10) - rbs-merge (= 7.1.0) - ruby-merge (= 7.1.0) - token-resolver (~> 2.0, >= 2.0.4) - toml-merge (= 7.1.0) - toml-rb (~> 4.2) - tree_haver (= 7.1.0) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge - specs: - kramdown-merge (7.1.0) - kramdown (~> 2.5) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge - specs: - markdown-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge - specs: - markly-merge (7.1.0) - markdown-merge (= 7.1.0) - markly (~> 0.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge - specs: - parslet-toml-merge (7.1.0) - toml (~> 0.3) - toml-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge - specs: - plain-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge - specs: - prism-merge (7.1.0) - prism (~> 1.6) - ruby-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge - specs: - psych-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge - specs: - rbs-merge (7.1.0) - ast-merge (= 7.1.0) - rbs (>= 3.10) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge - specs: - ruby-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge - specs: - rust-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb - specs: - smorg-rb (7.1.0) - ast-merge (= 7.1.0) - ast-merge-git (= 7.1.0) - diff-lcs (~> 1.5) - go-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-jem (= 7.1.0) - markly-merge (= 7.1.0) - plain-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge - specs: - toml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver - specs: - tree_haver (7.1.0) - citrus (~> 3.0) - parslet (~> 2.0) - tree_sitter_language_pack (>= 1.13.2, < 2.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge - specs: - typescript-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge - specs: - yaml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge - specs: - zip-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - GEM remote: https://gem.coop/ specs: @@ -290,7 +38,6 @@ GEM cgi (0.5.2) citrus (3.0.2) cmdparse (3.0.7) - commonmarker (2.9.0-x86_64-linux) concurrent-ruby (1.3.8) date (3.5.1) debug (1.11.1) @@ -348,13 +95,11 @@ GEM rdoc (>= 4.0.0) reline (>= 0.4.2) json (2.21.1) - kettle-dev (2.3.8) + kettle-dev (2.3.9) emoji_regex (>= 15.0) kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) - kettle-drift (1.0.6) - version_gem (~> 1.1, >= 1.1.14) kettle-rb (0.1.5) kettle-soup-cover (3.0.4) kettle-wash (~> 0.1, >= 0.1.0) @@ -383,7 +128,6 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) - markly (0.16.0) mutex_m (0.3.0) nokogiri (1.19.4-x86_64-linux-gnu) racc (~> 1.4) @@ -538,8 +282,6 @@ GEM ruby-progressbar (1.13.0) ruby_engine (2.0.3) ruby_version (1.0.3) - service_actor (3.9.4) - zeitwerk (>= 1.0) silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) @@ -594,11 +336,11 @@ GEM token-resolver (2.0.5) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.14) - toml (0.3.0) - parslet (>= 1.8.0, < 3.0.0) - toml-rb (4.2.0) - citrus (~> 3.0, > 3.0) - racc (~> 1.7) + tree_haver (7.1.0) + citrus (~> 3.0) + parslet (~> 2.0) + tree_sitter_language_pack (>= 1.13.2, < 2.0) + version_gem (~> 1.1, >= 1.1.9) tree_sitter_language_pack (1.13.3-x86_64-linux) sorbet-runtime (~> 0.5) tsort (0.2.0) @@ -644,46 +386,25 @@ DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) appraisal2-rubocop (~> 1.0, >= 1.0.0) - ast-crispr! - ast-crispr-markdown-markly! - ast-crispr-ruby-prism! ast-merge! - ast-merge-git! ast-template! - bash-merge! benchmark (~> 0.5, >= 0.5.0) - binary-merge! bundler-audit (~> 0.9.3) cgi (~> 0.5) - citrus-toml-merge! - commonmarker-merge! debug (>= 1.1) - dotenv-merge! erb (~> 6.0, >= 6.0.6) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.0) - go-merge! irb (~> 1.17) - json-merge! kettle-dev (~> 2.0, >= 2.2.25) - kettle-drift (~> 1.0, >= 1.0.6) - kettle-jem! kettle-soup-cover (~> 3.0, >= 3.0.3) kettle-test (~> 2.0, >= 2.0.9) kramdown (~> 2.5, >= 2.5.2) - kramdown-merge! kramdown-parser-gfm (~> 1.1) - markdown-merge! - markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) - parslet-toml-merge! - plain-merge! - prism-merge! - psych-merge! rake (~> 13.0) rbs (>= 3.0) - rbs-merge! rdoc (~> 6.11) reek (~> 6.5, >= 6.5.0) require_bench (~> 1.0, >= 1.0.4) @@ -694,27 +415,19 @@ DEPENDENCIES rubocop-on-rbs (~> 2.0, >= 2.0.0) rubocop-packaging (~> 0.6, >= 0.6.0) rubocop-ruby3_2 (~> 3.0, >= 3.0.6) - ruby-merge! ruby-progressbar (~> 1.13) - rust-merge! - smorg-rb! standard (~> 1.56, >= 1.56.0) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) - toml-merge! - tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) - typescript-merge! webrick (~> 1.9) yaml-converter (~> 0.2, >= 0.2.3) - yaml-merge! yard (~> 0.9, >= 0.9.45) yard-fence (~> 0.9, >= 0.9.6) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) yard-timekeeper (~> 0.2, >= 0.2.4) yard-yaml (~> 0.2, >= 0.2.3) - zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af @@ -722,31 +435,21 @@ CHECKSUMS appraisal2 (3.2.0) sha256=ccd0b767ac4060cd7af6d16747459b6990f49c39c7b4fb1f7d1146b1e97c492f appraisal2-rubocop (1.0.0) sha256=b71410fbb014befda5340605a605b7f6f3f012739baf0acc5b4351b592c3258d ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 - ast-crispr (7.1.0) - ast-crispr-markdown-markly (7.1.0) - ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) - ast-merge-git (7.1.0) ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 - bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd - binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 - citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 - commonmarker (2.9.0-x86_64-linux) - commonmarker-merge (7.1.0) concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 - dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -759,28 +462,20 @@ CHECKSUMS gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f - go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 - json-merge (7.1.0) - kettle-dev (2.3.8) sha256=9d716ff21c660a730cb4e8d41e2e2f0630a28167a354b6e2924e242102aef72c - kettle-drift (1.0.6) - kettle-jem (7.1.0) + kettle-dev (2.3.9) kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f kettle-soup-cover (3.0.4) kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa - kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 - markdown-merge (7.1.0) - markly (0.16.0) - markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-x86_64-linux-gnu) sha256=379fae440b28915e3f19d752ce2dcf8465ed2b2fbefd2a7ca0dd497bc981a06a nomono (1.0.9) @@ -790,20 +485,15 @@ CHECKSUMS parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 - parslet-toml-merge (7.1.0) - plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 - prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 - psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 - rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb @@ -838,19 +528,15 @@ CHECKSUMS rubocop-rspec_rails (2.32.0) sha256=4a0d641c72f6ebb957534f539d9d0a62c47abd8ce0d0aeee1ef4701e892a9100 rubocop-ruby3_2 (3.0.7) sha256=f53dd6d286fb05186214fc6ec116783e7f837030918e8931c05de773e98f8466 rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 - ruby-merge (7.1.0) ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 - rust-merge (7.1.0) - service_actor (3.9.4) silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed - smorg-rb (7.1.0) sorbet-runtime (0.6.13351) sha256=f8fee17c6e3edf835dc6823d26afb9a7c8969c6710d1fabe2fb43f4e0c15c64f standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b @@ -865,20 +551,15 @@ CHECKSUMS timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.5) sha256=b852f924287ffb58a440856e862b056c8ad97e74b4b2526cee43e0771f40c25c - toml (0.3.0) - toml-merge (7.1.0) - toml-rb (4.2.0) tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 - typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 webrick (1.9.2) sha256=beb4a15fc474defed24a3bda4ffd88a490d517c9e4e6118c3edce59e45864131 yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 - yaml-merge (7.1.0) yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd @@ -886,7 +567,6 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 - zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH diff --git a/gems/ast-template/Rakefile b/gems/ast-template/Rakefile index 193fad244..1da755b67 100644 --- a/gems/ast-template/Rakefile +++ b/gems/ast-template/Rakefile @@ -130,23 +130,23 @@ end ### DUPLICATE DRIFT TASKS begin - require "kettle/drift" + require 'kettle/drift' Kettle::Drift.install_tasks rescue LoadError - desc("(stub) kettle:drift:check is unavailable") - task("kettle:drift:check") do + desc('(stub) kettle:drift:check is unavailable') + task('kettle:drift:check') do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc("(stub) kettle:drift:update is unavailable") - task("kettle:drift:update") do + desc('(stub) kettle:drift:update is unavailable') + task('kettle:drift:update') do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc("(stub) kettle:drift:force_update is unavailable") - task("kettle:drift:force_update") do + desc('(stub) kettle:drift:force_update is unavailable') + task('kettle:drift:force_update') do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc("(stub) kettle:drift is unavailable") - task("kettle:drift" => "kettle:drift:update") + desc('(stub) kettle:drift is unavailable') + task('kettle:drift' => 'kettle:drift:update') end ### TEMPLATING TASKS diff --git a/gems/ast-template/gemfiles/modular/templating.gemfile b/gems/ast-template/gemfiles/modular/templating.gemfile index 47138ffbb..a672de184 100644 --- a/gems/ast-template/gemfiles/modular/templating.gemfile +++ b/gems/ast-template/gemfiles/modular/templating.gemfile @@ -1,18 +1,18 @@ # frozen_string_literal: true -structuredmerge_remote = ENV.fetch("STRUCTUREDMERGE_DEV", "false").casecmp("false").zero? -kettle_remote = ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false").zero? +structuredmerge_remote = ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false').zero? +kettle_remote = ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? if structuredmerge_remote # Parser dependencies for released installs. - gem "tree_sitter_language_pack", "~> 1.13", ">= 1.13.3" + gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' # Merge recipes for released installs. - gem "kettle-jem", ">= 7.0" + gem 'kettle-jem', '>= 7.0' end if kettle_remote # Template/plugin checks for released installs. - gem "kettle-drift", "~> 1.0", ">= 1.0.6", require: false + gem 'kettle-drift', '~> 1.0', '>= 1.0.6', require: false end # Set STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local development with path-based dependencies. @@ -21,4 +21,4 @@ end # # Set KETTLE_DEV_DEV=/path/to/my for local development with Kettle plugin gems. # When false (default / CI), released Kettle plugin gems are used. -eval_gemfile "templating_local.gemfile" unless structuredmerge_remote && kettle_remote +eval_gemfile 'templating_local.gemfile' unless structuredmerge_remote && kettle_remote diff --git a/gems/ast-template/gemfiles/modular/templating_local.gemfile b/gems/ast-template/gemfiles/modular/templating_local.gemfile index 7f73c3826..0b0d4c669 100644 --- a/gems/ast-template/gemfiles/modular/templating_local.gemfile +++ b/gems/ast-template/gemfiles/modular/templating_local.gemfile @@ -12,21 +12,19 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] -nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) +nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] +nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == "nomono" } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - if nomono_locked - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] - end + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked end -Kernel.send(:gem, "nomono", *nomono_activation_requirements) -require "nomono/bundler" +Kernel.send(:gem, 'nomono', *nomono_activation_requirements) +require 'nomono/bundler' structuredmerge_local_gems = %w[ tree_haver @@ -69,25 +67,25 @@ structuredmerge_local_gems_to_eval = structuredmerge_local_gems - %w[ast-templat kettle_dev_local_gems_to_eval = kettle_dev_local_gems - %w[ast-template] - declared_gems platform :mri do - if ENV.fetch("STRUCTUREDMERGE_DEV", "false").casecmp("false") != 0 + if ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false') != 0 eval_nomono_gems( gems: structuredmerge_local_gems_to_eval, - prefix: "STRUCTUREDMERGE", - path_env: "STRUCTUREDMERGE_DEV", - vendored_gems_env: "VENDORED_GEMS", - vendor_gem_dir_env: "VENDOR_GEM_DIR", - debug_env: "STRUCTUREDMERGE_DEBUG" + prefix: 'STRUCTUREDMERGE', + path_env: 'STRUCTUREDMERGE_DEV', + vendored_gems_env: 'VENDORED_GEMS', + vendor_gem_dir_env: 'VENDOR_GEM_DIR', + debug_env: 'STRUCTUREDMERGE_DEBUG' ) end - if ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false") != 0 + if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false') != 0 eval_nomono_gems( gems: kettle_dev_local_gems_to_eval, - prefix: "KETTLE_DEV", - path_env: "KETTLE_DEV_DEV", - vendored_gems_env: "VENDORED_GEMS", - vendor_gem_dir_env: "VENDOR_GEM_DIR", - debug_env: "KETTLE_DEV_DEBUG" + prefix: 'KETTLE_DEV', + path_env: 'KETTLE_DEV_DEV', + vendored_gems_env: 'VENDORED_GEMS', + vendor_gem_dir_env: 'VENDOR_GEM_DIR', + debug_env: 'KETTLE_DEV_DEBUG' ) end end diff --git a/gems/ast-template/lib/ast/template/version.rb b/gems/ast-template/lib/ast/template/version.rb index 2cf6f7536..0e1e7cf5d 100644 --- a/gems/ast-template/lib/ast/template/version.rb +++ b/gems/ast-template/lib/ast/template/version.rb @@ -3,7 +3,7 @@ module Ast module Template module Version - VERSION = "7.1.0" + VERSION = '7.1.0' end VERSION = Version::VERSION # Traditional Constant Location end diff --git a/gems/ast-template/spec/spec_helper.rb b/gems/ast-template/spec/spec_helper.rb index e230006dc..f4d1208d9 100644 --- a/gems/ast-template/spec/spec_helper.rb +++ b/gems/ast-template/spec/spec_helper.rb @@ -8,7 +8,12 @@ # The rescue LoadError handles that scenario. begin require 'kettle-soup-cover' - require 'simplecov' if Kettle::Soup::Cover::DO_COV # `.simplecov` is run here! + if Kettle::Soup::Cover::DO_COV + # Requiring simplecov loads the project-local `.simplecov`. + require 'simplecov' + require 'kettle/soup/cover/config' + SimpleCov.start + end rescue LoadError => e # check the error message and re-raise when unexpected raise e unless e.message.include?('kettle') diff --git a/gems/binary-merge/.rubocop_gradual.lock b/gems/binary-merge/.rubocop_gradual.lock deleted file mode 100644 index adbcacb1f..000000000 --- a/gems/binary-merge/.rubocop_gradual.lock +++ /dev/null @@ -1,105 +0,0 @@ -{ - ".simplecov:2434553742": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "Rakefile:273093165": [ - [18, 121, 17, "Layout/LineLength: Line is too long. [137/120]", 174264873], - [79, 3, 1023, "Metrics/BlockLength: Block has too many lines. [32/25]", 54868638], - [163, 121, 22, "Layout/LineLength: Line is too long. [142/120]", 1367093088], - [166, 121, 18, "Layout/LineLength: Line is too long. [138/120]", 3881946477] - ], - "binary-merge.gemspec:3582270982": [ - [127, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 2821357214], - [142, 121, 50, "Layout/LineLength: Line is too long. [170/120]", 3888612416], - [143, 121, 29, "Layout/LineLength: Line is too long. [149/120]", 981994949], - [150, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 4229808912] - ], - "gemfiles/modular/benchmark/r4/v0.5.gemfile:3644720371": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/benchmark/vHEAD.gemfile:2838879269": [ - [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/cgi/r4/v0.5.gemfile:367169322": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] - ], - "gemfiles/modular/cgi/vHEAD.gemfile:2729540777": [ - [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] - ], - "gemfiles/modular/erb/r2/v3.0.gemfile:1688285565": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] - ], - "gemfiles/modular/erb/r3/v5.0.gemfile:2394062339": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] - ], - "gemfiles/modular/erb/r4/v5.0.gemfile:2394062339": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] - ], - "gemfiles/modular/erb/vHEAD.gemfile:981929959": [ - [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/mutex_m/r2/v0.3.gemfile:4055275004": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/mutex_m/r3/v0.3.gemfile:4055275004": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/mutex_m/r4/v0.3.gemfile:4055275004": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/mutex_m/vHEAD.gemfile:556854763": [ - [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/rspec.gemfile:2263543889": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] - ], - "gemfiles/modular/stringio/r2/v3.0.gemfile:821604304": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/stringio/r3/v3.0.gemfile:821604304": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/stringio/r4/v3.0.gemfile:821604304": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/stringio/vHEAD.gemfile:1045839691": [ - [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/webrick/r4/v1.9.gemfile:3092661193": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] - ], - "gemfiles/modular/webrick/vHEAD.gemfile:3867684682": [ - [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] - ], - "gemfiles/modular/x_std_libs.gemfile:2324400122": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/x_std_libs/r2/libs.gemfile:36276542": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] - ], - "gemfiles/modular/x_std_libs/r3/libs.gemfile:4030570297": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] - ], - "gemfiles/modular/x_std_libs/r4/libs.gemfile:732451732": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] - ], - "gemfiles/modular/x_std_libs/vHEAD.gemfile:2390363993": [ - [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] - ], - "lib/binary-merge.rb:631889281": [ - [1, 1, 0, "Naming/FileName: The name of this source file (`binary-merge.rb`) should use snake_case.", 5381] - ], - "lib/binary/merge.rb:1312582900": [ - [9, 3, 12, "Style/Documentation: Missing top-level documentation comment for `module Binary::Merge`.", 2866359175] - ], - "spec/fixtures_integration_spec.rb:2634773556": [ - [3, 1, 1275, "Metrics/BlockLength: Block has too many lines. [27/25]", 3473144817] - ] -} diff --git a/gems/binary-merge/.simplecov b/gems/binary-merge/.simplecov index 74cd7d254..ddfbc1dd3 100644 --- a/gems/binary-merge/.simplecov +++ b/gems/binary-merge/.simplecov @@ -4,15 +4,11 @@ # binary-merge will then preserve content between those markers across template runs. # kettle-jem:unfreeze -require 'kettle/soup/cover/config' - # Minimum coverage thresholds are set by kettle-soup-cover. # They are controlled by ENV variables loaded by `mise` from `mise.toml` # (with optional machine-local overrides in `.env.local`). # If the values for minimum coverage need to change, they should be changed both there, # and in 2 places in .github/workflows/coverage.yml. -SimpleCov.start do - track_files 'lib/**/*.rb' - track_files 'lib/**/*.rake' - track_files 'exe/*.rb' +SimpleCov.configure do + cover "lib/**/*.rb", "lib/**/*.rake", "exe/*.rb" end diff --git a/gems/binary-merge/Gemfile.lock b/gems/binary-merge/Gemfile.lock index e0b8c6950..908cdc716 100644 --- a/gems/binary-merge/Gemfile.lock +++ b/gems/binary-merge/Gemfile.lock @@ -5,235 +5,6 @@ PATH tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly - specs: - ast-crispr-markdown-markly (7.1.0) - ast-crispr (= 7.1.0) - markly-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism - specs: - ast-crispr-ruby-prism (7.1.0) - ast-crispr (= 7.1.0) - prism-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr - specs: - ast-crispr (7.1.0) - ast-merge (= 7.1.0) - service_actor (~> 3.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git - specs: - ast-merge-git (7.1.0) - ast-merge (= 7.1.0) - json-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge - specs: - ast-merge (7.1.0) - benchmark - token-resolver (~> 2.0, >= 2.0.4) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template - specs: - ast-template (7.1.0) - ast-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge - specs: - bash-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge - specs: - citrus-toml-merge (7.1.0) - toml-merge (= 7.1.0) - toml-rb (~> 4.1) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge - specs: - commonmarker-merge (7.1.0) - commonmarker (~> 2.2) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge - specs: - dotenv-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge - specs: - go-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge - specs: - json-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem - specs: - kettle-jem (7.1.0) - addressable (>= 2.8, < 3) - ast-crispr-markdown-markly (= 7.1.0) - ast-crispr-ruby-prism (= 7.1.0) - ast-merge (= 7.1.0) - bash-merge (= 7.1.0) - citrus-toml-merge (= 7.1.0) - commonmarker-merge (= 7.1.0) - dotenv-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-dev (~> 2.3, >= 2.3.5) - kettle-rb (~> 0.1, >= 0.1.4) - kramdown-merge (= 7.1.0) - markdown-merge (= 7.1.0) - markly-merge (= 7.1.0) - prism-merge (= 7.1.0) - psych-merge (= 7.1.0) - rbs (>= 3.10) - rbs-merge (= 7.1.0) - ruby-merge (= 7.1.0) - token-resolver (~> 2.0, >= 2.0.4) - toml-merge (= 7.1.0) - toml-rb (~> 4.2) - tree_haver (= 7.1.0) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge - specs: - kramdown-merge (7.1.0) - kramdown (~> 2.5) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge - specs: - markdown-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge - specs: - markly-merge (7.1.0) - markdown-merge (= 7.1.0) - markly (~> 0.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge - specs: - parslet-toml-merge (7.1.0) - toml (~> 0.3) - toml-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge - specs: - plain-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge - specs: - prism-merge (7.1.0) - prism (~> 1.6) - ruby-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge - specs: - psych-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge - specs: - rbs-merge (7.1.0) - ast-merge (= 7.1.0) - rbs (>= 3.10) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge - specs: - ruby-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge - specs: - rust-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb - specs: - smorg-rb (7.1.0) - ast-merge (= 7.1.0) - ast-merge-git (= 7.1.0) - diff-lcs (~> 1.5) - go-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-jem (= 7.1.0) - markly-merge (= 7.1.0) - plain-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge - specs: - toml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - PATH remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver specs: @@ -243,29 +14,6 @@ PATH tree_sitter_language_pack (>= 1.13.2, < 2.0) version_gem (~> 1.1, >= 1.1.9) -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge - specs: - typescript-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge - specs: - yaml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge - specs: - zip-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - GEM remote: https://gem.coop/ specs: @@ -290,11 +38,6 @@ GEM cgi (0.5.2) citrus (3.0.2) cmdparse (3.0.7) - commonmarker (2.9.0-aarch64-linux) - commonmarker (2.9.0-aarch64-linux-musl) - commonmarker (2.9.0-arm64-darwin) - commonmarker (2.9.0-x86_64-linux) - commonmarker (2.9.0-x86_64-linux-musl) concurrent-ruby (1.3.8) date (3.5.1) debug (1.11.1) @@ -357,8 +100,6 @@ GEM kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) - kettle-drift (1.0.6) - version_gem (~> 1.1, >= 1.1.14) kettle-rb (0.1.5) kettle-soup-cover (3.0.4) kettle-wash (~> 0.1, >= 0.1.0) @@ -387,7 +128,6 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) - markly (0.16.0) mutex_m (0.3.0) nokogiri (1.19.4-aarch64-linux-gnu) racc (~> 1.4) @@ -550,8 +290,6 @@ GEM ruby-progressbar (1.13.0) ruby_engine (2.0.3) ruby_version (1.0.3) - service_actor (3.9.4) - zeitwerk (>= 1.0) silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) @@ -567,7 +305,7 @@ GEM simplecov (>= 0.4.1) simplecov_lcov_formatter (0.9.0) simplecov (>= 0.18) - sorbet-runtime (0.6.13347) + sorbet-runtime (0.6.13351) standard (1.56.0) language_server-protocol (~> 3.17.0.2) lint_roller (~> 1.0) @@ -603,14 +341,6 @@ GEM delegate (~> 0.1) rspec (~> 3.0) timecop (>= 0.7, < 1) - token-resolver (2.0.5) - parslet (~> 2.0) - version_gem (~> 1.1, >= 1.1.14) - toml (0.3.0) - parslet (>= 1.8.0, < 3.0.0) - toml-rb (4.2.0) - citrus (~> 3.0, > 3.0) - racc (~> 1.7) tree_sitter_language_pack (1.13.3-aarch64-linux) sorbet-runtime (~> 0.5) tree_sitter_language_pack (1.13.3-arm64-darwin) @@ -665,46 +395,24 @@ DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) appraisal2-rubocop (~> 1.0, >= 1.0.0) - ast-crispr! - ast-crispr-markdown-markly! - ast-crispr-ruby-prism! - ast-merge! - ast-merge-git! - ast-template! - bash-merge! benchmark (~> 0.5, >= 0.5.0) binary-merge! bundler-audit (~> 0.9.3) cgi (~> 0.5) - citrus-toml-merge! - commonmarker-merge! debug (>= 1.1) - dotenv-merge! erb (~> 6.0, >= 6.0.6) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.0) - go-merge! irb (~> 1.17) - json-merge! kettle-dev (~> 2.0, >= 2.2.25) - kettle-drift (~> 1.0, >= 1.0.6) - kettle-jem! kettle-soup-cover (~> 3.0, >= 3.0.3) kettle-test (~> 2.0, >= 2.0.9) kramdown (~> 2.5, >= 2.5.2) - kramdown-merge! kramdown-parser-gfm (~> 1.1) - markdown-merge! - markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) - parslet-toml-merge! - plain-merge! - prism-merge! - psych-merge! rake (~> 13.0) rbs (>= 3.0) - rbs-merge! rdoc (~> 6.11) reek (~> 6.5, >= 6.5.0) require_bench (~> 1.0, >= 1.0.4) @@ -715,27 +423,20 @@ DEPENDENCIES rubocop-on-rbs (~> 2.0, >= 2.0.0) rubocop-packaging (~> 0.6, >= 0.6.0) rubocop-ruby3_2 (~> 3.0, >= 3.0.6) - ruby-merge! ruby-progressbar (~> 1.13) - rust-merge! - smorg-rb! standard (~> 1.56, >= 1.56.0) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) - toml-merge! tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) - typescript-merge! webrick (~> 1.9) yaml-converter (~> 0.2, >= 0.2.3) - yaml-merge! yard (~> 0.9, >= 0.9.45) yard-fence (~> 0.9, >= 0.9.6) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) yard-timekeeper (~> 0.2, >= 0.2.4) yard-yaml (~> 0.2, >= 0.2.3) - zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af @@ -743,35 +444,20 @@ CHECKSUMS appraisal2 (3.2.0) sha256=ccd0b767ac4060cd7af6d16747459b6990f49c39c7b4fb1f7d1146b1e97c492f appraisal2-rubocop (1.0.0) sha256=b71410fbb014befda5340605a605b7f6f3f012739baf0acc5b4351b592c3258d ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 - ast-crispr (7.1.0) - ast-crispr-markdown-markly (7.1.0) - ast-crispr-ruby-prism (7.1.0) - ast-merge (7.1.0) - ast-merge-git (7.1.0) - ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 - bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 - citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 - commonmarker (2.9.0-aarch64-linux) sha256=e2b4aadb9a2cfa4e206582641ce3a49465549ac1ed4c289fdd63b78d8f24579c - commonmarker (2.9.0-aarch64-linux-musl) sha256=1cf4d2821f2a7e64945f1ed7c4eeced586fdb27ea7fe7337788802cf8f57cfca - commonmarker (2.9.0-arm64-darwin) sha256=1748dbfa4f5813b0d2a14bb4bbfa65a4ec293aa1c825016d60029ee0e132b046 - commonmarker (2.9.0-x86_64-linux) sha256=8cfe92970eef585a19ddf6613224b91cab64d6029834661bda801f877c9c7f43 - commonmarker (2.9.0-x86_64-linux-musl) sha256=293921398b839f79ceaf55010e061357e34f053822c3b003cd0be6686176335e - commonmarker-merge (7.1.0) concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 - dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -784,28 +470,20 @@ CHECKSUMS gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f - go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 - json-merge (7.1.0) kettle-dev (2.3.8) sha256=9d716ff21c660a730cb4e8d41e2e2f0630a28167a354b6e2924e242102aef72c - kettle-drift (1.0.6) sha256=46eda08fa4411d1f3c6682a95eef1c9df4e94611b3949f49d4c7b43c0ed356a3 - kettle-jem (7.1.0) kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f kettle-soup-cover (3.0.4) kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa - kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 - markdown-merge (7.1.0) - markly (0.16.0) sha256=6f70d79e385b1efc9e171f74c81628826259039fe6c778e03c3924c71dac5511 - markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-aarch64-linux-gnu) sha256=1269fb644a6de405057a53dd5c762b1209b43ca7424f839454d3dbc677c31a8f nokogiri (1.19.4-aarch64-linux-musl) sha256=35c65b9ce72b3bb03207bdbe7067915019dc18c1b9b59139684bd6690fdd01af @@ -819,20 +497,15 @@ CHECKSUMS parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 - parslet-toml-merge (7.1.0) - plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 - prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 - psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 - rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb @@ -867,20 +540,16 @@ CHECKSUMS rubocop-rspec_rails (2.32.0) sha256=4a0d641c72f6ebb957534f539d9d0a62c47abd8ce0d0aeee1ef4701e892a9100 rubocop-ruby3_2 (3.0.7) sha256=f53dd6d286fb05186214fc6ec116783e7f837030918e8931c05de773e98f8466 rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 - ruby-merge (7.1.0) ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 - rust-merge (7.1.0) - service_actor (3.9.4) sha256=e63b523630b9a7e62959b2a90113b08d2565b5de9c148557b281ef847c9539ce silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed - smorg-rb (7.1.0) - sorbet-runtime (0.6.13347) sha256=54e7221d9f4b63f58aec79f3043752a9ba7810347c6ae0d903531591cc2d5f01 + sorbet-runtime (0.6.13351) sha256=f8fee17c6e3edf835dc6823d26afb9a7c8969c6710d1fabe2fb43f4e0c15c64f standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b standard-performance (1.9.0) sha256=49483d31be448292951d80e5e67cdcb576c2502103c7b40aec6f1b6e9c88e3f2 @@ -893,23 +562,17 @@ CHECKSUMS thor (1.5.0) sha256=e3a9e55fe857e44859ce104a84675ab6e8cd59c650a49106a05f55f136425e73 timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 - token-resolver (2.0.5) sha256=b852f924287ffb58a440856e862b056c8ad97e74b4b2526cee43e0771f40c25c - toml (0.3.0) sha256=0a91d0f76a9036e84e44f95693b12f58d358c1df3ac8e3b5271f2056ecc6e4b9 - toml-merge (7.1.0) - toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-aarch64-linux) sha256=55ffc7c87868cb45658338363d9eba51b4a8b0259aa88e4de368d2bd1d52fea4 tree_sitter_language_pack (1.13.3-arm64-darwin) sha256=bc2498db605f212a1dbd2465ed3f65190d7da786f6ed5d30fcf958121aeb4a5c tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 - typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 webrick (1.9.2) sha256=beb4a15fc474defed24a3bda4ffd88a490d517c9e4e6118c3edce59e45864131 yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 - yaml-merge (7.1.0) yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd @@ -917,7 +580,6 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 - zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH diff --git a/gems/binary-merge/bin/yard b/gems/binary-merge/bin/yard index 5d516ad6f..a7e8b6eed 100755 --- a/gems/binary-merge/bin/yard +++ b/gems/binary-merge/bin/yard @@ -12,4 +12,4 @@ # `yard` / `bin/yard`. Keep this binstub as a handoff to the task so # humans and tools that reach for `bin/yard` still run the full docs # workflow with post-processing hooks. -exec('bundle', 'exec', 'rake', 'yard') +exec("bundle", "exec", "rake", "yard") diff --git a/gems/binary-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile b/gems/binary-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile index b8392fab0..dec650815 100644 --- a/gems/binary-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile +++ b/gems/binary-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.1 -gem 'benchmark', '~> 0.5', '>= 0.5.0' # Removed from Std Lib in Ruby 4.0 +gem "benchmark", "~> 0.5", ">= 0.5.0" # Removed from Std Lib in Ruby 4.0 diff --git a/gems/binary-merge/gemfiles/modular/benchmark/vHEAD.gemfile b/gems/binary-merge/gemfiles/modular/benchmark/vHEAD.gemfile index af214aafa..e1eb20c5e 100644 --- a/gems/binary-merge/gemfiles/modular/benchmark/vHEAD.gemfile +++ b/gems/binary-merge/gemfiles/modular/benchmark/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.1 -gem 'benchmark', github: 'ruby/benchmark', branch: 'master' +gem "benchmark", github: "ruby/benchmark", branch: "master" diff --git a/gems/binary-merge/gemfiles/modular/cgi/r4/v0.5.gemfile b/gems/binary-merge/gemfiles/modular/cgi/r4/v0.5.gemfile index 17ad97260..19ed967c3 100644 --- a/gems/binary-merge/gemfiles/modular/cgi/r4/v0.5.gemfile +++ b/gems/binary-merge/gemfiles/modular/cgi/r4/v0.5.gemfile @@ -1 +1 @@ -gem 'cgi', '~> 0.5' +gem "cgi", "~> 0.5" diff --git a/gems/binary-merge/gemfiles/modular/cgi/vHEAD.gemfile b/gems/binary-merge/gemfiles/modular/cgi/vHEAD.gemfile index 650fbf033..ef8b816ce 100644 --- a/gems/binary-merge/gemfiles/modular/cgi/vHEAD.gemfile +++ b/gems/binary-merge/gemfiles/modular/cgi/vHEAD.gemfile @@ -1 +1 @@ -gem 'cgi', '>= 0.5' +gem "cgi", ">= 0.5" diff --git a/gems/binary-merge/gemfiles/modular/coverage.gemfile b/gems/binary-merge/gemfiles/modular/coverage.gemfile index b93014b6b..52d737872 100644 --- a/gems/binary-merge/gemfiles/modular/coverage.gemfile +++ b/gems/binary-merge/gemfiles/modular/coverage.gemfile @@ -4,11 +4,11 @@ # Set KETTLE_DEV_DEV=true for local development with path-based dependencies. # When false (default / CI), remote released gems are used. -if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? +if ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false").zero? # Coverage (remote/released) platform :mri do - gem 'kettle-soup-cover', '~> 3.0', '>= 3.0.3', require: false + gem "kettle-soup-cover", "~> 3.0", ">= 3.0.3", require: false end else - eval_gemfile 'coverage_local.gemfile' + eval_gemfile "coverage_local.gemfile" end diff --git a/gems/binary-merge/gemfiles/modular/coverage_local.gemfile b/gems/binary-merge/gemfiles/modular/coverage_local.gemfile index c8874fd0f..9ae1a2f1a 100644 --- a/gems/binary-merge/gemfiles/modular/coverage_local.gemfile +++ b/gems/binary-merge/gemfiles/modular/coverage_local.gemfile @@ -11,19 +11,21 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] -nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) +nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] +nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == "nomono" } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + if nomono_locked + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] + end end -Kernel.send(:gem, 'nomono', *nomono_activation_requirements) -require 'nomono/bundler' +Kernel.send(:gem, "nomono", *nomono_activation_requirements) +require "nomono/bundler" local_gems = %w[kettle-dev kettle-test kettle-soup-cover kettle-drift] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) @@ -33,21 +35,21 @@ local_gems_to_eval = local_gems - %w[binary-merge] - declared_gems platform :mri do eval_nomono_gems( gems: local_gems_to_eval, - prefix: 'KETTLE_DEV', - path_env: 'KETTLE_DEV_DEV', - vendored_gems_env: 'VENDORED_GEMS', - vendor_gem_dir_env: 'VENDOR_GEM_DIR', - debug_env: 'KETTLE_DEV_DEBUG' + prefix: "KETTLE_DEV", + path_env: "KETTLE_DEV_DEV", + vendored_gems_env: "VENDORED_GEMS", + vendor_gem_dir_env: "VENDOR_GEM_DIR", + debug_env: "KETTLE_DEV_DEBUG" ) - if ENV.fetch('GALTZO_FLOSS_DEV', 'false').casecmp('false') != 0 + if ENV.fetch("GALTZO_FLOSS_DEV", "false").casecmp("false") != 0 eval_nomono_gems( gems: %w[turbo_tests2], - prefix: 'GALTZO_FLOSS', - path_env: 'GALTZO_FLOSS_DEV', - vendored_gems_env: 'GALTZO_FLOSS_VENDORED_GEMS', - vendor_gem_dir_env: 'GALTZO_FLOSS_VENDOR_GEM_DIR', - debug_env: 'GALTZO_FLOSS_DEBUG' + prefix: "GALTZO_FLOSS", + path_env: "GALTZO_FLOSS_DEV", + vendored_gems_env: "GALTZO_FLOSS_VENDORED_GEMS", + vendor_gem_dir_env: "GALTZO_FLOSS_VENDOR_GEM_DIR", + debug_env: "GALTZO_FLOSS_DEBUG" ) end end diff --git a/gems/binary-merge/gemfiles/modular/debug.gemfile b/gems/binary-merge/gemfiles/modular/debug.gemfile index eed8d4d1e..4e15b1a3a 100644 --- a/gems/binary-merge/gemfiles/modular/debug.gemfile +++ b/gems/binary-merge/gemfiles/modular/debug.gemfile @@ -13,10 +13,10 @@ platform :mri do # Debugging - Ensure ENV["DEBUG"] == "true" to use debuggers within spec suite # Use binding.break, binding.b, or debugger in code - gem 'debug', '>= 1.1' # ruby >= 2.7 + gem "debug", ">= 1.1" # ruby >= 2.7 # Dev Console - Binding.pry - Irb replacement # gem "pry", "~> 0.14" # ruby >= 2.0 end -gem 'gem_bench', '~> 2.0', '>= 2.0.5' +gem "gem_bench", "~> 2.0", ">= 2.0.5" diff --git a/gems/binary-merge/gemfiles/modular/documentation.gemfile b/gems/binary-merge/gemfiles/modular/documentation.gemfile index 9d4535f12..d8215416e 100644 --- a/gems/binary-merge/gemfiles/modular/documentation.gemfile +++ b/gems/binary-merge/gemfiles/modular/documentation.gemfile @@ -7,20 +7,20 @@ # # Documentation -gem 'kramdown', '~> 2.5', '>= 2.5.2', require: false # Ruby >= 2.5 -gem 'kramdown-parser-gfm', '~> 1.1', require: false # Ruby >= 2.3 -gem 'yaml-converter', '~> 0.2', '>= 0.2.3', require: false # Ruby >= 3.2 -gem 'yard', '~> 0.9', '>= 0.9.45', require: false -gem 'yard-junk', '~> 0.1', '>= 0.1.0', require: false # Ruby >= 3.1 -gem 'yard-relative_markdown_links', '~> 0.6', require: false +gem "kramdown", "~> 2.5", ">= 2.5.2", require: false # Ruby >= 2.5 +gem "kramdown-parser-gfm", "~> 1.1", require: false # Ruby >= 2.3 +gem "yaml-converter", "~> 0.2", ">= 0.2.3", require: false # Ruby >= 3.2 +gem "yard", "~> 0.9", ">= 0.9.45", require: false +gem "yard-junk", "~> 0.1", ">= 0.1.0", require: false # Ruby >= 3.1 +gem "yard-relative_markdown_links", "~> 0.6", require: false -if ENV.fetch('GALTZO_FLOSS_DEV', 'false').casecmp('false').zero? - gem 'yard-fence', '~> 0.9', '>= 0.9.6', require: false # Ruby >= 3.2 - gem 'yard-timekeeper', '~> 0.2', '>= 0.2.4', require: false - gem 'yard-yaml', '~> 0.2', '>= 0.2.3', require: false +if ENV.fetch("GALTZO_FLOSS_DEV", "false").casecmp("false").zero? + gem "yard-fence", "~> 0.9", ">= 0.9.6", require: false # Ruby >= 3.2 + gem "yard-timekeeper", "~> 0.2", ">= 0.2.4", require: false + gem "yard-yaml", "~> 0.2", ">= 0.2.3", require: false else - eval_gemfile 'documentation_local.gemfile' + eval_gemfile "documentation_local.gemfile" end # Std Lib extractions -gem 'rdoc', '~> 6.11', require: false unless ENV.fetch('KJ_FRAMEWORK_MATRIX_GEM', '') == 'rdoc' +gem "rdoc", "~> 6.11", require: false unless ENV.fetch("KJ_FRAMEWORK_MATRIX_GEM", "") == "rdoc" diff --git a/gems/binary-merge/gemfiles/modular/documentation_local.gemfile b/gems/binary-merge/gemfiles/modular/documentation_local.gemfile index 3ee4ecd47..2bfd78827 100644 --- a/gems/binary-merge/gemfiles/modular/documentation_local.gemfile +++ b/gems/binary-merge/gemfiles/modular/documentation_local.gemfile @@ -11,19 +11,21 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] -nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) +nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] +nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == "nomono" } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + if nomono_locked + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] + end end -Kernel.send(:gem, 'nomono', *nomono_activation_requirements) -require 'nomono/bundler' +Kernel.send(:gem, "nomono", *nomono_activation_requirements) +require "nomono/bundler" local_gems = %w[yard-fence yard-timekeeper yard-yaml] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) @@ -32,9 +34,9 @@ local_gems_to_eval = local_gems - %w[binary-merge] - declared_gems # export GALTZO_FLOSS_DEV=/path/to/galtzo-floss eval_nomono_gems( gems: local_gems_to_eval, - prefix: 'GALTZO_FLOSS', - path_env: 'GALTZO_FLOSS_DEV', - vendored_gems_env: 'GALTZO_FLOSS_VENDORED_GEMS', - vendor_gem_dir_env: 'GALTZO_FLOSS_VENDOR_GEM_DIR', - debug_env: 'GALTZO_FLOSS_DEBUG' + prefix: "GALTZO_FLOSS", + path_env: "GALTZO_FLOSS_DEV", + vendored_gems_env: "GALTZO_FLOSS_VENDORED_GEMS", + vendor_gem_dir_env: "GALTZO_FLOSS_VENDOR_GEM_DIR", + debug_env: "GALTZO_FLOSS_DEBUG" ) diff --git a/gems/binary-merge/gemfiles/modular/erb/r2/v3.0.gemfile b/gems/binary-merge/gemfiles/modular/erb/r2/v3.0.gemfile index 7c83a239b..c03bd8d85 100644 --- a/gems/binary-merge/gemfiles/modular/erb/r2/v3.0.gemfile +++ b/gems/binary-merge/gemfiles/modular/erb/r2/v3.0.gemfile @@ -1 +1 @@ -gem 'erb', '~> 3.0' # ruby >= 2.7.0 +gem "erb", "~> 3.0" # ruby >= 2.7.0 diff --git a/gems/binary-merge/gemfiles/modular/erb/r3/v5.0.gemfile b/gems/binary-merge/gemfiles/modular/erb/r3/v5.0.gemfile index ec7ff451f..1bd029cc1 100644 --- a/gems/binary-merge/gemfiles/modular/erb/r3/v5.0.gemfile +++ b/gems/binary-merge/gemfiles/modular/erb/r3/v5.0.gemfile @@ -1 +1 @@ -gem 'erb', '~> 6.0', '>= 6.0.6' # ruby >= 3.2.0 +gem "erb", "~> 6.0", ">= 6.0.6" # ruby >= 3.2.0 diff --git a/gems/binary-merge/gemfiles/modular/erb/r4/v5.0.gemfile b/gems/binary-merge/gemfiles/modular/erb/r4/v5.0.gemfile index ec7ff451f..1bd029cc1 100644 --- a/gems/binary-merge/gemfiles/modular/erb/r4/v5.0.gemfile +++ b/gems/binary-merge/gemfiles/modular/erb/r4/v5.0.gemfile @@ -1 +1 @@ -gem 'erb', '~> 6.0', '>= 6.0.6' # ruby >= 3.2.0 +gem "erb", "~> 6.0", ">= 6.0.6" # ruby >= 3.2.0 diff --git a/gems/binary-merge/gemfiles/modular/erb/vHEAD.gemfile b/gems/binary-merge/gemfiles/modular/erb/vHEAD.gemfile index ea0101185..48fee4218 100644 --- a/gems/binary-merge/gemfiles/modular/erb/vHEAD.gemfile +++ b/gems/binary-merge/gemfiles/modular/erb/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 3.2 -gem 'erb', github: 'ruby/erb', branch: 'master' +gem "erb", github: "ruby/erb", branch: "master" diff --git a/gems/binary-merge/gemfiles/modular/json/truffleruby_22_3.gemfile b/gems/binary-merge/gemfiles/modular/json/truffleruby_22_3.gemfile index 9b2f8d96a..b0e69ab11 100644 --- a/gems/binary-merge/gemfiles/modular/json/truffleruby_22_3.gemfile +++ b/gems/binary-merge/gemfiles/modular/json/truffleruby_22_3.gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -if RUBY_ENGINE == 'truffleruby' && RUBY_ENGINE_VERSION.start_with?('22.3') +if RUBY_ENGINE == "truffleruby" && RUBY_ENGINE_VERSION.start_with?("22.3") # TruffleRuby 22.3 ships the json default gem from its emulated MRI Ruby. - gem 'json', '= 2.5.1' + gem "json", "= 2.5.1" end diff --git a/gems/binary-merge/gemfiles/modular/json/truffleruby_23_0.gemfile b/gems/binary-merge/gemfiles/modular/json/truffleruby_23_0.gemfile index d787a5ef4..7b2660a2b 100644 --- a/gems/binary-merge/gemfiles/modular/json/truffleruby_23_0.gemfile +++ b/gems/binary-merge/gemfiles/modular/json/truffleruby_23_0.gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -if RUBY_ENGINE == 'truffleruby' && RUBY_ENGINE_VERSION.start_with?('23.0') +if RUBY_ENGINE == "truffleruby" && RUBY_ENGINE_VERSION.start_with?("23.0") # TruffleRuby 23.0 ships the json default gem from its emulated MRI Ruby. - gem 'json', '= 2.6.1' + gem "json", "= 2.6.1" end diff --git a/gems/binary-merge/gemfiles/modular/json/truffleruby_23_1.gemfile b/gems/binary-merge/gemfiles/modular/json/truffleruby_23_1.gemfile index d78486b0e..dfa21f2e4 100644 --- a/gems/binary-merge/gemfiles/modular/json/truffleruby_23_1.gemfile +++ b/gems/binary-merge/gemfiles/modular/json/truffleruby_23_1.gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -if RUBY_ENGINE == 'truffleruby' && RUBY_ENGINE_VERSION.start_with?('23.1') +if RUBY_ENGINE == "truffleruby" && RUBY_ENGINE_VERSION.start_with?("23.1") # TruffleRuby 23.1 ships the json default gem from its emulated MRI Ruby. - gem 'json', '= 2.6.3' + gem "json", "= 2.6.3" end diff --git a/gems/binary-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile b/gems/binary-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile index e27f1bbae..42e9d9bd4 100644 --- a/gems/binary-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile +++ b/gems/binary-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 -gem 'mutex_m', '~> 0.2' +gem "mutex_m", "~> 0.2" diff --git a/gems/binary-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile b/gems/binary-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile index e27f1bbae..42e9d9bd4 100644 --- a/gems/binary-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile +++ b/gems/binary-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 -gem 'mutex_m', '~> 0.2' +gem "mutex_m", "~> 0.2" diff --git a/gems/binary-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile b/gems/binary-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile index e27f1bbae..42e9d9bd4 100644 --- a/gems/binary-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile +++ b/gems/binary-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 -gem 'mutex_m', '~> 0.2' +gem "mutex_m", "~> 0.2" diff --git a/gems/binary-merge/gemfiles/modular/mutex_m/vHEAD.gemfile b/gems/binary-merge/gemfiles/modular/mutex_m/vHEAD.gemfile index 9dac2f6cb..8af3b6fca 100644 --- a/gems/binary-merge/gemfiles/modular/mutex_m/vHEAD.gemfile +++ b/gems/binary-merge/gemfiles/modular/mutex_m/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 (dependency of omniauth) -gem 'mutex_m', github: 'ruby/mutex_m', branch: 'master' +gem "mutex_m", github: "ruby/mutex_m", branch: "master" diff --git a/gems/binary-merge/gemfiles/modular/optional.gemfile b/gems/binary-merge/gemfiles/modular/optional.gemfile index 9ea429538..80bc45196 100644 --- a/gems/binary-merge/gemfiles/modular/optional.gemfile +++ b/gems/binary-merge/gemfiles/modular/optional.gemfile @@ -9,8 +9,8 @@ # Optional dependencies are not depended on directly, but may be used if present. # Required for curated binstubs generated by kettle-jem install -gem 'rbs', '>= 3.0', require: false # ruby >= 3.1 +gem "rbs", ">= 3.0", require: false # ruby >= 3.1 # Required for kettle-pre-release # URL parsing with Unicode support (falls back to URI if not available) -gem 'addressable', '>= 2.8', '< 3' # ruby >= 2.2 +gem "addressable", ">= 2.8", "< 3" # ruby >= 2.2 diff --git a/gems/binary-merge/gemfiles/modular/rspec.gemfile b/gems/binary-merge/gemfiles/modular/rspec.gemfile index 2af210a41..72fdf8b7f 100644 --- a/gems/binary-merge/gemfiles/modular/rspec.gemfile +++ b/gems/binary-merge/gemfiles/modular/rspec.gemfile @@ -1,4 +1,4 @@ -gem 'rspec_junit_formatter', - github: 'pboling/rspec_junit_formatter', - branch: 'main', - ref: '9e6bcaaedd49477b62878ed568dc4ada5cc7cb5e' +gem "rspec_junit_formatter", + github: "pboling/rspec_junit_formatter", + branch: "main", + ref: "9e6bcaaedd49477b62878ed568dc4ada5cc7cb5e" diff --git a/gems/binary-merge/gemfiles/modular/runtime_heads.gemfile b/gems/binary-merge/gemfiles/modular/runtime_heads.gemfile index ebf17c529..02f134c7f 100644 --- a/gems/binary-merge/gemfiles/modular/runtime_heads.gemfile +++ b/gems/binary-merge/gemfiles/modular/runtime_heads.gemfile @@ -8,4 +8,4 @@ # Test against HEAD of runtime dependencies so we can proactively file bugs -eval_gemfile('x_std_libs/vHEAD.gemfile') +eval_gemfile("x_std_libs/vHEAD.gemfile") diff --git a/gems/binary-merge/gemfiles/modular/stringio/r2/v3.0.gemfile b/gems/binary-merge/gemfiles/modular/stringio/r2/v3.0.gemfile index 3616f4e3a..e85bb18ee 100644 --- a/gems/binary-merge/gemfiles/modular/stringio/r2/v3.0.gemfile +++ b/gems/binary-merge/gemfiles/modular/stringio/r2/v3.0.gemfile @@ -2,4 +2,4 @@ # NOT SEMVER # Version 3.0.7 dropped support for Ruby <= 2.7 # Version 3.0.0 dropped support for Ruby <= 2.4 -gem 'stringio', '>= 3.0' +gem "stringio", ">= 3.0" diff --git a/gems/binary-merge/gemfiles/modular/stringio/r3/v3.0.gemfile b/gems/binary-merge/gemfiles/modular/stringio/r3/v3.0.gemfile index 3616f4e3a..e85bb18ee 100644 --- a/gems/binary-merge/gemfiles/modular/stringio/r3/v3.0.gemfile +++ b/gems/binary-merge/gemfiles/modular/stringio/r3/v3.0.gemfile @@ -2,4 +2,4 @@ # NOT SEMVER # Version 3.0.7 dropped support for Ruby <= 2.7 # Version 3.0.0 dropped support for Ruby <= 2.4 -gem 'stringio', '>= 3.0' +gem "stringio", ">= 3.0" diff --git a/gems/binary-merge/gemfiles/modular/stringio/r4/v3.0.gemfile b/gems/binary-merge/gemfiles/modular/stringio/r4/v3.0.gemfile index 3616f4e3a..e85bb18ee 100644 --- a/gems/binary-merge/gemfiles/modular/stringio/r4/v3.0.gemfile +++ b/gems/binary-merge/gemfiles/modular/stringio/r4/v3.0.gemfile @@ -2,4 +2,4 @@ # NOT SEMVER # Version 3.0.7 dropped support for Ruby <= 2.7 # Version 3.0.0 dropped support for Ruby <= 2.4 -gem 'stringio', '>= 3.0' +gem "stringio", ">= 3.0" diff --git a/gems/binary-merge/gemfiles/modular/stringio/vHEAD.gemfile b/gems/binary-merge/gemfiles/modular/stringio/vHEAD.gemfile index 78f5f5d8a..5f2a74126 100644 --- a/gems/binary-merge/gemfiles/modular/stringio/vHEAD.gemfile +++ b/gems/binary-merge/gemfiles/modular/stringio/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 (dependency of omniauth) -gem 'stringio', github: 'ruby/stringio', branch: 'master' +gem "stringio", github: "ruby/stringio", branch: "master" diff --git a/gems/binary-merge/gemfiles/modular/style.gemfile b/gems/binary-merge/gemfiles/modular/style.gemfile index 4dbcc02c0..35de4dcd6 100644 --- a/gems/binary-merge/gemfiles/modular/style.gemfile +++ b/gems/binary-merge/gemfiles/modular/style.gemfile @@ -9,23 +9,23 @@ # Style tasks run on the latest Ruby; RuboCop-LTS selects the compatibility # rules for the configured Ruby floor independently from task dependency floors. -gem 'reek', '~> 6.5', '>= 6.5.0' +gem "reek", "~> 6.5", ">= 6.5.0" platform :mri do - gem 'appraisal2-rubocop', '~> 1.0', '>= 1.0.0', require: false - gem 'rubocop-gradual', '~> 0.4', '>= 0.4.0' - gem 'rubocop-minitest', '~> 0.40', '>= 0.40.0' - gem 'rubocop-on-rbs', '~> 2.0', '>= 2.0.0' # ruby >= 3.2.0 + gem "appraisal2-rubocop", "~> 1.0", ">= 1.0.0", require: false + gem "rubocop-gradual", "~> 0.4", ">= 0.4.0" + gem "rubocop-minitest", "~> 0.40", ">= 0.40.0" + gem "rubocop-on-rbs", "~> 2.0", ">= 2.0.0" # ruby >= 3.2.0 # gem "rubocop", "~> 1.73", ">= 1.73.2" # constrained by standard - gem 'rubocop-packaging', '~> 0.6', '>= 0.6.0' - gem 'standard', '~> 1.56', '>= 1.56.0' + gem "rubocop-packaging", "~> 0.6", ">= 0.6.0" + gem "standard", "~> 1.56", ">= 1.56.0" - if ENV.fetch('RUBOCOP_LTS_LOCAL', 'false').casecmp('false').zero? + if ENV.fetch("RUBOCOP_LTS_LOCAL", "false").casecmp("false").zero? declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) - gem 'rubocop-lts', '~> 24.2', '>= 24.2.1' unless declared_gems.include?('rubocop-lts') - gem 'rubocop-lts-rspec', '~> 1.0', '>= 1.0.5' unless declared_gems.include?('rubocop-lts-rspec') - gem 'rubocop-ruby3_2', '~> 3.0', '>= 3.0.6' unless declared_gems.include?('rubocop-ruby3_2') + gem "rubocop-lts", "~> 24.2", ">= 24.2.1" unless declared_gems.include?("rubocop-lts") + gem "rubocop-lts-rspec", "~> 1.0", ">= 1.0.5" unless declared_gems.include?("rubocop-lts-rspec") + gem "rubocop-ruby3_2", "~> 3.0", ">= 3.0.6" unless declared_gems.include?("rubocop-ruby3_2") else - eval_gemfile('style_local.gemfile') + eval_gemfile("style_local.gemfile") end end diff --git a/gems/binary-merge/gemfiles/modular/style_local.gemfile b/gems/binary-merge/gemfiles/modular/style_local.gemfile index 3f95e6d26..058d466e8 100644 --- a/gems/binary-merge/gemfiles/modular/style_local.gemfile +++ b/gems/binary-merge/gemfiles/modular/style_local.gemfile @@ -14,19 +14,21 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] -nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) +nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] +nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == "nomono" } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + if nomono_locked + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] + end end -Kernel.send(:gem, 'nomono', *nomono_activation_requirements) -require 'nomono/bundler' +Kernel.send(:gem, "nomono", *nomono_activation_requirements) +require "nomono/bundler" local_gems = %w[rubocop-lts rubocop-lts-rspec rubocop-ruby3_2 standard-rubocop-lts] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) @@ -36,11 +38,11 @@ local_gems_to_eval = local_gems - %w[binary-merge] - declared_gems platform :mri do eval_nomono_gems( gems: local_gems_to_eval, - prefix: 'RUBOCOP_LTS', - path_env: 'RUBOCOP_LTS_LOCAL', - vendored_gems_env: 'VENDORED_GEMS', - vendor_gem_dir_env: 'VENDOR_GEM_DIR', - debug_env: 'RUBOCOP_LTS_DEBUG', - root: %w[src rubocop-lts] + prefix: "RUBOCOP_LTS", + path_env: "RUBOCOP_LTS_LOCAL", + vendored_gems_env: "VENDORED_GEMS", + vendor_gem_dir_env: "VENDOR_GEM_DIR", + debug_env: "RUBOCOP_LTS_DEBUG", + root: ["src", "rubocop-lts"] ) end diff --git a/gems/binary-merge/gemfiles/modular/webrick/r4/v1.9.gemfile b/gems/binary-merge/gemfiles/modular/webrick/r4/v1.9.gemfile index b1329ba84..eaab4a473 100644 --- a/gems/binary-merge/gemfiles/modular/webrick/r4/v1.9.gemfile +++ b/gems/binary-merge/gemfiles/modular/webrick/r4/v1.9.gemfile @@ -1 +1 @@ -gem 'webrick', '~> 1.9' +gem "webrick", "~> 1.9" diff --git a/gems/binary-merge/gemfiles/modular/webrick/vHEAD.gemfile b/gems/binary-merge/gemfiles/modular/webrick/vHEAD.gemfile index c7e6f81a1..8a789b634 100644 --- a/gems/binary-merge/gemfiles/modular/webrick/vHEAD.gemfile +++ b/gems/binary-merge/gemfiles/modular/webrick/vHEAD.gemfile @@ -1 +1 @@ -gem 'webrick', '>= 1.9' +gem "webrick", ">= 1.9" diff --git a/gems/binary-merge/gemfiles/modular/x_std_libs.gemfile b/gems/binary-merge/gemfiles/modular/x_std_libs.gemfile index b1f43c097..77aad43f2 100644 --- a/gems/binary-merge/gemfiles/modular/x_std_libs.gemfile +++ b/gems/binary-merge/gemfiles/modular/x_std_libs.gemfile @@ -1,12 +1,12 @@ ### Std Lib Extracted Gems ruby_version = Gem::Version.new(RUBY_VERSION) -if ruby_version >= Gem::Version.new('4.0') - eval_gemfile 'x_std_libs/r4/libs.gemfile' -elsif ruby_version >= Gem::Version.new('3.2') - eval_gemfile 'x_std_libs/r3/libs.gemfile' -elsif ruby_version >= Gem::Version.new('3.1') - eval_gemfile 'x_std_libs/r3.1/libs.gemfile' +if ruby_version >= Gem::Version.new("4.0") + eval_gemfile "x_std_libs/r4/libs.gemfile" +elsif ruby_version >= Gem::Version.new("3.2") + eval_gemfile "x_std_libs/r3/libs.gemfile" +elsif ruby_version >= Gem::Version.new("3.1") + eval_gemfile "x_std_libs/r3.1/libs.gemfile" else - eval_gemfile 'x_std_libs/r2/libs.gemfile' + eval_gemfile "x_std_libs/r2/libs.gemfile" end diff --git a/gems/binary-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile b/gems/binary-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile index 16a5e3d70..441c4f03a 100644 --- a/gems/binary-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile +++ b/gems/binary-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile @@ -1,3 +1,3 @@ -eval_gemfile '../../erb/r2/v3.0.gemfile' -eval_gemfile '../../mutex_m/r2/v0.3.gemfile' -eval_gemfile '../../stringio/r2/v3.0.gemfile' +eval_gemfile "../../erb/r2/v3.0.gemfile" +eval_gemfile "../../mutex_m/r2/v0.3.gemfile" +eval_gemfile "../../stringio/r2/v3.0.gemfile" diff --git a/gems/binary-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile b/gems/binary-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile index 220ff95c1..c293a3ddd 100644 --- a/gems/binary-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile +++ b/gems/binary-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile @@ -1,3 +1,3 @@ -eval_gemfile '../../erb/r3/v5.0.gemfile' -eval_gemfile '../../mutex_m/r3/v0.3.gemfile' -eval_gemfile '../../stringio/r3/v3.0.gemfile' +eval_gemfile "../../erb/r3/v5.0.gemfile" +eval_gemfile "../../mutex_m/r3/v0.3.gemfile" +eval_gemfile "../../stringio/r3/v3.0.gemfile" diff --git a/gems/binary-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile b/gems/binary-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile index e2f6501eb..eb5574247 100644 --- a/gems/binary-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile +++ b/gems/binary-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile @@ -1,6 +1,6 @@ -eval_gemfile '../../erb/r4/v5.0.gemfile' -eval_gemfile '../../mutex_m/r4/v0.3.gemfile' -eval_gemfile '../../stringio/r4/v3.0.gemfile' -eval_gemfile '../../benchmark/r4/v0.5.gemfile' -eval_gemfile '../../cgi/r4/v0.5.gemfile' -eval_gemfile '../../webrick/r4/v1.9.gemfile' +eval_gemfile "../../erb/r4/v5.0.gemfile" +eval_gemfile "../../mutex_m/r4/v0.3.gemfile" +eval_gemfile "../../stringio/r4/v3.0.gemfile" +eval_gemfile "../../benchmark/r4/v0.5.gemfile" +eval_gemfile "../../cgi/r4/v0.5.gemfile" +eval_gemfile "../../webrick/r4/v1.9.gemfile" diff --git a/gems/binary-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile b/gems/binary-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile index ab75cccf1..d4d5b16c9 100644 --- a/gems/binary-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile +++ b/gems/binary-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile @@ -1,6 +1,6 @@ -eval_gemfile '../erb/vHEAD.gemfile' -eval_gemfile '../mutex_m/vHEAD.gemfile' -eval_gemfile '../stringio/vHEAD.gemfile' -eval_gemfile '../benchmark/vHEAD.gemfile' -eval_gemfile '../cgi/vHEAD.gemfile' -eval_gemfile '../webrick/vHEAD.gemfile' +eval_gemfile "../erb/vHEAD.gemfile" +eval_gemfile "../mutex_m/vHEAD.gemfile" +eval_gemfile "../stringio/vHEAD.gemfile" +eval_gemfile "../benchmark/vHEAD.gemfile" +eval_gemfile "../cgi/vHEAD.gemfile" +eval_gemfile "../webrick/vHEAD.gemfile" diff --git a/gems/binary-merge/spec/spec_helper.rb b/gems/binary-merge/spec/spec_helper.rb index 0b1239196..11e029d25 100644 --- a/gems/binary-merge/spec/spec_helper.rb +++ b/gems/binary-merge/spec/spec_helper.rb @@ -7,11 +7,16 @@ # NOTE: Gemfiles for non-coverage appraisals may not have kettle-soup-cover. # The rescue LoadError handles that scenario. begin - require 'kettle-soup-cover' - require 'simplecov' if Kettle::Soup::Cover::DO_COV # `.simplecov` is run here! -rescue LoadError => e + require "kettle-soup-cover" + if Kettle::Soup::Cover::DO_COV + # Requiring simplecov loads the project-local `.simplecov`. + require "simplecov" + require "kettle/soup/cover/config" + SimpleCov.start + end +rescue LoadError => error # check the error message and re-raise when unexpected - raise e unless e.message.include?('kettle') + raise error unless error.message.include?("kettle") end # External RSpec & related config diff --git a/gems/psych-merge/.kettle-drift.lock b/gems/psych-merge/.kettle-drift.lock index 67b3ec1cf..2321c2f6b 100644 --- a/gems/psych-merge/.kettle-drift.lock +++ b/gems/psych-merge/.kettle-drift.lock @@ -1,10 +1,74 @@ { + "(direct_sibling_local ||\nENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?)": [ + { + "file": "Gemfile", + "lines": [ + 81, + 121 + ] + } + ], + ".find { |spec| spec.name == 'nomono' }\nnomono_locked = nomono_locked_spec &&": [ + { + "file": "Gemfile", + "lines": [ + 92, + 132 + ] + } + ], + "ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?)\ndirect_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV')": [ + { + "file": "Gemfile", + "lines": [ + 82, + 122 + ] + } + ], + "Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version)\nnomono_activation_requirements = [\"= #{nomono_locked_spec.version}\"] if nomono_locked": [ + { + "file": "Gemfile", + "lines": [ + 94, + 134 + ] + } + ], + "Kernel.send(:gem, 'nomono', *nomono_activation_requirements)\nrequire 'nomono/bundler'": [ + { + "file": "Gemfile", + "lines": [ + 97, + 137 + ] + } + ], + "direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV')\ndirect_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil)": [ + { + "file": "Gemfile", + "lines": [ + 83, + 123 + ] + } + ], "eval_nomono_gems(\ngems: direct_sibling_gems,": [ { "file": "Gemfile", "lines": [ 61, - 101 + 101, + 141 + ] + } + ], + "gems: direct_sibling_gems,\nprefix: 'STRUCTUREDMERGE',": [ + { + "file": "Gemfile", + "lines": [ + 102, + 142 ] } ], @@ -13,7 +77,17 @@ "file": "Gemfile", "lines": [ 44, - 88 + 88, + 128 + ] + } + ], + "if direct_sibling_dev_was_set\nENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original": [ + { + "file": "Gemfile", + "lines": [ + 111, + 151 ] } ], @@ -22,7 +96,8 @@ "file": "Gemfile", "lines": [ 36, - 80 + 80, + 120 ] } ], @@ -31,7 +106,17 @@ "file": "Gemfile", "lines": [ 70, - 110 + 110, + 150 + ] + } + ], + "nomono_activation_requirements = nomono_requirements\nnomono_lockfile = File.expand_path('Gemfile.lock', __dir__)": [ + { + "file": "Gemfile", + "lines": [ + 86, + 126 ] } ], @@ -40,7 +125,8 @@ "file": "Gemfile", "lines": [ 49, - 93 + 93, + 133 ] } ], @@ -49,7 +135,53 @@ "file": "Gemfile", "lines": [ 45, - 89 + 89, + 129 + ] + } + ], + "nomono_lockfile = File.expand_path('Gemfile.lock', __dir__)\nif File.file?(nomono_lockfile)": [ + { + "file": "Gemfile", + "lines": [ + 87, + 127 + ] + } + ], + "path_env: 'STRUCTUREDMERGE_DEV',\nroot: %w[src my structuredmerge]": [ + { + "file": "Gemfile", + "lines": [ + 104, + 144 + ] + } + ], + "prefix: 'STRUCTUREDMERGE',\npath_env: 'STRUCTUREDMERGE_DEV',": [ + { + "file": "Gemfile", + "lines": [ + 103, + 143 + ] + } + ], + "require 'nomono/bundler'\nENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local": [ + { + "file": "Gemfile", + "lines": [ + 98, + 138 + ] + } + ], + "rescue LoadError\nwarn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.'": [ + { + "file": "Gemfile", + "lines": [ + 107, + 147 ] } ] diff --git a/gems/psych-merge/Gemfile b/gems/psych-merge/Gemfile index a987c8f84..d07ba11c0 100644 --- a/gems/psych-merge/Gemfile +++ b/gems/psych-merge/Gemfile @@ -6,7 +6,7 @@ # kettle-jem will then preserve content between those markers across template runs. # kettle-jem:unfreeze -source 'https://gem.coop' +source "https://gem.coop" git_source(:codeberg) { |repo_name| "https://codeberg.org/#{repo_name}" } git_source(:gitlab) { |repo_name| "https://gitlab.com/#{repo_name}" } @@ -19,8 +19,8 @@ git_source(:gitlab) { |repo_name| "https://gitlab.com/#{repo_name}" } gemspec # Local workspace dependency wiring for *_local.gemfile overrides -nomono_requirements = ['~> 1.0', '>= 1.0.8'] -gem 'nomono', *nomono_requirements, require: false # ruby >= 2.2 +nomono_requirements = ["~> 1.0", ">= 1.0.8"] +gem "nomono", *nomono_requirements, require: false # ruby >= 2.2 # Direct sibling dependencies (env-switched via STRUCTUREDMERGE_DEV) direct_sibling_gems = %w[ @@ -28,10 +28,54 @@ direct_sibling_gems = %w[ tree_haver yaml-merge ] -direct_sibling_dev = ENV.fetch('STRUCTUREDMERGE_DEV', '') +direct_sibling_dev = ENV.fetch("STRUCTUREDMERGE_DEV", "") direct_sibling_local = !direct_sibling_dev.empty? && !%w[false 0 no off].include?(direct_sibling_dev.downcase) -direct_sibling_templating = ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? +direct_sibling_templating = ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? + +if direct_sibling_gems.any? && + (direct_sibling_local || + ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero?) + direct_sibling_dev_was_set = ENV.key?("STRUCTUREDMERGE_DEV") + direct_sibling_dev_original = ENV.fetch("STRUCTUREDMERGE_DEV", nil) + begin + nomono_activation_requirements = nomono_requirements + nomono_lockfile = File.expand_path("Gemfile.lock", __dir__) + if File.file?(nomono_lockfile) + nomono_locked_spec = Bundler::LockfileParser + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == "nomono" } + nomono_locked = nomono_locked_spec && + Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) + if nomono_locked + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] + end + end + Kernel.send(:gem, "nomono", *nomono_activation_requirements) + require "nomono/bundler" + if direct_sibling_templating && !direct_sibling_local + ENV["STRUCTUREDMERGE_DEV"] = File.expand_path("..", __dir__) + end + + eval_nomono_gems( + gems: direct_sibling_gems, + prefix: "STRUCTUREDMERGE", + path_env: "STRUCTUREDMERGE_DEV", + root: ["src", "my", "structuredmerge"] + ) + rescue LoadError + warn "Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies." + ensure + if direct_sibling_templating && !direct_sibling_local + if direct_sibling_dev_was_set + ENV["STRUCTUREDMERGE_DEV"] = direct_sibling_dev_original + else + ENV.delete("STRUCTUREDMERGE_DEV") + end + end + end +end if direct_sibling_gems.any? && (direct_sibling_local || @@ -114,28 +158,28 @@ if direct_sibling_gems.any? && end # Use released TSLP with the Ruby ABI platform-gem fix. -gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' +gem "tree_sitter_language_pack", "~> 1.13", ">= 1.13.3" # Templating (env-switched: STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local paths) -eval_gemfile 'gemfiles/modular/templating.gemfile' if ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? +eval_gemfile "gemfiles/modular/templating.gemfile" if ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? # Debugging -eval_gemfile 'gemfiles/modular/debug.gemfile' +eval_gemfile "gemfiles/modular/debug.gemfile" # Code Coverage (env-switched: KETTLE_DEV_DEV=true for local paths) -eval_gemfile 'gemfiles/modular/coverage.gemfile' +eval_gemfile "gemfiles/modular/coverage.gemfile" # Linting -eval_gemfile 'gemfiles/modular/style.gemfile' +eval_gemfile "gemfiles/modular/style.gemfile" # Documentation -eval_gemfile 'gemfiles/modular/documentation.gemfile' +eval_gemfile "gemfiles/modular/documentation.gemfile" # Optional -eval_gemfile 'gemfiles/modular/optional.gemfile' +eval_gemfile "gemfiles/modular/optional.gemfile" ### Std Lib Extracted Gems -eval_gemfile 'gemfiles/modular/x_std_libs.gemfile' +eval_gemfile "gemfiles/modular/x_std_libs.gemfile" # See unlocked_deps appraisal for more details on irb inclusion -gem 'irb', '~> 1.17' # ruby >= 2.7 +gem "irb", "~> 1.17" # ruby >= 2.7 diff --git a/gems/psych-merge/Gemfile.lock b/gems/psych-merge/Gemfile.lock index 8cb427598..8d7f3aa2b 100644 --- a/gems/psych-merge/Gemfile.lock +++ b/gems/psych-merge/Gemfile.lock @@ -7,6 +7,265 @@ PATH version_gem (~> 1.1, >= 1.1.9) yaml-merge (= 7.1.0) +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly + specs: + ast-crispr-markdown-markly (7.1.0) + ast-crispr (= 7.1.0) + markly-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism + specs: + ast-crispr-ruby-prism (7.1.0) + ast-crispr (= 7.1.0) + prism-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr + specs: + ast-crispr (7.1.0) + ast-merge (= 7.1.0) + service_actor (~> 3.9) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git + specs: + ast-merge-git (7.1.0) + ast-merge (= 7.1.0) + json-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge + specs: + ast-merge (7.1.0) + benchmark + token-resolver (~> 2.0, >= 2.0.4) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template + specs: + ast-template (7.1.0) + ast-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge + specs: + bash-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge + specs: + binary-merge (7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge + specs: + citrus-toml-merge (7.1.0) + toml-merge (= 7.1.0) + toml-rb (~> 4.1) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge + specs: + commonmarker-merge (7.1.0) + commonmarker (~> 2.2) + markdown-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge + specs: + dotenv-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge + specs: + go-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge + specs: + json-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem + specs: + kettle-jem (7.1.0) + addressable (>= 2.8, < 3) + ast-crispr-markdown-markly (= 7.1.0) + ast-crispr-ruby-prism (= 7.1.0) + ast-merge (= 7.1.0) + bash-merge (= 7.1.0) + citrus-toml-merge (= 7.1.0) + commonmarker-merge (= 7.1.0) + dotenv-merge (= 7.1.0) + json-merge (= 7.1.0) + kettle-dev (~> 2.3, >= 2.3.5) + kettle-rb (~> 0.1, >= 0.1.4) + kramdown-merge (= 7.1.0) + markdown-merge (= 7.1.0) + markly-merge (= 7.1.0) + prism-merge (= 7.1.0) + psych-merge (= 7.1.0) + rbs (>= 3.10) + rbs-merge (= 7.1.0) + ruby-merge (= 7.1.0) + token-resolver (~> 2.0, >= 2.0.4) + toml-merge (= 7.1.0) + toml-rb (~> 4.2) + tree_haver (= 7.1.0) + yaml-merge (= 7.1.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge + specs: + kramdown-merge (7.1.0) + kramdown (~> 2.5) + markdown-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge + specs: + markdown-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge + specs: + markly-merge (7.1.0) + markdown-merge (= 7.1.0) + markly (~> 0.9) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge + specs: + parslet-toml-merge (7.1.0) + toml (~> 0.3) + toml-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge + specs: + plain-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge + specs: + prism-merge (7.1.0) + prism (~> 1.6) + ruby-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge + specs: + rbs-merge (7.1.0) + ast-merge (= 7.1.0) + rbs (>= 3.10) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge + specs: + ruby-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge + specs: + rust-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb + specs: + smorg-rb (7.1.0) + ast-merge (= 7.1.0) + ast-merge-git (= 7.1.0) + diff-lcs (~> 1.5) + go-merge (= 7.1.0) + json-merge (= 7.1.0) + kettle-jem (= 7.1.0) + markly-merge (= 7.1.0) + plain-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge + specs: + toml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver + specs: + tree_haver (7.1.0) + citrus (~> 3.0) + parslet (~> 2.0) + tree_sitter_language_pack (>= 1.13.2, < 2.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge + specs: + typescript-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge + specs: + yaml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge + specs: + zip-merge (7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + GEM remote: https://gem.coop/ specs: @@ -22,11 +281,6 @@ GEM rubocop (>= 1.0) version_gem (~> 1.1, >= 1.1.14) ast (2.4.3) - ast-merge (7.1.0) - benchmark - token-resolver (~> 2.0, >= 2.0.4) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) backports (3.25.3) benchmark (0.5.0) bigdecimal (4.1.2) @@ -36,6 +290,7 @@ GEM cgi (0.5.2) citrus (3.0.2) cmdparse (3.0.7) + commonmarker (2.9.0-x86_64-linux) concurrent-ruby (1.3.8) date (3.5.1) debug (1.11.1) @@ -98,6 +353,8 @@ GEM kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) + kettle-drift (1.0.6) + version_gem (~> 1.1, >= 1.1.14) kettle-rb (0.1.5) kettle-soup-cover (3.0.4) kettle-wash (~> 0.1, >= 0.1.0) @@ -126,6 +383,7 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) + markly (0.16.0) mutex_m (0.3.0) nokogiri (1.19.4-aarch64-linux-gnu) racc (~> 1.4) @@ -288,6 +546,8 @@ GEM ruby-progressbar (1.13.0) ruby_engine (2.0.3) ruby_version (1.0.3) + service_actor (3.9.4) + zeitwerk (>= 1.0) silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) @@ -303,7 +563,7 @@ GEM simplecov (>= 0.4.1) simplecov_lcov_formatter (0.9.0) simplecov (>= 0.18) - sorbet-runtime (0.6.13347) + sorbet-runtime (0.6.13351) standard (1.56.0) language_server-protocol (~> 3.17.0.2) lint_roller (~> 1.0) @@ -342,11 +602,11 @@ GEM token-resolver (2.0.5) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.14) - tree_haver (7.1.0) - citrus (~> 3.0) - parslet (~> 2.0) - tree_sitter_language_pack (>= 1.13.2, < 2.0) - version_gem (~> 1.1, >= 1.1.9) + toml (0.3.0) + parslet (>= 1.8.0, < 3.0.0) + toml-rb (4.2.0) + citrus (~> 3.0, > 3.0) + racc (~> 1.7) tree_sitter_language_pack (1.13.3-aarch64-linux) sorbet-runtime (~> 0.5) tree_sitter_language_pack (1.13.3-arm64-darwin) @@ -368,10 +628,6 @@ GEM kramdown (>= 2.4, < 3) kramdown-parser-gfm (~> 1.1) version_gem (~> 1.1, >= 1.1.13) - yaml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) yard (0.9.45) yard-fence (0.9.6) rdoc (>= 6.11, < 8) @@ -405,24 +661,46 @@ DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) appraisal2-rubocop (~> 1.0, >= 1.0.0) + ast-crispr! + ast-crispr-markdown-markly! + ast-crispr-ruby-prism! + ast-merge! + ast-merge-git! + ast-template! + bash-merge! benchmark (~> 0.5, >= 0.5.0) + binary-merge! bundler-audit (~> 0.9.3) cgi (~> 0.5) + citrus-toml-merge! + commonmarker-merge! debug (>= 1.1) + dotenv-merge! erb (~> 6.0, >= 6.0.6) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.0) + go-merge! irb (~> 1.17) + json-merge! kettle-dev (~> 2.0, >= 2.2.25) + kettle-drift (~> 1.0, >= 1.0.6) + kettle-jem! kettle-soup-cover (~> 3.0, >= 3.0.3) kettle-test (~> 2.0, >= 2.0.9) kramdown (~> 2.5, >= 2.5.2) + kramdown-merge! kramdown-parser-gfm (~> 1.1) + markdown-merge! + markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) + parslet-toml-merge! + plain-merge! + prism-merge! psych-merge! rake (~> 13.0) rbs (>= 3.0) + rbs-merge! rdoc (~> 6.11) reek (~> 6.5, >= 6.5.0) require_bench (~> 1.0, >= 1.0.4) @@ -433,19 +711,27 @@ DEPENDENCIES rubocop-on-rbs (~> 2.0, >= 2.0.0) rubocop-packaging (~> 0.6, >= 0.6.0) rubocop-ruby3_2 (~> 3.0, >= 3.0.6) + ruby-merge! ruby-progressbar (~> 1.13) + rust-merge! + smorg-rb! standard (~> 1.56, >= 1.56.0) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) + toml-merge! + tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) + typescript-merge! webrick (~> 1.9) yaml-converter (~> 0.2, >= 0.2.3) + yaml-merge! yard (~> 0.9, >= 0.9.45) yard-fence (~> 0.9, >= 0.9.6) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) yard-timekeeper (~> 0.2, >= 0.2.4) yard-yaml (~> 0.2, >= 0.2.3) + zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af @@ -453,20 +739,31 @@ CHECKSUMS appraisal2 (3.2.0) sha256=ccd0b767ac4060cd7af6d16747459b6990f49c39c7b4fb1f7d1146b1e97c492f appraisal2-rubocop (1.0.0) sha256=b71410fbb014befda5340605a605b7f6f3f012739baf0acc5b4351b592c3258d ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 + ast-crispr (7.1.0) + ast-crispr-markdown-markly (7.1.0) + ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) + ast-merge-git (7.1.0) + ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 + bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd + binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 + citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 + commonmarker (2.9.0-x86_64-linux) + commonmarker-merge (7.1.0) concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 + dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -479,20 +776,28 @@ CHECKSUMS gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f + go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 + json-merge (7.1.0) kettle-dev (2.3.8) sha256=9d716ff21c660a730cb4e8d41e2e2f0630a28167a354b6e2924e242102aef72c + kettle-drift (1.0.6) + kettle-jem (7.1.0) kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f kettle-soup-cover (3.0.4) kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa + kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 + markdown-merge (7.1.0) + markly (0.16.0) + markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-aarch64-linux-gnu) sha256=1269fb644a6de405057a53dd5c762b1209b43ca7424f839454d3dbc677c31a8f nokogiri (1.19.4-aarch64-linux-musl) sha256=35c65b9ce72b3bb03207bdbe7067915019dc18c1b9b59139684bd6690fdd01af @@ -506,9 +811,12 @@ CHECKSUMS parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 + parslet-toml-merge (7.1.0) + plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 + prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 @@ -516,6 +824,7 @@ CHECKSUMS rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 + rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb @@ -550,16 +859,20 @@ CHECKSUMS rubocop-rspec_rails (2.32.0) sha256=4a0d641c72f6ebb957534f539d9d0a62c47abd8ce0d0aeee1ef4701e892a9100 rubocop-ruby3_2 (3.0.7) sha256=f53dd6d286fb05186214fc6ec116783e7f837030918e8931c05de773e98f8466 rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 + ruby-merge (7.1.0) ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 + rust-merge (7.1.0) + service_actor (3.9.4) silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed - sorbet-runtime (0.6.13347) sha256=54e7221d9f4b63f58aec79f3043752a9ba7810347c6ae0d903531591cc2d5f01 + smorg-rb (7.1.0) + sorbet-runtime (0.6.13351) sha256=f8fee17c6e3edf835dc6823d26afb9a7c8969c6710d1fabe2fb43f4e0c15c64f standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b standard-performance (1.9.0) sha256=49483d31be448292951d80e5e67cdcb576c2502103c7b40aec6f1b6e9c88e3f2 @@ -573,12 +886,16 @@ CHECKSUMS timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.5) sha256=b852f924287ffb58a440856e862b056c8ad97e74b4b2526cee43e0771f40c25c + toml (0.3.0) + toml-merge (7.1.0) + toml-rb (4.2.0) tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-aarch64-linux) sha256=55ffc7c87868cb45658338363d9eba51b4a8b0259aa88e4de368d2bd1d52fea4 tree_sitter_language_pack (1.13.3-arm64-darwin) sha256=bc2498db605f212a1dbd2465ed3f65190d7da786f6ed5d30fcf958121aeb4a5c tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 + typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 @@ -592,6 +909,7 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 + zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH diff --git a/gems/psych-merge/Rakefile b/gems/psych-merge/Rakefile index 0796b339a..8914e2104 100644 --- a/gems/psych-merge/Rakefile +++ b/gems/psych-merge/Rakefile @@ -130,23 +130,23 @@ end ### DUPLICATE DRIFT TASKS begin - require 'kettle/drift' + require "kettle/drift" Kettle::Drift.install_tasks rescue LoadError - desc('(stub) kettle:drift:check is unavailable') - task('kettle:drift:check') do + desc("(stub) kettle:drift:check is unavailable") + task("kettle:drift:check") do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc('(stub) kettle:drift:update is unavailable') - task('kettle:drift:update') do + desc("(stub) kettle:drift:update is unavailable") + task("kettle:drift:update") do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc('(stub) kettle:drift:force_update is unavailable') - task('kettle:drift:force_update') do + desc("(stub) kettle:drift:force_update is unavailable") + task("kettle:drift:force_update") do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc('(stub) kettle:drift is unavailable') - task('kettle:drift' => 'kettle:drift:update') + desc("(stub) kettle:drift is unavailable") + task("kettle:drift" => "kettle:drift:update") end ### TEMPLATING TASKS diff --git a/gems/psych-merge/gemfiles/modular/templating.gemfile b/gems/psych-merge/gemfiles/modular/templating.gemfile index a672de184..47138ffbb 100644 --- a/gems/psych-merge/gemfiles/modular/templating.gemfile +++ b/gems/psych-merge/gemfiles/modular/templating.gemfile @@ -1,18 +1,18 @@ # frozen_string_literal: true -structuredmerge_remote = ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false').zero? -kettle_remote = ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? +structuredmerge_remote = ENV.fetch("STRUCTUREDMERGE_DEV", "false").casecmp("false").zero? +kettle_remote = ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false").zero? if structuredmerge_remote # Parser dependencies for released installs. - gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' + gem "tree_sitter_language_pack", "~> 1.13", ">= 1.13.3" # Merge recipes for released installs. - gem 'kettle-jem', '>= 7.0' + gem "kettle-jem", ">= 7.0" end if kettle_remote # Template/plugin checks for released installs. - gem 'kettle-drift', '~> 1.0', '>= 1.0.6', require: false + gem "kettle-drift", "~> 1.0", ">= 1.0.6", require: false end # Set STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local development with path-based dependencies. @@ -21,4 +21,4 @@ end # # Set KETTLE_DEV_DEV=/path/to/my for local development with Kettle plugin gems. # When false (default / CI), released Kettle plugin gems are used. -eval_gemfile 'templating_local.gemfile' unless structuredmerge_remote && kettle_remote +eval_gemfile "templating_local.gemfile" unless structuredmerge_remote && kettle_remote diff --git a/gems/psych-merge/gemfiles/modular/templating_local.gemfile b/gems/psych-merge/gemfiles/modular/templating_local.gemfile index f4f79268d..a816133a3 100644 --- a/gems/psych-merge/gemfiles/modular/templating_local.gemfile +++ b/gems/psych-merge/gemfiles/modular/templating_local.gemfile @@ -12,19 +12,21 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] -nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) +nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] +nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == "nomono" } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + if nomono_locked + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] + end end -Kernel.send(:gem, 'nomono', *nomono_activation_requirements) -require 'nomono/bundler' +Kernel.send(:gem, "nomono", *nomono_activation_requirements) +require "nomono/bundler" structuredmerge_local_gems = %w[ tree_haver @@ -67,25 +69,25 @@ structuredmerge_local_gems_to_eval = structuredmerge_local_gems - %w[psych-merge kettle_dev_local_gems_to_eval = kettle_dev_local_gems - %w[psych-merge] - declared_gems platform :mri do - if ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false') != 0 + if ENV.fetch("STRUCTUREDMERGE_DEV", "false").casecmp("false") != 0 eval_nomono_gems( gems: structuredmerge_local_gems_to_eval, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - vendored_gems_env: 'VENDORED_GEMS', - vendor_gem_dir_env: 'VENDOR_GEM_DIR', - debug_env: 'STRUCTUREDMERGE_DEBUG' + prefix: "STRUCTUREDMERGE", + path_env: "STRUCTUREDMERGE_DEV", + vendored_gems_env: "VENDORED_GEMS", + vendor_gem_dir_env: "VENDOR_GEM_DIR", + debug_env: "STRUCTUREDMERGE_DEBUG" ) end - if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false') != 0 + if ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false") != 0 eval_nomono_gems( gems: kettle_dev_local_gems_to_eval, - prefix: 'KETTLE_DEV', - path_env: 'KETTLE_DEV_DEV', - vendored_gems_env: 'VENDORED_GEMS', - vendor_gem_dir_env: 'VENDOR_GEM_DIR', - debug_env: 'KETTLE_DEV_DEBUG' + prefix: "KETTLE_DEV", + path_env: "KETTLE_DEV_DEV", + vendored_gems_env: "VENDORED_GEMS", + vendor_gem_dir_env: "VENDOR_GEM_DIR", + debug_env: "KETTLE_DEV_DEBUG" ) end end diff --git a/gems/psych-merge/lib/psych/merge/version.rb b/gems/psych-merge/lib/psych/merge/version.rb index aa65219d4..518f12da4 100644 --- a/gems/psych-merge/lib/psych/merge/version.rb +++ b/gems/psych-merge/lib/psych/merge/version.rb @@ -3,7 +3,7 @@ module Psych module Merge module Version - VERSION = '7.1.0' + VERSION = "7.1.0" end VERSION = Version::VERSION # Traditional Constant Location end diff --git a/gems/typescript-merge/Gemfile.lock b/gems/typescript-merge/Gemfile.lock index 97dafe2b9..7329c8f5e 100644 --- a/gems/typescript-merge/Gemfile.lock +++ b/gems/typescript-merge/Gemfile.lock @@ -7,7 +7,39 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/ast-merge + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly + specs: + ast-crispr-markdown-markly (7.1.0) + ast-crispr (= 7.1.0) + markly-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism + specs: + ast-crispr-ruby-prism (7.1.0) + ast-crispr (= 7.1.0) + prism-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr + specs: + ast-crispr (7.1.0) + ast-merge (= 7.1.0) + service_actor (~> 3.9) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git + specs: + ast-merge-git (7.1.0) + ast-merge (= 7.1.0) + json-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge specs: ast-merge (7.1.0) benchmark @@ -16,7 +48,202 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/tree_haver + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template + specs: + ast-template (7.1.0) + ast-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge + specs: + bash-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge + specs: + binary-merge (7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge + specs: + citrus-toml-merge (7.1.0) + toml-merge (= 7.1.0) + toml-rb (~> 4.1) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge + specs: + commonmarker-merge (7.1.0) + commonmarker (~> 2.2) + markdown-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge + specs: + dotenv-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge + specs: + go-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge + specs: + json-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem + specs: + kettle-jem (7.1.0) + addressable (>= 2.8, < 3) + ast-crispr-markdown-markly (= 7.1.0) + ast-crispr-ruby-prism (= 7.1.0) + ast-merge (= 7.1.0) + bash-merge (= 7.1.0) + citrus-toml-merge (= 7.1.0) + commonmarker-merge (= 7.1.0) + dotenv-merge (= 7.1.0) + json-merge (= 7.1.0) + kettle-dev (~> 2.3, >= 2.3.5) + kettle-rb (~> 0.1, >= 0.1.4) + kramdown-merge (= 7.1.0) + markdown-merge (= 7.1.0) + markly-merge (= 7.1.0) + prism-merge (= 7.1.0) + psych-merge (= 7.1.0) + rbs (>= 3.10) + rbs-merge (= 7.1.0) + ruby-merge (= 7.1.0) + token-resolver (~> 2.0, >= 2.0.4) + toml-merge (= 7.1.0) + toml-rb (~> 4.2) + tree_haver (= 7.1.0) + yaml-merge (= 7.1.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge + specs: + kramdown-merge (7.1.0) + kramdown (~> 2.5) + markdown-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge + specs: + markdown-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge + specs: + markly-merge (7.1.0) + markdown-merge (= 7.1.0) + markly (~> 0.9) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge + specs: + parslet-toml-merge (7.1.0) + toml (~> 0.3) + toml-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge + specs: + plain-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge + specs: + prism-merge (7.1.0) + prism (~> 1.6) + ruby-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge + specs: + psych-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + yaml-merge (= 7.1.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge + specs: + rbs-merge (7.1.0) + ast-merge (= 7.1.0) + rbs (>= 3.10) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge + specs: + ruby-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge + specs: + rust-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb + specs: + smorg-rb (7.1.0) + ast-merge (= 7.1.0) + ast-merge-git (= 7.1.0) + diff-lcs (~> 1.5) + go-merge (= 7.1.0) + json-merge (= 7.1.0) + kettle-jem (= 7.1.0) + markly-merge (= 7.1.0) + plain-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge + specs: + toml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver specs: tree_haver (7.1.0) citrus (~> 3.0) @@ -24,6 +251,21 @@ PATH tree_sitter_language_pack (>= 1.13.2, < 2.0) version_gem (~> 1.1, >= 1.1.9) +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge + specs: + yaml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge + specs: + zip-merge (7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + GEM remote: https://gem.coop/ specs: @@ -48,6 +290,11 @@ GEM cgi (0.5.2) citrus (3.0.2) cmdparse (3.0.7) + commonmarker (2.9.0-aarch64-linux) + commonmarker (2.9.0-aarch64-linux-musl) + commonmarker (2.9.0-arm64-darwin) + commonmarker (2.9.0-x86_64-linux) + commonmarker (2.9.0-x86_64-linux-musl) concurrent-ruby (1.3.8) date (3.5.1) debug (1.11.1) @@ -110,6 +357,8 @@ GEM kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) + kettle-drift (1.0.6) + version_gem (~> 1.1, >= 1.1.14) kettle-rb (0.1.5) kettle-soup-cover (3.0.4) kettle-wash (~> 0.1, >= 0.1.0) @@ -138,6 +387,7 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) + markly (0.16.0) mutex_m (0.3.0) nokogiri (1.19.4-aarch64-linux-gnu) racc (~> 1.4) @@ -300,6 +550,8 @@ GEM ruby-progressbar (1.13.0) ruby_engine (2.0.3) ruby_version (1.0.3) + service_actor (3.9.4) + zeitwerk (>= 1.0) silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) @@ -354,6 +606,11 @@ GEM token-resolver (2.0.5) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.14) + toml (0.3.0) + parslet (>= 1.8.0, < 3.0.0) + toml-rb (4.2.0) + citrus (~> 3.0, > 3.0) + racc (~> 1.7) tree_sitter_language_pack (1.13.3-aarch64-linux) sorbet-runtime (~> 0.5) tree_sitter_language_pack (1.13.3-arm64-darwin) @@ -408,24 +665,46 @@ DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) appraisal2-rubocop (~> 1.0, >= 1.0.0) + ast-crispr! + ast-crispr-markdown-markly! + ast-crispr-ruby-prism! ast-merge! + ast-merge-git! + ast-template! + bash-merge! benchmark (~> 0.5, >= 0.5.0) + binary-merge! bundler-audit (~> 0.9.3) cgi (~> 0.5) + citrus-toml-merge! + commonmarker-merge! debug (>= 1.1) + dotenv-merge! erb (~> 6.0, >= 6.0.6) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.0) + go-merge! irb (~> 1.17) + json-merge! kettle-dev (~> 2.0, >= 2.2.25) + kettle-drift (~> 1.0, >= 1.0.6) + kettle-jem! kettle-soup-cover (~> 3.0, >= 3.0.3) kettle-test (~> 2.0, >= 2.0.9) kramdown (~> 2.5, >= 2.5.2) + kramdown-merge! kramdown-parser-gfm (~> 1.1) + markdown-merge! + markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) + parslet-toml-merge! + plain-merge! + prism-merge! + psych-merge! rake (~> 13.0) rbs (>= 3.0) + rbs-merge! rdoc (~> 6.11) reek (~> 6.5, >= 6.5.0) require_bench (~> 1.0, >= 1.0.4) @@ -436,21 +715,27 @@ DEPENDENCIES rubocop-on-rbs (~> 2.0, >= 2.0.0) rubocop-packaging (~> 0.6, >= 0.6.0) rubocop-ruby3_2 (~> 3.0, >= 3.0.6) + ruby-merge! ruby-progressbar (~> 1.13) + rust-merge! + smorg-rb! standard (~> 1.56, >= 1.56.0) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) + toml-merge! tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) typescript-merge! webrick (~> 1.9) yaml-converter (~> 0.2, >= 0.2.3) + yaml-merge! yard (~> 0.9, >= 0.9.45) yard-fence (~> 0.9, >= 0.9.6) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) yard-timekeeper (~> 0.2, >= 0.2.4) yard-yaml (~> 0.2, >= 0.2.3) + zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af @@ -458,20 +743,35 @@ CHECKSUMS appraisal2 (3.2.0) sha256=ccd0b767ac4060cd7af6d16747459b6990f49c39c7b4fb1f7d1146b1e97c492f appraisal2-rubocop (1.0.0) sha256=b71410fbb014befda5340605a605b7f6f3f012739baf0acc5b4351b592c3258d ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 + ast-crispr (7.1.0) + ast-crispr-markdown-markly (7.1.0) + ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) + ast-merge-git (7.1.0) + ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 + bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd + binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 + citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 + commonmarker (2.9.0-aarch64-linux) sha256=e2b4aadb9a2cfa4e206582641ce3a49465549ac1ed4c289fdd63b78d8f24579c + commonmarker (2.9.0-aarch64-linux-musl) sha256=1cf4d2821f2a7e64945f1ed7c4eeced586fdb27ea7fe7337788802cf8f57cfca + commonmarker (2.9.0-arm64-darwin) sha256=1748dbfa4f5813b0d2a14bb4bbfa65a4ec293aa1c825016d60029ee0e132b046 + commonmarker (2.9.0-x86_64-linux) sha256=8cfe92970eef585a19ddf6613224b91cab64d6029834661bda801f877c9c7f43 + commonmarker (2.9.0-x86_64-linux-musl) sha256=293921398b839f79ceaf55010e061357e34f053822c3b003cd0be6686176335e + commonmarker-merge (7.1.0) concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 + dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -484,20 +784,28 @@ CHECKSUMS gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f + go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 + json-merge (7.1.0) kettle-dev (2.3.9) + kettle-drift (1.0.6) sha256=46eda08fa4411d1f3c6682a95eef1c9df4e94611b3949f49d4c7b43c0ed356a3 + kettle-jem (7.1.0) kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f kettle-soup-cover (3.0.4) kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa + kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 + markdown-merge (7.1.0) + markly (0.16.0) sha256=6f70d79e385b1efc9e171f74c81628826259039fe6c778e03c3924c71dac5511 + markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-aarch64-linux-gnu) sha256=1269fb644a6de405057a53dd5c762b1209b43ca7424f839454d3dbc677c31a8f nokogiri (1.19.4-aarch64-linux-musl) sha256=35c65b9ce72b3bb03207bdbe7067915019dc18c1b9b59139684bd6690fdd01af @@ -511,15 +819,20 @@ CHECKSUMS parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 + parslet-toml-merge (7.1.0) + plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 + prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 + psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 + rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb @@ -554,15 +867,19 @@ CHECKSUMS rubocop-rspec_rails (2.32.0) sha256=4a0d641c72f6ebb957534f539d9d0a62c47abd8ce0d0aeee1ef4701e892a9100 rubocop-ruby3_2 (3.0.7) sha256=f53dd6d286fb05186214fc6ec116783e7f837030918e8931c05de773e98f8466 rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 + ruby-merge (7.1.0) ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 + rust-merge (7.1.0) + service_actor (3.9.4) sha256=e63b523630b9a7e62959b2a90113b08d2565b5de9c148557b281ef847c9539ce silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed + smorg-rb (7.1.0) sorbet-runtime (0.6.13351) sha256=f8fee17c6e3edf835dc6823d26afb9a7c8969c6710d1fabe2fb43f4e0c15c64f standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b @@ -577,6 +894,9 @@ CHECKSUMS timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.5) sha256=b852f924287ffb58a440856e862b056c8ad97e74b4b2526cee43e0771f40c25c + toml (0.3.0) sha256=0a91d0f76a9036e84e44f95693b12f58d358c1df3ac8e3b5271f2056ecc6e4b9 + toml-merge (7.1.0) + toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-aarch64-linux) sha256=55ffc7c87868cb45658338363d9eba51b4a8b0259aa88e4de368d2bd1d52fea4 tree_sitter_language_pack (1.13.3-arm64-darwin) sha256=bc2498db605f212a1dbd2465ed3f65190d7da786f6ed5d30fcf958121aeb4a5c @@ -589,6 +909,7 @@ CHECKSUMS version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 webrick (1.9.2) sha256=beb4a15fc474defed24a3bda4ffd88a490d517c9e4e6118c3edce59e45864131 yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 + yaml-merge (7.1.0) yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd @@ -596,6 +917,7 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 + zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH diff --git a/gems/zip-merge/.kettle-drift.lock b/gems/zip-merge/.kettle-drift.lock index bf85fa76f..9a486b4b3 100644 --- a/gems/zip-merge/.kettle-drift.lock +++ b/gems/zip-merge/.kettle-drift.lock @@ -1,10 +1,74 @@ { + "(direct_sibling_local ||\nENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?)": [ + { + "file": "Gemfile", + "lines": [ + 79, + 119 + ] + } + ], + ".find { |spec| spec.name == 'nomono' }\nnomono_locked = nomono_locked_spec &&": [ + { + "file": "Gemfile", + "lines": [ + 90, + 130 + ] + } + ], + "ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?)\ndirect_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV')": [ + { + "file": "Gemfile", + "lines": [ + 80, + 120 + ] + } + ], + "Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version)\nnomono_activation_requirements = [\"= #{nomono_locked_spec.version}\"] if nomono_locked": [ + { + "file": "Gemfile", + "lines": [ + 92, + 132 + ] + } + ], + "Kernel.send(:gem, 'nomono', *nomono_activation_requirements)\nrequire 'nomono/bundler'": [ + { + "file": "Gemfile", + "lines": [ + 95, + 135 + ] + } + ], + "direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV')\ndirect_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil)": [ + { + "file": "Gemfile", + "lines": [ + 81, + 121 + ] + } + ], "eval_nomono_gems(\ngems: direct_sibling_gems,": [ { "file": "Gemfile", "lines": [ 59, - 99 + 99, + 139 + ] + } + ], + "gems: direct_sibling_gems,\nprefix: 'STRUCTUREDMERGE',": [ + { + "file": "Gemfile", + "lines": [ + 100, + 140 ] } ], @@ -13,7 +77,17 @@ "file": "Gemfile", "lines": [ 42, - 86 + 86, + 126 + ] + } + ], + "if direct_sibling_dev_was_set\nENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original": [ + { + "file": "Gemfile", + "lines": [ + 109, + 149 ] } ], @@ -22,7 +96,8 @@ "file": "Gemfile", "lines": [ 34, - 78 + 78, + 118 ] } ], @@ -31,7 +106,17 @@ "file": "Gemfile", "lines": [ 68, - 108 + 108, + 148 + ] + } + ], + "nomono_activation_requirements = nomono_requirements\nnomono_lockfile = File.expand_path('Gemfile.lock', __dir__)": [ + { + "file": "Gemfile", + "lines": [ + 84, + 124 ] } ], @@ -40,7 +125,8 @@ "file": "Gemfile", "lines": [ 47, - 91 + 91, + 131 ] } ], @@ -49,7 +135,53 @@ "file": "Gemfile", "lines": [ 43, - 87 + 87, + 127 + ] + } + ], + "nomono_lockfile = File.expand_path('Gemfile.lock', __dir__)\nif File.file?(nomono_lockfile)": [ + { + "file": "Gemfile", + "lines": [ + 85, + 125 + ] + } + ], + "path_env: 'STRUCTUREDMERGE_DEV',\nroot: %w[src my structuredmerge]": [ + { + "file": "Gemfile", + "lines": [ + 102, + 142 + ] + } + ], + "prefix: 'STRUCTUREDMERGE',\npath_env: 'STRUCTUREDMERGE_DEV',": [ + { + "file": "Gemfile", + "lines": [ + 101, + 141 + ] + } + ], + "require 'nomono/bundler'\nENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local": [ + { + "file": "Gemfile", + "lines": [ + 96, + 136 + ] + } + ], + "rescue LoadError\nwarn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.'": [ + { + "file": "Gemfile", + "lines": [ + 105, + 145 ] } ] diff --git a/gems/zip-merge/.simplecov b/gems/zip-merge/.simplecov index df103fd12..87cd6e559 100644 --- a/gems/zip-merge/.simplecov +++ b/gems/zip-merge/.simplecov @@ -4,15 +4,11 @@ # zip-merge will then preserve content between those markers across template runs. # kettle-jem:unfreeze -require 'kettle/soup/cover/config' - # Minimum coverage thresholds are set by kettle-soup-cover. # They are controlled by ENV variables loaded by `mise` from `mise.toml` # (with optional machine-local overrides in `.env.local`). # If the values for minimum coverage need to change, they should be changed both there, # and in 2 places in .github/workflows/coverage.yml. -SimpleCov.start do - track_files 'lib/**/*.rb' - track_files 'lib/**/*.rake' - track_files 'exe/*.rb' +SimpleCov.configure do + cover "lib/**/*.rb", "lib/**/*.rake", "exe/*.rb" end diff --git a/gems/zip-merge/Gemfile b/gems/zip-merge/Gemfile index fc51a6835..3c23ba3d5 100644 --- a/gems/zip-merge/Gemfile +++ b/gems/zip-merge/Gemfile @@ -6,7 +6,7 @@ # kettle-jem will then preserve content between those markers across template runs. # kettle-jem:unfreeze -source 'https://gem.coop' +source "https://gem.coop" git_source(:codeberg) { |repo_name| "https://codeberg.org/#{repo_name}" } git_source(:gitlab) { |repo_name| "https://gitlab.com/#{repo_name}" } @@ -19,17 +19,61 @@ git_source(:gitlab) { |repo_name| "https://gitlab.com/#{repo_name}" } gemspec # Local workspace dependency wiring for *_local.gemfile overrides -nomono_requirements = ['~> 1.0', '>= 1.0.8'] -gem 'nomono', *nomono_requirements, require: false # ruby >= 2.2 +nomono_requirements = ["~> 1.0", ">= 1.0.8"] +gem "nomono", *nomono_requirements, require: false # ruby >= 2.2 # Direct sibling dependencies (env-switched via STRUCTUREDMERGE_DEV) direct_sibling_gems = %w[ tree_haver ] -direct_sibling_dev = ENV.fetch('STRUCTUREDMERGE_DEV', '') +direct_sibling_dev = ENV.fetch("STRUCTUREDMERGE_DEV", "") direct_sibling_local = !direct_sibling_dev.empty? && !%w[false 0 no off].include?(direct_sibling_dev.downcase) -direct_sibling_templating = ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? +direct_sibling_templating = ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? + +if direct_sibling_gems.any? && + (direct_sibling_local || + ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero?) + direct_sibling_dev_was_set = ENV.key?("STRUCTUREDMERGE_DEV") + direct_sibling_dev_original = ENV.fetch("STRUCTUREDMERGE_DEV", nil) + begin + nomono_activation_requirements = nomono_requirements + nomono_lockfile = File.expand_path("Gemfile.lock", __dir__) + if File.file?(nomono_lockfile) + nomono_locked_spec = Bundler::LockfileParser + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == "nomono" } + nomono_locked = nomono_locked_spec && + Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) + if nomono_locked + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] + end + end + Kernel.send(:gem, "nomono", *nomono_activation_requirements) + require "nomono/bundler" + if direct_sibling_templating && !direct_sibling_local + ENV["STRUCTUREDMERGE_DEV"] = File.expand_path("..", __dir__) + end + + eval_nomono_gems( + gems: direct_sibling_gems, + prefix: "STRUCTUREDMERGE", + path_env: "STRUCTUREDMERGE_DEV", + root: ["src", "my", "structuredmerge"] + ) + rescue LoadError + warn "Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies." + ensure + if direct_sibling_templating && !direct_sibling_local + if direct_sibling_dev_was_set + ENV["STRUCTUREDMERGE_DEV"] = direct_sibling_dev_original + else + ENV.delete("STRUCTUREDMERGE_DEV") + end + end + end +end if direct_sibling_gems.any? && (direct_sibling_local || @@ -112,28 +156,28 @@ if direct_sibling_gems.any? && end # Use released TSLP with the Ruby ABI platform-gem fix. -gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' +gem "tree_sitter_language_pack", "~> 1.13", ">= 1.13.3" # Templating (env-switched: STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local paths) -eval_gemfile 'gemfiles/modular/templating.gemfile' if ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? +eval_gemfile "gemfiles/modular/templating.gemfile" if ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? # Debugging -eval_gemfile 'gemfiles/modular/debug.gemfile' +eval_gemfile "gemfiles/modular/debug.gemfile" # Code Coverage (env-switched: KETTLE_DEV_DEV=true for local paths) -eval_gemfile 'gemfiles/modular/coverage.gemfile' +eval_gemfile "gemfiles/modular/coverage.gemfile" # Linting -eval_gemfile 'gemfiles/modular/style.gemfile' +eval_gemfile "gemfiles/modular/style.gemfile" # Documentation -eval_gemfile 'gemfiles/modular/documentation.gemfile' +eval_gemfile "gemfiles/modular/documentation.gemfile" # Optional -eval_gemfile 'gemfiles/modular/optional.gemfile' +eval_gemfile "gemfiles/modular/optional.gemfile" ### Std Lib Extracted Gems -eval_gemfile 'gemfiles/modular/x_std_libs.gemfile' +eval_gemfile "gemfiles/modular/x_std_libs.gemfile" # See unlocked_deps appraisal for more details on irb inclusion -gem 'irb', '~> 1.17' # ruby >= 2.7 +gem "irb", "~> 1.17" # ruby >= 2.7 diff --git a/gems/zip-merge/Gemfile.lock b/gems/zip-merge/Gemfile.lock index 83659e77f..50a19270d 100644 --- a/gems/zip-merge/Gemfile.lock +++ b/gems/zip-merge/Gemfile.lock @@ -290,11 +290,7 @@ GEM cgi (0.5.2) citrus (3.0.2) cmdparse (3.0.7) - commonmarker (2.9.0-aarch64-linux) - commonmarker (2.9.0-aarch64-linux-musl) - commonmarker (2.9.0-arm64-darwin) commonmarker (2.9.0-x86_64-linux) - commonmarker (2.9.0-x86_64-linux-musl) concurrent-ruby (1.3.8) date (3.5.1) debug (1.11.1) @@ -567,7 +563,7 @@ GEM simplecov (>= 0.4.1) simplecov_lcov_formatter (0.9.0) simplecov (>= 0.18) - sorbet-runtime (0.6.13347) + sorbet-runtime (0.6.13351) standard (1.56.0) language_server-protocol (~> 3.17.0.2) lint_roller (~> 1.0) @@ -759,11 +755,7 @@ CHECKSUMS citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 - commonmarker (2.9.0-aarch64-linux) sha256=e2b4aadb9a2cfa4e206582641ce3a49465549ac1ed4c289fdd63b78d8f24579c - commonmarker (2.9.0-aarch64-linux-musl) sha256=1cf4d2821f2a7e64945f1ed7c4eeced586fdb27ea7fe7337788802cf8f57cfca - commonmarker (2.9.0-arm64-darwin) sha256=1748dbfa4f5813b0d2a14bb4bbfa65a4ec293aa1c825016d60029ee0e132b046 - commonmarker (2.9.0-x86_64-linux) sha256=8cfe92970eef585a19ddf6613224b91cab64d6029834661bda801f877c9c7f43 - commonmarker (2.9.0-x86_64-linux-musl) sha256=293921398b839f79ceaf55010e061357e34f053822c3b003cd0be6686176335e + commonmarker (2.9.0-x86_64-linux) commonmarker-merge (7.1.0) concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 @@ -791,7 +783,7 @@ CHECKSUMS json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 json-merge (7.1.0) kettle-dev (2.3.8) sha256=9d716ff21c660a730cb4e8d41e2e2f0630a28167a354b6e2924e242102aef72c - kettle-drift (1.0.6) sha256=46eda08fa4411d1f3c6682a95eef1c9df4e94611b3949f49d4c7b43c0ed356a3 + kettle-drift (1.0.6) kettle-jem (7.1.0) kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f kettle-soup-cover (3.0.4) @@ -804,7 +796,7 @@ CHECKSUMS lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 markdown-merge (7.1.0) - markly (0.16.0) sha256=6f70d79e385b1efc9e171f74c81628826259039fe6c778e03c3924c71dac5511 + markly (0.16.0) markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-aarch64-linux-gnu) sha256=1269fb644a6de405057a53dd5c762b1209b43ca7424f839454d3dbc677c31a8f @@ -872,7 +864,7 @@ CHECKSUMS ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 rust-merge (7.1.0) - service_actor (3.9.4) sha256=e63b523630b9a7e62959b2a90113b08d2565b5de9c148557b281ef847c9539ce + service_actor (3.9.4) silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea @@ -880,7 +872,7 @@ CHECKSUMS simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed smorg-rb (7.1.0) - sorbet-runtime (0.6.13347) sha256=54e7221d9f4b63f58aec79f3043752a9ba7810347c6ae0d903531591cc2d5f01 + sorbet-runtime (0.6.13351) sha256=f8fee17c6e3edf835dc6823d26afb9a7c8969c6710d1fabe2fb43f4e0c15c64f standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b standard-performance (1.9.0) sha256=49483d31be448292951d80e5e67cdcb576c2502103c7b40aec6f1b6e9c88e3f2 @@ -893,10 +885,10 @@ CHECKSUMS thor (1.5.0) sha256=e3a9e55fe857e44859ce104a84675ab6e8cd59c650a49106a05f55f136425e73 timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 - token-resolver (2.0.5) sha256=b852f924287ffb58a440856e862b056c8ad97e74b4b2526cee43e0771f40c25c - toml (0.3.0) sha256=0a91d0f76a9036e84e44f95693b12f58d358c1df3ac8e3b5271f2056ecc6e4b9 + token-resolver (2.0.5) + toml (0.3.0) toml-merge (7.1.0) - toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 + toml-rb (4.2.0) tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-aarch64-linux) sha256=55ffc7c87868cb45658338363d9eba51b4a8b0259aa88e4de368d2bd1d52fea4 tree_sitter_language_pack (1.13.3-arm64-darwin) sha256=bc2498db605f212a1dbd2465ed3f65190d7da786f6ed5d30fcf958121aeb4a5c diff --git a/gems/zip-merge/Rakefile b/gems/zip-merge/Rakefile index 752226eed..c56992019 100644 --- a/gems/zip-merge/Rakefile +++ b/gems/zip-merge/Rakefile @@ -130,23 +130,23 @@ end ### DUPLICATE DRIFT TASKS begin - require 'kettle/drift' + require "kettle/drift" Kettle::Drift.install_tasks rescue LoadError - desc('(stub) kettle:drift:check is unavailable') - task('kettle:drift:check') do + desc("(stub) kettle:drift:check is unavailable") + task("kettle:drift:check") do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc('(stub) kettle:drift:update is unavailable') - task('kettle:drift:update') do + desc("(stub) kettle:drift:update is unavailable") + task("kettle:drift:update") do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc('(stub) kettle:drift:force_update is unavailable') - task('kettle:drift:force_update') do + desc("(stub) kettle:drift:force_update is unavailable") + task("kettle:drift:force_update") do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc('(stub) kettle:drift is unavailable') - task('kettle:drift' => 'kettle:drift:update') + desc("(stub) kettle:drift is unavailable") + task("kettle:drift" => "kettle:drift:update") end ### TEMPLATING TASKS diff --git a/gems/zip-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile b/gems/zip-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile index b8392fab0..dec650815 100644 --- a/gems/zip-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile +++ b/gems/zip-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.1 -gem 'benchmark', '~> 0.5', '>= 0.5.0' # Removed from Std Lib in Ruby 4.0 +gem "benchmark", "~> 0.5", ">= 0.5.0" # Removed from Std Lib in Ruby 4.0 diff --git a/gems/zip-merge/gemfiles/modular/benchmark/vHEAD.gemfile b/gems/zip-merge/gemfiles/modular/benchmark/vHEAD.gemfile index af214aafa..e1eb20c5e 100644 --- a/gems/zip-merge/gemfiles/modular/benchmark/vHEAD.gemfile +++ b/gems/zip-merge/gemfiles/modular/benchmark/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.1 -gem 'benchmark', github: 'ruby/benchmark', branch: 'master' +gem "benchmark", github: "ruby/benchmark", branch: "master" diff --git a/gems/zip-merge/gemfiles/modular/cgi/r4/v0.5.gemfile b/gems/zip-merge/gemfiles/modular/cgi/r4/v0.5.gemfile index 17ad97260..19ed967c3 100644 --- a/gems/zip-merge/gemfiles/modular/cgi/r4/v0.5.gemfile +++ b/gems/zip-merge/gemfiles/modular/cgi/r4/v0.5.gemfile @@ -1 +1 @@ -gem 'cgi', '~> 0.5' +gem "cgi", "~> 0.5" diff --git a/gems/zip-merge/gemfiles/modular/cgi/vHEAD.gemfile b/gems/zip-merge/gemfiles/modular/cgi/vHEAD.gemfile index 650fbf033..ef8b816ce 100644 --- a/gems/zip-merge/gemfiles/modular/cgi/vHEAD.gemfile +++ b/gems/zip-merge/gemfiles/modular/cgi/vHEAD.gemfile @@ -1 +1 @@ -gem 'cgi', '>= 0.5' +gem "cgi", ">= 0.5" diff --git a/gems/zip-merge/gemfiles/modular/coverage.gemfile b/gems/zip-merge/gemfiles/modular/coverage.gemfile index b93014b6b..52d737872 100644 --- a/gems/zip-merge/gemfiles/modular/coverage.gemfile +++ b/gems/zip-merge/gemfiles/modular/coverage.gemfile @@ -4,11 +4,11 @@ # Set KETTLE_DEV_DEV=true for local development with path-based dependencies. # When false (default / CI), remote released gems are used. -if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? +if ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false").zero? # Coverage (remote/released) platform :mri do - gem 'kettle-soup-cover', '~> 3.0', '>= 3.0.3', require: false + gem "kettle-soup-cover", "~> 3.0", ">= 3.0.3", require: false end else - eval_gemfile 'coverage_local.gemfile' + eval_gemfile "coverage_local.gemfile" end diff --git a/gems/zip-merge/gemfiles/modular/coverage_local.gemfile b/gems/zip-merge/gemfiles/modular/coverage_local.gemfile index 42da84fab..7f013d351 100644 --- a/gems/zip-merge/gemfiles/modular/coverage_local.gemfile +++ b/gems/zip-merge/gemfiles/modular/coverage_local.gemfile @@ -11,19 +11,21 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] -nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) +nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] +nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == "nomono" } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + if nomono_locked + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] + end end -Kernel.send(:gem, 'nomono', *nomono_activation_requirements) -require 'nomono/bundler' +Kernel.send(:gem, "nomono", *nomono_activation_requirements) +require "nomono/bundler" local_gems = %w[kettle-dev kettle-test kettle-soup-cover kettle-drift] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) @@ -33,21 +35,21 @@ local_gems_to_eval = local_gems - %w[zip-merge] - declared_gems platform :mri do eval_nomono_gems( gems: local_gems_to_eval, - prefix: 'KETTLE_DEV', - path_env: 'KETTLE_DEV_DEV', - vendored_gems_env: 'VENDORED_GEMS', - vendor_gem_dir_env: 'VENDOR_GEM_DIR', - debug_env: 'KETTLE_DEV_DEBUG' + prefix: "KETTLE_DEV", + path_env: "KETTLE_DEV_DEV", + vendored_gems_env: "VENDORED_GEMS", + vendor_gem_dir_env: "VENDOR_GEM_DIR", + debug_env: "KETTLE_DEV_DEBUG" ) - if ENV.fetch('GALTZO_FLOSS_DEV', 'false').casecmp('false') != 0 + if ENV.fetch("GALTZO_FLOSS_DEV", "false").casecmp("false") != 0 eval_nomono_gems( gems: %w[turbo_tests2], - prefix: 'GALTZO_FLOSS', - path_env: 'GALTZO_FLOSS_DEV', - vendored_gems_env: 'GALTZO_FLOSS_VENDORED_GEMS', - vendor_gem_dir_env: 'GALTZO_FLOSS_VENDOR_GEM_DIR', - debug_env: 'GALTZO_FLOSS_DEBUG' + prefix: "GALTZO_FLOSS", + path_env: "GALTZO_FLOSS_DEV", + vendored_gems_env: "GALTZO_FLOSS_VENDORED_GEMS", + vendor_gem_dir_env: "GALTZO_FLOSS_VENDOR_GEM_DIR", + debug_env: "GALTZO_FLOSS_DEBUG" ) end end diff --git a/gems/zip-merge/gemfiles/modular/debug.gemfile b/gems/zip-merge/gemfiles/modular/debug.gemfile index eed8d4d1e..4e15b1a3a 100644 --- a/gems/zip-merge/gemfiles/modular/debug.gemfile +++ b/gems/zip-merge/gemfiles/modular/debug.gemfile @@ -13,10 +13,10 @@ platform :mri do # Debugging - Ensure ENV["DEBUG"] == "true" to use debuggers within spec suite # Use binding.break, binding.b, or debugger in code - gem 'debug', '>= 1.1' # ruby >= 2.7 + gem "debug", ">= 1.1" # ruby >= 2.7 # Dev Console - Binding.pry - Irb replacement # gem "pry", "~> 0.14" # ruby >= 2.0 end -gem 'gem_bench', '~> 2.0', '>= 2.0.5' +gem "gem_bench", "~> 2.0", ">= 2.0.5" diff --git a/gems/zip-merge/gemfiles/modular/documentation.gemfile b/gems/zip-merge/gemfiles/modular/documentation.gemfile index 9d4535f12..d8215416e 100644 --- a/gems/zip-merge/gemfiles/modular/documentation.gemfile +++ b/gems/zip-merge/gemfiles/modular/documentation.gemfile @@ -7,20 +7,20 @@ # # Documentation -gem 'kramdown', '~> 2.5', '>= 2.5.2', require: false # Ruby >= 2.5 -gem 'kramdown-parser-gfm', '~> 1.1', require: false # Ruby >= 2.3 -gem 'yaml-converter', '~> 0.2', '>= 0.2.3', require: false # Ruby >= 3.2 -gem 'yard', '~> 0.9', '>= 0.9.45', require: false -gem 'yard-junk', '~> 0.1', '>= 0.1.0', require: false # Ruby >= 3.1 -gem 'yard-relative_markdown_links', '~> 0.6', require: false +gem "kramdown", "~> 2.5", ">= 2.5.2", require: false # Ruby >= 2.5 +gem "kramdown-parser-gfm", "~> 1.1", require: false # Ruby >= 2.3 +gem "yaml-converter", "~> 0.2", ">= 0.2.3", require: false # Ruby >= 3.2 +gem "yard", "~> 0.9", ">= 0.9.45", require: false +gem "yard-junk", "~> 0.1", ">= 0.1.0", require: false # Ruby >= 3.1 +gem "yard-relative_markdown_links", "~> 0.6", require: false -if ENV.fetch('GALTZO_FLOSS_DEV', 'false').casecmp('false').zero? - gem 'yard-fence', '~> 0.9', '>= 0.9.6', require: false # Ruby >= 3.2 - gem 'yard-timekeeper', '~> 0.2', '>= 0.2.4', require: false - gem 'yard-yaml', '~> 0.2', '>= 0.2.3', require: false +if ENV.fetch("GALTZO_FLOSS_DEV", "false").casecmp("false").zero? + gem "yard-fence", "~> 0.9", ">= 0.9.6", require: false # Ruby >= 3.2 + gem "yard-timekeeper", "~> 0.2", ">= 0.2.4", require: false + gem "yard-yaml", "~> 0.2", ">= 0.2.3", require: false else - eval_gemfile 'documentation_local.gemfile' + eval_gemfile "documentation_local.gemfile" end # Std Lib extractions -gem 'rdoc', '~> 6.11', require: false unless ENV.fetch('KJ_FRAMEWORK_MATRIX_GEM', '') == 'rdoc' +gem "rdoc", "~> 6.11", require: false unless ENV.fetch("KJ_FRAMEWORK_MATRIX_GEM", "") == "rdoc" diff --git a/gems/zip-merge/gemfiles/modular/documentation_local.gemfile b/gems/zip-merge/gemfiles/modular/documentation_local.gemfile index 770f4274e..54b4d5d22 100644 --- a/gems/zip-merge/gemfiles/modular/documentation_local.gemfile +++ b/gems/zip-merge/gemfiles/modular/documentation_local.gemfile @@ -11,19 +11,21 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] -nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) +nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] +nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == "nomono" } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + if nomono_locked + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] + end end -Kernel.send(:gem, 'nomono', *nomono_activation_requirements) -require 'nomono/bundler' +Kernel.send(:gem, "nomono", *nomono_activation_requirements) +require "nomono/bundler" local_gems = %w[yard-fence yard-timekeeper yard-yaml] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) @@ -32,9 +34,9 @@ local_gems_to_eval = local_gems - %w[zip-merge] - declared_gems # export GALTZO_FLOSS_DEV=/path/to/galtzo-floss eval_nomono_gems( gems: local_gems_to_eval, - prefix: 'GALTZO_FLOSS', - path_env: 'GALTZO_FLOSS_DEV', - vendored_gems_env: 'GALTZO_FLOSS_VENDORED_GEMS', - vendor_gem_dir_env: 'GALTZO_FLOSS_VENDOR_GEM_DIR', - debug_env: 'GALTZO_FLOSS_DEBUG' + prefix: "GALTZO_FLOSS", + path_env: "GALTZO_FLOSS_DEV", + vendored_gems_env: "GALTZO_FLOSS_VENDORED_GEMS", + vendor_gem_dir_env: "GALTZO_FLOSS_VENDOR_GEM_DIR", + debug_env: "GALTZO_FLOSS_DEBUG" ) diff --git a/gems/zip-merge/gemfiles/modular/erb/r2/v3.0.gemfile b/gems/zip-merge/gemfiles/modular/erb/r2/v3.0.gemfile index 7c83a239b..c03bd8d85 100644 --- a/gems/zip-merge/gemfiles/modular/erb/r2/v3.0.gemfile +++ b/gems/zip-merge/gemfiles/modular/erb/r2/v3.0.gemfile @@ -1 +1 @@ -gem 'erb', '~> 3.0' # ruby >= 2.7.0 +gem "erb", "~> 3.0" # ruby >= 2.7.0 diff --git a/gems/zip-merge/gemfiles/modular/erb/r3/v5.0.gemfile b/gems/zip-merge/gemfiles/modular/erb/r3/v5.0.gemfile index ec7ff451f..1bd029cc1 100644 --- a/gems/zip-merge/gemfiles/modular/erb/r3/v5.0.gemfile +++ b/gems/zip-merge/gemfiles/modular/erb/r3/v5.0.gemfile @@ -1 +1 @@ -gem 'erb', '~> 6.0', '>= 6.0.6' # ruby >= 3.2.0 +gem "erb", "~> 6.0", ">= 6.0.6" # ruby >= 3.2.0 diff --git a/gems/zip-merge/gemfiles/modular/erb/r4/v5.0.gemfile b/gems/zip-merge/gemfiles/modular/erb/r4/v5.0.gemfile index ec7ff451f..1bd029cc1 100644 --- a/gems/zip-merge/gemfiles/modular/erb/r4/v5.0.gemfile +++ b/gems/zip-merge/gemfiles/modular/erb/r4/v5.0.gemfile @@ -1 +1 @@ -gem 'erb', '~> 6.0', '>= 6.0.6' # ruby >= 3.2.0 +gem "erb", "~> 6.0", ">= 6.0.6" # ruby >= 3.2.0 diff --git a/gems/zip-merge/gemfiles/modular/erb/vHEAD.gemfile b/gems/zip-merge/gemfiles/modular/erb/vHEAD.gemfile index ea0101185..48fee4218 100644 --- a/gems/zip-merge/gemfiles/modular/erb/vHEAD.gemfile +++ b/gems/zip-merge/gemfiles/modular/erb/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 3.2 -gem 'erb', github: 'ruby/erb', branch: 'master' +gem "erb", github: "ruby/erb", branch: "master" diff --git a/gems/zip-merge/gemfiles/modular/json/truffleruby_22_3.gemfile b/gems/zip-merge/gemfiles/modular/json/truffleruby_22_3.gemfile index 9b2f8d96a..b0e69ab11 100644 --- a/gems/zip-merge/gemfiles/modular/json/truffleruby_22_3.gemfile +++ b/gems/zip-merge/gemfiles/modular/json/truffleruby_22_3.gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -if RUBY_ENGINE == 'truffleruby' && RUBY_ENGINE_VERSION.start_with?('22.3') +if RUBY_ENGINE == "truffleruby" && RUBY_ENGINE_VERSION.start_with?("22.3") # TruffleRuby 22.3 ships the json default gem from its emulated MRI Ruby. - gem 'json', '= 2.5.1' + gem "json", "= 2.5.1" end diff --git a/gems/zip-merge/gemfiles/modular/json/truffleruby_23_0.gemfile b/gems/zip-merge/gemfiles/modular/json/truffleruby_23_0.gemfile index d787a5ef4..7b2660a2b 100644 --- a/gems/zip-merge/gemfiles/modular/json/truffleruby_23_0.gemfile +++ b/gems/zip-merge/gemfiles/modular/json/truffleruby_23_0.gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -if RUBY_ENGINE == 'truffleruby' && RUBY_ENGINE_VERSION.start_with?('23.0') +if RUBY_ENGINE == "truffleruby" && RUBY_ENGINE_VERSION.start_with?("23.0") # TruffleRuby 23.0 ships the json default gem from its emulated MRI Ruby. - gem 'json', '= 2.6.1' + gem "json", "= 2.6.1" end diff --git a/gems/zip-merge/gemfiles/modular/json/truffleruby_23_1.gemfile b/gems/zip-merge/gemfiles/modular/json/truffleruby_23_1.gemfile index d78486b0e..dfa21f2e4 100644 --- a/gems/zip-merge/gemfiles/modular/json/truffleruby_23_1.gemfile +++ b/gems/zip-merge/gemfiles/modular/json/truffleruby_23_1.gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -if RUBY_ENGINE == 'truffleruby' && RUBY_ENGINE_VERSION.start_with?('23.1') +if RUBY_ENGINE == "truffleruby" && RUBY_ENGINE_VERSION.start_with?("23.1") # TruffleRuby 23.1 ships the json default gem from its emulated MRI Ruby. - gem 'json', '= 2.6.3' + gem "json", "= 2.6.3" end diff --git a/gems/zip-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile b/gems/zip-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile index e27f1bbae..42e9d9bd4 100644 --- a/gems/zip-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile +++ b/gems/zip-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 -gem 'mutex_m', '~> 0.2' +gem "mutex_m", "~> 0.2" diff --git a/gems/zip-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile b/gems/zip-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile index e27f1bbae..42e9d9bd4 100644 --- a/gems/zip-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile +++ b/gems/zip-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 -gem 'mutex_m', '~> 0.2' +gem "mutex_m", "~> 0.2" diff --git a/gems/zip-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile b/gems/zip-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile index e27f1bbae..42e9d9bd4 100644 --- a/gems/zip-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile +++ b/gems/zip-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 -gem 'mutex_m', '~> 0.2' +gem "mutex_m", "~> 0.2" diff --git a/gems/zip-merge/gemfiles/modular/mutex_m/vHEAD.gemfile b/gems/zip-merge/gemfiles/modular/mutex_m/vHEAD.gemfile index 9dac2f6cb..8af3b6fca 100644 --- a/gems/zip-merge/gemfiles/modular/mutex_m/vHEAD.gemfile +++ b/gems/zip-merge/gemfiles/modular/mutex_m/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 (dependency of omniauth) -gem 'mutex_m', github: 'ruby/mutex_m', branch: 'master' +gem "mutex_m", github: "ruby/mutex_m", branch: "master" diff --git a/gems/zip-merge/gemfiles/modular/optional.gemfile b/gems/zip-merge/gemfiles/modular/optional.gemfile index 9ea429538..80bc45196 100644 --- a/gems/zip-merge/gemfiles/modular/optional.gemfile +++ b/gems/zip-merge/gemfiles/modular/optional.gemfile @@ -9,8 +9,8 @@ # Optional dependencies are not depended on directly, but may be used if present. # Required for curated binstubs generated by kettle-jem install -gem 'rbs', '>= 3.0', require: false # ruby >= 3.1 +gem "rbs", ">= 3.0", require: false # ruby >= 3.1 # Required for kettle-pre-release # URL parsing with Unicode support (falls back to URI if not available) -gem 'addressable', '>= 2.8', '< 3' # ruby >= 2.2 +gem "addressable", ">= 2.8", "< 3" # ruby >= 2.2 diff --git a/gems/zip-merge/gemfiles/modular/rspec.gemfile b/gems/zip-merge/gemfiles/modular/rspec.gemfile index 2af210a41..72fdf8b7f 100644 --- a/gems/zip-merge/gemfiles/modular/rspec.gemfile +++ b/gems/zip-merge/gemfiles/modular/rspec.gemfile @@ -1,4 +1,4 @@ -gem 'rspec_junit_formatter', - github: 'pboling/rspec_junit_formatter', - branch: 'main', - ref: '9e6bcaaedd49477b62878ed568dc4ada5cc7cb5e' +gem "rspec_junit_formatter", + github: "pboling/rspec_junit_formatter", + branch: "main", + ref: "9e6bcaaedd49477b62878ed568dc4ada5cc7cb5e" diff --git a/gems/zip-merge/gemfiles/modular/runtime_heads.gemfile b/gems/zip-merge/gemfiles/modular/runtime_heads.gemfile index ebf17c529..02f134c7f 100644 --- a/gems/zip-merge/gemfiles/modular/runtime_heads.gemfile +++ b/gems/zip-merge/gemfiles/modular/runtime_heads.gemfile @@ -8,4 +8,4 @@ # Test against HEAD of runtime dependencies so we can proactively file bugs -eval_gemfile('x_std_libs/vHEAD.gemfile') +eval_gemfile("x_std_libs/vHEAD.gemfile") diff --git a/gems/zip-merge/gemfiles/modular/stringio/r2/v3.0.gemfile b/gems/zip-merge/gemfiles/modular/stringio/r2/v3.0.gemfile index 3616f4e3a..e85bb18ee 100644 --- a/gems/zip-merge/gemfiles/modular/stringio/r2/v3.0.gemfile +++ b/gems/zip-merge/gemfiles/modular/stringio/r2/v3.0.gemfile @@ -2,4 +2,4 @@ # NOT SEMVER # Version 3.0.7 dropped support for Ruby <= 2.7 # Version 3.0.0 dropped support for Ruby <= 2.4 -gem 'stringio', '>= 3.0' +gem "stringio", ">= 3.0" diff --git a/gems/zip-merge/gemfiles/modular/stringio/r3/v3.0.gemfile b/gems/zip-merge/gemfiles/modular/stringio/r3/v3.0.gemfile index 3616f4e3a..e85bb18ee 100644 --- a/gems/zip-merge/gemfiles/modular/stringio/r3/v3.0.gemfile +++ b/gems/zip-merge/gemfiles/modular/stringio/r3/v3.0.gemfile @@ -2,4 +2,4 @@ # NOT SEMVER # Version 3.0.7 dropped support for Ruby <= 2.7 # Version 3.0.0 dropped support for Ruby <= 2.4 -gem 'stringio', '>= 3.0' +gem "stringio", ">= 3.0" diff --git a/gems/zip-merge/gemfiles/modular/stringio/r4/v3.0.gemfile b/gems/zip-merge/gemfiles/modular/stringio/r4/v3.0.gemfile index 3616f4e3a..e85bb18ee 100644 --- a/gems/zip-merge/gemfiles/modular/stringio/r4/v3.0.gemfile +++ b/gems/zip-merge/gemfiles/modular/stringio/r4/v3.0.gemfile @@ -2,4 +2,4 @@ # NOT SEMVER # Version 3.0.7 dropped support for Ruby <= 2.7 # Version 3.0.0 dropped support for Ruby <= 2.4 -gem 'stringio', '>= 3.0' +gem "stringio", ">= 3.0" diff --git a/gems/zip-merge/gemfiles/modular/stringio/vHEAD.gemfile b/gems/zip-merge/gemfiles/modular/stringio/vHEAD.gemfile index 78f5f5d8a..5f2a74126 100644 --- a/gems/zip-merge/gemfiles/modular/stringio/vHEAD.gemfile +++ b/gems/zip-merge/gemfiles/modular/stringio/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 (dependency of omniauth) -gem 'stringio', github: 'ruby/stringio', branch: 'master' +gem "stringio", github: "ruby/stringio", branch: "master" diff --git a/gems/zip-merge/gemfiles/modular/style.gemfile b/gems/zip-merge/gemfiles/modular/style.gemfile index 4dbcc02c0..35de4dcd6 100644 --- a/gems/zip-merge/gemfiles/modular/style.gemfile +++ b/gems/zip-merge/gemfiles/modular/style.gemfile @@ -9,23 +9,23 @@ # Style tasks run on the latest Ruby; RuboCop-LTS selects the compatibility # rules for the configured Ruby floor independently from task dependency floors. -gem 'reek', '~> 6.5', '>= 6.5.0' +gem "reek", "~> 6.5", ">= 6.5.0" platform :mri do - gem 'appraisal2-rubocop', '~> 1.0', '>= 1.0.0', require: false - gem 'rubocop-gradual', '~> 0.4', '>= 0.4.0' - gem 'rubocop-minitest', '~> 0.40', '>= 0.40.0' - gem 'rubocop-on-rbs', '~> 2.0', '>= 2.0.0' # ruby >= 3.2.0 + gem "appraisal2-rubocop", "~> 1.0", ">= 1.0.0", require: false + gem "rubocop-gradual", "~> 0.4", ">= 0.4.0" + gem "rubocop-minitest", "~> 0.40", ">= 0.40.0" + gem "rubocop-on-rbs", "~> 2.0", ">= 2.0.0" # ruby >= 3.2.0 # gem "rubocop", "~> 1.73", ">= 1.73.2" # constrained by standard - gem 'rubocop-packaging', '~> 0.6', '>= 0.6.0' - gem 'standard', '~> 1.56', '>= 1.56.0' + gem "rubocop-packaging", "~> 0.6", ">= 0.6.0" + gem "standard", "~> 1.56", ">= 1.56.0" - if ENV.fetch('RUBOCOP_LTS_LOCAL', 'false').casecmp('false').zero? + if ENV.fetch("RUBOCOP_LTS_LOCAL", "false").casecmp("false").zero? declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) - gem 'rubocop-lts', '~> 24.2', '>= 24.2.1' unless declared_gems.include?('rubocop-lts') - gem 'rubocop-lts-rspec', '~> 1.0', '>= 1.0.5' unless declared_gems.include?('rubocop-lts-rspec') - gem 'rubocop-ruby3_2', '~> 3.0', '>= 3.0.6' unless declared_gems.include?('rubocop-ruby3_2') + gem "rubocop-lts", "~> 24.2", ">= 24.2.1" unless declared_gems.include?("rubocop-lts") + gem "rubocop-lts-rspec", "~> 1.0", ">= 1.0.5" unless declared_gems.include?("rubocop-lts-rspec") + gem "rubocop-ruby3_2", "~> 3.0", ">= 3.0.6" unless declared_gems.include?("rubocop-ruby3_2") else - eval_gemfile('style_local.gemfile') + eval_gemfile("style_local.gemfile") end end diff --git a/gems/zip-merge/gemfiles/modular/style_local.gemfile b/gems/zip-merge/gemfiles/modular/style_local.gemfile index b034ea58a..5ac7cf26d 100644 --- a/gems/zip-merge/gemfiles/modular/style_local.gemfile +++ b/gems/zip-merge/gemfiles/modular/style_local.gemfile @@ -14,19 +14,21 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] -nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) +nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] +nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == "nomono" } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + if nomono_locked + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] + end end -Kernel.send(:gem, 'nomono', *nomono_activation_requirements) -require 'nomono/bundler' +Kernel.send(:gem, "nomono", *nomono_activation_requirements) +require "nomono/bundler" local_gems = %w[rubocop-lts rubocop-lts-rspec rubocop-ruby3_2 standard-rubocop-lts] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) @@ -36,11 +38,11 @@ local_gems_to_eval = local_gems - %w[zip-merge] - declared_gems platform :mri do eval_nomono_gems( gems: local_gems_to_eval, - prefix: 'RUBOCOP_LTS', - path_env: 'RUBOCOP_LTS_LOCAL', - vendored_gems_env: 'VENDORED_GEMS', - vendor_gem_dir_env: 'VENDOR_GEM_DIR', - debug_env: 'RUBOCOP_LTS_DEBUG', - root: %w[src rubocop-lts] + prefix: "RUBOCOP_LTS", + path_env: "RUBOCOP_LTS_LOCAL", + vendored_gems_env: "VENDORED_GEMS", + vendor_gem_dir_env: "VENDOR_GEM_DIR", + debug_env: "RUBOCOP_LTS_DEBUG", + root: ["src", "rubocop-lts"] ) end diff --git a/gems/zip-merge/gemfiles/modular/templating.gemfile b/gems/zip-merge/gemfiles/modular/templating.gemfile index a672de184..47138ffbb 100644 --- a/gems/zip-merge/gemfiles/modular/templating.gemfile +++ b/gems/zip-merge/gemfiles/modular/templating.gemfile @@ -1,18 +1,18 @@ # frozen_string_literal: true -structuredmerge_remote = ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false').zero? -kettle_remote = ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? +structuredmerge_remote = ENV.fetch("STRUCTUREDMERGE_DEV", "false").casecmp("false").zero? +kettle_remote = ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false").zero? if structuredmerge_remote # Parser dependencies for released installs. - gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' + gem "tree_sitter_language_pack", "~> 1.13", ">= 1.13.3" # Merge recipes for released installs. - gem 'kettle-jem', '>= 7.0' + gem "kettle-jem", ">= 7.0" end if kettle_remote # Template/plugin checks for released installs. - gem 'kettle-drift', '~> 1.0', '>= 1.0.6', require: false + gem "kettle-drift", "~> 1.0", ">= 1.0.6", require: false end # Set STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local development with path-based dependencies. @@ -21,4 +21,4 @@ end # # Set KETTLE_DEV_DEV=/path/to/my for local development with Kettle plugin gems. # When false (default / CI), released Kettle plugin gems are used. -eval_gemfile 'templating_local.gemfile' unless structuredmerge_remote && kettle_remote +eval_gemfile "templating_local.gemfile" unless structuredmerge_remote && kettle_remote diff --git a/gems/zip-merge/gemfiles/modular/templating_local.gemfile b/gems/zip-merge/gemfiles/modular/templating_local.gemfile index 8dbb2f55f..81377c103 100644 --- a/gems/zip-merge/gemfiles/modular/templating_local.gemfile +++ b/gems/zip-merge/gemfiles/modular/templating_local.gemfile @@ -12,19 +12,21 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] -nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) +nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] +nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == "nomono" } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + if nomono_locked + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] + end end -Kernel.send(:gem, 'nomono', *nomono_activation_requirements) -require 'nomono/bundler' +Kernel.send(:gem, "nomono", *nomono_activation_requirements) +require "nomono/bundler" structuredmerge_local_gems = %w[ tree_haver @@ -67,25 +69,25 @@ structuredmerge_local_gems_to_eval = structuredmerge_local_gems - %w[zip-merge] kettle_dev_local_gems_to_eval = kettle_dev_local_gems - %w[zip-merge] - declared_gems platform :mri do - if ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false') != 0 + if ENV.fetch("STRUCTUREDMERGE_DEV", "false").casecmp("false") != 0 eval_nomono_gems( gems: structuredmerge_local_gems_to_eval, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - vendored_gems_env: 'VENDORED_GEMS', - vendor_gem_dir_env: 'VENDOR_GEM_DIR', - debug_env: 'STRUCTUREDMERGE_DEBUG' + prefix: "STRUCTUREDMERGE", + path_env: "STRUCTUREDMERGE_DEV", + vendored_gems_env: "VENDORED_GEMS", + vendor_gem_dir_env: "VENDOR_GEM_DIR", + debug_env: "STRUCTUREDMERGE_DEBUG" ) end - if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false') != 0 + if ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false") != 0 eval_nomono_gems( gems: kettle_dev_local_gems_to_eval, - prefix: 'KETTLE_DEV', - path_env: 'KETTLE_DEV_DEV', - vendored_gems_env: 'VENDORED_GEMS', - vendor_gem_dir_env: 'VENDOR_GEM_DIR', - debug_env: 'KETTLE_DEV_DEBUG' + prefix: "KETTLE_DEV", + path_env: "KETTLE_DEV_DEV", + vendored_gems_env: "VENDORED_GEMS", + vendor_gem_dir_env: "VENDOR_GEM_DIR", + debug_env: "KETTLE_DEV_DEBUG" ) end end diff --git a/gems/zip-merge/gemfiles/modular/webrick/r4/v1.9.gemfile b/gems/zip-merge/gemfiles/modular/webrick/r4/v1.9.gemfile index b1329ba84..eaab4a473 100644 --- a/gems/zip-merge/gemfiles/modular/webrick/r4/v1.9.gemfile +++ b/gems/zip-merge/gemfiles/modular/webrick/r4/v1.9.gemfile @@ -1 +1 @@ -gem 'webrick', '~> 1.9' +gem "webrick", "~> 1.9" diff --git a/gems/zip-merge/gemfiles/modular/webrick/vHEAD.gemfile b/gems/zip-merge/gemfiles/modular/webrick/vHEAD.gemfile index c7e6f81a1..8a789b634 100644 --- a/gems/zip-merge/gemfiles/modular/webrick/vHEAD.gemfile +++ b/gems/zip-merge/gemfiles/modular/webrick/vHEAD.gemfile @@ -1 +1 @@ -gem 'webrick', '>= 1.9' +gem "webrick", ">= 1.9" diff --git a/gems/zip-merge/gemfiles/modular/x_std_libs.gemfile b/gems/zip-merge/gemfiles/modular/x_std_libs.gemfile index b1f43c097..77aad43f2 100644 --- a/gems/zip-merge/gemfiles/modular/x_std_libs.gemfile +++ b/gems/zip-merge/gemfiles/modular/x_std_libs.gemfile @@ -1,12 +1,12 @@ ### Std Lib Extracted Gems ruby_version = Gem::Version.new(RUBY_VERSION) -if ruby_version >= Gem::Version.new('4.0') - eval_gemfile 'x_std_libs/r4/libs.gemfile' -elsif ruby_version >= Gem::Version.new('3.2') - eval_gemfile 'x_std_libs/r3/libs.gemfile' -elsif ruby_version >= Gem::Version.new('3.1') - eval_gemfile 'x_std_libs/r3.1/libs.gemfile' +if ruby_version >= Gem::Version.new("4.0") + eval_gemfile "x_std_libs/r4/libs.gemfile" +elsif ruby_version >= Gem::Version.new("3.2") + eval_gemfile "x_std_libs/r3/libs.gemfile" +elsif ruby_version >= Gem::Version.new("3.1") + eval_gemfile "x_std_libs/r3.1/libs.gemfile" else - eval_gemfile 'x_std_libs/r2/libs.gemfile' + eval_gemfile "x_std_libs/r2/libs.gemfile" end diff --git a/gems/zip-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile b/gems/zip-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile index 16a5e3d70..441c4f03a 100644 --- a/gems/zip-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile +++ b/gems/zip-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile @@ -1,3 +1,3 @@ -eval_gemfile '../../erb/r2/v3.0.gemfile' -eval_gemfile '../../mutex_m/r2/v0.3.gemfile' -eval_gemfile '../../stringio/r2/v3.0.gemfile' +eval_gemfile "../../erb/r2/v3.0.gemfile" +eval_gemfile "../../mutex_m/r2/v0.3.gemfile" +eval_gemfile "../../stringio/r2/v3.0.gemfile" diff --git a/gems/zip-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile b/gems/zip-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile index 220ff95c1..c293a3ddd 100644 --- a/gems/zip-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile +++ b/gems/zip-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile @@ -1,3 +1,3 @@ -eval_gemfile '../../erb/r3/v5.0.gemfile' -eval_gemfile '../../mutex_m/r3/v0.3.gemfile' -eval_gemfile '../../stringio/r3/v3.0.gemfile' +eval_gemfile "../../erb/r3/v5.0.gemfile" +eval_gemfile "../../mutex_m/r3/v0.3.gemfile" +eval_gemfile "../../stringio/r3/v3.0.gemfile" diff --git a/gems/zip-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile b/gems/zip-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile index e2f6501eb..eb5574247 100644 --- a/gems/zip-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile +++ b/gems/zip-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile @@ -1,6 +1,6 @@ -eval_gemfile '../../erb/r4/v5.0.gemfile' -eval_gemfile '../../mutex_m/r4/v0.3.gemfile' -eval_gemfile '../../stringio/r4/v3.0.gemfile' -eval_gemfile '../../benchmark/r4/v0.5.gemfile' -eval_gemfile '../../cgi/r4/v0.5.gemfile' -eval_gemfile '../../webrick/r4/v1.9.gemfile' +eval_gemfile "../../erb/r4/v5.0.gemfile" +eval_gemfile "../../mutex_m/r4/v0.3.gemfile" +eval_gemfile "../../stringio/r4/v3.0.gemfile" +eval_gemfile "../../benchmark/r4/v0.5.gemfile" +eval_gemfile "../../cgi/r4/v0.5.gemfile" +eval_gemfile "../../webrick/r4/v1.9.gemfile" diff --git a/gems/zip-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile b/gems/zip-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile index ab75cccf1..d4d5b16c9 100644 --- a/gems/zip-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile +++ b/gems/zip-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile @@ -1,6 +1,6 @@ -eval_gemfile '../erb/vHEAD.gemfile' -eval_gemfile '../mutex_m/vHEAD.gemfile' -eval_gemfile '../stringio/vHEAD.gemfile' -eval_gemfile '../benchmark/vHEAD.gemfile' -eval_gemfile '../cgi/vHEAD.gemfile' -eval_gemfile '../webrick/vHEAD.gemfile' +eval_gemfile "../erb/vHEAD.gemfile" +eval_gemfile "../mutex_m/vHEAD.gemfile" +eval_gemfile "../stringio/vHEAD.gemfile" +eval_gemfile "../benchmark/vHEAD.gemfile" +eval_gemfile "../cgi/vHEAD.gemfile" +eval_gemfile "../webrick/vHEAD.gemfile" diff --git a/gems/zip-merge/lib/zip/merge/version.rb b/gems/zip-merge/lib/zip/merge/version.rb index b04b544a9..7f72cea08 100644 --- a/gems/zip-merge/lib/zip/merge/version.rb +++ b/gems/zip-merge/lib/zip/merge/version.rb @@ -3,7 +3,7 @@ module Zip module Merge module Version - VERSION = '7.1.0' + VERSION = "7.1.0" end VERSION = Version::VERSION # Traditional Constant Location end diff --git a/gems/zip-merge/spec/spec_helper.rb b/gems/zip-merge/spec/spec_helper.rb index f8231f4ec..e299a8de9 100644 --- a/gems/zip-merge/spec/spec_helper.rb +++ b/gems/zip-merge/spec/spec_helper.rb @@ -7,11 +7,16 @@ # NOTE: Gemfiles for non-coverage appraisals may not have kettle-soup-cover. # The rescue LoadError handles that scenario. begin - require 'kettle-soup-cover' - require 'simplecov' if Kettle::Soup::Cover::DO_COV # `.simplecov` is run here! -rescue LoadError => e + require "kettle-soup-cover" + if Kettle::Soup::Cover::DO_COV + # Requiring simplecov loads the project-local `.simplecov`. + require "simplecov" + require "kettle/soup/cover/config" + SimpleCov.start + end +rescue LoadError => error # check the error message and re-raise when unexpected - raise e unless e.message.include?('kettle') + raise error unless error.message.include?("kettle") end # External RSpec & related config From f3099c73ddd0c4c6da4a669128d3621872f4e808 Mon Sep 17 00:00:00 2001 From: "Peter H. Boling" Date: Tue, 21 Jul 2026 18:05:00 -0600 Subject: [PATCH 167/188] =?UTF-8?q?=F0=9F=8E=A8=20Template=20bootstrap=20b?= =?UTF-8?q?y=20kettle-jem=20v7.1.0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gems/ast-template/Gemfile.lock | 332 +++++++++++++++++- gems/binary-merge/.rubocop_gradual.lock | 105 ++++++ gems/binary-merge/.simplecov | 2 +- gems/binary-merge/Gemfile | 70 ++-- gems/binary-merge/Gemfile.lock | 6 +- gems/binary-merge/Rakefile | 18 +- gems/binary-merge/bin/yard | 2 +- .../modular/benchmark/r4/v0.5.gemfile | 2 +- .../gemfiles/modular/benchmark/vHEAD.gemfile | 2 +- .../gemfiles/modular/cgi/r4/v0.5.gemfile | 2 +- .../gemfiles/modular/cgi/vHEAD.gemfile | 2 +- .../gemfiles/modular/coverage.gemfile | 6 +- .../gemfiles/modular/coverage_local.gemfile | 42 ++- .../gemfiles/modular/debug.gemfile | 4 +- .../gemfiles/modular/documentation.gemfile | 24 +- .../modular/documentation_local.gemfile | 30 +- .../gemfiles/modular/erb/r2/v3.0.gemfile | 2 +- .../gemfiles/modular/erb/r3/v5.0.gemfile | 2 +- .../gemfiles/modular/erb/r4/v5.0.gemfile | 2 +- .../gemfiles/modular/erb/vHEAD.gemfile | 2 +- .../modular/json/truffleruby_22_3.gemfile | 4 +- .../modular/json/truffleruby_23_0.gemfile | 4 +- .../modular/json/truffleruby_23_1.gemfile | 4 +- .../gemfiles/modular/mutex_m/r2/v0.3.gemfile | 2 +- .../gemfiles/modular/mutex_m/r3/v0.3.gemfile | 2 +- .../gemfiles/modular/mutex_m/r4/v0.3.gemfile | 2 +- .../gemfiles/modular/mutex_m/vHEAD.gemfile | 2 +- .../gemfiles/modular/optional.gemfile | 4 +- .../gemfiles/modular/rspec.gemfile | 8 +- .../gemfiles/modular/runtime_heads.gemfile | 2 +- .../gemfiles/modular/stringio/r2/v3.0.gemfile | 2 +- .../gemfiles/modular/stringio/r3/v3.0.gemfile | 2 +- .../gemfiles/modular/stringio/r4/v3.0.gemfile | 2 +- .../gemfiles/modular/stringio/vHEAD.gemfile | 2 +- .../gemfiles/modular/style.gemfile | 24 +- .../gemfiles/modular/style_local.gemfile | 32 +- .../gemfiles/modular/templating.gemfile | 12 +- .../gemfiles/modular/templating_local.gemfile | 44 ++- .../gemfiles/modular/webrick/r4/v1.9.gemfile | 2 +- .../gemfiles/modular/webrick/vHEAD.gemfile | 2 +- .../gemfiles/modular/x_std_libs.gemfile | 14 +- .../modular/x_std_libs/r2/libs.gemfile | 6 +- .../modular/x_std_libs/r3/libs.gemfile | 6 +- .../modular/x_std_libs/r4/libs.gemfile | 12 +- .../gemfiles/modular/x_std_libs/vHEAD.gemfile | 12 +- gems/binary-merge/lib/binary/merge/version.rb | 2 +- gems/binary-merge/spec/spec_helper.rb | 10 +- gems/zip-merge/Gemfile.lock | 330 ----------------- gems/zip-merge/bin/yard | 2 +- 49 files changed, 646 insertions(+), 563 deletions(-) create mode 100644 gems/binary-merge/.rubocop_gradual.lock diff --git a/gems/ast-template/Gemfile.lock b/gems/ast-template/Gemfile.lock index 0568f0bf0..d8aa4df10 100644 --- a/gems/ast-template/Gemfile.lock +++ b/gems/ast-template/Gemfile.lock @@ -6,7 +6,39 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/ast-merge + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly + specs: + ast-crispr-markdown-markly (7.1.0) + ast-crispr (= 7.1.0) + markly-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism + specs: + ast-crispr-ruby-prism (7.1.0) + ast-crispr (= 7.1.0) + prism-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr + specs: + ast-crispr (7.1.0) + ast-merge (= 7.1.0) + service_actor (~> 3.9) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git + specs: + ast-merge-git (7.1.0) + ast-merge (= 7.1.0) + json-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge specs: ast-merge (7.1.0) benchmark @@ -14,6 +46,226 @@ PATH tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge + specs: + bash-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge + specs: + binary-merge (7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge + specs: + citrus-toml-merge (7.1.0) + toml-merge (= 7.1.0) + toml-rb (~> 4.1) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge + specs: + commonmarker-merge (7.1.0) + commonmarker (~> 2.2) + markdown-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge + specs: + dotenv-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge + specs: + go-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge + specs: + json-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem + specs: + kettle-jem (7.1.0) + addressable (>= 2.8, < 3) + ast-crispr-markdown-markly (= 7.1.0) + ast-crispr-ruby-prism (= 7.1.0) + ast-merge (= 7.1.0) + bash-merge (= 7.1.0) + citrus-toml-merge (= 7.1.0) + commonmarker-merge (= 7.1.0) + dotenv-merge (= 7.1.0) + json-merge (= 7.1.0) + kettle-dev (~> 2.3, >= 2.3.5) + kettle-rb (~> 0.1, >= 0.1.4) + kramdown-merge (= 7.1.0) + markdown-merge (= 7.1.0) + markly-merge (= 7.1.0) + prism-merge (= 7.1.0) + psych-merge (= 7.1.0) + rbs (>= 3.10) + rbs-merge (= 7.1.0) + ruby-merge (= 7.1.0) + token-resolver (~> 2.0, >= 2.0.4) + toml-merge (= 7.1.0) + toml-rb (~> 4.2) + tree_haver (= 7.1.0) + yaml-merge (= 7.1.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge + specs: + kramdown-merge (7.1.0) + kramdown (~> 2.5) + markdown-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge + specs: + markdown-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge + specs: + markly-merge (7.1.0) + markdown-merge (= 7.1.0) + markly (~> 0.9) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge + specs: + parslet-toml-merge (7.1.0) + toml (~> 0.3) + toml-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge + specs: + plain-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge + specs: + prism-merge (7.1.0) + prism (~> 1.6) + ruby-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge + specs: + psych-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + yaml-merge (= 7.1.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge + specs: + rbs-merge (7.1.0) + ast-merge (= 7.1.0) + rbs (>= 3.10) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge + specs: + ruby-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge + specs: + rust-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb + specs: + smorg-rb (7.1.0) + ast-merge (= 7.1.0) + ast-merge-git (= 7.1.0) + diff-lcs (~> 1.5) + go-merge (= 7.1.0) + json-merge (= 7.1.0) + kettle-jem (= 7.1.0) + markly-merge (= 7.1.0) + plain-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge + specs: + toml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver + specs: + tree_haver (7.1.0) + citrus (~> 3.0) + parslet (~> 2.0) + tree_sitter_language_pack (>= 1.13.2, < 2.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge + specs: + typescript-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge + specs: + yaml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge + specs: + zip-merge (7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + GEM remote: https://gem.coop/ specs: @@ -38,6 +290,7 @@ GEM cgi (0.5.2) citrus (3.0.2) cmdparse (3.0.7) + commonmarker (2.9.0-x86_64-linux) concurrent-ruby (1.3.8) date (3.5.1) debug (1.11.1) @@ -100,6 +353,8 @@ GEM kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) + kettle-drift (1.0.6) + version_gem (~> 1.1, >= 1.1.14) kettle-rb (0.1.5) kettle-soup-cover (3.0.4) kettle-wash (~> 0.1, >= 0.1.0) @@ -128,6 +383,7 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) + markly (0.16.0) mutex_m (0.3.0) nokogiri (1.19.4-x86_64-linux-gnu) racc (~> 1.4) @@ -282,6 +538,8 @@ GEM ruby-progressbar (1.13.0) ruby_engine (2.0.3) ruby_version (1.0.3) + service_actor (3.9.4) + zeitwerk (>= 1.0) silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) @@ -336,11 +594,11 @@ GEM token-resolver (2.0.5) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.14) - tree_haver (7.1.0) - citrus (~> 3.0) - parslet (~> 2.0) - tree_sitter_language_pack (>= 1.13.2, < 2.0) - version_gem (~> 1.1, >= 1.1.9) + toml (0.3.0) + parslet (>= 1.8.0, < 3.0.0) + toml-rb (4.2.0) + citrus (~> 3.0, > 3.0) + racc (~> 1.7) tree_sitter_language_pack (1.13.3-x86_64-linux) sorbet-runtime (~> 0.5) tsort (0.2.0) @@ -386,25 +644,46 @@ DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) appraisal2-rubocop (~> 1.0, >= 1.0.0) + ast-crispr! + ast-crispr-markdown-markly! + ast-crispr-ruby-prism! ast-merge! + ast-merge-git! ast-template! + bash-merge! benchmark (~> 0.5, >= 0.5.0) + binary-merge! bundler-audit (~> 0.9.3) cgi (~> 0.5) + citrus-toml-merge! + commonmarker-merge! debug (>= 1.1) + dotenv-merge! erb (~> 6.0, >= 6.0.6) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.0) + go-merge! irb (~> 1.17) + json-merge! kettle-dev (~> 2.0, >= 2.2.25) + kettle-drift (~> 1.0, >= 1.0.6) + kettle-jem! kettle-soup-cover (~> 3.0, >= 3.0.3) kettle-test (~> 2.0, >= 2.0.9) kramdown (~> 2.5, >= 2.5.2) + kramdown-merge! kramdown-parser-gfm (~> 1.1) + markdown-merge! + markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) + parslet-toml-merge! + plain-merge! + prism-merge! + psych-merge! rake (~> 13.0) rbs (>= 3.0) + rbs-merge! rdoc (~> 6.11) reek (~> 6.5, >= 6.5.0) require_bench (~> 1.0, >= 1.0.4) @@ -415,19 +694,27 @@ DEPENDENCIES rubocop-on-rbs (~> 2.0, >= 2.0.0) rubocop-packaging (~> 0.6, >= 0.6.0) rubocop-ruby3_2 (~> 3.0, >= 3.0.6) + ruby-merge! ruby-progressbar (~> 1.13) + rust-merge! + smorg-rb! standard (~> 1.56, >= 1.56.0) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) + toml-merge! + tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) + typescript-merge! webrick (~> 1.9) yaml-converter (~> 0.2, >= 0.2.3) + yaml-merge! yard (~> 0.9, >= 0.9.45) yard-fence (~> 0.9, >= 0.9.6) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) yard-timekeeper (~> 0.2, >= 0.2.4) yard-yaml (~> 0.2, >= 0.2.3) + zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af @@ -435,21 +722,31 @@ CHECKSUMS appraisal2 (3.2.0) sha256=ccd0b767ac4060cd7af6d16747459b6990f49c39c7b4fb1f7d1146b1e97c492f appraisal2-rubocop (1.0.0) sha256=b71410fbb014befda5340605a605b7f6f3f012739baf0acc5b4351b592c3258d ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 + ast-crispr (7.1.0) + ast-crispr-markdown-markly (7.1.0) + ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) + ast-merge-git (7.1.0) ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 + bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd + binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 + citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 + commonmarker (2.9.0-x86_64-linux) sha256=8cfe92970eef585a19ddf6613224b91cab64d6029834661bda801f877c9c7f43 + commonmarker-merge (7.1.0) concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 + dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -462,20 +759,28 @@ CHECKSUMS gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f + go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 + json-merge (7.1.0) kettle-dev (2.3.9) + kettle-drift (1.0.6) sha256=46eda08fa4411d1f3c6682a95eef1c9df4e94611b3949f49d4c7b43c0ed356a3 + kettle-jem (7.1.0) kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f kettle-soup-cover (3.0.4) kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa + kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 + markdown-merge (7.1.0) + markly (0.16.0) sha256=6f70d79e385b1efc9e171f74c81628826259039fe6c778e03c3924c71dac5511 + markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-x86_64-linux-gnu) sha256=379fae440b28915e3f19d752ce2dcf8465ed2b2fbefd2a7ca0dd497bc981a06a nomono (1.0.9) @@ -485,15 +790,20 @@ CHECKSUMS parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 + parslet-toml-merge (7.1.0) + plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 + prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 + psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 + rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb @@ -528,15 +838,19 @@ CHECKSUMS rubocop-rspec_rails (2.32.0) sha256=4a0d641c72f6ebb957534f539d9d0a62c47abd8ce0d0aeee1ef4701e892a9100 rubocop-ruby3_2 (3.0.7) sha256=f53dd6d286fb05186214fc6ec116783e7f837030918e8931c05de773e98f8466 rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 + ruby-merge (7.1.0) ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 + rust-merge (7.1.0) + service_actor (3.9.4) sha256=e63b523630b9a7e62959b2a90113b08d2565b5de9c148557b281ef847c9539ce silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed + smorg-rb (7.1.0) sorbet-runtime (0.6.13351) sha256=f8fee17c6e3edf835dc6823d26afb9a7c8969c6710d1fabe2fb43f4e0c15c64f standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b @@ -551,15 +865,20 @@ CHECKSUMS timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.5) sha256=b852f924287ffb58a440856e862b056c8ad97e74b4b2526cee43e0771f40c25c + toml (0.3.0) sha256=0a91d0f76a9036e84e44f95693b12f58d358c1df3ac8e3b5271f2056ecc6e4b9 + toml-merge (7.1.0) + toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 + typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 webrick (1.9.2) sha256=beb4a15fc474defed24a3bda4ffd88a490d517c9e4e6118c3edce59e45864131 yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 + yaml-merge (7.1.0) yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd @@ -567,6 +886,7 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 + zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH diff --git a/gems/binary-merge/.rubocop_gradual.lock b/gems/binary-merge/.rubocop_gradual.lock new file mode 100644 index 000000000..970768c26 --- /dev/null +++ b/gems/binary-merge/.rubocop_gradual.lock @@ -0,0 +1,105 @@ +{ + ".simplecov:3809455317": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "Rakefile:273093165": [ + [18, 121, 17, "Layout/LineLength: Line is too long. [137/120]", 174264873], + [79, 3, 1023, "Metrics/BlockLength: Block has too many lines. [32/25]", 54868638], + [163, 121, 22, "Layout/LineLength: Line is too long. [142/120]", 1367093088], + [166, 121, 18, "Layout/LineLength: Line is too long. [138/120]", 3881946477] + ], + "binary-merge.gemspec:3582270982": [ + [127, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 2821357214], + [142, 121, 50, "Layout/LineLength: Line is too long. [170/120]", 3888612416], + [143, 121, 29, "Layout/LineLength: Line is too long. [149/120]", 981994949], + [150, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 4229808912] + ], + "gemfiles/modular/benchmark/r4/v0.5.gemfile:3644720371": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/benchmark/vHEAD.gemfile:2838879269": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/cgi/r4/v0.5.gemfile:367169322": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/cgi/vHEAD.gemfile:2729540777": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/erb/r2/v3.0.gemfile:1688285565": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/erb/r3/v5.0.gemfile:2394062339": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/erb/r4/v5.0.gemfile:2394062339": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/erb/vHEAD.gemfile:981929959": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/mutex_m/r2/v0.3.gemfile:4055275004": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/mutex_m/r3/v0.3.gemfile:4055275004": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/mutex_m/r4/v0.3.gemfile:4055275004": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/mutex_m/vHEAD.gemfile:556854763": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/rspec.gemfile:2263543889": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/stringio/r2/v3.0.gemfile:821604304": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/stringio/r3/v3.0.gemfile:821604304": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/stringio/r4/v3.0.gemfile:821604304": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/stringio/vHEAD.gemfile:1045839691": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/webrick/r4/v1.9.gemfile:3092661193": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/webrick/vHEAD.gemfile:3867684682": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/x_std_libs.gemfile:2324400122": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/x_std_libs/r2/libs.gemfile:36276542": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] + ], + "gemfiles/modular/x_std_libs/r3/libs.gemfile:4030570297": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] + ], + "gemfiles/modular/x_std_libs/r4/libs.gemfile:732451732": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] + ], + "gemfiles/modular/x_std_libs/vHEAD.gemfile:2390363993": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] + ], + "lib/binary-merge.rb:631889281": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`binary-merge.rb`) should use snake_case.", 5381] + ], + "lib/binary/merge.rb:1312582900": [ + [9, 3, 12, "Style/Documentation: Missing top-level documentation comment for `module Binary::Merge`.", 2866359175] + ], + "spec/fixtures_integration_spec.rb:2634773556": [ + [3, 1, 1275, "Metrics/BlockLength: Block has too many lines. [27/25]", 3473144817] + ] +} diff --git a/gems/binary-merge/.simplecov b/gems/binary-merge/.simplecov index ddfbc1dd3..b52146834 100644 --- a/gems/binary-merge/.simplecov +++ b/gems/binary-merge/.simplecov @@ -10,5 +10,5 @@ # If the values for minimum coverage need to change, they should be changed both there, # and in 2 places in .github/workflows/coverage.yml. SimpleCov.configure do - cover "lib/**/*.rb", "lib/**/*.rake", "exe/*.rb" + cover 'lib/**/*.rb', 'lib/**/*.rake', 'exe/*.rb' end diff --git a/gems/binary-merge/Gemfile b/gems/binary-merge/Gemfile index fcea1cd79..cced02665 100644 --- a/gems/binary-merge/Gemfile +++ b/gems/binary-merge/Gemfile @@ -6,7 +6,7 @@ # kettle-jem will then preserve content between those markers across template runs. # kettle-jem:unfreeze -source "https://gem.coop" +source 'https://gem.coop' git_source(:codeberg) { |repo_name| "https://codeberg.org/#{repo_name}" } git_source(:gitlab) { |repo_name| "https://gitlab.com/#{repo_name}" } @@ -19,57 +19,53 @@ git_source(:gitlab) { |repo_name| "https://gitlab.com/#{repo_name}" } gemspec # Local workspace dependency wiring for *_local.gemfile overrides -nomono_requirements = ["~> 1.0", ">= 1.0.8"] -gem "nomono", *nomono_requirements, require: false # ruby >= 2.2 +nomono_requirements = ['~> 1.0', '>= 1.0.8'] +gem 'nomono', *nomono_requirements, require: false # ruby >= 2.2 # Direct sibling dependencies (env-switched via STRUCTUREDMERGE_DEV) direct_sibling_gems = %w[ tree_haver ] -direct_sibling_dev = ENV.fetch("STRUCTUREDMERGE_DEV", "") +direct_sibling_dev = ENV.fetch('STRUCTUREDMERGE_DEV', '') direct_sibling_local = !direct_sibling_dev.empty? && !%w[false 0 no off].include?(direct_sibling_dev.downcase) -direct_sibling_templating = ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? +direct_sibling_templating = ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero?) - direct_sibling_dev_was_set = ENV.key?("STRUCTUREDMERGE_DEV") - direct_sibling_dev_original = ENV.fetch("STRUCTUREDMERGE_DEV", nil) + (direct_sibling_local || + ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) + direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') + direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) begin nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path("Gemfile.lock", __dir__) + nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == "nomono" } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - if nomono_locked - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] - end - end - Kernel.send(:gem, "nomono", *nomono_activation_requirements) - require "nomono/bundler" - if direct_sibling_templating && !direct_sibling_local - ENV["STRUCTUREDMERGE_DEV"] = File.expand_path("..", __dir__) + Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked end + Kernel.send(:gem, 'nomono', *nomono_activation_requirements) + require 'nomono/bundler' + ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local eval_nomono_gems( gems: direct_sibling_gems, - prefix: "STRUCTUREDMERGE", - path_env: "STRUCTUREDMERGE_DEV", - root: ["src", "my", "structuredmerge"] + prefix: 'STRUCTUREDMERGE', + path_env: 'STRUCTUREDMERGE_DEV', + root: %w[src my structuredmerge] ) rescue LoadError - warn "Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies." + warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' ensure if direct_sibling_templating && !direct_sibling_local if direct_sibling_dev_was_set - ENV["STRUCTUREDMERGE_DEV"] = direct_sibling_dev_original + ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original else - ENV.delete("STRUCTUREDMERGE_DEV") + ENV.delete('STRUCTUREDMERGE_DEV') end end end @@ -156,28 +152,28 @@ if direct_sibling_gems.any? && end # Use released TSLP with the Ruby ABI platform-gem fix. -gem "tree_sitter_language_pack", "~> 1.13", ">= 1.13.3" +gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' # Templating (env-switched: STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local paths) -eval_gemfile "gemfiles/modular/templating.gemfile" if ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? +eval_gemfile 'gemfiles/modular/templating.gemfile' if ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? # Debugging -eval_gemfile "gemfiles/modular/debug.gemfile" +eval_gemfile 'gemfiles/modular/debug.gemfile' # Code Coverage (env-switched: KETTLE_DEV_DEV=true for local paths) -eval_gemfile "gemfiles/modular/coverage.gemfile" +eval_gemfile 'gemfiles/modular/coverage.gemfile' # Linting -eval_gemfile "gemfiles/modular/style.gemfile" +eval_gemfile 'gemfiles/modular/style.gemfile' # Documentation -eval_gemfile "gemfiles/modular/documentation.gemfile" +eval_gemfile 'gemfiles/modular/documentation.gemfile' # Optional -eval_gemfile "gemfiles/modular/optional.gemfile" +eval_gemfile 'gemfiles/modular/optional.gemfile' ### Std Lib Extracted Gems -eval_gemfile "gemfiles/modular/x_std_libs.gemfile" +eval_gemfile 'gemfiles/modular/x_std_libs.gemfile' # See unlocked_deps appraisal for more details on irb inclusion -gem "irb", "~> 1.17" # ruby >= 2.7 +gem 'irb', '~> 1.17' # ruby >= 2.7 diff --git a/gems/binary-merge/Gemfile.lock b/gems/binary-merge/Gemfile.lock index 908cdc716..547ff427a 100644 --- a/gems/binary-merge/Gemfile.lock +++ b/gems/binary-merge/Gemfile.lock @@ -6,7 +6,7 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/tree_haver specs: tree_haver (7.1.0) citrus (~> 3.0) @@ -95,7 +95,7 @@ GEM rdoc (>= 4.0.0) reline (>= 0.4.2) json (2.21.1) - kettle-dev (2.3.8) + kettle-dev (2.3.9) emoji_regex (>= 15.0) kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) @@ -474,7 +474,7 @@ CHECKSUMS io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 - kettle-dev (2.3.8) sha256=9d716ff21c660a730cb4e8d41e2e2f0630a28167a354b6e2924e242102aef72c + kettle-dev (2.3.9) kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f kettle-soup-cover (3.0.4) kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 diff --git a/gems/binary-merge/Rakefile b/gems/binary-merge/Rakefile index ea4ce831d..b29d3a04b 100644 --- a/gems/binary-merge/Rakefile +++ b/gems/binary-merge/Rakefile @@ -130,23 +130,23 @@ end ### DUPLICATE DRIFT TASKS begin - require "kettle/drift" + require 'kettle/drift' Kettle::Drift.install_tasks rescue LoadError - desc("(stub) kettle:drift:check is unavailable") - task("kettle:drift:check") do + desc('(stub) kettle:drift:check is unavailable') + task('kettle:drift:check') do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc("(stub) kettle:drift:update is unavailable") - task("kettle:drift:update") do + desc('(stub) kettle:drift:update is unavailable') + task('kettle:drift:update') do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc("(stub) kettle:drift:force_update is unavailable") - task("kettle:drift:force_update") do + desc('(stub) kettle:drift:force_update is unavailable') + task('kettle:drift:force_update') do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc("(stub) kettle:drift is unavailable") - task("kettle:drift" => "kettle:drift:update") + desc('(stub) kettle:drift is unavailable') + task('kettle:drift' => 'kettle:drift:update') end ### TEMPLATING TASKS diff --git a/gems/binary-merge/bin/yard b/gems/binary-merge/bin/yard index a7e8b6eed..5d516ad6f 100755 --- a/gems/binary-merge/bin/yard +++ b/gems/binary-merge/bin/yard @@ -12,4 +12,4 @@ # `yard` / `bin/yard`. Keep this binstub as a handoff to the task so # humans and tools that reach for `bin/yard` still run the full docs # workflow with post-processing hooks. -exec("bundle", "exec", "rake", "yard") +exec('bundle', 'exec', 'rake', 'yard') diff --git a/gems/binary-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile b/gems/binary-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile index dec650815..b8392fab0 100644 --- a/gems/binary-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile +++ b/gems/binary-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.1 -gem "benchmark", "~> 0.5", ">= 0.5.0" # Removed from Std Lib in Ruby 4.0 +gem 'benchmark', '~> 0.5', '>= 0.5.0' # Removed from Std Lib in Ruby 4.0 diff --git a/gems/binary-merge/gemfiles/modular/benchmark/vHEAD.gemfile b/gems/binary-merge/gemfiles/modular/benchmark/vHEAD.gemfile index e1eb20c5e..af214aafa 100644 --- a/gems/binary-merge/gemfiles/modular/benchmark/vHEAD.gemfile +++ b/gems/binary-merge/gemfiles/modular/benchmark/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.1 -gem "benchmark", github: "ruby/benchmark", branch: "master" +gem 'benchmark', github: 'ruby/benchmark', branch: 'master' diff --git a/gems/binary-merge/gemfiles/modular/cgi/r4/v0.5.gemfile b/gems/binary-merge/gemfiles/modular/cgi/r4/v0.5.gemfile index 19ed967c3..17ad97260 100644 --- a/gems/binary-merge/gemfiles/modular/cgi/r4/v0.5.gemfile +++ b/gems/binary-merge/gemfiles/modular/cgi/r4/v0.5.gemfile @@ -1 +1 @@ -gem "cgi", "~> 0.5" +gem 'cgi', '~> 0.5' diff --git a/gems/binary-merge/gemfiles/modular/cgi/vHEAD.gemfile b/gems/binary-merge/gemfiles/modular/cgi/vHEAD.gemfile index ef8b816ce..650fbf033 100644 --- a/gems/binary-merge/gemfiles/modular/cgi/vHEAD.gemfile +++ b/gems/binary-merge/gemfiles/modular/cgi/vHEAD.gemfile @@ -1 +1 @@ -gem "cgi", ">= 0.5" +gem 'cgi', '>= 0.5' diff --git a/gems/binary-merge/gemfiles/modular/coverage.gemfile b/gems/binary-merge/gemfiles/modular/coverage.gemfile index 52d737872..b93014b6b 100644 --- a/gems/binary-merge/gemfiles/modular/coverage.gemfile +++ b/gems/binary-merge/gemfiles/modular/coverage.gemfile @@ -4,11 +4,11 @@ # Set KETTLE_DEV_DEV=true for local development with path-based dependencies. # When false (default / CI), remote released gems are used. -if ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false").zero? +if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? # Coverage (remote/released) platform :mri do - gem "kettle-soup-cover", "~> 3.0", ">= 3.0.3", require: false + gem 'kettle-soup-cover', '~> 3.0', '>= 3.0.3', require: false end else - eval_gemfile "coverage_local.gemfile" + eval_gemfile 'coverage_local.gemfile' end diff --git a/gems/binary-merge/gemfiles/modular/coverage_local.gemfile b/gems/binary-merge/gemfiles/modular/coverage_local.gemfile index 9ae1a2f1a..c8874fd0f 100644 --- a/gems/binary-merge/gemfiles/modular/coverage_local.gemfile +++ b/gems/binary-merge/gemfiles/modular/coverage_local.gemfile @@ -11,21 +11,19 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] -nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) +nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] +nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == "nomono" } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - if nomono_locked - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] - end + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked end -Kernel.send(:gem, "nomono", *nomono_activation_requirements) -require "nomono/bundler" +Kernel.send(:gem, 'nomono', *nomono_activation_requirements) +require 'nomono/bundler' local_gems = %w[kettle-dev kettle-test kettle-soup-cover kettle-drift] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) @@ -35,21 +33,21 @@ local_gems_to_eval = local_gems - %w[binary-merge] - declared_gems platform :mri do eval_nomono_gems( gems: local_gems_to_eval, - prefix: "KETTLE_DEV", - path_env: "KETTLE_DEV_DEV", - vendored_gems_env: "VENDORED_GEMS", - vendor_gem_dir_env: "VENDOR_GEM_DIR", - debug_env: "KETTLE_DEV_DEBUG" + prefix: 'KETTLE_DEV', + path_env: 'KETTLE_DEV_DEV', + vendored_gems_env: 'VENDORED_GEMS', + vendor_gem_dir_env: 'VENDOR_GEM_DIR', + debug_env: 'KETTLE_DEV_DEBUG' ) - if ENV.fetch("GALTZO_FLOSS_DEV", "false").casecmp("false") != 0 + if ENV.fetch('GALTZO_FLOSS_DEV', 'false').casecmp('false') != 0 eval_nomono_gems( gems: %w[turbo_tests2], - prefix: "GALTZO_FLOSS", - path_env: "GALTZO_FLOSS_DEV", - vendored_gems_env: "GALTZO_FLOSS_VENDORED_GEMS", - vendor_gem_dir_env: "GALTZO_FLOSS_VENDOR_GEM_DIR", - debug_env: "GALTZO_FLOSS_DEBUG" + prefix: 'GALTZO_FLOSS', + path_env: 'GALTZO_FLOSS_DEV', + vendored_gems_env: 'GALTZO_FLOSS_VENDORED_GEMS', + vendor_gem_dir_env: 'GALTZO_FLOSS_VENDOR_GEM_DIR', + debug_env: 'GALTZO_FLOSS_DEBUG' ) end end diff --git a/gems/binary-merge/gemfiles/modular/debug.gemfile b/gems/binary-merge/gemfiles/modular/debug.gemfile index 4e15b1a3a..eed8d4d1e 100644 --- a/gems/binary-merge/gemfiles/modular/debug.gemfile +++ b/gems/binary-merge/gemfiles/modular/debug.gemfile @@ -13,10 +13,10 @@ platform :mri do # Debugging - Ensure ENV["DEBUG"] == "true" to use debuggers within spec suite # Use binding.break, binding.b, or debugger in code - gem "debug", ">= 1.1" # ruby >= 2.7 + gem 'debug', '>= 1.1' # ruby >= 2.7 # Dev Console - Binding.pry - Irb replacement # gem "pry", "~> 0.14" # ruby >= 2.0 end -gem "gem_bench", "~> 2.0", ">= 2.0.5" +gem 'gem_bench', '~> 2.0', '>= 2.0.5' diff --git a/gems/binary-merge/gemfiles/modular/documentation.gemfile b/gems/binary-merge/gemfiles/modular/documentation.gemfile index d8215416e..9d4535f12 100644 --- a/gems/binary-merge/gemfiles/modular/documentation.gemfile +++ b/gems/binary-merge/gemfiles/modular/documentation.gemfile @@ -7,20 +7,20 @@ # # Documentation -gem "kramdown", "~> 2.5", ">= 2.5.2", require: false # Ruby >= 2.5 -gem "kramdown-parser-gfm", "~> 1.1", require: false # Ruby >= 2.3 -gem "yaml-converter", "~> 0.2", ">= 0.2.3", require: false # Ruby >= 3.2 -gem "yard", "~> 0.9", ">= 0.9.45", require: false -gem "yard-junk", "~> 0.1", ">= 0.1.0", require: false # Ruby >= 3.1 -gem "yard-relative_markdown_links", "~> 0.6", require: false +gem 'kramdown', '~> 2.5', '>= 2.5.2', require: false # Ruby >= 2.5 +gem 'kramdown-parser-gfm', '~> 1.1', require: false # Ruby >= 2.3 +gem 'yaml-converter', '~> 0.2', '>= 0.2.3', require: false # Ruby >= 3.2 +gem 'yard', '~> 0.9', '>= 0.9.45', require: false +gem 'yard-junk', '~> 0.1', '>= 0.1.0', require: false # Ruby >= 3.1 +gem 'yard-relative_markdown_links', '~> 0.6', require: false -if ENV.fetch("GALTZO_FLOSS_DEV", "false").casecmp("false").zero? - gem "yard-fence", "~> 0.9", ">= 0.9.6", require: false # Ruby >= 3.2 - gem "yard-timekeeper", "~> 0.2", ">= 0.2.4", require: false - gem "yard-yaml", "~> 0.2", ">= 0.2.3", require: false +if ENV.fetch('GALTZO_FLOSS_DEV', 'false').casecmp('false').zero? + gem 'yard-fence', '~> 0.9', '>= 0.9.6', require: false # Ruby >= 3.2 + gem 'yard-timekeeper', '~> 0.2', '>= 0.2.4', require: false + gem 'yard-yaml', '~> 0.2', '>= 0.2.3', require: false else - eval_gemfile "documentation_local.gemfile" + eval_gemfile 'documentation_local.gemfile' end # Std Lib extractions -gem "rdoc", "~> 6.11", require: false unless ENV.fetch("KJ_FRAMEWORK_MATRIX_GEM", "") == "rdoc" +gem 'rdoc', '~> 6.11', require: false unless ENV.fetch('KJ_FRAMEWORK_MATRIX_GEM', '') == 'rdoc' diff --git a/gems/binary-merge/gemfiles/modular/documentation_local.gemfile b/gems/binary-merge/gemfiles/modular/documentation_local.gemfile index 2bfd78827..3ee4ecd47 100644 --- a/gems/binary-merge/gemfiles/modular/documentation_local.gemfile +++ b/gems/binary-merge/gemfiles/modular/documentation_local.gemfile @@ -11,21 +11,19 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] -nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) +nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] +nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == "nomono" } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - if nomono_locked - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] - end + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked end -Kernel.send(:gem, "nomono", *nomono_activation_requirements) -require "nomono/bundler" +Kernel.send(:gem, 'nomono', *nomono_activation_requirements) +require 'nomono/bundler' local_gems = %w[yard-fence yard-timekeeper yard-yaml] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) @@ -34,9 +32,9 @@ local_gems_to_eval = local_gems - %w[binary-merge] - declared_gems # export GALTZO_FLOSS_DEV=/path/to/galtzo-floss eval_nomono_gems( gems: local_gems_to_eval, - prefix: "GALTZO_FLOSS", - path_env: "GALTZO_FLOSS_DEV", - vendored_gems_env: "GALTZO_FLOSS_VENDORED_GEMS", - vendor_gem_dir_env: "GALTZO_FLOSS_VENDOR_GEM_DIR", - debug_env: "GALTZO_FLOSS_DEBUG" + prefix: 'GALTZO_FLOSS', + path_env: 'GALTZO_FLOSS_DEV', + vendored_gems_env: 'GALTZO_FLOSS_VENDORED_GEMS', + vendor_gem_dir_env: 'GALTZO_FLOSS_VENDOR_GEM_DIR', + debug_env: 'GALTZO_FLOSS_DEBUG' ) diff --git a/gems/binary-merge/gemfiles/modular/erb/r2/v3.0.gemfile b/gems/binary-merge/gemfiles/modular/erb/r2/v3.0.gemfile index c03bd8d85..7c83a239b 100644 --- a/gems/binary-merge/gemfiles/modular/erb/r2/v3.0.gemfile +++ b/gems/binary-merge/gemfiles/modular/erb/r2/v3.0.gemfile @@ -1 +1 @@ -gem "erb", "~> 3.0" # ruby >= 2.7.0 +gem 'erb', '~> 3.0' # ruby >= 2.7.0 diff --git a/gems/binary-merge/gemfiles/modular/erb/r3/v5.0.gemfile b/gems/binary-merge/gemfiles/modular/erb/r3/v5.0.gemfile index 1bd029cc1..ec7ff451f 100644 --- a/gems/binary-merge/gemfiles/modular/erb/r3/v5.0.gemfile +++ b/gems/binary-merge/gemfiles/modular/erb/r3/v5.0.gemfile @@ -1 +1 @@ -gem "erb", "~> 6.0", ">= 6.0.6" # ruby >= 3.2.0 +gem 'erb', '~> 6.0', '>= 6.0.6' # ruby >= 3.2.0 diff --git a/gems/binary-merge/gemfiles/modular/erb/r4/v5.0.gemfile b/gems/binary-merge/gemfiles/modular/erb/r4/v5.0.gemfile index 1bd029cc1..ec7ff451f 100644 --- a/gems/binary-merge/gemfiles/modular/erb/r4/v5.0.gemfile +++ b/gems/binary-merge/gemfiles/modular/erb/r4/v5.0.gemfile @@ -1 +1 @@ -gem "erb", "~> 6.0", ">= 6.0.6" # ruby >= 3.2.0 +gem 'erb', '~> 6.0', '>= 6.0.6' # ruby >= 3.2.0 diff --git a/gems/binary-merge/gemfiles/modular/erb/vHEAD.gemfile b/gems/binary-merge/gemfiles/modular/erb/vHEAD.gemfile index 48fee4218..ea0101185 100644 --- a/gems/binary-merge/gemfiles/modular/erb/vHEAD.gemfile +++ b/gems/binary-merge/gemfiles/modular/erb/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 3.2 -gem "erb", github: "ruby/erb", branch: "master" +gem 'erb', github: 'ruby/erb', branch: 'master' diff --git a/gems/binary-merge/gemfiles/modular/json/truffleruby_22_3.gemfile b/gems/binary-merge/gemfiles/modular/json/truffleruby_22_3.gemfile index b0e69ab11..9b2f8d96a 100644 --- a/gems/binary-merge/gemfiles/modular/json/truffleruby_22_3.gemfile +++ b/gems/binary-merge/gemfiles/modular/json/truffleruby_22_3.gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -if RUBY_ENGINE == "truffleruby" && RUBY_ENGINE_VERSION.start_with?("22.3") +if RUBY_ENGINE == 'truffleruby' && RUBY_ENGINE_VERSION.start_with?('22.3') # TruffleRuby 22.3 ships the json default gem from its emulated MRI Ruby. - gem "json", "= 2.5.1" + gem 'json', '= 2.5.1' end diff --git a/gems/binary-merge/gemfiles/modular/json/truffleruby_23_0.gemfile b/gems/binary-merge/gemfiles/modular/json/truffleruby_23_0.gemfile index 7b2660a2b..d787a5ef4 100644 --- a/gems/binary-merge/gemfiles/modular/json/truffleruby_23_0.gemfile +++ b/gems/binary-merge/gemfiles/modular/json/truffleruby_23_0.gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -if RUBY_ENGINE == "truffleruby" && RUBY_ENGINE_VERSION.start_with?("23.0") +if RUBY_ENGINE == 'truffleruby' && RUBY_ENGINE_VERSION.start_with?('23.0') # TruffleRuby 23.0 ships the json default gem from its emulated MRI Ruby. - gem "json", "= 2.6.1" + gem 'json', '= 2.6.1' end diff --git a/gems/binary-merge/gemfiles/modular/json/truffleruby_23_1.gemfile b/gems/binary-merge/gemfiles/modular/json/truffleruby_23_1.gemfile index dfa21f2e4..d78486b0e 100644 --- a/gems/binary-merge/gemfiles/modular/json/truffleruby_23_1.gemfile +++ b/gems/binary-merge/gemfiles/modular/json/truffleruby_23_1.gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -if RUBY_ENGINE == "truffleruby" && RUBY_ENGINE_VERSION.start_with?("23.1") +if RUBY_ENGINE == 'truffleruby' && RUBY_ENGINE_VERSION.start_with?('23.1') # TruffleRuby 23.1 ships the json default gem from its emulated MRI Ruby. - gem "json", "= 2.6.3" + gem 'json', '= 2.6.3' end diff --git a/gems/binary-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile b/gems/binary-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile index 42e9d9bd4..e27f1bbae 100644 --- a/gems/binary-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile +++ b/gems/binary-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 -gem "mutex_m", "~> 0.2" +gem 'mutex_m', '~> 0.2' diff --git a/gems/binary-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile b/gems/binary-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile index 42e9d9bd4..e27f1bbae 100644 --- a/gems/binary-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile +++ b/gems/binary-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 -gem "mutex_m", "~> 0.2" +gem 'mutex_m', '~> 0.2' diff --git a/gems/binary-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile b/gems/binary-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile index 42e9d9bd4..e27f1bbae 100644 --- a/gems/binary-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile +++ b/gems/binary-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 -gem "mutex_m", "~> 0.2" +gem 'mutex_m', '~> 0.2' diff --git a/gems/binary-merge/gemfiles/modular/mutex_m/vHEAD.gemfile b/gems/binary-merge/gemfiles/modular/mutex_m/vHEAD.gemfile index 8af3b6fca..9dac2f6cb 100644 --- a/gems/binary-merge/gemfiles/modular/mutex_m/vHEAD.gemfile +++ b/gems/binary-merge/gemfiles/modular/mutex_m/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 (dependency of omniauth) -gem "mutex_m", github: "ruby/mutex_m", branch: "master" +gem 'mutex_m', github: 'ruby/mutex_m', branch: 'master' diff --git a/gems/binary-merge/gemfiles/modular/optional.gemfile b/gems/binary-merge/gemfiles/modular/optional.gemfile index 80bc45196..9ea429538 100644 --- a/gems/binary-merge/gemfiles/modular/optional.gemfile +++ b/gems/binary-merge/gemfiles/modular/optional.gemfile @@ -9,8 +9,8 @@ # Optional dependencies are not depended on directly, but may be used if present. # Required for curated binstubs generated by kettle-jem install -gem "rbs", ">= 3.0", require: false # ruby >= 3.1 +gem 'rbs', '>= 3.0', require: false # ruby >= 3.1 # Required for kettle-pre-release # URL parsing with Unicode support (falls back to URI if not available) -gem "addressable", ">= 2.8", "< 3" # ruby >= 2.2 +gem 'addressable', '>= 2.8', '< 3' # ruby >= 2.2 diff --git a/gems/binary-merge/gemfiles/modular/rspec.gemfile b/gems/binary-merge/gemfiles/modular/rspec.gemfile index 72fdf8b7f..2af210a41 100644 --- a/gems/binary-merge/gemfiles/modular/rspec.gemfile +++ b/gems/binary-merge/gemfiles/modular/rspec.gemfile @@ -1,4 +1,4 @@ -gem "rspec_junit_formatter", - github: "pboling/rspec_junit_formatter", - branch: "main", - ref: "9e6bcaaedd49477b62878ed568dc4ada5cc7cb5e" +gem 'rspec_junit_formatter', + github: 'pboling/rspec_junit_formatter', + branch: 'main', + ref: '9e6bcaaedd49477b62878ed568dc4ada5cc7cb5e' diff --git a/gems/binary-merge/gemfiles/modular/runtime_heads.gemfile b/gems/binary-merge/gemfiles/modular/runtime_heads.gemfile index 02f134c7f..ebf17c529 100644 --- a/gems/binary-merge/gemfiles/modular/runtime_heads.gemfile +++ b/gems/binary-merge/gemfiles/modular/runtime_heads.gemfile @@ -8,4 +8,4 @@ # Test against HEAD of runtime dependencies so we can proactively file bugs -eval_gemfile("x_std_libs/vHEAD.gemfile") +eval_gemfile('x_std_libs/vHEAD.gemfile') diff --git a/gems/binary-merge/gemfiles/modular/stringio/r2/v3.0.gemfile b/gems/binary-merge/gemfiles/modular/stringio/r2/v3.0.gemfile index e85bb18ee..3616f4e3a 100644 --- a/gems/binary-merge/gemfiles/modular/stringio/r2/v3.0.gemfile +++ b/gems/binary-merge/gemfiles/modular/stringio/r2/v3.0.gemfile @@ -2,4 +2,4 @@ # NOT SEMVER # Version 3.0.7 dropped support for Ruby <= 2.7 # Version 3.0.0 dropped support for Ruby <= 2.4 -gem "stringio", ">= 3.0" +gem 'stringio', '>= 3.0' diff --git a/gems/binary-merge/gemfiles/modular/stringio/r3/v3.0.gemfile b/gems/binary-merge/gemfiles/modular/stringio/r3/v3.0.gemfile index e85bb18ee..3616f4e3a 100644 --- a/gems/binary-merge/gemfiles/modular/stringio/r3/v3.0.gemfile +++ b/gems/binary-merge/gemfiles/modular/stringio/r3/v3.0.gemfile @@ -2,4 +2,4 @@ # NOT SEMVER # Version 3.0.7 dropped support for Ruby <= 2.7 # Version 3.0.0 dropped support for Ruby <= 2.4 -gem "stringio", ">= 3.0" +gem 'stringio', '>= 3.0' diff --git a/gems/binary-merge/gemfiles/modular/stringio/r4/v3.0.gemfile b/gems/binary-merge/gemfiles/modular/stringio/r4/v3.0.gemfile index e85bb18ee..3616f4e3a 100644 --- a/gems/binary-merge/gemfiles/modular/stringio/r4/v3.0.gemfile +++ b/gems/binary-merge/gemfiles/modular/stringio/r4/v3.0.gemfile @@ -2,4 +2,4 @@ # NOT SEMVER # Version 3.0.7 dropped support for Ruby <= 2.7 # Version 3.0.0 dropped support for Ruby <= 2.4 -gem "stringio", ">= 3.0" +gem 'stringio', '>= 3.0' diff --git a/gems/binary-merge/gemfiles/modular/stringio/vHEAD.gemfile b/gems/binary-merge/gemfiles/modular/stringio/vHEAD.gemfile index 5f2a74126..78f5f5d8a 100644 --- a/gems/binary-merge/gemfiles/modular/stringio/vHEAD.gemfile +++ b/gems/binary-merge/gemfiles/modular/stringio/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 (dependency of omniauth) -gem "stringio", github: "ruby/stringio", branch: "master" +gem 'stringio', github: 'ruby/stringio', branch: 'master' diff --git a/gems/binary-merge/gemfiles/modular/style.gemfile b/gems/binary-merge/gemfiles/modular/style.gemfile index 35de4dcd6..4dbcc02c0 100644 --- a/gems/binary-merge/gemfiles/modular/style.gemfile +++ b/gems/binary-merge/gemfiles/modular/style.gemfile @@ -9,23 +9,23 @@ # Style tasks run on the latest Ruby; RuboCop-LTS selects the compatibility # rules for the configured Ruby floor independently from task dependency floors. -gem "reek", "~> 6.5", ">= 6.5.0" +gem 'reek', '~> 6.5', '>= 6.5.0' platform :mri do - gem "appraisal2-rubocop", "~> 1.0", ">= 1.0.0", require: false - gem "rubocop-gradual", "~> 0.4", ">= 0.4.0" - gem "rubocop-minitest", "~> 0.40", ">= 0.40.0" - gem "rubocop-on-rbs", "~> 2.0", ">= 2.0.0" # ruby >= 3.2.0 + gem 'appraisal2-rubocop', '~> 1.0', '>= 1.0.0', require: false + gem 'rubocop-gradual', '~> 0.4', '>= 0.4.0' + gem 'rubocop-minitest', '~> 0.40', '>= 0.40.0' + gem 'rubocop-on-rbs', '~> 2.0', '>= 2.0.0' # ruby >= 3.2.0 # gem "rubocop", "~> 1.73", ">= 1.73.2" # constrained by standard - gem "rubocop-packaging", "~> 0.6", ">= 0.6.0" - gem "standard", "~> 1.56", ">= 1.56.0" + gem 'rubocop-packaging', '~> 0.6', '>= 0.6.0' + gem 'standard', '~> 1.56', '>= 1.56.0' - if ENV.fetch("RUBOCOP_LTS_LOCAL", "false").casecmp("false").zero? + if ENV.fetch('RUBOCOP_LTS_LOCAL', 'false').casecmp('false').zero? declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) - gem "rubocop-lts", "~> 24.2", ">= 24.2.1" unless declared_gems.include?("rubocop-lts") - gem "rubocop-lts-rspec", "~> 1.0", ">= 1.0.5" unless declared_gems.include?("rubocop-lts-rspec") - gem "rubocop-ruby3_2", "~> 3.0", ">= 3.0.6" unless declared_gems.include?("rubocop-ruby3_2") + gem 'rubocop-lts', '~> 24.2', '>= 24.2.1' unless declared_gems.include?('rubocop-lts') + gem 'rubocop-lts-rspec', '~> 1.0', '>= 1.0.5' unless declared_gems.include?('rubocop-lts-rspec') + gem 'rubocop-ruby3_2', '~> 3.0', '>= 3.0.6' unless declared_gems.include?('rubocop-ruby3_2') else - eval_gemfile("style_local.gemfile") + eval_gemfile('style_local.gemfile') end end diff --git a/gems/binary-merge/gemfiles/modular/style_local.gemfile b/gems/binary-merge/gemfiles/modular/style_local.gemfile index 058d466e8..3f95e6d26 100644 --- a/gems/binary-merge/gemfiles/modular/style_local.gemfile +++ b/gems/binary-merge/gemfiles/modular/style_local.gemfile @@ -14,21 +14,19 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] -nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) +nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] +nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == "nomono" } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - if nomono_locked - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] - end + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked end -Kernel.send(:gem, "nomono", *nomono_activation_requirements) -require "nomono/bundler" +Kernel.send(:gem, 'nomono', *nomono_activation_requirements) +require 'nomono/bundler' local_gems = %w[rubocop-lts rubocop-lts-rspec rubocop-ruby3_2 standard-rubocop-lts] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) @@ -38,11 +36,11 @@ local_gems_to_eval = local_gems - %w[binary-merge] - declared_gems platform :mri do eval_nomono_gems( gems: local_gems_to_eval, - prefix: "RUBOCOP_LTS", - path_env: "RUBOCOP_LTS_LOCAL", - vendored_gems_env: "VENDORED_GEMS", - vendor_gem_dir_env: "VENDOR_GEM_DIR", - debug_env: "RUBOCOP_LTS_DEBUG", - root: ["src", "rubocop-lts"] + prefix: 'RUBOCOP_LTS', + path_env: 'RUBOCOP_LTS_LOCAL', + vendored_gems_env: 'VENDORED_GEMS', + vendor_gem_dir_env: 'VENDOR_GEM_DIR', + debug_env: 'RUBOCOP_LTS_DEBUG', + root: %w[src rubocop-lts] ) end diff --git a/gems/binary-merge/gemfiles/modular/templating.gemfile b/gems/binary-merge/gemfiles/modular/templating.gemfile index 47138ffbb..a672de184 100644 --- a/gems/binary-merge/gemfiles/modular/templating.gemfile +++ b/gems/binary-merge/gemfiles/modular/templating.gemfile @@ -1,18 +1,18 @@ # frozen_string_literal: true -structuredmerge_remote = ENV.fetch("STRUCTUREDMERGE_DEV", "false").casecmp("false").zero? -kettle_remote = ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false").zero? +structuredmerge_remote = ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false').zero? +kettle_remote = ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? if structuredmerge_remote # Parser dependencies for released installs. - gem "tree_sitter_language_pack", "~> 1.13", ">= 1.13.3" + gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' # Merge recipes for released installs. - gem "kettle-jem", ">= 7.0" + gem 'kettle-jem', '>= 7.0' end if kettle_remote # Template/plugin checks for released installs. - gem "kettle-drift", "~> 1.0", ">= 1.0.6", require: false + gem 'kettle-drift', '~> 1.0', '>= 1.0.6', require: false end # Set STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local development with path-based dependencies. @@ -21,4 +21,4 @@ end # # Set KETTLE_DEV_DEV=/path/to/my for local development with Kettle plugin gems. # When false (default / CI), released Kettle plugin gems are used. -eval_gemfile "templating_local.gemfile" unless structuredmerge_remote && kettle_remote +eval_gemfile 'templating_local.gemfile' unless structuredmerge_remote && kettle_remote diff --git a/gems/binary-merge/gemfiles/modular/templating_local.gemfile b/gems/binary-merge/gemfiles/modular/templating_local.gemfile index edfaddb6a..d61b5694f 100644 --- a/gems/binary-merge/gemfiles/modular/templating_local.gemfile +++ b/gems/binary-merge/gemfiles/modular/templating_local.gemfile @@ -12,21 +12,19 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] -nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) +nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] +nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == "nomono" } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - if nomono_locked - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] - end + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked end -Kernel.send(:gem, "nomono", *nomono_activation_requirements) -require "nomono/bundler" +Kernel.send(:gem, 'nomono', *nomono_activation_requirements) +require 'nomono/bundler' structuredmerge_local_gems = %w[ tree_haver @@ -69,25 +67,25 @@ structuredmerge_local_gems_to_eval = structuredmerge_local_gems - %w[binary-merg kettle_dev_local_gems_to_eval = kettle_dev_local_gems - %w[binary-merge] - declared_gems platform :mri do - if ENV.fetch("STRUCTUREDMERGE_DEV", "false").casecmp("false") != 0 + if ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false') != 0 eval_nomono_gems( gems: structuredmerge_local_gems_to_eval, - prefix: "STRUCTUREDMERGE", - path_env: "STRUCTUREDMERGE_DEV", - vendored_gems_env: "VENDORED_GEMS", - vendor_gem_dir_env: "VENDOR_GEM_DIR", - debug_env: "STRUCTUREDMERGE_DEBUG" + prefix: 'STRUCTUREDMERGE', + path_env: 'STRUCTUREDMERGE_DEV', + vendored_gems_env: 'VENDORED_GEMS', + vendor_gem_dir_env: 'VENDOR_GEM_DIR', + debug_env: 'STRUCTUREDMERGE_DEBUG' ) end - if ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false") != 0 + if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false') != 0 eval_nomono_gems( gems: kettle_dev_local_gems_to_eval, - prefix: "KETTLE_DEV", - path_env: "KETTLE_DEV_DEV", - vendored_gems_env: "VENDORED_GEMS", - vendor_gem_dir_env: "VENDOR_GEM_DIR", - debug_env: "KETTLE_DEV_DEBUG" + prefix: 'KETTLE_DEV', + path_env: 'KETTLE_DEV_DEV', + vendored_gems_env: 'VENDORED_GEMS', + vendor_gem_dir_env: 'VENDOR_GEM_DIR', + debug_env: 'KETTLE_DEV_DEBUG' ) end end diff --git a/gems/binary-merge/gemfiles/modular/webrick/r4/v1.9.gemfile b/gems/binary-merge/gemfiles/modular/webrick/r4/v1.9.gemfile index eaab4a473..b1329ba84 100644 --- a/gems/binary-merge/gemfiles/modular/webrick/r4/v1.9.gemfile +++ b/gems/binary-merge/gemfiles/modular/webrick/r4/v1.9.gemfile @@ -1 +1 @@ -gem "webrick", "~> 1.9" +gem 'webrick', '~> 1.9' diff --git a/gems/binary-merge/gemfiles/modular/webrick/vHEAD.gemfile b/gems/binary-merge/gemfiles/modular/webrick/vHEAD.gemfile index 8a789b634..c7e6f81a1 100644 --- a/gems/binary-merge/gemfiles/modular/webrick/vHEAD.gemfile +++ b/gems/binary-merge/gemfiles/modular/webrick/vHEAD.gemfile @@ -1 +1 @@ -gem "webrick", ">= 1.9" +gem 'webrick', '>= 1.9' diff --git a/gems/binary-merge/gemfiles/modular/x_std_libs.gemfile b/gems/binary-merge/gemfiles/modular/x_std_libs.gemfile index 77aad43f2..b1f43c097 100644 --- a/gems/binary-merge/gemfiles/modular/x_std_libs.gemfile +++ b/gems/binary-merge/gemfiles/modular/x_std_libs.gemfile @@ -1,12 +1,12 @@ ### Std Lib Extracted Gems ruby_version = Gem::Version.new(RUBY_VERSION) -if ruby_version >= Gem::Version.new("4.0") - eval_gemfile "x_std_libs/r4/libs.gemfile" -elsif ruby_version >= Gem::Version.new("3.2") - eval_gemfile "x_std_libs/r3/libs.gemfile" -elsif ruby_version >= Gem::Version.new("3.1") - eval_gemfile "x_std_libs/r3.1/libs.gemfile" +if ruby_version >= Gem::Version.new('4.0') + eval_gemfile 'x_std_libs/r4/libs.gemfile' +elsif ruby_version >= Gem::Version.new('3.2') + eval_gemfile 'x_std_libs/r3/libs.gemfile' +elsif ruby_version >= Gem::Version.new('3.1') + eval_gemfile 'x_std_libs/r3.1/libs.gemfile' else - eval_gemfile "x_std_libs/r2/libs.gemfile" + eval_gemfile 'x_std_libs/r2/libs.gemfile' end diff --git a/gems/binary-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile b/gems/binary-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile index 441c4f03a..16a5e3d70 100644 --- a/gems/binary-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile +++ b/gems/binary-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile @@ -1,3 +1,3 @@ -eval_gemfile "../../erb/r2/v3.0.gemfile" -eval_gemfile "../../mutex_m/r2/v0.3.gemfile" -eval_gemfile "../../stringio/r2/v3.0.gemfile" +eval_gemfile '../../erb/r2/v3.0.gemfile' +eval_gemfile '../../mutex_m/r2/v0.3.gemfile' +eval_gemfile '../../stringio/r2/v3.0.gemfile' diff --git a/gems/binary-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile b/gems/binary-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile index c293a3ddd..220ff95c1 100644 --- a/gems/binary-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile +++ b/gems/binary-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile @@ -1,3 +1,3 @@ -eval_gemfile "../../erb/r3/v5.0.gemfile" -eval_gemfile "../../mutex_m/r3/v0.3.gemfile" -eval_gemfile "../../stringio/r3/v3.0.gemfile" +eval_gemfile '../../erb/r3/v5.0.gemfile' +eval_gemfile '../../mutex_m/r3/v0.3.gemfile' +eval_gemfile '../../stringio/r3/v3.0.gemfile' diff --git a/gems/binary-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile b/gems/binary-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile index eb5574247..e2f6501eb 100644 --- a/gems/binary-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile +++ b/gems/binary-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile @@ -1,6 +1,6 @@ -eval_gemfile "../../erb/r4/v5.0.gemfile" -eval_gemfile "../../mutex_m/r4/v0.3.gemfile" -eval_gemfile "../../stringio/r4/v3.0.gemfile" -eval_gemfile "../../benchmark/r4/v0.5.gemfile" -eval_gemfile "../../cgi/r4/v0.5.gemfile" -eval_gemfile "../../webrick/r4/v1.9.gemfile" +eval_gemfile '../../erb/r4/v5.0.gemfile' +eval_gemfile '../../mutex_m/r4/v0.3.gemfile' +eval_gemfile '../../stringio/r4/v3.0.gemfile' +eval_gemfile '../../benchmark/r4/v0.5.gemfile' +eval_gemfile '../../cgi/r4/v0.5.gemfile' +eval_gemfile '../../webrick/r4/v1.9.gemfile' diff --git a/gems/binary-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile b/gems/binary-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile index d4d5b16c9..ab75cccf1 100644 --- a/gems/binary-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile +++ b/gems/binary-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile @@ -1,6 +1,6 @@ -eval_gemfile "../erb/vHEAD.gemfile" -eval_gemfile "../mutex_m/vHEAD.gemfile" -eval_gemfile "../stringio/vHEAD.gemfile" -eval_gemfile "../benchmark/vHEAD.gemfile" -eval_gemfile "../cgi/vHEAD.gemfile" -eval_gemfile "../webrick/vHEAD.gemfile" +eval_gemfile '../erb/vHEAD.gemfile' +eval_gemfile '../mutex_m/vHEAD.gemfile' +eval_gemfile '../stringio/vHEAD.gemfile' +eval_gemfile '../benchmark/vHEAD.gemfile' +eval_gemfile '../cgi/vHEAD.gemfile' +eval_gemfile '../webrick/vHEAD.gemfile' diff --git a/gems/binary-merge/lib/binary/merge/version.rb b/gems/binary-merge/lib/binary/merge/version.rb index bb78df888..d8ae92dfa 100644 --- a/gems/binary-merge/lib/binary/merge/version.rb +++ b/gems/binary-merge/lib/binary/merge/version.rb @@ -3,7 +3,7 @@ module Binary module Merge module Version - VERSION = "7.1.0" + VERSION = '7.1.0' end VERSION = Version::VERSION # Traditional Constant Location end diff --git a/gems/binary-merge/spec/spec_helper.rb b/gems/binary-merge/spec/spec_helper.rb index 11e029d25..1fa393208 100644 --- a/gems/binary-merge/spec/spec_helper.rb +++ b/gems/binary-merge/spec/spec_helper.rb @@ -7,16 +7,16 @@ # NOTE: Gemfiles for non-coverage appraisals may not have kettle-soup-cover. # The rescue LoadError handles that scenario. begin - require "kettle-soup-cover" + require 'kettle-soup-cover' if Kettle::Soup::Cover::DO_COV # Requiring simplecov loads the project-local `.simplecov`. - require "simplecov" - require "kettle/soup/cover/config" + require 'simplecov' + require 'kettle/soup/cover/config' SimpleCov.start end -rescue LoadError => error +rescue LoadError => e # check the error message and re-raise when unexpected - raise error unless error.message.include?("kettle") + raise e unless e.message.include?('kettle') end # External RSpec & related config diff --git a/gems/zip-merge/Gemfile.lock b/gems/zip-merge/Gemfile.lock index 50a19270d..1c084a06a 100644 --- a/gems/zip-merge/Gemfile.lock +++ b/gems/zip-merge/Gemfile.lock @@ -5,242 +5,6 @@ PATH tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly - specs: - ast-crispr-markdown-markly (7.1.0) - ast-crispr (= 7.1.0) - markly-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism - specs: - ast-crispr-ruby-prism (7.1.0) - ast-crispr (= 7.1.0) - prism-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr - specs: - ast-crispr (7.1.0) - ast-merge (= 7.1.0) - service_actor (~> 3.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git - specs: - ast-merge-git (7.1.0) - ast-merge (= 7.1.0) - json-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge - specs: - ast-merge (7.1.0) - benchmark - token-resolver (~> 2.0, >= 2.0.4) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template - specs: - ast-template (7.1.0) - ast-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge - specs: - bash-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge - specs: - binary-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge - specs: - citrus-toml-merge (7.1.0) - toml-merge (= 7.1.0) - toml-rb (~> 4.1) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge - specs: - commonmarker-merge (7.1.0) - commonmarker (~> 2.2) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge - specs: - dotenv-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge - specs: - go-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge - specs: - json-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem - specs: - kettle-jem (7.1.0) - addressable (>= 2.8, < 3) - ast-crispr-markdown-markly (= 7.1.0) - ast-crispr-ruby-prism (= 7.1.0) - ast-merge (= 7.1.0) - bash-merge (= 7.1.0) - citrus-toml-merge (= 7.1.0) - commonmarker-merge (= 7.1.0) - dotenv-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-dev (~> 2.3, >= 2.3.5) - kettle-rb (~> 0.1, >= 0.1.4) - kramdown-merge (= 7.1.0) - markdown-merge (= 7.1.0) - markly-merge (= 7.1.0) - prism-merge (= 7.1.0) - psych-merge (= 7.1.0) - rbs (>= 3.10) - rbs-merge (= 7.1.0) - ruby-merge (= 7.1.0) - token-resolver (~> 2.0, >= 2.0.4) - toml-merge (= 7.1.0) - toml-rb (~> 4.2) - tree_haver (= 7.1.0) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge - specs: - kramdown-merge (7.1.0) - kramdown (~> 2.5) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge - specs: - markdown-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge - specs: - markly-merge (7.1.0) - markdown-merge (= 7.1.0) - markly (~> 0.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge - specs: - parslet-toml-merge (7.1.0) - toml (~> 0.3) - toml-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge - specs: - plain-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge - specs: - prism-merge (7.1.0) - prism (~> 1.6) - ruby-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge - specs: - psych-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge - specs: - rbs-merge (7.1.0) - ast-merge (= 7.1.0) - rbs (>= 3.10) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge - specs: - ruby-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge - specs: - rust-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb - specs: - smorg-rb (7.1.0) - ast-merge (= 7.1.0) - ast-merge-git (= 7.1.0) - diff-lcs (~> 1.5) - go-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-jem (= 7.1.0) - markly-merge (= 7.1.0) - plain-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge - specs: - toml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - PATH remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver specs: @@ -250,22 +14,6 @@ PATH tree_sitter_language_pack (>= 1.13.2, < 2.0) version_gem (~> 1.1, >= 1.1.9) -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge - specs: - typescript-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge - specs: - yaml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - GEM remote: https://gem.coop/ specs: @@ -290,7 +38,6 @@ GEM cgi (0.5.2) citrus (3.0.2) cmdparse (3.0.7) - commonmarker (2.9.0-x86_64-linux) concurrent-ruby (1.3.8) date (3.5.1) debug (1.11.1) @@ -353,8 +100,6 @@ GEM kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) - kettle-drift (1.0.6) - version_gem (~> 1.1, >= 1.1.14) kettle-rb (0.1.5) kettle-soup-cover (3.0.4) kettle-wash (~> 0.1, >= 0.1.0) @@ -383,7 +128,6 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) - markly (0.16.0) mutex_m (0.3.0) nokogiri (1.19.4-aarch64-linux-gnu) racc (~> 1.4) @@ -546,8 +290,6 @@ GEM ruby-progressbar (1.13.0) ruby_engine (2.0.3) ruby_version (1.0.3) - service_actor (3.9.4) - zeitwerk (>= 1.0) silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) @@ -599,14 +341,6 @@ GEM delegate (~> 0.1) rspec (~> 3.0) timecop (>= 0.7, < 1) - token-resolver (2.0.5) - parslet (~> 2.0) - version_gem (~> 1.1, >= 1.1.14) - toml (0.3.0) - parslet (>= 1.8.0, < 3.0.0) - toml-rb (4.2.0) - citrus (~> 3.0, > 3.0) - racc (~> 1.7) tree_sitter_language_pack (1.13.3-aarch64-linux) sorbet-runtime (~> 0.5) tree_sitter_language_pack (1.13.3-arm64-darwin) @@ -661,46 +395,23 @@ DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) appraisal2-rubocop (~> 1.0, >= 1.0.0) - ast-crispr! - ast-crispr-markdown-markly! - ast-crispr-ruby-prism! - ast-merge! - ast-merge-git! - ast-template! - bash-merge! benchmark (~> 0.5, >= 0.5.0) - binary-merge! bundler-audit (~> 0.9.3) cgi (~> 0.5) - citrus-toml-merge! - commonmarker-merge! debug (>= 1.1) - dotenv-merge! erb (~> 6.0, >= 6.0.6) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.0) - go-merge! irb (~> 1.17) - json-merge! kettle-dev (~> 2.0, >= 2.2.25) - kettle-drift (~> 1.0, >= 1.0.6) - kettle-jem! kettle-soup-cover (~> 3.0, >= 3.0.3) kettle-test (~> 2.0, >= 2.0.9) kramdown (~> 2.5, >= 2.5.2) - kramdown-merge! kramdown-parser-gfm (~> 1.1) - markdown-merge! - markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) - parslet-toml-merge! - plain-merge! - prism-merge! - psych-merge! rake (~> 13.0) rbs (>= 3.0) - rbs-merge! rdoc (~> 6.11) reek (~> 6.5, >= 6.5.0) require_bench (~> 1.0, >= 1.0.4) @@ -711,20 +422,14 @@ DEPENDENCIES rubocop-on-rbs (~> 2.0, >= 2.0.0) rubocop-packaging (~> 0.6, >= 0.6.0) rubocop-ruby3_2 (~> 3.0, >= 3.0.6) - ruby-merge! ruby-progressbar (~> 1.13) - rust-merge! - smorg-rb! standard (~> 1.56, >= 1.56.0) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) - toml-merge! tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) - typescript-merge! webrick (~> 1.9) yaml-converter (~> 0.2, >= 0.2.3) - yaml-merge! yard (~> 0.9, >= 0.9.45) yard-fence (~> 0.9, >= 0.9.6) yard-junk (~> 0.1, >= 0.1.0) @@ -739,31 +444,19 @@ CHECKSUMS appraisal2 (3.2.0) sha256=ccd0b767ac4060cd7af6d16747459b6990f49c39c7b4fb1f7d1146b1e97c492f appraisal2-rubocop (1.0.0) sha256=b71410fbb014befda5340605a605b7f6f3f012739baf0acc5b4351b592c3258d ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 - ast-crispr (7.1.0) - ast-crispr-markdown-markly (7.1.0) - ast-crispr-ruby-prism (7.1.0) - ast-merge (7.1.0) - ast-merge-git (7.1.0) - ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 - bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd - binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 - citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 - commonmarker (2.9.0-x86_64-linux) - commonmarker-merge (7.1.0) concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 - dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -776,28 +469,20 @@ CHECKSUMS gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f - go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 - json-merge (7.1.0) kettle-dev (2.3.8) sha256=9d716ff21c660a730cb4e8d41e2e2f0630a28167a354b6e2924e242102aef72c - kettle-drift (1.0.6) - kettle-jem (7.1.0) kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f kettle-soup-cover (3.0.4) kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa - kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 - markdown-merge (7.1.0) - markly (0.16.0) - markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-aarch64-linux-gnu) sha256=1269fb644a6de405057a53dd5c762b1209b43ca7424f839454d3dbc677c31a8f nokogiri (1.19.4-aarch64-linux-musl) sha256=35c65b9ce72b3bb03207bdbe7067915019dc18c1b9b59139684bd6690fdd01af @@ -811,20 +496,15 @@ CHECKSUMS parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 - parslet-toml-merge (7.1.0) - plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 - prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 - psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 - rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb @@ -859,19 +539,15 @@ CHECKSUMS rubocop-rspec_rails (2.32.0) sha256=4a0d641c72f6ebb957534f539d9d0a62c47abd8ce0d0aeee1ef4701e892a9100 rubocop-ruby3_2 (3.0.7) sha256=f53dd6d286fb05186214fc6ec116783e7f837030918e8931c05de773e98f8466 rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 - ruby-merge (7.1.0) ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 - rust-merge (7.1.0) - service_actor (3.9.4) silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed - smorg-rb (7.1.0) sorbet-runtime (0.6.13351) sha256=f8fee17c6e3edf835dc6823d26afb9a7c8969c6710d1fabe2fb43f4e0c15c64f standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b @@ -885,23 +561,17 @@ CHECKSUMS thor (1.5.0) sha256=e3a9e55fe857e44859ce104a84675ab6e8cd59c650a49106a05f55f136425e73 timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 - token-resolver (2.0.5) - toml (0.3.0) - toml-merge (7.1.0) - toml-rb (4.2.0) tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-aarch64-linux) sha256=55ffc7c87868cb45658338363d9eba51b4a8b0259aa88e4de368d2bd1d52fea4 tree_sitter_language_pack (1.13.3-arm64-darwin) sha256=bc2498db605f212a1dbd2465ed3f65190d7da786f6ed5d30fcf958121aeb4a5c tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 - typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 webrick (1.9.2) sha256=beb4a15fc474defed24a3bda4ffd88a490d517c9e4e6118c3edce59e45864131 yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 - yaml-merge (7.1.0) yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd diff --git a/gems/zip-merge/bin/yard b/gems/zip-merge/bin/yard index 5d516ad6f..a7e8b6eed 100755 --- a/gems/zip-merge/bin/yard +++ b/gems/zip-merge/bin/yard @@ -12,4 +12,4 @@ # `yard` / `bin/yard`. Keep this binstub as a handoff to the task so # humans and tools that reach for `bin/yard` still run the full docs # workflow with post-processing hooks. -exec('bundle', 'exec', 'rake', 'yard') +exec("bundle", "exec", "rake", "yard") From 259b062e99082f48ea1f754e4812825069154d02 Mon Sep 17 00:00:00 2001 From: "Peter H. Boling" Date: Tue, 21 Jul 2026 18:05:06 -0600 Subject: [PATCH 168/188] =?UTF-8?q?=F0=9F=8E=A8=20Template=20bootstrap=20b?= =?UTF-8?q?y=20kettle-jem=20v7.1.0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gems/binary-merge/Gemfile.lock | 340 ++++++++++++++++- gems/citrus-toml-merge/Gemfile | 72 +++- gems/citrus-toml-merge/Gemfile.lock | 343 ++++++++++++++++- gems/citrus-toml-merge/Rakefile | 18 +- .../gemfiles/modular/templating.gemfile | 12 +- .../gemfiles/modular/templating_local.gemfile | 44 +-- .../lib/citrus/toml/merge/version.rb | 2 +- gems/parslet-toml-merge/Gemfile.lock | 344 +++++++++++++++++- gems/zip-merge/.rubocop_gradual.lock | 2 +- gems/zip-merge/.simplecov | 2 +- gems/zip-merge/Gemfile | 70 ++-- gems/zip-merge/Gemfile.lock | 6 +- gems/zip-merge/Rakefile | 18 +- gems/zip-merge/bin/yard | 2 +- .../modular/benchmark/r4/v0.5.gemfile | 2 +- .../gemfiles/modular/benchmark/vHEAD.gemfile | 2 +- .../gemfiles/modular/cgi/r4/v0.5.gemfile | 2 +- .../gemfiles/modular/cgi/vHEAD.gemfile | 2 +- .../gemfiles/modular/coverage.gemfile | 6 +- .../gemfiles/modular/coverage_local.gemfile | 42 +-- gems/zip-merge/gemfiles/modular/debug.gemfile | 4 +- .../gemfiles/modular/documentation.gemfile | 24 +- .../modular/documentation_local.gemfile | 30 +- .../gemfiles/modular/erb/r2/v3.0.gemfile | 2 +- .../gemfiles/modular/erb/r3/v5.0.gemfile | 2 +- .../gemfiles/modular/erb/r4/v5.0.gemfile | 2 +- .../gemfiles/modular/erb/vHEAD.gemfile | 2 +- .../modular/json/truffleruby_22_3.gemfile | 4 +- .../modular/json/truffleruby_23_0.gemfile | 4 +- .../modular/json/truffleruby_23_1.gemfile | 4 +- .../gemfiles/modular/mutex_m/r2/v0.3.gemfile | 2 +- .../gemfiles/modular/mutex_m/r3/v0.3.gemfile | 2 +- .../gemfiles/modular/mutex_m/r4/v0.3.gemfile | 2 +- .../gemfiles/modular/mutex_m/vHEAD.gemfile | 2 +- .../gemfiles/modular/optional.gemfile | 4 +- gems/zip-merge/gemfiles/modular/rspec.gemfile | 8 +- .../gemfiles/modular/runtime_heads.gemfile | 2 +- .../gemfiles/modular/stringio/r2/v3.0.gemfile | 2 +- .../gemfiles/modular/stringio/r3/v3.0.gemfile | 2 +- .../gemfiles/modular/stringio/r4/v3.0.gemfile | 2 +- .../gemfiles/modular/stringio/vHEAD.gemfile | 2 +- gems/zip-merge/gemfiles/modular/style.gemfile | 24 +- .../gemfiles/modular/style_local.gemfile | 32 +- .../gemfiles/modular/templating.gemfile | 12 +- .../gemfiles/modular/templating_local.gemfile | 44 ++- .../gemfiles/modular/webrick/r4/v1.9.gemfile | 2 +- .../gemfiles/modular/webrick/vHEAD.gemfile | 2 +- .../gemfiles/modular/x_std_libs.gemfile | 14 +- .../modular/x_std_libs/r2/libs.gemfile | 6 +- .../modular/x_std_libs/r3/libs.gemfile | 6 +- .../modular/x_std_libs/r4/libs.gemfile | 12 +- .../gemfiles/modular/x_std_libs/vHEAD.gemfile | 12 +- gems/zip-merge/lib/zip/merge/version.rb | 2 +- gems/zip-merge/spec/spec_helper.rb | 10 +- 54 files changed, 1310 insertions(+), 307 deletions(-) diff --git a/gems/binary-merge/Gemfile.lock b/gems/binary-merge/Gemfile.lock index 547ff427a..df0a104f8 100644 --- a/gems/binary-merge/Gemfile.lock +++ b/gems/binary-merge/Gemfile.lock @@ -6,7 +6,236 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/tree_haver + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly + specs: + ast-crispr-markdown-markly (7.1.0) + ast-crispr (= 7.1.0) + markly-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism + specs: + ast-crispr-ruby-prism (7.1.0) + ast-crispr (= 7.1.0) + prism-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr + specs: + ast-crispr (7.1.0) + ast-merge (= 7.1.0) + service_actor (~> 3.9) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git + specs: + ast-merge-git (7.1.0) + ast-merge (= 7.1.0) + json-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge + specs: + ast-merge (7.1.0) + benchmark + token-resolver (~> 2.0, >= 2.0.4) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template + specs: + ast-template (7.1.0) + ast-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge + specs: + bash-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge + specs: + citrus-toml-merge (7.1.0) + toml-merge (= 7.1.0) + toml-rb (~> 4.1) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge + specs: + commonmarker-merge (7.1.0) + commonmarker (~> 2.2) + markdown-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge + specs: + dotenv-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge + specs: + go-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge + specs: + json-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem + specs: + kettle-jem (7.1.0) + addressable (>= 2.8, < 3) + ast-crispr-markdown-markly (= 7.1.0) + ast-crispr-ruby-prism (= 7.1.0) + ast-merge (= 7.1.0) + bash-merge (= 7.1.0) + citrus-toml-merge (= 7.1.0) + commonmarker-merge (= 7.1.0) + dotenv-merge (= 7.1.0) + json-merge (= 7.1.0) + kettle-dev (~> 2.3, >= 2.3.5) + kettle-rb (~> 0.1, >= 0.1.4) + kramdown-merge (= 7.1.0) + markdown-merge (= 7.1.0) + markly-merge (= 7.1.0) + prism-merge (= 7.1.0) + psych-merge (= 7.1.0) + rbs (>= 3.10) + rbs-merge (= 7.1.0) + ruby-merge (= 7.1.0) + token-resolver (~> 2.0, >= 2.0.4) + toml-merge (= 7.1.0) + toml-rb (~> 4.2) + tree_haver (= 7.1.0) + yaml-merge (= 7.1.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge + specs: + kramdown-merge (7.1.0) + kramdown (~> 2.5) + markdown-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge + specs: + markdown-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge + specs: + markly-merge (7.1.0) + markdown-merge (= 7.1.0) + markly (~> 0.9) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge + specs: + parslet-toml-merge (7.1.0) + toml (~> 0.3) + toml-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge + specs: + plain-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge + specs: + prism-merge (7.1.0) + prism (~> 1.6) + ruby-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge + specs: + psych-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + yaml-merge (= 7.1.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge + specs: + rbs-merge (7.1.0) + ast-merge (= 7.1.0) + rbs (>= 3.10) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge + specs: + ruby-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge + specs: + rust-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb + specs: + smorg-rb (7.1.0) + ast-merge (= 7.1.0) + ast-merge-git (= 7.1.0) + diff-lcs (~> 1.5) + go-merge (= 7.1.0) + json-merge (= 7.1.0) + kettle-jem (= 7.1.0) + markly-merge (= 7.1.0) + plain-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge + specs: + toml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver specs: tree_haver (7.1.0) citrus (~> 3.0) @@ -14,6 +243,29 @@ PATH tree_sitter_language_pack (>= 1.13.2, < 2.0) version_gem (~> 1.1, >= 1.1.9) +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge + specs: + typescript-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge + specs: + yaml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge + specs: + zip-merge (7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + GEM remote: https://gem.coop/ specs: @@ -38,6 +290,11 @@ GEM cgi (0.5.2) citrus (3.0.2) cmdparse (3.0.7) + commonmarker (2.9.0-aarch64-linux) + commonmarker (2.9.0-aarch64-linux-musl) + commonmarker (2.9.0-arm64-darwin) + commonmarker (2.9.0-x86_64-linux) + commonmarker (2.9.0-x86_64-linux-musl) concurrent-ruby (1.3.8) date (3.5.1) debug (1.11.1) @@ -100,6 +357,8 @@ GEM kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) + kettle-drift (1.0.6) + version_gem (~> 1.1, >= 1.1.14) kettle-rb (0.1.5) kettle-soup-cover (3.0.4) kettle-wash (~> 0.1, >= 0.1.0) @@ -128,6 +387,7 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) + markly (0.16.0) mutex_m (0.3.0) nokogiri (1.19.4-aarch64-linux-gnu) racc (~> 1.4) @@ -290,6 +550,8 @@ GEM ruby-progressbar (1.13.0) ruby_engine (2.0.3) ruby_version (1.0.3) + service_actor (3.9.4) + zeitwerk (>= 1.0) silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) @@ -341,6 +603,14 @@ GEM delegate (~> 0.1) rspec (~> 3.0) timecop (>= 0.7, < 1) + token-resolver (2.0.5) + parslet (~> 2.0) + version_gem (~> 1.1, >= 1.1.14) + toml (0.3.0) + parslet (>= 1.8.0, < 3.0.0) + toml-rb (4.2.0) + citrus (~> 3.0, > 3.0) + racc (~> 1.7) tree_sitter_language_pack (1.13.3-aarch64-linux) sorbet-runtime (~> 0.5) tree_sitter_language_pack (1.13.3-arm64-darwin) @@ -395,24 +665,46 @@ DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) appraisal2-rubocop (~> 1.0, >= 1.0.0) + ast-crispr! + ast-crispr-markdown-markly! + ast-crispr-ruby-prism! + ast-merge! + ast-merge-git! + ast-template! + bash-merge! benchmark (~> 0.5, >= 0.5.0) binary-merge! bundler-audit (~> 0.9.3) cgi (~> 0.5) + citrus-toml-merge! + commonmarker-merge! debug (>= 1.1) + dotenv-merge! erb (~> 6.0, >= 6.0.6) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.0) + go-merge! irb (~> 1.17) + json-merge! kettle-dev (~> 2.0, >= 2.2.25) + kettle-drift (~> 1.0, >= 1.0.6) + kettle-jem! kettle-soup-cover (~> 3.0, >= 3.0.3) kettle-test (~> 2.0, >= 2.0.9) kramdown (~> 2.5, >= 2.5.2) + kramdown-merge! kramdown-parser-gfm (~> 1.1) + markdown-merge! + markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) + parslet-toml-merge! + plain-merge! + prism-merge! + psych-merge! rake (~> 13.0) rbs (>= 3.0) + rbs-merge! rdoc (~> 6.11) reek (~> 6.5, >= 6.5.0) require_bench (~> 1.0, >= 1.0.4) @@ -423,20 +715,27 @@ DEPENDENCIES rubocop-on-rbs (~> 2.0, >= 2.0.0) rubocop-packaging (~> 0.6, >= 0.6.0) rubocop-ruby3_2 (~> 3.0, >= 3.0.6) + ruby-merge! ruby-progressbar (~> 1.13) + rust-merge! + smorg-rb! standard (~> 1.56, >= 1.56.0) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) + toml-merge! tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) + typescript-merge! webrick (~> 1.9) yaml-converter (~> 0.2, >= 0.2.3) + yaml-merge! yard (~> 0.9, >= 0.9.45) yard-fence (~> 0.9, >= 0.9.6) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) yard-timekeeper (~> 0.2, >= 0.2.4) yard-yaml (~> 0.2, >= 0.2.3) + zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af @@ -444,20 +743,35 @@ CHECKSUMS appraisal2 (3.2.0) sha256=ccd0b767ac4060cd7af6d16747459b6990f49c39c7b4fb1f7d1146b1e97c492f appraisal2-rubocop (1.0.0) sha256=b71410fbb014befda5340605a605b7f6f3f012739baf0acc5b4351b592c3258d ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 + ast-crispr (7.1.0) + ast-crispr-markdown-markly (7.1.0) + ast-crispr-ruby-prism (7.1.0) + ast-merge (7.1.0) + ast-merge-git (7.1.0) + ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 + bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 + citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 + commonmarker (2.9.0-aarch64-linux) sha256=e2b4aadb9a2cfa4e206582641ce3a49465549ac1ed4c289fdd63b78d8f24579c + commonmarker (2.9.0-aarch64-linux-musl) sha256=1cf4d2821f2a7e64945f1ed7c4eeced586fdb27ea7fe7337788802cf8f57cfca + commonmarker (2.9.0-arm64-darwin) sha256=1748dbfa4f5813b0d2a14bb4bbfa65a4ec293aa1c825016d60029ee0e132b046 + commonmarker (2.9.0-x86_64-linux) sha256=8cfe92970eef585a19ddf6613224b91cab64d6029834661bda801f877c9c7f43 + commonmarker (2.9.0-x86_64-linux-musl) sha256=293921398b839f79ceaf55010e061357e34f053822c3b003cd0be6686176335e + commonmarker-merge (7.1.0) concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 + dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -470,20 +784,28 @@ CHECKSUMS gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f + go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 + json-merge (7.1.0) kettle-dev (2.3.9) + kettle-drift (1.0.6) sha256=46eda08fa4411d1f3c6682a95eef1c9df4e94611b3949f49d4c7b43c0ed356a3 + kettle-jem (7.1.0) kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f kettle-soup-cover (3.0.4) kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa + kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 + markdown-merge (7.1.0) + markly (0.16.0) sha256=6f70d79e385b1efc9e171f74c81628826259039fe6c778e03c3924c71dac5511 + markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-aarch64-linux-gnu) sha256=1269fb644a6de405057a53dd5c762b1209b43ca7424f839454d3dbc677c31a8f nokogiri (1.19.4-aarch64-linux-musl) sha256=35c65b9ce72b3bb03207bdbe7067915019dc18c1b9b59139684bd6690fdd01af @@ -497,15 +819,20 @@ CHECKSUMS parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 + parslet-toml-merge (7.1.0) + plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 + prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 + psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 + rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb @@ -540,15 +867,19 @@ CHECKSUMS rubocop-rspec_rails (2.32.0) sha256=4a0d641c72f6ebb957534f539d9d0a62c47abd8ce0d0aeee1ef4701e892a9100 rubocop-ruby3_2 (3.0.7) sha256=f53dd6d286fb05186214fc6ec116783e7f837030918e8931c05de773e98f8466 rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 + ruby-merge (7.1.0) ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 + rust-merge (7.1.0) + service_actor (3.9.4) sha256=e63b523630b9a7e62959b2a90113b08d2565b5de9c148557b281ef847c9539ce silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed + smorg-rb (7.1.0) sorbet-runtime (0.6.13351) sha256=f8fee17c6e3edf835dc6823d26afb9a7c8969c6710d1fabe2fb43f4e0c15c64f standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b @@ -562,17 +893,23 @@ CHECKSUMS thor (1.5.0) sha256=e3a9e55fe857e44859ce104a84675ab6e8cd59c650a49106a05f55f136425e73 timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 + token-resolver (2.0.5) sha256=b852f924287ffb58a440856e862b056c8ad97e74b4b2526cee43e0771f40c25c + toml (0.3.0) sha256=0a91d0f76a9036e84e44f95693b12f58d358c1df3ac8e3b5271f2056ecc6e4b9 + toml-merge (7.1.0) + toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-aarch64-linux) sha256=55ffc7c87868cb45658338363d9eba51b4a8b0259aa88e4de368d2bd1d52fea4 tree_sitter_language_pack (1.13.3-arm64-darwin) sha256=bc2498db605f212a1dbd2465ed3f65190d7da786f6ed5d30fcf958121aeb4a5c tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 + typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 webrick (1.9.2) sha256=beb4a15fc474defed24a3bda4ffd88a490d517c9e4e6118c3edce59e45864131 yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 + yaml-merge (7.1.0) yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd @@ -580,6 +917,7 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 + zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH diff --git a/gems/citrus-toml-merge/Gemfile b/gems/citrus-toml-merge/Gemfile index fdb945d39..ed6da5aff 100644 --- a/gems/citrus-toml-merge/Gemfile +++ b/gems/citrus-toml-merge/Gemfile @@ -6,7 +6,7 @@ # kettle-jem will then preserve content between those markers across template runs. # kettle-jem:unfreeze -source 'https://gem.coop' +source "https://gem.coop" git_source(:codeberg) { |repo_name| "https://codeberg.org/#{repo_name}" } git_source(:gitlab) { |repo_name| "https://gitlab.com/#{repo_name}" } @@ -19,17 +19,61 @@ git_source(:gitlab) { |repo_name| "https://gitlab.com/#{repo_name}" } gemspec # Local workspace dependency wiring for *_local.gemfile overrides -nomono_requirements = ['~> 1.0', '>= 1.0.8'] -gem 'nomono', *nomono_requirements, require: false # ruby >= 2.2 +nomono_requirements = ["~> 1.0", ">= 1.0.8"] +gem "nomono", *nomono_requirements, require: false # ruby >= 2.2 # Direct sibling dependencies (env-switched via STRUCTUREDMERGE_DEV) direct_sibling_gems = %w[ toml-merge ] -direct_sibling_dev = ENV.fetch('STRUCTUREDMERGE_DEV', '') +direct_sibling_dev = ENV.fetch("STRUCTUREDMERGE_DEV", "") direct_sibling_local = !direct_sibling_dev.empty? && !%w[false 0 no off].include?(direct_sibling_dev.downcase) -direct_sibling_templating = ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? +direct_sibling_templating = ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? + +if direct_sibling_gems.any? && + (direct_sibling_local || + ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero?) + direct_sibling_dev_was_set = ENV.key?("STRUCTUREDMERGE_DEV") + direct_sibling_dev_original = ENV.fetch("STRUCTUREDMERGE_DEV", nil) + begin + nomono_activation_requirements = nomono_requirements + nomono_lockfile = File.expand_path("Gemfile.lock", __dir__) + if File.file?(nomono_lockfile) + nomono_locked_spec = Bundler::LockfileParser + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == "nomono" } + nomono_locked = nomono_locked_spec && + Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) + if nomono_locked + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] + end + end + Kernel.send(:gem, "nomono", *nomono_activation_requirements) + require "nomono/bundler" + if direct_sibling_templating && !direct_sibling_local + ENV["STRUCTUREDMERGE_DEV"] = File.expand_path("..", __dir__) + end + + eval_nomono_gems( + gems: direct_sibling_gems, + prefix: "STRUCTUREDMERGE", + path_env: "STRUCTUREDMERGE_DEV", + root: ["src", "my", "structuredmerge"] + ) + rescue LoadError + warn "Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies." + ensure + if direct_sibling_templating && !direct_sibling_local + if direct_sibling_dev_was_set + ENV["STRUCTUREDMERGE_DEV"] = direct_sibling_dev_original + else + ENV.delete("STRUCTUREDMERGE_DEV") + end + end + end +end if direct_sibling_gems.any? && (direct_sibling_local || @@ -112,28 +156,28 @@ if direct_sibling_gems.any? && end # Use released TSLP with the Ruby ABI platform-gem fix. -gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' +gem "tree_sitter_language_pack", "~> 1.13", ">= 1.13.3" # Templating (env-switched: STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local paths) -eval_gemfile 'gemfiles/modular/templating.gemfile' if ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? +eval_gemfile "gemfiles/modular/templating.gemfile" if ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? # Debugging -eval_gemfile 'gemfiles/modular/debug.gemfile' +eval_gemfile "gemfiles/modular/debug.gemfile" # Code Coverage (env-switched: KETTLE_DEV_DEV=true for local paths) -eval_gemfile 'gemfiles/modular/coverage.gemfile' +eval_gemfile "gemfiles/modular/coverage.gemfile" # Linting -eval_gemfile 'gemfiles/modular/style.gemfile' +eval_gemfile "gemfiles/modular/style.gemfile" # Documentation -eval_gemfile 'gemfiles/modular/documentation.gemfile' +eval_gemfile "gemfiles/modular/documentation.gemfile" # Optional -eval_gemfile 'gemfiles/modular/optional.gemfile' +eval_gemfile "gemfiles/modular/optional.gemfile" ### Std Lib Extracted Gems -eval_gemfile 'gemfiles/modular/x_std_libs.gemfile' +eval_gemfile "gemfiles/modular/x_std_libs.gemfile" # See unlocked_deps appraisal for more details on irb inclusion -gem 'irb', '~> 1.17' # ruby >= 2.7 +gem "irb", "~> 1.17" # ruby >= 2.7 diff --git a/gems/citrus-toml-merge/Gemfile.lock b/gems/citrus-toml-merge/Gemfile.lock index 386da9a1f..ae6dd453e 100644 --- a/gems/citrus-toml-merge/Gemfile.lock +++ b/gems/citrus-toml-merge/Gemfile.lock @@ -6,6 +6,266 @@ PATH toml-rb (~> 4.1) version_gem (~> 1.1, >= 1.1.9) +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly + specs: + ast-crispr-markdown-markly (7.1.0) + ast-crispr (= 7.1.0) + markly-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism + specs: + ast-crispr-ruby-prism (7.1.0) + ast-crispr (= 7.1.0) + prism-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr + specs: + ast-crispr (7.1.0) + ast-merge (= 7.1.0) + service_actor (~> 3.9) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git + specs: + ast-merge-git (7.1.0) + ast-merge (= 7.1.0) + json-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge + specs: + ast-merge (7.1.0) + benchmark + token-resolver (~> 2.0, >= 2.0.4) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template + specs: + ast-template (7.1.0) + ast-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge + specs: + bash-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge + specs: + binary-merge (7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge + specs: + commonmarker-merge (7.1.0) + commonmarker (~> 2.2) + markdown-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge + specs: + dotenv-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge + specs: + go-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge + specs: + json-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem + specs: + kettle-jem (7.1.0) + addressable (>= 2.8, < 3) + ast-crispr-markdown-markly (= 7.1.0) + ast-crispr-ruby-prism (= 7.1.0) + ast-merge (= 7.1.0) + bash-merge (= 7.1.0) + citrus-toml-merge (= 7.1.0) + commonmarker-merge (= 7.1.0) + dotenv-merge (= 7.1.0) + json-merge (= 7.1.0) + kettle-dev (~> 2.3, >= 2.3.5) + kettle-rb (~> 0.1, >= 0.1.4) + kramdown-merge (= 7.1.0) + markdown-merge (= 7.1.0) + markly-merge (= 7.1.0) + prism-merge (= 7.1.0) + psych-merge (= 7.1.0) + rbs (>= 3.10) + rbs-merge (= 7.1.0) + ruby-merge (= 7.1.0) + token-resolver (~> 2.0, >= 2.0.4) + toml-merge (= 7.1.0) + toml-rb (~> 4.2) + tree_haver (= 7.1.0) + yaml-merge (= 7.1.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge + specs: + kramdown-merge (7.1.0) + kramdown (~> 2.5) + markdown-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge + specs: + markdown-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge + specs: + markly-merge (7.1.0) + markdown-merge (= 7.1.0) + markly (~> 0.9) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge + specs: + parslet-toml-merge (7.1.0) + toml (~> 0.3) + toml-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge + specs: + plain-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge + specs: + prism-merge (7.1.0) + prism (~> 1.6) + ruby-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge + specs: + psych-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + yaml-merge (= 7.1.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge + specs: + rbs-merge (7.1.0) + ast-merge (= 7.1.0) + rbs (>= 3.10) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge + specs: + ruby-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge + specs: + rust-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb + specs: + smorg-rb (7.1.0) + ast-merge (= 7.1.0) + ast-merge-git (= 7.1.0) + diff-lcs (~> 1.5) + go-merge (= 7.1.0) + json-merge (= 7.1.0) + kettle-jem (= 7.1.0) + markly-merge (= 7.1.0) + plain-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge + specs: + toml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver + specs: + tree_haver (7.1.0) + citrus (~> 3.0) + parslet (~> 2.0) + tree_sitter_language_pack (>= 1.13.2, < 2.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge + specs: + typescript-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge + specs: + yaml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge + specs: + zip-merge (7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + GEM remote: https://gem.coop/ specs: @@ -21,11 +281,6 @@ GEM rubocop (>= 1.0) version_gem (~> 1.1, >= 1.1.14) ast (2.4.3) - ast-merge (7.1.0) - benchmark - token-resolver (~> 2.0, >= 2.0.4) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) backports (3.25.3) benchmark (0.5.0) bigdecimal (4.1.2) @@ -35,6 +290,7 @@ GEM cgi (0.5.2) citrus (3.0.2) cmdparse (3.0.7) + commonmarker (2.9.0-x86_64-linux) concurrent-ruby (1.3.8) date (3.5.1) debug (1.11.1) @@ -97,6 +353,8 @@ GEM kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) + kettle-drift (1.0.6) + version_gem (~> 1.1, >= 1.1.14) kettle-rb (0.1.5) kettle-soup-cover (3.0.4) kettle-wash (~> 0.1, >= 0.1.0) @@ -125,6 +383,7 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) + markly (0.16.0) mutex_m (0.3.0) nokogiri (1.19.4-x86_64-linux-gnu) racc (~> 1.4) @@ -279,6 +538,8 @@ GEM ruby-progressbar (1.13.0) ruby_engine (2.0.3) ruby_version (1.0.3) + service_actor (3.9.4) + zeitwerk (>= 1.0) silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) @@ -333,18 +594,11 @@ GEM token-resolver (2.0.5) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.14) - toml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) + toml (0.3.0) + parslet (>= 1.8.0, < 3.0.0) toml-rb (4.2.0) citrus (~> 3.0, > 3.0) racc (~> 1.7) - tree_haver (7.1.0) - citrus (~> 3.0) - parslet (~> 2.0) - tree_sitter_language_pack (>= 1.13.2, < 2.0) - version_gem (~> 1.1, >= 1.1.9) tree_sitter_language_pack (1.13.3-x86_64-linux) sorbet-runtime (~> 0.5) tsort (0.2.0) @@ -390,24 +644,46 @@ DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) appraisal2-rubocop (~> 1.0, >= 1.0.0) + ast-crispr! + ast-crispr-markdown-markly! + ast-crispr-ruby-prism! + ast-merge! + ast-merge-git! + ast-template! + bash-merge! benchmark (~> 0.5, >= 0.5.0) + binary-merge! bundler-audit (~> 0.9.3) cgi (~> 0.5) citrus-toml-merge! + commonmarker-merge! debug (>= 1.1) + dotenv-merge! erb (~> 6.0, >= 6.0.6) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.0) + go-merge! irb (~> 1.17) + json-merge! kettle-dev (~> 2.0, >= 2.2.25) + kettle-drift (~> 1.0, >= 1.0.6) + kettle-jem! kettle-soup-cover (~> 3.0, >= 3.0.3) kettle-test (~> 2.0, >= 2.0.9) kramdown (~> 2.5, >= 2.5.2) + kramdown-merge! kramdown-parser-gfm (~> 1.1) + markdown-merge! + markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) + parslet-toml-merge! + plain-merge! + prism-merge! + psych-merge! rake (~> 13.0) rbs (>= 3.0) + rbs-merge! rdoc (~> 6.11) reek (~> 6.5, >= 6.5.0) require_bench (~> 1.0, >= 1.0.4) @@ -418,19 +694,27 @@ DEPENDENCIES rubocop-on-rbs (~> 2.0, >= 2.0.0) rubocop-packaging (~> 0.6, >= 0.6.0) rubocop-ruby3_2 (~> 3.0, >= 3.0.6) + ruby-merge! ruby-progressbar (~> 1.13) + rust-merge! + smorg-rb! standard (~> 1.56, >= 1.56.0) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) + toml-merge! + tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) + typescript-merge! webrick (~> 1.9) yaml-converter (~> 0.2, >= 0.2.3) + yaml-merge! yard (~> 0.9, >= 0.9.45) yard-fence (~> 0.9, >= 0.9.6) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) yard-timekeeper (~> 0.2, >= 0.2.4) yard-yaml (~> 0.2, >= 0.2.3) + zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af @@ -438,21 +722,31 @@ CHECKSUMS appraisal2 (3.2.0) sha256=ccd0b767ac4060cd7af6d16747459b6990f49c39c7b4fb1f7d1146b1e97c492f appraisal2-rubocop (1.0.0) sha256=b71410fbb014befda5340605a605b7f6f3f012739baf0acc5b4351b592c3258d ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 + ast-crispr (7.1.0) + ast-crispr-markdown-markly (7.1.0) + ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) + ast-merge-git (7.1.0) + ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 + bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd + binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 + commonmarker (2.9.0-x86_64-linux) sha256=8cfe92970eef585a19ddf6613224b91cab64d6029834661bda801f877c9c7f43 + commonmarker-merge (7.1.0) concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 + dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -465,20 +759,28 @@ CHECKSUMS gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f + go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 + json-merge (7.1.0) kettle-dev (2.3.8) sha256=9d716ff21c660a730cb4e8d41e2e2f0630a28167a354b6e2924e242102aef72c + kettle-drift (1.0.6) sha256=46eda08fa4411d1f3c6682a95eef1c9df4e94611b3949f49d4c7b43c0ed356a3 + kettle-jem (7.1.0) kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f kettle-soup-cover (3.0.4) kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa + kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 + markdown-merge (7.1.0) + markly (0.16.0) sha256=6f70d79e385b1efc9e171f74c81628826259039fe6c778e03c3924c71dac5511 + markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-x86_64-linux-gnu) sha256=379fae440b28915e3f19d752ce2dcf8465ed2b2fbefd2a7ca0dd497bc981a06a nomono (1.0.9) @@ -488,15 +790,20 @@ CHECKSUMS parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 + parslet-toml-merge (7.1.0) + plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 + prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 + psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 + rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb @@ -531,15 +838,19 @@ CHECKSUMS rubocop-rspec_rails (2.32.0) sha256=4a0d641c72f6ebb957534f539d9d0a62c47abd8ce0d0aeee1ef4701e892a9100 rubocop-ruby3_2 (3.0.7) sha256=f53dd6d286fb05186214fc6ec116783e7f837030918e8931c05de773e98f8466 rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 + ruby-merge (7.1.0) ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 + rust-merge (7.1.0) + service_actor (3.9.4) sha256=e63b523630b9a7e62959b2a90113b08d2565b5de9c148557b281ef847c9539ce silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed + smorg-rb (7.1.0) sorbet-runtime (0.6.13347) sha256=54e7221d9f4b63f58aec79f3043752a9ba7810347c6ae0d903531591cc2d5f01 standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b @@ -554,17 +865,20 @@ CHECKSUMS timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.5) sha256=b852f924287ffb58a440856e862b056c8ad97e74b4b2526cee43e0771f40c25c + toml (0.3.0) sha256=0a91d0f76a9036e84e44f95693b12f58d358c1df3ac8e3b5271f2056ecc6e4b9 toml-merge (7.1.0) toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 + typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 webrick (1.9.2) sha256=beb4a15fc474defed24a3bda4ffd88a490d517c9e4e6118c3edce59e45864131 yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 + yaml-merge (7.1.0) yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd @@ -572,6 +886,7 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 + zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH diff --git a/gems/citrus-toml-merge/Rakefile b/gems/citrus-toml-merge/Rakefile index 6077031be..c88ccc855 100644 --- a/gems/citrus-toml-merge/Rakefile +++ b/gems/citrus-toml-merge/Rakefile @@ -130,23 +130,23 @@ end ### DUPLICATE DRIFT TASKS begin - require 'kettle/drift' + require "kettle/drift" Kettle::Drift.install_tasks rescue LoadError - desc('(stub) kettle:drift:check is unavailable') - task('kettle:drift:check') do + desc("(stub) kettle:drift:check is unavailable") + task("kettle:drift:check") do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc('(stub) kettle:drift:update is unavailable') - task('kettle:drift:update') do + desc("(stub) kettle:drift:update is unavailable") + task("kettle:drift:update") do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc('(stub) kettle:drift:force_update is unavailable') - task('kettle:drift:force_update') do + desc("(stub) kettle:drift:force_update is unavailable") + task("kettle:drift:force_update") do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc('(stub) kettle:drift is unavailable') - task('kettle:drift' => 'kettle:drift:update') + desc("(stub) kettle:drift is unavailable") + task("kettle:drift" => "kettle:drift:update") end ### TEMPLATING TASKS diff --git a/gems/citrus-toml-merge/gemfiles/modular/templating.gemfile b/gems/citrus-toml-merge/gemfiles/modular/templating.gemfile index a672de184..47138ffbb 100644 --- a/gems/citrus-toml-merge/gemfiles/modular/templating.gemfile +++ b/gems/citrus-toml-merge/gemfiles/modular/templating.gemfile @@ -1,18 +1,18 @@ # frozen_string_literal: true -structuredmerge_remote = ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false').zero? -kettle_remote = ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? +structuredmerge_remote = ENV.fetch("STRUCTUREDMERGE_DEV", "false").casecmp("false").zero? +kettle_remote = ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false").zero? if structuredmerge_remote # Parser dependencies for released installs. - gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' + gem "tree_sitter_language_pack", "~> 1.13", ">= 1.13.3" # Merge recipes for released installs. - gem 'kettle-jem', '>= 7.0' + gem "kettle-jem", ">= 7.0" end if kettle_remote # Template/plugin checks for released installs. - gem 'kettle-drift', '~> 1.0', '>= 1.0.6', require: false + gem "kettle-drift", "~> 1.0", ">= 1.0.6", require: false end # Set STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local development with path-based dependencies. @@ -21,4 +21,4 @@ end # # Set KETTLE_DEV_DEV=/path/to/my for local development with Kettle plugin gems. # When false (default / CI), released Kettle plugin gems are used. -eval_gemfile 'templating_local.gemfile' unless structuredmerge_remote && kettle_remote +eval_gemfile "templating_local.gemfile" unless structuredmerge_remote && kettle_remote diff --git a/gems/citrus-toml-merge/gemfiles/modular/templating_local.gemfile b/gems/citrus-toml-merge/gemfiles/modular/templating_local.gemfile index f59e32e90..cf4c4dd45 100644 --- a/gems/citrus-toml-merge/gemfiles/modular/templating_local.gemfile +++ b/gems/citrus-toml-merge/gemfiles/modular/templating_local.gemfile @@ -12,19 +12,21 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] -nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) +nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] +nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == "nomono" } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + if nomono_locked + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] + end end -Kernel.send(:gem, 'nomono', *nomono_activation_requirements) -require 'nomono/bundler' +Kernel.send(:gem, "nomono", *nomono_activation_requirements) +require "nomono/bundler" structuredmerge_local_gems = %w[ tree_haver @@ -67,25 +69,25 @@ structuredmerge_local_gems_to_eval = structuredmerge_local_gems - %w[citrus-toml kettle_dev_local_gems_to_eval = kettle_dev_local_gems - %w[citrus-toml-merge] - declared_gems platform :mri do - if ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false') != 0 + if ENV.fetch("STRUCTUREDMERGE_DEV", "false").casecmp("false") != 0 eval_nomono_gems( gems: structuredmerge_local_gems_to_eval, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - vendored_gems_env: 'VENDORED_GEMS', - vendor_gem_dir_env: 'VENDOR_GEM_DIR', - debug_env: 'STRUCTUREDMERGE_DEBUG' + prefix: "STRUCTUREDMERGE", + path_env: "STRUCTUREDMERGE_DEV", + vendored_gems_env: "VENDORED_GEMS", + vendor_gem_dir_env: "VENDOR_GEM_DIR", + debug_env: "STRUCTUREDMERGE_DEBUG" ) end - if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false') != 0 + if ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false") != 0 eval_nomono_gems( gems: kettle_dev_local_gems_to_eval, - prefix: 'KETTLE_DEV', - path_env: 'KETTLE_DEV_DEV', - vendored_gems_env: 'VENDORED_GEMS', - vendor_gem_dir_env: 'VENDOR_GEM_DIR', - debug_env: 'KETTLE_DEV_DEBUG' + prefix: "KETTLE_DEV", + path_env: "KETTLE_DEV_DEV", + vendored_gems_env: "VENDORED_GEMS", + vendor_gem_dir_env: "VENDOR_GEM_DIR", + debug_env: "KETTLE_DEV_DEBUG" ) end end diff --git a/gems/citrus-toml-merge/lib/citrus/toml/merge/version.rb b/gems/citrus-toml-merge/lib/citrus/toml/merge/version.rb index 9d400d071..e83bb4f4d 100644 --- a/gems/citrus-toml-merge/lib/citrus/toml/merge/version.rb +++ b/gems/citrus-toml-merge/lib/citrus/toml/merge/version.rb @@ -4,7 +4,7 @@ module Citrus module Toml module Merge module Version - VERSION = '7.1.0' + VERSION = "7.1.0" end VERSION = Version::VERSION # Traditional Constant Location end diff --git a/gems/parslet-toml-merge/Gemfile.lock b/gems/parslet-toml-merge/Gemfile.lock index 145b10cc4..686bffc90 100644 --- a/gems/parslet-toml-merge/Gemfile.lock +++ b/gems/parslet-toml-merge/Gemfile.lock @@ -6,6 +6,266 @@ PATH toml-merge (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly + specs: + ast-crispr-markdown-markly (7.1.0) + ast-crispr (= 7.1.0) + markly-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism + specs: + ast-crispr-ruby-prism (7.1.0) + ast-crispr (= 7.1.0) + prism-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr + specs: + ast-crispr (7.1.0) + ast-merge (= 7.1.0) + service_actor (~> 3.9) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git + specs: + ast-merge-git (7.1.0) + ast-merge (= 7.1.0) + json-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge + specs: + ast-merge (7.1.0) + benchmark + token-resolver (~> 2.0, >= 2.0.4) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template + specs: + ast-template (7.1.0) + ast-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge + specs: + bash-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge + specs: + binary-merge (7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge + specs: + citrus-toml-merge (7.1.0) + toml-merge (= 7.1.0) + toml-rb (~> 4.1) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge + specs: + commonmarker-merge (7.1.0) + commonmarker (~> 2.2) + markdown-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge + specs: + dotenv-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge + specs: + go-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge + specs: + json-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem + specs: + kettle-jem (7.1.0) + addressable (>= 2.8, < 3) + ast-crispr-markdown-markly (= 7.1.0) + ast-crispr-ruby-prism (= 7.1.0) + ast-merge (= 7.1.0) + bash-merge (= 7.1.0) + citrus-toml-merge (= 7.1.0) + commonmarker-merge (= 7.1.0) + dotenv-merge (= 7.1.0) + json-merge (= 7.1.0) + kettle-dev (~> 2.3, >= 2.3.5) + kettle-rb (~> 0.1, >= 0.1.4) + kramdown-merge (= 7.1.0) + markdown-merge (= 7.1.0) + markly-merge (= 7.1.0) + prism-merge (= 7.1.0) + psych-merge (= 7.1.0) + rbs (>= 3.10) + rbs-merge (= 7.1.0) + ruby-merge (= 7.1.0) + token-resolver (~> 2.0, >= 2.0.4) + toml-merge (= 7.1.0) + toml-rb (~> 4.2) + tree_haver (= 7.1.0) + yaml-merge (= 7.1.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge + specs: + kramdown-merge (7.1.0) + kramdown (~> 2.5) + markdown-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge + specs: + markdown-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge + specs: + markly-merge (7.1.0) + markdown-merge (= 7.1.0) + markly (~> 0.9) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge + specs: + plain-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge + specs: + prism-merge (7.1.0) + prism (~> 1.6) + ruby-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge + specs: + psych-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + yaml-merge (= 7.1.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge + specs: + rbs-merge (7.1.0) + ast-merge (= 7.1.0) + rbs (>= 3.10) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge + specs: + ruby-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge + specs: + rust-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb + specs: + smorg-rb (7.1.0) + ast-merge (= 7.1.0) + ast-merge-git (= 7.1.0) + diff-lcs (~> 1.5) + go-merge (= 7.1.0) + json-merge (= 7.1.0) + kettle-jem (= 7.1.0) + markly-merge (= 7.1.0) + plain-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge + specs: + toml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver + specs: + tree_haver (7.1.0) + citrus (~> 3.0) + parslet (~> 2.0) + tree_sitter_language_pack (>= 1.13.2, < 2.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge + specs: + typescript-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge + specs: + yaml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge + specs: + zip-merge (7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + GEM remote: https://gem.coop/ specs: @@ -21,11 +281,6 @@ GEM rubocop (>= 1.0) version_gem (~> 1.1, >= 1.1.14) ast (2.4.3) - ast-merge (7.1.0) - benchmark - token-resolver (~> 2.0, >= 2.0.4) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) backports (3.25.3) benchmark (0.5.0) bigdecimal (4.1.2) @@ -35,6 +290,7 @@ GEM cgi (0.5.2) citrus (3.0.2) cmdparse (3.0.7) + commonmarker (2.9.0-x86_64-linux) concurrent-ruby (1.3.8) date (3.5.1) debug (1.11.1) @@ -97,6 +353,8 @@ GEM kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) + kettle-drift (1.0.6) + version_gem (~> 1.1, >= 1.1.14) kettle-rb (0.1.5) kettle-soup-cover (3.0.4) kettle-wash (~> 0.1, >= 0.1.0) @@ -125,6 +383,7 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) + markly (0.16.0) mutex_m (0.3.0) nokogiri (1.19.4-x86_64-linux-gnu) racc (~> 1.4) @@ -279,6 +538,8 @@ GEM ruby-progressbar (1.13.0) ruby_engine (2.0.3) ruby_version (1.0.3) + service_actor (3.9.4) + zeitwerk (>= 1.0) silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) @@ -335,15 +596,9 @@ GEM version_gem (~> 1.1, >= 1.1.14) toml (0.3.0) parslet (>= 1.8.0, < 3.0.0) - toml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - tree_haver (7.1.0) - citrus (~> 3.0) - parslet (~> 2.0) - tree_sitter_language_pack (>= 1.13.2, < 2.0) - version_gem (~> 1.1, >= 1.1.9) + toml-rb (4.2.0) + citrus (~> 3.0, > 3.0) + racc (~> 1.7) tree_sitter_language_pack (1.13.3-x86_64-linux) sorbet-runtime (~> 0.5) tsort (0.2.0) @@ -389,24 +644,46 @@ DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) appraisal2-rubocop (~> 1.0, >= 1.0.0) + ast-crispr! + ast-crispr-markdown-markly! + ast-crispr-ruby-prism! + ast-merge! + ast-merge-git! + ast-template! + bash-merge! benchmark (~> 0.5, >= 0.5.0) + binary-merge! bundler-audit (~> 0.9.3) cgi (~> 0.5) + citrus-toml-merge! + commonmarker-merge! debug (>= 1.1) + dotenv-merge! erb (~> 6.0, >= 6.0.6) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.0) + go-merge! irb (~> 1.17) + json-merge! kettle-dev (~> 2.0, >= 2.2.25) + kettle-drift (~> 1.0, >= 1.0.6) + kettle-jem! kettle-soup-cover (~> 3.0, >= 3.0.3) kettle-test (~> 2.0, >= 2.0.9) kramdown (~> 2.5, >= 2.5.2) + kramdown-merge! kramdown-parser-gfm (~> 1.1) + markdown-merge! + markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) parslet-toml-merge! + plain-merge! + prism-merge! + psych-merge! rake (~> 13.0) rbs (>= 3.0) + rbs-merge! rdoc (~> 6.11) reek (~> 6.5, >= 6.5.0) require_bench (~> 1.0, >= 1.0.4) @@ -417,19 +694,27 @@ DEPENDENCIES rubocop-on-rbs (~> 2.0, >= 2.0.0) rubocop-packaging (~> 0.6, >= 0.6.0) rubocop-ruby3_2 (~> 3.0, >= 3.0.6) + ruby-merge! ruby-progressbar (~> 1.13) + rust-merge! + smorg-rb! standard (~> 1.56, >= 1.56.0) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) + toml-merge! + tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) + typescript-merge! webrick (~> 1.9) yaml-converter (~> 0.2, >= 0.2.3) + yaml-merge! yard (~> 0.9, >= 0.9.45) yard-fence (~> 0.9, >= 0.9.6) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) yard-timekeeper (~> 0.2, >= 0.2.4) yard-yaml (~> 0.2, >= 0.2.3) + zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af @@ -437,20 +722,31 @@ CHECKSUMS appraisal2 (3.2.0) sha256=ccd0b767ac4060cd7af6d16747459b6990f49c39c7b4fb1f7d1146b1e97c492f appraisal2-rubocop (1.0.0) sha256=b71410fbb014befda5340605a605b7f6f3f012739baf0acc5b4351b592c3258d ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 + ast-crispr (7.1.0) + ast-crispr-markdown-markly (7.1.0) + ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) + ast-merge-git (7.1.0) + ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 + bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd + binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 + citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 + commonmarker (2.9.0-x86_64-linux) sha256=8cfe92970eef585a19ddf6613224b91cab64d6029834661bda801f877c9c7f43 + commonmarker-merge (7.1.0) concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 + dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -463,20 +759,28 @@ CHECKSUMS gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f + go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 + json-merge (7.1.0) kettle-dev (2.3.8) sha256=9d716ff21c660a730cb4e8d41e2e2f0630a28167a354b6e2924e242102aef72c + kettle-drift (1.0.6) sha256=46eda08fa4411d1f3c6682a95eef1c9df4e94611b3949f49d4c7b43c0ed356a3 + kettle-jem (7.1.0) kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f kettle-soup-cover (3.0.4) kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa + kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 + markdown-merge (7.1.0) + markly (0.16.0) sha256=6f70d79e385b1efc9e171f74c81628826259039fe6c778e03c3924c71dac5511 + markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-x86_64-linux-gnu) sha256=379fae440b28915e3f19d752ce2dcf8465ed2b2fbefd2a7ca0dd497bc981a06a nomono (1.0.9) @@ -487,15 +791,19 @@ CHECKSUMS parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 parslet-toml-merge (7.1.0) + plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 + prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 + psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 + rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb @@ -530,15 +838,19 @@ CHECKSUMS rubocop-rspec_rails (2.32.0) sha256=4a0d641c72f6ebb957534f539d9d0a62c47abd8ce0d0aeee1ef4701e892a9100 rubocop-ruby3_2 (3.0.7) sha256=f53dd6d286fb05186214fc6ec116783e7f837030918e8931c05de773e98f8466 rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 + ruby-merge (7.1.0) ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 + rust-merge (7.1.0) + service_actor (3.9.4) sha256=e63b523630b9a7e62959b2a90113b08d2565b5de9c148557b281ef847c9539ce silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed + smorg-rb (7.1.0) sorbet-runtime (0.6.13347) sha256=54e7221d9f4b63f58aec79f3043752a9ba7810347c6ae0d903531591cc2d5f01 standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b @@ -555,15 +867,18 @@ CHECKSUMS token-resolver (2.0.5) sha256=b852f924287ffb58a440856e862b056c8ad97e74b4b2526cee43e0771f40c25c toml (0.3.0) sha256=0a91d0f76a9036e84e44f95693b12f58d358c1df3ac8e3b5271f2056ecc6e4b9 toml-merge (7.1.0) + toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 + typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 webrick (1.9.2) sha256=beb4a15fc474defed24a3bda4ffd88a490d517c9e4e6118c3edce59e45864131 yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 + yaml-merge (7.1.0) yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd @@ -571,6 +886,7 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 + zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH diff --git a/gems/zip-merge/.rubocop_gradual.lock b/gems/zip-merge/.rubocop_gradual.lock index 81ffacf36..f6e1b7f50 100644 --- a/gems/zip-merge/.rubocop_gradual.lock +++ b/gems/zip-merge/.rubocop_gradual.lock @@ -1,5 +1,5 @@ { - ".simplecov:1682986702": [ + ".simplecov:1235340821": [ [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] ], "Rakefile:1364122509": [ diff --git a/gems/zip-merge/.simplecov b/gems/zip-merge/.simplecov index 87cd6e559..58ef299fd 100644 --- a/gems/zip-merge/.simplecov +++ b/gems/zip-merge/.simplecov @@ -10,5 +10,5 @@ # If the values for minimum coverage need to change, they should be changed both there, # and in 2 places in .github/workflows/coverage.yml. SimpleCov.configure do - cover "lib/**/*.rb", "lib/**/*.rake", "exe/*.rb" + cover 'lib/**/*.rb', 'lib/**/*.rake', 'exe/*.rb' end diff --git a/gems/zip-merge/Gemfile b/gems/zip-merge/Gemfile index 3c23ba3d5..84a2f5edd 100644 --- a/gems/zip-merge/Gemfile +++ b/gems/zip-merge/Gemfile @@ -6,7 +6,7 @@ # kettle-jem will then preserve content between those markers across template runs. # kettle-jem:unfreeze -source "https://gem.coop" +source 'https://gem.coop' git_source(:codeberg) { |repo_name| "https://codeberg.org/#{repo_name}" } git_source(:gitlab) { |repo_name| "https://gitlab.com/#{repo_name}" } @@ -19,57 +19,53 @@ git_source(:gitlab) { |repo_name| "https://gitlab.com/#{repo_name}" } gemspec # Local workspace dependency wiring for *_local.gemfile overrides -nomono_requirements = ["~> 1.0", ">= 1.0.8"] -gem "nomono", *nomono_requirements, require: false # ruby >= 2.2 +nomono_requirements = ['~> 1.0', '>= 1.0.8'] +gem 'nomono', *nomono_requirements, require: false # ruby >= 2.2 # Direct sibling dependencies (env-switched via STRUCTUREDMERGE_DEV) direct_sibling_gems = %w[ tree_haver ] -direct_sibling_dev = ENV.fetch("STRUCTUREDMERGE_DEV", "") +direct_sibling_dev = ENV.fetch('STRUCTUREDMERGE_DEV', '') direct_sibling_local = !direct_sibling_dev.empty? && !%w[false 0 no off].include?(direct_sibling_dev.downcase) -direct_sibling_templating = ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? +direct_sibling_templating = ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero?) - direct_sibling_dev_was_set = ENV.key?("STRUCTUREDMERGE_DEV") - direct_sibling_dev_original = ENV.fetch("STRUCTUREDMERGE_DEV", nil) + (direct_sibling_local || + ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) + direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') + direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) begin nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path("Gemfile.lock", __dir__) + nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == "nomono" } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - if nomono_locked - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] - end - end - Kernel.send(:gem, "nomono", *nomono_activation_requirements) - require "nomono/bundler" - if direct_sibling_templating && !direct_sibling_local - ENV["STRUCTUREDMERGE_DEV"] = File.expand_path("..", __dir__) + Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked end + Kernel.send(:gem, 'nomono', *nomono_activation_requirements) + require 'nomono/bundler' + ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local eval_nomono_gems( gems: direct_sibling_gems, - prefix: "STRUCTUREDMERGE", - path_env: "STRUCTUREDMERGE_DEV", - root: ["src", "my", "structuredmerge"] + prefix: 'STRUCTUREDMERGE', + path_env: 'STRUCTUREDMERGE_DEV', + root: %w[src my structuredmerge] ) rescue LoadError - warn "Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies." + warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' ensure if direct_sibling_templating && !direct_sibling_local if direct_sibling_dev_was_set - ENV["STRUCTUREDMERGE_DEV"] = direct_sibling_dev_original + ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original else - ENV.delete("STRUCTUREDMERGE_DEV") + ENV.delete('STRUCTUREDMERGE_DEV') end end end @@ -156,28 +152,28 @@ if direct_sibling_gems.any? && end # Use released TSLP with the Ruby ABI platform-gem fix. -gem "tree_sitter_language_pack", "~> 1.13", ">= 1.13.3" +gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' # Templating (env-switched: STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local paths) -eval_gemfile "gemfiles/modular/templating.gemfile" if ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? +eval_gemfile 'gemfiles/modular/templating.gemfile' if ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? # Debugging -eval_gemfile "gemfiles/modular/debug.gemfile" +eval_gemfile 'gemfiles/modular/debug.gemfile' # Code Coverage (env-switched: KETTLE_DEV_DEV=true for local paths) -eval_gemfile "gemfiles/modular/coverage.gemfile" +eval_gemfile 'gemfiles/modular/coverage.gemfile' # Linting -eval_gemfile "gemfiles/modular/style.gemfile" +eval_gemfile 'gemfiles/modular/style.gemfile' # Documentation -eval_gemfile "gemfiles/modular/documentation.gemfile" +eval_gemfile 'gemfiles/modular/documentation.gemfile' # Optional -eval_gemfile "gemfiles/modular/optional.gemfile" +eval_gemfile 'gemfiles/modular/optional.gemfile' ### Std Lib Extracted Gems -eval_gemfile "gemfiles/modular/x_std_libs.gemfile" +eval_gemfile 'gemfiles/modular/x_std_libs.gemfile' # See unlocked_deps appraisal for more details on irb inclusion -gem "irb", "~> 1.17" # ruby >= 2.7 +gem 'irb', '~> 1.17' # ruby >= 2.7 diff --git a/gems/zip-merge/Gemfile.lock b/gems/zip-merge/Gemfile.lock index 1c084a06a..6e9d1d2d2 100644 --- a/gems/zip-merge/Gemfile.lock +++ b/gems/zip-merge/Gemfile.lock @@ -6,7 +6,7 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/tree_haver specs: tree_haver (7.1.0) citrus (~> 3.0) @@ -95,7 +95,7 @@ GEM rdoc (>= 4.0.0) reline (>= 0.4.2) json (2.21.1) - kettle-dev (2.3.8) + kettle-dev (2.3.9) emoji_regex (>= 15.0) kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) @@ -473,7 +473,7 @@ CHECKSUMS io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 - kettle-dev (2.3.8) sha256=9d716ff21c660a730cb4e8d41e2e2f0630a28167a354b6e2924e242102aef72c + kettle-dev (2.3.9) kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f kettle-soup-cover (3.0.4) kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 diff --git a/gems/zip-merge/Rakefile b/gems/zip-merge/Rakefile index c56992019..752226eed 100644 --- a/gems/zip-merge/Rakefile +++ b/gems/zip-merge/Rakefile @@ -130,23 +130,23 @@ end ### DUPLICATE DRIFT TASKS begin - require "kettle/drift" + require 'kettle/drift' Kettle::Drift.install_tasks rescue LoadError - desc("(stub) kettle:drift:check is unavailable") - task("kettle:drift:check") do + desc('(stub) kettle:drift:check is unavailable') + task('kettle:drift:check') do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc("(stub) kettle:drift:update is unavailable") - task("kettle:drift:update") do + desc('(stub) kettle:drift:update is unavailable') + task('kettle:drift:update') do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc("(stub) kettle:drift:force_update is unavailable") - task("kettle:drift:force_update") do + desc('(stub) kettle:drift:force_update is unavailable') + task('kettle:drift:force_update') do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc("(stub) kettle:drift is unavailable") - task("kettle:drift" => "kettle:drift:update") + desc('(stub) kettle:drift is unavailable') + task('kettle:drift' => 'kettle:drift:update') end ### TEMPLATING TASKS diff --git a/gems/zip-merge/bin/yard b/gems/zip-merge/bin/yard index a7e8b6eed..5d516ad6f 100755 --- a/gems/zip-merge/bin/yard +++ b/gems/zip-merge/bin/yard @@ -12,4 +12,4 @@ # `yard` / `bin/yard`. Keep this binstub as a handoff to the task so # humans and tools that reach for `bin/yard` still run the full docs # workflow with post-processing hooks. -exec("bundle", "exec", "rake", "yard") +exec('bundle', 'exec', 'rake', 'yard') diff --git a/gems/zip-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile b/gems/zip-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile index dec650815..b8392fab0 100644 --- a/gems/zip-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile +++ b/gems/zip-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.1 -gem "benchmark", "~> 0.5", ">= 0.5.0" # Removed from Std Lib in Ruby 4.0 +gem 'benchmark', '~> 0.5', '>= 0.5.0' # Removed from Std Lib in Ruby 4.0 diff --git a/gems/zip-merge/gemfiles/modular/benchmark/vHEAD.gemfile b/gems/zip-merge/gemfiles/modular/benchmark/vHEAD.gemfile index e1eb20c5e..af214aafa 100644 --- a/gems/zip-merge/gemfiles/modular/benchmark/vHEAD.gemfile +++ b/gems/zip-merge/gemfiles/modular/benchmark/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.1 -gem "benchmark", github: "ruby/benchmark", branch: "master" +gem 'benchmark', github: 'ruby/benchmark', branch: 'master' diff --git a/gems/zip-merge/gemfiles/modular/cgi/r4/v0.5.gemfile b/gems/zip-merge/gemfiles/modular/cgi/r4/v0.5.gemfile index 19ed967c3..17ad97260 100644 --- a/gems/zip-merge/gemfiles/modular/cgi/r4/v0.5.gemfile +++ b/gems/zip-merge/gemfiles/modular/cgi/r4/v0.5.gemfile @@ -1 +1 @@ -gem "cgi", "~> 0.5" +gem 'cgi', '~> 0.5' diff --git a/gems/zip-merge/gemfiles/modular/cgi/vHEAD.gemfile b/gems/zip-merge/gemfiles/modular/cgi/vHEAD.gemfile index ef8b816ce..650fbf033 100644 --- a/gems/zip-merge/gemfiles/modular/cgi/vHEAD.gemfile +++ b/gems/zip-merge/gemfiles/modular/cgi/vHEAD.gemfile @@ -1 +1 @@ -gem "cgi", ">= 0.5" +gem 'cgi', '>= 0.5' diff --git a/gems/zip-merge/gemfiles/modular/coverage.gemfile b/gems/zip-merge/gemfiles/modular/coverage.gemfile index 52d737872..b93014b6b 100644 --- a/gems/zip-merge/gemfiles/modular/coverage.gemfile +++ b/gems/zip-merge/gemfiles/modular/coverage.gemfile @@ -4,11 +4,11 @@ # Set KETTLE_DEV_DEV=true for local development with path-based dependencies. # When false (default / CI), remote released gems are used. -if ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false").zero? +if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? # Coverage (remote/released) platform :mri do - gem "kettle-soup-cover", "~> 3.0", ">= 3.0.3", require: false + gem 'kettle-soup-cover', '~> 3.0', '>= 3.0.3', require: false end else - eval_gemfile "coverage_local.gemfile" + eval_gemfile 'coverage_local.gemfile' end diff --git a/gems/zip-merge/gemfiles/modular/coverage_local.gemfile b/gems/zip-merge/gemfiles/modular/coverage_local.gemfile index 7f013d351..42da84fab 100644 --- a/gems/zip-merge/gemfiles/modular/coverage_local.gemfile +++ b/gems/zip-merge/gemfiles/modular/coverage_local.gemfile @@ -11,21 +11,19 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] -nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) +nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] +nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == "nomono" } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - if nomono_locked - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] - end + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked end -Kernel.send(:gem, "nomono", *nomono_activation_requirements) -require "nomono/bundler" +Kernel.send(:gem, 'nomono', *nomono_activation_requirements) +require 'nomono/bundler' local_gems = %w[kettle-dev kettle-test kettle-soup-cover kettle-drift] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) @@ -35,21 +33,21 @@ local_gems_to_eval = local_gems - %w[zip-merge] - declared_gems platform :mri do eval_nomono_gems( gems: local_gems_to_eval, - prefix: "KETTLE_DEV", - path_env: "KETTLE_DEV_DEV", - vendored_gems_env: "VENDORED_GEMS", - vendor_gem_dir_env: "VENDOR_GEM_DIR", - debug_env: "KETTLE_DEV_DEBUG" + prefix: 'KETTLE_DEV', + path_env: 'KETTLE_DEV_DEV', + vendored_gems_env: 'VENDORED_GEMS', + vendor_gem_dir_env: 'VENDOR_GEM_DIR', + debug_env: 'KETTLE_DEV_DEBUG' ) - if ENV.fetch("GALTZO_FLOSS_DEV", "false").casecmp("false") != 0 + if ENV.fetch('GALTZO_FLOSS_DEV', 'false').casecmp('false') != 0 eval_nomono_gems( gems: %w[turbo_tests2], - prefix: "GALTZO_FLOSS", - path_env: "GALTZO_FLOSS_DEV", - vendored_gems_env: "GALTZO_FLOSS_VENDORED_GEMS", - vendor_gem_dir_env: "GALTZO_FLOSS_VENDOR_GEM_DIR", - debug_env: "GALTZO_FLOSS_DEBUG" + prefix: 'GALTZO_FLOSS', + path_env: 'GALTZO_FLOSS_DEV', + vendored_gems_env: 'GALTZO_FLOSS_VENDORED_GEMS', + vendor_gem_dir_env: 'GALTZO_FLOSS_VENDOR_GEM_DIR', + debug_env: 'GALTZO_FLOSS_DEBUG' ) end end diff --git a/gems/zip-merge/gemfiles/modular/debug.gemfile b/gems/zip-merge/gemfiles/modular/debug.gemfile index 4e15b1a3a..eed8d4d1e 100644 --- a/gems/zip-merge/gemfiles/modular/debug.gemfile +++ b/gems/zip-merge/gemfiles/modular/debug.gemfile @@ -13,10 +13,10 @@ platform :mri do # Debugging - Ensure ENV["DEBUG"] == "true" to use debuggers within spec suite # Use binding.break, binding.b, or debugger in code - gem "debug", ">= 1.1" # ruby >= 2.7 + gem 'debug', '>= 1.1' # ruby >= 2.7 # Dev Console - Binding.pry - Irb replacement # gem "pry", "~> 0.14" # ruby >= 2.0 end -gem "gem_bench", "~> 2.0", ">= 2.0.5" +gem 'gem_bench', '~> 2.0', '>= 2.0.5' diff --git a/gems/zip-merge/gemfiles/modular/documentation.gemfile b/gems/zip-merge/gemfiles/modular/documentation.gemfile index d8215416e..9d4535f12 100644 --- a/gems/zip-merge/gemfiles/modular/documentation.gemfile +++ b/gems/zip-merge/gemfiles/modular/documentation.gemfile @@ -7,20 +7,20 @@ # # Documentation -gem "kramdown", "~> 2.5", ">= 2.5.2", require: false # Ruby >= 2.5 -gem "kramdown-parser-gfm", "~> 1.1", require: false # Ruby >= 2.3 -gem "yaml-converter", "~> 0.2", ">= 0.2.3", require: false # Ruby >= 3.2 -gem "yard", "~> 0.9", ">= 0.9.45", require: false -gem "yard-junk", "~> 0.1", ">= 0.1.0", require: false # Ruby >= 3.1 -gem "yard-relative_markdown_links", "~> 0.6", require: false +gem 'kramdown', '~> 2.5', '>= 2.5.2', require: false # Ruby >= 2.5 +gem 'kramdown-parser-gfm', '~> 1.1', require: false # Ruby >= 2.3 +gem 'yaml-converter', '~> 0.2', '>= 0.2.3', require: false # Ruby >= 3.2 +gem 'yard', '~> 0.9', '>= 0.9.45', require: false +gem 'yard-junk', '~> 0.1', '>= 0.1.0', require: false # Ruby >= 3.1 +gem 'yard-relative_markdown_links', '~> 0.6', require: false -if ENV.fetch("GALTZO_FLOSS_DEV", "false").casecmp("false").zero? - gem "yard-fence", "~> 0.9", ">= 0.9.6", require: false # Ruby >= 3.2 - gem "yard-timekeeper", "~> 0.2", ">= 0.2.4", require: false - gem "yard-yaml", "~> 0.2", ">= 0.2.3", require: false +if ENV.fetch('GALTZO_FLOSS_DEV', 'false').casecmp('false').zero? + gem 'yard-fence', '~> 0.9', '>= 0.9.6', require: false # Ruby >= 3.2 + gem 'yard-timekeeper', '~> 0.2', '>= 0.2.4', require: false + gem 'yard-yaml', '~> 0.2', '>= 0.2.3', require: false else - eval_gemfile "documentation_local.gemfile" + eval_gemfile 'documentation_local.gemfile' end # Std Lib extractions -gem "rdoc", "~> 6.11", require: false unless ENV.fetch("KJ_FRAMEWORK_MATRIX_GEM", "") == "rdoc" +gem 'rdoc', '~> 6.11', require: false unless ENV.fetch('KJ_FRAMEWORK_MATRIX_GEM', '') == 'rdoc' diff --git a/gems/zip-merge/gemfiles/modular/documentation_local.gemfile b/gems/zip-merge/gemfiles/modular/documentation_local.gemfile index 54b4d5d22..770f4274e 100644 --- a/gems/zip-merge/gemfiles/modular/documentation_local.gemfile +++ b/gems/zip-merge/gemfiles/modular/documentation_local.gemfile @@ -11,21 +11,19 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] -nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) +nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] +nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == "nomono" } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - if nomono_locked - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] - end + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked end -Kernel.send(:gem, "nomono", *nomono_activation_requirements) -require "nomono/bundler" +Kernel.send(:gem, 'nomono', *nomono_activation_requirements) +require 'nomono/bundler' local_gems = %w[yard-fence yard-timekeeper yard-yaml] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) @@ -34,9 +32,9 @@ local_gems_to_eval = local_gems - %w[zip-merge] - declared_gems # export GALTZO_FLOSS_DEV=/path/to/galtzo-floss eval_nomono_gems( gems: local_gems_to_eval, - prefix: "GALTZO_FLOSS", - path_env: "GALTZO_FLOSS_DEV", - vendored_gems_env: "GALTZO_FLOSS_VENDORED_GEMS", - vendor_gem_dir_env: "GALTZO_FLOSS_VENDOR_GEM_DIR", - debug_env: "GALTZO_FLOSS_DEBUG" + prefix: 'GALTZO_FLOSS', + path_env: 'GALTZO_FLOSS_DEV', + vendored_gems_env: 'GALTZO_FLOSS_VENDORED_GEMS', + vendor_gem_dir_env: 'GALTZO_FLOSS_VENDOR_GEM_DIR', + debug_env: 'GALTZO_FLOSS_DEBUG' ) diff --git a/gems/zip-merge/gemfiles/modular/erb/r2/v3.0.gemfile b/gems/zip-merge/gemfiles/modular/erb/r2/v3.0.gemfile index c03bd8d85..7c83a239b 100644 --- a/gems/zip-merge/gemfiles/modular/erb/r2/v3.0.gemfile +++ b/gems/zip-merge/gemfiles/modular/erb/r2/v3.0.gemfile @@ -1 +1 @@ -gem "erb", "~> 3.0" # ruby >= 2.7.0 +gem 'erb', '~> 3.0' # ruby >= 2.7.0 diff --git a/gems/zip-merge/gemfiles/modular/erb/r3/v5.0.gemfile b/gems/zip-merge/gemfiles/modular/erb/r3/v5.0.gemfile index 1bd029cc1..ec7ff451f 100644 --- a/gems/zip-merge/gemfiles/modular/erb/r3/v5.0.gemfile +++ b/gems/zip-merge/gemfiles/modular/erb/r3/v5.0.gemfile @@ -1 +1 @@ -gem "erb", "~> 6.0", ">= 6.0.6" # ruby >= 3.2.0 +gem 'erb', '~> 6.0', '>= 6.0.6' # ruby >= 3.2.0 diff --git a/gems/zip-merge/gemfiles/modular/erb/r4/v5.0.gemfile b/gems/zip-merge/gemfiles/modular/erb/r4/v5.0.gemfile index 1bd029cc1..ec7ff451f 100644 --- a/gems/zip-merge/gemfiles/modular/erb/r4/v5.0.gemfile +++ b/gems/zip-merge/gemfiles/modular/erb/r4/v5.0.gemfile @@ -1 +1 @@ -gem "erb", "~> 6.0", ">= 6.0.6" # ruby >= 3.2.0 +gem 'erb', '~> 6.0', '>= 6.0.6' # ruby >= 3.2.0 diff --git a/gems/zip-merge/gemfiles/modular/erb/vHEAD.gemfile b/gems/zip-merge/gemfiles/modular/erb/vHEAD.gemfile index 48fee4218..ea0101185 100644 --- a/gems/zip-merge/gemfiles/modular/erb/vHEAD.gemfile +++ b/gems/zip-merge/gemfiles/modular/erb/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 3.2 -gem "erb", github: "ruby/erb", branch: "master" +gem 'erb', github: 'ruby/erb', branch: 'master' diff --git a/gems/zip-merge/gemfiles/modular/json/truffleruby_22_3.gemfile b/gems/zip-merge/gemfiles/modular/json/truffleruby_22_3.gemfile index b0e69ab11..9b2f8d96a 100644 --- a/gems/zip-merge/gemfiles/modular/json/truffleruby_22_3.gemfile +++ b/gems/zip-merge/gemfiles/modular/json/truffleruby_22_3.gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -if RUBY_ENGINE == "truffleruby" && RUBY_ENGINE_VERSION.start_with?("22.3") +if RUBY_ENGINE == 'truffleruby' && RUBY_ENGINE_VERSION.start_with?('22.3') # TruffleRuby 22.3 ships the json default gem from its emulated MRI Ruby. - gem "json", "= 2.5.1" + gem 'json', '= 2.5.1' end diff --git a/gems/zip-merge/gemfiles/modular/json/truffleruby_23_0.gemfile b/gems/zip-merge/gemfiles/modular/json/truffleruby_23_0.gemfile index 7b2660a2b..d787a5ef4 100644 --- a/gems/zip-merge/gemfiles/modular/json/truffleruby_23_0.gemfile +++ b/gems/zip-merge/gemfiles/modular/json/truffleruby_23_0.gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -if RUBY_ENGINE == "truffleruby" && RUBY_ENGINE_VERSION.start_with?("23.0") +if RUBY_ENGINE == 'truffleruby' && RUBY_ENGINE_VERSION.start_with?('23.0') # TruffleRuby 23.0 ships the json default gem from its emulated MRI Ruby. - gem "json", "= 2.6.1" + gem 'json', '= 2.6.1' end diff --git a/gems/zip-merge/gemfiles/modular/json/truffleruby_23_1.gemfile b/gems/zip-merge/gemfiles/modular/json/truffleruby_23_1.gemfile index dfa21f2e4..d78486b0e 100644 --- a/gems/zip-merge/gemfiles/modular/json/truffleruby_23_1.gemfile +++ b/gems/zip-merge/gemfiles/modular/json/truffleruby_23_1.gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -if RUBY_ENGINE == "truffleruby" && RUBY_ENGINE_VERSION.start_with?("23.1") +if RUBY_ENGINE == 'truffleruby' && RUBY_ENGINE_VERSION.start_with?('23.1') # TruffleRuby 23.1 ships the json default gem from its emulated MRI Ruby. - gem "json", "= 2.6.3" + gem 'json', '= 2.6.3' end diff --git a/gems/zip-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile b/gems/zip-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile index 42e9d9bd4..e27f1bbae 100644 --- a/gems/zip-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile +++ b/gems/zip-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 -gem "mutex_m", "~> 0.2" +gem 'mutex_m', '~> 0.2' diff --git a/gems/zip-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile b/gems/zip-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile index 42e9d9bd4..e27f1bbae 100644 --- a/gems/zip-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile +++ b/gems/zip-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 -gem "mutex_m", "~> 0.2" +gem 'mutex_m', '~> 0.2' diff --git a/gems/zip-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile b/gems/zip-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile index 42e9d9bd4..e27f1bbae 100644 --- a/gems/zip-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile +++ b/gems/zip-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 -gem "mutex_m", "~> 0.2" +gem 'mutex_m', '~> 0.2' diff --git a/gems/zip-merge/gemfiles/modular/mutex_m/vHEAD.gemfile b/gems/zip-merge/gemfiles/modular/mutex_m/vHEAD.gemfile index 8af3b6fca..9dac2f6cb 100644 --- a/gems/zip-merge/gemfiles/modular/mutex_m/vHEAD.gemfile +++ b/gems/zip-merge/gemfiles/modular/mutex_m/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 (dependency of omniauth) -gem "mutex_m", github: "ruby/mutex_m", branch: "master" +gem 'mutex_m', github: 'ruby/mutex_m', branch: 'master' diff --git a/gems/zip-merge/gemfiles/modular/optional.gemfile b/gems/zip-merge/gemfiles/modular/optional.gemfile index 80bc45196..9ea429538 100644 --- a/gems/zip-merge/gemfiles/modular/optional.gemfile +++ b/gems/zip-merge/gemfiles/modular/optional.gemfile @@ -9,8 +9,8 @@ # Optional dependencies are not depended on directly, but may be used if present. # Required for curated binstubs generated by kettle-jem install -gem "rbs", ">= 3.0", require: false # ruby >= 3.1 +gem 'rbs', '>= 3.0', require: false # ruby >= 3.1 # Required for kettle-pre-release # URL parsing with Unicode support (falls back to URI if not available) -gem "addressable", ">= 2.8", "< 3" # ruby >= 2.2 +gem 'addressable', '>= 2.8', '< 3' # ruby >= 2.2 diff --git a/gems/zip-merge/gemfiles/modular/rspec.gemfile b/gems/zip-merge/gemfiles/modular/rspec.gemfile index 72fdf8b7f..2af210a41 100644 --- a/gems/zip-merge/gemfiles/modular/rspec.gemfile +++ b/gems/zip-merge/gemfiles/modular/rspec.gemfile @@ -1,4 +1,4 @@ -gem "rspec_junit_formatter", - github: "pboling/rspec_junit_formatter", - branch: "main", - ref: "9e6bcaaedd49477b62878ed568dc4ada5cc7cb5e" +gem 'rspec_junit_formatter', + github: 'pboling/rspec_junit_formatter', + branch: 'main', + ref: '9e6bcaaedd49477b62878ed568dc4ada5cc7cb5e' diff --git a/gems/zip-merge/gemfiles/modular/runtime_heads.gemfile b/gems/zip-merge/gemfiles/modular/runtime_heads.gemfile index 02f134c7f..ebf17c529 100644 --- a/gems/zip-merge/gemfiles/modular/runtime_heads.gemfile +++ b/gems/zip-merge/gemfiles/modular/runtime_heads.gemfile @@ -8,4 +8,4 @@ # Test against HEAD of runtime dependencies so we can proactively file bugs -eval_gemfile("x_std_libs/vHEAD.gemfile") +eval_gemfile('x_std_libs/vHEAD.gemfile') diff --git a/gems/zip-merge/gemfiles/modular/stringio/r2/v3.0.gemfile b/gems/zip-merge/gemfiles/modular/stringio/r2/v3.0.gemfile index e85bb18ee..3616f4e3a 100644 --- a/gems/zip-merge/gemfiles/modular/stringio/r2/v3.0.gemfile +++ b/gems/zip-merge/gemfiles/modular/stringio/r2/v3.0.gemfile @@ -2,4 +2,4 @@ # NOT SEMVER # Version 3.0.7 dropped support for Ruby <= 2.7 # Version 3.0.0 dropped support for Ruby <= 2.4 -gem "stringio", ">= 3.0" +gem 'stringio', '>= 3.0' diff --git a/gems/zip-merge/gemfiles/modular/stringio/r3/v3.0.gemfile b/gems/zip-merge/gemfiles/modular/stringio/r3/v3.0.gemfile index e85bb18ee..3616f4e3a 100644 --- a/gems/zip-merge/gemfiles/modular/stringio/r3/v3.0.gemfile +++ b/gems/zip-merge/gemfiles/modular/stringio/r3/v3.0.gemfile @@ -2,4 +2,4 @@ # NOT SEMVER # Version 3.0.7 dropped support for Ruby <= 2.7 # Version 3.0.0 dropped support for Ruby <= 2.4 -gem "stringio", ">= 3.0" +gem 'stringio', '>= 3.0' diff --git a/gems/zip-merge/gemfiles/modular/stringio/r4/v3.0.gemfile b/gems/zip-merge/gemfiles/modular/stringio/r4/v3.0.gemfile index e85bb18ee..3616f4e3a 100644 --- a/gems/zip-merge/gemfiles/modular/stringio/r4/v3.0.gemfile +++ b/gems/zip-merge/gemfiles/modular/stringio/r4/v3.0.gemfile @@ -2,4 +2,4 @@ # NOT SEMVER # Version 3.0.7 dropped support for Ruby <= 2.7 # Version 3.0.0 dropped support for Ruby <= 2.4 -gem "stringio", ">= 3.0" +gem 'stringio', '>= 3.0' diff --git a/gems/zip-merge/gemfiles/modular/stringio/vHEAD.gemfile b/gems/zip-merge/gemfiles/modular/stringio/vHEAD.gemfile index 5f2a74126..78f5f5d8a 100644 --- a/gems/zip-merge/gemfiles/modular/stringio/vHEAD.gemfile +++ b/gems/zip-merge/gemfiles/modular/stringio/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 (dependency of omniauth) -gem "stringio", github: "ruby/stringio", branch: "master" +gem 'stringio', github: 'ruby/stringio', branch: 'master' diff --git a/gems/zip-merge/gemfiles/modular/style.gemfile b/gems/zip-merge/gemfiles/modular/style.gemfile index 35de4dcd6..4dbcc02c0 100644 --- a/gems/zip-merge/gemfiles/modular/style.gemfile +++ b/gems/zip-merge/gemfiles/modular/style.gemfile @@ -9,23 +9,23 @@ # Style tasks run on the latest Ruby; RuboCop-LTS selects the compatibility # rules for the configured Ruby floor independently from task dependency floors. -gem "reek", "~> 6.5", ">= 6.5.0" +gem 'reek', '~> 6.5', '>= 6.5.0' platform :mri do - gem "appraisal2-rubocop", "~> 1.0", ">= 1.0.0", require: false - gem "rubocop-gradual", "~> 0.4", ">= 0.4.0" - gem "rubocop-minitest", "~> 0.40", ">= 0.40.0" - gem "rubocop-on-rbs", "~> 2.0", ">= 2.0.0" # ruby >= 3.2.0 + gem 'appraisal2-rubocop', '~> 1.0', '>= 1.0.0', require: false + gem 'rubocop-gradual', '~> 0.4', '>= 0.4.0' + gem 'rubocop-minitest', '~> 0.40', '>= 0.40.0' + gem 'rubocop-on-rbs', '~> 2.0', '>= 2.0.0' # ruby >= 3.2.0 # gem "rubocop", "~> 1.73", ">= 1.73.2" # constrained by standard - gem "rubocop-packaging", "~> 0.6", ">= 0.6.0" - gem "standard", "~> 1.56", ">= 1.56.0" + gem 'rubocop-packaging', '~> 0.6', '>= 0.6.0' + gem 'standard', '~> 1.56', '>= 1.56.0' - if ENV.fetch("RUBOCOP_LTS_LOCAL", "false").casecmp("false").zero? + if ENV.fetch('RUBOCOP_LTS_LOCAL', 'false').casecmp('false').zero? declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) - gem "rubocop-lts", "~> 24.2", ">= 24.2.1" unless declared_gems.include?("rubocop-lts") - gem "rubocop-lts-rspec", "~> 1.0", ">= 1.0.5" unless declared_gems.include?("rubocop-lts-rspec") - gem "rubocop-ruby3_2", "~> 3.0", ">= 3.0.6" unless declared_gems.include?("rubocop-ruby3_2") + gem 'rubocop-lts', '~> 24.2', '>= 24.2.1' unless declared_gems.include?('rubocop-lts') + gem 'rubocop-lts-rspec', '~> 1.0', '>= 1.0.5' unless declared_gems.include?('rubocop-lts-rspec') + gem 'rubocop-ruby3_2', '~> 3.0', '>= 3.0.6' unless declared_gems.include?('rubocop-ruby3_2') else - eval_gemfile("style_local.gemfile") + eval_gemfile('style_local.gemfile') end end diff --git a/gems/zip-merge/gemfiles/modular/style_local.gemfile b/gems/zip-merge/gemfiles/modular/style_local.gemfile index 5ac7cf26d..b034ea58a 100644 --- a/gems/zip-merge/gemfiles/modular/style_local.gemfile +++ b/gems/zip-merge/gemfiles/modular/style_local.gemfile @@ -14,21 +14,19 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] -nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) +nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] +nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == "nomono" } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - if nomono_locked - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] - end + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked end -Kernel.send(:gem, "nomono", *nomono_activation_requirements) -require "nomono/bundler" +Kernel.send(:gem, 'nomono', *nomono_activation_requirements) +require 'nomono/bundler' local_gems = %w[rubocop-lts rubocop-lts-rspec rubocop-ruby3_2 standard-rubocop-lts] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) @@ -38,11 +36,11 @@ local_gems_to_eval = local_gems - %w[zip-merge] - declared_gems platform :mri do eval_nomono_gems( gems: local_gems_to_eval, - prefix: "RUBOCOP_LTS", - path_env: "RUBOCOP_LTS_LOCAL", - vendored_gems_env: "VENDORED_GEMS", - vendor_gem_dir_env: "VENDOR_GEM_DIR", - debug_env: "RUBOCOP_LTS_DEBUG", - root: ["src", "rubocop-lts"] + prefix: 'RUBOCOP_LTS', + path_env: 'RUBOCOP_LTS_LOCAL', + vendored_gems_env: 'VENDORED_GEMS', + vendor_gem_dir_env: 'VENDOR_GEM_DIR', + debug_env: 'RUBOCOP_LTS_DEBUG', + root: %w[src rubocop-lts] ) end diff --git a/gems/zip-merge/gemfiles/modular/templating.gemfile b/gems/zip-merge/gemfiles/modular/templating.gemfile index 47138ffbb..a672de184 100644 --- a/gems/zip-merge/gemfiles/modular/templating.gemfile +++ b/gems/zip-merge/gemfiles/modular/templating.gemfile @@ -1,18 +1,18 @@ # frozen_string_literal: true -structuredmerge_remote = ENV.fetch("STRUCTUREDMERGE_DEV", "false").casecmp("false").zero? -kettle_remote = ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false").zero? +structuredmerge_remote = ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false').zero? +kettle_remote = ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? if structuredmerge_remote # Parser dependencies for released installs. - gem "tree_sitter_language_pack", "~> 1.13", ">= 1.13.3" + gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' # Merge recipes for released installs. - gem "kettle-jem", ">= 7.0" + gem 'kettle-jem', '>= 7.0' end if kettle_remote # Template/plugin checks for released installs. - gem "kettle-drift", "~> 1.0", ">= 1.0.6", require: false + gem 'kettle-drift', '~> 1.0', '>= 1.0.6', require: false end # Set STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local development with path-based dependencies. @@ -21,4 +21,4 @@ end # # Set KETTLE_DEV_DEV=/path/to/my for local development with Kettle plugin gems. # When false (default / CI), released Kettle plugin gems are used. -eval_gemfile "templating_local.gemfile" unless structuredmerge_remote && kettle_remote +eval_gemfile 'templating_local.gemfile' unless structuredmerge_remote && kettle_remote diff --git a/gems/zip-merge/gemfiles/modular/templating_local.gemfile b/gems/zip-merge/gemfiles/modular/templating_local.gemfile index 81377c103..8dbb2f55f 100644 --- a/gems/zip-merge/gemfiles/modular/templating_local.gemfile +++ b/gems/zip-merge/gemfiles/modular/templating_local.gemfile @@ -12,21 +12,19 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] -nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) +nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] +nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == "nomono" } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - if nomono_locked - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] - end + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked end -Kernel.send(:gem, "nomono", *nomono_activation_requirements) -require "nomono/bundler" +Kernel.send(:gem, 'nomono', *nomono_activation_requirements) +require 'nomono/bundler' structuredmerge_local_gems = %w[ tree_haver @@ -69,25 +67,25 @@ structuredmerge_local_gems_to_eval = structuredmerge_local_gems - %w[zip-merge] kettle_dev_local_gems_to_eval = kettle_dev_local_gems - %w[zip-merge] - declared_gems platform :mri do - if ENV.fetch("STRUCTUREDMERGE_DEV", "false").casecmp("false") != 0 + if ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false') != 0 eval_nomono_gems( gems: structuredmerge_local_gems_to_eval, - prefix: "STRUCTUREDMERGE", - path_env: "STRUCTUREDMERGE_DEV", - vendored_gems_env: "VENDORED_GEMS", - vendor_gem_dir_env: "VENDOR_GEM_DIR", - debug_env: "STRUCTUREDMERGE_DEBUG" + prefix: 'STRUCTUREDMERGE', + path_env: 'STRUCTUREDMERGE_DEV', + vendored_gems_env: 'VENDORED_GEMS', + vendor_gem_dir_env: 'VENDOR_GEM_DIR', + debug_env: 'STRUCTUREDMERGE_DEBUG' ) end - if ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false") != 0 + if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false') != 0 eval_nomono_gems( gems: kettle_dev_local_gems_to_eval, - prefix: "KETTLE_DEV", - path_env: "KETTLE_DEV_DEV", - vendored_gems_env: "VENDORED_GEMS", - vendor_gem_dir_env: "VENDOR_GEM_DIR", - debug_env: "KETTLE_DEV_DEBUG" + prefix: 'KETTLE_DEV', + path_env: 'KETTLE_DEV_DEV', + vendored_gems_env: 'VENDORED_GEMS', + vendor_gem_dir_env: 'VENDOR_GEM_DIR', + debug_env: 'KETTLE_DEV_DEBUG' ) end end diff --git a/gems/zip-merge/gemfiles/modular/webrick/r4/v1.9.gemfile b/gems/zip-merge/gemfiles/modular/webrick/r4/v1.9.gemfile index eaab4a473..b1329ba84 100644 --- a/gems/zip-merge/gemfiles/modular/webrick/r4/v1.9.gemfile +++ b/gems/zip-merge/gemfiles/modular/webrick/r4/v1.9.gemfile @@ -1 +1 @@ -gem "webrick", "~> 1.9" +gem 'webrick', '~> 1.9' diff --git a/gems/zip-merge/gemfiles/modular/webrick/vHEAD.gemfile b/gems/zip-merge/gemfiles/modular/webrick/vHEAD.gemfile index 8a789b634..c7e6f81a1 100644 --- a/gems/zip-merge/gemfiles/modular/webrick/vHEAD.gemfile +++ b/gems/zip-merge/gemfiles/modular/webrick/vHEAD.gemfile @@ -1 +1 @@ -gem "webrick", ">= 1.9" +gem 'webrick', '>= 1.9' diff --git a/gems/zip-merge/gemfiles/modular/x_std_libs.gemfile b/gems/zip-merge/gemfiles/modular/x_std_libs.gemfile index 77aad43f2..b1f43c097 100644 --- a/gems/zip-merge/gemfiles/modular/x_std_libs.gemfile +++ b/gems/zip-merge/gemfiles/modular/x_std_libs.gemfile @@ -1,12 +1,12 @@ ### Std Lib Extracted Gems ruby_version = Gem::Version.new(RUBY_VERSION) -if ruby_version >= Gem::Version.new("4.0") - eval_gemfile "x_std_libs/r4/libs.gemfile" -elsif ruby_version >= Gem::Version.new("3.2") - eval_gemfile "x_std_libs/r3/libs.gemfile" -elsif ruby_version >= Gem::Version.new("3.1") - eval_gemfile "x_std_libs/r3.1/libs.gemfile" +if ruby_version >= Gem::Version.new('4.0') + eval_gemfile 'x_std_libs/r4/libs.gemfile' +elsif ruby_version >= Gem::Version.new('3.2') + eval_gemfile 'x_std_libs/r3/libs.gemfile' +elsif ruby_version >= Gem::Version.new('3.1') + eval_gemfile 'x_std_libs/r3.1/libs.gemfile' else - eval_gemfile "x_std_libs/r2/libs.gemfile" + eval_gemfile 'x_std_libs/r2/libs.gemfile' end diff --git a/gems/zip-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile b/gems/zip-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile index 441c4f03a..16a5e3d70 100644 --- a/gems/zip-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile +++ b/gems/zip-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile @@ -1,3 +1,3 @@ -eval_gemfile "../../erb/r2/v3.0.gemfile" -eval_gemfile "../../mutex_m/r2/v0.3.gemfile" -eval_gemfile "../../stringio/r2/v3.0.gemfile" +eval_gemfile '../../erb/r2/v3.0.gemfile' +eval_gemfile '../../mutex_m/r2/v0.3.gemfile' +eval_gemfile '../../stringio/r2/v3.0.gemfile' diff --git a/gems/zip-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile b/gems/zip-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile index c293a3ddd..220ff95c1 100644 --- a/gems/zip-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile +++ b/gems/zip-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile @@ -1,3 +1,3 @@ -eval_gemfile "../../erb/r3/v5.0.gemfile" -eval_gemfile "../../mutex_m/r3/v0.3.gemfile" -eval_gemfile "../../stringio/r3/v3.0.gemfile" +eval_gemfile '../../erb/r3/v5.0.gemfile' +eval_gemfile '../../mutex_m/r3/v0.3.gemfile' +eval_gemfile '../../stringio/r3/v3.0.gemfile' diff --git a/gems/zip-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile b/gems/zip-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile index eb5574247..e2f6501eb 100644 --- a/gems/zip-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile +++ b/gems/zip-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile @@ -1,6 +1,6 @@ -eval_gemfile "../../erb/r4/v5.0.gemfile" -eval_gemfile "../../mutex_m/r4/v0.3.gemfile" -eval_gemfile "../../stringio/r4/v3.0.gemfile" -eval_gemfile "../../benchmark/r4/v0.5.gemfile" -eval_gemfile "../../cgi/r4/v0.5.gemfile" -eval_gemfile "../../webrick/r4/v1.9.gemfile" +eval_gemfile '../../erb/r4/v5.0.gemfile' +eval_gemfile '../../mutex_m/r4/v0.3.gemfile' +eval_gemfile '../../stringio/r4/v3.0.gemfile' +eval_gemfile '../../benchmark/r4/v0.5.gemfile' +eval_gemfile '../../cgi/r4/v0.5.gemfile' +eval_gemfile '../../webrick/r4/v1.9.gemfile' diff --git a/gems/zip-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile b/gems/zip-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile index d4d5b16c9..ab75cccf1 100644 --- a/gems/zip-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile +++ b/gems/zip-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile @@ -1,6 +1,6 @@ -eval_gemfile "../erb/vHEAD.gemfile" -eval_gemfile "../mutex_m/vHEAD.gemfile" -eval_gemfile "../stringio/vHEAD.gemfile" -eval_gemfile "../benchmark/vHEAD.gemfile" -eval_gemfile "../cgi/vHEAD.gemfile" -eval_gemfile "../webrick/vHEAD.gemfile" +eval_gemfile '../erb/vHEAD.gemfile' +eval_gemfile '../mutex_m/vHEAD.gemfile' +eval_gemfile '../stringio/vHEAD.gemfile' +eval_gemfile '../benchmark/vHEAD.gemfile' +eval_gemfile '../cgi/vHEAD.gemfile' +eval_gemfile '../webrick/vHEAD.gemfile' diff --git a/gems/zip-merge/lib/zip/merge/version.rb b/gems/zip-merge/lib/zip/merge/version.rb index 7f72cea08..b04b544a9 100644 --- a/gems/zip-merge/lib/zip/merge/version.rb +++ b/gems/zip-merge/lib/zip/merge/version.rb @@ -3,7 +3,7 @@ module Zip module Merge module Version - VERSION = "7.1.0" + VERSION = '7.1.0' end VERSION = Version::VERSION # Traditional Constant Location end diff --git a/gems/zip-merge/spec/spec_helper.rb b/gems/zip-merge/spec/spec_helper.rb index e299a8de9..e66df8dcb 100644 --- a/gems/zip-merge/spec/spec_helper.rb +++ b/gems/zip-merge/spec/spec_helper.rb @@ -7,16 +7,16 @@ # NOTE: Gemfiles for non-coverage appraisals may not have kettle-soup-cover. # The rescue LoadError handles that scenario. begin - require "kettle-soup-cover" + require 'kettle-soup-cover' if Kettle::Soup::Cover::DO_COV # Requiring simplecov loads the project-local `.simplecov`. - require "simplecov" - require "kettle/soup/cover/config" + require 'simplecov' + require 'kettle/soup/cover/config' SimpleCov.start end -rescue LoadError => error +rescue LoadError => e # check the error message and re-raise when unexpected - raise error unless error.message.include?("kettle") + raise e unless e.message.include?('kettle') end # External RSpec & related config From cdc5d137b5ca113a92603c388830b6973b4f4836 Mon Sep 17 00:00:00 2001 From: "Peter H. Boling" Date: Tue, 21 Jul 2026 18:05:26 -0600 Subject: [PATCH 169/188] =?UTF-8?q?=F0=9F=8E=A8=20Template=20bootstrap=20b?= =?UTF-8?q?y=20kettle-jem=20v7.1.0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gems/citrus-toml-merge/.kettle-drift.lock | 144 +++++++- gems/citrus-toml-merge/.simplecov | 8 +- gems/citrus-toml-merge/Gemfile.lock | 14 +- .../modular/benchmark/r4/v0.5.gemfile | 2 +- .../gemfiles/modular/benchmark/vHEAD.gemfile | 2 +- .../gemfiles/modular/cgi/r4/v0.5.gemfile | 2 +- .../gemfiles/modular/cgi/vHEAD.gemfile | 2 +- .../gemfiles/modular/coverage.gemfile | 6 +- .../gemfiles/modular/coverage_local.gemfile | 42 ++- .../gemfiles/modular/debug.gemfile | 4 +- .../gemfiles/modular/documentation.gemfile | 24 +- .../modular/documentation_local.gemfile | 30 +- .../gemfiles/modular/erb/r2/v3.0.gemfile | 2 +- .../gemfiles/modular/erb/r3/v5.0.gemfile | 2 +- .../gemfiles/modular/erb/r4/v5.0.gemfile | 2 +- .../gemfiles/modular/erb/vHEAD.gemfile | 2 +- .../modular/json/truffleruby_22_3.gemfile | 4 +- .../modular/json/truffleruby_23_0.gemfile | 4 +- .../modular/json/truffleruby_23_1.gemfile | 4 +- .../gemfiles/modular/mutex_m/r2/v0.3.gemfile | 2 +- .../gemfiles/modular/mutex_m/r3/v0.3.gemfile | 2 +- .../gemfiles/modular/mutex_m/r4/v0.3.gemfile | 2 +- .../gemfiles/modular/mutex_m/vHEAD.gemfile | 2 +- .../gemfiles/modular/optional.gemfile | 4 +- .../gemfiles/modular/rspec.gemfile | 8 +- .../gemfiles/modular/runtime_heads.gemfile | 2 +- .../gemfiles/modular/stringio/r2/v3.0.gemfile | 2 +- .../gemfiles/modular/stringio/r3/v3.0.gemfile | 2 +- .../gemfiles/modular/stringio/r4/v3.0.gemfile | 2 +- .../gemfiles/modular/stringio/vHEAD.gemfile | 2 +- .../gemfiles/modular/style.gemfile | 24 +- .../gemfiles/modular/style_local.gemfile | 32 +- .../gemfiles/modular/webrick/r4/v1.9.gemfile | 2 +- .../gemfiles/modular/webrick/vHEAD.gemfile | 2 +- .../gemfiles/modular/x_std_libs.gemfile | 14 +- .../modular/x_std_libs/r2/libs.gemfile | 6 +- .../modular/x_std_libs/r3/libs.gemfile | 6 +- .../modular/x_std_libs/r4/libs.gemfile | 12 +- .../gemfiles/modular/x_std_libs/vHEAD.gemfile | 12 +- gems/citrus-toml-merge/spec/spec_helper.rb | 13 +- gems/commonmarker-merge/.kettle-drift.lock | 144 +++++++- gems/commonmarker-merge/Gemfile | 72 +++- gems/commonmarker-merge/Gemfile.lock | 349 +++++++++++++++++- gems/commonmarker-merge/Rakefile | 18 +- .../gemfiles/modular/templating.gemfile | 12 +- .../gemfiles/modular/templating_local.gemfile | 44 +-- .../lib/commonmarker/merge/version.rb | 2 +- gems/parslet-toml-merge/.kettle-drift.lock | 144 +++++++- gems/parslet-toml-merge/Gemfile | 72 +++- gems/parslet-toml-merge/Gemfile.lock | 14 +- gems/parslet-toml-merge/Rakefile | 18 +- .../gemfiles/modular/templating.gemfile | 12 +- .../gemfiles/modular/templating_local.gemfile | 44 +-- .../lib/parslet/toml/merge/version.rb | 2 +- gems/psych-merge/.rubocop_gradual.lock | 2 +- gems/psych-merge/.simplecov | 8 +- gems/psych-merge/Gemfile | 70 ++-- gems/psych-merge/Gemfile.lock | 313 +--------------- gems/psych-merge/Rakefile | 18 +- .../gemfiles/modular/templating.gemfile | 12 +- .../gemfiles/modular/templating_local.gemfile | 44 ++- gems/psych-merge/lib/psych/merge/version.rb | 2 +- gems/psych-merge/spec/spec_helper.rb | 7 +- gems/zip-merge/Gemfile.lock | 15 +- 64 files changed, 1195 insertions(+), 696 deletions(-) diff --git a/gems/citrus-toml-merge/.kettle-drift.lock b/gems/citrus-toml-merge/.kettle-drift.lock index bf85fa76f..9a486b4b3 100644 --- a/gems/citrus-toml-merge/.kettle-drift.lock +++ b/gems/citrus-toml-merge/.kettle-drift.lock @@ -1,10 +1,74 @@ { + "(direct_sibling_local ||\nENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?)": [ + { + "file": "Gemfile", + "lines": [ + 79, + 119 + ] + } + ], + ".find { |spec| spec.name == 'nomono' }\nnomono_locked = nomono_locked_spec &&": [ + { + "file": "Gemfile", + "lines": [ + 90, + 130 + ] + } + ], + "ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?)\ndirect_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV')": [ + { + "file": "Gemfile", + "lines": [ + 80, + 120 + ] + } + ], + "Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version)\nnomono_activation_requirements = [\"= #{nomono_locked_spec.version}\"] if nomono_locked": [ + { + "file": "Gemfile", + "lines": [ + 92, + 132 + ] + } + ], + "Kernel.send(:gem, 'nomono', *nomono_activation_requirements)\nrequire 'nomono/bundler'": [ + { + "file": "Gemfile", + "lines": [ + 95, + 135 + ] + } + ], + "direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV')\ndirect_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil)": [ + { + "file": "Gemfile", + "lines": [ + 81, + 121 + ] + } + ], "eval_nomono_gems(\ngems: direct_sibling_gems,": [ { "file": "Gemfile", "lines": [ 59, - 99 + 99, + 139 + ] + } + ], + "gems: direct_sibling_gems,\nprefix: 'STRUCTUREDMERGE',": [ + { + "file": "Gemfile", + "lines": [ + 100, + 140 ] } ], @@ -13,7 +77,17 @@ "file": "Gemfile", "lines": [ 42, - 86 + 86, + 126 + ] + } + ], + "if direct_sibling_dev_was_set\nENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original": [ + { + "file": "Gemfile", + "lines": [ + 109, + 149 ] } ], @@ -22,7 +96,8 @@ "file": "Gemfile", "lines": [ 34, - 78 + 78, + 118 ] } ], @@ -31,7 +106,17 @@ "file": "Gemfile", "lines": [ 68, - 108 + 108, + 148 + ] + } + ], + "nomono_activation_requirements = nomono_requirements\nnomono_lockfile = File.expand_path('Gemfile.lock', __dir__)": [ + { + "file": "Gemfile", + "lines": [ + 84, + 124 ] } ], @@ -40,7 +125,8 @@ "file": "Gemfile", "lines": [ 47, - 91 + 91, + 131 ] } ], @@ -49,7 +135,53 @@ "file": "Gemfile", "lines": [ 43, - 87 + 87, + 127 + ] + } + ], + "nomono_lockfile = File.expand_path('Gemfile.lock', __dir__)\nif File.file?(nomono_lockfile)": [ + { + "file": "Gemfile", + "lines": [ + 85, + 125 + ] + } + ], + "path_env: 'STRUCTUREDMERGE_DEV',\nroot: %w[src my structuredmerge]": [ + { + "file": "Gemfile", + "lines": [ + 102, + 142 + ] + } + ], + "prefix: 'STRUCTUREDMERGE',\npath_env: 'STRUCTUREDMERGE_DEV',": [ + { + "file": "Gemfile", + "lines": [ + 101, + 141 + ] + } + ], + "require 'nomono/bundler'\nENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local": [ + { + "file": "Gemfile", + "lines": [ + 96, + 136 + ] + } + ], + "rescue LoadError\nwarn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.'": [ + { + "file": "Gemfile", + "lines": [ + 105, + 145 ] } ] diff --git a/gems/citrus-toml-merge/.simplecov b/gems/citrus-toml-merge/.simplecov index 1de125497..512277d48 100644 --- a/gems/citrus-toml-merge/.simplecov +++ b/gems/citrus-toml-merge/.simplecov @@ -4,15 +4,11 @@ # citrus-toml-merge will then preserve content between those markers across template runs. # kettle-jem:unfreeze -require 'kettle/soup/cover/config' - # Minimum coverage thresholds are set by kettle-soup-cover. # They are controlled by ENV variables loaded by `mise` from `mise.toml` # (with optional machine-local overrides in `.env.local`). # If the values for minimum coverage need to change, they should be changed both there, # and in 2 places in .github/workflows/coverage.yml. -SimpleCov.start do - track_files 'lib/**/*.rb' - track_files 'lib/**/*.rake' - track_files 'exe/*.rb' +SimpleCov.configure do + cover "lib/**/*.rb", "lib/**/*.rake", "exe/*.rb" end diff --git a/gems/citrus-toml-merge/Gemfile.lock b/gems/citrus-toml-merge/Gemfile.lock index ae6dd453e..89a74708c 100644 --- a/gems/citrus-toml-merge/Gemfile.lock +++ b/gems/citrus-toml-merge/Gemfile.lock @@ -555,7 +555,7 @@ GEM simplecov (>= 0.4.1) simplecov_lcov_formatter (0.9.0) simplecov (>= 0.18) - sorbet-runtime (0.6.13347) + sorbet-runtime (0.6.13351) standard (1.56.0) language_server-protocol (~> 3.17.0.2) lint_roller (~> 1.0) @@ -738,7 +738,7 @@ CHECKSUMS citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 - commonmarker (2.9.0-x86_64-linux) sha256=8cfe92970eef585a19ddf6613224b91cab64d6029834661bda801f877c9c7f43 + commonmarker (2.9.0-x86_64-linux) commonmarker-merge (7.1.0) concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 @@ -766,7 +766,7 @@ CHECKSUMS json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 json-merge (7.1.0) kettle-dev (2.3.8) sha256=9d716ff21c660a730cb4e8d41e2e2f0630a28167a354b6e2924e242102aef72c - kettle-drift (1.0.6) sha256=46eda08fa4411d1f3c6682a95eef1c9df4e94611b3949f49d4c7b43c0ed356a3 + kettle-drift (1.0.6) kettle-jem (7.1.0) kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f kettle-soup-cover (3.0.4) @@ -779,7 +779,7 @@ CHECKSUMS lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 markdown-merge (7.1.0) - markly (0.16.0) sha256=6f70d79e385b1efc9e171f74c81628826259039fe6c778e03c3924c71dac5511 + markly (0.16.0) markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-x86_64-linux-gnu) sha256=379fae440b28915e3f19d752ce2dcf8465ed2b2fbefd2a7ca0dd497bc981a06a @@ -843,7 +843,7 @@ CHECKSUMS ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 rust-merge (7.1.0) - service_actor (3.9.4) sha256=e63b523630b9a7e62959b2a90113b08d2565b5de9c148557b281ef847c9539ce + service_actor (3.9.4) silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea @@ -851,7 +851,7 @@ CHECKSUMS simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed smorg-rb (7.1.0) - sorbet-runtime (0.6.13347) sha256=54e7221d9f4b63f58aec79f3043752a9ba7810347c6ae0d903531591cc2d5f01 + sorbet-runtime (0.6.13351) sha256=f8fee17c6e3edf835dc6823d26afb9a7c8969c6710d1fabe2fb43f4e0c15c64f standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b standard-performance (1.9.0) sha256=49483d31be448292951d80e5e67cdcb576c2502103c7b40aec6f1b6e9c88e3f2 @@ -865,7 +865,7 @@ CHECKSUMS timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.5) sha256=b852f924287ffb58a440856e862b056c8ad97e74b4b2526cee43e0771f40c25c - toml (0.3.0) sha256=0a91d0f76a9036e84e44f95693b12f58d358c1df3ac8e3b5271f2056ecc6e4b9 + toml (0.3.0) toml-merge (7.1.0) toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 tree_haver (7.1.0) diff --git a/gems/citrus-toml-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile b/gems/citrus-toml-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile index b8392fab0..dec650815 100644 --- a/gems/citrus-toml-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile +++ b/gems/citrus-toml-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.1 -gem 'benchmark', '~> 0.5', '>= 0.5.0' # Removed from Std Lib in Ruby 4.0 +gem "benchmark", "~> 0.5", ">= 0.5.0" # Removed from Std Lib in Ruby 4.0 diff --git a/gems/citrus-toml-merge/gemfiles/modular/benchmark/vHEAD.gemfile b/gems/citrus-toml-merge/gemfiles/modular/benchmark/vHEAD.gemfile index af214aafa..e1eb20c5e 100644 --- a/gems/citrus-toml-merge/gemfiles/modular/benchmark/vHEAD.gemfile +++ b/gems/citrus-toml-merge/gemfiles/modular/benchmark/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.1 -gem 'benchmark', github: 'ruby/benchmark', branch: 'master' +gem "benchmark", github: "ruby/benchmark", branch: "master" diff --git a/gems/citrus-toml-merge/gemfiles/modular/cgi/r4/v0.5.gemfile b/gems/citrus-toml-merge/gemfiles/modular/cgi/r4/v0.5.gemfile index 17ad97260..19ed967c3 100644 --- a/gems/citrus-toml-merge/gemfiles/modular/cgi/r4/v0.5.gemfile +++ b/gems/citrus-toml-merge/gemfiles/modular/cgi/r4/v0.5.gemfile @@ -1 +1 @@ -gem 'cgi', '~> 0.5' +gem "cgi", "~> 0.5" diff --git a/gems/citrus-toml-merge/gemfiles/modular/cgi/vHEAD.gemfile b/gems/citrus-toml-merge/gemfiles/modular/cgi/vHEAD.gemfile index 650fbf033..ef8b816ce 100644 --- a/gems/citrus-toml-merge/gemfiles/modular/cgi/vHEAD.gemfile +++ b/gems/citrus-toml-merge/gemfiles/modular/cgi/vHEAD.gemfile @@ -1 +1 @@ -gem 'cgi', '>= 0.5' +gem "cgi", ">= 0.5" diff --git a/gems/citrus-toml-merge/gemfiles/modular/coverage.gemfile b/gems/citrus-toml-merge/gemfiles/modular/coverage.gemfile index b93014b6b..52d737872 100644 --- a/gems/citrus-toml-merge/gemfiles/modular/coverage.gemfile +++ b/gems/citrus-toml-merge/gemfiles/modular/coverage.gemfile @@ -4,11 +4,11 @@ # Set KETTLE_DEV_DEV=true for local development with path-based dependencies. # When false (default / CI), remote released gems are used. -if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? +if ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false").zero? # Coverage (remote/released) platform :mri do - gem 'kettle-soup-cover', '~> 3.0', '>= 3.0.3', require: false + gem "kettle-soup-cover", "~> 3.0", ">= 3.0.3", require: false end else - eval_gemfile 'coverage_local.gemfile' + eval_gemfile "coverage_local.gemfile" end diff --git a/gems/citrus-toml-merge/gemfiles/modular/coverage_local.gemfile b/gems/citrus-toml-merge/gemfiles/modular/coverage_local.gemfile index 89702c538..29d430ced 100644 --- a/gems/citrus-toml-merge/gemfiles/modular/coverage_local.gemfile +++ b/gems/citrus-toml-merge/gemfiles/modular/coverage_local.gemfile @@ -11,19 +11,21 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] -nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) +nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] +nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == "nomono" } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + if nomono_locked + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] + end end -Kernel.send(:gem, 'nomono', *nomono_activation_requirements) -require 'nomono/bundler' +Kernel.send(:gem, "nomono", *nomono_activation_requirements) +require "nomono/bundler" local_gems = %w[kettle-dev kettle-test kettle-soup-cover kettle-drift] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) @@ -33,21 +35,21 @@ local_gems_to_eval = local_gems - %w[citrus-toml-merge] - declared_gems platform :mri do eval_nomono_gems( gems: local_gems_to_eval, - prefix: 'KETTLE_DEV', - path_env: 'KETTLE_DEV_DEV', - vendored_gems_env: 'VENDORED_GEMS', - vendor_gem_dir_env: 'VENDOR_GEM_DIR', - debug_env: 'KETTLE_DEV_DEBUG' + prefix: "KETTLE_DEV", + path_env: "KETTLE_DEV_DEV", + vendored_gems_env: "VENDORED_GEMS", + vendor_gem_dir_env: "VENDOR_GEM_DIR", + debug_env: "KETTLE_DEV_DEBUG" ) - if ENV.fetch('GALTZO_FLOSS_DEV', 'false').casecmp('false') != 0 + if ENV.fetch("GALTZO_FLOSS_DEV", "false").casecmp("false") != 0 eval_nomono_gems( gems: %w[turbo_tests2], - prefix: 'GALTZO_FLOSS', - path_env: 'GALTZO_FLOSS_DEV', - vendored_gems_env: 'GALTZO_FLOSS_VENDORED_GEMS', - vendor_gem_dir_env: 'GALTZO_FLOSS_VENDOR_GEM_DIR', - debug_env: 'GALTZO_FLOSS_DEBUG' + prefix: "GALTZO_FLOSS", + path_env: "GALTZO_FLOSS_DEV", + vendored_gems_env: "GALTZO_FLOSS_VENDORED_GEMS", + vendor_gem_dir_env: "GALTZO_FLOSS_VENDOR_GEM_DIR", + debug_env: "GALTZO_FLOSS_DEBUG" ) end end diff --git a/gems/citrus-toml-merge/gemfiles/modular/debug.gemfile b/gems/citrus-toml-merge/gemfiles/modular/debug.gemfile index eed8d4d1e..4e15b1a3a 100644 --- a/gems/citrus-toml-merge/gemfiles/modular/debug.gemfile +++ b/gems/citrus-toml-merge/gemfiles/modular/debug.gemfile @@ -13,10 +13,10 @@ platform :mri do # Debugging - Ensure ENV["DEBUG"] == "true" to use debuggers within spec suite # Use binding.break, binding.b, or debugger in code - gem 'debug', '>= 1.1' # ruby >= 2.7 + gem "debug", ">= 1.1" # ruby >= 2.7 # Dev Console - Binding.pry - Irb replacement # gem "pry", "~> 0.14" # ruby >= 2.0 end -gem 'gem_bench', '~> 2.0', '>= 2.0.5' +gem "gem_bench", "~> 2.0", ">= 2.0.5" diff --git a/gems/citrus-toml-merge/gemfiles/modular/documentation.gemfile b/gems/citrus-toml-merge/gemfiles/modular/documentation.gemfile index 9d4535f12..d8215416e 100644 --- a/gems/citrus-toml-merge/gemfiles/modular/documentation.gemfile +++ b/gems/citrus-toml-merge/gemfiles/modular/documentation.gemfile @@ -7,20 +7,20 @@ # # Documentation -gem 'kramdown', '~> 2.5', '>= 2.5.2', require: false # Ruby >= 2.5 -gem 'kramdown-parser-gfm', '~> 1.1', require: false # Ruby >= 2.3 -gem 'yaml-converter', '~> 0.2', '>= 0.2.3', require: false # Ruby >= 3.2 -gem 'yard', '~> 0.9', '>= 0.9.45', require: false -gem 'yard-junk', '~> 0.1', '>= 0.1.0', require: false # Ruby >= 3.1 -gem 'yard-relative_markdown_links', '~> 0.6', require: false +gem "kramdown", "~> 2.5", ">= 2.5.2", require: false # Ruby >= 2.5 +gem "kramdown-parser-gfm", "~> 1.1", require: false # Ruby >= 2.3 +gem "yaml-converter", "~> 0.2", ">= 0.2.3", require: false # Ruby >= 3.2 +gem "yard", "~> 0.9", ">= 0.9.45", require: false +gem "yard-junk", "~> 0.1", ">= 0.1.0", require: false # Ruby >= 3.1 +gem "yard-relative_markdown_links", "~> 0.6", require: false -if ENV.fetch('GALTZO_FLOSS_DEV', 'false').casecmp('false').zero? - gem 'yard-fence', '~> 0.9', '>= 0.9.6', require: false # Ruby >= 3.2 - gem 'yard-timekeeper', '~> 0.2', '>= 0.2.4', require: false - gem 'yard-yaml', '~> 0.2', '>= 0.2.3', require: false +if ENV.fetch("GALTZO_FLOSS_DEV", "false").casecmp("false").zero? + gem "yard-fence", "~> 0.9", ">= 0.9.6", require: false # Ruby >= 3.2 + gem "yard-timekeeper", "~> 0.2", ">= 0.2.4", require: false + gem "yard-yaml", "~> 0.2", ">= 0.2.3", require: false else - eval_gemfile 'documentation_local.gemfile' + eval_gemfile "documentation_local.gemfile" end # Std Lib extractions -gem 'rdoc', '~> 6.11', require: false unless ENV.fetch('KJ_FRAMEWORK_MATRIX_GEM', '') == 'rdoc' +gem "rdoc", "~> 6.11", require: false unless ENV.fetch("KJ_FRAMEWORK_MATRIX_GEM", "") == "rdoc" diff --git a/gems/citrus-toml-merge/gemfiles/modular/documentation_local.gemfile b/gems/citrus-toml-merge/gemfiles/modular/documentation_local.gemfile index bbd6f96c8..95673b694 100644 --- a/gems/citrus-toml-merge/gemfiles/modular/documentation_local.gemfile +++ b/gems/citrus-toml-merge/gemfiles/modular/documentation_local.gemfile @@ -11,19 +11,21 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] -nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) +nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] +nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == "nomono" } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + if nomono_locked + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] + end end -Kernel.send(:gem, 'nomono', *nomono_activation_requirements) -require 'nomono/bundler' +Kernel.send(:gem, "nomono", *nomono_activation_requirements) +require "nomono/bundler" local_gems = %w[yard-fence yard-timekeeper yard-yaml] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) @@ -32,9 +34,9 @@ local_gems_to_eval = local_gems - %w[citrus-toml-merge] - declared_gems # export GALTZO_FLOSS_DEV=/path/to/galtzo-floss eval_nomono_gems( gems: local_gems_to_eval, - prefix: 'GALTZO_FLOSS', - path_env: 'GALTZO_FLOSS_DEV', - vendored_gems_env: 'GALTZO_FLOSS_VENDORED_GEMS', - vendor_gem_dir_env: 'GALTZO_FLOSS_VENDOR_GEM_DIR', - debug_env: 'GALTZO_FLOSS_DEBUG' + prefix: "GALTZO_FLOSS", + path_env: "GALTZO_FLOSS_DEV", + vendored_gems_env: "GALTZO_FLOSS_VENDORED_GEMS", + vendor_gem_dir_env: "GALTZO_FLOSS_VENDOR_GEM_DIR", + debug_env: "GALTZO_FLOSS_DEBUG" ) diff --git a/gems/citrus-toml-merge/gemfiles/modular/erb/r2/v3.0.gemfile b/gems/citrus-toml-merge/gemfiles/modular/erb/r2/v3.0.gemfile index 7c83a239b..c03bd8d85 100644 --- a/gems/citrus-toml-merge/gemfiles/modular/erb/r2/v3.0.gemfile +++ b/gems/citrus-toml-merge/gemfiles/modular/erb/r2/v3.0.gemfile @@ -1 +1 @@ -gem 'erb', '~> 3.0' # ruby >= 2.7.0 +gem "erb", "~> 3.0" # ruby >= 2.7.0 diff --git a/gems/citrus-toml-merge/gemfiles/modular/erb/r3/v5.0.gemfile b/gems/citrus-toml-merge/gemfiles/modular/erb/r3/v5.0.gemfile index ec7ff451f..1bd029cc1 100644 --- a/gems/citrus-toml-merge/gemfiles/modular/erb/r3/v5.0.gemfile +++ b/gems/citrus-toml-merge/gemfiles/modular/erb/r3/v5.0.gemfile @@ -1 +1 @@ -gem 'erb', '~> 6.0', '>= 6.0.6' # ruby >= 3.2.0 +gem "erb", "~> 6.0", ">= 6.0.6" # ruby >= 3.2.0 diff --git a/gems/citrus-toml-merge/gemfiles/modular/erb/r4/v5.0.gemfile b/gems/citrus-toml-merge/gemfiles/modular/erb/r4/v5.0.gemfile index ec7ff451f..1bd029cc1 100644 --- a/gems/citrus-toml-merge/gemfiles/modular/erb/r4/v5.0.gemfile +++ b/gems/citrus-toml-merge/gemfiles/modular/erb/r4/v5.0.gemfile @@ -1 +1 @@ -gem 'erb', '~> 6.0', '>= 6.0.6' # ruby >= 3.2.0 +gem "erb", "~> 6.0", ">= 6.0.6" # ruby >= 3.2.0 diff --git a/gems/citrus-toml-merge/gemfiles/modular/erb/vHEAD.gemfile b/gems/citrus-toml-merge/gemfiles/modular/erb/vHEAD.gemfile index ea0101185..48fee4218 100644 --- a/gems/citrus-toml-merge/gemfiles/modular/erb/vHEAD.gemfile +++ b/gems/citrus-toml-merge/gemfiles/modular/erb/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 3.2 -gem 'erb', github: 'ruby/erb', branch: 'master' +gem "erb", github: "ruby/erb", branch: "master" diff --git a/gems/citrus-toml-merge/gemfiles/modular/json/truffleruby_22_3.gemfile b/gems/citrus-toml-merge/gemfiles/modular/json/truffleruby_22_3.gemfile index 9b2f8d96a..b0e69ab11 100644 --- a/gems/citrus-toml-merge/gemfiles/modular/json/truffleruby_22_3.gemfile +++ b/gems/citrus-toml-merge/gemfiles/modular/json/truffleruby_22_3.gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -if RUBY_ENGINE == 'truffleruby' && RUBY_ENGINE_VERSION.start_with?('22.3') +if RUBY_ENGINE == "truffleruby" && RUBY_ENGINE_VERSION.start_with?("22.3") # TruffleRuby 22.3 ships the json default gem from its emulated MRI Ruby. - gem 'json', '= 2.5.1' + gem "json", "= 2.5.1" end diff --git a/gems/citrus-toml-merge/gemfiles/modular/json/truffleruby_23_0.gemfile b/gems/citrus-toml-merge/gemfiles/modular/json/truffleruby_23_0.gemfile index d787a5ef4..7b2660a2b 100644 --- a/gems/citrus-toml-merge/gemfiles/modular/json/truffleruby_23_0.gemfile +++ b/gems/citrus-toml-merge/gemfiles/modular/json/truffleruby_23_0.gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -if RUBY_ENGINE == 'truffleruby' && RUBY_ENGINE_VERSION.start_with?('23.0') +if RUBY_ENGINE == "truffleruby" && RUBY_ENGINE_VERSION.start_with?("23.0") # TruffleRuby 23.0 ships the json default gem from its emulated MRI Ruby. - gem 'json', '= 2.6.1' + gem "json", "= 2.6.1" end diff --git a/gems/citrus-toml-merge/gemfiles/modular/json/truffleruby_23_1.gemfile b/gems/citrus-toml-merge/gemfiles/modular/json/truffleruby_23_1.gemfile index d78486b0e..dfa21f2e4 100644 --- a/gems/citrus-toml-merge/gemfiles/modular/json/truffleruby_23_1.gemfile +++ b/gems/citrus-toml-merge/gemfiles/modular/json/truffleruby_23_1.gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -if RUBY_ENGINE == 'truffleruby' && RUBY_ENGINE_VERSION.start_with?('23.1') +if RUBY_ENGINE == "truffleruby" && RUBY_ENGINE_VERSION.start_with?("23.1") # TruffleRuby 23.1 ships the json default gem from its emulated MRI Ruby. - gem 'json', '= 2.6.3' + gem "json", "= 2.6.3" end diff --git a/gems/citrus-toml-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile b/gems/citrus-toml-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile index e27f1bbae..42e9d9bd4 100644 --- a/gems/citrus-toml-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile +++ b/gems/citrus-toml-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 -gem 'mutex_m', '~> 0.2' +gem "mutex_m", "~> 0.2" diff --git a/gems/citrus-toml-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile b/gems/citrus-toml-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile index e27f1bbae..42e9d9bd4 100644 --- a/gems/citrus-toml-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile +++ b/gems/citrus-toml-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 -gem 'mutex_m', '~> 0.2' +gem "mutex_m", "~> 0.2" diff --git a/gems/citrus-toml-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile b/gems/citrus-toml-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile index e27f1bbae..42e9d9bd4 100644 --- a/gems/citrus-toml-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile +++ b/gems/citrus-toml-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 -gem 'mutex_m', '~> 0.2' +gem "mutex_m", "~> 0.2" diff --git a/gems/citrus-toml-merge/gemfiles/modular/mutex_m/vHEAD.gemfile b/gems/citrus-toml-merge/gemfiles/modular/mutex_m/vHEAD.gemfile index 9dac2f6cb..8af3b6fca 100644 --- a/gems/citrus-toml-merge/gemfiles/modular/mutex_m/vHEAD.gemfile +++ b/gems/citrus-toml-merge/gemfiles/modular/mutex_m/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 (dependency of omniauth) -gem 'mutex_m', github: 'ruby/mutex_m', branch: 'master' +gem "mutex_m", github: "ruby/mutex_m", branch: "master" diff --git a/gems/citrus-toml-merge/gemfiles/modular/optional.gemfile b/gems/citrus-toml-merge/gemfiles/modular/optional.gemfile index 9ea429538..80bc45196 100644 --- a/gems/citrus-toml-merge/gemfiles/modular/optional.gemfile +++ b/gems/citrus-toml-merge/gemfiles/modular/optional.gemfile @@ -9,8 +9,8 @@ # Optional dependencies are not depended on directly, but may be used if present. # Required for curated binstubs generated by kettle-jem install -gem 'rbs', '>= 3.0', require: false # ruby >= 3.1 +gem "rbs", ">= 3.0", require: false # ruby >= 3.1 # Required for kettle-pre-release # URL parsing with Unicode support (falls back to URI if not available) -gem 'addressable', '>= 2.8', '< 3' # ruby >= 2.2 +gem "addressable", ">= 2.8", "< 3" # ruby >= 2.2 diff --git a/gems/citrus-toml-merge/gemfiles/modular/rspec.gemfile b/gems/citrus-toml-merge/gemfiles/modular/rspec.gemfile index 2af210a41..72fdf8b7f 100644 --- a/gems/citrus-toml-merge/gemfiles/modular/rspec.gemfile +++ b/gems/citrus-toml-merge/gemfiles/modular/rspec.gemfile @@ -1,4 +1,4 @@ -gem 'rspec_junit_formatter', - github: 'pboling/rspec_junit_formatter', - branch: 'main', - ref: '9e6bcaaedd49477b62878ed568dc4ada5cc7cb5e' +gem "rspec_junit_formatter", + github: "pboling/rspec_junit_formatter", + branch: "main", + ref: "9e6bcaaedd49477b62878ed568dc4ada5cc7cb5e" diff --git a/gems/citrus-toml-merge/gemfiles/modular/runtime_heads.gemfile b/gems/citrus-toml-merge/gemfiles/modular/runtime_heads.gemfile index ebf17c529..02f134c7f 100644 --- a/gems/citrus-toml-merge/gemfiles/modular/runtime_heads.gemfile +++ b/gems/citrus-toml-merge/gemfiles/modular/runtime_heads.gemfile @@ -8,4 +8,4 @@ # Test against HEAD of runtime dependencies so we can proactively file bugs -eval_gemfile('x_std_libs/vHEAD.gemfile') +eval_gemfile("x_std_libs/vHEAD.gemfile") diff --git a/gems/citrus-toml-merge/gemfiles/modular/stringio/r2/v3.0.gemfile b/gems/citrus-toml-merge/gemfiles/modular/stringio/r2/v3.0.gemfile index 3616f4e3a..e85bb18ee 100644 --- a/gems/citrus-toml-merge/gemfiles/modular/stringio/r2/v3.0.gemfile +++ b/gems/citrus-toml-merge/gemfiles/modular/stringio/r2/v3.0.gemfile @@ -2,4 +2,4 @@ # NOT SEMVER # Version 3.0.7 dropped support for Ruby <= 2.7 # Version 3.0.0 dropped support for Ruby <= 2.4 -gem 'stringio', '>= 3.0' +gem "stringio", ">= 3.0" diff --git a/gems/citrus-toml-merge/gemfiles/modular/stringio/r3/v3.0.gemfile b/gems/citrus-toml-merge/gemfiles/modular/stringio/r3/v3.0.gemfile index 3616f4e3a..e85bb18ee 100644 --- a/gems/citrus-toml-merge/gemfiles/modular/stringio/r3/v3.0.gemfile +++ b/gems/citrus-toml-merge/gemfiles/modular/stringio/r3/v3.0.gemfile @@ -2,4 +2,4 @@ # NOT SEMVER # Version 3.0.7 dropped support for Ruby <= 2.7 # Version 3.0.0 dropped support for Ruby <= 2.4 -gem 'stringio', '>= 3.0' +gem "stringio", ">= 3.0" diff --git a/gems/citrus-toml-merge/gemfiles/modular/stringio/r4/v3.0.gemfile b/gems/citrus-toml-merge/gemfiles/modular/stringio/r4/v3.0.gemfile index 3616f4e3a..e85bb18ee 100644 --- a/gems/citrus-toml-merge/gemfiles/modular/stringio/r4/v3.0.gemfile +++ b/gems/citrus-toml-merge/gemfiles/modular/stringio/r4/v3.0.gemfile @@ -2,4 +2,4 @@ # NOT SEMVER # Version 3.0.7 dropped support for Ruby <= 2.7 # Version 3.0.0 dropped support for Ruby <= 2.4 -gem 'stringio', '>= 3.0' +gem "stringio", ">= 3.0" diff --git a/gems/citrus-toml-merge/gemfiles/modular/stringio/vHEAD.gemfile b/gems/citrus-toml-merge/gemfiles/modular/stringio/vHEAD.gemfile index 78f5f5d8a..5f2a74126 100644 --- a/gems/citrus-toml-merge/gemfiles/modular/stringio/vHEAD.gemfile +++ b/gems/citrus-toml-merge/gemfiles/modular/stringio/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 (dependency of omniauth) -gem 'stringio', github: 'ruby/stringio', branch: 'master' +gem "stringio", github: "ruby/stringio", branch: "master" diff --git a/gems/citrus-toml-merge/gemfiles/modular/style.gemfile b/gems/citrus-toml-merge/gemfiles/modular/style.gemfile index 4dbcc02c0..35de4dcd6 100644 --- a/gems/citrus-toml-merge/gemfiles/modular/style.gemfile +++ b/gems/citrus-toml-merge/gemfiles/modular/style.gemfile @@ -9,23 +9,23 @@ # Style tasks run on the latest Ruby; RuboCop-LTS selects the compatibility # rules for the configured Ruby floor independently from task dependency floors. -gem 'reek', '~> 6.5', '>= 6.5.0' +gem "reek", "~> 6.5", ">= 6.5.0" platform :mri do - gem 'appraisal2-rubocop', '~> 1.0', '>= 1.0.0', require: false - gem 'rubocop-gradual', '~> 0.4', '>= 0.4.0' - gem 'rubocop-minitest', '~> 0.40', '>= 0.40.0' - gem 'rubocop-on-rbs', '~> 2.0', '>= 2.0.0' # ruby >= 3.2.0 + gem "appraisal2-rubocop", "~> 1.0", ">= 1.0.0", require: false + gem "rubocop-gradual", "~> 0.4", ">= 0.4.0" + gem "rubocop-minitest", "~> 0.40", ">= 0.40.0" + gem "rubocop-on-rbs", "~> 2.0", ">= 2.0.0" # ruby >= 3.2.0 # gem "rubocop", "~> 1.73", ">= 1.73.2" # constrained by standard - gem 'rubocop-packaging', '~> 0.6', '>= 0.6.0' - gem 'standard', '~> 1.56', '>= 1.56.0' + gem "rubocop-packaging", "~> 0.6", ">= 0.6.0" + gem "standard", "~> 1.56", ">= 1.56.0" - if ENV.fetch('RUBOCOP_LTS_LOCAL', 'false').casecmp('false').zero? + if ENV.fetch("RUBOCOP_LTS_LOCAL", "false").casecmp("false").zero? declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) - gem 'rubocop-lts', '~> 24.2', '>= 24.2.1' unless declared_gems.include?('rubocop-lts') - gem 'rubocop-lts-rspec', '~> 1.0', '>= 1.0.5' unless declared_gems.include?('rubocop-lts-rspec') - gem 'rubocop-ruby3_2', '~> 3.0', '>= 3.0.6' unless declared_gems.include?('rubocop-ruby3_2') + gem "rubocop-lts", "~> 24.2", ">= 24.2.1" unless declared_gems.include?("rubocop-lts") + gem "rubocop-lts-rspec", "~> 1.0", ">= 1.0.5" unless declared_gems.include?("rubocop-lts-rspec") + gem "rubocop-ruby3_2", "~> 3.0", ">= 3.0.6" unless declared_gems.include?("rubocop-ruby3_2") else - eval_gemfile('style_local.gemfile') + eval_gemfile("style_local.gemfile") end end diff --git a/gems/citrus-toml-merge/gemfiles/modular/style_local.gemfile b/gems/citrus-toml-merge/gemfiles/modular/style_local.gemfile index 29d2add9f..9a5e42dce 100644 --- a/gems/citrus-toml-merge/gemfiles/modular/style_local.gemfile +++ b/gems/citrus-toml-merge/gemfiles/modular/style_local.gemfile @@ -14,19 +14,21 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] -nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) +nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] +nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == "nomono" } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + if nomono_locked + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] + end end -Kernel.send(:gem, 'nomono', *nomono_activation_requirements) -require 'nomono/bundler' +Kernel.send(:gem, "nomono", *nomono_activation_requirements) +require "nomono/bundler" local_gems = %w[rubocop-lts rubocop-lts-rspec rubocop-ruby3_2 standard-rubocop-lts] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) @@ -36,11 +38,11 @@ local_gems_to_eval = local_gems - %w[citrus-toml-merge] - declared_gems platform :mri do eval_nomono_gems( gems: local_gems_to_eval, - prefix: 'RUBOCOP_LTS', - path_env: 'RUBOCOP_LTS_LOCAL', - vendored_gems_env: 'VENDORED_GEMS', - vendor_gem_dir_env: 'VENDOR_GEM_DIR', - debug_env: 'RUBOCOP_LTS_DEBUG', - root: %w[src rubocop-lts] + prefix: "RUBOCOP_LTS", + path_env: "RUBOCOP_LTS_LOCAL", + vendored_gems_env: "VENDORED_GEMS", + vendor_gem_dir_env: "VENDOR_GEM_DIR", + debug_env: "RUBOCOP_LTS_DEBUG", + root: ["src", "rubocop-lts"] ) end diff --git a/gems/citrus-toml-merge/gemfiles/modular/webrick/r4/v1.9.gemfile b/gems/citrus-toml-merge/gemfiles/modular/webrick/r4/v1.9.gemfile index b1329ba84..eaab4a473 100644 --- a/gems/citrus-toml-merge/gemfiles/modular/webrick/r4/v1.9.gemfile +++ b/gems/citrus-toml-merge/gemfiles/modular/webrick/r4/v1.9.gemfile @@ -1 +1 @@ -gem 'webrick', '~> 1.9' +gem "webrick", "~> 1.9" diff --git a/gems/citrus-toml-merge/gemfiles/modular/webrick/vHEAD.gemfile b/gems/citrus-toml-merge/gemfiles/modular/webrick/vHEAD.gemfile index c7e6f81a1..8a789b634 100644 --- a/gems/citrus-toml-merge/gemfiles/modular/webrick/vHEAD.gemfile +++ b/gems/citrus-toml-merge/gemfiles/modular/webrick/vHEAD.gemfile @@ -1 +1 @@ -gem 'webrick', '>= 1.9' +gem "webrick", ">= 1.9" diff --git a/gems/citrus-toml-merge/gemfiles/modular/x_std_libs.gemfile b/gems/citrus-toml-merge/gemfiles/modular/x_std_libs.gemfile index b1f43c097..77aad43f2 100644 --- a/gems/citrus-toml-merge/gemfiles/modular/x_std_libs.gemfile +++ b/gems/citrus-toml-merge/gemfiles/modular/x_std_libs.gemfile @@ -1,12 +1,12 @@ ### Std Lib Extracted Gems ruby_version = Gem::Version.new(RUBY_VERSION) -if ruby_version >= Gem::Version.new('4.0') - eval_gemfile 'x_std_libs/r4/libs.gemfile' -elsif ruby_version >= Gem::Version.new('3.2') - eval_gemfile 'x_std_libs/r3/libs.gemfile' -elsif ruby_version >= Gem::Version.new('3.1') - eval_gemfile 'x_std_libs/r3.1/libs.gemfile' +if ruby_version >= Gem::Version.new("4.0") + eval_gemfile "x_std_libs/r4/libs.gemfile" +elsif ruby_version >= Gem::Version.new("3.2") + eval_gemfile "x_std_libs/r3/libs.gemfile" +elsif ruby_version >= Gem::Version.new("3.1") + eval_gemfile "x_std_libs/r3.1/libs.gemfile" else - eval_gemfile 'x_std_libs/r2/libs.gemfile' + eval_gemfile "x_std_libs/r2/libs.gemfile" end diff --git a/gems/citrus-toml-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile b/gems/citrus-toml-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile index 16a5e3d70..441c4f03a 100644 --- a/gems/citrus-toml-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile +++ b/gems/citrus-toml-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile @@ -1,3 +1,3 @@ -eval_gemfile '../../erb/r2/v3.0.gemfile' -eval_gemfile '../../mutex_m/r2/v0.3.gemfile' -eval_gemfile '../../stringio/r2/v3.0.gemfile' +eval_gemfile "../../erb/r2/v3.0.gemfile" +eval_gemfile "../../mutex_m/r2/v0.3.gemfile" +eval_gemfile "../../stringio/r2/v3.0.gemfile" diff --git a/gems/citrus-toml-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile b/gems/citrus-toml-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile index 220ff95c1..c293a3ddd 100644 --- a/gems/citrus-toml-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile +++ b/gems/citrus-toml-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile @@ -1,3 +1,3 @@ -eval_gemfile '../../erb/r3/v5.0.gemfile' -eval_gemfile '../../mutex_m/r3/v0.3.gemfile' -eval_gemfile '../../stringio/r3/v3.0.gemfile' +eval_gemfile "../../erb/r3/v5.0.gemfile" +eval_gemfile "../../mutex_m/r3/v0.3.gemfile" +eval_gemfile "../../stringio/r3/v3.0.gemfile" diff --git a/gems/citrus-toml-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile b/gems/citrus-toml-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile index e2f6501eb..eb5574247 100644 --- a/gems/citrus-toml-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile +++ b/gems/citrus-toml-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile @@ -1,6 +1,6 @@ -eval_gemfile '../../erb/r4/v5.0.gemfile' -eval_gemfile '../../mutex_m/r4/v0.3.gemfile' -eval_gemfile '../../stringio/r4/v3.0.gemfile' -eval_gemfile '../../benchmark/r4/v0.5.gemfile' -eval_gemfile '../../cgi/r4/v0.5.gemfile' -eval_gemfile '../../webrick/r4/v1.9.gemfile' +eval_gemfile "../../erb/r4/v5.0.gemfile" +eval_gemfile "../../mutex_m/r4/v0.3.gemfile" +eval_gemfile "../../stringio/r4/v3.0.gemfile" +eval_gemfile "../../benchmark/r4/v0.5.gemfile" +eval_gemfile "../../cgi/r4/v0.5.gemfile" +eval_gemfile "../../webrick/r4/v1.9.gemfile" diff --git a/gems/citrus-toml-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile b/gems/citrus-toml-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile index ab75cccf1..d4d5b16c9 100644 --- a/gems/citrus-toml-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile +++ b/gems/citrus-toml-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile @@ -1,6 +1,6 @@ -eval_gemfile '../erb/vHEAD.gemfile' -eval_gemfile '../mutex_m/vHEAD.gemfile' -eval_gemfile '../stringio/vHEAD.gemfile' -eval_gemfile '../benchmark/vHEAD.gemfile' -eval_gemfile '../cgi/vHEAD.gemfile' -eval_gemfile '../webrick/vHEAD.gemfile' +eval_gemfile "../erb/vHEAD.gemfile" +eval_gemfile "../mutex_m/vHEAD.gemfile" +eval_gemfile "../stringio/vHEAD.gemfile" +eval_gemfile "../benchmark/vHEAD.gemfile" +eval_gemfile "../cgi/vHEAD.gemfile" +eval_gemfile "../webrick/vHEAD.gemfile" diff --git a/gems/citrus-toml-merge/spec/spec_helper.rb b/gems/citrus-toml-merge/spec/spec_helper.rb index 5799adcf5..d3e8a85e1 100644 --- a/gems/citrus-toml-merge/spec/spec_helper.rb +++ b/gems/citrus-toml-merge/spec/spec_helper.rb @@ -7,11 +7,16 @@ # NOTE: Gemfiles for non-coverage appraisals may not have kettle-soup-cover. # The rescue LoadError handles that scenario. begin - require 'kettle-soup-cover' - require 'simplecov' if Kettle::Soup::Cover::DO_COV # `.simplecov` is run here! -rescue LoadError => e + require "kettle-soup-cover" + if Kettle::Soup::Cover::DO_COV + # Requiring simplecov loads the project-local `.simplecov`. + require "simplecov" + require "kettle/soup/cover/config" + SimpleCov.start + end +rescue LoadError => error # check the error message and re-raise when unexpected - raise e unless e.message.include?('kettle') + raise error unless error.message.include?("kettle") end # External RSpec & related config diff --git a/gems/commonmarker-merge/.kettle-drift.lock b/gems/commonmarker-merge/.kettle-drift.lock index bf85fa76f..9a486b4b3 100644 --- a/gems/commonmarker-merge/.kettle-drift.lock +++ b/gems/commonmarker-merge/.kettle-drift.lock @@ -1,10 +1,74 @@ { + "(direct_sibling_local ||\nENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?)": [ + { + "file": "Gemfile", + "lines": [ + 79, + 119 + ] + } + ], + ".find { |spec| spec.name == 'nomono' }\nnomono_locked = nomono_locked_spec &&": [ + { + "file": "Gemfile", + "lines": [ + 90, + 130 + ] + } + ], + "ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?)\ndirect_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV')": [ + { + "file": "Gemfile", + "lines": [ + 80, + 120 + ] + } + ], + "Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version)\nnomono_activation_requirements = [\"= #{nomono_locked_spec.version}\"] if nomono_locked": [ + { + "file": "Gemfile", + "lines": [ + 92, + 132 + ] + } + ], + "Kernel.send(:gem, 'nomono', *nomono_activation_requirements)\nrequire 'nomono/bundler'": [ + { + "file": "Gemfile", + "lines": [ + 95, + 135 + ] + } + ], + "direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV')\ndirect_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil)": [ + { + "file": "Gemfile", + "lines": [ + 81, + 121 + ] + } + ], "eval_nomono_gems(\ngems: direct_sibling_gems,": [ { "file": "Gemfile", "lines": [ 59, - 99 + 99, + 139 + ] + } + ], + "gems: direct_sibling_gems,\nprefix: 'STRUCTUREDMERGE',": [ + { + "file": "Gemfile", + "lines": [ + 100, + 140 ] } ], @@ -13,7 +77,17 @@ "file": "Gemfile", "lines": [ 42, - 86 + 86, + 126 + ] + } + ], + "if direct_sibling_dev_was_set\nENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original": [ + { + "file": "Gemfile", + "lines": [ + 109, + 149 ] } ], @@ -22,7 +96,8 @@ "file": "Gemfile", "lines": [ 34, - 78 + 78, + 118 ] } ], @@ -31,7 +106,17 @@ "file": "Gemfile", "lines": [ 68, - 108 + 108, + 148 + ] + } + ], + "nomono_activation_requirements = nomono_requirements\nnomono_lockfile = File.expand_path('Gemfile.lock', __dir__)": [ + { + "file": "Gemfile", + "lines": [ + 84, + 124 ] } ], @@ -40,7 +125,8 @@ "file": "Gemfile", "lines": [ 47, - 91 + 91, + 131 ] } ], @@ -49,7 +135,53 @@ "file": "Gemfile", "lines": [ 43, - 87 + 87, + 127 + ] + } + ], + "nomono_lockfile = File.expand_path('Gemfile.lock', __dir__)\nif File.file?(nomono_lockfile)": [ + { + "file": "Gemfile", + "lines": [ + 85, + 125 + ] + } + ], + "path_env: 'STRUCTUREDMERGE_DEV',\nroot: %w[src my structuredmerge]": [ + { + "file": "Gemfile", + "lines": [ + 102, + 142 + ] + } + ], + "prefix: 'STRUCTUREDMERGE',\npath_env: 'STRUCTUREDMERGE_DEV',": [ + { + "file": "Gemfile", + "lines": [ + 101, + 141 + ] + } + ], + "require 'nomono/bundler'\nENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local": [ + { + "file": "Gemfile", + "lines": [ + 96, + 136 + ] + } + ], + "rescue LoadError\nwarn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.'": [ + { + "file": "Gemfile", + "lines": [ + 105, + 145 ] } ] diff --git a/gems/commonmarker-merge/Gemfile b/gems/commonmarker-merge/Gemfile index 53b4e3eee..a81c89dab 100644 --- a/gems/commonmarker-merge/Gemfile +++ b/gems/commonmarker-merge/Gemfile @@ -6,7 +6,7 @@ # kettle-jem will then preserve content between those markers across template runs. # kettle-jem:unfreeze -source 'https://gem.coop' +source "https://gem.coop" git_source(:codeberg) { |repo_name| "https://codeberg.org/#{repo_name}" } git_source(:gitlab) { |repo_name| "https://gitlab.com/#{repo_name}" } @@ -19,17 +19,61 @@ git_source(:gitlab) { |repo_name| "https://gitlab.com/#{repo_name}" } gemspec # Local workspace dependency wiring for *_local.gemfile overrides -nomono_requirements = ['~> 1.0', '>= 1.0.8'] -gem 'nomono', *nomono_requirements, require: false # ruby >= 2.2 +nomono_requirements = ["~> 1.0", ">= 1.0.8"] +gem "nomono", *nomono_requirements, require: false # ruby >= 2.2 # Direct sibling dependencies (env-switched via STRUCTUREDMERGE_DEV) direct_sibling_gems = %w[ markdown-merge ] -direct_sibling_dev = ENV.fetch('STRUCTUREDMERGE_DEV', '') +direct_sibling_dev = ENV.fetch("STRUCTUREDMERGE_DEV", "") direct_sibling_local = !direct_sibling_dev.empty? && !%w[false 0 no off].include?(direct_sibling_dev.downcase) -direct_sibling_templating = ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? +direct_sibling_templating = ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? + +if direct_sibling_gems.any? && + (direct_sibling_local || + ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero?) + direct_sibling_dev_was_set = ENV.key?("STRUCTUREDMERGE_DEV") + direct_sibling_dev_original = ENV.fetch("STRUCTUREDMERGE_DEV", nil) + begin + nomono_activation_requirements = nomono_requirements + nomono_lockfile = File.expand_path("Gemfile.lock", __dir__) + if File.file?(nomono_lockfile) + nomono_locked_spec = Bundler::LockfileParser + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == "nomono" } + nomono_locked = nomono_locked_spec && + Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) + if nomono_locked + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] + end + end + Kernel.send(:gem, "nomono", *nomono_activation_requirements) + require "nomono/bundler" + if direct_sibling_templating && !direct_sibling_local + ENV["STRUCTUREDMERGE_DEV"] = File.expand_path("..", __dir__) + end + + eval_nomono_gems( + gems: direct_sibling_gems, + prefix: "STRUCTUREDMERGE", + path_env: "STRUCTUREDMERGE_DEV", + root: ["src", "my", "structuredmerge"] + ) + rescue LoadError + warn "Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies." + ensure + if direct_sibling_templating && !direct_sibling_local + if direct_sibling_dev_was_set + ENV["STRUCTUREDMERGE_DEV"] = direct_sibling_dev_original + else + ENV.delete("STRUCTUREDMERGE_DEV") + end + end + end +end if direct_sibling_gems.any? && (direct_sibling_local || @@ -112,28 +156,28 @@ if direct_sibling_gems.any? && end # Use released TSLP with the Ruby ABI platform-gem fix. -gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' +gem "tree_sitter_language_pack", "~> 1.13", ">= 1.13.3" # Templating (env-switched: STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local paths) -eval_gemfile 'gemfiles/modular/templating.gemfile' if ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? +eval_gemfile "gemfiles/modular/templating.gemfile" if ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? # Debugging -eval_gemfile 'gemfiles/modular/debug.gemfile' +eval_gemfile "gemfiles/modular/debug.gemfile" # Code Coverage (env-switched: KETTLE_DEV_DEV=true for local paths) -eval_gemfile 'gemfiles/modular/coverage.gemfile' +eval_gemfile "gemfiles/modular/coverage.gemfile" # Linting -eval_gemfile 'gemfiles/modular/style.gemfile' +eval_gemfile "gemfiles/modular/style.gemfile" # Documentation -eval_gemfile 'gemfiles/modular/documentation.gemfile' +eval_gemfile "gemfiles/modular/documentation.gemfile" # Optional -eval_gemfile 'gemfiles/modular/optional.gemfile' +eval_gemfile "gemfiles/modular/optional.gemfile" ### Std Lib Extracted Gems -eval_gemfile 'gemfiles/modular/x_std_libs.gemfile' +eval_gemfile "gemfiles/modular/x_std_libs.gemfile" # See unlocked_deps appraisal for more details on irb inclusion -gem 'irb', '~> 1.17' # ruby >= 2.7 +gem "irb", "~> 1.17" # ruby >= 2.7 diff --git a/gems/commonmarker-merge/Gemfile.lock b/gems/commonmarker-merge/Gemfile.lock index 7e90fc630..65cc691cd 100644 --- a/gems/commonmarker-merge/Gemfile.lock +++ b/gems/commonmarker-merge/Gemfile.lock @@ -6,6 +6,266 @@ PATH markdown-merge (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly + specs: + ast-crispr-markdown-markly (7.1.0) + ast-crispr (= 7.1.0) + markly-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism + specs: + ast-crispr-ruby-prism (7.1.0) + ast-crispr (= 7.1.0) + prism-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr + specs: + ast-crispr (7.1.0) + ast-merge (= 7.1.0) + service_actor (~> 3.9) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git + specs: + ast-merge-git (7.1.0) + ast-merge (= 7.1.0) + json-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge + specs: + ast-merge (7.1.0) + benchmark + token-resolver (~> 2.0, >= 2.0.4) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template + specs: + ast-template (7.1.0) + ast-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge + specs: + bash-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge + specs: + binary-merge (7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge + specs: + citrus-toml-merge (7.1.0) + toml-merge (= 7.1.0) + toml-rb (~> 4.1) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge + specs: + dotenv-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge + specs: + go-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge + specs: + json-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem + specs: + kettle-jem (7.1.0) + addressable (>= 2.8, < 3) + ast-crispr-markdown-markly (= 7.1.0) + ast-crispr-ruby-prism (= 7.1.0) + ast-merge (= 7.1.0) + bash-merge (= 7.1.0) + citrus-toml-merge (= 7.1.0) + commonmarker-merge (= 7.1.0) + dotenv-merge (= 7.1.0) + json-merge (= 7.1.0) + kettle-dev (~> 2.3, >= 2.3.5) + kettle-rb (~> 0.1, >= 0.1.4) + kramdown-merge (= 7.1.0) + markdown-merge (= 7.1.0) + markly-merge (= 7.1.0) + prism-merge (= 7.1.0) + psych-merge (= 7.1.0) + rbs (>= 3.10) + rbs-merge (= 7.1.0) + ruby-merge (= 7.1.0) + token-resolver (~> 2.0, >= 2.0.4) + toml-merge (= 7.1.0) + toml-rb (~> 4.2) + tree_haver (= 7.1.0) + yaml-merge (= 7.1.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge + specs: + kramdown-merge (7.1.0) + kramdown (~> 2.5) + markdown-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge + specs: + markdown-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge + specs: + markly-merge (7.1.0) + markdown-merge (= 7.1.0) + markly (~> 0.9) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge + specs: + parslet-toml-merge (7.1.0) + toml (~> 0.3) + toml-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge + specs: + plain-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge + specs: + prism-merge (7.1.0) + prism (~> 1.6) + ruby-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge + specs: + psych-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + yaml-merge (= 7.1.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge + specs: + rbs-merge (7.1.0) + ast-merge (= 7.1.0) + rbs (>= 3.10) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge + specs: + ruby-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge + specs: + rust-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb + specs: + smorg-rb (7.1.0) + ast-merge (= 7.1.0) + ast-merge-git (= 7.1.0) + diff-lcs (~> 1.5) + go-merge (= 7.1.0) + json-merge (= 7.1.0) + kettle-jem (= 7.1.0) + markly-merge (= 7.1.0) + plain-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge + specs: + toml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver + specs: + tree_haver (7.1.0) + citrus (~> 3.0) + parslet (~> 2.0) + tree_sitter_language_pack (>= 1.13.2, < 2.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge + specs: + typescript-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge + specs: + yaml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge + specs: + zip-merge (7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + GEM remote: https://gem.coop/ specs: @@ -21,11 +281,6 @@ GEM rubocop (>= 1.0) version_gem (~> 1.1, >= 1.1.14) ast (2.4.3) - ast-merge (7.1.0) - benchmark - token-resolver (~> 2.0, >= 2.0.4) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) backports (3.25.3) benchmark (0.5.0) bigdecimal (4.1.2) @@ -98,6 +353,8 @@ GEM kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) + kettle-drift (1.0.6) + version_gem (~> 1.1, >= 1.1.14) kettle-rb (0.1.5) kettle-soup-cover (3.0.4) kettle-wash (~> 0.1, >= 0.1.0) @@ -126,10 +383,7 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) - markdown-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) + markly (0.16.0) mutex_m (0.3.0) nokogiri (1.19.4-x86_64-linux-gnu) racc (~> 1.4) @@ -284,6 +538,8 @@ GEM ruby-progressbar (1.13.0) ruby_engine (2.0.3) ruby_version (1.0.3) + service_actor (3.9.4) + zeitwerk (>= 1.0) silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) @@ -299,7 +555,7 @@ GEM simplecov (>= 0.4.1) simplecov_lcov_formatter (0.9.0) simplecov (>= 0.18) - sorbet-runtime (0.6.13347) + sorbet-runtime (0.6.13351) standard (1.56.0) language_server-protocol (~> 3.17.0.2) lint_roller (~> 1.0) @@ -338,11 +594,11 @@ GEM token-resolver (2.0.5) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.14) - tree_haver (7.1.0) - citrus (~> 3.0) - parslet (~> 2.0) - tree_sitter_language_pack (>= 1.13.2, < 2.0) - version_gem (~> 1.1, >= 1.1.9) + toml (0.3.0) + parslet (>= 1.8.0, < 3.0.0) + toml-rb (4.2.0) + citrus (~> 3.0, > 3.0) + racc (~> 1.7) tree_sitter_language_pack (1.13.3-x86_64-linux) sorbet-runtime (~> 0.5) tsort (0.2.0) @@ -388,24 +644,46 @@ DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) appraisal2-rubocop (~> 1.0, >= 1.0.0) + ast-crispr! + ast-crispr-markdown-markly! + ast-crispr-ruby-prism! + ast-merge! + ast-merge-git! + ast-template! + bash-merge! benchmark (~> 0.5, >= 0.5.0) + binary-merge! bundler-audit (~> 0.9.3) cgi (~> 0.5) + citrus-toml-merge! commonmarker-merge! debug (>= 1.1) + dotenv-merge! erb (~> 6.0, >= 6.0.6) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.0) + go-merge! irb (~> 1.17) + json-merge! kettle-dev (~> 2.0, >= 2.2.25) + kettle-drift (~> 1.0, >= 1.0.6) + kettle-jem! kettle-soup-cover (~> 3.0, >= 3.0.3) kettle-test (~> 2.0, >= 2.0.9) kramdown (~> 2.5, >= 2.5.2) + kramdown-merge! kramdown-parser-gfm (~> 1.1) + markdown-merge! + markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) + parslet-toml-merge! + plain-merge! + prism-merge! + psych-merge! rake (~> 13.0) rbs (>= 3.0) + rbs-merge! rdoc (~> 6.11) reek (~> 6.5, >= 6.5.0) require_bench (~> 1.0, >= 1.0.4) @@ -416,19 +694,27 @@ DEPENDENCIES rubocop-on-rbs (~> 2.0, >= 2.0.0) rubocop-packaging (~> 0.6, >= 0.6.0) rubocop-ruby3_2 (~> 3.0, >= 3.0.6) + ruby-merge! ruby-progressbar (~> 1.13) + rust-merge! + smorg-rb! standard (~> 1.56, >= 1.56.0) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) + toml-merge! + tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) + typescript-merge! webrick (~> 1.9) yaml-converter (~> 0.2, >= 0.2.3) + yaml-merge! yard (~> 0.9, >= 0.9.45) yard-fence (~> 0.9, >= 0.9.6) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) yard-timekeeper (~> 0.2, >= 0.2.4) yard-yaml (~> 0.2, >= 0.2.3) + zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af @@ -436,13 +722,21 @@ CHECKSUMS appraisal2 (3.2.0) sha256=ccd0b767ac4060cd7af6d16747459b6990f49c39c7b4fb1f7d1146b1e97c492f appraisal2-rubocop (1.0.0) sha256=b71410fbb014befda5340605a605b7f6f3f012739baf0acc5b4351b592c3258d ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 + ast-crispr (7.1.0) + ast-crispr-markdown-markly (7.1.0) + ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) + ast-merge-git (7.1.0) + ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 + bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd + binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 + citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 commonmarker (2.9.0-x86_64-linux) sha256=8cfe92970eef585a19ddf6613224b91cab64d6029834661bda801f877c9c7f43 commonmarker-merge (7.1.0) @@ -452,6 +746,7 @@ CHECKSUMS delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 + dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -464,21 +759,28 @@ CHECKSUMS gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f + go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 + json-merge (7.1.0) kettle-dev (2.3.8) sha256=9d716ff21c660a730cb4e8d41e2e2f0630a28167a354b6e2924e242102aef72c + kettle-drift (1.0.6) + kettle-jem (7.1.0) kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f kettle-soup-cover (3.0.4) kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa + kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 markdown-merge (7.1.0) + markly (0.16.0) + markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-x86_64-linux-gnu) sha256=379fae440b28915e3f19d752ce2dcf8465ed2b2fbefd2a7ca0dd497bc981a06a nomono (1.0.9) @@ -488,15 +790,20 @@ CHECKSUMS parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 + parslet-toml-merge (7.1.0) + plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 + prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 + psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 + rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb @@ -531,16 +838,20 @@ CHECKSUMS rubocop-rspec_rails (2.32.0) sha256=4a0d641c72f6ebb957534f539d9d0a62c47abd8ce0d0aeee1ef4701e892a9100 rubocop-ruby3_2 (3.0.7) sha256=f53dd6d286fb05186214fc6ec116783e7f837030918e8931c05de773e98f8466 rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 + ruby-merge (7.1.0) ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 + rust-merge (7.1.0) + service_actor (3.9.4) silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed - sorbet-runtime (0.6.13347) sha256=54e7221d9f4b63f58aec79f3043752a9ba7810347c6ae0d903531591cc2d5f01 + smorg-rb (7.1.0) + sorbet-runtime (0.6.13351) sha256=f8fee17c6e3edf835dc6823d26afb9a7c8969c6710d1fabe2fb43f4e0c15c64f standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b standard-performance (1.9.0) sha256=49483d31be448292951d80e5e67cdcb576c2502103c7b40aec6f1b6e9c88e3f2 @@ -554,15 +865,20 @@ CHECKSUMS timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.5) sha256=b852f924287ffb58a440856e862b056c8ad97e74b4b2526cee43e0771f40c25c + toml (0.3.0) + toml-merge (7.1.0) + toml-rb (4.2.0) tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 + typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 webrick (1.9.2) sha256=beb4a15fc474defed24a3bda4ffd88a490d517c9e4e6118c3edce59e45864131 yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 + yaml-merge (7.1.0) yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd @@ -570,6 +886,7 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 + zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH diff --git a/gems/commonmarker-merge/Rakefile b/gems/commonmarker-merge/Rakefile index 40e72097b..df55d9073 100644 --- a/gems/commonmarker-merge/Rakefile +++ b/gems/commonmarker-merge/Rakefile @@ -130,23 +130,23 @@ end ### DUPLICATE DRIFT TASKS begin - require 'kettle/drift' + require "kettle/drift" Kettle::Drift.install_tasks rescue LoadError - desc('(stub) kettle:drift:check is unavailable') - task('kettle:drift:check') do + desc("(stub) kettle:drift:check is unavailable") + task("kettle:drift:check") do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc('(stub) kettle:drift:update is unavailable') - task('kettle:drift:update') do + desc("(stub) kettle:drift:update is unavailable") + task("kettle:drift:update") do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc('(stub) kettle:drift:force_update is unavailable') - task('kettle:drift:force_update') do + desc("(stub) kettle:drift:force_update is unavailable") + task("kettle:drift:force_update") do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc('(stub) kettle:drift is unavailable') - task('kettle:drift' => 'kettle:drift:update') + desc("(stub) kettle:drift is unavailable") + task("kettle:drift" => "kettle:drift:update") end ### TEMPLATING TASKS diff --git a/gems/commonmarker-merge/gemfiles/modular/templating.gemfile b/gems/commonmarker-merge/gemfiles/modular/templating.gemfile index a672de184..47138ffbb 100644 --- a/gems/commonmarker-merge/gemfiles/modular/templating.gemfile +++ b/gems/commonmarker-merge/gemfiles/modular/templating.gemfile @@ -1,18 +1,18 @@ # frozen_string_literal: true -structuredmerge_remote = ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false').zero? -kettle_remote = ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? +structuredmerge_remote = ENV.fetch("STRUCTUREDMERGE_DEV", "false").casecmp("false").zero? +kettle_remote = ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false").zero? if structuredmerge_remote # Parser dependencies for released installs. - gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' + gem "tree_sitter_language_pack", "~> 1.13", ">= 1.13.3" # Merge recipes for released installs. - gem 'kettle-jem', '>= 7.0' + gem "kettle-jem", ">= 7.0" end if kettle_remote # Template/plugin checks for released installs. - gem 'kettle-drift', '~> 1.0', '>= 1.0.6', require: false + gem "kettle-drift", "~> 1.0", ">= 1.0.6", require: false end # Set STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local development with path-based dependencies. @@ -21,4 +21,4 @@ end # # Set KETTLE_DEV_DEV=/path/to/my for local development with Kettle plugin gems. # When false (default / CI), released Kettle plugin gems are used. -eval_gemfile 'templating_local.gemfile' unless structuredmerge_remote && kettle_remote +eval_gemfile "templating_local.gemfile" unless structuredmerge_remote && kettle_remote diff --git a/gems/commonmarker-merge/gemfiles/modular/templating_local.gemfile b/gems/commonmarker-merge/gemfiles/modular/templating_local.gemfile index b47c25177..6b5b2916c 100644 --- a/gems/commonmarker-merge/gemfiles/modular/templating_local.gemfile +++ b/gems/commonmarker-merge/gemfiles/modular/templating_local.gemfile @@ -12,19 +12,21 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] -nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) +nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] +nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == "nomono" } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + if nomono_locked + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] + end end -Kernel.send(:gem, 'nomono', *nomono_activation_requirements) -require 'nomono/bundler' +Kernel.send(:gem, "nomono", *nomono_activation_requirements) +require "nomono/bundler" structuredmerge_local_gems = %w[ tree_haver @@ -67,25 +69,25 @@ structuredmerge_local_gems_to_eval = structuredmerge_local_gems - %w[commonmarke kettle_dev_local_gems_to_eval = kettle_dev_local_gems - %w[commonmarker-merge] - declared_gems platform :mri do - if ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false') != 0 + if ENV.fetch("STRUCTUREDMERGE_DEV", "false").casecmp("false") != 0 eval_nomono_gems( gems: structuredmerge_local_gems_to_eval, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - vendored_gems_env: 'VENDORED_GEMS', - vendor_gem_dir_env: 'VENDOR_GEM_DIR', - debug_env: 'STRUCTUREDMERGE_DEBUG' + prefix: "STRUCTUREDMERGE", + path_env: "STRUCTUREDMERGE_DEV", + vendored_gems_env: "VENDORED_GEMS", + vendor_gem_dir_env: "VENDOR_GEM_DIR", + debug_env: "STRUCTUREDMERGE_DEBUG" ) end - if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false') != 0 + if ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false") != 0 eval_nomono_gems( gems: kettle_dev_local_gems_to_eval, - prefix: 'KETTLE_DEV', - path_env: 'KETTLE_DEV_DEV', - vendored_gems_env: 'VENDORED_GEMS', - vendor_gem_dir_env: 'VENDOR_GEM_DIR', - debug_env: 'KETTLE_DEV_DEBUG' + prefix: "KETTLE_DEV", + path_env: "KETTLE_DEV_DEV", + vendored_gems_env: "VENDORED_GEMS", + vendor_gem_dir_env: "VENDOR_GEM_DIR", + debug_env: "KETTLE_DEV_DEBUG" ) end end diff --git a/gems/commonmarker-merge/lib/commonmarker/merge/version.rb b/gems/commonmarker-merge/lib/commonmarker/merge/version.rb index 477db0695..c84c8d0bb 100644 --- a/gems/commonmarker-merge/lib/commonmarker/merge/version.rb +++ b/gems/commonmarker-merge/lib/commonmarker/merge/version.rb @@ -3,7 +3,7 @@ module Commonmarker module Merge module Version - VERSION = '7.1.0' + VERSION = "7.1.0" end VERSION = Version::VERSION # Traditional Constant Location end diff --git a/gems/parslet-toml-merge/.kettle-drift.lock b/gems/parslet-toml-merge/.kettle-drift.lock index bf85fa76f..9a486b4b3 100644 --- a/gems/parslet-toml-merge/.kettle-drift.lock +++ b/gems/parslet-toml-merge/.kettle-drift.lock @@ -1,10 +1,74 @@ { + "(direct_sibling_local ||\nENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?)": [ + { + "file": "Gemfile", + "lines": [ + 79, + 119 + ] + } + ], + ".find { |spec| spec.name == 'nomono' }\nnomono_locked = nomono_locked_spec &&": [ + { + "file": "Gemfile", + "lines": [ + 90, + 130 + ] + } + ], + "ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?)\ndirect_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV')": [ + { + "file": "Gemfile", + "lines": [ + 80, + 120 + ] + } + ], + "Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version)\nnomono_activation_requirements = [\"= #{nomono_locked_spec.version}\"] if nomono_locked": [ + { + "file": "Gemfile", + "lines": [ + 92, + 132 + ] + } + ], + "Kernel.send(:gem, 'nomono', *nomono_activation_requirements)\nrequire 'nomono/bundler'": [ + { + "file": "Gemfile", + "lines": [ + 95, + 135 + ] + } + ], + "direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV')\ndirect_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil)": [ + { + "file": "Gemfile", + "lines": [ + 81, + 121 + ] + } + ], "eval_nomono_gems(\ngems: direct_sibling_gems,": [ { "file": "Gemfile", "lines": [ 59, - 99 + 99, + 139 + ] + } + ], + "gems: direct_sibling_gems,\nprefix: 'STRUCTUREDMERGE',": [ + { + "file": "Gemfile", + "lines": [ + 100, + 140 ] } ], @@ -13,7 +77,17 @@ "file": "Gemfile", "lines": [ 42, - 86 + 86, + 126 + ] + } + ], + "if direct_sibling_dev_was_set\nENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original": [ + { + "file": "Gemfile", + "lines": [ + 109, + 149 ] } ], @@ -22,7 +96,8 @@ "file": "Gemfile", "lines": [ 34, - 78 + 78, + 118 ] } ], @@ -31,7 +106,17 @@ "file": "Gemfile", "lines": [ 68, - 108 + 108, + 148 + ] + } + ], + "nomono_activation_requirements = nomono_requirements\nnomono_lockfile = File.expand_path('Gemfile.lock', __dir__)": [ + { + "file": "Gemfile", + "lines": [ + 84, + 124 ] } ], @@ -40,7 +125,8 @@ "file": "Gemfile", "lines": [ 47, - 91 + 91, + 131 ] } ], @@ -49,7 +135,53 @@ "file": "Gemfile", "lines": [ 43, - 87 + 87, + 127 + ] + } + ], + "nomono_lockfile = File.expand_path('Gemfile.lock', __dir__)\nif File.file?(nomono_lockfile)": [ + { + "file": "Gemfile", + "lines": [ + 85, + 125 + ] + } + ], + "path_env: 'STRUCTUREDMERGE_DEV',\nroot: %w[src my structuredmerge]": [ + { + "file": "Gemfile", + "lines": [ + 102, + 142 + ] + } + ], + "prefix: 'STRUCTUREDMERGE',\npath_env: 'STRUCTUREDMERGE_DEV',": [ + { + "file": "Gemfile", + "lines": [ + 101, + 141 + ] + } + ], + "require 'nomono/bundler'\nENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local": [ + { + "file": "Gemfile", + "lines": [ + 96, + 136 + ] + } + ], + "rescue LoadError\nwarn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.'": [ + { + "file": "Gemfile", + "lines": [ + 105, + 145 ] } ] diff --git a/gems/parslet-toml-merge/Gemfile b/gems/parslet-toml-merge/Gemfile index 5a449aab9..aa68c2614 100644 --- a/gems/parslet-toml-merge/Gemfile +++ b/gems/parslet-toml-merge/Gemfile @@ -6,7 +6,7 @@ # kettle-jem will then preserve content between those markers across template runs. # kettle-jem:unfreeze -source 'https://gem.coop' +source "https://gem.coop" git_source(:codeberg) { |repo_name| "https://codeberg.org/#{repo_name}" } git_source(:gitlab) { |repo_name| "https://gitlab.com/#{repo_name}" } @@ -19,17 +19,61 @@ git_source(:gitlab) { |repo_name| "https://gitlab.com/#{repo_name}" } gemspec # Local workspace dependency wiring for *_local.gemfile overrides -nomono_requirements = ['~> 1.0', '>= 1.0.8'] -gem 'nomono', *nomono_requirements, require: false # ruby >= 2.2 +nomono_requirements = ["~> 1.0", ">= 1.0.8"] +gem "nomono", *nomono_requirements, require: false # ruby >= 2.2 # Direct sibling dependencies (env-switched via STRUCTUREDMERGE_DEV) direct_sibling_gems = %w[ toml-merge ] -direct_sibling_dev = ENV.fetch('STRUCTUREDMERGE_DEV', '') +direct_sibling_dev = ENV.fetch("STRUCTUREDMERGE_DEV", "") direct_sibling_local = !direct_sibling_dev.empty? && !%w[false 0 no off].include?(direct_sibling_dev.downcase) -direct_sibling_templating = ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? +direct_sibling_templating = ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? + +if direct_sibling_gems.any? && + (direct_sibling_local || + ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero?) + direct_sibling_dev_was_set = ENV.key?("STRUCTUREDMERGE_DEV") + direct_sibling_dev_original = ENV.fetch("STRUCTUREDMERGE_DEV", nil) + begin + nomono_activation_requirements = nomono_requirements + nomono_lockfile = File.expand_path("Gemfile.lock", __dir__) + if File.file?(nomono_lockfile) + nomono_locked_spec = Bundler::LockfileParser + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == "nomono" } + nomono_locked = nomono_locked_spec && + Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) + if nomono_locked + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] + end + end + Kernel.send(:gem, "nomono", *nomono_activation_requirements) + require "nomono/bundler" + if direct_sibling_templating && !direct_sibling_local + ENV["STRUCTUREDMERGE_DEV"] = File.expand_path("..", __dir__) + end + + eval_nomono_gems( + gems: direct_sibling_gems, + prefix: "STRUCTUREDMERGE", + path_env: "STRUCTUREDMERGE_DEV", + root: ["src", "my", "structuredmerge"] + ) + rescue LoadError + warn "Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies." + ensure + if direct_sibling_templating && !direct_sibling_local + if direct_sibling_dev_was_set + ENV["STRUCTUREDMERGE_DEV"] = direct_sibling_dev_original + else + ENV.delete("STRUCTUREDMERGE_DEV") + end + end + end +end if direct_sibling_gems.any? && (direct_sibling_local || @@ -112,28 +156,28 @@ if direct_sibling_gems.any? && end # Use released TSLP with the Ruby ABI platform-gem fix. -gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' +gem "tree_sitter_language_pack", "~> 1.13", ">= 1.13.3" # Templating (env-switched: STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local paths) -eval_gemfile 'gemfiles/modular/templating.gemfile' if ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? +eval_gemfile "gemfiles/modular/templating.gemfile" if ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? # Debugging -eval_gemfile 'gemfiles/modular/debug.gemfile' +eval_gemfile "gemfiles/modular/debug.gemfile" # Code Coverage (env-switched: KETTLE_DEV_DEV=true for local paths) -eval_gemfile 'gemfiles/modular/coverage.gemfile' +eval_gemfile "gemfiles/modular/coverage.gemfile" # Linting -eval_gemfile 'gemfiles/modular/style.gemfile' +eval_gemfile "gemfiles/modular/style.gemfile" # Documentation -eval_gemfile 'gemfiles/modular/documentation.gemfile' +eval_gemfile "gemfiles/modular/documentation.gemfile" # Optional -eval_gemfile 'gemfiles/modular/optional.gemfile' +eval_gemfile "gemfiles/modular/optional.gemfile" ### Std Lib Extracted Gems -eval_gemfile 'gemfiles/modular/x_std_libs.gemfile' +eval_gemfile "gemfiles/modular/x_std_libs.gemfile" # See unlocked_deps appraisal for more details on irb inclusion -gem 'irb', '~> 1.17' # ruby >= 2.7 +gem "irb", "~> 1.17" # ruby >= 2.7 diff --git a/gems/parslet-toml-merge/Gemfile.lock b/gems/parslet-toml-merge/Gemfile.lock index 686bffc90..d62f0b6a7 100644 --- a/gems/parslet-toml-merge/Gemfile.lock +++ b/gems/parslet-toml-merge/Gemfile.lock @@ -555,7 +555,7 @@ GEM simplecov (>= 0.4.1) simplecov_lcov_formatter (0.9.0) simplecov (>= 0.18) - sorbet-runtime (0.6.13347) + sorbet-runtime (0.6.13351) standard (1.56.0) language_server-protocol (~> 3.17.0.2) lint_roller (~> 1.0) @@ -738,7 +738,7 @@ CHECKSUMS citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 - commonmarker (2.9.0-x86_64-linux) sha256=8cfe92970eef585a19ddf6613224b91cab64d6029834661bda801f877c9c7f43 + commonmarker (2.9.0-x86_64-linux) commonmarker-merge (7.1.0) concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 @@ -766,7 +766,7 @@ CHECKSUMS json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 json-merge (7.1.0) kettle-dev (2.3.8) sha256=9d716ff21c660a730cb4e8d41e2e2f0630a28167a354b6e2924e242102aef72c - kettle-drift (1.0.6) sha256=46eda08fa4411d1f3c6682a95eef1c9df4e94611b3949f49d4c7b43c0ed356a3 + kettle-drift (1.0.6) kettle-jem (7.1.0) kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f kettle-soup-cover (3.0.4) @@ -779,7 +779,7 @@ CHECKSUMS lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 markdown-merge (7.1.0) - markly (0.16.0) sha256=6f70d79e385b1efc9e171f74c81628826259039fe6c778e03c3924c71dac5511 + markly (0.16.0) markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-x86_64-linux-gnu) sha256=379fae440b28915e3f19d752ce2dcf8465ed2b2fbefd2a7ca0dd497bc981a06a @@ -843,7 +843,7 @@ CHECKSUMS ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 rust-merge (7.1.0) - service_actor (3.9.4) sha256=e63b523630b9a7e62959b2a90113b08d2565b5de9c148557b281ef847c9539ce + service_actor (3.9.4) silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea @@ -851,7 +851,7 @@ CHECKSUMS simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed smorg-rb (7.1.0) - sorbet-runtime (0.6.13347) sha256=54e7221d9f4b63f58aec79f3043752a9ba7810347c6ae0d903531591cc2d5f01 + sorbet-runtime (0.6.13351) sha256=f8fee17c6e3edf835dc6823d26afb9a7c8969c6710d1fabe2fb43f4e0c15c64f standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b standard-performance (1.9.0) sha256=49483d31be448292951d80e5e67cdcb576c2502103c7b40aec6f1b6e9c88e3f2 @@ -867,7 +867,7 @@ CHECKSUMS token-resolver (2.0.5) sha256=b852f924287ffb58a440856e862b056c8ad97e74b4b2526cee43e0771f40c25c toml (0.3.0) sha256=0a91d0f76a9036e84e44f95693b12f58d358c1df3ac8e3b5271f2056ecc6e4b9 toml-merge (7.1.0) - toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 + toml-rb (4.2.0) tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f diff --git a/gems/parslet-toml-merge/Rakefile b/gems/parslet-toml-merge/Rakefile index 79680a6ab..0285d07bd 100644 --- a/gems/parslet-toml-merge/Rakefile +++ b/gems/parslet-toml-merge/Rakefile @@ -130,23 +130,23 @@ end ### DUPLICATE DRIFT TASKS begin - require 'kettle/drift' + require "kettle/drift" Kettle::Drift.install_tasks rescue LoadError - desc('(stub) kettle:drift:check is unavailable') - task('kettle:drift:check') do + desc("(stub) kettle:drift:check is unavailable") + task("kettle:drift:check") do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc('(stub) kettle:drift:update is unavailable') - task('kettle:drift:update') do + desc("(stub) kettle:drift:update is unavailable") + task("kettle:drift:update") do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc('(stub) kettle:drift:force_update is unavailable') - task('kettle:drift:force_update') do + desc("(stub) kettle:drift:force_update is unavailable") + task("kettle:drift:force_update") do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc('(stub) kettle:drift is unavailable') - task('kettle:drift' => 'kettle:drift:update') + desc("(stub) kettle:drift is unavailable") + task("kettle:drift" => "kettle:drift:update") end ### TEMPLATING TASKS diff --git a/gems/parslet-toml-merge/gemfiles/modular/templating.gemfile b/gems/parslet-toml-merge/gemfiles/modular/templating.gemfile index a672de184..47138ffbb 100644 --- a/gems/parslet-toml-merge/gemfiles/modular/templating.gemfile +++ b/gems/parslet-toml-merge/gemfiles/modular/templating.gemfile @@ -1,18 +1,18 @@ # frozen_string_literal: true -structuredmerge_remote = ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false').zero? -kettle_remote = ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? +structuredmerge_remote = ENV.fetch("STRUCTUREDMERGE_DEV", "false").casecmp("false").zero? +kettle_remote = ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false").zero? if structuredmerge_remote # Parser dependencies for released installs. - gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' + gem "tree_sitter_language_pack", "~> 1.13", ">= 1.13.3" # Merge recipes for released installs. - gem 'kettle-jem', '>= 7.0' + gem "kettle-jem", ">= 7.0" end if kettle_remote # Template/plugin checks for released installs. - gem 'kettle-drift', '~> 1.0', '>= 1.0.6', require: false + gem "kettle-drift", "~> 1.0", ">= 1.0.6", require: false end # Set STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local development with path-based dependencies. @@ -21,4 +21,4 @@ end # # Set KETTLE_DEV_DEV=/path/to/my for local development with Kettle plugin gems. # When false (default / CI), released Kettle plugin gems are used. -eval_gemfile 'templating_local.gemfile' unless structuredmerge_remote && kettle_remote +eval_gemfile "templating_local.gemfile" unless structuredmerge_remote && kettle_remote diff --git a/gems/parslet-toml-merge/gemfiles/modular/templating_local.gemfile b/gems/parslet-toml-merge/gemfiles/modular/templating_local.gemfile index 992e7dfe6..db256276e 100644 --- a/gems/parslet-toml-merge/gemfiles/modular/templating_local.gemfile +++ b/gems/parslet-toml-merge/gemfiles/modular/templating_local.gemfile @@ -12,19 +12,21 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] -nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) +nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] +nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == "nomono" } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + if nomono_locked + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] + end end -Kernel.send(:gem, 'nomono', *nomono_activation_requirements) -require 'nomono/bundler' +Kernel.send(:gem, "nomono", *nomono_activation_requirements) +require "nomono/bundler" structuredmerge_local_gems = %w[ tree_haver @@ -67,25 +69,25 @@ structuredmerge_local_gems_to_eval = structuredmerge_local_gems - %w[parslet-tom kettle_dev_local_gems_to_eval = kettle_dev_local_gems - %w[parslet-toml-merge] - declared_gems platform :mri do - if ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false') != 0 + if ENV.fetch("STRUCTUREDMERGE_DEV", "false").casecmp("false") != 0 eval_nomono_gems( gems: structuredmerge_local_gems_to_eval, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - vendored_gems_env: 'VENDORED_GEMS', - vendor_gem_dir_env: 'VENDOR_GEM_DIR', - debug_env: 'STRUCTUREDMERGE_DEBUG' + prefix: "STRUCTUREDMERGE", + path_env: "STRUCTUREDMERGE_DEV", + vendored_gems_env: "VENDORED_GEMS", + vendor_gem_dir_env: "VENDOR_GEM_DIR", + debug_env: "STRUCTUREDMERGE_DEBUG" ) end - if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false') != 0 + if ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false") != 0 eval_nomono_gems( gems: kettle_dev_local_gems_to_eval, - prefix: 'KETTLE_DEV', - path_env: 'KETTLE_DEV_DEV', - vendored_gems_env: 'VENDORED_GEMS', - vendor_gem_dir_env: 'VENDOR_GEM_DIR', - debug_env: 'KETTLE_DEV_DEBUG' + prefix: "KETTLE_DEV", + path_env: "KETTLE_DEV_DEV", + vendored_gems_env: "VENDORED_GEMS", + vendor_gem_dir_env: "VENDOR_GEM_DIR", + debug_env: "KETTLE_DEV_DEBUG" ) end end diff --git a/gems/parslet-toml-merge/lib/parslet/toml/merge/version.rb b/gems/parslet-toml-merge/lib/parslet/toml/merge/version.rb index 12a67dfd9..f3e9c49e5 100644 --- a/gems/parslet-toml-merge/lib/parslet/toml/merge/version.rb +++ b/gems/parslet-toml-merge/lib/parslet/toml/merge/version.rb @@ -4,7 +4,7 @@ module Parslet module Toml module Merge module Version - VERSION = '7.1.0' + VERSION = "7.1.0" end VERSION = Version::VERSION # Traditional Constant Location end diff --git a/gems/psych-merge/.rubocop_gradual.lock b/gems/psych-merge/.rubocop_gradual.lock index f498f05df..635f06c5d 100644 --- a/gems/psych-merge/.rubocop_gradual.lock +++ b/gems/psych-merge/.rubocop_gradual.lock @@ -1,5 +1,5 @@ { - ".simplecov:2102217422": [ + ".simplecov:4110336533": [ [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] ], "Rakefile:1368539789": [ diff --git a/gems/psych-merge/.simplecov b/gems/psych-merge/.simplecov index 132c17b1f..0870d844a 100644 --- a/gems/psych-merge/.simplecov +++ b/gems/psych-merge/.simplecov @@ -4,15 +4,11 @@ # psych-merge will then preserve content between those markers across template runs. # kettle-jem:unfreeze -require 'kettle/soup/cover/config' - # Minimum coverage thresholds are set by kettle-soup-cover. # They are controlled by ENV variables loaded by `mise` from `mise.toml` # (with optional machine-local overrides in `.env.local`). # If the values for minimum coverage need to change, they should be changed both there, # and in 2 places in .github/workflows/coverage.yml. -SimpleCov.start do - track_files 'lib/**/*.rb' - track_files 'lib/**/*.rake' - track_files 'exe/*.rb' +SimpleCov.configure do + cover 'lib/**/*.rb', 'lib/**/*.rake', 'exe/*.rb' end diff --git a/gems/psych-merge/Gemfile b/gems/psych-merge/Gemfile index d07ba11c0..77577fdc6 100644 --- a/gems/psych-merge/Gemfile +++ b/gems/psych-merge/Gemfile @@ -6,7 +6,7 @@ # kettle-jem will then preserve content between those markers across template runs. # kettle-jem:unfreeze -source "https://gem.coop" +source 'https://gem.coop' git_source(:codeberg) { |repo_name| "https://codeberg.org/#{repo_name}" } git_source(:gitlab) { |repo_name| "https://gitlab.com/#{repo_name}" } @@ -19,8 +19,8 @@ git_source(:gitlab) { |repo_name| "https://gitlab.com/#{repo_name}" } gemspec # Local workspace dependency wiring for *_local.gemfile overrides -nomono_requirements = ["~> 1.0", ">= 1.0.8"] -gem "nomono", *nomono_requirements, require: false # ruby >= 2.2 +nomono_requirements = ['~> 1.0', '>= 1.0.8'] +gem 'nomono', *nomono_requirements, require: false # ruby >= 2.2 # Direct sibling dependencies (env-switched via STRUCTUREDMERGE_DEV) direct_sibling_gems = %w[ @@ -28,50 +28,46 @@ direct_sibling_gems = %w[ tree_haver yaml-merge ] -direct_sibling_dev = ENV.fetch("STRUCTUREDMERGE_DEV", "") +direct_sibling_dev = ENV.fetch('STRUCTUREDMERGE_DEV', '') direct_sibling_local = !direct_sibling_dev.empty? && !%w[false 0 no off].include?(direct_sibling_dev.downcase) -direct_sibling_templating = ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? +direct_sibling_templating = ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero?) - direct_sibling_dev_was_set = ENV.key?("STRUCTUREDMERGE_DEV") - direct_sibling_dev_original = ENV.fetch("STRUCTUREDMERGE_DEV", nil) + (direct_sibling_local || + ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) + direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') + direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) begin nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path("Gemfile.lock", __dir__) + nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == "nomono" } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - if nomono_locked - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] - end - end - Kernel.send(:gem, "nomono", *nomono_activation_requirements) - require "nomono/bundler" - if direct_sibling_templating && !direct_sibling_local - ENV["STRUCTUREDMERGE_DEV"] = File.expand_path("..", __dir__) + Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked end + Kernel.send(:gem, 'nomono', *nomono_activation_requirements) + require 'nomono/bundler' + ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local eval_nomono_gems( gems: direct_sibling_gems, - prefix: "STRUCTUREDMERGE", - path_env: "STRUCTUREDMERGE_DEV", - root: ["src", "my", "structuredmerge"] + prefix: 'STRUCTUREDMERGE', + path_env: 'STRUCTUREDMERGE_DEV', + root: %w[src my structuredmerge] ) rescue LoadError - warn "Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies." + warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' ensure if direct_sibling_templating && !direct_sibling_local if direct_sibling_dev_was_set - ENV["STRUCTUREDMERGE_DEV"] = direct_sibling_dev_original + ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original else - ENV.delete("STRUCTUREDMERGE_DEV") + ENV.delete('STRUCTUREDMERGE_DEV') end end end @@ -158,28 +154,28 @@ if direct_sibling_gems.any? && end # Use released TSLP with the Ruby ABI platform-gem fix. -gem "tree_sitter_language_pack", "~> 1.13", ">= 1.13.3" +gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' # Templating (env-switched: STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local paths) -eval_gemfile "gemfiles/modular/templating.gemfile" if ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? +eval_gemfile 'gemfiles/modular/templating.gemfile' if ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? # Debugging -eval_gemfile "gemfiles/modular/debug.gemfile" +eval_gemfile 'gemfiles/modular/debug.gemfile' # Code Coverage (env-switched: KETTLE_DEV_DEV=true for local paths) -eval_gemfile "gemfiles/modular/coverage.gemfile" +eval_gemfile 'gemfiles/modular/coverage.gemfile' # Linting -eval_gemfile "gemfiles/modular/style.gemfile" +eval_gemfile 'gemfiles/modular/style.gemfile' # Documentation -eval_gemfile "gemfiles/modular/documentation.gemfile" +eval_gemfile 'gemfiles/modular/documentation.gemfile' # Optional -eval_gemfile "gemfiles/modular/optional.gemfile" +eval_gemfile 'gemfiles/modular/optional.gemfile' ### Std Lib Extracted Gems -eval_gemfile "gemfiles/modular/x_std_libs.gemfile" +eval_gemfile 'gemfiles/modular/x_std_libs.gemfile' # See unlocked_deps appraisal for more details on irb inclusion -gem "irb", "~> 1.17" # ruby >= 2.7 +gem 'irb', '~> 1.17' # ruby >= 2.7 diff --git a/gems/psych-merge/Gemfile.lock b/gems/psych-merge/Gemfile.lock index 8d7f3aa2b..e67ccd673 100644 --- a/gems/psych-merge/Gemfile.lock +++ b/gems/psych-merge/Gemfile.lock @@ -8,39 +8,7 @@ PATH yaml-merge (= 7.1.0) PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly - specs: - ast-crispr-markdown-markly (7.1.0) - ast-crispr (= 7.1.0) - markly-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism - specs: - ast-crispr-ruby-prism (7.1.0) - ast-crispr (= 7.1.0) - prism-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr - specs: - ast-crispr (7.1.0) - ast-merge (= 7.1.0) - service_actor (~> 3.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git - specs: - ast-merge-git (7.1.0) - ast-merge (= 7.1.0) - json-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/ast-merge specs: ast-merge (7.1.0) benchmark @@ -49,193 +17,7 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template - specs: - ast-template (7.1.0) - ast-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge - specs: - bash-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge - specs: - binary-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge - specs: - citrus-toml-merge (7.1.0) - toml-merge (= 7.1.0) - toml-rb (~> 4.1) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge - specs: - commonmarker-merge (7.1.0) - commonmarker (~> 2.2) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge - specs: - dotenv-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge - specs: - go-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge - specs: - json-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem - specs: - kettle-jem (7.1.0) - addressable (>= 2.8, < 3) - ast-crispr-markdown-markly (= 7.1.0) - ast-crispr-ruby-prism (= 7.1.0) - ast-merge (= 7.1.0) - bash-merge (= 7.1.0) - citrus-toml-merge (= 7.1.0) - commonmarker-merge (= 7.1.0) - dotenv-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-dev (~> 2.3, >= 2.3.5) - kettle-rb (~> 0.1, >= 0.1.4) - kramdown-merge (= 7.1.0) - markdown-merge (= 7.1.0) - markly-merge (= 7.1.0) - prism-merge (= 7.1.0) - psych-merge (= 7.1.0) - rbs (>= 3.10) - rbs-merge (= 7.1.0) - ruby-merge (= 7.1.0) - token-resolver (~> 2.0, >= 2.0.4) - toml-merge (= 7.1.0) - toml-rb (~> 4.2) - tree_haver (= 7.1.0) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge - specs: - kramdown-merge (7.1.0) - kramdown (~> 2.5) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge - specs: - markdown-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge - specs: - markly-merge (7.1.0) - markdown-merge (= 7.1.0) - markly (~> 0.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge - specs: - parslet-toml-merge (7.1.0) - toml (~> 0.3) - toml-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge - specs: - plain-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge - specs: - prism-merge (7.1.0) - prism (~> 1.6) - ruby-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge - specs: - rbs-merge (7.1.0) - ast-merge (= 7.1.0) - rbs (>= 3.10) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge - specs: - ruby-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge - specs: - rust-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb - specs: - smorg-rb (7.1.0) - ast-merge (= 7.1.0) - ast-merge-git (= 7.1.0) - diff-lcs (~> 1.5) - go-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-jem (= 7.1.0) - markly-merge (= 7.1.0) - plain-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge - specs: - toml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/tree_haver specs: tree_haver (7.1.0) citrus (~> 3.0) @@ -244,28 +26,13 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge - specs: - typescript-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge specs: yaml-merge (7.1.0) ast-merge (= 7.1.0) tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge - specs: - zip-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - GEM remote: https://gem.coop/ specs: @@ -290,7 +57,6 @@ GEM cgi (0.5.2) citrus (3.0.2) cmdparse (3.0.7) - commonmarker (2.9.0-x86_64-linux) concurrent-ruby (1.3.8) date (3.5.1) debug (1.11.1) @@ -348,13 +114,11 @@ GEM rdoc (>= 4.0.0) reline (>= 0.4.2) json (2.21.1) - kettle-dev (2.3.8) + kettle-dev (2.3.9) emoji_regex (>= 15.0) kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) - kettle-drift (1.0.6) - version_gem (~> 1.1, >= 1.1.14) kettle-rb (0.1.5) kettle-soup-cover (3.0.4) kettle-wash (~> 0.1, >= 0.1.0) @@ -383,7 +147,6 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) - markly (0.16.0) mutex_m (0.3.0) nokogiri (1.19.4-aarch64-linux-gnu) racc (~> 1.4) @@ -546,8 +309,6 @@ GEM ruby-progressbar (1.13.0) ruby_engine (2.0.3) ruby_version (1.0.3) - service_actor (3.9.4) - zeitwerk (>= 1.0) silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) @@ -602,11 +363,6 @@ GEM token-resolver (2.0.5) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.14) - toml (0.3.0) - parslet (>= 1.8.0, < 3.0.0) - toml-rb (4.2.0) - citrus (~> 3.0, > 3.0) - racc (~> 1.7) tree_sitter_language_pack (1.13.3-aarch64-linux) sorbet-runtime (~> 0.5) tree_sitter_language_pack (1.13.3-arm64-darwin) @@ -661,46 +417,25 @@ DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) appraisal2-rubocop (~> 1.0, >= 1.0.0) - ast-crispr! - ast-crispr-markdown-markly! - ast-crispr-ruby-prism! ast-merge! - ast-merge-git! - ast-template! - bash-merge! benchmark (~> 0.5, >= 0.5.0) - binary-merge! bundler-audit (~> 0.9.3) cgi (~> 0.5) - citrus-toml-merge! - commonmarker-merge! debug (>= 1.1) - dotenv-merge! erb (~> 6.0, >= 6.0.6) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.0) - go-merge! irb (~> 1.17) - json-merge! kettle-dev (~> 2.0, >= 2.2.25) - kettle-drift (~> 1.0, >= 1.0.6) - kettle-jem! kettle-soup-cover (~> 3.0, >= 3.0.3) kettle-test (~> 2.0, >= 2.0.9) kramdown (~> 2.5, >= 2.5.2) - kramdown-merge! kramdown-parser-gfm (~> 1.1) - markdown-merge! - markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) - parslet-toml-merge! - plain-merge! - prism-merge! psych-merge! rake (~> 13.0) rbs (>= 3.0) - rbs-merge! rdoc (~> 6.11) reek (~> 6.5, >= 6.5.0) require_bench (~> 1.0, >= 1.0.4) @@ -711,17 +446,12 @@ DEPENDENCIES rubocop-on-rbs (~> 2.0, >= 2.0.0) rubocop-packaging (~> 0.6, >= 0.6.0) rubocop-ruby3_2 (~> 3.0, >= 3.0.6) - ruby-merge! ruby-progressbar (~> 1.13) - rust-merge! - smorg-rb! standard (~> 1.56, >= 1.56.0) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) - toml-merge! tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) - typescript-merge! webrick (~> 1.9) yaml-converter (~> 0.2, >= 0.2.3) yaml-merge! @@ -731,7 +461,6 @@ DEPENDENCIES yard-relative_markdown_links (~> 0.6) yard-timekeeper (~> 0.2, >= 0.2.4) yard-yaml (~> 0.2, >= 0.2.3) - zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af @@ -739,31 +468,20 @@ CHECKSUMS appraisal2 (3.2.0) sha256=ccd0b767ac4060cd7af6d16747459b6990f49c39c7b4fb1f7d1146b1e97c492f appraisal2-rubocop (1.0.0) sha256=b71410fbb014befda5340605a605b7f6f3f012739baf0acc5b4351b592c3258d ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 - ast-crispr (7.1.0) - ast-crispr-markdown-markly (7.1.0) - ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) - ast-merge-git (7.1.0) - ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 - bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd - binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 - citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 - commonmarker (2.9.0-x86_64-linux) - commonmarker-merge (7.1.0) concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 - dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -776,28 +494,20 @@ CHECKSUMS gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f - go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 - json-merge (7.1.0) - kettle-dev (2.3.8) sha256=9d716ff21c660a730cb4e8d41e2e2f0630a28167a354b6e2924e242102aef72c - kettle-drift (1.0.6) - kettle-jem (7.1.0) + kettle-dev (2.3.9) kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f kettle-soup-cover (3.0.4) kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa - kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 - markdown-merge (7.1.0) - markly (0.16.0) - markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-aarch64-linux-gnu) sha256=1269fb644a6de405057a53dd5c762b1209b43ca7424f839454d3dbc677c31a8f nokogiri (1.19.4-aarch64-linux-musl) sha256=35c65b9ce72b3bb03207bdbe7067915019dc18c1b9b59139684bd6690fdd01af @@ -811,12 +521,9 @@ CHECKSUMS parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 - parslet-toml-merge (7.1.0) - plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 - prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 @@ -824,7 +531,6 @@ CHECKSUMS rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 - rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb @@ -859,19 +565,15 @@ CHECKSUMS rubocop-rspec_rails (2.32.0) sha256=4a0d641c72f6ebb957534f539d9d0a62c47abd8ce0d0aeee1ef4701e892a9100 rubocop-ruby3_2 (3.0.7) sha256=f53dd6d286fb05186214fc6ec116783e7f837030918e8931c05de773e98f8466 rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 - ruby-merge (7.1.0) ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 - rust-merge (7.1.0) - service_actor (3.9.4) silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed - smorg-rb (7.1.0) sorbet-runtime (0.6.13351) sha256=f8fee17c6e3edf835dc6823d26afb9a7c8969c6710d1fabe2fb43f4e0c15c64f standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b @@ -886,16 +588,12 @@ CHECKSUMS timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.5) sha256=b852f924287ffb58a440856e862b056c8ad97e74b4b2526cee43e0771f40c25c - toml (0.3.0) - toml-merge (7.1.0) - toml-rb (4.2.0) tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-aarch64-linux) sha256=55ffc7c87868cb45658338363d9eba51b4a8b0259aa88e4de368d2bd1d52fea4 tree_sitter_language_pack (1.13.3-arm64-darwin) sha256=bc2498db605f212a1dbd2465ed3f65190d7da786f6ed5d30fcf958121aeb4a5c tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 - typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 @@ -909,7 +607,6 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 - zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH diff --git a/gems/psych-merge/Rakefile b/gems/psych-merge/Rakefile index 8914e2104..0796b339a 100644 --- a/gems/psych-merge/Rakefile +++ b/gems/psych-merge/Rakefile @@ -130,23 +130,23 @@ end ### DUPLICATE DRIFT TASKS begin - require "kettle/drift" + require 'kettle/drift' Kettle::Drift.install_tasks rescue LoadError - desc("(stub) kettle:drift:check is unavailable") - task("kettle:drift:check") do + desc('(stub) kettle:drift:check is unavailable') + task('kettle:drift:check') do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc("(stub) kettle:drift:update is unavailable") - task("kettle:drift:update") do + desc('(stub) kettle:drift:update is unavailable') + task('kettle:drift:update') do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc("(stub) kettle:drift:force_update is unavailable") - task("kettle:drift:force_update") do + desc('(stub) kettle:drift:force_update is unavailable') + task('kettle:drift:force_update') do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc("(stub) kettle:drift is unavailable") - task("kettle:drift" => "kettle:drift:update") + desc('(stub) kettle:drift is unavailable') + task('kettle:drift' => 'kettle:drift:update') end ### TEMPLATING TASKS diff --git a/gems/psych-merge/gemfiles/modular/templating.gemfile b/gems/psych-merge/gemfiles/modular/templating.gemfile index 47138ffbb..a672de184 100644 --- a/gems/psych-merge/gemfiles/modular/templating.gemfile +++ b/gems/psych-merge/gemfiles/modular/templating.gemfile @@ -1,18 +1,18 @@ # frozen_string_literal: true -structuredmerge_remote = ENV.fetch("STRUCTUREDMERGE_DEV", "false").casecmp("false").zero? -kettle_remote = ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false").zero? +structuredmerge_remote = ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false').zero? +kettle_remote = ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? if structuredmerge_remote # Parser dependencies for released installs. - gem "tree_sitter_language_pack", "~> 1.13", ">= 1.13.3" + gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' # Merge recipes for released installs. - gem "kettle-jem", ">= 7.0" + gem 'kettle-jem', '>= 7.0' end if kettle_remote # Template/plugin checks for released installs. - gem "kettle-drift", "~> 1.0", ">= 1.0.6", require: false + gem 'kettle-drift', '~> 1.0', '>= 1.0.6', require: false end # Set STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local development with path-based dependencies. @@ -21,4 +21,4 @@ end # # Set KETTLE_DEV_DEV=/path/to/my for local development with Kettle plugin gems. # When false (default / CI), released Kettle plugin gems are used. -eval_gemfile "templating_local.gemfile" unless structuredmerge_remote && kettle_remote +eval_gemfile 'templating_local.gemfile' unless structuredmerge_remote && kettle_remote diff --git a/gems/psych-merge/gemfiles/modular/templating_local.gemfile b/gems/psych-merge/gemfiles/modular/templating_local.gemfile index a816133a3..f4f79268d 100644 --- a/gems/psych-merge/gemfiles/modular/templating_local.gemfile +++ b/gems/psych-merge/gemfiles/modular/templating_local.gemfile @@ -12,21 +12,19 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] -nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) +nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] +nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == "nomono" } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - if nomono_locked - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] - end + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked end -Kernel.send(:gem, "nomono", *nomono_activation_requirements) -require "nomono/bundler" +Kernel.send(:gem, 'nomono', *nomono_activation_requirements) +require 'nomono/bundler' structuredmerge_local_gems = %w[ tree_haver @@ -69,25 +67,25 @@ structuredmerge_local_gems_to_eval = structuredmerge_local_gems - %w[psych-merge kettle_dev_local_gems_to_eval = kettle_dev_local_gems - %w[psych-merge] - declared_gems platform :mri do - if ENV.fetch("STRUCTUREDMERGE_DEV", "false").casecmp("false") != 0 + if ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false') != 0 eval_nomono_gems( gems: structuredmerge_local_gems_to_eval, - prefix: "STRUCTUREDMERGE", - path_env: "STRUCTUREDMERGE_DEV", - vendored_gems_env: "VENDORED_GEMS", - vendor_gem_dir_env: "VENDOR_GEM_DIR", - debug_env: "STRUCTUREDMERGE_DEBUG" + prefix: 'STRUCTUREDMERGE', + path_env: 'STRUCTUREDMERGE_DEV', + vendored_gems_env: 'VENDORED_GEMS', + vendor_gem_dir_env: 'VENDOR_GEM_DIR', + debug_env: 'STRUCTUREDMERGE_DEBUG' ) end - if ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false") != 0 + if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false') != 0 eval_nomono_gems( gems: kettle_dev_local_gems_to_eval, - prefix: "KETTLE_DEV", - path_env: "KETTLE_DEV_DEV", - vendored_gems_env: "VENDORED_GEMS", - vendor_gem_dir_env: "VENDOR_GEM_DIR", - debug_env: "KETTLE_DEV_DEBUG" + prefix: 'KETTLE_DEV', + path_env: 'KETTLE_DEV_DEV', + vendored_gems_env: 'VENDORED_GEMS', + vendor_gem_dir_env: 'VENDOR_GEM_DIR', + debug_env: 'KETTLE_DEV_DEBUG' ) end end diff --git a/gems/psych-merge/lib/psych/merge/version.rb b/gems/psych-merge/lib/psych/merge/version.rb index 518f12da4..aa65219d4 100644 --- a/gems/psych-merge/lib/psych/merge/version.rb +++ b/gems/psych-merge/lib/psych/merge/version.rb @@ -3,7 +3,7 @@ module Psych module Merge module Version - VERSION = "7.1.0" + VERSION = '7.1.0' end VERSION = Version::VERSION # Traditional Constant Location end diff --git a/gems/psych-merge/spec/spec_helper.rb b/gems/psych-merge/spec/spec_helper.rb index c5ee5e816..e85cf8df8 100644 --- a/gems/psych-merge/spec/spec_helper.rb +++ b/gems/psych-merge/spec/spec_helper.rb @@ -8,7 +8,12 @@ # The rescue LoadError handles that scenario. begin require 'kettle-soup-cover' - require 'simplecov' if Kettle::Soup::Cover::DO_COV # `.simplecov` is run here! + if Kettle::Soup::Cover::DO_COV + # Requiring simplecov loads the project-local `.simplecov`. + require 'simplecov' + require 'kettle/soup/cover/config' + SimpleCov.start + end rescue LoadError => e # check the error message and re-raise when unexpected raise e unless e.message.include?('kettle') diff --git a/gems/zip-merge/Gemfile.lock b/gems/zip-merge/Gemfile.lock index 6e9d1d2d2..f8ce27787 100644 --- a/gems/zip-merge/Gemfile.lock +++ b/gems/zip-merge/Gemfile.lock @@ -5,15 +5,6 @@ PATH tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) -PATH - remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/tree_haver - specs: - tree_haver (7.1.0) - citrus (~> 3.0) - parslet (~> 2.0) - tree_sitter_language_pack (>= 1.13.2, < 2.0) - version_gem (~> 1.1, >= 1.1.9) - GEM remote: https://gem.coop/ specs: @@ -341,6 +332,11 @@ GEM delegate (~> 0.1) rspec (~> 3.0) timecop (>= 0.7, < 1) + tree_haver (7.1.0) + citrus (~> 3.0) + parslet (~> 2.0) + tree_sitter_language_pack (>= 1.13.2, < 2.0) + version_gem (~> 1.1, >= 1.1.9) tree_sitter_language_pack (1.13.3-aarch64-linux) sorbet-runtime (~> 0.5) tree_sitter_language_pack (1.13.3-arm64-darwin) @@ -426,7 +422,6 @@ DEPENDENCIES standard (~> 1.56, >= 1.56.0) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) - tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) webrick (~> 1.9) yaml-converter (~> 0.2, >= 0.2.3) From 20f866f7783e2bc6d60b1eb5fba0d86ef7c7e2b9 Mon Sep 17 00:00:00 2001 From: "Peter H. Boling" Date: Tue, 21 Jul 2026 18:05:34 -0600 Subject: [PATCH 170/188] =?UTF-8?q?=F0=9F=8E=A8=20Template=20bootstrap=20b?= =?UTF-8?q?y=20kettle-jem=20v7.1.0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gems/citrus-toml-merge/.rubocop_gradual.lock | 2 +- gems/citrus-toml-merge/.simplecov | 2 +- gems/citrus-toml-merge/Gemfile | 70 ++-- gems/citrus-toml-merge/Gemfile.lock | 336 +---------------- gems/citrus-toml-merge/Rakefile | 18 +- .../modular/benchmark/r4/v0.5.gemfile | 2 +- .../gemfiles/modular/benchmark/vHEAD.gemfile | 2 +- .../gemfiles/modular/cgi/r4/v0.5.gemfile | 2 +- .../gemfiles/modular/cgi/vHEAD.gemfile | 2 +- .../gemfiles/modular/coverage.gemfile | 6 +- .../gemfiles/modular/coverage_local.gemfile | 42 +-- .../gemfiles/modular/debug.gemfile | 4 +- .../gemfiles/modular/documentation.gemfile | 24 +- .../modular/documentation_local.gemfile | 30 +- .../gemfiles/modular/erb/r2/v3.0.gemfile | 2 +- .../gemfiles/modular/erb/r3/v5.0.gemfile | 2 +- .../gemfiles/modular/erb/r4/v5.0.gemfile | 2 +- .../gemfiles/modular/erb/vHEAD.gemfile | 2 +- .../modular/json/truffleruby_22_3.gemfile | 4 +- .../modular/json/truffleruby_23_0.gemfile | 4 +- .../modular/json/truffleruby_23_1.gemfile | 4 +- .../gemfiles/modular/mutex_m/r2/v0.3.gemfile | 2 +- .../gemfiles/modular/mutex_m/r3/v0.3.gemfile | 2 +- .../gemfiles/modular/mutex_m/r4/v0.3.gemfile | 2 +- .../gemfiles/modular/mutex_m/vHEAD.gemfile | 2 +- .../gemfiles/modular/optional.gemfile | 4 +- .../gemfiles/modular/rspec.gemfile | 8 +- .../gemfiles/modular/runtime_heads.gemfile | 2 +- .../gemfiles/modular/stringio/r2/v3.0.gemfile | 2 +- .../gemfiles/modular/stringio/r3/v3.0.gemfile | 2 +- .../gemfiles/modular/stringio/r4/v3.0.gemfile | 2 +- .../gemfiles/modular/stringio/vHEAD.gemfile | 2 +- .../gemfiles/modular/style.gemfile | 24 +- .../gemfiles/modular/style_local.gemfile | 32 +- .../gemfiles/modular/templating.gemfile | 12 +- .../gemfiles/modular/templating_local.gemfile | 44 ++- .../gemfiles/modular/webrick/r4/v1.9.gemfile | 2 +- .../gemfiles/modular/webrick/vHEAD.gemfile | 2 +- .../gemfiles/modular/x_std_libs.gemfile | 14 +- .../modular/x_std_libs/r2/libs.gemfile | 6 +- .../modular/x_std_libs/r3/libs.gemfile | 6 +- .../modular/x_std_libs/r4/libs.gemfile | 12 +- .../gemfiles/modular/x_std_libs/vHEAD.gemfile | 12 +- .../lib/citrus/toml/merge/version.rb | 2 +- gems/citrus-toml-merge/spec/spec_helper.rb | 10 +- gems/kramdown-merge/Gemfile.lock | 347 +++++++++++++++++- gems/parslet-toml-merge/.simplecov | 8 +- gems/parslet-toml-merge/Gemfile.lock | 38 +- .../modular/benchmark/r4/v0.5.gemfile | 2 +- .../gemfiles/modular/benchmark/vHEAD.gemfile | 2 +- .../gemfiles/modular/cgi/r4/v0.5.gemfile | 2 +- .../gemfiles/modular/cgi/vHEAD.gemfile | 2 +- .../gemfiles/modular/coverage.gemfile | 6 +- .../gemfiles/modular/coverage_local.gemfile | 42 ++- .../gemfiles/modular/debug.gemfile | 4 +- .../gemfiles/modular/documentation.gemfile | 24 +- .../modular/documentation_local.gemfile | 30 +- .../gemfiles/modular/erb/r2/v3.0.gemfile | 2 +- .../gemfiles/modular/erb/r3/v5.0.gemfile | 2 +- .../gemfiles/modular/erb/r4/v5.0.gemfile | 2 +- .../gemfiles/modular/erb/vHEAD.gemfile | 2 +- .../modular/json/truffleruby_22_3.gemfile | 4 +- .../modular/json/truffleruby_23_0.gemfile | 4 +- .../modular/json/truffleruby_23_1.gemfile | 4 +- .../gemfiles/modular/mutex_m/r2/v0.3.gemfile | 2 +- .../gemfiles/modular/mutex_m/r3/v0.3.gemfile | 2 +- .../gemfiles/modular/mutex_m/r4/v0.3.gemfile | 2 +- .../gemfiles/modular/mutex_m/vHEAD.gemfile | 2 +- .../gemfiles/modular/optional.gemfile | 4 +- .../gemfiles/modular/rspec.gemfile | 8 +- .../gemfiles/modular/runtime_heads.gemfile | 2 +- .../gemfiles/modular/stringio/r2/v3.0.gemfile | 2 +- .../gemfiles/modular/stringio/r3/v3.0.gemfile | 2 +- .../gemfiles/modular/stringio/r4/v3.0.gemfile | 2 +- .../gemfiles/modular/stringio/vHEAD.gemfile | 2 +- .../gemfiles/modular/style.gemfile | 24 +- .../gemfiles/modular/style_local.gemfile | 32 +- .../gemfiles/modular/webrick/r4/v1.9.gemfile | 2 +- .../gemfiles/modular/webrick/vHEAD.gemfile | 2 +- .../gemfiles/modular/x_std_libs.gemfile | 14 +- .../modular/x_std_libs/r2/libs.gemfile | 6 +- .../modular/x_std_libs/r3/libs.gemfile | 6 +- .../modular/x_std_libs/r4/libs.gemfile | 12 +- .../gemfiles/modular/x_std_libs/vHEAD.gemfile | 12 +- gems/parslet-toml-merge/spec/spec_helper.rb | 13 +- gems/psych-merge/Gemfile.lock | 317 +++++++++++++++- 86 files changed, 1045 insertions(+), 722 deletions(-) diff --git a/gems/citrus-toml-merge/.rubocop_gradual.lock b/gems/citrus-toml-merge/.rubocop_gradual.lock index da4816993..e33f5ebd3 100644 --- a/gems/citrus-toml-merge/.rubocop_gradual.lock +++ b/gems/citrus-toml-merge/.rubocop_gradual.lock @@ -1,5 +1,5 @@ { - ".simplecov:362090062": [ + ".simplecov:1357546901": [ [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] ], "Rakefile:1269082253": [ diff --git a/gems/citrus-toml-merge/.simplecov b/gems/citrus-toml-merge/.simplecov index 512277d48..b7eba922f 100644 --- a/gems/citrus-toml-merge/.simplecov +++ b/gems/citrus-toml-merge/.simplecov @@ -10,5 +10,5 @@ # If the values for minimum coverage need to change, they should be changed both there, # and in 2 places in .github/workflows/coverage.yml. SimpleCov.configure do - cover "lib/**/*.rb", "lib/**/*.rake", "exe/*.rb" + cover 'lib/**/*.rb', 'lib/**/*.rake', 'exe/*.rb' end diff --git a/gems/citrus-toml-merge/Gemfile b/gems/citrus-toml-merge/Gemfile index ed6da5aff..4fb28da29 100644 --- a/gems/citrus-toml-merge/Gemfile +++ b/gems/citrus-toml-merge/Gemfile @@ -6,7 +6,7 @@ # kettle-jem will then preserve content between those markers across template runs. # kettle-jem:unfreeze -source "https://gem.coop" +source 'https://gem.coop' git_source(:codeberg) { |repo_name| "https://codeberg.org/#{repo_name}" } git_source(:gitlab) { |repo_name| "https://gitlab.com/#{repo_name}" } @@ -19,57 +19,53 @@ git_source(:gitlab) { |repo_name| "https://gitlab.com/#{repo_name}" } gemspec # Local workspace dependency wiring for *_local.gemfile overrides -nomono_requirements = ["~> 1.0", ">= 1.0.8"] -gem "nomono", *nomono_requirements, require: false # ruby >= 2.2 +nomono_requirements = ['~> 1.0', '>= 1.0.8'] +gem 'nomono', *nomono_requirements, require: false # ruby >= 2.2 # Direct sibling dependencies (env-switched via STRUCTUREDMERGE_DEV) direct_sibling_gems = %w[ toml-merge ] -direct_sibling_dev = ENV.fetch("STRUCTUREDMERGE_DEV", "") +direct_sibling_dev = ENV.fetch('STRUCTUREDMERGE_DEV', '') direct_sibling_local = !direct_sibling_dev.empty? && !%w[false 0 no off].include?(direct_sibling_dev.downcase) -direct_sibling_templating = ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? +direct_sibling_templating = ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero?) - direct_sibling_dev_was_set = ENV.key?("STRUCTUREDMERGE_DEV") - direct_sibling_dev_original = ENV.fetch("STRUCTUREDMERGE_DEV", nil) + (direct_sibling_local || + ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) + direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') + direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) begin nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path("Gemfile.lock", __dir__) + nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == "nomono" } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - if nomono_locked - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] - end - end - Kernel.send(:gem, "nomono", *nomono_activation_requirements) - require "nomono/bundler" - if direct_sibling_templating && !direct_sibling_local - ENV["STRUCTUREDMERGE_DEV"] = File.expand_path("..", __dir__) + Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked end + Kernel.send(:gem, 'nomono', *nomono_activation_requirements) + require 'nomono/bundler' + ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local eval_nomono_gems( gems: direct_sibling_gems, - prefix: "STRUCTUREDMERGE", - path_env: "STRUCTUREDMERGE_DEV", - root: ["src", "my", "structuredmerge"] + prefix: 'STRUCTUREDMERGE', + path_env: 'STRUCTUREDMERGE_DEV', + root: %w[src my structuredmerge] ) rescue LoadError - warn "Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies." + warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' ensure if direct_sibling_templating && !direct_sibling_local if direct_sibling_dev_was_set - ENV["STRUCTUREDMERGE_DEV"] = direct_sibling_dev_original + ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original else - ENV.delete("STRUCTUREDMERGE_DEV") + ENV.delete('STRUCTUREDMERGE_DEV') end end end @@ -156,28 +152,28 @@ if direct_sibling_gems.any? && end # Use released TSLP with the Ruby ABI platform-gem fix. -gem "tree_sitter_language_pack", "~> 1.13", ">= 1.13.3" +gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' # Templating (env-switched: STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local paths) -eval_gemfile "gemfiles/modular/templating.gemfile" if ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? +eval_gemfile 'gemfiles/modular/templating.gemfile' if ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? # Debugging -eval_gemfile "gemfiles/modular/debug.gemfile" +eval_gemfile 'gemfiles/modular/debug.gemfile' # Code Coverage (env-switched: KETTLE_DEV_DEV=true for local paths) -eval_gemfile "gemfiles/modular/coverage.gemfile" +eval_gemfile 'gemfiles/modular/coverage.gemfile' # Linting -eval_gemfile "gemfiles/modular/style.gemfile" +eval_gemfile 'gemfiles/modular/style.gemfile' # Documentation -eval_gemfile "gemfiles/modular/documentation.gemfile" +eval_gemfile 'gemfiles/modular/documentation.gemfile' # Optional -eval_gemfile "gemfiles/modular/optional.gemfile" +eval_gemfile 'gemfiles/modular/optional.gemfile' ### Std Lib Extracted Gems -eval_gemfile "gemfiles/modular/x_std_libs.gemfile" +eval_gemfile 'gemfiles/modular/x_std_libs.gemfile' # See unlocked_deps appraisal for more details on irb inclusion -gem "irb", "~> 1.17" # ruby >= 2.7 +gem 'irb', '~> 1.17' # ruby >= 2.7 diff --git a/gems/citrus-toml-merge/Gemfile.lock b/gems/citrus-toml-merge/Gemfile.lock index 89a74708c..635902aba 100644 --- a/gems/citrus-toml-merge/Gemfile.lock +++ b/gems/citrus-toml-merge/Gemfile.lock @@ -7,265 +7,13 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly - specs: - ast-crispr-markdown-markly (7.1.0) - ast-crispr (= 7.1.0) - markly-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism - specs: - ast-crispr-ruby-prism (7.1.0) - ast-crispr (= 7.1.0) - prism-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr - specs: - ast-crispr (7.1.0) - ast-merge (= 7.1.0) - service_actor (~> 3.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git - specs: - ast-merge-git (7.1.0) - ast-merge (= 7.1.0) - json-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge - specs: - ast-merge (7.1.0) - benchmark - token-resolver (~> 2.0, >= 2.0.4) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template - specs: - ast-template (7.1.0) - ast-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge - specs: - bash-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge - specs: - binary-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge - specs: - commonmarker-merge (7.1.0) - commonmarker (~> 2.2) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge - specs: - dotenv-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge - specs: - go-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge - specs: - json-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem - specs: - kettle-jem (7.1.0) - addressable (>= 2.8, < 3) - ast-crispr-markdown-markly (= 7.1.0) - ast-crispr-ruby-prism (= 7.1.0) - ast-merge (= 7.1.0) - bash-merge (= 7.1.0) - citrus-toml-merge (= 7.1.0) - commonmarker-merge (= 7.1.0) - dotenv-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-dev (~> 2.3, >= 2.3.5) - kettle-rb (~> 0.1, >= 0.1.4) - kramdown-merge (= 7.1.0) - markdown-merge (= 7.1.0) - markly-merge (= 7.1.0) - prism-merge (= 7.1.0) - psych-merge (= 7.1.0) - rbs (>= 3.10) - rbs-merge (= 7.1.0) - ruby-merge (= 7.1.0) - token-resolver (~> 2.0, >= 2.0.4) - toml-merge (= 7.1.0) - toml-rb (~> 4.2) - tree_haver (= 7.1.0) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge - specs: - kramdown-merge (7.1.0) - kramdown (~> 2.5) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge - specs: - markdown-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge - specs: - markly-merge (7.1.0) - markdown-merge (= 7.1.0) - markly (~> 0.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge - specs: - parslet-toml-merge (7.1.0) - toml (~> 0.3) - toml-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge - specs: - plain-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge - specs: - prism-merge (7.1.0) - prism (~> 1.6) - ruby-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge - specs: - psych-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge - specs: - rbs-merge (7.1.0) - ast-merge (= 7.1.0) - rbs (>= 3.10) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge - specs: - ruby-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge - specs: - rust-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb - specs: - smorg-rb (7.1.0) - ast-merge (= 7.1.0) - ast-merge-git (= 7.1.0) - diff-lcs (~> 1.5) - go-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-jem (= 7.1.0) - markly-merge (= 7.1.0) - plain-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/toml-merge specs: toml-merge (7.1.0) ast-merge (= 7.1.0) tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver - specs: - tree_haver (7.1.0) - citrus (~> 3.0) - parslet (~> 2.0) - tree_sitter_language_pack (>= 1.13.2, < 2.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge - specs: - typescript-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge - specs: - yaml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge - specs: - zip-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - GEM remote: https://gem.coop/ specs: @@ -281,6 +29,11 @@ GEM rubocop (>= 1.0) version_gem (~> 1.1, >= 1.1.14) ast (2.4.3) + ast-merge (7.1.0) + benchmark + token-resolver (~> 2.0, >= 2.0.4) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) backports (3.25.3) benchmark (0.5.0) bigdecimal (4.1.2) @@ -290,7 +43,6 @@ GEM cgi (0.5.2) citrus (3.0.2) cmdparse (3.0.7) - commonmarker (2.9.0-x86_64-linux) concurrent-ruby (1.3.8) date (3.5.1) debug (1.11.1) @@ -348,13 +100,11 @@ GEM rdoc (>= 4.0.0) reline (>= 0.4.2) json (2.21.1) - kettle-dev (2.3.8) + kettle-dev (2.3.9) emoji_regex (>= 15.0) kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) - kettle-drift (1.0.6) - version_gem (~> 1.1, >= 1.1.14) kettle-rb (0.1.5) kettle-soup-cover (3.0.4) kettle-wash (~> 0.1, >= 0.1.0) @@ -383,7 +133,6 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) - markly (0.16.0) mutex_m (0.3.0) nokogiri (1.19.4-x86_64-linux-gnu) racc (~> 1.4) @@ -538,8 +287,6 @@ GEM ruby-progressbar (1.13.0) ruby_engine (2.0.3) ruby_version (1.0.3) - service_actor (3.9.4) - zeitwerk (>= 1.0) silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) @@ -594,11 +341,14 @@ GEM token-resolver (2.0.5) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.14) - toml (0.3.0) - parslet (>= 1.8.0, < 3.0.0) toml-rb (4.2.0) citrus (~> 3.0, > 3.0) racc (~> 1.7) + tree_haver (7.1.0) + citrus (~> 3.0) + parslet (~> 2.0) + tree_sitter_language_pack (>= 1.13.2, < 2.0) + version_gem (~> 1.1, >= 1.1.9) tree_sitter_language_pack (1.13.3-x86_64-linux) sorbet-runtime (~> 0.5) tsort (0.2.0) @@ -644,46 +394,24 @@ DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) appraisal2-rubocop (~> 1.0, >= 1.0.0) - ast-crispr! - ast-crispr-markdown-markly! - ast-crispr-ruby-prism! - ast-merge! - ast-merge-git! - ast-template! - bash-merge! benchmark (~> 0.5, >= 0.5.0) - binary-merge! bundler-audit (~> 0.9.3) cgi (~> 0.5) citrus-toml-merge! - commonmarker-merge! debug (>= 1.1) - dotenv-merge! erb (~> 6.0, >= 6.0.6) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.0) - go-merge! irb (~> 1.17) - json-merge! kettle-dev (~> 2.0, >= 2.2.25) - kettle-drift (~> 1.0, >= 1.0.6) - kettle-jem! kettle-soup-cover (~> 3.0, >= 3.0.3) kettle-test (~> 2.0, >= 2.0.9) kramdown (~> 2.5, >= 2.5.2) - kramdown-merge! kramdown-parser-gfm (~> 1.1) - markdown-merge! - markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) - parslet-toml-merge! - plain-merge! - prism-merge! - psych-merge! rake (~> 13.0) rbs (>= 3.0) - rbs-merge! rdoc (~> 6.11) reek (~> 6.5, >= 6.5.0) require_bench (~> 1.0, >= 1.0.4) @@ -694,27 +422,20 @@ DEPENDENCIES rubocop-on-rbs (~> 2.0, >= 2.0.0) rubocop-packaging (~> 0.6, >= 0.6.0) rubocop-ruby3_2 (~> 3.0, >= 3.0.6) - ruby-merge! ruby-progressbar (~> 1.13) - rust-merge! - smorg-rb! standard (~> 1.56, >= 1.56.0) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) toml-merge! - tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) - typescript-merge! webrick (~> 1.9) yaml-converter (~> 0.2, >= 0.2.3) - yaml-merge! yard (~> 0.9, >= 0.9.45) yard-fence (~> 0.9, >= 0.9.6) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) yard-timekeeper (~> 0.2, >= 0.2.4) yard-yaml (~> 0.2, >= 0.2.3) - zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af @@ -722,31 +443,21 @@ CHECKSUMS appraisal2 (3.2.0) sha256=ccd0b767ac4060cd7af6d16747459b6990f49c39c7b4fb1f7d1146b1e97c492f appraisal2-rubocop (1.0.0) sha256=b71410fbb014befda5340605a605b7f6f3f012739baf0acc5b4351b592c3258d ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 - ast-crispr (7.1.0) - ast-crispr-markdown-markly (7.1.0) - ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) - ast-merge-git (7.1.0) - ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 - bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd - binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 - commonmarker (2.9.0-x86_64-linux) - commonmarker-merge (7.1.0) concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 - dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -759,28 +470,20 @@ CHECKSUMS gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f - go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 - json-merge (7.1.0) - kettle-dev (2.3.8) sha256=9d716ff21c660a730cb4e8d41e2e2f0630a28167a354b6e2924e242102aef72c - kettle-drift (1.0.6) - kettle-jem (7.1.0) + kettle-dev (2.3.9) kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f kettle-soup-cover (3.0.4) kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa - kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 - markdown-merge (7.1.0) - markly (0.16.0) - markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-x86_64-linux-gnu) sha256=379fae440b28915e3f19d752ce2dcf8465ed2b2fbefd2a7ca0dd497bc981a06a nomono (1.0.9) @@ -790,20 +493,15 @@ CHECKSUMS parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 - parslet-toml-merge (7.1.0) - plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 - prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 - psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 - rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb @@ -838,19 +536,15 @@ CHECKSUMS rubocop-rspec_rails (2.32.0) sha256=4a0d641c72f6ebb957534f539d9d0a62c47abd8ce0d0aeee1ef4701e892a9100 rubocop-ruby3_2 (3.0.7) sha256=f53dd6d286fb05186214fc6ec116783e7f837030918e8931c05de773e98f8466 rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 - ruby-merge (7.1.0) ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 - rust-merge (7.1.0) - service_actor (3.9.4) silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed - smorg-rb (7.1.0) sorbet-runtime (0.6.13351) sha256=f8fee17c6e3edf835dc6823d26afb9a7c8969c6710d1fabe2fb43f4e0c15c64f standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b @@ -865,20 +559,17 @@ CHECKSUMS timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.5) sha256=b852f924287ffb58a440856e862b056c8ad97e74b4b2526cee43e0771f40c25c - toml (0.3.0) toml-merge (7.1.0) toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 - typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 webrick (1.9.2) sha256=beb4a15fc474defed24a3bda4ffd88a490d517c9e4e6118c3edce59e45864131 yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 - yaml-merge (7.1.0) yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd @@ -886,7 +577,6 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 - zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH diff --git a/gems/citrus-toml-merge/Rakefile b/gems/citrus-toml-merge/Rakefile index c88ccc855..6077031be 100644 --- a/gems/citrus-toml-merge/Rakefile +++ b/gems/citrus-toml-merge/Rakefile @@ -130,23 +130,23 @@ end ### DUPLICATE DRIFT TASKS begin - require "kettle/drift" + require 'kettle/drift' Kettle::Drift.install_tasks rescue LoadError - desc("(stub) kettle:drift:check is unavailable") - task("kettle:drift:check") do + desc('(stub) kettle:drift:check is unavailable') + task('kettle:drift:check') do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc("(stub) kettle:drift:update is unavailable") - task("kettle:drift:update") do + desc('(stub) kettle:drift:update is unavailable') + task('kettle:drift:update') do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc("(stub) kettle:drift:force_update is unavailable") - task("kettle:drift:force_update") do + desc('(stub) kettle:drift:force_update is unavailable') + task('kettle:drift:force_update') do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc("(stub) kettle:drift is unavailable") - task("kettle:drift" => "kettle:drift:update") + desc('(stub) kettle:drift is unavailable') + task('kettle:drift' => 'kettle:drift:update') end ### TEMPLATING TASKS diff --git a/gems/citrus-toml-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile b/gems/citrus-toml-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile index dec650815..b8392fab0 100644 --- a/gems/citrus-toml-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile +++ b/gems/citrus-toml-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.1 -gem "benchmark", "~> 0.5", ">= 0.5.0" # Removed from Std Lib in Ruby 4.0 +gem 'benchmark', '~> 0.5', '>= 0.5.0' # Removed from Std Lib in Ruby 4.0 diff --git a/gems/citrus-toml-merge/gemfiles/modular/benchmark/vHEAD.gemfile b/gems/citrus-toml-merge/gemfiles/modular/benchmark/vHEAD.gemfile index e1eb20c5e..af214aafa 100644 --- a/gems/citrus-toml-merge/gemfiles/modular/benchmark/vHEAD.gemfile +++ b/gems/citrus-toml-merge/gemfiles/modular/benchmark/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.1 -gem "benchmark", github: "ruby/benchmark", branch: "master" +gem 'benchmark', github: 'ruby/benchmark', branch: 'master' diff --git a/gems/citrus-toml-merge/gemfiles/modular/cgi/r4/v0.5.gemfile b/gems/citrus-toml-merge/gemfiles/modular/cgi/r4/v0.5.gemfile index 19ed967c3..17ad97260 100644 --- a/gems/citrus-toml-merge/gemfiles/modular/cgi/r4/v0.5.gemfile +++ b/gems/citrus-toml-merge/gemfiles/modular/cgi/r4/v0.5.gemfile @@ -1 +1 @@ -gem "cgi", "~> 0.5" +gem 'cgi', '~> 0.5' diff --git a/gems/citrus-toml-merge/gemfiles/modular/cgi/vHEAD.gemfile b/gems/citrus-toml-merge/gemfiles/modular/cgi/vHEAD.gemfile index ef8b816ce..650fbf033 100644 --- a/gems/citrus-toml-merge/gemfiles/modular/cgi/vHEAD.gemfile +++ b/gems/citrus-toml-merge/gemfiles/modular/cgi/vHEAD.gemfile @@ -1 +1 @@ -gem "cgi", ">= 0.5" +gem 'cgi', '>= 0.5' diff --git a/gems/citrus-toml-merge/gemfiles/modular/coverage.gemfile b/gems/citrus-toml-merge/gemfiles/modular/coverage.gemfile index 52d737872..b93014b6b 100644 --- a/gems/citrus-toml-merge/gemfiles/modular/coverage.gemfile +++ b/gems/citrus-toml-merge/gemfiles/modular/coverage.gemfile @@ -4,11 +4,11 @@ # Set KETTLE_DEV_DEV=true for local development with path-based dependencies. # When false (default / CI), remote released gems are used. -if ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false").zero? +if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? # Coverage (remote/released) platform :mri do - gem "kettle-soup-cover", "~> 3.0", ">= 3.0.3", require: false + gem 'kettle-soup-cover', '~> 3.0', '>= 3.0.3', require: false end else - eval_gemfile "coverage_local.gemfile" + eval_gemfile 'coverage_local.gemfile' end diff --git a/gems/citrus-toml-merge/gemfiles/modular/coverage_local.gemfile b/gems/citrus-toml-merge/gemfiles/modular/coverage_local.gemfile index 29d430ced..89702c538 100644 --- a/gems/citrus-toml-merge/gemfiles/modular/coverage_local.gemfile +++ b/gems/citrus-toml-merge/gemfiles/modular/coverage_local.gemfile @@ -11,21 +11,19 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] -nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) +nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] +nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == "nomono" } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - if nomono_locked - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] - end + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked end -Kernel.send(:gem, "nomono", *nomono_activation_requirements) -require "nomono/bundler" +Kernel.send(:gem, 'nomono', *nomono_activation_requirements) +require 'nomono/bundler' local_gems = %w[kettle-dev kettle-test kettle-soup-cover kettle-drift] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) @@ -35,21 +33,21 @@ local_gems_to_eval = local_gems - %w[citrus-toml-merge] - declared_gems platform :mri do eval_nomono_gems( gems: local_gems_to_eval, - prefix: "KETTLE_DEV", - path_env: "KETTLE_DEV_DEV", - vendored_gems_env: "VENDORED_GEMS", - vendor_gem_dir_env: "VENDOR_GEM_DIR", - debug_env: "KETTLE_DEV_DEBUG" + prefix: 'KETTLE_DEV', + path_env: 'KETTLE_DEV_DEV', + vendored_gems_env: 'VENDORED_GEMS', + vendor_gem_dir_env: 'VENDOR_GEM_DIR', + debug_env: 'KETTLE_DEV_DEBUG' ) - if ENV.fetch("GALTZO_FLOSS_DEV", "false").casecmp("false") != 0 + if ENV.fetch('GALTZO_FLOSS_DEV', 'false').casecmp('false') != 0 eval_nomono_gems( gems: %w[turbo_tests2], - prefix: "GALTZO_FLOSS", - path_env: "GALTZO_FLOSS_DEV", - vendored_gems_env: "GALTZO_FLOSS_VENDORED_GEMS", - vendor_gem_dir_env: "GALTZO_FLOSS_VENDOR_GEM_DIR", - debug_env: "GALTZO_FLOSS_DEBUG" + prefix: 'GALTZO_FLOSS', + path_env: 'GALTZO_FLOSS_DEV', + vendored_gems_env: 'GALTZO_FLOSS_VENDORED_GEMS', + vendor_gem_dir_env: 'GALTZO_FLOSS_VENDOR_GEM_DIR', + debug_env: 'GALTZO_FLOSS_DEBUG' ) end end diff --git a/gems/citrus-toml-merge/gemfiles/modular/debug.gemfile b/gems/citrus-toml-merge/gemfiles/modular/debug.gemfile index 4e15b1a3a..eed8d4d1e 100644 --- a/gems/citrus-toml-merge/gemfiles/modular/debug.gemfile +++ b/gems/citrus-toml-merge/gemfiles/modular/debug.gemfile @@ -13,10 +13,10 @@ platform :mri do # Debugging - Ensure ENV["DEBUG"] == "true" to use debuggers within spec suite # Use binding.break, binding.b, or debugger in code - gem "debug", ">= 1.1" # ruby >= 2.7 + gem 'debug', '>= 1.1' # ruby >= 2.7 # Dev Console - Binding.pry - Irb replacement # gem "pry", "~> 0.14" # ruby >= 2.0 end -gem "gem_bench", "~> 2.0", ">= 2.0.5" +gem 'gem_bench', '~> 2.0', '>= 2.0.5' diff --git a/gems/citrus-toml-merge/gemfiles/modular/documentation.gemfile b/gems/citrus-toml-merge/gemfiles/modular/documentation.gemfile index d8215416e..9d4535f12 100644 --- a/gems/citrus-toml-merge/gemfiles/modular/documentation.gemfile +++ b/gems/citrus-toml-merge/gemfiles/modular/documentation.gemfile @@ -7,20 +7,20 @@ # # Documentation -gem "kramdown", "~> 2.5", ">= 2.5.2", require: false # Ruby >= 2.5 -gem "kramdown-parser-gfm", "~> 1.1", require: false # Ruby >= 2.3 -gem "yaml-converter", "~> 0.2", ">= 0.2.3", require: false # Ruby >= 3.2 -gem "yard", "~> 0.9", ">= 0.9.45", require: false -gem "yard-junk", "~> 0.1", ">= 0.1.0", require: false # Ruby >= 3.1 -gem "yard-relative_markdown_links", "~> 0.6", require: false +gem 'kramdown', '~> 2.5', '>= 2.5.2', require: false # Ruby >= 2.5 +gem 'kramdown-parser-gfm', '~> 1.1', require: false # Ruby >= 2.3 +gem 'yaml-converter', '~> 0.2', '>= 0.2.3', require: false # Ruby >= 3.2 +gem 'yard', '~> 0.9', '>= 0.9.45', require: false +gem 'yard-junk', '~> 0.1', '>= 0.1.0', require: false # Ruby >= 3.1 +gem 'yard-relative_markdown_links', '~> 0.6', require: false -if ENV.fetch("GALTZO_FLOSS_DEV", "false").casecmp("false").zero? - gem "yard-fence", "~> 0.9", ">= 0.9.6", require: false # Ruby >= 3.2 - gem "yard-timekeeper", "~> 0.2", ">= 0.2.4", require: false - gem "yard-yaml", "~> 0.2", ">= 0.2.3", require: false +if ENV.fetch('GALTZO_FLOSS_DEV', 'false').casecmp('false').zero? + gem 'yard-fence', '~> 0.9', '>= 0.9.6', require: false # Ruby >= 3.2 + gem 'yard-timekeeper', '~> 0.2', '>= 0.2.4', require: false + gem 'yard-yaml', '~> 0.2', '>= 0.2.3', require: false else - eval_gemfile "documentation_local.gemfile" + eval_gemfile 'documentation_local.gemfile' end # Std Lib extractions -gem "rdoc", "~> 6.11", require: false unless ENV.fetch("KJ_FRAMEWORK_MATRIX_GEM", "") == "rdoc" +gem 'rdoc', '~> 6.11', require: false unless ENV.fetch('KJ_FRAMEWORK_MATRIX_GEM', '') == 'rdoc' diff --git a/gems/citrus-toml-merge/gemfiles/modular/documentation_local.gemfile b/gems/citrus-toml-merge/gemfiles/modular/documentation_local.gemfile index 95673b694..bbd6f96c8 100644 --- a/gems/citrus-toml-merge/gemfiles/modular/documentation_local.gemfile +++ b/gems/citrus-toml-merge/gemfiles/modular/documentation_local.gemfile @@ -11,21 +11,19 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] -nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) +nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] +nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == "nomono" } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - if nomono_locked - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] - end + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked end -Kernel.send(:gem, "nomono", *nomono_activation_requirements) -require "nomono/bundler" +Kernel.send(:gem, 'nomono', *nomono_activation_requirements) +require 'nomono/bundler' local_gems = %w[yard-fence yard-timekeeper yard-yaml] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) @@ -34,9 +32,9 @@ local_gems_to_eval = local_gems - %w[citrus-toml-merge] - declared_gems # export GALTZO_FLOSS_DEV=/path/to/galtzo-floss eval_nomono_gems( gems: local_gems_to_eval, - prefix: "GALTZO_FLOSS", - path_env: "GALTZO_FLOSS_DEV", - vendored_gems_env: "GALTZO_FLOSS_VENDORED_GEMS", - vendor_gem_dir_env: "GALTZO_FLOSS_VENDOR_GEM_DIR", - debug_env: "GALTZO_FLOSS_DEBUG" + prefix: 'GALTZO_FLOSS', + path_env: 'GALTZO_FLOSS_DEV', + vendored_gems_env: 'GALTZO_FLOSS_VENDORED_GEMS', + vendor_gem_dir_env: 'GALTZO_FLOSS_VENDOR_GEM_DIR', + debug_env: 'GALTZO_FLOSS_DEBUG' ) diff --git a/gems/citrus-toml-merge/gemfiles/modular/erb/r2/v3.0.gemfile b/gems/citrus-toml-merge/gemfiles/modular/erb/r2/v3.0.gemfile index c03bd8d85..7c83a239b 100644 --- a/gems/citrus-toml-merge/gemfiles/modular/erb/r2/v3.0.gemfile +++ b/gems/citrus-toml-merge/gemfiles/modular/erb/r2/v3.0.gemfile @@ -1 +1 @@ -gem "erb", "~> 3.0" # ruby >= 2.7.0 +gem 'erb', '~> 3.0' # ruby >= 2.7.0 diff --git a/gems/citrus-toml-merge/gemfiles/modular/erb/r3/v5.0.gemfile b/gems/citrus-toml-merge/gemfiles/modular/erb/r3/v5.0.gemfile index 1bd029cc1..ec7ff451f 100644 --- a/gems/citrus-toml-merge/gemfiles/modular/erb/r3/v5.0.gemfile +++ b/gems/citrus-toml-merge/gemfiles/modular/erb/r3/v5.0.gemfile @@ -1 +1 @@ -gem "erb", "~> 6.0", ">= 6.0.6" # ruby >= 3.2.0 +gem 'erb', '~> 6.0', '>= 6.0.6' # ruby >= 3.2.0 diff --git a/gems/citrus-toml-merge/gemfiles/modular/erb/r4/v5.0.gemfile b/gems/citrus-toml-merge/gemfiles/modular/erb/r4/v5.0.gemfile index 1bd029cc1..ec7ff451f 100644 --- a/gems/citrus-toml-merge/gemfiles/modular/erb/r4/v5.0.gemfile +++ b/gems/citrus-toml-merge/gemfiles/modular/erb/r4/v5.0.gemfile @@ -1 +1 @@ -gem "erb", "~> 6.0", ">= 6.0.6" # ruby >= 3.2.0 +gem 'erb', '~> 6.0', '>= 6.0.6' # ruby >= 3.2.0 diff --git a/gems/citrus-toml-merge/gemfiles/modular/erb/vHEAD.gemfile b/gems/citrus-toml-merge/gemfiles/modular/erb/vHEAD.gemfile index 48fee4218..ea0101185 100644 --- a/gems/citrus-toml-merge/gemfiles/modular/erb/vHEAD.gemfile +++ b/gems/citrus-toml-merge/gemfiles/modular/erb/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 3.2 -gem "erb", github: "ruby/erb", branch: "master" +gem 'erb', github: 'ruby/erb', branch: 'master' diff --git a/gems/citrus-toml-merge/gemfiles/modular/json/truffleruby_22_3.gemfile b/gems/citrus-toml-merge/gemfiles/modular/json/truffleruby_22_3.gemfile index b0e69ab11..9b2f8d96a 100644 --- a/gems/citrus-toml-merge/gemfiles/modular/json/truffleruby_22_3.gemfile +++ b/gems/citrus-toml-merge/gemfiles/modular/json/truffleruby_22_3.gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -if RUBY_ENGINE == "truffleruby" && RUBY_ENGINE_VERSION.start_with?("22.3") +if RUBY_ENGINE == 'truffleruby' && RUBY_ENGINE_VERSION.start_with?('22.3') # TruffleRuby 22.3 ships the json default gem from its emulated MRI Ruby. - gem "json", "= 2.5.1" + gem 'json', '= 2.5.1' end diff --git a/gems/citrus-toml-merge/gemfiles/modular/json/truffleruby_23_0.gemfile b/gems/citrus-toml-merge/gemfiles/modular/json/truffleruby_23_0.gemfile index 7b2660a2b..d787a5ef4 100644 --- a/gems/citrus-toml-merge/gemfiles/modular/json/truffleruby_23_0.gemfile +++ b/gems/citrus-toml-merge/gemfiles/modular/json/truffleruby_23_0.gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -if RUBY_ENGINE == "truffleruby" && RUBY_ENGINE_VERSION.start_with?("23.0") +if RUBY_ENGINE == 'truffleruby' && RUBY_ENGINE_VERSION.start_with?('23.0') # TruffleRuby 23.0 ships the json default gem from its emulated MRI Ruby. - gem "json", "= 2.6.1" + gem 'json', '= 2.6.1' end diff --git a/gems/citrus-toml-merge/gemfiles/modular/json/truffleruby_23_1.gemfile b/gems/citrus-toml-merge/gemfiles/modular/json/truffleruby_23_1.gemfile index dfa21f2e4..d78486b0e 100644 --- a/gems/citrus-toml-merge/gemfiles/modular/json/truffleruby_23_1.gemfile +++ b/gems/citrus-toml-merge/gemfiles/modular/json/truffleruby_23_1.gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -if RUBY_ENGINE == "truffleruby" && RUBY_ENGINE_VERSION.start_with?("23.1") +if RUBY_ENGINE == 'truffleruby' && RUBY_ENGINE_VERSION.start_with?('23.1') # TruffleRuby 23.1 ships the json default gem from its emulated MRI Ruby. - gem "json", "= 2.6.3" + gem 'json', '= 2.6.3' end diff --git a/gems/citrus-toml-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile b/gems/citrus-toml-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile index 42e9d9bd4..e27f1bbae 100644 --- a/gems/citrus-toml-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile +++ b/gems/citrus-toml-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 -gem "mutex_m", "~> 0.2" +gem 'mutex_m', '~> 0.2' diff --git a/gems/citrus-toml-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile b/gems/citrus-toml-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile index 42e9d9bd4..e27f1bbae 100644 --- a/gems/citrus-toml-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile +++ b/gems/citrus-toml-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 -gem "mutex_m", "~> 0.2" +gem 'mutex_m', '~> 0.2' diff --git a/gems/citrus-toml-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile b/gems/citrus-toml-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile index 42e9d9bd4..e27f1bbae 100644 --- a/gems/citrus-toml-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile +++ b/gems/citrus-toml-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 -gem "mutex_m", "~> 0.2" +gem 'mutex_m', '~> 0.2' diff --git a/gems/citrus-toml-merge/gemfiles/modular/mutex_m/vHEAD.gemfile b/gems/citrus-toml-merge/gemfiles/modular/mutex_m/vHEAD.gemfile index 8af3b6fca..9dac2f6cb 100644 --- a/gems/citrus-toml-merge/gemfiles/modular/mutex_m/vHEAD.gemfile +++ b/gems/citrus-toml-merge/gemfiles/modular/mutex_m/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 (dependency of omniauth) -gem "mutex_m", github: "ruby/mutex_m", branch: "master" +gem 'mutex_m', github: 'ruby/mutex_m', branch: 'master' diff --git a/gems/citrus-toml-merge/gemfiles/modular/optional.gemfile b/gems/citrus-toml-merge/gemfiles/modular/optional.gemfile index 80bc45196..9ea429538 100644 --- a/gems/citrus-toml-merge/gemfiles/modular/optional.gemfile +++ b/gems/citrus-toml-merge/gemfiles/modular/optional.gemfile @@ -9,8 +9,8 @@ # Optional dependencies are not depended on directly, but may be used if present. # Required for curated binstubs generated by kettle-jem install -gem "rbs", ">= 3.0", require: false # ruby >= 3.1 +gem 'rbs', '>= 3.0', require: false # ruby >= 3.1 # Required for kettle-pre-release # URL parsing with Unicode support (falls back to URI if not available) -gem "addressable", ">= 2.8", "< 3" # ruby >= 2.2 +gem 'addressable', '>= 2.8', '< 3' # ruby >= 2.2 diff --git a/gems/citrus-toml-merge/gemfiles/modular/rspec.gemfile b/gems/citrus-toml-merge/gemfiles/modular/rspec.gemfile index 72fdf8b7f..2af210a41 100644 --- a/gems/citrus-toml-merge/gemfiles/modular/rspec.gemfile +++ b/gems/citrus-toml-merge/gemfiles/modular/rspec.gemfile @@ -1,4 +1,4 @@ -gem "rspec_junit_formatter", - github: "pboling/rspec_junit_formatter", - branch: "main", - ref: "9e6bcaaedd49477b62878ed568dc4ada5cc7cb5e" +gem 'rspec_junit_formatter', + github: 'pboling/rspec_junit_formatter', + branch: 'main', + ref: '9e6bcaaedd49477b62878ed568dc4ada5cc7cb5e' diff --git a/gems/citrus-toml-merge/gemfiles/modular/runtime_heads.gemfile b/gems/citrus-toml-merge/gemfiles/modular/runtime_heads.gemfile index 02f134c7f..ebf17c529 100644 --- a/gems/citrus-toml-merge/gemfiles/modular/runtime_heads.gemfile +++ b/gems/citrus-toml-merge/gemfiles/modular/runtime_heads.gemfile @@ -8,4 +8,4 @@ # Test against HEAD of runtime dependencies so we can proactively file bugs -eval_gemfile("x_std_libs/vHEAD.gemfile") +eval_gemfile('x_std_libs/vHEAD.gemfile') diff --git a/gems/citrus-toml-merge/gemfiles/modular/stringio/r2/v3.0.gemfile b/gems/citrus-toml-merge/gemfiles/modular/stringio/r2/v3.0.gemfile index e85bb18ee..3616f4e3a 100644 --- a/gems/citrus-toml-merge/gemfiles/modular/stringio/r2/v3.0.gemfile +++ b/gems/citrus-toml-merge/gemfiles/modular/stringio/r2/v3.0.gemfile @@ -2,4 +2,4 @@ # NOT SEMVER # Version 3.0.7 dropped support for Ruby <= 2.7 # Version 3.0.0 dropped support for Ruby <= 2.4 -gem "stringio", ">= 3.0" +gem 'stringio', '>= 3.0' diff --git a/gems/citrus-toml-merge/gemfiles/modular/stringio/r3/v3.0.gemfile b/gems/citrus-toml-merge/gemfiles/modular/stringio/r3/v3.0.gemfile index e85bb18ee..3616f4e3a 100644 --- a/gems/citrus-toml-merge/gemfiles/modular/stringio/r3/v3.0.gemfile +++ b/gems/citrus-toml-merge/gemfiles/modular/stringio/r3/v3.0.gemfile @@ -2,4 +2,4 @@ # NOT SEMVER # Version 3.0.7 dropped support for Ruby <= 2.7 # Version 3.0.0 dropped support for Ruby <= 2.4 -gem "stringio", ">= 3.0" +gem 'stringio', '>= 3.0' diff --git a/gems/citrus-toml-merge/gemfiles/modular/stringio/r4/v3.0.gemfile b/gems/citrus-toml-merge/gemfiles/modular/stringio/r4/v3.0.gemfile index e85bb18ee..3616f4e3a 100644 --- a/gems/citrus-toml-merge/gemfiles/modular/stringio/r4/v3.0.gemfile +++ b/gems/citrus-toml-merge/gemfiles/modular/stringio/r4/v3.0.gemfile @@ -2,4 +2,4 @@ # NOT SEMVER # Version 3.0.7 dropped support for Ruby <= 2.7 # Version 3.0.0 dropped support for Ruby <= 2.4 -gem "stringio", ">= 3.0" +gem 'stringio', '>= 3.0' diff --git a/gems/citrus-toml-merge/gemfiles/modular/stringio/vHEAD.gemfile b/gems/citrus-toml-merge/gemfiles/modular/stringio/vHEAD.gemfile index 5f2a74126..78f5f5d8a 100644 --- a/gems/citrus-toml-merge/gemfiles/modular/stringio/vHEAD.gemfile +++ b/gems/citrus-toml-merge/gemfiles/modular/stringio/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 (dependency of omniauth) -gem "stringio", github: "ruby/stringio", branch: "master" +gem 'stringio', github: 'ruby/stringio', branch: 'master' diff --git a/gems/citrus-toml-merge/gemfiles/modular/style.gemfile b/gems/citrus-toml-merge/gemfiles/modular/style.gemfile index 35de4dcd6..4dbcc02c0 100644 --- a/gems/citrus-toml-merge/gemfiles/modular/style.gemfile +++ b/gems/citrus-toml-merge/gemfiles/modular/style.gemfile @@ -9,23 +9,23 @@ # Style tasks run on the latest Ruby; RuboCop-LTS selects the compatibility # rules for the configured Ruby floor independently from task dependency floors. -gem "reek", "~> 6.5", ">= 6.5.0" +gem 'reek', '~> 6.5', '>= 6.5.0' platform :mri do - gem "appraisal2-rubocop", "~> 1.0", ">= 1.0.0", require: false - gem "rubocop-gradual", "~> 0.4", ">= 0.4.0" - gem "rubocop-minitest", "~> 0.40", ">= 0.40.0" - gem "rubocop-on-rbs", "~> 2.0", ">= 2.0.0" # ruby >= 3.2.0 + gem 'appraisal2-rubocop', '~> 1.0', '>= 1.0.0', require: false + gem 'rubocop-gradual', '~> 0.4', '>= 0.4.0' + gem 'rubocop-minitest', '~> 0.40', '>= 0.40.0' + gem 'rubocop-on-rbs', '~> 2.0', '>= 2.0.0' # ruby >= 3.2.0 # gem "rubocop", "~> 1.73", ">= 1.73.2" # constrained by standard - gem "rubocop-packaging", "~> 0.6", ">= 0.6.0" - gem "standard", "~> 1.56", ">= 1.56.0" + gem 'rubocop-packaging', '~> 0.6', '>= 0.6.0' + gem 'standard', '~> 1.56', '>= 1.56.0' - if ENV.fetch("RUBOCOP_LTS_LOCAL", "false").casecmp("false").zero? + if ENV.fetch('RUBOCOP_LTS_LOCAL', 'false').casecmp('false').zero? declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) - gem "rubocop-lts", "~> 24.2", ">= 24.2.1" unless declared_gems.include?("rubocop-lts") - gem "rubocop-lts-rspec", "~> 1.0", ">= 1.0.5" unless declared_gems.include?("rubocop-lts-rspec") - gem "rubocop-ruby3_2", "~> 3.0", ">= 3.0.6" unless declared_gems.include?("rubocop-ruby3_2") + gem 'rubocop-lts', '~> 24.2', '>= 24.2.1' unless declared_gems.include?('rubocop-lts') + gem 'rubocop-lts-rspec', '~> 1.0', '>= 1.0.5' unless declared_gems.include?('rubocop-lts-rspec') + gem 'rubocop-ruby3_2', '~> 3.0', '>= 3.0.6' unless declared_gems.include?('rubocop-ruby3_2') else - eval_gemfile("style_local.gemfile") + eval_gemfile('style_local.gemfile') end end diff --git a/gems/citrus-toml-merge/gemfiles/modular/style_local.gemfile b/gems/citrus-toml-merge/gemfiles/modular/style_local.gemfile index 9a5e42dce..29d2add9f 100644 --- a/gems/citrus-toml-merge/gemfiles/modular/style_local.gemfile +++ b/gems/citrus-toml-merge/gemfiles/modular/style_local.gemfile @@ -14,21 +14,19 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] -nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) +nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] +nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == "nomono" } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - if nomono_locked - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] - end + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked end -Kernel.send(:gem, "nomono", *nomono_activation_requirements) -require "nomono/bundler" +Kernel.send(:gem, 'nomono', *nomono_activation_requirements) +require 'nomono/bundler' local_gems = %w[rubocop-lts rubocop-lts-rspec rubocop-ruby3_2 standard-rubocop-lts] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) @@ -38,11 +36,11 @@ local_gems_to_eval = local_gems - %w[citrus-toml-merge] - declared_gems platform :mri do eval_nomono_gems( gems: local_gems_to_eval, - prefix: "RUBOCOP_LTS", - path_env: "RUBOCOP_LTS_LOCAL", - vendored_gems_env: "VENDORED_GEMS", - vendor_gem_dir_env: "VENDOR_GEM_DIR", - debug_env: "RUBOCOP_LTS_DEBUG", - root: ["src", "rubocop-lts"] + prefix: 'RUBOCOP_LTS', + path_env: 'RUBOCOP_LTS_LOCAL', + vendored_gems_env: 'VENDORED_GEMS', + vendor_gem_dir_env: 'VENDOR_GEM_DIR', + debug_env: 'RUBOCOP_LTS_DEBUG', + root: %w[src rubocop-lts] ) end diff --git a/gems/citrus-toml-merge/gemfiles/modular/templating.gemfile b/gems/citrus-toml-merge/gemfiles/modular/templating.gemfile index 47138ffbb..a672de184 100644 --- a/gems/citrus-toml-merge/gemfiles/modular/templating.gemfile +++ b/gems/citrus-toml-merge/gemfiles/modular/templating.gemfile @@ -1,18 +1,18 @@ # frozen_string_literal: true -structuredmerge_remote = ENV.fetch("STRUCTUREDMERGE_DEV", "false").casecmp("false").zero? -kettle_remote = ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false").zero? +structuredmerge_remote = ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false').zero? +kettle_remote = ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? if structuredmerge_remote # Parser dependencies for released installs. - gem "tree_sitter_language_pack", "~> 1.13", ">= 1.13.3" + gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' # Merge recipes for released installs. - gem "kettle-jem", ">= 7.0" + gem 'kettle-jem', '>= 7.0' end if kettle_remote # Template/plugin checks for released installs. - gem "kettle-drift", "~> 1.0", ">= 1.0.6", require: false + gem 'kettle-drift', '~> 1.0', '>= 1.0.6', require: false end # Set STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local development with path-based dependencies. @@ -21,4 +21,4 @@ end # # Set KETTLE_DEV_DEV=/path/to/my for local development with Kettle plugin gems. # When false (default / CI), released Kettle plugin gems are used. -eval_gemfile "templating_local.gemfile" unless structuredmerge_remote && kettle_remote +eval_gemfile 'templating_local.gemfile' unless structuredmerge_remote && kettle_remote diff --git a/gems/citrus-toml-merge/gemfiles/modular/templating_local.gemfile b/gems/citrus-toml-merge/gemfiles/modular/templating_local.gemfile index cf4c4dd45..f59e32e90 100644 --- a/gems/citrus-toml-merge/gemfiles/modular/templating_local.gemfile +++ b/gems/citrus-toml-merge/gemfiles/modular/templating_local.gemfile @@ -12,21 +12,19 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] -nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) +nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] +nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == "nomono" } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - if nomono_locked - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] - end + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked end -Kernel.send(:gem, "nomono", *nomono_activation_requirements) -require "nomono/bundler" +Kernel.send(:gem, 'nomono', *nomono_activation_requirements) +require 'nomono/bundler' structuredmerge_local_gems = %w[ tree_haver @@ -69,25 +67,25 @@ structuredmerge_local_gems_to_eval = structuredmerge_local_gems - %w[citrus-toml kettle_dev_local_gems_to_eval = kettle_dev_local_gems - %w[citrus-toml-merge] - declared_gems platform :mri do - if ENV.fetch("STRUCTUREDMERGE_DEV", "false").casecmp("false") != 0 + if ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false') != 0 eval_nomono_gems( gems: structuredmerge_local_gems_to_eval, - prefix: "STRUCTUREDMERGE", - path_env: "STRUCTUREDMERGE_DEV", - vendored_gems_env: "VENDORED_GEMS", - vendor_gem_dir_env: "VENDOR_GEM_DIR", - debug_env: "STRUCTUREDMERGE_DEBUG" + prefix: 'STRUCTUREDMERGE', + path_env: 'STRUCTUREDMERGE_DEV', + vendored_gems_env: 'VENDORED_GEMS', + vendor_gem_dir_env: 'VENDOR_GEM_DIR', + debug_env: 'STRUCTUREDMERGE_DEBUG' ) end - if ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false") != 0 + if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false') != 0 eval_nomono_gems( gems: kettle_dev_local_gems_to_eval, - prefix: "KETTLE_DEV", - path_env: "KETTLE_DEV_DEV", - vendored_gems_env: "VENDORED_GEMS", - vendor_gem_dir_env: "VENDOR_GEM_DIR", - debug_env: "KETTLE_DEV_DEBUG" + prefix: 'KETTLE_DEV', + path_env: 'KETTLE_DEV_DEV', + vendored_gems_env: 'VENDORED_GEMS', + vendor_gem_dir_env: 'VENDOR_GEM_DIR', + debug_env: 'KETTLE_DEV_DEBUG' ) end end diff --git a/gems/citrus-toml-merge/gemfiles/modular/webrick/r4/v1.9.gemfile b/gems/citrus-toml-merge/gemfiles/modular/webrick/r4/v1.9.gemfile index eaab4a473..b1329ba84 100644 --- a/gems/citrus-toml-merge/gemfiles/modular/webrick/r4/v1.9.gemfile +++ b/gems/citrus-toml-merge/gemfiles/modular/webrick/r4/v1.9.gemfile @@ -1 +1 @@ -gem "webrick", "~> 1.9" +gem 'webrick', '~> 1.9' diff --git a/gems/citrus-toml-merge/gemfiles/modular/webrick/vHEAD.gemfile b/gems/citrus-toml-merge/gemfiles/modular/webrick/vHEAD.gemfile index 8a789b634..c7e6f81a1 100644 --- a/gems/citrus-toml-merge/gemfiles/modular/webrick/vHEAD.gemfile +++ b/gems/citrus-toml-merge/gemfiles/modular/webrick/vHEAD.gemfile @@ -1 +1 @@ -gem "webrick", ">= 1.9" +gem 'webrick', '>= 1.9' diff --git a/gems/citrus-toml-merge/gemfiles/modular/x_std_libs.gemfile b/gems/citrus-toml-merge/gemfiles/modular/x_std_libs.gemfile index 77aad43f2..b1f43c097 100644 --- a/gems/citrus-toml-merge/gemfiles/modular/x_std_libs.gemfile +++ b/gems/citrus-toml-merge/gemfiles/modular/x_std_libs.gemfile @@ -1,12 +1,12 @@ ### Std Lib Extracted Gems ruby_version = Gem::Version.new(RUBY_VERSION) -if ruby_version >= Gem::Version.new("4.0") - eval_gemfile "x_std_libs/r4/libs.gemfile" -elsif ruby_version >= Gem::Version.new("3.2") - eval_gemfile "x_std_libs/r3/libs.gemfile" -elsif ruby_version >= Gem::Version.new("3.1") - eval_gemfile "x_std_libs/r3.1/libs.gemfile" +if ruby_version >= Gem::Version.new('4.0') + eval_gemfile 'x_std_libs/r4/libs.gemfile' +elsif ruby_version >= Gem::Version.new('3.2') + eval_gemfile 'x_std_libs/r3/libs.gemfile' +elsif ruby_version >= Gem::Version.new('3.1') + eval_gemfile 'x_std_libs/r3.1/libs.gemfile' else - eval_gemfile "x_std_libs/r2/libs.gemfile" + eval_gemfile 'x_std_libs/r2/libs.gemfile' end diff --git a/gems/citrus-toml-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile b/gems/citrus-toml-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile index 441c4f03a..16a5e3d70 100644 --- a/gems/citrus-toml-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile +++ b/gems/citrus-toml-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile @@ -1,3 +1,3 @@ -eval_gemfile "../../erb/r2/v3.0.gemfile" -eval_gemfile "../../mutex_m/r2/v0.3.gemfile" -eval_gemfile "../../stringio/r2/v3.0.gemfile" +eval_gemfile '../../erb/r2/v3.0.gemfile' +eval_gemfile '../../mutex_m/r2/v0.3.gemfile' +eval_gemfile '../../stringio/r2/v3.0.gemfile' diff --git a/gems/citrus-toml-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile b/gems/citrus-toml-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile index c293a3ddd..220ff95c1 100644 --- a/gems/citrus-toml-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile +++ b/gems/citrus-toml-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile @@ -1,3 +1,3 @@ -eval_gemfile "../../erb/r3/v5.0.gemfile" -eval_gemfile "../../mutex_m/r3/v0.3.gemfile" -eval_gemfile "../../stringio/r3/v3.0.gemfile" +eval_gemfile '../../erb/r3/v5.0.gemfile' +eval_gemfile '../../mutex_m/r3/v0.3.gemfile' +eval_gemfile '../../stringio/r3/v3.0.gemfile' diff --git a/gems/citrus-toml-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile b/gems/citrus-toml-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile index eb5574247..e2f6501eb 100644 --- a/gems/citrus-toml-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile +++ b/gems/citrus-toml-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile @@ -1,6 +1,6 @@ -eval_gemfile "../../erb/r4/v5.0.gemfile" -eval_gemfile "../../mutex_m/r4/v0.3.gemfile" -eval_gemfile "../../stringio/r4/v3.0.gemfile" -eval_gemfile "../../benchmark/r4/v0.5.gemfile" -eval_gemfile "../../cgi/r4/v0.5.gemfile" -eval_gemfile "../../webrick/r4/v1.9.gemfile" +eval_gemfile '../../erb/r4/v5.0.gemfile' +eval_gemfile '../../mutex_m/r4/v0.3.gemfile' +eval_gemfile '../../stringio/r4/v3.0.gemfile' +eval_gemfile '../../benchmark/r4/v0.5.gemfile' +eval_gemfile '../../cgi/r4/v0.5.gemfile' +eval_gemfile '../../webrick/r4/v1.9.gemfile' diff --git a/gems/citrus-toml-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile b/gems/citrus-toml-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile index d4d5b16c9..ab75cccf1 100644 --- a/gems/citrus-toml-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile +++ b/gems/citrus-toml-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile @@ -1,6 +1,6 @@ -eval_gemfile "../erb/vHEAD.gemfile" -eval_gemfile "../mutex_m/vHEAD.gemfile" -eval_gemfile "../stringio/vHEAD.gemfile" -eval_gemfile "../benchmark/vHEAD.gemfile" -eval_gemfile "../cgi/vHEAD.gemfile" -eval_gemfile "../webrick/vHEAD.gemfile" +eval_gemfile '../erb/vHEAD.gemfile' +eval_gemfile '../mutex_m/vHEAD.gemfile' +eval_gemfile '../stringio/vHEAD.gemfile' +eval_gemfile '../benchmark/vHEAD.gemfile' +eval_gemfile '../cgi/vHEAD.gemfile' +eval_gemfile '../webrick/vHEAD.gemfile' diff --git a/gems/citrus-toml-merge/lib/citrus/toml/merge/version.rb b/gems/citrus-toml-merge/lib/citrus/toml/merge/version.rb index e83bb4f4d..9d400d071 100644 --- a/gems/citrus-toml-merge/lib/citrus/toml/merge/version.rb +++ b/gems/citrus-toml-merge/lib/citrus/toml/merge/version.rb @@ -4,7 +4,7 @@ module Citrus module Toml module Merge module Version - VERSION = "7.1.0" + VERSION = '7.1.0' end VERSION = Version::VERSION # Traditional Constant Location end diff --git a/gems/citrus-toml-merge/spec/spec_helper.rb b/gems/citrus-toml-merge/spec/spec_helper.rb index d3e8a85e1..e65766c08 100644 --- a/gems/citrus-toml-merge/spec/spec_helper.rb +++ b/gems/citrus-toml-merge/spec/spec_helper.rb @@ -7,16 +7,16 @@ # NOTE: Gemfiles for non-coverage appraisals may not have kettle-soup-cover. # The rescue LoadError handles that scenario. begin - require "kettle-soup-cover" + require 'kettle-soup-cover' if Kettle::Soup::Cover::DO_COV # Requiring simplecov loads the project-local `.simplecov`. - require "simplecov" - require "kettle/soup/cover/config" + require 'simplecov' + require 'kettle/soup/cover/config' SimpleCov.start end -rescue LoadError => error +rescue LoadError => e # check the error message and re-raise when unexpected - raise error unless error.message.include?("kettle") + raise e unless e.message.include?('kettle') end # External RSpec & related config diff --git a/gems/kramdown-merge/Gemfile.lock b/gems/kramdown-merge/Gemfile.lock index 1bbf8ab23..80d936bdf 100644 --- a/gems/kramdown-merge/Gemfile.lock +++ b/gems/kramdown-merge/Gemfile.lock @@ -6,6 +6,266 @@ PATH markdown-merge (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly + specs: + ast-crispr-markdown-markly (7.1.0) + ast-crispr (= 7.1.0) + markly-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism + specs: + ast-crispr-ruby-prism (7.1.0) + ast-crispr (= 7.1.0) + prism-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr + specs: + ast-crispr (7.1.0) + ast-merge (= 7.1.0) + service_actor (~> 3.9) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git + specs: + ast-merge-git (7.1.0) + ast-merge (= 7.1.0) + json-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge + specs: + ast-merge (7.1.0) + benchmark + token-resolver (~> 2.0, >= 2.0.4) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template + specs: + ast-template (7.1.0) + ast-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge + specs: + bash-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge + specs: + binary-merge (7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge + specs: + citrus-toml-merge (7.1.0) + toml-merge (= 7.1.0) + toml-rb (~> 4.1) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge + specs: + commonmarker-merge (7.1.0) + commonmarker (~> 2.2) + markdown-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge + specs: + dotenv-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge + specs: + go-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge + specs: + json-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem + specs: + kettle-jem (7.1.0) + addressable (>= 2.8, < 3) + ast-crispr-markdown-markly (= 7.1.0) + ast-crispr-ruby-prism (= 7.1.0) + ast-merge (= 7.1.0) + bash-merge (= 7.1.0) + citrus-toml-merge (= 7.1.0) + commonmarker-merge (= 7.1.0) + dotenv-merge (= 7.1.0) + json-merge (= 7.1.0) + kettle-dev (~> 2.3, >= 2.3.5) + kettle-rb (~> 0.1, >= 0.1.4) + kramdown-merge (= 7.1.0) + markdown-merge (= 7.1.0) + markly-merge (= 7.1.0) + prism-merge (= 7.1.0) + psych-merge (= 7.1.0) + rbs (>= 3.10) + rbs-merge (= 7.1.0) + ruby-merge (= 7.1.0) + token-resolver (~> 2.0, >= 2.0.4) + toml-merge (= 7.1.0) + toml-rb (~> 4.2) + tree_haver (= 7.1.0) + yaml-merge (= 7.1.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge + specs: + markdown-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge + specs: + markly-merge (7.1.0) + markdown-merge (= 7.1.0) + markly (~> 0.9) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge + specs: + parslet-toml-merge (7.1.0) + toml (~> 0.3) + toml-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge + specs: + plain-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge + specs: + prism-merge (7.1.0) + prism (~> 1.6) + ruby-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge + specs: + psych-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + yaml-merge (= 7.1.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge + specs: + rbs-merge (7.1.0) + ast-merge (= 7.1.0) + rbs (>= 3.10) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge + specs: + ruby-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge + specs: + rust-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb + specs: + smorg-rb (7.1.0) + ast-merge (= 7.1.0) + ast-merge-git (= 7.1.0) + diff-lcs (~> 1.5) + go-merge (= 7.1.0) + json-merge (= 7.1.0) + kettle-jem (= 7.1.0) + markly-merge (= 7.1.0) + plain-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge + specs: + toml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver + specs: + tree_haver (7.1.0) + citrus (~> 3.0) + parslet (~> 2.0) + tree_sitter_language_pack (>= 1.13.2, < 2.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge + specs: + typescript-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge + specs: + yaml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge + specs: + zip-merge (7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + GEM remote: https://gem.coop/ specs: @@ -21,11 +281,6 @@ GEM rubocop (>= 1.0) version_gem (~> 1.1, >= 1.1.14) ast (2.4.3) - ast-merge (7.1.0) - benchmark - token-resolver (~> 2.0, >= 2.0.4) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) backports (3.25.3) benchmark (0.5.0) bigdecimal (4.1.2) @@ -35,6 +290,7 @@ GEM cgi (0.5.2) citrus (3.0.2) cmdparse (3.0.7) + commonmarker (2.9.0-x86_64-linux) concurrent-ruby (1.3.8) date (3.5.1) debug (1.11.1) @@ -97,6 +353,8 @@ GEM kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) + kettle-drift (1.0.6) + version_gem (~> 1.1, >= 1.1.14) kettle-rb (0.1.5) kettle-soup-cover (3.0.4) kettle-wash (~> 0.1, >= 0.1.0) @@ -125,10 +383,7 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) - markdown-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) + markly (0.16.0) mutex_m (0.3.0) nokogiri (1.19.4-x86_64-linux-gnu) racc (~> 1.4) @@ -283,6 +538,8 @@ GEM ruby-progressbar (1.13.0) ruby_engine (2.0.3) ruby_version (1.0.3) + service_actor (3.9.4) + zeitwerk (>= 1.0) silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) @@ -337,11 +594,11 @@ GEM token-resolver (2.0.5) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.14) - tree_haver (7.1.0) - citrus (~> 3.0) - parslet (~> 2.0) - tree_sitter_language_pack (>= 1.13.2, < 2.0) - version_gem (~> 1.1, >= 1.1.9) + toml (0.3.0) + parslet (>= 1.8.0, < 3.0.0) + toml-rb (4.2.0) + citrus (~> 3.0, > 3.0) + racc (~> 1.7) tree_sitter_language_pack (1.13.3-x86_64-linux) sorbet-runtime (~> 0.5) tsort (0.2.0) @@ -387,23 +644,45 @@ DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) appraisal2-rubocop (~> 1.0, >= 1.0.0) + ast-crispr! + ast-crispr-markdown-markly! + ast-crispr-ruby-prism! + ast-merge! + ast-merge-git! + ast-template! + bash-merge! benchmark (~> 0.5, >= 0.5.0) + binary-merge! bundler-audit (~> 0.9.3) cgi (~> 0.5) + citrus-toml-merge! + commonmarker-merge! debug (>= 1.1) + dotenv-merge! erb (~> 6.0, >= 6.0.6) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.0) + go-merge! irb (~> 1.17) + json-merge! kettle-dev (~> 2.0, >= 2.2.25) + kettle-drift (~> 1.0, >= 1.0.6) + kettle-jem! kettle-soup-cover (~> 3.0, >= 3.0.3) kettle-test (~> 2.0, >= 2.0.9) kramdown-merge! kramdown-parser-gfm (~> 1.1) + markdown-merge! + markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) + parslet-toml-merge! + plain-merge! + prism-merge! + psych-merge! rake (~> 13.0) rbs (>= 3.0) + rbs-merge! rdoc (~> 6.11) reek (~> 6.5, >= 6.5.0) require_bench (~> 1.0, >= 1.0.4) @@ -414,19 +693,27 @@ DEPENDENCIES rubocop-on-rbs (~> 2.0, >= 2.0.0) rubocop-packaging (~> 0.6, >= 0.6.0) rubocop-ruby3_2 (~> 3.0, >= 3.0.6) + ruby-merge! ruby-progressbar (~> 1.13) + rust-merge! + smorg-rb! standard (~> 1.56, >= 1.56.0) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) + toml-merge! + tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) + typescript-merge! webrick (~> 1.9) yaml-converter (~> 0.2, >= 0.2.3) + yaml-merge! yard (~> 0.9, >= 0.9.45) yard-fence (~> 0.9, >= 0.9.6) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) yard-timekeeper (~> 0.2, >= 0.2.4) yard-yaml (~> 0.2, >= 0.2.3) + zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af @@ -434,20 +721,31 @@ CHECKSUMS appraisal2 (3.2.0) sha256=ccd0b767ac4060cd7af6d16747459b6990f49c39c7b4fb1f7d1146b1e97c492f appraisal2-rubocop (1.0.0) sha256=b71410fbb014befda5340605a605b7f6f3f012739baf0acc5b4351b592c3258d ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 + ast-crispr (7.1.0) + ast-crispr-markdown-markly (7.1.0) + ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) + ast-merge-git (7.1.0) + ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 + bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd + binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 + citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 + commonmarker (2.9.0-x86_64-linux) sha256=8cfe92970eef585a19ddf6613224b91cab64d6029834661bda801f877c9c7f43 + commonmarker-merge (7.1.0) concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 + dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -460,11 +758,15 @@ CHECKSUMS gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f + go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 + json-merge (7.1.0) kettle-dev (2.3.8) sha256=9d716ff21c660a730cb4e8d41e2e2f0630a28167a354b6e2924e242102aef72c + kettle-drift (1.0.6) sha256=46eda08fa4411d1f3c6682a95eef1c9df4e94611b3949f49d4c7b43c0ed356a3 + kettle-jem (7.1.0) kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f kettle-soup-cover (3.0.4) kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 @@ -476,6 +778,8 @@ CHECKSUMS lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 markdown-merge (7.1.0) + markly (0.16.0) sha256=6f70d79e385b1efc9e171f74c81628826259039fe6c778e03c3924c71dac5511 + markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-x86_64-linux-gnu) sha256=379fae440b28915e3f19d752ce2dcf8465ed2b2fbefd2a7ca0dd497bc981a06a nomono (1.0.9) @@ -485,15 +789,20 @@ CHECKSUMS parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 + parslet-toml-merge (7.1.0) + plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 + prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 + psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 + rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb @@ -528,15 +837,19 @@ CHECKSUMS rubocop-rspec_rails (2.32.0) sha256=4a0d641c72f6ebb957534f539d9d0a62c47abd8ce0d0aeee1ef4701e892a9100 rubocop-ruby3_2 (3.0.7) sha256=f53dd6d286fb05186214fc6ec116783e7f837030918e8931c05de773e98f8466 rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 + ruby-merge (7.1.0) ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 + rust-merge (7.1.0) + service_actor (3.9.4) sha256=e63b523630b9a7e62959b2a90113b08d2565b5de9c148557b281ef847c9539ce silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed + smorg-rb (7.1.0) sorbet-runtime (0.6.13347) sha256=54e7221d9f4b63f58aec79f3043752a9ba7810347c6ae0d903531591cc2d5f01 standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b @@ -551,15 +864,20 @@ CHECKSUMS timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.5) sha256=b852f924287ffb58a440856e862b056c8ad97e74b4b2526cee43e0771f40c25c + toml (0.3.0) sha256=0a91d0f76a9036e84e44f95693b12f58d358c1df3ac8e3b5271f2056ecc6e4b9 + toml-merge (7.1.0) + toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 + typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 webrick (1.9.2) sha256=beb4a15fc474defed24a3bda4ffd88a490d517c9e4e6118c3edce59e45864131 yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 + yaml-merge (7.1.0) yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd @@ -567,6 +885,7 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 + zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH diff --git a/gems/parslet-toml-merge/.simplecov b/gems/parslet-toml-merge/.simplecov index 8453528ac..9b832be32 100644 --- a/gems/parslet-toml-merge/.simplecov +++ b/gems/parslet-toml-merge/.simplecov @@ -4,15 +4,11 @@ # parslet-toml-merge will then preserve content between those markers across template runs. # kettle-jem:unfreeze -require 'kettle/soup/cover/config' - # Minimum coverage thresholds are set by kettle-soup-cover. # They are controlled by ENV variables loaded by `mise` from `mise.toml` # (with optional machine-local overrides in `.env.local`). # If the values for minimum coverage need to change, they should be changed both there, # and in 2 places in .github/workflows/coverage.yml. -SimpleCov.start do - track_files 'lib/**/*.rb' - track_files 'lib/**/*.rake' - track_files 'exe/*.rb' +SimpleCov.configure do + cover "lib/**/*.rb", "lib/**/*.rake", "exe/*.rb" end diff --git a/gems/parslet-toml-merge/Gemfile.lock b/gems/parslet-toml-merge/Gemfile.lock index d62f0b6a7..bc9a9f48a 100644 --- a/gems/parslet-toml-merge/Gemfile.lock +++ b/gems/parslet-toml-merge/Gemfile.lock @@ -266,6 +266,23 @@ PATH tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) +PATH + remote: /var/home/pboling/src/my/kettle-dev/kettle-drift + specs: + kettle-drift (1.0.6) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /var/home/pboling/src/my/kettle-dev/kettle-soup-cover + specs: + kettle-soup-cover (3.0.4) + kettle-wash (~> 0.1, >= 0.1.0) + simplecov (>= 1.0) + simplecov-cobertura (>= 4.0) + simplecov-console (~> 0.9, >= 0.9.5) + simplecov-rcov (~> 0.3, >= 0.3.7) + simplecov_lcov_formatter (~> 0.9, >= 0.9.0) + GEM remote: https://gem.coop/ specs: @@ -353,16 +370,7 @@ GEM kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) - kettle-drift (1.0.6) - version_gem (~> 1.1, >= 1.1.14) kettle-rb (0.1.5) - kettle-soup-cover (3.0.4) - kettle-wash (~> 0.1, >= 0.1.0) - simplecov (>= 1.0) - simplecov-cobertura (>= 4.0) - simplecov-console (~> 0.9, >= 0.9.5) - simplecov-rcov (~> 0.3, >= 0.3.7) - simplecov_lcov_formatter (~> 0.9, >= 0.9.0) kettle-test (2.0.12) appraisal2 (~> 3.0, >= 3.0.6) backports (~> 3.0) @@ -666,9 +674,9 @@ DEPENDENCIES irb (~> 1.17) json-merge! kettle-dev (~> 2.0, >= 2.2.25) - kettle-drift (~> 1.0, >= 1.0.6) + kettle-drift! kettle-jem! - kettle-soup-cover (~> 3.0, >= 3.0.3) + kettle-soup-cover! kettle-test (~> 2.0, >= 2.0.9) kramdown (~> 2.5, >= 2.5.2) kramdown-merge! @@ -738,7 +746,7 @@ CHECKSUMS citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 - commonmarker (2.9.0-x86_64-linux) + commonmarker (2.9.0-x86_64-linux) sha256=8cfe92970eef585a19ddf6613224b91cab64d6029834661bda801f877c9c7f43 commonmarker-merge (7.1.0) concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 @@ -779,7 +787,7 @@ CHECKSUMS lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 markdown-merge (7.1.0) - markly (0.16.0) + markly (0.16.0) sha256=6f70d79e385b1efc9e171f74c81628826259039fe6c778e03c3924c71dac5511 markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-x86_64-linux-gnu) sha256=379fae440b28915e3f19d752ce2dcf8465ed2b2fbefd2a7ca0dd497bc981a06a @@ -843,7 +851,7 @@ CHECKSUMS ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 rust-merge (7.1.0) - service_actor (3.9.4) + service_actor (3.9.4) sha256=e63b523630b9a7e62959b2a90113b08d2565b5de9c148557b281ef847c9539ce silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea @@ -867,7 +875,7 @@ CHECKSUMS token-resolver (2.0.5) sha256=b852f924287ffb58a440856e862b056c8ad97e74b4b2526cee43e0771f40c25c toml (0.3.0) sha256=0a91d0f76a9036e84e44f95693b12f58d358c1df3ac8e3b5271f2056ecc6e4b9 toml-merge (7.1.0) - toml-rb (4.2.0) + toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f diff --git a/gems/parslet-toml-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile b/gems/parslet-toml-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile index b8392fab0..dec650815 100644 --- a/gems/parslet-toml-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile +++ b/gems/parslet-toml-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.1 -gem 'benchmark', '~> 0.5', '>= 0.5.0' # Removed from Std Lib in Ruby 4.0 +gem "benchmark", "~> 0.5", ">= 0.5.0" # Removed from Std Lib in Ruby 4.0 diff --git a/gems/parslet-toml-merge/gemfiles/modular/benchmark/vHEAD.gemfile b/gems/parslet-toml-merge/gemfiles/modular/benchmark/vHEAD.gemfile index af214aafa..e1eb20c5e 100644 --- a/gems/parslet-toml-merge/gemfiles/modular/benchmark/vHEAD.gemfile +++ b/gems/parslet-toml-merge/gemfiles/modular/benchmark/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.1 -gem 'benchmark', github: 'ruby/benchmark', branch: 'master' +gem "benchmark", github: "ruby/benchmark", branch: "master" diff --git a/gems/parslet-toml-merge/gemfiles/modular/cgi/r4/v0.5.gemfile b/gems/parslet-toml-merge/gemfiles/modular/cgi/r4/v0.5.gemfile index 17ad97260..19ed967c3 100644 --- a/gems/parslet-toml-merge/gemfiles/modular/cgi/r4/v0.5.gemfile +++ b/gems/parslet-toml-merge/gemfiles/modular/cgi/r4/v0.5.gemfile @@ -1 +1 @@ -gem 'cgi', '~> 0.5' +gem "cgi", "~> 0.5" diff --git a/gems/parslet-toml-merge/gemfiles/modular/cgi/vHEAD.gemfile b/gems/parslet-toml-merge/gemfiles/modular/cgi/vHEAD.gemfile index 650fbf033..ef8b816ce 100644 --- a/gems/parslet-toml-merge/gemfiles/modular/cgi/vHEAD.gemfile +++ b/gems/parslet-toml-merge/gemfiles/modular/cgi/vHEAD.gemfile @@ -1 +1 @@ -gem 'cgi', '>= 0.5' +gem "cgi", ">= 0.5" diff --git a/gems/parslet-toml-merge/gemfiles/modular/coverage.gemfile b/gems/parslet-toml-merge/gemfiles/modular/coverage.gemfile index b93014b6b..52d737872 100644 --- a/gems/parslet-toml-merge/gemfiles/modular/coverage.gemfile +++ b/gems/parslet-toml-merge/gemfiles/modular/coverage.gemfile @@ -4,11 +4,11 @@ # Set KETTLE_DEV_DEV=true for local development with path-based dependencies. # When false (default / CI), remote released gems are used. -if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? +if ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false").zero? # Coverage (remote/released) platform :mri do - gem 'kettle-soup-cover', '~> 3.0', '>= 3.0.3', require: false + gem "kettle-soup-cover", "~> 3.0", ">= 3.0.3", require: false end else - eval_gemfile 'coverage_local.gemfile' + eval_gemfile "coverage_local.gemfile" end diff --git a/gems/parslet-toml-merge/gemfiles/modular/coverage_local.gemfile b/gems/parslet-toml-merge/gemfiles/modular/coverage_local.gemfile index 86d310542..daef79393 100644 --- a/gems/parslet-toml-merge/gemfiles/modular/coverage_local.gemfile +++ b/gems/parslet-toml-merge/gemfiles/modular/coverage_local.gemfile @@ -11,19 +11,21 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] -nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) +nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] +nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == "nomono" } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + if nomono_locked + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] + end end -Kernel.send(:gem, 'nomono', *nomono_activation_requirements) -require 'nomono/bundler' +Kernel.send(:gem, "nomono", *nomono_activation_requirements) +require "nomono/bundler" local_gems = %w[kettle-dev kettle-test kettle-soup-cover kettle-drift] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) @@ -33,21 +35,21 @@ local_gems_to_eval = local_gems - %w[parslet-toml-merge] - declared_gems platform :mri do eval_nomono_gems( gems: local_gems_to_eval, - prefix: 'KETTLE_DEV', - path_env: 'KETTLE_DEV_DEV', - vendored_gems_env: 'VENDORED_GEMS', - vendor_gem_dir_env: 'VENDOR_GEM_DIR', - debug_env: 'KETTLE_DEV_DEBUG' + prefix: "KETTLE_DEV", + path_env: "KETTLE_DEV_DEV", + vendored_gems_env: "VENDORED_GEMS", + vendor_gem_dir_env: "VENDOR_GEM_DIR", + debug_env: "KETTLE_DEV_DEBUG" ) - if ENV.fetch('GALTZO_FLOSS_DEV', 'false').casecmp('false') != 0 + if ENV.fetch("GALTZO_FLOSS_DEV", "false").casecmp("false") != 0 eval_nomono_gems( gems: %w[turbo_tests2], - prefix: 'GALTZO_FLOSS', - path_env: 'GALTZO_FLOSS_DEV', - vendored_gems_env: 'GALTZO_FLOSS_VENDORED_GEMS', - vendor_gem_dir_env: 'GALTZO_FLOSS_VENDOR_GEM_DIR', - debug_env: 'GALTZO_FLOSS_DEBUG' + prefix: "GALTZO_FLOSS", + path_env: "GALTZO_FLOSS_DEV", + vendored_gems_env: "GALTZO_FLOSS_VENDORED_GEMS", + vendor_gem_dir_env: "GALTZO_FLOSS_VENDOR_GEM_DIR", + debug_env: "GALTZO_FLOSS_DEBUG" ) end end diff --git a/gems/parslet-toml-merge/gemfiles/modular/debug.gemfile b/gems/parslet-toml-merge/gemfiles/modular/debug.gemfile index eed8d4d1e..4e15b1a3a 100644 --- a/gems/parslet-toml-merge/gemfiles/modular/debug.gemfile +++ b/gems/parslet-toml-merge/gemfiles/modular/debug.gemfile @@ -13,10 +13,10 @@ platform :mri do # Debugging - Ensure ENV["DEBUG"] == "true" to use debuggers within spec suite # Use binding.break, binding.b, or debugger in code - gem 'debug', '>= 1.1' # ruby >= 2.7 + gem "debug", ">= 1.1" # ruby >= 2.7 # Dev Console - Binding.pry - Irb replacement # gem "pry", "~> 0.14" # ruby >= 2.0 end -gem 'gem_bench', '~> 2.0', '>= 2.0.5' +gem "gem_bench", "~> 2.0", ">= 2.0.5" diff --git a/gems/parslet-toml-merge/gemfiles/modular/documentation.gemfile b/gems/parslet-toml-merge/gemfiles/modular/documentation.gemfile index 9d4535f12..d8215416e 100644 --- a/gems/parslet-toml-merge/gemfiles/modular/documentation.gemfile +++ b/gems/parslet-toml-merge/gemfiles/modular/documentation.gemfile @@ -7,20 +7,20 @@ # # Documentation -gem 'kramdown', '~> 2.5', '>= 2.5.2', require: false # Ruby >= 2.5 -gem 'kramdown-parser-gfm', '~> 1.1', require: false # Ruby >= 2.3 -gem 'yaml-converter', '~> 0.2', '>= 0.2.3', require: false # Ruby >= 3.2 -gem 'yard', '~> 0.9', '>= 0.9.45', require: false -gem 'yard-junk', '~> 0.1', '>= 0.1.0', require: false # Ruby >= 3.1 -gem 'yard-relative_markdown_links', '~> 0.6', require: false +gem "kramdown", "~> 2.5", ">= 2.5.2", require: false # Ruby >= 2.5 +gem "kramdown-parser-gfm", "~> 1.1", require: false # Ruby >= 2.3 +gem "yaml-converter", "~> 0.2", ">= 0.2.3", require: false # Ruby >= 3.2 +gem "yard", "~> 0.9", ">= 0.9.45", require: false +gem "yard-junk", "~> 0.1", ">= 0.1.0", require: false # Ruby >= 3.1 +gem "yard-relative_markdown_links", "~> 0.6", require: false -if ENV.fetch('GALTZO_FLOSS_DEV', 'false').casecmp('false').zero? - gem 'yard-fence', '~> 0.9', '>= 0.9.6', require: false # Ruby >= 3.2 - gem 'yard-timekeeper', '~> 0.2', '>= 0.2.4', require: false - gem 'yard-yaml', '~> 0.2', '>= 0.2.3', require: false +if ENV.fetch("GALTZO_FLOSS_DEV", "false").casecmp("false").zero? + gem "yard-fence", "~> 0.9", ">= 0.9.6", require: false # Ruby >= 3.2 + gem "yard-timekeeper", "~> 0.2", ">= 0.2.4", require: false + gem "yard-yaml", "~> 0.2", ">= 0.2.3", require: false else - eval_gemfile 'documentation_local.gemfile' + eval_gemfile "documentation_local.gemfile" end # Std Lib extractions -gem 'rdoc', '~> 6.11', require: false unless ENV.fetch('KJ_FRAMEWORK_MATRIX_GEM', '') == 'rdoc' +gem "rdoc", "~> 6.11", require: false unless ENV.fetch("KJ_FRAMEWORK_MATRIX_GEM", "") == "rdoc" diff --git a/gems/parslet-toml-merge/gemfiles/modular/documentation_local.gemfile b/gems/parslet-toml-merge/gemfiles/modular/documentation_local.gemfile index 62ccb64cd..642d051d7 100644 --- a/gems/parslet-toml-merge/gemfiles/modular/documentation_local.gemfile +++ b/gems/parslet-toml-merge/gemfiles/modular/documentation_local.gemfile @@ -11,19 +11,21 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] -nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) +nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] +nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == "nomono" } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + if nomono_locked + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] + end end -Kernel.send(:gem, 'nomono', *nomono_activation_requirements) -require 'nomono/bundler' +Kernel.send(:gem, "nomono", *nomono_activation_requirements) +require "nomono/bundler" local_gems = %w[yard-fence yard-timekeeper yard-yaml] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) @@ -32,9 +34,9 @@ local_gems_to_eval = local_gems - %w[parslet-toml-merge] - declared_gems # export GALTZO_FLOSS_DEV=/path/to/galtzo-floss eval_nomono_gems( gems: local_gems_to_eval, - prefix: 'GALTZO_FLOSS', - path_env: 'GALTZO_FLOSS_DEV', - vendored_gems_env: 'GALTZO_FLOSS_VENDORED_GEMS', - vendor_gem_dir_env: 'GALTZO_FLOSS_VENDOR_GEM_DIR', - debug_env: 'GALTZO_FLOSS_DEBUG' + prefix: "GALTZO_FLOSS", + path_env: "GALTZO_FLOSS_DEV", + vendored_gems_env: "GALTZO_FLOSS_VENDORED_GEMS", + vendor_gem_dir_env: "GALTZO_FLOSS_VENDOR_GEM_DIR", + debug_env: "GALTZO_FLOSS_DEBUG" ) diff --git a/gems/parslet-toml-merge/gemfiles/modular/erb/r2/v3.0.gemfile b/gems/parslet-toml-merge/gemfiles/modular/erb/r2/v3.0.gemfile index 7c83a239b..c03bd8d85 100644 --- a/gems/parslet-toml-merge/gemfiles/modular/erb/r2/v3.0.gemfile +++ b/gems/parslet-toml-merge/gemfiles/modular/erb/r2/v3.0.gemfile @@ -1 +1 @@ -gem 'erb', '~> 3.0' # ruby >= 2.7.0 +gem "erb", "~> 3.0" # ruby >= 2.7.0 diff --git a/gems/parslet-toml-merge/gemfiles/modular/erb/r3/v5.0.gemfile b/gems/parslet-toml-merge/gemfiles/modular/erb/r3/v5.0.gemfile index ec7ff451f..1bd029cc1 100644 --- a/gems/parslet-toml-merge/gemfiles/modular/erb/r3/v5.0.gemfile +++ b/gems/parslet-toml-merge/gemfiles/modular/erb/r3/v5.0.gemfile @@ -1 +1 @@ -gem 'erb', '~> 6.0', '>= 6.0.6' # ruby >= 3.2.0 +gem "erb", "~> 6.0", ">= 6.0.6" # ruby >= 3.2.0 diff --git a/gems/parslet-toml-merge/gemfiles/modular/erb/r4/v5.0.gemfile b/gems/parslet-toml-merge/gemfiles/modular/erb/r4/v5.0.gemfile index ec7ff451f..1bd029cc1 100644 --- a/gems/parslet-toml-merge/gemfiles/modular/erb/r4/v5.0.gemfile +++ b/gems/parslet-toml-merge/gemfiles/modular/erb/r4/v5.0.gemfile @@ -1 +1 @@ -gem 'erb', '~> 6.0', '>= 6.0.6' # ruby >= 3.2.0 +gem "erb", "~> 6.0", ">= 6.0.6" # ruby >= 3.2.0 diff --git a/gems/parslet-toml-merge/gemfiles/modular/erb/vHEAD.gemfile b/gems/parslet-toml-merge/gemfiles/modular/erb/vHEAD.gemfile index ea0101185..48fee4218 100644 --- a/gems/parslet-toml-merge/gemfiles/modular/erb/vHEAD.gemfile +++ b/gems/parslet-toml-merge/gemfiles/modular/erb/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 3.2 -gem 'erb', github: 'ruby/erb', branch: 'master' +gem "erb", github: "ruby/erb", branch: "master" diff --git a/gems/parslet-toml-merge/gemfiles/modular/json/truffleruby_22_3.gemfile b/gems/parslet-toml-merge/gemfiles/modular/json/truffleruby_22_3.gemfile index 9b2f8d96a..b0e69ab11 100644 --- a/gems/parslet-toml-merge/gemfiles/modular/json/truffleruby_22_3.gemfile +++ b/gems/parslet-toml-merge/gemfiles/modular/json/truffleruby_22_3.gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -if RUBY_ENGINE == 'truffleruby' && RUBY_ENGINE_VERSION.start_with?('22.3') +if RUBY_ENGINE == "truffleruby" && RUBY_ENGINE_VERSION.start_with?("22.3") # TruffleRuby 22.3 ships the json default gem from its emulated MRI Ruby. - gem 'json', '= 2.5.1' + gem "json", "= 2.5.1" end diff --git a/gems/parslet-toml-merge/gemfiles/modular/json/truffleruby_23_0.gemfile b/gems/parslet-toml-merge/gemfiles/modular/json/truffleruby_23_0.gemfile index d787a5ef4..7b2660a2b 100644 --- a/gems/parslet-toml-merge/gemfiles/modular/json/truffleruby_23_0.gemfile +++ b/gems/parslet-toml-merge/gemfiles/modular/json/truffleruby_23_0.gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -if RUBY_ENGINE == 'truffleruby' && RUBY_ENGINE_VERSION.start_with?('23.0') +if RUBY_ENGINE == "truffleruby" && RUBY_ENGINE_VERSION.start_with?("23.0") # TruffleRuby 23.0 ships the json default gem from its emulated MRI Ruby. - gem 'json', '= 2.6.1' + gem "json", "= 2.6.1" end diff --git a/gems/parslet-toml-merge/gemfiles/modular/json/truffleruby_23_1.gemfile b/gems/parslet-toml-merge/gemfiles/modular/json/truffleruby_23_1.gemfile index d78486b0e..dfa21f2e4 100644 --- a/gems/parslet-toml-merge/gemfiles/modular/json/truffleruby_23_1.gemfile +++ b/gems/parslet-toml-merge/gemfiles/modular/json/truffleruby_23_1.gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -if RUBY_ENGINE == 'truffleruby' && RUBY_ENGINE_VERSION.start_with?('23.1') +if RUBY_ENGINE == "truffleruby" && RUBY_ENGINE_VERSION.start_with?("23.1") # TruffleRuby 23.1 ships the json default gem from its emulated MRI Ruby. - gem 'json', '= 2.6.3' + gem "json", "= 2.6.3" end diff --git a/gems/parslet-toml-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile b/gems/parslet-toml-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile index e27f1bbae..42e9d9bd4 100644 --- a/gems/parslet-toml-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile +++ b/gems/parslet-toml-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 -gem 'mutex_m', '~> 0.2' +gem "mutex_m", "~> 0.2" diff --git a/gems/parslet-toml-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile b/gems/parslet-toml-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile index e27f1bbae..42e9d9bd4 100644 --- a/gems/parslet-toml-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile +++ b/gems/parslet-toml-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 -gem 'mutex_m', '~> 0.2' +gem "mutex_m", "~> 0.2" diff --git a/gems/parslet-toml-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile b/gems/parslet-toml-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile index e27f1bbae..42e9d9bd4 100644 --- a/gems/parslet-toml-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile +++ b/gems/parslet-toml-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 -gem 'mutex_m', '~> 0.2' +gem "mutex_m", "~> 0.2" diff --git a/gems/parslet-toml-merge/gemfiles/modular/mutex_m/vHEAD.gemfile b/gems/parslet-toml-merge/gemfiles/modular/mutex_m/vHEAD.gemfile index 9dac2f6cb..8af3b6fca 100644 --- a/gems/parslet-toml-merge/gemfiles/modular/mutex_m/vHEAD.gemfile +++ b/gems/parslet-toml-merge/gemfiles/modular/mutex_m/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 (dependency of omniauth) -gem 'mutex_m', github: 'ruby/mutex_m', branch: 'master' +gem "mutex_m", github: "ruby/mutex_m", branch: "master" diff --git a/gems/parslet-toml-merge/gemfiles/modular/optional.gemfile b/gems/parslet-toml-merge/gemfiles/modular/optional.gemfile index 9ea429538..80bc45196 100644 --- a/gems/parslet-toml-merge/gemfiles/modular/optional.gemfile +++ b/gems/parslet-toml-merge/gemfiles/modular/optional.gemfile @@ -9,8 +9,8 @@ # Optional dependencies are not depended on directly, but may be used if present. # Required for curated binstubs generated by kettle-jem install -gem 'rbs', '>= 3.0', require: false # ruby >= 3.1 +gem "rbs", ">= 3.0", require: false # ruby >= 3.1 # Required for kettle-pre-release # URL parsing with Unicode support (falls back to URI if not available) -gem 'addressable', '>= 2.8', '< 3' # ruby >= 2.2 +gem "addressable", ">= 2.8", "< 3" # ruby >= 2.2 diff --git a/gems/parslet-toml-merge/gemfiles/modular/rspec.gemfile b/gems/parslet-toml-merge/gemfiles/modular/rspec.gemfile index 2af210a41..72fdf8b7f 100644 --- a/gems/parslet-toml-merge/gemfiles/modular/rspec.gemfile +++ b/gems/parslet-toml-merge/gemfiles/modular/rspec.gemfile @@ -1,4 +1,4 @@ -gem 'rspec_junit_formatter', - github: 'pboling/rspec_junit_formatter', - branch: 'main', - ref: '9e6bcaaedd49477b62878ed568dc4ada5cc7cb5e' +gem "rspec_junit_formatter", + github: "pboling/rspec_junit_formatter", + branch: "main", + ref: "9e6bcaaedd49477b62878ed568dc4ada5cc7cb5e" diff --git a/gems/parslet-toml-merge/gemfiles/modular/runtime_heads.gemfile b/gems/parslet-toml-merge/gemfiles/modular/runtime_heads.gemfile index ebf17c529..02f134c7f 100644 --- a/gems/parslet-toml-merge/gemfiles/modular/runtime_heads.gemfile +++ b/gems/parslet-toml-merge/gemfiles/modular/runtime_heads.gemfile @@ -8,4 +8,4 @@ # Test against HEAD of runtime dependencies so we can proactively file bugs -eval_gemfile('x_std_libs/vHEAD.gemfile') +eval_gemfile("x_std_libs/vHEAD.gemfile") diff --git a/gems/parslet-toml-merge/gemfiles/modular/stringio/r2/v3.0.gemfile b/gems/parslet-toml-merge/gemfiles/modular/stringio/r2/v3.0.gemfile index 3616f4e3a..e85bb18ee 100644 --- a/gems/parslet-toml-merge/gemfiles/modular/stringio/r2/v3.0.gemfile +++ b/gems/parslet-toml-merge/gemfiles/modular/stringio/r2/v3.0.gemfile @@ -2,4 +2,4 @@ # NOT SEMVER # Version 3.0.7 dropped support for Ruby <= 2.7 # Version 3.0.0 dropped support for Ruby <= 2.4 -gem 'stringio', '>= 3.0' +gem "stringio", ">= 3.0" diff --git a/gems/parslet-toml-merge/gemfiles/modular/stringio/r3/v3.0.gemfile b/gems/parslet-toml-merge/gemfiles/modular/stringio/r3/v3.0.gemfile index 3616f4e3a..e85bb18ee 100644 --- a/gems/parslet-toml-merge/gemfiles/modular/stringio/r3/v3.0.gemfile +++ b/gems/parslet-toml-merge/gemfiles/modular/stringio/r3/v3.0.gemfile @@ -2,4 +2,4 @@ # NOT SEMVER # Version 3.0.7 dropped support for Ruby <= 2.7 # Version 3.0.0 dropped support for Ruby <= 2.4 -gem 'stringio', '>= 3.0' +gem "stringio", ">= 3.0" diff --git a/gems/parslet-toml-merge/gemfiles/modular/stringio/r4/v3.0.gemfile b/gems/parslet-toml-merge/gemfiles/modular/stringio/r4/v3.0.gemfile index 3616f4e3a..e85bb18ee 100644 --- a/gems/parslet-toml-merge/gemfiles/modular/stringio/r4/v3.0.gemfile +++ b/gems/parslet-toml-merge/gemfiles/modular/stringio/r4/v3.0.gemfile @@ -2,4 +2,4 @@ # NOT SEMVER # Version 3.0.7 dropped support for Ruby <= 2.7 # Version 3.0.0 dropped support for Ruby <= 2.4 -gem 'stringio', '>= 3.0' +gem "stringio", ">= 3.0" diff --git a/gems/parslet-toml-merge/gemfiles/modular/stringio/vHEAD.gemfile b/gems/parslet-toml-merge/gemfiles/modular/stringio/vHEAD.gemfile index 78f5f5d8a..5f2a74126 100644 --- a/gems/parslet-toml-merge/gemfiles/modular/stringio/vHEAD.gemfile +++ b/gems/parslet-toml-merge/gemfiles/modular/stringio/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 (dependency of omniauth) -gem 'stringio', github: 'ruby/stringio', branch: 'master' +gem "stringio", github: "ruby/stringio", branch: "master" diff --git a/gems/parslet-toml-merge/gemfiles/modular/style.gemfile b/gems/parslet-toml-merge/gemfiles/modular/style.gemfile index 4dbcc02c0..35de4dcd6 100644 --- a/gems/parslet-toml-merge/gemfiles/modular/style.gemfile +++ b/gems/parslet-toml-merge/gemfiles/modular/style.gemfile @@ -9,23 +9,23 @@ # Style tasks run on the latest Ruby; RuboCop-LTS selects the compatibility # rules for the configured Ruby floor independently from task dependency floors. -gem 'reek', '~> 6.5', '>= 6.5.0' +gem "reek", "~> 6.5", ">= 6.5.0" platform :mri do - gem 'appraisal2-rubocop', '~> 1.0', '>= 1.0.0', require: false - gem 'rubocop-gradual', '~> 0.4', '>= 0.4.0' - gem 'rubocop-minitest', '~> 0.40', '>= 0.40.0' - gem 'rubocop-on-rbs', '~> 2.0', '>= 2.0.0' # ruby >= 3.2.0 + gem "appraisal2-rubocop", "~> 1.0", ">= 1.0.0", require: false + gem "rubocop-gradual", "~> 0.4", ">= 0.4.0" + gem "rubocop-minitest", "~> 0.40", ">= 0.40.0" + gem "rubocop-on-rbs", "~> 2.0", ">= 2.0.0" # ruby >= 3.2.0 # gem "rubocop", "~> 1.73", ">= 1.73.2" # constrained by standard - gem 'rubocop-packaging', '~> 0.6', '>= 0.6.0' - gem 'standard', '~> 1.56', '>= 1.56.0' + gem "rubocop-packaging", "~> 0.6", ">= 0.6.0" + gem "standard", "~> 1.56", ">= 1.56.0" - if ENV.fetch('RUBOCOP_LTS_LOCAL', 'false').casecmp('false').zero? + if ENV.fetch("RUBOCOP_LTS_LOCAL", "false").casecmp("false").zero? declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) - gem 'rubocop-lts', '~> 24.2', '>= 24.2.1' unless declared_gems.include?('rubocop-lts') - gem 'rubocop-lts-rspec', '~> 1.0', '>= 1.0.5' unless declared_gems.include?('rubocop-lts-rspec') - gem 'rubocop-ruby3_2', '~> 3.0', '>= 3.0.6' unless declared_gems.include?('rubocop-ruby3_2') + gem "rubocop-lts", "~> 24.2", ">= 24.2.1" unless declared_gems.include?("rubocop-lts") + gem "rubocop-lts-rspec", "~> 1.0", ">= 1.0.5" unless declared_gems.include?("rubocop-lts-rspec") + gem "rubocop-ruby3_2", "~> 3.0", ">= 3.0.6" unless declared_gems.include?("rubocop-ruby3_2") else - eval_gemfile('style_local.gemfile') + eval_gemfile("style_local.gemfile") end end diff --git a/gems/parslet-toml-merge/gemfiles/modular/style_local.gemfile b/gems/parslet-toml-merge/gemfiles/modular/style_local.gemfile index 12fec3205..ce4769c69 100644 --- a/gems/parslet-toml-merge/gemfiles/modular/style_local.gemfile +++ b/gems/parslet-toml-merge/gemfiles/modular/style_local.gemfile @@ -14,19 +14,21 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] -nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) +nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] +nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == "nomono" } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + if nomono_locked + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] + end end -Kernel.send(:gem, 'nomono', *nomono_activation_requirements) -require 'nomono/bundler' +Kernel.send(:gem, "nomono", *nomono_activation_requirements) +require "nomono/bundler" local_gems = %w[rubocop-lts rubocop-lts-rspec rubocop-ruby3_2 standard-rubocop-lts] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) @@ -36,11 +38,11 @@ local_gems_to_eval = local_gems - %w[parslet-toml-merge] - declared_gems platform :mri do eval_nomono_gems( gems: local_gems_to_eval, - prefix: 'RUBOCOP_LTS', - path_env: 'RUBOCOP_LTS_LOCAL', - vendored_gems_env: 'VENDORED_GEMS', - vendor_gem_dir_env: 'VENDOR_GEM_DIR', - debug_env: 'RUBOCOP_LTS_DEBUG', - root: %w[src rubocop-lts] + prefix: "RUBOCOP_LTS", + path_env: "RUBOCOP_LTS_LOCAL", + vendored_gems_env: "VENDORED_GEMS", + vendor_gem_dir_env: "VENDOR_GEM_DIR", + debug_env: "RUBOCOP_LTS_DEBUG", + root: ["src", "rubocop-lts"] ) end diff --git a/gems/parslet-toml-merge/gemfiles/modular/webrick/r4/v1.9.gemfile b/gems/parslet-toml-merge/gemfiles/modular/webrick/r4/v1.9.gemfile index b1329ba84..eaab4a473 100644 --- a/gems/parslet-toml-merge/gemfiles/modular/webrick/r4/v1.9.gemfile +++ b/gems/parslet-toml-merge/gemfiles/modular/webrick/r4/v1.9.gemfile @@ -1 +1 @@ -gem 'webrick', '~> 1.9' +gem "webrick", "~> 1.9" diff --git a/gems/parslet-toml-merge/gemfiles/modular/webrick/vHEAD.gemfile b/gems/parslet-toml-merge/gemfiles/modular/webrick/vHEAD.gemfile index c7e6f81a1..8a789b634 100644 --- a/gems/parslet-toml-merge/gemfiles/modular/webrick/vHEAD.gemfile +++ b/gems/parslet-toml-merge/gemfiles/modular/webrick/vHEAD.gemfile @@ -1 +1 @@ -gem 'webrick', '>= 1.9' +gem "webrick", ">= 1.9" diff --git a/gems/parslet-toml-merge/gemfiles/modular/x_std_libs.gemfile b/gems/parslet-toml-merge/gemfiles/modular/x_std_libs.gemfile index b1f43c097..77aad43f2 100644 --- a/gems/parslet-toml-merge/gemfiles/modular/x_std_libs.gemfile +++ b/gems/parslet-toml-merge/gemfiles/modular/x_std_libs.gemfile @@ -1,12 +1,12 @@ ### Std Lib Extracted Gems ruby_version = Gem::Version.new(RUBY_VERSION) -if ruby_version >= Gem::Version.new('4.0') - eval_gemfile 'x_std_libs/r4/libs.gemfile' -elsif ruby_version >= Gem::Version.new('3.2') - eval_gemfile 'x_std_libs/r3/libs.gemfile' -elsif ruby_version >= Gem::Version.new('3.1') - eval_gemfile 'x_std_libs/r3.1/libs.gemfile' +if ruby_version >= Gem::Version.new("4.0") + eval_gemfile "x_std_libs/r4/libs.gemfile" +elsif ruby_version >= Gem::Version.new("3.2") + eval_gemfile "x_std_libs/r3/libs.gemfile" +elsif ruby_version >= Gem::Version.new("3.1") + eval_gemfile "x_std_libs/r3.1/libs.gemfile" else - eval_gemfile 'x_std_libs/r2/libs.gemfile' + eval_gemfile "x_std_libs/r2/libs.gemfile" end diff --git a/gems/parslet-toml-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile b/gems/parslet-toml-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile index 16a5e3d70..441c4f03a 100644 --- a/gems/parslet-toml-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile +++ b/gems/parslet-toml-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile @@ -1,3 +1,3 @@ -eval_gemfile '../../erb/r2/v3.0.gemfile' -eval_gemfile '../../mutex_m/r2/v0.3.gemfile' -eval_gemfile '../../stringio/r2/v3.0.gemfile' +eval_gemfile "../../erb/r2/v3.0.gemfile" +eval_gemfile "../../mutex_m/r2/v0.3.gemfile" +eval_gemfile "../../stringio/r2/v3.0.gemfile" diff --git a/gems/parslet-toml-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile b/gems/parslet-toml-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile index 220ff95c1..c293a3ddd 100644 --- a/gems/parslet-toml-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile +++ b/gems/parslet-toml-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile @@ -1,3 +1,3 @@ -eval_gemfile '../../erb/r3/v5.0.gemfile' -eval_gemfile '../../mutex_m/r3/v0.3.gemfile' -eval_gemfile '../../stringio/r3/v3.0.gemfile' +eval_gemfile "../../erb/r3/v5.0.gemfile" +eval_gemfile "../../mutex_m/r3/v0.3.gemfile" +eval_gemfile "../../stringio/r3/v3.0.gemfile" diff --git a/gems/parslet-toml-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile b/gems/parslet-toml-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile index e2f6501eb..eb5574247 100644 --- a/gems/parslet-toml-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile +++ b/gems/parslet-toml-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile @@ -1,6 +1,6 @@ -eval_gemfile '../../erb/r4/v5.0.gemfile' -eval_gemfile '../../mutex_m/r4/v0.3.gemfile' -eval_gemfile '../../stringio/r4/v3.0.gemfile' -eval_gemfile '../../benchmark/r4/v0.5.gemfile' -eval_gemfile '../../cgi/r4/v0.5.gemfile' -eval_gemfile '../../webrick/r4/v1.9.gemfile' +eval_gemfile "../../erb/r4/v5.0.gemfile" +eval_gemfile "../../mutex_m/r4/v0.3.gemfile" +eval_gemfile "../../stringio/r4/v3.0.gemfile" +eval_gemfile "../../benchmark/r4/v0.5.gemfile" +eval_gemfile "../../cgi/r4/v0.5.gemfile" +eval_gemfile "../../webrick/r4/v1.9.gemfile" diff --git a/gems/parslet-toml-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile b/gems/parslet-toml-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile index ab75cccf1..d4d5b16c9 100644 --- a/gems/parslet-toml-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile +++ b/gems/parslet-toml-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile @@ -1,6 +1,6 @@ -eval_gemfile '../erb/vHEAD.gemfile' -eval_gemfile '../mutex_m/vHEAD.gemfile' -eval_gemfile '../stringio/vHEAD.gemfile' -eval_gemfile '../benchmark/vHEAD.gemfile' -eval_gemfile '../cgi/vHEAD.gemfile' -eval_gemfile '../webrick/vHEAD.gemfile' +eval_gemfile "../erb/vHEAD.gemfile" +eval_gemfile "../mutex_m/vHEAD.gemfile" +eval_gemfile "../stringio/vHEAD.gemfile" +eval_gemfile "../benchmark/vHEAD.gemfile" +eval_gemfile "../cgi/vHEAD.gemfile" +eval_gemfile "../webrick/vHEAD.gemfile" diff --git a/gems/parslet-toml-merge/spec/spec_helper.rb b/gems/parslet-toml-merge/spec/spec_helper.rb index 93f4c989e..ee8bb5dbd 100644 --- a/gems/parslet-toml-merge/spec/spec_helper.rb +++ b/gems/parslet-toml-merge/spec/spec_helper.rb @@ -7,11 +7,16 @@ # NOTE: Gemfiles for non-coverage appraisals may not have kettle-soup-cover. # The rescue LoadError handles that scenario. begin - require 'kettle-soup-cover' - require 'simplecov' if Kettle::Soup::Cover::DO_COV # `.simplecov` is run here! -rescue LoadError => e + require "kettle-soup-cover" + if Kettle::Soup::Cover::DO_COV + # Requiring simplecov loads the project-local `.simplecov`. + require "simplecov" + require "kettle/soup/cover/config" + SimpleCov.start + end +rescue LoadError => error # check the error message and re-raise when unexpected - raise e unless e.message.include?('kettle') + raise error unless error.message.include?("kettle") end # External RSpec & related config diff --git a/gems/psych-merge/Gemfile.lock b/gems/psych-merge/Gemfile.lock index e67ccd673..d6e9776df 100644 --- a/gems/psych-merge/Gemfile.lock +++ b/gems/psych-merge/Gemfile.lock @@ -8,7 +8,39 @@ PATH yaml-merge (= 7.1.0) PATH - remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/ast-merge + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly + specs: + ast-crispr-markdown-markly (7.1.0) + ast-crispr (= 7.1.0) + markly-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism + specs: + ast-crispr-ruby-prism (7.1.0) + ast-crispr (= 7.1.0) + prism-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr + specs: + ast-crispr (7.1.0) + ast-merge (= 7.1.0) + service_actor (~> 3.9) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git + specs: + ast-merge-git (7.1.0) + ast-merge (= 7.1.0) + json-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge specs: ast-merge (7.1.0) benchmark @@ -17,7 +49,193 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/tree_haver + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template + specs: + ast-template (7.1.0) + ast-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge + specs: + bash-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge + specs: + binary-merge (7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge + specs: + citrus-toml-merge (7.1.0) + toml-merge (= 7.1.0) + toml-rb (~> 4.1) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge + specs: + commonmarker-merge (7.1.0) + commonmarker (~> 2.2) + markdown-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge + specs: + dotenv-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge + specs: + go-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge + specs: + json-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem + specs: + kettle-jem (7.1.0) + addressable (>= 2.8, < 3) + ast-crispr-markdown-markly (= 7.1.0) + ast-crispr-ruby-prism (= 7.1.0) + ast-merge (= 7.1.0) + bash-merge (= 7.1.0) + citrus-toml-merge (= 7.1.0) + commonmarker-merge (= 7.1.0) + dotenv-merge (= 7.1.0) + json-merge (= 7.1.0) + kettle-dev (~> 2.3, >= 2.3.5) + kettle-rb (~> 0.1, >= 0.1.4) + kramdown-merge (= 7.1.0) + markdown-merge (= 7.1.0) + markly-merge (= 7.1.0) + prism-merge (= 7.1.0) + psych-merge (= 7.1.0) + rbs (>= 3.10) + rbs-merge (= 7.1.0) + ruby-merge (= 7.1.0) + token-resolver (~> 2.0, >= 2.0.4) + toml-merge (= 7.1.0) + toml-rb (~> 4.2) + tree_haver (= 7.1.0) + yaml-merge (= 7.1.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge + specs: + kramdown-merge (7.1.0) + kramdown (~> 2.5) + markdown-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge + specs: + markdown-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge + specs: + markly-merge (7.1.0) + markdown-merge (= 7.1.0) + markly (~> 0.9) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge + specs: + parslet-toml-merge (7.1.0) + toml (~> 0.3) + toml-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge + specs: + plain-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge + specs: + prism-merge (7.1.0) + prism (~> 1.6) + ruby-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge + specs: + rbs-merge (7.1.0) + ast-merge (= 7.1.0) + rbs (>= 3.10) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge + specs: + ruby-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge + specs: + rust-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb + specs: + smorg-rb (7.1.0) + ast-merge (= 7.1.0) + ast-merge-git (= 7.1.0) + diff-lcs (~> 1.5) + go-merge (= 7.1.0) + json-merge (= 7.1.0) + kettle-jem (= 7.1.0) + markly-merge (= 7.1.0) + plain-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge + specs: + toml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver specs: tree_haver (7.1.0) citrus (~> 3.0) @@ -26,13 +244,28 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge + remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge + specs: + typescript-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge specs: yaml-merge (7.1.0) ast-merge (= 7.1.0) tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge + specs: + zip-merge (7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + GEM remote: https://gem.coop/ specs: @@ -57,6 +290,11 @@ GEM cgi (0.5.2) citrus (3.0.2) cmdparse (3.0.7) + commonmarker (2.9.0-aarch64-linux) + commonmarker (2.9.0-aarch64-linux-musl) + commonmarker (2.9.0-arm64-darwin) + commonmarker (2.9.0-x86_64-linux) + commonmarker (2.9.0-x86_64-linux-musl) concurrent-ruby (1.3.8) date (3.5.1) debug (1.11.1) @@ -119,6 +357,8 @@ GEM kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) + kettle-drift (1.0.6) + version_gem (~> 1.1, >= 1.1.14) kettle-rb (0.1.5) kettle-soup-cover (3.0.4) kettle-wash (~> 0.1, >= 0.1.0) @@ -147,6 +387,7 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) + markly (0.16.0) mutex_m (0.3.0) nokogiri (1.19.4-aarch64-linux-gnu) racc (~> 1.4) @@ -309,6 +550,8 @@ GEM ruby-progressbar (1.13.0) ruby_engine (2.0.3) ruby_version (1.0.3) + service_actor (3.9.4) + zeitwerk (>= 1.0) silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) @@ -363,6 +606,11 @@ GEM token-resolver (2.0.5) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.14) + toml (0.3.0) + parslet (>= 1.8.0, < 3.0.0) + toml-rb (4.2.0) + citrus (~> 3.0, > 3.0) + racc (~> 1.7) tree_sitter_language_pack (1.13.3-aarch64-linux) sorbet-runtime (~> 0.5) tree_sitter_language_pack (1.13.3-arm64-darwin) @@ -417,25 +665,46 @@ DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) appraisal2-rubocop (~> 1.0, >= 1.0.0) + ast-crispr! + ast-crispr-markdown-markly! + ast-crispr-ruby-prism! ast-merge! + ast-merge-git! + ast-template! + bash-merge! benchmark (~> 0.5, >= 0.5.0) + binary-merge! bundler-audit (~> 0.9.3) cgi (~> 0.5) + citrus-toml-merge! + commonmarker-merge! debug (>= 1.1) + dotenv-merge! erb (~> 6.0, >= 6.0.6) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.0) + go-merge! irb (~> 1.17) + json-merge! kettle-dev (~> 2.0, >= 2.2.25) + kettle-drift (~> 1.0, >= 1.0.6) + kettle-jem! kettle-soup-cover (~> 3.0, >= 3.0.3) kettle-test (~> 2.0, >= 2.0.9) kramdown (~> 2.5, >= 2.5.2) + kramdown-merge! kramdown-parser-gfm (~> 1.1) + markdown-merge! + markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) + parslet-toml-merge! + plain-merge! + prism-merge! psych-merge! rake (~> 13.0) rbs (>= 3.0) + rbs-merge! rdoc (~> 6.11) reek (~> 6.5, >= 6.5.0) require_bench (~> 1.0, >= 1.0.4) @@ -446,12 +715,17 @@ DEPENDENCIES rubocop-on-rbs (~> 2.0, >= 2.0.0) rubocop-packaging (~> 0.6, >= 0.6.0) rubocop-ruby3_2 (~> 3.0, >= 3.0.6) + ruby-merge! ruby-progressbar (~> 1.13) + rust-merge! + smorg-rb! standard (~> 1.56, >= 1.56.0) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) + toml-merge! tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) + typescript-merge! webrick (~> 1.9) yaml-converter (~> 0.2, >= 0.2.3) yaml-merge! @@ -461,6 +735,7 @@ DEPENDENCIES yard-relative_markdown_links (~> 0.6) yard-timekeeper (~> 0.2, >= 0.2.4) yard-yaml (~> 0.2, >= 0.2.3) + zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af @@ -468,20 +743,35 @@ CHECKSUMS appraisal2 (3.2.0) sha256=ccd0b767ac4060cd7af6d16747459b6990f49c39c7b4fb1f7d1146b1e97c492f appraisal2-rubocop (1.0.0) sha256=b71410fbb014befda5340605a605b7f6f3f012739baf0acc5b4351b592c3258d ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 + ast-crispr (7.1.0) + ast-crispr-markdown-markly (7.1.0) + ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) + ast-merge-git (7.1.0) + ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 + bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd + binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 + citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 + commonmarker (2.9.0-aarch64-linux) sha256=e2b4aadb9a2cfa4e206582641ce3a49465549ac1ed4c289fdd63b78d8f24579c + commonmarker (2.9.0-aarch64-linux-musl) sha256=1cf4d2821f2a7e64945f1ed7c4eeced586fdb27ea7fe7337788802cf8f57cfca + commonmarker (2.9.0-arm64-darwin) sha256=1748dbfa4f5813b0d2a14bb4bbfa65a4ec293aa1c825016d60029ee0e132b046 + commonmarker (2.9.0-x86_64-linux) sha256=8cfe92970eef585a19ddf6613224b91cab64d6029834661bda801f877c9c7f43 + commonmarker (2.9.0-x86_64-linux-musl) sha256=293921398b839f79ceaf55010e061357e34f053822c3b003cd0be6686176335e + commonmarker-merge (7.1.0) concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 + dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -494,20 +784,28 @@ CHECKSUMS gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f + go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 + json-merge (7.1.0) kettle-dev (2.3.9) + kettle-drift (1.0.6) sha256=46eda08fa4411d1f3c6682a95eef1c9df4e94611b3949f49d4c7b43c0ed356a3 + kettle-jem (7.1.0) kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f kettle-soup-cover (3.0.4) kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa + kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 + markdown-merge (7.1.0) + markly (0.16.0) sha256=6f70d79e385b1efc9e171f74c81628826259039fe6c778e03c3924c71dac5511 + markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-aarch64-linux-gnu) sha256=1269fb644a6de405057a53dd5c762b1209b43ca7424f839454d3dbc677c31a8f nokogiri (1.19.4-aarch64-linux-musl) sha256=35c65b9ce72b3bb03207bdbe7067915019dc18c1b9b59139684bd6690fdd01af @@ -521,9 +819,12 @@ CHECKSUMS parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 + parslet-toml-merge (7.1.0) + plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 + prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 @@ -531,6 +832,7 @@ CHECKSUMS rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 + rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb @@ -565,15 +867,19 @@ CHECKSUMS rubocop-rspec_rails (2.32.0) sha256=4a0d641c72f6ebb957534f539d9d0a62c47abd8ce0d0aeee1ef4701e892a9100 rubocop-ruby3_2 (3.0.7) sha256=f53dd6d286fb05186214fc6ec116783e7f837030918e8931c05de773e98f8466 rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 + ruby-merge (7.1.0) ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 + rust-merge (7.1.0) + service_actor (3.9.4) sha256=e63b523630b9a7e62959b2a90113b08d2565b5de9c148557b281ef847c9539ce silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed + smorg-rb (7.1.0) sorbet-runtime (0.6.13351) sha256=f8fee17c6e3edf835dc6823d26afb9a7c8969c6710d1fabe2fb43f4e0c15c64f standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b @@ -588,12 +894,16 @@ CHECKSUMS timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.5) sha256=b852f924287ffb58a440856e862b056c8ad97e74b4b2526cee43e0771f40c25c + toml (0.3.0) sha256=0a91d0f76a9036e84e44f95693b12f58d358c1df3ac8e3b5271f2056ecc6e4b9 + toml-merge (7.1.0) + toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-aarch64-linux) sha256=55ffc7c87868cb45658338363d9eba51b4a8b0259aa88e4de368d2bd1d52fea4 tree_sitter_language_pack (1.13.3-arm64-darwin) sha256=bc2498db605f212a1dbd2465ed3f65190d7da786f6ed5d30fcf958121aeb4a5c tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 + typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 @@ -607,6 +917,7 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 + zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH From 73af5e9eb34690735d6cb94b52afd89d4b337760 Mon Sep 17 00:00:00 2001 From: "Peter H. Boling" Date: Tue, 21 Jul 2026 18:05:44 -0600 Subject: [PATCH 171/188] =?UTF-8?q?=F0=9F=8E=A8=20Template=20bootstrap=20b?= =?UTF-8?q?y=20kettle-jem=20v7.1.0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gems/citrus-toml-merge/Gemfile.lock | 332 +++++++++++++++- gems/commonmarker-merge/.rubocop_gradual.lock | 132 ------- gems/commonmarker-merge/.simplecov | 8 +- gems/commonmarker-merge/Gemfile.lock | 332 +--------------- gems/commonmarker-merge/bin/yard | 2 +- .../modular/benchmark/r4/v0.5.gemfile | 2 +- .../gemfiles/modular/benchmark/vHEAD.gemfile | 2 +- .../gemfiles/modular/cgi/r4/v0.5.gemfile | 2 +- .../gemfiles/modular/cgi/vHEAD.gemfile | 2 +- .../gemfiles/modular/coverage.gemfile | 6 +- .../gemfiles/modular/coverage_local.gemfile | 42 +- .../gemfiles/modular/debug.gemfile | 4 +- .../gemfiles/modular/documentation.gemfile | 24 +- .../modular/documentation_local.gemfile | 30 +- .../gemfiles/modular/erb/r2/v3.0.gemfile | 2 +- .../gemfiles/modular/erb/r3/v5.0.gemfile | 2 +- .../gemfiles/modular/erb/r4/v5.0.gemfile | 2 +- .../gemfiles/modular/erb/vHEAD.gemfile | 2 +- .../modular/json/truffleruby_22_3.gemfile | 4 +- .../modular/json/truffleruby_23_0.gemfile | 4 +- .../modular/json/truffleruby_23_1.gemfile | 4 +- .../gemfiles/modular/mutex_m/r2/v0.3.gemfile | 2 +- .../gemfiles/modular/mutex_m/r3/v0.3.gemfile | 2 +- .../gemfiles/modular/mutex_m/r4/v0.3.gemfile | 2 +- .../gemfiles/modular/mutex_m/vHEAD.gemfile | 2 +- .../gemfiles/modular/optional.gemfile | 4 +- .../gemfiles/modular/rspec.gemfile | 8 +- .../gemfiles/modular/runtime_heads.gemfile | 2 +- .../gemfiles/modular/stringio/r2/v3.0.gemfile | 2 +- .../gemfiles/modular/stringio/r3/v3.0.gemfile | 2 +- .../gemfiles/modular/stringio/r4/v3.0.gemfile | 2 +- .../gemfiles/modular/stringio/vHEAD.gemfile | 2 +- .../gemfiles/modular/style.gemfile | 24 +- .../gemfiles/modular/style_local.gemfile | 32 +- .../gemfiles/modular/webrick/r4/v1.9.gemfile | 2 +- .../gemfiles/modular/webrick/vHEAD.gemfile | 2 +- .../gemfiles/modular/x_std_libs.gemfile | 14 +- .../modular/x_std_libs/r2/libs.gemfile | 6 +- .../modular/x_std_libs/r3/libs.gemfile | 6 +- .../modular/x_std_libs/r4/libs.gemfile | 12 +- .../gemfiles/modular/x_std_libs/vHEAD.gemfile | 12 +- gems/commonmarker-merge/spec/spec_helper.rb | 13 +- gems/kettle-jem/Gemfile.lock | 125 +++++- gems/kramdown-merge/.kettle-drift.lock | 144 ++++++- gems/kramdown-merge/Gemfile | 72 +++- gems/kramdown-merge/Gemfile.lock | 16 +- gems/kramdown-merge/Rakefile | 18 +- .../gemfiles/modular/templating.gemfile | 12 +- .../gemfiles/modular/templating_local.gemfile | 44 ++- .../lib/kramdown/merge/version.rb | 2 +- gems/parslet-toml-merge/.rubocop_gradual.lock | 2 +- gems/parslet-toml-merge/.simplecov | 2 +- gems/parslet-toml-merge/Gemfile | 70 ++-- gems/parslet-toml-merge/Gemfile.lock | 361 +----------------- gems/parslet-toml-merge/Rakefile | 18 +- .../modular/benchmark/r4/v0.5.gemfile | 2 +- .../gemfiles/modular/benchmark/vHEAD.gemfile | 2 +- .../gemfiles/modular/cgi/r4/v0.5.gemfile | 2 +- .../gemfiles/modular/cgi/vHEAD.gemfile | 2 +- .../gemfiles/modular/coverage.gemfile | 6 +- .../gemfiles/modular/coverage_local.gemfile | 42 +- .../gemfiles/modular/debug.gemfile | 4 +- .../gemfiles/modular/documentation.gemfile | 24 +- .../modular/documentation_local.gemfile | 30 +- .../gemfiles/modular/erb/r2/v3.0.gemfile | 2 +- .../gemfiles/modular/erb/r3/v5.0.gemfile | 2 +- .../gemfiles/modular/erb/r4/v5.0.gemfile | 2 +- .../gemfiles/modular/erb/vHEAD.gemfile | 2 +- .../modular/json/truffleruby_22_3.gemfile | 4 +- .../modular/json/truffleruby_23_0.gemfile | 4 +- .../modular/json/truffleruby_23_1.gemfile | 4 +- .../gemfiles/modular/mutex_m/r2/v0.3.gemfile | 2 +- .../gemfiles/modular/mutex_m/r3/v0.3.gemfile | 2 +- .../gemfiles/modular/mutex_m/r4/v0.3.gemfile | 2 +- .../gemfiles/modular/mutex_m/vHEAD.gemfile | 2 +- .../gemfiles/modular/optional.gemfile | 4 +- .../gemfiles/modular/rspec.gemfile | 8 +- .../gemfiles/modular/runtime_heads.gemfile | 2 +- .../gemfiles/modular/stringio/r2/v3.0.gemfile | 2 +- .../gemfiles/modular/stringio/r3/v3.0.gemfile | 2 +- .../gemfiles/modular/stringio/r4/v3.0.gemfile | 2 +- .../gemfiles/modular/stringio/vHEAD.gemfile | 2 +- .../gemfiles/modular/style.gemfile | 24 +- .../gemfiles/modular/style_local.gemfile | 32 +- .../gemfiles/modular/templating.gemfile | 12 +- .../gemfiles/modular/templating_local.gemfile | 44 +-- .../gemfiles/modular/webrick/r4/v1.9.gemfile | 2 +- .../gemfiles/modular/webrick/vHEAD.gemfile | 2 +- .../gemfiles/modular/x_std_libs.gemfile | 14 +- .../modular/x_std_libs/r2/libs.gemfile | 6 +- .../modular/x_std_libs/r3/libs.gemfile | 6 +- .../modular/x_std_libs/r4/libs.gemfile | 12 +- .../gemfiles/modular/x_std_libs/vHEAD.gemfile | 12 +- .../lib/parslet/toml/merge/version.rb | 2 +- gems/parslet-toml-merge/spec/spec_helper.rb | 10 +- 95 files changed, 1076 insertions(+), 1245 deletions(-) delete mode 100644 gems/commonmarker-merge/.rubocop_gradual.lock diff --git a/gems/citrus-toml-merge/Gemfile.lock b/gems/citrus-toml-merge/Gemfile.lock index 635902aba..21139f730 100644 --- a/gems/citrus-toml-merge/Gemfile.lock +++ b/gems/citrus-toml-merge/Gemfile.lock @@ -7,13 +7,265 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/toml-merge + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly + specs: + ast-crispr-markdown-markly (7.1.0) + ast-crispr (= 7.1.0) + markly-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism + specs: + ast-crispr-ruby-prism (7.1.0) + ast-crispr (= 7.1.0) + prism-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr + specs: + ast-crispr (7.1.0) + ast-merge (= 7.1.0) + service_actor (~> 3.9) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git + specs: + ast-merge-git (7.1.0) + ast-merge (= 7.1.0) + json-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge + specs: + ast-merge (7.1.0) + benchmark + token-resolver (~> 2.0, >= 2.0.4) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template + specs: + ast-template (7.1.0) + ast-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge + specs: + bash-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge + specs: + binary-merge (7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge + specs: + commonmarker-merge (7.1.0) + commonmarker (~> 2.2) + markdown-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge + specs: + dotenv-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge + specs: + go-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge + specs: + json-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem + specs: + kettle-jem (7.1.0) + addressable (>= 2.8, < 3) + ast-crispr-markdown-markly (= 7.1.0) + ast-crispr-ruby-prism (= 7.1.0) + ast-merge (= 7.1.0) + bash-merge (= 7.1.0) + citrus-toml-merge (= 7.1.0) + commonmarker-merge (= 7.1.0) + dotenv-merge (= 7.1.0) + json-merge (= 7.1.0) + kettle-dev (~> 2.3, >= 2.3.5) + kettle-rb (~> 0.1, >= 0.1.4) + kramdown-merge (= 7.1.0) + markdown-merge (= 7.1.0) + markly-merge (= 7.1.0) + prism-merge (= 7.1.0) + psych-merge (= 7.1.0) + rbs (>= 3.10) + rbs-merge (= 7.1.0) + ruby-merge (= 7.1.0) + token-resolver (~> 2.0, >= 2.0.4) + toml-merge (= 7.1.0) + toml-rb (~> 4.2) + tree_haver (= 7.1.0) + yaml-merge (= 7.1.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge + specs: + kramdown-merge (7.1.0) + kramdown (~> 2.5) + markdown-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge + specs: + markdown-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge + specs: + markly-merge (7.1.0) + markdown-merge (= 7.1.0) + markly (~> 0.9) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge + specs: + parslet-toml-merge (7.1.0) + toml (~> 0.3) + toml-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge + specs: + plain-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge + specs: + prism-merge (7.1.0) + prism (~> 1.6) + ruby-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge + specs: + psych-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + yaml-merge (= 7.1.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge + specs: + rbs-merge (7.1.0) + ast-merge (= 7.1.0) + rbs (>= 3.10) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge + specs: + ruby-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge + specs: + rust-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb + specs: + smorg-rb (7.1.0) + ast-merge (= 7.1.0) + ast-merge-git (= 7.1.0) + diff-lcs (~> 1.5) + go-merge (= 7.1.0) + json-merge (= 7.1.0) + kettle-jem (= 7.1.0) + markly-merge (= 7.1.0) + plain-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge specs: toml-merge (7.1.0) ast-merge (= 7.1.0) tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver + specs: + tree_haver (7.1.0) + citrus (~> 3.0) + parslet (~> 2.0) + tree_sitter_language_pack (>= 1.13.2, < 2.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge + specs: + typescript-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge + specs: + yaml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge + specs: + zip-merge (7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + GEM remote: https://gem.coop/ specs: @@ -29,11 +281,6 @@ GEM rubocop (>= 1.0) version_gem (~> 1.1, >= 1.1.14) ast (2.4.3) - ast-merge (7.1.0) - benchmark - token-resolver (~> 2.0, >= 2.0.4) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) backports (3.25.3) benchmark (0.5.0) bigdecimal (4.1.2) @@ -43,6 +290,7 @@ GEM cgi (0.5.2) citrus (3.0.2) cmdparse (3.0.7) + commonmarker (2.9.0-x86_64-linux) concurrent-ruby (1.3.8) date (3.5.1) debug (1.11.1) @@ -105,6 +353,8 @@ GEM kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) + kettle-drift (1.0.6) + version_gem (~> 1.1, >= 1.1.14) kettle-rb (0.1.5) kettle-soup-cover (3.0.4) kettle-wash (~> 0.1, >= 0.1.0) @@ -133,6 +383,7 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) + markly (0.16.0) mutex_m (0.3.0) nokogiri (1.19.4-x86_64-linux-gnu) racc (~> 1.4) @@ -287,6 +538,8 @@ GEM ruby-progressbar (1.13.0) ruby_engine (2.0.3) ruby_version (1.0.3) + service_actor (3.9.4) + zeitwerk (>= 1.0) silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) @@ -341,14 +594,11 @@ GEM token-resolver (2.0.5) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.14) + toml (0.3.0) + parslet (>= 1.8.0, < 3.0.0) toml-rb (4.2.0) citrus (~> 3.0, > 3.0) racc (~> 1.7) - tree_haver (7.1.0) - citrus (~> 3.0) - parslet (~> 2.0) - tree_sitter_language_pack (>= 1.13.2, < 2.0) - version_gem (~> 1.1, >= 1.1.9) tree_sitter_language_pack (1.13.3-x86_64-linux) sorbet-runtime (~> 0.5) tsort (0.2.0) @@ -394,24 +644,46 @@ DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) appraisal2-rubocop (~> 1.0, >= 1.0.0) + ast-crispr! + ast-crispr-markdown-markly! + ast-crispr-ruby-prism! + ast-merge! + ast-merge-git! + ast-template! + bash-merge! benchmark (~> 0.5, >= 0.5.0) + binary-merge! bundler-audit (~> 0.9.3) cgi (~> 0.5) citrus-toml-merge! + commonmarker-merge! debug (>= 1.1) + dotenv-merge! erb (~> 6.0, >= 6.0.6) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.0) + go-merge! irb (~> 1.17) + json-merge! kettle-dev (~> 2.0, >= 2.2.25) + kettle-drift (~> 1.0, >= 1.0.6) + kettle-jem! kettle-soup-cover (~> 3.0, >= 3.0.3) kettle-test (~> 2.0, >= 2.0.9) kramdown (~> 2.5, >= 2.5.2) + kramdown-merge! kramdown-parser-gfm (~> 1.1) + markdown-merge! + markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) + parslet-toml-merge! + plain-merge! + prism-merge! + psych-merge! rake (~> 13.0) rbs (>= 3.0) + rbs-merge! rdoc (~> 6.11) reek (~> 6.5, >= 6.5.0) require_bench (~> 1.0, >= 1.0.4) @@ -422,20 +694,27 @@ DEPENDENCIES rubocop-on-rbs (~> 2.0, >= 2.0.0) rubocop-packaging (~> 0.6, >= 0.6.0) rubocop-ruby3_2 (~> 3.0, >= 3.0.6) + ruby-merge! ruby-progressbar (~> 1.13) + rust-merge! + smorg-rb! standard (~> 1.56, >= 1.56.0) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) toml-merge! + tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) + typescript-merge! webrick (~> 1.9) yaml-converter (~> 0.2, >= 0.2.3) + yaml-merge! yard (~> 0.9, >= 0.9.45) yard-fence (~> 0.9, >= 0.9.6) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) yard-timekeeper (~> 0.2, >= 0.2.4) yard-yaml (~> 0.2, >= 0.2.3) + zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af @@ -443,21 +722,31 @@ CHECKSUMS appraisal2 (3.2.0) sha256=ccd0b767ac4060cd7af6d16747459b6990f49c39c7b4fb1f7d1146b1e97c492f appraisal2-rubocop (1.0.0) sha256=b71410fbb014befda5340605a605b7f6f3f012739baf0acc5b4351b592c3258d ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 + ast-crispr (7.1.0) + ast-crispr-markdown-markly (7.1.0) + ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) + ast-merge-git (7.1.0) + ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 + bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd + binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 + commonmarker (2.9.0-x86_64-linux) sha256=8cfe92970eef585a19ddf6613224b91cab64d6029834661bda801f877c9c7f43 + commonmarker-merge (7.1.0) concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 + dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -470,20 +759,28 @@ CHECKSUMS gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f + go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 + json-merge (7.1.0) kettle-dev (2.3.9) + kettle-drift (1.0.6) sha256=46eda08fa4411d1f3c6682a95eef1c9df4e94611b3949f49d4c7b43c0ed356a3 + kettle-jem (7.1.0) kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f kettle-soup-cover (3.0.4) kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa + kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 + markdown-merge (7.1.0) + markly (0.16.0) sha256=6f70d79e385b1efc9e171f74c81628826259039fe6c778e03c3924c71dac5511 + markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-x86_64-linux-gnu) sha256=379fae440b28915e3f19d752ce2dcf8465ed2b2fbefd2a7ca0dd497bc981a06a nomono (1.0.9) @@ -493,15 +790,20 @@ CHECKSUMS parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 + parslet-toml-merge (7.1.0) + plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 + prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 + psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 + rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb @@ -536,15 +838,19 @@ CHECKSUMS rubocop-rspec_rails (2.32.0) sha256=4a0d641c72f6ebb957534f539d9d0a62c47abd8ce0d0aeee1ef4701e892a9100 rubocop-ruby3_2 (3.0.7) sha256=f53dd6d286fb05186214fc6ec116783e7f837030918e8931c05de773e98f8466 rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 + ruby-merge (7.1.0) ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 + rust-merge (7.1.0) + service_actor (3.9.4) sha256=e63b523630b9a7e62959b2a90113b08d2565b5de9c148557b281ef847c9539ce silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed + smorg-rb (7.1.0) sorbet-runtime (0.6.13351) sha256=f8fee17c6e3edf835dc6823d26afb9a7c8969c6710d1fabe2fb43f4e0c15c64f standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b @@ -559,17 +865,20 @@ CHECKSUMS timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.5) sha256=b852f924287ffb58a440856e862b056c8ad97e74b4b2526cee43e0771f40c25c + toml (0.3.0) sha256=0a91d0f76a9036e84e44f95693b12f58d358c1df3ac8e3b5271f2056ecc6e4b9 toml-merge (7.1.0) toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 + typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 webrick (1.9.2) sha256=beb4a15fc474defed24a3bda4ffd88a490d517c9e4e6118c3edce59e45864131 yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 + yaml-merge (7.1.0) yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd @@ -577,6 +886,7 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 + zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH diff --git a/gems/commonmarker-merge/.rubocop_gradual.lock b/gems/commonmarker-merge/.rubocop_gradual.lock deleted file mode 100644 index 3242c815a..000000000 --- a/gems/commonmarker-merge/.rubocop_gradual.lock +++ /dev/null @@ -1,132 +0,0 @@ -{ - ".simplecov:4284607950": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "Rakefile:3938625005": [ - [18, 121, 17, "Layout/LineLength: Line is too long. [137/120]", 174264873], - [79, 3, 1023, "Metrics/BlockLength: Block has too many lines. [32/25]", 54868638], - [163, 121, 22, "Layout/LineLength: Line is too long. [142/120]", 1367093088], - [166, 121, 18, "Layout/LineLength: Line is too long. [138/120]", 3881946477] - ], - "commonmarker-merge.gemspec:3865151820": [ - [128, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 2821357214], - [143, 121, 50, "Layout/LineLength: Line is too long. [170/120]", 3888612416], - [144, 121, 29, "Layout/LineLength: Line is too long. [149/120]", 981994949], - [151, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 4229808912] - ], - "gemfiles/modular/benchmark/r4/v0.5.gemfile:3644720371": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/benchmark/vHEAD.gemfile:2838879269": [ - [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/cgi/r4/v0.5.gemfile:367169322": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] - ], - "gemfiles/modular/cgi/vHEAD.gemfile:2729540777": [ - [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] - ], - "gemfiles/modular/erb/r2/v3.0.gemfile:1688285565": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] - ], - "gemfiles/modular/erb/r3/v5.0.gemfile:2394062339": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] - ], - "gemfiles/modular/erb/r4/v5.0.gemfile:2394062339": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] - ], - "gemfiles/modular/erb/vHEAD.gemfile:981929959": [ - [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/mutex_m/r2/v0.3.gemfile:4055275004": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/mutex_m/r3/v0.3.gemfile:4055275004": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/mutex_m/r4/v0.3.gemfile:4055275004": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/mutex_m/vHEAD.gemfile:556854763": [ - [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/rspec.gemfile:2263543889": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] - ], - "gemfiles/modular/stringio/r2/v3.0.gemfile:821604304": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/stringio/r3/v3.0.gemfile:821604304": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/stringio/r4/v3.0.gemfile:821604304": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/stringio/vHEAD.gemfile:1045839691": [ - [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/webrick/r4/v1.9.gemfile:3092661193": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] - ], - "gemfiles/modular/webrick/vHEAD.gemfile:3867684682": [ - [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] - ], - "gemfiles/modular/x_std_libs.gemfile:2324400122": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/x_std_libs/r2/libs.gemfile:36276542": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] - ], - "gemfiles/modular/x_std_libs/r3/libs.gemfile:4030570297": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] - ], - "gemfiles/modular/x_std_libs/r4/libs.gemfile:732451732": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] - ], - "gemfiles/modular/x_std_libs/vHEAD.gemfile:2390363993": [ - [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] - ], - "lib/commonmarker-merge.rb:2377410954": [ - [1, 1, 0, "Naming/FileName: The name of this source file (`commonmarker-merge.rb`) should use snake_case.", 5381] - ], - "lib/commonmarker/merge.rb:3124175488": [ - [10, 3, 12, "Style/Documentation: Missing top-level documentation comment for `module Commonmarker::Merge`.", 2866359175], - [10, 3, 8154, "Metrics/ModuleLength: Module has too many lines. [187/100]", 3577384442], - [11, 5, 11, "Style/ModuleFunction: Use `module_function` instead of `extend self`.", 1210897631], - [56, 5, 928, "Metrics/MethodLength: Method has too many lines. [24/10]", 2523239963], - [88, 5, 1442, "Metrics/AbcSize: Assignment Branch Condition size for `merge_markdown` is too high. [<11, 31, 11> 34.68/17]", 2548079514], - [88, 5, 1442, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `merge_markdown` is too high. [11/7]", 2548079514], - [88, 5, 1442, "Metrics/MethodLength: Method has too many lines. [27/10]", 2548079514], - [88, 5, 1442, "Metrics/PerceivedComplexity: Perceived complexity for `merge_markdown` is too high. [11/8]", 2548079514], - [122, 5, 613, "Metrics/MethodLength: Method has too many lines. [11/10]", 2967276583], - [122, 52, 144, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 3050457682] - ], - "lib/commonmarker/merge/backend.rb:373392035": [ - [149, 9, 590, "Metrics/AbcSize: Assignment Branch Condition size for `start_point` is too high. [<2, 18, 7> 19.42/17]", 2717016062], - [149, 9, 590, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `start_point` is too high. [8/7]", 2717016062], - [149, 9, 590, "Metrics/MethodLength: Method has too many lines. [15/10]", 2717016062], - [172, 9, 534, "Metrics/AbcSize: Assignment Branch Condition size for `end_point` is too high. [<2, 18, 7> 19.42/17]", 1198128832], - [172, 9, 534, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `end_point` is too high. [8/7]", 1198128832], - [172, 9, 534, "Metrics/MethodLength: Method has too many lines. [15/10]", 1198128832] - ], - "spec/commonmarker/merge/partial_template_merger_integration_spec.rb:3818970621": [ - [5, 1, 4139, "Metrics/BlockLength: Block has too many lines. [107/25]", 3727961890], - [25, 3, 1109, "Metrics/BlockLength: Block has too many lines. [30/25]", 2339832693], - [84, 3, 1236, "Metrics/BlockLength: Block has too many lines. [30/25]", 503179966], - [84, 121, 32, "Layout/LineLength: Line is too long. [152/120]", 567791365] - ], - "spec/fixtures_integration_spec.rb:1779667956": [ - [3, 1, 13039, "Metrics/BlockLength: Block has too many lines. [276/25]", 2065862761], - [16, 3, 1373, "Metrics/BlockLength: Block has too many lines. [30/25]", 489033777], - [152, 3, 1353, "Metrics/BlockLength: Block has too many lines. [26/25]", 2630958569], - [235, 3, 1352, "Metrics/BlockLength: Block has too many lines. [30/25]", 2376182886], - [270, 3, 1402, "Metrics/BlockLength: Block has too many lines. [29/25]", 3678391303] - ] -} diff --git a/gems/commonmarker-merge/.simplecov b/gems/commonmarker-merge/.simplecov index dfe720b1e..b75946f49 100644 --- a/gems/commonmarker-merge/.simplecov +++ b/gems/commonmarker-merge/.simplecov @@ -4,15 +4,11 @@ # commonmarker-merge will then preserve content between those markers across template runs. # kettle-jem:unfreeze -require 'kettle/soup/cover/config' - # Minimum coverage thresholds are set by kettle-soup-cover. # They are controlled by ENV variables loaded by `mise` from `mise.toml` # (with optional machine-local overrides in `.env.local`). # If the values for minimum coverage need to change, they should be changed both there, # and in 2 places in .github/workflows/coverage.yml. -SimpleCov.start do - track_files 'lib/**/*.rb' - track_files 'lib/**/*.rake' - track_files 'exe/*.rb' +SimpleCov.configure do + cover "lib/**/*.rb", "lib/**/*.rake", "exe/*.rb" end diff --git a/gems/commonmarker-merge/Gemfile.lock b/gems/commonmarker-merge/Gemfile.lock index 65cc691cd..2e09403f4 100644 --- a/gems/commonmarker-merge/Gemfile.lock +++ b/gems/commonmarker-merge/Gemfile.lock @@ -6,138 +6,6 @@ PATH markdown-merge (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly - specs: - ast-crispr-markdown-markly (7.1.0) - ast-crispr (= 7.1.0) - markly-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism - specs: - ast-crispr-ruby-prism (7.1.0) - ast-crispr (= 7.1.0) - prism-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr - specs: - ast-crispr (7.1.0) - ast-merge (= 7.1.0) - service_actor (~> 3.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git - specs: - ast-merge-git (7.1.0) - ast-merge (= 7.1.0) - json-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge - specs: - ast-merge (7.1.0) - benchmark - token-resolver (~> 2.0, >= 2.0.4) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template - specs: - ast-template (7.1.0) - ast-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge - specs: - bash-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge - specs: - binary-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge - specs: - citrus-toml-merge (7.1.0) - toml-merge (= 7.1.0) - toml-rb (~> 4.1) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge - specs: - dotenv-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge - specs: - go-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge - specs: - json-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem - specs: - kettle-jem (7.1.0) - addressable (>= 2.8, < 3) - ast-crispr-markdown-markly (= 7.1.0) - ast-crispr-ruby-prism (= 7.1.0) - ast-merge (= 7.1.0) - bash-merge (= 7.1.0) - citrus-toml-merge (= 7.1.0) - commonmarker-merge (= 7.1.0) - dotenv-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-dev (~> 2.3, >= 2.3.5) - kettle-rb (~> 0.1, >= 0.1.4) - kramdown-merge (= 7.1.0) - markdown-merge (= 7.1.0) - markly-merge (= 7.1.0) - prism-merge (= 7.1.0) - psych-merge (= 7.1.0) - rbs (>= 3.10) - rbs-merge (= 7.1.0) - ruby-merge (= 7.1.0) - token-resolver (~> 2.0, >= 2.0.4) - toml-merge (= 7.1.0) - toml-rb (~> 4.2) - tree_haver (= 7.1.0) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge - specs: - kramdown-merge (7.1.0) - kramdown (~> 2.5) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - PATH remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge specs: @@ -146,126 +14,6 @@ PATH tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge - specs: - markly-merge (7.1.0) - markdown-merge (= 7.1.0) - markly (~> 0.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge - specs: - parslet-toml-merge (7.1.0) - toml (~> 0.3) - toml-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge - specs: - plain-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge - specs: - prism-merge (7.1.0) - prism (~> 1.6) - ruby-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge - specs: - psych-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge - specs: - rbs-merge (7.1.0) - ast-merge (= 7.1.0) - rbs (>= 3.10) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge - specs: - ruby-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge - specs: - rust-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb - specs: - smorg-rb (7.1.0) - ast-merge (= 7.1.0) - ast-merge-git (= 7.1.0) - diff-lcs (~> 1.5) - go-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-jem (= 7.1.0) - markly-merge (= 7.1.0) - plain-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge - specs: - toml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver - specs: - tree_haver (7.1.0) - citrus (~> 3.0) - parslet (~> 2.0) - tree_sitter_language_pack (>= 1.13.2, < 2.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge - specs: - typescript-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge - specs: - yaml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge - specs: - zip-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - GEM remote: https://gem.coop/ specs: @@ -281,6 +29,11 @@ GEM rubocop (>= 1.0) version_gem (~> 1.1, >= 1.1.14) ast (2.4.3) + ast-merge (7.1.0) + benchmark + token-resolver (~> 2.0, >= 2.0.4) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) backports (3.25.3) benchmark (0.5.0) bigdecimal (4.1.2) @@ -353,8 +106,6 @@ GEM kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) - kettle-drift (1.0.6) - version_gem (~> 1.1, >= 1.1.14) kettle-rb (0.1.5) kettle-soup-cover (3.0.4) kettle-wash (~> 0.1, >= 0.1.0) @@ -383,7 +134,6 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) - markly (0.16.0) mutex_m (0.3.0) nokogiri (1.19.4-x86_64-linux-gnu) racc (~> 1.4) @@ -538,8 +288,6 @@ GEM ruby-progressbar (1.13.0) ruby_engine (2.0.3) ruby_version (1.0.3) - service_actor (3.9.4) - zeitwerk (>= 1.0) silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) @@ -594,11 +342,11 @@ GEM token-resolver (2.0.5) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.14) - toml (0.3.0) - parslet (>= 1.8.0, < 3.0.0) - toml-rb (4.2.0) - citrus (~> 3.0, > 3.0) - racc (~> 1.7) + tree_haver (7.1.0) + citrus (~> 3.0) + parslet (~> 2.0) + tree_sitter_language_pack (>= 1.13.2, < 2.0) + version_gem (~> 1.1, >= 1.1.9) tree_sitter_language_pack (1.13.3-x86_64-linux) sorbet-runtime (~> 0.5) tsort (0.2.0) @@ -644,46 +392,25 @@ DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) appraisal2-rubocop (~> 1.0, >= 1.0.0) - ast-crispr! - ast-crispr-markdown-markly! - ast-crispr-ruby-prism! - ast-merge! - ast-merge-git! - ast-template! - bash-merge! benchmark (~> 0.5, >= 0.5.0) - binary-merge! bundler-audit (~> 0.9.3) cgi (~> 0.5) - citrus-toml-merge! commonmarker-merge! debug (>= 1.1) - dotenv-merge! erb (~> 6.0, >= 6.0.6) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.0) - go-merge! irb (~> 1.17) - json-merge! kettle-dev (~> 2.0, >= 2.2.25) - kettle-drift (~> 1.0, >= 1.0.6) - kettle-jem! kettle-soup-cover (~> 3.0, >= 3.0.3) kettle-test (~> 2.0, >= 2.0.9) kramdown (~> 2.5, >= 2.5.2) - kramdown-merge! kramdown-parser-gfm (~> 1.1) markdown-merge! - markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) - parslet-toml-merge! - plain-merge! - prism-merge! - psych-merge! rake (~> 13.0) rbs (>= 3.0) - rbs-merge! rdoc (~> 6.11) reek (~> 6.5, >= 6.5.0) require_bench (~> 1.0, >= 1.0.4) @@ -694,27 +421,19 @@ DEPENDENCIES rubocop-on-rbs (~> 2.0, >= 2.0.0) rubocop-packaging (~> 0.6, >= 0.6.0) rubocop-ruby3_2 (~> 3.0, >= 3.0.6) - ruby-merge! ruby-progressbar (~> 1.13) - rust-merge! - smorg-rb! standard (~> 1.56, >= 1.56.0) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) - toml-merge! - tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) - typescript-merge! webrick (~> 1.9) yaml-converter (~> 0.2, >= 0.2.3) - yaml-merge! yard (~> 0.9, >= 0.9.45) yard-fence (~> 0.9, >= 0.9.6) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) yard-timekeeper (~> 0.2, >= 0.2.4) yard-yaml (~> 0.2, >= 0.2.3) - zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af @@ -722,21 +441,13 @@ CHECKSUMS appraisal2 (3.2.0) sha256=ccd0b767ac4060cd7af6d16747459b6990f49c39c7b4fb1f7d1146b1e97c492f appraisal2-rubocop (1.0.0) sha256=b71410fbb014befda5340605a605b7f6f3f012739baf0acc5b4351b592c3258d ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 - ast-crispr (7.1.0) - ast-crispr-markdown-markly (7.1.0) - ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) - ast-merge-git (7.1.0) - ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 - bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd - binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 - citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 commonmarker (2.9.0-x86_64-linux) sha256=8cfe92970eef585a19ddf6613224b91cab64d6029834661bda801f877c9c7f43 commonmarker-merge (7.1.0) @@ -746,7 +457,6 @@ CHECKSUMS delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 - dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -759,28 +469,21 @@ CHECKSUMS gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f - go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 - json-merge (7.1.0) kettle-dev (2.3.8) sha256=9d716ff21c660a730cb4e8d41e2e2f0630a28167a354b6e2924e242102aef72c - kettle-drift (1.0.6) - kettle-jem (7.1.0) kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f kettle-soup-cover (3.0.4) kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa - kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 markdown-merge (7.1.0) - markly (0.16.0) - markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-x86_64-linux-gnu) sha256=379fae440b28915e3f19d752ce2dcf8465ed2b2fbefd2a7ca0dd497bc981a06a nomono (1.0.9) @@ -790,20 +493,15 @@ CHECKSUMS parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 - parslet-toml-merge (7.1.0) - plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 - prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 - psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 - rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb @@ -838,19 +536,15 @@ CHECKSUMS rubocop-rspec_rails (2.32.0) sha256=4a0d641c72f6ebb957534f539d9d0a62c47abd8ce0d0aeee1ef4701e892a9100 rubocop-ruby3_2 (3.0.7) sha256=f53dd6d286fb05186214fc6ec116783e7f837030918e8931c05de773e98f8466 rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 - ruby-merge (7.1.0) ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 - rust-merge (7.1.0) - service_actor (3.9.4) silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed - smorg-rb (7.1.0) sorbet-runtime (0.6.13351) sha256=f8fee17c6e3edf835dc6823d26afb9a7c8969c6710d1fabe2fb43f4e0c15c64f standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b @@ -865,20 +559,15 @@ CHECKSUMS timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.5) sha256=b852f924287ffb58a440856e862b056c8ad97e74b4b2526cee43e0771f40c25c - toml (0.3.0) - toml-merge (7.1.0) - toml-rb (4.2.0) tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 - typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 webrick (1.9.2) sha256=beb4a15fc474defed24a3bda4ffd88a490d517c9e4e6118c3edce59e45864131 yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 - yaml-merge (7.1.0) yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd @@ -886,7 +575,6 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 - zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH diff --git a/gems/commonmarker-merge/bin/yard b/gems/commonmarker-merge/bin/yard index 5d516ad6f..a7e8b6eed 100755 --- a/gems/commonmarker-merge/bin/yard +++ b/gems/commonmarker-merge/bin/yard @@ -12,4 +12,4 @@ # `yard` / `bin/yard`. Keep this binstub as a handoff to the task so # humans and tools that reach for `bin/yard` still run the full docs # workflow with post-processing hooks. -exec('bundle', 'exec', 'rake', 'yard') +exec("bundle", "exec", "rake", "yard") diff --git a/gems/commonmarker-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile b/gems/commonmarker-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile index b8392fab0..dec650815 100644 --- a/gems/commonmarker-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile +++ b/gems/commonmarker-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.1 -gem 'benchmark', '~> 0.5', '>= 0.5.0' # Removed from Std Lib in Ruby 4.0 +gem "benchmark", "~> 0.5", ">= 0.5.0" # Removed from Std Lib in Ruby 4.0 diff --git a/gems/commonmarker-merge/gemfiles/modular/benchmark/vHEAD.gemfile b/gems/commonmarker-merge/gemfiles/modular/benchmark/vHEAD.gemfile index af214aafa..e1eb20c5e 100644 --- a/gems/commonmarker-merge/gemfiles/modular/benchmark/vHEAD.gemfile +++ b/gems/commonmarker-merge/gemfiles/modular/benchmark/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.1 -gem 'benchmark', github: 'ruby/benchmark', branch: 'master' +gem "benchmark", github: "ruby/benchmark", branch: "master" diff --git a/gems/commonmarker-merge/gemfiles/modular/cgi/r4/v0.5.gemfile b/gems/commonmarker-merge/gemfiles/modular/cgi/r4/v0.5.gemfile index 17ad97260..19ed967c3 100644 --- a/gems/commonmarker-merge/gemfiles/modular/cgi/r4/v0.5.gemfile +++ b/gems/commonmarker-merge/gemfiles/modular/cgi/r4/v0.5.gemfile @@ -1 +1 @@ -gem 'cgi', '~> 0.5' +gem "cgi", "~> 0.5" diff --git a/gems/commonmarker-merge/gemfiles/modular/cgi/vHEAD.gemfile b/gems/commonmarker-merge/gemfiles/modular/cgi/vHEAD.gemfile index 650fbf033..ef8b816ce 100644 --- a/gems/commonmarker-merge/gemfiles/modular/cgi/vHEAD.gemfile +++ b/gems/commonmarker-merge/gemfiles/modular/cgi/vHEAD.gemfile @@ -1 +1 @@ -gem 'cgi', '>= 0.5' +gem "cgi", ">= 0.5" diff --git a/gems/commonmarker-merge/gemfiles/modular/coverage.gemfile b/gems/commonmarker-merge/gemfiles/modular/coverage.gemfile index b93014b6b..52d737872 100644 --- a/gems/commonmarker-merge/gemfiles/modular/coverage.gemfile +++ b/gems/commonmarker-merge/gemfiles/modular/coverage.gemfile @@ -4,11 +4,11 @@ # Set KETTLE_DEV_DEV=true for local development with path-based dependencies. # When false (default / CI), remote released gems are used. -if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? +if ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false").zero? # Coverage (remote/released) platform :mri do - gem 'kettle-soup-cover', '~> 3.0', '>= 3.0.3', require: false + gem "kettle-soup-cover", "~> 3.0", ">= 3.0.3", require: false end else - eval_gemfile 'coverage_local.gemfile' + eval_gemfile "coverage_local.gemfile" end diff --git a/gems/commonmarker-merge/gemfiles/modular/coverage_local.gemfile b/gems/commonmarker-merge/gemfiles/modular/coverage_local.gemfile index 20610f259..e9a2f446c 100644 --- a/gems/commonmarker-merge/gemfiles/modular/coverage_local.gemfile +++ b/gems/commonmarker-merge/gemfiles/modular/coverage_local.gemfile @@ -11,19 +11,21 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] -nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) +nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] +nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == "nomono" } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + if nomono_locked + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] + end end -Kernel.send(:gem, 'nomono', *nomono_activation_requirements) -require 'nomono/bundler' +Kernel.send(:gem, "nomono", *nomono_activation_requirements) +require "nomono/bundler" local_gems = %w[kettle-dev kettle-test kettle-soup-cover kettle-drift] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) @@ -33,21 +35,21 @@ local_gems_to_eval = local_gems - %w[commonmarker-merge] - declared_gems platform :mri do eval_nomono_gems( gems: local_gems_to_eval, - prefix: 'KETTLE_DEV', - path_env: 'KETTLE_DEV_DEV', - vendored_gems_env: 'VENDORED_GEMS', - vendor_gem_dir_env: 'VENDOR_GEM_DIR', - debug_env: 'KETTLE_DEV_DEBUG' + prefix: "KETTLE_DEV", + path_env: "KETTLE_DEV_DEV", + vendored_gems_env: "VENDORED_GEMS", + vendor_gem_dir_env: "VENDOR_GEM_DIR", + debug_env: "KETTLE_DEV_DEBUG" ) - if ENV.fetch('GALTZO_FLOSS_DEV', 'false').casecmp('false') != 0 + if ENV.fetch("GALTZO_FLOSS_DEV", "false").casecmp("false") != 0 eval_nomono_gems( gems: %w[turbo_tests2], - prefix: 'GALTZO_FLOSS', - path_env: 'GALTZO_FLOSS_DEV', - vendored_gems_env: 'GALTZO_FLOSS_VENDORED_GEMS', - vendor_gem_dir_env: 'GALTZO_FLOSS_VENDOR_GEM_DIR', - debug_env: 'GALTZO_FLOSS_DEBUG' + prefix: "GALTZO_FLOSS", + path_env: "GALTZO_FLOSS_DEV", + vendored_gems_env: "GALTZO_FLOSS_VENDORED_GEMS", + vendor_gem_dir_env: "GALTZO_FLOSS_VENDOR_GEM_DIR", + debug_env: "GALTZO_FLOSS_DEBUG" ) end end diff --git a/gems/commonmarker-merge/gemfiles/modular/debug.gemfile b/gems/commonmarker-merge/gemfiles/modular/debug.gemfile index eed8d4d1e..4e15b1a3a 100644 --- a/gems/commonmarker-merge/gemfiles/modular/debug.gemfile +++ b/gems/commonmarker-merge/gemfiles/modular/debug.gemfile @@ -13,10 +13,10 @@ platform :mri do # Debugging - Ensure ENV["DEBUG"] == "true" to use debuggers within spec suite # Use binding.break, binding.b, or debugger in code - gem 'debug', '>= 1.1' # ruby >= 2.7 + gem "debug", ">= 1.1" # ruby >= 2.7 # Dev Console - Binding.pry - Irb replacement # gem "pry", "~> 0.14" # ruby >= 2.0 end -gem 'gem_bench', '~> 2.0', '>= 2.0.5' +gem "gem_bench", "~> 2.0", ">= 2.0.5" diff --git a/gems/commonmarker-merge/gemfiles/modular/documentation.gemfile b/gems/commonmarker-merge/gemfiles/modular/documentation.gemfile index 9d4535f12..d8215416e 100644 --- a/gems/commonmarker-merge/gemfiles/modular/documentation.gemfile +++ b/gems/commonmarker-merge/gemfiles/modular/documentation.gemfile @@ -7,20 +7,20 @@ # # Documentation -gem 'kramdown', '~> 2.5', '>= 2.5.2', require: false # Ruby >= 2.5 -gem 'kramdown-parser-gfm', '~> 1.1', require: false # Ruby >= 2.3 -gem 'yaml-converter', '~> 0.2', '>= 0.2.3', require: false # Ruby >= 3.2 -gem 'yard', '~> 0.9', '>= 0.9.45', require: false -gem 'yard-junk', '~> 0.1', '>= 0.1.0', require: false # Ruby >= 3.1 -gem 'yard-relative_markdown_links', '~> 0.6', require: false +gem "kramdown", "~> 2.5", ">= 2.5.2", require: false # Ruby >= 2.5 +gem "kramdown-parser-gfm", "~> 1.1", require: false # Ruby >= 2.3 +gem "yaml-converter", "~> 0.2", ">= 0.2.3", require: false # Ruby >= 3.2 +gem "yard", "~> 0.9", ">= 0.9.45", require: false +gem "yard-junk", "~> 0.1", ">= 0.1.0", require: false # Ruby >= 3.1 +gem "yard-relative_markdown_links", "~> 0.6", require: false -if ENV.fetch('GALTZO_FLOSS_DEV', 'false').casecmp('false').zero? - gem 'yard-fence', '~> 0.9', '>= 0.9.6', require: false # Ruby >= 3.2 - gem 'yard-timekeeper', '~> 0.2', '>= 0.2.4', require: false - gem 'yard-yaml', '~> 0.2', '>= 0.2.3', require: false +if ENV.fetch("GALTZO_FLOSS_DEV", "false").casecmp("false").zero? + gem "yard-fence", "~> 0.9", ">= 0.9.6", require: false # Ruby >= 3.2 + gem "yard-timekeeper", "~> 0.2", ">= 0.2.4", require: false + gem "yard-yaml", "~> 0.2", ">= 0.2.3", require: false else - eval_gemfile 'documentation_local.gemfile' + eval_gemfile "documentation_local.gemfile" end # Std Lib extractions -gem 'rdoc', '~> 6.11', require: false unless ENV.fetch('KJ_FRAMEWORK_MATRIX_GEM', '') == 'rdoc' +gem "rdoc", "~> 6.11", require: false unless ENV.fetch("KJ_FRAMEWORK_MATRIX_GEM", "") == "rdoc" diff --git a/gems/commonmarker-merge/gemfiles/modular/documentation_local.gemfile b/gems/commonmarker-merge/gemfiles/modular/documentation_local.gemfile index 9ecf2df17..2c478d8c9 100644 --- a/gems/commonmarker-merge/gemfiles/modular/documentation_local.gemfile +++ b/gems/commonmarker-merge/gemfiles/modular/documentation_local.gemfile @@ -11,19 +11,21 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] -nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) +nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] +nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == "nomono" } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + if nomono_locked + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] + end end -Kernel.send(:gem, 'nomono', *nomono_activation_requirements) -require 'nomono/bundler' +Kernel.send(:gem, "nomono", *nomono_activation_requirements) +require "nomono/bundler" local_gems = %w[yard-fence yard-timekeeper yard-yaml] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) @@ -32,9 +34,9 @@ local_gems_to_eval = local_gems - %w[commonmarker-merge] - declared_gems # export GALTZO_FLOSS_DEV=/path/to/galtzo-floss eval_nomono_gems( gems: local_gems_to_eval, - prefix: 'GALTZO_FLOSS', - path_env: 'GALTZO_FLOSS_DEV', - vendored_gems_env: 'GALTZO_FLOSS_VENDORED_GEMS', - vendor_gem_dir_env: 'GALTZO_FLOSS_VENDOR_GEM_DIR', - debug_env: 'GALTZO_FLOSS_DEBUG' + prefix: "GALTZO_FLOSS", + path_env: "GALTZO_FLOSS_DEV", + vendored_gems_env: "GALTZO_FLOSS_VENDORED_GEMS", + vendor_gem_dir_env: "GALTZO_FLOSS_VENDOR_GEM_DIR", + debug_env: "GALTZO_FLOSS_DEBUG" ) diff --git a/gems/commonmarker-merge/gemfiles/modular/erb/r2/v3.0.gemfile b/gems/commonmarker-merge/gemfiles/modular/erb/r2/v3.0.gemfile index 7c83a239b..c03bd8d85 100644 --- a/gems/commonmarker-merge/gemfiles/modular/erb/r2/v3.0.gemfile +++ b/gems/commonmarker-merge/gemfiles/modular/erb/r2/v3.0.gemfile @@ -1 +1 @@ -gem 'erb', '~> 3.0' # ruby >= 2.7.0 +gem "erb", "~> 3.0" # ruby >= 2.7.0 diff --git a/gems/commonmarker-merge/gemfiles/modular/erb/r3/v5.0.gemfile b/gems/commonmarker-merge/gemfiles/modular/erb/r3/v5.0.gemfile index ec7ff451f..1bd029cc1 100644 --- a/gems/commonmarker-merge/gemfiles/modular/erb/r3/v5.0.gemfile +++ b/gems/commonmarker-merge/gemfiles/modular/erb/r3/v5.0.gemfile @@ -1 +1 @@ -gem 'erb', '~> 6.0', '>= 6.0.6' # ruby >= 3.2.0 +gem "erb", "~> 6.0", ">= 6.0.6" # ruby >= 3.2.0 diff --git a/gems/commonmarker-merge/gemfiles/modular/erb/r4/v5.0.gemfile b/gems/commonmarker-merge/gemfiles/modular/erb/r4/v5.0.gemfile index ec7ff451f..1bd029cc1 100644 --- a/gems/commonmarker-merge/gemfiles/modular/erb/r4/v5.0.gemfile +++ b/gems/commonmarker-merge/gemfiles/modular/erb/r4/v5.0.gemfile @@ -1 +1 @@ -gem 'erb', '~> 6.0', '>= 6.0.6' # ruby >= 3.2.0 +gem "erb", "~> 6.0", ">= 6.0.6" # ruby >= 3.2.0 diff --git a/gems/commonmarker-merge/gemfiles/modular/erb/vHEAD.gemfile b/gems/commonmarker-merge/gemfiles/modular/erb/vHEAD.gemfile index ea0101185..48fee4218 100644 --- a/gems/commonmarker-merge/gemfiles/modular/erb/vHEAD.gemfile +++ b/gems/commonmarker-merge/gemfiles/modular/erb/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 3.2 -gem 'erb', github: 'ruby/erb', branch: 'master' +gem "erb", github: "ruby/erb", branch: "master" diff --git a/gems/commonmarker-merge/gemfiles/modular/json/truffleruby_22_3.gemfile b/gems/commonmarker-merge/gemfiles/modular/json/truffleruby_22_3.gemfile index 9b2f8d96a..b0e69ab11 100644 --- a/gems/commonmarker-merge/gemfiles/modular/json/truffleruby_22_3.gemfile +++ b/gems/commonmarker-merge/gemfiles/modular/json/truffleruby_22_3.gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -if RUBY_ENGINE == 'truffleruby' && RUBY_ENGINE_VERSION.start_with?('22.3') +if RUBY_ENGINE == "truffleruby" && RUBY_ENGINE_VERSION.start_with?("22.3") # TruffleRuby 22.3 ships the json default gem from its emulated MRI Ruby. - gem 'json', '= 2.5.1' + gem "json", "= 2.5.1" end diff --git a/gems/commonmarker-merge/gemfiles/modular/json/truffleruby_23_0.gemfile b/gems/commonmarker-merge/gemfiles/modular/json/truffleruby_23_0.gemfile index d787a5ef4..7b2660a2b 100644 --- a/gems/commonmarker-merge/gemfiles/modular/json/truffleruby_23_0.gemfile +++ b/gems/commonmarker-merge/gemfiles/modular/json/truffleruby_23_0.gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -if RUBY_ENGINE == 'truffleruby' && RUBY_ENGINE_VERSION.start_with?('23.0') +if RUBY_ENGINE == "truffleruby" && RUBY_ENGINE_VERSION.start_with?("23.0") # TruffleRuby 23.0 ships the json default gem from its emulated MRI Ruby. - gem 'json', '= 2.6.1' + gem "json", "= 2.6.1" end diff --git a/gems/commonmarker-merge/gemfiles/modular/json/truffleruby_23_1.gemfile b/gems/commonmarker-merge/gemfiles/modular/json/truffleruby_23_1.gemfile index d78486b0e..dfa21f2e4 100644 --- a/gems/commonmarker-merge/gemfiles/modular/json/truffleruby_23_1.gemfile +++ b/gems/commonmarker-merge/gemfiles/modular/json/truffleruby_23_1.gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -if RUBY_ENGINE == 'truffleruby' && RUBY_ENGINE_VERSION.start_with?('23.1') +if RUBY_ENGINE == "truffleruby" && RUBY_ENGINE_VERSION.start_with?("23.1") # TruffleRuby 23.1 ships the json default gem from its emulated MRI Ruby. - gem 'json', '= 2.6.3' + gem "json", "= 2.6.3" end diff --git a/gems/commonmarker-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile b/gems/commonmarker-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile index e27f1bbae..42e9d9bd4 100644 --- a/gems/commonmarker-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile +++ b/gems/commonmarker-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 -gem 'mutex_m', '~> 0.2' +gem "mutex_m", "~> 0.2" diff --git a/gems/commonmarker-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile b/gems/commonmarker-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile index e27f1bbae..42e9d9bd4 100644 --- a/gems/commonmarker-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile +++ b/gems/commonmarker-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 -gem 'mutex_m', '~> 0.2' +gem "mutex_m", "~> 0.2" diff --git a/gems/commonmarker-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile b/gems/commonmarker-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile index e27f1bbae..42e9d9bd4 100644 --- a/gems/commonmarker-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile +++ b/gems/commonmarker-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 -gem 'mutex_m', '~> 0.2' +gem "mutex_m", "~> 0.2" diff --git a/gems/commonmarker-merge/gemfiles/modular/mutex_m/vHEAD.gemfile b/gems/commonmarker-merge/gemfiles/modular/mutex_m/vHEAD.gemfile index 9dac2f6cb..8af3b6fca 100644 --- a/gems/commonmarker-merge/gemfiles/modular/mutex_m/vHEAD.gemfile +++ b/gems/commonmarker-merge/gemfiles/modular/mutex_m/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 (dependency of omniauth) -gem 'mutex_m', github: 'ruby/mutex_m', branch: 'master' +gem "mutex_m", github: "ruby/mutex_m", branch: "master" diff --git a/gems/commonmarker-merge/gemfiles/modular/optional.gemfile b/gems/commonmarker-merge/gemfiles/modular/optional.gemfile index 9ea429538..80bc45196 100644 --- a/gems/commonmarker-merge/gemfiles/modular/optional.gemfile +++ b/gems/commonmarker-merge/gemfiles/modular/optional.gemfile @@ -9,8 +9,8 @@ # Optional dependencies are not depended on directly, but may be used if present. # Required for curated binstubs generated by kettle-jem install -gem 'rbs', '>= 3.0', require: false # ruby >= 3.1 +gem "rbs", ">= 3.0", require: false # ruby >= 3.1 # Required for kettle-pre-release # URL parsing with Unicode support (falls back to URI if not available) -gem 'addressable', '>= 2.8', '< 3' # ruby >= 2.2 +gem "addressable", ">= 2.8", "< 3" # ruby >= 2.2 diff --git a/gems/commonmarker-merge/gemfiles/modular/rspec.gemfile b/gems/commonmarker-merge/gemfiles/modular/rspec.gemfile index 2af210a41..72fdf8b7f 100644 --- a/gems/commonmarker-merge/gemfiles/modular/rspec.gemfile +++ b/gems/commonmarker-merge/gemfiles/modular/rspec.gemfile @@ -1,4 +1,4 @@ -gem 'rspec_junit_formatter', - github: 'pboling/rspec_junit_formatter', - branch: 'main', - ref: '9e6bcaaedd49477b62878ed568dc4ada5cc7cb5e' +gem "rspec_junit_formatter", + github: "pboling/rspec_junit_formatter", + branch: "main", + ref: "9e6bcaaedd49477b62878ed568dc4ada5cc7cb5e" diff --git a/gems/commonmarker-merge/gemfiles/modular/runtime_heads.gemfile b/gems/commonmarker-merge/gemfiles/modular/runtime_heads.gemfile index ebf17c529..02f134c7f 100644 --- a/gems/commonmarker-merge/gemfiles/modular/runtime_heads.gemfile +++ b/gems/commonmarker-merge/gemfiles/modular/runtime_heads.gemfile @@ -8,4 +8,4 @@ # Test against HEAD of runtime dependencies so we can proactively file bugs -eval_gemfile('x_std_libs/vHEAD.gemfile') +eval_gemfile("x_std_libs/vHEAD.gemfile") diff --git a/gems/commonmarker-merge/gemfiles/modular/stringio/r2/v3.0.gemfile b/gems/commonmarker-merge/gemfiles/modular/stringio/r2/v3.0.gemfile index 3616f4e3a..e85bb18ee 100644 --- a/gems/commonmarker-merge/gemfiles/modular/stringio/r2/v3.0.gemfile +++ b/gems/commonmarker-merge/gemfiles/modular/stringio/r2/v3.0.gemfile @@ -2,4 +2,4 @@ # NOT SEMVER # Version 3.0.7 dropped support for Ruby <= 2.7 # Version 3.0.0 dropped support for Ruby <= 2.4 -gem 'stringio', '>= 3.0' +gem "stringio", ">= 3.0" diff --git a/gems/commonmarker-merge/gemfiles/modular/stringio/r3/v3.0.gemfile b/gems/commonmarker-merge/gemfiles/modular/stringio/r3/v3.0.gemfile index 3616f4e3a..e85bb18ee 100644 --- a/gems/commonmarker-merge/gemfiles/modular/stringio/r3/v3.0.gemfile +++ b/gems/commonmarker-merge/gemfiles/modular/stringio/r3/v3.0.gemfile @@ -2,4 +2,4 @@ # NOT SEMVER # Version 3.0.7 dropped support for Ruby <= 2.7 # Version 3.0.0 dropped support for Ruby <= 2.4 -gem 'stringio', '>= 3.0' +gem "stringio", ">= 3.0" diff --git a/gems/commonmarker-merge/gemfiles/modular/stringio/r4/v3.0.gemfile b/gems/commonmarker-merge/gemfiles/modular/stringio/r4/v3.0.gemfile index 3616f4e3a..e85bb18ee 100644 --- a/gems/commonmarker-merge/gemfiles/modular/stringio/r4/v3.0.gemfile +++ b/gems/commonmarker-merge/gemfiles/modular/stringio/r4/v3.0.gemfile @@ -2,4 +2,4 @@ # NOT SEMVER # Version 3.0.7 dropped support for Ruby <= 2.7 # Version 3.0.0 dropped support for Ruby <= 2.4 -gem 'stringio', '>= 3.0' +gem "stringio", ">= 3.0" diff --git a/gems/commonmarker-merge/gemfiles/modular/stringio/vHEAD.gemfile b/gems/commonmarker-merge/gemfiles/modular/stringio/vHEAD.gemfile index 78f5f5d8a..5f2a74126 100644 --- a/gems/commonmarker-merge/gemfiles/modular/stringio/vHEAD.gemfile +++ b/gems/commonmarker-merge/gemfiles/modular/stringio/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 (dependency of omniauth) -gem 'stringio', github: 'ruby/stringio', branch: 'master' +gem "stringio", github: "ruby/stringio", branch: "master" diff --git a/gems/commonmarker-merge/gemfiles/modular/style.gemfile b/gems/commonmarker-merge/gemfiles/modular/style.gemfile index 4dbcc02c0..35de4dcd6 100644 --- a/gems/commonmarker-merge/gemfiles/modular/style.gemfile +++ b/gems/commonmarker-merge/gemfiles/modular/style.gemfile @@ -9,23 +9,23 @@ # Style tasks run on the latest Ruby; RuboCop-LTS selects the compatibility # rules for the configured Ruby floor independently from task dependency floors. -gem 'reek', '~> 6.5', '>= 6.5.0' +gem "reek", "~> 6.5", ">= 6.5.0" platform :mri do - gem 'appraisal2-rubocop', '~> 1.0', '>= 1.0.0', require: false - gem 'rubocop-gradual', '~> 0.4', '>= 0.4.0' - gem 'rubocop-minitest', '~> 0.40', '>= 0.40.0' - gem 'rubocop-on-rbs', '~> 2.0', '>= 2.0.0' # ruby >= 3.2.0 + gem "appraisal2-rubocop", "~> 1.0", ">= 1.0.0", require: false + gem "rubocop-gradual", "~> 0.4", ">= 0.4.0" + gem "rubocop-minitest", "~> 0.40", ">= 0.40.0" + gem "rubocop-on-rbs", "~> 2.0", ">= 2.0.0" # ruby >= 3.2.0 # gem "rubocop", "~> 1.73", ">= 1.73.2" # constrained by standard - gem 'rubocop-packaging', '~> 0.6', '>= 0.6.0' - gem 'standard', '~> 1.56', '>= 1.56.0' + gem "rubocop-packaging", "~> 0.6", ">= 0.6.0" + gem "standard", "~> 1.56", ">= 1.56.0" - if ENV.fetch('RUBOCOP_LTS_LOCAL', 'false').casecmp('false').zero? + if ENV.fetch("RUBOCOP_LTS_LOCAL", "false").casecmp("false").zero? declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) - gem 'rubocop-lts', '~> 24.2', '>= 24.2.1' unless declared_gems.include?('rubocop-lts') - gem 'rubocop-lts-rspec', '~> 1.0', '>= 1.0.5' unless declared_gems.include?('rubocop-lts-rspec') - gem 'rubocop-ruby3_2', '~> 3.0', '>= 3.0.6' unless declared_gems.include?('rubocop-ruby3_2') + gem "rubocop-lts", "~> 24.2", ">= 24.2.1" unless declared_gems.include?("rubocop-lts") + gem "rubocop-lts-rspec", "~> 1.0", ">= 1.0.5" unless declared_gems.include?("rubocop-lts-rspec") + gem "rubocop-ruby3_2", "~> 3.0", ">= 3.0.6" unless declared_gems.include?("rubocop-ruby3_2") else - eval_gemfile('style_local.gemfile') + eval_gemfile("style_local.gemfile") end end diff --git a/gems/commonmarker-merge/gemfiles/modular/style_local.gemfile b/gems/commonmarker-merge/gemfiles/modular/style_local.gemfile index 31dd7b5be..0e9d987e6 100644 --- a/gems/commonmarker-merge/gemfiles/modular/style_local.gemfile +++ b/gems/commonmarker-merge/gemfiles/modular/style_local.gemfile @@ -14,19 +14,21 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] -nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) +nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] +nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == "nomono" } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + if nomono_locked + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] + end end -Kernel.send(:gem, 'nomono', *nomono_activation_requirements) -require 'nomono/bundler' +Kernel.send(:gem, "nomono", *nomono_activation_requirements) +require "nomono/bundler" local_gems = %w[rubocop-lts rubocop-lts-rspec rubocop-ruby3_2 standard-rubocop-lts] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) @@ -36,11 +38,11 @@ local_gems_to_eval = local_gems - %w[commonmarker-merge] - declared_gems platform :mri do eval_nomono_gems( gems: local_gems_to_eval, - prefix: 'RUBOCOP_LTS', - path_env: 'RUBOCOP_LTS_LOCAL', - vendored_gems_env: 'VENDORED_GEMS', - vendor_gem_dir_env: 'VENDOR_GEM_DIR', - debug_env: 'RUBOCOP_LTS_DEBUG', - root: %w[src rubocop-lts] + prefix: "RUBOCOP_LTS", + path_env: "RUBOCOP_LTS_LOCAL", + vendored_gems_env: "VENDORED_GEMS", + vendor_gem_dir_env: "VENDOR_GEM_DIR", + debug_env: "RUBOCOP_LTS_DEBUG", + root: ["src", "rubocop-lts"] ) end diff --git a/gems/commonmarker-merge/gemfiles/modular/webrick/r4/v1.9.gemfile b/gems/commonmarker-merge/gemfiles/modular/webrick/r4/v1.9.gemfile index b1329ba84..eaab4a473 100644 --- a/gems/commonmarker-merge/gemfiles/modular/webrick/r4/v1.9.gemfile +++ b/gems/commonmarker-merge/gemfiles/modular/webrick/r4/v1.9.gemfile @@ -1 +1 @@ -gem 'webrick', '~> 1.9' +gem "webrick", "~> 1.9" diff --git a/gems/commonmarker-merge/gemfiles/modular/webrick/vHEAD.gemfile b/gems/commonmarker-merge/gemfiles/modular/webrick/vHEAD.gemfile index c7e6f81a1..8a789b634 100644 --- a/gems/commonmarker-merge/gemfiles/modular/webrick/vHEAD.gemfile +++ b/gems/commonmarker-merge/gemfiles/modular/webrick/vHEAD.gemfile @@ -1 +1 @@ -gem 'webrick', '>= 1.9' +gem "webrick", ">= 1.9" diff --git a/gems/commonmarker-merge/gemfiles/modular/x_std_libs.gemfile b/gems/commonmarker-merge/gemfiles/modular/x_std_libs.gemfile index b1f43c097..77aad43f2 100644 --- a/gems/commonmarker-merge/gemfiles/modular/x_std_libs.gemfile +++ b/gems/commonmarker-merge/gemfiles/modular/x_std_libs.gemfile @@ -1,12 +1,12 @@ ### Std Lib Extracted Gems ruby_version = Gem::Version.new(RUBY_VERSION) -if ruby_version >= Gem::Version.new('4.0') - eval_gemfile 'x_std_libs/r4/libs.gemfile' -elsif ruby_version >= Gem::Version.new('3.2') - eval_gemfile 'x_std_libs/r3/libs.gemfile' -elsif ruby_version >= Gem::Version.new('3.1') - eval_gemfile 'x_std_libs/r3.1/libs.gemfile' +if ruby_version >= Gem::Version.new("4.0") + eval_gemfile "x_std_libs/r4/libs.gemfile" +elsif ruby_version >= Gem::Version.new("3.2") + eval_gemfile "x_std_libs/r3/libs.gemfile" +elsif ruby_version >= Gem::Version.new("3.1") + eval_gemfile "x_std_libs/r3.1/libs.gemfile" else - eval_gemfile 'x_std_libs/r2/libs.gemfile' + eval_gemfile "x_std_libs/r2/libs.gemfile" end diff --git a/gems/commonmarker-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile b/gems/commonmarker-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile index 16a5e3d70..441c4f03a 100644 --- a/gems/commonmarker-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile +++ b/gems/commonmarker-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile @@ -1,3 +1,3 @@ -eval_gemfile '../../erb/r2/v3.0.gemfile' -eval_gemfile '../../mutex_m/r2/v0.3.gemfile' -eval_gemfile '../../stringio/r2/v3.0.gemfile' +eval_gemfile "../../erb/r2/v3.0.gemfile" +eval_gemfile "../../mutex_m/r2/v0.3.gemfile" +eval_gemfile "../../stringio/r2/v3.0.gemfile" diff --git a/gems/commonmarker-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile b/gems/commonmarker-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile index 220ff95c1..c293a3ddd 100644 --- a/gems/commonmarker-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile +++ b/gems/commonmarker-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile @@ -1,3 +1,3 @@ -eval_gemfile '../../erb/r3/v5.0.gemfile' -eval_gemfile '../../mutex_m/r3/v0.3.gemfile' -eval_gemfile '../../stringio/r3/v3.0.gemfile' +eval_gemfile "../../erb/r3/v5.0.gemfile" +eval_gemfile "../../mutex_m/r3/v0.3.gemfile" +eval_gemfile "../../stringio/r3/v3.0.gemfile" diff --git a/gems/commonmarker-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile b/gems/commonmarker-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile index e2f6501eb..eb5574247 100644 --- a/gems/commonmarker-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile +++ b/gems/commonmarker-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile @@ -1,6 +1,6 @@ -eval_gemfile '../../erb/r4/v5.0.gemfile' -eval_gemfile '../../mutex_m/r4/v0.3.gemfile' -eval_gemfile '../../stringio/r4/v3.0.gemfile' -eval_gemfile '../../benchmark/r4/v0.5.gemfile' -eval_gemfile '../../cgi/r4/v0.5.gemfile' -eval_gemfile '../../webrick/r4/v1.9.gemfile' +eval_gemfile "../../erb/r4/v5.0.gemfile" +eval_gemfile "../../mutex_m/r4/v0.3.gemfile" +eval_gemfile "../../stringio/r4/v3.0.gemfile" +eval_gemfile "../../benchmark/r4/v0.5.gemfile" +eval_gemfile "../../cgi/r4/v0.5.gemfile" +eval_gemfile "../../webrick/r4/v1.9.gemfile" diff --git a/gems/commonmarker-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile b/gems/commonmarker-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile index ab75cccf1..d4d5b16c9 100644 --- a/gems/commonmarker-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile +++ b/gems/commonmarker-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile @@ -1,6 +1,6 @@ -eval_gemfile '../erb/vHEAD.gemfile' -eval_gemfile '../mutex_m/vHEAD.gemfile' -eval_gemfile '../stringio/vHEAD.gemfile' -eval_gemfile '../benchmark/vHEAD.gemfile' -eval_gemfile '../cgi/vHEAD.gemfile' -eval_gemfile '../webrick/vHEAD.gemfile' +eval_gemfile "../erb/vHEAD.gemfile" +eval_gemfile "../mutex_m/vHEAD.gemfile" +eval_gemfile "../stringio/vHEAD.gemfile" +eval_gemfile "../benchmark/vHEAD.gemfile" +eval_gemfile "../cgi/vHEAD.gemfile" +eval_gemfile "../webrick/vHEAD.gemfile" diff --git a/gems/commonmarker-merge/spec/spec_helper.rb b/gems/commonmarker-merge/spec/spec_helper.rb index b9fa0a9f3..4b94ae46f 100644 --- a/gems/commonmarker-merge/spec/spec_helper.rb +++ b/gems/commonmarker-merge/spec/spec_helper.rb @@ -7,11 +7,16 @@ # NOTE: Gemfiles for non-coverage appraisals may not have kettle-soup-cover. # The rescue LoadError handles that scenario. begin - require 'kettle-soup-cover' - require 'simplecov' if Kettle::Soup::Cover::DO_COV # `.simplecov` is run here! -rescue LoadError => e + require "kettle-soup-cover" + if Kettle::Soup::Cover::DO_COV + # Requiring simplecov loads the project-local `.simplecov`. + require "simplecov" + require "kettle/soup/cover/config" + SimpleCov.start + end +rescue LoadError => error # check the error message and re-raise when unexpected - raise e unless e.message.include?('kettle') + raise error unless error.message.include?("kettle") end # External RSpec & related config diff --git a/gems/kettle-jem/Gemfile.lock b/gems/kettle-jem/Gemfile.lock index 1ceed13df..1bd86ec2b 100644 --- a/gems/kettle-jem/Gemfile.lock +++ b/gems/kettle-jem/Gemfile.lock @@ -43,6 +43,22 @@ PATH prism-merge (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr + specs: + ast-crispr (7.1.0) + ast-merge (= 7.1.0) + service_actor (~> 3.9) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git + specs: + ast-merge-git (7.1.0) + ast-merge (= 7.1.0) + json-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + PATH remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge specs: @@ -52,6 +68,13 @@ PATH tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template + specs: + ast-template (7.1.0) + ast-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + PATH remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge specs: @@ -60,6 +83,13 @@ PATH tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.14) +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge + specs: + binary-merge (7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + PATH remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge specs: @@ -84,6 +114,14 @@ PATH tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.14) +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge + specs: + go-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + PATH remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge specs: @@ -116,6 +154,22 @@ PATH markly (~> 0.9) version_gem (~> 1.1, >= 1.1.9) +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge + specs: + parslet-toml-merge (7.1.0) + toml (~> 0.3) + toml-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge + specs: + plain-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + PATH remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge specs: @@ -150,6 +204,28 @@ PATH tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge + specs: + rust-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb + specs: + smorg-rb (7.1.0) + ast-merge (= 7.1.0) + ast-merge-git (= 7.1.0) + diff-lcs (~> 1.5) + go-merge (= 7.1.0) + json-merge (= 7.1.0) + kettle-jem (= 7.1.0) + markly-merge (= 7.1.0) + plain-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + PATH remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge specs: @@ -167,6 +243,14 @@ PATH tree_sitter_language_pack (>= 1.13.2, < 2.0) version_gem (~> 1.1, >= 1.1.9) +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge + specs: + typescript-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + PATH remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge specs: @@ -175,6 +259,13 @@ PATH tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge + specs: + zip-merge (7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + GEM remote: https://gem.coop/ specs: @@ -190,10 +281,6 @@ GEM rubocop (>= 1.0) version_gem (~> 1.1, >= 1.1.14) ast (2.4.3) - ast-crispr (7.1.0) - ast-merge (= 7.1.0) - service_actor (~> 3.9) - version_gem (~> 1.1, >= 1.1.9) backports (3.25.3) benchmark (0.5.0) bigdecimal (4.1.2) @@ -507,6 +594,8 @@ GEM token-resolver (2.0.5) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.14) + toml (0.3.0) + parslet (>= 1.8.0, < 3.0.0) toml-rb (4.2.0) citrus (~> 3.0, > 3.0) racc (~> 1.7) @@ -553,11 +642,15 @@ PLATFORMS DEPENDENCIES appraisal2 (~> 3.2, >= 3.2.0) appraisal2-rubocop (~> 1.0, >= 1.0.0) + ast-crispr! ast-crispr-markdown-markly! ast-crispr-ruby-prism! ast-merge! + ast-merge-git! + ast-template! bash-merge! benchmark (~> 0.5, >= 0.5.0) + binary-merge! bundler-audit (~> 0.9.3) cgi (~> 0.5) citrus-toml-merge! @@ -567,6 +660,7 @@ DEPENDENCIES erb (~> 6.0, >= 6.0.6) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.4) + go-merge! irb (~> 1.17) json-merge! kettle-drift (~> 1.0, >= 1.0.6) @@ -580,6 +674,8 @@ DEPENDENCIES markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) + parslet-toml-merge! + plain-merge! prism-merge! psych-merge! rake (~> 13.0) @@ -596,6 +692,8 @@ DEPENDENCIES rubocop-ruby3_2 (~> 3.0, >= 3.0.6) ruby-merge! ruby-progressbar (~> 1.13) + rust-merge! + smorg-rb! standard (~> 1.56, >= 1.56.0) stone_checksums (~> 1.0, >= 1.0.6) stringio (>= 3.0) @@ -603,6 +701,7 @@ DEPENDENCIES tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) turbo_tests2 (~> 3.2, >= 3.2.0) + typescript-merge! webrick (~> 1.9) yaml-converter (~> 0.2, >= 0.2.3) yaml-merge! @@ -612,6 +711,7 @@ DEPENDENCIES yard-relative_markdown_links (~> 0.6) yard-timekeeper (~> 0.2, >= 0.2.4) yard-yaml (~> 0.2, >= 0.2.3) + zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af @@ -623,10 +723,13 @@ CHECKSUMS ast-crispr-markdown-markly (7.1.0) ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) + ast-merge-git (7.1.0) + ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd + binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 @@ -653,16 +756,17 @@ CHECKSUMS gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f + go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 json-merge (7.1.0) - kettle-dev (2.3.8) - kettle-drift (1.0.6) + kettle-dev (2.3.8) sha256=9d716ff21c660a730cb4e8d41e2e2f0630a28167a354b6e2924e242102aef72c + kettle-drift (1.0.6) sha256=46eda08fa4411d1f3c6682a95eef1c9df4e94611b3949f49d4c7b43c0ed356a3 kettle-jem (7.1.0) kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f - kettle-soup-cover (3.0.3) + kettle-soup-cover (3.0.3) sha256=5919649be35690e4580299a41ac7c44a9548a7ca38561ffdd3c683c9d63e6f9b kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa @@ -683,6 +787,8 @@ CHECKSUMS parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 + parslet-toml-merge (7.1.0) + plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 @@ -733,6 +839,7 @@ CHECKSUMS ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 + rust-merge (7.1.0) service_actor (3.9.4) sha256=e63b523630b9a7e62959b2a90113b08d2565b5de9c148557b281ef847c9539ce silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 @@ -740,6 +847,7 @@ CHECKSUMS simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed + smorg-rb (7.1.0) sorbet-runtime (0.6.13347) sha256=54e7221d9f4b63f58aec79f3043752a9ba7810347c6ae0d903531591cc2d5f01 standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b @@ -754,12 +862,14 @@ CHECKSUMS timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.5) sha256=b852f924287ffb58a440856e862b056c8ad97e74b4b2526cee43e0771f40c25c + toml (0.3.0) sha256=0a91d0f76a9036e84e44f95693b12f58d358c1df3ac8e3b5271f2056ecc6e4b9 toml-merge (7.1.0) toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 + typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 @@ -773,6 +883,7 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 + zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH diff --git a/gems/kramdown-merge/.kettle-drift.lock b/gems/kramdown-merge/.kettle-drift.lock index bf85fa76f..9a486b4b3 100644 --- a/gems/kramdown-merge/.kettle-drift.lock +++ b/gems/kramdown-merge/.kettle-drift.lock @@ -1,10 +1,74 @@ { + "(direct_sibling_local ||\nENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?)": [ + { + "file": "Gemfile", + "lines": [ + 79, + 119 + ] + } + ], + ".find { |spec| spec.name == 'nomono' }\nnomono_locked = nomono_locked_spec &&": [ + { + "file": "Gemfile", + "lines": [ + 90, + 130 + ] + } + ], + "ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?)\ndirect_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV')": [ + { + "file": "Gemfile", + "lines": [ + 80, + 120 + ] + } + ], + "Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version)\nnomono_activation_requirements = [\"= #{nomono_locked_spec.version}\"] if nomono_locked": [ + { + "file": "Gemfile", + "lines": [ + 92, + 132 + ] + } + ], + "Kernel.send(:gem, 'nomono', *nomono_activation_requirements)\nrequire 'nomono/bundler'": [ + { + "file": "Gemfile", + "lines": [ + 95, + 135 + ] + } + ], + "direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV')\ndirect_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil)": [ + { + "file": "Gemfile", + "lines": [ + 81, + 121 + ] + } + ], "eval_nomono_gems(\ngems: direct_sibling_gems,": [ { "file": "Gemfile", "lines": [ 59, - 99 + 99, + 139 + ] + } + ], + "gems: direct_sibling_gems,\nprefix: 'STRUCTUREDMERGE',": [ + { + "file": "Gemfile", + "lines": [ + 100, + 140 ] } ], @@ -13,7 +77,17 @@ "file": "Gemfile", "lines": [ 42, - 86 + 86, + 126 + ] + } + ], + "if direct_sibling_dev_was_set\nENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original": [ + { + "file": "Gemfile", + "lines": [ + 109, + 149 ] } ], @@ -22,7 +96,8 @@ "file": "Gemfile", "lines": [ 34, - 78 + 78, + 118 ] } ], @@ -31,7 +106,17 @@ "file": "Gemfile", "lines": [ 68, - 108 + 108, + 148 + ] + } + ], + "nomono_activation_requirements = nomono_requirements\nnomono_lockfile = File.expand_path('Gemfile.lock', __dir__)": [ + { + "file": "Gemfile", + "lines": [ + 84, + 124 ] } ], @@ -40,7 +125,8 @@ "file": "Gemfile", "lines": [ 47, - 91 + 91, + 131 ] } ], @@ -49,7 +135,53 @@ "file": "Gemfile", "lines": [ 43, - 87 + 87, + 127 + ] + } + ], + "nomono_lockfile = File.expand_path('Gemfile.lock', __dir__)\nif File.file?(nomono_lockfile)": [ + { + "file": "Gemfile", + "lines": [ + 85, + 125 + ] + } + ], + "path_env: 'STRUCTUREDMERGE_DEV',\nroot: %w[src my structuredmerge]": [ + { + "file": "Gemfile", + "lines": [ + 102, + 142 + ] + } + ], + "prefix: 'STRUCTUREDMERGE',\npath_env: 'STRUCTUREDMERGE_DEV',": [ + { + "file": "Gemfile", + "lines": [ + 101, + 141 + ] + } + ], + "require 'nomono/bundler'\nENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local": [ + { + "file": "Gemfile", + "lines": [ + 96, + 136 + ] + } + ], + "rescue LoadError\nwarn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.'": [ + { + "file": "Gemfile", + "lines": [ + 105, + 145 ] } ] diff --git a/gems/kramdown-merge/Gemfile b/gems/kramdown-merge/Gemfile index 8447324a3..8fe735399 100644 --- a/gems/kramdown-merge/Gemfile +++ b/gems/kramdown-merge/Gemfile @@ -6,7 +6,7 @@ # kettle-jem will then preserve content between those markers across template runs. # kettle-jem:unfreeze -source 'https://gem.coop' +source "https://gem.coop" git_source(:codeberg) { |repo_name| "https://codeberg.org/#{repo_name}" } git_source(:gitlab) { |repo_name| "https://gitlab.com/#{repo_name}" } @@ -19,17 +19,61 @@ git_source(:gitlab) { |repo_name| "https://gitlab.com/#{repo_name}" } gemspec # Local workspace dependency wiring for *_local.gemfile overrides -nomono_requirements = ['~> 1.0', '>= 1.0.8'] -gem 'nomono', *nomono_requirements, require: false # ruby >= 2.2 +nomono_requirements = ["~> 1.0", ">= 1.0.8"] +gem "nomono", *nomono_requirements, require: false # ruby >= 2.2 # Direct sibling dependencies (env-switched via STRUCTUREDMERGE_DEV) direct_sibling_gems = %w[ markdown-merge ] -direct_sibling_dev = ENV.fetch('STRUCTUREDMERGE_DEV', '') +direct_sibling_dev = ENV.fetch("STRUCTUREDMERGE_DEV", "") direct_sibling_local = !direct_sibling_dev.empty? && !%w[false 0 no off].include?(direct_sibling_dev.downcase) -direct_sibling_templating = ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? +direct_sibling_templating = ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? + +if direct_sibling_gems.any? && + (direct_sibling_local || + ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero?) + direct_sibling_dev_was_set = ENV.key?("STRUCTUREDMERGE_DEV") + direct_sibling_dev_original = ENV.fetch("STRUCTUREDMERGE_DEV", nil) + begin + nomono_activation_requirements = nomono_requirements + nomono_lockfile = File.expand_path("Gemfile.lock", __dir__) + if File.file?(nomono_lockfile) + nomono_locked_spec = Bundler::LockfileParser + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == "nomono" } + nomono_locked = nomono_locked_spec && + Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) + if nomono_locked + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] + end + end + Kernel.send(:gem, "nomono", *nomono_activation_requirements) + require "nomono/bundler" + if direct_sibling_templating && !direct_sibling_local + ENV["STRUCTUREDMERGE_DEV"] = File.expand_path("..", __dir__) + end + + eval_nomono_gems( + gems: direct_sibling_gems, + prefix: "STRUCTUREDMERGE", + path_env: "STRUCTUREDMERGE_DEV", + root: ["src", "my", "structuredmerge"] + ) + rescue LoadError + warn "Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies." + ensure + if direct_sibling_templating && !direct_sibling_local + if direct_sibling_dev_was_set + ENV["STRUCTUREDMERGE_DEV"] = direct_sibling_dev_original + else + ENV.delete("STRUCTUREDMERGE_DEV") + end + end + end +end if direct_sibling_gems.any? && (direct_sibling_local || @@ -112,28 +156,28 @@ if direct_sibling_gems.any? && end # Use released TSLP with the Ruby ABI platform-gem fix. -gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' +gem "tree_sitter_language_pack", "~> 1.13", ">= 1.13.3" # Templating (env-switched: STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local paths) -eval_gemfile 'gemfiles/modular/templating.gemfile' if ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? +eval_gemfile "gemfiles/modular/templating.gemfile" if ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? # Debugging -eval_gemfile 'gemfiles/modular/debug.gemfile' +eval_gemfile "gemfiles/modular/debug.gemfile" # Code Coverage (env-switched: KETTLE_DEV_DEV=true for local paths) -eval_gemfile 'gemfiles/modular/coverage.gemfile' +eval_gemfile "gemfiles/modular/coverage.gemfile" # Linting -eval_gemfile 'gemfiles/modular/style.gemfile' +eval_gemfile "gemfiles/modular/style.gemfile" # Documentation -eval_gemfile 'gemfiles/modular/documentation.gemfile' +eval_gemfile "gemfiles/modular/documentation.gemfile" # Optional -eval_gemfile 'gemfiles/modular/optional.gemfile' +eval_gemfile "gemfiles/modular/optional.gemfile" ### Std Lib Extracted Gems -eval_gemfile 'gemfiles/modular/x_std_libs.gemfile' +eval_gemfile "gemfiles/modular/x_std_libs.gemfile" # See unlocked_deps appraisal for more details on irb inclusion -gem 'irb', '~> 1.17' # ruby >= 2.7 +gem "irb", "~> 1.17" # ruby >= 2.7 diff --git a/gems/kramdown-merge/Gemfile.lock b/gems/kramdown-merge/Gemfile.lock index 80d936bdf..75357a639 100644 --- a/gems/kramdown-merge/Gemfile.lock +++ b/gems/kramdown-merge/Gemfile.lock @@ -555,7 +555,7 @@ GEM simplecov (>= 0.4.1) simplecov_lcov_formatter (0.9.0) simplecov (>= 0.18) - sorbet-runtime (0.6.13347) + sorbet-runtime (0.6.13351) standard (1.56.0) language_server-protocol (~> 3.17.0.2) lint_roller (~> 1.0) @@ -737,7 +737,7 @@ CHECKSUMS citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 - commonmarker (2.9.0-x86_64-linux) sha256=8cfe92970eef585a19ddf6613224b91cab64d6029834661bda801f877c9c7f43 + commonmarker (2.9.0-x86_64-linux) commonmarker-merge (7.1.0) concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 @@ -765,7 +765,7 @@ CHECKSUMS json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 json-merge (7.1.0) kettle-dev (2.3.8) sha256=9d716ff21c660a730cb4e8d41e2e2f0630a28167a354b6e2924e242102aef72c - kettle-drift (1.0.6) sha256=46eda08fa4411d1f3c6682a95eef1c9df4e94611b3949f49d4c7b43c0ed356a3 + kettle-drift (1.0.6) kettle-jem (7.1.0) kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f kettle-soup-cover (3.0.4) @@ -778,7 +778,7 @@ CHECKSUMS lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 markdown-merge (7.1.0) - markly (0.16.0) sha256=6f70d79e385b1efc9e171f74c81628826259039fe6c778e03c3924c71dac5511 + markly (0.16.0) markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-x86_64-linux-gnu) sha256=379fae440b28915e3f19d752ce2dcf8465ed2b2fbefd2a7ca0dd497bc981a06a @@ -842,7 +842,7 @@ CHECKSUMS ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 rust-merge (7.1.0) - service_actor (3.9.4) sha256=e63b523630b9a7e62959b2a90113b08d2565b5de9c148557b281ef847c9539ce + service_actor (3.9.4) silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea @@ -850,7 +850,7 @@ CHECKSUMS simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed smorg-rb (7.1.0) - sorbet-runtime (0.6.13347) sha256=54e7221d9f4b63f58aec79f3043752a9ba7810347c6ae0d903531591cc2d5f01 + sorbet-runtime (0.6.13351) sha256=f8fee17c6e3edf835dc6823d26afb9a7c8969c6710d1fabe2fb43f4e0c15c64f standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b standard-performance (1.9.0) sha256=49483d31be448292951d80e5e67cdcb576c2502103c7b40aec6f1b6e9c88e3f2 @@ -864,9 +864,9 @@ CHECKSUMS timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.5) sha256=b852f924287ffb58a440856e862b056c8ad97e74b4b2526cee43e0771f40c25c - toml (0.3.0) sha256=0a91d0f76a9036e84e44f95693b12f58d358c1df3ac8e3b5271f2056ecc6e4b9 + toml (0.3.0) toml-merge (7.1.0) - toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 + toml-rb (4.2.0) tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f diff --git a/gems/kramdown-merge/Rakefile b/gems/kramdown-merge/Rakefile index 794a96e57..98bb2ef06 100644 --- a/gems/kramdown-merge/Rakefile +++ b/gems/kramdown-merge/Rakefile @@ -130,23 +130,23 @@ end ### DUPLICATE DRIFT TASKS begin - require 'kettle/drift' + require "kettle/drift" Kettle::Drift.install_tasks rescue LoadError - desc('(stub) kettle:drift:check is unavailable') - task('kettle:drift:check') do + desc("(stub) kettle:drift:check is unavailable") + task("kettle:drift:check") do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc('(stub) kettle:drift:update is unavailable') - task('kettle:drift:update') do + desc("(stub) kettle:drift:update is unavailable") + task("kettle:drift:update") do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc('(stub) kettle:drift:force_update is unavailable') - task('kettle:drift:force_update') do + desc("(stub) kettle:drift:force_update is unavailable") + task("kettle:drift:force_update") do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc('(stub) kettle:drift is unavailable') - task('kettle:drift' => 'kettle:drift:update') + desc("(stub) kettle:drift is unavailable") + task("kettle:drift" => "kettle:drift:update") end ### TEMPLATING TASKS diff --git a/gems/kramdown-merge/gemfiles/modular/templating.gemfile b/gems/kramdown-merge/gemfiles/modular/templating.gemfile index a672de184..47138ffbb 100644 --- a/gems/kramdown-merge/gemfiles/modular/templating.gemfile +++ b/gems/kramdown-merge/gemfiles/modular/templating.gemfile @@ -1,18 +1,18 @@ # frozen_string_literal: true -structuredmerge_remote = ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false').zero? -kettle_remote = ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? +structuredmerge_remote = ENV.fetch("STRUCTUREDMERGE_DEV", "false").casecmp("false").zero? +kettle_remote = ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false").zero? if structuredmerge_remote # Parser dependencies for released installs. - gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' + gem "tree_sitter_language_pack", "~> 1.13", ">= 1.13.3" # Merge recipes for released installs. - gem 'kettle-jem', '>= 7.0' + gem "kettle-jem", ">= 7.0" end if kettle_remote # Template/plugin checks for released installs. - gem 'kettle-drift', '~> 1.0', '>= 1.0.6', require: false + gem "kettle-drift", "~> 1.0", ">= 1.0.6", require: false end # Set STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local development with path-based dependencies. @@ -21,4 +21,4 @@ end # # Set KETTLE_DEV_DEV=/path/to/my for local development with Kettle plugin gems. # When false (default / CI), released Kettle plugin gems are used. -eval_gemfile 'templating_local.gemfile' unless structuredmerge_remote && kettle_remote +eval_gemfile "templating_local.gemfile" unless structuredmerge_remote && kettle_remote diff --git a/gems/kramdown-merge/gemfiles/modular/templating_local.gemfile b/gems/kramdown-merge/gemfiles/modular/templating_local.gemfile index ffde8f59c..c405bd66e 100644 --- a/gems/kramdown-merge/gemfiles/modular/templating_local.gemfile +++ b/gems/kramdown-merge/gemfiles/modular/templating_local.gemfile @@ -12,19 +12,21 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] -nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) +nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] +nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == "nomono" } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + if nomono_locked + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] + end end -Kernel.send(:gem, 'nomono', *nomono_activation_requirements) -require 'nomono/bundler' +Kernel.send(:gem, "nomono", *nomono_activation_requirements) +require "nomono/bundler" structuredmerge_local_gems = %w[ tree_haver @@ -67,25 +69,25 @@ structuredmerge_local_gems_to_eval = structuredmerge_local_gems - %w[kramdown-me kettle_dev_local_gems_to_eval = kettle_dev_local_gems - %w[kramdown-merge] - declared_gems platform :mri do - if ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false') != 0 + if ENV.fetch("STRUCTUREDMERGE_DEV", "false").casecmp("false") != 0 eval_nomono_gems( gems: structuredmerge_local_gems_to_eval, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - vendored_gems_env: 'VENDORED_GEMS', - vendor_gem_dir_env: 'VENDOR_GEM_DIR', - debug_env: 'STRUCTUREDMERGE_DEBUG' + prefix: "STRUCTUREDMERGE", + path_env: "STRUCTUREDMERGE_DEV", + vendored_gems_env: "VENDORED_GEMS", + vendor_gem_dir_env: "VENDOR_GEM_DIR", + debug_env: "STRUCTUREDMERGE_DEBUG" ) end - if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false') != 0 + if ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false") != 0 eval_nomono_gems( gems: kettle_dev_local_gems_to_eval, - prefix: 'KETTLE_DEV', - path_env: 'KETTLE_DEV_DEV', - vendored_gems_env: 'VENDORED_GEMS', - vendor_gem_dir_env: 'VENDOR_GEM_DIR', - debug_env: 'KETTLE_DEV_DEBUG' + prefix: "KETTLE_DEV", + path_env: "KETTLE_DEV_DEV", + vendored_gems_env: "VENDORED_GEMS", + vendor_gem_dir_env: "VENDOR_GEM_DIR", + debug_env: "KETTLE_DEV_DEBUG" ) end end diff --git a/gems/kramdown-merge/lib/kramdown/merge/version.rb b/gems/kramdown-merge/lib/kramdown/merge/version.rb index feddb4113..058dbe0e1 100644 --- a/gems/kramdown-merge/lib/kramdown/merge/version.rb +++ b/gems/kramdown-merge/lib/kramdown/merge/version.rb @@ -3,7 +3,7 @@ module Kramdown module Merge module Version - VERSION = '7.1.0' + VERSION = "7.1.0" end VERSION = Version::VERSION # Traditional Constant Location end diff --git a/gems/parslet-toml-merge/.rubocop_gradual.lock b/gems/parslet-toml-merge/.rubocop_gradual.lock index d241d520e..a6d183706 100644 --- a/gems/parslet-toml-merge/.rubocop_gradual.lock +++ b/gems/parslet-toml-merge/.rubocop_gradual.lock @@ -1,5 +1,5 @@ { - ".simplecov:4058687342": [ + ".simplecov:2512921077": [ [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] ], "Rakefile:1304849613": [ diff --git a/gems/parslet-toml-merge/.simplecov b/gems/parslet-toml-merge/.simplecov index 9b832be32..0ee887355 100644 --- a/gems/parslet-toml-merge/.simplecov +++ b/gems/parslet-toml-merge/.simplecov @@ -10,5 +10,5 @@ # If the values for minimum coverage need to change, they should be changed both there, # and in 2 places in .github/workflows/coverage.yml. SimpleCov.configure do - cover "lib/**/*.rb", "lib/**/*.rake", "exe/*.rb" + cover 'lib/**/*.rb', 'lib/**/*.rake', 'exe/*.rb' end diff --git a/gems/parslet-toml-merge/Gemfile b/gems/parslet-toml-merge/Gemfile index aa68c2614..aec30565c 100644 --- a/gems/parslet-toml-merge/Gemfile +++ b/gems/parslet-toml-merge/Gemfile @@ -6,7 +6,7 @@ # kettle-jem will then preserve content between those markers across template runs. # kettle-jem:unfreeze -source "https://gem.coop" +source 'https://gem.coop' git_source(:codeberg) { |repo_name| "https://codeberg.org/#{repo_name}" } git_source(:gitlab) { |repo_name| "https://gitlab.com/#{repo_name}" } @@ -19,57 +19,53 @@ git_source(:gitlab) { |repo_name| "https://gitlab.com/#{repo_name}" } gemspec # Local workspace dependency wiring for *_local.gemfile overrides -nomono_requirements = ["~> 1.0", ">= 1.0.8"] -gem "nomono", *nomono_requirements, require: false # ruby >= 2.2 +nomono_requirements = ['~> 1.0', '>= 1.0.8'] +gem 'nomono', *nomono_requirements, require: false # ruby >= 2.2 # Direct sibling dependencies (env-switched via STRUCTUREDMERGE_DEV) direct_sibling_gems = %w[ toml-merge ] -direct_sibling_dev = ENV.fetch("STRUCTUREDMERGE_DEV", "") +direct_sibling_dev = ENV.fetch('STRUCTUREDMERGE_DEV', '') direct_sibling_local = !direct_sibling_dev.empty? && !%w[false 0 no off].include?(direct_sibling_dev.downcase) -direct_sibling_templating = ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? +direct_sibling_templating = ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero?) - direct_sibling_dev_was_set = ENV.key?("STRUCTUREDMERGE_DEV") - direct_sibling_dev_original = ENV.fetch("STRUCTUREDMERGE_DEV", nil) + (direct_sibling_local || + ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) + direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') + direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) begin nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path("Gemfile.lock", __dir__) + nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == "nomono" } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - if nomono_locked - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] - end - end - Kernel.send(:gem, "nomono", *nomono_activation_requirements) - require "nomono/bundler" - if direct_sibling_templating && !direct_sibling_local - ENV["STRUCTUREDMERGE_DEV"] = File.expand_path("..", __dir__) + Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked end + Kernel.send(:gem, 'nomono', *nomono_activation_requirements) + require 'nomono/bundler' + ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local eval_nomono_gems( gems: direct_sibling_gems, - prefix: "STRUCTUREDMERGE", - path_env: "STRUCTUREDMERGE_DEV", - root: ["src", "my", "structuredmerge"] + prefix: 'STRUCTUREDMERGE', + path_env: 'STRUCTUREDMERGE_DEV', + root: %w[src my structuredmerge] ) rescue LoadError - warn "Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies." + warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' ensure if direct_sibling_templating && !direct_sibling_local if direct_sibling_dev_was_set - ENV["STRUCTUREDMERGE_DEV"] = direct_sibling_dev_original + ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original else - ENV.delete("STRUCTUREDMERGE_DEV") + ENV.delete('STRUCTUREDMERGE_DEV') end end end @@ -156,28 +152,28 @@ if direct_sibling_gems.any? && end # Use released TSLP with the Ruby ABI platform-gem fix. -gem "tree_sitter_language_pack", "~> 1.13", ">= 1.13.3" +gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' # Templating (env-switched: STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local paths) -eval_gemfile "gemfiles/modular/templating.gemfile" if ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? +eval_gemfile 'gemfiles/modular/templating.gemfile' if ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? # Debugging -eval_gemfile "gemfiles/modular/debug.gemfile" +eval_gemfile 'gemfiles/modular/debug.gemfile' # Code Coverage (env-switched: KETTLE_DEV_DEV=true for local paths) -eval_gemfile "gemfiles/modular/coverage.gemfile" +eval_gemfile 'gemfiles/modular/coverage.gemfile' # Linting -eval_gemfile "gemfiles/modular/style.gemfile" +eval_gemfile 'gemfiles/modular/style.gemfile' # Documentation -eval_gemfile "gemfiles/modular/documentation.gemfile" +eval_gemfile 'gemfiles/modular/documentation.gemfile' # Optional -eval_gemfile "gemfiles/modular/optional.gemfile" +eval_gemfile 'gemfiles/modular/optional.gemfile' ### Std Lib Extracted Gems -eval_gemfile "gemfiles/modular/x_std_libs.gemfile" +eval_gemfile 'gemfiles/modular/x_std_libs.gemfile' # See unlocked_deps appraisal for more details on irb inclusion -gem "irb", "~> 1.17" # ruby >= 2.7 +gem 'irb', '~> 1.17' # ruby >= 2.7 diff --git a/gems/parslet-toml-merge/Gemfile.lock b/gems/parslet-toml-merge/Gemfile.lock index bc9a9f48a..1a572b8e1 100644 --- a/gems/parslet-toml-merge/Gemfile.lock +++ b/gems/parslet-toml-merge/Gemfile.lock @@ -7,282 +7,13 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly - specs: - ast-crispr-markdown-markly (7.1.0) - ast-crispr (= 7.1.0) - markly-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism - specs: - ast-crispr-ruby-prism (7.1.0) - ast-crispr (= 7.1.0) - prism-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr - specs: - ast-crispr (7.1.0) - ast-merge (= 7.1.0) - service_actor (~> 3.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git - specs: - ast-merge-git (7.1.0) - ast-merge (= 7.1.0) - json-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge - specs: - ast-merge (7.1.0) - benchmark - token-resolver (~> 2.0, >= 2.0.4) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template - specs: - ast-template (7.1.0) - ast-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge - specs: - bash-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge - specs: - binary-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge - specs: - citrus-toml-merge (7.1.0) - toml-merge (= 7.1.0) - toml-rb (~> 4.1) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge - specs: - commonmarker-merge (7.1.0) - commonmarker (~> 2.2) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge - specs: - dotenv-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge - specs: - go-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge - specs: - json-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem - specs: - kettle-jem (7.1.0) - addressable (>= 2.8, < 3) - ast-crispr-markdown-markly (= 7.1.0) - ast-crispr-ruby-prism (= 7.1.0) - ast-merge (= 7.1.0) - bash-merge (= 7.1.0) - citrus-toml-merge (= 7.1.0) - commonmarker-merge (= 7.1.0) - dotenv-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-dev (~> 2.3, >= 2.3.5) - kettle-rb (~> 0.1, >= 0.1.4) - kramdown-merge (= 7.1.0) - markdown-merge (= 7.1.0) - markly-merge (= 7.1.0) - prism-merge (= 7.1.0) - psych-merge (= 7.1.0) - rbs (>= 3.10) - rbs-merge (= 7.1.0) - ruby-merge (= 7.1.0) - token-resolver (~> 2.0, >= 2.0.4) - toml-merge (= 7.1.0) - toml-rb (~> 4.2) - tree_haver (= 7.1.0) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge - specs: - kramdown-merge (7.1.0) - kramdown (~> 2.5) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge - specs: - markdown-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge - specs: - markly-merge (7.1.0) - markdown-merge (= 7.1.0) - markly (~> 0.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge - specs: - plain-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge - specs: - prism-merge (7.1.0) - prism (~> 1.6) - ruby-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge - specs: - psych-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge - specs: - rbs-merge (7.1.0) - ast-merge (= 7.1.0) - rbs (>= 3.10) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge - specs: - ruby-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge - specs: - rust-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb - specs: - smorg-rb (7.1.0) - ast-merge (= 7.1.0) - ast-merge-git (= 7.1.0) - diff-lcs (~> 1.5) - go-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-jem (= 7.1.0) - markly-merge (= 7.1.0) - plain-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/toml-merge specs: toml-merge (7.1.0) ast-merge (= 7.1.0) tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver - specs: - tree_haver (7.1.0) - citrus (~> 3.0) - parslet (~> 2.0) - tree_sitter_language_pack (>= 1.13.2, < 2.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge - specs: - typescript-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge - specs: - yaml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge - specs: - zip-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /var/home/pboling/src/my/kettle-dev/kettle-drift - specs: - kettle-drift (1.0.6) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /var/home/pboling/src/my/kettle-dev/kettle-soup-cover - specs: - kettle-soup-cover (3.0.4) - kettle-wash (~> 0.1, >= 0.1.0) - simplecov (>= 1.0) - simplecov-cobertura (>= 4.0) - simplecov-console (~> 0.9, >= 0.9.5) - simplecov-rcov (~> 0.3, >= 0.3.7) - simplecov_lcov_formatter (~> 0.9, >= 0.9.0) - GEM remote: https://gem.coop/ specs: @@ -298,6 +29,11 @@ GEM rubocop (>= 1.0) version_gem (~> 1.1, >= 1.1.14) ast (2.4.3) + ast-merge (7.1.0) + benchmark + token-resolver (~> 2.0, >= 2.0.4) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) backports (3.25.3) benchmark (0.5.0) bigdecimal (4.1.2) @@ -307,7 +43,6 @@ GEM cgi (0.5.2) citrus (3.0.2) cmdparse (3.0.7) - commonmarker (2.9.0-x86_64-linux) concurrent-ruby (1.3.8) date (3.5.1) debug (1.11.1) @@ -365,12 +100,19 @@ GEM rdoc (>= 4.0.0) reline (>= 0.4.2) json (2.21.1) - kettle-dev (2.3.8) + kettle-dev (2.3.9) emoji_regex (>= 15.0) kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) kettle-rb (0.1.5) + kettle-soup-cover (3.0.4) + kettle-wash (~> 0.1, >= 0.1.0) + simplecov (>= 1.0) + simplecov-cobertura (>= 4.0) + simplecov-console (~> 0.9, >= 0.9.5) + simplecov-rcov (~> 0.3, >= 0.3.7) + simplecov_lcov_formatter (~> 0.9, >= 0.9.0) kettle-test (2.0.12) appraisal2 (~> 3.0, >= 3.0.6) backports (~> 3.0) @@ -391,7 +133,6 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) - markly (0.16.0) mutex_m (0.3.0) nokogiri (1.19.4-x86_64-linux-gnu) racc (~> 1.4) @@ -546,8 +287,6 @@ GEM ruby-progressbar (1.13.0) ruby_engine (2.0.3) ruby_version (1.0.3) - service_actor (3.9.4) - zeitwerk (>= 1.0) silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) @@ -604,9 +343,11 @@ GEM version_gem (~> 1.1, >= 1.1.14) toml (0.3.0) parslet (>= 1.8.0, < 3.0.0) - toml-rb (4.2.0) - citrus (~> 3.0, > 3.0) - racc (~> 1.7) + tree_haver (7.1.0) + citrus (~> 3.0) + parslet (~> 2.0) + tree_sitter_language_pack (>= 1.13.2, < 2.0) + version_gem (~> 1.1, >= 1.1.9) tree_sitter_language_pack (1.13.3-x86_64-linux) sorbet-runtime (~> 0.5) tsort (0.2.0) @@ -652,46 +393,24 @@ DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) appraisal2-rubocop (~> 1.0, >= 1.0.0) - ast-crispr! - ast-crispr-markdown-markly! - ast-crispr-ruby-prism! - ast-merge! - ast-merge-git! - ast-template! - bash-merge! benchmark (~> 0.5, >= 0.5.0) - binary-merge! bundler-audit (~> 0.9.3) cgi (~> 0.5) - citrus-toml-merge! - commonmarker-merge! debug (>= 1.1) - dotenv-merge! erb (~> 6.0, >= 6.0.6) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.0) - go-merge! irb (~> 1.17) - json-merge! kettle-dev (~> 2.0, >= 2.2.25) - kettle-drift! - kettle-jem! - kettle-soup-cover! + kettle-soup-cover (~> 3.0, >= 3.0.3) kettle-test (~> 2.0, >= 2.0.9) kramdown (~> 2.5, >= 2.5.2) - kramdown-merge! kramdown-parser-gfm (~> 1.1) - markdown-merge! - markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) parslet-toml-merge! - plain-merge! - prism-merge! - psych-merge! rake (~> 13.0) rbs (>= 3.0) - rbs-merge! rdoc (~> 6.11) reek (~> 6.5, >= 6.5.0) require_bench (~> 1.0, >= 1.0.4) @@ -702,27 +421,20 @@ DEPENDENCIES rubocop-on-rbs (~> 2.0, >= 2.0.0) rubocop-packaging (~> 0.6, >= 0.6.0) rubocop-ruby3_2 (~> 3.0, >= 3.0.6) - ruby-merge! ruby-progressbar (~> 1.13) - rust-merge! - smorg-rb! standard (~> 1.56, >= 1.56.0) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) toml-merge! - tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) - typescript-merge! webrick (~> 1.9) yaml-converter (~> 0.2, >= 0.2.3) - yaml-merge! yard (~> 0.9, >= 0.9.45) yard-fence (~> 0.9, >= 0.9.6) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) yard-timekeeper (~> 0.2, >= 0.2.4) yard-yaml (~> 0.2, >= 0.2.3) - zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af @@ -730,31 +442,20 @@ CHECKSUMS appraisal2 (3.2.0) sha256=ccd0b767ac4060cd7af6d16747459b6990f49c39c7b4fb1f7d1146b1e97c492f appraisal2-rubocop (1.0.0) sha256=b71410fbb014befda5340605a605b7f6f3f012739baf0acc5b4351b592c3258d ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 - ast-crispr (7.1.0) - ast-crispr-markdown-markly (7.1.0) - ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) - ast-merge-git (7.1.0) - ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 - bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd - binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 - citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 - commonmarker (2.9.0-x86_64-linux) sha256=8cfe92970eef585a19ddf6613224b91cab64d6029834661bda801f877c9c7f43 - commonmarker-merge (7.1.0) concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 - dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -767,28 +468,20 @@ CHECKSUMS gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f - go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 - json-merge (7.1.0) - kettle-dev (2.3.8) sha256=9d716ff21c660a730cb4e8d41e2e2f0630a28167a354b6e2924e242102aef72c - kettle-drift (1.0.6) - kettle-jem (7.1.0) + kettle-dev (2.3.9) kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f kettle-soup-cover (3.0.4) kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa - kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 - markdown-merge (7.1.0) - markly (0.16.0) sha256=6f70d79e385b1efc9e171f74c81628826259039fe6c778e03c3924c71dac5511 - markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-x86_64-linux-gnu) sha256=379fae440b28915e3f19d752ce2dcf8465ed2b2fbefd2a7ca0dd497bc981a06a nomono (1.0.9) @@ -799,19 +492,15 @@ CHECKSUMS parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 parslet-toml-merge (7.1.0) - plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 - prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 - psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 - rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb @@ -846,19 +535,15 @@ CHECKSUMS rubocop-rspec_rails (2.32.0) sha256=4a0d641c72f6ebb957534f539d9d0a62c47abd8ce0d0aeee1ef4701e892a9100 rubocop-ruby3_2 (3.0.7) sha256=f53dd6d286fb05186214fc6ec116783e7f837030918e8931c05de773e98f8466 rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 - ruby-merge (7.1.0) ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 - rust-merge (7.1.0) - service_actor (3.9.4) sha256=e63b523630b9a7e62959b2a90113b08d2565b5de9c148557b281ef847c9539ce silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed - smorg-rb (7.1.0) sorbet-runtime (0.6.13351) sha256=f8fee17c6e3edf835dc6823d26afb9a7c8969c6710d1fabe2fb43f4e0c15c64f standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b @@ -875,18 +560,15 @@ CHECKSUMS token-resolver (2.0.5) sha256=b852f924287ffb58a440856e862b056c8ad97e74b4b2526cee43e0771f40c25c toml (0.3.0) sha256=0a91d0f76a9036e84e44f95693b12f58d358c1df3ac8e3b5271f2056ecc6e4b9 toml-merge (7.1.0) - toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 - typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 webrick (1.9.2) sha256=beb4a15fc474defed24a3bda4ffd88a490d517c9e4e6118c3edce59e45864131 yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 - yaml-merge (7.1.0) yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd @@ -894,7 +576,6 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 - zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH diff --git a/gems/parslet-toml-merge/Rakefile b/gems/parslet-toml-merge/Rakefile index 0285d07bd..79680a6ab 100644 --- a/gems/parslet-toml-merge/Rakefile +++ b/gems/parslet-toml-merge/Rakefile @@ -130,23 +130,23 @@ end ### DUPLICATE DRIFT TASKS begin - require "kettle/drift" + require 'kettle/drift' Kettle::Drift.install_tasks rescue LoadError - desc("(stub) kettle:drift:check is unavailable") - task("kettle:drift:check") do + desc('(stub) kettle:drift:check is unavailable') + task('kettle:drift:check') do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc("(stub) kettle:drift:update is unavailable") - task("kettle:drift:update") do + desc('(stub) kettle:drift:update is unavailable') + task('kettle:drift:update') do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc("(stub) kettle:drift:force_update is unavailable") - task("kettle:drift:force_update") do + desc('(stub) kettle:drift:force_update is unavailable') + task('kettle:drift:force_update') do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc("(stub) kettle:drift is unavailable") - task("kettle:drift" => "kettle:drift:update") + desc('(stub) kettle:drift is unavailable') + task('kettle:drift' => 'kettle:drift:update') end ### TEMPLATING TASKS diff --git a/gems/parslet-toml-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile b/gems/parslet-toml-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile index dec650815..b8392fab0 100644 --- a/gems/parslet-toml-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile +++ b/gems/parslet-toml-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.1 -gem "benchmark", "~> 0.5", ">= 0.5.0" # Removed from Std Lib in Ruby 4.0 +gem 'benchmark', '~> 0.5', '>= 0.5.0' # Removed from Std Lib in Ruby 4.0 diff --git a/gems/parslet-toml-merge/gemfiles/modular/benchmark/vHEAD.gemfile b/gems/parslet-toml-merge/gemfiles/modular/benchmark/vHEAD.gemfile index e1eb20c5e..af214aafa 100644 --- a/gems/parslet-toml-merge/gemfiles/modular/benchmark/vHEAD.gemfile +++ b/gems/parslet-toml-merge/gemfiles/modular/benchmark/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.1 -gem "benchmark", github: "ruby/benchmark", branch: "master" +gem 'benchmark', github: 'ruby/benchmark', branch: 'master' diff --git a/gems/parslet-toml-merge/gemfiles/modular/cgi/r4/v0.5.gemfile b/gems/parslet-toml-merge/gemfiles/modular/cgi/r4/v0.5.gemfile index 19ed967c3..17ad97260 100644 --- a/gems/parslet-toml-merge/gemfiles/modular/cgi/r4/v0.5.gemfile +++ b/gems/parslet-toml-merge/gemfiles/modular/cgi/r4/v0.5.gemfile @@ -1 +1 @@ -gem "cgi", "~> 0.5" +gem 'cgi', '~> 0.5' diff --git a/gems/parslet-toml-merge/gemfiles/modular/cgi/vHEAD.gemfile b/gems/parslet-toml-merge/gemfiles/modular/cgi/vHEAD.gemfile index ef8b816ce..650fbf033 100644 --- a/gems/parslet-toml-merge/gemfiles/modular/cgi/vHEAD.gemfile +++ b/gems/parslet-toml-merge/gemfiles/modular/cgi/vHEAD.gemfile @@ -1 +1 @@ -gem "cgi", ">= 0.5" +gem 'cgi', '>= 0.5' diff --git a/gems/parslet-toml-merge/gemfiles/modular/coverage.gemfile b/gems/parslet-toml-merge/gemfiles/modular/coverage.gemfile index 52d737872..b93014b6b 100644 --- a/gems/parslet-toml-merge/gemfiles/modular/coverage.gemfile +++ b/gems/parslet-toml-merge/gemfiles/modular/coverage.gemfile @@ -4,11 +4,11 @@ # Set KETTLE_DEV_DEV=true for local development with path-based dependencies. # When false (default / CI), remote released gems are used. -if ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false").zero? +if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? # Coverage (remote/released) platform :mri do - gem "kettle-soup-cover", "~> 3.0", ">= 3.0.3", require: false + gem 'kettle-soup-cover', '~> 3.0', '>= 3.0.3', require: false end else - eval_gemfile "coverage_local.gemfile" + eval_gemfile 'coverage_local.gemfile' end diff --git a/gems/parslet-toml-merge/gemfiles/modular/coverage_local.gemfile b/gems/parslet-toml-merge/gemfiles/modular/coverage_local.gemfile index daef79393..86d310542 100644 --- a/gems/parslet-toml-merge/gemfiles/modular/coverage_local.gemfile +++ b/gems/parslet-toml-merge/gemfiles/modular/coverage_local.gemfile @@ -11,21 +11,19 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] -nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) +nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] +nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == "nomono" } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - if nomono_locked - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] - end + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked end -Kernel.send(:gem, "nomono", *nomono_activation_requirements) -require "nomono/bundler" +Kernel.send(:gem, 'nomono', *nomono_activation_requirements) +require 'nomono/bundler' local_gems = %w[kettle-dev kettle-test kettle-soup-cover kettle-drift] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) @@ -35,21 +33,21 @@ local_gems_to_eval = local_gems - %w[parslet-toml-merge] - declared_gems platform :mri do eval_nomono_gems( gems: local_gems_to_eval, - prefix: "KETTLE_DEV", - path_env: "KETTLE_DEV_DEV", - vendored_gems_env: "VENDORED_GEMS", - vendor_gem_dir_env: "VENDOR_GEM_DIR", - debug_env: "KETTLE_DEV_DEBUG" + prefix: 'KETTLE_DEV', + path_env: 'KETTLE_DEV_DEV', + vendored_gems_env: 'VENDORED_GEMS', + vendor_gem_dir_env: 'VENDOR_GEM_DIR', + debug_env: 'KETTLE_DEV_DEBUG' ) - if ENV.fetch("GALTZO_FLOSS_DEV", "false").casecmp("false") != 0 + if ENV.fetch('GALTZO_FLOSS_DEV', 'false').casecmp('false') != 0 eval_nomono_gems( gems: %w[turbo_tests2], - prefix: "GALTZO_FLOSS", - path_env: "GALTZO_FLOSS_DEV", - vendored_gems_env: "GALTZO_FLOSS_VENDORED_GEMS", - vendor_gem_dir_env: "GALTZO_FLOSS_VENDOR_GEM_DIR", - debug_env: "GALTZO_FLOSS_DEBUG" + prefix: 'GALTZO_FLOSS', + path_env: 'GALTZO_FLOSS_DEV', + vendored_gems_env: 'GALTZO_FLOSS_VENDORED_GEMS', + vendor_gem_dir_env: 'GALTZO_FLOSS_VENDOR_GEM_DIR', + debug_env: 'GALTZO_FLOSS_DEBUG' ) end end diff --git a/gems/parslet-toml-merge/gemfiles/modular/debug.gemfile b/gems/parslet-toml-merge/gemfiles/modular/debug.gemfile index 4e15b1a3a..eed8d4d1e 100644 --- a/gems/parslet-toml-merge/gemfiles/modular/debug.gemfile +++ b/gems/parslet-toml-merge/gemfiles/modular/debug.gemfile @@ -13,10 +13,10 @@ platform :mri do # Debugging - Ensure ENV["DEBUG"] == "true" to use debuggers within spec suite # Use binding.break, binding.b, or debugger in code - gem "debug", ">= 1.1" # ruby >= 2.7 + gem 'debug', '>= 1.1' # ruby >= 2.7 # Dev Console - Binding.pry - Irb replacement # gem "pry", "~> 0.14" # ruby >= 2.0 end -gem "gem_bench", "~> 2.0", ">= 2.0.5" +gem 'gem_bench', '~> 2.0', '>= 2.0.5' diff --git a/gems/parslet-toml-merge/gemfiles/modular/documentation.gemfile b/gems/parslet-toml-merge/gemfiles/modular/documentation.gemfile index d8215416e..9d4535f12 100644 --- a/gems/parslet-toml-merge/gemfiles/modular/documentation.gemfile +++ b/gems/parslet-toml-merge/gemfiles/modular/documentation.gemfile @@ -7,20 +7,20 @@ # # Documentation -gem "kramdown", "~> 2.5", ">= 2.5.2", require: false # Ruby >= 2.5 -gem "kramdown-parser-gfm", "~> 1.1", require: false # Ruby >= 2.3 -gem "yaml-converter", "~> 0.2", ">= 0.2.3", require: false # Ruby >= 3.2 -gem "yard", "~> 0.9", ">= 0.9.45", require: false -gem "yard-junk", "~> 0.1", ">= 0.1.0", require: false # Ruby >= 3.1 -gem "yard-relative_markdown_links", "~> 0.6", require: false +gem 'kramdown', '~> 2.5', '>= 2.5.2', require: false # Ruby >= 2.5 +gem 'kramdown-parser-gfm', '~> 1.1', require: false # Ruby >= 2.3 +gem 'yaml-converter', '~> 0.2', '>= 0.2.3', require: false # Ruby >= 3.2 +gem 'yard', '~> 0.9', '>= 0.9.45', require: false +gem 'yard-junk', '~> 0.1', '>= 0.1.0', require: false # Ruby >= 3.1 +gem 'yard-relative_markdown_links', '~> 0.6', require: false -if ENV.fetch("GALTZO_FLOSS_DEV", "false").casecmp("false").zero? - gem "yard-fence", "~> 0.9", ">= 0.9.6", require: false # Ruby >= 3.2 - gem "yard-timekeeper", "~> 0.2", ">= 0.2.4", require: false - gem "yard-yaml", "~> 0.2", ">= 0.2.3", require: false +if ENV.fetch('GALTZO_FLOSS_DEV', 'false').casecmp('false').zero? + gem 'yard-fence', '~> 0.9', '>= 0.9.6', require: false # Ruby >= 3.2 + gem 'yard-timekeeper', '~> 0.2', '>= 0.2.4', require: false + gem 'yard-yaml', '~> 0.2', '>= 0.2.3', require: false else - eval_gemfile "documentation_local.gemfile" + eval_gemfile 'documentation_local.gemfile' end # Std Lib extractions -gem "rdoc", "~> 6.11", require: false unless ENV.fetch("KJ_FRAMEWORK_MATRIX_GEM", "") == "rdoc" +gem 'rdoc', '~> 6.11', require: false unless ENV.fetch('KJ_FRAMEWORK_MATRIX_GEM', '') == 'rdoc' diff --git a/gems/parslet-toml-merge/gemfiles/modular/documentation_local.gemfile b/gems/parslet-toml-merge/gemfiles/modular/documentation_local.gemfile index 642d051d7..62ccb64cd 100644 --- a/gems/parslet-toml-merge/gemfiles/modular/documentation_local.gemfile +++ b/gems/parslet-toml-merge/gemfiles/modular/documentation_local.gemfile @@ -11,21 +11,19 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] -nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) +nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] +nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == "nomono" } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - if nomono_locked - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] - end + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked end -Kernel.send(:gem, "nomono", *nomono_activation_requirements) -require "nomono/bundler" +Kernel.send(:gem, 'nomono', *nomono_activation_requirements) +require 'nomono/bundler' local_gems = %w[yard-fence yard-timekeeper yard-yaml] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) @@ -34,9 +32,9 @@ local_gems_to_eval = local_gems - %w[parslet-toml-merge] - declared_gems # export GALTZO_FLOSS_DEV=/path/to/galtzo-floss eval_nomono_gems( gems: local_gems_to_eval, - prefix: "GALTZO_FLOSS", - path_env: "GALTZO_FLOSS_DEV", - vendored_gems_env: "GALTZO_FLOSS_VENDORED_GEMS", - vendor_gem_dir_env: "GALTZO_FLOSS_VENDOR_GEM_DIR", - debug_env: "GALTZO_FLOSS_DEBUG" + prefix: 'GALTZO_FLOSS', + path_env: 'GALTZO_FLOSS_DEV', + vendored_gems_env: 'GALTZO_FLOSS_VENDORED_GEMS', + vendor_gem_dir_env: 'GALTZO_FLOSS_VENDOR_GEM_DIR', + debug_env: 'GALTZO_FLOSS_DEBUG' ) diff --git a/gems/parslet-toml-merge/gemfiles/modular/erb/r2/v3.0.gemfile b/gems/parslet-toml-merge/gemfiles/modular/erb/r2/v3.0.gemfile index c03bd8d85..7c83a239b 100644 --- a/gems/parslet-toml-merge/gemfiles/modular/erb/r2/v3.0.gemfile +++ b/gems/parslet-toml-merge/gemfiles/modular/erb/r2/v3.0.gemfile @@ -1 +1 @@ -gem "erb", "~> 3.0" # ruby >= 2.7.0 +gem 'erb', '~> 3.0' # ruby >= 2.7.0 diff --git a/gems/parslet-toml-merge/gemfiles/modular/erb/r3/v5.0.gemfile b/gems/parslet-toml-merge/gemfiles/modular/erb/r3/v5.0.gemfile index 1bd029cc1..ec7ff451f 100644 --- a/gems/parslet-toml-merge/gemfiles/modular/erb/r3/v5.0.gemfile +++ b/gems/parslet-toml-merge/gemfiles/modular/erb/r3/v5.0.gemfile @@ -1 +1 @@ -gem "erb", "~> 6.0", ">= 6.0.6" # ruby >= 3.2.0 +gem 'erb', '~> 6.0', '>= 6.0.6' # ruby >= 3.2.0 diff --git a/gems/parslet-toml-merge/gemfiles/modular/erb/r4/v5.0.gemfile b/gems/parslet-toml-merge/gemfiles/modular/erb/r4/v5.0.gemfile index 1bd029cc1..ec7ff451f 100644 --- a/gems/parslet-toml-merge/gemfiles/modular/erb/r4/v5.0.gemfile +++ b/gems/parslet-toml-merge/gemfiles/modular/erb/r4/v5.0.gemfile @@ -1 +1 @@ -gem "erb", "~> 6.0", ">= 6.0.6" # ruby >= 3.2.0 +gem 'erb', '~> 6.0', '>= 6.0.6' # ruby >= 3.2.0 diff --git a/gems/parslet-toml-merge/gemfiles/modular/erb/vHEAD.gemfile b/gems/parslet-toml-merge/gemfiles/modular/erb/vHEAD.gemfile index 48fee4218..ea0101185 100644 --- a/gems/parslet-toml-merge/gemfiles/modular/erb/vHEAD.gemfile +++ b/gems/parslet-toml-merge/gemfiles/modular/erb/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 3.2 -gem "erb", github: "ruby/erb", branch: "master" +gem 'erb', github: 'ruby/erb', branch: 'master' diff --git a/gems/parslet-toml-merge/gemfiles/modular/json/truffleruby_22_3.gemfile b/gems/parslet-toml-merge/gemfiles/modular/json/truffleruby_22_3.gemfile index b0e69ab11..9b2f8d96a 100644 --- a/gems/parslet-toml-merge/gemfiles/modular/json/truffleruby_22_3.gemfile +++ b/gems/parslet-toml-merge/gemfiles/modular/json/truffleruby_22_3.gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -if RUBY_ENGINE == "truffleruby" && RUBY_ENGINE_VERSION.start_with?("22.3") +if RUBY_ENGINE == 'truffleruby' && RUBY_ENGINE_VERSION.start_with?('22.3') # TruffleRuby 22.3 ships the json default gem from its emulated MRI Ruby. - gem "json", "= 2.5.1" + gem 'json', '= 2.5.1' end diff --git a/gems/parslet-toml-merge/gemfiles/modular/json/truffleruby_23_0.gemfile b/gems/parslet-toml-merge/gemfiles/modular/json/truffleruby_23_0.gemfile index 7b2660a2b..d787a5ef4 100644 --- a/gems/parslet-toml-merge/gemfiles/modular/json/truffleruby_23_0.gemfile +++ b/gems/parslet-toml-merge/gemfiles/modular/json/truffleruby_23_0.gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -if RUBY_ENGINE == "truffleruby" && RUBY_ENGINE_VERSION.start_with?("23.0") +if RUBY_ENGINE == 'truffleruby' && RUBY_ENGINE_VERSION.start_with?('23.0') # TruffleRuby 23.0 ships the json default gem from its emulated MRI Ruby. - gem "json", "= 2.6.1" + gem 'json', '= 2.6.1' end diff --git a/gems/parslet-toml-merge/gemfiles/modular/json/truffleruby_23_1.gemfile b/gems/parslet-toml-merge/gemfiles/modular/json/truffleruby_23_1.gemfile index dfa21f2e4..d78486b0e 100644 --- a/gems/parslet-toml-merge/gemfiles/modular/json/truffleruby_23_1.gemfile +++ b/gems/parslet-toml-merge/gemfiles/modular/json/truffleruby_23_1.gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -if RUBY_ENGINE == "truffleruby" && RUBY_ENGINE_VERSION.start_with?("23.1") +if RUBY_ENGINE == 'truffleruby' && RUBY_ENGINE_VERSION.start_with?('23.1') # TruffleRuby 23.1 ships the json default gem from its emulated MRI Ruby. - gem "json", "= 2.6.3" + gem 'json', '= 2.6.3' end diff --git a/gems/parslet-toml-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile b/gems/parslet-toml-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile index 42e9d9bd4..e27f1bbae 100644 --- a/gems/parslet-toml-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile +++ b/gems/parslet-toml-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 -gem "mutex_m", "~> 0.2" +gem 'mutex_m', '~> 0.2' diff --git a/gems/parslet-toml-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile b/gems/parslet-toml-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile index 42e9d9bd4..e27f1bbae 100644 --- a/gems/parslet-toml-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile +++ b/gems/parslet-toml-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 -gem "mutex_m", "~> 0.2" +gem 'mutex_m', '~> 0.2' diff --git a/gems/parslet-toml-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile b/gems/parslet-toml-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile index 42e9d9bd4..e27f1bbae 100644 --- a/gems/parslet-toml-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile +++ b/gems/parslet-toml-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 -gem "mutex_m", "~> 0.2" +gem 'mutex_m', '~> 0.2' diff --git a/gems/parslet-toml-merge/gemfiles/modular/mutex_m/vHEAD.gemfile b/gems/parslet-toml-merge/gemfiles/modular/mutex_m/vHEAD.gemfile index 8af3b6fca..9dac2f6cb 100644 --- a/gems/parslet-toml-merge/gemfiles/modular/mutex_m/vHEAD.gemfile +++ b/gems/parslet-toml-merge/gemfiles/modular/mutex_m/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 (dependency of omniauth) -gem "mutex_m", github: "ruby/mutex_m", branch: "master" +gem 'mutex_m', github: 'ruby/mutex_m', branch: 'master' diff --git a/gems/parslet-toml-merge/gemfiles/modular/optional.gemfile b/gems/parslet-toml-merge/gemfiles/modular/optional.gemfile index 80bc45196..9ea429538 100644 --- a/gems/parslet-toml-merge/gemfiles/modular/optional.gemfile +++ b/gems/parslet-toml-merge/gemfiles/modular/optional.gemfile @@ -9,8 +9,8 @@ # Optional dependencies are not depended on directly, but may be used if present. # Required for curated binstubs generated by kettle-jem install -gem "rbs", ">= 3.0", require: false # ruby >= 3.1 +gem 'rbs', '>= 3.0', require: false # ruby >= 3.1 # Required for kettle-pre-release # URL parsing with Unicode support (falls back to URI if not available) -gem "addressable", ">= 2.8", "< 3" # ruby >= 2.2 +gem 'addressable', '>= 2.8', '< 3' # ruby >= 2.2 diff --git a/gems/parslet-toml-merge/gemfiles/modular/rspec.gemfile b/gems/parslet-toml-merge/gemfiles/modular/rspec.gemfile index 72fdf8b7f..2af210a41 100644 --- a/gems/parslet-toml-merge/gemfiles/modular/rspec.gemfile +++ b/gems/parslet-toml-merge/gemfiles/modular/rspec.gemfile @@ -1,4 +1,4 @@ -gem "rspec_junit_formatter", - github: "pboling/rspec_junit_formatter", - branch: "main", - ref: "9e6bcaaedd49477b62878ed568dc4ada5cc7cb5e" +gem 'rspec_junit_formatter', + github: 'pboling/rspec_junit_formatter', + branch: 'main', + ref: '9e6bcaaedd49477b62878ed568dc4ada5cc7cb5e' diff --git a/gems/parslet-toml-merge/gemfiles/modular/runtime_heads.gemfile b/gems/parslet-toml-merge/gemfiles/modular/runtime_heads.gemfile index 02f134c7f..ebf17c529 100644 --- a/gems/parslet-toml-merge/gemfiles/modular/runtime_heads.gemfile +++ b/gems/parslet-toml-merge/gemfiles/modular/runtime_heads.gemfile @@ -8,4 +8,4 @@ # Test against HEAD of runtime dependencies so we can proactively file bugs -eval_gemfile("x_std_libs/vHEAD.gemfile") +eval_gemfile('x_std_libs/vHEAD.gemfile') diff --git a/gems/parslet-toml-merge/gemfiles/modular/stringio/r2/v3.0.gemfile b/gems/parslet-toml-merge/gemfiles/modular/stringio/r2/v3.0.gemfile index e85bb18ee..3616f4e3a 100644 --- a/gems/parslet-toml-merge/gemfiles/modular/stringio/r2/v3.0.gemfile +++ b/gems/parslet-toml-merge/gemfiles/modular/stringio/r2/v3.0.gemfile @@ -2,4 +2,4 @@ # NOT SEMVER # Version 3.0.7 dropped support for Ruby <= 2.7 # Version 3.0.0 dropped support for Ruby <= 2.4 -gem "stringio", ">= 3.0" +gem 'stringio', '>= 3.0' diff --git a/gems/parslet-toml-merge/gemfiles/modular/stringio/r3/v3.0.gemfile b/gems/parslet-toml-merge/gemfiles/modular/stringio/r3/v3.0.gemfile index e85bb18ee..3616f4e3a 100644 --- a/gems/parslet-toml-merge/gemfiles/modular/stringio/r3/v3.0.gemfile +++ b/gems/parslet-toml-merge/gemfiles/modular/stringio/r3/v3.0.gemfile @@ -2,4 +2,4 @@ # NOT SEMVER # Version 3.0.7 dropped support for Ruby <= 2.7 # Version 3.0.0 dropped support for Ruby <= 2.4 -gem "stringio", ">= 3.0" +gem 'stringio', '>= 3.0' diff --git a/gems/parslet-toml-merge/gemfiles/modular/stringio/r4/v3.0.gemfile b/gems/parslet-toml-merge/gemfiles/modular/stringio/r4/v3.0.gemfile index e85bb18ee..3616f4e3a 100644 --- a/gems/parslet-toml-merge/gemfiles/modular/stringio/r4/v3.0.gemfile +++ b/gems/parslet-toml-merge/gemfiles/modular/stringio/r4/v3.0.gemfile @@ -2,4 +2,4 @@ # NOT SEMVER # Version 3.0.7 dropped support for Ruby <= 2.7 # Version 3.0.0 dropped support for Ruby <= 2.4 -gem "stringio", ">= 3.0" +gem 'stringio', '>= 3.0' diff --git a/gems/parslet-toml-merge/gemfiles/modular/stringio/vHEAD.gemfile b/gems/parslet-toml-merge/gemfiles/modular/stringio/vHEAD.gemfile index 5f2a74126..78f5f5d8a 100644 --- a/gems/parslet-toml-merge/gemfiles/modular/stringio/vHEAD.gemfile +++ b/gems/parslet-toml-merge/gemfiles/modular/stringio/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 (dependency of omniauth) -gem "stringio", github: "ruby/stringio", branch: "master" +gem 'stringio', github: 'ruby/stringio', branch: 'master' diff --git a/gems/parslet-toml-merge/gemfiles/modular/style.gemfile b/gems/parslet-toml-merge/gemfiles/modular/style.gemfile index 35de4dcd6..4dbcc02c0 100644 --- a/gems/parslet-toml-merge/gemfiles/modular/style.gemfile +++ b/gems/parslet-toml-merge/gemfiles/modular/style.gemfile @@ -9,23 +9,23 @@ # Style tasks run on the latest Ruby; RuboCop-LTS selects the compatibility # rules for the configured Ruby floor independently from task dependency floors. -gem "reek", "~> 6.5", ">= 6.5.0" +gem 'reek', '~> 6.5', '>= 6.5.0' platform :mri do - gem "appraisal2-rubocop", "~> 1.0", ">= 1.0.0", require: false - gem "rubocop-gradual", "~> 0.4", ">= 0.4.0" - gem "rubocop-minitest", "~> 0.40", ">= 0.40.0" - gem "rubocop-on-rbs", "~> 2.0", ">= 2.0.0" # ruby >= 3.2.0 + gem 'appraisal2-rubocop', '~> 1.0', '>= 1.0.0', require: false + gem 'rubocop-gradual', '~> 0.4', '>= 0.4.0' + gem 'rubocop-minitest', '~> 0.40', '>= 0.40.0' + gem 'rubocop-on-rbs', '~> 2.0', '>= 2.0.0' # ruby >= 3.2.0 # gem "rubocop", "~> 1.73", ">= 1.73.2" # constrained by standard - gem "rubocop-packaging", "~> 0.6", ">= 0.6.0" - gem "standard", "~> 1.56", ">= 1.56.0" + gem 'rubocop-packaging', '~> 0.6', '>= 0.6.0' + gem 'standard', '~> 1.56', '>= 1.56.0' - if ENV.fetch("RUBOCOP_LTS_LOCAL", "false").casecmp("false").zero? + if ENV.fetch('RUBOCOP_LTS_LOCAL', 'false').casecmp('false').zero? declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) - gem "rubocop-lts", "~> 24.2", ">= 24.2.1" unless declared_gems.include?("rubocop-lts") - gem "rubocop-lts-rspec", "~> 1.0", ">= 1.0.5" unless declared_gems.include?("rubocop-lts-rspec") - gem "rubocop-ruby3_2", "~> 3.0", ">= 3.0.6" unless declared_gems.include?("rubocop-ruby3_2") + gem 'rubocop-lts', '~> 24.2', '>= 24.2.1' unless declared_gems.include?('rubocop-lts') + gem 'rubocop-lts-rspec', '~> 1.0', '>= 1.0.5' unless declared_gems.include?('rubocop-lts-rspec') + gem 'rubocop-ruby3_2', '~> 3.0', '>= 3.0.6' unless declared_gems.include?('rubocop-ruby3_2') else - eval_gemfile("style_local.gemfile") + eval_gemfile('style_local.gemfile') end end diff --git a/gems/parslet-toml-merge/gemfiles/modular/style_local.gemfile b/gems/parslet-toml-merge/gemfiles/modular/style_local.gemfile index ce4769c69..12fec3205 100644 --- a/gems/parslet-toml-merge/gemfiles/modular/style_local.gemfile +++ b/gems/parslet-toml-merge/gemfiles/modular/style_local.gemfile @@ -14,21 +14,19 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] -nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) +nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] +nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == "nomono" } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - if nomono_locked - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] - end + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked end -Kernel.send(:gem, "nomono", *nomono_activation_requirements) -require "nomono/bundler" +Kernel.send(:gem, 'nomono', *nomono_activation_requirements) +require 'nomono/bundler' local_gems = %w[rubocop-lts rubocop-lts-rspec rubocop-ruby3_2 standard-rubocop-lts] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) @@ -38,11 +36,11 @@ local_gems_to_eval = local_gems - %w[parslet-toml-merge] - declared_gems platform :mri do eval_nomono_gems( gems: local_gems_to_eval, - prefix: "RUBOCOP_LTS", - path_env: "RUBOCOP_LTS_LOCAL", - vendored_gems_env: "VENDORED_GEMS", - vendor_gem_dir_env: "VENDOR_GEM_DIR", - debug_env: "RUBOCOP_LTS_DEBUG", - root: ["src", "rubocop-lts"] + prefix: 'RUBOCOP_LTS', + path_env: 'RUBOCOP_LTS_LOCAL', + vendored_gems_env: 'VENDORED_GEMS', + vendor_gem_dir_env: 'VENDOR_GEM_DIR', + debug_env: 'RUBOCOP_LTS_DEBUG', + root: %w[src rubocop-lts] ) end diff --git a/gems/parslet-toml-merge/gemfiles/modular/templating.gemfile b/gems/parslet-toml-merge/gemfiles/modular/templating.gemfile index 47138ffbb..a672de184 100644 --- a/gems/parslet-toml-merge/gemfiles/modular/templating.gemfile +++ b/gems/parslet-toml-merge/gemfiles/modular/templating.gemfile @@ -1,18 +1,18 @@ # frozen_string_literal: true -structuredmerge_remote = ENV.fetch("STRUCTUREDMERGE_DEV", "false").casecmp("false").zero? -kettle_remote = ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false").zero? +structuredmerge_remote = ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false').zero? +kettle_remote = ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? if structuredmerge_remote # Parser dependencies for released installs. - gem "tree_sitter_language_pack", "~> 1.13", ">= 1.13.3" + gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' # Merge recipes for released installs. - gem "kettle-jem", ">= 7.0" + gem 'kettle-jem', '>= 7.0' end if kettle_remote # Template/plugin checks for released installs. - gem "kettle-drift", "~> 1.0", ">= 1.0.6", require: false + gem 'kettle-drift', '~> 1.0', '>= 1.0.6', require: false end # Set STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local development with path-based dependencies. @@ -21,4 +21,4 @@ end # # Set KETTLE_DEV_DEV=/path/to/my for local development with Kettle plugin gems. # When false (default / CI), released Kettle plugin gems are used. -eval_gemfile "templating_local.gemfile" unless structuredmerge_remote && kettle_remote +eval_gemfile 'templating_local.gemfile' unless structuredmerge_remote && kettle_remote diff --git a/gems/parslet-toml-merge/gemfiles/modular/templating_local.gemfile b/gems/parslet-toml-merge/gemfiles/modular/templating_local.gemfile index db256276e..992e7dfe6 100644 --- a/gems/parslet-toml-merge/gemfiles/modular/templating_local.gemfile +++ b/gems/parslet-toml-merge/gemfiles/modular/templating_local.gemfile @@ -12,21 +12,19 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] -nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) +nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] +nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == "nomono" } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - if nomono_locked - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] - end + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked end -Kernel.send(:gem, "nomono", *nomono_activation_requirements) -require "nomono/bundler" +Kernel.send(:gem, 'nomono', *nomono_activation_requirements) +require 'nomono/bundler' structuredmerge_local_gems = %w[ tree_haver @@ -69,25 +67,25 @@ structuredmerge_local_gems_to_eval = structuredmerge_local_gems - %w[parslet-tom kettle_dev_local_gems_to_eval = kettle_dev_local_gems - %w[parslet-toml-merge] - declared_gems platform :mri do - if ENV.fetch("STRUCTUREDMERGE_DEV", "false").casecmp("false") != 0 + if ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false') != 0 eval_nomono_gems( gems: structuredmerge_local_gems_to_eval, - prefix: "STRUCTUREDMERGE", - path_env: "STRUCTUREDMERGE_DEV", - vendored_gems_env: "VENDORED_GEMS", - vendor_gem_dir_env: "VENDOR_GEM_DIR", - debug_env: "STRUCTUREDMERGE_DEBUG" + prefix: 'STRUCTUREDMERGE', + path_env: 'STRUCTUREDMERGE_DEV', + vendored_gems_env: 'VENDORED_GEMS', + vendor_gem_dir_env: 'VENDOR_GEM_DIR', + debug_env: 'STRUCTUREDMERGE_DEBUG' ) end - if ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false") != 0 + if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false') != 0 eval_nomono_gems( gems: kettle_dev_local_gems_to_eval, - prefix: "KETTLE_DEV", - path_env: "KETTLE_DEV_DEV", - vendored_gems_env: "VENDORED_GEMS", - vendor_gem_dir_env: "VENDOR_GEM_DIR", - debug_env: "KETTLE_DEV_DEBUG" + prefix: 'KETTLE_DEV', + path_env: 'KETTLE_DEV_DEV', + vendored_gems_env: 'VENDORED_GEMS', + vendor_gem_dir_env: 'VENDOR_GEM_DIR', + debug_env: 'KETTLE_DEV_DEBUG' ) end end diff --git a/gems/parslet-toml-merge/gemfiles/modular/webrick/r4/v1.9.gemfile b/gems/parslet-toml-merge/gemfiles/modular/webrick/r4/v1.9.gemfile index eaab4a473..b1329ba84 100644 --- a/gems/parslet-toml-merge/gemfiles/modular/webrick/r4/v1.9.gemfile +++ b/gems/parslet-toml-merge/gemfiles/modular/webrick/r4/v1.9.gemfile @@ -1 +1 @@ -gem "webrick", "~> 1.9" +gem 'webrick', '~> 1.9' diff --git a/gems/parslet-toml-merge/gemfiles/modular/webrick/vHEAD.gemfile b/gems/parslet-toml-merge/gemfiles/modular/webrick/vHEAD.gemfile index 8a789b634..c7e6f81a1 100644 --- a/gems/parslet-toml-merge/gemfiles/modular/webrick/vHEAD.gemfile +++ b/gems/parslet-toml-merge/gemfiles/modular/webrick/vHEAD.gemfile @@ -1 +1 @@ -gem "webrick", ">= 1.9" +gem 'webrick', '>= 1.9' diff --git a/gems/parslet-toml-merge/gemfiles/modular/x_std_libs.gemfile b/gems/parslet-toml-merge/gemfiles/modular/x_std_libs.gemfile index 77aad43f2..b1f43c097 100644 --- a/gems/parslet-toml-merge/gemfiles/modular/x_std_libs.gemfile +++ b/gems/parslet-toml-merge/gemfiles/modular/x_std_libs.gemfile @@ -1,12 +1,12 @@ ### Std Lib Extracted Gems ruby_version = Gem::Version.new(RUBY_VERSION) -if ruby_version >= Gem::Version.new("4.0") - eval_gemfile "x_std_libs/r4/libs.gemfile" -elsif ruby_version >= Gem::Version.new("3.2") - eval_gemfile "x_std_libs/r3/libs.gemfile" -elsif ruby_version >= Gem::Version.new("3.1") - eval_gemfile "x_std_libs/r3.1/libs.gemfile" +if ruby_version >= Gem::Version.new('4.0') + eval_gemfile 'x_std_libs/r4/libs.gemfile' +elsif ruby_version >= Gem::Version.new('3.2') + eval_gemfile 'x_std_libs/r3/libs.gemfile' +elsif ruby_version >= Gem::Version.new('3.1') + eval_gemfile 'x_std_libs/r3.1/libs.gemfile' else - eval_gemfile "x_std_libs/r2/libs.gemfile" + eval_gemfile 'x_std_libs/r2/libs.gemfile' end diff --git a/gems/parslet-toml-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile b/gems/parslet-toml-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile index 441c4f03a..16a5e3d70 100644 --- a/gems/parslet-toml-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile +++ b/gems/parslet-toml-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile @@ -1,3 +1,3 @@ -eval_gemfile "../../erb/r2/v3.0.gemfile" -eval_gemfile "../../mutex_m/r2/v0.3.gemfile" -eval_gemfile "../../stringio/r2/v3.0.gemfile" +eval_gemfile '../../erb/r2/v3.0.gemfile' +eval_gemfile '../../mutex_m/r2/v0.3.gemfile' +eval_gemfile '../../stringio/r2/v3.0.gemfile' diff --git a/gems/parslet-toml-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile b/gems/parslet-toml-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile index c293a3ddd..220ff95c1 100644 --- a/gems/parslet-toml-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile +++ b/gems/parslet-toml-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile @@ -1,3 +1,3 @@ -eval_gemfile "../../erb/r3/v5.0.gemfile" -eval_gemfile "../../mutex_m/r3/v0.3.gemfile" -eval_gemfile "../../stringio/r3/v3.0.gemfile" +eval_gemfile '../../erb/r3/v5.0.gemfile' +eval_gemfile '../../mutex_m/r3/v0.3.gemfile' +eval_gemfile '../../stringio/r3/v3.0.gemfile' diff --git a/gems/parslet-toml-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile b/gems/parslet-toml-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile index eb5574247..e2f6501eb 100644 --- a/gems/parslet-toml-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile +++ b/gems/parslet-toml-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile @@ -1,6 +1,6 @@ -eval_gemfile "../../erb/r4/v5.0.gemfile" -eval_gemfile "../../mutex_m/r4/v0.3.gemfile" -eval_gemfile "../../stringio/r4/v3.0.gemfile" -eval_gemfile "../../benchmark/r4/v0.5.gemfile" -eval_gemfile "../../cgi/r4/v0.5.gemfile" -eval_gemfile "../../webrick/r4/v1.9.gemfile" +eval_gemfile '../../erb/r4/v5.0.gemfile' +eval_gemfile '../../mutex_m/r4/v0.3.gemfile' +eval_gemfile '../../stringio/r4/v3.0.gemfile' +eval_gemfile '../../benchmark/r4/v0.5.gemfile' +eval_gemfile '../../cgi/r4/v0.5.gemfile' +eval_gemfile '../../webrick/r4/v1.9.gemfile' diff --git a/gems/parslet-toml-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile b/gems/parslet-toml-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile index d4d5b16c9..ab75cccf1 100644 --- a/gems/parslet-toml-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile +++ b/gems/parslet-toml-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile @@ -1,6 +1,6 @@ -eval_gemfile "../erb/vHEAD.gemfile" -eval_gemfile "../mutex_m/vHEAD.gemfile" -eval_gemfile "../stringio/vHEAD.gemfile" -eval_gemfile "../benchmark/vHEAD.gemfile" -eval_gemfile "../cgi/vHEAD.gemfile" -eval_gemfile "../webrick/vHEAD.gemfile" +eval_gemfile '../erb/vHEAD.gemfile' +eval_gemfile '../mutex_m/vHEAD.gemfile' +eval_gemfile '../stringio/vHEAD.gemfile' +eval_gemfile '../benchmark/vHEAD.gemfile' +eval_gemfile '../cgi/vHEAD.gemfile' +eval_gemfile '../webrick/vHEAD.gemfile' diff --git a/gems/parslet-toml-merge/lib/parslet/toml/merge/version.rb b/gems/parslet-toml-merge/lib/parslet/toml/merge/version.rb index f3e9c49e5..12a67dfd9 100644 --- a/gems/parslet-toml-merge/lib/parslet/toml/merge/version.rb +++ b/gems/parslet-toml-merge/lib/parslet/toml/merge/version.rb @@ -4,7 +4,7 @@ module Parslet module Toml module Merge module Version - VERSION = "7.1.0" + VERSION = '7.1.0' end VERSION = Version::VERSION # Traditional Constant Location end diff --git a/gems/parslet-toml-merge/spec/spec_helper.rb b/gems/parslet-toml-merge/spec/spec_helper.rb index ee8bb5dbd..c3edde85d 100644 --- a/gems/parslet-toml-merge/spec/spec_helper.rb +++ b/gems/parslet-toml-merge/spec/spec_helper.rb @@ -7,16 +7,16 @@ # NOTE: Gemfiles for non-coverage appraisals may not have kettle-soup-cover. # The rescue LoadError handles that scenario. begin - require "kettle-soup-cover" + require 'kettle-soup-cover' if Kettle::Soup::Cover::DO_COV # Requiring simplecov loads the project-local `.simplecov`. - require "simplecov" - require "kettle/soup/cover/config" + require 'simplecov' + require 'kettle/soup/cover/config' SimpleCov.start end -rescue LoadError => error +rescue LoadError => e # check the error message and re-raise when unexpected - raise error unless error.message.include?("kettle") + raise e unless e.message.include?('kettle') end # External RSpec & related config From 43d4325f31c32a91d82f11a57b9fdd3395b9501b Mon Sep 17 00:00:00 2001 From: "Peter H. Boling" Date: Tue, 21 Jul 2026 18:05:51 -0600 Subject: [PATCH 172/188] =?UTF-8?q?=F0=9F=8E=A8=20Template=20bootstrap=20b?= =?UTF-8?q?y=20kettle-jem=20v7.1.0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gems/commonmarker-merge/.rubocop_gradual.lock | 132 ++++++ gems/commonmarker-merge/.simplecov | 2 +- gems/commonmarker-merge/Gemfile | 70 ++- gems/commonmarker-merge/Gemfile.lock | 6 +- gems/commonmarker-merge/Rakefile | 18 +- gems/commonmarker-merge/bin/yard | 2 +- .../modular/benchmark/r4/v0.5.gemfile | 2 +- .../gemfiles/modular/benchmark/vHEAD.gemfile | 2 +- .../gemfiles/modular/cgi/r4/v0.5.gemfile | 2 +- .../gemfiles/modular/cgi/vHEAD.gemfile | 2 +- .../gemfiles/modular/coverage.gemfile | 6 +- .../gemfiles/modular/coverage_local.gemfile | 42 +- .../gemfiles/modular/debug.gemfile | 4 +- .../gemfiles/modular/documentation.gemfile | 24 +- .../modular/documentation_local.gemfile | 30 +- .../gemfiles/modular/erb/r2/v3.0.gemfile | 2 +- .../gemfiles/modular/erb/r3/v5.0.gemfile | 2 +- .../gemfiles/modular/erb/r4/v5.0.gemfile | 2 +- .../gemfiles/modular/erb/vHEAD.gemfile | 2 +- .../modular/json/truffleruby_22_3.gemfile | 4 +- .../modular/json/truffleruby_23_0.gemfile | 4 +- .../modular/json/truffleruby_23_1.gemfile | 4 +- .../gemfiles/modular/mutex_m/r2/v0.3.gemfile | 2 +- .../gemfiles/modular/mutex_m/r3/v0.3.gemfile | 2 +- .../gemfiles/modular/mutex_m/r4/v0.3.gemfile | 2 +- .../gemfiles/modular/mutex_m/vHEAD.gemfile | 2 +- .../gemfiles/modular/optional.gemfile | 4 +- .../gemfiles/modular/rspec.gemfile | 8 +- .../gemfiles/modular/runtime_heads.gemfile | 2 +- .../gemfiles/modular/stringio/r2/v3.0.gemfile | 2 +- .../gemfiles/modular/stringio/r3/v3.0.gemfile | 2 +- .../gemfiles/modular/stringio/r4/v3.0.gemfile | 2 +- .../gemfiles/modular/stringio/vHEAD.gemfile | 2 +- .../gemfiles/modular/style.gemfile | 24 +- .../gemfiles/modular/style_local.gemfile | 32 +- .../gemfiles/modular/templating.gemfile | 12 +- .../gemfiles/modular/templating_local.gemfile | 44 +- .../gemfiles/modular/webrick/r4/v1.9.gemfile | 2 +- .../gemfiles/modular/webrick/vHEAD.gemfile | 2 +- .../gemfiles/modular/x_std_libs.gemfile | 14 +- .../modular/x_std_libs/r2/libs.gemfile | 6 +- .../modular/x_std_libs/r3/libs.gemfile | 6 +- .../modular/x_std_libs/r4/libs.gemfile | 12 +- .../gemfiles/modular/x_std_libs/vHEAD.gemfile | 12 +- .../lib/commonmarker/merge/version.rb | 2 +- gems/commonmarker-merge/spec/spec_helper.rb | 10 +- gems/parslet-toml-merge/Gemfile.lock | 333 +++++++++++++- gems/smorg-rb/Gemfile.lock | 407 +++++++++++++----- 48 files changed, 961 insertions(+), 351 deletions(-) create mode 100644 gems/commonmarker-merge/.rubocop_gradual.lock diff --git a/gems/commonmarker-merge/.rubocop_gradual.lock b/gems/commonmarker-merge/.rubocop_gradual.lock new file mode 100644 index 000000000..5fd34e943 --- /dev/null +++ b/gems/commonmarker-merge/.rubocop_gradual.lock @@ -0,0 +1,132 @@ +{ + ".simplecov:1669031189": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "Rakefile:3938625005": [ + [18, 121, 17, "Layout/LineLength: Line is too long. [137/120]", 174264873], + [79, 3, 1023, "Metrics/BlockLength: Block has too many lines. [32/25]", 54868638], + [163, 121, 22, "Layout/LineLength: Line is too long. [142/120]", 1367093088], + [166, 121, 18, "Layout/LineLength: Line is too long. [138/120]", 3881946477] + ], + "commonmarker-merge.gemspec:3865151820": [ + [128, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 2821357214], + [143, 121, 50, "Layout/LineLength: Line is too long. [170/120]", 3888612416], + [144, 121, 29, "Layout/LineLength: Line is too long. [149/120]", 981994949], + [151, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 4229808912] + ], + "gemfiles/modular/benchmark/r4/v0.5.gemfile:3644720371": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/benchmark/vHEAD.gemfile:2838879269": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/cgi/r4/v0.5.gemfile:367169322": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/cgi/vHEAD.gemfile:2729540777": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/erb/r2/v3.0.gemfile:1688285565": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/erb/r3/v5.0.gemfile:2394062339": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/erb/r4/v5.0.gemfile:2394062339": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/erb/vHEAD.gemfile:981929959": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/mutex_m/r2/v0.3.gemfile:4055275004": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/mutex_m/r3/v0.3.gemfile:4055275004": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/mutex_m/r4/v0.3.gemfile:4055275004": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/mutex_m/vHEAD.gemfile:556854763": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/rspec.gemfile:2263543889": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/stringio/r2/v3.0.gemfile:821604304": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/stringio/r3/v3.0.gemfile:821604304": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/stringio/r4/v3.0.gemfile:821604304": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/stringio/vHEAD.gemfile:1045839691": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/webrick/r4/v1.9.gemfile:3092661193": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/webrick/vHEAD.gemfile:3867684682": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/x_std_libs.gemfile:2324400122": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/x_std_libs/r2/libs.gemfile:36276542": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] + ], + "gemfiles/modular/x_std_libs/r3/libs.gemfile:4030570297": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] + ], + "gemfiles/modular/x_std_libs/r4/libs.gemfile:732451732": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] + ], + "gemfiles/modular/x_std_libs/vHEAD.gemfile:2390363993": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] + ], + "lib/commonmarker-merge.rb:2377410954": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`commonmarker-merge.rb`) should use snake_case.", 5381] + ], + "lib/commonmarker/merge.rb:3124175488": [ + [10, 3, 12, "Style/Documentation: Missing top-level documentation comment for `module Commonmarker::Merge`.", 2866359175], + [10, 3, 8154, "Metrics/ModuleLength: Module has too many lines. [187/100]", 3577384442], + [11, 5, 11, "Style/ModuleFunction: Use `module_function` instead of `extend self`.", 1210897631], + [56, 5, 928, "Metrics/MethodLength: Method has too many lines. [24/10]", 2523239963], + [88, 5, 1442, "Metrics/AbcSize: Assignment Branch Condition size for `merge_markdown` is too high. [<11, 31, 11> 34.68/17]", 2548079514], + [88, 5, 1442, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `merge_markdown` is too high. [11/7]", 2548079514], + [88, 5, 1442, "Metrics/MethodLength: Method has too many lines. [27/10]", 2548079514], + [88, 5, 1442, "Metrics/PerceivedComplexity: Perceived complexity for `merge_markdown` is too high. [11/8]", 2548079514], + [122, 5, 613, "Metrics/MethodLength: Method has too many lines. [11/10]", 2967276583], + [122, 52, 144, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 3050457682] + ], + "lib/commonmarker/merge/backend.rb:373392035": [ + [149, 9, 590, "Metrics/AbcSize: Assignment Branch Condition size for `start_point` is too high. [<2, 18, 7> 19.42/17]", 2717016062], + [149, 9, 590, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `start_point` is too high. [8/7]", 2717016062], + [149, 9, 590, "Metrics/MethodLength: Method has too many lines. [15/10]", 2717016062], + [172, 9, 534, "Metrics/AbcSize: Assignment Branch Condition size for `end_point` is too high. [<2, 18, 7> 19.42/17]", 1198128832], + [172, 9, 534, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `end_point` is too high. [8/7]", 1198128832], + [172, 9, 534, "Metrics/MethodLength: Method has too many lines. [15/10]", 1198128832] + ], + "spec/commonmarker/merge/partial_template_merger_integration_spec.rb:3818970621": [ + [5, 1, 4139, "Metrics/BlockLength: Block has too many lines. [107/25]", 3727961890], + [25, 3, 1109, "Metrics/BlockLength: Block has too many lines. [30/25]", 2339832693], + [84, 3, 1236, "Metrics/BlockLength: Block has too many lines. [30/25]", 503179966], + [84, 121, 32, "Layout/LineLength: Line is too long. [152/120]", 567791365] + ], + "spec/fixtures_integration_spec.rb:1779667956": [ + [3, 1, 13039, "Metrics/BlockLength: Block has too many lines. [276/25]", 2065862761], + [16, 3, 1373, "Metrics/BlockLength: Block has too many lines. [30/25]", 489033777], + [152, 3, 1353, "Metrics/BlockLength: Block has too many lines. [26/25]", 2630958569], + [235, 3, 1352, "Metrics/BlockLength: Block has too many lines. [30/25]", 2376182886], + [270, 3, 1402, "Metrics/BlockLength: Block has too many lines. [29/25]", 3678391303] + ] +} diff --git a/gems/commonmarker-merge/.simplecov b/gems/commonmarker-merge/.simplecov index b75946f49..b67501a5b 100644 --- a/gems/commonmarker-merge/.simplecov +++ b/gems/commonmarker-merge/.simplecov @@ -10,5 +10,5 @@ # If the values for minimum coverage need to change, they should be changed both there, # and in 2 places in .github/workflows/coverage.yml. SimpleCov.configure do - cover "lib/**/*.rb", "lib/**/*.rake", "exe/*.rb" + cover 'lib/**/*.rb', 'lib/**/*.rake', 'exe/*.rb' end diff --git a/gems/commonmarker-merge/Gemfile b/gems/commonmarker-merge/Gemfile index a81c89dab..3734714e8 100644 --- a/gems/commonmarker-merge/Gemfile +++ b/gems/commonmarker-merge/Gemfile @@ -6,7 +6,7 @@ # kettle-jem will then preserve content between those markers across template runs. # kettle-jem:unfreeze -source "https://gem.coop" +source 'https://gem.coop' git_source(:codeberg) { |repo_name| "https://codeberg.org/#{repo_name}" } git_source(:gitlab) { |repo_name| "https://gitlab.com/#{repo_name}" } @@ -19,57 +19,53 @@ git_source(:gitlab) { |repo_name| "https://gitlab.com/#{repo_name}" } gemspec # Local workspace dependency wiring for *_local.gemfile overrides -nomono_requirements = ["~> 1.0", ">= 1.0.8"] -gem "nomono", *nomono_requirements, require: false # ruby >= 2.2 +nomono_requirements = ['~> 1.0', '>= 1.0.8'] +gem 'nomono', *nomono_requirements, require: false # ruby >= 2.2 # Direct sibling dependencies (env-switched via STRUCTUREDMERGE_DEV) direct_sibling_gems = %w[ markdown-merge ] -direct_sibling_dev = ENV.fetch("STRUCTUREDMERGE_DEV", "") +direct_sibling_dev = ENV.fetch('STRUCTUREDMERGE_DEV', '') direct_sibling_local = !direct_sibling_dev.empty? && !%w[false 0 no off].include?(direct_sibling_dev.downcase) -direct_sibling_templating = ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? +direct_sibling_templating = ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero?) - direct_sibling_dev_was_set = ENV.key?("STRUCTUREDMERGE_DEV") - direct_sibling_dev_original = ENV.fetch("STRUCTUREDMERGE_DEV", nil) + (direct_sibling_local || + ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) + direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') + direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) begin nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path("Gemfile.lock", __dir__) + nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == "nomono" } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - if nomono_locked - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] - end - end - Kernel.send(:gem, "nomono", *nomono_activation_requirements) - require "nomono/bundler" - if direct_sibling_templating && !direct_sibling_local - ENV["STRUCTUREDMERGE_DEV"] = File.expand_path("..", __dir__) + Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked end + Kernel.send(:gem, 'nomono', *nomono_activation_requirements) + require 'nomono/bundler' + ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local eval_nomono_gems( gems: direct_sibling_gems, - prefix: "STRUCTUREDMERGE", - path_env: "STRUCTUREDMERGE_DEV", - root: ["src", "my", "structuredmerge"] + prefix: 'STRUCTUREDMERGE', + path_env: 'STRUCTUREDMERGE_DEV', + root: %w[src my structuredmerge] ) rescue LoadError - warn "Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies." + warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' ensure if direct_sibling_templating && !direct_sibling_local if direct_sibling_dev_was_set - ENV["STRUCTUREDMERGE_DEV"] = direct_sibling_dev_original + ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original else - ENV.delete("STRUCTUREDMERGE_DEV") + ENV.delete('STRUCTUREDMERGE_DEV') end end end @@ -156,28 +152,28 @@ if direct_sibling_gems.any? && end # Use released TSLP with the Ruby ABI platform-gem fix. -gem "tree_sitter_language_pack", "~> 1.13", ">= 1.13.3" +gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' # Templating (env-switched: STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local paths) -eval_gemfile "gemfiles/modular/templating.gemfile" if ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? +eval_gemfile 'gemfiles/modular/templating.gemfile' if ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? # Debugging -eval_gemfile "gemfiles/modular/debug.gemfile" +eval_gemfile 'gemfiles/modular/debug.gemfile' # Code Coverage (env-switched: KETTLE_DEV_DEV=true for local paths) -eval_gemfile "gemfiles/modular/coverage.gemfile" +eval_gemfile 'gemfiles/modular/coverage.gemfile' # Linting -eval_gemfile "gemfiles/modular/style.gemfile" +eval_gemfile 'gemfiles/modular/style.gemfile' # Documentation -eval_gemfile "gemfiles/modular/documentation.gemfile" +eval_gemfile 'gemfiles/modular/documentation.gemfile' # Optional -eval_gemfile "gemfiles/modular/optional.gemfile" +eval_gemfile 'gemfiles/modular/optional.gemfile' ### Std Lib Extracted Gems -eval_gemfile "gemfiles/modular/x_std_libs.gemfile" +eval_gemfile 'gemfiles/modular/x_std_libs.gemfile' # See unlocked_deps appraisal for more details on irb inclusion -gem "irb", "~> 1.17" # ruby >= 2.7 +gem 'irb', '~> 1.17' # ruby >= 2.7 diff --git a/gems/commonmarker-merge/Gemfile.lock b/gems/commonmarker-merge/Gemfile.lock index 2e09403f4..4129d6ca0 100644 --- a/gems/commonmarker-merge/Gemfile.lock +++ b/gems/commonmarker-merge/Gemfile.lock @@ -7,7 +7,7 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge specs: markdown-merge (7.1.0) ast-merge (= 7.1.0) @@ -101,7 +101,7 @@ GEM rdoc (>= 4.0.0) reline (>= 0.4.2) json (2.21.1) - kettle-dev (2.3.8) + kettle-dev (2.3.9) emoji_regex (>= 15.0) kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) @@ -473,7 +473,7 @@ CHECKSUMS io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 - kettle-dev (2.3.8) sha256=9d716ff21c660a730cb4e8d41e2e2f0630a28167a354b6e2924e242102aef72c + kettle-dev (2.3.9) kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f kettle-soup-cover (3.0.4) kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 diff --git a/gems/commonmarker-merge/Rakefile b/gems/commonmarker-merge/Rakefile index df55d9073..40e72097b 100644 --- a/gems/commonmarker-merge/Rakefile +++ b/gems/commonmarker-merge/Rakefile @@ -130,23 +130,23 @@ end ### DUPLICATE DRIFT TASKS begin - require "kettle/drift" + require 'kettle/drift' Kettle::Drift.install_tasks rescue LoadError - desc("(stub) kettle:drift:check is unavailable") - task("kettle:drift:check") do + desc('(stub) kettle:drift:check is unavailable') + task('kettle:drift:check') do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc("(stub) kettle:drift:update is unavailable") - task("kettle:drift:update") do + desc('(stub) kettle:drift:update is unavailable') + task('kettle:drift:update') do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc("(stub) kettle:drift:force_update is unavailable") - task("kettle:drift:force_update") do + desc('(stub) kettle:drift:force_update is unavailable') + task('kettle:drift:force_update') do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc("(stub) kettle:drift is unavailable") - task("kettle:drift" => "kettle:drift:update") + desc('(stub) kettle:drift is unavailable') + task('kettle:drift' => 'kettle:drift:update') end ### TEMPLATING TASKS diff --git a/gems/commonmarker-merge/bin/yard b/gems/commonmarker-merge/bin/yard index a7e8b6eed..5d516ad6f 100755 --- a/gems/commonmarker-merge/bin/yard +++ b/gems/commonmarker-merge/bin/yard @@ -12,4 +12,4 @@ # `yard` / `bin/yard`. Keep this binstub as a handoff to the task so # humans and tools that reach for `bin/yard` still run the full docs # workflow with post-processing hooks. -exec("bundle", "exec", "rake", "yard") +exec('bundle', 'exec', 'rake', 'yard') diff --git a/gems/commonmarker-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile b/gems/commonmarker-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile index dec650815..b8392fab0 100644 --- a/gems/commonmarker-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile +++ b/gems/commonmarker-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.1 -gem "benchmark", "~> 0.5", ">= 0.5.0" # Removed from Std Lib in Ruby 4.0 +gem 'benchmark', '~> 0.5', '>= 0.5.0' # Removed from Std Lib in Ruby 4.0 diff --git a/gems/commonmarker-merge/gemfiles/modular/benchmark/vHEAD.gemfile b/gems/commonmarker-merge/gemfiles/modular/benchmark/vHEAD.gemfile index e1eb20c5e..af214aafa 100644 --- a/gems/commonmarker-merge/gemfiles/modular/benchmark/vHEAD.gemfile +++ b/gems/commonmarker-merge/gemfiles/modular/benchmark/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.1 -gem "benchmark", github: "ruby/benchmark", branch: "master" +gem 'benchmark', github: 'ruby/benchmark', branch: 'master' diff --git a/gems/commonmarker-merge/gemfiles/modular/cgi/r4/v0.5.gemfile b/gems/commonmarker-merge/gemfiles/modular/cgi/r4/v0.5.gemfile index 19ed967c3..17ad97260 100644 --- a/gems/commonmarker-merge/gemfiles/modular/cgi/r4/v0.5.gemfile +++ b/gems/commonmarker-merge/gemfiles/modular/cgi/r4/v0.5.gemfile @@ -1 +1 @@ -gem "cgi", "~> 0.5" +gem 'cgi', '~> 0.5' diff --git a/gems/commonmarker-merge/gemfiles/modular/cgi/vHEAD.gemfile b/gems/commonmarker-merge/gemfiles/modular/cgi/vHEAD.gemfile index ef8b816ce..650fbf033 100644 --- a/gems/commonmarker-merge/gemfiles/modular/cgi/vHEAD.gemfile +++ b/gems/commonmarker-merge/gemfiles/modular/cgi/vHEAD.gemfile @@ -1 +1 @@ -gem "cgi", ">= 0.5" +gem 'cgi', '>= 0.5' diff --git a/gems/commonmarker-merge/gemfiles/modular/coverage.gemfile b/gems/commonmarker-merge/gemfiles/modular/coverage.gemfile index 52d737872..b93014b6b 100644 --- a/gems/commonmarker-merge/gemfiles/modular/coverage.gemfile +++ b/gems/commonmarker-merge/gemfiles/modular/coverage.gemfile @@ -4,11 +4,11 @@ # Set KETTLE_DEV_DEV=true for local development with path-based dependencies. # When false (default / CI), remote released gems are used. -if ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false").zero? +if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? # Coverage (remote/released) platform :mri do - gem "kettle-soup-cover", "~> 3.0", ">= 3.0.3", require: false + gem 'kettle-soup-cover', '~> 3.0', '>= 3.0.3', require: false end else - eval_gemfile "coverage_local.gemfile" + eval_gemfile 'coverage_local.gemfile' end diff --git a/gems/commonmarker-merge/gemfiles/modular/coverage_local.gemfile b/gems/commonmarker-merge/gemfiles/modular/coverage_local.gemfile index e9a2f446c..20610f259 100644 --- a/gems/commonmarker-merge/gemfiles/modular/coverage_local.gemfile +++ b/gems/commonmarker-merge/gemfiles/modular/coverage_local.gemfile @@ -11,21 +11,19 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] -nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) +nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] +nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == "nomono" } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - if nomono_locked - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] - end + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked end -Kernel.send(:gem, "nomono", *nomono_activation_requirements) -require "nomono/bundler" +Kernel.send(:gem, 'nomono', *nomono_activation_requirements) +require 'nomono/bundler' local_gems = %w[kettle-dev kettle-test kettle-soup-cover kettle-drift] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) @@ -35,21 +33,21 @@ local_gems_to_eval = local_gems - %w[commonmarker-merge] - declared_gems platform :mri do eval_nomono_gems( gems: local_gems_to_eval, - prefix: "KETTLE_DEV", - path_env: "KETTLE_DEV_DEV", - vendored_gems_env: "VENDORED_GEMS", - vendor_gem_dir_env: "VENDOR_GEM_DIR", - debug_env: "KETTLE_DEV_DEBUG" + prefix: 'KETTLE_DEV', + path_env: 'KETTLE_DEV_DEV', + vendored_gems_env: 'VENDORED_GEMS', + vendor_gem_dir_env: 'VENDOR_GEM_DIR', + debug_env: 'KETTLE_DEV_DEBUG' ) - if ENV.fetch("GALTZO_FLOSS_DEV", "false").casecmp("false") != 0 + if ENV.fetch('GALTZO_FLOSS_DEV', 'false').casecmp('false') != 0 eval_nomono_gems( gems: %w[turbo_tests2], - prefix: "GALTZO_FLOSS", - path_env: "GALTZO_FLOSS_DEV", - vendored_gems_env: "GALTZO_FLOSS_VENDORED_GEMS", - vendor_gem_dir_env: "GALTZO_FLOSS_VENDOR_GEM_DIR", - debug_env: "GALTZO_FLOSS_DEBUG" + prefix: 'GALTZO_FLOSS', + path_env: 'GALTZO_FLOSS_DEV', + vendored_gems_env: 'GALTZO_FLOSS_VENDORED_GEMS', + vendor_gem_dir_env: 'GALTZO_FLOSS_VENDOR_GEM_DIR', + debug_env: 'GALTZO_FLOSS_DEBUG' ) end end diff --git a/gems/commonmarker-merge/gemfiles/modular/debug.gemfile b/gems/commonmarker-merge/gemfiles/modular/debug.gemfile index 4e15b1a3a..eed8d4d1e 100644 --- a/gems/commonmarker-merge/gemfiles/modular/debug.gemfile +++ b/gems/commonmarker-merge/gemfiles/modular/debug.gemfile @@ -13,10 +13,10 @@ platform :mri do # Debugging - Ensure ENV["DEBUG"] == "true" to use debuggers within spec suite # Use binding.break, binding.b, or debugger in code - gem "debug", ">= 1.1" # ruby >= 2.7 + gem 'debug', '>= 1.1' # ruby >= 2.7 # Dev Console - Binding.pry - Irb replacement # gem "pry", "~> 0.14" # ruby >= 2.0 end -gem "gem_bench", "~> 2.0", ">= 2.0.5" +gem 'gem_bench', '~> 2.0', '>= 2.0.5' diff --git a/gems/commonmarker-merge/gemfiles/modular/documentation.gemfile b/gems/commonmarker-merge/gemfiles/modular/documentation.gemfile index d8215416e..9d4535f12 100644 --- a/gems/commonmarker-merge/gemfiles/modular/documentation.gemfile +++ b/gems/commonmarker-merge/gemfiles/modular/documentation.gemfile @@ -7,20 +7,20 @@ # # Documentation -gem "kramdown", "~> 2.5", ">= 2.5.2", require: false # Ruby >= 2.5 -gem "kramdown-parser-gfm", "~> 1.1", require: false # Ruby >= 2.3 -gem "yaml-converter", "~> 0.2", ">= 0.2.3", require: false # Ruby >= 3.2 -gem "yard", "~> 0.9", ">= 0.9.45", require: false -gem "yard-junk", "~> 0.1", ">= 0.1.0", require: false # Ruby >= 3.1 -gem "yard-relative_markdown_links", "~> 0.6", require: false +gem 'kramdown', '~> 2.5', '>= 2.5.2', require: false # Ruby >= 2.5 +gem 'kramdown-parser-gfm', '~> 1.1', require: false # Ruby >= 2.3 +gem 'yaml-converter', '~> 0.2', '>= 0.2.3', require: false # Ruby >= 3.2 +gem 'yard', '~> 0.9', '>= 0.9.45', require: false +gem 'yard-junk', '~> 0.1', '>= 0.1.0', require: false # Ruby >= 3.1 +gem 'yard-relative_markdown_links', '~> 0.6', require: false -if ENV.fetch("GALTZO_FLOSS_DEV", "false").casecmp("false").zero? - gem "yard-fence", "~> 0.9", ">= 0.9.6", require: false # Ruby >= 3.2 - gem "yard-timekeeper", "~> 0.2", ">= 0.2.4", require: false - gem "yard-yaml", "~> 0.2", ">= 0.2.3", require: false +if ENV.fetch('GALTZO_FLOSS_DEV', 'false').casecmp('false').zero? + gem 'yard-fence', '~> 0.9', '>= 0.9.6', require: false # Ruby >= 3.2 + gem 'yard-timekeeper', '~> 0.2', '>= 0.2.4', require: false + gem 'yard-yaml', '~> 0.2', '>= 0.2.3', require: false else - eval_gemfile "documentation_local.gemfile" + eval_gemfile 'documentation_local.gemfile' end # Std Lib extractions -gem "rdoc", "~> 6.11", require: false unless ENV.fetch("KJ_FRAMEWORK_MATRIX_GEM", "") == "rdoc" +gem 'rdoc', '~> 6.11', require: false unless ENV.fetch('KJ_FRAMEWORK_MATRIX_GEM', '') == 'rdoc' diff --git a/gems/commonmarker-merge/gemfiles/modular/documentation_local.gemfile b/gems/commonmarker-merge/gemfiles/modular/documentation_local.gemfile index 2c478d8c9..9ecf2df17 100644 --- a/gems/commonmarker-merge/gemfiles/modular/documentation_local.gemfile +++ b/gems/commonmarker-merge/gemfiles/modular/documentation_local.gemfile @@ -11,21 +11,19 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] -nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) +nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] +nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == "nomono" } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - if nomono_locked - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] - end + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked end -Kernel.send(:gem, "nomono", *nomono_activation_requirements) -require "nomono/bundler" +Kernel.send(:gem, 'nomono', *nomono_activation_requirements) +require 'nomono/bundler' local_gems = %w[yard-fence yard-timekeeper yard-yaml] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) @@ -34,9 +32,9 @@ local_gems_to_eval = local_gems - %w[commonmarker-merge] - declared_gems # export GALTZO_FLOSS_DEV=/path/to/galtzo-floss eval_nomono_gems( gems: local_gems_to_eval, - prefix: "GALTZO_FLOSS", - path_env: "GALTZO_FLOSS_DEV", - vendored_gems_env: "GALTZO_FLOSS_VENDORED_GEMS", - vendor_gem_dir_env: "GALTZO_FLOSS_VENDOR_GEM_DIR", - debug_env: "GALTZO_FLOSS_DEBUG" + prefix: 'GALTZO_FLOSS', + path_env: 'GALTZO_FLOSS_DEV', + vendored_gems_env: 'GALTZO_FLOSS_VENDORED_GEMS', + vendor_gem_dir_env: 'GALTZO_FLOSS_VENDOR_GEM_DIR', + debug_env: 'GALTZO_FLOSS_DEBUG' ) diff --git a/gems/commonmarker-merge/gemfiles/modular/erb/r2/v3.0.gemfile b/gems/commonmarker-merge/gemfiles/modular/erb/r2/v3.0.gemfile index c03bd8d85..7c83a239b 100644 --- a/gems/commonmarker-merge/gemfiles/modular/erb/r2/v3.0.gemfile +++ b/gems/commonmarker-merge/gemfiles/modular/erb/r2/v3.0.gemfile @@ -1 +1 @@ -gem "erb", "~> 3.0" # ruby >= 2.7.0 +gem 'erb', '~> 3.0' # ruby >= 2.7.0 diff --git a/gems/commonmarker-merge/gemfiles/modular/erb/r3/v5.0.gemfile b/gems/commonmarker-merge/gemfiles/modular/erb/r3/v5.0.gemfile index 1bd029cc1..ec7ff451f 100644 --- a/gems/commonmarker-merge/gemfiles/modular/erb/r3/v5.0.gemfile +++ b/gems/commonmarker-merge/gemfiles/modular/erb/r3/v5.0.gemfile @@ -1 +1 @@ -gem "erb", "~> 6.0", ">= 6.0.6" # ruby >= 3.2.0 +gem 'erb', '~> 6.0', '>= 6.0.6' # ruby >= 3.2.0 diff --git a/gems/commonmarker-merge/gemfiles/modular/erb/r4/v5.0.gemfile b/gems/commonmarker-merge/gemfiles/modular/erb/r4/v5.0.gemfile index 1bd029cc1..ec7ff451f 100644 --- a/gems/commonmarker-merge/gemfiles/modular/erb/r4/v5.0.gemfile +++ b/gems/commonmarker-merge/gemfiles/modular/erb/r4/v5.0.gemfile @@ -1 +1 @@ -gem "erb", "~> 6.0", ">= 6.0.6" # ruby >= 3.2.0 +gem 'erb', '~> 6.0', '>= 6.0.6' # ruby >= 3.2.0 diff --git a/gems/commonmarker-merge/gemfiles/modular/erb/vHEAD.gemfile b/gems/commonmarker-merge/gemfiles/modular/erb/vHEAD.gemfile index 48fee4218..ea0101185 100644 --- a/gems/commonmarker-merge/gemfiles/modular/erb/vHEAD.gemfile +++ b/gems/commonmarker-merge/gemfiles/modular/erb/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 3.2 -gem "erb", github: "ruby/erb", branch: "master" +gem 'erb', github: 'ruby/erb', branch: 'master' diff --git a/gems/commonmarker-merge/gemfiles/modular/json/truffleruby_22_3.gemfile b/gems/commonmarker-merge/gemfiles/modular/json/truffleruby_22_3.gemfile index b0e69ab11..9b2f8d96a 100644 --- a/gems/commonmarker-merge/gemfiles/modular/json/truffleruby_22_3.gemfile +++ b/gems/commonmarker-merge/gemfiles/modular/json/truffleruby_22_3.gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -if RUBY_ENGINE == "truffleruby" && RUBY_ENGINE_VERSION.start_with?("22.3") +if RUBY_ENGINE == 'truffleruby' && RUBY_ENGINE_VERSION.start_with?('22.3') # TruffleRuby 22.3 ships the json default gem from its emulated MRI Ruby. - gem "json", "= 2.5.1" + gem 'json', '= 2.5.1' end diff --git a/gems/commonmarker-merge/gemfiles/modular/json/truffleruby_23_0.gemfile b/gems/commonmarker-merge/gemfiles/modular/json/truffleruby_23_0.gemfile index 7b2660a2b..d787a5ef4 100644 --- a/gems/commonmarker-merge/gemfiles/modular/json/truffleruby_23_0.gemfile +++ b/gems/commonmarker-merge/gemfiles/modular/json/truffleruby_23_0.gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -if RUBY_ENGINE == "truffleruby" && RUBY_ENGINE_VERSION.start_with?("23.0") +if RUBY_ENGINE == 'truffleruby' && RUBY_ENGINE_VERSION.start_with?('23.0') # TruffleRuby 23.0 ships the json default gem from its emulated MRI Ruby. - gem "json", "= 2.6.1" + gem 'json', '= 2.6.1' end diff --git a/gems/commonmarker-merge/gemfiles/modular/json/truffleruby_23_1.gemfile b/gems/commonmarker-merge/gemfiles/modular/json/truffleruby_23_1.gemfile index dfa21f2e4..d78486b0e 100644 --- a/gems/commonmarker-merge/gemfiles/modular/json/truffleruby_23_1.gemfile +++ b/gems/commonmarker-merge/gemfiles/modular/json/truffleruby_23_1.gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -if RUBY_ENGINE == "truffleruby" && RUBY_ENGINE_VERSION.start_with?("23.1") +if RUBY_ENGINE == 'truffleruby' && RUBY_ENGINE_VERSION.start_with?('23.1') # TruffleRuby 23.1 ships the json default gem from its emulated MRI Ruby. - gem "json", "= 2.6.3" + gem 'json', '= 2.6.3' end diff --git a/gems/commonmarker-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile b/gems/commonmarker-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile index 42e9d9bd4..e27f1bbae 100644 --- a/gems/commonmarker-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile +++ b/gems/commonmarker-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 -gem "mutex_m", "~> 0.2" +gem 'mutex_m', '~> 0.2' diff --git a/gems/commonmarker-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile b/gems/commonmarker-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile index 42e9d9bd4..e27f1bbae 100644 --- a/gems/commonmarker-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile +++ b/gems/commonmarker-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 -gem "mutex_m", "~> 0.2" +gem 'mutex_m', '~> 0.2' diff --git a/gems/commonmarker-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile b/gems/commonmarker-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile index 42e9d9bd4..e27f1bbae 100644 --- a/gems/commonmarker-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile +++ b/gems/commonmarker-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 -gem "mutex_m", "~> 0.2" +gem 'mutex_m', '~> 0.2' diff --git a/gems/commonmarker-merge/gemfiles/modular/mutex_m/vHEAD.gemfile b/gems/commonmarker-merge/gemfiles/modular/mutex_m/vHEAD.gemfile index 8af3b6fca..9dac2f6cb 100644 --- a/gems/commonmarker-merge/gemfiles/modular/mutex_m/vHEAD.gemfile +++ b/gems/commonmarker-merge/gemfiles/modular/mutex_m/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 (dependency of omniauth) -gem "mutex_m", github: "ruby/mutex_m", branch: "master" +gem 'mutex_m', github: 'ruby/mutex_m', branch: 'master' diff --git a/gems/commonmarker-merge/gemfiles/modular/optional.gemfile b/gems/commonmarker-merge/gemfiles/modular/optional.gemfile index 80bc45196..9ea429538 100644 --- a/gems/commonmarker-merge/gemfiles/modular/optional.gemfile +++ b/gems/commonmarker-merge/gemfiles/modular/optional.gemfile @@ -9,8 +9,8 @@ # Optional dependencies are not depended on directly, but may be used if present. # Required for curated binstubs generated by kettle-jem install -gem "rbs", ">= 3.0", require: false # ruby >= 3.1 +gem 'rbs', '>= 3.0', require: false # ruby >= 3.1 # Required for kettle-pre-release # URL parsing with Unicode support (falls back to URI if not available) -gem "addressable", ">= 2.8", "< 3" # ruby >= 2.2 +gem 'addressable', '>= 2.8', '< 3' # ruby >= 2.2 diff --git a/gems/commonmarker-merge/gemfiles/modular/rspec.gemfile b/gems/commonmarker-merge/gemfiles/modular/rspec.gemfile index 72fdf8b7f..2af210a41 100644 --- a/gems/commonmarker-merge/gemfiles/modular/rspec.gemfile +++ b/gems/commonmarker-merge/gemfiles/modular/rspec.gemfile @@ -1,4 +1,4 @@ -gem "rspec_junit_formatter", - github: "pboling/rspec_junit_formatter", - branch: "main", - ref: "9e6bcaaedd49477b62878ed568dc4ada5cc7cb5e" +gem 'rspec_junit_formatter', + github: 'pboling/rspec_junit_formatter', + branch: 'main', + ref: '9e6bcaaedd49477b62878ed568dc4ada5cc7cb5e' diff --git a/gems/commonmarker-merge/gemfiles/modular/runtime_heads.gemfile b/gems/commonmarker-merge/gemfiles/modular/runtime_heads.gemfile index 02f134c7f..ebf17c529 100644 --- a/gems/commonmarker-merge/gemfiles/modular/runtime_heads.gemfile +++ b/gems/commonmarker-merge/gemfiles/modular/runtime_heads.gemfile @@ -8,4 +8,4 @@ # Test against HEAD of runtime dependencies so we can proactively file bugs -eval_gemfile("x_std_libs/vHEAD.gemfile") +eval_gemfile('x_std_libs/vHEAD.gemfile') diff --git a/gems/commonmarker-merge/gemfiles/modular/stringio/r2/v3.0.gemfile b/gems/commonmarker-merge/gemfiles/modular/stringio/r2/v3.0.gemfile index e85bb18ee..3616f4e3a 100644 --- a/gems/commonmarker-merge/gemfiles/modular/stringio/r2/v3.0.gemfile +++ b/gems/commonmarker-merge/gemfiles/modular/stringio/r2/v3.0.gemfile @@ -2,4 +2,4 @@ # NOT SEMVER # Version 3.0.7 dropped support for Ruby <= 2.7 # Version 3.0.0 dropped support for Ruby <= 2.4 -gem "stringio", ">= 3.0" +gem 'stringio', '>= 3.0' diff --git a/gems/commonmarker-merge/gemfiles/modular/stringio/r3/v3.0.gemfile b/gems/commonmarker-merge/gemfiles/modular/stringio/r3/v3.0.gemfile index e85bb18ee..3616f4e3a 100644 --- a/gems/commonmarker-merge/gemfiles/modular/stringio/r3/v3.0.gemfile +++ b/gems/commonmarker-merge/gemfiles/modular/stringio/r3/v3.0.gemfile @@ -2,4 +2,4 @@ # NOT SEMVER # Version 3.0.7 dropped support for Ruby <= 2.7 # Version 3.0.0 dropped support for Ruby <= 2.4 -gem "stringio", ">= 3.0" +gem 'stringio', '>= 3.0' diff --git a/gems/commonmarker-merge/gemfiles/modular/stringio/r4/v3.0.gemfile b/gems/commonmarker-merge/gemfiles/modular/stringio/r4/v3.0.gemfile index e85bb18ee..3616f4e3a 100644 --- a/gems/commonmarker-merge/gemfiles/modular/stringio/r4/v3.0.gemfile +++ b/gems/commonmarker-merge/gemfiles/modular/stringio/r4/v3.0.gemfile @@ -2,4 +2,4 @@ # NOT SEMVER # Version 3.0.7 dropped support for Ruby <= 2.7 # Version 3.0.0 dropped support for Ruby <= 2.4 -gem "stringio", ">= 3.0" +gem 'stringio', '>= 3.0' diff --git a/gems/commonmarker-merge/gemfiles/modular/stringio/vHEAD.gemfile b/gems/commonmarker-merge/gemfiles/modular/stringio/vHEAD.gemfile index 5f2a74126..78f5f5d8a 100644 --- a/gems/commonmarker-merge/gemfiles/modular/stringio/vHEAD.gemfile +++ b/gems/commonmarker-merge/gemfiles/modular/stringio/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 (dependency of omniauth) -gem "stringio", github: "ruby/stringio", branch: "master" +gem 'stringio', github: 'ruby/stringio', branch: 'master' diff --git a/gems/commonmarker-merge/gemfiles/modular/style.gemfile b/gems/commonmarker-merge/gemfiles/modular/style.gemfile index 35de4dcd6..4dbcc02c0 100644 --- a/gems/commonmarker-merge/gemfiles/modular/style.gemfile +++ b/gems/commonmarker-merge/gemfiles/modular/style.gemfile @@ -9,23 +9,23 @@ # Style tasks run on the latest Ruby; RuboCop-LTS selects the compatibility # rules for the configured Ruby floor independently from task dependency floors. -gem "reek", "~> 6.5", ">= 6.5.0" +gem 'reek', '~> 6.5', '>= 6.5.0' platform :mri do - gem "appraisal2-rubocop", "~> 1.0", ">= 1.0.0", require: false - gem "rubocop-gradual", "~> 0.4", ">= 0.4.0" - gem "rubocop-minitest", "~> 0.40", ">= 0.40.0" - gem "rubocop-on-rbs", "~> 2.0", ">= 2.0.0" # ruby >= 3.2.0 + gem 'appraisal2-rubocop', '~> 1.0', '>= 1.0.0', require: false + gem 'rubocop-gradual', '~> 0.4', '>= 0.4.0' + gem 'rubocop-minitest', '~> 0.40', '>= 0.40.0' + gem 'rubocop-on-rbs', '~> 2.0', '>= 2.0.0' # ruby >= 3.2.0 # gem "rubocop", "~> 1.73", ">= 1.73.2" # constrained by standard - gem "rubocop-packaging", "~> 0.6", ">= 0.6.0" - gem "standard", "~> 1.56", ">= 1.56.0" + gem 'rubocop-packaging', '~> 0.6', '>= 0.6.0' + gem 'standard', '~> 1.56', '>= 1.56.0' - if ENV.fetch("RUBOCOP_LTS_LOCAL", "false").casecmp("false").zero? + if ENV.fetch('RUBOCOP_LTS_LOCAL', 'false').casecmp('false').zero? declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) - gem "rubocop-lts", "~> 24.2", ">= 24.2.1" unless declared_gems.include?("rubocop-lts") - gem "rubocop-lts-rspec", "~> 1.0", ">= 1.0.5" unless declared_gems.include?("rubocop-lts-rspec") - gem "rubocop-ruby3_2", "~> 3.0", ">= 3.0.6" unless declared_gems.include?("rubocop-ruby3_2") + gem 'rubocop-lts', '~> 24.2', '>= 24.2.1' unless declared_gems.include?('rubocop-lts') + gem 'rubocop-lts-rspec', '~> 1.0', '>= 1.0.5' unless declared_gems.include?('rubocop-lts-rspec') + gem 'rubocop-ruby3_2', '~> 3.0', '>= 3.0.6' unless declared_gems.include?('rubocop-ruby3_2') else - eval_gemfile("style_local.gemfile") + eval_gemfile('style_local.gemfile') end end diff --git a/gems/commonmarker-merge/gemfiles/modular/style_local.gemfile b/gems/commonmarker-merge/gemfiles/modular/style_local.gemfile index 0e9d987e6..31dd7b5be 100644 --- a/gems/commonmarker-merge/gemfiles/modular/style_local.gemfile +++ b/gems/commonmarker-merge/gemfiles/modular/style_local.gemfile @@ -14,21 +14,19 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] -nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) +nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] +nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == "nomono" } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - if nomono_locked - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] - end + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked end -Kernel.send(:gem, "nomono", *nomono_activation_requirements) -require "nomono/bundler" +Kernel.send(:gem, 'nomono', *nomono_activation_requirements) +require 'nomono/bundler' local_gems = %w[rubocop-lts rubocop-lts-rspec rubocop-ruby3_2 standard-rubocop-lts] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) @@ -38,11 +36,11 @@ local_gems_to_eval = local_gems - %w[commonmarker-merge] - declared_gems platform :mri do eval_nomono_gems( gems: local_gems_to_eval, - prefix: "RUBOCOP_LTS", - path_env: "RUBOCOP_LTS_LOCAL", - vendored_gems_env: "VENDORED_GEMS", - vendor_gem_dir_env: "VENDOR_GEM_DIR", - debug_env: "RUBOCOP_LTS_DEBUG", - root: ["src", "rubocop-lts"] + prefix: 'RUBOCOP_LTS', + path_env: 'RUBOCOP_LTS_LOCAL', + vendored_gems_env: 'VENDORED_GEMS', + vendor_gem_dir_env: 'VENDOR_GEM_DIR', + debug_env: 'RUBOCOP_LTS_DEBUG', + root: %w[src rubocop-lts] ) end diff --git a/gems/commonmarker-merge/gemfiles/modular/templating.gemfile b/gems/commonmarker-merge/gemfiles/modular/templating.gemfile index 47138ffbb..a672de184 100644 --- a/gems/commonmarker-merge/gemfiles/modular/templating.gemfile +++ b/gems/commonmarker-merge/gemfiles/modular/templating.gemfile @@ -1,18 +1,18 @@ # frozen_string_literal: true -structuredmerge_remote = ENV.fetch("STRUCTUREDMERGE_DEV", "false").casecmp("false").zero? -kettle_remote = ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false").zero? +structuredmerge_remote = ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false').zero? +kettle_remote = ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? if structuredmerge_remote # Parser dependencies for released installs. - gem "tree_sitter_language_pack", "~> 1.13", ">= 1.13.3" + gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' # Merge recipes for released installs. - gem "kettle-jem", ">= 7.0" + gem 'kettle-jem', '>= 7.0' end if kettle_remote # Template/plugin checks for released installs. - gem "kettle-drift", "~> 1.0", ">= 1.0.6", require: false + gem 'kettle-drift', '~> 1.0', '>= 1.0.6', require: false end # Set STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local development with path-based dependencies. @@ -21,4 +21,4 @@ end # # Set KETTLE_DEV_DEV=/path/to/my for local development with Kettle plugin gems. # When false (default / CI), released Kettle plugin gems are used. -eval_gemfile "templating_local.gemfile" unless structuredmerge_remote && kettle_remote +eval_gemfile 'templating_local.gemfile' unless structuredmerge_remote && kettle_remote diff --git a/gems/commonmarker-merge/gemfiles/modular/templating_local.gemfile b/gems/commonmarker-merge/gemfiles/modular/templating_local.gemfile index 6b5b2916c..b47c25177 100644 --- a/gems/commonmarker-merge/gemfiles/modular/templating_local.gemfile +++ b/gems/commonmarker-merge/gemfiles/modular/templating_local.gemfile @@ -12,21 +12,19 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] -nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) +nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] +nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == "nomono" } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - if nomono_locked - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] - end + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked end -Kernel.send(:gem, "nomono", *nomono_activation_requirements) -require "nomono/bundler" +Kernel.send(:gem, 'nomono', *nomono_activation_requirements) +require 'nomono/bundler' structuredmerge_local_gems = %w[ tree_haver @@ -69,25 +67,25 @@ structuredmerge_local_gems_to_eval = structuredmerge_local_gems - %w[commonmarke kettle_dev_local_gems_to_eval = kettle_dev_local_gems - %w[commonmarker-merge] - declared_gems platform :mri do - if ENV.fetch("STRUCTUREDMERGE_DEV", "false").casecmp("false") != 0 + if ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false') != 0 eval_nomono_gems( gems: structuredmerge_local_gems_to_eval, - prefix: "STRUCTUREDMERGE", - path_env: "STRUCTUREDMERGE_DEV", - vendored_gems_env: "VENDORED_GEMS", - vendor_gem_dir_env: "VENDOR_GEM_DIR", - debug_env: "STRUCTUREDMERGE_DEBUG" + prefix: 'STRUCTUREDMERGE', + path_env: 'STRUCTUREDMERGE_DEV', + vendored_gems_env: 'VENDORED_GEMS', + vendor_gem_dir_env: 'VENDOR_GEM_DIR', + debug_env: 'STRUCTUREDMERGE_DEBUG' ) end - if ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false") != 0 + if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false') != 0 eval_nomono_gems( gems: kettle_dev_local_gems_to_eval, - prefix: "KETTLE_DEV", - path_env: "KETTLE_DEV_DEV", - vendored_gems_env: "VENDORED_GEMS", - vendor_gem_dir_env: "VENDOR_GEM_DIR", - debug_env: "KETTLE_DEV_DEBUG" + prefix: 'KETTLE_DEV', + path_env: 'KETTLE_DEV_DEV', + vendored_gems_env: 'VENDORED_GEMS', + vendor_gem_dir_env: 'VENDOR_GEM_DIR', + debug_env: 'KETTLE_DEV_DEBUG' ) end end diff --git a/gems/commonmarker-merge/gemfiles/modular/webrick/r4/v1.9.gemfile b/gems/commonmarker-merge/gemfiles/modular/webrick/r4/v1.9.gemfile index eaab4a473..b1329ba84 100644 --- a/gems/commonmarker-merge/gemfiles/modular/webrick/r4/v1.9.gemfile +++ b/gems/commonmarker-merge/gemfiles/modular/webrick/r4/v1.9.gemfile @@ -1 +1 @@ -gem "webrick", "~> 1.9" +gem 'webrick', '~> 1.9' diff --git a/gems/commonmarker-merge/gemfiles/modular/webrick/vHEAD.gemfile b/gems/commonmarker-merge/gemfiles/modular/webrick/vHEAD.gemfile index 8a789b634..c7e6f81a1 100644 --- a/gems/commonmarker-merge/gemfiles/modular/webrick/vHEAD.gemfile +++ b/gems/commonmarker-merge/gemfiles/modular/webrick/vHEAD.gemfile @@ -1 +1 @@ -gem "webrick", ">= 1.9" +gem 'webrick', '>= 1.9' diff --git a/gems/commonmarker-merge/gemfiles/modular/x_std_libs.gemfile b/gems/commonmarker-merge/gemfiles/modular/x_std_libs.gemfile index 77aad43f2..b1f43c097 100644 --- a/gems/commonmarker-merge/gemfiles/modular/x_std_libs.gemfile +++ b/gems/commonmarker-merge/gemfiles/modular/x_std_libs.gemfile @@ -1,12 +1,12 @@ ### Std Lib Extracted Gems ruby_version = Gem::Version.new(RUBY_VERSION) -if ruby_version >= Gem::Version.new("4.0") - eval_gemfile "x_std_libs/r4/libs.gemfile" -elsif ruby_version >= Gem::Version.new("3.2") - eval_gemfile "x_std_libs/r3/libs.gemfile" -elsif ruby_version >= Gem::Version.new("3.1") - eval_gemfile "x_std_libs/r3.1/libs.gemfile" +if ruby_version >= Gem::Version.new('4.0') + eval_gemfile 'x_std_libs/r4/libs.gemfile' +elsif ruby_version >= Gem::Version.new('3.2') + eval_gemfile 'x_std_libs/r3/libs.gemfile' +elsif ruby_version >= Gem::Version.new('3.1') + eval_gemfile 'x_std_libs/r3.1/libs.gemfile' else - eval_gemfile "x_std_libs/r2/libs.gemfile" + eval_gemfile 'x_std_libs/r2/libs.gemfile' end diff --git a/gems/commonmarker-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile b/gems/commonmarker-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile index 441c4f03a..16a5e3d70 100644 --- a/gems/commonmarker-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile +++ b/gems/commonmarker-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile @@ -1,3 +1,3 @@ -eval_gemfile "../../erb/r2/v3.0.gemfile" -eval_gemfile "../../mutex_m/r2/v0.3.gemfile" -eval_gemfile "../../stringio/r2/v3.0.gemfile" +eval_gemfile '../../erb/r2/v3.0.gemfile' +eval_gemfile '../../mutex_m/r2/v0.3.gemfile' +eval_gemfile '../../stringio/r2/v3.0.gemfile' diff --git a/gems/commonmarker-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile b/gems/commonmarker-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile index c293a3ddd..220ff95c1 100644 --- a/gems/commonmarker-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile +++ b/gems/commonmarker-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile @@ -1,3 +1,3 @@ -eval_gemfile "../../erb/r3/v5.0.gemfile" -eval_gemfile "../../mutex_m/r3/v0.3.gemfile" -eval_gemfile "../../stringio/r3/v3.0.gemfile" +eval_gemfile '../../erb/r3/v5.0.gemfile' +eval_gemfile '../../mutex_m/r3/v0.3.gemfile' +eval_gemfile '../../stringio/r3/v3.0.gemfile' diff --git a/gems/commonmarker-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile b/gems/commonmarker-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile index eb5574247..e2f6501eb 100644 --- a/gems/commonmarker-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile +++ b/gems/commonmarker-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile @@ -1,6 +1,6 @@ -eval_gemfile "../../erb/r4/v5.0.gemfile" -eval_gemfile "../../mutex_m/r4/v0.3.gemfile" -eval_gemfile "../../stringio/r4/v3.0.gemfile" -eval_gemfile "../../benchmark/r4/v0.5.gemfile" -eval_gemfile "../../cgi/r4/v0.5.gemfile" -eval_gemfile "../../webrick/r4/v1.9.gemfile" +eval_gemfile '../../erb/r4/v5.0.gemfile' +eval_gemfile '../../mutex_m/r4/v0.3.gemfile' +eval_gemfile '../../stringio/r4/v3.0.gemfile' +eval_gemfile '../../benchmark/r4/v0.5.gemfile' +eval_gemfile '../../cgi/r4/v0.5.gemfile' +eval_gemfile '../../webrick/r4/v1.9.gemfile' diff --git a/gems/commonmarker-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile b/gems/commonmarker-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile index d4d5b16c9..ab75cccf1 100644 --- a/gems/commonmarker-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile +++ b/gems/commonmarker-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile @@ -1,6 +1,6 @@ -eval_gemfile "../erb/vHEAD.gemfile" -eval_gemfile "../mutex_m/vHEAD.gemfile" -eval_gemfile "../stringio/vHEAD.gemfile" -eval_gemfile "../benchmark/vHEAD.gemfile" -eval_gemfile "../cgi/vHEAD.gemfile" -eval_gemfile "../webrick/vHEAD.gemfile" +eval_gemfile '../erb/vHEAD.gemfile' +eval_gemfile '../mutex_m/vHEAD.gemfile' +eval_gemfile '../stringio/vHEAD.gemfile' +eval_gemfile '../benchmark/vHEAD.gemfile' +eval_gemfile '../cgi/vHEAD.gemfile' +eval_gemfile '../webrick/vHEAD.gemfile' diff --git a/gems/commonmarker-merge/lib/commonmarker/merge/version.rb b/gems/commonmarker-merge/lib/commonmarker/merge/version.rb index c84c8d0bb..477db0695 100644 --- a/gems/commonmarker-merge/lib/commonmarker/merge/version.rb +++ b/gems/commonmarker-merge/lib/commonmarker/merge/version.rb @@ -3,7 +3,7 @@ module Commonmarker module Merge module Version - VERSION = "7.1.0" + VERSION = '7.1.0' end VERSION = Version::VERSION # Traditional Constant Location end diff --git a/gems/commonmarker-merge/spec/spec_helper.rb b/gems/commonmarker-merge/spec/spec_helper.rb index 4b94ae46f..7e8958c35 100644 --- a/gems/commonmarker-merge/spec/spec_helper.rb +++ b/gems/commonmarker-merge/spec/spec_helper.rb @@ -7,16 +7,16 @@ # NOTE: Gemfiles for non-coverage appraisals may not have kettle-soup-cover. # The rescue LoadError handles that scenario. begin - require "kettle-soup-cover" + require 'kettle-soup-cover' if Kettle::Soup::Cover::DO_COV # Requiring simplecov loads the project-local `.simplecov`. - require "simplecov" - require "kettle/soup/cover/config" + require 'simplecov' + require 'kettle/soup/cover/config' SimpleCov.start end -rescue LoadError => error +rescue LoadError => e # check the error message and re-raise when unexpected - raise error unless error.message.include?("kettle") + raise e unless e.message.include?('kettle') end # External RSpec & related config diff --git a/gems/parslet-toml-merge/Gemfile.lock b/gems/parslet-toml-merge/Gemfile.lock index 1a572b8e1..1c3ef5959 100644 --- a/gems/parslet-toml-merge/Gemfile.lock +++ b/gems/parslet-toml-merge/Gemfile.lock @@ -7,13 +7,265 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/toml-merge + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly + specs: + ast-crispr-markdown-markly (7.1.0) + ast-crispr (= 7.1.0) + markly-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism + specs: + ast-crispr-ruby-prism (7.1.0) + ast-crispr (= 7.1.0) + prism-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr + specs: + ast-crispr (7.1.0) + ast-merge (= 7.1.0) + service_actor (~> 3.9) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git + specs: + ast-merge-git (7.1.0) + ast-merge (= 7.1.0) + json-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge + specs: + ast-merge (7.1.0) + benchmark + token-resolver (~> 2.0, >= 2.0.4) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template + specs: + ast-template (7.1.0) + ast-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge + specs: + bash-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge + specs: + binary-merge (7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge + specs: + citrus-toml-merge (7.1.0) + toml-merge (= 7.1.0) + toml-rb (~> 4.1) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge + specs: + commonmarker-merge (7.1.0) + commonmarker (~> 2.2) + markdown-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge + specs: + dotenv-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge + specs: + go-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge + specs: + json-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem + specs: + kettle-jem (7.1.0) + addressable (>= 2.8, < 3) + ast-crispr-markdown-markly (= 7.1.0) + ast-crispr-ruby-prism (= 7.1.0) + ast-merge (= 7.1.0) + bash-merge (= 7.1.0) + citrus-toml-merge (= 7.1.0) + commonmarker-merge (= 7.1.0) + dotenv-merge (= 7.1.0) + json-merge (= 7.1.0) + kettle-dev (~> 2.3, >= 2.3.5) + kettle-rb (~> 0.1, >= 0.1.4) + kramdown-merge (= 7.1.0) + markdown-merge (= 7.1.0) + markly-merge (= 7.1.0) + prism-merge (= 7.1.0) + psych-merge (= 7.1.0) + rbs (>= 3.10) + rbs-merge (= 7.1.0) + ruby-merge (= 7.1.0) + token-resolver (~> 2.0, >= 2.0.4) + toml-merge (= 7.1.0) + toml-rb (~> 4.2) + tree_haver (= 7.1.0) + yaml-merge (= 7.1.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge + specs: + kramdown-merge (7.1.0) + kramdown (~> 2.5) + markdown-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge + specs: + markdown-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge + specs: + markly-merge (7.1.0) + markdown-merge (= 7.1.0) + markly (~> 0.9) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge + specs: + plain-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge + specs: + prism-merge (7.1.0) + prism (~> 1.6) + ruby-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge + specs: + psych-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + yaml-merge (= 7.1.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge + specs: + rbs-merge (7.1.0) + ast-merge (= 7.1.0) + rbs (>= 3.10) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge + specs: + ruby-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge + specs: + rust-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb + specs: + smorg-rb (7.1.0) + ast-merge (= 7.1.0) + ast-merge-git (= 7.1.0) + diff-lcs (~> 1.5) + go-merge (= 7.1.0) + json-merge (= 7.1.0) + kettle-jem (= 7.1.0) + markly-merge (= 7.1.0) + plain-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge specs: toml-merge (7.1.0) ast-merge (= 7.1.0) tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver + specs: + tree_haver (7.1.0) + citrus (~> 3.0) + parslet (~> 2.0) + tree_sitter_language_pack (>= 1.13.2, < 2.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge + specs: + typescript-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge + specs: + yaml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge + specs: + zip-merge (7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + GEM remote: https://gem.coop/ specs: @@ -29,11 +281,6 @@ GEM rubocop (>= 1.0) version_gem (~> 1.1, >= 1.1.14) ast (2.4.3) - ast-merge (7.1.0) - benchmark - token-resolver (~> 2.0, >= 2.0.4) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) backports (3.25.3) benchmark (0.5.0) bigdecimal (4.1.2) @@ -43,6 +290,7 @@ GEM cgi (0.5.2) citrus (3.0.2) cmdparse (3.0.7) + commonmarker (2.9.0-x86_64-linux) concurrent-ruby (1.3.8) date (3.5.1) debug (1.11.1) @@ -105,6 +353,8 @@ GEM kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) + kettle-drift (1.0.6) + version_gem (~> 1.1, >= 1.1.14) kettle-rb (0.1.5) kettle-soup-cover (3.0.4) kettle-wash (~> 0.1, >= 0.1.0) @@ -133,6 +383,7 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) + markly (0.16.0) mutex_m (0.3.0) nokogiri (1.19.4-x86_64-linux-gnu) racc (~> 1.4) @@ -287,6 +538,8 @@ GEM ruby-progressbar (1.13.0) ruby_engine (2.0.3) ruby_version (1.0.3) + service_actor (3.9.4) + zeitwerk (>= 1.0) silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) @@ -343,11 +596,9 @@ GEM version_gem (~> 1.1, >= 1.1.14) toml (0.3.0) parslet (>= 1.8.0, < 3.0.0) - tree_haver (7.1.0) - citrus (~> 3.0) - parslet (~> 2.0) - tree_sitter_language_pack (>= 1.13.2, < 2.0) - version_gem (~> 1.1, >= 1.1.9) + toml-rb (4.2.0) + citrus (~> 3.0, > 3.0) + racc (~> 1.7) tree_sitter_language_pack (1.13.3-x86_64-linux) sorbet-runtime (~> 0.5) tsort (0.2.0) @@ -393,24 +644,46 @@ DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) appraisal2-rubocop (~> 1.0, >= 1.0.0) + ast-crispr! + ast-crispr-markdown-markly! + ast-crispr-ruby-prism! + ast-merge! + ast-merge-git! + ast-template! + bash-merge! benchmark (~> 0.5, >= 0.5.0) + binary-merge! bundler-audit (~> 0.9.3) cgi (~> 0.5) + citrus-toml-merge! + commonmarker-merge! debug (>= 1.1) + dotenv-merge! erb (~> 6.0, >= 6.0.6) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.0) + go-merge! irb (~> 1.17) + json-merge! kettle-dev (~> 2.0, >= 2.2.25) + kettle-drift (~> 1.0, >= 1.0.6) + kettle-jem! kettle-soup-cover (~> 3.0, >= 3.0.3) kettle-test (~> 2.0, >= 2.0.9) kramdown (~> 2.5, >= 2.5.2) + kramdown-merge! kramdown-parser-gfm (~> 1.1) + markdown-merge! + markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) parslet-toml-merge! + plain-merge! + prism-merge! + psych-merge! rake (~> 13.0) rbs (>= 3.0) + rbs-merge! rdoc (~> 6.11) reek (~> 6.5, >= 6.5.0) require_bench (~> 1.0, >= 1.0.4) @@ -421,20 +694,27 @@ DEPENDENCIES rubocop-on-rbs (~> 2.0, >= 2.0.0) rubocop-packaging (~> 0.6, >= 0.6.0) rubocop-ruby3_2 (~> 3.0, >= 3.0.6) + ruby-merge! ruby-progressbar (~> 1.13) + rust-merge! + smorg-rb! standard (~> 1.56, >= 1.56.0) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) toml-merge! + tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) + typescript-merge! webrick (~> 1.9) yaml-converter (~> 0.2, >= 0.2.3) + yaml-merge! yard (~> 0.9, >= 0.9.45) yard-fence (~> 0.9, >= 0.9.6) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) yard-timekeeper (~> 0.2, >= 0.2.4) yard-yaml (~> 0.2, >= 0.2.3) + zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af @@ -442,20 +722,31 @@ CHECKSUMS appraisal2 (3.2.0) sha256=ccd0b767ac4060cd7af6d16747459b6990f49c39c7b4fb1f7d1146b1e97c492f appraisal2-rubocop (1.0.0) sha256=b71410fbb014befda5340605a605b7f6f3f012739baf0acc5b4351b592c3258d ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 + ast-crispr (7.1.0) + ast-crispr-markdown-markly (7.1.0) + ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) + ast-merge-git (7.1.0) + ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 + bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd + binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 + citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 + commonmarker (2.9.0-x86_64-linux) sha256=8cfe92970eef585a19ddf6613224b91cab64d6029834661bda801f877c9c7f43 + commonmarker-merge (7.1.0) concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 + dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -468,20 +759,28 @@ CHECKSUMS gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f + go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 + json-merge (7.1.0) kettle-dev (2.3.9) + kettle-drift (1.0.6) sha256=46eda08fa4411d1f3c6682a95eef1c9df4e94611b3949f49d4c7b43c0ed356a3 + kettle-jem (7.1.0) kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f kettle-soup-cover (3.0.4) kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa + kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 + markdown-merge (7.1.0) + markly (0.16.0) sha256=6f70d79e385b1efc9e171f74c81628826259039fe6c778e03c3924c71dac5511 + markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-x86_64-linux-gnu) sha256=379fae440b28915e3f19d752ce2dcf8465ed2b2fbefd2a7ca0dd497bc981a06a nomono (1.0.9) @@ -492,15 +791,19 @@ CHECKSUMS parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 parslet-toml-merge (7.1.0) + plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 + prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 + psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 + rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb @@ -535,15 +838,19 @@ CHECKSUMS rubocop-rspec_rails (2.32.0) sha256=4a0d641c72f6ebb957534f539d9d0a62c47abd8ce0d0aeee1ef4701e892a9100 rubocop-ruby3_2 (3.0.7) sha256=f53dd6d286fb05186214fc6ec116783e7f837030918e8931c05de773e98f8466 rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 + ruby-merge (7.1.0) ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 + rust-merge (7.1.0) + service_actor (3.9.4) sha256=e63b523630b9a7e62959b2a90113b08d2565b5de9c148557b281ef847c9539ce silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed + smorg-rb (7.1.0) sorbet-runtime (0.6.13351) sha256=f8fee17c6e3edf835dc6823d26afb9a7c8969c6710d1fabe2fb43f4e0c15c64f standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b @@ -560,15 +867,18 @@ CHECKSUMS token-resolver (2.0.5) sha256=b852f924287ffb58a440856e862b056c8ad97e74b4b2526cee43e0771f40c25c toml (0.3.0) sha256=0a91d0f76a9036e84e44f95693b12f58d358c1df3ac8e3b5271f2056ecc6e4b9 toml-merge (7.1.0) + toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 + typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 webrick (1.9.2) sha256=beb4a15fc474defed24a3bda4ffd88a490d517c9e4e6118c3edce59e45864131 yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 + yaml-merge (7.1.0) yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd @@ -576,6 +886,7 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 + zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH diff --git a/gems/smorg-rb/Gemfile.lock b/gems/smorg-rb/Gemfile.lock index f73125264..4895c0f61 100644 --- a/gems/smorg-rb/Gemfile.lock +++ b/gems/smorg-rb/Gemfile.lock @@ -12,47 +12,276 @@ PATH plain-merge (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) -GEM - remote: https://gem.coop/ +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly specs: - addressable (2.9.0) - public_suffix (>= 2.0.2, < 8.0) - ansi (1.6.0) - appraisal2 (3.2.0) - bundler (>= 1.17.3) - rake (>= 10) - thor (>= 0.14) - appraisal2-rubocop (1.0.0) - appraisal2 (>= 3.1.4) - rubocop (>= 1.0) - version_gem (~> 1.1, >= 1.1.14) - ast (2.4.3) - ast-crispr (7.1.0) - ast-merge (= 7.1.0) - service_actor (~> 3.9) - version_gem (~> 1.1, >= 1.1.9) ast-crispr-markdown-markly (7.1.0) ast-crispr (= 7.1.0) markly-merge (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism + specs: ast-crispr-ruby-prism (7.1.0) ast-crispr (= 7.1.0) prism-merge (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr + specs: + ast-crispr (7.1.0) + ast-merge (= 7.1.0) + service_actor (~> 3.9) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git + specs: + ast-merge-git (7.1.0) + ast-merge (= 7.1.0) + json-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge + specs: ast-merge (7.1.0) benchmark token-resolver (~> 2.0, >= 2.0.4) tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) - ast-merge-git (7.1.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template + specs: + ast-template (7.1.0) ast-merge (= 7.1.0) - json-merge (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) - backports (3.25.3) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge + specs: bash-merge (7.1.0) ast-merge (= 7.1.0) tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge + specs: + binary-merge (7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge + specs: + citrus-toml-merge (7.1.0) + toml-merge (= 7.1.0) + toml-rb (~> 4.1) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge + specs: + commonmarker-merge (7.1.0) + commonmarker (~> 2.2) + markdown-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge + specs: + dotenv-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge + specs: + go-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge + specs: + json-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem + specs: + kettle-jem (7.1.0) + addressable (>= 2.8, < 3) + ast-crispr-markdown-markly (= 7.1.0) + ast-crispr-ruby-prism (= 7.1.0) + ast-merge (= 7.1.0) + bash-merge (= 7.1.0) + citrus-toml-merge (= 7.1.0) + commonmarker-merge (= 7.1.0) + dotenv-merge (= 7.1.0) + json-merge (= 7.1.0) + kettle-dev (~> 2.3, >= 2.3.5) + kettle-rb (~> 0.1, >= 0.1.4) + kramdown-merge (= 7.1.0) + markdown-merge (= 7.1.0) + markly-merge (= 7.1.0) + prism-merge (= 7.1.0) + psych-merge (= 7.1.0) + rbs (>= 3.10) + rbs-merge (= 7.1.0) + ruby-merge (= 7.1.0) + token-resolver (~> 2.0, >= 2.0.4) + toml-merge (= 7.1.0) + toml-rb (~> 4.2) + tree_haver (= 7.1.0) + yaml-merge (= 7.1.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge + specs: + kramdown-merge (7.1.0) + kramdown (~> 2.5) + markdown-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge + specs: + markdown-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge + specs: + markly-merge (7.1.0) + markdown-merge (= 7.1.0) + markly (~> 0.9) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge + specs: + parslet-toml-merge (7.1.0) + toml (~> 0.3) + toml-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge + specs: + plain-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge + specs: + prism-merge (7.1.0) + prism (~> 1.6) + ruby-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge + specs: + psych-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + yaml-merge (= 7.1.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge + specs: + rbs-merge (7.1.0) + ast-merge (= 7.1.0) + rbs (>= 3.10) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge + specs: + ruby-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge + specs: + rust-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge + specs: + toml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver + specs: + tree_haver (7.1.0) + citrus (~> 3.0) + parslet (~> 2.0) + tree_sitter_language_pack (>= 1.13.2, < 2.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge + specs: + typescript-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge + specs: + yaml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge + specs: + zip-merge (7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +GEM + remote: https://gem.coop/ + specs: + addressable (2.9.0) + public_suffix (>= 2.0.2, < 8.0) + ansi (1.6.0) + appraisal2 (3.2.0) + bundler (>= 1.17.3) + rake (>= 10) + thor (>= 0.14) + appraisal2-rubocop (1.0.0) + appraisal2 (>= 3.1.4) + rubocop (>= 1.0) + version_gem (~> 1.1, >= 1.1.14) + ast (2.4.3) + backports (3.25.3) benchmark (0.5.0) bigdecimal (4.1.2) bundler-audit (0.9.3) @@ -60,16 +289,8 @@ GEM thor (~> 1.0) cgi (0.5.2) citrus (3.0.2) - citrus-toml-merge (7.1.0) - toml-merge (= 7.1.0) - toml-rb (~> 4.1) - version_gem (~> 1.1, >= 1.1.9) cmdparse (3.0.7) commonmarker (2.9.0-x86_64-linux) - commonmarker-merge (7.1.0) - commonmarker (~> 2.2) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) concurrent-ruby (1.3.8) date (3.5.1) debug (1.11.1) @@ -78,10 +299,6 @@ GEM delegate (0.6.1) diff-lcs (1.6.2) diffy (3.4.4) - dotenv-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) dry-configurable (1.4.0) dry-core (~> 1.0) zeitwerk (~> 2.6) @@ -119,10 +336,6 @@ GEM geom2d (0.4.1) gitmoji-regex (2.0.4) version_gem (~> 1.1, >= 1.1.13) - go-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) hexapdf (1.9.1) cmdparse (~> 3.0, >= 3.0.3) geom2d (~> 0.4, >= 0.4.1) @@ -135,40 +348,13 @@ GEM rdoc (>= 4.0.0) reline (>= 0.4.2) json (2.21.1) - json-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) kettle-dev (2.3.8) emoji_regex (>= 15.0) kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) - kettle-jem (7.1.0) - addressable (>= 2.8, < 3) - ast-crispr-markdown-markly (= 7.1.0) - ast-crispr-ruby-prism (= 7.1.0) - ast-merge (= 7.1.0) - bash-merge (= 7.1.0) - citrus-toml-merge (= 7.1.0) - commonmarker-merge (= 7.1.0) - dotenv-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-dev (~> 2.3, >= 2.3.5) - kettle-rb (~> 0.1, >= 0.1.4) - kramdown-merge (= 7.1.0) - markdown-merge (= 7.1.0) - markly-merge (= 7.1.0) - prism-merge (= 7.1.0) - psych-merge (= 7.1.0) - rbs (>= 3.10) - rbs-merge (= 7.1.0) - ruby-merge (= 7.1.0) - token-resolver (~> 2.0, >= 2.0.4) - toml-merge (= 7.1.0) - toml-rb (~> 4.2) - tree_haver (= 7.1.0) - yaml-merge (= 7.1.0) + kettle-drift (1.0.6) + version_gem (~> 1.1, >= 1.1.14) kettle-rb (0.1.5) kettle-soup-cover (3.0.3) kettle-wash (~> 0.1, >= 0.1.0) @@ -192,24 +378,12 @@ GEM version_gem (~> 1.1, >= 1.1.14) kramdown (2.5.2) rexml (>= 3.4.4) - kramdown-merge (7.1.0) - kramdown (~> 2.5) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) kramdown-parser-gfm (1.1.0) kramdown (~> 2.0) language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) - markdown-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) markly (0.16.0) - markly-merge (7.1.0) - markdown-merge (= 7.1.0) - markly (~> 0.9) - version_gem (~> 1.1, >= 1.1.9) mutex_m (0.3.0) nokogiri (1.19.4-x86_64-linux-gnu) racc (~> 1.4) @@ -223,26 +397,13 @@ GEM ast (~> 2.4.1) racc parslet (2.0.0) - plain-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) pp (0.6.4) prettyprint prettyprint (0.2.0) prism (1.9.0) - prism-merge (7.1.0) - prism (~> 1.6) - ruby-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) psych (5.4.0) date stringio - psych-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - yaml-merge (= 7.1.0) public_suffix (7.0.5) racc (1.8.1) rainbow (3.1.1) @@ -251,11 +412,6 @@ GEM logger prism (>= 1.6.0) tsort - rbs-merge (7.1.0) - ast-merge (= 7.1.0) - rbs (>= 3.10) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) rdoc (6.17.0) erb psych (>= 4.0.0) @@ -379,10 +535,6 @@ GEM lint_roller (~> 1.1) rubocop (~> 1.72, >= 1.72.1) rubocop-ast (>= 1.44.0, < 2.0) - ruby-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) ruby-progressbar (1.13.0) ruby_engine (2.0.3) ruby_version (1.0.3) @@ -442,18 +594,11 @@ GEM token-resolver (2.0.5) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.14) - toml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) + toml (0.3.0) + parslet (>= 1.8.0, < 3.0.0) toml-rb (4.2.0) citrus (~> 3.0, > 3.0) racc (~> 1.7) - tree_haver (7.1.0) - citrus (~> 3.0) - parslet (~> 2.0) - tree_sitter_language_pack (>= 1.13.2, < 2.0) - version_gem (~> 1.1, >= 1.1.9) tree_sitter_language_pack (1.13.3-x86_64-linux) sorbet-runtime (~> 0.5) tsort (0.2.0) @@ -471,10 +616,6 @@ GEM kramdown (>= 2.4, < 3) kramdown-parser-gfm (~> 1.1) version_gem (~> 1.1, >= 1.1.13) - yaml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) yard (0.9.45) yard-fence (0.9.6) rdoc (>= 6.11, < 8) @@ -503,23 +644,46 @@ DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) appraisal2-rubocop (~> 1.0, >= 1.0.0) + ast-crispr! + ast-crispr-markdown-markly! + ast-crispr-ruby-prism! + ast-merge! + ast-merge-git! + ast-template! + bash-merge! benchmark (~> 0.5, >= 0.5.0) + binary-merge! bundler-audit (~> 0.9.3) cgi (~> 0.5) + citrus-toml-merge! + commonmarker-merge! debug (>= 1.1) + dotenv-merge! erb (~> 6.0, >= 6.0.6) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.0) + go-merge! irb (~> 1.17) + json-merge! kettle-dev (~> 2.0, >= 2.2.25) + kettle-drift (~> 1.0, >= 1.0.6) + kettle-jem! kettle-soup-cover (~> 3.0, >= 3.0.3) kettle-test (~> 2.0, >= 2.0.9) kramdown (~> 2.5, >= 2.5.2) + kramdown-merge! kramdown-parser-gfm (~> 1.1) + markdown-merge! + markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) + parslet-toml-merge! + plain-merge! + prism-merge! + psych-merge! rake (~> 13.0) rbs (>= 3.0) + rbs-merge! rdoc (~> 6.11) reek (~> 6.5, >= 6.5.0) require_bench (~> 1.0, >= 1.0.4) @@ -530,20 +694,27 @@ DEPENDENCIES rubocop-on-rbs (~> 2.0, >= 2.0.0) rubocop-packaging (~> 0.6, >= 0.6.0) rubocop-ruby3_2 (~> 3.0, >= 3.0.6) + ruby-merge! ruby-progressbar (~> 1.13) + rust-merge! smorg-rb! standard (~> 1.56, >= 1.56.0) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) + toml-merge! + tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) + typescript-merge! webrick (~> 1.9) yaml-converter (~> 0.2, >= 0.2.3) + yaml-merge! yard (~> 0.9, >= 0.9.45) yard-fence (~> 0.9, >= 0.9.6) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) yard-timekeeper (~> 0.2, >= 0.2.4) yard-yaml (~> 0.2, >= 0.2.3) + zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af @@ -556,10 +727,12 @@ CHECKSUMS ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) ast-merge-git (7.1.0) + ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd + binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 @@ -593,9 +766,10 @@ CHECKSUMS json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 json-merge (7.1.0) kettle-dev (2.3.8) sha256=9d716ff21c660a730cb4e8d41e2e2f0630a28167a354b6e2924e242102aef72c + kettle-drift (1.0.6) sha256=46eda08fa4411d1f3c6682a95eef1c9df4e94611b3949f49d4c7b43c0ed356a3 kettle-jem (7.1.0) kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f - kettle-soup-cover (3.0.3) + kettle-soup-cover (3.0.3) sha256=5919649be35690e4580299a41ac7c44a9548a7ca38561ffdd3c683c9d63e6f9b kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa @@ -616,6 +790,7 @@ CHECKSUMS parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 + parslet-toml-merge (7.1.0) plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 @@ -667,6 +842,7 @@ CHECKSUMS ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 + rust-merge (7.1.0) service_actor (3.9.4) sha256=e63b523630b9a7e62959b2a90113b08d2565b5de9c148557b281ef847c9539ce silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 @@ -689,12 +865,14 @@ CHECKSUMS timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.5) sha256=b852f924287ffb58a440856e862b056c8ad97e74b4b2526cee43e0771f40c25c + toml (0.3.0) sha256=0a91d0f76a9036e84e44f95693b12f58d358c1df3ac8e3b5271f2056ecc6e4b9 toml-merge (7.1.0) toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 + typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 @@ -708,6 +886,7 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 + zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH From d55849443a61cd09a56c2e3cf47bbf3c6e29777e Mon Sep 17 00:00:00 2001 From: "Peter H. Boling" Date: Tue, 21 Jul 2026 18:06:11 -0600 Subject: [PATCH 173/188] =?UTF-8?q?=F0=9F=8E=A8=20Template=20bootstrap=20b?= =?UTF-8?q?y=20kettle-jem=20v7.1.0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gems/ast-crispr-markdown-markly/Gemfile.lock | 348 +-------------- gems/ast-crispr/Gemfile.lock | 341 +-------------- gems/ast-merge/Gemfile.lock | 347 +-------------- gems/commonmarker-merge/Gemfile.lock | 334 +++++++++++++- gems/kettle-jem/Gemfile.lock | 8 +- gems/kramdown-merge/.rubocop_gradual.lock | 2 +- gems/kramdown-merge/.simplecov | 8 +- gems/kramdown-merge/Gemfile | 70 ++- gems/kramdown-merge/Gemfile.lock | 340 +-------------- gems/kramdown-merge/Rakefile | 18 +- .../gemfiles/modular/templating.gemfile | 12 +- .../gemfiles/modular/templating_local.gemfile | 44 +- .../lib/kramdown/merge/version.rb | 2 +- gems/kramdown-merge/spec/spec_helper.rb | 7 +- gems/parslet-toml-merge/Gemfile.lock | 344 +-------------- gems/prism-merge/Gemfile.lock | 347 +-------------- gems/psych-merge/Gemfile.lock | 354 +-------------- gems/rbs-merge/Gemfile.lock | 351 +-------------- gems/ruby-merge/Gemfile.lock | 352 +-------------- gems/rust-merge/Gemfile.lock | 352 +-------------- gems/smorg-rb/.kettle-drift.lock | 144 +++++- gems/smorg-rb/Gemfile | 72 ++- gems/smorg-rb/Gemfile.lock | 409 +++++------------- gems/smorg-rb/Rakefile | 18 +- .../gemfiles/modular/templating.gemfile | 10 +- .../gemfiles/modular/templating_local.gemfile | 44 +- gems/smorg-rb/lib/smorg/rb/version.rb | 2 +- gems/toml-merge/Gemfile.lock | 352 +-------------- gems/tree_haver/Gemfile.lock | 334 -------------- gems/typescript-merge/Gemfile.lock | 352 +-------------- gems/yaml-merge/Gemfile.lock | 352 +-------------- 31 files changed, 907 insertions(+), 5163 deletions(-) diff --git a/gems/ast-crispr-markdown-markly/Gemfile.lock b/gems/ast-crispr-markdown-markly/Gemfile.lock index 877b8188c..21158afcc 100644 --- a/gems/ast-crispr-markdown-markly/Gemfile.lock +++ b/gems/ast-crispr-markdown-markly/Gemfile.lock @@ -6,266 +6,6 @@ PATH markly-merge (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism - specs: - ast-crispr-ruby-prism (7.1.0) - ast-crispr (= 7.1.0) - prism-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr - specs: - ast-crispr (7.1.0) - ast-merge (= 7.1.0) - service_actor (~> 3.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git - specs: - ast-merge-git (7.1.0) - ast-merge (= 7.1.0) - json-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge - specs: - ast-merge (7.1.0) - benchmark - token-resolver (~> 2.0, >= 2.0.4) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template - specs: - ast-template (7.1.0) - ast-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge - specs: - bash-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge - specs: - binary-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge - specs: - citrus-toml-merge (7.1.0) - toml-merge (= 7.1.0) - toml-rb (~> 4.1) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge - specs: - commonmarker-merge (7.1.0) - commonmarker (~> 2.2) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge - specs: - dotenv-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge - specs: - go-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge - specs: - json-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem - specs: - kettle-jem (7.1.0) - addressable (>= 2.8, < 3) - ast-crispr-markdown-markly (= 7.1.0) - ast-crispr-ruby-prism (= 7.1.0) - ast-merge (= 7.1.0) - bash-merge (= 7.1.0) - citrus-toml-merge (= 7.1.0) - commonmarker-merge (= 7.1.0) - dotenv-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-dev (~> 2.3, >= 2.3.5) - kettle-rb (~> 0.1, >= 0.1.4) - kramdown-merge (= 7.1.0) - markdown-merge (= 7.1.0) - markly-merge (= 7.1.0) - prism-merge (= 7.1.0) - psych-merge (= 7.1.0) - rbs (>= 3.10) - rbs-merge (= 7.1.0) - ruby-merge (= 7.1.0) - token-resolver (~> 2.0, >= 2.0.4) - toml-merge (= 7.1.0) - toml-rb (~> 4.2) - tree_haver (= 7.1.0) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge - specs: - kramdown-merge (7.1.0) - kramdown (~> 2.5) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge - specs: - markdown-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge - specs: - markly-merge (7.1.0) - markdown-merge (= 7.1.0) - markly (~> 0.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge - specs: - parslet-toml-merge (7.1.0) - toml (~> 0.3) - toml-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge - specs: - plain-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge - specs: - prism-merge (7.1.0) - prism (~> 1.6) - ruby-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge - specs: - psych-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge - specs: - rbs-merge (7.1.0) - ast-merge (= 7.1.0) - rbs (>= 3.10) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge - specs: - ruby-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge - specs: - rust-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb - specs: - smorg-rb (7.1.0) - ast-merge (= 7.1.0) - ast-merge-git (= 7.1.0) - diff-lcs (~> 1.5) - go-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-jem (= 7.1.0) - markly-merge (= 7.1.0) - plain-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge - specs: - toml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver - specs: - tree_haver (7.1.0) - citrus (~> 3.0) - parslet (~> 2.0) - tree_sitter_language_pack (>= 1.13.2, < 2.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge - specs: - typescript-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge - specs: - yaml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge - specs: - zip-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - GEM remote: https://gem.coop/ specs: @@ -281,6 +21,15 @@ GEM rubocop (>= 1.0) version_gem (~> 1.1, >= 1.1.14) ast (2.4.3) + ast-crispr (7.1.0) + ast-merge (= 7.1.0) + service_actor (~> 3.9) + version_gem (~> 1.1, >= 1.1.9) + ast-merge (7.1.0) + benchmark + token-resolver (~> 2.0, >= 2.0.4) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) backports (3.25.3) benchmark (0.5.0) bigdecimal (4.1.2) @@ -290,7 +39,6 @@ GEM cgi (0.5.2) citrus (3.0.2) cmdparse (3.0.7) - commonmarker (2.9.0-x86_64-linux) concurrent-ruby (1.3.8) date (3.5.1) debug (1.11.1) @@ -353,8 +101,6 @@ GEM kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) - kettle-drift (1.0.6) - version_gem (~> 1.1, >= 1.1.14) kettle-rb (0.1.5) kettle-soup-cover (3.0.4) kettle-wash (~> 0.1, >= 0.1.0) @@ -383,7 +129,15 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) + markdown-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) markly (0.16.0) + markly-merge (7.1.0) + markdown-merge (= 7.1.0) + markly (~> 0.9) + version_gem (~> 1.1, >= 1.1.9) mutex_m (0.3.0) nokogiri (1.19.4-x86_64-linux-gnu) racc (~> 1.4) @@ -594,11 +348,11 @@ GEM token-resolver (2.0.5) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.14) - toml (0.3.0) - parslet (>= 1.8.0, < 3.0.0) - toml-rb (4.2.0) - citrus (~> 3.0, > 3.0) - racc (~> 1.7) + tree_haver (7.1.0) + citrus (~> 3.0) + parslet (~> 2.0) + tree_sitter_language_pack (>= 1.13.2, < 2.0) + version_gem (~> 1.1, >= 1.1.9) tree_sitter_language_pack (1.13.3-x86_64-linux) sorbet-runtime (~> 0.5) tsort (0.2.0) @@ -644,46 +398,24 @@ DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) appraisal2-rubocop (~> 1.0, >= 1.0.0) - ast-crispr! ast-crispr-markdown-markly! - ast-crispr-ruby-prism! - ast-merge! - ast-merge-git! - ast-template! - bash-merge! benchmark (~> 0.5, >= 0.5.0) - binary-merge! bundler-audit (~> 0.9.3) cgi (~> 0.5) - citrus-toml-merge! - commonmarker-merge! debug (>= 1.1) - dotenv-merge! erb (~> 6.0, >= 6.0.6) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.0) - go-merge! irb (~> 1.17) - json-merge! kettle-dev (~> 2.0, >= 2.2.25) - kettle-drift (~> 1.0, >= 1.0.6) - kettle-jem! kettle-soup-cover (~> 3.0, >= 3.0.3) kettle-test (~> 2.0, >= 2.0.9) kramdown (~> 2.5, >= 2.5.2) - kramdown-merge! kramdown-parser-gfm (~> 1.1) - markdown-merge! - markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) - parslet-toml-merge! - plain-merge! - prism-merge! - psych-merge! rake (~> 13.0) rbs (>= 3.0) - rbs-merge! rdoc (~> 6.11) reek (~> 6.5, >= 6.5.0) require_bench (~> 1.0, >= 1.0.4) @@ -694,27 +426,19 @@ DEPENDENCIES rubocop-on-rbs (~> 2.0, >= 2.0.0) rubocop-packaging (~> 0.6, >= 0.6.0) rubocop-ruby3_2 (~> 3.0, >= 3.0.6) - ruby-merge! ruby-progressbar (~> 1.13) - rust-merge! - smorg-rb! standard (~> 1.56, >= 1.56.0) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) - toml-merge! - tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) - typescript-merge! webrick (~> 1.9) yaml-converter (~> 0.2, >= 0.2.3) - yaml-merge! yard (~> 0.9, >= 0.9.45) yard-fence (~> 0.9, >= 0.9.6) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) yard-timekeeper (~> 0.2, >= 0.2.4) yard-yaml (~> 0.2, >= 0.2.3) - zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af @@ -724,29 +448,20 @@ CHECKSUMS ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 ast-crispr (7.1.0) ast-crispr-markdown-markly (7.1.0) - ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) - ast-merge-git (7.1.0) - ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 - bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd - binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 - citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 - commonmarker (2.9.0-x86_64-linux) sha256=8cfe92970eef585a19ddf6613224b91cab64d6029834661bda801f877c9c7f43 - commonmarker-merge (7.1.0) concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 - dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -759,21 +474,16 @@ CHECKSUMS gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f - go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 - json-merge (7.1.0) kettle-dev (2.3.9) - kettle-drift (1.0.6) sha256=46eda08fa4411d1f3c6682a95eef1c9df4e94611b3949f49d4c7b43c0ed356a3 - kettle-jem (7.1.0) kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f kettle-soup-cover (3.0.4) kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa - kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 @@ -790,20 +500,15 @@ CHECKSUMS parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 - parslet-toml-merge (7.1.0) - plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 - prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 - psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 - rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb @@ -838,11 +543,9 @@ CHECKSUMS rubocop-rspec_rails (2.32.0) sha256=4a0d641c72f6ebb957534f539d9d0a62c47abd8ce0d0aeee1ef4701e892a9100 rubocop-ruby3_2 (3.0.7) sha256=f53dd6d286fb05186214fc6ec116783e7f837030918e8931c05de773e98f8466 rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 - ruby-merge (7.1.0) ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 - rust-merge (7.1.0) service_actor (3.9.4) sha256=e63b523630b9a7e62959b2a90113b08d2565b5de9c148557b281ef847c9539ce silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 @@ -850,7 +553,6 @@ CHECKSUMS simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed - smorg-rb (7.1.0) sorbet-runtime (0.6.13351) sha256=f8fee17c6e3edf835dc6823d26afb9a7c8969c6710d1fabe2fb43f4e0c15c64f standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b @@ -865,20 +567,15 @@ CHECKSUMS timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.5) sha256=b852f924287ffb58a440856e862b056c8ad97e74b4b2526cee43e0771f40c25c - toml (0.3.0) sha256=0a91d0f76a9036e84e44f95693b12f58d358c1df3ac8e3b5271f2056ecc6e4b9 - toml-merge (7.1.0) - toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 - typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 webrick (1.9.2) sha256=beb4a15fc474defed24a3bda4ffd88a490d517c9e4e6118c3edce59e45864131 yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 - yaml-merge (7.1.0) yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd @@ -886,7 +583,6 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 - zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH diff --git a/gems/ast-crispr/Gemfile.lock b/gems/ast-crispr/Gemfile.lock index b5b424b2d..c358a8a1b 100644 --- a/gems/ast-crispr/Gemfile.lock +++ b/gems/ast-crispr/Gemfile.lock @@ -6,266 +6,6 @@ PATH service_actor (~> 3.9) version_gem (~> 1.1, >= 1.1.9) -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly - specs: - ast-crispr-markdown-markly (7.1.0) - ast-crispr (= 7.1.0) - markly-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism - specs: - ast-crispr-ruby-prism (7.1.0) - ast-crispr (= 7.1.0) - prism-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git - specs: - ast-merge-git (7.1.0) - ast-merge (= 7.1.0) - json-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge - specs: - ast-merge (7.1.0) - benchmark - token-resolver (~> 2.0, >= 2.0.4) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template - specs: - ast-template (7.1.0) - ast-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge - specs: - bash-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge - specs: - binary-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge - specs: - citrus-toml-merge (7.1.0) - toml-merge (= 7.1.0) - toml-rb (~> 4.1) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge - specs: - commonmarker-merge (7.1.0) - commonmarker (~> 2.2) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge - specs: - dotenv-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge - specs: - go-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge - specs: - json-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem - specs: - kettle-jem (7.1.0) - addressable (>= 2.8, < 3) - ast-crispr-markdown-markly (= 7.1.0) - ast-crispr-ruby-prism (= 7.1.0) - ast-merge (= 7.1.0) - bash-merge (= 7.1.0) - citrus-toml-merge (= 7.1.0) - commonmarker-merge (= 7.1.0) - dotenv-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-dev (~> 2.3, >= 2.3.5) - kettle-rb (~> 0.1, >= 0.1.4) - kramdown-merge (= 7.1.0) - markdown-merge (= 7.1.0) - markly-merge (= 7.1.0) - prism-merge (= 7.1.0) - psych-merge (= 7.1.0) - rbs (>= 3.10) - rbs-merge (= 7.1.0) - ruby-merge (= 7.1.0) - token-resolver (~> 2.0, >= 2.0.4) - toml-merge (= 7.1.0) - toml-rb (~> 4.2) - tree_haver (= 7.1.0) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge - specs: - kramdown-merge (7.1.0) - kramdown (~> 2.5) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge - specs: - markdown-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge - specs: - markly-merge (7.1.0) - markdown-merge (= 7.1.0) - markly (~> 0.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge - specs: - parslet-toml-merge (7.1.0) - toml (~> 0.3) - toml-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge - specs: - plain-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge - specs: - prism-merge (7.1.0) - prism (~> 1.6) - ruby-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge - specs: - psych-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge - specs: - rbs-merge (7.1.0) - ast-merge (= 7.1.0) - rbs (>= 3.10) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge - specs: - ruby-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge - specs: - rust-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb - specs: - smorg-rb (7.1.0) - ast-merge (= 7.1.0) - ast-merge-git (= 7.1.0) - diff-lcs (~> 1.5) - go-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-jem (= 7.1.0) - markly-merge (= 7.1.0) - plain-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge - specs: - toml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver - specs: - tree_haver (7.1.0) - citrus (~> 3.0) - parslet (~> 2.0) - tree_sitter_language_pack (>= 1.13.2, < 2.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge - specs: - typescript-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge - specs: - yaml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge - specs: - zip-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - GEM remote: https://gem.coop/ specs: @@ -281,6 +21,11 @@ GEM rubocop (>= 1.0) version_gem (~> 1.1, >= 1.1.14) ast (2.4.3) + ast-merge (7.1.0) + benchmark + token-resolver (~> 2.0, >= 2.0.4) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) backports (3.25.3) benchmark (0.5.0) bigdecimal (4.1.2) @@ -290,7 +35,6 @@ GEM cgi (0.5.2) citrus (3.0.2) cmdparse (3.0.7) - commonmarker (2.9.0-x86_64-linux) concurrent-ruby (1.3.8) date (3.5.1) debug (1.11.1) @@ -353,8 +97,6 @@ GEM kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) - kettle-drift (1.0.6) - version_gem (~> 1.1, >= 1.1.14) kettle-rb (0.1.5) kettle-soup-cover (3.0.4) kettle-wash (~> 0.1, >= 0.1.0) @@ -383,7 +125,6 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) - markly (0.16.0) mutex_m (0.3.0) nokogiri (1.19.4-x86_64-linux-gnu) racc (~> 1.4) @@ -594,11 +335,11 @@ GEM token-resolver (2.0.5) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.14) - toml (0.3.0) - parslet (>= 1.8.0, < 3.0.0) - toml-rb (4.2.0) - citrus (~> 3.0, > 3.0) - racc (~> 1.7) + tree_haver (7.1.0) + citrus (~> 3.0) + parslet (~> 2.0) + tree_sitter_language_pack (>= 1.13.2, < 2.0) + version_gem (~> 1.1, >= 1.1.9) tree_sitter_language_pack (1.13.3-x86_64-linux) sorbet-runtime (~> 0.5) tsort (0.2.0) @@ -645,45 +386,23 @@ DEPENDENCIES appraisal2 (~> 3.0, >= 3.0.6) appraisal2-rubocop (~> 1.0, >= 1.0.0) ast-crispr! - ast-crispr-markdown-markly! - ast-crispr-ruby-prism! - ast-merge! - ast-merge-git! - ast-template! - bash-merge! benchmark (~> 0.5, >= 0.5.0) - binary-merge! bundler-audit (~> 0.9.3) cgi (~> 0.5) - citrus-toml-merge! - commonmarker-merge! debug (>= 1.1) - dotenv-merge! erb (~> 6.0, >= 6.0.6) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.0) - go-merge! irb (~> 1.17) - json-merge! kettle-dev (~> 2.0, >= 2.2.25) - kettle-drift (~> 1.0, >= 1.0.6) - kettle-jem! kettle-soup-cover (~> 3.0, >= 3.0.3) kettle-test (~> 2.0, >= 2.0.9) kramdown (~> 2.5, >= 2.5.2) - kramdown-merge! kramdown-parser-gfm (~> 1.1) - markdown-merge! - markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) - parslet-toml-merge! - plain-merge! - prism-merge! - psych-merge! rake (~> 13.0) rbs (>= 3.0) - rbs-merge! rdoc (~> 6.11) reek (~> 6.5, >= 6.5.0) require_bench (~> 1.0, >= 1.0.4) @@ -694,27 +413,19 @@ DEPENDENCIES rubocop-on-rbs (~> 2.0, >= 2.0.0) rubocop-packaging (~> 0.6, >= 0.6.0) rubocop-ruby3_2 (~> 3.0, >= 3.0.6) - ruby-merge! ruby-progressbar (~> 1.13) - rust-merge! - smorg-rb! standard (~> 1.56, >= 1.56.0) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) - toml-merge! - tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) - typescript-merge! webrick (~> 1.9) yaml-converter (~> 0.2, >= 0.2.3) - yaml-merge! yard (~> 0.9, >= 0.9.45) yard-fence (~> 0.9, >= 0.9.6) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) yard-timekeeper (~> 0.2, >= 0.2.4) yard-yaml (~> 0.2, >= 0.2.3) - zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af @@ -723,30 +434,20 @@ CHECKSUMS appraisal2-rubocop (1.0.0) sha256=b71410fbb014befda5340605a605b7f6f3f012739baf0acc5b4351b592c3258d ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 ast-crispr (7.1.0) - ast-crispr-markdown-markly (7.1.0) - ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) - ast-merge-git (7.1.0) - ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 - bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd - binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 - citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 - commonmarker (2.9.0-x86_64-linux) sha256=8cfe92970eef585a19ddf6613224b91cab64d6029834661bda801f877c9c7f43 - commonmarker-merge (7.1.0) concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 - dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -759,28 +460,20 @@ CHECKSUMS gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f - go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 - json-merge (7.1.0) kettle-dev (2.3.9) - kettle-drift (1.0.6) sha256=46eda08fa4411d1f3c6682a95eef1c9df4e94611b3949f49d4c7b43c0ed356a3 - kettle-jem (7.1.0) kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f kettle-soup-cover (3.0.4) kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa - kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 - markdown-merge (7.1.0) - markly (0.16.0) sha256=6f70d79e385b1efc9e171f74c81628826259039fe6c778e03c3924c71dac5511 - markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-x86_64-linux-gnu) sha256=379fae440b28915e3f19d752ce2dcf8465ed2b2fbefd2a7ca0dd497bc981a06a nomono (1.0.9) @@ -790,20 +483,15 @@ CHECKSUMS parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 - parslet-toml-merge (7.1.0) - plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 - prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 - psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 - rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb @@ -838,11 +526,9 @@ CHECKSUMS rubocop-rspec_rails (2.32.0) sha256=4a0d641c72f6ebb957534f539d9d0a62c47abd8ce0d0aeee1ef4701e892a9100 rubocop-ruby3_2 (3.0.7) sha256=f53dd6d286fb05186214fc6ec116783e7f837030918e8931c05de773e98f8466 rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 - ruby-merge (7.1.0) ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 - rust-merge (7.1.0) service_actor (3.9.4) sha256=e63b523630b9a7e62959b2a90113b08d2565b5de9c148557b281ef847c9539ce silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 @@ -850,7 +536,6 @@ CHECKSUMS simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed - smorg-rb (7.1.0) sorbet-runtime (0.6.13351) sha256=f8fee17c6e3edf835dc6823d26afb9a7c8969c6710d1fabe2fb43f4e0c15c64f standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b @@ -865,20 +550,15 @@ CHECKSUMS timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.5) sha256=b852f924287ffb58a440856e862b056c8ad97e74b4b2526cee43e0771f40c25c - toml (0.3.0) sha256=0a91d0f76a9036e84e44f95693b12f58d358c1df3ac8e3b5271f2056ecc6e4b9 - toml-merge (7.1.0) - toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 - typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 webrick (1.9.2) sha256=beb4a15fc474defed24a3bda4ffd88a490d517c9e4e6118c3edce59e45864131 yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 - yaml-merge (7.1.0) yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd @@ -886,7 +566,6 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 - zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH diff --git a/gems/ast-merge/Gemfile.lock b/gems/ast-merge/Gemfile.lock index 9ccf057a5..92acd0203 100644 --- a/gems/ast-merge/Gemfile.lock +++ b/gems/ast-merge/Gemfile.lock @@ -7,265 +7,6 @@ PATH tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly - specs: - ast-crispr-markdown-markly (7.1.0) - ast-crispr (= 7.1.0) - markly-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism - specs: - ast-crispr-ruby-prism (7.1.0) - ast-crispr (= 7.1.0) - prism-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr - specs: - ast-crispr (7.1.0) - ast-merge (= 7.1.0) - service_actor (~> 3.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git - specs: - ast-merge-git (7.1.0) - ast-merge (= 7.1.0) - json-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template - specs: - ast-template (7.1.0) - ast-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge - specs: - bash-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge - specs: - binary-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge - specs: - citrus-toml-merge (7.1.0) - toml-merge (= 7.1.0) - toml-rb (~> 4.1) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge - specs: - commonmarker-merge (7.1.0) - commonmarker (~> 2.2) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge - specs: - dotenv-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge - specs: - go-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge - specs: - json-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem - specs: - kettle-jem (7.1.0) - addressable (>= 2.8, < 3) - ast-crispr-markdown-markly (= 7.1.0) - ast-crispr-ruby-prism (= 7.1.0) - ast-merge (= 7.1.0) - bash-merge (= 7.1.0) - citrus-toml-merge (= 7.1.0) - commonmarker-merge (= 7.1.0) - dotenv-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-dev (~> 2.3, >= 2.3.5) - kettle-rb (~> 0.1, >= 0.1.4) - kramdown-merge (= 7.1.0) - markdown-merge (= 7.1.0) - markly-merge (= 7.1.0) - prism-merge (= 7.1.0) - psych-merge (= 7.1.0) - rbs (>= 3.10) - rbs-merge (= 7.1.0) - ruby-merge (= 7.1.0) - token-resolver (~> 2.0, >= 2.0.4) - toml-merge (= 7.1.0) - toml-rb (~> 4.2) - tree_haver (= 7.1.0) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge - specs: - kramdown-merge (7.1.0) - kramdown (~> 2.5) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge - specs: - markdown-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge - specs: - markly-merge (7.1.0) - markdown-merge (= 7.1.0) - markly (~> 0.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge - specs: - parslet-toml-merge (7.1.0) - toml (~> 0.3) - toml-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge - specs: - plain-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge - specs: - prism-merge (7.1.0) - prism (~> 1.6) - ruby-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge - specs: - psych-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge - specs: - rbs-merge (7.1.0) - ast-merge (= 7.1.0) - rbs (>= 3.10) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge - specs: - ruby-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge - specs: - rust-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb - specs: - smorg-rb (7.1.0) - ast-merge (= 7.1.0) - ast-merge-git (= 7.1.0) - diff-lcs (~> 1.5) - go-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-jem (= 7.1.0) - markly-merge (= 7.1.0) - plain-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge - specs: - toml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver - specs: - tree_haver (7.1.0) - citrus (~> 3.0) - parslet (~> 2.0) - tree_sitter_language_pack (>= 1.13.2, < 2.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge - specs: - typescript-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge - specs: - yaml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge - specs: - zip-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - GEM remote: https://gem.coop/ specs: @@ -290,11 +31,6 @@ GEM cgi (0.5.2) citrus (3.0.2) cmdparse (3.0.7) - commonmarker (2.9.0-aarch64-linux) - commonmarker (2.9.0-aarch64-linux-musl) - commonmarker (2.9.0-arm64-darwin) - commonmarker (2.9.0-x86_64-linux) - commonmarker (2.9.0-x86_64-linux-musl) concurrent-ruby (1.3.8) date (3.5.1) debug (1.11.1) @@ -357,8 +93,6 @@ GEM kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) - kettle-drift (1.0.6) - version_gem (~> 1.1, >= 1.1.14) kettle-rb (0.1.5) kettle-soup-cover (3.0.4) kettle-wash (~> 0.1, >= 0.1.0) @@ -387,7 +121,6 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) - markly (0.16.0) mutex_m (0.3.0) nokogiri (1.19.4-aarch64-linux-gnu) racc (~> 1.4) @@ -550,8 +283,6 @@ GEM ruby-progressbar (1.13.0) ruby_engine (2.0.3) ruby_version (1.0.3) - service_actor (3.9.4) - zeitwerk (>= 1.0) silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) @@ -606,11 +337,11 @@ GEM token-resolver (2.0.5) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.14) - toml (0.3.0) - parslet (>= 1.8.0, < 3.0.0) - toml-rb (4.2.0) - citrus (~> 3.0, > 3.0) - racc (~> 1.7) + tree_haver (7.1.0) + citrus (~> 3.0) + parslet (~> 2.0) + tree_sitter_language_pack (>= 1.13.2, < 2.0) + version_gem (~> 1.1, >= 1.1.9) tree_sitter_language_pack (1.13.3-aarch64-linux) sorbet-runtime (~> 0.5) tree_sitter_language_pack (1.13.3-arm64-darwin) @@ -665,45 +396,23 @@ DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) appraisal2-rubocop (~> 1.0, >= 1.0.0) - ast-crispr! - ast-crispr-markdown-markly! - ast-crispr-ruby-prism! ast-merge! - ast-merge-git! - ast-template! - bash-merge! - binary-merge! bundler-audit (~> 0.9.3) cgi (~> 0.5) - citrus-toml-merge! - commonmarker-merge! debug (>= 1.1) - dotenv-merge! erb (~> 6.0, >= 6.0.6) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.0) - go-merge! irb (~> 1.17) - json-merge! kettle-dev (~> 2.0, >= 2.2.25) - kettle-drift (~> 1.0, >= 1.0.6) - kettle-jem! kettle-soup-cover (~> 3.0, >= 3.0.3) kettle-test (~> 2.0, >= 2.0.9) kramdown (~> 2.5, >= 2.5.2) - kramdown-merge! kramdown-parser-gfm (~> 1.1) - markdown-merge! - markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) - parslet-toml-merge! - plain-merge! - prism-merge! - psych-merge! rake (~> 13.0) rbs (>= 3.0) - rbs-merge! rdoc (~> 6.11) reek (~> 6.5, >= 6.5.0) require_bench (~> 1.0, >= 1.0.4) @@ -714,27 +423,19 @@ DEPENDENCIES rubocop-on-rbs (~> 2.0, >= 2.0.0) rubocop-packaging (~> 0.6, >= 0.6.0) rubocop-ruby3_2 (~> 3.0, >= 3.0.6) - ruby-merge! ruby-progressbar (~> 1.13) - rust-merge! - smorg-rb! standard (~> 1.56, >= 1.56.0) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) - toml-merge! - tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) - typescript-merge! webrick (~> 1.9) yaml-converter (~> 0.2, >= 0.2.3) - yaml-merge! yard (~> 0.9, >= 0.9.45) yard-fence (~> 0.9, >= 0.9.6) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) yard-timekeeper (~> 0.2, >= 0.2.4) yard-yaml (~> 0.2, >= 0.2.3) - zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af @@ -742,35 +443,20 @@ CHECKSUMS appraisal2 (3.2.0) sha256=ccd0b767ac4060cd7af6d16747459b6990f49c39c7b4fb1f7d1146b1e97c492f appraisal2-rubocop (1.0.0) sha256=b71410fbb014befda5340605a605b7f6f3f012739baf0acc5b4351b592c3258d ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 - ast-crispr (7.1.0) - ast-crispr-markdown-markly (7.1.0) - ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) - ast-merge-git (7.1.0) - ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 - bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd - binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 - citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 - commonmarker (2.9.0-aarch64-linux) sha256=e2b4aadb9a2cfa4e206582641ce3a49465549ac1ed4c289fdd63b78d8f24579c - commonmarker (2.9.0-aarch64-linux-musl) sha256=1cf4d2821f2a7e64945f1ed7c4eeced586fdb27ea7fe7337788802cf8f57cfca - commonmarker (2.9.0-arm64-darwin) sha256=1748dbfa4f5813b0d2a14bb4bbfa65a4ec293aa1c825016d60029ee0e132b046 - commonmarker (2.9.0-x86_64-linux) sha256=8cfe92970eef585a19ddf6613224b91cab64d6029834661bda801f877c9c7f43 - commonmarker (2.9.0-x86_64-linux-musl) sha256=293921398b839f79ceaf55010e061357e34f053822c3b003cd0be6686176335e - commonmarker-merge (7.1.0) concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 - dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -783,28 +469,20 @@ CHECKSUMS gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f - go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 - json-merge (7.1.0) kettle-dev (2.3.9) - kettle-drift (1.0.6) sha256=46eda08fa4411d1f3c6682a95eef1c9df4e94611b3949f49d4c7b43c0ed356a3 - kettle-jem (7.1.0) kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f kettle-soup-cover (3.0.4) kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa - kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 - markdown-merge (7.1.0) - markly (0.16.0) sha256=6f70d79e385b1efc9e171f74c81628826259039fe6c778e03c3924c71dac5511 - markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-aarch64-linux-gnu) sha256=1269fb644a6de405057a53dd5c762b1209b43ca7424f839454d3dbc677c31a8f nokogiri (1.19.4-aarch64-linux-musl) sha256=35c65b9ce72b3bb03207bdbe7067915019dc18c1b9b59139684bd6690fdd01af @@ -818,20 +496,15 @@ CHECKSUMS parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 - parslet-toml-merge (7.1.0) - plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 - prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 - psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 - rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb @@ -866,19 +539,15 @@ CHECKSUMS rubocop-rspec_rails (2.32.0) sha256=4a0d641c72f6ebb957534f539d9d0a62c47abd8ce0d0aeee1ef4701e892a9100 rubocop-ruby3_2 (3.0.7) sha256=f53dd6d286fb05186214fc6ec116783e7f837030918e8931c05de773e98f8466 rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 - ruby-merge (7.1.0) ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 - rust-merge (7.1.0) - service_actor (3.9.4) sha256=e63b523630b9a7e62959b2a90113b08d2565b5de9c148557b281ef847c9539ce silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed - smorg-rb (7.1.0) sorbet-runtime (0.6.13351) sha256=f8fee17c6e3edf835dc6823d26afb9a7c8969c6710d1fabe2fb43f4e0c15c64f standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b @@ -893,22 +562,17 @@ CHECKSUMS timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.5) sha256=b852f924287ffb58a440856e862b056c8ad97e74b4b2526cee43e0771f40c25c - toml (0.3.0) sha256=0a91d0f76a9036e84e44f95693b12f58d358c1df3ac8e3b5271f2056ecc6e4b9 - toml-merge (7.1.0) - toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-aarch64-linux) sha256=55ffc7c87868cb45658338363d9eba51b4a8b0259aa88e4de368d2bd1d52fea4 tree_sitter_language_pack (1.13.3-arm64-darwin) sha256=bc2498db605f212a1dbd2465ed3f65190d7da786f6ed5d30fcf958121aeb4a5c tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 - typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 webrick (1.9.2) sha256=beb4a15fc474defed24a3bda4ffd88a490d517c9e4e6118c3edce59e45864131 yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 - yaml-merge (7.1.0) yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd @@ -916,7 +580,6 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 - zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH diff --git a/gems/commonmarker-merge/Gemfile.lock b/gems/commonmarker-merge/Gemfile.lock index 4129d6ca0..1014a65be 100644 --- a/gems/commonmarker-merge/Gemfile.lock +++ b/gems/commonmarker-merge/Gemfile.lock @@ -7,13 +7,265 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly + specs: + ast-crispr-markdown-markly (7.1.0) + ast-crispr (= 7.1.0) + markly-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism + specs: + ast-crispr-ruby-prism (7.1.0) + ast-crispr (= 7.1.0) + prism-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr + specs: + ast-crispr (7.1.0) + ast-merge (= 7.1.0) + service_actor (~> 3.9) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git + specs: + ast-merge-git (7.1.0) + ast-merge (= 7.1.0) + json-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge + specs: + ast-merge (7.1.0) + benchmark + token-resolver (~> 2.0, >= 2.0.4) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template + specs: + ast-template (7.1.0) + ast-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge + specs: + bash-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge + specs: + binary-merge (7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge + specs: + citrus-toml-merge (7.1.0) + toml-merge (= 7.1.0) + toml-rb (~> 4.1) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge + specs: + dotenv-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge + specs: + go-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge + specs: + json-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem + specs: + kettle-jem (7.1.0) + addressable (>= 2.8, < 3) + ast-crispr-markdown-markly (= 7.1.0) + ast-crispr-ruby-prism (= 7.1.0) + ast-merge (= 7.1.0) + bash-merge (= 7.1.0) + citrus-toml-merge (= 7.1.0) + commonmarker-merge (= 7.1.0) + dotenv-merge (= 7.1.0) + json-merge (= 7.1.0) + kettle-dev (~> 2.3, >= 2.3.5) + kettle-rb (~> 0.1, >= 0.1.4) + kramdown-merge (= 7.1.0) + markdown-merge (= 7.1.0) + markly-merge (= 7.1.0) + prism-merge (= 7.1.0) + psych-merge (= 7.1.0) + rbs (>= 3.10) + rbs-merge (= 7.1.0) + ruby-merge (= 7.1.0) + token-resolver (~> 2.0, >= 2.0.4) + toml-merge (= 7.1.0) + toml-rb (~> 4.2) + tree_haver (= 7.1.0) + yaml-merge (= 7.1.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge + specs: + kramdown-merge (7.1.0) + kramdown (~> 2.5) + markdown-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge specs: markdown-merge (7.1.0) ast-merge (= 7.1.0) tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge + specs: + markly-merge (7.1.0) + markdown-merge (= 7.1.0) + markly (~> 0.9) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge + specs: + parslet-toml-merge (7.1.0) + toml (~> 0.3) + toml-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge + specs: + plain-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge + specs: + prism-merge (7.1.0) + prism (~> 1.6) + ruby-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge + specs: + psych-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + yaml-merge (= 7.1.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge + specs: + rbs-merge (7.1.0) + ast-merge (= 7.1.0) + rbs (>= 3.10) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge + specs: + ruby-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge + specs: + rust-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb + specs: + smorg-rb (7.1.0) + ast-merge (= 7.1.0) + ast-merge-git (= 7.1.0) + diff-lcs (~> 1.5) + go-merge (= 7.1.0) + json-merge (= 7.1.0) + kettle-jem (= 7.1.0) + markly-merge (= 7.1.0) + plain-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge + specs: + toml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver + specs: + tree_haver (7.1.0) + citrus (~> 3.0) + parslet (~> 2.0) + tree_sitter_language_pack (>= 1.13.2, < 2.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge + specs: + typescript-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge + specs: + yaml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge + specs: + zip-merge (7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + GEM remote: https://gem.coop/ specs: @@ -29,11 +281,6 @@ GEM rubocop (>= 1.0) version_gem (~> 1.1, >= 1.1.14) ast (2.4.3) - ast-merge (7.1.0) - benchmark - token-resolver (~> 2.0, >= 2.0.4) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) backports (3.25.3) benchmark (0.5.0) bigdecimal (4.1.2) @@ -106,6 +353,8 @@ GEM kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) + kettle-drift (1.0.6) + version_gem (~> 1.1, >= 1.1.14) kettle-rb (0.1.5) kettle-soup-cover (3.0.4) kettle-wash (~> 0.1, >= 0.1.0) @@ -134,6 +383,7 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) + markly (0.16.0) mutex_m (0.3.0) nokogiri (1.19.4-x86_64-linux-gnu) racc (~> 1.4) @@ -288,6 +538,8 @@ GEM ruby-progressbar (1.13.0) ruby_engine (2.0.3) ruby_version (1.0.3) + service_actor (3.9.4) + zeitwerk (>= 1.0) silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) @@ -342,11 +594,11 @@ GEM token-resolver (2.0.5) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.14) - tree_haver (7.1.0) - citrus (~> 3.0) - parslet (~> 2.0) - tree_sitter_language_pack (>= 1.13.2, < 2.0) - version_gem (~> 1.1, >= 1.1.9) + toml (0.3.0) + parslet (>= 1.8.0, < 3.0.0) + toml-rb (4.2.0) + citrus (~> 3.0, > 3.0) + racc (~> 1.7) tree_sitter_language_pack (1.13.3-x86_64-linux) sorbet-runtime (~> 0.5) tsort (0.2.0) @@ -392,25 +644,46 @@ DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) appraisal2-rubocop (~> 1.0, >= 1.0.0) + ast-crispr! + ast-crispr-markdown-markly! + ast-crispr-ruby-prism! + ast-merge! + ast-merge-git! + ast-template! + bash-merge! benchmark (~> 0.5, >= 0.5.0) + binary-merge! bundler-audit (~> 0.9.3) cgi (~> 0.5) + citrus-toml-merge! commonmarker-merge! debug (>= 1.1) + dotenv-merge! erb (~> 6.0, >= 6.0.6) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.0) + go-merge! irb (~> 1.17) + json-merge! kettle-dev (~> 2.0, >= 2.2.25) + kettle-drift (~> 1.0, >= 1.0.6) + kettle-jem! kettle-soup-cover (~> 3.0, >= 3.0.3) kettle-test (~> 2.0, >= 2.0.9) kramdown (~> 2.5, >= 2.5.2) + kramdown-merge! kramdown-parser-gfm (~> 1.1) markdown-merge! + markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) + parslet-toml-merge! + plain-merge! + prism-merge! + psych-merge! rake (~> 13.0) rbs (>= 3.0) + rbs-merge! rdoc (~> 6.11) reek (~> 6.5, >= 6.5.0) require_bench (~> 1.0, >= 1.0.4) @@ -421,19 +694,27 @@ DEPENDENCIES rubocop-on-rbs (~> 2.0, >= 2.0.0) rubocop-packaging (~> 0.6, >= 0.6.0) rubocop-ruby3_2 (~> 3.0, >= 3.0.6) + ruby-merge! ruby-progressbar (~> 1.13) + rust-merge! + smorg-rb! standard (~> 1.56, >= 1.56.0) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) + toml-merge! + tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) + typescript-merge! webrick (~> 1.9) yaml-converter (~> 0.2, >= 0.2.3) + yaml-merge! yard (~> 0.9, >= 0.9.45) yard-fence (~> 0.9, >= 0.9.6) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) yard-timekeeper (~> 0.2, >= 0.2.4) yard-yaml (~> 0.2, >= 0.2.3) + zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af @@ -441,13 +722,21 @@ CHECKSUMS appraisal2 (3.2.0) sha256=ccd0b767ac4060cd7af6d16747459b6990f49c39c7b4fb1f7d1146b1e97c492f appraisal2-rubocop (1.0.0) sha256=b71410fbb014befda5340605a605b7f6f3f012739baf0acc5b4351b592c3258d ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 + ast-crispr (7.1.0) + ast-crispr-markdown-markly (7.1.0) + ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) + ast-merge-git (7.1.0) + ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 + bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd + binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 + citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 commonmarker (2.9.0-x86_64-linux) sha256=8cfe92970eef585a19ddf6613224b91cab64d6029834661bda801f877c9c7f43 commonmarker-merge (7.1.0) @@ -457,6 +746,7 @@ CHECKSUMS delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 + dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -469,21 +759,28 @@ CHECKSUMS gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f + go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 + json-merge (7.1.0) kettle-dev (2.3.9) + kettle-drift (1.0.6) sha256=46eda08fa4411d1f3c6682a95eef1c9df4e94611b3949f49d4c7b43c0ed356a3 + kettle-jem (7.1.0) kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f kettle-soup-cover (3.0.4) kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa + kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 markdown-merge (7.1.0) + markly (0.16.0) sha256=6f70d79e385b1efc9e171f74c81628826259039fe6c778e03c3924c71dac5511 + markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-x86_64-linux-gnu) sha256=379fae440b28915e3f19d752ce2dcf8465ed2b2fbefd2a7ca0dd497bc981a06a nomono (1.0.9) @@ -493,15 +790,20 @@ CHECKSUMS parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 + parslet-toml-merge (7.1.0) + plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 + prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 + psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 + rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb @@ -536,15 +838,19 @@ CHECKSUMS rubocop-rspec_rails (2.32.0) sha256=4a0d641c72f6ebb957534f539d9d0a62c47abd8ce0d0aeee1ef4701e892a9100 rubocop-ruby3_2 (3.0.7) sha256=f53dd6d286fb05186214fc6ec116783e7f837030918e8931c05de773e98f8466 rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 + ruby-merge (7.1.0) ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 + rust-merge (7.1.0) + service_actor (3.9.4) sha256=e63b523630b9a7e62959b2a90113b08d2565b5de9c148557b281ef847c9539ce silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed + smorg-rb (7.1.0) sorbet-runtime (0.6.13351) sha256=f8fee17c6e3edf835dc6823d26afb9a7c8969c6710d1fabe2fb43f4e0c15c64f standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b @@ -559,15 +865,20 @@ CHECKSUMS timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.5) sha256=b852f924287ffb58a440856e862b056c8ad97e74b4b2526cee43e0771f40c25c + toml (0.3.0) sha256=0a91d0f76a9036e84e44f95693b12f58d358c1df3ac8e3b5271f2056ecc6e4b9 + toml-merge (7.1.0) + toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 + typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 webrick (1.9.2) sha256=beb4a15fc474defed24a3bda4ffd88a490d517c9e4e6118c3edce59e45864131 yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 + yaml-merge (7.1.0) yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd @@ -575,6 +886,7 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 + zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH diff --git a/gems/kettle-jem/Gemfile.lock b/gems/kettle-jem/Gemfile.lock index 1bd86ec2b..df331f0b0 100644 --- a/gems/kettle-jem/Gemfile.lock +++ b/gems/kettle-jem/Gemfile.lock @@ -555,7 +555,7 @@ GEM simplecov (>= 0.4.1) simplecov_lcov_formatter (0.9.0) simplecov (>= 0.18) - sorbet-runtime (0.6.13347) + sorbet-runtime (0.6.13351) standard (1.56.0) language_server-protocol (~> 3.17.0.2) lint_roller (~> 1.0) @@ -763,7 +763,7 @@ CHECKSUMS json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 json-merge (7.1.0) kettle-dev (2.3.8) sha256=9d716ff21c660a730cb4e8d41e2e2f0630a28167a354b6e2924e242102aef72c - kettle-drift (1.0.6) sha256=46eda08fa4411d1f3c6682a95eef1c9df4e94611b3949f49d4c7b43c0ed356a3 + kettle-drift (1.0.6) kettle-jem (7.1.0) kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f kettle-soup-cover (3.0.3) sha256=5919649be35690e4580299a41ac7c44a9548a7ca38561ffdd3c683c9d63e6f9b @@ -848,7 +848,7 @@ CHECKSUMS simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed smorg-rb (7.1.0) - sorbet-runtime (0.6.13347) sha256=54e7221d9f4b63f58aec79f3043752a9ba7810347c6ae0d903531591cc2d5f01 + sorbet-runtime (0.6.13351) sha256=f8fee17c6e3edf835dc6823d26afb9a7c8969c6710d1fabe2fb43f4e0c15c64f standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b standard-performance (1.9.0) sha256=49483d31be448292951d80e5e67cdcb576c2502103c7b40aec6f1b6e9c88e3f2 @@ -862,7 +862,7 @@ CHECKSUMS timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.5) sha256=b852f924287ffb58a440856e862b056c8ad97e74b4b2526cee43e0771f40c25c - toml (0.3.0) sha256=0a91d0f76a9036e84e44f95693b12f58d358c1df3ac8e3b5271f2056ecc6e4b9 + toml (0.3.0) toml-merge (7.1.0) toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 tree_haver (7.1.0) diff --git a/gems/kramdown-merge/.rubocop_gradual.lock b/gems/kramdown-merge/.rubocop_gradual.lock index a7af4b22b..f04d17b99 100644 --- a/gems/kramdown-merge/.rubocop_gradual.lock +++ b/gems/kramdown-merge/.rubocop_gradual.lock @@ -1,5 +1,5 @@ { - ".simplecov:359164750": [ + ".simplecov:609608341": [ [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] ], "Rakefile:2215390445": [ diff --git a/gems/kramdown-merge/.simplecov b/gems/kramdown-merge/.simplecov index 89f4bbcba..6d98c84ac 100644 --- a/gems/kramdown-merge/.simplecov +++ b/gems/kramdown-merge/.simplecov @@ -4,15 +4,11 @@ # kramdown-merge will then preserve content between those markers across template runs. # kettle-jem:unfreeze -require 'kettle/soup/cover/config' - # Minimum coverage thresholds are set by kettle-soup-cover. # They are controlled by ENV variables loaded by `mise` from `mise.toml` # (with optional machine-local overrides in `.env.local`). # If the values for minimum coverage need to change, they should be changed both there, # and in 2 places in .github/workflows/coverage.yml. -SimpleCov.start do - track_files 'lib/**/*.rb' - track_files 'lib/**/*.rake' - track_files 'exe/*.rb' +SimpleCov.configure do + cover 'lib/**/*.rb', 'lib/**/*.rake', 'exe/*.rb' end diff --git a/gems/kramdown-merge/Gemfile b/gems/kramdown-merge/Gemfile index 8fe735399..8fdddae6c 100644 --- a/gems/kramdown-merge/Gemfile +++ b/gems/kramdown-merge/Gemfile @@ -6,7 +6,7 @@ # kettle-jem will then preserve content between those markers across template runs. # kettle-jem:unfreeze -source "https://gem.coop" +source 'https://gem.coop' git_source(:codeberg) { |repo_name| "https://codeberg.org/#{repo_name}" } git_source(:gitlab) { |repo_name| "https://gitlab.com/#{repo_name}" } @@ -19,57 +19,53 @@ git_source(:gitlab) { |repo_name| "https://gitlab.com/#{repo_name}" } gemspec # Local workspace dependency wiring for *_local.gemfile overrides -nomono_requirements = ["~> 1.0", ">= 1.0.8"] -gem "nomono", *nomono_requirements, require: false # ruby >= 2.2 +nomono_requirements = ['~> 1.0', '>= 1.0.8'] +gem 'nomono', *nomono_requirements, require: false # ruby >= 2.2 # Direct sibling dependencies (env-switched via STRUCTUREDMERGE_DEV) direct_sibling_gems = %w[ markdown-merge ] -direct_sibling_dev = ENV.fetch("STRUCTUREDMERGE_DEV", "") +direct_sibling_dev = ENV.fetch('STRUCTUREDMERGE_DEV', '') direct_sibling_local = !direct_sibling_dev.empty? && !%w[false 0 no off].include?(direct_sibling_dev.downcase) -direct_sibling_templating = ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? +direct_sibling_templating = ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero?) - direct_sibling_dev_was_set = ENV.key?("STRUCTUREDMERGE_DEV") - direct_sibling_dev_original = ENV.fetch("STRUCTUREDMERGE_DEV", nil) + (direct_sibling_local || + ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) + direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') + direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) begin nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path("Gemfile.lock", __dir__) + nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == "nomono" } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - if nomono_locked - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] - end - end - Kernel.send(:gem, "nomono", *nomono_activation_requirements) - require "nomono/bundler" - if direct_sibling_templating && !direct_sibling_local - ENV["STRUCTUREDMERGE_DEV"] = File.expand_path("..", __dir__) + Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked end + Kernel.send(:gem, 'nomono', *nomono_activation_requirements) + require 'nomono/bundler' + ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local eval_nomono_gems( gems: direct_sibling_gems, - prefix: "STRUCTUREDMERGE", - path_env: "STRUCTUREDMERGE_DEV", - root: ["src", "my", "structuredmerge"] + prefix: 'STRUCTUREDMERGE', + path_env: 'STRUCTUREDMERGE_DEV', + root: %w[src my structuredmerge] ) rescue LoadError - warn "Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies." + warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' ensure if direct_sibling_templating && !direct_sibling_local if direct_sibling_dev_was_set - ENV["STRUCTUREDMERGE_DEV"] = direct_sibling_dev_original + ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original else - ENV.delete("STRUCTUREDMERGE_DEV") + ENV.delete('STRUCTUREDMERGE_DEV') end end end @@ -156,28 +152,28 @@ if direct_sibling_gems.any? && end # Use released TSLP with the Ruby ABI platform-gem fix. -gem "tree_sitter_language_pack", "~> 1.13", ">= 1.13.3" +gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' # Templating (env-switched: STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local paths) -eval_gemfile "gemfiles/modular/templating.gemfile" if ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? +eval_gemfile 'gemfiles/modular/templating.gemfile' if ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? # Debugging -eval_gemfile "gemfiles/modular/debug.gemfile" +eval_gemfile 'gemfiles/modular/debug.gemfile' # Code Coverage (env-switched: KETTLE_DEV_DEV=true for local paths) -eval_gemfile "gemfiles/modular/coverage.gemfile" +eval_gemfile 'gemfiles/modular/coverage.gemfile' # Linting -eval_gemfile "gemfiles/modular/style.gemfile" +eval_gemfile 'gemfiles/modular/style.gemfile' # Documentation -eval_gemfile "gemfiles/modular/documentation.gemfile" +eval_gemfile 'gemfiles/modular/documentation.gemfile' # Optional -eval_gemfile "gemfiles/modular/optional.gemfile" +eval_gemfile 'gemfiles/modular/optional.gemfile' ### Std Lib Extracted Gems -eval_gemfile "gemfiles/modular/x_std_libs.gemfile" +eval_gemfile 'gemfiles/modular/x_std_libs.gemfile' # See unlocked_deps appraisal for more details on irb inclusion -gem "irb", "~> 1.17" # ruby >= 2.7 +gem 'irb', '~> 1.17' # ruby >= 2.7 diff --git a/gems/kramdown-merge/Gemfile.lock b/gems/kramdown-merge/Gemfile.lock index 75357a639..610be7c0e 100644 --- a/gems/kramdown-merge/Gemfile.lock +++ b/gems/kramdown-merge/Gemfile.lock @@ -7,265 +7,13 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly - specs: - ast-crispr-markdown-markly (7.1.0) - ast-crispr (= 7.1.0) - markly-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism - specs: - ast-crispr-ruby-prism (7.1.0) - ast-crispr (= 7.1.0) - prism-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr - specs: - ast-crispr (7.1.0) - ast-merge (= 7.1.0) - service_actor (~> 3.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git - specs: - ast-merge-git (7.1.0) - ast-merge (= 7.1.0) - json-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge - specs: - ast-merge (7.1.0) - benchmark - token-resolver (~> 2.0, >= 2.0.4) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template - specs: - ast-template (7.1.0) - ast-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge - specs: - bash-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge - specs: - binary-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge - specs: - citrus-toml-merge (7.1.0) - toml-merge (= 7.1.0) - toml-rb (~> 4.1) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge - specs: - commonmarker-merge (7.1.0) - commonmarker (~> 2.2) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge - specs: - dotenv-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge - specs: - go-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge - specs: - json-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem - specs: - kettle-jem (7.1.0) - addressable (>= 2.8, < 3) - ast-crispr-markdown-markly (= 7.1.0) - ast-crispr-ruby-prism (= 7.1.0) - ast-merge (= 7.1.0) - bash-merge (= 7.1.0) - citrus-toml-merge (= 7.1.0) - commonmarker-merge (= 7.1.0) - dotenv-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-dev (~> 2.3, >= 2.3.5) - kettle-rb (~> 0.1, >= 0.1.4) - kramdown-merge (= 7.1.0) - markdown-merge (= 7.1.0) - markly-merge (= 7.1.0) - prism-merge (= 7.1.0) - psych-merge (= 7.1.0) - rbs (>= 3.10) - rbs-merge (= 7.1.0) - ruby-merge (= 7.1.0) - token-resolver (~> 2.0, >= 2.0.4) - toml-merge (= 7.1.0) - toml-rb (~> 4.2) - tree_haver (= 7.1.0) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge specs: markdown-merge (7.1.0) ast-merge (= 7.1.0) tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge - specs: - markly-merge (7.1.0) - markdown-merge (= 7.1.0) - markly (~> 0.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge - specs: - parslet-toml-merge (7.1.0) - toml (~> 0.3) - toml-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge - specs: - plain-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge - specs: - prism-merge (7.1.0) - prism (~> 1.6) - ruby-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge - specs: - psych-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge - specs: - rbs-merge (7.1.0) - ast-merge (= 7.1.0) - rbs (>= 3.10) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge - specs: - ruby-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge - specs: - rust-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb - specs: - smorg-rb (7.1.0) - ast-merge (= 7.1.0) - ast-merge-git (= 7.1.0) - diff-lcs (~> 1.5) - go-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-jem (= 7.1.0) - markly-merge (= 7.1.0) - plain-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge - specs: - toml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver - specs: - tree_haver (7.1.0) - citrus (~> 3.0) - parslet (~> 2.0) - tree_sitter_language_pack (>= 1.13.2, < 2.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge - specs: - typescript-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge - specs: - yaml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge - specs: - zip-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - GEM remote: https://gem.coop/ specs: @@ -281,6 +29,11 @@ GEM rubocop (>= 1.0) version_gem (~> 1.1, >= 1.1.14) ast (2.4.3) + ast-merge (7.1.0) + benchmark + token-resolver (~> 2.0, >= 2.0.4) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) backports (3.25.3) benchmark (0.5.0) bigdecimal (4.1.2) @@ -290,7 +43,6 @@ GEM cgi (0.5.2) citrus (3.0.2) cmdparse (3.0.7) - commonmarker (2.9.0-x86_64-linux) concurrent-ruby (1.3.8) date (3.5.1) debug (1.11.1) @@ -348,13 +100,11 @@ GEM rdoc (>= 4.0.0) reline (>= 0.4.2) json (2.21.1) - kettle-dev (2.3.8) + kettle-dev (2.3.9) emoji_regex (>= 15.0) kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) - kettle-drift (1.0.6) - version_gem (~> 1.1, >= 1.1.14) kettle-rb (0.1.5) kettle-soup-cover (3.0.4) kettle-wash (~> 0.1, >= 0.1.0) @@ -383,7 +133,6 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) - markly (0.16.0) mutex_m (0.3.0) nokogiri (1.19.4-x86_64-linux-gnu) racc (~> 1.4) @@ -538,8 +287,6 @@ GEM ruby-progressbar (1.13.0) ruby_engine (2.0.3) ruby_version (1.0.3) - service_actor (3.9.4) - zeitwerk (>= 1.0) silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) @@ -594,11 +341,11 @@ GEM token-resolver (2.0.5) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.14) - toml (0.3.0) - parslet (>= 1.8.0, < 3.0.0) - toml-rb (4.2.0) - citrus (~> 3.0, > 3.0) - racc (~> 1.7) + tree_haver (7.1.0) + citrus (~> 3.0) + parslet (~> 2.0) + tree_sitter_language_pack (>= 1.13.2, < 2.0) + version_gem (~> 1.1, >= 1.1.9) tree_sitter_language_pack (1.13.3-x86_64-linux) sorbet-runtime (~> 0.5) tsort (0.2.0) @@ -644,45 +391,24 @@ DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) appraisal2-rubocop (~> 1.0, >= 1.0.0) - ast-crispr! - ast-crispr-markdown-markly! - ast-crispr-ruby-prism! - ast-merge! - ast-merge-git! - ast-template! - bash-merge! benchmark (~> 0.5, >= 0.5.0) - binary-merge! bundler-audit (~> 0.9.3) cgi (~> 0.5) - citrus-toml-merge! - commonmarker-merge! debug (>= 1.1) - dotenv-merge! erb (~> 6.0, >= 6.0.6) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.0) - go-merge! irb (~> 1.17) - json-merge! kettle-dev (~> 2.0, >= 2.2.25) - kettle-drift (~> 1.0, >= 1.0.6) - kettle-jem! kettle-soup-cover (~> 3.0, >= 3.0.3) kettle-test (~> 2.0, >= 2.0.9) kramdown-merge! kramdown-parser-gfm (~> 1.1) markdown-merge! - markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) - parslet-toml-merge! - plain-merge! - prism-merge! - psych-merge! rake (~> 13.0) rbs (>= 3.0) - rbs-merge! rdoc (~> 6.11) reek (~> 6.5, >= 6.5.0) require_bench (~> 1.0, >= 1.0.4) @@ -693,27 +419,19 @@ DEPENDENCIES rubocop-on-rbs (~> 2.0, >= 2.0.0) rubocop-packaging (~> 0.6, >= 0.6.0) rubocop-ruby3_2 (~> 3.0, >= 3.0.6) - ruby-merge! ruby-progressbar (~> 1.13) - rust-merge! - smorg-rb! standard (~> 1.56, >= 1.56.0) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) - toml-merge! - tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) - typescript-merge! webrick (~> 1.9) yaml-converter (~> 0.2, >= 0.2.3) - yaml-merge! yard (~> 0.9, >= 0.9.45) yard-fence (~> 0.9, >= 0.9.6) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) yard-timekeeper (~> 0.2, >= 0.2.4) yard-yaml (~> 0.2, >= 0.2.3) - zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af @@ -721,31 +439,20 @@ CHECKSUMS appraisal2 (3.2.0) sha256=ccd0b767ac4060cd7af6d16747459b6990f49c39c7b4fb1f7d1146b1e97c492f appraisal2-rubocop (1.0.0) sha256=b71410fbb014befda5340605a605b7f6f3f012739baf0acc5b4351b592c3258d ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 - ast-crispr (7.1.0) - ast-crispr-markdown-markly (7.1.0) - ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) - ast-merge-git (7.1.0) - ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 - bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd - binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 - citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 - commonmarker (2.9.0-x86_64-linux) - commonmarker-merge (7.1.0) concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 - dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -758,15 +465,11 @@ CHECKSUMS gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f - go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 - json-merge (7.1.0) - kettle-dev (2.3.8) sha256=9d716ff21c660a730cb4e8d41e2e2f0630a28167a354b6e2924e242102aef72c - kettle-drift (1.0.6) - kettle-jem (7.1.0) + kettle-dev (2.3.9) kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f kettle-soup-cover (3.0.4) kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 @@ -778,8 +481,6 @@ CHECKSUMS lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 markdown-merge (7.1.0) - markly (0.16.0) - markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-x86_64-linux-gnu) sha256=379fae440b28915e3f19d752ce2dcf8465ed2b2fbefd2a7ca0dd497bc981a06a nomono (1.0.9) @@ -789,20 +490,15 @@ CHECKSUMS parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 - parslet-toml-merge (7.1.0) - plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 - prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 - psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 - rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb @@ -837,19 +533,15 @@ CHECKSUMS rubocop-rspec_rails (2.32.0) sha256=4a0d641c72f6ebb957534f539d9d0a62c47abd8ce0d0aeee1ef4701e892a9100 rubocop-ruby3_2 (3.0.7) sha256=f53dd6d286fb05186214fc6ec116783e7f837030918e8931c05de773e98f8466 rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 - ruby-merge (7.1.0) ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 - rust-merge (7.1.0) - service_actor (3.9.4) silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed - smorg-rb (7.1.0) sorbet-runtime (0.6.13351) sha256=f8fee17c6e3edf835dc6823d26afb9a7c8969c6710d1fabe2fb43f4e0c15c64f standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b @@ -864,20 +556,15 @@ CHECKSUMS timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.5) sha256=b852f924287ffb58a440856e862b056c8ad97e74b4b2526cee43e0771f40c25c - toml (0.3.0) - toml-merge (7.1.0) - toml-rb (4.2.0) tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 - typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 webrick (1.9.2) sha256=beb4a15fc474defed24a3bda4ffd88a490d517c9e4e6118c3edce59e45864131 yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 - yaml-merge (7.1.0) yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd @@ -885,7 +572,6 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 - zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH diff --git a/gems/kramdown-merge/Rakefile b/gems/kramdown-merge/Rakefile index 98bb2ef06..794a96e57 100644 --- a/gems/kramdown-merge/Rakefile +++ b/gems/kramdown-merge/Rakefile @@ -130,23 +130,23 @@ end ### DUPLICATE DRIFT TASKS begin - require "kettle/drift" + require 'kettle/drift' Kettle::Drift.install_tasks rescue LoadError - desc("(stub) kettle:drift:check is unavailable") - task("kettle:drift:check") do + desc('(stub) kettle:drift:check is unavailable') + task('kettle:drift:check') do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc("(stub) kettle:drift:update is unavailable") - task("kettle:drift:update") do + desc('(stub) kettle:drift:update is unavailable') + task('kettle:drift:update') do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc("(stub) kettle:drift:force_update is unavailable") - task("kettle:drift:force_update") do + desc('(stub) kettle:drift:force_update is unavailable') + task('kettle:drift:force_update') do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc("(stub) kettle:drift is unavailable") - task("kettle:drift" => "kettle:drift:update") + desc('(stub) kettle:drift is unavailable') + task('kettle:drift' => 'kettle:drift:update') end ### TEMPLATING TASKS diff --git a/gems/kramdown-merge/gemfiles/modular/templating.gemfile b/gems/kramdown-merge/gemfiles/modular/templating.gemfile index 47138ffbb..a672de184 100644 --- a/gems/kramdown-merge/gemfiles/modular/templating.gemfile +++ b/gems/kramdown-merge/gemfiles/modular/templating.gemfile @@ -1,18 +1,18 @@ # frozen_string_literal: true -structuredmerge_remote = ENV.fetch("STRUCTUREDMERGE_DEV", "false").casecmp("false").zero? -kettle_remote = ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false").zero? +structuredmerge_remote = ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false').zero? +kettle_remote = ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? if structuredmerge_remote # Parser dependencies for released installs. - gem "tree_sitter_language_pack", "~> 1.13", ">= 1.13.3" + gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' # Merge recipes for released installs. - gem "kettle-jem", ">= 7.0" + gem 'kettle-jem', '>= 7.0' end if kettle_remote # Template/plugin checks for released installs. - gem "kettle-drift", "~> 1.0", ">= 1.0.6", require: false + gem 'kettle-drift', '~> 1.0', '>= 1.0.6', require: false end # Set STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local development with path-based dependencies. @@ -21,4 +21,4 @@ end # # Set KETTLE_DEV_DEV=/path/to/my for local development with Kettle plugin gems. # When false (default / CI), released Kettle plugin gems are used. -eval_gemfile "templating_local.gemfile" unless structuredmerge_remote && kettle_remote +eval_gemfile 'templating_local.gemfile' unless structuredmerge_remote && kettle_remote diff --git a/gems/kramdown-merge/gemfiles/modular/templating_local.gemfile b/gems/kramdown-merge/gemfiles/modular/templating_local.gemfile index c405bd66e..ffde8f59c 100644 --- a/gems/kramdown-merge/gemfiles/modular/templating_local.gemfile +++ b/gems/kramdown-merge/gemfiles/modular/templating_local.gemfile @@ -12,21 +12,19 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] -nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) +nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] +nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == "nomono" } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - if nomono_locked - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] - end + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked end -Kernel.send(:gem, "nomono", *nomono_activation_requirements) -require "nomono/bundler" +Kernel.send(:gem, 'nomono', *nomono_activation_requirements) +require 'nomono/bundler' structuredmerge_local_gems = %w[ tree_haver @@ -69,25 +67,25 @@ structuredmerge_local_gems_to_eval = structuredmerge_local_gems - %w[kramdown-me kettle_dev_local_gems_to_eval = kettle_dev_local_gems - %w[kramdown-merge] - declared_gems platform :mri do - if ENV.fetch("STRUCTUREDMERGE_DEV", "false").casecmp("false") != 0 + if ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false') != 0 eval_nomono_gems( gems: structuredmerge_local_gems_to_eval, - prefix: "STRUCTUREDMERGE", - path_env: "STRUCTUREDMERGE_DEV", - vendored_gems_env: "VENDORED_GEMS", - vendor_gem_dir_env: "VENDOR_GEM_DIR", - debug_env: "STRUCTUREDMERGE_DEBUG" + prefix: 'STRUCTUREDMERGE', + path_env: 'STRUCTUREDMERGE_DEV', + vendored_gems_env: 'VENDORED_GEMS', + vendor_gem_dir_env: 'VENDOR_GEM_DIR', + debug_env: 'STRUCTUREDMERGE_DEBUG' ) end - if ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false") != 0 + if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false') != 0 eval_nomono_gems( gems: kettle_dev_local_gems_to_eval, - prefix: "KETTLE_DEV", - path_env: "KETTLE_DEV_DEV", - vendored_gems_env: "VENDORED_GEMS", - vendor_gem_dir_env: "VENDOR_GEM_DIR", - debug_env: "KETTLE_DEV_DEBUG" + prefix: 'KETTLE_DEV', + path_env: 'KETTLE_DEV_DEV', + vendored_gems_env: 'VENDORED_GEMS', + vendor_gem_dir_env: 'VENDOR_GEM_DIR', + debug_env: 'KETTLE_DEV_DEBUG' ) end end diff --git a/gems/kramdown-merge/lib/kramdown/merge/version.rb b/gems/kramdown-merge/lib/kramdown/merge/version.rb index 058dbe0e1..feddb4113 100644 --- a/gems/kramdown-merge/lib/kramdown/merge/version.rb +++ b/gems/kramdown-merge/lib/kramdown/merge/version.rb @@ -3,7 +3,7 @@ module Kramdown module Merge module Version - VERSION = "7.1.0" + VERSION = '7.1.0' end VERSION = Version::VERSION # Traditional Constant Location end diff --git a/gems/kramdown-merge/spec/spec_helper.rb b/gems/kramdown-merge/spec/spec_helper.rb index 76101b494..48183ae40 100644 --- a/gems/kramdown-merge/spec/spec_helper.rb +++ b/gems/kramdown-merge/spec/spec_helper.rb @@ -8,7 +8,12 @@ # The rescue LoadError handles that scenario. begin require 'kettle-soup-cover' - require 'simplecov' if Kettle::Soup::Cover::DO_COV # `.simplecov` is run here! + if Kettle::Soup::Cover::DO_COV + # Requiring simplecov loads the project-local `.simplecov`. + require 'simplecov' + require 'kettle/soup/cover/config' + SimpleCov.start + end rescue LoadError => e # check the error message and re-raise when unexpected raise e unless e.message.include?('kettle') diff --git a/gems/parslet-toml-merge/Gemfile.lock b/gems/parslet-toml-merge/Gemfile.lock index 1c3ef5959..7fdefa2ca 100644 --- a/gems/parslet-toml-merge/Gemfile.lock +++ b/gems/parslet-toml-merge/Gemfile.lock @@ -6,266 +6,6 @@ PATH toml-merge (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly - specs: - ast-crispr-markdown-markly (7.1.0) - ast-crispr (= 7.1.0) - markly-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism - specs: - ast-crispr-ruby-prism (7.1.0) - ast-crispr (= 7.1.0) - prism-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr - specs: - ast-crispr (7.1.0) - ast-merge (= 7.1.0) - service_actor (~> 3.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git - specs: - ast-merge-git (7.1.0) - ast-merge (= 7.1.0) - json-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge - specs: - ast-merge (7.1.0) - benchmark - token-resolver (~> 2.0, >= 2.0.4) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template - specs: - ast-template (7.1.0) - ast-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge - specs: - bash-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge - specs: - binary-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge - specs: - citrus-toml-merge (7.1.0) - toml-merge (= 7.1.0) - toml-rb (~> 4.1) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge - specs: - commonmarker-merge (7.1.0) - commonmarker (~> 2.2) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge - specs: - dotenv-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge - specs: - go-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge - specs: - json-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem - specs: - kettle-jem (7.1.0) - addressable (>= 2.8, < 3) - ast-crispr-markdown-markly (= 7.1.0) - ast-crispr-ruby-prism (= 7.1.0) - ast-merge (= 7.1.0) - bash-merge (= 7.1.0) - citrus-toml-merge (= 7.1.0) - commonmarker-merge (= 7.1.0) - dotenv-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-dev (~> 2.3, >= 2.3.5) - kettle-rb (~> 0.1, >= 0.1.4) - kramdown-merge (= 7.1.0) - markdown-merge (= 7.1.0) - markly-merge (= 7.1.0) - prism-merge (= 7.1.0) - psych-merge (= 7.1.0) - rbs (>= 3.10) - rbs-merge (= 7.1.0) - ruby-merge (= 7.1.0) - token-resolver (~> 2.0, >= 2.0.4) - toml-merge (= 7.1.0) - toml-rb (~> 4.2) - tree_haver (= 7.1.0) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge - specs: - kramdown-merge (7.1.0) - kramdown (~> 2.5) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge - specs: - markdown-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge - specs: - markly-merge (7.1.0) - markdown-merge (= 7.1.0) - markly (~> 0.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge - specs: - plain-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge - specs: - prism-merge (7.1.0) - prism (~> 1.6) - ruby-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge - specs: - psych-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge - specs: - rbs-merge (7.1.0) - ast-merge (= 7.1.0) - rbs (>= 3.10) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge - specs: - ruby-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge - specs: - rust-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb - specs: - smorg-rb (7.1.0) - ast-merge (= 7.1.0) - ast-merge-git (= 7.1.0) - diff-lcs (~> 1.5) - go-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-jem (= 7.1.0) - markly-merge (= 7.1.0) - plain-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge - specs: - toml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver - specs: - tree_haver (7.1.0) - citrus (~> 3.0) - parslet (~> 2.0) - tree_sitter_language_pack (>= 1.13.2, < 2.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge - specs: - typescript-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge - specs: - yaml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge - specs: - zip-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - GEM remote: https://gem.coop/ specs: @@ -281,6 +21,11 @@ GEM rubocop (>= 1.0) version_gem (~> 1.1, >= 1.1.14) ast (2.4.3) + ast-merge (7.1.0) + benchmark + token-resolver (~> 2.0, >= 2.0.4) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) backports (3.25.3) benchmark (0.5.0) bigdecimal (4.1.2) @@ -290,7 +35,6 @@ GEM cgi (0.5.2) citrus (3.0.2) cmdparse (3.0.7) - commonmarker (2.9.0-x86_64-linux) concurrent-ruby (1.3.8) date (3.5.1) debug (1.11.1) @@ -353,8 +97,6 @@ GEM kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) - kettle-drift (1.0.6) - version_gem (~> 1.1, >= 1.1.14) kettle-rb (0.1.5) kettle-soup-cover (3.0.4) kettle-wash (~> 0.1, >= 0.1.0) @@ -383,7 +125,6 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) - markly (0.16.0) mutex_m (0.3.0) nokogiri (1.19.4-x86_64-linux-gnu) racc (~> 1.4) @@ -538,8 +279,6 @@ GEM ruby-progressbar (1.13.0) ruby_engine (2.0.3) ruby_version (1.0.3) - service_actor (3.9.4) - zeitwerk (>= 1.0) silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) @@ -596,9 +335,15 @@ GEM version_gem (~> 1.1, >= 1.1.14) toml (0.3.0) parslet (>= 1.8.0, < 3.0.0) - toml-rb (4.2.0) - citrus (~> 3.0, > 3.0) - racc (~> 1.7) + toml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + tree_haver (7.1.0) + citrus (~> 3.0) + parslet (~> 2.0) + tree_sitter_language_pack (>= 1.13.2, < 2.0) + version_gem (~> 1.1, >= 1.1.9) tree_sitter_language_pack (1.13.3-x86_64-linux) sorbet-runtime (~> 0.5) tsort (0.2.0) @@ -644,46 +389,24 @@ DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) appraisal2-rubocop (~> 1.0, >= 1.0.0) - ast-crispr! - ast-crispr-markdown-markly! - ast-crispr-ruby-prism! - ast-merge! - ast-merge-git! - ast-template! - bash-merge! benchmark (~> 0.5, >= 0.5.0) - binary-merge! bundler-audit (~> 0.9.3) cgi (~> 0.5) - citrus-toml-merge! - commonmarker-merge! debug (>= 1.1) - dotenv-merge! erb (~> 6.0, >= 6.0.6) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.0) - go-merge! irb (~> 1.17) - json-merge! kettle-dev (~> 2.0, >= 2.2.25) - kettle-drift (~> 1.0, >= 1.0.6) - kettle-jem! kettle-soup-cover (~> 3.0, >= 3.0.3) kettle-test (~> 2.0, >= 2.0.9) kramdown (~> 2.5, >= 2.5.2) - kramdown-merge! kramdown-parser-gfm (~> 1.1) - markdown-merge! - markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) parslet-toml-merge! - plain-merge! - prism-merge! - psych-merge! rake (~> 13.0) rbs (>= 3.0) - rbs-merge! rdoc (~> 6.11) reek (~> 6.5, >= 6.5.0) require_bench (~> 1.0, >= 1.0.4) @@ -694,27 +417,19 @@ DEPENDENCIES rubocop-on-rbs (~> 2.0, >= 2.0.0) rubocop-packaging (~> 0.6, >= 0.6.0) rubocop-ruby3_2 (~> 3.0, >= 3.0.6) - ruby-merge! ruby-progressbar (~> 1.13) - rust-merge! - smorg-rb! standard (~> 1.56, >= 1.56.0) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) - toml-merge! - tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) - typescript-merge! webrick (~> 1.9) yaml-converter (~> 0.2, >= 0.2.3) - yaml-merge! yard (~> 0.9, >= 0.9.45) yard-fence (~> 0.9, >= 0.9.6) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) yard-timekeeper (~> 0.2, >= 0.2.4) yard-yaml (~> 0.2, >= 0.2.3) - zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af @@ -722,31 +437,20 @@ CHECKSUMS appraisal2 (3.2.0) sha256=ccd0b767ac4060cd7af6d16747459b6990f49c39c7b4fb1f7d1146b1e97c492f appraisal2-rubocop (1.0.0) sha256=b71410fbb014befda5340605a605b7f6f3f012739baf0acc5b4351b592c3258d ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 - ast-crispr (7.1.0) - ast-crispr-markdown-markly (7.1.0) - ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) - ast-merge-git (7.1.0) - ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 - bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd - binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 - citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 - commonmarker (2.9.0-x86_64-linux) sha256=8cfe92970eef585a19ddf6613224b91cab64d6029834661bda801f877c9c7f43 - commonmarker-merge (7.1.0) concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 - dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -759,28 +463,20 @@ CHECKSUMS gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f - go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 - json-merge (7.1.0) kettle-dev (2.3.9) - kettle-drift (1.0.6) sha256=46eda08fa4411d1f3c6682a95eef1c9df4e94611b3949f49d4c7b43c0ed356a3 - kettle-jem (7.1.0) kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f kettle-soup-cover (3.0.4) kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa - kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 - markdown-merge (7.1.0) - markly (0.16.0) sha256=6f70d79e385b1efc9e171f74c81628826259039fe6c778e03c3924c71dac5511 - markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-x86_64-linux-gnu) sha256=379fae440b28915e3f19d752ce2dcf8465ed2b2fbefd2a7ca0dd497bc981a06a nomono (1.0.9) @@ -791,19 +487,15 @@ CHECKSUMS parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 parslet-toml-merge (7.1.0) - plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 - prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 - psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 - rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb @@ -838,19 +530,15 @@ CHECKSUMS rubocop-rspec_rails (2.32.0) sha256=4a0d641c72f6ebb957534f539d9d0a62c47abd8ce0d0aeee1ef4701e892a9100 rubocop-ruby3_2 (3.0.7) sha256=f53dd6d286fb05186214fc6ec116783e7f837030918e8931c05de773e98f8466 rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 - ruby-merge (7.1.0) ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 - rust-merge (7.1.0) - service_actor (3.9.4) sha256=e63b523630b9a7e62959b2a90113b08d2565b5de9c148557b281ef847c9539ce silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed - smorg-rb (7.1.0) sorbet-runtime (0.6.13351) sha256=f8fee17c6e3edf835dc6823d26afb9a7c8969c6710d1fabe2fb43f4e0c15c64f standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b @@ -867,18 +555,15 @@ CHECKSUMS token-resolver (2.0.5) sha256=b852f924287ffb58a440856e862b056c8ad97e74b4b2526cee43e0771f40c25c toml (0.3.0) sha256=0a91d0f76a9036e84e44f95693b12f58d358c1df3ac8e3b5271f2056ecc6e4b9 toml-merge (7.1.0) - toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 - typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 webrick (1.9.2) sha256=beb4a15fc474defed24a3bda4ffd88a490d517c9e4e6118c3edce59e45864131 yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 - yaml-merge (7.1.0) yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd @@ -886,7 +571,6 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 - zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH diff --git a/gems/prism-merge/Gemfile.lock b/gems/prism-merge/Gemfile.lock index f94c28138..2008a266c 100644 --- a/gems/prism-merge/Gemfile.lock +++ b/gems/prism-merge/Gemfile.lock @@ -6,266 +6,6 @@ PATH ruby-merge (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly - specs: - ast-crispr-markdown-markly (7.1.0) - ast-crispr (= 7.1.0) - markly-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism - specs: - ast-crispr-ruby-prism (7.1.0) - ast-crispr (= 7.1.0) - prism-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr - specs: - ast-crispr (7.1.0) - ast-merge (= 7.1.0) - service_actor (~> 3.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git - specs: - ast-merge-git (7.1.0) - ast-merge (= 7.1.0) - json-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge - specs: - ast-merge (7.1.0) - benchmark - token-resolver (~> 2.0, >= 2.0.4) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template - specs: - ast-template (7.1.0) - ast-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge - specs: - bash-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge - specs: - binary-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge - specs: - citrus-toml-merge (7.1.0) - toml-merge (= 7.1.0) - toml-rb (~> 4.1) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge - specs: - commonmarker-merge (7.1.0) - commonmarker (~> 2.2) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge - specs: - dotenv-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge - specs: - go-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge - specs: - json-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem - specs: - kettle-jem (7.1.0) - addressable (>= 2.8, < 3) - ast-crispr-markdown-markly (= 7.1.0) - ast-crispr-ruby-prism (= 7.1.0) - ast-merge (= 7.1.0) - bash-merge (= 7.1.0) - citrus-toml-merge (= 7.1.0) - commonmarker-merge (= 7.1.0) - dotenv-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-dev (~> 2.3, >= 2.3.5) - kettle-rb (~> 0.1, >= 0.1.4) - kramdown-merge (= 7.1.0) - markdown-merge (= 7.1.0) - markly-merge (= 7.1.0) - prism-merge (= 7.1.0) - psych-merge (= 7.1.0) - rbs (>= 3.10) - rbs-merge (= 7.1.0) - ruby-merge (= 7.1.0) - token-resolver (~> 2.0, >= 2.0.4) - toml-merge (= 7.1.0) - toml-rb (~> 4.2) - tree_haver (= 7.1.0) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge - specs: - kramdown-merge (7.1.0) - kramdown (~> 2.5) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge - specs: - markdown-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge - specs: - markly-merge (7.1.0) - markdown-merge (= 7.1.0) - markly (~> 0.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge - specs: - parslet-toml-merge (7.1.0) - toml (~> 0.3) - toml-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge - specs: - plain-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge - specs: - psych-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge - specs: - rbs-merge (7.1.0) - ast-merge (= 7.1.0) - rbs (>= 3.10) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge - specs: - ruby-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge - specs: - rust-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb - specs: - smorg-rb (7.1.0) - ast-merge (= 7.1.0) - ast-merge-git (= 7.1.0) - diff-lcs (~> 1.5) - go-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-jem (= 7.1.0) - markly-merge (= 7.1.0) - plain-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge - specs: - toml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver - specs: - tree_haver (7.1.0) - citrus (~> 3.0) - parslet (~> 2.0) - tree_sitter_language_pack (>= 1.13.2, < 2.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge - specs: - typescript-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge - specs: - yaml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge - specs: - zip-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - GEM remote: https://gem.coop/ specs: @@ -281,6 +21,11 @@ GEM rubocop (>= 1.0) version_gem (~> 1.1, >= 1.1.14) ast (2.4.3) + ast-merge (7.1.0) + benchmark + token-resolver (~> 2.0, >= 2.0.4) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) backports (3.25.3) benchmark (0.5.0) bigdecimal (4.1.2) @@ -290,7 +35,6 @@ GEM cgi (0.5.2) citrus (3.0.2) cmdparse (3.0.7) - commonmarker (2.9.0-x86_64-linux) concurrent-ruby (1.3.8) date (3.5.1) debug (1.11.1) @@ -353,8 +97,6 @@ GEM kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) - kettle-drift (1.0.6) - version_gem (~> 1.1, >= 1.1.14) kettle-rb (0.1.5) kettle-soup-cover (3.0.4) kettle-wash (~> 0.1, >= 0.1.0) @@ -383,7 +125,6 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) - markly (0.16.0) mutex_m (0.3.0) nokogiri (1.19.4-x86_64-linux-gnu) racc (~> 1.4) @@ -535,11 +276,13 @@ GEM lint_roller (~> 1.1) rubocop (~> 1.72, >= 1.72.1) rubocop-ast (>= 1.44.0, < 2.0) + ruby-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) ruby-progressbar (1.13.0) ruby_engine (2.0.3) ruby_version (1.0.3) - service_actor (3.9.4) - zeitwerk (>= 1.0) silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) @@ -594,11 +337,11 @@ GEM token-resolver (2.0.5) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.14) - toml (0.3.0) - parslet (>= 1.8.0, < 3.0.0) - toml-rb (4.2.0) - citrus (~> 3.0, > 3.0) - racc (~> 1.7) + tree_haver (7.1.0) + citrus (~> 3.0) + parslet (~> 2.0) + tree_sitter_language_pack (>= 1.13.2, < 2.0) + version_gem (~> 1.1, >= 1.1.9) tree_sitter_language_pack (1.13.3-x86_64-linux) sorbet-runtime (~> 0.5) tsort (0.2.0) @@ -644,46 +387,24 @@ DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) appraisal2-rubocop (~> 1.0, >= 1.0.0) - ast-crispr! - ast-crispr-markdown-markly! - ast-crispr-ruby-prism! - ast-merge! - ast-merge-git! - ast-template! - bash-merge! benchmark (~> 0.5, >= 0.5.0) - binary-merge! bundler-audit (~> 0.9.3) cgi (~> 0.5) - citrus-toml-merge! - commonmarker-merge! debug (>= 1.1) - dotenv-merge! erb (~> 6.0, >= 6.0.6) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.0) - go-merge! irb (~> 1.17) - json-merge! kettle-dev (~> 2.0, >= 2.2.25) - kettle-drift (~> 1.0, >= 1.0.6) - kettle-jem! kettle-soup-cover (~> 3.0, >= 3.0.3) kettle-test (~> 2.0, >= 2.0.9) kramdown (~> 2.5, >= 2.5.2) - kramdown-merge! kramdown-parser-gfm (~> 1.1) - markdown-merge! - markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) - parslet-toml-merge! - plain-merge! prism-merge! - psych-merge! rake (~> 13.0) rbs (>= 3.0) - rbs-merge! rdoc (~> 6.11) reek (~> 6.5, >= 6.5.0) require_bench (~> 1.0, >= 1.0.4) @@ -694,27 +415,19 @@ DEPENDENCIES rubocop-on-rbs (~> 2.0, >= 2.0.0) rubocop-packaging (~> 0.6, >= 0.6.0) rubocop-ruby3_2 (~> 3.0, >= 3.0.6) - ruby-merge! ruby-progressbar (~> 1.13) - rust-merge! - smorg-rb! standard (~> 1.56, >= 1.56.0) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) - toml-merge! - tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) - typescript-merge! webrick (~> 1.9) yaml-converter (~> 0.2, >= 0.2.3) - yaml-merge! yard (~> 0.9, >= 0.9.45) yard-fence (~> 0.9, >= 0.9.6) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) yard-timekeeper (~> 0.2, >= 0.2.4) yard-yaml (~> 0.2, >= 0.2.3) - zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af @@ -722,31 +435,20 @@ CHECKSUMS appraisal2 (3.2.0) sha256=ccd0b767ac4060cd7af6d16747459b6990f49c39c7b4fb1f7d1146b1e97c492f appraisal2-rubocop (1.0.0) sha256=b71410fbb014befda5340605a605b7f6f3f012739baf0acc5b4351b592c3258d ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 - ast-crispr (7.1.0) - ast-crispr-markdown-markly (7.1.0) - ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) - ast-merge-git (7.1.0) - ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 - bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd - binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 - citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 - commonmarker (2.9.0-x86_64-linux) sha256=8cfe92970eef585a19ddf6613224b91cab64d6029834661bda801f877c9c7f43 - commonmarker-merge (7.1.0) concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 - dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -759,28 +461,20 @@ CHECKSUMS gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f - go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 - json-merge (7.1.0) kettle-dev (2.3.9) - kettle-drift (1.0.6) sha256=46eda08fa4411d1f3c6682a95eef1c9df4e94611b3949f49d4c7b43c0ed356a3 - kettle-jem (7.1.0) kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f kettle-soup-cover (3.0.4) kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa - kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 - markdown-merge (7.1.0) - markly (0.16.0) sha256=6f70d79e385b1efc9e171f74c81628826259039fe6c778e03c3924c71dac5511 - markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-x86_64-linux-gnu) sha256=379fae440b28915e3f19d752ce2dcf8465ed2b2fbefd2a7ca0dd497bc981a06a nomono (1.0.9) @@ -790,20 +484,16 @@ CHECKSUMS parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 - parslet-toml-merge (7.1.0) - plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 - psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 - rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb @@ -842,15 +532,12 @@ CHECKSUMS ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 - rust-merge (7.1.0) - service_actor (3.9.4) sha256=e63b523630b9a7e62959b2a90113b08d2565b5de9c148557b281ef847c9539ce silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed - smorg-rb (7.1.0) sorbet-runtime (0.6.13351) sha256=f8fee17c6e3edf835dc6823d26afb9a7c8969c6710d1fabe2fb43f4e0c15c64f standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b @@ -865,20 +552,15 @@ CHECKSUMS timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.5) sha256=b852f924287ffb58a440856e862b056c8ad97e74b4b2526cee43e0771f40c25c - toml (0.3.0) sha256=0a91d0f76a9036e84e44f95693b12f58d358c1df3ac8e3b5271f2056ecc6e4b9 - toml-merge (7.1.0) - toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 - typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 webrick (1.9.2) sha256=beb4a15fc474defed24a3bda4ffd88a490d517c9e4e6118c3edce59e45864131 yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 - yaml-merge (7.1.0) yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd @@ -886,7 +568,6 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 - zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH diff --git a/gems/psych-merge/Gemfile.lock b/gems/psych-merge/Gemfile.lock index d6e9776df..e77e2d611 100644 --- a/gems/psych-merge/Gemfile.lock +++ b/gems/psych-merge/Gemfile.lock @@ -7,265 +7,6 @@ PATH version_gem (~> 1.1, >= 1.1.9) yaml-merge (= 7.1.0) -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly - specs: - ast-crispr-markdown-markly (7.1.0) - ast-crispr (= 7.1.0) - markly-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism - specs: - ast-crispr-ruby-prism (7.1.0) - ast-crispr (= 7.1.0) - prism-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr - specs: - ast-crispr (7.1.0) - ast-merge (= 7.1.0) - service_actor (~> 3.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git - specs: - ast-merge-git (7.1.0) - ast-merge (= 7.1.0) - json-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge - specs: - ast-merge (7.1.0) - benchmark - token-resolver (~> 2.0, >= 2.0.4) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template - specs: - ast-template (7.1.0) - ast-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge - specs: - bash-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge - specs: - binary-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge - specs: - citrus-toml-merge (7.1.0) - toml-merge (= 7.1.0) - toml-rb (~> 4.1) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge - specs: - commonmarker-merge (7.1.0) - commonmarker (~> 2.2) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge - specs: - dotenv-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge - specs: - go-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge - specs: - json-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem - specs: - kettle-jem (7.1.0) - addressable (>= 2.8, < 3) - ast-crispr-markdown-markly (= 7.1.0) - ast-crispr-ruby-prism (= 7.1.0) - ast-merge (= 7.1.0) - bash-merge (= 7.1.0) - citrus-toml-merge (= 7.1.0) - commonmarker-merge (= 7.1.0) - dotenv-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-dev (~> 2.3, >= 2.3.5) - kettle-rb (~> 0.1, >= 0.1.4) - kramdown-merge (= 7.1.0) - markdown-merge (= 7.1.0) - markly-merge (= 7.1.0) - prism-merge (= 7.1.0) - psych-merge (= 7.1.0) - rbs (>= 3.10) - rbs-merge (= 7.1.0) - ruby-merge (= 7.1.0) - token-resolver (~> 2.0, >= 2.0.4) - toml-merge (= 7.1.0) - toml-rb (~> 4.2) - tree_haver (= 7.1.0) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge - specs: - kramdown-merge (7.1.0) - kramdown (~> 2.5) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge - specs: - markdown-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge - specs: - markly-merge (7.1.0) - markdown-merge (= 7.1.0) - markly (~> 0.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge - specs: - parslet-toml-merge (7.1.0) - toml (~> 0.3) - toml-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge - specs: - plain-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge - specs: - prism-merge (7.1.0) - prism (~> 1.6) - ruby-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge - specs: - rbs-merge (7.1.0) - ast-merge (= 7.1.0) - rbs (>= 3.10) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge - specs: - ruby-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge - specs: - rust-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb - specs: - smorg-rb (7.1.0) - ast-merge (= 7.1.0) - ast-merge-git (= 7.1.0) - diff-lcs (~> 1.5) - go-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-jem (= 7.1.0) - markly-merge (= 7.1.0) - plain-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge - specs: - toml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver - specs: - tree_haver (7.1.0) - citrus (~> 3.0) - parslet (~> 2.0) - tree_sitter_language_pack (>= 1.13.2, < 2.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge - specs: - typescript-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge - specs: - yaml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge - specs: - zip-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - GEM remote: https://gem.coop/ specs: @@ -281,6 +22,11 @@ GEM rubocop (>= 1.0) version_gem (~> 1.1, >= 1.1.14) ast (2.4.3) + ast-merge (7.1.0) + benchmark + token-resolver (~> 2.0, >= 2.0.4) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) backports (3.25.3) benchmark (0.5.0) bigdecimal (4.1.2) @@ -290,11 +36,6 @@ GEM cgi (0.5.2) citrus (3.0.2) cmdparse (3.0.7) - commonmarker (2.9.0-aarch64-linux) - commonmarker (2.9.0-aarch64-linux-musl) - commonmarker (2.9.0-arm64-darwin) - commonmarker (2.9.0-x86_64-linux) - commonmarker (2.9.0-x86_64-linux-musl) concurrent-ruby (1.3.8) date (3.5.1) debug (1.11.1) @@ -357,8 +98,6 @@ GEM kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) - kettle-drift (1.0.6) - version_gem (~> 1.1, >= 1.1.14) kettle-rb (0.1.5) kettle-soup-cover (3.0.4) kettle-wash (~> 0.1, >= 0.1.0) @@ -387,7 +126,6 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) - markly (0.16.0) mutex_m (0.3.0) nokogiri (1.19.4-aarch64-linux-gnu) racc (~> 1.4) @@ -550,8 +288,6 @@ GEM ruby-progressbar (1.13.0) ruby_engine (2.0.3) ruby_version (1.0.3) - service_actor (3.9.4) - zeitwerk (>= 1.0) silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) @@ -606,11 +342,11 @@ GEM token-resolver (2.0.5) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.14) - toml (0.3.0) - parslet (>= 1.8.0, < 3.0.0) - toml-rb (4.2.0) - citrus (~> 3.0, > 3.0) - racc (~> 1.7) + tree_haver (7.1.0) + citrus (~> 3.0) + parslet (~> 2.0) + tree_sitter_language_pack (>= 1.13.2, < 2.0) + version_gem (~> 1.1, >= 1.1.9) tree_sitter_language_pack (1.13.3-aarch64-linux) sorbet-runtime (~> 0.5) tree_sitter_language_pack (1.13.3-arm64-darwin) @@ -632,6 +368,10 @@ GEM kramdown (>= 2.4, < 3) kramdown-parser-gfm (~> 1.1) version_gem (~> 1.1, >= 1.1.13) + yaml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) yard (0.9.45) yard-fence (0.9.6) rdoc (>= 6.11, < 8) @@ -665,46 +405,24 @@ DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) appraisal2-rubocop (~> 1.0, >= 1.0.0) - ast-crispr! - ast-crispr-markdown-markly! - ast-crispr-ruby-prism! - ast-merge! - ast-merge-git! - ast-template! - bash-merge! benchmark (~> 0.5, >= 0.5.0) - binary-merge! bundler-audit (~> 0.9.3) cgi (~> 0.5) - citrus-toml-merge! - commonmarker-merge! debug (>= 1.1) - dotenv-merge! erb (~> 6.0, >= 6.0.6) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.0) - go-merge! irb (~> 1.17) - json-merge! kettle-dev (~> 2.0, >= 2.2.25) - kettle-drift (~> 1.0, >= 1.0.6) - kettle-jem! kettle-soup-cover (~> 3.0, >= 3.0.3) kettle-test (~> 2.0, >= 2.0.9) kramdown (~> 2.5, >= 2.5.2) - kramdown-merge! kramdown-parser-gfm (~> 1.1) - markdown-merge! - markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) - parslet-toml-merge! - plain-merge! - prism-merge! psych-merge! rake (~> 13.0) rbs (>= 3.0) - rbs-merge! rdoc (~> 6.11) reek (~> 6.5, >= 6.5.0) require_bench (~> 1.0, >= 1.0.4) @@ -715,27 +433,19 @@ DEPENDENCIES rubocop-on-rbs (~> 2.0, >= 2.0.0) rubocop-packaging (~> 0.6, >= 0.6.0) rubocop-ruby3_2 (~> 3.0, >= 3.0.6) - ruby-merge! ruby-progressbar (~> 1.13) - rust-merge! - smorg-rb! standard (~> 1.56, >= 1.56.0) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) - toml-merge! - tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) - typescript-merge! webrick (~> 1.9) yaml-converter (~> 0.2, >= 0.2.3) - yaml-merge! yard (~> 0.9, >= 0.9.45) yard-fence (~> 0.9, >= 0.9.6) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) yard-timekeeper (~> 0.2, >= 0.2.4) yard-yaml (~> 0.2, >= 0.2.3) - zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af @@ -743,35 +453,20 @@ CHECKSUMS appraisal2 (3.2.0) sha256=ccd0b767ac4060cd7af6d16747459b6990f49c39c7b4fb1f7d1146b1e97c492f appraisal2-rubocop (1.0.0) sha256=b71410fbb014befda5340605a605b7f6f3f012739baf0acc5b4351b592c3258d ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 - ast-crispr (7.1.0) - ast-crispr-markdown-markly (7.1.0) - ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) - ast-merge-git (7.1.0) - ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 - bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd - binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 - citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 - commonmarker (2.9.0-aarch64-linux) sha256=e2b4aadb9a2cfa4e206582641ce3a49465549ac1ed4c289fdd63b78d8f24579c - commonmarker (2.9.0-aarch64-linux-musl) sha256=1cf4d2821f2a7e64945f1ed7c4eeced586fdb27ea7fe7337788802cf8f57cfca - commonmarker (2.9.0-arm64-darwin) sha256=1748dbfa4f5813b0d2a14bb4bbfa65a4ec293aa1c825016d60029ee0e132b046 - commonmarker (2.9.0-x86_64-linux) sha256=8cfe92970eef585a19ddf6613224b91cab64d6029834661bda801f877c9c7f43 - commonmarker (2.9.0-x86_64-linux-musl) sha256=293921398b839f79ceaf55010e061357e34f053822c3b003cd0be6686176335e - commonmarker-merge (7.1.0) concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 - dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -784,28 +479,20 @@ CHECKSUMS gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f - go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 - json-merge (7.1.0) kettle-dev (2.3.9) - kettle-drift (1.0.6) sha256=46eda08fa4411d1f3c6682a95eef1c9df4e94611b3949f49d4c7b43c0ed356a3 - kettle-jem (7.1.0) kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f kettle-soup-cover (3.0.4) kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa - kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 - markdown-merge (7.1.0) - markly (0.16.0) sha256=6f70d79e385b1efc9e171f74c81628826259039fe6c778e03c3924c71dac5511 - markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-aarch64-linux-gnu) sha256=1269fb644a6de405057a53dd5c762b1209b43ca7424f839454d3dbc677c31a8f nokogiri (1.19.4-aarch64-linux-musl) sha256=35c65b9ce72b3bb03207bdbe7067915019dc18c1b9b59139684bd6690fdd01af @@ -819,12 +506,9 @@ CHECKSUMS parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 - parslet-toml-merge (7.1.0) - plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 - prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 @@ -832,7 +516,6 @@ CHECKSUMS rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 - rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb @@ -867,19 +550,15 @@ CHECKSUMS rubocop-rspec_rails (2.32.0) sha256=4a0d641c72f6ebb957534f539d9d0a62c47abd8ce0d0aeee1ef4701e892a9100 rubocop-ruby3_2 (3.0.7) sha256=f53dd6d286fb05186214fc6ec116783e7f837030918e8931c05de773e98f8466 rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 - ruby-merge (7.1.0) ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 - rust-merge (7.1.0) - service_actor (3.9.4) sha256=e63b523630b9a7e62959b2a90113b08d2565b5de9c148557b281ef847c9539ce silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed - smorg-rb (7.1.0) sorbet-runtime (0.6.13351) sha256=f8fee17c6e3edf835dc6823d26afb9a7c8969c6710d1fabe2fb43f4e0c15c64f standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b @@ -894,16 +573,12 @@ CHECKSUMS timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.5) sha256=b852f924287ffb58a440856e862b056c8ad97e74b4b2526cee43e0771f40c25c - toml (0.3.0) sha256=0a91d0f76a9036e84e44f95693b12f58d358c1df3ac8e3b5271f2056ecc6e4b9 - toml-merge (7.1.0) - toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-aarch64-linux) sha256=55ffc7c87868cb45658338363d9eba51b4a8b0259aa88e4de368d2bd1d52fea4 tree_sitter_language_pack (1.13.3-arm64-darwin) sha256=bc2498db605f212a1dbd2465ed3f65190d7da786f6ed5d30fcf958121aeb4a5c tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 - typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 @@ -917,7 +592,6 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 - zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH diff --git a/gems/rbs-merge/Gemfile.lock b/gems/rbs-merge/Gemfile.lock index 5e9275289..0267b5d00 100644 --- a/gems/rbs-merge/Gemfile.lock +++ b/gems/rbs-merge/Gemfile.lock @@ -7,265 +7,6 @@ PATH tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.14) -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly - specs: - ast-crispr-markdown-markly (7.1.0) - ast-crispr (= 7.1.0) - markly-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism - specs: - ast-crispr-ruby-prism (7.1.0) - ast-crispr (= 7.1.0) - prism-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr - specs: - ast-crispr (7.1.0) - ast-merge (= 7.1.0) - service_actor (~> 3.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git - specs: - ast-merge-git (7.1.0) - ast-merge (= 7.1.0) - json-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge - specs: - ast-merge (7.1.0) - benchmark - token-resolver (~> 2.0, >= 2.0.4) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template - specs: - ast-template (7.1.0) - ast-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge - specs: - bash-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge - specs: - binary-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge - specs: - citrus-toml-merge (7.1.0) - toml-merge (= 7.1.0) - toml-rb (~> 4.1) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge - specs: - commonmarker-merge (7.1.0) - commonmarker (~> 2.2) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge - specs: - dotenv-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge - specs: - go-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge - specs: - json-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem - specs: - kettle-jem (7.1.0) - addressable (>= 2.8, < 3) - ast-crispr-markdown-markly (= 7.1.0) - ast-crispr-ruby-prism (= 7.1.0) - ast-merge (= 7.1.0) - bash-merge (= 7.1.0) - citrus-toml-merge (= 7.1.0) - commonmarker-merge (= 7.1.0) - dotenv-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-dev (~> 2.3, >= 2.3.5) - kettle-rb (~> 0.1, >= 0.1.4) - kramdown-merge (= 7.1.0) - markdown-merge (= 7.1.0) - markly-merge (= 7.1.0) - prism-merge (= 7.1.0) - psych-merge (= 7.1.0) - rbs (>= 3.10) - rbs-merge (= 7.1.0) - ruby-merge (= 7.1.0) - token-resolver (~> 2.0, >= 2.0.4) - toml-merge (= 7.1.0) - toml-rb (~> 4.2) - tree_haver (= 7.1.0) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge - specs: - kramdown-merge (7.1.0) - kramdown (~> 2.5) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge - specs: - markdown-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge - specs: - markly-merge (7.1.0) - markdown-merge (= 7.1.0) - markly (~> 0.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge - specs: - parslet-toml-merge (7.1.0) - toml (~> 0.3) - toml-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge - specs: - plain-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge - specs: - prism-merge (7.1.0) - prism (~> 1.6) - ruby-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge - specs: - psych-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge - specs: - ruby-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge - specs: - rust-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb - specs: - smorg-rb (7.1.0) - ast-merge (= 7.1.0) - ast-merge-git (= 7.1.0) - diff-lcs (~> 1.5) - go-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-jem (= 7.1.0) - markly-merge (= 7.1.0) - plain-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge - specs: - toml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver - specs: - tree_haver (7.1.0) - citrus (~> 3.0) - parslet (~> 2.0) - tree_sitter_language_pack (>= 1.13.2, < 2.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge - specs: - typescript-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge - specs: - yaml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge - specs: - zip-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - GEM remote: https://gem.coop/ specs: @@ -281,6 +22,11 @@ GEM rubocop (>= 1.0) version_gem (~> 1.1, >= 1.1.14) ast (2.4.3) + ast-merge (7.1.0) + benchmark + token-resolver (~> 2.0, >= 2.0.4) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) backports (3.25.3) benchmark (0.5.0) bigdecimal (4.1.2) @@ -290,11 +36,6 @@ GEM cgi (0.5.2) citrus (3.0.2) cmdparse (3.0.7) - commonmarker (2.9.0-aarch64-linux) - commonmarker (2.9.0-aarch64-linux-musl) - commonmarker (2.9.0-arm64-darwin) - commonmarker (2.9.0-x86_64-linux) - commonmarker (2.9.0-x86_64-linux-musl) concurrent-ruby (1.3.8) date (3.5.1) debug (1.11.1) @@ -357,8 +98,6 @@ GEM kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) - kettle-drift (1.0.6) - version_gem (~> 1.1, >= 1.1.14) kettle-rb (0.1.5) kettle-soup-cover (3.0.4) kettle-wash (~> 0.1, >= 0.1.0) @@ -387,7 +126,6 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) - markly (0.16.0) mutex_m (0.3.0) nokogiri (1.19.4-aarch64-linux-gnu) racc (~> 1.4) @@ -550,8 +288,6 @@ GEM ruby-progressbar (1.13.0) ruby_engine (2.0.3) ruby_version (1.0.3) - service_actor (3.9.4) - zeitwerk (>= 1.0) silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) @@ -606,11 +342,11 @@ GEM token-resolver (2.0.5) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.14) - toml (0.3.0) - parslet (>= 1.8.0, < 3.0.0) - toml-rb (4.2.0) - citrus (~> 3.0, > 3.0) - racc (~> 1.7) + tree_haver (7.1.0) + citrus (~> 3.0) + parslet (~> 2.0) + tree_sitter_language_pack (>= 1.13.2, < 2.0) + version_gem (~> 1.1, >= 1.1.9) tree_sitter_language_pack (1.13.3-aarch64-linux) sorbet-runtime (~> 0.5) tree_sitter_language_pack (1.13.3-arm64-darwin) @@ -665,43 +401,21 @@ DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.2, >= 3.2.0) appraisal2-rubocop (~> 1.0, >= 1.0.0) - ast-crispr! - ast-crispr-markdown-markly! - ast-crispr-ruby-prism! - ast-merge! - ast-merge-git! - ast-template! - bash-merge! benchmark (~> 0.5, >= 0.5.0) - binary-merge! bundler-audit (~> 0.9.3) cgi (~> 0.5) - citrus-toml-merge! - commonmarker-merge! debug (>= 1.1) - dotenv-merge! erb (~> 6.0, >= 6.0.6) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.4) - go-merge! irb (~> 1.17) - json-merge! kettle-dev (~> 2.3, >= 2.3.7) - kettle-drift (~> 1.0, >= 1.0.6) - kettle-jem! kettle-soup-cover (~> 3.0, >= 3.0.3) kettle-test (~> 2.0, >= 2.0.12) kramdown (~> 2.5, >= 2.5.2) - kramdown-merge! kramdown-parser-gfm (~> 1.1) - markdown-merge! - markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) - parslet-toml-merge! - plain-merge! - prism-merge! - psych-merge! rake (~> 13.0) rbs-merge! rdoc (~> 6.11) @@ -714,28 +428,20 @@ DEPENDENCIES rubocop-on-rbs (~> 2.0, >= 2.0.0) rubocop-packaging (~> 0.6, >= 0.6.0) rubocop-ruby3_2 (~> 3.0, >= 3.0.6) - ruby-merge! ruby-progressbar (~> 1.13) - rust-merge! - smorg-rb! standard (~> 1.56, >= 1.56.0) stone_checksums (~> 1.0, >= 1.0.6) stringio (>= 3.0) - toml-merge! - tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) turbo_tests2 (~> 3.2, >= 3.2.0) - typescript-merge! webrick (~> 1.9) yaml-converter (~> 0.2, >= 0.2.3) - yaml-merge! yard (~> 0.9, >= 0.9.45) yard-fence (~> 0.9, >= 0.9.6) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) yard-timekeeper (~> 0.2, >= 0.2.4) yard-yaml (~> 0.2, >= 0.2.3) - zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af @@ -743,35 +449,20 @@ CHECKSUMS appraisal2 (3.2.0) sha256=ccd0b767ac4060cd7af6d16747459b6990f49c39c7b4fb1f7d1146b1e97c492f appraisal2-rubocop (1.0.0) sha256=b71410fbb014befda5340605a605b7f6f3f012739baf0acc5b4351b592c3258d ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 - ast-crispr (7.1.0) - ast-crispr-markdown-markly (7.1.0) - ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) - ast-merge-git (7.1.0) - ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 - bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd - binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 - citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 - commonmarker (2.9.0-aarch64-linux) sha256=e2b4aadb9a2cfa4e206582641ce3a49465549ac1ed4c289fdd63b78d8f24579c - commonmarker (2.9.0-aarch64-linux-musl) sha256=1cf4d2821f2a7e64945f1ed7c4eeced586fdb27ea7fe7337788802cf8f57cfca - commonmarker (2.9.0-arm64-darwin) sha256=1748dbfa4f5813b0d2a14bb4bbfa65a4ec293aa1c825016d60029ee0e132b046 - commonmarker (2.9.0-x86_64-linux) sha256=8cfe92970eef585a19ddf6613224b91cab64d6029834661bda801f877c9c7f43 - commonmarker (2.9.0-x86_64-linux-musl) sha256=293921398b839f79ceaf55010e061357e34f053822c3b003cd0be6686176335e - commonmarker-merge (7.1.0) concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 - dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -784,28 +475,20 @@ CHECKSUMS gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f - go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 - json-merge (7.1.0) kettle-dev (2.3.9) - kettle-drift (1.0.6) sha256=46eda08fa4411d1f3c6682a95eef1c9df4e94611b3949f49d4c7b43c0ed356a3 - kettle-jem (7.1.0) kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f kettle-soup-cover (3.0.4) kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa - kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 - markdown-merge (7.1.0) - markly (0.16.0) sha256=6f70d79e385b1efc9e171f74c81628826259039fe6c778e03c3924c71dac5511 - markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-aarch64-linux-gnu) sha256=1269fb644a6de405057a53dd5c762b1209b43ca7424f839454d3dbc677c31a8f nokogiri (1.19.4-aarch64-linux-musl) sha256=35c65b9ce72b3bb03207bdbe7067915019dc18c1b9b59139684bd6690fdd01af @@ -819,14 +502,10 @@ CHECKSUMS parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 - parslet-toml-merge (7.1.0) - plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 - prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 - psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a @@ -867,19 +546,15 @@ CHECKSUMS rubocop-rspec_rails (2.32.0) sha256=4a0d641c72f6ebb957534f539d9d0a62c47abd8ce0d0aeee1ef4701e892a9100 rubocop-ruby3_2 (3.0.7) sha256=f53dd6d286fb05186214fc6ec116783e7f837030918e8931c05de773e98f8466 rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 - ruby-merge (7.1.0) ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 - rust-merge (7.1.0) - service_actor (3.9.4) sha256=e63b523630b9a7e62959b2a90113b08d2565b5de9c148557b281ef847c9539ce silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed - smorg-rb (7.1.0) sorbet-runtime (0.6.13351) sha256=f8fee17c6e3edf835dc6823d26afb9a7c8969c6710d1fabe2fb43f4e0c15c64f standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b @@ -894,22 +569,17 @@ CHECKSUMS timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.5) sha256=b852f924287ffb58a440856e862b056c8ad97e74b4b2526cee43e0771f40c25c - toml (0.3.0) sha256=0a91d0f76a9036e84e44f95693b12f58d358c1df3ac8e3b5271f2056ecc6e4b9 - toml-merge (7.1.0) - toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-aarch64-linux) sha256=55ffc7c87868cb45658338363d9eba51b4a8b0259aa88e4de368d2bd1d52fea4 tree_sitter_language_pack (1.13.3-arm64-darwin) sha256=bc2498db605f212a1dbd2465ed3f65190d7da786f6ed5d30fcf958121aeb4a5c tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 - typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 webrick (1.9.2) sha256=beb4a15fc474defed24a3bda4ffd88a490d517c9e4e6118c3edce59e45864131 yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 - yaml-merge (7.1.0) yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd @@ -917,7 +587,6 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 - zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH diff --git a/gems/ruby-merge/Gemfile.lock b/gems/ruby-merge/Gemfile.lock index 664154439..05d635ba1 100644 --- a/gems/ruby-merge/Gemfile.lock +++ b/gems/ruby-merge/Gemfile.lock @@ -6,266 +6,6 @@ PATH tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly - specs: - ast-crispr-markdown-markly (7.1.0) - ast-crispr (= 7.1.0) - markly-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism - specs: - ast-crispr-ruby-prism (7.1.0) - ast-crispr (= 7.1.0) - prism-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr - specs: - ast-crispr (7.1.0) - ast-merge (= 7.1.0) - service_actor (~> 3.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git - specs: - ast-merge-git (7.1.0) - ast-merge (= 7.1.0) - json-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge - specs: - ast-merge (7.1.0) - benchmark - token-resolver (~> 2.0, >= 2.0.4) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template - specs: - ast-template (7.1.0) - ast-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge - specs: - bash-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge - specs: - binary-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge - specs: - citrus-toml-merge (7.1.0) - toml-merge (= 7.1.0) - toml-rb (~> 4.1) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge - specs: - commonmarker-merge (7.1.0) - commonmarker (~> 2.2) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge - specs: - dotenv-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge - specs: - go-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge - specs: - json-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem - specs: - kettle-jem (7.1.0) - addressable (>= 2.8, < 3) - ast-crispr-markdown-markly (= 7.1.0) - ast-crispr-ruby-prism (= 7.1.0) - ast-merge (= 7.1.0) - bash-merge (= 7.1.0) - citrus-toml-merge (= 7.1.0) - commonmarker-merge (= 7.1.0) - dotenv-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-dev (~> 2.3, >= 2.3.5) - kettle-rb (~> 0.1, >= 0.1.4) - kramdown-merge (= 7.1.0) - markdown-merge (= 7.1.0) - markly-merge (= 7.1.0) - prism-merge (= 7.1.0) - psych-merge (= 7.1.0) - rbs (>= 3.10) - rbs-merge (= 7.1.0) - ruby-merge (= 7.1.0) - token-resolver (~> 2.0, >= 2.0.4) - toml-merge (= 7.1.0) - toml-rb (~> 4.2) - tree_haver (= 7.1.0) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge - specs: - kramdown-merge (7.1.0) - kramdown (~> 2.5) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge - specs: - markdown-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge - specs: - markly-merge (7.1.0) - markdown-merge (= 7.1.0) - markly (~> 0.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge - specs: - parslet-toml-merge (7.1.0) - toml (~> 0.3) - toml-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge - specs: - plain-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge - specs: - prism-merge (7.1.0) - prism (~> 1.6) - ruby-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge - specs: - psych-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge - specs: - rbs-merge (7.1.0) - ast-merge (= 7.1.0) - rbs (>= 3.10) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge - specs: - rust-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb - specs: - smorg-rb (7.1.0) - ast-merge (= 7.1.0) - ast-merge-git (= 7.1.0) - diff-lcs (~> 1.5) - go-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-jem (= 7.1.0) - markly-merge (= 7.1.0) - plain-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge - specs: - toml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver - specs: - tree_haver (7.1.0) - citrus (~> 3.0) - parslet (~> 2.0) - tree_sitter_language_pack (>= 1.13.2, < 2.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge - specs: - typescript-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge - specs: - yaml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge - specs: - zip-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - GEM remote: https://gem.coop/ specs: @@ -281,6 +21,11 @@ GEM rubocop (>= 1.0) version_gem (~> 1.1, >= 1.1.14) ast (2.4.3) + ast-merge (7.1.0) + benchmark + token-resolver (~> 2.0, >= 2.0.4) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) backports (3.25.3) benchmark (0.5.0) bigdecimal (4.1.2) @@ -290,11 +35,6 @@ GEM cgi (0.5.2) citrus (3.0.2) cmdparse (3.0.7) - commonmarker (2.9.0-aarch64-linux) - commonmarker (2.9.0-aarch64-linux-musl) - commonmarker (2.9.0-arm64-darwin) - commonmarker (2.9.0-x86_64-linux) - commonmarker (2.9.0-x86_64-linux-musl) concurrent-ruby (1.3.8) date (3.5.1) debug (1.11.1) @@ -357,8 +97,6 @@ GEM kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) - kettle-drift (1.0.6) - version_gem (~> 1.1, >= 1.1.14) kettle-rb (0.1.5) kettle-soup-cover (3.0.4) kettle-wash (~> 0.1, >= 0.1.0) @@ -387,7 +125,6 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) - markly (0.16.0) mutex_m (0.3.0) nokogiri (1.19.4-aarch64-linux-gnu) racc (~> 1.4) @@ -550,8 +287,6 @@ GEM ruby-progressbar (1.13.0) ruby_engine (2.0.3) ruby_version (1.0.3) - service_actor (3.9.4) - zeitwerk (>= 1.0) silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) @@ -606,11 +341,11 @@ GEM token-resolver (2.0.5) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.14) - toml (0.3.0) - parslet (>= 1.8.0, < 3.0.0) - toml-rb (4.2.0) - citrus (~> 3.0, > 3.0) - racc (~> 1.7) + tree_haver (7.1.0) + citrus (~> 3.0) + parslet (~> 2.0) + tree_sitter_language_pack (>= 1.13.2, < 2.0) + version_gem (~> 1.1, >= 1.1.9) tree_sitter_language_pack (1.13.3-aarch64-linux) sorbet-runtime (~> 0.5) tree_sitter_language_pack (1.13.3-arm64-darwin) @@ -665,46 +400,23 @@ DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) appraisal2-rubocop (~> 1.0, >= 1.0.0) - ast-crispr! - ast-crispr-markdown-markly! - ast-crispr-ruby-prism! - ast-merge! - ast-merge-git! - ast-template! - bash-merge! benchmark (~> 0.5, >= 0.5.0) - binary-merge! bundler-audit (~> 0.9.3) cgi (~> 0.5) - citrus-toml-merge! - commonmarker-merge! debug (>= 1.1) - dotenv-merge! erb (~> 6.0, >= 6.0.6) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.0) - go-merge! irb (~> 1.17) - json-merge! kettle-dev (~> 2.0, >= 2.2.25) - kettle-drift (~> 1.0, >= 1.0.6) - kettle-jem! kettle-soup-cover (~> 3.0, >= 3.0.3) kettle-test (~> 2.0, >= 2.0.9) kramdown (~> 2.5, >= 2.5.2) - kramdown-merge! kramdown-parser-gfm (~> 1.1) - markdown-merge! - markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) - parslet-toml-merge! - plain-merge! - prism-merge! - psych-merge! rake (~> 13.0) rbs (>= 3.0) - rbs-merge! rdoc (~> 6.11) reek (~> 6.5, >= 6.5.0) require_bench (~> 1.0, >= 1.0.4) @@ -717,25 +429,18 @@ DEPENDENCIES rubocop-ruby3_2 (~> 3.0, >= 3.0.6) ruby-merge! ruby-progressbar (~> 1.13) - rust-merge! - smorg-rb! standard (~> 1.56, >= 1.56.0) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) - toml-merge! - tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) - typescript-merge! webrick (~> 1.9) yaml-converter (~> 0.2, >= 0.2.3) - yaml-merge! yard (~> 0.9, >= 0.9.45) yard-fence (~> 0.9, >= 0.9.6) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) yard-timekeeper (~> 0.2, >= 0.2.4) yard-yaml (~> 0.2, >= 0.2.3) - zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af @@ -743,35 +448,20 @@ CHECKSUMS appraisal2 (3.2.0) sha256=ccd0b767ac4060cd7af6d16747459b6990f49c39c7b4fb1f7d1146b1e97c492f appraisal2-rubocop (1.0.0) sha256=b71410fbb014befda5340605a605b7f6f3f012739baf0acc5b4351b592c3258d ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 - ast-crispr (7.1.0) - ast-crispr-markdown-markly (7.1.0) - ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) - ast-merge-git (7.1.0) - ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 - bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd - binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 - citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 - commonmarker (2.9.0-aarch64-linux) sha256=e2b4aadb9a2cfa4e206582641ce3a49465549ac1ed4c289fdd63b78d8f24579c - commonmarker (2.9.0-aarch64-linux-musl) sha256=1cf4d2821f2a7e64945f1ed7c4eeced586fdb27ea7fe7337788802cf8f57cfca - commonmarker (2.9.0-arm64-darwin) sha256=1748dbfa4f5813b0d2a14bb4bbfa65a4ec293aa1c825016d60029ee0e132b046 - commonmarker (2.9.0-x86_64-linux) sha256=8cfe92970eef585a19ddf6613224b91cab64d6029834661bda801f877c9c7f43 - commonmarker (2.9.0-x86_64-linux-musl) sha256=293921398b839f79ceaf55010e061357e34f053822c3b003cd0be6686176335e - commonmarker-merge (7.1.0) concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 - dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -784,28 +474,20 @@ CHECKSUMS gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f - go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 - json-merge (7.1.0) kettle-dev (2.3.9) - kettle-drift (1.0.6) sha256=46eda08fa4411d1f3c6682a95eef1c9df4e94611b3949f49d4c7b43c0ed356a3 - kettle-jem (7.1.0) kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f kettle-soup-cover (3.0.4) kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa - kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 - markdown-merge (7.1.0) - markly (0.16.0) sha256=6f70d79e385b1efc9e171f74c81628826259039fe6c778e03c3924c71dac5511 - markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-aarch64-linux-gnu) sha256=1269fb644a6de405057a53dd5c762b1209b43ca7424f839454d3dbc677c31a8f nokogiri (1.19.4-aarch64-linux-musl) sha256=35c65b9ce72b3bb03207bdbe7067915019dc18c1b9b59139684bd6690fdd01af @@ -819,20 +501,15 @@ CHECKSUMS parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 - parslet-toml-merge (7.1.0) - plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 - prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 - psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 - rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb @@ -871,15 +548,12 @@ CHECKSUMS ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 - rust-merge (7.1.0) - service_actor (3.9.4) sha256=e63b523630b9a7e62959b2a90113b08d2565b5de9c148557b281ef847c9539ce silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed - smorg-rb (7.1.0) sorbet-runtime (0.6.13351) sha256=f8fee17c6e3edf835dc6823d26afb9a7c8969c6710d1fabe2fb43f4e0c15c64f standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b @@ -894,22 +568,17 @@ CHECKSUMS timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.5) sha256=b852f924287ffb58a440856e862b056c8ad97e74b4b2526cee43e0771f40c25c - toml (0.3.0) sha256=0a91d0f76a9036e84e44f95693b12f58d358c1df3ac8e3b5271f2056ecc6e4b9 - toml-merge (7.1.0) - toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-aarch64-linux) sha256=55ffc7c87868cb45658338363d9eba51b4a8b0259aa88e4de368d2bd1d52fea4 tree_sitter_language_pack (1.13.3-arm64-darwin) sha256=bc2498db605f212a1dbd2465ed3f65190d7da786f6ed5d30fcf958121aeb4a5c tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 - typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 webrick (1.9.2) sha256=beb4a15fc474defed24a3bda4ffd88a490d517c9e4e6118c3edce59e45864131 yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 - yaml-merge (7.1.0) yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd @@ -917,7 +586,6 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 - zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH diff --git a/gems/rust-merge/Gemfile.lock b/gems/rust-merge/Gemfile.lock index abdd1b8ed..617a48fe6 100644 --- a/gems/rust-merge/Gemfile.lock +++ b/gems/rust-merge/Gemfile.lock @@ -6,266 +6,6 @@ PATH tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly - specs: - ast-crispr-markdown-markly (7.1.0) - ast-crispr (= 7.1.0) - markly-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism - specs: - ast-crispr-ruby-prism (7.1.0) - ast-crispr (= 7.1.0) - prism-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr - specs: - ast-crispr (7.1.0) - ast-merge (= 7.1.0) - service_actor (~> 3.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git - specs: - ast-merge-git (7.1.0) - ast-merge (= 7.1.0) - json-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge - specs: - ast-merge (7.1.0) - benchmark - token-resolver (~> 2.0, >= 2.0.4) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template - specs: - ast-template (7.1.0) - ast-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge - specs: - bash-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge - specs: - binary-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge - specs: - citrus-toml-merge (7.1.0) - toml-merge (= 7.1.0) - toml-rb (~> 4.1) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge - specs: - commonmarker-merge (7.1.0) - commonmarker (~> 2.2) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge - specs: - dotenv-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge - specs: - go-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge - specs: - json-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem - specs: - kettle-jem (7.1.0) - addressable (>= 2.8, < 3) - ast-crispr-markdown-markly (= 7.1.0) - ast-crispr-ruby-prism (= 7.1.0) - ast-merge (= 7.1.0) - bash-merge (= 7.1.0) - citrus-toml-merge (= 7.1.0) - commonmarker-merge (= 7.1.0) - dotenv-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-dev (~> 2.3, >= 2.3.5) - kettle-rb (~> 0.1, >= 0.1.4) - kramdown-merge (= 7.1.0) - markdown-merge (= 7.1.0) - markly-merge (= 7.1.0) - prism-merge (= 7.1.0) - psych-merge (= 7.1.0) - rbs (>= 3.10) - rbs-merge (= 7.1.0) - ruby-merge (= 7.1.0) - token-resolver (~> 2.0, >= 2.0.4) - toml-merge (= 7.1.0) - toml-rb (~> 4.2) - tree_haver (= 7.1.0) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge - specs: - kramdown-merge (7.1.0) - kramdown (~> 2.5) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge - specs: - markdown-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge - specs: - markly-merge (7.1.0) - markdown-merge (= 7.1.0) - markly (~> 0.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge - specs: - parslet-toml-merge (7.1.0) - toml (~> 0.3) - toml-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge - specs: - plain-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge - specs: - prism-merge (7.1.0) - prism (~> 1.6) - ruby-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge - specs: - psych-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge - specs: - rbs-merge (7.1.0) - ast-merge (= 7.1.0) - rbs (>= 3.10) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge - specs: - ruby-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb - specs: - smorg-rb (7.1.0) - ast-merge (= 7.1.0) - ast-merge-git (= 7.1.0) - diff-lcs (~> 1.5) - go-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-jem (= 7.1.0) - markly-merge (= 7.1.0) - plain-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge - specs: - toml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver - specs: - tree_haver (7.1.0) - citrus (~> 3.0) - parslet (~> 2.0) - tree_sitter_language_pack (>= 1.13.2, < 2.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge - specs: - typescript-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge - specs: - yaml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge - specs: - zip-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - GEM remote: https://gem.coop/ specs: @@ -281,6 +21,11 @@ GEM rubocop (>= 1.0) version_gem (~> 1.1, >= 1.1.14) ast (2.4.3) + ast-merge (7.1.0) + benchmark + token-resolver (~> 2.0, >= 2.0.4) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) backports (3.25.3) benchmark (0.5.0) bigdecimal (4.1.2) @@ -290,11 +35,6 @@ GEM cgi (0.5.2) citrus (3.0.2) cmdparse (3.0.7) - commonmarker (2.9.0-aarch64-linux) - commonmarker (2.9.0-aarch64-linux-musl) - commonmarker (2.9.0-arm64-darwin) - commonmarker (2.9.0-x86_64-linux) - commonmarker (2.9.0-x86_64-linux-musl) concurrent-ruby (1.3.8) date (3.5.1) debug (1.11.1) @@ -357,8 +97,6 @@ GEM kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) - kettle-drift (1.0.6) - version_gem (~> 1.1, >= 1.1.14) kettle-rb (0.1.5) kettle-soup-cover (3.0.4) kettle-wash (~> 0.1, >= 0.1.0) @@ -387,7 +125,6 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) - markly (0.16.0) mutex_m (0.3.0) nokogiri (1.19.4-aarch64-linux-gnu) racc (~> 1.4) @@ -550,8 +287,6 @@ GEM ruby-progressbar (1.13.0) ruby_engine (2.0.3) ruby_version (1.0.3) - service_actor (3.9.4) - zeitwerk (>= 1.0) silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) @@ -606,11 +341,11 @@ GEM token-resolver (2.0.5) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.14) - toml (0.3.0) - parslet (>= 1.8.0, < 3.0.0) - toml-rb (4.2.0) - citrus (~> 3.0, > 3.0) - racc (~> 1.7) + tree_haver (7.1.0) + citrus (~> 3.0) + parslet (~> 2.0) + tree_sitter_language_pack (>= 1.13.2, < 2.0) + version_gem (~> 1.1, >= 1.1.9) tree_sitter_language_pack (1.13.3-aarch64-linux) sorbet-runtime (~> 0.5) tree_sitter_language_pack (1.13.3-arm64-darwin) @@ -665,46 +400,23 @@ DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) appraisal2-rubocop (~> 1.0, >= 1.0.0) - ast-crispr! - ast-crispr-markdown-markly! - ast-crispr-ruby-prism! - ast-merge! - ast-merge-git! - ast-template! - bash-merge! benchmark (~> 0.5, >= 0.5.0) - binary-merge! bundler-audit (~> 0.9.3) cgi (~> 0.5) - citrus-toml-merge! - commonmarker-merge! debug (>= 1.1) - dotenv-merge! erb (~> 6.0, >= 6.0.6) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.0) - go-merge! irb (~> 1.17) - json-merge! kettle-dev (~> 2.0, >= 2.2.25) - kettle-drift (~> 1.0, >= 1.0.6) - kettle-jem! kettle-soup-cover (~> 3.0, >= 3.0.3) kettle-test (~> 2.0, >= 2.0.9) kramdown (~> 2.5, >= 2.5.2) - kramdown-merge! kramdown-parser-gfm (~> 1.1) - markdown-merge! - markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) - parslet-toml-merge! - plain-merge! - prism-merge! - psych-merge! rake (~> 13.0) rbs (>= 3.0) - rbs-merge! rdoc (~> 6.11) reek (~> 6.5, >= 6.5.0) require_bench (~> 1.0, >= 1.0.4) @@ -715,27 +427,20 @@ DEPENDENCIES rubocop-on-rbs (~> 2.0, >= 2.0.0) rubocop-packaging (~> 0.6, >= 0.6.0) rubocop-ruby3_2 (~> 3.0, >= 3.0.6) - ruby-merge! ruby-progressbar (~> 1.13) rust-merge! - smorg-rb! standard (~> 1.56, >= 1.56.0) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) - toml-merge! - tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) - typescript-merge! webrick (~> 1.9) yaml-converter (~> 0.2, >= 0.2.3) - yaml-merge! yard (~> 0.9, >= 0.9.45) yard-fence (~> 0.9, >= 0.9.6) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) yard-timekeeper (~> 0.2, >= 0.2.4) yard-yaml (~> 0.2, >= 0.2.3) - zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af @@ -743,35 +448,20 @@ CHECKSUMS appraisal2 (3.2.0) sha256=ccd0b767ac4060cd7af6d16747459b6990f49c39c7b4fb1f7d1146b1e97c492f appraisal2-rubocop (1.0.0) sha256=b71410fbb014befda5340605a605b7f6f3f012739baf0acc5b4351b592c3258d ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 - ast-crispr (7.1.0) - ast-crispr-markdown-markly (7.1.0) - ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) - ast-merge-git (7.1.0) - ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 - bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd - binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 - citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 - commonmarker (2.9.0-aarch64-linux) sha256=e2b4aadb9a2cfa4e206582641ce3a49465549ac1ed4c289fdd63b78d8f24579c - commonmarker (2.9.0-aarch64-linux-musl) sha256=1cf4d2821f2a7e64945f1ed7c4eeced586fdb27ea7fe7337788802cf8f57cfca - commonmarker (2.9.0-arm64-darwin) sha256=1748dbfa4f5813b0d2a14bb4bbfa65a4ec293aa1c825016d60029ee0e132b046 - commonmarker (2.9.0-x86_64-linux) sha256=8cfe92970eef585a19ddf6613224b91cab64d6029834661bda801f877c9c7f43 - commonmarker (2.9.0-x86_64-linux-musl) sha256=293921398b839f79ceaf55010e061357e34f053822c3b003cd0be6686176335e - commonmarker-merge (7.1.0) concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 - dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -784,28 +474,20 @@ CHECKSUMS gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f - go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 - json-merge (7.1.0) kettle-dev (2.3.9) - kettle-drift (1.0.6) sha256=46eda08fa4411d1f3c6682a95eef1c9df4e94611b3949f49d4c7b43c0ed356a3 - kettle-jem (7.1.0) kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f kettle-soup-cover (3.0.4) kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa - kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 - markdown-merge (7.1.0) - markly (0.16.0) sha256=6f70d79e385b1efc9e171f74c81628826259039fe6c778e03c3924c71dac5511 - markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-aarch64-linux-gnu) sha256=1269fb644a6de405057a53dd5c762b1209b43ca7424f839454d3dbc677c31a8f nokogiri (1.19.4-aarch64-linux-musl) sha256=35c65b9ce72b3bb03207bdbe7067915019dc18c1b9b59139684bd6690fdd01af @@ -819,20 +501,15 @@ CHECKSUMS parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 - parslet-toml-merge (7.1.0) - plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 - prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 - psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 - rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb @@ -867,19 +544,16 @@ CHECKSUMS rubocop-rspec_rails (2.32.0) sha256=4a0d641c72f6ebb957534f539d9d0a62c47abd8ce0d0aeee1ef4701e892a9100 rubocop-ruby3_2 (3.0.7) sha256=f53dd6d286fb05186214fc6ec116783e7f837030918e8931c05de773e98f8466 rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 - ruby-merge (7.1.0) ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 rust-merge (7.1.0) - service_actor (3.9.4) sha256=e63b523630b9a7e62959b2a90113b08d2565b5de9c148557b281ef847c9539ce silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed - smorg-rb (7.1.0) sorbet-runtime (0.6.13351) sha256=f8fee17c6e3edf835dc6823d26afb9a7c8969c6710d1fabe2fb43f4e0c15c64f standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b @@ -894,22 +568,17 @@ CHECKSUMS timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.5) sha256=b852f924287ffb58a440856e862b056c8ad97e74b4b2526cee43e0771f40c25c - toml (0.3.0) sha256=0a91d0f76a9036e84e44f95693b12f58d358c1df3ac8e3b5271f2056ecc6e4b9 - toml-merge (7.1.0) - toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-aarch64-linux) sha256=55ffc7c87868cb45658338363d9eba51b4a8b0259aa88e4de368d2bd1d52fea4 tree_sitter_language_pack (1.13.3-arm64-darwin) sha256=bc2498db605f212a1dbd2465ed3f65190d7da786f6ed5d30fcf958121aeb4a5c tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 - typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 webrick (1.9.2) sha256=beb4a15fc474defed24a3bda4ffd88a490d517c9e4e6118c3edce59e45864131 yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 - yaml-merge (7.1.0) yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd @@ -917,7 +586,6 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 - zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH diff --git a/gems/smorg-rb/.kettle-drift.lock b/gems/smorg-rb/.kettle-drift.lock index b649810f6..d5943379c 100644 --- a/gems/smorg-rb/.kettle-drift.lock +++ b/gems/smorg-rb/.kettle-drift.lock @@ -1,10 +1,74 @@ { + "(direct_sibling_local ||\nENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?)": [ + { + "file": "Gemfile", + "lines": [ + 85, + 125 + ] + } + ], + ".find { |spec| spec.name == 'nomono' }\nnomono_locked = nomono_locked_spec &&": [ + { + "file": "Gemfile", + "lines": [ + 96, + 136 + ] + } + ], + "ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?)\ndirect_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV')": [ + { + "file": "Gemfile", + "lines": [ + 86, + 126 + ] + } + ], + "Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version)\nnomono_activation_requirements = [\"= #{nomono_locked_spec.version}\"] if nomono_locked": [ + { + "file": "Gemfile", + "lines": [ + 98, + 138 + ] + } + ], + "Kernel.send(:gem, 'nomono', *nomono_activation_requirements)\nrequire 'nomono/bundler'": [ + { + "file": "Gemfile", + "lines": [ + 101, + 141 + ] + } + ], + "direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV')\ndirect_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil)": [ + { + "file": "Gemfile", + "lines": [ + 87, + 127 + ] + } + ], "eval_nomono_gems(\ngems: direct_sibling_gems,": [ { "file": "Gemfile", "lines": [ 65, - 105 + 105, + 145 + ] + } + ], + "gems: direct_sibling_gems,\nprefix: 'STRUCTUREDMERGE',": [ + { + "file": "Gemfile", + "lines": [ + 106, + 146 ] } ], @@ -13,7 +77,17 @@ "file": "Gemfile", "lines": [ 48, - 92 + 92, + 132 + ] + } + ], + "if direct_sibling_dev_was_set\nENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original": [ + { + "file": "Gemfile", + "lines": [ + 115, + 155 ] } ], @@ -22,7 +96,8 @@ "file": "Gemfile", "lines": [ 40, - 84 + 84, + 124 ] } ], @@ -31,7 +106,17 @@ "file": "Gemfile", "lines": [ 74, - 114 + 114, + 154 + ] + } + ], + "nomono_activation_requirements = nomono_requirements\nnomono_lockfile = File.expand_path('Gemfile.lock', __dir__)": [ + { + "file": "Gemfile", + "lines": [ + 90, + 130 ] } ], @@ -40,7 +125,8 @@ "file": "Gemfile", "lines": [ 53, - 97 + 97, + 137 ] } ], @@ -49,7 +135,53 @@ "file": "Gemfile", "lines": [ 49, - 93 + 93, + 133 + ] + } + ], + "nomono_lockfile = File.expand_path('Gemfile.lock', __dir__)\nif File.file?(nomono_lockfile)": [ + { + "file": "Gemfile", + "lines": [ + 91, + 131 + ] + } + ], + "path_env: 'STRUCTUREDMERGE_DEV',\nroot: %w[src my structuredmerge]": [ + { + "file": "Gemfile", + "lines": [ + 108, + 148 + ] + } + ], + "prefix: 'STRUCTUREDMERGE',\npath_env: 'STRUCTUREDMERGE_DEV',": [ + { + "file": "Gemfile", + "lines": [ + 107, + 147 + ] + } + ], + "require 'nomono/bundler'\nENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local": [ + { + "file": "Gemfile", + "lines": [ + 102, + 142 + ] + } + ], + "rescue LoadError\nwarn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.'": [ + { + "file": "Gemfile", + "lines": [ + 111, + 151 ] } ] diff --git a/gems/smorg-rb/Gemfile b/gems/smorg-rb/Gemfile index 024257b48..05468d8b0 100644 --- a/gems/smorg-rb/Gemfile +++ b/gems/smorg-rb/Gemfile @@ -6,7 +6,7 @@ # kettle-jem will then preserve content between those markers across template runs. # kettle-jem:unfreeze -source 'https://gem.coop' +source "https://gem.coop" git_source(:codeberg) { |repo_name| "https://codeberg.org/#{repo_name}" } git_source(:gitlab) { |repo_name| "https://gitlab.com/#{repo_name}" } @@ -19,8 +19,8 @@ git_source(:gitlab) { |repo_name| "https://gitlab.com/#{repo_name}" } gemspec # Local workspace dependency wiring for *_local.gemfile overrides -nomono_requirements = ['~> 1.0', '>= 1.0.8'] -gem 'nomono', *nomono_requirements, require: false # ruby >= 2.2 +nomono_requirements = ["~> 1.0", ">= 1.0.8"] +gem "nomono", *nomono_requirements, require: false # ruby >= 2.2 # Direct sibling dependencies (env-switched via STRUCTUREDMERGE_DEV) direct_sibling_gems = %w[ @@ -32,10 +32,54 @@ direct_sibling_gems = %w[ markly-merge plain-merge ] -direct_sibling_dev = ENV.fetch('STRUCTUREDMERGE_DEV', '') +direct_sibling_dev = ENV.fetch("STRUCTUREDMERGE_DEV", "") direct_sibling_local = !direct_sibling_dev.empty? && !%w[false 0 no off].include?(direct_sibling_dev.downcase) -direct_sibling_templating = ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? +direct_sibling_templating = ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? + +if direct_sibling_gems.any? && + (direct_sibling_local || + ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero?) + direct_sibling_dev_was_set = ENV.key?("STRUCTUREDMERGE_DEV") + direct_sibling_dev_original = ENV.fetch("STRUCTUREDMERGE_DEV", nil) + begin + nomono_activation_requirements = nomono_requirements + nomono_lockfile = File.expand_path("Gemfile.lock", __dir__) + if File.file?(nomono_lockfile) + nomono_locked_spec = Bundler::LockfileParser + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == "nomono" } + nomono_locked = nomono_locked_spec && + Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) + if nomono_locked + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] + end + end + Kernel.send(:gem, "nomono", *nomono_activation_requirements) + require "nomono/bundler" + if direct_sibling_templating && !direct_sibling_local + ENV["STRUCTUREDMERGE_DEV"] = File.expand_path("..", __dir__) + end + + eval_nomono_gems( + gems: direct_sibling_gems, + prefix: "STRUCTUREDMERGE", + path_env: "STRUCTUREDMERGE_DEV", + root: ["src", "my", "structuredmerge"] + ) + rescue LoadError + warn "Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies." + ensure + if direct_sibling_templating && !direct_sibling_local + if direct_sibling_dev_was_set + ENV["STRUCTUREDMERGE_DEV"] = direct_sibling_dev_original + else + ENV.delete("STRUCTUREDMERGE_DEV") + end + end + end +end if direct_sibling_gems.any? && (direct_sibling_local || @@ -118,28 +162,28 @@ if direct_sibling_gems.any? && end # Use released TSLP with the Ruby ABI platform-gem fix. -gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' +gem "tree_sitter_language_pack", "~> 1.13", ">= 1.13.3" # Templating (env-switched: STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local paths) -eval_gemfile 'gemfiles/modular/templating.gemfile' if ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? +eval_gemfile "gemfiles/modular/templating.gemfile" if ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? # Debugging -eval_gemfile 'gemfiles/modular/debug.gemfile' +eval_gemfile "gemfiles/modular/debug.gemfile" # Code Coverage (env-switched: KETTLE_DEV_DEV=true for local paths) -eval_gemfile 'gemfiles/modular/coverage.gemfile' +eval_gemfile "gemfiles/modular/coverage.gemfile" # Linting -eval_gemfile 'gemfiles/modular/style.gemfile' +eval_gemfile "gemfiles/modular/style.gemfile" # Documentation -eval_gemfile 'gemfiles/modular/documentation.gemfile' +eval_gemfile "gemfiles/modular/documentation.gemfile" # Optional -eval_gemfile 'gemfiles/modular/optional.gemfile' +eval_gemfile "gemfiles/modular/optional.gemfile" ### Std Lib Extracted Gems -eval_gemfile 'gemfiles/modular/x_std_libs.gemfile' +eval_gemfile "gemfiles/modular/x_std_libs.gemfile" # See unlocked_deps appraisal for more details on irb inclusion -gem 'irb', '~> 1.17' # ruby >= 2.7 +gem "irb", "~> 1.17" # ruby >= 2.7 diff --git a/gems/smorg-rb/Gemfile.lock b/gems/smorg-rb/Gemfile.lock index 4895c0f61..d6bbb9248 100644 --- a/gems/smorg-rb/Gemfile.lock +++ b/gems/smorg-rb/Gemfile.lock @@ -12,276 +12,47 @@ PATH plain-merge (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly +GEM + remote: https://gem.coop/ specs: + addressable (2.9.0) + public_suffix (>= 2.0.2, < 8.0) + ansi (1.6.0) + appraisal2 (3.2.0) + bundler (>= 1.17.3) + rake (>= 10) + thor (>= 0.14) + appraisal2-rubocop (1.0.0) + appraisal2 (>= 3.1.4) + rubocop (>= 1.0) + version_gem (~> 1.1, >= 1.1.14) + ast (2.4.3) + ast-crispr (7.1.0) + ast-merge (= 7.1.0) + service_actor (~> 3.9) + version_gem (~> 1.1, >= 1.1.9) ast-crispr-markdown-markly (7.1.0) ast-crispr (= 7.1.0) markly-merge (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism - specs: ast-crispr-ruby-prism (7.1.0) ast-crispr (= 7.1.0) prism-merge (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr - specs: - ast-crispr (7.1.0) - ast-merge (= 7.1.0) - service_actor (~> 3.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git - specs: - ast-merge-git (7.1.0) - ast-merge (= 7.1.0) - json-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge - specs: ast-merge (7.1.0) benchmark token-resolver (~> 2.0, >= 2.0.4) tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template - specs: - ast-template (7.1.0) - ast-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge - specs: - bash-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge - specs: - binary-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge - specs: - citrus-toml-merge (7.1.0) - toml-merge (= 7.1.0) - toml-rb (~> 4.1) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge - specs: - commonmarker-merge (7.1.0) - commonmarker (~> 2.2) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge - specs: - dotenv-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge - specs: - go-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge - specs: - json-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem - specs: - kettle-jem (7.1.0) - addressable (>= 2.8, < 3) - ast-crispr-markdown-markly (= 7.1.0) - ast-crispr-ruby-prism (= 7.1.0) + ast-merge-git (7.1.0) ast-merge (= 7.1.0) - bash-merge (= 7.1.0) - citrus-toml-merge (= 7.1.0) - commonmarker-merge (= 7.1.0) - dotenv-merge (= 7.1.0) json-merge (= 7.1.0) - kettle-dev (~> 2.3, >= 2.3.5) - kettle-rb (~> 0.1, >= 0.1.4) - kramdown-merge (= 7.1.0) - markdown-merge (= 7.1.0) - markly-merge (= 7.1.0) - prism-merge (= 7.1.0) - psych-merge (= 7.1.0) - rbs (>= 3.10) - rbs-merge (= 7.1.0) - ruby-merge (= 7.1.0) - token-resolver (~> 2.0, >= 2.0.4) - toml-merge (= 7.1.0) - toml-rb (~> 4.2) - tree_haver (= 7.1.0) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge - specs: - kramdown-merge (7.1.0) - kramdown (~> 2.5) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge - specs: - markdown-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge - specs: - markly-merge (7.1.0) - markdown-merge (= 7.1.0) - markly (~> 0.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge - specs: - parslet-toml-merge (7.1.0) - toml (~> 0.3) - toml-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge - specs: - plain-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge - specs: - prism-merge (7.1.0) - prism (~> 1.6) - ruby-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge - specs: - psych-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge - specs: - rbs-merge (7.1.0) - ast-merge (= 7.1.0) - rbs (>= 3.10) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge - specs: - ruby-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge - specs: - rust-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge - specs: - toml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver - specs: - tree_haver (7.1.0) - citrus (~> 3.0) - parslet (~> 2.0) - tree_sitter_language_pack (>= 1.13.2, < 2.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge - specs: - typescript-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge - specs: - yaml-merge (7.1.0) + backports (3.25.3) + bash-merge (7.1.0) ast-merge (= 7.1.0) tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge - specs: - zip-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -GEM - remote: https://gem.coop/ - specs: - addressable (2.9.0) - public_suffix (>= 2.0.2, < 8.0) - ansi (1.6.0) - appraisal2 (3.2.0) - bundler (>= 1.17.3) - rake (>= 10) - thor (>= 0.14) - appraisal2-rubocop (1.0.0) - appraisal2 (>= 3.1.4) - rubocop (>= 1.0) version_gem (~> 1.1, >= 1.1.14) - ast (2.4.3) - backports (3.25.3) benchmark (0.5.0) bigdecimal (4.1.2) bundler-audit (0.9.3) @@ -289,8 +60,16 @@ GEM thor (~> 1.0) cgi (0.5.2) citrus (3.0.2) + citrus-toml-merge (7.1.0) + toml-merge (= 7.1.0) + toml-rb (~> 4.1) + version_gem (~> 1.1, >= 1.1.9) cmdparse (3.0.7) commonmarker (2.9.0-x86_64-linux) + commonmarker-merge (7.1.0) + commonmarker (~> 2.2) + markdown-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) concurrent-ruby (1.3.8) date (3.5.1) debug (1.11.1) @@ -299,6 +78,10 @@ GEM delegate (0.6.1) diff-lcs (1.6.2) diffy (3.4.4) + dotenv-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) dry-configurable (1.4.0) dry-core (~> 1.0) zeitwerk (~> 2.6) @@ -336,6 +119,10 @@ GEM geom2d (0.4.1) gitmoji-regex (2.0.4) version_gem (~> 1.1, >= 1.1.13) + go-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) hexapdf (1.9.1) cmdparse (~> 3.0, >= 3.0.3) geom2d (~> 0.4, >= 0.4.1) @@ -348,13 +135,40 @@ GEM rdoc (>= 4.0.0) reline (>= 0.4.2) json (2.21.1) + json-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) kettle-dev (2.3.8) emoji_regex (>= 15.0) kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) - kettle-drift (1.0.6) - version_gem (~> 1.1, >= 1.1.14) + kettle-jem (7.1.0) + addressable (>= 2.8, < 3) + ast-crispr-markdown-markly (= 7.1.0) + ast-crispr-ruby-prism (= 7.1.0) + ast-merge (= 7.1.0) + bash-merge (= 7.1.0) + citrus-toml-merge (= 7.1.0) + commonmarker-merge (= 7.1.0) + dotenv-merge (= 7.1.0) + json-merge (= 7.1.0) + kettle-dev (~> 2.3, >= 2.3.5) + kettle-rb (~> 0.1, >= 0.1.4) + kramdown-merge (= 7.1.0) + markdown-merge (= 7.1.0) + markly-merge (= 7.1.0) + prism-merge (= 7.1.0) + psych-merge (= 7.1.0) + rbs (>= 3.10) + rbs-merge (= 7.1.0) + ruby-merge (= 7.1.0) + token-resolver (~> 2.0, >= 2.0.4) + toml-merge (= 7.1.0) + toml-rb (~> 4.2) + tree_haver (= 7.1.0) + yaml-merge (= 7.1.0) kettle-rb (0.1.5) kettle-soup-cover (3.0.3) kettle-wash (~> 0.1, >= 0.1.0) @@ -378,12 +192,24 @@ GEM version_gem (~> 1.1, >= 1.1.14) kramdown (2.5.2) rexml (>= 3.4.4) + kramdown-merge (7.1.0) + kramdown (~> 2.5) + markdown-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) kramdown-parser-gfm (1.1.0) kramdown (~> 2.0) language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) + markdown-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) markly (0.16.0) + markly-merge (7.1.0) + markdown-merge (= 7.1.0) + markly (~> 0.9) + version_gem (~> 1.1, >= 1.1.9) mutex_m (0.3.0) nokogiri (1.19.4-x86_64-linux-gnu) racc (~> 1.4) @@ -397,13 +223,26 @@ GEM ast (~> 2.4.1) racc parslet (2.0.0) + plain-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) pp (0.6.4) prettyprint prettyprint (0.2.0) prism (1.9.0) + prism-merge (7.1.0) + prism (~> 1.6) + ruby-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) psych (5.4.0) date stringio + psych-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + yaml-merge (= 7.1.0) public_suffix (7.0.5) racc (1.8.1) rainbow (3.1.1) @@ -412,6 +251,11 @@ GEM logger prism (>= 1.6.0) tsort + rbs-merge (7.1.0) + ast-merge (= 7.1.0) + rbs (>= 3.10) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) rdoc (6.17.0) erb psych (>= 4.0.0) @@ -535,6 +379,10 @@ GEM lint_roller (~> 1.1) rubocop (~> 1.72, >= 1.72.1) rubocop-ast (>= 1.44.0, < 2.0) + ruby-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) ruby-progressbar (1.13.0) ruby_engine (2.0.3) ruby_version (1.0.3) @@ -555,7 +403,7 @@ GEM simplecov (>= 0.4.1) simplecov_lcov_formatter (0.9.0) simplecov (>= 0.18) - sorbet-runtime (0.6.13347) + sorbet-runtime (0.6.13351) standard (1.56.0) language_server-protocol (~> 3.17.0.2) lint_roller (~> 1.0) @@ -594,11 +442,18 @@ GEM token-resolver (2.0.5) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.14) - toml (0.3.0) - parslet (>= 1.8.0, < 3.0.0) + toml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) toml-rb (4.2.0) citrus (~> 3.0, > 3.0) racc (~> 1.7) + tree_haver (7.1.0) + citrus (~> 3.0) + parslet (~> 2.0) + tree_sitter_language_pack (>= 1.13.2, < 2.0) + version_gem (~> 1.1, >= 1.1.9) tree_sitter_language_pack (1.13.3-x86_64-linux) sorbet-runtime (~> 0.5) tsort (0.2.0) @@ -616,6 +471,10 @@ GEM kramdown (>= 2.4, < 3) kramdown-parser-gfm (~> 1.1) version_gem (~> 1.1, >= 1.1.13) + yaml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) yard (0.9.45) yard-fence (0.9.6) rdoc (>= 6.11, < 8) @@ -644,46 +503,23 @@ DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) appraisal2-rubocop (~> 1.0, >= 1.0.0) - ast-crispr! - ast-crispr-markdown-markly! - ast-crispr-ruby-prism! - ast-merge! - ast-merge-git! - ast-template! - bash-merge! benchmark (~> 0.5, >= 0.5.0) - binary-merge! bundler-audit (~> 0.9.3) cgi (~> 0.5) - citrus-toml-merge! - commonmarker-merge! debug (>= 1.1) - dotenv-merge! erb (~> 6.0, >= 6.0.6) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.0) - go-merge! irb (~> 1.17) - json-merge! kettle-dev (~> 2.0, >= 2.2.25) - kettle-drift (~> 1.0, >= 1.0.6) - kettle-jem! kettle-soup-cover (~> 3.0, >= 3.0.3) kettle-test (~> 2.0, >= 2.0.9) kramdown (~> 2.5, >= 2.5.2) - kramdown-merge! kramdown-parser-gfm (~> 1.1) - markdown-merge! - markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) - parslet-toml-merge! - plain-merge! - prism-merge! - psych-merge! rake (~> 13.0) rbs (>= 3.0) - rbs-merge! rdoc (~> 6.11) reek (~> 6.5, >= 6.5.0) require_bench (~> 1.0, >= 1.0.4) @@ -694,27 +530,20 @@ DEPENDENCIES rubocop-on-rbs (~> 2.0, >= 2.0.0) rubocop-packaging (~> 0.6, >= 0.6.0) rubocop-ruby3_2 (~> 3.0, >= 3.0.6) - ruby-merge! ruby-progressbar (~> 1.13) - rust-merge! smorg-rb! standard (~> 1.56, >= 1.56.0) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) - toml-merge! - tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) - typescript-merge! webrick (~> 1.9) yaml-converter (~> 0.2, >= 0.2.3) - yaml-merge! yard (~> 0.9, >= 0.9.45) yard-fence (~> 0.9, >= 0.9.6) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) yard-timekeeper (~> 0.2, >= 0.2.4) yard-yaml (~> 0.2, >= 0.2.3) - zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af @@ -727,12 +556,10 @@ CHECKSUMS ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) ast-merge-git (7.1.0) - ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd - binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 @@ -766,7 +593,6 @@ CHECKSUMS json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 json-merge (7.1.0) kettle-dev (2.3.8) sha256=9d716ff21c660a730cb4e8d41e2e2f0630a28167a354b6e2924e242102aef72c - kettle-drift (1.0.6) sha256=46eda08fa4411d1f3c6682a95eef1c9df4e94611b3949f49d4c7b43c0ed356a3 kettle-jem (7.1.0) kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f kettle-soup-cover (3.0.3) sha256=5919649be35690e4580299a41ac7c44a9548a7ca38561ffdd3c683c9d63e6f9b @@ -790,7 +616,6 @@ CHECKSUMS parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 - parslet-toml-merge (7.1.0) plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 @@ -842,7 +667,6 @@ CHECKSUMS ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 - rust-merge (7.1.0) service_actor (3.9.4) sha256=e63b523630b9a7e62959b2a90113b08d2565b5de9c148557b281ef847c9539ce silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 @@ -851,7 +675,7 @@ CHECKSUMS simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed smorg-rb (7.1.0) - sorbet-runtime (0.6.13347) sha256=54e7221d9f4b63f58aec79f3043752a9ba7810347c6ae0d903531591cc2d5f01 + sorbet-runtime (0.6.13351) sha256=f8fee17c6e3edf835dc6823d26afb9a7c8969c6710d1fabe2fb43f4e0c15c64f standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b standard-performance (1.9.0) sha256=49483d31be448292951d80e5e67cdcb576c2502103c7b40aec6f1b6e9c88e3f2 @@ -865,14 +689,12 @@ CHECKSUMS timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.5) sha256=b852f924287ffb58a440856e862b056c8ad97e74b4b2526cee43e0771f40c25c - toml (0.3.0) sha256=0a91d0f76a9036e84e44f95693b12f58d358c1df3ac8e3b5271f2056ecc6e4b9 toml-merge (7.1.0) toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 - typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 @@ -886,7 +708,6 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 - zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH diff --git a/gems/smorg-rb/Rakefile b/gems/smorg-rb/Rakefile index ba8baf8e9..5fec5aacc 100644 --- a/gems/smorg-rb/Rakefile +++ b/gems/smorg-rb/Rakefile @@ -130,23 +130,23 @@ end ### DUPLICATE DRIFT TASKS begin - require 'kettle/drift' + require "kettle/drift" Kettle::Drift.install_tasks rescue LoadError - desc('(stub) kettle:drift:check is unavailable') - task('kettle:drift:check') do + desc("(stub) kettle:drift:check is unavailable") + task("kettle:drift:check") do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc('(stub) kettle:drift:update is unavailable') - task('kettle:drift:update') do + desc("(stub) kettle:drift:update is unavailable") + task("kettle:drift:update") do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc('(stub) kettle:drift:force_update is unavailable') - task('kettle:drift:force_update') do + desc("(stub) kettle:drift:force_update is unavailable") + task("kettle:drift:force_update") do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc('(stub) kettle:drift is unavailable') - task('kettle:drift' => 'kettle:drift:update') + desc("(stub) kettle:drift is unavailable") + task("kettle:drift" => "kettle:drift:update") end ### TEMPLATING TASKS diff --git a/gems/smorg-rb/gemfiles/modular/templating.gemfile b/gems/smorg-rb/gemfiles/modular/templating.gemfile index 922a33590..d5b61b88e 100644 --- a/gems/smorg-rb/gemfiles/modular/templating.gemfile +++ b/gems/smorg-rb/gemfiles/modular/templating.gemfile @@ -1,16 +1,16 @@ # frozen_string_literal: true -structuredmerge_remote = ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false').zero? -kettle_remote = ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? +structuredmerge_remote = ENV.fetch("STRUCTUREDMERGE_DEV", "false").casecmp("false").zero? +kettle_remote = ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false").zero? if structuredmerge_remote # Parser dependencies for released installs. - gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' + gem "tree_sitter_language_pack", "~> 1.13", ">= 1.13.3" end if kettle_remote # Template/plugin checks for released installs. - gem 'kettle-drift', '~> 1.0', '>= 1.0.6', require: false + gem "kettle-drift", "~> 1.0", ">= 1.0.6", require: false end # Set STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local development with path-based dependencies. @@ -19,4 +19,4 @@ end # # Set KETTLE_DEV_DEV=/path/to/my for local development with Kettle plugin gems. # When false (default / CI), released Kettle plugin gems are used. -eval_gemfile 'templating_local.gemfile' unless structuredmerge_remote && kettle_remote +eval_gemfile "templating_local.gemfile" unless structuredmerge_remote && kettle_remote diff --git a/gems/smorg-rb/gemfiles/modular/templating_local.gemfile b/gems/smorg-rb/gemfiles/modular/templating_local.gemfile index 93d40919f..2902ccab6 100644 --- a/gems/smorg-rb/gemfiles/modular/templating_local.gemfile +++ b/gems/smorg-rb/gemfiles/modular/templating_local.gemfile @@ -12,19 +12,21 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] -nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) +nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] +nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == "nomono" } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + if nomono_locked + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] + end end -Kernel.send(:gem, 'nomono', *nomono_activation_requirements) -require 'nomono/bundler' +Kernel.send(:gem, "nomono", *nomono_activation_requirements) +require "nomono/bundler" structuredmerge_local_gems = %w[ tree_haver @@ -67,25 +69,25 @@ structuredmerge_local_gems_to_eval = structuredmerge_local_gems - %w[smorg-rb] - kettle_dev_local_gems_to_eval = kettle_dev_local_gems - %w[smorg-rb] - declared_gems platform :mri do - if ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false') != 0 + if ENV.fetch("STRUCTUREDMERGE_DEV", "false").casecmp("false") != 0 eval_nomono_gems( gems: structuredmerge_local_gems_to_eval, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - vendored_gems_env: 'VENDORED_GEMS', - vendor_gem_dir_env: 'VENDOR_GEM_DIR', - debug_env: 'STRUCTUREDMERGE_DEBUG' + prefix: "STRUCTUREDMERGE", + path_env: "STRUCTUREDMERGE_DEV", + vendored_gems_env: "VENDORED_GEMS", + vendor_gem_dir_env: "VENDOR_GEM_DIR", + debug_env: "STRUCTUREDMERGE_DEBUG" ) end - if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false') != 0 + if ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false") != 0 eval_nomono_gems( gems: kettle_dev_local_gems_to_eval, - prefix: 'KETTLE_DEV', - path_env: 'KETTLE_DEV_DEV', - vendored_gems_env: 'VENDORED_GEMS', - vendor_gem_dir_env: 'VENDOR_GEM_DIR', - debug_env: 'KETTLE_DEV_DEBUG' + prefix: "KETTLE_DEV", + path_env: "KETTLE_DEV_DEV", + vendored_gems_env: "VENDORED_GEMS", + vendor_gem_dir_env: "VENDOR_GEM_DIR", + debug_env: "KETTLE_DEV_DEBUG" ) end end diff --git a/gems/smorg-rb/lib/smorg/rb/version.rb b/gems/smorg-rb/lib/smorg/rb/version.rb index 8e48f6d11..ef211ba06 100644 --- a/gems/smorg-rb/lib/smorg/rb/version.rb +++ b/gems/smorg-rb/lib/smorg/rb/version.rb @@ -3,7 +3,7 @@ module Smorg module RB module Version - VERSION = '7.1.0' + VERSION = "7.1.0" end VERSION = Version::VERSION # Traditional Constant Location end diff --git a/gems/toml-merge/Gemfile.lock b/gems/toml-merge/Gemfile.lock index 689c00f3e..0c8c8c7aa 100644 --- a/gems/toml-merge/Gemfile.lock +++ b/gems/toml-merge/Gemfile.lock @@ -6,266 +6,6 @@ PATH tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly - specs: - ast-crispr-markdown-markly (7.1.0) - ast-crispr (= 7.1.0) - markly-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism - specs: - ast-crispr-ruby-prism (7.1.0) - ast-crispr (= 7.1.0) - prism-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr - specs: - ast-crispr (7.1.0) - ast-merge (= 7.1.0) - service_actor (~> 3.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git - specs: - ast-merge-git (7.1.0) - ast-merge (= 7.1.0) - json-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge - specs: - ast-merge (7.1.0) - benchmark - token-resolver (~> 2.0, >= 2.0.4) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template - specs: - ast-template (7.1.0) - ast-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge - specs: - bash-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge - specs: - binary-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge - specs: - citrus-toml-merge (7.1.0) - toml-merge (= 7.1.0) - toml-rb (~> 4.1) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge - specs: - commonmarker-merge (7.1.0) - commonmarker (~> 2.2) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge - specs: - dotenv-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge - specs: - go-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge - specs: - json-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem - specs: - kettle-jem (7.1.0) - addressable (>= 2.8, < 3) - ast-crispr-markdown-markly (= 7.1.0) - ast-crispr-ruby-prism (= 7.1.0) - ast-merge (= 7.1.0) - bash-merge (= 7.1.0) - citrus-toml-merge (= 7.1.0) - commonmarker-merge (= 7.1.0) - dotenv-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-dev (~> 2.3, >= 2.3.5) - kettle-rb (~> 0.1, >= 0.1.4) - kramdown-merge (= 7.1.0) - markdown-merge (= 7.1.0) - markly-merge (= 7.1.0) - prism-merge (= 7.1.0) - psych-merge (= 7.1.0) - rbs (>= 3.10) - rbs-merge (= 7.1.0) - ruby-merge (= 7.1.0) - token-resolver (~> 2.0, >= 2.0.4) - toml-merge (= 7.1.0) - toml-rb (~> 4.2) - tree_haver (= 7.1.0) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge - specs: - kramdown-merge (7.1.0) - kramdown (~> 2.5) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge - specs: - markdown-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge - specs: - markly-merge (7.1.0) - markdown-merge (= 7.1.0) - markly (~> 0.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge - specs: - parslet-toml-merge (7.1.0) - toml (~> 0.3) - toml-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge - specs: - plain-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge - specs: - prism-merge (7.1.0) - prism (~> 1.6) - ruby-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge - specs: - psych-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge - specs: - rbs-merge (7.1.0) - ast-merge (= 7.1.0) - rbs (>= 3.10) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge - specs: - ruby-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge - specs: - rust-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb - specs: - smorg-rb (7.1.0) - ast-merge (= 7.1.0) - ast-merge-git (= 7.1.0) - diff-lcs (~> 1.5) - go-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-jem (= 7.1.0) - markly-merge (= 7.1.0) - plain-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver - specs: - tree_haver (7.1.0) - citrus (~> 3.0) - parslet (~> 2.0) - tree_sitter_language_pack (>= 1.13.2, < 2.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge - specs: - typescript-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge - specs: - yaml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge - specs: - zip-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - GEM remote: https://gem.coop/ specs: @@ -281,6 +21,11 @@ GEM rubocop (>= 1.0) version_gem (~> 1.1, >= 1.1.14) ast (2.4.3) + ast-merge (7.1.0) + benchmark + token-resolver (~> 2.0, >= 2.0.4) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) backports (3.25.3) benchmark (0.5.0) bigdecimal (4.1.2) @@ -290,11 +35,6 @@ GEM cgi (0.5.2) citrus (3.0.2) cmdparse (3.0.7) - commonmarker (2.9.0-aarch64-linux) - commonmarker (2.9.0-aarch64-linux-musl) - commonmarker (2.9.0-arm64-darwin) - commonmarker (2.9.0-x86_64-linux) - commonmarker (2.9.0-x86_64-linux-musl) concurrent-ruby (1.3.8) date (3.5.1) debug (1.11.1) @@ -357,8 +97,6 @@ GEM kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) - kettle-drift (1.0.6) - version_gem (~> 1.1, >= 1.1.14) kettle-rb (0.1.5) kettle-soup-cover (3.0.4) kettle-wash (~> 0.1, >= 0.1.0) @@ -387,7 +125,6 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) - markly (0.16.0) mutex_m (0.3.0) nokogiri (1.19.4-aarch64-linux-gnu) racc (~> 1.4) @@ -550,8 +287,6 @@ GEM ruby-progressbar (1.13.0) ruby_engine (2.0.3) ruby_version (1.0.3) - service_actor (3.9.4) - zeitwerk (>= 1.0) silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) @@ -606,11 +341,11 @@ GEM token-resolver (2.0.5) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.14) - toml (0.3.0) - parslet (>= 1.8.0, < 3.0.0) - toml-rb (4.2.0) - citrus (~> 3.0, > 3.0) - racc (~> 1.7) + tree_haver (7.1.0) + citrus (~> 3.0) + parslet (~> 2.0) + tree_sitter_language_pack (>= 1.13.2, < 2.0) + version_gem (~> 1.1, >= 1.1.9) tree_sitter_language_pack (1.13.3-aarch64-linux) sorbet-runtime (~> 0.5) tree_sitter_language_pack (1.13.3-arm64-darwin) @@ -665,46 +400,23 @@ DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) appraisal2-rubocop (~> 1.0, >= 1.0.0) - ast-crispr! - ast-crispr-markdown-markly! - ast-crispr-ruby-prism! - ast-merge! - ast-merge-git! - ast-template! - bash-merge! benchmark (~> 0.5, >= 0.5.0) - binary-merge! bundler-audit (~> 0.9.3) cgi (~> 0.5) - citrus-toml-merge! - commonmarker-merge! debug (>= 1.1) - dotenv-merge! erb (~> 6.0, >= 6.0.6) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.0) - go-merge! irb (~> 1.17) - json-merge! kettle-dev (~> 2.0, >= 2.2.25) - kettle-drift (~> 1.0, >= 1.0.6) - kettle-jem! kettle-soup-cover (~> 3.0, >= 3.0.3) kettle-test (~> 2.0, >= 2.0.9) kramdown (~> 2.5, >= 2.5.2) - kramdown-merge! kramdown-parser-gfm (~> 1.1) - markdown-merge! - markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) - parslet-toml-merge! - plain-merge! - prism-merge! - psych-merge! rake (~> 13.0) rbs (>= 3.0) - rbs-merge! rdoc (~> 6.11) reek (~> 6.5, >= 6.5.0) require_bench (~> 1.0, >= 1.0.4) @@ -715,27 +427,20 @@ DEPENDENCIES rubocop-on-rbs (~> 2.0, >= 2.0.0) rubocop-packaging (~> 0.6, >= 0.6.0) rubocop-ruby3_2 (~> 3.0, >= 3.0.6) - ruby-merge! ruby-progressbar (~> 1.13) - rust-merge! - smorg-rb! standard (~> 1.56, >= 1.56.0) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) toml-merge! - tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) - typescript-merge! webrick (~> 1.9) yaml-converter (~> 0.2, >= 0.2.3) - yaml-merge! yard (~> 0.9, >= 0.9.45) yard-fence (~> 0.9, >= 0.9.6) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) yard-timekeeper (~> 0.2, >= 0.2.4) yard-yaml (~> 0.2, >= 0.2.3) - zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af @@ -743,35 +448,20 @@ CHECKSUMS appraisal2 (3.2.0) sha256=ccd0b767ac4060cd7af6d16747459b6990f49c39c7b4fb1f7d1146b1e97c492f appraisal2-rubocop (1.0.0) sha256=b71410fbb014befda5340605a605b7f6f3f012739baf0acc5b4351b592c3258d ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 - ast-crispr (7.1.0) - ast-crispr-markdown-markly (7.1.0) - ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) - ast-merge-git (7.1.0) - ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 - bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd - binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 - citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 - commonmarker (2.9.0-aarch64-linux) sha256=e2b4aadb9a2cfa4e206582641ce3a49465549ac1ed4c289fdd63b78d8f24579c - commonmarker (2.9.0-aarch64-linux-musl) sha256=1cf4d2821f2a7e64945f1ed7c4eeced586fdb27ea7fe7337788802cf8f57cfca - commonmarker (2.9.0-arm64-darwin) sha256=1748dbfa4f5813b0d2a14bb4bbfa65a4ec293aa1c825016d60029ee0e132b046 - commonmarker (2.9.0-x86_64-linux) sha256=8cfe92970eef585a19ddf6613224b91cab64d6029834661bda801f877c9c7f43 - commonmarker (2.9.0-x86_64-linux-musl) sha256=293921398b839f79ceaf55010e061357e34f053822c3b003cd0be6686176335e - commonmarker-merge (7.1.0) concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 - dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -784,28 +474,20 @@ CHECKSUMS gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f - go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 - json-merge (7.1.0) kettle-dev (2.3.9) - kettle-drift (1.0.6) sha256=46eda08fa4411d1f3c6682a95eef1c9df4e94611b3949f49d4c7b43c0ed356a3 - kettle-jem (7.1.0) kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f kettle-soup-cover (3.0.4) kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa - kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 - markdown-merge (7.1.0) - markly (0.16.0) sha256=6f70d79e385b1efc9e171f74c81628826259039fe6c778e03c3924c71dac5511 - markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-aarch64-linux-gnu) sha256=1269fb644a6de405057a53dd5c762b1209b43ca7424f839454d3dbc677c31a8f nokogiri (1.19.4-aarch64-linux-musl) sha256=35c65b9ce72b3bb03207bdbe7067915019dc18c1b9b59139684bd6690fdd01af @@ -819,20 +501,15 @@ CHECKSUMS parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 - parslet-toml-merge (7.1.0) - plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 - prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 - psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 - rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb @@ -867,19 +544,15 @@ CHECKSUMS rubocop-rspec_rails (2.32.0) sha256=4a0d641c72f6ebb957534f539d9d0a62c47abd8ce0d0aeee1ef4701e892a9100 rubocop-ruby3_2 (3.0.7) sha256=f53dd6d286fb05186214fc6ec116783e7f837030918e8931c05de773e98f8466 rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 - ruby-merge (7.1.0) ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 - rust-merge (7.1.0) - service_actor (3.9.4) sha256=e63b523630b9a7e62959b2a90113b08d2565b5de9c148557b281ef847c9539ce silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed - smorg-rb (7.1.0) sorbet-runtime (0.6.13351) sha256=f8fee17c6e3edf835dc6823d26afb9a7c8969c6710d1fabe2fb43f4e0c15c64f standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b @@ -894,22 +567,18 @@ CHECKSUMS timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.5) sha256=b852f924287ffb58a440856e862b056c8ad97e74b4b2526cee43e0771f40c25c - toml (0.3.0) sha256=0a91d0f76a9036e84e44f95693b12f58d358c1df3ac8e3b5271f2056ecc6e4b9 toml-merge (7.1.0) - toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-aarch64-linux) sha256=55ffc7c87868cb45658338363d9eba51b4a8b0259aa88e4de368d2bd1d52fea4 tree_sitter_language_pack (1.13.3-arm64-darwin) sha256=bc2498db605f212a1dbd2465ed3f65190d7da786f6ed5d30fcf958121aeb4a5c tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 - typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 webrick (1.9.2) sha256=beb4a15fc474defed24a3bda4ffd88a490d517c9e4e6118c3edce59e45864131 yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 - yaml-merge (7.1.0) yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd @@ -917,7 +586,6 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 - zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH diff --git a/gems/tree_haver/Gemfile.lock b/gems/tree_haver/Gemfile.lock index e6a9d7da8..3952ff183 100644 --- a/gems/tree_haver/Gemfile.lock +++ b/gems/tree_haver/Gemfile.lock @@ -7,265 +7,6 @@ PATH tree_sitter_language_pack (>= 1.13.2, < 2.0) version_gem (~> 1.1, >= 1.1.9) -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly - specs: - ast-crispr-markdown-markly (7.1.0) - ast-crispr (= 7.1.0) - markly-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism - specs: - ast-crispr-ruby-prism (7.1.0) - ast-crispr (= 7.1.0) - prism-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr - specs: - ast-crispr (7.1.0) - ast-merge (= 7.1.0) - service_actor (~> 3.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git - specs: - ast-merge-git (7.1.0) - ast-merge (= 7.1.0) - json-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge - specs: - ast-merge (7.1.0) - benchmark - token-resolver (~> 2.0, >= 2.0.4) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template - specs: - ast-template (7.1.0) - ast-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge - specs: - bash-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge - specs: - binary-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge - specs: - citrus-toml-merge (7.1.0) - toml-merge (= 7.1.0) - toml-rb (~> 4.1) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge - specs: - commonmarker-merge (7.1.0) - commonmarker (~> 2.2) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge - specs: - dotenv-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge - specs: - go-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge - specs: - json-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem - specs: - kettle-jem (7.1.0) - addressable (>= 2.8, < 3) - ast-crispr-markdown-markly (= 7.1.0) - ast-crispr-ruby-prism (= 7.1.0) - ast-merge (= 7.1.0) - bash-merge (= 7.1.0) - citrus-toml-merge (= 7.1.0) - commonmarker-merge (= 7.1.0) - dotenv-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-dev (~> 2.3, >= 2.3.5) - kettle-rb (~> 0.1, >= 0.1.4) - kramdown-merge (= 7.1.0) - markdown-merge (= 7.1.0) - markly-merge (= 7.1.0) - prism-merge (= 7.1.0) - psych-merge (= 7.1.0) - rbs (>= 3.10) - rbs-merge (= 7.1.0) - ruby-merge (= 7.1.0) - token-resolver (~> 2.0, >= 2.0.4) - toml-merge (= 7.1.0) - toml-rb (~> 4.2) - tree_haver (= 7.1.0) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge - specs: - kramdown-merge (7.1.0) - kramdown (~> 2.5) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge - specs: - markdown-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge - specs: - markly-merge (7.1.0) - markdown-merge (= 7.1.0) - markly (~> 0.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge - specs: - parslet-toml-merge (7.1.0) - toml (~> 0.3) - toml-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge - specs: - plain-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge - specs: - prism-merge (7.1.0) - prism (~> 1.6) - ruby-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge - specs: - psych-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge - specs: - rbs-merge (7.1.0) - ast-merge (= 7.1.0) - rbs (>= 3.10) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge - specs: - ruby-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge - specs: - rust-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb - specs: - smorg-rb (7.1.0) - ast-merge (= 7.1.0) - ast-merge-git (= 7.1.0) - diff-lcs (~> 1.5) - go-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-jem (= 7.1.0) - markly-merge (= 7.1.0) - plain-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge - specs: - toml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge - specs: - typescript-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge - specs: - yaml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge - specs: - zip-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - GEM remote: https://gem.coop/ specs: @@ -290,8 +31,6 @@ GEM cgi (0.5.2) citrus (3.0.2) cmdparse (3.0.7) - commonmarker (2.9.0-x86_64-linux) - commonmarker (2.9.0-x86_64-linux-musl) concurrent-ruby (1.3.8) date (3.5.1) debug (1.11.1) @@ -354,8 +93,6 @@ GEM kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) - kettle-drift (1.0.6) - version_gem (~> 1.1, >= 1.1.14) kettle-rb (0.1.5) kettle-soup-cover (3.0.4) kettle-wash (~> 0.1, >= 0.1.0) @@ -384,7 +121,6 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) - markly (0.16.0) mutex_m (0.3.0) nokogiri (1.19.4-x86_64-linux-gnu) racc (~> 1.4) @@ -541,8 +277,6 @@ GEM ruby-progressbar (1.13.0) ruby_engine (2.0.3) ruby_version (1.0.3) - service_actor (3.9.4) - zeitwerk (>= 1.0) silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) @@ -594,9 +328,6 @@ GEM delegate (~> 0.1) rspec (~> 3.0) timecop (>= 0.7, < 1) - token-resolver (2.0.5) - parslet (~> 2.0) - version_gem (~> 1.1, >= 1.1.14) toml (0.3.0) parslet (>= 1.8.0, < 3.0.0) toml-rb (4.2.0) @@ -648,46 +379,23 @@ DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) appraisal2-rubocop (~> 1.0, >= 1.0.0) - ast-crispr! - ast-crispr-markdown-markly! - ast-crispr-ruby-prism! - ast-merge! - ast-merge-git! - ast-template! - bash-merge! benchmark (~> 0.5, >= 0.5.0) - binary-merge! bundler-audit (~> 0.9.3) cgi (~> 0.5) - citrus-toml-merge! - commonmarker-merge! debug (>= 1.1) - dotenv-merge! erb (~> 6.0, >= 6.0.6) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.0) - go-merge! irb (~> 1.17) - json-merge! kettle-dev (~> 2.0, >= 2.2.25) - kettle-drift (~> 1.0, >= 1.0.6) - kettle-jem! kettle-soup-cover (~> 3.0, >= 3.0.3) kettle-test (~> 2.0, >= 2.0.9) kramdown (~> 2.5, >= 2.5.2) - kramdown-merge! kramdown-parser-gfm (~> 1.1) - markdown-merge! - markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) - parslet-toml-merge! - plain-merge! - prism-merge! - psych-merge! rake (~> 13.0) rbs (>= 3.0) - rbs-merge! rdoc (~> 6.11) reek (~> 6.5, >= 6.5.0) require_bench (~> 1.0, >= 1.0.4) @@ -698,28 +406,21 @@ DEPENDENCIES rubocop-on-rbs (~> 2.0, >= 2.0.0) rubocop-packaging (~> 0.6, >= 0.6.0) rubocop-ruby3_2 (~> 3.0, >= 3.0.6) - ruby-merge! ruby-progressbar (~> 1.13) - rust-merge! - smorg-rb! standard (~> 1.56, >= 1.56.0) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) toml (~> 0.3) - toml-merge! toml-rb (~> 4.1) tree_haver! - typescript-merge! webrick (~> 1.9) yaml-converter (~> 0.2, >= 0.2.3) - yaml-merge! yard (~> 0.9, >= 0.9.45) yard-fence (~> 0.9, >= 0.9.6) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) yard-timekeeper (~> 0.2, >= 0.2.4) yard-yaml (~> 0.2, >= 0.2.3) - zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af @@ -727,32 +428,19 @@ CHECKSUMS appraisal2 (3.2.0) sha256=ccd0b767ac4060cd7af6d16747459b6990f49c39c7b4fb1f7d1146b1e97c492f appraisal2-rubocop (1.0.0) sha256=b71410fbb014befda5340605a605b7f6f3f012739baf0acc5b4351b592c3258d ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 - ast-crispr (7.1.0) - ast-crispr-markdown-markly (7.1.0) - ast-crispr-ruby-prism (7.1.0) - ast-merge (7.1.0) - ast-merge-git (7.1.0) - ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 - bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd - binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 - citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 - commonmarker (2.9.0-x86_64-linux) sha256=8cfe92970eef585a19ddf6613224b91cab64d6029834661bda801f877c9c7f43 - commonmarker (2.9.0-x86_64-linux-musl) sha256=293921398b839f79ceaf55010e061357e34f053822c3b003cd0be6686176335e - commonmarker-merge (7.1.0) concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 - dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -765,28 +453,20 @@ CHECKSUMS gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f - go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 - json-merge (7.1.0) kettle-dev (2.3.9) - kettle-drift (1.0.6) sha256=46eda08fa4411d1f3c6682a95eef1c9df4e94611b3949f49d4c7b43c0ed356a3 - kettle-jem (7.1.0) kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f kettle-soup-cover (3.0.4) kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa - kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 - markdown-merge (7.1.0) - markly (0.16.0) sha256=6f70d79e385b1efc9e171f74c81628826259039fe6c778e03c3924c71dac5511 - markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-x86_64-linux-gnu) sha256=379fae440b28915e3f19d752ce2dcf8465ed2b2fbefd2a7ca0dd497bc981a06a nokogiri (1.19.4-x86_64-linux-musl) sha256=17dfb7c1fa194ae02fbf7c51a7afc8d278045ab3fdacfd86f91d02d7b274470b @@ -797,20 +477,15 @@ CHECKSUMS parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 - parslet-toml-merge (7.1.0) - plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 - prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 - psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 - rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb @@ -845,19 +520,15 @@ CHECKSUMS rubocop-rspec_rails (2.32.0) sha256=4a0d641c72f6ebb957534f539d9d0a62c47abd8ce0d0aeee1ef4701e892a9100 rubocop-ruby3_2 (3.0.7) sha256=f53dd6d286fb05186214fc6ec116783e7f837030918e8931c05de773e98f8466 rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 - ruby-merge (7.1.0) ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 - rust-merge (7.1.0) - service_actor (3.9.4) sha256=e63b523630b9a7e62959b2a90113b08d2565b5de9c148557b281ef847c9539ce silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed - smorg-rb (7.1.0) sorbet-runtime (0.6.13351) sha256=f8fee17c6e3edf835dc6823d26afb9a7c8969c6710d1fabe2fb43f4e0c15c64f standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b @@ -871,21 +542,17 @@ CHECKSUMS thor (1.5.0) sha256=e3a9e55fe857e44859ce104a84675ab6e8cd59c650a49106a05f55f136425e73 timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 - token-resolver (2.0.5) sha256=b852f924287ffb58a440856e862b056c8ad97e74b4b2526cee43e0771f40c25c toml (0.3.0) sha256=0a91d0f76a9036e84e44f95693b12f58d358c1df3ac8e3b5271f2056ecc6e4b9 - toml-merge (7.1.0) toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 - typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 webrick (1.9.2) sha256=beb4a15fc474defed24a3bda4ffd88a490d517c9e4e6118c3edce59e45864131 yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 - yaml-merge (7.1.0) yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd @@ -893,7 +560,6 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 - zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH diff --git a/gems/typescript-merge/Gemfile.lock b/gems/typescript-merge/Gemfile.lock index 7329c8f5e..2bc443858 100644 --- a/gems/typescript-merge/Gemfile.lock +++ b/gems/typescript-merge/Gemfile.lock @@ -6,266 +6,6 @@ PATH tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly - specs: - ast-crispr-markdown-markly (7.1.0) - ast-crispr (= 7.1.0) - markly-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism - specs: - ast-crispr-ruby-prism (7.1.0) - ast-crispr (= 7.1.0) - prism-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr - specs: - ast-crispr (7.1.0) - ast-merge (= 7.1.0) - service_actor (~> 3.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git - specs: - ast-merge-git (7.1.0) - ast-merge (= 7.1.0) - json-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge - specs: - ast-merge (7.1.0) - benchmark - token-resolver (~> 2.0, >= 2.0.4) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template - specs: - ast-template (7.1.0) - ast-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge - specs: - bash-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge - specs: - binary-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge - specs: - citrus-toml-merge (7.1.0) - toml-merge (= 7.1.0) - toml-rb (~> 4.1) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge - specs: - commonmarker-merge (7.1.0) - commonmarker (~> 2.2) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge - specs: - dotenv-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge - specs: - go-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge - specs: - json-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem - specs: - kettle-jem (7.1.0) - addressable (>= 2.8, < 3) - ast-crispr-markdown-markly (= 7.1.0) - ast-crispr-ruby-prism (= 7.1.0) - ast-merge (= 7.1.0) - bash-merge (= 7.1.0) - citrus-toml-merge (= 7.1.0) - commonmarker-merge (= 7.1.0) - dotenv-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-dev (~> 2.3, >= 2.3.5) - kettle-rb (~> 0.1, >= 0.1.4) - kramdown-merge (= 7.1.0) - markdown-merge (= 7.1.0) - markly-merge (= 7.1.0) - prism-merge (= 7.1.0) - psych-merge (= 7.1.0) - rbs (>= 3.10) - rbs-merge (= 7.1.0) - ruby-merge (= 7.1.0) - token-resolver (~> 2.0, >= 2.0.4) - toml-merge (= 7.1.0) - toml-rb (~> 4.2) - tree_haver (= 7.1.0) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge - specs: - kramdown-merge (7.1.0) - kramdown (~> 2.5) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge - specs: - markdown-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge - specs: - markly-merge (7.1.0) - markdown-merge (= 7.1.0) - markly (~> 0.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge - specs: - parslet-toml-merge (7.1.0) - toml (~> 0.3) - toml-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge - specs: - plain-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge - specs: - prism-merge (7.1.0) - prism (~> 1.6) - ruby-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge - specs: - psych-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge - specs: - rbs-merge (7.1.0) - ast-merge (= 7.1.0) - rbs (>= 3.10) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge - specs: - ruby-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge - specs: - rust-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb - specs: - smorg-rb (7.1.0) - ast-merge (= 7.1.0) - ast-merge-git (= 7.1.0) - diff-lcs (~> 1.5) - go-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-jem (= 7.1.0) - markly-merge (= 7.1.0) - plain-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge - specs: - toml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver - specs: - tree_haver (7.1.0) - citrus (~> 3.0) - parslet (~> 2.0) - tree_sitter_language_pack (>= 1.13.2, < 2.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge - specs: - yaml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge - specs: - zip-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - GEM remote: https://gem.coop/ specs: @@ -281,6 +21,11 @@ GEM rubocop (>= 1.0) version_gem (~> 1.1, >= 1.1.14) ast (2.4.3) + ast-merge (7.1.0) + benchmark + token-resolver (~> 2.0, >= 2.0.4) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) backports (3.25.3) benchmark (0.5.0) bigdecimal (4.1.2) @@ -290,11 +35,6 @@ GEM cgi (0.5.2) citrus (3.0.2) cmdparse (3.0.7) - commonmarker (2.9.0-aarch64-linux) - commonmarker (2.9.0-aarch64-linux-musl) - commonmarker (2.9.0-arm64-darwin) - commonmarker (2.9.0-x86_64-linux) - commonmarker (2.9.0-x86_64-linux-musl) concurrent-ruby (1.3.8) date (3.5.1) debug (1.11.1) @@ -357,8 +97,6 @@ GEM kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) - kettle-drift (1.0.6) - version_gem (~> 1.1, >= 1.1.14) kettle-rb (0.1.5) kettle-soup-cover (3.0.4) kettle-wash (~> 0.1, >= 0.1.0) @@ -387,7 +125,6 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) - markly (0.16.0) mutex_m (0.3.0) nokogiri (1.19.4-aarch64-linux-gnu) racc (~> 1.4) @@ -550,8 +287,6 @@ GEM ruby-progressbar (1.13.0) ruby_engine (2.0.3) ruby_version (1.0.3) - service_actor (3.9.4) - zeitwerk (>= 1.0) silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) @@ -606,11 +341,11 @@ GEM token-resolver (2.0.5) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.14) - toml (0.3.0) - parslet (>= 1.8.0, < 3.0.0) - toml-rb (4.2.0) - citrus (~> 3.0, > 3.0) - racc (~> 1.7) + tree_haver (7.1.0) + citrus (~> 3.0) + parslet (~> 2.0) + tree_sitter_language_pack (>= 1.13.2, < 2.0) + version_gem (~> 1.1, >= 1.1.9) tree_sitter_language_pack (1.13.3-aarch64-linux) sorbet-runtime (~> 0.5) tree_sitter_language_pack (1.13.3-arm64-darwin) @@ -665,46 +400,23 @@ DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) appraisal2-rubocop (~> 1.0, >= 1.0.0) - ast-crispr! - ast-crispr-markdown-markly! - ast-crispr-ruby-prism! - ast-merge! - ast-merge-git! - ast-template! - bash-merge! benchmark (~> 0.5, >= 0.5.0) - binary-merge! bundler-audit (~> 0.9.3) cgi (~> 0.5) - citrus-toml-merge! - commonmarker-merge! debug (>= 1.1) - dotenv-merge! erb (~> 6.0, >= 6.0.6) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.0) - go-merge! irb (~> 1.17) - json-merge! kettle-dev (~> 2.0, >= 2.2.25) - kettle-drift (~> 1.0, >= 1.0.6) - kettle-jem! kettle-soup-cover (~> 3.0, >= 3.0.3) kettle-test (~> 2.0, >= 2.0.9) kramdown (~> 2.5, >= 2.5.2) - kramdown-merge! kramdown-parser-gfm (~> 1.1) - markdown-merge! - markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) - parslet-toml-merge! - plain-merge! - prism-merge! - psych-merge! rake (~> 13.0) rbs (>= 3.0) - rbs-merge! rdoc (~> 6.11) reek (~> 6.5, >= 6.5.0) require_bench (~> 1.0, >= 1.0.4) @@ -715,27 +427,20 @@ DEPENDENCIES rubocop-on-rbs (~> 2.0, >= 2.0.0) rubocop-packaging (~> 0.6, >= 0.6.0) rubocop-ruby3_2 (~> 3.0, >= 3.0.6) - ruby-merge! ruby-progressbar (~> 1.13) - rust-merge! - smorg-rb! standard (~> 1.56, >= 1.56.0) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) - toml-merge! - tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) typescript-merge! webrick (~> 1.9) yaml-converter (~> 0.2, >= 0.2.3) - yaml-merge! yard (~> 0.9, >= 0.9.45) yard-fence (~> 0.9, >= 0.9.6) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) yard-timekeeper (~> 0.2, >= 0.2.4) yard-yaml (~> 0.2, >= 0.2.3) - zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af @@ -743,35 +448,20 @@ CHECKSUMS appraisal2 (3.2.0) sha256=ccd0b767ac4060cd7af6d16747459b6990f49c39c7b4fb1f7d1146b1e97c492f appraisal2-rubocop (1.0.0) sha256=b71410fbb014befda5340605a605b7f6f3f012739baf0acc5b4351b592c3258d ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 - ast-crispr (7.1.0) - ast-crispr-markdown-markly (7.1.0) - ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) - ast-merge-git (7.1.0) - ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 - bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd - binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 - citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 - commonmarker (2.9.0-aarch64-linux) sha256=e2b4aadb9a2cfa4e206582641ce3a49465549ac1ed4c289fdd63b78d8f24579c - commonmarker (2.9.0-aarch64-linux-musl) sha256=1cf4d2821f2a7e64945f1ed7c4eeced586fdb27ea7fe7337788802cf8f57cfca - commonmarker (2.9.0-arm64-darwin) sha256=1748dbfa4f5813b0d2a14bb4bbfa65a4ec293aa1c825016d60029ee0e132b046 - commonmarker (2.9.0-x86_64-linux) sha256=8cfe92970eef585a19ddf6613224b91cab64d6029834661bda801f877c9c7f43 - commonmarker (2.9.0-x86_64-linux-musl) sha256=293921398b839f79ceaf55010e061357e34f053822c3b003cd0be6686176335e - commonmarker-merge (7.1.0) concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 - dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -784,28 +474,20 @@ CHECKSUMS gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f - go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 - json-merge (7.1.0) kettle-dev (2.3.9) - kettle-drift (1.0.6) sha256=46eda08fa4411d1f3c6682a95eef1c9df4e94611b3949f49d4c7b43c0ed356a3 - kettle-jem (7.1.0) kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f kettle-soup-cover (3.0.4) kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa - kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 - markdown-merge (7.1.0) - markly (0.16.0) sha256=6f70d79e385b1efc9e171f74c81628826259039fe6c778e03c3924c71dac5511 - markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-aarch64-linux-gnu) sha256=1269fb644a6de405057a53dd5c762b1209b43ca7424f839454d3dbc677c31a8f nokogiri (1.19.4-aarch64-linux-musl) sha256=35c65b9ce72b3bb03207bdbe7067915019dc18c1b9b59139684bd6690fdd01af @@ -819,20 +501,15 @@ CHECKSUMS parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 - parslet-toml-merge (7.1.0) - plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 - prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 - psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 - rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb @@ -867,19 +544,15 @@ CHECKSUMS rubocop-rspec_rails (2.32.0) sha256=4a0d641c72f6ebb957534f539d9d0a62c47abd8ce0d0aeee1ef4701e892a9100 rubocop-ruby3_2 (3.0.7) sha256=f53dd6d286fb05186214fc6ec116783e7f837030918e8931c05de773e98f8466 rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 - ruby-merge (7.1.0) ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 - rust-merge (7.1.0) - service_actor (3.9.4) sha256=e63b523630b9a7e62959b2a90113b08d2565b5de9c148557b281ef847c9539ce silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed - smorg-rb (7.1.0) sorbet-runtime (0.6.13351) sha256=f8fee17c6e3edf835dc6823d26afb9a7c8969c6710d1fabe2fb43f4e0c15c64f standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b @@ -894,9 +567,6 @@ CHECKSUMS timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.5) sha256=b852f924287ffb58a440856e862b056c8ad97e74b4b2526cee43e0771f40c25c - toml (0.3.0) sha256=0a91d0f76a9036e84e44f95693b12f58d358c1df3ac8e3b5271f2056ecc6e4b9 - toml-merge (7.1.0) - toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-aarch64-linux) sha256=55ffc7c87868cb45658338363d9eba51b4a8b0259aa88e4de368d2bd1d52fea4 tree_sitter_language_pack (1.13.3-arm64-darwin) sha256=bc2498db605f212a1dbd2465ed3f65190d7da786f6ed5d30fcf958121aeb4a5c @@ -909,7 +579,6 @@ CHECKSUMS version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 webrick (1.9.2) sha256=beb4a15fc474defed24a3bda4ffd88a490d517c9e4e6118c3edce59e45864131 yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 - yaml-merge (7.1.0) yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd @@ -917,7 +586,6 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 - zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH diff --git a/gems/yaml-merge/Gemfile.lock b/gems/yaml-merge/Gemfile.lock index c5073301d..59934efe3 100644 --- a/gems/yaml-merge/Gemfile.lock +++ b/gems/yaml-merge/Gemfile.lock @@ -6,266 +6,6 @@ PATH tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly - specs: - ast-crispr-markdown-markly (7.1.0) - ast-crispr (= 7.1.0) - markly-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism - specs: - ast-crispr-ruby-prism (7.1.0) - ast-crispr (= 7.1.0) - prism-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr - specs: - ast-crispr (7.1.0) - ast-merge (= 7.1.0) - service_actor (~> 3.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git - specs: - ast-merge-git (7.1.0) - ast-merge (= 7.1.0) - json-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge - specs: - ast-merge (7.1.0) - benchmark - token-resolver (~> 2.0, >= 2.0.4) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template - specs: - ast-template (7.1.0) - ast-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge - specs: - bash-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge - specs: - binary-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge - specs: - citrus-toml-merge (7.1.0) - toml-merge (= 7.1.0) - toml-rb (~> 4.1) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge - specs: - commonmarker-merge (7.1.0) - commonmarker (~> 2.2) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge - specs: - dotenv-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge - specs: - go-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge - specs: - json-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem - specs: - kettle-jem (7.1.0) - addressable (>= 2.8, < 3) - ast-crispr-markdown-markly (= 7.1.0) - ast-crispr-ruby-prism (= 7.1.0) - ast-merge (= 7.1.0) - bash-merge (= 7.1.0) - citrus-toml-merge (= 7.1.0) - commonmarker-merge (= 7.1.0) - dotenv-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-dev (~> 2.3, >= 2.3.5) - kettle-rb (~> 0.1, >= 0.1.4) - kramdown-merge (= 7.1.0) - markdown-merge (= 7.1.0) - markly-merge (= 7.1.0) - prism-merge (= 7.1.0) - psych-merge (= 7.1.0) - rbs (>= 3.10) - rbs-merge (= 7.1.0) - ruby-merge (= 7.1.0) - token-resolver (~> 2.0, >= 2.0.4) - toml-merge (= 7.1.0) - toml-rb (~> 4.2) - tree_haver (= 7.1.0) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge - specs: - kramdown-merge (7.1.0) - kramdown (~> 2.5) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge - specs: - markdown-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge - specs: - markly-merge (7.1.0) - markdown-merge (= 7.1.0) - markly (~> 0.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge - specs: - parslet-toml-merge (7.1.0) - toml (~> 0.3) - toml-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge - specs: - plain-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge - specs: - prism-merge (7.1.0) - prism (~> 1.6) - ruby-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge - specs: - psych-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge - specs: - rbs-merge (7.1.0) - ast-merge (= 7.1.0) - rbs (>= 3.10) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge - specs: - ruby-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge - specs: - rust-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb - specs: - smorg-rb (7.1.0) - ast-merge (= 7.1.0) - ast-merge-git (= 7.1.0) - diff-lcs (~> 1.5) - go-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-jem (= 7.1.0) - markly-merge (= 7.1.0) - plain-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge - specs: - toml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver - specs: - tree_haver (7.1.0) - citrus (~> 3.0) - parslet (~> 2.0) - tree_sitter_language_pack (>= 1.13.2, < 2.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge - specs: - typescript-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge - specs: - zip-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - GEM remote: https://gem.coop/ specs: @@ -281,6 +21,11 @@ GEM rubocop (>= 1.0) version_gem (~> 1.1, >= 1.1.14) ast (2.4.3) + ast-merge (7.1.0) + benchmark + token-resolver (~> 2.0, >= 2.0.4) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) backports (3.25.3) benchmark (0.5.0) bigdecimal (4.1.2) @@ -290,11 +35,6 @@ GEM cgi (0.5.2) citrus (3.0.2) cmdparse (3.0.7) - commonmarker (2.9.0-aarch64-linux) - commonmarker (2.9.0-aarch64-linux-musl) - commonmarker (2.9.0-arm64-darwin) - commonmarker (2.9.0-x86_64-linux) - commonmarker (2.9.0-x86_64-linux-musl) concurrent-ruby (1.3.8) date (3.5.1) debug (1.11.1) @@ -357,8 +97,6 @@ GEM kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) - kettle-drift (1.0.6) - version_gem (~> 1.1, >= 1.1.14) kettle-rb (0.1.5) kettle-soup-cover (3.0.4) kettle-wash (~> 0.1, >= 0.1.0) @@ -387,7 +125,6 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) - markly (0.16.0) mutex_m (0.3.0) nokogiri (1.19.4-aarch64-linux-gnu) racc (~> 1.4) @@ -550,8 +287,6 @@ GEM ruby-progressbar (1.13.0) ruby_engine (2.0.3) ruby_version (1.0.3) - service_actor (3.9.4) - zeitwerk (>= 1.0) silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) @@ -606,11 +341,11 @@ GEM token-resolver (2.0.5) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.14) - toml (0.3.0) - parslet (>= 1.8.0, < 3.0.0) - toml-rb (4.2.0) - citrus (~> 3.0, > 3.0) - racc (~> 1.7) + tree_haver (7.1.0) + citrus (~> 3.0) + parslet (~> 2.0) + tree_sitter_language_pack (>= 1.13.2, < 2.0) + version_gem (~> 1.1, >= 1.1.9) tree_sitter_language_pack (1.13.3-aarch64-linux) sorbet-runtime (~> 0.5) tree_sitter_language_pack (1.13.3-arm64-darwin) @@ -665,46 +400,23 @@ DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) appraisal2-rubocop (~> 1.0, >= 1.0.0) - ast-crispr! - ast-crispr-markdown-markly! - ast-crispr-ruby-prism! - ast-merge! - ast-merge-git! - ast-template! - bash-merge! benchmark (~> 0.5, >= 0.5.0) - binary-merge! bundler-audit (~> 0.9.3) cgi (~> 0.5) - citrus-toml-merge! - commonmarker-merge! debug (>= 1.1) - dotenv-merge! erb (~> 6.0, >= 6.0.6) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.0) - go-merge! irb (~> 1.17) - json-merge! kettle-dev (~> 2.0, >= 2.2.25) - kettle-drift (~> 1.0, >= 1.0.6) - kettle-jem! kettle-soup-cover (~> 3.0, >= 3.0.3) kettle-test (~> 2.0, >= 2.0.9) kramdown (~> 2.5, >= 2.5.2) - kramdown-merge! kramdown-parser-gfm (~> 1.1) - markdown-merge! - markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) - parslet-toml-merge! - plain-merge! - prism-merge! - psych-merge! rake (~> 13.0) rbs (>= 3.0) - rbs-merge! rdoc (~> 6.11) reek (~> 6.5, >= 6.5.0) require_bench (~> 1.0, >= 1.0.4) @@ -715,17 +427,11 @@ DEPENDENCIES rubocop-on-rbs (~> 2.0, >= 2.0.0) rubocop-packaging (~> 0.6, >= 0.6.0) rubocop-ruby3_2 (~> 3.0, >= 3.0.6) - ruby-merge! ruby-progressbar (~> 1.13) - rust-merge! - smorg-rb! standard (~> 1.56, >= 1.56.0) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) - toml-merge! - tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) - typescript-merge! webrick (~> 1.9) yaml-converter (~> 0.2, >= 0.2.3) yaml-merge! @@ -735,7 +441,6 @@ DEPENDENCIES yard-relative_markdown_links (~> 0.6) yard-timekeeper (~> 0.2, >= 0.2.4) yard-yaml (~> 0.2, >= 0.2.3) - zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af @@ -743,35 +448,20 @@ CHECKSUMS appraisal2 (3.2.0) sha256=ccd0b767ac4060cd7af6d16747459b6990f49c39c7b4fb1f7d1146b1e97c492f appraisal2-rubocop (1.0.0) sha256=b71410fbb014befda5340605a605b7f6f3f012739baf0acc5b4351b592c3258d ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 - ast-crispr (7.1.0) - ast-crispr-markdown-markly (7.1.0) - ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) - ast-merge-git (7.1.0) - ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 - bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd - binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 - citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 - commonmarker (2.9.0-aarch64-linux) sha256=e2b4aadb9a2cfa4e206582641ce3a49465549ac1ed4c289fdd63b78d8f24579c - commonmarker (2.9.0-aarch64-linux-musl) sha256=1cf4d2821f2a7e64945f1ed7c4eeced586fdb27ea7fe7337788802cf8f57cfca - commonmarker (2.9.0-arm64-darwin) sha256=1748dbfa4f5813b0d2a14bb4bbfa65a4ec293aa1c825016d60029ee0e132b046 - commonmarker (2.9.0-x86_64-linux) sha256=8cfe92970eef585a19ddf6613224b91cab64d6029834661bda801f877c9c7f43 - commonmarker (2.9.0-x86_64-linux-musl) sha256=293921398b839f79ceaf55010e061357e34f053822c3b003cd0be6686176335e - commonmarker-merge (7.1.0) concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 - dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -784,28 +474,20 @@ CHECKSUMS gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f - go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 - json-merge (7.1.0) kettle-dev (2.3.9) - kettle-drift (1.0.6) sha256=46eda08fa4411d1f3c6682a95eef1c9df4e94611b3949f49d4c7b43c0ed356a3 - kettle-jem (7.1.0) kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f kettle-soup-cover (3.0.4) kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa - kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 - markdown-merge (7.1.0) - markly (0.16.0) sha256=6f70d79e385b1efc9e171f74c81628826259039fe6c778e03c3924c71dac5511 - markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-aarch64-linux-gnu) sha256=1269fb644a6de405057a53dd5c762b1209b43ca7424f839454d3dbc677c31a8f nokogiri (1.19.4-aarch64-linux-musl) sha256=35c65b9ce72b3bb03207bdbe7067915019dc18c1b9b59139684bd6690fdd01af @@ -819,20 +501,15 @@ CHECKSUMS parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 - parslet-toml-merge (7.1.0) - plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 - prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 - psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 - rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb @@ -867,19 +544,15 @@ CHECKSUMS rubocop-rspec_rails (2.32.0) sha256=4a0d641c72f6ebb957534f539d9d0a62c47abd8ce0d0aeee1ef4701e892a9100 rubocop-ruby3_2 (3.0.7) sha256=f53dd6d286fb05186214fc6ec116783e7f837030918e8931c05de773e98f8466 rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 - ruby-merge (7.1.0) ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 - rust-merge (7.1.0) - service_actor (3.9.4) sha256=e63b523630b9a7e62959b2a90113b08d2565b5de9c148557b281ef847c9539ce silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed - smorg-rb (7.1.0) sorbet-runtime (0.6.13351) sha256=f8fee17c6e3edf835dc6823d26afb9a7c8969c6710d1fabe2fb43f4e0c15c64f standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b @@ -894,16 +567,12 @@ CHECKSUMS timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.5) sha256=b852f924287ffb58a440856e862b056c8ad97e74b4b2526cee43e0771f40c25c - toml (0.3.0) sha256=0a91d0f76a9036e84e44f95693b12f58d358c1df3ac8e3b5271f2056ecc6e4b9 - toml-merge (7.1.0) - toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-aarch64-linux) sha256=55ffc7c87868cb45658338363d9eba51b4a8b0259aa88e4de368d2bd1d52fea4 tree_sitter_language_pack (1.13.3-arm64-darwin) sha256=bc2498db605f212a1dbd2465ed3f65190d7da786f6ed5d30fcf958121aeb4a5c tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 - typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 @@ -917,7 +586,6 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 - zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH From ae9e18e63eece7dd3bc5b6975cca5d7b2b8b3be0 Mon Sep 17 00:00:00 2001 From: "Peter H. Boling" Date: Tue, 21 Jul 2026 18:06:29 -0600 Subject: [PATCH 174/188] =?UTF-8?q?=F0=9F=8E=A8=20Template=20bootstrap=20b?= =?UTF-8?q?y=20kettle-jem=20v7.1.0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gems/ast-template/Gemfile.lock | 345 +---------------- gems/bash-merge/Gemfile.lock | 352 +----------------- gems/binary-merge/Gemfile.lock | 351 +---------------- gems/citrus-toml-merge/Gemfile.lock | 343 +---------------- gems/commonmarker-merge/Gemfile.lock | 345 +---------------- gems/go-merge/Gemfile.lock | 352 +----------------- gems/json-merge/Gemfile.lock | 352 +----------------- gems/kettle-jem/Gemfile.lock | 119 +----- gems/kramdown-merge/Gemfile.lock | 13 +- gems/markdown-merge/Gemfile.lock | 352 +----------------- gems/markly-merge/Gemfile.lock | 345 +---------------- gems/smorg-rb/.rubocop_gradual.lock | 159 ++++---- gems/smorg-rb/.simplecov | 8 +- gems/smorg-rb/Gemfile | 70 ++-- gems/smorg-rb/Gemfile.lock | 143 ++++--- gems/smorg-rb/Rakefile | 18 +- .../gemfiles/modular/templating.gemfile | 10 +- .../gemfiles/modular/templating_local.gemfile | 44 ++- gems/smorg-rb/lib/smorg/rb/version.rb | 2 +- gems/smorg-rb/smorg-rb.gemspec | 2 +- gems/smorg-rb/spec/spec_helper.rb | 7 +- 21 files changed, 351 insertions(+), 3381 deletions(-) diff --git a/gems/ast-template/Gemfile.lock b/gems/ast-template/Gemfile.lock index d8aa4df10..eb888f8b3 100644 --- a/gems/ast-template/Gemfile.lock +++ b/gems/ast-template/Gemfile.lock @@ -5,267 +5,6 @@ PATH ast-merge (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly - specs: - ast-crispr-markdown-markly (7.1.0) - ast-crispr (= 7.1.0) - markly-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism - specs: - ast-crispr-ruby-prism (7.1.0) - ast-crispr (= 7.1.0) - prism-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr - specs: - ast-crispr (7.1.0) - ast-merge (= 7.1.0) - service_actor (~> 3.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git - specs: - ast-merge-git (7.1.0) - ast-merge (= 7.1.0) - json-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge - specs: - ast-merge (7.1.0) - benchmark - token-resolver (~> 2.0, >= 2.0.4) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge - specs: - bash-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge - specs: - binary-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge - specs: - citrus-toml-merge (7.1.0) - toml-merge (= 7.1.0) - toml-rb (~> 4.1) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge - specs: - commonmarker-merge (7.1.0) - commonmarker (~> 2.2) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge - specs: - dotenv-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge - specs: - go-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge - specs: - json-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem - specs: - kettle-jem (7.1.0) - addressable (>= 2.8, < 3) - ast-crispr-markdown-markly (= 7.1.0) - ast-crispr-ruby-prism (= 7.1.0) - ast-merge (= 7.1.0) - bash-merge (= 7.1.0) - citrus-toml-merge (= 7.1.0) - commonmarker-merge (= 7.1.0) - dotenv-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-dev (~> 2.3, >= 2.3.5) - kettle-rb (~> 0.1, >= 0.1.4) - kramdown-merge (= 7.1.0) - markdown-merge (= 7.1.0) - markly-merge (= 7.1.0) - prism-merge (= 7.1.0) - psych-merge (= 7.1.0) - rbs (>= 3.10) - rbs-merge (= 7.1.0) - ruby-merge (= 7.1.0) - token-resolver (~> 2.0, >= 2.0.4) - toml-merge (= 7.1.0) - toml-rb (~> 4.2) - tree_haver (= 7.1.0) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge - specs: - kramdown-merge (7.1.0) - kramdown (~> 2.5) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge - specs: - markdown-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge - specs: - markly-merge (7.1.0) - markdown-merge (= 7.1.0) - markly (~> 0.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge - specs: - parslet-toml-merge (7.1.0) - toml (~> 0.3) - toml-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge - specs: - plain-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge - specs: - prism-merge (7.1.0) - prism (~> 1.6) - ruby-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge - specs: - psych-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge - specs: - rbs-merge (7.1.0) - ast-merge (= 7.1.0) - rbs (>= 3.10) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge - specs: - ruby-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge - specs: - rust-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb - specs: - smorg-rb (7.1.0) - ast-merge (= 7.1.0) - ast-merge-git (= 7.1.0) - diff-lcs (~> 1.5) - go-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-jem (= 7.1.0) - markly-merge (= 7.1.0) - plain-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge - specs: - toml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver - specs: - tree_haver (7.1.0) - citrus (~> 3.0) - parslet (~> 2.0) - tree_sitter_language_pack (>= 1.13.2, < 2.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge - specs: - typescript-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge - specs: - yaml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge - specs: - zip-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - GEM remote: https://gem.coop/ specs: @@ -281,6 +20,11 @@ GEM rubocop (>= 1.0) version_gem (~> 1.1, >= 1.1.14) ast (2.4.3) + ast-merge (7.1.0) + benchmark + token-resolver (~> 2.0, >= 2.0.4) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) backports (3.25.3) benchmark (0.5.0) bigdecimal (4.1.2) @@ -290,7 +34,6 @@ GEM cgi (0.5.2) citrus (3.0.2) cmdparse (3.0.7) - commonmarker (2.9.0-x86_64-linux) concurrent-ruby (1.3.8) date (3.5.1) debug (1.11.1) @@ -353,8 +96,6 @@ GEM kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) - kettle-drift (1.0.6) - version_gem (~> 1.1, >= 1.1.14) kettle-rb (0.1.5) kettle-soup-cover (3.0.4) kettle-wash (~> 0.1, >= 0.1.0) @@ -383,7 +124,6 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) - markly (0.16.0) mutex_m (0.3.0) nokogiri (1.19.4-x86_64-linux-gnu) racc (~> 1.4) @@ -538,8 +278,6 @@ GEM ruby-progressbar (1.13.0) ruby_engine (2.0.3) ruby_version (1.0.3) - service_actor (3.9.4) - zeitwerk (>= 1.0) silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) @@ -594,11 +332,11 @@ GEM token-resolver (2.0.5) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.14) - toml (0.3.0) - parslet (>= 1.8.0, < 3.0.0) - toml-rb (4.2.0) - citrus (~> 3.0, > 3.0) - racc (~> 1.7) + tree_haver (7.1.0) + citrus (~> 3.0) + parslet (~> 2.0) + tree_sitter_language_pack (>= 1.13.2, < 2.0) + version_gem (~> 1.1, >= 1.1.9) tree_sitter_language_pack (1.13.3-x86_64-linux) sorbet-runtime (~> 0.5) tsort (0.2.0) @@ -644,46 +382,24 @@ DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) appraisal2-rubocop (~> 1.0, >= 1.0.0) - ast-crispr! - ast-crispr-markdown-markly! - ast-crispr-ruby-prism! - ast-merge! - ast-merge-git! ast-template! - bash-merge! benchmark (~> 0.5, >= 0.5.0) - binary-merge! bundler-audit (~> 0.9.3) cgi (~> 0.5) - citrus-toml-merge! - commonmarker-merge! debug (>= 1.1) - dotenv-merge! erb (~> 6.0, >= 6.0.6) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.0) - go-merge! irb (~> 1.17) - json-merge! kettle-dev (~> 2.0, >= 2.2.25) - kettle-drift (~> 1.0, >= 1.0.6) - kettle-jem! kettle-soup-cover (~> 3.0, >= 3.0.3) kettle-test (~> 2.0, >= 2.0.9) kramdown (~> 2.5, >= 2.5.2) - kramdown-merge! kramdown-parser-gfm (~> 1.1) - markdown-merge! - markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) - parslet-toml-merge! - plain-merge! - prism-merge! - psych-merge! rake (~> 13.0) rbs (>= 3.0) - rbs-merge! rdoc (~> 6.11) reek (~> 6.5, >= 6.5.0) require_bench (~> 1.0, >= 1.0.4) @@ -694,27 +410,19 @@ DEPENDENCIES rubocop-on-rbs (~> 2.0, >= 2.0.0) rubocop-packaging (~> 0.6, >= 0.6.0) rubocop-ruby3_2 (~> 3.0, >= 3.0.6) - ruby-merge! ruby-progressbar (~> 1.13) - rust-merge! - smorg-rb! standard (~> 1.56, >= 1.56.0) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) - toml-merge! - tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) - typescript-merge! webrick (~> 1.9) yaml-converter (~> 0.2, >= 0.2.3) - yaml-merge! yard (~> 0.9, >= 0.9.45) yard-fence (~> 0.9, >= 0.9.6) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) yard-timekeeper (~> 0.2, >= 0.2.4) yard-yaml (~> 0.2, >= 0.2.3) - zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af @@ -722,31 +430,21 @@ CHECKSUMS appraisal2 (3.2.0) sha256=ccd0b767ac4060cd7af6d16747459b6990f49c39c7b4fb1f7d1146b1e97c492f appraisal2-rubocop (1.0.0) sha256=b71410fbb014befda5340605a605b7f6f3f012739baf0acc5b4351b592c3258d ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 - ast-crispr (7.1.0) - ast-crispr-markdown-markly (7.1.0) - ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) - ast-merge-git (7.1.0) ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 - bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd - binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 - citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 - commonmarker (2.9.0-x86_64-linux) sha256=8cfe92970eef585a19ddf6613224b91cab64d6029834661bda801f877c9c7f43 - commonmarker-merge (7.1.0) concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 - dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -759,28 +457,20 @@ CHECKSUMS gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f - go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 - json-merge (7.1.0) kettle-dev (2.3.9) - kettle-drift (1.0.6) sha256=46eda08fa4411d1f3c6682a95eef1c9df4e94611b3949f49d4c7b43c0ed356a3 - kettle-jem (7.1.0) kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f kettle-soup-cover (3.0.4) kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa - kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 - markdown-merge (7.1.0) - markly (0.16.0) sha256=6f70d79e385b1efc9e171f74c81628826259039fe6c778e03c3924c71dac5511 - markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-x86_64-linux-gnu) sha256=379fae440b28915e3f19d752ce2dcf8465ed2b2fbefd2a7ca0dd497bc981a06a nomono (1.0.9) @@ -790,20 +480,15 @@ CHECKSUMS parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 - parslet-toml-merge (7.1.0) - plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 - prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 - psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 - rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb @@ -838,19 +523,15 @@ CHECKSUMS rubocop-rspec_rails (2.32.0) sha256=4a0d641c72f6ebb957534f539d9d0a62c47abd8ce0d0aeee1ef4701e892a9100 rubocop-ruby3_2 (3.0.7) sha256=f53dd6d286fb05186214fc6ec116783e7f837030918e8931c05de773e98f8466 rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 - ruby-merge (7.1.0) ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 - rust-merge (7.1.0) - service_actor (3.9.4) sha256=e63b523630b9a7e62959b2a90113b08d2565b5de9c148557b281ef847c9539ce silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed - smorg-rb (7.1.0) sorbet-runtime (0.6.13351) sha256=f8fee17c6e3edf835dc6823d26afb9a7c8969c6710d1fabe2fb43f4e0c15c64f standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b @@ -865,20 +546,15 @@ CHECKSUMS timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.5) sha256=b852f924287ffb58a440856e862b056c8ad97e74b4b2526cee43e0771f40c25c - toml (0.3.0) sha256=0a91d0f76a9036e84e44f95693b12f58d358c1df3ac8e3b5271f2056ecc6e4b9 - toml-merge (7.1.0) - toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 - typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 webrick (1.9.2) sha256=beb4a15fc474defed24a3bda4ffd88a490d517c9e4e6118c3edce59e45864131 yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 - yaml-merge (7.1.0) yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd @@ -886,7 +562,6 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 - zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH diff --git a/gems/bash-merge/Gemfile.lock b/gems/bash-merge/Gemfile.lock index 377b5a14b..f0f8d9531 100644 --- a/gems/bash-merge/Gemfile.lock +++ b/gems/bash-merge/Gemfile.lock @@ -6,266 +6,6 @@ PATH tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.14) -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly - specs: - ast-crispr-markdown-markly (7.1.0) - ast-crispr (= 7.1.0) - markly-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism - specs: - ast-crispr-ruby-prism (7.1.0) - ast-crispr (= 7.1.0) - prism-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr - specs: - ast-crispr (7.1.0) - ast-merge (= 7.1.0) - service_actor (~> 3.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git - specs: - ast-merge-git (7.1.0) - ast-merge (= 7.1.0) - json-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge - specs: - ast-merge (7.1.0) - benchmark - token-resolver (~> 2.0, >= 2.0.4) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template - specs: - ast-template (7.1.0) - ast-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge - specs: - binary-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge - specs: - citrus-toml-merge (7.1.0) - toml-merge (= 7.1.0) - toml-rb (~> 4.1) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge - specs: - commonmarker-merge (7.1.0) - commonmarker (~> 2.2) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge - specs: - dotenv-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge - specs: - go-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge - specs: - json-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem - specs: - kettle-jem (7.1.0) - addressable (>= 2.8, < 3) - ast-crispr-markdown-markly (= 7.1.0) - ast-crispr-ruby-prism (= 7.1.0) - ast-merge (= 7.1.0) - bash-merge (= 7.1.0) - citrus-toml-merge (= 7.1.0) - commonmarker-merge (= 7.1.0) - dotenv-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-dev (~> 2.3, >= 2.3.5) - kettle-rb (~> 0.1, >= 0.1.4) - kramdown-merge (= 7.1.0) - markdown-merge (= 7.1.0) - markly-merge (= 7.1.0) - prism-merge (= 7.1.0) - psych-merge (= 7.1.0) - rbs (>= 3.10) - rbs-merge (= 7.1.0) - ruby-merge (= 7.1.0) - token-resolver (~> 2.0, >= 2.0.4) - toml-merge (= 7.1.0) - toml-rb (~> 4.2) - tree_haver (= 7.1.0) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge - specs: - kramdown-merge (7.1.0) - kramdown (~> 2.5) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge - specs: - markdown-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge - specs: - markly-merge (7.1.0) - markdown-merge (= 7.1.0) - markly (~> 0.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge - specs: - parslet-toml-merge (7.1.0) - toml (~> 0.3) - toml-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge - specs: - plain-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge - specs: - prism-merge (7.1.0) - prism (~> 1.6) - ruby-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge - specs: - psych-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge - specs: - rbs-merge (7.1.0) - ast-merge (= 7.1.0) - rbs (>= 3.10) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge - specs: - ruby-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge - specs: - rust-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb - specs: - smorg-rb (7.1.0) - ast-merge (= 7.1.0) - ast-merge-git (= 7.1.0) - diff-lcs (~> 1.5) - go-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-jem (= 7.1.0) - markly-merge (= 7.1.0) - plain-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge - specs: - toml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver - specs: - tree_haver (7.1.0) - citrus (~> 3.0) - parslet (~> 2.0) - tree_sitter_language_pack (>= 1.13.2, < 2.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge - specs: - typescript-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge - specs: - yaml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge - specs: - zip-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - GEM remote: https://gem.coop/ specs: @@ -281,6 +21,11 @@ GEM rubocop (>= 1.0) version_gem (~> 1.1, >= 1.1.14) ast (2.4.3) + ast-merge (7.1.0) + benchmark + token-resolver (~> 2.0, >= 2.0.4) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) backports (3.25.3) benchmark (0.5.0) bigdecimal (4.1.2) @@ -290,11 +35,6 @@ GEM cgi (0.5.2) citrus (3.0.2) cmdparse (3.0.7) - commonmarker (2.9.0-aarch64-linux) - commonmarker (2.9.0-aarch64-linux-musl) - commonmarker (2.9.0-arm64-darwin) - commonmarker (2.9.0-x86_64-linux) - commonmarker (2.9.0-x86_64-linux-musl) concurrent-ruby (1.3.8) date (3.5.1) debug (1.11.1) @@ -357,8 +97,6 @@ GEM kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) - kettle-drift (1.0.6) - version_gem (~> 1.1, >= 1.1.14) kettle-rb (0.1.5) kettle-soup-cover (3.0.4) kettle-wash (~> 0.1, >= 0.1.0) @@ -387,7 +125,6 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) - markly (0.16.0) mutex_m (0.3.0) nokogiri (1.19.4-aarch64-linux-gnu) racc (~> 1.4) @@ -550,8 +287,6 @@ GEM ruby-progressbar (1.13.0) ruby_engine (2.0.3) ruby_version (1.0.3) - service_actor (3.9.4) - zeitwerk (>= 1.0) silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) @@ -606,11 +341,11 @@ GEM token-resolver (2.0.5) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.14) - toml (0.3.0) - parslet (>= 1.8.0, < 3.0.0) - toml-rb (4.2.0) - citrus (~> 3.0, > 3.0) - racc (~> 1.7) + tree_haver (7.1.0) + citrus (~> 3.0) + parslet (~> 2.0) + tree_sitter_language_pack (>= 1.13.2, < 2.0) + version_gem (~> 1.1, >= 1.1.9) tree_sitter_language_pack (1.13.3-aarch64-linux) sorbet-runtime (~> 0.5) tree_sitter_language_pack (1.13.3-arm64-darwin) @@ -665,46 +400,24 @@ DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.2, >= 3.2.0) appraisal2-rubocop (~> 1.0, >= 1.0.0) - ast-crispr! - ast-crispr-markdown-markly! - ast-crispr-ruby-prism! - ast-merge! - ast-merge-git! - ast-template! bash-merge! benchmark (~> 0.5, >= 0.5.0) - binary-merge! bundler-audit (~> 0.9.3) cgi (~> 0.5) - citrus-toml-merge! - commonmarker-merge! debug (>= 1.1) - dotenv-merge! erb (~> 6.0, >= 6.0.6) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.4) - go-merge! irb (~> 1.17) - json-merge! kettle-dev (~> 2.3, >= 2.3.7) - kettle-drift (~> 1.0, >= 1.0.6) - kettle-jem! kettle-soup-cover (~> 3.0, >= 3.0.3) kettle-test (~> 2.0, >= 2.0.12) kramdown (~> 2.5, >= 2.5.2) - kramdown-merge! kramdown-parser-gfm (~> 1.1) - markdown-merge! - markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) - parslet-toml-merge! - plain-merge! - prism-merge! - psych-merge! rake (~> 13.0) rbs (>= 3.0) - rbs-merge! rdoc (~> 6.11) reek (~> 6.5, >= 6.5.0) require_bench (~> 1.0, >= 1.0.4) @@ -715,28 +428,20 @@ DEPENDENCIES rubocop-on-rbs (~> 2.0, >= 2.0.0) rubocop-packaging (~> 0.6, >= 0.6.0) rubocop-ruby3_2 (~> 3.0, >= 3.0.6) - ruby-merge! ruby-progressbar (~> 1.13) - rust-merge! - smorg-rb! standard (~> 1.56, >= 1.56.0) stone_checksums (~> 1.0, >= 1.0.6) stringio (>= 3.0) - toml-merge! - tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) turbo_tests2 (~> 3.2, >= 3.2.0) - typescript-merge! webrick (~> 1.9) yaml-converter (~> 0.2, >= 0.2.3) - yaml-merge! yard (~> 0.9, >= 0.9.45) yard-fence (~> 0.9, >= 0.9.6) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) yard-timekeeper (~> 0.2, >= 0.2.4) yard-yaml (~> 0.2, >= 0.2.3) - zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af @@ -744,35 +449,21 @@ CHECKSUMS appraisal2 (3.2.0) sha256=ccd0b767ac4060cd7af6d16747459b6990f49c39c7b4fb1f7d1146b1e97c492f appraisal2-rubocop (1.0.0) sha256=b71410fbb014befda5340605a605b7f6f3f012739baf0acc5b4351b592c3258d ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 - ast-crispr (7.1.0) - ast-crispr-markdown-markly (7.1.0) - ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) - ast-merge-git (7.1.0) - ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd - binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 - citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 - commonmarker (2.9.0-aarch64-linux) sha256=e2b4aadb9a2cfa4e206582641ce3a49465549ac1ed4c289fdd63b78d8f24579c - commonmarker (2.9.0-aarch64-linux-musl) sha256=1cf4d2821f2a7e64945f1ed7c4eeced586fdb27ea7fe7337788802cf8f57cfca - commonmarker (2.9.0-arm64-darwin) sha256=1748dbfa4f5813b0d2a14bb4bbfa65a4ec293aa1c825016d60029ee0e132b046 - commonmarker (2.9.0-x86_64-linux) sha256=8cfe92970eef585a19ddf6613224b91cab64d6029834661bda801f877c9c7f43 - commonmarker (2.9.0-x86_64-linux-musl) sha256=293921398b839f79ceaf55010e061357e34f053822c3b003cd0be6686176335e - commonmarker-merge (7.1.0) concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 - dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -785,28 +476,20 @@ CHECKSUMS gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f - go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 - json-merge (7.1.0) kettle-dev (2.3.9) - kettle-drift (1.0.6) sha256=46eda08fa4411d1f3c6682a95eef1c9df4e94611b3949f49d4c7b43c0ed356a3 - kettle-jem (7.1.0) kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f kettle-soup-cover (3.0.4) kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa - kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 - markdown-merge (7.1.0) - markly (0.16.0) sha256=6f70d79e385b1efc9e171f74c81628826259039fe6c778e03c3924c71dac5511 - markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-aarch64-linux-gnu) sha256=1269fb644a6de405057a53dd5c762b1209b43ca7424f839454d3dbc677c31a8f nokogiri (1.19.4-aarch64-linux-musl) sha256=35c65b9ce72b3bb03207bdbe7067915019dc18c1b9b59139684bd6690fdd01af @@ -820,20 +503,15 @@ CHECKSUMS parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 - parslet-toml-merge (7.1.0) - plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 - prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 - psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 - rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb @@ -868,19 +546,15 @@ CHECKSUMS rubocop-rspec_rails (2.32.0) sha256=4a0d641c72f6ebb957534f539d9d0a62c47abd8ce0d0aeee1ef4701e892a9100 rubocop-ruby3_2 (3.0.7) sha256=f53dd6d286fb05186214fc6ec116783e7f837030918e8931c05de773e98f8466 rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 - ruby-merge (7.1.0) ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 - rust-merge (7.1.0) - service_actor (3.9.4) sha256=e63b523630b9a7e62959b2a90113b08d2565b5de9c148557b281ef847c9539ce silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed - smorg-rb (7.1.0) sorbet-runtime (0.6.13351) sha256=f8fee17c6e3edf835dc6823d26afb9a7c8969c6710d1fabe2fb43f4e0c15c64f standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b @@ -895,22 +569,17 @@ CHECKSUMS timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.5) sha256=b852f924287ffb58a440856e862b056c8ad97e74b4b2526cee43e0771f40c25c - toml (0.3.0) sha256=0a91d0f76a9036e84e44f95693b12f58d358c1df3ac8e3b5271f2056ecc6e4b9 - toml-merge (7.1.0) - toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-aarch64-linux) sha256=55ffc7c87868cb45658338363d9eba51b4a8b0259aa88e4de368d2bd1d52fea4 tree_sitter_language_pack (1.13.3-arm64-darwin) sha256=bc2498db605f212a1dbd2465ed3f65190d7da786f6ed5d30fcf958121aeb4a5c tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 - typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 webrick (1.9.2) sha256=beb4a15fc474defed24a3bda4ffd88a490d517c9e4e6118c3edce59e45864131 yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 - yaml-merge (7.1.0) yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd @@ -918,7 +587,6 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 - zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH diff --git a/gems/binary-merge/Gemfile.lock b/gems/binary-merge/Gemfile.lock index df0a104f8..b48e4b1db 100644 --- a/gems/binary-merge/Gemfile.lock +++ b/gems/binary-merge/Gemfile.lock @@ -5,267 +5,6 @@ PATH tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly - specs: - ast-crispr-markdown-markly (7.1.0) - ast-crispr (= 7.1.0) - markly-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism - specs: - ast-crispr-ruby-prism (7.1.0) - ast-crispr (= 7.1.0) - prism-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr - specs: - ast-crispr (7.1.0) - ast-merge (= 7.1.0) - service_actor (~> 3.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git - specs: - ast-merge-git (7.1.0) - ast-merge (= 7.1.0) - json-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge - specs: - ast-merge (7.1.0) - benchmark - token-resolver (~> 2.0, >= 2.0.4) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template - specs: - ast-template (7.1.0) - ast-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge - specs: - bash-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge - specs: - citrus-toml-merge (7.1.0) - toml-merge (= 7.1.0) - toml-rb (~> 4.1) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge - specs: - commonmarker-merge (7.1.0) - commonmarker (~> 2.2) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge - specs: - dotenv-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge - specs: - go-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge - specs: - json-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem - specs: - kettle-jem (7.1.0) - addressable (>= 2.8, < 3) - ast-crispr-markdown-markly (= 7.1.0) - ast-crispr-ruby-prism (= 7.1.0) - ast-merge (= 7.1.0) - bash-merge (= 7.1.0) - citrus-toml-merge (= 7.1.0) - commonmarker-merge (= 7.1.0) - dotenv-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-dev (~> 2.3, >= 2.3.5) - kettle-rb (~> 0.1, >= 0.1.4) - kramdown-merge (= 7.1.0) - markdown-merge (= 7.1.0) - markly-merge (= 7.1.0) - prism-merge (= 7.1.0) - psych-merge (= 7.1.0) - rbs (>= 3.10) - rbs-merge (= 7.1.0) - ruby-merge (= 7.1.0) - token-resolver (~> 2.0, >= 2.0.4) - toml-merge (= 7.1.0) - toml-rb (~> 4.2) - tree_haver (= 7.1.0) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge - specs: - kramdown-merge (7.1.0) - kramdown (~> 2.5) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge - specs: - markdown-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge - specs: - markly-merge (7.1.0) - markdown-merge (= 7.1.0) - markly (~> 0.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge - specs: - parslet-toml-merge (7.1.0) - toml (~> 0.3) - toml-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge - specs: - plain-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge - specs: - prism-merge (7.1.0) - prism (~> 1.6) - ruby-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge - specs: - psych-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge - specs: - rbs-merge (7.1.0) - ast-merge (= 7.1.0) - rbs (>= 3.10) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge - specs: - ruby-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge - specs: - rust-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb - specs: - smorg-rb (7.1.0) - ast-merge (= 7.1.0) - ast-merge-git (= 7.1.0) - diff-lcs (~> 1.5) - go-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-jem (= 7.1.0) - markly-merge (= 7.1.0) - plain-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge - specs: - toml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver - specs: - tree_haver (7.1.0) - citrus (~> 3.0) - parslet (~> 2.0) - tree_sitter_language_pack (>= 1.13.2, < 2.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge - specs: - typescript-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge - specs: - yaml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge - specs: - zip-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - GEM remote: https://gem.coop/ specs: @@ -290,11 +29,6 @@ GEM cgi (0.5.2) citrus (3.0.2) cmdparse (3.0.7) - commonmarker (2.9.0-aarch64-linux) - commonmarker (2.9.0-aarch64-linux-musl) - commonmarker (2.9.0-arm64-darwin) - commonmarker (2.9.0-x86_64-linux) - commonmarker (2.9.0-x86_64-linux-musl) concurrent-ruby (1.3.8) date (3.5.1) debug (1.11.1) @@ -357,8 +91,6 @@ GEM kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) - kettle-drift (1.0.6) - version_gem (~> 1.1, >= 1.1.14) kettle-rb (0.1.5) kettle-soup-cover (3.0.4) kettle-wash (~> 0.1, >= 0.1.0) @@ -387,7 +119,6 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) - markly (0.16.0) mutex_m (0.3.0) nokogiri (1.19.4-aarch64-linux-gnu) racc (~> 1.4) @@ -550,8 +281,6 @@ GEM ruby-progressbar (1.13.0) ruby_engine (2.0.3) ruby_version (1.0.3) - service_actor (3.9.4) - zeitwerk (>= 1.0) silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) @@ -603,14 +332,11 @@ GEM delegate (~> 0.1) rspec (~> 3.0) timecop (>= 0.7, < 1) - token-resolver (2.0.5) + tree_haver (7.1.0) + citrus (~> 3.0) parslet (~> 2.0) - version_gem (~> 1.1, >= 1.1.14) - toml (0.3.0) - parslet (>= 1.8.0, < 3.0.0) - toml-rb (4.2.0) - citrus (~> 3.0, > 3.0) - racc (~> 1.7) + tree_sitter_language_pack (>= 1.13.2, < 2.0) + version_gem (~> 1.1, >= 1.1.9) tree_sitter_language_pack (1.13.3-aarch64-linux) sorbet-runtime (~> 0.5) tree_sitter_language_pack (1.13.3-arm64-darwin) @@ -665,46 +391,24 @@ DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) appraisal2-rubocop (~> 1.0, >= 1.0.0) - ast-crispr! - ast-crispr-markdown-markly! - ast-crispr-ruby-prism! - ast-merge! - ast-merge-git! - ast-template! - bash-merge! benchmark (~> 0.5, >= 0.5.0) binary-merge! bundler-audit (~> 0.9.3) cgi (~> 0.5) - citrus-toml-merge! - commonmarker-merge! debug (>= 1.1) - dotenv-merge! erb (~> 6.0, >= 6.0.6) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.0) - go-merge! irb (~> 1.17) - json-merge! kettle-dev (~> 2.0, >= 2.2.25) - kettle-drift (~> 1.0, >= 1.0.6) - kettle-jem! kettle-soup-cover (~> 3.0, >= 3.0.3) kettle-test (~> 2.0, >= 2.0.9) kramdown (~> 2.5, >= 2.5.2) - kramdown-merge! kramdown-parser-gfm (~> 1.1) - markdown-merge! - markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) - parslet-toml-merge! - plain-merge! - prism-merge! - psych-merge! rake (~> 13.0) rbs (>= 3.0) - rbs-merge! rdoc (~> 6.11) reek (~> 6.5, >= 6.5.0) require_bench (~> 1.0, >= 1.0.4) @@ -715,27 +419,19 @@ DEPENDENCIES rubocop-on-rbs (~> 2.0, >= 2.0.0) rubocop-packaging (~> 0.6, >= 0.6.0) rubocop-ruby3_2 (~> 3.0, >= 3.0.6) - ruby-merge! ruby-progressbar (~> 1.13) - rust-merge! - smorg-rb! standard (~> 1.56, >= 1.56.0) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) - toml-merge! - tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) - typescript-merge! webrick (~> 1.9) yaml-converter (~> 0.2, >= 0.2.3) - yaml-merge! yard (~> 0.9, >= 0.9.45) yard-fence (~> 0.9, >= 0.9.6) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) yard-timekeeper (~> 0.2, >= 0.2.4) yard-yaml (~> 0.2, >= 0.2.3) - zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af @@ -743,35 +439,20 @@ CHECKSUMS appraisal2 (3.2.0) sha256=ccd0b767ac4060cd7af6d16747459b6990f49c39c7b4fb1f7d1146b1e97c492f appraisal2-rubocop (1.0.0) sha256=b71410fbb014befda5340605a605b7f6f3f012739baf0acc5b4351b592c3258d ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 - ast-crispr (7.1.0) - ast-crispr-markdown-markly (7.1.0) - ast-crispr-ruby-prism (7.1.0) - ast-merge (7.1.0) - ast-merge-git (7.1.0) - ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 - bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 - citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 - commonmarker (2.9.0-aarch64-linux) sha256=e2b4aadb9a2cfa4e206582641ce3a49465549ac1ed4c289fdd63b78d8f24579c - commonmarker (2.9.0-aarch64-linux-musl) sha256=1cf4d2821f2a7e64945f1ed7c4eeced586fdb27ea7fe7337788802cf8f57cfca - commonmarker (2.9.0-arm64-darwin) sha256=1748dbfa4f5813b0d2a14bb4bbfa65a4ec293aa1c825016d60029ee0e132b046 - commonmarker (2.9.0-x86_64-linux) sha256=8cfe92970eef585a19ddf6613224b91cab64d6029834661bda801f877c9c7f43 - commonmarker (2.9.0-x86_64-linux-musl) sha256=293921398b839f79ceaf55010e061357e34f053822c3b003cd0be6686176335e - commonmarker-merge (7.1.0) concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 - dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -784,28 +465,20 @@ CHECKSUMS gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f - go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 - json-merge (7.1.0) kettle-dev (2.3.9) - kettle-drift (1.0.6) sha256=46eda08fa4411d1f3c6682a95eef1c9df4e94611b3949f49d4c7b43c0ed356a3 - kettle-jem (7.1.0) kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f kettle-soup-cover (3.0.4) kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa - kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 - markdown-merge (7.1.0) - markly (0.16.0) sha256=6f70d79e385b1efc9e171f74c81628826259039fe6c778e03c3924c71dac5511 - markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-aarch64-linux-gnu) sha256=1269fb644a6de405057a53dd5c762b1209b43ca7424f839454d3dbc677c31a8f nokogiri (1.19.4-aarch64-linux-musl) sha256=35c65b9ce72b3bb03207bdbe7067915019dc18c1b9b59139684bd6690fdd01af @@ -819,20 +492,15 @@ CHECKSUMS parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 - parslet-toml-merge (7.1.0) - plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 - prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 - psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 - rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb @@ -867,19 +535,15 @@ CHECKSUMS rubocop-rspec_rails (2.32.0) sha256=4a0d641c72f6ebb957534f539d9d0a62c47abd8ce0d0aeee1ef4701e892a9100 rubocop-ruby3_2 (3.0.7) sha256=f53dd6d286fb05186214fc6ec116783e7f837030918e8931c05de773e98f8466 rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 - ruby-merge (7.1.0) ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 - rust-merge (7.1.0) - service_actor (3.9.4) sha256=e63b523630b9a7e62959b2a90113b08d2565b5de9c148557b281ef847c9539ce silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed - smorg-rb (7.1.0) sorbet-runtime (0.6.13351) sha256=f8fee17c6e3edf835dc6823d26afb9a7c8969c6710d1fabe2fb43f4e0c15c64f standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b @@ -893,23 +557,17 @@ CHECKSUMS thor (1.5.0) sha256=e3a9e55fe857e44859ce104a84675ab6e8cd59c650a49106a05f55f136425e73 timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 - token-resolver (2.0.5) sha256=b852f924287ffb58a440856e862b056c8ad97e74b4b2526cee43e0771f40c25c - toml (0.3.0) sha256=0a91d0f76a9036e84e44f95693b12f58d358c1df3ac8e3b5271f2056ecc6e4b9 - toml-merge (7.1.0) - toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-aarch64-linux) sha256=55ffc7c87868cb45658338363d9eba51b4a8b0259aa88e4de368d2bd1d52fea4 tree_sitter_language_pack (1.13.3-arm64-darwin) sha256=bc2498db605f212a1dbd2465ed3f65190d7da786f6ed5d30fcf958121aeb4a5c tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 - typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 webrick (1.9.2) sha256=beb4a15fc474defed24a3bda4ffd88a490d517c9e4e6118c3edce59e45864131 yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 - yaml-merge (7.1.0) yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd @@ -917,7 +575,6 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 - zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH diff --git a/gems/citrus-toml-merge/Gemfile.lock b/gems/citrus-toml-merge/Gemfile.lock index 21139f730..d7c06b539 100644 --- a/gems/citrus-toml-merge/Gemfile.lock +++ b/gems/citrus-toml-merge/Gemfile.lock @@ -6,266 +6,6 @@ PATH toml-rb (~> 4.1) version_gem (~> 1.1, >= 1.1.9) -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly - specs: - ast-crispr-markdown-markly (7.1.0) - ast-crispr (= 7.1.0) - markly-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism - specs: - ast-crispr-ruby-prism (7.1.0) - ast-crispr (= 7.1.0) - prism-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr - specs: - ast-crispr (7.1.0) - ast-merge (= 7.1.0) - service_actor (~> 3.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git - specs: - ast-merge-git (7.1.0) - ast-merge (= 7.1.0) - json-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge - specs: - ast-merge (7.1.0) - benchmark - token-resolver (~> 2.0, >= 2.0.4) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template - specs: - ast-template (7.1.0) - ast-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge - specs: - bash-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge - specs: - binary-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge - specs: - commonmarker-merge (7.1.0) - commonmarker (~> 2.2) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge - specs: - dotenv-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge - specs: - go-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge - specs: - json-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem - specs: - kettle-jem (7.1.0) - addressable (>= 2.8, < 3) - ast-crispr-markdown-markly (= 7.1.0) - ast-crispr-ruby-prism (= 7.1.0) - ast-merge (= 7.1.0) - bash-merge (= 7.1.0) - citrus-toml-merge (= 7.1.0) - commonmarker-merge (= 7.1.0) - dotenv-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-dev (~> 2.3, >= 2.3.5) - kettle-rb (~> 0.1, >= 0.1.4) - kramdown-merge (= 7.1.0) - markdown-merge (= 7.1.0) - markly-merge (= 7.1.0) - prism-merge (= 7.1.0) - psych-merge (= 7.1.0) - rbs (>= 3.10) - rbs-merge (= 7.1.0) - ruby-merge (= 7.1.0) - token-resolver (~> 2.0, >= 2.0.4) - toml-merge (= 7.1.0) - toml-rb (~> 4.2) - tree_haver (= 7.1.0) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge - specs: - kramdown-merge (7.1.0) - kramdown (~> 2.5) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge - specs: - markdown-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge - specs: - markly-merge (7.1.0) - markdown-merge (= 7.1.0) - markly (~> 0.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge - specs: - parslet-toml-merge (7.1.0) - toml (~> 0.3) - toml-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge - specs: - plain-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge - specs: - prism-merge (7.1.0) - prism (~> 1.6) - ruby-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge - specs: - psych-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge - specs: - rbs-merge (7.1.0) - ast-merge (= 7.1.0) - rbs (>= 3.10) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge - specs: - ruby-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge - specs: - rust-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb - specs: - smorg-rb (7.1.0) - ast-merge (= 7.1.0) - ast-merge-git (= 7.1.0) - diff-lcs (~> 1.5) - go-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-jem (= 7.1.0) - markly-merge (= 7.1.0) - plain-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge - specs: - toml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver - specs: - tree_haver (7.1.0) - citrus (~> 3.0) - parslet (~> 2.0) - tree_sitter_language_pack (>= 1.13.2, < 2.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge - specs: - typescript-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge - specs: - yaml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge - specs: - zip-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - GEM remote: https://gem.coop/ specs: @@ -281,6 +21,11 @@ GEM rubocop (>= 1.0) version_gem (~> 1.1, >= 1.1.14) ast (2.4.3) + ast-merge (7.1.0) + benchmark + token-resolver (~> 2.0, >= 2.0.4) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) backports (3.25.3) benchmark (0.5.0) bigdecimal (4.1.2) @@ -290,7 +35,6 @@ GEM cgi (0.5.2) citrus (3.0.2) cmdparse (3.0.7) - commonmarker (2.9.0-x86_64-linux) concurrent-ruby (1.3.8) date (3.5.1) debug (1.11.1) @@ -353,8 +97,6 @@ GEM kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) - kettle-drift (1.0.6) - version_gem (~> 1.1, >= 1.1.14) kettle-rb (0.1.5) kettle-soup-cover (3.0.4) kettle-wash (~> 0.1, >= 0.1.0) @@ -383,7 +125,6 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) - markly (0.16.0) mutex_m (0.3.0) nokogiri (1.19.4-x86_64-linux-gnu) racc (~> 1.4) @@ -538,8 +279,6 @@ GEM ruby-progressbar (1.13.0) ruby_engine (2.0.3) ruby_version (1.0.3) - service_actor (3.9.4) - zeitwerk (>= 1.0) silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) @@ -594,11 +333,18 @@ GEM token-resolver (2.0.5) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.14) - toml (0.3.0) - parslet (>= 1.8.0, < 3.0.0) + toml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) toml-rb (4.2.0) citrus (~> 3.0, > 3.0) racc (~> 1.7) + tree_haver (7.1.0) + citrus (~> 3.0) + parslet (~> 2.0) + tree_sitter_language_pack (>= 1.13.2, < 2.0) + version_gem (~> 1.1, >= 1.1.9) tree_sitter_language_pack (1.13.3-x86_64-linux) sorbet-runtime (~> 0.5) tsort (0.2.0) @@ -644,46 +390,24 @@ DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) appraisal2-rubocop (~> 1.0, >= 1.0.0) - ast-crispr! - ast-crispr-markdown-markly! - ast-crispr-ruby-prism! - ast-merge! - ast-merge-git! - ast-template! - bash-merge! benchmark (~> 0.5, >= 0.5.0) - binary-merge! bundler-audit (~> 0.9.3) cgi (~> 0.5) citrus-toml-merge! - commonmarker-merge! debug (>= 1.1) - dotenv-merge! erb (~> 6.0, >= 6.0.6) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.0) - go-merge! irb (~> 1.17) - json-merge! kettle-dev (~> 2.0, >= 2.2.25) - kettle-drift (~> 1.0, >= 1.0.6) - kettle-jem! kettle-soup-cover (~> 3.0, >= 3.0.3) kettle-test (~> 2.0, >= 2.0.9) kramdown (~> 2.5, >= 2.5.2) - kramdown-merge! kramdown-parser-gfm (~> 1.1) - markdown-merge! - markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) - parslet-toml-merge! - plain-merge! - prism-merge! - psych-merge! rake (~> 13.0) rbs (>= 3.0) - rbs-merge! rdoc (~> 6.11) reek (~> 6.5, >= 6.5.0) require_bench (~> 1.0, >= 1.0.4) @@ -694,27 +418,19 @@ DEPENDENCIES rubocop-on-rbs (~> 2.0, >= 2.0.0) rubocop-packaging (~> 0.6, >= 0.6.0) rubocop-ruby3_2 (~> 3.0, >= 3.0.6) - ruby-merge! ruby-progressbar (~> 1.13) - rust-merge! - smorg-rb! standard (~> 1.56, >= 1.56.0) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) - toml-merge! - tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) - typescript-merge! webrick (~> 1.9) yaml-converter (~> 0.2, >= 0.2.3) - yaml-merge! yard (~> 0.9, >= 0.9.45) yard-fence (~> 0.9, >= 0.9.6) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) yard-timekeeper (~> 0.2, >= 0.2.4) yard-yaml (~> 0.2, >= 0.2.3) - zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af @@ -722,31 +438,21 @@ CHECKSUMS appraisal2 (3.2.0) sha256=ccd0b767ac4060cd7af6d16747459b6990f49c39c7b4fb1f7d1146b1e97c492f appraisal2-rubocop (1.0.0) sha256=b71410fbb014befda5340605a605b7f6f3f012739baf0acc5b4351b592c3258d ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 - ast-crispr (7.1.0) - ast-crispr-markdown-markly (7.1.0) - ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) - ast-merge-git (7.1.0) - ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 - bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd - binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 - commonmarker (2.9.0-x86_64-linux) sha256=8cfe92970eef585a19ddf6613224b91cab64d6029834661bda801f877c9c7f43 - commonmarker-merge (7.1.0) concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 - dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -759,28 +465,20 @@ CHECKSUMS gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f - go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 - json-merge (7.1.0) kettle-dev (2.3.9) - kettle-drift (1.0.6) sha256=46eda08fa4411d1f3c6682a95eef1c9df4e94611b3949f49d4c7b43c0ed356a3 - kettle-jem (7.1.0) kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f kettle-soup-cover (3.0.4) kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa - kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 - markdown-merge (7.1.0) - markly (0.16.0) sha256=6f70d79e385b1efc9e171f74c81628826259039fe6c778e03c3924c71dac5511 - markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-x86_64-linux-gnu) sha256=379fae440b28915e3f19d752ce2dcf8465ed2b2fbefd2a7ca0dd497bc981a06a nomono (1.0.9) @@ -790,20 +488,15 @@ CHECKSUMS parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 - parslet-toml-merge (7.1.0) - plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 - prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 - psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 - rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb @@ -838,19 +531,15 @@ CHECKSUMS rubocop-rspec_rails (2.32.0) sha256=4a0d641c72f6ebb957534f539d9d0a62c47abd8ce0d0aeee1ef4701e892a9100 rubocop-ruby3_2 (3.0.7) sha256=f53dd6d286fb05186214fc6ec116783e7f837030918e8931c05de773e98f8466 rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 - ruby-merge (7.1.0) ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 - rust-merge (7.1.0) - service_actor (3.9.4) sha256=e63b523630b9a7e62959b2a90113b08d2565b5de9c148557b281ef847c9539ce silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed - smorg-rb (7.1.0) sorbet-runtime (0.6.13351) sha256=f8fee17c6e3edf835dc6823d26afb9a7c8969c6710d1fabe2fb43f4e0c15c64f standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b @@ -865,20 +554,17 @@ CHECKSUMS timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.5) sha256=b852f924287ffb58a440856e862b056c8ad97e74b4b2526cee43e0771f40c25c - toml (0.3.0) sha256=0a91d0f76a9036e84e44f95693b12f58d358c1df3ac8e3b5271f2056ecc6e4b9 toml-merge (7.1.0) toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 - typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 webrick (1.9.2) sha256=beb4a15fc474defed24a3bda4ffd88a490d517c9e4e6118c3edce59e45864131 yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 - yaml-merge (7.1.0) yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd @@ -886,7 +572,6 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 - zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH diff --git a/gems/commonmarker-merge/Gemfile.lock b/gems/commonmarker-merge/Gemfile.lock index 1014a65be..c7a62a485 100644 --- a/gems/commonmarker-merge/Gemfile.lock +++ b/gems/commonmarker-merge/Gemfile.lock @@ -6,266 +6,6 @@ PATH markdown-merge (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly - specs: - ast-crispr-markdown-markly (7.1.0) - ast-crispr (= 7.1.0) - markly-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism - specs: - ast-crispr-ruby-prism (7.1.0) - ast-crispr (= 7.1.0) - prism-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr - specs: - ast-crispr (7.1.0) - ast-merge (= 7.1.0) - service_actor (~> 3.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git - specs: - ast-merge-git (7.1.0) - ast-merge (= 7.1.0) - json-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge - specs: - ast-merge (7.1.0) - benchmark - token-resolver (~> 2.0, >= 2.0.4) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template - specs: - ast-template (7.1.0) - ast-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge - specs: - bash-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge - specs: - binary-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge - specs: - citrus-toml-merge (7.1.0) - toml-merge (= 7.1.0) - toml-rb (~> 4.1) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge - specs: - dotenv-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge - specs: - go-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge - specs: - json-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem - specs: - kettle-jem (7.1.0) - addressable (>= 2.8, < 3) - ast-crispr-markdown-markly (= 7.1.0) - ast-crispr-ruby-prism (= 7.1.0) - ast-merge (= 7.1.0) - bash-merge (= 7.1.0) - citrus-toml-merge (= 7.1.0) - commonmarker-merge (= 7.1.0) - dotenv-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-dev (~> 2.3, >= 2.3.5) - kettle-rb (~> 0.1, >= 0.1.4) - kramdown-merge (= 7.1.0) - markdown-merge (= 7.1.0) - markly-merge (= 7.1.0) - prism-merge (= 7.1.0) - psych-merge (= 7.1.0) - rbs (>= 3.10) - rbs-merge (= 7.1.0) - ruby-merge (= 7.1.0) - token-resolver (~> 2.0, >= 2.0.4) - toml-merge (= 7.1.0) - toml-rb (~> 4.2) - tree_haver (= 7.1.0) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge - specs: - kramdown-merge (7.1.0) - kramdown (~> 2.5) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge - specs: - markdown-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge - specs: - markly-merge (7.1.0) - markdown-merge (= 7.1.0) - markly (~> 0.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge - specs: - parslet-toml-merge (7.1.0) - toml (~> 0.3) - toml-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge - specs: - plain-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge - specs: - prism-merge (7.1.0) - prism (~> 1.6) - ruby-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge - specs: - psych-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge - specs: - rbs-merge (7.1.0) - ast-merge (= 7.1.0) - rbs (>= 3.10) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge - specs: - ruby-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge - specs: - rust-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb - specs: - smorg-rb (7.1.0) - ast-merge (= 7.1.0) - ast-merge-git (= 7.1.0) - diff-lcs (~> 1.5) - go-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-jem (= 7.1.0) - markly-merge (= 7.1.0) - plain-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge - specs: - toml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver - specs: - tree_haver (7.1.0) - citrus (~> 3.0) - parslet (~> 2.0) - tree_sitter_language_pack (>= 1.13.2, < 2.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge - specs: - typescript-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge - specs: - yaml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge - specs: - zip-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - GEM remote: https://gem.coop/ specs: @@ -281,6 +21,11 @@ GEM rubocop (>= 1.0) version_gem (~> 1.1, >= 1.1.14) ast (2.4.3) + ast-merge (7.1.0) + benchmark + token-resolver (~> 2.0, >= 2.0.4) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) backports (3.25.3) benchmark (0.5.0) bigdecimal (4.1.2) @@ -353,8 +98,6 @@ GEM kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) - kettle-drift (1.0.6) - version_gem (~> 1.1, >= 1.1.14) kettle-rb (0.1.5) kettle-soup-cover (3.0.4) kettle-wash (~> 0.1, >= 0.1.0) @@ -383,7 +126,10 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) - markly (0.16.0) + markdown-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) mutex_m (0.3.0) nokogiri (1.19.4-x86_64-linux-gnu) racc (~> 1.4) @@ -538,8 +284,6 @@ GEM ruby-progressbar (1.13.0) ruby_engine (2.0.3) ruby_version (1.0.3) - service_actor (3.9.4) - zeitwerk (>= 1.0) silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) @@ -594,11 +338,11 @@ GEM token-resolver (2.0.5) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.14) - toml (0.3.0) - parslet (>= 1.8.0, < 3.0.0) - toml-rb (4.2.0) - citrus (~> 3.0, > 3.0) - racc (~> 1.7) + tree_haver (7.1.0) + citrus (~> 3.0) + parslet (~> 2.0) + tree_sitter_language_pack (>= 1.13.2, < 2.0) + version_gem (~> 1.1, >= 1.1.9) tree_sitter_language_pack (1.13.3-x86_64-linux) sorbet-runtime (~> 0.5) tsort (0.2.0) @@ -644,46 +388,24 @@ DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) appraisal2-rubocop (~> 1.0, >= 1.0.0) - ast-crispr! - ast-crispr-markdown-markly! - ast-crispr-ruby-prism! - ast-merge! - ast-merge-git! - ast-template! - bash-merge! benchmark (~> 0.5, >= 0.5.0) - binary-merge! bundler-audit (~> 0.9.3) cgi (~> 0.5) - citrus-toml-merge! commonmarker-merge! debug (>= 1.1) - dotenv-merge! erb (~> 6.0, >= 6.0.6) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.0) - go-merge! irb (~> 1.17) - json-merge! kettle-dev (~> 2.0, >= 2.2.25) - kettle-drift (~> 1.0, >= 1.0.6) - kettle-jem! kettle-soup-cover (~> 3.0, >= 3.0.3) kettle-test (~> 2.0, >= 2.0.9) kramdown (~> 2.5, >= 2.5.2) - kramdown-merge! kramdown-parser-gfm (~> 1.1) - markdown-merge! - markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) - parslet-toml-merge! - plain-merge! - prism-merge! - psych-merge! rake (~> 13.0) rbs (>= 3.0) - rbs-merge! rdoc (~> 6.11) reek (~> 6.5, >= 6.5.0) require_bench (~> 1.0, >= 1.0.4) @@ -694,27 +416,19 @@ DEPENDENCIES rubocop-on-rbs (~> 2.0, >= 2.0.0) rubocop-packaging (~> 0.6, >= 0.6.0) rubocop-ruby3_2 (~> 3.0, >= 3.0.6) - ruby-merge! ruby-progressbar (~> 1.13) - rust-merge! - smorg-rb! standard (~> 1.56, >= 1.56.0) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) - toml-merge! - tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) - typescript-merge! webrick (~> 1.9) yaml-converter (~> 0.2, >= 0.2.3) - yaml-merge! yard (~> 0.9, >= 0.9.45) yard-fence (~> 0.9, >= 0.9.6) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) yard-timekeeper (~> 0.2, >= 0.2.4) yard-yaml (~> 0.2, >= 0.2.3) - zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af @@ -722,21 +436,13 @@ CHECKSUMS appraisal2 (3.2.0) sha256=ccd0b767ac4060cd7af6d16747459b6990f49c39c7b4fb1f7d1146b1e97c492f appraisal2-rubocop (1.0.0) sha256=b71410fbb014befda5340605a605b7f6f3f012739baf0acc5b4351b592c3258d ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 - ast-crispr (7.1.0) - ast-crispr-markdown-markly (7.1.0) - ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) - ast-merge-git (7.1.0) - ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 - bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd - binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 - citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 commonmarker (2.9.0-x86_64-linux) sha256=8cfe92970eef585a19ddf6613224b91cab64d6029834661bda801f877c9c7f43 commonmarker-merge (7.1.0) @@ -746,7 +452,6 @@ CHECKSUMS delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 - dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -759,28 +464,21 @@ CHECKSUMS gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f - go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 - json-merge (7.1.0) kettle-dev (2.3.9) - kettle-drift (1.0.6) sha256=46eda08fa4411d1f3c6682a95eef1c9df4e94611b3949f49d4c7b43c0ed356a3 - kettle-jem (7.1.0) kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f kettle-soup-cover (3.0.4) kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa - kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 markdown-merge (7.1.0) - markly (0.16.0) sha256=6f70d79e385b1efc9e171f74c81628826259039fe6c778e03c3924c71dac5511 - markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-x86_64-linux-gnu) sha256=379fae440b28915e3f19d752ce2dcf8465ed2b2fbefd2a7ca0dd497bc981a06a nomono (1.0.9) @@ -790,20 +488,15 @@ CHECKSUMS parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 - parslet-toml-merge (7.1.0) - plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 - prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 - psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 - rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb @@ -838,19 +531,15 @@ CHECKSUMS rubocop-rspec_rails (2.32.0) sha256=4a0d641c72f6ebb957534f539d9d0a62c47abd8ce0d0aeee1ef4701e892a9100 rubocop-ruby3_2 (3.0.7) sha256=f53dd6d286fb05186214fc6ec116783e7f837030918e8931c05de773e98f8466 rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 - ruby-merge (7.1.0) ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 - rust-merge (7.1.0) - service_actor (3.9.4) sha256=e63b523630b9a7e62959b2a90113b08d2565b5de9c148557b281ef847c9539ce silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed - smorg-rb (7.1.0) sorbet-runtime (0.6.13351) sha256=f8fee17c6e3edf835dc6823d26afb9a7c8969c6710d1fabe2fb43f4e0c15c64f standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b @@ -865,20 +554,15 @@ CHECKSUMS timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.5) sha256=b852f924287ffb58a440856e862b056c8ad97e74b4b2526cee43e0771f40c25c - toml (0.3.0) sha256=0a91d0f76a9036e84e44f95693b12f58d358c1df3ac8e3b5271f2056ecc6e4b9 - toml-merge (7.1.0) - toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 - typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 webrick (1.9.2) sha256=beb4a15fc474defed24a3bda4ffd88a490d517c9e4e6118c3edce59e45864131 yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 - yaml-merge (7.1.0) yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd @@ -886,7 +570,6 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 - zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH diff --git a/gems/go-merge/Gemfile.lock b/gems/go-merge/Gemfile.lock index f93aa133d..5baa23e43 100644 --- a/gems/go-merge/Gemfile.lock +++ b/gems/go-merge/Gemfile.lock @@ -6,266 +6,6 @@ PATH tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly - specs: - ast-crispr-markdown-markly (7.1.0) - ast-crispr (= 7.1.0) - markly-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism - specs: - ast-crispr-ruby-prism (7.1.0) - ast-crispr (= 7.1.0) - prism-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr - specs: - ast-crispr (7.1.0) - ast-merge (= 7.1.0) - service_actor (~> 3.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git - specs: - ast-merge-git (7.1.0) - ast-merge (= 7.1.0) - json-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge - specs: - ast-merge (7.1.0) - benchmark - token-resolver (~> 2.0, >= 2.0.4) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template - specs: - ast-template (7.1.0) - ast-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge - specs: - bash-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge - specs: - binary-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge - specs: - citrus-toml-merge (7.1.0) - toml-merge (= 7.1.0) - toml-rb (~> 4.1) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge - specs: - commonmarker-merge (7.1.0) - commonmarker (~> 2.2) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge - specs: - dotenv-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge - specs: - json-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem - specs: - kettle-jem (7.1.0) - addressable (>= 2.8, < 3) - ast-crispr-markdown-markly (= 7.1.0) - ast-crispr-ruby-prism (= 7.1.0) - ast-merge (= 7.1.0) - bash-merge (= 7.1.0) - citrus-toml-merge (= 7.1.0) - commonmarker-merge (= 7.1.0) - dotenv-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-dev (~> 2.3, >= 2.3.5) - kettle-rb (~> 0.1, >= 0.1.4) - kramdown-merge (= 7.1.0) - markdown-merge (= 7.1.0) - markly-merge (= 7.1.0) - prism-merge (= 7.1.0) - psych-merge (= 7.1.0) - rbs (>= 3.10) - rbs-merge (= 7.1.0) - ruby-merge (= 7.1.0) - token-resolver (~> 2.0, >= 2.0.4) - toml-merge (= 7.1.0) - toml-rb (~> 4.2) - tree_haver (= 7.1.0) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge - specs: - kramdown-merge (7.1.0) - kramdown (~> 2.5) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge - specs: - markdown-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge - specs: - markly-merge (7.1.0) - markdown-merge (= 7.1.0) - markly (~> 0.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge - specs: - parslet-toml-merge (7.1.0) - toml (~> 0.3) - toml-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge - specs: - plain-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge - specs: - prism-merge (7.1.0) - prism (~> 1.6) - ruby-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge - specs: - psych-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge - specs: - rbs-merge (7.1.0) - ast-merge (= 7.1.0) - rbs (>= 3.10) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge - specs: - ruby-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge - specs: - rust-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb - specs: - smorg-rb (7.1.0) - ast-merge (= 7.1.0) - ast-merge-git (= 7.1.0) - diff-lcs (~> 1.5) - go-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-jem (= 7.1.0) - markly-merge (= 7.1.0) - plain-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge - specs: - toml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver - specs: - tree_haver (7.1.0) - citrus (~> 3.0) - parslet (~> 2.0) - tree_sitter_language_pack (>= 1.13.2, < 2.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge - specs: - typescript-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge - specs: - yaml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge - specs: - zip-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - GEM remote: https://gem.coop/ specs: @@ -281,6 +21,11 @@ GEM rubocop (>= 1.0) version_gem (~> 1.1, >= 1.1.14) ast (2.4.3) + ast-merge (7.1.0) + benchmark + token-resolver (~> 2.0, >= 2.0.4) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) backports (3.25.3) benchmark (0.5.0) bigdecimal (4.1.2) @@ -290,11 +35,6 @@ GEM cgi (0.5.2) citrus (3.0.2) cmdparse (3.0.7) - commonmarker (2.9.0-aarch64-linux) - commonmarker (2.9.0-aarch64-linux-musl) - commonmarker (2.9.0-arm64-darwin) - commonmarker (2.9.0-x86_64-linux) - commonmarker (2.9.0-x86_64-linux-musl) concurrent-ruby (1.3.8) date (3.5.1) debug (1.11.1) @@ -357,8 +97,6 @@ GEM kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) - kettle-drift (1.0.6) - version_gem (~> 1.1, >= 1.1.14) kettle-rb (0.1.5) kettle-soup-cover (3.0.4) kettle-wash (~> 0.1, >= 0.1.0) @@ -387,7 +125,6 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) - markly (0.16.0) mutex_m (0.3.0) nokogiri (1.19.4-aarch64-linux-gnu) racc (~> 1.4) @@ -550,8 +287,6 @@ GEM ruby-progressbar (1.13.0) ruby_engine (2.0.3) ruby_version (1.0.3) - service_actor (3.9.4) - zeitwerk (>= 1.0) silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) @@ -606,11 +341,11 @@ GEM token-resolver (2.0.5) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.14) - toml (0.3.0) - parslet (>= 1.8.0, < 3.0.0) - toml-rb (4.2.0) - citrus (~> 3.0, > 3.0) - racc (~> 1.7) + tree_haver (7.1.0) + citrus (~> 3.0) + parslet (~> 2.0) + tree_sitter_language_pack (>= 1.13.2, < 2.0) + version_gem (~> 1.1, >= 1.1.9) tree_sitter_language_pack (1.13.3-aarch64-linux) sorbet-runtime (~> 0.5) tree_sitter_language_pack (1.13.3-arm64-darwin) @@ -665,46 +400,24 @@ DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) appraisal2-rubocop (~> 1.0, >= 1.0.0) - ast-crispr! - ast-crispr-markdown-markly! - ast-crispr-ruby-prism! - ast-merge! - ast-merge-git! - ast-template! - bash-merge! benchmark (~> 0.5, >= 0.5.0) - binary-merge! bundler-audit (~> 0.9.3) cgi (~> 0.5) - citrus-toml-merge! - commonmarker-merge! debug (>= 1.1) - dotenv-merge! erb (~> 6.0, >= 6.0.6) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.0) go-merge! irb (~> 1.17) - json-merge! kettle-dev (~> 2.0, >= 2.2.25) - kettle-drift (~> 1.0, >= 1.0.6) - kettle-jem! kettle-soup-cover (~> 3.0, >= 3.0.3) kettle-test (~> 2.0, >= 2.0.9) kramdown (~> 2.5, >= 2.5.2) - kramdown-merge! kramdown-parser-gfm (~> 1.1) - markdown-merge! - markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) - parslet-toml-merge! - plain-merge! - prism-merge! - psych-merge! rake (~> 13.0) rbs (>= 3.0) - rbs-merge! rdoc (~> 6.11) reek (~> 6.5, >= 6.5.0) require_bench (~> 1.0, >= 1.0.4) @@ -715,27 +428,19 @@ DEPENDENCIES rubocop-on-rbs (~> 2.0, >= 2.0.0) rubocop-packaging (~> 0.6, >= 0.6.0) rubocop-ruby3_2 (~> 3.0, >= 3.0.6) - ruby-merge! ruby-progressbar (~> 1.13) - rust-merge! - smorg-rb! standard (~> 1.56, >= 1.56.0) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) - toml-merge! - tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) - typescript-merge! webrick (~> 1.9) yaml-converter (~> 0.2, >= 0.2.3) - yaml-merge! yard (~> 0.9, >= 0.9.45) yard-fence (~> 0.9, >= 0.9.6) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) yard-timekeeper (~> 0.2, >= 0.2.4) yard-yaml (~> 0.2, >= 0.2.3) - zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af @@ -743,35 +448,20 @@ CHECKSUMS appraisal2 (3.2.0) sha256=ccd0b767ac4060cd7af6d16747459b6990f49c39c7b4fb1f7d1146b1e97c492f appraisal2-rubocop (1.0.0) sha256=b71410fbb014befda5340605a605b7f6f3f012739baf0acc5b4351b592c3258d ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 - ast-crispr (7.1.0) - ast-crispr-markdown-markly (7.1.0) - ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) - ast-merge-git (7.1.0) - ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 - bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd - binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 - citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 - commonmarker (2.9.0-aarch64-linux) sha256=e2b4aadb9a2cfa4e206582641ce3a49465549ac1ed4c289fdd63b78d8f24579c - commonmarker (2.9.0-aarch64-linux-musl) sha256=1cf4d2821f2a7e64945f1ed7c4eeced586fdb27ea7fe7337788802cf8f57cfca - commonmarker (2.9.0-arm64-darwin) sha256=1748dbfa4f5813b0d2a14bb4bbfa65a4ec293aa1c825016d60029ee0e132b046 - commonmarker (2.9.0-x86_64-linux) sha256=8cfe92970eef585a19ddf6613224b91cab64d6029834661bda801f877c9c7f43 - commonmarker (2.9.0-x86_64-linux-musl) sha256=293921398b839f79ceaf55010e061357e34f053822c3b003cd0be6686176335e - commonmarker-merge (7.1.0) concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 - dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -789,23 +479,16 @@ CHECKSUMS io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 - json-merge (7.1.0) kettle-dev (2.3.9) - kettle-drift (1.0.6) sha256=46eda08fa4411d1f3c6682a95eef1c9df4e94611b3949f49d4c7b43c0ed356a3 - kettle-jem (7.1.0) kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f kettle-soup-cover (3.0.4) kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa - kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 - markdown-merge (7.1.0) - markly (0.16.0) sha256=6f70d79e385b1efc9e171f74c81628826259039fe6c778e03c3924c71dac5511 - markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-aarch64-linux-gnu) sha256=1269fb644a6de405057a53dd5c762b1209b43ca7424f839454d3dbc677c31a8f nokogiri (1.19.4-aarch64-linux-musl) sha256=35c65b9ce72b3bb03207bdbe7067915019dc18c1b9b59139684bd6690fdd01af @@ -819,20 +502,15 @@ CHECKSUMS parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 - parslet-toml-merge (7.1.0) - plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 - prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 - psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 - rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb @@ -867,19 +545,15 @@ CHECKSUMS rubocop-rspec_rails (2.32.0) sha256=4a0d641c72f6ebb957534f539d9d0a62c47abd8ce0d0aeee1ef4701e892a9100 rubocop-ruby3_2 (3.0.7) sha256=f53dd6d286fb05186214fc6ec116783e7f837030918e8931c05de773e98f8466 rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 - ruby-merge (7.1.0) ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 - rust-merge (7.1.0) - service_actor (3.9.4) sha256=e63b523630b9a7e62959b2a90113b08d2565b5de9c148557b281ef847c9539ce silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed - smorg-rb (7.1.0) sorbet-runtime (0.6.13351) sha256=f8fee17c6e3edf835dc6823d26afb9a7c8969c6710d1fabe2fb43f4e0c15c64f standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b @@ -894,22 +568,17 @@ CHECKSUMS timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.5) sha256=b852f924287ffb58a440856e862b056c8ad97e74b4b2526cee43e0771f40c25c - toml (0.3.0) sha256=0a91d0f76a9036e84e44f95693b12f58d358c1df3ac8e3b5271f2056ecc6e4b9 - toml-merge (7.1.0) - toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-aarch64-linux) sha256=55ffc7c87868cb45658338363d9eba51b4a8b0259aa88e4de368d2bd1d52fea4 tree_sitter_language_pack (1.13.3-arm64-darwin) sha256=bc2498db605f212a1dbd2465ed3f65190d7da786f6ed5d30fcf958121aeb4a5c tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 - typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 webrick (1.9.2) sha256=beb4a15fc474defed24a3bda4ffd88a490d517c9e4e6118c3edce59e45864131 yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 - yaml-merge (7.1.0) yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd @@ -917,7 +586,6 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 - zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH diff --git a/gems/json-merge/Gemfile.lock b/gems/json-merge/Gemfile.lock index a9abfe140..d5271664d 100644 --- a/gems/json-merge/Gemfile.lock +++ b/gems/json-merge/Gemfile.lock @@ -6,266 +6,6 @@ PATH tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly - specs: - ast-crispr-markdown-markly (7.1.0) - ast-crispr (= 7.1.0) - markly-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism - specs: - ast-crispr-ruby-prism (7.1.0) - ast-crispr (= 7.1.0) - prism-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr - specs: - ast-crispr (7.1.0) - ast-merge (= 7.1.0) - service_actor (~> 3.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git - specs: - ast-merge-git (7.1.0) - ast-merge (= 7.1.0) - json-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge - specs: - ast-merge (7.1.0) - benchmark - token-resolver (~> 2.0, >= 2.0.4) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template - specs: - ast-template (7.1.0) - ast-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge - specs: - bash-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge - specs: - binary-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge - specs: - citrus-toml-merge (7.1.0) - toml-merge (= 7.1.0) - toml-rb (~> 4.1) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge - specs: - commonmarker-merge (7.1.0) - commonmarker (~> 2.2) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge - specs: - dotenv-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge - specs: - go-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem - specs: - kettle-jem (7.1.0) - addressable (>= 2.8, < 3) - ast-crispr-markdown-markly (= 7.1.0) - ast-crispr-ruby-prism (= 7.1.0) - ast-merge (= 7.1.0) - bash-merge (= 7.1.0) - citrus-toml-merge (= 7.1.0) - commonmarker-merge (= 7.1.0) - dotenv-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-dev (~> 2.3, >= 2.3.5) - kettle-rb (~> 0.1, >= 0.1.4) - kramdown-merge (= 7.1.0) - markdown-merge (= 7.1.0) - markly-merge (= 7.1.0) - prism-merge (= 7.1.0) - psych-merge (= 7.1.0) - rbs (>= 3.10) - rbs-merge (= 7.1.0) - ruby-merge (= 7.1.0) - token-resolver (~> 2.0, >= 2.0.4) - toml-merge (= 7.1.0) - toml-rb (~> 4.2) - tree_haver (= 7.1.0) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge - specs: - kramdown-merge (7.1.0) - kramdown (~> 2.5) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge - specs: - markdown-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge - specs: - markly-merge (7.1.0) - markdown-merge (= 7.1.0) - markly (~> 0.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge - specs: - parslet-toml-merge (7.1.0) - toml (~> 0.3) - toml-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge - specs: - plain-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge - specs: - prism-merge (7.1.0) - prism (~> 1.6) - ruby-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge - specs: - psych-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge - specs: - rbs-merge (7.1.0) - ast-merge (= 7.1.0) - rbs (>= 3.10) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge - specs: - ruby-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge - specs: - rust-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb - specs: - smorg-rb (7.1.0) - ast-merge (= 7.1.0) - ast-merge-git (= 7.1.0) - diff-lcs (~> 1.5) - go-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-jem (= 7.1.0) - markly-merge (= 7.1.0) - plain-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge - specs: - toml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver - specs: - tree_haver (7.1.0) - citrus (~> 3.0) - parslet (~> 2.0) - tree_sitter_language_pack (>= 1.13.2, < 2.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge - specs: - typescript-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge - specs: - yaml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge - specs: - zip-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - GEM remote: https://gem.coop/ specs: @@ -281,6 +21,11 @@ GEM rubocop (>= 1.0) version_gem (~> 1.1, >= 1.1.14) ast (2.4.3) + ast-merge (7.1.0) + benchmark + token-resolver (~> 2.0, >= 2.0.4) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) backports (3.25.3) benchmark (0.5.0) bigdecimal (4.1.2) @@ -290,11 +35,6 @@ GEM cgi (0.5.2) citrus (3.0.2) cmdparse (3.0.7) - commonmarker (2.9.0-aarch64-linux) - commonmarker (2.9.0-aarch64-linux-musl) - commonmarker (2.9.0-arm64-darwin) - commonmarker (2.9.0-x86_64-linux) - commonmarker (2.9.0-x86_64-linux-musl) concurrent-ruby (1.3.8) date (3.5.1) debug (1.11.1) @@ -357,8 +97,6 @@ GEM kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) - kettle-drift (1.0.6) - version_gem (~> 1.1, >= 1.1.14) kettle-rb (0.1.5) kettle-soup-cover (3.0.4) kettle-wash (~> 0.1, >= 0.1.0) @@ -387,7 +125,6 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) - markly (0.16.0) mutex_m (0.3.0) nokogiri (1.19.4-aarch64-linux-gnu) racc (~> 1.4) @@ -550,8 +287,6 @@ GEM ruby-progressbar (1.13.0) ruby_engine (2.0.3) ruby_version (1.0.3) - service_actor (3.9.4) - zeitwerk (>= 1.0) silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) @@ -606,11 +341,11 @@ GEM token-resolver (2.0.5) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.14) - toml (0.3.0) - parslet (>= 1.8.0, < 3.0.0) - toml-rb (4.2.0) - citrus (~> 3.0, > 3.0) - racc (~> 1.7) + tree_haver (7.1.0) + citrus (~> 3.0) + parslet (~> 2.0) + tree_sitter_language_pack (>= 1.13.2, < 2.0) + version_gem (~> 1.1, >= 1.1.9) tree_sitter_language_pack (1.13.3-aarch64-linux) sorbet-runtime (~> 0.5) tree_sitter_language_pack (1.13.3-arm64-darwin) @@ -669,46 +404,24 @@ DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) appraisal2-rubocop (~> 1.0, >= 1.0.0) - ast-crispr! - ast-crispr-markdown-markly! - ast-crispr-ruby-prism! - ast-merge! - ast-merge-git! - ast-template! - bash-merge! benchmark (~> 0.5, >= 0.5.0) - binary-merge! bundler-audit (~> 0.9.3) cgi (~> 0.5) - citrus-toml-merge! - commonmarker-merge! debug (>= 1.1) - dotenv-merge! erb (~> 6.0, >= 6.0.6) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.0) - go-merge! irb (~> 1.17) json-merge! kettle-dev (~> 2.0, >= 2.2.25) - kettle-drift (~> 1.0, >= 1.0.6) - kettle-jem! kettle-soup-cover (~> 3.0, >= 3.0.3) kettle-test (~> 2.0, >= 2.0.9) kramdown (~> 2.5, >= 2.5.2) - kramdown-merge! kramdown-parser-gfm (~> 1.1) - markdown-merge! - markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) - parslet-toml-merge! - plain-merge! - prism-merge! - psych-merge! rake (~> 13.0) rbs (>= 3.0) - rbs-merge! rdoc (~> 6.11) reek (~> 6.5, >= 6.5.0) require_bench (~> 1.0, >= 1.0.4) @@ -719,27 +432,19 @@ DEPENDENCIES rubocop-on-rbs (~> 2.0, >= 2.0.0) rubocop-packaging (~> 0.6, >= 0.6.0) rubocop-ruby3_2 (~> 3.0, >= 3.0.6) - ruby-merge! ruby-progressbar (~> 1.13) - rust-merge! - smorg-rb! standard (~> 1.56, >= 1.56.0) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) - toml-merge! - tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) - typescript-merge! webrick (~> 1.9) yaml-converter (~> 0.2, >= 0.2.3) - yaml-merge! yard (~> 0.9, >= 0.9.45) yard-fence (~> 0.9, >= 0.9.6) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) yard-timekeeper (~> 0.2, >= 0.2.4) yard-yaml (~> 0.2, >= 0.2.3) - zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af @@ -747,35 +452,20 @@ CHECKSUMS appraisal2 (3.2.0) sha256=ccd0b767ac4060cd7af6d16747459b6990f49c39c7b4fb1f7d1146b1e97c492f appraisal2-rubocop (1.0.0) sha256=b71410fbb014befda5340605a605b7f6f3f012739baf0acc5b4351b592c3258d ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 - ast-crispr (7.1.0) - ast-crispr-markdown-markly (7.1.0) - ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) - ast-merge-git (7.1.0) - ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 - bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd - binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 - citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 - commonmarker (2.9.0-aarch64-linux) sha256=e2b4aadb9a2cfa4e206582641ce3a49465549ac1ed4c289fdd63b78d8f24579c - commonmarker (2.9.0-aarch64-linux-musl) sha256=1cf4d2821f2a7e64945f1ed7c4eeced586fdb27ea7fe7337788802cf8f57cfca - commonmarker (2.9.0-arm64-darwin) sha256=1748dbfa4f5813b0d2a14bb4bbfa65a4ec293aa1c825016d60029ee0e132b046 - commonmarker (2.9.0-x86_64-linux) sha256=8cfe92970eef585a19ddf6613224b91cab64d6029834661bda801f877c9c7f43 - commonmarker (2.9.0-x86_64-linux-musl) sha256=293921398b839f79ceaf55010e061357e34f053822c3b003cd0be6686176335e - commonmarker-merge (7.1.0) concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 - dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -788,28 +478,21 @@ CHECKSUMS gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f - go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 json-merge (7.1.0) kettle-dev (2.3.9) - kettle-drift (1.0.6) sha256=46eda08fa4411d1f3c6682a95eef1c9df4e94611b3949f49d4c7b43c0ed356a3 - kettle-jem (7.1.0) kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f kettle-soup-cover (3.0.4) kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa - kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 - markdown-merge (7.1.0) - markly (0.16.0) sha256=6f70d79e385b1efc9e171f74c81628826259039fe6c778e03c3924c71dac5511 - markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-aarch64-linux-gnu) sha256=1269fb644a6de405057a53dd5c762b1209b43ca7424f839454d3dbc677c31a8f nokogiri (1.19.4-aarch64-linux-musl) sha256=35c65b9ce72b3bb03207bdbe7067915019dc18c1b9b59139684bd6690fdd01af @@ -823,20 +506,15 @@ CHECKSUMS parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 - parslet-toml-merge (7.1.0) - plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 - prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 - psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 - rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb @@ -871,19 +549,15 @@ CHECKSUMS rubocop-rspec_rails (2.32.0) sha256=4a0d641c72f6ebb957534f539d9d0a62c47abd8ce0d0aeee1ef4701e892a9100 rubocop-ruby3_2 (3.0.7) sha256=f53dd6d286fb05186214fc6ec116783e7f837030918e8931c05de773e98f8466 rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 - ruby-merge (7.1.0) ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 - rust-merge (7.1.0) - service_actor (3.9.4) sha256=e63b523630b9a7e62959b2a90113b08d2565b5de9c148557b281ef847c9539ce silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed - smorg-rb (7.1.0) sorbet-runtime (0.6.13351) sha256=f8fee17c6e3edf835dc6823d26afb9a7c8969c6710d1fabe2fb43f4e0c15c64f standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b @@ -898,22 +572,17 @@ CHECKSUMS timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.5) sha256=b852f924287ffb58a440856e862b056c8ad97e74b4b2526cee43e0771f40c25c - toml (0.3.0) sha256=0a91d0f76a9036e84e44f95693b12f58d358c1df3ac8e3b5271f2056ecc6e4b9 - toml-merge (7.1.0) - toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-aarch64-linux) sha256=55ffc7c87868cb45658338363d9eba51b4a8b0259aa88e4de368d2bd1d52fea4 tree_sitter_language_pack (1.13.3-arm64-darwin) sha256=bc2498db605f212a1dbd2465ed3f65190d7da786f6ed5d30fcf958121aeb4a5c tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 - typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 webrick (1.9.2) sha256=beb4a15fc474defed24a3bda4ffd88a490d517c9e4e6118c3edce59e45864131 yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 - yaml-merge (7.1.0) yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd @@ -921,7 +590,6 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 - zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH diff --git a/gems/kettle-jem/Gemfile.lock b/gems/kettle-jem/Gemfile.lock index df331f0b0..5f045aafc 100644 --- a/gems/kettle-jem/Gemfile.lock +++ b/gems/kettle-jem/Gemfile.lock @@ -43,22 +43,6 @@ PATH prism-merge (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr - specs: - ast-crispr (7.1.0) - ast-merge (= 7.1.0) - service_actor (~> 3.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git - specs: - ast-merge-git (7.1.0) - ast-merge (= 7.1.0) - json-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - PATH remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge specs: @@ -68,13 +52,6 @@ PATH tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template - specs: - ast-template (7.1.0) - ast-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - PATH remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge specs: @@ -83,13 +60,6 @@ PATH tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.14) -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge - specs: - binary-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - PATH remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge specs: @@ -114,14 +84,6 @@ PATH tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.14) -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge - specs: - go-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - PATH remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge specs: @@ -154,22 +116,6 @@ PATH markly (~> 0.9) version_gem (~> 1.1, >= 1.1.9) -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge - specs: - parslet-toml-merge (7.1.0) - toml (~> 0.3) - toml-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge - specs: - plain-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - PATH remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge specs: @@ -204,28 +150,6 @@ PATH tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge - specs: - rust-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb - specs: - smorg-rb (7.1.0) - ast-merge (= 7.1.0) - ast-merge-git (= 7.1.0) - diff-lcs (~> 1.5) - go-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-jem (= 7.1.0) - markly-merge (= 7.1.0) - plain-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - PATH remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge specs: @@ -243,14 +167,6 @@ PATH tree_sitter_language_pack (>= 1.13.2, < 2.0) version_gem (~> 1.1, >= 1.1.9) -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge - specs: - typescript-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - PATH remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge specs: @@ -259,13 +175,6 @@ PATH tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge - specs: - zip-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - GEM remote: https://gem.coop/ specs: @@ -281,6 +190,10 @@ GEM rubocop (>= 1.0) version_gem (~> 1.1, >= 1.1.14) ast (2.4.3) + ast-crispr (7.1.0) + ast-merge (= 7.1.0) + service_actor (~> 3.9) + version_gem (~> 1.1, >= 1.1.9) backports (3.25.3) benchmark (0.5.0) bigdecimal (4.1.2) @@ -594,8 +507,6 @@ GEM token-resolver (2.0.5) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.14) - toml (0.3.0) - parslet (>= 1.8.0, < 3.0.0) toml-rb (4.2.0) citrus (~> 3.0, > 3.0) racc (~> 1.7) @@ -642,15 +553,11 @@ PLATFORMS DEPENDENCIES appraisal2 (~> 3.2, >= 3.2.0) appraisal2-rubocop (~> 1.0, >= 1.0.0) - ast-crispr! ast-crispr-markdown-markly! ast-crispr-ruby-prism! ast-merge! - ast-merge-git! - ast-template! bash-merge! benchmark (~> 0.5, >= 0.5.0) - binary-merge! bundler-audit (~> 0.9.3) cgi (~> 0.5) citrus-toml-merge! @@ -660,7 +567,6 @@ DEPENDENCIES erb (~> 6.0, >= 6.0.6) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.4) - go-merge! irb (~> 1.17) json-merge! kettle-drift (~> 1.0, >= 1.0.6) @@ -674,8 +580,6 @@ DEPENDENCIES markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) - parslet-toml-merge! - plain-merge! prism-merge! psych-merge! rake (~> 13.0) @@ -692,8 +596,6 @@ DEPENDENCIES rubocop-ruby3_2 (~> 3.0, >= 3.0.6) ruby-merge! ruby-progressbar (~> 1.13) - rust-merge! - smorg-rb! standard (~> 1.56, >= 1.56.0) stone_checksums (~> 1.0, >= 1.0.6) stringio (>= 3.0) @@ -701,7 +603,6 @@ DEPENDENCIES tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) turbo_tests2 (~> 3.2, >= 3.2.0) - typescript-merge! webrick (~> 1.9) yaml-converter (~> 0.2, >= 0.2.3) yaml-merge! @@ -711,7 +612,6 @@ DEPENDENCIES yard-relative_markdown_links (~> 0.6) yard-timekeeper (~> 0.2, >= 0.2.4) yard-yaml (~> 0.2, >= 0.2.3) - zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af @@ -723,13 +623,10 @@ CHECKSUMS ast-crispr-markdown-markly (7.1.0) ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) - ast-merge-git (7.1.0) - ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd - binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 @@ -756,7 +653,6 @@ CHECKSUMS gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f - go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 @@ -787,8 +683,6 @@ CHECKSUMS parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 - parslet-toml-merge (7.1.0) - plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 @@ -839,7 +733,6 @@ CHECKSUMS ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 - rust-merge (7.1.0) service_actor (3.9.4) sha256=e63b523630b9a7e62959b2a90113b08d2565b5de9c148557b281ef847c9539ce silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 @@ -847,7 +740,6 @@ CHECKSUMS simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed - smorg-rb (7.1.0) sorbet-runtime (0.6.13351) sha256=f8fee17c6e3edf835dc6823d26afb9a7c8969c6710d1fabe2fb43f4e0c15c64f standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b @@ -862,14 +754,12 @@ CHECKSUMS timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.5) sha256=b852f924287ffb58a440856e862b056c8ad97e74b4b2526cee43e0771f40c25c - toml (0.3.0) toml-merge (7.1.0) toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 - typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 @@ -883,7 +773,6 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 - zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH diff --git a/gems/kramdown-merge/Gemfile.lock b/gems/kramdown-merge/Gemfile.lock index 610be7c0e..9b212fb75 100644 --- a/gems/kramdown-merge/Gemfile.lock +++ b/gems/kramdown-merge/Gemfile.lock @@ -6,14 +6,6 @@ PATH markdown-merge (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) -PATH - remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge - specs: - markdown-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - GEM remote: https://gem.coop/ specs: @@ -133,6 +125,10 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) + markdown-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) mutex_m (0.3.0) nokogiri (1.19.4-x86_64-linux-gnu) racc (~> 1.4) @@ -404,7 +400,6 @@ DEPENDENCIES kettle-test (~> 2.0, >= 2.0.9) kramdown-merge! kramdown-parser-gfm (~> 1.1) - markdown-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) rake (~> 13.0) diff --git a/gems/markdown-merge/Gemfile.lock b/gems/markdown-merge/Gemfile.lock index 75d06d22d..6c4ae1ae6 100644 --- a/gems/markdown-merge/Gemfile.lock +++ b/gems/markdown-merge/Gemfile.lock @@ -6,266 +6,6 @@ PATH tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly - specs: - ast-crispr-markdown-markly (7.1.0) - ast-crispr (= 7.1.0) - markly-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism - specs: - ast-crispr-ruby-prism (7.1.0) - ast-crispr (= 7.1.0) - prism-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr - specs: - ast-crispr (7.1.0) - ast-merge (= 7.1.0) - service_actor (~> 3.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git - specs: - ast-merge-git (7.1.0) - ast-merge (= 7.1.0) - json-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge - specs: - ast-merge (7.1.0) - benchmark - token-resolver (~> 2.0, >= 2.0.4) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template - specs: - ast-template (7.1.0) - ast-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge - specs: - bash-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge - specs: - binary-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge - specs: - citrus-toml-merge (7.1.0) - toml-merge (= 7.1.0) - toml-rb (~> 4.1) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge - specs: - commonmarker-merge (7.1.0) - commonmarker (~> 2.2) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge - specs: - dotenv-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge - specs: - go-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge - specs: - json-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem - specs: - kettle-jem (7.1.0) - addressable (>= 2.8, < 3) - ast-crispr-markdown-markly (= 7.1.0) - ast-crispr-ruby-prism (= 7.1.0) - ast-merge (= 7.1.0) - bash-merge (= 7.1.0) - citrus-toml-merge (= 7.1.0) - commonmarker-merge (= 7.1.0) - dotenv-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-dev (~> 2.3, >= 2.3.5) - kettle-rb (~> 0.1, >= 0.1.4) - kramdown-merge (= 7.1.0) - markdown-merge (= 7.1.0) - markly-merge (= 7.1.0) - prism-merge (= 7.1.0) - psych-merge (= 7.1.0) - rbs (>= 3.10) - rbs-merge (= 7.1.0) - ruby-merge (= 7.1.0) - token-resolver (~> 2.0, >= 2.0.4) - toml-merge (= 7.1.0) - toml-rb (~> 4.2) - tree_haver (= 7.1.0) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge - specs: - kramdown-merge (7.1.0) - kramdown (~> 2.5) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge - specs: - markly-merge (7.1.0) - markdown-merge (= 7.1.0) - markly (~> 0.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge - specs: - parslet-toml-merge (7.1.0) - toml (~> 0.3) - toml-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge - specs: - plain-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge - specs: - prism-merge (7.1.0) - prism (~> 1.6) - ruby-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge - specs: - psych-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge - specs: - rbs-merge (7.1.0) - ast-merge (= 7.1.0) - rbs (>= 3.10) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge - specs: - ruby-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge - specs: - rust-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb - specs: - smorg-rb (7.1.0) - ast-merge (= 7.1.0) - ast-merge-git (= 7.1.0) - diff-lcs (~> 1.5) - go-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-jem (= 7.1.0) - markly-merge (= 7.1.0) - plain-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge - specs: - toml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver - specs: - tree_haver (7.1.0) - citrus (~> 3.0) - parslet (~> 2.0) - tree_sitter_language_pack (>= 1.13.2, < 2.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge - specs: - typescript-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge - specs: - yaml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge - specs: - zip-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - GEM remote: https://gem.coop/ specs: @@ -281,6 +21,11 @@ GEM rubocop (>= 1.0) version_gem (~> 1.1, >= 1.1.14) ast (2.4.3) + ast-merge (7.1.0) + benchmark + token-resolver (~> 2.0, >= 2.0.4) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) backports (3.25.3) benchmark (0.5.0) bigdecimal (4.1.2) @@ -290,11 +35,6 @@ GEM cgi (0.5.2) citrus (3.0.2) cmdparse (3.0.7) - commonmarker (2.9.0-aarch64-linux) - commonmarker (2.9.0-aarch64-linux-musl) - commonmarker (2.9.0-arm64-darwin) - commonmarker (2.9.0-x86_64-linux) - commonmarker (2.9.0-x86_64-linux-musl) concurrent-ruby (1.3.8) date (3.5.1) debug (1.11.1) @@ -357,8 +97,6 @@ GEM kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) - kettle-drift (1.0.6) - version_gem (~> 1.1, >= 1.1.14) kettle-rb (0.1.5) kettle-soup-cover (3.0.4) kettle-wash (~> 0.1, >= 0.1.0) @@ -387,7 +125,6 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) - markly (0.16.0) mutex_m (0.3.0) nokogiri (1.19.4-aarch64-linux-gnu) racc (~> 1.4) @@ -550,8 +287,6 @@ GEM ruby-progressbar (1.13.0) ruby_engine (2.0.3) ruby_version (1.0.3) - service_actor (3.9.4) - zeitwerk (>= 1.0) silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) @@ -606,11 +341,11 @@ GEM token-resolver (2.0.5) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.14) - toml (0.3.0) - parslet (>= 1.8.0, < 3.0.0) - toml-rb (4.2.0) - citrus (~> 3.0, > 3.0) - racc (~> 1.7) + tree_haver (7.1.0) + citrus (~> 3.0) + parslet (~> 2.0) + tree_sitter_language_pack (>= 1.13.2, < 2.0) + version_gem (~> 1.1, >= 1.1.9) tree_sitter_language_pack (1.13.3-aarch64-linux) sorbet-runtime (~> 0.5) tree_sitter_language_pack (1.13.3-arm64-darwin) @@ -665,46 +400,24 @@ DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) appraisal2-rubocop (~> 1.0, >= 1.0.0) - ast-crispr! - ast-crispr-markdown-markly! - ast-crispr-ruby-prism! - ast-merge! - ast-merge-git! - ast-template! - bash-merge! benchmark (~> 0.5, >= 0.5.0) - binary-merge! bundler-audit (~> 0.9.3) cgi (~> 0.5) - citrus-toml-merge! - commonmarker-merge! debug (>= 1.1) - dotenv-merge! erb (~> 6.0, >= 6.0.6) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.0) - go-merge! irb (~> 1.17) - json-merge! kettle-dev (~> 2.0, >= 2.2.25) - kettle-drift (~> 1.0, >= 1.0.6) - kettle-jem! kettle-soup-cover (~> 3.0, >= 3.0.3) kettle-test (~> 2.0, >= 2.0.9) kramdown (~> 2.5, >= 2.5.2) - kramdown-merge! kramdown-parser-gfm (~> 1.1) markdown-merge! - markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) - parslet-toml-merge! - plain-merge! - prism-merge! - psych-merge! rake (~> 13.0) rbs (>= 3.0) - rbs-merge! rdoc (~> 6.11) reek (~> 6.5, >= 6.5.0) require_bench (~> 1.0, >= 1.0.4) @@ -715,27 +428,19 @@ DEPENDENCIES rubocop-on-rbs (~> 2.0, >= 2.0.0) rubocop-packaging (~> 0.6, >= 0.6.0) rubocop-ruby3_2 (~> 3.0, >= 3.0.6) - ruby-merge! ruby-progressbar (~> 1.13) - rust-merge! - smorg-rb! standard (~> 1.56, >= 1.56.0) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) - toml-merge! - tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) - typescript-merge! webrick (~> 1.9) yaml-converter (~> 0.2, >= 0.2.3) - yaml-merge! yard (~> 0.9, >= 0.9.45) yard-fence (~> 0.9, >= 0.9.6) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) yard-timekeeper (~> 0.2, >= 0.2.4) yard-yaml (~> 0.2, >= 0.2.3) - zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af @@ -743,35 +448,20 @@ CHECKSUMS appraisal2 (3.2.0) sha256=ccd0b767ac4060cd7af6d16747459b6990f49c39c7b4fb1f7d1146b1e97c492f appraisal2-rubocop (1.0.0) sha256=b71410fbb014befda5340605a605b7f6f3f012739baf0acc5b4351b592c3258d ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 - ast-crispr (7.1.0) - ast-crispr-markdown-markly (7.1.0) - ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) - ast-merge-git (7.1.0) - ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 - bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd - binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 - citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 - commonmarker (2.9.0-aarch64-linux) sha256=e2b4aadb9a2cfa4e206582641ce3a49465549ac1ed4c289fdd63b78d8f24579c - commonmarker (2.9.0-aarch64-linux-musl) sha256=1cf4d2821f2a7e64945f1ed7c4eeced586fdb27ea7fe7337788802cf8f57cfca - commonmarker (2.9.0-arm64-darwin) sha256=1748dbfa4f5813b0d2a14bb4bbfa65a4ec293aa1c825016d60029ee0e132b046 - commonmarker (2.9.0-x86_64-linux) sha256=8cfe92970eef585a19ddf6613224b91cab64d6029834661bda801f877c9c7f43 - commonmarker (2.9.0-x86_64-linux-musl) sha256=293921398b839f79ceaf55010e061357e34f053822c3b003cd0be6686176335e - commonmarker-merge (7.1.0) concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 - dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -784,28 +474,21 @@ CHECKSUMS gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f - go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 - json-merge (7.1.0) kettle-dev (2.3.9) - kettle-drift (1.0.6) sha256=46eda08fa4411d1f3c6682a95eef1c9df4e94611b3949f49d4c7b43c0ed356a3 - kettle-jem (7.1.0) kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f kettle-soup-cover (3.0.4) kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa - kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 markdown-merge (7.1.0) - markly (0.16.0) sha256=6f70d79e385b1efc9e171f74c81628826259039fe6c778e03c3924c71dac5511 - markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-aarch64-linux-gnu) sha256=1269fb644a6de405057a53dd5c762b1209b43ca7424f839454d3dbc677c31a8f nokogiri (1.19.4-aarch64-linux-musl) sha256=35c65b9ce72b3bb03207bdbe7067915019dc18c1b9b59139684bd6690fdd01af @@ -819,20 +502,15 @@ CHECKSUMS parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 - parslet-toml-merge (7.1.0) - plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 - prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 - psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 - rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb @@ -867,19 +545,15 @@ CHECKSUMS rubocop-rspec_rails (2.32.0) sha256=4a0d641c72f6ebb957534f539d9d0a62c47abd8ce0d0aeee1ef4701e892a9100 rubocop-ruby3_2 (3.0.7) sha256=f53dd6d286fb05186214fc6ec116783e7f837030918e8931c05de773e98f8466 rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 - ruby-merge (7.1.0) ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 - rust-merge (7.1.0) - service_actor (3.9.4) sha256=e63b523630b9a7e62959b2a90113b08d2565b5de9c148557b281ef847c9539ce silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed - smorg-rb (7.1.0) sorbet-runtime (0.6.13351) sha256=f8fee17c6e3edf835dc6823d26afb9a7c8969c6710d1fabe2fb43f4e0c15c64f standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b @@ -894,22 +568,17 @@ CHECKSUMS timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.5) sha256=b852f924287ffb58a440856e862b056c8ad97e74b4b2526cee43e0771f40c25c - toml (0.3.0) sha256=0a91d0f76a9036e84e44f95693b12f58d358c1df3ac8e3b5271f2056ecc6e4b9 - toml-merge (7.1.0) - toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-aarch64-linux) sha256=55ffc7c87868cb45658338363d9eba51b4a8b0259aa88e4de368d2bd1d52fea4 tree_sitter_language_pack (1.13.3-arm64-darwin) sha256=bc2498db605f212a1dbd2465ed3f65190d7da786f6ed5d30fcf958121aeb4a5c tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 - typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 webrick (1.9.2) sha256=beb4a15fc474defed24a3bda4ffd88a490d517c9e4e6118c3edce59e45864131 yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 - yaml-merge (7.1.0) yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd @@ -917,7 +586,6 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 - zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH diff --git a/gems/markly-merge/Gemfile.lock b/gems/markly-merge/Gemfile.lock index ec73856e2..67c93d14a 100644 --- a/gems/markly-merge/Gemfile.lock +++ b/gems/markly-merge/Gemfile.lock @@ -6,266 +6,6 @@ PATH markly (~> 0.9) version_gem (~> 1.1, >= 1.1.9) -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly - specs: - ast-crispr-markdown-markly (7.1.0) - ast-crispr (= 7.1.0) - markly-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism - specs: - ast-crispr-ruby-prism (7.1.0) - ast-crispr (= 7.1.0) - prism-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr - specs: - ast-crispr (7.1.0) - ast-merge (= 7.1.0) - service_actor (~> 3.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git - specs: - ast-merge-git (7.1.0) - ast-merge (= 7.1.0) - json-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge - specs: - ast-merge (7.1.0) - benchmark - token-resolver (~> 2.0, >= 2.0.4) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template - specs: - ast-template (7.1.0) - ast-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge - specs: - bash-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge - specs: - binary-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge - specs: - citrus-toml-merge (7.1.0) - toml-merge (= 7.1.0) - toml-rb (~> 4.1) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge - specs: - commonmarker-merge (7.1.0) - commonmarker (~> 2.2) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge - specs: - dotenv-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge - specs: - go-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge - specs: - json-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem - specs: - kettle-jem (7.1.0) - addressable (>= 2.8, < 3) - ast-crispr-markdown-markly (= 7.1.0) - ast-crispr-ruby-prism (= 7.1.0) - ast-merge (= 7.1.0) - bash-merge (= 7.1.0) - citrus-toml-merge (= 7.1.0) - commonmarker-merge (= 7.1.0) - dotenv-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-dev (~> 2.3, >= 2.3.5) - kettle-rb (~> 0.1, >= 0.1.4) - kramdown-merge (= 7.1.0) - markdown-merge (= 7.1.0) - markly-merge (= 7.1.0) - prism-merge (= 7.1.0) - psych-merge (= 7.1.0) - rbs (>= 3.10) - rbs-merge (= 7.1.0) - ruby-merge (= 7.1.0) - token-resolver (~> 2.0, >= 2.0.4) - toml-merge (= 7.1.0) - toml-rb (~> 4.2) - tree_haver (= 7.1.0) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge - specs: - kramdown-merge (7.1.0) - kramdown (~> 2.5) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge - specs: - markdown-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge - specs: - parslet-toml-merge (7.1.0) - toml (~> 0.3) - toml-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge - specs: - plain-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge - specs: - prism-merge (7.1.0) - prism (~> 1.6) - ruby-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge - specs: - psych-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge - specs: - rbs-merge (7.1.0) - ast-merge (= 7.1.0) - rbs (>= 3.10) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge - specs: - ruby-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge - specs: - rust-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb - specs: - smorg-rb (7.1.0) - ast-merge (= 7.1.0) - ast-merge-git (= 7.1.0) - diff-lcs (~> 1.5) - go-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-jem (= 7.1.0) - markly-merge (= 7.1.0) - plain-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge - specs: - toml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver - specs: - tree_haver (7.1.0) - citrus (~> 3.0) - parslet (~> 2.0) - tree_sitter_language_pack (>= 1.13.2, < 2.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge - specs: - typescript-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge - specs: - yaml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge - specs: - zip-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - GEM remote: https://gem.coop/ specs: @@ -281,6 +21,11 @@ GEM rubocop (>= 1.0) version_gem (~> 1.1, >= 1.1.14) ast (2.4.3) + ast-merge (7.1.0) + benchmark + token-resolver (~> 2.0, >= 2.0.4) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) backports (3.25.3) benchmark (0.5.0) bigdecimal (4.1.2) @@ -290,7 +35,6 @@ GEM cgi (0.5.2) citrus (3.0.2) cmdparse (3.0.7) - commonmarker (2.9.0-x86_64-linux) concurrent-ruby (1.3.8) date (3.5.1) debug (1.11.1) @@ -353,8 +97,6 @@ GEM kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) - kettle-drift (1.0.6) - version_gem (~> 1.1, >= 1.1.14) kettle-rb (0.1.5) kettle-soup-cover (3.0.4) kettle-wash (~> 0.1, >= 0.1.0) @@ -383,6 +125,10 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) + markdown-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) markly (0.16.0) mutex_m (0.3.0) nokogiri (1.19.4-x86_64-linux-gnu) @@ -538,8 +284,6 @@ GEM ruby-progressbar (1.13.0) ruby_engine (2.0.3) ruby_version (1.0.3) - service_actor (3.9.4) - zeitwerk (>= 1.0) silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) @@ -594,11 +338,11 @@ GEM token-resolver (2.0.5) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.14) - toml (0.3.0) - parslet (>= 1.8.0, < 3.0.0) - toml-rb (4.2.0) - citrus (~> 3.0, > 3.0) - racc (~> 1.7) + tree_haver (7.1.0) + citrus (~> 3.0) + parslet (~> 2.0) + tree_sitter_language_pack (>= 1.13.2, < 2.0) + version_gem (~> 1.1, >= 1.1.9) tree_sitter_language_pack (1.13.3-x86_64-linux) sorbet-runtime (~> 0.5) tsort (0.2.0) @@ -644,46 +388,24 @@ DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) appraisal2-rubocop (~> 1.0, >= 1.0.0) - ast-crispr! - ast-crispr-markdown-markly! - ast-crispr-ruby-prism! - ast-merge! - ast-merge-git! - ast-template! - bash-merge! benchmark (~> 0.5, >= 0.5.0) - binary-merge! bundler-audit (~> 0.9.3) cgi (~> 0.5) - citrus-toml-merge! - commonmarker-merge! debug (>= 1.1) - dotenv-merge! erb (~> 6.0, >= 6.0.6) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.0) - go-merge! irb (~> 1.17) - json-merge! kettle-dev (~> 2.0, >= 2.2.25) - kettle-drift (~> 1.0, >= 1.0.6) - kettle-jem! kettle-soup-cover (~> 3.0, >= 3.0.3) kettle-test (~> 2.0, >= 2.0.9) kramdown (~> 2.5, >= 2.5.2) - kramdown-merge! kramdown-parser-gfm (~> 1.1) - markdown-merge! markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) - parslet-toml-merge! - plain-merge! - prism-merge! - psych-merge! rake (~> 13.0) rbs (>= 3.0) - rbs-merge! rdoc (~> 6.11) reek (~> 6.5, >= 6.5.0) require_bench (~> 1.0, >= 1.0.4) @@ -694,27 +416,19 @@ DEPENDENCIES rubocop-on-rbs (~> 2.0, >= 2.0.0) rubocop-packaging (~> 0.6, >= 0.6.0) rubocop-ruby3_2 (~> 3.0, >= 3.0.6) - ruby-merge! ruby-progressbar (~> 1.13) - rust-merge! - smorg-rb! standard (~> 1.56, >= 1.56.0) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) - toml-merge! - tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) - typescript-merge! webrick (~> 1.9) yaml-converter (~> 0.2, >= 0.2.3) - yaml-merge! yard (~> 0.9, >= 0.9.45) yard-fence (~> 0.9, >= 0.9.6) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) yard-timekeeper (~> 0.2, >= 0.2.4) yard-yaml (~> 0.2, >= 0.2.3) - zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af @@ -722,31 +436,20 @@ CHECKSUMS appraisal2 (3.2.0) sha256=ccd0b767ac4060cd7af6d16747459b6990f49c39c7b4fb1f7d1146b1e97c492f appraisal2-rubocop (1.0.0) sha256=b71410fbb014befda5340605a605b7f6f3f012739baf0acc5b4351b592c3258d ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 - ast-crispr (7.1.0) - ast-crispr-markdown-markly (7.1.0) - ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) - ast-merge-git (7.1.0) - ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 - bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd - binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 - citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 - commonmarker (2.9.0-x86_64-linux) sha256=8cfe92970eef585a19ddf6613224b91cab64d6029834661bda801f877c9c7f43 - commonmarker-merge (7.1.0) concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 - dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -759,21 +462,16 @@ CHECKSUMS gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f - go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 - json-merge (7.1.0) kettle-dev (2.3.9) - kettle-drift (1.0.6) sha256=46eda08fa4411d1f3c6682a95eef1c9df4e94611b3949f49d4c7b43c0ed356a3 - kettle-jem (7.1.0) kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f kettle-soup-cover (3.0.4) kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa - kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 @@ -790,20 +488,15 @@ CHECKSUMS parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 - parslet-toml-merge (7.1.0) - plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 - prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 - psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 - rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb @@ -838,19 +531,15 @@ CHECKSUMS rubocop-rspec_rails (2.32.0) sha256=4a0d641c72f6ebb957534f539d9d0a62c47abd8ce0d0aeee1ef4701e892a9100 rubocop-ruby3_2 (3.0.7) sha256=f53dd6d286fb05186214fc6ec116783e7f837030918e8931c05de773e98f8466 rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 - ruby-merge (7.1.0) ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 - rust-merge (7.1.0) - service_actor (3.9.4) sha256=e63b523630b9a7e62959b2a90113b08d2565b5de9c148557b281ef847c9539ce silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed - smorg-rb (7.1.0) sorbet-runtime (0.6.13351) sha256=f8fee17c6e3edf835dc6823d26afb9a7c8969c6710d1fabe2fb43f4e0c15c64f standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b @@ -865,20 +554,15 @@ CHECKSUMS timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.5) sha256=b852f924287ffb58a440856e862b056c8ad97e74b4b2526cee43e0771f40c25c - toml (0.3.0) sha256=0a91d0f76a9036e84e44f95693b12f58d358c1df3ac8e3b5271f2056ecc6e4b9 - toml-merge (7.1.0) - toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 - typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 webrick (1.9.2) sha256=beb4a15fc474defed24a3bda4ffd88a490d517c9e4e6118c3edce59e45864131 yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 - yaml-merge (7.1.0) yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd @@ -886,7 +570,6 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 - zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH diff --git a/gems/smorg-rb/.rubocop_gradual.lock b/gems/smorg-rb/.rubocop_gradual.lock index 831bba3d6..56a773e7a 100644 --- a/gems/smorg-rb/.rubocop_gradual.lock +++ b/gems/smorg-rb/.rubocop_gradual.lock @@ -1,5 +1,5 @@ { - ".simplecov:2553617326": [ + ".simplecov:1462146101": [ [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] ], "Rakefile:2481690509": [ @@ -90,83 +90,84 @@ "lib/smorg-rb.rb:3972809897": [ [1, 1, 0, "Naming/FileName: The name of this source file (`smorg-rb.rb`) should use snake_case.", 5381] ], - "lib/smorg/rb.rb:1354671286": [ - [18, 3, 9, "Style/Documentation: Missing top-level documentation comment for `module Smorg::RB`.", 4021240623], - [18, 3, 33704, "Metrics/ModuleLength: Module has too many lines. [859/100]", 1685453755], - [26, 5, 660, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `run` is too high. [8/7]", 1065401429], - [26, 5, 660, "Metrics/MethodLength: Method has too many lines. [20/10]", 1065401429], - [50, 121, 41, "Layout/LineLength: Line is too long. [161/120]", 2633772911], - [53, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 2488766433], - [56, 121, 40, "Layout/LineLength: Line is too long. [160/120]", 1642922677], - [59, 5, 1450, "Metrics/AbcSize: Assignment Branch Condition size for `run_git` is too high. [<9, 30, 10> 32.88/17]", 2684567120], - [59, 5, 1450, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `run_git` is too high. [8/7]", 2684567120], - [59, 5, 1450, "Metrics/MethodLength: Method has too many lines. [33/10]", 2684567120], - [59, 5, 1450, "Metrics/PerceivedComplexity: Perceived complexity for `run_git` is too high. [9/8]", 2684567120], - [98, 121, 43, "Layout/LineLength: Line is too long. [163/120]", 2215054003], - [102, 5, 712, "Metrics/AbcSize: Assignment Branch Condition size for `parse_git_install_options` is too high. [<8, 14, 7> 17.58/17]", 3152011724], - [102, 5, 712, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `parse_git_install_options` is too high. [8/7]", 3152011724], - [102, 5, 712, "Metrics/MethodLength: Method has too many lines. [22/10]", 3152011724], - [127, 5, 640, "Metrics/MethodLength: Method has too many lines. [14/10]", 518795916], - [144, 5, 3491, "Metrics/AbcSize: Assignment Branch Condition size for `run_merge_driver` is too high. [<25, 60, 34> 73.36/17]", 4283927228], - [144, 5, 3491, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `run_merge_driver` is too high. [28/7]", 4283927228], - [144, 5, 3491, "Metrics/MethodLength: Method has too many lines. [69/10]", 4283927228], - [144, 5, 3491, "Metrics/PerceivedComplexity: Perceived complexity for `run_merge_driver` is too high. [28/8]", 4283927228], - [224, 5, 1285, "Metrics/MethodLength: Method has too many lines. [36/10]", 2754100815], - [224, 30, 84, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 2091651017], - [283, 5, 1345, "Metrics/AbcSize: Assignment Branch Condition size for `merge_git_file_fallback` is too high. [<4, 23, 6> 24.1/17]", 3637986705], - [283, 5, 1345, "Metrics/MethodLength: Method has too many lines. [47/10]", 3637986705], - [311, 13, 2, "Style/SpecialGlobalVars: Prefer `$CHILD_STATUS` from the stdlib 'English' module (don't forget to require it) over `$?`.", 5858718], - [312, 25, 2, "Style/SpecialGlobalVars: Prefer `$CHILD_STATUS` from the stdlib 'English' module (don't forget to require it) over `$?`.", 5858718], - [346, 5, 434, "Metrics/MethodLength: Method has too many lines. [12/10]", 3073199759], - [361, 5, 2289, "Metrics/AbcSize: Assignment Branch Condition size for `parse_merge_driver_options` is too high. [<36, 48, 26> 65.39/17]", 3420252459], - [361, 5, 2289, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `parse_merge_driver_options` is too high. [25/7]", 3420252459], - [361, 5, 2289, "Metrics/MethodLength: Method has too many lines. [66/10]", 3420252459], - [361, 5, 2289, "Metrics/PerceivedComplexity: Perceived complexity for `parse_merge_driver_options` is too high. [17/8]", 3420252459], - [432, 5, 1076, "Metrics/MethodLength: Method has too many lines. [22/10]", 1477555868], - [432, 42, 66, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [7/5]", 1731953899], - [432, 67, 2, "Naming/MethodParameterName: Method parameter must be at least 3 characters long.", 5861217], - [451, 31, 58, "Style/StringConcatenation: Prefer string interpolation to string concatenation.", 3099919314], - [465, 5, 1225, "Metrics/AbcSize: Assignment Branch Condition size for `report_and_enforce_profile` is too high. [<3, 20, 8> 21.75/17]", 58791261], - [465, 5, 1225, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `report_and_enforce_profile` is too high. [9/7]", 58791261], - [465, 5, 1225, "Metrics/MethodLength: Method has too many lines. [24/10]", 58791261], - [465, 5, 1225, "Metrics/PerceivedComplexity: Perceived complexity for `report_and_enforce_profile` is too high. [9/8]", 58791261], - [493, 5, 468, "Metrics/MethodLength: Method has too many lines. [12/10]", 1242862675], - [509, 5, 877, "Metrics/AbcSize: Assignment Branch Condition size for `parse_diff_driver_options` is too high. [<7, 18, 9> 21.31/17]", 2253944408], - [509, 5, 877, "Metrics/MethodLength: Method has too many lines. [26/10]", 2253944408], - [594, 5, 776, "Metrics/MethodLength: Method has too many lines. [25/10]", 1858237241], - [622, 5, 609, "Metrics/MethodLength: Method has too many lines. [12/10]", 2842480613], - [638, 5, 1154, "Metrics/MethodLength: Method has too many lines. [27/10]", 1412829863], - [638, 22, 129, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [7/5]", 7400119], - [669, 5, 1483, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `merge_markdown` is too high. [8/7]", 27505255], - [669, 5, 1483, "Metrics/MethodLength: Method has too many lines. [37/10]", 27505255], - [710, 5, 1479, "Metrics/AbcSize: Assignment Branch Condition size for `markdown_theirs_changes_already_present?` is too high. [<16, 31, 12> 36.89/17]", 535500337], - [710, 5, 1479, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `markdown_theirs_changes_already_present?` is too high. [12/7]", 535500337], - [710, 5, 1479, "Metrics/MethodLength: Method has too many lines. [22/10]", 535500337], - [710, 5, 1479, "Metrics/PerceivedComplexity: Perceived complexity for `markdown_theirs_changes_already_present?` is too high. [12/8]", 535500337], - [784, 5, 355, "Metrics/MethodLength: Method has too many lines. [11/10]", 39262550], - [798, 5, 1562, "Metrics/AbcSize: Assignment Branch Condition size for `merge3_result` is too high. [<1, 24, 5> 24.54/17]", 1515385192], - [798, 5, 1562, "Metrics/MethodLength: Method has too many lines. [40/10]", 1515385192], - [841, 5, 450, "Metrics/MethodLength: Method has too many lines. [14/10]", 378355367], - [868, 5, 668, "Metrics/AbcSize: Assignment Branch Condition size for `attribute_files_for_path` is too high. [<5, 17, 8> 19.44/17]", 4267311100], - [868, 5, 668, "Metrics/MethodLength: Method has too many lines. [14/10]", 4267311100], - [886, 5, 885, "Metrics/AbcSize: Assignment Branch Condition size for `apply_attributes` is too high. [<12, 16, 11> 22.83/17]", 2340440569], - [886, 5, 885, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `apply_attributes` is too high. [12/7]", 2340440569], - [886, 5, 885, "Metrics/MethodLength: Method has too many lines. [21/10]", 2340440569], - [886, 5, 885, "Metrics/PerceivedComplexity: Perceived complexity for `apply_attributes` is too high. [10/8]", 2340440569], - [923, 5, 772, "Metrics/AbcSize: Assignment Branch Condition size for `find_conflict_regions` is too high. [<12, 16, 7> 21.19/17]", 2134600144], - [923, 5, 772, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `find_conflict_regions` is too high. [8/7]", 2134600144], - [923, 5, 772, "Metrics/MethodLength: Method has too many lines. [18/10]", 2134600144], - [923, 5, 772, "Metrics/PerceivedComplexity: Perceived complexity for `find_conflict_regions` is too high. [9/8]", 2134600144], - [948, 121, 11, "Layout/LineLength: Line is too long. [131/120]", 1186836706] - ], - "smorg-rb.gemspec:3816851383": [ - [133, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 2821357214], - [148, 121, 50, "Layout/LineLength: Line is too long. [170/120]", 3888612416], - [149, 121, 29, "Layout/LineLength: Line is too long. [149/120]", 981994949], - [156, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 4229808912] - ], - "spec/cli_spec.rb:3322052048": [ - [7, 1, 22687, "Metrics/BlockLength: Block has too many lines. [429/25]", 1468636595], + "lib/smorg/rb.rb:1843924683": [ + [20, 3, 9, "Style/Documentation: Missing top-level documentation comment for `module Smorg::RB`.", 4021240623], + [20, 3, 33862, "Metrics/ModuleLength: Module has too many lines. [863/100]", 757343240], + [29, 5, 660, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `run` is too high. [8/7]", 1065401429], + [29, 5, 660, "Metrics/MethodLength: Method has too many lines. [20/10]", 1065401429], + [53, 121, 41, "Layout/LineLength: Line is too long. [161/120]", 2633772911], + [56, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 2488766433], + [59, 121, 40, "Layout/LineLength: Line is too long. [160/120]", 1642922677], + [62, 5, 1450, "Metrics/AbcSize: Assignment Branch Condition size for `run_git` is too high. [<9, 30, 10> 32.88/17]", 2684567120], + [62, 5, 1450, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `run_git` is too high. [8/7]", 2684567120], + [62, 5, 1450, "Metrics/MethodLength: Method has too many lines. [33/10]", 2684567120], + [62, 5, 1450, "Metrics/PerceivedComplexity: Perceived complexity for `run_git` is too high. [9/8]", 2684567120], + [101, 121, 43, "Layout/LineLength: Line is too long. [163/120]", 2215054003], + [105, 5, 712, "Metrics/AbcSize: Assignment Branch Condition size for `parse_git_install_options` is too high. [<8, 14, 7> 17.58/17]", 3152011724], + [105, 5, 712, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `parse_git_install_options` is too high. [8/7]", 3152011724], + [105, 5, 712, "Metrics/MethodLength: Method has too many lines. [22/10]", 3152011724], + [130, 5, 640, "Metrics/MethodLength: Method has too many lines. [14/10]", 518795916], + [147, 5, 3491, "Metrics/AbcSize: Assignment Branch Condition size for `run_merge_driver` is too high. [<25, 60, 34> 73.36/17]", 4283927228], + [147, 5, 3491, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `run_merge_driver` is too high. [28/7]", 4283927228], + [147, 5, 3491, "Metrics/MethodLength: Method has too many lines. [69/10]", 4283927228], + [147, 5, 3491, "Metrics/PerceivedComplexity: Perceived complexity for `run_merge_driver` is too high. [28/8]", 4283927228], + [227, 5, 1285, "Metrics/MethodLength: Method has too many lines. [36/10]", 2754100815], + [227, 30, 84, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 2091651017], + [286, 5, 1345, "Metrics/AbcSize: Assignment Branch Condition size for `merge_git_file_fallback` is too high. [<4, 23, 6> 24.1/17]", 3637986705], + [286, 5, 1345, "Metrics/MethodLength: Method has too many lines. [47/10]", 3637986705], + [314, 13, 2, "Style/SpecialGlobalVars: Prefer `$CHILD_STATUS` from the stdlib 'English' module (don't forget to require it) over `$?`.", 5858718], + [315, 25, 2, "Style/SpecialGlobalVars: Prefer `$CHILD_STATUS` from the stdlib 'English' module (don't forget to require it) over `$?`.", 5858718], + [349, 5, 434, "Metrics/MethodLength: Method has too many lines. [12/10]", 3073199759], + [364, 5, 2289, "Metrics/AbcSize: Assignment Branch Condition size for `parse_merge_driver_options` is too high. [<36, 48, 26> 65.39/17]", 3420252459], + [364, 5, 2289, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `parse_merge_driver_options` is too high. [25/7]", 3420252459], + [364, 5, 2289, "Metrics/MethodLength: Method has too many lines. [66/10]", 3420252459], + [364, 5, 2289, "Metrics/PerceivedComplexity: Perceived complexity for `parse_merge_driver_options` is too high. [17/8]", 3420252459], + [435, 5, 1076, "Metrics/MethodLength: Method has too many lines. [22/10]", 1477555868], + [435, 42, 66, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [7/5]", 1731953899], + [435, 67, 2, "Naming/MethodParameterName: Method parameter must be at least 3 characters long.", 5861217], + [454, 31, 58, "Style/StringConcatenation: Prefer string interpolation to string concatenation.", 3099919314], + [468, 5, 1225, "Metrics/AbcSize: Assignment Branch Condition size for `report_and_enforce_profile` is too high. [<3, 20, 8> 21.75/17]", 58791261], + [468, 5, 1225, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `report_and_enforce_profile` is too high. [9/7]", 58791261], + [468, 5, 1225, "Metrics/MethodLength: Method has too many lines. [24/10]", 58791261], + [468, 5, 1225, "Metrics/PerceivedComplexity: Perceived complexity for `report_and_enforce_profile` is too high. [9/8]", 58791261], + [496, 5, 468, "Metrics/MethodLength: Method has too many lines. [12/10]", 1242862675], + [512, 5, 877, "Metrics/AbcSize: Assignment Branch Condition size for `parse_diff_driver_options` is too high. [<7, 18, 9> 21.31/17]", 2253944408], + [512, 5, 877, "Metrics/MethodLength: Method has too many lines. [26/10]", 2253944408], + [554, 5, 637, "Metrics/MethodLength: Method has too many lines. [11/10]", 2705694247], + [602, 5, 776, "Metrics/MethodLength: Method has too many lines. [25/10]", 1858237241], + [630, 5, 609, "Metrics/MethodLength: Method has too many lines. [12/10]", 2842480613], + [646, 5, 1154, "Metrics/MethodLength: Method has too many lines. [27/10]", 1412829863], + [646, 22, 129, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [7/5]", 7400119], + [677, 5, 1483, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `merge_markdown` is too high. [8/7]", 27505255], + [677, 5, 1483, "Metrics/MethodLength: Method has too many lines. [37/10]", 27505255], + [718, 5, 1479, "Metrics/AbcSize: Assignment Branch Condition size for `markdown_theirs_changes_already_present?` is too high. [<16, 31, 12> 36.89/17]", 535500337], + [718, 5, 1479, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `markdown_theirs_changes_already_present?` is too high. [12/7]", 535500337], + [718, 5, 1479, "Metrics/MethodLength: Method has too many lines. [22/10]", 535500337], + [718, 5, 1479, "Metrics/PerceivedComplexity: Perceived complexity for `markdown_theirs_changes_already_present?` is too high. [12/8]", 535500337], + [792, 5, 355, "Metrics/MethodLength: Method has too many lines. [11/10]", 39262550], + [806, 5, 1562, "Metrics/AbcSize: Assignment Branch Condition size for `merge3_result` is too high. [<1, 24, 5> 24.54/17]", 1515385192], + [806, 5, 1562, "Metrics/MethodLength: Method has too many lines. [40/10]", 1515385192], + [849, 5, 450, "Metrics/MethodLength: Method has too many lines. [14/10]", 378355367], + [876, 5, 668, "Metrics/AbcSize: Assignment Branch Condition size for `attribute_files_for_path` is too high. [<5, 17, 8> 19.44/17]", 4267311100], + [876, 5, 668, "Metrics/MethodLength: Method has too many lines. [14/10]", 4267311100], + [894, 5, 885, "Metrics/AbcSize: Assignment Branch Condition size for `apply_attributes` is too high. [<12, 16, 11> 22.83/17]", 2340440569], + [894, 5, 885, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `apply_attributes` is too high. [12/7]", 2340440569], + [894, 5, 885, "Metrics/MethodLength: Method has too many lines. [21/10]", 2340440569], + [894, 5, 885, "Metrics/PerceivedComplexity: Perceived complexity for `apply_attributes` is too high. [10/8]", 2340440569], + [931, 5, 772, "Metrics/AbcSize: Assignment Branch Condition size for `find_conflict_regions` is too high. [<12, 16, 7> 21.19/17]", 2134600144], + [931, 5, 772, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `find_conflict_regions` is too high. [8/7]", 2134600144], + [931, 5, 772, "Metrics/MethodLength: Method has too many lines. [18/10]", 2134600144], + [931, 5, 772, "Metrics/PerceivedComplexity: Perceived complexity for `find_conflict_regions` is too high. [9/8]", 2134600144], + [956, 121, 11, "Layout/LineLength: Line is too long. [131/120]", 1186836706] + ], + "smorg-rb.gemspec:3223308156": [ + [134, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 2821357214], + [149, 121, 50, "Layout/LineLength: Line is too long. [170/120]", 3888612416], + [150, 121, 29, "Layout/LineLength: Line is too long. [149/120]", 981994949], + [157, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 4229808912] + ], + "spec/cli_spec.rb:1113577791": [ + [7, 1, 23806, "Metrics/BlockLength: Block has too many lines. [448/25]", 1144829509], [46, 15, 2, "Style/SpecialGlobalVars: Prefer `$CHILD_STATUS` from the stdlib 'English' module (don't forget to require it) over `$?`.", 5858718], [108, 5, 7, "Style/MultilineBlockChain: Avoid multi-line chains of blocks.", 4045560504], [150, 3, 1104, "Metrics/BlockLength: Block has too many lines. [31/25]", 2261544718], @@ -177,6 +178,6 @@ [354, 3, 1958, "Metrics/BlockLength: Block has too many lines. [34/25]", 955598497], [355, 5, 1872, "Metrics/BlockLength: Block has too many lines. [32/25]", 1095476741], [356, 7, 1799, "Metrics/BlockLength: Block has too many lines. [30/25]", 1248712702], - [474, 31, 2, "Style/SpecialGlobalVars: Prefer `$CHILD_STATUS` from the stdlib 'English' module (don't forget to require it) over `$?`.", 5858718] + [496, 31, 2, "Style/SpecialGlobalVars: Prefer `$CHILD_STATUS` from the stdlib 'English' module (don't forget to require it) over `$?`.", 5858718] ] } diff --git a/gems/smorg-rb/.simplecov b/gems/smorg-rb/.simplecov index 98a2365f1..74e757eb8 100644 --- a/gems/smorg-rb/.simplecov +++ b/gems/smorg-rb/.simplecov @@ -4,15 +4,11 @@ # smorg-rb will then preserve content between those markers across template runs. # kettle-jem:unfreeze -require 'kettle/soup/cover/config' - # Minimum coverage thresholds are set by kettle-soup-cover. # They are controlled by ENV variables loaded by `mise` from `mise.toml` # (with optional machine-local overrides in `.env.local`). # If the values for minimum coverage need to change, they should be changed both there, # and in 2 places in .github/workflows/coverage.yml. -SimpleCov.start do - track_files 'lib/**/*.rb' - track_files 'lib/**/*.rake' - track_files 'exe/*.rb' +SimpleCov.configure do + cover 'lib/**/*.rb', 'lib/**/*.rake', 'exe/*.rb' end diff --git a/gems/smorg-rb/Gemfile b/gems/smorg-rb/Gemfile index 05468d8b0..d14775ce9 100644 --- a/gems/smorg-rb/Gemfile +++ b/gems/smorg-rb/Gemfile @@ -6,7 +6,7 @@ # kettle-jem will then preserve content between those markers across template runs. # kettle-jem:unfreeze -source "https://gem.coop" +source 'https://gem.coop' git_source(:codeberg) { |repo_name| "https://codeberg.org/#{repo_name}" } git_source(:gitlab) { |repo_name| "https://gitlab.com/#{repo_name}" } @@ -19,8 +19,8 @@ git_source(:gitlab) { |repo_name| "https://gitlab.com/#{repo_name}" } gemspec # Local workspace dependency wiring for *_local.gemfile overrides -nomono_requirements = ["~> 1.0", ">= 1.0.8"] -gem "nomono", *nomono_requirements, require: false # ruby >= 2.2 +nomono_requirements = ['~> 1.0', '>= 1.0.8'] +gem 'nomono', *nomono_requirements, require: false # ruby >= 2.2 # Direct sibling dependencies (env-switched via STRUCTUREDMERGE_DEV) direct_sibling_gems = %w[ @@ -32,50 +32,46 @@ direct_sibling_gems = %w[ markly-merge plain-merge ] -direct_sibling_dev = ENV.fetch("STRUCTUREDMERGE_DEV", "") +direct_sibling_dev = ENV.fetch('STRUCTUREDMERGE_DEV', '') direct_sibling_local = !direct_sibling_dev.empty? && !%w[false 0 no off].include?(direct_sibling_dev.downcase) -direct_sibling_templating = ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? +direct_sibling_templating = ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero?) - direct_sibling_dev_was_set = ENV.key?("STRUCTUREDMERGE_DEV") - direct_sibling_dev_original = ENV.fetch("STRUCTUREDMERGE_DEV", nil) + (direct_sibling_local || + ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) + direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') + direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) begin nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path("Gemfile.lock", __dir__) + nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == "nomono" } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - if nomono_locked - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] - end - end - Kernel.send(:gem, "nomono", *nomono_activation_requirements) - require "nomono/bundler" - if direct_sibling_templating && !direct_sibling_local - ENV["STRUCTUREDMERGE_DEV"] = File.expand_path("..", __dir__) + Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked end + Kernel.send(:gem, 'nomono', *nomono_activation_requirements) + require 'nomono/bundler' + ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local eval_nomono_gems( gems: direct_sibling_gems, - prefix: "STRUCTUREDMERGE", - path_env: "STRUCTUREDMERGE_DEV", - root: ["src", "my", "structuredmerge"] + prefix: 'STRUCTUREDMERGE', + path_env: 'STRUCTUREDMERGE_DEV', + root: %w[src my structuredmerge] ) rescue LoadError - warn "Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies." + warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' ensure if direct_sibling_templating && !direct_sibling_local if direct_sibling_dev_was_set - ENV["STRUCTUREDMERGE_DEV"] = direct_sibling_dev_original + ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original else - ENV.delete("STRUCTUREDMERGE_DEV") + ENV.delete('STRUCTUREDMERGE_DEV') end end end @@ -162,28 +158,28 @@ if direct_sibling_gems.any? && end # Use released TSLP with the Ruby ABI platform-gem fix. -gem "tree_sitter_language_pack", "~> 1.13", ">= 1.13.3" +gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' # Templating (env-switched: STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local paths) -eval_gemfile "gemfiles/modular/templating.gemfile" if ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? +eval_gemfile 'gemfiles/modular/templating.gemfile' if ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? # Debugging -eval_gemfile "gemfiles/modular/debug.gemfile" +eval_gemfile 'gemfiles/modular/debug.gemfile' # Code Coverage (env-switched: KETTLE_DEV_DEV=true for local paths) -eval_gemfile "gemfiles/modular/coverage.gemfile" +eval_gemfile 'gemfiles/modular/coverage.gemfile' # Linting -eval_gemfile "gemfiles/modular/style.gemfile" +eval_gemfile 'gemfiles/modular/style.gemfile' # Documentation -eval_gemfile "gemfiles/modular/documentation.gemfile" +eval_gemfile 'gemfiles/modular/documentation.gemfile' # Optional -eval_gemfile "gemfiles/modular/optional.gemfile" +eval_gemfile 'gemfiles/modular/optional.gemfile' ### Std Lib Extracted Gems -eval_gemfile "gemfiles/modular/x_std_libs.gemfile" +eval_gemfile 'gemfiles/modular/x_std_libs.gemfile' # See unlocked_deps appraisal for more details on irb inclusion -gem "irb", "~> 1.17" # ruby >= 2.7 +gem 'irb', '~> 1.17' # ruby >= 2.7 diff --git a/gems/smorg-rb/Gemfile.lock b/gems/smorg-rb/Gemfile.lock index d6bbb9248..ecbe95e2a 100644 --- a/gems/smorg-rb/Gemfile.lock +++ b/gems/smorg-rb/Gemfile.lock @@ -12,6 +12,84 @@ PATH plain-merge (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) +PATH + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git + specs: + ast-merge-git (7.1.0) + ast-merge (= 7.1.0) + json-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/ast-merge + specs: + ast-merge (7.1.0) + benchmark + token-resolver (~> 2.0, >= 2.0.4) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/go-merge + specs: + go-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/json-merge + specs: + json-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem + specs: + kettle-jem (7.1.0) + addressable (>= 2.8, < 3) + ast-crispr-markdown-markly (= 7.1.0) + ast-crispr-ruby-prism (= 7.1.0) + ast-merge (= 7.1.0) + bash-merge (= 7.1.0) + citrus-toml-merge (= 7.1.0) + commonmarker-merge (= 7.1.0) + dotenv-merge (= 7.1.0) + json-merge (= 7.1.0) + kettle-dev (~> 2.3, >= 2.3.5) + kettle-rb (~> 0.1, >= 0.1.4) + kramdown-merge (= 7.1.0) + markdown-merge (= 7.1.0) + markly-merge (= 7.1.0) + prism-merge (= 7.1.0) + psych-merge (= 7.1.0) + rbs (>= 3.10) + rbs-merge (= 7.1.0) + ruby-merge (= 7.1.0) + token-resolver (~> 2.0, >= 2.0.4) + toml-merge (= 7.1.0) + toml-rb (~> 4.2) + tree_haver (= 7.1.0) + yaml-merge (= 7.1.0) + +PATH + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/markly-merge + specs: + markly-merge (7.1.0) + markdown-merge (= 7.1.0) + markly (~> 0.9) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/plain-merge + specs: + plain-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + GEM remote: https://gem.coop/ specs: @@ -39,15 +117,6 @@ GEM ast-crispr (= 7.1.0) prism-merge (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) - ast-merge (7.1.0) - benchmark - token-resolver (~> 2.0, >= 2.0.4) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - ast-merge-git (7.1.0) - ast-merge (= 7.1.0) - json-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) backports (3.25.3) bash-merge (7.1.0) ast-merge (= 7.1.0) @@ -119,10 +188,6 @@ GEM geom2d (0.4.1) gitmoji-regex (2.0.4) version_gem (~> 1.1, >= 1.1.13) - go-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) hexapdf (1.9.1) cmdparse (~> 3.0, >= 3.0.3) geom2d (~> 0.4, >= 0.4.1) @@ -135,42 +200,13 @@ GEM rdoc (>= 4.0.0) reline (>= 0.4.2) json (2.21.1) - json-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - kettle-dev (2.3.8) + kettle-dev (2.3.9) emoji_regex (>= 15.0) kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) - kettle-jem (7.1.0) - addressable (>= 2.8, < 3) - ast-crispr-markdown-markly (= 7.1.0) - ast-crispr-ruby-prism (= 7.1.0) - ast-merge (= 7.1.0) - bash-merge (= 7.1.0) - citrus-toml-merge (= 7.1.0) - commonmarker-merge (= 7.1.0) - dotenv-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-dev (~> 2.3, >= 2.3.5) - kettle-rb (~> 0.1, >= 0.1.4) - kramdown-merge (= 7.1.0) - markdown-merge (= 7.1.0) - markly-merge (= 7.1.0) - prism-merge (= 7.1.0) - psych-merge (= 7.1.0) - rbs (>= 3.10) - rbs-merge (= 7.1.0) - ruby-merge (= 7.1.0) - token-resolver (~> 2.0, >= 2.0.4) - toml-merge (= 7.1.0) - toml-rb (~> 4.2) - tree_haver (= 7.1.0) - yaml-merge (= 7.1.0) kettle-rb (0.1.5) - kettle-soup-cover (3.0.3) + kettle-soup-cover (3.0.4) kettle-wash (~> 0.1, >= 0.1.0) simplecov (>= 1.0) simplecov-cobertura (>= 4.0) @@ -206,10 +242,6 @@ GEM tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) markly (0.16.0) - markly-merge (7.1.0) - markdown-merge (= 7.1.0) - markly (~> 0.9) - version_gem (~> 1.1, >= 1.1.9) mutex_m (0.3.0) nokogiri (1.19.4-x86_64-linux-gnu) racc (~> 1.4) @@ -223,10 +255,6 @@ GEM ast (~> 2.4.1) racc parslet (2.0.0) - plain-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) pp (0.6.4) prettyprint prettyprint (0.2.0) @@ -503,6 +531,8 @@ DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) appraisal2-rubocop (~> 1.0, >= 1.0.0) + ast-merge! + ast-merge-git! benchmark (~> 0.5, >= 0.5.0) bundler-audit (~> 0.9.3) cgi (~> 0.5) @@ -510,14 +540,19 @@ DEPENDENCIES erb (~> 6.0, >= 6.0.6) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.0) + go-merge! irb (~> 1.17) + json-merge! kettle-dev (~> 2.0, >= 2.2.25) + kettle-jem! kettle-soup-cover (~> 3.0, >= 3.0.3) kettle-test (~> 2.0, >= 2.0.9) kramdown (~> 2.5, >= 2.5.2) kramdown-parser-gfm (~> 1.1) + markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) + plain-merge! rake (~> 13.0) rbs (>= 3.0) rdoc (~> 6.11) @@ -592,10 +627,10 @@ CHECKSUMS irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 json-merge (7.1.0) - kettle-dev (2.3.8) sha256=9d716ff21c660a730cb4e8d41e2e2f0630a28167a354b6e2924e242102aef72c + kettle-dev (2.3.9) kettle-jem (7.1.0) kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f - kettle-soup-cover (3.0.3) sha256=5919649be35690e4580299a41ac7c44a9548a7ca38561ffdd3c683c9d63e6f9b + kettle-soup-cover (3.0.4) kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa diff --git a/gems/smorg-rb/Rakefile b/gems/smorg-rb/Rakefile index 5fec5aacc..ba8baf8e9 100644 --- a/gems/smorg-rb/Rakefile +++ b/gems/smorg-rb/Rakefile @@ -130,23 +130,23 @@ end ### DUPLICATE DRIFT TASKS begin - require "kettle/drift" + require 'kettle/drift' Kettle::Drift.install_tasks rescue LoadError - desc("(stub) kettle:drift:check is unavailable") - task("kettle:drift:check") do + desc('(stub) kettle:drift:check is unavailable') + task('kettle:drift:check') do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc("(stub) kettle:drift:update is unavailable") - task("kettle:drift:update") do + desc('(stub) kettle:drift:update is unavailable') + task('kettle:drift:update') do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc("(stub) kettle:drift:force_update is unavailable") - task("kettle:drift:force_update") do + desc('(stub) kettle:drift:force_update is unavailable') + task('kettle:drift:force_update') do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc("(stub) kettle:drift is unavailable") - task("kettle:drift" => "kettle:drift:update") + desc('(stub) kettle:drift is unavailable') + task('kettle:drift' => 'kettle:drift:update') end ### TEMPLATING TASKS diff --git a/gems/smorg-rb/gemfiles/modular/templating.gemfile b/gems/smorg-rb/gemfiles/modular/templating.gemfile index d5b61b88e..922a33590 100644 --- a/gems/smorg-rb/gemfiles/modular/templating.gemfile +++ b/gems/smorg-rb/gemfiles/modular/templating.gemfile @@ -1,16 +1,16 @@ # frozen_string_literal: true -structuredmerge_remote = ENV.fetch("STRUCTUREDMERGE_DEV", "false").casecmp("false").zero? -kettle_remote = ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false").zero? +structuredmerge_remote = ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false').zero? +kettle_remote = ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? if structuredmerge_remote # Parser dependencies for released installs. - gem "tree_sitter_language_pack", "~> 1.13", ">= 1.13.3" + gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' end if kettle_remote # Template/plugin checks for released installs. - gem "kettle-drift", "~> 1.0", ">= 1.0.6", require: false + gem 'kettle-drift', '~> 1.0', '>= 1.0.6', require: false end # Set STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local development with path-based dependencies. @@ -19,4 +19,4 @@ end # # Set KETTLE_DEV_DEV=/path/to/my for local development with Kettle plugin gems. # When false (default / CI), released Kettle plugin gems are used. -eval_gemfile "templating_local.gemfile" unless structuredmerge_remote && kettle_remote +eval_gemfile 'templating_local.gemfile' unless structuredmerge_remote && kettle_remote diff --git a/gems/smorg-rb/gemfiles/modular/templating_local.gemfile b/gems/smorg-rb/gemfiles/modular/templating_local.gemfile index 2902ccab6..93d40919f 100644 --- a/gems/smorg-rb/gemfiles/modular/templating_local.gemfile +++ b/gems/smorg-rb/gemfiles/modular/templating_local.gemfile @@ -12,21 +12,19 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] -nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) +nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] +nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == "nomono" } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - if nomono_locked - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] - end + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked end -Kernel.send(:gem, "nomono", *nomono_activation_requirements) -require "nomono/bundler" +Kernel.send(:gem, 'nomono', *nomono_activation_requirements) +require 'nomono/bundler' structuredmerge_local_gems = %w[ tree_haver @@ -69,25 +67,25 @@ structuredmerge_local_gems_to_eval = structuredmerge_local_gems - %w[smorg-rb] - kettle_dev_local_gems_to_eval = kettle_dev_local_gems - %w[smorg-rb] - declared_gems platform :mri do - if ENV.fetch("STRUCTUREDMERGE_DEV", "false").casecmp("false") != 0 + if ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false') != 0 eval_nomono_gems( gems: structuredmerge_local_gems_to_eval, - prefix: "STRUCTUREDMERGE", - path_env: "STRUCTUREDMERGE_DEV", - vendored_gems_env: "VENDORED_GEMS", - vendor_gem_dir_env: "VENDOR_GEM_DIR", - debug_env: "STRUCTUREDMERGE_DEBUG" + prefix: 'STRUCTUREDMERGE', + path_env: 'STRUCTUREDMERGE_DEV', + vendored_gems_env: 'VENDORED_GEMS', + vendor_gem_dir_env: 'VENDOR_GEM_DIR', + debug_env: 'STRUCTUREDMERGE_DEBUG' ) end - if ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false") != 0 + if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false') != 0 eval_nomono_gems( gems: kettle_dev_local_gems_to_eval, - prefix: "KETTLE_DEV", - path_env: "KETTLE_DEV_DEV", - vendored_gems_env: "VENDORED_GEMS", - vendor_gem_dir_env: "VENDOR_GEM_DIR", - debug_env: "KETTLE_DEV_DEBUG" + prefix: 'KETTLE_DEV', + path_env: 'KETTLE_DEV_DEV', + vendored_gems_env: 'VENDORED_GEMS', + vendor_gem_dir_env: 'VENDOR_GEM_DIR', + debug_env: 'KETTLE_DEV_DEBUG' ) end end diff --git a/gems/smorg-rb/lib/smorg/rb/version.rb b/gems/smorg-rb/lib/smorg/rb/version.rb index ef211ba06..8e48f6d11 100644 --- a/gems/smorg-rb/lib/smorg/rb/version.rb +++ b/gems/smorg-rb/lib/smorg/rb/version.rb @@ -3,7 +3,7 @@ module Smorg module RB module Version - VERSION = "7.1.0" + VERSION = '7.1.0' end VERSION = Version::VERSION # Traditional Constant Location end diff --git a/gems/smorg-rb/smorg-rb.gemspec b/gems/smorg-rb/smorg-rb.gemspec index 5593a881f..b35fb9351 100644 --- a/gems/smorg-rb/smorg-rb.gemspec +++ b/gems/smorg-rb/smorg-rb.gemspec @@ -97,12 +97,12 @@ Gem::Specification.new do |spec| # Utilities spec.add_dependency 'ast-merge', "= #{spec.version}" spec.add_dependency 'ast-merge-git', "= #{spec.version}" + spec.add_dependency('diff-lcs', '~> 1.5') spec.add_dependency 'go-merge', "= #{spec.version}" spec.add_dependency 'json-merge', "= #{spec.version}" spec.add_dependency 'kettle-jem', "= #{spec.version}" spec.add_dependency 'markly-merge', "= #{spec.version}" spec.add_dependency 'plain-merge', "= #{spec.version}" - spec.add_dependency('diff-lcs', '~> 1.5') spec.add_dependency('version_gem', '~> 1.1', '>= 1.1.9') # ruby >= 2.2.0 # NOTE: It is preferable to list development dependencies in the gemspec due to increased diff --git a/gems/smorg-rb/spec/spec_helper.rb b/gems/smorg-rb/spec/spec_helper.rb index 7b790d364..6d85b991a 100644 --- a/gems/smorg-rb/spec/spec_helper.rb +++ b/gems/smorg-rb/spec/spec_helper.rb @@ -8,7 +8,12 @@ # The rescue LoadError handles that scenario. begin require 'kettle-soup-cover' - require 'simplecov' if Kettle::Soup::Cover::DO_COV # `.simplecov` is run here! + if Kettle::Soup::Cover::DO_COV + # Requiring simplecov loads the project-local `.simplecov`. + require 'simplecov' + require 'kettle/soup/cover/config' + SimpleCov.start + end rescue LoadError => e # check the error message and re-raise when unexpected raise e unless e.message.include?('kettle') From aecf710684fc38d87ca39c2625d65ebb87c0617b Mon Sep 17 00:00:00 2001 From: "Peter H. Boling" Date: Tue, 21 Jul 2026 18:09:33 -0600 Subject: [PATCH 175/188] =?UTF-8?q?=F0=9F=8E=A8=20Template=20bootstrap=20b?= =?UTF-8?q?y=20kettle-jem=20v7.1.0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gems/kettle-jem/Gemfile.lock | 48 +++--- gems/smorg-rb/Gemfile.lock | 292 ++++++++++++++++++++++++++--------- 2 files changed, 240 insertions(+), 100 deletions(-) diff --git a/gems/kettle-jem/Gemfile.lock b/gems/kettle-jem/Gemfile.lock index 5f045aafc..13317435f 100644 --- a/gems/kettle-jem/Gemfile.lock +++ b/gems/kettle-jem/Gemfile.lock @@ -28,7 +28,7 @@ PATH yaml-merge (= 7.1.0) PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly specs: ast-crispr-markdown-markly (7.1.0) ast-crispr (= 7.1.0) @@ -36,7 +36,7 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism specs: ast-crispr-ruby-prism (7.1.0) ast-crispr (= 7.1.0) @@ -44,7 +44,7 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/ast-merge specs: ast-merge (7.1.0) benchmark @@ -53,7 +53,7 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/bash-merge specs: bash-merge (7.1.0) ast-merge (= 7.1.0) @@ -61,7 +61,7 @@ PATH version_gem (~> 1.1, >= 1.1.14) PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge specs: citrus-toml-merge (7.1.0) toml-merge (= 7.1.0) @@ -69,7 +69,7 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge specs: commonmarker-merge (7.1.0) commonmarker (~> 2.2) @@ -77,7 +77,7 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge specs: dotenv-merge (7.1.0) ast-merge (= 7.1.0) @@ -85,7 +85,7 @@ PATH version_gem (~> 1.1, >= 1.1.14) PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/json-merge specs: json-merge (7.1.0) ast-merge (= 7.1.0) @@ -93,7 +93,7 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge specs: kramdown-merge (7.1.0) kramdown (~> 2.5) @@ -101,7 +101,7 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge specs: markdown-merge (7.1.0) ast-merge (= 7.1.0) @@ -109,7 +109,7 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/markly-merge specs: markly-merge (7.1.0) markdown-merge (= 7.1.0) @@ -117,7 +117,7 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/prism-merge specs: prism-merge (7.1.0) prism (~> 1.6) @@ -125,7 +125,7 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/psych-merge specs: psych-merge (7.1.0) ast-merge (= 7.1.0) @@ -134,7 +134,7 @@ PATH yaml-merge (= 7.1.0) PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge specs: rbs-merge (7.1.0) ast-merge (= 7.1.0) @@ -143,7 +143,7 @@ PATH version_gem (~> 1.1, >= 1.1.14) PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge specs: ruby-merge (7.1.0) ast-merge (= 7.1.0) @@ -151,7 +151,7 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/toml-merge specs: toml-merge (7.1.0) ast-merge (= 7.1.0) @@ -159,7 +159,7 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/tree_haver specs: tree_haver (7.1.0) citrus (~> 3.0) @@ -168,7 +168,7 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge specs: yaml-merge (7.1.0) ast-merge (= 7.1.0) @@ -261,15 +261,13 @@ GEM rdoc (>= 4.0.0) reline (>= 0.4.2) json (2.21.1) - kettle-dev (2.3.8) + kettle-dev (2.3.9) emoji_regex (>= 15.0) kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) - kettle-drift (1.0.6) - version_gem (~> 1.1, >= 1.1.14) kettle-rb (0.1.5) - kettle-soup-cover (3.0.3) + kettle-soup-cover (3.0.4) kettle-wash (~> 0.1, >= 0.1.0) simplecov (>= 1.0) simplecov-cobertura (>= 4.0) @@ -569,7 +567,6 @@ DEPENDENCIES gitmoji-regex (~> 2.0, >= 2.0.4) irb (~> 1.17) json-merge! - kettle-drift (~> 1.0, >= 1.0.6) kettle-jem! kettle-soup-cover (~> 3.0, >= 3.0.3) kettle-test (~> 2.0, >= 2.0.12) @@ -658,11 +655,10 @@ CHECKSUMS irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 json-merge (7.1.0) - kettle-dev (2.3.8) sha256=9d716ff21c660a730cb4e8d41e2e2f0630a28167a354b6e2924e242102aef72c - kettle-drift (1.0.6) + kettle-dev (2.3.9) kettle-jem (7.1.0) kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f - kettle-soup-cover (3.0.3) sha256=5919649be35690e4580299a41ac7c44a9548a7ca38561ffdd3c683c9d63e6f9b + kettle-soup-cover (3.0.4) kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa diff --git a/gems/smorg-rb/Gemfile.lock b/gems/smorg-rb/Gemfile.lock index ecbe95e2a..7dcf24a9f 100644 --- a/gems/smorg-rb/Gemfile.lock +++ b/gems/smorg-rb/Gemfile.lock @@ -13,7 +13,31 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly + specs: + ast-crispr-markdown-markly (7.1.0) + ast-crispr (= 7.1.0) + markly-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism + specs: + ast-crispr-ruby-prism (7.1.0) + ast-crispr (= 7.1.0) + prism-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr + specs: + ast-crispr (7.1.0) + ast-merge (= 7.1.0) + service_actor (~> 3.9) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git specs: ast-merge-git (7.1.0) ast-merge (= 7.1.0) @@ -21,7 +45,7 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/ast-merge + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge specs: ast-merge (7.1.0) benchmark @@ -30,7 +54,53 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/go-merge + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template + specs: + ast-template (7.1.0) + ast-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge + specs: + bash-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge + specs: + binary-merge (7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge + specs: + citrus-toml-merge (7.1.0) + toml-merge (= 7.1.0) + toml-rb (~> 4.1) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge + specs: + commonmarker-merge (7.1.0) + commonmarker (~> 2.2) + markdown-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge + specs: + dotenv-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge specs: go-merge (7.1.0) ast-merge (= 7.1.0) @@ -38,7 +108,7 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/json-merge + remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge specs: json-merge (7.1.0) ast-merge (= 7.1.0) @@ -46,7 +116,7 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem + remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem specs: kettle-jem (7.1.0) addressable (>= 2.8, < 3) @@ -75,7 +145,23 @@ PATH yaml-merge (= 7.1.0) PATH - remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/markly-merge + remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge + specs: + kramdown-merge (7.1.0) + kramdown (~> 2.5) + markdown-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge + specs: + markdown-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge specs: markly-merge (7.1.0) markdown-merge (= 7.1.0) @@ -83,13 +169,103 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/plain-merge + remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge + specs: + parslet-toml-merge (7.1.0) + toml (~> 0.3) + toml-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge specs: plain-merge (7.1.0) ast-merge (= 7.1.0) tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge + specs: + prism-merge (7.1.0) + prism (~> 1.6) + ruby-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge + specs: + psych-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + yaml-merge (= 7.1.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge + specs: + rbs-merge (7.1.0) + ast-merge (= 7.1.0) + rbs (>= 3.10) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge + specs: + ruby-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge + specs: + rust-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge + specs: + toml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver + specs: + tree_haver (7.1.0) + citrus (~> 3.0) + parslet (~> 2.0) + tree_sitter_language_pack (>= 1.13.2, < 2.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge + specs: + typescript-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge + specs: + yaml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge + specs: + zip-merge (7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + GEM remote: https://gem.coop/ specs: @@ -105,23 +281,7 @@ GEM rubocop (>= 1.0) version_gem (~> 1.1, >= 1.1.14) ast (2.4.3) - ast-crispr (7.1.0) - ast-merge (= 7.1.0) - service_actor (~> 3.9) - version_gem (~> 1.1, >= 1.1.9) - ast-crispr-markdown-markly (7.1.0) - ast-crispr (= 7.1.0) - markly-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - ast-crispr-ruby-prism (7.1.0) - ast-crispr (= 7.1.0) - prism-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) backports (3.25.3) - bash-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) benchmark (0.5.0) bigdecimal (4.1.2) bundler-audit (0.9.3) @@ -129,16 +289,8 @@ GEM thor (~> 1.0) cgi (0.5.2) citrus (3.0.2) - citrus-toml-merge (7.1.0) - toml-merge (= 7.1.0) - toml-rb (~> 4.1) - version_gem (~> 1.1, >= 1.1.9) cmdparse (3.0.7) commonmarker (2.9.0-x86_64-linux) - commonmarker-merge (7.1.0) - commonmarker (~> 2.2) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) concurrent-ruby (1.3.8) date (3.5.1) debug (1.11.1) @@ -147,10 +299,6 @@ GEM delegate (0.6.1) diff-lcs (1.6.2) diffy (3.4.4) - dotenv-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) dry-configurable (1.4.0) dry-core (~> 1.0) zeitwerk (~> 2.6) @@ -205,6 +353,8 @@ GEM kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) + kettle-drift (1.0.6) + version_gem (~> 1.1, >= 1.1.14) kettle-rb (0.1.5) kettle-soup-cover (3.0.4) kettle-wash (~> 0.1, >= 0.1.0) @@ -228,19 +378,11 @@ GEM version_gem (~> 1.1, >= 1.1.14) kramdown (2.5.2) rexml (>= 3.4.4) - kramdown-merge (7.1.0) - kramdown (~> 2.5) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) kramdown-parser-gfm (1.1.0) kramdown (~> 2.0) language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) - markdown-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) markly (0.16.0) mutex_m (0.3.0) nokogiri (1.19.4-x86_64-linux-gnu) @@ -259,18 +401,9 @@ GEM prettyprint prettyprint (0.2.0) prism (1.9.0) - prism-merge (7.1.0) - prism (~> 1.6) - ruby-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) psych (5.4.0) date stringio - psych-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - yaml-merge (= 7.1.0) public_suffix (7.0.5) racc (1.8.1) rainbow (3.1.1) @@ -279,11 +412,6 @@ GEM logger prism (>= 1.6.0) tsort - rbs-merge (7.1.0) - ast-merge (= 7.1.0) - rbs (>= 3.10) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) rdoc (6.17.0) erb psych (>= 4.0.0) @@ -407,10 +535,6 @@ GEM lint_roller (~> 1.1) rubocop (~> 1.72, >= 1.72.1) rubocop-ast (>= 1.44.0, < 2.0) - ruby-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) ruby-progressbar (1.13.0) ruby_engine (2.0.3) ruby_version (1.0.3) @@ -470,18 +594,11 @@ GEM token-resolver (2.0.5) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.14) - toml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) + toml (0.3.0) + parslet (>= 1.8.0, < 3.0.0) toml-rb (4.2.0) citrus (~> 3.0, > 3.0) racc (~> 1.7) - tree_haver (7.1.0) - citrus (~> 3.0) - parslet (~> 2.0) - tree_sitter_language_pack (>= 1.13.2, < 2.0) - version_gem (~> 1.1, >= 1.1.9) tree_sitter_language_pack (1.13.3-x86_64-linux) sorbet-runtime (~> 0.5) tsort (0.2.0) @@ -499,10 +616,6 @@ GEM kramdown (>= 2.4, < 3) kramdown-parser-gfm (~> 1.1) version_gem (~> 1.1, >= 1.1.13) - yaml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) yard (0.9.45) yard-fence (0.9.6) rdoc (>= 6.11, < 8) @@ -531,12 +644,21 @@ DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) appraisal2-rubocop (~> 1.0, >= 1.0.0) + ast-crispr! + ast-crispr-markdown-markly! + ast-crispr-ruby-prism! ast-merge! ast-merge-git! + ast-template! + bash-merge! benchmark (~> 0.5, >= 0.5.0) + binary-merge! bundler-audit (~> 0.9.3) cgi (~> 0.5) + citrus-toml-merge! + commonmarker-merge! debug (>= 1.1) + dotenv-merge! erb (~> 6.0, >= 6.0.6) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.0) @@ -544,17 +666,24 @@ DEPENDENCIES irb (~> 1.17) json-merge! kettle-dev (~> 2.0, >= 2.2.25) + kettle-drift (~> 1.0, >= 1.0.6) kettle-jem! kettle-soup-cover (~> 3.0, >= 3.0.3) kettle-test (~> 2.0, >= 2.0.9) kramdown (~> 2.5, >= 2.5.2) + kramdown-merge! kramdown-parser-gfm (~> 1.1) + markdown-merge! markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) + parslet-toml-merge! plain-merge! + prism-merge! + psych-merge! rake (~> 13.0) rbs (>= 3.0) + rbs-merge! rdoc (~> 6.11) reek (~> 6.5, >= 6.5.0) require_bench (~> 1.0, >= 1.0.4) @@ -565,20 +694,27 @@ DEPENDENCIES rubocop-on-rbs (~> 2.0, >= 2.0.0) rubocop-packaging (~> 0.6, >= 0.6.0) rubocop-ruby3_2 (~> 3.0, >= 3.0.6) + ruby-merge! ruby-progressbar (~> 1.13) + rust-merge! smorg-rb! standard (~> 1.56, >= 1.56.0) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) + toml-merge! + tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) + typescript-merge! webrick (~> 1.9) yaml-converter (~> 0.2, >= 0.2.3) + yaml-merge! yard (~> 0.9, >= 0.9.45) yard-fence (~> 0.9, >= 0.9.6) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) yard-timekeeper (~> 0.2, >= 0.2.4) yard-yaml (~> 0.2, >= 0.2.3) + zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af @@ -591,10 +727,12 @@ CHECKSUMS ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) ast-merge-git (7.1.0) + ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd + binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 @@ -628,6 +766,7 @@ CHECKSUMS json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 json-merge (7.1.0) kettle-dev (2.3.9) + kettle-drift (1.0.6) sha256=46eda08fa4411d1f3c6682a95eef1c9df4e94611b3949f49d4c7b43c0ed356a3 kettle-jem (7.1.0) kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f kettle-soup-cover (3.0.4) @@ -651,6 +790,7 @@ CHECKSUMS parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 + parslet-toml-merge (7.1.0) plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 @@ -702,6 +842,7 @@ CHECKSUMS ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 + rust-merge (7.1.0) service_actor (3.9.4) sha256=e63b523630b9a7e62959b2a90113b08d2565b5de9c148557b281ef847c9539ce silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 @@ -724,12 +865,14 @@ CHECKSUMS timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.5) sha256=b852f924287ffb58a440856e862b056c8ad97e74b4b2526cee43e0771f40c25c + toml (0.3.0) sha256=0a91d0f76a9036e84e44f95693b12f58d358c1df3ac8e3b5271f2056ecc6e4b9 toml-merge (7.1.0) toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 + typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 @@ -743,6 +886,7 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 + zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH From 8e39e56ac628b7b7b8d80f991e6906f9dd947722 Mon Sep 17 00:00:00 2001 From: "Peter H. Boling" Date: Tue, 21 Jul 2026 18:29:54 -0600 Subject: [PATCH 176/188] =?UTF-8?q?=F0=9F=90=9B=20Run=20dep-heads=20direct?= =?UTF-8?q?ly=20from=20generated=20gemfile?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gems/kettle-jem/.rubocop_gradual.lock | 2 +- gems/kettle-jem/CHANGELOG.md | 11 ++-- .../.github/workflows/dep-heads.yml.example | 55 ++++++++----------- .../appraisals_and_gemfile_template_spec.rb | 18 ++++-- 4 files changed, 42 insertions(+), 44 deletions(-) diff --git a/gems/kettle-jem/.rubocop_gradual.lock b/gems/kettle-jem/.rubocop_gradual.lock index 79f3e3e25..2458aa725 100644 --- a/gems/kettle-jem/.rubocop_gradual.lock +++ b/gems/kettle-jem/.rubocop_gradual.lock @@ -44,7 +44,7 @@ [3, 1, 67, "RSpec/SpecFilePathFormat: Spec path should end with `kettle/jem*appraisal_helpers_and_template_tokens*_spec.rb`.", 1438226331], [3, 29, 39, "RSpec/DescribeMethod: The second argument to describe should be the method being tested. '#instance' or '.class'.", 1357968070] ], - "spec/integration/appraisals_and_gemfile_template_spec.rb:3345248306": [ + "spec/integration/appraisals_and_gemfile_template_spec.rb:1424799502": [ [3, 1, 63, "RSpec/SpecFilePathFormat: Spec path should end with `kettle/jem*Appraisals_and_Gemfile_templating*_spec.rb`.", 2367084249], [3, 29, 35, "RSpec/DescribeMethod: The second argument to describe should be the method being tested. '#instance' or '.class'.", 1539510212] ], diff --git a/gems/kettle-jem/CHANGELOG.md b/gems/kettle-jem/CHANGELOG.md index 97247e832..9acb9171b 100644 --- a/gems/kettle-jem/CHANGELOG.md +++ b/gems/kettle-jem/CHANGELOG.md @@ -54,9 +54,9 @@ Please file a bug if you notice a violation of semantic versioning. per-workflow keys so `kettle-test` / `turbo_tests2` can reuse timing data across MRI, JRuby, TruffleRuby, coverage, heads, dep-heads, and framework matrix runs. -- Generated dep-heads workflows now document why TruffleRuby runs directly from - `gemfiles/dep_heads.gemfile`, making that generated Appraisal file required - checked-in output for the workflow. +- Generated dep-heads workflows now document why every engine job runs directly + from `gemfiles/dep_heads.gemfile`, making that generated Appraisal file + required checked-in output for the workflow. - JRuby 9.2 workflow templates now use the legacy-engine bundle install path instead of `ruby/setup-ruby` bundler caching so old Bundler does not fail setup against gem servers without the full legacy index. @@ -277,9 +277,10 @@ Please file a bug if you notice a violation of semantic versioning. `sig//**/*.rbs` content into the package-level signature and removes the nested files, including when the package-level signature is managed by a template entry. -- Generated dep-heads workflows now run current TruffleRuby directly from the +- Generated dep-heads workflows now run every engine job directly from the generated `gemfiles/dep_heads.gemfile`, avoiding `Appraisal.root.gemfile` - bootstrap failures with TruffleRuby's bundled RubyGems/Bundler and gem.coop. + bootstrap failures with RubyGems/Bundler and gem.coop before the dep-heads + appraisal is selected. - Packaged Rakefile templating now merges destination Rakefiles by default instead of replacing them wholesale, preserving project-specific rake tasks such as release or adapter test helpers. diff --git a/gems/kettle-jem/lib/kettle/jem/templates/.github/workflows/dep-heads.yml.example b/gems/kettle-jem/lib/kettle/jem/templates/.github/workflows/dep-heads.yml.example index e40acee7d..bd4371685 100644 --- a/gems/kettle-jem/lib/kettle/jem/templates/.github/workflows/dep-heads.yml.example +++ b/gems/kettle-jem/lib/kettle/jem/templates/.github/workflows/dep-heads.yml.example @@ -42,6 +42,13 @@ jobs: - ruby: "ruby" appraisal: "dep-heads" exec_cmd: "{KJ|CI:EXEC_CMD}" + # Run directly from the generated appraisal Gemfile so setup-ruby + # does not bootstrap Appraisal.root.gemfile against dependency + # sources before this dep-heads appraisal is selected. + # This makes gemfiles/dep_heads.gemfile required checked-in output + # for repositories using this generated workflow. + bundle_gemfile: "gemfiles/dep_heads.gemfile" + direct_bundle: true rubygems: latest bundler: latest @@ -61,20 +68,6 @@ jobs: bundler: ${{ matrix.bundler }} bundler-cache: true - - name: "[Attempt 1] Appraisal for ${{ matrix.ruby }}@${{ matrix.appraisal }}" - id: bundleAppraisalAttempt1 - if: ${{ !env.ACT }} - run: bundle exec appraisal ${{ matrix.appraisal }} install - # Continue to the next step on failure - continue-on-error: true - - # Effectively an automatic retry of the previous step. - - name: "[Attempt 2] Appraisal for ${{ matrix.ruby }}@${{ matrix.appraisal }}" - id: bundleAppraisalAttempt2 - # If bundleAppraisalAttempt1 failed, try again here; Otherwise skip. - if: ${{ !env.ACT && steps.bundleAppraisalAttempt1.outcome == 'failure' }} - run: bundle exec appraisal ${{ matrix.appraisal }} install - - name: Restore RSpec status log if: "${{!env.ACT}}" uses: actions/cache@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0 @@ -85,9 +78,9 @@ jobs: rspec-status-dep-heads-${{matrix.ruby}}-${{matrix.appraisal}}-${{hashFiles('**/Gemfile.lock','Appraisal.root.gemfile','gemfiles/**/*.gemfile')}}- rspec-status-dep-heads-${{matrix.ruby}}-${{matrix.appraisal}}- - - name: Tests for ${{ matrix.ruby }} via Appraisal and ${{ matrix.exec_cmd }} + - name: Tests for ${{ matrix.ruby }} via ${{ matrix.exec_cmd }} if: ${{ !env.ACT }} - run: bundle exec appraisal ${{ matrix.appraisal }} bundle exec ${{ matrix.exec_cmd }} + run: bundle exec ${{ matrix.exec_cmd }} truffleruby: if: "(github.event_name != 'push' || (!contains(github.event.head_commit.message, '[ci skip]') && !contains(github.event.head_commit.message, '[skip ci]'))) && (github.event_name != 'pull_request' || startsWith(github.head_ref, 'engines/') || startsWith(github.head_ref, 'truffleruby/'))" @@ -103,9 +96,9 @@ jobs: - ruby: "truffleruby" appraisal: "dep-heads" exec_cmd: "{KJ|CI:EXEC_CMD}" - # TruffleRuby's bundled RubyGems/Bundler path cannot reliably - # bootstrap Appraisal against all configured gem servers here. - # Run directly from the generated appraisal Gemfile instead. + # Run directly from the generated appraisal Gemfile so setup-ruby + # does not bootstrap Appraisal.root.gemfile against dependency + # sources before this dep-heads appraisal is selected. # This makes gemfiles/dep_heads.gemfile required checked-in output # for repositories using this generated workflow. bundle_gemfile: "gemfiles/dep_heads.gemfile" @@ -149,7 +142,7 @@ jobs: runs-on: ubuntu-latest continue-on-error: ${{ matrix.experimental || endsWith(matrix.ruby, 'head') }} env: - BUNDLE_GEMFILE: ${{ github.workspace }}/Appraisal.root.gemfile + BUNDLE_GEMFILE: ${{ github.workspace }}/${{ matrix.bundle_gemfile || 'Appraisal.root.gemfile' }} strategy: fail-fast: true matrix: @@ -157,6 +150,13 @@ jobs: - ruby: "jruby" appraisal: "dep-heads" exec_cmd: "{KJ|CI:EXEC_CMD}" + # Run directly from the generated appraisal Gemfile so setup-ruby + # does not bootstrap Appraisal.root.gemfile against dependency + # sources before this dep-heads appraisal is selected. + # This makes gemfiles/dep_heads.gemfile required checked-in output + # for repositories using this generated workflow. + bundle_gemfile: "gemfiles/dep_heads.gemfile" + direct_bundle: true rubygems: default bundler: default experimental: true @@ -177,17 +177,6 @@ jobs: bundler: ${{ matrix.bundler }} bundler-cache: true - - name: "[Attempt 1] Appraisal for ${{ matrix.ruby }}@${{ matrix.appraisal }}" - id: bundleAppraisalAttempt1 - if: ${{ !env.ACT }} - run: bundle exec appraisal ${{ matrix.appraisal }} install - continue-on-error: true - - - name: "[Attempt 2] Appraisal for ${{ matrix.ruby }}@${{ matrix.appraisal }}" - id: bundleAppraisalAttempt2 - if: ${{ !env.ACT && steps.bundleAppraisalAttempt1.outcome == 'failure' }} - run: bundle exec appraisal ${{ matrix.appraisal }} install - - name: Restore RSpec status log if: "${{!env.ACT}}" uses: actions/cache@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0 @@ -198,6 +187,6 @@ jobs: rspec-status-dep-heads-${{matrix.ruby}}-${{matrix.appraisal}}-${{hashFiles('**/Gemfile.lock','Appraisal.root.gemfile','gemfiles/**/*.gemfile')}}- rspec-status-dep-heads-${{matrix.ruby}}-${{matrix.appraisal}}- - - name: Tests for ${{ matrix.ruby }} via Appraisal and ${{ matrix.exec_cmd }} + - name: Tests for ${{ matrix.ruby }} via ${{ matrix.exec_cmd }} if: ${{ !env.ACT }} - run: bundle exec appraisal ${{ matrix.appraisal }} bundle exec ${{ matrix.exec_cmd }} + run: bundle exec ${{ matrix.exec_cmd }} diff --git a/gems/kettle-jem/spec/integration/appraisals_and_gemfile_template_spec.rb b/gems/kettle-jem/spec/integration/appraisals_and_gemfile_template_spec.rb index 712a0f1e9..c5bcd032d 100644 --- a/gems/kettle-jem/spec/integration/appraisals_and_gemfile_template_spec.rb +++ b/gems/kettle-jem/spec/integration/appraisals_and_gemfile_template_spec.rb @@ -575,15 +575,23 @@ end end - it "runs TruffleRuby dep-heads directly from the generated appraisal gemfile" do + it "runs every dep-heads job directly from the generated appraisal gemfile" do template = File.read(project_root.join("lib/kettle/jem/templates/.github/workflows/dep-heads.yml.example")) + workflow = YAML.safe_load(template, permitted_classes: [], aliases: true) + jobs = workflow.fetch("jobs") - expect(template).to include("truffleruby:") expect(template).to include("BUNDLE_GEMFILE: ${{ github.workspace }}/${{ matrix.bundle_gemfile || 'Appraisal.root.gemfile' }}") - expect(template).to include('bundle_gemfile: "gemfiles/dep_heads.gemfile"') - expect(template).to include("direct_bundle: true") - expect(template).to include("run: bundle exec appraisal ${{ matrix.appraisal }} bundle exec ${{ matrix.exec_cmd }}") + expect(template).not_to include("bundle exec appraisal ${{ matrix.appraisal }}") expect(template).to include("run: bundle exec ${{ matrix.exec_cmd }}") + + expect(jobs.keys).to include("ruby", "truffleruby", "jruby") + jobs.each_value do |job| + entry = job.fetch("strategy").fetch("matrix").fetch("include").first + + expect(entry.fetch("appraisal")).to eq("dep-heads") + expect(entry.fetch("bundle_gemfile")).to eq("gemfiles/dep_heads.gemfile") + expect(entry.fetch("direct_bundle")).to be(true) + end end it "serializes legacy engine setup-ruby workaround in generated CI workflows" do From 175ae98972dd5585fa720f0ba11ccc613536ef74 Mon Sep 17 00:00:00 2001 From: "Peter H. Boling" Date: Tue, 21 Jul 2026 18:37:44 -0600 Subject: [PATCH 177/188] =?UTF-8?q?=F0=9F=8E=A8=20Template=20bootstrap=20b?= =?UTF-8?q?y=20kettle-jem=20v7.1.0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gems/ast-crispr/.kettle-drift.lock | 60 ++- gems/ast-crispr/Gemfile | 40 ++ gems/ast-crispr/Gemfile.lock | 15 +- gems/ast-merge/.kettle-drift.lock | 60 ++- gems/ast-merge/Gemfile | 72 ++- gems/ast-merge/Gemfile.lock | 339 +++++++++++- gems/ast-merge/Rakefile | 18 +- .../gemfiles/modular/templating.gemfile | 12 +- .../gemfiles/modular/templating_local.gemfile | 44 +- gems/ast-merge/lib/ast/merge/version.rb | 2 +- gems/kettle-jem/Gemfile.lock | 4 + gems/ruby-merge/.kettle-drift.lock | 60 ++- gems/ruby-merge/.rubocop_gradual.lock | 391 -------------- gems/ruby-merge/Gemfile | 40 ++ gems/ruby-merge/Gemfile.lock | 30 +- gems/tree_haver/.rubocop_gradual.lock | 500 ------------------ gems/tree_haver/spec/spec_helper.rb | 10 +- 17 files changed, 670 insertions(+), 1027 deletions(-) delete mode 100644 gems/ruby-merge/.rubocop_gradual.lock delete mode 100644 gems/tree_haver/.rubocop_gradual.lock diff --git a/gems/ast-crispr/.kettle-drift.lock b/gems/ast-crispr/.kettle-drift.lock index 9a486b4b3..25b4603d6 100644 --- a/gems/ast-crispr/.kettle-drift.lock +++ b/gems/ast-crispr/.kettle-drift.lock @@ -4,7 +4,8 @@ "file": "Gemfile", "lines": [ 79, - 119 + 119, + 159 ] } ], @@ -13,7 +14,8 @@ "file": "Gemfile", "lines": [ 90, - 130 + 130, + 170 ] } ], @@ -22,7 +24,8 @@ "file": "Gemfile", "lines": [ 80, - 120 + 120, + 160 ] } ], @@ -31,7 +34,8 @@ "file": "Gemfile", "lines": [ 92, - 132 + 132, + 172 ] } ], @@ -40,7 +44,8 @@ "file": "Gemfile", "lines": [ 95, - 135 + 135, + 175 ] } ], @@ -49,7 +54,8 @@ "file": "Gemfile", "lines": [ 81, - 121 + 121, + 161 ] } ], @@ -59,7 +65,8 @@ "lines": [ 59, 99, - 139 + 139, + 179 ] } ], @@ -68,7 +75,8 @@ "file": "Gemfile", "lines": [ 100, - 140 + 140, + 180 ] } ], @@ -78,7 +86,8 @@ "lines": [ 42, 86, - 126 + 126, + 166 ] } ], @@ -87,7 +96,8 @@ "file": "Gemfile", "lines": [ 109, - 149 + 149, + 189 ] } ], @@ -97,7 +107,8 @@ "lines": [ 34, 78, - 118 + 118, + 158 ] } ], @@ -107,7 +118,8 @@ "lines": [ 68, 108, - 148 + 148, + 188 ] } ], @@ -116,7 +128,8 @@ "file": "Gemfile", "lines": [ 84, - 124 + 124, + 164 ] } ], @@ -126,7 +139,8 @@ "lines": [ 47, 91, - 131 + 131, + 171 ] } ], @@ -136,7 +150,8 @@ "lines": [ 43, 87, - 127 + 127, + 167 ] } ], @@ -145,7 +160,8 @@ "file": "Gemfile", "lines": [ 85, - 125 + 125, + 165 ] } ], @@ -154,7 +170,8 @@ "file": "Gemfile", "lines": [ 102, - 142 + 142, + 182 ] } ], @@ -163,7 +180,8 @@ "file": "Gemfile", "lines": [ 101, - 141 + 141, + 181 ] } ], @@ -172,7 +190,8 @@ "file": "Gemfile", "lines": [ 96, - 136 + 136, + 176 ] } ], @@ -181,7 +200,8 @@ "file": "Gemfile", "lines": [ 105, - 145 + 145, + 185 ] } ] diff --git a/gems/ast-crispr/Gemfile b/gems/ast-crispr/Gemfile index 845a2220b..a4d167f58 100644 --- a/gems/ast-crispr/Gemfile +++ b/gems/ast-crispr/Gemfile @@ -151,6 +151,46 @@ if direct_sibling_gems.any? && end end +if direct_sibling_gems.any? && + (direct_sibling_local || + ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) + direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') + direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) + begin + nomono_activation_requirements = nomono_requirements + nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) + if File.file?(nomono_lockfile) + nomono_locked_spec = Bundler::LockfileParser + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } + nomono_locked = nomono_locked_spec && + Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked + end + Kernel.send(:gem, 'nomono', *nomono_activation_requirements) + require 'nomono/bundler' + ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local + + eval_nomono_gems( + gems: direct_sibling_gems, + prefix: 'STRUCTUREDMERGE', + path_env: 'STRUCTUREDMERGE_DEV', + root: %w[src my structuredmerge] + ) + rescue LoadError + warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' + ensure + if direct_sibling_templating && !direct_sibling_local + if direct_sibling_dev_was_set + ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original + else + ENV.delete('STRUCTUREDMERGE_DEV') + end + end + end +end + # Use released TSLP with the Ruby ABI platform-gem fix. gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' diff --git a/gems/ast-crispr/Gemfile.lock b/gems/ast-crispr/Gemfile.lock index c358a8a1b..e964cc06b 100644 --- a/gems/ast-crispr/Gemfile.lock +++ b/gems/ast-crispr/Gemfile.lock @@ -6,6 +6,15 @@ PATH service_actor (~> 3.9) version_gem (~> 1.1, >= 1.1.9) +PATH + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/ast-merge + specs: + ast-merge (7.1.0) + benchmark + token-resolver (~> 2.0, >= 2.0.4) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + GEM remote: https://gem.coop/ specs: @@ -21,11 +30,6 @@ GEM rubocop (>= 1.0) version_gem (~> 1.1, >= 1.1.14) ast (2.4.3) - ast-merge (7.1.0) - benchmark - token-resolver (~> 2.0, >= 2.0.4) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) backports (3.25.3) benchmark (0.5.0) bigdecimal (4.1.2) @@ -386,6 +390,7 @@ DEPENDENCIES appraisal2 (~> 3.0, >= 3.0.6) appraisal2-rubocop (~> 1.0, >= 1.0.0) ast-crispr! + ast-merge! benchmark (~> 0.5, >= 0.5.0) bundler-audit (~> 0.9.3) cgi (~> 0.5) diff --git a/gems/ast-merge/.kettle-drift.lock b/gems/ast-merge/.kettle-drift.lock index 4c783827a..e8ac7ef1f 100644 --- a/gems/ast-merge/.kettle-drift.lock +++ b/gems/ast-merge/.kettle-drift.lock @@ -4,7 +4,8 @@ "file": "Gemfile", "lines": [ 79, - 119 + 119, + 159 ] } ], @@ -13,7 +14,8 @@ "file": "Gemfile", "lines": [ 90, - 130 + 130, + 170 ] } ], @@ -22,7 +24,8 @@ "file": "Gemfile", "lines": [ 80, - 120 + 120, + 160 ] } ], @@ -31,7 +34,8 @@ "file": "Gemfile", "lines": [ 92, - 132 + 132, + 172 ] } ], @@ -40,7 +44,8 @@ "file": "Gemfile", "lines": [ 95, - 135 + 135, + 175 ] } ], @@ -49,7 +54,8 @@ "file": "Gemfile", "lines": [ 81, - 121 + 121, + 161 ] } ], @@ -59,7 +65,8 @@ "lines": [ 59, 99, - 139 + 139, + 179 ] } ], @@ -68,7 +75,8 @@ "file": "Gemfile", "lines": [ 100, - 140 + 140, + 180 ] } ], @@ -78,7 +86,8 @@ "lines": [ 42, 86, - 126 + 126, + 166 ] } ], @@ -87,7 +96,8 @@ "file": "Gemfile", "lines": [ 109, - 149 + 149, + 189 ] } ], @@ -97,7 +107,8 @@ "lines": [ 34, 78, - 118 + 118, + 158 ] } ], @@ -107,7 +118,8 @@ "lines": [ 68, 108, - 148 + 148, + 188 ] } ], @@ -116,7 +128,8 @@ "file": "Gemfile", "lines": [ 84, - 124 + 124, + 164 ] } ], @@ -126,7 +139,8 @@ "lines": [ 47, 91, - 131 + 131, + 171 ] } ], @@ -136,7 +150,8 @@ "lines": [ 43, 87, - 127 + 127, + 167 ] } ], @@ -145,7 +160,8 @@ "file": "Gemfile", "lines": [ 85, - 125 + 125, + 165 ] } ], @@ -154,7 +170,8 @@ "file": "Gemfile", "lines": [ 102, - 142 + 142, + 182 ] } ], @@ -163,7 +180,8 @@ "file": "Gemfile", "lines": [ 101, - 141 + 141, + 181 ] } ], @@ -172,7 +190,8 @@ "file": "Gemfile", "lines": [ 96, - 136 + 136, + 176 ] } ], @@ -181,7 +200,8 @@ "file": "Gemfile", "lines": [ 105, - 145 + 145, + 185 ] } ], diff --git a/gems/ast-merge/Gemfile b/gems/ast-merge/Gemfile index acece68fe..c5d2228f5 100644 --- a/gems/ast-merge/Gemfile +++ b/gems/ast-merge/Gemfile @@ -6,7 +6,7 @@ # kettle-jem will then preserve content between those markers across template runs. # kettle-jem:unfreeze -source 'https://gem.coop' +source "https://gem.coop" git_source(:codeberg) { |repo_name| "https://codeberg.org/#{repo_name}" } git_source(:gitlab) { |repo_name| "https://gitlab.com/#{repo_name}" } @@ -19,17 +19,61 @@ git_source(:gitlab) { |repo_name| "https://gitlab.com/#{repo_name}" } gemspec # Local workspace dependency wiring for *_local.gemfile overrides -nomono_requirements = ['~> 1.0', '>= 1.0.8'] -gem 'nomono', *nomono_requirements, require: false # ruby >= 2.2 +nomono_requirements = ["~> 1.0", ">= 1.0.8"] +gem "nomono", *nomono_requirements, require: false # ruby >= 2.2 # Direct sibling dependencies (env-switched via STRUCTUREDMERGE_DEV) direct_sibling_gems = %w[ tree_haver ] -direct_sibling_dev = ENV.fetch('STRUCTUREDMERGE_DEV', '') +direct_sibling_dev = ENV.fetch("STRUCTUREDMERGE_DEV", "") direct_sibling_local = !direct_sibling_dev.empty? && !%w[false 0 no off].include?(direct_sibling_dev.downcase) -direct_sibling_templating = ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? +direct_sibling_templating = ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? + +if direct_sibling_gems.any? && + (direct_sibling_local || + ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero?) + direct_sibling_dev_was_set = ENV.key?("STRUCTUREDMERGE_DEV") + direct_sibling_dev_original = ENV.fetch("STRUCTUREDMERGE_DEV", nil) + begin + nomono_activation_requirements = nomono_requirements + nomono_lockfile = File.expand_path("Gemfile.lock", __dir__) + if File.file?(nomono_lockfile) + nomono_locked_spec = Bundler::LockfileParser + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == "nomono" } + nomono_locked = nomono_locked_spec && + Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) + if nomono_locked + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] + end + end + Kernel.send(:gem, "nomono", *nomono_activation_requirements) + require "nomono/bundler" + if direct_sibling_templating && !direct_sibling_local + ENV["STRUCTUREDMERGE_DEV"] = File.expand_path("..", __dir__) + end + + eval_nomono_gems( + gems: direct_sibling_gems, + prefix: "STRUCTUREDMERGE", + path_env: "STRUCTUREDMERGE_DEV", + root: ["src", "my", "structuredmerge"] + ) + rescue LoadError + warn "Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies." + ensure + if direct_sibling_templating && !direct_sibling_local + if direct_sibling_dev_was_set + ENV["STRUCTUREDMERGE_DEV"] = direct_sibling_dev_original + else + ENV.delete("STRUCTUREDMERGE_DEV") + end + end + end +end if direct_sibling_gems.any? && (direct_sibling_local || @@ -152,28 +196,28 @@ if direct_sibling_gems.any? && end # Use released TSLP with the Ruby ABI platform-gem fix. -gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' +gem "tree_sitter_language_pack", "~> 1.13", ">= 1.13.3" # Templating (env-switched: STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local paths) -eval_gemfile 'gemfiles/modular/templating.gemfile' if ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? +eval_gemfile "gemfiles/modular/templating.gemfile" if ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? # Debugging -eval_gemfile 'gemfiles/modular/debug.gemfile' +eval_gemfile "gemfiles/modular/debug.gemfile" # Code Coverage (env-switched: KETTLE_DEV_DEV=true for local paths) -eval_gemfile 'gemfiles/modular/coverage.gemfile' +eval_gemfile "gemfiles/modular/coverage.gemfile" # Linting -eval_gemfile 'gemfiles/modular/style.gemfile' +eval_gemfile "gemfiles/modular/style.gemfile" # Documentation -eval_gemfile 'gemfiles/modular/documentation.gemfile' +eval_gemfile "gemfiles/modular/documentation.gemfile" # Optional -eval_gemfile 'gemfiles/modular/optional.gemfile' +eval_gemfile "gemfiles/modular/optional.gemfile" ### Std Lib Extracted Gems -eval_gemfile 'gemfiles/modular/x_std_libs.gemfile' +eval_gemfile "gemfiles/modular/x_std_libs.gemfile" # See unlocked_deps appraisal for more details on irb inclusion -gem 'irb', '~> 1.17' # ruby >= 2.7 +gem "irb", "~> 1.17" # ruby >= 2.7 diff --git a/gems/ast-merge/Gemfile.lock b/gems/ast-merge/Gemfile.lock index 92acd0203..55b2bd060 100644 --- a/gems/ast-merge/Gemfile.lock +++ b/gems/ast-merge/Gemfile.lock @@ -7,6 +7,265 @@ PATH tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly + specs: + ast-crispr-markdown-markly (7.1.0) + ast-crispr (= 7.1.0) + markly-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism + specs: + ast-crispr-ruby-prism (7.1.0) + ast-crispr (= 7.1.0) + prism-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr + specs: + ast-crispr (7.1.0) + ast-merge (= 7.1.0) + service_actor (~> 3.9) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git + specs: + ast-merge-git (7.1.0) + ast-merge (= 7.1.0) + json-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template + specs: + ast-template (7.1.0) + ast-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge + specs: + bash-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge + specs: + binary-merge (7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge + specs: + citrus-toml-merge (7.1.0) + toml-merge (= 7.1.0) + toml-rb (~> 4.1) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge + specs: + commonmarker-merge (7.1.0) + commonmarker (~> 2.2) + markdown-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge + specs: + dotenv-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge + specs: + go-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge + specs: + json-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem + specs: + kettle-jem (7.1.0) + addressable (>= 2.8, < 3) + ast-crispr-markdown-markly (= 7.1.0) + ast-crispr-ruby-prism (= 7.1.0) + ast-merge (= 7.1.0) + bash-merge (= 7.1.0) + citrus-toml-merge (= 7.1.0) + commonmarker-merge (= 7.1.0) + dotenv-merge (= 7.1.0) + json-merge (= 7.1.0) + kettle-dev (~> 2.3, >= 2.3.5) + kettle-rb (~> 0.1, >= 0.1.4) + kramdown-merge (= 7.1.0) + markdown-merge (= 7.1.0) + markly-merge (= 7.1.0) + prism-merge (= 7.1.0) + psych-merge (= 7.1.0) + rbs (>= 3.10) + rbs-merge (= 7.1.0) + ruby-merge (= 7.1.0) + token-resolver (~> 2.0, >= 2.0.4) + toml-merge (= 7.1.0) + toml-rb (~> 4.2) + tree_haver (= 7.1.0) + yaml-merge (= 7.1.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge + specs: + kramdown-merge (7.1.0) + kramdown (~> 2.5) + markdown-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge + specs: + markdown-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge + specs: + markly-merge (7.1.0) + markdown-merge (= 7.1.0) + markly (~> 0.9) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge + specs: + parslet-toml-merge (7.1.0) + toml (~> 0.3) + toml-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge + specs: + plain-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge + specs: + prism-merge (7.1.0) + prism (~> 1.6) + ruby-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge + specs: + psych-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + yaml-merge (= 7.1.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge + specs: + rbs-merge (7.1.0) + ast-merge (= 7.1.0) + rbs (>= 3.10) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge + specs: + ruby-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge + specs: + rust-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb + specs: + smorg-rb (7.1.0) + ast-merge (= 7.1.0) + ast-merge-git (= 7.1.0) + diff-lcs (~> 1.5) + go-merge (= 7.1.0) + json-merge (= 7.1.0) + kettle-jem (= 7.1.0) + markly-merge (= 7.1.0) + plain-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge + specs: + toml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver + specs: + tree_haver (7.1.0) + citrus (~> 3.0) + parslet (~> 2.0) + tree_sitter_language_pack (>= 1.13.2, < 2.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge + specs: + typescript-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge + specs: + yaml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge + specs: + zip-merge (7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + GEM remote: https://gem.coop/ specs: @@ -31,6 +290,7 @@ GEM cgi (0.5.2) citrus (3.0.2) cmdparse (3.0.7) + commonmarker (2.9.0-x86_64-linux) concurrent-ruby (1.3.8) date (3.5.1) debug (1.11.1) @@ -93,6 +353,8 @@ GEM kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) + kettle-drift (1.0.6) + version_gem (~> 1.1, >= 1.1.14) kettle-rb (0.1.5) kettle-soup-cover (3.0.4) kettle-wash (~> 0.1, >= 0.1.0) @@ -121,6 +383,7 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) + markly (0.16.0) mutex_m (0.3.0) nokogiri (1.19.4-aarch64-linux-gnu) racc (~> 1.4) @@ -283,6 +546,8 @@ GEM ruby-progressbar (1.13.0) ruby_engine (2.0.3) ruby_version (1.0.3) + service_actor (3.9.4) + zeitwerk (>= 1.0) silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) @@ -337,11 +602,11 @@ GEM token-resolver (2.0.5) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.14) - tree_haver (7.1.0) - citrus (~> 3.0) - parslet (~> 2.0) - tree_sitter_language_pack (>= 1.13.2, < 2.0) - version_gem (~> 1.1, >= 1.1.9) + toml (0.3.0) + parslet (>= 1.8.0, < 3.0.0) + toml-rb (4.2.0) + citrus (~> 3.0, > 3.0) + racc (~> 1.7) tree_sitter_language_pack (1.13.3-aarch64-linux) sorbet-runtime (~> 0.5) tree_sitter_language_pack (1.13.3-arm64-darwin) @@ -396,23 +661,45 @@ DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) appraisal2-rubocop (~> 1.0, >= 1.0.0) + ast-crispr! + ast-crispr-markdown-markly! + ast-crispr-ruby-prism! ast-merge! + ast-merge-git! + ast-template! + bash-merge! + binary-merge! bundler-audit (~> 0.9.3) cgi (~> 0.5) + citrus-toml-merge! + commonmarker-merge! debug (>= 1.1) + dotenv-merge! erb (~> 6.0, >= 6.0.6) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.0) + go-merge! irb (~> 1.17) + json-merge! kettle-dev (~> 2.0, >= 2.2.25) + kettle-drift (~> 1.0, >= 1.0.6) + kettle-jem! kettle-soup-cover (~> 3.0, >= 3.0.3) kettle-test (~> 2.0, >= 2.0.9) kramdown (~> 2.5, >= 2.5.2) + kramdown-merge! kramdown-parser-gfm (~> 1.1) + markdown-merge! + markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) + parslet-toml-merge! + plain-merge! + prism-merge! + psych-merge! rake (~> 13.0) rbs (>= 3.0) + rbs-merge! rdoc (~> 6.11) reek (~> 6.5, >= 6.5.0) require_bench (~> 1.0, >= 1.0.4) @@ -423,19 +710,27 @@ DEPENDENCIES rubocop-on-rbs (~> 2.0, >= 2.0.0) rubocop-packaging (~> 0.6, >= 0.6.0) rubocop-ruby3_2 (~> 3.0, >= 3.0.6) + ruby-merge! ruby-progressbar (~> 1.13) + rust-merge! + smorg-rb! standard (~> 1.56, >= 1.56.0) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) + toml-merge! + tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) + typescript-merge! webrick (~> 1.9) yaml-converter (~> 0.2, >= 0.2.3) + yaml-merge! yard (~> 0.9, >= 0.9.45) yard-fence (~> 0.9, >= 0.9.6) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) yard-timekeeper (~> 0.2, >= 0.2.4) yard-yaml (~> 0.2, >= 0.2.3) + zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af @@ -443,20 +738,31 @@ CHECKSUMS appraisal2 (3.2.0) sha256=ccd0b767ac4060cd7af6d16747459b6990f49c39c7b4fb1f7d1146b1e97c492f appraisal2-rubocop (1.0.0) sha256=b71410fbb014befda5340605a605b7f6f3f012739baf0acc5b4351b592c3258d ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 + ast-crispr (7.1.0) + ast-crispr-markdown-markly (7.1.0) + ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) + ast-merge-git (7.1.0) + ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 + bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd + binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 + citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 + commonmarker (2.9.0-x86_64-linux) + commonmarker-merge (7.1.0) concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 + dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -469,20 +775,28 @@ CHECKSUMS gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f + go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 + json-merge (7.1.0) kettle-dev (2.3.9) + kettle-drift (1.0.6) + kettle-jem (7.1.0) kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f kettle-soup-cover (3.0.4) kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa + kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 + markdown-merge (7.1.0) + markly (0.16.0) + markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-aarch64-linux-gnu) sha256=1269fb644a6de405057a53dd5c762b1209b43ca7424f839454d3dbc677c31a8f nokogiri (1.19.4-aarch64-linux-musl) sha256=35c65b9ce72b3bb03207bdbe7067915019dc18c1b9b59139684bd6690fdd01af @@ -496,15 +810,20 @@ CHECKSUMS parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 + parslet-toml-merge (7.1.0) + plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 + prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 + psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 + rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb @@ -539,15 +858,19 @@ CHECKSUMS rubocop-rspec_rails (2.32.0) sha256=4a0d641c72f6ebb957534f539d9d0a62c47abd8ce0d0aeee1ef4701e892a9100 rubocop-ruby3_2 (3.0.7) sha256=f53dd6d286fb05186214fc6ec116783e7f837030918e8931c05de773e98f8466 rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 + ruby-merge (7.1.0) ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 + rust-merge (7.1.0) + service_actor (3.9.4) silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed + smorg-rb (7.1.0) sorbet-runtime (0.6.13351) sha256=f8fee17c6e3edf835dc6823d26afb9a7c8969c6710d1fabe2fb43f4e0c15c64f standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b @@ -562,17 +885,22 @@ CHECKSUMS timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.5) sha256=b852f924287ffb58a440856e862b056c8ad97e74b4b2526cee43e0771f40c25c + toml (0.3.0) + toml-merge (7.1.0) + toml-rb (4.2.0) tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-aarch64-linux) sha256=55ffc7c87868cb45658338363d9eba51b4a8b0259aa88e4de368d2bd1d52fea4 tree_sitter_language_pack (1.13.3-arm64-darwin) sha256=bc2498db605f212a1dbd2465ed3f65190d7da786f6ed5d30fcf958121aeb4a5c tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 + typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 webrick (1.9.2) sha256=beb4a15fc474defed24a3bda4ffd88a490d517c9e4e6118c3edce59e45864131 yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 + yaml-merge (7.1.0) yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd @@ -580,6 +908,7 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 + zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH diff --git a/gems/ast-merge/Rakefile b/gems/ast-merge/Rakefile index 339c9a3cb..6b4e21dec 100644 --- a/gems/ast-merge/Rakefile +++ b/gems/ast-merge/Rakefile @@ -130,23 +130,23 @@ end ### DUPLICATE DRIFT TASKS begin - require 'kettle/drift' + require "kettle/drift" Kettle::Drift.install_tasks rescue LoadError - desc('(stub) kettle:drift:check is unavailable') - task('kettle:drift:check') do + desc("(stub) kettle:drift:check is unavailable") + task("kettle:drift:check") do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc('(stub) kettle:drift:update is unavailable') - task('kettle:drift:update') do + desc("(stub) kettle:drift:update is unavailable") + task("kettle:drift:update") do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc('(stub) kettle:drift:force_update is unavailable') - task('kettle:drift:force_update') do + desc("(stub) kettle:drift:force_update is unavailable") + task("kettle:drift:force_update") do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc('(stub) kettle:drift is unavailable') - task('kettle:drift' => 'kettle:drift:update') + desc("(stub) kettle:drift is unavailable") + task("kettle:drift" => "kettle:drift:update") end ### TEMPLATING TASKS diff --git a/gems/ast-merge/gemfiles/modular/templating.gemfile b/gems/ast-merge/gemfiles/modular/templating.gemfile index a672de184..47138ffbb 100644 --- a/gems/ast-merge/gemfiles/modular/templating.gemfile +++ b/gems/ast-merge/gemfiles/modular/templating.gemfile @@ -1,18 +1,18 @@ # frozen_string_literal: true -structuredmerge_remote = ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false').zero? -kettle_remote = ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? +structuredmerge_remote = ENV.fetch("STRUCTUREDMERGE_DEV", "false").casecmp("false").zero? +kettle_remote = ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false").zero? if structuredmerge_remote # Parser dependencies for released installs. - gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' + gem "tree_sitter_language_pack", "~> 1.13", ">= 1.13.3" # Merge recipes for released installs. - gem 'kettle-jem', '>= 7.0' + gem "kettle-jem", ">= 7.0" end if kettle_remote # Template/plugin checks for released installs. - gem 'kettle-drift', '~> 1.0', '>= 1.0.6', require: false + gem "kettle-drift", "~> 1.0", ">= 1.0.6", require: false end # Set STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local development with path-based dependencies. @@ -21,4 +21,4 @@ end # # Set KETTLE_DEV_DEV=/path/to/my for local development with Kettle plugin gems. # When false (default / CI), released Kettle plugin gems are used. -eval_gemfile 'templating_local.gemfile' unless structuredmerge_remote && kettle_remote +eval_gemfile "templating_local.gemfile" unless structuredmerge_remote && kettle_remote diff --git a/gems/ast-merge/gemfiles/modular/templating_local.gemfile b/gems/ast-merge/gemfiles/modular/templating_local.gemfile index cd50e9a1e..efcd3bad8 100644 --- a/gems/ast-merge/gemfiles/modular/templating_local.gemfile +++ b/gems/ast-merge/gemfiles/modular/templating_local.gemfile @@ -12,19 +12,21 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] -nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) +nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] +nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == "nomono" } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + if nomono_locked + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] + end end -Kernel.send(:gem, 'nomono', *nomono_activation_requirements) -require 'nomono/bundler' +Kernel.send(:gem, "nomono", *nomono_activation_requirements) +require "nomono/bundler" structuredmerge_local_gems = %w[ tree_haver @@ -67,25 +69,25 @@ structuredmerge_local_gems_to_eval = structuredmerge_local_gems - %w[ast-merge] kettle_dev_local_gems_to_eval = kettle_dev_local_gems - %w[ast-merge] - declared_gems platform :mri do - if ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false') != 0 + if ENV.fetch("STRUCTUREDMERGE_DEV", "false").casecmp("false") != 0 eval_nomono_gems( gems: structuredmerge_local_gems_to_eval, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - vendored_gems_env: 'VENDORED_GEMS', - vendor_gem_dir_env: 'VENDOR_GEM_DIR', - debug_env: 'STRUCTUREDMERGE_DEBUG' + prefix: "STRUCTUREDMERGE", + path_env: "STRUCTUREDMERGE_DEV", + vendored_gems_env: "VENDORED_GEMS", + vendor_gem_dir_env: "VENDOR_GEM_DIR", + debug_env: "STRUCTUREDMERGE_DEBUG" ) end - if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false') != 0 + if ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false") != 0 eval_nomono_gems( gems: kettle_dev_local_gems_to_eval, - prefix: 'KETTLE_DEV', - path_env: 'KETTLE_DEV_DEV', - vendored_gems_env: 'VENDORED_GEMS', - vendor_gem_dir_env: 'VENDOR_GEM_DIR', - debug_env: 'KETTLE_DEV_DEBUG' + prefix: "KETTLE_DEV", + path_env: "KETTLE_DEV_DEV", + vendored_gems_env: "VENDORED_GEMS", + vendor_gem_dir_env: "VENDOR_GEM_DIR", + debug_env: "KETTLE_DEV_DEBUG" ) end end diff --git a/gems/ast-merge/lib/ast/merge/version.rb b/gems/ast-merge/lib/ast/merge/version.rb index 6e7dc90f7..3ef823f4d 100644 --- a/gems/ast-merge/lib/ast/merge/version.rb +++ b/gems/ast-merge/lib/ast/merge/version.rb @@ -3,7 +3,7 @@ module Ast module Merge module Version - VERSION = '7.1.0' + VERSION = "7.1.0" end VERSION = Version::VERSION # Traditional Constant Location end diff --git a/gems/kettle-jem/Gemfile.lock b/gems/kettle-jem/Gemfile.lock index 13317435f..a30eaf9ea 100644 --- a/gems/kettle-jem/Gemfile.lock +++ b/gems/kettle-jem/Gemfile.lock @@ -266,6 +266,8 @@ GEM kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) + kettle-drift (1.0.6) + version_gem (~> 1.1, >= 1.1.14) kettle-rb (0.1.5) kettle-soup-cover (3.0.4) kettle-wash (~> 0.1, >= 0.1.0) @@ -567,6 +569,7 @@ DEPENDENCIES gitmoji-regex (~> 2.0, >= 2.0.4) irb (~> 1.17) json-merge! + kettle-drift (~> 1.0, >= 1.0.6) kettle-jem! kettle-soup-cover (~> 3.0, >= 3.0.3) kettle-test (~> 2.0, >= 2.0.12) @@ -656,6 +659,7 @@ CHECKSUMS json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 json-merge (7.1.0) kettle-dev (2.3.9) + kettle-drift (1.0.6) sha256=46eda08fa4411d1f3c6682a95eef1c9df4e94611b3949f49d4c7b43c0ed356a3 kettle-jem (7.1.0) kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f kettle-soup-cover (3.0.4) diff --git a/gems/ruby-merge/.kettle-drift.lock b/gems/ruby-merge/.kettle-drift.lock index 7cc6a5131..bd0f9d183 100644 --- a/gems/ruby-merge/.kettle-drift.lock +++ b/gems/ruby-merge/.kettle-drift.lock @@ -4,7 +4,8 @@ "file": "Gemfile", "lines": [ 80, - 120 + 120, + 160 ] } ], @@ -13,7 +14,8 @@ "file": "Gemfile", "lines": [ 91, - 131 + 131, + 171 ] } ], @@ -22,7 +24,8 @@ "file": "Gemfile", "lines": [ 81, - 121 + 121, + 161 ] } ], @@ -31,7 +34,8 @@ "file": "Gemfile", "lines": [ 93, - 133 + 133, + 173 ] } ], @@ -40,7 +44,8 @@ "file": "Gemfile", "lines": [ 96, - 136 + 136, + 176 ] } ], @@ -49,7 +54,8 @@ "file": "Gemfile", "lines": [ 82, - 122 + 122, + 162 ] } ], @@ -59,7 +65,8 @@ "lines": [ 60, 100, - 140 + 140, + 180 ] } ], @@ -68,7 +75,8 @@ "file": "Gemfile", "lines": [ 101, - 141 + 141, + 181 ] } ], @@ -78,7 +86,8 @@ "lines": [ 43, 87, - 127 + 127, + 167 ] } ], @@ -87,7 +96,8 @@ "file": "Gemfile", "lines": [ 110, - 150 + 150, + 190 ] } ], @@ -97,7 +107,8 @@ "lines": [ 35, 79, - 119 + 119, + 159 ] } ], @@ -107,7 +118,8 @@ "lines": [ 69, 109, - 149 + 149, + 189 ] } ], @@ -116,7 +128,8 @@ "file": "Gemfile", "lines": [ 85, - 125 + 125, + 165 ] } ], @@ -126,7 +139,8 @@ "lines": [ 48, 92, - 132 + 132, + 172 ] } ], @@ -136,7 +150,8 @@ "lines": [ 44, 88, - 128 + 128, + 168 ] } ], @@ -145,7 +160,8 @@ "file": "Gemfile", "lines": [ 86, - 126 + 126, + 166 ] } ], @@ -154,7 +170,8 @@ "file": "Gemfile", "lines": [ 103, - 143 + 143, + 183 ] } ], @@ -163,7 +180,8 @@ "file": "Gemfile", "lines": [ 102, - 142 + 142, + 182 ] } ], @@ -172,7 +190,8 @@ "file": "Gemfile", "lines": [ 97, - 137 + 137, + 177 ] } ], @@ -181,7 +200,8 @@ "file": "Gemfile", "lines": [ 106, - 146 + 146, + 186 ] } ] diff --git a/gems/ruby-merge/.rubocop_gradual.lock b/gems/ruby-merge/.rubocop_gradual.lock deleted file mode 100644 index 83c8b7719..000000000 --- a/gems/ruby-merge/.rubocop_gradual.lock +++ /dev/null @@ -1,391 +0,0 @@ -{ - ".simplecov:3012692149": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "Rakefile:2768890125": [ - [18, 121, 17, "Layout/LineLength: Line is too long. [137/120]", 174264873], - [79, 3, 1023, "Metrics/BlockLength: Block has too many lines. [32/25]", 54868638], - [163, 121, 22, "Layout/LineLength: Line is too long. [142/120]", 1367093088], - [166, 121, 18, "Layout/LineLength: Line is too long. [138/120]", 3881946477] - ], - "gemfiles/modular/benchmark/r4/v0.5.gemfile:3644720371": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/benchmark/vHEAD.gemfile:2838879269": [ - [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/cgi/r4/v0.5.gemfile:367169322": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] - ], - "gemfiles/modular/cgi/vHEAD.gemfile:2729540777": [ - [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] - ], - "gemfiles/modular/erb/r2/v3.0.gemfile:1688285565": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] - ], - "gemfiles/modular/erb/r3/v5.0.gemfile:2394062339": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] - ], - "gemfiles/modular/erb/r4/v5.0.gemfile:2394062339": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] - ], - "gemfiles/modular/erb/vHEAD.gemfile:981929959": [ - [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/mutex_m/r2/v0.3.gemfile:4055275004": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/mutex_m/r3/v0.3.gemfile:4055275004": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/mutex_m/r4/v0.3.gemfile:4055275004": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/mutex_m/vHEAD.gemfile:556854763": [ - [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/rspec.gemfile:2263543889": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] - ], - "gemfiles/modular/stringio/r2/v3.0.gemfile:821604304": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/stringio/r3/v3.0.gemfile:821604304": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/stringio/r4/v3.0.gemfile:821604304": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/stringio/vHEAD.gemfile:1045839691": [ - [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/webrick/r4/v1.9.gemfile:3092661193": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] - ], - "gemfiles/modular/webrick/vHEAD.gemfile:3867684682": [ - [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] - ], - "gemfiles/modular/x_std_libs.gemfile:2324400122": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/x_std_libs/r2/libs.gemfile:36276542": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] - ], - "gemfiles/modular/x_std_libs/r3/libs.gemfile:4030570297": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] - ], - "gemfiles/modular/x_std_libs/r4/libs.gemfile:732451732": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] - ], - "gemfiles/modular/x_std_libs/vHEAD.gemfile:2390363993": [ - [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] - ], - "lib/ruby-merge.rb:2992445753": [ - [1, 1, 0, "Naming/FileName: The name of this source file (`ruby-merge.rb`) should use snake_case.", 5381] - ], - "lib/ruby/merge.rb:1254439043": [ - [21, 3, 12, "Style/Documentation: Missing top-level documentation comment for `module Ruby::Merge`.", 2866359175], - [21, 3, 115060, "Metrics/ModuleLength: Module has too many lines. [2589/100]", 3781535251], - [43, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 3061257365], - [119, 5, 912, "Metrics/MethodLength: Method has too many lines. [17/10]", 3288645431], - [163, 5, 2656, "Metrics/AbcSize: Assignment Branch Condition size for `ruby_method_move_detection` is too high. [<17, 40, 18> 47.04/17]", 3779436399], - [163, 5, 2656, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `ruby_method_move_detection` is too high. [16/7]", 3779436399], - [163, 5, 2656, "Metrics/MethodLength: Method has too many lines. [45/10]", 3779436399], - [163, 5, 2656, "Metrics/PerceivedComplexity: Perceived complexity for `ruby_method_move_detection` is too high. [16/8]", 3779436399], - [175, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 727785047], - [188, 121, 51, "Layout/LineLength: Line is too long. [171/120]", 3259664538], - [207, 9, 7, "Style/MultilineBlockChain: Avoid multi-line chains of blocks.", 4045560504], - [210, 9, 7, "Style/MultilineBlockChain: Avoid multi-line chains of blocks.", 4045560504], - [211, 121, 7, "Layout/LineLength: Line is too long. [127/120]", 1976354608], - [215, 5, 4531, "Metrics/AbcSize: Assignment Branch Condition size for `merge_ruby` is too high. [<31, 64, 24> 75.05/17]", 2749692967], - [215, 5, 4531, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `merge_ruby` is too high. [21/7]", 2749692967], - [215, 5, 4531, "Metrics/MethodLength: Method has too many lines. [86/10]", 2749692967], - [215, 5, 4531, "Metrics/PerceivedComplexity: Perceived complexity for `merge_ruby` is too high. [22/8]", 2749692967], - [277, 9, 7, "Style/MultilineBlockChain: Avoid multi-line chains of blocks.", 4045560504], - [316, 5, 1312, "Metrics/AbcSize: Assignment Branch Condition size for `ruby_delegated_child_operations` is too high. [<10, 15, 6> 19/17]", 2246428949], - [316, 5, 1312, "Metrics/MethodLength: Method has too many lines. [28/10]", 2246428949], - [362, 5, 861, "Metrics/AbcSize: Assignment Branch Condition size for `ruby_source_owner_identity_profile` is too high. [<5, 17, 2> 17.83/17]", 4129925341], - [362, 5, 861, "Metrics/MethodLength: Method has too many lines. [20/10]", 4129925341], - [385, 5, 2064, "Metrics/AbcSize: Assignment Branch Condition size for `ruby_source_owner_identity_matches` is too high. [<17, 31, 11> 37.03/17]", 2780319153], - [385, 5, 2064, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `ruby_source_owner_identity_matches` is too high. [11/7]", 2780319153], - [385, 5, 2064, "Metrics/MethodLength: Method has too many lines. [37/10]", 2780319153], - [385, 5, 2064, "Metrics/PerceivedComplexity: Perceived complexity for `ruby_source_owner_identity_matches` is too high. [11/8]", 2780319153], - [414, 9, 7, "Style/MultilineBlockChain: Avoid multi-line chains of blocks.", 4045560504], - [417, 9, 7, "Style/MultilineBlockChain: Avoid multi-line chains of blocks.", 4045560504], - [422, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 1001816794], - [428, 5, 1314, "Metrics/MethodLength: Method has too many lines. [28/10]", 4183124680], - [461, 5, 786, "Metrics/MethodLength: Method has too many lines. [24/10]", 3631640245], - [488, 5, 926, "Metrics/MethodLength: Method has too many lines. [18/10]", 4274646050], - [509, 5, 662, "Metrics/MethodLength: Method has too many lines. [15/10]", 2231086183], - [528, 5, 777, "Metrics/MethodLength: Method has too many lines. [18/10]", 895030114], - [549, 5, 727, "Metrics/MethodLength: Method has too many lines. [19/10]", 776483642], - [571, 5, 861, "Metrics/MethodLength: Method has too many lines. [29/10]", 537340961], - [603, 5, 655, "Metrics/MethodLength: Method has too many lines. [16/10]", 3756601977], - [622, 5, 1592, "Metrics/MethodLength: Method has too many lines. [25/10]", 3521052904], - [646, 121, 106, "Layout/LineLength: Line is too long. [226/120]", 2104286058], - [652, 5, 777, "Metrics/MethodLength: Method has too many lines. [14/10]", 2821246515], - [669, 5, 1429, "Metrics/MethodLength: Method has too many lines. [26/10]", 244346226], - [692, 121, 124, "Layout/LineLength: Line is too long. [244/120]", 13261232], - [698, 5, 1367, "Metrics/MethodLength: Method has too many lines. [41/10]", 3883814121], - [742, 5, 750, "Metrics/MethodLength: Method has too many lines. [22/10]", 764028624], - [768, 5, 1315, "Metrics/AbcSize: Assignment Branch Condition size for `ruby_silent_data_loss_validation_report` is too high. [<8, 14, 7> 17.58/17]", 2039399818], - [768, 5, 1315, "Metrics/MethodLength: Method has too many lines. [31/10]", 2039399818], - [803, 5, 724, "Metrics/MethodLength: Method has too many lines. [14/10]", 1741779676], - [814, 121, 67, "Layout/LineLength: Line is too long. [187/120]", 1996508131], - [820, 5, 752, "Metrics/MethodLength: Method has too many lines. [21/10]", 3870096101], - [844, 5, 1052, "Metrics/MethodLength: Method has too many lines. [32/10]", 119279638], - [896, 5, 536, "Metrics/MethodLength: Method has too many lines. [13/10]", 245509059], - [912, 5, 2252, "Metrics/AbcSize: Assignment Branch Condition size for `ruby_rename_detection` is too high. [<14, 32, 11> 36.62/17]", 2574664763], - [912, 5, 2252, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `ruby_rename_detection` is too high. [10/7]", 2574664763], - [912, 5, 2252, "Metrics/MethodLength: Method has too many lines. [46/10]", 2574664763], - [912, 5, 2252, "Metrics/PerceivedComplexity: Perceived complexity for `ruby_rename_detection` is too high. [11/8]", 2574664763], - [955, 121, 21, "Layout/LineLength: Line is too long. [141/120]", 4074688513], - [961, 9, 7, "Style/MultilineBlockChain: Avoid multi-line chains of blocks.", 4045560504], - [965, 5, 2254, "Metrics/AbcSize: Assignment Branch Condition size for `ruby_rename_plus_edit_conflicts` is too high. [<15, 30, 13> 35.97/17]", 3664513828], - [965, 5, 2254, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `ruby_rename_plus_edit_conflicts` is too high. [10/7]", 3664513828], - [965, 5, 2254, "Metrics/MethodLength: Method has too many lines. [45/10]", 3664513828], - [965, 5, 2254, "Metrics/PerceivedComplexity: Perceived complexity for `ruby_rename_plus_edit_conflicts` is too high. [11/8]", 3664513828], - [1017, 5, 1926, "Metrics/AbcSize: Assignment Branch Condition size for `ruby_cross_container_method_move_detection` is too high. [<8, 18, 7> 20.9/17]", 1401333972], - [1017, 5, 1926, "Metrics/MethodLength: Method has too many lines. [44/10]", 1401333972], - [1060, 121, 16, "Layout/LineLength: Line is too long. [136/120]", 3474944396], - [1067, 5, 1488, "Metrics/AbcSize: Assignment Branch Condition size for `apply_ruby_delegated_child_outputs` is too high. [<16, 39, 12> 43.83/17]", 842348215], - [1067, 5, 1488, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `apply_ruby_delegated_child_outputs` is too high. [12/7]", 842348215], - [1067, 5, 1488, "Metrics/MethodLength: Method has too many lines. [27/10]", 842348215], - [1067, 5, 1488, "Metrics/PerceivedComplexity: Perceived complexity for `apply_ruby_delegated_child_outputs` is too high. [13/8]", 842348215], - [1101, 5, 980, "Metrics/MethodLength: Method has too many lines. [23/10]", 1425119613], - [1128, 5, 1025, "Metrics/MethodLength: Method has too many lines. [23/10]", 2179557432], - [1156, 5, 757, "Metrics/MethodLength: Method has too many lines. [12/10]", 3975431355], - [1161, 121, 70, "Layout/LineLength: Line is too long. [190/120]", 1956194284], - [1173, 5, 745, "Metrics/MethodLength: Method has too many lines. [12/10]", 1051086033], - [1178, 121, 62, "Layout/LineLength: Line is too long. [182/120]", 1636990749], - [1190, 5, 670, "Metrics/MethodLength: Method has too many lines. [11/10]", 3552666292], - [1195, 121, 17, "Layout/LineLength: Line is too long. [137/120]", 3013228499], - [1206, 5, 678, "Metrics/MethodLength: Method has too many lines. [11/10]", 1356230953], - [1211, 121, 17, "Layout/LineLength: Line is too long. [137/120]", 3013228499], - [1222, 5, 2093, "Metrics/AbcSize: Assignment Branch Condition size for `analyze_ruby_document` is too high. [<21, 31, 12> 39.32/17]", 3298966582], - [1222, 5, 2093, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `analyze_ruby_document` is too high. [13/7]", 3298966582], - [1222, 5, 2093, "Metrics/MethodLength: Method has too many lines. [53/10]", 3298966582], - [1222, 5, 2093, "Metrics/PerceivedComplexity: Perceived complexity for `analyze_ruby_document` is too high. [13/8]", 3298966582], - [1228, 7, 1035, "Metrics/BlockLength: Block has too many lines. [27/25]", 2081528636], - [1297, 5, 427, "Metrics/AbcSize: Assignment Branch Condition size for `ruby_file_footer_text` is too high. [<5, 17, 8> 19.44/17]", 1703748308], - [1324, 5, 806, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `ruby_process_analysis_from_tree` is too high. [10/7]", 1109735749], - [1324, 5, 806, "Metrics/MethodLength: Method has too many lines. [19/10]", 1109735749], - [1374, 5, 533, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `ruby_import_item_from_begin_node` is too high. [8/7]", 582163830], - [1396, 5, 487, "Metrics/MethodLength: Method has too many lines. [12/10]", 3257507103], - [1413, 5, 583, "Metrics/MethodLength: Method has too many lines. [15/10]", 4108141408], - [1456, 5, 645, "Metrics/AbcSize: Assignment Branch Condition size for `ruby_import_span_for` is too high. [<6, 22, 9> 24.52/17]", 1779826452], - [1456, 5, 645, "Metrics/MethodLength: Method has too many lines. [12/10]", 1779826452], - [1508, 5, 1015, "Metrics/MethodLength: Method has too many lines. [16/10]", 1317835917], - [1514, 121, 173, "Layout/LineLength: Line is too long. [293/120]", 225499532], - [1541, 5, 518, "Metrics/AbcSize: Assignment Branch Condition size for `ruby_tslp_claimed_line_indexes` is too high. [<6, 19, 5> 20.54/17]", 1455439838], - [1553, 5, 432, "Metrics/AbcSize: Assignment Branch Condition size for `ruby_process_import_entries` is too high. [<3, 18, 2> 18.36/17]", 62712355], - [1566, 5, 443, "Metrics/MethodLength: Method has too many lines. [12/10]", 4230588206], - [1583, 5, 363, "Metrics/MethodLength: Method has too many lines. [11/10]", 3068065572], - [1644, 5, 1849, "Metrics/AbcSize: Assignment Branch Condition size for `legacy_collect_ruby_declaration_entries` is too high. [<24, 26, 13> 37.7/17]", 3187770326], - [1644, 5, 1849, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `legacy_collect_ruby_declaration_entries` is too high. [11/7]", 3187770326], - [1644, 5, 1849, "Metrics/MethodLength: Method has too many lines. [54/10]", 3187770326], - [1644, 5, 1849, "Metrics/PerceivedComplexity: Perceived complexity for `legacy_collect_ruby_declaration_entries` is too high. [11/8]", 3187770326], - [1691, 13, 76, "Metrics/BlockNesting: Avoid more than 3 levels of block nesting.", 1356567820], - [1727, 5, 396, "Metrics/MethodLength: Method has too many lines. [11/10]", 1239008881], - [1742, 5, 752, "Metrics/AbcSize: Assignment Branch Condition size for `ruby_process_declaration_entries` is too high. [<7, 17, 2> 18.49/17]", 2675999354], - [1742, 5, 752, "Metrics/MethodLength: Method has too many lines. [18/10]", 2675999354], - [1802, 5, 634, "Metrics/AbcSize: Assignment Branch Condition size for `ruby_top_level_process_structure_items` is too high. [<5, 32, 14> 35.28/17]", 1120707166], - [1802, 5, 634, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `ruby_top_level_process_structure_items` is too high. [11/7]", 1120707166], - [1802, 5, 634, "Metrics/MethodLength: Method has too many lines. [11/10]", 1120707166], - [1802, 5, 634, "Metrics/PerceivedComplexity: Perceived complexity for `ruby_top_level_process_structure_items` is too high. [11/8]", 1120707166], - [1814, 7, 11, "Style/MultilineBlockChain: Avoid multi-line chains of blocks.", 848344986], - [1821, 7, 9, "Style/MultilineBlockChain: Avoid multi-line chains of blocks.", 3648222389], - [1866, 5, 1284, "Metrics/AbcSize: Assignment Branch Condition size for `ruby_intra_owner_merge_plan` is too high. [<8, 24, 9> 26.85/17]", 2388567699], - [1866, 5, 1284, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `ruby_intra_owner_merge_plan` is too high. [9/7]", 2388567699], - [1866, 5, 1284, "Metrics/MethodLength: Method has too many lines. [22/10]", 2388567699], - [1866, 5, 1284, "Metrics/PerceivedComplexity: Perceived complexity for `ruby_intra_owner_merge_plan` is too high. [9/8]", 2388567699], - [1907, 5, 557, "Metrics/MethodLength: Method has too many lines. [11/10]", 3178341030], - [1965, 121, 62, "Layout/LineLength: Line is too long. [182/120]", 895013151], - [1970, 5, 593, "Metrics/MethodLength: Method has too many lines. [13/10]", 2850316611], - [1971, 121, 1, "Layout/LineLength: Line is too long. [121/120]", 177625], - [1988, 5, 609, "Metrics/MethodLength: Method has too many lines. [12/10]", 784855730], - [2003, 5, 695, "Metrics/MethodLength: Method has too many lines. [14/10]", 3942458504], - [2040, 5, 1114, "Metrics/AbcSize: Assignment Branch Condition size for `merge_declaration_hash_constants` is too high. [<11, 22, 6> 25.32/17]", 3861922947], - [2040, 5, 1114, "Metrics/MethodLength: Method has too many lines. [17/10]", 3861922947], - [2062, 5, 794, "Metrics/AbcSize: Assignment Branch Condition size for `merge_declaration_body_constants` is too high. [<9, 14, 6> 17.69/17]", 1882117166], - [2092, 5, 1138, "Metrics/AbcSize: Assignment Branch Condition size for `merge_array_constant_text` is too high. [<9, 18, 7> 21.31/17]", 1448081799], - [2092, 5, 1138, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `merge_array_constant_text` is too high. [8/7]", 1448081799], - [2092, 5, 1138, "Metrics/MethodLength: Method has too many lines. [15/10]", 1448081799], - [2098, 121, 3, "Layout/LineLength: Line is too long. [123/120]", 193434112], - [2105, 7, 8, "Style/MultilineBlockChain: Avoid multi-line chains of blocks.", 359846632], - [2112, 5, 774, "Metrics/AbcSize: Assignment Branch Condition size for `merge_percent_array_constant_text` is too high. [<8, 16, 7> 19.21/17]", 625509828], - [2112, 5, 774, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `merge_percent_array_constant_text` is too high. [8/7]", 625509828], - [2141, 5, 1060, "Metrics/AbcSize: Assignment Branch Condition size for `merge_multiline_array_constant_text` is too high. [<11, 23, 10> 27.39/17]", 2672751288], - [2141, 5, 1060, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `merge_multiline_array_constant_text` is too high. [11/7]", 2672751288], - [2141, 5, 1060, "Metrics/MethodLength: Method has too many lines. [13/10]", 2672751288], - [2141, 5, 1060, "Metrics/PerceivedComplexity: Perceived complexity for `merge_multiline_array_constant_text` is too high. [11/8]", 2672751288], - [2150, 7, 8, "Style/MultilineBlockChain: Avoid multi-line chains of blocks.", 359846632], - [2159, 5, 1605, "Metrics/AbcSize: Assignment Branch Condition size for `merge_declaration_body_methods` is too high. [<21, 28, 15> 38.08/17]", 2740924329], - [2159, 5, 1605, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `merge_declaration_body_methods` is too high. [14/7]", 2740924329], - [2159, 5, 1605, "Metrics/MethodLength: Method has too many lines. [29/10]", 2740924329], - [2159, 5, 1605, "Metrics/PerceivedComplexity: Perceived complexity for `merge_declaration_body_methods` is too high. [15/8]", 2740924329], - [2166, 7, 8, "Style/MultilineBlockChain: Avoid multi-line chains of blocks.", 359846632], - [2193, 5, 1076, "Metrics/AbcSize: Assignment Branch Condition size for `merge_nested_body_declarations` is too high. [<14, 24, 10> 29.53/17]", 1397199527], - [2193, 5, 1076, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `merge_nested_body_declarations` is too high. [11/7]", 1397199527], - [2193, 5, 1076, "Metrics/MethodLength: Method has too many lines. [14/10]", 1397199527], - [2193, 5, 1076, "Metrics/PerceivedComplexity: Perceived complexity for `merge_nested_body_declarations` is too high. [11/8]", 1397199527], - [2232, 5, 2710, "Metrics/AbcSize: Assignment Branch Condition size for `top_level_source_region_owners` is too high. [<24, 33, 13> 42.83/17]", 1909271685], - [2232, 5, 2710, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `top_level_source_region_owners` is too high. [11/7]", 1909271685], - [2232, 5, 2710, "Metrics/MethodLength: Method has too many lines. [68/10]", 1909271685], - [2232, 5, 2710, "Metrics/PerceivedComplexity: Perceived complexity for `top_level_source_region_owners` is too high. [11/8]", 1909271685], - [2275, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5861626], - [2290, 121, 28, "Layout/LineLength: Line is too long. [148/120]", 1695648499], - [2310, 5, 2285, "Metrics/AbcSize: Assignment Branch Condition size for `container_child_source_regions` is too high. [<23, 28, 11> 37.87/17]", 1586137568], - [2310, 5, 2285, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `container_child_source_regions` is too high. [10/7]", 1586137568], - [2310, 5, 2285, "Metrics/MethodLength: Method has too many lines. [60/10]", 1586137568], - [2310, 5, 2285, "Metrics/PerceivedComplexity: Perceived complexity for `container_child_source_regions` is too high. [10/8]", 1586137568], - [2388, 5, 30, "Style/Documentation: Missing top-level documentation comment for `class Ruby::Merge::RubyHashLiteralProjector`.", 2586933062], - [2388, 5, 5761, "Metrics/ClassLength: Class has too many lines. [144/100]", 3358513989], - [2421, 7, 617, "Metrics/MethodLength: Method has too many lines. [15/10]", 1617225783], - [2445, 7, 943, "Metrics/AbcSize: Assignment Branch Condition size for `project_hash_key` is too high. [<1, 18, 8> 19.72/17]", 3538404248], - [2445, 7, 943, "Metrics/MethodLength: Method has too many lines. [26/10]", 3538404248], - [2503, 7, 616, "Metrics/AbcSize: Assignment Branch Condition size for `trailing_comma?` is too high. [<3, 20, 6> 21.1/17]", 1517912413], - [2568, 5, 1202, "Metrics/AbcSize: Assignment Branch Condition size for `constant_hash_blocks` is too high. [<19, 25, 6> 31.97/17]", 399214756], - [2568, 5, 1202, "Metrics/MethodLength: Method has too many lines. [36/10]", 399214756], - [2609, 5, 727, "Metrics/AbcSize: Assignment Branch Condition size for `hash_assignment_finish_line` is too high. [<11, 7, 12> 17.72/17]", 1215874404], - [2609, 5, 727, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `hash_assignment_finish_line` is too high. [9/7]", 1215874404], - [2609, 5, 727, "Metrics/MethodLength: Method has too many lines. [26/10]", 1215874404], - [2609, 5, 727, "Metrics/PerceivedComplexity: Perceived complexity for `hash_assignment_finish_line` is too high. [11/8]", 1215874404], - [2639, 5, 2007, "Metrics/AbcSize: Assignment Branch Condition size for `direct_body_method_entries` is too high. [<28, 33, 13> 45.19/17]", 2589282610], - [2639, 5, 2007, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `direct_body_method_entries` is too high. [12/7]", 2589282610], - [2639, 5, 2007, "Metrics/MethodLength: Method has too many lines. [56/10]", 2589282610], - [2639, 5, 2007, "Metrics/PerceivedComplexity: Perceived complexity for `direct_body_method_entries` is too high. [12/8]", 2589282610], - [2704, 5, 1221, "Metrics/AbcSize: Assignment Branch Condition size for `direct_body_constant_entries` is too high. [<16, 34, 10> 38.88/17]", 1588885504], - [2704, 5, 1221, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `direct_body_constant_entries` is too high. [9/7]", 1588885504], - [2704, 5, 1221, "Metrics/MethodLength: Method has too many lines. [35/10]", 1588885504], - [2704, 5, 1221, "Metrics/PerceivedComplexity: Perceived complexity for `direct_body_constant_entries` is too high. [9/8]", 1588885504], - [2747, 5, 708, "Metrics/AbcSize: Assignment Branch Condition size for `split_ruby_array_elements` is too high. [<11, 12, 11> 19.65/17]", 1344003748], - [2747, 5, 708, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `split_ruby_array_elements` is too high. [9/7]", 1344003748], - [2747, 5, 708, "Metrics/MethodLength: Method has too many lines. [24/10]", 1344003748], - [2747, 5, 708, "Metrics/PerceivedComplexity: Perceived complexity for `split_ruby_array_elements` is too high. [11/8]", 1344003748], - [2791, 5, 977, "Metrics/AbcSize: Assignment Branch Condition size for `append_multiline_array_elements` is too high. [<12, 32, 9> 35.34/17]", 1316332112], - [2791, 5, 977, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `append_multiline_array_elements` is too high. [9/7]", 1316332112], - [2791, 5, 977, "Metrics/MethodLength: Method has too many lines. [16/10]", 1316332112], - [2791, 5, 977, "Metrics/PerceivedComplexity: Perceived complexity for `append_multiline_array_elements` is too high. [9/8]", 1316332112], - [2819, 5, 728, "Metrics/AbcSize: Assignment Branch Condition size for `array_assignment_finish_line` is too high. [<11, 7, 12> 17.72/17]", 1471354607], - [2819, 5, 728, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `array_assignment_finish_line` is too high. [9/7]", 1471354607], - [2819, 5, 728, "Metrics/MethodLength: Method has too many lines. [26/10]", 1471354607], - [2819, 5, 728, "Metrics/PerceivedComplexity: Perceived complexity for `array_assignment_finish_line` is too high. [11/8]", 1471354607], - [2855, 5, 1127, "Metrics/AbcSize: Assignment Branch Condition size for `direct_body_declaration_entries` is too high. [<14, 30, 7> 33.84/17]", 1223661118], - [2855, 5, 1127, "Metrics/MethodLength: Method has too many lines. [30/10]", 1223661118], - [2902, 5, 984, "Metrics/AbcSize: Assignment Branch Condition size for `insert_declaration_body_blocks` is too high. [<4, 23, 12> 26.25/17]", 159690081], - [2902, 5, 984, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `insert_declaration_body_blocks` is too high. [9/7]", 159690081], - [2902, 5, 984, "Metrics/MethodLength: Method has too many lines. [16/10]", 159690081], - [2902, 5, 984, "Metrics/PerceivedComplexity: Perceived complexity for `insert_declaration_body_blocks` is too high. [10/8]", 159690081], - [2947, 5, 1027, "Metrics/AbcSize: Assignment Branch Condition size for `merge_ruby_hash_literals` is too high. [<8, 30, 9> 32.33/17]", 2793745298], - [2947, 5, 1027, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `merge_ruby_hash_literals` is too high. [9/7]", 2793745298], - [2947, 5, 1027, "Metrics/MethodLength: Method has too many lines. [19/10]", 2793745298], - [2947, 5, 1027, "Metrics/PerceivedComplexity: Perceived complexity for `merge_ruby_hash_literals` is too high. [10/8]", 2793745298], - [2969, 5, 636, "Metrics/AbcSize: Assignment Branch Condition size for `render_ruby_hash_literal` is too high. [<5, 19, 6> 20.54/17]", 1834383244], - [3009, 5, 491, "Metrics/MethodLength: Method has too many lines. [11/10]", 1799924605], - [3042, 5, 1125, "Metrics/AbcSize: Assignment Branch Condition size for `surfaces_for_owner` is too high. [<6, 19, 3> 20.15/17]", 4036098594], - [3042, 5, 1125, "Metrics/MethodLength: Method has too many lines. [20/10]", 4036098594], - [3067, 5, 1126, "Metrics/AbcSize: Assignment Branch Condition size for `example_surfaces_for` is too high. [<4, 20, 2> 20.49/17]", 757808110], - [3067, 5, 1126, "Metrics/MethodLength: Method has too many lines. [21/10]", 757808110] - ], - "lib/ruby/merge/block_directive_detector.rb:315354690": [ - [10, 5, 6220, "Metrics/ClassLength: Class has too many lines. [161/100]", 3182117306], - [83, 7, 1085, "Metrics/AbcSize: Assignment Branch Condition size for `detect_freeze_spans` is too high. [<10, 18, 6> 21.45/17]", 3827147306], - [83, 7, 1085, "Metrics/MethodLength: Method has too many lines. [27/10]", 3827147306], - [117, 7, 1508, "Metrics/AbcSize: Assignment Branch Condition size for `detect_nocov_spans` is too high. [<10, 30, 10> 33.17/17]", 3750116369], - [117, 7, 1508, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `detect_nocov_spans` is too high. [9/7]", 3750116369], - [117, 7, 1508, "Metrics/MethodLength: Method has too many lines. [40/10]", 3750116369], - [117, 7, 1508, "Metrics/PerceivedComplexity: Perceived complexity for `detect_nocov_spans` is too high. [12/8]", 3750116369], - [125, 9, 1189, "Metrics/BlockLength: Block has too many lines. [30/25]", 431470454], - [165, 7, 921, "Metrics/AbcSize: Assignment Branch Condition size for `validate_no_crossing` is too high. [<8, 16, 8> 19.6/17]", 1072352384], - [165, 7, 921, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `validate_no_crossing` is too high. [8/7]", 1072352384], - [165, 7, 921, "Metrics/MethodLength: Method has too many lines. [19/10]", 1072352384], - [193, 121, 3, "Layout/LineLength: Line is too long. [123/120]", 193343749], - [194, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5860841] - ], - "lib/ruby/merge/doc_comment_support.rb:11585367": [ - [71, 7, 950, "Metrics/AbcSize: Assignment Branch Condition size for `example_blocks` is too high. [<8, 17, 8> 20.42/17]", 878231540], - [71, 7, 950, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `example_blocks` is too high. [8/7]", 878231540], - [71, 7, 950, "Metrics/MethodLength: Method has too many lines. [19/10]", 878231540] - ], - "lib/ruby/merge/gemspec_support.rb:672395758": [ - [5, 5, 21, "Style/Documentation: Missing top-level documentation comment for `module Ruby::Merge::GemspecSupport`.", 593910650] - ], - "lib/ruby/merge/magic_comment_support.rb:2193186223": [ - [26, 7, 1484, "Metrics/AbcSize: Assignment Branch Condition size for `comment_only_prefix_info` is too high. [<9, 38, 8> 39.86/17]", 1098666313], - [26, 7, 1484, "Metrics/MethodLength: Method has too many lines. [33/10]", 1098666313], - [69, 7, 693, "Metrics/AbcSize: Assignment Branch Condition size for `header_magic_comment_types_for_lines` is too high. [<10, 13, 9> 18.71/17]", 3693768719], - [69, 7, 693, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `header_magic_comment_types_for_lines` is too high. [8/7]", 3693768719], - [69, 7, 693, "Metrics/MethodLength: Method has too many lines. [16/10]", 3693768719], - [93, 7, 747, "Metrics/AbcSize: Assignment Branch Condition size for `prefix_comment_line_numbers_for_comments` is too high. [<10, 12, 7> 17.12/17]", 1181507516], - [93, 7, 747, "Metrics/MethodLength: Method has too many lines. [19/10]", 1181507516] - ], - "lib/ruby/merge/method_similarity.rb:3120642740": [ - [5, 5, 22, "Style/Documentation: Missing top-level documentation comment for `class Ruby::Merge::MethodSimilarity`.", 3784960433], - [23, 7, 493, "Metrics/AbcSize: Assignment Branch Condition size for `param_similarity` is too high. [<4, 19, 4> 19.82/17]", 1175888813], - [45, 7, 738, "Metrics/AbcSize: Assignment Branch Condition size for `levenshtein_distance` is too high. [<13, 29, 8> 32.77/17]", 1085087702], - [45, 7, 738, "Metrics/MethodLength: Method has too many lines. [20/10]", 1085087702] - ], - "lib/ruby/merge/nocov_node_base.rb:1713613866": [ - [23, 21, 84, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 3439911158], - [51, 7, 353, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `signature` is too high. [8/7]", 3442013923], - [51, 7, 353, "Metrics/PerceivedComplexity: Perceived complexity for `signature` is too high. [9/8]", 3442013923] - ], - "lib/ruby/merge/rescue_semantics.rb:2728370094": [ - [5, 5, 21, "Style/Documentation: Missing top-level documentation comment for `class Ruby::Merge::RescueSemantics`.", 4002082661], - [5, 5, 8140, "Metrics/ClassLength: Class has too many lines. [157/100]", 3302970297], - [10, 7, 812, "Metrics/AbcSize: Assignment Branch Condition size for `merge_ordered_clause_types` is too high. [<9, 17, 8> 20.83/17]", 391537814], - [10, 7, 812, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `merge_ordered_clause_types` is too high. [8/7]", 391537814], - [10, 7, 812, "Metrics/MethodLength: Method has too many lines. [16/10]", 391537814], - [10, 7, 812, "Metrics/PerceivedComplexity: Perceived complexity for `merge_ordered_clause_types` is too high. [9/8]", 391537814], - [33, 7, 1470, "Metrics/AbcSize: Assignment Branch Condition size for `canonicalize_rescue_clause_order` is too high. [<18, 28, 14> 36.11/17]", 570708009], - [33, 7, 1470, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `canonicalize_rescue_clause_order` is too high. [14/7]", 570708009], - [33, 7, 1470, "Metrics/MethodLength: Method has too many lines. [24/10]", 570708009], - [33, 7, 1470, "Metrics/PerceivedComplexity: Perceived complexity for `canonicalize_rescue_clause_order` is too high. [14/8]", 570708009], - [113, 7, 1080, "Metrics/AbcSize: Assignment Branch Condition size for `source_defined_exception_hierarchy` is too high. [<9, 20, 10> 24.1/17]", 3196945148], - [113, 7, 1080, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `source_defined_exception_hierarchy` is too high. [10/7]", 3196945148], - [113, 7, 1080, "Metrics/MethodLength: Method has too many lines. [15/10]", 3196945148], - [113, 7, 1080, "Metrics/PerceivedComplexity: Perceived complexity for `source_defined_exception_hierarchy` is too high. [11/8]", 3196945148], - [126, 121, 19, "Layout/LineLength: Line is too long. [139/120]", 1806710570] - ], - "lib/ruby/merge/scaffold_chunk_support.rb:640658628": [ - [5, 5, 27, "Style/Documentation: Missing top-level documentation comment for `module Ruby::Merge::ScaffoldChunkSupport`.", 2416541725] - ], - "lib/ruby/merge/signature_support.rb:1167161535": [ - [5, 5, 23, "Style/Documentation: Missing top-level documentation comment for `module Ruby::Merge::SignatureSupport`.", 2080470772] - ], - "ruby-merge.gemspec:503862341": [ - [128, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 2821357214], - [143, 121, 50, "Layout/LineLength: Line is too long. [170/120]", 3888612416], - [144, 121, 29, "Layout/LineLength: Line is too long. [149/120]", 981994949], - [151, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 4229808912] - ], - "spec/fixtures_integration_spec.rb:536012750": [ - [7, 1, 72608, "Metrics/BlockLength: Block has too many lines. [1673/25]", 1328376978], - [8, 3, 94, "Lint/ConstantDefinitionInBlock: Do not define constants this way within a block.", 4224869601], - [9, 3, 80, "Lint/ConstantDefinitionInBlock: Do not define constants this way within a block.", 3493759864], - [10, 3, 72, "Lint/ConstantDefinitionInBlock: Do not define constants this way within a block.", 218819604], - [11, 3, 83, "Lint/ConstantDefinitionInBlock: Do not define constants this way within a block.", 3957977039], - [125, 3, 1207, "Metrics/BlockLength: Block has too many lines. [27/25]", 2841005266], - [206, 3, 1550, "Metrics/BlockLength: Block has too many lines. [44/25]", 1381861178], - [257, 3, 1178, "Metrics/BlockLength: Block has too many lines. [28/25]", 2957209369], - [292, 3, 1209, "Metrics/BlockLength: Block has too many lines. [33/25]", 1745132505], - [332, 3, 61330, "Metrics/BlockLength: Block has too many lines. [1387/25]", 3444780370], - [728, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5859109], - [1812, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 3355833611], - [1819, 121, 18, "Layout/LineLength: Line is too long. [138/120]", 38619260] - ], - "spec/hash_literal_projector_spec.rb:2425567956": [ - [13, 41, 31, "Lint/PercentStringArray: Within `%w`/`%W`, quotes and ',' are unnecessary and may be unwanted in the resulting strings.", 3214960854] - ], - "spec/rescue_semantics_spec.rb:2518131257": [ - [5, 1, 2150, "Metrics/BlockLength: Block has too many lines. [59/25]", 163524539] - ] -} diff --git a/gems/ruby-merge/Gemfile b/gems/ruby-merge/Gemfile index a6390189a..05e7cef2e 100644 --- a/gems/ruby-merge/Gemfile +++ b/gems/ruby-merge/Gemfile @@ -152,6 +152,46 @@ if direct_sibling_gems.any? && end end +if direct_sibling_gems.any? && + (direct_sibling_local || + ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) + direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') + direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) + begin + nomono_activation_requirements = nomono_requirements + nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) + if File.file?(nomono_lockfile) + nomono_locked_spec = Bundler::LockfileParser + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } + nomono_locked = nomono_locked_spec && + Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked + end + Kernel.send(:gem, 'nomono', *nomono_activation_requirements) + require 'nomono/bundler' + ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local + + eval_nomono_gems( + gems: direct_sibling_gems, + prefix: 'STRUCTUREDMERGE', + path_env: 'STRUCTUREDMERGE_DEV', + root: %w[src my structuredmerge] + ) + rescue LoadError + warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' + ensure + if direct_sibling_templating && !direct_sibling_local + if direct_sibling_dev_was_set + ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original + else + ENV.delete('STRUCTUREDMERGE_DEV') + end + end + end +end + # Use released TSLP with the Ruby ABI platform-gem fix. gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' diff --git a/gems/ruby-merge/Gemfile.lock b/gems/ruby-merge/Gemfile.lock index 05d635ba1..c4e945d21 100644 --- a/gems/ruby-merge/Gemfile.lock +++ b/gems/ruby-merge/Gemfile.lock @@ -6,6 +6,24 @@ PATH tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge + specs: + ast-merge (7.1.0) + benchmark + token-resolver (~> 2.0, >= 2.0.4) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver + specs: + tree_haver (7.1.0) + citrus (~> 3.0) + parslet (~> 2.0) + tree_sitter_language_pack (>= 1.13.2, < 2.0) + version_gem (~> 1.1, >= 1.1.9) + GEM remote: https://gem.coop/ specs: @@ -21,11 +39,6 @@ GEM rubocop (>= 1.0) version_gem (~> 1.1, >= 1.1.14) ast (2.4.3) - ast-merge (7.1.0) - benchmark - token-resolver (~> 2.0, >= 2.0.4) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) backports (3.25.3) benchmark (0.5.0) bigdecimal (4.1.2) @@ -341,11 +354,6 @@ GEM token-resolver (2.0.5) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.14) - tree_haver (7.1.0) - citrus (~> 3.0) - parslet (~> 2.0) - tree_sitter_language_pack (>= 1.13.2, < 2.0) - version_gem (~> 1.1, >= 1.1.9) tree_sitter_language_pack (1.13.3-aarch64-linux) sorbet-runtime (~> 0.5) tree_sitter_language_pack (1.13.3-arm64-darwin) @@ -400,6 +408,7 @@ DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) appraisal2-rubocop (~> 1.0, >= 1.0.0) + ast-merge! benchmark (~> 0.5, >= 0.5.0) bundler-audit (~> 0.9.3) cgi (~> 0.5) @@ -432,6 +441,7 @@ DEPENDENCIES standard (~> 1.56, >= 1.56.0) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) + tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) webrick (~> 1.9) yaml-converter (~> 0.2, >= 0.2.3) diff --git a/gems/tree_haver/.rubocop_gradual.lock b/gems/tree_haver/.rubocop_gradual.lock deleted file mode 100644 index 5daabdc24..000000000 --- a/gems/tree_haver/.rubocop_gradual.lock +++ /dev/null @@ -1,500 +0,0 @@ -{ - ".simplecov:2494900725": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "Rakefile:1868927885": [ - [18, 121, 17, "Layout/LineLength: Line is too long. [137/120]", 174264873], - [79, 3, 1023, "Metrics/BlockLength: Block has too many lines. [32/25]", 54868638], - [163, 121, 22, "Layout/LineLength: Line is too long. [142/120]", 1367093088], - [166, 121, 18, "Layout/LineLength: Line is too long. [138/120]", 3881946477] - ], - "gemfiles/modular/benchmark/r4/v0.5.gemfile:3644720371": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/benchmark/vHEAD.gemfile:2838879269": [ - [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/cgi/r4/v0.5.gemfile:367169322": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] - ], - "gemfiles/modular/cgi/vHEAD.gemfile:2729540777": [ - [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] - ], - "gemfiles/modular/erb/r2/v3.0.gemfile:1688285565": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] - ], - "gemfiles/modular/erb/r3/v5.0.gemfile:2394062339": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] - ], - "gemfiles/modular/erb/r4/v5.0.gemfile:2394062339": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] - ], - "gemfiles/modular/erb/vHEAD.gemfile:981929959": [ - [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/mutex_m/r2/v0.3.gemfile:4055275004": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/mutex_m/r3/v0.3.gemfile:4055275004": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/mutex_m/r4/v0.3.gemfile:4055275004": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/mutex_m/vHEAD.gemfile:556854763": [ - [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/rspec.gemfile:2263543889": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] - ], - "gemfiles/modular/stringio/r2/v3.0.gemfile:821604304": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/stringio/r3/v3.0.gemfile:821604304": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/stringio/r4/v3.0.gemfile:821604304": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/stringio/vHEAD.gemfile:1045839691": [ - [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/webrick/r4/v1.9.gemfile:3092661193": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] - ], - "gemfiles/modular/webrick/vHEAD.gemfile:3867684682": [ - [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] - ], - "gemfiles/modular/x_std_libs.gemfile:2324400122": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/x_std_libs/r2/libs.gemfile:36276542": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] - ], - "gemfiles/modular/x_std_libs/r3/libs.gemfile:4030570297": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] - ], - "gemfiles/modular/x_std_libs/r4/libs.gemfile:732451732": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] - ], - "gemfiles/modular/x_std_libs/vHEAD.gemfile:2390363993": [ - [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] - ], - "lib/tree_haver.rb:312280314": [ - [49, 1, 16, "Style/Documentation: Missing top-level documentation comment for `module TreeHaver`.", 3627168465], - [49, 1, 17806, "Metrics/ModuleLength: Module has too many lines. [462/100]", 765750911], - [67, 3, 566, "Metrics/MethodLength: Method has too many lines. [12/10]", 1536513137], - [124, 3, 272, "Metrics/MethodLength: Method has too many lines. [11/10]", 505877912], - [156, 3, 543, "Metrics/MethodLength: Method has too many lines. [14/10]", 3733215372], - [221, 3, 458, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `backend_module` is too high. [9/7]", 73937708], - [221, 3, 458, "Metrics/MethodLength: Method has too many lines. [12/10]", 73937708], - [221, 3, 458, "Metrics/PerceivedComplexity: Perceived complexity for `backend_module` is too high. [9/8]", 73937708], - [257, 3, 1147, "Metrics/AbcSize: Assignment Branch Condition size for `register_language` is too high. [<0, 20, 10> 22.36/17]", 738075279], - [257, 3, 1147, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `register_language` is too high. [11/7]", 738075279], - [257, 3, 1147, "Metrics/MethodLength: Method has too many lines. [16/10]", 738075279], - [257, 3, 1147, "Metrics/PerceivedComplexity: Perceived complexity for `register_language` is too high. [11/8]", 738075279], - [257, 24, 165, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [9/5]", 2985413937], - [292, 3, 1969, "Metrics/AbcSize: Assignment Branch Condition size for `parser_for` is too high. [<14, 35, 18> 41.77/17]", 3351435495], - [292, 3, 1969, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `parser_for` is too high. [19/7]", 3351435495], - [292, 3, 1969, "Metrics/MethodLength: Method has too many lines. [39/10]", 3351435495], - [292, 3, 1969, "Metrics/PerceivedComplexity: Perceived complexity for `parser_for` is too high. [19/8]", 3351435495], - [292, 17, 155, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [8/5]", 1417642817], - [347, 3, 2089, "Metrics/MethodLength: Method has too many lines. [51/10]", 2791676388], - [401, 3, 704, "Metrics/AbcSize: Assignment Branch Condition size for `requested_backend_type` is too high. [<4, 17, 9> 19.65/17]", 3087691662], - [401, 3, 704, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `requested_backend_type` is too high. [8/7]", 3087691662], - [401, 3, 704, "Metrics/MethodLength: Method has too many lines. [14/10]", 3087691662], - [401, 3, 704, "Metrics/PerceivedComplexity: Perceived complexity for `requested_backend_type` is too high. [9/8]", 3087691662], - [453, 3, 696, "Metrics/MethodLength: Method has too many lines. [14/10]", 307274721], - [484, 3, 422, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `registered_backend_type_available?` is too high. [8/7]", 1544952013], - [554, 3, 489, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `backend_module_for` is too high. [10/7]", 3448932255], - [554, 3, 489, "Metrics/MethodLength: Method has too many lines. [22/10]", 3448932255] - ], - "lib/tree_haver/backend_api.rb:3354059061": [ - [30, 3, 12181, "Metrics/ModuleLength: Module has too many lines. [243/100]", 205645546], - [139, 5, 8882, "Metrics/ClassLength: Class has too many lines. [180/100]", 4281605197], - [145, 7, 1502, "Metrics/AbcSize: Assignment Branch Condition size for `validate` is too high. [<4, 22, 10> 24.49/17]", 747017743], - [145, 7, 1502, "Metrics/MethodLength: Method has too many lines. [31/10]", 747017743], - [145, 7, 1502, "Metrics/PerceivedComplexity: Perceived complexity for `validate` is too high. [11/8]", 747017743], - [213, 7, 903, "Metrics/MethodLength: Method has too many lines. [24/10]", 3041411230], - [261, 7, 1271, "Metrics/AbcSize: Assignment Branch Condition size for `validate_capabilities_hash` is too high. [<7, 27, 7> 28.76/17]", 3965262932], - [261, 7, 1271, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `validate_capabilities_hash` is too high. [8/7]", 3965262932], - [261, 7, 1271, "Metrics/MethodLength: Method has too many lines. [25/10]", 3965262932], - [277, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 2253399502], - [296, 7, 908, "Metrics/AbcSize: Assignment Branch Condition size for `validate_language` is too high. [<6, 17, 4> 18.47/17]", 733551867], - [315, 7, 797, "Metrics/AbcSize: Assignment Branch Condition size for `validate_parser` is too high. [<5, 16, 7> 18.17/17]", 1229041751], - [315, 7, 797, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `validate_parser` is too high. [8/7]", 1229041751], - [315, 7, 797, "Metrics/MethodLength: Method has too many lines. [15/10]", 1229041751], - [349, 7, 862, "Metrics/AbcSize: Assignment Branch Condition size for `validate_node_class` is too high. [<8, 18, 8> 21.26/17]", 1873188195], - [349, 7, 862, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `validate_node_class` is too high. [8/7]", 1873188195], - [349, 7, 862, "Metrics/MethodLength: Method has too many lines. [20/10]", 1873188195], - [349, 7, 862, "Metrics/PerceivedComplexity: Perceived complexity for `validate_node_class` is too high. [9/8]", 1873188195], - [375, 11, 20, "Naming/PredicatePrefix: Rename `has_method_or_alias?` to `method_or_alias?`.", 285116235] - ], - "lib/tree_haver/backend_context.rb:159197618": [ - [3, 1, 16, "Style/Documentation: Missing top-level documentation comment for `module TreeHaver`.", 3627168465] - ], - "lib/tree_haver/backend_registry.rb:4046212912": [ - [4, 3, 22, "Style/Documentation: Missing top-level documentation comment for `module TreeHaver::BackendRegistry`.", 733935278], - [4, 3, 5121, "Metrics/ModuleLength: Module has too many lines. [152/100]", 1483988260], - [39, 5, 382, "Metrics/MethodLength: Method has too many lines. [11/10]", 2000730238], - [48, 16, 1, "Style/DoubleNegation: Avoid the use of double negation (`!!`).", 177540], - [55, 5, 889, "Metrics/AbcSize: Assignment Branch Condition size for `register_tag` is too high. [<5, 20, 5> 21.21/17]", 2276764069], - [55, 5, 889, "Metrics/MethodLength: Method has too many lines. [18/10]", 2276764069], - [105, 5, 397, "Metrics/MethodLength: Method has too many lines. [11/10]", 4007185633] - ], - "lib/tree_haver/backends/citrus.rb:3181984499": [ - [40, 9, 449, "Metrics/MethodLength: Method has too many lines. [11/10]", 1138819533], - [173, 11, 1133, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `from_library` is too high. [11/7]", 2613019266], - [173, 11, 1133, "Metrics/MethodLength: Method has too many lines. [16/10]", 2613019266], - [173, 11, 1133, "Metrics/PerceivedComplexity: Perceived complexity for `from_library` is too high. [11/8]", 2613019266], - [230, 9, 597, "Metrics/MethodLength: Method has too many lines. [12/10]", 3923424594], - [403, 9, 810, "Metrics/AbcSize: Assignment Branch Condition size for `structural?` is too high. [<3, 19, 8> 20.83/17]", 3166173256], - [403, 9, 810, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `structural?` is too high. [9/7]", 3166173256], - [403, 9, 810, "Metrics/MethodLength: Method has too many lines. [12/10]", 3166173256], - [403, 9, 810, "Metrics/PerceivedComplexity: Perceived complexity for `structural?` is too high. [9/8]", 3166173256], - [436, 9, 1272, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `extract_type_from_event` is too high. [9/7]", 2022108773], - [436, 9, 1272, "Metrics/MethodLength: Method has too many lines. [16/10]", 2022108773], - [436, 9, 1272, "Metrics/PerceivedComplexity: Perceived complexity for `extract_type_from_event` is too high. [10/8]", 2022108773], - [460, 11, 207, "Style/CaseLikeIf: Convert `if-elsif` to `case-when`.", 1995588659], - [476, 61, 10, "Style/NumericPredicate: Use `offset.positive?` instead of `offset > 0`.", 2454414278] - ], - "lib/tree_haver/backends/ffi.rb:691415497": [ - [83, 9, 853, "Metrics/MethodLength: Method has too many lines. [15/10]", 1876257977], - [147, 7, 7352, "Metrics/ModuleLength: Module has too many lines. [111/100]", 4125377349], - [148, 9, 7320, "Metrics/ClassLength: Class has too many lines. [109/100]", 1130902814], - [183, 11, 559, "Metrics/MethodLength: Method has too many lines. [11/10]", 678018999], - [232, 11, 4265, "Metrics/AbcSize: Assignment Branch Condition size for `try_load!` is too high. [<11, 40, 10> 42.67/17]", 2312962113], - [232, 11, 4265, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `try_load!` is too high. [10/7]", 2312962113], - [232, 11, 4265, "Metrics/MethodLength: Method has too many lines. [58/10]", 2312962113], - [232, 11, 4265, "Metrics/PerceivedComplexity: Perceived complexity for `try_load!` is too high. [11/8]", 2312962113], - [260, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2086221887], - [262, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 2163360042], - [367, 9, 312, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `<=>` is too high. [8/7]", 2433292528], - [437, 11, 4377, "Metrics/AbcSize: Assignment Branch Condition size for `from_library` is too high. [<16, 30, 18> 38.47/17]", 3403850855], - [437, 11, 4377, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `from_library` is too high. [17/7]", 3403850855], - [437, 11, 4377, "Metrics/MethodLength: Method has too many lines. [43/10]", 3403850855], - [437, 11, 4377, "Metrics/PerceivedComplexity: Perceived complexity for `from_library` is too high. [19/8]", 3403850855], - [437, 47, 4, "Lint/UnusedMethodArgument: Unused method argument - `name`.", 2087876002], - [502, 121, 11, "Layout/LineLength: Line is too long. [131/120]", 2415433817], - [554, 9, 3159, "Metrics/AbcSize: Assignment Branch Condition size for `language=` is too high. [<4, 44, 11> 45.53/17]", 1815427493], - [554, 9, 3159, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `language=` is too high. [10/7]", 1815427493], - [554, 9, 3159, "Metrics/MethodLength: Method has too many lines. [40/10]", 1815427493], - [554, 9, 3159, "Metrics/PerceivedComplexity: Perceived complexity for `language=` is too high. [10/8]", 1815427493], - [715, 7, 10494, "Metrics/ClassLength: Class has too many lines. [129/100]", 3710916551], - [744, 45, 9, "Style/NumericPredicate: Use `index.negative?` instead of `index < 0`.", 4215255415], - [807, 13, 10, "Naming/PredicatePrefix: Rename `has_error?` to `error?`.", 946854183], - [889, 21, 9, "Style/NumericPredicate: Use `index.negative?` instead of `index < 0`.", 4215255415], - [933, 9, 694, "Metrics/AbcSize: Assignment Branch Condition size for `descendant_for_point_range` is too high. [<7, 21, 5> 22.69/17]", 979329510], - [953, 9, 706, "Metrics/AbcSize: Assignment Branch Condition size for `named_descendant_for_point_range` is too high. [<7, 21, 5> 22.69/17]", 2494446138] - ], - "lib/tree_haver/backends/java.rb:3360169733": [ - [134, 7, 815, "Metrics/AbcSize: Assignment Branch Condition size for `configure_native_library_path!` is too high. [<4, 17, 6> 18.47/17]", 1362415302], - [227, 121, 7, "Layout/LineLength: Line is too long. [127/120]", 3409700051], - [260, 7, 9885, "Metrics/ClassLength: Class has too many lines. [114/100]", 136252046], - [292, 9, 312, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `<=>` is too high. [8/7]", 2433292528], - [340, 11, 4098, "Metrics/AbcSize: Assignment Branch Condition size for `from_library` is too high. [<19, 32, 14> 39.76/17]", 3050250526], - [340, 11, 4098, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `from_library` is too high. [14/7]", 3050250526], - [340, 11, 4098, "Metrics/MethodLength: Method has too many lines. [48/10]", 3050250526], - [340, 11, 4098, "Metrics/PerceivedComplexity: Perceived complexity for `from_library` is too high. [16/8]", 3050250526], - [426, 11, 2084, "Metrics/AbcSize: Assignment Branch Condition size for `load_by_name` is too high. [<11, 17, 6> 21.12/17]", 226213748], - [426, 11, 2084, "Metrics/MethodLength: Method has too many lines. [35/10]", 226213748], - [542, 9, 1016, "Metrics/MethodLength: Method has too many lines. [17/10]", 4123264427], - [649, 9, 702, "Metrics/MethodLength: Method has too many lines. [14/10]", 1334016319], - [649, 17, 89, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 3152137646], - [728, 9, 583, "Metrics/MethodLength: Method has too many lines. [11/10]", 2457478600], - [816, 13, 10, "Naming/PredicatePrefix: Rename `has_error?` to `error?`.", 946854183] - ], - "lib/tree_haver/backends/mri.rb:863330290": [ - [59, 9, 916, "Metrics/MethodLength: Method has too many lines. [15/10]", 749971754], - [179, 9, 312, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `<=>` is too high. [8/7]", 2433292528], - [232, 11, 1562, "Metrics/MethodLength: Method has too many lines. [11/10]", 3858647816] - ], - "lib/tree_haver/backends/parslet.rb:4170691266": [ - [41, 9, 323, "Metrics/MethodLength: Method has too many lines. [11/10]", 694290592], - [108, 121, 3, "Layout/LineLength: Line is too long. [123/120]", 193340030], - [172, 11, 1133, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `from_library` is too high. [11/7]", 2613019266], - [172, 11, 1133, "Metrics/MethodLength: Method has too many lines. [16/10]", 2613019266], - [172, 11, 1133, "Metrics/PerceivedComplexity: Perceived complexity for `from_library` is too high. [11/8]", 2613019266], - [246, 9, 591, "Metrics/MethodLength: Method has too many lines. [12/10]", 3007454066], - [335, 7, 6287, "Metrics/ClassLength: Class has too many lines. [155/100]", 3100555518], - [362, 9, 452, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `start_byte` is too high. [8/7]", 2663206926], - [362, 9, 452, "Metrics/MethodLength: Method has too many lines. [12/10]", 2663206926], - [380, 9, 557, "Metrics/MethodLength: Method has too many lines. [12/10]", 2982914846], - [443, 9, 404, "Metrics/MethodLength: Method has too many lines. [11/10]", 1111982079], - [495, 61, 10, "Style/NumericPredicate: Use `offset.positive?` instead of `offset > 0`.", 2454414278], - [501, 9, 313, "Metrics/MethodLength: Method has too many lines. [13/10]", 1927903077], - [519, 9, 448, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `find_first_slice` is too high. [8/7]", 229178429], - [519, 9, 448, "Metrics/MethodLength: Method has too many lines. [16/10]", 229178429], - [524, 17, 11, "Style/HashEachMethods: Use `each_value` instead of `values.each`.", 236538172], - [539, 9, 461, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `find_last_slice` is too high. [8/7]", 3960808114], - [539, 9, 461, "Metrics/MethodLength: Method has too many lines. [16/10]", 3960808114] - ], - "lib/tree_haver/backends/prism.rb:265399087": [ - [39, 9, 448, "Metrics/MethodLength: Method has too many lines. [11/10]", 2383415890], - [70, 121, 13, "Layout/LineLength: Line is too long. [133/120]", 721867551], - [71, 9, 712, "Metrics/MethodLength: Method has too many lines. [12/10]", 1576927704], - [145, 41, 6, "Lint/UnusedMethodArgument: Unused method argument - `symbol`.", 2153517219], - [182, 9, 554, "Metrics/MethodLength: Method has too many lines. [16/10]", 3452414947], - [250, 13, 11, "Naming/PredicatePrefix: Rename `has_errors?` to `errors?`.", 1181419252], - [275, 69, 27, "Lint/HashCompareByIdentity: Use `Hash#compare_by_identity` instead of using `object_id` for keys.", 1979346241], - [301, 13, 64, "Lint/HashCompareByIdentity: Use `Hash#compare_by_identity` instead of using `object_id` for keys.", 1942915391], - [305, 9, 519, "Metrics/AbcSize: Assignment Branch Condition size for `classify_comment_hint` is too high. [<5, 20, 5> 21.21/17]", 869270335], - [485, 13, 10, "Naming/PredicatePrefix: Rename `has_error?` to `error?`.", 946854183], - [554, 24, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765] - ], - "lib/tree_haver/backends/psych.rb:1528613408": [ - [30, 9, 448, "Metrics/MethodLength: Method has too many lines. [11/10]", 2367418678], - [59, 9, 601, "Metrics/MethodLength: Method has too many lines. [11/10]", 2824278890], - [342, 9, 901, "Metrics/AbcSize: Assignment Branch Condition size for `extract_text_from_location` is too high. [<8, 23, 18> 30.28/17]", 1252700264], - [342, 9, 901, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `extract_text_from_location` is too high. [14/7]", 1252700264], - [342, 9, 901, "Metrics/MethodLength: Method has too many lines. [22/10]", 1252700264], - [342, 9, 901, "Metrics/PerceivedComplexity: Perceived complexity for `extract_text_from_location` is too high. [16/8]", 1252700264] - ], - "lib/tree_haver/backends/rust.rb:3784474048": [ - [52, 9, 548, "Metrics/MethodLength: Method has too many lines. [15/10]", 3791803966], - [156, 121, 1, "Layout/LineLength: Line is too long. [121/120]", 177548] - ], - "lib/tree_haver/backends/tslp.rb:3474467412": [ - [10, 5, 6880, "Metrics/ModuleLength: Module has too many lines. [116/100]", 335751325], - [33, 9, 663, "Metrics/MethodLength: Method has too many lines. [16/10]", 2812178140], - [112, 9, 652, "Metrics/MethodLength: Method has too many lines. [12/10]", 104646199], - [124, 35, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], - [145, 7, 14, "Style/Documentation: Missing top-level documentation comment for `class TreeHaver::Backends::Tslp::Language`.", 3674592793], - [157, 7, 12, "Style/Documentation: Missing top-level documentation comment for `class TreeHaver::Backends::Tslp::Parser`.", 2485220908], - [158, 9, 582, "Metrics/AbcSize: Assignment Branch Condition size for `parse` is too high. [<2, 17, 4> 17.58/17]", 103430155], - [180, 7, 10, "Style/Documentation: Missing top-level documentation comment for `class TreeHaver::Backends::Tslp::Tree`.", 3516465773], - [186, 7, 10, "Style/Documentation: Missing top-level documentation comment for `class TreeHaver::Backends::Tslp::Node`.", 3515419275], - [220, 13, 10, "Naming/PredicatePrefix: Rename `has_error?` to `error?`.", 946854183] - ], - "lib/tree_haver/base/comment.rb:699160654": [ - [10, 5, 8183, "Metrics/ClassLength: Class has too many lines. [152/100]", 4001235397] - ], - "lib/tree_haver/base/node.rb:586469776": [ - [36, 5, 7668, "Metrics/ClassLength: Class has too many lines. [156/100]", 171773185], - [162, 11, 10, "Naming/PredicatePrefix: Rename `has_error?` to `error?`.", 946854183], - [208, 27, 8, "Style/NumericPredicate: Use `cmp.zero?` instead of `cmp == 0`.", 736104011], - [239, 7, 888, "Metrics/AbcSize: Assignment Branch Condition size for `source_position` is too high. [<6, 20, 12> 24.08/17]", 3968023659], - [239, 7, 888, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `source_position` is too high. [9/7]", 3968023659], - [239, 7, 888, "Metrics/MethodLength: Method has too many lines. [28/10]", 3968023659], - [239, 7, 888, "Metrics/PerceivedComplexity: Perceived complexity for `source_position` is too high. [13/8]", 3968023659], - [306, 7, 355, "Metrics/MethodLength: Method has too many lines. [11/10]", 1012295608] - ], - "lib/tree_haver/base/tree.rb:3081630142": [ - [89, 15, 145, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 1155535733], - [103, 11, 10, "Naming/PredicatePrefix: Rename `has_error?` to `error?`.", 946854183] - ], - "lib/tree_haver/citrus_grammar_finder.rb:2540014236": [ - [31, 3, 7013, "Metrics/ClassLength: Class has too many lines. [102/100]", 245808593], - [66, 5, 3770, "Metrics/AbcSize: Assignment Branch Condition size for `available?` is too high. [<16, 52, 21> 58.32/17]", 3886463212], - [66, 5, 3770, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `available?` is too high. [22/7]", 3886463212], - [66, 5, 3770, "Metrics/MethodLength: Method has too many lines. [50/10]", 3886463212], - [66, 5, 3770, "Metrics/PerceivedComplexity: Perceived complexity for `available?` is too high. [22/8]", 3886463212], - [94, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5858894] - ], - "lib/tree_haver/contracts.rb:1571706604": [ - [3, 1, 16, "Style/Documentation: Missing top-level documentation comment for `module TreeHaver`.", 3627168465], - [3, 1, 28139, "Metrics/ModuleLength: Module has too many lines. [924/100]", 3701899480], - [91, 5, 732, "Metrics/AbcSize: Assignment Branch Condition size for `to_h` is too high. [<0, 18, 2> 18.11/17]", 3031678572], - [91, 5, 732, "Metrics/MethodLength: Method has too many lines. [17/10]", 3031678572], - [170, 5, 697, "Metrics/MethodLength: Method has too many lines. [18/10]", 389212725], - [231, 5, 507, "Metrics/MethodLength: Method has too many lines. [13/10]", 2631332781], - [329, 5, 580, "Metrics/MethodLength: Method has too many lines. [13/10]", 2166080747], - [558, 5, 558, "Metrics/AbcSize: Assignment Branch Condition size for `to_h` is too high. [<0, 17, 4> 17.46/17]", 2109105399], - [558, 5, 558, "Metrics/MethodLength: Method has too many lines. [18/10]", 2109105399], - [610, 3, 780, "Metrics/AbcSize: Assignment Branch Condition size for `library_path_errors` is too high. [<3, 20, 10> 22.56/17]", 1003454820], - [610, 3, 780, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `library_path_errors` is too high. [10/7]", 1003454820], - [610, 3, 780, "Metrics/MethodLength: Method has too many lines. [14/10]", 1003454820], - [610, 3, 780, "Metrics/PerceivedComplexity: Perceived complexity for `library_path_errors` is too high. [10/8]", 1003454820], - [652, 3, 686, "Metrics/MethodLength: Method has too many lines. [16/10]", 2530945134], - [674, 3, 483, "Metrics/MethodLength: Method has too many lines. [15/10]", 3654427448], - [693, 3, 511, "Metrics/MethodLength: Method has too many lines. [16/10]", 145071639], - [770, 5, 384, "Metrics/AbcSize: Assignment Branch Condition size for `to_h` is too high. [<0, 19, 6> 19.92/17]", 1287649270], - [841, 5, 449, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `to_h` is too high. [10/7]", 1722332092], - [841, 5, 449, "Metrics/PerceivedComplexity: Perceived complexity for `to_h` is too high. [10/8]", 1722332092], - [873, 121, 1, "Layout/LineLength: Line is too long. [121/120]", 177610], - [874, 5, 420, "Metrics/MethodLength: Method has too many lines. [12/10]", 722580369], - [914, 42, 8, "Lint/StructNewOverride: `:entries` member overrides `Struct#entries` and it may be unexpected.", 999966509], - [937, 3, 473, "Metrics/MethodLength: Method has too many lines. [18/10]", 1284459726], - [958, 3, 655, "Metrics/AbcSize: Assignment Branch Condition size for `byte_offset_for_point` is too high. [<7, 25, 14> 29.5/17]", 1278853347], - [958, 3, 655, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `byte_offset_for_point` is too high. [9/7]", 1278853347], - [958, 3, 655, "Metrics/MethodLength: Method has too many lines. [17/10]", 1278853347], - [958, 3, 655, "Metrics/PerceivedComplexity: Perceived complexity for `byte_offset_for_point` is too high. [10/8]", 1278853347] - ], - "lib/tree_haver/grammar_finder.rb:262426767": [ - [55, 3, 13737, "Metrics/ClassLength: Class has too many lines. [201/100]", 842233610], - [155, 5, 1710, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `find_library_path` is too high. [8/7]", 4164717952], - [155, 5, 1710, "Metrics/MethodLength: Method has too many lines. [25/10]", 4164717952], - [269, 7, 845, "Metrics/MethodLength: Method has too many lines. [12/10]", 916567473], - [315, 5, 577, "Metrics/MethodLength: Method has too many lines. [16/10]", 651056353], - [340, 5, 623, "Metrics/MethodLength: Method has too many lines. [14/10]", 1438381615], - [360, 5, 846, "Metrics/MethodLength: Method has too many lines. [12/10]", 667615068], - [398, 5, 730, "Metrics/MethodLength: Method has too many lines. [13/10]", 927307656] - ], - "lib/tree_haver/kaitai_backend.rb:335397596": [ - [3, 1, 16, "Style/Documentation: Missing top-level documentation comment for `module TreeHaver`.", 3627168465] - ], - "lib/tree_haver/language.rb:2775049278": [ - [39, 3, 12087, "Metrics/ModuleLength: Module has too many lines. [115/100]", 221887443], - [40, 5, 12061, "Metrics/ClassLength: Class has too many lines. [113/100]", 309443185], - [89, 7, 1966, "Metrics/AbcSize: Assignment Branch Condition size for `from_library` is too high. [<4, 20, 10> 22.72/17]", 980659500], - [89, 7, 1966, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `from_library` is too high. [9/7]", 980659500], - [89, 7, 1966, "Metrics/MethodLength: Method has too many lines. [31/10]", 980659500], - [89, 7, 1966, "Metrics/PerceivedComplexity: Perceived complexity for `from_library` is too high. [11/8]", 980659500], - [114, 121, 1, "Layout/LineLength: Line is too long. [121/120]", 177538], - [156, 7, 4289, "Metrics/AbcSize: Assignment Branch Condition size for `method_missing` is too high. [<10, 39, 30> 50.21/17]", 1314689525], - [156, 7, 4289, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `method_missing` is too high. [24/7]", 1314689525], - [156, 7, 4289, "Metrics/MethodLength: Method has too many lines. [56/10]", 1314689525], - [156, 7, 4289, "Metrics/PerceivedComplexity: Perceived complexity for `method_missing` is too high. [26/8]", 1314689525], - [274, 7, 786, "Metrics/MethodLength: Method has too many lines. [12/10]", 3697766033] - ], - "lib/tree_haver/language_pack.rb:3024861237": [ - [3, 1, 16, "Style/Documentation: Missing top-level documentation comment for `module TreeHaver`.", 3627168465] - ], - "lib/tree_haver/language_registry.rb:3137013690": [ - [83, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5861089], - [111, 5, 834, "Metrics/AbcSize: Assignment Branch Condition size for `with_registration` is too high. [<11, 22, 5> 25.1/17]", 1103319853], - [111, 5, 834, "Metrics/MethodLength: Method has too many lines. [25/10]", 1103319853] - ], - "lib/tree_haver/library_path_utils.rb:1552423902": [ - [32, 5, 861, "Metrics/MethodLength: Method has too many lines. [12/10]", 1638068630] - ], - "lib/tree_haver/node.rb:715762930": [ - [62, 3, 16601, "Metrics/ClassLength: Class has too many lines. [237/100]", 2290466920], - [136, 5, 708, "Metrics/AbcSize: Assignment Branch Condition size for `start_point` is too high. [<2, 19, 7> 20.35/17]", 2066418249], - [136, 5, 708, "Metrics/MethodLength: Method has too many lines. [17/10]", 2066418249], - [161, 5, 694, "Metrics/AbcSize: Assignment Branch Condition size for `end_point` is too high. [<2, 19, 7> 20.35/17]", 2127773446], - [161, 5, 694, "Metrics/MethodLength: Method has too many lines. [17/10]", 2127773446], - [232, 5, 948, "Metrics/AbcSize: Assignment Branch Condition size for `text` is too high. [<1, 14, 11> 17.83/17]", 748349201], - [232, 5, 948, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `text` is too high. [9/7]", 748349201], - [232, 5, 948, "Metrics/MethodLength: Method has too many lines. [16/10]", 748349201], - [232, 5, 948, "Metrics/PerceivedComplexity: Perceived complexity for `text` is too high. [11/8]", 748349201], - [259, 9, 10, "Naming/PredicatePrefix: Rename `has_error?` to `error?`.", 946854183], - [328, 5, 994, "Metrics/AbcSize: Assignment Branch Condition size for `named_child` is too high. [<6, 13, 10> 17.46/17]", 3449163117], - [328, 5, 994, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `named_child` is too high. [9/7]", 3449163117], - [328, 5, 994, "Metrics/MethodLength: Method has too many lines. [21/10]", 3449163117], - [328, 5, 994, "Metrics/PerceivedComplexity: Perceived complexity for `named_child` is too high. [10/8]", 3449163117], - [366, 5, 734, "Metrics/MethodLength: Method has too many lines. [15/10]", 3099919150], - [425, 7, 4, "Style/EmptyElse: Redundant `else`-clause.", 2087423834] - ], - "lib/tree_haver/parser.rb:1959976510": [ - [71, 3, 15231, "Metrics/ClassLength: Class has too many lines. [181/100]", 2262931609], - [84, 5, 938, "Metrics/MethodLength: Method has too many lines. [13/10]", 569209133], - [116, 5, 844, "Metrics/MethodLength: Method has too many lines. [11/10]", 3700471369], - [141, 5, 583, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `backend` is too high. [9/7]", 942469984], - [141, 5, 583, "Metrics/MethodLength: Method has too many lines. [20/10]", 942469984], - [237, 5, 1114, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `parse_string` is too high. [8/7]", 2146281390], - [237, 5, 1114, "Metrics/MethodLength: Method has too many lines. [16/10]", 2146281390], - [237, 5, 1114, "Metrics/PerceivedComplexity: Perceived complexity for `parse_string` is too high. [10/8]", 2146281390], - [273, 5, 1162, "Metrics/AbcSize: Assignment Branch Condition size for `switch_backend_for_language` is too high. [<10, 11, 11> 18.49/17]", 3918477333], - [273, 5, 1162, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `switch_backend_for_language` is too high. [11/7]", 3918477333], - [273, 5, 1162, "Metrics/MethodLength: Method has too many lines. [26/10]", 3918477333], - [273, 5, 1162, "Metrics/PerceivedComplexity: Perceived complexity for `switch_backend_for_language` is too high. [9/8]", 3918477333], - [320, 5, 3598, "Metrics/AbcSize: Assignment Branch Condition size for `unwrap_language` is too high. [<4, 32, 32> 45.43/17]", 2683894777], - [320, 5, 3598, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `unwrap_language` is too high. [29/7]", 2683894777], - [320, 5, 3598, "Metrics/MethodLength: Method has too many lines. [55/10]", 2683894777], - [320, 5, 3598, "Metrics/PerceivedComplexity: Perceived complexity for `unwrap_language` is too high. [23/8]", 2683894777], - [414, 5, 892, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `try_reload_language_for_backend` is too high. [9/7]", 1872419716], - [414, 5, 892, "Metrics/MethodLength: Method has too many lines. [14/10]", 1872419716], - [414, 5, 892, "Metrics/PerceivedComplexity: Perceived complexity for `try_reload_language_for_backend` is too high. [9/8]", 1872419716] - ], - "lib/tree_haver/parslet_grammar_finder.rb:756779364": [ - [32, 3, 6418, "Metrics/ClassLength: Class has too many lines. [105/100]", 2916347470], - [67, 5, 2630, "Metrics/AbcSize: Assignment Branch Condition size for `available?` is too high. [<14, 39, 19> 45.59/17]", 1827795944], - [67, 5, 2630, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `available?` is too high. [20/7]", 1827795944], - [67, 5, 2630, "Metrics/MethodLength: Method has too many lines. [43/10]", 1827795944], - [67, 5, 2630, "Metrics/PerceivedComplexity: Perceived complexity for `available?` is too high. [20/8]", 1827795944] - ], - "lib/tree_haver/path_validator.rb:1827441298": [ - [31, 3, 11571, "Metrics/ModuleLength: Module has too many lines. [133/100]", 3916793077], - [71, 5, 1048, "Metrics/AbcSize: Assignment Branch Condition size for `trusted_directories` is too high. [<4, 16, 5> 17.23/17]", 2683168069], - [71, 5, 1048, "Metrics/MethodLength: Method has too many lines. [13/10]", 2683168069], - [182, 5, 1000, "Metrics/AbcSize: Assignment Branch Condition size for `safe_library_path?` is too high. [<1, 15, 15> 21.24/17]", 3331427816], - [182, 5, 1000, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `safe_library_path?` is too high. [15/7]", 3331427816], - [182, 5, 1000, "Metrics/MethodLength: Method has too many lines. [11/10]", 3331427816], - [182, 5, 1000, "Metrics/PerceivedComplexity: Perceived complexity for `safe_library_path?` is too high. [15/8]", 3331427816], - [314, 5, 911, "Metrics/AbcSize: Assignment Branch Condition size for `validation_errors` is too high. [<2, 21, 13> 24.78/17]", 1249065882], - [314, 5, 911, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `validation_errors` is too high. [13/7]", 1249065882], - [314, 5, 911, "Metrics/MethodLength: Method has too many lines. [14/10]", 1249065882], - [314, 5, 911, "Metrics/PerceivedComplexity: Perceived complexity for `validation_errors` is too high. [13/8]", 1249065882], - [345, 9, 20, "Naming/PredicatePrefix: Rename `has_valid_extension?` to `valid_extension?`.", 2041908655] - ], - "lib/tree_haver/peg_backends.rb:2882446693": [ - [3, 1, 16, "Style/Documentation: Missing top-level documentation comment for `module TreeHaver`.", 3627168465], - [37, 3, 611, "Metrics/MethodLength: Method has too many lines. [21/10]", 2394303132], - [39, 11, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], - [61, 3, 377, "Metrics/MethodLength: Method has too many lines. [13/10]", 1137341195] - ], - "lib/tree_haver/rspec/dependency_tags.rb:2954930617": [ - [7, 5, 21, "Style/Documentation: Missing top-level documentation comment for `module TreeHaver::RSpec::DependencyTags`.", 2626933713] - ], - "lib/tree_haver/tree.rb:3332079774": [ - [129, 5, 1443, "Metrics/AbcSize: Assignment Branch Condition size for `edit` is too high. [<8, 18, 7> 20.9/17]", 4208399016], - [129, 5, 1443, "Metrics/MethodLength: Method has too many lines. [24/10]", 4208399016], - [129, 13, 89, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 3152137646] - ], - "spec/backend_registry_spec.rb:229950927": [ - [5, 1, 3102, "Metrics/BlockLength: Block has too many lines. [62/25]", 3416335650] - ], - "spec/backends/tslp_spec.rb:3041579573": [ - [5, 1, 8455, "Metrics/BlockLength: Block has too many lines. [173/25]", 3520038900], - [71, 59, 9, "Lint/DuplicateMethods: Method `::Object#parse` is defined at both spec/backends/tslp_spec.rb:55 and spec/backends/tslp_spec.rb:71.", 3551808887], - [87, 3, 1545, "Metrics/BlockLength: Block has too many lines. [33/25]", 1552545577], - [170, 3, 1352, "Metrics/BlockLength: Block has too many lines. [29/25]", 2972556266] - ], - "spec/fixtures_integration_spec.rb:1473080413": [ - [3, 1, 52001, "Metrics/BlockLength: Block has too many lines. [1115/25]", 592858895], - [108, 3, 1282, "Metrics/BlockLength: Block has too many lines. [29/25]", 505243730], - [141, 3, 1840, "Metrics/BlockLength: Block has too many lines. [35/25]", 1365684528], - [180, 3, 1365, "Metrics/BlockLength: Block has too many lines. [33/25]", 1597100003], - [247, 3, 2110, "Metrics/BlockLength: Block has too many lines. [41/25]", 219204301], - [294, 3, 2166, "Metrics/BlockLength: Block has too many lines. [27/25]", 2219571348], - [354, 3, 1786, "Metrics/BlockLength: Block has too many lines. [30/25]", 1655451032], - [432, 3, 1345, "Metrics/BlockLength: Block has too many lines. [26/25]", 1188499098], - [534, 3, 3250, "Metrics/BlockLength: Block has too many lines. [64/25]", 2852118886], - [589, 121, 57, "Layout/LineLength: Line is too long. [177/120]", 2115564430], - [602, 3, 752, "Metrics/AbcSize: Assignment Branch Condition size for `normalized_tree_node` is too high. [<0, 19, 4> 19.42/17]", 1725197185], - [602, 3, 752, "Metrics/MethodLength: Method has too many lines. [18/10]", 1725197185], - [623, 3, 850, "Metrics/AbcSize: Assignment Branch Condition size for `backend_capability` is too high. [<0, 20, 0> 20/17]", 3278569026], - [623, 3, 850, "Metrics/MethodLength: Method has too many lines. [14/10]", 3278569026], - [640, 3, 744, "Metrics/MethodLength: Method has too many lines. [13/10]", 1675624229], - [679, 3, 492, "Metrics/MethodLength: Method has too many lines. [11/10]", 4123526878], - [714, 3, 566, "Metrics/AbcSize: Assignment Branch Condition size for `parse_error_tolerance` is too high. [<1, 17, 1> 17.06/17]", 933590597], - [714, 3, 566, "Metrics/MethodLength: Method has too many lines. [14/10]", 933590597], - [739, 3, 2652, "Metrics/BlockLength: Block has too many lines. [47/25]", 214520278], - [1039, 7, 87, "Lint/ConstantDefinitionInBlock: Do not define constants this way within a block.", 3860036845], - [1045, 7, 60, "Lint/ConstantDefinitionInBlock: Do not define constants this way within a block.", 1411318317], - [1063, 3, 1334, "Metrics/BlockLength: Block has too many lines. [41/25]", 1427111445], - [1069, 7, 134, "Lint/ConstantDefinitionInBlock: Do not define constants this way within a block.", 1166944291], - [1075, 7, 60, "Lint/ConstantDefinitionInBlock: Do not define constants this way within a block.", 1411318317], - [1085, 7, 134, "Lint/ConstantDefinitionInBlock: Do not define constants this way within a block.", 1166944291], - [1091, 7, 60, "Lint/ConstantDefinitionInBlock: Do not define constants this way within a block.", 1411318317], - [1115, 3, 1290, "Metrics/BlockLength: Block has too many lines. [41/25]", 3478080675], - [1121, 7, 157, "Lint/ConstantDefinitionInBlock: Do not define constants this way within a block.", 2460330604], - [1127, 7, 60, "Lint/ConstantDefinitionInBlock: Do not define constants this way within a block.", 1411318317], - [1137, 7, 154, "Lint/ConstantDefinitionInBlock: Do not define constants this way within a block.", 3868502553], - [1143, 7, 60, "Lint/ConstantDefinitionInBlock: Do not define constants this way within a block.", 1411318317], - [1167, 3, 1405, "Metrics/BlockLength: Block has too many lines. [44/25]", 2313436250], - [1173, 7, 134, "Lint/ConstantDefinitionInBlock: Do not define constants this way within a block.", 1166944291], - [1179, 7, 60, "Lint/ConstantDefinitionInBlock: Do not define constants this way within a block.", 1411318317], - [1189, 7, 134, "Lint/ConstantDefinitionInBlock: Do not define constants this way within a block.", 1166944291], - [1195, 7, 60, "Lint/ConstantDefinitionInBlock: Do not define constants this way within a block.", 1411318317] - ], - "spec/grammar_finder_spec.rb:143254687": [ - [5, 1, 3065, "Metrics/BlockLength: Block has too many lines. [51/25]", 4150338550], - [19, 3, 2446, "Metrics/BlockLength: Block has too many lines. [39/25]", 552612354] - ], - "tree_haver.gemspec:3046477115": [ - [16, 121, 19, "Layout/LineLength: Line is too long. [139/120]", 1512975621], - [129, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 2821357214], - [146, 121, 50, "Layout/LineLength: Line is too long. [170/120]", 3888612416], - [147, 121, 29, "Layout/LineLength: Line is too long. [149/120]", 981994949], - [154, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 4229808912] - ] -} diff --git a/gems/tree_haver/spec/spec_helper.rb b/gems/tree_haver/spec/spec_helper.rb index 3a5888fc4..ae739d5d0 100644 --- a/gems/tree_haver/spec/spec_helper.rb +++ b/gems/tree_haver/spec/spec_helper.rb @@ -7,16 +7,16 @@ # NOTE: Gemfiles for non-coverage appraisals may not have kettle-soup-cover. # The rescue LoadError handles that scenario. begin - require 'kettle-soup-cover' + require "kettle-soup-cover" if Kettle::Soup::Cover::DO_COV # Requiring simplecov loads the project-local `.simplecov`. - require 'simplecov' - require 'kettle/soup/cover/config' + require "simplecov" + require "kettle/soup/cover/config" SimpleCov.start end -rescue LoadError => e +rescue LoadError => error # check the error message and re-raise when unexpected - raise e unless e.message.include?('kettle') + raise error unless error.message.include?("kettle") end # External RSpec & related config From 2a11b84e934a2df836b09b686df206b9a14eab01 Mon Sep 17 00:00:00 2001 From: "Peter H. Boling" Date: Tue, 21 Jul 2026 18:37:47 -0600 Subject: [PATCH 178/188] =?UTF-8?q?=F0=9F=8E=A8=20Template=20bootstrap=20b?= =?UTF-8?q?y=20kettle-jem=20v7.1.0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gems/ruby-merge/.rubocop_gradual.lock | 391 ++++++++++++++++++++ gems/ruby-merge/Gemfile.lock | 4 +- gems/tree_haver/.rubocop_gradual.lock | 500 ++++++++++++++++++++++++++ gems/tree_haver/spec/spec_helper.rb | 10 +- 4 files changed, 898 insertions(+), 7 deletions(-) create mode 100644 gems/ruby-merge/.rubocop_gradual.lock create mode 100644 gems/tree_haver/.rubocop_gradual.lock diff --git a/gems/ruby-merge/.rubocop_gradual.lock b/gems/ruby-merge/.rubocop_gradual.lock new file mode 100644 index 000000000..83c8b7719 --- /dev/null +++ b/gems/ruby-merge/.rubocop_gradual.lock @@ -0,0 +1,391 @@ +{ + ".simplecov:3012692149": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "Rakefile:2768890125": [ + [18, 121, 17, "Layout/LineLength: Line is too long. [137/120]", 174264873], + [79, 3, 1023, "Metrics/BlockLength: Block has too many lines. [32/25]", 54868638], + [163, 121, 22, "Layout/LineLength: Line is too long. [142/120]", 1367093088], + [166, 121, 18, "Layout/LineLength: Line is too long. [138/120]", 3881946477] + ], + "gemfiles/modular/benchmark/r4/v0.5.gemfile:3644720371": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/benchmark/vHEAD.gemfile:2838879269": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/cgi/r4/v0.5.gemfile:367169322": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/cgi/vHEAD.gemfile:2729540777": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/erb/r2/v3.0.gemfile:1688285565": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/erb/r3/v5.0.gemfile:2394062339": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/erb/r4/v5.0.gemfile:2394062339": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/erb/vHEAD.gemfile:981929959": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/mutex_m/r2/v0.3.gemfile:4055275004": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/mutex_m/r3/v0.3.gemfile:4055275004": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/mutex_m/r4/v0.3.gemfile:4055275004": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/mutex_m/vHEAD.gemfile:556854763": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/rspec.gemfile:2263543889": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/stringio/r2/v3.0.gemfile:821604304": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/stringio/r3/v3.0.gemfile:821604304": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/stringio/r4/v3.0.gemfile:821604304": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/stringio/vHEAD.gemfile:1045839691": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/webrick/r4/v1.9.gemfile:3092661193": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/webrick/vHEAD.gemfile:3867684682": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/x_std_libs.gemfile:2324400122": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/x_std_libs/r2/libs.gemfile:36276542": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] + ], + "gemfiles/modular/x_std_libs/r3/libs.gemfile:4030570297": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] + ], + "gemfiles/modular/x_std_libs/r4/libs.gemfile:732451732": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] + ], + "gemfiles/modular/x_std_libs/vHEAD.gemfile:2390363993": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] + ], + "lib/ruby-merge.rb:2992445753": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`ruby-merge.rb`) should use snake_case.", 5381] + ], + "lib/ruby/merge.rb:1254439043": [ + [21, 3, 12, "Style/Documentation: Missing top-level documentation comment for `module Ruby::Merge`.", 2866359175], + [21, 3, 115060, "Metrics/ModuleLength: Module has too many lines. [2589/100]", 3781535251], + [43, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 3061257365], + [119, 5, 912, "Metrics/MethodLength: Method has too many lines. [17/10]", 3288645431], + [163, 5, 2656, "Metrics/AbcSize: Assignment Branch Condition size for `ruby_method_move_detection` is too high. [<17, 40, 18> 47.04/17]", 3779436399], + [163, 5, 2656, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `ruby_method_move_detection` is too high. [16/7]", 3779436399], + [163, 5, 2656, "Metrics/MethodLength: Method has too many lines. [45/10]", 3779436399], + [163, 5, 2656, "Metrics/PerceivedComplexity: Perceived complexity for `ruby_method_move_detection` is too high. [16/8]", 3779436399], + [175, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 727785047], + [188, 121, 51, "Layout/LineLength: Line is too long. [171/120]", 3259664538], + [207, 9, 7, "Style/MultilineBlockChain: Avoid multi-line chains of blocks.", 4045560504], + [210, 9, 7, "Style/MultilineBlockChain: Avoid multi-line chains of blocks.", 4045560504], + [211, 121, 7, "Layout/LineLength: Line is too long. [127/120]", 1976354608], + [215, 5, 4531, "Metrics/AbcSize: Assignment Branch Condition size for `merge_ruby` is too high. [<31, 64, 24> 75.05/17]", 2749692967], + [215, 5, 4531, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `merge_ruby` is too high. [21/7]", 2749692967], + [215, 5, 4531, "Metrics/MethodLength: Method has too many lines. [86/10]", 2749692967], + [215, 5, 4531, "Metrics/PerceivedComplexity: Perceived complexity for `merge_ruby` is too high. [22/8]", 2749692967], + [277, 9, 7, "Style/MultilineBlockChain: Avoid multi-line chains of blocks.", 4045560504], + [316, 5, 1312, "Metrics/AbcSize: Assignment Branch Condition size for `ruby_delegated_child_operations` is too high. [<10, 15, 6> 19/17]", 2246428949], + [316, 5, 1312, "Metrics/MethodLength: Method has too many lines. [28/10]", 2246428949], + [362, 5, 861, "Metrics/AbcSize: Assignment Branch Condition size for `ruby_source_owner_identity_profile` is too high. [<5, 17, 2> 17.83/17]", 4129925341], + [362, 5, 861, "Metrics/MethodLength: Method has too many lines. [20/10]", 4129925341], + [385, 5, 2064, "Metrics/AbcSize: Assignment Branch Condition size for `ruby_source_owner_identity_matches` is too high. [<17, 31, 11> 37.03/17]", 2780319153], + [385, 5, 2064, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `ruby_source_owner_identity_matches` is too high. [11/7]", 2780319153], + [385, 5, 2064, "Metrics/MethodLength: Method has too many lines. [37/10]", 2780319153], + [385, 5, 2064, "Metrics/PerceivedComplexity: Perceived complexity for `ruby_source_owner_identity_matches` is too high. [11/8]", 2780319153], + [414, 9, 7, "Style/MultilineBlockChain: Avoid multi-line chains of blocks.", 4045560504], + [417, 9, 7, "Style/MultilineBlockChain: Avoid multi-line chains of blocks.", 4045560504], + [422, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 1001816794], + [428, 5, 1314, "Metrics/MethodLength: Method has too many lines. [28/10]", 4183124680], + [461, 5, 786, "Metrics/MethodLength: Method has too many lines. [24/10]", 3631640245], + [488, 5, 926, "Metrics/MethodLength: Method has too many lines. [18/10]", 4274646050], + [509, 5, 662, "Metrics/MethodLength: Method has too many lines. [15/10]", 2231086183], + [528, 5, 777, "Metrics/MethodLength: Method has too many lines. [18/10]", 895030114], + [549, 5, 727, "Metrics/MethodLength: Method has too many lines. [19/10]", 776483642], + [571, 5, 861, "Metrics/MethodLength: Method has too many lines. [29/10]", 537340961], + [603, 5, 655, "Metrics/MethodLength: Method has too many lines. [16/10]", 3756601977], + [622, 5, 1592, "Metrics/MethodLength: Method has too many lines. [25/10]", 3521052904], + [646, 121, 106, "Layout/LineLength: Line is too long. [226/120]", 2104286058], + [652, 5, 777, "Metrics/MethodLength: Method has too many lines. [14/10]", 2821246515], + [669, 5, 1429, "Metrics/MethodLength: Method has too many lines. [26/10]", 244346226], + [692, 121, 124, "Layout/LineLength: Line is too long. [244/120]", 13261232], + [698, 5, 1367, "Metrics/MethodLength: Method has too many lines. [41/10]", 3883814121], + [742, 5, 750, "Metrics/MethodLength: Method has too many lines. [22/10]", 764028624], + [768, 5, 1315, "Metrics/AbcSize: Assignment Branch Condition size for `ruby_silent_data_loss_validation_report` is too high. [<8, 14, 7> 17.58/17]", 2039399818], + [768, 5, 1315, "Metrics/MethodLength: Method has too many lines. [31/10]", 2039399818], + [803, 5, 724, "Metrics/MethodLength: Method has too many lines. [14/10]", 1741779676], + [814, 121, 67, "Layout/LineLength: Line is too long. [187/120]", 1996508131], + [820, 5, 752, "Metrics/MethodLength: Method has too many lines. [21/10]", 3870096101], + [844, 5, 1052, "Metrics/MethodLength: Method has too many lines. [32/10]", 119279638], + [896, 5, 536, "Metrics/MethodLength: Method has too many lines. [13/10]", 245509059], + [912, 5, 2252, "Metrics/AbcSize: Assignment Branch Condition size for `ruby_rename_detection` is too high. [<14, 32, 11> 36.62/17]", 2574664763], + [912, 5, 2252, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `ruby_rename_detection` is too high. [10/7]", 2574664763], + [912, 5, 2252, "Metrics/MethodLength: Method has too many lines. [46/10]", 2574664763], + [912, 5, 2252, "Metrics/PerceivedComplexity: Perceived complexity for `ruby_rename_detection` is too high. [11/8]", 2574664763], + [955, 121, 21, "Layout/LineLength: Line is too long. [141/120]", 4074688513], + [961, 9, 7, "Style/MultilineBlockChain: Avoid multi-line chains of blocks.", 4045560504], + [965, 5, 2254, "Metrics/AbcSize: Assignment Branch Condition size for `ruby_rename_plus_edit_conflicts` is too high. [<15, 30, 13> 35.97/17]", 3664513828], + [965, 5, 2254, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `ruby_rename_plus_edit_conflicts` is too high. [10/7]", 3664513828], + [965, 5, 2254, "Metrics/MethodLength: Method has too many lines. [45/10]", 3664513828], + [965, 5, 2254, "Metrics/PerceivedComplexity: Perceived complexity for `ruby_rename_plus_edit_conflicts` is too high. [11/8]", 3664513828], + [1017, 5, 1926, "Metrics/AbcSize: Assignment Branch Condition size for `ruby_cross_container_method_move_detection` is too high. [<8, 18, 7> 20.9/17]", 1401333972], + [1017, 5, 1926, "Metrics/MethodLength: Method has too many lines. [44/10]", 1401333972], + [1060, 121, 16, "Layout/LineLength: Line is too long. [136/120]", 3474944396], + [1067, 5, 1488, "Metrics/AbcSize: Assignment Branch Condition size for `apply_ruby_delegated_child_outputs` is too high. [<16, 39, 12> 43.83/17]", 842348215], + [1067, 5, 1488, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `apply_ruby_delegated_child_outputs` is too high. [12/7]", 842348215], + [1067, 5, 1488, "Metrics/MethodLength: Method has too many lines. [27/10]", 842348215], + [1067, 5, 1488, "Metrics/PerceivedComplexity: Perceived complexity for `apply_ruby_delegated_child_outputs` is too high. [13/8]", 842348215], + [1101, 5, 980, "Metrics/MethodLength: Method has too many lines. [23/10]", 1425119613], + [1128, 5, 1025, "Metrics/MethodLength: Method has too many lines. [23/10]", 2179557432], + [1156, 5, 757, "Metrics/MethodLength: Method has too many lines. [12/10]", 3975431355], + [1161, 121, 70, "Layout/LineLength: Line is too long. [190/120]", 1956194284], + [1173, 5, 745, "Metrics/MethodLength: Method has too many lines. [12/10]", 1051086033], + [1178, 121, 62, "Layout/LineLength: Line is too long. [182/120]", 1636990749], + [1190, 5, 670, "Metrics/MethodLength: Method has too many lines. [11/10]", 3552666292], + [1195, 121, 17, "Layout/LineLength: Line is too long. [137/120]", 3013228499], + [1206, 5, 678, "Metrics/MethodLength: Method has too many lines. [11/10]", 1356230953], + [1211, 121, 17, "Layout/LineLength: Line is too long. [137/120]", 3013228499], + [1222, 5, 2093, "Metrics/AbcSize: Assignment Branch Condition size for `analyze_ruby_document` is too high. [<21, 31, 12> 39.32/17]", 3298966582], + [1222, 5, 2093, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `analyze_ruby_document` is too high. [13/7]", 3298966582], + [1222, 5, 2093, "Metrics/MethodLength: Method has too many lines. [53/10]", 3298966582], + [1222, 5, 2093, "Metrics/PerceivedComplexity: Perceived complexity for `analyze_ruby_document` is too high. [13/8]", 3298966582], + [1228, 7, 1035, "Metrics/BlockLength: Block has too many lines. [27/25]", 2081528636], + [1297, 5, 427, "Metrics/AbcSize: Assignment Branch Condition size for `ruby_file_footer_text` is too high. [<5, 17, 8> 19.44/17]", 1703748308], + [1324, 5, 806, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `ruby_process_analysis_from_tree` is too high. [10/7]", 1109735749], + [1324, 5, 806, "Metrics/MethodLength: Method has too many lines. [19/10]", 1109735749], + [1374, 5, 533, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `ruby_import_item_from_begin_node` is too high. [8/7]", 582163830], + [1396, 5, 487, "Metrics/MethodLength: Method has too many lines. [12/10]", 3257507103], + [1413, 5, 583, "Metrics/MethodLength: Method has too many lines. [15/10]", 4108141408], + [1456, 5, 645, "Metrics/AbcSize: Assignment Branch Condition size for `ruby_import_span_for` is too high. [<6, 22, 9> 24.52/17]", 1779826452], + [1456, 5, 645, "Metrics/MethodLength: Method has too many lines. [12/10]", 1779826452], + [1508, 5, 1015, "Metrics/MethodLength: Method has too many lines. [16/10]", 1317835917], + [1514, 121, 173, "Layout/LineLength: Line is too long. [293/120]", 225499532], + [1541, 5, 518, "Metrics/AbcSize: Assignment Branch Condition size for `ruby_tslp_claimed_line_indexes` is too high. [<6, 19, 5> 20.54/17]", 1455439838], + [1553, 5, 432, "Metrics/AbcSize: Assignment Branch Condition size for `ruby_process_import_entries` is too high. [<3, 18, 2> 18.36/17]", 62712355], + [1566, 5, 443, "Metrics/MethodLength: Method has too many lines. [12/10]", 4230588206], + [1583, 5, 363, "Metrics/MethodLength: Method has too many lines. [11/10]", 3068065572], + [1644, 5, 1849, "Metrics/AbcSize: Assignment Branch Condition size for `legacy_collect_ruby_declaration_entries` is too high. [<24, 26, 13> 37.7/17]", 3187770326], + [1644, 5, 1849, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `legacy_collect_ruby_declaration_entries` is too high. [11/7]", 3187770326], + [1644, 5, 1849, "Metrics/MethodLength: Method has too many lines. [54/10]", 3187770326], + [1644, 5, 1849, "Metrics/PerceivedComplexity: Perceived complexity for `legacy_collect_ruby_declaration_entries` is too high. [11/8]", 3187770326], + [1691, 13, 76, "Metrics/BlockNesting: Avoid more than 3 levels of block nesting.", 1356567820], + [1727, 5, 396, "Metrics/MethodLength: Method has too many lines. [11/10]", 1239008881], + [1742, 5, 752, "Metrics/AbcSize: Assignment Branch Condition size for `ruby_process_declaration_entries` is too high. [<7, 17, 2> 18.49/17]", 2675999354], + [1742, 5, 752, "Metrics/MethodLength: Method has too many lines. [18/10]", 2675999354], + [1802, 5, 634, "Metrics/AbcSize: Assignment Branch Condition size for `ruby_top_level_process_structure_items` is too high. [<5, 32, 14> 35.28/17]", 1120707166], + [1802, 5, 634, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `ruby_top_level_process_structure_items` is too high. [11/7]", 1120707166], + [1802, 5, 634, "Metrics/MethodLength: Method has too many lines. [11/10]", 1120707166], + [1802, 5, 634, "Metrics/PerceivedComplexity: Perceived complexity for `ruby_top_level_process_structure_items` is too high. [11/8]", 1120707166], + [1814, 7, 11, "Style/MultilineBlockChain: Avoid multi-line chains of blocks.", 848344986], + [1821, 7, 9, "Style/MultilineBlockChain: Avoid multi-line chains of blocks.", 3648222389], + [1866, 5, 1284, "Metrics/AbcSize: Assignment Branch Condition size for `ruby_intra_owner_merge_plan` is too high. [<8, 24, 9> 26.85/17]", 2388567699], + [1866, 5, 1284, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `ruby_intra_owner_merge_plan` is too high. [9/7]", 2388567699], + [1866, 5, 1284, "Metrics/MethodLength: Method has too many lines. [22/10]", 2388567699], + [1866, 5, 1284, "Metrics/PerceivedComplexity: Perceived complexity for `ruby_intra_owner_merge_plan` is too high. [9/8]", 2388567699], + [1907, 5, 557, "Metrics/MethodLength: Method has too many lines. [11/10]", 3178341030], + [1965, 121, 62, "Layout/LineLength: Line is too long. [182/120]", 895013151], + [1970, 5, 593, "Metrics/MethodLength: Method has too many lines. [13/10]", 2850316611], + [1971, 121, 1, "Layout/LineLength: Line is too long. [121/120]", 177625], + [1988, 5, 609, "Metrics/MethodLength: Method has too many lines. [12/10]", 784855730], + [2003, 5, 695, "Metrics/MethodLength: Method has too many lines. [14/10]", 3942458504], + [2040, 5, 1114, "Metrics/AbcSize: Assignment Branch Condition size for `merge_declaration_hash_constants` is too high. [<11, 22, 6> 25.32/17]", 3861922947], + [2040, 5, 1114, "Metrics/MethodLength: Method has too many lines. [17/10]", 3861922947], + [2062, 5, 794, "Metrics/AbcSize: Assignment Branch Condition size for `merge_declaration_body_constants` is too high. [<9, 14, 6> 17.69/17]", 1882117166], + [2092, 5, 1138, "Metrics/AbcSize: Assignment Branch Condition size for `merge_array_constant_text` is too high. [<9, 18, 7> 21.31/17]", 1448081799], + [2092, 5, 1138, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `merge_array_constant_text` is too high. [8/7]", 1448081799], + [2092, 5, 1138, "Metrics/MethodLength: Method has too many lines. [15/10]", 1448081799], + [2098, 121, 3, "Layout/LineLength: Line is too long. [123/120]", 193434112], + [2105, 7, 8, "Style/MultilineBlockChain: Avoid multi-line chains of blocks.", 359846632], + [2112, 5, 774, "Metrics/AbcSize: Assignment Branch Condition size for `merge_percent_array_constant_text` is too high. [<8, 16, 7> 19.21/17]", 625509828], + [2112, 5, 774, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `merge_percent_array_constant_text` is too high. [8/7]", 625509828], + [2141, 5, 1060, "Metrics/AbcSize: Assignment Branch Condition size for `merge_multiline_array_constant_text` is too high. [<11, 23, 10> 27.39/17]", 2672751288], + [2141, 5, 1060, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `merge_multiline_array_constant_text` is too high. [11/7]", 2672751288], + [2141, 5, 1060, "Metrics/MethodLength: Method has too many lines. [13/10]", 2672751288], + [2141, 5, 1060, "Metrics/PerceivedComplexity: Perceived complexity for `merge_multiline_array_constant_text` is too high. [11/8]", 2672751288], + [2150, 7, 8, "Style/MultilineBlockChain: Avoid multi-line chains of blocks.", 359846632], + [2159, 5, 1605, "Metrics/AbcSize: Assignment Branch Condition size for `merge_declaration_body_methods` is too high. [<21, 28, 15> 38.08/17]", 2740924329], + [2159, 5, 1605, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `merge_declaration_body_methods` is too high. [14/7]", 2740924329], + [2159, 5, 1605, "Metrics/MethodLength: Method has too many lines. [29/10]", 2740924329], + [2159, 5, 1605, "Metrics/PerceivedComplexity: Perceived complexity for `merge_declaration_body_methods` is too high. [15/8]", 2740924329], + [2166, 7, 8, "Style/MultilineBlockChain: Avoid multi-line chains of blocks.", 359846632], + [2193, 5, 1076, "Metrics/AbcSize: Assignment Branch Condition size for `merge_nested_body_declarations` is too high. [<14, 24, 10> 29.53/17]", 1397199527], + [2193, 5, 1076, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `merge_nested_body_declarations` is too high. [11/7]", 1397199527], + [2193, 5, 1076, "Metrics/MethodLength: Method has too many lines. [14/10]", 1397199527], + [2193, 5, 1076, "Metrics/PerceivedComplexity: Perceived complexity for `merge_nested_body_declarations` is too high. [11/8]", 1397199527], + [2232, 5, 2710, "Metrics/AbcSize: Assignment Branch Condition size for `top_level_source_region_owners` is too high. [<24, 33, 13> 42.83/17]", 1909271685], + [2232, 5, 2710, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `top_level_source_region_owners` is too high. [11/7]", 1909271685], + [2232, 5, 2710, "Metrics/MethodLength: Method has too many lines. [68/10]", 1909271685], + [2232, 5, 2710, "Metrics/PerceivedComplexity: Perceived complexity for `top_level_source_region_owners` is too high. [11/8]", 1909271685], + [2275, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5861626], + [2290, 121, 28, "Layout/LineLength: Line is too long. [148/120]", 1695648499], + [2310, 5, 2285, "Metrics/AbcSize: Assignment Branch Condition size for `container_child_source_regions` is too high. [<23, 28, 11> 37.87/17]", 1586137568], + [2310, 5, 2285, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `container_child_source_regions` is too high. [10/7]", 1586137568], + [2310, 5, 2285, "Metrics/MethodLength: Method has too many lines. [60/10]", 1586137568], + [2310, 5, 2285, "Metrics/PerceivedComplexity: Perceived complexity for `container_child_source_regions` is too high. [10/8]", 1586137568], + [2388, 5, 30, "Style/Documentation: Missing top-level documentation comment for `class Ruby::Merge::RubyHashLiteralProjector`.", 2586933062], + [2388, 5, 5761, "Metrics/ClassLength: Class has too many lines. [144/100]", 3358513989], + [2421, 7, 617, "Metrics/MethodLength: Method has too many lines. [15/10]", 1617225783], + [2445, 7, 943, "Metrics/AbcSize: Assignment Branch Condition size for `project_hash_key` is too high. [<1, 18, 8> 19.72/17]", 3538404248], + [2445, 7, 943, "Metrics/MethodLength: Method has too many lines. [26/10]", 3538404248], + [2503, 7, 616, "Metrics/AbcSize: Assignment Branch Condition size for `trailing_comma?` is too high. [<3, 20, 6> 21.1/17]", 1517912413], + [2568, 5, 1202, "Metrics/AbcSize: Assignment Branch Condition size for `constant_hash_blocks` is too high. [<19, 25, 6> 31.97/17]", 399214756], + [2568, 5, 1202, "Metrics/MethodLength: Method has too many lines. [36/10]", 399214756], + [2609, 5, 727, "Metrics/AbcSize: Assignment Branch Condition size for `hash_assignment_finish_line` is too high. [<11, 7, 12> 17.72/17]", 1215874404], + [2609, 5, 727, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `hash_assignment_finish_line` is too high. [9/7]", 1215874404], + [2609, 5, 727, "Metrics/MethodLength: Method has too many lines. [26/10]", 1215874404], + [2609, 5, 727, "Metrics/PerceivedComplexity: Perceived complexity for `hash_assignment_finish_line` is too high. [11/8]", 1215874404], + [2639, 5, 2007, "Metrics/AbcSize: Assignment Branch Condition size for `direct_body_method_entries` is too high. [<28, 33, 13> 45.19/17]", 2589282610], + [2639, 5, 2007, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `direct_body_method_entries` is too high. [12/7]", 2589282610], + [2639, 5, 2007, "Metrics/MethodLength: Method has too many lines. [56/10]", 2589282610], + [2639, 5, 2007, "Metrics/PerceivedComplexity: Perceived complexity for `direct_body_method_entries` is too high. [12/8]", 2589282610], + [2704, 5, 1221, "Metrics/AbcSize: Assignment Branch Condition size for `direct_body_constant_entries` is too high. [<16, 34, 10> 38.88/17]", 1588885504], + [2704, 5, 1221, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `direct_body_constant_entries` is too high. [9/7]", 1588885504], + [2704, 5, 1221, "Metrics/MethodLength: Method has too many lines. [35/10]", 1588885504], + [2704, 5, 1221, "Metrics/PerceivedComplexity: Perceived complexity for `direct_body_constant_entries` is too high. [9/8]", 1588885504], + [2747, 5, 708, "Metrics/AbcSize: Assignment Branch Condition size for `split_ruby_array_elements` is too high. [<11, 12, 11> 19.65/17]", 1344003748], + [2747, 5, 708, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `split_ruby_array_elements` is too high. [9/7]", 1344003748], + [2747, 5, 708, "Metrics/MethodLength: Method has too many lines. [24/10]", 1344003748], + [2747, 5, 708, "Metrics/PerceivedComplexity: Perceived complexity for `split_ruby_array_elements` is too high. [11/8]", 1344003748], + [2791, 5, 977, "Metrics/AbcSize: Assignment Branch Condition size for `append_multiline_array_elements` is too high. [<12, 32, 9> 35.34/17]", 1316332112], + [2791, 5, 977, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `append_multiline_array_elements` is too high. [9/7]", 1316332112], + [2791, 5, 977, "Metrics/MethodLength: Method has too many lines. [16/10]", 1316332112], + [2791, 5, 977, "Metrics/PerceivedComplexity: Perceived complexity for `append_multiline_array_elements` is too high. [9/8]", 1316332112], + [2819, 5, 728, "Metrics/AbcSize: Assignment Branch Condition size for `array_assignment_finish_line` is too high. [<11, 7, 12> 17.72/17]", 1471354607], + [2819, 5, 728, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `array_assignment_finish_line` is too high. [9/7]", 1471354607], + [2819, 5, 728, "Metrics/MethodLength: Method has too many lines. [26/10]", 1471354607], + [2819, 5, 728, "Metrics/PerceivedComplexity: Perceived complexity for `array_assignment_finish_line` is too high. [11/8]", 1471354607], + [2855, 5, 1127, "Metrics/AbcSize: Assignment Branch Condition size for `direct_body_declaration_entries` is too high. [<14, 30, 7> 33.84/17]", 1223661118], + [2855, 5, 1127, "Metrics/MethodLength: Method has too many lines. [30/10]", 1223661118], + [2902, 5, 984, "Metrics/AbcSize: Assignment Branch Condition size for `insert_declaration_body_blocks` is too high. [<4, 23, 12> 26.25/17]", 159690081], + [2902, 5, 984, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `insert_declaration_body_blocks` is too high. [9/7]", 159690081], + [2902, 5, 984, "Metrics/MethodLength: Method has too many lines. [16/10]", 159690081], + [2902, 5, 984, "Metrics/PerceivedComplexity: Perceived complexity for `insert_declaration_body_blocks` is too high. [10/8]", 159690081], + [2947, 5, 1027, "Metrics/AbcSize: Assignment Branch Condition size for `merge_ruby_hash_literals` is too high. [<8, 30, 9> 32.33/17]", 2793745298], + [2947, 5, 1027, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `merge_ruby_hash_literals` is too high. [9/7]", 2793745298], + [2947, 5, 1027, "Metrics/MethodLength: Method has too many lines. [19/10]", 2793745298], + [2947, 5, 1027, "Metrics/PerceivedComplexity: Perceived complexity for `merge_ruby_hash_literals` is too high. [10/8]", 2793745298], + [2969, 5, 636, "Metrics/AbcSize: Assignment Branch Condition size for `render_ruby_hash_literal` is too high. [<5, 19, 6> 20.54/17]", 1834383244], + [3009, 5, 491, "Metrics/MethodLength: Method has too many lines. [11/10]", 1799924605], + [3042, 5, 1125, "Metrics/AbcSize: Assignment Branch Condition size for `surfaces_for_owner` is too high. [<6, 19, 3> 20.15/17]", 4036098594], + [3042, 5, 1125, "Metrics/MethodLength: Method has too many lines. [20/10]", 4036098594], + [3067, 5, 1126, "Metrics/AbcSize: Assignment Branch Condition size for `example_surfaces_for` is too high. [<4, 20, 2> 20.49/17]", 757808110], + [3067, 5, 1126, "Metrics/MethodLength: Method has too many lines. [21/10]", 757808110] + ], + "lib/ruby/merge/block_directive_detector.rb:315354690": [ + [10, 5, 6220, "Metrics/ClassLength: Class has too many lines. [161/100]", 3182117306], + [83, 7, 1085, "Metrics/AbcSize: Assignment Branch Condition size for `detect_freeze_spans` is too high. [<10, 18, 6> 21.45/17]", 3827147306], + [83, 7, 1085, "Metrics/MethodLength: Method has too many lines. [27/10]", 3827147306], + [117, 7, 1508, "Metrics/AbcSize: Assignment Branch Condition size for `detect_nocov_spans` is too high. [<10, 30, 10> 33.17/17]", 3750116369], + [117, 7, 1508, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `detect_nocov_spans` is too high. [9/7]", 3750116369], + [117, 7, 1508, "Metrics/MethodLength: Method has too many lines. [40/10]", 3750116369], + [117, 7, 1508, "Metrics/PerceivedComplexity: Perceived complexity for `detect_nocov_spans` is too high. [12/8]", 3750116369], + [125, 9, 1189, "Metrics/BlockLength: Block has too many lines. [30/25]", 431470454], + [165, 7, 921, "Metrics/AbcSize: Assignment Branch Condition size for `validate_no_crossing` is too high. [<8, 16, 8> 19.6/17]", 1072352384], + [165, 7, 921, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `validate_no_crossing` is too high. [8/7]", 1072352384], + [165, 7, 921, "Metrics/MethodLength: Method has too many lines. [19/10]", 1072352384], + [193, 121, 3, "Layout/LineLength: Line is too long. [123/120]", 193343749], + [194, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5860841] + ], + "lib/ruby/merge/doc_comment_support.rb:11585367": [ + [71, 7, 950, "Metrics/AbcSize: Assignment Branch Condition size for `example_blocks` is too high. [<8, 17, 8> 20.42/17]", 878231540], + [71, 7, 950, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `example_blocks` is too high. [8/7]", 878231540], + [71, 7, 950, "Metrics/MethodLength: Method has too many lines. [19/10]", 878231540] + ], + "lib/ruby/merge/gemspec_support.rb:672395758": [ + [5, 5, 21, "Style/Documentation: Missing top-level documentation comment for `module Ruby::Merge::GemspecSupport`.", 593910650] + ], + "lib/ruby/merge/magic_comment_support.rb:2193186223": [ + [26, 7, 1484, "Metrics/AbcSize: Assignment Branch Condition size for `comment_only_prefix_info` is too high. [<9, 38, 8> 39.86/17]", 1098666313], + [26, 7, 1484, "Metrics/MethodLength: Method has too many lines. [33/10]", 1098666313], + [69, 7, 693, "Metrics/AbcSize: Assignment Branch Condition size for `header_magic_comment_types_for_lines` is too high. [<10, 13, 9> 18.71/17]", 3693768719], + [69, 7, 693, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `header_magic_comment_types_for_lines` is too high. [8/7]", 3693768719], + [69, 7, 693, "Metrics/MethodLength: Method has too many lines. [16/10]", 3693768719], + [93, 7, 747, "Metrics/AbcSize: Assignment Branch Condition size for `prefix_comment_line_numbers_for_comments` is too high. [<10, 12, 7> 17.12/17]", 1181507516], + [93, 7, 747, "Metrics/MethodLength: Method has too many lines. [19/10]", 1181507516] + ], + "lib/ruby/merge/method_similarity.rb:3120642740": [ + [5, 5, 22, "Style/Documentation: Missing top-level documentation comment for `class Ruby::Merge::MethodSimilarity`.", 3784960433], + [23, 7, 493, "Metrics/AbcSize: Assignment Branch Condition size for `param_similarity` is too high. [<4, 19, 4> 19.82/17]", 1175888813], + [45, 7, 738, "Metrics/AbcSize: Assignment Branch Condition size for `levenshtein_distance` is too high. [<13, 29, 8> 32.77/17]", 1085087702], + [45, 7, 738, "Metrics/MethodLength: Method has too many lines. [20/10]", 1085087702] + ], + "lib/ruby/merge/nocov_node_base.rb:1713613866": [ + [23, 21, 84, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 3439911158], + [51, 7, 353, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `signature` is too high. [8/7]", 3442013923], + [51, 7, 353, "Metrics/PerceivedComplexity: Perceived complexity for `signature` is too high. [9/8]", 3442013923] + ], + "lib/ruby/merge/rescue_semantics.rb:2728370094": [ + [5, 5, 21, "Style/Documentation: Missing top-level documentation comment for `class Ruby::Merge::RescueSemantics`.", 4002082661], + [5, 5, 8140, "Metrics/ClassLength: Class has too many lines. [157/100]", 3302970297], + [10, 7, 812, "Metrics/AbcSize: Assignment Branch Condition size for `merge_ordered_clause_types` is too high. [<9, 17, 8> 20.83/17]", 391537814], + [10, 7, 812, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `merge_ordered_clause_types` is too high. [8/7]", 391537814], + [10, 7, 812, "Metrics/MethodLength: Method has too many lines. [16/10]", 391537814], + [10, 7, 812, "Metrics/PerceivedComplexity: Perceived complexity for `merge_ordered_clause_types` is too high. [9/8]", 391537814], + [33, 7, 1470, "Metrics/AbcSize: Assignment Branch Condition size for `canonicalize_rescue_clause_order` is too high. [<18, 28, 14> 36.11/17]", 570708009], + [33, 7, 1470, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `canonicalize_rescue_clause_order` is too high. [14/7]", 570708009], + [33, 7, 1470, "Metrics/MethodLength: Method has too many lines. [24/10]", 570708009], + [33, 7, 1470, "Metrics/PerceivedComplexity: Perceived complexity for `canonicalize_rescue_clause_order` is too high. [14/8]", 570708009], + [113, 7, 1080, "Metrics/AbcSize: Assignment Branch Condition size for `source_defined_exception_hierarchy` is too high. [<9, 20, 10> 24.1/17]", 3196945148], + [113, 7, 1080, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `source_defined_exception_hierarchy` is too high. [10/7]", 3196945148], + [113, 7, 1080, "Metrics/MethodLength: Method has too many lines. [15/10]", 3196945148], + [113, 7, 1080, "Metrics/PerceivedComplexity: Perceived complexity for `source_defined_exception_hierarchy` is too high. [11/8]", 3196945148], + [126, 121, 19, "Layout/LineLength: Line is too long. [139/120]", 1806710570] + ], + "lib/ruby/merge/scaffold_chunk_support.rb:640658628": [ + [5, 5, 27, "Style/Documentation: Missing top-level documentation comment for `module Ruby::Merge::ScaffoldChunkSupport`.", 2416541725] + ], + "lib/ruby/merge/signature_support.rb:1167161535": [ + [5, 5, 23, "Style/Documentation: Missing top-level documentation comment for `module Ruby::Merge::SignatureSupport`.", 2080470772] + ], + "ruby-merge.gemspec:503862341": [ + [128, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 2821357214], + [143, 121, 50, "Layout/LineLength: Line is too long. [170/120]", 3888612416], + [144, 121, 29, "Layout/LineLength: Line is too long. [149/120]", 981994949], + [151, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 4229808912] + ], + "spec/fixtures_integration_spec.rb:536012750": [ + [7, 1, 72608, "Metrics/BlockLength: Block has too many lines. [1673/25]", 1328376978], + [8, 3, 94, "Lint/ConstantDefinitionInBlock: Do not define constants this way within a block.", 4224869601], + [9, 3, 80, "Lint/ConstantDefinitionInBlock: Do not define constants this way within a block.", 3493759864], + [10, 3, 72, "Lint/ConstantDefinitionInBlock: Do not define constants this way within a block.", 218819604], + [11, 3, 83, "Lint/ConstantDefinitionInBlock: Do not define constants this way within a block.", 3957977039], + [125, 3, 1207, "Metrics/BlockLength: Block has too many lines. [27/25]", 2841005266], + [206, 3, 1550, "Metrics/BlockLength: Block has too many lines. [44/25]", 1381861178], + [257, 3, 1178, "Metrics/BlockLength: Block has too many lines. [28/25]", 2957209369], + [292, 3, 1209, "Metrics/BlockLength: Block has too many lines. [33/25]", 1745132505], + [332, 3, 61330, "Metrics/BlockLength: Block has too many lines. [1387/25]", 3444780370], + [728, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5859109], + [1812, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 3355833611], + [1819, 121, 18, "Layout/LineLength: Line is too long. [138/120]", 38619260] + ], + "spec/hash_literal_projector_spec.rb:2425567956": [ + [13, 41, 31, "Lint/PercentStringArray: Within `%w`/`%W`, quotes and ',' are unnecessary and may be unwanted in the resulting strings.", 3214960854] + ], + "spec/rescue_semantics_spec.rb:2518131257": [ + [5, 1, 2150, "Metrics/BlockLength: Block has too many lines. [59/25]", 163524539] + ] +} diff --git a/gems/ruby-merge/Gemfile.lock b/gems/ruby-merge/Gemfile.lock index c4e945d21..f5a2b0301 100644 --- a/gems/ruby-merge/Gemfile.lock +++ b/gems/ruby-merge/Gemfile.lock @@ -7,7 +7,7 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/ast-merge specs: ast-merge (7.1.0) benchmark @@ -16,7 +16,7 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/tree_haver specs: tree_haver (7.1.0) citrus (~> 3.0) diff --git a/gems/tree_haver/.rubocop_gradual.lock b/gems/tree_haver/.rubocop_gradual.lock new file mode 100644 index 000000000..5daabdc24 --- /dev/null +++ b/gems/tree_haver/.rubocop_gradual.lock @@ -0,0 +1,500 @@ +{ + ".simplecov:2494900725": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "Rakefile:1868927885": [ + [18, 121, 17, "Layout/LineLength: Line is too long. [137/120]", 174264873], + [79, 3, 1023, "Metrics/BlockLength: Block has too many lines. [32/25]", 54868638], + [163, 121, 22, "Layout/LineLength: Line is too long. [142/120]", 1367093088], + [166, 121, 18, "Layout/LineLength: Line is too long. [138/120]", 3881946477] + ], + "gemfiles/modular/benchmark/r4/v0.5.gemfile:3644720371": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/benchmark/vHEAD.gemfile:2838879269": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/cgi/r4/v0.5.gemfile:367169322": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/cgi/vHEAD.gemfile:2729540777": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/erb/r2/v3.0.gemfile:1688285565": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/erb/r3/v5.0.gemfile:2394062339": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/erb/r4/v5.0.gemfile:2394062339": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/erb/vHEAD.gemfile:981929959": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/mutex_m/r2/v0.3.gemfile:4055275004": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/mutex_m/r3/v0.3.gemfile:4055275004": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/mutex_m/r4/v0.3.gemfile:4055275004": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/mutex_m/vHEAD.gemfile:556854763": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/rspec.gemfile:2263543889": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/stringio/r2/v3.0.gemfile:821604304": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/stringio/r3/v3.0.gemfile:821604304": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/stringio/r4/v3.0.gemfile:821604304": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/stringio/vHEAD.gemfile:1045839691": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/webrick/r4/v1.9.gemfile:3092661193": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/webrick/vHEAD.gemfile:3867684682": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/x_std_libs.gemfile:2324400122": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/x_std_libs/r2/libs.gemfile:36276542": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] + ], + "gemfiles/modular/x_std_libs/r3/libs.gemfile:4030570297": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] + ], + "gemfiles/modular/x_std_libs/r4/libs.gemfile:732451732": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] + ], + "gemfiles/modular/x_std_libs/vHEAD.gemfile:2390363993": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] + ], + "lib/tree_haver.rb:312280314": [ + [49, 1, 16, "Style/Documentation: Missing top-level documentation comment for `module TreeHaver`.", 3627168465], + [49, 1, 17806, "Metrics/ModuleLength: Module has too many lines. [462/100]", 765750911], + [67, 3, 566, "Metrics/MethodLength: Method has too many lines. [12/10]", 1536513137], + [124, 3, 272, "Metrics/MethodLength: Method has too many lines. [11/10]", 505877912], + [156, 3, 543, "Metrics/MethodLength: Method has too many lines. [14/10]", 3733215372], + [221, 3, 458, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `backend_module` is too high. [9/7]", 73937708], + [221, 3, 458, "Metrics/MethodLength: Method has too many lines. [12/10]", 73937708], + [221, 3, 458, "Metrics/PerceivedComplexity: Perceived complexity for `backend_module` is too high. [9/8]", 73937708], + [257, 3, 1147, "Metrics/AbcSize: Assignment Branch Condition size for `register_language` is too high. [<0, 20, 10> 22.36/17]", 738075279], + [257, 3, 1147, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `register_language` is too high. [11/7]", 738075279], + [257, 3, 1147, "Metrics/MethodLength: Method has too many lines. [16/10]", 738075279], + [257, 3, 1147, "Metrics/PerceivedComplexity: Perceived complexity for `register_language` is too high. [11/8]", 738075279], + [257, 24, 165, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [9/5]", 2985413937], + [292, 3, 1969, "Metrics/AbcSize: Assignment Branch Condition size for `parser_for` is too high. [<14, 35, 18> 41.77/17]", 3351435495], + [292, 3, 1969, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `parser_for` is too high. [19/7]", 3351435495], + [292, 3, 1969, "Metrics/MethodLength: Method has too many lines. [39/10]", 3351435495], + [292, 3, 1969, "Metrics/PerceivedComplexity: Perceived complexity for `parser_for` is too high. [19/8]", 3351435495], + [292, 17, 155, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [8/5]", 1417642817], + [347, 3, 2089, "Metrics/MethodLength: Method has too many lines. [51/10]", 2791676388], + [401, 3, 704, "Metrics/AbcSize: Assignment Branch Condition size for `requested_backend_type` is too high. [<4, 17, 9> 19.65/17]", 3087691662], + [401, 3, 704, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `requested_backend_type` is too high. [8/7]", 3087691662], + [401, 3, 704, "Metrics/MethodLength: Method has too many lines. [14/10]", 3087691662], + [401, 3, 704, "Metrics/PerceivedComplexity: Perceived complexity for `requested_backend_type` is too high. [9/8]", 3087691662], + [453, 3, 696, "Metrics/MethodLength: Method has too many lines. [14/10]", 307274721], + [484, 3, 422, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `registered_backend_type_available?` is too high. [8/7]", 1544952013], + [554, 3, 489, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `backend_module_for` is too high. [10/7]", 3448932255], + [554, 3, 489, "Metrics/MethodLength: Method has too many lines. [22/10]", 3448932255] + ], + "lib/tree_haver/backend_api.rb:3354059061": [ + [30, 3, 12181, "Metrics/ModuleLength: Module has too many lines. [243/100]", 205645546], + [139, 5, 8882, "Metrics/ClassLength: Class has too many lines. [180/100]", 4281605197], + [145, 7, 1502, "Metrics/AbcSize: Assignment Branch Condition size for `validate` is too high. [<4, 22, 10> 24.49/17]", 747017743], + [145, 7, 1502, "Metrics/MethodLength: Method has too many lines. [31/10]", 747017743], + [145, 7, 1502, "Metrics/PerceivedComplexity: Perceived complexity for `validate` is too high. [11/8]", 747017743], + [213, 7, 903, "Metrics/MethodLength: Method has too many lines. [24/10]", 3041411230], + [261, 7, 1271, "Metrics/AbcSize: Assignment Branch Condition size for `validate_capabilities_hash` is too high. [<7, 27, 7> 28.76/17]", 3965262932], + [261, 7, 1271, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `validate_capabilities_hash` is too high. [8/7]", 3965262932], + [261, 7, 1271, "Metrics/MethodLength: Method has too many lines. [25/10]", 3965262932], + [277, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 2253399502], + [296, 7, 908, "Metrics/AbcSize: Assignment Branch Condition size for `validate_language` is too high. [<6, 17, 4> 18.47/17]", 733551867], + [315, 7, 797, "Metrics/AbcSize: Assignment Branch Condition size for `validate_parser` is too high. [<5, 16, 7> 18.17/17]", 1229041751], + [315, 7, 797, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `validate_parser` is too high. [8/7]", 1229041751], + [315, 7, 797, "Metrics/MethodLength: Method has too many lines. [15/10]", 1229041751], + [349, 7, 862, "Metrics/AbcSize: Assignment Branch Condition size for `validate_node_class` is too high. [<8, 18, 8> 21.26/17]", 1873188195], + [349, 7, 862, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `validate_node_class` is too high. [8/7]", 1873188195], + [349, 7, 862, "Metrics/MethodLength: Method has too many lines. [20/10]", 1873188195], + [349, 7, 862, "Metrics/PerceivedComplexity: Perceived complexity for `validate_node_class` is too high. [9/8]", 1873188195], + [375, 11, 20, "Naming/PredicatePrefix: Rename `has_method_or_alias?` to `method_or_alias?`.", 285116235] + ], + "lib/tree_haver/backend_context.rb:159197618": [ + [3, 1, 16, "Style/Documentation: Missing top-level documentation comment for `module TreeHaver`.", 3627168465] + ], + "lib/tree_haver/backend_registry.rb:4046212912": [ + [4, 3, 22, "Style/Documentation: Missing top-level documentation comment for `module TreeHaver::BackendRegistry`.", 733935278], + [4, 3, 5121, "Metrics/ModuleLength: Module has too many lines. [152/100]", 1483988260], + [39, 5, 382, "Metrics/MethodLength: Method has too many lines. [11/10]", 2000730238], + [48, 16, 1, "Style/DoubleNegation: Avoid the use of double negation (`!!`).", 177540], + [55, 5, 889, "Metrics/AbcSize: Assignment Branch Condition size for `register_tag` is too high. [<5, 20, 5> 21.21/17]", 2276764069], + [55, 5, 889, "Metrics/MethodLength: Method has too many lines. [18/10]", 2276764069], + [105, 5, 397, "Metrics/MethodLength: Method has too many lines. [11/10]", 4007185633] + ], + "lib/tree_haver/backends/citrus.rb:3181984499": [ + [40, 9, 449, "Metrics/MethodLength: Method has too many lines. [11/10]", 1138819533], + [173, 11, 1133, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `from_library` is too high. [11/7]", 2613019266], + [173, 11, 1133, "Metrics/MethodLength: Method has too many lines. [16/10]", 2613019266], + [173, 11, 1133, "Metrics/PerceivedComplexity: Perceived complexity for `from_library` is too high. [11/8]", 2613019266], + [230, 9, 597, "Metrics/MethodLength: Method has too many lines. [12/10]", 3923424594], + [403, 9, 810, "Metrics/AbcSize: Assignment Branch Condition size for `structural?` is too high. [<3, 19, 8> 20.83/17]", 3166173256], + [403, 9, 810, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `structural?` is too high. [9/7]", 3166173256], + [403, 9, 810, "Metrics/MethodLength: Method has too many lines. [12/10]", 3166173256], + [403, 9, 810, "Metrics/PerceivedComplexity: Perceived complexity for `structural?` is too high. [9/8]", 3166173256], + [436, 9, 1272, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `extract_type_from_event` is too high. [9/7]", 2022108773], + [436, 9, 1272, "Metrics/MethodLength: Method has too many lines. [16/10]", 2022108773], + [436, 9, 1272, "Metrics/PerceivedComplexity: Perceived complexity for `extract_type_from_event` is too high. [10/8]", 2022108773], + [460, 11, 207, "Style/CaseLikeIf: Convert `if-elsif` to `case-when`.", 1995588659], + [476, 61, 10, "Style/NumericPredicate: Use `offset.positive?` instead of `offset > 0`.", 2454414278] + ], + "lib/tree_haver/backends/ffi.rb:691415497": [ + [83, 9, 853, "Metrics/MethodLength: Method has too many lines. [15/10]", 1876257977], + [147, 7, 7352, "Metrics/ModuleLength: Module has too many lines. [111/100]", 4125377349], + [148, 9, 7320, "Metrics/ClassLength: Class has too many lines. [109/100]", 1130902814], + [183, 11, 559, "Metrics/MethodLength: Method has too many lines. [11/10]", 678018999], + [232, 11, 4265, "Metrics/AbcSize: Assignment Branch Condition size for `try_load!` is too high. [<11, 40, 10> 42.67/17]", 2312962113], + [232, 11, 4265, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `try_load!` is too high. [10/7]", 2312962113], + [232, 11, 4265, "Metrics/MethodLength: Method has too many lines. [58/10]", 2312962113], + [232, 11, 4265, "Metrics/PerceivedComplexity: Perceived complexity for `try_load!` is too high. [11/8]", 2312962113], + [260, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2086221887], + [262, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 2163360042], + [367, 9, 312, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `<=>` is too high. [8/7]", 2433292528], + [437, 11, 4377, "Metrics/AbcSize: Assignment Branch Condition size for `from_library` is too high. [<16, 30, 18> 38.47/17]", 3403850855], + [437, 11, 4377, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `from_library` is too high. [17/7]", 3403850855], + [437, 11, 4377, "Metrics/MethodLength: Method has too many lines. [43/10]", 3403850855], + [437, 11, 4377, "Metrics/PerceivedComplexity: Perceived complexity for `from_library` is too high. [19/8]", 3403850855], + [437, 47, 4, "Lint/UnusedMethodArgument: Unused method argument - `name`.", 2087876002], + [502, 121, 11, "Layout/LineLength: Line is too long. [131/120]", 2415433817], + [554, 9, 3159, "Metrics/AbcSize: Assignment Branch Condition size for `language=` is too high. [<4, 44, 11> 45.53/17]", 1815427493], + [554, 9, 3159, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `language=` is too high. [10/7]", 1815427493], + [554, 9, 3159, "Metrics/MethodLength: Method has too many lines. [40/10]", 1815427493], + [554, 9, 3159, "Metrics/PerceivedComplexity: Perceived complexity for `language=` is too high. [10/8]", 1815427493], + [715, 7, 10494, "Metrics/ClassLength: Class has too many lines. [129/100]", 3710916551], + [744, 45, 9, "Style/NumericPredicate: Use `index.negative?` instead of `index < 0`.", 4215255415], + [807, 13, 10, "Naming/PredicatePrefix: Rename `has_error?` to `error?`.", 946854183], + [889, 21, 9, "Style/NumericPredicate: Use `index.negative?` instead of `index < 0`.", 4215255415], + [933, 9, 694, "Metrics/AbcSize: Assignment Branch Condition size for `descendant_for_point_range` is too high. [<7, 21, 5> 22.69/17]", 979329510], + [953, 9, 706, "Metrics/AbcSize: Assignment Branch Condition size for `named_descendant_for_point_range` is too high. [<7, 21, 5> 22.69/17]", 2494446138] + ], + "lib/tree_haver/backends/java.rb:3360169733": [ + [134, 7, 815, "Metrics/AbcSize: Assignment Branch Condition size for `configure_native_library_path!` is too high. [<4, 17, 6> 18.47/17]", 1362415302], + [227, 121, 7, "Layout/LineLength: Line is too long. [127/120]", 3409700051], + [260, 7, 9885, "Metrics/ClassLength: Class has too many lines. [114/100]", 136252046], + [292, 9, 312, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `<=>` is too high. [8/7]", 2433292528], + [340, 11, 4098, "Metrics/AbcSize: Assignment Branch Condition size for `from_library` is too high. [<19, 32, 14> 39.76/17]", 3050250526], + [340, 11, 4098, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `from_library` is too high. [14/7]", 3050250526], + [340, 11, 4098, "Metrics/MethodLength: Method has too many lines. [48/10]", 3050250526], + [340, 11, 4098, "Metrics/PerceivedComplexity: Perceived complexity for `from_library` is too high. [16/8]", 3050250526], + [426, 11, 2084, "Metrics/AbcSize: Assignment Branch Condition size for `load_by_name` is too high. [<11, 17, 6> 21.12/17]", 226213748], + [426, 11, 2084, "Metrics/MethodLength: Method has too many lines. [35/10]", 226213748], + [542, 9, 1016, "Metrics/MethodLength: Method has too many lines. [17/10]", 4123264427], + [649, 9, 702, "Metrics/MethodLength: Method has too many lines. [14/10]", 1334016319], + [649, 17, 89, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 3152137646], + [728, 9, 583, "Metrics/MethodLength: Method has too many lines. [11/10]", 2457478600], + [816, 13, 10, "Naming/PredicatePrefix: Rename `has_error?` to `error?`.", 946854183] + ], + "lib/tree_haver/backends/mri.rb:863330290": [ + [59, 9, 916, "Metrics/MethodLength: Method has too many lines. [15/10]", 749971754], + [179, 9, 312, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `<=>` is too high. [8/7]", 2433292528], + [232, 11, 1562, "Metrics/MethodLength: Method has too many lines. [11/10]", 3858647816] + ], + "lib/tree_haver/backends/parslet.rb:4170691266": [ + [41, 9, 323, "Metrics/MethodLength: Method has too many lines. [11/10]", 694290592], + [108, 121, 3, "Layout/LineLength: Line is too long. [123/120]", 193340030], + [172, 11, 1133, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `from_library` is too high. [11/7]", 2613019266], + [172, 11, 1133, "Metrics/MethodLength: Method has too many lines. [16/10]", 2613019266], + [172, 11, 1133, "Metrics/PerceivedComplexity: Perceived complexity for `from_library` is too high. [11/8]", 2613019266], + [246, 9, 591, "Metrics/MethodLength: Method has too many lines. [12/10]", 3007454066], + [335, 7, 6287, "Metrics/ClassLength: Class has too many lines. [155/100]", 3100555518], + [362, 9, 452, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `start_byte` is too high. [8/7]", 2663206926], + [362, 9, 452, "Metrics/MethodLength: Method has too many lines. [12/10]", 2663206926], + [380, 9, 557, "Metrics/MethodLength: Method has too many lines. [12/10]", 2982914846], + [443, 9, 404, "Metrics/MethodLength: Method has too many lines. [11/10]", 1111982079], + [495, 61, 10, "Style/NumericPredicate: Use `offset.positive?` instead of `offset > 0`.", 2454414278], + [501, 9, 313, "Metrics/MethodLength: Method has too many lines. [13/10]", 1927903077], + [519, 9, 448, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `find_first_slice` is too high. [8/7]", 229178429], + [519, 9, 448, "Metrics/MethodLength: Method has too many lines. [16/10]", 229178429], + [524, 17, 11, "Style/HashEachMethods: Use `each_value` instead of `values.each`.", 236538172], + [539, 9, 461, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `find_last_slice` is too high. [8/7]", 3960808114], + [539, 9, 461, "Metrics/MethodLength: Method has too many lines. [16/10]", 3960808114] + ], + "lib/tree_haver/backends/prism.rb:265399087": [ + [39, 9, 448, "Metrics/MethodLength: Method has too many lines. [11/10]", 2383415890], + [70, 121, 13, "Layout/LineLength: Line is too long. [133/120]", 721867551], + [71, 9, 712, "Metrics/MethodLength: Method has too many lines. [12/10]", 1576927704], + [145, 41, 6, "Lint/UnusedMethodArgument: Unused method argument - `symbol`.", 2153517219], + [182, 9, 554, "Metrics/MethodLength: Method has too many lines. [16/10]", 3452414947], + [250, 13, 11, "Naming/PredicatePrefix: Rename `has_errors?` to `errors?`.", 1181419252], + [275, 69, 27, "Lint/HashCompareByIdentity: Use `Hash#compare_by_identity` instead of using `object_id` for keys.", 1979346241], + [301, 13, 64, "Lint/HashCompareByIdentity: Use `Hash#compare_by_identity` instead of using `object_id` for keys.", 1942915391], + [305, 9, 519, "Metrics/AbcSize: Assignment Branch Condition size for `classify_comment_hint` is too high. [<5, 20, 5> 21.21/17]", 869270335], + [485, 13, 10, "Naming/PredicatePrefix: Rename `has_error?` to `error?`.", 946854183], + [554, 24, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765] + ], + "lib/tree_haver/backends/psych.rb:1528613408": [ + [30, 9, 448, "Metrics/MethodLength: Method has too many lines. [11/10]", 2367418678], + [59, 9, 601, "Metrics/MethodLength: Method has too many lines. [11/10]", 2824278890], + [342, 9, 901, "Metrics/AbcSize: Assignment Branch Condition size for `extract_text_from_location` is too high. [<8, 23, 18> 30.28/17]", 1252700264], + [342, 9, 901, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `extract_text_from_location` is too high. [14/7]", 1252700264], + [342, 9, 901, "Metrics/MethodLength: Method has too many lines. [22/10]", 1252700264], + [342, 9, 901, "Metrics/PerceivedComplexity: Perceived complexity for `extract_text_from_location` is too high. [16/8]", 1252700264] + ], + "lib/tree_haver/backends/rust.rb:3784474048": [ + [52, 9, 548, "Metrics/MethodLength: Method has too many lines. [15/10]", 3791803966], + [156, 121, 1, "Layout/LineLength: Line is too long. [121/120]", 177548] + ], + "lib/tree_haver/backends/tslp.rb:3474467412": [ + [10, 5, 6880, "Metrics/ModuleLength: Module has too many lines. [116/100]", 335751325], + [33, 9, 663, "Metrics/MethodLength: Method has too many lines. [16/10]", 2812178140], + [112, 9, 652, "Metrics/MethodLength: Method has too many lines. [12/10]", 104646199], + [124, 35, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], + [145, 7, 14, "Style/Documentation: Missing top-level documentation comment for `class TreeHaver::Backends::Tslp::Language`.", 3674592793], + [157, 7, 12, "Style/Documentation: Missing top-level documentation comment for `class TreeHaver::Backends::Tslp::Parser`.", 2485220908], + [158, 9, 582, "Metrics/AbcSize: Assignment Branch Condition size for `parse` is too high. [<2, 17, 4> 17.58/17]", 103430155], + [180, 7, 10, "Style/Documentation: Missing top-level documentation comment for `class TreeHaver::Backends::Tslp::Tree`.", 3516465773], + [186, 7, 10, "Style/Documentation: Missing top-level documentation comment for `class TreeHaver::Backends::Tslp::Node`.", 3515419275], + [220, 13, 10, "Naming/PredicatePrefix: Rename `has_error?` to `error?`.", 946854183] + ], + "lib/tree_haver/base/comment.rb:699160654": [ + [10, 5, 8183, "Metrics/ClassLength: Class has too many lines. [152/100]", 4001235397] + ], + "lib/tree_haver/base/node.rb:586469776": [ + [36, 5, 7668, "Metrics/ClassLength: Class has too many lines. [156/100]", 171773185], + [162, 11, 10, "Naming/PredicatePrefix: Rename `has_error?` to `error?`.", 946854183], + [208, 27, 8, "Style/NumericPredicate: Use `cmp.zero?` instead of `cmp == 0`.", 736104011], + [239, 7, 888, "Metrics/AbcSize: Assignment Branch Condition size for `source_position` is too high. [<6, 20, 12> 24.08/17]", 3968023659], + [239, 7, 888, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `source_position` is too high. [9/7]", 3968023659], + [239, 7, 888, "Metrics/MethodLength: Method has too many lines. [28/10]", 3968023659], + [239, 7, 888, "Metrics/PerceivedComplexity: Perceived complexity for `source_position` is too high. [13/8]", 3968023659], + [306, 7, 355, "Metrics/MethodLength: Method has too many lines. [11/10]", 1012295608] + ], + "lib/tree_haver/base/tree.rb:3081630142": [ + [89, 15, 145, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 1155535733], + [103, 11, 10, "Naming/PredicatePrefix: Rename `has_error?` to `error?`.", 946854183] + ], + "lib/tree_haver/citrus_grammar_finder.rb:2540014236": [ + [31, 3, 7013, "Metrics/ClassLength: Class has too many lines. [102/100]", 245808593], + [66, 5, 3770, "Metrics/AbcSize: Assignment Branch Condition size for `available?` is too high. [<16, 52, 21> 58.32/17]", 3886463212], + [66, 5, 3770, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `available?` is too high. [22/7]", 3886463212], + [66, 5, 3770, "Metrics/MethodLength: Method has too many lines. [50/10]", 3886463212], + [66, 5, 3770, "Metrics/PerceivedComplexity: Perceived complexity for `available?` is too high. [22/8]", 3886463212], + [94, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5858894] + ], + "lib/tree_haver/contracts.rb:1571706604": [ + [3, 1, 16, "Style/Documentation: Missing top-level documentation comment for `module TreeHaver`.", 3627168465], + [3, 1, 28139, "Metrics/ModuleLength: Module has too many lines. [924/100]", 3701899480], + [91, 5, 732, "Metrics/AbcSize: Assignment Branch Condition size for `to_h` is too high. [<0, 18, 2> 18.11/17]", 3031678572], + [91, 5, 732, "Metrics/MethodLength: Method has too many lines. [17/10]", 3031678572], + [170, 5, 697, "Metrics/MethodLength: Method has too many lines. [18/10]", 389212725], + [231, 5, 507, "Metrics/MethodLength: Method has too many lines. [13/10]", 2631332781], + [329, 5, 580, "Metrics/MethodLength: Method has too many lines. [13/10]", 2166080747], + [558, 5, 558, "Metrics/AbcSize: Assignment Branch Condition size for `to_h` is too high. [<0, 17, 4> 17.46/17]", 2109105399], + [558, 5, 558, "Metrics/MethodLength: Method has too many lines. [18/10]", 2109105399], + [610, 3, 780, "Metrics/AbcSize: Assignment Branch Condition size for `library_path_errors` is too high. [<3, 20, 10> 22.56/17]", 1003454820], + [610, 3, 780, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `library_path_errors` is too high. [10/7]", 1003454820], + [610, 3, 780, "Metrics/MethodLength: Method has too many lines. [14/10]", 1003454820], + [610, 3, 780, "Metrics/PerceivedComplexity: Perceived complexity for `library_path_errors` is too high. [10/8]", 1003454820], + [652, 3, 686, "Metrics/MethodLength: Method has too many lines. [16/10]", 2530945134], + [674, 3, 483, "Metrics/MethodLength: Method has too many lines. [15/10]", 3654427448], + [693, 3, 511, "Metrics/MethodLength: Method has too many lines. [16/10]", 145071639], + [770, 5, 384, "Metrics/AbcSize: Assignment Branch Condition size for `to_h` is too high. [<0, 19, 6> 19.92/17]", 1287649270], + [841, 5, 449, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `to_h` is too high. [10/7]", 1722332092], + [841, 5, 449, "Metrics/PerceivedComplexity: Perceived complexity for `to_h` is too high. [10/8]", 1722332092], + [873, 121, 1, "Layout/LineLength: Line is too long. [121/120]", 177610], + [874, 5, 420, "Metrics/MethodLength: Method has too many lines. [12/10]", 722580369], + [914, 42, 8, "Lint/StructNewOverride: `:entries` member overrides `Struct#entries` and it may be unexpected.", 999966509], + [937, 3, 473, "Metrics/MethodLength: Method has too many lines. [18/10]", 1284459726], + [958, 3, 655, "Metrics/AbcSize: Assignment Branch Condition size for `byte_offset_for_point` is too high. [<7, 25, 14> 29.5/17]", 1278853347], + [958, 3, 655, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `byte_offset_for_point` is too high. [9/7]", 1278853347], + [958, 3, 655, "Metrics/MethodLength: Method has too many lines. [17/10]", 1278853347], + [958, 3, 655, "Metrics/PerceivedComplexity: Perceived complexity for `byte_offset_for_point` is too high. [10/8]", 1278853347] + ], + "lib/tree_haver/grammar_finder.rb:262426767": [ + [55, 3, 13737, "Metrics/ClassLength: Class has too many lines. [201/100]", 842233610], + [155, 5, 1710, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `find_library_path` is too high. [8/7]", 4164717952], + [155, 5, 1710, "Metrics/MethodLength: Method has too many lines. [25/10]", 4164717952], + [269, 7, 845, "Metrics/MethodLength: Method has too many lines. [12/10]", 916567473], + [315, 5, 577, "Metrics/MethodLength: Method has too many lines. [16/10]", 651056353], + [340, 5, 623, "Metrics/MethodLength: Method has too many lines. [14/10]", 1438381615], + [360, 5, 846, "Metrics/MethodLength: Method has too many lines. [12/10]", 667615068], + [398, 5, 730, "Metrics/MethodLength: Method has too many lines. [13/10]", 927307656] + ], + "lib/tree_haver/kaitai_backend.rb:335397596": [ + [3, 1, 16, "Style/Documentation: Missing top-level documentation comment for `module TreeHaver`.", 3627168465] + ], + "lib/tree_haver/language.rb:2775049278": [ + [39, 3, 12087, "Metrics/ModuleLength: Module has too many lines. [115/100]", 221887443], + [40, 5, 12061, "Metrics/ClassLength: Class has too many lines. [113/100]", 309443185], + [89, 7, 1966, "Metrics/AbcSize: Assignment Branch Condition size for `from_library` is too high. [<4, 20, 10> 22.72/17]", 980659500], + [89, 7, 1966, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `from_library` is too high. [9/7]", 980659500], + [89, 7, 1966, "Metrics/MethodLength: Method has too many lines. [31/10]", 980659500], + [89, 7, 1966, "Metrics/PerceivedComplexity: Perceived complexity for `from_library` is too high. [11/8]", 980659500], + [114, 121, 1, "Layout/LineLength: Line is too long. [121/120]", 177538], + [156, 7, 4289, "Metrics/AbcSize: Assignment Branch Condition size for `method_missing` is too high. [<10, 39, 30> 50.21/17]", 1314689525], + [156, 7, 4289, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `method_missing` is too high. [24/7]", 1314689525], + [156, 7, 4289, "Metrics/MethodLength: Method has too many lines. [56/10]", 1314689525], + [156, 7, 4289, "Metrics/PerceivedComplexity: Perceived complexity for `method_missing` is too high. [26/8]", 1314689525], + [274, 7, 786, "Metrics/MethodLength: Method has too many lines. [12/10]", 3697766033] + ], + "lib/tree_haver/language_pack.rb:3024861237": [ + [3, 1, 16, "Style/Documentation: Missing top-level documentation comment for `module TreeHaver`.", 3627168465] + ], + "lib/tree_haver/language_registry.rb:3137013690": [ + [83, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5861089], + [111, 5, 834, "Metrics/AbcSize: Assignment Branch Condition size for `with_registration` is too high. [<11, 22, 5> 25.1/17]", 1103319853], + [111, 5, 834, "Metrics/MethodLength: Method has too many lines. [25/10]", 1103319853] + ], + "lib/tree_haver/library_path_utils.rb:1552423902": [ + [32, 5, 861, "Metrics/MethodLength: Method has too many lines. [12/10]", 1638068630] + ], + "lib/tree_haver/node.rb:715762930": [ + [62, 3, 16601, "Metrics/ClassLength: Class has too many lines. [237/100]", 2290466920], + [136, 5, 708, "Metrics/AbcSize: Assignment Branch Condition size for `start_point` is too high. [<2, 19, 7> 20.35/17]", 2066418249], + [136, 5, 708, "Metrics/MethodLength: Method has too many lines. [17/10]", 2066418249], + [161, 5, 694, "Metrics/AbcSize: Assignment Branch Condition size for `end_point` is too high. [<2, 19, 7> 20.35/17]", 2127773446], + [161, 5, 694, "Metrics/MethodLength: Method has too many lines. [17/10]", 2127773446], + [232, 5, 948, "Metrics/AbcSize: Assignment Branch Condition size for `text` is too high. [<1, 14, 11> 17.83/17]", 748349201], + [232, 5, 948, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `text` is too high. [9/7]", 748349201], + [232, 5, 948, "Metrics/MethodLength: Method has too many lines. [16/10]", 748349201], + [232, 5, 948, "Metrics/PerceivedComplexity: Perceived complexity for `text` is too high. [11/8]", 748349201], + [259, 9, 10, "Naming/PredicatePrefix: Rename `has_error?` to `error?`.", 946854183], + [328, 5, 994, "Metrics/AbcSize: Assignment Branch Condition size for `named_child` is too high. [<6, 13, 10> 17.46/17]", 3449163117], + [328, 5, 994, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `named_child` is too high. [9/7]", 3449163117], + [328, 5, 994, "Metrics/MethodLength: Method has too many lines. [21/10]", 3449163117], + [328, 5, 994, "Metrics/PerceivedComplexity: Perceived complexity for `named_child` is too high. [10/8]", 3449163117], + [366, 5, 734, "Metrics/MethodLength: Method has too many lines. [15/10]", 3099919150], + [425, 7, 4, "Style/EmptyElse: Redundant `else`-clause.", 2087423834] + ], + "lib/tree_haver/parser.rb:1959976510": [ + [71, 3, 15231, "Metrics/ClassLength: Class has too many lines. [181/100]", 2262931609], + [84, 5, 938, "Metrics/MethodLength: Method has too many lines. [13/10]", 569209133], + [116, 5, 844, "Metrics/MethodLength: Method has too many lines. [11/10]", 3700471369], + [141, 5, 583, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `backend` is too high. [9/7]", 942469984], + [141, 5, 583, "Metrics/MethodLength: Method has too many lines. [20/10]", 942469984], + [237, 5, 1114, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `parse_string` is too high. [8/7]", 2146281390], + [237, 5, 1114, "Metrics/MethodLength: Method has too many lines. [16/10]", 2146281390], + [237, 5, 1114, "Metrics/PerceivedComplexity: Perceived complexity for `parse_string` is too high. [10/8]", 2146281390], + [273, 5, 1162, "Metrics/AbcSize: Assignment Branch Condition size for `switch_backend_for_language` is too high. [<10, 11, 11> 18.49/17]", 3918477333], + [273, 5, 1162, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `switch_backend_for_language` is too high. [11/7]", 3918477333], + [273, 5, 1162, "Metrics/MethodLength: Method has too many lines. [26/10]", 3918477333], + [273, 5, 1162, "Metrics/PerceivedComplexity: Perceived complexity for `switch_backend_for_language` is too high. [9/8]", 3918477333], + [320, 5, 3598, "Metrics/AbcSize: Assignment Branch Condition size for `unwrap_language` is too high. [<4, 32, 32> 45.43/17]", 2683894777], + [320, 5, 3598, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `unwrap_language` is too high. [29/7]", 2683894777], + [320, 5, 3598, "Metrics/MethodLength: Method has too many lines. [55/10]", 2683894777], + [320, 5, 3598, "Metrics/PerceivedComplexity: Perceived complexity for `unwrap_language` is too high. [23/8]", 2683894777], + [414, 5, 892, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `try_reload_language_for_backend` is too high. [9/7]", 1872419716], + [414, 5, 892, "Metrics/MethodLength: Method has too many lines. [14/10]", 1872419716], + [414, 5, 892, "Metrics/PerceivedComplexity: Perceived complexity for `try_reload_language_for_backend` is too high. [9/8]", 1872419716] + ], + "lib/tree_haver/parslet_grammar_finder.rb:756779364": [ + [32, 3, 6418, "Metrics/ClassLength: Class has too many lines. [105/100]", 2916347470], + [67, 5, 2630, "Metrics/AbcSize: Assignment Branch Condition size for `available?` is too high. [<14, 39, 19> 45.59/17]", 1827795944], + [67, 5, 2630, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `available?` is too high. [20/7]", 1827795944], + [67, 5, 2630, "Metrics/MethodLength: Method has too many lines. [43/10]", 1827795944], + [67, 5, 2630, "Metrics/PerceivedComplexity: Perceived complexity for `available?` is too high. [20/8]", 1827795944] + ], + "lib/tree_haver/path_validator.rb:1827441298": [ + [31, 3, 11571, "Metrics/ModuleLength: Module has too many lines. [133/100]", 3916793077], + [71, 5, 1048, "Metrics/AbcSize: Assignment Branch Condition size for `trusted_directories` is too high. [<4, 16, 5> 17.23/17]", 2683168069], + [71, 5, 1048, "Metrics/MethodLength: Method has too many lines. [13/10]", 2683168069], + [182, 5, 1000, "Metrics/AbcSize: Assignment Branch Condition size for `safe_library_path?` is too high. [<1, 15, 15> 21.24/17]", 3331427816], + [182, 5, 1000, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `safe_library_path?` is too high. [15/7]", 3331427816], + [182, 5, 1000, "Metrics/MethodLength: Method has too many lines. [11/10]", 3331427816], + [182, 5, 1000, "Metrics/PerceivedComplexity: Perceived complexity for `safe_library_path?` is too high. [15/8]", 3331427816], + [314, 5, 911, "Metrics/AbcSize: Assignment Branch Condition size for `validation_errors` is too high. [<2, 21, 13> 24.78/17]", 1249065882], + [314, 5, 911, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `validation_errors` is too high. [13/7]", 1249065882], + [314, 5, 911, "Metrics/MethodLength: Method has too many lines. [14/10]", 1249065882], + [314, 5, 911, "Metrics/PerceivedComplexity: Perceived complexity for `validation_errors` is too high. [13/8]", 1249065882], + [345, 9, 20, "Naming/PredicatePrefix: Rename `has_valid_extension?` to `valid_extension?`.", 2041908655] + ], + "lib/tree_haver/peg_backends.rb:2882446693": [ + [3, 1, 16, "Style/Documentation: Missing top-level documentation comment for `module TreeHaver`.", 3627168465], + [37, 3, 611, "Metrics/MethodLength: Method has too many lines. [21/10]", 2394303132], + [39, 11, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], + [61, 3, 377, "Metrics/MethodLength: Method has too many lines. [13/10]", 1137341195] + ], + "lib/tree_haver/rspec/dependency_tags.rb:2954930617": [ + [7, 5, 21, "Style/Documentation: Missing top-level documentation comment for `module TreeHaver::RSpec::DependencyTags`.", 2626933713] + ], + "lib/tree_haver/tree.rb:3332079774": [ + [129, 5, 1443, "Metrics/AbcSize: Assignment Branch Condition size for `edit` is too high. [<8, 18, 7> 20.9/17]", 4208399016], + [129, 5, 1443, "Metrics/MethodLength: Method has too many lines. [24/10]", 4208399016], + [129, 13, 89, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 3152137646] + ], + "spec/backend_registry_spec.rb:229950927": [ + [5, 1, 3102, "Metrics/BlockLength: Block has too many lines. [62/25]", 3416335650] + ], + "spec/backends/tslp_spec.rb:3041579573": [ + [5, 1, 8455, "Metrics/BlockLength: Block has too many lines. [173/25]", 3520038900], + [71, 59, 9, "Lint/DuplicateMethods: Method `::Object#parse` is defined at both spec/backends/tslp_spec.rb:55 and spec/backends/tslp_spec.rb:71.", 3551808887], + [87, 3, 1545, "Metrics/BlockLength: Block has too many lines. [33/25]", 1552545577], + [170, 3, 1352, "Metrics/BlockLength: Block has too many lines. [29/25]", 2972556266] + ], + "spec/fixtures_integration_spec.rb:1473080413": [ + [3, 1, 52001, "Metrics/BlockLength: Block has too many lines. [1115/25]", 592858895], + [108, 3, 1282, "Metrics/BlockLength: Block has too many lines. [29/25]", 505243730], + [141, 3, 1840, "Metrics/BlockLength: Block has too many lines. [35/25]", 1365684528], + [180, 3, 1365, "Metrics/BlockLength: Block has too many lines. [33/25]", 1597100003], + [247, 3, 2110, "Metrics/BlockLength: Block has too many lines. [41/25]", 219204301], + [294, 3, 2166, "Metrics/BlockLength: Block has too many lines. [27/25]", 2219571348], + [354, 3, 1786, "Metrics/BlockLength: Block has too many lines. [30/25]", 1655451032], + [432, 3, 1345, "Metrics/BlockLength: Block has too many lines. [26/25]", 1188499098], + [534, 3, 3250, "Metrics/BlockLength: Block has too many lines. [64/25]", 2852118886], + [589, 121, 57, "Layout/LineLength: Line is too long. [177/120]", 2115564430], + [602, 3, 752, "Metrics/AbcSize: Assignment Branch Condition size for `normalized_tree_node` is too high. [<0, 19, 4> 19.42/17]", 1725197185], + [602, 3, 752, "Metrics/MethodLength: Method has too many lines. [18/10]", 1725197185], + [623, 3, 850, "Metrics/AbcSize: Assignment Branch Condition size for `backend_capability` is too high. [<0, 20, 0> 20/17]", 3278569026], + [623, 3, 850, "Metrics/MethodLength: Method has too many lines. [14/10]", 3278569026], + [640, 3, 744, "Metrics/MethodLength: Method has too many lines. [13/10]", 1675624229], + [679, 3, 492, "Metrics/MethodLength: Method has too many lines. [11/10]", 4123526878], + [714, 3, 566, "Metrics/AbcSize: Assignment Branch Condition size for `parse_error_tolerance` is too high. [<1, 17, 1> 17.06/17]", 933590597], + [714, 3, 566, "Metrics/MethodLength: Method has too many lines. [14/10]", 933590597], + [739, 3, 2652, "Metrics/BlockLength: Block has too many lines. [47/25]", 214520278], + [1039, 7, 87, "Lint/ConstantDefinitionInBlock: Do not define constants this way within a block.", 3860036845], + [1045, 7, 60, "Lint/ConstantDefinitionInBlock: Do not define constants this way within a block.", 1411318317], + [1063, 3, 1334, "Metrics/BlockLength: Block has too many lines. [41/25]", 1427111445], + [1069, 7, 134, "Lint/ConstantDefinitionInBlock: Do not define constants this way within a block.", 1166944291], + [1075, 7, 60, "Lint/ConstantDefinitionInBlock: Do not define constants this way within a block.", 1411318317], + [1085, 7, 134, "Lint/ConstantDefinitionInBlock: Do not define constants this way within a block.", 1166944291], + [1091, 7, 60, "Lint/ConstantDefinitionInBlock: Do not define constants this way within a block.", 1411318317], + [1115, 3, 1290, "Metrics/BlockLength: Block has too many lines. [41/25]", 3478080675], + [1121, 7, 157, "Lint/ConstantDefinitionInBlock: Do not define constants this way within a block.", 2460330604], + [1127, 7, 60, "Lint/ConstantDefinitionInBlock: Do not define constants this way within a block.", 1411318317], + [1137, 7, 154, "Lint/ConstantDefinitionInBlock: Do not define constants this way within a block.", 3868502553], + [1143, 7, 60, "Lint/ConstantDefinitionInBlock: Do not define constants this way within a block.", 1411318317], + [1167, 3, 1405, "Metrics/BlockLength: Block has too many lines. [44/25]", 2313436250], + [1173, 7, 134, "Lint/ConstantDefinitionInBlock: Do not define constants this way within a block.", 1166944291], + [1179, 7, 60, "Lint/ConstantDefinitionInBlock: Do not define constants this way within a block.", 1411318317], + [1189, 7, 134, "Lint/ConstantDefinitionInBlock: Do not define constants this way within a block.", 1166944291], + [1195, 7, 60, "Lint/ConstantDefinitionInBlock: Do not define constants this way within a block.", 1411318317] + ], + "spec/grammar_finder_spec.rb:143254687": [ + [5, 1, 3065, "Metrics/BlockLength: Block has too many lines. [51/25]", 4150338550], + [19, 3, 2446, "Metrics/BlockLength: Block has too many lines. [39/25]", 552612354] + ], + "tree_haver.gemspec:3046477115": [ + [16, 121, 19, "Layout/LineLength: Line is too long. [139/120]", 1512975621], + [129, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 2821357214], + [146, 121, 50, "Layout/LineLength: Line is too long. [170/120]", 3888612416], + [147, 121, 29, "Layout/LineLength: Line is too long. [149/120]", 981994949], + [154, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 4229808912] + ] +} diff --git a/gems/tree_haver/spec/spec_helper.rb b/gems/tree_haver/spec/spec_helper.rb index ae739d5d0..3a5888fc4 100644 --- a/gems/tree_haver/spec/spec_helper.rb +++ b/gems/tree_haver/spec/spec_helper.rb @@ -7,16 +7,16 @@ # NOTE: Gemfiles for non-coverage appraisals may not have kettle-soup-cover. # The rescue LoadError handles that scenario. begin - require "kettle-soup-cover" + require 'kettle-soup-cover' if Kettle::Soup::Cover::DO_COV # Requiring simplecov loads the project-local `.simplecov`. - require "simplecov" - require "kettle/soup/cover/config" + require 'simplecov' + require 'kettle/soup/cover/config' SimpleCov.start end -rescue LoadError => error +rescue LoadError => e # check the error message and re-raise when unexpected - raise error unless error.message.include?("kettle") + raise e unless e.message.include?('kettle') end # External RSpec & related config From 215c4015024cf1c7ffd7c0c182c29968cc864d55 Mon Sep 17 00:00:00 2001 From: "Peter H. Boling" Date: Tue, 21 Jul 2026 18:38:26 -0600 Subject: [PATCH 179/188] =?UTF-8?q?=F0=9F=8E=A8=20Template=20bootstrap=20b?= =?UTF-8?q?y=20kettle-jem=20v7.1.0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gems/ast-crispr-ruby-prism/.kettle-drift.lock | 60 +- gems/ast-crispr-ruby-prism/Gemfile | 40 + gems/ast-crispr-ruby-prism/Gemfile.lock | 26 +- gems/ast-crispr/Gemfile.lock | 15 +- gems/ast-merge/.rubocop_gradual.lock | 2942 ----------------- gems/ast-merge/Gemfile.lock | 324 -- gems/ast-merge/bin/yard | 2 +- .../gemfiles/modular/cgi/r4/v0.5.gemfile | 2 +- .../gemfiles/modular/cgi/vHEAD.gemfile | 2 +- .../gemfiles/modular/coverage.gemfile | 6 +- .../gemfiles/modular/coverage_local.gemfile | 42 +- gems/ast-merge/gemfiles/modular/debug.gemfile | 4 +- .../gemfiles/modular/documentation.gemfile | 24 +- .../modular/documentation_local.gemfile | 30 +- .../gemfiles/modular/erb/r2/v3.0.gemfile | 2 +- .../gemfiles/modular/erb/r3/v5.0.gemfile | 2 +- .../gemfiles/modular/erb/r4/v5.0.gemfile | 2 +- .../gemfiles/modular/erb/vHEAD.gemfile | 2 +- .../modular/json/truffleruby_22_3.gemfile | 4 +- .../modular/json/truffleruby_23_0.gemfile | 4 +- .../modular/json/truffleruby_23_1.gemfile | 4 +- .../gemfiles/modular/mutex_m/r2/v0.3.gemfile | 2 +- .../gemfiles/modular/mutex_m/r3/v0.3.gemfile | 2 +- .../gemfiles/modular/mutex_m/r4/v0.3.gemfile | 2 +- .../gemfiles/modular/mutex_m/vHEAD.gemfile | 2 +- .../gemfiles/modular/optional.gemfile | 4 +- gems/ast-merge/gemfiles/modular/rspec.gemfile | 8 +- .../gemfiles/modular/runtime_heads.gemfile | 2 +- .../gemfiles/modular/stringio/r2/v3.0.gemfile | 2 +- .../gemfiles/modular/stringio/r3/v3.0.gemfile | 2 +- .../gemfiles/modular/stringio/r4/v3.0.gemfile | 2 +- .../gemfiles/modular/stringio/vHEAD.gemfile | 2 +- gems/ast-merge/gemfiles/modular/style.gemfile | 24 +- .../gemfiles/modular/style_local.gemfile | 32 +- .../gemfiles/modular/webrick/r4/v1.9.gemfile | 2 +- .../gemfiles/modular/webrick/vHEAD.gemfile | 2 +- .../gemfiles/modular/x_std_libs.gemfile | 14 +- .../modular/x_std_libs/r2/libs.gemfile | 6 +- .../modular/x_std_libs/r3/libs.gemfile | 6 +- .../modular/x_std_libs/r4/libs.gemfile | 12 +- .../gemfiles/modular/x_std_libs/vHEAD.gemfile | 12 +- gems/ast-merge/spec/spec_helper.rb | 10 +- gems/markdown-merge/.kettle-drift.lock | 60 +- gems/markdown-merge/Gemfile | 72 +- gems/markdown-merge/Gemfile.lock | 374 ++- gems/markdown-merge/Rakefile | 18 +- .../modular/benchmark/r4/v0.5.gemfile | 2 +- .../gemfiles/modular/benchmark/vHEAD.gemfile | 2 +- .../gemfiles/modular/cgi/r4/v0.5.gemfile | 2 +- .../gemfiles/modular/cgi/vHEAD.gemfile | 2 +- .../gemfiles/modular/coverage.gemfile | 6 +- .../gemfiles/modular/coverage_local.gemfile | 42 +- .../gemfiles/modular/debug.gemfile | 4 +- .../gemfiles/modular/documentation.gemfile | 24 +- .../modular/documentation_local.gemfile | 30 +- .../gemfiles/modular/erb/r2/v3.0.gemfile | 2 +- .../gemfiles/modular/erb/r3/v5.0.gemfile | 2 +- .../gemfiles/modular/erb/r4/v5.0.gemfile | 2 +- .../gemfiles/modular/erb/vHEAD.gemfile | 2 +- .../modular/json/truffleruby_22_3.gemfile | 4 +- .../modular/json/truffleruby_23_0.gemfile | 4 +- .../modular/json/truffleruby_23_1.gemfile | 4 +- .../gemfiles/modular/mutex_m/r2/v0.3.gemfile | 2 +- .../gemfiles/modular/mutex_m/r3/v0.3.gemfile | 2 +- .../gemfiles/modular/mutex_m/r4/v0.3.gemfile | 2 +- .../gemfiles/modular/mutex_m/vHEAD.gemfile | 2 +- .../gemfiles/modular/optional.gemfile | 4 +- .../gemfiles/modular/rspec.gemfile | 8 +- .../gemfiles/modular/runtime_heads.gemfile | 2 +- .../gemfiles/modular/stringio/r2/v3.0.gemfile | 2 +- .../gemfiles/modular/stringio/r3/v3.0.gemfile | 2 +- .../gemfiles/modular/stringio/r4/v3.0.gemfile | 2 +- .../gemfiles/modular/stringio/vHEAD.gemfile | 2 +- .../gemfiles/modular/style.gemfile | 24 +- .../gemfiles/modular/style_local.gemfile | 32 +- .../gemfiles/modular/templating.gemfile | 12 +- .../gemfiles/modular/templating_local.gemfile | 44 +- .../gemfiles/modular/webrick/r4/v1.9.gemfile | 2 +- .../gemfiles/modular/webrick/vHEAD.gemfile | 2 +- .../gemfiles/modular/x_std_libs.gemfile | 14 +- .../modular/x_std_libs/r2/libs.gemfile | 6 +- .../modular/x_std_libs/r3/libs.gemfile | 6 +- .../modular/x_std_libs/r4/libs.gemfile | 12 +- .../gemfiles/modular/x_std_libs/vHEAD.gemfile | 12 +- .../lib/markdown/merge/version.rb | 2 +- gems/markdown-merge/spec/spec_helper.rb | 10 +- gems/prism-merge/.kettle-drift.lock | 60 +- gems/prism-merge/.rubocop_gradual.lock | 707 ---- gems/prism-merge/Gemfile | 72 +- gems/prism-merge/Gemfile.lock | 13 +- gems/prism-merge/Rakefile | 18 +- gems/prism-merge/bin/yard | 2 +- .../modular/benchmark/r4/v0.5.gemfile | 2 +- .../gemfiles/modular/benchmark/vHEAD.gemfile | 2 +- .../gemfiles/modular/cgi/r4/v0.5.gemfile | 2 +- .../gemfiles/modular/cgi/vHEAD.gemfile | 2 +- .../gemfiles/modular/coverage.gemfile | 6 +- .../gemfiles/modular/coverage_local.gemfile | 42 +- .../gemfiles/modular/debug.gemfile | 4 +- .../gemfiles/modular/documentation.gemfile | 24 +- .../modular/documentation_local.gemfile | 30 +- .../gemfiles/modular/erb/r2/v3.0.gemfile | 2 +- .../gemfiles/modular/erb/r3/v5.0.gemfile | 2 +- .../gemfiles/modular/erb/r4/v5.0.gemfile | 2 +- .../gemfiles/modular/erb/vHEAD.gemfile | 2 +- .../modular/json/truffleruby_22_3.gemfile | 4 +- .../modular/json/truffleruby_23_0.gemfile | 4 +- .../modular/json/truffleruby_23_1.gemfile | 4 +- .../gemfiles/modular/mutex_m/r2/v0.3.gemfile | 2 +- .../gemfiles/modular/mutex_m/r3/v0.3.gemfile | 2 +- .../gemfiles/modular/mutex_m/r4/v0.3.gemfile | 2 +- .../gemfiles/modular/mutex_m/vHEAD.gemfile | 2 +- .../gemfiles/modular/optional.gemfile | 4 +- .../gemfiles/modular/rspec.gemfile | 8 +- .../gemfiles/modular/runtime_heads.gemfile | 2 +- .../gemfiles/modular/stringio/r2/v3.0.gemfile | 2 +- .../gemfiles/modular/stringio/r3/v3.0.gemfile | 2 +- .../gemfiles/modular/stringio/r4/v3.0.gemfile | 2 +- .../gemfiles/modular/stringio/vHEAD.gemfile | 2 +- .../gemfiles/modular/style.gemfile | 24 +- .../gemfiles/modular/style_local.gemfile | 32 +- .../gemfiles/modular/templating.gemfile | 12 +- .../gemfiles/modular/templating_local.gemfile | 44 +- .../gemfiles/modular/webrick/r4/v1.9.gemfile | 2 +- .../gemfiles/modular/webrick/vHEAD.gemfile | 2 +- .../gemfiles/modular/x_std_libs.gemfile | 14 +- .../modular/x_std_libs/r2/libs.gemfile | 6 +- .../modular/x_std_libs/r3/libs.gemfile | 6 +- .../modular/x_std_libs/r4/libs.gemfile | 12 +- .../gemfiles/modular/x_std_libs/vHEAD.gemfile | 12 +- gems/prism-merge/lib/prism/merge/version.rb | 2 +- gems/prism-merge/spec/spec_helper.rb | 10 +- gems/ruby-merge/Gemfile.lock | 30 +- 133 files changed, 1187 insertions(+), 4612 deletions(-) delete mode 100644 gems/ast-merge/.rubocop_gradual.lock delete mode 100644 gems/prism-merge/.rubocop_gradual.lock diff --git a/gems/ast-crispr-ruby-prism/.kettle-drift.lock b/gems/ast-crispr-ruby-prism/.kettle-drift.lock index 7cc6a5131..bd0f9d183 100644 --- a/gems/ast-crispr-ruby-prism/.kettle-drift.lock +++ b/gems/ast-crispr-ruby-prism/.kettle-drift.lock @@ -4,7 +4,8 @@ "file": "Gemfile", "lines": [ 80, - 120 + 120, + 160 ] } ], @@ -13,7 +14,8 @@ "file": "Gemfile", "lines": [ 91, - 131 + 131, + 171 ] } ], @@ -22,7 +24,8 @@ "file": "Gemfile", "lines": [ 81, - 121 + 121, + 161 ] } ], @@ -31,7 +34,8 @@ "file": "Gemfile", "lines": [ 93, - 133 + 133, + 173 ] } ], @@ -40,7 +44,8 @@ "file": "Gemfile", "lines": [ 96, - 136 + 136, + 176 ] } ], @@ -49,7 +54,8 @@ "file": "Gemfile", "lines": [ 82, - 122 + 122, + 162 ] } ], @@ -59,7 +65,8 @@ "lines": [ 60, 100, - 140 + 140, + 180 ] } ], @@ -68,7 +75,8 @@ "file": "Gemfile", "lines": [ 101, - 141 + 141, + 181 ] } ], @@ -78,7 +86,8 @@ "lines": [ 43, 87, - 127 + 127, + 167 ] } ], @@ -87,7 +96,8 @@ "file": "Gemfile", "lines": [ 110, - 150 + 150, + 190 ] } ], @@ -97,7 +107,8 @@ "lines": [ 35, 79, - 119 + 119, + 159 ] } ], @@ -107,7 +118,8 @@ "lines": [ 69, 109, - 149 + 149, + 189 ] } ], @@ -116,7 +128,8 @@ "file": "Gemfile", "lines": [ 85, - 125 + 125, + 165 ] } ], @@ -126,7 +139,8 @@ "lines": [ 48, 92, - 132 + 132, + 172 ] } ], @@ -136,7 +150,8 @@ "lines": [ 44, 88, - 128 + 128, + 168 ] } ], @@ -145,7 +160,8 @@ "file": "Gemfile", "lines": [ 86, - 126 + 126, + 166 ] } ], @@ -154,7 +170,8 @@ "file": "Gemfile", "lines": [ 103, - 143 + 143, + 183 ] } ], @@ -163,7 +180,8 @@ "file": "Gemfile", "lines": [ 102, - 142 + 142, + 182 ] } ], @@ -172,7 +190,8 @@ "file": "Gemfile", "lines": [ 97, - 137 + 137, + 177 ] } ], @@ -181,7 +200,8 @@ "file": "Gemfile", "lines": [ 106, - 146 + 146, + 186 ] } ] diff --git a/gems/ast-crispr-ruby-prism/Gemfile b/gems/ast-crispr-ruby-prism/Gemfile index d7736c82f..b0deaa503 100644 --- a/gems/ast-crispr-ruby-prism/Gemfile +++ b/gems/ast-crispr-ruby-prism/Gemfile @@ -152,6 +152,46 @@ if direct_sibling_gems.any? && end end +if direct_sibling_gems.any? && + (direct_sibling_local || + ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) + direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') + direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) + begin + nomono_activation_requirements = nomono_requirements + nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) + if File.file?(nomono_lockfile) + nomono_locked_spec = Bundler::LockfileParser + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } + nomono_locked = nomono_locked_spec && + Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked + end + Kernel.send(:gem, 'nomono', *nomono_activation_requirements) + require 'nomono/bundler' + ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local + + eval_nomono_gems( + gems: direct_sibling_gems, + prefix: 'STRUCTUREDMERGE', + path_env: 'STRUCTUREDMERGE_DEV', + root: %w[src my structuredmerge] + ) + rescue LoadError + warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' + ensure + if direct_sibling_templating && !direct_sibling_local + if direct_sibling_dev_was_set + ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original + else + ENV.delete('STRUCTUREDMERGE_DEV') + end + end + end +end + # Use released TSLP with the Ruby ABI platform-gem fix. gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' diff --git a/gems/ast-crispr-ruby-prism/Gemfile.lock b/gems/ast-crispr-ruby-prism/Gemfile.lock index 2d4579978..66b6ab440 100644 --- a/gems/ast-crispr-ruby-prism/Gemfile.lock +++ b/gems/ast-crispr-ruby-prism/Gemfile.lock @@ -6,6 +6,22 @@ PATH prism-merge (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) +PATH + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr + specs: + ast-crispr (7.1.0) + ast-merge (= 7.1.0) + service_actor (~> 3.9) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/prism-merge + specs: + prism-merge (7.1.0) + prism (~> 1.6) + ruby-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + GEM remote: https://gem.coop/ specs: @@ -21,10 +37,6 @@ GEM rubocop (>= 1.0) version_gem (~> 1.1, >= 1.1.14) ast (2.4.3) - ast-crispr (7.1.0) - ast-merge (= 7.1.0) - service_actor (~> 3.9) - version_gem (~> 1.1, >= 1.1.9) ast-merge (7.1.0) benchmark token-resolver (~> 2.0, >= 2.0.4) @@ -146,10 +158,6 @@ GEM prettyprint prettyprint (0.2.0) prism (1.9.0) - prism-merge (7.1.0) - prism (~> 1.6) - ruby-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) psych (5.4.0) date stringio @@ -396,6 +404,7 @@ DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) appraisal2-rubocop (~> 1.0, >= 1.0.0) + ast-crispr! ast-crispr-ruby-prism! benchmark (~> 0.5, >= 0.5.0) bundler-audit (~> 0.9.3) @@ -412,6 +421,7 @@ DEPENDENCIES kramdown-parser-gfm (~> 1.1) mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) + prism-merge! rake (~> 13.0) rbs (>= 3.0) rdoc (~> 6.11) diff --git a/gems/ast-crispr/Gemfile.lock b/gems/ast-crispr/Gemfile.lock index e964cc06b..c358a8a1b 100644 --- a/gems/ast-crispr/Gemfile.lock +++ b/gems/ast-crispr/Gemfile.lock @@ -6,15 +6,6 @@ PATH service_actor (~> 3.9) version_gem (~> 1.1, >= 1.1.9) -PATH - remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/ast-merge - specs: - ast-merge (7.1.0) - benchmark - token-resolver (~> 2.0, >= 2.0.4) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - GEM remote: https://gem.coop/ specs: @@ -30,6 +21,11 @@ GEM rubocop (>= 1.0) version_gem (~> 1.1, >= 1.1.14) ast (2.4.3) + ast-merge (7.1.0) + benchmark + token-resolver (~> 2.0, >= 2.0.4) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) backports (3.25.3) benchmark (0.5.0) bigdecimal (4.1.2) @@ -390,7 +386,6 @@ DEPENDENCIES appraisal2 (~> 3.0, >= 3.0.6) appraisal2-rubocop (~> 1.0, >= 1.0.0) ast-crispr! - ast-merge! benchmark (~> 0.5, >= 0.5.0) bundler-audit (~> 0.9.3) cgi (~> 0.5) diff --git a/gems/ast-merge/.rubocop_gradual.lock b/gems/ast-merge/.rubocop_gradual.lock deleted file mode 100644 index 80f95ef30..000000000 --- a/gems/ast-merge/.rubocop_gradual.lock +++ /dev/null @@ -1,2942 +0,0 @@ -{ - ".simplecov:3026903189": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "Rakefile:429706125": [ - [18, 121, 17, "Layout/LineLength: Line is too long. [137/120]", 174264873], - [79, 3, 1023, "Metrics/BlockLength: Block has too many lines. [32/25]", 54868638], - [163, 121, 22, "Layout/LineLength: Line is too long. [142/120]", 1367093088], - [166, 121, 18, "Layout/LineLength: Line is too long. [138/120]", 3881946477] - ], - "ast-merge.gemspec:1182320030": [ - [16, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1168797721], - [129, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 2821357214], - [144, 121, 50, "Layout/LineLength: Line is too long. [170/120]", 3888612416], - [145, 121, 29, "Layout/LineLength: Line is too long. [149/120]", 981994949], - [152, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 4229808912] - ], - "gemfiles/modular/benchmark/r4/v0.5.gemfile:5381": [ - [1, 1, 0, "Lint/EmptyFile: Empty file detected.", 5381] - ], - "gemfiles/modular/benchmark/vHEAD.gemfile:5381": [ - [1, 1, 0, "Lint/EmptyFile: Empty file detected.", 5381], - [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381] - ], - "gemfiles/modular/cgi/r4/v0.5.gemfile:367169322": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] - ], - "gemfiles/modular/cgi/vHEAD.gemfile:2729540777": [ - [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] - ], - "gemfiles/modular/erb/r2/v3.0.gemfile:1688285565": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] - ], - "gemfiles/modular/erb/r3/v5.0.gemfile:2394062339": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] - ], - "gemfiles/modular/erb/r4/v5.0.gemfile:2394062339": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] - ], - "gemfiles/modular/erb/vHEAD.gemfile:981929959": [ - [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/mutex_m/r2/v0.3.gemfile:4055275004": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/mutex_m/r3/v0.3.gemfile:4055275004": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/mutex_m/r4/v0.3.gemfile:4055275004": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/mutex_m/vHEAD.gemfile:556854763": [ - [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/rspec.gemfile:2263543889": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] - ], - "gemfiles/modular/stringio/r2/v3.0.gemfile:821604304": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/stringio/r3/v3.0.gemfile:821604304": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/stringio/r4/v3.0.gemfile:821604304": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/stringio/vHEAD.gemfile:1045839691": [ - [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/webrick/r4/v1.9.gemfile:3092661193": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] - ], - "gemfiles/modular/webrick/vHEAD.gemfile:3867684682": [ - [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] - ], - "gemfiles/modular/x_std_libs.gemfile:2324400122": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/x_std_libs/r2/libs.gemfile:36276542": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] - ], - "gemfiles/modular/x_std_libs/r3/libs.gemfile:4030570297": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] - ], - "gemfiles/modular/x_std_libs/r4/libs.gemfile:732451732": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] - ], - "gemfiles/modular/x_std_libs/vHEAD.gemfile:2390363993": [ - [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] - ], - "lib/ast-merge.rb:3005639624": [ - [1, 1, 0, "Naming/FileName: The name of this source file (`ast-merge.rb`) should use snake_case.", 5381] - ], - "lib/ast/merge.rb:3962755273": [ - [11, 3, 12, "Style/Documentation: Missing top-level documentation comment for `module Ast::Merge`.", 2866359175], - [11, 3, 270298, "Metrics/ModuleLength: Module has too many lines. [5705/100]", 2774418219], - [22, 5, 16, "Style/Documentation: Missing top-level documentation comment for `class Ast::Merge::ParseError`.", 362242086], - [33, 7, 362, "Metrics/AbcSize: Assignment Branch Condition size for `build_message` is too high. [<2, 16, 6> 17.2/17]", 3988736327], - [47, 5, 31, "Style/Documentation: Missing top-level documentation comment for `class Ast::Merge::PlaceholderCollisionError`.", 218924302], - [164, 7, 337, "Metrics/MethodLength: Method has too many lines. [11/10]", 2388996629], - [181, 7, 327, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `to_h` is too high. [8/7]", 979795121], - [312, 7, 383, "Metrics/MethodLength: Method has too many lines. [11/10]", 634650261], - [476, 121, 29, "Layout/LineLength: Line is too long. [149/120]", 3450568485], - [477, 7, 461, "Metrics/MethodLength: Method has too many lines. [12/10]", 43929779], - [494, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 1299979089], - [495, 7, 377, "Metrics/MethodLength: Method has too many lines. [11/10]", 3704151253], - [511, 121, 39, "Layout/LineLength: Line is too long. [159/120]", 85503958], - [512, 7, 447, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `to_h` is too high. [8/7]", 298553749], - [512, 7, 447, "Metrics/MethodLength: Method has too many lines. [12/10]", 298553749], - [541, 121, 25, "Layout/LineLength: Line is too long. [145/120]", 1441148616], - [542, 7, 453, "Metrics/MethodLength: Method has too many lines. [14/10]", 1899007021], - [561, 121, 3, "Layout/LineLength: Line is too long. [123/120]", 193342990], - [562, 7, 400, "Metrics/MethodLength: Method has too many lines. [11/10]", 298553749], - [591, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5860750], - [592, 7, 411, "Metrics/MethodLength: Method has too many lines. [12/10]", 2893925621], - [609, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 3137791633], - [610, 7, 454, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `to_h` is too high. [8/7]", 298553749], - [610, 7, 454, "Metrics/MethodLength: Method has too many lines. [12/10]", 298553749], - [669, 7, 385, "Metrics/MethodLength: Method has too many lines. [11/10]", 794265461], - [706, 7, 419, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `to_h` is too high. [10/7]", 3313546353], - [706, 7, 419, "Metrics/PerceivedComplexity: Perceived complexity for `to_h` is too high. [10/8]", 3313546353], - [756, 121, 11, "Layout/LineLength: Line is too long. [131/120]", 398187770], - [768, 121, 40, "Layout/LineLength: Line is too long. [160/120]", 2746783933], - [815, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5860841], - [823, 121, 156, "Layout/LineLength: Line is too long. [276/120]", 1149525480], - [828, 121, 24, "Layout/LineLength: Line is too long. [144/120]", 2538424426], - [840, 121, 22, "Layout/LineLength: Line is too long. [142/120]", 2285382915], - [850, 121, 7, "Layout/LineLength: Line is too long. [127/120]", 3962419360], - [863, 121, 11, "Layout/LineLength: Line is too long. [131/120]", 398187770], - [865, 121, 16, "Layout/LineLength: Line is too long. [136/120]", 3195178507], - [869, 121, 85, "Layout/LineLength: Line is too long. [205/120]", 4238980637], - [871, 121, 13, "Layout/LineLength: Line is too long. [133/120]", 2678411233], - [873, 121, 39, "Layout/LineLength: Line is too long. [159/120]", 4028520110], - [884, 121, 110, "Layout/LineLength: Line is too long. [230/120]", 3837814921], - [898, 5, 2283, "Metrics/MethodLength: Method has too many lines. [57/10]", 2282416447], - [958, 5, 2654, "Metrics/MethodLength: Method has too many lines. [63/10]", 2491520565], - [1009, 121, 9, "Layout/LineLength: Line is too long. [129/120]", 1823519875], - [1018, 121, 21, "Layout/LineLength: Line is too long. [141/120]", 1874311968], - [1024, 5, 10660, "Metrics/AbcSize: Assignment Branch Condition size for `ruby_downstream_merge_gem_feature_matrix` is too high. [<0, 21, 0> 21/17]", 2277322577], - [1024, 5, 10660, "Metrics/MethodLength: Method has too many lines. [248/10]", 2277322577], - [1275, 5, 1546, "Metrics/MethodLength: Method has too many lines. [37/10]", 208933754], - [1309, 121, 33, "Layout/LineLength: Line is too long. [153/120]", 2658452668], - [1315, 5, 4206, "Metrics/MethodLength: Method has too many lines. [96/10]", 1997530776], - [1392, 121, 5, "Layout/LineLength: Line is too long. [125/120]", 183246985], - [1408, 121, 15, "Layout/LineLength: Line is too long. [135/120]", 3268438356], - [1414, 5, 1598, "Metrics/MethodLength: Method has too many lines. [46/10]", 849757258], - [1457, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1323237892], - [1463, 5, 1164, "Metrics/MethodLength: Method has too many lines. [36/10]", 1477831421], - [1496, 121, 13, "Layout/LineLength: Line is too long. [133/120]", 931876829], - [1502, 5, 1699, "Metrics/MethodLength: Method has too many lines. [43/10]", 1125544678], - [1548, 5, 1016, "Metrics/MethodLength: Method has too many lines. [27/10]", 2194427985], - [1578, 5, 1058, "Metrics/MethodLength: Method has too many lines. [30/10]", 47860722], - [1611, 5, 1186, "Metrics/MethodLength: Method has too many lines. [31/10]", 676863486], - [1639, 121, 21, "Layout/LineLength: Line is too long. [141/120]", 2689509078], - [1645, 5, 1517, "Metrics/MethodLength: Method has too many lines. [41/10]", 3855445172], - [1658, 121, 24, "Layout/LineLength: Line is too long. [144/120]", 817380904], - [1683, 121, 26, "Layout/LineLength: Line is too long. [146/120]", 409671963], - [1689, 5, 2116, "Metrics/MethodLength: Method has too many lines. [61/10]", 524104794], - [1753, 5, 820, "Metrics/MethodLength: Method has too many lines. [12/10]", 1888457180], - [1753, 37, 298, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [10/5]", 789483382], - [1754, 121, 100, "Layout/LineLength: Line is too long. [220/120]", 3288750271], - [1769, 5, 3595, "Metrics/AbcSize: Assignment Branch Condition size for `initial_profile_promotion_policy` is too high. [<9, 20, 0> 21.93/17]", 83685787], - [1769, 5, 3595, "Metrics/MethodLength: Method has too many lines. [77/10]", 83685787], - [1849, 5, 768, "Metrics/MethodLength: Method has too many lines. [17/10]", 314059802], - [1870, 5, 1493, "Metrics/AbcSize: Assignment Branch Condition size for `evaluate_profile_selection_requirement` is too high. [<7, 23, 9> 25.67/17]", 3177555163], - [1870, 5, 1493, "Metrics/MethodLength: Method has too many lines. [29/10]", 3177555163], - [1871, 121, 18, "Layout/LineLength: Line is too long. [138/120]", 2145168012], - [1878, 121, 7, "Layout/LineLength: Line is too long. [127/120]", 683002336], - [1912, 5, 985, "Metrics/AbcSize: Assignment Branch Condition size for `profile_promotion_blocking_reasons` is too high. [<4, 25, 13> 28.46/17]", 1146627465], - [1912, 5, 985, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `profile_promotion_blocking_reasons` is too high. [10/7]", 1146627465], - [1912, 5, 985, "Metrics/MethodLength: Method has too many lines. [18/10]", 1146627465], - [1912, 5, 985, "Metrics/PerceivedComplexity: Perceived complexity for `profile_promotion_blocking_reasons` is too high. [10/8]", 1146627465], - [1933, 5, 3173, "Metrics/AbcSize: Assignment Branch Condition size for `validate_language_backend_profile` is too high. [<25, 68, 20> 75.16/17]", 2100389324], - [1933, 5, 3173, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `validate_language_backend_profile` is too high. [21/7]", 2100389324], - [1933, 5, 3173, "Metrics/MethodLength: Method has too many lines. [60/10]", 2100389324], - [1933, 5, 3173, "Metrics/PerceivedComplexity: Perceived complexity for `validate_language_backend_profile` is too high. [23/8]", 2100389324], - [2005, 5, 1523, "Metrics/AbcSize: Assignment Branch Condition size for `validate_backend_inventory` is too high. [<13, 38, 13> 42.21/17]", 1899037537], - [2005, 5, 1523, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `validate_backend_inventory` is too high. [13/7]", 1899037537], - [2005, 5, 1523, "Metrics/MethodLength: Method has too many lines. [25/10]", 1899037537], - [2005, 5, 1523, "Metrics/PerceivedComplexity: Perceived complexity for `validate_backend_inventory` is too high. [13/8]", 1899037537], - [2048, 5, 906, "Metrics/MethodLength: Method has too many lines. [20/10]", 3137959843], - [2071, 5, 2744, "Metrics/AbcSize: Assignment Branch Condition size for `detect_raw_merge_inconsistencies` is too high. [<8, 43, 21> 48.52/17]", 3717440692], - [2071, 5, 2744, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `detect_raw_merge_inconsistencies` is too high. [17/7]", 3717440692], - [2071, 5, 2744, "Metrics/MethodLength: Method has too many lines. [53/10]", 3717440692], - [2071, 5, 2744, "Metrics/PerceivedComplexity: Perceived complexity for `detect_raw_merge_inconsistencies` is too high. [17/8]", 3717440692], - [2086, 7, 1894, "Metrics/BlockLength: Block has too many lines. [33/25]", 758887611], - [2132, 5, 762, "Metrics/MethodLength: Method has too many lines. [11/10]", 3021402342], - [2146, 5, 490, "Metrics/MethodLength: Method has too many lines. [11/10]", 578473475], - [2160, 5, 881, "Metrics/AbcSize: Assignment Branch Condition size for `execute_independent_commutative_insertions` is too high. [<6, 16, 7> 18.47/17]", 259417386], - [2160, 5, 881, "Metrics/MethodLength: Method has too many lines. [21/10]", 259417386], - [2187, 5, 1107, "Metrics/AbcSize: Assignment Branch Condition size for `execute_independent_keyed_member_edits` is too high. [<10, 31, 15> 35.86/17]", 4271501385], - [2187, 5, 1107, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `execute_independent_keyed_member_edits` is too high. [14/7]", 4271501385], - [2187, 5, 1107, "Metrics/MethodLength: Method has too many lines. [24/10]", 4271501385], - [2187, 5, 1107, "Metrics/PerceivedComplexity: Perceived complexity for `execute_independent_keyed_member_edits` is too high. [14/8]", 4271501385], - [2231, 5, 3149, "Metrics/AbcSize: Assignment Branch Condition size for `parse_compact_ruleset` is too high. [<16, 68, 24> 73.86/17]", 3149098803], - [2231, 5, 3149, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `parse_compact_ruleset` is too high. [22/7]", 3149098803], - [2231, 5, 3149, "Metrics/MethodLength: Method has too many lines. [67/10]", 3149098803], - [2231, 5, 3149, "Metrics/PerceivedComplexity: Perceived complexity for `parse_compact_ruleset` is too high. [23/8]", 3149098803], - [2237, 7, 2544, "Metrics/BlockLength: Block has too many lines. [50/25]", 2484860466], - [2264, 121, 3, "Layout/LineLength: Line is too long. [123/120]", 193420054], - [2310, 5, 2658, "Metrics/AbcSize: Assignment Branch Condition size for `compact_ruleset_feature_profile` is too high. [<11, 67, 38> 77.81/17]", 4022599673], - [2310, 5, 2658, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `compact_ruleset_feature_profile` is too high. [29/7]", 4022599673], - [2310, 5, 2658, "Metrics/MethodLength: Method has too many lines. [66/10]", 4022599673], - [2310, 5, 2658, "Metrics/PerceivedComplexity: Perceived complexity for `compact_ruleset_feature_profile` is too high. [16/8]", 4022599673], - [2328, 7, 2243, "Metrics/BlockLength: Block has too many lines. [47/25]", 965041772], - [2395, 5, 2733, "Metrics/AbcSize: Assignment Branch Condition size for `classify_template_target_path` is too high. [<4, 36, 23> 42.91/17]", 3661828596], - [2395, 5, 2733, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `classify_template_target_path` is too high. [21/7]", 3661828596], - [2395, 5, 2733, "Metrics/MethodLength: Method has too many lines. [39/10]", 3661828596], - [2395, 5, 2733, "Metrics/PerceivedComplexity: Perceived complexity for `classify_template_target_path` is too high. [17/8]", 3661828596], - [2427, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5858795], - [2441, 5, 416, "Metrics/MethodLength: Method has too many lines. [12/10]", 1388641773], - [2484, 5, 388, "Metrics/MethodLength: Method has too many lines. [12/10]", 2360583514], - [2513, 5, 820, "Metrics/MethodLength: Method has too many lines. [13/10]", 354674808], - [2529, 5, 929, "Metrics/AbcSize: Assignment Branch Condition size for `enrich_template_plan_entries` is too high. [<9, 12, 10> 18.03/17]", 2666747528], - [2529, 5, 929, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `enrich_template_plan_entries` is too high. [9/7]", 2666747528], - [2529, 5, 929, "Metrics/MethodLength: Method has too many lines. [19/10]", 2666747528], - [2529, 5, 929, "Metrics/PerceivedComplexity: Perceived complexity for `enrich_template_plan_entries` is too high. [10/8]", 2666747528], - [2552, 5, 1245, "Metrics/AbcSize: Assignment Branch Condition size for `enrich_template_plan_entries_with_token_state` is too high. [<11, 23, 14> 29.09/17]", 1507113977], - [2552, 5, 1245, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `enrich_template_plan_entries_with_token_state` is too high. [13/7]", 1507113977], - [2552, 5, 1245, "Metrics/MethodLength: Method has too many lines. [19/10]", 1507113977], - [2552, 5, 1245, "Metrics/PerceivedComplexity: Perceived complexity for `enrich_template_plan_entries_with_token_state` is too high. [13/8]", 1507113977], - [2576, 5, 1353, "Metrics/AbcSize: Assignment Branch Condition size for `prepare_template_entries` is too high. [<6, 18, 11> 21.93/17]", 2774310942], - [2576, 5, 1353, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `prepare_template_entries` is too high. [11/7]", 2774310942], - [2576, 5, 1353, "Metrics/MethodLength: Method has too many lines. [24/10]", 2774310942], - [2576, 5, 1353, "Metrics/PerceivedComplexity: Perceived complexity for `prepare_template_entries` is too high. [12/8]", 2774310942], - [2606, 5, 1494, "Metrics/AbcSize: Assignment Branch Condition size for `plan_template_execution` is too high. [<8, 22, 17> 28.93/17]", 3876421385], - [2606, 5, 1494, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `plan_template_execution` is too high. [14/7]", 3876421385], - [2606, 5, 1494, "Metrics/MethodLength: Method has too many lines. [29/10]", 3876421385], - [2606, 5, 1494, "Metrics/PerceivedComplexity: Perceived complexity for `plan_template_execution` is too high. [15/8]", 3876421385], - [2607, 7, 1421, "Metrics/BlockLength: Block has too many lines. [27/25]", 2887810383], - [2640, 5, 822, "Metrics/ParameterLists: Method has too many optional parameters. [5/3]", 2749235529], - [2640, 37, 220, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [9/5]", 447165880], - [2641, 121, 29, "Layout/LineLength: Line is too long. [149/120]", 518382509], - [2655, 5, 2060, "Metrics/AbcSize: Assignment Branch Condition size for `preview_template_execution` is too high. [<11, 42, 26> 50.61/17]", 2270817206], - [2655, 5, 2060, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `preview_template_execution` is too high. [25/7]", 2270817206], - [2655, 5, 2060, "Metrics/MethodLength: Method has too many lines. [39/10]", 2270817206], - [2655, 5, 2060, "Metrics/PerceivedComplexity: Perceived complexity for `preview_template_execution` is too high. [23/8]", 2270817206], - [2665, 7, 1809, "Metrics/BlockLength: Block has too many lines. [28/25]", 310337564], - [2703, 5, 2513, "Metrics/AbcSize: Assignment Branch Condition size for `apply_template_execution` is too high. [<14, 50, 25> 57.63/17]", 177708331], - [2703, 5, 2513, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `apply_template_execution` is too high. [26/7]", 177708331], - [2703, 5, 2513, "Metrics/MethodLength: Method has too many lines. [50/10]", 177708331], - [2703, 5, 2513, "Metrics/PerceivedComplexity: Perceived complexity for `apply_template_execution` is too high. [23/8]", 177708331], - [2714, 7, 2239, "Metrics/BlockLength: Block has too many lines. [38/25]", 1651205014], - [2764, 5, 1696, "Metrics/AbcSize: Assignment Branch Condition size for `evaluate_template_tree_convergence` is too high. [<11, 29, 17> 35.37/17]", 2507998041], - [2764, 5, 1696, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `evaluate_template_tree_convergence` is too high. [17/7]", 2507998041], - [2764, 5, 1696, "Metrics/MethodLength: Method has too many lines. [35/10]", 2507998041], - [2764, 5, 1696, "Metrics/ParameterLists: Method has too many optional parameters. [5/3]", 2507998041], - [2764, 5, 1696, "Metrics/PerceivedComplexity: Perceived complexity for `evaluate_template_tree_convergence` is too high. [17/8]", 2507998041], - [2764, 43, 198, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [8/5]", 4214374277], - [2765, 121, 13, "Layout/LineLength: Line is too long. [133/120]", 2983874608], - [2807, 5, 688, "Metrics/MethodLength: Method has too many lines. [15/10]", 3064253784], - [2807, 5, 688, "Metrics/ParameterLists: Method has too many optional parameters. [5/3]", 3064253784], - [2807, 36, 216, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [8/5]", 448029307], - [2808, 121, 31, "Layout/LineLength: Line is too long. [151/120]", 3840139076], - [2851, 5, 664, "Metrics/MethodLength: Method has too many lines. [13/10]", 995637868], - [2851, 5, 664, "Metrics/ParameterLists: Method has too many optional parameters. [5/3]", 995637868], - [2851, 53, 202, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [7/5]", 4227116196], - [2852, 121, 48, "Layout/LineLength: Line is too long. [168/120]", 418683952], - [2869, 5, 649, "Metrics/MethodLength: Method has too many lines. [13/10]", 1831524792], - [2869, 5, 649, "Metrics/ParameterLists: Method has too many optional parameters. [5/3]", 1831524792], - [2869, 54, 178, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [7/5]", 2962381850], - [2870, 121, 24, "Layout/LineLength: Line is too long. [144/120]", 3690915627], - [2887, 5, 1280, "Metrics/AbcSize: Assignment Branch Condition size for `apply_template_tree_execution_to_directory` is too high. [<6, 16, 6> 18.11/17]", 305449363], - [2887, 5, 1280, "Metrics/MethodLength: Method has too many lines. [23/10]", 305449363], - [2887, 5, 1280, "Metrics/ParameterLists: Method has too many optional parameters. [5/3]", 305449363], - [2887, 51, 200, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [7/5]", 1352434212], - [2888, 121, 46, "Layout/LineLength: Line is too long. [166/120]", 1139621482], - [2916, 5, 2199, "Metrics/AbcSize: Assignment Branch Condition size for `report_template_tree_run` is too high. [<15, 42, 31> 54.31/17]", 975627723], - [2916, 5, 2199, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `report_template_tree_run` is too high. [25/7]", 975627723], - [2916, 5, 2199, "Metrics/MethodLength: Method has too many lines. [38/10]", 975627723], - [2916, 5, 2199, "Metrics/PerceivedComplexity: Perceived complexity for `report_template_tree_run` is too high. [26/8]", 975627723], - [2960, 5, 1515, "Metrics/AbcSize: Assignment Branch Condition size for `report_template_directory_apply` is too high. [<13, 35, 21> 42.84/17]", 3710254295], - [2960, 5, 1515, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `report_template_directory_apply` is too high. [17/7]", 3710254295], - [2960, 5, 1515, "Metrics/MethodLength: Method has too many lines. [26/10]", 3710254295], - [2960, 5, 1515, "Metrics/PerceivedComplexity: Perceived complexity for `report_template_directory_apply` is too high. [17/8]", 3710254295], - [2975, 20, 1, "Style/DoubleNegation: Avoid the use of double negation (`!!`).", 177540], - [2992, 5, 1656, "Metrics/AbcSize: Assignment Branch Condition size for `report_template_directory_plan` is too high. [<11, 24, 25> 36.36/17]", 2946319293], - [2992, 5, 1656, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `report_template_directory_plan` is too high. [18/7]", 2946319293], - [2992, 5, 1656, "Metrics/MethodLength: Method has too many lines. [36/10]", 2946319293], - [2992, 5, 1656, "Metrics/PerceivedComplexity: Perceived complexity for `report_template_directory_plan` is too high. [16/8]", 2946319293], - [3064, 7, 9, "Style/MultilineBlockChain: Avoid multi-line chains of blocks.", 3648222389], - [3085, 5, 410, "Metrics/MethodLength: Method has too many lines. [12/10]", 248324428], - [3091, 7, 11, "Style/MultilineBlockChain: Avoid multi-line chains of blocks.", 848344986], - [3135, 5, 712, "Metrics/MethodLength: Method has too many lines. [12/10]", 2500743043], - [3135, 27, 178, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [9/5]", 873705194], - [3135, 121, 10, "Layout/LineLength: Line is too long. [130/120]", 3023611470], - [3161, 42, 167, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 2002181571], - [3174, 5, 1097, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `structured_edit_selection_profile` is too high. [8/7]", 1149325233], - [3174, 5, 1097, "Metrics/MethodLength: Method has too many lines. [14/10]", 1149325233], - [3174, 42, 311, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [11/5]", 3814063337], - [3175, 121, 16, "Layout/LineLength: Line is too long. [136/120]", 198450264], - [3188, 34, 47, "Style/SafeNavigation: Use safe navigation (`&.`) instead of checking if an object exists before calling the method.", 3204815976], - [3193, 5, 869, "Metrics/MethodLength: Method has too many lines. [11/10]", 83957392], - [3193, 41, 250, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [8/5]", 1486072775], - [3194, 121, 13, "Layout/LineLength: Line is too long. [133/120]", 1967186495], - [3204, 36, 47, "Style/SafeNavigation: Use safe navigation (`&.`) instead of checking if an object exists before calling the method.", 3204815976], - [3209, 5, 1156, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `structured_edit_match_profile` is too high. [10/7]", 4112674787], - [3209, 5, 1156, "Metrics/MethodLength: Method has too many lines. [15/10]", 4112674787], - [3209, 5, 1156, "Metrics/PerceivedComplexity: Perceived complexity for `structured_edit_match_profile` is too high. [10/8]", 4112674787], - [3209, 38, 321, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [12/5]", 823565876], - [3210, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5859667], - [3211, 121, 7, "Layout/LineLength: Line is too long. [127/120]", 3673982236], - [3229, 5, 933, "Metrics/MethodLength: Method has too many lines. [14/10]", 2099388915], - [3229, 37, 319, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [12/5]", 250907892], - [3230, 121, 1, "Layout/LineLength: Line is too long. [121/120]", 177545], - [3231, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 4154814685], - [3248, 5, 907, "Metrics/MethodLength: Method has too many lines. [12/10]", 2242846328], - [3248, 42, 275, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [9/5]", 246196330], - [3249, 121, 13, "Layout/LineLength: Line is too long. [133/120]", 1439117336], - [3265, 5, 1057, "Metrics/MethodLength: Method has too many lines. [14/10]", 2891607970], - [3265, 44, 323, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [11/5]", 1386547750], - [3266, 121, 19, "Layout/LineLength: Line is too long. [139/120]", 1676243675], - [3267, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 4154814685], - [3284, 5, 1375, "Metrics/AbcSize: Assignment Branch Condition size for `structured_edit_request` is too high. [<11, 25, 10> 29.09/17]", 4153786554], - [3284, 5, 1375, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `structured_edit_request` is too high. [11/7]", 4153786554], - [3284, 5, 1375, "Metrics/MethodLength: Method has too many lines. [16/10]", 4153786554], - [3284, 5, 1375, "Metrics/PerceivedComplexity: Perceived complexity for `structured_edit_request` is too high. [11/8]", 4153786554], - [3284, 32, 370, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [13/5]", 2381882467], - [3285, 121, 1, "Layout/LineLength: Line is too long. [121/120]", 177545], - [3306, 5, 728, "Metrics/MethodLength: Method has too many lines. [11/10]", 4026157473], - [3306, 31, 175, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [8/5]", 773121544], - [3338, 5, 597, "Metrics/MethodLength: Method has too many lines. [11/10]", 4143495860], - [3377, 5, 577, "Metrics/MethodLength: Method has too many lines. [11/10]", 4169131743], - [3392, 5, 1011, "Metrics/AbcSize: Assignment Branch Condition size for `structured_edit_execution_report` is too high. [<7, 16, 7> 18.81/17]", 876221899], - [3392, 5, 1011, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `structured_edit_execution_report` is too high. [8/7]", 876221899], - [3392, 5, 1011, "Metrics/MethodLength: Method has too many lines. [12/10]", 876221899], - [3392, 41, 245, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [9/5]", 2484440861], - [3393, 121, 55, "Layout/LineLength: Line is too long. [175/120]", 4036992717], - [3418, 55, 170, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [7/5]", 668161765], - [3441, 5, 819, "Metrics/MethodLength: Method has too many lines. [12/10]", 2287133436], - [3441, 56, 217, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [9/5]", 3198032135], - [3442, 121, 51, "Layout/LineLength: Line is too long. [171/120]", 3526181051], - [3475, 5, 663, "Metrics/MethodLength: Method has too many lines. [11/10]", 1853778635], - [3484, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 2162352564], - [3516, 5, 663, "Metrics/MethodLength: Method has too many lines. [11/10]", 1132214891], - [3525, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 2162352564], - [3547, 5, 678, "Metrics/MethodLength: Method has too many lines. [11/10]", 556747511], - [3556, 121, 9, "Layout/LineLength: Line is too long. [129/120]", 1808630920], - [3578, 5, 708, "Metrics/MethodLength: Method has too many lines. [11/10]", 3590891170], - [3587, 121, 15, "Layout/LineLength: Line is too long. [135/120]", 1367166441], - [3610, 5, 678, "Metrics/MethodLength: Method has too many lines. [11/10]", 689748855], - [3619, 121, 9, "Layout/LineLength: Line is too long. [129/120]", 1808630920], - [3641, 5, 708, "Metrics/MethodLength: Method has too many lines. [11/10]", 1478642210], - [3650, 121, 15, "Layout/LineLength: Line is too long. [135/120]", 1367166441], - [3674, 5, 663, "Metrics/MethodLength: Method has too many lines. [11/10]", 239506091], - [3683, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 2162352564], - [3705, 5, 693, "Metrics/MethodLength: Method has too many lines. [11/10]", 3803476550], - [3714, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 926808928], - [3737, 5, 728, "Metrics/MethodLength: Method has too many lines. [11/10]", 748161230], - [3746, 121, 21, "Layout/LineLength: Line is too long. [141/120]", 2807086497], - [3768, 5, 758, "Metrics/MethodLength: Method has too many lines. [11/10]", 3900524558], - [3777, 121, 27, "Layout/LineLength: Line is too long. [147/120]", 3463884836], - [3801, 5, 748, "Metrics/MethodLength: Method has too many lines. [11/10]", 2076716686], - [3810, 121, 25, "Layout/LineLength: Line is too long. [145/120]", 609414023], - [3832, 5, 778, "Metrics/MethodLength: Method has too many lines. [11/10]", 867958318], - [3836, 121, 3, "Layout/LineLength: Line is too long. [123/120]", 193343749], - [3841, 121, 31, "Layout/LineLength: Line is too long. [151/120]", 1202823007], - [3865, 5, 728, "Metrics/MethodLength: Method has too many lines. [11/10]", 2078323790], - [3874, 121, 21, "Layout/LineLength: Line is too long. [141/120]", 2807086497], - [3896, 5, 758, "Metrics/MethodLength: Method has too many lines. [11/10]", 121025422], - [3905, 121, 27, "Layout/LineLength: Line is too long. [147/120]", 3463884836], - [3927, 5, 733, "Metrics/MethodLength: Method has too many lines. [11/10]", 1216456558], - [3936, 121, 22, "Layout/LineLength: Line is too long. [142/120]", 145839927], - [3958, 5, 763, "Metrics/MethodLength: Method has too many lines. [11/10]", 2946525998], - [3967, 121, 28, "Layout/LineLength: Line is too long. [148/120]", 275709226], - [3991, 5, 768, "Metrics/MethodLength: Method has too many lines. [11/10]", 3281402414], - [3995, 121, 1, "Layout/LineLength: Line is too long. [121/120]", 177656], - [4000, 121, 29, "Layout/LineLength: Line is too long. [149/120]", 1427340581], - [4037, 121, 7, "Layout/LineLength: Line is too long. [127/120]", 3673982236], - [4094, 121, 3, "Layout/LineLength: Line is too long. [123/120]", 193417070], - [4105, 121, 7, "Layout/LineLength: Line is too long. [127/120]", 2768444], - [4112, 121, 32, "Layout/LineLength: Line is too long. [152/120]", 3833204035], - [4120, 5, 863, "Metrics/MethodLength: Method has too many lines. [11/10]", 3731153486], - [4124, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 4054494590], - [4129, 121, 48, "Layout/LineLength: Line is too long. [168/120]", 2084326338], - [4135, 121, 36, "Layout/LineLength: Line is too long. [156/120]", 4201858364], - [4139, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5861122], - [4143, 5, 873, "Metrics/MethodLength: Method has too many lines. [11/10]", 1866057614], - [4147, 121, 22, "Layout/LineLength: Line is too long. [142/120]", 3893180930], - [4152, 121, 50, "Layout/LineLength: Line is too long. [170/120]", 863421408], - [4158, 121, 40, "Layout/LineLength: Line is too long. [160/120]", 3247130491], - [4162, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1171438608], - [4166, 5, 883, "Metrics/MethodLength: Method has too many lines. [11/10]", 2352924462], - [4166, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5860841], - [4167, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5861334], - [4170, 121, 24, "Layout/LineLength: Line is too long. [144/120]", 465221046], - [4175, 121, 52, "Layout/LineLength: Line is too long. [172/120]", 1922522532], - [4191, 121, 44, "Layout/LineLength: Line is too long. [164/120]", 4067226670], - [4195, 121, 10, "Layout/LineLength: Line is too long. [130/120]", 2033573170], - [4199, 5, 893, "Metrics/MethodLength: Method has too many lines. [11/10]", 1633175534], - [4199, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2087926422], - [4200, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2087421565], - [4203, 121, 26, "Layout/LineLength: Line is too long. [146/120]", 615151909], - [4208, 121, 54, "Layout/LineLength: Line is too long. [174/120]", 884393597], - [4234, 121, 48, "Layout/LineLength: Line is too long. [168/120]", 417844693], - [4238, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 1233681340], - [4242, 5, 903, "Metrics/MethodLength: Method has too many lines. [11/10]", 3964877742], - [4242, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1165873471], - [4243, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1322899615], - [4246, 121, 28, "Layout/LineLength: Line is too long. [148/120]", 3471008807], - [4251, 121, 56, "Layout/LineLength: Line is too long. [176/120]", 627945471], - [4257, 121, 52, "Layout/LineLength: Line is too long. [172/120]", 2960084092], - [4261, 121, 18, "Layout/LineLength: Line is too long. [138/120]", 2148514258], - [4265, 5, 913, "Metrics/MethodLength: Method has too many lines. [11/10]", 385546958], - [4265, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 2970472935], - [4266, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 3808956371], - [4269, 121, 30, "Layout/LineLength: Line is too long. [150/120]", 3412499338], - [4274, 121, 58, "Layout/LineLength: Line is too long. [178/120]", 3274208144], - [4280, 121, 26, "Layout/LineLength: Line is too long. [146/120]", 4275923717], - [4288, 5, 848, "Metrics/MethodLength: Method has too many lines. [11/10]", 457851502], - [4292, 121, 17, "Layout/LineLength: Line is too long. [137/120]", 413805135], - [4297, 121, 45, "Layout/LineLength: Line is too long. [165/120]", 951908917], - [4303, 121, 10, "Layout/LineLength: Line is too long. [130/120]", 1859200227], - [4311, 5, 808, "Metrics/MethodLength: Method has too many lines. [11/10]", 884695726], - [4315, 121, 9, "Layout/LineLength: Line is too long. [129/120]", 2011807620], - [4320, 121, 37, "Layout/LineLength: Line is too long. [157/120]", 384138219], - [4326, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1176320663], - [4334, 5, 798, "Metrics/MethodLength: Method has too many lines. [11/10]", 1422521838], - [4338, 121, 7, "Layout/LineLength: Line is too long. [127/120]", 3247420006], - [4343, 121, 35, "Layout/LineLength: Line is too long. [155/120]", 1408316702], - [4349, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 938465266], - [4357, 5, 803, "Metrics/MethodLength: Method has too many lines. [11/10]", 2370839950], - [4361, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 74128911], - [4366, 121, 36, "Layout/LineLength: Line is too long. [156/120]", 1364659899], - [4372, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 2059517661], - [4380, 5, 803, "Metrics/MethodLength: Method has too many lines. [11/10]", 3379336814], - [4384, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 74128911], - [4389, 121, 36, "Layout/LineLength: Line is too long. [156/120]", 1364659899], - [4437, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 4281772560], - [4445, 5, 833, "Metrics/MethodLength: Method has too many lines. [11/10]", 3245498510], - [4449, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 3542644754], - [4454, 121, 42, "Layout/LineLength: Line is too long. [162/120]", 1916814773], - [4460, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 859690879], - [4468, 5, 833, "Metrics/MethodLength: Method has too many lines. [11/10]", 4138830126], - [4472, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 3542644754], - [4477, 121, 42, "Layout/LineLength: Line is too long. [162/120]", 1916814773], - [4483, 121, 18, "Layout/LineLength: Line is too long. [138/120]", 3880141603], - [4491, 5, 828, "Metrics/MethodLength: Method has too many lines. [11/10]", 3621010990], - [4495, 121, 13, "Layout/LineLength: Line is too long. [133/120]", 3917260126], - [4500, 121, 41, "Layout/LineLength: Line is too long. [161/120]", 1879260859], - [4506, 121, 22, "Layout/LineLength: Line is too long. [142/120]", 1776611011], - [4514, 5, 838, "Metrics/MethodLength: Method has too many lines. [11/10]", 514585454], - [4518, 121, 15, "Layout/LineLength: Line is too long. [135/120]", 1353518231], - [4523, 121, 43, "Layout/LineLength: Line is too long. [163/120]", 1228459824], - [4529, 121, 38, "Layout/LineLength: Line is too long. [158/120]", 3932349968], - [4533, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2087903307], - [4537, 5, 878, "Metrics/MethodLength: Method has too many lines. [11/10]", 1525737454], - [4537, 121, 1, "Layout/LineLength: Line is too long. [121/120]", 177548], - [4538, 121, 1, "Layout/LineLength: Line is too long. [121/120]", 177538], - [4541, 121, 23, "Layout/LineLength: Line is too long. [143/120]", 2895681070], - [4546, 121, 51, "Layout/LineLength: Line is too long. [171/120]", 4040662298], - [4552, 121, 10, "Layout/LineLength: Line is too long. [130/120]", 66929045], - [4560, 5, 808, "Metrics/MethodLength: Method has too many lines. [11/10]", 1626746606], - [4564, 121, 9, "Layout/LineLength: Line is too long. [129/120]", 2011807620], - [4569, 121, 37, "Layout/LineLength: Line is too long. [157/120]", 384138219], - [4583, 121, 22, "Layout/LineLength: Line is too long. [142/120]", 849230508], - [4591, 5, 838, "Metrics/MethodLength: Method has too many lines. [11/10]", 3531122670], - [4595, 121, 15, "Layout/LineLength: Line is too long. [135/120]", 1353518231], - [4600, 121, 43, "Layout/LineLength: Line is too long. [163/120]", 1228459824], - [4615, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1176320663], - [4623, 5, 798, "Metrics/MethodLength: Method has too many lines. [11/10]", 1118421486], - [4627, 121, 7, "Layout/LineLength: Line is too long. [127/120]", 3247420006], - [4632, 121, 35, "Layout/LineLength: Line is too long. [155/120]", 1408316702], - [4654, 5, 693, "Metrics/MethodLength: Method has too many lines. [11/10]", 1668406662], - [4663, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 926808928], - [4677, 5, 648, "Metrics/MethodLength: Method has too many lines. [11/10]", 3479836893], - [4686, 121, 3, "Layout/LineLength: Line is too long. [123/120]", 193343749], - [4708, 5, 678, "Metrics/MethodLength: Method has too many lines. [11/10]", 3147549879], - [4717, 121, 9, "Layout/LineLength: Line is too long. [129/120]", 1808630920], - [4752, 5, 677, "Metrics/MethodLength: Method has too many lines. [11/10]", 1206941784], - [4761, 121, 7, "Layout/LineLength: Line is too long. [127/120]", 3937819337], - [4784, 5, 672, "Metrics/MethodLength: Method has too many lines. [11/10]", 3634903061], - [4793, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 2162352564], - [4815, 5, 683, "Metrics/MethodLength: Method has too many lines. [11/10]", 3417053461], - [4824, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 926808928], - [4848, 5, 668, "Metrics/MethodLength: Method has too many lines. [11/10]", 1540762726], - [4857, 121, 9, "Layout/LineLength: Line is too long. [129/120]", 1808630920], - [4879, 5, 698, "Metrics/MethodLength: Method has too many lines. [11/10]", 2804825893], - [4888, 121, 15, "Layout/LineLength: Line is too long. [135/120]", 1367166441], - [4911, 5, 683, "Metrics/MethodLength: Method has too many lines. [11/10]", 3165010613], - [4920, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 926808928], - [4942, 5, 713, "Metrics/MethodLength: Method has too many lines. [11/10]", 2795628035], - [4951, 121, 18, "Layout/LineLength: Line is too long. [138/120]", 497133415], - [4957, 5, 864, "Metrics/MethodLength: Method has too many lines. [12/10]", 1086224878], - [4957, 50, 268, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [9/5]", 4022739767], - [4958, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1607400384], - [4982, 5, 658, "Metrics/MethodLength: Method has too many lines. [11/10]", 3999796489], - [4991, 121, 5, "Layout/LineLength: Line is too long. [125/120]", 102058825], - [5005, 59, 179, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 1569981428], - [5006, 121, 23, "Layout/LineLength: Line is too long. [143/120]", 1515849732], - [5037, 5, 694, "Metrics/MethodLength: Method has too many lines. [11/10]", 3830236120], - [5046, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 2250857971], - [5060, 5, 673, "Metrics/MethodLength: Method has too many lines. [11/10]", 2413908653], - [5069, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 1225026887], - [5083, 5, 663, "Metrics/MethodLength: Method has too many lines. [11/10]", 3935895659], - [5092, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 2162352564], - [5106, 5, 692, "Metrics/MethodLength: Method has too many lines. [11/10]", 3660669627], - [5115, 121, 10, "Layout/LineLength: Line is too long. [130/120]", 3558241761], - [5129, 5, 612, "Metrics/MethodLength: Method has too many lines. [11/10]", 100391811], - [5168, 5, 693, "Metrics/MethodLength: Method has too many lines. [11/10]", 3138587622], - [5177, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 926808928], - [5199, 5, 688, "Metrics/MethodLength: Method has too many lines. [11/10]", 2736088861], - [5208, 121, 13, "Layout/LineLength: Line is too long. [133/120]", 1992103013], - [5231, 5, 678, "Metrics/MethodLength: Method has too many lines. [11/10]", 2275602867], - [5240, 121, 11, "Layout/LineLength: Line is too long. [131/120]", 3598350322], - [5263, 5, 602, "Metrics/MethodLength: Method has too many lines. [11/10]", 3023166371], - [5278, 36, 181, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [7/5]", 1071580945], - [5291, 5, 787, "Metrics/AbcSize: Assignment Branch Condition size for `group_projected_child_review_cases` is too high. [<4, 17, 4> 17.92/17]", 3391527151], - [5291, 5, 787, "Metrics/MethodLength: Method has too many lines. [18/10]", 3391527151], - [5315, 5, 705, "Metrics/MethodLength: Method has too many lines. [13/10]", 2629923275], - [5342, 5, 547, "Metrics/MethodLength: Method has too many lines. [12/10]", 1911190850], - [5367, 5, 1516, "Metrics/AbcSize: Assignment Branch Condition size for `review_projected_child_groups` is too high. [<11, 21, 9> 25.36/17]", 3333110579], - [5367, 5, 1516, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `review_projected_child_groups` is too high. [8/7]", 3333110579], - [5367, 5, 1516, "Metrics/MethodLength: Method has too many lines. [39/10]", 3333110579], - [5367, 5, 1516, "Metrics/PerceivedComplexity: Perceived complexity for `review_projected_child_groups` is too high. [9/8]", 3333110579], - [5401, 7, 7, "Style/MultilineBlockChain: Avoid multi-line chains of blocks.", 4045560504], - [5413, 5, 562, "Metrics/MethodLength: Method has too many lines. [14/10]", 3083915102], - [5432, 5, 1898, "Metrics/AbcSize: Assignment Branch Condition size for `resolve_delegated_child_outputs` is too high. [<11, 21, 6> 24.45/17]", 2739722546], - [5432, 5, 1898, "Metrics/MethodLength: Method has too many lines. [49/10]", 2739722546], - [5487, 5, 942, "Metrics/AbcSize: Assignment Branch Condition size for `execute_nested_merge` is too high. [<3, 17, 6> 18.28/17]", 766157172], - [5487, 5, 942, "Metrics/MethodLength: Method has too many lines. [20/10]", 766157172], - [5487, 29, 144, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 1404367793], - [5514, 5, 652, "Metrics/MethodLength: Method has too many lines. [13/10]", 2105803856], - [5533, 38, 140, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 1682835820], - [5563, 5, 577, "Metrics/MethodLength: Method has too many lines. [12/10]", 2659610443], - [5632, 5, 569, "Metrics/MethodLength: Method has too many lines. [14/10]", 20616641], - [5660, 5, 772, "Metrics/AbcSize: Assignment Branch Condition size for `conformance_manifest_review_request_ids` is too high. [<7, 16, 8> 19.21/17]", 3577418475], - [5660, 5, 772, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `conformance_manifest_review_request_ids` is too high. [9/7]", 3577418475], - [5660, 5, 772, "Metrics/MethodLength: Method has too many lines. [14/10]", 3577418475], - [5660, 5, 772, "Metrics/PerceivedComplexity: Perceived complexity for `conformance_manifest_review_request_ids` is too high. [9/8]", 3577418475], - [5714, 5, 606, "Metrics/MethodLength: Method has too many lines. [11/10]", 2675086662], - [5729, 5, 562, "Metrics/MethodLength: Method has too many lines. [11/10]", 3811715870], - [5744, 5, 578, "Metrics/MethodLength: Method has too many lines. [11/10]", 1776197415], - [5759, 5, 1298, "Metrics/AbcSize: Assignment Branch Condition size for `resolve_conformance_family_context` is too high. [<7, 28, 9> 30.23/17]", 4265202259], - [5759, 5, 1298, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `resolve_conformance_family_context` is too high. [10/7]", 4265202259], - [5759, 5, 1298, "Metrics/MethodLength: Method has too many lines. [23/10]", 4265202259], - [5759, 5, 1298, "Metrics/PerceivedComplexity: Perceived complexity for `resolve_conformance_family_context` is too high. [10/8]", 4265202259], - [5788, 5, 1994, "Metrics/AbcSize: Assignment Branch Condition size for `review_conformance_family_context` is too high. [<12, 24, 10> 28.64/17]", 2834851944], - [5788, 5, 1994, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `review_conformance_family_context` is too high. [10/7]", 2834851944], - [5788, 5, 1994, "Metrics/MethodLength: Method has too many lines. [41/10]", 2834851944], - [5788, 5, 1994, "Metrics/PerceivedComplexity: Perceived complexity for `review_conformance_family_context` is too high. [11/8]", 2834851944], - [5811, 121, 33, "Layout/LineLength: Line is too long. [153/120]", 641612328], - [5848, 5, 1844, "Metrics/AbcSize: Assignment Branch Condition size for `select_conformance_case` is too high. [<2, 43, 14> 45.27/17]", 670673209], - [5848, 5, 1844, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `select_conformance_case` is too high. [14/7]", 670673209], - [5848, 5, 1844, "Metrics/MethodLength: Method has too many lines. [30/10]", 670673209], - [5848, 5, 1844, "Metrics/PerceivedComplexity: Perceived complexity for `select_conformance_case` is too high. [16/8]", 670673209], - [5853, 121, 34, "Layout/LineLength: Line is too long. [154/120]", 2135503892], - [5855, 121, 41, "Layout/LineLength: Line is too long. [161/120]", 3932054828], - [5864, 121, 30, "Layout/LineLength: Line is too long. [150/120]", 3169124957], - [5886, 5, 509, "Metrics/MethodLength: Method has too many lines. [11/10]", 3552283123], - [5975, 5, 4195, "Metrics/AbcSize: Assignment Branch Condition size for `review_conformance_manifest` is too high. [<37, 63, 16> 74.79/17]", 2166560528], - [5975, 5, 4195, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `review_conformance_manifest` is too high. [14/7]", 2166560528], - [5975, 5, 4195, "Metrics/MethodLength: Method has too many lines. [89/10]", 2166560528], - [5975, 5, 4195, "Metrics/PerceivedComplexity: Perceived complexity for `review_conformance_manifest` is too high. [17/8]", 2166560528], - [6040, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 2746826653], - [6056, 121, 47, "Layout/LineLength: Line is too long. [167/120]", 3035993839], - [6078, 5, 676, "Metrics/MethodLength: Method has too many lines. [15/10]", 3048335475], - [6101, 5, 1054, "Metrics/AbcSize: Assignment Branch Condition size for `plan_conformance_suite` is too high. [<11, 18, 8> 22.56/17]", 1855254788], - [6101, 5, 1054, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `plan_conformance_suite` is too high. [8/7]", 1855254788], - [6101, 5, 1054, "Metrics/MethodLength: Method has too many lines. [25/10]", 1855254788], - [6101, 31, 84, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 172854173], - [6166, 5, 1274, "Metrics/AbcSize: Assignment Branch Condition size for `plan_named_conformance_suites_with_diagnostics` is too high. [<11, 21, 7> 24.72/17]", 3991300730], - [6166, 5, 1274, "Metrics/MethodLength: Method has too many lines. [27/10]", 3991300730], - [6193, 121, 47, "Layout/LineLength: Line is too long. [167/120]", 3035993839], - [6258, 5, 2071, "Metrics/AbcSize: Assignment Branch Condition size for `review_decision_for_family_context` is too high. [<7, 22, 16> 28.09/17]", 4245377184], - [6258, 5, 2071, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `review_decision_for_family_context` is too high. [12/7]", 4245377184], - [6258, 5, 2071, "Metrics/MethodLength: Method has too many lines. [46/10]", 4245377184], - [6258, 5, 2071, "Metrics/PerceivedComplexity: Perceived complexity for `review_decision_for_family_context` is too high. [12/8]", 4245377184], - [6263, 7, 1766, "Metrics/BlockLength: Block has too many lines. [40/25]", 65448241], - [6315, 5, 686, "Metrics/MethodLength: Method has too many lines. [13/10]", 4030291682] - ], - "lib/ast/merge/ast_node.rb:2037773320": [ - [44, 5, 7086, "Metrics/ClassLength: Class has too many lines. [114/100]", 201314721], - [220, 11, 10, "Naming/PredicatePrefix: Rename `has_error?` to `error?`.", 946854183] - ], - "lib/ast/merge/comment/attachment.rb:2388154769": [ - [42, 23, 180, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [9/5]", 3775370530], - [75, 24, 2, "Lint/SafeNavigationConsistency: Use `.` instead of unnecessary `&.`.", 5858765], - [81, 25, 2, "Lint/SafeNavigationConsistency: Use `.` instead of unnecessary `&.`.", 5858765], - [114, 9, 410, "Metrics/AbcSize: Assignment Branch Condition size for `inspect` is too high. [<1, 17, 4> 17.49/17]", 605978105], - [115, 32, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765] - ], - "lib/ast/merge/comment/augmenter.rb:633395157": [ - [12, 7, 13967, "Metrics/ClassLength: Class has too many lines. [291/100]", 2806660144], - [33, 9, 721, "Metrics/MethodLength: Method has too many lines. [16/10]", 200402816], - [33, 23, 91, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [7/5]", 2938734913], - [64, 9, 1335, "Metrics/AbcSize: Assignment Branch Condition size for `build!` is too high. [<12, 29, 6> 31.95/17]", 3904283188], - [64, 9, 1335, "Metrics/MethodLength: Method has too many lines. [22/10]", 3904283188], - [94, 9, 867, "Metrics/AbcSize: Assignment Branch Condition size for `infer_leading_comments` is too high. [<8, 19, 14> 24.92/17]", 1941464872], - [94, 9, 867, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `infer_leading_comments` is too high. [11/7]", 1941464872], - [94, 9, 867, "Metrics/MethodLength: Method has too many lines. [20/10]", 1941464872], - [94, 9, 867, "Metrics/PerceivedComplexity: Perceived complexity for `infer_leading_comments` is too high. [12/8]", 1941464872], - [122, 9, 429, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `infer_inline_comments` is too high. [8/7]", 2688935834], - [133, 9, 934, "Metrics/AbcSize: Assignment Branch Condition size for `infer_trailing_comments` is too high. [<8, 21, 18> 28.79/17]", 1551855281], - [133, 9, 934, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `infer_trailing_comments` is too high. [15/7]", 1551855281], - [133, 9, 934, "Metrics/MethodLength: Method has too many lines. [20/10]", 1551855281], - [133, 9, 934, "Metrics/PerceivedComplexity: Perceived complexity for `infer_trailing_comments` is too high. [15/8]", 1551855281], - [160, 9, 488, "Metrics/AbcSize: Assignment Branch Condition size for `infer_postlude!` is too high. [<5, 17, 8> 19.44/17]", 2562637949], - [160, 9, 488, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `infer_postlude!` is too high. [8/7]", 2562637949], - [173, 9, 1529, "Metrics/AbcSize: Assignment Branch Condition size for `infer_remaining_regions!` is too high. [<12, 27, 23> 37.44/17]", 3911657050], - [173, 9, 1529, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `infer_remaining_regions!` is too high. [18/7]", 3911657050], - [173, 9, 1529, "Metrics/MethodLength: Method has too many lines. [28/10]", 3911657050], - [173, 9, 1529, "Metrics/PerceivedComplexity: Perceived complexity for `infer_remaining_regions!` is too high. [20/8]", 3911657050], - [216, 9, 507, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `split_preamble_group` is too high. [8/7]", 336784898], - [231, 9, 588, "Metrics/MethodLength: Method has too many lines. [17/10]", 3445626532], - [274, 9, 965, "Metrics/AbcSize: Assignment Branch Condition size for `build_region` is too high. [<6, 17, 7> 19.34/17]", 344809006], - [274, 9, 965, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `build_region` is too high. [8/7]", 344809006], - [274, 9, 965, "Metrics/MethodLength: Method has too many lines. [24/10]", 344809006] - ], - "lib/ast/merge/comment/block.rb:3806757604": [ - [31, 7, 6754, "Metrics/ClassLength: Class has too many lines. [106/100]", 2308582303], - [57, 9, 1059, "Metrics/AbcSize: Assignment Branch Condition size for `initialize` is too high. [<12, 13, 14> 22.56/17]", 2656171724], - [57, 9, 1059, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `initialize` is too high. [14/7]", 2656171724], - [57, 9, 1059, "Metrics/MethodLength: Method has too many lines. [21/10]", 2656171724], - [57, 9, 1059, "Metrics/PerceivedComplexity: Perceived complexity for `initialize` is too high. [15/8]", 2656171724], - [113, 9, 511, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `freeze_action` is too high. [9/7]", 55014877], - [113, 9, 511, "Metrics/MethodLength: Method has too many lines. [12/10]", 55014877], - [113, 9, 511, "Metrics/PerceivedComplexity: Perceived complexity for `freeze_action` is too high. [9/8]", 55014877], - [181, 9, 439, "Metrics/AbcSize: Assignment Branch Condition size for `first_meaningful_content` is too high. [<2, 16, 11> 19.52/17]", 680479883], - [181, 9, 439, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `first_meaningful_content` is too high. [11/7]", 680479883], - [181, 9, 439, "Metrics/PerceivedComplexity: Perceived complexity for `first_meaningful_content` is too high. [12/8]", 680479883], - [197, 9, 765, "Metrics/AbcSize: Assignment Branch Condition size for `extract_block_content` is too high. [<7, 24, 9> 26.57/17]", 621871624], - [197, 9, 765, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `extract_block_content` is too high. [9/7]", 621871624], - [197, 9, 765, "Metrics/PerceivedComplexity: Perceived complexity for `extract_block_content` is too high. [9/8]", 621871624] - ], - "lib/ast/merge/comment/c_style_tracker_base.rb:1569556520": [ - [22, 7, 15053, "Metrics/ClassLength: Class has too many lines. [284/100]", 3599183270], - [83, 9, 509, "Metrics/MethodLength: Method has too many lines. [11/10]", 1639553915], - [102, 9, 492, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `leading_comments_before` is too high. [8/7]", 3127043491], - [102, 9, 492, "Metrics/MethodLength: Method has too many lines. [11/10]", 3127043491], - [124, 9, 487, "Metrics/MethodLength: Method has too many lines. [11/10]", 1869933531], - [176, 9, 713, "Metrics/AbcSize: Assignment Branch Condition size for `trailing_comments_after` is too high. [<6, 12, 13> 18.68/17]", 543703521], - [176, 9, 713, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `trailing_comments_after` is too high. [11/7]", 543703521], - [176, 9, 713, "Metrics/MethodLength: Method has too many lines. [14/10]", 543703521], - [176, 9, 713, "Metrics/PerceivedComplexity: Perceived complexity for `trailing_comments_after` is too high. [11/8]", 543703521], - [184, 121, 1, "Layout/LineLength: Line is too long. [121/120]", 177549], - [202, 9, 598, "Metrics/MethodLength: Method has too many lines. [12/10]", 1628921093], - [222, 9, 1271, "Metrics/MethodLength: Method has too many lines. [21/10]", 612335469], - [222, 35, 137, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 1823300034], - [329, 35, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], - [348, 9, 2271, "Metrics/AbcSize: Assignment Branch Condition size for `extract_comments` is too high. [<17, 32, 13> 38.5/17]", 2751274968], - [348, 9, 2271, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `extract_comments` is too high. [14/7]", 2751274968], - [348, 9, 2271, "Metrics/MethodLength: Method has too many lines. [59/10]", 2751274968], - [348, 9, 2271, "Metrics/PerceivedComplexity: Perceived complexity for `extract_comments` is too high. [14/8]", 2751274968], - [353, 11, 2045, "Metrics/BlockLength: Block has too many lines. [52/25]", 575665179], - [418, 9, 659, "Metrics/MethodLength: Method has too many lines. [15/10]", 177254901], - [439, 71, 4, "Lint/UnusedMethodArgument: Unused method argument - `line`.", 2087656651], - [439, 78, 8, "Lint/UnusedMethodArgument: Unused method argument - `line_num`.", 622661090] - ], - "lib/ast/merge/comment/hash_tracker_base.rb:861186417": [ - [32, 7, 19362, "Metrics/ClassLength: Class has too many lines. [221/100]", 1031055222], - [118, 9, 444, "Metrics/MethodLength: Method has too many lines. [11/10]", 3347260807], - [142, 9, 921, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `leading_comments_before` is too high. [8/7]", 415734636], - [142, 9, 921, "Metrics/MethodLength: Method has too many lines. [11/10]", 415734636], - [172, 9, 440, "Metrics/MethodLength: Method has too many lines. [11/10]", 2464474004], - [225, 9, 623, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `trailing_comments_after` is too high. [10/7]", 543703521], - [225, 9, 623, "Metrics/MethodLength: Method has too many lines. [12/10]", 543703521], - [225, 9, 623, "Metrics/PerceivedComplexity: Perceived complexity for `trailing_comments_after` is too high. [10/8]", 543703521], - [249, 9, 551, "Metrics/MethodLength: Method has too many lines. [12/10]", 2783654570], - [278, 9, 1271, "Metrics/MethodLength: Method has too many lines. [21/10]", 612335469], - [278, 35, 137, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 1823300034], - [374, 35, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], - [439, 9, 826, "Metrics/MethodLength: Method has too many lines. [12/10]", 1706632542] - ], - "lib/ast/merge/comment/parser.rb:2674748021": [ - [34, 7, 8372, "Metrics/ClassLength: Class has too many lines. [141/100]", 2541983664], - [84, 9, 357, "Metrics/MethodLength: Method has too many lines. [12/10]", 2265493710], - [104, 9, 545, "Metrics/AbcSize: Assignment Branch Condition size for `auto_detect_style` is too high. [<5, 17, 7> 19.05/17]", 868366444], - [104, 9, 545, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `auto_detect_style` is too high. [8/7]", 868366444], - [125, 9, 1650, "Metrics/AbcSize: Assignment Branch Condition size for `parse_line_comments` is too high. [<8, 28, 7> 29.95/17]", 1511562163], - [125, 9, 1650, "Metrics/MethodLength: Method has too many lines. [31/10]", 1511562163], - [176, 9, 2670, "Metrics/AbcSize: Assignment Branch Condition size for `parse_with_block_comments` is too high. [<15, 47, 15> 51.57/17]", 2963765048], - [176, 9, 2670, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `parse_with_block_comments` is too high. [15/7]", 2963765048], - [176, 9, 2670, "Metrics/MethodLength: Method has too many lines. [47/10]", 2963765048], - [176, 9, 2670, "Metrics/PerceivedComplexity: Perceived complexity for `parse_with_block_comments` is too high. [16/8]", 2963765048], - [181, 11, 2390, "Metrics/BlockLength: Block has too many lines. [40/25]", 3720582340] - ], - "lib/ast/merge/comment/quoted_hash_line_parser.rb:2878420841": [ - [74, 9, 458, "Metrics/MethodLength: Method has too many lines. [11/10]", 1526360697], - [91, 9, 620, "Metrics/AbcSize: Assignment Branch Condition size for `inline_result` is too high. [<3, 16, 6> 17.35/17]", 2706755447], - [91, 9, 620, "Metrics/MethodLength: Method has too many lines. [14/10]", 2706755447] - ], - "lib/ast/merge/comment/region_merge_policy.rb:176745155": [ - [23, 23, 98, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 1029631546], - [55, 9, 423, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `freeze_sensitive?` is too high. [8/7]", 4102661282], - [61, 41, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], - [61, 85, 2, "Lint/SafeNavigationConsistency: Use `.` instead of unnecessary `&.`.", 5858765], - [96, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 3491399903] - ], - "lib/ast/merge/comment/style.rb:3045051983": [ - [27, 7, 9109, "Metrics/ClassLength: Class has too many lines. [143/100]", 131723516], - [142, 11, 911, "Metrics/MethodLength: Method has too many lines. [17/10]", 355862493], - [142, 23, 164, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [8/5]", 668558018], - [203, 23, 164, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [8/5]", 668558018] - ], - "lib/ast/merge/comment/tracked_hash_adapter.rb:3235547929": [ - [99, 11, 553, "Metrics/AbcSize: Assignment Branch Condition size for `line_text_from` is too high. [<4, 20, 4> 20.78/17]", 2680273536], - [99, 11, 553, "Metrics/MethodLength: Method has too many lines. [13/10]", 2680273536] - ], - "lib/ast/merge/comment_layout_emission_support.rb:3192614990": [ - [12, 5, 14039, "Metrics/ModuleLength: Module has too many lines. [287/100]", 2115648988], - [18, 40, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], - [29, 40, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], - [88, 43, 149, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 1025246092], - [100, 7, 916, "Metrics/MethodLength: Method has too many lines. [11/10]", 3294772058], - [100, 57, 163, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 1661656204], - [122, 7, 730, "Metrics/MethodLength: Method has too many lines. [13/10]", 2493279555], - [139, 62, 6, "Lint/UnusedMethodArgument: Unused method argument - `owners`.", 1719502071], - [193, 7, 477, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `retained_owner_leading_gap_for` is too high. [8/7]", 974771614], - [193, 7, 477, "Metrics/PerceivedComplexity: Perceived complexity for `retained_owner_leading_gap_for` is too high. [9/8]", 974771614], - [194, 40, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], - [220, 23, 24, "Style/SafeNavigation: Use safe navigation (`&.`) instead of checking if an object exists before calling the method.", 1487466207], - [243, 7, 1015, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `root_boundary_lines_for` is too high. [11/7]", 2612519600], - [243, 7, 1015, "Metrics/MethodLength: Method has too many lines. [13/10]", 2612519600], - [243, 7, 1015, "Metrics/PerceivedComplexity: Perceived complexity for `root_boundary_lines_for` is too high. [11/8]", 2612519600], - [247, 34, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], - [271, 7, 959, "Metrics/AbcSize: Assignment Branch Condition size for `owner_bound_root_boundary_lines_for` is too high. [<8, 22, 17> 28.93/17]", 238225688], - [271, 7, 959, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `owner_bound_root_boundary_lines_for` is too high. [16/7]", 238225688], - [271, 7, 959, "Metrics/MethodLength: Method has too many lines. [17/10]", 238225688], - [271, 7, 959, "Metrics/PerceivedComplexity: Perceived complexity for `owner_bound_root_boundary_lines_for` is too high. [15/8]", 238225688], - [307, 7, 912, "Metrics/AbcSize: Assignment Branch Condition size for `root_boundary_range` is too high. [<6, 22, 12> 25.77/17]", 2821370782], - [307, 7, 912, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `root_boundary_range` is too high. [11/7]", 2821370782], - [307, 7, 912, "Metrics/MethodLength: Method has too many lines. [21/10]", 2821370782], - [307, 7, 912, "Metrics/PerceivedComplexity: Perceived complexity for `root_boundary_range` is too high. [12/8]", 2821370782], - [350, 7, 401, "Metrics/MethodLength: Method has too many lines. [11/10]", 559624650] - ], - "lib/ast/merge/composite_match_refiner.rb:1718969703": [ - [58, 7, 668, "Metrics/MethodLength: Method has too many lines. [14/10]", 2649148714] - ], - "lib/ast/merge/conflict_resolver_base.rb:765343263": [ - [69, 5, 14959, "Metrics/ClassLength: Class has too many lines. [170/100]", 633092728], - [156, 7, 919, "Metrics/MethodLength: Method has too many lines. [13/10]", 1701319380], - [156, 21, 200, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [9/5]", 3369976202], - [367, 7, 972, "Metrics/MethodLength: Method has too many lines. [22/10]", 2870739148], - [434, 47, 13, "Style/NumericPredicate: Use `recursive.positive?` instead of `recursive > 0`.", 462999281], - [436, 99, 14, "Style/NumericPredicate: Use `recursive.zero?` instead of `recursive == 0`.", 2394069519] - ], - "lib/ast/merge/content_match_refiner.rb:3628272158": [ - [47, 5, 7719, "Metrics/ClassLength: Class has too many lines. [108/100]", 651494487], - [87, 7, 750, "Metrics/MethodLength: Method has too many lines. [17/10]", 3624290009], - [165, 37, 48, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 953994744], - [232, 7, 846, "Metrics/AbcSize: Assignment Branch Condition size for `levenshtein_distance` is too high. [<13, 29, 8> 32.77/17]", 3597737347], - [232, 7, 846, "Metrics/MethodLength: Method has too many lines. [20/10]", 3597737347] - ], - "lib/ast/merge/debug_logger.rb:1783610128": [ - [72, 5, 7614, "Metrics/ModuleLength: Module has too many lines. [118/100]", 736598454], - [85, 121, 7, "Layout/LineLength: Line is too long. [127/120]", 941621], - [206, 7, 584, "Metrics/AbcSize: Assignment Branch Condition size for `time` is too high. [<3, 17, 2> 17.38/17]", 3468868523], - [206, 7, 584, "Metrics/MethodLength: Method has too many lines. [14/10]", 3468868523], - [269, 7, 450, "Metrics/PerceivedComplexity: Perceived complexity for `extract_lines` is too high. [9/8]", 680738666], - [287, 7, 11, "Style/ModuleFunction: Use `module_function` instead of `extend self`.", 1210897631] - ], - "lib/ast/merge/detector/base.rb:343830240": [ - [175, 25, 73, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 2991095115] - ], - "lib/ast/merge/detector/fenced_code_block.rb:3555142063": [ - [36, 7, 6302, "Metrics/ClassLength: Class has too many lines. [116/100]", 852968953], - [71, 9, 2492, "Metrics/AbcSize: Assignment Branch Condition size for `detect_all` is too high. [<31, 28, 12> 43.46/17]", 3575218793], - [71, 9, 2492, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `detect_all` is too high. [11/7]", 3575218793], - [71, 9, 2492, "Metrics/MethodLength: Method has too many lines. [54/10]", 3575218793], - [71, 9, 2492, "Metrics/PerceivedComplexity: Perceived complexity for `detect_all` is too high. [13/8]", 3575218793], - [84, 11, 2060, "Metrics/BlockLength: Block has too many lines. [41/25]", 1744553779] - ], - "lib/ast/merge/detector/mergeable.rb:354817747": [ - [54, 7, 11933, "Metrics/ModuleLength: Module has too many lines. [140/100]", 1453034870], - [162, 9, 601, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `build_region_configs` is too high. [8/7]", 1278024890], - [162, 9, 601, "Metrics/MethodLength: Method has too many lines. [16/10]", 1278024890], - [189, 9, 1054, "Metrics/AbcSize: Assignment Branch Condition size for `extract_regions` is too high. [<11, 16, 3> 19.65/17]", 663241096], - [189, 9, 1054, "Metrics/MethodLength: Method has too many lines. [20/10]", 663241096], - [285, 9, 1005, "Metrics/AbcSize: Assignment Branch Condition size for `merge_and_substitute_regions` is too high. [<16, 19, 4> 25.16/17]", 4123525156], - [285, 9, 1005, "Metrics/MethodLength: Method has too many lines. [16/10]", 4123525156], - [318, 9, 1369, "Metrics/AbcSize: Assignment Branch Condition size for `merge_region` is too high. [<11, 20, 14> 26.78/17]", 746321843], - [318, 9, 1369, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `merge_region` is too high. [15/7]", 746321843], - [318, 9, 1369, "Metrics/MethodLength: Method has too many lines. [16/10]", 746321843], - [318, 9, 1369, "Metrics/PerceivedComplexity: Perceived complexity for `merge_region` is too high. [15/8]", 746321843] - ], - "lib/ast/merge/detector/toml_frontmatter.rb:3255696517": [ - [50, 9, 892, "Metrics/MethodLength: Method has too many lines. [20/10]", 3132005303] - ], - "lib/ast/merge/detector/yaml_frontmatter.rb:2551474823": [ - [49, 9, 958, "Metrics/MethodLength: Method has too many lines. [20/10]", 3132005303] - ], - "lib/ast/merge/diff_mapper_base.rb:3204989377": [ - [22, 5, 7793, "Metrics/ClassLength: Class has too many lines. [141/100]", 2217731166], - [80, 7, 2598, "Metrics/AbcSize: Assignment Branch Condition size for `parse_diff` is too high. [<21, 31, 15> 40.34/17]", 939898835], - [80, 7, 2598, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `parse_diff` is too high. [16/7]", 939898835], - [80, 7, 2598, "Metrics/MethodLength: Method has too many lines. [65/10]", 939898835], - [80, 7, 2598, "Metrics/PerceivedComplexity: Perceived complexity for `parse_diff` is too high. [12/8]", 939898835], - [90, 9, 2162, "Metrics/BlockLength: Block has too many lines. [50/25]", 3403609416], - [169, 7, 394, "Metrics/MethodLength: Method has too many lines. [11/10]", 2028641628] - ], - "lib/ast/merge/emitter_base.rb:4280054392": [ - [26, 5, 14922, "Metrics/ClassLength: Class has too many lines. [232/100]", 2015391034], - [95, 7, 653, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `emit_comment_region` is too high. [9/7]", 24580929], - [95, 7, 653, "Metrics/MethodLength: Method has too many lines. [12/10]", 24580929], - [95, 7, 653, "Metrics/PerceivedComplexity: Perceived complexity for `emit_comment_region` is too high. [9/8]", 24580929], - [120, 7, 1311, "Metrics/AbcSize: Assignment Branch Condition size for `emit_comment_attachment` is too high. [<5, 25, 16> 30.1/17]", 964928813], - [120, 7, 1311, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `emit_comment_attachment` is too high. [17/7]", 964928813], - [120, 7, 1311, "Metrics/MethodLength: Method has too many lines. [17/10]", 964928813], - [120, 7, 1311, "Metrics/PerceivedComplexity: Perceived complexity for `emit_comment_attachment` is too high. [17/8]", 964928813], - [120, 34, 127, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 628879795], - [152, 7, 984, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `emit_layout_gap` is too high. [8/7]", 1954418889], - [152, 7, 984, "Metrics/MethodLength: Method has too many lines. [13/10]", 1954418889], - [152, 7, 984, "Metrics/PerceivedComplexity: Perceived complexity for `emit_layout_gap` is too high. [9/8]", 1954418889], - [152, 26, 136, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 3839882587], - [183, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5861198], - [184, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2087656651], - [186, 7, 1307, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `emit_layout_attachment` is too high. [9/7]", 708408665], - [186, 7, 1307, "Metrics/MethodLength: Method has too many lines. [26/10]", 708408665], - [186, 7, 1307, "Metrics/PerceivedComplexity: Perceived complexity for `emit_layout_attachment` is too high. [9/8]", 708408665], - [186, 33, 218, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [8/5]", 1552587384], - [187, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 1763090185], - [189, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1371312610], - [271, 31, 17, "Style/NumericPredicate: Use `@indent_level.positive?` instead of `@indent_level > 0`.", 1892475678], - [317, 56, 12, "Lint/UnusedMethodArgument: Unused method argument - `current_line`. You can also write as `inline_comment_region_target_column(*)` if you want the method to accept any arguments but don't care about them.", 2091263933], - [321, 42, 6, "Lint/UnusedMethodArgument: Unused method argument - `region`.", 2124512157], - [321, 51, 13, "Lint/UnusedMethodArgument: Unused method argument - `target_column`.", 3246375805], - [336, 7, 1141, "Metrics/AbcSize: Assignment Branch Condition size for `inline_comment_node_text` is too high. [<6, 29, 8> 30.68/17]", 2583471562], - [336, 7, 1141, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `inline_comment_node_text` is too high. [9/7]", 2583471562], - [336, 7, 1141, "Metrics/MethodLength: Method has too many lines. [22/10]", 2583471562], - [336, 7, 1141, "Metrics/PerceivedComplexity: Perceived complexity for `inline_comment_node_text` is too high. [9/8]", 2583471562], - [354, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5861626], - [365, 7, 510, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `emit_region_gap_lines` is too high. [8/7]", 1999747697], - [365, 7, 510, "Metrics/PerceivedComplexity: Perceived complexity for `emit_region_gap_lines` is too high. [9/8]", 1999747697] - ], - "lib/ast/merge/emitter_line_metadata_support.rb:3153033769": [ - [5, 5, 33, "Style/Documentation: Missing top-level documentation comment for `module Ast::Merge::EmitterLineMetadataSupport`.", 2926748997], - [23, 7, 541, "Metrics/MethodLength: Method has too many lines. [12/10]", 2407359355] - ], - "lib/ast/merge/file_aligner_base.rb:2160333224": [ - [13, 5, 8206, "Metrics/ClassLength: Class has too many lines. [203/100]", 2982381587], - [27, 7, 2329, "Metrics/AbcSize: Assignment Branch Condition size for `align` is too high. [<19, 39, 14> 45.59/17]", 1243937217], - [27, 7, 2329, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `align` is too high. [14/7]", 1243937217], - [27, 7, 2329, "Metrics/MethodLength: Method has too many lines. [56/10]", 1243937217], - [27, 7, 2329, "Metrics/PerceivedComplexity: Perceived complexity for `align` is too high. [14/8]", 1243937217], - [167, 7, 655, "Metrics/MethodLength: Method has too many lines. [14/10]", 2468821688], - [199, 7, 455, "Metrics/MethodLength: Method has too many lines. [13/10]", 2361153066], - [218, 7, 1557, "Metrics/AbcSize: Assignment Branch Condition size for `apply_match_refiner!` is too high. [<10, 28, 12> 32.06/17]", 2386945712], - [218, 7, 1557, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `apply_match_refiner!` is too high. [13/7]", 2386945712], - [218, 7, 1557, "Metrics/MethodLength: Method has too many lines. [31/10]", 2386945712], - [218, 7, 1557, "Metrics/PerceivedComplexity: Perceived complexity for `apply_match_refiner!` is too high. [13/8]", 2386945712] - ], - "lib/ast/merge/file_analyzable.rb:607555963": [ - [36, 5, 31229, "Metrics/ModuleLength: Module has too many lines. [316/100]", 1247752256], - [99, 19, 9, "Style/NumericPredicate: Use `index.negative?` instead of `index < 0`.", 4215255415], - [148, 7, 793, "Metrics/MethodLength: Method has too many lines. [22/10]", 1467470910], - [202, 7, 771, "Metrics/MethodLength: Method has too many lines. [16/10]", 1412317163], - [344, 7, 844, "Metrics/MethodLength: Method has too many lines. [12/10]", 2335919661], - [369, 7, 730, "Metrics/MethodLength: Method has too many lines. [11/10]", 1047958652], - [431, 7, 863, "Metrics/AbcSize: Assignment Branch Condition size for `normalize_layout_owned_comment_attachment` is too high. [<0, 20, 4> 20.4/17]", 3284843691], - [431, 7, 863, "Metrics/MethodLength: Method has too many lines. [17/10]", 3284843691], - [481, 7, 683, "Metrics/MethodLength: Method has too many lines. [15/10]", 241044926], - [520, 14, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], - [614, 7, 6095, "Metrics/AbcSize: Assignment Branch Condition size for `generate_signature` is too high. [<4, 21, 13> 25.02/17]", 2828809875], - [614, 7, 6095, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `generate_signature` is too high. [11/7]", 2828809875], - [614, 7, 6095, "Metrics/MethodLength: Method has too many lines. [30/10]", 2828809875], - [614, 7, 6095, "Metrics/PerceivedComplexity: Perceived complexity for `generate_signature` is too high. [14/8]", 2828809875], - [676, 24, 390, "Metrics/BlockNesting: Avoid more than 3 levels of block nesting.", 3279112483] - ], - "lib/ast/merge/freeze_node_base.rb:2110274026": [ - [59, 5, 14572, "Metrics/ClassLength: Class has too many lines. [171/100]", 3038607603], - [108, 25, 545, "Style/MutableConstant: Freeze mutable objects assigned to constants.", 2366014160], - [186, 9, 1100, "Metrics/MethodLength: Method has too many lines. [15/10]", 2506841532], - [288, 7, 758, "Metrics/MethodLength: Method has too many lines. [11/10]", 136868205], - [288, 21, 276, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [11/5]", 1720059801], - [335, 7, 660, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `reason` is too high. [8/7]", 3127566048], - [418, 20, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765] - ], - "lib/ast/merge/healer.rb:3642412735": [ - [18, 7, 588, "Metrics/MethodLength: Method has too many lines. [15/10]", 3172269921], - [18, 17, 84, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 1781025196], - [41, 7, 687, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `filter_items` is too high. [8/7]", 1200842691], - [41, 7, 687, "Metrics/MethodLength: Method has too many lines. [17/10]", 1200842691], - [41, 7, 687, "Metrics/PerceivedComplexity: Perceived complexity for `filter_items` is too high. [9/8]", 1200842691], - [41, 23, 130, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [8/5]", 33939503] - ], - "lib/ast/merge/jaccard_similarity.rb:678558736": [ - [87, 19, 1, "Naming/MethodParameterName: Method parameter must be at least 3 characters long.", 177604], - [87, 22, 1, "Naming/MethodParameterName: Method parameter must be at least 3 characters long.", 177607] - ], - "lib/ast/merge/key_path_partial_template_merger_base.rb:1818613864": [ - [22, 5, 6114, "Metrics/ClassLength: Class has too many lines. [155/100]", 1269962119], - [43, 21, 214, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [8/5]", 3637591635], - [68, 7, 489, "Metrics/MethodLength: Method has too many lines. [12/10]", 3170411580], - [118, 7, 640, "Metrics/AbcSize: Assignment Branch Condition size for `find_key_path` is too high. [<8, 14, 10> 18.97/17]", 2613403604], - [118, 7, 640, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `find_key_path` is too high. [8/7]", 2613403604], - [118, 7, 640, "Metrics/MethodLength: Method has too many lines. [16/10]", 2613403604], - [118, 7, 640, "Metrics/PerceivedComplexity: Perceived complexity for `find_key_path` is too high. [9/8]", 2613403604], - [140, 7, 536, "Metrics/MethodLength: Method has too many lines. [17/10]", 3598062652], - [168, 7, 804, "Metrics/MethodLength: Method has too many lines. [19/10]", 2773364183] - ], - "lib/ast/merge/layout.rb:3670500101": [ - [23, 36, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765] - ], - "lib/ast/merge/layout/augmenter.rb:3229088287": [ - [8, 7, 5440, "Metrics/ClassLength: Class has too many lines. [128/100]", 2306720287], - [23, 23, 125, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [7/5]", 3395039982], - [55, 9, 1795, "Metrics/AbcSize: Assignment Branch Condition size for `build!` is too high. [<20, 32, 17> 41.39/17]", 3542913254], - [55, 9, 1795, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `build!` is too high. [15/7]", 3542913254], - [55, 9, 1795, "Metrics/MethodLength: Method has too many lines. [43/10]", 3542913254], - [55, 9, 1795, "Metrics/PerceivedComplexity: Perceived complexity for `build!` is too high. [15/8]", 3542913254], - [60, 11, 1227, "Metrics/BlockLength: Block has too many lines. [29/25]", 55360131], - [107, 9, 504, "Metrics/MethodLength: Method has too many lines. [16/10]", 1953725517] - ], - "lib/ast/merge/layout/gap.rb:1678106201": [ - [11, 7, 7558, "Metrics/ClassLength: Class has too many lines. [151/100]", 2254377349], - [23, 9, 655, "Metrics/MethodLength: Method has too many lines. [11/10]", 3584854768], - [23, 23, 146, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [9/5]", 361396001], - [157, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5859545], - [162, 9, 303, "Metrics/MethodLength: Method has too many lines. [12/10]", 2236444774], - [203, 9, 688, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `validate_adjacency!` is too high. [10/7]", 1112786311], - [203, 9, 688, "Metrics/MethodLength: Method has too many lines. [13/10]", 1112786311] - ], - "lib/ast/merge/line_range_support.rb:773479830": [ - [13, 7, 430, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `object_start_line` is too high. [8/7]", 2485070052], - [13, 7, 430, "Metrics/PerceivedComplexity: Perceived complexity for `object_start_line` is too high. [9/8]", 2485070052], - [25, 7, 414, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `object_end_line` is too high. [8/7]", 3545256164], - [25, 7, 414, "Metrics/PerceivedComplexity: Perceived complexity for `object_end_line` is too high. [9/8]", 3545256164] - ], - "lib/ast/merge/match_refiner_base.rb:1760054866": [ - [248, 7, 503, "Metrics/MethodLength: Method has too many lines. [11/10]", 2844230268], - [275, 7, 1056, "Metrics/AbcSize: Assignment Branch Condition size for `greedy_match` is too high. [<9, 24, 8> 26.85/17]", 2497617815], - [275, 7, 1056, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `greedy_match` is too high. [8/7]", 2497617815], - [275, 7, 1056, "Metrics/MethodLength: Method has too many lines. [24/10]", 2497617815] - ], - "lib/ast/merge/merge_result_base.rb:1342312150": [ - [17, 5, 19111, "Metrics/ClassLength: Class has too many lines. [341/100]", 1211564896], - [88, 21, 187, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [7/5]", 1067369198], - [202, 7, 843, "Metrics/AbcSize: Assignment Branch Condition size for `normalize_blank_line_runs!` is too high. [<12, 12, 10> 19.7/17]", 2347011594], - [202, 7, 843, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `normalize_blank_line_runs!` is too high. [9/7]", 2347011594], - [202, 7, 843, "Metrics/MethodLength: Method has too many lines. [22/10]", 2347011594], - [202, 7, 843, "Metrics/PerceivedComplexity: Perceived complexity for `normalize_blank_line_runs!` is too high. [10/8]", 2347011594], - [242, 7, 1004, "Metrics/MethodLength: Method has too many lines. [21/10]", 59539336], - [242, 35, 211, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [8/5]", 709487711], - [281, 7, 602, "Metrics/MethodLength: Method has too many lines. [13/10]", 320027623], - [356, 7, 927, "Metrics/AbcSize: Assignment Branch Condition size for `validate_review_state_compatibility!` is too high. [<8, 15, 4> 17.46/17]", 1596840080], - [356, 7, 927, "Metrics/MethodLength: Method has too many lines. [16/10]", 1596840080], - [418, 7, 936, "Metrics/AbcSize: Assignment Branch Condition size for `review_state_metadata` is too high. [<7, 18, 4> 19.72/17]", 4128292066], - [418, 7, 936, "Metrics/MethodLength: Method has too many lines. [14/10]", 4128292066], - [428, 121, 11, "Layout/LineLength: Line is too long. [131/120]", 20421901], - [453, 7, 1194, "Metrics/MethodLength: Method has too many lines. [21/10]", 4289697646], - [463, 121, 56, "Layout/LineLength: Line is too long. [176/120]", 3342583337] - ], - "lib/ast/merge/merger_config.rb:3582657829": [ - [46, 5, 10581, "Metrics/ClassLength: Class has too many lines. [148/100]", 1598770872], - [96, 21, 234, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [7/5]", 720509970] - ], - "lib/ast/merge/navigable/injection_point_finder.rb:4117743218": [ - [45, 9, 1707, "Metrics/AbcSize: Assignment Branch Condition size for `find` is too high. [<9, 18, 17> 26.34/17]", 1445381162], - [45, 9, 1707, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `find` is too high. [15/7]", 1445381162], - [45, 9, 1707, "Metrics/MethodLength: Method has too many lines. [28/10]", 1445381162], - [45, 9, 1707, "Metrics/PerceivedComplexity: Perceived complexity for `find` is too high. [16/8]", 1445381162], - [45, 17, 156, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [7/5]", 3876813166] - ], - "lib/ast/merge/navigable/statement.rb:3050515622": [ - [42, 7, 11078, "Metrics/ClassLength: Class has too many lines. [179/100]", 2550894515], - [96, 11, 550, "Metrics/AbcSize: Assignment Branch Condition size for `find_matching` is too high. [<7, 16, 12> 21.19/17]", 3492534565], - [96, 11, 550, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `find_matching` is too high. [12/7]", 3492534565], - [96, 11, 550, "Metrics/PerceivedComplexity: Perceived complexity for `find_matching` is too high. [12/8]", 3492534565], - [222, 13, 20, "Naming/PredicatePrefix: Rename `has_tree_navigation?` to `tree_navigation?`.", 733442156] - ], - "lib/ast/merge/node_typing.rb:4008165135": [ - [175, 9, 694, "Metrics/MethodLength: Method has too many lines. [12/10]", 777909930], - [213, 9, 891, "Metrics/AbcSize: Assignment Branch Condition size for `find_typing_callable` is too high. [<3, 23, 13> 26.59/17]", 3835052858], - [213, 9, 891, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `find_typing_callable` is too high. [14/7]", 3835052858], - [213, 9, 891, "Metrics/PerceivedComplexity: Perceived complexity for `find_typing_callable` is too high. [14/8]", 3835052858] - ], - "lib/ast/merge/node_wrapper_base.rb:3796877358": [ - [62, 5, 10228, "Metrics/ClassLength: Class has too many lines. [135/100]", 3832956007], - [92, 21, 81, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 4261369704] - ], - "lib/ast/merge/owner_selection.rb:2568070127": [ - [9, 7, 757, "Metrics/MethodLength: Method has too many lines. [13/10]", 2069564552] - ], - "lib/ast/merge/partial_template_merger_base.rb:2252899061": [ - [27, 5, 16780, "Metrics/ClassLength: Class has too many lines. [266/100]", 2205844189], - [48, 23, 81, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 2112244807], - [106, 7, 757, "Metrics/MethodLength: Method has too many lines. [11/10]", 571708764], - [106, 21, 293, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [11/5]", 871709580], - [135, 7, 788, "Metrics/AbcSize: Assignment Branch Condition size for `merge` is too high. [<4, 19, 5> 20.05/17]", 467674580], - [135, 7, 788, "Metrics/MethodLength: Method has too many lines. [13/10]", 467674580], - [213, 7, 533, "Metrics/AbcSize: Assignment Branch Condition size for `normalize_matcher` is too high. [<7, 20, 6> 22.02/17]", 1798972396], - [238, 7, 922, "Metrics/MethodLength: Method has too many lines. [25/10]", 1846154069], - [242, 25, 37, "Style/StringConcatenation: Prefer string interpolation to string concatenation.", 939456830], - [251, 25, 31, "Style/StringConcatenation: Prefer string interpolation to string concatenation.", 1024894473], - [268, 7, 1905, "Metrics/AbcSize: Assignment Branch Condition size for `perform_section_merge` is too high. [<13, 15, 2> 19.95/17]", 2711014340], - [268, 7, 1905, "Metrics/MethodLength: Method has too many lines. [34/10]", 2711014340], - [316, 50, 15, "Lint/UnusedMethodArgument: Unused method argument - `section_context`.", 2872123372], - [334, 7, 690, "Metrics/MethodLength: Method has too many lines. [14/10]", 1807124523], - [367, 7, 1122, "Metrics/AbcSize: Assignment Branch Condition size for `build_merged_content` is too high. [<1, 29, 14> 32.22/17]", 3938410418], - [367, 7, 1122, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `build_merged_content` is too high. [15/7]", 3938410418], - [367, 7, 1122, "Metrics/MethodLength: Method has too many lines. [18/10]", 3938410418], - [367, 7, 1122, "Metrics/PerceivedComplexity: Perceived complexity for `build_merged_content` is too high. [15/8]", 3938410418], - [397, 7, 596, "Metrics/MethodLength: Method has too many lines. [12/10]", 2602121883], - [397, 32, 144, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [7/5]", 1463491208], - [414, 7, 1589, "Metrics/AbcSize: Assignment Branch Condition size for `source_splice_plan_for` is too high. [<6, 18, 9> 21/17]", 2889667289], - [414, 7, 1589, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `source_splice_plan_for` is too high. [9/7]", 2889667289], - [414, 7, 1589, "Metrics/MethodLength: Method has too many lines. [30/10]", 2889667289], - [414, 7, 1589, "Metrics/PerceivedComplexity: Perceived complexity for `source_splice_plan_for` is too high. [9/8]", 2889667289] - ], - "lib/ast/merge/recipe/config.rb:3990762705": [ - [54, 7, 14970, "Metrics/ClassLength: Class has too many lines. [296/100]", 2492031021], - [142, 9, 673, "Metrics/MethodLength: Method has too many lines. [12/10]", 3011978845], - [170, 9, 484, "Metrics/MethodLength: Method has too many lines. [15/10]", 183356432], - [246, 9, 710, "Metrics/AbcSize: Assignment Branch Condition size for `parse_injection` is too high. [<8, 13, 8> 17.23/17]", 641239814], - [246, 9, 710, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `parse_injection` is too high. [9/7]", 641239814], - [246, 9, 710, "Metrics/MethodLength: Method has too many lines. [16/10]", 641239814], - [246, 9, 710, "Metrics/PerceivedComplexity: Perceived complexity for `parse_injection` is too high. [9/8]", 641239814], - [278, 9, 871, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `parse_step` is too high. [8/7]", 3989307721], - [278, 9, 871, "Metrics/MethodLength: Method has too many lines. [20/10]", 3989307721], - [338, 9, 1758, "Metrics/AbcSize: Assignment Branch Condition size for `parse_step_merge_overrides` is too high. [<11, 43, 25> 50.94/17]", 806370438], - [338, 9, 1758, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `parse_step_merge_overrides` is too high. [22/7]", 806370438], - [338, 9, 1758, "Metrics/MethodLength: Method has too many lines. [30/10]", 806370438], - [338, 9, 1758, "Metrics/PerceivedComplexity: Perceived complexity for `parse_step_merge_overrides` is too high. [22/8]", 806370438], - [373, 9, 566, "Metrics/MethodLength: Method has too many lines. [14/10]", 3671206955], - [391, 9, 547, "Metrics/MethodLength: Method has too many lines. [16/10]", 3273587697], - [459, 9, 799, "Metrics/AbcSize: Assignment Branch Condition size for `validate_injection!` is too high. [<2, 15, 12> 19.31/17]", 1665903587], - [459, 9, 799, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `validate_injection!` is too high. [13/7]", 1665903587], - [459, 9, 799, "Metrics/MethodLength: Method has too many lines. [11/10]", 1665903587], - [459, 9, 799, "Metrics/PerceivedComplexity: Perceived complexity for `validate_injection!` is too high. [13/8]", 1665903587] - ], - "lib/ast/merge/recipe/preset.rb:2311326866": [ - [195, 9, 662, "Metrics/MethodLength: Method has too many lines. [12/10]", 1640897447] - ], - "lib/ast/merge/recipe/runner.rb:2243867806": [ - [27, 7, 28612, "Metrics/ClassLength: Class has too many lines. [547/100]", 79000832], - [73, 121, 28, "Layout/LineLength: Line is too long. [148/120]", 1411864995], - [77, 23, 136, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [8/5]", 1636278032], - [92, 9, 849, "Metrics/MethodLength: Method has too many lines. [14/10]", 3083064345], - [128, 24, 129, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 2642826282], - [210, 9, 788, "Metrics/MethodLength: Method has too many lines. [23/10]", 743008161], - [241, 9, 3397, "Metrics/AbcSize: Assignment Branch Condition size for `create_partial_template_merger` is too high. [<3, 52, 16> 54.49/17]", 2086180075], - [241, 9, 3397, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `create_partial_template_merger` is too high. [14/7]", 2086180075], - [241, 9, 3397, "Metrics/MethodLength: Method has too many lines. [63/10]", 2086180075], - [241, 9, 3397, "Metrics/PerceivedComplexity: Perceived complexity for `create_partial_template_merger` is too high. [13/8]", 2086180075], - [250, 121, 11, "Layout/LineLength: Line is too long. [131/120]", 2857356312], - [274, 121, 1, "Layout/LineLength: Line is too long. [121/120]", 177538], - [312, 9, 2210, "Metrics/AbcSize: Assignment Branch Condition size for `create_smart_merger` is too high. [<1, 39, 7> 39.64/17]", 1694660188], - [312, 9, 2210, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `create_smart_merger` is too high. [8/7]", 1694660188], - [312, 9, 2210, "Metrics/MethodLength: Method has too many lines. [45/10]", 1694660188], - [357, 121, 5, "Layout/LineLength: Line is too long. [125/120]", 195423462], - [370, 9, 1087, "Metrics/MethodLength: Method has too many lines. [24/10]", 3850049530], - [370, 31, 124, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 3466458723], - [401, 9, 1008, "Metrics/MethodLength: Method has too many lines. [19/10]", 2010895303], - [401, 25, 143, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [8/5]", 2360959504], - [424, 9, 1263, "Metrics/AbcSize: Assignment Branch Condition size for `execute_partial_merge_step` is too high. [<3, 22, 1> 22.23/17]", 2850918453], - [424, 9, 1263, "Metrics/MethodLength: Method has too many lines. [25/10]", 2850918453], - [453, 9, 835, "Metrics/MethodLength: Method has too many lines. [14/10]", 1478843287], - [471, 9, 808, "Metrics/MethodLength: Method has too many lines. [15/10]", 1127254660], - [471, 37, 155, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [8/5]", 838578768], - [491, 9, 1126, "Metrics/AbcSize: Assignment Branch Condition size for `normalize_smart_merge_result` is too high. [<8, 17, 12> 22.29/17]", 1786697339], - [491, 9, 1126, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `normalize_smart_merge_result` is too high. [9/7]", 1786697339], - [491, 9, 1126, "Metrics/MethodLength: Method has too many lines. [23/10]", 1786697339], - [491, 9, 1126, "Metrics/PerceivedComplexity: Perceived complexity for `normalize_smart_merge_result` is too high. [11/8]", 1786697339], - [518, 9, 2523, "Metrics/AbcSize: Assignment Branch Condition size for `normalize_script_step_result` is too high. [<5, 40, 32> 51.47/17]", 2162420067], - [518, 9, 2523, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `normalize_script_step_result` is too high. [26/7]", 2162420067], - [518, 9, 2523, "Metrics/MethodLength: Method has too many lines. [48/10]", 2162420067], - [518, 9, 2523, "Metrics/PerceivedComplexity: Perceived complexity for `normalize_script_step_result` is too high. [29/8]", 2162420067], - [547, 121, 18, "Layout/LineLength: Line is too long. [138/120]", 93872446], - [556, 121, 56, "Layout/LineLength: Line is too long. [176/120]", 1527250939], - [586, 11, 155, "Style/HashTransformKeys: Prefer `transform_keys` over `each_with_object`.", 837503672], - [591, 9, 698, "Metrics/MethodLength: Method has too many lines. [11/10]", 1116310304], - [635, 9, 2582, "Metrics/AbcSize: Assignment Branch Condition size for `create_result_from_steps` is too high. [<8, 30, 31> 43.87/17]", 2040042265], - [635, 9, 2582, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `create_result_from_steps` is too high. [23/7]", 2040042265], - [635, 9, 2582, "Metrics/MethodLength: Method has too many lines. [60/10]", 2040042265], - [635, 9, 2582, "Metrics/PerceivedComplexity: Perceived complexity for `create_result_from_steps` is too high. [27/8]", 2040042265], - [635, 37, 133, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 789257106], - [649, 42, 40, "Style/SymbolProc: Pass `&:has_anchor` as an argument to `any?` instead of a block.", 4233626321] - ], - "lib/ast/merge/recipe/script_loader.rb:1397873218": [ - [145, 9, 1126, "Metrics/AbcSize: Assignment Branch Condition size for `load_script_file` is too high. [<6, 19, 4> 20.32/17]", 3417625171], - [145, 9, 1126, "Metrics/MethodLength: Method has too many lines. [17/10]", 3417625171] - ], - "lib/ast/merge/rspec/comment_behavior_matrix_adapters.rb:3429217018": [ - [9, 46, 341, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [9/5]", 532439002], - [31, 9, 901, "Metrics/MethodLength: Method has too many lines. [11/10]", 584608092], - [31, 59, 308, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [8/5]", 883491898], - [54, 9, 1269, "Metrics/MethodLength: Method has too many lines. [20/10]", 1021031182], - [65, 51, 6, "Lint/UnusedBlockArgument: Unused block argument - `inline`. If it's necessary, use `_` or `_inline` as an argument name to indicate that it won't be used.", 1605470060], - [69, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 4226982364], - [70, 121, 11, "Layout/LineLength: Line is too long. [131/120]", 1440420861] - ], - "lib/ast/merge/rspec/conformance_fixtures.rb:1295759615": [ - [6, 7, 26, "Style/Documentation: Missing top-level documentation comment for `module Ast::Merge::RSpec::ConformanceFixtures`.", 90066768], - [9, 9, 1432, "Metrics/AbcSize: Assignment Branch Condition size for `normalize_conformance_fixture_support` is too high. [<10, 30, 33> 45.71/17]", 518714108], - [9, 9, 1432, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `normalize_conformance_fixture_support` is too high. [33/7]", 518714108], - [9, 9, 1432, "Metrics/MethodLength: Method has too many lines. [25/10]", 518714108], - [9, 9, 1432, "Metrics/PerceivedComplexity: Perceived complexity for `normalize_conformance_fixture_support` is too high. [31/8]", 518714108] - ], - "lib/ast/merge/rspec/dependency_tags_config.rb:3604516304": [ - [30, 1, 2102, "Metrics/BlockLength: Block has too many lines. [26/25]", 113766065] - ], - "lib/ast/merge/rspec/merge_gem_registry.rb:3009576030": [ - [58, 7, 12129, "Metrics/ModuleLength: Module has too many lines. [158/100]", 335549747], - [90, 9, 780, "Metrics/MethodLength: Method has too many lines. [14/10]", 978965737], - [90, 21, 99, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 3580433546], - [118, 9, 650, "Metrics/MethodLength: Method has too many lines. [12/10]", 3143160805], - [118, 31, 130, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 2575863904], - [143, 9, 823, "Metrics/MethodLength: Method has too many lines. [17/10]", 4033116153], - [200, 9, 765, "Metrics/AbcSize: Assignment Branch Condition size for `register_known_gems` is too high. [<3, 17, 3> 17.52/17]", 1367620151], - [200, 9, 765, "Metrics/MethodLength: Method has too many lines. [17/10]", 1367620151] - ], - "lib/ast/merge/rspec/shared_examples.rb:151517887": [ - [27, 121, 3, "Layout/LineLength: Line is too long. [123/120]", 193426019], - [31, 121, 7, "Layout/LineLength: Line is too long. [127/120]", 330577472] - ], - "lib/ast/merge/rspec/shared_examples/comment_behavior_matrix.rb:3695671858": [ - [36, 1, 27847, "Metrics/BlockLength: Block has too many lines. [540/25]", 3796645407], - [38, 55, 15, "Style/SymbolProc: Pass `&:value` as an argument to `lambda` instead of a block.", 1808354951], - [42, 64, 23, "Style/SymbolProc: Pass `&:statements` as an argument to `lambda` instead of a block.", 277221641], - [69, 3, 4455, "Metrics/BlockLength: Block has too many lines. [82/25]", 3672334777], - [72, 5, 1763, "Metrics/BlockLength: Block has too many lines. [34/25]", 164750821], - [165, 3, 22093, "Metrics/BlockLength: Block has too many lines. [429/25]", 229312375], - [292, 5, 1918, "Metrics/BlockLength: Block has too many lines. [29/25]", 1312741055], - [323, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1902517440], - [325, 121, 5, "Layout/LineLength: Line is too long. [125/120]", 173482512], - [328, 121, 5, "Layout/LineLength: Line is too long. [125/120]", 167607404], - [476, 5, 1605, "Metrics/BlockLength: Block has too many lines. [35/25]", 1943633697], - [677, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1902517440] - ], - "lib/ast/merge/rspec/shared_examples/conflict_resolver_base.rb:624045197": [ - [30, 1, 7893, "Metrics/BlockLength: Block has too many lines. [197/25]", 3450672926], - [37, 3, 1372, "Metrics/BlockLength: Block has too many lines. [33/25]", 3389152504], - [83, 3, 1206, "Metrics/BlockLength: Block has too many lines. [35/25]", 1580202348], - [128, 3, 1177, "Metrics/BlockLength: Block has too many lines. [33/25]", 2178974049], - [215, 3, 2443, "Metrics/BlockLength: Block has too many lines. [51/25]", 2538475273], - [219, 5, 1909, "Metrics/BlockLength: Block has too many lines. [35/25]", 880175101], - [279, 1, 2518, "Metrics/BlockLength: Block has too many lines. [74/25]", 958151448], - [286, 3, 2235, "Metrics/BlockLength: Block has too many lines. [70/25]", 2123260684], - [391, 1, 1317, "Metrics/BlockLength: Block has too many lines. [37/25]", 2321517041], - [439, 1, 1639, "Metrics/BlockLength: Block has too many lines. [37/25]", 276150366] - ], - "lib/ast/merge/rspec/shared_examples/debug_logger.rb:2747003588": [ - [23, 1, 4741, "Metrics/BlockLength: Block has too many lines. [121/25]", 3341338388], - [47, 3, 976, "Metrics/BlockLength: Block has too many lines. [27/25]", 2640321404], - [85, 3, 1452, "Metrics/BlockLength: Block has too many lines. [34/25]", 554663062] - ], - "lib/ast/merge/rspec/shared_examples/feature_profile.rb:4172143324": [ - [30, 1, 4249, "Metrics/BlockLength: Block has too many lines. [53/25]", 3787230403] - ], - "lib/ast/merge/rspec/shared_examples/file_analyzable.rb:2391547213": [ - [44, 1, 6468, "Metrics/BlockLength: Block has too many lines. [145/25]", 3744642916] - ], - "lib/ast/merge/rspec/shared_examples/freeze_node_base.rb:1711126715": [ - [23, 1, 5952, "Metrics/BlockLength: Block has too many lines. [157/25]", 3152271039], - [29, 3, 2836, "Metrics/BlockLength: Block has too many lines. [69/25]", 2082270913], - [115, 3, 1552, "Metrics/BlockLength: Block has too many lines. [46/25]", 4180117745] - ], - "lib/ast/merge/rspec/shared_examples/layout_attachment.rb:4130619694": [ - [30, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 1263574869], - [31, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 4282300883] - ], - "lib/ast/merge/rspec/shared_examples/layout_augmenter.rb:1928277603": [ - [18, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1311107624], - [19, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1311107624] - ], - "lib/ast/merge/rspec/shared_examples/merge_result_base.rb:2962043558": [ - [18, 1, 2330, "Metrics/BlockLength: Block has too many lines. [67/25]", 3496673178], - [53, 3, 1271, "Metrics/BlockLength: Block has too many lines. [42/25]", 2278976858] - ], - "lib/ast/merge/rspec/shared_examples/merger_config.rb:2413785902": [ - [18, 1, 8240, "Metrics/BlockLength: Block has too many lines. [193/25]", 3665443345], - [57, 3, 1628, "Metrics/BlockLength: Block has too many lines. [32/25]", 7828299], - [98, 3, 1266, "Metrics/BlockLength: Block has too many lines. [28/25]", 317929439], - [159, 3, 1740, "Metrics/BlockLength: Block has too many lines. [42/25]", 1736487820], - [217, 3, 1373, "Metrics/BlockLength: Block has too many lines. [30/25]", 442933563] - ], - "lib/ast/merge/rspec/shared_examples/recipe_preset_contract.rb:1495545061": [ - [7, 1, 2558, "Metrics/BlockLength: Block has too many lines. [51/25]", 4091815632] - ], - "lib/ast/merge/rspec/shared_examples/removal_mode_compliance.rb:3645548199": [ - [24, 1, 1860, "Metrics/BlockLength: Block has too many lines. [33/25]", 1115825136] - ], - "lib/ast/merge/rspec/shared_examples/reproducible_merge.rb:2276592459": [ - [51, 1, 2030, "Metrics/BlockLength: Block has too many lines. [52/25]", 563553381] - ], - "lib/ast/merge/rspec/shared_examples/reproducible_partial_merge.rb:524436129": [ - [3, 1, 2321, "Metrics/BlockLength: Block has too many lines. [44/25]", 3206099540] - ], - "lib/ast/merge/rspec/shared_examples/retained_blank_gap_compliance.rb:2798862618": [ - [3, 1, 1409, "Metrics/BlockLength: Block has too many lines. [34/25]", 3708955218] - ], - "lib/ast/merge/rspec/shared_examples/runtime_debug_contract.rb:4244040583": [ - [8, 1, 2808, "Metrics/BlockLength: Block has too many lines. [48/25]", 3274492878] - ], - "lib/ast/merge/rspec/shared_examples/unresolved_helper_contract.rb:2916431464": [ - [9, 1, 5998, "Metrics/BlockLength: Block has too many lines. [126/25]", 4174562424], - [94, 3, 1515, "Metrics/BlockLength: Block has too many lines. [32/25]", 1928238376] - ], - "lib/ast/merge/rspec/shared_examples/unresolved_review_state_transport_contract.rb:3368966854": [ - [14, 1, 3386, "Metrics/BlockLength: Block has too many lines. [68/25]", 2910343214], - [65, 3, 317, "Metrics/MethodLength: Method has too many lines. [12/10]", 2653897690] - ], - "lib/ast/merge/rspec/shared_examples/unresolved_runtime_contract.rb:1424234700": [ - [10, 1, 2652, "Metrics/BlockLength: Block has too many lines. [42/25]", 960283638], - [31, 121, 10, "Layout/LineLength: Line is too long. [130/120]", 2892620242], - [46, 121, 3, "Layout/LineLength: Line is too long. [123/120]", 193437756] - ], - "lib/ast/merge/rspec/shared_examples/unresolved_runtime_debug_contract.rb:2897026147": [ - [25, 121, 18, "Layout/LineLength: Line is too long. [138/120]", 2418171787], - [26, 121, 5, "Layout/LineLength: Line is too long. [125/120]", 235635831] - ], - "lib/ast/merge/ruleset/config.rb:4242726919": [ - [7, 7, 3664, "Metrics/ClassLength: Class has too many lines. [101/100]", 1968929597], - [36, 9, 933, "Metrics/MethodLength: Method has too many lines. [15/10]", 3334511209], - [36, 23, 319, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [15/5]", 1652945408], - [65, 9, 515, "Metrics/AbcSize: Assignment Branch Condition size for `to_h` is too high. [<0, 18, 3> 18.25/17]", 2614325513], - [65, 9, 515, "Metrics/MethodLength: Method has too many lines. [14/10]", 2614325513] - ], - "lib/ast/merge/ruleset/feature_profile.rb:3980745364": [ - [12, 7, 6054, "Metrics/ClassLength: Class has too many lines. [155/100]", 2818730231], - [29, 9, 1351, "Metrics/AbcSize: Assignment Branch Condition size for `initialize` is too high. [<17, 18, 7> 25.73/17]", 2248702332], - [29, 9, 1351, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `initialize` is too high. [8/7]", 2248702332], - [29, 9, 1351, "Metrics/MethodLength: Method has too many lines. [17/10]", 2248702332], - [29, 23, 422, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [14/5]", 1415781648], - [138, 9, 1509, "Metrics/AbcSize: Assignment Branch Condition size for `to_h` is too high. [<0, 36, 6> 36.5/17]", 3793816437], - [138, 9, 1509, "Metrics/MethodLength: Method has too many lines. [31/10]", 3793816437] - ], - "lib/ast/merge/ruleset/parser.rb:698282871": [ - [7, 7, 9396, "Metrics/ClassLength: Class has too many lines. [199/100]", 1305123525], - [43, 9, 473, "Metrics/AbcSize: Assignment Branch Condition size for `parse` is too high. [<0, 17, 2> 17.12/17]", 1400394586], - [43, 9, 473, "Metrics/MethodLength: Method has too many lines. [12/10]", 1400394586], - [71, 9, 1053, "Metrics/MethodLength: Method has too many lines. [24/10]", 1569959910], - [101, 9, 1123, "Metrics/AbcSize: Assignment Branch Condition size for `parse_single_value_directive!` is too high. [<7, 13, 10> 17.83/17]", 706129883], - [101, 9, 1123, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `parse_single_value_directive!` is too high. [8/7]", 706129883], - [101, 9, 1123, "Metrics/MethodLength: Method has too many lines. [24/10]", 706129883], - [170, 9, 605, "Metrics/MethodLength: Method has too many lines. [11/10]", 336127382], - [186, 9, 687, "Metrics/MethodLength: Method has too many lines. [11/10]", 2962844982] - ], - "lib/ast/merge/ruleset/profile_vocabulary.rb:2359837647": [ - [7, 7, 3956, "Metrics/ModuleLength: Module has too many lines. [107/100]", 1680256705] - ], - "lib/ast/merge/ruleset/runtime_declaration.rb:1016848190": [ - [18, 9, 819, "Metrics/AbcSize: Assignment Branch Condition size for `initialize` is too high. [<11, 13, 5> 17.75/17]", 4043304883], - [18, 9, 819, "Metrics/MethodLength: Method has too many lines. [11/10]", 4043304883], - [18, 23, 240, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [8/5]", 3868000276], - [49, 9, 551, "Metrics/MethodLength: Method has too many lines. [13/10]", 448215861] - ], - "lib/ast/merge/ruleset/runtime_translator.rb:3255492631": [ - [9, 11, 816, "Metrics/MethodLength: Method has too many lines. [19/10]", 225301385], - [31, 11, 986, "Metrics/AbcSize: Assignment Branch Condition size for `feature_profile` is too high. [<1, 17, 0> 17.03/17]", 1395467476], - [31, 11, 986, "Metrics/MethodLength: Method has too many lines. [19/10]", 1395467476] - ], - "lib/ast/merge/ruleset/support_style_resolver.rb:508975884": [ - [9, 11, 864, "Metrics/MethodLength: Method has too many lines. [22/10]", 3902551296] - ], - "lib/ast/merge/runtime/child_result.rb:4083710804": [ - [16, 9, 698, "Metrics/AbcSize: Assignment Branch Condition size for `initialize` is too high. [<7, 16, 2> 17.58/17]", 2208366179], - [16, 23, 227, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [7/5]", 3688358290], - [38, 9, 584, "Metrics/MethodLength: Method has too many lines. [11/10]", 3113479157], - [55, 11, 106, "Style/HashTransformKeys: Prefer `transform_keys` over `each_with_object`.", 4262612225] - ], - "lib/ast/merge/runtime/delegate.rb:3607371286": [ - [17, 23, 285, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [10/5]", 2793452069] - ], - "lib/ast/merge/runtime/diagnostic.rb:805162185": [ - [10, 23, 72, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 1875462867] - ], - "lib/ast/merge/runtime/operation.rb:1030261783": [ - [20, 9, 767, "Metrics/MethodLength: Method has too many lines. [11/10]", 2728174753], - [20, 23, 278, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [10/5]", 694444911], - [100, 9, 617, "Metrics/AbcSize: Assignment Branch Condition size for `to_h` is too high. [<2, 24, 6> 24.82/17]", 1175382849], - [100, 9, 617, "Metrics/MethodLength: Method has too many lines. [11/10]", 1175382849] - ], - "lib/ast/merge/runtime/resolution_case.rb:250040454": [ - [8, 9, 707, "Metrics/AbcSize: Assignment Branch Condition size for `from_h` is too high. [<1, 19, 6> 19.95/17]", 2592154170], - [29, 23, 189, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [7/5]", 818714714], - [81, 11, 111, "Style/HashTransformKeys: Prefer `transform_keys` over `each_with_object`.", 2712537644] - ], - "lib/ast/merge/runtime/root_session_support.rb:1917388966": [ - [10, 9, 2153, "Metrics/AbcSize: Assignment Branch Condition size for `start_runtime_root_session!` is too high. [<5, 20, 3> 20.83/17]", 1888056651], - [10, 9, 2153, "Metrics/MethodLength: Method has too many lines. [41/10]", 1888056651], - [10, 40, 421, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [14/5]", 2297301282], - [60, 121, 10, "Layout/LineLength: Line is too long. [130/120]", 2312419928], - [68, 9, 771, "Metrics/MethodLength: Method has too many lines. [13/10]", 1787620786], - [68, 43, 191, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 3635875424] - ], - "lib/ast/merge/runtime/session.rb:628419040": [ - [66, 9, 1203, "Metrics/AbcSize: Assignment Branch Condition size for `summary` is too high. [<5, 43, 13> 45.2/17]", 550888870], - [66, 9, 1203, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `summary` is too high. [14/7]", 550888870], - [66, 9, 1203, "Metrics/MethodLength: Method has too many lines. [20/10]", 550888870], - [66, 9, 1203, "Metrics/PerceivedComplexity: Perceived complexity for `summary` is too high. [14/8]", 550888870] - ], - "lib/ast/merge/runtime/surface.rb:3684795905": [ - [17, 23, 230, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [8/5]", 469229117], - [44, 9, 418, "Metrics/MethodLength: Method has too many lines. [11/10]", 998969973] - ], - "lib/ast/merge/section_typing.rb:4261989256": [ - [112, 9, 710, "Metrics/MethodLength: Method has too many lines. [15/10]", 3600335459], - [176, 9, 67, "Lint/MissingSuper: Call `super` to initialize state of the parent class.", 4077537758], - [216, 9, 85, "Lint/MissingSuper: Call `super` to initialize state of the parent class.", 3648782014], - [245, 9, 1446, "Metrics/AbcSize: Assignment Branch Condition size for `merge_sections` is too high. [<13, 20, 12> 26.7/17]", 525095633], - [245, 9, 1446, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `merge_sections` is too high. [12/7]", 525095633], - [245, 9, 1446, "Metrics/MethodLength: Method has too many lines. [28/10]", 525095633], - [245, 9, 1446, "Metrics/PerceivedComplexity: Perceived complexity for `merge_sections` is too high. [13/8]", 525095633] - ], - "lib/ast/merge/smart_merger_base.rb:1823596106": [ - [109, 5, 15324, "Metrics/ClassLength: Class has too many lines. [172/100]", 3547407870], - [214, 7, 1974, "Metrics/AbcSize: Assignment Branch Condition size for `initialize` is too high. [<20, 14, 5> 24.92/17]", 2211610736], - [214, 7, 1974, "Metrics/MethodLength: Method has too many lines. [23/10]", 2211610736], - [214, 21, 443, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [15/5]", 1530523783], - [424, 7, 1312, "Metrics/AbcSize: Assignment Branch Condition size for `parse_and_analyze` is too high. [<7, 25, 11> 28.2/17]", 1640248187], - [424, 7, 1312, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `parse_and_analyze` is too high. [10/7]", 1640248187], - [424, 7, 1312, "Metrics/MethodLength: Method has too many lines. [15/10]", 1640248187], - [424, 7, 1312, "Metrics/PerceivedComplexity: Perceived complexity for `parse_and_analyze` is too high. [10/8]", 1640248187], - [517, 12, 52, "Style/NumericPredicate: Use `result_class.instance_method(:initialize).arity.zero?` instead of `result_class.instance_method(:initialize).arity == 0`.", 1312375552] - ], - "lib/ast/merge/source_region_report_support.rb:31261288": [ - [10, 5, 9026, "Metrics/ModuleLength: Module has too many lines. [204/100]", 3211817308], - [13, 7, 1175, "Metrics/MethodLength: Method has too many lines. [19/10]", 351011969], - [13, 49, 232, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [7/5]", 1034046028], - [38, 7, 1409, "Metrics/AbcSize: Assignment Branch Condition size for `source_blank_line_ownership_regions` is too high. [<9, 23, 11> 27.04/17]", 280304508], - [38, 7, 1409, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `source_blank_line_ownership_regions` is too high. [9/7]", 280304508], - [38, 7, 1409, "Metrics/MethodLength: Method has too many lines. [26/10]", 280304508], - [38, 7, 1409, "Metrics/PerceivedComplexity: Perceived complexity for `source_blank_line_ownership_regions` is too high. [11/8]", 280304508], - [69, 7, 1345, "Metrics/AbcSize: Assignment Branch Condition size for `source_interleaved_regions_for_report` is too high. [<10, 13, 6> 17.46/17]", 253205841], - [69, 7, 1345, "Metrics/MethodLength: Method has too many lines. [32/10]", 253205841], - [109, 7, 1638, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `source_interstitial_region_for_report` is too high. [11/7]", 2543419072], - [109, 7, 1638, "Metrics/MethodLength: Method has too many lines. [32/10]", 2543419072], - [109, 7, 1638, "Metrics/PerceivedComplexity: Perceived complexity for `source_interstitial_region_for_report` is too high. [10/8]", 2543419072], - [109, 48, 133, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 2244283058], - [168, 7, 455, "Metrics/MethodLength: Method has too many lines. [12/10]", 1734550115], - [184, 7, 1444, "Metrics/AbcSize: Assignment Branch Condition size for `source_comment_block_attachment` is too high. [<7, 27, 17> 32.66/17]", 2744031837], - [184, 7, 1444, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `source_comment_block_attachment` is too high. [14/7]", 2744031837], - [184, 7, 1444, "Metrics/MethodLength: Method has too many lines. [21/10]", 2744031837], - [184, 7, 1444, "Metrics/PerceivedComplexity: Perceived complexity for `source_comment_block_attachment` is too high. [15/8]", 2744031837], - [184, 42, 133, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 2758724348], - [192, 121, 1, "Layout/LineLength: Line is too long. [121/120]", 177625] - ], - "lib/ast/merge/structural_edit/boundary.rb:2838060197": [ - [20, 23, 93, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 3901214537], - [41, 38, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], - [51, 38, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], - [60, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2087440865] - ], - "lib/ast/merge/structural_edit/boundary_support.rb:3537000977": [ - [32, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5861061], - [33, 121, 5, "Layout/LineLength: Line is too long. [125/120]", 97596930] - ], - "lib/ast/merge/structural_edit/plan_set.rb:538463647": [ - [116, 121, 42, "Layout/LineLength: Line is too long. [162/120]", 2855200692] - ], - "lib/ast/merge/structural_edit/rehome_plan.rb:2152178780": [ - [23, 23, 123, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 3433617242], - [100, 9, 519, "Metrics/MethodLength: Method has too many lines. [11/10]", 318006380], - [136, 121, 48, "Layout/LineLength: Line is too long. [168/120]", 2367140872] - ], - "lib/ast/merge/structural_edit/remove_plan.rb:1189569486": [ - [11, 7, 9717, "Metrics/ClassLength: Class has too many lines. [160/100]", 3652701475], - [25, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5861091], - [27, 9, 1409, "Metrics/MethodLength: Method has too many lines. [22/10]", 3344870777], - [27, 23, 255, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [11/5]", 3970946607], - [28, 121, 40, "Layout/LineLength: Line is too long. [160/120]", 1637059282], - [36, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5859104], - [196, 121, 32, "Layout/LineLength: Line is too long. [152/120]", 1617827253], - [224, 9, 1032, "Metrics/MethodLength: Method has too many lines. [20/10]", 968444047] - ], - "lib/ast/merge/structural_edit/remove_plan_support.rb:877461974": [ - [9, 9, 11, "Style/ModuleFunction: Use `module_function` instead of `extend self`.", 1210897631], - [19, 9, 1429, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `build_remove_plan` is too high. [8/7]", 4091314919], - [19, 9, 1429, "Metrics/MethodLength: Method has too many lines. [32/10]", 4091314919] - ], - "lib/ast/merge/structural_edit/splice_plan.rb:2675806114": [ - [39, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1683893295], - [42, 23, 203, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [9/5]", 3653221702], - [113, 9, 517, "Metrics/MethodLength: Method has too many lines. [11/10]", 634912361] - ], - "lib/ast/merge/structured_emitter_provenance_support.rb:445323365": [ - [5, 5, 41, "Style/Documentation: Missing top-level documentation comment for `module Ast::Merge::StructuredEmitterProvenanceSupport`.", 3548518830] - ], - "lib/ast/merge/structured_review_apply_support.rb:3649736380": [ - [5, 5, 35, "Style/Documentation: Missing top-level documentation comment for `module Ast::Merge::StructuredReviewApplySupport`.", 1282380463], - [22, 7, 782, "Metrics/AbcSize: Assignment Branch Condition size for `current_output_span_for` is too high. [<6, 19, 11> 22.76/17]", 4137750179], - [22, 7, 782, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `current_output_span_for` is too high. [8/7]", 4137750179], - [22, 7, 782, "Metrics/MethodLength: Method has too many lines. [14/10]", 4137750179], - [42, 7, 595, "Metrics/MethodLength: Method has too many lines. [12/10]", 2080934521], - [60, 121, 10, "Layout/LineLength: Line is too long. [130/120]", 3151172498] - ], - "lib/ast/merge/text/conflict_resolver.rb:989169286": [ - [19, 7, 9182, "Metrics/ClassLength: Class has too many lines. [159/100]", 1070563745], - [28, 23, 211, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 2639535499], - [53, 9, 2507, "Metrics/AbcSize: Assignment Branch Condition size for `resolve_batch` is too high. [<15, 34, 5> 37.5/17]", 825130797], - [53, 9, 2507, "Metrics/MethodLength: Method has too many lines. [44/10]", 825130797], - [196, 9, 2458, "Metrics/AbcSize: Assignment Branch Condition size for `resolve_matched_pair` is too high. [<2, 30, 11> 32.02/17]", 4037214978], - [196, 9, 2458, "Metrics/MethodLength: Method has too many lines. [46/10]", 4037214978] - ], - "lib/ast/merge/text/file_analysis.rb:1530312707": [ - [106, 9, 1484, "Metrics/AbcSize: Assignment Branch Condition size for `parse_statements` is too high. [<11, 15, 6> 19.54/17]", 1858083071], - [106, 9, 1484, "Metrics/MethodLength: Method has too many lines. [34/10]", 1858083071], - [160, 9, 449, "Metrics/MethodLength: Method has too many lines. [11/10]", 1902035813] - ], - "lib/ast/merge/text/line_node.rb:3385927013": [ - [145, 9, 699, "Metrics/MethodLength: Method has too many lines. [17/10]", 2201872249] - ], - "lib/ast/merge/text/section_splitter.rb:129704488": [ - [141, 9, 1442, "Metrics/AbcSize: Assignment Branch Condition size for `merge_section_lists` is too high. [<13, 20, 6> 24.6/17]", 3551729170], - [141, 9, 1442, "Metrics/MethodLength: Method has too many lines. [23/10]", 3551729170], - [322, 9, 1767, "Metrics/AbcSize: Assignment Branch Condition size for `split` is too high. [<11, 29, 10> 32.59/17]", 2207922758], - [322, 9, 1767, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `split` is too high. [10/7]", 2207922758], - [322, 9, 1767, "Metrics/MethodLength: Method has too many lines. [46/10]", 2207922758], - [322, 9, 1767, "Metrics/PerceivedComplexity: Perceived complexity for `split` is too high. [13/8]", 2207922758], - [328, 11, 1019, "Metrics/BlockLength: Block has too many lines. [26/25]", 1561634792] - ], - "lib/ast/merge/text/smart_merger.rb:2405807903": [ - [67, 9, 831, "Metrics/MethodLength: Method has too many lines. [12/10]", 584426022], - [67, 23, 350, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [10/5]", 3074172637] - ], - "lib/ast/merge/trailing_groups/alignment_sort.rb:2593404330": [ - [40, 9, 513, "Metrics/MethodLength: Method has too many lines. [12/10]", 89360683] - ], - "lib/ast/merge/trailing_groups/core.rb:4231959665": [ - [61, 9, 812, "Metrics/MethodLength: Method has too many lines. [17/10]", 1777526069], - [101, 9, 998, "Metrics/AbcSize: Assignment Branch Condition size for `flush_ready_trailing_groups` is too high. [<8, 18, 15> 24.76/17]", 2397698441], - [101, 9, 998, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `flush_ready_trailing_groups` is too high. [13/7]", 2397698441], - [101, 9, 998, "Metrics/MethodLength: Method has too many lines. [17/10]", 2397698441], - [101, 9, 998, "Metrics/PerceivedComplexity: Perceived complexity for `flush_ready_trailing_groups` is too high. [13/8]", 2397698441] - ], - "lib/ast/merge/trailing_groups/dest_iterate.rb:3897205087": [ - [69, 9, 751, "Metrics/MethodLength: Method has too many lines. [12/10]", 3915657972], - [69, 47, 199, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 2545849044] - ], - "lib/ast/merge/unresolved_support.rb:2881272494": [ - [7, 5, 24, "Style/Documentation: Missing top-level documentation comment for `module Ast::Merge::UnresolvedSupport`.", 990281691], - [7, 5, 4392, "Metrics/ModuleLength: Module has too many lines. [116/100]", 3475162940], - [32, 20, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], - [67, 20, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], - [85, 7, 1038, "Metrics/MethodLength: Method has too many lines. [14/10]", 3139619197], - [85, 40, 338, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [14/5]", 71164914] - ], - "spec/ast/merge/ast_node_spec.rb:1362065144": [ - [3, 1, 8199, "Metrics/BlockLength: Block has too many lines. [254/25]", 1649868231], - [18, 3, 1030, "Metrics/BlockLength: Block has too many lines. [33/25]", 1409835577] - ], - "spec/ast/merge/block_directive_spec.rb:2305756581": [ - [3, 1, 5181, "Metrics/BlockLength: Block has too many lines. [138/25]", 1887900896], - [128, 3, 1391, "Metrics/BlockLength: Block has too many lines. [39/25]", 3626371694] - ], - "spec/ast/merge/comment/attachment_spec.rb:2571833836": [ - [3, 1, 5536, "Metrics/BlockLength: Block has too many lines. [150/25]", 1841571757], - [93, 3, 1639, "Metrics/BlockLength: Block has too many lines. [37/25]", 212730671] - ], - "spec/ast/merge/comment/augmenter_spec.rb:4266625483": [ - [3, 1, 9141, "Metrics/BlockLength: Block has too many lines. [212/25]", 530365996], - [16, 3, 6849, "Metrics/BlockLength: Block has too many lines. [154/25]", 503152628], - [200, 3, 1244, "Metrics/BlockLength: Block has too many lines. [33/25]", 3565041107] - ], - "spec/ast/merge/comment/block_spec.rb:4138473890": [ - [3, 1, 9021, "Metrics/BlockLength: Block has too many lines. [250/25]", 1617505173], - [8, 3, 1115, "Metrics/BlockLength: Block has too many lines. [27/25]", 2958989619], - [93, 3, 1127, "Metrics/BlockLength: Block has too many lines. [33/25]", 196340527], - [123, 45, 16, "Style/StringConcatenation: Prefer string interpolation to string concatenation.", 155572628], - [159, 3, 1432, "Metrics/BlockLength: Block has too many lines. [35/25]", 281400319] - ], - "spec/ast/merge/comment/c_style_tracker_base_spec.rb:3154319400": [ - [3, 1, 5816, "Metrics/BlockLength: Block has too many lines. [133/25]", 680831933], - [100, 3, 1450, "Metrics/BlockLength: Block has too many lines. [35/25]", 4153882185] - ], - "spec/ast/merge/comment/capability_spec.rb:2763521225": [ - [3, 1, 3522, "Metrics/BlockLength: Block has too many lines. [89/25]", 1487980773], - [4, 3, 1954, "Metrics/BlockLength: Block has too many lines. [41/25]", 160187362] - ], - "spec/ast/merge/comment/empty_spec.rb:1801324640": [ - [3, 1, 2584, "Metrics/BlockLength: Block has too many lines. [70/25]", 270179899], - [4, 3, 1047, "Metrics/BlockLength: Block has too many lines. [27/25]", 3056449816] - ], - "spec/ast/merge/comment/hash_tracker_base_spec.rb:3624528747": [ - [3, 1, 9653, "Metrics/BlockLength: Block has too many lines. [271/25]", 3748659406], - [8, 3, 1210, "Metrics/BlockLength: Block has too many lines. [37/25]", 2566766302], - [21, 7, 872, "Metrics/AbcSize: Assignment Branch Condition size for `extract_comments` is too high. [<7, 24, 5> 25.5/17]", 1213080161], - [21, 7, 872, "Metrics/MethodLength: Method has too many lines. [25/10]", 1213080161], - [275, 3, 1171, "Metrics/BlockLength: Block has too many lines. [29/25]", 1425466742] - ], - "spec/ast/merge/comment/line_spec.rb:1487829548": [ - [3, 1, 5291, "Metrics/BlockLength: Block has too many lines. [128/25]", 587604747], - [6, 3, 1573, "Metrics/BlockLength: Block has too many lines. [37/25]", 4105920006] - ], - "spec/ast/merge/comment/parser_spec.rb:2443973508": [ - [3, 1, 9855, "Metrics/BlockLength: Block has too many lines. [237/25]", 404174977], - [4, 3, 1013, "Metrics/BlockLength: Block has too many lines. [26/25]", 182655397], - [38, 3, 1282, "Metrics/BlockLength: Block has too many lines. [28/25]", 2303702609] - ], - "spec/ast/merge/comment/quoted_hash_line_parser_spec.rb:3795390831": [ - [3, 1, 1810, "Metrics/BlockLength: Block has too many lines. [44/25]", 2575838586], - [6, 3, 1700, "Metrics/BlockLength: Block has too many lines. [41/25]", 1553834548] - ], - "spec/ast/merge/comment/region_merge_policy_spec.rb:4175996936": [ - [3, 1, 3618, "Metrics/BlockLength: Block has too many lines. [75/25]", 4006378358], - [11, 3, 2752, "Metrics/BlockLength: Block has too many lines. [52/25]", 494211987] - ], - "spec/ast/merge/comment/region_spec.rb:2674736508": [ - [3, 1, 4033, "Metrics/BlockLength: Block has too many lines. [91/25]", 1828104331] - ], - "spec/ast/merge/comment/style_spec.rb:1875195890": [ - [3, 1, 4040, "Metrics/BlockLength: Block has too many lines. [101/25]", 2759361650] - ], - "spec/ast/merge/comment/support_style_spec.rb:1350169032": [ - [3, 1, 1577, "Metrics/BlockLength: Block has too many lines. [39/25]", 3414039011] - ], - "spec/ast/merge/comment/tracked_hash_adapter_spec.rb:1256807736": [ - [3, 1, 4482, "Metrics/BlockLength: Block has too many lines. [97/25]", 264417763], - [4, 3, 3101, "Metrics/BlockLength: Block has too many lines. [63/25]", 1050939978], - [81, 3, 1313, "Metrics/BlockLength: Block has too many lines. [30/25]", 515655104] - ], - "spec/ast/merge/comment_layout_emission_support_spec.rb:19704158": [ - [3, 1, 7555, "Metrics/BlockLength: Block has too many lines. [186/25]", 980479163], - [4, 3, 73, "Lint/ConstantDefinitionInBlock: Do not define constants this way within a block.", 3470206647], - [6, 3, 175, "Lint/ConstantDefinitionInBlock: Do not define constants this way within a block.", 622428252], - [16, 3, 93, "Lint/ConstantDefinitionInBlock: Do not define constants this way within a block.", 546547334], - [18, 3, 734, "Lint/ConstantDefinitionInBlock: Do not define constants this way within a block.", 3226190975], - [21, 19, 120, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 3763716348], - [39, 27, 6, "Lint/UnusedMethodArgument: Unused method argument - `owners`. You can also write as `comment_augmenter(*)` if you want the method to accept any arguments but don't care about them.", 1719502071], - [44, 3, 574, "Lint/ConstantDefinitionInBlock: Do not define constants this way within a block.", 1736750341], - [61, 3, 152, "Lint/ConstantDefinitionInBlock: Do not define constants this way within a block.", 1212551629], - [101, 3, 1173, "Metrics/BlockLength: Block has too many lines. [27/25]", 2346194513], - [132, 3, 1624, "Metrics/BlockLength: Block has too many lines. [36/25]", 2359972174] - ], - "spec/ast/merge/comment_spec.rb:81945459": [ - [3, 1, 15888, "Metrics/BlockLength: Block has too many lines. [384/25]", 2229554982], - [4, 3, 3957, "Metrics/BlockLength: Block has too many lines. [84/25]", 660667217], - [5, 5, 1187, "Metrics/BlockLength: Block has too many lines. [26/25]", 241562105], - [105, 3, 1371, "Metrics/BlockLength: Block has too many lines. [30/25]", 1901983597], - [159, 3, 1296, "Metrics/BlockLength: Block has too many lines. [30/25]", 1749880380], - [239, 3, 1151, "Metrics/BlockLength: Block has too many lines. [28/25]", 183967322], - [272, 3, 2004, "Metrics/BlockLength: Block has too many lines. [45/25]", 2594323837], - [349, 3, 3220, "Metrics/BlockLength: Block has too many lines. [83/25]", 790417809], - [350, 5, 2347, "Metrics/BlockLength: Block has too many lines. [60/25]", 4016801881] - ], - "spec/ast/merge/composite_match_refiner_spec.rb:2888297870": [ - [3, 1, 6152, "Metrics/BlockLength: Block has too many lines. [143/25]", 3308692548], - [55, 3, 4118, "Metrics/BlockLength: Block has too many lines. [87/25]", 1405655464] - ], - "spec/ast/merge/conflict_resolver_base_spec.rb:3331938447": [ - [5, 1, 20643, "Metrics/BlockLength: Block has too many lines. [516/25]", 3129196558], - [14, 59, 14, "Lint/UnusedMethodArgument: Unused method argument - `template_index`.", 1809801172], - [14, 76, 10, "Lint/UnusedMethodArgument: Unused method argument - `dest_index`.", 2703999490], - [47, 61, 14, "Lint/UnusedMethodArgument: Unused method argument - `template_index`. You can also write as `resolve_node_pair(*)` if you want the method to accept any arguments but don't care about them.", 1809801172], - [47, 78, 10, "Lint/UnusedMethodArgument: Unused method argument - `dest_index`. You can also write as `resolve_node_pair(*)` if you want the method to accept any arguments but don't care about them.", 2703999490], - [105, 3, 17203, "Metrics/BlockLength: Block has too many lines. [425/25]", 1114912980], - [154, 5, 1797, "Metrics/BlockLength: Block has too many lines. [37/25]", 515146940], - [203, 5, 1373, "Metrics/BlockLength: Block has too many lines. [32/25]", 603210832], - [292, 5, 2874, "Metrics/BlockLength: Block has too many lines. [77/25]", 3918129775], - [341, 7, 1292, "Metrics/BlockLength: Block has too many lines. [34/25]", 1769555944], - [402, 5, 1857, "Metrics/BlockLength: Block has too many lines. [44/25]", 1516406612], - [456, 5, 1209, "Metrics/BlockLength: Block has too many lines. [31/25]", 430489898], - [514, 5, 2021, "Metrics/BlockLength: Block has too many lines. [37/25]", 144128170], - [515, 7, 1953, "Metrics/BlockLength: Block has too many lines. [35/25]", 1574966248], - [567, 5, 1500, "Metrics/BlockLength: Block has too many lines. [40/25]", 2509466150] - ], - "spec/ast/merge/content_match_refiner_spec.rb:4058001158": [ - [3, 1, 14348, "Metrics/BlockLength: Block has too many lines. [318/25]", 1171164704], - [25, 3, 1238, "Metrics/BlockLength: Block has too many lines. [29/25]", 2139810386], - [63, 3, 4077, "Metrics/BlockLength: Block has too many lines. [95/25]", 3471153375], - [325, 3, 2213, "Metrics/BlockLength: Block has too many lines. [37/25]", 3370370915] - ], - "spec/ast/merge/debug_logger_spec.rb:429510168": [ - [3, 1, 17306, "Metrics/BlockLength: Block has too many lines. [358/25]", 2287792973], - [251, 3, 1598, "Metrics/BlockLength: Block has too many lines. [27/25]", 3227542816], - [358, 3, 5118, "Metrics/BlockLength: Block has too many lines. [77/25]", 1759761803] - ], - "spec/ast/merge/detector/base_spec.rb:4157102211": [ - [3, 1, 3172, "Metrics/BlockLength: Block has too many lines. [100/25]", 3745104028], - [11, 7, 498, "Metrics/MethodLength: Method has too many lines. [13/10]", 3178368155], - [49, 3, 900, "Metrics/BlockLength: Block has too many lines. [28/25]", 2333048204] - ], - "spec/ast/merge/detector/fenced_code_block_spec.rb:495797689": [ - [3, 1, 11589, "Metrics/BlockLength: Block has too many lines. [363/25]", 3764545134], - [38, 3, 4467, "Metrics/BlockLength: Block has too many lines. [150/25]", 1597401000], - [41, 5, 1077, "Metrics/BlockLength: Block has too many lines. [31/25]", 2269642514], - [115, 5, 848, "Metrics/BlockLength: Block has too many lines. [27/25]", 1704866975], - [220, 3, 4815, "Metrics/BlockLength: Block has too many lines. [146/25]", 3797214474] - ], - "spec/ast/merge/detector/mergeable_spec.rb:1307688846": [ - [3, 1, 23175, "Metrics/BlockLength: Block has too many lines. [654/25]", 2932391114], - [77, 3, 2079, "Metrics/BlockLength: Block has too many lines. [53/25]", 1093085347], - [177, 3, 2217, "Metrics/BlockLength: Block has too many lines. [69/25]", 926985871], - [188, 5, 948, "Metrics/BlockLength: Block has too many lines. [26/25]", 4186135901], - [225, 5, 898, "Metrics/BlockLength: Block has too many lines. [31/25]", 513446836], - [266, 3, 1168, "Metrics/BlockLength: Block has too many lines. [29/25]", 774699411], - [304, 3, 1188, "Metrics/BlockLength: Block has too many lines. [27/25]", 4282853126], - [339, 3, 918, "Metrics/BlockLength: Block has too many lines. [28/25]", 1759590109], - [372, 3, 870, "Metrics/BlockLength: Block has too many lines. [28/25]", 131542026], - [410, 3, 3768, "Metrics/BlockLength: Block has too many lines. [111/25]", 181819560], - [483, 5, 1536, "Metrics/BlockLength: Block has too many lines. [47/25]", 385085357], - [540, 3, 1891, "Metrics/BlockLength: Block has too many lines. [52/25]", 602757329], - [664, 3, 1927, "Metrics/BlockLength: Block has too many lines. [56/25]", 48062261], - [691, 5, 1146, "Metrics/BlockLength: Block has too many lines. [31/25]", 1961728737], - [721, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 3104497040], - [729, 3, 1625, "Metrics/BlockLength: Block has too many lines. [46/25]", 1570579215] - ], - "spec/ast/merge/detector/region_spec.rb:594725562": [ - [3, 1, 8128, "Metrics/BlockLength: Block has too many lines. [290/25]", 1984713692], - [4, 3, 806, "Metrics/BlockLength: Block has too many lines. [28/25]", 1515087192], - [58, 3, 1236, "Metrics/BlockLength: Block has too many lines. [45/25]", 2464968707], - [128, 3, 1063, "Metrics/BlockLength: Block has too many lines. [33/25]", 239148700], - [250, 3, 2010, "Metrics/BlockLength: Block has too many lines. [76/25]", 2595033382] - ], - "spec/ast/merge/detector/toml_frontmatter_spec.rb:1135160129": [ - [3, 1, 6717, "Metrics/BlockLength: Block has too many lines. [218/25]", 2273975625], - [12, 3, 5534, "Metrics/BlockLength: Block has too many lines. [187/25]", 538920673], - [13, 5, 1456, "Metrics/BlockLength: Block has too many lines. [38/25]", 3113759139] - ], - "spec/ast/merge/detector/yaml_frontmatter_spec.rb:2467934365": [ - [3, 1, 6702, "Metrics/BlockLength: Block has too many lines. [213/25]", 3083039982], - [12, 3, 5056, "Metrics/BlockLength: Block has too many lines. [170/25]", 1889948780], - [13, 5, 1438, "Metrics/BlockLength: Block has too many lines. [38/25]", 1736912391], - [219, 3, 1396, "Metrics/BlockLength: Block has too many lines. [33/25]", 2446467851] - ], - "spec/ast/merge/diff_mapper_base_spec.rb:1771546518": [ - [5, 1, 8521, "Metrics/BlockLength: Block has too many lines. [248/25]", 1057580573], - [22, 9, 44, "Style/InverseMethods: Use `reject` instead of inverting `select`.", 3063843489], - [46, 3, 3878, "Metrics/BlockLength: Block has too many lines. [116/25]", 2874032080], - [47, 5, 1938, "Metrics/BlockLength: Block has too many lines. [48/25]", 1904497583], - [191, 3, 1488, "Metrics/BlockLength: Block has too many lines. [43/25]", 1632956840] - ], - "spec/ast/merge/emitter_base_spec.rb:1099876333": [ - [3, 1, 11967, "Metrics/BlockLength: Block has too many lines. [301/25]", 2970792295], - [56, 3, 4393, "Metrics/BlockLength: Block has too many lines. [102/25]", 3992142376], - [160, 58, 12, "Lint/UnusedMethodArgument: Unused method argument - `current_line`. You can also write as `inline_comment_region_target_column(*)` if you want the method to accept any arguments but don't care about them.", 2091263933], - [164, 44, 6, "Lint/UnusedMethodArgument: Unused method argument - `region`.", 2124512157], - [185, 3, 1815, "Metrics/BlockLength: Block has too many lines. [39/25]", 719023387], - [232, 3, 2233, "Metrics/BlockLength: Block has too many lines. [62/25]", 3754339775], - [338, 3, 1059, "Metrics/BlockLength: Block has too many lines. [26/25]", 375007123] - ], - "spec/ast/merge/fictive_language_harness_spec.rb:1179155480": [ - [6, 1, 6693, "Metrics/BlockLength: Block has too many lines. [143/25]", 245088433], - [7, 3, 1968, "Metrics/BlockLength: Block has too many lines. [36/25]", 4161580169], - [58, 3, 1230, "Metrics/BlockLength: Block has too many lines. [34/25]", 990452676], - [103, 3, 2668, "Metrics/BlockLength: Block has too many lines. [51/25]", 1755027956] - ], - "spec/ast/merge/file_aligner_base_spec.rb:91275387": [ - [5, 1, 9948, "Metrics/BlockLength: Block has too many lines. [217/25]", 3354563411], - [6, 3, 1490, "Metrics/BlockLength: Block has too many lines. [45/25]", 563330990], - [95, 3, 7495, "Metrics/BlockLength: Block has too many lines. [129/25]", 598770279], - [103, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 3749416415], - [163, 5, 1489, "Metrics/BlockLength: Block has too many lines. [26/25]", 2910876949] - ], - "spec/ast/merge/file_analyzable_spec.rb:3816965829": [ - [3, 1, 12458, "Metrics/BlockLength: Block has too many lines. [272/25]", 216138965], - [25, 3, 9603, "Metrics/BlockLength: Block has too many lines. [202/25]", 2508188172], - [297, 3, 1214, "Metrics/BlockLength: Block has too many lines. [30/25]", 777182624] - ], - "spec/ast/merge/freezable_spec.rb:559280324": [ - [5, 1, 5033, "Metrics/BlockLength: Block has too many lines. [123/25]", 3070666859], - [6, 3, 1199, "Metrics/BlockLength: Block has too many lines. [34/25]", 4058875636], - [66, 3, 1530, "Metrics/BlockLength: Block has too many lines. [31/25]", 1670675428] - ], - "spec/ast/merge/freeze_node_base_spec.rb:2962962931": [ - [3, 1, 21887, "Metrics/BlockLength: Block has too many lines. [560/25]", 567315021], - [48, 3, 1369, "Metrics/BlockLength: Block has too many lines. [38/25]", 3363160391], - [131, 3, 2739, "Metrics/BlockLength: Block has too many lines. [56/25]", 2008289622], - [205, 3, 1586, "Metrics/BlockLength: Block has too many lines. [35/25]", 4179606047], - [251, 3, 977, "Metrics/BlockLength: Block has too many lines. [26/25]", 1240612851], - [287, 3, 1130, "Metrics/BlockLength: Block has too many lines. [28/25]", 2511265379], - [322, 3, 5029, "Metrics/BlockLength: Block has too many lines. [126/25]", 739537566], - [598, 3, 3055, "Metrics/BlockLength: Block has too many lines. [81/25]", 145217296] - ], - "spec/ast/merge/healer_spec.rb:877829793": [ - [3, 1, 4896, "Metrics/BlockLength: Block has too many lines. [148/25]", 1074378773], - [19, 3, 1333, "Metrics/BlockLength: Block has too many lines. [38/25]", 2940878263], - [24, 121, 3, "Layout/LineLength: Line is too long. [123/120]", 193432399], - [61, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2085379023], - [67, 3, 2985, "Metrics/BlockLength: Block has too many lines. [93/25]", 4032786576] - ], - "spec/ast/merge/jaccard_similarity_spec.rb:3984307047": [ - [3, 1, 2659, "Metrics/BlockLength: Block has too many lines. [71/25]", 1122516612], - [6, 3, 1484, "Metrics/BlockLength: Block has too many lines. [38/25]", 3367914637], - [55, 3, 1090, "Metrics/BlockLength: Block has too many lines. [28/25]", 2629339264] - ], - "spec/ast/merge/key_path_partial_template_merger_base_spec.rb:2189485360": [ - [5, 1, 5955, "Metrics/BlockLength: Block has too many lines. [138/25]", 91542958], - [35, 3, 1217, "Metrics/BlockLength: Block has too many lines. [33/25]", 2663081123], - [97, 3, 3019, "Metrics/BlockLength: Block has too many lines. [54/25]", 1411952192] - ], - "spec/ast/merge/layout/attachment_spec.rb:3814294426": [ - [3, 1, 1799, "Metrics/BlockLength: Block has too many lines. [34/25]", 1283153367] - ], - "spec/ast/merge/layout/augmenter_spec.rb:3633045915": [ - [3, 1, 4412, "Metrics/BlockLength: Block has too many lines. [92/25]", 2690553031], - [20, 3, 2725, "Metrics/BlockLength: Block has too many lines. [54/25]", 3645203819] - ], - "spec/ast/merge/layout/gap_spec.rb:4232058283": [ - [3, 1, 2758, "Metrics/BlockLength: Block has too many lines. [72/25]", 2052697931], - [9, 3, 1290, "Metrics/BlockLength: Block has too many lines. [28/25]", 3175967312] - ], - "spec/ast/merge/line_range_support_spec.rb:872979873": [ - [3, 1, 1564, "Metrics/BlockLength: Block has too many lines. [35/25]", 1133178812], - [4, 3, 65, "Lint/ConstantDefinitionInBlock: Do not define constants this way within a block.", 2231059390], - [5, 3, 44, "Lint/ConstantDefinitionInBlock: Do not define constants this way within a block.", 1230426940], - [7, 3, 135, "Lint/ConstantDefinitionInBlock: Do not define constants this way within a block.", 1825860348] - ], - "spec/ast/merge/match_refiner_base_spec.rb:3961767223": [ - [3, 1, 10604, "Metrics/BlockLength: Block has too many lines. [301/25]", 4290485382], - [4, 3, 1146, "Metrics/BlockLength: Block has too many lines. [37/25]", 108051658], - [50, 3, 1005, "Metrics/BlockLength: Block has too many lines. [28/25]", 3807648246], - [125, 3, 1026, "Metrics/BlockLength: Block has too many lines. [27/25]", 2896086726], - [162, 3, 4464, "Metrics/BlockLength: Block has too many lines. [114/25]", 2878217135], - [218, 5, 1112, "Metrics/BlockLength: Block has too many lines. [30/25]", 1605825436], - [224, 11, 104, "Style/HashLikeCase: Consider replacing `case-when` with a hash lookup.", 4220899731], - [247, 11, 132, "Style/HashLikeCase: Consider replacing `case-when` with a hash lookup.", 3401820780], - [258, 5, 1642, "Metrics/BlockLength: Block has too many lines. [35/25]", 1288881729], - [337, 3, 1108, "Metrics/BlockLength: Block has too many lines. [33/25]", 2139263963] - ], - "spec/ast/merge/match_score_base_spec.rb:2340739872": [ - [3, 1, 15213, "Metrics/BlockLength: Block has too many lines. [372/25]", 1512747000], - [4, 3, 1553, "Metrics/BlockLength: Block has too many lines. [41/25]", 2789289940], - [43, 20, 2, "Naming/MethodParameterName: Method parameter must be at least 3 characters long.", 5862747], - [43, 24, 2, "Naming/MethodParameterName: Method parameter must be at least 3 characters long.", 5862744], - [56, 3, 1041, "Metrics/BlockLength: Block has too many lines. [29/25]", 3729310115], - [152, 3, 3259, "Metrics/BlockLength: Block has too many lines. [82/25]", 1438003770], - [258, 3, 2199, "Metrics/BlockLength: Block has too many lines. [43/25]", 3386602801], - [320, 3, 1684, "Metrics/BlockLength: Block has too many lines. [35/25]", 3807719546], - [365, 14, 16, "Lint/FloatComparison: Avoid equality comparisons of floats as they are unreliable.", 3787748956], - [369, 3, 1696, "Metrics/BlockLength: Block has too many lines. [36/25]", 3172214426], - [417, 3, 1792, "Metrics/BlockLength: Block has too many lines. [45/25]", 3557977606], - [438, 5, 1121, "Metrics/BlockLength: Block has too many lines. [26/25]", 4236927298] - ], - "spec/ast/merge/merge_result_base_spec.rb:3826389024": [ - [3, 1, 20371, "Metrics/BlockLength: Block has too many lines. [552/25]", 3965341976], - [38, 3, 2735, "Metrics/BlockLength: Block has too many lines. [80/25]", 1103243845], - [312, 3, 1611, "Metrics/BlockLength: Block has too many lines. [39/25]", 1928511417], - [313, 5, 1203, "Metrics/BlockLength: Block has too many lines. [26/25]", 857223227], - [359, 3, 2070, "Metrics/BlockLength: Block has too many lines. [48/25]", 2552826824], - [418, 3, 5769, "Metrics/BlockLength: Block has too many lines. [140/25]", 1457747735], - [544, 5, 1306, "Metrics/BlockLength: Block has too many lines. [29/25]", 2980786372], - [607, 3, 1308, "Metrics/BlockLength: Block has too many lines. [32/25]", 1342704008] - ], - "spec/ast/merge/merger_config_spec.rb:663896662": [ - [5, 1, 7314, "Metrics/BlockLength: Block has too many lines. [189/25]", 1279589310], - [11, 3, 1180, "Metrics/BlockLength: Block has too many lines. [26/25]", 1014009176], - [45, 3, 1151, "Metrics/BlockLength: Block has too many lines. [26/25]", 785276703], - [79, 3, 3574, "Metrics/BlockLength: Block has too many lines. [97/25]", 969726064], - [126, 5, 1158, "Metrics/BlockLength: Block has too many lines. [29/25]", 389808524] - ], - "spec/ast/merge/navigable/injection_point_finder_spec.rb:3693754765": [ - [3, 1, 5152, "Metrics/BlockLength: Block has too many lines. [123/25]", 3265221808], - [15, 3, 4026, "Metrics/BlockLength: Block has too many lines. [96/25]", 1482695302], - [63, 5, 2337, "Metrics/BlockLength: Block has too many lines. [54/25]", 2678200297] - ], - "spec/ast/merge/navigable/injection_point_spec.rb:3295717447": [ - [3, 1, 6032, "Metrics/BlockLength: Block has too many lines. [161/25]", 805025024], - [77, 3, 1083, "Metrics/BlockLength: Block has too many lines. [28/25]", 3091139104] - ], - "spec/ast/merge/navigable/statement_spec.rb:2965726260": [ - [3, 1, 18289, "Metrics/BlockLength: Block has too many lines. [510/25]", 4119203121], - [102, 3, 3570, "Metrics/BlockLength: Block has too many lines. [97/25]", 3287535168], - [156, 5, 2030, "Metrics/BlockLength: Block has too many lines. [51/25]", 3299963733], - [251, 3, 1338, "Metrics/BlockLength: Block has too many lines. [37/25]", 844559624], - [411, 3, 1550, "Metrics/BlockLength: Block has too many lines. [42/25]", 3851790429], - [465, 3, 1372, "Metrics/BlockLength: Block has too many lines. [41/25]", 3782869383] - ], - "spec/ast/merge/node_typing/frozen_wrapper_spec.rb:3823345520": [ - [3, 1, 4532, "Metrics/BlockLength: Block has too many lines. [117/25]", 3944573785] - ], - "spec/ast/merge/node_typing/normalizer_spec.rb:1976431423": [ - [4, 1, 8679, "Metrics/BlockLength: Block has too many lines. [219/25]", 938207310], - [65, 3, 1137, "Metrics/BlockLength: Block has too many lines. [26/25]", 3180807289], - [101, 3, 1404, "Metrics/BlockLength: Block has too many lines. [28/25]", 1094334251], - [216, 3, 875, "Metrics/BlockLength: Block has too many lines. [26/25]", 2755551247] - ], - "spec/ast/merge/node_typing/wrapper_spec.rb:3211588263": [ - [3, 1, 3469, "Metrics/BlockLength: Block has too many lines. [92/25]", 638644563] - ], - "spec/ast/merge/node_typing_spec.rb:4080661389": [ - [3, 1, 12728, "Metrics/BlockLength: Block has too many lines. [333/25]", 3927571381], - [132, 3, 3704, "Metrics/BlockLength: Block has too many lines. [98/25]", 2130243754], - [208, 5, 1267, "Metrics/BlockLength: Block has too many lines. [31/25]", 2816753725], - [265, 3, 1298, "Metrics/BlockLength: Block has too many lines. [33/25]", 3320876250], - [311, 3, 3803, "Metrics/BlockLength: Block has too many lines. [100/25]", 2743470911] - ], - "spec/ast/merge/node_wrapper_base_spec.rb:2252820285": [ - [3, 1, 11681, "Metrics/BlockLength: Block has too many lines. [307/25]", 1698593962], - [32, 3, 2341, "Metrics/BlockLength: Block has too many lines. [68/25]", 1594381363], - [179, 3, 2568, "Metrics/BlockLength: Block has too many lines. [51/25]", 1269052990], - [294, 3, 1252, "Metrics/BlockLength: Block has too many lines. [26/25]", 4220822180], - [329, 3, 1963, "Metrics/BlockLength: Block has too many lines. [39/25]", 1623030031] - ], - "spec/ast/merge/owner_selection_spec.rb:1894901093": [ - [3, 1, 1356, "Metrics/BlockLength: Block has too many lines. [35/25]", 1030003775] - ], - "spec/ast/merge/partial_template_merger_base_spec.rb:3412991027": [ - [3, 1, 7073, "Metrics/BlockLength: Block has too many lines. [145/25]", 3415302240], - [16, 9, 43, "Lint/HashCompareByIdentity: Use `Hash#compare_by_identity` instead of using `object_id` for keys.", 3196404056], - [22, 9, 42, "Lint/HashCompareByIdentity: Use `Hash#compare_by_identity` instead of using `object_id` for keys.", 4116824817], - [48, 20, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], - [96, 3, 4220, "Metrics/BlockLength: Block has too many lines. [68/25]", 3464417459], - [97, 5, 2029, "Metrics/BlockLength: Block has too many lines. [27/25]", 3297854360], - [138, 5, 2122, "Metrics/BlockLength: Block has too many lines. [37/25]", 1592076374] - ], - "spec/ast/merge/recipe/config_spec.rb:3917288551": [ - [3, 1, 21041, "Metrics/BlockLength: Block has too many lines. [611/25]", 2431235923], - [72, 3, 1653, "Metrics/BlockLength: Block has too many lines. [36/25]", 2702780755], - [174, 3, 1465, "Metrics/BlockLength: Block has too many lines. [44/25]", 2326126933], - [226, 3, 3419, "Metrics/BlockLength: Block has too many lines. [89/25]", 798604841], - [327, 3, 1398, "Metrics/BlockLength: Block has too many lines. [34/25]", 3113267700], - [474, 3, 1184, "Metrics/BlockLength: Block has too many lines. [39/25]", 2599756030], - [519, 3, 4630, "Metrics/BlockLength: Block has too many lines. [147/25]", 1245526575] - ], - "spec/ast/merge/recipe/preset_spec.rb:818394232": [ - [3, 1, 6696, "Metrics/BlockLength: Block has too many lines. [173/25]", 3205615892] - ], - "spec/ast/merge/recipe/runner_spec.rb:3689194117": [ - [3, 1, 46798, "Metrics/BlockLength: Block has too many lines. [1104/25]", 3220015076], - [48, 3, 1128, "Metrics/BlockLength: Block has too many lines. [26/25]", 910457645], - [108, 3, 3036, "Metrics/BlockLength: Block has too many lines. [92/25]", 2112378918], - [132, 5, 881, "Metrics/BlockLength: Block has too many lines. [27/25]", 3842010356], - [177, 5, 918, "Metrics/BlockLength: Block has too many lines. [27/25]", 2152367239], - [295, 3, 1383, "Metrics/BlockLength: Block has too many lines. [41/25]", 2141027559], - [362, 3, 1653, "Metrics/BlockLength: Block has too many lines. [33/25]", 1536472295], - [449, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 3960802027], - [497, 3, 7959, "Metrics/BlockLength: Block has too many lines. [200/25]", 3739116912], - [556, 5, 1225, "Metrics/BlockLength: Block has too many lines. [31/25]", 195497726], - [740, 3, 6977, "Metrics/BlockLength: Block has too many lines. [145/25]", 2805535296], - [748, 5, 2241, "Metrics/BlockLength: Block has too many lines. [49/25]", 2552233173], - [805, 5, 3007, "Metrics/BlockLength: Block has too many lines. [59/25]", 708771722], - [877, 5, 1444, "Metrics/BlockLength: Block has too many lines. [26/25]", 3274225022], - [911, 3, 3258, "Metrics/BlockLength: Block has too many lines. [85/25]", 2346849758], - [1012, 3, 2710, "Metrics/BlockLength: Block has too many lines. [71/25]", 3801821877], - [1029, 5, 1547, "Metrics/BlockLength: Block has too many lines. [42/25]", 2962020615], - [1109, 3, 2240, "Metrics/BlockLength: Block has too many lines. [35/25]", 1139957345], - [1115, 121, 26, "Layout/LineLength: Line is too long. [146/120]", 667314941], - [1117, 121, 26, "Layout/LineLength: Line is too long. [146/120]", 667314941], - [1119, 121, 13, "Layout/LineLength: Line is too long. [133/120]", 1801369636], - [1121, 121, 11, "Layout/LineLength: Line is too long. [131/120]", 2652710920], - [1123, 121, 28, "Layout/LineLength: Line is too long. [148/120]", 1375785821], - [1125, 121, 26, "Layout/LineLength: Line is too long. [146/120]", 632755459], - [1160, 121, 26, "Layout/LineLength: Line is too long. [146/120]", 667314941], - [1162, 121, 26, "Layout/LineLength: Line is too long. [146/120]", 667314941], - [1164, 121, 28, "Layout/LineLength: Line is too long. [148/120]", 1375785821], - [1176, 3, 1472, "Metrics/BlockLength: Block has too many lines. [31/25]", 844153987], - [1181, 121, 25, "Layout/LineLength: Line is too long. [145/120]", 1239303812], - [1183, 121, 28, "Layout/LineLength: Line is too long. [148/120]", 1251336963], - [1216, 3, 2277, "Metrics/BlockLength: Block has too many lines. [43/25]", 4287127386], - [1221, 121, 26, "Layout/LineLength: Line is too long. [146/120]", 667314941], - [1223, 121, 11, "Layout/LineLength: Line is too long. [131/120]", 2652710920], - [1225, 121, 28, "Layout/LineLength: Line is too long. [148/120]", 1375785821], - [1227, 121, 26, "Layout/LineLength: Line is too long. [146/120]", 632755459], - [1274, 121, 44, "Layout/LineLength: Line is too long. [164/120]", 3420615328] - ], - "spec/ast/merge/recipe/script_loader_spec.rb:2136892097": [ - [3, 1, 8554, "Metrics/BlockLength: Block has too many lines. [237/25]", 2314425369], - [45, 3, 2842, "Metrics/BlockLength: Block has too many lines. [75/25]", 168902852], - [155, 3, 1400, "Metrics/BlockLength: Block has too many lines. [39/25]", 1611123964] - ], - "spec/ast/merge/rspec/shared_examples/feature_profile_spec.rb:2654837708": [ - [5, 1, 1140, "Metrics/BlockLength: Block has too many lines. [31/25]", 678325840] - ], - "spec/ast/merge/rspec/shared_examples/file_analyzable_spec.rb:1833922303": [ - [58, 3, 970, "Metrics/AbcSize: Assignment Branch Condition size for `detect_freeze_blocks` is too high. [<16, 9, 5> 19.03/17]", 1533823667], - [58, 3, 970, "Metrics/MethodLength: Method has too many lines. [31/10]", 1533823667], - [104, 1, 1216, "Metrics/BlockLength: Block has too many lines. [39/25]", 1009012120], - [105, 3, 1159, "Metrics/BlockLength: Block has too many lines. [38/25]", 1361521205] - ], - "spec/ast/merge/rspec/shared_examples/layout_attachment_spec.rb:714796658": [ - [8, 1, 957, "Metrics/BlockLength: Block has too many lines. [28/25]", 3738990548] - ], - "spec/ast/merge/rspec/shared_examples/recipe_preset_contract_spec.rb:669158728": [ - [6, 1, 1577, "Metrics/BlockLength: Block has too many lines. [41/25]", 2157464290], - [7, 3, 1512, "Metrics/BlockLength: Block has too many lines. [39/25]", 1968160370], - [44, 5, 401, "Metrics/AbcSize: Assignment Branch Condition size for `run_verify_loaded_preset` is too high. [<0, 26, 0> 26/17]", 2960760840] - ], - "spec/ast/merge/rspec/shared_examples/removal_mode_compliance_spec.rb:31388352": [ - [6, 22, 2, "Style/MutableConstant: Freeze mutable objects assigned to constants.", 5861859], - [44, 1, 2546, "Metrics/BlockLength: Block has too many lines. [77/25]", 3740028971], - [45, 3, 1350, "Metrics/BlockLength: Block has too many lines. [41/25]", 2793151667], - [94, 3, 1128, "Metrics/BlockLength: Block has too many lines. [32/25]", 2527000512], - [95, 5, 1081, "Metrics/BlockLength: Block has too many lines. [30/25]", 3825359844] - ], - "spec/ast/merge/rspec/shared_examples/reproducible_partial_merge_spec.rb:2862326360": [ - [19, 3, 600, "Metrics/MethodLength: Method has too many lines. [13/10]", 1542875905] - ], - "spec/ast/merge/rspec/tree_haver_backend_contract_spec.rb:3942689234": [ - [20, 1, 1737, "Metrics/BlockLength: Block has too many lines. [29/25]", 2339568528] - ], - "spec/ast/merge/ruleset/config_spec.rb:1860949041": [ - [3, 1, 9431, "Metrics/BlockLength: Block has too many lines. [236/25]", 4015119559], - [24, 3, 5341, "Metrics/BlockLength: Block has too many lines. [149/25]", 2361087446], - [25, 5, 1064, "Metrics/BlockLength: Block has too many lines. [26/25]", 603056104], - [226, 3, 2125, "Metrics/BlockLength: Block has too many lines. [36/25]", 1640873170] - ], - "spec/ast/merge/ruleset/declaration_objects_spec.rb:3827892270": [ - [3, 1, 1881, "Metrics/BlockLength: Block has too many lines. [47/25]", 1770376910] - ], - "spec/ast/merge/ruleset/feature_profile_spec.rb:2241111096": [ - [3, 1, 4189, "Metrics/BlockLength: Block has too many lines. [86/25]", 1116963550], - [4, 3, 4129, "Metrics/BlockLength: Block has too many lines. [84/25]", 117079811], - [5, 5, 2391, "Metrics/BlockLength: Block has too many lines. [45/25]", 1800077283] - ], - "spec/ast/merge/ruleset/parser_spec.rb:386407767": [ - [3, 1, 5670, "Metrics/BlockLength: Block has too many lines. [144/25]", 3425850453], - [4, 3, 5618, "Metrics/BlockLength: Block has too many lines. [143/25]", 246633759] - ], - "spec/ast/merge/ruleset/profile_vocabulary_spec.rb:2570869276": [ - [3, 1, 2095, "Metrics/BlockLength: Block has too many lines. [46/25]", 3214342662] - ], - "spec/ast/merge/ruleset/support_style_resolver_spec.rb:640167644": [ - [3, 1, 1625, "Metrics/BlockLength: Block has too many lines. [49/25]", 2066834885], - [4, 3, 1559, "Metrics/BlockLength: Block has too many lines. [47/25]", 1169495477] - ], - "spec/ast/merge/runtime_spec.rb:3962589694": [ - [5, 1, 24649, "Metrics/BlockLength: Block has too many lines. [664/25]", 2634021188], - [76, 3, 1459, "Metrics/BlockLength: Block has too many lines. [41/25]", 3744002593], - [125, 3, 1417, "Metrics/BlockLength: Block has too many lines. [33/25]", 4087615381], - [166, 3, 2549, "Metrics/BlockLength: Block has too many lines. [69/25]", 3150260095], - [175, 5, 1068, "Metrics/BlockLength: Block has too many lines. [26/25]", 2933114685], - [247, 3, 1668, "Metrics/BlockLength: Block has too many lines. [39/25]", 2386637993], - [259, 5, 1265, "Metrics/BlockLength: Block has too many lines. [27/25]", 3157806167], - [321, 3, 10884, "Metrics/BlockLength: Block has too many lines. [295/25]", 1889265918], - [322, 5, 1879, "Metrics/BlockLength: Block has too many lines. [46/25]", 2536583521], - [373, 5, 3938, "Metrics/BlockLength: Block has too many lines. [108/25]", 340276027], - [486, 5, 1270, "Metrics/BlockLength: Block has too many lines. [38/25]", 3844174392], - [528, 5, 3728, "Metrics/BlockLength: Block has too many lines. [95/25]", 3779381786], - [630, 3, 3240, "Metrics/BlockLength: Block has too many lines. [84/25]", 3856725067], - [656, 5, 1649, "Metrics/BlockLength: Block has too many lines. [40/25]", 3713662683] - ], - "spec/ast/merge/section_typing_spec.rb:2580971307": [ - [3, 1, 14786, "Metrics/BlockLength: Block has too many lines. [344/25]", 2925587076], - [4, 3, 1940, "Metrics/BlockLength: Block has too many lines. [50/25]", 3362429388], - [67, 3, 3684, "Metrics/BlockLength: Block has too many lines. [96/25]", 3864076664], - [120, 5, 1998, "Metrics/BlockLength: Block has too many lines. [50/25]", 411620722], - [183, 3, 1415, "Metrics/BlockLength: Block has too many lines. [37/25]", 3323012675], - [192, 5, 1124, "Metrics/BlockLength: Block has too many lines. [28/25]", 966216762], - [229, 3, 1610, "Metrics/BlockLength: Block has too many lines. [38/25]", 1499957007], - [229, 121, 17, "Layout/LineLength: Line is too long. [137/120]", 1025596574], - [279, 3, 4437, "Metrics/BlockLength: Block has too many lines. [80/25]", 423587151], - [356, 36, 23, "Style/SymbolProc: Pass `&:unclassified?` as an argument to `find` instead of a block.", 563945984], - [369, 36, 23, "Style/SymbolProc: Pass `&:unclassified?` as an argument to `find` instead of a block.", 563945984], - [375, 3, 1630, "Metrics/BlockLength: Block has too many lines. [31/25]", 1675144727] - ], - "spec/ast/merge/smart_merger_base_spec.rb:1904727390": [ - [3, 1, 13253, "Metrics/BlockLength: Block has too many lines. [398/25]", 3611753358], - [30, 9, 10, "Style/MultilineBlockChain: Avoid multi-line chains of blocks.", 1099697163], - [87, 3, 1851, "Metrics/BlockLength: Block has too many lines. [40/25]", 3729571903], - [210, 3, 925, "Metrics/BlockLength: Block has too many lines. [35/25]", 2001100899], - [344, 3, 709, "Metrics/BlockLength: Block has too many lines. [27/25]", 3041950416], - [415, 3, 1074, "Metrics/BlockLength: Block has too many lines. [35/25]", 956635689], - [416, 5, 1026, "Metrics/BlockLength: Block has too many lines. [33/25]", 1993879652], - [461, 3, 1031, "Metrics/BlockLength: Block has too many lines. [31/25]", 35315996] - ], - "spec/ast/merge/source_region_report_support_spec.rb:3996528026": [ - [3, 1, 5448, "Metrics/BlockLength: Block has too many lines. [186/25]", 2713581049], - [4, 3, 112, "Lint/ConstantDefinitionInBlock: Do not define constants this way within a block.", 3709101366], - [6, 3, 295, "Lint/ConstantDefinitionInBlock: Do not define constants this way within a block.", 1625952400], - [17, 3, 1473, "Metrics/BlockLength: Block has too many lines. [49/25]", 1435042916], - [70, 3, 1887, "Metrics/BlockLength: Block has too many lines. [66/25]", 1773930426], - [159, 3, 1109, "Metrics/BlockLength: Block has too many lines. [38/25]", 1457507554] - ], - "spec/ast/merge/structural_edit/boundary_support_spec.rb:863387845": [ - [3, 1, 4226, "Metrics/BlockLength: Block has too many lines. [86/25]", 1889771490], - [16, 9, 42, "Lint/HashCompareByIdentity: Use `Hash#compare_by_identity` instead of using `object_id` for keys.", 1304492024], - [22, 9, 41, "Lint/HashCompareByIdentity: Use `Hash#compare_by_identity` instead of using `object_id` for keys.", 3828424401], - [59, 3, 1294, "Metrics/BlockLength: Block has too many lines. [26/25]", 3038774774] - ], - "spec/ast/merge/structural_edit/plan_set_spec.rb:3633263362": [ - [3, 1, 5945, "Metrics/BlockLength: Block has too many lines. [180/25]", 3883285271], - [14, 3, 2139, "Metrics/BlockLength: Block has too many lines. [72/25]", 3558415255], - [128, 3, 1412, "Metrics/BlockLength: Block has too many lines. [39/25]", 1216754705] - ], - "spec/ast/merge/structural_edit/remove_plan_spec.rb:3569534665": [ - [3, 1, 6442, "Metrics/BlockLength: Block has too many lines. [134/25]", 3440814588], - [39, 3, 3768, "Metrics/BlockLength: Block has too many lines. [75/25]", 876721813], - [127, 3, 1439, "Metrics/BlockLength: Block has too many lines. [29/25]", 3378195351] - ], - "spec/ast/merge/structural_edit/remove_plan_support_spec.rb:800158061": [ - [3, 1, 2893, "Metrics/BlockLength: Block has too many lines. [62/25]", 3748446914], - [16, 9, 43, "Lint/HashCompareByIdentity: Use `Hash#compare_by_identity` instead of using `object_id` for keys.", 3196404056], - [22, 9, 42, "Lint/HashCompareByIdentity: Use `Hash#compare_by_identity` instead of using `object_id` for keys.", 4116824817], - [29, 3, 2091, "Metrics/BlockLength: Block has too many lines. [39/25]", 1684933040], - [30, 5, 1653, "Metrics/BlockLength: Block has too many lines. [27/25]", 2456404305] - ], - "spec/ast/merge/structural_edit/splice_plan_spec.rb:3331205681": [ - [3, 1, 3159, "Metrics/BlockLength: Block has too many lines. [83/25]", 2234926397], - [16, 3, 1837, "Metrics/BlockLength: Block has too many lines. [46/25]", 2935991482], - [42, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5860750] - ], - "spec/ast/merge/text/conflict_resolver_spec.rb:3810004132": [ - [5, 1, 9102, "Metrics/BlockLength: Block has too many lines. [218/25]", 672115618], - [33, 3, 8206, "Metrics/BlockLength: Block has too many lines. [194/25]", 259803246], - [78, 5, 1920, "Metrics/BlockLength: Block has too many lines. [45/25]", 3965182334], - [139, 5, 1918, "Metrics/BlockLength: Block has too many lines. [44/25]", 3707046125] - ], - "spec/ast/merge/text/file_analysis_spec.rb:3430380445": [ - [5, 1, 8842, "Metrics/BlockLength: Block has too many lines. [205/25]", 4255187284], - [6, 3, 1323, "Metrics/BlockLength: Block has too many lines. [29/25]", 2518912953], - [47, 3, 1830, "Metrics/BlockLength: Block has too many lines. [43/25]", 3685770590], - [135, 3, 1620, "Metrics/BlockLength: Block has too many lines. [35/25]", 3089951119] - ], - "spec/ast/merge/text/line_node_spec.rb:1757790485": [ - [5, 1, 4739, "Metrics/BlockLength: Block has too many lines. [131/25]", 1487875238] - ], - "spec/ast/merge/text/merge_result_spec.rb:589380024": [ - [5, 1, 1541, "Metrics/BlockLength: Block has too many lines. [40/25]", 2828087992] - ], - "spec/ast/merge/text/section_splitter_spec.rb:804308722": [ - [4, 1, 5705, "Metrics/BlockLength: Block has too many lines. [209/25]", 4175363685], - [5, 3, 794, "Metrics/BlockLength: Block has too many lines. [28/25]", 2386862842], - [42, 3, 1126, "Metrics/BlockLength: Block has too many lines. [45/25]", 1507887296], - [95, 3, 746, "Metrics/BlockLength: Block has too many lines. [30/25]", 1759029412], - [131, 3, 1169, "Metrics/BlockLength: Block has too many lines. [45/25]", 1412318991], - [184, 3, 754, "Metrics/BlockLength: Block has too many lines. [30/25]", 2717556691], - [246, 1, 16648, "Metrics/BlockLength: Block has too many lines. [428/25]", 3166834694], - [370, 3, 1640, "Metrics/BlockLength: Block has too many lines. [46/25]", 2049342960], - [424, 3, 3237, "Metrics/BlockLength: Block has too many lines. [102/25]", 2357275144], - [540, 3, 3505, "Metrics/BlockLength: Block has too many lines. [67/25]", 2112469350], - [619, 3, 3586, "Metrics/BlockLength: Block has too many lines. [90/25]", 3866409298], - [620, 5, 1650, "Metrics/BlockLength: Block has too many lines. [48/25]", 289235626], - [622, 9, 1474, "Metrics/AbcSize: Assignment Branch Condition size for `split` is too high. [<8, 21, 7> 23.54/17]", 557655357], - [622, 9, 1474, "Metrics/MethodLength: Method has too many lines. [41/10]", 557655357], - [622, 9, 1474, "Metrics/PerceivedComplexity: Perceived complexity for `split` is too high. [9/8]", 557655357], - [628, 11, 1237, "Metrics/BlockLength: Block has too many lines. [33/25]", 1134667672], - [717, 29, 44, "Style/StringConcatenation: Prefer string interpolation to string concatenation.", 2169354946], - [723, 29, 44, "Style/StringConcatenation: Prefer string interpolation to string concatenation.", 2169354946], - [751, 1, 3128, "Metrics/BlockLength: Block has too many lines. [85/25]", 2082776744], - [769, 3, 1744, "Metrics/BlockLength: Block has too many lines. [46/25]", 223880162], - [770, 5, 1258, "Metrics/BlockLength: Block has too many lines. [31/25]", 2245422869] - ], - "spec/ast/merge/text/smart_merger_spec.rb:4128732567": [ - [3, 1, 8057, "Metrics/BlockLength: Block has too many lines. [210/25]", 1690443322], - [4, 3, 1135, "Metrics/BlockLength: Block has too many lines. [28/25]", 3788979655], - [58, 3, 4438, "Metrics/BlockLength: Block has too many lines. [106/25]", 2613192474], - [187, 3, 1053, "Metrics/BlockLength: Block has too many lines. [26/25]", 803567817], - [220, 3, 892, "Metrics/BlockLength: Block has too many lines. [28/25]", 2001100899] - ], - "spec/ast/merge/text/word_node_spec.rb:1457011521": [ - [5, 1, 3264, "Metrics/BlockLength: Block has too many lines. [74/25]", 677733430] - ], - "spec/ast/merge/token_match_refiner_spec.rb:3180314913": [ - [3, 1, 4000, "Metrics/BlockLength: Block has too many lines. [80/25]", 1630791278], - [8, 3, 2912, "Metrics/BlockLength: Block has too many lines. [60/25]", 529772148] - ], - "spec/ast/merge/trailing_groups/alignment_sort_spec.rb:1594915480": [ - [5, 1, 4710, "Metrics/BlockLength: Block has too many lines. [114/25]", 2499296583], - [14, 3, 2140, "Metrics/BlockLength: Block has too many lines. [47/25]", 3871799493], - [95, 3, 1482, "Metrics/BlockLength: Block has too many lines. [35/25]", 1088314263] - ], - "spec/ast/merge/trailing_groups/core_spec.rb:2651131504": [ - [5, 1, 9601, "Metrics/BlockLength: Block has too many lines. [242/25]", 598045669], - [22, 3, 3728, "Metrics/BlockLength: Block has too many lines. [87/25]", 1304580063], - [119, 3, 3931, "Metrics/BlockLength: Block has too many lines. [99/25]", 2464218479], - [186, 5, 1322, "Metrics/BlockLength: Block has too many lines. [30/25]", 427915501], - [187, 7, 1267, "Metrics/BlockLength: Block has too many lines. [28/25]", 861882691], - [245, 3, 1306, "Metrics/BlockLength: Block has too many lines. [34/25]", 86572459] - ], - "spec/ast/merge/trailing_groups/dest_iterate_spec.rb:3632880085": [ - [5, 1, 5523, "Metrics/BlockLength: Block has too many lines. [131/25]", 3077369183], - [19, 3, 3990, "Metrics/BlockLength: Block has too many lines. [91/25]", 593259616], - [39, 35, 12, "Style/SymbolProc: Pass `&:sig` as an argument to `lambda` instead of a block.", 3587754320], - [54, 33, 23, "Lint/HashCompareByIdentity: Use `Hash#compare_by_identity` instead of using `object_id` for keys.", 384283629], - [89, 35, 13, "Style/SymbolProc: Pass `&:name` as an argument to `lambda` instead of a block.", 3561384234], - [98, 35, 12, "Style/SymbolProc: Pass `&:sig` as an argument to `lambda` instead of a block.", 3587754320], - [113, 35, 12, "Style/SymbolProc: Pass `&:sig` as an argument to `lambda` instead of a block.", 3587754320] - ], - "spec/ast/merge/unresolved_policy_spec.rb:2561713656": [ - [3, 1, 1333, "Metrics/BlockLength: Block has too many lines. [33/25]", 4109547889] - ], - "spec/ast/merge/unresolved_review_state_spec.rb:3186871217": [ - [3, 1, 1038, "Metrics/BlockLength: Block has too many lines. [31/25]", 1325553035] - ], - "spec/ast/merge_rspec_conformance_fixtures_spec.rb:251774004": [ - [5, 1, 2119, "Metrics/BlockLength: Block has too many lines. [55/25]", 1724925683], - [6, 3, 1203, "Metrics/BlockLength: Block has too many lines. [29/25]", 3306863581] - ], - "spec/ast/merge_spec.rb:664670069": [ - [3, 1, 3113, "Metrics/BlockLength: Block has too many lines. [74/25]", 4034649501], - [9, 3, 2227, "Metrics/BlockLength: Block has too many lines. [51/25]", 578300230], - [10, 5, 2182, "Metrics/BlockLength: Block has too many lines. [49/25]", 2758871265] - ], - "spec/base_substrate_spec.rb:2864492094": [ - [5, 1, 5800, "Metrics/BlockLength: Block has too many lines. [143/25]", 784801982], - [6, 3, 192, "Lint/ConstantDefinitionInBlock: Do not define constants this way within a block.", 680981873], - [13, 3, 378, "Lint/ConstantDefinitionInBlock: Do not define constants this way within a block.", 1223797442], - [31, 3, 628, "Lint/ConstantDefinitionInBlock: Do not define constants this way within a block.", 2123191050], - [53, 3, 429, "Lint/ConstantDefinitionInBlock: Do not define constants this way within a block.", 3536712197], - [69, 3, 24, "Lint/ConstantDefinitionInBlock: Do not define constants this way within a block.", 2280792512], - [70, 3, 78, "Lint/ConstantDefinitionInBlock: Do not define constants this way within a block.", 604224776], - [72, 3, 146, "Lint/ConstantDefinitionInBlock: Do not define constants this way within a block.", 3315091322] - ], - "spec/fixtures_integration_spec.rb:1733315771": [ - [595, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5859109], - [758, 121, 54, "Layout/LineLength: Line is too long. [174/120]", 576909008], - [881, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2087900170], - [1810, 3, 816, "Metrics/MethodLength: Method has too many lines. [13/10]", 170960660], - [1810, 39, 213, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [10/5]", 635200700], - [1811, 121, 27, "Layout/LineLength: Line is too long. [147/120]", 3976306097], - [1835, 38, 80, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 3297939075], - [1920, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1745553512], - [1921, 121, 38, "Layout/LineLength: Line is too long. [158/120]", 118067488], - [1922, 121, 5, "Layout/LineLength: Line is too long. [125/120]", 196190368], - [1923, 121, 41, "Layout/LineLength: Line is too long. [161/120]", 3371256193], - [2094, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 3241114703], - [2432, 121, 1, "Layout/LineLength: Line is too long. [121/120]", 177548], - [2571, 121, 1, "Layout/LineLength: Line is too long. [121/120]", 177548], - [2995, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 3697593604], - [2996, 121, 1, "Layout/LineLength: Line is too long. [121/120]", 177548], - [3117, 121, 5, "Layout/LineLength: Line is too long. [125/120]", 179435314], - [3126, 121, 34, "Layout/LineLength: Line is too long. [154/120]", 1182194285], - [3128, 121, 28, "Layout/LineLength: Line is too long. [148/120]", 3886107031], - [3155, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1751849111], - [3156, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 1519587684], - [3157, 121, 11, "Layout/LineLength: Line is too long. [131/120]", 4086262880], - [3174, 121, 10, "Layout/LineLength: Line is too long. [130/120]", 3568081822], - [3175, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 1776876782], - [3177, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5858795], - [3178, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1751849111], - [3180, 121, 73, "Layout/LineLength: Line is too long. [193/120]", 3322243646], - [3182, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1715153206], - [3183, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5858795], - [3184, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 504997180], - [3185, 121, 44, "Layout/LineLength: Line is too long. [164/120]", 1146860021], - [3186, 121, 38, "Layout/LineLength: Line is too long. [158/120]", 2312101607], - [3187, 121, 42, "Layout/LineLength: Line is too long. [162/120]", 1423779161], - [3188, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1900897138], - [3189, 121, 10, "Layout/LineLength: Line is too long. [130/120]", 1689840383], - [3190, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 1589056236], - [3192, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 763176550], - [3198, 121, 16, "Layout/LineLength: Line is too long. [136/120]", 3957871310], - [3200, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 763176550], - [3202, 121, 10, "Layout/LineLength: Line is too long. [130/120]", 919916608], - [3203, 121, 10, "Layout/LineLength: Line is too long. [130/120]", 919916608], - [3204, 121, 16, "Layout/LineLength: Line is too long. [136/120]", 3957871310], - [3205, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 4073040612], - [3206, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 763176550], - [3207, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 667593075], - [3209, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1310972770], - [3210, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 311387795], - [3211, 121, 18, "Layout/LineLength: Line is too long. [138/120]", 724840266], - [3212, 121, 22, "Layout/LineLength: Line is too long. [142/120]", 2555878310], - [3213, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1781078972], - [3214, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5858795], - [3217, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5858795], - [3218, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 1658060570], - [3219, 121, 40, "Layout/LineLength: Line is too long. [160/120]", 3085728851], - [3220, 121, 44, "Layout/LineLength: Line is too long. [164/120]", 3129400559], - [3221, 121, 10, "Layout/LineLength: Line is too long. [130/120]", 3197516464], - [3222, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2087771520], - [3223, 121, 22, "Layout/LineLength: Line is too long. [142/120]", 3837194228], - [3224, 121, 42, "Layout/LineLength: Line is too long. [162/120]", 1312323543], - [3225, 121, 46, "Layout/LineLength: Line is too long. [166/120]", 2356847623], - [3226, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5858795], - [3227, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 3428073441], - [3228, 121, 40, "Layout/LineLength: Line is too long. [160/120]", 2891080552], - [3229, 121, 44, "Layout/LineLength: Line is too long. [164/120]", 3080737172], - [3230, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 170445026], - [3231, 121, 32, "Layout/LineLength: Line is too long. [152/120]", 3240051869], - [3232, 121, 52, "Layout/LineLength: Line is too long. [172/120]", 4266052680], - [3233, 121, 56, "Layout/LineLength: Line is too long. [176/120]", 3376297786], - [3234, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 398435913], - [3235, 121, 26, "Layout/LineLength: Line is too long. [146/120]", 4134940256], - [3236, 121, 46, "Layout/LineLength: Line is too long. [166/120]", 30370035], - [3237, 121, 50, "Layout/LineLength: Line is too long. [170/120]", 2862546359], - [3238, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 1901388514], - [3239, 121, 38, "Layout/LineLength: Line is too long. [158/120]", 838864274], - [3240, 121, 58, "Layout/LineLength: Line is too long. [178/120]", 3437460384], - [3241, 121, 62, "Layout/LineLength: Line is too long. [182/120]", 1567003152], - [3242, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 2609066305], - [3243, 121, 32, "Layout/LineLength: Line is too long. [152/120]", 4043187090], - [3244, 121, 52, "Layout/LineLength: Line is too long. [172/120]", 3866430009], - [3245, 121, 56, "Layout/LineLength: Line is too long. [176/120]", 2182699083], - [3246, 121, 26, "Layout/LineLength: Line is too long. [146/120]", 3958792129], - [3247, 121, 44, "Layout/LineLength: Line is too long. [164/120]", 3449926560], - [3248, 121, 64, "Layout/LineLength: Line is too long. [184/120]", 399774089], - [3249, 121, 68, "Layout/LineLength: Line is too long. [188/120]", 2119246799], - [3251, 121, 32, "Layout/LineLength: Line is too long. [152/120]", 3592658842], - [3252, 121, 18, "Layout/LineLength: Line is too long. [138/120]", 2905723409], - [3253, 121, 38, "Layout/LineLength: Line is too long. [158/120]", 3930305198], - [3254, 121, 42, "Layout/LineLength: Line is too long. [162/120]", 4186230052], - [3255, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5858795], - [3256, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 2700200720], - [3257, 121, 40, "Layout/LineLength: Line is too long. [160/120]", 1630526402], - [3258, 121, 44, "Layout/LineLength: Line is too long. [164/120]", 3669244926], - [3259, 121, 18, "Layout/LineLength: Line is too long. [138/120]", 2814234644], - [3260, 121, 36, "Layout/LineLength: Line is too long. [156/120]", 3109415933], - [3261, 121, 56, "Layout/LineLength: Line is too long. [176/120]", 3643275044], - [3262, 121, 60, "Layout/LineLength: Line is too long. [180/120]", 3825290660], - [3263, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1751849111], - [3264, 121, 24, "Layout/LineLength: Line is too long. [144/120]", 4112285398], - [3265, 121, 44, "Layout/LineLength: Line is too long. [164/120]", 1684279672], - [3266, 121, 48, "Layout/LineLength: Line is too long. [168/120]", 1616506266], - [3268, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5858795], - [3269, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 1330093223], - [3270, 121, 40, "Layout/LineLength: Line is too long. [160/120]", 4084555566], - [3271, 121, 44, "Layout/LineLength: Line is too long. [164/120]", 2466867154], - [3272, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 4088314613], - [3273, 121, 26, "Layout/LineLength: Line is too long. [146/120]", 2416893689], - [3274, 121, 46, "Layout/LineLength: Line is too long. [166/120]", 683312682], - [3275, 121, 50, "Layout/LineLength: Line is too long. [170/120]", 2516517934], - [3276, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 2414563355], - [3277, 121, 38, "Layout/LineLength: Line is too long. [158/120]", 2232595211], - [3278, 121, 58, "Layout/LineLength: Line is too long. [178/120]", 2940789369], - [3279, 121, 62, "Layout/LineLength: Line is too long. [182/120]", 941259913], - [3280, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 2133508098], - [3281, 121, 26, "Layout/LineLength: Line is too long. [146/120]", 1621975014], - [3282, 121, 46, "Layout/LineLength: Line is too long. [166/120]", 35985461], - [3283, 121, 50, "Layout/LineLength: Line is too long. [170/120]", 746016305], - [3284, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 435488100], - [3285, 121, 38, "Layout/LineLength: Line is too long. [158/120]", 2581129172], - [3286, 121, 58, "Layout/LineLength: Line is too long. [178/120]", 3495900774], - [3287, 121, 62, "Layout/LineLength: Line is too long. [182/120]", 1413120342], - [3288, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5858795], - [3289, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 2333800791], - [3290, 121, 40, "Layout/LineLength: Line is too long. [160/120]", 2576906206], - [3291, 121, 44, "Layout/LineLength: Line is too long. [164/120]", 2986659874], - [3292, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 2811932564], - [3293, 121, 32, "Layout/LineLength: Line is too long. [152/120]", 1970813291], - [3294, 121, 52, "Layout/LineLength: Line is too long. [172/120]", 2904941246], - [3295, 121, 56, "Layout/LineLength: Line is too long. [176/120]", 3745922508], - [3296, 121, 32, "Layout/LineLength: Line is too long. [152/120]", 735247237], - [3297, 121, 50, "Layout/LineLength: Line is too long. [170/120]", 3731320885], - [3298, 121, 70, "Layout/LineLength: Line is too long. [190/120]", 3896022034], - [3299, 121, 74, "Layout/LineLength: Line is too long. [194/120]", 2827048584], - [3300, 121, 44, "Layout/LineLength: Line is too long. [164/120]", 2548596663], - [3301, 121, 62, "Layout/LineLength: Line is too long. [182/120]", 3812352018], - [3302, 121, 82, "Layout/LineLength: Line is too long. [202/120]", 1280243910], - [3303, 121, 86, "Layout/LineLength: Line is too long. [206/120]", 1742643292], - [3304, 121, 40, "Layout/LineLength: Line is too long. [160/120]", 3056442430], - [3305, 121, 58, "Layout/LineLength: Line is too long. [178/120]", 3144363287], - [3306, 121, 78, "Layout/LineLength: Line is too long. [198/120]", 477297993], - [3307, 121, 82, "Layout/LineLength: Line is too long. [202/120]", 3657857971], - [3308, 121, 52, "Layout/LineLength: Line is too long. [172/120]", 3913984414], - [3309, 121, 70, "Layout/LineLength: Line is too long. [190/120]", 336201058], - [3310, 121, 90, "Layout/LineLength: Line is too long. [210/120]", 485418789], - [3311, 121, 94, "Layout/LineLength: Line is too long. [214/120]", 453253839], - [3312, 121, 32, "Layout/LineLength: Line is too long. [152/120]", 3673833034], - [3313, 121, 50, "Layout/LineLength: Line is too long. [170/120]", 1552836890], - [3314, 121, 70, "Layout/LineLength: Line is too long. [190/120]", 2714635965], - [3315, 121, 74, "Layout/LineLength: Line is too long. [194/120]", 9336999], - [3316, 121, 44, "Layout/LineLength: Line is too long. [164/120]", 584857208], - [3317, 121, 62, "Layout/LineLength: Line is too long. [182/120]", 1394865213], - [3318, 121, 82, "Layout/LineLength: Line is too long. [202/120]", 3973222761], - [3319, 121, 86, "Layout/LineLength: Line is too long. [206/120]", 2020040051], - [3320, 121, 34, "Layout/LineLength: Line is too long. [154/120]", 3060994335], - [3321, 121, 52, "Layout/LineLength: Line is too long. [172/120]", 196286917], - [3322, 121, 72, "Layout/LineLength: Line is too long. [192/120]", 4168514178], - [3323, 121, 76, "Layout/LineLength: Line is too long. [196/120]", 810581246], - [3324, 121, 46, "Layout/LineLength: Line is too long. [166/120]", 1473417372], - [3325, 121, 64, "Layout/LineLength: Line is too long. [184/120]", 3008376885], - [3326, 121, 84, "Layout/LineLength: Line is too long. [204/120]", 454816400], - [3327, 121, 88, "Layout/LineLength: Line is too long. [208/120]", 1416223705], - [3328, 121, 48, "Layout/LineLength: Line is too long. [168/120]", 2896813919], - [3329, 121, 66, "Layout/LineLength: Line is too long. [186/120]", 957293983], - [3330, 121, 86, "Layout/LineLength: Line is too long. [206/120]", 2118117430], - [3331, 121, 90, "Layout/LineLength: Line is too long. [210/120]", 1367404612], - [3332, 121, 64, "Layout/LineLength: Line is too long. [184/120]", 2459902188], - [3333, 121, 62, "Layout/LineLength: Line is too long. [182/120]", 461483815], - [3334, 121, 62, "Layout/LineLength: Line is too long. [182/120]", 2791596520], - [3335, 121, 60, "Layout/LineLength: Line is too long. [180/120]", 203085787], - [3336, 121, 64, "Layout/LineLength: Line is too long. [184/120]", 2942095139], - [3337, 121, 80, "Layout/LineLength: Line is too long. [200/120]", 131861965], - [3338, 121, 86, "Layout/LineLength: Line is too long. [206/120]", 3340827551], - [3339, 121, 90, "Layout/LineLength: Line is too long. [210/120]", 102582610], - [3340, 121, 94, "Layout/LineLength: Line is too long. [214/120]", 762789354], - [3341, 121, 90, "Layout/LineLength: Line is too long. [210/120]", 3478337442], - [3342, 121, 112, "Layout/LineLength: Line is too long. [232/120]", 4010607435], - [3343, 121, 132, "Layout/LineLength: Line is too long. [252/120]", 3754747587], - [3344, 121, 136, "Layout/LineLength: Line is too long. [256/120]", 379336923], - [3345, 121, 108, "Layout/LineLength: Line is too long. [228/120]", 3366353902], - [3346, 121, 128, "Layout/LineLength: Line is too long. [248/120]", 1686898289], - [3347, 121, 132, "Layout/LineLength: Line is too long. [252/120]", 2005192241], - [3348, 121, 104, "Layout/LineLength: Line is too long. [224/120]", 1868634464], - [3349, 121, 124, "Layout/LineLength: Line is too long. [244/120]", 3939743614], - [3350, 121, 128, "Layout/LineLength: Line is too long. [248/120]", 2978506702], - [3351, 121, 98, "Layout/LineLength: Line is too long. [218/120]", 3909866928], - [3352, 121, 118, "Layout/LineLength: Line is too long. [238/120]", 2853032177], - [3353, 121, 122, "Layout/LineLength: Line is too long. [242/120]", 2968366309], - [3354, 121, 82, "Layout/LineLength: Line is too long. [202/120]", 1753663643], - [3355, 121, 102, "Layout/LineLength: Line is too long. [222/120]", 3387619436], - [3356, 121, 106, "Layout/LineLength: Line is too long. [226/120]", 197895496], - [3357, 121, 78, "Layout/LineLength: Line is too long. [198/120]", 576181861], - [3358, 121, 98, "Layout/LineLength: Line is too long. [218/120]", 2809313444], - [3359, 121, 102, "Layout/LineLength: Line is too long. [222/120]", 3963067112], - [3360, 121, 80, "Layout/LineLength: Line is too long. [200/120]", 1121380327], - [3361, 121, 100, "Layout/LineLength: Line is too long. [220/120]", 31591211], - [3362, 121, 104, "Layout/LineLength: Line is too long. [224/120]", 1946129497], - [3363, 121, 80, "Layout/LineLength: Line is too long. [200/120]", 767185096], - [3364, 121, 100, "Layout/LineLength: Line is too long. [220/120]", 1092646020], - [3365, 121, 104, "Layout/LineLength: Line is too long. [224/120]", 1328841270], - [3366, 121, 74, "Layout/LineLength: Line is too long. [194/120]", 2663749624], - [3367, 121, 74, "Layout/LineLength: Line is too long. [194/120]", 430318647], - [3368, 121, 72, "Layout/LineLength: Line is too long. [192/120]", 1650234037], - [3369, 121, 76, "Layout/LineLength: Line is too long. [196/120]", 1082269805], - [3370, 121, 92, "Layout/LineLength: Line is too long. [212/120]", 316397809], - [3371, 121, 92, "Layout/LineLength: Line is too long. [212/120]", 3145391348], - [3372, 121, 112, "Layout/LineLength: Line is too long. [232/120]", 2808088654], - [3373, 121, 116, "Layout/LineLength: Line is too long. [236/120]", 1035513748], - [3374, 121, 92, "Layout/LineLength: Line is too long. [212/120]", 2552800539], - [3375, 121, 112, "Layout/LineLength: Line is too long. [232/120]", 1727699169], - [3376, 121, 116, "Layout/LineLength: Line is too long. [236/120]", 1171566267], - [3377, 121, 90, "Layout/LineLength: Line is too long. [210/120]", 2994775049], - [3378, 121, 110, "Layout/LineLength: Line is too long. [230/120]", 3860489151], - [3379, 121, 114, "Layout/LineLength: Line is too long. [234/120]", 959496607], - [3380, 121, 94, "Layout/LineLength: Line is too long. [214/120]", 1694222439], - [3381, 121, 114, "Layout/LineLength: Line is too long. [234/120]", 1501186331], - [3382, 121, 118, "Layout/LineLength: Line is too long. [238/120]", 4059659418], - [3383, 121, 110, "Layout/LineLength: Line is too long. [230/120]", 1899868779], - [3384, 121, 130, "Layout/LineLength: Line is too long. [250/120]", 323324279], - [3385, 121, 134, "Layout/LineLength: Line is too long. [254/120]", 3956414359], - [3386, 121, 98, "Layout/LineLength: Line is too long. [218/120]", 3506644741], - [3387, 121, 116, "Layout/LineLength: Line is too long. [236/120]", 936139074], - [3388, 121, 136, "Layout/LineLength: Line is too long. [256/120]", 4153213512], - [3389, 121, 140, "Layout/LineLength: Line is too long. [260/120]", 1491976338], - [3390, 121, 102, "Layout/LineLength: Line is too long. [222/120]", 4061753206], - [3391, 121, 106, "Layout/LineLength: Line is too long. [226/120]", 2410434304], - [3392, 121, 124, "Layout/LineLength: Line is too long. [244/120]", 3518300264], - [3393, 121, 144, "Layout/LineLength: Line is too long. [264/120]", 1040696046], - [3394, 121, 148, "Layout/LineLength: Line is too long. [268/120]", 139604188], - [3395, 121, 120, "Layout/LineLength: Line is too long. [240/120]", 231937793], - [3396, 121, 140, "Layout/LineLength: Line is too long. [260/120]", 1835509805], - [3397, 121, 144, "Layout/LineLength: Line is too long. [264/120]", 1629218396], - [3398, 121, 82, "Layout/LineLength: Line is too long. [202/120]", 2312875700], - [3399, 121, 102, "Layout/LineLength: Line is too long. [222/120]", 2933374083], - [3400, 121, 106, "Layout/LineLength: Line is too long. [226/120]", 1719349671], - [3401, 121, 76, "Layout/LineLength: Line is too long. [196/120]", 2555579810], - [3402, 121, 94, "Layout/LineLength: Line is too long. [214/120]", 2023551624], - [3403, 121, 114, "Layout/LineLength: Line is too long. [234/120]", 955231924], - [3404, 121, 118, "Layout/LineLength: Line is too long. [238/120]", 4232993781], - [3405, 121, 60, "Layout/LineLength: Line is too long. [180/120]", 3472954835], - [3406, 121, 78, "Layout/LineLength: Line is too long. [198/120]", 3211922285], - [3407, 121, 98, "Layout/LineLength: Line is too long. [218/120]", 2874956332], - [3408, 121, 102, "Layout/LineLength: Line is too long. [222/120]", 1360335840], - [3409, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 2135379556], - [3410, 121, 32, "Layout/LineLength: Line is too long. [152/120]", 3242768475], - [3411, 121, 52, "Layout/LineLength: Line is too long. [172/120]", 2789115918], - [3412, 121, 56, "Layout/LineLength: Line is too long. [176/120]", 3346448124], - [3413, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 1538469817], - [3414, 121, 34, "Layout/LineLength: Line is too long. [154/120]", 1543041113], - [3415, 121, 38, "Layout/LineLength: Line is too long. [158/120]", 3344741438], - [3416, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 2188404009], - [3417, 121, 26, "Layout/LineLength: Line is too long. [146/120]", 1330398779], - [3418, 121, 46, "Layout/LineLength: Line is too long. [166/120]", 332468826], - [3419, 121, 50, "Layout/LineLength: Line is too long. [170/120]", 1905397598], - [3420, 121, 28, "Layout/LineLength: Line is too long. [148/120]", 438831062], - [3421, 121, 48, "Layout/LineLength: Line is too long. [168/120]", 3377667334], - [3422, 121, 52, "Layout/LineLength: Line is too long. [172/120]", 3232541734], - [3424, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 2130930429], - [3425, 121, 24, "Layout/LineLength: Line is too long. [144/120]", 3684939371], - [3427, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 2361951097], - [3428, 121, 32, "Layout/LineLength: Line is too long. [152/120]", 1211447462], - [3429, 121, 52, "Layout/LineLength: Line is too long. [172/120]", 3309872691], - [3430, 121, 56, "Layout/LineLength: Line is too long. [176/120]", 360053761], - [3431, 121, 16, "Layout/LineLength: Line is too long. [136/120]", 1310136493], - [3432, 121, 34, "Layout/LineLength: Line is too long. [154/120]", 1950686342], - [3433, 121, 54, "Layout/LineLength: Line is too long. [174/120]", 1397845826], - [3434, 121, 58, "Layout/LineLength: Line is too long. [178/120]", 4191304724], - [3435, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 2354128498], - [3436, 121, 30, "Layout/LineLength: Line is too long. [150/120]", 1865717453], - [3437, 121, 50, "Layout/LineLength: Line is too long. [170/120]", 24220542], - [3438, 121, 54, "Layout/LineLength: Line is too long. [174/120]", 2618612673], - [3441, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 3422918867], - [3442, 121, 16, "Layout/LineLength: Line is too long. [136/120]", 3689431739], - [3486, 121, 47, "Layout/LineLength: Line is too long. [167/120]", 4093564799], - [3492, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1662653970], - [3493, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 3967501655], - [3494, 121, 17, "Layout/LineLength: Line is too long. [137/120]", 2178516622], - [3495, 121, 40, "Layout/LineLength: Line is too long. [160/120]", 1345346561], - [3509, 121, 3, "Layout/LineLength: Line is too long. [123/120]", 193466072], - [3629, 121, 23, "Layout/LineLength: Line is too long. [143/120]", 3612393276], - [3630, 121, 9, "Layout/LineLength: Line is too long. [129/120]", 797303985], - [3633, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 1606320605], - [3653, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 1776876782], - [3657, 121, 7, "Layout/LineLength: Line is too long. [127/120]", 828742791], - [3677, 121, 31, "Layout/LineLength: Line is too long. [151/120]", 3294617581], - [3687, 121, 22, "Layout/LineLength: Line is too long. [142/120]", 3519842846], - [3697, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 1966440909], - [3698, 121, 7, "Layout/LineLength: Line is too long. [127/120]", 830053864], - [3704, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 1606320605], - [3727, 121, 16, "Layout/LineLength: Line is too long. [136/120]", 1340744311], - [3746, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1741893077], - [3747, 121, 7, "Layout/LineLength: Line is too long. [127/120]", 830053865], - [3751, 121, 3, "Layout/LineLength: Line is too long. [123/120]", 193405204], - [3765, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 1401226501], - [3768, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2085352569], - [3771, 121, 17, "Layout/LineLength: Line is too long. [137/120]", 696523922], - [3786, 121, 5, "Layout/LineLength: Line is too long. [125/120]", 182097675], - [3796, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 2746826653], - [4212, 121, 19, "Layout/LineLength: Line is too long. [139/120]", 1138870161], - [4774, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5862609], - [4785, 121, 13, "Layout/LineLength: Line is too long. [133/120]", 2132299307], - [4832, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2087775098], - [4843, 121, 15, "Layout/LineLength: Line is too long. [135/120]", 757851079], - [4879, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5862609], - [4890, 121, 13, "Layout/LineLength: Line is too long. [133/120]", 441649198], - [4913, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2087903295], - [4925, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 170442008], - [4934, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 2102137893], - [4936, 121, 25, "Layout/LineLength: Line is too long. [145/120]", 1888875443], - [4973, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 398433651], - [4984, 121, 19, "Layout/LineLength: Line is too long. [139/120]", 3921367744], - [5007, 121, 10, "Layout/LineLength: Line is too long. [130/120]", 2422819473], - [5013, 121, 5, "Layout/LineLength: Line is too long. [125/120]", 194583095], - [5019, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 1901385496], - [5028, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 490810486], - [5030, 121, 31, "Layout/LineLength: Line is too long. [151/120]", 586287746], - [5034, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1310969752], - [5054, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2087389205], - [5066, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 2609063547], - [5075, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 2102137893], - [5077, 121, 25, "Layout/LineLength: Line is too long. [145/120]", 1370761696], - [5100, 121, 16, "Layout/LineLength: Line is too long. [136/120]", 2208661169], - [5106, 121, 11, "Layout/LineLength: Line is too long. [131/120]", 1862604658], - [5112, 121, 26, "Layout/LineLength: Line is too long. [146/120]", 3958789371], - [5121, 121, 18, "Layout/LineLength: Line is too long. [138/120]", 3449594464], - [5123, 121, 37, "Layout/LineLength: Line is too long. [157/120]", 692050524], - [5127, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 802172558], - [5197, 121, 11, "Layout/LineLength: Line is too long. [131/120]", 2406691660], - [5232, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5862609], - [5243, 121, 13, "Layout/LineLength: Line is too long. [133/120]", 1811982742], - [5270, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 2562189319], - [5276, 121, 3, "Layout/LineLength: Line is too long. [123/120]", 193430346], - [5282, 121, 18, "Layout/LineLength: Line is too long. [138/120]", 2814237166], - [5291, 121, 10, "Layout/LineLength: Line is too long. [130/120]", 2189106693], - [5293, 121, 29, "Layout/LineLength: Line is too long. [149/120]", 3874870868], - [5297, 121, 5, "Layout/LineLength: Line is too long. [125/120]", 179474914], - [5330, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1751845165], - [5341, 121, 17, "Layout/LineLength: Line is too long. [137/120]", 2617230371], - [5345, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5862609], - [5386, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5862609], - [5397, 121, 13, "Layout/LineLength: Line is too long. [133/120]", 3793790598], - [5432, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 4088312783], - [5443, 121, 19, "Layout/LineLength: Line is too long. [139/120]", 3220724736], - [5447, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2087899888], - [5466, 121, 10, "Layout/LineLength: Line is too long. [130/120]", 2552888401], - [5472, 121, 5, "Layout/LineLength: Line is too long. [125/120]", 194583095], - [5478, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 2414559905], - [5487, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 626762179], - [5489, 121, 31, "Layout/LineLength: Line is too long. [151/120]", 3969284923], - [5493, 121, 16, "Layout/LineLength: Line is too long. [136/120]", 1893261414], - [5525, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 2133507320], - [5536, 121, 19, "Layout/LineLength: Line is too long. [139/120]", 2101353476], - [5540, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2087685705], - [5559, 121, 10, "Layout/LineLength: Line is too long. [130/120]", 2431380437], - [5565, 121, 5, "Layout/LineLength: Line is too long. [125/120]", 194583095], - [5571, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 435489438], - [5580, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 1520878209], - [5582, 121, 31, "Layout/LineLength: Line is too long. [151/120]", 2238995076], - [5586, 121, 16, "Layout/LineLength: Line is too long. [136/120]", 2789405913], - [5619, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5862609], - [5630, 121, 13, "Layout/LineLength: Line is too long. [133/120]", 3409328196], - [5653, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2087858069], - [5665, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 2811935086], - [5674, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 2102137893], - [5676, 121, 25, "Layout/LineLength: Line is too long. [145/120]", 1113346693], - [5680, 121, 10, "Layout/LineLength: Line is too long. [130/120]", 3227128786], - [5700, 121, 22, "Layout/LineLength: Line is too long. [142/120]", 48793812], - [5706, 121, 17, "Layout/LineLength: Line is too long. [137/120]", 338440584], - [5712, 121, 32, "Layout/LineLength: Line is too long. [152/120]", 735248703], - [5721, 121, 24, "Layout/LineLength: Line is too long. [144/120]", 927473097], - [5723, 121, 43, "Layout/LineLength: Line is too long. [163/120]", 1394536741], - [5727, 121, 18, "Layout/LineLength: Line is too long. [138/120]", 3134012967], - [5746, 121, 34, "Layout/LineLength: Line is too long. [154/120]", 2967615316], - [5752, 121, 29, "Layout/LineLength: Line is too long. [149/120]", 2810710931], - [5758, 121, 44, "Layout/LineLength: Line is too long. [164/120]", 2548594701], - [5761, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5860796], - [5763, 121, 5, "Layout/LineLength: Line is too long. [125/120]", 182097675], - [5767, 121, 36, "Layout/LineLength: Line is too long. [156/120]", 3549194295], - [5769, 121, 55, "Layout/LineLength: Line is too long. [175/120]", 1074004741], - [5773, 121, 30, "Layout/LineLength: Line is too long. [150/120]", 2874423564], - [5776, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2087576526], - [5778, 121, 5, "Layout/LineLength: Line is too long. [125/120]", 182097675], - [5793, 121, 30, "Layout/LineLength: Line is too long. [150/120]", 1696848307], - [5799, 121, 25, "Layout/LineLength: Line is too long. [145/120]", 2883501659], - [5805, 121, 40, "Layout/LineLength: Line is too long. [160/120]", 3056443076], - [5810, 121, 3, "Layout/LineLength: Line is too long. [123/120]", 193405204], - [5814, 121, 32, "Layout/LineLength: Line is too long. [152/120]", 1487412605], - [5816, 121, 51, "Layout/LineLength: Line is too long. [171/120]", 2021571284], - [5820, 121, 26, "Layout/LineLength: Line is too long. [146/120]", 1975782995], - [5823, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5860796], - [5825, 121, 3, "Layout/LineLength: Line is too long. [123/120]", 193405204], - [5830, 121, 5, "Layout/LineLength: Line is too long. [125/120]", 183236849], - [5839, 121, 42, "Layout/LineLength: Line is too long. [162/120]", 856018753], - [5842, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5862609], - [5845, 121, 37, "Layout/LineLength: Line is too long. [157/120]", 2146546324], - [5851, 121, 52, "Layout/LineLength: Line is too long. [172/120]", 3913983076], - [5854, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 3491931666], - [5856, 121, 9, "Layout/LineLength: Line is too long. [129/120]", 3536323546], - [5860, 121, 44, "Layout/LineLength: Line is too long. [164/120]", 356581191], - [5862, 121, 63, "Layout/LineLength: Line is too long. [183/120]", 4144657639], - [5866, 121, 38, "Layout/LineLength: Line is too long. [158/120]", 1478616653], - [5869, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 1774852021], - [5871, 121, 9, "Layout/LineLength: Line is too long. [129/120]", 3536323546], - [5886, 121, 22, "Layout/LineLength: Line is too long. [142/120]", 3884289787], - [5892, 121, 17, "Layout/LineLength: Line is too long. [137/120]", 1001503687], - [5898, 121, 32, "Layout/LineLength: Line is too long. [152/120]", 3673836976], - [5907, 121, 24, "Layout/LineLength: Line is too long. [144/120]", 3164908550], - [5909, 121, 43, "Layout/LineLength: Line is too long. [163/120]", 1134300778], - [5913, 121, 18, "Layout/LineLength: Line is too long. [138/120]", 1797165224], - [5932, 121, 34, "Layout/LineLength: Line is too long. [154/120]", 2508143995], - [5938, 121, 29, "Layout/LineLength: Line is too long. [149/120]", 3002532188], - [5944, 121, 44, "Layout/LineLength: Line is too long. [164/120]", 584857986], - [5947, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5860796], - [5949, 121, 5, "Layout/LineLength: Line is too long. [125/120]", 182097675], - [5953, 121, 36, "Layout/LineLength: Line is too long. [156/120]", 749691384], - [5955, 121, 55, "Layout/LineLength: Line is too long. [175/120]", 3389354954], - [5959, 121, 30, "Layout/LineLength: Line is too long. [150/120]", 3402045699], - [5962, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2087576526], - [5964, 121, 5, "Layout/LineLength: Line is too long. [125/120]", 182097675], - [5978, 121, 24, "Layout/LineLength: Line is too long. [144/120]", 2447716612], - [5984, 121, 19, "Layout/LineLength: Line is too long. [139/120]", 3201685099], - [5990, 121, 34, "Layout/LineLength: Line is too long. [154/120]", 3060990885], - [5999, 121, 26, "Layout/LineLength: Line is too long. [146/120]", 29396315], - [6001, 121, 45, "Layout/LineLength: Line is too long. [165/120]", 1228645365], - [6005, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 1436742837], - [6024, 121, 36, "Layout/LineLength: Line is too long. [156/120]", 716917214], - [6030, 121, 31, "Layout/LineLength: Line is too long. [151/120]", 2175814211], - [6036, 121, 46, "Layout/LineLength: Line is too long. [166/120]", 1473420390], - [6039, 121, 3, "Layout/LineLength: Line is too long. [123/120]", 193433391], - [6041, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1422839111], - [6045, 121, 38, "Layout/LineLength: Line is too long. [158/120]", 1571170198], - [6047, 121, 57, "Layout/LineLength: Line is too long. [177/120]", 2175059093], - [6051, 121, 32, "Layout/LineLength: Line is too long. [152/120]", 3886666417], - [6054, 121, 5, "Layout/LineLength: Line is too long. [125/120]", 176753677], - [6056, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1422839111], - [6072, 121, 38, "Layout/LineLength: Line is too long. [158/120]", 3471319495], - [6078, 121, 33, "Layout/LineLength: Line is too long. [153/120]", 1274038477], - [6084, 121, 48, "Layout/LineLength: Line is too long. [168/120]", 2896814693], - [6087, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2087576526], - [6089, 121, 7, "Layout/LineLength: Line is too long. [127/120]", 4114086530], - [6093, 121, 40, "Layout/LineLength: Line is too long. [160/120]", 250433828], - [6095, 121, 59, "Layout/LineLength: Line is too long. [179/120]", 3910556848], - [6099, 121, 34, "Layout/LineLength: Line is too long. [154/120]", 4002014976], - [6102, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 3491931666], - [6104, 121, 7, "Layout/LineLength: Line is too long. [127/120]", 4114086530], - [6198, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5861664], - [6212, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2087932582], - [6226, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5861664], - [6242, 121, 80, "Layout/LineLength: Line is too long. [200/120]", 876012844], - [6244, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1756764194], - [6245, 121, 21, "Layout/LineLength: Line is too long. [141/120]", 4173216735], - [6248, 121, 75, "Layout/LineLength: Line is too long. [195/120]", 911964425], - [6249, 121, 5, "Layout/LineLength: Line is too long. [125/120]", 173266907], - [6250, 121, 11, "Layout/LineLength: Line is too long. [131/120]", 1412705933], - [6253, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1756764194], - [6254, 121, 90, "Layout/LineLength: Line is too long. [210/120]", 2605683750], - [6257, 121, 25, "Layout/LineLength: Line is too long. [145/120]", 3182252139], - [6259, 121, 28, "Layout/LineLength: Line is too long. [148/120]", 1652557742], - [6263, 121, 82, "Layout/LineLength: Line is too long. [202/120]", 2240437058], - [6264, 121, 5, "Layout/LineLength: Line is too long. [125/120]", 173266907], - [6265, 121, 101, "Layout/LineLength: Line is too long. [221/120]", 3694598076], - [6267, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5861152], - [6268, 121, 5, "Layout/LineLength: Line is too long. [125/120]", 179079542], - [6269, 121, 76, "Layout/LineLength: Line is too long. [196/120]", 3528944411], - [6272, 121, 27, "Layout/LineLength: Line is too long. [147/120]", 3020159378], - [6274, 121, 28, "Layout/LineLength: Line is too long. [148/120]", 1652557742], - [6280, 121, 84, "Layout/LineLength: Line is too long. [204/120]", 420843234], - [6282, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 1401226501], - [6283, 121, 23, "Layout/LineLength: Line is too long. [143/120]", 442915368], - [6286, 121, 79, "Layout/LineLength: Line is too long. [199/120]", 4212444955], - [6287, 121, 7, "Layout/LineLength: Line is too long. [127/120]", 830053864], - [6288, 121, 13, "Layout/LineLength: Line is too long. [133/120]", 1373660924], - [6291, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 1401226501], - [6292, 121, 94, "Layout/LineLength: Line is too long. [214/120]", 1539225758], - [6295, 121, 27, "Layout/LineLength: Line is too long. [147/120]", 3020159378], - [6297, 121, 30, "Layout/LineLength: Line is too long. [150/120]", 4240691845], - [6301, 121, 86, "Layout/LineLength: Line is too long. [206/120]", 674553335], - [6302, 121, 7, "Layout/LineLength: Line is too long. [127/120]", 830053864], - [6303, 121, 105, "Layout/LineLength: Line is too long. [225/120]", 4163432287], - [6305, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2089555761], - [6306, 121, 7, "Layout/LineLength: Line is too long. [127/120]", 2034687276], - [6307, 121, 80, "Layout/LineLength: Line is too long. [200/120]", 3710905302], - [6310, 121, 29, "Layout/LineLength: Line is too long. [149/120]", 4204667212], - [6312, 121, 30, "Layout/LineLength: Line is too long. [150/120]", 4240691845], - [6318, 121, 76, "Layout/LineLength: Line is too long. [196/120]", 2071493433], - [6320, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2085352569], - [6321, 121, 19, "Layout/LineLength: Line is too long. [139/120]", 2853066942], - [6324, 121, 71, "Layout/LineLength: Line is too long. [191/120]", 2771467828], - [6325, 121, 3, "Layout/LineLength: Line is too long. [123/120]", 193425976], - [6326, 121, 9, "Layout/LineLength: Line is too long. [129/120]", 3025157142], - [6329, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2085352569], - [6330, 121, 86, "Layout/LineLength: Line is too long. [206/120]", 3340824101], - [6333, 121, 23, "Layout/LineLength: Line is too long. [143/120]", 3999804761], - [6335, 121, 26, "Layout/LineLength: Line is too long. [146/120]", 1999310973], - [6339, 121, 78, "Layout/LineLength: Line is too long. [198/120]", 835016333], - [6340, 121, 3, "Layout/LineLength: Line is too long. [123/120]", 193425976], - [6341, 121, 97, "Layout/LineLength: Line is too long. [217/120]", 3575893945], - [6344, 121, 3, "Layout/LineLength: Line is too long. [123/120]", 193405945], - [6345, 121, 72, "Layout/LineLength: Line is too long. [192/120]", 1755858308], - [6348, 121, 25, "Layout/LineLength: Line is too long. [145/120]", 3182252139], - [6350, 121, 26, "Layout/LineLength: Line is too long. [146/120]", 1999310973], - [6356, 121, 70, "Layout/LineLength: Line is too long. [190/120]", 3033080032], - [6358, 121, 1, "Layout/LineLength: Line is too long. [121/120]", 177549], - [6359, 121, 16, "Layout/LineLength: Line is too long. [136/120]", 2720985203], - [6362, 121, 65, "Layout/LineLength: Line is too long. [185/120]", 3233424320], - [6364, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1165873483], - [6367, 121, 1, "Layout/LineLength: Line is too long. [121/120]", 177549], - [6368, 121, 80, "Layout/LineLength: Line is too long. [200/120]", 131859703], - [6371, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 1943494546], - [6373, 121, 23, "Layout/LineLength: Line is too long. [143/120]", 4016166830], - [6377, 121, 72, "Layout/LineLength: Line is too long. [192/120]", 1350760977], - [6379, 121, 91, "Layout/LineLength: Line is too long. [211/120]", 4098706554], - [6383, 121, 66, "Layout/LineLength: Line is too long. [186/120]", 4059724765], - [6386, 121, 22, "Layout/LineLength: Line is too long. [142/120]", 1651955548], - [6388, 121, 23, "Layout/LineLength: Line is too long. [143/120]", 4016166830], - [6394, 121, 54, "Layout/LineLength: Line is too long. [174/120]", 1057495720], - [6397, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 1621971220], - [6400, 121, 49, "Layout/LineLength: Line is too long. [169/120]", 1585717593], - [6406, 121, 64, "Layout/LineLength: Line is too long. [184/120]", 2942094233], - [6409, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 2624667704], - [6411, 121, 15, "Layout/LineLength: Line is too long. [135/120]", 2317051977], - [6415, 121, 56, "Layout/LineLength: Line is too long. [176/120]", 1321610634], - [6417, 121, 75, "Layout/LineLength: Line is too long. [195/120]", 2854688831], - [6421, 121, 50, "Layout/LineLength: Line is too long. [170/120]", 4185465554], - [6424, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 1169781875], - [6426, 121, 15, "Layout/LineLength: Line is too long. [135/120]", 2317051977], - [6432, 121, 50, "Layout/LineLength: Line is too long. [170/120]", 1916545020], - [6435, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1422839111], - [6438, 121, 45, "Layout/LineLength: Line is too long. [165/120]", 910134593], - [6444, 121, 60, "Layout/LineLength: Line is too long. [180/120]", 203086561], - [6447, 121, 10, "Layout/LineLength: Line is too long. [130/120]", 2939363812], - [6449, 121, 13, "Layout/LineLength: Line is too long. [133/120]", 3155638331], - [6453, 121, 52, "Layout/LineLength: Line is too long. [172/120]", 1955758062], - [6455, 121, 71, "Layout/LineLength: Line is too long. [191/120]", 3737424359], - [6459, 121, 46, "Layout/LineLength: Line is too long. [166/120]", 3597620692], - [6462, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 2624667704], - [6464, 121, 13, "Layout/LineLength: Line is too long. [133/120]", 3155638331], - [6470, 121, 52, "Layout/LineLength: Line is too long. [172/120]", 1036052399], - [6473, 121, 7, "Layout/LineLength: Line is too long. [127/120]", 4114086530], - [6476, 121, 47, "Layout/LineLength: Line is too long. [167/120]", 1268266488], - [6482, 121, 62, "Layout/LineLength: Line is too long. [182/120]", 2791598354], - [6485, 121, 11, "Layout/LineLength: Line is too long. [131/120]", 1302589368], - [6487, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 3533902728], - [6491, 121, 54, "Layout/LineLength: Line is too long. [174/120]", 3942276897], - [6493, 121, 73, "Layout/LineLength: Line is too long. [193/120]", 1175941460], - [6497, 121, 48, "Layout/LineLength: Line is too long. [168/120]", 679697318], - [6500, 121, 13, "Layout/LineLength: Line is too long. [133/120]", 28126263], - [6502, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 3533902728], - [6503, 121, 5, "Layout/LineLength: Line is too long. [125/120]", 181895237], - [6508, 121, 52, "Layout/LineLength: Line is too long. [172/120]", 4057848448], - [6511, 121, 7, "Layout/LineLength: Line is too long. [127/120]", 4114086530], - [6514, 121, 47, "Layout/LineLength: Line is too long. [167/120]", 4067769399], - [6520, 121, 62, "Layout/LineLength: Line is too long. [182/120]", 461482909], - [6523, 121, 11, "Layout/LineLength: Line is too long. [131/120]", 1302589368], - [6525, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 3533902728], - [6529, 121, 54, "Layout/LineLength: Line is too long. [174/120]", 3561204590], - [6531, 121, 73, "Layout/LineLength: Line is too long. [193/120]", 880160795], - [6535, 121, 48, "Layout/LineLength: Line is too long. [168/120]", 1614719145], - [6538, 121, 13, "Layout/LineLength: Line is too long. [133/120]", 28126263], - [6540, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 3533902728], - [6541, 121, 5, "Layout/LineLength: Line is too long. [125/120]", 181895237], - [6588, 121, 3, "Layout/LineLength: Line is too long. [123/120]", 193432306], - [6602, 121, 64, "Layout/LineLength: Line is too long. [184/120]", 1645945966], - [6605, 121, 13, "Layout/LineLength: Line is too long. [133/120]", 3212740609], - [6608, 121, 59, "Layout/LineLength: Line is too long. [179/120]", 3982698123], - [6610, 121, 3, "Layout/LineLength: Line is too long. [123/120]", 193425997], - [6614, 121, 74, "Layout/LineLength: Line is too long. [194/120]", 2663750402], - [6617, 121, 17, "Layout/LineLength: Line is too long. [137/120]", 2420297272], - [6619, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 1164389943], - [6623, 121, 66, "Layout/LineLength: Line is too long. [186/120]", 3483121581], - [6625, 121, 85, "Layout/LineLength: Line is too long. [205/120]", 2271668600], - [6629, 121, 60, "Layout/LineLength: Line is too long. [180/120]", 804794365], - [6632, 121, 19, "Layout/LineLength: Line is too long. [139/120]", 3659367004], - [6634, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 1164389943], - [6635, 121, 11, "Layout/LineLength: Line is too long. [131/120]", 561395486], - [6640, 121, 64, "Layout/LineLength: Line is too long. [184/120]", 1251661057], - [6643, 121, 13, "Layout/LineLength: Line is too long. [133/120]", 3212740609], - [6646, 121, 59, "Layout/LineLength: Line is too long. [179/120]", 3210109508], - [6648, 121, 3, "Layout/LineLength: Line is too long. [123/120]", 193425997], - [6652, 121, 74, "Layout/LineLength: Line is too long. [194/120]", 430316685], - [6655, 121, 17, "Layout/LineLength: Line is too long. [137/120]", 2420297272], - [6657, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 1164389943], - [6661, 121, 66, "Layout/LineLength: Line is too long. [186/120]", 2428160226], - [6663, 121, 85, "Layout/LineLength: Line is too long. [205/120]", 2663295671], - [6667, 121, 60, "Layout/LineLength: Line is too long. [180/120]", 2822109938], - [6670, 121, 19, "Layout/LineLength: Line is too long. [139/120]", 3659367004], - [6672, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 1164389943], - [6673, 121, 11, "Layout/LineLength: Line is too long. [131/120]", 561395486], - [6678, 121, 62, "Layout/LineLength: Line is too long. [182/120]", 857639785], - [6681, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 3669622788], - [6684, 121, 57, "Layout/LineLength: Line is too long. [177/120]", 140453799], - [6686, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5860765], - [6690, 121, 72, "Layout/LineLength: Line is too long. [192/120]", 1650236431], - [6693, 121, 16, "Layout/LineLength: Line is too long. [136/120]", 150699323], - [6695, 121, 19, "Layout/LineLength: Line is too long. [139/120]", 50618962], - [6699, 121, 64, "Layout/LineLength: Line is too long. [184/120]", 4205571164], - [6701, 121, 83, "Layout/LineLength: Line is too long. [203/120]", 1549528021], - [6705, 121, 58, "Layout/LineLength: Line is too long. [178/120]", 1325488145], - [6708, 121, 18, "Layout/LineLength: Line is too long. [138/120]", 1510711065], - [6710, 121, 19, "Layout/LineLength: Line is too long. [139/120]", 50618962], - [6716, 121, 66, "Layout/LineLength: Line is too long. [186/120]", 3043205563], - [6719, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 2381137493], - [6722, 121, 61, "Layout/LineLength: Line is too long. [181/120]", 2200345195], - [6724, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2087926498], - [6728, 121, 76, "Layout/LineLength: Line is too long. [196/120]", 1082269527], - [6731, 121, 18, "Layout/LineLength: Line is too long. [138/120]", 1510711065], - [6733, 121, 21, "Layout/LineLength: Line is too long. [141/120]", 1104064739], - [6737, 121, 68, "Layout/LineLength: Line is too long. [188/120]", 1652941658], - [6739, 121, 87, "Layout/LineLength: Line is too long. [207/120]", 1440323819], - [6743, 121, 62, "Layout/LineLength: Line is too long. [182/120]", 802896260], - [6746, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 1943494546], - [6748, 121, 21, "Layout/LineLength: Line is too long. [141/120]", 1104064739], - [6754, 121, 82, "Layout/LineLength: Line is too long. [202/120]", 788730815], - [6756, 121, 7, "Layout/LineLength: Line is too long. [127/120]", 2034687276], - [6757, 121, 22, "Layout/LineLength: Line is too long. [142/120]", 4226330106], - [6760, 121, 77, "Layout/LineLength: Line is too long. [197/120]", 2414796320], - [6761, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1165873470], - [6762, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 3090817832], - [6765, 121, 7, "Layout/LineLength: Line is too long. [127/120]", 2034687276], - [6766, 121, 92, "Layout/LineLength: Line is too long. [212/120]", 2839148677], - [6769, 121, 26, "Layout/LineLength: Line is too long. [146/120]", 2393983240], - [6771, 121, 29, "Layout/LineLength: Line is too long. [149/120]", 2581936864], - [6775, 121, 84, "Layout/LineLength: Line is too long. [204/120]", 3923254945], - [6776, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1165873470], - [6777, 121, 103, "Layout/LineLength: Line is too long. [223/120]", 580639726], - [6779, 121, 3, "Layout/LineLength: Line is too long. [123/120]", 193419246], - [6780, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1756764194], - [6781, 121, 78, "Layout/LineLength: Line is too long. [198/120]", 3202758044], - [6784, 121, 28, "Layout/LineLength: Line is too long. [148/120]", 912651721], - [6786, 121, 29, "Layout/LineLength: Line is too long. [149/120]", 2581936864], - [6790, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1164293389], - [6803, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5860840], - [6804, 121, 88, "Layout/LineLength: Line is too long. [208/120]", 574552570], - [6806, 121, 10, "Layout/LineLength: Line is too long. [130/120]", 3845073641], - [6807, 121, 25, "Layout/LineLength: Line is too long. [145/120]", 543375177], - [6810, 121, 83, "Layout/LineLength: Line is too long. [203/120]", 222410330], - [6811, 121, 9, "Layout/LineLength: Line is too long. [129/120]", 3025157219], - [6812, 121, 15, "Layout/LineLength: Line is too long. [135/120]", 1904561434], - [6815, 121, 10, "Layout/LineLength: Line is too long. [130/120]", 489872984], - [6816, 121, 98, "Layout/LineLength: Line is too long. [218/120]", 97325617], - [6819, 121, 29, "Layout/LineLength: Line is too long. [149/120]", 4204667212], - [6821, 121, 32, "Layout/LineLength: Line is too long. [152/120]", 4062673070], - [6825, 121, 90, "Layout/LineLength: Line is too long. [210/120]", 1451915960], - [6826, 121, 9, "Layout/LineLength: Line is too long. [129/120]", 3025157219], - [6827, 121, 109, "Layout/LineLength: Line is too long. [229/120]", 4200529758], - [6829, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1497831350], - [6830, 121, 9, "Layout/LineLength: Line is too long. [129/120]", 4214367244], - [6831, 121, 84, "Layout/LineLength: Line is too long. [204/120]", 399603517], - [6834, 121, 31, "Layout/LineLength: Line is too long. [151/120]", 3423548875], - [6836, 121, 32, "Layout/LineLength: Line is too long. [152/120]", 4062673070], - [6840, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 3279830097], - [6852, 121, 10, "Layout/LineLength: Line is too long. [130/120]", 659167322], - [6864, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2087926423], - [6865, 121, 57, "Layout/LineLength: Line is too long. [177/120]", 3300294193], - [6867, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 3172850966], - [6868, 121, 27, "Layout/LineLength: Line is too long. [147/120]", 2396187736], - [6871, 121, 87, "Layout/LineLength: Line is too long. [207/120]", 1991888901], - [6872, 121, 11, "Layout/LineLength: Line is too long. [131/120]", 1954380402], - [6873, 121, 17, "Layout/LineLength: Line is too long. [137/120]", 2589970962], - [6876, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 42340644], - [6877, 121, 67, "Layout/LineLength: Line is too long. [187/120]", 479235996], - [6880, 121, 31, "Layout/LineLength: Line is too long. [151/120]", 3423548875], - [6882, 121, 34, "Layout/LineLength: Line is too long. [154/120]", 1462541970], - [6886, 121, 94, "Layout/LineLength: Line is too long. [214/120]", 1373978781], - [6887, 121, 11, "Layout/LineLength: Line is too long. [131/120]", 1954380402], - [6888, 121, 78, "Layout/LineLength: Line is too long. [198/120]", 280641011], - [6890, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 1664110553], - [6891, 121, 11, "Layout/LineLength: Line is too long. [131/120]", 1009650381], - [6892, 121, 88, "Layout/LineLength: Line is too long. [208/120]", 909329343], - [6895, 121, 33, "Layout/LineLength: Line is too long. [153/120]", 2977589831], - [6897, 121, 34, "Layout/LineLength: Line is too long. [154/120]", 1462541970], - [6902, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1165873470], - [6903, 121, 61, "Layout/LineLength: Line is too long. [181/120]", 1904101094], - [6905, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 2229256255], - [6906, 121, 29, "Layout/LineLength: Line is too long. [149/120]", 1839090017], - [6909, 121, 91, "Layout/LineLength: Line is too long. [211/120]", 4260980907], - [6910, 121, 13, "Layout/LineLength: Line is too long. [133/120]", 4253118453], - [6911, 121, 19, "Layout/LineLength: Line is too long. [139/120]", 1536690221], - [6913, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5861152], - [6914, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 209824656], - [6915, 121, 71, "Layout/LineLength: Line is too long. [191/120]", 1530496074], - [6918, 121, 33, "Layout/LineLength: Line is too long. [153/120]", 2977589831], - [6920, 121, 36, "Layout/LineLength: Line is too long. [156/120]", 3261436902], - [6924, 121, 98, "Layout/LineLength: Line is too long. [218/120]", 3762694917], - [6925, 121, 13, "Layout/LineLength: Line is too long. [133/120]", 4253118453], - [6926, 121, 82, "Layout/LineLength: Line is too long. [202/120]", 3196230010], - [6928, 121, 10, "Layout/LineLength: Line is too long. [130/120]", 3165598659], - [6929, 121, 13, "Layout/LineLength: Line is too long. [133/120]", 4264469493], - [6930, 121, 92, "Layout/LineLength: Line is too long. [212/120]", 3140690958], - [6933, 121, 35, "Layout/LineLength: Line is too long. [155/120]", 2999583208], - [6935, 121, 36, "Layout/LineLength: Line is too long. [156/120]", 3261436902], - [6941, 121, 54, "Layout/LineLength: Line is too long. [174/120]", 326070599], - [6944, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 1621971220], - [6947, 121, 49, "Layout/LineLength: Line is too long. [169/120]", 1689000214], - [6953, 121, 64, "Layout/LineLength: Line is too long. [184/120]", 2459904022], - [6956, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 2624667704], - [6958, 121, 15, "Layout/LineLength: Line is too long. [135/120]", 2317051977], - [6962, 121, 56, "Layout/LineLength: Line is too long. [176/120]", 2842872837], - [6964, 121, 75, "Layout/LineLength: Line is too long. [195/120]", 423884656], - [6968, 121, 50, "Layout/LineLength: Line is too long. [170/120]", 2673769885], - [6971, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 1169781875], - [6973, 121, 15, "Layout/LineLength: Line is too long. [135/120]", 2317051977], - [6974, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 2126253911], - [6990, 121, 66, "Layout/LineLength: Line is too long. [186/120]", 2388292564], - [6993, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 2381137493], - [6996, 121, 61, "Layout/LineLength: Line is too long. [181/120]", 1136762660], - [6998, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2087926498], - [7002, 121, 76, "Layout/LineLength: Line is too long. [196/120]", 2555581016], - [7005, 121, 18, "Layout/LineLength: Line is too long. [138/120]", 1510711065], - [7007, 121, 21, "Layout/LineLength: Line is too long. [141/120]", 1104064739], - [7011, 121, 68, "Layout/LineLength: Line is too long. [188/120]", 1986812885], - [7013, 121, 87, "Layout/LineLength: Line is too long. [207/120]", 1864036132], - [7017, 121, 62, "Layout/LineLength: Line is too long. [182/120]", 3590180043], - [7020, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 1943494546], - [7022, 121, 21, "Layout/LineLength: Line is too long. [141/120]", 1104064739], - [7023, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 2382712010], - [7033, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1791534645], - [7038, 121, 50, "Layout/LineLength: Line is too long. [170/120]", 2403815412], - [7041, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1422839111], - [7044, 121, 45, "Layout/LineLength: Line is too long. [165/120]", 4046048864], - [7050, 121, 60, "Layout/LineLength: Line is too long. [180/120]", 3472955113], - [7053, 121, 10, "Layout/LineLength: Line is too long. [130/120]", 2939363812], - [7055, 121, 13, "Layout/LineLength: Line is too long. [133/120]", 3155638331], - [7059, 121, 52, "Layout/LineLength: Line is too long. [172/120]", 3911469720], - [7061, 121, 71, "Layout/LineLength: Line is too long. [191/120]", 272433263], - [7065, 121, 46, "Layout/LineLength: Line is too long. [166/120]", 634420444], - [7068, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 2624667704], - [7070, 121, 13, "Layout/LineLength: Line is too long. [133/120]", 3155638331], - [7071, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2088324682], - [7084, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2087906711], - [7096, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 2135380894], - [7105, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 2102137893], - [7107, 121, 25, "Layout/LineLength: Line is too long. [145/120]", 4280757685], - [7111, 121, 10, "Layout/LineLength: Line is too long. [130/120]", 161599970], - [7145, 121, 7, "Layout/LineLength: Line is too long. [127/120]", 830053789], - [7180, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 2188407955], - [7191, 121, 19, "Layout/LineLength: Line is too long. [139/120]", 3692322233], - [7195, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2087557694], - [7218, 121, 10, "Layout/LineLength: Line is too long. [130/120]", 3197512522], - [7227, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5858840], - [7229, 121, 21, "Layout/LineLength: Line is too long. [141/120]", 85298067], - [7286, 121, 3, "Layout/LineLength: Line is too long. [123/120]", 193418403], - [7292, 121, 3, "Layout/LineLength: Line is too long. [123/120]", 193418403], - [7315, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2087432474], - [7327, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 2361949763], - [7336, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 2102137893], - [7338, 121, 25, "Layout/LineLength: Line is too long. [145/120]", 581045160], - [7342, 121, 10, "Layout/LineLength: Line is too long. [130/120]", 4235011647], - [7361, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1898147766], - [7367, 121, 1, "Layout/LineLength: Line is too long. [121/120]", 177560], - [7373, 121, 16, "Layout/LineLength: Line is too long. [136/120]", 1310140439], - [7382, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 681770239], - [7384, 121, 27, "Layout/LineLength: Line is too long. [147/120]", 3821940657], - [7388, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5862609], - [7408, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5861292], - [7420, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 2354124424], - [7429, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2087922021], - [7431, 121, 23, "Layout/LineLength: Line is too long. [143/120]", 3921370162], - [8024, 121, 24, "Layout/LineLength: Line is too long. [144/120]", 4083054536], - [8052, 121, 24, "Layout/LineLength: Line is too long. [144/120]", 4083054536], - [8081, 121, 24, "Layout/LineLength: Line is too long. [144/120]", 4083054536], - [8139, 121, 42, "Layout/LineLength: Line is too long. [162/120]", 632953222], - [8168, 121, 34, "Layout/LineLength: Line is too long. [154/120]", 732995265], - [8218, 121, 30, "Layout/LineLength: Line is too long. [150/120]", 1886249927], - [8380, 121, 7, "Layout/LineLength: Line is too long. [127/120]", 578751979], - [8381, 121, 11, "Layout/LineLength: Line is too long. [131/120]", 3803540269], - [8390, 121, 17, "Layout/LineLength: Line is too long. [137/120]", 2238403955], - [8391, 121, 25, "Layout/LineLength: Line is too long. [145/120]", 1028441932], - [8392, 121, 29, "Layout/LineLength: Line is too long. [149/120]", 1975950909], - [8447, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1244043798] - ], - "spec/integration/freeze_node_edge_cases_spec.rb:3416491031": [ - [6, 1, 28959, "Metrics/BlockLength: Block has too many lines. [663/25]", 3473768018], - [7, 3, 2985, "Metrics/BlockLength: Block has too many lines. [57/25]", 436154415], - [8, 5, 2934, "Metrics/BlockLength: Block has too many lines. [55/25]", 1963918102], - [78, 3, 6091, "Metrics/BlockLength: Block has too many lines. [136/25]", 232153494], - [98, 5, 3053, "Metrics/BlockLength: Block has too many lines. [69/25]", 1442974101], - [202, 5, 1691, "Metrics/BlockLength: Block has too many lines. [29/25]", 985654389], - [241, 3, 8515, "Metrics/BlockLength: Block has too many lines. [176/25]", 2776676526], - [473, 3, 2024, "Metrics/BlockLength: Block has too many lines. [55/25]", 1048101963], - [474, 5, 890, "Metrics/BlockLength: Block has too many lines. [26/25]", 753961540], - [543, 3, 4511, "Metrics/BlockLength: Block has too many lines. [116/25]", 1227615145], - [693, 3, 1660, "Metrics/BlockLength: Block has too many lines. [43/25]", 1881888061], - [694, 5, 1107, "Metrics/BlockLength: Block has too many lines. [26/25]", 368095693] - ], - "spec/integration/gem_family_section_merge_spec.rb:1744383089": [ - [164, 121, 27, "Layout/LineLength: Line is too long. [147/120]", 93655697] - ], - "spec/integration/integration_spec.rb:2239247043": [ - [14, 1, 4488, "Metrics/BlockLength: Block has too many lines. [88/25]", 206207480], - [15, 3, 3267, "Metrics/BlockLength: Block has too many lines. [62/25]", 1323899085], - [40, 5, 2263, "Metrics/BlockLength: Block has too many lines. [48/25]", 3172595581] - ], - "spec/integration/link_reference_preservation_spec.rb:3764298162": [ - [6, 1, 2646, "Metrics/BlockLength: Block has too many lines. [48/25]", 3396410609], - [19, 3, 2058, "Metrics/BlockLength: Block has too many lines. [33/25]", 163363949] - ], - "spec/integration/markly_merge_spec.rb:3076950975": [ - [3, 1, 22886, "Metrics/BlockLength: Block has too many lines. [670/25]", 1408138744], - [62, 3, 7192, "Metrics/BlockLength: Block has too many lines. [189/25]", 1890889324], - [63, 5, 1678, "Metrics/BlockLength: Block has too many lines. [41/25]", 2587582896], - [115, 5, 1808, "Metrics/BlockLength: Block has too many lines. [48/25]", 3381172795], - [147, 46, 21, "Style/StringConcatenation: Prefer string interpolation to string concatenation.", 451071547], - [171, 5, 1134, "Metrics/BlockLength: Block has too many lines. [30/25]", 2526618199], - [220, 5, 1335, "Metrics/BlockLength: Block has too many lines. [32/25]", 2790596215], - [311, 3, 2008, "Metrics/BlockLength: Block has too many lines. [66/25]", 2640155627], - [394, 3, 1052, "Metrics/BlockLength: Block has too many lines. [27/25]", 3988836255], - [440, 3, 2950, "Metrics/BlockLength: Block has too many lines. [89/25]", 961031348], - [441, 5, 1352, "Metrics/BlockLength: Block has too many lines. [37/25]", 1952365669], - [495, 5, 1550, "Metrics/BlockLength: Block has too many lines. [48/25]", 2400197001], - [561, 3, 1665, "Metrics/BlockLength: Block has too many lines. [52/25]", 3884776329], - [650, 3, 1919, "Metrics/BlockLength: Block has too many lines. [57/25]", 2594646583], - [725, 3, 1644, "Metrics/BlockLength: Block has too many lines. [45/25]", 2348710811], - [791, 3, 1600, "Metrics/BlockLength: Block has too many lines. [46/25]", 3683503747] - ], - "spec/integration/partial_template_merger_table_merge_spec.rb:3504046892": [ - [7, 1, 7402, "Metrics/BlockLength: Block has too many lines. [164/25]", 3368892126], - [9, 3, 2986, "Metrics/BlockLength: Block has too many lines. [67/25]", 2267114449], - [65, 5, 1359, "Metrics/BlockLength: Block has too many lines. [28/25]", 3145143002], - [102, 3, 997, "Metrics/BlockLength: Block has too many lines. [26/25]", 3156068215], - [147, 3, 3009, "Metrics/BlockLength: Block has too many lines. [65/25]", 994160212], - [202, 5, 1401, "Metrics/BlockLength: Block has too many lines. [28/25]", 3038951618] - ], - "spec/integration/table_formatting_preservation_spec.rb:3943985446": [ - [6, 1, 3086, "Metrics/BlockLength: Block has too many lines. [56/25]", 2210897849], - [19, 3, 2374, "Metrics/BlockLength: Block has too many lines. [40/25]", 668961519], - [33, 5, 1847, "Metrics/BlockLength: Block has too many lines. [28/25]", 3433318963] - ], - "spec/integration/text_merge_spec.rb:884566200": [ - [6, 1, 7747, "Metrics/BlockLength: Block has too many lines. [204/25]", 2372984305], - [60, 3, 1113, "Metrics/BlockLength: Block has too many lines. [34/25]", 3399970957], - [67, 5, 860, "Metrics/BlockLength: Block has too many lines. [27/25]", 2337191560], - [103, 3, 916, "Metrics/BlockLength: Block has too many lines. [28/25]", 4082963348], - [149, 3, 3001, "Metrics/BlockLength: Block has too many lines. [74/25]", 7776854] - ], - "spec/support/fictive_language_harness.rb:1770581700": [ - [85, 7, 733, "Metrics/AbcSize: Assignment Branch Condition size for `extract_comments` is too high. [<5, 16, 5> 17.49/17]", 1127096515], - [85, 7, 733, "Metrics/MethodLength: Method has too many lines. [22/10]", 1127096515], - [117, 21, 129, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 681912759], - [182, 7, 1084, "Metrics/AbcSize: Assignment Branch Condition size for `parse_statements` is too high. [<9, 28, 7> 30.23/17]", 3123785685], - [182, 7, 1084, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `parse_statements` is too high. [8/7]", 3123785685], - [182, 7, 1084, "Metrics/MethodLength: Method has too many lines. [24/10]", 3123785685], - [233, 5, 9879, "Metrics/ClassLength: Class has too many lines. [228/100]", 3231256134], - [236, 21, 208, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 2970487173], - [257, 7, 1981, "Metrics/AbcSize: Assignment Branch Condition size for `resolve_batch` is too high. [<16, 32, 4> 36/17]", 4125392918], - [257, 7, 1981, "Metrics/MethodLength: Method has too many lines. [42/10]", 4125392918], - [342, 7, 778, "Metrics/MethodLength: Method has too many lines. [18/10]", 4189873983], - [364, 7, 844, "Metrics/MethodLength: Method has too many lines. [19/10]", 526186683], - [449, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2087956942], - [464, 7, 1065, "Metrics/AbcSize: Assignment Branch Condition size for `collapse_template_preamble_prefix_region` is too high. [<6, 24, 11> 27.07/17]", 2332280467], - [464, 7, 1065, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `collapse_template_preamble_prefix_region` is too high. [10/7]", 2332280467], - [464, 7, 1065, "Metrics/MethodLength: Method has too many lines. [20/10]", 2332280467], - [464, 7, 1065, "Metrics/PerceivedComplexity: Perceived complexity for `collapse_template_preamble_prefix_region` is too high. [10/8]", 2332280467] - ], - "spec/support/testable_node.rb:1110514732": [ - [10, 7, 573, "Metrics/MethodLength: Method has too many lines. [12/10]", 798847435], - [10, 22, 226, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [10/5]", 2319398994], - [40, 7, 642, "Metrics/AbcSize: Assignment Branch Condition size for `initialize` is too high. [<11, 14, 6> 18.79/17]", 2249578474], - [40, 21, 131, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [10/5]", 1786967686] - ] -} diff --git a/gems/ast-merge/Gemfile.lock b/gems/ast-merge/Gemfile.lock index 55b2bd060..e7f5fef46 100644 --- a/gems/ast-merge/Gemfile.lock +++ b/gems/ast-merge/Gemfile.lock @@ -7,233 +7,6 @@ PATH tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly - specs: - ast-crispr-markdown-markly (7.1.0) - ast-crispr (= 7.1.0) - markly-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism - specs: - ast-crispr-ruby-prism (7.1.0) - ast-crispr (= 7.1.0) - prism-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr - specs: - ast-crispr (7.1.0) - ast-merge (= 7.1.0) - service_actor (~> 3.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git - specs: - ast-merge-git (7.1.0) - ast-merge (= 7.1.0) - json-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template - specs: - ast-template (7.1.0) - ast-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge - specs: - bash-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge - specs: - binary-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge - specs: - citrus-toml-merge (7.1.0) - toml-merge (= 7.1.0) - toml-rb (~> 4.1) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge - specs: - commonmarker-merge (7.1.0) - commonmarker (~> 2.2) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge - specs: - dotenv-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge - specs: - go-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge - specs: - json-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem - specs: - kettle-jem (7.1.0) - addressable (>= 2.8, < 3) - ast-crispr-markdown-markly (= 7.1.0) - ast-crispr-ruby-prism (= 7.1.0) - ast-merge (= 7.1.0) - bash-merge (= 7.1.0) - citrus-toml-merge (= 7.1.0) - commonmarker-merge (= 7.1.0) - dotenv-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-dev (~> 2.3, >= 2.3.5) - kettle-rb (~> 0.1, >= 0.1.4) - kramdown-merge (= 7.1.0) - markdown-merge (= 7.1.0) - markly-merge (= 7.1.0) - prism-merge (= 7.1.0) - psych-merge (= 7.1.0) - rbs (>= 3.10) - rbs-merge (= 7.1.0) - ruby-merge (= 7.1.0) - token-resolver (~> 2.0, >= 2.0.4) - toml-merge (= 7.1.0) - toml-rb (~> 4.2) - tree_haver (= 7.1.0) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge - specs: - kramdown-merge (7.1.0) - kramdown (~> 2.5) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge - specs: - markdown-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge - specs: - markly-merge (7.1.0) - markdown-merge (= 7.1.0) - markly (~> 0.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge - specs: - parslet-toml-merge (7.1.0) - toml (~> 0.3) - toml-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge - specs: - plain-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge - specs: - prism-merge (7.1.0) - prism (~> 1.6) - ruby-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge - specs: - psych-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge - specs: - rbs-merge (7.1.0) - ast-merge (= 7.1.0) - rbs (>= 3.10) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge - specs: - ruby-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge - specs: - rust-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb - specs: - smorg-rb (7.1.0) - ast-merge (= 7.1.0) - ast-merge-git (= 7.1.0) - diff-lcs (~> 1.5) - go-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-jem (= 7.1.0) - markly-merge (= 7.1.0) - plain-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge - specs: - toml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - PATH remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver specs: @@ -243,29 +16,6 @@ PATH tree_sitter_language_pack (>= 1.13.2, < 2.0) version_gem (~> 1.1, >= 1.1.9) -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge - specs: - typescript-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge - specs: - yaml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge - specs: - zip-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - GEM remote: https://gem.coop/ specs: @@ -290,7 +40,6 @@ GEM cgi (0.5.2) citrus (3.0.2) cmdparse (3.0.7) - commonmarker (2.9.0-x86_64-linux) concurrent-ruby (1.3.8) date (3.5.1) debug (1.11.1) @@ -353,8 +102,6 @@ GEM kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) - kettle-drift (1.0.6) - version_gem (~> 1.1, >= 1.1.14) kettle-rb (0.1.5) kettle-soup-cover (3.0.4) kettle-wash (~> 0.1, >= 0.1.0) @@ -383,7 +130,6 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) - markly (0.16.0) mutex_m (0.3.0) nokogiri (1.19.4-aarch64-linux-gnu) racc (~> 1.4) @@ -546,8 +292,6 @@ GEM ruby-progressbar (1.13.0) ruby_engine (2.0.3) ruby_version (1.0.3) - service_actor (3.9.4) - zeitwerk (>= 1.0) silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) @@ -602,11 +346,6 @@ GEM token-resolver (2.0.5) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.14) - toml (0.3.0) - parslet (>= 1.8.0, < 3.0.0) - toml-rb (4.2.0) - citrus (~> 3.0, > 3.0) - racc (~> 1.7) tree_sitter_language_pack (1.13.3-aarch64-linux) sorbet-runtime (~> 0.5) tree_sitter_language_pack (1.13.3-arm64-darwin) @@ -661,45 +400,23 @@ DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) appraisal2-rubocop (~> 1.0, >= 1.0.0) - ast-crispr! - ast-crispr-markdown-markly! - ast-crispr-ruby-prism! ast-merge! - ast-merge-git! - ast-template! - bash-merge! - binary-merge! bundler-audit (~> 0.9.3) cgi (~> 0.5) - citrus-toml-merge! - commonmarker-merge! debug (>= 1.1) - dotenv-merge! erb (~> 6.0, >= 6.0.6) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.0) - go-merge! irb (~> 1.17) - json-merge! kettle-dev (~> 2.0, >= 2.2.25) - kettle-drift (~> 1.0, >= 1.0.6) - kettle-jem! kettle-soup-cover (~> 3.0, >= 3.0.3) kettle-test (~> 2.0, >= 2.0.9) kramdown (~> 2.5, >= 2.5.2) - kramdown-merge! kramdown-parser-gfm (~> 1.1) - markdown-merge! - markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) - parslet-toml-merge! - plain-merge! - prism-merge! - psych-merge! rake (~> 13.0) rbs (>= 3.0) - rbs-merge! rdoc (~> 6.11) reek (~> 6.5, >= 6.5.0) require_bench (~> 1.0, >= 1.0.4) @@ -710,27 +427,20 @@ DEPENDENCIES rubocop-on-rbs (~> 2.0, >= 2.0.0) rubocop-packaging (~> 0.6, >= 0.6.0) rubocop-ruby3_2 (~> 3.0, >= 3.0.6) - ruby-merge! ruby-progressbar (~> 1.13) - rust-merge! - smorg-rb! standard (~> 1.56, >= 1.56.0) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) - toml-merge! tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) - typescript-merge! webrick (~> 1.9) yaml-converter (~> 0.2, >= 0.2.3) - yaml-merge! yard (~> 0.9, >= 0.9.45) yard-fence (~> 0.9, >= 0.9.6) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) yard-timekeeper (~> 0.2, >= 0.2.4) yard-yaml (~> 0.2, >= 0.2.3) - zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af @@ -738,31 +448,20 @@ CHECKSUMS appraisal2 (3.2.0) sha256=ccd0b767ac4060cd7af6d16747459b6990f49c39c7b4fb1f7d1146b1e97c492f appraisal2-rubocop (1.0.0) sha256=b71410fbb014befda5340605a605b7f6f3f012739baf0acc5b4351b592c3258d ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 - ast-crispr (7.1.0) - ast-crispr-markdown-markly (7.1.0) - ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) - ast-merge-git (7.1.0) - ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 - bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd - binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 - citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 - commonmarker (2.9.0-x86_64-linux) - commonmarker-merge (7.1.0) concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 - dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -775,28 +474,20 @@ CHECKSUMS gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f - go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 - json-merge (7.1.0) kettle-dev (2.3.9) - kettle-drift (1.0.6) - kettle-jem (7.1.0) kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f kettle-soup-cover (3.0.4) kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa - kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 - markdown-merge (7.1.0) - markly (0.16.0) - markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-aarch64-linux-gnu) sha256=1269fb644a6de405057a53dd5c762b1209b43ca7424f839454d3dbc677c31a8f nokogiri (1.19.4-aarch64-linux-musl) sha256=35c65b9ce72b3bb03207bdbe7067915019dc18c1b9b59139684bd6690fdd01af @@ -810,20 +501,15 @@ CHECKSUMS parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 - parslet-toml-merge (7.1.0) - plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 - prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 - psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 - rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb @@ -858,19 +544,15 @@ CHECKSUMS rubocop-rspec_rails (2.32.0) sha256=4a0d641c72f6ebb957534f539d9d0a62c47abd8ce0d0aeee1ef4701e892a9100 rubocop-ruby3_2 (3.0.7) sha256=f53dd6d286fb05186214fc6ec116783e7f837030918e8931c05de773e98f8466 rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 - ruby-merge (7.1.0) ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 - rust-merge (7.1.0) - service_actor (3.9.4) silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed - smorg-rb (7.1.0) sorbet-runtime (0.6.13351) sha256=f8fee17c6e3edf835dc6823d26afb9a7c8969c6710d1fabe2fb43f4e0c15c64f standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b @@ -885,22 +567,17 @@ CHECKSUMS timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.5) sha256=b852f924287ffb58a440856e862b056c8ad97e74b4b2526cee43e0771f40c25c - toml (0.3.0) - toml-merge (7.1.0) - toml-rb (4.2.0) tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-aarch64-linux) sha256=55ffc7c87868cb45658338363d9eba51b4a8b0259aa88e4de368d2bd1d52fea4 tree_sitter_language_pack (1.13.3-arm64-darwin) sha256=bc2498db605f212a1dbd2465ed3f65190d7da786f6ed5d30fcf958121aeb4a5c tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 - typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 webrick (1.9.2) sha256=beb4a15fc474defed24a3bda4ffd88a490d517c9e4e6118c3edce59e45864131 yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 - yaml-merge (7.1.0) yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd @@ -908,7 +585,6 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 - zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH diff --git a/gems/ast-merge/bin/yard b/gems/ast-merge/bin/yard index 5d516ad6f..a7e8b6eed 100755 --- a/gems/ast-merge/bin/yard +++ b/gems/ast-merge/bin/yard @@ -12,4 +12,4 @@ # `yard` / `bin/yard`. Keep this binstub as a handoff to the task so # humans and tools that reach for `bin/yard` still run the full docs # workflow with post-processing hooks. -exec('bundle', 'exec', 'rake', 'yard') +exec("bundle", "exec", "rake", "yard") diff --git a/gems/ast-merge/gemfiles/modular/cgi/r4/v0.5.gemfile b/gems/ast-merge/gemfiles/modular/cgi/r4/v0.5.gemfile index 17ad97260..19ed967c3 100644 --- a/gems/ast-merge/gemfiles/modular/cgi/r4/v0.5.gemfile +++ b/gems/ast-merge/gemfiles/modular/cgi/r4/v0.5.gemfile @@ -1 +1 @@ -gem 'cgi', '~> 0.5' +gem "cgi", "~> 0.5" diff --git a/gems/ast-merge/gemfiles/modular/cgi/vHEAD.gemfile b/gems/ast-merge/gemfiles/modular/cgi/vHEAD.gemfile index 650fbf033..ef8b816ce 100644 --- a/gems/ast-merge/gemfiles/modular/cgi/vHEAD.gemfile +++ b/gems/ast-merge/gemfiles/modular/cgi/vHEAD.gemfile @@ -1 +1 @@ -gem 'cgi', '>= 0.5' +gem "cgi", ">= 0.5" diff --git a/gems/ast-merge/gemfiles/modular/coverage.gemfile b/gems/ast-merge/gemfiles/modular/coverage.gemfile index b93014b6b..52d737872 100644 --- a/gems/ast-merge/gemfiles/modular/coverage.gemfile +++ b/gems/ast-merge/gemfiles/modular/coverage.gemfile @@ -4,11 +4,11 @@ # Set KETTLE_DEV_DEV=true for local development with path-based dependencies. # When false (default / CI), remote released gems are used. -if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? +if ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false").zero? # Coverage (remote/released) platform :mri do - gem 'kettle-soup-cover', '~> 3.0', '>= 3.0.3', require: false + gem "kettle-soup-cover", "~> 3.0", ">= 3.0.3", require: false end else - eval_gemfile 'coverage_local.gemfile' + eval_gemfile "coverage_local.gemfile" end diff --git a/gems/ast-merge/gemfiles/modular/coverage_local.gemfile b/gems/ast-merge/gemfiles/modular/coverage_local.gemfile index f556973ee..c950b8d78 100644 --- a/gems/ast-merge/gemfiles/modular/coverage_local.gemfile +++ b/gems/ast-merge/gemfiles/modular/coverage_local.gemfile @@ -11,19 +11,21 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] -nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) +nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] +nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == "nomono" } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + if nomono_locked + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] + end end -Kernel.send(:gem, 'nomono', *nomono_activation_requirements) -require 'nomono/bundler' +Kernel.send(:gem, "nomono", *nomono_activation_requirements) +require "nomono/bundler" local_gems = %w[kettle-dev kettle-test kettle-soup-cover kettle-drift] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) @@ -33,21 +35,21 @@ local_gems_to_eval = local_gems - %w[ast-merge] - declared_gems platform :mri do eval_nomono_gems( gems: local_gems_to_eval, - prefix: 'KETTLE_DEV', - path_env: 'KETTLE_DEV_DEV', - vendored_gems_env: 'VENDORED_GEMS', - vendor_gem_dir_env: 'VENDOR_GEM_DIR', - debug_env: 'KETTLE_DEV_DEBUG' + prefix: "KETTLE_DEV", + path_env: "KETTLE_DEV_DEV", + vendored_gems_env: "VENDORED_GEMS", + vendor_gem_dir_env: "VENDOR_GEM_DIR", + debug_env: "KETTLE_DEV_DEBUG" ) - if ENV.fetch('GALTZO_FLOSS_DEV', 'false').casecmp('false') != 0 + if ENV.fetch("GALTZO_FLOSS_DEV", "false").casecmp("false") != 0 eval_nomono_gems( gems: %w[turbo_tests2], - prefix: 'GALTZO_FLOSS', - path_env: 'GALTZO_FLOSS_DEV', - vendored_gems_env: 'GALTZO_FLOSS_VENDORED_GEMS', - vendor_gem_dir_env: 'GALTZO_FLOSS_VENDOR_GEM_DIR', - debug_env: 'GALTZO_FLOSS_DEBUG' + prefix: "GALTZO_FLOSS", + path_env: "GALTZO_FLOSS_DEV", + vendored_gems_env: "GALTZO_FLOSS_VENDORED_GEMS", + vendor_gem_dir_env: "GALTZO_FLOSS_VENDOR_GEM_DIR", + debug_env: "GALTZO_FLOSS_DEBUG" ) end end diff --git a/gems/ast-merge/gemfiles/modular/debug.gemfile b/gems/ast-merge/gemfiles/modular/debug.gemfile index eed8d4d1e..4e15b1a3a 100644 --- a/gems/ast-merge/gemfiles/modular/debug.gemfile +++ b/gems/ast-merge/gemfiles/modular/debug.gemfile @@ -13,10 +13,10 @@ platform :mri do # Debugging - Ensure ENV["DEBUG"] == "true" to use debuggers within spec suite # Use binding.break, binding.b, or debugger in code - gem 'debug', '>= 1.1' # ruby >= 2.7 + gem "debug", ">= 1.1" # ruby >= 2.7 # Dev Console - Binding.pry - Irb replacement # gem "pry", "~> 0.14" # ruby >= 2.0 end -gem 'gem_bench', '~> 2.0', '>= 2.0.5' +gem "gem_bench", "~> 2.0", ">= 2.0.5" diff --git a/gems/ast-merge/gemfiles/modular/documentation.gemfile b/gems/ast-merge/gemfiles/modular/documentation.gemfile index 9d4535f12..d8215416e 100644 --- a/gems/ast-merge/gemfiles/modular/documentation.gemfile +++ b/gems/ast-merge/gemfiles/modular/documentation.gemfile @@ -7,20 +7,20 @@ # # Documentation -gem 'kramdown', '~> 2.5', '>= 2.5.2', require: false # Ruby >= 2.5 -gem 'kramdown-parser-gfm', '~> 1.1', require: false # Ruby >= 2.3 -gem 'yaml-converter', '~> 0.2', '>= 0.2.3', require: false # Ruby >= 3.2 -gem 'yard', '~> 0.9', '>= 0.9.45', require: false -gem 'yard-junk', '~> 0.1', '>= 0.1.0', require: false # Ruby >= 3.1 -gem 'yard-relative_markdown_links', '~> 0.6', require: false +gem "kramdown", "~> 2.5", ">= 2.5.2", require: false # Ruby >= 2.5 +gem "kramdown-parser-gfm", "~> 1.1", require: false # Ruby >= 2.3 +gem "yaml-converter", "~> 0.2", ">= 0.2.3", require: false # Ruby >= 3.2 +gem "yard", "~> 0.9", ">= 0.9.45", require: false +gem "yard-junk", "~> 0.1", ">= 0.1.0", require: false # Ruby >= 3.1 +gem "yard-relative_markdown_links", "~> 0.6", require: false -if ENV.fetch('GALTZO_FLOSS_DEV', 'false').casecmp('false').zero? - gem 'yard-fence', '~> 0.9', '>= 0.9.6', require: false # Ruby >= 3.2 - gem 'yard-timekeeper', '~> 0.2', '>= 0.2.4', require: false - gem 'yard-yaml', '~> 0.2', '>= 0.2.3', require: false +if ENV.fetch("GALTZO_FLOSS_DEV", "false").casecmp("false").zero? + gem "yard-fence", "~> 0.9", ">= 0.9.6", require: false # Ruby >= 3.2 + gem "yard-timekeeper", "~> 0.2", ">= 0.2.4", require: false + gem "yard-yaml", "~> 0.2", ">= 0.2.3", require: false else - eval_gemfile 'documentation_local.gemfile' + eval_gemfile "documentation_local.gemfile" end # Std Lib extractions -gem 'rdoc', '~> 6.11', require: false unless ENV.fetch('KJ_FRAMEWORK_MATRIX_GEM', '') == 'rdoc' +gem "rdoc", "~> 6.11", require: false unless ENV.fetch("KJ_FRAMEWORK_MATRIX_GEM", "") == "rdoc" diff --git a/gems/ast-merge/gemfiles/modular/documentation_local.gemfile b/gems/ast-merge/gemfiles/modular/documentation_local.gemfile index 3c1453057..b1bc573f7 100644 --- a/gems/ast-merge/gemfiles/modular/documentation_local.gemfile +++ b/gems/ast-merge/gemfiles/modular/documentation_local.gemfile @@ -11,19 +11,21 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] -nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) +nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] +nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == "nomono" } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + if nomono_locked + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] + end end -Kernel.send(:gem, 'nomono', *nomono_activation_requirements) -require 'nomono/bundler' +Kernel.send(:gem, "nomono", *nomono_activation_requirements) +require "nomono/bundler" local_gems = %w[yard-fence yard-timekeeper yard-yaml] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) @@ -32,9 +34,9 @@ local_gems_to_eval = local_gems - %w[ast-merge] - declared_gems # export GALTZO_FLOSS_DEV=/path/to/galtzo-floss eval_nomono_gems( gems: local_gems_to_eval, - prefix: 'GALTZO_FLOSS', - path_env: 'GALTZO_FLOSS_DEV', - vendored_gems_env: 'GALTZO_FLOSS_VENDORED_GEMS', - vendor_gem_dir_env: 'GALTZO_FLOSS_VENDOR_GEM_DIR', - debug_env: 'GALTZO_FLOSS_DEBUG' + prefix: "GALTZO_FLOSS", + path_env: "GALTZO_FLOSS_DEV", + vendored_gems_env: "GALTZO_FLOSS_VENDORED_GEMS", + vendor_gem_dir_env: "GALTZO_FLOSS_VENDOR_GEM_DIR", + debug_env: "GALTZO_FLOSS_DEBUG" ) diff --git a/gems/ast-merge/gemfiles/modular/erb/r2/v3.0.gemfile b/gems/ast-merge/gemfiles/modular/erb/r2/v3.0.gemfile index 7c83a239b..c03bd8d85 100644 --- a/gems/ast-merge/gemfiles/modular/erb/r2/v3.0.gemfile +++ b/gems/ast-merge/gemfiles/modular/erb/r2/v3.0.gemfile @@ -1 +1 @@ -gem 'erb', '~> 3.0' # ruby >= 2.7.0 +gem "erb", "~> 3.0" # ruby >= 2.7.0 diff --git a/gems/ast-merge/gemfiles/modular/erb/r3/v5.0.gemfile b/gems/ast-merge/gemfiles/modular/erb/r3/v5.0.gemfile index ec7ff451f..1bd029cc1 100644 --- a/gems/ast-merge/gemfiles/modular/erb/r3/v5.0.gemfile +++ b/gems/ast-merge/gemfiles/modular/erb/r3/v5.0.gemfile @@ -1 +1 @@ -gem 'erb', '~> 6.0', '>= 6.0.6' # ruby >= 3.2.0 +gem "erb", "~> 6.0", ">= 6.0.6" # ruby >= 3.2.0 diff --git a/gems/ast-merge/gemfiles/modular/erb/r4/v5.0.gemfile b/gems/ast-merge/gemfiles/modular/erb/r4/v5.0.gemfile index ec7ff451f..1bd029cc1 100644 --- a/gems/ast-merge/gemfiles/modular/erb/r4/v5.0.gemfile +++ b/gems/ast-merge/gemfiles/modular/erb/r4/v5.0.gemfile @@ -1 +1 @@ -gem 'erb', '~> 6.0', '>= 6.0.6' # ruby >= 3.2.0 +gem "erb", "~> 6.0", ">= 6.0.6" # ruby >= 3.2.0 diff --git a/gems/ast-merge/gemfiles/modular/erb/vHEAD.gemfile b/gems/ast-merge/gemfiles/modular/erb/vHEAD.gemfile index ea0101185..48fee4218 100644 --- a/gems/ast-merge/gemfiles/modular/erb/vHEAD.gemfile +++ b/gems/ast-merge/gemfiles/modular/erb/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 3.2 -gem 'erb', github: 'ruby/erb', branch: 'master' +gem "erb", github: "ruby/erb", branch: "master" diff --git a/gems/ast-merge/gemfiles/modular/json/truffleruby_22_3.gemfile b/gems/ast-merge/gemfiles/modular/json/truffleruby_22_3.gemfile index 9b2f8d96a..b0e69ab11 100644 --- a/gems/ast-merge/gemfiles/modular/json/truffleruby_22_3.gemfile +++ b/gems/ast-merge/gemfiles/modular/json/truffleruby_22_3.gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -if RUBY_ENGINE == 'truffleruby' && RUBY_ENGINE_VERSION.start_with?('22.3') +if RUBY_ENGINE == "truffleruby" && RUBY_ENGINE_VERSION.start_with?("22.3") # TruffleRuby 22.3 ships the json default gem from its emulated MRI Ruby. - gem 'json', '= 2.5.1' + gem "json", "= 2.5.1" end diff --git a/gems/ast-merge/gemfiles/modular/json/truffleruby_23_0.gemfile b/gems/ast-merge/gemfiles/modular/json/truffleruby_23_0.gemfile index d787a5ef4..7b2660a2b 100644 --- a/gems/ast-merge/gemfiles/modular/json/truffleruby_23_0.gemfile +++ b/gems/ast-merge/gemfiles/modular/json/truffleruby_23_0.gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -if RUBY_ENGINE == 'truffleruby' && RUBY_ENGINE_VERSION.start_with?('23.0') +if RUBY_ENGINE == "truffleruby" && RUBY_ENGINE_VERSION.start_with?("23.0") # TruffleRuby 23.0 ships the json default gem from its emulated MRI Ruby. - gem 'json', '= 2.6.1' + gem "json", "= 2.6.1" end diff --git a/gems/ast-merge/gemfiles/modular/json/truffleruby_23_1.gemfile b/gems/ast-merge/gemfiles/modular/json/truffleruby_23_1.gemfile index d78486b0e..dfa21f2e4 100644 --- a/gems/ast-merge/gemfiles/modular/json/truffleruby_23_1.gemfile +++ b/gems/ast-merge/gemfiles/modular/json/truffleruby_23_1.gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -if RUBY_ENGINE == 'truffleruby' && RUBY_ENGINE_VERSION.start_with?('23.1') +if RUBY_ENGINE == "truffleruby" && RUBY_ENGINE_VERSION.start_with?("23.1") # TruffleRuby 23.1 ships the json default gem from its emulated MRI Ruby. - gem 'json', '= 2.6.3' + gem "json", "= 2.6.3" end diff --git a/gems/ast-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile b/gems/ast-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile index e27f1bbae..42e9d9bd4 100644 --- a/gems/ast-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile +++ b/gems/ast-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 -gem 'mutex_m', '~> 0.2' +gem "mutex_m", "~> 0.2" diff --git a/gems/ast-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile b/gems/ast-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile index e27f1bbae..42e9d9bd4 100644 --- a/gems/ast-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile +++ b/gems/ast-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 -gem 'mutex_m', '~> 0.2' +gem "mutex_m", "~> 0.2" diff --git a/gems/ast-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile b/gems/ast-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile index e27f1bbae..42e9d9bd4 100644 --- a/gems/ast-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile +++ b/gems/ast-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 -gem 'mutex_m', '~> 0.2' +gem "mutex_m", "~> 0.2" diff --git a/gems/ast-merge/gemfiles/modular/mutex_m/vHEAD.gemfile b/gems/ast-merge/gemfiles/modular/mutex_m/vHEAD.gemfile index 9dac2f6cb..8af3b6fca 100644 --- a/gems/ast-merge/gemfiles/modular/mutex_m/vHEAD.gemfile +++ b/gems/ast-merge/gemfiles/modular/mutex_m/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 (dependency of omniauth) -gem 'mutex_m', github: 'ruby/mutex_m', branch: 'master' +gem "mutex_m", github: "ruby/mutex_m", branch: "master" diff --git a/gems/ast-merge/gemfiles/modular/optional.gemfile b/gems/ast-merge/gemfiles/modular/optional.gemfile index 9ea429538..80bc45196 100644 --- a/gems/ast-merge/gemfiles/modular/optional.gemfile +++ b/gems/ast-merge/gemfiles/modular/optional.gemfile @@ -9,8 +9,8 @@ # Optional dependencies are not depended on directly, but may be used if present. # Required for curated binstubs generated by kettle-jem install -gem 'rbs', '>= 3.0', require: false # ruby >= 3.1 +gem "rbs", ">= 3.0", require: false # ruby >= 3.1 # Required for kettle-pre-release # URL parsing with Unicode support (falls back to URI if not available) -gem 'addressable', '>= 2.8', '< 3' # ruby >= 2.2 +gem "addressable", ">= 2.8", "< 3" # ruby >= 2.2 diff --git a/gems/ast-merge/gemfiles/modular/rspec.gemfile b/gems/ast-merge/gemfiles/modular/rspec.gemfile index 2af210a41..72fdf8b7f 100644 --- a/gems/ast-merge/gemfiles/modular/rspec.gemfile +++ b/gems/ast-merge/gemfiles/modular/rspec.gemfile @@ -1,4 +1,4 @@ -gem 'rspec_junit_formatter', - github: 'pboling/rspec_junit_formatter', - branch: 'main', - ref: '9e6bcaaedd49477b62878ed568dc4ada5cc7cb5e' +gem "rspec_junit_formatter", + github: "pboling/rspec_junit_formatter", + branch: "main", + ref: "9e6bcaaedd49477b62878ed568dc4ada5cc7cb5e" diff --git a/gems/ast-merge/gemfiles/modular/runtime_heads.gemfile b/gems/ast-merge/gemfiles/modular/runtime_heads.gemfile index ebf17c529..02f134c7f 100644 --- a/gems/ast-merge/gemfiles/modular/runtime_heads.gemfile +++ b/gems/ast-merge/gemfiles/modular/runtime_heads.gemfile @@ -8,4 +8,4 @@ # Test against HEAD of runtime dependencies so we can proactively file bugs -eval_gemfile('x_std_libs/vHEAD.gemfile') +eval_gemfile("x_std_libs/vHEAD.gemfile") diff --git a/gems/ast-merge/gemfiles/modular/stringio/r2/v3.0.gemfile b/gems/ast-merge/gemfiles/modular/stringio/r2/v3.0.gemfile index 3616f4e3a..e85bb18ee 100644 --- a/gems/ast-merge/gemfiles/modular/stringio/r2/v3.0.gemfile +++ b/gems/ast-merge/gemfiles/modular/stringio/r2/v3.0.gemfile @@ -2,4 +2,4 @@ # NOT SEMVER # Version 3.0.7 dropped support for Ruby <= 2.7 # Version 3.0.0 dropped support for Ruby <= 2.4 -gem 'stringio', '>= 3.0' +gem "stringio", ">= 3.0" diff --git a/gems/ast-merge/gemfiles/modular/stringio/r3/v3.0.gemfile b/gems/ast-merge/gemfiles/modular/stringio/r3/v3.0.gemfile index 3616f4e3a..e85bb18ee 100644 --- a/gems/ast-merge/gemfiles/modular/stringio/r3/v3.0.gemfile +++ b/gems/ast-merge/gemfiles/modular/stringio/r3/v3.0.gemfile @@ -2,4 +2,4 @@ # NOT SEMVER # Version 3.0.7 dropped support for Ruby <= 2.7 # Version 3.0.0 dropped support for Ruby <= 2.4 -gem 'stringio', '>= 3.0' +gem "stringio", ">= 3.0" diff --git a/gems/ast-merge/gemfiles/modular/stringio/r4/v3.0.gemfile b/gems/ast-merge/gemfiles/modular/stringio/r4/v3.0.gemfile index 3616f4e3a..e85bb18ee 100644 --- a/gems/ast-merge/gemfiles/modular/stringio/r4/v3.0.gemfile +++ b/gems/ast-merge/gemfiles/modular/stringio/r4/v3.0.gemfile @@ -2,4 +2,4 @@ # NOT SEMVER # Version 3.0.7 dropped support for Ruby <= 2.7 # Version 3.0.0 dropped support for Ruby <= 2.4 -gem 'stringio', '>= 3.0' +gem "stringio", ">= 3.0" diff --git a/gems/ast-merge/gemfiles/modular/stringio/vHEAD.gemfile b/gems/ast-merge/gemfiles/modular/stringio/vHEAD.gemfile index 78f5f5d8a..5f2a74126 100644 --- a/gems/ast-merge/gemfiles/modular/stringio/vHEAD.gemfile +++ b/gems/ast-merge/gemfiles/modular/stringio/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 (dependency of omniauth) -gem 'stringio', github: 'ruby/stringio', branch: 'master' +gem "stringio", github: "ruby/stringio", branch: "master" diff --git a/gems/ast-merge/gemfiles/modular/style.gemfile b/gems/ast-merge/gemfiles/modular/style.gemfile index 4dbcc02c0..35de4dcd6 100644 --- a/gems/ast-merge/gemfiles/modular/style.gemfile +++ b/gems/ast-merge/gemfiles/modular/style.gemfile @@ -9,23 +9,23 @@ # Style tasks run on the latest Ruby; RuboCop-LTS selects the compatibility # rules for the configured Ruby floor independently from task dependency floors. -gem 'reek', '~> 6.5', '>= 6.5.0' +gem "reek", "~> 6.5", ">= 6.5.0" platform :mri do - gem 'appraisal2-rubocop', '~> 1.0', '>= 1.0.0', require: false - gem 'rubocop-gradual', '~> 0.4', '>= 0.4.0' - gem 'rubocop-minitest', '~> 0.40', '>= 0.40.0' - gem 'rubocop-on-rbs', '~> 2.0', '>= 2.0.0' # ruby >= 3.2.0 + gem "appraisal2-rubocop", "~> 1.0", ">= 1.0.0", require: false + gem "rubocop-gradual", "~> 0.4", ">= 0.4.0" + gem "rubocop-minitest", "~> 0.40", ">= 0.40.0" + gem "rubocop-on-rbs", "~> 2.0", ">= 2.0.0" # ruby >= 3.2.0 # gem "rubocop", "~> 1.73", ">= 1.73.2" # constrained by standard - gem 'rubocop-packaging', '~> 0.6', '>= 0.6.0' - gem 'standard', '~> 1.56', '>= 1.56.0' + gem "rubocop-packaging", "~> 0.6", ">= 0.6.0" + gem "standard", "~> 1.56", ">= 1.56.0" - if ENV.fetch('RUBOCOP_LTS_LOCAL', 'false').casecmp('false').zero? + if ENV.fetch("RUBOCOP_LTS_LOCAL", "false").casecmp("false").zero? declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) - gem 'rubocop-lts', '~> 24.2', '>= 24.2.1' unless declared_gems.include?('rubocop-lts') - gem 'rubocop-lts-rspec', '~> 1.0', '>= 1.0.5' unless declared_gems.include?('rubocop-lts-rspec') - gem 'rubocop-ruby3_2', '~> 3.0', '>= 3.0.6' unless declared_gems.include?('rubocop-ruby3_2') + gem "rubocop-lts", "~> 24.2", ">= 24.2.1" unless declared_gems.include?("rubocop-lts") + gem "rubocop-lts-rspec", "~> 1.0", ">= 1.0.5" unless declared_gems.include?("rubocop-lts-rspec") + gem "rubocop-ruby3_2", "~> 3.0", ">= 3.0.6" unless declared_gems.include?("rubocop-ruby3_2") else - eval_gemfile('style_local.gemfile') + eval_gemfile("style_local.gemfile") end end diff --git a/gems/ast-merge/gemfiles/modular/style_local.gemfile b/gems/ast-merge/gemfiles/modular/style_local.gemfile index e4a06d74e..a003c7b12 100644 --- a/gems/ast-merge/gemfiles/modular/style_local.gemfile +++ b/gems/ast-merge/gemfiles/modular/style_local.gemfile @@ -14,19 +14,21 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] -nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) +nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] +nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == "nomono" } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + if nomono_locked + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] + end end -Kernel.send(:gem, 'nomono', *nomono_activation_requirements) -require 'nomono/bundler' +Kernel.send(:gem, "nomono", *nomono_activation_requirements) +require "nomono/bundler" local_gems = %w[rubocop-lts rubocop-lts-rspec rubocop-ruby3_2 standard-rubocop-lts] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) @@ -36,11 +38,11 @@ local_gems_to_eval = local_gems - %w[ast-merge] - declared_gems platform :mri do eval_nomono_gems( gems: local_gems_to_eval, - prefix: 'RUBOCOP_LTS', - path_env: 'RUBOCOP_LTS_LOCAL', - vendored_gems_env: 'VENDORED_GEMS', - vendor_gem_dir_env: 'VENDOR_GEM_DIR', - debug_env: 'RUBOCOP_LTS_DEBUG', - root: %w[src rubocop-lts] + prefix: "RUBOCOP_LTS", + path_env: "RUBOCOP_LTS_LOCAL", + vendored_gems_env: "VENDORED_GEMS", + vendor_gem_dir_env: "VENDOR_GEM_DIR", + debug_env: "RUBOCOP_LTS_DEBUG", + root: ["src", "rubocop-lts"] ) end diff --git a/gems/ast-merge/gemfiles/modular/webrick/r4/v1.9.gemfile b/gems/ast-merge/gemfiles/modular/webrick/r4/v1.9.gemfile index b1329ba84..eaab4a473 100644 --- a/gems/ast-merge/gemfiles/modular/webrick/r4/v1.9.gemfile +++ b/gems/ast-merge/gemfiles/modular/webrick/r4/v1.9.gemfile @@ -1 +1 @@ -gem 'webrick', '~> 1.9' +gem "webrick", "~> 1.9" diff --git a/gems/ast-merge/gemfiles/modular/webrick/vHEAD.gemfile b/gems/ast-merge/gemfiles/modular/webrick/vHEAD.gemfile index c7e6f81a1..8a789b634 100644 --- a/gems/ast-merge/gemfiles/modular/webrick/vHEAD.gemfile +++ b/gems/ast-merge/gemfiles/modular/webrick/vHEAD.gemfile @@ -1 +1 @@ -gem 'webrick', '>= 1.9' +gem "webrick", ">= 1.9" diff --git a/gems/ast-merge/gemfiles/modular/x_std_libs.gemfile b/gems/ast-merge/gemfiles/modular/x_std_libs.gemfile index b1f43c097..77aad43f2 100644 --- a/gems/ast-merge/gemfiles/modular/x_std_libs.gemfile +++ b/gems/ast-merge/gemfiles/modular/x_std_libs.gemfile @@ -1,12 +1,12 @@ ### Std Lib Extracted Gems ruby_version = Gem::Version.new(RUBY_VERSION) -if ruby_version >= Gem::Version.new('4.0') - eval_gemfile 'x_std_libs/r4/libs.gemfile' -elsif ruby_version >= Gem::Version.new('3.2') - eval_gemfile 'x_std_libs/r3/libs.gemfile' -elsif ruby_version >= Gem::Version.new('3.1') - eval_gemfile 'x_std_libs/r3.1/libs.gemfile' +if ruby_version >= Gem::Version.new("4.0") + eval_gemfile "x_std_libs/r4/libs.gemfile" +elsif ruby_version >= Gem::Version.new("3.2") + eval_gemfile "x_std_libs/r3/libs.gemfile" +elsif ruby_version >= Gem::Version.new("3.1") + eval_gemfile "x_std_libs/r3.1/libs.gemfile" else - eval_gemfile 'x_std_libs/r2/libs.gemfile' + eval_gemfile "x_std_libs/r2/libs.gemfile" end diff --git a/gems/ast-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile b/gems/ast-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile index 16a5e3d70..441c4f03a 100644 --- a/gems/ast-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile +++ b/gems/ast-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile @@ -1,3 +1,3 @@ -eval_gemfile '../../erb/r2/v3.0.gemfile' -eval_gemfile '../../mutex_m/r2/v0.3.gemfile' -eval_gemfile '../../stringio/r2/v3.0.gemfile' +eval_gemfile "../../erb/r2/v3.0.gemfile" +eval_gemfile "../../mutex_m/r2/v0.3.gemfile" +eval_gemfile "../../stringio/r2/v3.0.gemfile" diff --git a/gems/ast-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile b/gems/ast-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile index 220ff95c1..c293a3ddd 100644 --- a/gems/ast-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile +++ b/gems/ast-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile @@ -1,3 +1,3 @@ -eval_gemfile '../../erb/r3/v5.0.gemfile' -eval_gemfile '../../mutex_m/r3/v0.3.gemfile' -eval_gemfile '../../stringio/r3/v3.0.gemfile' +eval_gemfile "../../erb/r3/v5.0.gemfile" +eval_gemfile "../../mutex_m/r3/v0.3.gemfile" +eval_gemfile "../../stringio/r3/v3.0.gemfile" diff --git a/gems/ast-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile b/gems/ast-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile index e2f6501eb..eb5574247 100644 --- a/gems/ast-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile +++ b/gems/ast-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile @@ -1,6 +1,6 @@ -eval_gemfile '../../erb/r4/v5.0.gemfile' -eval_gemfile '../../mutex_m/r4/v0.3.gemfile' -eval_gemfile '../../stringio/r4/v3.0.gemfile' -eval_gemfile '../../benchmark/r4/v0.5.gemfile' -eval_gemfile '../../cgi/r4/v0.5.gemfile' -eval_gemfile '../../webrick/r4/v1.9.gemfile' +eval_gemfile "../../erb/r4/v5.0.gemfile" +eval_gemfile "../../mutex_m/r4/v0.3.gemfile" +eval_gemfile "../../stringio/r4/v3.0.gemfile" +eval_gemfile "../../benchmark/r4/v0.5.gemfile" +eval_gemfile "../../cgi/r4/v0.5.gemfile" +eval_gemfile "../../webrick/r4/v1.9.gemfile" diff --git a/gems/ast-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile b/gems/ast-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile index ab75cccf1..d4d5b16c9 100644 --- a/gems/ast-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile +++ b/gems/ast-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile @@ -1,6 +1,6 @@ -eval_gemfile '../erb/vHEAD.gemfile' -eval_gemfile '../mutex_m/vHEAD.gemfile' -eval_gemfile '../stringio/vHEAD.gemfile' -eval_gemfile '../benchmark/vHEAD.gemfile' -eval_gemfile '../cgi/vHEAD.gemfile' -eval_gemfile '../webrick/vHEAD.gemfile' +eval_gemfile "../erb/vHEAD.gemfile" +eval_gemfile "../mutex_m/vHEAD.gemfile" +eval_gemfile "../stringio/vHEAD.gemfile" +eval_gemfile "../benchmark/vHEAD.gemfile" +eval_gemfile "../cgi/vHEAD.gemfile" +eval_gemfile "../webrick/vHEAD.gemfile" diff --git a/gems/ast-merge/spec/spec_helper.rb b/gems/ast-merge/spec/spec_helper.rb index eb1762057..dcc7b2a7e 100644 --- a/gems/ast-merge/spec/spec_helper.rb +++ b/gems/ast-merge/spec/spec_helper.rb @@ -7,16 +7,16 @@ # NOTE: Gemfiles for non-coverage appraisals may not have kettle-soup-cover. # The rescue LoadError handles that scenario. begin - require 'kettle-soup-cover' + require "kettle-soup-cover" if Kettle::Soup::Cover::DO_COV # Requiring simplecov loads the project-local `.simplecov`. - require 'simplecov' - require 'kettle/soup/cover/config' + require "simplecov" + require "kettle/soup/cover/config" SimpleCov.start end -rescue LoadError => e +rescue LoadError => error # check the error message and re-raise when unexpected - raise e unless e.message.include?('kettle') + raise error unless error.message.include?("kettle") end # External RSpec & related config diff --git a/gems/markdown-merge/.kettle-drift.lock b/gems/markdown-merge/.kettle-drift.lock index 7cc6a5131..bd0f9d183 100644 --- a/gems/markdown-merge/.kettle-drift.lock +++ b/gems/markdown-merge/.kettle-drift.lock @@ -4,7 +4,8 @@ "file": "Gemfile", "lines": [ 80, - 120 + 120, + 160 ] } ], @@ -13,7 +14,8 @@ "file": "Gemfile", "lines": [ 91, - 131 + 131, + 171 ] } ], @@ -22,7 +24,8 @@ "file": "Gemfile", "lines": [ 81, - 121 + 121, + 161 ] } ], @@ -31,7 +34,8 @@ "file": "Gemfile", "lines": [ 93, - 133 + 133, + 173 ] } ], @@ -40,7 +44,8 @@ "file": "Gemfile", "lines": [ 96, - 136 + 136, + 176 ] } ], @@ -49,7 +54,8 @@ "file": "Gemfile", "lines": [ 82, - 122 + 122, + 162 ] } ], @@ -59,7 +65,8 @@ "lines": [ 60, 100, - 140 + 140, + 180 ] } ], @@ -68,7 +75,8 @@ "file": "Gemfile", "lines": [ 101, - 141 + 141, + 181 ] } ], @@ -78,7 +86,8 @@ "lines": [ 43, 87, - 127 + 127, + 167 ] } ], @@ -87,7 +96,8 @@ "file": "Gemfile", "lines": [ 110, - 150 + 150, + 190 ] } ], @@ -97,7 +107,8 @@ "lines": [ 35, 79, - 119 + 119, + 159 ] } ], @@ -107,7 +118,8 @@ "lines": [ 69, 109, - 149 + 149, + 189 ] } ], @@ -116,7 +128,8 @@ "file": "Gemfile", "lines": [ 85, - 125 + 125, + 165 ] } ], @@ -126,7 +139,8 @@ "lines": [ 48, 92, - 132 + 132, + 172 ] } ], @@ -136,7 +150,8 @@ "lines": [ 44, 88, - 128 + 128, + 168 ] } ], @@ -145,7 +160,8 @@ "file": "Gemfile", "lines": [ 86, - 126 + 126, + 166 ] } ], @@ -154,7 +170,8 @@ "file": "Gemfile", "lines": [ 103, - 143 + 143, + 183 ] } ], @@ -163,7 +180,8 @@ "file": "Gemfile", "lines": [ 102, - 142 + 142, + 182 ] } ], @@ -172,7 +190,8 @@ "file": "Gemfile", "lines": [ 97, - 137 + 137, + 177 ] } ], @@ -181,7 +200,8 @@ "file": "Gemfile", "lines": [ 106, - 146 + 146, + 186 ] } ] diff --git a/gems/markdown-merge/Gemfile b/gems/markdown-merge/Gemfile index ae8e19da2..987a63f56 100644 --- a/gems/markdown-merge/Gemfile +++ b/gems/markdown-merge/Gemfile @@ -6,7 +6,7 @@ # kettle-jem will then preserve content between those markers across template runs. # kettle-jem:unfreeze -source 'https://gem.coop' +source "https://gem.coop" git_source(:codeberg) { |repo_name| "https://codeberg.org/#{repo_name}" } git_source(:gitlab) { |repo_name| "https://gitlab.com/#{repo_name}" } @@ -19,18 +19,62 @@ git_source(:gitlab) { |repo_name| "https://gitlab.com/#{repo_name}" } gemspec # Local workspace dependency wiring for *_local.gemfile overrides -nomono_requirements = ['~> 1.0', '>= 1.0.8'] -gem 'nomono', *nomono_requirements, require: false # ruby >= 2.2 +nomono_requirements = ["~> 1.0", ">= 1.0.8"] +gem "nomono", *nomono_requirements, require: false # ruby >= 2.2 # Direct sibling dependencies (env-switched via STRUCTUREDMERGE_DEV) direct_sibling_gems = %w[ ast-merge tree_haver ] -direct_sibling_dev = ENV.fetch('STRUCTUREDMERGE_DEV', '') +direct_sibling_dev = ENV.fetch("STRUCTUREDMERGE_DEV", "") direct_sibling_local = !direct_sibling_dev.empty? && !%w[false 0 no off].include?(direct_sibling_dev.downcase) -direct_sibling_templating = ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? +direct_sibling_templating = ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? + +if direct_sibling_gems.any? && + (direct_sibling_local || + ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero?) + direct_sibling_dev_was_set = ENV.key?("STRUCTUREDMERGE_DEV") + direct_sibling_dev_original = ENV.fetch("STRUCTUREDMERGE_DEV", nil) + begin + nomono_activation_requirements = nomono_requirements + nomono_lockfile = File.expand_path("Gemfile.lock", __dir__) + if File.file?(nomono_lockfile) + nomono_locked_spec = Bundler::LockfileParser + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == "nomono" } + nomono_locked = nomono_locked_spec && + Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) + if nomono_locked + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] + end + end + Kernel.send(:gem, "nomono", *nomono_activation_requirements) + require "nomono/bundler" + if direct_sibling_templating && !direct_sibling_local + ENV["STRUCTUREDMERGE_DEV"] = File.expand_path("..", __dir__) + end + + eval_nomono_gems( + gems: direct_sibling_gems, + prefix: "STRUCTUREDMERGE", + path_env: "STRUCTUREDMERGE_DEV", + root: ["src", "my", "structuredmerge"] + ) + rescue LoadError + warn "Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies." + ensure + if direct_sibling_templating && !direct_sibling_local + if direct_sibling_dev_was_set + ENV["STRUCTUREDMERGE_DEV"] = direct_sibling_dev_original + else + ENV.delete("STRUCTUREDMERGE_DEV") + end + end + end +end if direct_sibling_gems.any? && (direct_sibling_local || @@ -153,28 +197,28 @@ if direct_sibling_gems.any? && end # Use released TSLP with the Ruby ABI platform-gem fix. -gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' +gem "tree_sitter_language_pack", "~> 1.13", ">= 1.13.3" # Templating (env-switched: STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local paths) -eval_gemfile 'gemfiles/modular/templating.gemfile' if ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? +eval_gemfile "gemfiles/modular/templating.gemfile" if ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? # Debugging -eval_gemfile 'gemfiles/modular/debug.gemfile' +eval_gemfile "gemfiles/modular/debug.gemfile" # Code Coverage (env-switched: KETTLE_DEV_DEV=true for local paths) -eval_gemfile 'gemfiles/modular/coverage.gemfile' +eval_gemfile "gemfiles/modular/coverage.gemfile" # Linting -eval_gemfile 'gemfiles/modular/style.gemfile' +eval_gemfile "gemfiles/modular/style.gemfile" # Documentation -eval_gemfile 'gemfiles/modular/documentation.gemfile' +eval_gemfile "gemfiles/modular/documentation.gemfile" # Optional -eval_gemfile 'gemfiles/modular/optional.gemfile' +eval_gemfile "gemfiles/modular/optional.gemfile" ### Std Lib Extracted Gems -eval_gemfile 'gemfiles/modular/x_std_libs.gemfile' +eval_gemfile "gemfiles/modular/x_std_libs.gemfile" # See unlocked_deps appraisal for more details on irb inclusion -gem 'irb', '~> 1.17' # ruby >= 2.7 +gem "irb", "~> 1.17" # ruby >= 2.7 diff --git a/gems/markdown-merge/Gemfile.lock b/gems/markdown-merge/Gemfile.lock index 6c4ae1ae6..c389e115c 100644 --- a/gems/markdown-merge/Gemfile.lock +++ b/gems/markdown-merge/Gemfile.lock @@ -6,6 +6,283 @@ PATH tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly + specs: + ast-crispr-markdown-markly (7.1.0) + ast-crispr (= 7.1.0) + markly-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism + specs: + ast-crispr-ruby-prism (7.1.0) + ast-crispr (= 7.1.0) + prism-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr + specs: + ast-crispr (7.1.0) + ast-merge (= 7.1.0) + service_actor (~> 3.9) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git + specs: + ast-merge-git (7.1.0) + ast-merge (= 7.1.0) + json-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge + specs: + ast-merge (7.1.0) + benchmark + token-resolver (~> 2.0, >= 2.0.4) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template + specs: + ast-template (7.1.0) + ast-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge + specs: + bash-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge + specs: + binary-merge (7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge + specs: + citrus-toml-merge (7.1.0) + toml-merge (= 7.1.0) + toml-rb (~> 4.1) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge + specs: + commonmarker-merge (7.1.0) + commonmarker (~> 2.2) + markdown-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge + specs: + dotenv-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge + specs: + go-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge + specs: + json-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem + specs: + kettle-jem (7.1.0) + addressable (>= 2.8, < 3) + ast-crispr-markdown-markly (= 7.1.0) + ast-crispr-ruby-prism (= 7.1.0) + ast-merge (= 7.1.0) + bash-merge (= 7.1.0) + citrus-toml-merge (= 7.1.0) + commonmarker-merge (= 7.1.0) + dotenv-merge (= 7.1.0) + json-merge (= 7.1.0) + kettle-dev (~> 2.3, >= 2.3.5) + kettle-rb (~> 0.1, >= 0.1.4) + kramdown-merge (= 7.1.0) + markdown-merge (= 7.1.0) + markly-merge (= 7.1.0) + prism-merge (= 7.1.0) + psych-merge (= 7.1.0) + rbs (>= 3.10) + rbs-merge (= 7.1.0) + ruby-merge (= 7.1.0) + token-resolver (~> 2.0, >= 2.0.4) + toml-merge (= 7.1.0) + toml-rb (~> 4.2) + tree_haver (= 7.1.0) + yaml-merge (= 7.1.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge + specs: + kramdown-merge (7.1.0) + kramdown (~> 2.5) + markdown-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge + specs: + markly-merge (7.1.0) + markdown-merge (= 7.1.0) + markly (~> 0.9) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge + specs: + parslet-toml-merge (7.1.0) + toml (~> 0.3) + toml-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge + specs: + plain-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge + specs: + prism-merge (7.1.0) + prism (~> 1.6) + ruby-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge + specs: + psych-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + yaml-merge (= 7.1.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge + specs: + rbs-merge (7.1.0) + ast-merge (= 7.1.0) + rbs (>= 3.10) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge + specs: + ruby-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge + specs: + rust-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb + specs: + smorg-rb (7.1.0) + ast-merge (= 7.1.0) + ast-merge-git (= 7.1.0) + diff-lcs (~> 1.5) + go-merge (= 7.1.0) + json-merge (= 7.1.0) + kettle-jem (= 7.1.0) + markly-merge (= 7.1.0) + plain-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge + specs: + toml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver + specs: + tree_haver (7.1.0) + citrus (~> 3.0) + parslet (~> 2.0) + tree_sitter_language_pack (>= 1.13.2, < 2.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge + specs: + typescript-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge + specs: + yaml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge + specs: + zip-merge (7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /var/home/pboling/src/my/kettle-dev/kettle-drift + specs: + kettle-drift (1.0.6) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /var/home/pboling/src/my/kettle-dev/kettle-soup-cover + specs: + kettle-soup-cover (3.0.4) + kettle-wash (~> 0.1, >= 0.1.0) + simplecov (>= 1.0) + simplecov-cobertura (>= 4.0) + simplecov-console (~> 0.9, >= 0.9.5) + simplecov-rcov (~> 0.3, >= 0.3.7) + simplecov_lcov_formatter (~> 0.9, >= 0.9.0) + GEM remote: https://gem.coop/ specs: @@ -21,11 +298,6 @@ GEM rubocop (>= 1.0) version_gem (~> 1.1, >= 1.1.14) ast (2.4.3) - ast-merge (7.1.0) - benchmark - token-resolver (~> 2.0, >= 2.0.4) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) backports (3.25.3) benchmark (0.5.0) bigdecimal (4.1.2) @@ -35,6 +307,10 @@ GEM cgi (0.5.2) citrus (3.0.2) cmdparse (3.0.7) + commonmarker (2.9.0-aarch64-linux) + commonmarker (2.9.0-aarch64-linux-musl) + commonmarker (2.9.0-arm64-darwin) + commonmarker (2.9.0-x86_64-linux) concurrent-ruby (1.3.8) date (3.5.1) debug (1.11.1) @@ -98,13 +374,6 @@ GEM kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) kettle-rb (0.1.5) - kettle-soup-cover (3.0.4) - kettle-wash (~> 0.1, >= 0.1.0) - simplecov (>= 1.0) - simplecov-cobertura (>= 4.0) - simplecov-console (~> 0.9, >= 0.9.5) - simplecov-rcov (~> 0.3, >= 0.3.7) - simplecov_lcov_formatter (~> 0.9, >= 0.9.0) kettle-test (2.0.12) appraisal2 (~> 3.0, >= 3.0.6) backports (~> 3.0) @@ -125,6 +394,7 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) + markly (0.16.0) mutex_m (0.3.0) nokogiri (1.19.4-aarch64-linux-gnu) racc (~> 1.4) @@ -287,6 +557,8 @@ GEM ruby-progressbar (1.13.0) ruby_engine (2.0.3) ruby_version (1.0.3) + service_actor (3.9.4) + zeitwerk (>= 1.0) silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) @@ -341,11 +613,11 @@ GEM token-resolver (2.0.5) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.14) - tree_haver (7.1.0) - citrus (~> 3.0) - parslet (~> 2.0) - tree_sitter_language_pack (>= 1.13.2, < 2.0) - version_gem (~> 1.1, >= 1.1.9) + toml (0.3.0) + parslet (>= 1.8.0, < 3.0.0) + toml-rb (4.2.0) + citrus (~> 3.0, > 3.0) + racc (~> 1.7) tree_sitter_language_pack (1.13.3-aarch64-linux) sorbet-runtime (~> 0.5) tree_sitter_language_pack (1.13.3-arm64-darwin) @@ -400,24 +672,46 @@ DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) appraisal2-rubocop (~> 1.0, >= 1.0.0) + ast-crispr! + ast-crispr-markdown-markly! + ast-crispr-ruby-prism! + ast-merge! + ast-merge-git! + ast-template! + bash-merge! benchmark (~> 0.5, >= 0.5.0) + binary-merge! bundler-audit (~> 0.9.3) cgi (~> 0.5) + citrus-toml-merge! + commonmarker-merge! debug (>= 1.1) + dotenv-merge! erb (~> 6.0, >= 6.0.6) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.0) + go-merge! irb (~> 1.17) + json-merge! kettle-dev (~> 2.0, >= 2.2.25) - kettle-soup-cover (~> 3.0, >= 3.0.3) + kettle-drift! + kettle-jem! + kettle-soup-cover! kettle-test (~> 2.0, >= 2.0.9) kramdown (~> 2.5, >= 2.5.2) + kramdown-merge! kramdown-parser-gfm (~> 1.1) markdown-merge! + markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) + parslet-toml-merge! + plain-merge! + prism-merge! + psych-merge! rake (~> 13.0) rbs (>= 3.0) + rbs-merge! rdoc (~> 6.11) reek (~> 6.5, >= 6.5.0) require_bench (~> 1.0, >= 1.0.4) @@ -428,19 +722,27 @@ DEPENDENCIES rubocop-on-rbs (~> 2.0, >= 2.0.0) rubocop-packaging (~> 0.6, >= 0.6.0) rubocop-ruby3_2 (~> 3.0, >= 3.0.6) + ruby-merge! ruby-progressbar (~> 1.13) + rust-merge! + smorg-rb! standard (~> 1.56, >= 1.56.0) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) + toml-merge! + tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) + typescript-merge! webrick (~> 1.9) yaml-converter (~> 0.2, >= 0.2.3) + yaml-merge! yard (~> 0.9, >= 0.9.45) yard-fence (~> 0.9, >= 0.9.6) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) yard-timekeeper (~> 0.2, >= 0.2.4) yard-yaml (~> 0.2, >= 0.2.3) + zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af @@ -448,20 +750,34 @@ CHECKSUMS appraisal2 (3.2.0) sha256=ccd0b767ac4060cd7af6d16747459b6990f49c39c7b4fb1f7d1146b1e97c492f appraisal2-rubocop (1.0.0) sha256=b71410fbb014befda5340605a605b7f6f3f012739baf0acc5b4351b592c3258d ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 + ast-crispr (7.1.0) + ast-crispr-markdown-markly (7.1.0) + ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) + ast-merge-git (7.1.0) + ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 + bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd + binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 + citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 + commonmarker (2.9.0-aarch64-linux) sha256=e2b4aadb9a2cfa4e206582641ce3a49465549ac1ed4c289fdd63b78d8f24579c + commonmarker (2.9.0-aarch64-linux-musl) sha256=1cf4d2821f2a7e64945f1ed7c4eeced586fdb27ea7fe7337788802cf8f57cfca + commonmarker (2.9.0-arm64-darwin) sha256=1748dbfa4f5813b0d2a14bb4bbfa65a4ec293aa1c825016d60029ee0e132b046 + commonmarker (2.9.0-x86_64-linux) sha256=8cfe92970eef585a19ddf6613224b91cab64d6029834661bda801f877c9c7f43 + commonmarker-merge (7.1.0) concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 + dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -474,21 +790,28 @@ CHECKSUMS gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f + go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 + json-merge (7.1.0) kettle-dev (2.3.9) + kettle-drift (1.0.6) + kettle-jem (7.1.0) kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f kettle-soup-cover (3.0.4) kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa + kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 markdown-merge (7.1.0) + markly (0.16.0) sha256=6f70d79e385b1efc9e171f74c81628826259039fe6c778e03c3924c71dac5511 + markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-aarch64-linux-gnu) sha256=1269fb644a6de405057a53dd5c762b1209b43ca7424f839454d3dbc677c31a8f nokogiri (1.19.4-aarch64-linux-musl) sha256=35c65b9ce72b3bb03207bdbe7067915019dc18c1b9b59139684bd6690fdd01af @@ -502,15 +825,20 @@ CHECKSUMS parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 + parslet-toml-merge (7.1.0) + plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 + prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 + psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 + rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb @@ -545,15 +873,19 @@ CHECKSUMS rubocop-rspec_rails (2.32.0) sha256=4a0d641c72f6ebb957534f539d9d0a62c47abd8ce0d0aeee1ef4701e892a9100 rubocop-ruby3_2 (3.0.7) sha256=f53dd6d286fb05186214fc6ec116783e7f837030918e8931c05de773e98f8466 rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 + ruby-merge (7.1.0) ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 + rust-merge (7.1.0) + service_actor (3.9.4) sha256=e63b523630b9a7e62959b2a90113b08d2565b5de9c148557b281ef847c9539ce silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed + smorg-rb (7.1.0) sorbet-runtime (0.6.13351) sha256=f8fee17c6e3edf835dc6823d26afb9a7c8969c6710d1fabe2fb43f4e0c15c64f standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b @@ -568,17 +900,22 @@ CHECKSUMS timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.5) sha256=b852f924287ffb58a440856e862b056c8ad97e74b4b2526cee43e0771f40c25c + toml (0.3.0) sha256=0a91d0f76a9036e84e44f95693b12f58d358c1df3ac8e3b5271f2056ecc6e4b9 + toml-merge (7.1.0) + toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-aarch64-linux) sha256=55ffc7c87868cb45658338363d9eba51b4a8b0259aa88e4de368d2bd1d52fea4 tree_sitter_language_pack (1.13.3-arm64-darwin) sha256=bc2498db605f212a1dbd2465ed3f65190d7da786f6ed5d30fcf958121aeb4a5c tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 + typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 webrick (1.9.2) sha256=beb4a15fc474defed24a3bda4ffd88a490d517c9e4e6118c3edce59e45864131 yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 + yaml-merge (7.1.0) yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd @@ -586,6 +923,7 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 + zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH diff --git a/gems/markdown-merge/Rakefile b/gems/markdown-merge/Rakefile index 335c98aab..2be51dd98 100644 --- a/gems/markdown-merge/Rakefile +++ b/gems/markdown-merge/Rakefile @@ -130,23 +130,23 @@ end ### DUPLICATE DRIFT TASKS begin - require 'kettle/drift' + require "kettle/drift" Kettle::Drift.install_tasks rescue LoadError - desc('(stub) kettle:drift:check is unavailable') - task('kettle:drift:check') do + desc("(stub) kettle:drift:check is unavailable") + task("kettle:drift:check") do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc('(stub) kettle:drift:update is unavailable') - task('kettle:drift:update') do + desc("(stub) kettle:drift:update is unavailable") + task("kettle:drift:update") do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc('(stub) kettle:drift:force_update is unavailable') - task('kettle:drift:force_update') do + desc("(stub) kettle:drift:force_update is unavailable") + task("kettle:drift:force_update") do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc('(stub) kettle:drift is unavailable') - task('kettle:drift' => 'kettle:drift:update') + desc("(stub) kettle:drift is unavailable") + task("kettle:drift" => "kettle:drift:update") end ### TEMPLATING TASKS diff --git a/gems/markdown-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile b/gems/markdown-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile index b8392fab0..dec650815 100644 --- a/gems/markdown-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile +++ b/gems/markdown-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.1 -gem 'benchmark', '~> 0.5', '>= 0.5.0' # Removed from Std Lib in Ruby 4.0 +gem "benchmark", "~> 0.5", ">= 0.5.0" # Removed from Std Lib in Ruby 4.0 diff --git a/gems/markdown-merge/gemfiles/modular/benchmark/vHEAD.gemfile b/gems/markdown-merge/gemfiles/modular/benchmark/vHEAD.gemfile index af214aafa..e1eb20c5e 100644 --- a/gems/markdown-merge/gemfiles/modular/benchmark/vHEAD.gemfile +++ b/gems/markdown-merge/gemfiles/modular/benchmark/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.1 -gem 'benchmark', github: 'ruby/benchmark', branch: 'master' +gem "benchmark", github: "ruby/benchmark", branch: "master" diff --git a/gems/markdown-merge/gemfiles/modular/cgi/r4/v0.5.gemfile b/gems/markdown-merge/gemfiles/modular/cgi/r4/v0.5.gemfile index 17ad97260..19ed967c3 100644 --- a/gems/markdown-merge/gemfiles/modular/cgi/r4/v0.5.gemfile +++ b/gems/markdown-merge/gemfiles/modular/cgi/r4/v0.5.gemfile @@ -1 +1 @@ -gem 'cgi', '~> 0.5' +gem "cgi", "~> 0.5" diff --git a/gems/markdown-merge/gemfiles/modular/cgi/vHEAD.gemfile b/gems/markdown-merge/gemfiles/modular/cgi/vHEAD.gemfile index 650fbf033..ef8b816ce 100644 --- a/gems/markdown-merge/gemfiles/modular/cgi/vHEAD.gemfile +++ b/gems/markdown-merge/gemfiles/modular/cgi/vHEAD.gemfile @@ -1 +1 @@ -gem 'cgi', '>= 0.5' +gem "cgi", ">= 0.5" diff --git a/gems/markdown-merge/gemfiles/modular/coverage.gemfile b/gems/markdown-merge/gemfiles/modular/coverage.gemfile index b93014b6b..52d737872 100644 --- a/gems/markdown-merge/gemfiles/modular/coverage.gemfile +++ b/gems/markdown-merge/gemfiles/modular/coverage.gemfile @@ -4,11 +4,11 @@ # Set KETTLE_DEV_DEV=true for local development with path-based dependencies. # When false (default / CI), remote released gems are used. -if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? +if ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false").zero? # Coverage (remote/released) platform :mri do - gem 'kettle-soup-cover', '~> 3.0', '>= 3.0.3', require: false + gem "kettle-soup-cover", "~> 3.0", ">= 3.0.3", require: false end else - eval_gemfile 'coverage_local.gemfile' + eval_gemfile "coverage_local.gemfile" end diff --git a/gems/markdown-merge/gemfiles/modular/coverage_local.gemfile b/gems/markdown-merge/gemfiles/modular/coverage_local.gemfile index 647eab77a..bac3538d7 100644 --- a/gems/markdown-merge/gemfiles/modular/coverage_local.gemfile +++ b/gems/markdown-merge/gemfiles/modular/coverage_local.gemfile @@ -11,19 +11,21 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] -nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) +nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] +nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == "nomono" } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + if nomono_locked + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] + end end -Kernel.send(:gem, 'nomono', *nomono_activation_requirements) -require 'nomono/bundler' +Kernel.send(:gem, "nomono", *nomono_activation_requirements) +require "nomono/bundler" local_gems = %w[kettle-dev kettle-test kettle-soup-cover kettle-drift] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) @@ -33,21 +35,21 @@ local_gems_to_eval = local_gems - %w[markdown-merge] - declared_gems platform :mri do eval_nomono_gems( gems: local_gems_to_eval, - prefix: 'KETTLE_DEV', - path_env: 'KETTLE_DEV_DEV', - vendored_gems_env: 'VENDORED_GEMS', - vendor_gem_dir_env: 'VENDOR_GEM_DIR', - debug_env: 'KETTLE_DEV_DEBUG' + prefix: "KETTLE_DEV", + path_env: "KETTLE_DEV_DEV", + vendored_gems_env: "VENDORED_GEMS", + vendor_gem_dir_env: "VENDOR_GEM_DIR", + debug_env: "KETTLE_DEV_DEBUG" ) - if ENV.fetch('GALTZO_FLOSS_DEV', 'false').casecmp('false') != 0 + if ENV.fetch("GALTZO_FLOSS_DEV", "false").casecmp("false") != 0 eval_nomono_gems( gems: %w[turbo_tests2], - prefix: 'GALTZO_FLOSS', - path_env: 'GALTZO_FLOSS_DEV', - vendored_gems_env: 'GALTZO_FLOSS_VENDORED_GEMS', - vendor_gem_dir_env: 'GALTZO_FLOSS_VENDOR_GEM_DIR', - debug_env: 'GALTZO_FLOSS_DEBUG' + prefix: "GALTZO_FLOSS", + path_env: "GALTZO_FLOSS_DEV", + vendored_gems_env: "GALTZO_FLOSS_VENDORED_GEMS", + vendor_gem_dir_env: "GALTZO_FLOSS_VENDOR_GEM_DIR", + debug_env: "GALTZO_FLOSS_DEBUG" ) end end diff --git a/gems/markdown-merge/gemfiles/modular/debug.gemfile b/gems/markdown-merge/gemfiles/modular/debug.gemfile index eed8d4d1e..4e15b1a3a 100644 --- a/gems/markdown-merge/gemfiles/modular/debug.gemfile +++ b/gems/markdown-merge/gemfiles/modular/debug.gemfile @@ -13,10 +13,10 @@ platform :mri do # Debugging - Ensure ENV["DEBUG"] == "true" to use debuggers within spec suite # Use binding.break, binding.b, or debugger in code - gem 'debug', '>= 1.1' # ruby >= 2.7 + gem "debug", ">= 1.1" # ruby >= 2.7 # Dev Console - Binding.pry - Irb replacement # gem "pry", "~> 0.14" # ruby >= 2.0 end -gem 'gem_bench', '~> 2.0', '>= 2.0.5' +gem "gem_bench", "~> 2.0", ">= 2.0.5" diff --git a/gems/markdown-merge/gemfiles/modular/documentation.gemfile b/gems/markdown-merge/gemfiles/modular/documentation.gemfile index 9d4535f12..d8215416e 100644 --- a/gems/markdown-merge/gemfiles/modular/documentation.gemfile +++ b/gems/markdown-merge/gemfiles/modular/documentation.gemfile @@ -7,20 +7,20 @@ # # Documentation -gem 'kramdown', '~> 2.5', '>= 2.5.2', require: false # Ruby >= 2.5 -gem 'kramdown-parser-gfm', '~> 1.1', require: false # Ruby >= 2.3 -gem 'yaml-converter', '~> 0.2', '>= 0.2.3', require: false # Ruby >= 3.2 -gem 'yard', '~> 0.9', '>= 0.9.45', require: false -gem 'yard-junk', '~> 0.1', '>= 0.1.0', require: false # Ruby >= 3.1 -gem 'yard-relative_markdown_links', '~> 0.6', require: false +gem "kramdown", "~> 2.5", ">= 2.5.2", require: false # Ruby >= 2.5 +gem "kramdown-parser-gfm", "~> 1.1", require: false # Ruby >= 2.3 +gem "yaml-converter", "~> 0.2", ">= 0.2.3", require: false # Ruby >= 3.2 +gem "yard", "~> 0.9", ">= 0.9.45", require: false +gem "yard-junk", "~> 0.1", ">= 0.1.0", require: false # Ruby >= 3.1 +gem "yard-relative_markdown_links", "~> 0.6", require: false -if ENV.fetch('GALTZO_FLOSS_DEV', 'false').casecmp('false').zero? - gem 'yard-fence', '~> 0.9', '>= 0.9.6', require: false # Ruby >= 3.2 - gem 'yard-timekeeper', '~> 0.2', '>= 0.2.4', require: false - gem 'yard-yaml', '~> 0.2', '>= 0.2.3', require: false +if ENV.fetch("GALTZO_FLOSS_DEV", "false").casecmp("false").zero? + gem "yard-fence", "~> 0.9", ">= 0.9.6", require: false # Ruby >= 3.2 + gem "yard-timekeeper", "~> 0.2", ">= 0.2.4", require: false + gem "yard-yaml", "~> 0.2", ">= 0.2.3", require: false else - eval_gemfile 'documentation_local.gemfile' + eval_gemfile "documentation_local.gemfile" end # Std Lib extractions -gem 'rdoc', '~> 6.11', require: false unless ENV.fetch('KJ_FRAMEWORK_MATRIX_GEM', '') == 'rdoc' +gem "rdoc", "~> 6.11", require: false unless ENV.fetch("KJ_FRAMEWORK_MATRIX_GEM", "") == "rdoc" diff --git a/gems/markdown-merge/gemfiles/modular/documentation_local.gemfile b/gems/markdown-merge/gemfiles/modular/documentation_local.gemfile index 598b23cdd..61e166aa0 100644 --- a/gems/markdown-merge/gemfiles/modular/documentation_local.gemfile +++ b/gems/markdown-merge/gemfiles/modular/documentation_local.gemfile @@ -11,19 +11,21 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] -nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) +nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] +nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == "nomono" } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + if nomono_locked + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] + end end -Kernel.send(:gem, 'nomono', *nomono_activation_requirements) -require 'nomono/bundler' +Kernel.send(:gem, "nomono", *nomono_activation_requirements) +require "nomono/bundler" local_gems = %w[yard-fence yard-timekeeper yard-yaml] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) @@ -32,9 +34,9 @@ local_gems_to_eval = local_gems - %w[markdown-merge] - declared_gems # export GALTZO_FLOSS_DEV=/path/to/galtzo-floss eval_nomono_gems( gems: local_gems_to_eval, - prefix: 'GALTZO_FLOSS', - path_env: 'GALTZO_FLOSS_DEV', - vendored_gems_env: 'GALTZO_FLOSS_VENDORED_GEMS', - vendor_gem_dir_env: 'GALTZO_FLOSS_VENDOR_GEM_DIR', - debug_env: 'GALTZO_FLOSS_DEBUG' + prefix: "GALTZO_FLOSS", + path_env: "GALTZO_FLOSS_DEV", + vendored_gems_env: "GALTZO_FLOSS_VENDORED_GEMS", + vendor_gem_dir_env: "GALTZO_FLOSS_VENDOR_GEM_DIR", + debug_env: "GALTZO_FLOSS_DEBUG" ) diff --git a/gems/markdown-merge/gemfiles/modular/erb/r2/v3.0.gemfile b/gems/markdown-merge/gemfiles/modular/erb/r2/v3.0.gemfile index 7c83a239b..c03bd8d85 100644 --- a/gems/markdown-merge/gemfiles/modular/erb/r2/v3.0.gemfile +++ b/gems/markdown-merge/gemfiles/modular/erb/r2/v3.0.gemfile @@ -1 +1 @@ -gem 'erb', '~> 3.0' # ruby >= 2.7.0 +gem "erb", "~> 3.0" # ruby >= 2.7.0 diff --git a/gems/markdown-merge/gemfiles/modular/erb/r3/v5.0.gemfile b/gems/markdown-merge/gemfiles/modular/erb/r3/v5.0.gemfile index ec7ff451f..1bd029cc1 100644 --- a/gems/markdown-merge/gemfiles/modular/erb/r3/v5.0.gemfile +++ b/gems/markdown-merge/gemfiles/modular/erb/r3/v5.0.gemfile @@ -1 +1 @@ -gem 'erb', '~> 6.0', '>= 6.0.6' # ruby >= 3.2.0 +gem "erb", "~> 6.0", ">= 6.0.6" # ruby >= 3.2.0 diff --git a/gems/markdown-merge/gemfiles/modular/erb/r4/v5.0.gemfile b/gems/markdown-merge/gemfiles/modular/erb/r4/v5.0.gemfile index ec7ff451f..1bd029cc1 100644 --- a/gems/markdown-merge/gemfiles/modular/erb/r4/v5.0.gemfile +++ b/gems/markdown-merge/gemfiles/modular/erb/r4/v5.0.gemfile @@ -1 +1 @@ -gem 'erb', '~> 6.0', '>= 6.0.6' # ruby >= 3.2.0 +gem "erb", "~> 6.0", ">= 6.0.6" # ruby >= 3.2.0 diff --git a/gems/markdown-merge/gemfiles/modular/erb/vHEAD.gemfile b/gems/markdown-merge/gemfiles/modular/erb/vHEAD.gemfile index ea0101185..48fee4218 100644 --- a/gems/markdown-merge/gemfiles/modular/erb/vHEAD.gemfile +++ b/gems/markdown-merge/gemfiles/modular/erb/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 3.2 -gem 'erb', github: 'ruby/erb', branch: 'master' +gem "erb", github: "ruby/erb", branch: "master" diff --git a/gems/markdown-merge/gemfiles/modular/json/truffleruby_22_3.gemfile b/gems/markdown-merge/gemfiles/modular/json/truffleruby_22_3.gemfile index 9b2f8d96a..b0e69ab11 100644 --- a/gems/markdown-merge/gemfiles/modular/json/truffleruby_22_3.gemfile +++ b/gems/markdown-merge/gemfiles/modular/json/truffleruby_22_3.gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -if RUBY_ENGINE == 'truffleruby' && RUBY_ENGINE_VERSION.start_with?('22.3') +if RUBY_ENGINE == "truffleruby" && RUBY_ENGINE_VERSION.start_with?("22.3") # TruffleRuby 22.3 ships the json default gem from its emulated MRI Ruby. - gem 'json', '= 2.5.1' + gem "json", "= 2.5.1" end diff --git a/gems/markdown-merge/gemfiles/modular/json/truffleruby_23_0.gemfile b/gems/markdown-merge/gemfiles/modular/json/truffleruby_23_0.gemfile index d787a5ef4..7b2660a2b 100644 --- a/gems/markdown-merge/gemfiles/modular/json/truffleruby_23_0.gemfile +++ b/gems/markdown-merge/gemfiles/modular/json/truffleruby_23_0.gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -if RUBY_ENGINE == 'truffleruby' && RUBY_ENGINE_VERSION.start_with?('23.0') +if RUBY_ENGINE == "truffleruby" && RUBY_ENGINE_VERSION.start_with?("23.0") # TruffleRuby 23.0 ships the json default gem from its emulated MRI Ruby. - gem 'json', '= 2.6.1' + gem "json", "= 2.6.1" end diff --git a/gems/markdown-merge/gemfiles/modular/json/truffleruby_23_1.gemfile b/gems/markdown-merge/gemfiles/modular/json/truffleruby_23_1.gemfile index d78486b0e..dfa21f2e4 100644 --- a/gems/markdown-merge/gemfiles/modular/json/truffleruby_23_1.gemfile +++ b/gems/markdown-merge/gemfiles/modular/json/truffleruby_23_1.gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -if RUBY_ENGINE == 'truffleruby' && RUBY_ENGINE_VERSION.start_with?('23.1') +if RUBY_ENGINE == "truffleruby" && RUBY_ENGINE_VERSION.start_with?("23.1") # TruffleRuby 23.1 ships the json default gem from its emulated MRI Ruby. - gem 'json', '= 2.6.3' + gem "json", "= 2.6.3" end diff --git a/gems/markdown-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile b/gems/markdown-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile index e27f1bbae..42e9d9bd4 100644 --- a/gems/markdown-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile +++ b/gems/markdown-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 -gem 'mutex_m', '~> 0.2' +gem "mutex_m", "~> 0.2" diff --git a/gems/markdown-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile b/gems/markdown-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile index e27f1bbae..42e9d9bd4 100644 --- a/gems/markdown-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile +++ b/gems/markdown-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 -gem 'mutex_m', '~> 0.2' +gem "mutex_m", "~> 0.2" diff --git a/gems/markdown-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile b/gems/markdown-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile index e27f1bbae..42e9d9bd4 100644 --- a/gems/markdown-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile +++ b/gems/markdown-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 -gem 'mutex_m', '~> 0.2' +gem "mutex_m", "~> 0.2" diff --git a/gems/markdown-merge/gemfiles/modular/mutex_m/vHEAD.gemfile b/gems/markdown-merge/gemfiles/modular/mutex_m/vHEAD.gemfile index 9dac2f6cb..8af3b6fca 100644 --- a/gems/markdown-merge/gemfiles/modular/mutex_m/vHEAD.gemfile +++ b/gems/markdown-merge/gemfiles/modular/mutex_m/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 (dependency of omniauth) -gem 'mutex_m', github: 'ruby/mutex_m', branch: 'master' +gem "mutex_m", github: "ruby/mutex_m", branch: "master" diff --git a/gems/markdown-merge/gemfiles/modular/optional.gemfile b/gems/markdown-merge/gemfiles/modular/optional.gemfile index 9ea429538..80bc45196 100644 --- a/gems/markdown-merge/gemfiles/modular/optional.gemfile +++ b/gems/markdown-merge/gemfiles/modular/optional.gemfile @@ -9,8 +9,8 @@ # Optional dependencies are not depended on directly, but may be used if present. # Required for curated binstubs generated by kettle-jem install -gem 'rbs', '>= 3.0', require: false # ruby >= 3.1 +gem "rbs", ">= 3.0", require: false # ruby >= 3.1 # Required for kettle-pre-release # URL parsing with Unicode support (falls back to URI if not available) -gem 'addressable', '>= 2.8', '< 3' # ruby >= 2.2 +gem "addressable", ">= 2.8", "< 3" # ruby >= 2.2 diff --git a/gems/markdown-merge/gemfiles/modular/rspec.gemfile b/gems/markdown-merge/gemfiles/modular/rspec.gemfile index 2af210a41..72fdf8b7f 100644 --- a/gems/markdown-merge/gemfiles/modular/rspec.gemfile +++ b/gems/markdown-merge/gemfiles/modular/rspec.gemfile @@ -1,4 +1,4 @@ -gem 'rspec_junit_formatter', - github: 'pboling/rspec_junit_formatter', - branch: 'main', - ref: '9e6bcaaedd49477b62878ed568dc4ada5cc7cb5e' +gem "rspec_junit_formatter", + github: "pboling/rspec_junit_formatter", + branch: "main", + ref: "9e6bcaaedd49477b62878ed568dc4ada5cc7cb5e" diff --git a/gems/markdown-merge/gemfiles/modular/runtime_heads.gemfile b/gems/markdown-merge/gemfiles/modular/runtime_heads.gemfile index ebf17c529..02f134c7f 100644 --- a/gems/markdown-merge/gemfiles/modular/runtime_heads.gemfile +++ b/gems/markdown-merge/gemfiles/modular/runtime_heads.gemfile @@ -8,4 +8,4 @@ # Test against HEAD of runtime dependencies so we can proactively file bugs -eval_gemfile('x_std_libs/vHEAD.gemfile') +eval_gemfile("x_std_libs/vHEAD.gemfile") diff --git a/gems/markdown-merge/gemfiles/modular/stringio/r2/v3.0.gemfile b/gems/markdown-merge/gemfiles/modular/stringio/r2/v3.0.gemfile index 3616f4e3a..e85bb18ee 100644 --- a/gems/markdown-merge/gemfiles/modular/stringio/r2/v3.0.gemfile +++ b/gems/markdown-merge/gemfiles/modular/stringio/r2/v3.0.gemfile @@ -2,4 +2,4 @@ # NOT SEMVER # Version 3.0.7 dropped support for Ruby <= 2.7 # Version 3.0.0 dropped support for Ruby <= 2.4 -gem 'stringio', '>= 3.0' +gem "stringio", ">= 3.0" diff --git a/gems/markdown-merge/gemfiles/modular/stringio/r3/v3.0.gemfile b/gems/markdown-merge/gemfiles/modular/stringio/r3/v3.0.gemfile index 3616f4e3a..e85bb18ee 100644 --- a/gems/markdown-merge/gemfiles/modular/stringio/r3/v3.0.gemfile +++ b/gems/markdown-merge/gemfiles/modular/stringio/r3/v3.0.gemfile @@ -2,4 +2,4 @@ # NOT SEMVER # Version 3.0.7 dropped support for Ruby <= 2.7 # Version 3.0.0 dropped support for Ruby <= 2.4 -gem 'stringio', '>= 3.0' +gem "stringio", ">= 3.0" diff --git a/gems/markdown-merge/gemfiles/modular/stringio/r4/v3.0.gemfile b/gems/markdown-merge/gemfiles/modular/stringio/r4/v3.0.gemfile index 3616f4e3a..e85bb18ee 100644 --- a/gems/markdown-merge/gemfiles/modular/stringio/r4/v3.0.gemfile +++ b/gems/markdown-merge/gemfiles/modular/stringio/r4/v3.0.gemfile @@ -2,4 +2,4 @@ # NOT SEMVER # Version 3.0.7 dropped support for Ruby <= 2.7 # Version 3.0.0 dropped support for Ruby <= 2.4 -gem 'stringio', '>= 3.0' +gem "stringio", ">= 3.0" diff --git a/gems/markdown-merge/gemfiles/modular/stringio/vHEAD.gemfile b/gems/markdown-merge/gemfiles/modular/stringio/vHEAD.gemfile index 78f5f5d8a..5f2a74126 100644 --- a/gems/markdown-merge/gemfiles/modular/stringio/vHEAD.gemfile +++ b/gems/markdown-merge/gemfiles/modular/stringio/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 (dependency of omniauth) -gem 'stringio', github: 'ruby/stringio', branch: 'master' +gem "stringio", github: "ruby/stringio", branch: "master" diff --git a/gems/markdown-merge/gemfiles/modular/style.gemfile b/gems/markdown-merge/gemfiles/modular/style.gemfile index 4dbcc02c0..35de4dcd6 100644 --- a/gems/markdown-merge/gemfiles/modular/style.gemfile +++ b/gems/markdown-merge/gemfiles/modular/style.gemfile @@ -9,23 +9,23 @@ # Style tasks run on the latest Ruby; RuboCop-LTS selects the compatibility # rules for the configured Ruby floor independently from task dependency floors. -gem 'reek', '~> 6.5', '>= 6.5.0' +gem "reek", "~> 6.5", ">= 6.5.0" platform :mri do - gem 'appraisal2-rubocop', '~> 1.0', '>= 1.0.0', require: false - gem 'rubocop-gradual', '~> 0.4', '>= 0.4.0' - gem 'rubocop-minitest', '~> 0.40', '>= 0.40.0' - gem 'rubocop-on-rbs', '~> 2.0', '>= 2.0.0' # ruby >= 3.2.0 + gem "appraisal2-rubocop", "~> 1.0", ">= 1.0.0", require: false + gem "rubocop-gradual", "~> 0.4", ">= 0.4.0" + gem "rubocop-minitest", "~> 0.40", ">= 0.40.0" + gem "rubocop-on-rbs", "~> 2.0", ">= 2.0.0" # ruby >= 3.2.0 # gem "rubocop", "~> 1.73", ">= 1.73.2" # constrained by standard - gem 'rubocop-packaging', '~> 0.6', '>= 0.6.0' - gem 'standard', '~> 1.56', '>= 1.56.0' + gem "rubocop-packaging", "~> 0.6", ">= 0.6.0" + gem "standard", "~> 1.56", ">= 1.56.0" - if ENV.fetch('RUBOCOP_LTS_LOCAL', 'false').casecmp('false').zero? + if ENV.fetch("RUBOCOP_LTS_LOCAL", "false").casecmp("false").zero? declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) - gem 'rubocop-lts', '~> 24.2', '>= 24.2.1' unless declared_gems.include?('rubocop-lts') - gem 'rubocop-lts-rspec', '~> 1.0', '>= 1.0.5' unless declared_gems.include?('rubocop-lts-rspec') - gem 'rubocop-ruby3_2', '~> 3.0', '>= 3.0.6' unless declared_gems.include?('rubocop-ruby3_2') + gem "rubocop-lts", "~> 24.2", ">= 24.2.1" unless declared_gems.include?("rubocop-lts") + gem "rubocop-lts-rspec", "~> 1.0", ">= 1.0.5" unless declared_gems.include?("rubocop-lts-rspec") + gem "rubocop-ruby3_2", "~> 3.0", ">= 3.0.6" unless declared_gems.include?("rubocop-ruby3_2") else - eval_gemfile('style_local.gemfile') + eval_gemfile("style_local.gemfile") end end diff --git a/gems/markdown-merge/gemfiles/modular/style_local.gemfile b/gems/markdown-merge/gemfiles/modular/style_local.gemfile index 9ac180b1b..9c53346ee 100644 --- a/gems/markdown-merge/gemfiles/modular/style_local.gemfile +++ b/gems/markdown-merge/gemfiles/modular/style_local.gemfile @@ -14,19 +14,21 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] -nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) +nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] +nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == "nomono" } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + if nomono_locked + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] + end end -Kernel.send(:gem, 'nomono', *nomono_activation_requirements) -require 'nomono/bundler' +Kernel.send(:gem, "nomono", *nomono_activation_requirements) +require "nomono/bundler" local_gems = %w[rubocop-lts rubocop-lts-rspec rubocop-ruby3_2 standard-rubocop-lts] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) @@ -36,11 +38,11 @@ local_gems_to_eval = local_gems - %w[markdown-merge] - declared_gems platform :mri do eval_nomono_gems( gems: local_gems_to_eval, - prefix: 'RUBOCOP_LTS', - path_env: 'RUBOCOP_LTS_LOCAL', - vendored_gems_env: 'VENDORED_GEMS', - vendor_gem_dir_env: 'VENDOR_GEM_DIR', - debug_env: 'RUBOCOP_LTS_DEBUG', - root: %w[src rubocop-lts] + prefix: "RUBOCOP_LTS", + path_env: "RUBOCOP_LTS_LOCAL", + vendored_gems_env: "VENDORED_GEMS", + vendor_gem_dir_env: "VENDOR_GEM_DIR", + debug_env: "RUBOCOP_LTS_DEBUG", + root: ["src", "rubocop-lts"] ) end diff --git a/gems/markdown-merge/gemfiles/modular/templating.gemfile b/gems/markdown-merge/gemfiles/modular/templating.gemfile index a672de184..47138ffbb 100644 --- a/gems/markdown-merge/gemfiles/modular/templating.gemfile +++ b/gems/markdown-merge/gemfiles/modular/templating.gemfile @@ -1,18 +1,18 @@ # frozen_string_literal: true -structuredmerge_remote = ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false').zero? -kettle_remote = ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? +structuredmerge_remote = ENV.fetch("STRUCTUREDMERGE_DEV", "false").casecmp("false").zero? +kettle_remote = ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false").zero? if structuredmerge_remote # Parser dependencies for released installs. - gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' + gem "tree_sitter_language_pack", "~> 1.13", ">= 1.13.3" # Merge recipes for released installs. - gem 'kettle-jem', '>= 7.0' + gem "kettle-jem", ">= 7.0" end if kettle_remote # Template/plugin checks for released installs. - gem 'kettle-drift', '~> 1.0', '>= 1.0.6', require: false + gem "kettle-drift", "~> 1.0", ">= 1.0.6", require: false end # Set STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local development with path-based dependencies. @@ -21,4 +21,4 @@ end # # Set KETTLE_DEV_DEV=/path/to/my for local development with Kettle plugin gems. # When false (default / CI), released Kettle plugin gems are used. -eval_gemfile 'templating_local.gemfile' unless structuredmerge_remote && kettle_remote +eval_gemfile "templating_local.gemfile" unless structuredmerge_remote && kettle_remote diff --git a/gems/markdown-merge/gemfiles/modular/templating_local.gemfile b/gems/markdown-merge/gemfiles/modular/templating_local.gemfile index 586e485d9..ddaba77fd 100644 --- a/gems/markdown-merge/gemfiles/modular/templating_local.gemfile +++ b/gems/markdown-merge/gemfiles/modular/templating_local.gemfile @@ -12,19 +12,21 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] -nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) +nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] +nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == "nomono" } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + if nomono_locked + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] + end end -Kernel.send(:gem, 'nomono', *nomono_activation_requirements) -require 'nomono/bundler' +Kernel.send(:gem, "nomono", *nomono_activation_requirements) +require "nomono/bundler" structuredmerge_local_gems = %w[ tree_haver @@ -67,25 +69,25 @@ structuredmerge_local_gems_to_eval = structuredmerge_local_gems - %w[markdown-me kettle_dev_local_gems_to_eval = kettle_dev_local_gems - %w[markdown-merge] - declared_gems platform :mri do - if ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false') != 0 + if ENV.fetch("STRUCTUREDMERGE_DEV", "false").casecmp("false") != 0 eval_nomono_gems( gems: structuredmerge_local_gems_to_eval, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - vendored_gems_env: 'VENDORED_GEMS', - vendor_gem_dir_env: 'VENDOR_GEM_DIR', - debug_env: 'STRUCTUREDMERGE_DEBUG' + prefix: "STRUCTUREDMERGE", + path_env: "STRUCTUREDMERGE_DEV", + vendored_gems_env: "VENDORED_GEMS", + vendor_gem_dir_env: "VENDOR_GEM_DIR", + debug_env: "STRUCTUREDMERGE_DEBUG" ) end - if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false') != 0 + if ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false") != 0 eval_nomono_gems( gems: kettle_dev_local_gems_to_eval, - prefix: 'KETTLE_DEV', - path_env: 'KETTLE_DEV_DEV', - vendored_gems_env: 'VENDORED_GEMS', - vendor_gem_dir_env: 'VENDOR_GEM_DIR', - debug_env: 'KETTLE_DEV_DEBUG' + prefix: "KETTLE_DEV", + path_env: "KETTLE_DEV_DEV", + vendored_gems_env: "VENDORED_GEMS", + vendor_gem_dir_env: "VENDOR_GEM_DIR", + debug_env: "KETTLE_DEV_DEBUG" ) end end diff --git a/gems/markdown-merge/gemfiles/modular/webrick/r4/v1.9.gemfile b/gems/markdown-merge/gemfiles/modular/webrick/r4/v1.9.gemfile index b1329ba84..eaab4a473 100644 --- a/gems/markdown-merge/gemfiles/modular/webrick/r4/v1.9.gemfile +++ b/gems/markdown-merge/gemfiles/modular/webrick/r4/v1.9.gemfile @@ -1 +1 @@ -gem 'webrick', '~> 1.9' +gem "webrick", "~> 1.9" diff --git a/gems/markdown-merge/gemfiles/modular/webrick/vHEAD.gemfile b/gems/markdown-merge/gemfiles/modular/webrick/vHEAD.gemfile index c7e6f81a1..8a789b634 100644 --- a/gems/markdown-merge/gemfiles/modular/webrick/vHEAD.gemfile +++ b/gems/markdown-merge/gemfiles/modular/webrick/vHEAD.gemfile @@ -1 +1 @@ -gem 'webrick', '>= 1.9' +gem "webrick", ">= 1.9" diff --git a/gems/markdown-merge/gemfiles/modular/x_std_libs.gemfile b/gems/markdown-merge/gemfiles/modular/x_std_libs.gemfile index b1f43c097..77aad43f2 100644 --- a/gems/markdown-merge/gemfiles/modular/x_std_libs.gemfile +++ b/gems/markdown-merge/gemfiles/modular/x_std_libs.gemfile @@ -1,12 +1,12 @@ ### Std Lib Extracted Gems ruby_version = Gem::Version.new(RUBY_VERSION) -if ruby_version >= Gem::Version.new('4.0') - eval_gemfile 'x_std_libs/r4/libs.gemfile' -elsif ruby_version >= Gem::Version.new('3.2') - eval_gemfile 'x_std_libs/r3/libs.gemfile' -elsif ruby_version >= Gem::Version.new('3.1') - eval_gemfile 'x_std_libs/r3.1/libs.gemfile' +if ruby_version >= Gem::Version.new("4.0") + eval_gemfile "x_std_libs/r4/libs.gemfile" +elsif ruby_version >= Gem::Version.new("3.2") + eval_gemfile "x_std_libs/r3/libs.gemfile" +elsif ruby_version >= Gem::Version.new("3.1") + eval_gemfile "x_std_libs/r3.1/libs.gemfile" else - eval_gemfile 'x_std_libs/r2/libs.gemfile' + eval_gemfile "x_std_libs/r2/libs.gemfile" end diff --git a/gems/markdown-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile b/gems/markdown-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile index 16a5e3d70..441c4f03a 100644 --- a/gems/markdown-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile +++ b/gems/markdown-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile @@ -1,3 +1,3 @@ -eval_gemfile '../../erb/r2/v3.0.gemfile' -eval_gemfile '../../mutex_m/r2/v0.3.gemfile' -eval_gemfile '../../stringio/r2/v3.0.gemfile' +eval_gemfile "../../erb/r2/v3.0.gemfile" +eval_gemfile "../../mutex_m/r2/v0.3.gemfile" +eval_gemfile "../../stringio/r2/v3.0.gemfile" diff --git a/gems/markdown-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile b/gems/markdown-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile index 220ff95c1..c293a3ddd 100644 --- a/gems/markdown-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile +++ b/gems/markdown-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile @@ -1,3 +1,3 @@ -eval_gemfile '../../erb/r3/v5.0.gemfile' -eval_gemfile '../../mutex_m/r3/v0.3.gemfile' -eval_gemfile '../../stringio/r3/v3.0.gemfile' +eval_gemfile "../../erb/r3/v5.0.gemfile" +eval_gemfile "../../mutex_m/r3/v0.3.gemfile" +eval_gemfile "../../stringio/r3/v3.0.gemfile" diff --git a/gems/markdown-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile b/gems/markdown-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile index e2f6501eb..eb5574247 100644 --- a/gems/markdown-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile +++ b/gems/markdown-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile @@ -1,6 +1,6 @@ -eval_gemfile '../../erb/r4/v5.0.gemfile' -eval_gemfile '../../mutex_m/r4/v0.3.gemfile' -eval_gemfile '../../stringio/r4/v3.0.gemfile' -eval_gemfile '../../benchmark/r4/v0.5.gemfile' -eval_gemfile '../../cgi/r4/v0.5.gemfile' -eval_gemfile '../../webrick/r4/v1.9.gemfile' +eval_gemfile "../../erb/r4/v5.0.gemfile" +eval_gemfile "../../mutex_m/r4/v0.3.gemfile" +eval_gemfile "../../stringio/r4/v3.0.gemfile" +eval_gemfile "../../benchmark/r4/v0.5.gemfile" +eval_gemfile "../../cgi/r4/v0.5.gemfile" +eval_gemfile "../../webrick/r4/v1.9.gemfile" diff --git a/gems/markdown-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile b/gems/markdown-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile index ab75cccf1..d4d5b16c9 100644 --- a/gems/markdown-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile +++ b/gems/markdown-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile @@ -1,6 +1,6 @@ -eval_gemfile '../erb/vHEAD.gemfile' -eval_gemfile '../mutex_m/vHEAD.gemfile' -eval_gemfile '../stringio/vHEAD.gemfile' -eval_gemfile '../benchmark/vHEAD.gemfile' -eval_gemfile '../cgi/vHEAD.gemfile' -eval_gemfile '../webrick/vHEAD.gemfile' +eval_gemfile "../erb/vHEAD.gemfile" +eval_gemfile "../mutex_m/vHEAD.gemfile" +eval_gemfile "../stringio/vHEAD.gemfile" +eval_gemfile "../benchmark/vHEAD.gemfile" +eval_gemfile "../cgi/vHEAD.gemfile" +eval_gemfile "../webrick/vHEAD.gemfile" diff --git a/gems/markdown-merge/lib/markdown/merge/version.rb b/gems/markdown-merge/lib/markdown/merge/version.rb index c8ba076ae..fe631f91a 100644 --- a/gems/markdown-merge/lib/markdown/merge/version.rb +++ b/gems/markdown-merge/lib/markdown/merge/version.rb @@ -3,7 +3,7 @@ module Markdown module Merge module Version - VERSION = '7.1.0' + VERSION = "7.1.0" end VERSION = Version::VERSION # Traditional Constant Location end diff --git a/gems/markdown-merge/spec/spec_helper.rb b/gems/markdown-merge/spec/spec_helper.rb index 77eb0206c..c4ea6c695 100644 --- a/gems/markdown-merge/spec/spec_helper.rb +++ b/gems/markdown-merge/spec/spec_helper.rb @@ -7,16 +7,16 @@ # NOTE: Gemfiles for non-coverage appraisals may not have kettle-soup-cover. # The rescue LoadError handles that scenario. begin - require 'kettle-soup-cover' + require "kettle-soup-cover" if Kettle::Soup::Cover::DO_COV # Requiring simplecov loads the project-local `.simplecov`. - require 'simplecov' - require 'kettle/soup/cover/config' + require "simplecov" + require "kettle/soup/cover/config" SimpleCov.start end -rescue LoadError => e +rescue LoadError => error # check the error message and re-raise when unexpected - raise e unless e.message.include?('kettle') + raise error unless error.message.include?("kettle") end # External RSpec & related config diff --git a/gems/prism-merge/.kettle-drift.lock b/gems/prism-merge/.kettle-drift.lock index 9a486b4b3..25b4603d6 100644 --- a/gems/prism-merge/.kettle-drift.lock +++ b/gems/prism-merge/.kettle-drift.lock @@ -4,7 +4,8 @@ "file": "Gemfile", "lines": [ 79, - 119 + 119, + 159 ] } ], @@ -13,7 +14,8 @@ "file": "Gemfile", "lines": [ 90, - 130 + 130, + 170 ] } ], @@ -22,7 +24,8 @@ "file": "Gemfile", "lines": [ 80, - 120 + 120, + 160 ] } ], @@ -31,7 +34,8 @@ "file": "Gemfile", "lines": [ 92, - 132 + 132, + 172 ] } ], @@ -40,7 +44,8 @@ "file": "Gemfile", "lines": [ 95, - 135 + 135, + 175 ] } ], @@ -49,7 +54,8 @@ "file": "Gemfile", "lines": [ 81, - 121 + 121, + 161 ] } ], @@ -59,7 +65,8 @@ "lines": [ 59, 99, - 139 + 139, + 179 ] } ], @@ -68,7 +75,8 @@ "file": "Gemfile", "lines": [ 100, - 140 + 140, + 180 ] } ], @@ -78,7 +86,8 @@ "lines": [ 42, 86, - 126 + 126, + 166 ] } ], @@ -87,7 +96,8 @@ "file": "Gemfile", "lines": [ 109, - 149 + 149, + 189 ] } ], @@ -97,7 +107,8 @@ "lines": [ 34, 78, - 118 + 118, + 158 ] } ], @@ -107,7 +118,8 @@ "lines": [ 68, 108, - 148 + 148, + 188 ] } ], @@ -116,7 +128,8 @@ "file": "Gemfile", "lines": [ 84, - 124 + 124, + 164 ] } ], @@ -126,7 +139,8 @@ "lines": [ 47, 91, - 131 + 131, + 171 ] } ], @@ -136,7 +150,8 @@ "lines": [ 43, 87, - 127 + 127, + 167 ] } ], @@ -145,7 +160,8 @@ "file": "Gemfile", "lines": [ 85, - 125 + 125, + 165 ] } ], @@ -154,7 +170,8 @@ "file": "Gemfile", "lines": [ 102, - 142 + 142, + 182 ] } ], @@ -163,7 +180,8 @@ "file": "Gemfile", "lines": [ 101, - 141 + 141, + 181 ] } ], @@ -172,7 +190,8 @@ "file": "Gemfile", "lines": [ 96, - 136 + 136, + 176 ] } ], @@ -181,7 +200,8 @@ "file": "Gemfile", "lines": [ 105, - 145 + 145, + 185 ] } ] diff --git a/gems/prism-merge/.rubocop_gradual.lock b/gems/prism-merge/.rubocop_gradual.lock deleted file mode 100644 index fda2bbfb2..000000000 --- a/gems/prism-merge/.rubocop_gradual.lock +++ /dev/null @@ -1,707 +0,0 @@ -{ - ".simplecov:4134106261": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "Rakefile:22363789": [ - [18, 121, 17, "Layout/LineLength: Line is too long. [137/120]", 174264873], - [79, 3, 1023, "Metrics/BlockLength: Block has too many lines. [32/25]", 54868638], - [163, 121, 22, "Layout/LineLength: Line is too long. [142/120]", 1367093088], - [166, 121, 18, "Layout/LineLength: Line is too long. [138/120]", 3881946477] - ], - "gemfiles/modular/benchmark/r4/v0.5.gemfile:3644720371": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/benchmark/vHEAD.gemfile:2838879269": [ - [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/cgi/r4/v0.5.gemfile:367169322": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] - ], - "gemfiles/modular/cgi/vHEAD.gemfile:2729540777": [ - [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] - ], - "gemfiles/modular/erb/r2/v3.0.gemfile:1688285565": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] - ], - "gemfiles/modular/erb/r3/v5.0.gemfile:2394062339": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] - ], - "gemfiles/modular/erb/r4/v5.0.gemfile:2394062339": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] - ], - "gemfiles/modular/erb/vHEAD.gemfile:981929959": [ - [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/mutex_m/r2/v0.3.gemfile:4055275004": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/mutex_m/r3/v0.3.gemfile:4055275004": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/mutex_m/r4/v0.3.gemfile:4055275004": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/mutex_m/vHEAD.gemfile:556854763": [ - [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/rspec.gemfile:2263543889": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] - ], - "gemfiles/modular/stringio/r2/v3.0.gemfile:821604304": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/stringio/r3/v3.0.gemfile:821604304": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/stringio/r4/v3.0.gemfile:821604304": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/stringio/vHEAD.gemfile:1045839691": [ - [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/webrick/r4/v1.9.gemfile:3092661193": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] - ], - "gemfiles/modular/webrick/vHEAD.gemfile:3867684682": [ - [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] - ], - "gemfiles/modular/x_std_libs.gemfile:2324400122": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/x_std_libs/r2/libs.gemfile:36276542": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] - ], - "gemfiles/modular/x_std_libs/r3/libs.gemfile:4030570297": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] - ], - "gemfiles/modular/x_std_libs/r4/libs.gemfile:732451732": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] - ], - "gemfiles/modular/x_std_libs/vHEAD.gemfile:2390363993": [ - [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] - ], - "lib/prism-merge.rb:226590672": [ - [1, 1, 0, "Naming/FileName: The name of this source file (`prism-merge.rb`) should use snake_case.", 5381] - ], - "lib/prism/merge.rb:1325756945": [ - [12, 3, 12, "Style/Documentation: Missing top-level documentation comment for `module Prism::Merge`.", 2866359175], - [12, 3, 52397, "Metrics/ModuleLength: Module has too many lines. [1199/100]", 1955834049], - [13, 5, 11, "Style/ModuleFunction: Use `module_function` instead of `extend self`.", 1210897631], - [24, 5, 16, "Style/Documentation: Missing top-level documentation comment for `class Prism::Merge::ParseError`.", 362242086], - [120, 5, 1996, "Metrics/MethodLength: Method has too many lines. [42/10]", 709892915], - [165, 5, 1804, "Metrics/MethodLength: Method has too many lines. [37/10]", 3641862107], - [205, 5, 1012, "Metrics/MethodLength: Method has too many lines. [23/10]", 3112984532], - [243, 5, 695, "Metrics/MethodLength: Method has too many lines. [17/10]", 321495946], - [263, 5, 1801, "Metrics/MethodLength: Method has too many lines. [37/10]", 3355654893], - [264, 121, 5, "Layout/LineLength: Line is too long. [125/120]", 180584319], - [303, 5, 7357, "Metrics/AbcSize: Assignment Branch Condition size for `ruby_structured_edit_batch_report_projection` is too high. [<1, 31, 0> 31.02/17]", 2583247591], - [303, 5, 7357, "Metrics/MethodLength: Method has too many lines. [139/10]", 2583247591], - [304, 121, 5, "Layout/LineLength: Line is too long. [125/120]", 180584319], - [323, 121, 25, "Layout/LineLength: Line is too long. [145/120]", 949635646], - [361, 121, 42, "Layout/LineLength: Line is too long. [162/120]", 1330685294], - [445, 5, 932, "Metrics/AbcSize: Assignment Branch Condition size for `parse_ruby` is too high. [<3, 17, 7> 18.63/17]", 2894794051], - [445, 5, 932, "Metrics/MethodLength: Method has too many lines. [23/10]", 2894794051], - [473, 5, 491, "Metrics/MethodLength: Method has too many lines. [12/10]", 3211170428], - [488, 5, 3333, "Metrics/AbcSize: Assignment Branch Condition size for `parse_ruby_normalized` is too high. [<20, 68, 28> 76.21/17]", 3141190358], - [488, 5, 3333, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `parse_ruby_normalized` is too high. [23/7]", 3141190358], - [488, 5, 3333, "Metrics/MethodLength: Method has too many lines. [72/10]", 3141190358], - [488, 5, 3333, "Metrics/PerceivedComplexity: Perceived complexity for `parse_ruby_normalized` is too high. [23/8]", 3141190358], - [570, 5, 3671, "Metrics/AbcSize: Assignment Branch Condition size for `apply_edit_projection` is too high. [<14, 62, 19> 66.34/17]", 1859418783], - [570, 5, 3671, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `apply_edit_projection` is too high. [12/7]", 1859418783], - [570, 5, 3671, "Metrics/MethodLength: Method has too many lines. [66/10]", 1859418783], - [570, 5, 3671, "Metrics/PerceivedComplexity: Perceived complexity for `apply_edit_projection` is too high. [13/8]", 1859418783], - [616, 18, 176, "Style/StringConcatenation: Prefer string interpolation to string concatenation.", 3247522762], - [649, 5, 1505, "Metrics/MethodLength: Method has too many lines. [33/10]", 2499202345], - [649, 19, 292, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [10/5]", 676979469], - [710, 5, 583, "Metrics/MethodLength: Method has too many lines. [13/10]", 1484312517], - [727, 5, 551, "Metrics/AbcSize: Assignment Branch Condition size for `normalize_ruby_require_aliases` is too high. [<11, 15, 7> 19.87/17]", 2507514607], - [727, 5, 551, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `normalize_ruby_require_aliases` is too high. [8/7]", 2507514607], - [727, 5, 551, "Metrics/MethodLength: Method has too many lines. [17/10]", 2507514607], - [748, 5, 304, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `ruby_dsl_call_node` is too high. [8/7]", 2466841613], - [771, 5, 1305, "Metrics/AbcSize: Assignment Branch Condition size for `merge_ruby_with_reviewed_nested_outputs` is too high. [<7, 17, 5> 19.05/17]", 3657868136], - [771, 5, 1305, "Metrics/MethodLength: Method has too many lines. [27/10]", 3657868136], - [771, 48, 140, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 132256850], - [804, 5, 1015, "Metrics/MethodLength: Method has too many lines. [17/10]", 757789356], - [814, 121, 70, "Layout/LineLength: Line is too long. [190/120]", 1956194284], - [827, 5, 928, "Metrics/MethodLength: Method has too many lines. [16/10]", 1039420596], - [837, 121, 17, "Layout/LineLength: Line is too long. [137/120]", 3013228499], - [849, 5, 1003, "Metrics/MethodLength: Method has too many lines. [17/10]", 3313354796], - [859, 121, 62, "Layout/LineLength: Line is too long. [182/120]", 1636990749], - [872, 5, 936, "Metrics/MethodLength: Method has too many lines. [16/10]", 2825710110], - [882, 121, 17, "Layout/LineLength: Line is too long. [137/120]", 3013228499], - [906, 5, 662, "Metrics/MethodLength: Method has too many lines. [19/10]", 772959042], - [927, 7, 11, "Style/MultilineBlockChain: Avoid multi-line chains of blocks.", 848344986], - [930, 5, 849, "Metrics/AbcSize: Assignment Branch Condition size for `prism_ruby_discovered_surfaces` is too high. [<12, 16, 6> 20.88/17]", 2509812469], - [930, 5, 849, "Metrics/MethodLength: Method has too many lines. [23/10]", 2509812469], - [961, 5, 1195, "Metrics/AbcSize: Assignment Branch Condition size for `prism_ruby_surfaces_for_owner` is too high. [<6, 19, 3> 20.15/17]", 1713430182], - [961, 5, 1195, "Metrics/MethodLength: Method has too many lines. [20/10]", 1713430182], - [986, 5, 1216, "Metrics/AbcSize: Assignment Branch Condition size for `prism_ruby_example_surfaces` is too high. [<4, 20, 2> 20.49/17]", 2225356615], - [986, 5, 1216, "Metrics/MethodLength: Method has too many lines. [22/10]", 2225356615], - [1058, 5, 421, "Metrics/MethodLength: Method has too many lines. [14/10]", 26440736], - [1089, 5, 827, "Metrics/MethodLength: Method has too many lines. [18/10]", 4288402374], - [1130, 5, 876, "Metrics/MethodLength: Method has too many lines. [23/10]", 3423854231], - [1168, 5, 1155, "Metrics/AbcSize: Assignment Branch Condition size for `prism_comment_node` is too high. [<1, 22, 0> 22.02/17]", 4287909739], - [1168, 5, 1155, "Metrics/MethodLength: Method has too many lines. [28/10]", 4287909739], - [1199, 5, 888, "Metrics/MethodLength: Method has too many lines. [27/10]", 3798554661], - [1251, 5, 920, "Metrics/MethodLength: Method has too many lines. [23/10]", 917985568] - ], - "lib/prism/merge/begin_node_clause_body_merger.rb:1042804537": [ - [5, 5, 31, "Style/Documentation: Missing top-level documentation comment for `class Prism::Merge::BeginNodeClauseBodyMerger`.", 1242162299], - [19, 7, 1511, "Metrics/AbcSize: Assignment Branch Condition size for `merge` is too high. [<5, 37, 1> 37.35/17]", 3275719934], - [19, 7, 1511, "Metrics/MethodLength: Method has too many lines. [32/10]", 3275719934] - ], - "lib/prism/merge/begin_node_clause_body_support.rb:787370708": [ - [5, 5, 32, "Style/Documentation: Missing top-level documentation comment for `class Prism::Merge::BeginNodeClauseBodySupport`.", 3341069278], - [5, 5, 7504, "Metrics/ClassLength: Class has too many lines. [142/100]", 1403116805], - [8, 21, 100, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 4145084810], - [22, 7, 937, "Metrics/AbcSize: Assignment Branch Condition size for `clause_header_end_line` is too high. [<5, 29, 16> 33.5/17]", 2050282033], - [22, 7, 937, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `clause_header_end_line` is too high. [16/7]", 2050282033], - [22, 7, 937, "Metrics/MethodLength: Method has too many lines. [14/10]", 2050282033], - [22, 7, 937, "Metrics/PerceivedComplexity: Perceived complexity for `clause_header_end_line` is too high. [16/8]", 2050282033], - [35, 63, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], - [55, 9, 23, "Style/StringConcatenation: Prefer string interpolation to string concatenation.", 1178765246], - [58, 7, 419, "Metrics/MethodLength: Method has too many lines. [11/10]", 3825428834], - [81, 7, 2396, "Metrics/AbcSize: Assignment Branch Condition size for `clause_body_components` is too high. [<11, 30, 16> 35.74/17]", 199420029], - [81, 7, 2396, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `clause_body_components` is too high. [13/7]", 199420029], - [81, 7, 2396, "Metrics/MethodLength: Method has too many lines. [39/10]", 199420029], - [81, 7, 2396, "Metrics/PerceivedComplexity: Perceived complexity for `clause_body_components` is too high. [14/8]", 199420029], - [126, 30, 23, "Style/StringConcatenation: Prefer string interpolation to string concatenation.", 1178765246], - [164, 7, 862, "Metrics/AbcSize: Assignment Branch Condition size for `clause_bodies_have_matching_statements?` is too high. [<3, 19, 2> 19.34/17]", 4182083840], - [164, 7, 862, "Metrics/MethodLength: Method has too many lines. [15/10]", 4182083840] - ], - "lib/prism/merge/begin_node_clause_header_emitter.rb:2991300768": [ - [5, 5, 34, "Style/Documentation: Missing top-level documentation comment for `class Prism::Merge::BeginNodeClauseHeaderEmitter`.", 217025096], - [14, 7, 1600, "Metrics/AbcSize: Assignment Branch Condition size for `emit` is too high. [<10, 22, 17> 29.55/17]", 4242535078], - [14, 7, 1600, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `emit` is too high. [11/7]", 4242535078], - [14, 7, 1600, "Metrics/MethodLength: Method has too many lines. [25/10]", 4242535078], - [14, 7, 1600, "Metrics/PerceivedComplexity: Perceived complexity for `emit` is too high. [11/8]", 4242535078], - [14, 15, 164, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [8/5]", 2644486585] - ], - "lib/prism/merge/begin_node_merge_planner.rb:3840396716": [ - [5, 5, 27, "Style/Documentation: Missing top-level documentation comment for `class Prism::Merge::BeginNodeMergePlanner`.", 3356052894], - [5, 5, 9876, "Metrics/ClassLength: Class has too many lines. [185/100]", 148070692], - [30, 7, 2144, "Metrics/AbcSize: Assignment Branch Condition size for `plan` is too high. [<15, 34, 11> 38.76/17]", 3596380485], - [30, 7, 2144, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `plan` is too high. [10/7]", 3596380485], - [30, 7, 2144, "Metrics/MethodLength: Method has too many lines. [39/10]", 3596380485], - [30, 7, 2144, "Metrics/PerceivedComplexity: Perceived complexity for `plan` is too high. [11/8]", 3596380485], - [84, 7, 4383, "Metrics/AbcSize: Assignment Branch Condition size for `build_shared_clause_step` is too high. [<19, 70, 24> 76.4/17]", 2837542267], - [84, 7, 4383, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `build_shared_clause_step` is too high. [16/7]", 2837542267], - [84, 7, 4383, "Metrics/MethodLength: Method has too many lines. [73/10]", 2837542267], - [84, 7, 4383, "Metrics/PerceivedComplexity: Perceived complexity for `build_shared_clause_step` is too high. [18/8]", 2837542267], - [103, 121, 59, "Layout/LineLength: Line is too long. [179/120]", 357928082], - [105, 121, 55, "Layout/LineLength: Line is too long. [175/120]", 1163790852], - [142, 121, 35, "Layout/LineLength: Line is too long. [155/120]", 3447647282], - [143, 121, 40, "Layout/LineLength: Line is too long. [160/120]", 1267386383], - [167, 7, 2428, "Metrics/AbcSize: Assignment Branch Condition size for `build_unmatched_clause_step` is too high. [<2, 28, 21> 35.06/17]", 2984621385], - [167, 7, 2428, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `build_unmatched_clause_step` is too high. [17/7]", 2984621385], - [167, 7, 2428, "Metrics/MethodLength: Method has too many lines. [38/10]", 2984621385], - [167, 7, 2428, "Metrics/PerceivedComplexity: Perceived complexity for `build_unmatched_clause_step` is too high. [19/8]", 2984621385], - [188, 121, 25, "Layout/LineLength: Line is too long. [145/120]", 549521717], - [198, 121, 25, "Layout/LineLength: Line is too long. [145/120]", 619697310] - ], - "lib/prism/merge/begin_node_plan_emitter.rb:372252499": [ - [5, 5, 26, "Style/Documentation: Missing top-level documentation comment for `class Prism::Merge::BeginNodePlanEmitter`.", 926648201], - [14, 7, 740, "Metrics/MethodLength: Method has too many lines. [16/10]", 2040521865], - [14, 15, 105, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 1812434716], - [36, 7, 1205, "Metrics/MethodLength: Method has too many lines. [24/10]", 4164487211], - [36, 20, 127, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 466430575], - [76, 7, 1308, "Metrics/AbcSize: Assignment Branch Condition size for `emit_copied_unmatched_clause` is too high. [<6, 30, 11> 32.51/17]", 1339054986], - [76, 7, 1308, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `emit_copied_unmatched_clause` is too high. [10/7]", 1339054986], - [76, 7, 1308, "Metrics/MethodLength: Method has too many lines. [21/10]", 1339054986], - [76, 7, 1308, "Metrics/PerceivedComplexity: Perceived complexity for `emit_copied_unmatched_clause` is too high. [10/8]", 1339054986], - [76, 39, 146, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 2474530127] - ], - "lib/prism/merge/begin_node_rescue_semantics.rb:2034041801": [ - [5, 5, 30, "Style/Documentation: Missing top-level documentation comment for `class Prism::Merge::BeginNodeRescueSemantics`.", 4100560642], - [5, 5, 9899, "Metrics/ClassLength: Class has too many lines. [198/100]", 4227917508], - [13, 7, 1953, "Metrics/AbcSize: Assignment Branch Condition size for `normalized_clause_body_and_header_source` is too high. [<9, 13, 21> 26.29/17]", 1895019213], - [13, 7, 1953, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `normalized_clause_body_and_header_source` is too high. [15/7]", 1895019213], - [13, 7, 1953, "Metrics/MethodLength: Method has too many lines. [26/10]", 1895019213], - [13, 7, 1953, "Metrics/PerceivedComplexity: Perceived complexity for `normalized_clause_body_and_header_source` is too high. [17/8]", 1895019213], - [80, 7, 530, "Metrics/AbcSize: Assignment Branch Condition size for `local_variable_read_names_in` is too high. [<1, 16, 9> 18.38/17]", 2555890222], - [80, 7, 530, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `local_variable_read_names_in` is too high. [8/7]", 2555890222], - [80, 7, 530, "Metrics/MethodLength: Method has too many lines. [12/10]", 2555890222], - [80, 7, 530, "Metrics/PerceivedComplexity: Perceived complexity for `local_variable_read_names_in` is too high. [9/8]", 2555890222], - [134, 7, 724, "Metrics/AbcSize: Assignment Branch Condition size for `rewrite_local_reference_in_source` is too high. [<6, 18, 9> 21/17]", 2089802992], - [134, 7, 724, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `rewrite_local_reference_in_source` is too high. [9/7]", 2089802992], - [134, 7, 724, "Metrics/MethodLength: Method has too many lines. [12/10]", 2089802992], - [134, 7, 724, "Metrics/PerceivedComplexity: Perceived complexity for `rewrite_local_reference_in_source` is too high. [9/8]", 2089802992], - [182, 85, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], - [194, 7, 1233, "Metrics/AbcSize: Assignment Branch Condition size for `collect_source_defined_exception_definitions` is too high. [<4, 22, 9> 24.1/17]", 1970916346], - [194, 7, 1233, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `collect_source_defined_exception_definitions` is too high. [10/7]", 1970916346], - [194, 7, 1233, "Metrics/MethodLength: Method has too many lines. [24/10]", 1970916346] - ], - "lib/prism/merge/begin_node_structure.rb:1232724245": [ - [5, 5, 24, "Style/Documentation: Missing top-level documentation comment for `class Prism::Merge::BeginNodeStructure`.", 3506219929], - [5, 5, 4080, "Metrics/ClassLength: Class has too many lines. [101/100]", 1611393241], - [21, 7, 375, "Metrics/AbcSize: Assignment Branch Condition size for `boundary_lines` is too high. [<0, 28, 7> 28.86/17]", 3399008793], - [21, 7, 375, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `boundary_lines` is too high. [8/7]", 3399008793], - [33, 7, 251, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `clause_start_line` is too high. [8/7]", 1553904487], - [43, 7, 407, "Metrics/MethodLength: Method has too many lines. [12/10]", 3851339415], - [59, 7, 1089, "Metrics/AbcSize: Assignment Branch Condition size for `clause_regions` is too high. [<9, 38, 9> 40.07/17]", 1916795013], - [59, 7, 1089, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `clause_regions` is too high. [10/7]", 1916795013], - [59, 7, 1089, "Metrics/MethodLength: Method has too many lines. [22/10]", 1916795013], - [59, 7, 1089, "Metrics/PerceivedComplexity: Perceived complexity for `clause_regions` is too high. [10/8]", 1916795013], - [86, 7, 613, "Metrics/AbcSize: Assignment Branch Condition size for `clause_nodes_by_type` is too high. [<9, 19, 4> 21.4/17]", 1693909219], - [86, 7, 613, "Metrics/MethodLength: Method has too many lines. [12/10]", 1693909219], - [102, 11, 19, "Naming/PredicatePrefix: Rename `has_clause_or_body?` to `clause_or_body?`.", 2163996991], - [106, 7, 598, "Metrics/AbcSize: Assignment Branch Condition size for `line_map_for` is too high. [<13, 15, 6> 20.74/17]", 191778789] - ], - "lib/prism/merge/block_directive_detector.rb:3698866715": [ - [9, 5, 5028, "Metrics/ClassLength: Class has too many lines. [121/100]", 2587374670], - [10, 7, 1976, "Metrics/AbcSize: Assignment Branch Condition size for `promote_spans_to_nodes` is too high. [<23, 42, 32> 57.59/17]", 1038475655], - [10, 7, 1976, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `promote_spans_to_nodes` is too high. [24/7]", 1038475655], - [10, 7, 1976, "Metrics/MethodLength: Method has too many lines. [37/10]", 1038475655], - [10, 7, 1976, "Metrics/PerceivedComplexity: Perceived complexity for `promote_spans_to_nodes` is too high. [25/8]", 1038475655], - [35, 11, 7, "Style/MultilineBlockChain: Avoid multi-line chains of blocks.", 4045560504], - [108, 7, 832, "Metrics/MethodLength: Method has too many lines. [23/10]", 3204610677], - [134, 7, 722, "Metrics/AbcSize: Assignment Branch Condition size for `rebuild_statements` is too high. [<15, 17, 9> 24.39/17]", 3809085226], - [134, 7, 722, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `rebuild_statements` is too high. [10/7]", 3809085226], - [134, 7, 722, "Metrics/MethodLength: Method has too many lines. [15/10]", 3809085226], - [134, 7, 722, "Metrics/PerceivedComplexity: Perceived complexity for `rebuild_statements` is too high. [10/8]", 3809085226] - ], - "lib/prism/merge/comment/block.rb:3606937725": [ - [65, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 1573406415] - ], - "lib/prism/merge/comment/parser.rb:1277632686": [ - [31, 9, 1747, "Metrics/AbcSize: Assignment Branch Condition size for `parse` is too high. [<10, 28, 8> 30.79/17]", 2837146927], - [31, 9, 1747, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `parse` is too high. [8/7]", 2837146927], - [31, 9, 1747, "Metrics/MethodLength: Method has too many lines. [34/10]", 2837146927], - [31, 9, 1747, "Metrics/PerceivedComplexity: Perceived complexity for `parse` is too high. [9/8]", 2837146927], - [38, 11, 1390, "Metrics/BlockLength: Block has too many lines. [26/25]", 1396583578] - ], - "lib/prism/merge/comment_only_file_merger.rb:808070956": [ - [5, 5, 27, "Style/Documentation: Missing top-level documentation comment for `class Prism::Merge::CommentOnlyFileMerger`.", 1927029952], - [5, 5, 11907, "Metrics/ClassLength: Class has too many lines. [256/100]", 2729825792], - [27, 7, 1628, "Metrics/AbcSize: Assignment Branch Condition size for `merge` is too high. [<15, 32, 8> 36.24/17]", 2481561114], - [27, 7, 1628, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `merge` is too high. [8/7]", 2481561114], - [27, 7, 1628, "Metrics/MethodLength: Method has too many lines. [34/10]", 2481561114], - [78, 7, 661, "Metrics/MethodLength: Method has too many lines. [18/10]", 1523408112], - [100, 7, 1781, "Metrics/AbcSize: Assignment Branch Condition size for `build_output_plan` is too high. [<10, 34, 20> 40.69/17]", 994360926], - [100, 7, 1781, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `build_output_plan` is too high. [17/7]", 994360926], - [100, 7, 1781, "Metrics/MethodLength: Method has too many lines. [30/10]", 994360926], - [100, 7, 1781, "Metrics/PerceivedComplexity: Perceived complexity for `build_output_plan` is too high. [19/8]", 994360926], - [123, 121, 21, "Layout/LineLength: Line is too long. [141/120]", 530225423], - [149, 7, 1486, "Metrics/AbcSize: Assignment Branch Condition size for `add_comment_node_to_result` is too high. [<7, 34, 22> 41.1/17]", 1181795760], - [149, 7, 1486, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `add_comment_node_to_result` is too high. [16/7]", 1181795760], - [149, 7, 1486, "Metrics/MethodLength: Method has too many lines. [29/10]", 1181795760], - [149, 7, 1486, "Metrics/PerceivedComplexity: Perceived complexity for `add_comment_node_to_result` is too high. [20/8]", 1181795760], - [185, 7, 693, "Metrics/MethodLength: Method has too many lines. [16/10]", 3008008109], - [205, 7, 1035, "Metrics/AbcSize: Assignment Branch Condition size for `emit_layout_gap_to_result` is too high. [<6, 24, 11> 27.07/17]", 3441550295], - [205, 7, 1035, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `emit_layout_gap_to_result` is too high. [9/7]", 3441550295], - [205, 7, 1035, "Metrics/MethodLength: Method has too many lines. [17/10]", 3441550295], - [205, 7, 1035, "Metrics/PerceivedComplexity: Perceived complexity for `emit_layout_gap_to_result` is too high. [10/8]", 3441550295], - [230, 7, 665, "Metrics/AbcSize: Assignment Branch Condition size for `emit_comment_only_prefix_lines` is too high. [<5, 21, 4> 21.95/17]", 1939505075], - [243, 7, 942, "Metrics/MethodLength: Method has too many lines. [19/10]", 2012616838] - ], - "lib/prism/merge/file_analysis.rb:3845044313": [ - [16, 5, 56738, "Metrics/ClassLength: Class has too many lines. [631/100]", 2915560491], - [19, 7, 28, "Style/Documentation: Missing top-level documentation comment for `class Prism::Merge::FileAnalysis::NativeCommentAugmenter`.", 2321467727], - [19, 7, 5712, "Metrics/ClassLength: Class has too many lines. [121/100]", 3225634005], - [22, 9, 605, "Metrics/MethodLength: Method has too many lines. [16/10]", 3935631704], - [47, 9, 2672, "Metrics/AbcSize: Assignment Branch Condition size for `build!` is too high. [<19, 55, 23> 62.57/17]", 3140666915], - [47, 9, 2672, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `build!` is too high. [22/7]", 3140666915], - [47, 9, 2672, "Metrics/MethodLength: Method has too many lines. [47/10]", 3140666915], - [47, 9, 2672, "Metrics/PerceivedComplexity: Perceived complexity for `build!` is too high. [22/8]", 3140666915], - [120, 9, 779, "Metrics/AbcSize: Assignment Branch Condition size for `attach_orphan_region_to_nearest_owner` is too high. [<4, 18, 3> 18.68/17]", 714646861], - [120, 9, 779, "Metrics/MethodLength: Method has too many lines. [15/10]", 714646861], - [212, 7, 1703, "Metrics/MethodLength: Method has too many lines. [19/10]", 3233444968], - [350, 7, 686, "Metrics/AbcSize: Assignment Branch Condition size for `leading_comments_for_owner` is too high. [<7, 23, 9> 25.67/17]", 4287196323], - [350, 7, 686, "Metrics/MethodLength: Method has too many lines. [13/10]", 4287196323], - [373, 7, 1177, "Metrics/MethodLength: Method has too many lines. [23/10]", 853358252], - [415, 7, 587, "Metrics/MethodLength: Method has too many lines. [13/10]", 241044926], - [481, 7, 1099, "Metrics/AbcSize: Assignment Branch Condition size for `frozen_node?` is too high. [<3, 16, 7> 17.72/17]", 1886536218], - [481, 7, 1099, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `frozen_node?` is too high. [8/7]", 1886536218], - [615, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5858904], - [616, 121, 10, "Layout/LineLength: Line is too long. [130/120]", 442686854], - [687, 7, 779, "Metrics/AbcSize: Assignment Branch Condition size for `split_first_owner_preamble_entries` is too high. [<9, 20, 10> 24.1/17]", 2477766314], - [687, 7, 779, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `split_first_owner_preamble_entries` is too high. [9/7]", 2477766314], - [687, 7, 779, "Metrics/MethodLength: Method has too many lines. [11/10]", 2477766314], - [687, 7, 779, "Metrics/PerceivedComplexity: Perceived complexity for `split_first_owner_preamble_entries` is too high. [9/8]", 2477766314], - [697, 9, 11, "Style/MultilineBlockChain: Avoid multi-line chains of blocks.", 848344986], - [744, 7, 768, "Metrics/MethodLength: Method has too many lines. [15/10]", 3855207561], - [770, 7, 609, "Metrics/MethodLength: Method has too many lines. [15/10]", 3157294863], - [856, 7, 2509, "Metrics/AbcSize: Assignment Branch Condition size for `extract_and_integrate_all_nodes` is too high. [<11, 29, 16> 34.9/17]", 1138957888], - [856, 7, 2509, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `extract_and_integrate_all_nodes` is too high. [14/7]", 1138957888], - [856, 7, 2509, "Metrics/MethodLength: Method has too many lines. [32/10]", 1138957888], - [856, 7, 2509, "Metrics/PerceivedComplexity: Perceived complexity for `extract_and_integrate_all_nodes` is too high. [16/8]", 1138957888], - [925, 7, 1325, "Metrics/AbcSize: Assignment Branch Condition size for `extract_nodes_with_comments` is too high. [<3, 25, 7> 26.13/17]", 1498557944], - [925, 7, 1325, "Metrics/MethodLength: Method has too many lines. [23/10]", 1498557944], - [1037, 7, 11892, "Metrics/AbcSize: Assignment Branch Condition size for `compute_node_signature` is too high. [<19, 176, 83> 195.5/17]", 2654183611], - [1037, 7, 11892, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `compute_node_signature` is too high. [75/7]", 2654183611], - [1037, 7, 11892, "Metrics/MethodLength: Method has too many lines. [132/10]", 2654183611], - [1037, 7, 11892, "Metrics/PerceivedComplexity: Perceived complexity for `compute_node_signature` is too high. [61/8]", 2654183611], - [1098, 88, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], - [1102, 24, 300, "Metrics/BlockNesting: Avoid more than 3 levels of block nesting.", 2690302041], - [1102, 55, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], - [1313, 7, 680, "Metrics/AbcSize: Assignment Branch Condition size for `detect_gemspec_block_var` is too high. [<3, 22, 15> 26.8/17]", 3676370299], - [1313, 7, 680, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `detect_gemspec_block_var` is too high. [14/7]", 3676370299], - [1313, 7, 680, "Metrics/MethodLength: Method has too many lines. [14/10]", 3676370299], - [1313, 7, 680, "Metrics/PerceivedComplexity: Perceived complexity for `detect_gemspec_block_var` is too high. [14/8]", 3676370299] - ], - "lib/prism/merge/freeze_node.rb:2471800311": [ - [67, 7, 577, "Metrics/MethodLength: Method has too many lines. [11/10]", 2189574632], - [67, 21, 186, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [8/5]", 1006469938], - [124, 7, 2888, "Metrics/AbcSize: Assignment Branch Condition size for `validate_structure!` is too high. [<13, 32, 33> 47.77/17]", 3621186151], - [124, 7, 2888, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `validate_structure!` is too high. [24/7]", 3621186151], - [124, 7, 2888, "Metrics/MethodLength: Method has too many lines. [38/10]", 3621186151], - [124, 7, 2888, "Metrics/PerceivedComplexity: Perceived complexity for `validate_structure!` is too high. [25/8]", 3621186151] - ], - "lib/prism/merge/merge_result.rb:1970522956": [ - [9, 5, 12561, "Metrics/ClassLength: Class has too many lines. [238/100]", 3020348188], - [67, 7, 5058, "Metrics/AbcSize: Assignment Branch Condition size for `add_node` is too high. [<25, 54, 38> 70.6/17]", 2165268226], - [67, 7, 5058, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `add_node` is too high. [22/7]", 2165268226], - [67, 7, 5058, "Metrics/MethodLength: Method has too many lines. [94/10]", 2165268226], - [67, 7, 5058, "Metrics/PerceivedComplexity: Perceived complexity for `add_node` is too high. [31/8]", 2165268226], - [74, 9, 1617, "Metrics/BlockLength: Block has too many lines. [34/25]", 3544860826], - [175, 38, 40, "Style/StringConcatenation: Prefer string interpolation to string concatenation.", 3558364074], - [193, 9, 24, "Style/StringConcatenation: Prefer string interpolation to string concatenation.", 1750147806], - [219, 7, 901, "Metrics/AbcSize: Assignment Branch Condition size for `debug_output` is too high. [<5, 29, 5> 29.85/17]", 2776830125], - [219, 7, 901, "Metrics/MethodLength: Method has too many lines. [25/10]", 2776830125], - [296, 7, 903, "Metrics/MethodLength: Method has too many lines. [18/10]", 2752342414] - ], - "lib/prism/merge/method_match_refiner.rb:1593340636": [ - [103, 7, 705, "Metrics/AbcSize: Assignment Branch Condition size for `extract_param_names` is too high. [<2, 37, 16> 40.36/17]", 3200522215], - [103, 7, 705, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `extract_param_names` is too high. [17/7]", 3200522215], - [103, 7, 705, "Metrics/MethodLength: Method has too many lines. [11/10]", 3200522215], - [103, 7, 705, "Metrics/PerceivedComplexity: Perceived complexity for `extract_param_names` is too high. [17/8]", 3200522215], - [111, 49, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], - [114, 65, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765] - ], - "lib/prism/merge/nested_statement_walker.rb:3826169704": [ - [24, 7, 695, "Metrics/MethodLength: Method has too many lines. [16/10]", 3744912119], - [45, 7, 518, "Metrics/MethodLength: Method has too many lines. [12/10]", 2978518157] - ], - "lib/prism/merge/nocov_node.rb:2336029940": [ - [52, 19, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765] - ], - "lib/prism/merge/node_body_layout.rb:1642074264": [ - [5, 5, 20, "Style/Documentation: Missing top-level documentation comment for `class Prism::Merge::NodeBodyLayout`.", 1262407425], - [5, 5, 5858, "Metrics/ClassLength: Class has too many lines. [127/100]", 2663802475], - [14, 7, 413, "Metrics/AbcSize: Assignment Branch Condition size for `body_text` is too high. [<2, 17, 5> 17.83/17]", 1825622248], - [28, 9, 23, "Style/StringConcatenation: Prefer string interpolation to string concatenation.", 1178765246], - [31, 7, 241, "Metrics/AbcSize: Assignment Branch Condition size for `opening_line_text` is too high. [<0, 17, 1> 17.03/17]", 1468915915], - [37, 7, 237, "Metrics/AbcSize: Assignment Branch Condition size for `closing_line_text` is too high. [<0, 18, 1> 18.03/17]", 4077830027], - [73, 7, 1058, "Metrics/AbcSize: Assignment Branch Condition size for `statements_node` is too high. [<1, 30, 11> 31.97/17]", 4004813764], - [73, 7, 1058, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `statements_node` is too high. [12/7]", 4004813764], - [73, 7, 1058, "Metrics/MethodLength: Method has too many lines. [20/10]", 4004813764], - [73, 7, 1058, "Metrics/PerceivedComplexity: Perceived complexity for `statements_node` is too high. [10/8]", 4004813764], - [100, 7, 567, "Metrics/AbcSize: Assignment Branch Condition size for `body_start_line` is too high. [<1, 24, 4> 24.35/17]", 2388795687], - [103, 121, 17, "Layout/LineLength: Line is too long. [137/120]", 503895268], - [111, 7, 863, "Metrics/AbcSize: Assignment Branch Condition size for `body_end_line` is too high. [<2, 38, 7> 38.69/17]", 60007760], - [111, 7, 863, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `body_end_line` is too high. [8/7]", 60007760], - [111, 7, 863, "Metrics/MethodLength: Method has too many lines. [11/10]", 60007760], - [114, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 2068513341], - [116, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 270242779] - ], - "lib/prism/merge/node_emission_support.rb:388716709": [ - [5, 5, 25, "Style/Documentation: Missing top-level documentation comment for `class Prism::Merge::NodeEmissionSupport`.", 1335077453], - [5, 5, 42322, "Metrics/ClassLength: Class has too many lines. [775/100]", 2081266710], - [14, 7, 2734, "Metrics/AbcSize: Assignment Branch Condition size for `emit_dest_prefix_lines` is too high. [<18, 54, 18> 59.7/17]", 4241256208], - [14, 7, 2734, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `emit_dest_prefix_lines` is too high. [16/7]", 4241256208], - [14, 7, 2734, "Metrics/MethodLength: Method has too many lines. [54/10]", 4241256208], - [14, 7, 2734, "Metrics/PerceivedComplexity: Perceived complexity for `emit_dest_prefix_lines` is too high. [17/8]", 4241256208], - [19, 121, 1, "Layout/LineLength: Line is too long. [121/120]", 177656], - [20, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 3503445075], - [81, 7, 2526, "Metrics/AbcSize: Assignment Branch Condition size for `emit_removed_destination_node_comments` is too high. [<15, 38, 6> 41.29/17]", 3275408633], - [81, 7, 2526, "Metrics/MethodLength: Method has too many lines. [63/10]", 3275408633], - [153, 7, 1430, "Metrics/AbcSize: Assignment Branch Condition size for `emit_dest_gap_lines` is too high. [<7, 19, 11> 23.04/17]", 2013951205], - [153, 7, 1430, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `emit_dest_gap_lines` is too high. [9/7]", 2013951205], - [153, 7, 1430, "Metrics/MethodLength: Method has too many lines. [27/10]", 2013951205], - [153, 7, 1430, "Metrics/PerceivedComplexity: Perceived complexity for `emit_dest_gap_lines` is too high. [9/8]", 2013951205], - [154, 36, 21, "Style/NumericPredicate: Use `last_output_line.zero?` instead of `last_output_line == 0`.", 1942859694], - [160, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 3276957001], - [187, 7, 9316, "Metrics/AbcSize: Assignment Branch Condition size for `emit_matched_template_node` is too high. [<52, 122, 45> 140.0/17]", 605812917], - [187, 7, 9316, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `emit_matched_template_node` is too high. [43/7]", 605812917], - [187, 7, 9316, "Metrics/MethodLength: Method has too many lines. [151/10]", 605812917], - [187, 7, 9316, "Metrics/PerceivedComplexity: Perceived complexity for `emit_matched_template_node` is too high. [45/8]", 605812917], - [269, 121, 22, "Layout/LineLength: Line is too long. [142/120]", 2775680224], - [301, 121, 10, "Layout/LineLength: Line is too long. [130/120]", 249577804], - [331, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 2267103911], - [361, 121, 27, "Layout/LineLength: Line is too long. [147/120]", 988398654], - [373, 7, 6908, "Metrics/AbcSize: Assignment Branch Condition size for `emit_node` is too high. [<44, 90, 54> 113.8/17]", 2848614159], - [373, 7, 6908, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `emit_node` is too high. [38/7]", 2848614159], - [373, 7, 6908, "Metrics/MethodLength: Method has too many lines. [135/10]", 2848614159], - [373, 7, 6908, "Metrics/PerceivedComplexity: Perceived complexity for `emit_node` is too high. [44/8]", 2848614159], - [388, 121, 25, "Layout/LineLength: Line is too long. [145/120]", 3628174615], - [475, 121, 15, "Layout/LineLength: Line is too long. [135/120]", 650150522], - [480, 15, 379, "Metrics/BlockNesting: Avoid more than 3 levels of block nesting.", 3006808047], - [519, 121, 7, "Layout/LineLength: Line is too long. [127/120]", 2020907649], - [536, 7, 1166, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `filter_previous_destination_owned_template_leading_comments` is too high. [8/7]", 2076094754], - [536, 7, 1166, "Metrics/MethodLength: Method has too many lines. [15/10]", 2076094754], - [536, 71, 13, "Lint/UnusedMethodArgument: Unused method argument - `template_node`.", 1616609802], - [587, 7, 973, "Metrics/MethodLength: Method has too many lines. [15/10]", 1892360110], - [587, 60, 172, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [7/5]", 2784840176], - [588, 121, 5, "Layout/LineLength: Line is too long. [125/120]", 169966263], - [614, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2087656651], - [627, 7, 873, "Metrics/AbcSize: Assignment Branch Condition size for `previous_template_gap_already_precedes_leading_comments?` is too high. [<5, 19, 11> 22.52/17]", 268778340], - [627, 7, 873, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `previous_template_gap_already_precedes_leading_comments?` is too high. [9/7]", 268778340], - [627, 7, 873, "Metrics/MethodLength: Method has too many lines. [13/10]", 268778340], - [627, 7, 873, "Metrics/PerceivedComplexity: Perceived complexity for `previous_template_gap_already_precedes_leading_comments?` is too high. [9/8]", 268778340], - [636, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 618947799], - [696, 7, 457, "Metrics/MethodLength: Method has too many lines. [11/10]", 349820622], - [724, 7, 758, "Metrics/AbcSize: Assignment Branch Condition size for `partial_same_line_node?` is too high. [<8, 31, 5> 32.4/17]", 1768803955], - [775, 7, 597, "Metrics/MethodLength: Method has too many lines. [12/10]", 2742538822], - [775, 40, 67, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 725821220], - [792, 7, 552, "Metrics/MethodLength: Method has too many lines. [12/10]", 4255654885], - [815, 7, 845, "Metrics/MethodLength: Method has too many lines. [13/10]", 3468050888], - [846, 7, 1097, "Metrics/AbcSize: Assignment Branch Condition size for `filter_emitted_template_leading_comments` is too high. [<6, 18, 3> 19.21/17]", 2091395187], - [846, 7, 1097, "Metrics/MethodLength: Method has too many lines. [17/10]", 2091395187], - [882, 7, 822, "Metrics/MethodLength: Method has too many lines. [13/10]", 3499946440], - [899, 7, 1359, "Metrics/AbcSize: Assignment Branch Condition size for `collapse_matched_template_leading_prefix` is too high. [<7, 22, 10> 25.16/17]", 3976364089], - [899, 7, 1359, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `collapse_matched_template_leading_prefix` is too high. [9/7]", 3976364089], - [899, 7, 1359, "Metrics/MethodLength: Method has too many lines. [21/10]", 3976364089], - [899, 7, 1359, "Metrics/PerceivedComplexity: Perceived complexity for `collapse_matched_template_leading_prefix` is too high. [9/8]", 3976364089], - [943, 121, 37, "Layout/LineLength: Line is too long. [157/120]", 3703011298], - [947, 7, 746, "Metrics/MethodLength: Method has too many lines. [17/10]", 3532927627] - ], - "lib/prism/merge/partial_template_merger.rb:2303997532": [ - [14, 7, 826, "Metrics/MethodLength: Method has too many lines. [14/10]", 713706122], - [14, 21, 329, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [12/5]", 2768355468], - [55, 7, 487, "Metrics/MethodLength: Method has too many lines. [11/10]", 447766477], - [75, 7, 520, "Metrics/AbcSize: Assignment Branch Condition size for `node_to_text` is too high. [<1, 19, 6> 19.95/17]", 1593952791], - [84, 46, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765] - ], - "lib/prism/merge/recursive_merge_policy.rb:4204303290": [ - [5, 5, 26, "Style/Documentation: Missing top-level documentation comment for `class Prism::Merge::RecursiveMergePolicy`.", 1329613257], - [12, 7, 1132, "Metrics/AbcSize: Assignment Branch Condition size for `should_merge?` is too high. [<4, 25, 15> 29.43/17]", 4123619949], - [12, 7, 1132, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `should_merge?` is too high. [14/7]", 4123619949], - [12, 7, 1132, "Metrics/MethodLength: Method has too many lines. [20/10]", 4123619949], - [12, 7, 1132, "Metrics/PerceivedComplexity: Perceived complexity for `should_merge?` is too high. [13/8]", 4123619949], - [47, 7, 398, "Metrics/MethodLength: Method has too many lines. [18/10]", 385694759] - ], - "lib/prism/merge/recursive_node_body_merger.rb:1132596837": [ - [5, 5, 29, "Style/Documentation: Missing top-level documentation comment for `class Prism::Merge::RecursiveNodeBodyMerger`.", 3703318859], - [5, 5, 18505, "Metrics/ClassLength: Class has too many lines. [333/100]", 3196902308], - [12, 7, 12756, "Metrics/AbcSize: Assignment Branch Condition size for `merge` is too high. [<78, 262, 90> 287.8/17]", 1909933362], - [12, 7, 12756, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `merge` is too high. [70/7]", 1909933362], - [12, 7, 12756, "Metrics/MethodLength: Method has too many lines. [215/10]", 1909933362], - [12, 7, 12756, "Metrics/PerceivedComplexity: Perceived complexity for `merge` is too high. [75/8]", 1909933362], - [27, 121, 10, "Layout/LineLength: Line is too long. [130/120]", 929875726], - [62, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 518709914], - [67, 121, 10, "Layout/LineLength: Line is too long. [130/120]", 366676207], - [266, 7, 1221, "Metrics/AbcSize: Assignment Branch Condition size for `remap_inner_unresolved_review_state!` is too high. [<8, 22, 6> 24.17/17]", 3210674006], - [266, 7, 1221, "Metrics/MethodLength: Method has too many lines. [21/10]", 3210674006], - [293, 7, 1121, "Metrics/AbcSize: Assignment Branch Condition size for `remap_inner_unresolved_case` is too high. [<6, 24, 0> 24.74/17]", 3468635549], - [293, 7, 1121, "Metrics/MethodLength: Method has too many lines. [15/10]", 3468635549], - [376, 7, 826, "Metrics/AbcSize: Assignment Branch Condition size for `emit_trailing_layout_gap_lines` is too high. [<6, 18, 9> 21/17]", 2158299973], - [376, 7, 826, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `emit_trailing_layout_gap_lines` is too high. [8/7]", 2158299973], - [376, 7, 826, "Metrics/MethodLength: Method has too many lines. [17/10]", 2158299973], - [376, 7, 826, "Metrics/PerceivedComplexity: Perceived complexity for `emit_trailing_layout_gap_lines` is too high. [9/8]", 2158299973] - ], - "lib/prism/merge/ruby_doc_surface_analyzer.rb:3389668357": [ - [7, 5, 7100, "Metrics/ClassLength: Class has too many lines. [162/100]", 77379508], - [50, 7, 1408, "Metrics/AbcSize: Assignment Branch Condition size for `build_doc_comment_surface` is too high. [<10, 25, 5> 27.39/17]", 2414553577], - [50, 7, 1408, "Metrics/MethodLength: Method has too many lines. [28/10]", 2414553577], - [91, 7, 1256, "Metrics/AbcSize: Assignment Branch Condition size for `build_example_surface` is too high. [<4, 23, 2> 23.43/17]", 4074178203], - [91, 7, 1256, "Metrics/MethodLength: Method has too many lines. [25/10]", 4074178203], - [131, 7, 555, "Metrics/AbcSize: Assignment Branch Condition size for `doc_comment_entries` is too high. [<8, 18, 6> 20.59/17]", 358090808] - ], - "lib/prism/merge/scaffold_chunk_remover.rb:1404116850": [ - [34, 7, 2064, "Metrics/AbcSize: Assignment Branch Condition size for `call` is too high. [<21, 62, 22> 69.06/17]", 3983172586], - [34, 7, 2064, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `call` is too high. [21/7]", 3983172586], - [34, 7, 2064, "Metrics/MethodLength: Method has too many lines. [39/10]", 3983172586], - [34, 7, 2064, "Metrics/PerceivedComplexity: Perceived complexity for `call` is too high. [21/8]", 3983172586] - ], - "lib/prism/merge/smart_merger.rb:3814529034": [ - [48, 5, 42561, "Metrics/ClassLength: Class has too many lines. [603/100]", 3828655257], - [96, 7, 2032, "Metrics/MethodLength: Method has too many lines. [24/10]", 4118525224], - [96, 21, 595, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [18/5]", 1562155096], - [171, 7, 1325, "Metrics/AbcSize: Assignment Branch Condition size for `merge_with_debug` is too high. [<3, 24, 19> 30.76/17]", 605983530], - [171, 7, 1325, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `merge_with_debug` is too high. [20/7]", 605983530], - [171, 7, 1325, "Metrics/MethodLength: Method has too many lines. [27/10]", 605983530], - [171, 7, 1325, "Metrics/PerceivedComplexity: Perceived complexity for `merge_with_debug` is too high. [20/8]", 605983530], - [310, 7, 664, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `frozen_node?` is too high. [8/7]", 2577924190], - [352, 7, 508, "Metrics/MethodLength: Method has too many lines. [13/10]", 1368018500], - [442, 7, 1155, "Metrics/AbcSize: Assignment Branch Condition size for `build_signature_map` is too high. [<11, 16, 8> 21/17]", 3956321005], - [442, 7, 1155, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `build_signature_map` is too high. [8/7]", 3956321005], - [442, 7, 1155, "Metrics/MethodLength: Method has too many lines. [16/10]", 3956321005], - [483, 7, 2731, "Metrics/AbcSize: Assignment Branch Condition size for `preference_for_node` is too high. [<7, 22, 20> 30.55/17]", 1325207598], - [483, 7, 2731, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `preference_for_node` is too high. [21/7]", 1325207598], - [483, 7, 2731, "Metrics/MethodLength: Method has too many lines. [25/10]", 1325207598], - [483, 7, 2731, "Metrics/PerceivedComplexity: Perceived complexity for `preference_for_node` is too high. [21/8]", 1325207598], - [659, 32, 73, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 2261515417], - [670, 35, 79, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 1350141395], - [681, 42, 63, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 2615605084], - [852, 35, 213, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [8/5]", 720547751] - ], - "lib/prism/merge/source_line_lookup.rb:1098479933": [ - [5, 5, 23, "Style/Documentation: Missing top-level documentation comment for `module Prism::Merge::SourceLineLookup`.", 2168434862] - ], - "lib/prism/merge/top_level_merge_runner.rb:1106437552": [ - [38, 5, 61468, "Metrics/ClassLength: Class has too many lines. [1156/100]", 150648557], - [66, 7, 5196, "Metrics/AbcSize: Assignment Branch Condition size for `merge` is too high. [<22, 68, 9> 72.03/17]", 176450457], - [66, 7, 5196, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `merge` is too high. [9/7]", 176450457], - [66, 7, 5196, "Metrics/MethodLength: Method has too many lines. [75/10]", 176450457], - [66, 7, 5196, "Metrics/PerceivedComplexity: Perceived complexity for `merge` is too high. [10/8]", 176450457], - [162, 7, 2023, "Metrics/AbcSize: Assignment Branch Condition size for `start_runtime_session!` is too high. [<5, 48, 1> 48.27/17]", 2943824289], - [162, 7, 2023, "Metrics/MethodLength: Method has too many lines. [44/10]", 2943824289], - [212, 7, 1765, "Metrics/AbcSize: Assignment Branch Condition size for `complete_runtime_session!` is too high. [<2, 21, 9> 22.93/17]", 2968004900], - [212, 7, 1765, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `complete_runtime_session!` is too high. [8/7]", 2968004900], - [212, 7, 1765, "Metrics/MethodLength: Method has too many lines. [36/10]", 2968004900], - [212, 7, 1765, "Metrics/PerceivedComplexity: Perceived complexity for `complete_runtime_session!` is too high. [10/8]", 2968004900], - [229, 121, 11, "Layout/LineLength: Line is too long. [131/120]", 3907470478], - [254, 7, 584, "Metrics/MethodLength: Method has too many lines. [14/10]", 1615217394], - [272, 7, 589, "Metrics/AbcSize: Assignment Branch Condition size for `runtime_document_surface` is too high. [<1, 19, 1> 19.05/17]", 1835005228], - [272, 7, 589, "Metrics/MethodLength: Method has too many lines. [12/10]", 1835005228], - [288, 7, 3192, "Metrics/AbcSize: Assignment Branch Condition size for `register_discovered_surface_operations!` is too high. [<12, 60, 9> 61.85/17]", 3059111269], - [288, 7, 3192, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `register_discovered_surface_operations!` is too high. [10/7]", 3059111269], - [288, 7, 3192, "Metrics/MethodLength: Method has too many lines. [65/10]", 3059111269], - [288, 7, 3192, "Metrics/PerceivedComplexity: Perceived complexity for `register_discovered_surface_operations!` is too high. [10/8]", 3059111269], - [297, 9, 2237, "Metrics/BlockLength: Block has too many lines. [44/25]", 809738986], - [399, 7, 1643, "Metrics/AbcSize: Assignment Branch Condition size for `execute_child_operations!` is too high. [<5, 33, 5> 33.75/17]", 1049305146], - [399, 7, 1643, "Metrics/MethodLength: Method has too many lines. [36/10]", 1049305146], - [400, 9, 1570, "Metrics/BlockLength: Block has too many lines. [29/25]", 1597985402], - [404, 9, 31, "Style/MultilineBlockChain: Avoid multi-line chains of blocks.", 3553388257], - [448, 7, 631, "Metrics/MethodLength: Method has too many lines. [15/10]", 1652116821], - [466, 7, 1306, "Metrics/AbcSize: Assignment Branch Condition size for `merge_runtime_surface` is too high. [<2, 18, 4> 18.55/17]", 1347264970], - [466, 7, 1306, "Metrics/MethodLength: Method has too many lines. [29/10]", 1347264970], - [500, 7, 1393, "Metrics/AbcSize: Assignment Branch Condition size for `merge_runtime_doc_comment_surface` is too high. [<4, 23, 5> 23.87/17]", 3745645404], - [500, 7, 1393, "Metrics/MethodLength: Method has too many lines. [29/10]", 3745645404], - [534, 7, 826, "Metrics/AbcSize: Assignment Branch Condition size for `apply_runtime_doc_children` is too high. [<5, 24, 7> 25.5/17]", 1386022126], - [534, 7, 826, "Metrics/MethodLength: Method has too many lines. [15/10]", 1386022126], - [542, 16, 27, "Style/MultilineBlockChain: Avoid multi-line chains of blocks.", 1443167664], - [546, 9, 24, "Style/MultilineBlockChain: Avoid multi-line chains of blocks.", 644874689], - [554, 7, 1438, "Metrics/AbcSize: Assignment Branch Condition size for `apply_runtime_example_child` is too high. [<10, 44, 10> 46.22/17]", 2594444962], - [554, 7, 1438, "Metrics/MethodLength: Method has too many lines. [25/10]", 2594444962], - [556, 121, 11, "Layout/LineLength: Line is too long. [131/120]", 3651736697], - [599, 7, 518, "Metrics/MethodLength: Method has too many lines. [11/10]", 523939757], - [623, 7, 753, "Metrics/MethodLength: Method has too many lines. [15/10]", 3406860674], - [683, 7, 1514, "Metrics/AbcSize: Assignment Branch Condition size for `compute_similarity_pairs` is too high. [<17, 42, 11> 46.63/17]", 103276977], - [683, 7, 1514, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `compute_similarity_pairs` is too high. [11/7]", 103276977], - [683, 7, 1514, "Metrics/MethodLength: Method has too many lines. [27/10]", 103276977], - [683, 7, 1514, "Metrics/PerceivedComplexity: Perceived complexity for `compute_similarity_pairs` is too high. [11/8]", 103276977], - [735, 7, 545, "Metrics/MethodLength: Method has too many lines. [12/10]", 398381329], - [763, 7, 586, "Metrics/MethodLength: Method has too many lines. [11/10]", 1559638959], - [843, 7, 640, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `collect_nested_signatures` is too high. [10/7]", 3947424552], - [843, 7, 640, "Metrics/MethodLength: Method has too many lines. [13/10]", 3947424552], - [843, 7, 640, "Metrics/PerceivedComplexity: Perceived complexity for `collect_nested_signatures` is too high. [10/8]", 3947424552], - [845, 12, 9, "Style/NumericPredicate: Use `depth.positive?` instead of `depth > 0`.", 2180768870], - [869, 7, 1297, "Metrics/AbcSize: Assignment Branch Condition size for `nested_statement_children` is too high. [<2, 50, 17> 52.85/17]", 3818826989], - [869, 7, 1297, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `nested_statement_children` is too high. [17/7]", 3818826989], - [869, 7, 1297, "Metrics/MethodLength: Method has too many lines. [19/10]", 3818826989], - [869, 7, 1297, "Metrics/PerceivedComplexity: Perceived complexity for `nested_statement_children` is too high. [15/8]", 3818826989], - [877, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 3315454453], - [882, 93, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], - [883, 89, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], - [884, 93, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], - [899, 7, 754, "Metrics/AbcSize: Assignment Branch Condition size for `prepare_comment_augmenters!` is too high. [<1, 19, 0> 19.03/17]", 311364642], - [899, 7, 754, "Metrics/MethodLength: Method has too many lines. [12/10]", 311364642], - [1003, 7, 1707, "Metrics/AbcSize: Assignment Branch Condition size for `retained_owner_plan` is too high. [<16, 40, 12> 44.72/17]", 375532236], - [1003, 7, 1707, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `retained_owner_plan` is too high. [13/7]", 375532236], - [1003, 7, 1707, "Metrics/MethodLength: Method has too many lines. [33/10]", 375532236], - [1003, 7, 1707, "Metrics/PerceivedComplexity: Perceived complexity for `retained_owner_plan` is too high. [13/8]", 375532236], - [1003, 55, 17, "Lint/UnusedMethodArgument: Unused method argument - `dest_by_signature`.", 379778684], - [1024, 9, 250, "Style/CombinableLoops: Combine this loop with the previous loop.", 3315024098], - [1031, 121, 5, "Layout/LineLength: Line is too long. [125/120]", 180543822], - [1048, 7, 4811, "Metrics/AbcSize: Assignment Branch Condition size for `process_dest_node` is too high. [<23, 71, 16> 76.33/17]", 329713352], - [1048, 7, 4811, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `process_dest_node` is too high. [13/7]", 329713352], - [1048, 7, 4811, "Metrics/MethodLength: Method has too many lines. [90/10]", 329713352], - [1048, 7, 4811, "Metrics/PerceivedComplexity: Perceived complexity for `process_dest_node` is too high. [17/8]", 329713352], - [1048, 28, 279, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [9/5]", 2321512478], - [1190, 7, 757, "Metrics/MethodLength: Method has too many lines. [19/10]", 3306507447], - [1228, 44, 189, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 215272527], - [1259, 7, 888, "Metrics/MethodLength: Method has too many lines. [17/10]", 2638200013], - [1259, 31, 189, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [9/5]", 50070642], - [1281, 7, 719, "Metrics/MethodLength: Method has too many lines. [13/10]", 530865591], - [1299, 7, 1393, "Metrics/AbcSize: Assignment Branch Condition size for `process_non_recursive_match` is too high. [<10, 23, 7> 26.04/17]", 324106576], - [1299, 7, 1393, "Metrics/MethodLength: Method has too many lines. [29/10]", 324106576], - [1333, 7, 1106, "Metrics/AbcSize: Assignment Branch Condition size for `process_unresolved_non_recursive_match` is too high. [<3, 19, 3> 19.47/17]", 1476652897], - [1333, 7, 1106, "Metrics/MethodLength: Method has too many lines. [26/10]", 1476652897], - [1374, 7, 1935, "Metrics/AbcSize: Assignment Branch Condition size for `record_unresolved_match_case!` is too high. [<4, 26, 3> 26.48/17]", 456739474], - [1374, 7, 1935, "Metrics/MethodLength: Method has too many lines. [37/10]", 456739474], - [1459, 7, 1067, "Metrics/AbcSize: Assignment Branch Condition size for `advance_last_output_dest_line` is too high. [<6, 19, 6> 20.81/17]", 331135500], - [1459, 7, 1067, "Metrics/MethodLength: Method has too many lines. [11/10]", 331135500], - [1459, 40, 181, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 2038823112] - ], - "lib/prism/merge/wrapper_comment_support.rb:3046735928": [ - [5, 5, 27, "Style/Documentation: Missing top-level documentation comment for `class Prism::Merge::WrapperCommentSupport`.", 2211657316], - [5, 5, 17765, "Metrics/ClassLength: Class has too many lines. [358/100]", 370100972], - [14, 7, 3072, "Metrics/AbcSize: Assignment Branch Condition size for `filtered_leading_comments_for` is too high. [<26, 58, 27> 69.06/17]", 934788024], - [14, 7, 3072, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `filtered_leading_comments_for` is too high. [24/7]", 934788024], - [14, 7, 3072, "Metrics/MethodLength: Method has too many lines. [48/10]", 934788024], - [14, 7, 3072, "Metrics/PerceivedComplexity: Perceived complexity for `filtered_leading_comments_for` is too high. [27/8]", 934788024], - [24, 121, 10, "Layout/LineLength: Line is too long. [130/120]", 366676207], - [65, 11, 68, "Style/MultilineBlockChain: Avoid multi-line chains of blocks.", 2360366291], - [74, 73, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], - [95, 7, 1446, "Metrics/AbcSize: Assignment Branch Condition size for `emit_leading_comments` is too high. [<8, 16, 13> 22.11/17]", 86315238], - [95, 7, 1446, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `emit_leading_comments` is too high. [9/7]", 86315238], - [95, 7, 1446, "Metrics/MethodLength: Method has too many lines. [31/10]", 86315238], - [95, 7, 1446, "Metrics/PerceivedComplexity: Perceived complexity for `emit_leading_comments` is too high. [11/8]", 86315238], - [95, 32, 73, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 2261515417], - [98, 9, 1234, "Metrics/BlockLength: Block has too many lines. [28/25]", 357181412], - [134, 7, 953, "Metrics/MethodLength: Method has too many lines. [19/10]", 3183807785], - [134, 35, 79, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 1350141395], - [162, 7, 1228, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `emit_comment_region` is too high. [10/7]", 2201645681], - [162, 7, 1228, "Metrics/MethodLength: Method has too many lines. [31/10]", 2201645681], - [162, 7, 1228, "Metrics/PerceivedComplexity: Perceived complexity for `emit_comment_region` is too high. [11/8]", 2201645681], - [162, 30, 67, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 191987245], - [163, 29, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], - [202, 7, 777, "Metrics/MethodLength: Method has too many lines. [18/10]", 4073303022], - [202, 30, 68, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 3851519454], - [208, 9, 8, "Style/MultilineBlockChain: Avoid multi-line chains of blocks.", 359222635], - [226, 7, 1080, "Metrics/MethodLength: Method has too many lines. [27/10]", 296167644], - [226, 42, 63, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 2615605084], - [260, 7, 689, "Metrics/AbcSize: Assignment Branch Condition size for `append_inline_comment_entries` is too high. [<7, 19, 8> 21.77/17]", 1575903523], - [260, 7, 689, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `append_inline_comment_entries` is too high. [8/7]", 1575903523], - [260, 7, 689, "Metrics/MethodLength: Method has too many lines. [16/10]", 1575903523], - [260, 7, 689, "Metrics/PerceivedComplexity: Perceived complexity for `append_inline_comment_entries` is too high. [9/8]", 1575903523], - [288, 7, 607, "Metrics/AbcSize: Assignment Branch Condition size for `line_inline_comment_entries` is too high. [<3, 18, 7> 19.54/17]", 2131701672], - [288, 7, 607, "Metrics/MethodLength: Method has too many lines. [12/10]", 2131701672], - [338, 7, 1023, "Metrics/MethodLength: Method has too many lines. [19/10]", 2409125040], - [363, 7, 854, "Metrics/AbcSize: Assignment Branch Condition size for `runtime_doc_comment_operation_for` is too high. [<4, 24, 13> 27.59/17]", 1109173425], - [363, 7, 854, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `runtime_doc_comment_operation_for` is too high. [10/7]", 1109173425], - [363, 7, 854, "Metrics/MethodLength: Method has too many lines. [11/10]", 1109173425], - [363, 7, 854, "Metrics/PerceivedComplexity: Perceived complexity for `runtime_doc_comment_operation_for` is too high. [10/8]", 1109173425], - [373, 121, 10, "Layout/LineLength: Line is too long. [130/120]", 1843406524], - [381, 7, 755, "Metrics/AbcSize: Assignment Branch Condition size for `build_runtime_leading_region` is too high. [<5, 18, 4> 19.1/17]", 3130034424], - [381, 7, 755, "Metrics/MethodLength: Method has too many lines. [14/10]", 3130034424], - [411, 7, 850, "Metrics/AbcSize: Assignment Branch Condition size for `runtime_line_numbers_for` is too high. [<6, 26, 6> 27.35/17]", 966446340] - ], - "prism-merge.gemspec:2052428369": [ - [128, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 2821357214], - [143, 121, 50, "Layout/LineLength: Line is too long. [170/120]", 3888612416], - [144, 121, 29, "Layout/LineLength: Line is too long. [149/120]", 981994949], - [151, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 4229808912] - ], - "spec/fixtures/reproducible/04_gemspec_duplication/destination.rb:971498360": [ - [25, 1, 8292, "Metrics/BlockLength: Block has too many lines. [110/25]", 1251580584], - [32, 121, 317, "Layout/LineLength: Line is too long. [437/120]", 1870252497], - [184, 121, 34, "Layout/LineLength: Line is too long. [154/120]", 4147388508], - [199, 121, 50, "Layout/LineLength: Line is too long. [170/120]", 3888612416], - [200, 121, 29, "Layout/LineLength: Line is too long. [149/120]", 981994949], - [207, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 4229808912] - ], - "spec/fixtures/reproducible/04_gemspec_duplication/template.rb:1741222365": [ - [19, 1, 4121, "Metrics/BlockLength: Block has too many lines. [71/25]", 547880907], - [26, 121, 317, "Layout/LineLength: Line is too long. [437/120]", 1870252497] - ], - "spec/fixtures/reproducible/05_gemspec_orphan_duplication/destination.rb:2573186797": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177634] - ], - "spec/fixtures/reproducible/05_gemspec_orphan_duplication/result.rb:2573186797": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177634] - ], - "spec/fixtures/reproducible/05_gemspec_orphan_duplication/template.rb:1825302441": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177634] - ], - "spec/fixtures_integration_spec.rb:3086023041": [ - [7, 1, 23038, "Metrics/BlockLength: Block has too many lines. [521/25]", 1776221706], - [66, 121, 26, "Layout/LineLength: Line is too long. [146/120]", 1448895712], - [72, 3, 1302, "Metrics/BlockLength: Block has too many lines. [30/25]", 2973641144], - [106, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5858795], - [113, 3, 1679, "Metrics/BlockLength: Block has too many lines. [38/25]", 2954972744], - [419, 3, 7512, "Metrics/BlockLength: Block has too many lines. [149/25]", 2278210376] - ], - "spec/reproducible_merge_spec.rb:2334824632": [ - [6, 1, 2420, "Metrics/BlockLength: Block has too many lines. [50/25]", 2207509489], - [39, 121, 13, "Layout/LineLength: Line is too long. [133/120]", 1416718429] - ] -} diff --git a/gems/prism-merge/Gemfile b/gems/prism-merge/Gemfile index 93936ddf8..9827369fd 100644 --- a/gems/prism-merge/Gemfile +++ b/gems/prism-merge/Gemfile @@ -6,7 +6,7 @@ # kettle-jem will then preserve content between those markers across template runs. # kettle-jem:unfreeze -source 'https://gem.coop' +source "https://gem.coop" git_source(:codeberg) { |repo_name| "https://codeberg.org/#{repo_name}" } git_source(:gitlab) { |repo_name| "https://gitlab.com/#{repo_name}" } @@ -19,17 +19,61 @@ git_source(:gitlab) { |repo_name| "https://gitlab.com/#{repo_name}" } gemspec # Local workspace dependency wiring for *_local.gemfile overrides -nomono_requirements = ['~> 1.0', '>= 1.0.8'] -gem 'nomono', *nomono_requirements, require: false # ruby >= 2.2 +nomono_requirements = ["~> 1.0", ">= 1.0.8"] +gem "nomono", *nomono_requirements, require: false # ruby >= 2.2 # Direct sibling dependencies (env-switched via STRUCTUREDMERGE_DEV) direct_sibling_gems = %w[ ruby-merge ] -direct_sibling_dev = ENV.fetch('STRUCTUREDMERGE_DEV', '') +direct_sibling_dev = ENV.fetch("STRUCTUREDMERGE_DEV", "") direct_sibling_local = !direct_sibling_dev.empty? && !%w[false 0 no off].include?(direct_sibling_dev.downcase) -direct_sibling_templating = ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? +direct_sibling_templating = ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? + +if direct_sibling_gems.any? && + (direct_sibling_local || + ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero?) + direct_sibling_dev_was_set = ENV.key?("STRUCTUREDMERGE_DEV") + direct_sibling_dev_original = ENV.fetch("STRUCTUREDMERGE_DEV", nil) + begin + nomono_activation_requirements = nomono_requirements + nomono_lockfile = File.expand_path("Gemfile.lock", __dir__) + if File.file?(nomono_lockfile) + nomono_locked_spec = Bundler::LockfileParser + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == "nomono" } + nomono_locked = nomono_locked_spec && + Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) + if nomono_locked + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] + end + end + Kernel.send(:gem, "nomono", *nomono_activation_requirements) + require "nomono/bundler" + if direct_sibling_templating && !direct_sibling_local + ENV["STRUCTUREDMERGE_DEV"] = File.expand_path("..", __dir__) + end + + eval_nomono_gems( + gems: direct_sibling_gems, + prefix: "STRUCTUREDMERGE", + path_env: "STRUCTUREDMERGE_DEV", + root: ["src", "my", "structuredmerge"] + ) + rescue LoadError + warn "Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies." + ensure + if direct_sibling_templating && !direct_sibling_local + if direct_sibling_dev_was_set + ENV["STRUCTUREDMERGE_DEV"] = direct_sibling_dev_original + else + ENV.delete("STRUCTUREDMERGE_DEV") + end + end + end +end if direct_sibling_gems.any? && (direct_sibling_local || @@ -152,28 +196,28 @@ if direct_sibling_gems.any? && end # Use released TSLP with the Ruby ABI platform-gem fix. -gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' +gem "tree_sitter_language_pack", "~> 1.13", ">= 1.13.3" # Templating (env-switched: STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local paths) -eval_gemfile 'gemfiles/modular/templating.gemfile' if ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? +eval_gemfile "gemfiles/modular/templating.gemfile" if ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? # Debugging -eval_gemfile 'gemfiles/modular/debug.gemfile' +eval_gemfile "gemfiles/modular/debug.gemfile" # Code Coverage (env-switched: KETTLE_DEV_DEV=true for local paths) -eval_gemfile 'gemfiles/modular/coverage.gemfile' +eval_gemfile "gemfiles/modular/coverage.gemfile" # Linting -eval_gemfile 'gemfiles/modular/style.gemfile' +eval_gemfile "gemfiles/modular/style.gemfile" # Documentation -eval_gemfile 'gemfiles/modular/documentation.gemfile' +eval_gemfile "gemfiles/modular/documentation.gemfile" # Optional -eval_gemfile 'gemfiles/modular/optional.gemfile' +eval_gemfile "gemfiles/modular/optional.gemfile" ### Std Lib Extracted Gems -eval_gemfile 'gemfiles/modular/x_std_libs.gemfile' +eval_gemfile "gemfiles/modular/x_std_libs.gemfile" # See unlocked_deps appraisal for more details on irb inclusion -gem 'irb', '~> 1.17' # ruby >= 2.7 +gem "irb", "~> 1.17" # ruby >= 2.7 diff --git a/gems/prism-merge/Gemfile.lock b/gems/prism-merge/Gemfile.lock index 2008a266c..ae07c0d1e 100644 --- a/gems/prism-merge/Gemfile.lock +++ b/gems/prism-merge/Gemfile.lock @@ -6,6 +6,14 @@ PATH ruby-merge (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge + specs: + ruby-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + GEM remote: https://gem.coop/ specs: @@ -276,10 +284,6 @@ GEM lint_roller (~> 1.1) rubocop (~> 1.72, >= 1.72.1) rubocop-ast (>= 1.44.0, < 2.0) - ruby-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) ruby-progressbar (1.13.0) ruby_engine (2.0.3) ruby_version (1.0.3) @@ -415,6 +419,7 @@ DEPENDENCIES rubocop-on-rbs (~> 2.0, >= 2.0.0) rubocop-packaging (~> 0.6, >= 0.6.0) rubocop-ruby3_2 (~> 3.0, >= 3.0.6) + ruby-merge! ruby-progressbar (~> 1.13) standard (~> 1.56, >= 1.56.0) stone_checksums (~> 1.0, >= 1.0.3) diff --git a/gems/prism-merge/Rakefile b/gems/prism-merge/Rakefile index 0413b973d..3ceda1211 100644 --- a/gems/prism-merge/Rakefile +++ b/gems/prism-merge/Rakefile @@ -130,23 +130,23 @@ end ### DUPLICATE DRIFT TASKS begin - require 'kettle/drift' + require "kettle/drift" Kettle::Drift.install_tasks rescue LoadError - desc('(stub) kettle:drift:check is unavailable') - task('kettle:drift:check') do + desc("(stub) kettle:drift:check is unavailable") + task("kettle:drift:check") do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc('(stub) kettle:drift:update is unavailable') - task('kettle:drift:update') do + desc("(stub) kettle:drift:update is unavailable") + task("kettle:drift:update") do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc('(stub) kettle:drift:force_update is unavailable') - task('kettle:drift:force_update') do + desc("(stub) kettle:drift:force_update is unavailable") + task("kettle:drift:force_update") do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc('(stub) kettle:drift is unavailable') - task('kettle:drift' => 'kettle:drift:update') + desc("(stub) kettle:drift is unavailable") + task("kettle:drift" => "kettle:drift:update") end ### TEMPLATING TASKS diff --git a/gems/prism-merge/bin/yard b/gems/prism-merge/bin/yard index 5d516ad6f..a7e8b6eed 100755 --- a/gems/prism-merge/bin/yard +++ b/gems/prism-merge/bin/yard @@ -12,4 +12,4 @@ # `yard` / `bin/yard`. Keep this binstub as a handoff to the task so # humans and tools that reach for `bin/yard` still run the full docs # workflow with post-processing hooks. -exec('bundle', 'exec', 'rake', 'yard') +exec("bundle", "exec", "rake", "yard") diff --git a/gems/prism-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile b/gems/prism-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile index b8392fab0..dec650815 100644 --- a/gems/prism-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile +++ b/gems/prism-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.1 -gem 'benchmark', '~> 0.5', '>= 0.5.0' # Removed from Std Lib in Ruby 4.0 +gem "benchmark", "~> 0.5", ">= 0.5.0" # Removed from Std Lib in Ruby 4.0 diff --git a/gems/prism-merge/gemfiles/modular/benchmark/vHEAD.gemfile b/gems/prism-merge/gemfiles/modular/benchmark/vHEAD.gemfile index af214aafa..e1eb20c5e 100644 --- a/gems/prism-merge/gemfiles/modular/benchmark/vHEAD.gemfile +++ b/gems/prism-merge/gemfiles/modular/benchmark/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.1 -gem 'benchmark', github: 'ruby/benchmark', branch: 'master' +gem "benchmark", github: "ruby/benchmark", branch: "master" diff --git a/gems/prism-merge/gemfiles/modular/cgi/r4/v0.5.gemfile b/gems/prism-merge/gemfiles/modular/cgi/r4/v0.5.gemfile index 17ad97260..19ed967c3 100644 --- a/gems/prism-merge/gemfiles/modular/cgi/r4/v0.5.gemfile +++ b/gems/prism-merge/gemfiles/modular/cgi/r4/v0.5.gemfile @@ -1 +1 @@ -gem 'cgi', '~> 0.5' +gem "cgi", "~> 0.5" diff --git a/gems/prism-merge/gemfiles/modular/cgi/vHEAD.gemfile b/gems/prism-merge/gemfiles/modular/cgi/vHEAD.gemfile index 650fbf033..ef8b816ce 100644 --- a/gems/prism-merge/gemfiles/modular/cgi/vHEAD.gemfile +++ b/gems/prism-merge/gemfiles/modular/cgi/vHEAD.gemfile @@ -1 +1 @@ -gem 'cgi', '>= 0.5' +gem "cgi", ">= 0.5" diff --git a/gems/prism-merge/gemfiles/modular/coverage.gemfile b/gems/prism-merge/gemfiles/modular/coverage.gemfile index b93014b6b..52d737872 100644 --- a/gems/prism-merge/gemfiles/modular/coverage.gemfile +++ b/gems/prism-merge/gemfiles/modular/coverage.gemfile @@ -4,11 +4,11 @@ # Set KETTLE_DEV_DEV=true for local development with path-based dependencies. # When false (default / CI), remote released gems are used. -if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? +if ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false").zero? # Coverage (remote/released) platform :mri do - gem 'kettle-soup-cover', '~> 3.0', '>= 3.0.3', require: false + gem "kettle-soup-cover", "~> 3.0", ">= 3.0.3", require: false end else - eval_gemfile 'coverage_local.gemfile' + eval_gemfile "coverage_local.gemfile" end diff --git a/gems/prism-merge/gemfiles/modular/coverage_local.gemfile b/gems/prism-merge/gemfiles/modular/coverage_local.gemfile index ab0e08fd4..3e06a44ef 100644 --- a/gems/prism-merge/gemfiles/modular/coverage_local.gemfile +++ b/gems/prism-merge/gemfiles/modular/coverage_local.gemfile @@ -11,19 +11,21 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] -nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) +nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] +nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == "nomono" } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + if nomono_locked + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] + end end -Kernel.send(:gem, 'nomono', *nomono_activation_requirements) -require 'nomono/bundler' +Kernel.send(:gem, "nomono", *nomono_activation_requirements) +require "nomono/bundler" local_gems = %w[kettle-dev kettle-test kettle-soup-cover kettle-drift] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) @@ -33,21 +35,21 @@ local_gems_to_eval = local_gems - %w[prism-merge] - declared_gems platform :mri do eval_nomono_gems( gems: local_gems_to_eval, - prefix: 'KETTLE_DEV', - path_env: 'KETTLE_DEV_DEV', - vendored_gems_env: 'VENDORED_GEMS', - vendor_gem_dir_env: 'VENDOR_GEM_DIR', - debug_env: 'KETTLE_DEV_DEBUG' + prefix: "KETTLE_DEV", + path_env: "KETTLE_DEV_DEV", + vendored_gems_env: "VENDORED_GEMS", + vendor_gem_dir_env: "VENDOR_GEM_DIR", + debug_env: "KETTLE_DEV_DEBUG" ) - if ENV.fetch('GALTZO_FLOSS_DEV', 'false').casecmp('false') != 0 + if ENV.fetch("GALTZO_FLOSS_DEV", "false").casecmp("false") != 0 eval_nomono_gems( gems: %w[turbo_tests2], - prefix: 'GALTZO_FLOSS', - path_env: 'GALTZO_FLOSS_DEV', - vendored_gems_env: 'GALTZO_FLOSS_VENDORED_GEMS', - vendor_gem_dir_env: 'GALTZO_FLOSS_VENDOR_GEM_DIR', - debug_env: 'GALTZO_FLOSS_DEBUG' + prefix: "GALTZO_FLOSS", + path_env: "GALTZO_FLOSS_DEV", + vendored_gems_env: "GALTZO_FLOSS_VENDORED_GEMS", + vendor_gem_dir_env: "GALTZO_FLOSS_VENDOR_GEM_DIR", + debug_env: "GALTZO_FLOSS_DEBUG" ) end end diff --git a/gems/prism-merge/gemfiles/modular/debug.gemfile b/gems/prism-merge/gemfiles/modular/debug.gemfile index eed8d4d1e..4e15b1a3a 100644 --- a/gems/prism-merge/gemfiles/modular/debug.gemfile +++ b/gems/prism-merge/gemfiles/modular/debug.gemfile @@ -13,10 +13,10 @@ platform :mri do # Debugging - Ensure ENV["DEBUG"] == "true" to use debuggers within spec suite # Use binding.break, binding.b, or debugger in code - gem 'debug', '>= 1.1' # ruby >= 2.7 + gem "debug", ">= 1.1" # ruby >= 2.7 # Dev Console - Binding.pry - Irb replacement # gem "pry", "~> 0.14" # ruby >= 2.0 end -gem 'gem_bench', '~> 2.0', '>= 2.0.5' +gem "gem_bench", "~> 2.0", ">= 2.0.5" diff --git a/gems/prism-merge/gemfiles/modular/documentation.gemfile b/gems/prism-merge/gemfiles/modular/documentation.gemfile index 9d4535f12..d8215416e 100644 --- a/gems/prism-merge/gemfiles/modular/documentation.gemfile +++ b/gems/prism-merge/gemfiles/modular/documentation.gemfile @@ -7,20 +7,20 @@ # # Documentation -gem 'kramdown', '~> 2.5', '>= 2.5.2', require: false # Ruby >= 2.5 -gem 'kramdown-parser-gfm', '~> 1.1', require: false # Ruby >= 2.3 -gem 'yaml-converter', '~> 0.2', '>= 0.2.3', require: false # Ruby >= 3.2 -gem 'yard', '~> 0.9', '>= 0.9.45', require: false -gem 'yard-junk', '~> 0.1', '>= 0.1.0', require: false # Ruby >= 3.1 -gem 'yard-relative_markdown_links', '~> 0.6', require: false +gem "kramdown", "~> 2.5", ">= 2.5.2", require: false # Ruby >= 2.5 +gem "kramdown-parser-gfm", "~> 1.1", require: false # Ruby >= 2.3 +gem "yaml-converter", "~> 0.2", ">= 0.2.3", require: false # Ruby >= 3.2 +gem "yard", "~> 0.9", ">= 0.9.45", require: false +gem "yard-junk", "~> 0.1", ">= 0.1.0", require: false # Ruby >= 3.1 +gem "yard-relative_markdown_links", "~> 0.6", require: false -if ENV.fetch('GALTZO_FLOSS_DEV', 'false').casecmp('false').zero? - gem 'yard-fence', '~> 0.9', '>= 0.9.6', require: false # Ruby >= 3.2 - gem 'yard-timekeeper', '~> 0.2', '>= 0.2.4', require: false - gem 'yard-yaml', '~> 0.2', '>= 0.2.3', require: false +if ENV.fetch("GALTZO_FLOSS_DEV", "false").casecmp("false").zero? + gem "yard-fence", "~> 0.9", ">= 0.9.6", require: false # Ruby >= 3.2 + gem "yard-timekeeper", "~> 0.2", ">= 0.2.4", require: false + gem "yard-yaml", "~> 0.2", ">= 0.2.3", require: false else - eval_gemfile 'documentation_local.gemfile' + eval_gemfile "documentation_local.gemfile" end # Std Lib extractions -gem 'rdoc', '~> 6.11', require: false unless ENV.fetch('KJ_FRAMEWORK_MATRIX_GEM', '') == 'rdoc' +gem "rdoc", "~> 6.11", require: false unless ENV.fetch("KJ_FRAMEWORK_MATRIX_GEM", "") == "rdoc" diff --git a/gems/prism-merge/gemfiles/modular/documentation_local.gemfile b/gems/prism-merge/gemfiles/modular/documentation_local.gemfile index b596a588d..b30a6b15d 100644 --- a/gems/prism-merge/gemfiles/modular/documentation_local.gemfile +++ b/gems/prism-merge/gemfiles/modular/documentation_local.gemfile @@ -11,19 +11,21 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] -nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) +nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] +nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == "nomono" } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + if nomono_locked + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] + end end -Kernel.send(:gem, 'nomono', *nomono_activation_requirements) -require 'nomono/bundler' +Kernel.send(:gem, "nomono", *nomono_activation_requirements) +require "nomono/bundler" local_gems = %w[yard-fence yard-timekeeper yard-yaml] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) @@ -32,9 +34,9 @@ local_gems_to_eval = local_gems - %w[prism-merge] - declared_gems # export GALTZO_FLOSS_DEV=/path/to/galtzo-floss eval_nomono_gems( gems: local_gems_to_eval, - prefix: 'GALTZO_FLOSS', - path_env: 'GALTZO_FLOSS_DEV', - vendored_gems_env: 'GALTZO_FLOSS_VENDORED_GEMS', - vendor_gem_dir_env: 'GALTZO_FLOSS_VENDOR_GEM_DIR', - debug_env: 'GALTZO_FLOSS_DEBUG' + prefix: "GALTZO_FLOSS", + path_env: "GALTZO_FLOSS_DEV", + vendored_gems_env: "GALTZO_FLOSS_VENDORED_GEMS", + vendor_gem_dir_env: "GALTZO_FLOSS_VENDOR_GEM_DIR", + debug_env: "GALTZO_FLOSS_DEBUG" ) diff --git a/gems/prism-merge/gemfiles/modular/erb/r2/v3.0.gemfile b/gems/prism-merge/gemfiles/modular/erb/r2/v3.0.gemfile index 7c83a239b..c03bd8d85 100644 --- a/gems/prism-merge/gemfiles/modular/erb/r2/v3.0.gemfile +++ b/gems/prism-merge/gemfiles/modular/erb/r2/v3.0.gemfile @@ -1 +1 @@ -gem 'erb', '~> 3.0' # ruby >= 2.7.0 +gem "erb", "~> 3.0" # ruby >= 2.7.0 diff --git a/gems/prism-merge/gemfiles/modular/erb/r3/v5.0.gemfile b/gems/prism-merge/gemfiles/modular/erb/r3/v5.0.gemfile index ec7ff451f..1bd029cc1 100644 --- a/gems/prism-merge/gemfiles/modular/erb/r3/v5.0.gemfile +++ b/gems/prism-merge/gemfiles/modular/erb/r3/v5.0.gemfile @@ -1 +1 @@ -gem 'erb', '~> 6.0', '>= 6.0.6' # ruby >= 3.2.0 +gem "erb", "~> 6.0", ">= 6.0.6" # ruby >= 3.2.0 diff --git a/gems/prism-merge/gemfiles/modular/erb/r4/v5.0.gemfile b/gems/prism-merge/gemfiles/modular/erb/r4/v5.0.gemfile index ec7ff451f..1bd029cc1 100644 --- a/gems/prism-merge/gemfiles/modular/erb/r4/v5.0.gemfile +++ b/gems/prism-merge/gemfiles/modular/erb/r4/v5.0.gemfile @@ -1 +1 @@ -gem 'erb', '~> 6.0', '>= 6.0.6' # ruby >= 3.2.0 +gem "erb", "~> 6.0", ">= 6.0.6" # ruby >= 3.2.0 diff --git a/gems/prism-merge/gemfiles/modular/erb/vHEAD.gemfile b/gems/prism-merge/gemfiles/modular/erb/vHEAD.gemfile index ea0101185..48fee4218 100644 --- a/gems/prism-merge/gemfiles/modular/erb/vHEAD.gemfile +++ b/gems/prism-merge/gemfiles/modular/erb/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 3.2 -gem 'erb', github: 'ruby/erb', branch: 'master' +gem "erb", github: "ruby/erb", branch: "master" diff --git a/gems/prism-merge/gemfiles/modular/json/truffleruby_22_3.gemfile b/gems/prism-merge/gemfiles/modular/json/truffleruby_22_3.gemfile index 9b2f8d96a..b0e69ab11 100644 --- a/gems/prism-merge/gemfiles/modular/json/truffleruby_22_3.gemfile +++ b/gems/prism-merge/gemfiles/modular/json/truffleruby_22_3.gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -if RUBY_ENGINE == 'truffleruby' && RUBY_ENGINE_VERSION.start_with?('22.3') +if RUBY_ENGINE == "truffleruby" && RUBY_ENGINE_VERSION.start_with?("22.3") # TruffleRuby 22.3 ships the json default gem from its emulated MRI Ruby. - gem 'json', '= 2.5.1' + gem "json", "= 2.5.1" end diff --git a/gems/prism-merge/gemfiles/modular/json/truffleruby_23_0.gemfile b/gems/prism-merge/gemfiles/modular/json/truffleruby_23_0.gemfile index d787a5ef4..7b2660a2b 100644 --- a/gems/prism-merge/gemfiles/modular/json/truffleruby_23_0.gemfile +++ b/gems/prism-merge/gemfiles/modular/json/truffleruby_23_0.gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -if RUBY_ENGINE == 'truffleruby' && RUBY_ENGINE_VERSION.start_with?('23.0') +if RUBY_ENGINE == "truffleruby" && RUBY_ENGINE_VERSION.start_with?("23.0") # TruffleRuby 23.0 ships the json default gem from its emulated MRI Ruby. - gem 'json', '= 2.6.1' + gem "json", "= 2.6.1" end diff --git a/gems/prism-merge/gemfiles/modular/json/truffleruby_23_1.gemfile b/gems/prism-merge/gemfiles/modular/json/truffleruby_23_1.gemfile index d78486b0e..dfa21f2e4 100644 --- a/gems/prism-merge/gemfiles/modular/json/truffleruby_23_1.gemfile +++ b/gems/prism-merge/gemfiles/modular/json/truffleruby_23_1.gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -if RUBY_ENGINE == 'truffleruby' && RUBY_ENGINE_VERSION.start_with?('23.1') +if RUBY_ENGINE == "truffleruby" && RUBY_ENGINE_VERSION.start_with?("23.1") # TruffleRuby 23.1 ships the json default gem from its emulated MRI Ruby. - gem 'json', '= 2.6.3' + gem "json", "= 2.6.3" end diff --git a/gems/prism-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile b/gems/prism-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile index e27f1bbae..42e9d9bd4 100644 --- a/gems/prism-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile +++ b/gems/prism-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 -gem 'mutex_m', '~> 0.2' +gem "mutex_m", "~> 0.2" diff --git a/gems/prism-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile b/gems/prism-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile index e27f1bbae..42e9d9bd4 100644 --- a/gems/prism-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile +++ b/gems/prism-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 -gem 'mutex_m', '~> 0.2' +gem "mutex_m", "~> 0.2" diff --git a/gems/prism-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile b/gems/prism-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile index e27f1bbae..42e9d9bd4 100644 --- a/gems/prism-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile +++ b/gems/prism-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 -gem 'mutex_m', '~> 0.2' +gem "mutex_m", "~> 0.2" diff --git a/gems/prism-merge/gemfiles/modular/mutex_m/vHEAD.gemfile b/gems/prism-merge/gemfiles/modular/mutex_m/vHEAD.gemfile index 9dac2f6cb..8af3b6fca 100644 --- a/gems/prism-merge/gemfiles/modular/mutex_m/vHEAD.gemfile +++ b/gems/prism-merge/gemfiles/modular/mutex_m/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 (dependency of omniauth) -gem 'mutex_m', github: 'ruby/mutex_m', branch: 'master' +gem "mutex_m", github: "ruby/mutex_m", branch: "master" diff --git a/gems/prism-merge/gemfiles/modular/optional.gemfile b/gems/prism-merge/gemfiles/modular/optional.gemfile index 9ea429538..80bc45196 100644 --- a/gems/prism-merge/gemfiles/modular/optional.gemfile +++ b/gems/prism-merge/gemfiles/modular/optional.gemfile @@ -9,8 +9,8 @@ # Optional dependencies are not depended on directly, but may be used if present. # Required for curated binstubs generated by kettle-jem install -gem 'rbs', '>= 3.0', require: false # ruby >= 3.1 +gem "rbs", ">= 3.0", require: false # ruby >= 3.1 # Required for kettle-pre-release # URL parsing with Unicode support (falls back to URI if not available) -gem 'addressable', '>= 2.8', '< 3' # ruby >= 2.2 +gem "addressable", ">= 2.8", "< 3" # ruby >= 2.2 diff --git a/gems/prism-merge/gemfiles/modular/rspec.gemfile b/gems/prism-merge/gemfiles/modular/rspec.gemfile index 2af210a41..72fdf8b7f 100644 --- a/gems/prism-merge/gemfiles/modular/rspec.gemfile +++ b/gems/prism-merge/gemfiles/modular/rspec.gemfile @@ -1,4 +1,4 @@ -gem 'rspec_junit_formatter', - github: 'pboling/rspec_junit_formatter', - branch: 'main', - ref: '9e6bcaaedd49477b62878ed568dc4ada5cc7cb5e' +gem "rspec_junit_formatter", + github: "pboling/rspec_junit_formatter", + branch: "main", + ref: "9e6bcaaedd49477b62878ed568dc4ada5cc7cb5e" diff --git a/gems/prism-merge/gemfiles/modular/runtime_heads.gemfile b/gems/prism-merge/gemfiles/modular/runtime_heads.gemfile index ebf17c529..02f134c7f 100644 --- a/gems/prism-merge/gemfiles/modular/runtime_heads.gemfile +++ b/gems/prism-merge/gemfiles/modular/runtime_heads.gemfile @@ -8,4 +8,4 @@ # Test against HEAD of runtime dependencies so we can proactively file bugs -eval_gemfile('x_std_libs/vHEAD.gemfile') +eval_gemfile("x_std_libs/vHEAD.gemfile") diff --git a/gems/prism-merge/gemfiles/modular/stringio/r2/v3.0.gemfile b/gems/prism-merge/gemfiles/modular/stringio/r2/v3.0.gemfile index 3616f4e3a..e85bb18ee 100644 --- a/gems/prism-merge/gemfiles/modular/stringio/r2/v3.0.gemfile +++ b/gems/prism-merge/gemfiles/modular/stringio/r2/v3.0.gemfile @@ -2,4 +2,4 @@ # NOT SEMVER # Version 3.0.7 dropped support for Ruby <= 2.7 # Version 3.0.0 dropped support for Ruby <= 2.4 -gem 'stringio', '>= 3.0' +gem "stringio", ">= 3.0" diff --git a/gems/prism-merge/gemfiles/modular/stringio/r3/v3.0.gemfile b/gems/prism-merge/gemfiles/modular/stringio/r3/v3.0.gemfile index 3616f4e3a..e85bb18ee 100644 --- a/gems/prism-merge/gemfiles/modular/stringio/r3/v3.0.gemfile +++ b/gems/prism-merge/gemfiles/modular/stringio/r3/v3.0.gemfile @@ -2,4 +2,4 @@ # NOT SEMVER # Version 3.0.7 dropped support for Ruby <= 2.7 # Version 3.0.0 dropped support for Ruby <= 2.4 -gem 'stringio', '>= 3.0' +gem "stringio", ">= 3.0" diff --git a/gems/prism-merge/gemfiles/modular/stringio/r4/v3.0.gemfile b/gems/prism-merge/gemfiles/modular/stringio/r4/v3.0.gemfile index 3616f4e3a..e85bb18ee 100644 --- a/gems/prism-merge/gemfiles/modular/stringio/r4/v3.0.gemfile +++ b/gems/prism-merge/gemfiles/modular/stringio/r4/v3.0.gemfile @@ -2,4 +2,4 @@ # NOT SEMVER # Version 3.0.7 dropped support for Ruby <= 2.7 # Version 3.0.0 dropped support for Ruby <= 2.4 -gem 'stringio', '>= 3.0' +gem "stringio", ">= 3.0" diff --git a/gems/prism-merge/gemfiles/modular/stringio/vHEAD.gemfile b/gems/prism-merge/gemfiles/modular/stringio/vHEAD.gemfile index 78f5f5d8a..5f2a74126 100644 --- a/gems/prism-merge/gemfiles/modular/stringio/vHEAD.gemfile +++ b/gems/prism-merge/gemfiles/modular/stringio/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 (dependency of omniauth) -gem 'stringio', github: 'ruby/stringio', branch: 'master' +gem "stringio", github: "ruby/stringio", branch: "master" diff --git a/gems/prism-merge/gemfiles/modular/style.gemfile b/gems/prism-merge/gemfiles/modular/style.gemfile index 4dbcc02c0..35de4dcd6 100644 --- a/gems/prism-merge/gemfiles/modular/style.gemfile +++ b/gems/prism-merge/gemfiles/modular/style.gemfile @@ -9,23 +9,23 @@ # Style tasks run on the latest Ruby; RuboCop-LTS selects the compatibility # rules for the configured Ruby floor independently from task dependency floors. -gem 'reek', '~> 6.5', '>= 6.5.0' +gem "reek", "~> 6.5", ">= 6.5.0" platform :mri do - gem 'appraisal2-rubocop', '~> 1.0', '>= 1.0.0', require: false - gem 'rubocop-gradual', '~> 0.4', '>= 0.4.0' - gem 'rubocop-minitest', '~> 0.40', '>= 0.40.0' - gem 'rubocop-on-rbs', '~> 2.0', '>= 2.0.0' # ruby >= 3.2.0 + gem "appraisal2-rubocop", "~> 1.0", ">= 1.0.0", require: false + gem "rubocop-gradual", "~> 0.4", ">= 0.4.0" + gem "rubocop-minitest", "~> 0.40", ">= 0.40.0" + gem "rubocop-on-rbs", "~> 2.0", ">= 2.0.0" # ruby >= 3.2.0 # gem "rubocop", "~> 1.73", ">= 1.73.2" # constrained by standard - gem 'rubocop-packaging', '~> 0.6', '>= 0.6.0' - gem 'standard', '~> 1.56', '>= 1.56.0' + gem "rubocop-packaging", "~> 0.6", ">= 0.6.0" + gem "standard", "~> 1.56", ">= 1.56.0" - if ENV.fetch('RUBOCOP_LTS_LOCAL', 'false').casecmp('false').zero? + if ENV.fetch("RUBOCOP_LTS_LOCAL", "false").casecmp("false").zero? declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) - gem 'rubocop-lts', '~> 24.2', '>= 24.2.1' unless declared_gems.include?('rubocop-lts') - gem 'rubocop-lts-rspec', '~> 1.0', '>= 1.0.5' unless declared_gems.include?('rubocop-lts-rspec') - gem 'rubocop-ruby3_2', '~> 3.0', '>= 3.0.6' unless declared_gems.include?('rubocop-ruby3_2') + gem "rubocop-lts", "~> 24.2", ">= 24.2.1" unless declared_gems.include?("rubocop-lts") + gem "rubocop-lts-rspec", "~> 1.0", ">= 1.0.5" unless declared_gems.include?("rubocop-lts-rspec") + gem "rubocop-ruby3_2", "~> 3.0", ">= 3.0.6" unless declared_gems.include?("rubocop-ruby3_2") else - eval_gemfile('style_local.gemfile') + eval_gemfile("style_local.gemfile") end end diff --git a/gems/prism-merge/gemfiles/modular/style_local.gemfile b/gems/prism-merge/gemfiles/modular/style_local.gemfile index e8e9d2ad4..c3716a6a6 100644 --- a/gems/prism-merge/gemfiles/modular/style_local.gemfile +++ b/gems/prism-merge/gemfiles/modular/style_local.gemfile @@ -14,19 +14,21 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] -nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) +nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] +nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == "nomono" } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + if nomono_locked + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] + end end -Kernel.send(:gem, 'nomono', *nomono_activation_requirements) -require 'nomono/bundler' +Kernel.send(:gem, "nomono", *nomono_activation_requirements) +require "nomono/bundler" local_gems = %w[rubocop-lts rubocop-lts-rspec rubocop-ruby3_2 standard-rubocop-lts] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) @@ -36,11 +38,11 @@ local_gems_to_eval = local_gems - %w[prism-merge] - declared_gems platform :mri do eval_nomono_gems( gems: local_gems_to_eval, - prefix: 'RUBOCOP_LTS', - path_env: 'RUBOCOP_LTS_LOCAL', - vendored_gems_env: 'VENDORED_GEMS', - vendor_gem_dir_env: 'VENDOR_GEM_DIR', - debug_env: 'RUBOCOP_LTS_DEBUG', - root: %w[src rubocop-lts] + prefix: "RUBOCOP_LTS", + path_env: "RUBOCOP_LTS_LOCAL", + vendored_gems_env: "VENDORED_GEMS", + vendor_gem_dir_env: "VENDOR_GEM_DIR", + debug_env: "RUBOCOP_LTS_DEBUG", + root: ["src", "rubocop-lts"] ) end diff --git a/gems/prism-merge/gemfiles/modular/templating.gemfile b/gems/prism-merge/gemfiles/modular/templating.gemfile index a672de184..47138ffbb 100644 --- a/gems/prism-merge/gemfiles/modular/templating.gemfile +++ b/gems/prism-merge/gemfiles/modular/templating.gemfile @@ -1,18 +1,18 @@ # frozen_string_literal: true -structuredmerge_remote = ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false').zero? -kettle_remote = ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? +structuredmerge_remote = ENV.fetch("STRUCTUREDMERGE_DEV", "false").casecmp("false").zero? +kettle_remote = ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false").zero? if structuredmerge_remote # Parser dependencies for released installs. - gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' + gem "tree_sitter_language_pack", "~> 1.13", ">= 1.13.3" # Merge recipes for released installs. - gem 'kettle-jem', '>= 7.0' + gem "kettle-jem", ">= 7.0" end if kettle_remote # Template/plugin checks for released installs. - gem 'kettle-drift', '~> 1.0', '>= 1.0.6', require: false + gem "kettle-drift", "~> 1.0", ">= 1.0.6", require: false end # Set STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local development with path-based dependencies. @@ -21,4 +21,4 @@ end # # Set KETTLE_DEV_DEV=/path/to/my for local development with Kettle plugin gems. # When false (default / CI), released Kettle plugin gems are used. -eval_gemfile 'templating_local.gemfile' unless structuredmerge_remote && kettle_remote +eval_gemfile "templating_local.gemfile" unless structuredmerge_remote && kettle_remote diff --git a/gems/prism-merge/gemfiles/modular/templating_local.gemfile b/gems/prism-merge/gemfiles/modular/templating_local.gemfile index e6d5d15bc..b36adff95 100644 --- a/gems/prism-merge/gemfiles/modular/templating_local.gemfile +++ b/gems/prism-merge/gemfiles/modular/templating_local.gemfile @@ -12,19 +12,21 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] -nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) +nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] +nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == "nomono" } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + if nomono_locked + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] + end end -Kernel.send(:gem, 'nomono', *nomono_activation_requirements) -require 'nomono/bundler' +Kernel.send(:gem, "nomono", *nomono_activation_requirements) +require "nomono/bundler" structuredmerge_local_gems = %w[ tree_haver @@ -67,25 +69,25 @@ structuredmerge_local_gems_to_eval = structuredmerge_local_gems - %w[prism-merge kettle_dev_local_gems_to_eval = kettle_dev_local_gems - %w[prism-merge] - declared_gems platform :mri do - if ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false') != 0 + if ENV.fetch("STRUCTUREDMERGE_DEV", "false").casecmp("false") != 0 eval_nomono_gems( gems: structuredmerge_local_gems_to_eval, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - vendored_gems_env: 'VENDORED_GEMS', - vendor_gem_dir_env: 'VENDOR_GEM_DIR', - debug_env: 'STRUCTUREDMERGE_DEBUG' + prefix: "STRUCTUREDMERGE", + path_env: "STRUCTUREDMERGE_DEV", + vendored_gems_env: "VENDORED_GEMS", + vendor_gem_dir_env: "VENDOR_GEM_DIR", + debug_env: "STRUCTUREDMERGE_DEBUG" ) end - if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false') != 0 + if ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false") != 0 eval_nomono_gems( gems: kettle_dev_local_gems_to_eval, - prefix: 'KETTLE_DEV', - path_env: 'KETTLE_DEV_DEV', - vendored_gems_env: 'VENDORED_GEMS', - vendor_gem_dir_env: 'VENDOR_GEM_DIR', - debug_env: 'KETTLE_DEV_DEBUG' + prefix: "KETTLE_DEV", + path_env: "KETTLE_DEV_DEV", + vendored_gems_env: "VENDORED_GEMS", + vendor_gem_dir_env: "VENDOR_GEM_DIR", + debug_env: "KETTLE_DEV_DEBUG" ) end end diff --git a/gems/prism-merge/gemfiles/modular/webrick/r4/v1.9.gemfile b/gems/prism-merge/gemfiles/modular/webrick/r4/v1.9.gemfile index b1329ba84..eaab4a473 100644 --- a/gems/prism-merge/gemfiles/modular/webrick/r4/v1.9.gemfile +++ b/gems/prism-merge/gemfiles/modular/webrick/r4/v1.9.gemfile @@ -1 +1 @@ -gem 'webrick', '~> 1.9' +gem "webrick", "~> 1.9" diff --git a/gems/prism-merge/gemfiles/modular/webrick/vHEAD.gemfile b/gems/prism-merge/gemfiles/modular/webrick/vHEAD.gemfile index c7e6f81a1..8a789b634 100644 --- a/gems/prism-merge/gemfiles/modular/webrick/vHEAD.gemfile +++ b/gems/prism-merge/gemfiles/modular/webrick/vHEAD.gemfile @@ -1 +1 @@ -gem 'webrick', '>= 1.9' +gem "webrick", ">= 1.9" diff --git a/gems/prism-merge/gemfiles/modular/x_std_libs.gemfile b/gems/prism-merge/gemfiles/modular/x_std_libs.gemfile index b1f43c097..77aad43f2 100644 --- a/gems/prism-merge/gemfiles/modular/x_std_libs.gemfile +++ b/gems/prism-merge/gemfiles/modular/x_std_libs.gemfile @@ -1,12 +1,12 @@ ### Std Lib Extracted Gems ruby_version = Gem::Version.new(RUBY_VERSION) -if ruby_version >= Gem::Version.new('4.0') - eval_gemfile 'x_std_libs/r4/libs.gemfile' -elsif ruby_version >= Gem::Version.new('3.2') - eval_gemfile 'x_std_libs/r3/libs.gemfile' -elsif ruby_version >= Gem::Version.new('3.1') - eval_gemfile 'x_std_libs/r3.1/libs.gemfile' +if ruby_version >= Gem::Version.new("4.0") + eval_gemfile "x_std_libs/r4/libs.gemfile" +elsif ruby_version >= Gem::Version.new("3.2") + eval_gemfile "x_std_libs/r3/libs.gemfile" +elsif ruby_version >= Gem::Version.new("3.1") + eval_gemfile "x_std_libs/r3.1/libs.gemfile" else - eval_gemfile 'x_std_libs/r2/libs.gemfile' + eval_gemfile "x_std_libs/r2/libs.gemfile" end diff --git a/gems/prism-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile b/gems/prism-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile index 16a5e3d70..441c4f03a 100644 --- a/gems/prism-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile +++ b/gems/prism-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile @@ -1,3 +1,3 @@ -eval_gemfile '../../erb/r2/v3.0.gemfile' -eval_gemfile '../../mutex_m/r2/v0.3.gemfile' -eval_gemfile '../../stringio/r2/v3.0.gemfile' +eval_gemfile "../../erb/r2/v3.0.gemfile" +eval_gemfile "../../mutex_m/r2/v0.3.gemfile" +eval_gemfile "../../stringio/r2/v3.0.gemfile" diff --git a/gems/prism-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile b/gems/prism-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile index 220ff95c1..c293a3ddd 100644 --- a/gems/prism-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile +++ b/gems/prism-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile @@ -1,3 +1,3 @@ -eval_gemfile '../../erb/r3/v5.0.gemfile' -eval_gemfile '../../mutex_m/r3/v0.3.gemfile' -eval_gemfile '../../stringio/r3/v3.0.gemfile' +eval_gemfile "../../erb/r3/v5.0.gemfile" +eval_gemfile "../../mutex_m/r3/v0.3.gemfile" +eval_gemfile "../../stringio/r3/v3.0.gemfile" diff --git a/gems/prism-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile b/gems/prism-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile index e2f6501eb..eb5574247 100644 --- a/gems/prism-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile +++ b/gems/prism-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile @@ -1,6 +1,6 @@ -eval_gemfile '../../erb/r4/v5.0.gemfile' -eval_gemfile '../../mutex_m/r4/v0.3.gemfile' -eval_gemfile '../../stringio/r4/v3.0.gemfile' -eval_gemfile '../../benchmark/r4/v0.5.gemfile' -eval_gemfile '../../cgi/r4/v0.5.gemfile' -eval_gemfile '../../webrick/r4/v1.9.gemfile' +eval_gemfile "../../erb/r4/v5.0.gemfile" +eval_gemfile "../../mutex_m/r4/v0.3.gemfile" +eval_gemfile "../../stringio/r4/v3.0.gemfile" +eval_gemfile "../../benchmark/r4/v0.5.gemfile" +eval_gemfile "../../cgi/r4/v0.5.gemfile" +eval_gemfile "../../webrick/r4/v1.9.gemfile" diff --git a/gems/prism-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile b/gems/prism-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile index ab75cccf1..d4d5b16c9 100644 --- a/gems/prism-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile +++ b/gems/prism-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile @@ -1,6 +1,6 @@ -eval_gemfile '../erb/vHEAD.gemfile' -eval_gemfile '../mutex_m/vHEAD.gemfile' -eval_gemfile '../stringio/vHEAD.gemfile' -eval_gemfile '../benchmark/vHEAD.gemfile' -eval_gemfile '../cgi/vHEAD.gemfile' -eval_gemfile '../webrick/vHEAD.gemfile' +eval_gemfile "../erb/vHEAD.gemfile" +eval_gemfile "../mutex_m/vHEAD.gemfile" +eval_gemfile "../stringio/vHEAD.gemfile" +eval_gemfile "../benchmark/vHEAD.gemfile" +eval_gemfile "../cgi/vHEAD.gemfile" +eval_gemfile "../webrick/vHEAD.gemfile" diff --git a/gems/prism-merge/lib/prism/merge/version.rb b/gems/prism-merge/lib/prism/merge/version.rb index 29398c390..c5d5bca42 100644 --- a/gems/prism-merge/lib/prism/merge/version.rb +++ b/gems/prism-merge/lib/prism/merge/version.rb @@ -3,7 +3,7 @@ module Prism module Merge module Version - VERSION = '7.1.0' + VERSION = "7.1.0" end VERSION = Version::VERSION # Traditional Constant Location end diff --git a/gems/prism-merge/spec/spec_helper.rb b/gems/prism-merge/spec/spec_helper.rb index a352cc4b0..777af4683 100644 --- a/gems/prism-merge/spec/spec_helper.rb +++ b/gems/prism-merge/spec/spec_helper.rb @@ -7,16 +7,16 @@ # NOTE: Gemfiles for non-coverage appraisals may not have kettle-soup-cover. # The rescue LoadError handles that scenario. begin - require 'kettle-soup-cover' + require "kettle-soup-cover" if Kettle::Soup::Cover::DO_COV # Requiring simplecov loads the project-local `.simplecov`. - require 'simplecov' - require 'kettle/soup/cover/config' + require "simplecov" + require "kettle/soup/cover/config" SimpleCov.start end -rescue LoadError => e +rescue LoadError => error # check the error message and re-raise when unexpected - raise e unless e.message.include?('kettle') + raise error unless error.message.include?("kettle") end # External RSpec & related config diff --git a/gems/ruby-merge/Gemfile.lock b/gems/ruby-merge/Gemfile.lock index f5a2b0301..05d635ba1 100644 --- a/gems/ruby-merge/Gemfile.lock +++ b/gems/ruby-merge/Gemfile.lock @@ -6,24 +6,6 @@ PATH tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) -PATH - remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/ast-merge - specs: - ast-merge (7.1.0) - benchmark - token-resolver (~> 2.0, >= 2.0.4) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/tree_haver - specs: - tree_haver (7.1.0) - citrus (~> 3.0) - parslet (~> 2.0) - tree_sitter_language_pack (>= 1.13.2, < 2.0) - version_gem (~> 1.1, >= 1.1.9) - GEM remote: https://gem.coop/ specs: @@ -39,6 +21,11 @@ GEM rubocop (>= 1.0) version_gem (~> 1.1, >= 1.1.14) ast (2.4.3) + ast-merge (7.1.0) + benchmark + token-resolver (~> 2.0, >= 2.0.4) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) backports (3.25.3) benchmark (0.5.0) bigdecimal (4.1.2) @@ -354,6 +341,11 @@ GEM token-resolver (2.0.5) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.14) + tree_haver (7.1.0) + citrus (~> 3.0) + parslet (~> 2.0) + tree_sitter_language_pack (>= 1.13.2, < 2.0) + version_gem (~> 1.1, >= 1.1.9) tree_sitter_language_pack (1.13.3-aarch64-linux) sorbet-runtime (~> 0.5) tree_sitter_language_pack (1.13.3-arm64-darwin) @@ -408,7 +400,6 @@ DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) appraisal2-rubocop (~> 1.0, >= 1.0.0) - ast-merge! benchmark (~> 0.5, >= 0.5.0) bundler-audit (~> 0.9.3) cgi (~> 0.5) @@ -441,7 +432,6 @@ DEPENDENCIES standard (~> 1.56, >= 1.56.0) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) - tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) webrick (~> 1.9) yaml-converter (~> 0.2, >= 0.2.3) From b24b92345d05d22759a9a14fecc7b0a6b371e62d Mon Sep 17 00:00:00 2001 From: "Peter H. Boling" Date: Tue, 21 Jul 2026 18:38:36 -0600 Subject: [PATCH 180/188] =?UTF-8?q?=F0=9F=8E=A8=20Template=20bootstrap=20b?= =?UTF-8?q?y=20kettle-jem=20v7.1.0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gems/ast-crispr-ruby-prism/Gemfile.lock | 26 +- gems/markdown-merge/.rubocop_gradual.lock | 640 ---------------- gems/markdown-merge/Gemfile | 70 +- gems/markdown-merge/Gemfile.lock | 344 +-------- gems/markdown-merge/Rakefile | 18 +- .../modular/benchmark/r4/v0.5.gemfile | 2 +- .../gemfiles/modular/benchmark/vHEAD.gemfile | 2 +- .../gemfiles/modular/cgi/r4/v0.5.gemfile | 2 +- .../gemfiles/modular/cgi/vHEAD.gemfile | 2 +- .../gemfiles/modular/coverage.gemfile | 6 +- .../gemfiles/modular/coverage_local.gemfile | 42 +- .../gemfiles/modular/debug.gemfile | 4 +- .../gemfiles/modular/documentation.gemfile | 24 +- .../modular/documentation_local.gemfile | 30 +- .../gemfiles/modular/erb/r2/v3.0.gemfile | 2 +- .../gemfiles/modular/erb/r3/v5.0.gemfile | 2 +- .../gemfiles/modular/erb/r4/v5.0.gemfile | 2 +- .../gemfiles/modular/erb/vHEAD.gemfile | 2 +- .../modular/json/truffleruby_22_3.gemfile | 4 +- .../modular/json/truffleruby_23_0.gemfile | 4 +- .../modular/json/truffleruby_23_1.gemfile | 4 +- .../gemfiles/modular/mutex_m/r2/v0.3.gemfile | 2 +- .../gemfiles/modular/mutex_m/r3/v0.3.gemfile | 2 +- .../gemfiles/modular/mutex_m/r4/v0.3.gemfile | 2 +- .../gemfiles/modular/mutex_m/vHEAD.gemfile | 2 +- .../gemfiles/modular/optional.gemfile | 4 +- .../gemfiles/modular/rspec.gemfile | 8 +- .../gemfiles/modular/runtime_heads.gemfile | 2 +- .../gemfiles/modular/stringio/r2/v3.0.gemfile | 2 +- .../gemfiles/modular/stringio/r3/v3.0.gemfile | 2 +- .../gemfiles/modular/stringio/r4/v3.0.gemfile | 2 +- .../gemfiles/modular/stringio/vHEAD.gemfile | 2 +- .../gemfiles/modular/style.gemfile | 24 +- .../gemfiles/modular/style_local.gemfile | 32 +- .../gemfiles/modular/templating.gemfile | 12 +- .../gemfiles/modular/templating_local.gemfile | 44 +- .../gemfiles/modular/webrick/r4/v1.9.gemfile | 2 +- .../gemfiles/modular/webrick/vHEAD.gemfile | 2 +- .../gemfiles/modular/x_std_libs.gemfile | 14 +- .../modular/x_std_libs/r2/libs.gemfile | 6 +- .../modular/x_std_libs/r3/libs.gemfile | 6 +- .../modular/x_std_libs/r4/libs.gemfile | 12 +- .../gemfiles/modular/x_std_libs/vHEAD.gemfile | 12 +- .../lib/markdown/merge/version.rb | 2 +- gems/markdown-merge/spec/spec_helper.rb | 10 +- gems/markly-merge/Gemfile.lock | 345 ++++++++- gems/prism-merge/.rubocop_gradual.lock | 707 ++++++++++++++++++ gems/prism-merge/Gemfile | 70 +- gems/prism-merge/Gemfile.lock | 2 +- gems/prism-merge/Rakefile | 18 +- gems/prism-merge/bin/yard | 2 +- .../modular/benchmark/r4/v0.5.gemfile | 2 +- .../gemfiles/modular/benchmark/vHEAD.gemfile | 2 +- .../gemfiles/modular/cgi/r4/v0.5.gemfile | 2 +- .../gemfiles/modular/cgi/vHEAD.gemfile | 2 +- .../gemfiles/modular/coverage.gemfile | 6 +- .../gemfiles/modular/coverage_local.gemfile | 42 +- .../gemfiles/modular/debug.gemfile | 4 +- .../gemfiles/modular/documentation.gemfile | 24 +- .../modular/documentation_local.gemfile | 30 +- .../gemfiles/modular/erb/r2/v3.0.gemfile | 2 +- .../gemfiles/modular/erb/r3/v5.0.gemfile | 2 +- .../gemfiles/modular/erb/r4/v5.0.gemfile | 2 +- .../gemfiles/modular/erb/vHEAD.gemfile | 2 +- .../modular/json/truffleruby_22_3.gemfile | 4 +- .../modular/json/truffleruby_23_0.gemfile | 4 +- .../modular/json/truffleruby_23_1.gemfile | 4 +- .../gemfiles/modular/mutex_m/r2/v0.3.gemfile | 2 +- .../gemfiles/modular/mutex_m/r3/v0.3.gemfile | 2 +- .../gemfiles/modular/mutex_m/r4/v0.3.gemfile | 2 +- .../gemfiles/modular/mutex_m/vHEAD.gemfile | 2 +- .../gemfiles/modular/optional.gemfile | 4 +- .../gemfiles/modular/rspec.gemfile | 8 +- .../gemfiles/modular/runtime_heads.gemfile | 2 +- .../gemfiles/modular/stringio/r2/v3.0.gemfile | 2 +- .../gemfiles/modular/stringio/r3/v3.0.gemfile | 2 +- .../gemfiles/modular/stringio/r4/v3.0.gemfile | 2 +- .../gemfiles/modular/stringio/vHEAD.gemfile | 2 +- .../gemfiles/modular/style.gemfile | 24 +- .../gemfiles/modular/style_local.gemfile | 32 +- .../gemfiles/modular/templating.gemfile | 12 +- .../gemfiles/modular/templating_local.gemfile | 44 +- .../gemfiles/modular/webrick/r4/v1.9.gemfile | 2 +- .../gemfiles/modular/webrick/vHEAD.gemfile | 2 +- .../gemfiles/modular/x_std_libs.gemfile | 14 +- .../modular/x_std_libs/r2/libs.gemfile | 6 +- .../modular/x_std_libs/r3/libs.gemfile | 6 +- .../modular/x_std_libs/r4/libs.gemfile | 12 +- .../gemfiles/modular/x_std_libs/vHEAD.gemfile | 12 +- gems/prism-merge/lib/prism/merge/version.rb | 2 +- gems/prism-merge/spec/spec_helper.rb | 10 +- 91 files changed, 1474 insertions(+), 1452 deletions(-) delete mode 100644 gems/markdown-merge/.rubocop_gradual.lock create mode 100644 gems/prism-merge/.rubocop_gradual.lock diff --git a/gems/ast-crispr-ruby-prism/Gemfile.lock b/gems/ast-crispr-ruby-prism/Gemfile.lock index 66b6ab440..2d4579978 100644 --- a/gems/ast-crispr-ruby-prism/Gemfile.lock +++ b/gems/ast-crispr-ruby-prism/Gemfile.lock @@ -6,22 +6,6 @@ PATH prism-merge (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) -PATH - remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr - specs: - ast-crispr (7.1.0) - ast-merge (= 7.1.0) - service_actor (~> 3.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/prism-merge - specs: - prism-merge (7.1.0) - prism (~> 1.6) - ruby-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - GEM remote: https://gem.coop/ specs: @@ -37,6 +21,10 @@ GEM rubocop (>= 1.0) version_gem (~> 1.1, >= 1.1.14) ast (2.4.3) + ast-crispr (7.1.0) + ast-merge (= 7.1.0) + service_actor (~> 3.9) + version_gem (~> 1.1, >= 1.1.9) ast-merge (7.1.0) benchmark token-resolver (~> 2.0, >= 2.0.4) @@ -158,6 +146,10 @@ GEM prettyprint prettyprint (0.2.0) prism (1.9.0) + prism-merge (7.1.0) + prism (~> 1.6) + ruby-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) psych (5.4.0) date stringio @@ -404,7 +396,6 @@ DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) appraisal2-rubocop (~> 1.0, >= 1.0.0) - ast-crispr! ast-crispr-ruby-prism! benchmark (~> 0.5, >= 0.5.0) bundler-audit (~> 0.9.3) @@ -421,7 +412,6 @@ DEPENDENCIES kramdown-parser-gfm (~> 1.1) mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) - prism-merge! rake (~> 13.0) rbs (>= 3.0) rdoc (~> 6.11) diff --git a/gems/markdown-merge/.rubocop_gradual.lock b/gems/markdown-merge/.rubocop_gradual.lock deleted file mode 100644 index 170b2e9af..000000000 --- a/gems/markdown-merge/.rubocop_gradual.lock +++ /dev/null @@ -1,640 +0,0 @@ -{ - ".simplecov:628617557": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "Rakefile:1018150957": [ - [18, 121, 17, "Layout/LineLength: Line is too long. [137/120]", 174264873], - [79, 3, 1023, "Metrics/BlockLength: Block has too many lines. [32/25]", 54868638], - [163, 121, 22, "Layout/LineLength: Line is too long. [142/120]", 1367093088], - [166, 121, 18, "Layout/LineLength: Line is too long. [138/120]", 3881946477] - ], - "gemfiles/modular/benchmark/r4/v0.5.gemfile:3644720371": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/benchmark/vHEAD.gemfile:2838879269": [ - [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/cgi/r4/v0.5.gemfile:367169322": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] - ], - "gemfiles/modular/cgi/vHEAD.gemfile:2729540777": [ - [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] - ], - "gemfiles/modular/erb/r2/v3.0.gemfile:1688285565": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] - ], - "gemfiles/modular/erb/r3/v5.0.gemfile:2394062339": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] - ], - "gemfiles/modular/erb/r4/v5.0.gemfile:2394062339": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] - ], - "gemfiles/modular/erb/vHEAD.gemfile:981929959": [ - [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/mutex_m/r2/v0.3.gemfile:4055275004": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/mutex_m/r3/v0.3.gemfile:4055275004": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/mutex_m/r4/v0.3.gemfile:4055275004": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/mutex_m/vHEAD.gemfile:556854763": [ - [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/rspec.gemfile:2263543889": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] - ], - "gemfiles/modular/stringio/r2/v3.0.gemfile:821604304": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/stringio/r3/v3.0.gemfile:821604304": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/stringio/r4/v3.0.gemfile:821604304": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/stringio/vHEAD.gemfile:1045839691": [ - [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/webrick/r4/v1.9.gemfile:3092661193": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] - ], - "gemfiles/modular/webrick/vHEAD.gemfile:3867684682": [ - [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] - ], - "gemfiles/modular/x_std_libs.gemfile:2324400122": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] - ], - "gemfiles/modular/x_std_libs/r2/libs.gemfile:36276542": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] - ], - "gemfiles/modular/x_std_libs/r3/libs.gemfile:4030570297": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] - ], - "gemfiles/modular/x_std_libs/r4/libs.gemfile:732451732": [ - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] - ], - "gemfiles/modular/x_std_libs/vHEAD.gemfile:2390363993": [ - [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], - [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] - ], - "lib/markdown-merge.rb:1671676898": [ - [1, 1, 0, "Naming/FileName: The name of this source file (`markdown-merge.rb`) should use snake_case.", 5381] - ], - "lib/markdown/merge.rb:4220853366": [ - [11, 3, 12, "Style/Documentation: Missing top-level documentation comment for `module Markdown::Merge`.", 2866359175], - [11, 3, 24210, "Metrics/ModuleLength: Module has too many lines. [579/100]", 4268495043], - [23, 5, 16, "Style/Documentation: Missing top-level documentation comment for `class Markdown::Merge::ParseError`.", 362242086], - [120, 5, 1014, "Metrics/MethodLength: Method has too many lines. [24/10]", 650805533], - [150, 5, 678, "Metrics/AbcSize: Assignment Branch Condition size for `match_markdown_owners` is too high. [<10, 23, 8> 26.32/17]", 2124140148], - [150, 5, 678, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `match_markdown_owners` is too high. [9/7]", 2124140148], - [150, 5, 678, "Metrics/PerceivedComplexity: Perceived complexity for `match_markdown_owners` is too high. [9/8]", 2124140148], - [163, 5, 1188, "Metrics/AbcSize: Assignment Branch Condition size for `merge_markdown` is too high. [<10, 25, 8> 28.09/17]", 3592129796], - [163, 5, 1188, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `merge_markdown` is too high. [9/7]", 3592129796], - [163, 5, 1188, "Metrics/MethodLength: Method has too many lines. [23/10]", 3592129796], - [163, 5, 1188, "Metrics/PerceivedComplexity: Perceived complexity for `merge_markdown` is too high. [9/8]", 3592129796], - [192, 5, 513, "Metrics/MethodLength: Method has too many lines. [13/10]", 912081106], - [210, 5, 747, "Metrics/MethodLength: Method has too many lines. [16/10]", 3172863125], - [241, 5, 1513, "Metrics/AbcSize: Assignment Branch Condition size for `apply_markdown_delegated_child_outputs` is too high. [<16, 37, 9> 41.3/17]", 3320736661], - [241, 5, 1513, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `apply_markdown_delegated_child_outputs` is too high. [10/7]", 3320736661], - [241, 5, 1513, "Metrics/MethodLength: Method has too many lines. [30/10]", 3320736661], - [241, 5, 1513, "Metrics/PerceivedComplexity: Perceived complexity for `apply_markdown_delegated_child_outputs` is too high. [10/8]", 3320736661], - [279, 5, 1058, "Metrics/MethodLength: Method has too many lines. [23/10]", 2000305522], - [306, 5, 1103, "Metrics/MethodLength: Method has too many lines. [23/10]", 2615729942], - [306, 52, 144, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 3050457682], - [334, 5, 817, "Metrics/MethodLength: Method has too many lines. [13/10]", 322304706], - [339, 121, 74, "Layout/LineLength: Line is too long. [194/120]", 2378183959], - [352, 5, 805, "Metrics/MethodLength: Method has too many lines. [13/10]", 935244360], - [357, 121, 66, "Layout/LineLength: Line is too long. [186/120]", 2974266470], - [370, 5, 722, "Metrics/MethodLength: Method has too many lines. [12/10]", 1758487766], - [375, 121, 17, "Layout/LineLength: Line is too long. [137/120]", 3013228499], - [387, 5, 730, "Metrics/MethodLength: Method has too many lines. [12/10]", 3297037131], - [392, 121, 17, "Layout/LineLength: Line is too long. [137/120]", 3013228499], - [418, 5, 1584, "Metrics/AbcSize: Assignment Branch Condition size for `collect_markdown_owners` is too high. [<21, 32, 13> 40.42/17]", 572024212], - [418, 5, 1584, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `collect_markdown_owners` is too high. [11/7]", 572024212], - [418, 5, 1584, "Metrics/MethodLength: Method has too many lines. [45/10]", 572024212], - [418, 5, 1584, "Metrics/PerceivedComplexity: Perceived complexity for `collect_markdown_owners` is too high. [11/8]", 572024212], - [472, 5, 1147, "Metrics/AbcSize: Assignment Branch Condition size for `markdown_owner_start_indices` is too high. [<21, 22, 11> 32.34/17]", 12516264], - [472, 5, 1147, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `markdown_owner_start_indices` is too high. [9/7]", 12516264], - [472, 5, 1147, "Metrics/MethodLength: Method has too many lines. [33/10]", 12516264], - [472, 5, 1147, "Metrics/PerceivedComplexity: Perceived complexity for `markdown_owner_start_indices` is too high. [9/8]", 12516264], - [513, 5, 602, "Metrics/AbcSize: Assignment Branch Condition size for `collect_markdown_sections` is too high. [<9, 20, 6> 22.74/17]", 1946206422], - [513, 5, 602, "Metrics/MethodLength: Method has too many lines. [14/10]", 1946206422], - [521, 7, 11, "Style/MultilineBlockChain: Avoid multi-line chains of blocks.", 848344986], - [532, 5, 1097, "Metrics/AbcSize: Assignment Branch Condition size for `markdown_fence_ranges` is too high. [<19, 21, 11> 30.38/17]", 2035260313], - [532, 5, 1097, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `markdown_fence_ranges` is too high. [8/7]", 2035260313], - [532, 5, 1097, "Metrics/MethodLength: Method has too many lines. [31/10]", 2035260313], - [548, 13, 227, "Metrics/BlockNesting: Avoid more than 3 levels of block nesting.", 1054958538], - [570, 5, 323, "Metrics/MethodLength: Method has too many lines. [14/10]", 2041170985], - [606, 5, 549, "Metrics/MethodLength: Method has too many lines. [12/10]", 2513777426] - ], - "lib/markdown/merge/backend_support.rb:1910609966": [ - [6, 5, 7153, "Metrics/ModuleLength: Module has too many lines. [161/100]", 606467501], - [18, 7, 524, "Metrics/MethodLength: Method has too many lines. [13/10]", 2550700841], - [34, 7, 913, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `configure_markdown_only_language_class!` is too high. [9/7]", 2175633707], - [34, 7, 913, "Metrics/MethodLength: Method has too many lines. [14/10]", 2175633707], - [34, 7, 913, "Metrics/PerceivedComplexity: Perceived complexity for `configure_markdown_only_language_class!` is too high. [10/8]", 2175633707], - [37, 11, 658, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `from_library` is too high. [9/7]", 353826273], - [37, 11, 658, "Metrics/PerceivedComplexity: Perceived complexity for `from_library` is too high. [10/8]", 353826273], - [44, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1312231069], - [54, 7, 1263, "Metrics/AbcSize: Assignment Branch Condition size for `configure_node_link_and_navigation!` is too high. [<3, 28, 3> 28.32/17]", 122101535], - [54, 7, 1263, "Metrics/MethodLength: Method has too many lines. [20/10]", 122101535], - [82, 7, 1148, "Metrics/MethodLength: Method has too many lines. [18/10]", 1393059075], - [108, 7, 976, "Metrics/MethodLength: Method has too many lines. [24/10]", 2694447150], - [142, 7, 618, "Metrics/MethodLength: Method has too many lines. [11/10]", 2027069469], - [160, 7, 888, "Metrics/MethodLength: Method has too many lines. [21/10]", 3721642530] - ], - "lib/markdown/merge/cleanse/block_spacing.rb:2917446564": [ - [32, 7, 7186, "Metrics/ClassLength: Class has too many lines. [138/100]", 1732896955], - [132, 9, 465, "Metrics/AbcSize: Assignment Branch Condition size for `fix` is too high. [<6, 16, 5> 17.8/17]", 341373851], - [150, 9, 1964, "Metrics/AbcSize: Assignment Branch Condition size for `analyze` is too high. [<9, 25, 16> 31.02/17]", 2558819309], - [150, 9, 1964, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `analyze` is too high. [14/7]", 2558819309], - [150, 9, 1964, "Metrics/MethodLength: Method has too many lines. [23/10]", 2558819309], - [150, 9, 1964, "Metrics/PerceivedComplexity: Perceived complexity for `analyze` is too high. [14/8]", 2558819309], - [160, 25, 7, "Style/NumericPredicate: Use `idx.positive?` instead of `idx > 0`.", 1825176542], - [192, 40, 20, "Style/NumericPredicate: Use `html_block_depth.positive?` instead of `html_block_depth > 0`.", 3208734130] - ], - "lib/markdown/merge/cleanse/code_fence_spacing.rb:1353147449": [ - [161, 9, 1524, "Metrics/AbcSize: Assignment Branch Condition size for `code_blocks` is too high. [<18, 20, 12> 29.46/17]", 2467942971], - [161, 9, 1524, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `code_blocks` is too high. [12/7]", 2467942971], - [161, 9, 1524, "Metrics/MethodLength: Method has too many lines. [35/10]", 2467942971], - [161, 9, 1524, "Metrics/PerceivedComplexity: Perceived complexity for `code_blocks` is too high. [12/8]", 2467942971], - [169, 11, 1293, "Metrics/BlockLength: Block has too many lines. [27/25]", 3238939023], - [249, 9, 884, "Metrics/AbcSize: Assignment Branch Condition size for `parse_fence_line` is too high. [<7, 15, 6> 17.61/17]", 1033947369], - [249, 9, 884, "Metrics/MethodLength: Method has too many lines. [19/10]", 1033947369] - ], - "lib/markdown/merge/cleanse/condensed_link_refs.rb:3659937794": [ - [85, 7, 12174, "Metrics/ClassLength: Class has too many lines. [115/100]", 3309007721], - [200, 9, 874, "Metrics/AbcSize: Assignment Branch Condition size for `definitions` is too high. [<6, 14, 10> 18.22/17]", 1976258109], - [200, 9, 874, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `definitions` is too high. [9/7]", 1976258109], - [200, 9, 874, "Metrics/MethodLength: Method has too many lines. [13/10]", 1976258109], - [200, 9, 874, "Metrics/PerceivedComplexity: Perceived complexity for `definitions` is too high. [9/8]", 1976258109], - [213, 43, 17, "Style/NumericPredicate: Use `first_bracket.positive?` instead of `first_bracket > 0`.", 1095960710], - [273, 13, 30, "Naming/PredicatePrefix: Rename `has_content_before_definition?` to `content_before_definition?`.", 213744570], - [298, 9, 997, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `parse_line` is too high. [9/7]", 2139717575], - [298, 9, 997, "Metrics/MethodLength: Method has too many lines. [13/10]", 2139717575], - [298, 9, 997, "Metrics/PerceivedComplexity: Perceived complexity for `parse_line` is too high. [9/8]", 2139717575], - [352, 9, 1214, "Metrics/AbcSize: Assignment Branch Condition size for `expand_line` is too high. [<10, 20, 17> 28.09/17]", 149412459], - [352, 9, 1214, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `expand_line` is too high. [14/7]", 149412459], - [352, 9, 1214, "Metrics/MethodLength: Method has too many lines. [21/10]", 149412459], - [352, 9, 1214, "Metrics/PerceivedComplexity: Perceived complexity for `expand_line` is too high. [15/8]", 149412459], - [358, 37, 17, "Style/NumericPredicate: Use `first_bracket.positive?` instead of `first_bracket > 0`.", 1095960710] - ], - "lib/markdown/merge/cleanse/templating_corruption.rb:3945009912": [ - [59, 9, 384, "Metrics/AbcSize: Assignment Branch Condition size for `append_issues` is too high. [<0, 17, 2> 17.12/17]", 2550677275] - ], - "lib/markdown/merge/code_block_merger.rb:1362562532": [ - [32, 5, 27618, "Metrics/ClassLength: Class has too many lines. [554/100]", 1891552237], - [120, 7, 543, "Metrics/MethodLength: Method has too many lines. [11/10]", 625040368], - [120, 28, 92, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 3691835500], - [135, 7, 666, "Metrics/MethodLength: Method has too many lines. [13/10]", 4153783419], - [156, 7, 2796, "Metrics/AbcSize: Assignment Branch Condition size for `merge_code_blocks_with_runtime` is too high. [<5, 52, 11> 53.39/17]", 4194925058], - [156, 7, 2796, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `merge_code_blocks_with_runtime` is too high. [10/7]", 4194925058], - [156, 7, 2796, "Metrics/MethodLength: Method has too many lines. [63/10]", 4194925058], - [156, 7, 2796, "Metrics/PerceivedComplexity: Perceived complexity for `merge_code_blocks_with_runtime` is too high. [12/8]", 4194925058], - [156, 41, 125, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 1827509670], - [227, 7, 1778, "Metrics/AbcSize: Assignment Branch Condition size for `build_runtime_operation` is too high. [<3, 24, 4> 24.52/17]", 3746845105], - [227, 7, 1778, "Metrics/MethodLength: Method has too many lines. [31/10]", 3746845105], - [227, 34, 86, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 3153149164], - [239, 39, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], - [290, 7, 528, "Metrics/MethodLength: Method has too many lines. [14/10]", 3045714289], - [307, 7, 2407, "Metrics/AbcSize: Assignment Branch Condition size for `merge_runtime_surface` is too high. [<1, 50, 7> 50.5/17]", 3818534251], - [307, 7, 2407, "Metrics/MethodLength: Method has too many lines. [53/10]", 3818534251], - [365, 7, 2502, "Metrics/AbcSize: Assignment Branch Condition size for `perform_code_block_merge` is too high. [<8, 34, 16> 38.42/17]", 3120245149], - [365, 7, 2502, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `perform_code_block_merge` is too high. [14/7]", 3120245149], - [365, 7, 2502, "Metrics/MethodLength: Method has too many lines. [57/10]", 3120245149], - [365, 7, 2502, "Metrics/PerceivedComplexity: Perceived complexity for `perform_code_block_merge` is too high. [16/8]", 3120245149], - [365, 35, 83, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 2137984385], - [435, 7, 1289, "Metrics/MethodLength: Method has too many lines. [33/10]", 3304634912], - [435, 43, 154, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [8/5]", 2516842130], - [473, 7, 755, "Metrics/MethodLength: Method has too many lines. [15/10]", 2207072637], - [473, 35, 127, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [7/5]", 2610889879], - [492, 38, 167, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [8/5]", 372116680], - [492, 121, 3, "Layout/LineLength: Line is too long. [123/120]", 193417996], - [506, 37, 166, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [8/5]", 321759336], - [506, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5861061], - [547, 19, 20, "Style/StringConcatenation: Prefer string interpolation to string concatenation.", 3860798338], - [574, 9, 109, "Lint/RescueException: Avoid rescuing the `Exception` class. Perhaps you meant to rescue `StandardError`?", 2421726137], - [575, 21, 50, "Style/ClassEqualityComparison: Use `instance_of?(::RSpec::Mocks::MockExpectationError)` instead of comparing classes.", 952914844], - [592, 9, 797, "Metrics/MethodLength: Method has too many lines. [18/10]", 4001935536], - [622, 9, 800, "Metrics/MethodLength: Method has too many lines. [18/10]", 2519636656], - [652, 9, 798, "Metrics/MethodLength: Method has too many lines. [18/10]", 2048436912], - [680, 9, 1160, "Metrics/MethodLength: Method has too many lines. [26/10]", 45677001], - [718, 9, 798, "Metrics/MethodLength: Method has too many lines. [18/10]", 3475080240] - ], - "lib/markdown/merge/comment_tracker.rb:167569374": [ - [19, 7, 374, "Metrics/MethodLength: Method has too many lines. [11/10]", 3280949001] - ], - "lib/markdown/merge/conflict_resolver.rb:686298490": [ - [29, 5, 6207, "Metrics/ClassLength: Class has too many lines. [122/100]", 3761260950], - [57, 7, 1217, "Metrics/MethodLength: Method has too many lines. [32/10]", 3372247297], - [57, 55, 14, "Lint/UnusedMethodArgument: Unused method argument - `template_index`.", 1809801172], - [57, 72, 10, "Lint/UnusedMethodArgument: Unused method argument - `dest_index`.", 2703999490], - [112, 7, 1811, "Metrics/AbcSize: Assignment Branch Condition size for `unresolved_resolution` is too high. [<6, 22, 5> 23.35/17]", 391291522], - [112, 7, 1811, "Metrics/MethodLength: Method has too many lines. [39/10]", 391291522], - [161, 7, 605, "Metrics/MethodLength: Method has too many lines. [12/10]", 577293020] - ], - "lib/markdown/merge/file_aligner.rb:841305081": [ - [27, 5, 19046, "Metrics/ClassLength: Class has too many lines. [364/100]", 3915220059], - [57, 7, 1853, "Metrics/AbcSize: Assignment Branch Condition size for `apply_match_refiner!` is too high. [<13, 31, 14> 36.41/17]", 3500652553], - [57, 7, 1853, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `apply_match_refiner!` is too high. [15/7]", 3500652553], - [57, 7, 1853, "Metrics/MethodLength: Method has too many lines. [35/10]", 3500652553], - [57, 7, 1853, "Metrics/PerceivedComplexity: Perceived complexity for `apply_match_refiner!` is too high. [15/8]", 3500652553], - [112, 7, 312, "Metrics/MethodLength: Method has too many lines. [11/10]", 2670750985], - [132, 9, 46, "Lint/HashCompareByIdentity: Use `Hash#compare_by_identity` instead of using `object_id` for keys.", 4265307642], - [133, 11, 78, "Lint/HashCompareByIdentity: Use `Hash#compare_by_identity` instead of using `object_id` for keys.", 1464832319], - [139, 7, 644, "Metrics/AbcSize: Assignment Branch Condition size for `build_heading_owner_paths` is too high. [<8, 20, 8> 22.98/17]", 2892981198], - [139, 7, 644, "Metrics/MethodLength: Method has too many lines. [13/10]", 2892981198], - [176, 7, 1056, "Metrics/AbcSize: Assignment Branch Condition size for `adjacent_section_hijack_repair_compatible?` is too high. [<4, 25, 8> 26.55/17]", 2068902935], - [176, 7, 1056, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `adjacent_section_hijack_repair_compatible?` is too high. [8/7]", 2068902935], - [176, 7, 1056, "Metrics/MethodLength: Method has too many lines. [11/10]", 2068902935], - [204, 7, 685, "Metrics/MethodLength: Method has too many lines. [12/10]", 3293058437], - [221, 7, 762, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `next_same_owner_match_for_template_only_entry` is too high. [8/7]", 681984620], - [250, 7, 829, "Metrics/MethodLength: Method has too many lines. [15/10]", 3104261185], - [309, 7, 759, "Metrics/MethodLength: Method has too many lines. [11/10]", 4043392433], - [342, 7, 540, "Metrics/AbcSize: Assignment Branch Condition size for `synthetic_section_label_paragraph?` is too high. [<3, 15, 11> 18.84/17]", 569218077], - [342, 7, 540, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `synthetic_section_label_paragraph?` is too high. [9/7]", 569218077], - [342, 7, 540, "Metrics/PerceivedComplexity: Perceived complexity for `synthetic_section_label_paragraph?` is too high. [9/8]", 569218077], - [347, 38, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], - [385, 47, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], - [385, 85, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], - [429, 7, 792, "Metrics/AbcSize: Assignment Branch Condition size for `neighboring_heading_signatures` is too high. [<7, 17, 8> 20.05/17]", 653610323], - [429, 7, 792, "Metrics/MethodLength: Method has too many lines. [14/10]", 653610323], - [466, 7, 879, "Metrics/AbcSize: Assignment Branch Condition size for `first_list_item_anchor` is too high. [<6, 22, 9> 24.52/17]", 1144304252], - [466, 7, 879, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `first_list_item_anchor` is too high. [9/7]", 1144304252], - [466, 7, 879, "Metrics/MethodLength: Method has too many lines. [21/10]", 1144304252], - [466, 7, 879, "Metrics/PerceivedComplexity: Perceived complexity for `first_list_item_anchor` is too high. [10/8]", 1144304252] - ], - "lib/markdown/merge/file_analysis.rb:4222490806": [ - [41, 5, 21729, "Metrics/ClassLength: Class has too many lines. [414/100]", 3545476722], - [185, 7, 2960, "Metrics/AbcSize: Assignment Branch Condition size for `compute_parser_signature` is too high. [<13, 36, 18> 42.3/17]", 1002271909], - [185, 7, 2960, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `compute_parser_signature` is too high. [17/7]", 1002271909], - [185, 7, 2960, "Metrics/MethodLength: Method has too many lines. [42/10]", 1002271909], - [185, 7, 2960, "Metrics/PerceivedComplexity: Perceived complexity for `compute_parser_signature` is too high. [11/8]", 1002271909], - [292, 7, 640, "Metrics/AbcSize: Assignment Branch Condition size for `heading_section_owners` is too high. [<5, 16, 3> 17.03/17]", 2368833202], - [292, 7, 640, "Metrics/MethodLength: Method has too many lines. [14/10]", 2368833202], - [311, 7, 763, "Metrics/AbcSize: Assignment Branch Condition size for `link_definition_owners` is too high. [<2, 19, 7> 20.35/17]", 2205544068], - [311, 7, 763, "Metrics/MethodLength: Method has too many lines. [16/10]", 2205544068], - [348, 7, 1577, "Metrics/AbcSize: Assignment Branch Condition size for `table_row_owners` is too high. [<16, 43, 17> 48.93/17]", 363370243], - [348, 7, 1577, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `table_row_owners` is too high. [16/7]", 363370243], - [348, 7, 1577, "Metrics/MethodLength: Method has too many lines. [34/10]", 363370243], - [348, 7, 1577, "Metrics/PerceivedComplexity: Perceived complexity for `table_row_owners` is too high. [16/8]", 363370243], - [408, 7, 689, "Metrics/MethodLength: Method has too many lines. [14/10]", 590050144], - [448, 7, 546, "Metrics/MethodLength: Method has too many lines. [18/10]", 1600631533], - [471, 7, 653, "Metrics/MethodLength: Method has too many lines. [15/10]", 4205564731], - [492, 7, 897, "Metrics/AbcSize: Assignment Branch Condition size for `inline_link_reference_at` is too high. [<6, 17, 11> 21.12/17]", 1855615733], - [492, 7, 897, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `inline_link_reference_at` is too high. [8/7]", 1855615733], - [492, 7, 897, "Metrics/MethodLength: Method has too many lines. [19/10]", 1855615733], - [517, 33, 83, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [7/5]", 2884863618], - [530, 7, 348, "Metrics/MethodLength: Method has too many lines. [13/10]", 3731533636], - [559, 7, 777, "Metrics/MethodLength: Method has too many lines. [14/10]", 1287754637], - [597, 7, 558, "Metrics/MethodLength: Method has too many lines. [15/10]", 3417342515] - ], - "lib/markdown/merge/file_analysis_base.rb:678024820": [ - [37, 5, 26494, "Metrics/ClassLength: Class has too many lines. [405/100]", 2769422452], - [60, 7, 1360, "Metrics/MethodLength: Method has too many lines. [18/10]", 90913983], - [261, 7, 3539, "Metrics/AbcSize: Assignment Branch Condition size for `compute_parser_signature` is too high. [<16, 43, 19> 49.66/17]", 3466910865], - [261, 7, 3539, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `compute_parser_signature` is too high. [18/7]", 3466910865], - [261, 7, 3539, "Metrics/MethodLength: Method has too many lines. [45/10]", 3466910865], - [261, 7, 3539, "Metrics/PerceivedComplexity: Perceived complexity for `compute_parser_signature` is too high. [11/8]", 3466910865], - [467, 7, 1153, "Metrics/AbcSize: Assignment Branch Condition size for `collect_top_level_nodes_with_gaps` is too high. [<10, 16, 7> 20.12/17]", 2190890907], - [467, 7, 1153, "Metrics/MethodLength: Method has too many lines. [18/10]", 2190890907], - [524, 7, 944, "Metrics/AbcSize: Assignment Branch Condition size for `integrate_gap_nodes` is too high. [<10, 14, 9> 19.42/17]", 2618792164], - [524, 7, 944, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `integrate_gap_nodes` is too high. [9/7]", 2618792164], - [524, 7, 944, "Metrics/MethodLength: Method has too many lines. [17/10]", 2618792164], - [524, 7, 944, "Metrics/PerceivedComplexity: Perceived complexity for `integrate_gap_nodes` is too high. [9/8]", 2618792164], - [536, 50, 7, "Style/NumericPredicate: Use `idx.positive?` instead of `idx > 0`.", 1825176542], - [565, 7, 2225, "Metrics/AbcSize: Assignment Branch Condition size for `find_freeze_markers` is too high. [<16, 30, 15> 37.16/17]", 263815919], - [565, 7, 2225, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `find_freeze_markers` is too high. [16/7]", 263815919], - [565, 7, 2225, "Metrics/MethodLength: Method has too many lines. [39/10]", 263815919], - [565, 7, 2225, "Metrics/PerceivedComplexity: Perceived complexity for `find_freeze_markers` is too high. [16/8]", 263815919], - [588, 15, 101, "Metrics/BlockNesting: Avoid more than 3 levels of block nesting.", 2762675417], - [611, 23, 26, "Metrics/BlockNesting: Avoid more than 3 levels of block nesting.", 2775329597], - [630, 7, 708, "Metrics/MethodLength: Method has too many lines. [19/10]", 1535336850], - [663, 7, 859, "Metrics/MethodLength: Method has too many lines. [19/10]", 1633852183], - [706, 7, 595, "Metrics/MethodLength: Method has too many lines. [14/10]", 2922601775], - [730, 7, 1145, "Metrics/AbcSize: Assignment Branch Condition size for `integrate_nodes_with_freeze_blocks` is too high. [<12, 17, 16> 26.25/17]", 2481642790], - [730, 7, 1145, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `integrate_nodes_with_freeze_blocks` is too high. [13/7]", 2481642790], - [730, 7, 1145, "Metrics/MethodLength: Method has too many lines. [22/10]", 2481642790], - [730, 7, 1145, "Metrics/PerceivedComplexity: Perceived complexity for `integrate_nodes_with_freeze_blocks` is too high. [13/8]", 2481642790] - ], - "lib/markdown/merge/freeze_node.rb:2861044075": [ - [39, 21, 86, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [7/5]", 4263110221] - ], - "lib/markdown/merge/gap_line_node.rb:2230943204": [ - [40, 7, 461, "Metrics/MethodLength: Method has too many lines. [11/10]", 1038026861], - [75, 7, 1087, "Metrics/MethodLength: Method has too many lines. [17/10]", 690589617], - [75, 7, 1087, "Metrics/PerceivedComplexity: Perceived complexity for `signature` is too high. [10/8]", 690589617], - [76, 27, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765] - ], - "lib/markdown/merge/link_definition_node.rb:526538026": [ - [54, 7, 413, "Metrics/MethodLength: Method has too many lines. [11/10]", 449561622] - ], - "lib/markdown/merge/link_parser.rb:1096919687": [ - [30, 5, 12509, "Metrics/ClassLength: Class has too many lines. [179/100]", 1758727291], - [168, 7, 459, "Metrics/MethodLength: Method has too many lines. [11/10]", 518494532], - [239, 7, 945, "Metrics/AbcSize: Assignment Branch Condition size for `build_link_tree` is too high. [<12, 18, 13> 25.24/17]", 3590515429], - [239, 7, 945, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `build_link_tree` is too high. [10/7]", 3590515429], - [239, 7, 945, "Metrics/MethodLength: Method has too many lines. [19/10]", 3590515429], - [239, 7, 945, "Metrics/PerceivedComplexity: Perceived complexity for `build_link_tree` is too high. [10/8]", 3590515429], - [297, 7, 738, "Metrics/AbcSize: Assignment Branch Condition size for `find_constructs` is too high. [<9, 9, 15> 19.67/17]", 1944426624], - [297, 7, 738, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `find_constructs` is too high. [9/7]", 1944426624], - [297, 7, 738, "Metrics/MethodLength: Method has too many lines. [20/10]", 1944426624], - [297, 7, 738, "Metrics/PerceivedComplexity: Perceived complexity for `find_constructs` is too high. [10/8]", 1944426624], - [308, 31, 7, "Style/NumericPredicate: Use `idx.positive?` instead of `idx > 0`.", 1825176542], - [326, 7, 1492, "Metrics/AbcSize: Assignment Branch Condition size for `try_parse_construct_at` is too high. [<7, 26, 13> 29.9/17]", 751157862], - [326, 7, 1492, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `try_parse_construct_at` is too high. [9/7]", 751157862], - [326, 7, 1492, "Metrics/MethodLength: Method has too many lines. [32/10]", 751157862], - [326, 7, 1492, "Metrics/PerceivedComplexity: Perceived complexity for `try_parse_construct_at` is too high. [10/8]", 751157862], - [371, 7, 332, "Metrics/MethodLength: Method has too many lines. [13/10]", 766454795], - [381, 27, 10, "Style/NumericPredicate: Use `depth.zero?` instead of `depth == 0`.", 3245914040], - [389, 7, 679, "Metrics/AbcSize: Assignment Branch Condition size for `find_paren_end` is too high. [<12, 5, 12> 17.69/17]", 3435642705], - [389, 7, 679, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `find_paren_end` is too high. [10/7]", 3435642705], - [389, 7, 679, "Metrics/MethodLength: Method has too many lines. [24/10]", 3435642705], - [389, 7, 679, "Metrics/PerceivedComplexity: Perceived complexity for `find_paren_end` is too high. [10/8]", 3435642705], - [410, 29, 10, "Style/NumericPredicate: Use `depth.zero?` instead of `depth == 0`.", 3245914040] - ], - "lib/markdown/merge/link_reference_rehydrator.rb:2522597032": [ - [28, 5, 10014, "Metrics/ClassLength: Class has too many lines. [171/100]", 3685995823], - [89, 7, 955, "Metrics/AbcSize: Assignment Branch Condition size for `rehydrate` is too high. [<6, 21, 4> 22.2/17]", 4193701], - [89, 7, 955, "Metrics/MethodLength: Method has too many lines. [12/10]", 4193701], - [138, 7, 1280, "Metrics/MethodLength: Method has too many lines. [20/10]", 2243922075], - [138, 7, 1280, "Metrics/PerceivedComplexity: Perceived complexity for `collect_nested_replacements` is too high. [10/8]", 2243922075], - [181, 7, 1844, "Metrics/AbcSize: Assignment Branch Condition size for `process_parent_with_children` is too high. [<11, 30, 10> 33.48/17]", 1412317448], - [181, 7, 1844, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `process_parent_with_children` is too high. [9/7]", 1412317448], - [181, 7, 1844, "Metrics/MethodLength: Method has too many lines. [29/10]", 1412317448], - [181, 7, 1844, "Metrics/PerceivedComplexity: Perceived complexity for `process_parent_with_children` is too high. [9/8]", 1412317448], - [230, 7, 672, "Metrics/AbcSize: Assignment Branch Condition size for `build_definition_maps` is too high. [<18, 18, 5> 25.94/17]", 2626750147], - [230, 7, 672, "Metrics/MethodLength: Method has too many lines. [15/10]", 2626750147], - [265, 7, 594, "Metrics/MethodLength: Method has too many lines. [21/10]", 1835317302], - [292, 7, 598, "Metrics/MethodLength: Method has too many lines. [21/10]", 1975952876] - ], - "lib/markdown/merge/list_match_refiner.rb:2863813265": [ - [28, 7, 760, "Metrics/AbcSize: Assignment Branch Condition size for `compute_similarity` is too high. [<6, 20, 4> 21.26/17]", 4078625426], - [28, 7, 760, "Metrics/MethodLength: Method has too many lines. [13/10]", 4078625426] - ], - "lib/markdown/merge/list_merger.rb:1304801063": [ - [33, 5, 10963, "Metrics/ClassLength: Class has too many lines. [214/100]", 602699468], - [48, 7, 1267, "Metrics/MethodLength: Method has too many lines. [22/10]", 3289445396], - [48, 22, 295, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [8/5]", 992893951], - [76, 20, 23, "Style/StringConcatenation: Prefer string interpolation to string concatenation.", 1178765246], - [86, 7, 474, "Metrics/MethodLength: Method has too many lines. [14/10]", 3392803095], - [110, 7, 2384, "Metrics/AbcSize: Assignment Branch Condition size for `align_items` is too high. [<29, 55, 24> 66.65/17]", 452537823], - [110, 7, 2384, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `align_items` is too high. [22/7]", 452537823], - [110, 7, 2384, "Metrics/MethodLength: Method has too many lines. [44/10]", 452537823], - [110, 7, 2384, "Metrics/PerceivedComplexity: Perceived complexity for `align_items` is too high. [23/8]", 452537823], - [179, 7, 2546, "Metrics/AbcSize: Assignment Branch Condition size for `emit_lines` is too high. [<24, 40, 13> 48.43/17]", 2868796461], - [179, 7, 2546, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `emit_lines` is too high. [10/7]", 2868796461], - [179, 7, 2546, "Metrics/MethodLength: Method has too many lines. [48/10]", 2868796461], - [179, 7, 2546, "Metrics/PerceivedComplexity: Perceived complexity for `emit_lines` is too high. [9/8]", 2868796461], - [179, 21, 167, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [9/5]", 3110781545], - [186, 9, 2214, "Metrics/BlockLength: Block has too many lines. [41/25]", 27504812], - [267, 7, 1113, "Metrics/MethodLength: Method has too many lines. [21/10]", 2701858480], - [267, 32, 165, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [9/5]", 4189168652] - ], - "lib/markdown/merge/merge_result.rb:3204455982": [ - [35, 5, 18456, "Metrics/ClassLength: Class has too many lines. [336/100]", 549816393], - [47, 21, 99, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [7/5]", 1708164346], - [99, 11, 18, "Naming/PredicatePrefix: Rename `has_frozen_blocks?` to `frozen_blocks?`.", 2714608976], - [174, 7, 987, "Metrics/MethodLength: Method has too many lines. [14/10]", 199512025], - [178, 121, 23, "Layout/LineLength: Line is too long. [143/120]", 2749193064], - [197, 7, 719, "Metrics/MethodLength: Method has too many lines. [11/10]", 3478479763], - [214, 7, 3130, "Metrics/AbcSize: Assignment Branch Condition size for `apply_grouped_delegated_block!` is too high. [<37, 72, 21> 83.63/17]", 3965639779], - [214, 7, 3130, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `apply_grouped_delegated_block!` is too high. [21/7]", 3965639779], - [214, 7, 3130, "Metrics/MethodLength: Method has too many lines. [49/10]", 3965639779], - [214, 7, 3130, "Metrics/PerceivedComplexity: Perceived complexity for `apply_grouped_delegated_block!` is too high. [21/8]", 3965639779], - [218, 121, 55, "Layout/LineLength: Line is too long. [175/120]", 2758428109], - [227, 9, 22, "Style/MultilineBlockChain: Avoid multi-line chains of blocks.", 3561198282], - [232, 9, 22, "Style/MultilineBlockChain: Avoid multi-line chains of blocks.", 3561198282], - [237, 9, 22, "Style/MultilineBlockChain: Avoid multi-line chains of blocks.", 3561198282], - [267, 7, 956, "Metrics/AbcSize: Assignment Branch Condition size for `apply_output_range_resolutions_descending!` is too high. [<8, 26, 8> 28.35/17]", 410698269], - [267, 7, 956, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `apply_output_range_resolutions_descending!` is too high. [8/7]", 410698269], - [267, 7, 956, "Metrics/MethodLength: Method has too many lines. [13/10]", 410698269], - [269, 121, 9, "Layout/LineLength: Line is too long. [129/120]", 1650842885], - [304, 7, 1607, "Metrics/AbcSize: Assignment Branch Condition size for `remap_delegated_cases_after_apply` is too high. [<5, 20, 1> 20.64/17]", 2805002106], - [304, 7, 1607, "Metrics/MethodLength: Method has too many lines. [25/10]", 2805002106], - [304, 44, 174, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [7/5]", 2563452319], - [352, 7, 664, "Metrics/MethodLength: Method has too many lines. [13/10]", 2283269648], - [402, 7, 605, "Metrics/MethodLength: Method has too many lines. [12/10]", 219211686], - [418, 7, 622, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `sanitize_review_state_metadata` is too high. [8/7]", 656017698], - [418, 7, 622, "Metrics/MethodLength: Method has too many lines. [16/10]", 656017698], - [439, 7, 1110, "Metrics/AbcSize: Assignment Branch Condition size for `validate_review_state_compatibility!` is too high. [<7, 18, 13> 23.28/17]", 3899925007], - [439, 7, 1110, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `validate_review_state_compatibility!` is too high. [11/7]", 3899925007], - [439, 7, 1110, "Metrics/MethodLength: Method has too many lines. [18/10]", 3899925007], - [439, 7, 1110, "Metrics/PerceivedComplexity: Perceived complexity for `validate_review_state_compatibility!` is too high. [11/8]", 3899925007], - [453, 121, 9, "Layout/LineLength: Line is too long. [129/120]", 2530059826], - [460, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5861331] - ], - "lib/markdown/merge/output_builder.rb:48145848": [ - [23, 5, 8640, "Metrics/ClassLength: Class has too many lines. [115/100]", 1155429967], - [47, 7, 2071, "Metrics/AbcSize: Assignment Branch Condition size for `add_node_source` is too high. [<6, 15, 12> 20.12/17]", 555854176], - [47, 7, 2071, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `add_node_source` is too high. [12/7]", 555854176], - [47, 7, 2071, "Metrics/MethodLength: Method has too many lines. [15/10]", 555854176], - [47, 7, 2071, "Metrics/PerceivedComplexity: Perceived complexity for `add_node_source` is too high. [12/8]", 555854176], - [60, 121, 43, "Layout/LineLength: Line is too long. [163/120]", 527167630], - [61, 121, 67, "Layout/LineLength: Line is too long. [187/120]", 2893319489], - [62, 121, 43, "Layout/LineLength: Line is too long. [163/120]", 2876999963], - [63, 121, 74, "Layout/LineLength: Line is too long. [194/120]", 4139918410], - [92, 38, 9, "Style/NumericPredicate: Use `count.positive?` instead of `count > 0`.", 3986027816], - [122, 7, 370, "Metrics/MethodLength: Method has too many lines. [11/10]", 616591631], - [224, 7, 878, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `extract_parser_node_source` is too high. [10/7]", 227721314], - [224, 7, 878, "Metrics/MethodLength: Method has too many lines. [13/10]", 227721314], - [224, 7, 878, "Metrics/PerceivedComplexity: Perceived complexity for `extract_parser_node_source` is too high. [11/8]", 227721314] - ], - "lib/markdown/merge/partial_template_merger.rb:3110525012": [ - [32, 5, 20691, "Metrics/ClassLength: Class has too many lines. [336/100]", 496419120], - [71, 7, 1040, "Metrics/MethodLength: Method has too many lines. [17/10]", 2144648319], - [71, 21, 417, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [14/5]", 1226086326], - [109, 7, 1065, "Metrics/AbcSize: Assignment Branch Condition size for `merge` is too high. [<7, 19, 6> 21.12/17]", 3976180000], - [109, 7, 1065, "Metrics/MethodLength: Method has too many lines. [25/10]", 3976180000], - [145, 7, 912, "Metrics/MethodLength: Method has too many lines. [15/10]", 2077585004], - [265, 7, 1401, "Metrics/AbcSize: Assignment Branch Condition size for `find_section_end` is too high. [<8, 28, 11> 31.13/17]", 1420600674], - [265, 7, 1401, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `find_section_end` is too high. [10/7]", 1420600674], - [265, 7, 1401, "Metrics/MethodLength: Method has too many lines. [20/10]", 1420600674], - [265, 7, 1401, "Metrics/PerceivedComplexity: Perceived complexity for `find_section_end` is too high. [10/8]", 1420600674], - [311, 7, 1101, "Metrics/AbcSize: Assignment Branch Condition size for `node_to_source` is too high. [<6, 15, 15> 22.05/17]", 3635207151], - [311, 7, 1101, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `node_to_source` is too high. [13/7]", 3635207151], - [311, 7, 1101, "Metrics/MethodLength: Method has too many lines. [20/10]", 3635207151], - [311, 7, 1101, "Metrics/PerceivedComplexity: Perceived complexity for `node_to_source` is too high. [14/8]", 3635207151], - [318, 20, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], - [323, 42, 14, "Style/NumericPredicate: Use `start_line.positive?` instead of `start_line > 0`.", 792111162], - [345, 7, 643, "Metrics/MethodLength: Method has too many lines. [17/10]", 998852567], - [364, 34, 10, "Style/NumericPredicate: Use `value.zero?` instead of `value == 0`.", 4076387742], - [367, 7, 2760, "Metrics/AbcSize: Assignment Branch Condition size for `preserved_destination_insertions` is too high. [<19, 28, 14> 36.62/17]", 414221184], - [367, 7, 2760, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `preserved_destination_insertions` is too high. [13/7]", 414221184], - [367, 7, 2760, "Metrics/MethodLength: Method has too many lines. [49/10]", 414221184], - [367, 7, 2760, "Metrics/PerceivedComplexity: Perceived complexity for `preserved_destination_insertions` is too high. [15/8]", 414221184], - [381, 121, 7, "Layout/LineLength: Line is too long. [127/120]", 682972477], - [426, 7, 1058, "Metrics/MethodLength: Method has too many lines. [16/10]", 932075153], - [475, 7, 1040, "Metrics/AbcSize: Assignment Branch Condition size for `render_template_with_preserved_insertions` is too high. [<10, 18, 10> 22.89/17]", 1699694974], - [475, 7, 1040, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `render_template_with_preserved_insertions` is too high. [9/7]", 1699694974], - [475, 7, 1040, "Metrics/MethodLength: Method has too many lines. [21/10]", 1699694974], - [475, 7, 1040, "Metrics/PerceivedComplexity: Perceived complexity for `render_template_with_preserved_insertions` is too high. [9/8]", 1699694974], - [504, 7, 454, "Metrics/MethodLength: Method has too many lines. [12/10]", 3433907112] - ], - "lib/markdown/merge/preservation_support.rb:3687269889": [ - [13, 5, 10105, "Metrics/ModuleLength: Module has too many lines. [212/100]", 674454], - [24, 7, 572, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `standalone_comment_node?` is too high. [9/7]", 349869031], - [24, 7, 572, "Metrics/PerceivedComplexity: Perceived complexity for `standalone_comment_node?` is too high. [9/8]", 349869031], - [116, 7, 655, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `remove_plan_preserved_comment_regions` is too high. [8/7]", 2103873816], - [116, 7, 655, "Metrics/MethodLength: Method has too many lines. [12/10]", 2103873816], - [178, 7, 1301, "Metrics/AbcSize: Assignment Branch Condition size for `remove_plan_comment_insertion_specs` is too high. [<5, 22, 8> 23.94/17]", 698043371], - [178, 7, 1301, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `remove_plan_comment_insertion_specs` is too high. [9/7]", 698043371], - [178, 7, 1301, "Metrics/MethodLength: Method has too many lines. [22/10]", 698043371], - [178, 7, 1301, "Metrics/PerceivedComplexity: Perceived complexity for `remove_plan_comment_insertion_specs` is too high. [9/8]", 698043371], - [193, 9, 7, "Style/MultilineBlockChain: Avoid multi-line chains of blocks.", 4045570401], - [217, 7, 737, "Metrics/MethodLength: Method has too many lines. [13/10]", 3882071587], - [248, 28, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], - [271, 7, 704, "Metrics/MethodLength: Method has too many lines. [13/10]", 2605835865], - [271, 52, 139, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 1766111143] - ], - "lib/markdown/merge/smart_merger.rb:1245982439": [ - [151, 7, 1405, "Metrics/MethodLength: Method has too many lines. [19/10]", 2830703815], - [151, 21, 501, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [13/5]", 1104874368], - [229, 7, 1140, "Metrics/AbcSize: Assignment Branch Condition size for `node_to_source` is too high. [<5, 15, 9> 18.19/17]", 1515173572], - [229, 7, 1140, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `node_to_source` is too high. [9/7]", 1515173572], - [229, 7, 1140, "Metrics/MethodLength: Method has too many lines. [13/10]", 1515173572], - [229, 7, 1140, "Metrics/PerceivedComplexity: Perceived complexity for `node_to_source` is too high. [10/8]", 1515173572] - ], - "lib/markdown/merge/smart_merger_base.rb:950545235": [ - [43, 5, 59104, "Metrics/ClassLength: Class has too many lines. [984/100]", 1046238359], - [148, 7, 3731, "Metrics/AbcSize: Assignment Branch Condition size for `initialize` is too high. [<20, 19, 10> 29.34/17]", 50319656], - [148, 7, 3731, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `initialize` is too high. [11/7]", 50319656], - [148, 7, 3731, "Metrics/MethodLength: Method has too many lines. [66/10]", 50319656], - [148, 7, 3731, "Metrics/PerceivedComplexity: Perceived complexity for `initialize` is too high. [9/8]", 50319656], - [148, 21, 606, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [17/5]", 4006929896], - [294, 7, 1760, "Metrics/AbcSize: Assignment Branch Condition size for `merge_result` is too high. [<15, 19, 7> 25.2/17]", 3628731818], - [294, 7, 1760, "Metrics/MethodLength: Method has too many lines. [31/10]", 3628731818], - [297, 25, 1662, "Metrics/BlockLength: Block has too many lines. [28/25]", 1167387512], - [343, 7, 1195, "Metrics/AbcSize: Assignment Branch Condition size for `merge_with_debug` is too high. [<3, 20, 17> 26.42/17]", 1763663260], - [343, 7, 1195, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `merge_with_debug` is too high. [18/7]", 1763663260], - [343, 7, 1195, "Metrics/MethodLength: Method has too many lines. [27/10]", 1763663260], - [343, 7, 1195, "Metrics/PerceivedComplexity: Perceived complexity for `merge_with_debug` is too high. [18/8]", 1763663260], - [383, 7, 1862, "Metrics/AbcSize: Assignment Branch Condition size for `prepare_runtime_session!` is too high. [<4, 24, 1> 24.35/17]", 546014873], - [383, 7, 1862, "Metrics/MethodLength: Method has too many lines. [45/10]", 546014873], - [432, 7, 1064, "Metrics/MethodLength: Method has too many lines. [21/10]", 214902707], - [490, 7, 438, "Metrics/MethodLength: Method has too many lines. [11/10]", 1759076310], - [505, 31, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], - [529, 7, 788, "Metrics/MethodLength: Method has too many lines. [13/10]", 690316762], - [553, 7, 1538, "Metrics/AbcSize: Assignment Branch Condition size for `collapse_cross_source_preamble_prefixes` is too high. [<9, 18, 6> 21/17]", 1970988374], - [553, 7, 1538, "Metrics/MethodLength: Method has too many lines. [25/10]", 1970988374], - [586, 7, 644, "Metrics/AbcSize: Assignment Branch Condition size for `leading_standalone_comment_run` is too high. [<8, 14, 7> 17.58/17]", 4188914818], - [586, 7, 644, "Metrics/MethodLength: Method has too many lines. [17/10]", 4188914818], - [614, 7, 1576, "Metrics/AbcSize: Assignment Branch Condition size for `process_alignment` is too high. [<15, 14, 10> 22.83/17]", 3967135783], - [614, 7, 1576, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `process_alignment` is too high. [11/7]", 3967135783], - [614, 7, 1576, "Metrics/MethodLength: Method has too many lines. [31/10]", 3967135783], - [614, 7, 1576, "Metrics/PerceivedComplexity: Perceived complexity for `process_alignment` is too high. [9/8]", 3967135783], - [656, 7, 2871, "Metrics/AbcSize: Assignment Branch Condition size for `process_match_to_builder` is too high. [<17, 39, 19> 46.59/17]", 608053079], - [656, 7, 2871, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `process_match_to_builder` is too high. [19/7]", 608053079], - [656, 7, 2871, "Metrics/MethodLength: Method has too many lines. [50/10]", 608053079], - [656, 7, 2871, "Metrics/PerceivedComplexity: Perceived complexity for `process_match_to_builder` is too high. [18/8]", 608053079], - [720, 7, 867, "Metrics/MethodLength: Method has too many lines. [18/10]", 2946023513], - [764, 7, 670, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `consumed_link_definitions_within` is too high. [8/7]", 2596009659], - [764, 7, 670, "Metrics/MethodLength: Method has too many lines. [11/10]", 2596009659], - [774, 9, 8, "Style/MultilineBlockChain: Avoid multi-line chains of blocks.", 359839059], - [782, 45, 50, "Style/ClassEqualityComparison: Use `instance_of?(::RSpec::Mocks::MockExpectationError)` instead of comparing classes.", 952914844], - [797, 7, 939, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `apply_node_typing` is too high. [8/7]", 2526108526], - [797, 7, 939, "Metrics/MethodLength: Method has too many lines. [14/10]", 2526108526], - [849, 7, 1297, "Metrics/AbcSize: Assignment Branch Condition size for `try_inner_merge_list_to_builder` is too high. [<8, 20, 8> 22.98/17]", 2844551967], - [849, 7, 1297, "Metrics/MethodLength: Method has too many lines. [25/10]", 2844551967], - [849, 42, 71, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 3479074024], - [885, 7, 1361, "Metrics/AbcSize: Assignment Branch Condition size for `try_inner_merge_code_block_to_builder` is too high. [<7, 19, 6> 21.12/17]", 2468334280], - [885, 7, 1361, "Metrics/MethodLength: Method has too many lines. [29/10]", 2468334280], - [885, 48, 71, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 3479074024], - [918, 7, 1923, "Metrics/AbcSize: Assignment Branch Condition size for `remap_delegated_unresolved_cases` is too high. [<8, 23, 5> 24.86/17]", 2261924082], - [918, 7, 1923, "Metrics/MethodLength: Method has too many lines. [35/10]", 2261924082], - [922, 9, 1535, "Metrics/BlockLength: Block has too many lines. [31/25]", 838301956], - [983, 7, 657, "Metrics/MethodLength: Method has too many lines. [15/10]", 4047906352], - [1027, 7, 411, "Metrics/MethodLength: Method has too many lines. [13/10]", 4206078535], - [1053, 7, 3160, "Metrics/AbcSize: Assignment Branch Condition size for `process_dest_only_to_builder` is too high. [<14, 41, 24> 49.53/17]", 1311626075], - [1053, 7, 3160, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `process_dest_only_to_builder` is too high. [25/7]", 1311626075], - [1053, 7, 3160, "Metrics/MethodLength: Method has too many lines. [51/10]", 1311626075], - [1053, 7, 3160, "Metrics/PerceivedComplexity: Perceived complexity for `process_dest_only_to_builder` is too high. [25/8]", 1311626075], - [1053, 39, 177, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [7/5]", 2740785193], - [1167, 7, 395, "Metrics/MethodLength: Method has too many lines. [11/10]", 433430016], - [1204, 7, 465, "Metrics/MethodLength: Method has too many lines. [12/10]", 1101864061], - [1261, 7, 861, "Metrics/MethodLength: Method has too many lines. [16/10]", 2380789170], - [1314, 121, 3, "Layout/LineLength: Line is too long. [123/120]", 193431734], - [1317, 7, 1039, "Metrics/AbcSize: Assignment Branch Condition size for `kept_node_for_link_ownership` is too high. [<4, 17, 9> 19.65/17]", 849664480], - [1317, 7, 1039, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `kept_node_for_link_ownership` is too high. [8/7]", 849664480], - [1317, 7, 1039, "Metrics/MethodLength: Method has too many lines. [24/10]", 849664480], - [1348, 7, 797, "Metrics/MethodLength: Method has too many lines. [12/10]", 3928797316], - [1384, 7, 610, "Metrics/AbcSize: Assignment Branch Condition size for `link_reference_signatures_within` is too high. [<6, 15, 6> 17.23/17]", 2255263809], - [1390, 121, 1, "Layout/LineLength: Line is too long. [121/120]", 177625], - [1457, 7, 1360, "Metrics/MethodLength: Method has too many lines. [19/10]", 1607654950] - ], - "lib/markdown/merge/table_match_algorithm.rb:784102633": [ - [31, 5, 17084, "Metrics/ClassLength: Class has too many lines. [241/100]", 3870100216], - [71, 21, 130, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 2234186342], - [86, 7, 537, "Metrics/MethodLength: Method has too many lines. [11/10]", 695685542], - [112, 7, 872, "Metrics/AbcSize: Assignment Branch Condition size for `levenshtein_distance` is too high. [<13, 29, 8> 32.77/17]", 3623880915], - [112, 7, 872, "Metrics/MethodLength: Method has too many lines. [20/10]", 3623880915], - [264, 7, 1291, "Metrics/AbcSize: Assignment Branch Condition size for `collect_text_recursive` is too high. [<5, 22, 13> 26.04/17]", 1898702827], - [264, 7, 1291, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `collect_text_recursive` is too high. [12/7]", 1898702827], - [264, 7, 1291, "Metrics/MethodLength: Method has too many lines. [26/10]", 1898702827], - [264, 7, 1291, "Metrics/PerceivedComplexity: Perceived complexity for `collect_text_recursive` is too high. [15/8]", 1898702827], - [292, 24, 43, "Metrics/BlockNesting: Avoid more than 3 levels of block nesting.", 2747201274], - [303, 7, 644, "Metrics/AbcSize: Assignment Branch Condition size for `compute_header_match` is too high. [<6, 20, 9> 22.74/17]", 2910662900], - [303, 7, 644, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `compute_header_match` is too high. [10/7]", 2910662900], - [303, 7, 644, "Metrics/MethodLength: Method has too many lines. [11/10]", 2910662900], - [303, 7, 644, "Metrics/PerceivedComplexity: Perceived complexity for `compute_header_match` is too high. [10/8]", 2910662900], - [330, 7, 927, "Metrics/AbcSize: Assignment Branch Condition size for `compute_first_column_match` is too high. [<14, 22, 14> 29.6/17]", 2043865784], - [330, 7, 927, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `compute_first_column_match` is too high. [14/7]", 2043865784], - [330, 7, 927, "Metrics/MethodLength: Method has too many lines. [15/10]", 2043865784], - [330, 7, 927, "Metrics/PerceivedComplexity: Perceived complexity for `compute_first_column_match` is too high. [14/8]", 2043865784], - [331, 28, 19, "Style/SymbolProc: Pass `&:first` as an argument to `map` instead of a block.", 2561207191], - [332, 28, 19, "Style/SymbolProc: Pass `&:first` as an argument to `map` instead of a block.", 2561207191], - [352, 9, 15, "Style/NumericPredicate: Use `total_cells.positive?` instead of `total_cells > 0`.", 1010733923], - [362, 7, 1037, "Metrics/AbcSize: Assignment Branch Condition size for `compute_row_content_match` is too high. [<10, 15, 12> 21.66/17]", 1855353124], - [362, 7, 1037, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `compute_row_content_match` is too high. [11/7]", 1855353124], - [362, 7, 1037, "Metrics/MethodLength: Method has too many lines. [21/10]", 1855353124], - [362, 7, 1037, "Metrics/PerceivedComplexity: Perceived complexity for `compute_row_content_match` is too high. [11/8]", 1855353124], - [404, 23, 14, "Style/NumericPredicate: Use `max_cells.zero?` instead of `max_cells == 0`.", 2427124139], - [423, 7, 1091, "Metrics/AbcSize: Assignment Branch Condition size for `compute_total_cells_match` is too high. [<14, 18, 12> 25.77/17]", 413080451], - [423, 7, 1091, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `compute_total_cells_match` is too high. [11/7]", 413080451], - [423, 7, 1091, "Metrics/MethodLength: Method has too many lines. [24/10]", 413080451], - [423, 7, 1091, "Metrics/PerceivedComplexity: Perceived complexity for `compute_total_cells_match` is too high. [11/8]", 413080451], - [492, 23, 17, "Style/NumericPredicate: Use `total_weight.zero?` instead of `total_weight == 0`.", 3158357864] - ], - "lib/markdown/merge/table_match_refiner.rb:4203940079": [ - [118, 35, 50, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 1492696344] - ], - "lib/markdown/merge/whitespace_normalizer.rb:121777318": [ - [33, 5, 6779, "Metrics/ClassLength: Class has too many lines. [115/100]", 3048764740], - [103, 7, 418, "Metrics/MethodLength: Method has too many lines. [11/10]", 3165373284], - [126, 7, 1750, "Metrics/AbcSize: Assignment Branch Condition size for `collapse_excessive_blank_lines` is too high. [<12, 12, 10> 19.7/17]", 1435694128], - [126, 7, 1750, "Metrics/MethodLength: Method has too many lines. [36/10]", 1435694128], - [188, 7, 1270, "Metrics/AbcSize: Assignment Branch Condition size for `remove_blank_lines_between_link_refs` is too high. [<12, 22, 13> 28.23/17]", 1324661552], - [188, 7, 1270, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `remove_blank_lines_between_link_refs` is too high. [9/7]", 1324661552], - [188, 7, 1270, "Metrics/MethodLength: Method has too many lines. [29/10]", 1324661552], - [188, 7, 1270, "Metrics/PerceivedComplexity: Perceived complexity for `remove_blank_lines_between_link_refs` is too high. [10/8]", 1324661552], - [207, 15, 54, "Metrics/BlockNesting: Avoid more than 3 levels of block nesting.", 831575245] - ], - "lib/markdown/merge/wrapper_support.rb:1758973456": [ - [6, 5, 7266, "Metrics/ModuleLength: Module has too many lines. [161/100]", 2849920033], - [29, 7, 1214, "Metrics/MethodLength: Method has too many lines. [19/10]", 1280688859], - [29, 19, 250, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [8/5]", 4150728370], - [78, 7, 1452, "Metrics/MethodLength: Method has too many lines. [18/10]", 3670315588], - [78, 43, 286, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [8/5]", 3809385913], - [127, 7, 592, "Metrics/MethodLength: Method has too many lines. [12/10]", 3827282628] - ], - "markdown-merge.gemspec:3964894686": [ - [128, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 2821357214], - [143, 121, 50, "Layout/LineLength: Line is too long. [170/120]", 3888612416], - [144, 121, 29, "Layout/LineLength: Line is too long. [149/120]", 981994949], - [151, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 4229808912] - ], - "spec/fixtures_integration_spec.rb:762722167": [ - [3, 1, 17188, "Metrics/BlockLength: Block has too many lines. [403/25]", 3093659447], - [41, 121, 5, "Layout/LineLength: Line is too long. [125/120]", 180560828] - ] -} diff --git a/gems/markdown-merge/Gemfile b/gems/markdown-merge/Gemfile index 987a63f56..06fd95153 100644 --- a/gems/markdown-merge/Gemfile +++ b/gems/markdown-merge/Gemfile @@ -6,7 +6,7 @@ # kettle-jem will then preserve content between those markers across template runs. # kettle-jem:unfreeze -source "https://gem.coop" +source 'https://gem.coop' git_source(:codeberg) { |repo_name| "https://codeberg.org/#{repo_name}" } git_source(:gitlab) { |repo_name| "https://gitlab.com/#{repo_name}" } @@ -19,58 +19,54 @@ git_source(:gitlab) { |repo_name| "https://gitlab.com/#{repo_name}" } gemspec # Local workspace dependency wiring for *_local.gemfile overrides -nomono_requirements = ["~> 1.0", ">= 1.0.8"] -gem "nomono", *nomono_requirements, require: false # ruby >= 2.2 +nomono_requirements = ['~> 1.0', '>= 1.0.8'] +gem 'nomono', *nomono_requirements, require: false # ruby >= 2.2 # Direct sibling dependencies (env-switched via STRUCTUREDMERGE_DEV) direct_sibling_gems = %w[ ast-merge tree_haver ] -direct_sibling_dev = ENV.fetch("STRUCTUREDMERGE_DEV", "") +direct_sibling_dev = ENV.fetch('STRUCTUREDMERGE_DEV', '') direct_sibling_local = !direct_sibling_dev.empty? && !%w[false 0 no off].include?(direct_sibling_dev.downcase) -direct_sibling_templating = ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? +direct_sibling_templating = ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero?) - direct_sibling_dev_was_set = ENV.key?("STRUCTUREDMERGE_DEV") - direct_sibling_dev_original = ENV.fetch("STRUCTUREDMERGE_DEV", nil) + (direct_sibling_local || + ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) + direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') + direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) begin nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path("Gemfile.lock", __dir__) + nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == "nomono" } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - if nomono_locked - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] - end - end - Kernel.send(:gem, "nomono", *nomono_activation_requirements) - require "nomono/bundler" - if direct_sibling_templating && !direct_sibling_local - ENV["STRUCTUREDMERGE_DEV"] = File.expand_path("..", __dir__) + Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked end + Kernel.send(:gem, 'nomono', *nomono_activation_requirements) + require 'nomono/bundler' + ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local eval_nomono_gems( gems: direct_sibling_gems, - prefix: "STRUCTUREDMERGE", - path_env: "STRUCTUREDMERGE_DEV", - root: ["src", "my", "structuredmerge"] + prefix: 'STRUCTUREDMERGE', + path_env: 'STRUCTUREDMERGE_DEV', + root: %w[src my structuredmerge] ) rescue LoadError - warn "Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies." + warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' ensure if direct_sibling_templating && !direct_sibling_local if direct_sibling_dev_was_set - ENV["STRUCTUREDMERGE_DEV"] = direct_sibling_dev_original + ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original else - ENV.delete("STRUCTUREDMERGE_DEV") + ENV.delete('STRUCTUREDMERGE_DEV') end end end @@ -197,28 +193,28 @@ if direct_sibling_gems.any? && end # Use released TSLP with the Ruby ABI platform-gem fix. -gem "tree_sitter_language_pack", "~> 1.13", ">= 1.13.3" +gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' # Templating (env-switched: STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local paths) -eval_gemfile "gemfiles/modular/templating.gemfile" if ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? +eval_gemfile 'gemfiles/modular/templating.gemfile' if ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? # Debugging -eval_gemfile "gemfiles/modular/debug.gemfile" +eval_gemfile 'gemfiles/modular/debug.gemfile' # Code Coverage (env-switched: KETTLE_DEV_DEV=true for local paths) -eval_gemfile "gemfiles/modular/coverage.gemfile" +eval_gemfile 'gemfiles/modular/coverage.gemfile' # Linting -eval_gemfile "gemfiles/modular/style.gemfile" +eval_gemfile 'gemfiles/modular/style.gemfile' # Documentation -eval_gemfile "gemfiles/modular/documentation.gemfile" +eval_gemfile 'gemfiles/modular/documentation.gemfile' # Optional -eval_gemfile "gemfiles/modular/optional.gemfile" +eval_gemfile 'gemfiles/modular/optional.gemfile' ### Std Lib Extracted Gems -eval_gemfile "gemfiles/modular/x_std_libs.gemfile" +eval_gemfile 'gemfiles/modular/x_std_libs.gemfile' # See unlocked_deps appraisal for more details on irb inclusion -gem "irb", "~> 1.17" # ruby >= 2.7 +gem 'irb', '~> 1.17' # ruby >= 2.7 diff --git a/gems/markdown-merge/Gemfile.lock b/gems/markdown-merge/Gemfile.lock index c389e115c..a4fef0b87 100644 --- a/gems/markdown-merge/Gemfile.lock +++ b/gems/markdown-merge/Gemfile.lock @@ -6,38 +6,6 @@ PATH tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly - specs: - ast-crispr-markdown-markly (7.1.0) - ast-crispr (= 7.1.0) - markly-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism - specs: - ast-crispr-ruby-prism (7.1.0) - ast-crispr (= 7.1.0) - prism-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr - specs: - ast-crispr (7.1.0) - ast-merge (= 7.1.0) - service_actor (~> 3.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git - specs: - ast-merge-git (7.1.0) - ast-merge (= 7.1.0) - json-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - PATH remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge specs: @@ -47,193 +15,6 @@ PATH tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template - specs: - ast-template (7.1.0) - ast-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge - specs: - bash-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge - specs: - binary-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge - specs: - citrus-toml-merge (7.1.0) - toml-merge (= 7.1.0) - toml-rb (~> 4.1) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge - specs: - commonmarker-merge (7.1.0) - commonmarker (~> 2.2) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge - specs: - dotenv-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge - specs: - go-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge - specs: - json-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem - specs: - kettle-jem (7.1.0) - addressable (>= 2.8, < 3) - ast-crispr-markdown-markly (= 7.1.0) - ast-crispr-ruby-prism (= 7.1.0) - ast-merge (= 7.1.0) - bash-merge (= 7.1.0) - citrus-toml-merge (= 7.1.0) - commonmarker-merge (= 7.1.0) - dotenv-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-dev (~> 2.3, >= 2.3.5) - kettle-rb (~> 0.1, >= 0.1.4) - kramdown-merge (= 7.1.0) - markdown-merge (= 7.1.0) - markly-merge (= 7.1.0) - prism-merge (= 7.1.0) - psych-merge (= 7.1.0) - rbs (>= 3.10) - rbs-merge (= 7.1.0) - ruby-merge (= 7.1.0) - token-resolver (~> 2.0, >= 2.0.4) - toml-merge (= 7.1.0) - toml-rb (~> 4.2) - tree_haver (= 7.1.0) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge - specs: - kramdown-merge (7.1.0) - kramdown (~> 2.5) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge - specs: - markly-merge (7.1.0) - markdown-merge (= 7.1.0) - markly (~> 0.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge - specs: - parslet-toml-merge (7.1.0) - toml (~> 0.3) - toml-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge - specs: - plain-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge - specs: - prism-merge (7.1.0) - prism (~> 1.6) - ruby-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge - specs: - psych-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge - specs: - rbs-merge (7.1.0) - ast-merge (= 7.1.0) - rbs (>= 3.10) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge - specs: - ruby-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge - specs: - rust-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb - specs: - smorg-rb (7.1.0) - ast-merge (= 7.1.0) - ast-merge-git (= 7.1.0) - diff-lcs (~> 1.5) - go-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-jem (= 7.1.0) - markly-merge (= 7.1.0) - plain-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge - specs: - toml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - PATH remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver specs: @@ -243,46 +24,6 @@ PATH tree_sitter_language_pack (>= 1.13.2, < 2.0) version_gem (~> 1.1, >= 1.1.9) -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge - specs: - typescript-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge - specs: - yaml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge - specs: - zip-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /var/home/pboling/src/my/kettle-dev/kettle-drift - specs: - kettle-drift (1.0.6) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /var/home/pboling/src/my/kettle-dev/kettle-soup-cover - specs: - kettle-soup-cover (3.0.4) - kettle-wash (~> 0.1, >= 0.1.0) - simplecov (>= 1.0) - simplecov-cobertura (>= 4.0) - simplecov-console (~> 0.9, >= 0.9.5) - simplecov-rcov (~> 0.3, >= 0.3.7) - simplecov_lcov_formatter (~> 0.9, >= 0.9.0) - GEM remote: https://gem.coop/ specs: @@ -307,10 +48,6 @@ GEM cgi (0.5.2) citrus (3.0.2) cmdparse (3.0.7) - commonmarker (2.9.0-aarch64-linux) - commonmarker (2.9.0-aarch64-linux-musl) - commonmarker (2.9.0-arm64-darwin) - commonmarker (2.9.0-x86_64-linux) concurrent-ruby (1.3.8) date (3.5.1) debug (1.11.1) @@ -374,6 +111,13 @@ GEM kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) kettle-rb (0.1.5) + kettle-soup-cover (3.0.4) + kettle-wash (~> 0.1, >= 0.1.0) + simplecov (>= 1.0) + simplecov-cobertura (>= 4.0) + simplecov-console (~> 0.9, >= 0.9.5) + simplecov-rcov (~> 0.3, >= 0.3.7) + simplecov_lcov_formatter (~> 0.9, >= 0.9.0) kettle-test (2.0.12) appraisal2 (~> 3.0, >= 3.0.6) backports (~> 3.0) @@ -394,7 +138,6 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) - markly (0.16.0) mutex_m (0.3.0) nokogiri (1.19.4-aarch64-linux-gnu) racc (~> 1.4) @@ -557,8 +300,6 @@ GEM ruby-progressbar (1.13.0) ruby_engine (2.0.3) ruby_version (1.0.3) - service_actor (3.9.4) - zeitwerk (>= 1.0) silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) @@ -613,11 +354,6 @@ GEM token-resolver (2.0.5) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.14) - toml (0.3.0) - parslet (>= 1.8.0, < 3.0.0) - toml-rb (4.2.0) - citrus (~> 3.0, > 3.0) - racc (~> 1.7) tree_sitter_language_pack (1.13.3-aarch64-linux) sorbet-runtime (~> 0.5) tree_sitter_language_pack (1.13.3-arm64-darwin) @@ -672,46 +408,25 @@ DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) appraisal2-rubocop (~> 1.0, >= 1.0.0) - ast-crispr! - ast-crispr-markdown-markly! - ast-crispr-ruby-prism! ast-merge! - ast-merge-git! - ast-template! - bash-merge! benchmark (~> 0.5, >= 0.5.0) - binary-merge! bundler-audit (~> 0.9.3) cgi (~> 0.5) - citrus-toml-merge! - commonmarker-merge! debug (>= 1.1) - dotenv-merge! erb (~> 6.0, >= 6.0.6) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.0) - go-merge! irb (~> 1.17) - json-merge! kettle-dev (~> 2.0, >= 2.2.25) - kettle-drift! - kettle-jem! - kettle-soup-cover! + kettle-soup-cover (~> 3.0, >= 3.0.3) kettle-test (~> 2.0, >= 2.0.9) kramdown (~> 2.5, >= 2.5.2) - kramdown-merge! kramdown-parser-gfm (~> 1.1) markdown-merge! - markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) - parslet-toml-merge! - plain-merge! - prism-merge! - psych-merge! rake (~> 13.0) rbs (>= 3.0) - rbs-merge! rdoc (~> 6.11) reek (~> 6.5, >= 6.5.0) require_bench (~> 1.0, >= 1.0.4) @@ -722,27 +437,20 @@ DEPENDENCIES rubocop-on-rbs (~> 2.0, >= 2.0.0) rubocop-packaging (~> 0.6, >= 0.6.0) rubocop-ruby3_2 (~> 3.0, >= 3.0.6) - ruby-merge! ruby-progressbar (~> 1.13) - rust-merge! - smorg-rb! standard (~> 1.56, >= 1.56.0) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) - toml-merge! tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) - typescript-merge! webrick (~> 1.9) yaml-converter (~> 0.2, >= 0.2.3) - yaml-merge! yard (~> 0.9, >= 0.9.45) yard-fence (~> 0.9, >= 0.9.6) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) yard-timekeeper (~> 0.2, >= 0.2.4) yard-yaml (~> 0.2, >= 0.2.3) - zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af @@ -750,34 +458,20 @@ CHECKSUMS appraisal2 (3.2.0) sha256=ccd0b767ac4060cd7af6d16747459b6990f49c39c7b4fb1f7d1146b1e97c492f appraisal2-rubocop (1.0.0) sha256=b71410fbb014befda5340605a605b7f6f3f012739baf0acc5b4351b592c3258d ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 - ast-crispr (7.1.0) - ast-crispr-markdown-markly (7.1.0) - ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) - ast-merge-git (7.1.0) - ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 - bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd - binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 - citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 - commonmarker (2.9.0-aarch64-linux) sha256=e2b4aadb9a2cfa4e206582641ce3a49465549ac1ed4c289fdd63b78d8f24579c - commonmarker (2.9.0-aarch64-linux-musl) sha256=1cf4d2821f2a7e64945f1ed7c4eeced586fdb27ea7fe7337788802cf8f57cfca - commonmarker (2.9.0-arm64-darwin) sha256=1748dbfa4f5813b0d2a14bb4bbfa65a4ec293aa1c825016d60029ee0e132b046 - commonmarker (2.9.0-x86_64-linux) sha256=8cfe92970eef585a19ddf6613224b91cab64d6029834661bda801f877c9c7f43 - commonmarker-merge (7.1.0) concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 - dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -790,28 +484,21 @@ CHECKSUMS gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f - go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 - json-merge (7.1.0) kettle-dev (2.3.9) - kettle-drift (1.0.6) - kettle-jem (7.1.0) kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f kettle-soup-cover (3.0.4) kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa - kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 markdown-merge (7.1.0) - markly (0.16.0) sha256=6f70d79e385b1efc9e171f74c81628826259039fe6c778e03c3924c71dac5511 - markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-aarch64-linux-gnu) sha256=1269fb644a6de405057a53dd5c762b1209b43ca7424f839454d3dbc677c31a8f nokogiri (1.19.4-aarch64-linux-musl) sha256=35c65b9ce72b3bb03207bdbe7067915019dc18c1b9b59139684bd6690fdd01af @@ -825,20 +512,15 @@ CHECKSUMS parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 - parslet-toml-merge (7.1.0) - plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 - prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 - psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 - rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb @@ -873,19 +555,15 @@ CHECKSUMS rubocop-rspec_rails (2.32.0) sha256=4a0d641c72f6ebb957534f539d9d0a62c47abd8ce0d0aeee1ef4701e892a9100 rubocop-ruby3_2 (3.0.7) sha256=f53dd6d286fb05186214fc6ec116783e7f837030918e8931c05de773e98f8466 rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 - ruby-merge (7.1.0) ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 - rust-merge (7.1.0) - service_actor (3.9.4) sha256=e63b523630b9a7e62959b2a90113b08d2565b5de9c148557b281ef847c9539ce silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed - smorg-rb (7.1.0) sorbet-runtime (0.6.13351) sha256=f8fee17c6e3edf835dc6823d26afb9a7c8969c6710d1fabe2fb43f4e0c15c64f standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b @@ -900,22 +578,17 @@ CHECKSUMS timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.5) sha256=b852f924287ffb58a440856e862b056c8ad97e74b4b2526cee43e0771f40c25c - toml (0.3.0) sha256=0a91d0f76a9036e84e44f95693b12f58d358c1df3ac8e3b5271f2056ecc6e4b9 - toml-merge (7.1.0) - toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-aarch64-linux) sha256=55ffc7c87868cb45658338363d9eba51b4a8b0259aa88e4de368d2bd1d52fea4 tree_sitter_language_pack (1.13.3-arm64-darwin) sha256=bc2498db605f212a1dbd2465ed3f65190d7da786f6ed5d30fcf958121aeb4a5c tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 - typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 webrick (1.9.2) sha256=beb4a15fc474defed24a3bda4ffd88a490d517c9e4e6118c3edce59e45864131 yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 - yaml-merge (7.1.0) yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd @@ -923,7 +596,6 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 - zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH diff --git a/gems/markdown-merge/Rakefile b/gems/markdown-merge/Rakefile index 2be51dd98..335c98aab 100644 --- a/gems/markdown-merge/Rakefile +++ b/gems/markdown-merge/Rakefile @@ -130,23 +130,23 @@ end ### DUPLICATE DRIFT TASKS begin - require "kettle/drift" + require 'kettle/drift' Kettle::Drift.install_tasks rescue LoadError - desc("(stub) kettle:drift:check is unavailable") - task("kettle:drift:check") do + desc('(stub) kettle:drift:check is unavailable') + task('kettle:drift:check') do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc("(stub) kettle:drift:update is unavailable") - task("kettle:drift:update") do + desc('(stub) kettle:drift:update is unavailable') + task('kettle:drift:update') do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc("(stub) kettle:drift:force_update is unavailable") - task("kettle:drift:force_update") do + desc('(stub) kettle:drift:force_update is unavailable') + task('kettle:drift:force_update') do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc("(stub) kettle:drift is unavailable") - task("kettle:drift" => "kettle:drift:update") + desc('(stub) kettle:drift is unavailable') + task('kettle:drift' => 'kettle:drift:update') end ### TEMPLATING TASKS diff --git a/gems/markdown-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile b/gems/markdown-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile index dec650815..b8392fab0 100644 --- a/gems/markdown-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile +++ b/gems/markdown-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.1 -gem "benchmark", "~> 0.5", ">= 0.5.0" # Removed from Std Lib in Ruby 4.0 +gem 'benchmark', '~> 0.5', '>= 0.5.0' # Removed from Std Lib in Ruby 4.0 diff --git a/gems/markdown-merge/gemfiles/modular/benchmark/vHEAD.gemfile b/gems/markdown-merge/gemfiles/modular/benchmark/vHEAD.gemfile index e1eb20c5e..af214aafa 100644 --- a/gems/markdown-merge/gemfiles/modular/benchmark/vHEAD.gemfile +++ b/gems/markdown-merge/gemfiles/modular/benchmark/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.1 -gem "benchmark", github: "ruby/benchmark", branch: "master" +gem 'benchmark', github: 'ruby/benchmark', branch: 'master' diff --git a/gems/markdown-merge/gemfiles/modular/cgi/r4/v0.5.gemfile b/gems/markdown-merge/gemfiles/modular/cgi/r4/v0.5.gemfile index 19ed967c3..17ad97260 100644 --- a/gems/markdown-merge/gemfiles/modular/cgi/r4/v0.5.gemfile +++ b/gems/markdown-merge/gemfiles/modular/cgi/r4/v0.5.gemfile @@ -1 +1 @@ -gem "cgi", "~> 0.5" +gem 'cgi', '~> 0.5' diff --git a/gems/markdown-merge/gemfiles/modular/cgi/vHEAD.gemfile b/gems/markdown-merge/gemfiles/modular/cgi/vHEAD.gemfile index ef8b816ce..650fbf033 100644 --- a/gems/markdown-merge/gemfiles/modular/cgi/vHEAD.gemfile +++ b/gems/markdown-merge/gemfiles/modular/cgi/vHEAD.gemfile @@ -1 +1 @@ -gem "cgi", ">= 0.5" +gem 'cgi', '>= 0.5' diff --git a/gems/markdown-merge/gemfiles/modular/coverage.gemfile b/gems/markdown-merge/gemfiles/modular/coverage.gemfile index 52d737872..b93014b6b 100644 --- a/gems/markdown-merge/gemfiles/modular/coverage.gemfile +++ b/gems/markdown-merge/gemfiles/modular/coverage.gemfile @@ -4,11 +4,11 @@ # Set KETTLE_DEV_DEV=true for local development with path-based dependencies. # When false (default / CI), remote released gems are used. -if ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false").zero? +if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? # Coverage (remote/released) platform :mri do - gem "kettle-soup-cover", "~> 3.0", ">= 3.0.3", require: false + gem 'kettle-soup-cover', '~> 3.0', '>= 3.0.3', require: false end else - eval_gemfile "coverage_local.gemfile" + eval_gemfile 'coverage_local.gemfile' end diff --git a/gems/markdown-merge/gemfiles/modular/coverage_local.gemfile b/gems/markdown-merge/gemfiles/modular/coverage_local.gemfile index bac3538d7..647eab77a 100644 --- a/gems/markdown-merge/gemfiles/modular/coverage_local.gemfile +++ b/gems/markdown-merge/gemfiles/modular/coverage_local.gemfile @@ -11,21 +11,19 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] -nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) +nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] +nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == "nomono" } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - if nomono_locked - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] - end + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked end -Kernel.send(:gem, "nomono", *nomono_activation_requirements) -require "nomono/bundler" +Kernel.send(:gem, 'nomono', *nomono_activation_requirements) +require 'nomono/bundler' local_gems = %w[kettle-dev kettle-test kettle-soup-cover kettle-drift] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) @@ -35,21 +33,21 @@ local_gems_to_eval = local_gems - %w[markdown-merge] - declared_gems platform :mri do eval_nomono_gems( gems: local_gems_to_eval, - prefix: "KETTLE_DEV", - path_env: "KETTLE_DEV_DEV", - vendored_gems_env: "VENDORED_GEMS", - vendor_gem_dir_env: "VENDOR_GEM_DIR", - debug_env: "KETTLE_DEV_DEBUG" + prefix: 'KETTLE_DEV', + path_env: 'KETTLE_DEV_DEV', + vendored_gems_env: 'VENDORED_GEMS', + vendor_gem_dir_env: 'VENDOR_GEM_DIR', + debug_env: 'KETTLE_DEV_DEBUG' ) - if ENV.fetch("GALTZO_FLOSS_DEV", "false").casecmp("false") != 0 + if ENV.fetch('GALTZO_FLOSS_DEV', 'false').casecmp('false') != 0 eval_nomono_gems( gems: %w[turbo_tests2], - prefix: "GALTZO_FLOSS", - path_env: "GALTZO_FLOSS_DEV", - vendored_gems_env: "GALTZO_FLOSS_VENDORED_GEMS", - vendor_gem_dir_env: "GALTZO_FLOSS_VENDOR_GEM_DIR", - debug_env: "GALTZO_FLOSS_DEBUG" + prefix: 'GALTZO_FLOSS', + path_env: 'GALTZO_FLOSS_DEV', + vendored_gems_env: 'GALTZO_FLOSS_VENDORED_GEMS', + vendor_gem_dir_env: 'GALTZO_FLOSS_VENDOR_GEM_DIR', + debug_env: 'GALTZO_FLOSS_DEBUG' ) end end diff --git a/gems/markdown-merge/gemfiles/modular/debug.gemfile b/gems/markdown-merge/gemfiles/modular/debug.gemfile index 4e15b1a3a..eed8d4d1e 100644 --- a/gems/markdown-merge/gemfiles/modular/debug.gemfile +++ b/gems/markdown-merge/gemfiles/modular/debug.gemfile @@ -13,10 +13,10 @@ platform :mri do # Debugging - Ensure ENV["DEBUG"] == "true" to use debuggers within spec suite # Use binding.break, binding.b, or debugger in code - gem "debug", ">= 1.1" # ruby >= 2.7 + gem 'debug', '>= 1.1' # ruby >= 2.7 # Dev Console - Binding.pry - Irb replacement # gem "pry", "~> 0.14" # ruby >= 2.0 end -gem "gem_bench", "~> 2.0", ">= 2.0.5" +gem 'gem_bench', '~> 2.0', '>= 2.0.5' diff --git a/gems/markdown-merge/gemfiles/modular/documentation.gemfile b/gems/markdown-merge/gemfiles/modular/documentation.gemfile index d8215416e..9d4535f12 100644 --- a/gems/markdown-merge/gemfiles/modular/documentation.gemfile +++ b/gems/markdown-merge/gemfiles/modular/documentation.gemfile @@ -7,20 +7,20 @@ # # Documentation -gem "kramdown", "~> 2.5", ">= 2.5.2", require: false # Ruby >= 2.5 -gem "kramdown-parser-gfm", "~> 1.1", require: false # Ruby >= 2.3 -gem "yaml-converter", "~> 0.2", ">= 0.2.3", require: false # Ruby >= 3.2 -gem "yard", "~> 0.9", ">= 0.9.45", require: false -gem "yard-junk", "~> 0.1", ">= 0.1.0", require: false # Ruby >= 3.1 -gem "yard-relative_markdown_links", "~> 0.6", require: false +gem 'kramdown', '~> 2.5', '>= 2.5.2', require: false # Ruby >= 2.5 +gem 'kramdown-parser-gfm', '~> 1.1', require: false # Ruby >= 2.3 +gem 'yaml-converter', '~> 0.2', '>= 0.2.3', require: false # Ruby >= 3.2 +gem 'yard', '~> 0.9', '>= 0.9.45', require: false +gem 'yard-junk', '~> 0.1', '>= 0.1.0', require: false # Ruby >= 3.1 +gem 'yard-relative_markdown_links', '~> 0.6', require: false -if ENV.fetch("GALTZO_FLOSS_DEV", "false").casecmp("false").zero? - gem "yard-fence", "~> 0.9", ">= 0.9.6", require: false # Ruby >= 3.2 - gem "yard-timekeeper", "~> 0.2", ">= 0.2.4", require: false - gem "yard-yaml", "~> 0.2", ">= 0.2.3", require: false +if ENV.fetch('GALTZO_FLOSS_DEV', 'false').casecmp('false').zero? + gem 'yard-fence', '~> 0.9', '>= 0.9.6', require: false # Ruby >= 3.2 + gem 'yard-timekeeper', '~> 0.2', '>= 0.2.4', require: false + gem 'yard-yaml', '~> 0.2', '>= 0.2.3', require: false else - eval_gemfile "documentation_local.gemfile" + eval_gemfile 'documentation_local.gemfile' end # Std Lib extractions -gem "rdoc", "~> 6.11", require: false unless ENV.fetch("KJ_FRAMEWORK_MATRIX_GEM", "") == "rdoc" +gem 'rdoc', '~> 6.11', require: false unless ENV.fetch('KJ_FRAMEWORK_MATRIX_GEM', '') == 'rdoc' diff --git a/gems/markdown-merge/gemfiles/modular/documentation_local.gemfile b/gems/markdown-merge/gemfiles/modular/documentation_local.gemfile index 61e166aa0..598b23cdd 100644 --- a/gems/markdown-merge/gemfiles/modular/documentation_local.gemfile +++ b/gems/markdown-merge/gemfiles/modular/documentation_local.gemfile @@ -11,21 +11,19 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] -nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) +nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] +nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == "nomono" } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - if nomono_locked - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] - end + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked end -Kernel.send(:gem, "nomono", *nomono_activation_requirements) -require "nomono/bundler" +Kernel.send(:gem, 'nomono', *nomono_activation_requirements) +require 'nomono/bundler' local_gems = %w[yard-fence yard-timekeeper yard-yaml] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) @@ -34,9 +32,9 @@ local_gems_to_eval = local_gems - %w[markdown-merge] - declared_gems # export GALTZO_FLOSS_DEV=/path/to/galtzo-floss eval_nomono_gems( gems: local_gems_to_eval, - prefix: "GALTZO_FLOSS", - path_env: "GALTZO_FLOSS_DEV", - vendored_gems_env: "GALTZO_FLOSS_VENDORED_GEMS", - vendor_gem_dir_env: "GALTZO_FLOSS_VENDOR_GEM_DIR", - debug_env: "GALTZO_FLOSS_DEBUG" + prefix: 'GALTZO_FLOSS', + path_env: 'GALTZO_FLOSS_DEV', + vendored_gems_env: 'GALTZO_FLOSS_VENDORED_GEMS', + vendor_gem_dir_env: 'GALTZO_FLOSS_VENDOR_GEM_DIR', + debug_env: 'GALTZO_FLOSS_DEBUG' ) diff --git a/gems/markdown-merge/gemfiles/modular/erb/r2/v3.0.gemfile b/gems/markdown-merge/gemfiles/modular/erb/r2/v3.0.gemfile index c03bd8d85..7c83a239b 100644 --- a/gems/markdown-merge/gemfiles/modular/erb/r2/v3.0.gemfile +++ b/gems/markdown-merge/gemfiles/modular/erb/r2/v3.0.gemfile @@ -1 +1 @@ -gem "erb", "~> 3.0" # ruby >= 2.7.0 +gem 'erb', '~> 3.0' # ruby >= 2.7.0 diff --git a/gems/markdown-merge/gemfiles/modular/erb/r3/v5.0.gemfile b/gems/markdown-merge/gemfiles/modular/erb/r3/v5.0.gemfile index 1bd029cc1..ec7ff451f 100644 --- a/gems/markdown-merge/gemfiles/modular/erb/r3/v5.0.gemfile +++ b/gems/markdown-merge/gemfiles/modular/erb/r3/v5.0.gemfile @@ -1 +1 @@ -gem "erb", "~> 6.0", ">= 6.0.6" # ruby >= 3.2.0 +gem 'erb', '~> 6.0', '>= 6.0.6' # ruby >= 3.2.0 diff --git a/gems/markdown-merge/gemfiles/modular/erb/r4/v5.0.gemfile b/gems/markdown-merge/gemfiles/modular/erb/r4/v5.0.gemfile index 1bd029cc1..ec7ff451f 100644 --- a/gems/markdown-merge/gemfiles/modular/erb/r4/v5.0.gemfile +++ b/gems/markdown-merge/gemfiles/modular/erb/r4/v5.0.gemfile @@ -1 +1 @@ -gem "erb", "~> 6.0", ">= 6.0.6" # ruby >= 3.2.0 +gem 'erb', '~> 6.0', '>= 6.0.6' # ruby >= 3.2.0 diff --git a/gems/markdown-merge/gemfiles/modular/erb/vHEAD.gemfile b/gems/markdown-merge/gemfiles/modular/erb/vHEAD.gemfile index 48fee4218..ea0101185 100644 --- a/gems/markdown-merge/gemfiles/modular/erb/vHEAD.gemfile +++ b/gems/markdown-merge/gemfiles/modular/erb/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 3.2 -gem "erb", github: "ruby/erb", branch: "master" +gem 'erb', github: 'ruby/erb', branch: 'master' diff --git a/gems/markdown-merge/gemfiles/modular/json/truffleruby_22_3.gemfile b/gems/markdown-merge/gemfiles/modular/json/truffleruby_22_3.gemfile index b0e69ab11..9b2f8d96a 100644 --- a/gems/markdown-merge/gemfiles/modular/json/truffleruby_22_3.gemfile +++ b/gems/markdown-merge/gemfiles/modular/json/truffleruby_22_3.gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -if RUBY_ENGINE == "truffleruby" && RUBY_ENGINE_VERSION.start_with?("22.3") +if RUBY_ENGINE == 'truffleruby' && RUBY_ENGINE_VERSION.start_with?('22.3') # TruffleRuby 22.3 ships the json default gem from its emulated MRI Ruby. - gem "json", "= 2.5.1" + gem 'json', '= 2.5.1' end diff --git a/gems/markdown-merge/gemfiles/modular/json/truffleruby_23_0.gemfile b/gems/markdown-merge/gemfiles/modular/json/truffleruby_23_0.gemfile index 7b2660a2b..d787a5ef4 100644 --- a/gems/markdown-merge/gemfiles/modular/json/truffleruby_23_0.gemfile +++ b/gems/markdown-merge/gemfiles/modular/json/truffleruby_23_0.gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -if RUBY_ENGINE == "truffleruby" && RUBY_ENGINE_VERSION.start_with?("23.0") +if RUBY_ENGINE == 'truffleruby' && RUBY_ENGINE_VERSION.start_with?('23.0') # TruffleRuby 23.0 ships the json default gem from its emulated MRI Ruby. - gem "json", "= 2.6.1" + gem 'json', '= 2.6.1' end diff --git a/gems/markdown-merge/gemfiles/modular/json/truffleruby_23_1.gemfile b/gems/markdown-merge/gemfiles/modular/json/truffleruby_23_1.gemfile index dfa21f2e4..d78486b0e 100644 --- a/gems/markdown-merge/gemfiles/modular/json/truffleruby_23_1.gemfile +++ b/gems/markdown-merge/gemfiles/modular/json/truffleruby_23_1.gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -if RUBY_ENGINE == "truffleruby" && RUBY_ENGINE_VERSION.start_with?("23.1") +if RUBY_ENGINE == 'truffleruby' && RUBY_ENGINE_VERSION.start_with?('23.1') # TruffleRuby 23.1 ships the json default gem from its emulated MRI Ruby. - gem "json", "= 2.6.3" + gem 'json', '= 2.6.3' end diff --git a/gems/markdown-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile b/gems/markdown-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile index 42e9d9bd4..e27f1bbae 100644 --- a/gems/markdown-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile +++ b/gems/markdown-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 -gem "mutex_m", "~> 0.2" +gem 'mutex_m', '~> 0.2' diff --git a/gems/markdown-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile b/gems/markdown-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile index 42e9d9bd4..e27f1bbae 100644 --- a/gems/markdown-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile +++ b/gems/markdown-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 -gem "mutex_m", "~> 0.2" +gem 'mutex_m', '~> 0.2' diff --git a/gems/markdown-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile b/gems/markdown-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile index 42e9d9bd4..e27f1bbae 100644 --- a/gems/markdown-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile +++ b/gems/markdown-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 -gem "mutex_m", "~> 0.2" +gem 'mutex_m', '~> 0.2' diff --git a/gems/markdown-merge/gemfiles/modular/mutex_m/vHEAD.gemfile b/gems/markdown-merge/gemfiles/modular/mutex_m/vHEAD.gemfile index 8af3b6fca..9dac2f6cb 100644 --- a/gems/markdown-merge/gemfiles/modular/mutex_m/vHEAD.gemfile +++ b/gems/markdown-merge/gemfiles/modular/mutex_m/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 (dependency of omniauth) -gem "mutex_m", github: "ruby/mutex_m", branch: "master" +gem 'mutex_m', github: 'ruby/mutex_m', branch: 'master' diff --git a/gems/markdown-merge/gemfiles/modular/optional.gemfile b/gems/markdown-merge/gemfiles/modular/optional.gemfile index 80bc45196..9ea429538 100644 --- a/gems/markdown-merge/gemfiles/modular/optional.gemfile +++ b/gems/markdown-merge/gemfiles/modular/optional.gemfile @@ -9,8 +9,8 @@ # Optional dependencies are not depended on directly, but may be used if present. # Required for curated binstubs generated by kettle-jem install -gem "rbs", ">= 3.0", require: false # ruby >= 3.1 +gem 'rbs', '>= 3.0', require: false # ruby >= 3.1 # Required for kettle-pre-release # URL parsing with Unicode support (falls back to URI if not available) -gem "addressable", ">= 2.8", "< 3" # ruby >= 2.2 +gem 'addressable', '>= 2.8', '< 3' # ruby >= 2.2 diff --git a/gems/markdown-merge/gemfiles/modular/rspec.gemfile b/gems/markdown-merge/gemfiles/modular/rspec.gemfile index 72fdf8b7f..2af210a41 100644 --- a/gems/markdown-merge/gemfiles/modular/rspec.gemfile +++ b/gems/markdown-merge/gemfiles/modular/rspec.gemfile @@ -1,4 +1,4 @@ -gem "rspec_junit_formatter", - github: "pboling/rspec_junit_formatter", - branch: "main", - ref: "9e6bcaaedd49477b62878ed568dc4ada5cc7cb5e" +gem 'rspec_junit_formatter', + github: 'pboling/rspec_junit_formatter', + branch: 'main', + ref: '9e6bcaaedd49477b62878ed568dc4ada5cc7cb5e' diff --git a/gems/markdown-merge/gemfiles/modular/runtime_heads.gemfile b/gems/markdown-merge/gemfiles/modular/runtime_heads.gemfile index 02f134c7f..ebf17c529 100644 --- a/gems/markdown-merge/gemfiles/modular/runtime_heads.gemfile +++ b/gems/markdown-merge/gemfiles/modular/runtime_heads.gemfile @@ -8,4 +8,4 @@ # Test against HEAD of runtime dependencies so we can proactively file bugs -eval_gemfile("x_std_libs/vHEAD.gemfile") +eval_gemfile('x_std_libs/vHEAD.gemfile') diff --git a/gems/markdown-merge/gemfiles/modular/stringio/r2/v3.0.gemfile b/gems/markdown-merge/gemfiles/modular/stringio/r2/v3.0.gemfile index e85bb18ee..3616f4e3a 100644 --- a/gems/markdown-merge/gemfiles/modular/stringio/r2/v3.0.gemfile +++ b/gems/markdown-merge/gemfiles/modular/stringio/r2/v3.0.gemfile @@ -2,4 +2,4 @@ # NOT SEMVER # Version 3.0.7 dropped support for Ruby <= 2.7 # Version 3.0.0 dropped support for Ruby <= 2.4 -gem "stringio", ">= 3.0" +gem 'stringio', '>= 3.0' diff --git a/gems/markdown-merge/gemfiles/modular/stringio/r3/v3.0.gemfile b/gems/markdown-merge/gemfiles/modular/stringio/r3/v3.0.gemfile index e85bb18ee..3616f4e3a 100644 --- a/gems/markdown-merge/gemfiles/modular/stringio/r3/v3.0.gemfile +++ b/gems/markdown-merge/gemfiles/modular/stringio/r3/v3.0.gemfile @@ -2,4 +2,4 @@ # NOT SEMVER # Version 3.0.7 dropped support for Ruby <= 2.7 # Version 3.0.0 dropped support for Ruby <= 2.4 -gem "stringio", ">= 3.0" +gem 'stringio', '>= 3.0' diff --git a/gems/markdown-merge/gemfiles/modular/stringio/r4/v3.0.gemfile b/gems/markdown-merge/gemfiles/modular/stringio/r4/v3.0.gemfile index e85bb18ee..3616f4e3a 100644 --- a/gems/markdown-merge/gemfiles/modular/stringio/r4/v3.0.gemfile +++ b/gems/markdown-merge/gemfiles/modular/stringio/r4/v3.0.gemfile @@ -2,4 +2,4 @@ # NOT SEMVER # Version 3.0.7 dropped support for Ruby <= 2.7 # Version 3.0.0 dropped support for Ruby <= 2.4 -gem "stringio", ">= 3.0" +gem 'stringio', '>= 3.0' diff --git a/gems/markdown-merge/gemfiles/modular/stringio/vHEAD.gemfile b/gems/markdown-merge/gemfiles/modular/stringio/vHEAD.gemfile index 5f2a74126..78f5f5d8a 100644 --- a/gems/markdown-merge/gemfiles/modular/stringio/vHEAD.gemfile +++ b/gems/markdown-merge/gemfiles/modular/stringio/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 (dependency of omniauth) -gem "stringio", github: "ruby/stringio", branch: "master" +gem 'stringio', github: 'ruby/stringio', branch: 'master' diff --git a/gems/markdown-merge/gemfiles/modular/style.gemfile b/gems/markdown-merge/gemfiles/modular/style.gemfile index 35de4dcd6..4dbcc02c0 100644 --- a/gems/markdown-merge/gemfiles/modular/style.gemfile +++ b/gems/markdown-merge/gemfiles/modular/style.gemfile @@ -9,23 +9,23 @@ # Style tasks run on the latest Ruby; RuboCop-LTS selects the compatibility # rules for the configured Ruby floor independently from task dependency floors. -gem "reek", "~> 6.5", ">= 6.5.0" +gem 'reek', '~> 6.5', '>= 6.5.0' platform :mri do - gem "appraisal2-rubocop", "~> 1.0", ">= 1.0.0", require: false - gem "rubocop-gradual", "~> 0.4", ">= 0.4.0" - gem "rubocop-minitest", "~> 0.40", ">= 0.40.0" - gem "rubocop-on-rbs", "~> 2.0", ">= 2.0.0" # ruby >= 3.2.0 + gem 'appraisal2-rubocop', '~> 1.0', '>= 1.0.0', require: false + gem 'rubocop-gradual', '~> 0.4', '>= 0.4.0' + gem 'rubocop-minitest', '~> 0.40', '>= 0.40.0' + gem 'rubocop-on-rbs', '~> 2.0', '>= 2.0.0' # ruby >= 3.2.0 # gem "rubocop", "~> 1.73", ">= 1.73.2" # constrained by standard - gem "rubocop-packaging", "~> 0.6", ">= 0.6.0" - gem "standard", "~> 1.56", ">= 1.56.0" + gem 'rubocop-packaging', '~> 0.6', '>= 0.6.0' + gem 'standard', '~> 1.56', '>= 1.56.0' - if ENV.fetch("RUBOCOP_LTS_LOCAL", "false").casecmp("false").zero? + if ENV.fetch('RUBOCOP_LTS_LOCAL', 'false').casecmp('false').zero? declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) - gem "rubocop-lts", "~> 24.2", ">= 24.2.1" unless declared_gems.include?("rubocop-lts") - gem "rubocop-lts-rspec", "~> 1.0", ">= 1.0.5" unless declared_gems.include?("rubocop-lts-rspec") - gem "rubocop-ruby3_2", "~> 3.0", ">= 3.0.6" unless declared_gems.include?("rubocop-ruby3_2") + gem 'rubocop-lts', '~> 24.2', '>= 24.2.1' unless declared_gems.include?('rubocop-lts') + gem 'rubocop-lts-rspec', '~> 1.0', '>= 1.0.5' unless declared_gems.include?('rubocop-lts-rspec') + gem 'rubocop-ruby3_2', '~> 3.0', '>= 3.0.6' unless declared_gems.include?('rubocop-ruby3_2') else - eval_gemfile("style_local.gemfile") + eval_gemfile('style_local.gemfile') end end diff --git a/gems/markdown-merge/gemfiles/modular/style_local.gemfile b/gems/markdown-merge/gemfiles/modular/style_local.gemfile index 9c53346ee..9ac180b1b 100644 --- a/gems/markdown-merge/gemfiles/modular/style_local.gemfile +++ b/gems/markdown-merge/gemfiles/modular/style_local.gemfile @@ -14,21 +14,19 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] -nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) +nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] +nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == "nomono" } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - if nomono_locked - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] - end + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked end -Kernel.send(:gem, "nomono", *nomono_activation_requirements) -require "nomono/bundler" +Kernel.send(:gem, 'nomono', *nomono_activation_requirements) +require 'nomono/bundler' local_gems = %w[rubocop-lts rubocop-lts-rspec rubocop-ruby3_2 standard-rubocop-lts] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) @@ -38,11 +36,11 @@ local_gems_to_eval = local_gems - %w[markdown-merge] - declared_gems platform :mri do eval_nomono_gems( gems: local_gems_to_eval, - prefix: "RUBOCOP_LTS", - path_env: "RUBOCOP_LTS_LOCAL", - vendored_gems_env: "VENDORED_GEMS", - vendor_gem_dir_env: "VENDOR_GEM_DIR", - debug_env: "RUBOCOP_LTS_DEBUG", - root: ["src", "rubocop-lts"] + prefix: 'RUBOCOP_LTS', + path_env: 'RUBOCOP_LTS_LOCAL', + vendored_gems_env: 'VENDORED_GEMS', + vendor_gem_dir_env: 'VENDOR_GEM_DIR', + debug_env: 'RUBOCOP_LTS_DEBUG', + root: %w[src rubocop-lts] ) end diff --git a/gems/markdown-merge/gemfiles/modular/templating.gemfile b/gems/markdown-merge/gemfiles/modular/templating.gemfile index 47138ffbb..a672de184 100644 --- a/gems/markdown-merge/gemfiles/modular/templating.gemfile +++ b/gems/markdown-merge/gemfiles/modular/templating.gemfile @@ -1,18 +1,18 @@ # frozen_string_literal: true -structuredmerge_remote = ENV.fetch("STRUCTUREDMERGE_DEV", "false").casecmp("false").zero? -kettle_remote = ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false").zero? +structuredmerge_remote = ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false').zero? +kettle_remote = ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? if structuredmerge_remote # Parser dependencies for released installs. - gem "tree_sitter_language_pack", "~> 1.13", ">= 1.13.3" + gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' # Merge recipes for released installs. - gem "kettle-jem", ">= 7.0" + gem 'kettle-jem', '>= 7.0' end if kettle_remote # Template/plugin checks for released installs. - gem "kettle-drift", "~> 1.0", ">= 1.0.6", require: false + gem 'kettle-drift', '~> 1.0', '>= 1.0.6', require: false end # Set STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local development with path-based dependencies. @@ -21,4 +21,4 @@ end # # Set KETTLE_DEV_DEV=/path/to/my for local development with Kettle plugin gems. # When false (default / CI), released Kettle plugin gems are used. -eval_gemfile "templating_local.gemfile" unless structuredmerge_remote && kettle_remote +eval_gemfile 'templating_local.gemfile' unless structuredmerge_remote && kettle_remote diff --git a/gems/markdown-merge/gemfiles/modular/templating_local.gemfile b/gems/markdown-merge/gemfiles/modular/templating_local.gemfile index ddaba77fd..586e485d9 100644 --- a/gems/markdown-merge/gemfiles/modular/templating_local.gemfile +++ b/gems/markdown-merge/gemfiles/modular/templating_local.gemfile @@ -12,21 +12,19 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] -nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) +nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] +nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == "nomono" } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - if nomono_locked - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] - end + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked end -Kernel.send(:gem, "nomono", *nomono_activation_requirements) -require "nomono/bundler" +Kernel.send(:gem, 'nomono', *nomono_activation_requirements) +require 'nomono/bundler' structuredmerge_local_gems = %w[ tree_haver @@ -69,25 +67,25 @@ structuredmerge_local_gems_to_eval = structuredmerge_local_gems - %w[markdown-me kettle_dev_local_gems_to_eval = kettle_dev_local_gems - %w[markdown-merge] - declared_gems platform :mri do - if ENV.fetch("STRUCTUREDMERGE_DEV", "false").casecmp("false") != 0 + if ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false') != 0 eval_nomono_gems( gems: structuredmerge_local_gems_to_eval, - prefix: "STRUCTUREDMERGE", - path_env: "STRUCTUREDMERGE_DEV", - vendored_gems_env: "VENDORED_GEMS", - vendor_gem_dir_env: "VENDOR_GEM_DIR", - debug_env: "STRUCTUREDMERGE_DEBUG" + prefix: 'STRUCTUREDMERGE', + path_env: 'STRUCTUREDMERGE_DEV', + vendored_gems_env: 'VENDORED_GEMS', + vendor_gem_dir_env: 'VENDOR_GEM_DIR', + debug_env: 'STRUCTUREDMERGE_DEBUG' ) end - if ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false") != 0 + if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false') != 0 eval_nomono_gems( gems: kettle_dev_local_gems_to_eval, - prefix: "KETTLE_DEV", - path_env: "KETTLE_DEV_DEV", - vendored_gems_env: "VENDORED_GEMS", - vendor_gem_dir_env: "VENDOR_GEM_DIR", - debug_env: "KETTLE_DEV_DEBUG" + prefix: 'KETTLE_DEV', + path_env: 'KETTLE_DEV_DEV', + vendored_gems_env: 'VENDORED_GEMS', + vendor_gem_dir_env: 'VENDOR_GEM_DIR', + debug_env: 'KETTLE_DEV_DEBUG' ) end end diff --git a/gems/markdown-merge/gemfiles/modular/webrick/r4/v1.9.gemfile b/gems/markdown-merge/gemfiles/modular/webrick/r4/v1.9.gemfile index eaab4a473..b1329ba84 100644 --- a/gems/markdown-merge/gemfiles/modular/webrick/r4/v1.9.gemfile +++ b/gems/markdown-merge/gemfiles/modular/webrick/r4/v1.9.gemfile @@ -1 +1 @@ -gem "webrick", "~> 1.9" +gem 'webrick', '~> 1.9' diff --git a/gems/markdown-merge/gemfiles/modular/webrick/vHEAD.gemfile b/gems/markdown-merge/gemfiles/modular/webrick/vHEAD.gemfile index 8a789b634..c7e6f81a1 100644 --- a/gems/markdown-merge/gemfiles/modular/webrick/vHEAD.gemfile +++ b/gems/markdown-merge/gemfiles/modular/webrick/vHEAD.gemfile @@ -1 +1 @@ -gem "webrick", ">= 1.9" +gem 'webrick', '>= 1.9' diff --git a/gems/markdown-merge/gemfiles/modular/x_std_libs.gemfile b/gems/markdown-merge/gemfiles/modular/x_std_libs.gemfile index 77aad43f2..b1f43c097 100644 --- a/gems/markdown-merge/gemfiles/modular/x_std_libs.gemfile +++ b/gems/markdown-merge/gemfiles/modular/x_std_libs.gemfile @@ -1,12 +1,12 @@ ### Std Lib Extracted Gems ruby_version = Gem::Version.new(RUBY_VERSION) -if ruby_version >= Gem::Version.new("4.0") - eval_gemfile "x_std_libs/r4/libs.gemfile" -elsif ruby_version >= Gem::Version.new("3.2") - eval_gemfile "x_std_libs/r3/libs.gemfile" -elsif ruby_version >= Gem::Version.new("3.1") - eval_gemfile "x_std_libs/r3.1/libs.gemfile" +if ruby_version >= Gem::Version.new('4.0') + eval_gemfile 'x_std_libs/r4/libs.gemfile' +elsif ruby_version >= Gem::Version.new('3.2') + eval_gemfile 'x_std_libs/r3/libs.gemfile' +elsif ruby_version >= Gem::Version.new('3.1') + eval_gemfile 'x_std_libs/r3.1/libs.gemfile' else - eval_gemfile "x_std_libs/r2/libs.gemfile" + eval_gemfile 'x_std_libs/r2/libs.gemfile' end diff --git a/gems/markdown-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile b/gems/markdown-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile index 441c4f03a..16a5e3d70 100644 --- a/gems/markdown-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile +++ b/gems/markdown-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile @@ -1,3 +1,3 @@ -eval_gemfile "../../erb/r2/v3.0.gemfile" -eval_gemfile "../../mutex_m/r2/v0.3.gemfile" -eval_gemfile "../../stringio/r2/v3.0.gemfile" +eval_gemfile '../../erb/r2/v3.0.gemfile' +eval_gemfile '../../mutex_m/r2/v0.3.gemfile' +eval_gemfile '../../stringio/r2/v3.0.gemfile' diff --git a/gems/markdown-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile b/gems/markdown-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile index c293a3ddd..220ff95c1 100644 --- a/gems/markdown-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile +++ b/gems/markdown-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile @@ -1,3 +1,3 @@ -eval_gemfile "../../erb/r3/v5.0.gemfile" -eval_gemfile "../../mutex_m/r3/v0.3.gemfile" -eval_gemfile "../../stringio/r3/v3.0.gemfile" +eval_gemfile '../../erb/r3/v5.0.gemfile' +eval_gemfile '../../mutex_m/r3/v0.3.gemfile' +eval_gemfile '../../stringio/r3/v3.0.gemfile' diff --git a/gems/markdown-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile b/gems/markdown-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile index eb5574247..e2f6501eb 100644 --- a/gems/markdown-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile +++ b/gems/markdown-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile @@ -1,6 +1,6 @@ -eval_gemfile "../../erb/r4/v5.0.gemfile" -eval_gemfile "../../mutex_m/r4/v0.3.gemfile" -eval_gemfile "../../stringio/r4/v3.0.gemfile" -eval_gemfile "../../benchmark/r4/v0.5.gemfile" -eval_gemfile "../../cgi/r4/v0.5.gemfile" -eval_gemfile "../../webrick/r4/v1.9.gemfile" +eval_gemfile '../../erb/r4/v5.0.gemfile' +eval_gemfile '../../mutex_m/r4/v0.3.gemfile' +eval_gemfile '../../stringio/r4/v3.0.gemfile' +eval_gemfile '../../benchmark/r4/v0.5.gemfile' +eval_gemfile '../../cgi/r4/v0.5.gemfile' +eval_gemfile '../../webrick/r4/v1.9.gemfile' diff --git a/gems/markdown-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile b/gems/markdown-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile index d4d5b16c9..ab75cccf1 100644 --- a/gems/markdown-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile +++ b/gems/markdown-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile @@ -1,6 +1,6 @@ -eval_gemfile "../erb/vHEAD.gemfile" -eval_gemfile "../mutex_m/vHEAD.gemfile" -eval_gemfile "../stringio/vHEAD.gemfile" -eval_gemfile "../benchmark/vHEAD.gemfile" -eval_gemfile "../cgi/vHEAD.gemfile" -eval_gemfile "../webrick/vHEAD.gemfile" +eval_gemfile '../erb/vHEAD.gemfile' +eval_gemfile '../mutex_m/vHEAD.gemfile' +eval_gemfile '../stringio/vHEAD.gemfile' +eval_gemfile '../benchmark/vHEAD.gemfile' +eval_gemfile '../cgi/vHEAD.gemfile' +eval_gemfile '../webrick/vHEAD.gemfile' diff --git a/gems/markdown-merge/lib/markdown/merge/version.rb b/gems/markdown-merge/lib/markdown/merge/version.rb index fe631f91a..c8ba076ae 100644 --- a/gems/markdown-merge/lib/markdown/merge/version.rb +++ b/gems/markdown-merge/lib/markdown/merge/version.rb @@ -3,7 +3,7 @@ module Markdown module Merge module Version - VERSION = "7.1.0" + VERSION = '7.1.0' end VERSION = Version::VERSION # Traditional Constant Location end diff --git a/gems/markdown-merge/spec/spec_helper.rb b/gems/markdown-merge/spec/spec_helper.rb index c4ea6c695..77eb0206c 100644 --- a/gems/markdown-merge/spec/spec_helper.rb +++ b/gems/markdown-merge/spec/spec_helper.rb @@ -7,16 +7,16 @@ # NOTE: Gemfiles for non-coverage appraisals may not have kettle-soup-cover. # The rescue LoadError handles that scenario. begin - require "kettle-soup-cover" + require 'kettle-soup-cover' if Kettle::Soup::Cover::DO_COV # Requiring simplecov loads the project-local `.simplecov`. - require "simplecov" - require "kettle/soup/cover/config" + require 'simplecov' + require 'kettle/soup/cover/config' SimpleCov.start end -rescue LoadError => error +rescue LoadError => e # check the error message and re-raise when unexpected - raise error unless error.message.include?("kettle") + raise e unless e.message.include?('kettle') end # External RSpec & related config diff --git a/gems/markly-merge/Gemfile.lock b/gems/markly-merge/Gemfile.lock index 67c93d14a..ec73856e2 100644 --- a/gems/markly-merge/Gemfile.lock +++ b/gems/markly-merge/Gemfile.lock @@ -6,6 +6,266 @@ PATH markly (~> 0.9) version_gem (~> 1.1, >= 1.1.9) +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly + specs: + ast-crispr-markdown-markly (7.1.0) + ast-crispr (= 7.1.0) + markly-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism + specs: + ast-crispr-ruby-prism (7.1.0) + ast-crispr (= 7.1.0) + prism-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr + specs: + ast-crispr (7.1.0) + ast-merge (= 7.1.0) + service_actor (~> 3.9) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git + specs: + ast-merge-git (7.1.0) + ast-merge (= 7.1.0) + json-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge + specs: + ast-merge (7.1.0) + benchmark + token-resolver (~> 2.0, >= 2.0.4) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template + specs: + ast-template (7.1.0) + ast-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge + specs: + bash-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge + specs: + binary-merge (7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge + specs: + citrus-toml-merge (7.1.0) + toml-merge (= 7.1.0) + toml-rb (~> 4.1) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge + specs: + commonmarker-merge (7.1.0) + commonmarker (~> 2.2) + markdown-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge + specs: + dotenv-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge + specs: + go-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge + specs: + json-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem + specs: + kettle-jem (7.1.0) + addressable (>= 2.8, < 3) + ast-crispr-markdown-markly (= 7.1.0) + ast-crispr-ruby-prism (= 7.1.0) + ast-merge (= 7.1.0) + bash-merge (= 7.1.0) + citrus-toml-merge (= 7.1.0) + commonmarker-merge (= 7.1.0) + dotenv-merge (= 7.1.0) + json-merge (= 7.1.0) + kettle-dev (~> 2.3, >= 2.3.5) + kettle-rb (~> 0.1, >= 0.1.4) + kramdown-merge (= 7.1.0) + markdown-merge (= 7.1.0) + markly-merge (= 7.1.0) + prism-merge (= 7.1.0) + psych-merge (= 7.1.0) + rbs (>= 3.10) + rbs-merge (= 7.1.0) + ruby-merge (= 7.1.0) + token-resolver (~> 2.0, >= 2.0.4) + toml-merge (= 7.1.0) + toml-rb (~> 4.2) + tree_haver (= 7.1.0) + yaml-merge (= 7.1.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge + specs: + kramdown-merge (7.1.0) + kramdown (~> 2.5) + markdown-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge + specs: + markdown-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge + specs: + parslet-toml-merge (7.1.0) + toml (~> 0.3) + toml-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge + specs: + plain-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge + specs: + prism-merge (7.1.0) + prism (~> 1.6) + ruby-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge + specs: + psych-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + yaml-merge (= 7.1.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge + specs: + rbs-merge (7.1.0) + ast-merge (= 7.1.0) + rbs (>= 3.10) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge + specs: + ruby-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge + specs: + rust-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb + specs: + smorg-rb (7.1.0) + ast-merge (= 7.1.0) + ast-merge-git (= 7.1.0) + diff-lcs (~> 1.5) + go-merge (= 7.1.0) + json-merge (= 7.1.0) + kettle-jem (= 7.1.0) + markly-merge (= 7.1.0) + plain-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge + specs: + toml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver + specs: + tree_haver (7.1.0) + citrus (~> 3.0) + parslet (~> 2.0) + tree_sitter_language_pack (>= 1.13.2, < 2.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge + specs: + typescript-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge + specs: + yaml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge + specs: + zip-merge (7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + GEM remote: https://gem.coop/ specs: @@ -21,11 +281,6 @@ GEM rubocop (>= 1.0) version_gem (~> 1.1, >= 1.1.14) ast (2.4.3) - ast-merge (7.1.0) - benchmark - token-resolver (~> 2.0, >= 2.0.4) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) backports (3.25.3) benchmark (0.5.0) bigdecimal (4.1.2) @@ -35,6 +290,7 @@ GEM cgi (0.5.2) citrus (3.0.2) cmdparse (3.0.7) + commonmarker (2.9.0-x86_64-linux) concurrent-ruby (1.3.8) date (3.5.1) debug (1.11.1) @@ -97,6 +353,8 @@ GEM kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) + kettle-drift (1.0.6) + version_gem (~> 1.1, >= 1.1.14) kettle-rb (0.1.5) kettle-soup-cover (3.0.4) kettle-wash (~> 0.1, >= 0.1.0) @@ -125,10 +383,6 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) - markdown-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) markly (0.16.0) mutex_m (0.3.0) nokogiri (1.19.4-x86_64-linux-gnu) @@ -284,6 +538,8 @@ GEM ruby-progressbar (1.13.0) ruby_engine (2.0.3) ruby_version (1.0.3) + service_actor (3.9.4) + zeitwerk (>= 1.0) silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) @@ -338,11 +594,11 @@ GEM token-resolver (2.0.5) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.14) - tree_haver (7.1.0) - citrus (~> 3.0) - parslet (~> 2.0) - tree_sitter_language_pack (>= 1.13.2, < 2.0) - version_gem (~> 1.1, >= 1.1.9) + toml (0.3.0) + parslet (>= 1.8.0, < 3.0.0) + toml-rb (4.2.0) + citrus (~> 3.0, > 3.0) + racc (~> 1.7) tree_sitter_language_pack (1.13.3-x86_64-linux) sorbet-runtime (~> 0.5) tsort (0.2.0) @@ -388,24 +644,46 @@ DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) appraisal2-rubocop (~> 1.0, >= 1.0.0) + ast-crispr! + ast-crispr-markdown-markly! + ast-crispr-ruby-prism! + ast-merge! + ast-merge-git! + ast-template! + bash-merge! benchmark (~> 0.5, >= 0.5.0) + binary-merge! bundler-audit (~> 0.9.3) cgi (~> 0.5) + citrus-toml-merge! + commonmarker-merge! debug (>= 1.1) + dotenv-merge! erb (~> 6.0, >= 6.0.6) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.0) + go-merge! irb (~> 1.17) + json-merge! kettle-dev (~> 2.0, >= 2.2.25) + kettle-drift (~> 1.0, >= 1.0.6) + kettle-jem! kettle-soup-cover (~> 3.0, >= 3.0.3) kettle-test (~> 2.0, >= 2.0.9) kramdown (~> 2.5, >= 2.5.2) + kramdown-merge! kramdown-parser-gfm (~> 1.1) + markdown-merge! markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) + parslet-toml-merge! + plain-merge! + prism-merge! + psych-merge! rake (~> 13.0) rbs (>= 3.0) + rbs-merge! rdoc (~> 6.11) reek (~> 6.5, >= 6.5.0) require_bench (~> 1.0, >= 1.0.4) @@ -416,19 +694,27 @@ DEPENDENCIES rubocop-on-rbs (~> 2.0, >= 2.0.0) rubocop-packaging (~> 0.6, >= 0.6.0) rubocop-ruby3_2 (~> 3.0, >= 3.0.6) + ruby-merge! ruby-progressbar (~> 1.13) + rust-merge! + smorg-rb! standard (~> 1.56, >= 1.56.0) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) + toml-merge! + tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) + typescript-merge! webrick (~> 1.9) yaml-converter (~> 0.2, >= 0.2.3) + yaml-merge! yard (~> 0.9, >= 0.9.45) yard-fence (~> 0.9, >= 0.9.6) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) yard-timekeeper (~> 0.2, >= 0.2.4) yard-yaml (~> 0.2, >= 0.2.3) + zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af @@ -436,20 +722,31 @@ CHECKSUMS appraisal2 (3.2.0) sha256=ccd0b767ac4060cd7af6d16747459b6990f49c39c7b4fb1f7d1146b1e97c492f appraisal2-rubocop (1.0.0) sha256=b71410fbb014befda5340605a605b7f6f3f012739baf0acc5b4351b592c3258d ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 + ast-crispr (7.1.0) + ast-crispr-markdown-markly (7.1.0) + ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) + ast-merge-git (7.1.0) + ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 + bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd + binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 + citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 + commonmarker (2.9.0-x86_64-linux) sha256=8cfe92970eef585a19ddf6613224b91cab64d6029834661bda801f877c9c7f43 + commonmarker-merge (7.1.0) concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 + dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -462,16 +759,21 @@ CHECKSUMS gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f + go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 + json-merge (7.1.0) kettle-dev (2.3.9) + kettle-drift (1.0.6) sha256=46eda08fa4411d1f3c6682a95eef1c9df4e94611b3949f49d4c7b43c0ed356a3 + kettle-jem (7.1.0) kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f kettle-soup-cover (3.0.4) kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa + kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 @@ -488,15 +790,20 @@ CHECKSUMS parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 + parslet-toml-merge (7.1.0) + plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 + prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 + psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 + rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb @@ -531,15 +838,19 @@ CHECKSUMS rubocop-rspec_rails (2.32.0) sha256=4a0d641c72f6ebb957534f539d9d0a62c47abd8ce0d0aeee1ef4701e892a9100 rubocop-ruby3_2 (3.0.7) sha256=f53dd6d286fb05186214fc6ec116783e7f837030918e8931c05de773e98f8466 rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 + ruby-merge (7.1.0) ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 + rust-merge (7.1.0) + service_actor (3.9.4) sha256=e63b523630b9a7e62959b2a90113b08d2565b5de9c148557b281ef847c9539ce silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed + smorg-rb (7.1.0) sorbet-runtime (0.6.13351) sha256=f8fee17c6e3edf835dc6823d26afb9a7c8969c6710d1fabe2fb43f4e0c15c64f standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b @@ -554,15 +865,20 @@ CHECKSUMS timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.5) sha256=b852f924287ffb58a440856e862b056c8ad97e74b4b2526cee43e0771f40c25c + toml (0.3.0) sha256=0a91d0f76a9036e84e44f95693b12f58d358c1df3ac8e3b5271f2056ecc6e4b9 + toml-merge (7.1.0) + toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 + typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 webrick (1.9.2) sha256=beb4a15fc474defed24a3bda4ffd88a490d517c9e4e6118c3edce59e45864131 yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 + yaml-merge (7.1.0) yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd @@ -570,6 +886,7 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 + zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH diff --git a/gems/prism-merge/.rubocop_gradual.lock b/gems/prism-merge/.rubocop_gradual.lock new file mode 100644 index 000000000..fda2bbfb2 --- /dev/null +++ b/gems/prism-merge/.rubocop_gradual.lock @@ -0,0 +1,707 @@ +{ + ".simplecov:4134106261": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "Rakefile:22363789": [ + [18, 121, 17, "Layout/LineLength: Line is too long. [137/120]", 174264873], + [79, 3, 1023, "Metrics/BlockLength: Block has too many lines. [32/25]", 54868638], + [163, 121, 22, "Layout/LineLength: Line is too long. [142/120]", 1367093088], + [166, 121, 18, "Layout/LineLength: Line is too long. [138/120]", 3881946477] + ], + "gemfiles/modular/benchmark/r4/v0.5.gemfile:3644720371": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/benchmark/vHEAD.gemfile:2838879269": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/cgi/r4/v0.5.gemfile:367169322": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/cgi/vHEAD.gemfile:2729540777": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/erb/r2/v3.0.gemfile:1688285565": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/erb/r3/v5.0.gemfile:2394062339": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/erb/r4/v5.0.gemfile:2394062339": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/erb/vHEAD.gemfile:981929959": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/mutex_m/r2/v0.3.gemfile:4055275004": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/mutex_m/r3/v0.3.gemfile:4055275004": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/mutex_m/r4/v0.3.gemfile:4055275004": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/mutex_m/vHEAD.gemfile:556854763": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/rspec.gemfile:2263543889": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/stringio/r2/v3.0.gemfile:821604304": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/stringio/r3/v3.0.gemfile:821604304": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/stringio/r4/v3.0.gemfile:821604304": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/stringio/vHEAD.gemfile:1045839691": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/webrick/r4/v1.9.gemfile:3092661193": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/webrick/vHEAD.gemfile:3867684682": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/x_std_libs.gemfile:2324400122": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/x_std_libs/r2/libs.gemfile:36276542": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] + ], + "gemfiles/modular/x_std_libs/r3/libs.gemfile:4030570297": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] + ], + "gemfiles/modular/x_std_libs/r4/libs.gemfile:732451732": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] + ], + "gemfiles/modular/x_std_libs/vHEAD.gemfile:2390363993": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] + ], + "lib/prism-merge.rb:226590672": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`prism-merge.rb`) should use snake_case.", 5381] + ], + "lib/prism/merge.rb:1325756945": [ + [12, 3, 12, "Style/Documentation: Missing top-level documentation comment for `module Prism::Merge`.", 2866359175], + [12, 3, 52397, "Metrics/ModuleLength: Module has too many lines. [1199/100]", 1955834049], + [13, 5, 11, "Style/ModuleFunction: Use `module_function` instead of `extend self`.", 1210897631], + [24, 5, 16, "Style/Documentation: Missing top-level documentation comment for `class Prism::Merge::ParseError`.", 362242086], + [120, 5, 1996, "Metrics/MethodLength: Method has too many lines. [42/10]", 709892915], + [165, 5, 1804, "Metrics/MethodLength: Method has too many lines. [37/10]", 3641862107], + [205, 5, 1012, "Metrics/MethodLength: Method has too many lines. [23/10]", 3112984532], + [243, 5, 695, "Metrics/MethodLength: Method has too many lines. [17/10]", 321495946], + [263, 5, 1801, "Metrics/MethodLength: Method has too many lines. [37/10]", 3355654893], + [264, 121, 5, "Layout/LineLength: Line is too long. [125/120]", 180584319], + [303, 5, 7357, "Metrics/AbcSize: Assignment Branch Condition size for `ruby_structured_edit_batch_report_projection` is too high. [<1, 31, 0> 31.02/17]", 2583247591], + [303, 5, 7357, "Metrics/MethodLength: Method has too many lines. [139/10]", 2583247591], + [304, 121, 5, "Layout/LineLength: Line is too long. [125/120]", 180584319], + [323, 121, 25, "Layout/LineLength: Line is too long. [145/120]", 949635646], + [361, 121, 42, "Layout/LineLength: Line is too long. [162/120]", 1330685294], + [445, 5, 932, "Metrics/AbcSize: Assignment Branch Condition size for `parse_ruby` is too high. [<3, 17, 7> 18.63/17]", 2894794051], + [445, 5, 932, "Metrics/MethodLength: Method has too many lines. [23/10]", 2894794051], + [473, 5, 491, "Metrics/MethodLength: Method has too many lines. [12/10]", 3211170428], + [488, 5, 3333, "Metrics/AbcSize: Assignment Branch Condition size for `parse_ruby_normalized` is too high. [<20, 68, 28> 76.21/17]", 3141190358], + [488, 5, 3333, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `parse_ruby_normalized` is too high. [23/7]", 3141190358], + [488, 5, 3333, "Metrics/MethodLength: Method has too many lines. [72/10]", 3141190358], + [488, 5, 3333, "Metrics/PerceivedComplexity: Perceived complexity for `parse_ruby_normalized` is too high. [23/8]", 3141190358], + [570, 5, 3671, "Metrics/AbcSize: Assignment Branch Condition size for `apply_edit_projection` is too high. [<14, 62, 19> 66.34/17]", 1859418783], + [570, 5, 3671, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `apply_edit_projection` is too high. [12/7]", 1859418783], + [570, 5, 3671, "Metrics/MethodLength: Method has too many lines. [66/10]", 1859418783], + [570, 5, 3671, "Metrics/PerceivedComplexity: Perceived complexity for `apply_edit_projection` is too high. [13/8]", 1859418783], + [616, 18, 176, "Style/StringConcatenation: Prefer string interpolation to string concatenation.", 3247522762], + [649, 5, 1505, "Metrics/MethodLength: Method has too many lines. [33/10]", 2499202345], + [649, 19, 292, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [10/5]", 676979469], + [710, 5, 583, "Metrics/MethodLength: Method has too many lines. [13/10]", 1484312517], + [727, 5, 551, "Metrics/AbcSize: Assignment Branch Condition size for `normalize_ruby_require_aliases` is too high. [<11, 15, 7> 19.87/17]", 2507514607], + [727, 5, 551, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `normalize_ruby_require_aliases` is too high. [8/7]", 2507514607], + [727, 5, 551, "Metrics/MethodLength: Method has too many lines. [17/10]", 2507514607], + [748, 5, 304, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `ruby_dsl_call_node` is too high. [8/7]", 2466841613], + [771, 5, 1305, "Metrics/AbcSize: Assignment Branch Condition size for `merge_ruby_with_reviewed_nested_outputs` is too high. [<7, 17, 5> 19.05/17]", 3657868136], + [771, 5, 1305, "Metrics/MethodLength: Method has too many lines. [27/10]", 3657868136], + [771, 48, 140, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 132256850], + [804, 5, 1015, "Metrics/MethodLength: Method has too many lines. [17/10]", 757789356], + [814, 121, 70, "Layout/LineLength: Line is too long. [190/120]", 1956194284], + [827, 5, 928, "Metrics/MethodLength: Method has too many lines. [16/10]", 1039420596], + [837, 121, 17, "Layout/LineLength: Line is too long. [137/120]", 3013228499], + [849, 5, 1003, "Metrics/MethodLength: Method has too many lines. [17/10]", 3313354796], + [859, 121, 62, "Layout/LineLength: Line is too long. [182/120]", 1636990749], + [872, 5, 936, "Metrics/MethodLength: Method has too many lines. [16/10]", 2825710110], + [882, 121, 17, "Layout/LineLength: Line is too long. [137/120]", 3013228499], + [906, 5, 662, "Metrics/MethodLength: Method has too many lines. [19/10]", 772959042], + [927, 7, 11, "Style/MultilineBlockChain: Avoid multi-line chains of blocks.", 848344986], + [930, 5, 849, "Metrics/AbcSize: Assignment Branch Condition size for `prism_ruby_discovered_surfaces` is too high. [<12, 16, 6> 20.88/17]", 2509812469], + [930, 5, 849, "Metrics/MethodLength: Method has too many lines. [23/10]", 2509812469], + [961, 5, 1195, "Metrics/AbcSize: Assignment Branch Condition size for `prism_ruby_surfaces_for_owner` is too high. [<6, 19, 3> 20.15/17]", 1713430182], + [961, 5, 1195, "Metrics/MethodLength: Method has too many lines. [20/10]", 1713430182], + [986, 5, 1216, "Metrics/AbcSize: Assignment Branch Condition size for `prism_ruby_example_surfaces` is too high. [<4, 20, 2> 20.49/17]", 2225356615], + [986, 5, 1216, "Metrics/MethodLength: Method has too many lines. [22/10]", 2225356615], + [1058, 5, 421, "Metrics/MethodLength: Method has too many lines. [14/10]", 26440736], + [1089, 5, 827, "Metrics/MethodLength: Method has too many lines. [18/10]", 4288402374], + [1130, 5, 876, "Metrics/MethodLength: Method has too many lines. [23/10]", 3423854231], + [1168, 5, 1155, "Metrics/AbcSize: Assignment Branch Condition size for `prism_comment_node` is too high. [<1, 22, 0> 22.02/17]", 4287909739], + [1168, 5, 1155, "Metrics/MethodLength: Method has too many lines. [28/10]", 4287909739], + [1199, 5, 888, "Metrics/MethodLength: Method has too many lines. [27/10]", 3798554661], + [1251, 5, 920, "Metrics/MethodLength: Method has too many lines. [23/10]", 917985568] + ], + "lib/prism/merge/begin_node_clause_body_merger.rb:1042804537": [ + [5, 5, 31, "Style/Documentation: Missing top-level documentation comment for `class Prism::Merge::BeginNodeClauseBodyMerger`.", 1242162299], + [19, 7, 1511, "Metrics/AbcSize: Assignment Branch Condition size for `merge` is too high. [<5, 37, 1> 37.35/17]", 3275719934], + [19, 7, 1511, "Metrics/MethodLength: Method has too many lines. [32/10]", 3275719934] + ], + "lib/prism/merge/begin_node_clause_body_support.rb:787370708": [ + [5, 5, 32, "Style/Documentation: Missing top-level documentation comment for `class Prism::Merge::BeginNodeClauseBodySupport`.", 3341069278], + [5, 5, 7504, "Metrics/ClassLength: Class has too many lines. [142/100]", 1403116805], + [8, 21, 100, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 4145084810], + [22, 7, 937, "Metrics/AbcSize: Assignment Branch Condition size for `clause_header_end_line` is too high. [<5, 29, 16> 33.5/17]", 2050282033], + [22, 7, 937, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `clause_header_end_line` is too high. [16/7]", 2050282033], + [22, 7, 937, "Metrics/MethodLength: Method has too many lines. [14/10]", 2050282033], + [22, 7, 937, "Metrics/PerceivedComplexity: Perceived complexity for `clause_header_end_line` is too high. [16/8]", 2050282033], + [35, 63, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], + [55, 9, 23, "Style/StringConcatenation: Prefer string interpolation to string concatenation.", 1178765246], + [58, 7, 419, "Metrics/MethodLength: Method has too many lines. [11/10]", 3825428834], + [81, 7, 2396, "Metrics/AbcSize: Assignment Branch Condition size for `clause_body_components` is too high. [<11, 30, 16> 35.74/17]", 199420029], + [81, 7, 2396, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `clause_body_components` is too high. [13/7]", 199420029], + [81, 7, 2396, "Metrics/MethodLength: Method has too many lines. [39/10]", 199420029], + [81, 7, 2396, "Metrics/PerceivedComplexity: Perceived complexity for `clause_body_components` is too high. [14/8]", 199420029], + [126, 30, 23, "Style/StringConcatenation: Prefer string interpolation to string concatenation.", 1178765246], + [164, 7, 862, "Metrics/AbcSize: Assignment Branch Condition size for `clause_bodies_have_matching_statements?` is too high. [<3, 19, 2> 19.34/17]", 4182083840], + [164, 7, 862, "Metrics/MethodLength: Method has too many lines. [15/10]", 4182083840] + ], + "lib/prism/merge/begin_node_clause_header_emitter.rb:2991300768": [ + [5, 5, 34, "Style/Documentation: Missing top-level documentation comment for `class Prism::Merge::BeginNodeClauseHeaderEmitter`.", 217025096], + [14, 7, 1600, "Metrics/AbcSize: Assignment Branch Condition size for `emit` is too high. [<10, 22, 17> 29.55/17]", 4242535078], + [14, 7, 1600, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `emit` is too high. [11/7]", 4242535078], + [14, 7, 1600, "Metrics/MethodLength: Method has too many lines. [25/10]", 4242535078], + [14, 7, 1600, "Metrics/PerceivedComplexity: Perceived complexity for `emit` is too high. [11/8]", 4242535078], + [14, 15, 164, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [8/5]", 2644486585] + ], + "lib/prism/merge/begin_node_merge_planner.rb:3840396716": [ + [5, 5, 27, "Style/Documentation: Missing top-level documentation comment for `class Prism::Merge::BeginNodeMergePlanner`.", 3356052894], + [5, 5, 9876, "Metrics/ClassLength: Class has too many lines. [185/100]", 148070692], + [30, 7, 2144, "Metrics/AbcSize: Assignment Branch Condition size for `plan` is too high. [<15, 34, 11> 38.76/17]", 3596380485], + [30, 7, 2144, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `plan` is too high. [10/7]", 3596380485], + [30, 7, 2144, "Metrics/MethodLength: Method has too many lines. [39/10]", 3596380485], + [30, 7, 2144, "Metrics/PerceivedComplexity: Perceived complexity for `plan` is too high. [11/8]", 3596380485], + [84, 7, 4383, "Metrics/AbcSize: Assignment Branch Condition size for `build_shared_clause_step` is too high. [<19, 70, 24> 76.4/17]", 2837542267], + [84, 7, 4383, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `build_shared_clause_step` is too high. [16/7]", 2837542267], + [84, 7, 4383, "Metrics/MethodLength: Method has too many lines. [73/10]", 2837542267], + [84, 7, 4383, "Metrics/PerceivedComplexity: Perceived complexity for `build_shared_clause_step` is too high. [18/8]", 2837542267], + [103, 121, 59, "Layout/LineLength: Line is too long. [179/120]", 357928082], + [105, 121, 55, "Layout/LineLength: Line is too long. [175/120]", 1163790852], + [142, 121, 35, "Layout/LineLength: Line is too long. [155/120]", 3447647282], + [143, 121, 40, "Layout/LineLength: Line is too long. [160/120]", 1267386383], + [167, 7, 2428, "Metrics/AbcSize: Assignment Branch Condition size for `build_unmatched_clause_step` is too high. [<2, 28, 21> 35.06/17]", 2984621385], + [167, 7, 2428, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `build_unmatched_clause_step` is too high. [17/7]", 2984621385], + [167, 7, 2428, "Metrics/MethodLength: Method has too many lines. [38/10]", 2984621385], + [167, 7, 2428, "Metrics/PerceivedComplexity: Perceived complexity for `build_unmatched_clause_step` is too high. [19/8]", 2984621385], + [188, 121, 25, "Layout/LineLength: Line is too long. [145/120]", 549521717], + [198, 121, 25, "Layout/LineLength: Line is too long. [145/120]", 619697310] + ], + "lib/prism/merge/begin_node_plan_emitter.rb:372252499": [ + [5, 5, 26, "Style/Documentation: Missing top-level documentation comment for `class Prism::Merge::BeginNodePlanEmitter`.", 926648201], + [14, 7, 740, "Metrics/MethodLength: Method has too many lines. [16/10]", 2040521865], + [14, 15, 105, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 1812434716], + [36, 7, 1205, "Metrics/MethodLength: Method has too many lines. [24/10]", 4164487211], + [36, 20, 127, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 466430575], + [76, 7, 1308, "Metrics/AbcSize: Assignment Branch Condition size for `emit_copied_unmatched_clause` is too high. [<6, 30, 11> 32.51/17]", 1339054986], + [76, 7, 1308, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `emit_copied_unmatched_clause` is too high. [10/7]", 1339054986], + [76, 7, 1308, "Metrics/MethodLength: Method has too many lines. [21/10]", 1339054986], + [76, 7, 1308, "Metrics/PerceivedComplexity: Perceived complexity for `emit_copied_unmatched_clause` is too high. [10/8]", 1339054986], + [76, 39, 146, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 2474530127] + ], + "lib/prism/merge/begin_node_rescue_semantics.rb:2034041801": [ + [5, 5, 30, "Style/Documentation: Missing top-level documentation comment for `class Prism::Merge::BeginNodeRescueSemantics`.", 4100560642], + [5, 5, 9899, "Metrics/ClassLength: Class has too many lines. [198/100]", 4227917508], + [13, 7, 1953, "Metrics/AbcSize: Assignment Branch Condition size for `normalized_clause_body_and_header_source` is too high. [<9, 13, 21> 26.29/17]", 1895019213], + [13, 7, 1953, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `normalized_clause_body_and_header_source` is too high. [15/7]", 1895019213], + [13, 7, 1953, "Metrics/MethodLength: Method has too many lines. [26/10]", 1895019213], + [13, 7, 1953, "Metrics/PerceivedComplexity: Perceived complexity for `normalized_clause_body_and_header_source` is too high. [17/8]", 1895019213], + [80, 7, 530, "Metrics/AbcSize: Assignment Branch Condition size for `local_variable_read_names_in` is too high. [<1, 16, 9> 18.38/17]", 2555890222], + [80, 7, 530, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `local_variable_read_names_in` is too high. [8/7]", 2555890222], + [80, 7, 530, "Metrics/MethodLength: Method has too many lines. [12/10]", 2555890222], + [80, 7, 530, "Metrics/PerceivedComplexity: Perceived complexity for `local_variable_read_names_in` is too high. [9/8]", 2555890222], + [134, 7, 724, "Metrics/AbcSize: Assignment Branch Condition size for `rewrite_local_reference_in_source` is too high. [<6, 18, 9> 21/17]", 2089802992], + [134, 7, 724, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `rewrite_local_reference_in_source` is too high. [9/7]", 2089802992], + [134, 7, 724, "Metrics/MethodLength: Method has too many lines. [12/10]", 2089802992], + [134, 7, 724, "Metrics/PerceivedComplexity: Perceived complexity for `rewrite_local_reference_in_source` is too high. [9/8]", 2089802992], + [182, 85, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], + [194, 7, 1233, "Metrics/AbcSize: Assignment Branch Condition size for `collect_source_defined_exception_definitions` is too high. [<4, 22, 9> 24.1/17]", 1970916346], + [194, 7, 1233, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `collect_source_defined_exception_definitions` is too high. [10/7]", 1970916346], + [194, 7, 1233, "Metrics/MethodLength: Method has too many lines. [24/10]", 1970916346] + ], + "lib/prism/merge/begin_node_structure.rb:1232724245": [ + [5, 5, 24, "Style/Documentation: Missing top-level documentation comment for `class Prism::Merge::BeginNodeStructure`.", 3506219929], + [5, 5, 4080, "Metrics/ClassLength: Class has too many lines. [101/100]", 1611393241], + [21, 7, 375, "Metrics/AbcSize: Assignment Branch Condition size for `boundary_lines` is too high. [<0, 28, 7> 28.86/17]", 3399008793], + [21, 7, 375, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `boundary_lines` is too high. [8/7]", 3399008793], + [33, 7, 251, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `clause_start_line` is too high. [8/7]", 1553904487], + [43, 7, 407, "Metrics/MethodLength: Method has too many lines. [12/10]", 3851339415], + [59, 7, 1089, "Metrics/AbcSize: Assignment Branch Condition size for `clause_regions` is too high. [<9, 38, 9> 40.07/17]", 1916795013], + [59, 7, 1089, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `clause_regions` is too high. [10/7]", 1916795013], + [59, 7, 1089, "Metrics/MethodLength: Method has too many lines. [22/10]", 1916795013], + [59, 7, 1089, "Metrics/PerceivedComplexity: Perceived complexity for `clause_regions` is too high. [10/8]", 1916795013], + [86, 7, 613, "Metrics/AbcSize: Assignment Branch Condition size for `clause_nodes_by_type` is too high. [<9, 19, 4> 21.4/17]", 1693909219], + [86, 7, 613, "Metrics/MethodLength: Method has too many lines. [12/10]", 1693909219], + [102, 11, 19, "Naming/PredicatePrefix: Rename `has_clause_or_body?` to `clause_or_body?`.", 2163996991], + [106, 7, 598, "Metrics/AbcSize: Assignment Branch Condition size for `line_map_for` is too high. [<13, 15, 6> 20.74/17]", 191778789] + ], + "lib/prism/merge/block_directive_detector.rb:3698866715": [ + [9, 5, 5028, "Metrics/ClassLength: Class has too many lines. [121/100]", 2587374670], + [10, 7, 1976, "Metrics/AbcSize: Assignment Branch Condition size for `promote_spans_to_nodes` is too high. [<23, 42, 32> 57.59/17]", 1038475655], + [10, 7, 1976, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `promote_spans_to_nodes` is too high. [24/7]", 1038475655], + [10, 7, 1976, "Metrics/MethodLength: Method has too many lines. [37/10]", 1038475655], + [10, 7, 1976, "Metrics/PerceivedComplexity: Perceived complexity for `promote_spans_to_nodes` is too high. [25/8]", 1038475655], + [35, 11, 7, "Style/MultilineBlockChain: Avoid multi-line chains of blocks.", 4045560504], + [108, 7, 832, "Metrics/MethodLength: Method has too many lines. [23/10]", 3204610677], + [134, 7, 722, "Metrics/AbcSize: Assignment Branch Condition size for `rebuild_statements` is too high. [<15, 17, 9> 24.39/17]", 3809085226], + [134, 7, 722, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `rebuild_statements` is too high. [10/7]", 3809085226], + [134, 7, 722, "Metrics/MethodLength: Method has too many lines. [15/10]", 3809085226], + [134, 7, 722, "Metrics/PerceivedComplexity: Perceived complexity for `rebuild_statements` is too high. [10/8]", 3809085226] + ], + "lib/prism/merge/comment/block.rb:3606937725": [ + [65, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 1573406415] + ], + "lib/prism/merge/comment/parser.rb:1277632686": [ + [31, 9, 1747, "Metrics/AbcSize: Assignment Branch Condition size for `parse` is too high. [<10, 28, 8> 30.79/17]", 2837146927], + [31, 9, 1747, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `parse` is too high. [8/7]", 2837146927], + [31, 9, 1747, "Metrics/MethodLength: Method has too many lines. [34/10]", 2837146927], + [31, 9, 1747, "Metrics/PerceivedComplexity: Perceived complexity for `parse` is too high. [9/8]", 2837146927], + [38, 11, 1390, "Metrics/BlockLength: Block has too many lines. [26/25]", 1396583578] + ], + "lib/prism/merge/comment_only_file_merger.rb:808070956": [ + [5, 5, 27, "Style/Documentation: Missing top-level documentation comment for `class Prism::Merge::CommentOnlyFileMerger`.", 1927029952], + [5, 5, 11907, "Metrics/ClassLength: Class has too many lines. [256/100]", 2729825792], + [27, 7, 1628, "Metrics/AbcSize: Assignment Branch Condition size for `merge` is too high. [<15, 32, 8> 36.24/17]", 2481561114], + [27, 7, 1628, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `merge` is too high. [8/7]", 2481561114], + [27, 7, 1628, "Metrics/MethodLength: Method has too many lines. [34/10]", 2481561114], + [78, 7, 661, "Metrics/MethodLength: Method has too many lines. [18/10]", 1523408112], + [100, 7, 1781, "Metrics/AbcSize: Assignment Branch Condition size for `build_output_plan` is too high. [<10, 34, 20> 40.69/17]", 994360926], + [100, 7, 1781, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `build_output_plan` is too high. [17/7]", 994360926], + [100, 7, 1781, "Metrics/MethodLength: Method has too many lines. [30/10]", 994360926], + [100, 7, 1781, "Metrics/PerceivedComplexity: Perceived complexity for `build_output_plan` is too high. [19/8]", 994360926], + [123, 121, 21, "Layout/LineLength: Line is too long. [141/120]", 530225423], + [149, 7, 1486, "Metrics/AbcSize: Assignment Branch Condition size for `add_comment_node_to_result` is too high. [<7, 34, 22> 41.1/17]", 1181795760], + [149, 7, 1486, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `add_comment_node_to_result` is too high. [16/7]", 1181795760], + [149, 7, 1486, "Metrics/MethodLength: Method has too many lines. [29/10]", 1181795760], + [149, 7, 1486, "Metrics/PerceivedComplexity: Perceived complexity for `add_comment_node_to_result` is too high. [20/8]", 1181795760], + [185, 7, 693, "Metrics/MethodLength: Method has too many lines. [16/10]", 3008008109], + [205, 7, 1035, "Metrics/AbcSize: Assignment Branch Condition size for `emit_layout_gap_to_result` is too high. [<6, 24, 11> 27.07/17]", 3441550295], + [205, 7, 1035, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `emit_layout_gap_to_result` is too high. [9/7]", 3441550295], + [205, 7, 1035, "Metrics/MethodLength: Method has too many lines. [17/10]", 3441550295], + [205, 7, 1035, "Metrics/PerceivedComplexity: Perceived complexity for `emit_layout_gap_to_result` is too high. [10/8]", 3441550295], + [230, 7, 665, "Metrics/AbcSize: Assignment Branch Condition size for `emit_comment_only_prefix_lines` is too high. [<5, 21, 4> 21.95/17]", 1939505075], + [243, 7, 942, "Metrics/MethodLength: Method has too many lines. [19/10]", 2012616838] + ], + "lib/prism/merge/file_analysis.rb:3845044313": [ + [16, 5, 56738, "Metrics/ClassLength: Class has too many lines. [631/100]", 2915560491], + [19, 7, 28, "Style/Documentation: Missing top-level documentation comment for `class Prism::Merge::FileAnalysis::NativeCommentAugmenter`.", 2321467727], + [19, 7, 5712, "Metrics/ClassLength: Class has too many lines. [121/100]", 3225634005], + [22, 9, 605, "Metrics/MethodLength: Method has too many lines. [16/10]", 3935631704], + [47, 9, 2672, "Metrics/AbcSize: Assignment Branch Condition size for `build!` is too high. [<19, 55, 23> 62.57/17]", 3140666915], + [47, 9, 2672, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `build!` is too high. [22/7]", 3140666915], + [47, 9, 2672, "Metrics/MethodLength: Method has too many lines. [47/10]", 3140666915], + [47, 9, 2672, "Metrics/PerceivedComplexity: Perceived complexity for `build!` is too high. [22/8]", 3140666915], + [120, 9, 779, "Metrics/AbcSize: Assignment Branch Condition size for `attach_orphan_region_to_nearest_owner` is too high. [<4, 18, 3> 18.68/17]", 714646861], + [120, 9, 779, "Metrics/MethodLength: Method has too many lines. [15/10]", 714646861], + [212, 7, 1703, "Metrics/MethodLength: Method has too many lines. [19/10]", 3233444968], + [350, 7, 686, "Metrics/AbcSize: Assignment Branch Condition size for `leading_comments_for_owner` is too high. [<7, 23, 9> 25.67/17]", 4287196323], + [350, 7, 686, "Metrics/MethodLength: Method has too many lines. [13/10]", 4287196323], + [373, 7, 1177, "Metrics/MethodLength: Method has too many lines. [23/10]", 853358252], + [415, 7, 587, "Metrics/MethodLength: Method has too many lines. [13/10]", 241044926], + [481, 7, 1099, "Metrics/AbcSize: Assignment Branch Condition size for `frozen_node?` is too high. [<3, 16, 7> 17.72/17]", 1886536218], + [481, 7, 1099, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `frozen_node?` is too high. [8/7]", 1886536218], + [615, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5858904], + [616, 121, 10, "Layout/LineLength: Line is too long. [130/120]", 442686854], + [687, 7, 779, "Metrics/AbcSize: Assignment Branch Condition size for `split_first_owner_preamble_entries` is too high. [<9, 20, 10> 24.1/17]", 2477766314], + [687, 7, 779, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `split_first_owner_preamble_entries` is too high. [9/7]", 2477766314], + [687, 7, 779, "Metrics/MethodLength: Method has too many lines. [11/10]", 2477766314], + [687, 7, 779, "Metrics/PerceivedComplexity: Perceived complexity for `split_first_owner_preamble_entries` is too high. [9/8]", 2477766314], + [697, 9, 11, "Style/MultilineBlockChain: Avoid multi-line chains of blocks.", 848344986], + [744, 7, 768, "Metrics/MethodLength: Method has too many lines. [15/10]", 3855207561], + [770, 7, 609, "Metrics/MethodLength: Method has too many lines. [15/10]", 3157294863], + [856, 7, 2509, "Metrics/AbcSize: Assignment Branch Condition size for `extract_and_integrate_all_nodes` is too high. [<11, 29, 16> 34.9/17]", 1138957888], + [856, 7, 2509, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `extract_and_integrate_all_nodes` is too high. [14/7]", 1138957888], + [856, 7, 2509, "Metrics/MethodLength: Method has too many lines. [32/10]", 1138957888], + [856, 7, 2509, "Metrics/PerceivedComplexity: Perceived complexity for `extract_and_integrate_all_nodes` is too high. [16/8]", 1138957888], + [925, 7, 1325, "Metrics/AbcSize: Assignment Branch Condition size for `extract_nodes_with_comments` is too high. [<3, 25, 7> 26.13/17]", 1498557944], + [925, 7, 1325, "Metrics/MethodLength: Method has too many lines. [23/10]", 1498557944], + [1037, 7, 11892, "Metrics/AbcSize: Assignment Branch Condition size for `compute_node_signature` is too high. [<19, 176, 83> 195.5/17]", 2654183611], + [1037, 7, 11892, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `compute_node_signature` is too high. [75/7]", 2654183611], + [1037, 7, 11892, "Metrics/MethodLength: Method has too many lines. [132/10]", 2654183611], + [1037, 7, 11892, "Metrics/PerceivedComplexity: Perceived complexity for `compute_node_signature` is too high. [61/8]", 2654183611], + [1098, 88, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], + [1102, 24, 300, "Metrics/BlockNesting: Avoid more than 3 levels of block nesting.", 2690302041], + [1102, 55, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], + [1313, 7, 680, "Metrics/AbcSize: Assignment Branch Condition size for `detect_gemspec_block_var` is too high. [<3, 22, 15> 26.8/17]", 3676370299], + [1313, 7, 680, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `detect_gemspec_block_var` is too high. [14/7]", 3676370299], + [1313, 7, 680, "Metrics/MethodLength: Method has too many lines. [14/10]", 3676370299], + [1313, 7, 680, "Metrics/PerceivedComplexity: Perceived complexity for `detect_gemspec_block_var` is too high. [14/8]", 3676370299] + ], + "lib/prism/merge/freeze_node.rb:2471800311": [ + [67, 7, 577, "Metrics/MethodLength: Method has too many lines. [11/10]", 2189574632], + [67, 21, 186, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [8/5]", 1006469938], + [124, 7, 2888, "Metrics/AbcSize: Assignment Branch Condition size for `validate_structure!` is too high. [<13, 32, 33> 47.77/17]", 3621186151], + [124, 7, 2888, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `validate_structure!` is too high. [24/7]", 3621186151], + [124, 7, 2888, "Metrics/MethodLength: Method has too many lines. [38/10]", 3621186151], + [124, 7, 2888, "Metrics/PerceivedComplexity: Perceived complexity for `validate_structure!` is too high. [25/8]", 3621186151] + ], + "lib/prism/merge/merge_result.rb:1970522956": [ + [9, 5, 12561, "Metrics/ClassLength: Class has too many lines. [238/100]", 3020348188], + [67, 7, 5058, "Metrics/AbcSize: Assignment Branch Condition size for `add_node` is too high. [<25, 54, 38> 70.6/17]", 2165268226], + [67, 7, 5058, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `add_node` is too high. [22/7]", 2165268226], + [67, 7, 5058, "Metrics/MethodLength: Method has too many lines. [94/10]", 2165268226], + [67, 7, 5058, "Metrics/PerceivedComplexity: Perceived complexity for `add_node` is too high. [31/8]", 2165268226], + [74, 9, 1617, "Metrics/BlockLength: Block has too many lines. [34/25]", 3544860826], + [175, 38, 40, "Style/StringConcatenation: Prefer string interpolation to string concatenation.", 3558364074], + [193, 9, 24, "Style/StringConcatenation: Prefer string interpolation to string concatenation.", 1750147806], + [219, 7, 901, "Metrics/AbcSize: Assignment Branch Condition size for `debug_output` is too high. [<5, 29, 5> 29.85/17]", 2776830125], + [219, 7, 901, "Metrics/MethodLength: Method has too many lines. [25/10]", 2776830125], + [296, 7, 903, "Metrics/MethodLength: Method has too many lines. [18/10]", 2752342414] + ], + "lib/prism/merge/method_match_refiner.rb:1593340636": [ + [103, 7, 705, "Metrics/AbcSize: Assignment Branch Condition size for `extract_param_names` is too high. [<2, 37, 16> 40.36/17]", 3200522215], + [103, 7, 705, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `extract_param_names` is too high. [17/7]", 3200522215], + [103, 7, 705, "Metrics/MethodLength: Method has too many lines. [11/10]", 3200522215], + [103, 7, 705, "Metrics/PerceivedComplexity: Perceived complexity for `extract_param_names` is too high. [17/8]", 3200522215], + [111, 49, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], + [114, 65, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765] + ], + "lib/prism/merge/nested_statement_walker.rb:3826169704": [ + [24, 7, 695, "Metrics/MethodLength: Method has too many lines. [16/10]", 3744912119], + [45, 7, 518, "Metrics/MethodLength: Method has too many lines. [12/10]", 2978518157] + ], + "lib/prism/merge/nocov_node.rb:2336029940": [ + [52, 19, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765] + ], + "lib/prism/merge/node_body_layout.rb:1642074264": [ + [5, 5, 20, "Style/Documentation: Missing top-level documentation comment for `class Prism::Merge::NodeBodyLayout`.", 1262407425], + [5, 5, 5858, "Metrics/ClassLength: Class has too many lines. [127/100]", 2663802475], + [14, 7, 413, "Metrics/AbcSize: Assignment Branch Condition size for `body_text` is too high. [<2, 17, 5> 17.83/17]", 1825622248], + [28, 9, 23, "Style/StringConcatenation: Prefer string interpolation to string concatenation.", 1178765246], + [31, 7, 241, "Metrics/AbcSize: Assignment Branch Condition size for `opening_line_text` is too high. [<0, 17, 1> 17.03/17]", 1468915915], + [37, 7, 237, "Metrics/AbcSize: Assignment Branch Condition size for `closing_line_text` is too high. [<0, 18, 1> 18.03/17]", 4077830027], + [73, 7, 1058, "Metrics/AbcSize: Assignment Branch Condition size for `statements_node` is too high. [<1, 30, 11> 31.97/17]", 4004813764], + [73, 7, 1058, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `statements_node` is too high. [12/7]", 4004813764], + [73, 7, 1058, "Metrics/MethodLength: Method has too many lines. [20/10]", 4004813764], + [73, 7, 1058, "Metrics/PerceivedComplexity: Perceived complexity for `statements_node` is too high. [10/8]", 4004813764], + [100, 7, 567, "Metrics/AbcSize: Assignment Branch Condition size for `body_start_line` is too high. [<1, 24, 4> 24.35/17]", 2388795687], + [103, 121, 17, "Layout/LineLength: Line is too long. [137/120]", 503895268], + [111, 7, 863, "Metrics/AbcSize: Assignment Branch Condition size for `body_end_line` is too high. [<2, 38, 7> 38.69/17]", 60007760], + [111, 7, 863, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `body_end_line` is too high. [8/7]", 60007760], + [111, 7, 863, "Metrics/MethodLength: Method has too many lines. [11/10]", 60007760], + [114, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 2068513341], + [116, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 270242779] + ], + "lib/prism/merge/node_emission_support.rb:388716709": [ + [5, 5, 25, "Style/Documentation: Missing top-level documentation comment for `class Prism::Merge::NodeEmissionSupport`.", 1335077453], + [5, 5, 42322, "Metrics/ClassLength: Class has too many lines. [775/100]", 2081266710], + [14, 7, 2734, "Metrics/AbcSize: Assignment Branch Condition size for `emit_dest_prefix_lines` is too high. [<18, 54, 18> 59.7/17]", 4241256208], + [14, 7, 2734, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `emit_dest_prefix_lines` is too high. [16/7]", 4241256208], + [14, 7, 2734, "Metrics/MethodLength: Method has too many lines. [54/10]", 4241256208], + [14, 7, 2734, "Metrics/PerceivedComplexity: Perceived complexity for `emit_dest_prefix_lines` is too high. [17/8]", 4241256208], + [19, 121, 1, "Layout/LineLength: Line is too long. [121/120]", 177656], + [20, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 3503445075], + [81, 7, 2526, "Metrics/AbcSize: Assignment Branch Condition size for `emit_removed_destination_node_comments` is too high. [<15, 38, 6> 41.29/17]", 3275408633], + [81, 7, 2526, "Metrics/MethodLength: Method has too many lines. [63/10]", 3275408633], + [153, 7, 1430, "Metrics/AbcSize: Assignment Branch Condition size for `emit_dest_gap_lines` is too high. [<7, 19, 11> 23.04/17]", 2013951205], + [153, 7, 1430, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `emit_dest_gap_lines` is too high. [9/7]", 2013951205], + [153, 7, 1430, "Metrics/MethodLength: Method has too many lines. [27/10]", 2013951205], + [153, 7, 1430, "Metrics/PerceivedComplexity: Perceived complexity for `emit_dest_gap_lines` is too high. [9/8]", 2013951205], + [154, 36, 21, "Style/NumericPredicate: Use `last_output_line.zero?` instead of `last_output_line == 0`.", 1942859694], + [160, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 3276957001], + [187, 7, 9316, "Metrics/AbcSize: Assignment Branch Condition size for `emit_matched_template_node` is too high. [<52, 122, 45> 140.0/17]", 605812917], + [187, 7, 9316, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `emit_matched_template_node` is too high. [43/7]", 605812917], + [187, 7, 9316, "Metrics/MethodLength: Method has too many lines. [151/10]", 605812917], + [187, 7, 9316, "Metrics/PerceivedComplexity: Perceived complexity for `emit_matched_template_node` is too high. [45/8]", 605812917], + [269, 121, 22, "Layout/LineLength: Line is too long. [142/120]", 2775680224], + [301, 121, 10, "Layout/LineLength: Line is too long. [130/120]", 249577804], + [331, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 2267103911], + [361, 121, 27, "Layout/LineLength: Line is too long. [147/120]", 988398654], + [373, 7, 6908, "Metrics/AbcSize: Assignment Branch Condition size for `emit_node` is too high. [<44, 90, 54> 113.8/17]", 2848614159], + [373, 7, 6908, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `emit_node` is too high. [38/7]", 2848614159], + [373, 7, 6908, "Metrics/MethodLength: Method has too many lines. [135/10]", 2848614159], + [373, 7, 6908, "Metrics/PerceivedComplexity: Perceived complexity for `emit_node` is too high. [44/8]", 2848614159], + [388, 121, 25, "Layout/LineLength: Line is too long. [145/120]", 3628174615], + [475, 121, 15, "Layout/LineLength: Line is too long. [135/120]", 650150522], + [480, 15, 379, "Metrics/BlockNesting: Avoid more than 3 levels of block nesting.", 3006808047], + [519, 121, 7, "Layout/LineLength: Line is too long. [127/120]", 2020907649], + [536, 7, 1166, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `filter_previous_destination_owned_template_leading_comments` is too high. [8/7]", 2076094754], + [536, 7, 1166, "Metrics/MethodLength: Method has too many lines. [15/10]", 2076094754], + [536, 71, 13, "Lint/UnusedMethodArgument: Unused method argument - `template_node`.", 1616609802], + [587, 7, 973, "Metrics/MethodLength: Method has too many lines. [15/10]", 1892360110], + [587, 60, 172, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [7/5]", 2784840176], + [588, 121, 5, "Layout/LineLength: Line is too long. [125/120]", 169966263], + [614, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2087656651], + [627, 7, 873, "Metrics/AbcSize: Assignment Branch Condition size for `previous_template_gap_already_precedes_leading_comments?` is too high. [<5, 19, 11> 22.52/17]", 268778340], + [627, 7, 873, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `previous_template_gap_already_precedes_leading_comments?` is too high. [9/7]", 268778340], + [627, 7, 873, "Metrics/MethodLength: Method has too many lines. [13/10]", 268778340], + [627, 7, 873, "Metrics/PerceivedComplexity: Perceived complexity for `previous_template_gap_already_precedes_leading_comments?` is too high. [9/8]", 268778340], + [636, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 618947799], + [696, 7, 457, "Metrics/MethodLength: Method has too many lines. [11/10]", 349820622], + [724, 7, 758, "Metrics/AbcSize: Assignment Branch Condition size for `partial_same_line_node?` is too high. [<8, 31, 5> 32.4/17]", 1768803955], + [775, 7, 597, "Metrics/MethodLength: Method has too many lines. [12/10]", 2742538822], + [775, 40, 67, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 725821220], + [792, 7, 552, "Metrics/MethodLength: Method has too many lines. [12/10]", 4255654885], + [815, 7, 845, "Metrics/MethodLength: Method has too many lines. [13/10]", 3468050888], + [846, 7, 1097, "Metrics/AbcSize: Assignment Branch Condition size for `filter_emitted_template_leading_comments` is too high. [<6, 18, 3> 19.21/17]", 2091395187], + [846, 7, 1097, "Metrics/MethodLength: Method has too many lines. [17/10]", 2091395187], + [882, 7, 822, "Metrics/MethodLength: Method has too many lines. [13/10]", 3499946440], + [899, 7, 1359, "Metrics/AbcSize: Assignment Branch Condition size for `collapse_matched_template_leading_prefix` is too high. [<7, 22, 10> 25.16/17]", 3976364089], + [899, 7, 1359, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `collapse_matched_template_leading_prefix` is too high. [9/7]", 3976364089], + [899, 7, 1359, "Metrics/MethodLength: Method has too many lines. [21/10]", 3976364089], + [899, 7, 1359, "Metrics/PerceivedComplexity: Perceived complexity for `collapse_matched_template_leading_prefix` is too high. [9/8]", 3976364089], + [943, 121, 37, "Layout/LineLength: Line is too long. [157/120]", 3703011298], + [947, 7, 746, "Metrics/MethodLength: Method has too many lines. [17/10]", 3532927627] + ], + "lib/prism/merge/partial_template_merger.rb:2303997532": [ + [14, 7, 826, "Metrics/MethodLength: Method has too many lines. [14/10]", 713706122], + [14, 21, 329, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [12/5]", 2768355468], + [55, 7, 487, "Metrics/MethodLength: Method has too many lines. [11/10]", 447766477], + [75, 7, 520, "Metrics/AbcSize: Assignment Branch Condition size for `node_to_text` is too high. [<1, 19, 6> 19.95/17]", 1593952791], + [84, 46, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765] + ], + "lib/prism/merge/recursive_merge_policy.rb:4204303290": [ + [5, 5, 26, "Style/Documentation: Missing top-level documentation comment for `class Prism::Merge::RecursiveMergePolicy`.", 1329613257], + [12, 7, 1132, "Metrics/AbcSize: Assignment Branch Condition size for `should_merge?` is too high. [<4, 25, 15> 29.43/17]", 4123619949], + [12, 7, 1132, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `should_merge?` is too high. [14/7]", 4123619949], + [12, 7, 1132, "Metrics/MethodLength: Method has too many lines. [20/10]", 4123619949], + [12, 7, 1132, "Metrics/PerceivedComplexity: Perceived complexity for `should_merge?` is too high. [13/8]", 4123619949], + [47, 7, 398, "Metrics/MethodLength: Method has too many lines. [18/10]", 385694759] + ], + "lib/prism/merge/recursive_node_body_merger.rb:1132596837": [ + [5, 5, 29, "Style/Documentation: Missing top-level documentation comment for `class Prism::Merge::RecursiveNodeBodyMerger`.", 3703318859], + [5, 5, 18505, "Metrics/ClassLength: Class has too many lines. [333/100]", 3196902308], + [12, 7, 12756, "Metrics/AbcSize: Assignment Branch Condition size for `merge` is too high. [<78, 262, 90> 287.8/17]", 1909933362], + [12, 7, 12756, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `merge` is too high. [70/7]", 1909933362], + [12, 7, 12756, "Metrics/MethodLength: Method has too many lines. [215/10]", 1909933362], + [12, 7, 12756, "Metrics/PerceivedComplexity: Perceived complexity for `merge` is too high. [75/8]", 1909933362], + [27, 121, 10, "Layout/LineLength: Line is too long. [130/120]", 929875726], + [62, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 518709914], + [67, 121, 10, "Layout/LineLength: Line is too long. [130/120]", 366676207], + [266, 7, 1221, "Metrics/AbcSize: Assignment Branch Condition size for `remap_inner_unresolved_review_state!` is too high. [<8, 22, 6> 24.17/17]", 3210674006], + [266, 7, 1221, "Metrics/MethodLength: Method has too many lines. [21/10]", 3210674006], + [293, 7, 1121, "Metrics/AbcSize: Assignment Branch Condition size for `remap_inner_unresolved_case` is too high. [<6, 24, 0> 24.74/17]", 3468635549], + [293, 7, 1121, "Metrics/MethodLength: Method has too many lines. [15/10]", 3468635549], + [376, 7, 826, "Metrics/AbcSize: Assignment Branch Condition size for `emit_trailing_layout_gap_lines` is too high. [<6, 18, 9> 21/17]", 2158299973], + [376, 7, 826, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `emit_trailing_layout_gap_lines` is too high. [8/7]", 2158299973], + [376, 7, 826, "Metrics/MethodLength: Method has too many lines. [17/10]", 2158299973], + [376, 7, 826, "Metrics/PerceivedComplexity: Perceived complexity for `emit_trailing_layout_gap_lines` is too high. [9/8]", 2158299973] + ], + "lib/prism/merge/ruby_doc_surface_analyzer.rb:3389668357": [ + [7, 5, 7100, "Metrics/ClassLength: Class has too many lines. [162/100]", 77379508], + [50, 7, 1408, "Metrics/AbcSize: Assignment Branch Condition size for `build_doc_comment_surface` is too high. [<10, 25, 5> 27.39/17]", 2414553577], + [50, 7, 1408, "Metrics/MethodLength: Method has too many lines. [28/10]", 2414553577], + [91, 7, 1256, "Metrics/AbcSize: Assignment Branch Condition size for `build_example_surface` is too high. [<4, 23, 2> 23.43/17]", 4074178203], + [91, 7, 1256, "Metrics/MethodLength: Method has too many lines. [25/10]", 4074178203], + [131, 7, 555, "Metrics/AbcSize: Assignment Branch Condition size for `doc_comment_entries` is too high. [<8, 18, 6> 20.59/17]", 358090808] + ], + "lib/prism/merge/scaffold_chunk_remover.rb:1404116850": [ + [34, 7, 2064, "Metrics/AbcSize: Assignment Branch Condition size for `call` is too high. [<21, 62, 22> 69.06/17]", 3983172586], + [34, 7, 2064, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `call` is too high. [21/7]", 3983172586], + [34, 7, 2064, "Metrics/MethodLength: Method has too many lines. [39/10]", 3983172586], + [34, 7, 2064, "Metrics/PerceivedComplexity: Perceived complexity for `call` is too high. [21/8]", 3983172586] + ], + "lib/prism/merge/smart_merger.rb:3814529034": [ + [48, 5, 42561, "Metrics/ClassLength: Class has too many lines. [603/100]", 3828655257], + [96, 7, 2032, "Metrics/MethodLength: Method has too many lines. [24/10]", 4118525224], + [96, 21, 595, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [18/5]", 1562155096], + [171, 7, 1325, "Metrics/AbcSize: Assignment Branch Condition size for `merge_with_debug` is too high. [<3, 24, 19> 30.76/17]", 605983530], + [171, 7, 1325, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `merge_with_debug` is too high. [20/7]", 605983530], + [171, 7, 1325, "Metrics/MethodLength: Method has too many lines. [27/10]", 605983530], + [171, 7, 1325, "Metrics/PerceivedComplexity: Perceived complexity for `merge_with_debug` is too high. [20/8]", 605983530], + [310, 7, 664, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `frozen_node?` is too high. [8/7]", 2577924190], + [352, 7, 508, "Metrics/MethodLength: Method has too many lines. [13/10]", 1368018500], + [442, 7, 1155, "Metrics/AbcSize: Assignment Branch Condition size for `build_signature_map` is too high. [<11, 16, 8> 21/17]", 3956321005], + [442, 7, 1155, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `build_signature_map` is too high. [8/7]", 3956321005], + [442, 7, 1155, "Metrics/MethodLength: Method has too many lines. [16/10]", 3956321005], + [483, 7, 2731, "Metrics/AbcSize: Assignment Branch Condition size for `preference_for_node` is too high. [<7, 22, 20> 30.55/17]", 1325207598], + [483, 7, 2731, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `preference_for_node` is too high. [21/7]", 1325207598], + [483, 7, 2731, "Metrics/MethodLength: Method has too many lines. [25/10]", 1325207598], + [483, 7, 2731, "Metrics/PerceivedComplexity: Perceived complexity for `preference_for_node` is too high. [21/8]", 1325207598], + [659, 32, 73, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 2261515417], + [670, 35, 79, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 1350141395], + [681, 42, 63, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 2615605084], + [852, 35, 213, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [8/5]", 720547751] + ], + "lib/prism/merge/source_line_lookup.rb:1098479933": [ + [5, 5, 23, "Style/Documentation: Missing top-level documentation comment for `module Prism::Merge::SourceLineLookup`.", 2168434862] + ], + "lib/prism/merge/top_level_merge_runner.rb:1106437552": [ + [38, 5, 61468, "Metrics/ClassLength: Class has too many lines. [1156/100]", 150648557], + [66, 7, 5196, "Metrics/AbcSize: Assignment Branch Condition size for `merge` is too high. [<22, 68, 9> 72.03/17]", 176450457], + [66, 7, 5196, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `merge` is too high. [9/7]", 176450457], + [66, 7, 5196, "Metrics/MethodLength: Method has too many lines. [75/10]", 176450457], + [66, 7, 5196, "Metrics/PerceivedComplexity: Perceived complexity for `merge` is too high. [10/8]", 176450457], + [162, 7, 2023, "Metrics/AbcSize: Assignment Branch Condition size for `start_runtime_session!` is too high. [<5, 48, 1> 48.27/17]", 2943824289], + [162, 7, 2023, "Metrics/MethodLength: Method has too many lines. [44/10]", 2943824289], + [212, 7, 1765, "Metrics/AbcSize: Assignment Branch Condition size for `complete_runtime_session!` is too high. [<2, 21, 9> 22.93/17]", 2968004900], + [212, 7, 1765, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `complete_runtime_session!` is too high. [8/7]", 2968004900], + [212, 7, 1765, "Metrics/MethodLength: Method has too many lines. [36/10]", 2968004900], + [212, 7, 1765, "Metrics/PerceivedComplexity: Perceived complexity for `complete_runtime_session!` is too high. [10/8]", 2968004900], + [229, 121, 11, "Layout/LineLength: Line is too long. [131/120]", 3907470478], + [254, 7, 584, "Metrics/MethodLength: Method has too many lines. [14/10]", 1615217394], + [272, 7, 589, "Metrics/AbcSize: Assignment Branch Condition size for `runtime_document_surface` is too high. [<1, 19, 1> 19.05/17]", 1835005228], + [272, 7, 589, "Metrics/MethodLength: Method has too many lines. [12/10]", 1835005228], + [288, 7, 3192, "Metrics/AbcSize: Assignment Branch Condition size for `register_discovered_surface_operations!` is too high. [<12, 60, 9> 61.85/17]", 3059111269], + [288, 7, 3192, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `register_discovered_surface_operations!` is too high. [10/7]", 3059111269], + [288, 7, 3192, "Metrics/MethodLength: Method has too many lines. [65/10]", 3059111269], + [288, 7, 3192, "Metrics/PerceivedComplexity: Perceived complexity for `register_discovered_surface_operations!` is too high. [10/8]", 3059111269], + [297, 9, 2237, "Metrics/BlockLength: Block has too many lines. [44/25]", 809738986], + [399, 7, 1643, "Metrics/AbcSize: Assignment Branch Condition size for `execute_child_operations!` is too high. [<5, 33, 5> 33.75/17]", 1049305146], + [399, 7, 1643, "Metrics/MethodLength: Method has too many lines. [36/10]", 1049305146], + [400, 9, 1570, "Metrics/BlockLength: Block has too many lines. [29/25]", 1597985402], + [404, 9, 31, "Style/MultilineBlockChain: Avoid multi-line chains of blocks.", 3553388257], + [448, 7, 631, "Metrics/MethodLength: Method has too many lines. [15/10]", 1652116821], + [466, 7, 1306, "Metrics/AbcSize: Assignment Branch Condition size for `merge_runtime_surface` is too high. [<2, 18, 4> 18.55/17]", 1347264970], + [466, 7, 1306, "Metrics/MethodLength: Method has too many lines. [29/10]", 1347264970], + [500, 7, 1393, "Metrics/AbcSize: Assignment Branch Condition size for `merge_runtime_doc_comment_surface` is too high. [<4, 23, 5> 23.87/17]", 3745645404], + [500, 7, 1393, "Metrics/MethodLength: Method has too many lines. [29/10]", 3745645404], + [534, 7, 826, "Metrics/AbcSize: Assignment Branch Condition size for `apply_runtime_doc_children` is too high. [<5, 24, 7> 25.5/17]", 1386022126], + [534, 7, 826, "Metrics/MethodLength: Method has too many lines. [15/10]", 1386022126], + [542, 16, 27, "Style/MultilineBlockChain: Avoid multi-line chains of blocks.", 1443167664], + [546, 9, 24, "Style/MultilineBlockChain: Avoid multi-line chains of blocks.", 644874689], + [554, 7, 1438, "Metrics/AbcSize: Assignment Branch Condition size for `apply_runtime_example_child` is too high. [<10, 44, 10> 46.22/17]", 2594444962], + [554, 7, 1438, "Metrics/MethodLength: Method has too many lines. [25/10]", 2594444962], + [556, 121, 11, "Layout/LineLength: Line is too long. [131/120]", 3651736697], + [599, 7, 518, "Metrics/MethodLength: Method has too many lines. [11/10]", 523939757], + [623, 7, 753, "Metrics/MethodLength: Method has too many lines. [15/10]", 3406860674], + [683, 7, 1514, "Metrics/AbcSize: Assignment Branch Condition size for `compute_similarity_pairs` is too high. [<17, 42, 11> 46.63/17]", 103276977], + [683, 7, 1514, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `compute_similarity_pairs` is too high. [11/7]", 103276977], + [683, 7, 1514, "Metrics/MethodLength: Method has too many lines. [27/10]", 103276977], + [683, 7, 1514, "Metrics/PerceivedComplexity: Perceived complexity for `compute_similarity_pairs` is too high. [11/8]", 103276977], + [735, 7, 545, "Metrics/MethodLength: Method has too many lines. [12/10]", 398381329], + [763, 7, 586, "Metrics/MethodLength: Method has too many lines. [11/10]", 1559638959], + [843, 7, 640, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `collect_nested_signatures` is too high. [10/7]", 3947424552], + [843, 7, 640, "Metrics/MethodLength: Method has too many lines. [13/10]", 3947424552], + [843, 7, 640, "Metrics/PerceivedComplexity: Perceived complexity for `collect_nested_signatures` is too high. [10/8]", 3947424552], + [845, 12, 9, "Style/NumericPredicate: Use `depth.positive?` instead of `depth > 0`.", 2180768870], + [869, 7, 1297, "Metrics/AbcSize: Assignment Branch Condition size for `nested_statement_children` is too high. [<2, 50, 17> 52.85/17]", 3818826989], + [869, 7, 1297, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `nested_statement_children` is too high. [17/7]", 3818826989], + [869, 7, 1297, "Metrics/MethodLength: Method has too many lines. [19/10]", 3818826989], + [869, 7, 1297, "Metrics/PerceivedComplexity: Perceived complexity for `nested_statement_children` is too high. [15/8]", 3818826989], + [877, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 3315454453], + [882, 93, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], + [883, 89, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], + [884, 93, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], + [899, 7, 754, "Metrics/AbcSize: Assignment Branch Condition size for `prepare_comment_augmenters!` is too high. [<1, 19, 0> 19.03/17]", 311364642], + [899, 7, 754, "Metrics/MethodLength: Method has too many lines. [12/10]", 311364642], + [1003, 7, 1707, "Metrics/AbcSize: Assignment Branch Condition size for `retained_owner_plan` is too high. [<16, 40, 12> 44.72/17]", 375532236], + [1003, 7, 1707, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `retained_owner_plan` is too high. [13/7]", 375532236], + [1003, 7, 1707, "Metrics/MethodLength: Method has too many lines. [33/10]", 375532236], + [1003, 7, 1707, "Metrics/PerceivedComplexity: Perceived complexity for `retained_owner_plan` is too high. [13/8]", 375532236], + [1003, 55, 17, "Lint/UnusedMethodArgument: Unused method argument - `dest_by_signature`.", 379778684], + [1024, 9, 250, "Style/CombinableLoops: Combine this loop with the previous loop.", 3315024098], + [1031, 121, 5, "Layout/LineLength: Line is too long. [125/120]", 180543822], + [1048, 7, 4811, "Metrics/AbcSize: Assignment Branch Condition size for `process_dest_node` is too high. [<23, 71, 16> 76.33/17]", 329713352], + [1048, 7, 4811, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `process_dest_node` is too high. [13/7]", 329713352], + [1048, 7, 4811, "Metrics/MethodLength: Method has too many lines. [90/10]", 329713352], + [1048, 7, 4811, "Metrics/PerceivedComplexity: Perceived complexity for `process_dest_node` is too high. [17/8]", 329713352], + [1048, 28, 279, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [9/5]", 2321512478], + [1190, 7, 757, "Metrics/MethodLength: Method has too many lines. [19/10]", 3306507447], + [1228, 44, 189, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 215272527], + [1259, 7, 888, "Metrics/MethodLength: Method has too many lines. [17/10]", 2638200013], + [1259, 31, 189, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [9/5]", 50070642], + [1281, 7, 719, "Metrics/MethodLength: Method has too many lines. [13/10]", 530865591], + [1299, 7, 1393, "Metrics/AbcSize: Assignment Branch Condition size for `process_non_recursive_match` is too high. [<10, 23, 7> 26.04/17]", 324106576], + [1299, 7, 1393, "Metrics/MethodLength: Method has too many lines. [29/10]", 324106576], + [1333, 7, 1106, "Metrics/AbcSize: Assignment Branch Condition size for `process_unresolved_non_recursive_match` is too high. [<3, 19, 3> 19.47/17]", 1476652897], + [1333, 7, 1106, "Metrics/MethodLength: Method has too many lines. [26/10]", 1476652897], + [1374, 7, 1935, "Metrics/AbcSize: Assignment Branch Condition size for `record_unresolved_match_case!` is too high. [<4, 26, 3> 26.48/17]", 456739474], + [1374, 7, 1935, "Metrics/MethodLength: Method has too many lines. [37/10]", 456739474], + [1459, 7, 1067, "Metrics/AbcSize: Assignment Branch Condition size for `advance_last_output_dest_line` is too high. [<6, 19, 6> 20.81/17]", 331135500], + [1459, 7, 1067, "Metrics/MethodLength: Method has too many lines. [11/10]", 331135500], + [1459, 40, 181, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 2038823112] + ], + "lib/prism/merge/wrapper_comment_support.rb:3046735928": [ + [5, 5, 27, "Style/Documentation: Missing top-level documentation comment for `class Prism::Merge::WrapperCommentSupport`.", 2211657316], + [5, 5, 17765, "Metrics/ClassLength: Class has too many lines. [358/100]", 370100972], + [14, 7, 3072, "Metrics/AbcSize: Assignment Branch Condition size for `filtered_leading_comments_for` is too high. [<26, 58, 27> 69.06/17]", 934788024], + [14, 7, 3072, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `filtered_leading_comments_for` is too high. [24/7]", 934788024], + [14, 7, 3072, "Metrics/MethodLength: Method has too many lines. [48/10]", 934788024], + [14, 7, 3072, "Metrics/PerceivedComplexity: Perceived complexity for `filtered_leading_comments_for` is too high. [27/8]", 934788024], + [24, 121, 10, "Layout/LineLength: Line is too long. [130/120]", 366676207], + [65, 11, 68, "Style/MultilineBlockChain: Avoid multi-line chains of blocks.", 2360366291], + [74, 73, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], + [95, 7, 1446, "Metrics/AbcSize: Assignment Branch Condition size for `emit_leading_comments` is too high. [<8, 16, 13> 22.11/17]", 86315238], + [95, 7, 1446, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `emit_leading_comments` is too high. [9/7]", 86315238], + [95, 7, 1446, "Metrics/MethodLength: Method has too many lines. [31/10]", 86315238], + [95, 7, 1446, "Metrics/PerceivedComplexity: Perceived complexity for `emit_leading_comments` is too high. [11/8]", 86315238], + [95, 32, 73, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 2261515417], + [98, 9, 1234, "Metrics/BlockLength: Block has too many lines. [28/25]", 357181412], + [134, 7, 953, "Metrics/MethodLength: Method has too many lines. [19/10]", 3183807785], + [134, 35, 79, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 1350141395], + [162, 7, 1228, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `emit_comment_region` is too high. [10/7]", 2201645681], + [162, 7, 1228, "Metrics/MethodLength: Method has too many lines. [31/10]", 2201645681], + [162, 7, 1228, "Metrics/PerceivedComplexity: Perceived complexity for `emit_comment_region` is too high. [11/8]", 2201645681], + [162, 30, 67, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 191987245], + [163, 29, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], + [202, 7, 777, "Metrics/MethodLength: Method has too many lines. [18/10]", 4073303022], + [202, 30, 68, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 3851519454], + [208, 9, 8, "Style/MultilineBlockChain: Avoid multi-line chains of blocks.", 359222635], + [226, 7, 1080, "Metrics/MethodLength: Method has too many lines. [27/10]", 296167644], + [226, 42, 63, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 2615605084], + [260, 7, 689, "Metrics/AbcSize: Assignment Branch Condition size for `append_inline_comment_entries` is too high. [<7, 19, 8> 21.77/17]", 1575903523], + [260, 7, 689, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `append_inline_comment_entries` is too high. [8/7]", 1575903523], + [260, 7, 689, "Metrics/MethodLength: Method has too many lines. [16/10]", 1575903523], + [260, 7, 689, "Metrics/PerceivedComplexity: Perceived complexity for `append_inline_comment_entries` is too high. [9/8]", 1575903523], + [288, 7, 607, "Metrics/AbcSize: Assignment Branch Condition size for `line_inline_comment_entries` is too high. [<3, 18, 7> 19.54/17]", 2131701672], + [288, 7, 607, "Metrics/MethodLength: Method has too many lines. [12/10]", 2131701672], + [338, 7, 1023, "Metrics/MethodLength: Method has too many lines. [19/10]", 2409125040], + [363, 7, 854, "Metrics/AbcSize: Assignment Branch Condition size for `runtime_doc_comment_operation_for` is too high. [<4, 24, 13> 27.59/17]", 1109173425], + [363, 7, 854, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `runtime_doc_comment_operation_for` is too high. [10/7]", 1109173425], + [363, 7, 854, "Metrics/MethodLength: Method has too many lines. [11/10]", 1109173425], + [363, 7, 854, "Metrics/PerceivedComplexity: Perceived complexity for `runtime_doc_comment_operation_for` is too high. [10/8]", 1109173425], + [373, 121, 10, "Layout/LineLength: Line is too long. [130/120]", 1843406524], + [381, 7, 755, "Metrics/AbcSize: Assignment Branch Condition size for `build_runtime_leading_region` is too high. [<5, 18, 4> 19.1/17]", 3130034424], + [381, 7, 755, "Metrics/MethodLength: Method has too many lines. [14/10]", 3130034424], + [411, 7, 850, "Metrics/AbcSize: Assignment Branch Condition size for `runtime_line_numbers_for` is too high. [<6, 26, 6> 27.35/17]", 966446340] + ], + "prism-merge.gemspec:2052428369": [ + [128, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 2821357214], + [143, 121, 50, "Layout/LineLength: Line is too long. [170/120]", 3888612416], + [144, 121, 29, "Layout/LineLength: Line is too long. [149/120]", 981994949], + [151, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 4229808912] + ], + "spec/fixtures/reproducible/04_gemspec_duplication/destination.rb:971498360": [ + [25, 1, 8292, "Metrics/BlockLength: Block has too many lines. [110/25]", 1251580584], + [32, 121, 317, "Layout/LineLength: Line is too long. [437/120]", 1870252497], + [184, 121, 34, "Layout/LineLength: Line is too long. [154/120]", 4147388508], + [199, 121, 50, "Layout/LineLength: Line is too long. [170/120]", 3888612416], + [200, 121, 29, "Layout/LineLength: Line is too long. [149/120]", 981994949], + [207, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 4229808912] + ], + "spec/fixtures/reproducible/04_gemspec_duplication/template.rb:1741222365": [ + [19, 1, 4121, "Metrics/BlockLength: Block has too many lines. [71/25]", 547880907], + [26, 121, 317, "Layout/LineLength: Line is too long. [437/120]", 1870252497] + ], + "spec/fixtures/reproducible/05_gemspec_orphan_duplication/destination.rb:2573186797": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177634] + ], + "spec/fixtures/reproducible/05_gemspec_orphan_duplication/result.rb:2573186797": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177634] + ], + "spec/fixtures/reproducible/05_gemspec_orphan_duplication/template.rb:1825302441": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177634] + ], + "spec/fixtures_integration_spec.rb:3086023041": [ + [7, 1, 23038, "Metrics/BlockLength: Block has too many lines. [521/25]", 1776221706], + [66, 121, 26, "Layout/LineLength: Line is too long. [146/120]", 1448895712], + [72, 3, 1302, "Metrics/BlockLength: Block has too many lines. [30/25]", 2973641144], + [106, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5858795], + [113, 3, 1679, "Metrics/BlockLength: Block has too many lines. [38/25]", 2954972744], + [419, 3, 7512, "Metrics/BlockLength: Block has too many lines. [149/25]", 2278210376] + ], + "spec/reproducible_merge_spec.rb:2334824632": [ + [6, 1, 2420, "Metrics/BlockLength: Block has too many lines. [50/25]", 2207509489], + [39, 121, 13, "Layout/LineLength: Line is too long. [133/120]", 1416718429] + ] +} diff --git a/gems/prism-merge/Gemfile b/gems/prism-merge/Gemfile index 9827369fd..169f9d941 100644 --- a/gems/prism-merge/Gemfile +++ b/gems/prism-merge/Gemfile @@ -6,7 +6,7 @@ # kettle-jem will then preserve content between those markers across template runs. # kettle-jem:unfreeze -source "https://gem.coop" +source 'https://gem.coop' git_source(:codeberg) { |repo_name| "https://codeberg.org/#{repo_name}" } git_source(:gitlab) { |repo_name| "https://gitlab.com/#{repo_name}" } @@ -19,57 +19,53 @@ git_source(:gitlab) { |repo_name| "https://gitlab.com/#{repo_name}" } gemspec # Local workspace dependency wiring for *_local.gemfile overrides -nomono_requirements = ["~> 1.0", ">= 1.0.8"] -gem "nomono", *nomono_requirements, require: false # ruby >= 2.2 +nomono_requirements = ['~> 1.0', '>= 1.0.8'] +gem 'nomono', *nomono_requirements, require: false # ruby >= 2.2 # Direct sibling dependencies (env-switched via STRUCTUREDMERGE_DEV) direct_sibling_gems = %w[ ruby-merge ] -direct_sibling_dev = ENV.fetch("STRUCTUREDMERGE_DEV", "") +direct_sibling_dev = ENV.fetch('STRUCTUREDMERGE_DEV', '') direct_sibling_local = !direct_sibling_dev.empty? && !%w[false 0 no off].include?(direct_sibling_dev.downcase) -direct_sibling_templating = ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? +direct_sibling_templating = ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero?) - direct_sibling_dev_was_set = ENV.key?("STRUCTUREDMERGE_DEV") - direct_sibling_dev_original = ENV.fetch("STRUCTUREDMERGE_DEV", nil) + (direct_sibling_local || + ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) + direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') + direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) begin nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path("Gemfile.lock", __dir__) + nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == "nomono" } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - if nomono_locked - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] - end - end - Kernel.send(:gem, "nomono", *nomono_activation_requirements) - require "nomono/bundler" - if direct_sibling_templating && !direct_sibling_local - ENV["STRUCTUREDMERGE_DEV"] = File.expand_path("..", __dir__) + Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked end + Kernel.send(:gem, 'nomono', *nomono_activation_requirements) + require 'nomono/bundler' + ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local eval_nomono_gems( gems: direct_sibling_gems, - prefix: "STRUCTUREDMERGE", - path_env: "STRUCTUREDMERGE_DEV", - root: ["src", "my", "structuredmerge"] + prefix: 'STRUCTUREDMERGE', + path_env: 'STRUCTUREDMERGE_DEV', + root: %w[src my structuredmerge] ) rescue LoadError - warn "Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies." + warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' ensure if direct_sibling_templating && !direct_sibling_local if direct_sibling_dev_was_set - ENV["STRUCTUREDMERGE_DEV"] = direct_sibling_dev_original + ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original else - ENV.delete("STRUCTUREDMERGE_DEV") + ENV.delete('STRUCTUREDMERGE_DEV') end end end @@ -196,28 +192,28 @@ if direct_sibling_gems.any? && end # Use released TSLP with the Ruby ABI platform-gem fix. -gem "tree_sitter_language_pack", "~> 1.13", ">= 1.13.3" +gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' # Templating (env-switched: STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local paths) -eval_gemfile "gemfiles/modular/templating.gemfile" if ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? +eval_gemfile 'gemfiles/modular/templating.gemfile' if ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? # Debugging -eval_gemfile "gemfiles/modular/debug.gemfile" +eval_gemfile 'gemfiles/modular/debug.gemfile' # Code Coverage (env-switched: KETTLE_DEV_DEV=true for local paths) -eval_gemfile "gemfiles/modular/coverage.gemfile" +eval_gemfile 'gemfiles/modular/coverage.gemfile' # Linting -eval_gemfile "gemfiles/modular/style.gemfile" +eval_gemfile 'gemfiles/modular/style.gemfile' # Documentation -eval_gemfile "gemfiles/modular/documentation.gemfile" +eval_gemfile 'gemfiles/modular/documentation.gemfile' # Optional -eval_gemfile "gemfiles/modular/optional.gemfile" +eval_gemfile 'gemfiles/modular/optional.gemfile' ### Std Lib Extracted Gems -eval_gemfile "gemfiles/modular/x_std_libs.gemfile" +eval_gemfile 'gemfiles/modular/x_std_libs.gemfile' # See unlocked_deps appraisal for more details on irb inclusion -gem "irb", "~> 1.17" # ruby >= 2.7 +gem 'irb', '~> 1.17' # ruby >= 2.7 diff --git a/gems/prism-merge/Gemfile.lock b/gems/prism-merge/Gemfile.lock index ae07c0d1e..0f7f99933 100644 --- a/gems/prism-merge/Gemfile.lock +++ b/gems/prism-merge/Gemfile.lock @@ -7,7 +7,7 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge specs: ruby-merge (7.1.0) ast-merge (= 7.1.0) diff --git a/gems/prism-merge/Rakefile b/gems/prism-merge/Rakefile index 3ceda1211..0413b973d 100644 --- a/gems/prism-merge/Rakefile +++ b/gems/prism-merge/Rakefile @@ -130,23 +130,23 @@ end ### DUPLICATE DRIFT TASKS begin - require "kettle/drift" + require 'kettle/drift' Kettle::Drift.install_tasks rescue LoadError - desc("(stub) kettle:drift:check is unavailable") - task("kettle:drift:check") do + desc('(stub) kettle:drift:check is unavailable') + task('kettle:drift:check') do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc("(stub) kettle:drift:update is unavailable") - task("kettle:drift:update") do + desc('(stub) kettle:drift:update is unavailable') + task('kettle:drift:update') do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc("(stub) kettle:drift:force_update is unavailable") - task("kettle:drift:force_update") do + desc('(stub) kettle:drift:force_update is unavailable') + task('kettle:drift:force_update') do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc("(stub) kettle:drift is unavailable") - task("kettle:drift" => "kettle:drift:update") + desc('(stub) kettle:drift is unavailable') + task('kettle:drift' => 'kettle:drift:update') end ### TEMPLATING TASKS diff --git a/gems/prism-merge/bin/yard b/gems/prism-merge/bin/yard index a7e8b6eed..5d516ad6f 100755 --- a/gems/prism-merge/bin/yard +++ b/gems/prism-merge/bin/yard @@ -12,4 +12,4 @@ # `yard` / `bin/yard`. Keep this binstub as a handoff to the task so # humans and tools that reach for `bin/yard` still run the full docs # workflow with post-processing hooks. -exec("bundle", "exec", "rake", "yard") +exec('bundle', 'exec', 'rake', 'yard') diff --git a/gems/prism-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile b/gems/prism-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile index dec650815..b8392fab0 100644 --- a/gems/prism-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile +++ b/gems/prism-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.1 -gem "benchmark", "~> 0.5", ">= 0.5.0" # Removed from Std Lib in Ruby 4.0 +gem 'benchmark', '~> 0.5', '>= 0.5.0' # Removed from Std Lib in Ruby 4.0 diff --git a/gems/prism-merge/gemfiles/modular/benchmark/vHEAD.gemfile b/gems/prism-merge/gemfiles/modular/benchmark/vHEAD.gemfile index e1eb20c5e..af214aafa 100644 --- a/gems/prism-merge/gemfiles/modular/benchmark/vHEAD.gemfile +++ b/gems/prism-merge/gemfiles/modular/benchmark/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.1 -gem "benchmark", github: "ruby/benchmark", branch: "master" +gem 'benchmark', github: 'ruby/benchmark', branch: 'master' diff --git a/gems/prism-merge/gemfiles/modular/cgi/r4/v0.5.gemfile b/gems/prism-merge/gemfiles/modular/cgi/r4/v0.5.gemfile index 19ed967c3..17ad97260 100644 --- a/gems/prism-merge/gemfiles/modular/cgi/r4/v0.5.gemfile +++ b/gems/prism-merge/gemfiles/modular/cgi/r4/v0.5.gemfile @@ -1 +1 @@ -gem "cgi", "~> 0.5" +gem 'cgi', '~> 0.5' diff --git a/gems/prism-merge/gemfiles/modular/cgi/vHEAD.gemfile b/gems/prism-merge/gemfiles/modular/cgi/vHEAD.gemfile index ef8b816ce..650fbf033 100644 --- a/gems/prism-merge/gemfiles/modular/cgi/vHEAD.gemfile +++ b/gems/prism-merge/gemfiles/modular/cgi/vHEAD.gemfile @@ -1 +1 @@ -gem "cgi", ">= 0.5" +gem 'cgi', '>= 0.5' diff --git a/gems/prism-merge/gemfiles/modular/coverage.gemfile b/gems/prism-merge/gemfiles/modular/coverage.gemfile index 52d737872..b93014b6b 100644 --- a/gems/prism-merge/gemfiles/modular/coverage.gemfile +++ b/gems/prism-merge/gemfiles/modular/coverage.gemfile @@ -4,11 +4,11 @@ # Set KETTLE_DEV_DEV=true for local development with path-based dependencies. # When false (default / CI), remote released gems are used. -if ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false").zero? +if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? # Coverage (remote/released) platform :mri do - gem "kettle-soup-cover", "~> 3.0", ">= 3.0.3", require: false + gem 'kettle-soup-cover', '~> 3.0', '>= 3.0.3', require: false end else - eval_gemfile "coverage_local.gemfile" + eval_gemfile 'coverage_local.gemfile' end diff --git a/gems/prism-merge/gemfiles/modular/coverage_local.gemfile b/gems/prism-merge/gemfiles/modular/coverage_local.gemfile index 3e06a44ef..ab0e08fd4 100644 --- a/gems/prism-merge/gemfiles/modular/coverage_local.gemfile +++ b/gems/prism-merge/gemfiles/modular/coverage_local.gemfile @@ -11,21 +11,19 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] -nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) +nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] +nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == "nomono" } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - if nomono_locked - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] - end + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked end -Kernel.send(:gem, "nomono", *nomono_activation_requirements) -require "nomono/bundler" +Kernel.send(:gem, 'nomono', *nomono_activation_requirements) +require 'nomono/bundler' local_gems = %w[kettle-dev kettle-test kettle-soup-cover kettle-drift] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) @@ -35,21 +33,21 @@ local_gems_to_eval = local_gems - %w[prism-merge] - declared_gems platform :mri do eval_nomono_gems( gems: local_gems_to_eval, - prefix: "KETTLE_DEV", - path_env: "KETTLE_DEV_DEV", - vendored_gems_env: "VENDORED_GEMS", - vendor_gem_dir_env: "VENDOR_GEM_DIR", - debug_env: "KETTLE_DEV_DEBUG" + prefix: 'KETTLE_DEV', + path_env: 'KETTLE_DEV_DEV', + vendored_gems_env: 'VENDORED_GEMS', + vendor_gem_dir_env: 'VENDOR_GEM_DIR', + debug_env: 'KETTLE_DEV_DEBUG' ) - if ENV.fetch("GALTZO_FLOSS_DEV", "false").casecmp("false") != 0 + if ENV.fetch('GALTZO_FLOSS_DEV', 'false').casecmp('false') != 0 eval_nomono_gems( gems: %w[turbo_tests2], - prefix: "GALTZO_FLOSS", - path_env: "GALTZO_FLOSS_DEV", - vendored_gems_env: "GALTZO_FLOSS_VENDORED_GEMS", - vendor_gem_dir_env: "GALTZO_FLOSS_VENDOR_GEM_DIR", - debug_env: "GALTZO_FLOSS_DEBUG" + prefix: 'GALTZO_FLOSS', + path_env: 'GALTZO_FLOSS_DEV', + vendored_gems_env: 'GALTZO_FLOSS_VENDORED_GEMS', + vendor_gem_dir_env: 'GALTZO_FLOSS_VENDOR_GEM_DIR', + debug_env: 'GALTZO_FLOSS_DEBUG' ) end end diff --git a/gems/prism-merge/gemfiles/modular/debug.gemfile b/gems/prism-merge/gemfiles/modular/debug.gemfile index 4e15b1a3a..eed8d4d1e 100644 --- a/gems/prism-merge/gemfiles/modular/debug.gemfile +++ b/gems/prism-merge/gemfiles/modular/debug.gemfile @@ -13,10 +13,10 @@ platform :mri do # Debugging - Ensure ENV["DEBUG"] == "true" to use debuggers within spec suite # Use binding.break, binding.b, or debugger in code - gem "debug", ">= 1.1" # ruby >= 2.7 + gem 'debug', '>= 1.1' # ruby >= 2.7 # Dev Console - Binding.pry - Irb replacement # gem "pry", "~> 0.14" # ruby >= 2.0 end -gem "gem_bench", "~> 2.0", ">= 2.0.5" +gem 'gem_bench', '~> 2.0', '>= 2.0.5' diff --git a/gems/prism-merge/gemfiles/modular/documentation.gemfile b/gems/prism-merge/gemfiles/modular/documentation.gemfile index d8215416e..9d4535f12 100644 --- a/gems/prism-merge/gemfiles/modular/documentation.gemfile +++ b/gems/prism-merge/gemfiles/modular/documentation.gemfile @@ -7,20 +7,20 @@ # # Documentation -gem "kramdown", "~> 2.5", ">= 2.5.2", require: false # Ruby >= 2.5 -gem "kramdown-parser-gfm", "~> 1.1", require: false # Ruby >= 2.3 -gem "yaml-converter", "~> 0.2", ">= 0.2.3", require: false # Ruby >= 3.2 -gem "yard", "~> 0.9", ">= 0.9.45", require: false -gem "yard-junk", "~> 0.1", ">= 0.1.0", require: false # Ruby >= 3.1 -gem "yard-relative_markdown_links", "~> 0.6", require: false +gem 'kramdown', '~> 2.5', '>= 2.5.2', require: false # Ruby >= 2.5 +gem 'kramdown-parser-gfm', '~> 1.1', require: false # Ruby >= 2.3 +gem 'yaml-converter', '~> 0.2', '>= 0.2.3', require: false # Ruby >= 3.2 +gem 'yard', '~> 0.9', '>= 0.9.45', require: false +gem 'yard-junk', '~> 0.1', '>= 0.1.0', require: false # Ruby >= 3.1 +gem 'yard-relative_markdown_links', '~> 0.6', require: false -if ENV.fetch("GALTZO_FLOSS_DEV", "false").casecmp("false").zero? - gem "yard-fence", "~> 0.9", ">= 0.9.6", require: false # Ruby >= 3.2 - gem "yard-timekeeper", "~> 0.2", ">= 0.2.4", require: false - gem "yard-yaml", "~> 0.2", ">= 0.2.3", require: false +if ENV.fetch('GALTZO_FLOSS_DEV', 'false').casecmp('false').zero? + gem 'yard-fence', '~> 0.9', '>= 0.9.6', require: false # Ruby >= 3.2 + gem 'yard-timekeeper', '~> 0.2', '>= 0.2.4', require: false + gem 'yard-yaml', '~> 0.2', '>= 0.2.3', require: false else - eval_gemfile "documentation_local.gemfile" + eval_gemfile 'documentation_local.gemfile' end # Std Lib extractions -gem "rdoc", "~> 6.11", require: false unless ENV.fetch("KJ_FRAMEWORK_MATRIX_GEM", "") == "rdoc" +gem 'rdoc', '~> 6.11', require: false unless ENV.fetch('KJ_FRAMEWORK_MATRIX_GEM', '') == 'rdoc' diff --git a/gems/prism-merge/gemfiles/modular/documentation_local.gemfile b/gems/prism-merge/gemfiles/modular/documentation_local.gemfile index b30a6b15d..b596a588d 100644 --- a/gems/prism-merge/gemfiles/modular/documentation_local.gemfile +++ b/gems/prism-merge/gemfiles/modular/documentation_local.gemfile @@ -11,21 +11,19 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] -nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) +nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] +nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == "nomono" } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - if nomono_locked - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] - end + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked end -Kernel.send(:gem, "nomono", *nomono_activation_requirements) -require "nomono/bundler" +Kernel.send(:gem, 'nomono', *nomono_activation_requirements) +require 'nomono/bundler' local_gems = %w[yard-fence yard-timekeeper yard-yaml] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) @@ -34,9 +32,9 @@ local_gems_to_eval = local_gems - %w[prism-merge] - declared_gems # export GALTZO_FLOSS_DEV=/path/to/galtzo-floss eval_nomono_gems( gems: local_gems_to_eval, - prefix: "GALTZO_FLOSS", - path_env: "GALTZO_FLOSS_DEV", - vendored_gems_env: "GALTZO_FLOSS_VENDORED_GEMS", - vendor_gem_dir_env: "GALTZO_FLOSS_VENDOR_GEM_DIR", - debug_env: "GALTZO_FLOSS_DEBUG" + prefix: 'GALTZO_FLOSS', + path_env: 'GALTZO_FLOSS_DEV', + vendored_gems_env: 'GALTZO_FLOSS_VENDORED_GEMS', + vendor_gem_dir_env: 'GALTZO_FLOSS_VENDOR_GEM_DIR', + debug_env: 'GALTZO_FLOSS_DEBUG' ) diff --git a/gems/prism-merge/gemfiles/modular/erb/r2/v3.0.gemfile b/gems/prism-merge/gemfiles/modular/erb/r2/v3.0.gemfile index c03bd8d85..7c83a239b 100644 --- a/gems/prism-merge/gemfiles/modular/erb/r2/v3.0.gemfile +++ b/gems/prism-merge/gemfiles/modular/erb/r2/v3.0.gemfile @@ -1 +1 @@ -gem "erb", "~> 3.0" # ruby >= 2.7.0 +gem 'erb', '~> 3.0' # ruby >= 2.7.0 diff --git a/gems/prism-merge/gemfiles/modular/erb/r3/v5.0.gemfile b/gems/prism-merge/gemfiles/modular/erb/r3/v5.0.gemfile index 1bd029cc1..ec7ff451f 100644 --- a/gems/prism-merge/gemfiles/modular/erb/r3/v5.0.gemfile +++ b/gems/prism-merge/gemfiles/modular/erb/r3/v5.0.gemfile @@ -1 +1 @@ -gem "erb", "~> 6.0", ">= 6.0.6" # ruby >= 3.2.0 +gem 'erb', '~> 6.0', '>= 6.0.6' # ruby >= 3.2.0 diff --git a/gems/prism-merge/gemfiles/modular/erb/r4/v5.0.gemfile b/gems/prism-merge/gemfiles/modular/erb/r4/v5.0.gemfile index 1bd029cc1..ec7ff451f 100644 --- a/gems/prism-merge/gemfiles/modular/erb/r4/v5.0.gemfile +++ b/gems/prism-merge/gemfiles/modular/erb/r4/v5.0.gemfile @@ -1 +1 @@ -gem "erb", "~> 6.0", ">= 6.0.6" # ruby >= 3.2.0 +gem 'erb', '~> 6.0', '>= 6.0.6' # ruby >= 3.2.0 diff --git a/gems/prism-merge/gemfiles/modular/erb/vHEAD.gemfile b/gems/prism-merge/gemfiles/modular/erb/vHEAD.gemfile index 48fee4218..ea0101185 100644 --- a/gems/prism-merge/gemfiles/modular/erb/vHEAD.gemfile +++ b/gems/prism-merge/gemfiles/modular/erb/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 3.2 -gem "erb", github: "ruby/erb", branch: "master" +gem 'erb', github: 'ruby/erb', branch: 'master' diff --git a/gems/prism-merge/gemfiles/modular/json/truffleruby_22_3.gemfile b/gems/prism-merge/gemfiles/modular/json/truffleruby_22_3.gemfile index b0e69ab11..9b2f8d96a 100644 --- a/gems/prism-merge/gemfiles/modular/json/truffleruby_22_3.gemfile +++ b/gems/prism-merge/gemfiles/modular/json/truffleruby_22_3.gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -if RUBY_ENGINE == "truffleruby" && RUBY_ENGINE_VERSION.start_with?("22.3") +if RUBY_ENGINE == 'truffleruby' && RUBY_ENGINE_VERSION.start_with?('22.3') # TruffleRuby 22.3 ships the json default gem from its emulated MRI Ruby. - gem "json", "= 2.5.1" + gem 'json', '= 2.5.1' end diff --git a/gems/prism-merge/gemfiles/modular/json/truffleruby_23_0.gemfile b/gems/prism-merge/gemfiles/modular/json/truffleruby_23_0.gemfile index 7b2660a2b..d787a5ef4 100644 --- a/gems/prism-merge/gemfiles/modular/json/truffleruby_23_0.gemfile +++ b/gems/prism-merge/gemfiles/modular/json/truffleruby_23_0.gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -if RUBY_ENGINE == "truffleruby" && RUBY_ENGINE_VERSION.start_with?("23.0") +if RUBY_ENGINE == 'truffleruby' && RUBY_ENGINE_VERSION.start_with?('23.0') # TruffleRuby 23.0 ships the json default gem from its emulated MRI Ruby. - gem "json", "= 2.6.1" + gem 'json', '= 2.6.1' end diff --git a/gems/prism-merge/gemfiles/modular/json/truffleruby_23_1.gemfile b/gems/prism-merge/gemfiles/modular/json/truffleruby_23_1.gemfile index dfa21f2e4..d78486b0e 100644 --- a/gems/prism-merge/gemfiles/modular/json/truffleruby_23_1.gemfile +++ b/gems/prism-merge/gemfiles/modular/json/truffleruby_23_1.gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -if RUBY_ENGINE == "truffleruby" && RUBY_ENGINE_VERSION.start_with?("23.1") +if RUBY_ENGINE == 'truffleruby' && RUBY_ENGINE_VERSION.start_with?('23.1') # TruffleRuby 23.1 ships the json default gem from its emulated MRI Ruby. - gem "json", "= 2.6.3" + gem 'json', '= 2.6.3' end diff --git a/gems/prism-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile b/gems/prism-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile index 42e9d9bd4..e27f1bbae 100644 --- a/gems/prism-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile +++ b/gems/prism-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 -gem "mutex_m", "~> 0.2" +gem 'mutex_m', '~> 0.2' diff --git a/gems/prism-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile b/gems/prism-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile index 42e9d9bd4..e27f1bbae 100644 --- a/gems/prism-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile +++ b/gems/prism-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 -gem "mutex_m", "~> 0.2" +gem 'mutex_m', '~> 0.2' diff --git a/gems/prism-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile b/gems/prism-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile index 42e9d9bd4..e27f1bbae 100644 --- a/gems/prism-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile +++ b/gems/prism-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 -gem "mutex_m", "~> 0.2" +gem 'mutex_m', '~> 0.2' diff --git a/gems/prism-merge/gemfiles/modular/mutex_m/vHEAD.gemfile b/gems/prism-merge/gemfiles/modular/mutex_m/vHEAD.gemfile index 8af3b6fca..9dac2f6cb 100644 --- a/gems/prism-merge/gemfiles/modular/mutex_m/vHEAD.gemfile +++ b/gems/prism-merge/gemfiles/modular/mutex_m/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 (dependency of omniauth) -gem "mutex_m", github: "ruby/mutex_m", branch: "master" +gem 'mutex_m', github: 'ruby/mutex_m', branch: 'master' diff --git a/gems/prism-merge/gemfiles/modular/optional.gemfile b/gems/prism-merge/gemfiles/modular/optional.gemfile index 80bc45196..9ea429538 100644 --- a/gems/prism-merge/gemfiles/modular/optional.gemfile +++ b/gems/prism-merge/gemfiles/modular/optional.gemfile @@ -9,8 +9,8 @@ # Optional dependencies are not depended on directly, but may be used if present. # Required for curated binstubs generated by kettle-jem install -gem "rbs", ">= 3.0", require: false # ruby >= 3.1 +gem 'rbs', '>= 3.0', require: false # ruby >= 3.1 # Required for kettle-pre-release # URL parsing with Unicode support (falls back to URI if not available) -gem "addressable", ">= 2.8", "< 3" # ruby >= 2.2 +gem 'addressable', '>= 2.8', '< 3' # ruby >= 2.2 diff --git a/gems/prism-merge/gemfiles/modular/rspec.gemfile b/gems/prism-merge/gemfiles/modular/rspec.gemfile index 72fdf8b7f..2af210a41 100644 --- a/gems/prism-merge/gemfiles/modular/rspec.gemfile +++ b/gems/prism-merge/gemfiles/modular/rspec.gemfile @@ -1,4 +1,4 @@ -gem "rspec_junit_formatter", - github: "pboling/rspec_junit_formatter", - branch: "main", - ref: "9e6bcaaedd49477b62878ed568dc4ada5cc7cb5e" +gem 'rspec_junit_formatter', + github: 'pboling/rspec_junit_formatter', + branch: 'main', + ref: '9e6bcaaedd49477b62878ed568dc4ada5cc7cb5e' diff --git a/gems/prism-merge/gemfiles/modular/runtime_heads.gemfile b/gems/prism-merge/gemfiles/modular/runtime_heads.gemfile index 02f134c7f..ebf17c529 100644 --- a/gems/prism-merge/gemfiles/modular/runtime_heads.gemfile +++ b/gems/prism-merge/gemfiles/modular/runtime_heads.gemfile @@ -8,4 +8,4 @@ # Test against HEAD of runtime dependencies so we can proactively file bugs -eval_gemfile("x_std_libs/vHEAD.gemfile") +eval_gemfile('x_std_libs/vHEAD.gemfile') diff --git a/gems/prism-merge/gemfiles/modular/stringio/r2/v3.0.gemfile b/gems/prism-merge/gemfiles/modular/stringio/r2/v3.0.gemfile index e85bb18ee..3616f4e3a 100644 --- a/gems/prism-merge/gemfiles/modular/stringio/r2/v3.0.gemfile +++ b/gems/prism-merge/gemfiles/modular/stringio/r2/v3.0.gemfile @@ -2,4 +2,4 @@ # NOT SEMVER # Version 3.0.7 dropped support for Ruby <= 2.7 # Version 3.0.0 dropped support for Ruby <= 2.4 -gem "stringio", ">= 3.0" +gem 'stringio', '>= 3.0' diff --git a/gems/prism-merge/gemfiles/modular/stringio/r3/v3.0.gemfile b/gems/prism-merge/gemfiles/modular/stringio/r3/v3.0.gemfile index e85bb18ee..3616f4e3a 100644 --- a/gems/prism-merge/gemfiles/modular/stringio/r3/v3.0.gemfile +++ b/gems/prism-merge/gemfiles/modular/stringio/r3/v3.0.gemfile @@ -2,4 +2,4 @@ # NOT SEMVER # Version 3.0.7 dropped support for Ruby <= 2.7 # Version 3.0.0 dropped support for Ruby <= 2.4 -gem "stringio", ">= 3.0" +gem 'stringio', '>= 3.0' diff --git a/gems/prism-merge/gemfiles/modular/stringio/r4/v3.0.gemfile b/gems/prism-merge/gemfiles/modular/stringio/r4/v3.0.gemfile index e85bb18ee..3616f4e3a 100644 --- a/gems/prism-merge/gemfiles/modular/stringio/r4/v3.0.gemfile +++ b/gems/prism-merge/gemfiles/modular/stringio/r4/v3.0.gemfile @@ -2,4 +2,4 @@ # NOT SEMVER # Version 3.0.7 dropped support for Ruby <= 2.7 # Version 3.0.0 dropped support for Ruby <= 2.4 -gem "stringio", ">= 3.0" +gem 'stringio', '>= 3.0' diff --git a/gems/prism-merge/gemfiles/modular/stringio/vHEAD.gemfile b/gems/prism-merge/gemfiles/modular/stringio/vHEAD.gemfile index 5f2a74126..78f5f5d8a 100644 --- a/gems/prism-merge/gemfiles/modular/stringio/vHEAD.gemfile +++ b/gems/prism-merge/gemfiles/modular/stringio/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 (dependency of omniauth) -gem "stringio", github: "ruby/stringio", branch: "master" +gem 'stringio', github: 'ruby/stringio', branch: 'master' diff --git a/gems/prism-merge/gemfiles/modular/style.gemfile b/gems/prism-merge/gemfiles/modular/style.gemfile index 35de4dcd6..4dbcc02c0 100644 --- a/gems/prism-merge/gemfiles/modular/style.gemfile +++ b/gems/prism-merge/gemfiles/modular/style.gemfile @@ -9,23 +9,23 @@ # Style tasks run on the latest Ruby; RuboCop-LTS selects the compatibility # rules for the configured Ruby floor independently from task dependency floors. -gem "reek", "~> 6.5", ">= 6.5.0" +gem 'reek', '~> 6.5', '>= 6.5.0' platform :mri do - gem "appraisal2-rubocop", "~> 1.0", ">= 1.0.0", require: false - gem "rubocop-gradual", "~> 0.4", ">= 0.4.0" - gem "rubocop-minitest", "~> 0.40", ">= 0.40.0" - gem "rubocop-on-rbs", "~> 2.0", ">= 2.0.0" # ruby >= 3.2.0 + gem 'appraisal2-rubocop', '~> 1.0', '>= 1.0.0', require: false + gem 'rubocop-gradual', '~> 0.4', '>= 0.4.0' + gem 'rubocop-minitest', '~> 0.40', '>= 0.40.0' + gem 'rubocop-on-rbs', '~> 2.0', '>= 2.0.0' # ruby >= 3.2.0 # gem "rubocop", "~> 1.73", ">= 1.73.2" # constrained by standard - gem "rubocop-packaging", "~> 0.6", ">= 0.6.0" - gem "standard", "~> 1.56", ">= 1.56.0" + gem 'rubocop-packaging', '~> 0.6', '>= 0.6.0' + gem 'standard', '~> 1.56', '>= 1.56.0' - if ENV.fetch("RUBOCOP_LTS_LOCAL", "false").casecmp("false").zero? + if ENV.fetch('RUBOCOP_LTS_LOCAL', 'false').casecmp('false').zero? declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) - gem "rubocop-lts", "~> 24.2", ">= 24.2.1" unless declared_gems.include?("rubocop-lts") - gem "rubocop-lts-rspec", "~> 1.0", ">= 1.0.5" unless declared_gems.include?("rubocop-lts-rspec") - gem "rubocop-ruby3_2", "~> 3.0", ">= 3.0.6" unless declared_gems.include?("rubocop-ruby3_2") + gem 'rubocop-lts', '~> 24.2', '>= 24.2.1' unless declared_gems.include?('rubocop-lts') + gem 'rubocop-lts-rspec', '~> 1.0', '>= 1.0.5' unless declared_gems.include?('rubocop-lts-rspec') + gem 'rubocop-ruby3_2', '~> 3.0', '>= 3.0.6' unless declared_gems.include?('rubocop-ruby3_2') else - eval_gemfile("style_local.gemfile") + eval_gemfile('style_local.gemfile') end end diff --git a/gems/prism-merge/gemfiles/modular/style_local.gemfile b/gems/prism-merge/gemfiles/modular/style_local.gemfile index c3716a6a6..e8e9d2ad4 100644 --- a/gems/prism-merge/gemfiles/modular/style_local.gemfile +++ b/gems/prism-merge/gemfiles/modular/style_local.gemfile @@ -14,21 +14,19 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] -nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) +nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] +nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == "nomono" } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - if nomono_locked - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] - end + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked end -Kernel.send(:gem, "nomono", *nomono_activation_requirements) -require "nomono/bundler" +Kernel.send(:gem, 'nomono', *nomono_activation_requirements) +require 'nomono/bundler' local_gems = %w[rubocop-lts rubocop-lts-rspec rubocop-ruby3_2 standard-rubocop-lts] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) @@ -38,11 +36,11 @@ local_gems_to_eval = local_gems - %w[prism-merge] - declared_gems platform :mri do eval_nomono_gems( gems: local_gems_to_eval, - prefix: "RUBOCOP_LTS", - path_env: "RUBOCOP_LTS_LOCAL", - vendored_gems_env: "VENDORED_GEMS", - vendor_gem_dir_env: "VENDOR_GEM_DIR", - debug_env: "RUBOCOP_LTS_DEBUG", - root: ["src", "rubocop-lts"] + prefix: 'RUBOCOP_LTS', + path_env: 'RUBOCOP_LTS_LOCAL', + vendored_gems_env: 'VENDORED_GEMS', + vendor_gem_dir_env: 'VENDOR_GEM_DIR', + debug_env: 'RUBOCOP_LTS_DEBUG', + root: %w[src rubocop-lts] ) end diff --git a/gems/prism-merge/gemfiles/modular/templating.gemfile b/gems/prism-merge/gemfiles/modular/templating.gemfile index 47138ffbb..a672de184 100644 --- a/gems/prism-merge/gemfiles/modular/templating.gemfile +++ b/gems/prism-merge/gemfiles/modular/templating.gemfile @@ -1,18 +1,18 @@ # frozen_string_literal: true -structuredmerge_remote = ENV.fetch("STRUCTUREDMERGE_DEV", "false").casecmp("false").zero? -kettle_remote = ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false").zero? +structuredmerge_remote = ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false').zero? +kettle_remote = ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? if structuredmerge_remote # Parser dependencies for released installs. - gem "tree_sitter_language_pack", "~> 1.13", ">= 1.13.3" + gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' # Merge recipes for released installs. - gem "kettle-jem", ">= 7.0" + gem 'kettle-jem', '>= 7.0' end if kettle_remote # Template/plugin checks for released installs. - gem "kettle-drift", "~> 1.0", ">= 1.0.6", require: false + gem 'kettle-drift', '~> 1.0', '>= 1.0.6', require: false end # Set STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local development with path-based dependencies. @@ -21,4 +21,4 @@ end # # Set KETTLE_DEV_DEV=/path/to/my for local development with Kettle plugin gems. # When false (default / CI), released Kettle plugin gems are used. -eval_gemfile "templating_local.gemfile" unless structuredmerge_remote && kettle_remote +eval_gemfile 'templating_local.gemfile' unless structuredmerge_remote && kettle_remote diff --git a/gems/prism-merge/gemfiles/modular/templating_local.gemfile b/gems/prism-merge/gemfiles/modular/templating_local.gemfile index b36adff95..e6d5d15bc 100644 --- a/gems/prism-merge/gemfiles/modular/templating_local.gemfile +++ b/gems/prism-merge/gemfiles/modular/templating_local.gemfile @@ -12,21 +12,19 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] -nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) +nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] +nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == "nomono" } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - if nomono_locked - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] - end + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked end -Kernel.send(:gem, "nomono", *nomono_activation_requirements) -require "nomono/bundler" +Kernel.send(:gem, 'nomono', *nomono_activation_requirements) +require 'nomono/bundler' structuredmerge_local_gems = %w[ tree_haver @@ -69,25 +67,25 @@ structuredmerge_local_gems_to_eval = structuredmerge_local_gems - %w[prism-merge kettle_dev_local_gems_to_eval = kettle_dev_local_gems - %w[prism-merge] - declared_gems platform :mri do - if ENV.fetch("STRUCTUREDMERGE_DEV", "false").casecmp("false") != 0 + if ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false') != 0 eval_nomono_gems( gems: structuredmerge_local_gems_to_eval, - prefix: "STRUCTUREDMERGE", - path_env: "STRUCTUREDMERGE_DEV", - vendored_gems_env: "VENDORED_GEMS", - vendor_gem_dir_env: "VENDOR_GEM_DIR", - debug_env: "STRUCTUREDMERGE_DEBUG" + prefix: 'STRUCTUREDMERGE', + path_env: 'STRUCTUREDMERGE_DEV', + vendored_gems_env: 'VENDORED_GEMS', + vendor_gem_dir_env: 'VENDOR_GEM_DIR', + debug_env: 'STRUCTUREDMERGE_DEBUG' ) end - if ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false") != 0 + if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false') != 0 eval_nomono_gems( gems: kettle_dev_local_gems_to_eval, - prefix: "KETTLE_DEV", - path_env: "KETTLE_DEV_DEV", - vendored_gems_env: "VENDORED_GEMS", - vendor_gem_dir_env: "VENDOR_GEM_DIR", - debug_env: "KETTLE_DEV_DEBUG" + prefix: 'KETTLE_DEV', + path_env: 'KETTLE_DEV_DEV', + vendored_gems_env: 'VENDORED_GEMS', + vendor_gem_dir_env: 'VENDOR_GEM_DIR', + debug_env: 'KETTLE_DEV_DEBUG' ) end end diff --git a/gems/prism-merge/gemfiles/modular/webrick/r4/v1.9.gemfile b/gems/prism-merge/gemfiles/modular/webrick/r4/v1.9.gemfile index eaab4a473..b1329ba84 100644 --- a/gems/prism-merge/gemfiles/modular/webrick/r4/v1.9.gemfile +++ b/gems/prism-merge/gemfiles/modular/webrick/r4/v1.9.gemfile @@ -1 +1 @@ -gem "webrick", "~> 1.9" +gem 'webrick', '~> 1.9' diff --git a/gems/prism-merge/gemfiles/modular/webrick/vHEAD.gemfile b/gems/prism-merge/gemfiles/modular/webrick/vHEAD.gemfile index 8a789b634..c7e6f81a1 100644 --- a/gems/prism-merge/gemfiles/modular/webrick/vHEAD.gemfile +++ b/gems/prism-merge/gemfiles/modular/webrick/vHEAD.gemfile @@ -1 +1 @@ -gem "webrick", ">= 1.9" +gem 'webrick', '>= 1.9' diff --git a/gems/prism-merge/gemfiles/modular/x_std_libs.gemfile b/gems/prism-merge/gemfiles/modular/x_std_libs.gemfile index 77aad43f2..b1f43c097 100644 --- a/gems/prism-merge/gemfiles/modular/x_std_libs.gemfile +++ b/gems/prism-merge/gemfiles/modular/x_std_libs.gemfile @@ -1,12 +1,12 @@ ### Std Lib Extracted Gems ruby_version = Gem::Version.new(RUBY_VERSION) -if ruby_version >= Gem::Version.new("4.0") - eval_gemfile "x_std_libs/r4/libs.gemfile" -elsif ruby_version >= Gem::Version.new("3.2") - eval_gemfile "x_std_libs/r3/libs.gemfile" -elsif ruby_version >= Gem::Version.new("3.1") - eval_gemfile "x_std_libs/r3.1/libs.gemfile" +if ruby_version >= Gem::Version.new('4.0') + eval_gemfile 'x_std_libs/r4/libs.gemfile' +elsif ruby_version >= Gem::Version.new('3.2') + eval_gemfile 'x_std_libs/r3/libs.gemfile' +elsif ruby_version >= Gem::Version.new('3.1') + eval_gemfile 'x_std_libs/r3.1/libs.gemfile' else - eval_gemfile "x_std_libs/r2/libs.gemfile" + eval_gemfile 'x_std_libs/r2/libs.gemfile' end diff --git a/gems/prism-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile b/gems/prism-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile index 441c4f03a..16a5e3d70 100644 --- a/gems/prism-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile +++ b/gems/prism-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile @@ -1,3 +1,3 @@ -eval_gemfile "../../erb/r2/v3.0.gemfile" -eval_gemfile "../../mutex_m/r2/v0.3.gemfile" -eval_gemfile "../../stringio/r2/v3.0.gemfile" +eval_gemfile '../../erb/r2/v3.0.gemfile' +eval_gemfile '../../mutex_m/r2/v0.3.gemfile' +eval_gemfile '../../stringio/r2/v3.0.gemfile' diff --git a/gems/prism-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile b/gems/prism-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile index c293a3ddd..220ff95c1 100644 --- a/gems/prism-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile +++ b/gems/prism-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile @@ -1,3 +1,3 @@ -eval_gemfile "../../erb/r3/v5.0.gemfile" -eval_gemfile "../../mutex_m/r3/v0.3.gemfile" -eval_gemfile "../../stringio/r3/v3.0.gemfile" +eval_gemfile '../../erb/r3/v5.0.gemfile' +eval_gemfile '../../mutex_m/r3/v0.3.gemfile' +eval_gemfile '../../stringio/r3/v3.0.gemfile' diff --git a/gems/prism-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile b/gems/prism-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile index eb5574247..e2f6501eb 100644 --- a/gems/prism-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile +++ b/gems/prism-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile @@ -1,6 +1,6 @@ -eval_gemfile "../../erb/r4/v5.0.gemfile" -eval_gemfile "../../mutex_m/r4/v0.3.gemfile" -eval_gemfile "../../stringio/r4/v3.0.gemfile" -eval_gemfile "../../benchmark/r4/v0.5.gemfile" -eval_gemfile "../../cgi/r4/v0.5.gemfile" -eval_gemfile "../../webrick/r4/v1.9.gemfile" +eval_gemfile '../../erb/r4/v5.0.gemfile' +eval_gemfile '../../mutex_m/r4/v0.3.gemfile' +eval_gemfile '../../stringio/r4/v3.0.gemfile' +eval_gemfile '../../benchmark/r4/v0.5.gemfile' +eval_gemfile '../../cgi/r4/v0.5.gemfile' +eval_gemfile '../../webrick/r4/v1.9.gemfile' diff --git a/gems/prism-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile b/gems/prism-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile index d4d5b16c9..ab75cccf1 100644 --- a/gems/prism-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile +++ b/gems/prism-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile @@ -1,6 +1,6 @@ -eval_gemfile "../erb/vHEAD.gemfile" -eval_gemfile "../mutex_m/vHEAD.gemfile" -eval_gemfile "../stringio/vHEAD.gemfile" -eval_gemfile "../benchmark/vHEAD.gemfile" -eval_gemfile "../cgi/vHEAD.gemfile" -eval_gemfile "../webrick/vHEAD.gemfile" +eval_gemfile '../erb/vHEAD.gemfile' +eval_gemfile '../mutex_m/vHEAD.gemfile' +eval_gemfile '../stringio/vHEAD.gemfile' +eval_gemfile '../benchmark/vHEAD.gemfile' +eval_gemfile '../cgi/vHEAD.gemfile' +eval_gemfile '../webrick/vHEAD.gemfile' diff --git a/gems/prism-merge/lib/prism/merge/version.rb b/gems/prism-merge/lib/prism/merge/version.rb index c5d5bca42..29398c390 100644 --- a/gems/prism-merge/lib/prism/merge/version.rb +++ b/gems/prism-merge/lib/prism/merge/version.rb @@ -3,7 +3,7 @@ module Prism module Merge module Version - VERSION = "7.1.0" + VERSION = '7.1.0' end VERSION = Version::VERSION # Traditional Constant Location end diff --git a/gems/prism-merge/spec/spec_helper.rb b/gems/prism-merge/spec/spec_helper.rb index 777af4683..a352cc4b0 100644 --- a/gems/prism-merge/spec/spec_helper.rb +++ b/gems/prism-merge/spec/spec_helper.rb @@ -7,16 +7,16 @@ # NOTE: Gemfiles for non-coverage appraisals may not have kettle-soup-cover. # The rescue LoadError handles that scenario. begin - require "kettle-soup-cover" + require 'kettle-soup-cover' if Kettle::Soup::Cover::DO_COV # Requiring simplecov loads the project-local `.simplecov`. - require "simplecov" - require "kettle/soup/cover/config" + require 'simplecov' + require 'kettle/soup/cover/config' SimpleCov.start end -rescue LoadError => error +rescue LoadError => e # check the error message and re-raise when unexpected - raise error unless error.message.include?("kettle") + raise e unless e.message.include?('kettle') end # External RSpec & related config From c9b801d1964c62703e895470ecfa6cf288c90893 Mon Sep 17 00:00:00 2001 From: "Peter H. Boling" Date: Tue, 21 Jul 2026 18:38:40 -0600 Subject: [PATCH 181/188] =?UTF-8?q?=F0=9F=8E=A8=20Template=20bootstrap=20b?= =?UTF-8?q?y=20kettle-jem=20v7.1.0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gems/markdown-merge/.rubocop_gradual.lock | 640 ++++++++++++++++++ gems/markdown-merge/Gemfile.lock | 4 +- gems/markly-merge/.kettle-drift.lock | 60 +- gems/markly-merge/Gemfile | 72 +- gems/markly-merge/Rakefile | 18 +- .../gemfiles/modular/templating.gemfile | 12 +- .../gemfiles/modular/templating_local.gemfile | 44 +- gems/markly-merge/lib/markly/merge/version.rb | 2 +- gems/prism-merge/Gemfile.lock | 336 ++++++++- 9 files changed, 1104 insertions(+), 84 deletions(-) create mode 100644 gems/markdown-merge/.rubocop_gradual.lock diff --git a/gems/markdown-merge/.rubocop_gradual.lock b/gems/markdown-merge/.rubocop_gradual.lock new file mode 100644 index 000000000..170b2e9af --- /dev/null +++ b/gems/markdown-merge/.rubocop_gradual.lock @@ -0,0 +1,640 @@ +{ + ".simplecov:628617557": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "Rakefile:1018150957": [ + [18, 121, 17, "Layout/LineLength: Line is too long. [137/120]", 174264873], + [79, 3, 1023, "Metrics/BlockLength: Block has too many lines. [32/25]", 54868638], + [163, 121, 22, "Layout/LineLength: Line is too long. [142/120]", 1367093088], + [166, 121, 18, "Layout/LineLength: Line is too long. [138/120]", 3881946477] + ], + "gemfiles/modular/benchmark/r4/v0.5.gemfile:3644720371": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/benchmark/vHEAD.gemfile:2838879269": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/cgi/r4/v0.5.gemfile:367169322": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/cgi/vHEAD.gemfile:2729540777": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/erb/r2/v3.0.gemfile:1688285565": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/erb/r3/v5.0.gemfile:2394062339": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/erb/r4/v5.0.gemfile:2394062339": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/erb/vHEAD.gemfile:981929959": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/mutex_m/r2/v0.3.gemfile:4055275004": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/mutex_m/r3/v0.3.gemfile:4055275004": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/mutex_m/r4/v0.3.gemfile:4055275004": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/mutex_m/vHEAD.gemfile:556854763": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/rspec.gemfile:2263543889": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/stringio/r2/v3.0.gemfile:821604304": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/stringio/r3/v3.0.gemfile:821604304": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/stringio/r4/v3.0.gemfile:821604304": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/stringio/vHEAD.gemfile:1045839691": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/webrick/r4/v1.9.gemfile:3092661193": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/webrick/vHEAD.gemfile:3867684682": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/x_std_libs.gemfile:2324400122": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/x_std_libs/r2/libs.gemfile:36276542": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] + ], + "gemfiles/modular/x_std_libs/r3/libs.gemfile:4030570297": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] + ], + "gemfiles/modular/x_std_libs/r4/libs.gemfile:732451732": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] + ], + "gemfiles/modular/x_std_libs/vHEAD.gemfile:2390363993": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] + ], + "lib/markdown-merge.rb:1671676898": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`markdown-merge.rb`) should use snake_case.", 5381] + ], + "lib/markdown/merge.rb:4220853366": [ + [11, 3, 12, "Style/Documentation: Missing top-level documentation comment for `module Markdown::Merge`.", 2866359175], + [11, 3, 24210, "Metrics/ModuleLength: Module has too many lines. [579/100]", 4268495043], + [23, 5, 16, "Style/Documentation: Missing top-level documentation comment for `class Markdown::Merge::ParseError`.", 362242086], + [120, 5, 1014, "Metrics/MethodLength: Method has too many lines. [24/10]", 650805533], + [150, 5, 678, "Metrics/AbcSize: Assignment Branch Condition size for `match_markdown_owners` is too high. [<10, 23, 8> 26.32/17]", 2124140148], + [150, 5, 678, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `match_markdown_owners` is too high. [9/7]", 2124140148], + [150, 5, 678, "Metrics/PerceivedComplexity: Perceived complexity for `match_markdown_owners` is too high. [9/8]", 2124140148], + [163, 5, 1188, "Metrics/AbcSize: Assignment Branch Condition size for `merge_markdown` is too high. [<10, 25, 8> 28.09/17]", 3592129796], + [163, 5, 1188, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `merge_markdown` is too high. [9/7]", 3592129796], + [163, 5, 1188, "Metrics/MethodLength: Method has too many lines. [23/10]", 3592129796], + [163, 5, 1188, "Metrics/PerceivedComplexity: Perceived complexity for `merge_markdown` is too high. [9/8]", 3592129796], + [192, 5, 513, "Metrics/MethodLength: Method has too many lines. [13/10]", 912081106], + [210, 5, 747, "Metrics/MethodLength: Method has too many lines. [16/10]", 3172863125], + [241, 5, 1513, "Metrics/AbcSize: Assignment Branch Condition size for `apply_markdown_delegated_child_outputs` is too high. [<16, 37, 9> 41.3/17]", 3320736661], + [241, 5, 1513, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `apply_markdown_delegated_child_outputs` is too high. [10/7]", 3320736661], + [241, 5, 1513, "Metrics/MethodLength: Method has too many lines. [30/10]", 3320736661], + [241, 5, 1513, "Metrics/PerceivedComplexity: Perceived complexity for `apply_markdown_delegated_child_outputs` is too high. [10/8]", 3320736661], + [279, 5, 1058, "Metrics/MethodLength: Method has too many lines. [23/10]", 2000305522], + [306, 5, 1103, "Metrics/MethodLength: Method has too many lines. [23/10]", 2615729942], + [306, 52, 144, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 3050457682], + [334, 5, 817, "Metrics/MethodLength: Method has too many lines. [13/10]", 322304706], + [339, 121, 74, "Layout/LineLength: Line is too long. [194/120]", 2378183959], + [352, 5, 805, "Metrics/MethodLength: Method has too many lines. [13/10]", 935244360], + [357, 121, 66, "Layout/LineLength: Line is too long. [186/120]", 2974266470], + [370, 5, 722, "Metrics/MethodLength: Method has too many lines. [12/10]", 1758487766], + [375, 121, 17, "Layout/LineLength: Line is too long. [137/120]", 3013228499], + [387, 5, 730, "Metrics/MethodLength: Method has too many lines. [12/10]", 3297037131], + [392, 121, 17, "Layout/LineLength: Line is too long. [137/120]", 3013228499], + [418, 5, 1584, "Metrics/AbcSize: Assignment Branch Condition size for `collect_markdown_owners` is too high. [<21, 32, 13> 40.42/17]", 572024212], + [418, 5, 1584, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `collect_markdown_owners` is too high. [11/7]", 572024212], + [418, 5, 1584, "Metrics/MethodLength: Method has too many lines. [45/10]", 572024212], + [418, 5, 1584, "Metrics/PerceivedComplexity: Perceived complexity for `collect_markdown_owners` is too high. [11/8]", 572024212], + [472, 5, 1147, "Metrics/AbcSize: Assignment Branch Condition size for `markdown_owner_start_indices` is too high. [<21, 22, 11> 32.34/17]", 12516264], + [472, 5, 1147, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `markdown_owner_start_indices` is too high. [9/7]", 12516264], + [472, 5, 1147, "Metrics/MethodLength: Method has too many lines. [33/10]", 12516264], + [472, 5, 1147, "Metrics/PerceivedComplexity: Perceived complexity for `markdown_owner_start_indices` is too high. [9/8]", 12516264], + [513, 5, 602, "Metrics/AbcSize: Assignment Branch Condition size for `collect_markdown_sections` is too high. [<9, 20, 6> 22.74/17]", 1946206422], + [513, 5, 602, "Metrics/MethodLength: Method has too many lines. [14/10]", 1946206422], + [521, 7, 11, "Style/MultilineBlockChain: Avoid multi-line chains of blocks.", 848344986], + [532, 5, 1097, "Metrics/AbcSize: Assignment Branch Condition size for `markdown_fence_ranges` is too high. [<19, 21, 11> 30.38/17]", 2035260313], + [532, 5, 1097, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `markdown_fence_ranges` is too high. [8/7]", 2035260313], + [532, 5, 1097, "Metrics/MethodLength: Method has too many lines. [31/10]", 2035260313], + [548, 13, 227, "Metrics/BlockNesting: Avoid more than 3 levels of block nesting.", 1054958538], + [570, 5, 323, "Metrics/MethodLength: Method has too many lines. [14/10]", 2041170985], + [606, 5, 549, "Metrics/MethodLength: Method has too many lines. [12/10]", 2513777426] + ], + "lib/markdown/merge/backend_support.rb:1910609966": [ + [6, 5, 7153, "Metrics/ModuleLength: Module has too many lines. [161/100]", 606467501], + [18, 7, 524, "Metrics/MethodLength: Method has too many lines. [13/10]", 2550700841], + [34, 7, 913, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `configure_markdown_only_language_class!` is too high. [9/7]", 2175633707], + [34, 7, 913, "Metrics/MethodLength: Method has too many lines. [14/10]", 2175633707], + [34, 7, 913, "Metrics/PerceivedComplexity: Perceived complexity for `configure_markdown_only_language_class!` is too high. [10/8]", 2175633707], + [37, 11, 658, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `from_library` is too high. [9/7]", 353826273], + [37, 11, 658, "Metrics/PerceivedComplexity: Perceived complexity for `from_library` is too high. [10/8]", 353826273], + [44, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1312231069], + [54, 7, 1263, "Metrics/AbcSize: Assignment Branch Condition size for `configure_node_link_and_navigation!` is too high. [<3, 28, 3> 28.32/17]", 122101535], + [54, 7, 1263, "Metrics/MethodLength: Method has too many lines. [20/10]", 122101535], + [82, 7, 1148, "Metrics/MethodLength: Method has too many lines. [18/10]", 1393059075], + [108, 7, 976, "Metrics/MethodLength: Method has too many lines. [24/10]", 2694447150], + [142, 7, 618, "Metrics/MethodLength: Method has too many lines. [11/10]", 2027069469], + [160, 7, 888, "Metrics/MethodLength: Method has too many lines. [21/10]", 3721642530] + ], + "lib/markdown/merge/cleanse/block_spacing.rb:2917446564": [ + [32, 7, 7186, "Metrics/ClassLength: Class has too many lines. [138/100]", 1732896955], + [132, 9, 465, "Metrics/AbcSize: Assignment Branch Condition size for `fix` is too high. [<6, 16, 5> 17.8/17]", 341373851], + [150, 9, 1964, "Metrics/AbcSize: Assignment Branch Condition size for `analyze` is too high. [<9, 25, 16> 31.02/17]", 2558819309], + [150, 9, 1964, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `analyze` is too high. [14/7]", 2558819309], + [150, 9, 1964, "Metrics/MethodLength: Method has too many lines. [23/10]", 2558819309], + [150, 9, 1964, "Metrics/PerceivedComplexity: Perceived complexity for `analyze` is too high. [14/8]", 2558819309], + [160, 25, 7, "Style/NumericPredicate: Use `idx.positive?` instead of `idx > 0`.", 1825176542], + [192, 40, 20, "Style/NumericPredicate: Use `html_block_depth.positive?` instead of `html_block_depth > 0`.", 3208734130] + ], + "lib/markdown/merge/cleanse/code_fence_spacing.rb:1353147449": [ + [161, 9, 1524, "Metrics/AbcSize: Assignment Branch Condition size for `code_blocks` is too high. [<18, 20, 12> 29.46/17]", 2467942971], + [161, 9, 1524, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `code_blocks` is too high. [12/7]", 2467942971], + [161, 9, 1524, "Metrics/MethodLength: Method has too many lines. [35/10]", 2467942971], + [161, 9, 1524, "Metrics/PerceivedComplexity: Perceived complexity for `code_blocks` is too high. [12/8]", 2467942971], + [169, 11, 1293, "Metrics/BlockLength: Block has too many lines. [27/25]", 3238939023], + [249, 9, 884, "Metrics/AbcSize: Assignment Branch Condition size for `parse_fence_line` is too high. [<7, 15, 6> 17.61/17]", 1033947369], + [249, 9, 884, "Metrics/MethodLength: Method has too many lines. [19/10]", 1033947369] + ], + "lib/markdown/merge/cleanse/condensed_link_refs.rb:3659937794": [ + [85, 7, 12174, "Metrics/ClassLength: Class has too many lines. [115/100]", 3309007721], + [200, 9, 874, "Metrics/AbcSize: Assignment Branch Condition size for `definitions` is too high. [<6, 14, 10> 18.22/17]", 1976258109], + [200, 9, 874, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `definitions` is too high. [9/7]", 1976258109], + [200, 9, 874, "Metrics/MethodLength: Method has too many lines. [13/10]", 1976258109], + [200, 9, 874, "Metrics/PerceivedComplexity: Perceived complexity for `definitions` is too high. [9/8]", 1976258109], + [213, 43, 17, "Style/NumericPredicate: Use `first_bracket.positive?` instead of `first_bracket > 0`.", 1095960710], + [273, 13, 30, "Naming/PredicatePrefix: Rename `has_content_before_definition?` to `content_before_definition?`.", 213744570], + [298, 9, 997, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `parse_line` is too high. [9/7]", 2139717575], + [298, 9, 997, "Metrics/MethodLength: Method has too many lines. [13/10]", 2139717575], + [298, 9, 997, "Metrics/PerceivedComplexity: Perceived complexity for `parse_line` is too high. [9/8]", 2139717575], + [352, 9, 1214, "Metrics/AbcSize: Assignment Branch Condition size for `expand_line` is too high. [<10, 20, 17> 28.09/17]", 149412459], + [352, 9, 1214, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `expand_line` is too high. [14/7]", 149412459], + [352, 9, 1214, "Metrics/MethodLength: Method has too many lines. [21/10]", 149412459], + [352, 9, 1214, "Metrics/PerceivedComplexity: Perceived complexity for `expand_line` is too high. [15/8]", 149412459], + [358, 37, 17, "Style/NumericPredicate: Use `first_bracket.positive?` instead of `first_bracket > 0`.", 1095960710] + ], + "lib/markdown/merge/cleanse/templating_corruption.rb:3945009912": [ + [59, 9, 384, "Metrics/AbcSize: Assignment Branch Condition size for `append_issues` is too high. [<0, 17, 2> 17.12/17]", 2550677275] + ], + "lib/markdown/merge/code_block_merger.rb:1362562532": [ + [32, 5, 27618, "Metrics/ClassLength: Class has too many lines. [554/100]", 1891552237], + [120, 7, 543, "Metrics/MethodLength: Method has too many lines. [11/10]", 625040368], + [120, 28, 92, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 3691835500], + [135, 7, 666, "Metrics/MethodLength: Method has too many lines. [13/10]", 4153783419], + [156, 7, 2796, "Metrics/AbcSize: Assignment Branch Condition size for `merge_code_blocks_with_runtime` is too high. [<5, 52, 11> 53.39/17]", 4194925058], + [156, 7, 2796, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `merge_code_blocks_with_runtime` is too high. [10/7]", 4194925058], + [156, 7, 2796, "Metrics/MethodLength: Method has too many lines. [63/10]", 4194925058], + [156, 7, 2796, "Metrics/PerceivedComplexity: Perceived complexity for `merge_code_blocks_with_runtime` is too high. [12/8]", 4194925058], + [156, 41, 125, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 1827509670], + [227, 7, 1778, "Metrics/AbcSize: Assignment Branch Condition size for `build_runtime_operation` is too high. [<3, 24, 4> 24.52/17]", 3746845105], + [227, 7, 1778, "Metrics/MethodLength: Method has too many lines. [31/10]", 3746845105], + [227, 34, 86, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 3153149164], + [239, 39, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], + [290, 7, 528, "Metrics/MethodLength: Method has too many lines. [14/10]", 3045714289], + [307, 7, 2407, "Metrics/AbcSize: Assignment Branch Condition size for `merge_runtime_surface` is too high. [<1, 50, 7> 50.5/17]", 3818534251], + [307, 7, 2407, "Metrics/MethodLength: Method has too many lines. [53/10]", 3818534251], + [365, 7, 2502, "Metrics/AbcSize: Assignment Branch Condition size for `perform_code_block_merge` is too high. [<8, 34, 16> 38.42/17]", 3120245149], + [365, 7, 2502, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `perform_code_block_merge` is too high. [14/7]", 3120245149], + [365, 7, 2502, "Metrics/MethodLength: Method has too many lines. [57/10]", 3120245149], + [365, 7, 2502, "Metrics/PerceivedComplexity: Perceived complexity for `perform_code_block_merge` is too high. [16/8]", 3120245149], + [365, 35, 83, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 2137984385], + [435, 7, 1289, "Metrics/MethodLength: Method has too many lines. [33/10]", 3304634912], + [435, 43, 154, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [8/5]", 2516842130], + [473, 7, 755, "Metrics/MethodLength: Method has too many lines. [15/10]", 2207072637], + [473, 35, 127, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [7/5]", 2610889879], + [492, 38, 167, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [8/5]", 372116680], + [492, 121, 3, "Layout/LineLength: Line is too long. [123/120]", 193417996], + [506, 37, 166, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [8/5]", 321759336], + [506, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5861061], + [547, 19, 20, "Style/StringConcatenation: Prefer string interpolation to string concatenation.", 3860798338], + [574, 9, 109, "Lint/RescueException: Avoid rescuing the `Exception` class. Perhaps you meant to rescue `StandardError`?", 2421726137], + [575, 21, 50, "Style/ClassEqualityComparison: Use `instance_of?(::RSpec::Mocks::MockExpectationError)` instead of comparing classes.", 952914844], + [592, 9, 797, "Metrics/MethodLength: Method has too many lines. [18/10]", 4001935536], + [622, 9, 800, "Metrics/MethodLength: Method has too many lines. [18/10]", 2519636656], + [652, 9, 798, "Metrics/MethodLength: Method has too many lines. [18/10]", 2048436912], + [680, 9, 1160, "Metrics/MethodLength: Method has too many lines. [26/10]", 45677001], + [718, 9, 798, "Metrics/MethodLength: Method has too many lines. [18/10]", 3475080240] + ], + "lib/markdown/merge/comment_tracker.rb:167569374": [ + [19, 7, 374, "Metrics/MethodLength: Method has too many lines. [11/10]", 3280949001] + ], + "lib/markdown/merge/conflict_resolver.rb:686298490": [ + [29, 5, 6207, "Metrics/ClassLength: Class has too many lines. [122/100]", 3761260950], + [57, 7, 1217, "Metrics/MethodLength: Method has too many lines. [32/10]", 3372247297], + [57, 55, 14, "Lint/UnusedMethodArgument: Unused method argument - `template_index`.", 1809801172], + [57, 72, 10, "Lint/UnusedMethodArgument: Unused method argument - `dest_index`.", 2703999490], + [112, 7, 1811, "Metrics/AbcSize: Assignment Branch Condition size for `unresolved_resolution` is too high. [<6, 22, 5> 23.35/17]", 391291522], + [112, 7, 1811, "Metrics/MethodLength: Method has too many lines. [39/10]", 391291522], + [161, 7, 605, "Metrics/MethodLength: Method has too many lines. [12/10]", 577293020] + ], + "lib/markdown/merge/file_aligner.rb:841305081": [ + [27, 5, 19046, "Metrics/ClassLength: Class has too many lines. [364/100]", 3915220059], + [57, 7, 1853, "Metrics/AbcSize: Assignment Branch Condition size for `apply_match_refiner!` is too high. [<13, 31, 14> 36.41/17]", 3500652553], + [57, 7, 1853, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `apply_match_refiner!` is too high. [15/7]", 3500652553], + [57, 7, 1853, "Metrics/MethodLength: Method has too many lines. [35/10]", 3500652553], + [57, 7, 1853, "Metrics/PerceivedComplexity: Perceived complexity for `apply_match_refiner!` is too high. [15/8]", 3500652553], + [112, 7, 312, "Metrics/MethodLength: Method has too many lines. [11/10]", 2670750985], + [132, 9, 46, "Lint/HashCompareByIdentity: Use `Hash#compare_by_identity` instead of using `object_id` for keys.", 4265307642], + [133, 11, 78, "Lint/HashCompareByIdentity: Use `Hash#compare_by_identity` instead of using `object_id` for keys.", 1464832319], + [139, 7, 644, "Metrics/AbcSize: Assignment Branch Condition size for `build_heading_owner_paths` is too high. [<8, 20, 8> 22.98/17]", 2892981198], + [139, 7, 644, "Metrics/MethodLength: Method has too many lines. [13/10]", 2892981198], + [176, 7, 1056, "Metrics/AbcSize: Assignment Branch Condition size for `adjacent_section_hijack_repair_compatible?` is too high. [<4, 25, 8> 26.55/17]", 2068902935], + [176, 7, 1056, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `adjacent_section_hijack_repair_compatible?` is too high. [8/7]", 2068902935], + [176, 7, 1056, "Metrics/MethodLength: Method has too many lines. [11/10]", 2068902935], + [204, 7, 685, "Metrics/MethodLength: Method has too many lines. [12/10]", 3293058437], + [221, 7, 762, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `next_same_owner_match_for_template_only_entry` is too high. [8/7]", 681984620], + [250, 7, 829, "Metrics/MethodLength: Method has too many lines. [15/10]", 3104261185], + [309, 7, 759, "Metrics/MethodLength: Method has too many lines. [11/10]", 4043392433], + [342, 7, 540, "Metrics/AbcSize: Assignment Branch Condition size for `synthetic_section_label_paragraph?` is too high. [<3, 15, 11> 18.84/17]", 569218077], + [342, 7, 540, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `synthetic_section_label_paragraph?` is too high. [9/7]", 569218077], + [342, 7, 540, "Metrics/PerceivedComplexity: Perceived complexity for `synthetic_section_label_paragraph?` is too high. [9/8]", 569218077], + [347, 38, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], + [385, 47, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], + [385, 85, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], + [429, 7, 792, "Metrics/AbcSize: Assignment Branch Condition size for `neighboring_heading_signatures` is too high. [<7, 17, 8> 20.05/17]", 653610323], + [429, 7, 792, "Metrics/MethodLength: Method has too many lines. [14/10]", 653610323], + [466, 7, 879, "Metrics/AbcSize: Assignment Branch Condition size for `first_list_item_anchor` is too high. [<6, 22, 9> 24.52/17]", 1144304252], + [466, 7, 879, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `first_list_item_anchor` is too high. [9/7]", 1144304252], + [466, 7, 879, "Metrics/MethodLength: Method has too many lines. [21/10]", 1144304252], + [466, 7, 879, "Metrics/PerceivedComplexity: Perceived complexity for `first_list_item_anchor` is too high. [10/8]", 1144304252] + ], + "lib/markdown/merge/file_analysis.rb:4222490806": [ + [41, 5, 21729, "Metrics/ClassLength: Class has too many lines. [414/100]", 3545476722], + [185, 7, 2960, "Metrics/AbcSize: Assignment Branch Condition size for `compute_parser_signature` is too high. [<13, 36, 18> 42.3/17]", 1002271909], + [185, 7, 2960, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `compute_parser_signature` is too high. [17/7]", 1002271909], + [185, 7, 2960, "Metrics/MethodLength: Method has too many lines. [42/10]", 1002271909], + [185, 7, 2960, "Metrics/PerceivedComplexity: Perceived complexity for `compute_parser_signature` is too high. [11/8]", 1002271909], + [292, 7, 640, "Metrics/AbcSize: Assignment Branch Condition size for `heading_section_owners` is too high. [<5, 16, 3> 17.03/17]", 2368833202], + [292, 7, 640, "Metrics/MethodLength: Method has too many lines. [14/10]", 2368833202], + [311, 7, 763, "Metrics/AbcSize: Assignment Branch Condition size for `link_definition_owners` is too high. [<2, 19, 7> 20.35/17]", 2205544068], + [311, 7, 763, "Metrics/MethodLength: Method has too many lines. [16/10]", 2205544068], + [348, 7, 1577, "Metrics/AbcSize: Assignment Branch Condition size for `table_row_owners` is too high. [<16, 43, 17> 48.93/17]", 363370243], + [348, 7, 1577, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `table_row_owners` is too high. [16/7]", 363370243], + [348, 7, 1577, "Metrics/MethodLength: Method has too many lines. [34/10]", 363370243], + [348, 7, 1577, "Metrics/PerceivedComplexity: Perceived complexity for `table_row_owners` is too high. [16/8]", 363370243], + [408, 7, 689, "Metrics/MethodLength: Method has too many lines. [14/10]", 590050144], + [448, 7, 546, "Metrics/MethodLength: Method has too many lines. [18/10]", 1600631533], + [471, 7, 653, "Metrics/MethodLength: Method has too many lines. [15/10]", 4205564731], + [492, 7, 897, "Metrics/AbcSize: Assignment Branch Condition size for `inline_link_reference_at` is too high. [<6, 17, 11> 21.12/17]", 1855615733], + [492, 7, 897, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `inline_link_reference_at` is too high. [8/7]", 1855615733], + [492, 7, 897, "Metrics/MethodLength: Method has too many lines. [19/10]", 1855615733], + [517, 33, 83, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [7/5]", 2884863618], + [530, 7, 348, "Metrics/MethodLength: Method has too many lines. [13/10]", 3731533636], + [559, 7, 777, "Metrics/MethodLength: Method has too many lines. [14/10]", 1287754637], + [597, 7, 558, "Metrics/MethodLength: Method has too many lines. [15/10]", 3417342515] + ], + "lib/markdown/merge/file_analysis_base.rb:678024820": [ + [37, 5, 26494, "Metrics/ClassLength: Class has too many lines. [405/100]", 2769422452], + [60, 7, 1360, "Metrics/MethodLength: Method has too many lines. [18/10]", 90913983], + [261, 7, 3539, "Metrics/AbcSize: Assignment Branch Condition size for `compute_parser_signature` is too high. [<16, 43, 19> 49.66/17]", 3466910865], + [261, 7, 3539, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `compute_parser_signature` is too high. [18/7]", 3466910865], + [261, 7, 3539, "Metrics/MethodLength: Method has too many lines. [45/10]", 3466910865], + [261, 7, 3539, "Metrics/PerceivedComplexity: Perceived complexity for `compute_parser_signature` is too high. [11/8]", 3466910865], + [467, 7, 1153, "Metrics/AbcSize: Assignment Branch Condition size for `collect_top_level_nodes_with_gaps` is too high. [<10, 16, 7> 20.12/17]", 2190890907], + [467, 7, 1153, "Metrics/MethodLength: Method has too many lines. [18/10]", 2190890907], + [524, 7, 944, "Metrics/AbcSize: Assignment Branch Condition size for `integrate_gap_nodes` is too high. [<10, 14, 9> 19.42/17]", 2618792164], + [524, 7, 944, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `integrate_gap_nodes` is too high. [9/7]", 2618792164], + [524, 7, 944, "Metrics/MethodLength: Method has too many lines. [17/10]", 2618792164], + [524, 7, 944, "Metrics/PerceivedComplexity: Perceived complexity for `integrate_gap_nodes` is too high. [9/8]", 2618792164], + [536, 50, 7, "Style/NumericPredicate: Use `idx.positive?` instead of `idx > 0`.", 1825176542], + [565, 7, 2225, "Metrics/AbcSize: Assignment Branch Condition size for `find_freeze_markers` is too high. [<16, 30, 15> 37.16/17]", 263815919], + [565, 7, 2225, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `find_freeze_markers` is too high. [16/7]", 263815919], + [565, 7, 2225, "Metrics/MethodLength: Method has too many lines. [39/10]", 263815919], + [565, 7, 2225, "Metrics/PerceivedComplexity: Perceived complexity for `find_freeze_markers` is too high. [16/8]", 263815919], + [588, 15, 101, "Metrics/BlockNesting: Avoid more than 3 levels of block nesting.", 2762675417], + [611, 23, 26, "Metrics/BlockNesting: Avoid more than 3 levels of block nesting.", 2775329597], + [630, 7, 708, "Metrics/MethodLength: Method has too many lines. [19/10]", 1535336850], + [663, 7, 859, "Metrics/MethodLength: Method has too many lines. [19/10]", 1633852183], + [706, 7, 595, "Metrics/MethodLength: Method has too many lines. [14/10]", 2922601775], + [730, 7, 1145, "Metrics/AbcSize: Assignment Branch Condition size for `integrate_nodes_with_freeze_blocks` is too high. [<12, 17, 16> 26.25/17]", 2481642790], + [730, 7, 1145, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `integrate_nodes_with_freeze_blocks` is too high. [13/7]", 2481642790], + [730, 7, 1145, "Metrics/MethodLength: Method has too many lines. [22/10]", 2481642790], + [730, 7, 1145, "Metrics/PerceivedComplexity: Perceived complexity for `integrate_nodes_with_freeze_blocks` is too high. [13/8]", 2481642790] + ], + "lib/markdown/merge/freeze_node.rb:2861044075": [ + [39, 21, 86, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [7/5]", 4263110221] + ], + "lib/markdown/merge/gap_line_node.rb:2230943204": [ + [40, 7, 461, "Metrics/MethodLength: Method has too many lines. [11/10]", 1038026861], + [75, 7, 1087, "Metrics/MethodLength: Method has too many lines. [17/10]", 690589617], + [75, 7, 1087, "Metrics/PerceivedComplexity: Perceived complexity for `signature` is too high. [10/8]", 690589617], + [76, 27, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765] + ], + "lib/markdown/merge/link_definition_node.rb:526538026": [ + [54, 7, 413, "Metrics/MethodLength: Method has too many lines. [11/10]", 449561622] + ], + "lib/markdown/merge/link_parser.rb:1096919687": [ + [30, 5, 12509, "Metrics/ClassLength: Class has too many lines. [179/100]", 1758727291], + [168, 7, 459, "Metrics/MethodLength: Method has too many lines. [11/10]", 518494532], + [239, 7, 945, "Metrics/AbcSize: Assignment Branch Condition size for `build_link_tree` is too high. [<12, 18, 13> 25.24/17]", 3590515429], + [239, 7, 945, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `build_link_tree` is too high. [10/7]", 3590515429], + [239, 7, 945, "Metrics/MethodLength: Method has too many lines. [19/10]", 3590515429], + [239, 7, 945, "Metrics/PerceivedComplexity: Perceived complexity for `build_link_tree` is too high. [10/8]", 3590515429], + [297, 7, 738, "Metrics/AbcSize: Assignment Branch Condition size for `find_constructs` is too high. [<9, 9, 15> 19.67/17]", 1944426624], + [297, 7, 738, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `find_constructs` is too high. [9/7]", 1944426624], + [297, 7, 738, "Metrics/MethodLength: Method has too many lines. [20/10]", 1944426624], + [297, 7, 738, "Metrics/PerceivedComplexity: Perceived complexity for `find_constructs` is too high. [10/8]", 1944426624], + [308, 31, 7, "Style/NumericPredicate: Use `idx.positive?` instead of `idx > 0`.", 1825176542], + [326, 7, 1492, "Metrics/AbcSize: Assignment Branch Condition size for `try_parse_construct_at` is too high. [<7, 26, 13> 29.9/17]", 751157862], + [326, 7, 1492, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `try_parse_construct_at` is too high. [9/7]", 751157862], + [326, 7, 1492, "Metrics/MethodLength: Method has too many lines. [32/10]", 751157862], + [326, 7, 1492, "Metrics/PerceivedComplexity: Perceived complexity for `try_parse_construct_at` is too high. [10/8]", 751157862], + [371, 7, 332, "Metrics/MethodLength: Method has too many lines. [13/10]", 766454795], + [381, 27, 10, "Style/NumericPredicate: Use `depth.zero?` instead of `depth == 0`.", 3245914040], + [389, 7, 679, "Metrics/AbcSize: Assignment Branch Condition size for `find_paren_end` is too high. [<12, 5, 12> 17.69/17]", 3435642705], + [389, 7, 679, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `find_paren_end` is too high. [10/7]", 3435642705], + [389, 7, 679, "Metrics/MethodLength: Method has too many lines. [24/10]", 3435642705], + [389, 7, 679, "Metrics/PerceivedComplexity: Perceived complexity for `find_paren_end` is too high. [10/8]", 3435642705], + [410, 29, 10, "Style/NumericPredicate: Use `depth.zero?` instead of `depth == 0`.", 3245914040] + ], + "lib/markdown/merge/link_reference_rehydrator.rb:2522597032": [ + [28, 5, 10014, "Metrics/ClassLength: Class has too many lines. [171/100]", 3685995823], + [89, 7, 955, "Metrics/AbcSize: Assignment Branch Condition size for `rehydrate` is too high. [<6, 21, 4> 22.2/17]", 4193701], + [89, 7, 955, "Metrics/MethodLength: Method has too many lines. [12/10]", 4193701], + [138, 7, 1280, "Metrics/MethodLength: Method has too many lines. [20/10]", 2243922075], + [138, 7, 1280, "Metrics/PerceivedComplexity: Perceived complexity for `collect_nested_replacements` is too high. [10/8]", 2243922075], + [181, 7, 1844, "Metrics/AbcSize: Assignment Branch Condition size for `process_parent_with_children` is too high. [<11, 30, 10> 33.48/17]", 1412317448], + [181, 7, 1844, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `process_parent_with_children` is too high. [9/7]", 1412317448], + [181, 7, 1844, "Metrics/MethodLength: Method has too many lines. [29/10]", 1412317448], + [181, 7, 1844, "Metrics/PerceivedComplexity: Perceived complexity for `process_parent_with_children` is too high. [9/8]", 1412317448], + [230, 7, 672, "Metrics/AbcSize: Assignment Branch Condition size for `build_definition_maps` is too high. [<18, 18, 5> 25.94/17]", 2626750147], + [230, 7, 672, "Metrics/MethodLength: Method has too many lines. [15/10]", 2626750147], + [265, 7, 594, "Metrics/MethodLength: Method has too many lines. [21/10]", 1835317302], + [292, 7, 598, "Metrics/MethodLength: Method has too many lines. [21/10]", 1975952876] + ], + "lib/markdown/merge/list_match_refiner.rb:2863813265": [ + [28, 7, 760, "Metrics/AbcSize: Assignment Branch Condition size for `compute_similarity` is too high. [<6, 20, 4> 21.26/17]", 4078625426], + [28, 7, 760, "Metrics/MethodLength: Method has too many lines. [13/10]", 4078625426] + ], + "lib/markdown/merge/list_merger.rb:1304801063": [ + [33, 5, 10963, "Metrics/ClassLength: Class has too many lines. [214/100]", 602699468], + [48, 7, 1267, "Metrics/MethodLength: Method has too many lines. [22/10]", 3289445396], + [48, 22, 295, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [8/5]", 992893951], + [76, 20, 23, "Style/StringConcatenation: Prefer string interpolation to string concatenation.", 1178765246], + [86, 7, 474, "Metrics/MethodLength: Method has too many lines. [14/10]", 3392803095], + [110, 7, 2384, "Metrics/AbcSize: Assignment Branch Condition size for `align_items` is too high. [<29, 55, 24> 66.65/17]", 452537823], + [110, 7, 2384, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `align_items` is too high. [22/7]", 452537823], + [110, 7, 2384, "Metrics/MethodLength: Method has too many lines. [44/10]", 452537823], + [110, 7, 2384, "Metrics/PerceivedComplexity: Perceived complexity for `align_items` is too high. [23/8]", 452537823], + [179, 7, 2546, "Metrics/AbcSize: Assignment Branch Condition size for `emit_lines` is too high. [<24, 40, 13> 48.43/17]", 2868796461], + [179, 7, 2546, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `emit_lines` is too high. [10/7]", 2868796461], + [179, 7, 2546, "Metrics/MethodLength: Method has too many lines. [48/10]", 2868796461], + [179, 7, 2546, "Metrics/PerceivedComplexity: Perceived complexity for `emit_lines` is too high. [9/8]", 2868796461], + [179, 21, 167, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [9/5]", 3110781545], + [186, 9, 2214, "Metrics/BlockLength: Block has too many lines. [41/25]", 27504812], + [267, 7, 1113, "Metrics/MethodLength: Method has too many lines. [21/10]", 2701858480], + [267, 32, 165, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [9/5]", 4189168652] + ], + "lib/markdown/merge/merge_result.rb:3204455982": [ + [35, 5, 18456, "Metrics/ClassLength: Class has too many lines. [336/100]", 549816393], + [47, 21, 99, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [7/5]", 1708164346], + [99, 11, 18, "Naming/PredicatePrefix: Rename `has_frozen_blocks?` to `frozen_blocks?`.", 2714608976], + [174, 7, 987, "Metrics/MethodLength: Method has too many lines. [14/10]", 199512025], + [178, 121, 23, "Layout/LineLength: Line is too long. [143/120]", 2749193064], + [197, 7, 719, "Metrics/MethodLength: Method has too many lines. [11/10]", 3478479763], + [214, 7, 3130, "Metrics/AbcSize: Assignment Branch Condition size for `apply_grouped_delegated_block!` is too high. [<37, 72, 21> 83.63/17]", 3965639779], + [214, 7, 3130, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `apply_grouped_delegated_block!` is too high. [21/7]", 3965639779], + [214, 7, 3130, "Metrics/MethodLength: Method has too many lines. [49/10]", 3965639779], + [214, 7, 3130, "Metrics/PerceivedComplexity: Perceived complexity for `apply_grouped_delegated_block!` is too high. [21/8]", 3965639779], + [218, 121, 55, "Layout/LineLength: Line is too long. [175/120]", 2758428109], + [227, 9, 22, "Style/MultilineBlockChain: Avoid multi-line chains of blocks.", 3561198282], + [232, 9, 22, "Style/MultilineBlockChain: Avoid multi-line chains of blocks.", 3561198282], + [237, 9, 22, "Style/MultilineBlockChain: Avoid multi-line chains of blocks.", 3561198282], + [267, 7, 956, "Metrics/AbcSize: Assignment Branch Condition size for `apply_output_range_resolutions_descending!` is too high. [<8, 26, 8> 28.35/17]", 410698269], + [267, 7, 956, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `apply_output_range_resolutions_descending!` is too high. [8/7]", 410698269], + [267, 7, 956, "Metrics/MethodLength: Method has too many lines. [13/10]", 410698269], + [269, 121, 9, "Layout/LineLength: Line is too long. [129/120]", 1650842885], + [304, 7, 1607, "Metrics/AbcSize: Assignment Branch Condition size for `remap_delegated_cases_after_apply` is too high. [<5, 20, 1> 20.64/17]", 2805002106], + [304, 7, 1607, "Metrics/MethodLength: Method has too many lines. [25/10]", 2805002106], + [304, 44, 174, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [7/5]", 2563452319], + [352, 7, 664, "Metrics/MethodLength: Method has too many lines. [13/10]", 2283269648], + [402, 7, 605, "Metrics/MethodLength: Method has too many lines. [12/10]", 219211686], + [418, 7, 622, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `sanitize_review_state_metadata` is too high. [8/7]", 656017698], + [418, 7, 622, "Metrics/MethodLength: Method has too many lines. [16/10]", 656017698], + [439, 7, 1110, "Metrics/AbcSize: Assignment Branch Condition size for `validate_review_state_compatibility!` is too high. [<7, 18, 13> 23.28/17]", 3899925007], + [439, 7, 1110, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `validate_review_state_compatibility!` is too high. [11/7]", 3899925007], + [439, 7, 1110, "Metrics/MethodLength: Method has too many lines. [18/10]", 3899925007], + [439, 7, 1110, "Metrics/PerceivedComplexity: Perceived complexity for `validate_review_state_compatibility!` is too high. [11/8]", 3899925007], + [453, 121, 9, "Layout/LineLength: Line is too long. [129/120]", 2530059826], + [460, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5861331] + ], + "lib/markdown/merge/output_builder.rb:48145848": [ + [23, 5, 8640, "Metrics/ClassLength: Class has too many lines. [115/100]", 1155429967], + [47, 7, 2071, "Metrics/AbcSize: Assignment Branch Condition size for `add_node_source` is too high. [<6, 15, 12> 20.12/17]", 555854176], + [47, 7, 2071, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `add_node_source` is too high. [12/7]", 555854176], + [47, 7, 2071, "Metrics/MethodLength: Method has too many lines. [15/10]", 555854176], + [47, 7, 2071, "Metrics/PerceivedComplexity: Perceived complexity for `add_node_source` is too high. [12/8]", 555854176], + [60, 121, 43, "Layout/LineLength: Line is too long. [163/120]", 527167630], + [61, 121, 67, "Layout/LineLength: Line is too long. [187/120]", 2893319489], + [62, 121, 43, "Layout/LineLength: Line is too long. [163/120]", 2876999963], + [63, 121, 74, "Layout/LineLength: Line is too long. [194/120]", 4139918410], + [92, 38, 9, "Style/NumericPredicate: Use `count.positive?` instead of `count > 0`.", 3986027816], + [122, 7, 370, "Metrics/MethodLength: Method has too many lines. [11/10]", 616591631], + [224, 7, 878, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `extract_parser_node_source` is too high. [10/7]", 227721314], + [224, 7, 878, "Metrics/MethodLength: Method has too many lines. [13/10]", 227721314], + [224, 7, 878, "Metrics/PerceivedComplexity: Perceived complexity for `extract_parser_node_source` is too high. [11/8]", 227721314] + ], + "lib/markdown/merge/partial_template_merger.rb:3110525012": [ + [32, 5, 20691, "Metrics/ClassLength: Class has too many lines. [336/100]", 496419120], + [71, 7, 1040, "Metrics/MethodLength: Method has too many lines. [17/10]", 2144648319], + [71, 21, 417, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [14/5]", 1226086326], + [109, 7, 1065, "Metrics/AbcSize: Assignment Branch Condition size for `merge` is too high. [<7, 19, 6> 21.12/17]", 3976180000], + [109, 7, 1065, "Metrics/MethodLength: Method has too many lines. [25/10]", 3976180000], + [145, 7, 912, "Metrics/MethodLength: Method has too many lines. [15/10]", 2077585004], + [265, 7, 1401, "Metrics/AbcSize: Assignment Branch Condition size for `find_section_end` is too high. [<8, 28, 11> 31.13/17]", 1420600674], + [265, 7, 1401, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `find_section_end` is too high. [10/7]", 1420600674], + [265, 7, 1401, "Metrics/MethodLength: Method has too many lines. [20/10]", 1420600674], + [265, 7, 1401, "Metrics/PerceivedComplexity: Perceived complexity for `find_section_end` is too high. [10/8]", 1420600674], + [311, 7, 1101, "Metrics/AbcSize: Assignment Branch Condition size for `node_to_source` is too high. [<6, 15, 15> 22.05/17]", 3635207151], + [311, 7, 1101, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `node_to_source` is too high. [13/7]", 3635207151], + [311, 7, 1101, "Metrics/MethodLength: Method has too many lines. [20/10]", 3635207151], + [311, 7, 1101, "Metrics/PerceivedComplexity: Perceived complexity for `node_to_source` is too high. [14/8]", 3635207151], + [318, 20, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], + [323, 42, 14, "Style/NumericPredicate: Use `start_line.positive?` instead of `start_line > 0`.", 792111162], + [345, 7, 643, "Metrics/MethodLength: Method has too many lines. [17/10]", 998852567], + [364, 34, 10, "Style/NumericPredicate: Use `value.zero?` instead of `value == 0`.", 4076387742], + [367, 7, 2760, "Metrics/AbcSize: Assignment Branch Condition size for `preserved_destination_insertions` is too high. [<19, 28, 14> 36.62/17]", 414221184], + [367, 7, 2760, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `preserved_destination_insertions` is too high. [13/7]", 414221184], + [367, 7, 2760, "Metrics/MethodLength: Method has too many lines. [49/10]", 414221184], + [367, 7, 2760, "Metrics/PerceivedComplexity: Perceived complexity for `preserved_destination_insertions` is too high. [15/8]", 414221184], + [381, 121, 7, "Layout/LineLength: Line is too long. [127/120]", 682972477], + [426, 7, 1058, "Metrics/MethodLength: Method has too many lines. [16/10]", 932075153], + [475, 7, 1040, "Metrics/AbcSize: Assignment Branch Condition size for `render_template_with_preserved_insertions` is too high. [<10, 18, 10> 22.89/17]", 1699694974], + [475, 7, 1040, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `render_template_with_preserved_insertions` is too high. [9/7]", 1699694974], + [475, 7, 1040, "Metrics/MethodLength: Method has too many lines. [21/10]", 1699694974], + [475, 7, 1040, "Metrics/PerceivedComplexity: Perceived complexity for `render_template_with_preserved_insertions` is too high. [9/8]", 1699694974], + [504, 7, 454, "Metrics/MethodLength: Method has too many lines. [12/10]", 3433907112] + ], + "lib/markdown/merge/preservation_support.rb:3687269889": [ + [13, 5, 10105, "Metrics/ModuleLength: Module has too many lines. [212/100]", 674454], + [24, 7, 572, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `standalone_comment_node?` is too high. [9/7]", 349869031], + [24, 7, 572, "Metrics/PerceivedComplexity: Perceived complexity for `standalone_comment_node?` is too high. [9/8]", 349869031], + [116, 7, 655, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `remove_plan_preserved_comment_regions` is too high. [8/7]", 2103873816], + [116, 7, 655, "Metrics/MethodLength: Method has too many lines. [12/10]", 2103873816], + [178, 7, 1301, "Metrics/AbcSize: Assignment Branch Condition size for `remove_plan_comment_insertion_specs` is too high. [<5, 22, 8> 23.94/17]", 698043371], + [178, 7, 1301, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `remove_plan_comment_insertion_specs` is too high. [9/7]", 698043371], + [178, 7, 1301, "Metrics/MethodLength: Method has too many lines. [22/10]", 698043371], + [178, 7, 1301, "Metrics/PerceivedComplexity: Perceived complexity for `remove_plan_comment_insertion_specs` is too high. [9/8]", 698043371], + [193, 9, 7, "Style/MultilineBlockChain: Avoid multi-line chains of blocks.", 4045570401], + [217, 7, 737, "Metrics/MethodLength: Method has too many lines. [13/10]", 3882071587], + [248, 28, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], + [271, 7, 704, "Metrics/MethodLength: Method has too many lines. [13/10]", 2605835865], + [271, 52, 139, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 1766111143] + ], + "lib/markdown/merge/smart_merger.rb:1245982439": [ + [151, 7, 1405, "Metrics/MethodLength: Method has too many lines. [19/10]", 2830703815], + [151, 21, 501, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [13/5]", 1104874368], + [229, 7, 1140, "Metrics/AbcSize: Assignment Branch Condition size for `node_to_source` is too high. [<5, 15, 9> 18.19/17]", 1515173572], + [229, 7, 1140, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `node_to_source` is too high. [9/7]", 1515173572], + [229, 7, 1140, "Metrics/MethodLength: Method has too many lines. [13/10]", 1515173572], + [229, 7, 1140, "Metrics/PerceivedComplexity: Perceived complexity for `node_to_source` is too high. [10/8]", 1515173572] + ], + "lib/markdown/merge/smart_merger_base.rb:950545235": [ + [43, 5, 59104, "Metrics/ClassLength: Class has too many lines. [984/100]", 1046238359], + [148, 7, 3731, "Metrics/AbcSize: Assignment Branch Condition size for `initialize` is too high. [<20, 19, 10> 29.34/17]", 50319656], + [148, 7, 3731, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `initialize` is too high. [11/7]", 50319656], + [148, 7, 3731, "Metrics/MethodLength: Method has too many lines. [66/10]", 50319656], + [148, 7, 3731, "Metrics/PerceivedComplexity: Perceived complexity for `initialize` is too high. [9/8]", 50319656], + [148, 21, 606, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [17/5]", 4006929896], + [294, 7, 1760, "Metrics/AbcSize: Assignment Branch Condition size for `merge_result` is too high. [<15, 19, 7> 25.2/17]", 3628731818], + [294, 7, 1760, "Metrics/MethodLength: Method has too many lines. [31/10]", 3628731818], + [297, 25, 1662, "Metrics/BlockLength: Block has too many lines. [28/25]", 1167387512], + [343, 7, 1195, "Metrics/AbcSize: Assignment Branch Condition size for `merge_with_debug` is too high. [<3, 20, 17> 26.42/17]", 1763663260], + [343, 7, 1195, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `merge_with_debug` is too high. [18/7]", 1763663260], + [343, 7, 1195, "Metrics/MethodLength: Method has too many lines. [27/10]", 1763663260], + [343, 7, 1195, "Metrics/PerceivedComplexity: Perceived complexity for `merge_with_debug` is too high. [18/8]", 1763663260], + [383, 7, 1862, "Metrics/AbcSize: Assignment Branch Condition size for `prepare_runtime_session!` is too high. [<4, 24, 1> 24.35/17]", 546014873], + [383, 7, 1862, "Metrics/MethodLength: Method has too many lines. [45/10]", 546014873], + [432, 7, 1064, "Metrics/MethodLength: Method has too many lines. [21/10]", 214902707], + [490, 7, 438, "Metrics/MethodLength: Method has too many lines. [11/10]", 1759076310], + [505, 31, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], + [529, 7, 788, "Metrics/MethodLength: Method has too many lines. [13/10]", 690316762], + [553, 7, 1538, "Metrics/AbcSize: Assignment Branch Condition size for `collapse_cross_source_preamble_prefixes` is too high. [<9, 18, 6> 21/17]", 1970988374], + [553, 7, 1538, "Metrics/MethodLength: Method has too many lines. [25/10]", 1970988374], + [586, 7, 644, "Metrics/AbcSize: Assignment Branch Condition size for `leading_standalone_comment_run` is too high. [<8, 14, 7> 17.58/17]", 4188914818], + [586, 7, 644, "Metrics/MethodLength: Method has too many lines. [17/10]", 4188914818], + [614, 7, 1576, "Metrics/AbcSize: Assignment Branch Condition size for `process_alignment` is too high. [<15, 14, 10> 22.83/17]", 3967135783], + [614, 7, 1576, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `process_alignment` is too high. [11/7]", 3967135783], + [614, 7, 1576, "Metrics/MethodLength: Method has too many lines. [31/10]", 3967135783], + [614, 7, 1576, "Metrics/PerceivedComplexity: Perceived complexity for `process_alignment` is too high. [9/8]", 3967135783], + [656, 7, 2871, "Metrics/AbcSize: Assignment Branch Condition size for `process_match_to_builder` is too high. [<17, 39, 19> 46.59/17]", 608053079], + [656, 7, 2871, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `process_match_to_builder` is too high. [19/7]", 608053079], + [656, 7, 2871, "Metrics/MethodLength: Method has too many lines. [50/10]", 608053079], + [656, 7, 2871, "Metrics/PerceivedComplexity: Perceived complexity for `process_match_to_builder` is too high. [18/8]", 608053079], + [720, 7, 867, "Metrics/MethodLength: Method has too many lines. [18/10]", 2946023513], + [764, 7, 670, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `consumed_link_definitions_within` is too high. [8/7]", 2596009659], + [764, 7, 670, "Metrics/MethodLength: Method has too many lines. [11/10]", 2596009659], + [774, 9, 8, "Style/MultilineBlockChain: Avoid multi-line chains of blocks.", 359839059], + [782, 45, 50, "Style/ClassEqualityComparison: Use `instance_of?(::RSpec::Mocks::MockExpectationError)` instead of comparing classes.", 952914844], + [797, 7, 939, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `apply_node_typing` is too high. [8/7]", 2526108526], + [797, 7, 939, "Metrics/MethodLength: Method has too many lines. [14/10]", 2526108526], + [849, 7, 1297, "Metrics/AbcSize: Assignment Branch Condition size for `try_inner_merge_list_to_builder` is too high. [<8, 20, 8> 22.98/17]", 2844551967], + [849, 7, 1297, "Metrics/MethodLength: Method has too many lines. [25/10]", 2844551967], + [849, 42, 71, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 3479074024], + [885, 7, 1361, "Metrics/AbcSize: Assignment Branch Condition size for `try_inner_merge_code_block_to_builder` is too high. [<7, 19, 6> 21.12/17]", 2468334280], + [885, 7, 1361, "Metrics/MethodLength: Method has too many lines. [29/10]", 2468334280], + [885, 48, 71, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 3479074024], + [918, 7, 1923, "Metrics/AbcSize: Assignment Branch Condition size for `remap_delegated_unresolved_cases` is too high. [<8, 23, 5> 24.86/17]", 2261924082], + [918, 7, 1923, "Metrics/MethodLength: Method has too many lines. [35/10]", 2261924082], + [922, 9, 1535, "Metrics/BlockLength: Block has too many lines. [31/25]", 838301956], + [983, 7, 657, "Metrics/MethodLength: Method has too many lines. [15/10]", 4047906352], + [1027, 7, 411, "Metrics/MethodLength: Method has too many lines. [13/10]", 4206078535], + [1053, 7, 3160, "Metrics/AbcSize: Assignment Branch Condition size for `process_dest_only_to_builder` is too high. [<14, 41, 24> 49.53/17]", 1311626075], + [1053, 7, 3160, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `process_dest_only_to_builder` is too high. [25/7]", 1311626075], + [1053, 7, 3160, "Metrics/MethodLength: Method has too many lines. [51/10]", 1311626075], + [1053, 7, 3160, "Metrics/PerceivedComplexity: Perceived complexity for `process_dest_only_to_builder` is too high. [25/8]", 1311626075], + [1053, 39, 177, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [7/5]", 2740785193], + [1167, 7, 395, "Metrics/MethodLength: Method has too many lines. [11/10]", 433430016], + [1204, 7, 465, "Metrics/MethodLength: Method has too many lines. [12/10]", 1101864061], + [1261, 7, 861, "Metrics/MethodLength: Method has too many lines. [16/10]", 2380789170], + [1314, 121, 3, "Layout/LineLength: Line is too long. [123/120]", 193431734], + [1317, 7, 1039, "Metrics/AbcSize: Assignment Branch Condition size for `kept_node_for_link_ownership` is too high. [<4, 17, 9> 19.65/17]", 849664480], + [1317, 7, 1039, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `kept_node_for_link_ownership` is too high. [8/7]", 849664480], + [1317, 7, 1039, "Metrics/MethodLength: Method has too many lines. [24/10]", 849664480], + [1348, 7, 797, "Metrics/MethodLength: Method has too many lines. [12/10]", 3928797316], + [1384, 7, 610, "Metrics/AbcSize: Assignment Branch Condition size for `link_reference_signatures_within` is too high. [<6, 15, 6> 17.23/17]", 2255263809], + [1390, 121, 1, "Layout/LineLength: Line is too long. [121/120]", 177625], + [1457, 7, 1360, "Metrics/MethodLength: Method has too many lines. [19/10]", 1607654950] + ], + "lib/markdown/merge/table_match_algorithm.rb:784102633": [ + [31, 5, 17084, "Metrics/ClassLength: Class has too many lines. [241/100]", 3870100216], + [71, 21, 130, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 2234186342], + [86, 7, 537, "Metrics/MethodLength: Method has too many lines. [11/10]", 695685542], + [112, 7, 872, "Metrics/AbcSize: Assignment Branch Condition size for `levenshtein_distance` is too high. [<13, 29, 8> 32.77/17]", 3623880915], + [112, 7, 872, "Metrics/MethodLength: Method has too many lines. [20/10]", 3623880915], + [264, 7, 1291, "Metrics/AbcSize: Assignment Branch Condition size for `collect_text_recursive` is too high. [<5, 22, 13> 26.04/17]", 1898702827], + [264, 7, 1291, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `collect_text_recursive` is too high. [12/7]", 1898702827], + [264, 7, 1291, "Metrics/MethodLength: Method has too many lines. [26/10]", 1898702827], + [264, 7, 1291, "Metrics/PerceivedComplexity: Perceived complexity for `collect_text_recursive` is too high. [15/8]", 1898702827], + [292, 24, 43, "Metrics/BlockNesting: Avoid more than 3 levels of block nesting.", 2747201274], + [303, 7, 644, "Metrics/AbcSize: Assignment Branch Condition size for `compute_header_match` is too high. [<6, 20, 9> 22.74/17]", 2910662900], + [303, 7, 644, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `compute_header_match` is too high. [10/7]", 2910662900], + [303, 7, 644, "Metrics/MethodLength: Method has too many lines. [11/10]", 2910662900], + [303, 7, 644, "Metrics/PerceivedComplexity: Perceived complexity for `compute_header_match` is too high. [10/8]", 2910662900], + [330, 7, 927, "Metrics/AbcSize: Assignment Branch Condition size for `compute_first_column_match` is too high. [<14, 22, 14> 29.6/17]", 2043865784], + [330, 7, 927, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `compute_first_column_match` is too high. [14/7]", 2043865784], + [330, 7, 927, "Metrics/MethodLength: Method has too many lines. [15/10]", 2043865784], + [330, 7, 927, "Metrics/PerceivedComplexity: Perceived complexity for `compute_first_column_match` is too high. [14/8]", 2043865784], + [331, 28, 19, "Style/SymbolProc: Pass `&:first` as an argument to `map` instead of a block.", 2561207191], + [332, 28, 19, "Style/SymbolProc: Pass `&:first` as an argument to `map` instead of a block.", 2561207191], + [352, 9, 15, "Style/NumericPredicate: Use `total_cells.positive?` instead of `total_cells > 0`.", 1010733923], + [362, 7, 1037, "Metrics/AbcSize: Assignment Branch Condition size for `compute_row_content_match` is too high. [<10, 15, 12> 21.66/17]", 1855353124], + [362, 7, 1037, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `compute_row_content_match` is too high. [11/7]", 1855353124], + [362, 7, 1037, "Metrics/MethodLength: Method has too many lines. [21/10]", 1855353124], + [362, 7, 1037, "Metrics/PerceivedComplexity: Perceived complexity for `compute_row_content_match` is too high. [11/8]", 1855353124], + [404, 23, 14, "Style/NumericPredicate: Use `max_cells.zero?` instead of `max_cells == 0`.", 2427124139], + [423, 7, 1091, "Metrics/AbcSize: Assignment Branch Condition size for `compute_total_cells_match` is too high. [<14, 18, 12> 25.77/17]", 413080451], + [423, 7, 1091, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `compute_total_cells_match` is too high. [11/7]", 413080451], + [423, 7, 1091, "Metrics/MethodLength: Method has too many lines. [24/10]", 413080451], + [423, 7, 1091, "Metrics/PerceivedComplexity: Perceived complexity for `compute_total_cells_match` is too high. [11/8]", 413080451], + [492, 23, 17, "Style/NumericPredicate: Use `total_weight.zero?` instead of `total_weight == 0`.", 3158357864] + ], + "lib/markdown/merge/table_match_refiner.rb:4203940079": [ + [118, 35, 50, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 1492696344] + ], + "lib/markdown/merge/whitespace_normalizer.rb:121777318": [ + [33, 5, 6779, "Metrics/ClassLength: Class has too many lines. [115/100]", 3048764740], + [103, 7, 418, "Metrics/MethodLength: Method has too many lines. [11/10]", 3165373284], + [126, 7, 1750, "Metrics/AbcSize: Assignment Branch Condition size for `collapse_excessive_blank_lines` is too high. [<12, 12, 10> 19.7/17]", 1435694128], + [126, 7, 1750, "Metrics/MethodLength: Method has too many lines. [36/10]", 1435694128], + [188, 7, 1270, "Metrics/AbcSize: Assignment Branch Condition size for `remove_blank_lines_between_link_refs` is too high. [<12, 22, 13> 28.23/17]", 1324661552], + [188, 7, 1270, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `remove_blank_lines_between_link_refs` is too high. [9/7]", 1324661552], + [188, 7, 1270, "Metrics/MethodLength: Method has too many lines. [29/10]", 1324661552], + [188, 7, 1270, "Metrics/PerceivedComplexity: Perceived complexity for `remove_blank_lines_between_link_refs` is too high. [10/8]", 1324661552], + [207, 15, 54, "Metrics/BlockNesting: Avoid more than 3 levels of block nesting.", 831575245] + ], + "lib/markdown/merge/wrapper_support.rb:1758973456": [ + [6, 5, 7266, "Metrics/ModuleLength: Module has too many lines. [161/100]", 2849920033], + [29, 7, 1214, "Metrics/MethodLength: Method has too many lines. [19/10]", 1280688859], + [29, 19, 250, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [8/5]", 4150728370], + [78, 7, 1452, "Metrics/MethodLength: Method has too many lines. [18/10]", 3670315588], + [78, 43, 286, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [8/5]", 3809385913], + [127, 7, 592, "Metrics/MethodLength: Method has too many lines. [12/10]", 3827282628] + ], + "markdown-merge.gemspec:3964894686": [ + [128, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 2821357214], + [143, 121, 50, "Layout/LineLength: Line is too long. [170/120]", 3888612416], + [144, 121, 29, "Layout/LineLength: Line is too long. [149/120]", 981994949], + [151, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 4229808912] + ], + "spec/fixtures_integration_spec.rb:762722167": [ + [3, 1, 17188, "Metrics/BlockLength: Block has too many lines. [403/25]", 3093659447], + [41, 121, 5, "Layout/LineLength: Line is too long. [125/120]", 180560828] + ] +} diff --git a/gems/markdown-merge/Gemfile.lock b/gems/markdown-merge/Gemfile.lock index a4fef0b87..51ae3e302 100644 --- a/gems/markdown-merge/Gemfile.lock +++ b/gems/markdown-merge/Gemfile.lock @@ -7,7 +7,7 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/ast-merge specs: ast-merge (7.1.0) benchmark @@ -16,7 +16,7 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/tree_haver specs: tree_haver (7.1.0) citrus (~> 3.0) diff --git a/gems/markly-merge/.kettle-drift.lock b/gems/markly-merge/.kettle-drift.lock index 9a486b4b3..25b4603d6 100644 --- a/gems/markly-merge/.kettle-drift.lock +++ b/gems/markly-merge/.kettle-drift.lock @@ -4,7 +4,8 @@ "file": "Gemfile", "lines": [ 79, - 119 + 119, + 159 ] } ], @@ -13,7 +14,8 @@ "file": "Gemfile", "lines": [ 90, - 130 + 130, + 170 ] } ], @@ -22,7 +24,8 @@ "file": "Gemfile", "lines": [ 80, - 120 + 120, + 160 ] } ], @@ -31,7 +34,8 @@ "file": "Gemfile", "lines": [ 92, - 132 + 132, + 172 ] } ], @@ -40,7 +44,8 @@ "file": "Gemfile", "lines": [ 95, - 135 + 135, + 175 ] } ], @@ -49,7 +54,8 @@ "file": "Gemfile", "lines": [ 81, - 121 + 121, + 161 ] } ], @@ -59,7 +65,8 @@ "lines": [ 59, 99, - 139 + 139, + 179 ] } ], @@ -68,7 +75,8 @@ "file": "Gemfile", "lines": [ 100, - 140 + 140, + 180 ] } ], @@ -78,7 +86,8 @@ "lines": [ 42, 86, - 126 + 126, + 166 ] } ], @@ -87,7 +96,8 @@ "file": "Gemfile", "lines": [ 109, - 149 + 149, + 189 ] } ], @@ -97,7 +107,8 @@ "lines": [ 34, 78, - 118 + 118, + 158 ] } ], @@ -107,7 +118,8 @@ "lines": [ 68, 108, - 148 + 148, + 188 ] } ], @@ -116,7 +128,8 @@ "file": "Gemfile", "lines": [ 84, - 124 + 124, + 164 ] } ], @@ -126,7 +139,8 @@ "lines": [ 47, 91, - 131 + 131, + 171 ] } ], @@ -136,7 +150,8 @@ "lines": [ 43, 87, - 127 + 127, + 167 ] } ], @@ -145,7 +160,8 @@ "file": "Gemfile", "lines": [ 85, - 125 + 125, + 165 ] } ], @@ -154,7 +170,8 @@ "file": "Gemfile", "lines": [ 102, - 142 + 142, + 182 ] } ], @@ -163,7 +180,8 @@ "file": "Gemfile", "lines": [ 101, - 141 + 141, + 181 ] } ], @@ -172,7 +190,8 @@ "file": "Gemfile", "lines": [ 96, - 136 + 136, + 176 ] } ], @@ -181,7 +200,8 @@ "file": "Gemfile", "lines": [ 105, - 145 + 145, + 185 ] } ] diff --git a/gems/markly-merge/Gemfile b/gems/markly-merge/Gemfile index 72f9ad71e..8f0986230 100644 --- a/gems/markly-merge/Gemfile +++ b/gems/markly-merge/Gemfile @@ -6,7 +6,7 @@ # kettle-jem will then preserve content between those markers across template runs. # kettle-jem:unfreeze -source 'https://gem.coop' +source "https://gem.coop" git_source(:codeberg) { |repo_name| "https://codeberg.org/#{repo_name}" } git_source(:gitlab) { |repo_name| "https://gitlab.com/#{repo_name}" } @@ -19,17 +19,61 @@ git_source(:gitlab) { |repo_name| "https://gitlab.com/#{repo_name}" } gemspec # Local workspace dependency wiring for *_local.gemfile overrides -nomono_requirements = ['~> 1.0', '>= 1.0.8'] -gem 'nomono', *nomono_requirements, require: false # ruby >= 2.2 +nomono_requirements = ["~> 1.0", ">= 1.0.8"] +gem "nomono", *nomono_requirements, require: false # ruby >= 2.2 # Direct sibling dependencies (env-switched via STRUCTUREDMERGE_DEV) direct_sibling_gems = %w[ markdown-merge ] -direct_sibling_dev = ENV.fetch('STRUCTUREDMERGE_DEV', '') +direct_sibling_dev = ENV.fetch("STRUCTUREDMERGE_DEV", "") direct_sibling_local = !direct_sibling_dev.empty? && !%w[false 0 no off].include?(direct_sibling_dev.downcase) -direct_sibling_templating = ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? +direct_sibling_templating = ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? + +if direct_sibling_gems.any? && + (direct_sibling_local || + ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero?) + direct_sibling_dev_was_set = ENV.key?("STRUCTUREDMERGE_DEV") + direct_sibling_dev_original = ENV.fetch("STRUCTUREDMERGE_DEV", nil) + begin + nomono_activation_requirements = nomono_requirements + nomono_lockfile = File.expand_path("Gemfile.lock", __dir__) + if File.file?(nomono_lockfile) + nomono_locked_spec = Bundler::LockfileParser + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == "nomono" } + nomono_locked = nomono_locked_spec && + Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) + if nomono_locked + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] + end + end + Kernel.send(:gem, "nomono", *nomono_activation_requirements) + require "nomono/bundler" + if direct_sibling_templating && !direct_sibling_local + ENV["STRUCTUREDMERGE_DEV"] = File.expand_path("..", __dir__) + end + + eval_nomono_gems( + gems: direct_sibling_gems, + prefix: "STRUCTUREDMERGE", + path_env: "STRUCTUREDMERGE_DEV", + root: ["src", "my", "structuredmerge"] + ) + rescue LoadError + warn "Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies." + ensure + if direct_sibling_templating && !direct_sibling_local + if direct_sibling_dev_was_set + ENV["STRUCTUREDMERGE_DEV"] = direct_sibling_dev_original + else + ENV.delete("STRUCTUREDMERGE_DEV") + end + end + end +end if direct_sibling_gems.any? && (direct_sibling_local || @@ -152,28 +196,28 @@ if direct_sibling_gems.any? && end # Use released TSLP with the Ruby ABI platform-gem fix. -gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' +gem "tree_sitter_language_pack", "~> 1.13", ">= 1.13.3" # Templating (env-switched: STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local paths) -eval_gemfile 'gemfiles/modular/templating.gemfile' if ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? +eval_gemfile "gemfiles/modular/templating.gemfile" if ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? # Debugging -eval_gemfile 'gemfiles/modular/debug.gemfile' +eval_gemfile "gemfiles/modular/debug.gemfile" # Code Coverage (env-switched: KETTLE_DEV_DEV=true for local paths) -eval_gemfile 'gemfiles/modular/coverage.gemfile' +eval_gemfile "gemfiles/modular/coverage.gemfile" # Linting -eval_gemfile 'gemfiles/modular/style.gemfile' +eval_gemfile "gemfiles/modular/style.gemfile" # Documentation -eval_gemfile 'gemfiles/modular/documentation.gemfile' +eval_gemfile "gemfiles/modular/documentation.gemfile" # Optional -eval_gemfile 'gemfiles/modular/optional.gemfile' +eval_gemfile "gemfiles/modular/optional.gemfile" ### Std Lib Extracted Gems -eval_gemfile 'gemfiles/modular/x_std_libs.gemfile' +eval_gemfile "gemfiles/modular/x_std_libs.gemfile" # See unlocked_deps appraisal for more details on irb inclusion -gem 'irb', '~> 1.17' # ruby >= 2.7 +gem "irb", "~> 1.17" # ruby >= 2.7 diff --git a/gems/markly-merge/Rakefile b/gems/markly-merge/Rakefile index 9946d12a1..319456e08 100644 --- a/gems/markly-merge/Rakefile +++ b/gems/markly-merge/Rakefile @@ -130,23 +130,23 @@ end ### DUPLICATE DRIFT TASKS begin - require 'kettle/drift' + require "kettle/drift" Kettle::Drift.install_tasks rescue LoadError - desc('(stub) kettle:drift:check is unavailable') - task('kettle:drift:check') do + desc("(stub) kettle:drift:check is unavailable") + task("kettle:drift:check") do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc('(stub) kettle:drift:update is unavailable') - task('kettle:drift:update') do + desc("(stub) kettle:drift:update is unavailable") + task("kettle:drift:update") do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc('(stub) kettle:drift:force_update is unavailable') - task('kettle:drift:force_update') do + desc("(stub) kettle:drift:force_update is unavailable") + task("kettle:drift:force_update") do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc('(stub) kettle:drift is unavailable') - task('kettle:drift' => 'kettle:drift:update') + desc("(stub) kettle:drift is unavailable") + task("kettle:drift" => "kettle:drift:update") end ### TEMPLATING TASKS diff --git a/gems/markly-merge/gemfiles/modular/templating.gemfile b/gems/markly-merge/gemfiles/modular/templating.gemfile index a672de184..47138ffbb 100644 --- a/gems/markly-merge/gemfiles/modular/templating.gemfile +++ b/gems/markly-merge/gemfiles/modular/templating.gemfile @@ -1,18 +1,18 @@ # frozen_string_literal: true -structuredmerge_remote = ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false').zero? -kettle_remote = ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? +structuredmerge_remote = ENV.fetch("STRUCTUREDMERGE_DEV", "false").casecmp("false").zero? +kettle_remote = ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false").zero? if structuredmerge_remote # Parser dependencies for released installs. - gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' + gem "tree_sitter_language_pack", "~> 1.13", ">= 1.13.3" # Merge recipes for released installs. - gem 'kettle-jem', '>= 7.0' + gem "kettle-jem", ">= 7.0" end if kettle_remote # Template/plugin checks for released installs. - gem 'kettle-drift', '~> 1.0', '>= 1.0.6', require: false + gem "kettle-drift", "~> 1.0", ">= 1.0.6", require: false end # Set STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local development with path-based dependencies. @@ -21,4 +21,4 @@ end # # Set KETTLE_DEV_DEV=/path/to/my for local development with Kettle plugin gems. # When false (default / CI), released Kettle plugin gems are used. -eval_gemfile 'templating_local.gemfile' unless structuredmerge_remote && kettle_remote +eval_gemfile "templating_local.gemfile" unless structuredmerge_remote && kettle_remote diff --git a/gems/markly-merge/gemfiles/modular/templating_local.gemfile b/gems/markly-merge/gemfiles/modular/templating_local.gemfile index 4b7f13294..c3ddc6d57 100644 --- a/gems/markly-merge/gemfiles/modular/templating_local.gemfile +++ b/gems/markly-merge/gemfiles/modular/templating_local.gemfile @@ -12,19 +12,21 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] -nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) +nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] +nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == "nomono" } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + if nomono_locked + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] + end end -Kernel.send(:gem, 'nomono', *nomono_activation_requirements) -require 'nomono/bundler' +Kernel.send(:gem, "nomono", *nomono_activation_requirements) +require "nomono/bundler" structuredmerge_local_gems = %w[ tree_haver @@ -67,25 +69,25 @@ structuredmerge_local_gems_to_eval = structuredmerge_local_gems - %w[markly-merg kettle_dev_local_gems_to_eval = kettle_dev_local_gems - %w[markly-merge] - declared_gems platform :mri do - if ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false') != 0 + if ENV.fetch("STRUCTUREDMERGE_DEV", "false").casecmp("false") != 0 eval_nomono_gems( gems: structuredmerge_local_gems_to_eval, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - vendored_gems_env: 'VENDORED_GEMS', - vendor_gem_dir_env: 'VENDOR_GEM_DIR', - debug_env: 'STRUCTUREDMERGE_DEBUG' + prefix: "STRUCTUREDMERGE", + path_env: "STRUCTUREDMERGE_DEV", + vendored_gems_env: "VENDORED_GEMS", + vendor_gem_dir_env: "VENDOR_GEM_DIR", + debug_env: "STRUCTUREDMERGE_DEBUG" ) end - if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false') != 0 + if ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false") != 0 eval_nomono_gems( gems: kettle_dev_local_gems_to_eval, - prefix: 'KETTLE_DEV', - path_env: 'KETTLE_DEV_DEV', - vendored_gems_env: 'VENDORED_GEMS', - vendor_gem_dir_env: 'VENDOR_GEM_DIR', - debug_env: 'KETTLE_DEV_DEBUG' + prefix: "KETTLE_DEV", + path_env: "KETTLE_DEV_DEV", + vendored_gems_env: "VENDORED_GEMS", + vendor_gem_dir_env: "VENDOR_GEM_DIR", + debug_env: "KETTLE_DEV_DEBUG" ) end end diff --git a/gems/markly-merge/lib/markly/merge/version.rb b/gems/markly-merge/lib/markly/merge/version.rb index 3bfd8e9b0..b4ff2ffeb 100644 --- a/gems/markly-merge/lib/markly/merge/version.rb +++ b/gems/markly-merge/lib/markly/merge/version.rb @@ -3,7 +3,7 @@ module Markly module Merge module Version - VERSION = '7.1.0' + VERSION = "7.1.0" end VERSION = Version::VERSION # Traditional Constant Location end diff --git a/gems/prism-merge/Gemfile.lock b/gems/prism-merge/Gemfile.lock index 0f7f99933..f94c28138 100644 --- a/gems/prism-merge/Gemfile.lock +++ b/gems/prism-merge/Gemfile.lock @@ -7,13 +7,265 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly + specs: + ast-crispr-markdown-markly (7.1.0) + ast-crispr (= 7.1.0) + markly-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism + specs: + ast-crispr-ruby-prism (7.1.0) + ast-crispr (= 7.1.0) + prism-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr + specs: + ast-crispr (7.1.0) + ast-merge (= 7.1.0) + service_actor (~> 3.9) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git + specs: + ast-merge-git (7.1.0) + ast-merge (= 7.1.0) + json-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge + specs: + ast-merge (7.1.0) + benchmark + token-resolver (~> 2.0, >= 2.0.4) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template + specs: + ast-template (7.1.0) + ast-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge + specs: + bash-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge + specs: + binary-merge (7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge + specs: + citrus-toml-merge (7.1.0) + toml-merge (= 7.1.0) + toml-rb (~> 4.1) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge + specs: + commonmarker-merge (7.1.0) + commonmarker (~> 2.2) + markdown-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge + specs: + dotenv-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge + specs: + go-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge + specs: + json-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem + specs: + kettle-jem (7.1.0) + addressable (>= 2.8, < 3) + ast-crispr-markdown-markly (= 7.1.0) + ast-crispr-ruby-prism (= 7.1.0) + ast-merge (= 7.1.0) + bash-merge (= 7.1.0) + citrus-toml-merge (= 7.1.0) + commonmarker-merge (= 7.1.0) + dotenv-merge (= 7.1.0) + json-merge (= 7.1.0) + kettle-dev (~> 2.3, >= 2.3.5) + kettle-rb (~> 0.1, >= 0.1.4) + kramdown-merge (= 7.1.0) + markdown-merge (= 7.1.0) + markly-merge (= 7.1.0) + prism-merge (= 7.1.0) + psych-merge (= 7.1.0) + rbs (>= 3.10) + rbs-merge (= 7.1.0) + ruby-merge (= 7.1.0) + token-resolver (~> 2.0, >= 2.0.4) + toml-merge (= 7.1.0) + toml-rb (~> 4.2) + tree_haver (= 7.1.0) + yaml-merge (= 7.1.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge + specs: + kramdown-merge (7.1.0) + kramdown (~> 2.5) + markdown-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge + specs: + markdown-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge + specs: + markly-merge (7.1.0) + markdown-merge (= 7.1.0) + markly (~> 0.9) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge + specs: + parslet-toml-merge (7.1.0) + toml (~> 0.3) + toml-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge + specs: + plain-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge + specs: + psych-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + yaml-merge (= 7.1.0) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge + specs: + rbs-merge (7.1.0) + ast-merge (= 7.1.0) + rbs (>= 3.10) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge specs: ruby-merge (7.1.0) ast-merge (= 7.1.0) tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge + specs: + rust-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb + specs: + smorg-rb (7.1.0) + ast-merge (= 7.1.0) + ast-merge-git (= 7.1.0) + diff-lcs (~> 1.5) + go-merge (= 7.1.0) + json-merge (= 7.1.0) + kettle-jem (= 7.1.0) + markly-merge (= 7.1.0) + plain-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge + specs: + toml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver + specs: + tree_haver (7.1.0) + citrus (~> 3.0) + parslet (~> 2.0) + tree_sitter_language_pack (>= 1.13.2, < 2.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge + specs: + typescript-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge + specs: + yaml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge + specs: + zip-merge (7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + GEM remote: https://gem.coop/ specs: @@ -29,11 +281,6 @@ GEM rubocop (>= 1.0) version_gem (~> 1.1, >= 1.1.14) ast (2.4.3) - ast-merge (7.1.0) - benchmark - token-resolver (~> 2.0, >= 2.0.4) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) backports (3.25.3) benchmark (0.5.0) bigdecimal (4.1.2) @@ -43,6 +290,7 @@ GEM cgi (0.5.2) citrus (3.0.2) cmdparse (3.0.7) + commonmarker (2.9.0-x86_64-linux) concurrent-ruby (1.3.8) date (3.5.1) debug (1.11.1) @@ -105,6 +353,8 @@ GEM kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) + kettle-drift (1.0.6) + version_gem (~> 1.1, >= 1.1.14) kettle-rb (0.1.5) kettle-soup-cover (3.0.4) kettle-wash (~> 0.1, >= 0.1.0) @@ -133,6 +383,7 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) + markly (0.16.0) mutex_m (0.3.0) nokogiri (1.19.4-x86_64-linux-gnu) racc (~> 1.4) @@ -287,6 +538,8 @@ GEM ruby-progressbar (1.13.0) ruby_engine (2.0.3) ruby_version (1.0.3) + service_actor (3.9.4) + zeitwerk (>= 1.0) silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) @@ -341,11 +594,11 @@ GEM token-resolver (2.0.5) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.14) - tree_haver (7.1.0) - citrus (~> 3.0) - parslet (~> 2.0) - tree_sitter_language_pack (>= 1.13.2, < 2.0) - version_gem (~> 1.1, >= 1.1.9) + toml (0.3.0) + parslet (>= 1.8.0, < 3.0.0) + toml-rb (4.2.0) + citrus (~> 3.0, > 3.0) + racc (~> 1.7) tree_sitter_language_pack (1.13.3-x86_64-linux) sorbet-runtime (~> 0.5) tsort (0.2.0) @@ -391,24 +644,46 @@ DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) appraisal2-rubocop (~> 1.0, >= 1.0.0) + ast-crispr! + ast-crispr-markdown-markly! + ast-crispr-ruby-prism! + ast-merge! + ast-merge-git! + ast-template! + bash-merge! benchmark (~> 0.5, >= 0.5.0) + binary-merge! bundler-audit (~> 0.9.3) cgi (~> 0.5) + citrus-toml-merge! + commonmarker-merge! debug (>= 1.1) + dotenv-merge! erb (~> 6.0, >= 6.0.6) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.0) + go-merge! irb (~> 1.17) + json-merge! kettle-dev (~> 2.0, >= 2.2.25) + kettle-drift (~> 1.0, >= 1.0.6) + kettle-jem! kettle-soup-cover (~> 3.0, >= 3.0.3) kettle-test (~> 2.0, >= 2.0.9) kramdown (~> 2.5, >= 2.5.2) + kramdown-merge! kramdown-parser-gfm (~> 1.1) + markdown-merge! + markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) + parslet-toml-merge! + plain-merge! prism-merge! + psych-merge! rake (~> 13.0) rbs (>= 3.0) + rbs-merge! rdoc (~> 6.11) reek (~> 6.5, >= 6.5.0) require_bench (~> 1.0, >= 1.0.4) @@ -421,18 +696,25 @@ DEPENDENCIES rubocop-ruby3_2 (~> 3.0, >= 3.0.6) ruby-merge! ruby-progressbar (~> 1.13) + rust-merge! + smorg-rb! standard (~> 1.56, >= 1.56.0) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) + toml-merge! + tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) + typescript-merge! webrick (~> 1.9) yaml-converter (~> 0.2, >= 0.2.3) + yaml-merge! yard (~> 0.9, >= 0.9.45) yard-fence (~> 0.9, >= 0.9.6) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) yard-timekeeper (~> 0.2, >= 0.2.4) yard-yaml (~> 0.2, >= 0.2.3) + zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af @@ -440,20 +722,31 @@ CHECKSUMS appraisal2 (3.2.0) sha256=ccd0b767ac4060cd7af6d16747459b6990f49c39c7b4fb1f7d1146b1e97c492f appraisal2-rubocop (1.0.0) sha256=b71410fbb014befda5340605a605b7f6f3f012739baf0acc5b4351b592c3258d ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 + ast-crispr (7.1.0) + ast-crispr-markdown-markly (7.1.0) + ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) + ast-merge-git (7.1.0) + ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 + bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd + binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 + citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 + commonmarker (2.9.0-x86_64-linux) sha256=8cfe92970eef585a19ddf6613224b91cab64d6029834661bda801f877c9c7f43 + commonmarker-merge (7.1.0) concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 + dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -466,20 +759,28 @@ CHECKSUMS gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f + go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 + json-merge (7.1.0) kettle-dev (2.3.9) + kettle-drift (1.0.6) sha256=46eda08fa4411d1f3c6682a95eef1c9df4e94611b3949f49d4c7b43c0ed356a3 + kettle-jem (7.1.0) kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f kettle-soup-cover (3.0.4) kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa + kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 + markdown-merge (7.1.0) + markly (0.16.0) sha256=6f70d79e385b1efc9e171f74c81628826259039fe6c778e03c3924c71dac5511 + markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-x86_64-linux-gnu) sha256=379fae440b28915e3f19d752ce2dcf8465ed2b2fbefd2a7ca0dd497bc981a06a nomono (1.0.9) @@ -489,16 +790,20 @@ CHECKSUMS parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 + parslet-toml-merge (7.1.0) + plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 + psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 + rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb @@ -537,12 +842,15 @@ CHECKSUMS ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 + rust-merge (7.1.0) + service_actor (3.9.4) sha256=e63b523630b9a7e62959b2a90113b08d2565b5de9c148557b281ef847c9539ce silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed + smorg-rb (7.1.0) sorbet-runtime (0.6.13351) sha256=f8fee17c6e3edf835dc6823d26afb9a7c8969c6710d1fabe2fb43f4e0c15c64f standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b @@ -557,15 +865,20 @@ CHECKSUMS timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.5) sha256=b852f924287ffb58a440856e862b056c8ad97e74b4b2526cee43e0771f40c25c + toml (0.3.0) sha256=0a91d0f76a9036e84e44f95693b12f58d358c1df3ac8e3b5271f2056ecc6e4b9 + toml-merge (7.1.0) + toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 + typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 webrick (1.9.2) sha256=beb4a15fc474defed24a3bda4ffd88a490d517c9e4e6118c3edce59e45864131 yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 + yaml-merge (7.1.0) yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd @@ -573,6 +886,7 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 + zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH From 9b0bda0a0c2dc80f6581d50b31a5cff5dd666d80 Mon Sep 17 00:00:00 2001 From: "Peter H. Boling" Date: Tue, 21 Jul 2026 18:39:22 -0600 Subject: [PATCH 182/188] =?UTF-8?q?=F0=9F=8E=A8=20Template=20bootstrap=20b?= =?UTF-8?q?y=20kettle-jem=20v7.1.0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../.kettle-drift.lock | 60 ++- gems/ast-crispr-markdown-markly/Gemfile | 40 ++ gems/ast-crispr-markdown-markly/Gemfile.lock | 26 +- gems/ast-merge/Gemfile | 70 ++-- gems/ast-merge/Rakefile | 18 +- gems/ast-merge/bin/yard | 2 +- .../gemfiles/modular/cgi/r4/v0.5.gemfile | 2 +- .../gemfiles/modular/cgi/vHEAD.gemfile | 2 +- .../gemfiles/modular/coverage.gemfile | 6 +- .../gemfiles/modular/coverage_local.gemfile | 42 +-- gems/ast-merge/gemfiles/modular/debug.gemfile | 4 +- .../gemfiles/modular/documentation.gemfile | 24 +- .../modular/documentation_local.gemfile | 30 +- .../gemfiles/modular/erb/r2/v3.0.gemfile | 2 +- .../gemfiles/modular/erb/r3/v5.0.gemfile | 2 +- .../gemfiles/modular/erb/r4/v5.0.gemfile | 2 +- .../gemfiles/modular/erb/vHEAD.gemfile | 2 +- .../modular/json/truffleruby_22_3.gemfile | 4 +- .../modular/json/truffleruby_23_0.gemfile | 4 +- .../modular/json/truffleruby_23_1.gemfile | 4 +- .../gemfiles/modular/mutex_m/r2/v0.3.gemfile | 2 +- .../gemfiles/modular/mutex_m/r3/v0.3.gemfile | 2 +- .../gemfiles/modular/mutex_m/r4/v0.3.gemfile | 2 +- .../gemfiles/modular/mutex_m/vHEAD.gemfile | 2 +- .../gemfiles/modular/optional.gemfile | 4 +- gems/ast-merge/gemfiles/modular/rspec.gemfile | 8 +- .../gemfiles/modular/runtime_heads.gemfile | 2 +- .../gemfiles/modular/stringio/r2/v3.0.gemfile | 2 +- .../gemfiles/modular/stringio/r3/v3.0.gemfile | 2 +- .../gemfiles/modular/stringio/r4/v3.0.gemfile | 2 +- .../gemfiles/modular/stringio/vHEAD.gemfile | 2 +- gems/ast-merge/gemfiles/modular/style.gemfile | 24 +- .../gemfiles/modular/style_local.gemfile | 32 +- .../gemfiles/modular/templating.gemfile | 12 +- .../gemfiles/modular/templating_local.gemfile | 44 ++- .../gemfiles/modular/webrick/r4/v1.9.gemfile | 2 +- .../gemfiles/modular/webrick/vHEAD.gemfile | 2 +- .../gemfiles/modular/x_std_libs.gemfile | 14 +- .../modular/x_std_libs/r2/libs.gemfile | 6 +- .../modular/x_std_libs/r3/libs.gemfile | 6 +- .../modular/x_std_libs/r4/libs.gemfile | 12 +- .../gemfiles/modular/x_std_libs/vHEAD.gemfile | 12 +- gems/ast-merge/lib/ast/merge/version.rb | 2 +- gems/ast-merge/spec/spec_helper.rb | 10 +- gems/json-merge/.kettle-drift.lock | 60 ++- gems/json-merge/Gemfile | 72 +++- gems/json-merge/Gemfile.lock | 30 +- gems/json-merge/Rakefile | 18 +- gems/json-merge/bin/yard | 2 +- .../modular/benchmark/r4/v0.5.gemfile | 2 +- .../gemfiles/modular/benchmark/vHEAD.gemfile | 2 +- .../gemfiles/modular/cgi/r4/v0.5.gemfile | 2 +- .../gemfiles/modular/cgi/vHEAD.gemfile | 2 +- .../gemfiles/modular/coverage.gemfile | 6 +- .../gemfiles/modular/coverage_local.gemfile | 42 ++- .../json-merge/gemfiles/modular/debug.gemfile | 4 +- .../gemfiles/modular/documentation.gemfile | 24 +- .../modular/documentation_local.gemfile | 30 +- .../gemfiles/modular/erb/r2/v3.0.gemfile | 2 +- .../gemfiles/modular/erb/r3/v5.0.gemfile | 2 +- .../gemfiles/modular/erb/r4/v5.0.gemfile | 2 +- .../gemfiles/modular/erb/vHEAD.gemfile | 2 +- .../modular/json/truffleruby_22_3.gemfile | 4 +- .../modular/json/truffleruby_23_0.gemfile | 4 +- .../modular/json/truffleruby_23_1.gemfile | 4 +- .../gemfiles/modular/mutex_m/r2/v0.3.gemfile | 2 +- .../gemfiles/modular/mutex_m/r3/v0.3.gemfile | 2 +- .../gemfiles/modular/mutex_m/r4/v0.3.gemfile | 2 +- .../gemfiles/modular/mutex_m/vHEAD.gemfile | 2 +- .../gemfiles/modular/optional.gemfile | 4 +- .../json-merge/gemfiles/modular/rspec.gemfile | 8 +- .../gemfiles/modular/runtime_heads.gemfile | 2 +- .../gemfiles/modular/stringio/r2/v3.0.gemfile | 2 +- .../gemfiles/modular/stringio/r3/v3.0.gemfile | 2 +- .../gemfiles/modular/stringio/r4/v3.0.gemfile | 2 +- .../gemfiles/modular/stringio/vHEAD.gemfile | 2 +- .../json-merge/gemfiles/modular/style.gemfile | 24 +- .../gemfiles/modular/style_local.gemfile | 32 +- .../gemfiles/modular/templating.gemfile | 12 +- .../gemfiles/modular/templating_local.gemfile | 44 +-- .../gemfiles/modular/webrick/r4/v1.9.gemfile | 2 +- .../gemfiles/modular/webrick/vHEAD.gemfile | 2 +- .../gemfiles/modular/x_std_libs.gemfile | 14 +- .../modular/x_std_libs/r2/libs.gemfile | 6 +- .../modular/x_std_libs/r3/libs.gemfile | 6 +- .../modular/x_std_libs/r4/libs.gemfile | 12 +- .../gemfiles/modular/x_std_libs/vHEAD.gemfile | 12 +- gems/json-merge/lib/json/merge/version.rb | 2 +- gems/json-merge/spec/spec_helper.rb | 10 +- gems/markdown-merge/Gemfile.lock | 30 +- gems/markly-merge/Gemfile | 70 ++-- gems/markly-merge/Gemfile.lock | 334 +---------------- gems/markly-merge/Rakefile | 18 +- .../gemfiles/modular/templating.gemfile | 12 +- .../gemfiles/modular/templating_local.gemfile | 44 ++- gems/markly-merge/lib/markly/merge/version.rb | 2 +- gems/prism-merge/Gemfile.lock | 347 +----------------- 97 files changed, 714 insertions(+), 1221 deletions(-) diff --git a/gems/ast-crispr-markdown-markly/.kettle-drift.lock b/gems/ast-crispr-markdown-markly/.kettle-drift.lock index 7cc6a5131..bd0f9d183 100644 --- a/gems/ast-crispr-markdown-markly/.kettle-drift.lock +++ b/gems/ast-crispr-markdown-markly/.kettle-drift.lock @@ -4,7 +4,8 @@ "file": "Gemfile", "lines": [ 80, - 120 + 120, + 160 ] } ], @@ -13,7 +14,8 @@ "file": "Gemfile", "lines": [ 91, - 131 + 131, + 171 ] } ], @@ -22,7 +24,8 @@ "file": "Gemfile", "lines": [ 81, - 121 + 121, + 161 ] } ], @@ -31,7 +34,8 @@ "file": "Gemfile", "lines": [ 93, - 133 + 133, + 173 ] } ], @@ -40,7 +44,8 @@ "file": "Gemfile", "lines": [ 96, - 136 + 136, + 176 ] } ], @@ -49,7 +54,8 @@ "file": "Gemfile", "lines": [ 82, - 122 + 122, + 162 ] } ], @@ -59,7 +65,8 @@ "lines": [ 60, 100, - 140 + 140, + 180 ] } ], @@ -68,7 +75,8 @@ "file": "Gemfile", "lines": [ 101, - 141 + 141, + 181 ] } ], @@ -78,7 +86,8 @@ "lines": [ 43, 87, - 127 + 127, + 167 ] } ], @@ -87,7 +96,8 @@ "file": "Gemfile", "lines": [ 110, - 150 + 150, + 190 ] } ], @@ -97,7 +107,8 @@ "lines": [ 35, 79, - 119 + 119, + 159 ] } ], @@ -107,7 +118,8 @@ "lines": [ 69, 109, - 149 + 149, + 189 ] } ], @@ -116,7 +128,8 @@ "file": "Gemfile", "lines": [ 85, - 125 + 125, + 165 ] } ], @@ -126,7 +139,8 @@ "lines": [ 48, 92, - 132 + 132, + 172 ] } ], @@ -136,7 +150,8 @@ "lines": [ 44, 88, - 128 + 128, + 168 ] } ], @@ -145,7 +160,8 @@ "file": "Gemfile", "lines": [ 86, - 126 + 126, + 166 ] } ], @@ -154,7 +170,8 @@ "file": "Gemfile", "lines": [ 103, - 143 + 143, + 183 ] } ], @@ -163,7 +180,8 @@ "file": "Gemfile", "lines": [ 102, - 142 + 142, + 182 ] } ], @@ -172,7 +190,8 @@ "file": "Gemfile", "lines": [ 97, - 137 + 137, + 177 ] } ], @@ -181,7 +200,8 @@ "file": "Gemfile", "lines": [ 106, - 146 + 146, + 186 ] } ] diff --git a/gems/ast-crispr-markdown-markly/Gemfile b/gems/ast-crispr-markdown-markly/Gemfile index 417afaab7..b5b1470b9 100644 --- a/gems/ast-crispr-markdown-markly/Gemfile +++ b/gems/ast-crispr-markdown-markly/Gemfile @@ -152,6 +152,46 @@ if direct_sibling_gems.any? && end end +if direct_sibling_gems.any? && + (direct_sibling_local || + ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) + direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') + direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) + begin + nomono_activation_requirements = nomono_requirements + nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) + if File.file?(nomono_lockfile) + nomono_locked_spec = Bundler::LockfileParser + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } + nomono_locked = nomono_locked_spec && + Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked + end + Kernel.send(:gem, 'nomono', *nomono_activation_requirements) + require 'nomono/bundler' + ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local + + eval_nomono_gems( + gems: direct_sibling_gems, + prefix: 'STRUCTUREDMERGE', + path_env: 'STRUCTUREDMERGE_DEV', + root: %w[src my structuredmerge] + ) + rescue LoadError + warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' + ensure + if direct_sibling_templating && !direct_sibling_local + if direct_sibling_dev_was_set + ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original + else + ENV.delete('STRUCTUREDMERGE_DEV') + end + end + end +end + # Use released TSLP with the Ruby ABI platform-gem fix. gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' diff --git a/gems/ast-crispr-markdown-markly/Gemfile.lock b/gems/ast-crispr-markdown-markly/Gemfile.lock index 21158afcc..d29ef07a3 100644 --- a/gems/ast-crispr-markdown-markly/Gemfile.lock +++ b/gems/ast-crispr-markdown-markly/Gemfile.lock @@ -6,6 +6,22 @@ PATH markly-merge (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) +PATH + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr + specs: + ast-crispr (7.1.0) + ast-merge (= 7.1.0) + service_actor (~> 3.9) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/markly-merge + specs: + markly-merge (7.1.0) + markdown-merge (= 7.1.0) + markly (~> 0.9) + version_gem (~> 1.1, >= 1.1.9) + GEM remote: https://gem.coop/ specs: @@ -21,10 +37,6 @@ GEM rubocop (>= 1.0) version_gem (~> 1.1, >= 1.1.14) ast (2.4.3) - ast-crispr (7.1.0) - ast-merge (= 7.1.0) - service_actor (~> 3.9) - version_gem (~> 1.1, >= 1.1.9) ast-merge (7.1.0) benchmark token-resolver (~> 2.0, >= 2.0.4) @@ -134,10 +146,6 @@ GEM tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) markly (0.16.0) - markly-merge (7.1.0) - markdown-merge (= 7.1.0) - markly (~> 0.9) - version_gem (~> 1.1, >= 1.1.9) mutex_m (0.3.0) nokogiri (1.19.4-x86_64-linux-gnu) racc (~> 1.4) @@ -398,6 +406,7 @@ DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) appraisal2-rubocop (~> 1.0, >= 1.0.0) + ast-crispr! ast-crispr-markdown-markly! benchmark (~> 0.5, >= 0.5.0) bundler-audit (~> 0.9.3) @@ -412,6 +421,7 @@ DEPENDENCIES kettle-test (~> 2.0, >= 2.0.9) kramdown (~> 2.5, >= 2.5.2) kramdown-parser-gfm (~> 1.1) + markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) rake (~> 13.0) diff --git a/gems/ast-merge/Gemfile b/gems/ast-merge/Gemfile index c5d2228f5..e6a745c2a 100644 --- a/gems/ast-merge/Gemfile +++ b/gems/ast-merge/Gemfile @@ -6,7 +6,7 @@ # kettle-jem will then preserve content between those markers across template runs. # kettle-jem:unfreeze -source "https://gem.coop" +source 'https://gem.coop' git_source(:codeberg) { |repo_name| "https://codeberg.org/#{repo_name}" } git_source(:gitlab) { |repo_name| "https://gitlab.com/#{repo_name}" } @@ -19,57 +19,53 @@ git_source(:gitlab) { |repo_name| "https://gitlab.com/#{repo_name}" } gemspec # Local workspace dependency wiring for *_local.gemfile overrides -nomono_requirements = ["~> 1.0", ">= 1.0.8"] -gem "nomono", *nomono_requirements, require: false # ruby >= 2.2 +nomono_requirements = ['~> 1.0', '>= 1.0.8'] +gem 'nomono', *nomono_requirements, require: false # ruby >= 2.2 # Direct sibling dependencies (env-switched via STRUCTUREDMERGE_DEV) direct_sibling_gems = %w[ tree_haver ] -direct_sibling_dev = ENV.fetch("STRUCTUREDMERGE_DEV", "") +direct_sibling_dev = ENV.fetch('STRUCTUREDMERGE_DEV', '') direct_sibling_local = !direct_sibling_dev.empty? && !%w[false 0 no off].include?(direct_sibling_dev.downcase) -direct_sibling_templating = ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? +direct_sibling_templating = ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero?) - direct_sibling_dev_was_set = ENV.key?("STRUCTUREDMERGE_DEV") - direct_sibling_dev_original = ENV.fetch("STRUCTUREDMERGE_DEV", nil) + (direct_sibling_local || + ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) + direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') + direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) begin nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path("Gemfile.lock", __dir__) + nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == "nomono" } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - if nomono_locked - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] - end - end - Kernel.send(:gem, "nomono", *nomono_activation_requirements) - require "nomono/bundler" - if direct_sibling_templating && !direct_sibling_local - ENV["STRUCTUREDMERGE_DEV"] = File.expand_path("..", __dir__) + Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked end + Kernel.send(:gem, 'nomono', *nomono_activation_requirements) + require 'nomono/bundler' + ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local eval_nomono_gems( gems: direct_sibling_gems, - prefix: "STRUCTUREDMERGE", - path_env: "STRUCTUREDMERGE_DEV", - root: ["src", "my", "structuredmerge"] + prefix: 'STRUCTUREDMERGE', + path_env: 'STRUCTUREDMERGE_DEV', + root: %w[src my structuredmerge] ) rescue LoadError - warn "Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies." + warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' ensure if direct_sibling_templating && !direct_sibling_local if direct_sibling_dev_was_set - ENV["STRUCTUREDMERGE_DEV"] = direct_sibling_dev_original + ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original else - ENV.delete("STRUCTUREDMERGE_DEV") + ENV.delete('STRUCTUREDMERGE_DEV') end end end @@ -196,28 +192,28 @@ if direct_sibling_gems.any? && end # Use released TSLP with the Ruby ABI platform-gem fix. -gem "tree_sitter_language_pack", "~> 1.13", ">= 1.13.3" +gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' # Templating (env-switched: STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local paths) -eval_gemfile "gemfiles/modular/templating.gemfile" if ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? +eval_gemfile 'gemfiles/modular/templating.gemfile' if ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? # Debugging -eval_gemfile "gemfiles/modular/debug.gemfile" +eval_gemfile 'gemfiles/modular/debug.gemfile' # Code Coverage (env-switched: KETTLE_DEV_DEV=true for local paths) -eval_gemfile "gemfiles/modular/coverage.gemfile" +eval_gemfile 'gemfiles/modular/coverage.gemfile' # Linting -eval_gemfile "gemfiles/modular/style.gemfile" +eval_gemfile 'gemfiles/modular/style.gemfile' # Documentation -eval_gemfile "gemfiles/modular/documentation.gemfile" +eval_gemfile 'gemfiles/modular/documentation.gemfile' # Optional -eval_gemfile "gemfiles/modular/optional.gemfile" +eval_gemfile 'gemfiles/modular/optional.gemfile' ### Std Lib Extracted Gems -eval_gemfile "gemfiles/modular/x_std_libs.gemfile" +eval_gemfile 'gemfiles/modular/x_std_libs.gemfile' # See unlocked_deps appraisal for more details on irb inclusion -gem "irb", "~> 1.17" # ruby >= 2.7 +gem 'irb', '~> 1.17' # ruby >= 2.7 diff --git a/gems/ast-merge/Rakefile b/gems/ast-merge/Rakefile index 6b4e21dec..339c9a3cb 100644 --- a/gems/ast-merge/Rakefile +++ b/gems/ast-merge/Rakefile @@ -130,23 +130,23 @@ end ### DUPLICATE DRIFT TASKS begin - require "kettle/drift" + require 'kettle/drift' Kettle::Drift.install_tasks rescue LoadError - desc("(stub) kettle:drift:check is unavailable") - task("kettle:drift:check") do + desc('(stub) kettle:drift:check is unavailable') + task('kettle:drift:check') do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc("(stub) kettle:drift:update is unavailable") - task("kettle:drift:update") do + desc('(stub) kettle:drift:update is unavailable') + task('kettle:drift:update') do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc("(stub) kettle:drift:force_update is unavailable") - task("kettle:drift:force_update") do + desc('(stub) kettle:drift:force_update is unavailable') + task('kettle:drift:force_update') do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc("(stub) kettle:drift is unavailable") - task("kettle:drift" => "kettle:drift:update") + desc('(stub) kettle:drift is unavailable') + task('kettle:drift' => 'kettle:drift:update') end ### TEMPLATING TASKS diff --git a/gems/ast-merge/bin/yard b/gems/ast-merge/bin/yard index a7e8b6eed..5d516ad6f 100755 --- a/gems/ast-merge/bin/yard +++ b/gems/ast-merge/bin/yard @@ -12,4 +12,4 @@ # `yard` / `bin/yard`. Keep this binstub as a handoff to the task so # humans and tools that reach for `bin/yard` still run the full docs # workflow with post-processing hooks. -exec("bundle", "exec", "rake", "yard") +exec('bundle', 'exec', 'rake', 'yard') diff --git a/gems/ast-merge/gemfiles/modular/cgi/r4/v0.5.gemfile b/gems/ast-merge/gemfiles/modular/cgi/r4/v0.5.gemfile index 19ed967c3..17ad97260 100644 --- a/gems/ast-merge/gemfiles/modular/cgi/r4/v0.5.gemfile +++ b/gems/ast-merge/gemfiles/modular/cgi/r4/v0.5.gemfile @@ -1 +1 @@ -gem "cgi", "~> 0.5" +gem 'cgi', '~> 0.5' diff --git a/gems/ast-merge/gemfiles/modular/cgi/vHEAD.gemfile b/gems/ast-merge/gemfiles/modular/cgi/vHEAD.gemfile index ef8b816ce..650fbf033 100644 --- a/gems/ast-merge/gemfiles/modular/cgi/vHEAD.gemfile +++ b/gems/ast-merge/gemfiles/modular/cgi/vHEAD.gemfile @@ -1 +1 @@ -gem "cgi", ">= 0.5" +gem 'cgi', '>= 0.5' diff --git a/gems/ast-merge/gemfiles/modular/coverage.gemfile b/gems/ast-merge/gemfiles/modular/coverage.gemfile index 52d737872..b93014b6b 100644 --- a/gems/ast-merge/gemfiles/modular/coverage.gemfile +++ b/gems/ast-merge/gemfiles/modular/coverage.gemfile @@ -4,11 +4,11 @@ # Set KETTLE_DEV_DEV=true for local development with path-based dependencies. # When false (default / CI), remote released gems are used. -if ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false").zero? +if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? # Coverage (remote/released) platform :mri do - gem "kettle-soup-cover", "~> 3.0", ">= 3.0.3", require: false + gem 'kettle-soup-cover', '~> 3.0', '>= 3.0.3', require: false end else - eval_gemfile "coverage_local.gemfile" + eval_gemfile 'coverage_local.gemfile' end diff --git a/gems/ast-merge/gemfiles/modular/coverage_local.gemfile b/gems/ast-merge/gemfiles/modular/coverage_local.gemfile index c950b8d78..f556973ee 100644 --- a/gems/ast-merge/gemfiles/modular/coverage_local.gemfile +++ b/gems/ast-merge/gemfiles/modular/coverage_local.gemfile @@ -11,21 +11,19 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] -nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) +nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] +nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == "nomono" } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - if nomono_locked - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] - end + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked end -Kernel.send(:gem, "nomono", *nomono_activation_requirements) -require "nomono/bundler" +Kernel.send(:gem, 'nomono', *nomono_activation_requirements) +require 'nomono/bundler' local_gems = %w[kettle-dev kettle-test kettle-soup-cover kettle-drift] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) @@ -35,21 +33,21 @@ local_gems_to_eval = local_gems - %w[ast-merge] - declared_gems platform :mri do eval_nomono_gems( gems: local_gems_to_eval, - prefix: "KETTLE_DEV", - path_env: "KETTLE_DEV_DEV", - vendored_gems_env: "VENDORED_GEMS", - vendor_gem_dir_env: "VENDOR_GEM_DIR", - debug_env: "KETTLE_DEV_DEBUG" + prefix: 'KETTLE_DEV', + path_env: 'KETTLE_DEV_DEV', + vendored_gems_env: 'VENDORED_GEMS', + vendor_gem_dir_env: 'VENDOR_GEM_DIR', + debug_env: 'KETTLE_DEV_DEBUG' ) - if ENV.fetch("GALTZO_FLOSS_DEV", "false").casecmp("false") != 0 + if ENV.fetch('GALTZO_FLOSS_DEV', 'false').casecmp('false') != 0 eval_nomono_gems( gems: %w[turbo_tests2], - prefix: "GALTZO_FLOSS", - path_env: "GALTZO_FLOSS_DEV", - vendored_gems_env: "GALTZO_FLOSS_VENDORED_GEMS", - vendor_gem_dir_env: "GALTZO_FLOSS_VENDOR_GEM_DIR", - debug_env: "GALTZO_FLOSS_DEBUG" + prefix: 'GALTZO_FLOSS', + path_env: 'GALTZO_FLOSS_DEV', + vendored_gems_env: 'GALTZO_FLOSS_VENDORED_GEMS', + vendor_gem_dir_env: 'GALTZO_FLOSS_VENDOR_GEM_DIR', + debug_env: 'GALTZO_FLOSS_DEBUG' ) end end diff --git a/gems/ast-merge/gemfiles/modular/debug.gemfile b/gems/ast-merge/gemfiles/modular/debug.gemfile index 4e15b1a3a..eed8d4d1e 100644 --- a/gems/ast-merge/gemfiles/modular/debug.gemfile +++ b/gems/ast-merge/gemfiles/modular/debug.gemfile @@ -13,10 +13,10 @@ platform :mri do # Debugging - Ensure ENV["DEBUG"] == "true" to use debuggers within spec suite # Use binding.break, binding.b, or debugger in code - gem "debug", ">= 1.1" # ruby >= 2.7 + gem 'debug', '>= 1.1' # ruby >= 2.7 # Dev Console - Binding.pry - Irb replacement # gem "pry", "~> 0.14" # ruby >= 2.0 end -gem "gem_bench", "~> 2.0", ">= 2.0.5" +gem 'gem_bench', '~> 2.0', '>= 2.0.5' diff --git a/gems/ast-merge/gemfiles/modular/documentation.gemfile b/gems/ast-merge/gemfiles/modular/documentation.gemfile index d8215416e..9d4535f12 100644 --- a/gems/ast-merge/gemfiles/modular/documentation.gemfile +++ b/gems/ast-merge/gemfiles/modular/documentation.gemfile @@ -7,20 +7,20 @@ # # Documentation -gem "kramdown", "~> 2.5", ">= 2.5.2", require: false # Ruby >= 2.5 -gem "kramdown-parser-gfm", "~> 1.1", require: false # Ruby >= 2.3 -gem "yaml-converter", "~> 0.2", ">= 0.2.3", require: false # Ruby >= 3.2 -gem "yard", "~> 0.9", ">= 0.9.45", require: false -gem "yard-junk", "~> 0.1", ">= 0.1.0", require: false # Ruby >= 3.1 -gem "yard-relative_markdown_links", "~> 0.6", require: false +gem 'kramdown', '~> 2.5', '>= 2.5.2', require: false # Ruby >= 2.5 +gem 'kramdown-parser-gfm', '~> 1.1', require: false # Ruby >= 2.3 +gem 'yaml-converter', '~> 0.2', '>= 0.2.3', require: false # Ruby >= 3.2 +gem 'yard', '~> 0.9', '>= 0.9.45', require: false +gem 'yard-junk', '~> 0.1', '>= 0.1.0', require: false # Ruby >= 3.1 +gem 'yard-relative_markdown_links', '~> 0.6', require: false -if ENV.fetch("GALTZO_FLOSS_DEV", "false").casecmp("false").zero? - gem "yard-fence", "~> 0.9", ">= 0.9.6", require: false # Ruby >= 3.2 - gem "yard-timekeeper", "~> 0.2", ">= 0.2.4", require: false - gem "yard-yaml", "~> 0.2", ">= 0.2.3", require: false +if ENV.fetch('GALTZO_FLOSS_DEV', 'false').casecmp('false').zero? + gem 'yard-fence', '~> 0.9', '>= 0.9.6', require: false # Ruby >= 3.2 + gem 'yard-timekeeper', '~> 0.2', '>= 0.2.4', require: false + gem 'yard-yaml', '~> 0.2', '>= 0.2.3', require: false else - eval_gemfile "documentation_local.gemfile" + eval_gemfile 'documentation_local.gemfile' end # Std Lib extractions -gem "rdoc", "~> 6.11", require: false unless ENV.fetch("KJ_FRAMEWORK_MATRIX_GEM", "") == "rdoc" +gem 'rdoc', '~> 6.11', require: false unless ENV.fetch('KJ_FRAMEWORK_MATRIX_GEM', '') == 'rdoc' diff --git a/gems/ast-merge/gemfiles/modular/documentation_local.gemfile b/gems/ast-merge/gemfiles/modular/documentation_local.gemfile index b1bc573f7..3c1453057 100644 --- a/gems/ast-merge/gemfiles/modular/documentation_local.gemfile +++ b/gems/ast-merge/gemfiles/modular/documentation_local.gemfile @@ -11,21 +11,19 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] -nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) +nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] +nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == "nomono" } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - if nomono_locked - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] - end + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked end -Kernel.send(:gem, "nomono", *nomono_activation_requirements) -require "nomono/bundler" +Kernel.send(:gem, 'nomono', *nomono_activation_requirements) +require 'nomono/bundler' local_gems = %w[yard-fence yard-timekeeper yard-yaml] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) @@ -34,9 +32,9 @@ local_gems_to_eval = local_gems - %w[ast-merge] - declared_gems # export GALTZO_FLOSS_DEV=/path/to/galtzo-floss eval_nomono_gems( gems: local_gems_to_eval, - prefix: "GALTZO_FLOSS", - path_env: "GALTZO_FLOSS_DEV", - vendored_gems_env: "GALTZO_FLOSS_VENDORED_GEMS", - vendor_gem_dir_env: "GALTZO_FLOSS_VENDOR_GEM_DIR", - debug_env: "GALTZO_FLOSS_DEBUG" + prefix: 'GALTZO_FLOSS', + path_env: 'GALTZO_FLOSS_DEV', + vendored_gems_env: 'GALTZO_FLOSS_VENDORED_GEMS', + vendor_gem_dir_env: 'GALTZO_FLOSS_VENDOR_GEM_DIR', + debug_env: 'GALTZO_FLOSS_DEBUG' ) diff --git a/gems/ast-merge/gemfiles/modular/erb/r2/v3.0.gemfile b/gems/ast-merge/gemfiles/modular/erb/r2/v3.0.gemfile index c03bd8d85..7c83a239b 100644 --- a/gems/ast-merge/gemfiles/modular/erb/r2/v3.0.gemfile +++ b/gems/ast-merge/gemfiles/modular/erb/r2/v3.0.gemfile @@ -1 +1 @@ -gem "erb", "~> 3.0" # ruby >= 2.7.0 +gem 'erb', '~> 3.0' # ruby >= 2.7.0 diff --git a/gems/ast-merge/gemfiles/modular/erb/r3/v5.0.gemfile b/gems/ast-merge/gemfiles/modular/erb/r3/v5.0.gemfile index 1bd029cc1..ec7ff451f 100644 --- a/gems/ast-merge/gemfiles/modular/erb/r3/v5.0.gemfile +++ b/gems/ast-merge/gemfiles/modular/erb/r3/v5.0.gemfile @@ -1 +1 @@ -gem "erb", "~> 6.0", ">= 6.0.6" # ruby >= 3.2.0 +gem 'erb', '~> 6.0', '>= 6.0.6' # ruby >= 3.2.0 diff --git a/gems/ast-merge/gemfiles/modular/erb/r4/v5.0.gemfile b/gems/ast-merge/gemfiles/modular/erb/r4/v5.0.gemfile index 1bd029cc1..ec7ff451f 100644 --- a/gems/ast-merge/gemfiles/modular/erb/r4/v5.0.gemfile +++ b/gems/ast-merge/gemfiles/modular/erb/r4/v5.0.gemfile @@ -1 +1 @@ -gem "erb", "~> 6.0", ">= 6.0.6" # ruby >= 3.2.0 +gem 'erb', '~> 6.0', '>= 6.0.6' # ruby >= 3.2.0 diff --git a/gems/ast-merge/gemfiles/modular/erb/vHEAD.gemfile b/gems/ast-merge/gemfiles/modular/erb/vHEAD.gemfile index 48fee4218..ea0101185 100644 --- a/gems/ast-merge/gemfiles/modular/erb/vHEAD.gemfile +++ b/gems/ast-merge/gemfiles/modular/erb/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 3.2 -gem "erb", github: "ruby/erb", branch: "master" +gem 'erb', github: 'ruby/erb', branch: 'master' diff --git a/gems/ast-merge/gemfiles/modular/json/truffleruby_22_3.gemfile b/gems/ast-merge/gemfiles/modular/json/truffleruby_22_3.gemfile index b0e69ab11..9b2f8d96a 100644 --- a/gems/ast-merge/gemfiles/modular/json/truffleruby_22_3.gemfile +++ b/gems/ast-merge/gemfiles/modular/json/truffleruby_22_3.gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -if RUBY_ENGINE == "truffleruby" && RUBY_ENGINE_VERSION.start_with?("22.3") +if RUBY_ENGINE == 'truffleruby' && RUBY_ENGINE_VERSION.start_with?('22.3') # TruffleRuby 22.3 ships the json default gem from its emulated MRI Ruby. - gem "json", "= 2.5.1" + gem 'json', '= 2.5.1' end diff --git a/gems/ast-merge/gemfiles/modular/json/truffleruby_23_0.gemfile b/gems/ast-merge/gemfiles/modular/json/truffleruby_23_0.gemfile index 7b2660a2b..d787a5ef4 100644 --- a/gems/ast-merge/gemfiles/modular/json/truffleruby_23_0.gemfile +++ b/gems/ast-merge/gemfiles/modular/json/truffleruby_23_0.gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -if RUBY_ENGINE == "truffleruby" && RUBY_ENGINE_VERSION.start_with?("23.0") +if RUBY_ENGINE == 'truffleruby' && RUBY_ENGINE_VERSION.start_with?('23.0') # TruffleRuby 23.0 ships the json default gem from its emulated MRI Ruby. - gem "json", "= 2.6.1" + gem 'json', '= 2.6.1' end diff --git a/gems/ast-merge/gemfiles/modular/json/truffleruby_23_1.gemfile b/gems/ast-merge/gemfiles/modular/json/truffleruby_23_1.gemfile index dfa21f2e4..d78486b0e 100644 --- a/gems/ast-merge/gemfiles/modular/json/truffleruby_23_1.gemfile +++ b/gems/ast-merge/gemfiles/modular/json/truffleruby_23_1.gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -if RUBY_ENGINE == "truffleruby" && RUBY_ENGINE_VERSION.start_with?("23.1") +if RUBY_ENGINE == 'truffleruby' && RUBY_ENGINE_VERSION.start_with?('23.1') # TruffleRuby 23.1 ships the json default gem from its emulated MRI Ruby. - gem "json", "= 2.6.3" + gem 'json', '= 2.6.3' end diff --git a/gems/ast-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile b/gems/ast-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile index 42e9d9bd4..e27f1bbae 100644 --- a/gems/ast-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile +++ b/gems/ast-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 -gem "mutex_m", "~> 0.2" +gem 'mutex_m', '~> 0.2' diff --git a/gems/ast-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile b/gems/ast-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile index 42e9d9bd4..e27f1bbae 100644 --- a/gems/ast-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile +++ b/gems/ast-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 -gem "mutex_m", "~> 0.2" +gem 'mutex_m', '~> 0.2' diff --git a/gems/ast-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile b/gems/ast-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile index 42e9d9bd4..e27f1bbae 100644 --- a/gems/ast-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile +++ b/gems/ast-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 -gem "mutex_m", "~> 0.2" +gem 'mutex_m', '~> 0.2' diff --git a/gems/ast-merge/gemfiles/modular/mutex_m/vHEAD.gemfile b/gems/ast-merge/gemfiles/modular/mutex_m/vHEAD.gemfile index 8af3b6fca..9dac2f6cb 100644 --- a/gems/ast-merge/gemfiles/modular/mutex_m/vHEAD.gemfile +++ b/gems/ast-merge/gemfiles/modular/mutex_m/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 (dependency of omniauth) -gem "mutex_m", github: "ruby/mutex_m", branch: "master" +gem 'mutex_m', github: 'ruby/mutex_m', branch: 'master' diff --git a/gems/ast-merge/gemfiles/modular/optional.gemfile b/gems/ast-merge/gemfiles/modular/optional.gemfile index 80bc45196..9ea429538 100644 --- a/gems/ast-merge/gemfiles/modular/optional.gemfile +++ b/gems/ast-merge/gemfiles/modular/optional.gemfile @@ -9,8 +9,8 @@ # Optional dependencies are not depended on directly, but may be used if present. # Required for curated binstubs generated by kettle-jem install -gem "rbs", ">= 3.0", require: false # ruby >= 3.1 +gem 'rbs', '>= 3.0', require: false # ruby >= 3.1 # Required for kettle-pre-release # URL parsing with Unicode support (falls back to URI if not available) -gem "addressable", ">= 2.8", "< 3" # ruby >= 2.2 +gem 'addressable', '>= 2.8', '< 3' # ruby >= 2.2 diff --git a/gems/ast-merge/gemfiles/modular/rspec.gemfile b/gems/ast-merge/gemfiles/modular/rspec.gemfile index 72fdf8b7f..2af210a41 100644 --- a/gems/ast-merge/gemfiles/modular/rspec.gemfile +++ b/gems/ast-merge/gemfiles/modular/rspec.gemfile @@ -1,4 +1,4 @@ -gem "rspec_junit_formatter", - github: "pboling/rspec_junit_formatter", - branch: "main", - ref: "9e6bcaaedd49477b62878ed568dc4ada5cc7cb5e" +gem 'rspec_junit_formatter', + github: 'pboling/rspec_junit_formatter', + branch: 'main', + ref: '9e6bcaaedd49477b62878ed568dc4ada5cc7cb5e' diff --git a/gems/ast-merge/gemfiles/modular/runtime_heads.gemfile b/gems/ast-merge/gemfiles/modular/runtime_heads.gemfile index 02f134c7f..ebf17c529 100644 --- a/gems/ast-merge/gemfiles/modular/runtime_heads.gemfile +++ b/gems/ast-merge/gemfiles/modular/runtime_heads.gemfile @@ -8,4 +8,4 @@ # Test against HEAD of runtime dependencies so we can proactively file bugs -eval_gemfile("x_std_libs/vHEAD.gemfile") +eval_gemfile('x_std_libs/vHEAD.gemfile') diff --git a/gems/ast-merge/gemfiles/modular/stringio/r2/v3.0.gemfile b/gems/ast-merge/gemfiles/modular/stringio/r2/v3.0.gemfile index e85bb18ee..3616f4e3a 100644 --- a/gems/ast-merge/gemfiles/modular/stringio/r2/v3.0.gemfile +++ b/gems/ast-merge/gemfiles/modular/stringio/r2/v3.0.gemfile @@ -2,4 +2,4 @@ # NOT SEMVER # Version 3.0.7 dropped support for Ruby <= 2.7 # Version 3.0.0 dropped support for Ruby <= 2.4 -gem "stringio", ">= 3.0" +gem 'stringio', '>= 3.0' diff --git a/gems/ast-merge/gemfiles/modular/stringio/r3/v3.0.gemfile b/gems/ast-merge/gemfiles/modular/stringio/r3/v3.0.gemfile index e85bb18ee..3616f4e3a 100644 --- a/gems/ast-merge/gemfiles/modular/stringio/r3/v3.0.gemfile +++ b/gems/ast-merge/gemfiles/modular/stringio/r3/v3.0.gemfile @@ -2,4 +2,4 @@ # NOT SEMVER # Version 3.0.7 dropped support for Ruby <= 2.7 # Version 3.0.0 dropped support for Ruby <= 2.4 -gem "stringio", ">= 3.0" +gem 'stringio', '>= 3.0' diff --git a/gems/ast-merge/gemfiles/modular/stringio/r4/v3.0.gemfile b/gems/ast-merge/gemfiles/modular/stringio/r4/v3.0.gemfile index e85bb18ee..3616f4e3a 100644 --- a/gems/ast-merge/gemfiles/modular/stringio/r4/v3.0.gemfile +++ b/gems/ast-merge/gemfiles/modular/stringio/r4/v3.0.gemfile @@ -2,4 +2,4 @@ # NOT SEMVER # Version 3.0.7 dropped support for Ruby <= 2.7 # Version 3.0.0 dropped support for Ruby <= 2.4 -gem "stringio", ">= 3.0" +gem 'stringio', '>= 3.0' diff --git a/gems/ast-merge/gemfiles/modular/stringio/vHEAD.gemfile b/gems/ast-merge/gemfiles/modular/stringio/vHEAD.gemfile index 5f2a74126..78f5f5d8a 100644 --- a/gems/ast-merge/gemfiles/modular/stringio/vHEAD.gemfile +++ b/gems/ast-merge/gemfiles/modular/stringio/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 (dependency of omniauth) -gem "stringio", github: "ruby/stringio", branch: "master" +gem 'stringio', github: 'ruby/stringio', branch: 'master' diff --git a/gems/ast-merge/gemfiles/modular/style.gemfile b/gems/ast-merge/gemfiles/modular/style.gemfile index 35de4dcd6..4dbcc02c0 100644 --- a/gems/ast-merge/gemfiles/modular/style.gemfile +++ b/gems/ast-merge/gemfiles/modular/style.gemfile @@ -9,23 +9,23 @@ # Style tasks run on the latest Ruby; RuboCop-LTS selects the compatibility # rules for the configured Ruby floor independently from task dependency floors. -gem "reek", "~> 6.5", ">= 6.5.0" +gem 'reek', '~> 6.5', '>= 6.5.0' platform :mri do - gem "appraisal2-rubocop", "~> 1.0", ">= 1.0.0", require: false - gem "rubocop-gradual", "~> 0.4", ">= 0.4.0" - gem "rubocop-minitest", "~> 0.40", ">= 0.40.0" - gem "rubocop-on-rbs", "~> 2.0", ">= 2.0.0" # ruby >= 3.2.0 + gem 'appraisal2-rubocop', '~> 1.0', '>= 1.0.0', require: false + gem 'rubocop-gradual', '~> 0.4', '>= 0.4.0' + gem 'rubocop-minitest', '~> 0.40', '>= 0.40.0' + gem 'rubocop-on-rbs', '~> 2.0', '>= 2.0.0' # ruby >= 3.2.0 # gem "rubocop", "~> 1.73", ">= 1.73.2" # constrained by standard - gem "rubocop-packaging", "~> 0.6", ">= 0.6.0" - gem "standard", "~> 1.56", ">= 1.56.0" + gem 'rubocop-packaging', '~> 0.6', '>= 0.6.0' + gem 'standard', '~> 1.56', '>= 1.56.0' - if ENV.fetch("RUBOCOP_LTS_LOCAL", "false").casecmp("false").zero? + if ENV.fetch('RUBOCOP_LTS_LOCAL', 'false').casecmp('false').zero? declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) - gem "rubocop-lts", "~> 24.2", ">= 24.2.1" unless declared_gems.include?("rubocop-lts") - gem "rubocop-lts-rspec", "~> 1.0", ">= 1.0.5" unless declared_gems.include?("rubocop-lts-rspec") - gem "rubocop-ruby3_2", "~> 3.0", ">= 3.0.6" unless declared_gems.include?("rubocop-ruby3_2") + gem 'rubocop-lts', '~> 24.2', '>= 24.2.1' unless declared_gems.include?('rubocop-lts') + gem 'rubocop-lts-rspec', '~> 1.0', '>= 1.0.5' unless declared_gems.include?('rubocop-lts-rspec') + gem 'rubocop-ruby3_2', '~> 3.0', '>= 3.0.6' unless declared_gems.include?('rubocop-ruby3_2') else - eval_gemfile("style_local.gemfile") + eval_gemfile('style_local.gemfile') end end diff --git a/gems/ast-merge/gemfiles/modular/style_local.gemfile b/gems/ast-merge/gemfiles/modular/style_local.gemfile index a003c7b12..e4a06d74e 100644 --- a/gems/ast-merge/gemfiles/modular/style_local.gemfile +++ b/gems/ast-merge/gemfiles/modular/style_local.gemfile @@ -14,21 +14,19 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] -nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) +nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] +nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == "nomono" } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - if nomono_locked - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] - end + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked end -Kernel.send(:gem, "nomono", *nomono_activation_requirements) -require "nomono/bundler" +Kernel.send(:gem, 'nomono', *nomono_activation_requirements) +require 'nomono/bundler' local_gems = %w[rubocop-lts rubocop-lts-rspec rubocop-ruby3_2 standard-rubocop-lts] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) @@ -38,11 +36,11 @@ local_gems_to_eval = local_gems - %w[ast-merge] - declared_gems platform :mri do eval_nomono_gems( gems: local_gems_to_eval, - prefix: "RUBOCOP_LTS", - path_env: "RUBOCOP_LTS_LOCAL", - vendored_gems_env: "VENDORED_GEMS", - vendor_gem_dir_env: "VENDOR_GEM_DIR", - debug_env: "RUBOCOP_LTS_DEBUG", - root: ["src", "rubocop-lts"] + prefix: 'RUBOCOP_LTS', + path_env: 'RUBOCOP_LTS_LOCAL', + vendored_gems_env: 'VENDORED_GEMS', + vendor_gem_dir_env: 'VENDOR_GEM_DIR', + debug_env: 'RUBOCOP_LTS_DEBUG', + root: %w[src rubocop-lts] ) end diff --git a/gems/ast-merge/gemfiles/modular/templating.gemfile b/gems/ast-merge/gemfiles/modular/templating.gemfile index 47138ffbb..a672de184 100644 --- a/gems/ast-merge/gemfiles/modular/templating.gemfile +++ b/gems/ast-merge/gemfiles/modular/templating.gemfile @@ -1,18 +1,18 @@ # frozen_string_literal: true -structuredmerge_remote = ENV.fetch("STRUCTUREDMERGE_DEV", "false").casecmp("false").zero? -kettle_remote = ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false").zero? +structuredmerge_remote = ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false').zero? +kettle_remote = ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? if structuredmerge_remote # Parser dependencies for released installs. - gem "tree_sitter_language_pack", "~> 1.13", ">= 1.13.3" + gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' # Merge recipes for released installs. - gem "kettle-jem", ">= 7.0" + gem 'kettle-jem', '>= 7.0' end if kettle_remote # Template/plugin checks for released installs. - gem "kettle-drift", "~> 1.0", ">= 1.0.6", require: false + gem 'kettle-drift', '~> 1.0', '>= 1.0.6', require: false end # Set STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local development with path-based dependencies. @@ -21,4 +21,4 @@ end # # Set KETTLE_DEV_DEV=/path/to/my for local development with Kettle plugin gems. # When false (default / CI), released Kettle plugin gems are used. -eval_gemfile "templating_local.gemfile" unless structuredmerge_remote && kettle_remote +eval_gemfile 'templating_local.gemfile' unless structuredmerge_remote && kettle_remote diff --git a/gems/ast-merge/gemfiles/modular/templating_local.gemfile b/gems/ast-merge/gemfiles/modular/templating_local.gemfile index efcd3bad8..cd50e9a1e 100644 --- a/gems/ast-merge/gemfiles/modular/templating_local.gemfile +++ b/gems/ast-merge/gemfiles/modular/templating_local.gemfile @@ -12,21 +12,19 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] -nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) +nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] +nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == "nomono" } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - if nomono_locked - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] - end + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked end -Kernel.send(:gem, "nomono", *nomono_activation_requirements) -require "nomono/bundler" +Kernel.send(:gem, 'nomono', *nomono_activation_requirements) +require 'nomono/bundler' structuredmerge_local_gems = %w[ tree_haver @@ -69,25 +67,25 @@ structuredmerge_local_gems_to_eval = structuredmerge_local_gems - %w[ast-merge] kettle_dev_local_gems_to_eval = kettle_dev_local_gems - %w[ast-merge] - declared_gems platform :mri do - if ENV.fetch("STRUCTUREDMERGE_DEV", "false").casecmp("false") != 0 + if ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false') != 0 eval_nomono_gems( gems: structuredmerge_local_gems_to_eval, - prefix: "STRUCTUREDMERGE", - path_env: "STRUCTUREDMERGE_DEV", - vendored_gems_env: "VENDORED_GEMS", - vendor_gem_dir_env: "VENDOR_GEM_DIR", - debug_env: "STRUCTUREDMERGE_DEBUG" + prefix: 'STRUCTUREDMERGE', + path_env: 'STRUCTUREDMERGE_DEV', + vendored_gems_env: 'VENDORED_GEMS', + vendor_gem_dir_env: 'VENDOR_GEM_DIR', + debug_env: 'STRUCTUREDMERGE_DEBUG' ) end - if ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false") != 0 + if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false') != 0 eval_nomono_gems( gems: kettle_dev_local_gems_to_eval, - prefix: "KETTLE_DEV", - path_env: "KETTLE_DEV_DEV", - vendored_gems_env: "VENDORED_GEMS", - vendor_gem_dir_env: "VENDOR_GEM_DIR", - debug_env: "KETTLE_DEV_DEBUG" + prefix: 'KETTLE_DEV', + path_env: 'KETTLE_DEV_DEV', + vendored_gems_env: 'VENDORED_GEMS', + vendor_gem_dir_env: 'VENDOR_GEM_DIR', + debug_env: 'KETTLE_DEV_DEBUG' ) end end diff --git a/gems/ast-merge/gemfiles/modular/webrick/r4/v1.9.gemfile b/gems/ast-merge/gemfiles/modular/webrick/r4/v1.9.gemfile index eaab4a473..b1329ba84 100644 --- a/gems/ast-merge/gemfiles/modular/webrick/r4/v1.9.gemfile +++ b/gems/ast-merge/gemfiles/modular/webrick/r4/v1.9.gemfile @@ -1 +1 @@ -gem "webrick", "~> 1.9" +gem 'webrick', '~> 1.9' diff --git a/gems/ast-merge/gemfiles/modular/webrick/vHEAD.gemfile b/gems/ast-merge/gemfiles/modular/webrick/vHEAD.gemfile index 8a789b634..c7e6f81a1 100644 --- a/gems/ast-merge/gemfiles/modular/webrick/vHEAD.gemfile +++ b/gems/ast-merge/gemfiles/modular/webrick/vHEAD.gemfile @@ -1 +1 @@ -gem "webrick", ">= 1.9" +gem 'webrick', '>= 1.9' diff --git a/gems/ast-merge/gemfiles/modular/x_std_libs.gemfile b/gems/ast-merge/gemfiles/modular/x_std_libs.gemfile index 77aad43f2..b1f43c097 100644 --- a/gems/ast-merge/gemfiles/modular/x_std_libs.gemfile +++ b/gems/ast-merge/gemfiles/modular/x_std_libs.gemfile @@ -1,12 +1,12 @@ ### Std Lib Extracted Gems ruby_version = Gem::Version.new(RUBY_VERSION) -if ruby_version >= Gem::Version.new("4.0") - eval_gemfile "x_std_libs/r4/libs.gemfile" -elsif ruby_version >= Gem::Version.new("3.2") - eval_gemfile "x_std_libs/r3/libs.gemfile" -elsif ruby_version >= Gem::Version.new("3.1") - eval_gemfile "x_std_libs/r3.1/libs.gemfile" +if ruby_version >= Gem::Version.new('4.0') + eval_gemfile 'x_std_libs/r4/libs.gemfile' +elsif ruby_version >= Gem::Version.new('3.2') + eval_gemfile 'x_std_libs/r3/libs.gemfile' +elsif ruby_version >= Gem::Version.new('3.1') + eval_gemfile 'x_std_libs/r3.1/libs.gemfile' else - eval_gemfile "x_std_libs/r2/libs.gemfile" + eval_gemfile 'x_std_libs/r2/libs.gemfile' end diff --git a/gems/ast-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile b/gems/ast-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile index 441c4f03a..16a5e3d70 100644 --- a/gems/ast-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile +++ b/gems/ast-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile @@ -1,3 +1,3 @@ -eval_gemfile "../../erb/r2/v3.0.gemfile" -eval_gemfile "../../mutex_m/r2/v0.3.gemfile" -eval_gemfile "../../stringio/r2/v3.0.gemfile" +eval_gemfile '../../erb/r2/v3.0.gemfile' +eval_gemfile '../../mutex_m/r2/v0.3.gemfile' +eval_gemfile '../../stringio/r2/v3.0.gemfile' diff --git a/gems/ast-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile b/gems/ast-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile index c293a3ddd..220ff95c1 100644 --- a/gems/ast-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile +++ b/gems/ast-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile @@ -1,3 +1,3 @@ -eval_gemfile "../../erb/r3/v5.0.gemfile" -eval_gemfile "../../mutex_m/r3/v0.3.gemfile" -eval_gemfile "../../stringio/r3/v3.0.gemfile" +eval_gemfile '../../erb/r3/v5.0.gemfile' +eval_gemfile '../../mutex_m/r3/v0.3.gemfile' +eval_gemfile '../../stringio/r3/v3.0.gemfile' diff --git a/gems/ast-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile b/gems/ast-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile index eb5574247..e2f6501eb 100644 --- a/gems/ast-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile +++ b/gems/ast-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile @@ -1,6 +1,6 @@ -eval_gemfile "../../erb/r4/v5.0.gemfile" -eval_gemfile "../../mutex_m/r4/v0.3.gemfile" -eval_gemfile "../../stringio/r4/v3.0.gemfile" -eval_gemfile "../../benchmark/r4/v0.5.gemfile" -eval_gemfile "../../cgi/r4/v0.5.gemfile" -eval_gemfile "../../webrick/r4/v1.9.gemfile" +eval_gemfile '../../erb/r4/v5.0.gemfile' +eval_gemfile '../../mutex_m/r4/v0.3.gemfile' +eval_gemfile '../../stringio/r4/v3.0.gemfile' +eval_gemfile '../../benchmark/r4/v0.5.gemfile' +eval_gemfile '../../cgi/r4/v0.5.gemfile' +eval_gemfile '../../webrick/r4/v1.9.gemfile' diff --git a/gems/ast-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile b/gems/ast-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile index d4d5b16c9..ab75cccf1 100644 --- a/gems/ast-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile +++ b/gems/ast-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile @@ -1,6 +1,6 @@ -eval_gemfile "../erb/vHEAD.gemfile" -eval_gemfile "../mutex_m/vHEAD.gemfile" -eval_gemfile "../stringio/vHEAD.gemfile" -eval_gemfile "../benchmark/vHEAD.gemfile" -eval_gemfile "../cgi/vHEAD.gemfile" -eval_gemfile "../webrick/vHEAD.gemfile" +eval_gemfile '../erb/vHEAD.gemfile' +eval_gemfile '../mutex_m/vHEAD.gemfile' +eval_gemfile '../stringio/vHEAD.gemfile' +eval_gemfile '../benchmark/vHEAD.gemfile' +eval_gemfile '../cgi/vHEAD.gemfile' +eval_gemfile '../webrick/vHEAD.gemfile' diff --git a/gems/ast-merge/lib/ast/merge/version.rb b/gems/ast-merge/lib/ast/merge/version.rb index 3ef823f4d..6e7dc90f7 100644 --- a/gems/ast-merge/lib/ast/merge/version.rb +++ b/gems/ast-merge/lib/ast/merge/version.rb @@ -3,7 +3,7 @@ module Ast module Merge module Version - VERSION = "7.1.0" + VERSION = '7.1.0' end VERSION = Version::VERSION # Traditional Constant Location end diff --git a/gems/ast-merge/spec/spec_helper.rb b/gems/ast-merge/spec/spec_helper.rb index dcc7b2a7e..eb1762057 100644 --- a/gems/ast-merge/spec/spec_helper.rb +++ b/gems/ast-merge/spec/spec_helper.rb @@ -7,16 +7,16 @@ # NOTE: Gemfiles for non-coverage appraisals may not have kettle-soup-cover. # The rescue LoadError handles that scenario. begin - require "kettle-soup-cover" + require 'kettle-soup-cover' if Kettle::Soup::Cover::DO_COV # Requiring simplecov loads the project-local `.simplecov`. - require "simplecov" - require "kettle/soup/cover/config" + require 'simplecov' + require 'kettle/soup/cover/config' SimpleCov.start end -rescue LoadError => error +rescue LoadError => e # check the error message and re-raise when unexpected - raise error unless error.message.include?("kettle") + raise e unless e.message.include?('kettle') end # External RSpec & related config diff --git a/gems/json-merge/.kettle-drift.lock b/gems/json-merge/.kettle-drift.lock index 7cc6a5131..bd0f9d183 100644 --- a/gems/json-merge/.kettle-drift.lock +++ b/gems/json-merge/.kettle-drift.lock @@ -4,7 +4,8 @@ "file": "Gemfile", "lines": [ 80, - 120 + 120, + 160 ] } ], @@ -13,7 +14,8 @@ "file": "Gemfile", "lines": [ 91, - 131 + 131, + 171 ] } ], @@ -22,7 +24,8 @@ "file": "Gemfile", "lines": [ 81, - 121 + 121, + 161 ] } ], @@ -31,7 +34,8 @@ "file": "Gemfile", "lines": [ 93, - 133 + 133, + 173 ] } ], @@ -40,7 +44,8 @@ "file": "Gemfile", "lines": [ 96, - 136 + 136, + 176 ] } ], @@ -49,7 +54,8 @@ "file": "Gemfile", "lines": [ 82, - 122 + 122, + 162 ] } ], @@ -59,7 +65,8 @@ "lines": [ 60, 100, - 140 + 140, + 180 ] } ], @@ -68,7 +75,8 @@ "file": "Gemfile", "lines": [ 101, - 141 + 141, + 181 ] } ], @@ -78,7 +86,8 @@ "lines": [ 43, 87, - 127 + 127, + 167 ] } ], @@ -87,7 +96,8 @@ "file": "Gemfile", "lines": [ 110, - 150 + 150, + 190 ] } ], @@ -97,7 +107,8 @@ "lines": [ 35, 79, - 119 + 119, + 159 ] } ], @@ -107,7 +118,8 @@ "lines": [ 69, 109, - 149 + 149, + 189 ] } ], @@ -116,7 +128,8 @@ "file": "Gemfile", "lines": [ 85, - 125 + 125, + 165 ] } ], @@ -126,7 +139,8 @@ "lines": [ 48, 92, - 132 + 132, + 172 ] } ], @@ -136,7 +150,8 @@ "lines": [ 44, 88, - 128 + 128, + 168 ] } ], @@ -145,7 +160,8 @@ "file": "Gemfile", "lines": [ 86, - 126 + 126, + 166 ] } ], @@ -154,7 +170,8 @@ "file": "Gemfile", "lines": [ 103, - 143 + 143, + 183 ] } ], @@ -163,7 +180,8 @@ "file": "Gemfile", "lines": [ 102, - 142 + 142, + 182 ] } ], @@ -172,7 +190,8 @@ "file": "Gemfile", "lines": [ 97, - 137 + 137, + 177 ] } ], @@ -181,7 +200,8 @@ "file": "Gemfile", "lines": [ 106, - 146 + 146, + 186 ] } ] diff --git a/gems/json-merge/Gemfile b/gems/json-merge/Gemfile index e754d1f87..0ae8d7909 100644 --- a/gems/json-merge/Gemfile +++ b/gems/json-merge/Gemfile @@ -6,7 +6,7 @@ # kettle-jem will then preserve content between those markers across template runs. # kettle-jem:unfreeze -source 'https://gem.coop' +source "https://gem.coop" git_source(:codeberg) { |repo_name| "https://codeberg.org/#{repo_name}" } git_source(:gitlab) { |repo_name| "https://gitlab.com/#{repo_name}" } @@ -19,18 +19,62 @@ git_source(:gitlab) { |repo_name| "https://gitlab.com/#{repo_name}" } gemspec # Local workspace dependency wiring for *_local.gemfile overrides -nomono_requirements = ['~> 1.0', '>= 1.0.8'] -gem 'nomono', *nomono_requirements, require: false # ruby >= 2.2 +nomono_requirements = ["~> 1.0", ">= 1.0.8"] +gem "nomono", *nomono_requirements, require: false # ruby >= 2.2 # Direct sibling dependencies (env-switched via STRUCTUREDMERGE_DEV) direct_sibling_gems = %w[ ast-merge tree_haver ] -direct_sibling_dev = ENV.fetch('STRUCTUREDMERGE_DEV', '') +direct_sibling_dev = ENV.fetch("STRUCTUREDMERGE_DEV", "") direct_sibling_local = !direct_sibling_dev.empty? && !%w[false 0 no off].include?(direct_sibling_dev.downcase) -direct_sibling_templating = ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? +direct_sibling_templating = ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? + +if direct_sibling_gems.any? && + (direct_sibling_local || + ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero?) + direct_sibling_dev_was_set = ENV.key?("STRUCTUREDMERGE_DEV") + direct_sibling_dev_original = ENV.fetch("STRUCTUREDMERGE_DEV", nil) + begin + nomono_activation_requirements = nomono_requirements + nomono_lockfile = File.expand_path("Gemfile.lock", __dir__) + if File.file?(nomono_lockfile) + nomono_locked_spec = Bundler::LockfileParser + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == "nomono" } + nomono_locked = nomono_locked_spec && + Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) + if nomono_locked + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] + end + end + Kernel.send(:gem, "nomono", *nomono_activation_requirements) + require "nomono/bundler" + if direct_sibling_templating && !direct_sibling_local + ENV["STRUCTUREDMERGE_DEV"] = File.expand_path("..", __dir__) + end + + eval_nomono_gems( + gems: direct_sibling_gems, + prefix: "STRUCTUREDMERGE", + path_env: "STRUCTUREDMERGE_DEV", + root: ["src", "my", "structuredmerge"] + ) + rescue LoadError + warn "Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies." + ensure + if direct_sibling_templating && !direct_sibling_local + if direct_sibling_dev_was_set + ENV["STRUCTUREDMERGE_DEV"] = direct_sibling_dev_original + else + ENV.delete("STRUCTUREDMERGE_DEV") + end + end + end +end if direct_sibling_gems.any? && (direct_sibling_local || @@ -153,28 +197,28 @@ if direct_sibling_gems.any? && end # Use released TSLP with the Ruby ABI platform-gem fix. -gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' +gem "tree_sitter_language_pack", "~> 1.13", ">= 1.13.3" # Templating (env-switched: STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local paths) -eval_gemfile 'gemfiles/modular/templating.gemfile' if ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? +eval_gemfile "gemfiles/modular/templating.gemfile" if ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? # Debugging -eval_gemfile 'gemfiles/modular/debug.gemfile' +eval_gemfile "gemfiles/modular/debug.gemfile" # Code Coverage (env-switched: KETTLE_DEV_DEV=true for local paths) -eval_gemfile 'gemfiles/modular/coverage.gemfile' +eval_gemfile "gemfiles/modular/coverage.gemfile" # Linting -eval_gemfile 'gemfiles/modular/style.gemfile' +eval_gemfile "gemfiles/modular/style.gemfile" # Documentation -eval_gemfile 'gemfiles/modular/documentation.gemfile' +eval_gemfile "gemfiles/modular/documentation.gemfile" # Optional -eval_gemfile 'gemfiles/modular/optional.gemfile' +eval_gemfile "gemfiles/modular/optional.gemfile" ### Std Lib Extracted Gems -eval_gemfile 'gemfiles/modular/x_std_libs.gemfile' +eval_gemfile "gemfiles/modular/x_std_libs.gemfile" # See unlocked_deps appraisal for more details on irb inclusion -gem 'irb', '~> 1.17' # ruby >= 2.7 +gem "irb", "~> 1.17" # ruby >= 2.7 diff --git a/gems/json-merge/Gemfile.lock b/gems/json-merge/Gemfile.lock index d5271664d..dd2e0b982 100644 --- a/gems/json-merge/Gemfile.lock +++ b/gems/json-merge/Gemfile.lock @@ -6,6 +6,24 @@ PATH tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge + specs: + ast-merge (7.1.0) + benchmark + token-resolver (~> 2.0, >= 2.0.4) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver + specs: + tree_haver (7.1.0) + citrus (~> 3.0) + parslet (~> 2.0) + tree_sitter_language_pack (>= 1.13.2, < 2.0) + version_gem (~> 1.1, >= 1.1.9) + GEM remote: https://gem.coop/ specs: @@ -21,11 +39,6 @@ GEM rubocop (>= 1.0) version_gem (~> 1.1, >= 1.1.14) ast (2.4.3) - ast-merge (7.1.0) - benchmark - token-resolver (~> 2.0, >= 2.0.4) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) backports (3.25.3) benchmark (0.5.0) bigdecimal (4.1.2) @@ -341,11 +354,6 @@ GEM token-resolver (2.0.5) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.14) - tree_haver (7.1.0) - citrus (~> 3.0) - parslet (~> 2.0) - tree_sitter_language_pack (>= 1.13.2, < 2.0) - version_gem (~> 1.1, >= 1.1.9) tree_sitter_language_pack (1.13.3-aarch64-linux) sorbet-runtime (~> 0.5) tree_sitter_language_pack (1.13.3-arm64-darwin) @@ -404,6 +412,7 @@ DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) appraisal2-rubocop (~> 1.0, >= 1.0.0) + ast-merge! benchmark (~> 0.5, >= 0.5.0) bundler-audit (~> 0.9.3) cgi (~> 0.5) @@ -436,6 +445,7 @@ DEPENDENCIES standard (~> 1.56, >= 1.56.0) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) + tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) webrick (~> 1.9) yaml-converter (~> 0.2, >= 0.2.3) diff --git a/gems/json-merge/Rakefile b/gems/json-merge/Rakefile index cd3637459..eb14b860c 100644 --- a/gems/json-merge/Rakefile +++ b/gems/json-merge/Rakefile @@ -130,23 +130,23 @@ end ### DUPLICATE DRIFT TASKS begin - require 'kettle/drift' + require "kettle/drift" Kettle::Drift.install_tasks rescue LoadError - desc('(stub) kettle:drift:check is unavailable') - task('kettle:drift:check') do + desc("(stub) kettle:drift:check is unavailable") + task("kettle:drift:check") do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc('(stub) kettle:drift:update is unavailable') - task('kettle:drift:update') do + desc("(stub) kettle:drift:update is unavailable") + task("kettle:drift:update") do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc('(stub) kettle:drift:force_update is unavailable') - task('kettle:drift:force_update') do + desc("(stub) kettle:drift:force_update is unavailable") + task("kettle:drift:force_update") do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc('(stub) kettle:drift is unavailable') - task('kettle:drift' => 'kettle:drift:update') + desc("(stub) kettle:drift is unavailable") + task("kettle:drift" => "kettle:drift:update") end ### TEMPLATING TASKS diff --git a/gems/json-merge/bin/yard b/gems/json-merge/bin/yard index 5d516ad6f..a7e8b6eed 100755 --- a/gems/json-merge/bin/yard +++ b/gems/json-merge/bin/yard @@ -12,4 +12,4 @@ # `yard` / `bin/yard`. Keep this binstub as a handoff to the task so # humans and tools that reach for `bin/yard` still run the full docs # workflow with post-processing hooks. -exec('bundle', 'exec', 'rake', 'yard') +exec("bundle", "exec", "rake", "yard") diff --git a/gems/json-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile b/gems/json-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile index b8392fab0..dec650815 100644 --- a/gems/json-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile +++ b/gems/json-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.1 -gem 'benchmark', '~> 0.5', '>= 0.5.0' # Removed from Std Lib in Ruby 4.0 +gem "benchmark", "~> 0.5", ">= 0.5.0" # Removed from Std Lib in Ruby 4.0 diff --git a/gems/json-merge/gemfiles/modular/benchmark/vHEAD.gemfile b/gems/json-merge/gemfiles/modular/benchmark/vHEAD.gemfile index af214aafa..e1eb20c5e 100644 --- a/gems/json-merge/gemfiles/modular/benchmark/vHEAD.gemfile +++ b/gems/json-merge/gemfiles/modular/benchmark/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.1 -gem 'benchmark', github: 'ruby/benchmark', branch: 'master' +gem "benchmark", github: "ruby/benchmark", branch: "master" diff --git a/gems/json-merge/gemfiles/modular/cgi/r4/v0.5.gemfile b/gems/json-merge/gemfiles/modular/cgi/r4/v0.5.gemfile index 17ad97260..19ed967c3 100644 --- a/gems/json-merge/gemfiles/modular/cgi/r4/v0.5.gemfile +++ b/gems/json-merge/gemfiles/modular/cgi/r4/v0.5.gemfile @@ -1 +1 @@ -gem 'cgi', '~> 0.5' +gem "cgi", "~> 0.5" diff --git a/gems/json-merge/gemfiles/modular/cgi/vHEAD.gemfile b/gems/json-merge/gemfiles/modular/cgi/vHEAD.gemfile index 650fbf033..ef8b816ce 100644 --- a/gems/json-merge/gemfiles/modular/cgi/vHEAD.gemfile +++ b/gems/json-merge/gemfiles/modular/cgi/vHEAD.gemfile @@ -1 +1 @@ -gem 'cgi', '>= 0.5' +gem "cgi", ">= 0.5" diff --git a/gems/json-merge/gemfiles/modular/coverage.gemfile b/gems/json-merge/gemfiles/modular/coverage.gemfile index b93014b6b..52d737872 100644 --- a/gems/json-merge/gemfiles/modular/coverage.gemfile +++ b/gems/json-merge/gemfiles/modular/coverage.gemfile @@ -4,11 +4,11 @@ # Set KETTLE_DEV_DEV=true for local development with path-based dependencies. # When false (default / CI), remote released gems are used. -if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? +if ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false").zero? # Coverage (remote/released) platform :mri do - gem 'kettle-soup-cover', '~> 3.0', '>= 3.0.3', require: false + gem "kettle-soup-cover", "~> 3.0", ">= 3.0.3", require: false end else - eval_gemfile 'coverage_local.gemfile' + eval_gemfile "coverage_local.gemfile" end diff --git a/gems/json-merge/gemfiles/modular/coverage_local.gemfile b/gems/json-merge/gemfiles/modular/coverage_local.gemfile index b6836b5de..cacdc07c1 100644 --- a/gems/json-merge/gemfiles/modular/coverage_local.gemfile +++ b/gems/json-merge/gemfiles/modular/coverage_local.gemfile @@ -11,19 +11,21 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] -nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) +nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] +nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == "nomono" } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + if nomono_locked + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] + end end -Kernel.send(:gem, 'nomono', *nomono_activation_requirements) -require 'nomono/bundler' +Kernel.send(:gem, "nomono", *nomono_activation_requirements) +require "nomono/bundler" local_gems = %w[kettle-dev kettle-test kettle-soup-cover kettle-drift] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) @@ -33,21 +35,21 @@ local_gems_to_eval = local_gems - %w[json-merge] - declared_gems platform :mri do eval_nomono_gems( gems: local_gems_to_eval, - prefix: 'KETTLE_DEV', - path_env: 'KETTLE_DEV_DEV', - vendored_gems_env: 'VENDORED_GEMS', - vendor_gem_dir_env: 'VENDOR_GEM_DIR', - debug_env: 'KETTLE_DEV_DEBUG' + prefix: "KETTLE_DEV", + path_env: "KETTLE_DEV_DEV", + vendored_gems_env: "VENDORED_GEMS", + vendor_gem_dir_env: "VENDOR_GEM_DIR", + debug_env: "KETTLE_DEV_DEBUG" ) - if ENV.fetch('GALTZO_FLOSS_DEV', 'false').casecmp('false') != 0 + if ENV.fetch("GALTZO_FLOSS_DEV", "false").casecmp("false") != 0 eval_nomono_gems( gems: %w[turbo_tests2], - prefix: 'GALTZO_FLOSS', - path_env: 'GALTZO_FLOSS_DEV', - vendored_gems_env: 'GALTZO_FLOSS_VENDORED_GEMS', - vendor_gem_dir_env: 'GALTZO_FLOSS_VENDOR_GEM_DIR', - debug_env: 'GALTZO_FLOSS_DEBUG' + prefix: "GALTZO_FLOSS", + path_env: "GALTZO_FLOSS_DEV", + vendored_gems_env: "GALTZO_FLOSS_VENDORED_GEMS", + vendor_gem_dir_env: "GALTZO_FLOSS_VENDOR_GEM_DIR", + debug_env: "GALTZO_FLOSS_DEBUG" ) end end diff --git a/gems/json-merge/gemfiles/modular/debug.gemfile b/gems/json-merge/gemfiles/modular/debug.gemfile index eed8d4d1e..4e15b1a3a 100644 --- a/gems/json-merge/gemfiles/modular/debug.gemfile +++ b/gems/json-merge/gemfiles/modular/debug.gemfile @@ -13,10 +13,10 @@ platform :mri do # Debugging - Ensure ENV["DEBUG"] == "true" to use debuggers within spec suite # Use binding.break, binding.b, or debugger in code - gem 'debug', '>= 1.1' # ruby >= 2.7 + gem "debug", ">= 1.1" # ruby >= 2.7 # Dev Console - Binding.pry - Irb replacement # gem "pry", "~> 0.14" # ruby >= 2.0 end -gem 'gem_bench', '~> 2.0', '>= 2.0.5' +gem "gem_bench", "~> 2.0", ">= 2.0.5" diff --git a/gems/json-merge/gemfiles/modular/documentation.gemfile b/gems/json-merge/gemfiles/modular/documentation.gemfile index 9d4535f12..d8215416e 100644 --- a/gems/json-merge/gemfiles/modular/documentation.gemfile +++ b/gems/json-merge/gemfiles/modular/documentation.gemfile @@ -7,20 +7,20 @@ # # Documentation -gem 'kramdown', '~> 2.5', '>= 2.5.2', require: false # Ruby >= 2.5 -gem 'kramdown-parser-gfm', '~> 1.1', require: false # Ruby >= 2.3 -gem 'yaml-converter', '~> 0.2', '>= 0.2.3', require: false # Ruby >= 3.2 -gem 'yard', '~> 0.9', '>= 0.9.45', require: false -gem 'yard-junk', '~> 0.1', '>= 0.1.0', require: false # Ruby >= 3.1 -gem 'yard-relative_markdown_links', '~> 0.6', require: false +gem "kramdown", "~> 2.5", ">= 2.5.2", require: false # Ruby >= 2.5 +gem "kramdown-parser-gfm", "~> 1.1", require: false # Ruby >= 2.3 +gem "yaml-converter", "~> 0.2", ">= 0.2.3", require: false # Ruby >= 3.2 +gem "yard", "~> 0.9", ">= 0.9.45", require: false +gem "yard-junk", "~> 0.1", ">= 0.1.0", require: false # Ruby >= 3.1 +gem "yard-relative_markdown_links", "~> 0.6", require: false -if ENV.fetch('GALTZO_FLOSS_DEV', 'false').casecmp('false').zero? - gem 'yard-fence', '~> 0.9', '>= 0.9.6', require: false # Ruby >= 3.2 - gem 'yard-timekeeper', '~> 0.2', '>= 0.2.4', require: false - gem 'yard-yaml', '~> 0.2', '>= 0.2.3', require: false +if ENV.fetch("GALTZO_FLOSS_DEV", "false").casecmp("false").zero? + gem "yard-fence", "~> 0.9", ">= 0.9.6", require: false # Ruby >= 3.2 + gem "yard-timekeeper", "~> 0.2", ">= 0.2.4", require: false + gem "yard-yaml", "~> 0.2", ">= 0.2.3", require: false else - eval_gemfile 'documentation_local.gemfile' + eval_gemfile "documentation_local.gemfile" end # Std Lib extractions -gem 'rdoc', '~> 6.11', require: false unless ENV.fetch('KJ_FRAMEWORK_MATRIX_GEM', '') == 'rdoc' +gem "rdoc", "~> 6.11", require: false unless ENV.fetch("KJ_FRAMEWORK_MATRIX_GEM", "") == "rdoc" diff --git a/gems/json-merge/gemfiles/modular/documentation_local.gemfile b/gems/json-merge/gemfiles/modular/documentation_local.gemfile index 35970ca76..65eff94d9 100644 --- a/gems/json-merge/gemfiles/modular/documentation_local.gemfile +++ b/gems/json-merge/gemfiles/modular/documentation_local.gemfile @@ -11,19 +11,21 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] -nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) +nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] +nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == "nomono" } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + if nomono_locked + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] + end end -Kernel.send(:gem, 'nomono', *nomono_activation_requirements) -require 'nomono/bundler' +Kernel.send(:gem, "nomono", *nomono_activation_requirements) +require "nomono/bundler" local_gems = %w[yard-fence yard-timekeeper yard-yaml] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) @@ -32,9 +34,9 @@ local_gems_to_eval = local_gems - %w[json-merge] - declared_gems # export GALTZO_FLOSS_DEV=/path/to/galtzo-floss eval_nomono_gems( gems: local_gems_to_eval, - prefix: 'GALTZO_FLOSS', - path_env: 'GALTZO_FLOSS_DEV', - vendored_gems_env: 'GALTZO_FLOSS_VENDORED_GEMS', - vendor_gem_dir_env: 'GALTZO_FLOSS_VENDOR_GEM_DIR', - debug_env: 'GALTZO_FLOSS_DEBUG' + prefix: "GALTZO_FLOSS", + path_env: "GALTZO_FLOSS_DEV", + vendored_gems_env: "GALTZO_FLOSS_VENDORED_GEMS", + vendor_gem_dir_env: "GALTZO_FLOSS_VENDOR_GEM_DIR", + debug_env: "GALTZO_FLOSS_DEBUG" ) diff --git a/gems/json-merge/gemfiles/modular/erb/r2/v3.0.gemfile b/gems/json-merge/gemfiles/modular/erb/r2/v3.0.gemfile index 7c83a239b..c03bd8d85 100644 --- a/gems/json-merge/gemfiles/modular/erb/r2/v3.0.gemfile +++ b/gems/json-merge/gemfiles/modular/erb/r2/v3.0.gemfile @@ -1 +1 @@ -gem 'erb', '~> 3.0' # ruby >= 2.7.0 +gem "erb", "~> 3.0" # ruby >= 2.7.0 diff --git a/gems/json-merge/gemfiles/modular/erb/r3/v5.0.gemfile b/gems/json-merge/gemfiles/modular/erb/r3/v5.0.gemfile index ec7ff451f..1bd029cc1 100644 --- a/gems/json-merge/gemfiles/modular/erb/r3/v5.0.gemfile +++ b/gems/json-merge/gemfiles/modular/erb/r3/v5.0.gemfile @@ -1 +1 @@ -gem 'erb', '~> 6.0', '>= 6.0.6' # ruby >= 3.2.0 +gem "erb", "~> 6.0", ">= 6.0.6" # ruby >= 3.2.0 diff --git a/gems/json-merge/gemfiles/modular/erb/r4/v5.0.gemfile b/gems/json-merge/gemfiles/modular/erb/r4/v5.0.gemfile index ec7ff451f..1bd029cc1 100644 --- a/gems/json-merge/gemfiles/modular/erb/r4/v5.0.gemfile +++ b/gems/json-merge/gemfiles/modular/erb/r4/v5.0.gemfile @@ -1 +1 @@ -gem 'erb', '~> 6.0', '>= 6.0.6' # ruby >= 3.2.0 +gem "erb", "~> 6.0", ">= 6.0.6" # ruby >= 3.2.0 diff --git a/gems/json-merge/gemfiles/modular/erb/vHEAD.gemfile b/gems/json-merge/gemfiles/modular/erb/vHEAD.gemfile index ea0101185..48fee4218 100644 --- a/gems/json-merge/gemfiles/modular/erb/vHEAD.gemfile +++ b/gems/json-merge/gemfiles/modular/erb/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 3.2 -gem 'erb', github: 'ruby/erb', branch: 'master' +gem "erb", github: "ruby/erb", branch: "master" diff --git a/gems/json-merge/gemfiles/modular/json/truffleruby_22_3.gemfile b/gems/json-merge/gemfiles/modular/json/truffleruby_22_3.gemfile index 9b2f8d96a..b0e69ab11 100644 --- a/gems/json-merge/gemfiles/modular/json/truffleruby_22_3.gemfile +++ b/gems/json-merge/gemfiles/modular/json/truffleruby_22_3.gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -if RUBY_ENGINE == 'truffleruby' && RUBY_ENGINE_VERSION.start_with?('22.3') +if RUBY_ENGINE == "truffleruby" && RUBY_ENGINE_VERSION.start_with?("22.3") # TruffleRuby 22.3 ships the json default gem from its emulated MRI Ruby. - gem 'json', '= 2.5.1' + gem "json", "= 2.5.1" end diff --git a/gems/json-merge/gemfiles/modular/json/truffleruby_23_0.gemfile b/gems/json-merge/gemfiles/modular/json/truffleruby_23_0.gemfile index d787a5ef4..7b2660a2b 100644 --- a/gems/json-merge/gemfiles/modular/json/truffleruby_23_0.gemfile +++ b/gems/json-merge/gemfiles/modular/json/truffleruby_23_0.gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -if RUBY_ENGINE == 'truffleruby' && RUBY_ENGINE_VERSION.start_with?('23.0') +if RUBY_ENGINE == "truffleruby" && RUBY_ENGINE_VERSION.start_with?("23.0") # TruffleRuby 23.0 ships the json default gem from its emulated MRI Ruby. - gem 'json', '= 2.6.1' + gem "json", "= 2.6.1" end diff --git a/gems/json-merge/gemfiles/modular/json/truffleruby_23_1.gemfile b/gems/json-merge/gemfiles/modular/json/truffleruby_23_1.gemfile index d78486b0e..dfa21f2e4 100644 --- a/gems/json-merge/gemfiles/modular/json/truffleruby_23_1.gemfile +++ b/gems/json-merge/gemfiles/modular/json/truffleruby_23_1.gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -if RUBY_ENGINE == 'truffleruby' && RUBY_ENGINE_VERSION.start_with?('23.1') +if RUBY_ENGINE == "truffleruby" && RUBY_ENGINE_VERSION.start_with?("23.1") # TruffleRuby 23.1 ships the json default gem from its emulated MRI Ruby. - gem 'json', '= 2.6.3' + gem "json", "= 2.6.3" end diff --git a/gems/json-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile b/gems/json-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile index e27f1bbae..42e9d9bd4 100644 --- a/gems/json-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile +++ b/gems/json-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 -gem 'mutex_m', '~> 0.2' +gem "mutex_m", "~> 0.2" diff --git a/gems/json-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile b/gems/json-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile index e27f1bbae..42e9d9bd4 100644 --- a/gems/json-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile +++ b/gems/json-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 -gem 'mutex_m', '~> 0.2' +gem "mutex_m", "~> 0.2" diff --git a/gems/json-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile b/gems/json-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile index e27f1bbae..42e9d9bd4 100644 --- a/gems/json-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile +++ b/gems/json-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 -gem 'mutex_m', '~> 0.2' +gem "mutex_m", "~> 0.2" diff --git a/gems/json-merge/gemfiles/modular/mutex_m/vHEAD.gemfile b/gems/json-merge/gemfiles/modular/mutex_m/vHEAD.gemfile index 9dac2f6cb..8af3b6fca 100644 --- a/gems/json-merge/gemfiles/modular/mutex_m/vHEAD.gemfile +++ b/gems/json-merge/gemfiles/modular/mutex_m/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 (dependency of omniauth) -gem 'mutex_m', github: 'ruby/mutex_m', branch: 'master' +gem "mutex_m", github: "ruby/mutex_m", branch: "master" diff --git a/gems/json-merge/gemfiles/modular/optional.gemfile b/gems/json-merge/gemfiles/modular/optional.gemfile index 9ea429538..80bc45196 100644 --- a/gems/json-merge/gemfiles/modular/optional.gemfile +++ b/gems/json-merge/gemfiles/modular/optional.gemfile @@ -9,8 +9,8 @@ # Optional dependencies are not depended on directly, but may be used if present. # Required for curated binstubs generated by kettle-jem install -gem 'rbs', '>= 3.0', require: false # ruby >= 3.1 +gem "rbs", ">= 3.0", require: false # ruby >= 3.1 # Required for kettle-pre-release # URL parsing with Unicode support (falls back to URI if not available) -gem 'addressable', '>= 2.8', '< 3' # ruby >= 2.2 +gem "addressable", ">= 2.8", "< 3" # ruby >= 2.2 diff --git a/gems/json-merge/gemfiles/modular/rspec.gemfile b/gems/json-merge/gemfiles/modular/rspec.gemfile index 2af210a41..72fdf8b7f 100644 --- a/gems/json-merge/gemfiles/modular/rspec.gemfile +++ b/gems/json-merge/gemfiles/modular/rspec.gemfile @@ -1,4 +1,4 @@ -gem 'rspec_junit_formatter', - github: 'pboling/rspec_junit_formatter', - branch: 'main', - ref: '9e6bcaaedd49477b62878ed568dc4ada5cc7cb5e' +gem "rspec_junit_formatter", + github: "pboling/rspec_junit_formatter", + branch: "main", + ref: "9e6bcaaedd49477b62878ed568dc4ada5cc7cb5e" diff --git a/gems/json-merge/gemfiles/modular/runtime_heads.gemfile b/gems/json-merge/gemfiles/modular/runtime_heads.gemfile index ebf17c529..02f134c7f 100644 --- a/gems/json-merge/gemfiles/modular/runtime_heads.gemfile +++ b/gems/json-merge/gemfiles/modular/runtime_heads.gemfile @@ -8,4 +8,4 @@ # Test against HEAD of runtime dependencies so we can proactively file bugs -eval_gemfile('x_std_libs/vHEAD.gemfile') +eval_gemfile("x_std_libs/vHEAD.gemfile") diff --git a/gems/json-merge/gemfiles/modular/stringio/r2/v3.0.gemfile b/gems/json-merge/gemfiles/modular/stringio/r2/v3.0.gemfile index 3616f4e3a..e85bb18ee 100644 --- a/gems/json-merge/gemfiles/modular/stringio/r2/v3.0.gemfile +++ b/gems/json-merge/gemfiles/modular/stringio/r2/v3.0.gemfile @@ -2,4 +2,4 @@ # NOT SEMVER # Version 3.0.7 dropped support for Ruby <= 2.7 # Version 3.0.0 dropped support for Ruby <= 2.4 -gem 'stringio', '>= 3.0' +gem "stringio", ">= 3.0" diff --git a/gems/json-merge/gemfiles/modular/stringio/r3/v3.0.gemfile b/gems/json-merge/gemfiles/modular/stringio/r3/v3.0.gemfile index 3616f4e3a..e85bb18ee 100644 --- a/gems/json-merge/gemfiles/modular/stringio/r3/v3.0.gemfile +++ b/gems/json-merge/gemfiles/modular/stringio/r3/v3.0.gemfile @@ -2,4 +2,4 @@ # NOT SEMVER # Version 3.0.7 dropped support for Ruby <= 2.7 # Version 3.0.0 dropped support for Ruby <= 2.4 -gem 'stringio', '>= 3.0' +gem "stringio", ">= 3.0" diff --git a/gems/json-merge/gemfiles/modular/stringio/r4/v3.0.gemfile b/gems/json-merge/gemfiles/modular/stringio/r4/v3.0.gemfile index 3616f4e3a..e85bb18ee 100644 --- a/gems/json-merge/gemfiles/modular/stringio/r4/v3.0.gemfile +++ b/gems/json-merge/gemfiles/modular/stringio/r4/v3.0.gemfile @@ -2,4 +2,4 @@ # NOT SEMVER # Version 3.0.7 dropped support for Ruby <= 2.7 # Version 3.0.0 dropped support for Ruby <= 2.4 -gem 'stringio', '>= 3.0' +gem "stringio", ">= 3.0" diff --git a/gems/json-merge/gemfiles/modular/stringio/vHEAD.gemfile b/gems/json-merge/gemfiles/modular/stringio/vHEAD.gemfile index 78f5f5d8a..5f2a74126 100644 --- a/gems/json-merge/gemfiles/modular/stringio/vHEAD.gemfile +++ b/gems/json-merge/gemfiles/modular/stringio/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 (dependency of omniauth) -gem 'stringio', github: 'ruby/stringio', branch: 'master' +gem "stringio", github: "ruby/stringio", branch: "master" diff --git a/gems/json-merge/gemfiles/modular/style.gemfile b/gems/json-merge/gemfiles/modular/style.gemfile index 4dbcc02c0..35de4dcd6 100644 --- a/gems/json-merge/gemfiles/modular/style.gemfile +++ b/gems/json-merge/gemfiles/modular/style.gemfile @@ -9,23 +9,23 @@ # Style tasks run on the latest Ruby; RuboCop-LTS selects the compatibility # rules for the configured Ruby floor independently from task dependency floors. -gem 'reek', '~> 6.5', '>= 6.5.0' +gem "reek", "~> 6.5", ">= 6.5.0" platform :mri do - gem 'appraisal2-rubocop', '~> 1.0', '>= 1.0.0', require: false - gem 'rubocop-gradual', '~> 0.4', '>= 0.4.0' - gem 'rubocop-minitest', '~> 0.40', '>= 0.40.0' - gem 'rubocop-on-rbs', '~> 2.0', '>= 2.0.0' # ruby >= 3.2.0 + gem "appraisal2-rubocop", "~> 1.0", ">= 1.0.0", require: false + gem "rubocop-gradual", "~> 0.4", ">= 0.4.0" + gem "rubocop-minitest", "~> 0.40", ">= 0.40.0" + gem "rubocop-on-rbs", "~> 2.0", ">= 2.0.0" # ruby >= 3.2.0 # gem "rubocop", "~> 1.73", ">= 1.73.2" # constrained by standard - gem 'rubocop-packaging', '~> 0.6', '>= 0.6.0' - gem 'standard', '~> 1.56', '>= 1.56.0' + gem "rubocop-packaging", "~> 0.6", ">= 0.6.0" + gem "standard", "~> 1.56", ">= 1.56.0" - if ENV.fetch('RUBOCOP_LTS_LOCAL', 'false').casecmp('false').zero? + if ENV.fetch("RUBOCOP_LTS_LOCAL", "false").casecmp("false").zero? declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) - gem 'rubocop-lts', '~> 24.2', '>= 24.2.1' unless declared_gems.include?('rubocop-lts') - gem 'rubocop-lts-rspec', '~> 1.0', '>= 1.0.5' unless declared_gems.include?('rubocop-lts-rspec') - gem 'rubocop-ruby3_2', '~> 3.0', '>= 3.0.6' unless declared_gems.include?('rubocop-ruby3_2') + gem "rubocop-lts", "~> 24.2", ">= 24.2.1" unless declared_gems.include?("rubocop-lts") + gem "rubocop-lts-rspec", "~> 1.0", ">= 1.0.5" unless declared_gems.include?("rubocop-lts-rspec") + gem "rubocop-ruby3_2", "~> 3.0", ">= 3.0.6" unless declared_gems.include?("rubocop-ruby3_2") else - eval_gemfile('style_local.gemfile') + eval_gemfile("style_local.gemfile") end end diff --git a/gems/json-merge/gemfiles/modular/style_local.gemfile b/gems/json-merge/gemfiles/modular/style_local.gemfile index 269a58c92..cdcbeb586 100644 --- a/gems/json-merge/gemfiles/modular/style_local.gemfile +++ b/gems/json-merge/gemfiles/modular/style_local.gemfile @@ -14,19 +14,21 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] -nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) +nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] +nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == "nomono" } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + if nomono_locked + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] + end end -Kernel.send(:gem, 'nomono', *nomono_activation_requirements) -require 'nomono/bundler' +Kernel.send(:gem, "nomono", *nomono_activation_requirements) +require "nomono/bundler" local_gems = %w[rubocop-lts rubocop-lts-rspec rubocop-ruby3_2 standard-rubocop-lts] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) @@ -36,11 +38,11 @@ local_gems_to_eval = local_gems - %w[json-merge] - declared_gems platform :mri do eval_nomono_gems( gems: local_gems_to_eval, - prefix: 'RUBOCOP_LTS', - path_env: 'RUBOCOP_LTS_LOCAL', - vendored_gems_env: 'VENDORED_GEMS', - vendor_gem_dir_env: 'VENDOR_GEM_DIR', - debug_env: 'RUBOCOP_LTS_DEBUG', - root: %w[src rubocop-lts] + prefix: "RUBOCOP_LTS", + path_env: "RUBOCOP_LTS_LOCAL", + vendored_gems_env: "VENDORED_GEMS", + vendor_gem_dir_env: "VENDOR_GEM_DIR", + debug_env: "RUBOCOP_LTS_DEBUG", + root: ["src", "rubocop-lts"] ) end diff --git a/gems/json-merge/gemfiles/modular/templating.gemfile b/gems/json-merge/gemfiles/modular/templating.gemfile index a672de184..47138ffbb 100644 --- a/gems/json-merge/gemfiles/modular/templating.gemfile +++ b/gems/json-merge/gemfiles/modular/templating.gemfile @@ -1,18 +1,18 @@ # frozen_string_literal: true -structuredmerge_remote = ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false').zero? -kettle_remote = ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? +structuredmerge_remote = ENV.fetch("STRUCTUREDMERGE_DEV", "false").casecmp("false").zero? +kettle_remote = ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false").zero? if structuredmerge_remote # Parser dependencies for released installs. - gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' + gem "tree_sitter_language_pack", "~> 1.13", ">= 1.13.3" # Merge recipes for released installs. - gem 'kettle-jem', '>= 7.0' + gem "kettle-jem", ">= 7.0" end if kettle_remote # Template/plugin checks for released installs. - gem 'kettle-drift', '~> 1.0', '>= 1.0.6', require: false + gem "kettle-drift", "~> 1.0", ">= 1.0.6", require: false end # Set STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local development with path-based dependencies. @@ -21,4 +21,4 @@ end # # Set KETTLE_DEV_DEV=/path/to/my for local development with Kettle plugin gems. # When false (default / CI), released Kettle plugin gems are used. -eval_gemfile 'templating_local.gemfile' unless structuredmerge_remote && kettle_remote +eval_gemfile "templating_local.gemfile" unless structuredmerge_remote && kettle_remote diff --git a/gems/json-merge/gemfiles/modular/templating_local.gemfile b/gems/json-merge/gemfiles/modular/templating_local.gemfile index 3a458a7d0..25573dcc8 100644 --- a/gems/json-merge/gemfiles/modular/templating_local.gemfile +++ b/gems/json-merge/gemfiles/modular/templating_local.gemfile @@ -12,19 +12,21 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] -nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) +nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] +nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == "nomono" } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + if nomono_locked + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] + end end -Kernel.send(:gem, 'nomono', *nomono_activation_requirements) -require 'nomono/bundler' +Kernel.send(:gem, "nomono", *nomono_activation_requirements) +require "nomono/bundler" structuredmerge_local_gems = %w[ tree_haver @@ -67,25 +69,25 @@ structuredmerge_local_gems_to_eval = structuredmerge_local_gems - %w[json-merge] kettle_dev_local_gems_to_eval = kettle_dev_local_gems - %w[json-merge] - declared_gems platform :mri do - if ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false') != 0 + if ENV.fetch("STRUCTUREDMERGE_DEV", "false").casecmp("false") != 0 eval_nomono_gems( gems: structuredmerge_local_gems_to_eval, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - vendored_gems_env: 'VENDORED_GEMS', - vendor_gem_dir_env: 'VENDOR_GEM_DIR', - debug_env: 'STRUCTUREDMERGE_DEBUG' + prefix: "STRUCTUREDMERGE", + path_env: "STRUCTUREDMERGE_DEV", + vendored_gems_env: "VENDORED_GEMS", + vendor_gem_dir_env: "VENDOR_GEM_DIR", + debug_env: "STRUCTUREDMERGE_DEBUG" ) end - if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false') != 0 + if ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false") != 0 eval_nomono_gems( gems: kettle_dev_local_gems_to_eval, - prefix: 'KETTLE_DEV', - path_env: 'KETTLE_DEV_DEV', - vendored_gems_env: 'VENDORED_GEMS', - vendor_gem_dir_env: 'VENDOR_GEM_DIR', - debug_env: 'KETTLE_DEV_DEBUG' + prefix: "KETTLE_DEV", + path_env: "KETTLE_DEV_DEV", + vendored_gems_env: "VENDORED_GEMS", + vendor_gem_dir_env: "VENDOR_GEM_DIR", + debug_env: "KETTLE_DEV_DEBUG" ) end end diff --git a/gems/json-merge/gemfiles/modular/webrick/r4/v1.9.gemfile b/gems/json-merge/gemfiles/modular/webrick/r4/v1.9.gemfile index b1329ba84..eaab4a473 100644 --- a/gems/json-merge/gemfiles/modular/webrick/r4/v1.9.gemfile +++ b/gems/json-merge/gemfiles/modular/webrick/r4/v1.9.gemfile @@ -1 +1 @@ -gem 'webrick', '~> 1.9' +gem "webrick", "~> 1.9" diff --git a/gems/json-merge/gemfiles/modular/webrick/vHEAD.gemfile b/gems/json-merge/gemfiles/modular/webrick/vHEAD.gemfile index c7e6f81a1..8a789b634 100644 --- a/gems/json-merge/gemfiles/modular/webrick/vHEAD.gemfile +++ b/gems/json-merge/gemfiles/modular/webrick/vHEAD.gemfile @@ -1 +1 @@ -gem 'webrick', '>= 1.9' +gem "webrick", ">= 1.9" diff --git a/gems/json-merge/gemfiles/modular/x_std_libs.gemfile b/gems/json-merge/gemfiles/modular/x_std_libs.gemfile index b1f43c097..77aad43f2 100644 --- a/gems/json-merge/gemfiles/modular/x_std_libs.gemfile +++ b/gems/json-merge/gemfiles/modular/x_std_libs.gemfile @@ -1,12 +1,12 @@ ### Std Lib Extracted Gems ruby_version = Gem::Version.new(RUBY_VERSION) -if ruby_version >= Gem::Version.new('4.0') - eval_gemfile 'x_std_libs/r4/libs.gemfile' -elsif ruby_version >= Gem::Version.new('3.2') - eval_gemfile 'x_std_libs/r3/libs.gemfile' -elsif ruby_version >= Gem::Version.new('3.1') - eval_gemfile 'x_std_libs/r3.1/libs.gemfile' +if ruby_version >= Gem::Version.new("4.0") + eval_gemfile "x_std_libs/r4/libs.gemfile" +elsif ruby_version >= Gem::Version.new("3.2") + eval_gemfile "x_std_libs/r3/libs.gemfile" +elsif ruby_version >= Gem::Version.new("3.1") + eval_gemfile "x_std_libs/r3.1/libs.gemfile" else - eval_gemfile 'x_std_libs/r2/libs.gemfile' + eval_gemfile "x_std_libs/r2/libs.gemfile" end diff --git a/gems/json-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile b/gems/json-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile index 16a5e3d70..441c4f03a 100644 --- a/gems/json-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile +++ b/gems/json-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile @@ -1,3 +1,3 @@ -eval_gemfile '../../erb/r2/v3.0.gemfile' -eval_gemfile '../../mutex_m/r2/v0.3.gemfile' -eval_gemfile '../../stringio/r2/v3.0.gemfile' +eval_gemfile "../../erb/r2/v3.0.gemfile" +eval_gemfile "../../mutex_m/r2/v0.3.gemfile" +eval_gemfile "../../stringio/r2/v3.0.gemfile" diff --git a/gems/json-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile b/gems/json-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile index 220ff95c1..c293a3ddd 100644 --- a/gems/json-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile +++ b/gems/json-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile @@ -1,3 +1,3 @@ -eval_gemfile '../../erb/r3/v5.0.gemfile' -eval_gemfile '../../mutex_m/r3/v0.3.gemfile' -eval_gemfile '../../stringio/r3/v3.0.gemfile' +eval_gemfile "../../erb/r3/v5.0.gemfile" +eval_gemfile "../../mutex_m/r3/v0.3.gemfile" +eval_gemfile "../../stringio/r3/v3.0.gemfile" diff --git a/gems/json-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile b/gems/json-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile index e2f6501eb..eb5574247 100644 --- a/gems/json-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile +++ b/gems/json-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile @@ -1,6 +1,6 @@ -eval_gemfile '../../erb/r4/v5.0.gemfile' -eval_gemfile '../../mutex_m/r4/v0.3.gemfile' -eval_gemfile '../../stringio/r4/v3.0.gemfile' -eval_gemfile '../../benchmark/r4/v0.5.gemfile' -eval_gemfile '../../cgi/r4/v0.5.gemfile' -eval_gemfile '../../webrick/r4/v1.9.gemfile' +eval_gemfile "../../erb/r4/v5.0.gemfile" +eval_gemfile "../../mutex_m/r4/v0.3.gemfile" +eval_gemfile "../../stringio/r4/v3.0.gemfile" +eval_gemfile "../../benchmark/r4/v0.5.gemfile" +eval_gemfile "../../cgi/r4/v0.5.gemfile" +eval_gemfile "../../webrick/r4/v1.9.gemfile" diff --git a/gems/json-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile b/gems/json-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile index ab75cccf1..d4d5b16c9 100644 --- a/gems/json-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile +++ b/gems/json-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile @@ -1,6 +1,6 @@ -eval_gemfile '../erb/vHEAD.gemfile' -eval_gemfile '../mutex_m/vHEAD.gemfile' -eval_gemfile '../stringio/vHEAD.gemfile' -eval_gemfile '../benchmark/vHEAD.gemfile' -eval_gemfile '../cgi/vHEAD.gemfile' -eval_gemfile '../webrick/vHEAD.gemfile' +eval_gemfile "../erb/vHEAD.gemfile" +eval_gemfile "../mutex_m/vHEAD.gemfile" +eval_gemfile "../stringio/vHEAD.gemfile" +eval_gemfile "../benchmark/vHEAD.gemfile" +eval_gemfile "../cgi/vHEAD.gemfile" +eval_gemfile "../webrick/vHEAD.gemfile" diff --git a/gems/json-merge/lib/json/merge/version.rb b/gems/json-merge/lib/json/merge/version.rb index 13f521eb3..d02d9f1a5 100644 --- a/gems/json-merge/lib/json/merge/version.rb +++ b/gems/json-merge/lib/json/merge/version.rb @@ -3,7 +3,7 @@ module Json module Merge module Version - VERSION = '7.1.0' + VERSION = "7.1.0" end VERSION = Version::VERSION # Traditional Constant Location end diff --git a/gems/json-merge/spec/spec_helper.rb b/gems/json-merge/spec/spec_helper.rb index 127a823f4..3d185dfb1 100644 --- a/gems/json-merge/spec/spec_helper.rb +++ b/gems/json-merge/spec/spec_helper.rb @@ -7,16 +7,16 @@ # NOTE: Gemfiles for non-coverage appraisals may not have kettle-soup-cover. # The rescue LoadError handles that scenario. begin - require 'kettle-soup-cover' + require "kettle-soup-cover" if Kettle::Soup::Cover::DO_COV # Requiring simplecov loads the project-local `.simplecov`. - require 'simplecov' - require 'kettle/soup/cover/config' + require "simplecov" + require "kettle/soup/cover/config" SimpleCov.start end -rescue LoadError => e +rescue LoadError => error # check the error message and re-raise when unexpected - raise e unless e.message.include?('kettle') + raise error unless error.message.include?("kettle") end # External RSpec & related config diff --git a/gems/markdown-merge/Gemfile.lock b/gems/markdown-merge/Gemfile.lock index 51ae3e302..6c4ae1ae6 100644 --- a/gems/markdown-merge/Gemfile.lock +++ b/gems/markdown-merge/Gemfile.lock @@ -6,24 +6,6 @@ PATH tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) -PATH - remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/ast-merge - specs: - ast-merge (7.1.0) - benchmark - token-resolver (~> 2.0, >= 2.0.4) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/tree_haver - specs: - tree_haver (7.1.0) - citrus (~> 3.0) - parslet (~> 2.0) - tree_sitter_language_pack (>= 1.13.2, < 2.0) - version_gem (~> 1.1, >= 1.1.9) - GEM remote: https://gem.coop/ specs: @@ -39,6 +21,11 @@ GEM rubocop (>= 1.0) version_gem (~> 1.1, >= 1.1.14) ast (2.4.3) + ast-merge (7.1.0) + benchmark + token-resolver (~> 2.0, >= 2.0.4) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) backports (3.25.3) benchmark (0.5.0) bigdecimal (4.1.2) @@ -354,6 +341,11 @@ GEM token-resolver (2.0.5) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.14) + tree_haver (7.1.0) + citrus (~> 3.0) + parslet (~> 2.0) + tree_sitter_language_pack (>= 1.13.2, < 2.0) + version_gem (~> 1.1, >= 1.1.9) tree_sitter_language_pack (1.13.3-aarch64-linux) sorbet-runtime (~> 0.5) tree_sitter_language_pack (1.13.3-arm64-darwin) @@ -408,7 +400,6 @@ DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) appraisal2-rubocop (~> 1.0, >= 1.0.0) - ast-merge! benchmark (~> 0.5, >= 0.5.0) bundler-audit (~> 0.9.3) cgi (~> 0.5) @@ -441,7 +432,6 @@ DEPENDENCIES standard (~> 1.56, >= 1.56.0) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) - tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) webrick (~> 1.9) yaml-converter (~> 0.2, >= 0.2.3) diff --git a/gems/markly-merge/Gemfile b/gems/markly-merge/Gemfile index 8f0986230..2d8b9c4d9 100644 --- a/gems/markly-merge/Gemfile +++ b/gems/markly-merge/Gemfile @@ -6,7 +6,7 @@ # kettle-jem will then preserve content between those markers across template runs. # kettle-jem:unfreeze -source "https://gem.coop" +source 'https://gem.coop' git_source(:codeberg) { |repo_name| "https://codeberg.org/#{repo_name}" } git_source(:gitlab) { |repo_name| "https://gitlab.com/#{repo_name}" } @@ -19,57 +19,53 @@ git_source(:gitlab) { |repo_name| "https://gitlab.com/#{repo_name}" } gemspec # Local workspace dependency wiring for *_local.gemfile overrides -nomono_requirements = ["~> 1.0", ">= 1.0.8"] -gem "nomono", *nomono_requirements, require: false # ruby >= 2.2 +nomono_requirements = ['~> 1.0', '>= 1.0.8'] +gem 'nomono', *nomono_requirements, require: false # ruby >= 2.2 # Direct sibling dependencies (env-switched via STRUCTUREDMERGE_DEV) direct_sibling_gems = %w[ markdown-merge ] -direct_sibling_dev = ENV.fetch("STRUCTUREDMERGE_DEV", "") +direct_sibling_dev = ENV.fetch('STRUCTUREDMERGE_DEV', '') direct_sibling_local = !direct_sibling_dev.empty? && !%w[false 0 no off].include?(direct_sibling_dev.downcase) -direct_sibling_templating = ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? +direct_sibling_templating = ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero?) - direct_sibling_dev_was_set = ENV.key?("STRUCTUREDMERGE_DEV") - direct_sibling_dev_original = ENV.fetch("STRUCTUREDMERGE_DEV", nil) + (direct_sibling_local || + ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) + direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') + direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) begin nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path("Gemfile.lock", __dir__) + nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == "nomono" } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - if nomono_locked - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] - end - end - Kernel.send(:gem, "nomono", *nomono_activation_requirements) - require "nomono/bundler" - if direct_sibling_templating && !direct_sibling_local - ENV["STRUCTUREDMERGE_DEV"] = File.expand_path("..", __dir__) + Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked end + Kernel.send(:gem, 'nomono', *nomono_activation_requirements) + require 'nomono/bundler' + ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local eval_nomono_gems( gems: direct_sibling_gems, - prefix: "STRUCTUREDMERGE", - path_env: "STRUCTUREDMERGE_DEV", - root: ["src", "my", "structuredmerge"] + prefix: 'STRUCTUREDMERGE', + path_env: 'STRUCTUREDMERGE_DEV', + root: %w[src my structuredmerge] ) rescue LoadError - warn "Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies." + warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' ensure if direct_sibling_templating && !direct_sibling_local if direct_sibling_dev_was_set - ENV["STRUCTUREDMERGE_DEV"] = direct_sibling_dev_original + ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original else - ENV.delete("STRUCTUREDMERGE_DEV") + ENV.delete('STRUCTUREDMERGE_DEV') end end end @@ -196,28 +192,28 @@ if direct_sibling_gems.any? && end # Use released TSLP with the Ruby ABI platform-gem fix. -gem "tree_sitter_language_pack", "~> 1.13", ">= 1.13.3" +gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' # Templating (env-switched: STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local paths) -eval_gemfile "gemfiles/modular/templating.gemfile" if ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? +eval_gemfile 'gemfiles/modular/templating.gemfile' if ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? # Debugging -eval_gemfile "gemfiles/modular/debug.gemfile" +eval_gemfile 'gemfiles/modular/debug.gemfile' # Code Coverage (env-switched: KETTLE_DEV_DEV=true for local paths) -eval_gemfile "gemfiles/modular/coverage.gemfile" +eval_gemfile 'gemfiles/modular/coverage.gemfile' # Linting -eval_gemfile "gemfiles/modular/style.gemfile" +eval_gemfile 'gemfiles/modular/style.gemfile' # Documentation -eval_gemfile "gemfiles/modular/documentation.gemfile" +eval_gemfile 'gemfiles/modular/documentation.gemfile' # Optional -eval_gemfile "gemfiles/modular/optional.gemfile" +eval_gemfile 'gemfiles/modular/optional.gemfile' ### Std Lib Extracted Gems -eval_gemfile "gemfiles/modular/x_std_libs.gemfile" +eval_gemfile 'gemfiles/modular/x_std_libs.gemfile' # See unlocked_deps appraisal for more details on irb inclusion -gem "irb", "~> 1.17" # ruby >= 2.7 +gem 'irb', '~> 1.17' # ruby >= 2.7 diff --git a/gems/markly-merge/Gemfile.lock b/gems/markly-merge/Gemfile.lock index ec73856e2..5e28fe4f4 100644 --- a/gems/markly-merge/Gemfile.lock +++ b/gems/markly-merge/Gemfile.lock @@ -7,265 +7,13 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly - specs: - ast-crispr-markdown-markly (7.1.0) - ast-crispr (= 7.1.0) - markly-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism - specs: - ast-crispr-ruby-prism (7.1.0) - ast-crispr (= 7.1.0) - prism-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr - specs: - ast-crispr (7.1.0) - ast-merge (= 7.1.0) - service_actor (~> 3.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git - specs: - ast-merge-git (7.1.0) - ast-merge (= 7.1.0) - json-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge - specs: - ast-merge (7.1.0) - benchmark - token-resolver (~> 2.0, >= 2.0.4) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template - specs: - ast-template (7.1.0) - ast-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge - specs: - bash-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge - specs: - binary-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge - specs: - citrus-toml-merge (7.1.0) - toml-merge (= 7.1.0) - toml-rb (~> 4.1) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge - specs: - commonmarker-merge (7.1.0) - commonmarker (~> 2.2) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge - specs: - dotenv-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge - specs: - go-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge - specs: - json-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem - specs: - kettle-jem (7.1.0) - addressable (>= 2.8, < 3) - ast-crispr-markdown-markly (= 7.1.0) - ast-crispr-ruby-prism (= 7.1.0) - ast-merge (= 7.1.0) - bash-merge (= 7.1.0) - citrus-toml-merge (= 7.1.0) - commonmarker-merge (= 7.1.0) - dotenv-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-dev (~> 2.3, >= 2.3.5) - kettle-rb (~> 0.1, >= 0.1.4) - kramdown-merge (= 7.1.0) - markdown-merge (= 7.1.0) - markly-merge (= 7.1.0) - prism-merge (= 7.1.0) - psych-merge (= 7.1.0) - rbs (>= 3.10) - rbs-merge (= 7.1.0) - ruby-merge (= 7.1.0) - token-resolver (~> 2.0, >= 2.0.4) - toml-merge (= 7.1.0) - toml-rb (~> 4.2) - tree_haver (= 7.1.0) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge - specs: - kramdown-merge (7.1.0) - kramdown (~> 2.5) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge specs: markdown-merge (7.1.0) ast-merge (= 7.1.0) tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge - specs: - parslet-toml-merge (7.1.0) - toml (~> 0.3) - toml-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge - specs: - plain-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge - specs: - prism-merge (7.1.0) - prism (~> 1.6) - ruby-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge - specs: - psych-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge - specs: - rbs-merge (7.1.0) - ast-merge (= 7.1.0) - rbs (>= 3.10) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge - specs: - ruby-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge - specs: - rust-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb - specs: - smorg-rb (7.1.0) - ast-merge (= 7.1.0) - ast-merge-git (= 7.1.0) - diff-lcs (~> 1.5) - go-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-jem (= 7.1.0) - markly-merge (= 7.1.0) - plain-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge - specs: - toml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver - specs: - tree_haver (7.1.0) - citrus (~> 3.0) - parslet (~> 2.0) - tree_sitter_language_pack (>= 1.13.2, < 2.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge - specs: - typescript-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge - specs: - yaml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge - specs: - zip-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - GEM remote: https://gem.coop/ specs: @@ -281,6 +29,11 @@ GEM rubocop (>= 1.0) version_gem (~> 1.1, >= 1.1.14) ast (2.4.3) + ast-merge (7.1.0) + benchmark + token-resolver (~> 2.0, >= 2.0.4) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) backports (3.25.3) benchmark (0.5.0) bigdecimal (4.1.2) @@ -290,7 +43,6 @@ GEM cgi (0.5.2) citrus (3.0.2) cmdparse (3.0.7) - commonmarker (2.9.0-x86_64-linux) concurrent-ruby (1.3.8) date (3.5.1) debug (1.11.1) @@ -353,8 +105,6 @@ GEM kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) - kettle-drift (1.0.6) - version_gem (~> 1.1, >= 1.1.14) kettle-rb (0.1.5) kettle-soup-cover (3.0.4) kettle-wash (~> 0.1, >= 0.1.0) @@ -538,8 +288,6 @@ GEM ruby-progressbar (1.13.0) ruby_engine (2.0.3) ruby_version (1.0.3) - service_actor (3.9.4) - zeitwerk (>= 1.0) silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) @@ -594,11 +342,11 @@ GEM token-resolver (2.0.5) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.14) - toml (0.3.0) - parslet (>= 1.8.0, < 3.0.0) - toml-rb (4.2.0) - citrus (~> 3.0, > 3.0) - racc (~> 1.7) + tree_haver (7.1.0) + citrus (~> 3.0) + parslet (~> 2.0) + tree_sitter_language_pack (>= 1.13.2, < 2.0) + version_gem (~> 1.1, >= 1.1.9) tree_sitter_language_pack (1.13.3-x86_64-linux) sorbet-runtime (~> 0.5) tsort (0.2.0) @@ -644,46 +392,25 @@ DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) appraisal2-rubocop (~> 1.0, >= 1.0.0) - ast-crispr! - ast-crispr-markdown-markly! - ast-crispr-ruby-prism! - ast-merge! - ast-merge-git! - ast-template! - bash-merge! benchmark (~> 0.5, >= 0.5.0) - binary-merge! bundler-audit (~> 0.9.3) cgi (~> 0.5) - citrus-toml-merge! - commonmarker-merge! debug (>= 1.1) - dotenv-merge! erb (~> 6.0, >= 6.0.6) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.0) - go-merge! irb (~> 1.17) - json-merge! kettle-dev (~> 2.0, >= 2.2.25) - kettle-drift (~> 1.0, >= 1.0.6) - kettle-jem! kettle-soup-cover (~> 3.0, >= 3.0.3) kettle-test (~> 2.0, >= 2.0.9) kramdown (~> 2.5, >= 2.5.2) - kramdown-merge! kramdown-parser-gfm (~> 1.1) markdown-merge! markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) - parslet-toml-merge! - plain-merge! - prism-merge! - psych-merge! rake (~> 13.0) rbs (>= 3.0) - rbs-merge! rdoc (~> 6.11) reek (~> 6.5, >= 6.5.0) require_bench (~> 1.0, >= 1.0.4) @@ -694,27 +421,19 @@ DEPENDENCIES rubocop-on-rbs (~> 2.0, >= 2.0.0) rubocop-packaging (~> 0.6, >= 0.6.0) rubocop-ruby3_2 (~> 3.0, >= 3.0.6) - ruby-merge! ruby-progressbar (~> 1.13) - rust-merge! - smorg-rb! standard (~> 1.56, >= 1.56.0) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) - toml-merge! - tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) - typescript-merge! webrick (~> 1.9) yaml-converter (~> 0.2, >= 0.2.3) - yaml-merge! yard (~> 0.9, >= 0.9.45) yard-fence (~> 0.9, >= 0.9.6) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) yard-timekeeper (~> 0.2, >= 0.2.4) yard-yaml (~> 0.2, >= 0.2.3) - zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af @@ -722,31 +441,20 @@ CHECKSUMS appraisal2 (3.2.0) sha256=ccd0b767ac4060cd7af6d16747459b6990f49c39c7b4fb1f7d1146b1e97c492f appraisal2-rubocop (1.0.0) sha256=b71410fbb014befda5340605a605b7f6f3f012739baf0acc5b4351b592c3258d ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 - ast-crispr (7.1.0) - ast-crispr-markdown-markly (7.1.0) - ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) - ast-merge-git (7.1.0) - ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 - bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd - binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 - citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 - commonmarker (2.9.0-x86_64-linux) sha256=8cfe92970eef585a19ddf6613224b91cab64d6029834661bda801f877c9c7f43 - commonmarker-merge (7.1.0) concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 - dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -759,21 +467,16 @@ CHECKSUMS gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f - go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 - json-merge (7.1.0) kettle-dev (2.3.9) - kettle-drift (1.0.6) sha256=46eda08fa4411d1f3c6682a95eef1c9df4e94611b3949f49d4c7b43c0ed356a3 - kettle-jem (7.1.0) kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f kettle-soup-cover (3.0.4) kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa - kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 @@ -790,20 +493,15 @@ CHECKSUMS parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 - parslet-toml-merge (7.1.0) - plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 - prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 - psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 - rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb @@ -838,19 +536,15 @@ CHECKSUMS rubocop-rspec_rails (2.32.0) sha256=4a0d641c72f6ebb957534f539d9d0a62c47abd8ce0d0aeee1ef4701e892a9100 rubocop-ruby3_2 (3.0.7) sha256=f53dd6d286fb05186214fc6ec116783e7f837030918e8931c05de773e98f8466 rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 - ruby-merge (7.1.0) ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 - rust-merge (7.1.0) - service_actor (3.9.4) sha256=e63b523630b9a7e62959b2a90113b08d2565b5de9c148557b281ef847c9539ce silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed - smorg-rb (7.1.0) sorbet-runtime (0.6.13351) sha256=f8fee17c6e3edf835dc6823d26afb9a7c8969c6710d1fabe2fb43f4e0c15c64f standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b @@ -865,20 +559,15 @@ CHECKSUMS timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.5) sha256=b852f924287ffb58a440856e862b056c8ad97e74b4b2526cee43e0771f40c25c - toml (0.3.0) sha256=0a91d0f76a9036e84e44f95693b12f58d358c1df3ac8e3b5271f2056ecc6e4b9 - toml-merge (7.1.0) - toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 - typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 webrick (1.9.2) sha256=beb4a15fc474defed24a3bda4ffd88a490d517c9e4e6118c3edce59e45864131 yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 - yaml-merge (7.1.0) yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd @@ -886,7 +575,6 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 - zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH diff --git a/gems/markly-merge/Rakefile b/gems/markly-merge/Rakefile index 319456e08..9946d12a1 100644 --- a/gems/markly-merge/Rakefile +++ b/gems/markly-merge/Rakefile @@ -130,23 +130,23 @@ end ### DUPLICATE DRIFT TASKS begin - require "kettle/drift" + require 'kettle/drift' Kettle::Drift.install_tasks rescue LoadError - desc("(stub) kettle:drift:check is unavailable") - task("kettle:drift:check") do + desc('(stub) kettle:drift:check is unavailable') + task('kettle:drift:check') do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc("(stub) kettle:drift:update is unavailable") - task("kettle:drift:update") do + desc('(stub) kettle:drift:update is unavailable') + task('kettle:drift:update') do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc("(stub) kettle:drift:force_update is unavailable") - task("kettle:drift:force_update") do + desc('(stub) kettle:drift:force_update is unavailable') + task('kettle:drift:force_update') do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc("(stub) kettle:drift is unavailable") - task("kettle:drift" => "kettle:drift:update") + desc('(stub) kettle:drift is unavailable') + task('kettle:drift' => 'kettle:drift:update') end ### TEMPLATING TASKS diff --git a/gems/markly-merge/gemfiles/modular/templating.gemfile b/gems/markly-merge/gemfiles/modular/templating.gemfile index 47138ffbb..a672de184 100644 --- a/gems/markly-merge/gemfiles/modular/templating.gemfile +++ b/gems/markly-merge/gemfiles/modular/templating.gemfile @@ -1,18 +1,18 @@ # frozen_string_literal: true -structuredmerge_remote = ENV.fetch("STRUCTUREDMERGE_DEV", "false").casecmp("false").zero? -kettle_remote = ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false").zero? +structuredmerge_remote = ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false').zero? +kettle_remote = ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? if structuredmerge_remote # Parser dependencies for released installs. - gem "tree_sitter_language_pack", "~> 1.13", ">= 1.13.3" + gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' # Merge recipes for released installs. - gem "kettle-jem", ">= 7.0" + gem 'kettle-jem', '>= 7.0' end if kettle_remote # Template/plugin checks for released installs. - gem "kettle-drift", "~> 1.0", ">= 1.0.6", require: false + gem 'kettle-drift', '~> 1.0', '>= 1.0.6', require: false end # Set STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local development with path-based dependencies. @@ -21,4 +21,4 @@ end # # Set KETTLE_DEV_DEV=/path/to/my for local development with Kettle plugin gems. # When false (default / CI), released Kettle plugin gems are used. -eval_gemfile "templating_local.gemfile" unless structuredmerge_remote && kettle_remote +eval_gemfile 'templating_local.gemfile' unless structuredmerge_remote && kettle_remote diff --git a/gems/markly-merge/gemfiles/modular/templating_local.gemfile b/gems/markly-merge/gemfiles/modular/templating_local.gemfile index c3ddc6d57..4b7f13294 100644 --- a/gems/markly-merge/gemfiles/modular/templating_local.gemfile +++ b/gems/markly-merge/gemfiles/modular/templating_local.gemfile @@ -12,21 +12,19 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] -nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) +nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] +nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == "nomono" } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - if nomono_locked - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] - end + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked end -Kernel.send(:gem, "nomono", *nomono_activation_requirements) -require "nomono/bundler" +Kernel.send(:gem, 'nomono', *nomono_activation_requirements) +require 'nomono/bundler' structuredmerge_local_gems = %w[ tree_haver @@ -69,25 +67,25 @@ structuredmerge_local_gems_to_eval = structuredmerge_local_gems - %w[markly-merg kettle_dev_local_gems_to_eval = kettle_dev_local_gems - %w[markly-merge] - declared_gems platform :mri do - if ENV.fetch("STRUCTUREDMERGE_DEV", "false").casecmp("false") != 0 + if ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false') != 0 eval_nomono_gems( gems: structuredmerge_local_gems_to_eval, - prefix: "STRUCTUREDMERGE", - path_env: "STRUCTUREDMERGE_DEV", - vendored_gems_env: "VENDORED_GEMS", - vendor_gem_dir_env: "VENDOR_GEM_DIR", - debug_env: "STRUCTUREDMERGE_DEBUG" + prefix: 'STRUCTUREDMERGE', + path_env: 'STRUCTUREDMERGE_DEV', + vendored_gems_env: 'VENDORED_GEMS', + vendor_gem_dir_env: 'VENDOR_GEM_DIR', + debug_env: 'STRUCTUREDMERGE_DEBUG' ) end - if ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false") != 0 + if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false') != 0 eval_nomono_gems( gems: kettle_dev_local_gems_to_eval, - prefix: "KETTLE_DEV", - path_env: "KETTLE_DEV_DEV", - vendored_gems_env: "VENDORED_GEMS", - vendor_gem_dir_env: "VENDOR_GEM_DIR", - debug_env: "KETTLE_DEV_DEBUG" + prefix: 'KETTLE_DEV', + path_env: 'KETTLE_DEV_DEV', + vendored_gems_env: 'VENDORED_GEMS', + vendor_gem_dir_env: 'VENDOR_GEM_DIR', + debug_env: 'KETTLE_DEV_DEBUG' ) end end diff --git a/gems/markly-merge/lib/markly/merge/version.rb b/gems/markly-merge/lib/markly/merge/version.rb index b4ff2ffeb..3bfd8e9b0 100644 --- a/gems/markly-merge/lib/markly/merge/version.rb +++ b/gems/markly-merge/lib/markly/merge/version.rb @@ -3,7 +3,7 @@ module Markly module Merge module Version - VERSION = "7.1.0" + VERSION = '7.1.0' end VERSION = Version::VERSION # Traditional Constant Location end diff --git a/gems/prism-merge/Gemfile.lock b/gems/prism-merge/Gemfile.lock index f94c28138..2008a266c 100644 --- a/gems/prism-merge/Gemfile.lock +++ b/gems/prism-merge/Gemfile.lock @@ -6,266 +6,6 @@ PATH ruby-merge (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly - specs: - ast-crispr-markdown-markly (7.1.0) - ast-crispr (= 7.1.0) - markly-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism - specs: - ast-crispr-ruby-prism (7.1.0) - ast-crispr (= 7.1.0) - prism-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr - specs: - ast-crispr (7.1.0) - ast-merge (= 7.1.0) - service_actor (~> 3.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git - specs: - ast-merge-git (7.1.0) - ast-merge (= 7.1.0) - json-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge - specs: - ast-merge (7.1.0) - benchmark - token-resolver (~> 2.0, >= 2.0.4) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template - specs: - ast-template (7.1.0) - ast-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge - specs: - bash-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge - specs: - binary-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge - specs: - citrus-toml-merge (7.1.0) - toml-merge (= 7.1.0) - toml-rb (~> 4.1) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge - specs: - commonmarker-merge (7.1.0) - commonmarker (~> 2.2) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge - specs: - dotenv-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge - specs: - go-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge - specs: - json-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem - specs: - kettle-jem (7.1.0) - addressable (>= 2.8, < 3) - ast-crispr-markdown-markly (= 7.1.0) - ast-crispr-ruby-prism (= 7.1.0) - ast-merge (= 7.1.0) - bash-merge (= 7.1.0) - citrus-toml-merge (= 7.1.0) - commonmarker-merge (= 7.1.0) - dotenv-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-dev (~> 2.3, >= 2.3.5) - kettle-rb (~> 0.1, >= 0.1.4) - kramdown-merge (= 7.1.0) - markdown-merge (= 7.1.0) - markly-merge (= 7.1.0) - prism-merge (= 7.1.0) - psych-merge (= 7.1.0) - rbs (>= 3.10) - rbs-merge (= 7.1.0) - ruby-merge (= 7.1.0) - token-resolver (~> 2.0, >= 2.0.4) - toml-merge (= 7.1.0) - toml-rb (~> 4.2) - tree_haver (= 7.1.0) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge - specs: - kramdown-merge (7.1.0) - kramdown (~> 2.5) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge - specs: - markdown-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge - specs: - markly-merge (7.1.0) - markdown-merge (= 7.1.0) - markly (~> 0.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge - specs: - parslet-toml-merge (7.1.0) - toml (~> 0.3) - toml-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge - specs: - plain-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge - specs: - psych-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge - specs: - rbs-merge (7.1.0) - ast-merge (= 7.1.0) - rbs (>= 3.10) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge - specs: - ruby-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge - specs: - rust-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb - specs: - smorg-rb (7.1.0) - ast-merge (= 7.1.0) - ast-merge-git (= 7.1.0) - diff-lcs (~> 1.5) - go-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-jem (= 7.1.0) - markly-merge (= 7.1.0) - plain-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge - specs: - toml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver - specs: - tree_haver (7.1.0) - citrus (~> 3.0) - parslet (~> 2.0) - tree_sitter_language_pack (>= 1.13.2, < 2.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge - specs: - typescript-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge - specs: - yaml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge - specs: - zip-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - GEM remote: https://gem.coop/ specs: @@ -281,6 +21,11 @@ GEM rubocop (>= 1.0) version_gem (~> 1.1, >= 1.1.14) ast (2.4.3) + ast-merge (7.1.0) + benchmark + token-resolver (~> 2.0, >= 2.0.4) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) backports (3.25.3) benchmark (0.5.0) bigdecimal (4.1.2) @@ -290,7 +35,6 @@ GEM cgi (0.5.2) citrus (3.0.2) cmdparse (3.0.7) - commonmarker (2.9.0-x86_64-linux) concurrent-ruby (1.3.8) date (3.5.1) debug (1.11.1) @@ -353,8 +97,6 @@ GEM kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) - kettle-drift (1.0.6) - version_gem (~> 1.1, >= 1.1.14) kettle-rb (0.1.5) kettle-soup-cover (3.0.4) kettle-wash (~> 0.1, >= 0.1.0) @@ -383,7 +125,6 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) - markly (0.16.0) mutex_m (0.3.0) nokogiri (1.19.4-x86_64-linux-gnu) racc (~> 1.4) @@ -535,11 +276,13 @@ GEM lint_roller (~> 1.1) rubocop (~> 1.72, >= 1.72.1) rubocop-ast (>= 1.44.0, < 2.0) + ruby-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) ruby-progressbar (1.13.0) ruby_engine (2.0.3) ruby_version (1.0.3) - service_actor (3.9.4) - zeitwerk (>= 1.0) silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) @@ -594,11 +337,11 @@ GEM token-resolver (2.0.5) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.14) - toml (0.3.0) - parslet (>= 1.8.0, < 3.0.0) - toml-rb (4.2.0) - citrus (~> 3.0, > 3.0) - racc (~> 1.7) + tree_haver (7.1.0) + citrus (~> 3.0) + parslet (~> 2.0) + tree_sitter_language_pack (>= 1.13.2, < 2.0) + version_gem (~> 1.1, >= 1.1.9) tree_sitter_language_pack (1.13.3-x86_64-linux) sorbet-runtime (~> 0.5) tsort (0.2.0) @@ -644,46 +387,24 @@ DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) appraisal2-rubocop (~> 1.0, >= 1.0.0) - ast-crispr! - ast-crispr-markdown-markly! - ast-crispr-ruby-prism! - ast-merge! - ast-merge-git! - ast-template! - bash-merge! benchmark (~> 0.5, >= 0.5.0) - binary-merge! bundler-audit (~> 0.9.3) cgi (~> 0.5) - citrus-toml-merge! - commonmarker-merge! debug (>= 1.1) - dotenv-merge! erb (~> 6.0, >= 6.0.6) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.0) - go-merge! irb (~> 1.17) - json-merge! kettle-dev (~> 2.0, >= 2.2.25) - kettle-drift (~> 1.0, >= 1.0.6) - kettle-jem! kettle-soup-cover (~> 3.0, >= 3.0.3) kettle-test (~> 2.0, >= 2.0.9) kramdown (~> 2.5, >= 2.5.2) - kramdown-merge! kramdown-parser-gfm (~> 1.1) - markdown-merge! - markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) - parslet-toml-merge! - plain-merge! prism-merge! - psych-merge! rake (~> 13.0) rbs (>= 3.0) - rbs-merge! rdoc (~> 6.11) reek (~> 6.5, >= 6.5.0) require_bench (~> 1.0, >= 1.0.4) @@ -694,27 +415,19 @@ DEPENDENCIES rubocop-on-rbs (~> 2.0, >= 2.0.0) rubocop-packaging (~> 0.6, >= 0.6.0) rubocop-ruby3_2 (~> 3.0, >= 3.0.6) - ruby-merge! ruby-progressbar (~> 1.13) - rust-merge! - smorg-rb! standard (~> 1.56, >= 1.56.0) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) - toml-merge! - tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) - typescript-merge! webrick (~> 1.9) yaml-converter (~> 0.2, >= 0.2.3) - yaml-merge! yard (~> 0.9, >= 0.9.45) yard-fence (~> 0.9, >= 0.9.6) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) yard-timekeeper (~> 0.2, >= 0.2.4) yard-yaml (~> 0.2, >= 0.2.3) - zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af @@ -722,31 +435,20 @@ CHECKSUMS appraisal2 (3.2.0) sha256=ccd0b767ac4060cd7af6d16747459b6990f49c39c7b4fb1f7d1146b1e97c492f appraisal2-rubocop (1.0.0) sha256=b71410fbb014befda5340605a605b7f6f3f012739baf0acc5b4351b592c3258d ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 - ast-crispr (7.1.0) - ast-crispr-markdown-markly (7.1.0) - ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) - ast-merge-git (7.1.0) - ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 - bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd - binary-merge (7.1.0) bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 - citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 - commonmarker (2.9.0-x86_64-linux) sha256=8cfe92970eef585a19ddf6613224b91cab64d6029834661bda801f877c9c7f43 - commonmarker-merge (7.1.0) concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 - dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -759,28 +461,20 @@ CHECKSUMS gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f - go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 - json-merge (7.1.0) kettle-dev (2.3.9) - kettle-drift (1.0.6) sha256=46eda08fa4411d1f3c6682a95eef1c9df4e94611b3949f49d4c7b43c0ed356a3 - kettle-jem (7.1.0) kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f kettle-soup-cover (3.0.4) kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa - kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 - markdown-merge (7.1.0) - markly (0.16.0) sha256=6f70d79e385b1efc9e171f74c81628826259039fe6c778e03c3924c71dac5511 - markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-x86_64-linux-gnu) sha256=379fae440b28915e3f19d752ce2dcf8465ed2b2fbefd2a7ca0dd497bc981a06a nomono (1.0.9) @@ -790,20 +484,16 @@ CHECKSUMS parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 - parslet-toml-merge (7.1.0) - plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 - psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 - rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb @@ -842,15 +532,12 @@ CHECKSUMS ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 - rust-merge (7.1.0) - service_actor (3.9.4) sha256=e63b523630b9a7e62959b2a90113b08d2565b5de9c148557b281ef847c9539ce silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed - smorg-rb (7.1.0) sorbet-runtime (0.6.13351) sha256=f8fee17c6e3edf835dc6823d26afb9a7c8969c6710d1fabe2fb43f4e0c15c64f standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b @@ -865,20 +552,15 @@ CHECKSUMS timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.5) sha256=b852f924287ffb58a440856e862b056c8ad97e74b4b2526cee43e0771f40c25c - toml (0.3.0) sha256=0a91d0f76a9036e84e44f95693b12f58d358c1df3ac8e3b5271f2056ecc6e4b9 - toml-merge (7.1.0) - toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 - typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 webrick (1.9.2) sha256=beb4a15fc474defed24a3bda4ffd88a490d517c9e4e6118c3edce59e45864131 yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 - yaml-merge (7.1.0) yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd @@ -886,7 +568,6 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 - zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH From 34c5da81a047b2a63c99a1cbf141fb7a817490f5 Mon Sep 17 00:00:00 2001 From: "Peter H. Boling" Date: Tue, 21 Jul 2026 18:39:32 -0600 Subject: [PATCH 183/188] =?UTF-8?q?=F0=9F=8E=A8=20Template=20bootstrap=20b?= =?UTF-8?q?y=20kettle-jem=20v7.1.0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gems/ast-crispr-markdown-markly/Gemfile.lock | 26 +++---- gems/json-merge/Gemfile | 70 +++++++++---------- gems/json-merge/Gemfile.lock | 4 +- gems/json-merge/Rakefile | 18 ++--- gems/json-merge/bin/yard | 2 +- .../modular/benchmark/r4/v0.5.gemfile | 2 +- .../gemfiles/modular/benchmark/vHEAD.gemfile | 2 +- .../gemfiles/modular/cgi/r4/v0.5.gemfile | 2 +- .../gemfiles/modular/cgi/vHEAD.gemfile | 2 +- .../gemfiles/modular/coverage.gemfile | 6 +- .../gemfiles/modular/coverage_local.gemfile | 42 ++++++----- .../json-merge/gemfiles/modular/debug.gemfile | 4 +- .../gemfiles/modular/documentation.gemfile | 24 +++---- .../modular/documentation_local.gemfile | 30 ++++---- .../gemfiles/modular/erb/r2/v3.0.gemfile | 2 +- .../gemfiles/modular/erb/r3/v5.0.gemfile | 2 +- .../gemfiles/modular/erb/r4/v5.0.gemfile | 2 +- .../gemfiles/modular/erb/vHEAD.gemfile | 2 +- .../modular/json/truffleruby_22_3.gemfile | 4 +- .../modular/json/truffleruby_23_0.gemfile | 4 +- .../modular/json/truffleruby_23_1.gemfile | 4 +- .../gemfiles/modular/mutex_m/r2/v0.3.gemfile | 2 +- .../gemfiles/modular/mutex_m/r3/v0.3.gemfile | 2 +- .../gemfiles/modular/mutex_m/r4/v0.3.gemfile | 2 +- .../gemfiles/modular/mutex_m/vHEAD.gemfile | 2 +- .../gemfiles/modular/optional.gemfile | 4 +- .../json-merge/gemfiles/modular/rspec.gemfile | 8 +-- .../gemfiles/modular/runtime_heads.gemfile | 2 +- .../gemfiles/modular/stringio/r2/v3.0.gemfile | 2 +- .../gemfiles/modular/stringio/r3/v3.0.gemfile | 2 +- .../gemfiles/modular/stringio/r4/v3.0.gemfile | 2 +- .../gemfiles/modular/stringio/vHEAD.gemfile | 2 +- .../json-merge/gemfiles/modular/style.gemfile | 24 +++---- .../gemfiles/modular/style_local.gemfile | 32 ++++----- .../gemfiles/modular/templating.gemfile | 12 ++-- .../gemfiles/modular/templating_local.gemfile | 44 ++++++------ .../gemfiles/modular/webrick/r4/v1.9.gemfile | 2 +- .../gemfiles/modular/webrick/vHEAD.gemfile | 2 +- .../gemfiles/modular/x_std_libs.gemfile | 14 ++-- .../modular/x_std_libs/r2/libs.gemfile | 6 +- .../modular/x_std_libs/r3/libs.gemfile | 6 +- .../modular/x_std_libs/r4/libs.gemfile | 12 ++-- .../gemfiles/modular/x_std_libs/vHEAD.gemfile | 12 ++-- gems/json-merge/lib/json/merge/version.rb | 2 +- gems/json-merge/spec/spec_helper.rb | 10 +-- 45 files changed, 220 insertions(+), 242 deletions(-) diff --git a/gems/ast-crispr-markdown-markly/Gemfile.lock b/gems/ast-crispr-markdown-markly/Gemfile.lock index d29ef07a3..21158afcc 100644 --- a/gems/ast-crispr-markdown-markly/Gemfile.lock +++ b/gems/ast-crispr-markdown-markly/Gemfile.lock @@ -6,22 +6,6 @@ PATH markly-merge (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) -PATH - remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr - specs: - ast-crispr (7.1.0) - ast-merge (= 7.1.0) - service_actor (~> 3.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/markly-merge - specs: - markly-merge (7.1.0) - markdown-merge (= 7.1.0) - markly (~> 0.9) - version_gem (~> 1.1, >= 1.1.9) - GEM remote: https://gem.coop/ specs: @@ -37,6 +21,10 @@ GEM rubocop (>= 1.0) version_gem (~> 1.1, >= 1.1.14) ast (2.4.3) + ast-crispr (7.1.0) + ast-merge (= 7.1.0) + service_actor (~> 3.9) + version_gem (~> 1.1, >= 1.1.9) ast-merge (7.1.0) benchmark token-resolver (~> 2.0, >= 2.0.4) @@ -146,6 +134,10 @@ GEM tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) markly (0.16.0) + markly-merge (7.1.0) + markdown-merge (= 7.1.0) + markly (~> 0.9) + version_gem (~> 1.1, >= 1.1.9) mutex_m (0.3.0) nokogiri (1.19.4-x86_64-linux-gnu) racc (~> 1.4) @@ -406,7 +398,6 @@ DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) appraisal2-rubocop (~> 1.0, >= 1.0.0) - ast-crispr! ast-crispr-markdown-markly! benchmark (~> 0.5, >= 0.5.0) bundler-audit (~> 0.9.3) @@ -421,7 +412,6 @@ DEPENDENCIES kettle-test (~> 2.0, >= 2.0.9) kramdown (~> 2.5, >= 2.5.2) kramdown-parser-gfm (~> 1.1) - markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) rake (~> 13.0) diff --git a/gems/json-merge/Gemfile b/gems/json-merge/Gemfile index 0ae8d7909..c35ca08f1 100644 --- a/gems/json-merge/Gemfile +++ b/gems/json-merge/Gemfile @@ -6,7 +6,7 @@ # kettle-jem will then preserve content between those markers across template runs. # kettle-jem:unfreeze -source "https://gem.coop" +source 'https://gem.coop' git_source(:codeberg) { |repo_name| "https://codeberg.org/#{repo_name}" } git_source(:gitlab) { |repo_name| "https://gitlab.com/#{repo_name}" } @@ -19,58 +19,54 @@ git_source(:gitlab) { |repo_name| "https://gitlab.com/#{repo_name}" } gemspec # Local workspace dependency wiring for *_local.gemfile overrides -nomono_requirements = ["~> 1.0", ">= 1.0.8"] -gem "nomono", *nomono_requirements, require: false # ruby >= 2.2 +nomono_requirements = ['~> 1.0', '>= 1.0.8'] +gem 'nomono', *nomono_requirements, require: false # ruby >= 2.2 # Direct sibling dependencies (env-switched via STRUCTUREDMERGE_DEV) direct_sibling_gems = %w[ ast-merge tree_haver ] -direct_sibling_dev = ENV.fetch("STRUCTUREDMERGE_DEV", "") +direct_sibling_dev = ENV.fetch('STRUCTUREDMERGE_DEV', '') direct_sibling_local = !direct_sibling_dev.empty? && !%w[false 0 no off].include?(direct_sibling_dev.downcase) -direct_sibling_templating = ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? +direct_sibling_templating = ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero?) - direct_sibling_dev_was_set = ENV.key?("STRUCTUREDMERGE_DEV") - direct_sibling_dev_original = ENV.fetch("STRUCTUREDMERGE_DEV", nil) + (direct_sibling_local || + ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) + direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') + direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) begin nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path("Gemfile.lock", __dir__) + nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == "nomono" } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - if nomono_locked - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] - end - end - Kernel.send(:gem, "nomono", *nomono_activation_requirements) - require "nomono/bundler" - if direct_sibling_templating && !direct_sibling_local - ENV["STRUCTUREDMERGE_DEV"] = File.expand_path("..", __dir__) + Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked end + Kernel.send(:gem, 'nomono', *nomono_activation_requirements) + require 'nomono/bundler' + ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local eval_nomono_gems( gems: direct_sibling_gems, - prefix: "STRUCTUREDMERGE", - path_env: "STRUCTUREDMERGE_DEV", - root: ["src", "my", "structuredmerge"] + prefix: 'STRUCTUREDMERGE', + path_env: 'STRUCTUREDMERGE_DEV', + root: %w[src my structuredmerge] ) rescue LoadError - warn "Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies." + warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' ensure if direct_sibling_templating && !direct_sibling_local if direct_sibling_dev_was_set - ENV["STRUCTUREDMERGE_DEV"] = direct_sibling_dev_original + ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original else - ENV.delete("STRUCTUREDMERGE_DEV") + ENV.delete('STRUCTUREDMERGE_DEV') end end end @@ -197,28 +193,28 @@ if direct_sibling_gems.any? && end # Use released TSLP with the Ruby ABI platform-gem fix. -gem "tree_sitter_language_pack", "~> 1.13", ">= 1.13.3" +gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' # Templating (env-switched: STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local paths) -eval_gemfile "gemfiles/modular/templating.gemfile" if ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? +eval_gemfile 'gemfiles/modular/templating.gemfile' if ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero? # Debugging -eval_gemfile "gemfiles/modular/debug.gemfile" +eval_gemfile 'gemfiles/modular/debug.gemfile' # Code Coverage (env-switched: KETTLE_DEV_DEV=true for local paths) -eval_gemfile "gemfiles/modular/coverage.gemfile" +eval_gemfile 'gemfiles/modular/coverage.gemfile' # Linting -eval_gemfile "gemfiles/modular/style.gemfile" +eval_gemfile 'gemfiles/modular/style.gemfile' # Documentation -eval_gemfile "gemfiles/modular/documentation.gemfile" +eval_gemfile 'gemfiles/modular/documentation.gemfile' # Optional -eval_gemfile "gemfiles/modular/optional.gemfile" +eval_gemfile 'gemfiles/modular/optional.gemfile' ### Std Lib Extracted Gems -eval_gemfile "gemfiles/modular/x_std_libs.gemfile" +eval_gemfile 'gemfiles/modular/x_std_libs.gemfile' # See unlocked_deps appraisal for more details on irb inclusion -gem "irb", "~> 1.17" # ruby >= 2.7 +gem 'irb', '~> 1.17' # ruby >= 2.7 diff --git a/gems/json-merge/Gemfile.lock b/gems/json-merge/Gemfile.lock index dd2e0b982..c3b631efa 100644 --- a/gems/json-merge/Gemfile.lock +++ b/gems/json-merge/Gemfile.lock @@ -7,7 +7,7 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/ast-merge specs: ast-merge (7.1.0) benchmark @@ -16,7 +16,7 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/tree_haver specs: tree_haver (7.1.0) citrus (~> 3.0) diff --git a/gems/json-merge/Rakefile b/gems/json-merge/Rakefile index eb14b860c..cd3637459 100644 --- a/gems/json-merge/Rakefile +++ b/gems/json-merge/Rakefile @@ -130,23 +130,23 @@ end ### DUPLICATE DRIFT TASKS begin - require "kettle/drift" + require 'kettle/drift' Kettle::Drift.install_tasks rescue LoadError - desc("(stub) kettle:drift:check is unavailable") - task("kettle:drift:check") do + desc('(stub) kettle:drift:check is unavailable') + task('kettle:drift:check') do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc("(stub) kettle:drift:update is unavailable") - task("kettle:drift:update") do + desc('(stub) kettle:drift:update is unavailable') + task('kettle:drift:update') do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc("(stub) kettle:drift:force_update is unavailable") - task("kettle:drift:force_update") do + desc('(stub) kettle:drift:force_update is unavailable') + task('kettle:drift:force_update') do warn("NOTE: kettle-drift isn't installed, or is disabled for #{RUBY_VERSION} in the current environment") end - desc("(stub) kettle:drift is unavailable") - task("kettle:drift" => "kettle:drift:update") + desc('(stub) kettle:drift is unavailable') + task('kettle:drift' => 'kettle:drift:update') end ### TEMPLATING TASKS diff --git a/gems/json-merge/bin/yard b/gems/json-merge/bin/yard index a7e8b6eed..5d516ad6f 100755 --- a/gems/json-merge/bin/yard +++ b/gems/json-merge/bin/yard @@ -12,4 +12,4 @@ # `yard` / `bin/yard`. Keep this binstub as a handoff to the task so # humans and tools that reach for `bin/yard` still run the full docs # workflow with post-processing hooks. -exec("bundle", "exec", "rake", "yard") +exec('bundle', 'exec', 'rake', 'yard') diff --git a/gems/json-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile b/gems/json-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile index dec650815..b8392fab0 100644 --- a/gems/json-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile +++ b/gems/json-merge/gemfiles/modular/benchmark/r4/v0.5.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.1 -gem "benchmark", "~> 0.5", ">= 0.5.0" # Removed from Std Lib in Ruby 4.0 +gem 'benchmark', '~> 0.5', '>= 0.5.0' # Removed from Std Lib in Ruby 4.0 diff --git a/gems/json-merge/gemfiles/modular/benchmark/vHEAD.gemfile b/gems/json-merge/gemfiles/modular/benchmark/vHEAD.gemfile index e1eb20c5e..af214aafa 100644 --- a/gems/json-merge/gemfiles/modular/benchmark/vHEAD.gemfile +++ b/gems/json-merge/gemfiles/modular/benchmark/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.1 -gem "benchmark", github: "ruby/benchmark", branch: "master" +gem 'benchmark', github: 'ruby/benchmark', branch: 'master' diff --git a/gems/json-merge/gemfiles/modular/cgi/r4/v0.5.gemfile b/gems/json-merge/gemfiles/modular/cgi/r4/v0.5.gemfile index 19ed967c3..17ad97260 100644 --- a/gems/json-merge/gemfiles/modular/cgi/r4/v0.5.gemfile +++ b/gems/json-merge/gemfiles/modular/cgi/r4/v0.5.gemfile @@ -1 +1 @@ -gem "cgi", "~> 0.5" +gem 'cgi', '~> 0.5' diff --git a/gems/json-merge/gemfiles/modular/cgi/vHEAD.gemfile b/gems/json-merge/gemfiles/modular/cgi/vHEAD.gemfile index ef8b816ce..650fbf033 100644 --- a/gems/json-merge/gemfiles/modular/cgi/vHEAD.gemfile +++ b/gems/json-merge/gemfiles/modular/cgi/vHEAD.gemfile @@ -1 +1 @@ -gem "cgi", ">= 0.5" +gem 'cgi', '>= 0.5' diff --git a/gems/json-merge/gemfiles/modular/coverage.gemfile b/gems/json-merge/gemfiles/modular/coverage.gemfile index 52d737872..b93014b6b 100644 --- a/gems/json-merge/gemfiles/modular/coverage.gemfile +++ b/gems/json-merge/gemfiles/modular/coverage.gemfile @@ -4,11 +4,11 @@ # Set KETTLE_DEV_DEV=true for local development with path-based dependencies. # When false (default / CI), remote released gems are used. -if ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false").zero? +if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? # Coverage (remote/released) platform :mri do - gem "kettle-soup-cover", "~> 3.0", ">= 3.0.3", require: false + gem 'kettle-soup-cover', '~> 3.0', '>= 3.0.3', require: false end else - eval_gemfile "coverage_local.gemfile" + eval_gemfile 'coverage_local.gemfile' end diff --git a/gems/json-merge/gemfiles/modular/coverage_local.gemfile b/gems/json-merge/gemfiles/modular/coverage_local.gemfile index cacdc07c1..b6836b5de 100644 --- a/gems/json-merge/gemfiles/modular/coverage_local.gemfile +++ b/gems/json-merge/gemfiles/modular/coverage_local.gemfile @@ -11,21 +11,19 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] -nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) +nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] +nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == "nomono" } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - if nomono_locked - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] - end + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked end -Kernel.send(:gem, "nomono", *nomono_activation_requirements) -require "nomono/bundler" +Kernel.send(:gem, 'nomono', *nomono_activation_requirements) +require 'nomono/bundler' local_gems = %w[kettle-dev kettle-test kettle-soup-cover kettle-drift] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) @@ -35,21 +33,21 @@ local_gems_to_eval = local_gems - %w[json-merge] - declared_gems platform :mri do eval_nomono_gems( gems: local_gems_to_eval, - prefix: "KETTLE_DEV", - path_env: "KETTLE_DEV_DEV", - vendored_gems_env: "VENDORED_GEMS", - vendor_gem_dir_env: "VENDOR_GEM_DIR", - debug_env: "KETTLE_DEV_DEBUG" + prefix: 'KETTLE_DEV', + path_env: 'KETTLE_DEV_DEV', + vendored_gems_env: 'VENDORED_GEMS', + vendor_gem_dir_env: 'VENDOR_GEM_DIR', + debug_env: 'KETTLE_DEV_DEBUG' ) - if ENV.fetch("GALTZO_FLOSS_DEV", "false").casecmp("false") != 0 + if ENV.fetch('GALTZO_FLOSS_DEV', 'false').casecmp('false') != 0 eval_nomono_gems( gems: %w[turbo_tests2], - prefix: "GALTZO_FLOSS", - path_env: "GALTZO_FLOSS_DEV", - vendored_gems_env: "GALTZO_FLOSS_VENDORED_GEMS", - vendor_gem_dir_env: "GALTZO_FLOSS_VENDOR_GEM_DIR", - debug_env: "GALTZO_FLOSS_DEBUG" + prefix: 'GALTZO_FLOSS', + path_env: 'GALTZO_FLOSS_DEV', + vendored_gems_env: 'GALTZO_FLOSS_VENDORED_GEMS', + vendor_gem_dir_env: 'GALTZO_FLOSS_VENDOR_GEM_DIR', + debug_env: 'GALTZO_FLOSS_DEBUG' ) end end diff --git a/gems/json-merge/gemfiles/modular/debug.gemfile b/gems/json-merge/gemfiles/modular/debug.gemfile index 4e15b1a3a..eed8d4d1e 100644 --- a/gems/json-merge/gemfiles/modular/debug.gemfile +++ b/gems/json-merge/gemfiles/modular/debug.gemfile @@ -13,10 +13,10 @@ platform :mri do # Debugging - Ensure ENV["DEBUG"] == "true" to use debuggers within spec suite # Use binding.break, binding.b, or debugger in code - gem "debug", ">= 1.1" # ruby >= 2.7 + gem 'debug', '>= 1.1' # ruby >= 2.7 # Dev Console - Binding.pry - Irb replacement # gem "pry", "~> 0.14" # ruby >= 2.0 end -gem "gem_bench", "~> 2.0", ">= 2.0.5" +gem 'gem_bench', '~> 2.0', '>= 2.0.5' diff --git a/gems/json-merge/gemfiles/modular/documentation.gemfile b/gems/json-merge/gemfiles/modular/documentation.gemfile index d8215416e..9d4535f12 100644 --- a/gems/json-merge/gemfiles/modular/documentation.gemfile +++ b/gems/json-merge/gemfiles/modular/documentation.gemfile @@ -7,20 +7,20 @@ # # Documentation -gem "kramdown", "~> 2.5", ">= 2.5.2", require: false # Ruby >= 2.5 -gem "kramdown-parser-gfm", "~> 1.1", require: false # Ruby >= 2.3 -gem "yaml-converter", "~> 0.2", ">= 0.2.3", require: false # Ruby >= 3.2 -gem "yard", "~> 0.9", ">= 0.9.45", require: false -gem "yard-junk", "~> 0.1", ">= 0.1.0", require: false # Ruby >= 3.1 -gem "yard-relative_markdown_links", "~> 0.6", require: false +gem 'kramdown', '~> 2.5', '>= 2.5.2', require: false # Ruby >= 2.5 +gem 'kramdown-parser-gfm', '~> 1.1', require: false # Ruby >= 2.3 +gem 'yaml-converter', '~> 0.2', '>= 0.2.3', require: false # Ruby >= 3.2 +gem 'yard', '~> 0.9', '>= 0.9.45', require: false +gem 'yard-junk', '~> 0.1', '>= 0.1.0', require: false # Ruby >= 3.1 +gem 'yard-relative_markdown_links', '~> 0.6', require: false -if ENV.fetch("GALTZO_FLOSS_DEV", "false").casecmp("false").zero? - gem "yard-fence", "~> 0.9", ">= 0.9.6", require: false # Ruby >= 3.2 - gem "yard-timekeeper", "~> 0.2", ">= 0.2.4", require: false - gem "yard-yaml", "~> 0.2", ">= 0.2.3", require: false +if ENV.fetch('GALTZO_FLOSS_DEV', 'false').casecmp('false').zero? + gem 'yard-fence', '~> 0.9', '>= 0.9.6', require: false # Ruby >= 3.2 + gem 'yard-timekeeper', '~> 0.2', '>= 0.2.4', require: false + gem 'yard-yaml', '~> 0.2', '>= 0.2.3', require: false else - eval_gemfile "documentation_local.gemfile" + eval_gemfile 'documentation_local.gemfile' end # Std Lib extractions -gem "rdoc", "~> 6.11", require: false unless ENV.fetch("KJ_FRAMEWORK_MATRIX_GEM", "") == "rdoc" +gem 'rdoc', '~> 6.11', require: false unless ENV.fetch('KJ_FRAMEWORK_MATRIX_GEM', '') == 'rdoc' diff --git a/gems/json-merge/gemfiles/modular/documentation_local.gemfile b/gems/json-merge/gemfiles/modular/documentation_local.gemfile index 65eff94d9..35970ca76 100644 --- a/gems/json-merge/gemfiles/modular/documentation_local.gemfile +++ b/gems/json-merge/gemfiles/modular/documentation_local.gemfile @@ -11,21 +11,19 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] -nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) +nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] +nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == "nomono" } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - if nomono_locked - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] - end + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked end -Kernel.send(:gem, "nomono", *nomono_activation_requirements) -require "nomono/bundler" +Kernel.send(:gem, 'nomono', *nomono_activation_requirements) +require 'nomono/bundler' local_gems = %w[yard-fence yard-timekeeper yard-yaml] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) @@ -34,9 +32,9 @@ local_gems_to_eval = local_gems - %w[json-merge] - declared_gems # export GALTZO_FLOSS_DEV=/path/to/galtzo-floss eval_nomono_gems( gems: local_gems_to_eval, - prefix: "GALTZO_FLOSS", - path_env: "GALTZO_FLOSS_DEV", - vendored_gems_env: "GALTZO_FLOSS_VENDORED_GEMS", - vendor_gem_dir_env: "GALTZO_FLOSS_VENDOR_GEM_DIR", - debug_env: "GALTZO_FLOSS_DEBUG" + prefix: 'GALTZO_FLOSS', + path_env: 'GALTZO_FLOSS_DEV', + vendored_gems_env: 'GALTZO_FLOSS_VENDORED_GEMS', + vendor_gem_dir_env: 'GALTZO_FLOSS_VENDOR_GEM_DIR', + debug_env: 'GALTZO_FLOSS_DEBUG' ) diff --git a/gems/json-merge/gemfiles/modular/erb/r2/v3.0.gemfile b/gems/json-merge/gemfiles/modular/erb/r2/v3.0.gemfile index c03bd8d85..7c83a239b 100644 --- a/gems/json-merge/gemfiles/modular/erb/r2/v3.0.gemfile +++ b/gems/json-merge/gemfiles/modular/erb/r2/v3.0.gemfile @@ -1 +1 @@ -gem "erb", "~> 3.0" # ruby >= 2.7.0 +gem 'erb', '~> 3.0' # ruby >= 2.7.0 diff --git a/gems/json-merge/gemfiles/modular/erb/r3/v5.0.gemfile b/gems/json-merge/gemfiles/modular/erb/r3/v5.0.gemfile index 1bd029cc1..ec7ff451f 100644 --- a/gems/json-merge/gemfiles/modular/erb/r3/v5.0.gemfile +++ b/gems/json-merge/gemfiles/modular/erb/r3/v5.0.gemfile @@ -1 +1 @@ -gem "erb", "~> 6.0", ">= 6.0.6" # ruby >= 3.2.0 +gem 'erb', '~> 6.0', '>= 6.0.6' # ruby >= 3.2.0 diff --git a/gems/json-merge/gemfiles/modular/erb/r4/v5.0.gemfile b/gems/json-merge/gemfiles/modular/erb/r4/v5.0.gemfile index 1bd029cc1..ec7ff451f 100644 --- a/gems/json-merge/gemfiles/modular/erb/r4/v5.0.gemfile +++ b/gems/json-merge/gemfiles/modular/erb/r4/v5.0.gemfile @@ -1 +1 @@ -gem "erb", "~> 6.0", ">= 6.0.6" # ruby >= 3.2.0 +gem 'erb', '~> 6.0', '>= 6.0.6' # ruby >= 3.2.0 diff --git a/gems/json-merge/gemfiles/modular/erb/vHEAD.gemfile b/gems/json-merge/gemfiles/modular/erb/vHEAD.gemfile index 48fee4218..ea0101185 100644 --- a/gems/json-merge/gemfiles/modular/erb/vHEAD.gemfile +++ b/gems/json-merge/gemfiles/modular/erb/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 3.2 -gem "erb", github: "ruby/erb", branch: "master" +gem 'erb', github: 'ruby/erb', branch: 'master' diff --git a/gems/json-merge/gemfiles/modular/json/truffleruby_22_3.gemfile b/gems/json-merge/gemfiles/modular/json/truffleruby_22_3.gemfile index b0e69ab11..9b2f8d96a 100644 --- a/gems/json-merge/gemfiles/modular/json/truffleruby_22_3.gemfile +++ b/gems/json-merge/gemfiles/modular/json/truffleruby_22_3.gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -if RUBY_ENGINE == "truffleruby" && RUBY_ENGINE_VERSION.start_with?("22.3") +if RUBY_ENGINE == 'truffleruby' && RUBY_ENGINE_VERSION.start_with?('22.3') # TruffleRuby 22.3 ships the json default gem from its emulated MRI Ruby. - gem "json", "= 2.5.1" + gem 'json', '= 2.5.1' end diff --git a/gems/json-merge/gemfiles/modular/json/truffleruby_23_0.gemfile b/gems/json-merge/gemfiles/modular/json/truffleruby_23_0.gemfile index 7b2660a2b..d787a5ef4 100644 --- a/gems/json-merge/gemfiles/modular/json/truffleruby_23_0.gemfile +++ b/gems/json-merge/gemfiles/modular/json/truffleruby_23_0.gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -if RUBY_ENGINE == "truffleruby" && RUBY_ENGINE_VERSION.start_with?("23.0") +if RUBY_ENGINE == 'truffleruby' && RUBY_ENGINE_VERSION.start_with?('23.0') # TruffleRuby 23.0 ships the json default gem from its emulated MRI Ruby. - gem "json", "= 2.6.1" + gem 'json', '= 2.6.1' end diff --git a/gems/json-merge/gemfiles/modular/json/truffleruby_23_1.gemfile b/gems/json-merge/gemfiles/modular/json/truffleruby_23_1.gemfile index dfa21f2e4..d78486b0e 100644 --- a/gems/json-merge/gemfiles/modular/json/truffleruby_23_1.gemfile +++ b/gems/json-merge/gemfiles/modular/json/truffleruby_23_1.gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -if RUBY_ENGINE == "truffleruby" && RUBY_ENGINE_VERSION.start_with?("23.1") +if RUBY_ENGINE == 'truffleruby' && RUBY_ENGINE_VERSION.start_with?('23.1') # TruffleRuby 23.1 ships the json default gem from its emulated MRI Ruby. - gem "json", "= 2.6.3" + gem 'json', '= 2.6.3' end diff --git a/gems/json-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile b/gems/json-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile index 42e9d9bd4..e27f1bbae 100644 --- a/gems/json-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile +++ b/gems/json-merge/gemfiles/modular/mutex_m/r2/v0.3.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 -gem "mutex_m", "~> 0.2" +gem 'mutex_m', '~> 0.2' diff --git a/gems/json-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile b/gems/json-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile index 42e9d9bd4..e27f1bbae 100644 --- a/gems/json-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile +++ b/gems/json-merge/gemfiles/modular/mutex_m/r3/v0.3.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 -gem "mutex_m", "~> 0.2" +gem 'mutex_m', '~> 0.2' diff --git a/gems/json-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile b/gems/json-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile index 42e9d9bd4..e27f1bbae 100644 --- a/gems/json-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile +++ b/gems/json-merge/gemfiles/modular/mutex_m/r4/v0.3.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 -gem "mutex_m", "~> 0.2" +gem 'mutex_m', '~> 0.2' diff --git a/gems/json-merge/gemfiles/modular/mutex_m/vHEAD.gemfile b/gems/json-merge/gemfiles/modular/mutex_m/vHEAD.gemfile index 8af3b6fca..9dac2f6cb 100644 --- a/gems/json-merge/gemfiles/modular/mutex_m/vHEAD.gemfile +++ b/gems/json-merge/gemfiles/modular/mutex_m/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 (dependency of omniauth) -gem "mutex_m", github: "ruby/mutex_m", branch: "master" +gem 'mutex_m', github: 'ruby/mutex_m', branch: 'master' diff --git a/gems/json-merge/gemfiles/modular/optional.gemfile b/gems/json-merge/gemfiles/modular/optional.gemfile index 80bc45196..9ea429538 100644 --- a/gems/json-merge/gemfiles/modular/optional.gemfile +++ b/gems/json-merge/gemfiles/modular/optional.gemfile @@ -9,8 +9,8 @@ # Optional dependencies are not depended on directly, but may be used if present. # Required for curated binstubs generated by kettle-jem install -gem "rbs", ">= 3.0", require: false # ruby >= 3.1 +gem 'rbs', '>= 3.0', require: false # ruby >= 3.1 # Required for kettle-pre-release # URL parsing with Unicode support (falls back to URI if not available) -gem "addressable", ">= 2.8", "< 3" # ruby >= 2.2 +gem 'addressable', '>= 2.8', '< 3' # ruby >= 2.2 diff --git a/gems/json-merge/gemfiles/modular/rspec.gemfile b/gems/json-merge/gemfiles/modular/rspec.gemfile index 72fdf8b7f..2af210a41 100644 --- a/gems/json-merge/gemfiles/modular/rspec.gemfile +++ b/gems/json-merge/gemfiles/modular/rspec.gemfile @@ -1,4 +1,4 @@ -gem "rspec_junit_formatter", - github: "pboling/rspec_junit_formatter", - branch: "main", - ref: "9e6bcaaedd49477b62878ed568dc4ada5cc7cb5e" +gem 'rspec_junit_formatter', + github: 'pboling/rspec_junit_formatter', + branch: 'main', + ref: '9e6bcaaedd49477b62878ed568dc4ada5cc7cb5e' diff --git a/gems/json-merge/gemfiles/modular/runtime_heads.gemfile b/gems/json-merge/gemfiles/modular/runtime_heads.gemfile index 02f134c7f..ebf17c529 100644 --- a/gems/json-merge/gemfiles/modular/runtime_heads.gemfile +++ b/gems/json-merge/gemfiles/modular/runtime_heads.gemfile @@ -8,4 +8,4 @@ # Test against HEAD of runtime dependencies so we can proactively file bugs -eval_gemfile("x_std_libs/vHEAD.gemfile") +eval_gemfile('x_std_libs/vHEAD.gemfile') diff --git a/gems/json-merge/gemfiles/modular/stringio/r2/v3.0.gemfile b/gems/json-merge/gemfiles/modular/stringio/r2/v3.0.gemfile index e85bb18ee..3616f4e3a 100644 --- a/gems/json-merge/gemfiles/modular/stringio/r2/v3.0.gemfile +++ b/gems/json-merge/gemfiles/modular/stringio/r2/v3.0.gemfile @@ -2,4 +2,4 @@ # NOT SEMVER # Version 3.0.7 dropped support for Ruby <= 2.7 # Version 3.0.0 dropped support for Ruby <= 2.4 -gem "stringio", ">= 3.0" +gem 'stringio', '>= 3.0' diff --git a/gems/json-merge/gemfiles/modular/stringio/r3/v3.0.gemfile b/gems/json-merge/gemfiles/modular/stringio/r3/v3.0.gemfile index e85bb18ee..3616f4e3a 100644 --- a/gems/json-merge/gemfiles/modular/stringio/r3/v3.0.gemfile +++ b/gems/json-merge/gemfiles/modular/stringio/r3/v3.0.gemfile @@ -2,4 +2,4 @@ # NOT SEMVER # Version 3.0.7 dropped support for Ruby <= 2.7 # Version 3.0.0 dropped support for Ruby <= 2.4 -gem "stringio", ">= 3.0" +gem 'stringio', '>= 3.0' diff --git a/gems/json-merge/gemfiles/modular/stringio/r4/v3.0.gemfile b/gems/json-merge/gemfiles/modular/stringio/r4/v3.0.gemfile index e85bb18ee..3616f4e3a 100644 --- a/gems/json-merge/gemfiles/modular/stringio/r4/v3.0.gemfile +++ b/gems/json-merge/gemfiles/modular/stringio/r4/v3.0.gemfile @@ -2,4 +2,4 @@ # NOT SEMVER # Version 3.0.7 dropped support for Ruby <= 2.7 # Version 3.0.0 dropped support for Ruby <= 2.4 -gem "stringio", ">= 3.0" +gem 'stringio', '>= 3.0' diff --git a/gems/json-merge/gemfiles/modular/stringio/vHEAD.gemfile b/gems/json-merge/gemfiles/modular/stringio/vHEAD.gemfile index 5f2a74126..78f5f5d8a 100644 --- a/gems/json-merge/gemfiles/modular/stringio/vHEAD.gemfile +++ b/gems/json-merge/gemfiles/modular/stringio/vHEAD.gemfile @@ -1,2 +1,2 @@ # Ruby >= 2.5 (dependency of omniauth) -gem "stringio", github: "ruby/stringio", branch: "master" +gem 'stringio', github: 'ruby/stringio', branch: 'master' diff --git a/gems/json-merge/gemfiles/modular/style.gemfile b/gems/json-merge/gemfiles/modular/style.gemfile index 35de4dcd6..4dbcc02c0 100644 --- a/gems/json-merge/gemfiles/modular/style.gemfile +++ b/gems/json-merge/gemfiles/modular/style.gemfile @@ -9,23 +9,23 @@ # Style tasks run on the latest Ruby; RuboCop-LTS selects the compatibility # rules for the configured Ruby floor independently from task dependency floors. -gem "reek", "~> 6.5", ">= 6.5.0" +gem 'reek', '~> 6.5', '>= 6.5.0' platform :mri do - gem "appraisal2-rubocop", "~> 1.0", ">= 1.0.0", require: false - gem "rubocop-gradual", "~> 0.4", ">= 0.4.0" - gem "rubocop-minitest", "~> 0.40", ">= 0.40.0" - gem "rubocop-on-rbs", "~> 2.0", ">= 2.0.0" # ruby >= 3.2.0 + gem 'appraisal2-rubocop', '~> 1.0', '>= 1.0.0', require: false + gem 'rubocop-gradual', '~> 0.4', '>= 0.4.0' + gem 'rubocop-minitest', '~> 0.40', '>= 0.40.0' + gem 'rubocop-on-rbs', '~> 2.0', '>= 2.0.0' # ruby >= 3.2.0 # gem "rubocop", "~> 1.73", ">= 1.73.2" # constrained by standard - gem "rubocop-packaging", "~> 0.6", ">= 0.6.0" - gem "standard", "~> 1.56", ">= 1.56.0" + gem 'rubocop-packaging', '~> 0.6', '>= 0.6.0' + gem 'standard', '~> 1.56', '>= 1.56.0' - if ENV.fetch("RUBOCOP_LTS_LOCAL", "false").casecmp("false").zero? + if ENV.fetch('RUBOCOP_LTS_LOCAL', 'false').casecmp('false').zero? declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) - gem "rubocop-lts", "~> 24.2", ">= 24.2.1" unless declared_gems.include?("rubocop-lts") - gem "rubocop-lts-rspec", "~> 1.0", ">= 1.0.5" unless declared_gems.include?("rubocop-lts-rspec") - gem "rubocop-ruby3_2", "~> 3.0", ">= 3.0.6" unless declared_gems.include?("rubocop-ruby3_2") + gem 'rubocop-lts', '~> 24.2', '>= 24.2.1' unless declared_gems.include?('rubocop-lts') + gem 'rubocop-lts-rspec', '~> 1.0', '>= 1.0.5' unless declared_gems.include?('rubocop-lts-rspec') + gem 'rubocop-ruby3_2', '~> 3.0', '>= 3.0.6' unless declared_gems.include?('rubocop-ruby3_2') else - eval_gemfile("style_local.gemfile") + eval_gemfile('style_local.gemfile') end end diff --git a/gems/json-merge/gemfiles/modular/style_local.gemfile b/gems/json-merge/gemfiles/modular/style_local.gemfile index cdcbeb586..269a58c92 100644 --- a/gems/json-merge/gemfiles/modular/style_local.gemfile +++ b/gems/json-merge/gemfiles/modular/style_local.gemfile @@ -14,21 +14,19 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] -nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) +nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] +nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == "nomono" } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - if nomono_locked - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] - end + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked end -Kernel.send(:gem, "nomono", *nomono_activation_requirements) -require "nomono/bundler" +Kernel.send(:gem, 'nomono', *nomono_activation_requirements) +require 'nomono/bundler' local_gems = %w[rubocop-lts rubocop-lts-rspec rubocop-ruby3_2 standard-rubocop-lts] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) @@ -38,11 +36,11 @@ local_gems_to_eval = local_gems - %w[json-merge] - declared_gems platform :mri do eval_nomono_gems( gems: local_gems_to_eval, - prefix: "RUBOCOP_LTS", - path_env: "RUBOCOP_LTS_LOCAL", - vendored_gems_env: "VENDORED_GEMS", - vendor_gem_dir_env: "VENDOR_GEM_DIR", - debug_env: "RUBOCOP_LTS_DEBUG", - root: ["src", "rubocop-lts"] + prefix: 'RUBOCOP_LTS', + path_env: 'RUBOCOP_LTS_LOCAL', + vendored_gems_env: 'VENDORED_GEMS', + vendor_gem_dir_env: 'VENDOR_GEM_DIR', + debug_env: 'RUBOCOP_LTS_DEBUG', + root: %w[src rubocop-lts] ) end diff --git a/gems/json-merge/gemfiles/modular/templating.gemfile b/gems/json-merge/gemfiles/modular/templating.gemfile index 47138ffbb..a672de184 100644 --- a/gems/json-merge/gemfiles/modular/templating.gemfile +++ b/gems/json-merge/gemfiles/modular/templating.gemfile @@ -1,18 +1,18 @@ # frozen_string_literal: true -structuredmerge_remote = ENV.fetch("STRUCTUREDMERGE_DEV", "false").casecmp("false").zero? -kettle_remote = ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false").zero? +structuredmerge_remote = ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false').zero? +kettle_remote = ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false').zero? if structuredmerge_remote # Parser dependencies for released installs. - gem "tree_sitter_language_pack", "~> 1.13", ">= 1.13.3" + gem 'tree_sitter_language_pack', '~> 1.13', '>= 1.13.3' # Merge recipes for released installs. - gem "kettle-jem", ">= 7.0" + gem 'kettle-jem', '>= 7.0' end if kettle_remote # Template/plugin checks for released installs. - gem "kettle-drift", "~> 1.0", ">= 1.0.6", require: false + gem 'kettle-drift', '~> 1.0', '>= 1.0.6', require: false end # Set STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local development with path-based dependencies. @@ -21,4 +21,4 @@ end # # Set KETTLE_DEV_DEV=/path/to/my for local development with Kettle plugin gems. # When false (default / CI), released Kettle plugin gems are used. -eval_gemfile "templating_local.gemfile" unless structuredmerge_remote && kettle_remote +eval_gemfile 'templating_local.gemfile' unless structuredmerge_remote && kettle_remote diff --git a/gems/json-merge/gemfiles/modular/templating_local.gemfile b/gems/json-merge/gemfiles/modular/templating_local.gemfile index 25573dcc8..3a458a7d0 100644 --- a/gems/json-merge/gemfiles/modular/templating_local.gemfile +++ b/gems/json-merge/gemfiles/modular/templating_local.gemfile @@ -12,21 +12,19 @@ # Bundler then aborts with "already activated nomono X, but your Gemfile # requires nomono Y". Prefer the locked compatible version when present, then # activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] -nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) +nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] +nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) if File.file?(nomono_lockfile) nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == "nomono" } + .new(Bundler.read_file(nomono_lockfile)) + .specs + .find { |spec| spec.name == 'nomono' } nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - if nomono_locked - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] - end + Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) + nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked end -Kernel.send(:gem, "nomono", *nomono_activation_requirements) -require "nomono/bundler" +Kernel.send(:gem, 'nomono', *nomono_activation_requirements) +require 'nomono/bundler' structuredmerge_local_gems = %w[ tree_haver @@ -69,25 +67,25 @@ structuredmerge_local_gems_to_eval = structuredmerge_local_gems - %w[json-merge] kettle_dev_local_gems_to_eval = kettle_dev_local_gems - %w[json-merge] - declared_gems platform :mri do - if ENV.fetch("STRUCTUREDMERGE_DEV", "false").casecmp("false") != 0 + if ENV.fetch('STRUCTUREDMERGE_DEV', 'false').casecmp('false') != 0 eval_nomono_gems( gems: structuredmerge_local_gems_to_eval, - prefix: "STRUCTUREDMERGE", - path_env: "STRUCTUREDMERGE_DEV", - vendored_gems_env: "VENDORED_GEMS", - vendor_gem_dir_env: "VENDOR_GEM_DIR", - debug_env: "STRUCTUREDMERGE_DEBUG" + prefix: 'STRUCTUREDMERGE', + path_env: 'STRUCTUREDMERGE_DEV', + vendored_gems_env: 'VENDORED_GEMS', + vendor_gem_dir_env: 'VENDOR_GEM_DIR', + debug_env: 'STRUCTUREDMERGE_DEBUG' ) end - if ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false") != 0 + if ENV.fetch('KETTLE_DEV_DEV', 'false').casecmp('false') != 0 eval_nomono_gems( gems: kettle_dev_local_gems_to_eval, - prefix: "KETTLE_DEV", - path_env: "KETTLE_DEV_DEV", - vendored_gems_env: "VENDORED_GEMS", - vendor_gem_dir_env: "VENDOR_GEM_DIR", - debug_env: "KETTLE_DEV_DEBUG" + prefix: 'KETTLE_DEV', + path_env: 'KETTLE_DEV_DEV', + vendored_gems_env: 'VENDORED_GEMS', + vendor_gem_dir_env: 'VENDOR_GEM_DIR', + debug_env: 'KETTLE_DEV_DEBUG' ) end end diff --git a/gems/json-merge/gemfiles/modular/webrick/r4/v1.9.gemfile b/gems/json-merge/gemfiles/modular/webrick/r4/v1.9.gemfile index eaab4a473..b1329ba84 100644 --- a/gems/json-merge/gemfiles/modular/webrick/r4/v1.9.gemfile +++ b/gems/json-merge/gemfiles/modular/webrick/r4/v1.9.gemfile @@ -1 +1 @@ -gem "webrick", "~> 1.9" +gem 'webrick', '~> 1.9' diff --git a/gems/json-merge/gemfiles/modular/webrick/vHEAD.gemfile b/gems/json-merge/gemfiles/modular/webrick/vHEAD.gemfile index 8a789b634..c7e6f81a1 100644 --- a/gems/json-merge/gemfiles/modular/webrick/vHEAD.gemfile +++ b/gems/json-merge/gemfiles/modular/webrick/vHEAD.gemfile @@ -1 +1 @@ -gem "webrick", ">= 1.9" +gem 'webrick', '>= 1.9' diff --git a/gems/json-merge/gemfiles/modular/x_std_libs.gemfile b/gems/json-merge/gemfiles/modular/x_std_libs.gemfile index 77aad43f2..b1f43c097 100644 --- a/gems/json-merge/gemfiles/modular/x_std_libs.gemfile +++ b/gems/json-merge/gemfiles/modular/x_std_libs.gemfile @@ -1,12 +1,12 @@ ### Std Lib Extracted Gems ruby_version = Gem::Version.new(RUBY_VERSION) -if ruby_version >= Gem::Version.new("4.0") - eval_gemfile "x_std_libs/r4/libs.gemfile" -elsif ruby_version >= Gem::Version.new("3.2") - eval_gemfile "x_std_libs/r3/libs.gemfile" -elsif ruby_version >= Gem::Version.new("3.1") - eval_gemfile "x_std_libs/r3.1/libs.gemfile" +if ruby_version >= Gem::Version.new('4.0') + eval_gemfile 'x_std_libs/r4/libs.gemfile' +elsif ruby_version >= Gem::Version.new('3.2') + eval_gemfile 'x_std_libs/r3/libs.gemfile' +elsif ruby_version >= Gem::Version.new('3.1') + eval_gemfile 'x_std_libs/r3.1/libs.gemfile' else - eval_gemfile "x_std_libs/r2/libs.gemfile" + eval_gemfile 'x_std_libs/r2/libs.gemfile' end diff --git a/gems/json-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile b/gems/json-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile index 441c4f03a..16a5e3d70 100644 --- a/gems/json-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile +++ b/gems/json-merge/gemfiles/modular/x_std_libs/r2/libs.gemfile @@ -1,3 +1,3 @@ -eval_gemfile "../../erb/r2/v3.0.gemfile" -eval_gemfile "../../mutex_m/r2/v0.3.gemfile" -eval_gemfile "../../stringio/r2/v3.0.gemfile" +eval_gemfile '../../erb/r2/v3.0.gemfile' +eval_gemfile '../../mutex_m/r2/v0.3.gemfile' +eval_gemfile '../../stringio/r2/v3.0.gemfile' diff --git a/gems/json-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile b/gems/json-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile index c293a3ddd..220ff95c1 100644 --- a/gems/json-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile +++ b/gems/json-merge/gemfiles/modular/x_std_libs/r3/libs.gemfile @@ -1,3 +1,3 @@ -eval_gemfile "../../erb/r3/v5.0.gemfile" -eval_gemfile "../../mutex_m/r3/v0.3.gemfile" -eval_gemfile "../../stringio/r3/v3.0.gemfile" +eval_gemfile '../../erb/r3/v5.0.gemfile' +eval_gemfile '../../mutex_m/r3/v0.3.gemfile' +eval_gemfile '../../stringio/r3/v3.0.gemfile' diff --git a/gems/json-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile b/gems/json-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile index eb5574247..e2f6501eb 100644 --- a/gems/json-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile +++ b/gems/json-merge/gemfiles/modular/x_std_libs/r4/libs.gemfile @@ -1,6 +1,6 @@ -eval_gemfile "../../erb/r4/v5.0.gemfile" -eval_gemfile "../../mutex_m/r4/v0.3.gemfile" -eval_gemfile "../../stringio/r4/v3.0.gemfile" -eval_gemfile "../../benchmark/r4/v0.5.gemfile" -eval_gemfile "../../cgi/r4/v0.5.gemfile" -eval_gemfile "../../webrick/r4/v1.9.gemfile" +eval_gemfile '../../erb/r4/v5.0.gemfile' +eval_gemfile '../../mutex_m/r4/v0.3.gemfile' +eval_gemfile '../../stringio/r4/v3.0.gemfile' +eval_gemfile '../../benchmark/r4/v0.5.gemfile' +eval_gemfile '../../cgi/r4/v0.5.gemfile' +eval_gemfile '../../webrick/r4/v1.9.gemfile' diff --git a/gems/json-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile b/gems/json-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile index d4d5b16c9..ab75cccf1 100644 --- a/gems/json-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile +++ b/gems/json-merge/gemfiles/modular/x_std_libs/vHEAD.gemfile @@ -1,6 +1,6 @@ -eval_gemfile "../erb/vHEAD.gemfile" -eval_gemfile "../mutex_m/vHEAD.gemfile" -eval_gemfile "../stringio/vHEAD.gemfile" -eval_gemfile "../benchmark/vHEAD.gemfile" -eval_gemfile "../cgi/vHEAD.gemfile" -eval_gemfile "../webrick/vHEAD.gemfile" +eval_gemfile '../erb/vHEAD.gemfile' +eval_gemfile '../mutex_m/vHEAD.gemfile' +eval_gemfile '../stringio/vHEAD.gemfile' +eval_gemfile '../benchmark/vHEAD.gemfile' +eval_gemfile '../cgi/vHEAD.gemfile' +eval_gemfile '../webrick/vHEAD.gemfile' diff --git a/gems/json-merge/lib/json/merge/version.rb b/gems/json-merge/lib/json/merge/version.rb index d02d9f1a5..13f521eb3 100644 --- a/gems/json-merge/lib/json/merge/version.rb +++ b/gems/json-merge/lib/json/merge/version.rb @@ -3,7 +3,7 @@ module Json module Merge module Version - VERSION = "7.1.0" + VERSION = '7.1.0' end VERSION = Version::VERSION # Traditional Constant Location end diff --git a/gems/json-merge/spec/spec_helper.rb b/gems/json-merge/spec/spec_helper.rb index 3d185dfb1..127a823f4 100644 --- a/gems/json-merge/spec/spec_helper.rb +++ b/gems/json-merge/spec/spec_helper.rb @@ -7,16 +7,16 @@ # NOTE: Gemfiles for non-coverage appraisals may not have kettle-soup-cover. # The rescue LoadError handles that scenario. begin - require "kettle-soup-cover" + require 'kettle-soup-cover' if Kettle::Soup::Cover::DO_COV # Requiring simplecov loads the project-local `.simplecov`. - require "simplecov" - require "kettle/soup/cover/config" + require 'simplecov' + require 'kettle/soup/cover/config' SimpleCov.start end -rescue LoadError => error +rescue LoadError => e # check the error message and re-raise when unexpected - raise error unless error.message.include?("kettle") + raise e unless e.message.include?('kettle') end # External RSpec & related config From 55f634b2f3e01b928b9894fae18e5c6962a944b1 Mon Sep 17 00:00:00 2001 From: "Peter H. Boling" Date: Tue, 21 Jul 2026 18:40:09 -0600 Subject: [PATCH 184/188] =?UTF-8?q?=F0=9F=8E=A8=20Template=20bootstrap=20b?= =?UTF-8?q?y=20kettle-jem=20v7.1.0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gems/ast-merge/.rubocop_gradual.lock | 2942 ++++++++++++++++++++++++++ gems/ast-merge/Gemfile.lock | 2 +- gems/json-merge/Gemfile.lock | 30 +- 3 files changed, 2953 insertions(+), 21 deletions(-) create mode 100644 gems/ast-merge/.rubocop_gradual.lock diff --git a/gems/ast-merge/.rubocop_gradual.lock b/gems/ast-merge/.rubocop_gradual.lock new file mode 100644 index 000000000..80f95ef30 --- /dev/null +++ b/gems/ast-merge/.rubocop_gradual.lock @@ -0,0 +1,2942 @@ +{ + ".simplecov:3026903189": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "Rakefile:429706125": [ + [18, 121, 17, "Layout/LineLength: Line is too long. [137/120]", 174264873], + [79, 3, 1023, "Metrics/BlockLength: Block has too many lines. [32/25]", 54868638], + [163, 121, 22, "Layout/LineLength: Line is too long. [142/120]", 1367093088], + [166, 121, 18, "Layout/LineLength: Line is too long. [138/120]", 3881946477] + ], + "ast-merge.gemspec:1182320030": [ + [16, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1168797721], + [129, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 2821357214], + [144, 121, 50, "Layout/LineLength: Line is too long. [170/120]", 3888612416], + [145, 121, 29, "Layout/LineLength: Line is too long. [149/120]", 981994949], + [152, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 4229808912] + ], + "gemfiles/modular/benchmark/r4/v0.5.gemfile:5381": [ + [1, 1, 0, "Lint/EmptyFile: Empty file detected.", 5381] + ], + "gemfiles/modular/benchmark/vHEAD.gemfile:5381": [ + [1, 1, 0, "Lint/EmptyFile: Empty file detected.", 5381], + [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381] + ], + "gemfiles/modular/cgi/r4/v0.5.gemfile:367169322": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/cgi/vHEAD.gemfile:2729540777": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/erb/r2/v3.0.gemfile:1688285565": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/erb/r3/v5.0.gemfile:2394062339": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/erb/r4/v5.0.gemfile:2394062339": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/erb/vHEAD.gemfile:981929959": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/mutex_m/r2/v0.3.gemfile:4055275004": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/mutex_m/r3/v0.3.gemfile:4055275004": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/mutex_m/r4/v0.3.gemfile:4055275004": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/mutex_m/vHEAD.gemfile:556854763": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/rspec.gemfile:2263543889": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/stringio/r2/v3.0.gemfile:821604304": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/stringio/r3/v3.0.gemfile:821604304": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/stringio/r4/v3.0.gemfile:821604304": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/stringio/vHEAD.gemfile:1045839691": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/webrick/r4/v1.9.gemfile:3092661193": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/webrick/vHEAD.gemfile:3867684682": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177602] + ], + "gemfiles/modular/x_std_libs.gemfile:2324400122": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177542] + ], + "gemfiles/modular/x_std_libs/r2/libs.gemfile:36276542": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] + ], + "gemfiles/modular/x_std_libs/r3/libs.gemfile:4030570297": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] + ], + "gemfiles/modular/x_std_libs/r4/libs.gemfile:732451732": [ + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] + ], + "gemfiles/modular/x_std_libs/vHEAD.gemfile:2390363993": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`vHEAD.gemfile`) should use snake_case.", 5381], + [1, 1, 1, "Style/FrozenStringLiteralComment: Missing frozen string literal comment.", 177600] + ], + "lib/ast-merge.rb:3005639624": [ + [1, 1, 0, "Naming/FileName: The name of this source file (`ast-merge.rb`) should use snake_case.", 5381] + ], + "lib/ast/merge.rb:3962755273": [ + [11, 3, 12, "Style/Documentation: Missing top-level documentation comment for `module Ast::Merge`.", 2866359175], + [11, 3, 270298, "Metrics/ModuleLength: Module has too many lines. [5705/100]", 2774418219], + [22, 5, 16, "Style/Documentation: Missing top-level documentation comment for `class Ast::Merge::ParseError`.", 362242086], + [33, 7, 362, "Metrics/AbcSize: Assignment Branch Condition size for `build_message` is too high. [<2, 16, 6> 17.2/17]", 3988736327], + [47, 5, 31, "Style/Documentation: Missing top-level documentation comment for `class Ast::Merge::PlaceholderCollisionError`.", 218924302], + [164, 7, 337, "Metrics/MethodLength: Method has too many lines. [11/10]", 2388996629], + [181, 7, 327, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `to_h` is too high. [8/7]", 979795121], + [312, 7, 383, "Metrics/MethodLength: Method has too many lines. [11/10]", 634650261], + [476, 121, 29, "Layout/LineLength: Line is too long. [149/120]", 3450568485], + [477, 7, 461, "Metrics/MethodLength: Method has too many lines. [12/10]", 43929779], + [494, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 1299979089], + [495, 7, 377, "Metrics/MethodLength: Method has too many lines. [11/10]", 3704151253], + [511, 121, 39, "Layout/LineLength: Line is too long. [159/120]", 85503958], + [512, 7, 447, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `to_h` is too high. [8/7]", 298553749], + [512, 7, 447, "Metrics/MethodLength: Method has too many lines. [12/10]", 298553749], + [541, 121, 25, "Layout/LineLength: Line is too long. [145/120]", 1441148616], + [542, 7, 453, "Metrics/MethodLength: Method has too many lines. [14/10]", 1899007021], + [561, 121, 3, "Layout/LineLength: Line is too long. [123/120]", 193342990], + [562, 7, 400, "Metrics/MethodLength: Method has too many lines. [11/10]", 298553749], + [591, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5860750], + [592, 7, 411, "Metrics/MethodLength: Method has too many lines. [12/10]", 2893925621], + [609, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 3137791633], + [610, 7, 454, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `to_h` is too high. [8/7]", 298553749], + [610, 7, 454, "Metrics/MethodLength: Method has too many lines. [12/10]", 298553749], + [669, 7, 385, "Metrics/MethodLength: Method has too many lines. [11/10]", 794265461], + [706, 7, 419, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `to_h` is too high. [10/7]", 3313546353], + [706, 7, 419, "Metrics/PerceivedComplexity: Perceived complexity for `to_h` is too high. [10/8]", 3313546353], + [756, 121, 11, "Layout/LineLength: Line is too long. [131/120]", 398187770], + [768, 121, 40, "Layout/LineLength: Line is too long. [160/120]", 2746783933], + [815, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5860841], + [823, 121, 156, "Layout/LineLength: Line is too long. [276/120]", 1149525480], + [828, 121, 24, "Layout/LineLength: Line is too long. [144/120]", 2538424426], + [840, 121, 22, "Layout/LineLength: Line is too long. [142/120]", 2285382915], + [850, 121, 7, "Layout/LineLength: Line is too long. [127/120]", 3962419360], + [863, 121, 11, "Layout/LineLength: Line is too long. [131/120]", 398187770], + [865, 121, 16, "Layout/LineLength: Line is too long. [136/120]", 3195178507], + [869, 121, 85, "Layout/LineLength: Line is too long. [205/120]", 4238980637], + [871, 121, 13, "Layout/LineLength: Line is too long. [133/120]", 2678411233], + [873, 121, 39, "Layout/LineLength: Line is too long. [159/120]", 4028520110], + [884, 121, 110, "Layout/LineLength: Line is too long. [230/120]", 3837814921], + [898, 5, 2283, "Metrics/MethodLength: Method has too many lines. [57/10]", 2282416447], + [958, 5, 2654, "Metrics/MethodLength: Method has too many lines. [63/10]", 2491520565], + [1009, 121, 9, "Layout/LineLength: Line is too long. [129/120]", 1823519875], + [1018, 121, 21, "Layout/LineLength: Line is too long. [141/120]", 1874311968], + [1024, 5, 10660, "Metrics/AbcSize: Assignment Branch Condition size for `ruby_downstream_merge_gem_feature_matrix` is too high. [<0, 21, 0> 21/17]", 2277322577], + [1024, 5, 10660, "Metrics/MethodLength: Method has too many lines. [248/10]", 2277322577], + [1275, 5, 1546, "Metrics/MethodLength: Method has too many lines. [37/10]", 208933754], + [1309, 121, 33, "Layout/LineLength: Line is too long. [153/120]", 2658452668], + [1315, 5, 4206, "Metrics/MethodLength: Method has too many lines. [96/10]", 1997530776], + [1392, 121, 5, "Layout/LineLength: Line is too long. [125/120]", 183246985], + [1408, 121, 15, "Layout/LineLength: Line is too long. [135/120]", 3268438356], + [1414, 5, 1598, "Metrics/MethodLength: Method has too many lines. [46/10]", 849757258], + [1457, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1323237892], + [1463, 5, 1164, "Metrics/MethodLength: Method has too many lines. [36/10]", 1477831421], + [1496, 121, 13, "Layout/LineLength: Line is too long. [133/120]", 931876829], + [1502, 5, 1699, "Metrics/MethodLength: Method has too many lines. [43/10]", 1125544678], + [1548, 5, 1016, "Metrics/MethodLength: Method has too many lines. [27/10]", 2194427985], + [1578, 5, 1058, "Metrics/MethodLength: Method has too many lines. [30/10]", 47860722], + [1611, 5, 1186, "Metrics/MethodLength: Method has too many lines. [31/10]", 676863486], + [1639, 121, 21, "Layout/LineLength: Line is too long. [141/120]", 2689509078], + [1645, 5, 1517, "Metrics/MethodLength: Method has too many lines. [41/10]", 3855445172], + [1658, 121, 24, "Layout/LineLength: Line is too long. [144/120]", 817380904], + [1683, 121, 26, "Layout/LineLength: Line is too long. [146/120]", 409671963], + [1689, 5, 2116, "Metrics/MethodLength: Method has too many lines. [61/10]", 524104794], + [1753, 5, 820, "Metrics/MethodLength: Method has too many lines. [12/10]", 1888457180], + [1753, 37, 298, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [10/5]", 789483382], + [1754, 121, 100, "Layout/LineLength: Line is too long. [220/120]", 3288750271], + [1769, 5, 3595, "Metrics/AbcSize: Assignment Branch Condition size for `initial_profile_promotion_policy` is too high. [<9, 20, 0> 21.93/17]", 83685787], + [1769, 5, 3595, "Metrics/MethodLength: Method has too many lines. [77/10]", 83685787], + [1849, 5, 768, "Metrics/MethodLength: Method has too many lines. [17/10]", 314059802], + [1870, 5, 1493, "Metrics/AbcSize: Assignment Branch Condition size for `evaluate_profile_selection_requirement` is too high. [<7, 23, 9> 25.67/17]", 3177555163], + [1870, 5, 1493, "Metrics/MethodLength: Method has too many lines. [29/10]", 3177555163], + [1871, 121, 18, "Layout/LineLength: Line is too long. [138/120]", 2145168012], + [1878, 121, 7, "Layout/LineLength: Line is too long. [127/120]", 683002336], + [1912, 5, 985, "Metrics/AbcSize: Assignment Branch Condition size for `profile_promotion_blocking_reasons` is too high. [<4, 25, 13> 28.46/17]", 1146627465], + [1912, 5, 985, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `profile_promotion_blocking_reasons` is too high. [10/7]", 1146627465], + [1912, 5, 985, "Metrics/MethodLength: Method has too many lines. [18/10]", 1146627465], + [1912, 5, 985, "Metrics/PerceivedComplexity: Perceived complexity for `profile_promotion_blocking_reasons` is too high. [10/8]", 1146627465], + [1933, 5, 3173, "Metrics/AbcSize: Assignment Branch Condition size for `validate_language_backend_profile` is too high. [<25, 68, 20> 75.16/17]", 2100389324], + [1933, 5, 3173, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `validate_language_backend_profile` is too high. [21/7]", 2100389324], + [1933, 5, 3173, "Metrics/MethodLength: Method has too many lines. [60/10]", 2100389324], + [1933, 5, 3173, "Metrics/PerceivedComplexity: Perceived complexity for `validate_language_backend_profile` is too high. [23/8]", 2100389324], + [2005, 5, 1523, "Metrics/AbcSize: Assignment Branch Condition size for `validate_backend_inventory` is too high. [<13, 38, 13> 42.21/17]", 1899037537], + [2005, 5, 1523, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `validate_backend_inventory` is too high. [13/7]", 1899037537], + [2005, 5, 1523, "Metrics/MethodLength: Method has too many lines. [25/10]", 1899037537], + [2005, 5, 1523, "Metrics/PerceivedComplexity: Perceived complexity for `validate_backend_inventory` is too high. [13/8]", 1899037537], + [2048, 5, 906, "Metrics/MethodLength: Method has too many lines. [20/10]", 3137959843], + [2071, 5, 2744, "Metrics/AbcSize: Assignment Branch Condition size for `detect_raw_merge_inconsistencies` is too high. [<8, 43, 21> 48.52/17]", 3717440692], + [2071, 5, 2744, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `detect_raw_merge_inconsistencies` is too high. [17/7]", 3717440692], + [2071, 5, 2744, "Metrics/MethodLength: Method has too many lines. [53/10]", 3717440692], + [2071, 5, 2744, "Metrics/PerceivedComplexity: Perceived complexity for `detect_raw_merge_inconsistencies` is too high. [17/8]", 3717440692], + [2086, 7, 1894, "Metrics/BlockLength: Block has too many lines. [33/25]", 758887611], + [2132, 5, 762, "Metrics/MethodLength: Method has too many lines. [11/10]", 3021402342], + [2146, 5, 490, "Metrics/MethodLength: Method has too many lines. [11/10]", 578473475], + [2160, 5, 881, "Metrics/AbcSize: Assignment Branch Condition size for `execute_independent_commutative_insertions` is too high. [<6, 16, 7> 18.47/17]", 259417386], + [2160, 5, 881, "Metrics/MethodLength: Method has too many lines. [21/10]", 259417386], + [2187, 5, 1107, "Metrics/AbcSize: Assignment Branch Condition size for `execute_independent_keyed_member_edits` is too high. [<10, 31, 15> 35.86/17]", 4271501385], + [2187, 5, 1107, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `execute_independent_keyed_member_edits` is too high. [14/7]", 4271501385], + [2187, 5, 1107, "Metrics/MethodLength: Method has too many lines. [24/10]", 4271501385], + [2187, 5, 1107, "Metrics/PerceivedComplexity: Perceived complexity for `execute_independent_keyed_member_edits` is too high. [14/8]", 4271501385], + [2231, 5, 3149, "Metrics/AbcSize: Assignment Branch Condition size for `parse_compact_ruleset` is too high. [<16, 68, 24> 73.86/17]", 3149098803], + [2231, 5, 3149, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `parse_compact_ruleset` is too high. [22/7]", 3149098803], + [2231, 5, 3149, "Metrics/MethodLength: Method has too many lines. [67/10]", 3149098803], + [2231, 5, 3149, "Metrics/PerceivedComplexity: Perceived complexity for `parse_compact_ruleset` is too high. [23/8]", 3149098803], + [2237, 7, 2544, "Metrics/BlockLength: Block has too many lines. [50/25]", 2484860466], + [2264, 121, 3, "Layout/LineLength: Line is too long. [123/120]", 193420054], + [2310, 5, 2658, "Metrics/AbcSize: Assignment Branch Condition size for `compact_ruleset_feature_profile` is too high. [<11, 67, 38> 77.81/17]", 4022599673], + [2310, 5, 2658, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `compact_ruleset_feature_profile` is too high. [29/7]", 4022599673], + [2310, 5, 2658, "Metrics/MethodLength: Method has too many lines. [66/10]", 4022599673], + [2310, 5, 2658, "Metrics/PerceivedComplexity: Perceived complexity for `compact_ruleset_feature_profile` is too high. [16/8]", 4022599673], + [2328, 7, 2243, "Metrics/BlockLength: Block has too many lines. [47/25]", 965041772], + [2395, 5, 2733, "Metrics/AbcSize: Assignment Branch Condition size for `classify_template_target_path` is too high. [<4, 36, 23> 42.91/17]", 3661828596], + [2395, 5, 2733, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `classify_template_target_path` is too high. [21/7]", 3661828596], + [2395, 5, 2733, "Metrics/MethodLength: Method has too many lines. [39/10]", 3661828596], + [2395, 5, 2733, "Metrics/PerceivedComplexity: Perceived complexity for `classify_template_target_path` is too high. [17/8]", 3661828596], + [2427, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5858795], + [2441, 5, 416, "Metrics/MethodLength: Method has too many lines. [12/10]", 1388641773], + [2484, 5, 388, "Metrics/MethodLength: Method has too many lines. [12/10]", 2360583514], + [2513, 5, 820, "Metrics/MethodLength: Method has too many lines. [13/10]", 354674808], + [2529, 5, 929, "Metrics/AbcSize: Assignment Branch Condition size for `enrich_template_plan_entries` is too high. [<9, 12, 10> 18.03/17]", 2666747528], + [2529, 5, 929, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `enrich_template_plan_entries` is too high. [9/7]", 2666747528], + [2529, 5, 929, "Metrics/MethodLength: Method has too many lines. [19/10]", 2666747528], + [2529, 5, 929, "Metrics/PerceivedComplexity: Perceived complexity for `enrich_template_plan_entries` is too high. [10/8]", 2666747528], + [2552, 5, 1245, "Metrics/AbcSize: Assignment Branch Condition size for `enrich_template_plan_entries_with_token_state` is too high. [<11, 23, 14> 29.09/17]", 1507113977], + [2552, 5, 1245, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `enrich_template_plan_entries_with_token_state` is too high. [13/7]", 1507113977], + [2552, 5, 1245, "Metrics/MethodLength: Method has too many lines. [19/10]", 1507113977], + [2552, 5, 1245, "Metrics/PerceivedComplexity: Perceived complexity for `enrich_template_plan_entries_with_token_state` is too high. [13/8]", 1507113977], + [2576, 5, 1353, "Metrics/AbcSize: Assignment Branch Condition size for `prepare_template_entries` is too high. [<6, 18, 11> 21.93/17]", 2774310942], + [2576, 5, 1353, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `prepare_template_entries` is too high. [11/7]", 2774310942], + [2576, 5, 1353, "Metrics/MethodLength: Method has too many lines. [24/10]", 2774310942], + [2576, 5, 1353, "Metrics/PerceivedComplexity: Perceived complexity for `prepare_template_entries` is too high. [12/8]", 2774310942], + [2606, 5, 1494, "Metrics/AbcSize: Assignment Branch Condition size for `plan_template_execution` is too high. [<8, 22, 17> 28.93/17]", 3876421385], + [2606, 5, 1494, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `plan_template_execution` is too high. [14/7]", 3876421385], + [2606, 5, 1494, "Metrics/MethodLength: Method has too many lines. [29/10]", 3876421385], + [2606, 5, 1494, "Metrics/PerceivedComplexity: Perceived complexity for `plan_template_execution` is too high. [15/8]", 3876421385], + [2607, 7, 1421, "Metrics/BlockLength: Block has too many lines. [27/25]", 2887810383], + [2640, 5, 822, "Metrics/ParameterLists: Method has too many optional parameters. [5/3]", 2749235529], + [2640, 37, 220, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [9/5]", 447165880], + [2641, 121, 29, "Layout/LineLength: Line is too long. [149/120]", 518382509], + [2655, 5, 2060, "Metrics/AbcSize: Assignment Branch Condition size for `preview_template_execution` is too high. [<11, 42, 26> 50.61/17]", 2270817206], + [2655, 5, 2060, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `preview_template_execution` is too high. [25/7]", 2270817206], + [2655, 5, 2060, "Metrics/MethodLength: Method has too many lines. [39/10]", 2270817206], + [2655, 5, 2060, "Metrics/PerceivedComplexity: Perceived complexity for `preview_template_execution` is too high. [23/8]", 2270817206], + [2665, 7, 1809, "Metrics/BlockLength: Block has too many lines. [28/25]", 310337564], + [2703, 5, 2513, "Metrics/AbcSize: Assignment Branch Condition size for `apply_template_execution` is too high. [<14, 50, 25> 57.63/17]", 177708331], + [2703, 5, 2513, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `apply_template_execution` is too high. [26/7]", 177708331], + [2703, 5, 2513, "Metrics/MethodLength: Method has too many lines. [50/10]", 177708331], + [2703, 5, 2513, "Metrics/PerceivedComplexity: Perceived complexity for `apply_template_execution` is too high. [23/8]", 177708331], + [2714, 7, 2239, "Metrics/BlockLength: Block has too many lines. [38/25]", 1651205014], + [2764, 5, 1696, "Metrics/AbcSize: Assignment Branch Condition size for `evaluate_template_tree_convergence` is too high. [<11, 29, 17> 35.37/17]", 2507998041], + [2764, 5, 1696, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `evaluate_template_tree_convergence` is too high. [17/7]", 2507998041], + [2764, 5, 1696, "Metrics/MethodLength: Method has too many lines. [35/10]", 2507998041], + [2764, 5, 1696, "Metrics/ParameterLists: Method has too many optional parameters. [5/3]", 2507998041], + [2764, 5, 1696, "Metrics/PerceivedComplexity: Perceived complexity for `evaluate_template_tree_convergence` is too high. [17/8]", 2507998041], + [2764, 43, 198, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [8/5]", 4214374277], + [2765, 121, 13, "Layout/LineLength: Line is too long. [133/120]", 2983874608], + [2807, 5, 688, "Metrics/MethodLength: Method has too many lines. [15/10]", 3064253784], + [2807, 5, 688, "Metrics/ParameterLists: Method has too many optional parameters. [5/3]", 3064253784], + [2807, 36, 216, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [8/5]", 448029307], + [2808, 121, 31, "Layout/LineLength: Line is too long. [151/120]", 3840139076], + [2851, 5, 664, "Metrics/MethodLength: Method has too many lines. [13/10]", 995637868], + [2851, 5, 664, "Metrics/ParameterLists: Method has too many optional parameters. [5/3]", 995637868], + [2851, 53, 202, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [7/5]", 4227116196], + [2852, 121, 48, "Layout/LineLength: Line is too long. [168/120]", 418683952], + [2869, 5, 649, "Metrics/MethodLength: Method has too many lines. [13/10]", 1831524792], + [2869, 5, 649, "Metrics/ParameterLists: Method has too many optional parameters. [5/3]", 1831524792], + [2869, 54, 178, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [7/5]", 2962381850], + [2870, 121, 24, "Layout/LineLength: Line is too long. [144/120]", 3690915627], + [2887, 5, 1280, "Metrics/AbcSize: Assignment Branch Condition size for `apply_template_tree_execution_to_directory` is too high. [<6, 16, 6> 18.11/17]", 305449363], + [2887, 5, 1280, "Metrics/MethodLength: Method has too many lines. [23/10]", 305449363], + [2887, 5, 1280, "Metrics/ParameterLists: Method has too many optional parameters. [5/3]", 305449363], + [2887, 51, 200, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [7/5]", 1352434212], + [2888, 121, 46, "Layout/LineLength: Line is too long. [166/120]", 1139621482], + [2916, 5, 2199, "Metrics/AbcSize: Assignment Branch Condition size for `report_template_tree_run` is too high. [<15, 42, 31> 54.31/17]", 975627723], + [2916, 5, 2199, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `report_template_tree_run` is too high. [25/7]", 975627723], + [2916, 5, 2199, "Metrics/MethodLength: Method has too many lines. [38/10]", 975627723], + [2916, 5, 2199, "Metrics/PerceivedComplexity: Perceived complexity for `report_template_tree_run` is too high. [26/8]", 975627723], + [2960, 5, 1515, "Metrics/AbcSize: Assignment Branch Condition size for `report_template_directory_apply` is too high. [<13, 35, 21> 42.84/17]", 3710254295], + [2960, 5, 1515, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `report_template_directory_apply` is too high. [17/7]", 3710254295], + [2960, 5, 1515, "Metrics/MethodLength: Method has too many lines. [26/10]", 3710254295], + [2960, 5, 1515, "Metrics/PerceivedComplexity: Perceived complexity for `report_template_directory_apply` is too high. [17/8]", 3710254295], + [2975, 20, 1, "Style/DoubleNegation: Avoid the use of double negation (`!!`).", 177540], + [2992, 5, 1656, "Metrics/AbcSize: Assignment Branch Condition size for `report_template_directory_plan` is too high. [<11, 24, 25> 36.36/17]", 2946319293], + [2992, 5, 1656, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `report_template_directory_plan` is too high. [18/7]", 2946319293], + [2992, 5, 1656, "Metrics/MethodLength: Method has too many lines. [36/10]", 2946319293], + [2992, 5, 1656, "Metrics/PerceivedComplexity: Perceived complexity for `report_template_directory_plan` is too high. [16/8]", 2946319293], + [3064, 7, 9, "Style/MultilineBlockChain: Avoid multi-line chains of blocks.", 3648222389], + [3085, 5, 410, "Metrics/MethodLength: Method has too many lines. [12/10]", 248324428], + [3091, 7, 11, "Style/MultilineBlockChain: Avoid multi-line chains of blocks.", 848344986], + [3135, 5, 712, "Metrics/MethodLength: Method has too many lines. [12/10]", 2500743043], + [3135, 27, 178, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [9/5]", 873705194], + [3135, 121, 10, "Layout/LineLength: Line is too long. [130/120]", 3023611470], + [3161, 42, 167, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 2002181571], + [3174, 5, 1097, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `structured_edit_selection_profile` is too high. [8/7]", 1149325233], + [3174, 5, 1097, "Metrics/MethodLength: Method has too many lines. [14/10]", 1149325233], + [3174, 42, 311, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [11/5]", 3814063337], + [3175, 121, 16, "Layout/LineLength: Line is too long. [136/120]", 198450264], + [3188, 34, 47, "Style/SafeNavigation: Use safe navigation (`&.`) instead of checking if an object exists before calling the method.", 3204815976], + [3193, 5, 869, "Metrics/MethodLength: Method has too many lines. [11/10]", 83957392], + [3193, 41, 250, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [8/5]", 1486072775], + [3194, 121, 13, "Layout/LineLength: Line is too long. [133/120]", 1967186495], + [3204, 36, 47, "Style/SafeNavigation: Use safe navigation (`&.`) instead of checking if an object exists before calling the method.", 3204815976], + [3209, 5, 1156, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `structured_edit_match_profile` is too high. [10/7]", 4112674787], + [3209, 5, 1156, "Metrics/MethodLength: Method has too many lines. [15/10]", 4112674787], + [3209, 5, 1156, "Metrics/PerceivedComplexity: Perceived complexity for `structured_edit_match_profile` is too high. [10/8]", 4112674787], + [3209, 38, 321, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [12/5]", 823565876], + [3210, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5859667], + [3211, 121, 7, "Layout/LineLength: Line is too long. [127/120]", 3673982236], + [3229, 5, 933, "Metrics/MethodLength: Method has too many lines. [14/10]", 2099388915], + [3229, 37, 319, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [12/5]", 250907892], + [3230, 121, 1, "Layout/LineLength: Line is too long. [121/120]", 177545], + [3231, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 4154814685], + [3248, 5, 907, "Metrics/MethodLength: Method has too many lines. [12/10]", 2242846328], + [3248, 42, 275, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [9/5]", 246196330], + [3249, 121, 13, "Layout/LineLength: Line is too long. [133/120]", 1439117336], + [3265, 5, 1057, "Metrics/MethodLength: Method has too many lines. [14/10]", 2891607970], + [3265, 44, 323, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [11/5]", 1386547750], + [3266, 121, 19, "Layout/LineLength: Line is too long. [139/120]", 1676243675], + [3267, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 4154814685], + [3284, 5, 1375, "Metrics/AbcSize: Assignment Branch Condition size for `structured_edit_request` is too high. [<11, 25, 10> 29.09/17]", 4153786554], + [3284, 5, 1375, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `structured_edit_request` is too high. [11/7]", 4153786554], + [3284, 5, 1375, "Metrics/MethodLength: Method has too many lines. [16/10]", 4153786554], + [3284, 5, 1375, "Metrics/PerceivedComplexity: Perceived complexity for `structured_edit_request` is too high. [11/8]", 4153786554], + [3284, 32, 370, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [13/5]", 2381882467], + [3285, 121, 1, "Layout/LineLength: Line is too long. [121/120]", 177545], + [3306, 5, 728, "Metrics/MethodLength: Method has too many lines. [11/10]", 4026157473], + [3306, 31, 175, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [8/5]", 773121544], + [3338, 5, 597, "Metrics/MethodLength: Method has too many lines. [11/10]", 4143495860], + [3377, 5, 577, "Metrics/MethodLength: Method has too many lines. [11/10]", 4169131743], + [3392, 5, 1011, "Metrics/AbcSize: Assignment Branch Condition size for `structured_edit_execution_report` is too high. [<7, 16, 7> 18.81/17]", 876221899], + [3392, 5, 1011, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `structured_edit_execution_report` is too high. [8/7]", 876221899], + [3392, 5, 1011, "Metrics/MethodLength: Method has too many lines. [12/10]", 876221899], + [3392, 41, 245, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [9/5]", 2484440861], + [3393, 121, 55, "Layout/LineLength: Line is too long. [175/120]", 4036992717], + [3418, 55, 170, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [7/5]", 668161765], + [3441, 5, 819, "Metrics/MethodLength: Method has too many lines. [12/10]", 2287133436], + [3441, 56, 217, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [9/5]", 3198032135], + [3442, 121, 51, "Layout/LineLength: Line is too long. [171/120]", 3526181051], + [3475, 5, 663, "Metrics/MethodLength: Method has too many lines. [11/10]", 1853778635], + [3484, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 2162352564], + [3516, 5, 663, "Metrics/MethodLength: Method has too many lines. [11/10]", 1132214891], + [3525, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 2162352564], + [3547, 5, 678, "Metrics/MethodLength: Method has too many lines. [11/10]", 556747511], + [3556, 121, 9, "Layout/LineLength: Line is too long. [129/120]", 1808630920], + [3578, 5, 708, "Metrics/MethodLength: Method has too many lines. [11/10]", 3590891170], + [3587, 121, 15, "Layout/LineLength: Line is too long. [135/120]", 1367166441], + [3610, 5, 678, "Metrics/MethodLength: Method has too many lines. [11/10]", 689748855], + [3619, 121, 9, "Layout/LineLength: Line is too long. [129/120]", 1808630920], + [3641, 5, 708, "Metrics/MethodLength: Method has too many lines. [11/10]", 1478642210], + [3650, 121, 15, "Layout/LineLength: Line is too long. [135/120]", 1367166441], + [3674, 5, 663, "Metrics/MethodLength: Method has too many lines. [11/10]", 239506091], + [3683, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 2162352564], + [3705, 5, 693, "Metrics/MethodLength: Method has too many lines. [11/10]", 3803476550], + [3714, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 926808928], + [3737, 5, 728, "Metrics/MethodLength: Method has too many lines. [11/10]", 748161230], + [3746, 121, 21, "Layout/LineLength: Line is too long. [141/120]", 2807086497], + [3768, 5, 758, "Metrics/MethodLength: Method has too many lines. [11/10]", 3900524558], + [3777, 121, 27, "Layout/LineLength: Line is too long. [147/120]", 3463884836], + [3801, 5, 748, "Metrics/MethodLength: Method has too many lines. [11/10]", 2076716686], + [3810, 121, 25, "Layout/LineLength: Line is too long. [145/120]", 609414023], + [3832, 5, 778, "Metrics/MethodLength: Method has too many lines. [11/10]", 867958318], + [3836, 121, 3, "Layout/LineLength: Line is too long. [123/120]", 193343749], + [3841, 121, 31, "Layout/LineLength: Line is too long. [151/120]", 1202823007], + [3865, 5, 728, "Metrics/MethodLength: Method has too many lines. [11/10]", 2078323790], + [3874, 121, 21, "Layout/LineLength: Line is too long. [141/120]", 2807086497], + [3896, 5, 758, "Metrics/MethodLength: Method has too many lines. [11/10]", 121025422], + [3905, 121, 27, "Layout/LineLength: Line is too long. [147/120]", 3463884836], + [3927, 5, 733, "Metrics/MethodLength: Method has too many lines. [11/10]", 1216456558], + [3936, 121, 22, "Layout/LineLength: Line is too long. [142/120]", 145839927], + [3958, 5, 763, "Metrics/MethodLength: Method has too many lines. [11/10]", 2946525998], + [3967, 121, 28, "Layout/LineLength: Line is too long. [148/120]", 275709226], + [3991, 5, 768, "Metrics/MethodLength: Method has too many lines. [11/10]", 3281402414], + [3995, 121, 1, "Layout/LineLength: Line is too long. [121/120]", 177656], + [4000, 121, 29, "Layout/LineLength: Line is too long. [149/120]", 1427340581], + [4037, 121, 7, "Layout/LineLength: Line is too long. [127/120]", 3673982236], + [4094, 121, 3, "Layout/LineLength: Line is too long. [123/120]", 193417070], + [4105, 121, 7, "Layout/LineLength: Line is too long. [127/120]", 2768444], + [4112, 121, 32, "Layout/LineLength: Line is too long. [152/120]", 3833204035], + [4120, 5, 863, "Metrics/MethodLength: Method has too many lines. [11/10]", 3731153486], + [4124, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 4054494590], + [4129, 121, 48, "Layout/LineLength: Line is too long. [168/120]", 2084326338], + [4135, 121, 36, "Layout/LineLength: Line is too long. [156/120]", 4201858364], + [4139, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5861122], + [4143, 5, 873, "Metrics/MethodLength: Method has too many lines. [11/10]", 1866057614], + [4147, 121, 22, "Layout/LineLength: Line is too long. [142/120]", 3893180930], + [4152, 121, 50, "Layout/LineLength: Line is too long. [170/120]", 863421408], + [4158, 121, 40, "Layout/LineLength: Line is too long. [160/120]", 3247130491], + [4162, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1171438608], + [4166, 5, 883, "Metrics/MethodLength: Method has too many lines. [11/10]", 2352924462], + [4166, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5860841], + [4167, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5861334], + [4170, 121, 24, "Layout/LineLength: Line is too long. [144/120]", 465221046], + [4175, 121, 52, "Layout/LineLength: Line is too long. [172/120]", 1922522532], + [4191, 121, 44, "Layout/LineLength: Line is too long. [164/120]", 4067226670], + [4195, 121, 10, "Layout/LineLength: Line is too long. [130/120]", 2033573170], + [4199, 5, 893, "Metrics/MethodLength: Method has too many lines. [11/10]", 1633175534], + [4199, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2087926422], + [4200, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2087421565], + [4203, 121, 26, "Layout/LineLength: Line is too long. [146/120]", 615151909], + [4208, 121, 54, "Layout/LineLength: Line is too long. [174/120]", 884393597], + [4234, 121, 48, "Layout/LineLength: Line is too long. [168/120]", 417844693], + [4238, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 1233681340], + [4242, 5, 903, "Metrics/MethodLength: Method has too many lines. [11/10]", 3964877742], + [4242, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1165873471], + [4243, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1322899615], + [4246, 121, 28, "Layout/LineLength: Line is too long. [148/120]", 3471008807], + [4251, 121, 56, "Layout/LineLength: Line is too long. [176/120]", 627945471], + [4257, 121, 52, "Layout/LineLength: Line is too long. [172/120]", 2960084092], + [4261, 121, 18, "Layout/LineLength: Line is too long. [138/120]", 2148514258], + [4265, 5, 913, "Metrics/MethodLength: Method has too many lines. [11/10]", 385546958], + [4265, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 2970472935], + [4266, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 3808956371], + [4269, 121, 30, "Layout/LineLength: Line is too long. [150/120]", 3412499338], + [4274, 121, 58, "Layout/LineLength: Line is too long. [178/120]", 3274208144], + [4280, 121, 26, "Layout/LineLength: Line is too long. [146/120]", 4275923717], + [4288, 5, 848, "Metrics/MethodLength: Method has too many lines. [11/10]", 457851502], + [4292, 121, 17, "Layout/LineLength: Line is too long. [137/120]", 413805135], + [4297, 121, 45, "Layout/LineLength: Line is too long. [165/120]", 951908917], + [4303, 121, 10, "Layout/LineLength: Line is too long. [130/120]", 1859200227], + [4311, 5, 808, "Metrics/MethodLength: Method has too many lines. [11/10]", 884695726], + [4315, 121, 9, "Layout/LineLength: Line is too long. [129/120]", 2011807620], + [4320, 121, 37, "Layout/LineLength: Line is too long. [157/120]", 384138219], + [4326, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1176320663], + [4334, 5, 798, "Metrics/MethodLength: Method has too many lines. [11/10]", 1422521838], + [4338, 121, 7, "Layout/LineLength: Line is too long. [127/120]", 3247420006], + [4343, 121, 35, "Layout/LineLength: Line is too long. [155/120]", 1408316702], + [4349, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 938465266], + [4357, 5, 803, "Metrics/MethodLength: Method has too many lines. [11/10]", 2370839950], + [4361, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 74128911], + [4366, 121, 36, "Layout/LineLength: Line is too long. [156/120]", 1364659899], + [4372, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 2059517661], + [4380, 5, 803, "Metrics/MethodLength: Method has too many lines. [11/10]", 3379336814], + [4384, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 74128911], + [4389, 121, 36, "Layout/LineLength: Line is too long. [156/120]", 1364659899], + [4437, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 4281772560], + [4445, 5, 833, "Metrics/MethodLength: Method has too many lines. [11/10]", 3245498510], + [4449, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 3542644754], + [4454, 121, 42, "Layout/LineLength: Line is too long. [162/120]", 1916814773], + [4460, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 859690879], + [4468, 5, 833, "Metrics/MethodLength: Method has too many lines. [11/10]", 4138830126], + [4472, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 3542644754], + [4477, 121, 42, "Layout/LineLength: Line is too long. [162/120]", 1916814773], + [4483, 121, 18, "Layout/LineLength: Line is too long. [138/120]", 3880141603], + [4491, 5, 828, "Metrics/MethodLength: Method has too many lines. [11/10]", 3621010990], + [4495, 121, 13, "Layout/LineLength: Line is too long. [133/120]", 3917260126], + [4500, 121, 41, "Layout/LineLength: Line is too long. [161/120]", 1879260859], + [4506, 121, 22, "Layout/LineLength: Line is too long. [142/120]", 1776611011], + [4514, 5, 838, "Metrics/MethodLength: Method has too many lines. [11/10]", 514585454], + [4518, 121, 15, "Layout/LineLength: Line is too long. [135/120]", 1353518231], + [4523, 121, 43, "Layout/LineLength: Line is too long. [163/120]", 1228459824], + [4529, 121, 38, "Layout/LineLength: Line is too long. [158/120]", 3932349968], + [4533, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2087903307], + [4537, 5, 878, "Metrics/MethodLength: Method has too many lines. [11/10]", 1525737454], + [4537, 121, 1, "Layout/LineLength: Line is too long. [121/120]", 177548], + [4538, 121, 1, "Layout/LineLength: Line is too long. [121/120]", 177538], + [4541, 121, 23, "Layout/LineLength: Line is too long. [143/120]", 2895681070], + [4546, 121, 51, "Layout/LineLength: Line is too long. [171/120]", 4040662298], + [4552, 121, 10, "Layout/LineLength: Line is too long. [130/120]", 66929045], + [4560, 5, 808, "Metrics/MethodLength: Method has too many lines. [11/10]", 1626746606], + [4564, 121, 9, "Layout/LineLength: Line is too long. [129/120]", 2011807620], + [4569, 121, 37, "Layout/LineLength: Line is too long. [157/120]", 384138219], + [4583, 121, 22, "Layout/LineLength: Line is too long. [142/120]", 849230508], + [4591, 5, 838, "Metrics/MethodLength: Method has too many lines. [11/10]", 3531122670], + [4595, 121, 15, "Layout/LineLength: Line is too long. [135/120]", 1353518231], + [4600, 121, 43, "Layout/LineLength: Line is too long. [163/120]", 1228459824], + [4615, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1176320663], + [4623, 5, 798, "Metrics/MethodLength: Method has too many lines. [11/10]", 1118421486], + [4627, 121, 7, "Layout/LineLength: Line is too long. [127/120]", 3247420006], + [4632, 121, 35, "Layout/LineLength: Line is too long. [155/120]", 1408316702], + [4654, 5, 693, "Metrics/MethodLength: Method has too many lines. [11/10]", 1668406662], + [4663, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 926808928], + [4677, 5, 648, "Metrics/MethodLength: Method has too many lines. [11/10]", 3479836893], + [4686, 121, 3, "Layout/LineLength: Line is too long. [123/120]", 193343749], + [4708, 5, 678, "Metrics/MethodLength: Method has too many lines. [11/10]", 3147549879], + [4717, 121, 9, "Layout/LineLength: Line is too long. [129/120]", 1808630920], + [4752, 5, 677, "Metrics/MethodLength: Method has too many lines. [11/10]", 1206941784], + [4761, 121, 7, "Layout/LineLength: Line is too long. [127/120]", 3937819337], + [4784, 5, 672, "Metrics/MethodLength: Method has too many lines. [11/10]", 3634903061], + [4793, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 2162352564], + [4815, 5, 683, "Metrics/MethodLength: Method has too many lines. [11/10]", 3417053461], + [4824, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 926808928], + [4848, 5, 668, "Metrics/MethodLength: Method has too many lines. [11/10]", 1540762726], + [4857, 121, 9, "Layout/LineLength: Line is too long. [129/120]", 1808630920], + [4879, 5, 698, "Metrics/MethodLength: Method has too many lines. [11/10]", 2804825893], + [4888, 121, 15, "Layout/LineLength: Line is too long. [135/120]", 1367166441], + [4911, 5, 683, "Metrics/MethodLength: Method has too many lines. [11/10]", 3165010613], + [4920, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 926808928], + [4942, 5, 713, "Metrics/MethodLength: Method has too many lines. [11/10]", 2795628035], + [4951, 121, 18, "Layout/LineLength: Line is too long. [138/120]", 497133415], + [4957, 5, 864, "Metrics/MethodLength: Method has too many lines. [12/10]", 1086224878], + [4957, 50, 268, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [9/5]", 4022739767], + [4958, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1607400384], + [4982, 5, 658, "Metrics/MethodLength: Method has too many lines. [11/10]", 3999796489], + [4991, 121, 5, "Layout/LineLength: Line is too long. [125/120]", 102058825], + [5005, 59, 179, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 1569981428], + [5006, 121, 23, "Layout/LineLength: Line is too long. [143/120]", 1515849732], + [5037, 5, 694, "Metrics/MethodLength: Method has too many lines. [11/10]", 3830236120], + [5046, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 2250857971], + [5060, 5, 673, "Metrics/MethodLength: Method has too many lines. [11/10]", 2413908653], + [5069, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 1225026887], + [5083, 5, 663, "Metrics/MethodLength: Method has too many lines. [11/10]", 3935895659], + [5092, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 2162352564], + [5106, 5, 692, "Metrics/MethodLength: Method has too many lines. [11/10]", 3660669627], + [5115, 121, 10, "Layout/LineLength: Line is too long. [130/120]", 3558241761], + [5129, 5, 612, "Metrics/MethodLength: Method has too many lines. [11/10]", 100391811], + [5168, 5, 693, "Metrics/MethodLength: Method has too many lines. [11/10]", 3138587622], + [5177, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 926808928], + [5199, 5, 688, "Metrics/MethodLength: Method has too many lines. [11/10]", 2736088861], + [5208, 121, 13, "Layout/LineLength: Line is too long. [133/120]", 1992103013], + [5231, 5, 678, "Metrics/MethodLength: Method has too many lines. [11/10]", 2275602867], + [5240, 121, 11, "Layout/LineLength: Line is too long. [131/120]", 3598350322], + [5263, 5, 602, "Metrics/MethodLength: Method has too many lines. [11/10]", 3023166371], + [5278, 36, 181, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [7/5]", 1071580945], + [5291, 5, 787, "Metrics/AbcSize: Assignment Branch Condition size for `group_projected_child_review_cases` is too high. [<4, 17, 4> 17.92/17]", 3391527151], + [5291, 5, 787, "Metrics/MethodLength: Method has too many lines. [18/10]", 3391527151], + [5315, 5, 705, "Metrics/MethodLength: Method has too many lines. [13/10]", 2629923275], + [5342, 5, 547, "Metrics/MethodLength: Method has too many lines. [12/10]", 1911190850], + [5367, 5, 1516, "Metrics/AbcSize: Assignment Branch Condition size for `review_projected_child_groups` is too high. [<11, 21, 9> 25.36/17]", 3333110579], + [5367, 5, 1516, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `review_projected_child_groups` is too high. [8/7]", 3333110579], + [5367, 5, 1516, "Metrics/MethodLength: Method has too many lines. [39/10]", 3333110579], + [5367, 5, 1516, "Metrics/PerceivedComplexity: Perceived complexity for `review_projected_child_groups` is too high. [9/8]", 3333110579], + [5401, 7, 7, "Style/MultilineBlockChain: Avoid multi-line chains of blocks.", 4045560504], + [5413, 5, 562, "Metrics/MethodLength: Method has too many lines. [14/10]", 3083915102], + [5432, 5, 1898, "Metrics/AbcSize: Assignment Branch Condition size for `resolve_delegated_child_outputs` is too high. [<11, 21, 6> 24.45/17]", 2739722546], + [5432, 5, 1898, "Metrics/MethodLength: Method has too many lines. [49/10]", 2739722546], + [5487, 5, 942, "Metrics/AbcSize: Assignment Branch Condition size for `execute_nested_merge` is too high. [<3, 17, 6> 18.28/17]", 766157172], + [5487, 5, 942, "Metrics/MethodLength: Method has too many lines. [20/10]", 766157172], + [5487, 29, 144, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 1404367793], + [5514, 5, 652, "Metrics/MethodLength: Method has too many lines. [13/10]", 2105803856], + [5533, 38, 140, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 1682835820], + [5563, 5, 577, "Metrics/MethodLength: Method has too many lines. [12/10]", 2659610443], + [5632, 5, 569, "Metrics/MethodLength: Method has too many lines. [14/10]", 20616641], + [5660, 5, 772, "Metrics/AbcSize: Assignment Branch Condition size for `conformance_manifest_review_request_ids` is too high. [<7, 16, 8> 19.21/17]", 3577418475], + [5660, 5, 772, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `conformance_manifest_review_request_ids` is too high. [9/7]", 3577418475], + [5660, 5, 772, "Metrics/MethodLength: Method has too many lines. [14/10]", 3577418475], + [5660, 5, 772, "Metrics/PerceivedComplexity: Perceived complexity for `conformance_manifest_review_request_ids` is too high. [9/8]", 3577418475], + [5714, 5, 606, "Metrics/MethodLength: Method has too many lines. [11/10]", 2675086662], + [5729, 5, 562, "Metrics/MethodLength: Method has too many lines. [11/10]", 3811715870], + [5744, 5, 578, "Metrics/MethodLength: Method has too many lines. [11/10]", 1776197415], + [5759, 5, 1298, "Metrics/AbcSize: Assignment Branch Condition size for `resolve_conformance_family_context` is too high. [<7, 28, 9> 30.23/17]", 4265202259], + [5759, 5, 1298, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `resolve_conformance_family_context` is too high. [10/7]", 4265202259], + [5759, 5, 1298, "Metrics/MethodLength: Method has too many lines. [23/10]", 4265202259], + [5759, 5, 1298, "Metrics/PerceivedComplexity: Perceived complexity for `resolve_conformance_family_context` is too high. [10/8]", 4265202259], + [5788, 5, 1994, "Metrics/AbcSize: Assignment Branch Condition size for `review_conformance_family_context` is too high. [<12, 24, 10> 28.64/17]", 2834851944], + [5788, 5, 1994, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `review_conformance_family_context` is too high. [10/7]", 2834851944], + [5788, 5, 1994, "Metrics/MethodLength: Method has too many lines. [41/10]", 2834851944], + [5788, 5, 1994, "Metrics/PerceivedComplexity: Perceived complexity for `review_conformance_family_context` is too high. [11/8]", 2834851944], + [5811, 121, 33, "Layout/LineLength: Line is too long. [153/120]", 641612328], + [5848, 5, 1844, "Metrics/AbcSize: Assignment Branch Condition size for `select_conformance_case` is too high. [<2, 43, 14> 45.27/17]", 670673209], + [5848, 5, 1844, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `select_conformance_case` is too high. [14/7]", 670673209], + [5848, 5, 1844, "Metrics/MethodLength: Method has too many lines. [30/10]", 670673209], + [5848, 5, 1844, "Metrics/PerceivedComplexity: Perceived complexity for `select_conformance_case` is too high. [16/8]", 670673209], + [5853, 121, 34, "Layout/LineLength: Line is too long. [154/120]", 2135503892], + [5855, 121, 41, "Layout/LineLength: Line is too long. [161/120]", 3932054828], + [5864, 121, 30, "Layout/LineLength: Line is too long. [150/120]", 3169124957], + [5886, 5, 509, "Metrics/MethodLength: Method has too many lines. [11/10]", 3552283123], + [5975, 5, 4195, "Metrics/AbcSize: Assignment Branch Condition size for `review_conformance_manifest` is too high. [<37, 63, 16> 74.79/17]", 2166560528], + [5975, 5, 4195, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `review_conformance_manifest` is too high. [14/7]", 2166560528], + [5975, 5, 4195, "Metrics/MethodLength: Method has too many lines. [89/10]", 2166560528], + [5975, 5, 4195, "Metrics/PerceivedComplexity: Perceived complexity for `review_conformance_manifest` is too high. [17/8]", 2166560528], + [6040, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 2746826653], + [6056, 121, 47, "Layout/LineLength: Line is too long. [167/120]", 3035993839], + [6078, 5, 676, "Metrics/MethodLength: Method has too many lines. [15/10]", 3048335475], + [6101, 5, 1054, "Metrics/AbcSize: Assignment Branch Condition size for `plan_conformance_suite` is too high. [<11, 18, 8> 22.56/17]", 1855254788], + [6101, 5, 1054, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `plan_conformance_suite` is too high. [8/7]", 1855254788], + [6101, 5, 1054, "Metrics/MethodLength: Method has too many lines. [25/10]", 1855254788], + [6101, 31, 84, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 172854173], + [6166, 5, 1274, "Metrics/AbcSize: Assignment Branch Condition size for `plan_named_conformance_suites_with_diagnostics` is too high. [<11, 21, 7> 24.72/17]", 3991300730], + [6166, 5, 1274, "Metrics/MethodLength: Method has too many lines. [27/10]", 3991300730], + [6193, 121, 47, "Layout/LineLength: Line is too long. [167/120]", 3035993839], + [6258, 5, 2071, "Metrics/AbcSize: Assignment Branch Condition size for `review_decision_for_family_context` is too high. [<7, 22, 16> 28.09/17]", 4245377184], + [6258, 5, 2071, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `review_decision_for_family_context` is too high. [12/7]", 4245377184], + [6258, 5, 2071, "Metrics/MethodLength: Method has too many lines. [46/10]", 4245377184], + [6258, 5, 2071, "Metrics/PerceivedComplexity: Perceived complexity for `review_decision_for_family_context` is too high. [12/8]", 4245377184], + [6263, 7, 1766, "Metrics/BlockLength: Block has too many lines. [40/25]", 65448241], + [6315, 5, 686, "Metrics/MethodLength: Method has too many lines. [13/10]", 4030291682] + ], + "lib/ast/merge/ast_node.rb:2037773320": [ + [44, 5, 7086, "Metrics/ClassLength: Class has too many lines. [114/100]", 201314721], + [220, 11, 10, "Naming/PredicatePrefix: Rename `has_error?` to `error?`.", 946854183] + ], + "lib/ast/merge/comment/attachment.rb:2388154769": [ + [42, 23, 180, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [9/5]", 3775370530], + [75, 24, 2, "Lint/SafeNavigationConsistency: Use `.` instead of unnecessary `&.`.", 5858765], + [81, 25, 2, "Lint/SafeNavigationConsistency: Use `.` instead of unnecessary `&.`.", 5858765], + [114, 9, 410, "Metrics/AbcSize: Assignment Branch Condition size for `inspect` is too high. [<1, 17, 4> 17.49/17]", 605978105], + [115, 32, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765] + ], + "lib/ast/merge/comment/augmenter.rb:633395157": [ + [12, 7, 13967, "Metrics/ClassLength: Class has too many lines. [291/100]", 2806660144], + [33, 9, 721, "Metrics/MethodLength: Method has too many lines. [16/10]", 200402816], + [33, 23, 91, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [7/5]", 2938734913], + [64, 9, 1335, "Metrics/AbcSize: Assignment Branch Condition size for `build!` is too high. [<12, 29, 6> 31.95/17]", 3904283188], + [64, 9, 1335, "Metrics/MethodLength: Method has too many lines. [22/10]", 3904283188], + [94, 9, 867, "Metrics/AbcSize: Assignment Branch Condition size for `infer_leading_comments` is too high. [<8, 19, 14> 24.92/17]", 1941464872], + [94, 9, 867, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `infer_leading_comments` is too high. [11/7]", 1941464872], + [94, 9, 867, "Metrics/MethodLength: Method has too many lines. [20/10]", 1941464872], + [94, 9, 867, "Metrics/PerceivedComplexity: Perceived complexity for `infer_leading_comments` is too high. [12/8]", 1941464872], + [122, 9, 429, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `infer_inline_comments` is too high. [8/7]", 2688935834], + [133, 9, 934, "Metrics/AbcSize: Assignment Branch Condition size for `infer_trailing_comments` is too high. [<8, 21, 18> 28.79/17]", 1551855281], + [133, 9, 934, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `infer_trailing_comments` is too high. [15/7]", 1551855281], + [133, 9, 934, "Metrics/MethodLength: Method has too many lines. [20/10]", 1551855281], + [133, 9, 934, "Metrics/PerceivedComplexity: Perceived complexity for `infer_trailing_comments` is too high. [15/8]", 1551855281], + [160, 9, 488, "Metrics/AbcSize: Assignment Branch Condition size for `infer_postlude!` is too high. [<5, 17, 8> 19.44/17]", 2562637949], + [160, 9, 488, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `infer_postlude!` is too high. [8/7]", 2562637949], + [173, 9, 1529, "Metrics/AbcSize: Assignment Branch Condition size for `infer_remaining_regions!` is too high. [<12, 27, 23> 37.44/17]", 3911657050], + [173, 9, 1529, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `infer_remaining_regions!` is too high. [18/7]", 3911657050], + [173, 9, 1529, "Metrics/MethodLength: Method has too many lines. [28/10]", 3911657050], + [173, 9, 1529, "Metrics/PerceivedComplexity: Perceived complexity for `infer_remaining_regions!` is too high. [20/8]", 3911657050], + [216, 9, 507, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `split_preamble_group` is too high. [8/7]", 336784898], + [231, 9, 588, "Metrics/MethodLength: Method has too many lines. [17/10]", 3445626532], + [274, 9, 965, "Metrics/AbcSize: Assignment Branch Condition size for `build_region` is too high. [<6, 17, 7> 19.34/17]", 344809006], + [274, 9, 965, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `build_region` is too high. [8/7]", 344809006], + [274, 9, 965, "Metrics/MethodLength: Method has too many lines. [24/10]", 344809006] + ], + "lib/ast/merge/comment/block.rb:3806757604": [ + [31, 7, 6754, "Metrics/ClassLength: Class has too many lines. [106/100]", 2308582303], + [57, 9, 1059, "Metrics/AbcSize: Assignment Branch Condition size for `initialize` is too high. [<12, 13, 14> 22.56/17]", 2656171724], + [57, 9, 1059, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `initialize` is too high. [14/7]", 2656171724], + [57, 9, 1059, "Metrics/MethodLength: Method has too many lines. [21/10]", 2656171724], + [57, 9, 1059, "Metrics/PerceivedComplexity: Perceived complexity for `initialize` is too high. [15/8]", 2656171724], + [113, 9, 511, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `freeze_action` is too high. [9/7]", 55014877], + [113, 9, 511, "Metrics/MethodLength: Method has too many lines. [12/10]", 55014877], + [113, 9, 511, "Metrics/PerceivedComplexity: Perceived complexity for `freeze_action` is too high. [9/8]", 55014877], + [181, 9, 439, "Metrics/AbcSize: Assignment Branch Condition size for `first_meaningful_content` is too high. [<2, 16, 11> 19.52/17]", 680479883], + [181, 9, 439, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `first_meaningful_content` is too high. [11/7]", 680479883], + [181, 9, 439, "Metrics/PerceivedComplexity: Perceived complexity for `first_meaningful_content` is too high. [12/8]", 680479883], + [197, 9, 765, "Metrics/AbcSize: Assignment Branch Condition size for `extract_block_content` is too high. [<7, 24, 9> 26.57/17]", 621871624], + [197, 9, 765, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `extract_block_content` is too high. [9/7]", 621871624], + [197, 9, 765, "Metrics/PerceivedComplexity: Perceived complexity for `extract_block_content` is too high. [9/8]", 621871624] + ], + "lib/ast/merge/comment/c_style_tracker_base.rb:1569556520": [ + [22, 7, 15053, "Metrics/ClassLength: Class has too many lines. [284/100]", 3599183270], + [83, 9, 509, "Metrics/MethodLength: Method has too many lines. [11/10]", 1639553915], + [102, 9, 492, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `leading_comments_before` is too high. [8/7]", 3127043491], + [102, 9, 492, "Metrics/MethodLength: Method has too many lines. [11/10]", 3127043491], + [124, 9, 487, "Metrics/MethodLength: Method has too many lines. [11/10]", 1869933531], + [176, 9, 713, "Metrics/AbcSize: Assignment Branch Condition size for `trailing_comments_after` is too high. [<6, 12, 13> 18.68/17]", 543703521], + [176, 9, 713, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `trailing_comments_after` is too high. [11/7]", 543703521], + [176, 9, 713, "Metrics/MethodLength: Method has too many lines. [14/10]", 543703521], + [176, 9, 713, "Metrics/PerceivedComplexity: Perceived complexity for `trailing_comments_after` is too high. [11/8]", 543703521], + [184, 121, 1, "Layout/LineLength: Line is too long. [121/120]", 177549], + [202, 9, 598, "Metrics/MethodLength: Method has too many lines. [12/10]", 1628921093], + [222, 9, 1271, "Metrics/MethodLength: Method has too many lines. [21/10]", 612335469], + [222, 35, 137, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 1823300034], + [329, 35, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], + [348, 9, 2271, "Metrics/AbcSize: Assignment Branch Condition size for `extract_comments` is too high. [<17, 32, 13> 38.5/17]", 2751274968], + [348, 9, 2271, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `extract_comments` is too high. [14/7]", 2751274968], + [348, 9, 2271, "Metrics/MethodLength: Method has too many lines. [59/10]", 2751274968], + [348, 9, 2271, "Metrics/PerceivedComplexity: Perceived complexity for `extract_comments` is too high. [14/8]", 2751274968], + [353, 11, 2045, "Metrics/BlockLength: Block has too many lines. [52/25]", 575665179], + [418, 9, 659, "Metrics/MethodLength: Method has too many lines. [15/10]", 177254901], + [439, 71, 4, "Lint/UnusedMethodArgument: Unused method argument - `line`.", 2087656651], + [439, 78, 8, "Lint/UnusedMethodArgument: Unused method argument - `line_num`.", 622661090] + ], + "lib/ast/merge/comment/hash_tracker_base.rb:861186417": [ + [32, 7, 19362, "Metrics/ClassLength: Class has too many lines. [221/100]", 1031055222], + [118, 9, 444, "Metrics/MethodLength: Method has too many lines. [11/10]", 3347260807], + [142, 9, 921, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `leading_comments_before` is too high. [8/7]", 415734636], + [142, 9, 921, "Metrics/MethodLength: Method has too many lines. [11/10]", 415734636], + [172, 9, 440, "Metrics/MethodLength: Method has too many lines. [11/10]", 2464474004], + [225, 9, 623, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `trailing_comments_after` is too high. [10/7]", 543703521], + [225, 9, 623, "Metrics/MethodLength: Method has too many lines. [12/10]", 543703521], + [225, 9, 623, "Metrics/PerceivedComplexity: Perceived complexity for `trailing_comments_after` is too high. [10/8]", 543703521], + [249, 9, 551, "Metrics/MethodLength: Method has too many lines. [12/10]", 2783654570], + [278, 9, 1271, "Metrics/MethodLength: Method has too many lines. [21/10]", 612335469], + [278, 35, 137, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 1823300034], + [374, 35, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], + [439, 9, 826, "Metrics/MethodLength: Method has too many lines. [12/10]", 1706632542] + ], + "lib/ast/merge/comment/parser.rb:2674748021": [ + [34, 7, 8372, "Metrics/ClassLength: Class has too many lines. [141/100]", 2541983664], + [84, 9, 357, "Metrics/MethodLength: Method has too many lines. [12/10]", 2265493710], + [104, 9, 545, "Metrics/AbcSize: Assignment Branch Condition size for `auto_detect_style` is too high. [<5, 17, 7> 19.05/17]", 868366444], + [104, 9, 545, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `auto_detect_style` is too high. [8/7]", 868366444], + [125, 9, 1650, "Metrics/AbcSize: Assignment Branch Condition size for `parse_line_comments` is too high. [<8, 28, 7> 29.95/17]", 1511562163], + [125, 9, 1650, "Metrics/MethodLength: Method has too many lines. [31/10]", 1511562163], + [176, 9, 2670, "Metrics/AbcSize: Assignment Branch Condition size for `parse_with_block_comments` is too high. [<15, 47, 15> 51.57/17]", 2963765048], + [176, 9, 2670, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `parse_with_block_comments` is too high. [15/7]", 2963765048], + [176, 9, 2670, "Metrics/MethodLength: Method has too many lines. [47/10]", 2963765048], + [176, 9, 2670, "Metrics/PerceivedComplexity: Perceived complexity for `parse_with_block_comments` is too high. [16/8]", 2963765048], + [181, 11, 2390, "Metrics/BlockLength: Block has too many lines. [40/25]", 3720582340] + ], + "lib/ast/merge/comment/quoted_hash_line_parser.rb:2878420841": [ + [74, 9, 458, "Metrics/MethodLength: Method has too many lines. [11/10]", 1526360697], + [91, 9, 620, "Metrics/AbcSize: Assignment Branch Condition size for `inline_result` is too high. [<3, 16, 6> 17.35/17]", 2706755447], + [91, 9, 620, "Metrics/MethodLength: Method has too many lines. [14/10]", 2706755447] + ], + "lib/ast/merge/comment/region_merge_policy.rb:176745155": [ + [23, 23, 98, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 1029631546], + [55, 9, 423, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `freeze_sensitive?` is too high. [8/7]", 4102661282], + [61, 41, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], + [61, 85, 2, "Lint/SafeNavigationConsistency: Use `.` instead of unnecessary `&.`.", 5858765], + [96, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 3491399903] + ], + "lib/ast/merge/comment/style.rb:3045051983": [ + [27, 7, 9109, "Metrics/ClassLength: Class has too many lines. [143/100]", 131723516], + [142, 11, 911, "Metrics/MethodLength: Method has too many lines. [17/10]", 355862493], + [142, 23, 164, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [8/5]", 668558018], + [203, 23, 164, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [8/5]", 668558018] + ], + "lib/ast/merge/comment/tracked_hash_adapter.rb:3235547929": [ + [99, 11, 553, "Metrics/AbcSize: Assignment Branch Condition size for `line_text_from` is too high. [<4, 20, 4> 20.78/17]", 2680273536], + [99, 11, 553, "Metrics/MethodLength: Method has too many lines. [13/10]", 2680273536] + ], + "lib/ast/merge/comment_layout_emission_support.rb:3192614990": [ + [12, 5, 14039, "Metrics/ModuleLength: Module has too many lines. [287/100]", 2115648988], + [18, 40, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], + [29, 40, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], + [88, 43, 149, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 1025246092], + [100, 7, 916, "Metrics/MethodLength: Method has too many lines. [11/10]", 3294772058], + [100, 57, 163, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 1661656204], + [122, 7, 730, "Metrics/MethodLength: Method has too many lines. [13/10]", 2493279555], + [139, 62, 6, "Lint/UnusedMethodArgument: Unused method argument - `owners`.", 1719502071], + [193, 7, 477, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `retained_owner_leading_gap_for` is too high. [8/7]", 974771614], + [193, 7, 477, "Metrics/PerceivedComplexity: Perceived complexity for `retained_owner_leading_gap_for` is too high. [9/8]", 974771614], + [194, 40, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], + [220, 23, 24, "Style/SafeNavigation: Use safe navigation (`&.`) instead of checking if an object exists before calling the method.", 1487466207], + [243, 7, 1015, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `root_boundary_lines_for` is too high. [11/7]", 2612519600], + [243, 7, 1015, "Metrics/MethodLength: Method has too many lines. [13/10]", 2612519600], + [243, 7, 1015, "Metrics/PerceivedComplexity: Perceived complexity for `root_boundary_lines_for` is too high. [11/8]", 2612519600], + [247, 34, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], + [271, 7, 959, "Metrics/AbcSize: Assignment Branch Condition size for `owner_bound_root_boundary_lines_for` is too high. [<8, 22, 17> 28.93/17]", 238225688], + [271, 7, 959, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `owner_bound_root_boundary_lines_for` is too high. [16/7]", 238225688], + [271, 7, 959, "Metrics/MethodLength: Method has too many lines. [17/10]", 238225688], + [271, 7, 959, "Metrics/PerceivedComplexity: Perceived complexity for `owner_bound_root_boundary_lines_for` is too high. [15/8]", 238225688], + [307, 7, 912, "Metrics/AbcSize: Assignment Branch Condition size for `root_boundary_range` is too high. [<6, 22, 12> 25.77/17]", 2821370782], + [307, 7, 912, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `root_boundary_range` is too high. [11/7]", 2821370782], + [307, 7, 912, "Metrics/MethodLength: Method has too many lines. [21/10]", 2821370782], + [307, 7, 912, "Metrics/PerceivedComplexity: Perceived complexity for `root_boundary_range` is too high. [12/8]", 2821370782], + [350, 7, 401, "Metrics/MethodLength: Method has too many lines. [11/10]", 559624650] + ], + "lib/ast/merge/composite_match_refiner.rb:1718969703": [ + [58, 7, 668, "Metrics/MethodLength: Method has too many lines. [14/10]", 2649148714] + ], + "lib/ast/merge/conflict_resolver_base.rb:765343263": [ + [69, 5, 14959, "Metrics/ClassLength: Class has too many lines. [170/100]", 633092728], + [156, 7, 919, "Metrics/MethodLength: Method has too many lines. [13/10]", 1701319380], + [156, 21, 200, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [9/5]", 3369976202], + [367, 7, 972, "Metrics/MethodLength: Method has too many lines. [22/10]", 2870739148], + [434, 47, 13, "Style/NumericPredicate: Use `recursive.positive?` instead of `recursive > 0`.", 462999281], + [436, 99, 14, "Style/NumericPredicate: Use `recursive.zero?` instead of `recursive == 0`.", 2394069519] + ], + "lib/ast/merge/content_match_refiner.rb:3628272158": [ + [47, 5, 7719, "Metrics/ClassLength: Class has too many lines. [108/100]", 651494487], + [87, 7, 750, "Metrics/MethodLength: Method has too many lines. [17/10]", 3624290009], + [165, 37, 48, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 953994744], + [232, 7, 846, "Metrics/AbcSize: Assignment Branch Condition size for `levenshtein_distance` is too high. [<13, 29, 8> 32.77/17]", 3597737347], + [232, 7, 846, "Metrics/MethodLength: Method has too many lines. [20/10]", 3597737347] + ], + "lib/ast/merge/debug_logger.rb:1783610128": [ + [72, 5, 7614, "Metrics/ModuleLength: Module has too many lines. [118/100]", 736598454], + [85, 121, 7, "Layout/LineLength: Line is too long. [127/120]", 941621], + [206, 7, 584, "Metrics/AbcSize: Assignment Branch Condition size for `time` is too high. [<3, 17, 2> 17.38/17]", 3468868523], + [206, 7, 584, "Metrics/MethodLength: Method has too many lines. [14/10]", 3468868523], + [269, 7, 450, "Metrics/PerceivedComplexity: Perceived complexity for `extract_lines` is too high. [9/8]", 680738666], + [287, 7, 11, "Style/ModuleFunction: Use `module_function` instead of `extend self`.", 1210897631] + ], + "lib/ast/merge/detector/base.rb:343830240": [ + [175, 25, 73, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 2991095115] + ], + "lib/ast/merge/detector/fenced_code_block.rb:3555142063": [ + [36, 7, 6302, "Metrics/ClassLength: Class has too many lines. [116/100]", 852968953], + [71, 9, 2492, "Metrics/AbcSize: Assignment Branch Condition size for `detect_all` is too high. [<31, 28, 12> 43.46/17]", 3575218793], + [71, 9, 2492, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `detect_all` is too high. [11/7]", 3575218793], + [71, 9, 2492, "Metrics/MethodLength: Method has too many lines. [54/10]", 3575218793], + [71, 9, 2492, "Metrics/PerceivedComplexity: Perceived complexity for `detect_all` is too high. [13/8]", 3575218793], + [84, 11, 2060, "Metrics/BlockLength: Block has too many lines. [41/25]", 1744553779] + ], + "lib/ast/merge/detector/mergeable.rb:354817747": [ + [54, 7, 11933, "Metrics/ModuleLength: Module has too many lines. [140/100]", 1453034870], + [162, 9, 601, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `build_region_configs` is too high. [8/7]", 1278024890], + [162, 9, 601, "Metrics/MethodLength: Method has too many lines. [16/10]", 1278024890], + [189, 9, 1054, "Metrics/AbcSize: Assignment Branch Condition size for `extract_regions` is too high. [<11, 16, 3> 19.65/17]", 663241096], + [189, 9, 1054, "Metrics/MethodLength: Method has too many lines. [20/10]", 663241096], + [285, 9, 1005, "Metrics/AbcSize: Assignment Branch Condition size for `merge_and_substitute_regions` is too high. [<16, 19, 4> 25.16/17]", 4123525156], + [285, 9, 1005, "Metrics/MethodLength: Method has too many lines. [16/10]", 4123525156], + [318, 9, 1369, "Metrics/AbcSize: Assignment Branch Condition size for `merge_region` is too high. [<11, 20, 14> 26.78/17]", 746321843], + [318, 9, 1369, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `merge_region` is too high. [15/7]", 746321843], + [318, 9, 1369, "Metrics/MethodLength: Method has too many lines. [16/10]", 746321843], + [318, 9, 1369, "Metrics/PerceivedComplexity: Perceived complexity for `merge_region` is too high. [15/8]", 746321843] + ], + "lib/ast/merge/detector/toml_frontmatter.rb:3255696517": [ + [50, 9, 892, "Metrics/MethodLength: Method has too many lines. [20/10]", 3132005303] + ], + "lib/ast/merge/detector/yaml_frontmatter.rb:2551474823": [ + [49, 9, 958, "Metrics/MethodLength: Method has too many lines. [20/10]", 3132005303] + ], + "lib/ast/merge/diff_mapper_base.rb:3204989377": [ + [22, 5, 7793, "Metrics/ClassLength: Class has too many lines. [141/100]", 2217731166], + [80, 7, 2598, "Metrics/AbcSize: Assignment Branch Condition size for `parse_diff` is too high. [<21, 31, 15> 40.34/17]", 939898835], + [80, 7, 2598, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `parse_diff` is too high. [16/7]", 939898835], + [80, 7, 2598, "Metrics/MethodLength: Method has too many lines. [65/10]", 939898835], + [80, 7, 2598, "Metrics/PerceivedComplexity: Perceived complexity for `parse_diff` is too high. [12/8]", 939898835], + [90, 9, 2162, "Metrics/BlockLength: Block has too many lines. [50/25]", 3403609416], + [169, 7, 394, "Metrics/MethodLength: Method has too many lines. [11/10]", 2028641628] + ], + "lib/ast/merge/emitter_base.rb:4280054392": [ + [26, 5, 14922, "Metrics/ClassLength: Class has too many lines. [232/100]", 2015391034], + [95, 7, 653, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `emit_comment_region` is too high. [9/7]", 24580929], + [95, 7, 653, "Metrics/MethodLength: Method has too many lines. [12/10]", 24580929], + [95, 7, 653, "Metrics/PerceivedComplexity: Perceived complexity for `emit_comment_region` is too high. [9/8]", 24580929], + [120, 7, 1311, "Metrics/AbcSize: Assignment Branch Condition size for `emit_comment_attachment` is too high. [<5, 25, 16> 30.1/17]", 964928813], + [120, 7, 1311, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `emit_comment_attachment` is too high. [17/7]", 964928813], + [120, 7, 1311, "Metrics/MethodLength: Method has too many lines. [17/10]", 964928813], + [120, 7, 1311, "Metrics/PerceivedComplexity: Perceived complexity for `emit_comment_attachment` is too high. [17/8]", 964928813], + [120, 34, 127, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 628879795], + [152, 7, 984, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `emit_layout_gap` is too high. [8/7]", 1954418889], + [152, 7, 984, "Metrics/MethodLength: Method has too many lines. [13/10]", 1954418889], + [152, 7, 984, "Metrics/PerceivedComplexity: Perceived complexity for `emit_layout_gap` is too high. [9/8]", 1954418889], + [152, 26, 136, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 3839882587], + [183, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5861198], + [184, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2087656651], + [186, 7, 1307, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `emit_layout_attachment` is too high. [9/7]", 708408665], + [186, 7, 1307, "Metrics/MethodLength: Method has too many lines. [26/10]", 708408665], + [186, 7, 1307, "Metrics/PerceivedComplexity: Perceived complexity for `emit_layout_attachment` is too high. [9/8]", 708408665], + [186, 33, 218, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [8/5]", 1552587384], + [187, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 1763090185], + [189, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1371312610], + [271, 31, 17, "Style/NumericPredicate: Use `@indent_level.positive?` instead of `@indent_level > 0`.", 1892475678], + [317, 56, 12, "Lint/UnusedMethodArgument: Unused method argument - `current_line`. You can also write as `inline_comment_region_target_column(*)` if you want the method to accept any arguments but don't care about them.", 2091263933], + [321, 42, 6, "Lint/UnusedMethodArgument: Unused method argument - `region`.", 2124512157], + [321, 51, 13, "Lint/UnusedMethodArgument: Unused method argument - `target_column`.", 3246375805], + [336, 7, 1141, "Metrics/AbcSize: Assignment Branch Condition size for `inline_comment_node_text` is too high. [<6, 29, 8> 30.68/17]", 2583471562], + [336, 7, 1141, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `inline_comment_node_text` is too high. [9/7]", 2583471562], + [336, 7, 1141, "Metrics/MethodLength: Method has too many lines. [22/10]", 2583471562], + [336, 7, 1141, "Metrics/PerceivedComplexity: Perceived complexity for `inline_comment_node_text` is too high. [9/8]", 2583471562], + [354, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5861626], + [365, 7, 510, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `emit_region_gap_lines` is too high. [8/7]", 1999747697], + [365, 7, 510, "Metrics/PerceivedComplexity: Perceived complexity for `emit_region_gap_lines` is too high. [9/8]", 1999747697] + ], + "lib/ast/merge/emitter_line_metadata_support.rb:3153033769": [ + [5, 5, 33, "Style/Documentation: Missing top-level documentation comment for `module Ast::Merge::EmitterLineMetadataSupport`.", 2926748997], + [23, 7, 541, "Metrics/MethodLength: Method has too many lines. [12/10]", 2407359355] + ], + "lib/ast/merge/file_aligner_base.rb:2160333224": [ + [13, 5, 8206, "Metrics/ClassLength: Class has too many lines. [203/100]", 2982381587], + [27, 7, 2329, "Metrics/AbcSize: Assignment Branch Condition size for `align` is too high. [<19, 39, 14> 45.59/17]", 1243937217], + [27, 7, 2329, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `align` is too high. [14/7]", 1243937217], + [27, 7, 2329, "Metrics/MethodLength: Method has too many lines. [56/10]", 1243937217], + [27, 7, 2329, "Metrics/PerceivedComplexity: Perceived complexity for `align` is too high. [14/8]", 1243937217], + [167, 7, 655, "Metrics/MethodLength: Method has too many lines. [14/10]", 2468821688], + [199, 7, 455, "Metrics/MethodLength: Method has too many lines. [13/10]", 2361153066], + [218, 7, 1557, "Metrics/AbcSize: Assignment Branch Condition size for `apply_match_refiner!` is too high. [<10, 28, 12> 32.06/17]", 2386945712], + [218, 7, 1557, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `apply_match_refiner!` is too high. [13/7]", 2386945712], + [218, 7, 1557, "Metrics/MethodLength: Method has too many lines. [31/10]", 2386945712], + [218, 7, 1557, "Metrics/PerceivedComplexity: Perceived complexity for `apply_match_refiner!` is too high. [13/8]", 2386945712] + ], + "lib/ast/merge/file_analyzable.rb:607555963": [ + [36, 5, 31229, "Metrics/ModuleLength: Module has too many lines. [316/100]", 1247752256], + [99, 19, 9, "Style/NumericPredicate: Use `index.negative?` instead of `index < 0`.", 4215255415], + [148, 7, 793, "Metrics/MethodLength: Method has too many lines. [22/10]", 1467470910], + [202, 7, 771, "Metrics/MethodLength: Method has too many lines. [16/10]", 1412317163], + [344, 7, 844, "Metrics/MethodLength: Method has too many lines. [12/10]", 2335919661], + [369, 7, 730, "Metrics/MethodLength: Method has too many lines. [11/10]", 1047958652], + [431, 7, 863, "Metrics/AbcSize: Assignment Branch Condition size for `normalize_layout_owned_comment_attachment` is too high. [<0, 20, 4> 20.4/17]", 3284843691], + [431, 7, 863, "Metrics/MethodLength: Method has too many lines. [17/10]", 3284843691], + [481, 7, 683, "Metrics/MethodLength: Method has too many lines. [15/10]", 241044926], + [520, 14, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], + [614, 7, 6095, "Metrics/AbcSize: Assignment Branch Condition size for `generate_signature` is too high. [<4, 21, 13> 25.02/17]", 2828809875], + [614, 7, 6095, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `generate_signature` is too high. [11/7]", 2828809875], + [614, 7, 6095, "Metrics/MethodLength: Method has too many lines. [30/10]", 2828809875], + [614, 7, 6095, "Metrics/PerceivedComplexity: Perceived complexity for `generate_signature` is too high. [14/8]", 2828809875], + [676, 24, 390, "Metrics/BlockNesting: Avoid more than 3 levels of block nesting.", 3279112483] + ], + "lib/ast/merge/freeze_node_base.rb:2110274026": [ + [59, 5, 14572, "Metrics/ClassLength: Class has too many lines. [171/100]", 3038607603], + [108, 25, 545, "Style/MutableConstant: Freeze mutable objects assigned to constants.", 2366014160], + [186, 9, 1100, "Metrics/MethodLength: Method has too many lines. [15/10]", 2506841532], + [288, 7, 758, "Metrics/MethodLength: Method has too many lines. [11/10]", 136868205], + [288, 21, 276, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [11/5]", 1720059801], + [335, 7, 660, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `reason` is too high. [8/7]", 3127566048], + [418, 20, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765] + ], + "lib/ast/merge/healer.rb:3642412735": [ + [18, 7, 588, "Metrics/MethodLength: Method has too many lines. [15/10]", 3172269921], + [18, 17, 84, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 1781025196], + [41, 7, 687, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `filter_items` is too high. [8/7]", 1200842691], + [41, 7, 687, "Metrics/MethodLength: Method has too many lines. [17/10]", 1200842691], + [41, 7, 687, "Metrics/PerceivedComplexity: Perceived complexity for `filter_items` is too high. [9/8]", 1200842691], + [41, 23, 130, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [8/5]", 33939503] + ], + "lib/ast/merge/jaccard_similarity.rb:678558736": [ + [87, 19, 1, "Naming/MethodParameterName: Method parameter must be at least 3 characters long.", 177604], + [87, 22, 1, "Naming/MethodParameterName: Method parameter must be at least 3 characters long.", 177607] + ], + "lib/ast/merge/key_path_partial_template_merger_base.rb:1818613864": [ + [22, 5, 6114, "Metrics/ClassLength: Class has too many lines. [155/100]", 1269962119], + [43, 21, 214, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [8/5]", 3637591635], + [68, 7, 489, "Metrics/MethodLength: Method has too many lines. [12/10]", 3170411580], + [118, 7, 640, "Metrics/AbcSize: Assignment Branch Condition size for `find_key_path` is too high. [<8, 14, 10> 18.97/17]", 2613403604], + [118, 7, 640, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `find_key_path` is too high. [8/7]", 2613403604], + [118, 7, 640, "Metrics/MethodLength: Method has too many lines. [16/10]", 2613403604], + [118, 7, 640, "Metrics/PerceivedComplexity: Perceived complexity for `find_key_path` is too high. [9/8]", 2613403604], + [140, 7, 536, "Metrics/MethodLength: Method has too many lines. [17/10]", 3598062652], + [168, 7, 804, "Metrics/MethodLength: Method has too many lines. [19/10]", 2773364183] + ], + "lib/ast/merge/layout.rb:3670500101": [ + [23, 36, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765] + ], + "lib/ast/merge/layout/augmenter.rb:3229088287": [ + [8, 7, 5440, "Metrics/ClassLength: Class has too many lines. [128/100]", 2306720287], + [23, 23, 125, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [7/5]", 3395039982], + [55, 9, 1795, "Metrics/AbcSize: Assignment Branch Condition size for `build!` is too high. [<20, 32, 17> 41.39/17]", 3542913254], + [55, 9, 1795, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `build!` is too high. [15/7]", 3542913254], + [55, 9, 1795, "Metrics/MethodLength: Method has too many lines. [43/10]", 3542913254], + [55, 9, 1795, "Metrics/PerceivedComplexity: Perceived complexity for `build!` is too high. [15/8]", 3542913254], + [60, 11, 1227, "Metrics/BlockLength: Block has too many lines. [29/25]", 55360131], + [107, 9, 504, "Metrics/MethodLength: Method has too many lines. [16/10]", 1953725517] + ], + "lib/ast/merge/layout/gap.rb:1678106201": [ + [11, 7, 7558, "Metrics/ClassLength: Class has too many lines. [151/100]", 2254377349], + [23, 9, 655, "Metrics/MethodLength: Method has too many lines. [11/10]", 3584854768], + [23, 23, 146, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [9/5]", 361396001], + [157, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5859545], + [162, 9, 303, "Metrics/MethodLength: Method has too many lines. [12/10]", 2236444774], + [203, 9, 688, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `validate_adjacency!` is too high. [10/7]", 1112786311], + [203, 9, 688, "Metrics/MethodLength: Method has too many lines. [13/10]", 1112786311] + ], + "lib/ast/merge/line_range_support.rb:773479830": [ + [13, 7, 430, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `object_start_line` is too high. [8/7]", 2485070052], + [13, 7, 430, "Metrics/PerceivedComplexity: Perceived complexity for `object_start_line` is too high. [9/8]", 2485070052], + [25, 7, 414, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `object_end_line` is too high. [8/7]", 3545256164], + [25, 7, 414, "Metrics/PerceivedComplexity: Perceived complexity for `object_end_line` is too high. [9/8]", 3545256164] + ], + "lib/ast/merge/match_refiner_base.rb:1760054866": [ + [248, 7, 503, "Metrics/MethodLength: Method has too many lines. [11/10]", 2844230268], + [275, 7, 1056, "Metrics/AbcSize: Assignment Branch Condition size for `greedy_match` is too high. [<9, 24, 8> 26.85/17]", 2497617815], + [275, 7, 1056, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `greedy_match` is too high. [8/7]", 2497617815], + [275, 7, 1056, "Metrics/MethodLength: Method has too many lines. [24/10]", 2497617815] + ], + "lib/ast/merge/merge_result_base.rb:1342312150": [ + [17, 5, 19111, "Metrics/ClassLength: Class has too many lines. [341/100]", 1211564896], + [88, 21, 187, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [7/5]", 1067369198], + [202, 7, 843, "Metrics/AbcSize: Assignment Branch Condition size for `normalize_blank_line_runs!` is too high. [<12, 12, 10> 19.7/17]", 2347011594], + [202, 7, 843, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `normalize_blank_line_runs!` is too high. [9/7]", 2347011594], + [202, 7, 843, "Metrics/MethodLength: Method has too many lines. [22/10]", 2347011594], + [202, 7, 843, "Metrics/PerceivedComplexity: Perceived complexity for `normalize_blank_line_runs!` is too high. [10/8]", 2347011594], + [242, 7, 1004, "Metrics/MethodLength: Method has too many lines. [21/10]", 59539336], + [242, 35, 211, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [8/5]", 709487711], + [281, 7, 602, "Metrics/MethodLength: Method has too many lines. [13/10]", 320027623], + [356, 7, 927, "Metrics/AbcSize: Assignment Branch Condition size for `validate_review_state_compatibility!` is too high. [<8, 15, 4> 17.46/17]", 1596840080], + [356, 7, 927, "Metrics/MethodLength: Method has too many lines. [16/10]", 1596840080], + [418, 7, 936, "Metrics/AbcSize: Assignment Branch Condition size for `review_state_metadata` is too high. [<7, 18, 4> 19.72/17]", 4128292066], + [418, 7, 936, "Metrics/MethodLength: Method has too many lines. [14/10]", 4128292066], + [428, 121, 11, "Layout/LineLength: Line is too long. [131/120]", 20421901], + [453, 7, 1194, "Metrics/MethodLength: Method has too many lines. [21/10]", 4289697646], + [463, 121, 56, "Layout/LineLength: Line is too long. [176/120]", 3342583337] + ], + "lib/ast/merge/merger_config.rb:3582657829": [ + [46, 5, 10581, "Metrics/ClassLength: Class has too many lines. [148/100]", 1598770872], + [96, 21, 234, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [7/5]", 720509970] + ], + "lib/ast/merge/navigable/injection_point_finder.rb:4117743218": [ + [45, 9, 1707, "Metrics/AbcSize: Assignment Branch Condition size for `find` is too high. [<9, 18, 17> 26.34/17]", 1445381162], + [45, 9, 1707, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `find` is too high. [15/7]", 1445381162], + [45, 9, 1707, "Metrics/MethodLength: Method has too many lines. [28/10]", 1445381162], + [45, 9, 1707, "Metrics/PerceivedComplexity: Perceived complexity for `find` is too high. [16/8]", 1445381162], + [45, 17, 156, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [7/5]", 3876813166] + ], + "lib/ast/merge/navigable/statement.rb:3050515622": [ + [42, 7, 11078, "Metrics/ClassLength: Class has too many lines. [179/100]", 2550894515], + [96, 11, 550, "Metrics/AbcSize: Assignment Branch Condition size for `find_matching` is too high. [<7, 16, 12> 21.19/17]", 3492534565], + [96, 11, 550, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `find_matching` is too high. [12/7]", 3492534565], + [96, 11, 550, "Metrics/PerceivedComplexity: Perceived complexity for `find_matching` is too high. [12/8]", 3492534565], + [222, 13, 20, "Naming/PredicatePrefix: Rename `has_tree_navigation?` to `tree_navigation?`.", 733442156] + ], + "lib/ast/merge/node_typing.rb:4008165135": [ + [175, 9, 694, "Metrics/MethodLength: Method has too many lines. [12/10]", 777909930], + [213, 9, 891, "Metrics/AbcSize: Assignment Branch Condition size for `find_typing_callable` is too high. [<3, 23, 13> 26.59/17]", 3835052858], + [213, 9, 891, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `find_typing_callable` is too high. [14/7]", 3835052858], + [213, 9, 891, "Metrics/PerceivedComplexity: Perceived complexity for `find_typing_callable` is too high. [14/8]", 3835052858] + ], + "lib/ast/merge/node_wrapper_base.rb:3796877358": [ + [62, 5, 10228, "Metrics/ClassLength: Class has too many lines. [135/100]", 3832956007], + [92, 21, 81, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 4261369704] + ], + "lib/ast/merge/owner_selection.rb:2568070127": [ + [9, 7, 757, "Metrics/MethodLength: Method has too many lines. [13/10]", 2069564552] + ], + "lib/ast/merge/partial_template_merger_base.rb:2252899061": [ + [27, 5, 16780, "Metrics/ClassLength: Class has too many lines. [266/100]", 2205844189], + [48, 23, 81, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 2112244807], + [106, 7, 757, "Metrics/MethodLength: Method has too many lines. [11/10]", 571708764], + [106, 21, 293, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [11/5]", 871709580], + [135, 7, 788, "Metrics/AbcSize: Assignment Branch Condition size for `merge` is too high. [<4, 19, 5> 20.05/17]", 467674580], + [135, 7, 788, "Metrics/MethodLength: Method has too many lines. [13/10]", 467674580], + [213, 7, 533, "Metrics/AbcSize: Assignment Branch Condition size for `normalize_matcher` is too high. [<7, 20, 6> 22.02/17]", 1798972396], + [238, 7, 922, "Metrics/MethodLength: Method has too many lines. [25/10]", 1846154069], + [242, 25, 37, "Style/StringConcatenation: Prefer string interpolation to string concatenation.", 939456830], + [251, 25, 31, "Style/StringConcatenation: Prefer string interpolation to string concatenation.", 1024894473], + [268, 7, 1905, "Metrics/AbcSize: Assignment Branch Condition size for `perform_section_merge` is too high. [<13, 15, 2> 19.95/17]", 2711014340], + [268, 7, 1905, "Metrics/MethodLength: Method has too many lines. [34/10]", 2711014340], + [316, 50, 15, "Lint/UnusedMethodArgument: Unused method argument - `section_context`.", 2872123372], + [334, 7, 690, "Metrics/MethodLength: Method has too many lines. [14/10]", 1807124523], + [367, 7, 1122, "Metrics/AbcSize: Assignment Branch Condition size for `build_merged_content` is too high. [<1, 29, 14> 32.22/17]", 3938410418], + [367, 7, 1122, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `build_merged_content` is too high. [15/7]", 3938410418], + [367, 7, 1122, "Metrics/MethodLength: Method has too many lines. [18/10]", 3938410418], + [367, 7, 1122, "Metrics/PerceivedComplexity: Perceived complexity for `build_merged_content` is too high. [15/8]", 3938410418], + [397, 7, 596, "Metrics/MethodLength: Method has too many lines. [12/10]", 2602121883], + [397, 32, 144, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [7/5]", 1463491208], + [414, 7, 1589, "Metrics/AbcSize: Assignment Branch Condition size for `source_splice_plan_for` is too high. [<6, 18, 9> 21/17]", 2889667289], + [414, 7, 1589, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `source_splice_plan_for` is too high. [9/7]", 2889667289], + [414, 7, 1589, "Metrics/MethodLength: Method has too many lines. [30/10]", 2889667289], + [414, 7, 1589, "Metrics/PerceivedComplexity: Perceived complexity for `source_splice_plan_for` is too high. [9/8]", 2889667289] + ], + "lib/ast/merge/recipe/config.rb:3990762705": [ + [54, 7, 14970, "Metrics/ClassLength: Class has too many lines. [296/100]", 2492031021], + [142, 9, 673, "Metrics/MethodLength: Method has too many lines. [12/10]", 3011978845], + [170, 9, 484, "Metrics/MethodLength: Method has too many lines. [15/10]", 183356432], + [246, 9, 710, "Metrics/AbcSize: Assignment Branch Condition size for `parse_injection` is too high. [<8, 13, 8> 17.23/17]", 641239814], + [246, 9, 710, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `parse_injection` is too high. [9/7]", 641239814], + [246, 9, 710, "Metrics/MethodLength: Method has too many lines. [16/10]", 641239814], + [246, 9, 710, "Metrics/PerceivedComplexity: Perceived complexity for `parse_injection` is too high. [9/8]", 641239814], + [278, 9, 871, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `parse_step` is too high. [8/7]", 3989307721], + [278, 9, 871, "Metrics/MethodLength: Method has too many lines. [20/10]", 3989307721], + [338, 9, 1758, "Metrics/AbcSize: Assignment Branch Condition size for `parse_step_merge_overrides` is too high. [<11, 43, 25> 50.94/17]", 806370438], + [338, 9, 1758, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `parse_step_merge_overrides` is too high. [22/7]", 806370438], + [338, 9, 1758, "Metrics/MethodLength: Method has too many lines. [30/10]", 806370438], + [338, 9, 1758, "Metrics/PerceivedComplexity: Perceived complexity for `parse_step_merge_overrides` is too high. [22/8]", 806370438], + [373, 9, 566, "Metrics/MethodLength: Method has too many lines. [14/10]", 3671206955], + [391, 9, 547, "Metrics/MethodLength: Method has too many lines. [16/10]", 3273587697], + [459, 9, 799, "Metrics/AbcSize: Assignment Branch Condition size for `validate_injection!` is too high. [<2, 15, 12> 19.31/17]", 1665903587], + [459, 9, 799, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `validate_injection!` is too high. [13/7]", 1665903587], + [459, 9, 799, "Metrics/MethodLength: Method has too many lines. [11/10]", 1665903587], + [459, 9, 799, "Metrics/PerceivedComplexity: Perceived complexity for `validate_injection!` is too high. [13/8]", 1665903587] + ], + "lib/ast/merge/recipe/preset.rb:2311326866": [ + [195, 9, 662, "Metrics/MethodLength: Method has too many lines. [12/10]", 1640897447] + ], + "lib/ast/merge/recipe/runner.rb:2243867806": [ + [27, 7, 28612, "Metrics/ClassLength: Class has too many lines. [547/100]", 79000832], + [73, 121, 28, "Layout/LineLength: Line is too long. [148/120]", 1411864995], + [77, 23, 136, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [8/5]", 1636278032], + [92, 9, 849, "Metrics/MethodLength: Method has too many lines. [14/10]", 3083064345], + [128, 24, 129, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 2642826282], + [210, 9, 788, "Metrics/MethodLength: Method has too many lines. [23/10]", 743008161], + [241, 9, 3397, "Metrics/AbcSize: Assignment Branch Condition size for `create_partial_template_merger` is too high. [<3, 52, 16> 54.49/17]", 2086180075], + [241, 9, 3397, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `create_partial_template_merger` is too high. [14/7]", 2086180075], + [241, 9, 3397, "Metrics/MethodLength: Method has too many lines. [63/10]", 2086180075], + [241, 9, 3397, "Metrics/PerceivedComplexity: Perceived complexity for `create_partial_template_merger` is too high. [13/8]", 2086180075], + [250, 121, 11, "Layout/LineLength: Line is too long. [131/120]", 2857356312], + [274, 121, 1, "Layout/LineLength: Line is too long. [121/120]", 177538], + [312, 9, 2210, "Metrics/AbcSize: Assignment Branch Condition size for `create_smart_merger` is too high. [<1, 39, 7> 39.64/17]", 1694660188], + [312, 9, 2210, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `create_smart_merger` is too high. [8/7]", 1694660188], + [312, 9, 2210, "Metrics/MethodLength: Method has too many lines. [45/10]", 1694660188], + [357, 121, 5, "Layout/LineLength: Line is too long. [125/120]", 195423462], + [370, 9, 1087, "Metrics/MethodLength: Method has too many lines. [24/10]", 3850049530], + [370, 31, 124, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 3466458723], + [401, 9, 1008, "Metrics/MethodLength: Method has too many lines. [19/10]", 2010895303], + [401, 25, 143, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [8/5]", 2360959504], + [424, 9, 1263, "Metrics/AbcSize: Assignment Branch Condition size for `execute_partial_merge_step` is too high. [<3, 22, 1> 22.23/17]", 2850918453], + [424, 9, 1263, "Metrics/MethodLength: Method has too many lines. [25/10]", 2850918453], + [453, 9, 835, "Metrics/MethodLength: Method has too many lines. [14/10]", 1478843287], + [471, 9, 808, "Metrics/MethodLength: Method has too many lines. [15/10]", 1127254660], + [471, 37, 155, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [8/5]", 838578768], + [491, 9, 1126, "Metrics/AbcSize: Assignment Branch Condition size for `normalize_smart_merge_result` is too high. [<8, 17, 12> 22.29/17]", 1786697339], + [491, 9, 1126, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `normalize_smart_merge_result` is too high. [9/7]", 1786697339], + [491, 9, 1126, "Metrics/MethodLength: Method has too many lines. [23/10]", 1786697339], + [491, 9, 1126, "Metrics/PerceivedComplexity: Perceived complexity for `normalize_smart_merge_result` is too high. [11/8]", 1786697339], + [518, 9, 2523, "Metrics/AbcSize: Assignment Branch Condition size for `normalize_script_step_result` is too high. [<5, 40, 32> 51.47/17]", 2162420067], + [518, 9, 2523, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `normalize_script_step_result` is too high. [26/7]", 2162420067], + [518, 9, 2523, "Metrics/MethodLength: Method has too many lines. [48/10]", 2162420067], + [518, 9, 2523, "Metrics/PerceivedComplexity: Perceived complexity for `normalize_script_step_result` is too high. [29/8]", 2162420067], + [547, 121, 18, "Layout/LineLength: Line is too long. [138/120]", 93872446], + [556, 121, 56, "Layout/LineLength: Line is too long. [176/120]", 1527250939], + [586, 11, 155, "Style/HashTransformKeys: Prefer `transform_keys` over `each_with_object`.", 837503672], + [591, 9, 698, "Metrics/MethodLength: Method has too many lines. [11/10]", 1116310304], + [635, 9, 2582, "Metrics/AbcSize: Assignment Branch Condition size for `create_result_from_steps` is too high. [<8, 30, 31> 43.87/17]", 2040042265], + [635, 9, 2582, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `create_result_from_steps` is too high. [23/7]", 2040042265], + [635, 9, 2582, "Metrics/MethodLength: Method has too many lines. [60/10]", 2040042265], + [635, 9, 2582, "Metrics/PerceivedComplexity: Perceived complexity for `create_result_from_steps` is too high. [27/8]", 2040042265], + [635, 37, 133, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 789257106], + [649, 42, 40, "Style/SymbolProc: Pass `&:has_anchor` as an argument to `any?` instead of a block.", 4233626321] + ], + "lib/ast/merge/recipe/script_loader.rb:1397873218": [ + [145, 9, 1126, "Metrics/AbcSize: Assignment Branch Condition size for `load_script_file` is too high. [<6, 19, 4> 20.32/17]", 3417625171], + [145, 9, 1126, "Metrics/MethodLength: Method has too many lines. [17/10]", 3417625171] + ], + "lib/ast/merge/rspec/comment_behavior_matrix_adapters.rb:3429217018": [ + [9, 46, 341, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [9/5]", 532439002], + [31, 9, 901, "Metrics/MethodLength: Method has too many lines. [11/10]", 584608092], + [31, 59, 308, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [8/5]", 883491898], + [54, 9, 1269, "Metrics/MethodLength: Method has too many lines. [20/10]", 1021031182], + [65, 51, 6, "Lint/UnusedBlockArgument: Unused block argument - `inline`. If it's necessary, use `_` or `_inline` as an argument name to indicate that it won't be used.", 1605470060], + [69, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 4226982364], + [70, 121, 11, "Layout/LineLength: Line is too long. [131/120]", 1440420861] + ], + "lib/ast/merge/rspec/conformance_fixtures.rb:1295759615": [ + [6, 7, 26, "Style/Documentation: Missing top-level documentation comment for `module Ast::Merge::RSpec::ConformanceFixtures`.", 90066768], + [9, 9, 1432, "Metrics/AbcSize: Assignment Branch Condition size for `normalize_conformance_fixture_support` is too high. [<10, 30, 33> 45.71/17]", 518714108], + [9, 9, 1432, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `normalize_conformance_fixture_support` is too high. [33/7]", 518714108], + [9, 9, 1432, "Metrics/MethodLength: Method has too many lines. [25/10]", 518714108], + [9, 9, 1432, "Metrics/PerceivedComplexity: Perceived complexity for `normalize_conformance_fixture_support` is too high. [31/8]", 518714108] + ], + "lib/ast/merge/rspec/dependency_tags_config.rb:3604516304": [ + [30, 1, 2102, "Metrics/BlockLength: Block has too many lines. [26/25]", 113766065] + ], + "lib/ast/merge/rspec/merge_gem_registry.rb:3009576030": [ + [58, 7, 12129, "Metrics/ModuleLength: Module has too many lines. [158/100]", 335549747], + [90, 9, 780, "Metrics/MethodLength: Method has too many lines. [14/10]", 978965737], + [90, 21, 99, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 3580433546], + [118, 9, 650, "Metrics/MethodLength: Method has too many lines. [12/10]", 3143160805], + [118, 31, 130, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 2575863904], + [143, 9, 823, "Metrics/MethodLength: Method has too many lines. [17/10]", 4033116153], + [200, 9, 765, "Metrics/AbcSize: Assignment Branch Condition size for `register_known_gems` is too high. [<3, 17, 3> 17.52/17]", 1367620151], + [200, 9, 765, "Metrics/MethodLength: Method has too many lines. [17/10]", 1367620151] + ], + "lib/ast/merge/rspec/shared_examples.rb:151517887": [ + [27, 121, 3, "Layout/LineLength: Line is too long. [123/120]", 193426019], + [31, 121, 7, "Layout/LineLength: Line is too long. [127/120]", 330577472] + ], + "lib/ast/merge/rspec/shared_examples/comment_behavior_matrix.rb:3695671858": [ + [36, 1, 27847, "Metrics/BlockLength: Block has too many lines. [540/25]", 3796645407], + [38, 55, 15, "Style/SymbolProc: Pass `&:value` as an argument to `lambda` instead of a block.", 1808354951], + [42, 64, 23, "Style/SymbolProc: Pass `&:statements` as an argument to `lambda` instead of a block.", 277221641], + [69, 3, 4455, "Metrics/BlockLength: Block has too many lines. [82/25]", 3672334777], + [72, 5, 1763, "Metrics/BlockLength: Block has too many lines. [34/25]", 164750821], + [165, 3, 22093, "Metrics/BlockLength: Block has too many lines. [429/25]", 229312375], + [292, 5, 1918, "Metrics/BlockLength: Block has too many lines. [29/25]", 1312741055], + [323, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1902517440], + [325, 121, 5, "Layout/LineLength: Line is too long. [125/120]", 173482512], + [328, 121, 5, "Layout/LineLength: Line is too long. [125/120]", 167607404], + [476, 5, 1605, "Metrics/BlockLength: Block has too many lines. [35/25]", 1943633697], + [677, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1902517440] + ], + "lib/ast/merge/rspec/shared_examples/conflict_resolver_base.rb:624045197": [ + [30, 1, 7893, "Metrics/BlockLength: Block has too many lines. [197/25]", 3450672926], + [37, 3, 1372, "Metrics/BlockLength: Block has too many lines. [33/25]", 3389152504], + [83, 3, 1206, "Metrics/BlockLength: Block has too many lines. [35/25]", 1580202348], + [128, 3, 1177, "Metrics/BlockLength: Block has too many lines. [33/25]", 2178974049], + [215, 3, 2443, "Metrics/BlockLength: Block has too many lines. [51/25]", 2538475273], + [219, 5, 1909, "Metrics/BlockLength: Block has too many lines. [35/25]", 880175101], + [279, 1, 2518, "Metrics/BlockLength: Block has too many lines. [74/25]", 958151448], + [286, 3, 2235, "Metrics/BlockLength: Block has too many lines. [70/25]", 2123260684], + [391, 1, 1317, "Metrics/BlockLength: Block has too many lines. [37/25]", 2321517041], + [439, 1, 1639, "Metrics/BlockLength: Block has too many lines. [37/25]", 276150366] + ], + "lib/ast/merge/rspec/shared_examples/debug_logger.rb:2747003588": [ + [23, 1, 4741, "Metrics/BlockLength: Block has too many lines. [121/25]", 3341338388], + [47, 3, 976, "Metrics/BlockLength: Block has too many lines. [27/25]", 2640321404], + [85, 3, 1452, "Metrics/BlockLength: Block has too many lines. [34/25]", 554663062] + ], + "lib/ast/merge/rspec/shared_examples/feature_profile.rb:4172143324": [ + [30, 1, 4249, "Metrics/BlockLength: Block has too many lines. [53/25]", 3787230403] + ], + "lib/ast/merge/rspec/shared_examples/file_analyzable.rb:2391547213": [ + [44, 1, 6468, "Metrics/BlockLength: Block has too many lines. [145/25]", 3744642916] + ], + "lib/ast/merge/rspec/shared_examples/freeze_node_base.rb:1711126715": [ + [23, 1, 5952, "Metrics/BlockLength: Block has too many lines. [157/25]", 3152271039], + [29, 3, 2836, "Metrics/BlockLength: Block has too many lines. [69/25]", 2082270913], + [115, 3, 1552, "Metrics/BlockLength: Block has too many lines. [46/25]", 4180117745] + ], + "lib/ast/merge/rspec/shared_examples/layout_attachment.rb:4130619694": [ + [30, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 1263574869], + [31, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 4282300883] + ], + "lib/ast/merge/rspec/shared_examples/layout_augmenter.rb:1928277603": [ + [18, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1311107624], + [19, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1311107624] + ], + "lib/ast/merge/rspec/shared_examples/merge_result_base.rb:2962043558": [ + [18, 1, 2330, "Metrics/BlockLength: Block has too many lines. [67/25]", 3496673178], + [53, 3, 1271, "Metrics/BlockLength: Block has too many lines. [42/25]", 2278976858] + ], + "lib/ast/merge/rspec/shared_examples/merger_config.rb:2413785902": [ + [18, 1, 8240, "Metrics/BlockLength: Block has too many lines. [193/25]", 3665443345], + [57, 3, 1628, "Metrics/BlockLength: Block has too many lines. [32/25]", 7828299], + [98, 3, 1266, "Metrics/BlockLength: Block has too many lines. [28/25]", 317929439], + [159, 3, 1740, "Metrics/BlockLength: Block has too many lines. [42/25]", 1736487820], + [217, 3, 1373, "Metrics/BlockLength: Block has too many lines. [30/25]", 442933563] + ], + "lib/ast/merge/rspec/shared_examples/recipe_preset_contract.rb:1495545061": [ + [7, 1, 2558, "Metrics/BlockLength: Block has too many lines. [51/25]", 4091815632] + ], + "lib/ast/merge/rspec/shared_examples/removal_mode_compliance.rb:3645548199": [ + [24, 1, 1860, "Metrics/BlockLength: Block has too many lines. [33/25]", 1115825136] + ], + "lib/ast/merge/rspec/shared_examples/reproducible_merge.rb:2276592459": [ + [51, 1, 2030, "Metrics/BlockLength: Block has too many lines. [52/25]", 563553381] + ], + "lib/ast/merge/rspec/shared_examples/reproducible_partial_merge.rb:524436129": [ + [3, 1, 2321, "Metrics/BlockLength: Block has too many lines. [44/25]", 3206099540] + ], + "lib/ast/merge/rspec/shared_examples/retained_blank_gap_compliance.rb:2798862618": [ + [3, 1, 1409, "Metrics/BlockLength: Block has too many lines. [34/25]", 3708955218] + ], + "lib/ast/merge/rspec/shared_examples/runtime_debug_contract.rb:4244040583": [ + [8, 1, 2808, "Metrics/BlockLength: Block has too many lines. [48/25]", 3274492878] + ], + "lib/ast/merge/rspec/shared_examples/unresolved_helper_contract.rb:2916431464": [ + [9, 1, 5998, "Metrics/BlockLength: Block has too many lines. [126/25]", 4174562424], + [94, 3, 1515, "Metrics/BlockLength: Block has too many lines. [32/25]", 1928238376] + ], + "lib/ast/merge/rspec/shared_examples/unresolved_review_state_transport_contract.rb:3368966854": [ + [14, 1, 3386, "Metrics/BlockLength: Block has too many lines. [68/25]", 2910343214], + [65, 3, 317, "Metrics/MethodLength: Method has too many lines. [12/10]", 2653897690] + ], + "lib/ast/merge/rspec/shared_examples/unresolved_runtime_contract.rb:1424234700": [ + [10, 1, 2652, "Metrics/BlockLength: Block has too many lines. [42/25]", 960283638], + [31, 121, 10, "Layout/LineLength: Line is too long. [130/120]", 2892620242], + [46, 121, 3, "Layout/LineLength: Line is too long. [123/120]", 193437756] + ], + "lib/ast/merge/rspec/shared_examples/unresolved_runtime_debug_contract.rb:2897026147": [ + [25, 121, 18, "Layout/LineLength: Line is too long. [138/120]", 2418171787], + [26, 121, 5, "Layout/LineLength: Line is too long. [125/120]", 235635831] + ], + "lib/ast/merge/ruleset/config.rb:4242726919": [ + [7, 7, 3664, "Metrics/ClassLength: Class has too many lines. [101/100]", 1968929597], + [36, 9, 933, "Metrics/MethodLength: Method has too many lines. [15/10]", 3334511209], + [36, 23, 319, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [15/5]", 1652945408], + [65, 9, 515, "Metrics/AbcSize: Assignment Branch Condition size for `to_h` is too high. [<0, 18, 3> 18.25/17]", 2614325513], + [65, 9, 515, "Metrics/MethodLength: Method has too many lines. [14/10]", 2614325513] + ], + "lib/ast/merge/ruleset/feature_profile.rb:3980745364": [ + [12, 7, 6054, "Metrics/ClassLength: Class has too many lines. [155/100]", 2818730231], + [29, 9, 1351, "Metrics/AbcSize: Assignment Branch Condition size for `initialize` is too high. [<17, 18, 7> 25.73/17]", 2248702332], + [29, 9, 1351, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `initialize` is too high. [8/7]", 2248702332], + [29, 9, 1351, "Metrics/MethodLength: Method has too many lines. [17/10]", 2248702332], + [29, 23, 422, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [14/5]", 1415781648], + [138, 9, 1509, "Metrics/AbcSize: Assignment Branch Condition size for `to_h` is too high. [<0, 36, 6> 36.5/17]", 3793816437], + [138, 9, 1509, "Metrics/MethodLength: Method has too many lines. [31/10]", 3793816437] + ], + "lib/ast/merge/ruleset/parser.rb:698282871": [ + [7, 7, 9396, "Metrics/ClassLength: Class has too many lines. [199/100]", 1305123525], + [43, 9, 473, "Metrics/AbcSize: Assignment Branch Condition size for `parse` is too high. [<0, 17, 2> 17.12/17]", 1400394586], + [43, 9, 473, "Metrics/MethodLength: Method has too many lines. [12/10]", 1400394586], + [71, 9, 1053, "Metrics/MethodLength: Method has too many lines. [24/10]", 1569959910], + [101, 9, 1123, "Metrics/AbcSize: Assignment Branch Condition size for `parse_single_value_directive!` is too high. [<7, 13, 10> 17.83/17]", 706129883], + [101, 9, 1123, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `parse_single_value_directive!` is too high. [8/7]", 706129883], + [101, 9, 1123, "Metrics/MethodLength: Method has too many lines. [24/10]", 706129883], + [170, 9, 605, "Metrics/MethodLength: Method has too many lines. [11/10]", 336127382], + [186, 9, 687, "Metrics/MethodLength: Method has too many lines. [11/10]", 2962844982] + ], + "lib/ast/merge/ruleset/profile_vocabulary.rb:2359837647": [ + [7, 7, 3956, "Metrics/ModuleLength: Module has too many lines. [107/100]", 1680256705] + ], + "lib/ast/merge/ruleset/runtime_declaration.rb:1016848190": [ + [18, 9, 819, "Metrics/AbcSize: Assignment Branch Condition size for `initialize` is too high. [<11, 13, 5> 17.75/17]", 4043304883], + [18, 9, 819, "Metrics/MethodLength: Method has too many lines. [11/10]", 4043304883], + [18, 23, 240, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [8/5]", 3868000276], + [49, 9, 551, "Metrics/MethodLength: Method has too many lines. [13/10]", 448215861] + ], + "lib/ast/merge/ruleset/runtime_translator.rb:3255492631": [ + [9, 11, 816, "Metrics/MethodLength: Method has too many lines. [19/10]", 225301385], + [31, 11, 986, "Metrics/AbcSize: Assignment Branch Condition size for `feature_profile` is too high. [<1, 17, 0> 17.03/17]", 1395467476], + [31, 11, 986, "Metrics/MethodLength: Method has too many lines. [19/10]", 1395467476] + ], + "lib/ast/merge/ruleset/support_style_resolver.rb:508975884": [ + [9, 11, 864, "Metrics/MethodLength: Method has too many lines. [22/10]", 3902551296] + ], + "lib/ast/merge/runtime/child_result.rb:4083710804": [ + [16, 9, 698, "Metrics/AbcSize: Assignment Branch Condition size for `initialize` is too high. [<7, 16, 2> 17.58/17]", 2208366179], + [16, 23, 227, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [7/5]", 3688358290], + [38, 9, 584, "Metrics/MethodLength: Method has too many lines. [11/10]", 3113479157], + [55, 11, 106, "Style/HashTransformKeys: Prefer `transform_keys` over `each_with_object`.", 4262612225] + ], + "lib/ast/merge/runtime/delegate.rb:3607371286": [ + [17, 23, 285, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [10/5]", 2793452069] + ], + "lib/ast/merge/runtime/diagnostic.rb:805162185": [ + [10, 23, 72, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 1875462867] + ], + "lib/ast/merge/runtime/operation.rb:1030261783": [ + [20, 9, 767, "Metrics/MethodLength: Method has too many lines. [11/10]", 2728174753], + [20, 23, 278, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [10/5]", 694444911], + [100, 9, 617, "Metrics/AbcSize: Assignment Branch Condition size for `to_h` is too high. [<2, 24, 6> 24.82/17]", 1175382849], + [100, 9, 617, "Metrics/MethodLength: Method has too many lines. [11/10]", 1175382849] + ], + "lib/ast/merge/runtime/resolution_case.rb:250040454": [ + [8, 9, 707, "Metrics/AbcSize: Assignment Branch Condition size for `from_h` is too high. [<1, 19, 6> 19.95/17]", 2592154170], + [29, 23, 189, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [7/5]", 818714714], + [81, 11, 111, "Style/HashTransformKeys: Prefer `transform_keys` over `each_with_object`.", 2712537644] + ], + "lib/ast/merge/runtime/root_session_support.rb:1917388966": [ + [10, 9, 2153, "Metrics/AbcSize: Assignment Branch Condition size for `start_runtime_root_session!` is too high. [<5, 20, 3> 20.83/17]", 1888056651], + [10, 9, 2153, "Metrics/MethodLength: Method has too many lines. [41/10]", 1888056651], + [10, 40, 421, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [14/5]", 2297301282], + [60, 121, 10, "Layout/LineLength: Line is too long. [130/120]", 2312419928], + [68, 9, 771, "Metrics/MethodLength: Method has too many lines. [13/10]", 1787620786], + [68, 43, 191, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 3635875424] + ], + "lib/ast/merge/runtime/session.rb:628419040": [ + [66, 9, 1203, "Metrics/AbcSize: Assignment Branch Condition size for `summary` is too high. [<5, 43, 13> 45.2/17]", 550888870], + [66, 9, 1203, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `summary` is too high. [14/7]", 550888870], + [66, 9, 1203, "Metrics/MethodLength: Method has too many lines. [20/10]", 550888870], + [66, 9, 1203, "Metrics/PerceivedComplexity: Perceived complexity for `summary` is too high. [14/8]", 550888870] + ], + "lib/ast/merge/runtime/surface.rb:3684795905": [ + [17, 23, 230, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [8/5]", 469229117], + [44, 9, 418, "Metrics/MethodLength: Method has too many lines. [11/10]", 998969973] + ], + "lib/ast/merge/section_typing.rb:4261989256": [ + [112, 9, 710, "Metrics/MethodLength: Method has too many lines. [15/10]", 3600335459], + [176, 9, 67, "Lint/MissingSuper: Call `super` to initialize state of the parent class.", 4077537758], + [216, 9, 85, "Lint/MissingSuper: Call `super` to initialize state of the parent class.", 3648782014], + [245, 9, 1446, "Metrics/AbcSize: Assignment Branch Condition size for `merge_sections` is too high. [<13, 20, 12> 26.7/17]", 525095633], + [245, 9, 1446, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `merge_sections` is too high. [12/7]", 525095633], + [245, 9, 1446, "Metrics/MethodLength: Method has too many lines. [28/10]", 525095633], + [245, 9, 1446, "Metrics/PerceivedComplexity: Perceived complexity for `merge_sections` is too high. [13/8]", 525095633] + ], + "lib/ast/merge/smart_merger_base.rb:1823596106": [ + [109, 5, 15324, "Metrics/ClassLength: Class has too many lines. [172/100]", 3547407870], + [214, 7, 1974, "Metrics/AbcSize: Assignment Branch Condition size for `initialize` is too high. [<20, 14, 5> 24.92/17]", 2211610736], + [214, 7, 1974, "Metrics/MethodLength: Method has too many lines. [23/10]", 2211610736], + [214, 21, 443, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [15/5]", 1530523783], + [424, 7, 1312, "Metrics/AbcSize: Assignment Branch Condition size for `parse_and_analyze` is too high. [<7, 25, 11> 28.2/17]", 1640248187], + [424, 7, 1312, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `parse_and_analyze` is too high. [10/7]", 1640248187], + [424, 7, 1312, "Metrics/MethodLength: Method has too many lines. [15/10]", 1640248187], + [424, 7, 1312, "Metrics/PerceivedComplexity: Perceived complexity for `parse_and_analyze` is too high. [10/8]", 1640248187], + [517, 12, 52, "Style/NumericPredicate: Use `result_class.instance_method(:initialize).arity.zero?` instead of `result_class.instance_method(:initialize).arity == 0`.", 1312375552] + ], + "lib/ast/merge/source_region_report_support.rb:31261288": [ + [10, 5, 9026, "Metrics/ModuleLength: Module has too many lines. [204/100]", 3211817308], + [13, 7, 1175, "Metrics/MethodLength: Method has too many lines. [19/10]", 351011969], + [13, 49, 232, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [7/5]", 1034046028], + [38, 7, 1409, "Metrics/AbcSize: Assignment Branch Condition size for `source_blank_line_ownership_regions` is too high. [<9, 23, 11> 27.04/17]", 280304508], + [38, 7, 1409, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `source_blank_line_ownership_regions` is too high. [9/7]", 280304508], + [38, 7, 1409, "Metrics/MethodLength: Method has too many lines. [26/10]", 280304508], + [38, 7, 1409, "Metrics/PerceivedComplexity: Perceived complexity for `source_blank_line_ownership_regions` is too high. [11/8]", 280304508], + [69, 7, 1345, "Metrics/AbcSize: Assignment Branch Condition size for `source_interleaved_regions_for_report` is too high. [<10, 13, 6> 17.46/17]", 253205841], + [69, 7, 1345, "Metrics/MethodLength: Method has too many lines. [32/10]", 253205841], + [109, 7, 1638, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `source_interstitial_region_for_report` is too high. [11/7]", 2543419072], + [109, 7, 1638, "Metrics/MethodLength: Method has too many lines. [32/10]", 2543419072], + [109, 7, 1638, "Metrics/PerceivedComplexity: Perceived complexity for `source_interstitial_region_for_report` is too high. [10/8]", 2543419072], + [109, 48, 133, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 2244283058], + [168, 7, 455, "Metrics/MethodLength: Method has too many lines. [12/10]", 1734550115], + [184, 7, 1444, "Metrics/AbcSize: Assignment Branch Condition size for `source_comment_block_attachment` is too high. [<7, 27, 17> 32.66/17]", 2744031837], + [184, 7, 1444, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `source_comment_block_attachment` is too high. [14/7]", 2744031837], + [184, 7, 1444, "Metrics/MethodLength: Method has too many lines. [21/10]", 2744031837], + [184, 7, 1444, "Metrics/PerceivedComplexity: Perceived complexity for `source_comment_block_attachment` is too high. [15/8]", 2744031837], + [184, 42, 133, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 2758724348], + [192, 121, 1, "Layout/LineLength: Line is too long. [121/120]", 177625] + ], + "lib/ast/merge/structural_edit/boundary.rb:2838060197": [ + [20, 23, 93, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 3901214537], + [41, 38, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], + [51, 38, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], + [60, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2087440865] + ], + "lib/ast/merge/structural_edit/boundary_support.rb:3537000977": [ + [32, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5861061], + [33, 121, 5, "Layout/LineLength: Line is too long. [125/120]", 97596930] + ], + "lib/ast/merge/structural_edit/plan_set.rb:538463647": [ + [116, 121, 42, "Layout/LineLength: Line is too long. [162/120]", 2855200692] + ], + "lib/ast/merge/structural_edit/rehome_plan.rb:2152178780": [ + [23, 23, 123, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 3433617242], + [100, 9, 519, "Metrics/MethodLength: Method has too many lines. [11/10]", 318006380], + [136, 121, 48, "Layout/LineLength: Line is too long. [168/120]", 2367140872] + ], + "lib/ast/merge/structural_edit/remove_plan.rb:1189569486": [ + [11, 7, 9717, "Metrics/ClassLength: Class has too many lines. [160/100]", 3652701475], + [25, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5861091], + [27, 9, 1409, "Metrics/MethodLength: Method has too many lines. [22/10]", 3344870777], + [27, 23, 255, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [11/5]", 3970946607], + [28, 121, 40, "Layout/LineLength: Line is too long. [160/120]", 1637059282], + [36, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5859104], + [196, 121, 32, "Layout/LineLength: Line is too long. [152/120]", 1617827253], + [224, 9, 1032, "Metrics/MethodLength: Method has too many lines. [20/10]", 968444047] + ], + "lib/ast/merge/structural_edit/remove_plan_support.rb:877461974": [ + [9, 9, 11, "Style/ModuleFunction: Use `module_function` instead of `extend self`.", 1210897631], + [19, 9, 1429, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `build_remove_plan` is too high. [8/7]", 4091314919], + [19, 9, 1429, "Metrics/MethodLength: Method has too many lines. [32/10]", 4091314919] + ], + "lib/ast/merge/structural_edit/splice_plan.rb:2675806114": [ + [39, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1683893295], + [42, 23, 203, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [9/5]", 3653221702], + [113, 9, 517, "Metrics/MethodLength: Method has too many lines. [11/10]", 634912361] + ], + "lib/ast/merge/structured_emitter_provenance_support.rb:445323365": [ + [5, 5, 41, "Style/Documentation: Missing top-level documentation comment for `module Ast::Merge::StructuredEmitterProvenanceSupport`.", 3548518830] + ], + "lib/ast/merge/structured_review_apply_support.rb:3649736380": [ + [5, 5, 35, "Style/Documentation: Missing top-level documentation comment for `module Ast::Merge::StructuredReviewApplySupport`.", 1282380463], + [22, 7, 782, "Metrics/AbcSize: Assignment Branch Condition size for `current_output_span_for` is too high. [<6, 19, 11> 22.76/17]", 4137750179], + [22, 7, 782, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `current_output_span_for` is too high. [8/7]", 4137750179], + [22, 7, 782, "Metrics/MethodLength: Method has too many lines. [14/10]", 4137750179], + [42, 7, 595, "Metrics/MethodLength: Method has too many lines. [12/10]", 2080934521], + [60, 121, 10, "Layout/LineLength: Line is too long. [130/120]", 3151172498] + ], + "lib/ast/merge/text/conflict_resolver.rb:989169286": [ + [19, 7, 9182, "Metrics/ClassLength: Class has too many lines. [159/100]", 1070563745], + [28, 23, 211, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 2639535499], + [53, 9, 2507, "Metrics/AbcSize: Assignment Branch Condition size for `resolve_batch` is too high. [<15, 34, 5> 37.5/17]", 825130797], + [53, 9, 2507, "Metrics/MethodLength: Method has too many lines. [44/10]", 825130797], + [196, 9, 2458, "Metrics/AbcSize: Assignment Branch Condition size for `resolve_matched_pair` is too high. [<2, 30, 11> 32.02/17]", 4037214978], + [196, 9, 2458, "Metrics/MethodLength: Method has too many lines. [46/10]", 4037214978] + ], + "lib/ast/merge/text/file_analysis.rb:1530312707": [ + [106, 9, 1484, "Metrics/AbcSize: Assignment Branch Condition size for `parse_statements` is too high. [<11, 15, 6> 19.54/17]", 1858083071], + [106, 9, 1484, "Metrics/MethodLength: Method has too many lines. [34/10]", 1858083071], + [160, 9, 449, "Metrics/MethodLength: Method has too many lines. [11/10]", 1902035813] + ], + "lib/ast/merge/text/line_node.rb:3385927013": [ + [145, 9, 699, "Metrics/MethodLength: Method has too many lines. [17/10]", 2201872249] + ], + "lib/ast/merge/text/section_splitter.rb:129704488": [ + [141, 9, 1442, "Metrics/AbcSize: Assignment Branch Condition size for `merge_section_lists` is too high. [<13, 20, 6> 24.6/17]", 3551729170], + [141, 9, 1442, "Metrics/MethodLength: Method has too many lines. [23/10]", 3551729170], + [322, 9, 1767, "Metrics/AbcSize: Assignment Branch Condition size for `split` is too high. [<11, 29, 10> 32.59/17]", 2207922758], + [322, 9, 1767, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `split` is too high. [10/7]", 2207922758], + [322, 9, 1767, "Metrics/MethodLength: Method has too many lines. [46/10]", 2207922758], + [322, 9, 1767, "Metrics/PerceivedComplexity: Perceived complexity for `split` is too high. [13/8]", 2207922758], + [328, 11, 1019, "Metrics/BlockLength: Block has too many lines. [26/25]", 1561634792] + ], + "lib/ast/merge/text/smart_merger.rb:2405807903": [ + [67, 9, 831, "Metrics/MethodLength: Method has too many lines. [12/10]", 584426022], + [67, 23, 350, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [10/5]", 3074172637] + ], + "lib/ast/merge/trailing_groups/alignment_sort.rb:2593404330": [ + [40, 9, 513, "Metrics/MethodLength: Method has too many lines. [12/10]", 89360683] + ], + "lib/ast/merge/trailing_groups/core.rb:4231959665": [ + [61, 9, 812, "Metrics/MethodLength: Method has too many lines. [17/10]", 1777526069], + [101, 9, 998, "Metrics/AbcSize: Assignment Branch Condition size for `flush_ready_trailing_groups` is too high. [<8, 18, 15> 24.76/17]", 2397698441], + [101, 9, 998, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `flush_ready_trailing_groups` is too high. [13/7]", 2397698441], + [101, 9, 998, "Metrics/MethodLength: Method has too many lines. [17/10]", 2397698441], + [101, 9, 998, "Metrics/PerceivedComplexity: Perceived complexity for `flush_ready_trailing_groups` is too high. [13/8]", 2397698441] + ], + "lib/ast/merge/trailing_groups/dest_iterate.rb:3897205087": [ + [69, 9, 751, "Metrics/MethodLength: Method has too many lines. [12/10]", 3915657972], + [69, 47, 199, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 2545849044] + ], + "lib/ast/merge/unresolved_support.rb:2881272494": [ + [7, 5, 24, "Style/Documentation: Missing top-level documentation comment for `module Ast::Merge::UnresolvedSupport`.", 990281691], + [7, 5, 4392, "Metrics/ModuleLength: Module has too many lines. [116/100]", 3475162940], + [32, 20, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], + [67, 20, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], + [85, 7, 1038, "Metrics/MethodLength: Method has too many lines. [14/10]", 3139619197], + [85, 40, 338, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [14/5]", 71164914] + ], + "spec/ast/merge/ast_node_spec.rb:1362065144": [ + [3, 1, 8199, "Metrics/BlockLength: Block has too many lines. [254/25]", 1649868231], + [18, 3, 1030, "Metrics/BlockLength: Block has too many lines. [33/25]", 1409835577] + ], + "spec/ast/merge/block_directive_spec.rb:2305756581": [ + [3, 1, 5181, "Metrics/BlockLength: Block has too many lines. [138/25]", 1887900896], + [128, 3, 1391, "Metrics/BlockLength: Block has too many lines. [39/25]", 3626371694] + ], + "spec/ast/merge/comment/attachment_spec.rb:2571833836": [ + [3, 1, 5536, "Metrics/BlockLength: Block has too many lines. [150/25]", 1841571757], + [93, 3, 1639, "Metrics/BlockLength: Block has too many lines. [37/25]", 212730671] + ], + "spec/ast/merge/comment/augmenter_spec.rb:4266625483": [ + [3, 1, 9141, "Metrics/BlockLength: Block has too many lines. [212/25]", 530365996], + [16, 3, 6849, "Metrics/BlockLength: Block has too many lines. [154/25]", 503152628], + [200, 3, 1244, "Metrics/BlockLength: Block has too many lines. [33/25]", 3565041107] + ], + "spec/ast/merge/comment/block_spec.rb:4138473890": [ + [3, 1, 9021, "Metrics/BlockLength: Block has too many lines. [250/25]", 1617505173], + [8, 3, 1115, "Metrics/BlockLength: Block has too many lines. [27/25]", 2958989619], + [93, 3, 1127, "Metrics/BlockLength: Block has too many lines. [33/25]", 196340527], + [123, 45, 16, "Style/StringConcatenation: Prefer string interpolation to string concatenation.", 155572628], + [159, 3, 1432, "Metrics/BlockLength: Block has too many lines. [35/25]", 281400319] + ], + "spec/ast/merge/comment/c_style_tracker_base_spec.rb:3154319400": [ + [3, 1, 5816, "Metrics/BlockLength: Block has too many lines. [133/25]", 680831933], + [100, 3, 1450, "Metrics/BlockLength: Block has too many lines. [35/25]", 4153882185] + ], + "spec/ast/merge/comment/capability_spec.rb:2763521225": [ + [3, 1, 3522, "Metrics/BlockLength: Block has too many lines. [89/25]", 1487980773], + [4, 3, 1954, "Metrics/BlockLength: Block has too many lines. [41/25]", 160187362] + ], + "spec/ast/merge/comment/empty_spec.rb:1801324640": [ + [3, 1, 2584, "Metrics/BlockLength: Block has too many lines. [70/25]", 270179899], + [4, 3, 1047, "Metrics/BlockLength: Block has too many lines. [27/25]", 3056449816] + ], + "spec/ast/merge/comment/hash_tracker_base_spec.rb:3624528747": [ + [3, 1, 9653, "Metrics/BlockLength: Block has too many lines. [271/25]", 3748659406], + [8, 3, 1210, "Metrics/BlockLength: Block has too many lines. [37/25]", 2566766302], + [21, 7, 872, "Metrics/AbcSize: Assignment Branch Condition size for `extract_comments` is too high. [<7, 24, 5> 25.5/17]", 1213080161], + [21, 7, 872, "Metrics/MethodLength: Method has too many lines. [25/10]", 1213080161], + [275, 3, 1171, "Metrics/BlockLength: Block has too many lines. [29/25]", 1425466742] + ], + "spec/ast/merge/comment/line_spec.rb:1487829548": [ + [3, 1, 5291, "Metrics/BlockLength: Block has too many lines. [128/25]", 587604747], + [6, 3, 1573, "Metrics/BlockLength: Block has too many lines. [37/25]", 4105920006] + ], + "spec/ast/merge/comment/parser_spec.rb:2443973508": [ + [3, 1, 9855, "Metrics/BlockLength: Block has too many lines. [237/25]", 404174977], + [4, 3, 1013, "Metrics/BlockLength: Block has too many lines. [26/25]", 182655397], + [38, 3, 1282, "Metrics/BlockLength: Block has too many lines. [28/25]", 2303702609] + ], + "spec/ast/merge/comment/quoted_hash_line_parser_spec.rb:3795390831": [ + [3, 1, 1810, "Metrics/BlockLength: Block has too many lines. [44/25]", 2575838586], + [6, 3, 1700, "Metrics/BlockLength: Block has too many lines. [41/25]", 1553834548] + ], + "spec/ast/merge/comment/region_merge_policy_spec.rb:4175996936": [ + [3, 1, 3618, "Metrics/BlockLength: Block has too many lines. [75/25]", 4006378358], + [11, 3, 2752, "Metrics/BlockLength: Block has too many lines. [52/25]", 494211987] + ], + "spec/ast/merge/comment/region_spec.rb:2674736508": [ + [3, 1, 4033, "Metrics/BlockLength: Block has too many lines. [91/25]", 1828104331] + ], + "spec/ast/merge/comment/style_spec.rb:1875195890": [ + [3, 1, 4040, "Metrics/BlockLength: Block has too many lines. [101/25]", 2759361650] + ], + "spec/ast/merge/comment/support_style_spec.rb:1350169032": [ + [3, 1, 1577, "Metrics/BlockLength: Block has too many lines. [39/25]", 3414039011] + ], + "spec/ast/merge/comment/tracked_hash_adapter_spec.rb:1256807736": [ + [3, 1, 4482, "Metrics/BlockLength: Block has too many lines. [97/25]", 264417763], + [4, 3, 3101, "Metrics/BlockLength: Block has too many lines. [63/25]", 1050939978], + [81, 3, 1313, "Metrics/BlockLength: Block has too many lines. [30/25]", 515655104] + ], + "spec/ast/merge/comment_layout_emission_support_spec.rb:19704158": [ + [3, 1, 7555, "Metrics/BlockLength: Block has too many lines. [186/25]", 980479163], + [4, 3, 73, "Lint/ConstantDefinitionInBlock: Do not define constants this way within a block.", 3470206647], + [6, 3, 175, "Lint/ConstantDefinitionInBlock: Do not define constants this way within a block.", 622428252], + [16, 3, 93, "Lint/ConstantDefinitionInBlock: Do not define constants this way within a block.", 546547334], + [18, 3, 734, "Lint/ConstantDefinitionInBlock: Do not define constants this way within a block.", 3226190975], + [21, 19, 120, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 3763716348], + [39, 27, 6, "Lint/UnusedMethodArgument: Unused method argument - `owners`. You can also write as `comment_augmenter(*)` if you want the method to accept any arguments but don't care about them.", 1719502071], + [44, 3, 574, "Lint/ConstantDefinitionInBlock: Do not define constants this way within a block.", 1736750341], + [61, 3, 152, "Lint/ConstantDefinitionInBlock: Do not define constants this way within a block.", 1212551629], + [101, 3, 1173, "Metrics/BlockLength: Block has too many lines. [27/25]", 2346194513], + [132, 3, 1624, "Metrics/BlockLength: Block has too many lines. [36/25]", 2359972174] + ], + "spec/ast/merge/comment_spec.rb:81945459": [ + [3, 1, 15888, "Metrics/BlockLength: Block has too many lines. [384/25]", 2229554982], + [4, 3, 3957, "Metrics/BlockLength: Block has too many lines. [84/25]", 660667217], + [5, 5, 1187, "Metrics/BlockLength: Block has too many lines. [26/25]", 241562105], + [105, 3, 1371, "Metrics/BlockLength: Block has too many lines. [30/25]", 1901983597], + [159, 3, 1296, "Metrics/BlockLength: Block has too many lines. [30/25]", 1749880380], + [239, 3, 1151, "Metrics/BlockLength: Block has too many lines. [28/25]", 183967322], + [272, 3, 2004, "Metrics/BlockLength: Block has too many lines. [45/25]", 2594323837], + [349, 3, 3220, "Metrics/BlockLength: Block has too many lines. [83/25]", 790417809], + [350, 5, 2347, "Metrics/BlockLength: Block has too many lines. [60/25]", 4016801881] + ], + "spec/ast/merge/composite_match_refiner_spec.rb:2888297870": [ + [3, 1, 6152, "Metrics/BlockLength: Block has too many lines. [143/25]", 3308692548], + [55, 3, 4118, "Metrics/BlockLength: Block has too many lines. [87/25]", 1405655464] + ], + "spec/ast/merge/conflict_resolver_base_spec.rb:3331938447": [ + [5, 1, 20643, "Metrics/BlockLength: Block has too many lines. [516/25]", 3129196558], + [14, 59, 14, "Lint/UnusedMethodArgument: Unused method argument - `template_index`.", 1809801172], + [14, 76, 10, "Lint/UnusedMethodArgument: Unused method argument - `dest_index`.", 2703999490], + [47, 61, 14, "Lint/UnusedMethodArgument: Unused method argument - `template_index`. You can also write as `resolve_node_pair(*)` if you want the method to accept any arguments but don't care about them.", 1809801172], + [47, 78, 10, "Lint/UnusedMethodArgument: Unused method argument - `dest_index`. You can also write as `resolve_node_pair(*)` if you want the method to accept any arguments but don't care about them.", 2703999490], + [105, 3, 17203, "Metrics/BlockLength: Block has too many lines. [425/25]", 1114912980], + [154, 5, 1797, "Metrics/BlockLength: Block has too many lines. [37/25]", 515146940], + [203, 5, 1373, "Metrics/BlockLength: Block has too many lines. [32/25]", 603210832], + [292, 5, 2874, "Metrics/BlockLength: Block has too many lines. [77/25]", 3918129775], + [341, 7, 1292, "Metrics/BlockLength: Block has too many lines. [34/25]", 1769555944], + [402, 5, 1857, "Metrics/BlockLength: Block has too many lines. [44/25]", 1516406612], + [456, 5, 1209, "Metrics/BlockLength: Block has too many lines. [31/25]", 430489898], + [514, 5, 2021, "Metrics/BlockLength: Block has too many lines. [37/25]", 144128170], + [515, 7, 1953, "Metrics/BlockLength: Block has too many lines. [35/25]", 1574966248], + [567, 5, 1500, "Metrics/BlockLength: Block has too many lines. [40/25]", 2509466150] + ], + "spec/ast/merge/content_match_refiner_spec.rb:4058001158": [ + [3, 1, 14348, "Metrics/BlockLength: Block has too many lines. [318/25]", 1171164704], + [25, 3, 1238, "Metrics/BlockLength: Block has too many lines. [29/25]", 2139810386], + [63, 3, 4077, "Metrics/BlockLength: Block has too many lines. [95/25]", 3471153375], + [325, 3, 2213, "Metrics/BlockLength: Block has too many lines. [37/25]", 3370370915] + ], + "spec/ast/merge/debug_logger_spec.rb:429510168": [ + [3, 1, 17306, "Metrics/BlockLength: Block has too many lines. [358/25]", 2287792973], + [251, 3, 1598, "Metrics/BlockLength: Block has too many lines. [27/25]", 3227542816], + [358, 3, 5118, "Metrics/BlockLength: Block has too many lines. [77/25]", 1759761803] + ], + "spec/ast/merge/detector/base_spec.rb:4157102211": [ + [3, 1, 3172, "Metrics/BlockLength: Block has too many lines. [100/25]", 3745104028], + [11, 7, 498, "Metrics/MethodLength: Method has too many lines. [13/10]", 3178368155], + [49, 3, 900, "Metrics/BlockLength: Block has too many lines. [28/25]", 2333048204] + ], + "spec/ast/merge/detector/fenced_code_block_spec.rb:495797689": [ + [3, 1, 11589, "Metrics/BlockLength: Block has too many lines. [363/25]", 3764545134], + [38, 3, 4467, "Metrics/BlockLength: Block has too many lines. [150/25]", 1597401000], + [41, 5, 1077, "Metrics/BlockLength: Block has too many lines. [31/25]", 2269642514], + [115, 5, 848, "Metrics/BlockLength: Block has too many lines. [27/25]", 1704866975], + [220, 3, 4815, "Metrics/BlockLength: Block has too many lines. [146/25]", 3797214474] + ], + "spec/ast/merge/detector/mergeable_spec.rb:1307688846": [ + [3, 1, 23175, "Metrics/BlockLength: Block has too many lines. [654/25]", 2932391114], + [77, 3, 2079, "Metrics/BlockLength: Block has too many lines. [53/25]", 1093085347], + [177, 3, 2217, "Metrics/BlockLength: Block has too many lines. [69/25]", 926985871], + [188, 5, 948, "Metrics/BlockLength: Block has too many lines. [26/25]", 4186135901], + [225, 5, 898, "Metrics/BlockLength: Block has too many lines. [31/25]", 513446836], + [266, 3, 1168, "Metrics/BlockLength: Block has too many lines. [29/25]", 774699411], + [304, 3, 1188, "Metrics/BlockLength: Block has too many lines. [27/25]", 4282853126], + [339, 3, 918, "Metrics/BlockLength: Block has too many lines. [28/25]", 1759590109], + [372, 3, 870, "Metrics/BlockLength: Block has too many lines. [28/25]", 131542026], + [410, 3, 3768, "Metrics/BlockLength: Block has too many lines. [111/25]", 181819560], + [483, 5, 1536, "Metrics/BlockLength: Block has too many lines. [47/25]", 385085357], + [540, 3, 1891, "Metrics/BlockLength: Block has too many lines. [52/25]", 602757329], + [664, 3, 1927, "Metrics/BlockLength: Block has too many lines. [56/25]", 48062261], + [691, 5, 1146, "Metrics/BlockLength: Block has too many lines. [31/25]", 1961728737], + [721, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 3104497040], + [729, 3, 1625, "Metrics/BlockLength: Block has too many lines. [46/25]", 1570579215] + ], + "spec/ast/merge/detector/region_spec.rb:594725562": [ + [3, 1, 8128, "Metrics/BlockLength: Block has too many lines. [290/25]", 1984713692], + [4, 3, 806, "Metrics/BlockLength: Block has too many lines. [28/25]", 1515087192], + [58, 3, 1236, "Metrics/BlockLength: Block has too many lines. [45/25]", 2464968707], + [128, 3, 1063, "Metrics/BlockLength: Block has too many lines. [33/25]", 239148700], + [250, 3, 2010, "Metrics/BlockLength: Block has too many lines. [76/25]", 2595033382] + ], + "spec/ast/merge/detector/toml_frontmatter_spec.rb:1135160129": [ + [3, 1, 6717, "Metrics/BlockLength: Block has too many lines. [218/25]", 2273975625], + [12, 3, 5534, "Metrics/BlockLength: Block has too many lines. [187/25]", 538920673], + [13, 5, 1456, "Metrics/BlockLength: Block has too many lines. [38/25]", 3113759139] + ], + "spec/ast/merge/detector/yaml_frontmatter_spec.rb:2467934365": [ + [3, 1, 6702, "Metrics/BlockLength: Block has too many lines. [213/25]", 3083039982], + [12, 3, 5056, "Metrics/BlockLength: Block has too many lines. [170/25]", 1889948780], + [13, 5, 1438, "Metrics/BlockLength: Block has too many lines. [38/25]", 1736912391], + [219, 3, 1396, "Metrics/BlockLength: Block has too many lines. [33/25]", 2446467851] + ], + "spec/ast/merge/diff_mapper_base_spec.rb:1771546518": [ + [5, 1, 8521, "Metrics/BlockLength: Block has too many lines. [248/25]", 1057580573], + [22, 9, 44, "Style/InverseMethods: Use `reject` instead of inverting `select`.", 3063843489], + [46, 3, 3878, "Metrics/BlockLength: Block has too many lines. [116/25]", 2874032080], + [47, 5, 1938, "Metrics/BlockLength: Block has too many lines. [48/25]", 1904497583], + [191, 3, 1488, "Metrics/BlockLength: Block has too many lines. [43/25]", 1632956840] + ], + "spec/ast/merge/emitter_base_spec.rb:1099876333": [ + [3, 1, 11967, "Metrics/BlockLength: Block has too many lines. [301/25]", 2970792295], + [56, 3, 4393, "Metrics/BlockLength: Block has too many lines. [102/25]", 3992142376], + [160, 58, 12, "Lint/UnusedMethodArgument: Unused method argument - `current_line`. You can also write as `inline_comment_region_target_column(*)` if you want the method to accept any arguments but don't care about them.", 2091263933], + [164, 44, 6, "Lint/UnusedMethodArgument: Unused method argument - `region`.", 2124512157], + [185, 3, 1815, "Metrics/BlockLength: Block has too many lines. [39/25]", 719023387], + [232, 3, 2233, "Metrics/BlockLength: Block has too many lines. [62/25]", 3754339775], + [338, 3, 1059, "Metrics/BlockLength: Block has too many lines. [26/25]", 375007123] + ], + "spec/ast/merge/fictive_language_harness_spec.rb:1179155480": [ + [6, 1, 6693, "Metrics/BlockLength: Block has too many lines. [143/25]", 245088433], + [7, 3, 1968, "Metrics/BlockLength: Block has too many lines. [36/25]", 4161580169], + [58, 3, 1230, "Metrics/BlockLength: Block has too many lines. [34/25]", 990452676], + [103, 3, 2668, "Metrics/BlockLength: Block has too many lines. [51/25]", 1755027956] + ], + "spec/ast/merge/file_aligner_base_spec.rb:91275387": [ + [5, 1, 9948, "Metrics/BlockLength: Block has too many lines. [217/25]", 3354563411], + [6, 3, 1490, "Metrics/BlockLength: Block has too many lines. [45/25]", 563330990], + [95, 3, 7495, "Metrics/BlockLength: Block has too many lines. [129/25]", 598770279], + [103, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 3749416415], + [163, 5, 1489, "Metrics/BlockLength: Block has too many lines. [26/25]", 2910876949] + ], + "spec/ast/merge/file_analyzable_spec.rb:3816965829": [ + [3, 1, 12458, "Metrics/BlockLength: Block has too many lines. [272/25]", 216138965], + [25, 3, 9603, "Metrics/BlockLength: Block has too many lines. [202/25]", 2508188172], + [297, 3, 1214, "Metrics/BlockLength: Block has too many lines. [30/25]", 777182624] + ], + "spec/ast/merge/freezable_spec.rb:559280324": [ + [5, 1, 5033, "Metrics/BlockLength: Block has too many lines. [123/25]", 3070666859], + [6, 3, 1199, "Metrics/BlockLength: Block has too many lines. [34/25]", 4058875636], + [66, 3, 1530, "Metrics/BlockLength: Block has too many lines. [31/25]", 1670675428] + ], + "spec/ast/merge/freeze_node_base_spec.rb:2962962931": [ + [3, 1, 21887, "Metrics/BlockLength: Block has too many lines. [560/25]", 567315021], + [48, 3, 1369, "Metrics/BlockLength: Block has too many lines. [38/25]", 3363160391], + [131, 3, 2739, "Metrics/BlockLength: Block has too many lines. [56/25]", 2008289622], + [205, 3, 1586, "Metrics/BlockLength: Block has too many lines. [35/25]", 4179606047], + [251, 3, 977, "Metrics/BlockLength: Block has too many lines. [26/25]", 1240612851], + [287, 3, 1130, "Metrics/BlockLength: Block has too many lines. [28/25]", 2511265379], + [322, 3, 5029, "Metrics/BlockLength: Block has too many lines. [126/25]", 739537566], + [598, 3, 3055, "Metrics/BlockLength: Block has too many lines. [81/25]", 145217296] + ], + "spec/ast/merge/healer_spec.rb:877829793": [ + [3, 1, 4896, "Metrics/BlockLength: Block has too many lines. [148/25]", 1074378773], + [19, 3, 1333, "Metrics/BlockLength: Block has too many lines. [38/25]", 2940878263], + [24, 121, 3, "Layout/LineLength: Line is too long. [123/120]", 193432399], + [61, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2085379023], + [67, 3, 2985, "Metrics/BlockLength: Block has too many lines. [93/25]", 4032786576] + ], + "spec/ast/merge/jaccard_similarity_spec.rb:3984307047": [ + [3, 1, 2659, "Metrics/BlockLength: Block has too many lines. [71/25]", 1122516612], + [6, 3, 1484, "Metrics/BlockLength: Block has too many lines. [38/25]", 3367914637], + [55, 3, 1090, "Metrics/BlockLength: Block has too many lines. [28/25]", 2629339264] + ], + "spec/ast/merge/key_path_partial_template_merger_base_spec.rb:2189485360": [ + [5, 1, 5955, "Metrics/BlockLength: Block has too many lines. [138/25]", 91542958], + [35, 3, 1217, "Metrics/BlockLength: Block has too many lines. [33/25]", 2663081123], + [97, 3, 3019, "Metrics/BlockLength: Block has too many lines. [54/25]", 1411952192] + ], + "spec/ast/merge/layout/attachment_spec.rb:3814294426": [ + [3, 1, 1799, "Metrics/BlockLength: Block has too many lines. [34/25]", 1283153367] + ], + "spec/ast/merge/layout/augmenter_spec.rb:3633045915": [ + [3, 1, 4412, "Metrics/BlockLength: Block has too many lines. [92/25]", 2690553031], + [20, 3, 2725, "Metrics/BlockLength: Block has too many lines. [54/25]", 3645203819] + ], + "spec/ast/merge/layout/gap_spec.rb:4232058283": [ + [3, 1, 2758, "Metrics/BlockLength: Block has too many lines. [72/25]", 2052697931], + [9, 3, 1290, "Metrics/BlockLength: Block has too many lines. [28/25]", 3175967312] + ], + "spec/ast/merge/line_range_support_spec.rb:872979873": [ + [3, 1, 1564, "Metrics/BlockLength: Block has too many lines. [35/25]", 1133178812], + [4, 3, 65, "Lint/ConstantDefinitionInBlock: Do not define constants this way within a block.", 2231059390], + [5, 3, 44, "Lint/ConstantDefinitionInBlock: Do not define constants this way within a block.", 1230426940], + [7, 3, 135, "Lint/ConstantDefinitionInBlock: Do not define constants this way within a block.", 1825860348] + ], + "spec/ast/merge/match_refiner_base_spec.rb:3961767223": [ + [3, 1, 10604, "Metrics/BlockLength: Block has too many lines. [301/25]", 4290485382], + [4, 3, 1146, "Metrics/BlockLength: Block has too many lines. [37/25]", 108051658], + [50, 3, 1005, "Metrics/BlockLength: Block has too many lines. [28/25]", 3807648246], + [125, 3, 1026, "Metrics/BlockLength: Block has too many lines. [27/25]", 2896086726], + [162, 3, 4464, "Metrics/BlockLength: Block has too many lines. [114/25]", 2878217135], + [218, 5, 1112, "Metrics/BlockLength: Block has too many lines. [30/25]", 1605825436], + [224, 11, 104, "Style/HashLikeCase: Consider replacing `case-when` with a hash lookup.", 4220899731], + [247, 11, 132, "Style/HashLikeCase: Consider replacing `case-when` with a hash lookup.", 3401820780], + [258, 5, 1642, "Metrics/BlockLength: Block has too many lines. [35/25]", 1288881729], + [337, 3, 1108, "Metrics/BlockLength: Block has too many lines. [33/25]", 2139263963] + ], + "spec/ast/merge/match_score_base_spec.rb:2340739872": [ + [3, 1, 15213, "Metrics/BlockLength: Block has too many lines. [372/25]", 1512747000], + [4, 3, 1553, "Metrics/BlockLength: Block has too many lines. [41/25]", 2789289940], + [43, 20, 2, "Naming/MethodParameterName: Method parameter must be at least 3 characters long.", 5862747], + [43, 24, 2, "Naming/MethodParameterName: Method parameter must be at least 3 characters long.", 5862744], + [56, 3, 1041, "Metrics/BlockLength: Block has too many lines. [29/25]", 3729310115], + [152, 3, 3259, "Metrics/BlockLength: Block has too many lines. [82/25]", 1438003770], + [258, 3, 2199, "Metrics/BlockLength: Block has too many lines. [43/25]", 3386602801], + [320, 3, 1684, "Metrics/BlockLength: Block has too many lines. [35/25]", 3807719546], + [365, 14, 16, "Lint/FloatComparison: Avoid equality comparisons of floats as they are unreliable.", 3787748956], + [369, 3, 1696, "Metrics/BlockLength: Block has too many lines. [36/25]", 3172214426], + [417, 3, 1792, "Metrics/BlockLength: Block has too many lines. [45/25]", 3557977606], + [438, 5, 1121, "Metrics/BlockLength: Block has too many lines. [26/25]", 4236927298] + ], + "spec/ast/merge/merge_result_base_spec.rb:3826389024": [ + [3, 1, 20371, "Metrics/BlockLength: Block has too many lines. [552/25]", 3965341976], + [38, 3, 2735, "Metrics/BlockLength: Block has too many lines. [80/25]", 1103243845], + [312, 3, 1611, "Metrics/BlockLength: Block has too many lines. [39/25]", 1928511417], + [313, 5, 1203, "Metrics/BlockLength: Block has too many lines. [26/25]", 857223227], + [359, 3, 2070, "Metrics/BlockLength: Block has too many lines. [48/25]", 2552826824], + [418, 3, 5769, "Metrics/BlockLength: Block has too many lines. [140/25]", 1457747735], + [544, 5, 1306, "Metrics/BlockLength: Block has too many lines. [29/25]", 2980786372], + [607, 3, 1308, "Metrics/BlockLength: Block has too many lines. [32/25]", 1342704008] + ], + "spec/ast/merge/merger_config_spec.rb:663896662": [ + [5, 1, 7314, "Metrics/BlockLength: Block has too many lines. [189/25]", 1279589310], + [11, 3, 1180, "Metrics/BlockLength: Block has too many lines. [26/25]", 1014009176], + [45, 3, 1151, "Metrics/BlockLength: Block has too many lines. [26/25]", 785276703], + [79, 3, 3574, "Metrics/BlockLength: Block has too many lines. [97/25]", 969726064], + [126, 5, 1158, "Metrics/BlockLength: Block has too many lines. [29/25]", 389808524] + ], + "spec/ast/merge/navigable/injection_point_finder_spec.rb:3693754765": [ + [3, 1, 5152, "Metrics/BlockLength: Block has too many lines. [123/25]", 3265221808], + [15, 3, 4026, "Metrics/BlockLength: Block has too many lines. [96/25]", 1482695302], + [63, 5, 2337, "Metrics/BlockLength: Block has too many lines. [54/25]", 2678200297] + ], + "spec/ast/merge/navigable/injection_point_spec.rb:3295717447": [ + [3, 1, 6032, "Metrics/BlockLength: Block has too many lines. [161/25]", 805025024], + [77, 3, 1083, "Metrics/BlockLength: Block has too many lines. [28/25]", 3091139104] + ], + "spec/ast/merge/navigable/statement_spec.rb:2965726260": [ + [3, 1, 18289, "Metrics/BlockLength: Block has too many lines. [510/25]", 4119203121], + [102, 3, 3570, "Metrics/BlockLength: Block has too many lines. [97/25]", 3287535168], + [156, 5, 2030, "Metrics/BlockLength: Block has too many lines. [51/25]", 3299963733], + [251, 3, 1338, "Metrics/BlockLength: Block has too many lines. [37/25]", 844559624], + [411, 3, 1550, "Metrics/BlockLength: Block has too many lines. [42/25]", 3851790429], + [465, 3, 1372, "Metrics/BlockLength: Block has too many lines. [41/25]", 3782869383] + ], + "spec/ast/merge/node_typing/frozen_wrapper_spec.rb:3823345520": [ + [3, 1, 4532, "Metrics/BlockLength: Block has too many lines. [117/25]", 3944573785] + ], + "spec/ast/merge/node_typing/normalizer_spec.rb:1976431423": [ + [4, 1, 8679, "Metrics/BlockLength: Block has too many lines. [219/25]", 938207310], + [65, 3, 1137, "Metrics/BlockLength: Block has too many lines. [26/25]", 3180807289], + [101, 3, 1404, "Metrics/BlockLength: Block has too many lines. [28/25]", 1094334251], + [216, 3, 875, "Metrics/BlockLength: Block has too many lines. [26/25]", 2755551247] + ], + "spec/ast/merge/node_typing/wrapper_spec.rb:3211588263": [ + [3, 1, 3469, "Metrics/BlockLength: Block has too many lines. [92/25]", 638644563] + ], + "spec/ast/merge/node_typing_spec.rb:4080661389": [ + [3, 1, 12728, "Metrics/BlockLength: Block has too many lines. [333/25]", 3927571381], + [132, 3, 3704, "Metrics/BlockLength: Block has too many lines. [98/25]", 2130243754], + [208, 5, 1267, "Metrics/BlockLength: Block has too many lines. [31/25]", 2816753725], + [265, 3, 1298, "Metrics/BlockLength: Block has too many lines. [33/25]", 3320876250], + [311, 3, 3803, "Metrics/BlockLength: Block has too many lines. [100/25]", 2743470911] + ], + "spec/ast/merge/node_wrapper_base_spec.rb:2252820285": [ + [3, 1, 11681, "Metrics/BlockLength: Block has too many lines. [307/25]", 1698593962], + [32, 3, 2341, "Metrics/BlockLength: Block has too many lines. [68/25]", 1594381363], + [179, 3, 2568, "Metrics/BlockLength: Block has too many lines. [51/25]", 1269052990], + [294, 3, 1252, "Metrics/BlockLength: Block has too many lines. [26/25]", 4220822180], + [329, 3, 1963, "Metrics/BlockLength: Block has too many lines. [39/25]", 1623030031] + ], + "spec/ast/merge/owner_selection_spec.rb:1894901093": [ + [3, 1, 1356, "Metrics/BlockLength: Block has too many lines. [35/25]", 1030003775] + ], + "spec/ast/merge/partial_template_merger_base_spec.rb:3412991027": [ + [3, 1, 7073, "Metrics/BlockLength: Block has too many lines. [145/25]", 3415302240], + [16, 9, 43, "Lint/HashCompareByIdentity: Use `Hash#compare_by_identity` instead of using `object_id` for keys.", 3196404056], + [22, 9, 42, "Lint/HashCompareByIdentity: Use `Hash#compare_by_identity` instead of using `object_id` for keys.", 4116824817], + [48, 20, 2, "Lint/RedundantSafeNavigation: Redundant safe navigation detected, use `.` instead.", 5858765], + [96, 3, 4220, "Metrics/BlockLength: Block has too many lines. [68/25]", 3464417459], + [97, 5, 2029, "Metrics/BlockLength: Block has too many lines. [27/25]", 3297854360], + [138, 5, 2122, "Metrics/BlockLength: Block has too many lines. [37/25]", 1592076374] + ], + "spec/ast/merge/recipe/config_spec.rb:3917288551": [ + [3, 1, 21041, "Metrics/BlockLength: Block has too many lines. [611/25]", 2431235923], + [72, 3, 1653, "Metrics/BlockLength: Block has too many lines. [36/25]", 2702780755], + [174, 3, 1465, "Metrics/BlockLength: Block has too many lines. [44/25]", 2326126933], + [226, 3, 3419, "Metrics/BlockLength: Block has too many lines. [89/25]", 798604841], + [327, 3, 1398, "Metrics/BlockLength: Block has too many lines. [34/25]", 3113267700], + [474, 3, 1184, "Metrics/BlockLength: Block has too many lines. [39/25]", 2599756030], + [519, 3, 4630, "Metrics/BlockLength: Block has too many lines. [147/25]", 1245526575] + ], + "spec/ast/merge/recipe/preset_spec.rb:818394232": [ + [3, 1, 6696, "Metrics/BlockLength: Block has too many lines. [173/25]", 3205615892] + ], + "spec/ast/merge/recipe/runner_spec.rb:3689194117": [ + [3, 1, 46798, "Metrics/BlockLength: Block has too many lines. [1104/25]", 3220015076], + [48, 3, 1128, "Metrics/BlockLength: Block has too many lines. [26/25]", 910457645], + [108, 3, 3036, "Metrics/BlockLength: Block has too many lines. [92/25]", 2112378918], + [132, 5, 881, "Metrics/BlockLength: Block has too many lines. [27/25]", 3842010356], + [177, 5, 918, "Metrics/BlockLength: Block has too many lines. [27/25]", 2152367239], + [295, 3, 1383, "Metrics/BlockLength: Block has too many lines. [41/25]", 2141027559], + [362, 3, 1653, "Metrics/BlockLength: Block has too many lines. [33/25]", 1536472295], + [449, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 3960802027], + [497, 3, 7959, "Metrics/BlockLength: Block has too many lines. [200/25]", 3739116912], + [556, 5, 1225, "Metrics/BlockLength: Block has too many lines. [31/25]", 195497726], + [740, 3, 6977, "Metrics/BlockLength: Block has too many lines. [145/25]", 2805535296], + [748, 5, 2241, "Metrics/BlockLength: Block has too many lines. [49/25]", 2552233173], + [805, 5, 3007, "Metrics/BlockLength: Block has too many lines. [59/25]", 708771722], + [877, 5, 1444, "Metrics/BlockLength: Block has too many lines. [26/25]", 3274225022], + [911, 3, 3258, "Metrics/BlockLength: Block has too many lines. [85/25]", 2346849758], + [1012, 3, 2710, "Metrics/BlockLength: Block has too many lines. [71/25]", 3801821877], + [1029, 5, 1547, "Metrics/BlockLength: Block has too many lines. [42/25]", 2962020615], + [1109, 3, 2240, "Metrics/BlockLength: Block has too many lines. [35/25]", 1139957345], + [1115, 121, 26, "Layout/LineLength: Line is too long. [146/120]", 667314941], + [1117, 121, 26, "Layout/LineLength: Line is too long. [146/120]", 667314941], + [1119, 121, 13, "Layout/LineLength: Line is too long. [133/120]", 1801369636], + [1121, 121, 11, "Layout/LineLength: Line is too long. [131/120]", 2652710920], + [1123, 121, 28, "Layout/LineLength: Line is too long. [148/120]", 1375785821], + [1125, 121, 26, "Layout/LineLength: Line is too long. [146/120]", 632755459], + [1160, 121, 26, "Layout/LineLength: Line is too long. [146/120]", 667314941], + [1162, 121, 26, "Layout/LineLength: Line is too long. [146/120]", 667314941], + [1164, 121, 28, "Layout/LineLength: Line is too long. [148/120]", 1375785821], + [1176, 3, 1472, "Metrics/BlockLength: Block has too many lines. [31/25]", 844153987], + [1181, 121, 25, "Layout/LineLength: Line is too long. [145/120]", 1239303812], + [1183, 121, 28, "Layout/LineLength: Line is too long. [148/120]", 1251336963], + [1216, 3, 2277, "Metrics/BlockLength: Block has too many lines. [43/25]", 4287127386], + [1221, 121, 26, "Layout/LineLength: Line is too long. [146/120]", 667314941], + [1223, 121, 11, "Layout/LineLength: Line is too long. [131/120]", 2652710920], + [1225, 121, 28, "Layout/LineLength: Line is too long. [148/120]", 1375785821], + [1227, 121, 26, "Layout/LineLength: Line is too long. [146/120]", 632755459], + [1274, 121, 44, "Layout/LineLength: Line is too long. [164/120]", 3420615328] + ], + "spec/ast/merge/recipe/script_loader_spec.rb:2136892097": [ + [3, 1, 8554, "Metrics/BlockLength: Block has too many lines. [237/25]", 2314425369], + [45, 3, 2842, "Metrics/BlockLength: Block has too many lines. [75/25]", 168902852], + [155, 3, 1400, "Metrics/BlockLength: Block has too many lines. [39/25]", 1611123964] + ], + "spec/ast/merge/rspec/shared_examples/feature_profile_spec.rb:2654837708": [ + [5, 1, 1140, "Metrics/BlockLength: Block has too many lines. [31/25]", 678325840] + ], + "spec/ast/merge/rspec/shared_examples/file_analyzable_spec.rb:1833922303": [ + [58, 3, 970, "Metrics/AbcSize: Assignment Branch Condition size for `detect_freeze_blocks` is too high. [<16, 9, 5> 19.03/17]", 1533823667], + [58, 3, 970, "Metrics/MethodLength: Method has too many lines. [31/10]", 1533823667], + [104, 1, 1216, "Metrics/BlockLength: Block has too many lines. [39/25]", 1009012120], + [105, 3, 1159, "Metrics/BlockLength: Block has too many lines. [38/25]", 1361521205] + ], + "spec/ast/merge/rspec/shared_examples/layout_attachment_spec.rb:714796658": [ + [8, 1, 957, "Metrics/BlockLength: Block has too many lines. [28/25]", 3738990548] + ], + "spec/ast/merge/rspec/shared_examples/recipe_preset_contract_spec.rb:669158728": [ + [6, 1, 1577, "Metrics/BlockLength: Block has too many lines. [41/25]", 2157464290], + [7, 3, 1512, "Metrics/BlockLength: Block has too many lines. [39/25]", 1968160370], + [44, 5, 401, "Metrics/AbcSize: Assignment Branch Condition size for `run_verify_loaded_preset` is too high. [<0, 26, 0> 26/17]", 2960760840] + ], + "spec/ast/merge/rspec/shared_examples/removal_mode_compliance_spec.rb:31388352": [ + [6, 22, 2, "Style/MutableConstant: Freeze mutable objects assigned to constants.", 5861859], + [44, 1, 2546, "Metrics/BlockLength: Block has too many lines. [77/25]", 3740028971], + [45, 3, 1350, "Metrics/BlockLength: Block has too many lines. [41/25]", 2793151667], + [94, 3, 1128, "Metrics/BlockLength: Block has too many lines. [32/25]", 2527000512], + [95, 5, 1081, "Metrics/BlockLength: Block has too many lines. [30/25]", 3825359844] + ], + "spec/ast/merge/rspec/shared_examples/reproducible_partial_merge_spec.rb:2862326360": [ + [19, 3, 600, "Metrics/MethodLength: Method has too many lines. [13/10]", 1542875905] + ], + "spec/ast/merge/rspec/tree_haver_backend_contract_spec.rb:3942689234": [ + [20, 1, 1737, "Metrics/BlockLength: Block has too many lines. [29/25]", 2339568528] + ], + "spec/ast/merge/ruleset/config_spec.rb:1860949041": [ + [3, 1, 9431, "Metrics/BlockLength: Block has too many lines. [236/25]", 4015119559], + [24, 3, 5341, "Metrics/BlockLength: Block has too many lines. [149/25]", 2361087446], + [25, 5, 1064, "Metrics/BlockLength: Block has too many lines. [26/25]", 603056104], + [226, 3, 2125, "Metrics/BlockLength: Block has too many lines. [36/25]", 1640873170] + ], + "spec/ast/merge/ruleset/declaration_objects_spec.rb:3827892270": [ + [3, 1, 1881, "Metrics/BlockLength: Block has too many lines. [47/25]", 1770376910] + ], + "spec/ast/merge/ruleset/feature_profile_spec.rb:2241111096": [ + [3, 1, 4189, "Metrics/BlockLength: Block has too many lines. [86/25]", 1116963550], + [4, 3, 4129, "Metrics/BlockLength: Block has too many lines. [84/25]", 117079811], + [5, 5, 2391, "Metrics/BlockLength: Block has too many lines. [45/25]", 1800077283] + ], + "spec/ast/merge/ruleset/parser_spec.rb:386407767": [ + [3, 1, 5670, "Metrics/BlockLength: Block has too many lines. [144/25]", 3425850453], + [4, 3, 5618, "Metrics/BlockLength: Block has too many lines. [143/25]", 246633759] + ], + "spec/ast/merge/ruleset/profile_vocabulary_spec.rb:2570869276": [ + [3, 1, 2095, "Metrics/BlockLength: Block has too many lines. [46/25]", 3214342662] + ], + "spec/ast/merge/ruleset/support_style_resolver_spec.rb:640167644": [ + [3, 1, 1625, "Metrics/BlockLength: Block has too many lines. [49/25]", 2066834885], + [4, 3, 1559, "Metrics/BlockLength: Block has too many lines. [47/25]", 1169495477] + ], + "spec/ast/merge/runtime_spec.rb:3962589694": [ + [5, 1, 24649, "Metrics/BlockLength: Block has too many lines. [664/25]", 2634021188], + [76, 3, 1459, "Metrics/BlockLength: Block has too many lines. [41/25]", 3744002593], + [125, 3, 1417, "Metrics/BlockLength: Block has too many lines. [33/25]", 4087615381], + [166, 3, 2549, "Metrics/BlockLength: Block has too many lines. [69/25]", 3150260095], + [175, 5, 1068, "Metrics/BlockLength: Block has too many lines. [26/25]", 2933114685], + [247, 3, 1668, "Metrics/BlockLength: Block has too many lines. [39/25]", 2386637993], + [259, 5, 1265, "Metrics/BlockLength: Block has too many lines. [27/25]", 3157806167], + [321, 3, 10884, "Metrics/BlockLength: Block has too many lines. [295/25]", 1889265918], + [322, 5, 1879, "Metrics/BlockLength: Block has too many lines. [46/25]", 2536583521], + [373, 5, 3938, "Metrics/BlockLength: Block has too many lines. [108/25]", 340276027], + [486, 5, 1270, "Metrics/BlockLength: Block has too many lines. [38/25]", 3844174392], + [528, 5, 3728, "Metrics/BlockLength: Block has too many lines. [95/25]", 3779381786], + [630, 3, 3240, "Metrics/BlockLength: Block has too many lines. [84/25]", 3856725067], + [656, 5, 1649, "Metrics/BlockLength: Block has too many lines. [40/25]", 3713662683] + ], + "spec/ast/merge/section_typing_spec.rb:2580971307": [ + [3, 1, 14786, "Metrics/BlockLength: Block has too many lines. [344/25]", 2925587076], + [4, 3, 1940, "Metrics/BlockLength: Block has too many lines. [50/25]", 3362429388], + [67, 3, 3684, "Metrics/BlockLength: Block has too many lines. [96/25]", 3864076664], + [120, 5, 1998, "Metrics/BlockLength: Block has too many lines. [50/25]", 411620722], + [183, 3, 1415, "Metrics/BlockLength: Block has too many lines. [37/25]", 3323012675], + [192, 5, 1124, "Metrics/BlockLength: Block has too many lines. [28/25]", 966216762], + [229, 3, 1610, "Metrics/BlockLength: Block has too many lines. [38/25]", 1499957007], + [229, 121, 17, "Layout/LineLength: Line is too long. [137/120]", 1025596574], + [279, 3, 4437, "Metrics/BlockLength: Block has too many lines. [80/25]", 423587151], + [356, 36, 23, "Style/SymbolProc: Pass `&:unclassified?` as an argument to `find` instead of a block.", 563945984], + [369, 36, 23, "Style/SymbolProc: Pass `&:unclassified?` as an argument to `find` instead of a block.", 563945984], + [375, 3, 1630, "Metrics/BlockLength: Block has too many lines. [31/25]", 1675144727] + ], + "spec/ast/merge/smart_merger_base_spec.rb:1904727390": [ + [3, 1, 13253, "Metrics/BlockLength: Block has too many lines. [398/25]", 3611753358], + [30, 9, 10, "Style/MultilineBlockChain: Avoid multi-line chains of blocks.", 1099697163], + [87, 3, 1851, "Metrics/BlockLength: Block has too many lines. [40/25]", 3729571903], + [210, 3, 925, "Metrics/BlockLength: Block has too many lines. [35/25]", 2001100899], + [344, 3, 709, "Metrics/BlockLength: Block has too many lines. [27/25]", 3041950416], + [415, 3, 1074, "Metrics/BlockLength: Block has too many lines. [35/25]", 956635689], + [416, 5, 1026, "Metrics/BlockLength: Block has too many lines. [33/25]", 1993879652], + [461, 3, 1031, "Metrics/BlockLength: Block has too many lines. [31/25]", 35315996] + ], + "spec/ast/merge/source_region_report_support_spec.rb:3996528026": [ + [3, 1, 5448, "Metrics/BlockLength: Block has too many lines. [186/25]", 2713581049], + [4, 3, 112, "Lint/ConstantDefinitionInBlock: Do not define constants this way within a block.", 3709101366], + [6, 3, 295, "Lint/ConstantDefinitionInBlock: Do not define constants this way within a block.", 1625952400], + [17, 3, 1473, "Metrics/BlockLength: Block has too many lines. [49/25]", 1435042916], + [70, 3, 1887, "Metrics/BlockLength: Block has too many lines. [66/25]", 1773930426], + [159, 3, 1109, "Metrics/BlockLength: Block has too many lines. [38/25]", 1457507554] + ], + "spec/ast/merge/structural_edit/boundary_support_spec.rb:863387845": [ + [3, 1, 4226, "Metrics/BlockLength: Block has too many lines. [86/25]", 1889771490], + [16, 9, 42, "Lint/HashCompareByIdentity: Use `Hash#compare_by_identity` instead of using `object_id` for keys.", 1304492024], + [22, 9, 41, "Lint/HashCompareByIdentity: Use `Hash#compare_by_identity` instead of using `object_id` for keys.", 3828424401], + [59, 3, 1294, "Metrics/BlockLength: Block has too many lines. [26/25]", 3038774774] + ], + "spec/ast/merge/structural_edit/plan_set_spec.rb:3633263362": [ + [3, 1, 5945, "Metrics/BlockLength: Block has too many lines. [180/25]", 3883285271], + [14, 3, 2139, "Metrics/BlockLength: Block has too many lines. [72/25]", 3558415255], + [128, 3, 1412, "Metrics/BlockLength: Block has too many lines. [39/25]", 1216754705] + ], + "spec/ast/merge/structural_edit/remove_plan_spec.rb:3569534665": [ + [3, 1, 6442, "Metrics/BlockLength: Block has too many lines. [134/25]", 3440814588], + [39, 3, 3768, "Metrics/BlockLength: Block has too many lines. [75/25]", 876721813], + [127, 3, 1439, "Metrics/BlockLength: Block has too many lines. [29/25]", 3378195351] + ], + "spec/ast/merge/structural_edit/remove_plan_support_spec.rb:800158061": [ + [3, 1, 2893, "Metrics/BlockLength: Block has too many lines. [62/25]", 3748446914], + [16, 9, 43, "Lint/HashCompareByIdentity: Use `Hash#compare_by_identity` instead of using `object_id` for keys.", 3196404056], + [22, 9, 42, "Lint/HashCompareByIdentity: Use `Hash#compare_by_identity` instead of using `object_id` for keys.", 4116824817], + [29, 3, 2091, "Metrics/BlockLength: Block has too many lines. [39/25]", 1684933040], + [30, 5, 1653, "Metrics/BlockLength: Block has too many lines. [27/25]", 2456404305] + ], + "spec/ast/merge/structural_edit/splice_plan_spec.rb:3331205681": [ + [3, 1, 3159, "Metrics/BlockLength: Block has too many lines. [83/25]", 2234926397], + [16, 3, 1837, "Metrics/BlockLength: Block has too many lines. [46/25]", 2935991482], + [42, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5860750] + ], + "spec/ast/merge/text/conflict_resolver_spec.rb:3810004132": [ + [5, 1, 9102, "Metrics/BlockLength: Block has too many lines. [218/25]", 672115618], + [33, 3, 8206, "Metrics/BlockLength: Block has too many lines. [194/25]", 259803246], + [78, 5, 1920, "Metrics/BlockLength: Block has too many lines. [45/25]", 3965182334], + [139, 5, 1918, "Metrics/BlockLength: Block has too many lines. [44/25]", 3707046125] + ], + "spec/ast/merge/text/file_analysis_spec.rb:3430380445": [ + [5, 1, 8842, "Metrics/BlockLength: Block has too many lines. [205/25]", 4255187284], + [6, 3, 1323, "Metrics/BlockLength: Block has too many lines. [29/25]", 2518912953], + [47, 3, 1830, "Metrics/BlockLength: Block has too many lines. [43/25]", 3685770590], + [135, 3, 1620, "Metrics/BlockLength: Block has too many lines. [35/25]", 3089951119] + ], + "spec/ast/merge/text/line_node_spec.rb:1757790485": [ + [5, 1, 4739, "Metrics/BlockLength: Block has too many lines. [131/25]", 1487875238] + ], + "spec/ast/merge/text/merge_result_spec.rb:589380024": [ + [5, 1, 1541, "Metrics/BlockLength: Block has too many lines. [40/25]", 2828087992] + ], + "spec/ast/merge/text/section_splitter_spec.rb:804308722": [ + [4, 1, 5705, "Metrics/BlockLength: Block has too many lines. [209/25]", 4175363685], + [5, 3, 794, "Metrics/BlockLength: Block has too many lines. [28/25]", 2386862842], + [42, 3, 1126, "Metrics/BlockLength: Block has too many lines. [45/25]", 1507887296], + [95, 3, 746, "Metrics/BlockLength: Block has too many lines. [30/25]", 1759029412], + [131, 3, 1169, "Metrics/BlockLength: Block has too many lines. [45/25]", 1412318991], + [184, 3, 754, "Metrics/BlockLength: Block has too many lines. [30/25]", 2717556691], + [246, 1, 16648, "Metrics/BlockLength: Block has too many lines. [428/25]", 3166834694], + [370, 3, 1640, "Metrics/BlockLength: Block has too many lines. [46/25]", 2049342960], + [424, 3, 3237, "Metrics/BlockLength: Block has too many lines. [102/25]", 2357275144], + [540, 3, 3505, "Metrics/BlockLength: Block has too many lines. [67/25]", 2112469350], + [619, 3, 3586, "Metrics/BlockLength: Block has too many lines. [90/25]", 3866409298], + [620, 5, 1650, "Metrics/BlockLength: Block has too many lines. [48/25]", 289235626], + [622, 9, 1474, "Metrics/AbcSize: Assignment Branch Condition size for `split` is too high. [<8, 21, 7> 23.54/17]", 557655357], + [622, 9, 1474, "Metrics/MethodLength: Method has too many lines. [41/10]", 557655357], + [622, 9, 1474, "Metrics/PerceivedComplexity: Perceived complexity for `split` is too high. [9/8]", 557655357], + [628, 11, 1237, "Metrics/BlockLength: Block has too many lines. [33/25]", 1134667672], + [717, 29, 44, "Style/StringConcatenation: Prefer string interpolation to string concatenation.", 2169354946], + [723, 29, 44, "Style/StringConcatenation: Prefer string interpolation to string concatenation.", 2169354946], + [751, 1, 3128, "Metrics/BlockLength: Block has too many lines. [85/25]", 2082776744], + [769, 3, 1744, "Metrics/BlockLength: Block has too many lines. [46/25]", 223880162], + [770, 5, 1258, "Metrics/BlockLength: Block has too many lines. [31/25]", 2245422869] + ], + "spec/ast/merge/text/smart_merger_spec.rb:4128732567": [ + [3, 1, 8057, "Metrics/BlockLength: Block has too many lines. [210/25]", 1690443322], + [4, 3, 1135, "Metrics/BlockLength: Block has too many lines. [28/25]", 3788979655], + [58, 3, 4438, "Metrics/BlockLength: Block has too many lines. [106/25]", 2613192474], + [187, 3, 1053, "Metrics/BlockLength: Block has too many lines. [26/25]", 803567817], + [220, 3, 892, "Metrics/BlockLength: Block has too many lines. [28/25]", 2001100899] + ], + "spec/ast/merge/text/word_node_spec.rb:1457011521": [ + [5, 1, 3264, "Metrics/BlockLength: Block has too many lines. [74/25]", 677733430] + ], + "spec/ast/merge/token_match_refiner_spec.rb:3180314913": [ + [3, 1, 4000, "Metrics/BlockLength: Block has too many lines. [80/25]", 1630791278], + [8, 3, 2912, "Metrics/BlockLength: Block has too many lines. [60/25]", 529772148] + ], + "spec/ast/merge/trailing_groups/alignment_sort_spec.rb:1594915480": [ + [5, 1, 4710, "Metrics/BlockLength: Block has too many lines. [114/25]", 2499296583], + [14, 3, 2140, "Metrics/BlockLength: Block has too many lines. [47/25]", 3871799493], + [95, 3, 1482, "Metrics/BlockLength: Block has too many lines. [35/25]", 1088314263] + ], + "spec/ast/merge/trailing_groups/core_spec.rb:2651131504": [ + [5, 1, 9601, "Metrics/BlockLength: Block has too many lines. [242/25]", 598045669], + [22, 3, 3728, "Metrics/BlockLength: Block has too many lines. [87/25]", 1304580063], + [119, 3, 3931, "Metrics/BlockLength: Block has too many lines. [99/25]", 2464218479], + [186, 5, 1322, "Metrics/BlockLength: Block has too many lines. [30/25]", 427915501], + [187, 7, 1267, "Metrics/BlockLength: Block has too many lines. [28/25]", 861882691], + [245, 3, 1306, "Metrics/BlockLength: Block has too many lines. [34/25]", 86572459] + ], + "spec/ast/merge/trailing_groups/dest_iterate_spec.rb:3632880085": [ + [5, 1, 5523, "Metrics/BlockLength: Block has too many lines. [131/25]", 3077369183], + [19, 3, 3990, "Metrics/BlockLength: Block has too many lines. [91/25]", 593259616], + [39, 35, 12, "Style/SymbolProc: Pass `&:sig` as an argument to `lambda` instead of a block.", 3587754320], + [54, 33, 23, "Lint/HashCompareByIdentity: Use `Hash#compare_by_identity` instead of using `object_id` for keys.", 384283629], + [89, 35, 13, "Style/SymbolProc: Pass `&:name` as an argument to `lambda` instead of a block.", 3561384234], + [98, 35, 12, "Style/SymbolProc: Pass `&:sig` as an argument to `lambda` instead of a block.", 3587754320], + [113, 35, 12, "Style/SymbolProc: Pass `&:sig` as an argument to `lambda` instead of a block.", 3587754320] + ], + "spec/ast/merge/unresolved_policy_spec.rb:2561713656": [ + [3, 1, 1333, "Metrics/BlockLength: Block has too many lines. [33/25]", 4109547889] + ], + "spec/ast/merge/unresolved_review_state_spec.rb:3186871217": [ + [3, 1, 1038, "Metrics/BlockLength: Block has too many lines. [31/25]", 1325553035] + ], + "spec/ast/merge_rspec_conformance_fixtures_spec.rb:251774004": [ + [5, 1, 2119, "Metrics/BlockLength: Block has too many lines. [55/25]", 1724925683], + [6, 3, 1203, "Metrics/BlockLength: Block has too many lines. [29/25]", 3306863581] + ], + "spec/ast/merge_spec.rb:664670069": [ + [3, 1, 3113, "Metrics/BlockLength: Block has too many lines. [74/25]", 4034649501], + [9, 3, 2227, "Metrics/BlockLength: Block has too many lines. [51/25]", 578300230], + [10, 5, 2182, "Metrics/BlockLength: Block has too many lines. [49/25]", 2758871265] + ], + "spec/base_substrate_spec.rb:2864492094": [ + [5, 1, 5800, "Metrics/BlockLength: Block has too many lines. [143/25]", 784801982], + [6, 3, 192, "Lint/ConstantDefinitionInBlock: Do not define constants this way within a block.", 680981873], + [13, 3, 378, "Lint/ConstantDefinitionInBlock: Do not define constants this way within a block.", 1223797442], + [31, 3, 628, "Lint/ConstantDefinitionInBlock: Do not define constants this way within a block.", 2123191050], + [53, 3, 429, "Lint/ConstantDefinitionInBlock: Do not define constants this way within a block.", 3536712197], + [69, 3, 24, "Lint/ConstantDefinitionInBlock: Do not define constants this way within a block.", 2280792512], + [70, 3, 78, "Lint/ConstantDefinitionInBlock: Do not define constants this way within a block.", 604224776], + [72, 3, 146, "Lint/ConstantDefinitionInBlock: Do not define constants this way within a block.", 3315091322] + ], + "spec/fixtures_integration_spec.rb:1733315771": [ + [595, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5859109], + [758, 121, 54, "Layout/LineLength: Line is too long. [174/120]", 576909008], + [881, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2087900170], + [1810, 3, 816, "Metrics/MethodLength: Method has too many lines. [13/10]", 170960660], + [1810, 39, 213, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [10/5]", 635200700], + [1811, 121, 27, "Layout/LineLength: Line is too long. [147/120]", 3976306097], + [1835, 38, 80, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 3297939075], + [1920, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1745553512], + [1921, 121, 38, "Layout/LineLength: Line is too long. [158/120]", 118067488], + [1922, 121, 5, "Layout/LineLength: Line is too long. [125/120]", 196190368], + [1923, 121, 41, "Layout/LineLength: Line is too long. [161/120]", 3371256193], + [2094, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 3241114703], + [2432, 121, 1, "Layout/LineLength: Line is too long. [121/120]", 177548], + [2571, 121, 1, "Layout/LineLength: Line is too long. [121/120]", 177548], + [2995, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 3697593604], + [2996, 121, 1, "Layout/LineLength: Line is too long. [121/120]", 177548], + [3117, 121, 5, "Layout/LineLength: Line is too long. [125/120]", 179435314], + [3126, 121, 34, "Layout/LineLength: Line is too long. [154/120]", 1182194285], + [3128, 121, 28, "Layout/LineLength: Line is too long. [148/120]", 3886107031], + [3155, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1751849111], + [3156, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 1519587684], + [3157, 121, 11, "Layout/LineLength: Line is too long. [131/120]", 4086262880], + [3174, 121, 10, "Layout/LineLength: Line is too long. [130/120]", 3568081822], + [3175, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 1776876782], + [3177, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5858795], + [3178, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1751849111], + [3180, 121, 73, "Layout/LineLength: Line is too long. [193/120]", 3322243646], + [3182, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1715153206], + [3183, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5858795], + [3184, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 504997180], + [3185, 121, 44, "Layout/LineLength: Line is too long. [164/120]", 1146860021], + [3186, 121, 38, "Layout/LineLength: Line is too long. [158/120]", 2312101607], + [3187, 121, 42, "Layout/LineLength: Line is too long. [162/120]", 1423779161], + [3188, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1900897138], + [3189, 121, 10, "Layout/LineLength: Line is too long. [130/120]", 1689840383], + [3190, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 1589056236], + [3192, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 763176550], + [3198, 121, 16, "Layout/LineLength: Line is too long. [136/120]", 3957871310], + [3200, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 763176550], + [3202, 121, 10, "Layout/LineLength: Line is too long. [130/120]", 919916608], + [3203, 121, 10, "Layout/LineLength: Line is too long. [130/120]", 919916608], + [3204, 121, 16, "Layout/LineLength: Line is too long. [136/120]", 3957871310], + [3205, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 4073040612], + [3206, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 763176550], + [3207, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 667593075], + [3209, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1310972770], + [3210, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 311387795], + [3211, 121, 18, "Layout/LineLength: Line is too long. [138/120]", 724840266], + [3212, 121, 22, "Layout/LineLength: Line is too long. [142/120]", 2555878310], + [3213, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1781078972], + [3214, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5858795], + [3217, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5858795], + [3218, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 1658060570], + [3219, 121, 40, "Layout/LineLength: Line is too long. [160/120]", 3085728851], + [3220, 121, 44, "Layout/LineLength: Line is too long. [164/120]", 3129400559], + [3221, 121, 10, "Layout/LineLength: Line is too long. [130/120]", 3197516464], + [3222, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2087771520], + [3223, 121, 22, "Layout/LineLength: Line is too long. [142/120]", 3837194228], + [3224, 121, 42, "Layout/LineLength: Line is too long. [162/120]", 1312323543], + [3225, 121, 46, "Layout/LineLength: Line is too long. [166/120]", 2356847623], + [3226, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5858795], + [3227, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 3428073441], + [3228, 121, 40, "Layout/LineLength: Line is too long. [160/120]", 2891080552], + [3229, 121, 44, "Layout/LineLength: Line is too long. [164/120]", 3080737172], + [3230, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 170445026], + [3231, 121, 32, "Layout/LineLength: Line is too long. [152/120]", 3240051869], + [3232, 121, 52, "Layout/LineLength: Line is too long. [172/120]", 4266052680], + [3233, 121, 56, "Layout/LineLength: Line is too long. [176/120]", 3376297786], + [3234, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 398435913], + [3235, 121, 26, "Layout/LineLength: Line is too long. [146/120]", 4134940256], + [3236, 121, 46, "Layout/LineLength: Line is too long. [166/120]", 30370035], + [3237, 121, 50, "Layout/LineLength: Line is too long. [170/120]", 2862546359], + [3238, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 1901388514], + [3239, 121, 38, "Layout/LineLength: Line is too long. [158/120]", 838864274], + [3240, 121, 58, "Layout/LineLength: Line is too long. [178/120]", 3437460384], + [3241, 121, 62, "Layout/LineLength: Line is too long. [182/120]", 1567003152], + [3242, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 2609066305], + [3243, 121, 32, "Layout/LineLength: Line is too long. [152/120]", 4043187090], + [3244, 121, 52, "Layout/LineLength: Line is too long. [172/120]", 3866430009], + [3245, 121, 56, "Layout/LineLength: Line is too long. [176/120]", 2182699083], + [3246, 121, 26, "Layout/LineLength: Line is too long. [146/120]", 3958792129], + [3247, 121, 44, "Layout/LineLength: Line is too long. [164/120]", 3449926560], + [3248, 121, 64, "Layout/LineLength: Line is too long. [184/120]", 399774089], + [3249, 121, 68, "Layout/LineLength: Line is too long. [188/120]", 2119246799], + [3251, 121, 32, "Layout/LineLength: Line is too long. [152/120]", 3592658842], + [3252, 121, 18, "Layout/LineLength: Line is too long. [138/120]", 2905723409], + [3253, 121, 38, "Layout/LineLength: Line is too long. [158/120]", 3930305198], + [3254, 121, 42, "Layout/LineLength: Line is too long. [162/120]", 4186230052], + [3255, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5858795], + [3256, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 2700200720], + [3257, 121, 40, "Layout/LineLength: Line is too long. [160/120]", 1630526402], + [3258, 121, 44, "Layout/LineLength: Line is too long. [164/120]", 3669244926], + [3259, 121, 18, "Layout/LineLength: Line is too long. [138/120]", 2814234644], + [3260, 121, 36, "Layout/LineLength: Line is too long. [156/120]", 3109415933], + [3261, 121, 56, "Layout/LineLength: Line is too long. [176/120]", 3643275044], + [3262, 121, 60, "Layout/LineLength: Line is too long. [180/120]", 3825290660], + [3263, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1751849111], + [3264, 121, 24, "Layout/LineLength: Line is too long. [144/120]", 4112285398], + [3265, 121, 44, "Layout/LineLength: Line is too long. [164/120]", 1684279672], + [3266, 121, 48, "Layout/LineLength: Line is too long. [168/120]", 1616506266], + [3268, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5858795], + [3269, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 1330093223], + [3270, 121, 40, "Layout/LineLength: Line is too long. [160/120]", 4084555566], + [3271, 121, 44, "Layout/LineLength: Line is too long. [164/120]", 2466867154], + [3272, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 4088314613], + [3273, 121, 26, "Layout/LineLength: Line is too long. [146/120]", 2416893689], + [3274, 121, 46, "Layout/LineLength: Line is too long. [166/120]", 683312682], + [3275, 121, 50, "Layout/LineLength: Line is too long. [170/120]", 2516517934], + [3276, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 2414563355], + [3277, 121, 38, "Layout/LineLength: Line is too long. [158/120]", 2232595211], + [3278, 121, 58, "Layout/LineLength: Line is too long. [178/120]", 2940789369], + [3279, 121, 62, "Layout/LineLength: Line is too long. [182/120]", 941259913], + [3280, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 2133508098], + [3281, 121, 26, "Layout/LineLength: Line is too long. [146/120]", 1621975014], + [3282, 121, 46, "Layout/LineLength: Line is too long. [166/120]", 35985461], + [3283, 121, 50, "Layout/LineLength: Line is too long. [170/120]", 746016305], + [3284, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 435488100], + [3285, 121, 38, "Layout/LineLength: Line is too long. [158/120]", 2581129172], + [3286, 121, 58, "Layout/LineLength: Line is too long. [178/120]", 3495900774], + [3287, 121, 62, "Layout/LineLength: Line is too long. [182/120]", 1413120342], + [3288, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5858795], + [3289, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 2333800791], + [3290, 121, 40, "Layout/LineLength: Line is too long. [160/120]", 2576906206], + [3291, 121, 44, "Layout/LineLength: Line is too long. [164/120]", 2986659874], + [3292, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 2811932564], + [3293, 121, 32, "Layout/LineLength: Line is too long. [152/120]", 1970813291], + [3294, 121, 52, "Layout/LineLength: Line is too long. [172/120]", 2904941246], + [3295, 121, 56, "Layout/LineLength: Line is too long. [176/120]", 3745922508], + [3296, 121, 32, "Layout/LineLength: Line is too long. [152/120]", 735247237], + [3297, 121, 50, "Layout/LineLength: Line is too long. [170/120]", 3731320885], + [3298, 121, 70, "Layout/LineLength: Line is too long. [190/120]", 3896022034], + [3299, 121, 74, "Layout/LineLength: Line is too long. [194/120]", 2827048584], + [3300, 121, 44, "Layout/LineLength: Line is too long. [164/120]", 2548596663], + [3301, 121, 62, "Layout/LineLength: Line is too long. [182/120]", 3812352018], + [3302, 121, 82, "Layout/LineLength: Line is too long. [202/120]", 1280243910], + [3303, 121, 86, "Layout/LineLength: Line is too long. [206/120]", 1742643292], + [3304, 121, 40, "Layout/LineLength: Line is too long. [160/120]", 3056442430], + [3305, 121, 58, "Layout/LineLength: Line is too long. [178/120]", 3144363287], + [3306, 121, 78, "Layout/LineLength: Line is too long. [198/120]", 477297993], + [3307, 121, 82, "Layout/LineLength: Line is too long. [202/120]", 3657857971], + [3308, 121, 52, "Layout/LineLength: Line is too long. [172/120]", 3913984414], + [3309, 121, 70, "Layout/LineLength: Line is too long. [190/120]", 336201058], + [3310, 121, 90, "Layout/LineLength: Line is too long. [210/120]", 485418789], + [3311, 121, 94, "Layout/LineLength: Line is too long. [214/120]", 453253839], + [3312, 121, 32, "Layout/LineLength: Line is too long. [152/120]", 3673833034], + [3313, 121, 50, "Layout/LineLength: Line is too long. [170/120]", 1552836890], + [3314, 121, 70, "Layout/LineLength: Line is too long. [190/120]", 2714635965], + [3315, 121, 74, "Layout/LineLength: Line is too long. [194/120]", 9336999], + [3316, 121, 44, "Layout/LineLength: Line is too long. [164/120]", 584857208], + [3317, 121, 62, "Layout/LineLength: Line is too long. [182/120]", 1394865213], + [3318, 121, 82, "Layout/LineLength: Line is too long. [202/120]", 3973222761], + [3319, 121, 86, "Layout/LineLength: Line is too long. [206/120]", 2020040051], + [3320, 121, 34, "Layout/LineLength: Line is too long. [154/120]", 3060994335], + [3321, 121, 52, "Layout/LineLength: Line is too long. [172/120]", 196286917], + [3322, 121, 72, "Layout/LineLength: Line is too long. [192/120]", 4168514178], + [3323, 121, 76, "Layout/LineLength: Line is too long. [196/120]", 810581246], + [3324, 121, 46, "Layout/LineLength: Line is too long. [166/120]", 1473417372], + [3325, 121, 64, "Layout/LineLength: Line is too long. [184/120]", 3008376885], + [3326, 121, 84, "Layout/LineLength: Line is too long. [204/120]", 454816400], + [3327, 121, 88, "Layout/LineLength: Line is too long. [208/120]", 1416223705], + [3328, 121, 48, "Layout/LineLength: Line is too long. [168/120]", 2896813919], + [3329, 121, 66, "Layout/LineLength: Line is too long. [186/120]", 957293983], + [3330, 121, 86, "Layout/LineLength: Line is too long. [206/120]", 2118117430], + [3331, 121, 90, "Layout/LineLength: Line is too long. [210/120]", 1367404612], + [3332, 121, 64, "Layout/LineLength: Line is too long. [184/120]", 2459902188], + [3333, 121, 62, "Layout/LineLength: Line is too long. [182/120]", 461483815], + [3334, 121, 62, "Layout/LineLength: Line is too long. [182/120]", 2791596520], + [3335, 121, 60, "Layout/LineLength: Line is too long. [180/120]", 203085787], + [3336, 121, 64, "Layout/LineLength: Line is too long. [184/120]", 2942095139], + [3337, 121, 80, "Layout/LineLength: Line is too long. [200/120]", 131861965], + [3338, 121, 86, "Layout/LineLength: Line is too long. [206/120]", 3340827551], + [3339, 121, 90, "Layout/LineLength: Line is too long. [210/120]", 102582610], + [3340, 121, 94, "Layout/LineLength: Line is too long. [214/120]", 762789354], + [3341, 121, 90, "Layout/LineLength: Line is too long. [210/120]", 3478337442], + [3342, 121, 112, "Layout/LineLength: Line is too long. [232/120]", 4010607435], + [3343, 121, 132, "Layout/LineLength: Line is too long. [252/120]", 3754747587], + [3344, 121, 136, "Layout/LineLength: Line is too long. [256/120]", 379336923], + [3345, 121, 108, "Layout/LineLength: Line is too long. [228/120]", 3366353902], + [3346, 121, 128, "Layout/LineLength: Line is too long. [248/120]", 1686898289], + [3347, 121, 132, "Layout/LineLength: Line is too long. [252/120]", 2005192241], + [3348, 121, 104, "Layout/LineLength: Line is too long. [224/120]", 1868634464], + [3349, 121, 124, "Layout/LineLength: Line is too long. [244/120]", 3939743614], + [3350, 121, 128, "Layout/LineLength: Line is too long. [248/120]", 2978506702], + [3351, 121, 98, "Layout/LineLength: Line is too long. [218/120]", 3909866928], + [3352, 121, 118, "Layout/LineLength: Line is too long. [238/120]", 2853032177], + [3353, 121, 122, "Layout/LineLength: Line is too long. [242/120]", 2968366309], + [3354, 121, 82, "Layout/LineLength: Line is too long. [202/120]", 1753663643], + [3355, 121, 102, "Layout/LineLength: Line is too long. [222/120]", 3387619436], + [3356, 121, 106, "Layout/LineLength: Line is too long. [226/120]", 197895496], + [3357, 121, 78, "Layout/LineLength: Line is too long. [198/120]", 576181861], + [3358, 121, 98, "Layout/LineLength: Line is too long. [218/120]", 2809313444], + [3359, 121, 102, "Layout/LineLength: Line is too long. [222/120]", 3963067112], + [3360, 121, 80, "Layout/LineLength: Line is too long. [200/120]", 1121380327], + [3361, 121, 100, "Layout/LineLength: Line is too long. [220/120]", 31591211], + [3362, 121, 104, "Layout/LineLength: Line is too long. [224/120]", 1946129497], + [3363, 121, 80, "Layout/LineLength: Line is too long. [200/120]", 767185096], + [3364, 121, 100, "Layout/LineLength: Line is too long. [220/120]", 1092646020], + [3365, 121, 104, "Layout/LineLength: Line is too long. [224/120]", 1328841270], + [3366, 121, 74, "Layout/LineLength: Line is too long. [194/120]", 2663749624], + [3367, 121, 74, "Layout/LineLength: Line is too long. [194/120]", 430318647], + [3368, 121, 72, "Layout/LineLength: Line is too long. [192/120]", 1650234037], + [3369, 121, 76, "Layout/LineLength: Line is too long. [196/120]", 1082269805], + [3370, 121, 92, "Layout/LineLength: Line is too long. [212/120]", 316397809], + [3371, 121, 92, "Layout/LineLength: Line is too long. [212/120]", 3145391348], + [3372, 121, 112, "Layout/LineLength: Line is too long. [232/120]", 2808088654], + [3373, 121, 116, "Layout/LineLength: Line is too long. [236/120]", 1035513748], + [3374, 121, 92, "Layout/LineLength: Line is too long. [212/120]", 2552800539], + [3375, 121, 112, "Layout/LineLength: Line is too long. [232/120]", 1727699169], + [3376, 121, 116, "Layout/LineLength: Line is too long. [236/120]", 1171566267], + [3377, 121, 90, "Layout/LineLength: Line is too long. [210/120]", 2994775049], + [3378, 121, 110, "Layout/LineLength: Line is too long. [230/120]", 3860489151], + [3379, 121, 114, "Layout/LineLength: Line is too long. [234/120]", 959496607], + [3380, 121, 94, "Layout/LineLength: Line is too long. [214/120]", 1694222439], + [3381, 121, 114, "Layout/LineLength: Line is too long. [234/120]", 1501186331], + [3382, 121, 118, "Layout/LineLength: Line is too long. [238/120]", 4059659418], + [3383, 121, 110, "Layout/LineLength: Line is too long. [230/120]", 1899868779], + [3384, 121, 130, "Layout/LineLength: Line is too long. [250/120]", 323324279], + [3385, 121, 134, "Layout/LineLength: Line is too long. [254/120]", 3956414359], + [3386, 121, 98, "Layout/LineLength: Line is too long. [218/120]", 3506644741], + [3387, 121, 116, "Layout/LineLength: Line is too long. [236/120]", 936139074], + [3388, 121, 136, "Layout/LineLength: Line is too long. [256/120]", 4153213512], + [3389, 121, 140, "Layout/LineLength: Line is too long. [260/120]", 1491976338], + [3390, 121, 102, "Layout/LineLength: Line is too long. [222/120]", 4061753206], + [3391, 121, 106, "Layout/LineLength: Line is too long. [226/120]", 2410434304], + [3392, 121, 124, "Layout/LineLength: Line is too long. [244/120]", 3518300264], + [3393, 121, 144, "Layout/LineLength: Line is too long. [264/120]", 1040696046], + [3394, 121, 148, "Layout/LineLength: Line is too long. [268/120]", 139604188], + [3395, 121, 120, "Layout/LineLength: Line is too long. [240/120]", 231937793], + [3396, 121, 140, "Layout/LineLength: Line is too long. [260/120]", 1835509805], + [3397, 121, 144, "Layout/LineLength: Line is too long. [264/120]", 1629218396], + [3398, 121, 82, "Layout/LineLength: Line is too long. [202/120]", 2312875700], + [3399, 121, 102, "Layout/LineLength: Line is too long. [222/120]", 2933374083], + [3400, 121, 106, "Layout/LineLength: Line is too long. [226/120]", 1719349671], + [3401, 121, 76, "Layout/LineLength: Line is too long. [196/120]", 2555579810], + [3402, 121, 94, "Layout/LineLength: Line is too long. [214/120]", 2023551624], + [3403, 121, 114, "Layout/LineLength: Line is too long. [234/120]", 955231924], + [3404, 121, 118, "Layout/LineLength: Line is too long. [238/120]", 4232993781], + [3405, 121, 60, "Layout/LineLength: Line is too long. [180/120]", 3472954835], + [3406, 121, 78, "Layout/LineLength: Line is too long. [198/120]", 3211922285], + [3407, 121, 98, "Layout/LineLength: Line is too long. [218/120]", 2874956332], + [3408, 121, 102, "Layout/LineLength: Line is too long. [222/120]", 1360335840], + [3409, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 2135379556], + [3410, 121, 32, "Layout/LineLength: Line is too long. [152/120]", 3242768475], + [3411, 121, 52, "Layout/LineLength: Line is too long. [172/120]", 2789115918], + [3412, 121, 56, "Layout/LineLength: Line is too long. [176/120]", 3346448124], + [3413, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 1538469817], + [3414, 121, 34, "Layout/LineLength: Line is too long. [154/120]", 1543041113], + [3415, 121, 38, "Layout/LineLength: Line is too long. [158/120]", 3344741438], + [3416, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 2188404009], + [3417, 121, 26, "Layout/LineLength: Line is too long. [146/120]", 1330398779], + [3418, 121, 46, "Layout/LineLength: Line is too long. [166/120]", 332468826], + [3419, 121, 50, "Layout/LineLength: Line is too long. [170/120]", 1905397598], + [3420, 121, 28, "Layout/LineLength: Line is too long. [148/120]", 438831062], + [3421, 121, 48, "Layout/LineLength: Line is too long. [168/120]", 3377667334], + [3422, 121, 52, "Layout/LineLength: Line is too long. [172/120]", 3232541734], + [3424, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 2130930429], + [3425, 121, 24, "Layout/LineLength: Line is too long. [144/120]", 3684939371], + [3427, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 2361951097], + [3428, 121, 32, "Layout/LineLength: Line is too long. [152/120]", 1211447462], + [3429, 121, 52, "Layout/LineLength: Line is too long. [172/120]", 3309872691], + [3430, 121, 56, "Layout/LineLength: Line is too long. [176/120]", 360053761], + [3431, 121, 16, "Layout/LineLength: Line is too long. [136/120]", 1310136493], + [3432, 121, 34, "Layout/LineLength: Line is too long. [154/120]", 1950686342], + [3433, 121, 54, "Layout/LineLength: Line is too long. [174/120]", 1397845826], + [3434, 121, 58, "Layout/LineLength: Line is too long. [178/120]", 4191304724], + [3435, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 2354128498], + [3436, 121, 30, "Layout/LineLength: Line is too long. [150/120]", 1865717453], + [3437, 121, 50, "Layout/LineLength: Line is too long. [170/120]", 24220542], + [3438, 121, 54, "Layout/LineLength: Line is too long. [174/120]", 2618612673], + [3441, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 3422918867], + [3442, 121, 16, "Layout/LineLength: Line is too long. [136/120]", 3689431739], + [3486, 121, 47, "Layout/LineLength: Line is too long. [167/120]", 4093564799], + [3492, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1662653970], + [3493, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 3967501655], + [3494, 121, 17, "Layout/LineLength: Line is too long. [137/120]", 2178516622], + [3495, 121, 40, "Layout/LineLength: Line is too long. [160/120]", 1345346561], + [3509, 121, 3, "Layout/LineLength: Line is too long. [123/120]", 193466072], + [3629, 121, 23, "Layout/LineLength: Line is too long. [143/120]", 3612393276], + [3630, 121, 9, "Layout/LineLength: Line is too long. [129/120]", 797303985], + [3633, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 1606320605], + [3653, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 1776876782], + [3657, 121, 7, "Layout/LineLength: Line is too long. [127/120]", 828742791], + [3677, 121, 31, "Layout/LineLength: Line is too long. [151/120]", 3294617581], + [3687, 121, 22, "Layout/LineLength: Line is too long. [142/120]", 3519842846], + [3697, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 1966440909], + [3698, 121, 7, "Layout/LineLength: Line is too long. [127/120]", 830053864], + [3704, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 1606320605], + [3727, 121, 16, "Layout/LineLength: Line is too long. [136/120]", 1340744311], + [3746, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1741893077], + [3747, 121, 7, "Layout/LineLength: Line is too long. [127/120]", 830053865], + [3751, 121, 3, "Layout/LineLength: Line is too long. [123/120]", 193405204], + [3765, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 1401226501], + [3768, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2085352569], + [3771, 121, 17, "Layout/LineLength: Line is too long. [137/120]", 696523922], + [3786, 121, 5, "Layout/LineLength: Line is too long. [125/120]", 182097675], + [3796, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 2746826653], + [4212, 121, 19, "Layout/LineLength: Line is too long. [139/120]", 1138870161], + [4774, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5862609], + [4785, 121, 13, "Layout/LineLength: Line is too long. [133/120]", 2132299307], + [4832, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2087775098], + [4843, 121, 15, "Layout/LineLength: Line is too long. [135/120]", 757851079], + [4879, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5862609], + [4890, 121, 13, "Layout/LineLength: Line is too long. [133/120]", 441649198], + [4913, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2087903295], + [4925, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 170442008], + [4934, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 2102137893], + [4936, 121, 25, "Layout/LineLength: Line is too long. [145/120]", 1888875443], + [4973, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 398433651], + [4984, 121, 19, "Layout/LineLength: Line is too long. [139/120]", 3921367744], + [5007, 121, 10, "Layout/LineLength: Line is too long. [130/120]", 2422819473], + [5013, 121, 5, "Layout/LineLength: Line is too long. [125/120]", 194583095], + [5019, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 1901385496], + [5028, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 490810486], + [5030, 121, 31, "Layout/LineLength: Line is too long. [151/120]", 586287746], + [5034, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1310969752], + [5054, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2087389205], + [5066, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 2609063547], + [5075, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 2102137893], + [5077, 121, 25, "Layout/LineLength: Line is too long. [145/120]", 1370761696], + [5100, 121, 16, "Layout/LineLength: Line is too long. [136/120]", 2208661169], + [5106, 121, 11, "Layout/LineLength: Line is too long. [131/120]", 1862604658], + [5112, 121, 26, "Layout/LineLength: Line is too long. [146/120]", 3958789371], + [5121, 121, 18, "Layout/LineLength: Line is too long. [138/120]", 3449594464], + [5123, 121, 37, "Layout/LineLength: Line is too long. [157/120]", 692050524], + [5127, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 802172558], + [5197, 121, 11, "Layout/LineLength: Line is too long. [131/120]", 2406691660], + [5232, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5862609], + [5243, 121, 13, "Layout/LineLength: Line is too long. [133/120]", 1811982742], + [5270, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 2562189319], + [5276, 121, 3, "Layout/LineLength: Line is too long. [123/120]", 193430346], + [5282, 121, 18, "Layout/LineLength: Line is too long. [138/120]", 2814237166], + [5291, 121, 10, "Layout/LineLength: Line is too long. [130/120]", 2189106693], + [5293, 121, 29, "Layout/LineLength: Line is too long. [149/120]", 3874870868], + [5297, 121, 5, "Layout/LineLength: Line is too long. [125/120]", 179474914], + [5330, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1751845165], + [5341, 121, 17, "Layout/LineLength: Line is too long. [137/120]", 2617230371], + [5345, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5862609], + [5386, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5862609], + [5397, 121, 13, "Layout/LineLength: Line is too long. [133/120]", 3793790598], + [5432, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 4088312783], + [5443, 121, 19, "Layout/LineLength: Line is too long. [139/120]", 3220724736], + [5447, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2087899888], + [5466, 121, 10, "Layout/LineLength: Line is too long. [130/120]", 2552888401], + [5472, 121, 5, "Layout/LineLength: Line is too long. [125/120]", 194583095], + [5478, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 2414559905], + [5487, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 626762179], + [5489, 121, 31, "Layout/LineLength: Line is too long. [151/120]", 3969284923], + [5493, 121, 16, "Layout/LineLength: Line is too long. [136/120]", 1893261414], + [5525, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 2133507320], + [5536, 121, 19, "Layout/LineLength: Line is too long. [139/120]", 2101353476], + [5540, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2087685705], + [5559, 121, 10, "Layout/LineLength: Line is too long. [130/120]", 2431380437], + [5565, 121, 5, "Layout/LineLength: Line is too long. [125/120]", 194583095], + [5571, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 435489438], + [5580, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 1520878209], + [5582, 121, 31, "Layout/LineLength: Line is too long. [151/120]", 2238995076], + [5586, 121, 16, "Layout/LineLength: Line is too long. [136/120]", 2789405913], + [5619, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5862609], + [5630, 121, 13, "Layout/LineLength: Line is too long. [133/120]", 3409328196], + [5653, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2087858069], + [5665, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 2811935086], + [5674, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 2102137893], + [5676, 121, 25, "Layout/LineLength: Line is too long. [145/120]", 1113346693], + [5680, 121, 10, "Layout/LineLength: Line is too long. [130/120]", 3227128786], + [5700, 121, 22, "Layout/LineLength: Line is too long. [142/120]", 48793812], + [5706, 121, 17, "Layout/LineLength: Line is too long. [137/120]", 338440584], + [5712, 121, 32, "Layout/LineLength: Line is too long. [152/120]", 735248703], + [5721, 121, 24, "Layout/LineLength: Line is too long. [144/120]", 927473097], + [5723, 121, 43, "Layout/LineLength: Line is too long. [163/120]", 1394536741], + [5727, 121, 18, "Layout/LineLength: Line is too long. [138/120]", 3134012967], + [5746, 121, 34, "Layout/LineLength: Line is too long. [154/120]", 2967615316], + [5752, 121, 29, "Layout/LineLength: Line is too long. [149/120]", 2810710931], + [5758, 121, 44, "Layout/LineLength: Line is too long. [164/120]", 2548594701], + [5761, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5860796], + [5763, 121, 5, "Layout/LineLength: Line is too long. [125/120]", 182097675], + [5767, 121, 36, "Layout/LineLength: Line is too long. [156/120]", 3549194295], + [5769, 121, 55, "Layout/LineLength: Line is too long. [175/120]", 1074004741], + [5773, 121, 30, "Layout/LineLength: Line is too long. [150/120]", 2874423564], + [5776, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2087576526], + [5778, 121, 5, "Layout/LineLength: Line is too long. [125/120]", 182097675], + [5793, 121, 30, "Layout/LineLength: Line is too long. [150/120]", 1696848307], + [5799, 121, 25, "Layout/LineLength: Line is too long. [145/120]", 2883501659], + [5805, 121, 40, "Layout/LineLength: Line is too long. [160/120]", 3056443076], + [5810, 121, 3, "Layout/LineLength: Line is too long. [123/120]", 193405204], + [5814, 121, 32, "Layout/LineLength: Line is too long. [152/120]", 1487412605], + [5816, 121, 51, "Layout/LineLength: Line is too long. [171/120]", 2021571284], + [5820, 121, 26, "Layout/LineLength: Line is too long. [146/120]", 1975782995], + [5823, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5860796], + [5825, 121, 3, "Layout/LineLength: Line is too long. [123/120]", 193405204], + [5830, 121, 5, "Layout/LineLength: Line is too long. [125/120]", 183236849], + [5839, 121, 42, "Layout/LineLength: Line is too long. [162/120]", 856018753], + [5842, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5862609], + [5845, 121, 37, "Layout/LineLength: Line is too long. [157/120]", 2146546324], + [5851, 121, 52, "Layout/LineLength: Line is too long. [172/120]", 3913983076], + [5854, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 3491931666], + [5856, 121, 9, "Layout/LineLength: Line is too long. [129/120]", 3536323546], + [5860, 121, 44, "Layout/LineLength: Line is too long. [164/120]", 356581191], + [5862, 121, 63, "Layout/LineLength: Line is too long. [183/120]", 4144657639], + [5866, 121, 38, "Layout/LineLength: Line is too long. [158/120]", 1478616653], + [5869, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 1774852021], + [5871, 121, 9, "Layout/LineLength: Line is too long. [129/120]", 3536323546], + [5886, 121, 22, "Layout/LineLength: Line is too long. [142/120]", 3884289787], + [5892, 121, 17, "Layout/LineLength: Line is too long. [137/120]", 1001503687], + [5898, 121, 32, "Layout/LineLength: Line is too long. [152/120]", 3673836976], + [5907, 121, 24, "Layout/LineLength: Line is too long. [144/120]", 3164908550], + [5909, 121, 43, "Layout/LineLength: Line is too long. [163/120]", 1134300778], + [5913, 121, 18, "Layout/LineLength: Line is too long. [138/120]", 1797165224], + [5932, 121, 34, "Layout/LineLength: Line is too long. [154/120]", 2508143995], + [5938, 121, 29, "Layout/LineLength: Line is too long. [149/120]", 3002532188], + [5944, 121, 44, "Layout/LineLength: Line is too long. [164/120]", 584857986], + [5947, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5860796], + [5949, 121, 5, "Layout/LineLength: Line is too long. [125/120]", 182097675], + [5953, 121, 36, "Layout/LineLength: Line is too long. [156/120]", 749691384], + [5955, 121, 55, "Layout/LineLength: Line is too long. [175/120]", 3389354954], + [5959, 121, 30, "Layout/LineLength: Line is too long. [150/120]", 3402045699], + [5962, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2087576526], + [5964, 121, 5, "Layout/LineLength: Line is too long. [125/120]", 182097675], + [5978, 121, 24, "Layout/LineLength: Line is too long. [144/120]", 2447716612], + [5984, 121, 19, "Layout/LineLength: Line is too long. [139/120]", 3201685099], + [5990, 121, 34, "Layout/LineLength: Line is too long. [154/120]", 3060990885], + [5999, 121, 26, "Layout/LineLength: Line is too long. [146/120]", 29396315], + [6001, 121, 45, "Layout/LineLength: Line is too long. [165/120]", 1228645365], + [6005, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 1436742837], + [6024, 121, 36, "Layout/LineLength: Line is too long. [156/120]", 716917214], + [6030, 121, 31, "Layout/LineLength: Line is too long. [151/120]", 2175814211], + [6036, 121, 46, "Layout/LineLength: Line is too long. [166/120]", 1473420390], + [6039, 121, 3, "Layout/LineLength: Line is too long. [123/120]", 193433391], + [6041, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1422839111], + [6045, 121, 38, "Layout/LineLength: Line is too long. [158/120]", 1571170198], + [6047, 121, 57, "Layout/LineLength: Line is too long. [177/120]", 2175059093], + [6051, 121, 32, "Layout/LineLength: Line is too long. [152/120]", 3886666417], + [6054, 121, 5, "Layout/LineLength: Line is too long. [125/120]", 176753677], + [6056, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1422839111], + [6072, 121, 38, "Layout/LineLength: Line is too long. [158/120]", 3471319495], + [6078, 121, 33, "Layout/LineLength: Line is too long. [153/120]", 1274038477], + [6084, 121, 48, "Layout/LineLength: Line is too long. [168/120]", 2896814693], + [6087, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2087576526], + [6089, 121, 7, "Layout/LineLength: Line is too long. [127/120]", 4114086530], + [6093, 121, 40, "Layout/LineLength: Line is too long. [160/120]", 250433828], + [6095, 121, 59, "Layout/LineLength: Line is too long. [179/120]", 3910556848], + [6099, 121, 34, "Layout/LineLength: Line is too long. [154/120]", 4002014976], + [6102, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 3491931666], + [6104, 121, 7, "Layout/LineLength: Line is too long. [127/120]", 4114086530], + [6198, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5861664], + [6212, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2087932582], + [6226, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5861664], + [6242, 121, 80, "Layout/LineLength: Line is too long. [200/120]", 876012844], + [6244, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1756764194], + [6245, 121, 21, "Layout/LineLength: Line is too long. [141/120]", 4173216735], + [6248, 121, 75, "Layout/LineLength: Line is too long. [195/120]", 911964425], + [6249, 121, 5, "Layout/LineLength: Line is too long. [125/120]", 173266907], + [6250, 121, 11, "Layout/LineLength: Line is too long. [131/120]", 1412705933], + [6253, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1756764194], + [6254, 121, 90, "Layout/LineLength: Line is too long. [210/120]", 2605683750], + [6257, 121, 25, "Layout/LineLength: Line is too long. [145/120]", 3182252139], + [6259, 121, 28, "Layout/LineLength: Line is too long. [148/120]", 1652557742], + [6263, 121, 82, "Layout/LineLength: Line is too long. [202/120]", 2240437058], + [6264, 121, 5, "Layout/LineLength: Line is too long. [125/120]", 173266907], + [6265, 121, 101, "Layout/LineLength: Line is too long. [221/120]", 3694598076], + [6267, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5861152], + [6268, 121, 5, "Layout/LineLength: Line is too long. [125/120]", 179079542], + [6269, 121, 76, "Layout/LineLength: Line is too long. [196/120]", 3528944411], + [6272, 121, 27, "Layout/LineLength: Line is too long. [147/120]", 3020159378], + [6274, 121, 28, "Layout/LineLength: Line is too long. [148/120]", 1652557742], + [6280, 121, 84, "Layout/LineLength: Line is too long. [204/120]", 420843234], + [6282, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 1401226501], + [6283, 121, 23, "Layout/LineLength: Line is too long. [143/120]", 442915368], + [6286, 121, 79, "Layout/LineLength: Line is too long. [199/120]", 4212444955], + [6287, 121, 7, "Layout/LineLength: Line is too long. [127/120]", 830053864], + [6288, 121, 13, "Layout/LineLength: Line is too long. [133/120]", 1373660924], + [6291, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 1401226501], + [6292, 121, 94, "Layout/LineLength: Line is too long. [214/120]", 1539225758], + [6295, 121, 27, "Layout/LineLength: Line is too long. [147/120]", 3020159378], + [6297, 121, 30, "Layout/LineLength: Line is too long. [150/120]", 4240691845], + [6301, 121, 86, "Layout/LineLength: Line is too long. [206/120]", 674553335], + [6302, 121, 7, "Layout/LineLength: Line is too long. [127/120]", 830053864], + [6303, 121, 105, "Layout/LineLength: Line is too long. [225/120]", 4163432287], + [6305, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2089555761], + [6306, 121, 7, "Layout/LineLength: Line is too long. [127/120]", 2034687276], + [6307, 121, 80, "Layout/LineLength: Line is too long. [200/120]", 3710905302], + [6310, 121, 29, "Layout/LineLength: Line is too long. [149/120]", 4204667212], + [6312, 121, 30, "Layout/LineLength: Line is too long. [150/120]", 4240691845], + [6318, 121, 76, "Layout/LineLength: Line is too long. [196/120]", 2071493433], + [6320, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2085352569], + [6321, 121, 19, "Layout/LineLength: Line is too long. [139/120]", 2853066942], + [6324, 121, 71, "Layout/LineLength: Line is too long. [191/120]", 2771467828], + [6325, 121, 3, "Layout/LineLength: Line is too long. [123/120]", 193425976], + [6326, 121, 9, "Layout/LineLength: Line is too long. [129/120]", 3025157142], + [6329, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2085352569], + [6330, 121, 86, "Layout/LineLength: Line is too long. [206/120]", 3340824101], + [6333, 121, 23, "Layout/LineLength: Line is too long. [143/120]", 3999804761], + [6335, 121, 26, "Layout/LineLength: Line is too long. [146/120]", 1999310973], + [6339, 121, 78, "Layout/LineLength: Line is too long. [198/120]", 835016333], + [6340, 121, 3, "Layout/LineLength: Line is too long. [123/120]", 193425976], + [6341, 121, 97, "Layout/LineLength: Line is too long. [217/120]", 3575893945], + [6344, 121, 3, "Layout/LineLength: Line is too long. [123/120]", 193405945], + [6345, 121, 72, "Layout/LineLength: Line is too long. [192/120]", 1755858308], + [6348, 121, 25, "Layout/LineLength: Line is too long. [145/120]", 3182252139], + [6350, 121, 26, "Layout/LineLength: Line is too long. [146/120]", 1999310973], + [6356, 121, 70, "Layout/LineLength: Line is too long. [190/120]", 3033080032], + [6358, 121, 1, "Layout/LineLength: Line is too long. [121/120]", 177549], + [6359, 121, 16, "Layout/LineLength: Line is too long. [136/120]", 2720985203], + [6362, 121, 65, "Layout/LineLength: Line is too long. [185/120]", 3233424320], + [6364, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1165873483], + [6367, 121, 1, "Layout/LineLength: Line is too long. [121/120]", 177549], + [6368, 121, 80, "Layout/LineLength: Line is too long. [200/120]", 131859703], + [6371, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 1943494546], + [6373, 121, 23, "Layout/LineLength: Line is too long. [143/120]", 4016166830], + [6377, 121, 72, "Layout/LineLength: Line is too long. [192/120]", 1350760977], + [6379, 121, 91, "Layout/LineLength: Line is too long. [211/120]", 4098706554], + [6383, 121, 66, "Layout/LineLength: Line is too long. [186/120]", 4059724765], + [6386, 121, 22, "Layout/LineLength: Line is too long. [142/120]", 1651955548], + [6388, 121, 23, "Layout/LineLength: Line is too long. [143/120]", 4016166830], + [6394, 121, 54, "Layout/LineLength: Line is too long. [174/120]", 1057495720], + [6397, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 1621971220], + [6400, 121, 49, "Layout/LineLength: Line is too long. [169/120]", 1585717593], + [6406, 121, 64, "Layout/LineLength: Line is too long. [184/120]", 2942094233], + [6409, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 2624667704], + [6411, 121, 15, "Layout/LineLength: Line is too long. [135/120]", 2317051977], + [6415, 121, 56, "Layout/LineLength: Line is too long. [176/120]", 1321610634], + [6417, 121, 75, "Layout/LineLength: Line is too long. [195/120]", 2854688831], + [6421, 121, 50, "Layout/LineLength: Line is too long. [170/120]", 4185465554], + [6424, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 1169781875], + [6426, 121, 15, "Layout/LineLength: Line is too long. [135/120]", 2317051977], + [6432, 121, 50, "Layout/LineLength: Line is too long. [170/120]", 1916545020], + [6435, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1422839111], + [6438, 121, 45, "Layout/LineLength: Line is too long. [165/120]", 910134593], + [6444, 121, 60, "Layout/LineLength: Line is too long. [180/120]", 203086561], + [6447, 121, 10, "Layout/LineLength: Line is too long. [130/120]", 2939363812], + [6449, 121, 13, "Layout/LineLength: Line is too long. [133/120]", 3155638331], + [6453, 121, 52, "Layout/LineLength: Line is too long. [172/120]", 1955758062], + [6455, 121, 71, "Layout/LineLength: Line is too long. [191/120]", 3737424359], + [6459, 121, 46, "Layout/LineLength: Line is too long. [166/120]", 3597620692], + [6462, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 2624667704], + [6464, 121, 13, "Layout/LineLength: Line is too long. [133/120]", 3155638331], + [6470, 121, 52, "Layout/LineLength: Line is too long. [172/120]", 1036052399], + [6473, 121, 7, "Layout/LineLength: Line is too long. [127/120]", 4114086530], + [6476, 121, 47, "Layout/LineLength: Line is too long. [167/120]", 1268266488], + [6482, 121, 62, "Layout/LineLength: Line is too long. [182/120]", 2791598354], + [6485, 121, 11, "Layout/LineLength: Line is too long. [131/120]", 1302589368], + [6487, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 3533902728], + [6491, 121, 54, "Layout/LineLength: Line is too long. [174/120]", 3942276897], + [6493, 121, 73, "Layout/LineLength: Line is too long. [193/120]", 1175941460], + [6497, 121, 48, "Layout/LineLength: Line is too long. [168/120]", 679697318], + [6500, 121, 13, "Layout/LineLength: Line is too long. [133/120]", 28126263], + [6502, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 3533902728], + [6503, 121, 5, "Layout/LineLength: Line is too long. [125/120]", 181895237], + [6508, 121, 52, "Layout/LineLength: Line is too long. [172/120]", 4057848448], + [6511, 121, 7, "Layout/LineLength: Line is too long. [127/120]", 4114086530], + [6514, 121, 47, "Layout/LineLength: Line is too long. [167/120]", 4067769399], + [6520, 121, 62, "Layout/LineLength: Line is too long. [182/120]", 461482909], + [6523, 121, 11, "Layout/LineLength: Line is too long. [131/120]", 1302589368], + [6525, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 3533902728], + [6529, 121, 54, "Layout/LineLength: Line is too long. [174/120]", 3561204590], + [6531, 121, 73, "Layout/LineLength: Line is too long. [193/120]", 880160795], + [6535, 121, 48, "Layout/LineLength: Line is too long. [168/120]", 1614719145], + [6538, 121, 13, "Layout/LineLength: Line is too long. [133/120]", 28126263], + [6540, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 3533902728], + [6541, 121, 5, "Layout/LineLength: Line is too long. [125/120]", 181895237], + [6588, 121, 3, "Layout/LineLength: Line is too long. [123/120]", 193432306], + [6602, 121, 64, "Layout/LineLength: Line is too long. [184/120]", 1645945966], + [6605, 121, 13, "Layout/LineLength: Line is too long. [133/120]", 3212740609], + [6608, 121, 59, "Layout/LineLength: Line is too long. [179/120]", 3982698123], + [6610, 121, 3, "Layout/LineLength: Line is too long. [123/120]", 193425997], + [6614, 121, 74, "Layout/LineLength: Line is too long. [194/120]", 2663750402], + [6617, 121, 17, "Layout/LineLength: Line is too long. [137/120]", 2420297272], + [6619, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 1164389943], + [6623, 121, 66, "Layout/LineLength: Line is too long. [186/120]", 3483121581], + [6625, 121, 85, "Layout/LineLength: Line is too long. [205/120]", 2271668600], + [6629, 121, 60, "Layout/LineLength: Line is too long. [180/120]", 804794365], + [6632, 121, 19, "Layout/LineLength: Line is too long. [139/120]", 3659367004], + [6634, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 1164389943], + [6635, 121, 11, "Layout/LineLength: Line is too long. [131/120]", 561395486], + [6640, 121, 64, "Layout/LineLength: Line is too long. [184/120]", 1251661057], + [6643, 121, 13, "Layout/LineLength: Line is too long. [133/120]", 3212740609], + [6646, 121, 59, "Layout/LineLength: Line is too long. [179/120]", 3210109508], + [6648, 121, 3, "Layout/LineLength: Line is too long. [123/120]", 193425997], + [6652, 121, 74, "Layout/LineLength: Line is too long. [194/120]", 430316685], + [6655, 121, 17, "Layout/LineLength: Line is too long. [137/120]", 2420297272], + [6657, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 1164389943], + [6661, 121, 66, "Layout/LineLength: Line is too long. [186/120]", 2428160226], + [6663, 121, 85, "Layout/LineLength: Line is too long. [205/120]", 2663295671], + [6667, 121, 60, "Layout/LineLength: Line is too long. [180/120]", 2822109938], + [6670, 121, 19, "Layout/LineLength: Line is too long. [139/120]", 3659367004], + [6672, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 1164389943], + [6673, 121, 11, "Layout/LineLength: Line is too long. [131/120]", 561395486], + [6678, 121, 62, "Layout/LineLength: Line is too long. [182/120]", 857639785], + [6681, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 3669622788], + [6684, 121, 57, "Layout/LineLength: Line is too long. [177/120]", 140453799], + [6686, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5860765], + [6690, 121, 72, "Layout/LineLength: Line is too long. [192/120]", 1650236431], + [6693, 121, 16, "Layout/LineLength: Line is too long. [136/120]", 150699323], + [6695, 121, 19, "Layout/LineLength: Line is too long. [139/120]", 50618962], + [6699, 121, 64, "Layout/LineLength: Line is too long. [184/120]", 4205571164], + [6701, 121, 83, "Layout/LineLength: Line is too long. [203/120]", 1549528021], + [6705, 121, 58, "Layout/LineLength: Line is too long. [178/120]", 1325488145], + [6708, 121, 18, "Layout/LineLength: Line is too long. [138/120]", 1510711065], + [6710, 121, 19, "Layout/LineLength: Line is too long. [139/120]", 50618962], + [6716, 121, 66, "Layout/LineLength: Line is too long. [186/120]", 3043205563], + [6719, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 2381137493], + [6722, 121, 61, "Layout/LineLength: Line is too long. [181/120]", 2200345195], + [6724, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2087926498], + [6728, 121, 76, "Layout/LineLength: Line is too long. [196/120]", 1082269527], + [6731, 121, 18, "Layout/LineLength: Line is too long. [138/120]", 1510711065], + [6733, 121, 21, "Layout/LineLength: Line is too long. [141/120]", 1104064739], + [6737, 121, 68, "Layout/LineLength: Line is too long. [188/120]", 1652941658], + [6739, 121, 87, "Layout/LineLength: Line is too long. [207/120]", 1440323819], + [6743, 121, 62, "Layout/LineLength: Line is too long. [182/120]", 802896260], + [6746, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 1943494546], + [6748, 121, 21, "Layout/LineLength: Line is too long. [141/120]", 1104064739], + [6754, 121, 82, "Layout/LineLength: Line is too long. [202/120]", 788730815], + [6756, 121, 7, "Layout/LineLength: Line is too long. [127/120]", 2034687276], + [6757, 121, 22, "Layout/LineLength: Line is too long. [142/120]", 4226330106], + [6760, 121, 77, "Layout/LineLength: Line is too long. [197/120]", 2414796320], + [6761, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1165873470], + [6762, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 3090817832], + [6765, 121, 7, "Layout/LineLength: Line is too long. [127/120]", 2034687276], + [6766, 121, 92, "Layout/LineLength: Line is too long. [212/120]", 2839148677], + [6769, 121, 26, "Layout/LineLength: Line is too long. [146/120]", 2393983240], + [6771, 121, 29, "Layout/LineLength: Line is too long. [149/120]", 2581936864], + [6775, 121, 84, "Layout/LineLength: Line is too long. [204/120]", 3923254945], + [6776, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1165873470], + [6777, 121, 103, "Layout/LineLength: Line is too long. [223/120]", 580639726], + [6779, 121, 3, "Layout/LineLength: Line is too long. [123/120]", 193419246], + [6780, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1756764194], + [6781, 121, 78, "Layout/LineLength: Line is too long. [198/120]", 3202758044], + [6784, 121, 28, "Layout/LineLength: Line is too long. [148/120]", 912651721], + [6786, 121, 29, "Layout/LineLength: Line is too long. [149/120]", 2581936864], + [6790, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1164293389], + [6803, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5860840], + [6804, 121, 88, "Layout/LineLength: Line is too long. [208/120]", 574552570], + [6806, 121, 10, "Layout/LineLength: Line is too long. [130/120]", 3845073641], + [6807, 121, 25, "Layout/LineLength: Line is too long. [145/120]", 543375177], + [6810, 121, 83, "Layout/LineLength: Line is too long. [203/120]", 222410330], + [6811, 121, 9, "Layout/LineLength: Line is too long. [129/120]", 3025157219], + [6812, 121, 15, "Layout/LineLength: Line is too long. [135/120]", 1904561434], + [6815, 121, 10, "Layout/LineLength: Line is too long. [130/120]", 489872984], + [6816, 121, 98, "Layout/LineLength: Line is too long. [218/120]", 97325617], + [6819, 121, 29, "Layout/LineLength: Line is too long. [149/120]", 4204667212], + [6821, 121, 32, "Layout/LineLength: Line is too long. [152/120]", 4062673070], + [6825, 121, 90, "Layout/LineLength: Line is too long. [210/120]", 1451915960], + [6826, 121, 9, "Layout/LineLength: Line is too long. [129/120]", 3025157219], + [6827, 121, 109, "Layout/LineLength: Line is too long. [229/120]", 4200529758], + [6829, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1497831350], + [6830, 121, 9, "Layout/LineLength: Line is too long. [129/120]", 4214367244], + [6831, 121, 84, "Layout/LineLength: Line is too long. [204/120]", 399603517], + [6834, 121, 31, "Layout/LineLength: Line is too long. [151/120]", 3423548875], + [6836, 121, 32, "Layout/LineLength: Line is too long. [152/120]", 4062673070], + [6840, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 3279830097], + [6852, 121, 10, "Layout/LineLength: Line is too long. [130/120]", 659167322], + [6864, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2087926423], + [6865, 121, 57, "Layout/LineLength: Line is too long. [177/120]", 3300294193], + [6867, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 3172850966], + [6868, 121, 27, "Layout/LineLength: Line is too long. [147/120]", 2396187736], + [6871, 121, 87, "Layout/LineLength: Line is too long. [207/120]", 1991888901], + [6872, 121, 11, "Layout/LineLength: Line is too long. [131/120]", 1954380402], + [6873, 121, 17, "Layout/LineLength: Line is too long. [137/120]", 2589970962], + [6876, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 42340644], + [6877, 121, 67, "Layout/LineLength: Line is too long. [187/120]", 479235996], + [6880, 121, 31, "Layout/LineLength: Line is too long. [151/120]", 3423548875], + [6882, 121, 34, "Layout/LineLength: Line is too long. [154/120]", 1462541970], + [6886, 121, 94, "Layout/LineLength: Line is too long. [214/120]", 1373978781], + [6887, 121, 11, "Layout/LineLength: Line is too long. [131/120]", 1954380402], + [6888, 121, 78, "Layout/LineLength: Line is too long. [198/120]", 280641011], + [6890, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 1664110553], + [6891, 121, 11, "Layout/LineLength: Line is too long. [131/120]", 1009650381], + [6892, 121, 88, "Layout/LineLength: Line is too long. [208/120]", 909329343], + [6895, 121, 33, "Layout/LineLength: Line is too long. [153/120]", 2977589831], + [6897, 121, 34, "Layout/LineLength: Line is too long. [154/120]", 1462541970], + [6902, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1165873470], + [6903, 121, 61, "Layout/LineLength: Line is too long. [181/120]", 1904101094], + [6905, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 2229256255], + [6906, 121, 29, "Layout/LineLength: Line is too long. [149/120]", 1839090017], + [6909, 121, 91, "Layout/LineLength: Line is too long. [211/120]", 4260980907], + [6910, 121, 13, "Layout/LineLength: Line is too long. [133/120]", 4253118453], + [6911, 121, 19, "Layout/LineLength: Line is too long. [139/120]", 1536690221], + [6913, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5861152], + [6914, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 209824656], + [6915, 121, 71, "Layout/LineLength: Line is too long. [191/120]", 1530496074], + [6918, 121, 33, "Layout/LineLength: Line is too long. [153/120]", 2977589831], + [6920, 121, 36, "Layout/LineLength: Line is too long. [156/120]", 3261436902], + [6924, 121, 98, "Layout/LineLength: Line is too long. [218/120]", 3762694917], + [6925, 121, 13, "Layout/LineLength: Line is too long. [133/120]", 4253118453], + [6926, 121, 82, "Layout/LineLength: Line is too long. [202/120]", 3196230010], + [6928, 121, 10, "Layout/LineLength: Line is too long. [130/120]", 3165598659], + [6929, 121, 13, "Layout/LineLength: Line is too long. [133/120]", 4264469493], + [6930, 121, 92, "Layout/LineLength: Line is too long. [212/120]", 3140690958], + [6933, 121, 35, "Layout/LineLength: Line is too long. [155/120]", 2999583208], + [6935, 121, 36, "Layout/LineLength: Line is too long. [156/120]", 3261436902], + [6941, 121, 54, "Layout/LineLength: Line is too long. [174/120]", 326070599], + [6944, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 1621971220], + [6947, 121, 49, "Layout/LineLength: Line is too long. [169/120]", 1689000214], + [6953, 121, 64, "Layout/LineLength: Line is too long. [184/120]", 2459904022], + [6956, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 2624667704], + [6958, 121, 15, "Layout/LineLength: Line is too long. [135/120]", 2317051977], + [6962, 121, 56, "Layout/LineLength: Line is too long. [176/120]", 2842872837], + [6964, 121, 75, "Layout/LineLength: Line is too long. [195/120]", 423884656], + [6968, 121, 50, "Layout/LineLength: Line is too long. [170/120]", 2673769885], + [6971, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 1169781875], + [6973, 121, 15, "Layout/LineLength: Line is too long. [135/120]", 2317051977], + [6974, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 2126253911], + [6990, 121, 66, "Layout/LineLength: Line is too long. [186/120]", 2388292564], + [6993, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 2381137493], + [6996, 121, 61, "Layout/LineLength: Line is too long. [181/120]", 1136762660], + [6998, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2087926498], + [7002, 121, 76, "Layout/LineLength: Line is too long. [196/120]", 2555581016], + [7005, 121, 18, "Layout/LineLength: Line is too long. [138/120]", 1510711065], + [7007, 121, 21, "Layout/LineLength: Line is too long. [141/120]", 1104064739], + [7011, 121, 68, "Layout/LineLength: Line is too long. [188/120]", 1986812885], + [7013, 121, 87, "Layout/LineLength: Line is too long. [207/120]", 1864036132], + [7017, 121, 62, "Layout/LineLength: Line is too long. [182/120]", 3590180043], + [7020, 121, 20, "Layout/LineLength: Line is too long. [140/120]", 1943494546], + [7022, 121, 21, "Layout/LineLength: Line is too long. [141/120]", 1104064739], + [7023, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 2382712010], + [7033, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1791534645], + [7038, 121, 50, "Layout/LineLength: Line is too long. [170/120]", 2403815412], + [7041, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1422839111], + [7044, 121, 45, "Layout/LineLength: Line is too long. [165/120]", 4046048864], + [7050, 121, 60, "Layout/LineLength: Line is too long. [180/120]", 3472955113], + [7053, 121, 10, "Layout/LineLength: Line is too long. [130/120]", 2939363812], + [7055, 121, 13, "Layout/LineLength: Line is too long. [133/120]", 3155638331], + [7059, 121, 52, "Layout/LineLength: Line is too long. [172/120]", 3911469720], + [7061, 121, 71, "Layout/LineLength: Line is too long. [191/120]", 272433263], + [7065, 121, 46, "Layout/LineLength: Line is too long. [166/120]", 634420444], + [7068, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 2624667704], + [7070, 121, 13, "Layout/LineLength: Line is too long. [133/120]", 3155638331], + [7071, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2088324682], + [7084, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2087906711], + [7096, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 2135380894], + [7105, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 2102137893], + [7107, 121, 25, "Layout/LineLength: Line is too long. [145/120]", 4280757685], + [7111, 121, 10, "Layout/LineLength: Line is too long. [130/120]", 161599970], + [7145, 121, 7, "Layout/LineLength: Line is too long. [127/120]", 830053789], + [7180, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 2188407955], + [7191, 121, 19, "Layout/LineLength: Line is too long. [139/120]", 3692322233], + [7195, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2087557694], + [7218, 121, 10, "Layout/LineLength: Line is too long. [130/120]", 3197512522], + [7227, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5858840], + [7229, 121, 21, "Layout/LineLength: Line is too long. [141/120]", 85298067], + [7286, 121, 3, "Layout/LineLength: Line is too long. [123/120]", 193418403], + [7292, 121, 3, "Layout/LineLength: Line is too long. [123/120]", 193418403], + [7315, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2087432474], + [7327, 121, 14, "Layout/LineLength: Line is too long. [134/120]", 2361949763], + [7336, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 2102137893], + [7338, 121, 25, "Layout/LineLength: Line is too long. [145/120]", 581045160], + [7342, 121, 10, "Layout/LineLength: Line is too long. [130/120]", 4235011647], + [7361, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1898147766], + [7367, 121, 1, "Layout/LineLength: Line is too long. [121/120]", 177560], + [7373, 121, 16, "Layout/LineLength: Line is too long. [136/120]", 1310140439], + [7382, 121, 8, "Layout/LineLength: Line is too long. [128/120]", 681770239], + [7384, 121, 27, "Layout/LineLength: Line is too long. [147/120]", 3821940657], + [7388, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5862609], + [7408, 121, 2, "Layout/LineLength: Line is too long. [122/120]", 5861292], + [7420, 121, 12, "Layout/LineLength: Line is too long. [132/120]", 2354124424], + [7429, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2087922021], + [7431, 121, 23, "Layout/LineLength: Line is too long. [143/120]", 3921370162], + [8024, 121, 24, "Layout/LineLength: Line is too long. [144/120]", 4083054536], + [8052, 121, 24, "Layout/LineLength: Line is too long. [144/120]", 4083054536], + [8081, 121, 24, "Layout/LineLength: Line is too long. [144/120]", 4083054536], + [8139, 121, 42, "Layout/LineLength: Line is too long. [162/120]", 632953222], + [8168, 121, 34, "Layout/LineLength: Line is too long. [154/120]", 732995265], + [8218, 121, 30, "Layout/LineLength: Line is too long. [150/120]", 1886249927], + [8380, 121, 7, "Layout/LineLength: Line is too long. [127/120]", 578751979], + [8381, 121, 11, "Layout/LineLength: Line is too long. [131/120]", 3803540269], + [8390, 121, 17, "Layout/LineLength: Line is too long. [137/120]", 2238403955], + [8391, 121, 25, "Layout/LineLength: Line is too long. [145/120]", 1028441932], + [8392, 121, 29, "Layout/LineLength: Line is too long. [149/120]", 1975950909], + [8447, 121, 6, "Layout/LineLength: Line is too long. [126/120]", 1244043798] + ], + "spec/integration/freeze_node_edge_cases_spec.rb:3416491031": [ + [6, 1, 28959, "Metrics/BlockLength: Block has too many lines. [663/25]", 3473768018], + [7, 3, 2985, "Metrics/BlockLength: Block has too many lines. [57/25]", 436154415], + [8, 5, 2934, "Metrics/BlockLength: Block has too many lines. [55/25]", 1963918102], + [78, 3, 6091, "Metrics/BlockLength: Block has too many lines. [136/25]", 232153494], + [98, 5, 3053, "Metrics/BlockLength: Block has too many lines. [69/25]", 1442974101], + [202, 5, 1691, "Metrics/BlockLength: Block has too many lines. [29/25]", 985654389], + [241, 3, 8515, "Metrics/BlockLength: Block has too many lines. [176/25]", 2776676526], + [473, 3, 2024, "Metrics/BlockLength: Block has too many lines. [55/25]", 1048101963], + [474, 5, 890, "Metrics/BlockLength: Block has too many lines. [26/25]", 753961540], + [543, 3, 4511, "Metrics/BlockLength: Block has too many lines. [116/25]", 1227615145], + [693, 3, 1660, "Metrics/BlockLength: Block has too many lines. [43/25]", 1881888061], + [694, 5, 1107, "Metrics/BlockLength: Block has too many lines. [26/25]", 368095693] + ], + "spec/integration/gem_family_section_merge_spec.rb:1744383089": [ + [164, 121, 27, "Layout/LineLength: Line is too long. [147/120]", 93655697] + ], + "spec/integration/integration_spec.rb:2239247043": [ + [14, 1, 4488, "Metrics/BlockLength: Block has too many lines. [88/25]", 206207480], + [15, 3, 3267, "Metrics/BlockLength: Block has too many lines. [62/25]", 1323899085], + [40, 5, 2263, "Metrics/BlockLength: Block has too many lines. [48/25]", 3172595581] + ], + "spec/integration/link_reference_preservation_spec.rb:3764298162": [ + [6, 1, 2646, "Metrics/BlockLength: Block has too many lines. [48/25]", 3396410609], + [19, 3, 2058, "Metrics/BlockLength: Block has too many lines. [33/25]", 163363949] + ], + "spec/integration/markly_merge_spec.rb:3076950975": [ + [3, 1, 22886, "Metrics/BlockLength: Block has too many lines. [670/25]", 1408138744], + [62, 3, 7192, "Metrics/BlockLength: Block has too many lines. [189/25]", 1890889324], + [63, 5, 1678, "Metrics/BlockLength: Block has too many lines. [41/25]", 2587582896], + [115, 5, 1808, "Metrics/BlockLength: Block has too many lines. [48/25]", 3381172795], + [147, 46, 21, "Style/StringConcatenation: Prefer string interpolation to string concatenation.", 451071547], + [171, 5, 1134, "Metrics/BlockLength: Block has too many lines. [30/25]", 2526618199], + [220, 5, 1335, "Metrics/BlockLength: Block has too many lines. [32/25]", 2790596215], + [311, 3, 2008, "Metrics/BlockLength: Block has too many lines. [66/25]", 2640155627], + [394, 3, 1052, "Metrics/BlockLength: Block has too many lines. [27/25]", 3988836255], + [440, 3, 2950, "Metrics/BlockLength: Block has too many lines. [89/25]", 961031348], + [441, 5, 1352, "Metrics/BlockLength: Block has too many lines. [37/25]", 1952365669], + [495, 5, 1550, "Metrics/BlockLength: Block has too many lines. [48/25]", 2400197001], + [561, 3, 1665, "Metrics/BlockLength: Block has too many lines. [52/25]", 3884776329], + [650, 3, 1919, "Metrics/BlockLength: Block has too many lines. [57/25]", 2594646583], + [725, 3, 1644, "Metrics/BlockLength: Block has too many lines. [45/25]", 2348710811], + [791, 3, 1600, "Metrics/BlockLength: Block has too many lines. [46/25]", 3683503747] + ], + "spec/integration/partial_template_merger_table_merge_spec.rb:3504046892": [ + [7, 1, 7402, "Metrics/BlockLength: Block has too many lines. [164/25]", 3368892126], + [9, 3, 2986, "Metrics/BlockLength: Block has too many lines. [67/25]", 2267114449], + [65, 5, 1359, "Metrics/BlockLength: Block has too many lines. [28/25]", 3145143002], + [102, 3, 997, "Metrics/BlockLength: Block has too many lines. [26/25]", 3156068215], + [147, 3, 3009, "Metrics/BlockLength: Block has too many lines. [65/25]", 994160212], + [202, 5, 1401, "Metrics/BlockLength: Block has too many lines. [28/25]", 3038951618] + ], + "spec/integration/table_formatting_preservation_spec.rb:3943985446": [ + [6, 1, 3086, "Metrics/BlockLength: Block has too many lines. [56/25]", 2210897849], + [19, 3, 2374, "Metrics/BlockLength: Block has too many lines. [40/25]", 668961519], + [33, 5, 1847, "Metrics/BlockLength: Block has too many lines. [28/25]", 3433318963] + ], + "spec/integration/text_merge_spec.rb:884566200": [ + [6, 1, 7747, "Metrics/BlockLength: Block has too many lines. [204/25]", 2372984305], + [60, 3, 1113, "Metrics/BlockLength: Block has too many lines. [34/25]", 3399970957], + [67, 5, 860, "Metrics/BlockLength: Block has too many lines. [27/25]", 2337191560], + [103, 3, 916, "Metrics/BlockLength: Block has too many lines. [28/25]", 4082963348], + [149, 3, 3001, "Metrics/BlockLength: Block has too many lines. [74/25]", 7776854] + ], + "spec/support/fictive_language_harness.rb:1770581700": [ + [85, 7, 733, "Metrics/AbcSize: Assignment Branch Condition size for `extract_comments` is too high. [<5, 16, 5> 17.49/17]", 1127096515], + [85, 7, 733, "Metrics/MethodLength: Method has too many lines. [22/10]", 1127096515], + [117, 21, 129, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 681912759], + [182, 7, 1084, "Metrics/AbcSize: Assignment Branch Condition size for `parse_statements` is too high. [<9, 28, 7> 30.23/17]", 3123785685], + [182, 7, 1084, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `parse_statements` is too high. [8/7]", 3123785685], + [182, 7, 1084, "Metrics/MethodLength: Method has too many lines. [24/10]", 3123785685], + [233, 5, 9879, "Metrics/ClassLength: Class has too many lines. [228/100]", 3231256134], + [236, 21, 208, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 2970487173], + [257, 7, 1981, "Metrics/AbcSize: Assignment Branch Condition size for `resolve_batch` is too high. [<16, 32, 4> 36/17]", 4125392918], + [257, 7, 1981, "Metrics/MethodLength: Method has too many lines. [42/10]", 4125392918], + [342, 7, 778, "Metrics/MethodLength: Method has too many lines. [18/10]", 4189873983], + [364, 7, 844, "Metrics/MethodLength: Method has too many lines. [19/10]", 526186683], + [449, 121, 4, "Layout/LineLength: Line is too long. [124/120]", 2087956942], + [464, 7, 1065, "Metrics/AbcSize: Assignment Branch Condition size for `collapse_template_preamble_prefix_region` is too high. [<6, 24, 11> 27.07/17]", 2332280467], + [464, 7, 1065, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `collapse_template_preamble_prefix_region` is too high. [10/7]", 2332280467], + [464, 7, 1065, "Metrics/MethodLength: Method has too many lines. [20/10]", 2332280467], + [464, 7, 1065, "Metrics/PerceivedComplexity: Perceived complexity for `collapse_template_preamble_prefix_region` is too high. [10/8]", 2332280467] + ], + "spec/support/testable_node.rb:1110514732": [ + [10, 7, 573, "Metrics/MethodLength: Method has too many lines. [12/10]", 798847435], + [10, 22, 226, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [10/5]", 2319398994], + [40, 7, 642, "Metrics/AbcSize: Assignment Branch Condition size for `initialize` is too high. [<11, 14, 6> 18.79/17]", 2249578474], + [40, 21, 131, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [10/5]", 1786967686] + ] +} diff --git a/gems/ast-merge/Gemfile.lock b/gems/ast-merge/Gemfile.lock index e7f5fef46..dcd9de23b 100644 --- a/gems/ast-merge/Gemfile.lock +++ b/gems/ast-merge/Gemfile.lock @@ -8,7 +8,7 @@ PATH version_gem (~> 1.1, >= 1.1.9) PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/tree_haver specs: tree_haver (7.1.0) citrus (~> 3.0) diff --git a/gems/json-merge/Gemfile.lock b/gems/json-merge/Gemfile.lock index c3b631efa..d5271664d 100644 --- a/gems/json-merge/Gemfile.lock +++ b/gems/json-merge/Gemfile.lock @@ -6,24 +6,6 @@ PATH tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) -PATH - remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/ast-merge - specs: - ast-merge (7.1.0) - benchmark - token-resolver (~> 2.0, >= 2.0.4) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/tree_haver - specs: - tree_haver (7.1.0) - citrus (~> 3.0) - parslet (~> 2.0) - tree_sitter_language_pack (>= 1.13.2, < 2.0) - version_gem (~> 1.1, >= 1.1.9) - GEM remote: https://gem.coop/ specs: @@ -39,6 +21,11 @@ GEM rubocop (>= 1.0) version_gem (~> 1.1, >= 1.1.14) ast (2.4.3) + ast-merge (7.1.0) + benchmark + token-resolver (~> 2.0, >= 2.0.4) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) backports (3.25.3) benchmark (0.5.0) bigdecimal (4.1.2) @@ -354,6 +341,11 @@ GEM token-resolver (2.0.5) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.14) + tree_haver (7.1.0) + citrus (~> 3.0) + parslet (~> 2.0) + tree_sitter_language_pack (>= 1.13.2, < 2.0) + version_gem (~> 1.1, >= 1.1.9) tree_sitter_language_pack (1.13.3-aarch64-linux) sorbet-runtime (~> 0.5) tree_sitter_language_pack (1.13.3-arm64-darwin) @@ -412,7 +404,6 @@ DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) appraisal2-rubocop (~> 1.0, >= 1.0.0) - ast-merge! benchmark (~> 0.5, >= 0.5.0) bundler-audit (~> 0.9.3) cgi (~> 0.5) @@ -445,7 +436,6 @@ DEPENDENCIES standard (~> 1.56, >= 1.56.0) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) - tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) webrick (~> 1.9) yaml-converter (~> 0.2, >= 0.2.3) From ac9cedf122b38881077b030f8a1e52dca71d99eb Mon Sep 17 00:00:00 2001 From: "Peter H. Boling" Date: Tue, 21 Jul 2026 20:10:01 -0600 Subject: [PATCH 185/188] =?UTF-8?q?=F0=9F=94=A5=20Remove=20nomono=20activa?= =?UTF-8?q?tion=20ceremony?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gems/kettle-jem/CHANGELOG.md | 5 ++- gems/kettle-jem/Gemfile | 22 +--------- gems/kettle-jem/Gemfile.lock | 10 ++--- .../gemfiles/modular/coverage_local.gemfile | 22 ---------- .../modular/documentation_local.gemfile | 22 ---------- .../gemfiles/modular/style_local.gemfile | 22 ---------- .../gemfiles/modular/templating_local.gemfile | 22 ---------- gems/kettle-jem/lib/kettle/jem.rb | 43 +++++++++---------- .../modular/coverage_local.gemfile.example | 24 +---------- .../documentation_local.gemfile.example | 24 +---------- .../modular/style_local.gemfile.example | 24 +---------- .../modular/templating_local.gemfile.example | 24 +---------- .../spec/bin/kettle_jem_deps_floor_spec.rb | 6 +-- .../appraisals_and_gemfile_template_spec.rb | 38 ++++++++++++++++ .../config_metadata_template_spec.rb | 8 ++-- 15 files changed, 80 insertions(+), 236 deletions(-) diff --git a/gems/kettle-jem/CHANGELOG.md b/gems/kettle-jem/CHANGELOG.md index 9acb9171b..ab412afa9 100644 --- a/gems/kettle-jem/CHANGELOG.md +++ b/gems/kettle-jem/CHANGELOG.md @@ -71,8 +71,9 @@ Please file a bug if you notice a violation of semantic versioning. - Added the repo-local `bin/kettle-jem-workflow-pins` maintenance script to update the GitHub Actions SHA pin index used by generated workflow templates via `kettle-gha-sha-pins`. -- Generated local Gemfile templates now document why `nomono` is explicitly - activated before requiring `nomono/bundler`. +- Generated local Gemfile templates now use a simple `require "nomono/bundler"` + loader, with a provider-relative loader for `nomono` itself, instead of + emitting runtime lockfile parsing or explicit gem activation ceremony. - Added the repo-local `bin/kettle-jem-deps-floor` maintenance script to scan dependency-bearing kettle-jem templates and update their dependency floors. - `kettle-jem install` now generates a curated `bin/appraisal` binstub for the diff --git a/gems/kettle-jem/Gemfile b/gems/kettle-jem/Gemfile index 61271fef5..346a80112 100644 --- a/gems/kettle-jem/Gemfile +++ b/gems/kettle-jem/Gemfile @@ -53,25 +53,9 @@ if direct_sibling_gems.any? && ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero?) direct_sibling_dev_was_set = ENV.key?("STRUCTUREDMERGE_DEV") direct_sibling_dev_original = ENV.fetch("STRUCTUREDMERGE_DEV", nil) + require "nomono/bundler" begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path("Gemfile.lock", __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == "nomono" } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - if nomono_locked - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] - end - end - Kernel.send(:gem, "nomono", *nomono_activation_requirements) - require "nomono/bundler" - if direct_sibling_templating && !direct_sibling_local - ENV["STRUCTUREDMERGE_DEV"] = File.expand_path("..", __dir__) - end + ENV["STRUCTUREDMERGE_DEV"] = File.expand_path("..", __dir__) if direct_sibling_templating && !direct_sibling_local eval_nomono_gems( gems: direct_sibling_gems, @@ -79,8 +63,6 @@ if direct_sibling_gems.any? && path_env: "STRUCTUREDMERGE_DEV", root: ["src", "my", "structuredmerge"] ) - rescue LoadError - warn "Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies." ensure if direct_sibling_templating && !direct_sibling_local if direct_sibling_dev_was_set diff --git a/gems/kettle-jem/Gemfile.lock b/gems/kettle-jem/Gemfile.lock index a30eaf9ea..416ab96ff 100644 --- a/gems/kettle-jem/Gemfile.lock +++ b/gems/kettle-jem/Gemfile.lock @@ -300,7 +300,7 @@ GEM mutex_m (0.3.0) nokogiri (1.19.4-x86_64-linux-gnu) racc (~> 1.4) - nomono (1.0.9) + nomono (1.0.8) openssl (4.0.2) ostruct (0.6.3) parallel (1.28.0) @@ -658,11 +658,11 @@ CHECKSUMS irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 json-merge (7.1.0) - kettle-dev (2.3.9) - kettle-drift (1.0.6) sha256=46eda08fa4411d1f3c6682a95eef1c9df4e94611b3949f49d4c7b43c0ed356a3 + kettle-dev (2.3.9) sha256=03b2f72c6dda4d2c4401ee3c0c96853116c922766e7b5b04224434a49b571bfc + kettle-drift (1.0.6) kettle-jem (7.1.0) kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f - kettle-soup-cover (3.0.4) + kettle-soup-cover (3.0.4) sha256=36d4df472362d2020d16411d7ce26ba2fe2a41fb8be64577ff9b5280acf99d86 kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa @@ -676,7 +676,7 @@ CHECKSUMS markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-x86_64-linux-gnu) sha256=379fae440b28915e3f19d752ce2dcf8465ed2b2fbefd2a7ca0dd497bc981a06a - nomono (1.0.9) + nomono (1.0.8) sha256=bf4b9b426cbf216ab17b70db474f691b8ae1f1e29de8db4b0ecd405e6e7e1c80 openssl (4.0.2) sha256=1037ad2868ae58df9ad917891c0c0f9815a1172f6846d4bcdd508e4c2ee747c2 ostruct (0.6.3) sha256=95a2ed4a4bd1d190784e666b47b2d3f078e4a9efda2fccf18f84ddc6538ed912 parallel (1.28.0) sha256=33e6de1484baf2524792d178b0913fc8eb94c628d6cfe45599ad4458c638c970 diff --git a/gems/kettle-jem/gemfiles/modular/coverage_local.gemfile b/gems/kettle-jem/gemfiles/modular/coverage_local.gemfile index 44d4e196a..82f4fd823 100644 --- a/gems/kettle-jem/gemfiles/modular/coverage_local.gemfile +++ b/gems/kettle-jem/gemfiles/modular/coverage_local.gemfile @@ -3,28 +3,6 @@ # Local path overrides for development. # Loaded by the associated non-local gemfile when KETTLE_DEV_DEV != "false". -# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. -# Bundler records that dependency during Gemfile evaluation, but it does not -# activate that exact version before the immediate `require "nomono/bundler"`. -# If multiple compatible nomono versions are installed, RubyGems may activate -# the newest installed version while Gemfile.lock pins an older compatible one; -# Bundler then aborts with "already activated nomono X, but your Gemfile -# requires nomono Y". Prefer the locked compatible version when present, then -# activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] -nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) -if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == "nomono" } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - if nomono_locked - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] - end -end -Kernel.send(:gem, "nomono", *nomono_activation_requirements) require "nomono/bundler" local_gems = %w[kettle-dev kettle-test kettle-soup-cover kettle-drift] diff --git a/gems/kettle-jem/gemfiles/modular/documentation_local.gemfile b/gems/kettle-jem/gemfiles/modular/documentation_local.gemfile index e54064b14..d387f5503 100644 --- a/gems/kettle-jem/gemfiles/modular/documentation_local.gemfile +++ b/gems/kettle-jem/gemfiles/modular/documentation_local.gemfile @@ -3,28 +3,6 @@ # Local path overrides for development. # Loaded by the associated non-local gemfile when GALTZO_FLOSS_DEV != "false". -# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. -# Bundler records that dependency during Gemfile evaluation, but it does not -# activate that exact version before the immediate `require "nomono/bundler"`. -# If multiple compatible nomono versions are installed, RubyGems may activate -# the newest installed version while Gemfile.lock pins an older compatible one; -# Bundler then aborts with "already activated nomono X, but your Gemfile -# requires nomono Y". Prefer the locked compatible version when present, then -# activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] -nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) -if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == "nomono" } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - if nomono_locked - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] - end -end -Kernel.send(:gem, "nomono", *nomono_activation_requirements) require "nomono/bundler" local_gems = %w[yard-fence yard-timekeeper yard-yaml] diff --git a/gems/kettle-jem/gemfiles/modular/style_local.gemfile b/gems/kettle-jem/gemfiles/modular/style_local.gemfile index 64abccc9b..670ab1296 100644 --- a/gems/kettle-jem/gemfiles/modular/style_local.gemfile +++ b/gems/kettle-jem/gemfiles/modular/style_local.gemfile @@ -6,28 +6,6 @@ # Local path overrides for development. # Loaded by the associated non-local gemfile when RUBOCOP_LTS_LOCAL != "false". -# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. -# Bundler records that dependency during Gemfile evaluation, but it does not -# activate that exact version before the immediate `require "nomono/bundler"`. -# If multiple compatible nomono versions are installed, RubyGems may activate -# the newest installed version while Gemfile.lock pins an older compatible one; -# Bundler then aborts with "already activated nomono X, but your Gemfile -# requires nomono Y". Prefer the locked compatible version when present, then -# activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] -nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) -if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == "nomono" } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - if nomono_locked - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] - end -end -Kernel.send(:gem, "nomono", *nomono_activation_requirements) require "nomono/bundler" local_gems = %w[rubocop-lts rubocop-lts-rspec rubocop-ruby3_2 standard-rubocop-lts] diff --git a/gems/kettle-jem/gemfiles/modular/templating_local.gemfile b/gems/kettle-jem/gemfiles/modular/templating_local.gemfile index dcf709da4..fb4125eb0 100644 --- a/gems/kettle-jem/gemfiles/modular/templating_local.gemfile +++ b/gems/kettle-jem/gemfiles/modular/templating_local.gemfile @@ -4,28 +4,6 @@ # Loaded by the associated non-local gemfile when STRUCTUREDMERGE_DEV or KETTLE_DEV_DEV # is not "false". -# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. -# Bundler records that dependency during Gemfile evaluation, but it does not -# activate that exact version before the immediate `require "nomono/bundler"`. -# If multiple compatible nomono versions are installed, RubyGems may activate -# the newest installed version while Gemfile.lock pins an older compatible one; -# Bundler then aborts with "already activated nomono X, but your Gemfile -# requires nomono Y". Prefer the locked compatible version when present, then -# activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] -nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) -if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == "nomono" } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - if nomono_locked - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] - end -end -Kernel.send(:gem, "nomono", *nomono_activation_requirements) require "nomono/bundler" structuredmerge_local_gems = %w[ diff --git a/gems/kettle-jem/lib/kettle/jem.rb b/gems/kettle-jem/lib/kettle/jem.rb index d921d6c5e..6a871dc9c 100644 --- a/gems/kettle-jem/lib/kettle/jem.rb +++ b/gems/kettle-jem/lib/kettle/jem.rb @@ -403,6 +403,7 @@ class Error < StandardError; end KJ|LICENSE_EYE:DEPENDENCY_LICENSES KJ|LICENSE_EYE:MODE KJ|LICENSE_EYE:PRIMARY_SPDX + KJ|LOCAL_GEMFILE_NOMONO_BOOTSTRAP KJ|MAIN_GEMFILE_DIRECT_SIBLING_BLOCK KJ|MAIN_GEMFILE_NOMONO_BOOTSTRAP KJ|MIN_DIVERGENCE_THRESHOLD @@ -4468,7 +4469,7 @@ def monorepo_root_gemfile_dependency_lines [ {name: "appraisal2", source: %(gem "appraisal2", "~> 3.2", ">= 3.2.0"\n)}, {name: "bundler-audit", source: %(gem "bundler-audit", "~> 0.9.3"\n)}, - {name: "kettle-dev", source: %(gem "kettle-dev", "~> 2.3", ">= 2.3.8"\n)}, + {name: "kettle-dev", source: %(gem "kettle-dev", "~> 2.3", ">= 2.3.9"\n)}, {name: "kettle-drift", source: %(gem "kettle-drift", "~> 1.0", ">= 1.0.6"\n)}, {name: "kettle-jem", source: %(gem "kettle-jem", "~> 7.0", ">= 7.0.0"\n)}, {name: "kettle-test", source: %(gem "kettle-test", "~> 2.0", ">= 2.0.12"\n)}, @@ -11874,6 +11875,7 @@ def project_runtime_facts( template_run_year: run_timestamp.year.to_s, kettle_dev_gem: "kettle-dev", kettle_dev_local_gems: kettle_dev_local_gems(config), + local_gemfile_nomono_bootstrap: local_gemfile_nomono_bootstrap(package_name), main_gemfile_nomono_bootstrap: main_gemfile_nomono_bootstrap(package_name), package_name: package_name.to_s, yard_host: yard_host, @@ -11887,6 +11889,7 @@ def project_runtime_facts( github_org: github_org_from_url(source_url).to_s, main_gemfile_direct_sibling_block: main_gemfile_direct_sibling_block( direct_sibling_gems, + package_name: package_name, source_url: source_url, project_root: project_root, local_modular_eval_paths: local_modular_eval_paths.values.flatten @@ -11978,7 +11981,7 @@ def gemspec_runtime_dependency_names(gemspec_metadata) end end - def main_gemfile_direct_sibling_block(gems, source_url:, project_root:, local_modular_eval_paths: []) + def main_gemfile_direct_sibling_block(gems, package_name:, source_url:, project_root:, local_modular_eval_paths: []) names = Array(gems).map(&:to_s).reject(&:empty?).uniq eval_paths = Array(local_modular_eval_paths).map(&:to_s).reject(&:empty?).uniq.sort return "" if names.empty? && eval_paths.empty? @@ -11998,6 +12001,11 @@ def main_gemfile_direct_sibling_block(gems, source_url:, project_root:, local_mo dev_env = "#{prefix}_DEV" root_literal = ruby_array_literal(["src", "my", workspace_slug].reject(&:empty?)) word_array = names.map { |name| " #{name}" }.join("\n") + nomono_loader = if package_name.to_s == "nomono" + %(require_relative "lib/nomono/bundler") + else + %(require "nomono/bundler") + end blocks << <<~RUBY.rstrip # Direct sibling dependencies (env-switched via #{dev_env}) @@ -12014,25 +12022,9 @@ def main_gemfile_direct_sibling_block(gems, source_url:, project_root:, local_mo ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero?) direct_sibling_dev_was_set = ENV.key?("#{dev_env}") direct_sibling_dev_original = ENV.fetch("#{dev_env}", nil) + #{nomono_loader} begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path("Gemfile.lock", __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == "nomono" } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - if nomono_locked - nomono_activation_requirements = ["= \#{nomono_locked_spec.version}"] - end - end - Kernel.send(:gem, "nomono", *nomono_activation_requirements) - require "nomono/bundler" - if direct_sibling_templating && !direct_sibling_local - ENV["#{dev_env}"] = File.expand_path("..", __dir__) - end + ENV["#{dev_env}"] = File.expand_path("..", __dir__) if direct_sibling_templating && !direct_sibling_local eval_nomono_gems( gems: direct_sibling_gems, @@ -12040,8 +12032,6 @@ def main_gemfile_direct_sibling_block(gems, source_url:, project_root:, local_mo path_env: "#{dev_env}", root: #{root_literal} ) - rescue LoadError - warn "Install nomono to enable #{dev_env} local sibling-gem dependencies." ensure if direct_sibling_templating && !direct_sibling_local if direct_sibling_dev_was_set @@ -12185,6 +12175,7 @@ def project_runtime_template_tokens(project_runtime) "KJ|TEMPLATE_RUN_YEAR" => project_runtime[:template_run_year].to_s, "KJ|KETTLE_DEV_GEM" => project_runtime[:kettle_dev_gem].to_s, "KJ|KETTLE_DEV_LOCAL_GEMS" => project_runtime[:kettle_dev_local_gems].to_s, + "KJ|LOCAL_GEMFILE_NOMONO_BOOTSTRAP" => project_runtime[:local_gemfile_nomono_bootstrap].to_s, "KJ|MAIN_GEMFILE_NOMONO_BOOTSTRAP" => project_runtime[:main_gemfile_nomono_bootstrap].to_s, "KJ|MAIN_GEMFILE_DIRECT_SIBLING_BLOCK" => project_runtime[:main_gemfile_direct_sibling_block].to_s, "KJ|PACKAGE_NAME" => project_runtime[:package_name].to_s, @@ -12217,6 +12208,14 @@ def main_gemfile_nomono_bootstrap(package_name) RUBY end + def local_gemfile_nomono_bootstrap(package_name) + if package_name.to_s == "nomono" + %(require_relative "../../lib/nomono/bundler") + else + %(require "nomono/bundler") + end + end + def project_homepage_uri(config, env, yard_host:, gemspec_homepage_uri: nil) derived = if present_template_token_value?(gemspec_homepage_uri) gemspec_homepage_uri diff --git a/gems/kettle-jem/lib/kettle/jem/templates/gemfiles/modular/coverage_local.gemfile.example b/gems/kettle-jem/lib/kettle/jem/templates/gemfiles/modular/coverage_local.gemfile.example index 2982f0faa..406aec148 100644 --- a/gems/kettle-jem/lib/kettle/jem/templates/gemfiles/modular/coverage_local.gemfile.example +++ b/gems/kettle-jem/lib/kettle/jem/templates/gemfiles/modular/coverage_local.gemfile.example @@ -3,29 +3,7 @@ # Local path overrides for development. # Loaded by the associated non-local gemfile when KETTLE_DEV_DEV != "false". -# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. -# Bundler records that dependency during Gemfile evaluation, but it does not -# activate that exact version before the immediate `require "nomono/bundler"`. -# If multiple compatible nomono versions are installed, RubyGems may activate -# the newest installed version while Gemfile.lock pins an older compatible one; -# Bundler then aborts with "already activated nomono X, but your Gemfile -# requires nomono Y". Prefer the locked compatible version when present, then -# activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] -nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) -if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == "nomono" } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - if nomono_locked - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] - end -end -Kernel.send(:gem, "nomono", *nomono_activation_requirements) -require "nomono/bundler" +{KJ|LOCAL_GEMFILE_NOMONO_BOOTSTRAP} local_gems = %w[{KJ|KETTLE_DEV_LOCAL_GEMS}] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) diff --git a/gems/kettle-jem/lib/kettle/jem/templates/gemfiles/modular/documentation_local.gemfile.example b/gems/kettle-jem/lib/kettle/jem/templates/gemfiles/modular/documentation_local.gemfile.example index 12580dc38..8b6a4fce3 100644 --- a/gems/kettle-jem/lib/kettle/jem/templates/gemfiles/modular/documentation_local.gemfile.example +++ b/gems/kettle-jem/lib/kettle/jem/templates/gemfiles/modular/documentation_local.gemfile.example @@ -3,29 +3,7 @@ # Local path overrides for development. # Loaded by the associated non-local gemfile when GALTZO_FLOSS_DEV != "false". -# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. -# Bundler records that dependency during Gemfile evaluation, but it does not -# activate that exact version before the immediate `require "nomono/bundler"`. -# If multiple compatible nomono versions are installed, RubyGems may activate -# the newest installed version while Gemfile.lock pins an older compatible one; -# Bundler then aborts with "already activated nomono X, but your Gemfile -# requires nomono Y". Prefer the locked compatible version when present, then -# activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] -nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) -if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == "nomono" } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - if nomono_locked - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] - end -end -Kernel.send(:gem, "nomono", *nomono_activation_requirements) -require "nomono/bundler" +{KJ|LOCAL_GEMFILE_NOMONO_BOOTSTRAP} local_gems = %w[yard-fence yard-timekeeper yard-yaml] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) diff --git a/gems/kettle-jem/lib/kettle/jem/templates/gemfiles/modular/style_local.gemfile.example b/gems/kettle-jem/lib/kettle/jem/templates/gemfiles/modular/style_local.gemfile.example index 2b80e1397..5aee92907 100644 --- a/gems/kettle-jem/lib/kettle/jem/templates/gemfiles/modular/style_local.gemfile.example +++ b/gems/kettle-jem/lib/kettle/jem/templates/gemfiles/modular/style_local.gemfile.example @@ -6,29 +6,7 @@ # Local path overrides for development. # Loaded by the associated non-local gemfile when RUBOCOP_LTS_LOCAL != "false". -# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. -# Bundler records that dependency during Gemfile evaluation, but it does not -# activate that exact version before the immediate `require "nomono/bundler"`. -# If multiple compatible nomono versions are installed, RubyGems may activate -# the newest installed version while Gemfile.lock pins an older compatible one; -# Bundler then aborts with "already activated nomono X, but your Gemfile -# requires nomono Y". Prefer the locked compatible version when present, then -# activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] -nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) -if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == "nomono" } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - if nomono_locked - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] - end -end -Kernel.send(:gem, "nomono", *nomono_activation_requirements) -require "nomono/bundler" +{KJ|LOCAL_GEMFILE_NOMONO_BOOTSTRAP} local_gems = %w[rubocop-lts rubocop-lts-rspec {KJ|RUBOCOP_RUBY_GEM} standard-rubocop-lts] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) diff --git a/gems/kettle-jem/lib/kettle/jem/templates/gemfiles/modular/templating_local.gemfile.example b/gems/kettle-jem/lib/kettle/jem/templates/gemfiles/modular/templating_local.gemfile.example index 88ba06ed0..e3c20ea94 100644 --- a/gems/kettle-jem/lib/kettle/jem/templates/gemfiles/modular/templating_local.gemfile.example +++ b/gems/kettle-jem/lib/kettle/jem/templates/gemfiles/modular/templating_local.gemfile.example @@ -4,29 +4,7 @@ # Loaded by the associated non-local gemfile when STRUCTUREDMERGE_DEV or KETTLE_DEV_DEV # is not "false". -# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. -# Bundler records that dependency during Gemfile evaluation, but it does not -# activate that exact version before the immediate `require "nomono/bundler"`. -# If multiple compatible nomono versions are installed, RubyGems may activate -# the newest installed version while Gemfile.lock pins an older compatible one; -# Bundler then aborts with "already activated nomono X, but your Gemfile -# requires nomono Y". Prefer the locked compatible version when present, then -# activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] -nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) -if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == "nomono" } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - if nomono_locked - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] - end -end -Kernel.send(:gem, "nomono", *nomono_activation_requirements) -require "nomono/bundler" +{KJ|LOCAL_GEMFILE_NOMONO_BOOTSTRAP} structuredmerge_local_gems = %w[ tree_haver diff --git a/gems/kettle-jem/spec/bin/kettle_jem_deps_floor_spec.rb b/gems/kettle-jem/spec/bin/kettle_jem_deps_floor_spec.rb index 23d4b5273..62cf9445f 100644 --- a/gems/kettle-jem/spec/bin/kettle_jem_deps_floor_spec.rb +++ b/gems/kettle-jem/spec/bin/kettle_jem_deps_floor_spec.rb @@ -65,8 +65,6 @@ def versions(gem_name, requirements: nil) write_file("template/local.gemfile.example", <<~RUBY) # frozen_string_literal: true - nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] - Kernel.send(:gem, "nomono", *nomono_activation_requirements) require "nomono/bundler" RUBY write_file("template/documentation.gemfile.example", <<~RUBY) @@ -78,6 +76,7 @@ def versions(gem_name, requirements: nil) # frozen_string_literal: true {name: "embedded_dep", source: %(gem "embedded_dep", "~> 4.5", ">= 4.5.6"\\n)} + nomono_requirements = ["~> 1.0", ">= 1.0.8"] RUBY end @@ -131,12 +130,13 @@ def read_file(relative_path) expect(result[:updates]).to eq(6) expect(read_file("lib/embedded.rb")).to include('{name: "embedded_dep", source: %(gem "embedded_dep", "~> 4.5", ">= 4.5.7"\\n)}') + expect(read_file("lib/embedded.rb")).to include('nomono_requirements = ["~> 1.0", ">= 1.0.9"]') expect(read_file("template/valid.gemfile.example")).to include('gem "example_dep", "~> 1.3", ">= 1.3.0"') expect(read_file("template/valid.gemfile.example")).to include('spec.add_development_dependency("other_dep", "~> 3.1", ">= 3.1.0")') expect(read_file("template/valid.gemfile.example")).to include('# gem "ignored_dep", "~> 1.0", ">= 1.0.0"') expect(read_file("template/tokenized.gemspec.example")).to include('spec.add_development_dependency("example_dep", "~> 1.3", ">= 1.3.0")') expect(read_file("template/tokenized.gemspec.example")).to include('spec.add_development_dependency("{KJ|TOKENIZED_GEM}", "~> 9.0", ">= 9.0.0")') - expect(read_file("template/local.gemfile.example")).to include('nomono_activation_requirements = ["~> 1.0", ">= 1.0.9"]') + expect(read_file("template/local.gemfile.example")).to include('require "nomono/bundler"') expect(read_file("template/documentation.gemfile.example")).to include('gem "yard-timekeeper", "~> 0.2", ">= 0.2.4", require: false') end diff --git a/gems/kettle-jem/spec/integration/appraisals_and_gemfile_template_spec.rb b/gems/kettle-jem/spec/integration/appraisals_and_gemfile_template_spec.rb index c5bcd032d..313af2c55 100644 --- a/gems/kettle-jem/spec/integration/appraisals_and_gemfile_template_spec.rb +++ b/gems/kettle-jem/spec/integration/appraisals_and_gemfile_template_spec.rb @@ -1182,11 +1182,49 @@ expect(content).to include("declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name)") expect(content).to include("local_gems_to_eval = local_gems - %w[example] - declared_gems") expect(content).to include("gems: local_gems_to_eval") + expect(content).to include('require "nomono/bundler"') + expect(content).not_to include("nomono_activation_requirements") + expect(content).not_to include("nomono_lockfile") + expect(content).not_to include("Bundler::LockfileParser") expect(content).not_to include("local-only") expect(content).not_to include("rubocop-ruby2_3") end end + it "loads nomono's own local Gemfiles from the local source tree" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-nomono-local-gemfile-self-loader", tmp_root) do |root| + write_tree(root, { + "nomono.gemspec" => <<~RUBY, + Gem::Specification.new do |spec| + spec.name = "nomono" + spec.summary = "Nomono" + end + RUBY + ".kettle-jem.yml" => <<~YAML + templates: + root: packaged + apply: true + entries: + - gemfiles/modular/coverage_local.gemfile + YAML + }) + + plan = described_class.plan_project(root, env: {}) + report = plan.fetch(:recipe_reports).find do |candidate| + candidate.fetch(:relative_path) == "gemfiles/modular/coverage_local.gemfile" + end + content = report.fetch(:final_content) + + expect(content).to include('require_relative "../../lib/nomono/bundler"') + expect(content).not_to include('require "nomono/bundler"') + expect(content).not_to include("nomono_activation_requirements") + expect(content).not_to include("nomono_lockfile") + expect(content).not_to include("Bundler::LockfileParser") + end + end + it "excludes the current gem and already declared gems from documentation local path overrides" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) diff --git a/gems/kettle-jem/spec/integration/config_metadata_template_spec.rb b/gems/kettle-jem/spec/integration/config_metadata_template_spec.rb index cf231d888..a72d29be3 100644 --- a/gems/kettle-jem/spec/integration/config_metadata_template_spec.rb +++ b/gems/kettle-jem/spec/integration/config_metadata_template_spec.rb @@ -2051,11 +2051,11 @@ def register_kettle_jem_plugin(registrar) 'direct_sibling_templating = ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero?' ) expect(gemfile).to include('nomono_requirements = ["~> 1.0", ">= 1.0.8"]') - expect(direct_block).to include("nomono_activation_requirements = nomono_requirements") - expect(direct_block).to include('nomono_lockfile = File.expand_path("Gemfile.lock", __dir__)') - expect(direct_block).to include("Bundler::LockfileParser") - expect(direct_block).to include('Kernel.send(:gem, "nomono", *nomono_activation_requirements)') expect(direct_block).to include('require "nomono/bundler"') + expect(direct_block).not_to include("nomono_activation_requirements") + expect(direct_block).not_to include("nomono_lockfile") + expect(direct_block).not_to include("Bundler::LockfileParser") + expect(direct_block).not_to include('Kernel.send(:gem, "nomono"') expect(direct_block).not_to include('Gem::Specification.find_all_by_name("nomono")') expect(direct_block).not_to include( 'unless ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero?' From 8fc1adc51b64bc4720675179f4a64d46f2fe213f Mon Sep 17 00:00:00 2001 From: "Peter H. Boling" Date: Tue, 21 Jul 2026 20:51:14 -0600 Subject: [PATCH 186/188] =?UTF-8?q?=F0=9F=90=9B=20Link=20generated=20licen?= =?UTF-8?q?se=20details=20to=20source?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gems/kettle-jem/CHANGELOG.md | 7 ++ gems/kettle-jem/lib/kettle/jem.rb | 89 ++++++++++++------- .../lib/kettle/jem/templates/Gemfile.example | 3 - .../kettle/jem/templates/README.md.example | 4 +- .../appraisal_helper_and_token_spec.rb | 7 +- .../config_metadata_template_spec.rb | 4 +- 6 files changed, 70 insertions(+), 44 deletions(-) diff --git a/gems/kettle-jem/CHANGELOG.md b/gems/kettle-jem/CHANGELOG.md index ab412afa9..74c65220a 100644 --- a/gems/kettle-jem/CHANGELOG.md +++ b/gems/kettle-jem/CHANGELOG.md @@ -230,6 +230,13 @@ Please file a bug if you notice a violation of semantic versioning. ### Fixed +- Generated license summaries now link split license detail files to the + repository `blob/main` copy instead of packaging-relative files that are + intentionally excluded from gem manifests. +- Generated root Gemfiles no longer duplicate the + `tree_sitter_language_pack` declaration that belongs to the templating + modular Gemfile. +- Generated README source badges now use GitHub's canonical capitalization. - Install orchestration now bundles each distinct Bundler environment it will execute under, and probes RuboCop Gradual tasks with the same environment used for the eventual command. diff --git a/gems/kettle-jem/lib/kettle/jem.rb b/gems/kettle-jem/lib/kettle/jem.rb index 6a871dc9c..9f89563d9 100644 --- a/gems/kettle-jem/lib/kettle/jem.rb +++ b/gems/kettle-jem/lib/kettle/jem.rb @@ -2835,7 +2835,14 @@ def discover_monorepo_root_facts(project_root, kettle_config, env, template_sele configured_or_detected_licenses = Array(kettle_config["licenses"]) if configured_or_detected_licenses.empty? copyright = copyright_facts(project_root, kettle_config) author = author_facts(kettle_config, env, copyright: copyright) - license = license_facts(kettle_config.merge("licenses" => configured_or_detected_licenses), configured_or_detected_licenses, author: author, author_email: author[:email], copyright: copyright) + license = license_facts( + kettle_config.merge("licenses" => configured_or_detected_licenses), + configured_or_detected_licenses, + author: author, + author_email: author[:email], + copyright: copyright, + source_url: source_url + ) test_min_ruby = config_test_min_ruby(kettle_config, nil) project_runtime = project_runtime_facts( kettle_config, @@ -3011,7 +3018,8 @@ def discover_facts(project_root, env: ENV, run_options: {}) gemspec_licenses, author: author, author_email: author[:email], - copyright: copyright + copyright: copyright, + source_url: source_url ) gemspec_license_spdx = gemspec_licenses .map { |license_id| license_id.to_s.strip } @@ -13378,22 +13386,23 @@ def min_ruby_version(requirement) nil end - def license_facts(config, gemspec_licenses, author: {}, author_email: nil, copyright: {}) + def license_facts(config, gemspec_licenses, author: {}, author_email: nil, copyright: {}, source_url: nil) licenses = resolved_licenses(config, gemspec_licenses) primary = licenses.first compat_category = license_compat_category(licenses) copyright_prefix = polyform_licenses?(licenses) ? "Required Notice: " : "" copyright_lines = Array(copyright[:lines]) + license_source_url = license_source_blob_url(source_url) compact_hash( spdx: licenses, expression: licenses.join(" OR "), primary_spdx: primary, - license_md_content: license_md_content(licenses, author_email: author_email), - readme_license_intro: readme_license_intro(licenses, author_email: author_email), + license_md_content: license_md_content(licenses, author_email: author_email, license_source_url: license_source_url), + readme_license_intro: readme_license_intro(licenses, author_email: author_email, license_source_url: license_source_url), readme_license_badge: license_badge(licenses.join(" OR "), ref: :license), readme_license_compat_badge: license_compat_badge(compat_category), readme_license_eye_workflow_badge: license_eye_workflow_badge(licenses, config), - readme_license_refs: readme_license_refs(licenses.join(" OR "), compat_category), + readme_license_refs: readme_license_refs(licenses.join(" OR "), compat_category, license_source_url: license_source_url), license_eye_primary_spdx: license_eye_primary_spdx(licenses, primary), license_eye_mode: license_eye_mode(licenses), license_eye_flags: license_eye_flags(licenses), @@ -13404,6 +13413,14 @@ def license_facts(config, gemspec_licenses, author: {}, author_email: nil, copyr ) end + def license_source_blob_url(source_url) + repo_url = concrete_github_url(source_url) + repo_url = source_url.to_s.sub(%r{/tree/[^/]+\z}, "") if repo_url.to_s.empty? + return if repo_url.to_s.empty? + + "#{repo_url.to_s.sub(%r{/\z}, "")}/blob/main" + end + def resolved_licenses(config, gemspec_licenses) config_licenses = config.is_a?(Hash) ? config["licenses"] : nil licenses = Array(config_licenses).map { |license| license.to_s.strip }.reject(&:empty?) @@ -13433,9 +13450,8 @@ def license_template_tokens(license) } end - def gemspec_root_license_files_token(license) - files = (["LICENSE.md"] + Array(license[:spdx]).map { |spdx_id| "#{spdx_basename(spdx_id)}.md" }).uniq - files.map { |file| " #{file.dump},\n" }.join + def gemspec_root_license_files_token(_license) + " \"LICENSE.md\",\n" end def license_copyright_notice(copyright_lines, copyright_prefix, author) @@ -13463,36 +13479,36 @@ def copyright_notice_lines(copyright_lines, copyright_prefix, author) lines.map { |line| "#{copyright_prefix}#{line}" } end - def license_md_content(licenses, author_email: nil) + def license_md_content(licenses, author_email: nil, license_source_url: nil) content = <<~MARKDOWN.chomp # License This project is made available under the following license#{"s" if licenses.size > 1}. Choose the option that best fits your use case: - #{licenses.map { |license| "- #{license_link(license)}" }.join("\n")} + #{licenses.map { |license| "- #{license_link(license, license_source_url: license_source_url)}" }.join("\n")} MARKDOWN - guide_table = license_use_case_guide_table(licenses, author_email: author_email) + guide_table = license_use_case_guide_table(licenses, author_email: author_email, license_source_url: license_source_url) content += "\n\n## Use-case guide\n\n#{guide_table}" if guide_table content += "\n\n#{license_contact_line(author_email, context: :license_md)}" if non_mit_licenses?(licenses) content end - def readme_license_intro(licenses, author_email: nil) - return mit_readme_license_intro if licenses == ["MIT"] + def readme_license_intro(licenses, author_email: nil, license_source_url: nil) + return mit_readme_license_intro(license_source_url: license_source_url) if licenses == ["MIT"] intro = "The gem is available under the following license#{"s" if licenses.size > 1}: " \ - "#{licenses.map { |license| license_link(license) }.join(", ")}.\n" \ + "#{licenses.map { |license| license_link(license, license_source_url: license_source_url) }.join(", ")}.\n" \ "See [LICENSE.md][#{paperclip_ref(:license)}] for details." intro += "\n\n#{license_contact_line(author_email, context: :readme)}" if non_mit_licenses?(licenses) - guide_table = license_use_case_guide_table(licenses, author_email: author_email) + guide_table = license_use_case_guide_table(licenses, author_email: author_email, license_source_url: license_source_url) intro += "\n\n### License use-case guide\n\n#{guide_table}" if guide_table intro end - def mit_readme_license_intro + def mit_readme_license_intro(license_source_url: nil) "The gem is available as open source under the terms of\n" \ - "the #{license_link("MIT")} #{license_badge("MIT")}." + "the #{license_link("MIT", license_source_url: license_source_url)} #{license_badge("MIT")}." end def license_contact_line(author_email, context:) @@ -13507,11 +13523,11 @@ def license_contact_line(author_email, context:) end end - def readme_license_refs(expression, compat_category) + def readme_license_refs(expression, compat_category, license_source_url: nil) [ "[#{paperclip_ref(:copyright_notice_explainer)}]: https://opensource.stackexchange.com/questions/5778/why-do-licenses-such-as-the-mit-license-specify-a-single-year", "[#{paperclip_ref(:license)}]: LICENSE.md", - "[#{paperclip_ref(:license_ref)}]: #{license_badge_ref(expression)}", + "[#{paperclip_ref(:license_ref)}]: #{license_badge_ref(expression, license_source_url: license_source_url)}", "[#{paperclip_ref(:license_img)}]: #{license_badge_img(expression)}", "[#{paperclip_ref(:license_compat)}]: #{license_compat_ref(compat_category)}", "[#{paperclip_ref(:license_compat_img)}]: #{license_compat_img(compat_category)}" @@ -13522,9 +13538,9 @@ def spdx_basename(spdx_id) spdx_id.to_s.sub(/\ALicenseRef-/, "") end - def license_link(spdx_id) + def license_link(spdx_id, license_source_url: nil) base = spdx_basename(spdx_id) - "[#{base}](#{base}.md)" + "[#{base}](#{license_detail_ref(base, license_source_url: license_source_url)})" end def license_badge(spdx_id, ref: :license_ref) @@ -13532,9 +13548,14 @@ def license_badge(spdx_id, ref: :license_ref) "[![License: #{base}][#{paperclip_ref(:license_img)}]][#{paperclip_ref(ref)}]" end - def license_badge_ref(spdx_id) + def license_badge_ref(spdx_id, license_source_url: nil) base = spdx_basename(spdx_id) - base.include?(" OR ") ? "LICENSE.md" : "#{base}.md" + base.include?(" OR ") ? "LICENSE.md" : license_detail_ref(base, license_source_url: license_source_url) + end + + def license_detail_ref(base, license_source_url: nil) + file = "#{base}.md" + license_source_url.to_s.empty? ? file : "#{license_source_url}/#{file}" end def license_badge_img(spdx_id) @@ -13619,37 +13640,37 @@ def non_mit_licenses?(licenses) licenses.any? { |license| license != "MIT" } end - def license_use_case_guide_table(licenses, author_email: nil) + def license_use_case_guide_table(licenses, author_email: nil, license_source_url: nil) has_floss_oss = licenses.include?("MIT") || licenses.include?("AGPL-3.0-only") has_polyform = licenses.include?("PolyForm-Noncommercial-1.0.0") || licenses.include?("PolyForm-Small-Business-1.0.0") has_big_time = licenses.include?("LicenseRef-Big-Time-Public-License") return unless has_floss_oss && has_polyform && has_big_time - rows = license_use_case_rows(licenses, author_email: author_email) + rows = license_use_case_rows(licenses, author_email: author_email, license_source_url: license_source_url) return if rows.empty? "| Use case | License |\n|---|---|\n" + rows.map { |use_case, license| "| #{use_case} | #{license} |" }.join("\n") end - def license_use_case_rows(licenses, author_email: nil) + def license_use_case_rows(licenses, author_email: nil, license_source_url: nil) rows = [] - rows << ["FLOSS (free and open source)", license_link("MIT")] if licenses.include?("MIT") - rows << ["Copy-left open source", license_link("AGPL-3.0-only")] if licenses.include?("AGPL-3.0-only") + rows << ["FLOSS (free and open source)", license_link("MIT", license_source_url: license_source_url)] if licenses.include?("MIT") + rows << ["Copy-left open source", license_link("AGPL-3.0-only", license_source_url: license_source_url)] if licenses.include?("AGPL-3.0-only") noncommercial_links = %w[PolyForm-Noncommercial-1.0.0 PolyForm-Small-Business-1.0.0 LicenseRef-Big-Time-Public-License] .select { |license| licenses.include?(license) } - .map { |license| license_link(license) } + .map { |license| license_link(license, license_source_url: license_source_url) } rows << ["Non-commercial (research, education, personal use)", noncommercial_links.join(" or ")] unless noncommercial_links.empty? small_business_links = %w[PolyForm-Small-Business-1.0.0 LicenseRef-Big-Time-Public-License] .select { |license| licenses.include?(license) } - .map { |license| license_link(license) } + .map { |license| license_link(license, license_source_url: license_source_url) } rows << ["Small business commercial", small_business_links.join(" or ")] unless small_business_links.empty? - rows << ["Larger business commercial", large_business_license_cell(author_email)] if licenses.include?("LicenseRef-Big-Time-Public-License") + rows << ["Larger business commercial", large_business_license_cell(author_email, license_source_url: license_source_url)] if licenses.include?("LicenseRef-Big-Time-Public-License") rows end - def large_business_license_cell(author_email) - cell = license_link("LicenseRef-Big-Time-Public-License") + def large_business_license_cell(author_email, license_source_url: nil) + cell = license_link("LicenseRef-Big-Time-Public-License", license_source_url: license_source_url) if author_email.to_s.empty? "#{cell} or contact us for a custom license" else diff --git a/gems/kettle-jem/lib/kettle/jem/templates/Gemfile.example b/gems/kettle-jem/lib/kettle/jem/templates/Gemfile.example index c63e7a304..b1f4e6245 100644 --- a/gems/kettle-jem/lib/kettle/jem/templates/Gemfile.example +++ b/gems/kettle-jem/lib/kettle/jem/templates/Gemfile.example @@ -22,9 +22,6 @@ gemspec {KJ|MAIN_GEMFILE_DIRECT_SIBLING_BLOCK} -# Use released TSLP with the Ruby ABI platform-gem fix. -gem "tree_sitter_language_pack", "~> 1.13", ">= 1.13.3" - # Templating (env-switched: STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local paths) eval_gemfile "gemfiles/modular/templating.gemfile" if ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? diff --git a/gems/kettle-jem/lib/kettle/jem/templates/README.md.example b/gems/kettle-jem/lib/kettle/jem/templates/README.md.example index e012c9a1e..44b5b490a 100644 --- a/gems/kettle-jem/lib/kettle/jem/templates/README.md.example +++ b/gems/kettle-jem/lib/kettle/jem/templates/README.md.example @@ -41,7 +41,7 @@ I've summarized my thoughts in [this blog post](https://dev.to/galtzo/hostile-ta | Works with MRI Ruby 2 | ![Ruby 2.0 Compat][💎ruby-2.0i] ![Ruby 2.1 Compat][💎ruby-2.1i] ![Ruby 2.2 Compat][💎ruby-2.2i] ![Ruby 2.3 Compat][💎ruby-2.3i]
        [![Ruby 2.4 Compat][💎ruby-2.4i]][🚎ruby-2.4-wf] [![Ruby 2.5 Compat][💎ruby-2.5i]][🚎ruby-2.5-wf] [![Ruby 2.6 Compat][💎ruby-2.6i]][🚎ruby-2.6-wf] [![Ruby 2.7 Compat][💎ruby-2.7i]][🚎ruby-2.7-wf] | | Works with MRI Ruby 1 | ![Ruby 1.8 Compat][💎ruby-1.8i] ![Ruby 1.9 Compat][💎ruby-1.9i] | | Support & Community | [![Join Me on Daily.dev's RubyFriends][✉️ruby-friends-img]][✉️ruby-friends] [![Get help from RubyForum][✉️ruby-forum-img]][✉️ruby-forum] [![Live Chat on Discord][✉️discord-invite-img-ftb]][✉️discord-invite] [![Get help from me on Upwork][👨🏼‍🏫expsup-upwork-img]][👨🏼‍🏫expsup-upwork] [![Get help from me on Codementor][👨🏼‍🏫expsup-codementor-img]][👨🏼‍🏫expsup-codementor] | -| Source | [![Source on GitLab.com][📜src-gl-img]][📜src-gl] [![Source on CodeBerg.org][📜src-cb-img]][📜src-cb] [![Source on Github.com][📜src-gh-img]][📜src-gh] [![The best SHA: dQw4w9WgXcQ!][🧮kloc-img]][🧮kloc] | +| Source | [![Source on GitLab.com][📜src-gl-img]][📜src-gl] [![Source on CodeBerg.org][📜src-cb-img]][📜src-cb] [![Source on GitHub.com][📜src-gh-img]][📜src-gh] [![The best SHA: dQw4w9WgXcQ!][🧮kloc-img]][🧮kloc] | | Documentation | [![Current release on RubyDoc.info][📜docs-cr-rd-img]][🚎yard-current] [![YARD on Galtzo.com][📜docs-head-rd-img]][🚎yard-head] [![Maintainer Blog][🚂maint-blog-img]][🚂maint-blog] [![GitLab Wiki][📜gl-wiki-img]][📜gl-wiki] [![GitHub Wiki][📜gh-wiki-img]][📜gh-wiki] | | Compliance | {KJ|README:LICENSE_BADGE} {KJ|README:LICENSE_COMPAT_BADGE} [![📄ilo-declaration-img]][📄ilo-declaration] [![Security Policy][🔐security-img]][🔐security] [![Contributor Covenant 2.1][🪇conduct-img]][🪇conduct] [![SemVer 2.0.0][📌semver-img]][📌semver] | | Style | [![Enforced Code Style Linter][💎rlts-img]][💎rlts] [![Keep-A-Changelog 1.0.0][📗keep-changelog-img]][📗keep-changelog] [![Gitmoji Commits][📌gitmoji-img]][📌gitmoji] [![Compatibility appraised by: appraisal2][💎appraisal2-img]][💎appraisal2] | @@ -388,7 +388,7 @@ Thanks for RTFM. ☺️ [📜src-gl]: {KJ|README:GL_PACKAGE_SOURCE_URL} [📜src-cb-img]: https://img.shields.io/badge/CodeBerg-4893CC?style=for-the-badge&logo=CodeBerg&logoColor=blue [📜src-cb]: {KJ|README:CB_PACKAGE_SOURCE_URL} -[📜src-gh-img]: https://img.shields.io/badge/GitHub-238636?style=for-the-badge&logo=Github&logoColor=green +[📜src-gh-img]: https://img.shields.io/badge/GitHub-238636?style=for-the-badge&logo=GitHub&logoColor=green [📜src-gh]: {KJ|README:GH_PACKAGE_SOURCE_URL} [📜docs-cr-rd-img]: https://img.shields.io/badge/RubyDoc-Current_Release-943CD2?style=for-the-badge&logo=readthedocs&logoColor=white [📜docs-head-rd-img]: https://img.shields.io/badge/YARD_on_Galtzo.com-HEAD-943CD2?style=for-the-badge&logo=readthedocs&logoColor=white diff --git a/gems/kettle-jem/spec/integration/appraisal_helper_and_token_spec.rb b/gems/kettle-jem/spec/integration/appraisal_helper_and_token_spec.rb index 9bad0722c..f3e314e74 100644 --- a/gems/kettle-jem/spec/integration/appraisal_helper_and_token_spec.rb +++ b/gems/kettle-jem/spec/integration/appraisal_helper_and_token_spec.rb @@ -845,6 +845,7 @@ def min_ruby_version(gem_name, version) spec.summary = "Example gem" spec.authors = ["Jane Q Public"] spec.email = ["jane@example.test"] + spec.metadata["source_code_uri"] = "https://github.com/acme/example" spec.licenses = ["MIT"] end RUBY @@ -874,9 +875,9 @@ def min_ruby_version(gem_name, version) expect(plan.dig(:facts, :package, :license_expression)).to eq( "AGPL-3.0-only OR PolyForm-Small-Business-1.0.0 OR LicenseRef-Big-Time-Public-License" ) - expect(final_content).to include("[AGPL-3.0-only](AGPL-3.0-only.md)") - expect(final_content).to include("[PolyForm-Small-Business-1.0.0](PolyForm-Small-Business-1.0.0.md)") - expect(final_content).to include("[Big-Time-Public-License](Big-Time-Public-License.md)") + expect(final_content).to include("[AGPL-3.0-only](https://github.com/acme/example/blob/main/AGPL-3.0-only.md)") + expect(final_content).to include("[PolyForm-Small-Business-1.0.0](https://github.com/acme/example/blob/main/PolyForm-Small-Business-1.0.0.md)") + expect(final_content).to include("[Big-Time-Public-License](https://github.com/acme/example/blob/main/Big-Time-Public-License.md)") expect(final_content).to include("## Use-case guide") expect(final_content).to include("- Required Notice: Copyright") expect(final_content).to include("Jane Q Public") diff --git a/gems/kettle-jem/spec/integration/config_metadata_template_spec.rb b/gems/kettle-jem/spec/integration/config_metadata_template_spec.rb index a72d29be3..dc75dbd44 100644 --- a/gems/kettle-jem/spec/integration/config_metadata_template_spec.rb +++ b/gems/kettle-jem/spec/integration/config_metadata_template_spec.rb @@ -2068,8 +2068,8 @@ def register_kettle_jem_plugin(registrar) expect(direct_block).to include('prefix: "RUBYTHEMS"') expect(direct_block).to include('path_env: "RUBYTHEMS_DEV"') expect(direct_block).to include('root: ["src", "my", "rubythems"]') - expect(gemfile).to include("Use released TSLP with the Ruby ABI platform-gem fix") - expect(gemfile).to include( + expect(gemfile).not_to include("Use released TSLP with the Ruby ABI platform-gem fix") + expect(gemfile).not_to include( 'gem "tree_sitter_language_pack", "~> 1.13", ">= 1.13.3"' ) expect(gemfile).not_to include('branch: "fix/ruby-parser-api-methods"') From 283668cbe1b62e8f5b8227ddc501caeba3dade02 Mon Sep 17 00:00:00 2001 From: "Peter H. Boling" Date: Tue, 21 Jul 2026 23:25:47 -0600 Subject: [PATCH 187/188] =?UTF-8?q?=F0=9F=90=9B=20Use=20normal=20nomono=20?= =?UTF-8?q?local=20Gemfile=20loader?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gems/kettle-jem/CHANGELOG.md | 2 ++ gems/kettle-jem/lib/kettle/jem.rb | 14 +++----------- .../appraisals_and_gemfile_template_spec.rb | 4 ++-- 3 files changed, 7 insertions(+), 13 deletions(-) diff --git a/gems/kettle-jem/CHANGELOG.md b/gems/kettle-jem/CHANGELOG.md index 74c65220a..866902b36 100644 --- a/gems/kettle-jem/CHANGELOG.md +++ b/gems/kettle-jem/CHANGELOG.md @@ -237,6 +237,8 @@ Please file a bug if you notice a violation of semantic versioning. `tree_sitter_language_pack` declaration that belongs to the templating modular Gemfile. - Generated README source badges now use GitHub's canonical capitalization. +- Generated nomono local Gemfiles now use the normal `require "nomono/bundler"` + loader instead of a nomono-specific `require_relative` path. - Install orchestration now bundles each distinct Bundler environment it will execute under, and probes RuboCop Gradual tasks with the same environment used for the eventual command. diff --git a/gems/kettle-jem/lib/kettle/jem.rb b/gems/kettle-jem/lib/kettle/jem.rb index 9f89563d9..85465193c 100644 --- a/gems/kettle-jem/lib/kettle/jem.rb +++ b/gems/kettle-jem/lib/kettle/jem.rb @@ -12009,11 +12009,7 @@ def main_gemfile_direct_sibling_block(gems, package_name:, source_url:, project_ dev_env = "#{prefix}_DEV" root_literal = ruby_array_literal(["src", "my", workspace_slug].reject(&:empty?)) word_array = names.map { |name| " #{name}" }.join("\n") - nomono_loader = if package_name.to_s == "nomono" - %(require_relative "lib/nomono/bundler") - else - %(require "nomono/bundler") - end + nomono_loader = %(require "nomono/bundler") blocks << <<~RUBY.rstrip # Direct sibling dependencies (env-switched via #{dev_env}) @@ -12216,12 +12212,8 @@ def main_gemfile_nomono_bootstrap(package_name) RUBY end - def local_gemfile_nomono_bootstrap(package_name) - if package_name.to_s == "nomono" - %(require_relative "../../lib/nomono/bundler") - else - %(require "nomono/bundler") - end + def local_gemfile_nomono_bootstrap(_package_name) + %(require "nomono/bundler") end def project_homepage_uri(config, env, yard_host:, gemspec_homepage_uri: nil) diff --git a/gems/kettle-jem/spec/integration/appraisals_and_gemfile_template_spec.rb b/gems/kettle-jem/spec/integration/appraisals_and_gemfile_template_spec.rb index 313af2c55..fa6fcebb5 100644 --- a/gems/kettle-jem/spec/integration/appraisals_and_gemfile_template_spec.rb +++ b/gems/kettle-jem/spec/integration/appraisals_and_gemfile_template_spec.rb @@ -1217,8 +1217,8 @@ end content = report.fetch(:final_content) - expect(content).to include('require_relative "../../lib/nomono/bundler"') - expect(content).not_to include('require "nomono/bundler"') + expect(content).to include('require "nomono/bundler"') + expect(content).not_to include("require_relative") expect(content).not_to include("nomono_activation_requirements") expect(content).not_to include("nomono_lockfile") expect(content).not_to include("Bundler::LockfileParser") From dbe079646bc6049aad9b54ce445061b45d5df2ed Mon Sep 17 00:00:00 2001 From: "Peter H. Boling" Date: Wed, 22 Jul 2026 11:43:23 -0600 Subject: [PATCH 188/188] =?UTF-8?q?=F0=9F=90=9B=20Fix=20nomono=20loader=20?= =?UTF-8?q?retemplating?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 3 + Gemfile.lock | 5 +- .../.kettle-drift.lock | 208 -------- gems/ast-crispr-markdown-markly/Gemfile | 136 +----- gems/ast-crispr-markdown-markly/Gemfile.lock | 11 +- gems/ast-crispr-markdown-markly/LICENSE.md | 4 +- gems/ast-crispr-markdown-markly/README.md | 6 +- .../gemfiles/modular/coverage_local.gemfile | 20 - .../modular/documentation_local.gemfile | 20 - .../gemfiles/modular/style_local.gemfile | 20 - .../gemfiles/modular/templating_local.gemfile | 20 - gems/ast-crispr-ruby-prism/.kettle-drift.lock | 208 -------- gems/ast-crispr-ruby-prism/Gemfile | 136 +----- gems/ast-crispr-ruby-prism/Gemfile.lock | 11 +- gems/ast-crispr-ruby-prism/LICENSE.md | 4 +- gems/ast-crispr-ruby-prism/README.md | 6 +- .../gemfiles/modular/coverage_local.gemfile | 20 - .../modular/documentation_local.gemfile | 20 - .../gemfiles/modular/style_local.gemfile | 20 - .../gemfiles/modular/templating_local.gemfile | 20 - gems/ast-crispr/Gemfile | 132 ------ gems/ast-crispr/Gemfile.lock | 9 +- .../gemfiles/modular/coverage_local.gemfile | 22 +- .../modular/documentation_local.gemfile | 22 +- .../gemfiles/modular/style_local.gemfile | 22 +- .../gemfiles/modular/templating_local.gemfile | 22 +- gems/ast-merge-git/.kettle-drift.lock | 188 -------- gems/ast-merge-git/Gemfile | 96 +--- gems/ast-merge-git/Gemfile.lock | 11 +- gems/ast-merge-git/LICENSE.md | 4 +- gems/ast-merge-git/README.md | 6 +- .../gemfiles/modular/coverage_local.gemfile | 20 - .../modular/documentation_local.gemfile | 20 - .../gemfiles/modular/style_local.gemfile | 20 - .../gemfiles/modular/templating_local.gemfile | 20 - gems/ast-merge/Gemfile | 132 ------ gems/ast-merge/Gemfile.lock | 24 +- .../gemfiles/modular/coverage_local.gemfile | 22 +- .../modular/documentation_local.gemfile | 22 +- .../gemfiles/modular/style_local.gemfile | 22 +- .../gemfiles/modular/templating_local.gemfile | 22 +- gems/ast-template/.kettle-drift.lock | 188 -------- gems/ast-template/Gemfile | 96 +--- gems/ast-template/Gemfile.lock | 11 +- gems/ast-template/LICENSE.md | 4 +- gems/ast-template/README.md | 6 +- .../gemfiles/modular/coverage_local.gemfile | 20 - .../modular/documentation_local.gemfile | 20 - .../gemfiles/modular/style_local.gemfile | 20 - .../gemfiles/modular/templating_local.gemfile | 20 - gems/bash-merge/.kettle-drift.lock | 188 -------- gems/bash-merge/Gemfile | 96 +--- gems/bash-merge/Gemfile.lock | 11 +- gems/bash-merge/LICENSE.md | 4 +- gems/bash-merge/README.md | 6 +- .../gemfiles/modular/coverage_local.gemfile | 20 - .../modular/documentation_local.gemfile | 20 - .../gemfiles/modular/style_local.gemfile | 20 - .../gemfiles/modular/templating_local.gemfile | 20 - gems/binary-merge/.kettle-drift.lock | 188 -------- gems/binary-merge/Gemfile | 96 +--- gems/binary-merge/Gemfile.lock | 11 +- gems/binary-merge/LICENSE.md | 4 +- gems/binary-merge/README.md | 6 +- .../gemfiles/modular/coverage_local.gemfile | 20 - .../modular/documentation_local.gemfile | 20 - .../gemfiles/modular/style_local.gemfile | 20 - .../gemfiles/modular/templating_local.gemfile | 20 - gems/citrus-toml-merge/.kettle-drift.lock | 188 -------- gems/citrus-toml-merge/Gemfile | 96 +--- gems/citrus-toml-merge/Gemfile.lock | 11 +- gems/citrus-toml-merge/LICENSE.md | 4 +- gems/citrus-toml-merge/README.md | 6 +- .../gemfiles/modular/coverage_local.gemfile | 20 - .../modular/documentation_local.gemfile | 20 - .../gemfiles/modular/style_local.gemfile | 20 - .../gemfiles/modular/templating_local.gemfile | 20 - gems/commonmarker-merge/.kettle-drift.lock | 188 -------- gems/commonmarker-merge/Gemfile | 96 +--- gems/commonmarker-merge/Gemfile.lock | 11 +- gems/commonmarker-merge/LICENSE.md | 4 +- gems/commonmarker-merge/README.md | 6 +- .../gemfiles/modular/coverage_local.gemfile | 20 - .../modular/documentation_local.gemfile | 20 - .../gemfiles/modular/style_local.gemfile | 20 - .../gemfiles/modular/templating_local.gemfile | 20 - gems/dotenv-merge/.kettle-drift.lock | 188 -------- gems/dotenv-merge/Gemfile | 96 +--- gems/dotenv-merge/Gemfile.lock | 11 +- gems/dotenv-merge/LICENSE.md | 4 +- gems/dotenv-merge/README.md | 6 +- .../gemfiles/modular/coverage_local.gemfile | 20 - .../modular/documentation_local.gemfile | 20 - .../gemfiles/modular/style_local.gemfile | 20 - .../gemfiles/modular/templating_local.gemfile | 20 - gems/go-merge/.kettle-drift.lock | 188 -------- gems/go-merge/Gemfile | 96 +--- gems/go-merge/Gemfile.lock | 11 +- gems/go-merge/LICENSE.md | 4 +- gems/go-merge/README.md | 6 +- .../gemfiles/modular/coverage_local.gemfile | 20 - .../modular/documentation_local.gemfile | 20 - .../gemfiles/modular/style_local.gemfile | 20 - .../gemfiles/modular/templating_local.gemfile | 20 - gems/html-merge/Gemfile | 25 +- gems/html-merge/Gemfile.lock | 443 +----------------- gems/html-merge/LICENSE.md | 2 +- gems/html-merge/README.md | 8 +- .../gemfiles/modular/coverage_local.gemfile | 22 - .../modular/documentation_local.gemfile | 22 - .../gemfiles/modular/style_local.gemfile | 22 - .../gemfiles/modular/templating_local.gemfile | 22 - gems/json-merge/.kettle-drift.lock | 208 -------- gems/json-merge/Gemfile | 136 +----- gems/json-merge/Gemfile.lock | 11 +- gems/json-merge/LICENSE.md | 4 +- gems/json-merge/README.md | 6 +- .../gemfiles/modular/coverage_local.gemfile | 20 - .../modular/documentation_local.gemfile | 20 - .../gemfiles/modular/style_local.gemfile | 20 - .../gemfiles/modular/templating_local.gemfile | 20 - .../.github/workflows/dep-heads.yml | 55 +-- gems/kettle-jem/.kettle-drift.lock | 14 +- gems/kettle-jem/.rubocop_gradual.lock | 14 +- gems/kettle-jem/CHANGELOG.md | 3 + gems/kettle-jem/Gemfile | 3 - gems/kettle-jem/Gemfile.lock | 254 ++++------ gems/kettle-jem/LICENSE.md | 4 +- gems/kettle-jem/README.md | 6 +- gems/kettle-jem/Rakefile | 2 +- gems/kettle-jem/lib/kettle/jem.rb | 13 +- .../config_metadata_template_spec.rb | 97 ++++ gems/kramdown-merge/.kettle-drift.lock | 188 -------- gems/kramdown-merge/Gemfile | 96 +--- gems/kramdown-merge/Gemfile.lock | 11 +- gems/kramdown-merge/LICENSE.md | 4 +- gems/kramdown-merge/README.md | 6 +- .../gemfiles/modular/coverage_local.gemfile | 20 - .../modular/documentation_local.gemfile | 20 - .../gemfiles/modular/style_local.gemfile | 20 - .../gemfiles/modular/templating_local.gemfile | 20 - gems/markdown-merge/.kettle-drift.lock | 208 -------- gems/markdown-merge/Gemfile | 136 +----- gems/markdown-merge/Gemfile.lock | 11 +- gems/markdown-merge/LICENSE.md | 4 +- gems/markdown-merge/README.md | 6 +- .../gemfiles/modular/coverage_local.gemfile | 20 - .../modular/documentation_local.gemfile | 20 - .../gemfiles/modular/style_local.gemfile | 20 - .../gemfiles/modular/templating_local.gemfile | 20 - gems/markly-merge/.kettle-drift.lock | 208 -------- gems/markly-merge/Gemfile | 136 +----- gems/markly-merge/Gemfile.lock | 24 +- gems/markly-merge/LICENSE.md | 4 +- gems/markly-merge/README.md | 6 +- .../gemfiles/modular/coverage_local.gemfile | 20 - .../modular/documentation_local.gemfile | 20 - .../gemfiles/modular/style_local.gemfile | 20 - .../gemfiles/modular/templating_local.gemfile | 20 - gems/parslet-toml-merge/.kettle-drift.lock | 188 -------- gems/parslet-toml-merge/Gemfile | 96 +--- gems/parslet-toml-merge/Gemfile.lock | 11 +- gems/parslet-toml-merge/LICENSE.md | 4 +- gems/parslet-toml-merge/README.md | 6 +- .../gemfiles/modular/coverage_local.gemfile | 20 - .../modular/documentation_local.gemfile | 20 - .../gemfiles/modular/style_local.gemfile | 20 - .../gemfiles/modular/templating_local.gemfile | 20 - gems/plain-merge/.kettle-drift.lock | 188 -------- gems/plain-merge/Gemfile | 96 +--- gems/plain-merge/Gemfile.lock | 11 +- gems/plain-merge/LICENSE.md | 4 +- gems/plain-merge/README.md | 6 +- .../gemfiles/modular/coverage_local.gemfile | 20 - .../modular/documentation_local.gemfile | 20 - .../gemfiles/modular/style_local.gemfile | 20 - .../gemfiles/modular/templating_local.gemfile | 20 - gems/prism-merge/.kettle-drift.lock | 208 -------- gems/prism-merge/Gemfile | 136 +----- gems/prism-merge/Gemfile.lock | 11 +- gems/prism-merge/LICENSE.md | 4 +- gems/prism-merge/README.md | 6 +- .../gemfiles/modular/coverage_local.gemfile | 20 - .../modular/documentation_local.gemfile | 20 - .../gemfiles/modular/style_local.gemfile | 20 - .../gemfiles/modular/templating_local.gemfile | 20 - gems/psych-merge/.kettle-drift.lock | 188 -------- gems/psych-merge/Gemfile | 96 +--- gems/psych-merge/Gemfile.lock | 11 +- gems/psych-merge/LICENSE.md | 4 +- gems/psych-merge/README.md | 6 +- .../gemfiles/modular/coverage_local.gemfile | 20 - .../modular/documentation_local.gemfile | 20 - .../gemfiles/modular/style_local.gemfile | 20 - .../gemfiles/modular/templating_local.gemfile | 20 - gems/rbs-merge/.kettle-drift.lock | 188 -------- gems/rbs-merge/Gemfile | 96 +--- gems/rbs-merge/Gemfile.lock | 11 +- gems/rbs-merge/LICENSE.md | 4 +- gems/rbs-merge/README.md | 6 +- .../gemfiles/modular/coverage_local.gemfile | 20 - .../modular/documentation_local.gemfile | 20 - .../gemfiles/modular/style_local.gemfile | 20 - .../gemfiles/modular/templating_local.gemfile | 20 - gems/ruby-merge/.kettle-drift.lock | 208 -------- gems/ruby-merge/Gemfile | 136 +----- gems/ruby-merge/Gemfile.lock | 385 ++++++++++++++- gems/ruby-merge/LICENSE.md | 4 +- gems/ruby-merge/README.md | 6 +- .../gemfiles/modular/coverage_local.gemfile | 20 - .../modular/documentation_local.gemfile | 20 - .../gemfiles/modular/style_local.gemfile | 20 - .../gemfiles/modular/templating_local.gemfile | 20 - gems/rust-merge/.kettle-drift.lock | 188 -------- gems/rust-merge/Gemfile | 96 +--- gems/rust-merge/Gemfile.lock | 11 +- gems/rust-merge/LICENSE.md | 4 +- gems/rust-merge/README.md | 6 +- .../gemfiles/modular/coverage_local.gemfile | 20 - .../modular/documentation_local.gemfile | 20 - .../gemfiles/modular/style_local.gemfile | 20 - .../gemfiles/modular/templating_local.gemfile | 20 - gems/smorg-rb/.kettle-drift.lock | 188 -------- gems/smorg-rb/Gemfile | 96 +--- gems/smorg-rb/Gemfile.lock | 416 +++++----------- gems/smorg-rb/LICENSE.md | 4 +- gems/smorg-rb/README.md | 6 +- .../gemfiles/modular/coverage_local.gemfile | 20 - .../modular/documentation_local.gemfile | 20 - .../gemfiles/modular/style_local.gemfile | 20 - .../gemfiles/modular/templating_local.gemfile | 20 - gems/toml-merge/.kettle-drift.lock | 188 -------- gems/toml-merge/Gemfile | 96 +--- gems/toml-merge/Gemfile.lock | 11 +- gems/toml-merge/LICENSE.md | 4 +- gems/toml-merge/README.md | 6 +- .../gemfiles/modular/coverage_local.gemfile | 20 - .../modular/documentation_local.gemfile | 20 - .../gemfiles/modular/style_local.gemfile | 20 - .../gemfiles/modular/templating_local.gemfile | 20 - gems/tree_haver/Gemfile.lock | 9 +- .../gemfiles/modular/coverage_local.gemfile | 22 +- .../modular/documentation_local.gemfile | 22 +- .../gemfiles/modular/style_local.gemfile | 22 +- .../gemfiles/modular/templating_local.gemfile | 22 +- gems/typescript-merge/.kettle-drift.lock | 188 -------- gems/typescript-merge/Gemfile | 96 +--- gems/typescript-merge/Gemfile.lock | 11 +- gems/typescript-merge/LICENSE.md | 4 +- gems/typescript-merge/README.md | 6 +- .../gemfiles/modular/coverage_local.gemfile | 20 - .../modular/documentation_local.gemfile | 20 - .../gemfiles/modular/style_local.gemfile | 20 - .../gemfiles/modular/templating_local.gemfile | 20 - gems/yaml-merge/.kettle-drift.lock | 188 -------- gems/yaml-merge/Gemfile | 96 +--- gems/yaml-merge/Gemfile.lock | 11 +- gems/yaml-merge/LICENSE.md | 4 +- gems/yaml-merge/README.md | 6 +- .../gemfiles/modular/coverage_local.gemfile | 20 - .../modular/documentation_local.gemfile | 20 - .../gemfiles/modular/style_local.gemfile | 20 - .../gemfiles/modular/templating_local.gemfile | 20 - gems/zip-merge/.kettle-drift.lock | 188 -------- gems/zip-merge/Gemfile | 96 +--- gems/zip-merge/Gemfile.lock | 11 +- gems/zip-merge/LICENSE.md | 4 +- gems/zip-merge/README.md | 6 +- .../gemfiles/modular/coverage_local.gemfile | 20 - .../modular/documentation_local.gemfile | 20 - .../gemfiles/modular/style_local.gemfile | 20 - .../gemfiles/modular/templating_local.gemfile | 20 - 272 files changed, 1085 insertions(+), 11746 deletions(-) delete mode 100644 gems/ast-crispr-markdown-markly/.kettle-drift.lock delete mode 100644 gems/ast-crispr-ruby-prism/.kettle-drift.lock delete mode 100644 gems/ast-merge-git/.kettle-drift.lock delete mode 100644 gems/ast-template/.kettle-drift.lock delete mode 100644 gems/bash-merge/.kettle-drift.lock delete mode 100644 gems/binary-merge/.kettle-drift.lock delete mode 100644 gems/citrus-toml-merge/.kettle-drift.lock delete mode 100644 gems/commonmarker-merge/.kettle-drift.lock delete mode 100644 gems/dotenv-merge/.kettle-drift.lock delete mode 100644 gems/go-merge/.kettle-drift.lock delete mode 100644 gems/json-merge/.kettle-drift.lock delete mode 100644 gems/kramdown-merge/.kettle-drift.lock delete mode 100644 gems/markdown-merge/.kettle-drift.lock delete mode 100644 gems/markly-merge/.kettle-drift.lock delete mode 100644 gems/parslet-toml-merge/.kettle-drift.lock delete mode 100644 gems/plain-merge/.kettle-drift.lock delete mode 100644 gems/prism-merge/.kettle-drift.lock delete mode 100644 gems/psych-merge/.kettle-drift.lock delete mode 100644 gems/rbs-merge/.kettle-drift.lock delete mode 100644 gems/ruby-merge/.kettle-drift.lock delete mode 100644 gems/rust-merge/.kettle-drift.lock delete mode 100644 gems/smorg-rb/.kettle-drift.lock delete mode 100644 gems/toml-merge/.kettle-drift.lock delete mode 100644 gems/typescript-merge/.kettle-drift.lock delete mode 100644 gems/yaml-merge/.kettle-drift.lock delete mode 100644 gems/zip-merge/.kettle-drift.lock diff --git a/CHANGELOG.md b/CHANGELOG.md index 78e8880f9..551dc1fbd 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -47,6 +47,9 @@ Please file a bug if you notice a violation of semantic versioning. instead of spawning one Ractor per file. - `kettle-jem` README processing now reuses structural owner scans and batches several Markdown deletions to reduce repeated parser passes. +- `kettle-jem` main Gemfile templating now removes repeated direct sibling + execution blocks left behind by older `nomono` bootstrap output while applying + the simplified `require "nomono/bundler"` loader. - `smorg-rb` diff-driver output now appends a unified review hunk with exact removed and added source text after the semantic structured-diff summary. - Retemplated generated project metadata, support documentation, CI workflows, diff --git a/Gemfile.lock b/Gemfile.lock index cdac97f9b..a2d4cfaff 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -472,6 +472,7 @@ CHECKSUMS bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c binary-merge (7.1.0) + bundler (4.0.17) sha256=214e21431b5665dd2f99df8a5511c6b151d7a72e8015c8b38f8b775b61cbb6c1 bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 citrus-toml-merge (7.1.0) @@ -492,7 +493,7 @@ CHECKSUMS go-merge (7.1.0) io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc json-merge (7.1.0) - kettle-dev (2.3.9) + kettle-dev (2.3.9) sha256=03b2f72c6dda4d2c4401ee3c0c96853116c922766e7b5b04224434a49b571bfc kettle-drift (1.0.6) sha256=46eda08fa4411d1f3c6682a95eef1c9df4e94611b3949f49d4c7b43c0ed356a3 kettle-family (1.0.4) sha256=bd6d111e997ae07f531c553f86dfd3c8f31eb37d4b3eefaef65655f7d6bc6c51 kettle-jem (7.1.0) @@ -558,4 +559,4 @@ CHECKSUMS zip-merge (7.1.0) BUNDLED WITH - 4.0.16 + 4.0.17 diff --git a/gems/ast-crispr-markdown-markly/.kettle-drift.lock b/gems/ast-crispr-markdown-markly/.kettle-drift.lock deleted file mode 100644 index bd0f9d183..000000000 --- a/gems/ast-crispr-markdown-markly/.kettle-drift.lock +++ /dev/null @@ -1,208 +0,0 @@ -{ - "(direct_sibling_local ||\nENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?)": [ - { - "file": "Gemfile", - "lines": [ - 80, - 120, - 160 - ] - } - ], - ".find { |spec| spec.name == 'nomono' }\nnomono_locked = nomono_locked_spec &&": [ - { - "file": "Gemfile", - "lines": [ - 91, - 131, - 171 - ] - } - ], - "ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?)\ndirect_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV')": [ - { - "file": "Gemfile", - "lines": [ - 81, - 121, - 161 - ] - } - ], - "Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version)\nnomono_activation_requirements = [\"= #{nomono_locked_spec.version}\"] if nomono_locked": [ - { - "file": "Gemfile", - "lines": [ - 93, - 133, - 173 - ] - } - ], - "Kernel.send(:gem, 'nomono', *nomono_activation_requirements)\nrequire 'nomono/bundler'": [ - { - "file": "Gemfile", - "lines": [ - 96, - 136, - 176 - ] - } - ], - "direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV')\ndirect_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil)": [ - { - "file": "Gemfile", - "lines": [ - 82, - 122, - 162 - ] - } - ], - "eval_nomono_gems(\ngems: direct_sibling_gems,": [ - { - "file": "Gemfile", - "lines": [ - 60, - 100, - 140, - 180 - ] - } - ], - "gems: direct_sibling_gems,\nprefix: 'STRUCTUREDMERGE',": [ - { - "file": "Gemfile", - "lines": [ - 101, - 141, - 181 - ] - } - ], - "if File.file?(nomono_lockfile)\nnomono_locked_spec = Bundler::LockfileParser": [ - { - "file": "Gemfile", - "lines": [ - 43, - 87, - 127, - 167 - ] - } - ], - "if direct_sibling_dev_was_set\nENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original": [ - { - "file": "Gemfile", - "lines": [ - 110, - 150, - 190 - ] - } - ], - "if direct_sibling_gems.any? &&\n(direct_sibling_local ||": [ - { - "file": "Gemfile", - "lines": [ - 35, - 79, - 119, - 159 - ] - } - ], - "if direct_sibling_templating && !direct_sibling_local\nif direct_sibling_dev_was_set": [ - { - "file": "Gemfile", - "lines": [ - 69, - 109, - 149, - 189 - ] - } - ], - "nomono_activation_requirements = nomono_requirements\nnomono_lockfile = File.expand_path('Gemfile.lock', __dir__)": [ - { - "file": "Gemfile", - "lines": [ - 85, - 125, - 165 - ] - } - ], - "nomono_locked = nomono_locked_spec &&\nGem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version)": [ - { - "file": "Gemfile", - "lines": [ - 48, - 92, - 132, - 172 - ] - } - ], - "nomono_locked_spec = Bundler::LockfileParser\n.new(Bundler.read_file(nomono_lockfile))": [ - { - "file": "Gemfile", - "lines": [ - 44, - 88, - 128, - 168 - ] - } - ], - "nomono_lockfile = File.expand_path('Gemfile.lock', __dir__)\nif File.file?(nomono_lockfile)": [ - { - "file": "Gemfile", - "lines": [ - 86, - 126, - 166 - ] - } - ], - "path_env: 'STRUCTUREDMERGE_DEV',\nroot: %w[src my structuredmerge]": [ - { - "file": "Gemfile", - "lines": [ - 103, - 143, - 183 - ] - } - ], - "prefix: 'STRUCTUREDMERGE',\npath_env: 'STRUCTUREDMERGE_DEV',": [ - { - "file": "Gemfile", - "lines": [ - 102, - 142, - 182 - ] - } - ], - "require 'nomono/bundler'\nENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local": [ - { - "file": "Gemfile", - "lines": [ - 97, - 137, - 177 - ] - } - ], - "rescue LoadError\nwarn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.'": [ - { - "file": "Gemfile", - "lines": [ - 106, - 146, - 186 - ] - } - ] -} diff --git a/gems/ast-crispr-markdown-markly/Gemfile b/gems/ast-crispr-markdown-markly/Gemfile index b5b1470b9..dfcb2477c 100644 --- a/gems/ast-crispr-markdown-markly/Gemfile +++ b/gems/ast-crispr-markdown-markly/Gemfile @@ -37,140 +37,8 @@ if direct_sibling_gems.any? && ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) + require 'nomono/bundler' begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local eval_nomono_gems( @@ -179,8 +47,6 @@ if direct_sibling_gems.any? && path_env: 'STRUCTUREDMERGE_DEV', root: %w[src my structuredmerge] ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' ensure if direct_sibling_templating && !direct_sibling_local if direct_sibling_dev_was_set diff --git a/gems/ast-crispr-markdown-markly/Gemfile.lock b/gems/ast-crispr-markdown-markly/Gemfile.lock index 21158afcc..b8f03a0d7 100644 --- a/gems/ast-crispr-markdown-markly/Gemfile.lock +++ b/gems/ast-crispr-markdown-markly/Gemfile.lock @@ -141,7 +141,7 @@ GEM mutex_m (0.3.0) nokogiri (1.19.4-x86_64-linux-gnu) racc (~> 1.4) - nomono (1.0.9) + nomono (1.1.0) openssl (4.0.2) ostruct (0.6.3) parallel (1.28.0) @@ -452,6 +452,7 @@ CHECKSUMS backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd + bundler (4.0.17) sha256=214e21431b5665dd2f99df8a5511c6b151d7a72e8015c8b38f8b775b61cbb6c1 bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 @@ -478,9 +479,9 @@ CHECKSUMS io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 - kettle-dev (2.3.9) + kettle-dev (2.3.9) sha256=03b2f72c6dda4d2c4401ee3c0c96853116c922766e7b5b04224434a49b571bfc kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f - kettle-soup-cover (3.0.4) + kettle-soup-cover (3.0.4) sha256=36d4df472362d2020d16411d7ce26ba2fe2a41fb8be64577ff9b5280acf99d86 kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa @@ -493,7 +494,7 @@ CHECKSUMS markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-x86_64-linux-gnu) sha256=379fae440b28915e3f19d752ce2dcf8465ed2b2fbefd2a7ca0dd497bc981a06a - nomono (1.0.9) + nomono (1.1.0) sha256=463dd4c79da02a855739a1b5483190d527b7868688be905e84abdb3449b32c88 openssl (4.0.2) sha256=1037ad2868ae58df9ad917891c0c0f9815a1172f6846d4bcdd508e4c2ee747c2 ostruct (0.6.3) sha256=95a2ed4a4bd1d190784e666b47b2d3f078e4a9efda2fccf18f84ddc6538ed912 parallel (1.28.0) sha256=33e6de1484baf2524792d178b0913fc8eb94c628d6cfe45599ad4458c638c970 @@ -586,4 +587,4 @@ CHECKSUMS zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH - 4.0.16 + 4.0.17 diff --git a/gems/ast-crispr-markdown-markly/LICENSE.md b/gems/ast-crispr-markdown-markly/LICENSE.md index 6ad318705..65a770d1f 100644 --- a/gems/ast-crispr-markdown-markly/LICENSE.md +++ b/gems/ast-crispr-markdown-markly/LICENSE.md @@ -3,8 +3,8 @@ This project is made available under the following licenses. Choose the option that best fits your use case: -- [AGPL-3.0-only](AGPL-3.0-only.md) -- [PolyForm-Small-Business-1.0.0](PolyForm-Small-Business-1.0.0.md) +- [AGPL-3.0-only](https://github.com/structuredmerge/structuredmerge-ruby/blob/main/AGPL-3.0-only.md) +- [PolyForm-Small-Business-1.0.0](https://github.com/structuredmerge/structuredmerge-ruby/blob/main/PolyForm-Small-Business-1.0.0.md) If none of the above licenses fit your use case, please [contact us](mailto:floss@galtzo.com) to discuss a custom commercial license. diff --git a/gems/ast-crispr-markdown-markly/README.md b/gems/ast-crispr-markdown-markly/README.md index 6714b2fe9..4da7d7abc 100644 --- a/gems/ast-crispr-markdown-markly/README.md +++ b/gems/ast-crispr-markdown-markly/README.md @@ -37,7 +37,7 @@ I've summarized my thoughts in [this blog post](https://dev.to/galtzo/hostile-ta |-------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | Works with MRI Ruby 4 | [![Ruby current Compat][💎ruby-c-i]][🚎11-c-wf]| | Support & Community | [![Join Me on Daily.dev's RubyFriends][✉️ruby-friends-img]][✉️ruby-friends] [![Get help from RubyForum][✉️ruby-forum-img]][✉️ruby-forum] [![Live Chat on Discord][✉️discord-invite-img-ftb]][✉️discord-invite] [![Get help from me on Upwork][👨🏼‍🏫expsup-upwork-img]][👨🏼‍🏫expsup-upwork] [![Get help from me on Codementor][👨🏼‍🏫expsup-codementor-img]][👨🏼‍🏫expsup-codementor] | -| Source | [![Source on GitLab.com][📜src-gl-img]][📜src-gl] [![Source on CodeBerg.org][📜src-cb-img]][📜src-cb] [![Source on Github.com][📜src-gh-img]][📜src-gh] [![The best SHA: dQw4w9WgXcQ!][🧮kloc-img]][🧮kloc] | +| Source | [![Source on GitLab.com][📜src-gl-img]][📜src-gl] [![Source on CodeBerg.org][📜src-cb-img]][📜src-cb] [![Source on GitHub.com][📜src-gh-img]][📜src-gh] [![The best SHA: dQw4w9WgXcQ!][🧮kloc-img]][🧮kloc] | | Documentation | [![Current release on RubyDoc.info][📜docs-cr-rd-img]][🚎yard-current] [![YARD on Galtzo.com][📜docs-head-rd-img]][🚎yard-head] [![Maintainer Blog][🚂maint-blog-img]][🚂maint-blog] [![GitLab Wiki][📜gl-wiki-img]][📜gl-wiki] [![GitHub Wiki][📜gh-wiki-img]][📜gh-wiki] | | Compliance | [![License: AGPL-3.0-only OR PolyForm-Small-Business-1.0.0][📄license-img]][📄license] [![Apache license compatibility: Category X][📄license-compat-img]][📄license-compat] [![📄ilo-declaration-img]][📄ilo-declaration] [![Security Policy][🔐security-img]][🔐security] [![Contributor Covenant 2.1][🪇conduct-img]][🪇conduct] [![SemVer 2.0.0][📌semver-img]][📌semver] | | Style | [![Enforced Code Style Linter][💎rlts-img]][💎rlts] [![Keep-A-Changelog 1.0.0][📗keep-changelog-img]][📗keep-changelog] [![Gitmoji Commits][📌gitmoji-img]][📌gitmoji] [![Compatibility appraised by: appraisal2][💎appraisal2-img]][💎appraisal2] | @@ -176,7 +176,7 @@ See [CHANGELOG.md][📌changelog] for a list of releases. ## 📄 License -The gem is available under the following licenses: [AGPL-3.0-only](AGPL-3.0-only.md), [PolyForm-Small-Business-1.0.0](PolyForm-Small-Business-1.0.0.md). +The gem is available under the following licenses: [AGPL-3.0-only](https://github.com/structuredmerge/structuredmerge-ruby/blob/main/AGPL-3.0-only.md), [PolyForm-Small-Business-1.0.0](https://github.com/structuredmerge/structuredmerge-ruby/blob/main/PolyForm-Small-Business-1.0.0.md). See [LICENSE.md][📄license] for details. If none of the available licenses suit your use case, please [contact us](mailto:floss@galtzo.com) to discuss a custom commercial license. @@ -248,7 +248,7 @@ If none of the available licenses suit your use case, please [contact us](mailto [📜src-gl]: https://gitlab.com/structuredmerge/structuredmerge-ruby/-/tree/main/gems/ast-crispr-markdown-markly [📜src-cb-img]: https://img.shields.io/badge/CodeBerg-4893CC?style=for-the-badge&logo=CodeBerg&logoColor=blue [📜src-cb]: https://codeberg.org/structuredmerge/structuredmerge-ruby/src/branch/main/gems/ast-crispr-markdown-markly -[📜src-gh-img]: https://img.shields.io/badge/GitHub-238636?style=for-the-badge&logo=Github&logoColor=green +[📜src-gh-img]: https://img.shields.io/badge/GitHub-238636?style=for-the-badge&logo=GitHub&logoColor=green [📜src-gh]: https://github.com/structuredmerge/structuredmerge-ruby/tree/main/gems/ast-crispr-markdown-markly [📜docs-cr-rd-img]: https://img.shields.io/badge/RubyDoc-Current_Release-943CD2?style=for-the-badge&logo=readthedocs&logoColor=white [📜docs-head-rd-img]: https://img.shields.io/badge/YARD_on_Galtzo.com-HEAD-943CD2?style=for-the-badge&logo=readthedocs&logoColor=white diff --git a/gems/ast-crispr-markdown-markly/gemfiles/modular/coverage_local.gemfile b/gems/ast-crispr-markdown-markly/gemfiles/modular/coverage_local.gemfile index 30b548eee..f7d539edd 100644 --- a/gems/ast-crispr-markdown-markly/gemfiles/modular/coverage_local.gemfile +++ b/gems/ast-crispr-markdown-markly/gemfiles/modular/coverage_local.gemfile @@ -3,26 +3,6 @@ # Local path overrides for development. # Loaded by the associated non-local gemfile when KETTLE_DEV_DEV != "false". -# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. -# Bundler records that dependency during Gemfile evaluation, but it does not -# activate that exact version before the immediate `require "nomono/bundler"`. -# If multiple compatible nomono versions are installed, RubyGems may activate -# the newest installed version while Gemfile.lock pins an older compatible one; -# Bundler then aborts with "already activated nomono X, but your Gemfile -# requires nomono Y". Prefer the locked compatible version when present, then -# activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] -nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) -if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked -end -Kernel.send(:gem, 'nomono', *nomono_activation_requirements) require 'nomono/bundler' local_gems = %w[kettle-dev kettle-test kettle-soup-cover kettle-drift] diff --git a/gems/ast-crispr-markdown-markly/gemfiles/modular/documentation_local.gemfile b/gems/ast-crispr-markdown-markly/gemfiles/modular/documentation_local.gemfile index faff9cff7..18152b19b 100644 --- a/gems/ast-crispr-markdown-markly/gemfiles/modular/documentation_local.gemfile +++ b/gems/ast-crispr-markdown-markly/gemfiles/modular/documentation_local.gemfile @@ -3,26 +3,6 @@ # Local path overrides for development. # Loaded by the associated non-local gemfile when GALTZO_FLOSS_DEV != "false". -# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. -# Bundler records that dependency during Gemfile evaluation, but it does not -# activate that exact version before the immediate `require "nomono/bundler"`. -# If multiple compatible nomono versions are installed, RubyGems may activate -# the newest installed version while Gemfile.lock pins an older compatible one; -# Bundler then aborts with "already activated nomono X, but your Gemfile -# requires nomono Y". Prefer the locked compatible version when present, then -# activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] -nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) -if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked -end -Kernel.send(:gem, 'nomono', *nomono_activation_requirements) require 'nomono/bundler' local_gems = %w[yard-fence yard-timekeeper yard-yaml] diff --git a/gems/ast-crispr-markdown-markly/gemfiles/modular/style_local.gemfile b/gems/ast-crispr-markdown-markly/gemfiles/modular/style_local.gemfile index 96bd46552..e46481c22 100644 --- a/gems/ast-crispr-markdown-markly/gemfiles/modular/style_local.gemfile +++ b/gems/ast-crispr-markdown-markly/gemfiles/modular/style_local.gemfile @@ -6,26 +6,6 @@ # Local path overrides for development. # Loaded by the associated non-local gemfile when RUBOCOP_LTS_LOCAL != "false". -# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. -# Bundler records that dependency during Gemfile evaluation, but it does not -# activate that exact version before the immediate `require "nomono/bundler"`. -# If multiple compatible nomono versions are installed, RubyGems may activate -# the newest installed version while Gemfile.lock pins an older compatible one; -# Bundler then aborts with "already activated nomono X, but your Gemfile -# requires nomono Y". Prefer the locked compatible version when present, then -# activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] -nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) -if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked -end -Kernel.send(:gem, 'nomono', *nomono_activation_requirements) require 'nomono/bundler' local_gems = %w[rubocop-lts rubocop-lts-rspec rubocop-ruby3_2 standard-rubocop-lts] diff --git a/gems/ast-crispr-markdown-markly/gemfiles/modular/templating_local.gemfile b/gems/ast-crispr-markdown-markly/gemfiles/modular/templating_local.gemfile index 558511bf4..e9e55ce10 100644 --- a/gems/ast-crispr-markdown-markly/gemfiles/modular/templating_local.gemfile +++ b/gems/ast-crispr-markdown-markly/gemfiles/modular/templating_local.gemfile @@ -4,26 +4,6 @@ # Loaded by the associated non-local gemfile when STRUCTUREDMERGE_DEV or KETTLE_DEV_DEV # is not "false". -# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. -# Bundler records that dependency during Gemfile evaluation, but it does not -# activate that exact version before the immediate `require "nomono/bundler"`. -# If multiple compatible nomono versions are installed, RubyGems may activate -# the newest installed version while Gemfile.lock pins an older compatible one; -# Bundler then aborts with "already activated nomono X, but your Gemfile -# requires nomono Y". Prefer the locked compatible version when present, then -# activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] -nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) -if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked -end -Kernel.send(:gem, 'nomono', *nomono_activation_requirements) require 'nomono/bundler' structuredmerge_local_gems = %w[ diff --git a/gems/ast-crispr-ruby-prism/.kettle-drift.lock b/gems/ast-crispr-ruby-prism/.kettle-drift.lock deleted file mode 100644 index bd0f9d183..000000000 --- a/gems/ast-crispr-ruby-prism/.kettle-drift.lock +++ /dev/null @@ -1,208 +0,0 @@ -{ - "(direct_sibling_local ||\nENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?)": [ - { - "file": "Gemfile", - "lines": [ - 80, - 120, - 160 - ] - } - ], - ".find { |spec| spec.name == 'nomono' }\nnomono_locked = nomono_locked_spec &&": [ - { - "file": "Gemfile", - "lines": [ - 91, - 131, - 171 - ] - } - ], - "ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?)\ndirect_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV')": [ - { - "file": "Gemfile", - "lines": [ - 81, - 121, - 161 - ] - } - ], - "Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version)\nnomono_activation_requirements = [\"= #{nomono_locked_spec.version}\"] if nomono_locked": [ - { - "file": "Gemfile", - "lines": [ - 93, - 133, - 173 - ] - } - ], - "Kernel.send(:gem, 'nomono', *nomono_activation_requirements)\nrequire 'nomono/bundler'": [ - { - "file": "Gemfile", - "lines": [ - 96, - 136, - 176 - ] - } - ], - "direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV')\ndirect_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil)": [ - { - "file": "Gemfile", - "lines": [ - 82, - 122, - 162 - ] - } - ], - "eval_nomono_gems(\ngems: direct_sibling_gems,": [ - { - "file": "Gemfile", - "lines": [ - 60, - 100, - 140, - 180 - ] - } - ], - "gems: direct_sibling_gems,\nprefix: 'STRUCTUREDMERGE',": [ - { - "file": "Gemfile", - "lines": [ - 101, - 141, - 181 - ] - } - ], - "if File.file?(nomono_lockfile)\nnomono_locked_spec = Bundler::LockfileParser": [ - { - "file": "Gemfile", - "lines": [ - 43, - 87, - 127, - 167 - ] - } - ], - "if direct_sibling_dev_was_set\nENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original": [ - { - "file": "Gemfile", - "lines": [ - 110, - 150, - 190 - ] - } - ], - "if direct_sibling_gems.any? &&\n(direct_sibling_local ||": [ - { - "file": "Gemfile", - "lines": [ - 35, - 79, - 119, - 159 - ] - } - ], - "if direct_sibling_templating && !direct_sibling_local\nif direct_sibling_dev_was_set": [ - { - "file": "Gemfile", - "lines": [ - 69, - 109, - 149, - 189 - ] - } - ], - "nomono_activation_requirements = nomono_requirements\nnomono_lockfile = File.expand_path('Gemfile.lock', __dir__)": [ - { - "file": "Gemfile", - "lines": [ - 85, - 125, - 165 - ] - } - ], - "nomono_locked = nomono_locked_spec &&\nGem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version)": [ - { - "file": "Gemfile", - "lines": [ - 48, - 92, - 132, - 172 - ] - } - ], - "nomono_locked_spec = Bundler::LockfileParser\n.new(Bundler.read_file(nomono_lockfile))": [ - { - "file": "Gemfile", - "lines": [ - 44, - 88, - 128, - 168 - ] - } - ], - "nomono_lockfile = File.expand_path('Gemfile.lock', __dir__)\nif File.file?(nomono_lockfile)": [ - { - "file": "Gemfile", - "lines": [ - 86, - 126, - 166 - ] - } - ], - "path_env: 'STRUCTUREDMERGE_DEV',\nroot: %w[src my structuredmerge]": [ - { - "file": "Gemfile", - "lines": [ - 103, - 143, - 183 - ] - } - ], - "prefix: 'STRUCTUREDMERGE',\npath_env: 'STRUCTUREDMERGE_DEV',": [ - { - "file": "Gemfile", - "lines": [ - 102, - 142, - 182 - ] - } - ], - "require 'nomono/bundler'\nENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local": [ - { - "file": "Gemfile", - "lines": [ - 97, - 137, - 177 - ] - } - ], - "rescue LoadError\nwarn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.'": [ - { - "file": "Gemfile", - "lines": [ - 106, - 146, - 186 - ] - } - ] -} diff --git a/gems/ast-crispr-ruby-prism/Gemfile b/gems/ast-crispr-ruby-prism/Gemfile index b0deaa503..66e4af466 100644 --- a/gems/ast-crispr-ruby-prism/Gemfile +++ b/gems/ast-crispr-ruby-prism/Gemfile @@ -37,140 +37,8 @@ if direct_sibling_gems.any? && ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) + require 'nomono/bundler' begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local eval_nomono_gems( @@ -179,8 +47,6 @@ if direct_sibling_gems.any? && path_env: 'STRUCTUREDMERGE_DEV', root: %w[src my structuredmerge] ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' ensure if direct_sibling_templating && !direct_sibling_local if direct_sibling_dev_was_set diff --git a/gems/ast-crispr-ruby-prism/Gemfile.lock b/gems/ast-crispr-ruby-prism/Gemfile.lock index 2d4579978..6a9a61958 100644 --- a/gems/ast-crispr-ruby-prism/Gemfile.lock +++ b/gems/ast-crispr-ruby-prism/Gemfile.lock @@ -132,7 +132,7 @@ GEM mutex_m (0.3.0) nokogiri (1.19.4-x86_64-linux-gnu) racc (~> 1.4) - nomono (1.0.9) + nomono (1.1.0) openssl (4.0.2) ostruct (0.6.3) parallel (1.28.0) @@ -450,6 +450,7 @@ CHECKSUMS backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd + bundler (4.0.17) sha256=214e21431b5665dd2f99df8a5511c6b151d7a72e8015c8b38f8b775b61cbb6c1 bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 @@ -476,9 +477,9 @@ CHECKSUMS io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 - kettle-dev (2.3.9) + kettle-dev (2.3.9) sha256=03b2f72c6dda4d2c4401ee3c0c96853116c922766e7b5b04224434a49b571bfc kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f - kettle-soup-cover (3.0.4) + kettle-soup-cover (3.0.4) sha256=36d4df472362d2020d16411d7ce26ba2fe2a41fb8be64577ff9b5280acf99d86 kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa @@ -488,7 +489,7 @@ CHECKSUMS logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-x86_64-linux-gnu) sha256=379fae440b28915e3f19d752ce2dcf8465ed2b2fbefd2a7ca0dd497bc981a06a - nomono (1.0.9) + nomono (1.1.0) sha256=463dd4c79da02a855739a1b5483190d527b7868688be905e84abdb3449b32c88 openssl (4.0.2) sha256=1037ad2868ae58df9ad917891c0c0f9815a1172f6846d4bcdd508e4c2ee747c2 ostruct (0.6.3) sha256=95a2ed4a4bd1d190784e666b47b2d3f078e4a9efda2fccf18f84ddc6538ed912 parallel (1.28.0) sha256=33e6de1484baf2524792d178b0913fc8eb94c628d6cfe45599ad4458c638c970 @@ -583,4 +584,4 @@ CHECKSUMS zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH - 4.0.16 + 4.0.17 diff --git a/gems/ast-crispr-ruby-prism/LICENSE.md b/gems/ast-crispr-ruby-prism/LICENSE.md index 6ad318705..65a770d1f 100644 --- a/gems/ast-crispr-ruby-prism/LICENSE.md +++ b/gems/ast-crispr-ruby-prism/LICENSE.md @@ -3,8 +3,8 @@ This project is made available under the following licenses. Choose the option that best fits your use case: -- [AGPL-3.0-only](AGPL-3.0-only.md) -- [PolyForm-Small-Business-1.0.0](PolyForm-Small-Business-1.0.0.md) +- [AGPL-3.0-only](https://github.com/structuredmerge/structuredmerge-ruby/blob/main/AGPL-3.0-only.md) +- [PolyForm-Small-Business-1.0.0](https://github.com/structuredmerge/structuredmerge-ruby/blob/main/PolyForm-Small-Business-1.0.0.md) If none of the above licenses fit your use case, please [contact us](mailto:floss@galtzo.com) to discuss a custom commercial license. diff --git a/gems/ast-crispr-ruby-prism/README.md b/gems/ast-crispr-ruby-prism/README.md index bd9a98837..2c6281a5d 100644 --- a/gems/ast-crispr-ruby-prism/README.md +++ b/gems/ast-crispr-ruby-prism/README.md @@ -36,7 +36,7 @@ I've summarized my thoughts in [this blog post](https://dev.to/galtzo/hostile-ta |-------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | Works with MRI Ruby 4 | [![Ruby current Compat][💎ruby-c-i]][🚎11-c-wf]| | Support & Community | [![Join Me on Daily.dev's RubyFriends][✉️ruby-friends-img]][✉️ruby-friends] [![Get help from RubyForum][✉️ruby-forum-img]][✉️ruby-forum] [![Live Chat on Discord][✉️discord-invite-img-ftb]][✉️discord-invite] [![Get help from me on Upwork][👨🏼‍🏫expsup-upwork-img]][👨🏼‍🏫expsup-upwork] [![Get help from me on Codementor][👨🏼‍🏫expsup-codementor-img]][👨🏼‍🏫expsup-codementor] | -| Source | [![Source on GitLab.com][📜src-gl-img]][📜src-gl] [![Source on CodeBerg.org][📜src-cb-img]][📜src-cb] [![Source on Github.com][📜src-gh-img]][📜src-gh] [![The best SHA: dQw4w9WgXcQ!][🧮kloc-img]][🧮kloc] | +| Source | [![Source on GitLab.com][📜src-gl-img]][📜src-gl] [![Source on CodeBerg.org][📜src-cb-img]][📜src-cb] [![Source on GitHub.com][📜src-gh-img]][📜src-gh] [![The best SHA: dQw4w9WgXcQ!][🧮kloc-img]][🧮kloc] | | Documentation | [![Current release on RubyDoc.info][📜docs-cr-rd-img]][🚎yard-current] [![YARD on Galtzo.com][📜docs-head-rd-img]][🚎yard-head] [![Maintainer Blog][🚂maint-blog-img]][🚂maint-blog] [![GitLab Wiki][📜gl-wiki-img]][📜gl-wiki] [![GitHub Wiki][📜gh-wiki-img]][📜gh-wiki] | | Compliance | [![License: AGPL-3.0-only OR PolyForm-Small-Business-1.0.0][📄license-img]][📄license] [![Apache license compatibility: Category X][📄license-compat-img]][📄license-compat] [![📄ilo-declaration-img]][📄ilo-declaration] [![Security Policy][🔐security-img]][🔐security] [![Contributor Covenant 2.1][🪇conduct-img]][🪇conduct] [![SemVer 2.0.0][📌semver-img]][📌semver] | | Style | [![Enforced Code Style Linter][💎rlts-img]][💎rlts] [![Keep-A-Changelog 1.0.0][📗keep-changelog-img]][📗keep-changelog] [![Gitmoji Commits][📌gitmoji-img]][📌gitmoji] [![Compatibility appraised by: appraisal2][💎appraisal2-img]][💎appraisal2] | @@ -165,7 +165,7 @@ See [CHANGELOG.md][📌changelog] for a list of releases. ## 📄 License -The gem is available under the following licenses: [AGPL-3.0-only](AGPL-3.0-only.md), [PolyForm-Small-Business-1.0.0](PolyForm-Small-Business-1.0.0.md). +The gem is available under the following licenses: [AGPL-3.0-only](https://github.com/structuredmerge/structuredmerge-ruby/blob/main/AGPL-3.0-only.md), [PolyForm-Small-Business-1.0.0](https://github.com/structuredmerge/structuredmerge-ruby/blob/main/PolyForm-Small-Business-1.0.0.md). See [LICENSE.md][📄license] for details. If none of the available licenses suit your use case, please [contact us](mailto:floss@galtzo.com) to discuss a custom commercial license. @@ -237,7 +237,7 @@ If none of the available licenses suit your use case, please [contact us](mailto [📜src-gl]: https://gitlab.com/structuredmerge/structuredmerge-ruby/-/tree/main/gems/ast-crispr-ruby-prism [📜src-cb-img]: https://img.shields.io/badge/CodeBerg-4893CC?style=for-the-badge&logo=CodeBerg&logoColor=blue [📜src-cb]: https://codeberg.org/structuredmerge/structuredmerge-ruby/src/branch/main/gems/ast-crispr-ruby-prism -[📜src-gh-img]: https://img.shields.io/badge/GitHub-238636?style=for-the-badge&logo=Github&logoColor=green +[📜src-gh-img]: https://img.shields.io/badge/GitHub-238636?style=for-the-badge&logo=GitHub&logoColor=green [📜src-gh]: https://github.com/structuredmerge/structuredmerge-ruby/tree/main/gems/ast-crispr-ruby-prism [📜docs-cr-rd-img]: https://img.shields.io/badge/RubyDoc-Current_Release-943CD2?style=for-the-badge&logo=readthedocs&logoColor=white [📜docs-head-rd-img]: https://img.shields.io/badge/YARD_on_Galtzo.com-HEAD-943CD2?style=for-the-badge&logo=readthedocs&logoColor=white diff --git a/gems/ast-crispr-ruby-prism/gemfiles/modular/coverage_local.gemfile b/gems/ast-crispr-ruby-prism/gemfiles/modular/coverage_local.gemfile index 016b1a8d7..1c618d554 100644 --- a/gems/ast-crispr-ruby-prism/gemfiles/modular/coverage_local.gemfile +++ b/gems/ast-crispr-ruby-prism/gemfiles/modular/coverage_local.gemfile @@ -3,26 +3,6 @@ # Local path overrides for development. # Loaded by the associated non-local gemfile when KETTLE_DEV_DEV != "false". -# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. -# Bundler records that dependency during Gemfile evaluation, but it does not -# activate that exact version before the immediate `require "nomono/bundler"`. -# If multiple compatible nomono versions are installed, RubyGems may activate -# the newest installed version while Gemfile.lock pins an older compatible one; -# Bundler then aborts with "already activated nomono X, but your Gemfile -# requires nomono Y". Prefer the locked compatible version when present, then -# activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] -nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) -if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked -end -Kernel.send(:gem, 'nomono', *nomono_activation_requirements) require 'nomono/bundler' local_gems = %w[kettle-dev kettle-test kettle-soup-cover kettle-drift] diff --git a/gems/ast-crispr-ruby-prism/gemfiles/modular/documentation_local.gemfile b/gems/ast-crispr-ruby-prism/gemfiles/modular/documentation_local.gemfile index 196d1063d..4d4680eb4 100644 --- a/gems/ast-crispr-ruby-prism/gemfiles/modular/documentation_local.gemfile +++ b/gems/ast-crispr-ruby-prism/gemfiles/modular/documentation_local.gemfile @@ -3,26 +3,6 @@ # Local path overrides for development. # Loaded by the associated non-local gemfile when GALTZO_FLOSS_DEV != "false". -# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. -# Bundler records that dependency during Gemfile evaluation, but it does not -# activate that exact version before the immediate `require "nomono/bundler"`. -# If multiple compatible nomono versions are installed, RubyGems may activate -# the newest installed version while Gemfile.lock pins an older compatible one; -# Bundler then aborts with "already activated nomono X, but your Gemfile -# requires nomono Y". Prefer the locked compatible version when present, then -# activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] -nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) -if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked -end -Kernel.send(:gem, 'nomono', *nomono_activation_requirements) require 'nomono/bundler' local_gems = %w[yard-fence yard-timekeeper yard-yaml] diff --git a/gems/ast-crispr-ruby-prism/gemfiles/modular/style_local.gemfile b/gems/ast-crispr-ruby-prism/gemfiles/modular/style_local.gemfile index 3552ea6b2..5eed4e5dc 100644 --- a/gems/ast-crispr-ruby-prism/gemfiles/modular/style_local.gemfile +++ b/gems/ast-crispr-ruby-prism/gemfiles/modular/style_local.gemfile @@ -6,26 +6,6 @@ # Local path overrides for development. # Loaded by the associated non-local gemfile when RUBOCOP_LTS_LOCAL != "false". -# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. -# Bundler records that dependency during Gemfile evaluation, but it does not -# activate that exact version before the immediate `require "nomono/bundler"`. -# If multiple compatible nomono versions are installed, RubyGems may activate -# the newest installed version while Gemfile.lock pins an older compatible one; -# Bundler then aborts with "already activated nomono X, but your Gemfile -# requires nomono Y". Prefer the locked compatible version when present, then -# activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] -nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) -if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked -end -Kernel.send(:gem, 'nomono', *nomono_activation_requirements) require 'nomono/bundler' local_gems = %w[rubocop-lts rubocop-lts-rspec rubocop-ruby3_2 standard-rubocop-lts] diff --git a/gems/ast-crispr-ruby-prism/gemfiles/modular/templating_local.gemfile b/gems/ast-crispr-ruby-prism/gemfiles/modular/templating_local.gemfile index 977f43616..d961394fd 100644 --- a/gems/ast-crispr-ruby-prism/gemfiles/modular/templating_local.gemfile +++ b/gems/ast-crispr-ruby-prism/gemfiles/modular/templating_local.gemfile @@ -4,26 +4,6 @@ # Loaded by the associated non-local gemfile when STRUCTUREDMERGE_DEV or KETTLE_DEV_DEV # is not "false". -# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. -# Bundler records that dependency during Gemfile evaluation, but it does not -# activate that exact version before the immediate `require "nomono/bundler"`. -# If multiple compatible nomono versions are installed, RubyGems may activate -# the newest installed version while Gemfile.lock pins an older compatible one; -# Bundler then aborts with "already activated nomono X, but your Gemfile -# requires nomono Y". Prefer the locked compatible version when present, then -# activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] -nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) -if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked -end -Kernel.send(:gem, 'nomono', *nomono_activation_requirements) require 'nomono/bundler' structuredmerge_local_gems = %w[ diff --git a/gems/ast-crispr/Gemfile b/gems/ast-crispr/Gemfile index a4d167f58..fc1c4d762 100644 --- a/gems/ast-crispr/Gemfile +++ b/gems/ast-crispr/Gemfile @@ -37,138 +37,6 @@ if direct_sibling_gems.any? && direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) require 'nomono/bundler' ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local diff --git a/gems/ast-crispr/Gemfile.lock b/gems/ast-crispr/Gemfile.lock index c358a8a1b..d34e5295a 100644 --- a/gems/ast-crispr/Gemfile.lock +++ b/gems/ast-crispr/Gemfile.lock @@ -128,7 +128,7 @@ GEM mutex_m (0.3.0) nokogiri (1.19.4-x86_64-linux-gnu) racc (~> 1.4) - nomono (1.0.9) + nomono (1.1.0) openssl (4.0.2) ostruct (0.6.3) parallel (1.28.0) @@ -438,6 +438,7 @@ CHECKSUMS backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd + bundler (4.0.16) sha256=d6ca5dd440c24f9abce9844cf44cc8e18c6a553de65a47efb4544137af92c47d bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 @@ -464,9 +465,9 @@ CHECKSUMS io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 - kettle-dev (2.3.9) + kettle-dev (2.3.9) sha256=03b2f72c6dda4d2c4401ee3c0c96853116c922766e7b5b04224434a49b571bfc kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f - kettle-soup-cover (3.0.4) + kettle-soup-cover (3.0.4) sha256=36d4df472362d2020d16411d7ce26ba2fe2a41fb8be64577ff9b5280acf99d86 kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa @@ -476,7 +477,7 @@ CHECKSUMS logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-x86_64-linux-gnu) sha256=379fae440b28915e3f19d752ce2dcf8465ed2b2fbefd2a7ca0dd497bc981a06a - nomono (1.0.9) + nomono (1.1.0) sha256=463dd4c79da02a855739a1b5483190d527b7868688be905e84abdb3449b32c88 openssl (4.0.2) sha256=1037ad2868ae58df9ad917891c0c0f9815a1172f6846d4bcdd508e4c2ee747c2 ostruct (0.6.3) sha256=95a2ed4a4bd1d190784e666b47b2d3f078e4a9efda2fccf18f84ddc6538ed912 parallel (1.28.0) sha256=33e6de1484baf2524792d178b0913fc8eb94c628d6cfe45599ad4458c638c970 diff --git a/gems/ast-crispr/gemfiles/modular/coverage_local.gemfile b/gems/ast-crispr/gemfiles/modular/coverage_local.gemfile index e62025cbc..9b7dad77d 100644 --- a/gems/ast-crispr/gemfiles/modular/coverage_local.gemfile +++ b/gems/ast-crispr/gemfiles/modular/coverage_local.gemfile @@ -3,27 +3,7 @@ # Local path overrides for development. # Loaded by the associated non-local gemfile when KETTLE_DEV_DEV != "false". -# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. -# Bundler records that dependency during Gemfile evaluation, but it does not -# activate that exact version before the immediate `require "nomono/bundler"`. -# If multiple compatible nomono versions are installed, RubyGems may activate -# the newest installed version while Gemfile.lock pins an older compatible one; -# Bundler then aborts with "already activated nomono X, but your Gemfile -# requires nomono Y". Prefer the locked compatible version when present, then -# activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] -nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) -if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked -end -Kernel.send(:gem, 'nomono', *nomono_activation_requirements) -require 'nomono/bundler' +require "nomono/bundler" local_gems = %w[kettle-dev kettle-test kettle-soup-cover kettle-drift] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) diff --git a/gems/ast-crispr/gemfiles/modular/documentation_local.gemfile b/gems/ast-crispr/gemfiles/modular/documentation_local.gemfile index 54aaf6e1c..610362699 100644 --- a/gems/ast-crispr/gemfiles/modular/documentation_local.gemfile +++ b/gems/ast-crispr/gemfiles/modular/documentation_local.gemfile @@ -3,27 +3,7 @@ # Local path overrides for development. # Loaded by the associated non-local gemfile when GALTZO_FLOSS_DEV != "false". -# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. -# Bundler records that dependency during Gemfile evaluation, but it does not -# activate that exact version before the immediate `require "nomono/bundler"`. -# If multiple compatible nomono versions are installed, RubyGems may activate -# the newest installed version while Gemfile.lock pins an older compatible one; -# Bundler then aborts with "already activated nomono X, but your Gemfile -# requires nomono Y". Prefer the locked compatible version when present, then -# activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] -nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) -if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked -end -Kernel.send(:gem, 'nomono', *nomono_activation_requirements) -require 'nomono/bundler' +require "nomono/bundler" local_gems = %w[yard-fence yard-timekeeper yard-yaml] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) diff --git a/gems/ast-crispr/gemfiles/modular/style_local.gemfile b/gems/ast-crispr/gemfiles/modular/style_local.gemfile index 43bdc7576..1d53a3076 100644 --- a/gems/ast-crispr/gemfiles/modular/style_local.gemfile +++ b/gems/ast-crispr/gemfiles/modular/style_local.gemfile @@ -6,27 +6,7 @@ # Local path overrides for development. # Loaded by the associated non-local gemfile when RUBOCOP_LTS_LOCAL != "false". -# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. -# Bundler records that dependency during Gemfile evaluation, but it does not -# activate that exact version before the immediate `require "nomono/bundler"`. -# If multiple compatible nomono versions are installed, RubyGems may activate -# the newest installed version while Gemfile.lock pins an older compatible one; -# Bundler then aborts with "already activated nomono X, but your Gemfile -# requires nomono Y". Prefer the locked compatible version when present, then -# activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] -nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) -if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked -end -Kernel.send(:gem, 'nomono', *nomono_activation_requirements) -require 'nomono/bundler' +require "nomono/bundler" local_gems = %w[rubocop-lts rubocop-lts-rspec rubocop-ruby3_2 standard-rubocop-lts] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) diff --git a/gems/ast-crispr/gemfiles/modular/templating_local.gemfile b/gems/ast-crispr/gemfiles/modular/templating_local.gemfile index 4c19e13e1..ecbe542ab 100644 --- a/gems/ast-crispr/gemfiles/modular/templating_local.gemfile +++ b/gems/ast-crispr/gemfiles/modular/templating_local.gemfile @@ -4,27 +4,7 @@ # Loaded by the associated non-local gemfile when STRUCTUREDMERGE_DEV or KETTLE_DEV_DEV # is not "false". -# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. -# Bundler records that dependency during Gemfile evaluation, but it does not -# activate that exact version before the immediate `require "nomono/bundler"`. -# If multiple compatible nomono versions are installed, RubyGems may activate -# the newest installed version while Gemfile.lock pins an older compatible one; -# Bundler then aborts with "already activated nomono X, but your Gemfile -# requires nomono Y". Prefer the locked compatible version when present, then -# activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] -nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) -if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked -end -Kernel.send(:gem, 'nomono', *nomono_activation_requirements) -require 'nomono/bundler' +require "nomono/bundler" structuredmerge_local_gems = %w[ tree_haver diff --git a/gems/ast-merge-git/.kettle-drift.lock b/gems/ast-merge-git/.kettle-drift.lock deleted file mode 100644 index 7cc6a5131..000000000 --- a/gems/ast-merge-git/.kettle-drift.lock +++ /dev/null @@ -1,188 +0,0 @@ -{ - "(direct_sibling_local ||\nENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?)": [ - { - "file": "Gemfile", - "lines": [ - 80, - 120 - ] - } - ], - ".find { |spec| spec.name == 'nomono' }\nnomono_locked = nomono_locked_spec &&": [ - { - "file": "Gemfile", - "lines": [ - 91, - 131 - ] - } - ], - "ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?)\ndirect_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV')": [ - { - "file": "Gemfile", - "lines": [ - 81, - 121 - ] - } - ], - "Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version)\nnomono_activation_requirements = [\"= #{nomono_locked_spec.version}\"] if nomono_locked": [ - { - "file": "Gemfile", - "lines": [ - 93, - 133 - ] - } - ], - "Kernel.send(:gem, 'nomono', *nomono_activation_requirements)\nrequire 'nomono/bundler'": [ - { - "file": "Gemfile", - "lines": [ - 96, - 136 - ] - } - ], - "direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV')\ndirect_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil)": [ - { - "file": "Gemfile", - "lines": [ - 82, - 122 - ] - } - ], - "eval_nomono_gems(\ngems: direct_sibling_gems,": [ - { - "file": "Gemfile", - "lines": [ - 60, - 100, - 140 - ] - } - ], - "gems: direct_sibling_gems,\nprefix: 'STRUCTUREDMERGE',": [ - { - "file": "Gemfile", - "lines": [ - 101, - 141 - ] - } - ], - "if File.file?(nomono_lockfile)\nnomono_locked_spec = Bundler::LockfileParser": [ - { - "file": "Gemfile", - "lines": [ - 43, - 87, - 127 - ] - } - ], - "if direct_sibling_dev_was_set\nENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original": [ - { - "file": "Gemfile", - "lines": [ - 110, - 150 - ] - } - ], - "if direct_sibling_gems.any? &&\n(direct_sibling_local ||": [ - { - "file": "Gemfile", - "lines": [ - 35, - 79, - 119 - ] - } - ], - "if direct_sibling_templating && !direct_sibling_local\nif direct_sibling_dev_was_set": [ - { - "file": "Gemfile", - "lines": [ - 69, - 109, - 149 - ] - } - ], - "nomono_activation_requirements = nomono_requirements\nnomono_lockfile = File.expand_path('Gemfile.lock', __dir__)": [ - { - "file": "Gemfile", - "lines": [ - 85, - 125 - ] - } - ], - "nomono_locked = nomono_locked_spec &&\nGem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version)": [ - { - "file": "Gemfile", - "lines": [ - 48, - 92, - 132 - ] - } - ], - "nomono_locked_spec = Bundler::LockfileParser\n.new(Bundler.read_file(nomono_lockfile))": [ - { - "file": "Gemfile", - "lines": [ - 44, - 88, - 128 - ] - } - ], - "nomono_lockfile = File.expand_path('Gemfile.lock', __dir__)\nif File.file?(nomono_lockfile)": [ - { - "file": "Gemfile", - "lines": [ - 86, - 126 - ] - } - ], - "path_env: 'STRUCTUREDMERGE_DEV',\nroot: %w[src my structuredmerge]": [ - { - "file": "Gemfile", - "lines": [ - 103, - 143 - ] - } - ], - "prefix: 'STRUCTUREDMERGE',\npath_env: 'STRUCTUREDMERGE_DEV',": [ - { - "file": "Gemfile", - "lines": [ - 102, - 142 - ] - } - ], - "require 'nomono/bundler'\nENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local": [ - { - "file": "Gemfile", - "lines": [ - 97, - 137 - ] - } - ], - "rescue LoadError\nwarn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.'": [ - { - "file": "Gemfile", - "lines": [ - 106, - 146 - ] - } - ] -} diff --git a/gems/ast-merge-git/Gemfile b/gems/ast-merge-git/Gemfile index dc4044667..ee961dec3 100644 --- a/gems/ast-merge-git/Gemfile +++ b/gems/ast-merge-git/Gemfile @@ -37,100 +37,8 @@ if direct_sibling_gems.any? && ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) + require 'nomono/bundler' begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local eval_nomono_gems( @@ -139,8 +47,6 @@ if direct_sibling_gems.any? && path_env: 'STRUCTUREDMERGE_DEV', root: %w[src my structuredmerge] ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' ensure if direct_sibling_templating && !direct_sibling_local if direct_sibling_dev_was_set diff --git a/gems/ast-merge-git/Gemfile.lock b/gems/ast-merge-git/Gemfile.lock index 2571a6a85..5c10515c9 100644 --- a/gems/ast-merge-git/Gemfile.lock +++ b/gems/ast-merge-git/Gemfile.lock @@ -132,7 +132,7 @@ GEM mutex_m (0.3.0) nokogiri (1.19.4-x86_64-linux-gnu) racc (~> 1.4) - nomono (1.0.9) + nomono (1.1.0) openssl (4.0.2) ostruct (0.6.3) parallel (1.28.0) @@ -440,6 +440,7 @@ CHECKSUMS backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd + bundler (4.0.17) sha256=214e21431b5665dd2f99df8a5511c6b151d7a72e8015c8b38f8b775b61cbb6c1 bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 @@ -467,9 +468,9 @@ CHECKSUMS irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 json-merge (7.1.0) - kettle-dev (2.3.9) + kettle-dev (2.3.9) sha256=03b2f72c6dda4d2c4401ee3c0c96853116c922766e7b5b04224434a49b571bfc kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f - kettle-soup-cover (3.0.4) + kettle-soup-cover (3.0.4) sha256=36d4df472362d2020d16411d7ce26ba2fe2a41fb8be64577ff9b5280acf99d86 kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa @@ -479,7 +480,7 @@ CHECKSUMS logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-x86_64-linux-gnu) sha256=379fae440b28915e3f19d752ce2dcf8465ed2b2fbefd2a7ca0dd497bc981a06a - nomono (1.0.9) + nomono (1.1.0) sha256=463dd4c79da02a855739a1b5483190d527b7868688be905e84abdb3449b32c88 openssl (4.0.2) sha256=1037ad2868ae58df9ad917891c0c0f9815a1172f6846d4bcdd508e4c2ee747c2 ostruct (0.6.3) sha256=95a2ed4a4bd1d190784e666b47b2d3f078e4a9efda2fccf18f84ddc6538ed912 parallel (1.28.0) sha256=33e6de1484baf2524792d178b0913fc8eb94c628d6cfe45599ad4458c638c970 @@ -571,4 +572,4 @@ CHECKSUMS zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH - 4.0.16 + 4.0.17 diff --git a/gems/ast-merge-git/LICENSE.md b/gems/ast-merge-git/LICENSE.md index 6ad318705..65a770d1f 100644 --- a/gems/ast-merge-git/LICENSE.md +++ b/gems/ast-merge-git/LICENSE.md @@ -3,8 +3,8 @@ This project is made available under the following licenses. Choose the option that best fits your use case: -- [AGPL-3.0-only](AGPL-3.0-only.md) -- [PolyForm-Small-Business-1.0.0](PolyForm-Small-Business-1.0.0.md) +- [AGPL-3.0-only](https://github.com/structuredmerge/structuredmerge-ruby/blob/main/AGPL-3.0-only.md) +- [PolyForm-Small-Business-1.0.0](https://github.com/structuredmerge/structuredmerge-ruby/blob/main/PolyForm-Small-Business-1.0.0.md) If none of the above licenses fit your use case, please [contact us](mailto:floss@galtzo.com) to discuss a custom commercial license. diff --git a/gems/ast-merge-git/README.md b/gems/ast-merge-git/README.md index dfcb1b559..43d47a409 100644 --- a/gems/ast-merge-git/README.md +++ b/gems/ast-merge-git/README.md @@ -36,7 +36,7 @@ I've summarized my thoughts in [this blog post](https://dev.to/galtzo/hostile-ta |-------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | Works with MRI Ruby 4 | [![Ruby current Compat][💎ruby-c-i]][🚎11-c-wf]| | Support & Community | [![Join Me on Daily.dev's RubyFriends][✉️ruby-friends-img]][✉️ruby-friends] [![Get help from RubyForum][✉️ruby-forum-img]][✉️ruby-forum] [![Live Chat on Discord][✉️discord-invite-img-ftb]][✉️discord-invite] [![Get help from me on Upwork][👨🏼‍🏫expsup-upwork-img]][👨🏼‍🏫expsup-upwork] [![Get help from me on Codementor][👨🏼‍🏫expsup-codementor-img]][👨🏼‍🏫expsup-codementor] | -| Source | [![Source on GitLab.com][📜src-gl-img]][📜src-gl] [![Source on CodeBerg.org][📜src-cb-img]][📜src-cb] [![Source on Github.com][📜src-gh-img]][📜src-gh] [![The best SHA: dQw4w9WgXcQ!][🧮kloc-img]][🧮kloc] | +| Source | [![Source on GitLab.com][📜src-gl-img]][📜src-gl] [![Source on CodeBerg.org][📜src-cb-img]][📜src-cb] [![Source on GitHub.com][📜src-gh-img]][📜src-gh] [![The best SHA: dQw4w9WgXcQ!][🧮kloc-img]][🧮kloc] | | Documentation | [![Current release on RubyDoc.info][📜docs-cr-rd-img]][🚎yard-current] [![YARD on Galtzo.com][📜docs-head-rd-img]][🚎yard-head] [![Maintainer Blog][🚂maint-blog-img]][🚂maint-blog] [![GitLab Wiki][📜gl-wiki-img]][📜gl-wiki] [![GitHub Wiki][📜gh-wiki-img]][📜gh-wiki] | | Compliance | [![License: AGPL-3.0-only OR PolyForm-Small-Business-1.0.0][📄license-img]][📄license] [![Apache license compatibility: Category X][📄license-compat-img]][📄license-compat] [![📄ilo-declaration-img]][📄ilo-declaration] [![Security Policy][🔐security-img]][🔐security] [![Contributor Covenant 2.1][🪇conduct-img]][🪇conduct] [![SemVer 2.0.0][📌semver-img]][📌semver] | | Style | [![Enforced Code Style Linter][💎rlts-img]][💎rlts] [![Keep-A-Changelog 1.0.0][📗keep-changelog-img]][📗keep-changelog] [![Gitmoji Commits][📌gitmoji-img]][📌gitmoji] [![Compatibility appraised by: appraisal2][💎appraisal2-img]][💎appraisal2] | @@ -154,7 +154,7 @@ See [CHANGELOG.md][📌changelog] for a list of releases. ## 📄 License -The gem is available under the following licenses: [AGPL-3.0-only](AGPL-3.0-only.md), [PolyForm-Small-Business-1.0.0](PolyForm-Small-Business-1.0.0.md). +The gem is available under the following licenses: [AGPL-3.0-only](https://github.com/structuredmerge/structuredmerge-ruby/blob/main/AGPL-3.0-only.md), [PolyForm-Small-Business-1.0.0](https://github.com/structuredmerge/structuredmerge-ruby/blob/main/PolyForm-Small-Business-1.0.0.md). See [LICENSE.md][📄license] for details. If none of the available licenses suit your use case, please [contact us](mailto:floss@galtzo.com) to discuss a custom commercial license. @@ -226,7 +226,7 @@ If none of the available licenses suit your use case, please [contact us](mailto [📜src-gl]: https://gitlab.com/structuredmerge/structuredmerge-ruby/-/tree/main/gems/ast-merge-git [📜src-cb-img]: https://img.shields.io/badge/CodeBerg-4893CC?style=for-the-badge&logo=CodeBerg&logoColor=blue [📜src-cb]: https://codeberg.org/structuredmerge/structuredmerge-ruby/src/branch/main/gems/ast-merge-git -[📜src-gh-img]: https://img.shields.io/badge/GitHub-238636?style=for-the-badge&logo=Github&logoColor=green +[📜src-gh-img]: https://img.shields.io/badge/GitHub-238636?style=for-the-badge&logo=GitHub&logoColor=green [📜src-gh]: https://github.com/structuredmerge/structuredmerge-ruby/tree/main/gems/ast-merge-git [📜docs-cr-rd-img]: https://img.shields.io/badge/RubyDoc-Current_Release-943CD2?style=for-the-badge&logo=readthedocs&logoColor=white [📜docs-head-rd-img]: https://img.shields.io/badge/YARD_on_Galtzo.com-HEAD-943CD2?style=for-the-badge&logo=readthedocs&logoColor=white diff --git a/gems/ast-merge-git/gemfiles/modular/coverage_local.gemfile b/gems/ast-merge-git/gemfiles/modular/coverage_local.gemfile index 069ac0fbb..1fb5c6d9b 100644 --- a/gems/ast-merge-git/gemfiles/modular/coverage_local.gemfile +++ b/gems/ast-merge-git/gemfiles/modular/coverage_local.gemfile @@ -3,26 +3,6 @@ # Local path overrides for development. # Loaded by the associated non-local gemfile when KETTLE_DEV_DEV != "false". -# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. -# Bundler records that dependency during Gemfile evaluation, but it does not -# activate that exact version before the immediate `require "nomono/bundler"`. -# If multiple compatible nomono versions are installed, RubyGems may activate -# the newest installed version while Gemfile.lock pins an older compatible one; -# Bundler then aborts with "already activated nomono X, but your Gemfile -# requires nomono Y". Prefer the locked compatible version when present, then -# activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] -nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) -if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked -end -Kernel.send(:gem, 'nomono', *nomono_activation_requirements) require 'nomono/bundler' local_gems = %w[kettle-dev kettle-test kettle-soup-cover kettle-drift] diff --git a/gems/ast-merge-git/gemfiles/modular/documentation_local.gemfile b/gems/ast-merge-git/gemfiles/modular/documentation_local.gemfile index abee56f26..32de7815d 100644 --- a/gems/ast-merge-git/gemfiles/modular/documentation_local.gemfile +++ b/gems/ast-merge-git/gemfiles/modular/documentation_local.gemfile @@ -3,26 +3,6 @@ # Local path overrides for development. # Loaded by the associated non-local gemfile when GALTZO_FLOSS_DEV != "false". -# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. -# Bundler records that dependency during Gemfile evaluation, but it does not -# activate that exact version before the immediate `require "nomono/bundler"`. -# If multiple compatible nomono versions are installed, RubyGems may activate -# the newest installed version while Gemfile.lock pins an older compatible one; -# Bundler then aborts with "already activated nomono X, but your Gemfile -# requires nomono Y". Prefer the locked compatible version when present, then -# activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] -nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) -if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked -end -Kernel.send(:gem, 'nomono', *nomono_activation_requirements) require 'nomono/bundler' local_gems = %w[yard-fence yard-timekeeper yard-yaml] diff --git a/gems/ast-merge-git/gemfiles/modular/style_local.gemfile b/gems/ast-merge-git/gemfiles/modular/style_local.gemfile index fb5e432a6..6be28c0e3 100644 --- a/gems/ast-merge-git/gemfiles/modular/style_local.gemfile +++ b/gems/ast-merge-git/gemfiles/modular/style_local.gemfile @@ -6,26 +6,6 @@ # Local path overrides for development. # Loaded by the associated non-local gemfile when RUBOCOP_LTS_LOCAL != "false". -# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. -# Bundler records that dependency during Gemfile evaluation, but it does not -# activate that exact version before the immediate `require "nomono/bundler"`. -# If multiple compatible nomono versions are installed, RubyGems may activate -# the newest installed version while Gemfile.lock pins an older compatible one; -# Bundler then aborts with "already activated nomono X, but your Gemfile -# requires nomono Y". Prefer the locked compatible version when present, then -# activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] -nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) -if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked -end -Kernel.send(:gem, 'nomono', *nomono_activation_requirements) require 'nomono/bundler' local_gems = %w[rubocop-lts rubocop-lts-rspec rubocop-ruby3_2 standard-rubocop-lts] diff --git a/gems/ast-merge-git/gemfiles/modular/templating_local.gemfile b/gems/ast-merge-git/gemfiles/modular/templating_local.gemfile index 81c35f81e..3392b5d85 100644 --- a/gems/ast-merge-git/gemfiles/modular/templating_local.gemfile +++ b/gems/ast-merge-git/gemfiles/modular/templating_local.gemfile @@ -4,26 +4,6 @@ # Loaded by the associated non-local gemfile when STRUCTUREDMERGE_DEV or KETTLE_DEV_DEV # is not "false". -# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. -# Bundler records that dependency during Gemfile evaluation, but it does not -# activate that exact version before the immediate `require "nomono/bundler"`. -# If multiple compatible nomono versions are installed, RubyGems may activate -# the newest installed version while Gemfile.lock pins an older compatible one; -# Bundler then aborts with "already activated nomono X, but your Gemfile -# requires nomono Y". Prefer the locked compatible version when present, then -# activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] -nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) -if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked -end -Kernel.send(:gem, 'nomono', *nomono_activation_requirements) require 'nomono/bundler' structuredmerge_local_gems = %w[ diff --git a/gems/ast-merge/Gemfile b/gems/ast-merge/Gemfile index e6a745c2a..92d1177b1 100644 --- a/gems/ast-merge/Gemfile +++ b/gems/ast-merge/Gemfile @@ -37,138 +37,6 @@ if direct_sibling_gems.any? && direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) require 'nomono/bundler' ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local diff --git a/gems/ast-merge/Gemfile.lock b/gems/ast-merge/Gemfile.lock index dcd9de23b..761bc7971 100644 --- a/gems/ast-merge/Gemfile.lock +++ b/gems/ast-merge/Gemfile.lock @@ -7,15 +7,6 @@ PATH tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) -PATH - remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/tree_haver - specs: - tree_haver (7.1.0) - citrus (~> 3.0) - parslet (~> 2.0) - tree_sitter_language_pack (>= 1.13.2, < 2.0) - version_gem (~> 1.1, >= 1.1.9) - GEM remote: https://gem.coop/ specs: @@ -141,7 +132,7 @@ GEM racc (~> 1.4) nokogiri (1.19.4-x86_64-linux-musl) racc (~> 1.4) - nomono (1.0.9) + nomono (1.1.0) openssl (4.0.2) ostruct (0.6.3) parallel (1.28.0) @@ -346,6 +337,11 @@ GEM token-resolver (2.0.5) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.14) + tree_haver (7.1.0) + citrus (~> 3.0) + parslet (~> 2.0) + tree_sitter_language_pack (>= 1.13.2, < 2.0) + version_gem (~> 1.1, >= 1.1.9) tree_sitter_language_pack (1.13.3-aarch64-linux) sorbet-runtime (~> 0.5) tree_sitter_language_pack (1.13.3-arm64-darwin) @@ -431,7 +427,6 @@ DEPENDENCIES standard (~> 1.56, >= 1.56.0) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) - tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) webrick (~> 1.9) yaml-converter (~> 0.2, >= 0.2.3) @@ -452,6 +447,7 @@ CHECKSUMS backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd + bundler (4.0.16) sha256=d6ca5dd440c24f9abce9844cf44cc8e18c6a553de65a47efb4544137af92c47d bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 @@ -478,9 +474,9 @@ CHECKSUMS io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 - kettle-dev (2.3.9) + kettle-dev (2.3.9) sha256=03b2f72c6dda4d2c4401ee3c0c96853116c922766e7b5b04224434a49b571bfc kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f - kettle-soup-cover (3.0.4) + kettle-soup-cover (3.0.4) sha256=36d4df472362d2020d16411d7ce26ba2fe2a41fb8be64577ff9b5280acf99d86 kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa @@ -494,7 +490,7 @@ CHECKSUMS nokogiri (1.19.4-arm64-darwin) sha256=a46db9853286e6597b36ebc6953817d15acf3a299583eb3f89fdc6f91dd63527 nokogiri (1.19.4-x86_64-linux-gnu) sha256=379fae440b28915e3f19d752ce2dcf8465ed2b2fbefd2a7ca0dd497bc981a06a nokogiri (1.19.4-x86_64-linux-musl) sha256=17dfb7c1fa194ae02fbf7c51a7afc8d278045ab3fdacfd86f91d02d7b274470b - nomono (1.0.9) + nomono (1.1.0) sha256=463dd4c79da02a855739a1b5483190d527b7868688be905e84abdb3449b32c88 openssl (4.0.2) sha256=1037ad2868ae58df9ad917891c0c0f9815a1172f6846d4bcdd508e4c2ee747c2 ostruct (0.6.3) sha256=95a2ed4a4bd1d190784e666b47b2d3f078e4a9efda2fccf18f84ddc6538ed912 parallel (1.28.0) sha256=33e6de1484baf2524792d178b0913fc8eb94c628d6cfe45599ad4458c638c970 diff --git a/gems/ast-merge/gemfiles/modular/coverage_local.gemfile b/gems/ast-merge/gemfiles/modular/coverage_local.gemfile index f556973ee..316d764dd 100644 --- a/gems/ast-merge/gemfiles/modular/coverage_local.gemfile +++ b/gems/ast-merge/gemfiles/modular/coverage_local.gemfile @@ -3,27 +3,7 @@ # Local path overrides for development. # Loaded by the associated non-local gemfile when KETTLE_DEV_DEV != "false". -# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. -# Bundler records that dependency during Gemfile evaluation, but it does not -# activate that exact version before the immediate `require "nomono/bundler"`. -# If multiple compatible nomono versions are installed, RubyGems may activate -# the newest installed version while Gemfile.lock pins an older compatible one; -# Bundler then aborts with "already activated nomono X, but your Gemfile -# requires nomono Y". Prefer the locked compatible version when present, then -# activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] -nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) -if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked -end -Kernel.send(:gem, 'nomono', *nomono_activation_requirements) -require 'nomono/bundler' +require "nomono/bundler" local_gems = %w[kettle-dev kettle-test kettle-soup-cover kettle-drift] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) diff --git a/gems/ast-merge/gemfiles/modular/documentation_local.gemfile b/gems/ast-merge/gemfiles/modular/documentation_local.gemfile index 3c1453057..18e1ba3b3 100644 --- a/gems/ast-merge/gemfiles/modular/documentation_local.gemfile +++ b/gems/ast-merge/gemfiles/modular/documentation_local.gemfile @@ -3,27 +3,7 @@ # Local path overrides for development. # Loaded by the associated non-local gemfile when GALTZO_FLOSS_DEV != "false". -# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. -# Bundler records that dependency during Gemfile evaluation, but it does not -# activate that exact version before the immediate `require "nomono/bundler"`. -# If multiple compatible nomono versions are installed, RubyGems may activate -# the newest installed version while Gemfile.lock pins an older compatible one; -# Bundler then aborts with "already activated nomono X, but your Gemfile -# requires nomono Y". Prefer the locked compatible version when present, then -# activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] -nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) -if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked -end -Kernel.send(:gem, 'nomono', *nomono_activation_requirements) -require 'nomono/bundler' +require "nomono/bundler" local_gems = %w[yard-fence yard-timekeeper yard-yaml] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) diff --git a/gems/ast-merge/gemfiles/modular/style_local.gemfile b/gems/ast-merge/gemfiles/modular/style_local.gemfile index e4a06d74e..73e4e724b 100644 --- a/gems/ast-merge/gemfiles/modular/style_local.gemfile +++ b/gems/ast-merge/gemfiles/modular/style_local.gemfile @@ -6,27 +6,7 @@ # Local path overrides for development. # Loaded by the associated non-local gemfile when RUBOCOP_LTS_LOCAL != "false". -# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. -# Bundler records that dependency during Gemfile evaluation, but it does not -# activate that exact version before the immediate `require "nomono/bundler"`. -# If multiple compatible nomono versions are installed, RubyGems may activate -# the newest installed version while Gemfile.lock pins an older compatible one; -# Bundler then aborts with "already activated nomono X, but your Gemfile -# requires nomono Y". Prefer the locked compatible version when present, then -# activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] -nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) -if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked -end -Kernel.send(:gem, 'nomono', *nomono_activation_requirements) -require 'nomono/bundler' +require "nomono/bundler" local_gems = %w[rubocop-lts rubocop-lts-rspec rubocop-ruby3_2 standard-rubocop-lts] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) diff --git a/gems/ast-merge/gemfiles/modular/templating_local.gemfile b/gems/ast-merge/gemfiles/modular/templating_local.gemfile index cd50e9a1e..b0c887fb3 100644 --- a/gems/ast-merge/gemfiles/modular/templating_local.gemfile +++ b/gems/ast-merge/gemfiles/modular/templating_local.gemfile @@ -4,27 +4,7 @@ # Loaded by the associated non-local gemfile when STRUCTUREDMERGE_DEV or KETTLE_DEV_DEV # is not "false". -# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. -# Bundler records that dependency during Gemfile evaluation, but it does not -# activate that exact version before the immediate `require "nomono/bundler"`. -# If multiple compatible nomono versions are installed, RubyGems may activate -# the newest installed version while Gemfile.lock pins an older compatible one; -# Bundler then aborts with "already activated nomono X, but your Gemfile -# requires nomono Y". Prefer the locked compatible version when present, then -# activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] -nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) -if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked -end -Kernel.send(:gem, 'nomono', *nomono_activation_requirements) -require 'nomono/bundler' +require "nomono/bundler" structuredmerge_local_gems = %w[ tree_haver diff --git a/gems/ast-template/.kettle-drift.lock b/gems/ast-template/.kettle-drift.lock deleted file mode 100644 index 9a486b4b3..000000000 --- a/gems/ast-template/.kettle-drift.lock +++ /dev/null @@ -1,188 +0,0 @@ -{ - "(direct_sibling_local ||\nENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?)": [ - { - "file": "Gemfile", - "lines": [ - 79, - 119 - ] - } - ], - ".find { |spec| spec.name == 'nomono' }\nnomono_locked = nomono_locked_spec &&": [ - { - "file": "Gemfile", - "lines": [ - 90, - 130 - ] - } - ], - "ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?)\ndirect_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV')": [ - { - "file": "Gemfile", - "lines": [ - 80, - 120 - ] - } - ], - "Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version)\nnomono_activation_requirements = [\"= #{nomono_locked_spec.version}\"] if nomono_locked": [ - { - "file": "Gemfile", - "lines": [ - 92, - 132 - ] - } - ], - "Kernel.send(:gem, 'nomono', *nomono_activation_requirements)\nrequire 'nomono/bundler'": [ - { - "file": "Gemfile", - "lines": [ - 95, - 135 - ] - } - ], - "direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV')\ndirect_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil)": [ - { - "file": "Gemfile", - "lines": [ - 81, - 121 - ] - } - ], - "eval_nomono_gems(\ngems: direct_sibling_gems,": [ - { - "file": "Gemfile", - "lines": [ - 59, - 99, - 139 - ] - } - ], - "gems: direct_sibling_gems,\nprefix: 'STRUCTUREDMERGE',": [ - { - "file": "Gemfile", - "lines": [ - 100, - 140 - ] - } - ], - "if File.file?(nomono_lockfile)\nnomono_locked_spec = Bundler::LockfileParser": [ - { - "file": "Gemfile", - "lines": [ - 42, - 86, - 126 - ] - } - ], - "if direct_sibling_dev_was_set\nENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original": [ - { - "file": "Gemfile", - "lines": [ - 109, - 149 - ] - } - ], - "if direct_sibling_gems.any? &&\n(direct_sibling_local ||": [ - { - "file": "Gemfile", - "lines": [ - 34, - 78, - 118 - ] - } - ], - "if direct_sibling_templating && !direct_sibling_local\nif direct_sibling_dev_was_set": [ - { - "file": "Gemfile", - "lines": [ - 68, - 108, - 148 - ] - } - ], - "nomono_activation_requirements = nomono_requirements\nnomono_lockfile = File.expand_path('Gemfile.lock', __dir__)": [ - { - "file": "Gemfile", - "lines": [ - 84, - 124 - ] - } - ], - "nomono_locked = nomono_locked_spec &&\nGem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version)": [ - { - "file": "Gemfile", - "lines": [ - 47, - 91, - 131 - ] - } - ], - "nomono_locked_spec = Bundler::LockfileParser\n.new(Bundler.read_file(nomono_lockfile))": [ - { - "file": "Gemfile", - "lines": [ - 43, - 87, - 127 - ] - } - ], - "nomono_lockfile = File.expand_path('Gemfile.lock', __dir__)\nif File.file?(nomono_lockfile)": [ - { - "file": "Gemfile", - "lines": [ - 85, - 125 - ] - } - ], - "path_env: 'STRUCTUREDMERGE_DEV',\nroot: %w[src my structuredmerge]": [ - { - "file": "Gemfile", - "lines": [ - 102, - 142 - ] - } - ], - "prefix: 'STRUCTUREDMERGE',\npath_env: 'STRUCTUREDMERGE_DEV',": [ - { - "file": "Gemfile", - "lines": [ - 101, - 141 - ] - } - ], - "require 'nomono/bundler'\nENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local": [ - { - "file": "Gemfile", - "lines": [ - 96, - 136 - ] - } - ], - "rescue LoadError\nwarn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.'": [ - { - "file": "Gemfile", - "lines": [ - 105, - 145 - ] - } - ] -} diff --git a/gems/ast-template/Gemfile b/gems/ast-template/Gemfile index 541f9d065..69a634498 100644 --- a/gems/ast-template/Gemfile +++ b/gems/ast-template/Gemfile @@ -36,100 +36,8 @@ if direct_sibling_gems.any? && ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) + require 'nomono/bundler' begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local eval_nomono_gems( @@ -138,8 +46,6 @@ if direct_sibling_gems.any? && path_env: 'STRUCTUREDMERGE_DEV', root: %w[src my structuredmerge] ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' ensure if direct_sibling_templating && !direct_sibling_local if direct_sibling_dev_was_set diff --git a/gems/ast-template/Gemfile.lock b/gems/ast-template/Gemfile.lock index eb888f8b3..7f7f51bfd 100644 --- a/gems/ast-template/Gemfile.lock +++ b/gems/ast-template/Gemfile.lock @@ -127,7 +127,7 @@ GEM mutex_m (0.3.0) nokogiri (1.19.4-x86_64-linux-gnu) racc (~> 1.4) - nomono (1.0.9) + nomono (1.1.0) openssl (4.0.2) ostruct (0.6.3) parallel (1.28.0) @@ -435,6 +435,7 @@ CHECKSUMS backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd + bundler (4.0.17) sha256=214e21431b5665dd2f99df8a5511c6b151d7a72e8015c8b38f8b775b61cbb6c1 bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 @@ -461,9 +462,9 @@ CHECKSUMS io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 - kettle-dev (2.3.9) + kettle-dev (2.3.9) sha256=03b2f72c6dda4d2c4401ee3c0c96853116c922766e7b5b04224434a49b571bfc kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f - kettle-soup-cover (3.0.4) + kettle-soup-cover (3.0.4) sha256=36d4df472362d2020d16411d7ce26ba2fe2a41fb8be64577ff9b5280acf99d86 kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa @@ -473,7 +474,7 @@ CHECKSUMS logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-x86_64-linux-gnu) sha256=379fae440b28915e3f19d752ce2dcf8465ed2b2fbefd2a7ca0dd497bc981a06a - nomono (1.0.9) + nomono (1.1.0) sha256=463dd4c79da02a855739a1b5483190d527b7868688be905e84abdb3449b32c88 openssl (4.0.2) sha256=1037ad2868ae58df9ad917891c0c0f9815a1172f6846d4bcdd508e4c2ee747c2 ostruct (0.6.3) sha256=95a2ed4a4bd1d190784e666b47b2d3f078e4a9efda2fccf18f84ddc6538ed912 parallel (1.28.0) sha256=33e6de1484baf2524792d178b0913fc8eb94c628d6cfe45599ad4458c638c970 @@ -565,4 +566,4 @@ CHECKSUMS zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH - 4.0.16 + 4.0.17 diff --git a/gems/ast-template/LICENSE.md b/gems/ast-template/LICENSE.md index 6ad318705..65a770d1f 100644 --- a/gems/ast-template/LICENSE.md +++ b/gems/ast-template/LICENSE.md @@ -3,8 +3,8 @@ This project is made available under the following licenses. Choose the option that best fits your use case: -- [AGPL-3.0-only](AGPL-3.0-only.md) -- [PolyForm-Small-Business-1.0.0](PolyForm-Small-Business-1.0.0.md) +- [AGPL-3.0-only](https://github.com/structuredmerge/structuredmerge-ruby/blob/main/AGPL-3.0-only.md) +- [PolyForm-Small-Business-1.0.0](https://github.com/structuredmerge/structuredmerge-ruby/blob/main/PolyForm-Small-Business-1.0.0.md) If none of the above licenses fit your use case, please [contact us](mailto:floss@galtzo.com) to discuss a custom commercial license. diff --git a/gems/ast-template/README.md b/gems/ast-template/README.md index 09b851482..28dec4203 100644 --- a/gems/ast-template/README.md +++ b/gems/ast-template/README.md @@ -37,7 +37,7 @@ I've summarized my thoughts in [this blog post](https://dev.to/galtzo/hostile-ta |-------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | Works with MRI Ruby 4 | [![Ruby current Compat][💎ruby-c-i]][🚎11-c-wf]| | Support & Community | [![Join Me on Daily.dev's RubyFriends][✉️ruby-friends-img]][✉️ruby-friends] [![Get help from RubyForum][✉️ruby-forum-img]][✉️ruby-forum] [![Live Chat on Discord][✉️discord-invite-img-ftb]][✉️discord-invite] [![Get help from me on Upwork][👨🏼‍🏫expsup-upwork-img]][👨🏼‍🏫expsup-upwork] [![Get help from me on Codementor][👨🏼‍🏫expsup-codementor-img]][👨🏼‍🏫expsup-codementor] | -| Source | [![Source on GitLab.com][📜src-gl-img]][📜src-gl] [![Source on CodeBerg.org][📜src-cb-img]][📜src-cb] [![Source on Github.com][📜src-gh-img]][📜src-gh] [![The best SHA: dQw4w9WgXcQ!][🧮kloc-img]][🧮kloc] | +| Source | [![Source on GitLab.com][📜src-gl-img]][📜src-gl] [![Source on CodeBerg.org][📜src-cb-img]][📜src-cb] [![Source on GitHub.com][📜src-gh-img]][📜src-gh] [![The best SHA: dQw4w9WgXcQ!][🧮kloc-img]][🧮kloc] | | Documentation | [![Current release on RubyDoc.info][📜docs-cr-rd-img]][🚎yard-current] [![YARD on Galtzo.com][📜docs-head-rd-img]][🚎yard-head] [![Maintainer Blog][🚂maint-blog-img]][🚂maint-blog] [![GitLab Wiki][📜gl-wiki-img]][📜gl-wiki] [![GitHub Wiki][📜gh-wiki-img]][📜gh-wiki] | | Compliance | [![License: AGPL-3.0-only OR PolyForm-Small-Business-1.0.0][📄license-img]][📄license] [![Apache license compatibility: Category X][📄license-compat-img]][📄license-compat] [![📄ilo-declaration-img]][📄ilo-declaration] [![Security Policy][🔐security-img]][🔐security] [![Contributor Covenant 2.1][🪇conduct-img]][🪇conduct] [![SemVer 2.0.0][📌semver-img]][📌semver] | | Style | [![Enforced Code Style Linter][💎rlts-img]][💎rlts] [![Keep-A-Changelog 1.0.0][📗keep-changelog-img]][📗keep-changelog] [![Gitmoji Commits][📌gitmoji-img]][📌gitmoji] [![Compatibility appraised by: appraisal2][💎appraisal2-img]][💎appraisal2] | @@ -149,7 +149,7 @@ See [CHANGELOG.md][📌changelog] for a list of releases. ## 📄 License -The gem is available under the following licenses: [AGPL-3.0-only](AGPL-3.0-only.md), [PolyForm-Small-Business-1.0.0](PolyForm-Small-Business-1.0.0.md). +The gem is available under the following licenses: [AGPL-3.0-only](https://github.com/structuredmerge/structuredmerge-ruby/blob/main/AGPL-3.0-only.md), [PolyForm-Small-Business-1.0.0](https://github.com/structuredmerge/structuredmerge-ruby/blob/main/PolyForm-Small-Business-1.0.0.md). See [LICENSE.md][📄license] for details. If none of the available licenses suit your use case, please [contact us](mailto:floss@galtzo.com) to discuss a custom commercial license. @@ -221,7 +221,7 @@ If none of the available licenses suit your use case, please [contact us](mailto [📜src-gl]: https://gitlab.com/structuredmerge/structuredmerge-ruby/-/tree/main/gems/ast-template [📜src-cb-img]: https://img.shields.io/badge/CodeBerg-4893CC?style=for-the-badge&logo=CodeBerg&logoColor=blue [📜src-cb]: https://codeberg.org/structuredmerge/structuredmerge-ruby/src/branch/main/gems/ast-template -[📜src-gh-img]: https://img.shields.io/badge/GitHub-238636?style=for-the-badge&logo=Github&logoColor=green +[📜src-gh-img]: https://img.shields.io/badge/GitHub-238636?style=for-the-badge&logo=GitHub&logoColor=green [📜src-gh]: https://github.com/structuredmerge/structuredmerge-ruby/tree/main/gems/ast-template [📜docs-cr-rd-img]: https://img.shields.io/badge/RubyDoc-Current_Release-943CD2?style=for-the-badge&logo=readthedocs&logoColor=white [📜docs-head-rd-img]: https://img.shields.io/badge/YARD_on_Galtzo.com-HEAD-943CD2?style=for-the-badge&logo=readthedocs&logoColor=white diff --git a/gems/ast-template/gemfiles/modular/coverage_local.gemfile b/gems/ast-template/gemfiles/modular/coverage_local.gemfile index d9cfdcb4f..0fc7ac539 100644 --- a/gems/ast-template/gemfiles/modular/coverage_local.gemfile +++ b/gems/ast-template/gemfiles/modular/coverage_local.gemfile @@ -3,26 +3,6 @@ # Local path overrides for development. # Loaded by the associated non-local gemfile when KETTLE_DEV_DEV != "false". -# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. -# Bundler records that dependency during Gemfile evaluation, but it does not -# activate that exact version before the immediate `require "nomono/bundler"`. -# If multiple compatible nomono versions are installed, RubyGems may activate -# the newest installed version while Gemfile.lock pins an older compatible one; -# Bundler then aborts with "already activated nomono X, but your Gemfile -# requires nomono Y". Prefer the locked compatible version when present, then -# activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] -nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) -if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked -end -Kernel.send(:gem, 'nomono', *nomono_activation_requirements) require 'nomono/bundler' local_gems = %w[kettle-dev kettle-test kettle-soup-cover kettle-drift] diff --git a/gems/ast-template/gemfiles/modular/documentation_local.gemfile b/gems/ast-template/gemfiles/modular/documentation_local.gemfile index 8642b1c47..54d1b71a8 100644 --- a/gems/ast-template/gemfiles/modular/documentation_local.gemfile +++ b/gems/ast-template/gemfiles/modular/documentation_local.gemfile @@ -3,26 +3,6 @@ # Local path overrides for development. # Loaded by the associated non-local gemfile when GALTZO_FLOSS_DEV != "false". -# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. -# Bundler records that dependency during Gemfile evaluation, but it does not -# activate that exact version before the immediate `require "nomono/bundler"`. -# If multiple compatible nomono versions are installed, RubyGems may activate -# the newest installed version while Gemfile.lock pins an older compatible one; -# Bundler then aborts with "already activated nomono X, but your Gemfile -# requires nomono Y". Prefer the locked compatible version when present, then -# activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] -nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) -if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked -end -Kernel.send(:gem, 'nomono', *nomono_activation_requirements) require 'nomono/bundler' local_gems = %w[yard-fence yard-timekeeper yard-yaml] diff --git a/gems/ast-template/gemfiles/modular/style_local.gemfile b/gems/ast-template/gemfiles/modular/style_local.gemfile index 04b7885a8..07ab6fd23 100644 --- a/gems/ast-template/gemfiles/modular/style_local.gemfile +++ b/gems/ast-template/gemfiles/modular/style_local.gemfile @@ -6,26 +6,6 @@ # Local path overrides for development. # Loaded by the associated non-local gemfile when RUBOCOP_LTS_LOCAL != "false". -# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. -# Bundler records that dependency during Gemfile evaluation, but it does not -# activate that exact version before the immediate `require "nomono/bundler"`. -# If multiple compatible nomono versions are installed, RubyGems may activate -# the newest installed version while Gemfile.lock pins an older compatible one; -# Bundler then aborts with "already activated nomono X, but your Gemfile -# requires nomono Y". Prefer the locked compatible version when present, then -# activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] -nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) -if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked -end -Kernel.send(:gem, 'nomono', *nomono_activation_requirements) require 'nomono/bundler' local_gems = %w[rubocop-lts rubocop-lts-rspec rubocop-ruby3_2 standard-rubocop-lts] diff --git a/gems/ast-template/gemfiles/modular/templating_local.gemfile b/gems/ast-template/gemfiles/modular/templating_local.gemfile index 0b0d4c669..7ae3fae30 100644 --- a/gems/ast-template/gemfiles/modular/templating_local.gemfile +++ b/gems/ast-template/gemfiles/modular/templating_local.gemfile @@ -4,26 +4,6 @@ # Loaded by the associated non-local gemfile when STRUCTUREDMERGE_DEV or KETTLE_DEV_DEV # is not "false". -# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. -# Bundler records that dependency during Gemfile evaluation, but it does not -# activate that exact version before the immediate `require "nomono/bundler"`. -# If multiple compatible nomono versions are installed, RubyGems may activate -# the newest installed version while Gemfile.lock pins an older compatible one; -# Bundler then aborts with "already activated nomono X, but your Gemfile -# requires nomono Y". Prefer the locked compatible version when present, then -# activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] -nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) -if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked -end -Kernel.send(:gem, 'nomono', *nomono_activation_requirements) require 'nomono/bundler' structuredmerge_local_gems = %w[ diff --git a/gems/bash-merge/.kettle-drift.lock b/gems/bash-merge/.kettle-drift.lock deleted file mode 100644 index 7cc6a5131..000000000 --- a/gems/bash-merge/.kettle-drift.lock +++ /dev/null @@ -1,188 +0,0 @@ -{ - "(direct_sibling_local ||\nENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?)": [ - { - "file": "Gemfile", - "lines": [ - 80, - 120 - ] - } - ], - ".find { |spec| spec.name == 'nomono' }\nnomono_locked = nomono_locked_spec &&": [ - { - "file": "Gemfile", - "lines": [ - 91, - 131 - ] - } - ], - "ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?)\ndirect_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV')": [ - { - "file": "Gemfile", - "lines": [ - 81, - 121 - ] - } - ], - "Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version)\nnomono_activation_requirements = [\"= #{nomono_locked_spec.version}\"] if nomono_locked": [ - { - "file": "Gemfile", - "lines": [ - 93, - 133 - ] - } - ], - "Kernel.send(:gem, 'nomono', *nomono_activation_requirements)\nrequire 'nomono/bundler'": [ - { - "file": "Gemfile", - "lines": [ - 96, - 136 - ] - } - ], - "direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV')\ndirect_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil)": [ - { - "file": "Gemfile", - "lines": [ - 82, - 122 - ] - } - ], - "eval_nomono_gems(\ngems: direct_sibling_gems,": [ - { - "file": "Gemfile", - "lines": [ - 60, - 100, - 140 - ] - } - ], - "gems: direct_sibling_gems,\nprefix: 'STRUCTUREDMERGE',": [ - { - "file": "Gemfile", - "lines": [ - 101, - 141 - ] - } - ], - "if File.file?(nomono_lockfile)\nnomono_locked_spec = Bundler::LockfileParser": [ - { - "file": "Gemfile", - "lines": [ - 43, - 87, - 127 - ] - } - ], - "if direct_sibling_dev_was_set\nENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original": [ - { - "file": "Gemfile", - "lines": [ - 110, - 150 - ] - } - ], - "if direct_sibling_gems.any? &&\n(direct_sibling_local ||": [ - { - "file": "Gemfile", - "lines": [ - 35, - 79, - 119 - ] - } - ], - "if direct_sibling_templating && !direct_sibling_local\nif direct_sibling_dev_was_set": [ - { - "file": "Gemfile", - "lines": [ - 69, - 109, - 149 - ] - } - ], - "nomono_activation_requirements = nomono_requirements\nnomono_lockfile = File.expand_path('Gemfile.lock', __dir__)": [ - { - "file": "Gemfile", - "lines": [ - 85, - 125 - ] - } - ], - "nomono_locked = nomono_locked_spec &&\nGem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version)": [ - { - "file": "Gemfile", - "lines": [ - 48, - 92, - 132 - ] - } - ], - "nomono_locked_spec = Bundler::LockfileParser\n.new(Bundler.read_file(nomono_lockfile))": [ - { - "file": "Gemfile", - "lines": [ - 44, - 88, - 128 - ] - } - ], - "nomono_lockfile = File.expand_path('Gemfile.lock', __dir__)\nif File.file?(nomono_lockfile)": [ - { - "file": "Gemfile", - "lines": [ - 86, - 126 - ] - } - ], - "path_env: 'STRUCTUREDMERGE_DEV',\nroot: %w[src my structuredmerge]": [ - { - "file": "Gemfile", - "lines": [ - 103, - 143 - ] - } - ], - "prefix: 'STRUCTUREDMERGE',\npath_env: 'STRUCTUREDMERGE_DEV',": [ - { - "file": "Gemfile", - "lines": [ - 102, - 142 - ] - } - ], - "require 'nomono/bundler'\nENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local": [ - { - "file": "Gemfile", - "lines": [ - 97, - 137 - ] - } - ], - "rescue LoadError\nwarn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.'": [ - { - "file": "Gemfile", - "lines": [ - 106, - 146 - ] - } - ] -} diff --git a/gems/bash-merge/Gemfile b/gems/bash-merge/Gemfile index c8860343f..d63bad96f 100644 --- a/gems/bash-merge/Gemfile +++ b/gems/bash-merge/Gemfile @@ -37,100 +37,8 @@ if direct_sibling_gems.any? && ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) + require 'nomono/bundler' begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local eval_nomono_gems( @@ -139,8 +47,6 @@ if direct_sibling_gems.any? && path_env: 'STRUCTUREDMERGE_DEV', root: %w[src my structuredmerge] ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' ensure if direct_sibling_templating && !direct_sibling_local if direct_sibling_dev_was_set diff --git a/gems/bash-merge/Gemfile.lock b/gems/bash-merge/Gemfile.lock index f0f8d9531..c08db9d56 100644 --- a/gems/bash-merge/Gemfile.lock +++ b/gems/bash-merge/Gemfile.lock @@ -136,7 +136,7 @@ GEM racc (~> 1.4) nokogiri (1.19.4-x86_64-linux-musl) racc (~> 1.4) - nomono (1.0.9) + nomono (1.1.0) openssl (4.0.2) ostruct (0.6.3) parallel (1.28.0) @@ -454,6 +454,7 @@ CHECKSUMS bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd + bundler (4.0.17) sha256=214e21431b5665dd2f99df8a5511c6b151d7a72e8015c8b38f8b775b61cbb6c1 bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 @@ -480,9 +481,9 @@ CHECKSUMS io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 - kettle-dev (2.3.9) + kettle-dev (2.3.9) sha256=03b2f72c6dda4d2c4401ee3c0c96853116c922766e7b5b04224434a49b571bfc kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f - kettle-soup-cover (3.0.4) + kettle-soup-cover (3.0.4) sha256=36d4df472362d2020d16411d7ce26ba2fe2a41fb8be64577ff9b5280acf99d86 kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa @@ -496,7 +497,7 @@ CHECKSUMS nokogiri (1.19.4-arm64-darwin) sha256=a46db9853286e6597b36ebc6953817d15acf3a299583eb3f89fdc6f91dd63527 nokogiri (1.19.4-x86_64-linux-gnu) sha256=379fae440b28915e3f19d752ce2dcf8465ed2b2fbefd2a7ca0dd497bc981a06a nokogiri (1.19.4-x86_64-linux-musl) sha256=17dfb7c1fa194ae02fbf7c51a7afc8d278045ab3fdacfd86f91d02d7b274470b - nomono (1.0.9) + nomono (1.1.0) sha256=463dd4c79da02a855739a1b5483190d527b7868688be905e84abdb3449b32c88 openssl (4.0.2) sha256=1037ad2868ae58df9ad917891c0c0f9815a1172f6846d4bcdd508e4c2ee747c2 ostruct (0.6.3) sha256=95a2ed4a4bd1d190784e666b47b2d3f078e4a9efda2fccf18f84ddc6538ed912 parallel (1.28.0) sha256=33e6de1484baf2524792d178b0913fc8eb94c628d6cfe45599ad4458c638c970 @@ -590,4 +591,4 @@ CHECKSUMS zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH - 4.0.16 + 4.0.17 diff --git a/gems/bash-merge/LICENSE.md b/gems/bash-merge/LICENSE.md index 6ad318705..65a770d1f 100644 --- a/gems/bash-merge/LICENSE.md +++ b/gems/bash-merge/LICENSE.md @@ -3,8 +3,8 @@ This project is made available under the following licenses. Choose the option that best fits your use case: -- [AGPL-3.0-only](AGPL-3.0-only.md) -- [PolyForm-Small-Business-1.0.0](PolyForm-Small-Business-1.0.0.md) +- [AGPL-3.0-only](https://github.com/structuredmerge/structuredmerge-ruby/blob/main/AGPL-3.0-only.md) +- [PolyForm-Small-Business-1.0.0](https://github.com/structuredmerge/structuredmerge-ruby/blob/main/PolyForm-Small-Business-1.0.0.md) If none of the above licenses fit your use case, please [contact us](mailto:floss@galtzo.com) to discuss a custom commercial license. diff --git a/gems/bash-merge/README.md b/gems/bash-merge/README.md index 1f1c39220..84b82b723 100644 --- a/gems/bash-merge/README.md +++ b/gems/bash-merge/README.md @@ -76,7 +76,7 @@ File.write("merged.sh", result.to_bash) |-------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | Works with MRI Ruby 4 | [![Ruby current Compat][💎ruby-c-i]][🚎11-c-wf]| | Support & Community | [![Join Me on Daily.dev's RubyFriends][✉️ruby-friends-img]][✉️ruby-friends] [![Get help from RubyForum][✉️ruby-forum-img]][✉️ruby-forum] [![Live Chat on Discord][✉️discord-invite-img-ftb]][✉️discord-invite] [![Get help from me on Upwork][👨🏼‍🏫expsup-upwork-img]][👨🏼‍🏫expsup-upwork] [![Get help from me on Codementor][👨🏼‍🏫expsup-codementor-img]][👨🏼‍🏫expsup-codementor] | -| Source | [![Source on GitLab.com][📜src-gl-img]][📜src-gl] [![Source on CodeBerg.org][📜src-cb-img]][📜src-cb] [![Source on Github.com][📜src-gh-img]][📜src-gh] [![The best SHA: dQw4w9WgXcQ!][🧮kloc-img]][🧮kloc] | +| Source | [![Source on GitLab.com][📜src-gl-img]][📜src-gl] [![Source on CodeBerg.org][📜src-cb-img]][📜src-cb] [![Source on GitHub.com][📜src-gh-img]][📜src-gh] [![The best SHA: dQw4w9WgXcQ!][🧮kloc-img]][🧮kloc] | | Documentation | [![Current release on RubyDoc.info][📜docs-cr-rd-img]][🚎yard-current] [![YARD on Galtzo.com][📜docs-head-rd-img]][🚎yard-head] [![Maintainer Blog][🚂maint-blog-img]][🚂maint-blog] [![GitLab Wiki][📜gl-wiki-img]][📜gl-wiki] [![GitHub Wiki][📜gh-wiki-img]][📜gh-wiki] | | Compliance | [![License: AGPL-3.0-only OR PolyForm-Small-Business-1.0.0][📄license-img]][📄license] [![Apache license compatibility: Category X][📄license-compat-img]][📄license-compat] [![📄ilo-declaration-img]][📄ilo-declaration] [![Security Policy][🔐security-img]][🔐security] [![Contributor Covenant 2.1][🪇conduct-img]][🪇conduct] [![SemVer 2.0.0][📌semver-img]][📌semver] | | Style | [![Enforced Code Style Linter][💎rlts-img]][💎rlts] [![Keep-A-Changelog 1.0.0][📗keep-changelog-img]][📗keep-changelog] [![Gitmoji Commits][📌gitmoji-img]][📌gitmoji] [![Compatibility appraised by: appraisal2][💎appraisal2-img]][💎appraisal2] | @@ -293,7 +293,7 @@ See [CHANGELOG.md][📌changelog] for a list of releases. ## 📄 License -The gem is available under the following licenses: [AGPL-3.0-only](AGPL-3.0-only.md), [PolyForm-Small-Business-1.0.0](PolyForm-Small-Business-1.0.0.md). +The gem is available under the following licenses: [AGPL-3.0-only](https://github.com/structuredmerge/structuredmerge-ruby/blob/main/AGPL-3.0-only.md), [PolyForm-Small-Business-1.0.0](https://github.com/structuredmerge/structuredmerge-ruby/blob/main/PolyForm-Small-Business-1.0.0.md). See [LICENSE.md][📄license] for details. If none of the available licenses suit your use case, please [contact us](mailto:floss@galtzo.com) to discuss a custom commercial license. @@ -365,7 +365,7 @@ If none of the available licenses suit your use case, please [contact us](mailto [📜src-gl]: https://gitlab.com/structuredmerge/structuredmerge-ruby/-/tree/main/gems/bash-merge [📜src-cb-img]: https://img.shields.io/badge/CodeBerg-4893CC?style=for-the-badge&logo=CodeBerg&logoColor=blue [📜src-cb]: https://codeberg.org/structuredmerge/structuredmerge-ruby/src/branch/main/gems/bash-merge -[📜src-gh-img]: https://img.shields.io/badge/GitHub-238636?style=for-the-badge&logo=Github&logoColor=green +[📜src-gh-img]: https://img.shields.io/badge/GitHub-238636?style=for-the-badge&logo=GitHub&logoColor=green [📜src-gh]: https://github.com/structuredmerge/structuredmerge-ruby/tree/main/gems/bash-merge [📜docs-cr-rd-img]: https://img.shields.io/badge/RubyDoc-Current_Release-943CD2?style=for-the-badge&logo=readthedocs&logoColor=white [📜docs-head-rd-img]: https://img.shields.io/badge/YARD_on_Galtzo.com-HEAD-943CD2?style=for-the-badge&logo=readthedocs&logoColor=white diff --git a/gems/bash-merge/gemfiles/modular/coverage_local.gemfile b/gems/bash-merge/gemfiles/modular/coverage_local.gemfile index 8ac9a4a35..e0339ae34 100644 --- a/gems/bash-merge/gemfiles/modular/coverage_local.gemfile +++ b/gems/bash-merge/gemfiles/modular/coverage_local.gemfile @@ -3,26 +3,6 @@ # Local path overrides for development. # Loaded by the associated non-local gemfile when KETTLE_DEV_DEV != "false". -# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. -# Bundler records that dependency during Gemfile evaluation, but it does not -# activate that exact version before the immediate `require "nomono/bundler"`. -# If multiple compatible nomono versions are installed, RubyGems may activate -# the newest installed version while Gemfile.lock pins an older compatible one; -# Bundler then aborts with "already activated nomono X, but your Gemfile -# requires nomono Y". Prefer the locked compatible version when present, then -# activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] -nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) -if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked -end -Kernel.send(:gem, 'nomono', *nomono_activation_requirements) require 'nomono/bundler' local_gems = %w[kettle-dev kettle-test kettle-soup-cover kettle-drift] diff --git a/gems/bash-merge/gemfiles/modular/documentation_local.gemfile b/gems/bash-merge/gemfiles/modular/documentation_local.gemfile index 844682e59..cd075e67e 100644 --- a/gems/bash-merge/gemfiles/modular/documentation_local.gemfile +++ b/gems/bash-merge/gemfiles/modular/documentation_local.gemfile @@ -3,26 +3,6 @@ # Local path overrides for development. # Loaded by the associated non-local gemfile when GALTZO_FLOSS_DEV != "false". -# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. -# Bundler records that dependency during Gemfile evaluation, but it does not -# activate that exact version before the immediate `require "nomono/bundler"`. -# If multiple compatible nomono versions are installed, RubyGems may activate -# the newest installed version while Gemfile.lock pins an older compatible one; -# Bundler then aborts with "already activated nomono X, but your Gemfile -# requires nomono Y". Prefer the locked compatible version when present, then -# activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] -nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) -if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked -end -Kernel.send(:gem, 'nomono', *nomono_activation_requirements) require 'nomono/bundler' local_gems = %w[yard-fence yard-timekeeper yard-yaml] diff --git a/gems/bash-merge/gemfiles/modular/style_local.gemfile b/gems/bash-merge/gemfiles/modular/style_local.gemfile index f507995c2..92e1027e1 100644 --- a/gems/bash-merge/gemfiles/modular/style_local.gemfile +++ b/gems/bash-merge/gemfiles/modular/style_local.gemfile @@ -6,26 +6,6 @@ # Local path overrides for development. # Loaded by the associated non-local gemfile when RUBOCOP_LTS_LOCAL != "false". -# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. -# Bundler records that dependency during Gemfile evaluation, but it does not -# activate that exact version before the immediate `require "nomono/bundler"`. -# If multiple compatible nomono versions are installed, RubyGems may activate -# the newest installed version while Gemfile.lock pins an older compatible one; -# Bundler then aborts with "already activated nomono X, but your Gemfile -# requires nomono Y". Prefer the locked compatible version when present, then -# activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] -nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) -if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked -end -Kernel.send(:gem, 'nomono', *nomono_activation_requirements) require 'nomono/bundler' local_gems = %w[rubocop-lts rubocop-lts-rspec rubocop-ruby3_2 standard-rubocop-lts] diff --git a/gems/bash-merge/gemfiles/modular/templating_local.gemfile b/gems/bash-merge/gemfiles/modular/templating_local.gemfile index 1607637e0..f8ee64dc9 100644 --- a/gems/bash-merge/gemfiles/modular/templating_local.gemfile +++ b/gems/bash-merge/gemfiles/modular/templating_local.gemfile @@ -4,26 +4,6 @@ # Loaded by the associated non-local gemfile when STRUCTUREDMERGE_DEV or KETTLE_DEV_DEV # is not "false". -# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. -# Bundler records that dependency during Gemfile evaluation, but it does not -# activate that exact version before the immediate `require "nomono/bundler"`. -# If multiple compatible nomono versions are installed, RubyGems may activate -# the newest installed version while Gemfile.lock pins an older compatible one; -# Bundler then aborts with "already activated nomono X, but your Gemfile -# requires nomono Y". Prefer the locked compatible version when present, then -# activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] -nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) -if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked -end -Kernel.send(:gem, 'nomono', *nomono_activation_requirements) require 'nomono/bundler' structuredmerge_local_gems = %w[ diff --git a/gems/binary-merge/.kettle-drift.lock b/gems/binary-merge/.kettle-drift.lock deleted file mode 100644 index 9a486b4b3..000000000 --- a/gems/binary-merge/.kettle-drift.lock +++ /dev/null @@ -1,188 +0,0 @@ -{ - "(direct_sibling_local ||\nENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?)": [ - { - "file": "Gemfile", - "lines": [ - 79, - 119 - ] - } - ], - ".find { |spec| spec.name == 'nomono' }\nnomono_locked = nomono_locked_spec &&": [ - { - "file": "Gemfile", - "lines": [ - 90, - 130 - ] - } - ], - "ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?)\ndirect_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV')": [ - { - "file": "Gemfile", - "lines": [ - 80, - 120 - ] - } - ], - "Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version)\nnomono_activation_requirements = [\"= #{nomono_locked_spec.version}\"] if nomono_locked": [ - { - "file": "Gemfile", - "lines": [ - 92, - 132 - ] - } - ], - "Kernel.send(:gem, 'nomono', *nomono_activation_requirements)\nrequire 'nomono/bundler'": [ - { - "file": "Gemfile", - "lines": [ - 95, - 135 - ] - } - ], - "direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV')\ndirect_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil)": [ - { - "file": "Gemfile", - "lines": [ - 81, - 121 - ] - } - ], - "eval_nomono_gems(\ngems: direct_sibling_gems,": [ - { - "file": "Gemfile", - "lines": [ - 59, - 99, - 139 - ] - } - ], - "gems: direct_sibling_gems,\nprefix: 'STRUCTUREDMERGE',": [ - { - "file": "Gemfile", - "lines": [ - 100, - 140 - ] - } - ], - "if File.file?(nomono_lockfile)\nnomono_locked_spec = Bundler::LockfileParser": [ - { - "file": "Gemfile", - "lines": [ - 42, - 86, - 126 - ] - } - ], - "if direct_sibling_dev_was_set\nENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original": [ - { - "file": "Gemfile", - "lines": [ - 109, - 149 - ] - } - ], - "if direct_sibling_gems.any? &&\n(direct_sibling_local ||": [ - { - "file": "Gemfile", - "lines": [ - 34, - 78, - 118 - ] - } - ], - "if direct_sibling_templating && !direct_sibling_local\nif direct_sibling_dev_was_set": [ - { - "file": "Gemfile", - "lines": [ - 68, - 108, - 148 - ] - } - ], - "nomono_activation_requirements = nomono_requirements\nnomono_lockfile = File.expand_path('Gemfile.lock', __dir__)": [ - { - "file": "Gemfile", - "lines": [ - 84, - 124 - ] - } - ], - "nomono_locked = nomono_locked_spec &&\nGem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version)": [ - { - "file": "Gemfile", - "lines": [ - 47, - 91, - 131 - ] - } - ], - "nomono_locked_spec = Bundler::LockfileParser\n.new(Bundler.read_file(nomono_lockfile))": [ - { - "file": "Gemfile", - "lines": [ - 43, - 87, - 127 - ] - } - ], - "nomono_lockfile = File.expand_path('Gemfile.lock', __dir__)\nif File.file?(nomono_lockfile)": [ - { - "file": "Gemfile", - "lines": [ - 85, - 125 - ] - } - ], - "path_env: 'STRUCTUREDMERGE_DEV',\nroot: %w[src my structuredmerge]": [ - { - "file": "Gemfile", - "lines": [ - 102, - 142 - ] - } - ], - "prefix: 'STRUCTUREDMERGE',\npath_env: 'STRUCTUREDMERGE_DEV',": [ - { - "file": "Gemfile", - "lines": [ - 101, - 141 - ] - } - ], - "require 'nomono/bundler'\nENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local": [ - { - "file": "Gemfile", - "lines": [ - 96, - 136 - ] - } - ], - "rescue LoadError\nwarn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.'": [ - { - "file": "Gemfile", - "lines": [ - 105, - 145 - ] - } - ] -} diff --git a/gems/binary-merge/Gemfile b/gems/binary-merge/Gemfile index cced02665..2b5f7f621 100644 --- a/gems/binary-merge/Gemfile +++ b/gems/binary-merge/Gemfile @@ -36,100 +36,8 @@ if direct_sibling_gems.any? && ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) + require 'nomono/bundler' begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local eval_nomono_gems( @@ -138,8 +46,6 @@ if direct_sibling_gems.any? && path_env: 'STRUCTUREDMERGE_DEV', root: %w[src my structuredmerge] ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' ensure if direct_sibling_templating && !direct_sibling_local if direct_sibling_dev_was_set diff --git a/gems/binary-merge/Gemfile.lock b/gems/binary-merge/Gemfile.lock index b48e4b1db..fbcb3ea41 100644 --- a/gems/binary-merge/Gemfile.lock +++ b/gems/binary-merge/Gemfile.lock @@ -130,7 +130,7 @@ GEM racc (~> 1.4) nokogiri (1.19.4-x86_64-linux-musl) racc (~> 1.4) - nomono (1.0.9) + nomono (1.1.0) openssl (4.0.2) ostruct (0.6.3) parallel (1.28.0) @@ -443,6 +443,7 @@ CHECKSUMS benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd binary-merge (7.1.0) + bundler (4.0.17) sha256=214e21431b5665dd2f99df8a5511c6b151d7a72e8015c8b38f8b775b61cbb6c1 bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 @@ -469,9 +470,9 @@ CHECKSUMS io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 - kettle-dev (2.3.9) + kettle-dev (2.3.9) sha256=03b2f72c6dda4d2c4401ee3c0c96853116c922766e7b5b04224434a49b571bfc kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f - kettle-soup-cover (3.0.4) + kettle-soup-cover (3.0.4) sha256=36d4df472362d2020d16411d7ce26ba2fe2a41fb8be64577ff9b5280acf99d86 kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa @@ -485,7 +486,7 @@ CHECKSUMS nokogiri (1.19.4-arm64-darwin) sha256=a46db9853286e6597b36ebc6953817d15acf3a299583eb3f89fdc6f91dd63527 nokogiri (1.19.4-x86_64-linux-gnu) sha256=379fae440b28915e3f19d752ce2dcf8465ed2b2fbefd2a7ca0dd497bc981a06a nokogiri (1.19.4-x86_64-linux-musl) sha256=17dfb7c1fa194ae02fbf7c51a7afc8d278045ab3fdacfd86f91d02d7b274470b - nomono (1.0.9) + nomono (1.1.0) sha256=463dd4c79da02a855739a1b5483190d527b7868688be905e84abdb3449b32c88 openssl (4.0.2) sha256=1037ad2868ae58df9ad917891c0c0f9815a1172f6846d4bcdd508e4c2ee747c2 ostruct (0.6.3) sha256=95a2ed4a4bd1d190784e666b47b2d3f078e4a9efda2fccf18f84ddc6538ed912 parallel (1.28.0) sha256=33e6de1484baf2524792d178b0913fc8eb94c628d6cfe45599ad4458c638c970 @@ -578,4 +579,4 @@ CHECKSUMS zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH - 4.0.16 + 4.0.17 diff --git a/gems/binary-merge/LICENSE.md b/gems/binary-merge/LICENSE.md index 6ad318705..65a770d1f 100644 --- a/gems/binary-merge/LICENSE.md +++ b/gems/binary-merge/LICENSE.md @@ -3,8 +3,8 @@ This project is made available under the following licenses. Choose the option that best fits your use case: -- [AGPL-3.0-only](AGPL-3.0-only.md) -- [PolyForm-Small-Business-1.0.0](PolyForm-Small-Business-1.0.0.md) +- [AGPL-3.0-only](https://github.com/structuredmerge/structuredmerge-ruby/blob/main/AGPL-3.0-only.md) +- [PolyForm-Small-Business-1.0.0](https://github.com/structuredmerge/structuredmerge-ruby/blob/main/PolyForm-Small-Business-1.0.0.md) If none of the above licenses fit your use case, please [contact us](mailto:floss@galtzo.com) to discuss a custom commercial license. diff --git a/gems/binary-merge/README.md b/gems/binary-merge/README.md index ae58eccfb..d4847be52 100644 --- a/gems/binary-merge/README.md +++ b/gems/binary-merge/README.md @@ -36,7 +36,7 @@ I've summarized my thoughts in [this blog post](https://dev.to/galtzo/hostile-ta |-------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | Works with MRI Ruby 4 | [![Ruby current Compat][💎ruby-c-i]][🚎11-c-wf]| | Support & Community | [![Join Me on Daily.dev's RubyFriends][✉️ruby-friends-img]][✉️ruby-friends] [![Get help from RubyForum][✉️ruby-forum-img]][✉️ruby-forum] [![Live Chat on Discord][✉️discord-invite-img-ftb]][✉️discord-invite] [![Get help from me on Upwork][👨🏼‍🏫expsup-upwork-img]][👨🏼‍🏫expsup-upwork] [![Get help from me on Codementor][👨🏼‍🏫expsup-codementor-img]][👨🏼‍🏫expsup-codementor] | -| Source | [![Source on GitLab.com][📜src-gl-img]][📜src-gl] [![Source on CodeBerg.org][📜src-cb-img]][📜src-cb] [![Source on Github.com][📜src-gh-img]][📜src-gh] [![The best SHA: dQw4w9WgXcQ!][🧮kloc-img]][🧮kloc] | +| Source | [![Source on GitLab.com][📜src-gl-img]][📜src-gl] [![Source on CodeBerg.org][📜src-cb-img]][📜src-cb] [![Source on GitHub.com][📜src-gh-img]][📜src-gh] [![The best SHA: dQw4w9WgXcQ!][🧮kloc-img]][🧮kloc] | | Documentation | [![Current release on RubyDoc.info][📜docs-cr-rd-img]][🚎yard-current] [![YARD on Galtzo.com][📜docs-head-rd-img]][🚎yard-head] [![Maintainer Blog][🚂maint-blog-img]][🚂maint-blog] [![GitLab Wiki][📜gl-wiki-img]][📜gl-wiki] [![GitHub Wiki][📜gh-wiki-img]][📜gh-wiki] | | Compliance | [![License: AGPL-3.0-only OR PolyForm-Small-Business-1.0.0][📄license-img]][📄license] [![Apache license compatibility: Category X][📄license-compat-img]][📄license-compat] [![📄ilo-declaration-img]][📄ilo-declaration] [![Security Policy][🔐security-img]][🔐security] [![Contributor Covenant 2.1][🪇conduct-img]][🪇conduct] [![SemVer 2.0.0][📌semver-img]][📌semver] | | Style | [![Enforced Code Style Linter][💎rlts-img]][💎rlts] [![Keep-A-Changelog 1.0.0][📗keep-changelog-img]][📗keep-changelog] [![Gitmoji Commits][📌gitmoji-img]][📌gitmoji] [![Compatibility appraised by: appraisal2][💎appraisal2-img]][💎appraisal2] | @@ -148,7 +148,7 @@ See [CHANGELOG.md][📌changelog] for a list of releases. ## 📄 License -The gem is available under the following licenses: [AGPL-3.0-only](AGPL-3.0-only.md), [PolyForm-Small-Business-1.0.0](PolyForm-Small-Business-1.0.0.md). +The gem is available under the following licenses: [AGPL-3.0-only](https://github.com/structuredmerge/structuredmerge-ruby/blob/main/AGPL-3.0-only.md), [PolyForm-Small-Business-1.0.0](https://github.com/structuredmerge/structuredmerge-ruby/blob/main/PolyForm-Small-Business-1.0.0.md). See [LICENSE.md][📄license] for details. If none of the available licenses suit your use case, please [contact us](mailto:floss@galtzo.com) to discuss a custom commercial license. @@ -220,7 +220,7 @@ If none of the available licenses suit your use case, please [contact us](mailto [📜src-gl]: https://gitlab.com/structuredmerge/structuredmerge-ruby/-/tree/main/gems/binary-merge [📜src-cb-img]: https://img.shields.io/badge/CodeBerg-4893CC?style=for-the-badge&logo=CodeBerg&logoColor=blue [📜src-cb]: https://codeberg.org/structuredmerge/structuredmerge-ruby/src/branch/main/gems/binary-merge -[📜src-gh-img]: https://img.shields.io/badge/GitHub-238636?style=for-the-badge&logo=Github&logoColor=green +[📜src-gh-img]: https://img.shields.io/badge/GitHub-238636?style=for-the-badge&logo=GitHub&logoColor=green [📜src-gh]: https://github.com/structuredmerge/structuredmerge-ruby/tree/main/gems/binary-merge [📜docs-cr-rd-img]: https://img.shields.io/badge/RubyDoc-Current_Release-943CD2?style=for-the-badge&logo=readthedocs&logoColor=white [📜docs-head-rd-img]: https://img.shields.io/badge/YARD_on_Galtzo.com-HEAD-943CD2?style=for-the-badge&logo=readthedocs&logoColor=white diff --git a/gems/binary-merge/gemfiles/modular/coverage_local.gemfile b/gems/binary-merge/gemfiles/modular/coverage_local.gemfile index c8874fd0f..ab58964d2 100644 --- a/gems/binary-merge/gemfiles/modular/coverage_local.gemfile +++ b/gems/binary-merge/gemfiles/modular/coverage_local.gemfile @@ -3,26 +3,6 @@ # Local path overrides for development. # Loaded by the associated non-local gemfile when KETTLE_DEV_DEV != "false". -# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. -# Bundler records that dependency during Gemfile evaluation, but it does not -# activate that exact version before the immediate `require "nomono/bundler"`. -# If multiple compatible nomono versions are installed, RubyGems may activate -# the newest installed version while Gemfile.lock pins an older compatible one; -# Bundler then aborts with "already activated nomono X, but your Gemfile -# requires nomono Y". Prefer the locked compatible version when present, then -# activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] -nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) -if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked -end -Kernel.send(:gem, 'nomono', *nomono_activation_requirements) require 'nomono/bundler' local_gems = %w[kettle-dev kettle-test kettle-soup-cover kettle-drift] diff --git a/gems/binary-merge/gemfiles/modular/documentation_local.gemfile b/gems/binary-merge/gemfiles/modular/documentation_local.gemfile index 3ee4ecd47..0c55469d1 100644 --- a/gems/binary-merge/gemfiles/modular/documentation_local.gemfile +++ b/gems/binary-merge/gemfiles/modular/documentation_local.gemfile @@ -3,26 +3,6 @@ # Local path overrides for development. # Loaded by the associated non-local gemfile when GALTZO_FLOSS_DEV != "false". -# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. -# Bundler records that dependency during Gemfile evaluation, but it does not -# activate that exact version before the immediate `require "nomono/bundler"`. -# If multiple compatible nomono versions are installed, RubyGems may activate -# the newest installed version while Gemfile.lock pins an older compatible one; -# Bundler then aborts with "already activated nomono X, but your Gemfile -# requires nomono Y". Prefer the locked compatible version when present, then -# activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] -nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) -if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked -end -Kernel.send(:gem, 'nomono', *nomono_activation_requirements) require 'nomono/bundler' local_gems = %w[yard-fence yard-timekeeper yard-yaml] diff --git a/gems/binary-merge/gemfiles/modular/style_local.gemfile b/gems/binary-merge/gemfiles/modular/style_local.gemfile index 3f95e6d26..b72f13b98 100644 --- a/gems/binary-merge/gemfiles/modular/style_local.gemfile +++ b/gems/binary-merge/gemfiles/modular/style_local.gemfile @@ -6,26 +6,6 @@ # Local path overrides for development. # Loaded by the associated non-local gemfile when RUBOCOP_LTS_LOCAL != "false". -# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. -# Bundler records that dependency during Gemfile evaluation, but it does not -# activate that exact version before the immediate `require "nomono/bundler"`. -# If multiple compatible nomono versions are installed, RubyGems may activate -# the newest installed version while Gemfile.lock pins an older compatible one; -# Bundler then aborts with "already activated nomono X, but your Gemfile -# requires nomono Y". Prefer the locked compatible version when present, then -# activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] -nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) -if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked -end -Kernel.send(:gem, 'nomono', *nomono_activation_requirements) require 'nomono/bundler' local_gems = %w[rubocop-lts rubocop-lts-rspec rubocop-ruby3_2 standard-rubocop-lts] diff --git a/gems/binary-merge/gemfiles/modular/templating_local.gemfile b/gems/binary-merge/gemfiles/modular/templating_local.gemfile index d61b5694f..eb853982c 100644 --- a/gems/binary-merge/gemfiles/modular/templating_local.gemfile +++ b/gems/binary-merge/gemfiles/modular/templating_local.gemfile @@ -4,26 +4,6 @@ # Loaded by the associated non-local gemfile when STRUCTUREDMERGE_DEV or KETTLE_DEV_DEV # is not "false". -# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. -# Bundler records that dependency during Gemfile evaluation, but it does not -# activate that exact version before the immediate `require "nomono/bundler"`. -# If multiple compatible nomono versions are installed, RubyGems may activate -# the newest installed version while Gemfile.lock pins an older compatible one; -# Bundler then aborts with "already activated nomono X, but your Gemfile -# requires nomono Y". Prefer the locked compatible version when present, then -# activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] -nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) -if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked -end -Kernel.send(:gem, 'nomono', *nomono_activation_requirements) require 'nomono/bundler' structuredmerge_local_gems = %w[ diff --git a/gems/citrus-toml-merge/.kettle-drift.lock b/gems/citrus-toml-merge/.kettle-drift.lock deleted file mode 100644 index 9a486b4b3..000000000 --- a/gems/citrus-toml-merge/.kettle-drift.lock +++ /dev/null @@ -1,188 +0,0 @@ -{ - "(direct_sibling_local ||\nENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?)": [ - { - "file": "Gemfile", - "lines": [ - 79, - 119 - ] - } - ], - ".find { |spec| spec.name == 'nomono' }\nnomono_locked = nomono_locked_spec &&": [ - { - "file": "Gemfile", - "lines": [ - 90, - 130 - ] - } - ], - "ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?)\ndirect_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV')": [ - { - "file": "Gemfile", - "lines": [ - 80, - 120 - ] - } - ], - "Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version)\nnomono_activation_requirements = [\"= #{nomono_locked_spec.version}\"] if nomono_locked": [ - { - "file": "Gemfile", - "lines": [ - 92, - 132 - ] - } - ], - "Kernel.send(:gem, 'nomono', *nomono_activation_requirements)\nrequire 'nomono/bundler'": [ - { - "file": "Gemfile", - "lines": [ - 95, - 135 - ] - } - ], - "direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV')\ndirect_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil)": [ - { - "file": "Gemfile", - "lines": [ - 81, - 121 - ] - } - ], - "eval_nomono_gems(\ngems: direct_sibling_gems,": [ - { - "file": "Gemfile", - "lines": [ - 59, - 99, - 139 - ] - } - ], - "gems: direct_sibling_gems,\nprefix: 'STRUCTUREDMERGE',": [ - { - "file": "Gemfile", - "lines": [ - 100, - 140 - ] - } - ], - "if File.file?(nomono_lockfile)\nnomono_locked_spec = Bundler::LockfileParser": [ - { - "file": "Gemfile", - "lines": [ - 42, - 86, - 126 - ] - } - ], - "if direct_sibling_dev_was_set\nENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original": [ - { - "file": "Gemfile", - "lines": [ - 109, - 149 - ] - } - ], - "if direct_sibling_gems.any? &&\n(direct_sibling_local ||": [ - { - "file": "Gemfile", - "lines": [ - 34, - 78, - 118 - ] - } - ], - "if direct_sibling_templating && !direct_sibling_local\nif direct_sibling_dev_was_set": [ - { - "file": "Gemfile", - "lines": [ - 68, - 108, - 148 - ] - } - ], - "nomono_activation_requirements = nomono_requirements\nnomono_lockfile = File.expand_path('Gemfile.lock', __dir__)": [ - { - "file": "Gemfile", - "lines": [ - 84, - 124 - ] - } - ], - "nomono_locked = nomono_locked_spec &&\nGem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version)": [ - { - "file": "Gemfile", - "lines": [ - 47, - 91, - 131 - ] - } - ], - "nomono_locked_spec = Bundler::LockfileParser\n.new(Bundler.read_file(nomono_lockfile))": [ - { - "file": "Gemfile", - "lines": [ - 43, - 87, - 127 - ] - } - ], - "nomono_lockfile = File.expand_path('Gemfile.lock', __dir__)\nif File.file?(nomono_lockfile)": [ - { - "file": "Gemfile", - "lines": [ - 85, - 125 - ] - } - ], - "path_env: 'STRUCTUREDMERGE_DEV',\nroot: %w[src my structuredmerge]": [ - { - "file": "Gemfile", - "lines": [ - 102, - 142 - ] - } - ], - "prefix: 'STRUCTUREDMERGE',\npath_env: 'STRUCTUREDMERGE_DEV',": [ - { - "file": "Gemfile", - "lines": [ - 101, - 141 - ] - } - ], - "require 'nomono/bundler'\nENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local": [ - { - "file": "Gemfile", - "lines": [ - 96, - 136 - ] - } - ], - "rescue LoadError\nwarn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.'": [ - { - "file": "Gemfile", - "lines": [ - 105, - 145 - ] - } - ] -} diff --git a/gems/citrus-toml-merge/Gemfile b/gems/citrus-toml-merge/Gemfile index 4fb28da29..44413c221 100644 --- a/gems/citrus-toml-merge/Gemfile +++ b/gems/citrus-toml-merge/Gemfile @@ -36,100 +36,8 @@ if direct_sibling_gems.any? && ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) + require 'nomono/bundler' begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local eval_nomono_gems( @@ -138,8 +46,6 @@ if direct_sibling_gems.any? && path_env: 'STRUCTUREDMERGE_DEV', root: %w[src my structuredmerge] ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' ensure if direct_sibling_templating && !direct_sibling_local if direct_sibling_dev_was_set diff --git a/gems/citrus-toml-merge/Gemfile.lock b/gems/citrus-toml-merge/Gemfile.lock index d7c06b539..b0fad6c67 100644 --- a/gems/citrus-toml-merge/Gemfile.lock +++ b/gems/citrus-toml-merge/Gemfile.lock @@ -128,7 +128,7 @@ GEM mutex_m (0.3.0) nokogiri (1.19.4-x86_64-linux-gnu) racc (~> 1.4) - nomono (1.0.9) + nomono (1.1.0) openssl (4.0.2) ostruct (0.6.3) parallel (1.28.0) @@ -442,6 +442,7 @@ CHECKSUMS backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd + bundler (4.0.17) sha256=214e21431b5665dd2f99df8a5511c6b151d7a72e8015c8b38f8b775b61cbb6c1 bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 @@ -469,9 +470,9 @@ CHECKSUMS io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 - kettle-dev (2.3.9) + kettle-dev (2.3.9) sha256=03b2f72c6dda4d2c4401ee3c0c96853116c922766e7b5b04224434a49b571bfc kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f - kettle-soup-cover (3.0.4) + kettle-soup-cover (3.0.4) sha256=36d4df472362d2020d16411d7ce26ba2fe2a41fb8be64577ff9b5280acf99d86 kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa @@ -481,7 +482,7 @@ CHECKSUMS logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-x86_64-linux-gnu) sha256=379fae440b28915e3f19d752ce2dcf8465ed2b2fbefd2a7ca0dd497bc981a06a - nomono (1.0.9) + nomono (1.1.0) sha256=463dd4c79da02a855739a1b5483190d527b7868688be905e84abdb3449b32c88 openssl (4.0.2) sha256=1037ad2868ae58df9ad917891c0c0f9815a1172f6846d4bcdd508e4c2ee747c2 ostruct (0.6.3) sha256=95a2ed4a4bd1d190784e666b47b2d3f078e4a9efda2fccf18f84ddc6538ed912 parallel (1.28.0) sha256=33e6de1484baf2524792d178b0913fc8eb94c628d6cfe45599ad4458c638c970 @@ -575,4 +576,4 @@ CHECKSUMS zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH - 4.0.16 + 4.0.17 diff --git a/gems/citrus-toml-merge/LICENSE.md b/gems/citrus-toml-merge/LICENSE.md index 6ad318705..65a770d1f 100644 --- a/gems/citrus-toml-merge/LICENSE.md +++ b/gems/citrus-toml-merge/LICENSE.md @@ -3,8 +3,8 @@ This project is made available under the following licenses. Choose the option that best fits your use case: -- [AGPL-3.0-only](AGPL-3.0-only.md) -- [PolyForm-Small-Business-1.0.0](PolyForm-Small-Business-1.0.0.md) +- [AGPL-3.0-only](https://github.com/structuredmerge/structuredmerge-ruby/blob/main/AGPL-3.0-only.md) +- [PolyForm-Small-Business-1.0.0](https://github.com/structuredmerge/structuredmerge-ruby/blob/main/PolyForm-Small-Business-1.0.0.md) If none of the above licenses fit your use case, please [contact us](mailto:floss@galtzo.com) to discuss a custom commercial license. diff --git a/gems/citrus-toml-merge/README.md b/gems/citrus-toml-merge/README.md index 91a46d4a1..ff5c73ad1 100644 --- a/gems/citrus-toml-merge/README.md +++ b/gems/citrus-toml-merge/README.md @@ -37,7 +37,7 @@ I've summarized my thoughts in [this blog post](https://dev.to/galtzo/hostile-ta |-------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | Works with MRI Ruby 4 | [![Ruby current Compat][💎ruby-c-i]][🚎11-c-wf]| | Support & Community | [![Join Me on Daily.dev's RubyFriends][✉️ruby-friends-img]][✉️ruby-friends] [![Get help from RubyForum][✉️ruby-forum-img]][✉️ruby-forum] [![Live Chat on Discord][✉️discord-invite-img-ftb]][✉️discord-invite] [![Get help from me on Upwork][👨🏼‍🏫expsup-upwork-img]][👨🏼‍🏫expsup-upwork] [![Get help from me on Codementor][👨🏼‍🏫expsup-codementor-img]][👨🏼‍🏫expsup-codementor] | -| Source | [![Source on GitLab.com][📜src-gl-img]][📜src-gl] [![Source on CodeBerg.org][📜src-cb-img]][📜src-cb] [![Source on Github.com][📜src-gh-img]][📜src-gh] [![The best SHA: dQw4w9WgXcQ!][🧮kloc-img]][🧮kloc] | +| Source | [![Source on GitLab.com][📜src-gl-img]][📜src-gl] [![Source on CodeBerg.org][📜src-cb-img]][📜src-cb] [![Source on GitHub.com][📜src-gh-img]][📜src-gh] [![The best SHA: dQw4w9WgXcQ!][🧮kloc-img]][🧮kloc] | | Documentation | [![Current release on RubyDoc.info][📜docs-cr-rd-img]][🚎yard-current] [![YARD on Galtzo.com][📜docs-head-rd-img]][🚎yard-head] [![Maintainer Blog][🚂maint-blog-img]][🚂maint-blog] [![GitLab Wiki][📜gl-wiki-img]][📜gl-wiki] [![GitHub Wiki][📜gh-wiki-img]][📜gh-wiki] | | Compliance | [![License: AGPL-3.0-only OR PolyForm-Small-Business-1.0.0][📄license-img]][📄license] [![Apache license compatibility: Category X][📄license-compat-img]][📄license-compat] [![📄ilo-declaration-img]][📄ilo-declaration] [![Security Policy][🔐security-img]][🔐security] [![Contributor Covenant 2.1][🪇conduct-img]][🪇conduct] [![SemVer 2.0.0][📌semver-img]][📌semver] | | Style | [![Enforced Code Style Linter][💎rlts-img]][💎rlts] [![Keep-A-Changelog 1.0.0][📗keep-changelog-img]][📗keep-changelog] [![Gitmoji Commits][📌gitmoji-img]][📌gitmoji] [![Compatibility appraised by: appraisal2][💎appraisal2-img]][💎appraisal2] | @@ -155,7 +155,7 @@ See [CHANGELOG.md][📌changelog] for a list of releases. ## 📄 License -The gem is available under the following licenses: [AGPL-3.0-only](AGPL-3.0-only.md), [PolyForm-Small-Business-1.0.0](PolyForm-Small-Business-1.0.0.md). +The gem is available under the following licenses: [AGPL-3.0-only](https://github.com/structuredmerge/structuredmerge-ruby/blob/main/AGPL-3.0-only.md), [PolyForm-Small-Business-1.0.0](https://github.com/structuredmerge/structuredmerge-ruby/blob/main/PolyForm-Small-Business-1.0.0.md). See [LICENSE.md][📄license] for details. If none of the available licenses suit your use case, please [contact us](mailto:floss@galtzo.com) to discuss a custom commercial license. @@ -227,7 +227,7 @@ If none of the available licenses suit your use case, please [contact us](mailto [📜src-gl]: https://gitlab.com/structuredmerge/structuredmerge-ruby/-/tree/main/gems/citrus-toml-merge [📜src-cb-img]: https://img.shields.io/badge/CodeBerg-4893CC?style=for-the-badge&logo=CodeBerg&logoColor=blue [📜src-cb]: https://codeberg.org/structuredmerge/structuredmerge-ruby/src/branch/main/gems/citrus-toml-merge -[📜src-gh-img]: https://img.shields.io/badge/GitHub-238636?style=for-the-badge&logo=Github&logoColor=green +[📜src-gh-img]: https://img.shields.io/badge/GitHub-238636?style=for-the-badge&logo=GitHub&logoColor=green [📜src-gh]: https://github.com/structuredmerge/structuredmerge-ruby/tree/main/gems/citrus-toml-merge [📜docs-cr-rd-img]: https://img.shields.io/badge/RubyDoc-Current_Release-943CD2?style=for-the-badge&logo=readthedocs&logoColor=white [📜docs-head-rd-img]: https://img.shields.io/badge/YARD_on_Galtzo.com-HEAD-943CD2?style=for-the-badge&logo=readthedocs&logoColor=white diff --git a/gems/citrus-toml-merge/gemfiles/modular/coverage_local.gemfile b/gems/citrus-toml-merge/gemfiles/modular/coverage_local.gemfile index 89702c538..c1c13016f 100644 --- a/gems/citrus-toml-merge/gemfiles/modular/coverage_local.gemfile +++ b/gems/citrus-toml-merge/gemfiles/modular/coverage_local.gemfile @@ -3,26 +3,6 @@ # Local path overrides for development. # Loaded by the associated non-local gemfile when KETTLE_DEV_DEV != "false". -# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. -# Bundler records that dependency during Gemfile evaluation, but it does not -# activate that exact version before the immediate `require "nomono/bundler"`. -# If multiple compatible nomono versions are installed, RubyGems may activate -# the newest installed version while Gemfile.lock pins an older compatible one; -# Bundler then aborts with "already activated nomono X, but your Gemfile -# requires nomono Y". Prefer the locked compatible version when present, then -# activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] -nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) -if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked -end -Kernel.send(:gem, 'nomono', *nomono_activation_requirements) require 'nomono/bundler' local_gems = %w[kettle-dev kettle-test kettle-soup-cover kettle-drift] diff --git a/gems/citrus-toml-merge/gemfiles/modular/documentation_local.gemfile b/gems/citrus-toml-merge/gemfiles/modular/documentation_local.gemfile index bbd6f96c8..6178e151b 100644 --- a/gems/citrus-toml-merge/gemfiles/modular/documentation_local.gemfile +++ b/gems/citrus-toml-merge/gemfiles/modular/documentation_local.gemfile @@ -3,26 +3,6 @@ # Local path overrides for development. # Loaded by the associated non-local gemfile when GALTZO_FLOSS_DEV != "false". -# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. -# Bundler records that dependency during Gemfile evaluation, but it does not -# activate that exact version before the immediate `require "nomono/bundler"`. -# If multiple compatible nomono versions are installed, RubyGems may activate -# the newest installed version while Gemfile.lock pins an older compatible one; -# Bundler then aborts with "already activated nomono X, but your Gemfile -# requires nomono Y". Prefer the locked compatible version when present, then -# activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] -nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) -if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked -end -Kernel.send(:gem, 'nomono', *nomono_activation_requirements) require 'nomono/bundler' local_gems = %w[yard-fence yard-timekeeper yard-yaml] diff --git a/gems/citrus-toml-merge/gemfiles/modular/style_local.gemfile b/gems/citrus-toml-merge/gemfiles/modular/style_local.gemfile index 29d2add9f..7300ff6dd 100644 --- a/gems/citrus-toml-merge/gemfiles/modular/style_local.gemfile +++ b/gems/citrus-toml-merge/gemfiles/modular/style_local.gemfile @@ -6,26 +6,6 @@ # Local path overrides for development. # Loaded by the associated non-local gemfile when RUBOCOP_LTS_LOCAL != "false". -# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. -# Bundler records that dependency during Gemfile evaluation, but it does not -# activate that exact version before the immediate `require "nomono/bundler"`. -# If multiple compatible nomono versions are installed, RubyGems may activate -# the newest installed version while Gemfile.lock pins an older compatible one; -# Bundler then aborts with "already activated nomono X, but your Gemfile -# requires nomono Y". Prefer the locked compatible version when present, then -# activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] -nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) -if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked -end -Kernel.send(:gem, 'nomono', *nomono_activation_requirements) require 'nomono/bundler' local_gems = %w[rubocop-lts rubocop-lts-rspec rubocop-ruby3_2 standard-rubocop-lts] diff --git a/gems/citrus-toml-merge/gemfiles/modular/templating_local.gemfile b/gems/citrus-toml-merge/gemfiles/modular/templating_local.gemfile index f59e32e90..097c8e84b 100644 --- a/gems/citrus-toml-merge/gemfiles/modular/templating_local.gemfile +++ b/gems/citrus-toml-merge/gemfiles/modular/templating_local.gemfile @@ -4,26 +4,6 @@ # Loaded by the associated non-local gemfile when STRUCTUREDMERGE_DEV or KETTLE_DEV_DEV # is not "false". -# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. -# Bundler records that dependency during Gemfile evaluation, but it does not -# activate that exact version before the immediate `require "nomono/bundler"`. -# If multiple compatible nomono versions are installed, RubyGems may activate -# the newest installed version while Gemfile.lock pins an older compatible one; -# Bundler then aborts with "already activated nomono X, but your Gemfile -# requires nomono Y". Prefer the locked compatible version when present, then -# activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] -nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) -if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked -end -Kernel.send(:gem, 'nomono', *nomono_activation_requirements) require 'nomono/bundler' structuredmerge_local_gems = %w[ diff --git a/gems/commonmarker-merge/.kettle-drift.lock b/gems/commonmarker-merge/.kettle-drift.lock deleted file mode 100644 index 9a486b4b3..000000000 --- a/gems/commonmarker-merge/.kettle-drift.lock +++ /dev/null @@ -1,188 +0,0 @@ -{ - "(direct_sibling_local ||\nENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?)": [ - { - "file": "Gemfile", - "lines": [ - 79, - 119 - ] - } - ], - ".find { |spec| spec.name == 'nomono' }\nnomono_locked = nomono_locked_spec &&": [ - { - "file": "Gemfile", - "lines": [ - 90, - 130 - ] - } - ], - "ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?)\ndirect_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV')": [ - { - "file": "Gemfile", - "lines": [ - 80, - 120 - ] - } - ], - "Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version)\nnomono_activation_requirements = [\"= #{nomono_locked_spec.version}\"] if nomono_locked": [ - { - "file": "Gemfile", - "lines": [ - 92, - 132 - ] - } - ], - "Kernel.send(:gem, 'nomono', *nomono_activation_requirements)\nrequire 'nomono/bundler'": [ - { - "file": "Gemfile", - "lines": [ - 95, - 135 - ] - } - ], - "direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV')\ndirect_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil)": [ - { - "file": "Gemfile", - "lines": [ - 81, - 121 - ] - } - ], - "eval_nomono_gems(\ngems: direct_sibling_gems,": [ - { - "file": "Gemfile", - "lines": [ - 59, - 99, - 139 - ] - } - ], - "gems: direct_sibling_gems,\nprefix: 'STRUCTUREDMERGE',": [ - { - "file": "Gemfile", - "lines": [ - 100, - 140 - ] - } - ], - "if File.file?(nomono_lockfile)\nnomono_locked_spec = Bundler::LockfileParser": [ - { - "file": "Gemfile", - "lines": [ - 42, - 86, - 126 - ] - } - ], - "if direct_sibling_dev_was_set\nENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original": [ - { - "file": "Gemfile", - "lines": [ - 109, - 149 - ] - } - ], - "if direct_sibling_gems.any? &&\n(direct_sibling_local ||": [ - { - "file": "Gemfile", - "lines": [ - 34, - 78, - 118 - ] - } - ], - "if direct_sibling_templating && !direct_sibling_local\nif direct_sibling_dev_was_set": [ - { - "file": "Gemfile", - "lines": [ - 68, - 108, - 148 - ] - } - ], - "nomono_activation_requirements = nomono_requirements\nnomono_lockfile = File.expand_path('Gemfile.lock', __dir__)": [ - { - "file": "Gemfile", - "lines": [ - 84, - 124 - ] - } - ], - "nomono_locked = nomono_locked_spec &&\nGem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version)": [ - { - "file": "Gemfile", - "lines": [ - 47, - 91, - 131 - ] - } - ], - "nomono_locked_spec = Bundler::LockfileParser\n.new(Bundler.read_file(nomono_lockfile))": [ - { - "file": "Gemfile", - "lines": [ - 43, - 87, - 127 - ] - } - ], - "nomono_lockfile = File.expand_path('Gemfile.lock', __dir__)\nif File.file?(nomono_lockfile)": [ - { - "file": "Gemfile", - "lines": [ - 85, - 125 - ] - } - ], - "path_env: 'STRUCTUREDMERGE_DEV',\nroot: %w[src my structuredmerge]": [ - { - "file": "Gemfile", - "lines": [ - 102, - 142 - ] - } - ], - "prefix: 'STRUCTUREDMERGE',\npath_env: 'STRUCTUREDMERGE_DEV',": [ - { - "file": "Gemfile", - "lines": [ - 101, - 141 - ] - } - ], - "require 'nomono/bundler'\nENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local": [ - { - "file": "Gemfile", - "lines": [ - 96, - 136 - ] - } - ], - "rescue LoadError\nwarn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.'": [ - { - "file": "Gemfile", - "lines": [ - 105, - 145 - ] - } - ] -} diff --git a/gems/commonmarker-merge/Gemfile b/gems/commonmarker-merge/Gemfile index 3734714e8..49d52ab36 100644 --- a/gems/commonmarker-merge/Gemfile +++ b/gems/commonmarker-merge/Gemfile @@ -36,100 +36,8 @@ if direct_sibling_gems.any? && ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) + require 'nomono/bundler' begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local eval_nomono_gems( @@ -138,8 +46,6 @@ if direct_sibling_gems.any? && path_env: 'STRUCTUREDMERGE_DEV', root: %w[src my structuredmerge] ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' ensure if direct_sibling_templating && !direct_sibling_local if direct_sibling_dev_was_set diff --git a/gems/commonmarker-merge/Gemfile.lock b/gems/commonmarker-merge/Gemfile.lock index c7a62a485..6c797759b 100644 --- a/gems/commonmarker-merge/Gemfile.lock +++ b/gems/commonmarker-merge/Gemfile.lock @@ -133,7 +133,7 @@ GEM mutex_m (0.3.0) nokogiri (1.19.4-x86_64-linux-gnu) racc (~> 1.4) - nomono (1.0.9) + nomono (1.1.0) openssl (4.0.2) ostruct (0.6.3) parallel (1.28.0) @@ -440,6 +440,7 @@ CHECKSUMS backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd + bundler (4.0.17) sha256=214e21431b5665dd2f99df8a5511c6b151d7a72e8015c8b38f8b775b61cbb6c1 bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 @@ -468,9 +469,9 @@ CHECKSUMS io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 - kettle-dev (2.3.9) + kettle-dev (2.3.9) sha256=03b2f72c6dda4d2c4401ee3c0c96853116c922766e7b5b04224434a49b571bfc kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f - kettle-soup-cover (3.0.4) + kettle-soup-cover (3.0.4) sha256=36d4df472362d2020d16411d7ce26ba2fe2a41fb8be64577ff9b5280acf99d86 kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa @@ -481,7 +482,7 @@ CHECKSUMS markdown-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-x86_64-linux-gnu) sha256=379fae440b28915e3f19d752ce2dcf8465ed2b2fbefd2a7ca0dd497bc981a06a - nomono (1.0.9) + nomono (1.1.0) sha256=463dd4c79da02a855739a1b5483190d527b7868688be905e84abdb3449b32c88 openssl (4.0.2) sha256=1037ad2868ae58df9ad917891c0c0f9815a1172f6846d4bcdd508e4c2ee747c2 ostruct (0.6.3) sha256=95a2ed4a4bd1d190784e666b47b2d3f078e4a9efda2fccf18f84ddc6538ed912 parallel (1.28.0) sha256=33e6de1484baf2524792d178b0913fc8eb94c628d6cfe45599ad4458c638c970 @@ -573,4 +574,4 @@ CHECKSUMS zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH - 4.0.16 + 4.0.17 diff --git a/gems/commonmarker-merge/LICENSE.md b/gems/commonmarker-merge/LICENSE.md index 6ad318705..65a770d1f 100644 --- a/gems/commonmarker-merge/LICENSE.md +++ b/gems/commonmarker-merge/LICENSE.md @@ -3,8 +3,8 @@ This project is made available under the following licenses. Choose the option that best fits your use case: -- [AGPL-3.0-only](AGPL-3.0-only.md) -- [PolyForm-Small-Business-1.0.0](PolyForm-Small-Business-1.0.0.md) +- [AGPL-3.0-only](https://github.com/structuredmerge/structuredmerge-ruby/blob/main/AGPL-3.0-only.md) +- [PolyForm-Small-Business-1.0.0](https://github.com/structuredmerge/structuredmerge-ruby/blob/main/PolyForm-Small-Business-1.0.0.md) If none of the above licenses fit your use case, please [contact us](mailto:floss@galtzo.com) to discuss a custom commercial license. diff --git a/gems/commonmarker-merge/README.md b/gems/commonmarker-merge/README.md index f67864028..38ba266f6 100644 --- a/gems/commonmarker-merge/README.md +++ b/gems/commonmarker-merge/README.md @@ -60,7 +60,7 @@ Section-local `replace_mode` / partial-template behavior still follows its own c |-------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | Works with MRI Ruby 4 | [![Ruby current Compat][💎ruby-c-i]][🚎11-c-wf]| | Support & Community | [![Join Me on Daily.dev's RubyFriends][✉️ruby-friends-img]][✉️ruby-friends] [![Get help from RubyForum][✉️ruby-forum-img]][✉️ruby-forum] [![Live Chat on Discord][✉️discord-invite-img-ftb]][✉️discord-invite] [![Get help from me on Upwork][👨🏼‍🏫expsup-upwork-img]][👨🏼‍🏫expsup-upwork] [![Get help from me on Codementor][👨🏼‍🏫expsup-codementor-img]][👨🏼‍🏫expsup-codementor] | -| Source | [![Source on GitLab.com][📜src-gl-img]][📜src-gl] [![Source on CodeBerg.org][📜src-cb-img]][📜src-cb] [![Source on Github.com][📜src-gh-img]][📜src-gh] [![The best SHA: dQw4w9WgXcQ!][🧮kloc-img]][🧮kloc] | +| Source | [![Source on GitLab.com][📜src-gl-img]][📜src-gl] [![Source on CodeBerg.org][📜src-cb-img]][📜src-cb] [![Source on GitHub.com][📜src-gh-img]][📜src-gh] [![The best SHA: dQw4w9WgXcQ!][🧮kloc-img]][🧮kloc] | | Documentation | [![Current release on RubyDoc.info][📜docs-cr-rd-img]][🚎yard-current] [![YARD on Galtzo.com][📜docs-head-rd-img]][🚎yard-head] [![Maintainer Blog][🚂maint-blog-img]][🚂maint-blog] [![GitLab Wiki][📜gl-wiki-img]][📜gl-wiki] [![GitHub Wiki][📜gh-wiki-img]][📜gh-wiki] | | Compliance | [![License: AGPL-3.0-only OR PolyForm-Small-Business-1.0.0][📄license-img]][📄license] [![Apache license compatibility: Category X][📄license-compat-img]][📄license-compat] [![📄ilo-declaration-img]][📄ilo-declaration] [![Security Policy][🔐security-img]][🔐security] [![Contributor Covenant 2.1][🪇conduct-img]][🪇conduct] [![SemVer 2.0.0][📌semver-img]][📌semver] | | Style | [![Enforced Code Style Linter][💎rlts-img]][💎rlts] [![Keep-A-Changelog 1.0.0][📗keep-changelog-img]][📗keep-changelog] [![Gitmoji Commits][📌gitmoji-img]][📌gitmoji] [![Compatibility appraised by: appraisal2][💎appraisal2-img]][💎appraisal2] | @@ -391,7 +391,7 @@ See [CHANGELOG.md][📌changelog] for a list of releases. ## 📄 License -The gem is available under the following licenses: [AGPL-3.0-only](AGPL-3.0-only.md), [PolyForm-Small-Business-1.0.0](PolyForm-Small-Business-1.0.0.md). +The gem is available under the following licenses: [AGPL-3.0-only](https://github.com/structuredmerge/structuredmerge-ruby/blob/main/AGPL-3.0-only.md), [PolyForm-Small-Business-1.0.0](https://github.com/structuredmerge/structuredmerge-ruby/blob/main/PolyForm-Small-Business-1.0.0.md). See [LICENSE.md][📄license] for details. If none of the available licenses suit your use case, please [contact us](mailto:floss@galtzo.com) to discuss a custom commercial license. @@ -463,7 +463,7 @@ If none of the available licenses suit your use case, please [contact us](mailto [📜src-gl]: https://gitlab.com/structuredmerge/structuredmerge-ruby/-/tree/main/gems/commonmarker-merge [📜src-cb-img]: https://img.shields.io/badge/CodeBerg-4893CC?style=for-the-badge&logo=CodeBerg&logoColor=blue [📜src-cb]: https://codeberg.org/structuredmerge/structuredmerge-ruby/src/branch/main/gems/commonmarker-merge -[📜src-gh-img]: https://img.shields.io/badge/GitHub-238636?style=for-the-badge&logo=Github&logoColor=green +[📜src-gh-img]: https://img.shields.io/badge/GitHub-238636?style=for-the-badge&logo=GitHub&logoColor=green [📜src-gh]: https://github.com/structuredmerge/structuredmerge-ruby/tree/main/gems/commonmarker-merge [📜docs-cr-rd-img]: https://img.shields.io/badge/RubyDoc-Current_Release-943CD2?style=for-the-badge&logo=readthedocs&logoColor=white [📜docs-head-rd-img]: https://img.shields.io/badge/YARD_on_Galtzo.com-HEAD-943CD2?style=for-the-badge&logo=readthedocs&logoColor=white diff --git a/gems/commonmarker-merge/gemfiles/modular/coverage_local.gemfile b/gems/commonmarker-merge/gemfiles/modular/coverage_local.gemfile index 20610f259..af5446b28 100644 --- a/gems/commonmarker-merge/gemfiles/modular/coverage_local.gemfile +++ b/gems/commonmarker-merge/gemfiles/modular/coverage_local.gemfile @@ -3,26 +3,6 @@ # Local path overrides for development. # Loaded by the associated non-local gemfile when KETTLE_DEV_DEV != "false". -# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. -# Bundler records that dependency during Gemfile evaluation, but it does not -# activate that exact version before the immediate `require "nomono/bundler"`. -# If multiple compatible nomono versions are installed, RubyGems may activate -# the newest installed version while Gemfile.lock pins an older compatible one; -# Bundler then aborts with "already activated nomono X, but your Gemfile -# requires nomono Y". Prefer the locked compatible version when present, then -# activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] -nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) -if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked -end -Kernel.send(:gem, 'nomono', *nomono_activation_requirements) require 'nomono/bundler' local_gems = %w[kettle-dev kettle-test kettle-soup-cover kettle-drift] diff --git a/gems/commonmarker-merge/gemfiles/modular/documentation_local.gemfile b/gems/commonmarker-merge/gemfiles/modular/documentation_local.gemfile index 9ecf2df17..4eb435c3c 100644 --- a/gems/commonmarker-merge/gemfiles/modular/documentation_local.gemfile +++ b/gems/commonmarker-merge/gemfiles/modular/documentation_local.gemfile @@ -3,26 +3,6 @@ # Local path overrides for development. # Loaded by the associated non-local gemfile when GALTZO_FLOSS_DEV != "false". -# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. -# Bundler records that dependency during Gemfile evaluation, but it does not -# activate that exact version before the immediate `require "nomono/bundler"`. -# If multiple compatible nomono versions are installed, RubyGems may activate -# the newest installed version while Gemfile.lock pins an older compatible one; -# Bundler then aborts with "already activated nomono X, but your Gemfile -# requires nomono Y". Prefer the locked compatible version when present, then -# activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] -nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) -if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked -end -Kernel.send(:gem, 'nomono', *nomono_activation_requirements) require 'nomono/bundler' local_gems = %w[yard-fence yard-timekeeper yard-yaml] diff --git a/gems/commonmarker-merge/gemfiles/modular/style_local.gemfile b/gems/commonmarker-merge/gemfiles/modular/style_local.gemfile index 31dd7b5be..8e86b91bd 100644 --- a/gems/commonmarker-merge/gemfiles/modular/style_local.gemfile +++ b/gems/commonmarker-merge/gemfiles/modular/style_local.gemfile @@ -6,26 +6,6 @@ # Local path overrides for development. # Loaded by the associated non-local gemfile when RUBOCOP_LTS_LOCAL != "false". -# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. -# Bundler records that dependency during Gemfile evaluation, but it does not -# activate that exact version before the immediate `require "nomono/bundler"`. -# If multiple compatible nomono versions are installed, RubyGems may activate -# the newest installed version while Gemfile.lock pins an older compatible one; -# Bundler then aborts with "already activated nomono X, but your Gemfile -# requires nomono Y". Prefer the locked compatible version when present, then -# activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] -nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) -if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked -end -Kernel.send(:gem, 'nomono', *nomono_activation_requirements) require 'nomono/bundler' local_gems = %w[rubocop-lts rubocop-lts-rspec rubocop-ruby3_2 standard-rubocop-lts] diff --git a/gems/commonmarker-merge/gemfiles/modular/templating_local.gemfile b/gems/commonmarker-merge/gemfiles/modular/templating_local.gemfile index b47c25177..83a9258e2 100644 --- a/gems/commonmarker-merge/gemfiles/modular/templating_local.gemfile +++ b/gems/commonmarker-merge/gemfiles/modular/templating_local.gemfile @@ -4,26 +4,6 @@ # Loaded by the associated non-local gemfile when STRUCTUREDMERGE_DEV or KETTLE_DEV_DEV # is not "false". -# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. -# Bundler records that dependency during Gemfile evaluation, but it does not -# activate that exact version before the immediate `require "nomono/bundler"`. -# If multiple compatible nomono versions are installed, RubyGems may activate -# the newest installed version while Gemfile.lock pins an older compatible one; -# Bundler then aborts with "already activated nomono X, but your Gemfile -# requires nomono Y". Prefer the locked compatible version when present, then -# activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] -nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) -if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked -end -Kernel.send(:gem, 'nomono', *nomono_activation_requirements) require 'nomono/bundler' structuredmerge_local_gems = %w[ diff --git a/gems/dotenv-merge/.kettle-drift.lock b/gems/dotenv-merge/.kettle-drift.lock deleted file mode 100644 index 7cc6a5131..000000000 --- a/gems/dotenv-merge/.kettle-drift.lock +++ /dev/null @@ -1,188 +0,0 @@ -{ - "(direct_sibling_local ||\nENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?)": [ - { - "file": "Gemfile", - "lines": [ - 80, - 120 - ] - } - ], - ".find { |spec| spec.name == 'nomono' }\nnomono_locked = nomono_locked_spec &&": [ - { - "file": "Gemfile", - "lines": [ - 91, - 131 - ] - } - ], - "ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?)\ndirect_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV')": [ - { - "file": "Gemfile", - "lines": [ - 81, - 121 - ] - } - ], - "Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version)\nnomono_activation_requirements = [\"= #{nomono_locked_spec.version}\"] if nomono_locked": [ - { - "file": "Gemfile", - "lines": [ - 93, - 133 - ] - } - ], - "Kernel.send(:gem, 'nomono', *nomono_activation_requirements)\nrequire 'nomono/bundler'": [ - { - "file": "Gemfile", - "lines": [ - 96, - 136 - ] - } - ], - "direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV')\ndirect_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil)": [ - { - "file": "Gemfile", - "lines": [ - 82, - 122 - ] - } - ], - "eval_nomono_gems(\ngems: direct_sibling_gems,": [ - { - "file": "Gemfile", - "lines": [ - 60, - 100, - 140 - ] - } - ], - "gems: direct_sibling_gems,\nprefix: 'STRUCTUREDMERGE',": [ - { - "file": "Gemfile", - "lines": [ - 101, - 141 - ] - } - ], - "if File.file?(nomono_lockfile)\nnomono_locked_spec = Bundler::LockfileParser": [ - { - "file": "Gemfile", - "lines": [ - 43, - 87, - 127 - ] - } - ], - "if direct_sibling_dev_was_set\nENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original": [ - { - "file": "Gemfile", - "lines": [ - 110, - 150 - ] - } - ], - "if direct_sibling_gems.any? &&\n(direct_sibling_local ||": [ - { - "file": "Gemfile", - "lines": [ - 35, - 79, - 119 - ] - } - ], - "if direct_sibling_templating && !direct_sibling_local\nif direct_sibling_dev_was_set": [ - { - "file": "Gemfile", - "lines": [ - 69, - 109, - 149 - ] - } - ], - "nomono_activation_requirements = nomono_requirements\nnomono_lockfile = File.expand_path('Gemfile.lock', __dir__)": [ - { - "file": "Gemfile", - "lines": [ - 85, - 125 - ] - } - ], - "nomono_locked = nomono_locked_spec &&\nGem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version)": [ - { - "file": "Gemfile", - "lines": [ - 48, - 92, - 132 - ] - } - ], - "nomono_locked_spec = Bundler::LockfileParser\n.new(Bundler.read_file(nomono_lockfile))": [ - { - "file": "Gemfile", - "lines": [ - 44, - 88, - 128 - ] - } - ], - "nomono_lockfile = File.expand_path('Gemfile.lock', __dir__)\nif File.file?(nomono_lockfile)": [ - { - "file": "Gemfile", - "lines": [ - 86, - 126 - ] - } - ], - "path_env: 'STRUCTUREDMERGE_DEV',\nroot: %w[src my structuredmerge]": [ - { - "file": "Gemfile", - "lines": [ - 103, - 143 - ] - } - ], - "prefix: 'STRUCTUREDMERGE',\npath_env: 'STRUCTUREDMERGE_DEV',": [ - { - "file": "Gemfile", - "lines": [ - 102, - 142 - ] - } - ], - "require 'nomono/bundler'\nENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local": [ - { - "file": "Gemfile", - "lines": [ - 97, - 137 - ] - } - ], - "rescue LoadError\nwarn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.'": [ - { - "file": "Gemfile", - "lines": [ - 106, - 146 - ] - } - ] -} diff --git a/gems/dotenv-merge/Gemfile b/gems/dotenv-merge/Gemfile index d4bcdacbb..896f87567 100644 --- a/gems/dotenv-merge/Gemfile +++ b/gems/dotenv-merge/Gemfile @@ -37,100 +37,8 @@ if direct_sibling_gems.any? && ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) + require 'nomono/bundler' begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local eval_nomono_gems( @@ -139,8 +47,6 @@ if direct_sibling_gems.any? && path_env: 'STRUCTUREDMERGE_DEV', root: %w[src my structuredmerge] ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' ensure if direct_sibling_templating && !direct_sibling_local if direct_sibling_dev_was_set diff --git a/gems/dotenv-merge/Gemfile.lock b/gems/dotenv-merge/Gemfile.lock index 33fa973b5..e69528854 100644 --- a/gems/dotenv-merge/Gemfile.lock +++ b/gems/dotenv-merge/Gemfile.lock @@ -136,7 +136,7 @@ GEM racc (~> 1.4) nokogiri (1.19.4-x86_64-linux-musl) racc (~> 1.4) - nomono (1.0.9) + nomono (1.1.0) openssl (4.0.2) ostruct (0.6.3) parallel (1.28.0) @@ -453,6 +453,7 @@ CHECKSUMS backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd + bundler (4.0.17) sha256=214e21431b5665dd2f99df8a5511c6b151d7a72e8015c8b38f8b775b61cbb6c1 bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 @@ -480,9 +481,9 @@ CHECKSUMS io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 - kettle-dev (2.3.9) + kettle-dev (2.3.9) sha256=03b2f72c6dda4d2c4401ee3c0c96853116c922766e7b5b04224434a49b571bfc kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f - kettle-soup-cover (3.0.4) + kettle-soup-cover (3.0.4) sha256=36d4df472362d2020d16411d7ce26ba2fe2a41fb8be64577ff9b5280acf99d86 kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa @@ -496,7 +497,7 @@ CHECKSUMS nokogiri (1.19.4-arm64-darwin) sha256=a46db9853286e6597b36ebc6953817d15acf3a299583eb3f89fdc6f91dd63527 nokogiri (1.19.4-x86_64-linux-gnu) sha256=379fae440b28915e3f19d752ce2dcf8465ed2b2fbefd2a7ca0dd497bc981a06a nokogiri (1.19.4-x86_64-linux-musl) sha256=17dfb7c1fa194ae02fbf7c51a7afc8d278045ab3fdacfd86f91d02d7b274470b - nomono (1.0.9) + nomono (1.1.0) sha256=463dd4c79da02a855739a1b5483190d527b7868688be905e84abdb3449b32c88 openssl (4.0.2) sha256=1037ad2868ae58df9ad917891c0c0f9815a1172f6846d4bcdd508e4c2ee747c2 ostruct (0.6.3) sha256=95a2ed4a4bd1d190784e666b47b2d3f078e4a9efda2fccf18f84ddc6538ed912 parallel (1.28.0) sha256=33e6de1484baf2524792d178b0913fc8eb94c628d6cfe45599ad4458c638c970 @@ -590,4 +591,4 @@ CHECKSUMS zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH - 4.0.16 + 4.0.17 diff --git a/gems/dotenv-merge/LICENSE.md b/gems/dotenv-merge/LICENSE.md index 6ad318705..65a770d1f 100644 --- a/gems/dotenv-merge/LICENSE.md +++ b/gems/dotenv-merge/LICENSE.md @@ -3,8 +3,8 @@ This project is made available under the following licenses. Choose the option that best fits your use case: -- [AGPL-3.0-only](AGPL-3.0-only.md) -- [PolyForm-Small-Business-1.0.0](PolyForm-Small-Business-1.0.0.md) +- [AGPL-3.0-only](https://github.com/structuredmerge/structuredmerge-ruby/blob/main/AGPL-3.0-only.md) +- [PolyForm-Small-Business-1.0.0](https://github.com/structuredmerge/structuredmerge-ruby/blob/main/PolyForm-Small-Business-1.0.0.md) If none of the above licenses fit your use case, please [contact us](mailto:floss@galtzo.com) to discuss a custom commercial license. diff --git a/gems/dotenv-merge/README.md b/gems/dotenv-merge/README.md index 00bad96c6..8946d5ee5 100644 --- a/gems/dotenv-merge/README.md +++ b/gems/dotenv-merge/README.md @@ -73,7 +73,7 @@ File.write("merged.env", result.to_s) |-------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | Works with MRI Ruby 4 | [![Ruby current Compat][💎ruby-c-i]][🚎11-c-wf]| | Support & Community | [![Join Me on Daily.dev's RubyFriends][✉️ruby-friends-img]][✉️ruby-friends] [![Get help from RubyForum][✉️ruby-forum-img]][✉️ruby-forum] [![Live Chat on Discord][✉️discord-invite-img-ftb]][✉️discord-invite] [![Get help from me on Upwork][👨🏼‍🏫expsup-upwork-img]][👨🏼‍🏫expsup-upwork] [![Get help from me on Codementor][👨🏼‍🏫expsup-codementor-img]][👨🏼‍🏫expsup-codementor] | -| Source | [![Source on GitLab.com][📜src-gl-img]][📜src-gl] [![Source on CodeBerg.org][📜src-cb-img]][📜src-cb] [![Source on Github.com][📜src-gh-img]][📜src-gh] [![The best SHA: dQw4w9WgXcQ!][🧮kloc-img]][🧮kloc] | +| Source | [![Source on GitLab.com][📜src-gl-img]][📜src-gl] [![Source on CodeBerg.org][📜src-cb-img]][📜src-cb] [![Source on GitHub.com][📜src-gh-img]][📜src-gh] [![The best SHA: dQw4w9WgXcQ!][🧮kloc-img]][🧮kloc] | | Documentation | [![Current release on RubyDoc.info][📜docs-cr-rd-img]][🚎yard-current] [![YARD on Galtzo.com][📜docs-head-rd-img]][🚎yard-head] [![Maintainer Blog][🚂maint-blog-img]][🚂maint-blog] [![GitLab Wiki][📜gl-wiki-img]][📜gl-wiki] [![GitHub Wiki][📜gh-wiki-img]][📜gh-wiki] | | Compliance | [![License: AGPL-3.0-only OR PolyForm-Small-Business-1.0.0][📄license-img]][📄license] [![Apache license compatibility: Category X][📄license-compat-img]][📄license-compat] [![📄ilo-declaration-img]][📄ilo-declaration] [![Security Policy][🔐security-img]][🔐security] [![Contributor Covenant 2.1][🪇conduct-img]][🪇conduct] [![SemVer 2.0.0][📌semver-img]][📌semver] | | Style | [![Enforced Code Style Linter][💎rlts-img]][💎rlts] [![Keep-A-Changelog 1.0.0][📗keep-changelog-img]][📗keep-changelog] [![Gitmoji Commits][📌gitmoji-img]][📌gitmoji] [![Compatibility appraised by: appraisal2][💎appraisal2-img]][💎appraisal2] | @@ -255,7 +255,7 @@ See [CHANGELOG.md][📌changelog] for a list of releases. ## 📄 License -The gem is available under the following licenses: [AGPL-3.0-only](AGPL-3.0-only.md), [PolyForm-Small-Business-1.0.0](PolyForm-Small-Business-1.0.0.md). +The gem is available under the following licenses: [AGPL-3.0-only](https://github.com/structuredmerge/structuredmerge-ruby/blob/main/AGPL-3.0-only.md), [PolyForm-Small-Business-1.0.0](https://github.com/structuredmerge/structuredmerge-ruby/blob/main/PolyForm-Small-Business-1.0.0.md). See [LICENSE.md][📄license] for details. If none of the available licenses suit your use case, please [contact us](mailto:floss@galtzo.com) to discuss a custom commercial license. @@ -327,7 +327,7 @@ If none of the available licenses suit your use case, please [contact us](mailto [📜src-gl]: https://gitlab.com/structuredmerge/structuredmerge-ruby/-/tree/main/gems/dotenv-merge [📜src-cb-img]: https://img.shields.io/badge/CodeBerg-4893CC?style=for-the-badge&logo=CodeBerg&logoColor=blue [📜src-cb]: https://codeberg.org/structuredmerge/structuredmerge-ruby/src/branch/main/gems/dotenv-merge -[📜src-gh-img]: https://img.shields.io/badge/GitHub-238636?style=for-the-badge&logo=Github&logoColor=green +[📜src-gh-img]: https://img.shields.io/badge/GitHub-238636?style=for-the-badge&logo=GitHub&logoColor=green [📜src-gh]: https://github.com/structuredmerge/structuredmerge-ruby/tree/main/gems/dotenv-merge [📜docs-cr-rd-img]: https://img.shields.io/badge/RubyDoc-Current_Release-943CD2?style=for-the-badge&logo=readthedocs&logoColor=white [📜docs-head-rd-img]: https://img.shields.io/badge/YARD_on_Galtzo.com-HEAD-943CD2?style=for-the-badge&logo=readthedocs&logoColor=white diff --git a/gems/dotenv-merge/gemfiles/modular/coverage_local.gemfile b/gems/dotenv-merge/gemfiles/modular/coverage_local.gemfile index de5e0061a..b2acaef20 100644 --- a/gems/dotenv-merge/gemfiles/modular/coverage_local.gemfile +++ b/gems/dotenv-merge/gemfiles/modular/coverage_local.gemfile @@ -3,26 +3,6 @@ # Local path overrides for development. # Loaded by the associated non-local gemfile when KETTLE_DEV_DEV != "false". -# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. -# Bundler records that dependency during Gemfile evaluation, but it does not -# activate that exact version before the immediate `require "nomono/bundler"`. -# If multiple compatible nomono versions are installed, RubyGems may activate -# the newest installed version while Gemfile.lock pins an older compatible one; -# Bundler then aborts with "already activated nomono X, but your Gemfile -# requires nomono Y". Prefer the locked compatible version when present, then -# activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] -nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) -if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked -end -Kernel.send(:gem, 'nomono', *nomono_activation_requirements) require 'nomono/bundler' local_gems = %w[kettle-dev kettle-test kettle-soup-cover kettle-drift] diff --git a/gems/dotenv-merge/gemfiles/modular/documentation_local.gemfile b/gems/dotenv-merge/gemfiles/modular/documentation_local.gemfile index 6217cebe2..c02fbb6fe 100644 --- a/gems/dotenv-merge/gemfiles/modular/documentation_local.gemfile +++ b/gems/dotenv-merge/gemfiles/modular/documentation_local.gemfile @@ -3,26 +3,6 @@ # Local path overrides for development. # Loaded by the associated non-local gemfile when GALTZO_FLOSS_DEV != "false". -# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. -# Bundler records that dependency during Gemfile evaluation, but it does not -# activate that exact version before the immediate `require "nomono/bundler"`. -# If multiple compatible nomono versions are installed, RubyGems may activate -# the newest installed version while Gemfile.lock pins an older compatible one; -# Bundler then aborts with "already activated nomono X, but your Gemfile -# requires nomono Y". Prefer the locked compatible version when present, then -# activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] -nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) -if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked -end -Kernel.send(:gem, 'nomono', *nomono_activation_requirements) require 'nomono/bundler' local_gems = %w[yard-fence yard-timekeeper yard-yaml] diff --git a/gems/dotenv-merge/gemfiles/modular/style_local.gemfile b/gems/dotenv-merge/gemfiles/modular/style_local.gemfile index e6837f6d0..e5dd1c6d0 100644 --- a/gems/dotenv-merge/gemfiles/modular/style_local.gemfile +++ b/gems/dotenv-merge/gemfiles/modular/style_local.gemfile @@ -6,26 +6,6 @@ # Local path overrides for development. # Loaded by the associated non-local gemfile when RUBOCOP_LTS_LOCAL != "false". -# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. -# Bundler records that dependency during Gemfile evaluation, but it does not -# activate that exact version before the immediate `require "nomono/bundler"`. -# If multiple compatible nomono versions are installed, RubyGems may activate -# the newest installed version while Gemfile.lock pins an older compatible one; -# Bundler then aborts with "already activated nomono X, but your Gemfile -# requires nomono Y". Prefer the locked compatible version when present, then -# activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] -nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) -if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked -end -Kernel.send(:gem, 'nomono', *nomono_activation_requirements) require 'nomono/bundler' local_gems = %w[rubocop-lts rubocop-lts-rspec rubocop-ruby3_2 standard-rubocop-lts] diff --git a/gems/dotenv-merge/gemfiles/modular/templating_local.gemfile b/gems/dotenv-merge/gemfiles/modular/templating_local.gemfile index 0fe97f4b6..82acb636f 100644 --- a/gems/dotenv-merge/gemfiles/modular/templating_local.gemfile +++ b/gems/dotenv-merge/gemfiles/modular/templating_local.gemfile @@ -4,26 +4,6 @@ # Loaded by the associated non-local gemfile when STRUCTUREDMERGE_DEV or KETTLE_DEV_DEV # is not "false". -# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. -# Bundler records that dependency during Gemfile evaluation, but it does not -# activate that exact version before the immediate `require "nomono/bundler"`. -# If multiple compatible nomono versions are installed, RubyGems may activate -# the newest installed version while Gemfile.lock pins an older compatible one; -# Bundler then aborts with "already activated nomono X, but your Gemfile -# requires nomono Y". Prefer the locked compatible version when present, then -# activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] -nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) -if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked -end -Kernel.send(:gem, 'nomono', *nomono_activation_requirements) require 'nomono/bundler' structuredmerge_local_gems = %w[ diff --git a/gems/go-merge/.kettle-drift.lock b/gems/go-merge/.kettle-drift.lock deleted file mode 100644 index 7cc6a5131..000000000 --- a/gems/go-merge/.kettle-drift.lock +++ /dev/null @@ -1,188 +0,0 @@ -{ - "(direct_sibling_local ||\nENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?)": [ - { - "file": "Gemfile", - "lines": [ - 80, - 120 - ] - } - ], - ".find { |spec| spec.name == 'nomono' }\nnomono_locked = nomono_locked_spec &&": [ - { - "file": "Gemfile", - "lines": [ - 91, - 131 - ] - } - ], - "ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?)\ndirect_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV')": [ - { - "file": "Gemfile", - "lines": [ - 81, - 121 - ] - } - ], - "Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version)\nnomono_activation_requirements = [\"= #{nomono_locked_spec.version}\"] if nomono_locked": [ - { - "file": "Gemfile", - "lines": [ - 93, - 133 - ] - } - ], - "Kernel.send(:gem, 'nomono', *nomono_activation_requirements)\nrequire 'nomono/bundler'": [ - { - "file": "Gemfile", - "lines": [ - 96, - 136 - ] - } - ], - "direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV')\ndirect_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil)": [ - { - "file": "Gemfile", - "lines": [ - 82, - 122 - ] - } - ], - "eval_nomono_gems(\ngems: direct_sibling_gems,": [ - { - "file": "Gemfile", - "lines": [ - 60, - 100, - 140 - ] - } - ], - "gems: direct_sibling_gems,\nprefix: 'STRUCTUREDMERGE',": [ - { - "file": "Gemfile", - "lines": [ - 101, - 141 - ] - } - ], - "if File.file?(nomono_lockfile)\nnomono_locked_spec = Bundler::LockfileParser": [ - { - "file": "Gemfile", - "lines": [ - 43, - 87, - 127 - ] - } - ], - "if direct_sibling_dev_was_set\nENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original": [ - { - "file": "Gemfile", - "lines": [ - 110, - 150 - ] - } - ], - "if direct_sibling_gems.any? &&\n(direct_sibling_local ||": [ - { - "file": "Gemfile", - "lines": [ - 35, - 79, - 119 - ] - } - ], - "if direct_sibling_templating && !direct_sibling_local\nif direct_sibling_dev_was_set": [ - { - "file": "Gemfile", - "lines": [ - 69, - 109, - 149 - ] - } - ], - "nomono_activation_requirements = nomono_requirements\nnomono_lockfile = File.expand_path('Gemfile.lock', __dir__)": [ - { - "file": "Gemfile", - "lines": [ - 85, - 125 - ] - } - ], - "nomono_locked = nomono_locked_spec &&\nGem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version)": [ - { - "file": "Gemfile", - "lines": [ - 48, - 92, - 132 - ] - } - ], - "nomono_locked_spec = Bundler::LockfileParser\n.new(Bundler.read_file(nomono_lockfile))": [ - { - "file": "Gemfile", - "lines": [ - 44, - 88, - 128 - ] - } - ], - "nomono_lockfile = File.expand_path('Gemfile.lock', __dir__)\nif File.file?(nomono_lockfile)": [ - { - "file": "Gemfile", - "lines": [ - 86, - 126 - ] - } - ], - "path_env: 'STRUCTUREDMERGE_DEV',\nroot: %w[src my structuredmerge]": [ - { - "file": "Gemfile", - "lines": [ - 103, - 143 - ] - } - ], - "prefix: 'STRUCTUREDMERGE',\npath_env: 'STRUCTUREDMERGE_DEV',": [ - { - "file": "Gemfile", - "lines": [ - 102, - 142 - ] - } - ], - "require 'nomono/bundler'\nENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local": [ - { - "file": "Gemfile", - "lines": [ - 97, - 137 - ] - } - ], - "rescue LoadError\nwarn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.'": [ - { - "file": "Gemfile", - "lines": [ - 106, - 146 - ] - } - ] -} diff --git a/gems/go-merge/Gemfile b/gems/go-merge/Gemfile index c31761d0d..19ef45e61 100644 --- a/gems/go-merge/Gemfile +++ b/gems/go-merge/Gemfile @@ -37,100 +37,8 @@ if direct_sibling_gems.any? && ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) + require 'nomono/bundler' begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local eval_nomono_gems( @@ -139,8 +47,6 @@ if direct_sibling_gems.any? && path_env: 'STRUCTUREDMERGE_DEV', root: %w[src my structuredmerge] ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' ensure if direct_sibling_templating && !direct_sibling_local if direct_sibling_dev_was_set diff --git a/gems/go-merge/Gemfile.lock b/gems/go-merge/Gemfile.lock index 5baa23e43..64cafdafc 100644 --- a/gems/go-merge/Gemfile.lock +++ b/gems/go-merge/Gemfile.lock @@ -136,7 +136,7 @@ GEM racc (~> 1.4) nokogiri (1.19.4-x86_64-linux-musl) racc (~> 1.4) - nomono (1.0.9) + nomono (1.1.0) openssl (4.0.2) ostruct (0.6.3) parallel (1.28.0) @@ -452,6 +452,7 @@ CHECKSUMS backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd + bundler (4.0.17) sha256=214e21431b5665dd2f99df8a5511c6b151d7a72e8015c8b38f8b775b61cbb6c1 bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 @@ -479,9 +480,9 @@ CHECKSUMS io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 - kettle-dev (2.3.9) + kettle-dev (2.3.9) sha256=03b2f72c6dda4d2c4401ee3c0c96853116c922766e7b5b04224434a49b571bfc kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f - kettle-soup-cover (3.0.4) + kettle-soup-cover (3.0.4) sha256=36d4df472362d2020d16411d7ce26ba2fe2a41fb8be64577ff9b5280acf99d86 kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa @@ -495,7 +496,7 @@ CHECKSUMS nokogiri (1.19.4-arm64-darwin) sha256=a46db9853286e6597b36ebc6953817d15acf3a299583eb3f89fdc6f91dd63527 nokogiri (1.19.4-x86_64-linux-gnu) sha256=379fae440b28915e3f19d752ce2dcf8465ed2b2fbefd2a7ca0dd497bc981a06a nokogiri (1.19.4-x86_64-linux-musl) sha256=17dfb7c1fa194ae02fbf7c51a7afc8d278045ab3fdacfd86f91d02d7b274470b - nomono (1.0.9) + nomono (1.1.0) sha256=463dd4c79da02a855739a1b5483190d527b7868688be905e84abdb3449b32c88 openssl (4.0.2) sha256=1037ad2868ae58df9ad917891c0c0f9815a1172f6846d4bcdd508e4c2ee747c2 ostruct (0.6.3) sha256=95a2ed4a4bd1d190784e666b47b2d3f078e4a9efda2fccf18f84ddc6538ed912 parallel (1.28.0) sha256=33e6de1484baf2524792d178b0913fc8eb94c628d6cfe45599ad4458c638c970 @@ -589,4 +590,4 @@ CHECKSUMS zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH - 4.0.16 + 4.0.17 diff --git a/gems/go-merge/LICENSE.md b/gems/go-merge/LICENSE.md index 6ad318705..65a770d1f 100644 --- a/gems/go-merge/LICENSE.md +++ b/gems/go-merge/LICENSE.md @@ -3,8 +3,8 @@ This project is made available under the following licenses. Choose the option that best fits your use case: -- [AGPL-3.0-only](AGPL-3.0-only.md) -- [PolyForm-Small-Business-1.0.0](PolyForm-Small-Business-1.0.0.md) +- [AGPL-3.0-only](https://github.com/structuredmerge/structuredmerge-ruby/blob/main/AGPL-3.0-only.md) +- [PolyForm-Small-Business-1.0.0](https://github.com/structuredmerge/structuredmerge-ruby/blob/main/PolyForm-Small-Business-1.0.0.md) If none of the above licenses fit your use case, please [contact us](mailto:floss@galtzo.com) to discuss a custom commercial license. diff --git a/gems/go-merge/README.md b/gems/go-merge/README.md index 1f9c2792d..ec0a11e8f 100644 --- a/gems/go-merge/README.md +++ b/gems/go-merge/README.md @@ -37,7 +37,7 @@ I've summarized my thoughts in [this blog post](https://dev.to/galtzo/hostile-ta |-------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | Works with MRI Ruby 4 | [![Ruby current Compat][💎ruby-c-i]][🚎11-c-wf]| | Support & Community | [![Join Me on Daily.dev's RubyFriends][✉️ruby-friends-img]][✉️ruby-friends] [![Get help from RubyForum][✉️ruby-forum-img]][✉️ruby-forum] [![Live Chat on Discord][✉️discord-invite-img-ftb]][✉️discord-invite] [![Get help from me on Upwork][👨🏼‍🏫expsup-upwork-img]][👨🏼‍🏫expsup-upwork] [![Get help from me on Codementor][👨🏼‍🏫expsup-codementor-img]][👨🏼‍🏫expsup-codementor] | -| Source | [![Source on GitLab.com][📜src-gl-img]][📜src-gl] [![Source on CodeBerg.org][📜src-cb-img]][📜src-cb] [![Source on Github.com][📜src-gh-img]][📜src-gh] [![The best SHA: dQw4w9WgXcQ!][🧮kloc-img]][🧮kloc] | +| Source | [![Source on GitLab.com][📜src-gl-img]][📜src-gl] [![Source on CodeBerg.org][📜src-cb-img]][📜src-cb] [![Source on GitHub.com][📜src-gh-img]][📜src-gh] [![The best SHA: dQw4w9WgXcQ!][🧮kloc-img]][🧮kloc] | | Documentation | [![Current release on RubyDoc.info][📜docs-cr-rd-img]][🚎yard-current] [![YARD on Galtzo.com][📜docs-head-rd-img]][🚎yard-head] [![Maintainer Blog][🚂maint-blog-img]][🚂maint-blog] [![GitLab Wiki][📜gl-wiki-img]][📜gl-wiki] [![GitHub Wiki][📜gh-wiki-img]][📜gh-wiki] | | Compliance | [![License: AGPL-3.0-only OR PolyForm-Small-Business-1.0.0][📄license-img]][📄license] [![Apache license compatibility: Category X][📄license-compat-img]][📄license-compat] [![📄ilo-declaration-img]][📄ilo-declaration] [![Security Policy][🔐security-img]][🔐security] [![Contributor Covenant 2.1][🪇conduct-img]][🪇conduct] [![SemVer 2.0.0][📌semver-img]][📌semver] | | Style | [![Enforced Code Style Linter][💎rlts-img]][💎rlts] [![Keep-A-Changelog 1.0.0][📗keep-changelog-img]][📗keep-changelog] [![Gitmoji Commits][📌gitmoji-img]][📌gitmoji] [![Compatibility appraised by: appraisal2][💎appraisal2-img]][💎appraisal2] | @@ -155,7 +155,7 @@ See [CHANGELOG.md][📌changelog] for a list of releases. ## 📄 License -The gem is available under the following licenses: [AGPL-3.0-only](AGPL-3.0-only.md), [PolyForm-Small-Business-1.0.0](PolyForm-Small-Business-1.0.0.md). +The gem is available under the following licenses: [AGPL-3.0-only](https://github.com/structuredmerge/structuredmerge-ruby/blob/main/AGPL-3.0-only.md), [PolyForm-Small-Business-1.0.0](https://github.com/structuredmerge/structuredmerge-ruby/blob/main/PolyForm-Small-Business-1.0.0.md). See [LICENSE.md][📄license] for details. If none of the available licenses suit your use case, please [contact us](mailto:floss@galtzo.com) to discuss a custom commercial license. @@ -227,7 +227,7 @@ If none of the available licenses suit your use case, please [contact us](mailto [📜src-gl]: https://gitlab.com/structuredmerge/structuredmerge-ruby/-/tree/main/gems/go-merge [📜src-cb-img]: https://img.shields.io/badge/CodeBerg-4893CC?style=for-the-badge&logo=CodeBerg&logoColor=blue [📜src-cb]: https://codeberg.org/structuredmerge/structuredmerge-ruby/src/branch/main/gems/go-merge -[📜src-gh-img]: https://img.shields.io/badge/GitHub-238636?style=for-the-badge&logo=Github&logoColor=green +[📜src-gh-img]: https://img.shields.io/badge/GitHub-238636?style=for-the-badge&logo=GitHub&logoColor=green [📜src-gh]: https://github.com/structuredmerge/structuredmerge-ruby/tree/main/gems/go-merge [📜docs-cr-rd-img]: https://img.shields.io/badge/RubyDoc-Current_Release-943CD2?style=for-the-badge&logo=readthedocs&logoColor=white [📜docs-head-rd-img]: https://img.shields.io/badge/YARD_on_Galtzo.com-HEAD-943CD2?style=for-the-badge&logo=readthedocs&logoColor=white diff --git a/gems/go-merge/gemfiles/modular/coverage_local.gemfile b/gems/go-merge/gemfiles/modular/coverage_local.gemfile index 7586d2d84..d25a83ee8 100644 --- a/gems/go-merge/gemfiles/modular/coverage_local.gemfile +++ b/gems/go-merge/gemfiles/modular/coverage_local.gemfile @@ -3,26 +3,6 @@ # Local path overrides for development. # Loaded by the associated non-local gemfile when KETTLE_DEV_DEV != "false". -# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. -# Bundler records that dependency during Gemfile evaluation, but it does not -# activate that exact version before the immediate `require "nomono/bundler"`. -# If multiple compatible nomono versions are installed, RubyGems may activate -# the newest installed version while Gemfile.lock pins an older compatible one; -# Bundler then aborts with "already activated nomono X, but your Gemfile -# requires nomono Y". Prefer the locked compatible version when present, then -# activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] -nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) -if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked -end -Kernel.send(:gem, 'nomono', *nomono_activation_requirements) require 'nomono/bundler' local_gems = %w[kettle-dev kettle-test kettle-soup-cover kettle-drift] diff --git a/gems/go-merge/gemfiles/modular/documentation_local.gemfile b/gems/go-merge/gemfiles/modular/documentation_local.gemfile index 64c208555..6397c466b 100644 --- a/gems/go-merge/gemfiles/modular/documentation_local.gemfile +++ b/gems/go-merge/gemfiles/modular/documentation_local.gemfile @@ -3,26 +3,6 @@ # Local path overrides for development. # Loaded by the associated non-local gemfile when GALTZO_FLOSS_DEV != "false". -# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. -# Bundler records that dependency during Gemfile evaluation, but it does not -# activate that exact version before the immediate `require "nomono/bundler"`. -# If multiple compatible nomono versions are installed, RubyGems may activate -# the newest installed version while Gemfile.lock pins an older compatible one; -# Bundler then aborts with "already activated nomono X, but your Gemfile -# requires nomono Y". Prefer the locked compatible version when present, then -# activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] -nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) -if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked -end -Kernel.send(:gem, 'nomono', *nomono_activation_requirements) require 'nomono/bundler' local_gems = %w[yard-fence yard-timekeeper yard-yaml] diff --git a/gems/go-merge/gemfiles/modular/style_local.gemfile b/gems/go-merge/gemfiles/modular/style_local.gemfile index 254e52a24..dc482c6b6 100644 --- a/gems/go-merge/gemfiles/modular/style_local.gemfile +++ b/gems/go-merge/gemfiles/modular/style_local.gemfile @@ -6,26 +6,6 @@ # Local path overrides for development. # Loaded by the associated non-local gemfile when RUBOCOP_LTS_LOCAL != "false". -# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. -# Bundler records that dependency during Gemfile evaluation, but it does not -# activate that exact version before the immediate `require "nomono/bundler"`. -# If multiple compatible nomono versions are installed, RubyGems may activate -# the newest installed version while Gemfile.lock pins an older compatible one; -# Bundler then aborts with "already activated nomono X, but your Gemfile -# requires nomono Y". Prefer the locked compatible version when present, then -# activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] -nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) -if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked -end -Kernel.send(:gem, 'nomono', *nomono_activation_requirements) require 'nomono/bundler' local_gems = %w[rubocop-lts rubocop-lts-rspec rubocop-ruby3_2 standard-rubocop-lts] diff --git a/gems/go-merge/gemfiles/modular/templating_local.gemfile b/gems/go-merge/gemfiles/modular/templating_local.gemfile index d365caff2..c4029e234 100644 --- a/gems/go-merge/gemfiles/modular/templating_local.gemfile +++ b/gems/go-merge/gemfiles/modular/templating_local.gemfile @@ -4,26 +4,6 @@ # Loaded by the associated non-local gemfile when STRUCTUREDMERGE_DEV or KETTLE_DEV_DEV # is not "false". -# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. -# Bundler records that dependency during Gemfile evaluation, but it does not -# activate that exact version before the immediate `require "nomono/bundler"`. -# If multiple compatible nomono versions are installed, RubyGems may activate -# the newest installed version while Gemfile.lock pins an older compatible one; -# Bundler then aborts with "already activated nomono X, but your Gemfile -# requires nomono Y". Prefer the locked compatible version when present, then -# activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] -nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) -if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked -end -Kernel.send(:gem, 'nomono', *nomono_activation_requirements) require 'nomono/bundler' structuredmerge_local_gems = %w[ diff --git a/gems/html-merge/Gemfile b/gems/html-merge/Gemfile index 1b5444f60..ab14b3aaa 100644 --- a/gems/html-merge/Gemfile +++ b/gems/html-merge/Gemfile @@ -38,25 +38,9 @@ if direct_sibling_gems.any? && ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero?) direct_sibling_dev_was_set = ENV.key?("STRUCTUREDMERGE_DEV") direct_sibling_dev_original = ENV.fetch("STRUCTUREDMERGE_DEV", nil) + require "nomono/bundler" begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path("Gemfile.lock", __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == "nomono" } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - if nomono_locked - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] - end - end - Kernel.send(:gem, "nomono", *nomono_activation_requirements) - require "nomono/bundler" - if direct_sibling_templating && !direct_sibling_local - ENV["STRUCTUREDMERGE_DEV"] = File.expand_path("..", __dir__) - end + ENV["STRUCTUREDMERGE_DEV"] = File.expand_path("..", __dir__) if direct_sibling_templating && !direct_sibling_local eval_nomono_gems( gems: direct_sibling_gems, @@ -64,8 +48,6 @@ if direct_sibling_gems.any? && path_env: "STRUCTUREDMERGE_DEV", root: ["src", "my", "structuredmerge"] ) - rescue LoadError - warn "Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies." ensure if direct_sibling_templating && !direct_sibling_local if direct_sibling_dev_was_set @@ -77,9 +59,6 @@ if direct_sibling_gems.any? && end end -# Use released TSLP with the Ruby ABI platform-gem fix. -gem "tree_sitter_language_pack", "~> 1.13", ">= 1.13.3" - # Templating (env-switched: STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local paths) eval_gemfile "gemfiles/modular/templating.gemfile" if ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? diff --git a/gems/html-merge/Gemfile.lock b/gems/html-merge/Gemfile.lock index ca6b229f1..85a63258c 100644 --- a/gems/html-merge/Gemfile.lock +++ b/gems/html-merge/Gemfile.lock @@ -7,274 +7,6 @@ PATH tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly - specs: - ast-crispr-markdown-markly (7.1.0) - ast-crispr (= 7.1.0) - markly-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism - specs: - ast-crispr-ruby-prism (7.1.0) - ast-crispr (= 7.1.0) - prism-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr - specs: - ast-crispr (7.1.0) - ast-merge (= 7.1.0) - service_actor (~> 3.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git - specs: - ast-merge-git (7.1.0) - ast-merge (= 7.1.0) - json-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge - specs: - ast-merge (7.1.0) - benchmark - token-resolver (~> 2.0, >= 2.0.4) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template - specs: - ast-template (7.1.0) - ast-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge - specs: - bash-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge - specs: - binary-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge - specs: - citrus-toml-merge (7.1.0) - toml-merge (= 7.1.0) - toml-rb (~> 4.1) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge - specs: - commonmarker-merge (7.1.0) - commonmarker (~> 2.2) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge - specs: - dotenv-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge - specs: - go-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge - specs: - json-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem - specs: - kettle-jem (7.1.0) - addressable (>= 2.8, < 3) - ast-crispr-markdown-markly (= 7.1.0) - ast-crispr-ruby-prism (= 7.1.0) - ast-merge (= 7.1.0) - bash-merge (= 7.1.0) - citrus-toml-merge (= 7.1.0) - commonmarker-merge (= 7.1.0) - dotenv-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-dev (~> 2.3, >= 2.3.5) - kettle-rb (~> 0.1, >= 0.1.4) - kramdown-merge (= 7.1.0) - markdown-merge (= 7.1.0) - markly-merge (= 7.1.0) - prism-merge (= 7.1.0) - psych-merge (= 7.1.0) - rbs (>= 3.10) - rbs-merge (= 7.1.0) - ruby-merge (= 7.1.0) - token-resolver (~> 2.0, >= 2.0.4) - toml-merge (= 7.1.0) - toml-rb (~> 4.2) - tree_haver (= 7.1.0) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge - specs: - kramdown-merge (7.1.0) - kramdown (~> 2.5) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge - specs: - markdown-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge - specs: - markly-merge (7.1.0) - markdown-merge (= 7.1.0) - markly (~> 0.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge - specs: - parslet-toml-merge (7.1.0) - toml (~> 0.3) - toml-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge - specs: - plain-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge - specs: - prism-merge (7.1.0) - prism (~> 1.6) - ruby-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge - specs: - psych-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge - specs: - rbs-merge (7.1.0) - ast-merge (= 7.1.0) - rbs (>= 3.10) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge - specs: - ruby-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge - specs: - rust-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb - specs: - smorg-rb (7.1.0) - ast-merge (= 7.1.0) - ast-merge-git (= 7.1.0) - diff-lcs (~> 1.5) - go-merge (= 7.1.0) - json-merge (= 7.1.0) - kettle-jem (= 7.1.0) - markly-merge (= 7.1.0) - plain-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge - specs: - toml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver - specs: - tree_haver (7.1.0) - citrus (~> 3.0) - parslet (~> 2.0) - tree_sitter_language_pack (>= 1.13.2, < 2.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge - specs: - typescript-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge - specs: - yaml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge - specs: - zip-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - GEM remote: https://gem.coop/ specs: @@ -290,19 +22,25 @@ GEM rubocop (>= 1.0) version_gem (~> 1.1, >= 1.1.14) ast (2.4.3) - backports (3.25.3) + ast-crispr (7.1.0) + ast-merge (= 7.1.0) + service_actor (~> 3.9) + version_gem (~> 1.1, >= 1.1.9) + ast-merge (7.1.0) + benchmark + token-resolver (~> 2.0, >= 2.0.4) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) benchmark (0.5.0) bigdecimal (4.1.2) cgi (0.5.2) citrus (3.0.2) cmdparse (3.0.7) - commonmarker (2.9.0-x86_64-linux) concurrent-ruby (1.3.8) date (3.5.1) debug (1.11.1) irb (~> 1.10) reline (>= 0.3.8) - delegate (0.6.1) diff-lcs (1.6.2) diffy (3.4.4) dry-configurable (1.4.0) @@ -334,7 +72,6 @@ GEM dry-inflector (~> 1.0) dry-logic (~> 1.4) zeitwerk (~> 2.6) - emoji_regex (15.0.0) erb (6.0.6) gem_bench (2.0.5) bundler (>= 1.14) @@ -352,14 +89,6 @@ GEM rdoc (>= 4.0.0) reline (>= 0.4.2) json (2.21.1) - kettle-dev (2.3.9) - emoji_regex (>= 15.0) - kettle-rb (~> 0.1, >= 0.1.2) - kettle-test (~> 2.0, >= 2.0.4) - ruby-progressbar (~> 1.13) - kettle-drift (1.0.6) - version_gem (~> 1.1, >= 1.1.14) - kettle-rb (0.1.5) kettle-soup-cover (3.0.4) kettle-wash (~> 0.1, >= 0.1.0) simplecov (>= 1.0) @@ -367,17 +96,6 @@ GEM simplecov-console (~> 0.9, >= 0.9.5) simplecov-rcov (~> 0.3, >= 0.3.7) simplecov_lcov_formatter (~> 0.9, >= 0.9.0) - kettle-test (2.0.12) - appraisal2 (~> 3.0, >= 3.0.6) - backports (~> 3.0) - rspec (~> 3.0) - rspec-block_is_expected (~> 1.0, >= 1.0.6) - rspec-pending_for (~> 0.1, >= 0.1.20) - rspec-stubbed_env (~> 1.0, >= 1.0.6) - rspec_junit_formatter (~> 0.6) - silent_stream (~> 1.0, >= 1.0.12) - timecop-rspec (~> 1.0, >= 1.0.3) - turbo_tests2 (~> 3.1, >= 3.1.12) kettle-wash (0.1.1) version_gem (~> 1.1, >= 1.1.14) kramdown (2.5.2) @@ -387,16 +105,13 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) - markly (0.16.0) mutex_m (0.3.0) nokogiri (1.19.4-x86_64-linux-gnu) racc (~> 1.4) - nomono (1.0.9) + nomono (1.1.0) openssl (4.0.2) ostruct (0.6.3) parallel (1.28.0) - parallel_tests (5.7.0) - parallel parser (3.3.12.0) ast (~> 2.4.1) racc @@ -430,27 +145,6 @@ GEM reline (0.6.3) io-console (~> 0.5) rexml (3.4.4) - rspec (3.13.2) - rspec-core (~> 3.13.0) - rspec-expectations (~> 3.13.0) - rspec-mocks (~> 3.13.0) - rspec-block_is_expected (1.0.6) - rspec-core (3.13.6) - rspec-support (~> 3.13.0) - rspec-expectations (3.13.5) - diff-lcs (>= 1.2.0, < 2.0) - rspec-support (~> 3.13.0) - rspec-mocks (3.13.8) - diff-lcs (>= 1.2.0, < 2.0) - rspec-support (~> 3.13.0) - rspec-pending_for (0.1.21) - rspec-core (~> 3.0) - ruby_engine (~> 2.0) - ruby_version (~> 1.0) - rspec-stubbed_env (1.0.6) - rspec-support (3.13.7) - rspec_junit_formatter (0.6.0) - rspec-core (>= 2, < 4, != 2.12.0) rubocop (1.88.2) json (~> 2.3) language_server-protocol (~> 3.17.0.2) @@ -538,13 +232,8 @@ GEM rubocop (~> 1.72, >= 1.72.1) rubocop-ast (>= 1.44.0, < 2.0) ruby-progressbar (1.13.0) - ruby_engine (2.0.3) - ruby_version (1.0.3) service_actor (3.9.4) zeitwerk (>= 1.0) - silent_stream (1.0.12) - logger (~> 1.2) - version_gem (>= 1.1.8, < 3) simplecov (1.0.2) simplecov-cobertura (4.0.0) rexml @@ -586,26 +275,17 @@ GEM terminal-table (4.0.0) unicode-display_width (>= 1.1.1, < 4) thor (1.5.0) - timecop (0.9.11) - timecop-rspec (1.0.3) - delegate (~> 0.1) - rspec (~> 3.0) - timecop (>= 0.7, < 1) token-resolver (2.0.5) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.14) - toml (0.3.0) - parslet (>= 1.8.0, < 3.0.0) - toml-rb (4.2.0) - citrus (~> 3.0, > 3.0) - racc (~> 1.7) + tree_haver (7.1.0) + citrus (~> 3.0) + parslet (~> 2.0) + tree_sitter_language_pack (>= 1.13.2, < 2.0) + version_gem (~> 1.1, >= 1.1.9) tree_sitter_language_pack (1.13.3-x86_64-linux) sorbet-runtime (~> 0.5) tsort (0.2.0) - turbo_tests2 (3.2.0) - parallel_tests (>= 3.3.0, < 6) - rspec (>= 3.10) - version_gem (~> 1.1, >= 1.1.14) unicode-display_width (3.2.0) unicode-emoji (~> 4.1) unicode-emoji (4.2.0) @@ -642,42 +322,19 @@ PLATFORMS DEPENDENCIES addressable (>= 2.8, < 3) appraisal2-rubocop (~> 1.0, >= 1.0.0) - ast-crispr! - ast-crispr-markdown-markly! - ast-crispr-ruby-prism! - ast-merge! - ast-merge-git! - ast-template! - bash-merge! benchmark (~> 0.5, >= 0.5.0) - binary-merge! cgi (~> 0.5) - citrus-toml-merge! - commonmarker-merge! debug (>= 1.1) - dotenv-merge! erb (~> 6.0, >= 6.0.6) gem_bench (~> 2.0, >= 2.0.5) - go-merge! html-merge! irb (~> 1.17) - json-merge! - kettle-drift (~> 1.0, >= 1.0.6) - kettle-jem! kettle-soup-cover (~> 3.0, >= 3.0.3) kramdown (~> 2.5, >= 2.5.2) - kramdown-merge! kramdown-parser-gfm (~> 1.1) - markdown-merge! - markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) - parslet-toml-merge! - plain-merge! - prism-merge! - psych-merge! rbs (>= 3.0) - rbs-merge! rdoc (~> 6.11) reek (~> 6.5, >= 6.5.0) rubocop-gradual (~> 0.4, >= 0.4.0) @@ -687,25 +344,16 @@ DEPENDENCIES rubocop-on-rbs (~> 2.0, >= 2.0.0) rubocop-packaging (~> 0.6, >= 0.6.0) rubocop-ruby3_2 (~> 3.0, >= 3.0.6) - ruby-merge! - rust-merge! - smorg-rb! standard (~> 1.56, >= 1.56.0) stringio (>= 3.0) - toml-merge! - tree_haver! - tree_sitter_language_pack (~> 1.13, >= 1.13.3) - typescript-merge! webrick (~> 1.9) yaml-converter (~> 0.2, >= 0.2.3) - yaml-merge! yard (~> 0.9, >= 0.9.45) yard-fence (~> 0.9, >= 0.9.6) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) yard-timekeeper (~> 0.2, >= 0.2.4) yard-yaml (~> 0.2, >= 0.2.3) - zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af @@ -714,29 +362,18 @@ CHECKSUMS appraisal2-rubocop (1.0.0) sha256=b71410fbb014befda5340605a605b7f6f3f012739baf0acc5b4351b592c3258d ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 ast-crispr (7.1.0) - ast-crispr-markdown-markly (7.1.0) - ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) - ast-merge-git (7.1.0) - ast-template (7.1.0) - backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 - bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd - binary-merge (7.1.0) + bundler (4.0.17) sha256=214e21431b5665dd2f99df8a5511c6b151d7a72e8015c8b38f8b775b61cbb6c1 cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 - citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 - commonmarker (2.9.0-x86_64-linux) sha256=8cfe92970eef585a19ddf6613224b91cab64d6029834661bda801f877c9c7f43 - commonmarker-merge (7.1.0) concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 - delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 - dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -744,70 +381,43 @@ CHECKSUMS dry-logic (1.6.0) sha256=da6fedbc0f90fc41f9b0cc7e6f05f5d529d1efaef6c8dcc8e0733f685745cea2 dry-schema (1.16.0) sha256=cd3aaeabc0f1af66ec82a29096d4c4fb92a0a58b9dae29a22b1bbceb78985727 dry-types (1.9.1) sha256=baebeecdb9f8395d6c9d227b62011279440943e3ef2468fe8ccc1ba11467f178 - emoji_regex (15.0.0) sha256=a508b2c0bee561169564e0aec96085020c900520d335e5533fd8e78e59493829 erb (6.0.6) sha256=a9b24986700f5bf127c4f297c5403c3ca41b83b0a316c0cd09a096b56e644ae5 gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 - go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 html-merge (7.1.0) io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 - json-merge (7.1.0) - kettle-dev (2.3.9) - kettle-drift (1.0.6) sha256=46eda08fa4411d1f3c6682a95eef1c9df4e94611b3949f49d4c7b43c0ed356a3 - kettle-jem (7.1.0) - kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f - kettle-soup-cover (3.0.4) - kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 + kettle-soup-cover (3.0.4) sha256=36d4df472362d2020d16411d7ce26ba2fe2a41fb8be64577ff9b5280acf99d86 kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa - kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 - markdown-merge (7.1.0) - markly (0.16.0) sha256=6f70d79e385b1efc9e171f74c81628826259039fe6c778e03c3924c71dac5511 - markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-x86_64-linux-gnu) sha256=379fae440b28915e3f19d752ce2dcf8465ed2b2fbefd2a7ca0dd497bc981a06a - nomono (1.0.9) + nomono (1.1.0) sha256=463dd4c79da02a855739a1b5483190d527b7868688be905e84abdb3449b32c88 openssl (4.0.2) sha256=1037ad2868ae58df9ad917891c0c0f9815a1172f6846d4bcdd508e4c2ee747c2 ostruct (0.6.3) sha256=95a2ed4a4bd1d190784e666b47b2d3f078e4a9efda2fccf18f84ddc6538ed912 parallel (1.28.0) sha256=33e6de1484baf2524792d178b0913fc8eb94c628d6cfe45599ad4458c638c970 - parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 - parslet-toml-merge (7.1.0) - plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 - prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 - psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 - rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb reline (0.6.3) sha256=1198b04973565b36ec0f11542ab3f5cfeeec34823f4e54cebde90968092b1835 rexml (3.4.4) sha256=19e0a2c3425dfbf2d4fc1189747bdb2f849b6c5e74180401b15734bc97b5d142 - rspec (3.13.2) sha256=206284a08ad798e61f86d7ca3e376718d52c0bc944626b2349266f239f820587 - rspec-block_is_expected (1.0.6) sha256=bbad3dc30eba93becf4dcb3fd1bff5f37f6e212ab5cbf6132c07edba6ff74282 - rspec-core (3.13.6) sha256=a8823c6411667b60a8bca135364351dda34cd55e44ff94c4be4633b37d828b2d - rspec-expectations (3.13.5) sha256=33a4d3a1d95060aea4c94e9f237030a8f9eae5615e9bd85718fe3a09e4b58836 - rspec-mocks (3.13.8) sha256=086ad3d3d17533f4237643de0b5c42f04b66348c28bf6b9c2d3f4a3b01af1d47 - rspec-pending_for (0.1.21) sha256=c87fda50c20f8faca72d9cfa6a936abffd37860343f14aced95bbb29b8ae96bf - rspec-stubbed_env (1.0.6) sha256=6467a6eb0f72146d443ffb0c5a2a549d8812e59c04fbc81e03cd914ebf1f28dc - rspec-support (3.13.7) sha256=0640e5570872aafefd79867901deeeeb40b0c9875a36b983d85f54fb7381c47c - rspec_junit_formatter (0.6.0) sha256=40dde674e6ae4e6cc0ff560da25497677e34fefd2338cc467a8972f602b62b15 rubocop (1.88.2) sha256=8def251c90cd955feb4daa3edc0ab56893250c4ce90ef81e6c80c03f9a939bbf rubocop-ast (1.50.0) sha256=b9ca88300da0803ee222ad20cdb30494c0a784eed06fdc35d254b06d662788db rubocop-capybara (2.23.0) sha256=f9ea1ba3a7561ee8e88cf76fc378ce517ce5327155f305ee7b5c2500e5aee357 @@ -827,19 +437,13 @@ CHECKSUMS rubocop-rspec_rails (2.32.0) sha256=4a0d641c72f6ebb957534f539d9d0a62c47abd8ce0d0aeee1ef4701e892a9100 rubocop-ruby3_2 (3.0.7) sha256=f53dd6d286fb05186214fc6ec116783e7f837030918e8931c05de773e98f8466 rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431 - ruby-merge (7.1.0) ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 - ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa - ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 - rust-merge (7.1.0) service_actor (3.9.4) sha256=e63b523630b9a7e62959b2a90113b08d2565b5de9c148557b281ef847c9539ce - silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed - smorg-rb (7.1.0) sorbet-runtime (0.6.13351) sha256=f8fee17c6e3edf835dc6823d26afb9a7c8969c6710d1fabe2fb43f4e0c15c64f standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b @@ -850,23 +454,15 @@ CHECKSUMS strscan (3.1.8) sha256=aae2db611a225559f21ffbb71765c9a4e60fd262534a9ea84f4f11c7f32f679e terminal-table (4.0.0) sha256=f504793203f8251b2ea7c7068333053f0beeea26093ec9962e62ea79f94301d2 thor (1.5.0) sha256=e3a9e55fe857e44859ce104a84675ab6e8cd59c650a49106a05f55f136425e73 - timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 - timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.5) sha256=b852f924287ffb58a440856e862b056c8ad97e74b4b2526cee43e0771f40c25c - toml (0.3.0) sha256=0a91d0f76a9036e84e44f95693b12f58d358c1df3ac8e3b5271f2056ecc6e4b9 - toml-merge (7.1.0) - toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f - turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 - typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 webrick (1.9.2) sha256=beb4a15fc474defed24a3bda4ffd88a490d517c9e4e6118c3edce59e45864131 yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 - yaml-merge (7.1.0) yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd @@ -874,8 +470,7 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 - zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH - 4.0.16 + 4.0.17 diff --git a/gems/html-merge/LICENSE.md b/gems/html-merge/LICENSE.md index 295b76f91..57fe70a58 100644 --- a/gems/html-merge/LICENSE.md +++ b/gems/html-merge/LICENSE.md @@ -3,7 +3,7 @@ This project is made available under the following license. Choose the option that best fits your use case: -- [MIT](MIT.md) +- [MIT](https://github.com/structuredmerge/structuredmerge-ruby/blob/main/MIT.md) ## Copyright Notice diff --git a/gems/html-merge/README.md b/gems/html-merge/README.md index 303712d45..7c48e00d9 100644 --- a/gems/html-merge/README.md +++ b/gems/html-merge/README.md @@ -27,7 +27,7 @@ I've summarized my thoughts in [this blog post](https://dev.to/galtzo/hostile-ta |-------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | Works with MRI Ruby 4 | [![Ruby current Compat][💎ruby-c-i]][🚎11-c-wf]| | Support & Community | [![Join Me on Daily.dev's RubyFriends][✉️ruby-friends-img]][✉️ruby-friends] [![Get help from RubyForum][✉️ruby-forum-img]][✉️ruby-forum] [![Live Chat on Discord][✉️discord-invite-img-ftb]][✉️discord-invite] [![Get help from me on Upwork][👨🏼‍🏫expsup-upwork-img]][👨🏼‍🏫expsup-upwork] [![Get help from me on Codementor][👨🏼‍🏫expsup-codementor-img]][👨🏼‍🏫expsup-codementor] | -| Source | [![Source on GitLab.com][📜src-gl-img]][📜src-gl] [![Source on CodeBerg.org][📜src-cb-img]][📜src-cb] [![Source on Github.com][📜src-gh-img]][📜src-gh] [![The best SHA: dQw4w9WgXcQ!][🧮kloc-img]][🧮kloc] | +| Source | [![Source on GitLab.com][📜src-gl-img]][📜src-gl] [![Source on CodeBerg.org][📜src-cb-img]][📜src-cb] [![Source on GitHub.com][📜src-gh-img]][📜src-gh] [![The best SHA: dQw4w9WgXcQ!][🧮kloc-img]][🧮kloc] | | Documentation | [![Current release on RubyDoc.info][📜docs-cr-rd-img]][🚎yard-current] [![YARD on Galtzo.com][📜docs-head-rd-img]][🚎yard-head] [![Maintainer Blog][🚂maint-blog-img]][🚂maint-blog] [![GitLab Wiki][📜gl-wiki-img]][📜gl-wiki] [![GitHub Wiki][📜gh-wiki-img]][📜gh-wiki] | | Compliance | [![License: MIT][📄license-img]][📄license] [![Apache license compatibility: Category A][📄license-compat-img]][📄license-compat] [![📄ilo-declaration-img]][📄ilo-declaration] [![Security Policy][🔐security-img]][🔐security] [![Contributor Covenant 2.1][🪇conduct-img]][🪇conduct] [![SemVer 2.0.0][📌semver-img]][📌semver] | | Style | [![Enforced Code Style Linter][💎rlts-img]][💎rlts] [![Keep-A-Changelog 1.0.0][📗keep-changelog-img]][📗keep-changelog] [![Gitmoji Commits][📌gitmoji-img]][📌gitmoji] [![Compatibility appraised by: appraisal2][💎appraisal2-img]][💎appraisal2] | @@ -125,7 +125,7 @@ See [CHANGELOG.md][📌changelog] for a list of releases. ## 📄 License The gem is available as open source under the terms of -the [MIT](MIT.md) [![License: MIT][📄license-img]][📄license-ref]. +the [MIT](https://github.com/structuredmerge/structuredmerge-ruby/blob/main/MIT.md) [![License: MIT][📄license-img]][📄license-ref]. [gh-discussions]: https://github.com/structuredmerge/structuredmerge-ruby/discussions [⛳liberapay-img]: https://img.shields.io/liberapay/goal/pboling.svg?logo=liberapay&color=a51611&style=flat @@ -194,7 +194,7 @@ the [MIT](MIT.md) [![License: MIT][📄license-img]][📄license-ref]. [📜src-gl]: https://gitlab.com/structuredmerge/structuredmerge-ruby/-/tree/main/gems/html-merge [📜src-cb-img]: https://img.shields.io/badge/CodeBerg-4893CC?style=for-the-badge&logo=CodeBerg&logoColor=blue [📜src-cb]: https://codeberg.org/structuredmerge/structuredmerge-ruby/src/branch/main/gems/html-merge -[📜src-gh-img]: https://img.shields.io/badge/GitHub-238636?style=for-the-badge&logo=Github&logoColor=green +[📜src-gh-img]: https://img.shields.io/badge/GitHub-238636?style=for-the-badge&logo=GitHub&logoColor=green [📜src-gh]: https://github.com/structuredmerge/structuredmerge-ruby/tree/main/gems/html-merge [📜docs-cr-rd-img]: https://img.shields.io/badge/RubyDoc-Current_Release-943CD2?style=for-the-badge&logo=readthedocs&logoColor=white [📜docs-head-rd-img]: https://img.shields.io/badge/YARD_on_Galtzo.com-HEAD-943CD2?style=for-the-badge&logo=readthedocs&logoColor=white @@ -238,7 +238,7 @@ the [MIT](MIT.md) [![License: MIT][📄license-img]][📄license-ref]. [🔐security-img]: https://img.shields.io/badge/security-policy-259D6C.svg?style=flat [📄copyright-notice-explainer]: https://opensource.stackexchange.com/questions/5778/why-do-licenses-such-as-the-mit-license-specify-a-single-year [📄license]: LICENSE.md -[📄license-ref]: MIT.md +[📄license-ref]: https://github.com/structuredmerge/structuredmerge-ruby/blob/main/MIT.md [📄license-img]: https://img.shields.io/badge/License-MIT-259D6C.svg [📄license-compat]: https://www.apache.org/legal/resolved.html#category-a [📄license-compat-img]: https://img.shields.io/badge/Apache_Compatible:_Category_A-%E2%9C%93-259D6C.svg?style=flat&logo=Apache diff --git a/gems/html-merge/gemfiles/modular/coverage_local.gemfile b/gems/html-merge/gemfiles/modular/coverage_local.gemfile index 274ea1d6a..60c4cf2bb 100644 --- a/gems/html-merge/gemfiles/modular/coverage_local.gemfile +++ b/gems/html-merge/gemfiles/modular/coverage_local.gemfile @@ -3,28 +3,6 @@ # Local path overrides for development. # Loaded by the associated non-local gemfile when KETTLE_DEV_DEV != "false". -# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. -# Bundler records that dependency during Gemfile evaluation, but it does not -# activate that exact version before the immediate `require "nomono/bundler"`. -# If multiple compatible nomono versions are installed, RubyGems may activate -# the newest installed version while Gemfile.lock pins an older compatible one; -# Bundler then aborts with "already activated nomono X, but your Gemfile -# requires nomono Y". Prefer the locked compatible version when present, then -# activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] -nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) -if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == "nomono" } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - if nomono_locked - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] - end -end -Kernel.send(:gem, "nomono", *nomono_activation_requirements) require "nomono/bundler" local_gems = %w[kettle-dev kettle-test kettle-soup-cover kettle-drift] diff --git a/gems/html-merge/gemfiles/modular/documentation_local.gemfile b/gems/html-merge/gemfiles/modular/documentation_local.gemfile index 1e067b3b8..a4664a155 100644 --- a/gems/html-merge/gemfiles/modular/documentation_local.gemfile +++ b/gems/html-merge/gemfiles/modular/documentation_local.gemfile @@ -3,28 +3,6 @@ # Local path overrides for development. # Loaded by the associated non-local gemfile when GALTZO_FLOSS_DEV != "false". -# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. -# Bundler records that dependency during Gemfile evaluation, but it does not -# activate that exact version before the immediate `require "nomono/bundler"`. -# If multiple compatible nomono versions are installed, RubyGems may activate -# the newest installed version while Gemfile.lock pins an older compatible one; -# Bundler then aborts with "already activated nomono X, but your Gemfile -# requires nomono Y". Prefer the locked compatible version when present, then -# activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] -nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) -if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == "nomono" } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - if nomono_locked - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] - end -end -Kernel.send(:gem, "nomono", *nomono_activation_requirements) require "nomono/bundler" local_gems = %w[yard-fence yard-timekeeper yard-yaml] diff --git a/gems/html-merge/gemfiles/modular/style_local.gemfile b/gems/html-merge/gemfiles/modular/style_local.gemfile index df86257f5..48a918f73 100644 --- a/gems/html-merge/gemfiles/modular/style_local.gemfile +++ b/gems/html-merge/gemfiles/modular/style_local.gemfile @@ -6,28 +6,6 @@ # Local path overrides for development. # Loaded by the associated non-local gemfile when RUBOCOP_LTS_LOCAL != "false". -# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. -# Bundler records that dependency during Gemfile evaluation, but it does not -# activate that exact version before the immediate `require "nomono/bundler"`. -# If multiple compatible nomono versions are installed, RubyGems may activate -# the newest installed version while Gemfile.lock pins an older compatible one; -# Bundler then aborts with "already activated nomono X, but your Gemfile -# requires nomono Y". Prefer the locked compatible version when present, then -# activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] -nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) -if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == "nomono" } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - if nomono_locked - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] - end -end -Kernel.send(:gem, "nomono", *nomono_activation_requirements) require "nomono/bundler" local_gems = %w[rubocop-lts rubocop-lts-rspec rubocop-ruby3_2 standard-rubocop-lts] diff --git a/gems/html-merge/gemfiles/modular/templating_local.gemfile b/gems/html-merge/gemfiles/modular/templating_local.gemfile index 5239e47d9..6cd0b6e3c 100644 --- a/gems/html-merge/gemfiles/modular/templating_local.gemfile +++ b/gems/html-merge/gemfiles/modular/templating_local.gemfile @@ -4,28 +4,6 @@ # Loaded by the associated non-local gemfile when STRUCTUREDMERGE_DEV or KETTLE_DEV_DEV # is not "false". -# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. -# Bundler records that dependency during Gemfile evaluation, but it does not -# activate that exact version before the immediate `require "nomono/bundler"`. -# If multiple compatible nomono versions are installed, RubyGems may activate -# the newest installed version while Gemfile.lock pins an older compatible one; -# Bundler then aborts with "already activated nomono X, but your Gemfile -# requires nomono Y". Prefer the locked compatible version when present, then -# activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ["~> 1.0", ">= 1.0.8"] -nomono_lockfile = File.expand_path("../../Gemfile.lock", __dir__) -if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == "nomono" } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - if nomono_locked - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] - end -end -Kernel.send(:gem, "nomono", *nomono_activation_requirements) require "nomono/bundler" structuredmerge_local_gems = %w[ diff --git a/gems/json-merge/.kettle-drift.lock b/gems/json-merge/.kettle-drift.lock deleted file mode 100644 index bd0f9d183..000000000 --- a/gems/json-merge/.kettle-drift.lock +++ /dev/null @@ -1,208 +0,0 @@ -{ - "(direct_sibling_local ||\nENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?)": [ - { - "file": "Gemfile", - "lines": [ - 80, - 120, - 160 - ] - } - ], - ".find { |spec| spec.name == 'nomono' }\nnomono_locked = nomono_locked_spec &&": [ - { - "file": "Gemfile", - "lines": [ - 91, - 131, - 171 - ] - } - ], - "ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?)\ndirect_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV')": [ - { - "file": "Gemfile", - "lines": [ - 81, - 121, - 161 - ] - } - ], - "Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version)\nnomono_activation_requirements = [\"= #{nomono_locked_spec.version}\"] if nomono_locked": [ - { - "file": "Gemfile", - "lines": [ - 93, - 133, - 173 - ] - } - ], - "Kernel.send(:gem, 'nomono', *nomono_activation_requirements)\nrequire 'nomono/bundler'": [ - { - "file": "Gemfile", - "lines": [ - 96, - 136, - 176 - ] - } - ], - "direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV')\ndirect_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil)": [ - { - "file": "Gemfile", - "lines": [ - 82, - 122, - 162 - ] - } - ], - "eval_nomono_gems(\ngems: direct_sibling_gems,": [ - { - "file": "Gemfile", - "lines": [ - 60, - 100, - 140, - 180 - ] - } - ], - "gems: direct_sibling_gems,\nprefix: 'STRUCTUREDMERGE',": [ - { - "file": "Gemfile", - "lines": [ - 101, - 141, - 181 - ] - } - ], - "if File.file?(nomono_lockfile)\nnomono_locked_spec = Bundler::LockfileParser": [ - { - "file": "Gemfile", - "lines": [ - 43, - 87, - 127, - 167 - ] - } - ], - "if direct_sibling_dev_was_set\nENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original": [ - { - "file": "Gemfile", - "lines": [ - 110, - 150, - 190 - ] - } - ], - "if direct_sibling_gems.any? &&\n(direct_sibling_local ||": [ - { - "file": "Gemfile", - "lines": [ - 35, - 79, - 119, - 159 - ] - } - ], - "if direct_sibling_templating && !direct_sibling_local\nif direct_sibling_dev_was_set": [ - { - "file": "Gemfile", - "lines": [ - 69, - 109, - 149, - 189 - ] - } - ], - "nomono_activation_requirements = nomono_requirements\nnomono_lockfile = File.expand_path('Gemfile.lock', __dir__)": [ - { - "file": "Gemfile", - "lines": [ - 85, - 125, - 165 - ] - } - ], - "nomono_locked = nomono_locked_spec &&\nGem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version)": [ - { - "file": "Gemfile", - "lines": [ - 48, - 92, - 132, - 172 - ] - } - ], - "nomono_locked_spec = Bundler::LockfileParser\n.new(Bundler.read_file(nomono_lockfile))": [ - { - "file": "Gemfile", - "lines": [ - 44, - 88, - 128, - 168 - ] - } - ], - "nomono_lockfile = File.expand_path('Gemfile.lock', __dir__)\nif File.file?(nomono_lockfile)": [ - { - "file": "Gemfile", - "lines": [ - 86, - 126, - 166 - ] - } - ], - "path_env: 'STRUCTUREDMERGE_DEV',\nroot: %w[src my structuredmerge]": [ - { - "file": "Gemfile", - "lines": [ - 103, - 143, - 183 - ] - } - ], - "prefix: 'STRUCTUREDMERGE',\npath_env: 'STRUCTUREDMERGE_DEV',": [ - { - "file": "Gemfile", - "lines": [ - 102, - 142, - 182 - ] - } - ], - "require 'nomono/bundler'\nENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local": [ - { - "file": "Gemfile", - "lines": [ - 97, - 137, - 177 - ] - } - ], - "rescue LoadError\nwarn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.'": [ - { - "file": "Gemfile", - "lines": [ - 106, - 146, - 186 - ] - } - ] -} diff --git a/gems/json-merge/Gemfile b/gems/json-merge/Gemfile index c35ca08f1..4bfe324c3 100644 --- a/gems/json-merge/Gemfile +++ b/gems/json-merge/Gemfile @@ -37,140 +37,8 @@ if direct_sibling_gems.any? && ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) + require 'nomono/bundler' begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local eval_nomono_gems( @@ -179,8 +47,6 @@ if direct_sibling_gems.any? && path_env: 'STRUCTUREDMERGE_DEV', root: %w[src my structuredmerge] ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' ensure if direct_sibling_templating && !direct_sibling_local if direct_sibling_dev_was_set diff --git a/gems/json-merge/Gemfile.lock b/gems/json-merge/Gemfile.lock index d5271664d..588b3d1a6 100644 --- a/gems/json-merge/Gemfile.lock +++ b/gems/json-merge/Gemfile.lock @@ -136,7 +136,7 @@ GEM racc (~> 1.4) nokogiri (1.19.4-x86_64-linux-musl) racc (~> 1.4) - nomono (1.0.9) + nomono (1.1.0) openssl (4.0.2) ostruct (0.6.3) parallel (1.28.0) @@ -456,6 +456,7 @@ CHECKSUMS backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd + bundler (4.0.17) sha256=214e21431b5665dd2f99df8a5511c6b151d7a72e8015c8b38f8b775b61cbb6c1 bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 @@ -483,9 +484,9 @@ CHECKSUMS irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 json-merge (7.1.0) - kettle-dev (2.3.9) + kettle-dev (2.3.9) sha256=03b2f72c6dda4d2c4401ee3c0c96853116c922766e7b5b04224434a49b571bfc kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f - kettle-soup-cover (3.0.4) + kettle-soup-cover (3.0.4) sha256=36d4df472362d2020d16411d7ce26ba2fe2a41fb8be64577ff9b5280acf99d86 kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa @@ -499,7 +500,7 @@ CHECKSUMS nokogiri (1.19.4-arm64-darwin) sha256=a46db9853286e6597b36ebc6953817d15acf3a299583eb3f89fdc6f91dd63527 nokogiri (1.19.4-x86_64-linux-gnu) sha256=379fae440b28915e3f19d752ce2dcf8465ed2b2fbefd2a7ca0dd497bc981a06a nokogiri (1.19.4-x86_64-linux-musl) sha256=17dfb7c1fa194ae02fbf7c51a7afc8d278045ab3fdacfd86f91d02d7b274470b - nomono (1.0.9) + nomono (1.1.0) sha256=463dd4c79da02a855739a1b5483190d527b7868688be905e84abdb3449b32c88 openssl (4.0.2) sha256=1037ad2868ae58df9ad917891c0c0f9815a1172f6846d4bcdd508e4c2ee747c2 ostruct (0.6.3) sha256=95a2ed4a4bd1d190784e666b47b2d3f078e4a9efda2fccf18f84ddc6538ed912 parallel (1.28.0) sha256=33e6de1484baf2524792d178b0913fc8eb94c628d6cfe45599ad4458c638c970 @@ -593,4 +594,4 @@ CHECKSUMS zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH - 4.0.16 + 4.0.17 diff --git a/gems/json-merge/LICENSE.md b/gems/json-merge/LICENSE.md index 6ad318705..65a770d1f 100644 --- a/gems/json-merge/LICENSE.md +++ b/gems/json-merge/LICENSE.md @@ -3,8 +3,8 @@ This project is made available under the following licenses. Choose the option that best fits your use case: -- [AGPL-3.0-only](AGPL-3.0-only.md) -- [PolyForm-Small-Business-1.0.0](PolyForm-Small-Business-1.0.0.md) +- [AGPL-3.0-only](https://github.com/structuredmerge/structuredmerge-ruby/blob/main/AGPL-3.0-only.md) +- [PolyForm-Small-Business-1.0.0](https://github.com/structuredmerge/structuredmerge-ruby/blob/main/PolyForm-Small-Business-1.0.0.md) If none of the above licenses fit your use case, please [contact us](mailto:floss@galtzo.com) to discuss a custom commercial license. diff --git a/gems/json-merge/README.md b/gems/json-merge/README.md index 3d77bee09..a4febf8ef 100644 --- a/gems/json-merge/README.md +++ b/gems/json-merge/README.md @@ -86,7 +86,7 @@ File.write("merged.json", result.to_json) |-------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | Works with MRI Ruby 4 | [![Ruby current Compat][💎ruby-c-i]][🚎11-c-wf]| | Support & Community | [![Join Me on Daily.dev's RubyFriends][✉️ruby-friends-img]][✉️ruby-friends] [![Get help from RubyForum][✉️ruby-forum-img]][✉️ruby-forum] [![Live Chat on Discord][✉️discord-invite-img-ftb]][✉️discord-invite] [![Get help from me on Upwork][👨🏼‍🏫expsup-upwork-img]][👨🏼‍🏫expsup-upwork] [![Get help from me on Codementor][👨🏼‍🏫expsup-codementor-img]][👨🏼‍🏫expsup-codementor] | -| Source | [![Source on GitLab.com][📜src-gl-img]][📜src-gl] [![Source on CodeBerg.org][📜src-cb-img]][📜src-cb] [![Source on Github.com][📜src-gh-img]][📜src-gh] [![The best SHA: dQw4w9WgXcQ!][🧮kloc-img]][🧮kloc] | +| Source | [![Source on GitLab.com][📜src-gl-img]][📜src-gl] [![Source on CodeBerg.org][📜src-cb-img]][📜src-cb] [![Source on GitHub.com][📜src-gh-img]][📜src-gh] [![The best SHA: dQw4w9WgXcQ!][🧮kloc-img]][🧮kloc] | | Documentation | [![Current release on RubyDoc.info][📜docs-cr-rd-img]][🚎yard-current] [![YARD on Galtzo.com][📜docs-head-rd-img]][🚎yard-head] [![Maintainer Blog][🚂maint-blog-img]][🚂maint-blog] [![GitLab Wiki][📜gl-wiki-img]][📜gl-wiki] [![GitHub Wiki][📜gh-wiki-img]][📜gh-wiki] | | Compliance | [![License: AGPL-3.0-only OR PolyForm-Small-Business-1.0.0][📄license-img]][📄license] [![Apache license compatibility: Category X][📄license-compat-img]][📄license-compat] [![📄ilo-declaration-img]][📄ilo-declaration] [![Security Policy][🔐security-img]][🔐security] [![Contributor Covenant 2.1][🪇conduct-img]][🪇conduct] [![SemVer 2.0.0][📌semver-img]][📌semver] | | Style | [![Enforced Code Style Linter][💎rlts-img]][💎rlts] [![Keep-A-Changelog 1.0.0][📗keep-changelog-img]][📗keep-changelog] [![Gitmoji Commits][📌gitmoji-img]][📌gitmoji] [![Compatibility appraised by: appraisal2][💎appraisal2-img]][💎appraisal2] | @@ -438,7 +438,7 @@ See [CHANGELOG.md][📌changelog] for a list of releases. ## 📄 License -The gem is available under the following licenses: [AGPL-3.0-only](AGPL-3.0-only.md), [PolyForm-Small-Business-1.0.0](PolyForm-Small-Business-1.0.0.md). +The gem is available under the following licenses: [AGPL-3.0-only](https://github.com/structuredmerge/structuredmerge-ruby/blob/main/AGPL-3.0-only.md), [PolyForm-Small-Business-1.0.0](https://github.com/structuredmerge/structuredmerge-ruby/blob/main/PolyForm-Small-Business-1.0.0.md). See [LICENSE.md][📄license] for details. If none of the available licenses suit your use case, please [contact us](mailto:floss@galtzo.com) to discuss a custom commercial license. @@ -510,7 +510,7 @@ If none of the available licenses suit your use case, please [contact us](mailto [📜src-gl]: https://gitlab.com/structuredmerge/structuredmerge-ruby/-/tree/main/gems/json-merge [📜src-cb-img]: https://img.shields.io/badge/CodeBerg-4893CC?style=for-the-badge&logo=CodeBerg&logoColor=blue [📜src-cb]: https://codeberg.org/structuredmerge/structuredmerge-ruby/src/branch/main/gems/json-merge -[📜src-gh-img]: https://img.shields.io/badge/GitHub-238636?style=for-the-badge&logo=Github&logoColor=green +[📜src-gh-img]: https://img.shields.io/badge/GitHub-238636?style=for-the-badge&logo=GitHub&logoColor=green [📜src-gh]: https://github.com/structuredmerge/structuredmerge-ruby/tree/main/gems/json-merge [📜docs-cr-rd-img]: https://img.shields.io/badge/RubyDoc-Current_Release-943CD2?style=for-the-badge&logo=readthedocs&logoColor=white [📜docs-head-rd-img]: https://img.shields.io/badge/YARD_on_Galtzo.com-HEAD-943CD2?style=for-the-badge&logo=readthedocs&logoColor=white diff --git a/gems/json-merge/gemfiles/modular/coverage_local.gemfile b/gems/json-merge/gemfiles/modular/coverage_local.gemfile index b6836b5de..c851f5445 100644 --- a/gems/json-merge/gemfiles/modular/coverage_local.gemfile +++ b/gems/json-merge/gemfiles/modular/coverage_local.gemfile @@ -3,26 +3,6 @@ # Local path overrides for development. # Loaded by the associated non-local gemfile when KETTLE_DEV_DEV != "false". -# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. -# Bundler records that dependency during Gemfile evaluation, but it does not -# activate that exact version before the immediate `require "nomono/bundler"`. -# If multiple compatible nomono versions are installed, RubyGems may activate -# the newest installed version while Gemfile.lock pins an older compatible one; -# Bundler then aborts with "already activated nomono X, but your Gemfile -# requires nomono Y". Prefer the locked compatible version when present, then -# activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] -nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) -if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked -end -Kernel.send(:gem, 'nomono', *nomono_activation_requirements) require 'nomono/bundler' local_gems = %w[kettle-dev kettle-test kettle-soup-cover kettle-drift] diff --git a/gems/json-merge/gemfiles/modular/documentation_local.gemfile b/gems/json-merge/gemfiles/modular/documentation_local.gemfile index 35970ca76..688c7e199 100644 --- a/gems/json-merge/gemfiles/modular/documentation_local.gemfile +++ b/gems/json-merge/gemfiles/modular/documentation_local.gemfile @@ -3,26 +3,6 @@ # Local path overrides for development. # Loaded by the associated non-local gemfile when GALTZO_FLOSS_DEV != "false". -# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. -# Bundler records that dependency during Gemfile evaluation, but it does not -# activate that exact version before the immediate `require "nomono/bundler"`. -# If multiple compatible nomono versions are installed, RubyGems may activate -# the newest installed version while Gemfile.lock pins an older compatible one; -# Bundler then aborts with "already activated nomono X, but your Gemfile -# requires nomono Y". Prefer the locked compatible version when present, then -# activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] -nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) -if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked -end -Kernel.send(:gem, 'nomono', *nomono_activation_requirements) require 'nomono/bundler' local_gems = %w[yard-fence yard-timekeeper yard-yaml] diff --git a/gems/json-merge/gemfiles/modular/style_local.gemfile b/gems/json-merge/gemfiles/modular/style_local.gemfile index 269a58c92..043eca0d7 100644 --- a/gems/json-merge/gemfiles/modular/style_local.gemfile +++ b/gems/json-merge/gemfiles/modular/style_local.gemfile @@ -6,26 +6,6 @@ # Local path overrides for development. # Loaded by the associated non-local gemfile when RUBOCOP_LTS_LOCAL != "false". -# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. -# Bundler records that dependency during Gemfile evaluation, but it does not -# activate that exact version before the immediate `require "nomono/bundler"`. -# If multiple compatible nomono versions are installed, RubyGems may activate -# the newest installed version while Gemfile.lock pins an older compatible one; -# Bundler then aborts with "already activated nomono X, but your Gemfile -# requires nomono Y". Prefer the locked compatible version when present, then -# activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] -nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) -if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked -end -Kernel.send(:gem, 'nomono', *nomono_activation_requirements) require 'nomono/bundler' local_gems = %w[rubocop-lts rubocop-lts-rspec rubocop-ruby3_2 standard-rubocop-lts] diff --git a/gems/json-merge/gemfiles/modular/templating_local.gemfile b/gems/json-merge/gemfiles/modular/templating_local.gemfile index 3a458a7d0..c3cb51d29 100644 --- a/gems/json-merge/gemfiles/modular/templating_local.gemfile +++ b/gems/json-merge/gemfiles/modular/templating_local.gemfile @@ -4,26 +4,6 @@ # Loaded by the associated non-local gemfile when STRUCTUREDMERGE_DEV or KETTLE_DEV_DEV # is not "false". -# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. -# Bundler records that dependency during Gemfile evaluation, but it does not -# activate that exact version before the immediate `require "nomono/bundler"`. -# If multiple compatible nomono versions are installed, RubyGems may activate -# the newest installed version while Gemfile.lock pins an older compatible one; -# Bundler then aborts with "already activated nomono X, but your Gemfile -# requires nomono Y". Prefer the locked compatible version when present, then -# activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] -nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) -if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked -end -Kernel.send(:gem, 'nomono', *nomono_activation_requirements) require 'nomono/bundler' structuredmerge_local_gems = %w[ diff --git a/gems/kettle-jem/.github/workflows/dep-heads.yml b/gems/kettle-jem/.github/workflows/dep-heads.yml index 3d9b0d600..e562781bf 100644 --- a/gems/kettle-jem/.github/workflows/dep-heads.yml +++ b/gems/kettle-jem/.github/workflows/dep-heads.yml @@ -42,6 +42,13 @@ jobs: - ruby: "ruby" appraisal: "dep-heads" exec_cmd: "kettle-test" + # Run directly from the generated appraisal Gemfile so setup-ruby + # does not bootstrap Appraisal.root.gemfile against dependency + # sources before this dep-heads appraisal is selected. + # This makes gemfiles/dep_heads.gemfile required checked-in output + # for repositories using this generated workflow. + bundle_gemfile: "gemfiles/dep_heads.gemfile" + direct_bundle: true rubygems: latest bundler: latest @@ -61,20 +68,6 @@ jobs: bundler: ${{ matrix.bundler }} bundler-cache: true - - name: "[Attempt 1] Appraisal for ${{ matrix.ruby }}@${{ matrix.appraisal }}" - id: bundleAppraisalAttempt1 - if: ${{ !env.ACT }} - run: bundle exec appraisal ${{ matrix.appraisal }} install - # Continue to the next step on failure - continue-on-error: true - - # Effectively an automatic retry of the previous step. - - name: "[Attempt 2] Appraisal for ${{ matrix.ruby }}@${{ matrix.appraisal }}" - id: bundleAppraisalAttempt2 - # If bundleAppraisalAttempt1 failed, try again here; Otherwise skip. - if: ${{ !env.ACT && steps.bundleAppraisalAttempt1.outcome == 'failure' }} - run: bundle exec appraisal ${{ matrix.appraisal }} install - - name: Restore RSpec status log if: "${{!env.ACT}}" uses: actions/cache@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0 @@ -85,9 +78,9 @@ jobs: rspec-status-dep-heads-${{matrix.ruby}}-${{matrix.appraisal}}-${{hashFiles('**/Gemfile.lock','Appraisal.root.gemfile','gemfiles/**/*.gemfile')}}- rspec-status-dep-heads-${{matrix.ruby}}-${{matrix.appraisal}}- - - name: Tests for ${{ matrix.ruby }} via Appraisal and ${{ matrix.exec_cmd }} + - name: Tests for ${{ matrix.ruby }} via ${{ matrix.exec_cmd }} if: ${{ !env.ACT }} - run: bundle exec appraisal ${{ matrix.appraisal }} bundle exec ${{ matrix.exec_cmd }} + run: bundle exec ${{ matrix.exec_cmd }} truffleruby: if: "(github.event_name != 'push' || (!contains(github.event.head_commit.message, '[ci skip]') && !contains(github.event.head_commit.message, '[skip ci]'))) && (github.event_name != 'pull_request' || startsWith(github.head_ref, 'engines/') || startsWith(github.head_ref, 'truffleruby/'))" @@ -103,9 +96,9 @@ jobs: - ruby: "truffleruby" appraisal: "dep-heads" exec_cmd: "kettle-test" - # TruffleRuby's bundled RubyGems/Bundler path cannot reliably - # bootstrap Appraisal against all configured gem servers here. - # Run directly from the generated appraisal Gemfile instead. + # Run directly from the generated appraisal Gemfile so setup-ruby + # does not bootstrap Appraisal.root.gemfile against dependency + # sources before this dep-heads appraisal is selected. # This makes gemfiles/dep_heads.gemfile required checked-in output # for repositories using this generated workflow. bundle_gemfile: "gemfiles/dep_heads.gemfile" @@ -149,7 +142,7 @@ jobs: runs-on: ubuntu-latest continue-on-error: ${{ matrix.experimental || endsWith(matrix.ruby, 'head') }} env: - BUNDLE_GEMFILE: ${{ github.workspace }}/Appraisal.root.gemfile + BUNDLE_GEMFILE: ${{ github.workspace }}/${{ matrix.bundle_gemfile || 'Appraisal.root.gemfile' }} strategy: fail-fast: true matrix: @@ -157,6 +150,13 @@ jobs: - ruby: "jruby" appraisal: "dep-heads" exec_cmd: "kettle-test" + # Run directly from the generated appraisal Gemfile so setup-ruby + # does not bootstrap Appraisal.root.gemfile against dependency + # sources before this dep-heads appraisal is selected. + # This makes gemfiles/dep_heads.gemfile required checked-in output + # for repositories using this generated workflow. + bundle_gemfile: "gemfiles/dep_heads.gemfile" + direct_bundle: true rubygems: default bundler: default experimental: true @@ -177,17 +177,6 @@ jobs: bundler: ${{ matrix.bundler }} bundler-cache: true - - name: "[Attempt 1] Appraisal for ${{ matrix.ruby }}@${{ matrix.appraisal }}" - id: bundleAppraisalAttempt1 - if: ${{ !env.ACT }} - run: bundle exec appraisal ${{ matrix.appraisal }} install - continue-on-error: true - - - name: "[Attempt 2] Appraisal for ${{ matrix.ruby }}@${{ matrix.appraisal }}" - id: bundleAppraisalAttempt2 - if: ${{ !env.ACT && steps.bundleAppraisalAttempt1.outcome == 'failure' }} - run: bundle exec appraisal ${{ matrix.appraisal }} install - - name: Restore RSpec status log if: "${{!env.ACT}}" uses: actions/cache@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0 @@ -198,6 +187,6 @@ jobs: rspec-status-dep-heads-${{matrix.ruby}}-${{matrix.appraisal}}-${{hashFiles('**/Gemfile.lock','Appraisal.root.gemfile','gemfiles/**/*.gemfile')}}- rspec-status-dep-heads-${{matrix.ruby}}-${{matrix.appraisal}}- - - name: Tests for ${{ matrix.ruby }} via Appraisal and ${{ matrix.exec_cmd }} + - name: Tests for ${{ matrix.ruby }} via ${{ matrix.exec_cmd }} if: ${{ !env.ACT }} - run: bundle exec appraisal ${{ matrix.appraisal }} bundle exec ${{ matrix.exec_cmd }} + run: bundle exec ${{ matrix.exec_cmd }} diff --git a/gems/kettle-jem/.kettle-drift.lock b/gems/kettle-jem/.kettle-drift.lock index 7ed46f616..a39b59e0a 100644 --- a/gems/kettle-jem/.kettle-drift.lock +++ b/gems/kettle-jem/.kettle-drift.lock @@ -33,8 +33,8 @@ "file": ".github/workflows/dep-heads.yml", "lines": [ 43, - 104, - 158 + 97, + 151 ] } ], @@ -48,6 +48,16 @@ ] } ], + "exec_cmd: \"kettle-test\"\n# Run directly from the generated appraisal Gemfile so setup-ruby": [ + { + "file": ".github/workflows/dep-heads.yml", + "lines": [ + 44, + 98, + 152 + ] + } + ], "exec_cmd: \"kettle-test\"\nrubygems: default": [ { "file": ".github/workflows/heads.yml", diff --git a/gems/kettle-jem/.rubocop_gradual.lock b/gems/kettle-jem/.rubocop_gradual.lock index 2458aa725..2968adb54 100644 --- a/gems/kettle-jem/.rubocop_gradual.lock +++ b/gems/kettle-jem/.rubocop_gradual.lock @@ -28,10 +28,10 @@ [111, 3, 54, "Gemspec/DependencyVersion: Dependency version specification is required.", 3116501450], [112, 3, 54, "Gemspec/DependencyVersion: Dependency version specification is required.", 2771890615] ], - "lib/kettle/jem.rb:3456284": [ - [3868, 9, 10, "ThreadSafety/NewThread: Avoid starting new threads.", 3411682361], - [4269, 9, 32, "Style/SafeNavigation: Use safe navigation (`&.`) instead of checking if an object exists before calling the method.", 2221659486], - [10931, 9, 10, "ThreadSafety/NewThread: Avoid starting new threads.", 3411682361] + "lib/kettle/jem.rb:1835077538": [ + [3877, 9, 10, "ThreadSafety/NewThread: Avoid starting new threads.", 3411682361], + [4278, 9, 32, "Style/SafeNavigation: Use safe navigation (`&.`) instead of checking if an object exists before calling the method.", 2221659486], + [10943, 9, 10, "ThreadSafety/NewThread: Avoid starting new threads.", 3411682361] ], "lib/kettle/jem/tasks/install_task.rb:2120658194": [ [1099, 47, 29, "Style/SafeNavigation: Use safe navigation (`&.`) instead of checking if an object exists before calling the method.", 964126728] @@ -40,15 +40,15 @@ [3, 1, 58, "RSpec/SpecFilePathFormat: Spec path should end with `kettle/jem*RubyGems_thin_vertical_slice*_spec.rb`.", 3968596449], [3, 29, 30, "RSpec/DescribeMethod: The second argument to describe should be the method being tested. '#instance' or '.class'.", 3589370396] ], - "spec/integration/appraisal_helper_and_token_spec.rb:373564999": [ + "spec/integration/appraisal_helper_and_token_spec.rb:3707928361": [ [3, 1, 67, "RSpec/SpecFilePathFormat: Spec path should end with `kettle/jem*appraisal_helpers_and_template_tokens*_spec.rb`.", 1438226331], [3, 29, 39, "RSpec/DescribeMethod: The second argument to describe should be the method being tested. '#instance' or '.class'.", 1357968070] ], - "spec/integration/appraisals_and_gemfile_template_spec.rb:1424799502": [ + "spec/integration/appraisals_and_gemfile_template_spec.rb:1317014732": [ [3, 1, 63, "RSpec/SpecFilePathFormat: Spec path should end with `kettle/jem*Appraisals_and_Gemfile_templating*_spec.rb`.", 2367084249], [3, 29, 35, "RSpec/DescribeMethod: The second argument to describe should be the method being tested. '#instance' or '.class'.", 1539510212] ], - "spec/integration/config_metadata_template_spec.rb:3920882747": [ + "spec/integration/config_metadata_template_spec.rb:3410327496": [ [3, 1, 67, "RSpec/SpecFilePathFormat: Spec path should end with `kettle/jem*configuration_and_metadata_templating*_spec.rb`.", 3610099387], [3, 29, 39, "RSpec/DescribeMethod: The second argument to describe should be the method being tested. '#instance' or '.class'.", 1907259302] ], diff --git a/gems/kettle-jem/CHANGELOG.md b/gems/kettle-jem/CHANGELOG.md index 866902b36..c23652df7 100644 --- a/gems/kettle-jem/CHANGELOG.md +++ b/gems/kettle-jem/CHANGELOG.md @@ -64,6 +64,9 @@ Please file a bug if you notice a violation of semantic versioning. collection entries with template package entries so project-specific packaged files are not lost when the template rewrites the generated gemspec structure. +- Main Gemfile templating now removes repeated direct sibling execution blocks + left behind by older `nomono` bootstrap output when applying the simplified + `require "nomono/bundler"` loader. - Gemspec templating now restores additional legacy Prism policy behavior for destination-only metadata fields, Bundler `git ls-files` package declarations, and empty development-dependency section cleanup after runtime dependency diff --git a/gems/kettle-jem/Gemfile b/gems/kettle-jem/Gemfile index 346a80112..494373787 100644 --- a/gems/kettle-jem/Gemfile +++ b/gems/kettle-jem/Gemfile @@ -74,9 +74,6 @@ if direct_sibling_gems.any? && end end -# Use released TSLP with the Ruby ABI platform-gem fix. -gem "tree_sitter_language_pack", "~> 1.13", ">= 1.13.3" - # Templating (env-switched: STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local paths) eval_gemfile "gemfiles/modular/templating.gemfile" if ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? diff --git a/gems/kettle-jem/Gemfile.lock b/gems/kettle-jem/Gemfile.lock index 416ab96ff..4db943597 100644 --- a/gems/kettle-jem/Gemfile.lock +++ b/gems/kettle-jem/Gemfile.lock @@ -27,154 +27,6 @@ PATH tree_haver (= 7.1.0) yaml-merge (= 7.1.0) -PATH - remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly - specs: - ast-crispr-markdown-markly (7.1.0) - ast-crispr (= 7.1.0) - markly-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism - specs: - ast-crispr-ruby-prism (7.1.0) - ast-crispr (= 7.1.0) - prism-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/ast-merge - specs: - ast-merge (7.1.0) - benchmark - token-resolver (~> 2.0, >= 2.0.4) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/bash-merge - specs: - bash-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge - specs: - citrus-toml-merge (7.1.0) - toml-merge (= 7.1.0) - toml-rb (~> 4.1) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge - specs: - commonmarker-merge (7.1.0) - commonmarker (~> 2.2) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge - specs: - dotenv-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/json-merge - specs: - json-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge - specs: - kramdown-merge (7.1.0) - kramdown (~> 2.5) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge - specs: - markdown-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/markly-merge - specs: - markly-merge (7.1.0) - markdown-merge (= 7.1.0) - markly (~> 0.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/prism-merge - specs: - prism-merge (7.1.0) - prism (~> 1.6) - ruby-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/psych-merge - specs: - psych-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - yaml-merge (= 7.1.0) - -PATH - remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge - specs: - rbs-merge (7.1.0) - ast-merge (= 7.1.0) - rbs (>= 3.10) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge - specs: - ruby-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/toml-merge - specs: - toml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/tree_haver - specs: - tree_haver (7.1.0) - citrus (~> 3.0) - parslet (~> 2.0) - tree_sitter_language_pack (>= 1.13.2, < 2.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge - specs: - yaml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - GEM remote: https://gem.coop/ specs: @@ -194,7 +46,24 @@ GEM ast-merge (= 7.1.0) service_actor (~> 3.9) version_gem (~> 1.1, >= 1.1.9) + ast-crispr-markdown-markly (7.1.0) + ast-crispr (= 7.1.0) + markly-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + ast-crispr-ruby-prism (7.1.0) + ast-crispr (= 7.1.0) + prism-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + ast-merge (7.1.0) + benchmark + token-resolver (~> 2.0, >= 2.0.4) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) backports (3.25.3) + bash-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) benchmark (0.5.0) bigdecimal (4.1.2) bundler-audit (0.9.3) @@ -202,8 +71,16 @@ GEM thor (~> 1.0) cgi (0.5.2) citrus (3.0.2) + citrus-toml-merge (7.1.0) + toml-merge (= 7.1.0) + toml-rb (~> 4.1) + version_gem (~> 1.1, >= 1.1.9) cmdparse (3.0.7) commonmarker (2.9.0-x86_64-linux) + commonmarker-merge (7.1.0) + commonmarker (~> 2.2) + markdown-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) concurrent-ruby (1.3.8) date (3.5.1) debug (1.11.1) @@ -212,6 +89,10 @@ GEM delegate (0.6.1) diff-lcs (1.6.2) diffy (3.4.4) + dotenv-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) dry-configurable (1.4.0) dry-core (~> 1.0) zeitwerk (~> 2.6) @@ -261,13 +142,15 @@ GEM rdoc (>= 4.0.0) reline (>= 0.4.2) json (2.21.1) + json-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) kettle-dev (2.3.9) emoji_regex (>= 15.0) kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) - kettle-drift (1.0.6) - version_gem (~> 1.1, >= 1.1.14) kettle-rb (0.1.5) kettle-soup-cover (3.0.4) kettle-wash (~> 0.1, >= 0.1.0) @@ -291,16 +174,28 @@ GEM version_gem (~> 1.1, >= 1.1.14) kramdown (2.5.2) rexml (>= 3.4.4) + kramdown-merge (7.1.0) + kramdown (~> 2.5) + markdown-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) kramdown-parser-gfm (1.1.0) kramdown (~> 2.0) language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) + markdown-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) markly (0.16.0) + markly-merge (7.1.0) + markdown-merge (= 7.1.0) + markly (~> 0.9) + version_gem (~> 1.1, >= 1.1.9) mutex_m (0.3.0) nokogiri (1.19.4-x86_64-linux-gnu) racc (~> 1.4) - nomono (1.0.8) + nomono (1.1.0) openssl (4.0.2) ostruct (0.6.3) parallel (1.28.0) @@ -314,9 +209,18 @@ GEM prettyprint prettyprint (0.2.0) prism (1.9.0) + prism-merge (7.1.0) + prism (~> 1.6) + ruby-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) psych (5.4.0) date stringio + psych-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + yaml-merge (= 7.1.0) public_suffix (7.0.5) racc (1.8.1) rainbow (3.1.1) @@ -325,6 +229,11 @@ GEM logger prism (>= 1.6.0) tsort + rbs-merge (7.1.0) + ast-merge (= 7.1.0) + rbs (>= 3.10) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) rdoc (6.17.0) erb psych (>= 4.0.0) @@ -448,6 +357,10 @@ GEM lint_roller (~> 1.1) rubocop (~> 1.72, >= 1.72.1) rubocop-ast (>= 1.44.0, < 2.0) + ruby-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) ruby-progressbar (1.13.0) ruby_engine (2.0.3) ruby_version (1.0.3) @@ -507,9 +420,18 @@ GEM token-resolver (2.0.5) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.14) + toml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) toml-rb (4.2.0) citrus (~> 3.0, > 3.0) racc (~> 1.7) + tree_haver (7.1.0) + citrus (~> 3.0) + parslet (~> 2.0) + tree_sitter_language_pack (>= 1.13.2, < 2.0) + version_gem (~> 1.1, >= 1.1.9) tree_sitter_language_pack (1.13.3-x86_64-linux) sorbet-runtime (~> 0.5) tsort (0.2.0) @@ -527,6 +449,10 @@ GEM kramdown (>= 2.4, < 3) kramdown-parser-gfm (~> 1.1) version_gem (~> 1.1, >= 1.1.13) + yaml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) yard (0.9.45) yard-fence (0.9.6) rdoc (>= 6.11, < 8) @@ -553,37 +479,22 @@ PLATFORMS DEPENDENCIES appraisal2 (~> 3.2, >= 3.2.0) appraisal2-rubocop (~> 1.0, >= 1.0.0) - ast-crispr-markdown-markly! - ast-crispr-ruby-prism! - ast-merge! - bash-merge! benchmark (~> 0.5, >= 0.5.0) bundler-audit (~> 0.9.3) cgi (~> 0.5) - citrus-toml-merge! - commonmarker-merge! debug (>= 1.1) - dotenv-merge! erb (~> 6.0, >= 6.0.6) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.4) irb (~> 1.17) - json-merge! - kettle-drift (~> 1.0, >= 1.0.6) kettle-jem! kettle-soup-cover (~> 3.0, >= 3.0.3) kettle-test (~> 2.0, >= 2.0.12) kramdown (~> 2.5, >= 2.5.2) - kramdown-merge! kramdown-parser-gfm (~> 1.1) - markdown-merge! - markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) - prism-merge! - psych-merge! rake (~> 13.0) - rbs-merge! rdoc (~> 6.11) reek (~> 6.5, >= 6.5.0) require_bench (~> 1.0, >= 1.0.4) @@ -594,18 +505,13 @@ DEPENDENCIES rubocop-on-rbs (~> 2.0, >= 2.0.0) rubocop-packaging (~> 0.6, >= 0.6.0) rubocop-ruby3_2 (~> 3.0, >= 3.0.6) - ruby-merge! ruby-progressbar (~> 1.13) standard (~> 1.56, >= 1.56.0) stone_checksums (~> 1.0, >= 1.0.6) stringio (>= 3.0) - toml-merge! - tree_haver! - tree_sitter_language_pack (~> 1.13, >= 1.13.3) turbo_tests2 (~> 3.2, >= 3.2.0) webrick (~> 1.9) yaml-converter (~> 0.2, >= 0.2.3) - yaml-merge! yard (~> 0.9, >= 0.9.45) yard-fence (~> 0.9, >= 0.9.6) yard-junk (~> 0.1, >= 0.1.0) @@ -627,6 +533,7 @@ CHECKSUMS bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd + bundler (4.0.17) sha256=214e21431b5665dd2f99df8a5511c6b151d7a72e8015c8b38f8b775b61cbb6c1 bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 @@ -659,7 +566,6 @@ CHECKSUMS json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 json-merge (7.1.0) kettle-dev (2.3.9) sha256=03b2f72c6dda4d2c4401ee3c0c96853116c922766e7b5b04224434a49b571bfc - kettle-drift (1.0.6) kettle-jem (7.1.0) kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f kettle-soup-cover (3.0.4) sha256=36d4df472362d2020d16411d7ce26ba2fe2a41fb8be64577ff9b5280acf99d86 @@ -676,7 +582,7 @@ CHECKSUMS markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-x86_64-linux-gnu) sha256=379fae440b28915e3f19d752ce2dcf8465ed2b2fbefd2a7ca0dd497bc981a06a - nomono (1.0.8) sha256=bf4b9b426cbf216ab17b70db474f691b8ae1f1e29de8db4b0ecd405e6e7e1c80 + nomono (1.1.0) sha256=463dd4c79da02a855739a1b5483190d527b7868688be905e84abdb3449b32c88 openssl (4.0.2) sha256=1037ad2868ae58df9ad917891c0c0f9815a1172f6846d4bcdd508e4c2ee747c2 ostruct (0.6.3) sha256=95a2ed4a4bd1d190784e666b47b2d3f078e4a9efda2fccf18f84ddc6538ed912 parallel (1.28.0) sha256=33e6de1484baf2524792d178b0913fc8eb94c628d6cfe45599ad4458c638c970 @@ -776,4 +682,4 @@ CHECKSUMS zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH - 4.0.16 + 4.0.17 diff --git a/gems/kettle-jem/LICENSE.md b/gems/kettle-jem/LICENSE.md index 6ad318705..65a770d1f 100644 --- a/gems/kettle-jem/LICENSE.md +++ b/gems/kettle-jem/LICENSE.md @@ -3,8 +3,8 @@ This project is made available under the following licenses. Choose the option that best fits your use case: -- [AGPL-3.0-only](AGPL-3.0-only.md) -- [PolyForm-Small-Business-1.0.0](PolyForm-Small-Business-1.0.0.md) +- [AGPL-3.0-only](https://github.com/structuredmerge/structuredmerge-ruby/blob/main/AGPL-3.0-only.md) +- [PolyForm-Small-Business-1.0.0](https://github.com/structuredmerge/structuredmerge-ruby/blob/main/PolyForm-Small-Business-1.0.0.md) If none of the above licenses fit your use case, please [contact us](mailto:floss@galtzo.com) to discuss a custom commercial license. diff --git a/gems/kettle-jem/README.md b/gems/kettle-jem/README.md index 880997f55..b241d1bf2 100644 --- a/gems/kettle-jem/README.md +++ b/gems/kettle-jem/README.md @@ -48,7 +48,7 @@ to build `kettle-jem` extension gems against the supported plugin seam. |-------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | Works with MRI Ruby 4 | [![Ruby current Compat][💎ruby-c-i]][🚎11-c-wf]| | Support & Community | [![Join Me on Daily.dev's RubyFriends][✉️ruby-friends-img]][✉️ruby-friends] [![Get help from RubyForum][✉️ruby-forum-img]][✉️ruby-forum] [![Live Chat on Discord][✉️discord-invite-img-ftb]][✉️discord-invite] [![Get help from me on Upwork][👨🏼‍🏫expsup-upwork-img]][👨🏼‍🏫expsup-upwork] [![Get help from me on Codementor][👨🏼‍🏫expsup-codementor-img]][👨🏼‍🏫expsup-codementor] | -| Source | [![Source on GitLab.com][📜src-gl-img]][📜src-gl] [![Source on CodeBerg.org][📜src-cb-img]][📜src-cb] [![Source on Github.com][📜src-gh-img]][📜src-gh] [![The best SHA: dQw4w9WgXcQ!][🧮kloc-img]][🧮kloc] | +| Source | [![Source on GitLab.com][📜src-gl-img]][📜src-gl] [![Source on CodeBerg.org][📜src-cb-img]][📜src-cb] [![Source on GitHub.com][📜src-gh-img]][📜src-gh] [![The best SHA: dQw4w9WgXcQ!][🧮kloc-img]][🧮kloc] | | Documentation | [![Current release on RubyDoc.info][📜docs-cr-rd-img]][🚎yard-current] [![YARD on Galtzo.com][📜docs-head-rd-img]][🚎yard-head] [![Maintainer Blog][🚂maint-blog-img]][🚂maint-blog] [![GitLab Wiki][📜gl-wiki-img]][📜gl-wiki] [![GitHub Wiki][📜gh-wiki-img]][📜gh-wiki] | | Compliance | [![License: AGPL-3.0-only OR PolyForm-Small-Business-1.0.0][📄license-img]][📄license] [![Apache license compatibility: Category X][📄license-compat-img]][📄license-compat] [![📄ilo-declaration-img]][📄ilo-declaration] [![Security Policy][🔐security-img]][🔐security] [![Contributor Covenant 2.1][🪇conduct-img]][🪇conduct] [![SemVer 2.0.0][📌semver-img]][📌semver] | | Style | [![Enforced Code Style Linter][💎rlts-img]][💎rlts] [![Keep-A-Changelog 1.0.0][📗keep-changelog-img]][📗keep-changelog] [![Gitmoji Commits][📌gitmoji-img]][📌gitmoji] [![Compatibility appraised by: appraisal2][💎appraisal2-img]][💎appraisal2] | @@ -580,7 +580,7 @@ See [CHANGELOG.md][📌changelog] for a list of releases. ## 📄 License -The gem is available under the following licenses: [AGPL-3.0-only](AGPL-3.0-only.md), [PolyForm-Small-Business-1.0.0](PolyForm-Small-Business-1.0.0.md). +The gem is available under the following licenses: [AGPL-3.0-only](https://github.com/structuredmerge/structuredmerge-ruby/blob/main/AGPL-3.0-only.md), [PolyForm-Small-Business-1.0.0](https://github.com/structuredmerge/structuredmerge-ruby/blob/main/PolyForm-Small-Business-1.0.0.md). See [LICENSE.md][📄license] for details. If none of the available licenses suit your use case, please [contact us](mailto:floss@galtzo.com) to discuss a custom commercial license. @@ -697,7 +697,7 @@ Thanks for RTFM. ☺️ [📜src-gl]: https://gitlab.com/structuredmerge/structuredmerge-ruby/-/tree/main/gems/kettle-jem [📜src-cb-img]: https://img.shields.io/badge/CodeBerg-4893CC?style=for-the-badge&logo=CodeBerg&logoColor=blue [📜src-cb]: https://codeberg.org/structuredmerge/structuredmerge-ruby/src/branch/main/gems/kettle-jem -[📜src-gh-img]: https://img.shields.io/badge/GitHub-238636?style=for-the-badge&logo=Github&logoColor=green +[📜src-gh-img]: https://img.shields.io/badge/GitHub-238636?style=for-the-badge&logo=GitHub&logoColor=green [📜src-gh]: https://github.com/structuredmerge/structuredmerge-ruby/tree/main/gems/kettle-jem [📜docs-cr-rd-img]: https://img.shields.io/badge/RubyDoc-Current_Release-943CD2?style=for-the-badge&logo=readthedocs&logoColor=white [📜docs-head-rd-img]: https://img.shields.io/badge/YARD_on_Galtzo.com-HEAD-943CD2?style=for-the-badge&logo=readthedocs&logoColor=white diff --git a/gems/kettle-jem/Rakefile b/gems/kettle-jem/Rakefile index d4c7fb289..93608c46d 100644 --- a/gems/kettle-jem/Rakefile +++ b/gems/kettle-jem/Rakefile @@ -6,7 +6,7 @@ # kettle-jem will then preserve content between those markers across template runs. # kettle-jem:unfreeze -# kettle-jem Rakefile v7.1.0 - 2026-07-21 +# kettle-jem Rakefile v7.1.0 - 2026-07-22 # Ruby 2.3 (Safe Navigation) or higher required # # See LICENSE.md for license information. diff --git a/gems/kettle-jem/lib/kettle/jem.rb b/gems/kettle-jem/lib/kettle/jem.rb index 85465193c..48da0ab50 100644 --- a/gems/kettle-jem/lib/kettle/jem.rb +++ b/gems/kettle-jem/lib/kettle/jem.rb @@ -6316,7 +6316,7 @@ def deduplicate_main_gemfile_direct_sibling_blocks(content) records = main_gemfile_direct_sibling_records(content) return content if records.length <= 1 - records[0...-1].sort_by { |record| -record.fetch(:start_line) }.reduce(content.to_s) do |output, record| + records[1..].sort_by { |record| -record.fetch(:start_line) }.reduce(content.to_s) do |output, record| replace_source_range_lines( output, record.fetch(:start_line), @@ -6334,18 +6334,21 @@ def main_gemfile_direct_sibling_records(content) return [] if assignments.empty? lines = content.to_s.lines - assignments.filter_map do |assignment| - block_if = body.find do |node| + assignments.each_with_object([]) do |assignment, records| + block_ifs = body.select do |node| node.is_a?(::Prism::IfNode) && node.location.start_line > assignment.location.end_line && prism_subtree_contains_call?(node, :eval_nomono_gems) end - next unless block_if + next if block_ifs.empty? start_line = assignment.location.start_line previous = lines[start_line - 2].to_s start_line -= 1 if previous.strip.start_with?("# Direct sibling dependencies") - {start_line: start_line, end_line: block_if.location.end_line} + records << {start_line: start_line, end_line: block_ifs.first.location.end_line} + block_ifs.drop(1).each do |block_if| + records << {start_line: block_if.location.start_line, end_line: block_if.location.end_line} + end end end diff --git a/gems/kettle-jem/spec/integration/config_metadata_template_spec.rb b/gems/kettle-jem/spec/integration/config_metadata_template_spec.rb index dc75dbd44..35766541a 100644 --- a/gems/kettle-jem/spec/integration/config_metadata_template_spec.rb +++ b/gems/kettle-jem/spec/integration/config_metadata_template_spec.rb @@ -2180,6 +2180,103 @@ def register_kettle_jem_plugin(registrar) end end + it "collapses repeated direct sibling execution blocks in the main Gemfile" do + tmp_root = File.expand_path("../tmp", __dir__) + FileUtils.mkdir_p(tmp_root) + Dir.mktmpdir("kettle-jem-main-gemfile-direct-sibling-if-dedupe", tmp_root) do |workspace| + root = File.join(workspace, "adapter") + sibling = File.join(workspace, "shared-core") + FileUtils.mkdir_p([root, sibling]) + write_tree(sibling, { + "shared-core.gemspec" => <<~RUBY + Gem::Specification.new do |spec| + spec.name = "shared-core" + spec.version = "0.1.0" + spec.summary = "Shared core" + end + RUBY + }) + write_tree(root, { + "adapter.gemspec" => <<~RUBY, + Gem::Specification.new do |spec| + spec.name = "adapter" + spec.version = "0.1.0" + spec.summary = "Adapter" + spec.homepage = "https://github.com/rubythems/adapter" + spec.metadata["source_code_uri"] = "https://github.com/rubythems/adapter" + spec.add_dependency "shared-core", "= 0.1.0" + end + RUBY + "Gemfile" => <<~RUBY, + source "https://gem.coop" + + gemspec + + nomono_requirements = ["~> 1.0", ">= 1.0.8"] + gem "nomono", *nomono_requirements, require: false + + # Direct sibling dependencies (env-switched via RUBYTHEMS_DEV) + direct_sibling_gems = %w[ + shared-core + ] + direct_sibling_dev = ENV.fetch("RUBYTHEMS_DEV", "") + direct_sibling_local = + !direct_sibling_dev.empty? && !%w[false 0 no off].include?(direct_sibling_dev.downcase) + direct_sibling_templating = ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? + + if direct_sibling_gems.any? && + (direct_sibling_local || + ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero?) + require "nomono/bundler" + eval_nomono_gems( + gems: direct_sibling_gems, + prefix: "RUBYTHEMS", + path_env: "RUBYTHEMS_DEV", + root: ["src", "my", "rubythems"] + ) + end + + if direct_sibling_gems.any? && + (direct_sibling_local || + ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero?) + require "nomono/bundler" + eval_nomono_gems( + gems: direct_sibling_gems, + prefix: "RUBYTHEMS", + path_env: "RUBYTHEMS_DEV", + root: ["src", "my", "rubythems"] + ) + end + + # Templating (env-switched: STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local paths) + eval_gemfile "gemfiles/modular/templating.gemfile" if ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? + RUBY + ".kettle-jem.yml" => <<~YAML + project_emoji: "💎" + templates: + root: packaged + apply: true + entries: + - Gemfile + YAML + }) + + described_class.apply_project( + root, + env: {}, + run_options: {accept: true, force: true, skip_commit: true} + ) + gemfile = File.read(File.join(root, "Gemfile")) + direct_block = gemfile + .split("# Direct sibling dependencies", 2).last.to_s + .split("# Templating", 2).first.to_s + + expect(gemfile.scan("# Direct sibling dependencies").length).to eq(1) + expect(direct_block.scan("eval_nomono_gems(").length).to eq(1) + expect(direct_block).to include("shared-core") + end + end + it "does not path-wire direct sibling dependencies when the sibling directory has a different gemspec name" do tmp_root = File.expand_path("../tmp", __dir__) FileUtils.mkdir_p(tmp_root) diff --git a/gems/kramdown-merge/.kettle-drift.lock b/gems/kramdown-merge/.kettle-drift.lock deleted file mode 100644 index 9a486b4b3..000000000 --- a/gems/kramdown-merge/.kettle-drift.lock +++ /dev/null @@ -1,188 +0,0 @@ -{ - "(direct_sibling_local ||\nENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?)": [ - { - "file": "Gemfile", - "lines": [ - 79, - 119 - ] - } - ], - ".find { |spec| spec.name == 'nomono' }\nnomono_locked = nomono_locked_spec &&": [ - { - "file": "Gemfile", - "lines": [ - 90, - 130 - ] - } - ], - "ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?)\ndirect_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV')": [ - { - "file": "Gemfile", - "lines": [ - 80, - 120 - ] - } - ], - "Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version)\nnomono_activation_requirements = [\"= #{nomono_locked_spec.version}\"] if nomono_locked": [ - { - "file": "Gemfile", - "lines": [ - 92, - 132 - ] - } - ], - "Kernel.send(:gem, 'nomono', *nomono_activation_requirements)\nrequire 'nomono/bundler'": [ - { - "file": "Gemfile", - "lines": [ - 95, - 135 - ] - } - ], - "direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV')\ndirect_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil)": [ - { - "file": "Gemfile", - "lines": [ - 81, - 121 - ] - } - ], - "eval_nomono_gems(\ngems: direct_sibling_gems,": [ - { - "file": "Gemfile", - "lines": [ - 59, - 99, - 139 - ] - } - ], - "gems: direct_sibling_gems,\nprefix: 'STRUCTUREDMERGE',": [ - { - "file": "Gemfile", - "lines": [ - 100, - 140 - ] - } - ], - "if File.file?(nomono_lockfile)\nnomono_locked_spec = Bundler::LockfileParser": [ - { - "file": "Gemfile", - "lines": [ - 42, - 86, - 126 - ] - } - ], - "if direct_sibling_dev_was_set\nENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original": [ - { - "file": "Gemfile", - "lines": [ - 109, - 149 - ] - } - ], - "if direct_sibling_gems.any? &&\n(direct_sibling_local ||": [ - { - "file": "Gemfile", - "lines": [ - 34, - 78, - 118 - ] - } - ], - "if direct_sibling_templating && !direct_sibling_local\nif direct_sibling_dev_was_set": [ - { - "file": "Gemfile", - "lines": [ - 68, - 108, - 148 - ] - } - ], - "nomono_activation_requirements = nomono_requirements\nnomono_lockfile = File.expand_path('Gemfile.lock', __dir__)": [ - { - "file": "Gemfile", - "lines": [ - 84, - 124 - ] - } - ], - "nomono_locked = nomono_locked_spec &&\nGem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version)": [ - { - "file": "Gemfile", - "lines": [ - 47, - 91, - 131 - ] - } - ], - "nomono_locked_spec = Bundler::LockfileParser\n.new(Bundler.read_file(nomono_lockfile))": [ - { - "file": "Gemfile", - "lines": [ - 43, - 87, - 127 - ] - } - ], - "nomono_lockfile = File.expand_path('Gemfile.lock', __dir__)\nif File.file?(nomono_lockfile)": [ - { - "file": "Gemfile", - "lines": [ - 85, - 125 - ] - } - ], - "path_env: 'STRUCTUREDMERGE_DEV',\nroot: %w[src my structuredmerge]": [ - { - "file": "Gemfile", - "lines": [ - 102, - 142 - ] - } - ], - "prefix: 'STRUCTUREDMERGE',\npath_env: 'STRUCTUREDMERGE_DEV',": [ - { - "file": "Gemfile", - "lines": [ - 101, - 141 - ] - } - ], - "require 'nomono/bundler'\nENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local": [ - { - "file": "Gemfile", - "lines": [ - 96, - 136 - ] - } - ], - "rescue LoadError\nwarn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.'": [ - { - "file": "Gemfile", - "lines": [ - 105, - 145 - ] - } - ] -} diff --git a/gems/kramdown-merge/Gemfile b/gems/kramdown-merge/Gemfile index 8fdddae6c..62d555711 100644 --- a/gems/kramdown-merge/Gemfile +++ b/gems/kramdown-merge/Gemfile @@ -36,100 +36,8 @@ if direct_sibling_gems.any? && ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) + require 'nomono/bundler' begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local eval_nomono_gems( @@ -138,8 +46,6 @@ if direct_sibling_gems.any? && path_env: 'STRUCTUREDMERGE_DEV', root: %w[src my structuredmerge] ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' ensure if direct_sibling_templating && !direct_sibling_local if direct_sibling_dev_was_set diff --git a/gems/kramdown-merge/Gemfile.lock b/gems/kramdown-merge/Gemfile.lock index 9b212fb75..2781d57a7 100644 --- a/gems/kramdown-merge/Gemfile.lock +++ b/gems/kramdown-merge/Gemfile.lock @@ -132,7 +132,7 @@ GEM mutex_m (0.3.0) nokogiri (1.19.4-x86_64-linux-gnu) racc (~> 1.4) - nomono (1.0.9) + nomono (1.1.0) openssl (4.0.2) ostruct (0.6.3) parallel (1.28.0) @@ -438,6 +438,7 @@ CHECKSUMS backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd + bundler (4.0.17) sha256=214e21431b5665dd2f99df8a5511c6b151d7a72e8015c8b38f8b775b61cbb6c1 bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 @@ -464,9 +465,9 @@ CHECKSUMS io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 - kettle-dev (2.3.9) + kettle-dev (2.3.9) sha256=03b2f72c6dda4d2c4401ee3c0c96853116c922766e7b5b04224434a49b571bfc kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f - kettle-soup-cover (3.0.4) + kettle-soup-cover (3.0.4) sha256=36d4df472362d2020d16411d7ce26ba2fe2a41fb8be64577ff9b5280acf99d86 kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa @@ -478,7 +479,7 @@ CHECKSUMS markdown-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-x86_64-linux-gnu) sha256=379fae440b28915e3f19d752ce2dcf8465ed2b2fbefd2a7ca0dd497bc981a06a - nomono (1.0.9) + nomono (1.1.0) sha256=463dd4c79da02a855739a1b5483190d527b7868688be905e84abdb3449b32c88 openssl (4.0.2) sha256=1037ad2868ae58df9ad917891c0c0f9815a1172f6846d4bcdd508e4c2ee747c2 ostruct (0.6.3) sha256=95a2ed4a4bd1d190784e666b47b2d3f078e4a9efda2fccf18f84ddc6538ed912 parallel (1.28.0) sha256=33e6de1484baf2524792d178b0913fc8eb94c628d6cfe45599ad4458c638c970 @@ -570,4 +571,4 @@ CHECKSUMS zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH - 4.0.16 + 4.0.17 diff --git a/gems/kramdown-merge/LICENSE.md b/gems/kramdown-merge/LICENSE.md index 6ad318705..65a770d1f 100644 --- a/gems/kramdown-merge/LICENSE.md +++ b/gems/kramdown-merge/LICENSE.md @@ -3,8 +3,8 @@ This project is made available under the following licenses. Choose the option that best fits your use case: -- [AGPL-3.0-only](AGPL-3.0-only.md) -- [PolyForm-Small-Business-1.0.0](PolyForm-Small-Business-1.0.0.md) +- [AGPL-3.0-only](https://github.com/structuredmerge/structuredmerge-ruby/blob/main/AGPL-3.0-only.md) +- [PolyForm-Small-Business-1.0.0](https://github.com/structuredmerge/structuredmerge-ruby/blob/main/PolyForm-Small-Business-1.0.0.md) If none of the above licenses fit your use case, please [contact us](mailto:floss@galtzo.com) to discuss a custom commercial license. diff --git a/gems/kramdown-merge/README.md b/gems/kramdown-merge/README.md index dc229a730..ecbbd3f19 100644 --- a/gems/kramdown-merge/README.md +++ b/gems/kramdown-merge/README.md @@ -37,7 +37,7 @@ I've summarized my thoughts in [this blog post](https://dev.to/galtzo/hostile-ta |-------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | Works with MRI Ruby 4 | [![Ruby current Compat][💎ruby-c-i]][🚎11-c-wf]| | Support & Community | [![Join Me on Daily.dev's RubyFriends][✉️ruby-friends-img]][✉️ruby-friends] [![Get help from RubyForum][✉️ruby-forum-img]][✉️ruby-forum] [![Live Chat on Discord][✉️discord-invite-img-ftb]][✉️discord-invite] [![Get help from me on Upwork][👨🏼‍🏫expsup-upwork-img]][👨🏼‍🏫expsup-upwork] [![Get help from me on Codementor][👨🏼‍🏫expsup-codementor-img]][👨🏼‍🏫expsup-codementor] | -| Source | [![Source on GitLab.com][📜src-gl-img]][📜src-gl] [![Source on CodeBerg.org][📜src-cb-img]][📜src-cb] [![Source on Github.com][📜src-gh-img]][📜src-gh] [![The best SHA: dQw4w9WgXcQ!][🧮kloc-img]][🧮kloc] | +| Source | [![Source on GitLab.com][📜src-gl-img]][📜src-gl] [![Source on CodeBerg.org][📜src-cb-img]][📜src-cb] [![Source on GitHub.com][📜src-gh-img]][📜src-gh] [![The best SHA: dQw4w9WgXcQ!][🧮kloc-img]][🧮kloc] | | Documentation | [![Current release on RubyDoc.info][📜docs-cr-rd-img]][🚎yard-current] [![YARD on Galtzo.com][📜docs-head-rd-img]][🚎yard-head] [![Maintainer Blog][🚂maint-blog-img]][🚂maint-blog] [![GitLab Wiki][📜gl-wiki-img]][📜gl-wiki] [![GitHub Wiki][📜gh-wiki-img]][📜gh-wiki] | | Compliance | [![License: AGPL-3.0-only OR PolyForm-Small-Business-1.0.0][📄license-img]][📄license] [![Apache license compatibility: Category X][📄license-compat-img]][📄license-compat] [![📄ilo-declaration-img]][📄ilo-declaration] [![Security Policy][🔐security-img]][🔐security] [![Contributor Covenant 2.1][🪇conduct-img]][🪇conduct] [![SemVer 2.0.0][📌semver-img]][📌semver] | | Style | [![Enforced Code Style Linter][💎rlts-img]][💎rlts] [![Keep-A-Changelog 1.0.0][📗keep-changelog-img]][📗keep-changelog] [![Gitmoji Commits][📌gitmoji-img]][📌gitmoji] [![Compatibility appraised by: appraisal2][💎appraisal2-img]][💎appraisal2] | @@ -155,7 +155,7 @@ See [CHANGELOG.md][📌changelog] for a list of releases. ## 📄 License -The gem is available under the following licenses: [AGPL-3.0-only](AGPL-3.0-only.md), [PolyForm-Small-Business-1.0.0](PolyForm-Small-Business-1.0.0.md). +The gem is available under the following licenses: [AGPL-3.0-only](https://github.com/structuredmerge/structuredmerge-ruby/blob/main/AGPL-3.0-only.md), [PolyForm-Small-Business-1.0.0](https://github.com/structuredmerge/structuredmerge-ruby/blob/main/PolyForm-Small-Business-1.0.0.md). See [LICENSE.md][📄license] for details. If none of the available licenses suit your use case, please [contact us](mailto:floss@galtzo.com) to discuss a custom commercial license. @@ -227,7 +227,7 @@ If none of the available licenses suit your use case, please [contact us](mailto [📜src-gl]: https://gitlab.com/structuredmerge/structuredmerge-ruby/-/tree/main/gems/kramdown-merge [📜src-cb-img]: https://img.shields.io/badge/CodeBerg-4893CC?style=for-the-badge&logo=CodeBerg&logoColor=blue [📜src-cb]: https://codeberg.org/structuredmerge/structuredmerge-ruby/src/branch/main/gems/kramdown-merge -[📜src-gh-img]: https://img.shields.io/badge/GitHub-238636?style=for-the-badge&logo=Github&logoColor=green +[📜src-gh-img]: https://img.shields.io/badge/GitHub-238636?style=for-the-badge&logo=GitHub&logoColor=green [📜src-gh]: https://github.com/structuredmerge/structuredmerge-ruby/tree/main/gems/kramdown-merge [📜docs-cr-rd-img]: https://img.shields.io/badge/RubyDoc-Current_Release-943CD2?style=for-the-badge&logo=readthedocs&logoColor=white [📜docs-head-rd-img]: https://img.shields.io/badge/YARD_on_Galtzo.com-HEAD-943CD2?style=for-the-badge&logo=readthedocs&logoColor=white diff --git a/gems/kramdown-merge/gemfiles/modular/coverage_local.gemfile b/gems/kramdown-merge/gemfiles/modular/coverage_local.gemfile index 6af3acb94..e920f9e96 100644 --- a/gems/kramdown-merge/gemfiles/modular/coverage_local.gemfile +++ b/gems/kramdown-merge/gemfiles/modular/coverage_local.gemfile @@ -3,26 +3,6 @@ # Local path overrides for development. # Loaded by the associated non-local gemfile when KETTLE_DEV_DEV != "false". -# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. -# Bundler records that dependency during Gemfile evaluation, but it does not -# activate that exact version before the immediate `require "nomono/bundler"`. -# If multiple compatible nomono versions are installed, RubyGems may activate -# the newest installed version while Gemfile.lock pins an older compatible one; -# Bundler then aborts with "already activated nomono X, but your Gemfile -# requires nomono Y". Prefer the locked compatible version when present, then -# activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] -nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) -if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked -end -Kernel.send(:gem, 'nomono', *nomono_activation_requirements) require 'nomono/bundler' local_gems = %w[kettle-dev kettle-test kettle-soup-cover kettle-drift] diff --git a/gems/kramdown-merge/gemfiles/modular/documentation_local.gemfile b/gems/kramdown-merge/gemfiles/modular/documentation_local.gemfile index 426405c12..e8d2259b8 100644 --- a/gems/kramdown-merge/gemfiles/modular/documentation_local.gemfile +++ b/gems/kramdown-merge/gemfiles/modular/documentation_local.gemfile @@ -3,26 +3,6 @@ # Local path overrides for development. # Loaded by the associated non-local gemfile when GALTZO_FLOSS_DEV != "false". -# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. -# Bundler records that dependency during Gemfile evaluation, but it does not -# activate that exact version before the immediate `require "nomono/bundler"`. -# If multiple compatible nomono versions are installed, RubyGems may activate -# the newest installed version while Gemfile.lock pins an older compatible one; -# Bundler then aborts with "already activated nomono X, but your Gemfile -# requires nomono Y". Prefer the locked compatible version when present, then -# activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] -nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) -if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked -end -Kernel.send(:gem, 'nomono', *nomono_activation_requirements) require 'nomono/bundler' local_gems = %w[yard-fence yard-timekeeper yard-yaml] diff --git a/gems/kramdown-merge/gemfiles/modular/style_local.gemfile b/gems/kramdown-merge/gemfiles/modular/style_local.gemfile index 6d918d9a4..a1d5ec0f4 100644 --- a/gems/kramdown-merge/gemfiles/modular/style_local.gemfile +++ b/gems/kramdown-merge/gemfiles/modular/style_local.gemfile @@ -6,26 +6,6 @@ # Local path overrides for development. # Loaded by the associated non-local gemfile when RUBOCOP_LTS_LOCAL != "false". -# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. -# Bundler records that dependency during Gemfile evaluation, but it does not -# activate that exact version before the immediate `require "nomono/bundler"`. -# If multiple compatible nomono versions are installed, RubyGems may activate -# the newest installed version while Gemfile.lock pins an older compatible one; -# Bundler then aborts with "already activated nomono X, but your Gemfile -# requires nomono Y". Prefer the locked compatible version when present, then -# activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] -nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) -if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked -end -Kernel.send(:gem, 'nomono', *nomono_activation_requirements) require 'nomono/bundler' local_gems = %w[rubocop-lts rubocop-lts-rspec rubocop-ruby3_2 standard-rubocop-lts] diff --git a/gems/kramdown-merge/gemfiles/modular/templating_local.gemfile b/gems/kramdown-merge/gemfiles/modular/templating_local.gemfile index ffde8f59c..ef37efbbf 100644 --- a/gems/kramdown-merge/gemfiles/modular/templating_local.gemfile +++ b/gems/kramdown-merge/gemfiles/modular/templating_local.gemfile @@ -4,26 +4,6 @@ # Loaded by the associated non-local gemfile when STRUCTUREDMERGE_DEV or KETTLE_DEV_DEV # is not "false". -# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. -# Bundler records that dependency during Gemfile evaluation, but it does not -# activate that exact version before the immediate `require "nomono/bundler"`. -# If multiple compatible nomono versions are installed, RubyGems may activate -# the newest installed version while Gemfile.lock pins an older compatible one; -# Bundler then aborts with "already activated nomono X, but your Gemfile -# requires nomono Y". Prefer the locked compatible version when present, then -# activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] -nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) -if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked -end -Kernel.send(:gem, 'nomono', *nomono_activation_requirements) require 'nomono/bundler' structuredmerge_local_gems = %w[ diff --git a/gems/markdown-merge/.kettle-drift.lock b/gems/markdown-merge/.kettle-drift.lock deleted file mode 100644 index bd0f9d183..000000000 --- a/gems/markdown-merge/.kettle-drift.lock +++ /dev/null @@ -1,208 +0,0 @@ -{ - "(direct_sibling_local ||\nENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?)": [ - { - "file": "Gemfile", - "lines": [ - 80, - 120, - 160 - ] - } - ], - ".find { |spec| spec.name == 'nomono' }\nnomono_locked = nomono_locked_spec &&": [ - { - "file": "Gemfile", - "lines": [ - 91, - 131, - 171 - ] - } - ], - "ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?)\ndirect_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV')": [ - { - "file": "Gemfile", - "lines": [ - 81, - 121, - 161 - ] - } - ], - "Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version)\nnomono_activation_requirements = [\"= #{nomono_locked_spec.version}\"] if nomono_locked": [ - { - "file": "Gemfile", - "lines": [ - 93, - 133, - 173 - ] - } - ], - "Kernel.send(:gem, 'nomono', *nomono_activation_requirements)\nrequire 'nomono/bundler'": [ - { - "file": "Gemfile", - "lines": [ - 96, - 136, - 176 - ] - } - ], - "direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV')\ndirect_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil)": [ - { - "file": "Gemfile", - "lines": [ - 82, - 122, - 162 - ] - } - ], - "eval_nomono_gems(\ngems: direct_sibling_gems,": [ - { - "file": "Gemfile", - "lines": [ - 60, - 100, - 140, - 180 - ] - } - ], - "gems: direct_sibling_gems,\nprefix: 'STRUCTUREDMERGE',": [ - { - "file": "Gemfile", - "lines": [ - 101, - 141, - 181 - ] - } - ], - "if File.file?(nomono_lockfile)\nnomono_locked_spec = Bundler::LockfileParser": [ - { - "file": "Gemfile", - "lines": [ - 43, - 87, - 127, - 167 - ] - } - ], - "if direct_sibling_dev_was_set\nENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original": [ - { - "file": "Gemfile", - "lines": [ - 110, - 150, - 190 - ] - } - ], - "if direct_sibling_gems.any? &&\n(direct_sibling_local ||": [ - { - "file": "Gemfile", - "lines": [ - 35, - 79, - 119, - 159 - ] - } - ], - "if direct_sibling_templating && !direct_sibling_local\nif direct_sibling_dev_was_set": [ - { - "file": "Gemfile", - "lines": [ - 69, - 109, - 149, - 189 - ] - } - ], - "nomono_activation_requirements = nomono_requirements\nnomono_lockfile = File.expand_path('Gemfile.lock', __dir__)": [ - { - "file": "Gemfile", - "lines": [ - 85, - 125, - 165 - ] - } - ], - "nomono_locked = nomono_locked_spec &&\nGem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version)": [ - { - "file": "Gemfile", - "lines": [ - 48, - 92, - 132, - 172 - ] - } - ], - "nomono_locked_spec = Bundler::LockfileParser\n.new(Bundler.read_file(nomono_lockfile))": [ - { - "file": "Gemfile", - "lines": [ - 44, - 88, - 128, - 168 - ] - } - ], - "nomono_lockfile = File.expand_path('Gemfile.lock', __dir__)\nif File.file?(nomono_lockfile)": [ - { - "file": "Gemfile", - "lines": [ - 86, - 126, - 166 - ] - } - ], - "path_env: 'STRUCTUREDMERGE_DEV',\nroot: %w[src my structuredmerge]": [ - { - "file": "Gemfile", - "lines": [ - 103, - 143, - 183 - ] - } - ], - "prefix: 'STRUCTUREDMERGE',\npath_env: 'STRUCTUREDMERGE_DEV',": [ - { - "file": "Gemfile", - "lines": [ - 102, - 142, - 182 - ] - } - ], - "require 'nomono/bundler'\nENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local": [ - { - "file": "Gemfile", - "lines": [ - 97, - 137, - 177 - ] - } - ], - "rescue LoadError\nwarn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.'": [ - { - "file": "Gemfile", - "lines": [ - 106, - 146, - 186 - ] - } - ] -} diff --git a/gems/markdown-merge/Gemfile b/gems/markdown-merge/Gemfile index 06fd95153..c6607b593 100644 --- a/gems/markdown-merge/Gemfile +++ b/gems/markdown-merge/Gemfile @@ -37,140 +37,8 @@ if direct_sibling_gems.any? && ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) + require 'nomono/bundler' begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local eval_nomono_gems( @@ -179,8 +47,6 @@ if direct_sibling_gems.any? && path_env: 'STRUCTUREDMERGE_DEV', root: %w[src my structuredmerge] ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' ensure if direct_sibling_templating && !direct_sibling_local if direct_sibling_dev_was_set diff --git a/gems/markdown-merge/Gemfile.lock b/gems/markdown-merge/Gemfile.lock index 6c4ae1ae6..be5288d90 100644 --- a/gems/markdown-merge/Gemfile.lock +++ b/gems/markdown-merge/Gemfile.lock @@ -136,7 +136,7 @@ GEM racc (~> 1.4) nokogiri (1.19.4-x86_64-linux-musl) racc (~> 1.4) - nomono (1.0.9) + nomono (1.1.0) openssl (4.0.2) ostruct (0.6.3) parallel (1.28.0) @@ -452,6 +452,7 @@ CHECKSUMS backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd + bundler (4.0.17) sha256=214e21431b5665dd2f99df8a5511c6b151d7a72e8015c8b38f8b775b61cbb6c1 bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 @@ -478,9 +479,9 @@ CHECKSUMS io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 - kettle-dev (2.3.9) + kettle-dev (2.3.9) sha256=03b2f72c6dda4d2c4401ee3c0c96853116c922766e7b5b04224434a49b571bfc kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f - kettle-soup-cover (3.0.4) + kettle-soup-cover (3.0.4) sha256=36d4df472362d2020d16411d7ce26ba2fe2a41fb8be64577ff9b5280acf99d86 kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa @@ -495,7 +496,7 @@ CHECKSUMS nokogiri (1.19.4-arm64-darwin) sha256=a46db9853286e6597b36ebc6953817d15acf3a299583eb3f89fdc6f91dd63527 nokogiri (1.19.4-x86_64-linux-gnu) sha256=379fae440b28915e3f19d752ce2dcf8465ed2b2fbefd2a7ca0dd497bc981a06a nokogiri (1.19.4-x86_64-linux-musl) sha256=17dfb7c1fa194ae02fbf7c51a7afc8d278045ab3fdacfd86f91d02d7b274470b - nomono (1.0.9) + nomono (1.1.0) sha256=463dd4c79da02a855739a1b5483190d527b7868688be905e84abdb3449b32c88 openssl (4.0.2) sha256=1037ad2868ae58df9ad917891c0c0f9815a1172f6846d4bcdd508e4c2ee747c2 ostruct (0.6.3) sha256=95a2ed4a4bd1d190784e666b47b2d3f078e4a9efda2fccf18f84ddc6538ed912 parallel (1.28.0) sha256=33e6de1484baf2524792d178b0913fc8eb94c628d6cfe45599ad4458c638c970 @@ -589,4 +590,4 @@ CHECKSUMS zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH - 4.0.16 + 4.0.17 diff --git a/gems/markdown-merge/LICENSE.md b/gems/markdown-merge/LICENSE.md index 6ad318705..65a770d1f 100644 --- a/gems/markdown-merge/LICENSE.md +++ b/gems/markdown-merge/LICENSE.md @@ -3,8 +3,8 @@ This project is made available under the following licenses. Choose the option that best fits your use case: -- [AGPL-3.0-only](AGPL-3.0-only.md) -- [PolyForm-Small-Business-1.0.0](PolyForm-Small-Business-1.0.0.md) +- [AGPL-3.0-only](https://github.com/structuredmerge/structuredmerge-ruby/blob/main/AGPL-3.0-only.md) +- [PolyForm-Small-Business-1.0.0](https://github.com/structuredmerge/structuredmerge-ruby/blob/main/PolyForm-Small-Business-1.0.0.md) If none of the above licenses fit your use case, please [contact us](mailto:floss@galtzo.com) to discuss a custom commercial license. diff --git a/gems/markdown-merge/README.md b/gems/markdown-merge/README.md index c7d130ac5..b56986206 100644 --- a/gems/markdown-merge/README.md +++ b/gems/markdown-merge/README.md @@ -85,7 +85,7 @@ Signatures computed by default for common Markdown block elements: |-------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | Works with MRI Ruby 4 | [![Ruby current Compat][💎ruby-c-i]][🚎11-c-wf]| | Support & Community | [![Join Me on Daily.dev's RubyFriends][✉️ruby-friends-img]][✉️ruby-friends] [![Get help from RubyForum][✉️ruby-forum-img]][✉️ruby-forum] [![Live Chat on Discord][✉️discord-invite-img-ftb]][✉️discord-invite] [![Get help from me on Upwork][👨🏼‍🏫expsup-upwork-img]][👨🏼‍🏫expsup-upwork] [![Get help from me on Codementor][👨🏼‍🏫expsup-codementor-img]][👨🏼‍🏫expsup-codementor] | -| Source | [![Source on GitLab.com][📜src-gl-img]][📜src-gl] [![Source on CodeBerg.org][📜src-cb-img]][📜src-cb] [![Source on Github.com][📜src-gh-img]][📜src-gh] [![The best SHA: dQw4w9WgXcQ!][🧮kloc-img]][🧮kloc] | +| Source | [![Source on GitLab.com][📜src-gl-img]][📜src-gl] [![Source on CodeBerg.org][📜src-cb-img]][📜src-cb] [![Source on GitHub.com][📜src-gh-img]][📜src-gh] [![The best SHA: dQw4w9WgXcQ!][🧮kloc-img]][🧮kloc] | | Documentation | [![Current release on RubyDoc.info][📜docs-cr-rd-img]][🚎yard-current] [![YARD on Galtzo.com][📜docs-head-rd-img]][🚎yard-head] [![Maintainer Blog][🚂maint-blog-img]][🚂maint-blog] [![GitLab Wiki][📜gl-wiki-img]][📜gl-wiki] [![GitHub Wiki][📜gh-wiki-img]][📜gh-wiki] | | Compliance | [![License: AGPL-3.0-only OR PolyForm-Small-Business-1.0.0][📄license-img]][📄license] [![Apache license compatibility: Category X][📄license-compat-img]][📄license-compat] [![📄ilo-declaration-img]][📄ilo-declaration] [![Security Policy][🔐security-img]][🔐security] [![Contributor Covenant 2.1][🪇conduct-img]][🪇conduct] [![SemVer 2.0.0][📌semver-img]][📌semver] | | Style | [![Enforced Code Style Linter][💎rlts-img]][💎rlts] [![Keep-A-Changelog 1.0.0][📗keep-changelog-img]][📗keep-changelog] [![Gitmoji Commits][📌gitmoji-img]][📌gitmoji] [![Compatibility appraised by: appraisal2][💎appraisal2-img]][💎appraisal2] | @@ -541,7 +541,7 @@ See [CHANGELOG.md][📌changelog] for a list of releases. ## 📄 License -The gem is available under the following licenses: [AGPL-3.0-only](AGPL-3.0-only.md), [PolyForm-Small-Business-1.0.0](PolyForm-Small-Business-1.0.0.md). +The gem is available under the following licenses: [AGPL-3.0-only](https://github.com/structuredmerge/structuredmerge-ruby/blob/main/AGPL-3.0-only.md), [PolyForm-Small-Business-1.0.0](https://github.com/structuredmerge/structuredmerge-ruby/blob/main/PolyForm-Small-Business-1.0.0.md). See [LICENSE.md][📄license] for details. If none of the available licenses suit your use case, please [contact us](mailto:floss@galtzo.com) to discuss a custom commercial license. @@ -613,7 +613,7 @@ If none of the available licenses suit your use case, please [contact us](mailto [📜src-gl]: https://gitlab.com/structuredmerge/structuredmerge-ruby/-/tree/main/gems/markdown-merge [📜src-cb-img]: https://img.shields.io/badge/CodeBerg-4893CC?style=for-the-badge&logo=CodeBerg&logoColor=blue [📜src-cb]: https://codeberg.org/structuredmerge/structuredmerge-ruby/src/branch/main/gems/markdown-merge -[📜src-gh-img]: https://img.shields.io/badge/GitHub-238636?style=for-the-badge&logo=Github&logoColor=green +[📜src-gh-img]: https://img.shields.io/badge/GitHub-238636?style=for-the-badge&logo=GitHub&logoColor=green [📜src-gh]: https://github.com/structuredmerge/structuredmerge-ruby/tree/main/gems/markdown-merge [📜docs-cr-rd-img]: https://img.shields.io/badge/RubyDoc-Current_Release-943CD2?style=for-the-badge&logo=readthedocs&logoColor=white [📜docs-head-rd-img]: https://img.shields.io/badge/YARD_on_Galtzo.com-HEAD-943CD2?style=for-the-badge&logo=readthedocs&logoColor=white diff --git a/gems/markdown-merge/gemfiles/modular/coverage_local.gemfile b/gems/markdown-merge/gemfiles/modular/coverage_local.gemfile index 647eab77a..b467b75c0 100644 --- a/gems/markdown-merge/gemfiles/modular/coverage_local.gemfile +++ b/gems/markdown-merge/gemfiles/modular/coverage_local.gemfile @@ -3,26 +3,6 @@ # Local path overrides for development. # Loaded by the associated non-local gemfile when KETTLE_DEV_DEV != "false". -# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. -# Bundler records that dependency during Gemfile evaluation, but it does not -# activate that exact version before the immediate `require "nomono/bundler"`. -# If multiple compatible nomono versions are installed, RubyGems may activate -# the newest installed version while Gemfile.lock pins an older compatible one; -# Bundler then aborts with "already activated nomono X, but your Gemfile -# requires nomono Y". Prefer the locked compatible version when present, then -# activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] -nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) -if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked -end -Kernel.send(:gem, 'nomono', *nomono_activation_requirements) require 'nomono/bundler' local_gems = %w[kettle-dev kettle-test kettle-soup-cover kettle-drift] diff --git a/gems/markdown-merge/gemfiles/modular/documentation_local.gemfile b/gems/markdown-merge/gemfiles/modular/documentation_local.gemfile index 598b23cdd..7d17a3140 100644 --- a/gems/markdown-merge/gemfiles/modular/documentation_local.gemfile +++ b/gems/markdown-merge/gemfiles/modular/documentation_local.gemfile @@ -3,26 +3,6 @@ # Local path overrides for development. # Loaded by the associated non-local gemfile when GALTZO_FLOSS_DEV != "false". -# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. -# Bundler records that dependency during Gemfile evaluation, but it does not -# activate that exact version before the immediate `require "nomono/bundler"`. -# If multiple compatible nomono versions are installed, RubyGems may activate -# the newest installed version while Gemfile.lock pins an older compatible one; -# Bundler then aborts with "already activated nomono X, but your Gemfile -# requires nomono Y". Prefer the locked compatible version when present, then -# activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] -nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) -if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked -end -Kernel.send(:gem, 'nomono', *nomono_activation_requirements) require 'nomono/bundler' local_gems = %w[yard-fence yard-timekeeper yard-yaml] diff --git a/gems/markdown-merge/gemfiles/modular/style_local.gemfile b/gems/markdown-merge/gemfiles/modular/style_local.gemfile index 9ac180b1b..43c332297 100644 --- a/gems/markdown-merge/gemfiles/modular/style_local.gemfile +++ b/gems/markdown-merge/gemfiles/modular/style_local.gemfile @@ -6,26 +6,6 @@ # Local path overrides for development. # Loaded by the associated non-local gemfile when RUBOCOP_LTS_LOCAL != "false". -# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. -# Bundler records that dependency during Gemfile evaluation, but it does not -# activate that exact version before the immediate `require "nomono/bundler"`. -# If multiple compatible nomono versions are installed, RubyGems may activate -# the newest installed version while Gemfile.lock pins an older compatible one; -# Bundler then aborts with "already activated nomono X, but your Gemfile -# requires nomono Y". Prefer the locked compatible version when present, then -# activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] -nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) -if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked -end -Kernel.send(:gem, 'nomono', *nomono_activation_requirements) require 'nomono/bundler' local_gems = %w[rubocop-lts rubocop-lts-rspec rubocop-ruby3_2 standard-rubocop-lts] diff --git a/gems/markdown-merge/gemfiles/modular/templating_local.gemfile b/gems/markdown-merge/gemfiles/modular/templating_local.gemfile index 586e485d9..d02dd57cb 100644 --- a/gems/markdown-merge/gemfiles/modular/templating_local.gemfile +++ b/gems/markdown-merge/gemfiles/modular/templating_local.gemfile @@ -4,26 +4,6 @@ # Loaded by the associated non-local gemfile when STRUCTUREDMERGE_DEV or KETTLE_DEV_DEV # is not "false". -# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. -# Bundler records that dependency during Gemfile evaluation, but it does not -# activate that exact version before the immediate `require "nomono/bundler"`. -# If multiple compatible nomono versions are installed, RubyGems may activate -# the newest installed version while Gemfile.lock pins an older compatible one; -# Bundler then aborts with "already activated nomono X, but your Gemfile -# requires nomono Y". Prefer the locked compatible version when present, then -# activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] -nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) -if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked -end -Kernel.send(:gem, 'nomono', *nomono_activation_requirements) require 'nomono/bundler' structuredmerge_local_gems = %w[ diff --git a/gems/markly-merge/.kettle-drift.lock b/gems/markly-merge/.kettle-drift.lock deleted file mode 100644 index 25b4603d6..000000000 --- a/gems/markly-merge/.kettle-drift.lock +++ /dev/null @@ -1,208 +0,0 @@ -{ - "(direct_sibling_local ||\nENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?)": [ - { - "file": "Gemfile", - "lines": [ - 79, - 119, - 159 - ] - } - ], - ".find { |spec| spec.name == 'nomono' }\nnomono_locked = nomono_locked_spec &&": [ - { - "file": "Gemfile", - "lines": [ - 90, - 130, - 170 - ] - } - ], - "ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?)\ndirect_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV')": [ - { - "file": "Gemfile", - "lines": [ - 80, - 120, - 160 - ] - } - ], - "Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version)\nnomono_activation_requirements = [\"= #{nomono_locked_spec.version}\"] if nomono_locked": [ - { - "file": "Gemfile", - "lines": [ - 92, - 132, - 172 - ] - } - ], - "Kernel.send(:gem, 'nomono', *nomono_activation_requirements)\nrequire 'nomono/bundler'": [ - { - "file": "Gemfile", - "lines": [ - 95, - 135, - 175 - ] - } - ], - "direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV')\ndirect_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil)": [ - { - "file": "Gemfile", - "lines": [ - 81, - 121, - 161 - ] - } - ], - "eval_nomono_gems(\ngems: direct_sibling_gems,": [ - { - "file": "Gemfile", - "lines": [ - 59, - 99, - 139, - 179 - ] - } - ], - "gems: direct_sibling_gems,\nprefix: 'STRUCTUREDMERGE',": [ - { - "file": "Gemfile", - "lines": [ - 100, - 140, - 180 - ] - } - ], - "if File.file?(nomono_lockfile)\nnomono_locked_spec = Bundler::LockfileParser": [ - { - "file": "Gemfile", - "lines": [ - 42, - 86, - 126, - 166 - ] - } - ], - "if direct_sibling_dev_was_set\nENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original": [ - { - "file": "Gemfile", - "lines": [ - 109, - 149, - 189 - ] - } - ], - "if direct_sibling_gems.any? &&\n(direct_sibling_local ||": [ - { - "file": "Gemfile", - "lines": [ - 34, - 78, - 118, - 158 - ] - } - ], - "if direct_sibling_templating && !direct_sibling_local\nif direct_sibling_dev_was_set": [ - { - "file": "Gemfile", - "lines": [ - 68, - 108, - 148, - 188 - ] - } - ], - "nomono_activation_requirements = nomono_requirements\nnomono_lockfile = File.expand_path('Gemfile.lock', __dir__)": [ - { - "file": "Gemfile", - "lines": [ - 84, - 124, - 164 - ] - } - ], - "nomono_locked = nomono_locked_spec &&\nGem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version)": [ - { - "file": "Gemfile", - "lines": [ - 47, - 91, - 131, - 171 - ] - } - ], - "nomono_locked_spec = Bundler::LockfileParser\n.new(Bundler.read_file(nomono_lockfile))": [ - { - "file": "Gemfile", - "lines": [ - 43, - 87, - 127, - 167 - ] - } - ], - "nomono_lockfile = File.expand_path('Gemfile.lock', __dir__)\nif File.file?(nomono_lockfile)": [ - { - "file": "Gemfile", - "lines": [ - 85, - 125, - 165 - ] - } - ], - "path_env: 'STRUCTUREDMERGE_DEV',\nroot: %w[src my structuredmerge]": [ - { - "file": "Gemfile", - "lines": [ - 102, - 142, - 182 - ] - } - ], - "prefix: 'STRUCTUREDMERGE',\npath_env: 'STRUCTUREDMERGE_DEV',": [ - { - "file": "Gemfile", - "lines": [ - 101, - 141, - 181 - ] - } - ], - "require 'nomono/bundler'\nENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local": [ - { - "file": "Gemfile", - "lines": [ - 96, - 136, - 176 - ] - } - ], - "rescue LoadError\nwarn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.'": [ - { - "file": "Gemfile", - "lines": [ - 105, - 145, - 185 - ] - } - ] -} diff --git a/gems/markly-merge/Gemfile b/gems/markly-merge/Gemfile index 2d8b9c4d9..65eaacb36 100644 --- a/gems/markly-merge/Gemfile +++ b/gems/markly-merge/Gemfile @@ -36,140 +36,8 @@ if direct_sibling_gems.any? && ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) + require 'nomono/bundler' begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local eval_nomono_gems( @@ -178,8 +46,6 @@ if direct_sibling_gems.any? && path_env: 'STRUCTUREDMERGE_DEV', root: %w[src my structuredmerge] ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' ensure if direct_sibling_templating && !direct_sibling_local if direct_sibling_dev_was_set diff --git a/gems/markly-merge/Gemfile.lock b/gems/markly-merge/Gemfile.lock index 5e28fe4f4..3f21a3906 100644 --- a/gems/markly-merge/Gemfile.lock +++ b/gems/markly-merge/Gemfile.lock @@ -6,14 +6,6 @@ PATH markly (~> 0.9) version_gem (~> 1.1, >= 1.1.9) -PATH - remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge - specs: - markdown-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - GEM remote: https://gem.coop/ specs: @@ -133,11 +125,15 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) + markdown-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) markly (0.16.0) mutex_m (0.3.0) nokogiri (1.19.4-x86_64-linux-gnu) racc (~> 1.4) - nomono (1.0.9) + nomono (1.1.0) openssl (4.0.2) ostruct (0.6.3) parallel (1.28.0) @@ -405,7 +401,6 @@ DEPENDENCIES kettle-test (~> 2.0, >= 2.0.9) kramdown (~> 2.5, >= 2.5.2) kramdown-parser-gfm (~> 1.1) - markdown-merge! markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) @@ -445,6 +440,7 @@ CHECKSUMS backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd + bundler (4.0.17) sha256=214e21431b5665dd2f99df8a5511c6b151d7a72e8015c8b38f8b775b61cbb6c1 bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 @@ -471,9 +467,9 @@ CHECKSUMS io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 - kettle-dev (2.3.9) + kettle-dev (2.3.9) sha256=03b2f72c6dda4d2c4401ee3c0c96853116c922766e7b5b04224434a49b571bfc kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f - kettle-soup-cover (3.0.4) + kettle-soup-cover (3.0.4) sha256=36d4df472362d2020d16411d7ce26ba2fe2a41fb8be64577ff9b5280acf99d86 kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa @@ -486,7 +482,7 @@ CHECKSUMS markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-x86_64-linux-gnu) sha256=379fae440b28915e3f19d752ce2dcf8465ed2b2fbefd2a7ca0dd497bc981a06a - nomono (1.0.9) + nomono (1.1.0) sha256=463dd4c79da02a855739a1b5483190d527b7868688be905e84abdb3449b32c88 openssl (4.0.2) sha256=1037ad2868ae58df9ad917891c0c0f9815a1172f6846d4bcdd508e4c2ee747c2 ostruct (0.6.3) sha256=95a2ed4a4bd1d190784e666b47b2d3f078e4a9efda2fccf18f84ddc6538ed912 parallel (1.28.0) sha256=33e6de1484baf2524792d178b0913fc8eb94c628d6cfe45599ad4458c638c970 @@ -578,4 +574,4 @@ CHECKSUMS zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH - 4.0.16 + 4.0.17 diff --git a/gems/markly-merge/LICENSE.md b/gems/markly-merge/LICENSE.md index 6ad318705..65a770d1f 100644 --- a/gems/markly-merge/LICENSE.md +++ b/gems/markly-merge/LICENSE.md @@ -3,8 +3,8 @@ This project is made available under the following licenses. Choose the option that best fits your use case: -- [AGPL-3.0-only](AGPL-3.0-only.md) -- [PolyForm-Small-Business-1.0.0](PolyForm-Small-Business-1.0.0.md) +- [AGPL-3.0-only](https://github.com/structuredmerge/structuredmerge-ruby/blob/main/AGPL-3.0-only.md) +- [PolyForm-Small-Business-1.0.0](https://github.com/structuredmerge/structuredmerge-ruby/blob/main/PolyForm-Small-Business-1.0.0.md) If none of the above licenses fit your use case, please [contact us](mailto:floss@galtzo.com) to discuss a custom commercial license. diff --git a/gems/markly-merge/README.md b/gems/markly-merge/README.md index d440703e7..c75593726 100644 --- a/gems/markly-merge/README.md +++ b/gems/markly-merge/README.md @@ -94,7 +94,7 @@ File.write("merged.md", result.to_markdown) |-------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | Works with MRI Ruby 4 | [![Ruby current Compat][💎ruby-c-i]][🚎11-c-wf]| | Support & Community | [![Join Me on Daily.dev's RubyFriends][✉️ruby-friends-img]][✉️ruby-friends] [![Get help from RubyForum][✉️ruby-forum-img]][✉️ruby-forum] [![Live Chat on Discord][✉️discord-invite-img-ftb]][✉️discord-invite] [![Get help from me on Upwork][👨🏼‍🏫expsup-upwork-img]][👨🏼‍🏫expsup-upwork] [![Get help from me on Codementor][👨🏼‍🏫expsup-codementor-img]][👨🏼‍🏫expsup-codementor] | -| Source | [![Source on GitLab.com][📜src-gl-img]][📜src-gl] [![Source on CodeBerg.org][📜src-cb-img]][📜src-cb] [![Source on Github.com][📜src-gh-img]][📜src-gh] [![The best SHA: dQw4w9WgXcQ!][🧮kloc-img]][🧮kloc] | +| Source | [![Source on GitLab.com][📜src-gl-img]][📜src-gl] [![Source on CodeBerg.org][📜src-cb-img]][📜src-cb] [![Source on GitHub.com][📜src-gh-img]][📜src-gh] [![The best SHA: dQw4w9WgXcQ!][🧮kloc-img]][🧮kloc] | | Documentation | [![Current release on RubyDoc.info][📜docs-cr-rd-img]][🚎yard-current] [![YARD on Galtzo.com][📜docs-head-rd-img]][🚎yard-head] [![Maintainer Blog][🚂maint-blog-img]][🚂maint-blog] [![GitLab Wiki][📜gl-wiki-img]][📜gl-wiki] [![GitHub Wiki][📜gh-wiki-img]][📜gh-wiki] | | Compliance | [![License: AGPL-3.0-only OR PolyForm-Small-Business-1.0.0][📄license-img]][📄license] [![Apache license compatibility: Category X][📄license-compat-img]][📄license-compat] [![📄ilo-declaration-img]][📄ilo-declaration] [![Security Policy][🔐security-img]][🔐security] [![Contributor Covenant 2.1][🪇conduct-img]][🪇conduct] [![SemVer 2.0.0][📌semver-img]][📌semver] | | Style | [![Enforced Code Style Linter][💎rlts-img]][💎rlts] [![Keep-A-Changelog 1.0.0][📗keep-changelog-img]][📗keep-changelog] [![Gitmoji Commits][📌gitmoji-img]][📌gitmoji] [![Compatibility appraised by: appraisal2][💎appraisal2-img]][💎appraisal2] | @@ -304,7 +304,7 @@ See [CHANGELOG.md][📌changelog] for a list of releases. ## 📄 License -The gem is available under the following licenses: [AGPL-3.0-only](AGPL-3.0-only.md), [PolyForm-Small-Business-1.0.0](PolyForm-Small-Business-1.0.0.md). +The gem is available under the following licenses: [AGPL-3.0-only](https://github.com/structuredmerge/structuredmerge-ruby/blob/main/AGPL-3.0-only.md), [PolyForm-Small-Business-1.0.0](https://github.com/structuredmerge/structuredmerge-ruby/blob/main/PolyForm-Small-Business-1.0.0.md). See [LICENSE.md][📄license] for details. If none of the available licenses suit your use case, please [contact us](mailto:floss@galtzo.com) to discuss a custom commercial license. @@ -376,7 +376,7 @@ If none of the available licenses suit your use case, please [contact us](mailto [📜src-gl]: https://gitlab.com/structuredmerge/structuredmerge-ruby/-/tree/main/gems/markly-merge [📜src-cb-img]: https://img.shields.io/badge/CodeBerg-4893CC?style=for-the-badge&logo=CodeBerg&logoColor=blue [📜src-cb]: https://codeberg.org/structuredmerge/structuredmerge-ruby/src/branch/main/gems/markly-merge -[📜src-gh-img]: https://img.shields.io/badge/GitHub-238636?style=for-the-badge&logo=Github&logoColor=green +[📜src-gh-img]: https://img.shields.io/badge/GitHub-238636?style=for-the-badge&logo=GitHub&logoColor=green [📜src-gh]: https://github.com/structuredmerge/structuredmerge-ruby/tree/main/gems/markly-merge [📜docs-cr-rd-img]: https://img.shields.io/badge/RubyDoc-Current_Release-943CD2?style=for-the-badge&logo=readthedocs&logoColor=white [📜docs-head-rd-img]: https://img.shields.io/badge/YARD_on_Galtzo.com-HEAD-943CD2?style=for-the-badge&logo=readthedocs&logoColor=white diff --git a/gems/markly-merge/gemfiles/modular/coverage_local.gemfile b/gems/markly-merge/gemfiles/modular/coverage_local.gemfile index 250bbbdb1..7def4540e 100644 --- a/gems/markly-merge/gemfiles/modular/coverage_local.gemfile +++ b/gems/markly-merge/gemfiles/modular/coverage_local.gemfile @@ -3,26 +3,6 @@ # Local path overrides for development. # Loaded by the associated non-local gemfile when KETTLE_DEV_DEV != "false". -# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. -# Bundler records that dependency during Gemfile evaluation, but it does not -# activate that exact version before the immediate `require "nomono/bundler"`. -# If multiple compatible nomono versions are installed, RubyGems may activate -# the newest installed version while Gemfile.lock pins an older compatible one; -# Bundler then aborts with "already activated nomono X, but your Gemfile -# requires nomono Y". Prefer the locked compatible version when present, then -# activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] -nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) -if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked -end -Kernel.send(:gem, 'nomono', *nomono_activation_requirements) require 'nomono/bundler' local_gems = %w[kettle-dev kettle-test kettle-soup-cover kettle-drift] diff --git a/gems/markly-merge/gemfiles/modular/documentation_local.gemfile b/gems/markly-merge/gemfiles/modular/documentation_local.gemfile index 8608c4052..fd4372493 100644 --- a/gems/markly-merge/gemfiles/modular/documentation_local.gemfile +++ b/gems/markly-merge/gemfiles/modular/documentation_local.gemfile @@ -3,26 +3,6 @@ # Local path overrides for development. # Loaded by the associated non-local gemfile when GALTZO_FLOSS_DEV != "false". -# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. -# Bundler records that dependency during Gemfile evaluation, but it does not -# activate that exact version before the immediate `require "nomono/bundler"`. -# If multiple compatible nomono versions are installed, RubyGems may activate -# the newest installed version while Gemfile.lock pins an older compatible one; -# Bundler then aborts with "already activated nomono X, but your Gemfile -# requires nomono Y". Prefer the locked compatible version when present, then -# activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] -nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) -if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked -end -Kernel.send(:gem, 'nomono', *nomono_activation_requirements) require 'nomono/bundler' local_gems = %w[yard-fence yard-timekeeper yard-yaml] diff --git a/gems/markly-merge/gemfiles/modular/style_local.gemfile b/gems/markly-merge/gemfiles/modular/style_local.gemfile index f586e8ecb..c6995b80c 100644 --- a/gems/markly-merge/gemfiles/modular/style_local.gemfile +++ b/gems/markly-merge/gemfiles/modular/style_local.gemfile @@ -6,26 +6,6 @@ # Local path overrides for development. # Loaded by the associated non-local gemfile when RUBOCOP_LTS_LOCAL != "false". -# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. -# Bundler records that dependency during Gemfile evaluation, but it does not -# activate that exact version before the immediate `require "nomono/bundler"`. -# If multiple compatible nomono versions are installed, RubyGems may activate -# the newest installed version while Gemfile.lock pins an older compatible one; -# Bundler then aborts with "already activated nomono X, but your Gemfile -# requires nomono Y". Prefer the locked compatible version when present, then -# activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] -nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) -if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked -end -Kernel.send(:gem, 'nomono', *nomono_activation_requirements) require 'nomono/bundler' local_gems = %w[rubocop-lts rubocop-lts-rspec rubocop-ruby3_2 standard-rubocop-lts] diff --git a/gems/markly-merge/gemfiles/modular/templating_local.gemfile b/gems/markly-merge/gemfiles/modular/templating_local.gemfile index 4b7f13294..40d3affae 100644 --- a/gems/markly-merge/gemfiles/modular/templating_local.gemfile +++ b/gems/markly-merge/gemfiles/modular/templating_local.gemfile @@ -4,26 +4,6 @@ # Loaded by the associated non-local gemfile when STRUCTUREDMERGE_DEV or KETTLE_DEV_DEV # is not "false". -# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. -# Bundler records that dependency during Gemfile evaluation, but it does not -# activate that exact version before the immediate `require "nomono/bundler"`. -# If multiple compatible nomono versions are installed, RubyGems may activate -# the newest installed version while Gemfile.lock pins an older compatible one; -# Bundler then aborts with "already activated nomono X, but your Gemfile -# requires nomono Y". Prefer the locked compatible version when present, then -# activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] -nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) -if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked -end -Kernel.send(:gem, 'nomono', *nomono_activation_requirements) require 'nomono/bundler' structuredmerge_local_gems = %w[ diff --git a/gems/parslet-toml-merge/.kettle-drift.lock b/gems/parslet-toml-merge/.kettle-drift.lock deleted file mode 100644 index 9a486b4b3..000000000 --- a/gems/parslet-toml-merge/.kettle-drift.lock +++ /dev/null @@ -1,188 +0,0 @@ -{ - "(direct_sibling_local ||\nENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?)": [ - { - "file": "Gemfile", - "lines": [ - 79, - 119 - ] - } - ], - ".find { |spec| spec.name == 'nomono' }\nnomono_locked = nomono_locked_spec &&": [ - { - "file": "Gemfile", - "lines": [ - 90, - 130 - ] - } - ], - "ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?)\ndirect_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV')": [ - { - "file": "Gemfile", - "lines": [ - 80, - 120 - ] - } - ], - "Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version)\nnomono_activation_requirements = [\"= #{nomono_locked_spec.version}\"] if nomono_locked": [ - { - "file": "Gemfile", - "lines": [ - 92, - 132 - ] - } - ], - "Kernel.send(:gem, 'nomono', *nomono_activation_requirements)\nrequire 'nomono/bundler'": [ - { - "file": "Gemfile", - "lines": [ - 95, - 135 - ] - } - ], - "direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV')\ndirect_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil)": [ - { - "file": "Gemfile", - "lines": [ - 81, - 121 - ] - } - ], - "eval_nomono_gems(\ngems: direct_sibling_gems,": [ - { - "file": "Gemfile", - "lines": [ - 59, - 99, - 139 - ] - } - ], - "gems: direct_sibling_gems,\nprefix: 'STRUCTUREDMERGE',": [ - { - "file": "Gemfile", - "lines": [ - 100, - 140 - ] - } - ], - "if File.file?(nomono_lockfile)\nnomono_locked_spec = Bundler::LockfileParser": [ - { - "file": "Gemfile", - "lines": [ - 42, - 86, - 126 - ] - } - ], - "if direct_sibling_dev_was_set\nENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original": [ - { - "file": "Gemfile", - "lines": [ - 109, - 149 - ] - } - ], - "if direct_sibling_gems.any? &&\n(direct_sibling_local ||": [ - { - "file": "Gemfile", - "lines": [ - 34, - 78, - 118 - ] - } - ], - "if direct_sibling_templating && !direct_sibling_local\nif direct_sibling_dev_was_set": [ - { - "file": "Gemfile", - "lines": [ - 68, - 108, - 148 - ] - } - ], - "nomono_activation_requirements = nomono_requirements\nnomono_lockfile = File.expand_path('Gemfile.lock', __dir__)": [ - { - "file": "Gemfile", - "lines": [ - 84, - 124 - ] - } - ], - "nomono_locked = nomono_locked_spec &&\nGem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version)": [ - { - "file": "Gemfile", - "lines": [ - 47, - 91, - 131 - ] - } - ], - "nomono_locked_spec = Bundler::LockfileParser\n.new(Bundler.read_file(nomono_lockfile))": [ - { - "file": "Gemfile", - "lines": [ - 43, - 87, - 127 - ] - } - ], - "nomono_lockfile = File.expand_path('Gemfile.lock', __dir__)\nif File.file?(nomono_lockfile)": [ - { - "file": "Gemfile", - "lines": [ - 85, - 125 - ] - } - ], - "path_env: 'STRUCTUREDMERGE_DEV',\nroot: %w[src my structuredmerge]": [ - { - "file": "Gemfile", - "lines": [ - 102, - 142 - ] - } - ], - "prefix: 'STRUCTUREDMERGE',\npath_env: 'STRUCTUREDMERGE_DEV',": [ - { - "file": "Gemfile", - "lines": [ - 101, - 141 - ] - } - ], - "require 'nomono/bundler'\nENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local": [ - { - "file": "Gemfile", - "lines": [ - 96, - 136 - ] - } - ], - "rescue LoadError\nwarn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.'": [ - { - "file": "Gemfile", - "lines": [ - 105, - 145 - ] - } - ] -} diff --git a/gems/parslet-toml-merge/Gemfile b/gems/parslet-toml-merge/Gemfile index aec30565c..ad685dc89 100644 --- a/gems/parslet-toml-merge/Gemfile +++ b/gems/parslet-toml-merge/Gemfile @@ -36,100 +36,8 @@ if direct_sibling_gems.any? && ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) + require 'nomono/bundler' begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local eval_nomono_gems( @@ -138,8 +46,6 @@ if direct_sibling_gems.any? && path_env: 'STRUCTUREDMERGE_DEV', root: %w[src my structuredmerge] ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' ensure if direct_sibling_templating && !direct_sibling_local if direct_sibling_dev_was_set diff --git a/gems/parslet-toml-merge/Gemfile.lock b/gems/parslet-toml-merge/Gemfile.lock index 7fdefa2ca..01057dbb9 100644 --- a/gems/parslet-toml-merge/Gemfile.lock +++ b/gems/parslet-toml-merge/Gemfile.lock @@ -128,7 +128,7 @@ GEM mutex_m (0.3.0) nokogiri (1.19.4-x86_64-linux-gnu) racc (~> 1.4) - nomono (1.0.9) + nomono (1.1.0) openssl (4.0.2) ostruct (0.6.3) parallel (1.28.0) @@ -441,6 +441,7 @@ CHECKSUMS backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd + bundler (4.0.17) sha256=214e21431b5665dd2f99df8a5511c6b151d7a72e8015c8b38f8b775b61cbb6c1 bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 @@ -467,9 +468,9 @@ CHECKSUMS io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 - kettle-dev (2.3.9) + kettle-dev (2.3.9) sha256=03b2f72c6dda4d2c4401ee3c0c96853116c922766e7b5b04224434a49b571bfc kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f - kettle-soup-cover (3.0.4) + kettle-soup-cover (3.0.4) sha256=36d4df472362d2020d16411d7ce26ba2fe2a41fb8be64577ff9b5280acf99d86 kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa @@ -479,7 +480,7 @@ CHECKSUMS logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-x86_64-linux-gnu) sha256=379fae440b28915e3f19d752ce2dcf8465ed2b2fbefd2a7ca0dd497bc981a06a - nomono (1.0.9) + nomono (1.1.0) sha256=463dd4c79da02a855739a1b5483190d527b7868688be905e84abdb3449b32c88 openssl (4.0.2) sha256=1037ad2868ae58df9ad917891c0c0f9815a1172f6846d4bcdd508e4c2ee747c2 ostruct (0.6.3) sha256=95a2ed4a4bd1d190784e666b47b2d3f078e4a9efda2fccf18f84ddc6538ed912 parallel (1.28.0) sha256=33e6de1484baf2524792d178b0913fc8eb94c628d6cfe45599ad4458c638c970 @@ -574,4 +575,4 @@ CHECKSUMS zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH - 4.0.16 + 4.0.17 diff --git a/gems/parslet-toml-merge/LICENSE.md b/gems/parslet-toml-merge/LICENSE.md index 6ad318705..65a770d1f 100644 --- a/gems/parslet-toml-merge/LICENSE.md +++ b/gems/parslet-toml-merge/LICENSE.md @@ -3,8 +3,8 @@ This project is made available under the following licenses. Choose the option that best fits your use case: -- [AGPL-3.0-only](AGPL-3.0-only.md) -- [PolyForm-Small-Business-1.0.0](PolyForm-Small-Business-1.0.0.md) +- [AGPL-3.0-only](https://github.com/structuredmerge/structuredmerge-ruby/blob/main/AGPL-3.0-only.md) +- [PolyForm-Small-Business-1.0.0](https://github.com/structuredmerge/structuredmerge-ruby/blob/main/PolyForm-Small-Business-1.0.0.md) If none of the above licenses fit your use case, please [contact us](mailto:floss@galtzo.com) to discuss a custom commercial license. diff --git a/gems/parslet-toml-merge/README.md b/gems/parslet-toml-merge/README.md index 4739c0210..7a68d312e 100644 --- a/gems/parslet-toml-merge/README.md +++ b/gems/parslet-toml-merge/README.md @@ -37,7 +37,7 @@ I've summarized my thoughts in [this blog post](https://dev.to/galtzo/hostile-ta |-------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | Works with MRI Ruby 4 | [![Ruby current Compat][💎ruby-c-i]][🚎11-c-wf]| | Support & Community | [![Join Me on Daily.dev's RubyFriends][✉️ruby-friends-img]][✉️ruby-friends] [![Get help from RubyForum][✉️ruby-forum-img]][✉️ruby-forum] [![Live Chat on Discord][✉️discord-invite-img-ftb]][✉️discord-invite] [![Get help from me on Upwork][👨🏼‍🏫expsup-upwork-img]][👨🏼‍🏫expsup-upwork] [![Get help from me on Codementor][👨🏼‍🏫expsup-codementor-img]][👨🏼‍🏫expsup-codementor] | -| Source | [![Source on GitLab.com][📜src-gl-img]][📜src-gl] [![Source on CodeBerg.org][📜src-cb-img]][📜src-cb] [![Source on Github.com][📜src-gh-img]][📜src-gh] [![The best SHA: dQw4w9WgXcQ!][🧮kloc-img]][🧮kloc] | +| Source | [![Source on GitLab.com][📜src-gl-img]][📜src-gl] [![Source on CodeBerg.org][📜src-cb-img]][📜src-cb] [![Source on GitHub.com][📜src-gh-img]][📜src-gh] [![The best SHA: dQw4w9WgXcQ!][🧮kloc-img]][🧮kloc] | | Documentation | [![Current release on RubyDoc.info][📜docs-cr-rd-img]][🚎yard-current] [![YARD on Galtzo.com][📜docs-head-rd-img]][🚎yard-head] [![Maintainer Blog][🚂maint-blog-img]][🚂maint-blog] [![GitLab Wiki][📜gl-wiki-img]][📜gl-wiki] [![GitHub Wiki][📜gh-wiki-img]][📜gh-wiki] | | Compliance | [![License: AGPL-3.0-only OR PolyForm-Small-Business-1.0.0][📄license-img]][📄license] [![Apache license compatibility: Category X][📄license-compat-img]][📄license-compat] [![📄ilo-declaration-img]][📄ilo-declaration] [![Security Policy][🔐security-img]][🔐security] [![Contributor Covenant 2.1][🪇conduct-img]][🪇conduct] [![SemVer 2.0.0][📌semver-img]][📌semver] | | Style | [![Enforced Code Style Linter][💎rlts-img]][💎rlts] [![Keep-A-Changelog 1.0.0][📗keep-changelog-img]][📗keep-changelog] [![Gitmoji Commits][📌gitmoji-img]][📌gitmoji] [![Compatibility appraised by: appraisal2][💎appraisal2-img]][💎appraisal2] | @@ -155,7 +155,7 @@ See [CHANGELOG.md][📌changelog] for a list of releases. ## 📄 License -The gem is available under the following licenses: [AGPL-3.0-only](AGPL-3.0-only.md), [PolyForm-Small-Business-1.0.0](PolyForm-Small-Business-1.0.0.md). +The gem is available under the following licenses: [AGPL-3.0-only](https://github.com/structuredmerge/structuredmerge-ruby/blob/main/AGPL-3.0-only.md), [PolyForm-Small-Business-1.0.0](https://github.com/structuredmerge/structuredmerge-ruby/blob/main/PolyForm-Small-Business-1.0.0.md). See [LICENSE.md][📄license] for details. If none of the available licenses suit your use case, please [contact us](mailto:floss@galtzo.com) to discuss a custom commercial license. @@ -227,7 +227,7 @@ If none of the available licenses suit your use case, please [contact us](mailto [📜src-gl]: https://gitlab.com/structuredmerge/structuredmerge-ruby/-/tree/main/gems/parslet-toml-merge [📜src-cb-img]: https://img.shields.io/badge/CodeBerg-4893CC?style=for-the-badge&logo=CodeBerg&logoColor=blue [📜src-cb]: https://codeberg.org/structuredmerge/structuredmerge-ruby/src/branch/main/gems/parslet-toml-merge -[📜src-gh-img]: https://img.shields.io/badge/GitHub-238636?style=for-the-badge&logo=Github&logoColor=green +[📜src-gh-img]: https://img.shields.io/badge/GitHub-238636?style=for-the-badge&logo=GitHub&logoColor=green [📜src-gh]: https://github.com/structuredmerge/structuredmerge-ruby/tree/main/gems/parslet-toml-merge [📜docs-cr-rd-img]: https://img.shields.io/badge/RubyDoc-Current_Release-943CD2?style=for-the-badge&logo=readthedocs&logoColor=white [📜docs-head-rd-img]: https://img.shields.io/badge/YARD_on_Galtzo.com-HEAD-943CD2?style=for-the-badge&logo=readthedocs&logoColor=white diff --git a/gems/parslet-toml-merge/gemfiles/modular/coverage_local.gemfile b/gems/parslet-toml-merge/gemfiles/modular/coverage_local.gemfile index 86d310542..ab0127ea0 100644 --- a/gems/parslet-toml-merge/gemfiles/modular/coverage_local.gemfile +++ b/gems/parslet-toml-merge/gemfiles/modular/coverage_local.gemfile @@ -3,26 +3,6 @@ # Local path overrides for development. # Loaded by the associated non-local gemfile when KETTLE_DEV_DEV != "false". -# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. -# Bundler records that dependency during Gemfile evaluation, but it does not -# activate that exact version before the immediate `require "nomono/bundler"`. -# If multiple compatible nomono versions are installed, RubyGems may activate -# the newest installed version while Gemfile.lock pins an older compatible one; -# Bundler then aborts with "already activated nomono X, but your Gemfile -# requires nomono Y". Prefer the locked compatible version when present, then -# activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] -nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) -if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked -end -Kernel.send(:gem, 'nomono', *nomono_activation_requirements) require 'nomono/bundler' local_gems = %w[kettle-dev kettle-test kettle-soup-cover kettle-drift] diff --git a/gems/parslet-toml-merge/gemfiles/modular/documentation_local.gemfile b/gems/parslet-toml-merge/gemfiles/modular/documentation_local.gemfile index 62ccb64cd..728baa521 100644 --- a/gems/parslet-toml-merge/gemfiles/modular/documentation_local.gemfile +++ b/gems/parslet-toml-merge/gemfiles/modular/documentation_local.gemfile @@ -3,26 +3,6 @@ # Local path overrides for development. # Loaded by the associated non-local gemfile when GALTZO_FLOSS_DEV != "false". -# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. -# Bundler records that dependency during Gemfile evaluation, but it does not -# activate that exact version before the immediate `require "nomono/bundler"`. -# If multiple compatible nomono versions are installed, RubyGems may activate -# the newest installed version while Gemfile.lock pins an older compatible one; -# Bundler then aborts with "already activated nomono X, but your Gemfile -# requires nomono Y". Prefer the locked compatible version when present, then -# activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] -nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) -if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked -end -Kernel.send(:gem, 'nomono', *nomono_activation_requirements) require 'nomono/bundler' local_gems = %w[yard-fence yard-timekeeper yard-yaml] diff --git a/gems/parslet-toml-merge/gemfiles/modular/style_local.gemfile b/gems/parslet-toml-merge/gemfiles/modular/style_local.gemfile index 12fec3205..8e088d210 100644 --- a/gems/parslet-toml-merge/gemfiles/modular/style_local.gemfile +++ b/gems/parslet-toml-merge/gemfiles/modular/style_local.gemfile @@ -6,26 +6,6 @@ # Local path overrides for development. # Loaded by the associated non-local gemfile when RUBOCOP_LTS_LOCAL != "false". -# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. -# Bundler records that dependency during Gemfile evaluation, but it does not -# activate that exact version before the immediate `require "nomono/bundler"`. -# If multiple compatible nomono versions are installed, RubyGems may activate -# the newest installed version while Gemfile.lock pins an older compatible one; -# Bundler then aborts with "already activated nomono X, but your Gemfile -# requires nomono Y". Prefer the locked compatible version when present, then -# activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] -nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) -if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked -end -Kernel.send(:gem, 'nomono', *nomono_activation_requirements) require 'nomono/bundler' local_gems = %w[rubocop-lts rubocop-lts-rspec rubocop-ruby3_2 standard-rubocop-lts] diff --git a/gems/parslet-toml-merge/gemfiles/modular/templating_local.gemfile b/gems/parslet-toml-merge/gemfiles/modular/templating_local.gemfile index 992e7dfe6..496c9d4a2 100644 --- a/gems/parslet-toml-merge/gemfiles/modular/templating_local.gemfile +++ b/gems/parslet-toml-merge/gemfiles/modular/templating_local.gemfile @@ -4,26 +4,6 @@ # Loaded by the associated non-local gemfile when STRUCTUREDMERGE_DEV or KETTLE_DEV_DEV # is not "false". -# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. -# Bundler records that dependency during Gemfile evaluation, but it does not -# activate that exact version before the immediate `require "nomono/bundler"`. -# If multiple compatible nomono versions are installed, RubyGems may activate -# the newest installed version while Gemfile.lock pins an older compatible one; -# Bundler then aborts with "already activated nomono X, but your Gemfile -# requires nomono Y". Prefer the locked compatible version when present, then -# activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] -nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) -if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked -end -Kernel.send(:gem, 'nomono', *nomono_activation_requirements) require 'nomono/bundler' structuredmerge_local_gems = %w[ diff --git a/gems/plain-merge/.kettle-drift.lock b/gems/plain-merge/.kettle-drift.lock deleted file mode 100644 index 7cc6a5131..000000000 --- a/gems/plain-merge/.kettle-drift.lock +++ /dev/null @@ -1,188 +0,0 @@ -{ - "(direct_sibling_local ||\nENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?)": [ - { - "file": "Gemfile", - "lines": [ - 80, - 120 - ] - } - ], - ".find { |spec| spec.name == 'nomono' }\nnomono_locked = nomono_locked_spec &&": [ - { - "file": "Gemfile", - "lines": [ - 91, - 131 - ] - } - ], - "ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?)\ndirect_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV')": [ - { - "file": "Gemfile", - "lines": [ - 81, - 121 - ] - } - ], - "Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version)\nnomono_activation_requirements = [\"= #{nomono_locked_spec.version}\"] if nomono_locked": [ - { - "file": "Gemfile", - "lines": [ - 93, - 133 - ] - } - ], - "Kernel.send(:gem, 'nomono', *nomono_activation_requirements)\nrequire 'nomono/bundler'": [ - { - "file": "Gemfile", - "lines": [ - 96, - 136 - ] - } - ], - "direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV')\ndirect_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil)": [ - { - "file": "Gemfile", - "lines": [ - 82, - 122 - ] - } - ], - "eval_nomono_gems(\ngems: direct_sibling_gems,": [ - { - "file": "Gemfile", - "lines": [ - 60, - 100, - 140 - ] - } - ], - "gems: direct_sibling_gems,\nprefix: 'STRUCTUREDMERGE',": [ - { - "file": "Gemfile", - "lines": [ - 101, - 141 - ] - } - ], - "if File.file?(nomono_lockfile)\nnomono_locked_spec = Bundler::LockfileParser": [ - { - "file": "Gemfile", - "lines": [ - 43, - 87, - 127 - ] - } - ], - "if direct_sibling_dev_was_set\nENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original": [ - { - "file": "Gemfile", - "lines": [ - 110, - 150 - ] - } - ], - "if direct_sibling_gems.any? &&\n(direct_sibling_local ||": [ - { - "file": "Gemfile", - "lines": [ - 35, - 79, - 119 - ] - } - ], - "if direct_sibling_templating && !direct_sibling_local\nif direct_sibling_dev_was_set": [ - { - "file": "Gemfile", - "lines": [ - 69, - 109, - 149 - ] - } - ], - "nomono_activation_requirements = nomono_requirements\nnomono_lockfile = File.expand_path('Gemfile.lock', __dir__)": [ - { - "file": "Gemfile", - "lines": [ - 85, - 125 - ] - } - ], - "nomono_locked = nomono_locked_spec &&\nGem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version)": [ - { - "file": "Gemfile", - "lines": [ - 48, - 92, - 132 - ] - } - ], - "nomono_locked_spec = Bundler::LockfileParser\n.new(Bundler.read_file(nomono_lockfile))": [ - { - "file": "Gemfile", - "lines": [ - 44, - 88, - 128 - ] - } - ], - "nomono_lockfile = File.expand_path('Gemfile.lock', __dir__)\nif File.file?(nomono_lockfile)": [ - { - "file": "Gemfile", - "lines": [ - 86, - 126 - ] - } - ], - "path_env: 'STRUCTUREDMERGE_DEV',\nroot: %w[src my structuredmerge]": [ - { - "file": "Gemfile", - "lines": [ - 103, - 143 - ] - } - ], - "prefix: 'STRUCTUREDMERGE',\npath_env: 'STRUCTUREDMERGE_DEV',": [ - { - "file": "Gemfile", - "lines": [ - 102, - 142 - ] - } - ], - "require 'nomono/bundler'\nENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local": [ - { - "file": "Gemfile", - "lines": [ - 97, - 137 - ] - } - ], - "rescue LoadError\nwarn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.'": [ - { - "file": "Gemfile", - "lines": [ - 106, - 146 - ] - } - ] -} diff --git a/gems/plain-merge/Gemfile b/gems/plain-merge/Gemfile index c12ef61e2..316dcca89 100644 --- a/gems/plain-merge/Gemfile +++ b/gems/plain-merge/Gemfile @@ -37,100 +37,8 @@ if direct_sibling_gems.any? && ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) + require 'nomono/bundler' begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local eval_nomono_gems( @@ -139,8 +47,6 @@ if direct_sibling_gems.any? && path_env: 'STRUCTUREDMERGE_DEV', root: %w[src my structuredmerge] ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' ensure if direct_sibling_templating && !direct_sibling_local if direct_sibling_dev_was_set diff --git a/gems/plain-merge/Gemfile.lock b/gems/plain-merge/Gemfile.lock index e56d31ae4..55a73656c 100644 --- a/gems/plain-merge/Gemfile.lock +++ b/gems/plain-merge/Gemfile.lock @@ -136,7 +136,7 @@ GEM racc (~> 1.4) nokogiri (1.19.4-x86_64-linux-musl) racc (~> 1.4) - nomono (1.0.9) + nomono (1.1.0) openssl (4.0.2) ostruct (0.6.3) parallel (1.28.0) @@ -452,6 +452,7 @@ CHECKSUMS backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd + bundler (4.0.17) sha256=214e21431b5665dd2f99df8a5511c6b151d7a72e8015c8b38f8b775b61cbb6c1 bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 @@ -478,9 +479,9 @@ CHECKSUMS io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 - kettle-dev (2.3.9) + kettle-dev (2.3.9) sha256=03b2f72c6dda4d2c4401ee3c0c96853116c922766e7b5b04224434a49b571bfc kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f - kettle-soup-cover (3.0.4) + kettle-soup-cover (3.0.4) sha256=36d4df472362d2020d16411d7ce26ba2fe2a41fb8be64577ff9b5280acf99d86 kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa @@ -494,7 +495,7 @@ CHECKSUMS nokogiri (1.19.4-arm64-darwin) sha256=a46db9853286e6597b36ebc6953817d15acf3a299583eb3f89fdc6f91dd63527 nokogiri (1.19.4-x86_64-linux-gnu) sha256=379fae440b28915e3f19d752ce2dcf8465ed2b2fbefd2a7ca0dd497bc981a06a nokogiri (1.19.4-x86_64-linux-musl) sha256=17dfb7c1fa194ae02fbf7c51a7afc8d278045ab3fdacfd86f91d02d7b274470b - nomono (1.0.9) + nomono (1.1.0) sha256=463dd4c79da02a855739a1b5483190d527b7868688be905e84abdb3449b32c88 openssl (4.0.2) sha256=1037ad2868ae58df9ad917891c0c0f9815a1172f6846d4bcdd508e4c2ee747c2 ostruct (0.6.3) sha256=95a2ed4a4bd1d190784e666b47b2d3f078e4a9efda2fccf18f84ddc6538ed912 parallel (1.28.0) sha256=33e6de1484baf2524792d178b0913fc8eb94c628d6cfe45599ad4458c638c970 @@ -589,4 +590,4 @@ CHECKSUMS zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH - 4.0.16 + 4.0.17 diff --git a/gems/plain-merge/LICENSE.md b/gems/plain-merge/LICENSE.md index 6ad318705..65a770d1f 100644 --- a/gems/plain-merge/LICENSE.md +++ b/gems/plain-merge/LICENSE.md @@ -3,8 +3,8 @@ This project is made available under the following licenses. Choose the option that best fits your use case: -- [AGPL-3.0-only](AGPL-3.0-only.md) -- [PolyForm-Small-Business-1.0.0](PolyForm-Small-Business-1.0.0.md) +- [AGPL-3.0-only](https://github.com/structuredmerge/structuredmerge-ruby/blob/main/AGPL-3.0-only.md) +- [PolyForm-Small-Business-1.0.0](https://github.com/structuredmerge/structuredmerge-ruby/blob/main/PolyForm-Small-Business-1.0.0.md) If none of the above licenses fit your use case, please [contact us](mailto:floss@galtzo.com) to discuss a custom commercial license. diff --git a/gems/plain-merge/README.md b/gems/plain-merge/README.md index 197f6ae4e..705faed2c 100644 --- a/gems/plain-merge/README.md +++ b/gems/plain-merge/README.md @@ -36,7 +36,7 @@ I've summarized my thoughts in [this blog post](https://dev.to/galtzo/hostile-ta |-------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | Works with MRI Ruby 4 | [![Ruby current Compat][💎ruby-c-i]][🚎11-c-wf]| | Support & Community | [![Join Me on Daily.dev's RubyFriends][✉️ruby-friends-img]][✉️ruby-friends] [![Get help from RubyForum][✉️ruby-forum-img]][✉️ruby-forum] [![Live Chat on Discord][✉️discord-invite-img-ftb]][✉️discord-invite] [![Get help from me on Upwork][👨🏼‍🏫expsup-upwork-img]][👨🏼‍🏫expsup-upwork] [![Get help from me on Codementor][👨🏼‍🏫expsup-codementor-img]][👨🏼‍🏫expsup-codementor] | -| Source | [![Source on GitLab.com][📜src-gl-img]][📜src-gl] [![Source on CodeBerg.org][📜src-cb-img]][📜src-cb] [![Source on Github.com][📜src-gh-img]][📜src-gh] [![The best SHA: dQw4w9WgXcQ!][🧮kloc-img]][🧮kloc] | +| Source | [![Source on GitLab.com][📜src-gl-img]][📜src-gl] [![Source on CodeBerg.org][📜src-cb-img]][📜src-cb] [![Source on GitHub.com][📜src-gh-img]][📜src-gh] [![The best SHA: dQw4w9WgXcQ!][🧮kloc-img]][🧮kloc] | | Documentation | [![Current release on RubyDoc.info][📜docs-cr-rd-img]][🚎yard-current] [![YARD on Galtzo.com][📜docs-head-rd-img]][🚎yard-head] [![Maintainer Blog][🚂maint-blog-img]][🚂maint-blog] [![GitLab Wiki][📜gl-wiki-img]][📜gl-wiki] [![GitHub Wiki][📜gh-wiki-img]][📜gh-wiki] | | Compliance | [![License: AGPL-3.0-only OR PolyForm-Small-Business-1.0.0][📄license-img]][📄license] [![Apache license compatibility: Category X][📄license-compat-img]][📄license-compat] [![📄ilo-declaration-img]][📄ilo-declaration] [![Security Policy][🔐security-img]][🔐security] [![Contributor Covenant 2.1][🪇conduct-img]][🪇conduct] [![SemVer 2.0.0][📌semver-img]][📌semver] | | Style | [![Enforced Code Style Linter][💎rlts-img]][💎rlts] [![Keep-A-Changelog 1.0.0][📗keep-changelog-img]][📗keep-changelog] [![Gitmoji Commits][📌gitmoji-img]][📌gitmoji] [![Compatibility appraised by: appraisal2][💎appraisal2-img]][💎appraisal2] | @@ -147,7 +147,7 @@ See [CHANGELOG.md][📌changelog] for a list of releases. ## 📄 License -The gem is available under the following licenses: [AGPL-3.0-only](AGPL-3.0-only.md), [PolyForm-Small-Business-1.0.0](PolyForm-Small-Business-1.0.0.md). +The gem is available under the following licenses: [AGPL-3.0-only](https://github.com/structuredmerge/structuredmerge-ruby/blob/main/AGPL-3.0-only.md), [PolyForm-Small-Business-1.0.0](https://github.com/structuredmerge/structuredmerge-ruby/blob/main/PolyForm-Small-Business-1.0.0.md). See [LICENSE.md][📄license] for details. If none of the available licenses suit your use case, please [contact us](mailto:floss@galtzo.com) to discuss a custom commercial license. @@ -219,7 +219,7 @@ If none of the available licenses suit your use case, please [contact us](mailto [📜src-gl]: https://gitlab.com/structuredmerge/structuredmerge-ruby/-/tree/main/gems/plain-merge [📜src-cb-img]: https://img.shields.io/badge/CodeBerg-4893CC?style=for-the-badge&logo=CodeBerg&logoColor=blue [📜src-cb]: https://codeberg.org/structuredmerge/structuredmerge-ruby/src/branch/main/gems/plain-merge -[📜src-gh-img]: https://img.shields.io/badge/GitHub-238636?style=for-the-badge&logo=Github&logoColor=green +[📜src-gh-img]: https://img.shields.io/badge/GitHub-238636?style=for-the-badge&logo=GitHub&logoColor=green [📜src-gh]: https://github.com/structuredmerge/structuredmerge-ruby/tree/main/gems/plain-merge [📜docs-cr-rd-img]: https://img.shields.io/badge/RubyDoc-Current_Release-943CD2?style=for-the-badge&logo=readthedocs&logoColor=white [📜docs-head-rd-img]: https://img.shields.io/badge/YARD_on_Galtzo.com-HEAD-943CD2?style=for-the-badge&logo=readthedocs&logoColor=white diff --git a/gems/plain-merge/gemfiles/modular/coverage_local.gemfile b/gems/plain-merge/gemfiles/modular/coverage_local.gemfile index e40a42a87..34c1621f1 100644 --- a/gems/plain-merge/gemfiles/modular/coverage_local.gemfile +++ b/gems/plain-merge/gemfiles/modular/coverage_local.gemfile @@ -3,26 +3,6 @@ # Local path overrides for development. # Loaded by the associated non-local gemfile when KETTLE_DEV_DEV != "false". -# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. -# Bundler records that dependency during Gemfile evaluation, but it does not -# activate that exact version before the immediate `require "nomono/bundler"`. -# If multiple compatible nomono versions are installed, RubyGems may activate -# the newest installed version while Gemfile.lock pins an older compatible one; -# Bundler then aborts with "already activated nomono X, but your Gemfile -# requires nomono Y". Prefer the locked compatible version when present, then -# activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] -nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) -if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked -end -Kernel.send(:gem, 'nomono', *nomono_activation_requirements) require 'nomono/bundler' local_gems = %w[kettle-dev kettle-test kettle-soup-cover kettle-drift] diff --git a/gems/plain-merge/gemfiles/modular/documentation_local.gemfile b/gems/plain-merge/gemfiles/modular/documentation_local.gemfile index 1f2016c3b..db083ce55 100644 --- a/gems/plain-merge/gemfiles/modular/documentation_local.gemfile +++ b/gems/plain-merge/gemfiles/modular/documentation_local.gemfile @@ -3,26 +3,6 @@ # Local path overrides for development. # Loaded by the associated non-local gemfile when GALTZO_FLOSS_DEV != "false". -# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. -# Bundler records that dependency during Gemfile evaluation, but it does not -# activate that exact version before the immediate `require "nomono/bundler"`. -# If multiple compatible nomono versions are installed, RubyGems may activate -# the newest installed version while Gemfile.lock pins an older compatible one; -# Bundler then aborts with "already activated nomono X, but your Gemfile -# requires nomono Y". Prefer the locked compatible version when present, then -# activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] -nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) -if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked -end -Kernel.send(:gem, 'nomono', *nomono_activation_requirements) require 'nomono/bundler' local_gems = %w[yard-fence yard-timekeeper yard-yaml] diff --git a/gems/plain-merge/gemfiles/modular/style_local.gemfile b/gems/plain-merge/gemfiles/modular/style_local.gemfile index 9b6846285..73073b0b9 100644 --- a/gems/plain-merge/gemfiles/modular/style_local.gemfile +++ b/gems/plain-merge/gemfiles/modular/style_local.gemfile @@ -6,26 +6,6 @@ # Local path overrides for development. # Loaded by the associated non-local gemfile when RUBOCOP_LTS_LOCAL != "false". -# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. -# Bundler records that dependency during Gemfile evaluation, but it does not -# activate that exact version before the immediate `require "nomono/bundler"`. -# If multiple compatible nomono versions are installed, RubyGems may activate -# the newest installed version while Gemfile.lock pins an older compatible one; -# Bundler then aborts with "already activated nomono X, but your Gemfile -# requires nomono Y". Prefer the locked compatible version when present, then -# activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] -nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) -if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked -end -Kernel.send(:gem, 'nomono', *nomono_activation_requirements) require 'nomono/bundler' local_gems = %w[rubocop-lts rubocop-lts-rspec rubocop-ruby3_2 standard-rubocop-lts] diff --git a/gems/plain-merge/gemfiles/modular/templating_local.gemfile b/gems/plain-merge/gemfiles/modular/templating_local.gemfile index b10c084e9..2a62d80bb 100644 --- a/gems/plain-merge/gemfiles/modular/templating_local.gemfile +++ b/gems/plain-merge/gemfiles/modular/templating_local.gemfile @@ -4,26 +4,6 @@ # Loaded by the associated non-local gemfile when STRUCTUREDMERGE_DEV or KETTLE_DEV_DEV # is not "false". -# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. -# Bundler records that dependency during Gemfile evaluation, but it does not -# activate that exact version before the immediate `require "nomono/bundler"`. -# If multiple compatible nomono versions are installed, RubyGems may activate -# the newest installed version while Gemfile.lock pins an older compatible one; -# Bundler then aborts with "already activated nomono X, but your Gemfile -# requires nomono Y". Prefer the locked compatible version when present, then -# activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] -nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) -if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked -end -Kernel.send(:gem, 'nomono', *nomono_activation_requirements) require 'nomono/bundler' structuredmerge_local_gems = %w[ diff --git a/gems/prism-merge/.kettle-drift.lock b/gems/prism-merge/.kettle-drift.lock deleted file mode 100644 index 25b4603d6..000000000 --- a/gems/prism-merge/.kettle-drift.lock +++ /dev/null @@ -1,208 +0,0 @@ -{ - "(direct_sibling_local ||\nENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?)": [ - { - "file": "Gemfile", - "lines": [ - 79, - 119, - 159 - ] - } - ], - ".find { |spec| spec.name == 'nomono' }\nnomono_locked = nomono_locked_spec &&": [ - { - "file": "Gemfile", - "lines": [ - 90, - 130, - 170 - ] - } - ], - "ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?)\ndirect_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV')": [ - { - "file": "Gemfile", - "lines": [ - 80, - 120, - 160 - ] - } - ], - "Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version)\nnomono_activation_requirements = [\"= #{nomono_locked_spec.version}\"] if nomono_locked": [ - { - "file": "Gemfile", - "lines": [ - 92, - 132, - 172 - ] - } - ], - "Kernel.send(:gem, 'nomono', *nomono_activation_requirements)\nrequire 'nomono/bundler'": [ - { - "file": "Gemfile", - "lines": [ - 95, - 135, - 175 - ] - } - ], - "direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV')\ndirect_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil)": [ - { - "file": "Gemfile", - "lines": [ - 81, - 121, - 161 - ] - } - ], - "eval_nomono_gems(\ngems: direct_sibling_gems,": [ - { - "file": "Gemfile", - "lines": [ - 59, - 99, - 139, - 179 - ] - } - ], - "gems: direct_sibling_gems,\nprefix: 'STRUCTUREDMERGE',": [ - { - "file": "Gemfile", - "lines": [ - 100, - 140, - 180 - ] - } - ], - "if File.file?(nomono_lockfile)\nnomono_locked_spec = Bundler::LockfileParser": [ - { - "file": "Gemfile", - "lines": [ - 42, - 86, - 126, - 166 - ] - } - ], - "if direct_sibling_dev_was_set\nENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original": [ - { - "file": "Gemfile", - "lines": [ - 109, - 149, - 189 - ] - } - ], - "if direct_sibling_gems.any? &&\n(direct_sibling_local ||": [ - { - "file": "Gemfile", - "lines": [ - 34, - 78, - 118, - 158 - ] - } - ], - "if direct_sibling_templating && !direct_sibling_local\nif direct_sibling_dev_was_set": [ - { - "file": "Gemfile", - "lines": [ - 68, - 108, - 148, - 188 - ] - } - ], - "nomono_activation_requirements = nomono_requirements\nnomono_lockfile = File.expand_path('Gemfile.lock', __dir__)": [ - { - "file": "Gemfile", - "lines": [ - 84, - 124, - 164 - ] - } - ], - "nomono_locked = nomono_locked_spec &&\nGem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version)": [ - { - "file": "Gemfile", - "lines": [ - 47, - 91, - 131, - 171 - ] - } - ], - "nomono_locked_spec = Bundler::LockfileParser\n.new(Bundler.read_file(nomono_lockfile))": [ - { - "file": "Gemfile", - "lines": [ - 43, - 87, - 127, - 167 - ] - } - ], - "nomono_lockfile = File.expand_path('Gemfile.lock', __dir__)\nif File.file?(nomono_lockfile)": [ - { - "file": "Gemfile", - "lines": [ - 85, - 125, - 165 - ] - } - ], - "path_env: 'STRUCTUREDMERGE_DEV',\nroot: %w[src my structuredmerge]": [ - { - "file": "Gemfile", - "lines": [ - 102, - 142, - 182 - ] - } - ], - "prefix: 'STRUCTUREDMERGE',\npath_env: 'STRUCTUREDMERGE_DEV',": [ - { - "file": "Gemfile", - "lines": [ - 101, - 141, - 181 - ] - } - ], - "require 'nomono/bundler'\nENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local": [ - { - "file": "Gemfile", - "lines": [ - 96, - 136, - 176 - ] - } - ], - "rescue LoadError\nwarn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.'": [ - { - "file": "Gemfile", - "lines": [ - 105, - 145, - 185 - ] - } - ] -} diff --git a/gems/prism-merge/Gemfile b/gems/prism-merge/Gemfile index 169f9d941..ae2e462d2 100644 --- a/gems/prism-merge/Gemfile +++ b/gems/prism-merge/Gemfile @@ -36,140 +36,8 @@ if direct_sibling_gems.any? && ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) + require 'nomono/bundler' begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local eval_nomono_gems( @@ -178,8 +46,6 @@ if direct_sibling_gems.any? && path_env: 'STRUCTUREDMERGE_DEV', root: %w[src my structuredmerge] ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' ensure if direct_sibling_templating && !direct_sibling_local if direct_sibling_dev_was_set diff --git a/gems/prism-merge/Gemfile.lock b/gems/prism-merge/Gemfile.lock index 2008a266c..6bc04f5d9 100644 --- a/gems/prism-merge/Gemfile.lock +++ b/gems/prism-merge/Gemfile.lock @@ -128,7 +128,7 @@ GEM mutex_m (0.3.0) nokogiri (1.19.4-x86_64-linux-gnu) racc (~> 1.4) - nomono (1.0.9) + nomono (1.1.0) openssl (4.0.2) ostruct (0.6.3) parallel (1.28.0) @@ -439,6 +439,7 @@ CHECKSUMS backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd + bundler (4.0.17) sha256=214e21431b5665dd2f99df8a5511c6b151d7a72e8015c8b38f8b775b61cbb6c1 bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 @@ -465,9 +466,9 @@ CHECKSUMS io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 - kettle-dev (2.3.9) + kettle-dev (2.3.9) sha256=03b2f72c6dda4d2c4401ee3c0c96853116c922766e7b5b04224434a49b571bfc kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f - kettle-soup-cover (3.0.4) + kettle-soup-cover (3.0.4) sha256=36d4df472362d2020d16411d7ce26ba2fe2a41fb8be64577ff9b5280acf99d86 kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa @@ -477,7 +478,7 @@ CHECKSUMS logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-x86_64-linux-gnu) sha256=379fae440b28915e3f19d752ce2dcf8465ed2b2fbefd2a7ca0dd497bc981a06a - nomono (1.0.9) + nomono (1.1.0) sha256=463dd4c79da02a855739a1b5483190d527b7868688be905e84abdb3449b32c88 openssl (4.0.2) sha256=1037ad2868ae58df9ad917891c0c0f9815a1172f6846d4bcdd508e4c2ee747c2 ostruct (0.6.3) sha256=95a2ed4a4bd1d190784e666b47b2d3f078e4a9efda2fccf18f84ddc6538ed912 parallel (1.28.0) sha256=33e6de1484baf2524792d178b0913fc8eb94c628d6cfe45599ad4458c638c970 @@ -571,4 +572,4 @@ CHECKSUMS zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH - 4.0.16 + 4.0.17 diff --git a/gems/prism-merge/LICENSE.md b/gems/prism-merge/LICENSE.md index 6ad318705..65a770d1f 100644 --- a/gems/prism-merge/LICENSE.md +++ b/gems/prism-merge/LICENSE.md @@ -3,8 +3,8 @@ This project is made available under the following licenses. Choose the option that best fits your use case: -- [AGPL-3.0-only](AGPL-3.0-only.md) -- [PolyForm-Small-Business-1.0.0](PolyForm-Small-Business-1.0.0.md) +- [AGPL-3.0-only](https://github.com/structuredmerge/structuredmerge-ruby/blob/main/AGPL-3.0-only.md) +- [PolyForm-Small-Business-1.0.0](https://github.com/structuredmerge/structuredmerge-ruby/blob/main/PolyForm-Small-Business-1.0.0.md) If none of the above licenses fit your use case, please [contact us](mailto:floss@galtzo.com) to discuss a custom commercial license. diff --git a/gems/prism-merge/README.md b/gems/prism-merge/README.md index f6907f5c9..4b83e0299 100644 --- a/gems/prism-merge/README.md +++ b/gems/prism-merge/README.md @@ -74,7 +74,7 @@ File.write("merged.rb", result) |-------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | Works with MRI Ruby 4 | [![Ruby current Compat][💎ruby-c-i]][🚎11-c-wf]| | Support & Community | [![Join Me on Daily.dev's RubyFriends][✉️ruby-friends-img]][✉️ruby-friends] [![Get help from RubyForum][✉️ruby-forum-img]][✉️ruby-forum] [![Live Chat on Discord][✉️discord-invite-img-ftb]][✉️discord-invite] [![Get help from me on Upwork][👨🏼‍🏫expsup-upwork-img]][👨🏼‍🏫expsup-upwork] [![Get help from me on Codementor][👨🏼‍🏫expsup-codementor-img]][👨🏼‍🏫expsup-codementor] | -| Source | [![Source on GitLab.com][📜src-gl-img]][📜src-gl] [![Source on CodeBerg.org][📜src-cb-img]][📜src-cb] [![Source on Github.com][📜src-gh-img]][📜src-gh] [![The best SHA: dQw4w9WgXcQ!][🧮kloc-img]][🧮kloc] | +| Source | [![Source on GitLab.com][📜src-gl-img]][📜src-gl] [![Source on CodeBerg.org][📜src-cb-img]][📜src-cb] [![Source on GitHub.com][📜src-gh-img]][📜src-gh] [![The best SHA: dQw4w9WgXcQ!][🧮kloc-img]][🧮kloc] | | Documentation | [![Current release on RubyDoc.info][📜docs-cr-rd-img]][🚎yard-current] [![YARD on Galtzo.com][📜docs-head-rd-img]][🚎yard-head] [![Maintainer Blog][🚂maint-blog-img]][🚂maint-blog] [![GitLab Wiki][📜gl-wiki-img]][📜gl-wiki] [![GitHub Wiki][📜gh-wiki-img]][📜gh-wiki] | | Compliance | [![License: AGPL-3.0-only OR PolyForm-Small-Business-1.0.0][📄license-img]][📄license] [![Apache license compatibility: Category X][📄license-compat-img]][📄license-compat] [![📄ilo-declaration-img]][📄ilo-declaration] [![Security Policy][🔐security-img]][🔐security] [![Contributor Covenant 2.1][🪇conduct-img]][🪇conduct] [![SemVer 2.0.0][📌semver-img]][📌semver] | | Style | [![Enforced Code Style Linter][💎rlts-img]][💎rlts] [![Keep-A-Changelog 1.0.0][📗keep-changelog-img]][📗keep-changelog] [![Gitmoji Commits][📌gitmoji-img]][📌gitmoji] [![Compatibility appraised by: appraisal2][💎appraisal2-img]][💎appraisal2] | @@ -1134,7 +1134,7 @@ See [CHANGELOG.md][📌changelog] for a list of releases. ## 📄 License -The gem is available under the following licenses: [AGPL-3.0-only](AGPL-3.0-only.md), [PolyForm-Small-Business-1.0.0](PolyForm-Small-Business-1.0.0.md). +The gem is available under the following licenses: [AGPL-3.0-only](https://github.com/structuredmerge/structuredmerge-ruby/blob/main/AGPL-3.0-only.md), [PolyForm-Small-Business-1.0.0](https://github.com/structuredmerge/structuredmerge-ruby/blob/main/PolyForm-Small-Business-1.0.0.md). See [LICENSE.md][📄license] for details. If none of the available licenses suit your use case, please [contact us](mailto:floss@galtzo.com) to discuss a custom commercial license. @@ -1206,7 +1206,7 @@ If none of the available licenses suit your use case, please [contact us](mailto [📜src-gl]: https://gitlab.com/structuredmerge/structuredmerge-ruby/-/tree/main/gems/prism-merge [📜src-cb-img]: https://img.shields.io/badge/CodeBerg-4893CC?style=for-the-badge&logo=CodeBerg&logoColor=blue [📜src-cb]: https://codeberg.org/structuredmerge/structuredmerge-ruby/src/branch/main/gems/prism-merge -[📜src-gh-img]: https://img.shields.io/badge/GitHub-238636?style=for-the-badge&logo=Github&logoColor=green +[📜src-gh-img]: https://img.shields.io/badge/GitHub-238636?style=for-the-badge&logo=GitHub&logoColor=green [📜src-gh]: https://github.com/structuredmerge/structuredmerge-ruby/tree/main/gems/prism-merge [📜docs-cr-rd-img]: https://img.shields.io/badge/RubyDoc-Current_Release-943CD2?style=for-the-badge&logo=readthedocs&logoColor=white [📜docs-head-rd-img]: https://img.shields.io/badge/YARD_on_Galtzo.com-HEAD-943CD2?style=for-the-badge&logo=readthedocs&logoColor=white diff --git a/gems/prism-merge/gemfiles/modular/coverage_local.gemfile b/gems/prism-merge/gemfiles/modular/coverage_local.gemfile index ab0e08fd4..828b27e27 100644 --- a/gems/prism-merge/gemfiles/modular/coverage_local.gemfile +++ b/gems/prism-merge/gemfiles/modular/coverage_local.gemfile @@ -3,26 +3,6 @@ # Local path overrides for development. # Loaded by the associated non-local gemfile when KETTLE_DEV_DEV != "false". -# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. -# Bundler records that dependency during Gemfile evaluation, but it does not -# activate that exact version before the immediate `require "nomono/bundler"`. -# If multiple compatible nomono versions are installed, RubyGems may activate -# the newest installed version while Gemfile.lock pins an older compatible one; -# Bundler then aborts with "already activated nomono X, but your Gemfile -# requires nomono Y". Prefer the locked compatible version when present, then -# activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] -nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) -if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked -end -Kernel.send(:gem, 'nomono', *nomono_activation_requirements) require 'nomono/bundler' local_gems = %w[kettle-dev kettle-test kettle-soup-cover kettle-drift] diff --git a/gems/prism-merge/gemfiles/modular/documentation_local.gemfile b/gems/prism-merge/gemfiles/modular/documentation_local.gemfile index b596a588d..fa2a07ce2 100644 --- a/gems/prism-merge/gemfiles/modular/documentation_local.gemfile +++ b/gems/prism-merge/gemfiles/modular/documentation_local.gemfile @@ -3,26 +3,6 @@ # Local path overrides for development. # Loaded by the associated non-local gemfile when GALTZO_FLOSS_DEV != "false". -# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. -# Bundler records that dependency during Gemfile evaluation, but it does not -# activate that exact version before the immediate `require "nomono/bundler"`. -# If multiple compatible nomono versions are installed, RubyGems may activate -# the newest installed version while Gemfile.lock pins an older compatible one; -# Bundler then aborts with "already activated nomono X, but your Gemfile -# requires nomono Y". Prefer the locked compatible version when present, then -# activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] -nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) -if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked -end -Kernel.send(:gem, 'nomono', *nomono_activation_requirements) require 'nomono/bundler' local_gems = %w[yard-fence yard-timekeeper yard-yaml] diff --git a/gems/prism-merge/gemfiles/modular/style_local.gemfile b/gems/prism-merge/gemfiles/modular/style_local.gemfile index e8e9d2ad4..ac88306f7 100644 --- a/gems/prism-merge/gemfiles/modular/style_local.gemfile +++ b/gems/prism-merge/gemfiles/modular/style_local.gemfile @@ -6,26 +6,6 @@ # Local path overrides for development. # Loaded by the associated non-local gemfile when RUBOCOP_LTS_LOCAL != "false". -# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. -# Bundler records that dependency during Gemfile evaluation, but it does not -# activate that exact version before the immediate `require "nomono/bundler"`. -# If multiple compatible nomono versions are installed, RubyGems may activate -# the newest installed version while Gemfile.lock pins an older compatible one; -# Bundler then aborts with "already activated nomono X, but your Gemfile -# requires nomono Y". Prefer the locked compatible version when present, then -# activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] -nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) -if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked -end -Kernel.send(:gem, 'nomono', *nomono_activation_requirements) require 'nomono/bundler' local_gems = %w[rubocop-lts rubocop-lts-rspec rubocop-ruby3_2 standard-rubocop-lts] diff --git a/gems/prism-merge/gemfiles/modular/templating_local.gemfile b/gems/prism-merge/gemfiles/modular/templating_local.gemfile index e6d5d15bc..a0ec73656 100644 --- a/gems/prism-merge/gemfiles/modular/templating_local.gemfile +++ b/gems/prism-merge/gemfiles/modular/templating_local.gemfile @@ -4,26 +4,6 @@ # Loaded by the associated non-local gemfile when STRUCTUREDMERGE_DEV or KETTLE_DEV_DEV # is not "false". -# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. -# Bundler records that dependency during Gemfile evaluation, but it does not -# activate that exact version before the immediate `require "nomono/bundler"`. -# If multiple compatible nomono versions are installed, RubyGems may activate -# the newest installed version while Gemfile.lock pins an older compatible one; -# Bundler then aborts with "already activated nomono X, but your Gemfile -# requires nomono Y". Prefer the locked compatible version when present, then -# activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] -nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) -if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked -end -Kernel.send(:gem, 'nomono', *nomono_activation_requirements) require 'nomono/bundler' structuredmerge_local_gems = %w[ diff --git a/gems/psych-merge/.kettle-drift.lock b/gems/psych-merge/.kettle-drift.lock deleted file mode 100644 index 2321c2f6b..000000000 --- a/gems/psych-merge/.kettle-drift.lock +++ /dev/null @@ -1,188 +0,0 @@ -{ - "(direct_sibling_local ||\nENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?)": [ - { - "file": "Gemfile", - "lines": [ - 81, - 121 - ] - } - ], - ".find { |spec| spec.name == 'nomono' }\nnomono_locked = nomono_locked_spec &&": [ - { - "file": "Gemfile", - "lines": [ - 92, - 132 - ] - } - ], - "ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?)\ndirect_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV')": [ - { - "file": "Gemfile", - "lines": [ - 82, - 122 - ] - } - ], - "Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version)\nnomono_activation_requirements = [\"= #{nomono_locked_spec.version}\"] if nomono_locked": [ - { - "file": "Gemfile", - "lines": [ - 94, - 134 - ] - } - ], - "Kernel.send(:gem, 'nomono', *nomono_activation_requirements)\nrequire 'nomono/bundler'": [ - { - "file": "Gemfile", - "lines": [ - 97, - 137 - ] - } - ], - "direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV')\ndirect_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil)": [ - { - "file": "Gemfile", - "lines": [ - 83, - 123 - ] - } - ], - "eval_nomono_gems(\ngems: direct_sibling_gems,": [ - { - "file": "Gemfile", - "lines": [ - 61, - 101, - 141 - ] - } - ], - "gems: direct_sibling_gems,\nprefix: 'STRUCTUREDMERGE',": [ - { - "file": "Gemfile", - "lines": [ - 102, - 142 - ] - } - ], - "if File.file?(nomono_lockfile)\nnomono_locked_spec = Bundler::LockfileParser": [ - { - "file": "Gemfile", - "lines": [ - 44, - 88, - 128 - ] - } - ], - "if direct_sibling_dev_was_set\nENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original": [ - { - "file": "Gemfile", - "lines": [ - 111, - 151 - ] - } - ], - "if direct_sibling_gems.any? &&\n(direct_sibling_local ||": [ - { - "file": "Gemfile", - "lines": [ - 36, - 80, - 120 - ] - } - ], - "if direct_sibling_templating && !direct_sibling_local\nif direct_sibling_dev_was_set": [ - { - "file": "Gemfile", - "lines": [ - 70, - 110, - 150 - ] - } - ], - "nomono_activation_requirements = nomono_requirements\nnomono_lockfile = File.expand_path('Gemfile.lock', __dir__)": [ - { - "file": "Gemfile", - "lines": [ - 86, - 126 - ] - } - ], - "nomono_locked = nomono_locked_spec &&\nGem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version)": [ - { - "file": "Gemfile", - "lines": [ - 49, - 93, - 133 - ] - } - ], - "nomono_locked_spec = Bundler::LockfileParser\n.new(Bundler.read_file(nomono_lockfile))": [ - { - "file": "Gemfile", - "lines": [ - 45, - 89, - 129 - ] - } - ], - "nomono_lockfile = File.expand_path('Gemfile.lock', __dir__)\nif File.file?(nomono_lockfile)": [ - { - "file": "Gemfile", - "lines": [ - 87, - 127 - ] - } - ], - "path_env: 'STRUCTUREDMERGE_DEV',\nroot: %w[src my structuredmerge]": [ - { - "file": "Gemfile", - "lines": [ - 104, - 144 - ] - } - ], - "prefix: 'STRUCTUREDMERGE',\npath_env: 'STRUCTUREDMERGE_DEV',": [ - { - "file": "Gemfile", - "lines": [ - 103, - 143 - ] - } - ], - "require 'nomono/bundler'\nENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local": [ - { - "file": "Gemfile", - "lines": [ - 98, - 138 - ] - } - ], - "rescue LoadError\nwarn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.'": [ - { - "file": "Gemfile", - "lines": [ - 107, - 147 - ] - } - ] -} diff --git a/gems/psych-merge/Gemfile b/gems/psych-merge/Gemfile index 77577fdc6..f81f7a9e0 100644 --- a/gems/psych-merge/Gemfile +++ b/gems/psych-merge/Gemfile @@ -38,100 +38,8 @@ if direct_sibling_gems.any? && ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) + require 'nomono/bundler' begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local eval_nomono_gems( @@ -140,8 +48,6 @@ if direct_sibling_gems.any? && path_env: 'STRUCTUREDMERGE_DEV', root: %w[src my structuredmerge] ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' ensure if direct_sibling_templating && !direct_sibling_local if direct_sibling_dev_was_set diff --git a/gems/psych-merge/Gemfile.lock b/gems/psych-merge/Gemfile.lock index e77e2d611..af7d0d15e 100644 --- a/gems/psych-merge/Gemfile.lock +++ b/gems/psych-merge/Gemfile.lock @@ -137,7 +137,7 @@ GEM racc (~> 1.4) nokogiri (1.19.4-x86_64-linux-musl) racc (~> 1.4) - nomono (1.0.9) + nomono (1.1.0) openssl (4.0.2) ostruct (0.6.3) parallel (1.28.0) @@ -457,6 +457,7 @@ CHECKSUMS backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd + bundler (4.0.17) sha256=214e21431b5665dd2f99df8a5511c6b151d7a72e8015c8b38f8b775b61cbb6c1 bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 @@ -483,9 +484,9 @@ CHECKSUMS io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 - kettle-dev (2.3.9) + kettle-dev (2.3.9) sha256=03b2f72c6dda4d2c4401ee3c0c96853116c922766e7b5b04224434a49b571bfc kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f - kettle-soup-cover (3.0.4) + kettle-soup-cover (3.0.4) sha256=36d4df472362d2020d16411d7ce26ba2fe2a41fb8be64577ff9b5280acf99d86 kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa @@ -499,7 +500,7 @@ CHECKSUMS nokogiri (1.19.4-arm64-darwin) sha256=a46db9853286e6597b36ebc6953817d15acf3a299583eb3f89fdc6f91dd63527 nokogiri (1.19.4-x86_64-linux-gnu) sha256=379fae440b28915e3f19d752ce2dcf8465ed2b2fbefd2a7ca0dd497bc981a06a nokogiri (1.19.4-x86_64-linux-musl) sha256=17dfb7c1fa194ae02fbf7c51a7afc8d278045ab3fdacfd86f91d02d7b274470b - nomono (1.0.9) + nomono (1.1.0) sha256=463dd4c79da02a855739a1b5483190d527b7868688be905e84abdb3449b32c88 openssl (4.0.2) sha256=1037ad2868ae58df9ad917891c0c0f9815a1172f6846d4bcdd508e4c2ee747c2 ostruct (0.6.3) sha256=95a2ed4a4bd1d190784e666b47b2d3f078e4a9efda2fccf18f84ddc6538ed912 parallel (1.28.0) sha256=33e6de1484baf2524792d178b0913fc8eb94c628d6cfe45599ad4458c638c970 @@ -595,4 +596,4 @@ CHECKSUMS zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH - 4.0.16 + 4.0.17 diff --git a/gems/psych-merge/LICENSE.md b/gems/psych-merge/LICENSE.md index 6ad318705..65a770d1f 100644 --- a/gems/psych-merge/LICENSE.md +++ b/gems/psych-merge/LICENSE.md @@ -3,8 +3,8 @@ This project is made available under the following licenses. Choose the option that best fits your use case: -- [AGPL-3.0-only](AGPL-3.0-only.md) -- [PolyForm-Small-Business-1.0.0](PolyForm-Small-Business-1.0.0.md) +- [AGPL-3.0-only](https://github.com/structuredmerge/structuredmerge-ruby/blob/main/AGPL-3.0-only.md) +- [PolyForm-Small-Business-1.0.0](https://github.com/structuredmerge/structuredmerge-ruby/blob/main/PolyForm-Small-Business-1.0.0.md) If none of the above licenses fit your use case, please [contact us](mailto:floss@galtzo.com) to discuss a custom commercial license. diff --git a/gems/psych-merge/README.md b/gems/psych-merge/README.md index 09794eb5a..317ecface 100644 --- a/gems/psych-merge/README.md +++ b/gems/psych-merge/README.md @@ -75,7 +75,7 @@ File.write("merged.yml", result.to_yaml) |-------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | Works with MRI Ruby 4 | [![Ruby current Compat][💎ruby-c-i]][🚎11-c-wf]| | Support & Community | [![Join Me on Daily.dev's RubyFriends][✉️ruby-friends-img]][✉️ruby-friends] [![Get help from RubyForum][✉️ruby-forum-img]][✉️ruby-forum] [![Live Chat on Discord][✉️discord-invite-img-ftb]][✉️discord-invite] [![Get help from me on Upwork][👨🏼‍🏫expsup-upwork-img]][👨🏼‍🏫expsup-upwork] [![Get help from me on Codementor][👨🏼‍🏫expsup-codementor-img]][👨🏼‍🏫expsup-codementor] | -| Source | [![Source on GitLab.com][📜src-gl-img]][📜src-gl] [![Source on CodeBerg.org][📜src-cb-img]][📜src-cb] [![Source on Github.com][📜src-gh-img]][📜src-gh] [![The best SHA: dQw4w9WgXcQ!][🧮kloc-img]][🧮kloc] | +| Source | [![Source on GitLab.com][📜src-gl-img]][📜src-gl] [![Source on CodeBerg.org][📜src-cb-img]][📜src-cb] [![Source on GitHub.com][📜src-gh-img]][📜src-gh] [![The best SHA: dQw4w9WgXcQ!][🧮kloc-img]][🧮kloc] | | Documentation | [![Current release on RubyDoc.info][📜docs-cr-rd-img]][🚎yard-current] [![YARD on Galtzo.com][📜docs-head-rd-img]][🚎yard-head] [![Maintainer Blog][🚂maint-blog-img]][🚂maint-blog] [![GitLab Wiki][📜gl-wiki-img]][📜gl-wiki] [![GitHub Wiki][📜gh-wiki-img]][📜gh-wiki] | | Compliance | [![License: AGPL-3.0-only OR PolyForm-Small-Business-1.0.0][📄license-img]][📄license] [![Apache license compatibility: Category X][📄license-compat-img]][📄license-compat] [![📄ilo-declaration-img]][📄ilo-declaration] [![Security Policy][🔐security-img]][🔐security] [![Contributor Covenant 2.1][🪇conduct-img]][🪇conduct] [![SemVer 2.0.0][📌semver-img]][📌semver] | | Style | [![Enforced Code Style Linter][💎rlts-img]][💎rlts] [![Keep-A-Changelog 1.0.0][📗keep-changelog-img]][📗keep-changelog] [![Gitmoji Commits][📌gitmoji-img]][📌gitmoji] [![Compatibility appraised by: appraisal2][💎appraisal2-img]][💎appraisal2] | @@ -348,7 +348,7 @@ See [CHANGELOG.md][📌changelog] for a list of releases. ## 📄 License -The gem is available under the following licenses: [AGPL-3.0-only](AGPL-3.0-only.md), [PolyForm-Small-Business-1.0.0](PolyForm-Small-Business-1.0.0.md). +The gem is available under the following licenses: [AGPL-3.0-only](https://github.com/structuredmerge/structuredmerge-ruby/blob/main/AGPL-3.0-only.md), [PolyForm-Small-Business-1.0.0](https://github.com/structuredmerge/structuredmerge-ruby/blob/main/PolyForm-Small-Business-1.0.0.md). See [LICENSE.md][📄license] for details. If none of the available licenses suit your use case, please [contact us](mailto:floss@galtzo.com) to discuss a custom commercial license. @@ -420,7 +420,7 @@ If none of the available licenses suit your use case, please [contact us](mailto [📜src-gl]: https://gitlab.com/structuredmerge/structuredmerge-ruby/-/tree/main/gems/psych-merge [📜src-cb-img]: https://img.shields.io/badge/CodeBerg-4893CC?style=for-the-badge&logo=CodeBerg&logoColor=blue [📜src-cb]: https://codeberg.org/structuredmerge/structuredmerge-ruby/src/branch/main/gems/psych-merge -[📜src-gh-img]: https://img.shields.io/badge/GitHub-238636?style=for-the-badge&logo=Github&logoColor=green +[📜src-gh-img]: https://img.shields.io/badge/GitHub-238636?style=for-the-badge&logo=GitHub&logoColor=green [📜src-gh]: https://github.com/structuredmerge/structuredmerge-ruby/tree/main/gems/psych-merge [📜docs-cr-rd-img]: https://img.shields.io/badge/RubyDoc-Current_Release-943CD2?style=for-the-badge&logo=readthedocs&logoColor=white [📜docs-head-rd-img]: https://img.shields.io/badge/YARD_on_Galtzo.com-HEAD-943CD2?style=for-the-badge&logo=readthedocs&logoColor=white diff --git a/gems/psych-merge/gemfiles/modular/coverage_local.gemfile b/gems/psych-merge/gemfiles/modular/coverage_local.gemfile index 1a6766796..a5180358c 100644 --- a/gems/psych-merge/gemfiles/modular/coverage_local.gemfile +++ b/gems/psych-merge/gemfiles/modular/coverage_local.gemfile @@ -3,26 +3,6 @@ # Local path overrides for development. # Loaded by the associated non-local gemfile when KETTLE_DEV_DEV != "false". -# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. -# Bundler records that dependency during Gemfile evaluation, but it does not -# activate that exact version before the immediate `require "nomono/bundler"`. -# If multiple compatible nomono versions are installed, RubyGems may activate -# the newest installed version while Gemfile.lock pins an older compatible one; -# Bundler then aborts with "already activated nomono X, but your Gemfile -# requires nomono Y". Prefer the locked compatible version when present, then -# activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] -nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) -if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked -end -Kernel.send(:gem, 'nomono', *nomono_activation_requirements) require 'nomono/bundler' local_gems = %w[kettle-dev kettle-test kettle-soup-cover kettle-drift] diff --git a/gems/psych-merge/gemfiles/modular/documentation_local.gemfile b/gems/psych-merge/gemfiles/modular/documentation_local.gemfile index 6dbdd12e9..caa1af131 100644 --- a/gems/psych-merge/gemfiles/modular/documentation_local.gemfile +++ b/gems/psych-merge/gemfiles/modular/documentation_local.gemfile @@ -3,26 +3,6 @@ # Local path overrides for development. # Loaded by the associated non-local gemfile when GALTZO_FLOSS_DEV != "false". -# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. -# Bundler records that dependency during Gemfile evaluation, but it does not -# activate that exact version before the immediate `require "nomono/bundler"`. -# If multiple compatible nomono versions are installed, RubyGems may activate -# the newest installed version while Gemfile.lock pins an older compatible one; -# Bundler then aborts with "already activated nomono X, but your Gemfile -# requires nomono Y". Prefer the locked compatible version when present, then -# activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] -nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) -if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked -end -Kernel.send(:gem, 'nomono', *nomono_activation_requirements) require 'nomono/bundler' local_gems = %w[yard-fence yard-timekeeper yard-yaml] diff --git a/gems/psych-merge/gemfiles/modular/style_local.gemfile b/gems/psych-merge/gemfiles/modular/style_local.gemfile index ac3ba1d00..b2815f45d 100644 --- a/gems/psych-merge/gemfiles/modular/style_local.gemfile +++ b/gems/psych-merge/gemfiles/modular/style_local.gemfile @@ -6,26 +6,6 @@ # Local path overrides for development. # Loaded by the associated non-local gemfile when RUBOCOP_LTS_LOCAL != "false". -# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. -# Bundler records that dependency during Gemfile evaluation, but it does not -# activate that exact version before the immediate `require "nomono/bundler"`. -# If multiple compatible nomono versions are installed, RubyGems may activate -# the newest installed version while Gemfile.lock pins an older compatible one; -# Bundler then aborts with "already activated nomono X, but your Gemfile -# requires nomono Y". Prefer the locked compatible version when present, then -# activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] -nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) -if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked -end -Kernel.send(:gem, 'nomono', *nomono_activation_requirements) require 'nomono/bundler' local_gems = %w[rubocop-lts rubocop-lts-rspec rubocop-ruby3_2 standard-rubocop-lts] diff --git a/gems/psych-merge/gemfiles/modular/templating_local.gemfile b/gems/psych-merge/gemfiles/modular/templating_local.gemfile index f4f79268d..d465cf58d 100644 --- a/gems/psych-merge/gemfiles/modular/templating_local.gemfile +++ b/gems/psych-merge/gemfiles/modular/templating_local.gemfile @@ -4,26 +4,6 @@ # Loaded by the associated non-local gemfile when STRUCTUREDMERGE_DEV or KETTLE_DEV_DEV # is not "false". -# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. -# Bundler records that dependency during Gemfile evaluation, but it does not -# activate that exact version before the immediate `require "nomono/bundler"`. -# If multiple compatible nomono versions are installed, RubyGems may activate -# the newest installed version while Gemfile.lock pins an older compatible one; -# Bundler then aborts with "already activated nomono X, but your Gemfile -# requires nomono Y". Prefer the locked compatible version when present, then -# activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] -nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) -if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked -end -Kernel.send(:gem, 'nomono', *nomono_activation_requirements) require 'nomono/bundler' structuredmerge_local_gems = %w[ diff --git a/gems/rbs-merge/.kettle-drift.lock b/gems/rbs-merge/.kettle-drift.lock deleted file mode 100644 index 7cc6a5131..000000000 --- a/gems/rbs-merge/.kettle-drift.lock +++ /dev/null @@ -1,188 +0,0 @@ -{ - "(direct_sibling_local ||\nENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?)": [ - { - "file": "Gemfile", - "lines": [ - 80, - 120 - ] - } - ], - ".find { |spec| spec.name == 'nomono' }\nnomono_locked = nomono_locked_spec &&": [ - { - "file": "Gemfile", - "lines": [ - 91, - 131 - ] - } - ], - "ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?)\ndirect_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV')": [ - { - "file": "Gemfile", - "lines": [ - 81, - 121 - ] - } - ], - "Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version)\nnomono_activation_requirements = [\"= #{nomono_locked_spec.version}\"] if nomono_locked": [ - { - "file": "Gemfile", - "lines": [ - 93, - 133 - ] - } - ], - "Kernel.send(:gem, 'nomono', *nomono_activation_requirements)\nrequire 'nomono/bundler'": [ - { - "file": "Gemfile", - "lines": [ - 96, - 136 - ] - } - ], - "direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV')\ndirect_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil)": [ - { - "file": "Gemfile", - "lines": [ - 82, - 122 - ] - } - ], - "eval_nomono_gems(\ngems: direct_sibling_gems,": [ - { - "file": "Gemfile", - "lines": [ - 60, - 100, - 140 - ] - } - ], - "gems: direct_sibling_gems,\nprefix: 'STRUCTUREDMERGE',": [ - { - "file": "Gemfile", - "lines": [ - 101, - 141 - ] - } - ], - "if File.file?(nomono_lockfile)\nnomono_locked_spec = Bundler::LockfileParser": [ - { - "file": "Gemfile", - "lines": [ - 43, - 87, - 127 - ] - } - ], - "if direct_sibling_dev_was_set\nENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original": [ - { - "file": "Gemfile", - "lines": [ - 110, - 150 - ] - } - ], - "if direct_sibling_gems.any? &&\n(direct_sibling_local ||": [ - { - "file": "Gemfile", - "lines": [ - 35, - 79, - 119 - ] - } - ], - "if direct_sibling_templating && !direct_sibling_local\nif direct_sibling_dev_was_set": [ - { - "file": "Gemfile", - "lines": [ - 69, - 109, - 149 - ] - } - ], - "nomono_activation_requirements = nomono_requirements\nnomono_lockfile = File.expand_path('Gemfile.lock', __dir__)": [ - { - "file": "Gemfile", - "lines": [ - 85, - 125 - ] - } - ], - "nomono_locked = nomono_locked_spec &&\nGem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version)": [ - { - "file": "Gemfile", - "lines": [ - 48, - 92, - 132 - ] - } - ], - "nomono_locked_spec = Bundler::LockfileParser\n.new(Bundler.read_file(nomono_lockfile))": [ - { - "file": "Gemfile", - "lines": [ - 44, - 88, - 128 - ] - } - ], - "nomono_lockfile = File.expand_path('Gemfile.lock', __dir__)\nif File.file?(nomono_lockfile)": [ - { - "file": "Gemfile", - "lines": [ - 86, - 126 - ] - } - ], - "path_env: 'STRUCTUREDMERGE_DEV',\nroot: %w[src my structuredmerge]": [ - { - "file": "Gemfile", - "lines": [ - 103, - 143 - ] - } - ], - "prefix: 'STRUCTUREDMERGE',\npath_env: 'STRUCTUREDMERGE_DEV',": [ - { - "file": "Gemfile", - "lines": [ - 102, - 142 - ] - } - ], - "require 'nomono/bundler'\nENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local": [ - { - "file": "Gemfile", - "lines": [ - 97, - 137 - ] - } - ], - "rescue LoadError\nwarn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.'": [ - { - "file": "Gemfile", - "lines": [ - 106, - 146 - ] - } - ] -} diff --git a/gems/rbs-merge/Gemfile b/gems/rbs-merge/Gemfile index 04107d8d4..674d3dfe0 100644 --- a/gems/rbs-merge/Gemfile +++ b/gems/rbs-merge/Gemfile @@ -37,100 +37,8 @@ if direct_sibling_gems.any? && ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) + require 'nomono/bundler' begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local eval_nomono_gems( @@ -139,8 +47,6 @@ if direct_sibling_gems.any? && path_env: 'STRUCTUREDMERGE_DEV', root: %w[src my structuredmerge] ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' ensure if direct_sibling_templating && !direct_sibling_local if direct_sibling_dev_was_set diff --git a/gems/rbs-merge/Gemfile.lock b/gems/rbs-merge/Gemfile.lock index 0267b5d00..93cb20d50 100644 --- a/gems/rbs-merge/Gemfile.lock +++ b/gems/rbs-merge/Gemfile.lock @@ -137,7 +137,7 @@ GEM racc (~> 1.4) nokogiri (1.19.4-x86_64-linux-musl) racc (~> 1.4) - nomono (1.0.9) + nomono (1.1.0) openssl (4.0.2) ostruct (0.6.3) parallel (1.28.0) @@ -453,6 +453,7 @@ CHECKSUMS backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd + bundler (4.0.17) sha256=214e21431b5665dd2f99df8a5511c6b151d7a72e8015c8b38f8b775b61cbb6c1 bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 @@ -479,9 +480,9 @@ CHECKSUMS io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 - kettle-dev (2.3.9) + kettle-dev (2.3.9) sha256=03b2f72c6dda4d2c4401ee3c0c96853116c922766e7b5b04224434a49b571bfc kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f - kettle-soup-cover (3.0.4) + kettle-soup-cover (3.0.4) sha256=36d4df472362d2020d16411d7ce26ba2fe2a41fb8be64577ff9b5280acf99d86 kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa @@ -495,7 +496,7 @@ CHECKSUMS nokogiri (1.19.4-arm64-darwin) sha256=a46db9853286e6597b36ebc6953817d15acf3a299583eb3f89fdc6f91dd63527 nokogiri (1.19.4-x86_64-linux-gnu) sha256=379fae440b28915e3f19d752ce2dcf8465ed2b2fbefd2a7ca0dd497bc981a06a nokogiri (1.19.4-x86_64-linux-musl) sha256=17dfb7c1fa194ae02fbf7c51a7afc8d278045ab3fdacfd86f91d02d7b274470b - nomono (1.0.9) + nomono (1.1.0) sha256=463dd4c79da02a855739a1b5483190d527b7868688be905e84abdb3449b32c88 openssl (4.0.2) sha256=1037ad2868ae58df9ad917891c0c0f9815a1172f6846d4bcdd508e4c2ee747c2 ostruct (0.6.3) sha256=95a2ed4a4bd1d190784e666b47b2d3f078e4a9efda2fccf18f84ddc6538ed912 parallel (1.28.0) sha256=33e6de1484baf2524792d178b0913fc8eb94c628d6cfe45599ad4458c638c970 @@ -590,4 +591,4 @@ CHECKSUMS zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH - 4.0.16 + 4.0.17 diff --git a/gems/rbs-merge/LICENSE.md b/gems/rbs-merge/LICENSE.md index 6ad318705..65a770d1f 100644 --- a/gems/rbs-merge/LICENSE.md +++ b/gems/rbs-merge/LICENSE.md @@ -3,8 +3,8 @@ This project is made available under the following licenses. Choose the option that best fits your use case: -- [AGPL-3.0-only](AGPL-3.0-only.md) -- [PolyForm-Small-Business-1.0.0](PolyForm-Small-Business-1.0.0.md) +- [AGPL-3.0-only](https://github.com/structuredmerge/structuredmerge-ruby/blob/main/AGPL-3.0-only.md) +- [PolyForm-Small-Business-1.0.0](https://github.com/structuredmerge/structuredmerge-ruby/blob/main/PolyForm-Small-Business-1.0.0.md) If none of the above licenses fit your use case, please [contact us](mailto:floss@galtzo.com) to discuss a custom commercial license. diff --git a/gems/rbs-merge/README.md b/gems/rbs-merge/README.md index 30d32229b..cbb647da5 100644 --- a/gems/rbs-merge/README.md +++ b/gems/rbs-merge/README.md @@ -84,7 +84,7 @@ File.write("merged.rbs", result.to_s) |-------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | Works with MRI Ruby 4 | [![Ruby current Compat][💎ruby-c-i]][🚎11-c-wf]| | Support & Community | [![Join Me on Daily.dev's RubyFriends][✉️ruby-friends-img]][✉️ruby-friends] [![Get help from RubyForum][✉️ruby-forum-img]][✉️ruby-forum] [![Live Chat on Discord][✉️discord-invite-img-ftb]][✉️discord-invite] [![Get help from me on Upwork][👨🏼‍🏫expsup-upwork-img]][👨🏼‍🏫expsup-upwork] [![Get help from me on Codementor][👨🏼‍🏫expsup-codementor-img]][👨🏼‍🏫expsup-codementor] | -| Source | [![Source on GitLab.com][📜src-gl-img]][📜src-gl] [![Source on CodeBerg.org][📜src-cb-img]][📜src-cb] [![Source on Github.com][📜src-gh-img]][📜src-gh] [![The best SHA: dQw4w9WgXcQ!][🧮kloc-img]][🧮kloc] | +| Source | [![Source on GitLab.com][📜src-gl-img]][📜src-gl] [![Source on CodeBerg.org][📜src-cb-img]][📜src-cb] [![Source on GitHub.com][📜src-gh-img]][📜src-gh] [![The best SHA: dQw4w9WgXcQ!][🧮kloc-img]][🧮kloc] | | Documentation | [![Current release on RubyDoc.info][📜docs-cr-rd-img]][🚎yard-current] [![YARD on Galtzo.com][📜docs-head-rd-img]][🚎yard-head] [![Maintainer Blog][🚂maint-blog-img]][🚂maint-blog] [![GitLab Wiki][📜gl-wiki-img]][📜gl-wiki] [![GitHub Wiki][📜gh-wiki-img]][📜gh-wiki] | | Compliance | [![License: AGPL-3.0-only OR PolyForm-Small-Business-1.0.0][📄license-img]][📄license] [![Apache license compatibility: Category X][📄license-compat-img]][📄license-compat] [![📄ilo-declaration-img]][📄ilo-declaration] [![Security Policy][🔐security-img]][🔐security] [![Contributor Covenant 2.1][🪇conduct-img]][🪇conduct] [![SemVer 2.0.0][📌semver-img]][📌semver] | | Style | [![Enforced Code Style Linter][💎rlts-img]][💎rlts] [![Keep-A-Changelog 1.0.0][📗keep-changelog-img]][📗keep-changelog] [![Gitmoji Commits][📌gitmoji-img]][📌gitmoji] [![Compatibility appraised by: appraisal2][💎appraisal2-img]][💎appraisal2] | @@ -477,7 +477,7 @@ See [CHANGELOG.md][📌changelog] for a list of releases. ## 📄 License -The gem is available under the following licenses: [AGPL-3.0-only](AGPL-3.0-only.md), [PolyForm-Small-Business-1.0.0](PolyForm-Small-Business-1.0.0.md). +The gem is available under the following licenses: [AGPL-3.0-only](https://github.com/structuredmerge/structuredmerge-ruby/blob/main/AGPL-3.0-only.md), [PolyForm-Small-Business-1.0.0](https://github.com/structuredmerge/structuredmerge-ruby/blob/main/PolyForm-Small-Business-1.0.0.md). See [LICENSE.md][📄license] for details. If none of the available licenses suit your use case, please [contact us](mailto:floss@galtzo.com) to discuss a custom commercial license. @@ -549,7 +549,7 @@ If none of the available licenses suit your use case, please [contact us](mailto [📜src-gl]: https://gitlab.com/structuredmerge/structuredmerge-ruby/-/tree/main/gems/rbs-merge [📜src-cb-img]: https://img.shields.io/badge/CodeBerg-4893CC?style=for-the-badge&logo=CodeBerg&logoColor=blue [📜src-cb]: https://codeberg.org/structuredmerge/structuredmerge-ruby/src/branch/main/gems/rbs-merge -[📜src-gh-img]: https://img.shields.io/badge/GitHub-238636?style=for-the-badge&logo=Github&logoColor=green +[📜src-gh-img]: https://img.shields.io/badge/GitHub-238636?style=for-the-badge&logo=GitHub&logoColor=green [📜src-gh]: https://github.com/structuredmerge/structuredmerge-ruby/tree/main/gems/rbs-merge [📜docs-cr-rd-img]: https://img.shields.io/badge/RubyDoc-Current_Release-943CD2?style=for-the-badge&logo=readthedocs&logoColor=white [📜docs-head-rd-img]: https://img.shields.io/badge/YARD_on_Galtzo.com-HEAD-943CD2?style=for-the-badge&logo=readthedocs&logoColor=white diff --git a/gems/rbs-merge/gemfiles/modular/coverage_local.gemfile b/gems/rbs-merge/gemfiles/modular/coverage_local.gemfile index f564d6ae4..788a7dbba 100644 --- a/gems/rbs-merge/gemfiles/modular/coverage_local.gemfile +++ b/gems/rbs-merge/gemfiles/modular/coverage_local.gemfile @@ -3,26 +3,6 @@ # Local path overrides for development. # Loaded by the associated non-local gemfile when KETTLE_DEV_DEV != "false". -# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. -# Bundler records that dependency during Gemfile evaluation, but it does not -# activate that exact version before the immediate `require "nomono/bundler"`. -# If multiple compatible nomono versions are installed, RubyGems may activate -# the newest installed version while Gemfile.lock pins an older compatible one; -# Bundler then aborts with "already activated nomono X, but your Gemfile -# requires nomono Y". Prefer the locked compatible version when present, then -# activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] -nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) -if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked -end -Kernel.send(:gem, 'nomono', *nomono_activation_requirements) require 'nomono/bundler' local_gems = %w[kettle-dev kettle-test kettle-soup-cover kettle-drift] diff --git a/gems/rbs-merge/gemfiles/modular/documentation_local.gemfile b/gems/rbs-merge/gemfiles/modular/documentation_local.gemfile index c90c8606e..a5bf94db1 100644 --- a/gems/rbs-merge/gemfiles/modular/documentation_local.gemfile +++ b/gems/rbs-merge/gemfiles/modular/documentation_local.gemfile @@ -3,26 +3,6 @@ # Local path overrides for development. # Loaded by the associated non-local gemfile when GALTZO_FLOSS_DEV != "false". -# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. -# Bundler records that dependency during Gemfile evaluation, but it does not -# activate that exact version before the immediate `require "nomono/bundler"`. -# If multiple compatible nomono versions are installed, RubyGems may activate -# the newest installed version while Gemfile.lock pins an older compatible one; -# Bundler then aborts with "already activated nomono X, but your Gemfile -# requires nomono Y". Prefer the locked compatible version when present, then -# activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] -nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) -if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked -end -Kernel.send(:gem, 'nomono', *nomono_activation_requirements) require 'nomono/bundler' local_gems = %w[yard-fence yard-timekeeper yard-yaml] diff --git a/gems/rbs-merge/gemfiles/modular/style_local.gemfile b/gems/rbs-merge/gemfiles/modular/style_local.gemfile index 9f5254808..a7ca3aeb1 100644 --- a/gems/rbs-merge/gemfiles/modular/style_local.gemfile +++ b/gems/rbs-merge/gemfiles/modular/style_local.gemfile @@ -6,26 +6,6 @@ # Local path overrides for development. # Loaded by the associated non-local gemfile when RUBOCOP_LTS_LOCAL != "false". -# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. -# Bundler records that dependency during Gemfile evaluation, but it does not -# activate that exact version before the immediate `require "nomono/bundler"`. -# If multiple compatible nomono versions are installed, RubyGems may activate -# the newest installed version while Gemfile.lock pins an older compatible one; -# Bundler then aborts with "already activated nomono X, but your Gemfile -# requires nomono Y". Prefer the locked compatible version when present, then -# activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] -nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) -if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked -end -Kernel.send(:gem, 'nomono', *nomono_activation_requirements) require 'nomono/bundler' local_gems = %w[rubocop-lts rubocop-lts-rspec rubocop-ruby3_2 standard-rubocop-lts] diff --git a/gems/rbs-merge/gemfiles/modular/templating_local.gemfile b/gems/rbs-merge/gemfiles/modular/templating_local.gemfile index bdeeaa089..11cd07571 100644 --- a/gems/rbs-merge/gemfiles/modular/templating_local.gemfile +++ b/gems/rbs-merge/gemfiles/modular/templating_local.gemfile @@ -4,26 +4,6 @@ # Loaded by the associated non-local gemfile when STRUCTUREDMERGE_DEV or KETTLE_DEV_DEV # is not "false". -# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. -# Bundler records that dependency during Gemfile evaluation, but it does not -# activate that exact version before the immediate `require "nomono/bundler"`. -# If multiple compatible nomono versions are installed, RubyGems may activate -# the newest installed version while Gemfile.lock pins an older compatible one; -# Bundler then aborts with "already activated nomono X, but your Gemfile -# requires nomono Y". Prefer the locked compatible version when present, then -# activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] -nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) -if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked -end -Kernel.send(:gem, 'nomono', *nomono_activation_requirements) require 'nomono/bundler' structuredmerge_local_gems = %w[ diff --git a/gems/ruby-merge/.kettle-drift.lock b/gems/ruby-merge/.kettle-drift.lock deleted file mode 100644 index bd0f9d183..000000000 --- a/gems/ruby-merge/.kettle-drift.lock +++ /dev/null @@ -1,208 +0,0 @@ -{ - "(direct_sibling_local ||\nENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?)": [ - { - "file": "Gemfile", - "lines": [ - 80, - 120, - 160 - ] - } - ], - ".find { |spec| spec.name == 'nomono' }\nnomono_locked = nomono_locked_spec &&": [ - { - "file": "Gemfile", - "lines": [ - 91, - 131, - 171 - ] - } - ], - "ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?)\ndirect_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV')": [ - { - "file": "Gemfile", - "lines": [ - 81, - 121, - 161 - ] - } - ], - "Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version)\nnomono_activation_requirements = [\"= #{nomono_locked_spec.version}\"] if nomono_locked": [ - { - "file": "Gemfile", - "lines": [ - 93, - 133, - 173 - ] - } - ], - "Kernel.send(:gem, 'nomono', *nomono_activation_requirements)\nrequire 'nomono/bundler'": [ - { - "file": "Gemfile", - "lines": [ - 96, - 136, - 176 - ] - } - ], - "direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV')\ndirect_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil)": [ - { - "file": "Gemfile", - "lines": [ - 82, - 122, - 162 - ] - } - ], - "eval_nomono_gems(\ngems: direct_sibling_gems,": [ - { - "file": "Gemfile", - "lines": [ - 60, - 100, - 140, - 180 - ] - } - ], - "gems: direct_sibling_gems,\nprefix: 'STRUCTUREDMERGE',": [ - { - "file": "Gemfile", - "lines": [ - 101, - 141, - 181 - ] - } - ], - "if File.file?(nomono_lockfile)\nnomono_locked_spec = Bundler::LockfileParser": [ - { - "file": "Gemfile", - "lines": [ - 43, - 87, - 127, - 167 - ] - } - ], - "if direct_sibling_dev_was_set\nENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original": [ - { - "file": "Gemfile", - "lines": [ - 110, - 150, - 190 - ] - } - ], - "if direct_sibling_gems.any? &&\n(direct_sibling_local ||": [ - { - "file": "Gemfile", - "lines": [ - 35, - 79, - 119, - 159 - ] - } - ], - "if direct_sibling_templating && !direct_sibling_local\nif direct_sibling_dev_was_set": [ - { - "file": "Gemfile", - "lines": [ - 69, - 109, - 149, - 189 - ] - } - ], - "nomono_activation_requirements = nomono_requirements\nnomono_lockfile = File.expand_path('Gemfile.lock', __dir__)": [ - { - "file": "Gemfile", - "lines": [ - 85, - 125, - 165 - ] - } - ], - "nomono_locked = nomono_locked_spec &&\nGem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version)": [ - { - "file": "Gemfile", - "lines": [ - 48, - 92, - 132, - 172 - ] - } - ], - "nomono_locked_spec = Bundler::LockfileParser\n.new(Bundler.read_file(nomono_lockfile))": [ - { - "file": "Gemfile", - "lines": [ - 44, - 88, - 128, - 168 - ] - } - ], - "nomono_lockfile = File.expand_path('Gemfile.lock', __dir__)\nif File.file?(nomono_lockfile)": [ - { - "file": "Gemfile", - "lines": [ - 86, - 126, - 166 - ] - } - ], - "path_env: 'STRUCTUREDMERGE_DEV',\nroot: %w[src my structuredmerge]": [ - { - "file": "Gemfile", - "lines": [ - 103, - 143, - 183 - ] - } - ], - "prefix: 'STRUCTUREDMERGE',\npath_env: 'STRUCTUREDMERGE_DEV',": [ - { - "file": "Gemfile", - "lines": [ - 102, - 142, - 182 - ] - } - ], - "require 'nomono/bundler'\nENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local": [ - { - "file": "Gemfile", - "lines": [ - 97, - 137, - 177 - ] - } - ], - "rescue LoadError\nwarn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.'": [ - { - "file": "Gemfile", - "lines": [ - 106, - 146, - 186 - ] - } - ] -} diff --git a/gems/ruby-merge/Gemfile b/gems/ruby-merge/Gemfile index 05e7cef2e..a88fac23b 100644 --- a/gems/ruby-merge/Gemfile +++ b/gems/ruby-merge/Gemfile @@ -37,140 +37,8 @@ if direct_sibling_gems.any? && ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) + require 'nomono/bundler' begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local eval_nomono_gems( @@ -179,8 +47,6 @@ if direct_sibling_gems.any? && path_env: 'STRUCTUREDMERGE_DEV', root: %w[src my structuredmerge] ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' ensure if direct_sibling_templating && !direct_sibling_local if direct_sibling_dev_was_set diff --git a/gems/ruby-merge/Gemfile.lock b/gems/ruby-merge/Gemfile.lock index 05d635ba1..88d729b06 100644 --- a/gems/ruby-merge/Gemfile.lock +++ b/gems/ruby-merge/Gemfile.lock @@ -6,6 +6,283 @@ PATH tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) +PATH + remote: /var/home/pboling/src/my/kettle-dev/kettle-drift + specs: + kettle-drift (1.0.6) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /var/home/pboling/src/my/kettle-dev/kettle-soup-cover + specs: + kettle-soup-cover (3.0.4) + kettle-wash (~> 0.1, >= 0.1.0) + simplecov (>= 1.0) + simplecov-cobertura (>= 4.0) + simplecov-console (~> 0.9, >= 0.9.5) + simplecov-rcov (~> 0.3, >= 0.3.7) + simplecov_lcov_formatter (~> 0.9, >= 0.9.0) + +PATH + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly + specs: + ast-crispr-markdown-markly (7.1.0) + ast-crispr (= 7.1.0) + markly-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism + specs: + ast-crispr-ruby-prism (7.1.0) + ast-crispr (= 7.1.0) + prism-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr + specs: + ast-crispr (7.1.0) + ast-merge (= 7.1.0) + service_actor (~> 3.9) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git + specs: + ast-merge-git (7.1.0) + ast-merge (= 7.1.0) + json-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/ast-merge + specs: + ast-merge (7.1.0) + benchmark + token-resolver (~> 2.0, >= 2.0.4) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/ast-template + specs: + ast-template (7.1.0) + ast-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/bash-merge + specs: + bash-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/binary-merge + specs: + binary-merge (7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge + specs: + citrus-toml-merge (7.1.0) + toml-merge (= 7.1.0) + toml-rb (~> 4.1) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge + specs: + commonmarker-merge (7.1.0) + commonmarker (~> 2.2) + markdown-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge + specs: + dotenv-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/go-merge + specs: + go-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/json-merge + specs: + json-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem + specs: + kettle-jem (7.1.0) + addressable (>= 2.8, < 3) + ast-crispr-markdown-markly (= 7.1.0) + ast-crispr-ruby-prism (= 7.1.0) + ast-merge (= 7.1.0) + bash-merge (= 7.1.0) + citrus-toml-merge (= 7.1.0) + commonmarker-merge (= 7.1.0) + dotenv-merge (= 7.1.0) + json-merge (= 7.1.0) + kettle-dev (~> 2.3, >= 2.3.5) + kettle-rb (~> 0.1, >= 0.1.4) + kramdown-merge (= 7.1.0) + markdown-merge (= 7.1.0) + markly-merge (= 7.1.0) + prism-merge (= 7.1.0) + psych-merge (= 7.1.0) + rbs (>= 3.10) + rbs-merge (= 7.1.0) + ruby-merge (= 7.1.0) + token-resolver (~> 2.0, >= 2.0.4) + toml-merge (= 7.1.0) + toml-rb (~> 4.2) + tree_haver (= 7.1.0) + yaml-merge (= 7.1.0) + +PATH + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge + specs: + kramdown-merge (7.1.0) + kramdown (~> 2.5) + markdown-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge + specs: + markdown-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/markly-merge + specs: + markly-merge (7.1.0) + markdown-merge (= 7.1.0) + markly (~> 0.9) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge + specs: + parslet-toml-merge (7.1.0) + toml (~> 0.3) + toml-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/plain-merge + specs: + plain-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/prism-merge + specs: + prism-merge (7.1.0) + prism (~> 1.6) + ruby-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/psych-merge + specs: + psych-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + yaml-merge (= 7.1.0) + +PATH + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge + specs: + rbs-merge (7.1.0) + ast-merge (= 7.1.0) + rbs (>= 3.10) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) + +PATH + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/rust-merge + specs: + rust-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/smorg-rb + specs: + smorg-rb (7.1.0) + ast-merge (= 7.1.0) + ast-merge-git (= 7.1.0) + diff-lcs (~> 1.5) + go-merge (= 7.1.0) + json-merge (= 7.1.0) + kettle-jem (= 7.1.0) + markly-merge (= 7.1.0) + plain-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/toml-merge + specs: + toml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/tree_haver + specs: + tree_haver (7.1.0) + citrus (~> 3.0) + parslet (~> 2.0) + tree_sitter_language_pack (>= 1.13.2, < 2.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge + specs: + typescript-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge + specs: + yaml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + +PATH + remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/zip-merge + specs: + zip-merge (7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + GEM remote: https://gem.coop/ specs: @@ -21,11 +298,6 @@ GEM rubocop (>= 1.0) version_gem (~> 1.1, >= 1.1.14) ast (2.4.3) - ast-merge (7.1.0) - benchmark - token-resolver (~> 2.0, >= 2.0.4) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) backports (3.25.3) benchmark (0.5.0) bigdecimal (4.1.2) @@ -35,6 +307,11 @@ GEM cgi (0.5.2) citrus (3.0.2) cmdparse (3.0.7) + commonmarker (2.9.0-aarch64-linux) + commonmarker (2.9.0-aarch64-linux-musl) + commonmarker (2.9.0-arm64-darwin) + commonmarker (2.9.0-x86_64-linux) + commonmarker (2.9.0-x86_64-linux-musl) concurrent-ruby (1.3.8) date (3.5.1) debug (1.11.1) @@ -98,13 +375,6 @@ GEM kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) kettle-rb (0.1.5) - kettle-soup-cover (3.0.4) - kettle-wash (~> 0.1, >= 0.1.0) - simplecov (>= 1.0) - simplecov-cobertura (>= 4.0) - simplecov-console (~> 0.9, >= 0.9.5) - simplecov-rcov (~> 0.3, >= 0.3.7) - simplecov_lcov_formatter (~> 0.9, >= 0.9.0) kettle-test (2.0.12) appraisal2 (~> 3.0, >= 3.0.6) backports (~> 3.0) @@ -125,6 +395,7 @@ GEM language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) + markly (0.16.0) mutex_m (0.3.0) nokogiri (1.19.4-aarch64-linux-gnu) racc (~> 1.4) @@ -136,7 +407,7 @@ GEM racc (~> 1.4) nokogiri (1.19.4-x86_64-linux-musl) racc (~> 1.4) - nomono (1.0.9) + nomono (1.1.0) openssl (4.0.2) ostruct (0.6.3) parallel (1.28.0) @@ -287,6 +558,8 @@ GEM ruby-progressbar (1.13.0) ruby_engine (2.0.3) ruby_version (1.0.3) + service_actor (3.9.4) + zeitwerk (>= 1.0) silent_stream (1.0.12) logger (~> 1.2) version_gem (>= 1.1.8, < 3) @@ -341,11 +614,11 @@ GEM token-resolver (2.0.5) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.14) - tree_haver (7.1.0) - citrus (~> 3.0) - parslet (~> 2.0) - tree_sitter_language_pack (>= 1.13.2, < 2.0) - version_gem (~> 1.1, >= 1.1.9) + toml (0.3.0) + parslet (>= 1.8.0, < 3.0.0) + toml-rb (4.2.0) + citrus (~> 3.0, > 3.0) + racc (~> 1.7) tree_sitter_language_pack (1.13.3-aarch64-linux) sorbet-runtime (~> 0.5) tree_sitter_language_pack (1.13.3-arm64-darwin) @@ -400,23 +673,46 @@ DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) appraisal2-rubocop (~> 1.0, >= 1.0.0) + ast-crispr! + ast-crispr-markdown-markly! + ast-crispr-ruby-prism! + ast-merge! + ast-merge-git! + ast-template! + bash-merge! benchmark (~> 0.5, >= 0.5.0) + binary-merge! bundler-audit (~> 0.9.3) cgi (~> 0.5) + citrus-toml-merge! + commonmarker-merge! debug (>= 1.1) + dotenv-merge! erb (~> 6.0, >= 6.0.6) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.0) + go-merge! irb (~> 1.17) + json-merge! kettle-dev (~> 2.0, >= 2.2.25) - kettle-soup-cover (~> 3.0, >= 3.0.3) + kettle-drift! + kettle-jem! + kettle-soup-cover! kettle-test (~> 2.0, >= 2.0.9) kramdown (~> 2.5, >= 2.5.2) + kramdown-merge! kramdown-parser-gfm (~> 1.1) + markdown-merge! + markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) + parslet-toml-merge! + plain-merge! + prism-merge! + psych-merge! rake (~> 13.0) rbs (>= 3.0) + rbs-merge! rdoc (~> 6.11) reek (~> 6.5, >= 6.5.0) require_bench (~> 1.0, >= 1.0.4) @@ -429,18 +725,25 @@ DEPENDENCIES rubocop-ruby3_2 (~> 3.0, >= 3.0.6) ruby-merge! ruby-progressbar (~> 1.13) + rust-merge! + smorg-rb! standard (~> 1.56, >= 1.56.0) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) + toml-merge! + tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) + typescript-merge! webrick (~> 1.9) yaml-converter (~> 0.2, >= 0.2.3) + yaml-merge! yard (~> 0.9, >= 0.9.45) yard-fence (~> 0.9, >= 0.9.6) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) yard-timekeeper (~> 0.2, >= 0.2.4) yard-yaml (~> 0.2, >= 0.2.3) + zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af @@ -448,20 +751,36 @@ CHECKSUMS appraisal2 (3.2.0) sha256=ccd0b767ac4060cd7af6d16747459b6990f49c39c7b4fb1f7d1146b1e97c492f appraisal2-rubocop (1.0.0) sha256=b71410fbb014befda5340605a605b7f6f3f012739baf0acc5b4351b592c3258d ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 + ast-crispr (7.1.0) + ast-crispr-markdown-markly (7.1.0) + ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) + ast-merge-git (7.1.0) + ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 + bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd + binary-merge (7.1.0) + bundler (4.0.17) sha256=214e21431b5665dd2f99df8a5511c6b151d7a72e8015c8b38f8b775b61cbb6c1 bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 + citrus-toml-merge (7.1.0) cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739 + commonmarker (2.9.0-aarch64-linux) sha256=e2b4aadb9a2cfa4e206582641ce3a49465549ac1ed4c289fdd63b78d8f24579c + commonmarker (2.9.0-aarch64-linux-musl) sha256=1cf4d2821f2a7e64945f1ed7c4eeced586fdb27ea7fe7337788802cf8f57cfca + commonmarker (2.9.0-arm64-darwin) sha256=1748dbfa4f5813b0d2a14bb4bbfa65a4ec293aa1c825016d60029ee0e132b046 + commonmarker (2.9.0-x86_64-linux) sha256=8cfe92970eef585a19ddf6613224b91cab64d6029834661bda801f877c9c7f43 + commonmarker (2.9.0-x86_64-linux-musl) sha256=293921398b839f79ceaf55010e061357e34f053822c3b003cd0be6686176335e + commonmarker-merge (7.1.0) concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6 delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4 diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3 + dotenv-merge (7.1.0) dry-configurable (1.4.0) sha256=e35d1b5f3c081753ef361f564919db79000f32cfa6f20ee3a3ba5921b41b73ce dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1 dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc @@ -474,42 +793,55 @@ CHECKSUMS gem_bench (2.0.5) sha256=0dc0fb44a5a5eb7b2f5c1c68a5b0164d72007132822c012bac3abe976b199ead geom2d (0.4.1) sha256=ea0998ea90c4f2752e24fe13d85a4f89bee689d151316140ebcc6369bf634ed9 gitmoji-regex (2.0.4) sha256=01410d3217940bd0e7b2299ec805245afe8d0f06a5d6d38f623d63a63c0ac34f + go-merge (7.1.0) hexapdf (1.9.1) sha256=2d1f6a3622e6bc2a70a707d4c3f3fa44f5552ecd9d899f6283abb07398a84884 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 - kettle-dev (2.3.9) + json-merge (7.1.0) + kettle-dev (2.3.9) sha256=03b2f72c6dda4d2c4401ee3c0c96853116c922766e7b5b04224434a49b571bfc + kettle-drift (1.0.6) + kettle-jem (7.1.0) kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f kettle-soup-cover (3.0.4) kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa + kramdown-merge (7.1.0) kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 + markdown-merge (7.1.0) + markly (0.16.0) sha256=6f70d79e385b1efc9e171f74c81628826259039fe6c778e03c3924c71dac5511 + markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-aarch64-linux-gnu) sha256=1269fb644a6de405057a53dd5c762b1209b43ca7424f839454d3dbc677c31a8f nokogiri (1.19.4-aarch64-linux-musl) sha256=35c65b9ce72b3bb03207bdbe7067915019dc18c1b9b59139684bd6690fdd01af nokogiri (1.19.4-arm64-darwin) sha256=a46db9853286e6597b36ebc6953817d15acf3a299583eb3f89fdc6f91dd63527 nokogiri (1.19.4-x86_64-linux-gnu) sha256=379fae440b28915e3f19d752ce2dcf8465ed2b2fbefd2a7ca0dd497bc981a06a nokogiri (1.19.4-x86_64-linux-musl) sha256=17dfb7c1fa194ae02fbf7c51a7afc8d278045ab3fdacfd86f91d02d7b274470b - nomono (1.0.9) + nomono (1.1.0) sha256=463dd4c79da02a855739a1b5483190d527b7868688be905e84abdb3449b32c88 openssl (4.0.2) sha256=1037ad2868ae58df9ad917891c0c0f9815a1172f6846d4bcdd508e4c2ee747c2 ostruct (0.6.3) sha256=95a2ed4a4bd1d190784e666b47b2d3f078e4a9efda2fccf18f84ddc6538ed912 parallel (1.28.0) sha256=33e6de1484baf2524792d178b0913fc8eb94c628d6cfe45599ad4458c638c970 parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 + parslet-toml-merge (7.1.0) + plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 + prism-merge (7.1.0) psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7 + psych-merge (7.1.0) public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 + rbs-merge (7.1.0) rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7 reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1 regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb @@ -548,12 +880,15 @@ CHECKSUMS ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 + rust-merge (7.1.0) + service_actor (3.9.4) sha256=e63b523630b9a7e62959b2a90113b08d2565b5de9c148557b281ef847c9539ce silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 simplecov-cobertura (4.0.0) sha256=e4fb3159b1ecea545b44f5452a8611305323e78ad23eae8aed35924d072e01ea simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc simplecov_lcov_formatter (0.9.0) sha256=4c1839bb31dcf7a8f7a6474c94ed228aa03b994e9dd5e1965e58b4121b049bed + smorg-rb (7.1.0) sorbet-runtime (0.6.13351) sha256=f8fee17c6e3edf835dc6823d26afb9a7c8969c6710d1fabe2fb43f4e0c15c64f standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787 standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b @@ -568,17 +903,22 @@ CHECKSUMS timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.5) sha256=b852f924287ffb58a440856e862b056c8ad97e74b4b2526cee43e0771f40c25c + toml (0.3.0) sha256=0a91d0f76a9036e84e44f95693b12f58d358c1df3ac8e3b5271f2056ecc6e4b9 + toml-merge (7.1.0) + toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-aarch64-linux) sha256=55ffc7c87868cb45658338363d9eba51b4a8b0259aa88e4de368d2bd1d52fea4 tree_sitter_language_pack (1.13.3-arm64-darwin) sha256=bc2498db605f212a1dbd2465ed3f65190d7da786f6ed5d30fcf958121aeb4a5c tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 + typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 webrick (1.9.2) sha256=beb4a15fc474defed24a3bda4ffd88a490d517c9e4e6118c3edce59e45864131 yaml-converter (0.2.3) sha256=d35e69e547610d9e347672cc277fcb7d71dff3c53a942e66f82b1c64022ada72 + yaml-merge (7.1.0) yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51 yard-fence (0.9.6) sha256=3d1dbf4e3df462ac78b8bd2e01cf740a2de20168387c929aca31a0bcee490659 yard-junk (0.1.0) sha256=e85fe2ec1afa47313decd333447b53458cb1ed49b510b70015fdc3041a94bcdd @@ -586,7 +926,8 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 + zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH - 4.0.16 + 4.0.17 diff --git a/gems/ruby-merge/LICENSE.md b/gems/ruby-merge/LICENSE.md index 6ad318705..65a770d1f 100644 --- a/gems/ruby-merge/LICENSE.md +++ b/gems/ruby-merge/LICENSE.md @@ -3,8 +3,8 @@ This project is made available under the following licenses. Choose the option that best fits your use case: -- [AGPL-3.0-only](AGPL-3.0-only.md) -- [PolyForm-Small-Business-1.0.0](PolyForm-Small-Business-1.0.0.md) +- [AGPL-3.0-only](https://github.com/structuredmerge/structuredmerge-ruby/blob/main/AGPL-3.0-only.md) +- [PolyForm-Small-Business-1.0.0](https://github.com/structuredmerge/structuredmerge-ruby/blob/main/PolyForm-Small-Business-1.0.0.md) If none of the above licenses fit your use case, please [contact us](mailto:floss@galtzo.com) to discuss a custom commercial license. diff --git a/gems/ruby-merge/README.md b/gems/ruby-merge/README.md index 5a85d8388..51439cdc5 100644 --- a/gems/ruby-merge/README.md +++ b/gems/ruby-merge/README.md @@ -37,7 +37,7 @@ I've summarized my thoughts in [this blog post](https://dev.to/galtzo/hostile-ta |-------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | Works with MRI Ruby 4 | [![Ruby current Compat][💎ruby-c-i]][🚎11-c-wf]| | Support & Community | [![Join Me on Daily.dev's RubyFriends][✉️ruby-friends-img]][✉️ruby-friends] [![Get help from RubyForum][✉️ruby-forum-img]][✉️ruby-forum] [![Live Chat on Discord][✉️discord-invite-img-ftb]][✉️discord-invite] [![Get help from me on Upwork][👨🏼‍🏫expsup-upwork-img]][👨🏼‍🏫expsup-upwork] [![Get help from me on Codementor][👨🏼‍🏫expsup-codementor-img]][👨🏼‍🏫expsup-codementor] | -| Source | [![Source on GitLab.com][📜src-gl-img]][📜src-gl] [![Source on CodeBerg.org][📜src-cb-img]][📜src-cb] [![Source on Github.com][📜src-gh-img]][📜src-gh] [![The best SHA: dQw4w9WgXcQ!][🧮kloc-img]][🧮kloc] | +| Source | [![Source on GitLab.com][📜src-gl-img]][📜src-gl] [![Source on CodeBerg.org][📜src-cb-img]][📜src-cb] [![Source on GitHub.com][📜src-gh-img]][📜src-gh] [![The best SHA: dQw4w9WgXcQ!][🧮kloc-img]][🧮kloc] | | Documentation | [![Current release on RubyDoc.info][📜docs-cr-rd-img]][🚎yard-current] [![YARD on Galtzo.com][📜docs-head-rd-img]][🚎yard-head] [![Maintainer Blog][🚂maint-blog-img]][🚂maint-blog] [![GitLab Wiki][📜gl-wiki-img]][📜gl-wiki] [![GitHub Wiki][📜gh-wiki-img]][📜gh-wiki] | | Compliance | [![License: AGPL-3.0-only OR PolyForm-Small-Business-1.0.0][📄license-img]][📄license] [![Apache license compatibility: Category X][📄license-compat-img]][📄license-compat] [![📄ilo-declaration-img]][📄ilo-declaration] [![Security Policy][🔐security-img]][🔐security] [![Contributor Covenant 2.1][🪇conduct-img]][🪇conduct] [![SemVer 2.0.0][📌semver-img]][📌semver] | | Style | [![Enforced Code Style Linter][💎rlts-img]][💎rlts] [![Keep-A-Changelog 1.0.0][📗keep-changelog-img]][📗keep-changelog] [![Gitmoji Commits][📌gitmoji-img]][📌gitmoji] [![Compatibility appraised by: appraisal2][💎appraisal2-img]][💎appraisal2] | @@ -157,7 +157,7 @@ See [CHANGELOG.md][📌changelog] for a list of releases. ## 📄 License -The gem is available under the following licenses: [AGPL-3.0-only](AGPL-3.0-only.md), [PolyForm-Small-Business-1.0.0](PolyForm-Small-Business-1.0.0.md). +The gem is available under the following licenses: [AGPL-3.0-only](https://github.com/structuredmerge/structuredmerge-ruby/blob/main/AGPL-3.0-only.md), [PolyForm-Small-Business-1.0.0](https://github.com/structuredmerge/structuredmerge-ruby/blob/main/PolyForm-Small-Business-1.0.0.md). See [LICENSE.md][📄license] for details. If none of the available licenses suit your use case, please [contact us](mailto:floss@galtzo.com) to discuss a custom commercial license. @@ -229,7 +229,7 @@ If none of the available licenses suit your use case, please [contact us](mailto [📜src-gl]: https://gitlab.com/structuredmerge/structuredmerge-ruby/-/tree/main/gems/ruby-merge [📜src-cb-img]: https://img.shields.io/badge/CodeBerg-4893CC?style=for-the-badge&logo=CodeBerg&logoColor=blue [📜src-cb]: https://codeberg.org/structuredmerge/structuredmerge-ruby/src/branch/main/gems/ruby-merge -[📜src-gh-img]: https://img.shields.io/badge/GitHub-238636?style=for-the-badge&logo=Github&logoColor=green +[📜src-gh-img]: https://img.shields.io/badge/GitHub-238636?style=for-the-badge&logo=GitHub&logoColor=green [📜src-gh]: https://github.com/structuredmerge/structuredmerge-ruby/tree/main/gems/ruby-merge [📜docs-cr-rd-img]: https://img.shields.io/badge/RubyDoc-Current_Release-943CD2?style=for-the-badge&logo=readthedocs&logoColor=white [📜docs-head-rd-img]: https://img.shields.io/badge/YARD_on_Galtzo.com-HEAD-943CD2?style=for-the-badge&logo=readthedocs&logoColor=white diff --git a/gems/ruby-merge/gemfiles/modular/coverage_local.gemfile b/gems/ruby-merge/gemfiles/modular/coverage_local.gemfile index 0f22763da..027fa826e 100644 --- a/gems/ruby-merge/gemfiles/modular/coverage_local.gemfile +++ b/gems/ruby-merge/gemfiles/modular/coverage_local.gemfile @@ -3,26 +3,6 @@ # Local path overrides for development. # Loaded by the associated non-local gemfile when KETTLE_DEV_DEV != "false". -# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. -# Bundler records that dependency during Gemfile evaluation, but it does not -# activate that exact version before the immediate `require "nomono/bundler"`. -# If multiple compatible nomono versions are installed, RubyGems may activate -# the newest installed version while Gemfile.lock pins an older compatible one; -# Bundler then aborts with "already activated nomono X, but your Gemfile -# requires nomono Y". Prefer the locked compatible version when present, then -# activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] -nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) -if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked -end -Kernel.send(:gem, 'nomono', *nomono_activation_requirements) require 'nomono/bundler' local_gems = %w[kettle-dev kettle-test kettle-soup-cover kettle-drift] diff --git a/gems/ruby-merge/gemfiles/modular/documentation_local.gemfile b/gems/ruby-merge/gemfiles/modular/documentation_local.gemfile index b87492c55..163aa9868 100644 --- a/gems/ruby-merge/gemfiles/modular/documentation_local.gemfile +++ b/gems/ruby-merge/gemfiles/modular/documentation_local.gemfile @@ -3,26 +3,6 @@ # Local path overrides for development. # Loaded by the associated non-local gemfile when GALTZO_FLOSS_DEV != "false". -# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. -# Bundler records that dependency during Gemfile evaluation, but it does not -# activate that exact version before the immediate `require "nomono/bundler"`. -# If multiple compatible nomono versions are installed, RubyGems may activate -# the newest installed version while Gemfile.lock pins an older compatible one; -# Bundler then aborts with "already activated nomono X, but your Gemfile -# requires nomono Y". Prefer the locked compatible version when present, then -# activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] -nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) -if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked -end -Kernel.send(:gem, 'nomono', *nomono_activation_requirements) require 'nomono/bundler' local_gems = %w[yard-fence yard-timekeeper yard-yaml] diff --git a/gems/ruby-merge/gemfiles/modular/style_local.gemfile b/gems/ruby-merge/gemfiles/modular/style_local.gemfile index b54e9ddc2..0381147b4 100644 --- a/gems/ruby-merge/gemfiles/modular/style_local.gemfile +++ b/gems/ruby-merge/gemfiles/modular/style_local.gemfile @@ -6,26 +6,6 @@ # Local path overrides for development. # Loaded by the associated non-local gemfile when RUBOCOP_LTS_LOCAL != "false". -# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. -# Bundler records that dependency during Gemfile evaluation, but it does not -# activate that exact version before the immediate `require "nomono/bundler"`. -# If multiple compatible nomono versions are installed, RubyGems may activate -# the newest installed version while Gemfile.lock pins an older compatible one; -# Bundler then aborts with "already activated nomono X, but your Gemfile -# requires nomono Y". Prefer the locked compatible version when present, then -# activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] -nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) -if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked -end -Kernel.send(:gem, 'nomono', *nomono_activation_requirements) require 'nomono/bundler' local_gems = %w[rubocop-lts rubocop-lts-rspec rubocop-ruby3_2 standard-rubocop-lts] diff --git a/gems/ruby-merge/gemfiles/modular/templating_local.gemfile b/gems/ruby-merge/gemfiles/modular/templating_local.gemfile index 7365dc0d3..5649b0439 100644 --- a/gems/ruby-merge/gemfiles/modular/templating_local.gemfile +++ b/gems/ruby-merge/gemfiles/modular/templating_local.gemfile @@ -4,26 +4,6 @@ # Loaded by the associated non-local gemfile when STRUCTUREDMERGE_DEV or KETTLE_DEV_DEV # is not "false". -# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. -# Bundler records that dependency during Gemfile evaluation, but it does not -# activate that exact version before the immediate `require "nomono/bundler"`. -# If multiple compatible nomono versions are installed, RubyGems may activate -# the newest installed version while Gemfile.lock pins an older compatible one; -# Bundler then aborts with "already activated nomono X, but your Gemfile -# requires nomono Y". Prefer the locked compatible version when present, then -# activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] -nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) -if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked -end -Kernel.send(:gem, 'nomono', *nomono_activation_requirements) require 'nomono/bundler' structuredmerge_local_gems = %w[ diff --git a/gems/rust-merge/.kettle-drift.lock b/gems/rust-merge/.kettle-drift.lock deleted file mode 100644 index 7cc6a5131..000000000 --- a/gems/rust-merge/.kettle-drift.lock +++ /dev/null @@ -1,188 +0,0 @@ -{ - "(direct_sibling_local ||\nENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?)": [ - { - "file": "Gemfile", - "lines": [ - 80, - 120 - ] - } - ], - ".find { |spec| spec.name == 'nomono' }\nnomono_locked = nomono_locked_spec &&": [ - { - "file": "Gemfile", - "lines": [ - 91, - 131 - ] - } - ], - "ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?)\ndirect_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV')": [ - { - "file": "Gemfile", - "lines": [ - 81, - 121 - ] - } - ], - "Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version)\nnomono_activation_requirements = [\"= #{nomono_locked_spec.version}\"] if nomono_locked": [ - { - "file": "Gemfile", - "lines": [ - 93, - 133 - ] - } - ], - "Kernel.send(:gem, 'nomono', *nomono_activation_requirements)\nrequire 'nomono/bundler'": [ - { - "file": "Gemfile", - "lines": [ - 96, - 136 - ] - } - ], - "direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV')\ndirect_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil)": [ - { - "file": "Gemfile", - "lines": [ - 82, - 122 - ] - } - ], - "eval_nomono_gems(\ngems: direct_sibling_gems,": [ - { - "file": "Gemfile", - "lines": [ - 60, - 100, - 140 - ] - } - ], - "gems: direct_sibling_gems,\nprefix: 'STRUCTUREDMERGE',": [ - { - "file": "Gemfile", - "lines": [ - 101, - 141 - ] - } - ], - "if File.file?(nomono_lockfile)\nnomono_locked_spec = Bundler::LockfileParser": [ - { - "file": "Gemfile", - "lines": [ - 43, - 87, - 127 - ] - } - ], - "if direct_sibling_dev_was_set\nENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original": [ - { - "file": "Gemfile", - "lines": [ - 110, - 150 - ] - } - ], - "if direct_sibling_gems.any? &&\n(direct_sibling_local ||": [ - { - "file": "Gemfile", - "lines": [ - 35, - 79, - 119 - ] - } - ], - "if direct_sibling_templating && !direct_sibling_local\nif direct_sibling_dev_was_set": [ - { - "file": "Gemfile", - "lines": [ - 69, - 109, - 149 - ] - } - ], - "nomono_activation_requirements = nomono_requirements\nnomono_lockfile = File.expand_path('Gemfile.lock', __dir__)": [ - { - "file": "Gemfile", - "lines": [ - 85, - 125 - ] - } - ], - "nomono_locked = nomono_locked_spec &&\nGem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version)": [ - { - "file": "Gemfile", - "lines": [ - 48, - 92, - 132 - ] - } - ], - "nomono_locked_spec = Bundler::LockfileParser\n.new(Bundler.read_file(nomono_lockfile))": [ - { - "file": "Gemfile", - "lines": [ - 44, - 88, - 128 - ] - } - ], - "nomono_lockfile = File.expand_path('Gemfile.lock', __dir__)\nif File.file?(nomono_lockfile)": [ - { - "file": "Gemfile", - "lines": [ - 86, - 126 - ] - } - ], - "path_env: 'STRUCTUREDMERGE_DEV',\nroot: %w[src my structuredmerge]": [ - { - "file": "Gemfile", - "lines": [ - 103, - 143 - ] - } - ], - "prefix: 'STRUCTUREDMERGE',\npath_env: 'STRUCTUREDMERGE_DEV',": [ - { - "file": "Gemfile", - "lines": [ - 102, - 142 - ] - } - ], - "require 'nomono/bundler'\nENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local": [ - { - "file": "Gemfile", - "lines": [ - 97, - 137 - ] - } - ], - "rescue LoadError\nwarn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.'": [ - { - "file": "Gemfile", - "lines": [ - 106, - 146 - ] - } - ] -} diff --git a/gems/rust-merge/Gemfile b/gems/rust-merge/Gemfile index a5b87ea3a..ab07fc113 100644 --- a/gems/rust-merge/Gemfile +++ b/gems/rust-merge/Gemfile @@ -37,100 +37,8 @@ if direct_sibling_gems.any? && ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) + require 'nomono/bundler' begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local eval_nomono_gems( @@ -139,8 +47,6 @@ if direct_sibling_gems.any? && path_env: 'STRUCTUREDMERGE_DEV', root: %w[src my structuredmerge] ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' ensure if direct_sibling_templating && !direct_sibling_local if direct_sibling_dev_was_set diff --git a/gems/rust-merge/Gemfile.lock b/gems/rust-merge/Gemfile.lock index 617a48fe6..73ba41205 100644 --- a/gems/rust-merge/Gemfile.lock +++ b/gems/rust-merge/Gemfile.lock @@ -136,7 +136,7 @@ GEM racc (~> 1.4) nokogiri (1.19.4-x86_64-linux-musl) racc (~> 1.4) - nomono (1.0.9) + nomono (1.1.0) openssl (4.0.2) ostruct (0.6.3) parallel (1.28.0) @@ -452,6 +452,7 @@ CHECKSUMS backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd + bundler (4.0.17) sha256=214e21431b5665dd2f99df8a5511c6b151d7a72e8015c8b38f8b775b61cbb6c1 bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 @@ -478,9 +479,9 @@ CHECKSUMS io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 - kettle-dev (2.3.9) + kettle-dev (2.3.9) sha256=03b2f72c6dda4d2c4401ee3c0c96853116c922766e7b5b04224434a49b571bfc kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f - kettle-soup-cover (3.0.4) + kettle-soup-cover (3.0.4) sha256=36d4df472362d2020d16411d7ce26ba2fe2a41fb8be64577ff9b5280acf99d86 kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa @@ -494,7 +495,7 @@ CHECKSUMS nokogiri (1.19.4-arm64-darwin) sha256=a46db9853286e6597b36ebc6953817d15acf3a299583eb3f89fdc6f91dd63527 nokogiri (1.19.4-x86_64-linux-gnu) sha256=379fae440b28915e3f19d752ce2dcf8465ed2b2fbefd2a7ca0dd497bc981a06a nokogiri (1.19.4-x86_64-linux-musl) sha256=17dfb7c1fa194ae02fbf7c51a7afc8d278045ab3fdacfd86f91d02d7b274470b - nomono (1.0.9) + nomono (1.1.0) sha256=463dd4c79da02a855739a1b5483190d527b7868688be905e84abdb3449b32c88 openssl (4.0.2) sha256=1037ad2868ae58df9ad917891c0c0f9815a1172f6846d4bcdd508e4c2ee747c2 ostruct (0.6.3) sha256=95a2ed4a4bd1d190784e666b47b2d3f078e4a9efda2fccf18f84ddc6538ed912 parallel (1.28.0) sha256=33e6de1484baf2524792d178b0913fc8eb94c628d6cfe45599ad4458c638c970 @@ -589,4 +590,4 @@ CHECKSUMS zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH - 4.0.16 + 4.0.17 diff --git a/gems/rust-merge/LICENSE.md b/gems/rust-merge/LICENSE.md index 6ad318705..65a770d1f 100644 --- a/gems/rust-merge/LICENSE.md +++ b/gems/rust-merge/LICENSE.md @@ -3,8 +3,8 @@ This project is made available under the following licenses. Choose the option that best fits your use case: -- [AGPL-3.0-only](AGPL-3.0-only.md) -- [PolyForm-Small-Business-1.0.0](PolyForm-Small-Business-1.0.0.md) +- [AGPL-3.0-only](https://github.com/structuredmerge/structuredmerge-ruby/blob/main/AGPL-3.0-only.md) +- [PolyForm-Small-Business-1.0.0](https://github.com/structuredmerge/structuredmerge-ruby/blob/main/PolyForm-Small-Business-1.0.0.md) If none of the above licenses fit your use case, please [contact us](mailto:floss@galtzo.com) to discuss a custom commercial license. diff --git a/gems/rust-merge/README.md b/gems/rust-merge/README.md index 004ecb1cd..da2e9de59 100644 --- a/gems/rust-merge/README.md +++ b/gems/rust-merge/README.md @@ -36,7 +36,7 @@ I've summarized my thoughts in [this blog post](https://dev.to/galtzo/hostile-ta |-------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | Works with MRI Ruby 4 | [![Ruby current Compat][💎ruby-c-i]][🚎11-c-wf]| | Support & Community | [![Join Me on Daily.dev's RubyFriends][✉️ruby-friends-img]][✉️ruby-friends] [![Get help from RubyForum][✉️ruby-forum-img]][✉️ruby-forum] [![Live Chat on Discord][✉️discord-invite-img-ftb]][✉️discord-invite] [![Get help from me on Upwork][👨🏼‍🏫expsup-upwork-img]][👨🏼‍🏫expsup-upwork] [![Get help from me on Codementor][👨🏼‍🏫expsup-codementor-img]][👨🏼‍🏫expsup-codementor] | -| Source | [![Source on GitLab.com][📜src-gl-img]][📜src-gl] [![Source on CodeBerg.org][📜src-cb-img]][📜src-cb] [![Source on Github.com][📜src-gh-img]][📜src-gh] [![The best SHA: dQw4w9WgXcQ!][🧮kloc-img]][🧮kloc] | +| Source | [![Source on GitLab.com][📜src-gl-img]][📜src-gl] [![Source on CodeBerg.org][📜src-cb-img]][📜src-cb] [![Source on GitHub.com][📜src-gh-img]][📜src-gh] [![The best SHA: dQw4w9WgXcQ!][🧮kloc-img]][🧮kloc] | | Documentation | [![Current release on RubyDoc.info][📜docs-cr-rd-img]][🚎yard-current] [![YARD on Galtzo.com][📜docs-head-rd-img]][🚎yard-head] [![Maintainer Blog][🚂maint-blog-img]][🚂maint-blog] [![GitLab Wiki][📜gl-wiki-img]][📜gl-wiki] [![GitHub Wiki][📜gh-wiki-img]][📜gh-wiki] | | Compliance | [![License: AGPL-3.0-only OR PolyForm-Small-Business-1.0.0][📄license-img]][📄license] [![Apache license compatibility: Category X][📄license-compat-img]][📄license-compat] [![📄ilo-declaration-img]][📄ilo-declaration] [![Security Policy][🔐security-img]][🔐security] [![Contributor Covenant 2.1][🪇conduct-img]][🪇conduct] [![SemVer 2.0.0][📌semver-img]][📌semver] | | Style | [![Enforced Code Style Linter][💎rlts-img]][💎rlts] [![Keep-A-Changelog 1.0.0][📗keep-changelog-img]][📗keep-changelog] [![Gitmoji Commits][📌gitmoji-img]][📌gitmoji] [![Compatibility appraised by: appraisal2][💎appraisal2-img]][💎appraisal2] | @@ -154,7 +154,7 @@ See [CHANGELOG.md][📌changelog] for a list of releases. ## 📄 License -The gem is available under the following licenses: [AGPL-3.0-only](AGPL-3.0-only.md), [PolyForm-Small-Business-1.0.0](PolyForm-Small-Business-1.0.0.md). +The gem is available under the following licenses: [AGPL-3.0-only](https://github.com/structuredmerge/structuredmerge-ruby/blob/main/AGPL-3.0-only.md), [PolyForm-Small-Business-1.0.0](https://github.com/structuredmerge/structuredmerge-ruby/blob/main/PolyForm-Small-Business-1.0.0.md). See [LICENSE.md][📄license] for details. If none of the available licenses suit your use case, please [contact us](mailto:floss@galtzo.com) to discuss a custom commercial license. @@ -226,7 +226,7 @@ If none of the available licenses suit your use case, please [contact us](mailto [📜src-gl]: https://gitlab.com/structuredmerge/structuredmerge-ruby/-/tree/main/gems/rust-merge [📜src-cb-img]: https://img.shields.io/badge/CodeBerg-4893CC?style=for-the-badge&logo=CodeBerg&logoColor=blue [📜src-cb]: https://codeberg.org/structuredmerge/structuredmerge-ruby/src/branch/main/gems/rust-merge -[📜src-gh-img]: https://img.shields.io/badge/GitHub-238636?style=for-the-badge&logo=Github&logoColor=green +[📜src-gh-img]: https://img.shields.io/badge/GitHub-238636?style=for-the-badge&logo=GitHub&logoColor=green [📜src-gh]: https://github.com/structuredmerge/structuredmerge-ruby/tree/main/gems/rust-merge [📜docs-cr-rd-img]: https://img.shields.io/badge/RubyDoc-Current_Release-943CD2?style=for-the-badge&logo=readthedocs&logoColor=white [📜docs-head-rd-img]: https://img.shields.io/badge/YARD_on_Galtzo.com-HEAD-943CD2?style=for-the-badge&logo=readthedocs&logoColor=white diff --git a/gems/rust-merge/gemfiles/modular/coverage_local.gemfile b/gems/rust-merge/gemfiles/modular/coverage_local.gemfile index fb6e4df29..a77468cac 100644 --- a/gems/rust-merge/gemfiles/modular/coverage_local.gemfile +++ b/gems/rust-merge/gemfiles/modular/coverage_local.gemfile @@ -3,26 +3,6 @@ # Local path overrides for development. # Loaded by the associated non-local gemfile when KETTLE_DEV_DEV != "false". -# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. -# Bundler records that dependency during Gemfile evaluation, but it does not -# activate that exact version before the immediate `require "nomono/bundler"`. -# If multiple compatible nomono versions are installed, RubyGems may activate -# the newest installed version while Gemfile.lock pins an older compatible one; -# Bundler then aborts with "already activated nomono X, but your Gemfile -# requires nomono Y". Prefer the locked compatible version when present, then -# activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] -nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) -if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked -end -Kernel.send(:gem, 'nomono', *nomono_activation_requirements) require 'nomono/bundler' local_gems = %w[kettle-dev kettle-test kettle-soup-cover kettle-drift] diff --git a/gems/rust-merge/gemfiles/modular/documentation_local.gemfile b/gems/rust-merge/gemfiles/modular/documentation_local.gemfile index c8755d61e..d82f40fbe 100644 --- a/gems/rust-merge/gemfiles/modular/documentation_local.gemfile +++ b/gems/rust-merge/gemfiles/modular/documentation_local.gemfile @@ -3,26 +3,6 @@ # Local path overrides for development. # Loaded by the associated non-local gemfile when GALTZO_FLOSS_DEV != "false". -# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. -# Bundler records that dependency during Gemfile evaluation, but it does not -# activate that exact version before the immediate `require "nomono/bundler"`. -# If multiple compatible nomono versions are installed, RubyGems may activate -# the newest installed version while Gemfile.lock pins an older compatible one; -# Bundler then aborts with "already activated nomono X, but your Gemfile -# requires nomono Y". Prefer the locked compatible version when present, then -# activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] -nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) -if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked -end -Kernel.send(:gem, 'nomono', *nomono_activation_requirements) require 'nomono/bundler' local_gems = %w[yard-fence yard-timekeeper yard-yaml] diff --git a/gems/rust-merge/gemfiles/modular/style_local.gemfile b/gems/rust-merge/gemfiles/modular/style_local.gemfile index d2c6290ca..80e86a539 100644 --- a/gems/rust-merge/gemfiles/modular/style_local.gemfile +++ b/gems/rust-merge/gemfiles/modular/style_local.gemfile @@ -6,26 +6,6 @@ # Local path overrides for development. # Loaded by the associated non-local gemfile when RUBOCOP_LTS_LOCAL != "false". -# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. -# Bundler records that dependency during Gemfile evaluation, but it does not -# activate that exact version before the immediate `require "nomono/bundler"`. -# If multiple compatible nomono versions are installed, RubyGems may activate -# the newest installed version while Gemfile.lock pins an older compatible one; -# Bundler then aborts with "already activated nomono X, but your Gemfile -# requires nomono Y". Prefer the locked compatible version when present, then -# activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] -nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) -if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked -end -Kernel.send(:gem, 'nomono', *nomono_activation_requirements) require 'nomono/bundler' local_gems = %w[rubocop-lts rubocop-lts-rspec rubocop-ruby3_2 standard-rubocop-lts] diff --git a/gems/rust-merge/gemfiles/modular/templating_local.gemfile b/gems/rust-merge/gemfiles/modular/templating_local.gemfile index a56793c0d..a1982cadf 100644 --- a/gems/rust-merge/gemfiles/modular/templating_local.gemfile +++ b/gems/rust-merge/gemfiles/modular/templating_local.gemfile @@ -4,26 +4,6 @@ # Loaded by the associated non-local gemfile when STRUCTUREDMERGE_DEV or KETTLE_DEV_DEV # is not "false". -# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. -# Bundler records that dependency during Gemfile evaluation, but it does not -# activate that exact version before the immediate `require "nomono/bundler"`. -# If multiple compatible nomono versions are installed, RubyGems may activate -# the newest installed version while Gemfile.lock pins an older compatible one; -# Bundler then aborts with "already activated nomono X, but your Gemfile -# requires nomono Y". Prefer the locked compatible version when present, then -# activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] -nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) -if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked -end -Kernel.send(:gem, 'nomono', *nomono_activation_requirements) require 'nomono/bundler' structuredmerge_local_gems = %w[ diff --git a/gems/smorg-rb/.kettle-drift.lock b/gems/smorg-rb/.kettle-drift.lock deleted file mode 100644 index d5943379c..000000000 --- a/gems/smorg-rb/.kettle-drift.lock +++ /dev/null @@ -1,188 +0,0 @@ -{ - "(direct_sibling_local ||\nENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?)": [ - { - "file": "Gemfile", - "lines": [ - 85, - 125 - ] - } - ], - ".find { |spec| spec.name == 'nomono' }\nnomono_locked = nomono_locked_spec &&": [ - { - "file": "Gemfile", - "lines": [ - 96, - 136 - ] - } - ], - "ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?)\ndirect_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV')": [ - { - "file": "Gemfile", - "lines": [ - 86, - 126 - ] - } - ], - "Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version)\nnomono_activation_requirements = [\"= #{nomono_locked_spec.version}\"] if nomono_locked": [ - { - "file": "Gemfile", - "lines": [ - 98, - 138 - ] - } - ], - "Kernel.send(:gem, 'nomono', *nomono_activation_requirements)\nrequire 'nomono/bundler'": [ - { - "file": "Gemfile", - "lines": [ - 101, - 141 - ] - } - ], - "direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV')\ndirect_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil)": [ - { - "file": "Gemfile", - "lines": [ - 87, - 127 - ] - } - ], - "eval_nomono_gems(\ngems: direct_sibling_gems,": [ - { - "file": "Gemfile", - "lines": [ - 65, - 105, - 145 - ] - } - ], - "gems: direct_sibling_gems,\nprefix: 'STRUCTUREDMERGE',": [ - { - "file": "Gemfile", - "lines": [ - 106, - 146 - ] - } - ], - "if File.file?(nomono_lockfile)\nnomono_locked_spec = Bundler::LockfileParser": [ - { - "file": "Gemfile", - "lines": [ - 48, - 92, - 132 - ] - } - ], - "if direct_sibling_dev_was_set\nENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original": [ - { - "file": "Gemfile", - "lines": [ - 115, - 155 - ] - } - ], - "if direct_sibling_gems.any? &&\n(direct_sibling_local ||": [ - { - "file": "Gemfile", - "lines": [ - 40, - 84, - 124 - ] - } - ], - "if direct_sibling_templating && !direct_sibling_local\nif direct_sibling_dev_was_set": [ - { - "file": "Gemfile", - "lines": [ - 74, - 114, - 154 - ] - } - ], - "nomono_activation_requirements = nomono_requirements\nnomono_lockfile = File.expand_path('Gemfile.lock', __dir__)": [ - { - "file": "Gemfile", - "lines": [ - 90, - 130 - ] - } - ], - "nomono_locked = nomono_locked_spec &&\nGem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version)": [ - { - "file": "Gemfile", - "lines": [ - 53, - 97, - 137 - ] - } - ], - "nomono_locked_spec = Bundler::LockfileParser\n.new(Bundler.read_file(nomono_lockfile))": [ - { - "file": "Gemfile", - "lines": [ - 49, - 93, - 133 - ] - } - ], - "nomono_lockfile = File.expand_path('Gemfile.lock', __dir__)\nif File.file?(nomono_lockfile)": [ - { - "file": "Gemfile", - "lines": [ - 91, - 131 - ] - } - ], - "path_env: 'STRUCTUREDMERGE_DEV',\nroot: %w[src my structuredmerge]": [ - { - "file": "Gemfile", - "lines": [ - 108, - 148 - ] - } - ], - "prefix: 'STRUCTUREDMERGE',\npath_env: 'STRUCTUREDMERGE_DEV',": [ - { - "file": "Gemfile", - "lines": [ - 107, - 147 - ] - } - ], - "require 'nomono/bundler'\nENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local": [ - { - "file": "Gemfile", - "lines": [ - 102, - 142 - ] - } - ], - "rescue LoadError\nwarn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.'": [ - { - "file": "Gemfile", - "lines": [ - 111, - 151 - ] - } - ] -} diff --git a/gems/smorg-rb/Gemfile b/gems/smorg-rb/Gemfile index d14775ce9..ef39dc6ae 100644 --- a/gems/smorg-rb/Gemfile +++ b/gems/smorg-rb/Gemfile @@ -42,100 +42,8 @@ if direct_sibling_gems.any? && ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) + require 'nomono/bundler' begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local eval_nomono_gems( @@ -144,8 +52,6 @@ if direct_sibling_gems.any? && path_env: 'STRUCTUREDMERGE_DEV', root: %w[src my structuredmerge] ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' ensure if direct_sibling_templating && !direct_sibling_local if direct_sibling_dev_was_set diff --git a/gems/smorg-rb/Gemfile.lock b/gems/smorg-rb/Gemfile.lock index 7dcf24a9f..79bbf9d7e 100644 --- a/gems/smorg-rb/Gemfile.lock +++ b/gems/smorg-rb/Gemfile.lock @@ -12,276 +12,47 @@ PATH plain-merge (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-markdown-markly +GEM + remote: https://gem.coop/ specs: + addressable (2.9.0) + public_suffix (>= 2.0.2, < 8.0) + ansi (1.6.0) + appraisal2 (3.2.0) + bundler (>= 1.17.3) + rake (>= 10) + thor (>= 0.14) + appraisal2-rubocop (1.0.0) + appraisal2 (>= 3.1.4) + rubocop (>= 1.0) + version_gem (~> 1.1, >= 1.1.14) + ast (2.4.3) + ast-crispr (7.1.0) + ast-merge (= 7.1.0) + service_actor (~> 3.9) + version_gem (~> 1.1, >= 1.1.9) ast-crispr-markdown-markly (7.1.0) ast-crispr (= 7.1.0) markly-merge (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr-ruby-prism - specs: ast-crispr-ruby-prism (7.1.0) ast-crispr (= 7.1.0) prism-merge (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-crispr - specs: - ast-crispr (7.1.0) - ast-merge (= 7.1.0) - service_actor (~> 3.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge-git - specs: - ast-merge-git (7.1.0) - ast-merge (= 7.1.0) - json-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-merge - specs: ast-merge (7.1.0) benchmark token-resolver (~> 2.0, >= 2.0.4) tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ast-template - specs: - ast-template (7.1.0) - ast-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/bash-merge - specs: - bash-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/binary-merge - specs: - binary-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/citrus-toml-merge - specs: - citrus-toml-merge (7.1.0) - toml-merge (= 7.1.0) - toml-rb (~> 4.1) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge - specs: - commonmarker-merge (7.1.0) - commonmarker (~> 2.2) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge - specs: - dotenv-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/go-merge - specs: - go-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/json-merge - specs: - json-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kettle-jem - specs: - kettle-jem (7.1.0) - addressable (>= 2.8, < 3) - ast-crispr-markdown-markly (= 7.1.0) - ast-crispr-ruby-prism (= 7.1.0) + ast-merge-git (7.1.0) ast-merge (= 7.1.0) - bash-merge (= 7.1.0) - citrus-toml-merge (= 7.1.0) - commonmarker-merge (= 7.1.0) - dotenv-merge (= 7.1.0) json-merge (= 7.1.0) - kettle-dev (~> 2.3, >= 2.3.5) - kettle-rb (~> 0.1, >= 0.1.4) - kramdown-merge (= 7.1.0) - markdown-merge (= 7.1.0) - markly-merge (= 7.1.0) - prism-merge (= 7.1.0) - psych-merge (= 7.1.0) - rbs (>= 3.10) - rbs-merge (= 7.1.0) - ruby-merge (= 7.1.0) - token-resolver (~> 2.0, >= 2.0.4) - toml-merge (= 7.1.0) - toml-rb (~> 4.2) - tree_haver (= 7.1.0) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge - specs: - kramdown-merge (7.1.0) - kramdown (~> 2.5) - markdown-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge - specs: - markdown-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/markly-merge - specs: - markly-merge (7.1.0) - markdown-merge (= 7.1.0) - markly (~> 0.9) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/parslet-toml-merge - specs: - parslet-toml-merge (7.1.0) - toml (~> 0.3) - toml-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/plain-merge - specs: - plain-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/prism-merge - specs: - prism-merge (7.1.0) - prism (~> 1.6) - ruby-merge (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/psych-merge - specs: - psych-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) version_gem (~> 1.1, >= 1.1.9) - yaml-merge (= 7.1.0) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rbs-merge - specs: - rbs-merge (7.1.0) - ast-merge (= 7.1.0) - rbs (>= 3.10) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.14) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/ruby-merge - specs: - ruby-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/rust-merge - specs: - rust-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/toml-merge - specs: - toml-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/tree_haver - specs: - tree_haver (7.1.0) - citrus (~> 3.0) - parslet (~> 2.0) - tree_sitter_language_pack (>= 1.13.2, < 2.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/typescript-merge - specs: - typescript-merge (7.1.0) - ast-merge (= 7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/yaml-merge - specs: - yaml-merge (7.1.0) + backports (3.25.3) + bash-merge (7.1.0) ast-merge (= 7.1.0) tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -PATH - remote: /home/pboling/src/my/structuredmerge/ruby/gems/zip-merge - specs: - zip-merge (7.1.0) - tree_haver (= 7.1.0) - version_gem (~> 1.1, >= 1.1.9) - -GEM - remote: https://gem.coop/ - specs: - addressable (2.9.0) - public_suffix (>= 2.0.2, < 8.0) - ansi (1.6.0) - appraisal2 (3.2.0) - bundler (>= 1.17.3) - rake (>= 10) - thor (>= 0.14) - appraisal2-rubocop (1.0.0) - appraisal2 (>= 3.1.4) - rubocop (>= 1.0) version_gem (~> 1.1, >= 1.1.14) - ast (2.4.3) - backports (3.25.3) benchmark (0.5.0) bigdecimal (4.1.2) bundler-audit (0.9.3) @@ -289,8 +60,16 @@ GEM thor (~> 1.0) cgi (0.5.2) citrus (3.0.2) + citrus-toml-merge (7.1.0) + toml-merge (= 7.1.0) + toml-rb (~> 4.1) + version_gem (~> 1.1, >= 1.1.9) cmdparse (3.0.7) commonmarker (2.9.0-x86_64-linux) + commonmarker-merge (7.1.0) + commonmarker (~> 2.2) + markdown-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) concurrent-ruby (1.3.8) date (3.5.1) debug (1.11.1) @@ -299,6 +78,10 @@ GEM delegate (0.6.1) diff-lcs (1.6.2) diffy (3.4.4) + dotenv-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) dry-configurable (1.4.0) dry-core (~> 1.0) zeitwerk (~> 2.6) @@ -336,6 +119,10 @@ GEM geom2d (0.4.1) gitmoji-regex (2.0.4) version_gem (~> 1.1, >= 1.1.13) + go-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) hexapdf (1.9.1) cmdparse (~> 3.0, >= 3.0.3) geom2d (~> 0.4, >= 0.4.1) @@ -348,13 +135,40 @@ GEM rdoc (>= 4.0.0) reline (>= 0.4.2) json (2.21.1) + json-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) kettle-dev (2.3.9) emoji_regex (>= 15.0) kettle-rb (~> 0.1, >= 0.1.2) kettle-test (~> 2.0, >= 2.0.4) ruby-progressbar (~> 1.13) - kettle-drift (1.0.6) - version_gem (~> 1.1, >= 1.1.14) + kettle-jem (7.1.0) + addressable (>= 2.8, < 3) + ast-crispr-markdown-markly (= 7.1.0) + ast-crispr-ruby-prism (= 7.1.0) + ast-merge (= 7.1.0) + bash-merge (= 7.1.0) + citrus-toml-merge (= 7.1.0) + commonmarker-merge (= 7.1.0) + dotenv-merge (= 7.1.0) + json-merge (= 7.1.0) + kettle-dev (~> 2.3, >= 2.3.5) + kettle-rb (~> 0.1, >= 0.1.4) + kramdown-merge (= 7.1.0) + markdown-merge (= 7.1.0) + markly-merge (= 7.1.0) + prism-merge (= 7.1.0) + psych-merge (= 7.1.0) + rbs (>= 3.10) + rbs-merge (= 7.1.0) + ruby-merge (= 7.1.0) + token-resolver (~> 2.0, >= 2.0.4) + toml-merge (= 7.1.0) + toml-rb (~> 4.2) + tree_haver (= 7.1.0) + yaml-merge (= 7.1.0) kettle-rb (0.1.5) kettle-soup-cover (3.0.4) kettle-wash (~> 0.1, >= 0.1.0) @@ -378,16 +192,28 @@ GEM version_gem (~> 1.1, >= 1.1.14) kramdown (2.5.2) rexml (>= 3.4.4) + kramdown-merge (7.1.0) + kramdown (~> 2.5) + markdown-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) kramdown-parser-gfm (1.1.0) kramdown (~> 2.0) language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) + markdown-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) markly (0.16.0) + markly-merge (7.1.0) + markdown-merge (= 7.1.0) + markly (~> 0.9) + version_gem (~> 1.1, >= 1.1.9) mutex_m (0.3.0) nokogiri (1.19.4-x86_64-linux-gnu) racc (~> 1.4) - nomono (1.0.9) + nomono (1.1.0) openssl (4.0.2) ostruct (0.6.3) parallel (1.28.0) @@ -397,13 +223,26 @@ GEM ast (~> 2.4.1) racc parslet (2.0.0) + plain-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) pp (0.6.4) prettyprint prettyprint (0.2.0) prism (1.9.0) + prism-merge (7.1.0) + prism (~> 1.6) + ruby-merge (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) psych (5.4.0) date stringio + psych-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) + yaml-merge (= 7.1.0) public_suffix (7.0.5) racc (1.8.1) rainbow (3.1.1) @@ -412,6 +251,11 @@ GEM logger prism (>= 1.6.0) tsort + rbs-merge (7.1.0) + ast-merge (= 7.1.0) + rbs (>= 3.10) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.14) rdoc (6.17.0) erb psych (>= 4.0.0) @@ -535,6 +379,10 @@ GEM lint_roller (~> 1.1) rubocop (~> 1.72, >= 1.72.1) rubocop-ast (>= 1.44.0, < 2.0) + ruby-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) ruby-progressbar (1.13.0) ruby_engine (2.0.3) ruby_version (1.0.3) @@ -594,11 +442,18 @@ GEM token-resolver (2.0.5) parslet (~> 2.0) version_gem (~> 1.1, >= 1.1.14) - toml (0.3.0) - parslet (>= 1.8.0, < 3.0.0) + toml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) toml-rb (4.2.0) citrus (~> 3.0, > 3.0) racc (~> 1.7) + tree_haver (7.1.0) + citrus (~> 3.0) + parslet (~> 2.0) + tree_sitter_language_pack (>= 1.13.2, < 2.0) + version_gem (~> 1.1, >= 1.1.9) tree_sitter_language_pack (1.13.3-x86_64-linux) sorbet-runtime (~> 0.5) tsort (0.2.0) @@ -616,6 +471,10 @@ GEM kramdown (>= 2.4, < 3) kramdown-parser-gfm (~> 1.1) version_gem (~> 1.1, >= 1.1.13) + yaml-merge (7.1.0) + ast-merge (= 7.1.0) + tree_haver (= 7.1.0) + version_gem (~> 1.1, >= 1.1.9) yard (0.9.45) yard-fence (0.9.6) rdoc (>= 6.11, < 8) @@ -644,46 +503,23 @@ DEPENDENCIES addressable (>= 2.8, < 3) appraisal2 (~> 3.0, >= 3.0.6) appraisal2-rubocop (~> 1.0, >= 1.0.0) - ast-crispr! - ast-crispr-markdown-markly! - ast-crispr-ruby-prism! - ast-merge! - ast-merge-git! - ast-template! - bash-merge! benchmark (~> 0.5, >= 0.5.0) - binary-merge! bundler-audit (~> 0.9.3) cgi (~> 0.5) - citrus-toml-merge! - commonmarker-merge! debug (>= 1.1) - dotenv-merge! erb (~> 6.0, >= 6.0.6) gem_bench (~> 2.0, >= 2.0.5) gitmoji-regex (~> 2.0, >= 2.0.0) - go-merge! irb (~> 1.17) - json-merge! kettle-dev (~> 2.0, >= 2.2.25) - kettle-drift (~> 1.0, >= 1.0.6) - kettle-jem! kettle-soup-cover (~> 3.0, >= 3.0.3) kettle-test (~> 2.0, >= 2.0.9) kramdown (~> 2.5, >= 2.5.2) - kramdown-merge! kramdown-parser-gfm (~> 1.1) - markdown-merge! - markly-merge! mutex_m (~> 0.2) nomono (~> 1.0, >= 1.0.8) - parslet-toml-merge! - plain-merge! - prism-merge! - psych-merge! rake (~> 13.0) rbs (>= 3.0) - rbs-merge! rdoc (~> 6.11) reek (~> 6.5, >= 6.5.0) require_bench (~> 1.0, >= 1.0.4) @@ -694,27 +530,20 @@ DEPENDENCIES rubocop-on-rbs (~> 2.0, >= 2.0.0) rubocop-packaging (~> 0.6, >= 0.6.0) rubocop-ruby3_2 (~> 3.0, >= 3.0.6) - ruby-merge! ruby-progressbar (~> 1.13) - rust-merge! smorg-rb! standard (~> 1.56, >= 1.56.0) stone_checksums (~> 1.0, >= 1.0.3) stringio (>= 3.0) - toml-merge! - tree_haver! tree_sitter_language_pack (~> 1.13, >= 1.13.3) - typescript-merge! webrick (~> 1.9) yaml-converter (~> 0.2, >= 0.2.3) - yaml-merge! yard (~> 0.9, >= 0.9.45) yard-fence (~> 0.9, >= 0.9.6) yard-junk (~> 0.1, >= 0.1.0) yard-relative_markdown_links (~> 0.6) yard-timekeeper (~> 0.2, >= 0.2.4) yard-yaml (~> 0.2, >= 0.2.3) - zip-merge! CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af @@ -727,12 +556,11 @@ CHECKSUMS ast-crispr-ruby-prism (7.1.0) ast-merge (7.1.0) ast-merge-git (7.1.0) - ast-template (7.1.0) backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 bash-merge (7.1.0) benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd - binary-merge (7.1.0) + bundler (4.0.17) sha256=214e21431b5665dd2f99df8a5511c6b151d7a72e8015c8b38f8b775b61cbb6c1 bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 @@ -765,11 +593,10 @@ CHECKSUMS irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 json-merge (7.1.0) - kettle-dev (2.3.9) - kettle-drift (1.0.6) sha256=46eda08fa4411d1f3c6682a95eef1c9df4e94611b3949f49d4c7b43c0ed356a3 + kettle-dev (2.3.9) sha256=03b2f72c6dda4d2c4401ee3c0c96853116c922766e7b5b04224434a49b571bfc kettle-jem (7.1.0) kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f - kettle-soup-cover (3.0.4) + kettle-soup-cover (3.0.4) sha256=36d4df472362d2020d16411d7ce26ba2fe2a41fb8be64577ff9b5280acf99d86 kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa @@ -783,14 +610,13 @@ CHECKSUMS markly-merge (7.1.0) mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-x86_64-linux-gnu) sha256=379fae440b28915e3f19d752ce2dcf8465ed2b2fbefd2a7ca0dd497bc981a06a - nomono (1.0.9) + nomono (1.1.0) sha256=463dd4c79da02a855739a1b5483190d527b7868688be905e84abdb3449b32c88 openssl (4.0.2) sha256=1037ad2868ae58df9ad917891c0c0f9815a1172f6846d4bcdd508e4c2ee747c2 ostruct (0.6.3) sha256=95a2ed4a4bd1d190784e666b47b2d3f078e4a9efda2fccf18f84ddc6538ed912 parallel (1.28.0) sha256=33e6de1484baf2524792d178b0913fc8eb94c628d6cfe45599ad4458c638c970 parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606 - parslet-toml-merge (7.1.0) plain-merge (7.1.0) pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570 prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 @@ -842,7 +668,6 @@ CHECKSUMS ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 ruby_engine (2.0.3) sha256=ca2ae7def8cfcdc2bfb6a186d36d5d59c8b403245dc0256c3802b767fa278aaa ruby_version (1.0.3) sha256=5930f9950746b7e6c973184398ee364ee7440b170fef7922b9f5cdf317f1ccb5 - rust-merge (7.1.0) service_actor (3.9.4) sha256=e63b523630b9a7e62959b2a90113b08d2565b5de9c148557b281ef847c9539ce silent_stream (1.0.12) sha256=377c43aa10033fe90c33b39ea8cd97d79f2d1c4856df598efc56f3091f3ae782 simplecov (1.0.2) sha256=c6459434efe4b948b46477cc2df2faa73ab365f83a33c7c17f81262f4f7f1244 @@ -865,14 +690,12 @@ CHECKSUMS timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542 timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9 token-resolver (2.0.5) sha256=b852f924287ffb58a440856e862b056c8ad97e74b4b2526cee43e0771f40c25c - toml (0.3.0) sha256=0a91d0f76a9036e84e44f95693b12f58d358c1df3ac8e3b5271f2056ecc6e4b9 toml-merge (7.1.0) toml-rb (4.2.0) sha256=10a48c91613e20cf63483a7a776767dfb3cd7d70e9327c0237443da601e13776 tree_haver (7.1.0) tree_sitter_language_pack (1.13.3-x86_64-linux) sha256=1ffd045bd236ea54f58c5872ee66121d01033359c1f28f375b7fd4a4b5620cf9 tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f turbo_tests2 (3.2.0) sha256=8b35421548399d1923567b177970f42671c65695b93cdd134d78fbcbab85dff0 - typescript-merge (7.1.0) unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f version_gem (1.1.14) sha256=6b7306c7e9416d06067561981ab3444e2cecb844f26cc325ae3c27b44cf85613 @@ -886,8 +709,7 @@ CHECKSUMS yard-timekeeper (0.2.4) sha256=62f8d001d737c6e2ac688e7b37386f958dceb0f6aff9c909575e1bec8d20775a yard-yaml (0.2.3) sha256=fe5fef18819e1cbd05bb8f1b9e1baad6bf70c28125eb75b57bbf6397b0831812 zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12 - zip-merge (7.1.0) zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH - 4.0.16 + 4.0.17 diff --git a/gems/smorg-rb/LICENSE.md b/gems/smorg-rb/LICENSE.md index 6ad318705..65a770d1f 100644 --- a/gems/smorg-rb/LICENSE.md +++ b/gems/smorg-rb/LICENSE.md @@ -3,8 +3,8 @@ This project is made available under the following licenses. Choose the option that best fits your use case: -- [AGPL-3.0-only](AGPL-3.0-only.md) -- [PolyForm-Small-Business-1.0.0](PolyForm-Small-Business-1.0.0.md) +- [AGPL-3.0-only](https://github.com/structuredmerge/structuredmerge-ruby/blob/main/AGPL-3.0-only.md) +- [PolyForm-Small-Business-1.0.0](https://github.com/structuredmerge/structuredmerge-ruby/blob/main/PolyForm-Small-Business-1.0.0.md) If none of the above licenses fit your use case, please [contact us](mailto:floss@galtzo.com) to discuss a custom commercial license. diff --git a/gems/smorg-rb/README.md b/gems/smorg-rb/README.md index 70b61eee7..952ff4992 100644 --- a/gems/smorg-rb/README.md +++ b/gems/smorg-rb/README.md @@ -36,7 +36,7 @@ I've summarized my thoughts in [this blog post](https://dev.to/galtzo/hostile-ta |-------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | Works with MRI Ruby 4 | [![Ruby current Compat][💎ruby-c-i]][🚎11-c-wf]| | Support & Community | [![Join Me on Daily.dev's RubyFriends][✉️ruby-friends-img]][✉️ruby-friends] [![Get help from RubyForum][✉️ruby-forum-img]][✉️ruby-forum] [![Live Chat on Discord][✉️discord-invite-img-ftb]][✉️discord-invite] [![Get help from me on Upwork][👨🏼‍🏫expsup-upwork-img]][👨🏼‍🏫expsup-upwork] [![Get help from me on Codementor][👨🏼‍🏫expsup-codementor-img]][👨🏼‍🏫expsup-codementor] | -| Source | [![Source on GitLab.com][📜src-gl-img]][📜src-gl] [![Source on CodeBerg.org][📜src-cb-img]][📜src-cb] [![Source on Github.com][📜src-gh-img]][📜src-gh] [![The best SHA: dQw4w9WgXcQ!][🧮kloc-img]][🧮kloc] | +| Source | [![Source on GitLab.com][📜src-gl-img]][📜src-gl] [![Source on CodeBerg.org][📜src-cb-img]][📜src-cb] [![Source on GitHub.com][📜src-gh-img]][📜src-gh] [![The best SHA: dQw4w9WgXcQ!][🧮kloc-img]][🧮kloc] | | Documentation | [![Current release on RubyDoc.info][📜docs-cr-rd-img]][🚎yard-current] [![YARD on Galtzo.com][📜docs-head-rd-img]][🚎yard-head] [![Maintainer Blog][🚂maint-blog-img]][🚂maint-blog] [![GitLab Wiki][📜gl-wiki-img]][📜gl-wiki] [![GitHub Wiki][📜gh-wiki-img]][📜gh-wiki] | | Compliance | [![License: AGPL-3.0-only OR PolyForm-Small-Business-1.0.0][📄license-img]][📄license] [![Apache license compatibility: Category X][📄license-compat-img]][📄license-compat] [![📄ilo-declaration-img]][📄ilo-declaration] [![Security Policy][🔐security-img]][🔐security] [![Contributor Covenant 2.1][🪇conduct-img]][🪇conduct] [![SemVer 2.0.0][📌semver-img]][📌semver] | | Style | [![Enforced Code Style Linter][💎rlts-img]][💎rlts] [![Keep-A-Changelog 1.0.0][📗keep-changelog-img]][📗keep-changelog] [![Gitmoji Commits][📌gitmoji-img]][📌gitmoji] [![Compatibility appraised by: appraisal2][💎appraisal2-img]][💎appraisal2] | @@ -143,7 +143,7 @@ See [CHANGELOG.md][📌changelog] for a list of releases. ## 📄 License -The gem is available under the following licenses: [AGPL-3.0-only](AGPL-3.0-only.md), [PolyForm-Small-Business-1.0.0](PolyForm-Small-Business-1.0.0.md). +The gem is available under the following licenses: [AGPL-3.0-only](https://github.com/structuredmerge/structuredmerge-ruby/blob/main/AGPL-3.0-only.md), [PolyForm-Small-Business-1.0.0](https://github.com/structuredmerge/structuredmerge-ruby/blob/main/PolyForm-Small-Business-1.0.0.md). See [LICENSE.md][📄license] for details. If none of the available licenses suit your use case, please [contact us](mailto:floss@galtzo.com) to discuss a custom commercial license. @@ -215,7 +215,7 @@ If none of the available licenses suit your use case, please [contact us](mailto [📜src-gl]: https://gitlab.com/structuredmerge/structuredmerge-ruby/-/tree/main/gems/smorg-rb [📜src-cb-img]: https://img.shields.io/badge/CodeBerg-4893CC?style=for-the-badge&logo=CodeBerg&logoColor=blue [📜src-cb]: https://codeberg.org/structuredmerge/structuredmerge-ruby/src/branch/main/gems/smorg-rb -[📜src-gh-img]: https://img.shields.io/badge/GitHub-238636?style=for-the-badge&logo=Github&logoColor=green +[📜src-gh-img]: https://img.shields.io/badge/GitHub-238636?style=for-the-badge&logo=GitHub&logoColor=green [📜src-gh]: https://github.com/structuredmerge/structuredmerge-ruby/tree/main/gems/smorg-rb [📜docs-cr-rd-img]: https://img.shields.io/badge/RubyDoc-Current_Release-943CD2?style=for-the-badge&logo=readthedocs&logoColor=white [📜docs-head-rd-img]: https://img.shields.io/badge/YARD_on_Galtzo.com-HEAD-943CD2?style=for-the-badge&logo=readthedocs&logoColor=white diff --git a/gems/smorg-rb/gemfiles/modular/coverage_local.gemfile b/gems/smorg-rb/gemfiles/modular/coverage_local.gemfile index aa0a26767..1bbb0becd 100644 --- a/gems/smorg-rb/gemfiles/modular/coverage_local.gemfile +++ b/gems/smorg-rb/gemfiles/modular/coverage_local.gemfile @@ -3,26 +3,6 @@ # Local path overrides for development. # Loaded by the associated non-local gemfile when KETTLE_DEV_DEV != "false". -# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. -# Bundler records that dependency during Gemfile evaluation, but it does not -# activate that exact version before the immediate `require "nomono/bundler"`. -# If multiple compatible nomono versions are installed, RubyGems may activate -# the newest installed version while Gemfile.lock pins an older compatible one; -# Bundler then aborts with "already activated nomono X, but your Gemfile -# requires nomono Y". Prefer the locked compatible version when present, then -# activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] -nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) -if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked -end -Kernel.send(:gem, 'nomono', *nomono_activation_requirements) require 'nomono/bundler' local_gems = %w[kettle-dev kettle-test kettle-soup-cover kettle-drift] diff --git a/gems/smorg-rb/gemfiles/modular/documentation_local.gemfile b/gems/smorg-rb/gemfiles/modular/documentation_local.gemfile index 57715a749..49fa853f1 100644 --- a/gems/smorg-rb/gemfiles/modular/documentation_local.gemfile +++ b/gems/smorg-rb/gemfiles/modular/documentation_local.gemfile @@ -3,26 +3,6 @@ # Local path overrides for development. # Loaded by the associated non-local gemfile when GALTZO_FLOSS_DEV != "false". -# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. -# Bundler records that dependency during Gemfile evaluation, but it does not -# activate that exact version before the immediate `require "nomono/bundler"`. -# If multiple compatible nomono versions are installed, RubyGems may activate -# the newest installed version while Gemfile.lock pins an older compatible one; -# Bundler then aborts with "already activated nomono X, but your Gemfile -# requires nomono Y". Prefer the locked compatible version when present, then -# activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] -nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) -if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked -end -Kernel.send(:gem, 'nomono', *nomono_activation_requirements) require 'nomono/bundler' local_gems = %w[yard-fence yard-timekeeper yard-yaml] diff --git a/gems/smorg-rb/gemfiles/modular/style_local.gemfile b/gems/smorg-rb/gemfiles/modular/style_local.gemfile index 1a7dc0401..b19e9124c 100644 --- a/gems/smorg-rb/gemfiles/modular/style_local.gemfile +++ b/gems/smorg-rb/gemfiles/modular/style_local.gemfile @@ -6,26 +6,6 @@ # Local path overrides for development. # Loaded by the associated non-local gemfile when RUBOCOP_LTS_LOCAL != "false". -# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. -# Bundler records that dependency during Gemfile evaluation, but it does not -# activate that exact version before the immediate `require "nomono/bundler"`. -# If multiple compatible nomono versions are installed, RubyGems may activate -# the newest installed version while Gemfile.lock pins an older compatible one; -# Bundler then aborts with "already activated nomono X, but your Gemfile -# requires nomono Y". Prefer the locked compatible version when present, then -# activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] -nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) -if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked -end -Kernel.send(:gem, 'nomono', *nomono_activation_requirements) require 'nomono/bundler' local_gems = %w[rubocop-lts rubocop-lts-rspec rubocop-ruby3_2 standard-rubocop-lts] diff --git a/gems/smorg-rb/gemfiles/modular/templating_local.gemfile b/gems/smorg-rb/gemfiles/modular/templating_local.gemfile index 93d40919f..0efc6fdd5 100644 --- a/gems/smorg-rb/gemfiles/modular/templating_local.gemfile +++ b/gems/smorg-rb/gemfiles/modular/templating_local.gemfile @@ -4,26 +4,6 @@ # Loaded by the associated non-local gemfile when STRUCTUREDMERGE_DEV or KETTLE_DEV_DEV # is not "false". -# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. -# Bundler records that dependency during Gemfile evaluation, but it does not -# activate that exact version before the immediate `require "nomono/bundler"`. -# If multiple compatible nomono versions are installed, RubyGems may activate -# the newest installed version while Gemfile.lock pins an older compatible one; -# Bundler then aborts with "already activated nomono X, but your Gemfile -# requires nomono Y". Prefer the locked compatible version when present, then -# activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] -nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) -if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked -end -Kernel.send(:gem, 'nomono', *nomono_activation_requirements) require 'nomono/bundler' structuredmerge_local_gems = %w[ diff --git a/gems/toml-merge/.kettle-drift.lock b/gems/toml-merge/.kettle-drift.lock deleted file mode 100644 index 7cc6a5131..000000000 --- a/gems/toml-merge/.kettle-drift.lock +++ /dev/null @@ -1,188 +0,0 @@ -{ - "(direct_sibling_local ||\nENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?)": [ - { - "file": "Gemfile", - "lines": [ - 80, - 120 - ] - } - ], - ".find { |spec| spec.name == 'nomono' }\nnomono_locked = nomono_locked_spec &&": [ - { - "file": "Gemfile", - "lines": [ - 91, - 131 - ] - } - ], - "ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?)\ndirect_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV')": [ - { - "file": "Gemfile", - "lines": [ - 81, - 121 - ] - } - ], - "Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version)\nnomono_activation_requirements = [\"= #{nomono_locked_spec.version}\"] if nomono_locked": [ - { - "file": "Gemfile", - "lines": [ - 93, - 133 - ] - } - ], - "Kernel.send(:gem, 'nomono', *nomono_activation_requirements)\nrequire 'nomono/bundler'": [ - { - "file": "Gemfile", - "lines": [ - 96, - 136 - ] - } - ], - "direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV')\ndirect_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil)": [ - { - "file": "Gemfile", - "lines": [ - 82, - 122 - ] - } - ], - "eval_nomono_gems(\ngems: direct_sibling_gems,": [ - { - "file": "Gemfile", - "lines": [ - 60, - 100, - 140 - ] - } - ], - "gems: direct_sibling_gems,\nprefix: 'STRUCTUREDMERGE',": [ - { - "file": "Gemfile", - "lines": [ - 101, - 141 - ] - } - ], - "if File.file?(nomono_lockfile)\nnomono_locked_spec = Bundler::LockfileParser": [ - { - "file": "Gemfile", - "lines": [ - 43, - 87, - 127 - ] - } - ], - "if direct_sibling_dev_was_set\nENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original": [ - { - "file": "Gemfile", - "lines": [ - 110, - 150 - ] - } - ], - "if direct_sibling_gems.any? &&\n(direct_sibling_local ||": [ - { - "file": "Gemfile", - "lines": [ - 35, - 79, - 119 - ] - } - ], - "if direct_sibling_templating && !direct_sibling_local\nif direct_sibling_dev_was_set": [ - { - "file": "Gemfile", - "lines": [ - 69, - 109, - 149 - ] - } - ], - "nomono_activation_requirements = nomono_requirements\nnomono_lockfile = File.expand_path('Gemfile.lock', __dir__)": [ - { - "file": "Gemfile", - "lines": [ - 85, - 125 - ] - } - ], - "nomono_locked = nomono_locked_spec &&\nGem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version)": [ - { - "file": "Gemfile", - "lines": [ - 48, - 92, - 132 - ] - } - ], - "nomono_locked_spec = Bundler::LockfileParser\n.new(Bundler.read_file(nomono_lockfile))": [ - { - "file": "Gemfile", - "lines": [ - 44, - 88, - 128 - ] - } - ], - "nomono_lockfile = File.expand_path('Gemfile.lock', __dir__)\nif File.file?(nomono_lockfile)": [ - { - "file": "Gemfile", - "lines": [ - 86, - 126 - ] - } - ], - "path_env: 'STRUCTUREDMERGE_DEV',\nroot: %w[src my structuredmerge]": [ - { - "file": "Gemfile", - "lines": [ - 103, - 143 - ] - } - ], - "prefix: 'STRUCTUREDMERGE',\npath_env: 'STRUCTUREDMERGE_DEV',": [ - { - "file": "Gemfile", - "lines": [ - 102, - 142 - ] - } - ], - "require 'nomono/bundler'\nENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local": [ - { - "file": "Gemfile", - "lines": [ - 97, - 137 - ] - } - ], - "rescue LoadError\nwarn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.'": [ - { - "file": "Gemfile", - "lines": [ - 106, - 146 - ] - } - ] -} diff --git a/gems/toml-merge/Gemfile b/gems/toml-merge/Gemfile index 0cf981cb0..dac692d58 100644 --- a/gems/toml-merge/Gemfile +++ b/gems/toml-merge/Gemfile @@ -37,100 +37,8 @@ if direct_sibling_gems.any? && ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) + require 'nomono/bundler' begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local eval_nomono_gems( @@ -139,8 +47,6 @@ if direct_sibling_gems.any? && path_env: 'STRUCTUREDMERGE_DEV', root: %w[src my structuredmerge] ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' ensure if direct_sibling_templating && !direct_sibling_local if direct_sibling_dev_was_set diff --git a/gems/toml-merge/Gemfile.lock b/gems/toml-merge/Gemfile.lock index 0c8c8c7aa..b85aab133 100644 --- a/gems/toml-merge/Gemfile.lock +++ b/gems/toml-merge/Gemfile.lock @@ -136,7 +136,7 @@ GEM racc (~> 1.4) nokogiri (1.19.4-x86_64-linux-musl) racc (~> 1.4) - nomono (1.0.9) + nomono (1.1.0) openssl (4.0.2) ostruct (0.6.3) parallel (1.28.0) @@ -452,6 +452,7 @@ CHECKSUMS backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd + bundler (4.0.17) sha256=214e21431b5665dd2f99df8a5511c6b151d7a72e8015c8b38f8b775b61cbb6c1 bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 @@ -478,9 +479,9 @@ CHECKSUMS io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 - kettle-dev (2.3.9) + kettle-dev (2.3.9) sha256=03b2f72c6dda4d2c4401ee3c0c96853116c922766e7b5b04224434a49b571bfc kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f - kettle-soup-cover (3.0.4) + kettle-soup-cover (3.0.4) sha256=36d4df472362d2020d16411d7ce26ba2fe2a41fb8be64577ff9b5280acf99d86 kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa @@ -494,7 +495,7 @@ CHECKSUMS nokogiri (1.19.4-arm64-darwin) sha256=a46db9853286e6597b36ebc6953817d15acf3a299583eb3f89fdc6f91dd63527 nokogiri (1.19.4-x86_64-linux-gnu) sha256=379fae440b28915e3f19d752ce2dcf8465ed2b2fbefd2a7ca0dd497bc981a06a nokogiri (1.19.4-x86_64-linux-musl) sha256=17dfb7c1fa194ae02fbf7c51a7afc8d278045ab3fdacfd86f91d02d7b274470b - nomono (1.0.9) + nomono (1.1.0) sha256=463dd4c79da02a855739a1b5483190d527b7868688be905e84abdb3449b32c88 openssl (4.0.2) sha256=1037ad2868ae58df9ad917891c0c0f9815a1172f6846d4bcdd508e4c2ee747c2 ostruct (0.6.3) sha256=95a2ed4a4bd1d190784e666b47b2d3f078e4a9efda2fccf18f84ddc6538ed912 parallel (1.28.0) sha256=33e6de1484baf2524792d178b0913fc8eb94c628d6cfe45599ad4458c638c970 @@ -589,4 +590,4 @@ CHECKSUMS zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH - 4.0.16 + 4.0.17 diff --git a/gems/toml-merge/LICENSE.md b/gems/toml-merge/LICENSE.md index 6ad318705..65a770d1f 100644 --- a/gems/toml-merge/LICENSE.md +++ b/gems/toml-merge/LICENSE.md @@ -3,8 +3,8 @@ This project is made available under the following licenses. Choose the option that best fits your use case: -- [AGPL-3.0-only](AGPL-3.0-only.md) -- [PolyForm-Small-Business-1.0.0](PolyForm-Small-Business-1.0.0.md) +- [AGPL-3.0-only](https://github.com/structuredmerge/structuredmerge-ruby/blob/main/AGPL-3.0-only.md) +- [PolyForm-Small-Business-1.0.0](https://github.com/structuredmerge/structuredmerge-ruby/blob/main/PolyForm-Small-Business-1.0.0.md) If none of the above licenses fit your use case, please [contact us](mailto:floss@galtzo.com) to discuss a custom commercial license. diff --git a/gems/toml-merge/README.md b/gems/toml-merge/README.md index fd85558ff..ef66d32a1 100644 --- a/gems/toml-merge/README.md +++ b/gems/toml-merge/README.md @@ -81,7 +81,7 @@ puts result.content if result.success? |-------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | Works with MRI Ruby 4 | [![Ruby current Compat][💎ruby-c-i]][🚎11-c-wf]| | Support & Community | [![Join Me on Daily.dev's RubyFriends][✉️ruby-friends-img]][✉️ruby-friends] [![Get help from RubyForum][✉️ruby-forum-img]][✉️ruby-forum] [![Live Chat on Discord][✉️discord-invite-img-ftb]][✉️discord-invite] [![Get help from me on Upwork][👨🏼‍🏫expsup-upwork-img]][👨🏼‍🏫expsup-upwork] [![Get help from me on Codementor][👨🏼‍🏫expsup-codementor-img]][👨🏼‍🏫expsup-codementor] | -| Source | [![Source on GitLab.com][📜src-gl-img]][📜src-gl] [![Source on CodeBerg.org][📜src-cb-img]][📜src-cb] [![Source on Github.com][📜src-gh-img]][📜src-gh] [![The best SHA: dQw4w9WgXcQ!][🧮kloc-img]][🧮kloc] | +| Source | [![Source on GitLab.com][📜src-gl-img]][📜src-gl] [![Source on CodeBerg.org][📜src-cb-img]][📜src-cb] [![Source on GitHub.com][📜src-gh-img]][📜src-gh] [![The best SHA: dQw4w9WgXcQ!][🧮kloc-img]][🧮kloc] | | Documentation | [![Current release on RubyDoc.info][📜docs-cr-rd-img]][🚎yard-current] [![YARD on Galtzo.com][📜docs-head-rd-img]][🚎yard-head] [![Maintainer Blog][🚂maint-blog-img]][🚂maint-blog] [![GitLab Wiki][📜gl-wiki-img]][📜gl-wiki] [![GitHub Wiki][📜gh-wiki-img]][📜gh-wiki] | | Compliance | [![License: AGPL-3.0-only OR PolyForm-Small-Business-1.0.0][📄license-img]][📄license] [![Apache license compatibility: Category X][📄license-compat-img]][📄license-compat] [![📄ilo-declaration-img]][📄ilo-declaration] [![Security Policy][🔐security-img]][🔐security] [![Contributor Covenant 2.1][🪇conduct-img]][🪇conduct] [![SemVer 2.0.0][📌semver-img]][📌semver] | | Style | [![Enforced Code Style Linter][💎rlts-img]][💎rlts] [![Keep-A-Changelog 1.0.0][📗keep-changelog-img]][📗keep-changelog] [![Gitmoji Commits][📌gitmoji-img]][📌gitmoji] [![Compatibility appraised by: appraisal2][💎appraisal2-img]][💎appraisal2] | @@ -213,7 +213,7 @@ See [CHANGELOG.md][📌changelog] for a list of releases. ## 📄 License -The gem is available under the following licenses: [AGPL-3.0-only](AGPL-3.0-only.md), [PolyForm-Small-Business-1.0.0](PolyForm-Small-Business-1.0.0.md). +The gem is available under the following licenses: [AGPL-3.0-only](https://github.com/structuredmerge/structuredmerge-ruby/blob/main/AGPL-3.0-only.md), [PolyForm-Small-Business-1.0.0](https://github.com/structuredmerge/structuredmerge-ruby/blob/main/PolyForm-Small-Business-1.0.0.md). See [LICENSE.md][📄license] for details. If none of the available licenses suit your use case, please [contact us](mailto:floss@galtzo.com) to discuss a custom commercial license. @@ -285,7 +285,7 @@ If none of the available licenses suit your use case, please [contact us](mailto [📜src-gl]: https://gitlab.com/structuredmerge/structuredmerge-ruby/-/tree/main/gems/toml-merge [📜src-cb-img]: https://img.shields.io/badge/CodeBerg-4893CC?style=for-the-badge&logo=CodeBerg&logoColor=blue [📜src-cb]: https://codeberg.org/structuredmerge/structuredmerge-ruby/src/branch/main/gems/toml-merge -[📜src-gh-img]: https://img.shields.io/badge/GitHub-238636?style=for-the-badge&logo=Github&logoColor=green +[📜src-gh-img]: https://img.shields.io/badge/GitHub-238636?style=for-the-badge&logo=GitHub&logoColor=green [📜src-gh]: https://github.com/structuredmerge/structuredmerge-ruby/tree/main/gems/toml-merge [📜docs-cr-rd-img]: https://img.shields.io/badge/RubyDoc-Current_Release-943CD2?style=for-the-badge&logo=readthedocs&logoColor=white [📜docs-head-rd-img]: https://img.shields.io/badge/YARD_on_Galtzo.com-HEAD-943CD2?style=for-the-badge&logo=readthedocs&logoColor=white diff --git a/gems/toml-merge/gemfiles/modular/coverage_local.gemfile b/gems/toml-merge/gemfiles/modular/coverage_local.gemfile index b0d68d3fe..6dd6d3a84 100644 --- a/gems/toml-merge/gemfiles/modular/coverage_local.gemfile +++ b/gems/toml-merge/gemfiles/modular/coverage_local.gemfile @@ -3,26 +3,6 @@ # Local path overrides for development. # Loaded by the associated non-local gemfile when KETTLE_DEV_DEV != "false". -# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. -# Bundler records that dependency during Gemfile evaluation, but it does not -# activate that exact version before the immediate `require "nomono/bundler"`. -# If multiple compatible nomono versions are installed, RubyGems may activate -# the newest installed version while Gemfile.lock pins an older compatible one; -# Bundler then aborts with "already activated nomono X, but your Gemfile -# requires nomono Y". Prefer the locked compatible version when present, then -# activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] -nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) -if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked -end -Kernel.send(:gem, 'nomono', *nomono_activation_requirements) require 'nomono/bundler' local_gems = %w[kettle-dev kettle-test kettle-soup-cover kettle-drift] diff --git a/gems/toml-merge/gemfiles/modular/documentation_local.gemfile b/gems/toml-merge/gemfiles/modular/documentation_local.gemfile index cd296b896..2007c29cd 100644 --- a/gems/toml-merge/gemfiles/modular/documentation_local.gemfile +++ b/gems/toml-merge/gemfiles/modular/documentation_local.gemfile @@ -3,26 +3,6 @@ # Local path overrides for development. # Loaded by the associated non-local gemfile when GALTZO_FLOSS_DEV != "false". -# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. -# Bundler records that dependency during Gemfile evaluation, but it does not -# activate that exact version before the immediate `require "nomono/bundler"`. -# If multiple compatible nomono versions are installed, RubyGems may activate -# the newest installed version while Gemfile.lock pins an older compatible one; -# Bundler then aborts with "already activated nomono X, but your Gemfile -# requires nomono Y". Prefer the locked compatible version when present, then -# activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] -nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) -if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked -end -Kernel.send(:gem, 'nomono', *nomono_activation_requirements) require 'nomono/bundler' local_gems = %w[yard-fence yard-timekeeper yard-yaml] diff --git a/gems/toml-merge/gemfiles/modular/style_local.gemfile b/gems/toml-merge/gemfiles/modular/style_local.gemfile index 45432d3e9..db508a95e 100644 --- a/gems/toml-merge/gemfiles/modular/style_local.gemfile +++ b/gems/toml-merge/gemfiles/modular/style_local.gemfile @@ -6,26 +6,6 @@ # Local path overrides for development. # Loaded by the associated non-local gemfile when RUBOCOP_LTS_LOCAL != "false". -# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. -# Bundler records that dependency during Gemfile evaluation, but it does not -# activate that exact version before the immediate `require "nomono/bundler"`. -# If multiple compatible nomono versions are installed, RubyGems may activate -# the newest installed version while Gemfile.lock pins an older compatible one; -# Bundler then aborts with "already activated nomono X, but your Gemfile -# requires nomono Y". Prefer the locked compatible version when present, then -# activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] -nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) -if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked -end -Kernel.send(:gem, 'nomono', *nomono_activation_requirements) require 'nomono/bundler' local_gems = %w[rubocop-lts rubocop-lts-rspec rubocop-ruby3_2 standard-rubocop-lts] diff --git a/gems/toml-merge/gemfiles/modular/templating_local.gemfile b/gems/toml-merge/gemfiles/modular/templating_local.gemfile index bdbb4cf69..2f9791716 100644 --- a/gems/toml-merge/gemfiles/modular/templating_local.gemfile +++ b/gems/toml-merge/gemfiles/modular/templating_local.gemfile @@ -4,26 +4,6 @@ # Loaded by the associated non-local gemfile when STRUCTUREDMERGE_DEV or KETTLE_DEV_DEV # is not "false". -# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. -# Bundler records that dependency during Gemfile evaluation, but it does not -# activate that exact version before the immediate `require "nomono/bundler"`. -# If multiple compatible nomono versions are installed, RubyGems may activate -# the newest installed version while Gemfile.lock pins an older compatible one; -# Bundler then aborts with "already activated nomono X, but your Gemfile -# requires nomono Y". Prefer the locked compatible version when present, then -# activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] -nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) -if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked -end -Kernel.send(:gem, 'nomono', *nomono_activation_requirements) require 'nomono/bundler' structuredmerge_local_gems = %w[ diff --git a/gems/tree_haver/Gemfile.lock b/gems/tree_haver/Gemfile.lock index 3952ff183..ef92c116c 100644 --- a/gems/tree_haver/Gemfile.lock +++ b/gems/tree_haver/Gemfile.lock @@ -126,7 +126,7 @@ GEM racc (~> 1.4) nokogiri (1.19.4-x86_64-linux-musl) racc (~> 1.4) - nomono (1.0.9) + nomono (1.1.0) openssl (4.0.2) ostruct (0.6.3) parallel (1.28.0) @@ -431,6 +431,7 @@ CHECKSUMS backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd + bundler (4.0.16) sha256=d6ca5dd440c24f9abce9844cf44cc8e18c6a553de65a47efb4544137af92c47d bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 @@ -457,9 +458,9 @@ CHECKSUMS io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 - kettle-dev (2.3.9) + kettle-dev (2.3.9) sha256=03b2f72c6dda4d2c4401ee3c0c96853116c922766e7b5b04224434a49b571bfc kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f - kettle-soup-cover (3.0.4) + kettle-soup-cover (3.0.4) sha256=36d4df472362d2020d16411d7ce26ba2fe2a41fb8be64577ff9b5280acf99d86 kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa @@ -470,7 +471,7 @@ CHECKSUMS mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 nokogiri (1.19.4-x86_64-linux-gnu) sha256=379fae440b28915e3f19d752ce2dcf8465ed2b2fbefd2a7ca0dd497bc981a06a nokogiri (1.19.4-x86_64-linux-musl) sha256=17dfb7c1fa194ae02fbf7c51a7afc8d278045ab3fdacfd86f91d02d7b274470b - nomono (1.0.9) + nomono (1.1.0) sha256=463dd4c79da02a855739a1b5483190d527b7868688be905e84abdb3449b32c88 openssl (4.0.2) sha256=1037ad2868ae58df9ad917891c0c0f9815a1172f6846d4bcdd508e4c2ee747c2 ostruct (0.6.3) sha256=95a2ed4a4bd1d190784e666b47b2d3f078e4a9efda2fccf18f84ddc6538ed912 parallel (1.28.0) sha256=33e6de1484baf2524792d178b0913fc8eb94c628d6cfe45599ad4458c638c970 diff --git a/gems/tree_haver/gemfiles/modular/coverage_local.gemfile b/gems/tree_haver/gemfiles/modular/coverage_local.gemfile index 3376090fa..ebdef83f3 100644 --- a/gems/tree_haver/gemfiles/modular/coverage_local.gemfile +++ b/gems/tree_haver/gemfiles/modular/coverage_local.gemfile @@ -3,27 +3,7 @@ # Local path overrides for development. # Loaded by the associated non-local gemfile when KETTLE_DEV_DEV != "false". -# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. -# Bundler records that dependency during Gemfile evaluation, but it does not -# activate that exact version before the immediate `require "nomono/bundler"`. -# If multiple compatible nomono versions are installed, RubyGems may activate -# the newest installed version while Gemfile.lock pins an older compatible one; -# Bundler then aborts with "already activated nomono X, but your Gemfile -# requires nomono Y". Prefer the locked compatible version when present, then -# activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] -nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) -if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked -end -Kernel.send(:gem, 'nomono', *nomono_activation_requirements) -require 'nomono/bundler' +require "nomono/bundler" local_gems = %w[kettle-dev kettle-test kettle-soup-cover kettle-drift] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) diff --git a/gems/tree_haver/gemfiles/modular/documentation_local.gemfile b/gems/tree_haver/gemfiles/modular/documentation_local.gemfile index 3ee48f71b..6c8df9c33 100644 --- a/gems/tree_haver/gemfiles/modular/documentation_local.gemfile +++ b/gems/tree_haver/gemfiles/modular/documentation_local.gemfile @@ -3,27 +3,7 @@ # Local path overrides for development. # Loaded by the associated non-local gemfile when GALTZO_FLOSS_DEV != "false". -# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. -# Bundler records that dependency during Gemfile evaluation, but it does not -# activate that exact version before the immediate `require "nomono/bundler"`. -# If multiple compatible nomono versions are installed, RubyGems may activate -# the newest installed version while Gemfile.lock pins an older compatible one; -# Bundler then aborts with "already activated nomono X, but your Gemfile -# requires nomono Y". Prefer the locked compatible version when present, then -# activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] -nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) -if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked -end -Kernel.send(:gem, 'nomono', *nomono_activation_requirements) -require 'nomono/bundler' +require "nomono/bundler" local_gems = %w[yard-fence yard-timekeeper yard-yaml] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) diff --git a/gems/tree_haver/gemfiles/modular/style_local.gemfile b/gems/tree_haver/gemfiles/modular/style_local.gemfile index 32c84bfeb..f9440389d 100644 --- a/gems/tree_haver/gemfiles/modular/style_local.gemfile +++ b/gems/tree_haver/gemfiles/modular/style_local.gemfile @@ -6,27 +6,7 @@ # Local path overrides for development. # Loaded by the associated non-local gemfile when RUBOCOP_LTS_LOCAL != "false". -# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. -# Bundler records that dependency during Gemfile evaluation, but it does not -# activate that exact version before the immediate `require "nomono/bundler"`. -# If multiple compatible nomono versions are installed, RubyGems may activate -# the newest installed version while Gemfile.lock pins an older compatible one; -# Bundler then aborts with "already activated nomono X, but your Gemfile -# requires nomono Y". Prefer the locked compatible version when present, then -# activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] -nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) -if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked -end -Kernel.send(:gem, 'nomono', *nomono_activation_requirements) -require 'nomono/bundler' +require "nomono/bundler" local_gems = %w[rubocop-lts rubocop-lts-rspec rubocop-ruby3_2 standard-rubocop-lts] declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name) diff --git a/gems/tree_haver/gemfiles/modular/templating_local.gemfile b/gems/tree_haver/gemfiles/modular/templating_local.gemfile index 1cde6cbee..7c5af1c7a 100644 --- a/gems/tree_haver/gemfiles/modular/templating_local.gemfile +++ b/gems/tree_haver/gemfiles/modular/templating_local.gemfile @@ -4,27 +4,7 @@ # Loaded by the associated non-local gemfile when STRUCTUREDMERGE_DEV or KETTLE_DEV_DEV # is not "false". -# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. -# Bundler records that dependency during Gemfile evaluation, but it does not -# activate that exact version before the immediate `require "nomono/bundler"`. -# If multiple compatible nomono versions are installed, RubyGems may activate -# the newest installed version while Gemfile.lock pins an older compatible one; -# Bundler then aborts with "already activated nomono X, but your Gemfile -# requires nomono Y". Prefer the locked compatible version when present, then -# activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] -nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) -if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked -end -Kernel.send(:gem, 'nomono', *nomono_activation_requirements) -require 'nomono/bundler' +require "nomono/bundler" structuredmerge_local_gems = %w[ tree_haver diff --git a/gems/typescript-merge/.kettle-drift.lock b/gems/typescript-merge/.kettle-drift.lock deleted file mode 100644 index 7cc6a5131..000000000 --- a/gems/typescript-merge/.kettle-drift.lock +++ /dev/null @@ -1,188 +0,0 @@ -{ - "(direct_sibling_local ||\nENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?)": [ - { - "file": "Gemfile", - "lines": [ - 80, - 120 - ] - } - ], - ".find { |spec| spec.name == 'nomono' }\nnomono_locked = nomono_locked_spec &&": [ - { - "file": "Gemfile", - "lines": [ - 91, - 131 - ] - } - ], - "ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?)\ndirect_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV')": [ - { - "file": "Gemfile", - "lines": [ - 81, - 121 - ] - } - ], - "Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version)\nnomono_activation_requirements = [\"= #{nomono_locked_spec.version}\"] if nomono_locked": [ - { - "file": "Gemfile", - "lines": [ - 93, - 133 - ] - } - ], - "Kernel.send(:gem, 'nomono', *nomono_activation_requirements)\nrequire 'nomono/bundler'": [ - { - "file": "Gemfile", - "lines": [ - 96, - 136 - ] - } - ], - "direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV')\ndirect_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil)": [ - { - "file": "Gemfile", - "lines": [ - 82, - 122 - ] - } - ], - "eval_nomono_gems(\ngems: direct_sibling_gems,": [ - { - "file": "Gemfile", - "lines": [ - 60, - 100, - 140 - ] - } - ], - "gems: direct_sibling_gems,\nprefix: 'STRUCTUREDMERGE',": [ - { - "file": "Gemfile", - "lines": [ - 101, - 141 - ] - } - ], - "if File.file?(nomono_lockfile)\nnomono_locked_spec = Bundler::LockfileParser": [ - { - "file": "Gemfile", - "lines": [ - 43, - 87, - 127 - ] - } - ], - "if direct_sibling_dev_was_set\nENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original": [ - { - "file": "Gemfile", - "lines": [ - 110, - 150 - ] - } - ], - "if direct_sibling_gems.any? &&\n(direct_sibling_local ||": [ - { - "file": "Gemfile", - "lines": [ - 35, - 79, - 119 - ] - } - ], - "if direct_sibling_templating && !direct_sibling_local\nif direct_sibling_dev_was_set": [ - { - "file": "Gemfile", - "lines": [ - 69, - 109, - 149 - ] - } - ], - "nomono_activation_requirements = nomono_requirements\nnomono_lockfile = File.expand_path('Gemfile.lock', __dir__)": [ - { - "file": "Gemfile", - "lines": [ - 85, - 125 - ] - } - ], - "nomono_locked = nomono_locked_spec &&\nGem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version)": [ - { - "file": "Gemfile", - "lines": [ - 48, - 92, - 132 - ] - } - ], - "nomono_locked_spec = Bundler::LockfileParser\n.new(Bundler.read_file(nomono_lockfile))": [ - { - "file": "Gemfile", - "lines": [ - 44, - 88, - 128 - ] - } - ], - "nomono_lockfile = File.expand_path('Gemfile.lock', __dir__)\nif File.file?(nomono_lockfile)": [ - { - "file": "Gemfile", - "lines": [ - 86, - 126 - ] - } - ], - "path_env: 'STRUCTUREDMERGE_DEV',\nroot: %w[src my structuredmerge]": [ - { - "file": "Gemfile", - "lines": [ - 103, - 143 - ] - } - ], - "prefix: 'STRUCTUREDMERGE',\npath_env: 'STRUCTUREDMERGE_DEV',": [ - { - "file": "Gemfile", - "lines": [ - 102, - 142 - ] - } - ], - "require 'nomono/bundler'\nENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local": [ - { - "file": "Gemfile", - "lines": [ - 97, - 137 - ] - } - ], - "rescue LoadError\nwarn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.'": [ - { - "file": "Gemfile", - "lines": [ - 106, - 146 - ] - } - ] -} diff --git a/gems/typescript-merge/Gemfile b/gems/typescript-merge/Gemfile index fd28c21ab..7f6ead4e6 100644 --- a/gems/typescript-merge/Gemfile +++ b/gems/typescript-merge/Gemfile @@ -37,100 +37,8 @@ if direct_sibling_gems.any? && ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) + require 'nomono/bundler' begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local eval_nomono_gems( @@ -139,8 +47,6 @@ if direct_sibling_gems.any? && path_env: 'STRUCTUREDMERGE_DEV', root: %w[src my structuredmerge] ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' ensure if direct_sibling_templating && !direct_sibling_local if direct_sibling_dev_was_set diff --git a/gems/typescript-merge/Gemfile.lock b/gems/typescript-merge/Gemfile.lock index 2bc443858..a02917f70 100644 --- a/gems/typescript-merge/Gemfile.lock +++ b/gems/typescript-merge/Gemfile.lock @@ -136,7 +136,7 @@ GEM racc (~> 1.4) nokogiri (1.19.4-x86_64-linux-musl) racc (~> 1.4) - nomono (1.0.9) + nomono (1.1.0) openssl (4.0.2) ostruct (0.6.3) parallel (1.28.0) @@ -452,6 +452,7 @@ CHECKSUMS backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd + bundler (4.0.17) sha256=214e21431b5665dd2f99df8a5511c6b151d7a72e8015c8b38f8b775b61cbb6c1 bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 @@ -478,9 +479,9 @@ CHECKSUMS io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 - kettle-dev (2.3.9) + kettle-dev (2.3.9) sha256=03b2f72c6dda4d2c4401ee3c0c96853116c922766e7b5b04224434a49b571bfc kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f - kettle-soup-cover (3.0.4) + kettle-soup-cover (3.0.4) sha256=36d4df472362d2020d16411d7ce26ba2fe2a41fb8be64577ff9b5280acf99d86 kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa @@ -494,7 +495,7 @@ CHECKSUMS nokogiri (1.19.4-arm64-darwin) sha256=a46db9853286e6597b36ebc6953817d15acf3a299583eb3f89fdc6f91dd63527 nokogiri (1.19.4-x86_64-linux-gnu) sha256=379fae440b28915e3f19d752ce2dcf8465ed2b2fbefd2a7ca0dd497bc981a06a nokogiri (1.19.4-x86_64-linux-musl) sha256=17dfb7c1fa194ae02fbf7c51a7afc8d278045ab3fdacfd86f91d02d7b274470b - nomono (1.0.9) + nomono (1.1.0) sha256=463dd4c79da02a855739a1b5483190d527b7868688be905e84abdb3449b32c88 openssl (4.0.2) sha256=1037ad2868ae58df9ad917891c0c0f9815a1172f6846d4bcdd508e4c2ee747c2 ostruct (0.6.3) sha256=95a2ed4a4bd1d190784e666b47b2d3f078e4a9efda2fccf18f84ddc6538ed912 parallel (1.28.0) sha256=33e6de1484baf2524792d178b0913fc8eb94c628d6cfe45599ad4458c638c970 @@ -589,4 +590,4 @@ CHECKSUMS zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH - 4.0.16 + 4.0.17 diff --git a/gems/typescript-merge/LICENSE.md b/gems/typescript-merge/LICENSE.md index 6ad318705..65a770d1f 100644 --- a/gems/typescript-merge/LICENSE.md +++ b/gems/typescript-merge/LICENSE.md @@ -3,8 +3,8 @@ This project is made available under the following licenses. Choose the option that best fits your use case: -- [AGPL-3.0-only](AGPL-3.0-only.md) -- [PolyForm-Small-Business-1.0.0](PolyForm-Small-Business-1.0.0.md) +- [AGPL-3.0-only](https://github.com/structuredmerge/structuredmerge-ruby/blob/main/AGPL-3.0-only.md) +- [PolyForm-Small-Business-1.0.0](https://github.com/structuredmerge/structuredmerge-ruby/blob/main/PolyForm-Small-Business-1.0.0.md) If none of the above licenses fit your use case, please [contact us](mailto:floss@galtzo.com) to discuss a custom commercial license. diff --git a/gems/typescript-merge/README.md b/gems/typescript-merge/README.md index 6c0815603..7d6922514 100644 --- a/gems/typescript-merge/README.md +++ b/gems/typescript-merge/README.md @@ -36,7 +36,7 @@ I've summarized my thoughts in [this blog post](https://dev.to/galtzo/hostile-ta |-------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | Works with MRI Ruby 4 | [![Ruby current Compat][💎ruby-c-i]][🚎11-c-wf]| | Support & Community | [![Join Me on Daily.dev's RubyFriends][✉️ruby-friends-img]][✉️ruby-friends] [![Get help from RubyForum][✉️ruby-forum-img]][✉️ruby-forum] [![Live Chat on Discord][✉️discord-invite-img-ftb]][✉️discord-invite] [![Get help from me on Upwork][👨🏼‍🏫expsup-upwork-img]][👨🏼‍🏫expsup-upwork] [![Get help from me on Codementor][👨🏼‍🏫expsup-codementor-img]][👨🏼‍🏫expsup-codementor] | -| Source | [![Source on GitLab.com][📜src-gl-img]][📜src-gl] [![Source on CodeBerg.org][📜src-cb-img]][📜src-cb] [![Source on Github.com][📜src-gh-img]][📜src-gh] [![The best SHA: dQw4w9WgXcQ!][🧮kloc-img]][🧮kloc] | +| Source | [![Source on GitLab.com][📜src-gl-img]][📜src-gl] [![Source on CodeBerg.org][📜src-cb-img]][📜src-cb] [![Source on GitHub.com][📜src-gh-img]][📜src-gh] [![The best SHA: dQw4w9WgXcQ!][🧮kloc-img]][🧮kloc] | | Documentation | [![Current release on RubyDoc.info][📜docs-cr-rd-img]][🚎yard-current] [![YARD on Galtzo.com][📜docs-head-rd-img]][🚎yard-head] [![Maintainer Blog][🚂maint-blog-img]][🚂maint-blog] [![GitLab Wiki][📜gl-wiki-img]][📜gl-wiki] [![GitHub Wiki][📜gh-wiki-img]][📜gh-wiki] | | Compliance | [![License: AGPL-3.0-only OR PolyForm-Small-Business-1.0.0][📄license-img]][📄license] [![Apache license compatibility: Category X][📄license-compat-img]][📄license-compat] [![📄ilo-declaration-img]][📄ilo-declaration] [![Security Policy][🔐security-img]][🔐security] [![Contributor Covenant 2.1][🪇conduct-img]][🪇conduct] [![SemVer 2.0.0][📌semver-img]][📌semver] | | Style | [![Enforced Code Style Linter][💎rlts-img]][💎rlts] [![Keep-A-Changelog 1.0.0][📗keep-changelog-img]][📗keep-changelog] [![Gitmoji Commits][📌gitmoji-img]][📌gitmoji] [![Compatibility appraised by: appraisal2][💎appraisal2-img]][💎appraisal2] | @@ -154,7 +154,7 @@ See [CHANGELOG.md][📌changelog] for a list of releases. ## 📄 License -The gem is available under the following licenses: [AGPL-3.0-only](AGPL-3.0-only.md), [PolyForm-Small-Business-1.0.0](PolyForm-Small-Business-1.0.0.md). +The gem is available under the following licenses: [AGPL-3.0-only](https://github.com/structuredmerge/structuredmerge-ruby/blob/main/AGPL-3.0-only.md), [PolyForm-Small-Business-1.0.0](https://github.com/structuredmerge/structuredmerge-ruby/blob/main/PolyForm-Small-Business-1.0.0.md). See [LICENSE.md][📄license] for details. If none of the available licenses suit your use case, please [contact us](mailto:floss@galtzo.com) to discuss a custom commercial license. @@ -226,7 +226,7 @@ If none of the available licenses suit your use case, please [contact us](mailto [📜src-gl]: https://gitlab.com/structuredmerge/structuredmerge-ruby/-/tree/main/gems/typescript-merge [📜src-cb-img]: https://img.shields.io/badge/CodeBerg-4893CC?style=for-the-badge&logo=CodeBerg&logoColor=blue [📜src-cb]: https://codeberg.org/structuredmerge/structuredmerge-ruby/src/branch/main/gems/typescript-merge -[📜src-gh-img]: https://img.shields.io/badge/GitHub-238636?style=for-the-badge&logo=Github&logoColor=green +[📜src-gh-img]: https://img.shields.io/badge/GitHub-238636?style=for-the-badge&logo=GitHub&logoColor=green [📜src-gh]: https://github.com/structuredmerge/structuredmerge-ruby/tree/main/gems/typescript-merge [📜docs-cr-rd-img]: https://img.shields.io/badge/RubyDoc-Current_Release-943CD2?style=for-the-badge&logo=readthedocs&logoColor=white [📜docs-head-rd-img]: https://img.shields.io/badge/YARD_on_Galtzo.com-HEAD-943CD2?style=for-the-badge&logo=readthedocs&logoColor=white diff --git a/gems/typescript-merge/gemfiles/modular/coverage_local.gemfile b/gems/typescript-merge/gemfiles/modular/coverage_local.gemfile index 50e15445a..8769591c8 100644 --- a/gems/typescript-merge/gemfiles/modular/coverage_local.gemfile +++ b/gems/typescript-merge/gemfiles/modular/coverage_local.gemfile @@ -3,26 +3,6 @@ # Local path overrides for development. # Loaded by the associated non-local gemfile when KETTLE_DEV_DEV != "false". -# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. -# Bundler records that dependency during Gemfile evaluation, but it does not -# activate that exact version before the immediate `require "nomono/bundler"`. -# If multiple compatible nomono versions are installed, RubyGems may activate -# the newest installed version while Gemfile.lock pins an older compatible one; -# Bundler then aborts with "already activated nomono X, but your Gemfile -# requires nomono Y". Prefer the locked compatible version when present, then -# activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] -nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) -if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked -end -Kernel.send(:gem, 'nomono', *nomono_activation_requirements) require 'nomono/bundler' local_gems = %w[kettle-dev kettle-test kettle-soup-cover kettle-drift] diff --git a/gems/typescript-merge/gemfiles/modular/documentation_local.gemfile b/gems/typescript-merge/gemfiles/modular/documentation_local.gemfile index 040d0ef3a..8a2b6562b 100644 --- a/gems/typescript-merge/gemfiles/modular/documentation_local.gemfile +++ b/gems/typescript-merge/gemfiles/modular/documentation_local.gemfile @@ -3,26 +3,6 @@ # Local path overrides for development. # Loaded by the associated non-local gemfile when GALTZO_FLOSS_DEV != "false". -# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. -# Bundler records that dependency during Gemfile evaluation, but it does not -# activate that exact version before the immediate `require "nomono/bundler"`. -# If multiple compatible nomono versions are installed, RubyGems may activate -# the newest installed version while Gemfile.lock pins an older compatible one; -# Bundler then aborts with "already activated nomono X, but your Gemfile -# requires nomono Y". Prefer the locked compatible version when present, then -# activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] -nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) -if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked -end -Kernel.send(:gem, 'nomono', *nomono_activation_requirements) require 'nomono/bundler' local_gems = %w[yard-fence yard-timekeeper yard-yaml] diff --git a/gems/typescript-merge/gemfiles/modular/style_local.gemfile b/gems/typescript-merge/gemfiles/modular/style_local.gemfile index 207bbb175..a68813e8b 100644 --- a/gems/typescript-merge/gemfiles/modular/style_local.gemfile +++ b/gems/typescript-merge/gemfiles/modular/style_local.gemfile @@ -6,26 +6,6 @@ # Local path overrides for development. # Loaded by the associated non-local gemfile when RUBOCOP_LTS_LOCAL != "false". -# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. -# Bundler records that dependency during Gemfile evaluation, but it does not -# activate that exact version before the immediate `require "nomono/bundler"`. -# If multiple compatible nomono versions are installed, RubyGems may activate -# the newest installed version while Gemfile.lock pins an older compatible one; -# Bundler then aborts with "already activated nomono X, but your Gemfile -# requires nomono Y". Prefer the locked compatible version when present, then -# activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] -nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) -if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked -end -Kernel.send(:gem, 'nomono', *nomono_activation_requirements) require 'nomono/bundler' local_gems = %w[rubocop-lts rubocop-lts-rspec rubocop-ruby3_2 standard-rubocop-lts] diff --git a/gems/typescript-merge/gemfiles/modular/templating_local.gemfile b/gems/typescript-merge/gemfiles/modular/templating_local.gemfile index 997ea7d01..726fb2bcf 100644 --- a/gems/typescript-merge/gemfiles/modular/templating_local.gemfile +++ b/gems/typescript-merge/gemfiles/modular/templating_local.gemfile @@ -4,26 +4,6 @@ # Loaded by the associated non-local gemfile when STRUCTUREDMERGE_DEV or KETTLE_DEV_DEV # is not "false". -# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. -# Bundler records that dependency during Gemfile evaluation, but it does not -# activate that exact version before the immediate `require "nomono/bundler"`. -# If multiple compatible nomono versions are installed, RubyGems may activate -# the newest installed version while Gemfile.lock pins an older compatible one; -# Bundler then aborts with "already activated nomono X, but your Gemfile -# requires nomono Y". Prefer the locked compatible version when present, then -# activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] -nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) -if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked -end -Kernel.send(:gem, 'nomono', *nomono_activation_requirements) require 'nomono/bundler' structuredmerge_local_gems = %w[ diff --git a/gems/yaml-merge/.kettle-drift.lock b/gems/yaml-merge/.kettle-drift.lock deleted file mode 100644 index 7cc6a5131..000000000 --- a/gems/yaml-merge/.kettle-drift.lock +++ /dev/null @@ -1,188 +0,0 @@ -{ - "(direct_sibling_local ||\nENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?)": [ - { - "file": "Gemfile", - "lines": [ - 80, - 120 - ] - } - ], - ".find { |spec| spec.name == 'nomono' }\nnomono_locked = nomono_locked_spec &&": [ - { - "file": "Gemfile", - "lines": [ - 91, - 131 - ] - } - ], - "ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?)\ndirect_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV')": [ - { - "file": "Gemfile", - "lines": [ - 81, - 121 - ] - } - ], - "Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version)\nnomono_activation_requirements = [\"= #{nomono_locked_spec.version}\"] if nomono_locked": [ - { - "file": "Gemfile", - "lines": [ - 93, - 133 - ] - } - ], - "Kernel.send(:gem, 'nomono', *nomono_activation_requirements)\nrequire 'nomono/bundler'": [ - { - "file": "Gemfile", - "lines": [ - 96, - 136 - ] - } - ], - "direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV')\ndirect_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil)": [ - { - "file": "Gemfile", - "lines": [ - 82, - 122 - ] - } - ], - "eval_nomono_gems(\ngems: direct_sibling_gems,": [ - { - "file": "Gemfile", - "lines": [ - 60, - 100, - 140 - ] - } - ], - "gems: direct_sibling_gems,\nprefix: 'STRUCTUREDMERGE',": [ - { - "file": "Gemfile", - "lines": [ - 101, - 141 - ] - } - ], - "if File.file?(nomono_lockfile)\nnomono_locked_spec = Bundler::LockfileParser": [ - { - "file": "Gemfile", - "lines": [ - 43, - 87, - 127 - ] - } - ], - "if direct_sibling_dev_was_set\nENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original": [ - { - "file": "Gemfile", - "lines": [ - 110, - 150 - ] - } - ], - "if direct_sibling_gems.any? &&\n(direct_sibling_local ||": [ - { - "file": "Gemfile", - "lines": [ - 35, - 79, - 119 - ] - } - ], - "if direct_sibling_templating && !direct_sibling_local\nif direct_sibling_dev_was_set": [ - { - "file": "Gemfile", - "lines": [ - 69, - 109, - 149 - ] - } - ], - "nomono_activation_requirements = nomono_requirements\nnomono_lockfile = File.expand_path('Gemfile.lock', __dir__)": [ - { - "file": "Gemfile", - "lines": [ - 85, - 125 - ] - } - ], - "nomono_locked = nomono_locked_spec &&\nGem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version)": [ - { - "file": "Gemfile", - "lines": [ - 48, - 92, - 132 - ] - } - ], - "nomono_locked_spec = Bundler::LockfileParser\n.new(Bundler.read_file(nomono_lockfile))": [ - { - "file": "Gemfile", - "lines": [ - 44, - 88, - 128 - ] - } - ], - "nomono_lockfile = File.expand_path('Gemfile.lock', __dir__)\nif File.file?(nomono_lockfile)": [ - { - "file": "Gemfile", - "lines": [ - 86, - 126 - ] - } - ], - "path_env: 'STRUCTUREDMERGE_DEV',\nroot: %w[src my structuredmerge]": [ - { - "file": "Gemfile", - "lines": [ - 103, - 143 - ] - } - ], - "prefix: 'STRUCTUREDMERGE',\npath_env: 'STRUCTUREDMERGE_DEV',": [ - { - "file": "Gemfile", - "lines": [ - 102, - 142 - ] - } - ], - "require 'nomono/bundler'\nENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local": [ - { - "file": "Gemfile", - "lines": [ - 97, - 137 - ] - } - ], - "rescue LoadError\nwarn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.'": [ - { - "file": "Gemfile", - "lines": [ - 106, - 146 - ] - } - ] -} diff --git a/gems/yaml-merge/Gemfile b/gems/yaml-merge/Gemfile index 458a37282..3a935d7af 100644 --- a/gems/yaml-merge/Gemfile +++ b/gems/yaml-merge/Gemfile @@ -37,100 +37,8 @@ if direct_sibling_gems.any? && ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) + require 'nomono/bundler' begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local eval_nomono_gems( @@ -139,8 +47,6 @@ if direct_sibling_gems.any? && path_env: 'STRUCTUREDMERGE_DEV', root: %w[src my structuredmerge] ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' ensure if direct_sibling_templating && !direct_sibling_local if direct_sibling_dev_was_set diff --git a/gems/yaml-merge/Gemfile.lock b/gems/yaml-merge/Gemfile.lock index 59934efe3..e9331263d 100644 --- a/gems/yaml-merge/Gemfile.lock +++ b/gems/yaml-merge/Gemfile.lock @@ -136,7 +136,7 @@ GEM racc (~> 1.4) nokogiri (1.19.4-x86_64-linux-musl) racc (~> 1.4) - nomono (1.0.9) + nomono (1.1.0) openssl (4.0.2) ostruct (0.6.3) parallel (1.28.0) @@ -452,6 +452,7 @@ CHECKSUMS backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd + bundler (4.0.17) sha256=214e21431b5665dd2f99df8a5511c6b151d7a72e8015c8b38f8b775b61cbb6c1 bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 @@ -478,9 +479,9 @@ CHECKSUMS io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 - kettle-dev (2.3.9) + kettle-dev (2.3.9) sha256=03b2f72c6dda4d2c4401ee3c0c96853116c922766e7b5b04224434a49b571bfc kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f - kettle-soup-cover (3.0.4) + kettle-soup-cover (3.0.4) sha256=36d4df472362d2020d16411d7ce26ba2fe2a41fb8be64577ff9b5280acf99d86 kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa @@ -494,7 +495,7 @@ CHECKSUMS nokogiri (1.19.4-arm64-darwin) sha256=a46db9853286e6597b36ebc6953817d15acf3a299583eb3f89fdc6f91dd63527 nokogiri (1.19.4-x86_64-linux-gnu) sha256=379fae440b28915e3f19d752ce2dcf8465ed2b2fbefd2a7ca0dd497bc981a06a nokogiri (1.19.4-x86_64-linux-musl) sha256=17dfb7c1fa194ae02fbf7c51a7afc8d278045ab3fdacfd86f91d02d7b274470b - nomono (1.0.9) + nomono (1.1.0) sha256=463dd4c79da02a855739a1b5483190d527b7868688be905e84abdb3449b32c88 openssl (4.0.2) sha256=1037ad2868ae58df9ad917891c0c0f9815a1172f6846d4bcdd508e4c2ee747c2 ostruct (0.6.3) sha256=95a2ed4a4bd1d190784e666b47b2d3f078e4a9efda2fccf18f84ddc6538ed912 parallel (1.28.0) sha256=33e6de1484baf2524792d178b0913fc8eb94c628d6cfe45599ad4458c638c970 @@ -589,4 +590,4 @@ CHECKSUMS zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH - 4.0.16 + 4.0.17 diff --git a/gems/yaml-merge/LICENSE.md b/gems/yaml-merge/LICENSE.md index 6ad318705..65a770d1f 100644 --- a/gems/yaml-merge/LICENSE.md +++ b/gems/yaml-merge/LICENSE.md @@ -3,8 +3,8 @@ This project is made available under the following licenses. Choose the option that best fits your use case: -- [AGPL-3.0-only](AGPL-3.0-only.md) -- [PolyForm-Small-Business-1.0.0](PolyForm-Small-Business-1.0.0.md) +- [AGPL-3.0-only](https://github.com/structuredmerge/structuredmerge-ruby/blob/main/AGPL-3.0-only.md) +- [PolyForm-Small-Business-1.0.0](https://github.com/structuredmerge/structuredmerge-ruby/blob/main/PolyForm-Small-Business-1.0.0.md) If none of the above licenses fit your use case, please [contact us](mailto:floss@galtzo.com) to discuss a custom commercial license. diff --git a/gems/yaml-merge/README.md b/gems/yaml-merge/README.md index ba32b75e3..56783666b 100644 --- a/gems/yaml-merge/README.md +++ b/gems/yaml-merge/README.md @@ -37,7 +37,7 @@ I've summarized my thoughts in [this blog post](https://dev.to/galtzo/hostile-ta |-------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | Works with MRI Ruby 4 | [![Ruby current Compat][💎ruby-c-i]][🚎11-c-wf]| | Support & Community | [![Join Me on Daily.dev's RubyFriends][✉️ruby-friends-img]][✉️ruby-friends] [![Get help from RubyForum][✉️ruby-forum-img]][✉️ruby-forum] [![Live Chat on Discord][✉️discord-invite-img-ftb]][✉️discord-invite] [![Get help from me on Upwork][👨🏼‍🏫expsup-upwork-img]][👨🏼‍🏫expsup-upwork] [![Get help from me on Codementor][👨🏼‍🏫expsup-codementor-img]][👨🏼‍🏫expsup-codementor] | -| Source | [![Source on GitLab.com][📜src-gl-img]][📜src-gl] [![Source on CodeBerg.org][📜src-cb-img]][📜src-cb] [![Source on Github.com][📜src-gh-img]][📜src-gh] [![The best SHA: dQw4w9WgXcQ!][🧮kloc-img]][🧮kloc] | +| Source | [![Source on GitLab.com][📜src-gl-img]][📜src-gl] [![Source on CodeBerg.org][📜src-cb-img]][📜src-cb] [![Source on GitHub.com][📜src-gh-img]][📜src-gh] [![The best SHA: dQw4w9WgXcQ!][🧮kloc-img]][🧮kloc] | | Documentation | [![Current release on RubyDoc.info][📜docs-cr-rd-img]][🚎yard-current] [![YARD on Galtzo.com][📜docs-head-rd-img]][🚎yard-head] [![Maintainer Blog][🚂maint-blog-img]][🚂maint-blog] [![GitLab Wiki][📜gl-wiki-img]][📜gl-wiki] [![GitHub Wiki][📜gh-wiki-img]][📜gh-wiki] | | Compliance | [![License: AGPL-3.0-only OR PolyForm-Small-Business-1.0.0][📄license-img]][📄license] [![Apache license compatibility: Category X][📄license-compat-img]][📄license-compat] [![📄ilo-declaration-img]][📄ilo-declaration] [![Security Policy][🔐security-img]][🔐security] [![Contributor Covenant 2.1][🪇conduct-img]][🪇conduct] [![SemVer 2.0.0][📌semver-img]][📌semver] | | Style | [![Enforced Code Style Linter][💎rlts-img]][💎rlts] [![Keep-A-Changelog 1.0.0][📗keep-changelog-img]][📗keep-changelog] [![Gitmoji Commits][📌gitmoji-img]][📌gitmoji] [![Compatibility appraised by: appraisal2][💎appraisal2-img]][💎appraisal2] | @@ -156,7 +156,7 @@ See [CHANGELOG.md][📌changelog] for a list of releases. ## 📄 License -The gem is available under the following licenses: [AGPL-3.0-only](AGPL-3.0-only.md), [PolyForm-Small-Business-1.0.0](PolyForm-Small-Business-1.0.0.md). +The gem is available under the following licenses: [AGPL-3.0-only](https://github.com/structuredmerge/structuredmerge-ruby/blob/main/AGPL-3.0-only.md), [PolyForm-Small-Business-1.0.0](https://github.com/structuredmerge/structuredmerge-ruby/blob/main/PolyForm-Small-Business-1.0.0.md). See [LICENSE.md][📄license] for details. If none of the available licenses suit your use case, please [contact us](mailto:floss@galtzo.com) to discuss a custom commercial license. @@ -228,7 +228,7 @@ If none of the available licenses suit your use case, please [contact us](mailto [📜src-gl]: https://gitlab.com/structuredmerge/structuredmerge-ruby/-/tree/main/gems/yaml-merge [📜src-cb-img]: https://img.shields.io/badge/CodeBerg-4893CC?style=for-the-badge&logo=CodeBerg&logoColor=blue [📜src-cb]: https://codeberg.org/structuredmerge/structuredmerge-ruby/src/branch/main/gems/yaml-merge -[📜src-gh-img]: https://img.shields.io/badge/GitHub-238636?style=for-the-badge&logo=Github&logoColor=green +[📜src-gh-img]: https://img.shields.io/badge/GitHub-238636?style=for-the-badge&logo=GitHub&logoColor=green [📜src-gh]: https://github.com/structuredmerge/structuredmerge-ruby/tree/main/gems/yaml-merge [📜docs-cr-rd-img]: https://img.shields.io/badge/RubyDoc-Current_Release-943CD2?style=for-the-badge&logo=readthedocs&logoColor=white [📜docs-head-rd-img]: https://img.shields.io/badge/YARD_on_Galtzo.com-HEAD-943CD2?style=for-the-badge&logo=readthedocs&logoColor=white diff --git a/gems/yaml-merge/gemfiles/modular/coverage_local.gemfile b/gems/yaml-merge/gemfiles/modular/coverage_local.gemfile index 3a33c2f15..ac0e27552 100644 --- a/gems/yaml-merge/gemfiles/modular/coverage_local.gemfile +++ b/gems/yaml-merge/gemfiles/modular/coverage_local.gemfile @@ -3,26 +3,6 @@ # Local path overrides for development. # Loaded by the associated non-local gemfile when KETTLE_DEV_DEV != "false". -# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. -# Bundler records that dependency during Gemfile evaluation, but it does not -# activate that exact version before the immediate `require "nomono/bundler"`. -# If multiple compatible nomono versions are installed, RubyGems may activate -# the newest installed version while Gemfile.lock pins an older compatible one; -# Bundler then aborts with "already activated nomono X, but your Gemfile -# requires nomono Y". Prefer the locked compatible version when present, then -# activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] -nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) -if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked -end -Kernel.send(:gem, 'nomono', *nomono_activation_requirements) require 'nomono/bundler' local_gems = %w[kettle-dev kettle-test kettle-soup-cover kettle-drift] diff --git a/gems/yaml-merge/gemfiles/modular/documentation_local.gemfile b/gems/yaml-merge/gemfiles/modular/documentation_local.gemfile index 20503a7f8..0d19bbeed 100644 --- a/gems/yaml-merge/gemfiles/modular/documentation_local.gemfile +++ b/gems/yaml-merge/gemfiles/modular/documentation_local.gemfile @@ -3,26 +3,6 @@ # Local path overrides for development. # Loaded by the associated non-local gemfile when GALTZO_FLOSS_DEV != "false". -# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. -# Bundler records that dependency during Gemfile evaluation, but it does not -# activate that exact version before the immediate `require "nomono/bundler"`. -# If multiple compatible nomono versions are installed, RubyGems may activate -# the newest installed version while Gemfile.lock pins an older compatible one; -# Bundler then aborts with "already activated nomono X, but your Gemfile -# requires nomono Y". Prefer the locked compatible version when present, then -# activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] -nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) -if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked -end -Kernel.send(:gem, 'nomono', *nomono_activation_requirements) require 'nomono/bundler' local_gems = %w[yard-fence yard-timekeeper yard-yaml] diff --git a/gems/yaml-merge/gemfiles/modular/style_local.gemfile b/gems/yaml-merge/gemfiles/modular/style_local.gemfile index 516eb058b..a18c2189c 100644 --- a/gems/yaml-merge/gemfiles/modular/style_local.gemfile +++ b/gems/yaml-merge/gemfiles/modular/style_local.gemfile @@ -6,26 +6,6 @@ # Local path overrides for development. # Loaded by the associated non-local gemfile when RUBOCOP_LTS_LOCAL != "false". -# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. -# Bundler records that dependency during Gemfile evaluation, but it does not -# activate that exact version before the immediate `require "nomono/bundler"`. -# If multiple compatible nomono versions are installed, RubyGems may activate -# the newest installed version while Gemfile.lock pins an older compatible one; -# Bundler then aborts with "already activated nomono X, but your Gemfile -# requires nomono Y". Prefer the locked compatible version when present, then -# activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] -nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) -if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked -end -Kernel.send(:gem, 'nomono', *nomono_activation_requirements) require 'nomono/bundler' local_gems = %w[rubocop-lts rubocop-lts-rspec rubocop-ruby3_2 standard-rubocop-lts] diff --git a/gems/yaml-merge/gemfiles/modular/templating_local.gemfile b/gems/yaml-merge/gemfiles/modular/templating_local.gemfile index 0503994a0..db84d21c9 100644 --- a/gems/yaml-merge/gemfiles/modular/templating_local.gemfile +++ b/gems/yaml-merge/gemfiles/modular/templating_local.gemfile @@ -4,26 +4,6 @@ # Loaded by the associated non-local gemfile when STRUCTUREDMERGE_DEV or KETTLE_DEV_DEV # is not "false". -# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. -# Bundler records that dependency during Gemfile evaluation, but it does not -# activate that exact version before the immediate `require "nomono/bundler"`. -# If multiple compatible nomono versions are installed, RubyGems may activate -# the newest installed version while Gemfile.lock pins an older compatible one; -# Bundler then aborts with "already activated nomono X, but your Gemfile -# requires nomono Y". Prefer the locked compatible version when present, then -# activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] -nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) -if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked -end -Kernel.send(:gem, 'nomono', *nomono_activation_requirements) require 'nomono/bundler' structuredmerge_local_gems = %w[ diff --git a/gems/zip-merge/.kettle-drift.lock b/gems/zip-merge/.kettle-drift.lock deleted file mode 100644 index 9a486b4b3..000000000 --- a/gems/zip-merge/.kettle-drift.lock +++ /dev/null @@ -1,188 +0,0 @@ -{ - "(direct_sibling_local ||\nENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?)": [ - { - "file": "Gemfile", - "lines": [ - 79, - 119 - ] - } - ], - ".find { |spec| spec.name == 'nomono' }\nnomono_locked = nomono_locked_spec &&": [ - { - "file": "Gemfile", - "lines": [ - 90, - 130 - ] - } - ], - "ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?)\ndirect_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV')": [ - { - "file": "Gemfile", - "lines": [ - 80, - 120 - ] - } - ], - "Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version)\nnomono_activation_requirements = [\"= #{nomono_locked_spec.version}\"] if nomono_locked": [ - { - "file": "Gemfile", - "lines": [ - 92, - 132 - ] - } - ], - "Kernel.send(:gem, 'nomono', *nomono_activation_requirements)\nrequire 'nomono/bundler'": [ - { - "file": "Gemfile", - "lines": [ - 95, - 135 - ] - } - ], - "direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV')\ndirect_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil)": [ - { - "file": "Gemfile", - "lines": [ - 81, - 121 - ] - } - ], - "eval_nomono_gems(\ngems: direct_sibling_gems,": [ - { - "file": "Gemfile", - "lines": [ - 59, - 99, - 139 - ] - } - ], - "gems: direct_sibling_gems,\nprefix: 'STRUCTUREDMERGE',": [ - { - "file": "Gemfile", - "lines": [ - 100, - 140 - ] - } - ], - "if File.file?(nomono_lockfile)\nnomono_locked_spec = Bundler::LockfileParser": [ - { - "file": "Gemfile", - "lines": [ - 42, - 86, - 126 - ] - } - ], - "if direct_sibling_dev_was_set\nENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original": [ - { - "file": "Gemfile", - "lines": [ - 109, - 149 - ] - } - ], - "if direct_sibling_gems.any? &&\n(direct_sibling_local ||": [ - { - "file": "Gemfile", - "lines": [ - 34, - 78, - 118 - ] - } - ], - "if direct_sibling_templating && !direct_sibling_local\nif direct_sibling_dev_was_set": [ - { - "file": "Gemfile", - "lines": [ - 68, - 108, - 148 - ] - } - ], - "nomono_activation_requirements = nomono_requirements\nnomono_lockfile = File.expand_path('Gemfile.lock', __dir__)": [ - { - "file": "Gemfile", - "lines": [ - 84, - 124 - ] - } - ], - "nomono_locked = nomono_locked_spec &&\nGem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version)": [ - { - "file": "Gemfile", - "lines": [ - 47, - 91, - 131 - ] - } - ], - "nomono_locked_spec = Bundler::LockfileParser\n.new(Bundler.read_file(nomono_lockfile))": [ - { - "file": "Gemfile", - "lines": [ - 43, - 87, - 127 - ] - } - ], - "nomono_lockfile = File.expand_path('Gemfile.lock', __dir__)\nif File.file?(nomono_lockfile)": [ - { - "file": "Gemfile", - "lines": [ - 85, - 125 - ] - } - ], - "path_env: 'STRUCTUREDMERGE_DEV',\nroot: %w[src my structuredmerge]": [ - { - "file": "Gemfile", - "lines": [ - 102, - 142 - ] - } - ], - "prefix: 'STRUCTUREDMERGE',\npath_env: 'STRUCTUREDMERGE_DEV',": [ - { - "file": "Gemfile", - "lines": [ - 101, - 141 - ] - } - ], - "require 'nomono/bundler'\nENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local": [ - { - "file": "Gemfile", - "lines": [ - 96, - 136 - ] - } - ], - "rescue LoadError\nwarn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.'": [ - { - "file": "Gemfile", - "lines": [ - 105, - 145 - ] - } - ] -} diff --git a/gems/zip-merge/Gemfile b/gems/zip-merge/Gemfile index 84a2f5edd..a751603ee 100644 --- a/gems/zip-merge/Gemfile +++ b/gems/zip-merge/Gemfile @@ -36,100 +36,8 @@ if direct_sibling_gems.any? && ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) + require 'nomono/bundler' begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' - ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local - - eval_nomono_gems( - gems: direct_sibling_gems, - prefix: 'STRUCTUREDMERGE', - path_env: 'STRUCTUREDMERGE_DEV', - root: %w[src my structuredmerge] - ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' - ensure - if direct_sibling_templating && !direct_sibling_local - if direct_sibling_dev_was_set - ENV['STRUCTUREDMERGE_DEV'] = direct_sibling_dev_original - else - ENV.delete('STRUCTUREDMERGE_DEV') - end - end - end -end - -if direct_sibling_gems.any? && - (direct_sibling_local || - ENV.fetch('K_JEM_TEMPLATING', 'false').casecmp('true').zero?) - direct_sibling_dev_was_set = ENV.key?('STRUCTUREDMERGE_DEV') - direct_sibling_dev_original = ENV.fetch('STRUCTUREDMERGE_DEV', nil) - begin - nomono_activation_requirements = nomono_requirements - nomono_lockfile = File.expand_path('Gemfile.lock', __dir__) - if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked - end - Kernel.send(:gem, 'nomono', *nomono_activation_requirements) - require 'nomono/bundler' ENV['STRUCTUREDMERGE_DEV'] = File.expand_path('..', __dir__) if direct_sibling_templating && !direct_sibling_local eval_nomono_gems( @@ -138,8 +46,6 @@ if direct_sibling_gems.any? && path_env: 'STRUCTUREDMERGE_DEV', root: %w[src my structuredmerge] ) - rescue LoadError - warn 'Install nomono to enable STRUCTUREDMERGE_DEV local sibling-gem dependencies.' ensure if direct_sibling_templating && !direct_sibling_local if direct_sibling_dev_was_set diff --git a/gems/zip-merge/Gemfile.lock b/gems/zip-merge/Gemfile.lock index f8ce27787..251a62dd7 100644 --- a/gems/zip-merge/Gemfile.lock +++ b/gems/zip-merge/Gemfile.lock @@ -130,7 +130,7 @@ GEM racc (~> 1.4) nokogiri (1.19.4-x86_64-linux-musl) racc (~> 1.4) - nomono (1.0.9) + nomono (1.1.0) openssl (4.0.2) ostruct (0.6.3) parallel (1.28.0) @@ -442,6 +442,7 @@ CHECKSUMS backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235 benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd + bundler (4.0.17) sha256=214e21431b5665dd2f99df8a5511c6b151d7a72e8015c8b38f8b775b61cbb6c1 bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9 cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650 @@ -468,9 +469,9 @@ CHECKSUMS io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 - kettle-dev (2.3.9) + kettle-dev (2.3.9) sha256=03b2f72c6dda4d2c4401ee3c0c96853116c922766e7b5b04224434a49b571bfc kettle-rb (0.1.5) sha256=0322a569860c86e70f90d5ebe72353b8720b7054c7efa9f9044857f5c972d29f - kettle-soup-cover (3.0.4) + kettle-soup-cover (3.0.4) sha256=36d4df472362d2020d16411d7ce26ba2fe2a41fb8be64577ff9b5280acf99d86 kettle-test (2.0.12) sha256=3a8e5c5f38db03a6f0a8896da6f3576d24e36f53796578c19aafaa2ba5a8ea52 kettle-wash (0.1.1) sha256=ae2e08b64c72c46ceed5ffa197ed859e85352f38ed0412fca2e18ce29b2dc4f9 kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa @@ -484,7 +485,7 @@ CHECKSUMS nokogiri (1.19.4-arm64-darwin) sha256=a46db9853286e6597b36ebc6953817d15acf3a299583eb3f89fdc6f91dd63527 nokogiri (1.19.4-x86_64-linux-gnu) sha256=379fae440b28915e3f19d752ce2dcf8465ed2b2fbefd2a7ca0dd497bc981a06a nokogiri (1.19.4-x86_64-linux-musl) sha256=17dfb7c1fa194ae02fbf7c51a7afc8d278045ab3fdacfd86f91d02d7b274470b - nomono (1.0.9) + nomono (1.1.0) sha256=463dd4c79da02a855739a1b5483190d527b7868688be905e84abdb3449b32c88 openssl (4.0.2) sha256=1037ad2868ae58df9ad917891c0c0f9815a1172f6846d4bcdd508e4c2ee747c2 ostruct (0.6.3) sha256=95a2ed4a4bd1d190784e666b47b2d3f078e4a9efda2fccf18f84ddc6538ed912 parallel (1.28.0) sha256=33e6de1484baf2524792d178b0913fc8eb94c628d6cfe45599ad4458c638c970 @@ -578,4 +579,4 @@ CHECKSUMS zlib (3.2.3) sha256=5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20 BUNDLED WITH - 4.0.16 + 4.0.17 diff --git a/gems/zip-merge/LICENSE.md b/gems/zip-merge/LICENSE.md index 6ad318705..65a770d1f 100644 --- a/gems/zip-merge/LICENSE.md +++ b/gems/zip-merge/LICENSE.md @@ -3,8 +3,8 @@ This project is made available under the following licenses. Choose the option that best fits your use case: -- [AGPL-3.0-only](AGPL-3.0-only.md) -- [PolyForm-Small-Business-1.0.0](PolyForm-Small-Business-1.0.0.md) +- [AGPL-3.0-only](https://github.com/structuredmerge/structuredmerge-ruby/blob/main/AGPL-3.0-only.md) +- [PolyForm-Small-Business-1.0.0](https://github.com/structuredmerge/structuredmerge-ruby/blob/main/PolyForm-Small-Business-1.0.0.md) If none of the above licenses fit your use case, please [contact us](mailto:floss@galtzo.com) to discuss a custom commercial license. diff --git a/gems/zip-merge/README.md b/gems/zip-merge/README.md index 9ad34ea2d..eb6d6de8d 100644 --- a/gems/zip-merge/README.md +++ b/gems/zip-merge/README.md @@ -37,7 +37,7 @@ I've summarized my thoughts in [this blog post](https://dev.to/galtzo/hostile-ta |-------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | Works with MRI Ruby 4 | [![Ruby current Compat][💎ruby-c-i]][🚎11-c-wf]| | Support & Community | [![Join Me on Daily.dev's RubyFriends][✉️ruby-friends-img]][✉️ruby-friends] [![Get help from RubyForum][✉️ruby-forum-img]][✉️ruby-forum] [![Live Chat on Discord][✉️discord-invite-img-ftb]][✉️discord-invite] [![Get help from me on Upwork][👨🏼‍🏫expsup-upwork-img]][👨🏼‍🏫expsup-upwork] [![Get help from me on Codementor][👨🏼‍🏫expsup-codementor-img]][👨🏼‍🏫expsup-codementor] | -| Source | [![Source on GitLab.com][📜src-gl-img]][📜src-gl] [![Source on CodeBerg.org][📜src-cb-img]][📜src-cb] [![Source on Github.com][📜src-gh-img]][📜src-gh] [![The best SHA: dQw4w9WgXcQ!][🧮kloc-img]][🧮kloc] | +| Source | [![Source on GitLab.com][📜src-gl-img]][📜src-gl] [![Source on CodeBerg.org][📜src-cb-img]][📜src-cb] [![Source on GitHub.com][📜src-gh-img]][📜src-gh] [![The best SHA: dQw4w9WgXcQ!][🧮kloc-img]][🧮kloc] | | Documentation | [![Current release on RubyDoc.info][📜docs-cr-rd-img]][🚎yard-current] [![YARD on Galtzo.com][📜docs-head-rd-img]][🚎yard-head] [![Maintainer Blog][🚂maint-blog-img]][🚂maint-blog] [![GitLab Wiki][📜gl-wiki-img]][📜gl-wiki] [![GitHub Wiki][📜gh-wiki-img]][📜gh-wiki] | | Compliance | [![License: AGPL-3.0-only OR PolyForm-Small-Business-1.0.0][📄license-img]][📄license] [![Apache license compatibility: Category X][📄license-compat-img]][📄license-compat] [![📄ilo-declaration-img]][📄ilo-declaration] [![Security Policy][🔐security-img]][🔐security] [![Contributor Covenant 2.1][🪇conduct-img]][🪇conduct] [![SemVer 2.0.0][📌semver-img]][📌semver] | | Style | [![Enforced Code Style Linter][💎rlts-img]][💎rlts] [![Keep-A-Changelog 1.0.0][📗keep-changelog-img]][📗keep-changelog] [![Gitmoji Commits][📌gitmoji-img]][📌gitmoji] [![Compatibility appraised by: appraisal2][💎appraisal2-img]][💎appraisal2] | @@ -156,7 +156,7 @@ See [CHANGELOG.md][📌changelog] for a list of releases. ## 📄 License -The gem is available under the following licenses: [AGPL-3.0-only](AGPL-3.0-only.md), [PolyForm-Small-Business-1.0.0](PolyForm-Small-Business-1.0.0.md). +The gem is available under the following licenses: [AGPL-3.0-only](https://github.com/structuredmerge/structuredmerge-ruby/blob/main/AGPL-3.0-only.md), [PolyForm-Small-Business-1.0.0](https://github.com/structuredmerge/structuredmerge-ruby/blob/main/PolyForm-Small-Business-1.0.0.md). See [LICENSE.md][📄license] for details. If none of the available licenses suit your use case, please [contact us](mailto:floss@galtzo.com) to discuss a custom commercial license. @@ -228,7 +228,7 @@ If none of the available licenses suit your use case, please [contact us](mailto [📜src-gl]: https://gitlab.com/structuredmerge/structuredmerge-ruby/-/tree/main/gems/zip-merge [📜src-cb-img]: https://img.shields.io/badge/CodeBerg-4893CC?style=for-the-badge&logo=CodeBerg&logoColor=blue [📜src-cb]: https://codeberg.org/structuredmerge/structuredmerge-ruby/src/branch/main/gems/zip-merge -[📜src-gh-img]: https://img.shields.io/badge/GitHub-238636?style=for-the-badge&logo=Github&logoColor=green +[📜src-gh-img]: https://img.shields.io/badge/GitHub-238636?style=for-the-badge&logo=GitHub&logoColor=green [📜src-gh]: https://github.com/structuredmerge/structuredmerge-ruby/tree/main/gems/zip-merge [📜docs-cr-rd-img]: https://img.shields.io/badge/RubyDoc-Current_Release-943CD2?style=for-the-badge&logo=readthedocs&logoColor=white [📜docs-head-rd-img]: https://img.shields.io/badge/YARD_on_Galtzo.com-HEAD-943CD2?style=for-the-badge&logo=readthedocs&logoColor=white diff --git a/gems/zip-merge/gemfiles/modular/coverage_local.gemfile b/gems/zip-merge/gemfiles/modular/coverage_local.gemfile index 42da84fab..18fac5672 100644 --- a/gems/zip-merge/gemfiles/modular/coverage_local.gemfile +++ b/gems/zip-merge/gemfiles/modular/coverage_local.gemfile @@ -3,26 +3,6 @@ # Local path overrides for development. # Loaded by the associated non-local gemfile when KETTLE_DEV_DEV != "false". -# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. -# Bundler records that dependency during Gemfile evaluation, but it does not -# activate that exact version before the immediate `require "nomono/bundler"`. -# If multiple compatible nomono versions are installed, RubyGems may activate -# the newest installed version while Gemfile.lock pins an older compatible one; -# Bundler then aborts with "already activated nomono X, but your Gemfile -# requires nomono Y". Prefer the locked compatible version when present, then -# activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] -nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) -if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked -end -Kernel.send(:gem, 'nomono', *nomono_activation_requirements) require 'nomono/bundler' local_gems = %w[kettle-dev kettle-test kettle-soup-cover kettle-drift] diff --git a/gems/zip-merge/gemfiles/modular/documentation_local.gemfile b/gems/zip-merge/gemfiles/modular/documentation_local.gemfile index 770f4274e..8a3b26765 100644 --- a/gems/zip-merge/gemfiles/modular/documentation_local.gemfile +++ b/gems/zip-merge/gemfiles/modular/documentation_local.gemfile @@ -3,26 +3,6 @@ # Local path overrides for development. # Loaded by the associated non-local gemfile when GALTZO_FLOSS_DEV != "false". -# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. -# Bundler records that dependency during Gemfile evaluation, but it does not -# activate that exact version before the immediate `require "nomono/bundler"`. -# If multiple compatible nomono versions are installed, RubyGems may activate -# the newest installed version while Gemfile.lock pins an older compatible one; -# Bundler then aborts with "already activated nomono X, but your Gemfile -# requires nomono Y". Prefer the locked compatible version when present, then -# activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] -nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) -if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked -end -Kernel.send(:gem, 'nomono', *nomono_activation_requirements) require 'nomono/bundler' local_gems = %w[yard-fence yard-timekeeper yard-yaml] diff --git a/gems/zip-merge/gemfiles/modular/style_local.gemfile b/gems/zip-merge/gemfiles/modular/style_local.gemfile index b034ea58a..a362bea92 100644 --- a/gems/zip-merge/gemfiles/modular/style_local.gemfile +++ b/gems/zip-merge/gemfiles/modular/style_local.gemfile @@ -6,26 +6,6 @@ # Local path overrides for development. # Loaded by the associated non-local gemfile when RUBOCOP_LTS_LOCAL != "false". -# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. -# Bundler records that dependency during Gemfile evaluation, but it does not -# activate that exact version before the immediate `require "nomono/bundler"`. -# If multiple compatible nomono versions are installed, RubyGems may activate -# the newest installed version while Gemfile.lock pins an older compatible one; -# Bundler then aborts with "already activated nomono X, but your Gemfile -# requires nomono Y". Prefer the locked compatible version when present, then -# activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] -nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) -if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked -end -Kernel.send(:gem, 'nomono', *nomono_activation_requirements) require 'nomono/bundler' local_gems = %w[rubocop-lts rubocop-lts-rspec rubocop-ruby3_2 standard-rubocop-lts] diff --git a/gems/zip-merge/gemfiles/modular/templating_local.gemfile b/gems/zip-merge/gemfiles/modular/templating_local.gemfile index 8dbb2f55f..d4bec6f35 100644 --- a/gems/zip-merge/gemfiles/modular/templating_local.gemfile +++ b/gems/zip-merge/gemfiles/modular/templating_local.gemfile @@ -4,26 +4,6 @@ # Loaded by the associated non-local gemfile when STRUCTUREDMERGE_DEV or KETTLE_DEV_DEV # is not "false". -# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line. -# Bundler records that dependency during Gemfile evaluation, but it does not -# activate that exact version before the immediate `require "nomono/bundler"`. -# If multiple compatible nomono versions are installed, RubyGems may activate -# the newest installed version while Gemfile.lock pins an older compatible one; -# Bundler then aborts with "already activated nomono X, but your Gemfile -# requires nomono Y". Prefer the locked compatible version when present, then -# activate it explicitly before requiring the Bundler DSL extension used below. -nomono_activation_requirements = ['~> 1.0', '>= 1.0.8'] -nomono_lockfile = File.expand_path('../../Gemfile.lock', __dir__) -if File.file?(nomono_lockfile) - nomono_locked_spec = Bundler::LockfileParser - .new(Bundler.read_file(nomono_lockfile)) - .specs - .find { |spec| spec.name == 'nomono' } - nomono_locked = nomono_locked_spec && - Gem::Requirement.new(nomono_activation_requirements).satisfied_by?(nomono_locked_spec.version) - nomono_activation_requirements = ["= #{nomono_locked_spec.version}"] if nomono_locked -end -Kernel.send(:gem, 'nomono', *nomono_activation_requirements) require 'nomono/bundler' structuredmerge_local_gems = %w[